@opendaw/studio-adapters 0.0.48 → 0.0.50

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 (171) hide show
  1. package/dist/AutomatableParameterFieldAdapter.js +86 -73
  2. package/dist/BoxAdapterCollection.js +30 -17
  3. package/dist/BoxAdapters.d.ts.map +1 -1
  4. package/dist/BoxAdapters.js +87 -72
  5. package/dist/BoxAdaptersContext.d.ts +2 -2
  6. package/dist/BoxAdaptersContext.d.ts.map +1 -1
  7. package/dist/EngineProcessorAttachment.d.ts +2 -1
  8. package/dist/EngineProcessorAttachment.d.ts.map +1 -1
  9. package/dist/FieldAdapter.js +45 -32
  10. package/dist/IndexedBoxAdapterCollection.js +45 -32
  11. package/dist/NoteBroadcaster.js +25 -12
  12. package/dist/NoteStreamReceiver.js +29 -16
  13. package/dist/ParameterAdapterSet.js +24 -11
  14. package/dist/ParameterFieldAdapters.js +19 -6
  15. package/dist/Parsing.d.ts +5 -0
  16. package/dist/Parsing.d.ts.map +1 -0
  17. package/dist/Parsing.js +10 -0
  18. package/dist/PianoModeAdapter.js +32 -19
  19. package/dist/RootBoxAdapter.js +37 -24
  20. package/dist/Validator.d.ts +10 -0
  21. package/dist/Validator.d.ts.map +1 -0
  22. package/dist/Validator.js +35 -0
  23. package/dist/audio/AudioFileBoxAdapter.js +23 -10
  24. package/dist/audio-unit/AudioBusBoxAdapter.d.ts +1 -1
  25. package/dist/audio-unit/AudioBusBoxAdapter.d.ts.map +1 -1
  26. package/dist/audio-unit/AudioBusBoxAdapter.js +31 -18
  27. package/dist/audio-unit/AudioUnitBoxAdapter.js +74 -63
  28. package/dist/audio-unit/AudioUnitInput.d.ts +1 -1
  29. package/dist/audio-unit/AudioUnitInput.d.ts.map +1 -1
  30. package/dist/audio-unit/AudioUnitInput.js +43 -30
  31. package/dist/audio-unit/AudioUnitOutput.js +33 -20
  32. package/dist/audio-unit/AudioUnitTracks.js +39 -26
  33. package/dist/audio-unit/AuxSendBoxAdapter.js +47 -34
  34. package/dist/devices/audio-effects/CompressorDeviceBoxAdapter.js +49 -37
  35. package/dist/devices/audio-effects/CrusherDeviceBoxAdapter.js +41 -29
  36. package/dist/devices/audio-effects/DelayDeviceBoxAdapter.js +51 -39
  37. package/dist/devices/audio-effects/FoldDeviceBoxAdapter.js +39 -27
  38. package/dist/devices/audio-effects/ModularDeviceBoxAdapter.js +33 -20
  39. package/dist/devices/audio-effects/RevampDeviceBoxAdapter.js +46 -34
  40. package/dist/devices/audio-effects/ReverbDeviceBoxAdapter.js +45 -33
  41. package/dist/devices/audio-effects/StereoToolDeviceBoxAdapter.js +43 -31
  42. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.d.ts +36 -0
  43. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.d.ts.map +1 -0
  44. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.js +63 -0
  45. package/dist/devices/audio-effects/UnknownAudioEffectDeviceBoxAdapter.js +30 -17
  46. package/dist/devices/instruments/MIDIOutputDeviceBoxAdapter.js +42 -29
  47. package/dist/devices/instruments/NanoDeviceBoxAdapter.js +38 -26
  48. package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.js +101 -89
  49. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.d.ts +0 -1
  50. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.d.ts.map +1 -1
  51. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.js +36 -24
  52. package/dist/devices/instruments/SoundfontDeviceBoxAdapter.js +84 -72
  53. package/dist/devices/instruments/TapeDeviceBoxAdapter.js +40 -28
  54. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.d.ts +26 -4
  55. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.d.ts.map +1 -1
  56. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.js +70 -33
  57. package/dist/devices/instruments/VaporisateurSettings.d.ts +17 -0
  58. package/dist/devices/instruments/VaporisateurSettings.d.ts.map +1 -0
  59. package/dist/devices/instruments/VaporisateurSettings.js +24 -0
  60. package/dist/devices/midi-effects/ArpeggioDeviceBoxAdapter.js +51 -39
  61. package/dist/devices/midi-effects/PitchDeviceBoxAdapter.js +40 -28
  62. package/dist/devices/midi-effects/UnknownMidiEffectDeviceBoxAdapter.js +30 -17
  63. package/dist/devices/midi-effects/VelocityDeviceBoxAdapter.js +47 -35
  64. package/dist/devices/midi-effects/ZeitgeistDeviceBoxAdapter.js +32 -19
  65. package/dist/editing/UserEditing.js +33 -20
  66. package/dist/editing/UserEditingManager.js +28 -15
  67. package/dist/factories/AudioBusFactory.d.ts +7 -0
  68. package/dist/factories/AudioBusFactory.d.ts.map +1 -0
  69. package/dist/factories/AudioBusFactory.js +29 -0
  70. package/dist/factories/AudioUnitFactory.d.ts +13 -0
  71. package/dist/factories/AudioUnitFactory.d.ts.map +1 -0
  72. package/dist/factories/AudioUnitFactory.js +44 -0
  73. package/dist/factories/AudioUnitOrdering.d.ts +3 -0
  74. package/dist/factories/AudioUnitOrdering.d.ts.map +1 -0
  75. package/dist/factories/AudioUnitOrdering.js +7 -0
  76. package/dist/factories/ColorCodes.d.ts +7 -0
  77. package/dist/factories/ColorCodes.d.ts.map +1 -0
  78. package/dist/factories/ColorCodes.js +32 -0
  79. package/dist/factories/Colors.d.ts +15 -0
  80. package/dist/factories/Colors.d.ts.map +1 -0
  81. package/dist/factories/Colors.js +23 -0
  82. package/dist/factories/InstrumentBox.d.ts +3 -0
  83. package/dist/factories/InstrumentBox.d.ts.map +1 -0
  84. package/dist/factories/InstrumentBox.js +1 -0
  85. package/dist/factories/InstrumentFactories.d.ts +34 -0
  86. package/dist/factories/InstrumentFactories.d.ts.map +1 -0
  87. package/dist/factories/InstrumentFactories.js +137 -0
  88. package/dist/factories/InstrumentFactory.d.ts +13 -0
  89. package/dist/factories/InstrumentFactory.d.ts.map +1 -0
  90. package/dist/factories/InstrumentFactory.js +1 -0
  91. package/dist/factories/InstrumentOptions.d.ts +9 -0
  92. package/dist/factories/InstrumentOptions.d.ts.map +1 -0
  93. package/dist/factories/InstrumentOptions.js +1 -0
  94. package/dist/factories/InstrumentProduct.d.ts +8 -0
  95. package/dist/factories/InstrumentProduct.d.ts.map +1 -0
  96. package/dist/factories/InstrumentProduct.js +1 -0
  97. package/dist/grooves/GrooveShuffleBoxAdapter.js +47 -35
  98. package/dist/index.d.ts +20 -3
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +20 -3
  101. package/dist/modular/abstract.js +37 -24
  102. package/dist/modular/connection.js +20 -7
  103. package/dist/modular/connector.js +29 -16
  104. package/dist/modular/modular.js +49 -36
  105. package/dist/modular/modules/audio-input.js +17 -4
  106. package/dist/modular/modules/audio-output.js +17 -4
  107. package/dist/modular/modules/delay.js +24 -11
  108. package/dist/modular/modules/gain.js +24 -11
  109. package/dist/modular/modules/multiplier.js +21 -8
  110. package/dist/modular/user-interface.js +25 -12
  111. package/dist/preset/PresetDecoder.d.ts +11 -0
  112. package/dist/preset/PresetDecoder.d.ts.map +1 -0
  113. package/dist/preset/PresetDecoder.js +154 -0
  114. package/dist/preset/PresetEncoder.d.ts +5 -0
  115. package/dist/preset/PresetEncoder.d.ts.map +1 -0
  116. package/dist/preset/PresetEncoder.js +19 -0
  117. package/dist/preset/PresetHeader.d.ts +5 -0
  118. package/dist/preset/PresetHeader.d.ts.map +1 -0
  119. package/dist/preset/PresetHeader.js +5 -0
  120. package/dist/project/ProjectQueries.d.ts +5 -0
  121. package/dist/project/ProjectQueries.d.ts.map +1 -0
  122. package/dist/project/ProjectQueries.js +10 -0
  123. package/dist/project/ProjectSkeleton.d.ts +10 -1
  124. package/dist/project/ProjectSkeleton.d.ts.map +1 -1
  125. package/dist/project/ProjectSkeleton.js +100 -1
  126. package/dist/project/ProjectUtils.d.ts +13 -0
  127. package/dist/project/ProjectUtils.d.ts.map +1 -0
  128. package/dist/project/ProjectUtils.js +142 -0
  129. package/dist/protocols.d.ts.map +1 -1
  130. package/dist/selection/FilteredSelection.js +47 -34
  131. package/dist/selection/VertexSelection.js +66 -55
  132. package/dist/soundfont/SoundfontFileBoxAdapter.js +21 -8
  133. package/dist/timeline/MarkerBoxAdapter.js +33 -20
  134. package/dist/timeline/MarkerTrackAdapter.js +34 -22
  135. package/dist/timeline/TimelineBoxAdapter.js +24 -11
  136. package/dist/timeline/TrackBoxAdapter.d.ts.map +1 -1
  137. package/dist/timeline/TrackBoxAdapter.js +97 -85
  138. package/dist/timeline/TrackClips.js +27 -14
  139. package/dist/timeline/TrackRegions.js +40 -27
  140. package/dist/timeline/TrackType.d.ts +1 -1
  141. package/dist/timeline/TrackType.d.ts.map +1 -1
  142. package/dist/timeline/TrackType.js +1 -1
  143. package/dist/timeline/clip/AudioClipBoxAdapter.js +66 -53
  144. package/dist/timeline/clip/NoteClipBoxAdapter.js +66 -53
  145. package/dist/timeline/clip/ValueClipBoxAdapter.js +67 -54
  146. package/dist/timeline/collection/NoteEventCollectionBoxAdapter.js +85 -73
  147. package/dist/timeline/collection/ValueEventCollectionBoxAdapter.js +53 -40
  148. package/dist/timeline/event/NoteEventBoxAdapter.js +43 -30
  149. package/dist/timeline/event/ValueEventBoxAdapter.js +67 -54
  150. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts +17 -9
  151. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts.map +1 -1
  152. package/dist/timeline/region/AudioRegionBoxAdapter.js +149 -83
  153. package/dist/timeline/region/MutableRegion.d.ts +8 -0
  154. package/dist/timeline/region/MutableRegion.d.ts.map +1 -0
  155. package/dist/timeline/region/MutableRegion.js +1 -0
  156. package/dist/timeline/region/NoteRegionBoxAdapter.d.ts +6 -1
  157. package/dist/timeline/region/NoteRegionBoxAdapter.d.ts.map +1 -1
  158. package/dist/timeline/region/NoteRegionBoxAdapter.js +78 -61
  159. package/dist/timeline/region/ValueRegionBoxAdapter.d.ts +6 -1
  160. package/dist/timeline/region/ValueRegionBoxAdapter.d.ts.map +1 -1
  161. package/dist/timeline/region/ValueRegionBoxAdapter.js +79 -62
  162. package/package.json +8 -8
  163. package/dist/IconSymbol.d.ts +0 -126
  164. package/dist/IconSymbol.d.ts.map +0 -1
  165. package/dist/IconSymbol.js +0 -126
  166. package/dist/UpdateClockRate.d.ts +0 -2
  167. package/dist/UpdateClockRate.d.ts.map +0 -1
  168. package/dist/UpdateClockRate.js +0 -2
  169. package/dist/project/ProjectDecoder.d.ts +0 -10
  170. package/dist/project/ProjectDecoder.d.ts.map +0 -1
  171. package/dist/project/ProjectDecoder.js +0 -36
