vibe-editor 0.0.2 → 0.0.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-editor",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "main": "src/scripts/js/VIBE.js",
5
5
  "keywords": [],
6
6
  "author": "Matthias Nowakowski",
@@ -14,7 +14,8 @@
14
14
  "files": [
15
15
  "src/images/*/*",
16
16
  "src/scripts/js/*",
17
- "src/fonts/*"
17
+ "src/fonts/*",
18
+ "src/styles/*.css"
18
19
  ],
19
20
  "dependencies": {
20
21
  "@babel/plugin-transform-classes": "^7.16.7",
@@ -194,7 +194,7 @@ class Core {
194
194
  return new Promise((resolve, reject) => {
195
195
  var _a;
196
196
  var message = {
197
- id: (0, random_1.uuidv4)(),
197
+ id: random_1.uuidv4(),
198
198
  action: 'renderToSVG',
199
199
  pageNo: pageNo
200
200
  };
@@ -307,7 +307,7 @@ class Core {
307
307
  }
308
308
  //just render the data once to make pagecount accessible
309
309
  var message = {
310
- id: (0, random_1.uuidv4)(),
310
+ id: random_1.uuidv4(),
311
311
  action: 'renderData',
312
312
  mei: d,
313
313
  isUrl: u
@@ -549,7 +549,7 @@ class Core {
549
549
  return new Promise((resolve, reject) => {
550
550
  const message = {
551
551
  action: "getMEI",
552
- id: (0, random_1.uuidv4)()
552
+ id: random_1.uuidv4()
553
553
  };
554
554
  var response;
555
555
  response = this.verovioWrapper.setMessage(message);
@@ -566,7 +566,7 @@ class Core {
566
566
  return new Promise((resolve, reject) => {
567
567
  const message = {
568
568
  action: "renderToMidi",
569
- id: (0, random_1.uuidv4)()
569
+ id: random_1.uuidv4()
570
570
  };
571
571
  var response = this.verovioWrapper.setMessage(message);
572
572
  if (response.midi) {
@@ -134,7 +134,7 @@ class MeiTemplate {
134
134
  }
135
135
  createTempo(mm, mmUnit, tstamp = null, startId = null) {
136
136
  var newElement = document.createElementNS(constants_1.constants._MEINS_, "tempo");
137
- newElement.setAttribute("id", (0, random_1.uuidv4)());
137
+ newElement.setAttribute("id", random_1.uuidv4());
138
138
  newElement.setAttribute("place", "above");
139
139
  if (startId === null && tstamp === null) {
140
140
  throw new Error("Tempo MUST either have timestamp or startId");
@@ -148,7 +148,7 @@ class MeiTemplate {
148
148
  newElement.setAttribute("midi.bpm", (parseFloat(mm) * parseFloat(mmUnit)).toString());
149
149
  newElement.setAttribute("staff", "1");
150
150
  var rend = document.createElementNS(constants_1.constants._MEINS_, "rend");
151
- rend.setAttribute("id", (0, random_1.uuidv4)());
151
+ rend.setAttribute("id", random_1.uuidv4());
152
152
  rend.setAttribute("fontname", "VerovioText");
153
153
  rend.textContent = "__";
154
154
  newElement.appendChild(rend);
@@ -292,7 +292,7 @@ class Annotations {
292
292
  var posy = pt.y; //matrixTransform(rootMatrix).y //e.pageY - this.rootBBox.y - window.pageYOffset
293
293
  var annotationTarget = this.m2s.findScoreTarget(posx, posy, false);
294
294
  var textGroup = document.createElementNS(constants_1.constants._SVGNS_, "g");
295
- textGroup.setAttribute("id", (0, random_1.uuidv4)());
295
+ textGroup.setAttribute("id", random_1.uuidv4());
296
296
  textGroup.setAttribute("targetId", annotationTarget.id);
297
297
  var text = document.createElementNS(constants_1.constants._SVGNS_, "svg");
298
298
  if (isLinked)
@@ -41,7 +41,7 @@ class HarmonyLabel {
41
41
  }
42
42
  createElement(inputString) {
43
43
  this.element = this.currentMEI.createElement("harm");
44
- this.element.setAttribute("id", (0, random_1.uuidv4)());
44
+ this.element.setAttribute("id", random_1.uuidv4());
45
45
  this.element.setAttribute("place", "below");
46
46
  Array.from(this.element.children).forEach(c => {
47
47
  c.remove();
@@ -67,7 +67,7 @@ class ScoreManipulator {
67
67
  }
68
68
  drawMeasureManipulators() {
69
69
  this.lastBline = Array.from(this.vrvSVG.querySelectorAll(".barLine")).reverse()[0].querySelector("path");
70
- var lastBlineRect = (0, coordinates_1.getDOMMatrixCoordinates)(this.lastBline, this.vrvSVG);
70
+ var lastBlineRect = coordinates_1.getDOMMatrixCoordinates(this.lastBline, this.vrvSVG);
71
71
  var blineTopAdder = lastBlineRect.top;
72
72
  var blineTopRemover = lastBlineRect.top + lastBlineRect.height / 2;
73
73
  var blineRight = lastBlineRect.right;
@@ -111,10 +111,10 @@ class ScoreManipulator {
111
111
  this.vrvSVG.querySelectorAll(".page").forEach(p => {
112
112
  p.querySelector(".measure").querySelectorAll(".staff").forEach(staff => {
113
113
  var _a;
114
- var bbox = (0, coordinates_1.getDOMMatrixCoordinates)(staff.querySelector(".staffLine"), this.vrvSVG); //staff.querySelector(".staffLine").getBoundingClientRect()
114
+ var bbox = coordinates_1.getDOMMatrixCoordinates(staff.querySelector(".staffLine"), this.vrvSVG); //staff.querySelector(".staffLine").getBoundingClientRect()
115
115
  var x = bbox.left; //- rootBBox.x
116
116
  var yTop = bbox.top; //- rootBBox.y
117
- var yBottom = (0, coordinates_1.getDOMMatrixCoordinates)(Array.from(staff.querySelectorAll(".staffLine")).reverse()[0], this.vrvSVG).bottom; //Array.from(staff.querySelectorAll(".staffLine")).reverse()[0].getBoundingClientRect().bottom - rootBBox.y
117
+ var yBottom = coordinates_1.getDOMMatrixCoordinates(Array.from(staff.querySelectorAll(".staffLine")).reverse()[0], this.vrvSVG).bottom; //Array.from(staff.querySelectorAll(".staffLine")).reverse()[0].getBoundingClientRect().bottom - rootBBox.y
118
118
  var staffHeight = (yBottom - yTop);
119
119
  yTop -= staffHeight * 0.20; // center the boxes
120
120
  var btnHeight = (staffHeight / 4) * 1.5;
@@ -155,18 +155,18 @@ class ScoreManipulator {
155
155
  var width;
156
156
  var height;
157
157
  if (navigator.userAgent.toLowerCase().indexOf("firefox") != -1) {
158
- bbox = (0, coordinates_1.getDOMMatrixCoordinates)(referenceStaff, this.vrvSVG); //referenceStaff.querySelector(".staffLine").getBoundingClientRect()
158
+ bbox = coordinates_1.getDOMMatrixCoordinates(referenceStaff, this.vrvSVG); //referenceStaff.querySelector(".staffLine").getBoundingClientRect()
159
159
  x = bbox.left;
160
160
  yTop = bbox.top;
161
- yBottom = (0, coordinates_1.getDOMMatrixCoordinates)(Array.from(referenceStaff.querySelectorAll(".staffLine")).reverse()[0], this.vrvSVG).bottom; //Array.from(referenceStaff.querySelectorAll(".staffLine")).reverse()[0].getBoundingClientRect().bottom
161
+ yBottom = coordinates_1.getDOMMatrixCoordinates(Array.from(referenceStaff.querySelectorAll(".staffLine")).reverse()[0], this.vrvSVG).bottom; //Array.from(referenceStaff.querySelectorAll(".staffLine")).reverse()[0].getBoundingClientRect().bottom
162
162
  }
163
163
  else {
164
- bbox = bbox = (0, coordinates_1.getDOMMatrixCoordinates)(referenceStaff.querySelector(".clef"), this.vrvSVG); //referenceStaff.querySelector(".clef").getBoundingClientRect()
164
+ bbox = bbox = coordinates_1.getDOMMatrixCoordinates(referenceStaff.querySelector(".clef"), this.vrvSVG); //referenceStaff.querySelector(".clef").getBoundingClientRect()
165
165
  x = bbox.left;
166
166
  yTop = bbox.top;
167
167
  yBottom = bbox.bottom;
168
168
  }
169
- const clefCoords = (0, coordinates_1.getDOMMatrixCoordinates)(referenceStaff.querySelector(".clef"), this.vrvSVG);
169
+ const clefCoords = coordinates_1.getDOMMatrixCoordinates(referenceStaff.querySelector(".clef"), this.vrvSVG);
170
170
  //height = referenceStaff.querySelector(".clef").getBoundingClientRect().height
171
171
  //width = referenceStaff.querySelector(".clef").getBoundingClientRect().width
172
172
  return { x: x, yTop: yTop, yBottom: yBottom, width: clefCoords.width, height: clefCoords.height };
@@ -596,7 +596,7 @@ class Tabbar {
596
596
  a.removeEventListener("click", this.customToolbarHandler);
597
597
  });
598
598
  cq.getContainer(this.containerId).removeEventListener("annotChanged", this.createAnnotListHandler);
599
- (0, interactjs_1.default)("#annotList").unset();
599
+ interactjs_1.default("#annotList").unset();
600
600
  }
601
601
  closeDropdown(ddButton) {
602
602
  if (ddButton.classList.contains("show")) {
@@ -29,7 +29,7 @@ class TempoLabel {
29
29
  createElement(inputString) {
30
30
  if (typeof this.element === "undefined") {
31
31
  this.element = this.currentMEI.createElement("tempo");
32
- this.element.setAttribute("id", (0, random_1.uuidv4)());
32
+ this.element.setAttribute("id", random_1.uuidv4());
33
33
  }
34
34
  Array.from(this.element.children).forEach(c => {
35
35
  c.remove();
@@ -548,7 +548,7 @@ class Toolbar {
548
548
  // el.removeEventListener("click", this.sidebarHandler)
549
549
  // })
550
550
  cq.getContainer(this.containerId).removeEventListener("annotChanged", this.createAnnotListFunction);
551
- (0, interactjs_1.default)("#annotList").unset();
551
+ interactjs_1.default("#annotList").unset();
552
552
  }
553
553
  closeDropdown(ddButton) {
554
554
  if (ddButton.classList.contains("show")) {
@@ -31,7 +31,7 @@ class AnnotationChangeHandler {
31
31
  setListeners() {
32
32
  //if(document.getElementById(this.containerId).querySelector(".sidebar.openSidebar") != null) return
33
33
  var that = this;
34
- this.shapeListener = (0, interactjs_1.default)("#" + this.containerId + " #interactionOverlay .customAnnotShape")
34
+ this.shapeListener = interactjs_1.default("#" + this.containerId + " #interactionOverlay .customAnnotShape")
35
35
  .resizable({
36
36
  // resize from all edges and corners
37
37
  edges: { left: true, right: true, bottom: true, top: true },
@@ -62,7 +62,7 @@ class AnnotationChangeHandler {
62
62
  })
63
63
  ]
64
64
  });
65
- this.textListener = (0, interactjs_1.default)("#" + this.containerId + " .annotText")
65
+ this.textListener = interactjs_1.default("#" + this.containerId + " .annotText")
66
66
  .resizable({
67
67
  // resize from all edges and corners
68
68
  edges: { left: true, right: true, bottom: true, top: true },
@@ -93,7 +93,7 @@ class AnnotationChangeHandler {
93
93
  })
94
94
  ]
95
95
  });
96
- this.lineListener = (0, interactjs_1.default)("#" + this.containerId + " #interactionOverlay .lineDragRect.x1")
96
+ this.lineListener = interactjs_1.default("#" + this.containerId + " #interactionOverlay .lineDragRect.x1")
97
97
  .draggable({
98
98
  listeners: {
99
99
  move: this.dragLineListener.bind(this),
@@ -67,7 +67,7 @@ class CustomAnnotationShapeDrawer {
67
67
  this.updateCallback();
68
68
  }
69
69
  initRect(ulx, uly) {
70
- this.shapeID = (0, random_1.uuidv4)();
70
+ this.shapeID = random_1.uuidv4();
71
71
  this.canvas.append('rect')
72
72
  .attr('x', ulx)
73
73
  .attr('y', uly)
@@ -78,7 +78,7 @@ class CustomAnnotationShapeDrawer {
78
78
  this.shape = document.getElementById(this.shapeID);
79
79
  }
80
80
  initCircle(cx, cy) {
81
- this.shapeID = (0, random_1.uuidv4)();
81
+ this.shapeID = random_1.uuidv4();
82
82
  this.canvas.append('ellipse')
83
83
  .attr('cx', cx)
84
84
  .attr('cy', cy)
@@ -245,8 +245,8 @@ class InsertModeHandler {
245
245
  }
246
246
  that.m2s.setDurationNewNote(dur);
247
247
  if (that.m2s.setMarkedNoteDurations(dur)) {
248
- (0, MEIOperations_1.cleanUp)(that.m2s.getCurrentMei());
249
- var mei = (0, MEIConverter_1.restoreXmlIdTags)(that.m2s.getCurrentMei());
248
+ MEIOperations_1.cleanUp(that.m2s.getCurrentMei());
249
+ var mei = MEIConverter_1.restoreXmlIdTags(that.m2s.getCurrentMei());
250
250
  that.loadDataCallback("", mei, false);
251
251
  }
252
252
  });
@@ -266,8 +266,8 @@ class InsertModeHandler {
266
266
  }
267
267
  that.m2s.setDotsNewNote(dots);
268
268
  if (that.m2s.setMarkedNoteDots(dots)) {
269
- (0, MEIOperations_1.cleanUp)(that.m2s.getCurrentMei());
270
- var mei = (0, MEIConverter_1.restoreXmlIdTags)(that.m2s.getCurrentMei());
269
+ MEIOperations_1.cleanUp(that.m2s.getCurrentMei());
270
+ var mei = MEIConverter_1.restoreXmlIdTags(that.m2s.getCurrentMei());
271
271
  that.loadDataCallback("", mei, false);
272
272
  }
273
273
  });
@@ -271,7 +271,7 @@ class KeyModeHandler {
271
271
  this.setContainerId(this.containerId);
272
272
  var newNote = {
273
273
  pname: pname,
274
- id: (0, random_1.uuidv4)(),
274
+ id: random_1.uuidv4(),
275
275
  dur: this.m2s.getDurationNewNote(),
276
276
  dots: this.m2s.getDotsNewNote(),
277
277
  oct: oct,
@@ -347,7 +347,7 @@ class LabelHandler {
347
347
  }
348
348
  createInputBox(posx, posy, targetId, targetClass) {
349
349
  var textGroup = document.createElementNS(constants_1.constants._SVGNS_, "g");
350
- textGroup.setAttribute("id", (0, random_1.uuidv4)());
350
+ textGroup.setAttribute("id", random_1.uuidv4());
351
351
  textGroup.setAttribute("refElementId", targetId);
352
352
  var text = document.createElementNS(constants_1.constants._SVGNS_, "svg");
353
353
  text.classList.add("labelText");
@@ -12,7 +12,7 @@ class NoteDragHandler {
12
12
  }
13
13
  setListeners() {
14
14
  var that = this;
15
- this.noteDragListener = (0, interactjs_1.default)("#" + this.containerId + " #interactionOverlay .notehead rect")
15
+ this.noteDragListener = interactjs_1.default("#" + this.containerId + " #interactionOverlay .notehead rect")
16
16
  .draggable({
17
17
  startAxis: "y",
18
18
  lockAxis: "y",
@@ -74,7 +74,7 @@ class SidebarHandler {
74
74
  that.setSelectListeners();
75
75
  }
76
76
  }, false);
77
- this.resizeListener = (0, interactjs_1.default)("#" + this.containerId + " #sidebarContainer")
77
+ this.resizeListener = interactjs_1.default("#" + this.containerId + " #sidebarContainer")
78
78
  .resizable({
79
79
  edges: { left: false, right: true, bottom: false, top: false },
80
80
  listeners: {
@@ -93,7 +93,7 @@ class TooltipHandler {
93
93
  arrow.setAttribute("data-popper-arrow", "");
94
94
  tt.append(arrow);
95
95
  this.container.prepend(tt);
96
- (0, core_1.createPopper)(el, tt, {
96
+ core_1.createPopper(el, tt, {
97
97
  placement: 'top-start',
98
98
  modifiers: [
99
99
  {
@@ -206,7 +206,7 @@ function addToMEI(newSound, currentMEI, replace = false, scoreGraph = null) {
206
206
  }
207
207
  else {
208
208
  chord = document.createElement("chord");
209
- chord.setAttribute("id", (0, random_1.uuidv4)());
209
+ chord.setAttribute("id", random_1.uuidv4());
210
210
  chord.setAttribute("dur", meiChordEl.getAttribute("dur"));
211
211
  if (meiChordEl.getAttribute("dots") !== null) {
212
212
  chord.setAttribute("dots", meiChordEl.getAttribute("dots"));
@@ -224,7 +224,7 @@ function addToMEI(newSound, currentMEI, replace = false, scoreGraph = null) {
224
224
  if (Array.from(chord.querySelectorAll("note")).some(n => t.getAttribute("startid") === "#" + n.id)) {
225
225
  if (!currentMEI.querySelector("tie[startid='#" + newNote.id + "']")) { // just make the tie once (since this can be called twice in recursion)
226
226
  var addToChord = Object.assign({}, newNote);
227
- addToChord.id = (0, random_1.uuidv4)();
227
+ addToChord.id = random_1.uuidv4();
228
228
  var tieEnd = currentMEI.querySelector(t.getAttribute("endid"));
229
229
  tieEnd = tieEnd.closest("chord") || tieEnd;
230
230
  addToChord.chordElement = tieEnd;
@@ -408,7 +408,7 @@ function tieToNextMeasure(currentMEI, newElem, currMeiClone, replace, newSound)
408
408
  changeDur(lastElement, newRatio);
409
409
  // create new Element and if needed, new measure
410
410
  var splittedElement = lastElement.tagName === "note" ? convertToNewNote(lastElement) : convertToNewChord(lastElement);
411
- splittedElement.id = (0, random_1.uuidv4)();
411
+ splittedElement.id = random_1.uuidv4();
412
412
  var newDur = ratioToDur(measureOverhead);
413
413
  splittedElement.dur = newDur[0].toString();
414
414
  splittedElement.dots = newDur[1].toString();
@@ -494,7 +494,7 @@ function doShiftRight(arr, meterRatio, currentLayer) {
494
494
  }
495
495
  else {
496
496
  targetLayer = document.createElement("layer");
497
- targetLayer.setAttribute("id", "layer-" + (0, random_1.uuidv4)());
497
+ targetLayer.setAttribute("id", "layer-" + random_1.uuidv4());
498
498
  targetLayer.setAttribute("n", layerLevel);
499
499
  targetStaff.appendChild(targetLayer);
500
500
  }
@@ -512,7 +512,7 @@ function doShiftRight(arr, meterRatio, currentLayer) {
512
512
  if (Number.isInteger(1 / chunkDurLeft) && Number.isInteger(1 / chunkDurRight)) {
513
513
  element.removeAttribute("dots");
514
514
  var splitRightElement = element.cloneNode(true);
515
- splitRightElement.setAttribute("id", (0, random_1.uuidv4)());
515
+ splitRightElement.setAttribute("id", random_1.uuidv4());
516
516
  splitRightElement.setAttribute("dur", (Math.abs(1 / chunkDurRight)).toString());
517
517
  var beforeElement = elementIdx === 0 ? targetLayer.firstChild : targetLayer.children.item(elementIdx);
518
518
  targetLayer.insertBefore(splitRightElement, beforeElement);
@@ -524,10 +524,10 @@ function doShiftRight(arr, meterRatio, currentLayer) {
524
524
  dottedElements.left.forEach(lel => currentLayer.appendChild(lel));
525
525
  var beforeElement = elementIdx === 0 ? targetLayer.firstChild : targetLayer.children.item(elementIdx);
526
526
  dottedElements.right.forEach(rel => {
527
- rel.setAttribute("id", (0, random_1.uuidv4)());
527
+ rel.setAttribute("id", random_1.uuidv4());
528
528
  if (rel.tagName === "chord") {
529
529
  rel.querySelectorAll("note").forEach(rl => {
530
- rl.setAttribute("id", (0, random_1.uuidv4)());
530
+ rl.setAttribute("id", random_1.uuidv4());
531
531
  });
532
532
  }
533
533
  targetLayer.insertBefore(rel, beforeElement);
@@ -548,10 +548,10 @@ function createEmptyCopy(element) {
548
548
  child.parentNode.removeChild(child);
549
549
  });
550
550
  //set new ids for everything
551
- copy.setAttribute("id", (0, random_1.uuidv4)());
551
+ copy.setAttribute("id", random_1.uuidv4());
552
552
  copy.setAttribute("n", (parseInt(element.getAttribute("n")) + 1).toString());
553
553
  let allElements = copy.querySelectorAll("*");
554
- allElements.forEach(e => e.setAttribute("id", (0, random_1.uuidv4)()));
554
+ allElements.forEach(e => e.setAttribute("id", random_1.uuidv4()));
555
555
  return copy;
556
556
  }
557
557
  function connectNotes(left, right, connectionShape) {
@@ -579,7 +579,7 @@ function connectNotes(left, right, connectionShape) {
579
579
  var tieElement = currentMEI.createElementNS(constants_1.constants._MEINS_, connectionShape);
580
580
  tieElement.setAttribute("startid", "#" + left.id);
581
581
  tieElement.setAttribute("endid", "#" + right.id);
582
- tieElement.setAttribute("id", (0, random_1.uuidv4)());
582
+ tieElement.setAttribute("id", random_1.uuidv4());
583
583
  currentMEI.getElementById(left.id).closest("measure").append(tieElement);
584
584
  }
585
585
  }
@@ -649,7 +649,7 @@ function doShiftLeft(arr, meterRatio) {
649
649
  if (Number.isInteger(1 / chunkDurLeft) && Number.isInteger(1 / chunkDurRight)) {
650
650
  element.removeAttribute("dots");
651
651
  var splitLeftElement = element.cloneNode(true);
652
- splitLeftElement.setAttribute("id", (0, random_1.uuidv4)());
652
+ splitLeftElement.setAttribute("id", random_1.uuidv4());
653
653
  splitLeftElement.setAttribute("dur", (Math.abs(1 / chunkDurLeft)).toString());
654
654
  targetLayer.appendChild(splitLeftElement);
655
655
  //change already existing element
@@ -658,10 +658,10 @@ function doShiftLeft(arr, meterRatio) {
658
658
  else {
659
659
  var elements = splitDottedNote(element, chunkDurLeft, chunkDurRight);
660
660
  elements.left.forEach(lel => {
661
- lel.setAttribute("id", (0, random_1.uuidv4)());
661
+ lel.setAttribute("id", random_1.uuidv4());
662
662
  if (lel.tagName === "chord") {
663
663
  lel.querySelectorAll("note").forEach(ll => {
664
- ll.setAttribute("id", (0, random_1.uuidv4)());
664
+ ll.setAttribute("id", random_1.uuidv4());
665
665
  });
666
666
  }
667
667
  targetLayer.appendChild(lel);
@@ -1397,7 +1397,7 @@ function reorganizeBeams(currentMEI) {
1397
1397
  }
1398
1398
  else { // else make new beam
1399
1399
  var newBeam = currentMEI.createElementNS(constants_1.constants._MEINS_, "beam");
1400
- newBeam.setAttribute("id", (0, random_1.uuidv4)());
1400
+ newBeam.setAttribute("id", random_1.uuidv4());
1401
1401
  n.parentElement.insertBefore(newBeam, n);
1402
1402
  newBeam.append(n);
1403
1403
  }
@@ -1554,10 +1554,10 @@ function addMeasure(currentMEI) {
1554
1554
  m.setAttribute("n", i.toString());
1555
1555
  i++;
1556
1556
  });
1557
- newMeasure.setAttribute("id", (0, random_1.uuidv4)());
1557
+ newMeasure.setAttribute("id", random_1.uuidv4());
1558
1558
  newMeasure.querySelectorAll("*").forEach(el => {
1559
1559
  if (el.id === null || el.id === "") {
1560
- el.setAttribute("id", (0, random_1.uuidv4)());
1560
+ el.setAttribute("id", random_1.uuidv4());
1561
1561
  }
1562
1562
  });
1563
1563
  cleanUp(currentMEI);
@@ -1708,7 +1708,7 @@ function createTuplet(meiElements, currentMEI) {
1708
1708
  if (ratio < 1) {
1709
1709
  if (durRest > 0) {
1710
1710
  var rest = currentMEI.createElement("rest");
1711
- rest.setAttribute("id", (0, random_1.uuidv4)());
1711
+ rest.setAttribute("id", random_1.uuidv4());
1712
1712
  rest.setAttribute("dur", durRest.toString());
1713
1713
  if (dotsRest > 0) {
1714
1714
  rest.setAttribute("dots", dotsRest.toString());
@@ -1740,7 +1740,7 @@ function paste(ids, pastePosition, currentMEI) {
1740
1740
  meiElements[num] = new Array();
1741
1741
  }
1742
1742
  var cel = el.cloneNode(true);
1743
- cel.setAttribute("id", (0, random_1.uuidv4)());
1743
+ cel.setAttribute("id", random_1.uuidv4());
1744
1744
  meiElements[num].push(cel);
1745
1745
  }
1746
1746
  }
@@ -1853,7 +1853,7 @@ function insertClef(target, newClef, currentMEI) {
1853
1853
  }
1854
1854
  var disPlace = newClef.includes("OctDown") ? "below" : newClef.includes("OctUp") ? "above" : null;
1855
1855
  var clefElement = currentMEI.createElement("clef");
1856
- clefElement.setAttribute("id", (0, random_1.uuidv4)());
1856
+ clefElement.setAttribute("id", random_1.uuidv4());
1857
1857
  clefElement.setAttribute("shape", shape);
1858
1858
  clefElement.setAttribute("line", line);
1859
1859
  if (disPlace) {
@@ -2054,7 +2054,7 @@ exports.setArticulation = setArticulation;
2054
2054
  //PRIVATE
2055
2055
  function convertToNewNote(element) {
2056
2056
  var newNote = {
2057
- id: (0, random_1.uuidv4)(),
2057
+ id: random_1.uuidv4(),
2058
2058
  pname: element.getAttribute("pname"),
2059
2059
  dur: element.getAttribute("dur"),
2060
2060
  dots: element.getAttribute("dots"),
@@ -2091,7 +2091,7 @@ function convertToNewChord(element) {
2091
2091
  return convertToNewNote(n);
2092
2092
  });
2093
2093
  var newChord = {
2094
- id: (0, random_1.uuidv4)(),
2094
+ id: random_1.uuidv4(),
2095
2095
  dur: element.getAttribute("dur"),
2096
2096
  dots: element.getAttribute("dots"),
2097
2097
  noteElements: newNotes
@@ -2103,6 +2103,6 @@ function createNewRestElement(dur, dots = undefined) {
2103
2103
  newElem.setAttribute("dur", dur.toString());
2104
2104
  if (dots != undefined)
2105
2105
  newElem.setAttribute("dots", dots.toString());
2106
- newElem.setAttribute("id", (0, random_1.uuidv4)());
2106
+ newElem.setAttribute("id", random_1.uuidv4());
2107
2107
  return newElem;
2108
2108
  }
@@ -169,7 +169,7 @@ class Mouse2SVG {
169
169
  const clefDisplacement = this.measureMatrix.get(idxParentMeasure, idxStaff).clefdisplacement;
170
170
  Array.from(g).forEach((staffLine, idx) => {
171
171
  if (staffLine.id === "") {
172
- staffLine.id = (0, random_1.uuidv4)();
172
+ staffLine.id = random_1.uuidv4();
173
173
  }
174
174
  staffLine.classList.add("staffLine");
175
175
  staffLine.classList.add("Clef" + clefShape + clefline + clefDisplacement);
@@ -600,7 +600,7 @@ class Mouse2SVG {
600
600
  }
601
601
  var artic = mappings_1.articButtonToAttr.get((_l = this.container.querySelector("#articGroup > .selected")) === null || _l === void 0 ? void 0 : _l.id);
602
602
  var newNote = {
603
- id: (0, random_1.uuidv4)(),
603
+ id: random_1.uuidv4(),
604
604
  pname: pname,
605
605
  dur: this.getDurationNewNote(),
606
606
  dots: this.getDotsNewNote(),
@@ -8,7 +8,7 @@ const buttonStyleDarkOutline = "btn btn-outline-dark btn-md";
8
8
  function createColorPicker(id, onColorChange) {
9
9
  const domNode = document.createElement("div");
10
10
  domNode.setAttribute("id", id);
11
- const root = (0, client_1.createRoot)(domNode);
11
+ const root = client_1.createRoot(domNode);
12
12
  root.render(React.createElement(ColorPickerWrapper, { onColorChange: onColorChange }));
13
13
  return domNode;
14
14
  }
@@ -336,7 +336,7 @@ class SVGEditor {
336
336
  var barLine = measureSVG.querySelector(".barLine");
337
337
  var coordinates = coords.getDOMMatrixCoordinates(barLine, barLine.closest("g"));
338
338
  var textGroup = document.createElementNS(constants_1.constants._SVGNS_, "g");
339
- textGroup.setAttribute("id", (0, random_1.uuidv4)());
339
+ textGroup.setAttribute("id", random_1.uuidv4());
340
340
  textGroup.setAttribute("targetId", barLine.id);
341
341
  var text = document.createElementNS(constants_1.constants._SVGNS_, "svg");
342
342
  var textForeignObject = document.createElementNS(constants_1.constants._SVGNS_, "foreignObject");
@@ -419,7 +419,7 @@ class SVGEditor {
419
419
  else {
420
420
  Array.from(element.querySelectorAll("*")).forEach(el => {
421
421
  if (el.id === "") {
422
- el.setAttribute("id", (0, random_1.uuidv4)());
422
+ el.setAttribute("id", random_1.uuidv4());
423
423
  }
424
424
  });
425
425
  }
@@ -0,0 +1,785 @@
1
+ @import '~bootstrap/dist/css/bootstrap.min.css';
2
+
3
+ @font-face {
4
+ font-family: "Bravura";
5
+ src: url('../fonts/bravura/svg/Bravura.svg#7377dd80c36b825ad2214a14c2421925') format('svg');
6
+ font-weight: normal;
7
+ font-style: normal;
8
+ }
9
+
10
+ @font-face {
11
+ font-family: "BravuraText";
12
+ src: url('../fonts/bravura/svg/BravuraText.svg#f678e10c1f5609a8428c245cc86aa255') format('svg');
13
+ font-weight: normal;
14
+ font-style: normal;}
15
+
16
+ .dropdown button{
17
+ height: 100%;
18
+ }
19
+
20
+ .vibe-container{
21
+ position: absolute;
22
+ width: 100%;
23
+ height: 100%;
24
+ background: white;
25
+ /* overflow: scroll; */
26
+ }
27
+
28
+ body.waiting * {
29
+ cursor: wait !important;
30
+ }
31
+ /*
32
+ .textmode * {
33
+ cursor: text;
34
+ } */
35
+
36
+
37
+ #scoreRects > :is(.notehead, .clef, .meterSig, .keySig, .rest, .harm, .manipulator, .slur, .tie, .tupletNum, .tupletBracket):hover{
38
+ cursor: pointer;
39
+ }
40
+
41
+ #scoreRects .notehead:hover{
42
+ cursor: ns-resize !important;
43
+ }
44
+
45
+ .clickmode{
46
+ cursor: crosshair
47
+ }
48
+
49
+ #vrvSVG{
50
+ top: 0px;
51
+ width: 100%;
52
+ height: auto;
53
+ position: absolute;
54
+ display: flex;
55
+ flex-direction: column;
56
+ }
57
+
58
+ /* .layer:not(.activeLayer) *{
59
+ fill: rgba(0, 0 , 0, 0.2)
60
+ } */
61
+
62
+ /* .layer:not(.activeLayer) :is(.rest, .mRest) > use{
63
+ fill: rgba(0, 0 , 0, 0.0)
64
+ } */
65
+
66
+ .page{
67
+ translate: 0 10%;
68
+ }
69
+
70
+ #vrvSVG .systemLine{
71
+ stroke: black;
72
+ stroke-dasharray: 10rem;
73
+ stroke-width: 1rem;
74
+ }
75
+
76
+ #interactionOverlay{
77
+ position: absolute;
78
+ top: 0px;
79
+ width: 100%;
80
+ z-index: 100;
81
+ }
82
+
83
+ /* This one is for Debugging.
84
+ Change fill-opacity and stroke-opacity to display boundsing boxes*/
85
+ .debug #scoreRects *, #scoreRects .moving{
86
+ stroke-width: 1px;
87
+ stroke: black;
88
+ fill: gray;
89
+ fill-opacity: 0.1;
90
+ stroke-opacity: 1;
91
+ }
92
+
93
+ /* .debug > div#svgContainer > svg#interactionOverlay{
94
+ stroke-width: 2px;
95
+ stroke: red;
96
+ stroke-opacity: 1;
97
+ stroke-dasharray: 10px;
98
+ } */
99
+
100
+ /* .debug #vrvSVG{
101
+ stroke-width: 2px;
102
+ stroke: blue;
103
+ stroke-opacity: 1;
104
+ stroke-dasharray: 2px;
105
+ } */
106
+
107
+ /* .debug .page{
108
+ stroke-width: 2px;
109
+ stroke: green;
110
+ stroke-opacity: 1;
111
+ stroke-dasharray: 5px;
112
+ } */
113
+
114
+ #scoreRects *{
115
+ stroke-width: 1px;
116
+ stroke: black;
117
+ fill: gray;
118
+ fill-opacity: 0;
119
+ stroke-opacity: 0;
120
+ }
121
+
122
+
123
+ text{
124
+ cursor: text;
125
+ }
126
+
127
+
128
+ /*
129
+ #svgContainer, .annotLinkedText, .annotLinkedText *{
130
+ white-space: pre;
131
+ }
132
+ */
133
+
134
+ #svgContainer{
135
+ position: relative;
136
+ height: 100%;
137
+ overflow: scroll;
138
+ }
139
+
140
+ .staff.lastEntered > .staffLine:first-of-type, .staff.lastEntered > .staffLine:last-of-type, .staff.lastEntered ~ .barLine{
141
+ filter: drop-shadow(5px 16px 15px black)
142
+ }
143
+
144
+ /* .note, .note *, .rest, .rest *, .staff, .measure, .manipulator, .slur, .tie *{
145
+ cursor: pointer !important;
146
+ } */
147
+
148
+ /*
149
+ * TOOLBAR
150
+ */
151
+
152
+ .verticalLine{
153
+ border-left: 1px solid black;
154
+ height: auto;
155
+ position: absolute;
156
+ }
157
+
158
+ #insertMode.empty{
159
+ background-image: url(../images/GUI/edit-solid.svg);
160
+ background-position-x: 10%;
161
+ }
162
+
163
+
164
+ #insertMode{
165
+ background-color: white;
166
+ color: black;
167
+ }
168
+
169
+ .smufl{
170
+ font-family: "BravuraText";
171
+ /* font-size: xx-large; */
172
+ font-size: 160%;
173
+ }
174
+
175
+ .harm *{
176
+ font-family: "BravuraText";
177
+ }
178
+
179
+ #playBtn{
180
+ background-image: url(../images/GUI/play-solid.svg);
181
+ background-size: 80%;
182
+ }
183
+
184
+ #pauseBtn{
185
+ background-image: url(../images/GUI/pause-solid.svg);
186
+ background-size: 80%;
187
+ }
188
+
189
+ #rewindBtn{
190
+ background-image: url(../images/GUI/backward-fast-solid.svg);
191
+ background-size: 80%;
192
+ }
193
+
194
+ #zoomInBtn{
195
+ background-image: url(../images/GUI/zoomin.svg);
196
+ background-size: 80%;
197
+ }
198
+
199
+ #zoomOutBtn{
200
+ background-image: url(../images/GUI/zoomout.svg);
201
+ background-size: 80%;
202
+ }
203
+
204
+ #tupletBtn{
205
+ background-image: url(../images/GUI/triplet.svg);
206
+ background-size: 80%;
207
+ color: rgba(0, 0, 0, 0.0)
208
+ }
209
+
210
+ .btn{
211
+ background-repeat: no-repeat;
212
+ background-position-x: center;
213
+ background-position-y: center;
214
+ outline: none;
215
+ font-family: Bravura;
216
+ font-size: larger;
217
+ }
218
+
219
+ .articulationGroup .btn{
220
+ font-size: larger;
221
+ }
222
+
223
+ .btn-group-md{
224
+ display: flex;
225
+ }
226
+
227
+ /* .btn:hover, .btn.selected {
228
+ filter: invert();
229
+ color: black;
230
+ background-color: white;
231
+ } */
232
+
233
+ .btn:hover{
234
+ background-color: lightgray;
235
+ color: #ffffff;
236
+
237
+ }
238
+
239
+ .btn.selected {
240
+ background-color: black;
241
+ color: #ffffff;
242
+
243
+ }
244
+
245
+ #btnToolbar{
246
+ top: 0px;
247
+ transition: 0.5s;
248
+ /*height: 5%;*/
249
+ }
250
+
251
+ #customToolbar :first-child{
252
+ margin-left: 0.25em;
253
+ }
254
+
255
+ #customToolbar{
256
+ box-shadow: 0px 1px 3px lightgray;
257
+ }
258
+
259
+ #btnToolbar{
260
+ box-shadow: inset 0px -3px 3px lightgray;
261
+ }
262
+
263
+ .dropdown-item.selected{
264
+ background-color: antiquewhite;
265
+ font-weight: bold;
266
+ }
267
+
268
+ .accordion-item, .accordion-header{
269
+ border-bottom-style: solid;
270
+ border-bottom-color: black;
271
+ border-bottom-width: 1.5px;
272
+ }
273
+
274
+ .accordion-button{
275
+ padding: 1.5rem 1.25rem !important;
276
+ }
277
+
278
+ #midiDeviceSelect{
279
+ width: 100%;
280
+ }
281
+
282
+ #toggleSidebar{
283
+ border-bottom-left-radius: 0;
284
+ border-top-left-radius: 0;
285
+ }
286
+
287
+ #toggleSidebar.closedSidebar{
288
+ background-image: url(../images/GUI/bars-solid.svg);
289
+ background-size: 80%;
290
+ }
291
+
292
+ #toggleSidebar.openSidebar{
293
+ background-image: url(../images/GUI/bars-solid.svg);
294
+ background-size: 80%;
295
+ }
296
+
297
+ #insertDropdownKM .hide{
298
+ display: none;
299
+ }
300
+
301
+ #insertToggleDiv{
302
+ display: none;
303
+ }
304
+
305
+ #fileSelectGroup{
306
+ align-self: flex-end;
307
+ margin-left: auto;
308
+ display:flex;
309
+ }
310
+
311
+ /* #midiSelectGroup{
312
+ align-self:baseline;
313
+ margin-left: auto;
314
+ display:flex
315
+ } */
316
+
317
+ #handlerGroup{
318
+ display: none
319
+ }
320
+
321
+ #importXML, #importAudioFile{
322
+ display: none;
323
+ }
324
+
325
+ #sidebarContainer{
326
+ position: absolute;
327
+ left: 0;
328
+ top: 0;
329
+ height: 100%;
330
+ border-color: black;
331
+ border-style: solid;
332
+ border-width: 1px;
333
+ background-color: white;
334
+ transition: 0.5s;
335
+ border-top-left-radius: 5px;
336
+ border-bottom-left-radius: 5px;
337
+ overflow: visible;
338
+ display: flex;
339
+ flex-direction: column;
340
+ }
341
+
342
+ #sidebarContainer a{
343
+ display: block;
344
+ padding-left: 10px;
345
+ }
346
+
347
+ /* #sidebarContainer *{
348
+ font-size: 10pt;
349
+ } */
350
+
351
+ #sidebarContainer.closedSidebar{
352
+ visibility: hidden;
353
+ width: 0
354
+ }
355
+
356
+ #sidebarContainer.openSidebar{
357
+ visibility: visible;
358
+ width: 10%;
359
+ }
360
+
361
+ #sidebarContainer.openSidebar ~ div {
362
+ margin-left: 10%;
363
+ width: 90%;
364
+ flex-wrap: wrap;
365
+ display: flex;
366
+ transition: 0.5s;
367
+ }
368
+
369
+ #sidebarContainer.closedSidebar ~ div{
370
+ margin-left: 0;
371
+ width: 100%;
372
+ transition: 0.5s;
373
+ }
374
+
375
+ #sidebarList{
376
+ position: relative;
377
+ overflow: scroll;
378
+ width: 100%;
379
+ resize: vertical;
380
+ }
381
+
382
+ .dropKey, .dropClef, .dropTime, .dropTempo{
383
+ fill: orange;
384
+ color: orange;
385
+ }
386
+
387
+ #timeDiv{
388
+ cursor:pointer !important;
389
+ }
390
+
391
+ #annotList{
392
+ width: 100%;
393
+ position: relative;
394
+ background-color: white;
395
+ border-top-color: black;
396
+ border-left-color: white;
397
+ border-right-color: white;
398
+ border-bottom-color: white;
399
+ border-style: double;
400
+ overflow: scroll;
401
+ order: 2;
402
+ resize: vertical;
403
+ }
404
+
405
+ #annotList > a{
406
+ white-space: pre-line;
407
+ overflow: unset;
408
+ }
409
+
410
+
411
+ .list-group{
412
+ display: block;
413
+ }
414
+
415
+ #btnToolbar{
416
+ display: flex;
417
+ }
418
+
419
+ .btn-toolbar:not(:empty){
420
+ border-top-color: rgba(0, 0, 0, 0);
421
+ border-right-color: rgba(0, 0, 0, 0);
422
+ border-left-color: rgba(0, 0, 0, 0);
423
+ border-bottom-color: black;
424
+ border-bottom-style: solid;
425
+ border-bottom-width: 3px;
426
+ }
427
+
428
+ .tabBtn{
429
+ border-bottom-color: rgba(0, 0, 0, 0.0);
430
+ border-bottom-left-radius: 0% !important;
431
+ border-bottom-right-radius: 0% !important;
432
+ margin-bottom: -3px;
433
+ }
434
+ [role="group"]{
435
+ margin-top: 3px;
436
+ margin-bottom: 3px;
437
+ }
438
+
439
+ #customToolbar [role="group"]{
440
+ margin-top: 1%;
441
+ margin-bottom: 1%;
442
+ }
443
+
444
+ [role="group"] button:first-of-type{
445
+ border-bottom-left-radius: .2rem;
446
+ border-top-left-radius: .2rem;
447
+ }
448
+
449
+ [role="group"] button:last-of-type{
450
+ border-bottom-right-radius: .2rem;
451
+ border-top-right-radius: .2rem;
452
+ }
453
+
454
+ .btn-group-md>.btn, .btn-sm{
455
+ border-radius: 0%;
456
+ }
457
+
458
+
459
+ /*
460
+ * ANNOTATIONS
461
+ */
462
+
463
+ /*
464
+ #annotationCanvas.back *{
465
+ opacity: 0.5;
466
+ }*/
467
+
468
+ /* #annotationCanvas.front *{
469
+ opacity: 1;
470
+ } */
471
+
472
+
473
+
474
+ .annotLinkedText .annotFO{
475
+ /*background-color: rgba(255, 255, 153, 0.8);*/
476
+ background-color: rgba(0, 0, 0, 0.1);
477
+ border-radius: 0px 10px 10px 10px;
478
+ border-color: black;
479
+ border-style: solid;
480
+ border-width: 3px;
481
+ }
482
+
483
+
484
+ .annotStaticText .annotFO div{
485
+ background-color: white;
486
+ border: 1px solid black;
487
+ }
488
+
489
+ .annotDiv{
490
+ height: 100%;
491
+ width: 100%;
492
+ }
493
+
494
+ .annotLine{
495
+ stroke-width: 2px;
496
+ stroke: lightskyblue;
497
+ stroke-dasharray: 2px;
498
+ }
499
+
500
+
501
+ .lineDragRect{
502
+ stroke-width: 1px;
503
+ stroke: black;
504
+ fill: wheat;
505
+ height: 10px;
506
+ width: 10px;
507
+ transform: translate(-5, -5);
508
+ }
509
+
510
+ .highlightAnnotation, .highlightChord{
511
+ /*fill-opacity: 0.1;
512
+ outline-style: dotted;
513
+ outline-width: 0.5px;
514
+ outline-color: black; */
515
+ filter: drop-shadow( 0px 0px 3em teal)
516
+ }
517
+
518
+ #playCursor{
519
+ stroke-width: 10px;
520
+ stroke: orangered;
521
+ }
522
+
523
+ .layer[n="1"] .highlighted{
524
+
525
+ filter: drop-shadow(30px 10px 4px rgb(255, 71, 255));
526
+ }
527
+
528
+ #phantomNote.l1{
529
+ fill: rgb(255, 71, 255)
530
+ }
531
+
532
+
533
+ .layer[n="2"] .highlighted{
534
+ filter: drop-shadow(30px 10px 4px green);
535
+ }
536
+
537
+ #phantomNote.l2{
538
+ fill: green;
539
+ }
540
+
541
+ .layer[n="3"] .highlighted{
542
+ filter: drop-shadow(30px 10px 4px blue);
543
+ }
544
+
545
+ #phantomNote.l3{
546
+ fill: blue;
547
+ }
548
+
549
+ .layer[n="4"] .highlighted{
550
+ filter: drop-shadow(30px 10px 4px orange);
551
+ }
552
+
553
+ #phantomNote.l4{
554
+ fill: orange;
555
+ }
556
+
557
+ .customAnnotShape{
558
+ fill: orange;
559
+ fill-opacity: 0.2;
560
+ outline-style: dotted;
561
+ outline-width: 0.5px;
562
+ outline-color: black;
563
+ }
564
+
565
+ .customAnnotShape.selected{
566
+ outline-style: dashed;
567
+ outline-color:cornflowerblue;
568
+ outline-width: 1;
569
+ }
570
+
571
+
572
+ .annotLinkedText.selected > .annotFO, .annotStaticText.selected > .annotFO{
573
+ border-color:cornflowerblue;
574
+ border-width: 1;
575
+ border-style: dashed;
576
+ }
577
+
578
+
579
+ [contentEditable=false]:empty:not(:focus):before{
580
+ content:attr(data-text);
581
+ color: lightgray;
582
+ }
583
+
584
+ g.currentlyPlaying *{
585
+ fill:red !important;
586
+ fill-opacity: 1;
587
+ }
588
+
589
+ #followerRect{
590
+ fill: red;
591
+ fill-opacity: 0.3;
592
+ outline-style: none;
593
+ }
594
+
595
+ .marked, .marked *{
596
+ /* fill: red !important; */
597
+ filter: invert() drop-shadow(0 0 1rem crimson);
598
+ }
599
+
600
+ .lastAdded{
601
+ fill:darkcyan
602
+ }
603
+
604
+ .playing{
605
+ fill: red
606
+ }
607
+
608
+ /* LABELS */
609
+
610
+ .labelDiv{
611
+ border: 2px solid black;
612
+ border-radius: 10px;
613
+ height: fit-content;
614
+ width: fit-content;
615
+ min-width: 50px;
616
+ background-color: beige;
617
+ font-size: 40px;
618
+ font-family: 'Times New Roman', Times, serif;
619
+ }
620
+
621
+ .labekFO{
622
+ height: 100%;
623
+ width: 100%;
624
+ }
625
+
626
+ /* KEYMODE */
627
+
628
+ #keyModeSelectRect{
629
+ stroke: black;
630
+ stroke-opacity: 1;
631
+ stroke-width: 2px;
632
+ fill: lightskyblue;
633
+ fill-opacity: 0.4;
634
+ }
635
+
636
+ /* #manipulatorCanvas > #cursor{
637
+ display: none
638
+ } */
639
+
640
+ /* CLICK MODE */
641
+
642
+
643
+ /* #phantomNote{
644
+ transform: skew(-20deg);
645
+ } */
646
+
647
+
648
+ .phantomLine, .phantomMarker{
649
+ stroke-width: 2px;
650
+ stroke:black;
651
+ opacity: 0.5;
652
+ }
653
+
654
+
655
+ /*StatusBar*/
656
+
657
+ #statusBar{
658
+ position: absolute;
659
+ height: 5%;
660
+ width: 100%;
661
+ bottom: 0;
662
+ background-color: lightskyblue;
663
+ border-style: outset;
664
+ z-index: 100;
665
+ }
666
+
667
+
668
+ /*Score Manipulator*/
669
+
670
+ #manipulatorCanvas{
671
+ z-index: 101;
672
+ }
673
+
674
+ .signElement{
675
+ stroke: black;
676
+ stroke-width: 10%;
677
+ }
678
+
679
+ #measureAdder, #measureRemover{
680
+ height: 10%;
681
+ width: 10%;
682
+ }
683
+
684
+ #manipulationButton{
685
+ stroke:black;
686
+ stroke-width: 5%;
687
+ fill: antiquewhite;
688
+ }
689
+
690
+ .manipulator:hover *:not(.selected) , .manipulator.selected{
691
+ filter: invert();
692
+ cursor: pointer;
693
+ }
694
+
695
+ .voiceBtn.inactive > rect{
696
+ fill: lightgray;
697
+ }
698
+
699
+ .voiceBtn.inactive > text{
700
+ fill: gray;
701
+ }
702
+
703
+
704
+ .voiceBtn > rect{
705
+ stroke-width: 5%;
706
+ stroke: black;
707
+ width: 100%;
708
+ height: 100%;
709
+ fill: antiquewhite
710
+ }
711
+
712
+ .voiceBtn > text{
713
+ font-size: 100%;
714
+ width: 100%;
715
+ height: 100%;
716
+ fill: black;
717
+ }
718
+
719
+ .tooltip.show{
720
+ display:contents;
721
+ background: skyblue;
722
+ color: #643045;
723
+ font-weight: bold;
724
+ padding: 5px 10px;
725
+ font-size: 13px;
726
+ border-radius: 4px;
727
+ border-color: maroon;
728
+ display: block;
729
+ opacity: 1;
730
+ position: absolute;
731
+ }
732
+
733
+ /* .tooltip{
734
+ inset: !important;
735
+ } */
736
+
737
+ .tooltip.hide{
738
+ display: none
739
+ }
740
+
741
+ .overfillMark{
742
+ color:rgba(0, 0, 0, 0.5);
743
+ font-size: 12em;
744
+ font-weight: bolder;
745
+ z-index: 100;
746
+
747
+ }
748
+
749
+ /*Disable interaction*/
750
+
751
+ #ff_warning{
752
+ background: rgba(0, 0, 0, 0.25);
753
+ width: 100%;
754
+ margin: auto;
755
+ height: 100%;
756
+ text-align: center;
757
+ font-size: xx-large;
758
+ color:crimson;
759
+ text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
760
+ }
761
+
762
+ .hideUI{
763
+ display: none !important;
764
+ }
765
+
766
+ #pauseNote{
767
+ display: none;
768
+ }
769
+
770
+ #interactionOverlay, #vrvSVG > svg{
771
+ transform-origin: top left
772
+ }
773
+
774
+ .indexBase{
775
+ font-size: 0.7em;
776
+ }
777
+
778
+ foreignObject > [contenteditable]{
779
+ font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
780
+
781
+ }
782
+
783
+ button{
784
+ box-shadow: none !important;
785
+ }