@@ -1,3 +1,15 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _VertexSelection_instances, _VertexSelection_lifeTime, _VertexSelection_entityMap, _VertexSelection_selectableMap, _VertexSelection_listeners, _VertexSelection_target, _VertexSelection_watch;
1
13
  import { asInstanceOf, assert, Listeners, Option, Terminator, UUID } from "@opendaw/lib-std";
2
14
  import { Address } from "@opendaw/lib-box";
3
15
  import { Pointers } from "@opendaw/studio-enums";
@@ -8,43 +20,42 @@ import { FilteredSelection } from "./FilteredSelection";
8
20
  * This class maintains selections for different users, with each user having their own unique selection.
9
21
  */
10
22
  export class VertexSelection {
11
- editing;
12
- boxGraph;
13
- #lifeTime;
14
- #entityMap; // sorted on entity
15
- #selectableMap; // sorted on selectable
16
- #listeners;
17
- #target = Option.None;
18
23
  constructor(editing, boxGraph) {
24
+ _VertexSelection_instances.add(this);
19
25
  this.editing = editing;
20
26
  this.boxGraph = boxGraph;
21
- this.#lifeTime = new Terminator();
22
- this.#entityMap = UUID.newSet(entry => entry.box.address.uuid);
23
- this.#selectableMap = Address.newSet(entry => entry.selectable.address);
24
- this.#listeners = new Listeners();
27
+ _VertexSelection_lifeTime.set(this, void 0);
28
+ _VertexSelection_entityMap.set(this, void 0); // sorted on entity
29
+ _VertexSelection_selectableMap.set(this, void 0); // sorted on selectable
30
+ _VertexSelection_listeners.set(this, void 0);
31
+ _VertexSelection_target.set(this, Option.None);
32
+ __classPrivateFieldSet(this, _VertexSelection_lifeTime, new Terminator(), "f");
33
+ __classPrivateFieldSet(this, _VertexSelection_entityMap, UUID.newSet(entry => entry.box.address.uuid), "f");
34
+ __classPrivateFieldSet(this, _VertexSelection_selectableMap, Address.newSet(entry => entry.selectable.address), "f");
35
+ __classPrivateFieldSet(this, _VertexSelection_listeners, new Listeners(), "f");
25
36
  }
26
37
  switch(target) {
27
38
  this.release();
28
39
  console.debug(`VertexSelection.switch(${target.address.toString()})`);
29
- this.#target = Option.wrap(target);
30
- this.#lifeTime.own(this.#watch(target));
40
+ __classPrivateFieldSet(this, _VertexSelection_target, Option.wrap(target), "f");
41
+ __classPrivateFieldGet(this, _VertexSelection_lifeTime, "f").own(__classPrivateFieldGet(this, _VertexSelection_instances, "m", _VertexSelection_watch).call(this, target));
31
42
  return this;
32
43
  }
33
44
  release() {
34
- if (this.#target.isEmpty()) {
45
+ if (__classPrivateFieldGet(this, _VertexSelection_target, "f").isEmpty()) {
35
46
  return;
36
47
  }
37
- this.#target = Option.None;
38
- this.#lifeTime.terminate();
39
- this.#selectableMap.forEach(entry => this.#listeners.proxy.onDeselected(entry.selectable));
40
- this.#selectableMap.clear();
41
- this.#entityMap.clear();
48
+ __classPrivateFieldSet(this, _VertexSelection_target, Option.None, "f");
49
+ __classPrivateFieldGet(this, _VertexSelection_lifeTime, "f").terminate();
50
+ __classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").forEach(entry => __classPrivateFieldGet(this, _VertexSelection_listeners, "f").proxy.onDeselected(entry.selectable));
51
+ __classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").clear();
52
+ __classPrivateFieldGet(this, _VertexSelection_entityMap, "f").clear();
42
53
  }
43
54
  createFilteredSelection(affiliate, map) {
44
55
  return new FilteredSelection(this, affiliate, map);
45
56
  }
46
57
  select(...selectables) {
47
- if (this.#target.isEmpty()) {
58
+ if (__classPrivateFieldGet(this, _VertexSelection_target, "f").isEmpty()) {
48
59
  console.debug(`Cannot select without a user`);
49
60
  return;
50
61
  }
@@ -52,9 +63,9 @@ export class VertexSelection {
52
63
  return;
53
64
  }
54
65
  this.editing.modify(() => {
55
- const selection = this.#target.unwrap();
66
+ const selection = __classPrivateFieldGet(this, _VertexSelection_target, "f").unwrap();
56
67
  for (const selectable of selectables) {
57
- if (!this.#selectableMap.hasKey(selectable.address)) {
68
+ if (!__classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").hasKey(selectable.address)) {
58
69
  SelectionBox.create(this.boxGraph, UUID.generate(), box => {
59
70
  box.selectable.refer(selectable);
60
71
  box.selection.refer(selection);
@@ -64,7 +75,7 @@ export class VertexSelection {
64
75
  }, false);
65
76
  }
66
77
  deselect(...selectables) {
67
- if (this.#target.isEmpty()) {
78
+ if (__classPrivateFieldGet(this, _VertexSelection_target, "f").isEmpty()) {
68
79
  console.debug(`Cannot deselect without a user`);
69
80
  return;
70
81
  }
@@ -72,50 +83,50 @@ export class VertexSelection {
72
83
  return;
73
84
  }
74
85
  this.editing.modify(() => selectables
75
- .forEach(selectable => this.#selectableMap.get(selectable.address).box.delete()), false);
86
+ .forEach(selectable => __classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").get(selectable.address).box.delete()), false);
76
87
  }
77
88
  deselectAll() {
78
- this.deselect(...this.#selectableMap.values().map(entry => entry.selectable));
89
+ this.deselect(...__classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").values().map(entry => entry.selectable));
79
90
  }
80
91
  distance(inventory) {
81
92
  const excludes = [];
82
93
  for (const selectable of inventory) {
83
- if (!this.#selectableMap.hasKey(selectable.address)) {
94
+ if (!__classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").hasKey(selectable.address)) {
84
95
  excludes.push(selectable);
85
96
  }
86
97
  }
87
98
  return excludes;
88
99
  }
89
- isEmpty() { return this.#selectableMap.size() === 0; }
90
- count() { return this.#selectableMap.size(); }
91
- isSelected(selectable) { return this.#selectableMap.hasKey(selectable.address); }
92
- selected() { return this.#selectableMap.values().map(entry => entry.selectable); }
93
- subscribe(listener) { return this.#listeners.subscribe(listener); }
100
+ isEmpty() { return __classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").size() === 0; }
101
+ count() { return __classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").size(); }
102
+ isSelected(selectable) { return __classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").hasKey(selectable.address); }
103
+ selected() { return __classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").values().map(entry => entry.selectable); }
104
+ subscribe(listener) { return __classPrivateFieldGet(this, _VertexSelection_listeners, "f").subscribe(listener); }
94
105
  catchupAndSubscribe(listener) {
95
106
  this.selected().forEach(element => listener.onSelected(element));
96
- return this.#listeners.subscribe(listener);
97
- }
98
- #watch(target) {
99
- return target.pointerHub.catchupAndSubscribe({
100
- onAdded: (pointer) => {
101
- const box = asInstanceOf(pointer.box, SelectionBox);
102
- assert(box.isAttached(), "SelectionBox is not attached");
103
- const selectable = box.selectable.targetVertex
104
- .unwrap(() => `SelectionBox has no target (${box.selectable.targetAddress.unwrapOrUndefined()
105
- ?.toString() ?? "No address"})`);
106
- const entry = { box, selectable };
107
- this.#listeners.proxy.onSelected(selectable);
108
- assert(this.#entityMap.add(entry), "Could not add to entityMap");
109
- assert(this.#selectableMap.add(entry), "Could not add to selectableMap");
110
- },
111
- onRemoved: (pointer) => {
112
- const box = asInstanceOf(pointer.box, SelectionBox);
113
- const entry = this.#entityMap.removeByKey(box.address.uuid);
114
- assert(entry.box === box, "Broken selection");
115
- const selectable = entry.selectable;
116
- this.#listeners.proxy.onDeselected(selectable);
117
- this.#selectableMap.removeByKey(selectable.address);
118
- }
119
- }, Pointers.Selection);
107
+ return __classPrivateFieldGet(this, _VertexSelection_listeners, "f").subscribe(listener);
120
108
  }
121
109
  }
110
+ _VertexSelection_lifeTime = new WeakMap(), _VertexSelection_entityMap = new WeakMap(), _VertexSelection_selectableMap = new WeakMap(), _VertexSelection_listeners = new WeakMap(), _VertexSelection_target = new WeakMap(), _VertexSelection_instances = new WeakSet(), _VertexSelection_watch = function _VertexSelection_watch(target) {
111
+ return target.pointerHub.catchupAndSubscribe({
112
+ onAdded: (pointer) => {
113
+ const box = asInstanceOf(pointer.box, SelectionBox);
114
+ assert(box.isAttached(), "SelectionBox is not attached");
115
+ const selectable = box.selectable.targetVertex
116
+ .unwrap(() => `SelectionBox has no target (${box.selectable.targetAddress.unwrapOrUndefined()
117
+ ?.toString() ?? "No address"})`);
118
+ const entry = { box, selectable };
119
+ __classPrivateFieldGet(this, _VertexSelection_listeners, "f").proxy.onSelected(selectable);
120
+ assert(__classPrivateFieldGet(this, _VertexSelection_entityMap, "f").add(entry), "Could not add to entityMap");
121
+ assert(__classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").add(entry), "Could not add to selectableMap");
122
+ },
123
+ onRemoved: (pointer) => {
124
+ const box = asInstanceOf(pointer.box, SelectionBox);
125
+ const entry = __classPrivateFieldGet(this, _VertexSelection_entityMap, "f").removeByKey(box.address.uuid);
126
+ assert(entry.box === box, "Broken selection");
127
+ const selectable = entry.selectable;
128
+ __classPrivateFieldGet(this, _VertexSelection_listeners, "f").proxy.onDeselected(selectable);
129
+ __classPrivateFieldGet(this, _VertexSelection_selectableMap, "f").removeByKey(selectable.address);
130
+ }
131
+ }, Pointers.Selection);
132
+ };
@@ -1,16 +1,29 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _SoundfontFileBoxAdapter_context, _SoundfontFileBoxAdapter_box;
1
13
  export class SoundfontFileBoxAdapter {
2
- #context;
3
- #box;
4
14
  constructor(context, box) {
5
- this.#context = context;
6
- this.#box = box;
15
+ _SoundfontFileBoxAdapter_context.set(this, void 0);
16
+ _SoundfontFileBoxAdapter_box.set(this, void 0);
17
+ __classPrivateFieldSet(this, _SoundfontFileBoxAdapter_context, context, "f");
18
+ __classPrivateFieldSet(this, _SoundfontFileBoxAdapter_box, box, "f");
7
19
  }
8
- get box() { return this.#box; }
9
- get uuid() { return this.#box.address.uuid; }
10
- get address() { return this.#box.address; }
20
+ get box() { return __classPrivateFieldGet(this, _SoundfontFileBoxAdapter_box, "f"); }
21
+ get uuid() { return __classPrivateFieldGet(this, _SoundfontFileBoxAdapter_box, "f").address.uuid; }
22
+ get address() { return __classPrivateFieldGet(this, _SoundfontFileBoxAdapter_box, "f").address; }
11
23
  get soundfont() { return this.getOrCreateLoader().soundfont; }
12
24
  getOrCreateLoader() {
13
- return this.#context.soundfontManager.getOrCreate(this.#box.address.uuid);
25
+ return __classPrivateFieldGet(this, _SoundfontFileBoxAdapter_context, "f").soundfontManager.getOrCreate(__classPrivateFieldGet(this, _SoundfontFileBoxAdapter_box, "f").address.uuid);
14
26
  }
15
27
  terminate() { }
16
28
  }
29
+ _SoundfontFileBoxAdapter_context = new WeakMap(), _SoundfontFileBoxAdapter_box = new WeakMap();
@@ -1,22 +1,33 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _MarkerBoxAdapter_terminator, _MarkerBoxAdapter_context, _MarkerBoxAdapter_box;
1
13
  import { Terminator, UUID } from "@opendaw/lib-std";
2
14
  import { Propagation } from "@opendaw/lib-box";
3
15
  import { TimelineBoxAdapter } from "./TimelineBoxAdapter";
4
16
  export class MarkerBoxAdapter {
5
- static Comparator = (a, b) => a.position - b.position;
6
- type = "marker-event";
7
- #terminator = new Terminator();
8
- #context;
9
- #box;
10
17
  constructor(context, box) {
11
- this.#context = context;
12
- this.#box = box;
13
- this.#terminator.own(this.#box.subscribe(Propagation.Children, (update) => {
18
+ this.type = "marker-event";
19
+ _MarkerBoxAdapter_terminator.set(this, new Terminator());
20
+ _MarkerBoxAdapter_context.set(this, void 0);
21
+ _MarkerBoxAdapter_box.set(this, void 0);
22
+ __classPrivateFieldSet(this, _MarkerBoxAdapter_context, context, "f");
23
+ __classPrivateFieldSet(this, _MarkerBoxAdapter_box, box, "f");
24
+ __classPrivateFieldGet(this, _MarkerBoxAdapter_terminator, "f").own(__classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").subscribe(Propagation.Children, (update) => {
14
25
  if (this.trackAdapter.isEmpty()) {
15
26
  return;
16
27
  }
17
28
  if (update.type === "primitive" || update.type === "pointer") {
18
29
  const track = this.trackAdapter.unwrap();
19
- if (this.#box.position.address.equals(update.address)) {
30
+ if (__classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").position.address.equals(update.address)) {
20
31
  track.onSortingChanged();
21
32
  }
22
33
  else {
@@ -25,17 +36,19 @@ export class MarkerBoxAdapter {
25
36
  }
26
37
  }));
27
38
  }
28
- get box() { return this.#box; }
29
- get uuid() { return this.#box.address.uuid; }
30
- get address() { return this.#box.address; }
31
- get position() { return this.#box.position.getValue(); }
32
- get plays() { return this.#box.plays.getValue(); }
33
- get hue() { return this.#box.hue.getValue(); }
34
- get label() { return this.#box.label.getValue(); }
39
+ get box() { return __classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f"); }
40
+ get uuid() { return __classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").address.uuid; }
41
+ get address() { return __classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").address; }
42
+ get position() { return __classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").position.getValue(); }
43
+ get plays() { return __classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").plays.getValue(); }
44
+ get hue() { return __classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").hue.getValue(); }
45
+ get label() { return __classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").label.getValue(); }
35
46
  get trackAdapter() {
36
- return this.#box.track.targetVertex
37
- .map(vertex => this.#context.boxAdapters.adapterFor(vertex.box, TimelineBoxAdapter).markerTrack);
47
+ return __classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").track.targetVertex
48
+ .map(vertex => __classPrivateFieldGet(this, _MarkerBoxAdapter_context, "f").boxAdapters.adapterFor(vertex.box, TimelineBoxAdapter).markerTrack);
38
49
  }
39
- terminate() { this.#terminator.terminate(); }
40
- toString() { return `{MarkerBoxAdapter ${UUID.toString(this.#box.address.uuid).substring(0, 4)}, plays: ${this.plays}`; }
50
+ terminate() { __classPrivateFieldGet(this, _MarkerBoxAdapter_terminator, "f").terminate(); }
51
+ toString() { return `{MarkerBoxAdapter ${UUID.toString(__classPrivateFieldGet(this, _MarkerBoxAdapter_box, "f").address.uuid).substring(0, 4)}, plays: ${this.plays}`; }
41
52
  }
53
+ _MarkerBoxAdapter_terminator = new WeakMap(), _MarkerBoxAdapter_context = new WeakMap(), _MarkerBoxAdapter_box = new WeakMap();
54
+ MarkerBoxAdapter.Comparator = (a, b) => a.position - b.position;
@@ -1,45 +1,57 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _MarkerTrackAdapter_context, _MarkerTrackAdapter_object, _MarkerTrackAdapter_adapters, _MarkerTrackAdapter_events, _MarkerTrackAdapter_subscription;
1
13
  import { assert, Notifier, UUID } from "@opendaw/lib-std";
2
14
  import { EventCollection } from "@opendaw/lib-dsp";
3
15
  import { MarkerBoxAdapter } from "./MarkerBoxAdapter";
4
16
  import { MarkerBox } from "@opendaw/studio-boxes";
5
17
  export class MarkerTrackAdapter {
6
- #context;
7
- #object;
8
- changeNotifier;
9
- #adapters;
10
- #events;
11
- #subscription;
12
18
  constructor(context, object) {
13
- this.#context = context;
14
- this.#object = object;
19
+ _MarkerTrackAdapter_context.set(this, void 0);
20
+ _MarkerTrackAdapter_object.set(this, void 0);
21
+ _MarkerTrackAdapter_adapters.set(this, void 0);
22
+ _MarkerTrackAdapter_events.set(this, void 0);
23
+ _MarkerTrackAdapter_subscription.set(this, void 0);
24
+ __classPrivateFieldSet(this, _MarkerTrackAdapter_context, context, "f");
25
+ __classPrivateFieldSet(this, _MarkerTrackAdapter_object, object, "f");
15
26
  this.changeNotifier = new Notifier();
16
- this.#adapters = UUID.newSet(adapter => adapter.uuid);
17
- this.#events = EventCollection.create(MarkerBoxAdapter.Comparator);
18
- this.#subscription = this.#object.markers.pointerHub.catchupAndSubscribe({
27
+ __classPrivateFieldSet(this, _MarkerTrackAdapter_adapters, UUID.newSet(adapter => adapter.uuid), "f");
28
+ __classPrivateFieldSet(this, _MarkerTrackAdapter_events, EventCollection.create(MarkerBoxAdapter.Comparator), "f");
29
+ __classPrivateFieldSet(this, _MarkerTrackAdapter_subscription, __classPrivateFieldGet(this, _MarkerTrackAdapter_object, "f").markers.pointerHub.catchupAndSubscribe({
19
30
  onAdded: ({ box }) => {
20
31
  if (box instanceof MarkerBox) {
21
- const adapter = this.#context.boxAdapters.adapterFor(box, MarkerBoxAdapter);
22
- const added = this.#adapters.add(adapter);
32
+ const adapter = __classPrivateFieldGet(this, _MarkerTrackAdapter_context, "f").boxAdapters.adapterFor(box, MarkerBoxAdapter);
33
+ const added = __classPrivateFieldGet(this, _MarkerTrackAdapter_adapters, "f").add(adapter);
23
34
  assert(added, "Could not add adapter");
24
- this.#events.add(adapter);
35
+ __classPrivateFieldGet(this, _MarkerTrackAdapter_events, "f").add(adapter);
25
36
  this.dispatchChange();
26
37
  }
27
38
  },
28
39
  onRemoved: ({ box: { address: { uuid } } }) => {
29
- this.#events.remove(this.#adapters.removeByKey(uuid));
40
+ __classPrivateFieldGet(this, _MarkerTrackAdapter_events, "f").remove(__classPrivateFieldGet(this, _MarkerTrackAdapter_adapters, "f").removeByKey(uuid));
30
41
  this.dispatchChange();
31
42
  }
32
- });
43
+ }), "f");
33
44
  }
34
45
  subscribe(observer) { return this.changeNotifier.subscribe(observer); }
35
- get context() { return this.#context; }
36
- get enabled() { return this.#object.enabled.getValue(); }
37
- get events() { return this.#events; }
38
- get object() { return this.#object; }
46
+ get context() { return __classPrivateFieldGet(this, _MarkerTrackAdapter_context, "f"); }
47
+ get enabled() { return __classPrivateFieldGet(this, _MarkerTrackAdapter_object, "f").enabled.getValue(); }
48
+ get events() { return __classPrivateFieldGet(this, _MarkerTrackAdapter_events, "f"); }
49
+ get object() { return __classPrivateFieldGet(this, _MarkerTrackAdapter_object, "f"); }
39
50
  dispatchChange() { this.changeNotifier.notify(); }
40
51
  onSortingChanged() {
41
- this.#events.onIndexingChanged();
52
+ __classPrivateFieldGet(this, _MarkerTrackAdapter_events, "f").onIndexingChanged();
42
53
  this.dispatchChange();
43
54
  }
44
- terminate() { this.#subscription.terminate(); }
55
+ terminate() { __classPrivateFieldGet(this, _MarkerTrackAdapter_subscription, "f").terminate(); }
45
56
  }
57
+ _MarkerTrackAdapter_context = new WeakMap(), _MarkerTrackAdapter_object = new WeakMap(), _MarkerTrackAdapter_adapters = new WeakMap(), _MarkerTrackAdapter_events = new WeakMap(), _MarkerTrackAdapter_subscription = new WeakMap();
@@ -1,28 +1,41 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _TimelineBoxAdapter_box, _TimelineBoxAdapter_markerTrack;
1
13
  import { MarkerTrackAdapter } from "./MarkerTrackAdapter";
2
14
  import { PPQN } from "@opendaw/lib-dsp";
3
15
  export class TimelineBoxAdapter {
4
- #box;
5
- #markerTrack;
6
16
  constructor(context, box) {
7
- this.#box = box;
8
- this.#markerTrack = new MarkerTrackAdapter(context, this.#box.markerTrack);
17
+ _TimelineBoxAdapter_box.set(this, void 0);
18
+ _TimelineBoxAdapter_markerTrack.set(this, void 0);
19
+ __classPrivateFieldSet(this, _TimelineBoxAdapter_box, box, "f");
20
+ __classPrivateFieldSet(this, _TimelineBoxAdapter_markerTrack, new MarkerTrackAdapter(context, __classPrivateFieldGet(this, _TimelineBoxAdapter_box, "f").markerTrack), "f");
9
21
  }
10
22
  terminate() { }
11
- get box() { return this.#box; }
12
- get uuid() { return this.#box.address.uuid; }
13
- get address() { return this.#box.address; }
14
- get markerTrack() { return this.#markerTrack; }
23
+ get box() { return __classPrivateFieldGet(this, _TimelineBoxAdapter_box, "f"); }
24
+ get uuid() { return __classPrivateFieldGet(this, _TimelineBoxAdapter_box, "f").address.uuid; }
25
+ get address() { return __classPrivateFieldGet(this, _TimelineBoxAdapter_box, "f").address; }
26
+ get markerTrack() { return __classPrivateFieldGet(this, _TimelineBoxAdapter_markerTrack, "f"); }
15
27
  get signature() {
16
28
  return [
17
- this.#box.signature.nominator.getValue(), this.#box.signature.denominator.getValue()
29
+ __classPrivateFieldGet(this, _TimelineBoxAdapter_box, "f").signature.nominator.getValue(), __classPrivateFieldGet(this, _TimelineBoxAdapter_box, "f").signature.denominator.getValue()
18
30
  ];
19
31
  }
20
32
  get signatureDuration() {
21
- const { nominator, denominator } = this.#box.signature;
33
+ const { nominator, denominator } = __classPrivateFieldGet(this, _TimelineBoxAdapter_box, "f").signature;
22
34
  return PPQN.fromSignature(nominator.getValue(), denominator.getValue());
23
35
  }
24
36
  catchupAndSubscribeSignature(observer) {
25
37
  observer(this.signature);
26
- return this.#box.signature.subscribe(() => observer(this.signature));
38
+ return __classPrivateFieldGet(this, _TimelineBoxAdapter_box, "f").signature.subscribe(() => observer(this.signature));
27
39
  }
28
40
  }
41
+ _TimelineBoxAdapter_box = new WeakMap(), _TimelineBoxAdapter_markerTrack = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"TrackBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,QAAQ,EACR,MAAM,EAEN,YAAY,EAGZ,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AAI3E,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,qBAAa,eAAgB,YAAW,UAAU;;gBAWlC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ;IAUtD,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY;IAuBnF,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAUjC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,CAYrC;IAoDD,SAAS;IAET,IAAI,SAAS,IAAI,YAAY,CAAgF;IAC7G,IAAI,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAA0B;IACzE,IAAI,KAAK,IAAI,UAAU,CAAqB;IAC5C,IAAI,OAAO,IAAI,YAAY,CAAuB;IAClD,IAAI,OAAO,IAAI,YAAY,CAA2B;IACtD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,IAAI,IAAI,SAAS,CAAmC;IACxD,IAAI,GAAG,IAAI,QAAQ,CAAmB;IACtC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IAEjD,IAAI,SAAS,IAAI,GAAG,CAAoC;IACxD,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAmC;IAE3D,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,OAAO;IAiBlE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS;CAgC1D"}
1
+ {"version":3,"file":"TrackBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,QAAQ,EACR,MAAM,EAEN,YAAY,EAGZ,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,IAAI,EAAkB,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AAG3E,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,qBAAa,eAAgB,YAAW,UAAU;;gBAWlC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ;IAUtD,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY;IAuBnF,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAUjC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,CAYrC;IAoDD,SAAS;IAET,IAAI,SAAS,IAAI,YAAY,CAAgF;IAC7G,IAAI,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAA0B;IACzE,IAAI,KAAK,IAAI,UAAU,CAAqB;IAC5C,IAAI,OAAO,IAAI,YAAY,CAAuB;IAClD,IAAI,OAAO,IAAI,YAAY,CAA2B;IACtD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,IAAI,IAAI,SAAS,CAAmC;IACxD,IAAI,GAAG,IAAI,QAAQ,CAAmB;IACtC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IAEjD,IAAI,SAAS,IAAI,GAAG,CAAoC;IACxD,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAmC;IAE3D,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,OAAO;IAiBlE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS;CAgC1D"}