chordsheetjs 14.5.0 → 14.6.0

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/lib/bundle.js CHANGED
@@ -14251,7 +14251,7 @@ var ChordSheetJS = (() => {
14251
14251
  function createDOMPurify() {
14252
14252
  let window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
14253
14253
  const DOMPurify = (root) => createDOMPurify(root);
14254
- DOMPurify.version = "3.3.2";
14254
+ DOMPurify.version = "3.4.0";
14255
14255
  DOMPurify.removed = [];
14256
14256
  if (!window2 || !window2.document || window2.document.nodeType !== NODE_TYPE.document || !window2.Element) {
14257
14257
  DOMPurify.isSupported = false;
@@ -14434,7 +14434,7 @@ var ChordSheetJS = (() => {
14434
14434
  NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
14435
14435
  MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
14436
14436
  HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
14437
- CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
14437
+ CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || create(null);
14438
14438
  if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
14439
14439
  CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
14440
14440
  }
@@ -14473,12 +14473,8 @@ var ChordSheetJS = (() => {
14473
14473
  addToSet(ALLOWED_ATTR, xml);
14474
14474
  }
14475
14475
  }
14476
- if (!objectHasOwnProperty(cfg, "ADD_TAGS")) {
14477
- EXTRA_ELEMENT_HANDLING.tagCheck = null;
14478
- }
14479
- if (!objectHasOwnProperty(cfg, "ADD_ATTR")) {
14480
- EXTRA_ELEMENT_HANDLING.attributeCheck = null;
14481
- }
14476
+ EXTRA_ELEMENT_HANDLING.tagCheck = null;
14477
+ EXTRA_ELEMENT_HANDLING.attributeCheck = null;
14482
14478
  if (cfg.ADD_TAGS) {
14483
14479
  if (typeof cfg.ADD_TAGS === "function") {
14484
14480
  EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
@@ -14701,6 +14697,10 @@ var ChordSheetJS = (() => {
14701
14697
  _forceRemove(currentNode);
14702
14698
  return true;
14703
14699
  }
14700
+ if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === "style" && _isNode(currentNode.firstElementChild)) {
14701
+ _forceRemove(currentNode);
14702
+ return true;
14703
+ }
14704
14704
  if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
14705
14705
  _forceRemove(currentNode);
14706
14706
  return true;
@@ -14709,7 +14709,7 @@ var ChordSheetJS = (() => {
14709
14709
  _forceRemove(currentNode);
14710
14710
  return true;
14711
14711
  }
14712
- if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
14712
+ if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
14713
14713
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
14714
14714
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
14715
14715
  return false;
@@ -14889,7 +14889,7 @@ var ChordSheetJS = (() => {
14889
14889
  }
14890
14890
  _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
14891
14891
  };
14892
- const _sanitizeShadowDOM = function _sanitizeShadowDOM2(fragment) {
14892
+ const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {
14893
14893
  let shadowNode = null;
14894
14894
  const shadowIterator = _createNodeIterator(fragment);
14895
14895
  _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);
@@ -14968,13 +14968,21 @@ var ChordSheetJS = (() => {
14968
14968
  _sanitizeElements(currentNode);
14969
14969
  _sanitizeAttributes(currentNode);
14970
14970
  if (currentNode.content instanceof DocumentFragment) {
14971
- _sanitizeShadowDOM(currentNode.content);
14971
+ _sanitizeShadowDOM2(currentNode.content);
14972
14972
  }
14973
14973
  }
14974
14974
  if (IN_PLACE) {
14975
14975
  return dirty;
14976
14976
  }
14977
14977
  if (RETURN_DOM) {
14978
+ if (SAFE_FOR_TEMPLATES) {
14979
+ body.normalize();
14980
+ let html2 = body.innerHTML;
14981
+ arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
14982
+ html2 = stringReplace(html2, expr, " ");
14983
+ });
14984
+ body.innerHTML = html2;
14985
+ }
14978
14986
  if (RETURN_DOM_FRAGMENT) {
14979
14987
  returnNode = createDocumentFragment.call(body.ownerDocument);
14980
14988
  while (body.firstChild) {
@@ -15105,7 +15113,7 @@ var ChordSheetJS = (() => {
15105
15113
  text = freeze(["#text"]);
15106
15114
  html = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]);
15107
15115
  svg = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "mask-type", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]);
15108
- mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]);
15116
+ mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnalign", "columnlines", "columnspacing", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lquote", "lspace", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]);
15109
15117
  xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]);
15110
15118
  MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
15111
15119
  ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
@@ -15138,20 +15146,11 @@ var ChordSheetJS = (() => {
15138
15146
  });
15139
15147
  NODE_TYPE = {
15140
15148
  element: 1,
15141
- attribute: 2,
15142
15149
  text: 3,
15143
- cdataSection: 4,
15144
- entityReference: 5,
15145
- // Deprecated
15146
- entityNode: 6,
15147
15150
  // Deprecated
15148
15151
  progressingInstruction: 7,
15149
15152
  comment: 8,
15150
- document: 9,
15151
- documentType: 10,
15152
- documentFragment: 11,
15153
- notation: 12
15154
- // Deprecated
15153
+ document: 9
15155
15154
  };
15156
15155
  getGlobal = function getGlobal2() {
15157
15156
  return typeof window === "undefined" ? null : window;
@@ -34237,6 +34236,7 @@ var ChordSheetJS = (() => {
34237
34236
  "m(maj7)": "m(ma7)",
34238
34237
  "m(+7)": "m(ma7)",
34239
34238
  "m+7": "m(ma7)",
34239
+ "mmaj7": "m(ma7)",
34240
34240
  "m(ma9)": "m(ma9)",
34241
34241
  "m(M9)": "m(ma9)",
34242
34242
  "mM9": "m(ma9)",
@@ -36962,8 +36962,9 @@ ${error.stack}`);
36962
36962
  */
36963
36963
  toString({ useUnicodeModifier = false } = {}) {
36964
36964
  let chordString = "";
36965
- const suffix = this.suffix || "";
36965
+ let suffix = this.suffix || "";
36966
36966
  const showMinor = suffix[0] !== "m";
36967
+ if (useUnicodeModifier) suffix = suffix.replace(/#(?=\d)/g, "\u266F").replace(/b(?=\d)/g, "\u266D");
36967
36968
  if (this.root) chordString = this.root.toString({
36968
36969
  showMinor,
36969
36970
  useUnicodeModifier
@@ -38541,129 +38542,301 @@ ${error.stack}`);
38541
38542
  },
38542
38543
  fonts: {
38543
38544
  title: {
38544
- name: "NimbusSansL-Bol",
38545
+ name: "Arial",
38545
38546
  style: "bold",
38546
- size: 24,
38547
- color: "black"
38547
+ size: 22,
38548
+ color: "#151515"
38548
38549
  },
38549
38550
  subtitle: {
38550
- name: "NimbusSansL-Reg",
38551
+ name: "Arial",
38551
38552
  style: "normal",
38552
- size: 10,
38553
- color: 100
38553
+ size: 11,
38554
+ color: "#6f6f6f"
38554
38555
  },
38555
38556
  metadata: {
38556
- name: "NimbusSansL-Reg",
38557
+ name: "Arial",
38557
38558
  style: "normal",
38558
38559
  size: 10,
38559
- color: 100
38560
+ color: "#8b8b8b"
38560
38561
  },
38561
38562
  text: {
38562
- name: "NimbusSansL-Reg",
38563
+ name: "Arial",
38563
38564
  style: "normal",
38564
38565
  size: 10,
38565
- color: "black"
38566
+ color: "#232323"
38566
38567
  },
38567
38568
  chord: {
38568
- name: "NimbusSansL-Bol",
38569
+ name: "Arial",
38569
38570
  style: "bold",
38570
38571
  size: 9,
38571
- color: "black"
38572
+ color: "#232323"
38572
38573
  },
38573
38574
  comment: {
38574
- name: "NimbusSansL-Bol",
38575
+ name: "Arial",
38575
38576
  style: "bold",
38576
38577
  size: 10,
38577
- color: "black"
38578
+ color: "#232323"
38578
38579
  },
38579
38580
  sectionLabel: {
38580
- name: "NimbusSansL-Bol",
38581
+ name: "Arial",
38581
38582
  style: "bold",
38582
38583
  size: 10,
38583
- color: "black"
38584
+ color: "#a1312d"
38584
38585
  },
38585
38586
  annotation: {
38586
- name: "NimbusSansL-Reg",
38587
+ name: "Arial",
38587
38588
  style: "normal",
38588
38589
  size: 10,
38589
- color: "black"
38590
+ color: "#232323"
38590
38591
  }
38591
38592
  },
38592
38593
  layout: {
38593
38594
  global: {
38594
38595
  margins: {
38595
- top: 35,
38596
- bottom: 10,
38596
+ top: 14,
38597
+ bottom: 12,
38597
38598
  left: 45,
38598
38599
  right: 45
38599
38600
  }
38600
38601
  },
38601
38602
  header: {
38602
- height: 60,
38603
+ height: 72,
38603
38604
  content: [
38604
38605
  {
38605
38606
  type: "text",
38606
38607
  template: "%{title}",
38607
38608
  style: {
38608
- name: "NimbusSansL-Bol",
38609
+ name: "Arial",
38609
38610
  style: "bold",
38610
- size: 24,
38611
- color: "black"
38611
+ size: 19,
38612
+ color: "#151515",
38613
+ weight: 700
38612
38614
  },
38613
38615
  position: {
38614
38616
  x: "left",
38615
- y: 15
38617
+ y: 0,
38618
+ clip: true,
38619
+ ellipsis: true
38620
+ },
38621
+ condition: {
38622
+ page: {
38623
+ first: true
38624
+ }
38616
38625
  }
38617
38626
  },
38618
38627
  {
38619
38628
  type: "text",
38620
- template: "Key of %{key} - BPM %{tempo} - Time %{time}",
38629
+ template: "%{artist}",
38621
38630
  style: {
38622
- name: "NimbusSansL-Reg",
38631
+ name: "Arial",
38623
38632
  style: "normal",
38624
- size: 12,
38625
- color: 100
38633
+ size: 11,
38634
+ color: "#6f6f6f"
38626
38635
  },
38627
38636
  position: {
38628
38637
  x: "left",
38629
- y: 28
38638
+ y: 25,
38639
+ clip: true,
38640
+ ellipsis: true
38641
+ },
38642
+ condition: {
38643
+ page: {
38644
+ first: true
38645
+ }
38630
38646
  }
38631
38647
  },
38632
38648
  {
38633
38649
  type: "text",
38634
- template: "By %{artist} %{subtitle}",
38650
+ template: "%{tempo|%{} BPM}%{time| \xB7 %{}}%{capo| \xB7 Capo %{}}",
38635
38651
  style: {
38636
- name: "NimbusSansL-Reg",
38652
+ name: "Arial",
38637
38653
  style: "normal",
38638
- size: 10,
38639
- color: 100
38654
+ size: 11,
38655
+ color: "#6f6f6f"
38640
38656
  },
38641
38657
  position: {
38642
38658
  x: "left",
38643
- y: 38
38659
+ y: 40,
38660
+ width: 240,
38661
+ clip: true,
38662
+ ellipsis: true
38663
+ },
38664
+ condition: {
38665
+ page: {
38666
+ first: true
38667
+ }
38644
38668
  }
38645
- }
38646
- ]
38647
- },
38648
- footer: {
38649
- height: 30,
38650
- content: [
38669
+ },
38670
+ {
38671
+ type: "line",
38672
+ style: {
38673
+ width: 1,
38674
+ color: "#d7d7d7"
38675
+ },
38676
+ position: {
38677
+ x: 0,
38678
+ y: 60,
38679
+ width: "auto",
38680
+ height: 0
38681
+ },
38682
+ condition: {
38683
+ page: {
38684
+ first: true
38685
+ }
38686
+ }
38687
+ },
38651
38688
  {
38652
38689
  type: "text",
38653
- value: "\xA92024 My Music Publishing",
38690
+ template: "%{key}",
38691
+ cssClass: "measured-html-key-badge",
38692
+ elementStyle: {
38693
+ width: "28px",
38694
+ height: "28px",
38695
+ display: "flex",
38696
+ alignItems: "center",
38697
+ justifyContent: "center",
38698
+ borderRadius: "999px",
38699
+ backgroundColor: "#a1312d",
38700
+ textAlign: "center",
38701
+ boxSizing: "border-box"
38702
+ },
38654
38703
  style: {
38655
- name: "NimbusSansL-Reg",
38704
+ name: "Arial",
38705
+ style: "bold",
38706
+ size: 12,
38707
+ color: "#ffffff",
38708
+ weight: 700
38709
+ },
38710
+ position: {
38711
+ x: "right",
38712
+ y: 12,
38713
+ width: 28,
38714
+ offsetX: -2
38715
+ },
38716
+ condition: {
38717
+ and: [
38718
+ {
38719
+ page: {
38720
+ first: true
38721
+ }
38722
+ },
38723
+ {
38724
+ key: {
38725
+ exists: true
38726
+ }
38727
+ }
38728
+ ]
38729
+ }
38730
+ },
38731
+ {
38732
+ type: "text",
38733
+ template: "%{title}",
38734
+ style: {
38735
+ name: "Arial",
38736
+ style: "bold",
38737
+ size: 12,
38738
+ color: "#151515",
38739
+ weight: 700
38740
+ },
38741
+ position: {
38742
+ x: "left",
38743
+ y: 0,
38744
+ clip: true,
38745
+ ellipsis: true
38746
+ },
38747
+ condition: {
38748
+ page: {
38749
+ greater_than: 1
38750
+ }
38751
+ }
38752
+ },
38753
+ {
38754
+ type: "text",
38755
+ template: "%{page}/%{pages}",
38756
+ style: {
38757
+ name: "Arial",
38656
38758
  style: "normal",
38657
38759
  size: 10,
38658
- color: "black"
38760
+ color: "#9a9a9a"
38659
38761
  },
38660
38762
  position: {
38661
- x: "left",
38662
- y: 0
38763
+ x: "right",
38764
+ y: 4,
38765
+ offsetX: -38
38766
+ },
38767
+ condition: {
38768
+ page: {
38769
+ greater_than: 1
38770
+ }
38771
+ }
38772
+ },
38773
+ {
38774
+ type: "text",
38775
+ template: "%{key}",
38776
+ cssClass: "measured-html-key-badge",
38777
+ elementStyle: {
38778
+ width: "28px",
38779
+ height: "28px",
38780
+ display: "flex",
38781
+ alignItems: "center",
38782
+ justifyContent: "center",
38783
+ borderRadius: "999px",
38784
+ backgroundColor: "#a1312d",
38785
+ textAlign: "center",
38786
+ boxSizing: "border-box"
38787
+ },
38788
+ style: {
38789
+ name: "Arial",
38790
+ style: "bold",
38791
+ size: 12,
38792
+ color: "#ffffff",
38793
+ weight: 700
38794
+ },
38795
+ position: {
38796
+ x: "right",
38797
+ y: 2,
38798
+ width: 28,
38799
+ offsetX: -2
38800
+ },
38801
+ condition: {
38802
+ and: [
38803
+ {
38804
+ page: {
38805
+ greater_than: 1
38806
+ }
38807
+ },
38808
+ {
38809
+ key: {
38810
+ exists: true
38811
+ }
38812
+ }
38813
+ ]
38814
+ }
38815
+ },
38816
+ {
38817
+ type: "line",
38818
+ style: {
38819
+ width: 1,
38820
+ color: "#d7d7d7"
38821
+ },
38822
+ position: {
38823
+ x: 0,
38824
+ y: 32,
38825
+ width: "auto",
38826
+ height: 0
38827
+ },
38828
+ condition: {
38829
+ page: {
38830
+ greater_than: 1
38831
+ }
38663
38832
  }
38664
38833
  }
38665
38834
  ]
38666
38835
  },
38836
+ footer: {
38837
+ height: 0,
38838
+ content: []
38839
+ },
38667
38840
  sections: {
38668
38841
  global: {
38669
38842
  paragraphSpacing: 10,
@@ -38710,22 +38883,22 @@ ${error.stack}`);
38710
38883
  },
38711
38884
  fonts: {
38712
38885
  title: {
38713
- name: "NimbusSansL-Bol",
38886
+ name: "Arial",
38714
38887
  style: "bold",
38715
38888
  size: 9,
38716
- color: "black"
38889
+ color: "#232323"
38717
38890
  },
38718
38891
  fingerings: {
38719
- name: "NimbusSansL-Bol",
38892
+ name: "Arial",
38720
38893
  style: "bold",
38721
38894
  size: 6,
38722
- color: "black"
38895
+ color: "#232323"
38723
38896
  },
38724
38897
  baseFret: {
38725
- name: "NimbusSansL-Bol",
38898
+ name: "Arial",
38726
38899
  style: "bold",
38727
38900
  size: 6,
38728
- color: "black"
38901
+ color: "#232323"
38729
38902
  }
38730
38903
  }
38731
38904
  }
@@ -48326,555 +48499,557 @@ Or set the song key before changing key:
48326
48499
  const peg$c1346 = peg$literalExpectation("m(M7)", false);
48327
48500
  const peg$c1347 = "m(+7)";
48328
48501
  const peg$c1348 = peg$literalExpectation("m(+7)", false);
48329
- const peg$c1349 = "m(M9)";
48330
- const peg$c1350 = peg$literalExpectation("m(M9)", false);
48331
- const peg$c1351 = "m(+9)";
48332
- const peg$c1352 = peg$literalExpectation("m(+9)", false);
48333
- const peg$c1353 = "min11";
48334
- const peg$c1354 = peg$literalExpectation("min11", false);
48335
- const peg$c1355 = "m11#5";
48336
- const peg$c1356 = peg$literalExpectation("m11#5", false);
48337
- const peg$c1357 = "m11+5";
48338
- const peg$c1358 = peg$literalExpectation("m11+5", false);
48339
- const peg$c1359 = "-11#5";
48340
- const peg$c1360 = peg$literalExpectation("-11#5", false);
48341
- const peg$c1361 = "m11#9";
48342
- const peg$c1362 = peg$literalExpectation("m11#9", false);
48343
- const peg$c1363 = "m11+9";
48344
- const peg$c1364 = peg$literalExpectation("m11+9", false);
48345
- const peg$c1365 = "-11#9";
48346
- const peg$c1366 = peg$literalExpectation("-11#9", false);
48347
- const peg$c1367 = "-11+9";
48348
- const peg$c1368 = peg$literalExpectation("-11+9", false);
48349
- const peg$c1369 = "m11b5";
48350
- const peg$c1370 = peg$literalExpectation("m11b5", false);
48351
- const peg$c1371 = "m11-5";
48352
- const peg$c1372 = peg$literalExpectation("m11-5", false);
48353
- const peg$c1373 = "-11b5";
48354
- const peg$c1374 = peg$literalExpectation("-11b5", false);
48355
- const peg$c1375 = "m11b9";
48356
- const peg$c1376 = peg$literalExpectation("m11b9", false);
48357
- const peg$c1377 = "m11-9";
48358
- const peg$c1378 = peg$literalExpectation("m11-9", false);
48359
- const peg$c1379 = "-11b9";
48360
- const peg$c1380 = peg$literalExpectation("-11b9", false);
48361
- const peg$c1381 = "-11-9";
48362
- const peg$c1382 = peg$literalExpectation("-11-9", false);
48363
- const peg$c1383 = "min13";
48364
- const peg$c1384 = peg$literalExpectation("min13", false);
48365
- const peg$c1385 = "m13#5";
48366
- const peg$c1386 = peg$literalExpectation("m13#5", false);
48367
- const peg$c1387 = "m13+5";
48368
- const peg$c1388 = peg$literalExpectation("m13+5", false);
48369
- const peg$c1389 = "-13#5";
48370
- const peg$c1390 = peg$literalExpectation("-13#5", false);
48371
- const peg$c1391 = "m13#9";
48372
- const peg$c1392 = peg$literalExpectation("m13#9", false);
48373
- const peg$c1393 = "m13+9";
48374
- const peg$c1394 = peg$literalExpectation("m13+9", false);
48375
- const peg$c1395 = "-13#9";
48376
- const peg$c1396 = peg$literalExpectation("-13#9", false);
48377
- const peg$c1397 = "-13+9";
48378
- const peg$c1398 = peg$literalExpectation("-13+9", false);
48379
- const peg$c1399 = "m13b5";
48380
- const peg$c1400 = peg$literalExpectation("m13b5", false);
48381
- const peg$c1401 = "m13-5";
48382
- const peg$c1402 = peg$literalExpectation("m13-5", false);
48383
- const peg$c1403 = "-13b5";
48384
- const peg$c1404 = peg$literalExpectation("-13b5", false);
48385
- const peg$c1405 = "-13-5";
48386
- const peg$c1406 = peg$literalExpectation("-13-5", false);
48387
- const peg$c1407 = "m13b9";
48388
- const peg$c1408 = peg$literalExpectation("m13b9", false);
48389
- const peg$c1409 = "m13-9";
48390
- const peg$c1410 = peg$literalExpectation("m13-9", false);
48391
- const peg$c1411 = "madd2";
48392
- const peg$c1412 = peg$literalExpectation("madd2", false);
48393
- const peg$c1413 = "m6(9)";
48394
- const peg$c1414 = peg$literalExpectation("m6(9)", false);
48395
- const peg$c1415 = "m7#11";
48396
- const peg$c1416 = peg$literalExpectation("m7#11", false);
48397
- const peg$c1417 = "m7+11";
48398
- const peg$c1418 = peg$literalExpectation("m7+11", false);
48399
- const peg$c1419 = "-7#11";
48400
- const peg$c1420 = peg$literalExpectation("-7#11", false);
48401
- const peg$c1421 = "-7+11";
48402
- const peg$c1422 = peg$literalExpectation("-7+11", false);
48403
- const peg$c1423 = "m7(4)";
48404
- const peg$c1424 = peg$literalExpectation("m7(4)", false);
48405
- const peg$c1425 = "m7(6)";
48406
- const peg$c1426 = peg$literalExpectation("m7(6)", false);
48407
- const peg$c1427 = "m7b13";
48408
- const peg$c1428 = peg$literalExpectation("m7b13", false);
48409
- const peg$c1429 = "m7-13";
48410
- const peg$c1430 = peg$literalExpectation("m7-13", false);
48411
- const peg$c1431 = "-7b13";
48412
- const peg$c1432 = peg$literalExpectation("-7b13", false);
48413
- const peg$c1433 = "-7-13";
48414
- const peg$c1434 = peg$literalExpectation("-7-13", false);
48415
- const peg$c1435 = "m7sus";
48416
- const peg$c1436 = peg$literalExpectation("m7sus", false);
48417
- const peg$c1437 = "m9#11";
48418
- const peg$c1438 = peg$literalExpectation("m9#11", false);
48419
- const peg$c1439 = "m9+11";
48420
- const peg$c1440 = peg$literalExpectation("m9+11", false);
48421
- const peg$c1441 = "-9#11";
48422
- const peg$c1442 = peg$literalExpectation("-9#11", false);
48423
- const peg$c1443 = "-9+11";
48424
- const peg$c1444 = peg$literalExpectation("-9+11", false);
48425
- const peg$c1445 = "m9b13";
48426
- const peg$c1446 = peg$literalExpectation("m9b13", false);
48427
- const peg$c1447 = "m9-13";
48428
- const peg$c1448 = peg$literalExpectation("m9-13", false);
48429
- const peg$c1449 = "-9b13";
48430
- const peg$c1450 = peg$literalExpectation("-9b13", false);
48431
- const peg$c1451 = "-9-13";
48432
- const peg$c1452 = peg$literalExpectation("-9-13", false);
48433
- const peg$c1453 = "+11#5";
48434
- const peg$c1454 = peg$literalExpectation("+11#5", false);
48435
- const peg$c1455 = "M11+5";
48436
- const peg$c1456 = peg$literalExpectation("M11+5", false);
48437
- const peg$c1457 = "+11#9";
48438
- const peg$c1458 = peg$literalExpectation("+11#9", false);
48439
- const peg$c1459 = "M11+9";
48440
- const peg$c1460 = peg$literalExpectation("M11+9", false);
48441
- const peg$c1461 = "+11b5";
48442
- const peg$c1462 = peg$literalExpectation("+11b5", false);
48443
- const peg$c1463 = "M11-5";
48444
- const peg$c1464 = peg$literalExpectation("M11-5", false);
48445
- const peg$c1465 = "+11b9";
48446
- const peg$c1466 = peg$literalExpectation("+11b9", false);
48447
- const peg$c1467 = "+11-9";
48448
- const peg$c1468 = peg$literalExpectation("+11-9", false);
48449
- const peg$c1469 = "maj13";
48450
- const peg$c1470 = peg$literalExpectation("maj13", false);
48451
- const peg$c1471 = "Maj13";
48452
- const peg$c1472 = peg$literalExpectation("Maj13", false);
48453
- const peg$c1473 = "+13#5";
48454
- const peg$c1474 = peg$literalExpectation("+13#5", false);
48455
- const peg$c1475 = "M13+5";
48456
- const peg$c1476 = peg$literalExpectation("M13+5", false);
48457
- const peg$c1477 = "+13#9";
48458
- const peg$c1478 = peg$literalExpectation("+13#9", false);
48459
- const peg$c1479 = "+13+9";
48460
- const peg$c1480 = peg$literalExpectation("+13+9", false);
48461
- const peg$c1481 = "+13b5";
48462
- const peg$c1482 = peg$literalExpectation("+13b5", false);
48463
- const peg$c1483 = "M13-5";
48464
- const peg$c1484 = peg$literalExpectation("M13-5", false);
48465
- const peg$c1485 = "+13b9";
48466
- const peg$c1486 = peg$literalExpectation("+13b9", false);
48467
- const peg$c1487 = "M13-9";
48468
- const peg$c1488 = peg$literalExpectation("M13-9", false);
48469
- const peg$c1489 = "+7#11";
48470
- const peg$c1490 = peg$literalExpectation("+7#11", false);
48471
- const peg$c1491 = "M7+11";
48472
- const peg$c1492 = peg$literalExpectation("M7+11", false);
48473
- const peg$c1493 = "ma7#5";
48474
- const peg$c1494 = peg$literalExpectation("ma7#5", false);
48475
- const peg$c1495 = "ma7+5";
48476
- const peg$c1496 = peg$literalExpectation("ma7+5", false);
48477
- const peg$c1497 = "ma7#9";
48478
- const peg$c1498 = peg$literalExpectation("ma7#9", false);
48479
- const peg$c1499 = "ma7+9";
48480
- const peg$c1500 = peg$literalExpectation("ma7+9", false);
48481
- const peg$c1501 = "+7b13";
48482
- const peg$c1502 = peg$literalExpectation("+7b13", false);
48483
- const peg$c1503 = "M7-13";
48484
- const peg$c1504 = peg$literalExpectation("M7-13", false);
48485
- const peg$c1505 = "ma7b5";
48486
- const peg$c1506 = peg$literalExpectation("ma7b5", false);
48487
- const peg$c1507 = "ma7-5";
48488
- const peg$c1508 = peg$literalExpectation("ma7-5", false);
48489
- const peg$c1509 = "ma7b9";
48490
- const peg$c1510 = peg$literalExpectation("ma7b9", false);
48491
- const peg$c1511 = "ma7-9";
48492
- const peg$c1512 = peg$literalExpectation("ma7-9", false);
48493
- const peg$c1513 = "9(#7)";
48494
- const peg$c1514 = peg$literalExpectation("9(#7)", false);
48495
- const peg$c1515 = "+9#11";
48496
- const peg$c1516 = peg$literalExpectation("+9#11", false);
48497
- const peg$c1517 = "M9+11";
48498
- const peg$c1518 = peg$literalExpectation("M9+11", false);
48499
- const peg$c1519 = "ma9#5";
48500
- const peg$c1520 = peg$literalExpectation("ma9#5", false);
48501
- const peg$c1521 = "ma9+5";
48502
- const peg$c1522 = peg$literalExpectation("ma9+5", false);
48503
- const peg$c1523 = "+9b13";
48504
- const peg$c1524 = peg$literalExpectation("+9b13", false);
48505
- const peg$c1525 = "M9-13";
48506
- const peg$c1526 = peg$literalExpectation("M9-13", false);
48507
- const peg$c1527 = "ma9b5";
48508
- const peg$c1528 = peg$literalExpectation("ma9b5", false);
48509
- const peg$c1529 = "ma9-5";
48510
- const peg$c1530 = peg$literalExpectation("ma9-5", false);
48511
- const peg$c1531 = "(#4)";
48512
- const peg$c1532 = peg$literalExpectation("(#4)", false);
48513
- const peg$c1533 = "(+4)";
48514
- const peg$c1534 = peg$literalExpectation("(+4)", false);
48515
- const peg$c1535 = "(11)";
48516
- const peg$c1536 = peg$literalExpectation("(11)", false);
48517
- const peg$c1537 = "(13)";
48518
- const peg$c1538 = peg$literalExpectation("(13)", false);
48519
- const peg$c1539 = "add2";
48520
- const peg$c1540 = peg$literalExpectation("add2", false);
48521
- const peg$c1541 = "add4";
48522
- const peg$c1542 = peg$literalExpectation("add4", false);
48523
- const peg$c1543 = "add6";
48524
- const peg$c1544 = peg$literalExpectation("add6", false);
48525
- const peg$c1545 = "add9";
48526
- const peg$c1546 = peg$literalExpectation("add9", false);
48527
- const peg$c1547 = "(b5)";
48528
- const peg$c1548 = peg$literalExpectation("(b5)", false);
48529
- const peg$c1549 = "(-5)";
48530
- const peg$c1550 = peg$literalExpectation("(-5)", false);
48531
- const peg$c1551 = "2(6)";
48532
- const peg$c1552 = peg$literalExpectation("2(6)", false);
48533
- const peg$c1553 = "(b6)";
48534
- const peg$c1554 = peg$literalExpectation("(b6)", false);
48535
- const peg$c1555 = "unis";
48536
- const peg$c1556 = peg$literalExpectation("unis", false);
48537
- const peg$c1557 = "Majj";
48538
- const peg$c1558 = peg$literalExpectation("Majj", false);
48539
- const peg$c1559 = "(#5)";
48540
- const peg$c1560 = peg$literalExpectation("(#5)", false);
48541
- const peg$c1561 = "(+5)";
48542
- const peg$c1562 = peg$literalExpectation("(+5)", false);
48543
- const peg$c1563 = "11#5";
48544
- const peg$c1564 = peg$literalExpectation("11#5", false);
48545
- const peg$c1565 = "11+5";
48546
- const peg$c1566 = peg$literalExpectation("11+5", false);
48547
- const peg$c1567 = "11#9";
48548
- const peg$c1568 = peg$literalExpectation("11#9", false);
48549
- const peg$c1569 = "11+9";
48550
- const peg$c1570 = peg$literalExpectation("11+9", false);
48551
- const peg$c1571 = "11b5";
48552
- const peg$c1572 = peg$literalExpectation("11b5", false);
48553
- const peg$c1573 = "11-5";
48554
- const peg$c1574 = peg$literalExpectation("11-5", false);
48555
- const peg$c1575 = "11b9";
48556
- const peg$c1576 = peg$literalExpectation("11b9", false);
48557
- const peg$c1577 = "11-9";
48558
- const peg$c1578 = peg$literalExpectation("11-9", false);
48559
- const peg$c1579 = "13#5";
48560
- const peg$c1580 = peg$literalExpectation("13#5", false);
48561
- const peg$c1581 = "13+5";
48562
- const peg$c1582 = peg$literalExpectation("13+5", false);
48563
- const peg$c1583 = "13#9";
48564
- const peg$c1584 = peg$literalExpectation("13#9", false);
48565
- const peg$c1585 = "13+9";
48566
- const peg$c1586 = peg$literalExpectation("13+9", false);
48567
- const peg$c1587 = "13b5";
48568
- const peg$c1588 = peg$literalExpectation("13b5", false);
48569
- const peg$c1589 = "13-5";
48570
- const peg$c1590 = peg$literalExpectation("13-5", false);
48571
- const peg$c1591 = "13b9";
48572
- const peg$c1592 = peg$literalExpectation("13b9", false);
48573
- const peg$c1593 = "13-9";
48574
- const peg$c1594 = peg$literalExpectation("13-9", false);
48575
- const peg$c1595 = "sus2";
48576
- const peg$c1596 = peg$literalExpectation("sus2", false);
48577
- const peg$c1597 = "2(4)";
48578
- const peg$c1598 = peg$literalExpectation("2(4)", false);
48579
- const peg$c1599 = "4(2)";
48580
- const peg$c1600 = peg$literalExpectation("4(2)", false);
48581
- const peg$c1601 = "6(2)";
48582
- const peg$c1602 = peg$literalExpectation("6(2)", false);
48583
- const peg$c1603 = "6(9)";
48584
- const peg$c1604 = peg$literalExpectation("6(9)", false);
48585
- const peg$c1605 = "dom7";
48586
- const peg$c1606 = peg$literalExpectation("dom7", false);
48587
- const peg$c1607 = "7#11";
48588
- const peg$c1608 = peg$literalExpectation("7#11", false);
48589
- const peg$c1609 = "7+11";
48590
- const peg$c1610 = peg$literalExpectation("7+11", false);
48591
- const peg$c1611 = "aug7";
48592
- const peg$c1612 = peg$literalExpectation("aug7", false);
48593
- const peg$c1613 = "7(6)";
48594
- const peg$c1614 = peg$literalExpectation("7(6)", false);
48595
- const peg$c1615 = "7b13";
48596
- const peg$c1616 = peg$literalExpectation("7b13", false);
48597
- const peg$c1617 = "7-13";
48598
- const peg$c1618 = peg$literalExpectation("7-13", false);
48599
- const peg$c1619 = "7sus";
48600
- const peg$c1620 = peg$literalExpectation("7sus", false);
48601
- const peg$c1621 = "dom9";
48602
- const peg$c1622 = peg$literalExpectation("dom9", false);
48603
- const peg$c1623 = "9#11";
48604
- const peg$c1624 = peg$literalExpectation("9#11", false);
48605
- const peg$c1625 = "9+11";
48606
- const peg$c1626 = peg$literalExpectation("9+11", false);
48607
- const peg$c1627 = "aug9";
48608
- const peg$c1628 = peg$literalExpectation("aug9", false);
48609
- const peg$c1629 = "9b13";
48610
- const peg$c1630 = peg$literalExpectation("9b13", false);
48611
- const peg$c1631 = "9-13";
48612
- const peg$c1632 = peg$literalExpectation("9-13", false);
48613
- const peg$c1633 = "9aug";
48614
- const peg$c1634 = peg$literalExpectation("9aug", false);
48615
- const peg$c1635 = "9sus";
48616
- const peg$c1636 = peg$literalExpectation("9sus", false);
48617
- const peg$c1637 = "dim7";
48618
- const peg$c1638 = peg$literalExpectation("dim7", false);
48619
- const peg$c1639 = "m(4)";
48620
- const peg$c1640 = peg$literalExpectation("m(4)", false);
48621
- const peg$c1641 = "m(9)";
48622
- const peg$c1642 = peg$literalExpectation("m(9)", false);
48623
- const peg$c1643 = "mi11";
48624
- const peg$c1644 = peg$literalExpectation("mi11", false);
48625
- const peg$c1645 = "m9+5";
48626
- const peg$c1646 = peg$literalExpectation("m9+5", false);
48627
- const peg$c1647 = "-9-5";
48628
- const peg$c1648 = peg$literalExpectation("-9-5", false);
48629
- const peg$c1649 = "mi13";
48630
- const peg$c1650 = peg$literalExpectation("mi13", false);
48631
- const peg$c1651 = "min2";
48632
- const peg$c1652 = peg$literalExpectation("min2", false);
48633
- const peg$c1653 = "min6";
48634
- const peg$c1654 = peg$literalExpectation("min6", false);
48635
- const peg$c1655 = "m6M7";
48636
- const peg$c1656 = peg$literalExpectation("m6M7", false);
48637
- const peg$c1657 = "m6+7";
48638
- const peg$c1658 = peg$literalExpectation("m6+7", false);
48639
- const peg$c1659 = "min7";
48640
- const peg$c1660 = peg$literalExpectation("min7", false);
48641
- const peg$c1661 = "m7#5";
48642
- const peg$c1662 = peg$literalExpectation("m7#5", false);
48643
- const peg$c1663 = "m7+5";
48644
- const peg$c1664 = peg$literalExpectation("m7+5", false);
48645
- const peg$c1665 = "-7#5";
48646
- const peg$c1666 = peg$literalExpectation("-7#5", false);
48647
- const peg$c1667 = "m7#9";
48648
- const peg$c1668 = peg$literalExpectation("m7#9", false);
48649
- const peg$c1669 = "m7+9";
48650
- const peg$c1670 = peg$literalExpectation("m7+9", false);
48651
- const peg$c1671 = "-7#9";
48652
- const peg$c1672 = peg$literalExpectation("-7#9", false);
48653
- const peg$c1673 = "m7b5";
48654
- const peg$c1674 = peg$literalExpectation("m7b5", false);
48655
- const peg$c1675 = "m7-5";
48656
- const peg$c1676 = peg$literalExpectation("m7-5", false);
48657
- const peg$c1677 = "-7b5";
48658
- const peg$c1678 = peg$literalExpectation("-7b5", false);
48659
- const peg$c1679 = "m7b9";
48660
- const peg$c1680 = peg$literalExpectation("m7b9", false);
48661
- const peg$c1681 = "m7-9";
48662
- const peg$c1682 = peg$literalExpectation("m7-9", false);
48663
- const peg$c1683 = "-7b9";
48664
- const peg$c1684 = peg$literalExpectation("-7b9", false);
48665
- const peg$c1685 = "min9";
48666
- const peg$c1686 = peg$literalExpectation("min9", false);
48667
- const peg$c1687 = "m9#5";
48668
- const peg$c1688 = peg$literalExpectation("m9#5", false);
48669
- const peg$c1689 = "-9#5";
48670
- const peg$c1690 = peg$literalExpectation("-9#5", false);
48671
- const peg$c1691 = "m9b5";
48672
- const peg$c1692 = peg$literalExpectation("m9b5", false);
48673
- const peg$c1693 = "m9-5";
48674
- const peg$c1694 = peg$literalExpectation("m9-5", false);
48675
- const peg$c1695 = "-9b5";
48676
- const peg$c1696 = peg$literalExpectation("-9b5", false);
48677
- const peg$c1697 = "m9M7";
48678
- const peg$c1698 = peg$literalExpectation("m9M7", false);
48679
- const peg$c1699 = "maj9";
48680
- const peg$c1700 = peg$literalExpectation("maj9", false);
48681
- const peg$c1701 = "ma11";
48682
- const peg$c1702 = peg$literalExpectation("ma11", false);
48683
- const peg$c1703 = "11#7";
48684
- const peg$c1704 = peg$literalExpectation("11#7", false);
48685
- const peg$c1705 = "11+7";
48686
- const peg$c1706 = peg$literalExpectation("11+7", false);
48687
- const peg$c1707 = "ma13";
48688
- const peg$c1708 = peg$literalExpectation("ma13", false);
48689
- const peg$c1709 = "ma69";
48690
- const peg$c1710 = peg$literalExpectation("ma69", false);
48691
- const peg$c1711 = "Maj7";
48692
- const peg$c1712 = peg$literalExpectation("Maj7", false);
48693
- const peg$c1713 = "maj7";
48694
- const peg$c1714 = peg$literalExpectation("maj7", false);
48695
- const peg$c1715 = "+7#5";
48696
- const peg$c1716 = peg$literalExpectation("+7#5", false);
48697
- const peg$c1717 = "M7+5";
48698
- const peg$c1718 = peg$literalExpectation("M7+5", false);
48699
- const peg$c1719 = "+7#9";
48700
- const peg$c1720 = peg$literalExpectation("+7#9", false);
48701
- const peg$c1721 = "M7+9";
48702
- const peg$c1722 = peg$literalExpectation("M7+9", false);
48703
- const peg$c1723 = "+7b5";
48704
- const peg$c1724 = peg$literalExpectation("+7b5", false);
48705
- const peg$c1725 = "M7-5";
48706
- const peg$c1726 = peg$literalExpectation("M7-5", false);
48707
- const peg$c1727 = "+7b9";
48708
- const peg$c1728 = peg$literalExpectation("+7b9", false);
48709
- const peg$c1729 = "M7-9";
48710
- const peg$c1730 = peg$literalExpectation("M7-9", false);
48711
- const peg$c1731 = "+9#5";
48712
- const peg$c1732 = peg$literalExpectation("+9#5", false);
48713
- const peg$c1733 = "M9+5";
48714
- const peg$c1734 = peg$literalExpectation("M9+5", false);
48715
- const peg$c1735 = "+9b5";
48716
- const peg$c1736 = peg$literalExpectation("+9b5", false);
48717
- const peg$c1737 = "M9-5";
48718
- const peg$c1738 = peg$literalExpectation("M9-5", false);
48719
- const peg$c1739 = "sus4";
48720
- const peg$c1740 = peg$literalExpectation("sus4", false);
48721
- const peg$c1741 = "(2)";
48722
- const peg$c1742 = peg$literalExpectation("(2)", false);
48723
- const peg$c1743 = "(4)";
48724
- const peg$c1744 = peg$literalExpectation("(4)", false);
48725
- const peg$c1745 = "(6)";
48726
- const peg$c1746 = peg$literalExpectation("(6)", false);
48727
- const peg$c1747 = "(7)";
48728
- const peg$c1748 = peg$literalExpectation("(7)", false);
48729
- const peg$c1749 = "(9)";
48730
- const peg$c1750 = peg$literalExpectation("(9)", false);
48731
- const peg$c1751 = "maj";
48732
- const peg$c1752 = peg$literalExpectation("maj", false);
48733
- const peg$c1753 = "aug";
48734
- const peg$c1754 = peg$literalExpectation("aug", false);
48735
- const peg$c1755 = "2+4";
48736
- const peg$c1756 = peg$literalExpectation("2+4", false);
48737
- const peg$c1757 = "2#4";
48738
- const peg$c1758 = peg$literalExpectation("2#4", false);
48739
- const peg$c1759 = "no3";
48740
- const peg$c1760 = peg$literalExpectation("no3", false);
48741
- const peg$c1761 = "7#5";
48742
- const peg$c1762 = peg$literalExpectation("7#5", false);
48743
- const peg$c1763 = "7+5";
48744
- const peg$c1764 = peg$literalExpectation("7+5", false);
48745
- const peg$c1765 = "7#9";
48746
- const peg$c1766 = peg$literalExpectation("7#9", false);
48747
- const peg$c1767 = "7+9";
48748
- const peg$c1768 = peg$literalExpectation("7+9", false);
48749
- const peg$c1769 = "7b5";
48750
- const peg$c1770 = peg$literalExpectation("7b5", false);
48751
- const peg$c1771 = "7-5";
48752
- const peg$c1772 = peg$literalExpectation("7-5", false);
48753
- const peg$c1773 = "7b9";
48754
- const peg$c1774 = peg$literalExpectation("7b9", false);
48755
- const peg$c1775 = "7-9";
48756
- const peg$c1776 = peg$literalExpectation("7-9", false);
48757
- const peg$c1777 = "9#5";
48758
- const peg$c1778 = peg$literalExpectation("9#5", false);
48759
- const peg$c1779 = "9+5";
48760
- const peg$c1780 = peg$literalExpectation("9+5", false);
48761
- const peg$c1781 = "9b5";
48762
- const peg$c1782 = peg$literalExpectation("9b5", false);
48763
- const peg$c1783 = "9-5";
48764
- const peg$c1784 = peg$literalExpectation("9-5", false);
48765
- const peg$c1785 = "dim";
48766
- const peg$c1786 = peg$literalExpectation("dim", false);
48767
- const peg$c1787 = "mb5";
48768
- const peg$c1788 = peg$literalExpectation("mb5", false);
48769
- const peg$c1789 = "m-5";
48770
- const peg$c1790 = peg$literalExpectation("m-5", false);
48771
- const peg$c1791 = "-b5";
48772
- const peg$c1792 = peg$literalExpectation("-b5", false);
48773
- const peg$c1793 = "min";
48774
- const peg$c1794 = peg$literalExpectation("min", false);
48775
- const peg$c1795 = "mM7";
48776
- const peg$c1796 = peg$literalExpectation("mM7", false);
48777
- const peg$c1797 = "m+7";
48778
- const peg$c1798 = peg$literalExpectation("m+7", false);
48779
- const peg$c1799 = "mM9";
48780
- const peg$c1800 = peg$literalExpectation("mM9", false);
48781
- const peg$c1801 = "m+9";
48782
- const peg$c1802 = peg$literalExpectation("m+9", false);
48783
- const peg$c1803 = "m11";
48784
- const peg$c1804 = peg$literalExpectation("m11", false);
48785
- const peg$c1805 = "-11";
48786
- const peg$c1806 = peg$literalExpectation("-11", false);
48787
- const peg$c1807 = "m13";
48788
- const peg$c1808 = peg$literalExpectation("m13", false);
48789
- const peg$c1809 = "-13";
48790
- const peg$c1810 = peg$literalExpectation("-13", false);
48791
- const peg$c1811 = "mi2";
48792
- const peg$c1812 = peg$literalExpectation("mi2", false);
48793
- const peg$c1813 = "mi6";
48794
- const peg$c1814 = peg$literalExpectation("mi6", false);
48795
- const peg$c1815 = "m69";
48796
- const peg$c1816 = peg$literalExpectation("m69", false);
48797
- const peg$c1817 = "mi7";
48798
- const peg$c1818 = peg$literalExpectation("mi7", false);
48799
- const peg$c1819 = "m74";
48800
- const peg$c1820 = peg$literalExpectation("m74", false);
48801
- const peg$c1821 = "mi9";
48802
- const peg$c1822 = peg$literalExpectation("mi9", false);
48803
- const peg$c1823 = "ma9";
48804
- const peg$c1824 = peg$literalExpectation("ma9", false);
48805
- const peg$c1825 = "+11";
48806
- const peg$c1826 = peg$literalExpectation("+11", false);
48807
- const peg$c1827 = "M11";
48808
- const peg$c1828 = peg$literalExpectation("M11", false);
48809
- const peg$c1829 = "+13";
48810
- const peg$c1830 = peg$literalExpectation("+13", false);
48811
- const peg$c1831 = "M13";
48812
- const peg$c1832 = peg$literalExpectation("M13", false);
48813
- const peg$c1833 = "ma6";
48814
- const peg$c1834 = peg$literalExpectation("ma6", false);
48815
- const peg$c1835 = "ma7";
48816
- const peg$c1836 = peg$literalExpectation("ma7", false);
48817
- const peg$c1837 = "sus";
48818
- const peg$c1838 = peg$literalExpectation("sus", false);
48819
- const peg$c1839 = "#4";
48820
- const peg$c1840 = peg$literalExpectation("#4", false);
48821
- const peg$c1841 = "+4";
48822
- const peg$c1842 = peg$literalExpectation("+4", false);
48823
- const peg$c1843 = "-5";
48824
- const peg$c1844 = peg$literalExpectation("-5", false);
48825
- const peg$c1845 = "b5";
48826
- const peg$c1846 = peg$literalExpectation("b5", false);
48827
- const peg$c1847 = "ma";
48828
- const peg$c1848 = peg$literalExpectation("ma", false);
48829
- const peg$c1849 = "Ma";
48830
- const peg$c1850 = peg$literalExpectation("Ma", false);
48831
- const peg$c1851 = "#5";
48832
- const peg$c1852 = peg$literalExpectation("#5", false);
48833
- const peg$c1853 = "+5";
48834
- const peg$c1854 = peg$literalExpectation("+5", false);
48835
- const peg$c1855 = "11";
48836
- const peg$c1856 = peg$literalExpectation("11", false);
48837
- const peg$c1857 = "13";
48838
- const peg$c1858 = peg$literalExpectation("13", false);
48839
- const peg$c1859 = "42";
48840
- const peg$c1860 = peg$literalExpectation("42", false);
48841
- const peg$c1861 = "69";
48842
- const peg$c1862 = peg$literalExpectation("69", false);
48843
- const peg$c1863 = "x7";
48844
- const peg$c1864 = peg$literalExpectation("x7", false);
48845
- const peg$c1865 = "x9";
48846
- const peg$c1866 = peg$literalExpectation("x9", false);
48847
- const peg$c1867 = "o7";
48848
- const peg$c1868 = peg$literalExpectation("o7", false);
48849
- const peg$c1869 = peg$literalExpectation("mi", false);
48850
- const peg$c1870 = "m2";
48851
- const peg$c1871 = peg$literalExpectation("m2", false);
48852
- const peg$c1872 = "m4";
48853
- const peg$c1873 = peg$literalExpectation("m4", false);
48854
- const peg$c1874 = "m6";
48855
- const peg$c1875 = peg$literalExpectation("m6", false);
48856
- const peg$c1876 = "-6";
48857
- const peg$c1877 = peg$literalExpectation("-6", false);
48858
- const peg$c1878 = "m7";
48859
- const peg$c1879 = peg$literalExpectation("m7", false);
48860
- const peg$c1880 = "-7";
48861
- const peg$c1881 = peg$literalExpectation("-7", false);
48862
- const peg$c1882 = "m9";
48863
- const peg$c1883 = peg$literalExpectation("m9", false);
48864
- const peg$c1884 = "-9";
48865
- const peg$c1885 = peg$literalExpectation("-9", false);
48866
- const peg$c1886 = "+7";
48867
- const peg$c1887 = peg$literalExpectation("+7", false);
48868
- const peg$c1888 = "#7";
48869
- const peg$c1889 = peg$literalExpectation("#7", false);
48870
- const peg$c1890 = "M7";
48871
- const peg$c1891 = peg$literalExpectation("M7", false);
48872
- const peg$c1892 = "+9";
48873
- const peg$c1893 = peg$literalExpectation("+9", false);
48874
- const peg$c1894 = "M9";
48875
- const peg$c1895 = peg$literalExpectation("M9", false);
48876
- const peg$c1896 = /^[+\-24-79Mmx]/;
48877
- const peg$c1897 = peg$classExpectation([
48502
+ const peg$c1349 = "mmaj7";
48503
+ const peg$c1350 = peg$literalExpectation("mmaj7", false);
48504
+ const peg$c1351 = "m(M9)";
48505
+ const peg$c1352 = peg$literalExpectation("m(M9)", false);
48506
+ const peg$c1353 = "m(+9)";
48507
+ const peg$c1354 = peg$literalExpectation("m(+9)", false);
48508
+ const peg$c1355 = "min11";
48509
+ const peg$c1356 = peg$literalExpectation("min11", false);
48510
+ const peg$c1357 = "m11#5";
48511
+ const peg$c1358 = peg$literalExpectation("m11#5", false);
48512
+ const peg$c1359 = "m11+5";
48513
+ const peg$c1360 = peg$literalExpectation("m11+5", false);
48514
+ const peg$c1361 = "-11#5";
48515
+ const peg$c1362 = peg$literalExpectation("-11#5", false);
48516
+ const peg$c1363 = "m11#9";
48517
+ const peg$c1364 = peg$literalExpectation("m11#9", false);
48518
+ const peg$c1365 = "m11+9";
48519
+ const peg$c1366 = peg$literalExpectation("m11+9", false);
48520
+ const peg$c1367 = "-11#9";
48521
+ const peg$c1368 = peg$literalExpectation("-11#9", false);
48522
+ const peg$c1369 = "-11+9";
48523
+ const peg$c1370 = peg$literalExpectation("-11+9", false);
48524
+ const peg$c1371 = "m11b5";
48525
+ const peg$c1372 = peg$literalExpectation("m11b5", false);
48526
+ const peg$c1373 = "m11-5";
48527
+ const peg$c1374 = peg$literalExpectation("m11-5", false);
48528
+ const peg$c1375 = "-11b5";
48529
+ const peg$c1376 = peg$literalExpectation("-11b5", false);
48530
+ const peg$c1377 = "m11b9";
48531
+ const peg$c1378 = peg$literalExpectation("m11b9", false);
48532
+ const peg$c1379 = "m11-9";
48533
+ const peg$c1380 = peg$literalExpectation("m11-9", false);
48534
+ const peg$c1381 = "-11b9";
48535
+ const peg$c1382 = peg$literalExpectation("-11b9", false);
48536
+ const peg$c1383 = "-11-9";
48537
+ const peg$c1384 = peg$literalExpectation("-11-9", false);
48538
+ const peg$c1385 = "min13";
48539
+ const peg$c1386 = peg$literalExpectation("min13", false);
48540
+ const peg$c1387 = "m13#5";
48541
+ const peg$c1388 = peg$literalExpectation("m13#5", false);
48542
+ const peg$c1389 = "m13+5";
48543
+ const peg$c1390 = peg$literalExpectation("m13+5", false);
48544
+ const peg$c1391 = "-13#5";
48545
+ const peg$c1392 = peg$literalExpectation("-13#5", false);
48546
+ const peg$c1393 = "m13#9";
48547
+ const peg$c1394 = peg$literalExpectation("m13#9", false);
48548
+ const peg$c1395 = "m13+9";
48549
+ const peg$c1396 = peg$literalExpectation("m13+9", false);
48550
+ const peg$c1397 = "-13#9";
48551
+ const peg$c1398 = peg$literalExpectation("-13#9", false);
48552
+ const peg$c1399 = "-13+9";
48553
+ const peg$c1400 = peg$literalExpectation("-13+9", false);
48554
+ const peg$c1401 = "m13b5";
48555
+ const peg$c1402 = peg$literalExpectation("m13b5", false);
48556
+ const peg$c1403 = "m13-5";
48557
+ const peg$c1404 = peg$literalExpectation("m13-5", false);
48558
+ const peg$c1405 = "-13b5";
48559
+ const peg$c1406 = peg$literalExpectation("-13b5", false);
48560
+ const peg$c1407 = "-13-5";
48561
+ const peg$c1408 = peg$literalExpectation("-13-5", false);
48562
+ const peg$c1409 = "m13b9";
48563
+ const peg$c1410 = peg$literalExpectation("m13b9", false);
48564
+ const peg$c1411 = "m13-9";
48565
+ const peg$c1412 = peg$literalExpectation("m13-9", false);
48566
+ const peg$c1413 = "madd2";
48567
+ const peg$c1414 = peg$literalExpectation("madd2", false);
48568
+ const peg$c1415 = "m6(9)";
48569
+ const peg$c1416 = peg$literalExpectation("m6(9)", false);
48570
+ const peg$c1417 = "m7#11";
48571
+ const peg$c1418 = peg$literalExpectation("m7#11", false);
48572
+ const peg$c1419 = "m7+11";
48573
+ const peg$c1420 = peg$literalExpectation("m7+11", false);
48574
+ const peg$c1421 = "-7#11";
48575
+ const peg$c1422 = peg$literalExpectation("-7#11", false);
48576
+ const peg$c1423 = "-7+11";
48577
+ const peg$c1424 = peg$literalExpectation("-7+11", false);
48578
+ const peg$c1425 = "m7(4)";
48579
+ const peg$c1426 = peg$literalExpectation("m7(4)", false);
48580
+ const peg$c1427 = "m7(6)";
48581
+ const peg$c1428 = peg$literalExpectation("m7(6)", false);
48582
+ const peg$c1429 = "m7b13";
48583
+ const peg$c1430 = peg$literalExpectation("m7b13", false);
48584
+ const peg$c1431 = "m7-13";
48585
+ const peg$c1432 = peg$literalExpectation("m7-13", false);
48586
+ const peg$c1433 = "-7b13";
48587
+ const peg$c1434 = peg$literalExpectation("-7b13", false);
48588
+ const peg$c1435 = "-7-13";
48589
+ const peg$c1436 = peg$literalExpectation("-7-13", false);
48590
+ const peg$c1437 = "m7sus";
48591
+ const peg$c1438 = peg$literalExpectation("m7sus", false);
48592
+ const peg$c1439 = "m9#11";
48593
+ const peg$c1440 = peg$literalExpectation("m9#11", false);
48594
+ const peg$c1441 = "m9+11";
48595
+ const peg$c1442 = peg$literalExpectation("m9+11", false);
48596
+ const peg$c1443 = "-9#11";
48597
+ const peg$c1444 = peg$literalExpectation("-9#11", false);
48598
+ const peg$c1445 = "-9+11";
48599
+ const peg$c1446 = peg$literalExpectation("-9+11", false);
48600
+ const peg$c1447 = "m9b13";
48601
+ const peg$c1448 = peg$literalExpectation("m9b13", false);
48602
+ const peg$c1449 = "m9-13";
48603
+ const peg$c1450 = peg$literalExpectation("m9-13", false);
48604
+ const peg$c1451 = "-9b13";
48605
+ const peg$c1452 = peg$literalExpectation("-9b13", false);
48606
+ const peg$c1453 = "-9-13";
48607
+ const peg$c1454 = peg$literalExpectation("-9-13", false);
48608
+ const peg$c1455 = "+11#5";
48609
+ const peg$c1456 = peg$literalExpectation("+11#5", false);
48610
+ const peg$c1457 = "M11+5";
48611
+ const peg$c1458 = peg$literalExpectation("M11+5", false);
48612
+ const peg$c1459 = "+11#9";
48613
+ const peg$c1460 = peg$literalExpectation("+11#9", false);
48614
+ const peg$c1461 = "M11+9";
48615
+ const peg$c1462 = peg$literalExpectation("M11+9", false);
48616
+ const peg$c1463 = "+11b5";
48617
+ const peg$c1464 = peg$literalExpectation("+11b5", false);
48618
+ const peg$c1465 = "M11-5";
48619
+ const peg$c1466 = peg$literalExpectation("M11-5", false);
48620
+ const peg$c1467 = "+11b9";
48621
+ const peg$c1468 = peg$literalExpectation("+11b9", false);
48622
+ const peg$c1469 = "+11-9";
48623
+ const peg$c1470 = peg$literalExpectation("+11-9", false);
48624
+ const peg$c1471 = "maj13";
48625
+ const peg$c1472 = peg$literalExpectation("maj13", false);
48626
+ const peg$c1473 = "Maj13";
48627
+ const peg$c1474 = peg$literalExpectation("Maj13", false);
48628
+ const peg$c1475 = "+13#5";
48629
+ const peg$c1476 = peg$literalExpectation("+13#5", false);
48630
+ const peg$c1477 = "M13+5";
48631
+ const peg$c1478 = peg$literalExpectation("M13+5", false);
48632
+ const peg$c1479 = "+13#9";
48633
+ const peg$c1480 = peg$literalExpectation("+13#9", false);
48634
+ const peg$c1481 = "+13+9";
48635
+ const peg$c1482 = peg$literalExpectation("+13+9", false);
48636
+ const peg$c1483 = "+13b5";
48637
+ const peg$c1484 = peg$literalExpectation("+13b5", false);
48638
+ const peg$c1485 = "M13-5";
48639
+ const peg$c1486 = peg$literalExpectation("M13-5", false);
48640
+ const peg$c1487 = "+13b9";
48641
+ const peg$c1488 = peg$literalExpectation("+13b9", false);
48642
+ const peg$c1489 = "M13-9";
48643
+ const peg$c1490 = peg$literalExpectation("M13-9", false);
48644
+ const peg$c1491 = "+7#11";
48645
+ const peg$c1492 = peg$literalExpectation("+7#11", false);
48646
+ const peg$c1493 = "M7+11";
48647
+ const peg$c1494 = peg$literalExpectation("M7+11", false);
48648
+ const peg$c1495 = "ma7#5";
48649
+ const peg$c1496 = peg$literalExpectation("ma7#5", false);
48650
+ const peg$c1497 = "ma7+5";
48651
+ const peg$c1498 = peg$literalExpectation("ma7+5", false);
48652
+ const peg$c1499 = "ma7#9";
48653
+ const peg$c1500 = peg$literalExpectation("ma7#9", false);
48654
+ const peg$c1501 = "ma7+9";
48655
+ const peg$c1502 = peg$literalExpectation("ma7+9", false);
48656
+ const peg$c1503 = "+7b13";
48657
+ const peg$c1504 = peg$literalExpectation("+7b13", false);
48658
+ const peg$c1505 = "M7-13";
48659
+ const peg$c1506 = peg$literalExpectation("M7-13", false);
48660
+ const peg$c1507 = "ma7b5";
48661
+ const peg$c1508 = peg$literalExpectation("ma7b5", false);
48662
+ const peg$c1509 = "ma7-5";
48663
+ const peg$c1510 = peg$literalExpectation("ma7-5", false);
48664
+ const peg$c1511 = "ma7b9";
48665
+ const peg$c1512 = peg$literalExpectation("ma7b9", false);
48666
+ const peg$c1513 = "ma7-9";
48667
+ const peg$c1514 = peg$literalExpectation("ma7-9", false);
48668
+ const peg$c1515 = "9(#7)";
48669
+ const peg$c1516 = peg$literalExpectation("9(#7)", false);
48670
+ const peg$c1517 = "+9#11";
48671
+ const peg$c1518 = peg$literalExpectation("+9#11", false);
48672
+ const peg$c1519 = "M9+11";
48673
+ const peg$c1520 = peg$literalExpectation("M9+11", false);
48674
+ const peg$c1521 = "ma9#5";
48675
+ const peg$c1522 = peg$literalExpectation("ma9#5", false);
48676
+ const peg$c1523 = "ma9+5";
48677
+ const peg$c1524 = peg$literalExpectation("ma9+5", false);
48678
+ const peg$c1525 = "+9b13";
48679
+ const peg$c1526 = peg$literalExpectation("+9b13", false);
48680
+ const peg$c1527 = "M9-13";
48681
+ const peg$c1528 = peg$literalExpectation("M9-13", false);
48682
+ const peg$c1529 = "ma9b5";
48683
+ const peg$c1530 = peg$literalExpectation("ma9b5", false);
48684
+ const peg$c1531 = "ma9-5";
48685
+ const peg$c1532 = peg$literalExpectation("ma9-5", false);
48686
+ const peg$c1533 = "(#4)";
48687
+ const peg$c1534 = peg$literalExpectation("(#4)", false);
48688
+ const peg$c1535 = "(+4)";
48689
+ const peg$c1536 = peg$literalExpectation("(+4)", false);
48690
+ const peg$c1537 = "(11)";
48691
+ const peg$c1538 = peg$literalExpectation("(11)", false);
48692
+ const peg$c1539 = "(13)";
48693
+ const peg$c1540 = peg$literalExpectation("(13)", false);
48694
+ const peg$c1541 = "add2";
48695
+ const peg$c1542 = peg$literalExpectation("add2", false);
48696
+ const peg$c1543 = "add4";
48697
+ const peg$c1544 = peg$literalExpectation("add4", false);
48698
+ const peg$c1545 = "add6";
48699
+ const peg$c1546 = peg$literalExpectation("add6", false);
48700
+ const peg$c1547 = "add9";
48701
+ const peg$c1548 = peg$literalExpectation("add9", false);
48702
+ const peg$c1549 = "(b5)";
48703
+ const peg$c1550 = peg$literalExpectation("(b5)", false);
48704
+ const peg$c1551 = "(-5)";
48705
+ const peg$c1552 = peg$literalExpectation("(-5)", false);
48706
+ const peg$c1553 = "2(6)";
48707
+ const peg$c1554 = peg$literalExpectation("2(6)", false);
48708
+ const peg$c1555 = "(b6)";
48709
+ const peg$c1556 = peg$literalExpectation("(b6)", false);
48710
+ const peg$c1557 = "unis";
48711
+ const peg$c1558 = peg$literalExpectation("unis", false);
48712
+ const peg$c1559 = "Majj";
48713
+ const peg$c1560 = peg$literalExpectation("Majj", false);
48714
+ const peg$c1561 = "(#5)";
48715
+ const peg$c1562 = peg$literalExpectation("(#5)", false);
48716
+ const peg$c1563 = "(+5)";
48717
+ const peg$c1564 = peg$literalExpectation("(+5)", false);
48718
+ const peg$c1565 = "11#5";
48719
+ const peg$c1566 = peg$literalExpectation("11#5", false);
48720
+ const peg$c1567 = "11+5";
48721
+ const peg$c1568 = peg$literalExpectation("11+5", false);
48722
+ const peg$c1569 = "11#9";
48723
+ const peg$c1570 = peg$literalExpectation("11#9", false);
48724
+ const peg$c1571 = "11+9";
48725
+ const peg$c1572 = peg$literalExpectation("11+9", false);
48726
+ const peg$c1573 = "11b5";
48727
+ const peg$c1574 = peg$literalExpectation("11b5", false);
48728
+ const peg$c1575 = "11-5";
48729
+ const peg$c1576 = peg$literalExpectation("11-5", false);
48730
+ const peg$c1577 = "11b9";
48731
+ const peg$c1578 = peg$literalExpectation("11b9", false);
48732
+ const peg$c1579 = "11-9";
48733
+ const peg$c1580 = peg$literalExpectation("11-9", false);
48734
+ const peg$c1581 = "13#5";
48735
+ const peg$c1582 = peg$literalExpectation("13#5", false);
48736
+ const peg$c1583 = "13+5";
48737
+ const peg$c1584 = peg$literalExpectation("13+5", false);
48738
+ const peg$c1585 = "13#9";
48739
+ const peg$c1586 = peg$literalExpectation("13#9", false);
48740
+ const peg$c1587 = "13+9";
48741
+ const peg$c1588 = peg$literalExpectation("13+9", false);
48742
+ const peg$c1589 = "13b5";
48743
+ const peg$c1590 = peg$literalExpectation("13b5", false);
48744
+ const peg$c1591 = "13-5";
48745
+ const peg$c1592 = peg$literalExpectation("13-5", false);
48746
+ const peg$c1593 = "13b9";
48747
+ const peg$c1594 = peg$literalExpectation("13b9", false);
48748
+ const peg$c1595 = "13-9";
48749
+ const peg$c1596 = peg$literalExpectation("13-9", false);
48750
+ const peg$c1597 = "sus2";
48751
+ const peg$c1598 = peg$literalExpectation("sus2", false);
48752
+ const peg$c1599 = "2(4)";
48753
+ const peg$c1600 = peg$literalExpectation("2(4)", false);
48754
+ const peg$c1601 = "4(2)";
48755
+ const peg$c1602 = peg$literalExpectation("4(2)", false);
48756
+ const peg$c1603 = "6(2)";
48757
+ const peg$c1604 = peg$literalExpectation("6(2)", false);
48758
+ const peg$c1605 = "6(9)";
48759
+ const peg$c1606 = peg$literalExpectation("6(9)", false);
48760
+ const peg$c1607 = "dom7";
48761
+ const peg$c1608 = peg$literalExpectation("dom7", false);
48762
+ const peg$c1609 = "7#11";
48763
+ const peg$c1610 = peg$literalExpectation("7#11", false);
48764
+ const peg$c1611 = "7+11";
48765
+ const peg$c1612 = peg$literalExpectation("7+11", false);
48766
+ const peg$c1613 = "aug7";
48767
+ const peg$c1614 = peg$literalExpectation("aug7", false);
48768
+ const peg$c1615 = "7(6)";
48769
+ const peg$c1616 = peg$literalExpectation("7(6)", false);
48770
+ const peg$c1617 = "7b13";
48771
+ const peg$c1618 = peg$literalExpectation("7b13", false);
48772
+ const peg$c1619 = "7-13";
48773
+ const peg$c1620 = peg$literalExpectation("7-13", false);
48774
+ const peg$c1621 = "7sus";
48775
+ const peg$c1622 = peg$literalExpectation("7sus", false);
48776
+ const peg$c1623 = "dom9";
48777
+ const peg$c1624 = peg$literalExpectation("dom9", false);
48778
+ const peg$c1625 = "9#11";
48779
+ const peg$c1626 = peg$literalExpectation("9#11", false);
48780
+ const peg$c1627 = "9+11";
48781
+ const peg$c1628 = peg$literalExpectation("9+11", false);
48782
+ const peg$c1629 = "aug9";
48783
+ const peg$c1630 = peg$literalExpectation("aug9", false);
48784
+ const peg$c1631 = "9b13";
48785
+ const peg$c1632 = peg$literalExpectation("9b13", false);
48786
+ const peg$c1633 = "9-13";
48787
+ const peg$c1634 = peg$literalExpectation("9-13", false);
48788
+ const peg$c1635 = "9aug";
48789
+ const peg$c1636 = peg$literalExpectation("9aug", false);
48790
+ const peg$c1637 = "9sus";
48791
+ const peg$c1638 = peg$literalExpectation("9sus", false);
48792
+ const peg$c1639 = "dim7";
48793
+ const peg$c1640 = peg$literalExpectation("dim7", false);
48794
+ const peg$c1641 = "m(4)";
48795
+ const peg$c1642 = peg$literalExpectation("m(4)", false);
48796
+ const peg$c1643 = "m(9)";
48797
+ const peg$c1644 = peg$literalExpectation("m(9)", false);
48798
+ const peg$c1645 = "mi11";
48799
+ const peg$c1646 = peg$literalExpectation("mi11", false);
48800
+ const peg$c1647 = "m9+5";
48801
+ const peg$c1648 = peg$literalExpectation("m9+5", false);
48802
+ const peg$c1649 = "-9-5";
48803
+ const peg$c1650 = peg$literalExpectation("-9-5", false);
48804
+ const peg$c1651 = "mi13";
48805
+ const peg$c1652 = peg$literalExpectation("mi13", false);
48806
+ const peg$c1653 = "min2";
48807
+ const peg$c1654 = peg$literalExpectation("min2", false);
48808
+ const peg$c1655 = "min6";
48809
+ const peg$c1656 = peg$literalExpectation("min6", false);
48810
+ const peg$c1657 = "m6M7";
48811
+ const peg$c1658 = peg$literalExpectation("m6M7", false);
48812
+ const peg$c1659 = "m6+7";
48813
+ const peg$c1660 = peg$literalExpectation("m6+7", false);
48814
+ const peg$c1661 = "min7";
48815
+ const peg$c1662 = peg$literalExpectation("min7", false);
48816
+ const peg$c1663 = "m7#5";
48817
+ const peg$c1664 = peg$literalExpectation("m7#5", false);
48818
+ const peg$c1665 = "m7+5";
48819
+ const peg$c1666 = peg$literalExpectation("m7+5", false);
48820
+ const peg$c1667 = "-7#5";
48821
+ const peg$c1668 = peg$literalExpectation("-7#5", false);
48822
+ const peg$c1669 = "m7#9";
48823
+ const peg$c1670 = peg$literalExpectation("m7#9", false);
48824
+ const peg$c1671 = "m7+9";
48825
+ const peg$c1672 = peg$literalExpectation("m7+9", false);
48826
+ const peg$c1673 = "-7#9";
48827
+ const peg$c1674 = peg$literalExpectation("-7#9", false);
48828
+ const peg$c1675 = "m7b5";
48829
+ const peg$c1676 = peg$literalExpectation("m7b5", false);
48830
+ const peg$c1677 = "m7-5";
48831
+ const peg$c1678 = peg$literalExpectation("m7-5", false);
48832
+ const peg$c1679 = "-7b5";
48833
+ const peg$c1680 = peg$literalExpectation("-7b5", false);
48834
+ const peg$c1681 = "m7b9";
48835
+ const peg$c1682 = peg$literalExpectation("m7b9", false);
48836
+ const peg$c1683 = "m7-9";
48837
+ const peg$c1684 = peg$literalExpectation("m7-9", false);
48838
+ const peg$c1685 = "-7b9";
48839
+ const peg$c1686 = peg$literalExpectation("-7b9", false);
48840
+ const peg$c1687 = "min9";
48841
+ const peg$c1688 = peg$literalExpectation("min9", false);
48842
+ const peg$c1689 = "m9#5";
48843
+ const peg$c1690 = peg$literalExpectation("m9#5", false);
48844
+ const peg$c1691 = "-9#5";
48845
+ const peg$c1692 = peg$literalExpectation("-9#5", false);
48846
+ const peg$c1693 = "m9b5";
48847
+ const peg$c1694 = peg$literalExpectation("m9b5", false);
48848
+ const peg$c1695 = "m9-5";
48849
+ const peg$c1696 = peg$literalExpectation("m9-5", false);
48850
+ const peg$c1697 = "-9b5";
48851
+ const peg$c1698 = peg$literalExpectation("-9b5", false);
48852
+ const peg$c1699 = "m9M7";
48853
+ const peg$c1700 = peg$literalExpectation("m9M7", false);
48854
+ const peg$c1701 = "maj9";
48855
+ const peg$c1702 = peg$literalExpectation("maj9", false);
48856
+ const peg$c1703 = "ma11";
48857
+ const peg$c1704 = peg$literalExpectation("ma11", false);
48858
+ const peg$c1705 = "11#7";
48859
+ const peg$c1706 = peg$literalExpectation("11#7", false);
48860
+ const peg$c1707 = "11+7";
48861
+ const peg$c1708 = peg$literalExpectation("11+7", false);
48862
+ const peg$c1709 = "ma13";
48863
+ const peg$c1710 = peg$literalExpectation("ma13", false);
48864
+ const peg$c1711 = "ma69";
48865
+ const peg$c1712 = peg$literalExpectation("ma69", false);
48866
+ const peg$c1713 = "Maj7";
48867
+ const peg$c1714 = peg$literalExpectation("Maj7", false);
48868
+ const peg$c1715 = "maj7";
48869
+ const peg$c1716 = peg$literalExpectation("maj7", false);
48870
+ const peg$c1717 = "+7#5";
48871
+ const peg$c1718 = peg$literalExpectation("+7#5", false);
48872
+ const peg$c1719 = "M7+5";
48873
+ const peg$c1720 = peg$literalExpectation("M7+5", false);
48874
+ const peg$c1721 = "+7#9";
48875
+ const peg$c1722 = peg$literalExpectation("+7#9", false);
48876
+ const peg$c1723 = "M7+9";
48877
+ const peg$c1724 = peg$literalExpectation("M7+9", false);
48878
+ const peg$c1725 = "+7b5";
48879
+ const peg$c1726 = peg$literalExpectation("+7b5", false);
48880
+ const peg$c1727 = "M7-5";
48881
+ const peg$c1728 = peg$literalExpectation("M7-5", false);
48882
+ const peg$c1729 = "+7b9";
48883
+ const peg$c1730 = peg$literalExpectation("+7b9", false);
48884
+ const peg$c1731 = "M7-9";
48885
+ const peg$c1732 = peg$literalExpectation("M7-9", false);
48886
+ const peg$c1733 = "+9#5";
48887
+ const peg$c1734 = peg$literalExpectation("+9#5", false);
48888
+ const peg$c1735 = "M9+5";
48889
+ const peg$c1736 = peg$literalExpectation("M9+5", false);
48890
+ const peg$c1737 = "+9b5";
48891
+ const peg$c1738 = peg$literalExpectation("+9b5", false);
48892
+ const peg$c1739 = "M9-5";
48893
+ const peg$c1740 = peg$literalExpectation("M9-5", false);
48894
+ const peg$c1741 = "sus4";
48895
+ const peg$c1742 = peg$literalExpectation("sus4", false);
48896
+ const peg$c1743 = "(2)";
48897
+ const peg$c1744 = peg$literalExpectation("(2)", false);
48898
+ const peg$c1745 = "(4)";
48899
+ const peg$c1746 = peg$literalExpectation("(4)", false);
48900
+ const peg$c1747 = "(6)";
48901
+ const peg$c1748 = peg$literalExpectation("(6)", false);
48902
+ const peg$c1749 = "(7)";
48903
+ const peg$c1750 = peg$literalExpectation("(7)", false);
48904
+ const peg$c1751 = "(9)";
48905
+ const peg$c1752 = peg$literalExpectation("(9)", false);
48906
+ const peg$c1753 = "maj";
48907
+ const peg$c1754 = peg$literalExpectation("maj", false);
48908
+ const peg$c1755 = "aug";
48909
+ const peg$c1756 = peg$literalExpectation("aug", false);
48910
+ const peg$c1757 = "2+4";
48911
+ const peg$c1758 = peg$literalExpectation("2+4", false);
48912
+ const peg$c1759 = "2#4";
48913
+ const peg$c1760 = peg$literalExpectation("2#4", false);
48914
+ const peg$c1761 = "no3";
48915
+ const peg$c1762 = peg$literalExpectation("no3", false);
48916
+ const peg$c1763 = "7#5";
48917
+ const peg$c1764 = peg$literalExpectation("7#5", false);
48918
+ const peg$c1765 = "7+5";
48919
+ const peg$c1766 = peg$literalExpectation("7+5", false);
48920
+ const peg$c1767 = "7#9";
48921
+ const peg$c1768 = peg$literalExpectation("7#9", false);
48922
+ const peg$c1769 = "7+9";
48923
+ const peg$c1770 = peg$literalExpectation("7+9", false);
48924
+ const peg$c1771 = "7b5";
48925
+ const peg$c1772 = peg$literalExpectation("7b5", false);
48926
+ const peg$c1773 = "7-5";
48927
+ const peg$c1774 = peg$literalExpectation("7-5", false);
48928
+ const peg$c1775 = "7b9";
48929
+ const peg$c1776 = peg$literalExpectation("7b9", false);
48930
+ const peg$c1777 = "7-9";
48931
+ const peg$c1778 = peg$literalExpectation("7-9", false);
48932
+ const peg$c1779 = "9#5";
48933
+ const peg$c1780 = peg$literalExpectation("9#5", false);
48934
+ const peg$c1781 = "9+5";
48935
+ const peg$c1782 = peg$literalExpectation("9+5", false);
48936
+ const peg$c1783 = "9b5";
48937
+ const peg$c1784 = peg$literalExpectation("9b5", false);
48938
+ const peg$c1785 = "9-5";
48939
+ const peg$c1786 = peg$literalExpectation("9-5", false);
48940
+ const peg$c1787 = "dim";
48941
+ const peg$c1788 = peg$literalExpectation("dim", false);
48942
+ const peg$c1789 = "mb5";
48943
+ const peg$c1790 = peg$literalExpectation("mb5", false);
48944
+ const peg$c1791 = "m-5";
48945
+ const peg$c1792 = peg$literalExpectation("m-5", false);
48946
+ const peg$c1793 = "-b5";
48947
+ const peg$c1794 = peg$literalExpectation("-b5", false);
48948
+ const peg$c1795 = "min";
48949
+ const peg$c1796 = peg$literalExpectation("min", false);
48950
+ const peg$c1797 = "mM7";
48951
+ const peg$c1798 = peg$literalExpectation("mM7", false);
48952
+ const peg$c1799 = "m+7";
48953
+ const peg$c1800 = peg$literalExpectation("m+7", false);
48954
+ const peg$c1801 = "mM9";
48955
+ const peg$c1802 = peg$literalExpectation("mM9", false);
48956
+ const peg$c1803 = "m+9";
48957
+ const peg$c1804 = peg$literalExpectation("m+9", false);
48958
+ const peg$c1805 = "m11";
48959
+ const peg$c1806 = peg$literalExpectation("m11", false);
48960
+ const peg$c1807 = "-11";
48961
+ const peg$c1808 = peg$literalExpectation("-11", false);
48962
+ const peg$c1809 = "m13";
48963
+ const peg$c1810 = peg$literalExpectation("m13", false);
48964
+ const peg$c1811 = "-13";
48965
+ const peg$c1812 = peg$literalExpectation("-13", false);
48966
+ const peg$c1813 = "mi2";
48967
+ const peg$c1814 = peg$literalExpectation("mi2", false);
48968
+ const peg$c1815 = "mi6";
48969
+ const peg$c1816 = peg$literalExpectation("mi6", false);
48970
+ const peg$c1817 = "m69";
48971
+ const peg$c1818 = peg$literalExpectation("m69", false);
48972
+ const peg$c1819 = "mi7";
48973
+ const peg$c1820 = peg$literalExpectation("mi7", false);
48974
+ const peg$c1821 = "m74";
48975
+ const peg$c1822 = peg$literalExpectation("m74", false);
48976
+ const peg$c1823 = "mi9";
48977
+ const peg$c1824 = peg$literalExpectation("mi9", false);
48978
+ const peg$c1825 = "ma9";
48979
+ const peg$c1826 = peg$literalExpectation("ma9", false);
48980
+ const peg$c1827 = "+11";
48981
+ const peg$c1828 = peg$literalExpectation("+11", false);
48982
+ const peg$c1829 = "M11";
48983
+ const peg$c1830 = peg$literalExpectation("M11", false);
48984
+ const peg$c1831 = "+13";
48985
+ const peg$c1832 = peg$literalExpectation("+13", false);
48986
+ const peg$c1833 = "M13";
48987
+ const peg$c1834 = peg$literalExpectation("M13", false);
48988
+ const peg$c1835 = "ma6";
48989
+ const peg$c1836 = peg$literalExpectation("ma6", false);
48990
+ const peg$c1837 = "ma7";
48991
+ const peg$c1838 = peg$literalExpectation("ma7", false);
48992
+ const peg$c1839 = "sus";
48993
+ const peg$c1840 = peg$literalExpectation("sus", false);
48994
+ const peg$c1841 = "#4";
48995
+ const peg$c1842 = peg$literalExpectation("#4", false);
48996
+ const peg$c1843 = "+4";
48997
+ const peg$c1844 = peg$literalExpectation("+4", false);
48998
+ const peg$c1845 = "-5";
48999
+ const peg$c1846 = peg$literalExpectation("-5", false);
49000
+ const peg$c1847 = "b5";
49001
+ const peg$c1848 = peg$literalExpectation("b5", false);
49002
+ const peg$c1849 = "ma";
49003
+ const peg$c1850 = peg$literalExpectation("ma", false);
49004
+ const peg$c1851 = "Ma";
49005
+ const peg$c1852 = peg$literalExpectation("Ma", false);
49006
+ const peg$c1853 = "#5";
49007
+ const peg$c1854 = peg$literalExpectation("#5", false);
49008
+ const peg$c1855 = "+5";
49009
+ const peg$c1856 = peg$literalExpectation("+5", false);
49010
+ const peg$c1857 = "11";
49011
+ const peg$c1858 = peg$literalExpectation("11", false);
49012
+ const peg$c1859 = "13";
49013
+ const peg$c1860 = peg$literalExpectation("13", false);
49014
+ const peg$c1861 = "42";
49015
+ const peg$c1862 = peg$literalExpectation("42", false);
49016
+ const peg$c1863 = "69";
49017
+ const peg$c1864 = peg$literalExpectation("69", false);
49018
+ const peg$c1865 = "x7";
49019
+ const peg$c1866 = peg$literalExpectation("x7", false);
49020
+ const peg$c1867 = "x9";
49021
+ const peg$c1868 = peg$literalExpectation("x9", false);
49022
+ const peg$c1869 = "o7";
49023
+ const peg$c1870 = peg$literalExpectation("o7", false);
49024
+ const peg$c1871 = peg$literalExpectation("mi", false);
49025
+ const peg$c1872 = "m2";
49026
+ const peg$c1873 = peg$literalExpectation("m2", false);
49027
+ const peg$c1874 = "m4";
49028
+ const peg$c1875 = peg$literalExpectation("m4", false);
49029
+ const peg$c1876 = "m6";
49030
+ const peg$c1877 = peg$literalExpectation("m6", false);
49031
+ const peg$c1878 = "-6";
49032
+ const peg$c1879 = peg$literalExpectation("-6", false);
49033
+ const peg$c1880 = "m7";
49034
+ const peg$c1881 = peg$literalExpectation("m7", false);
49035
+ const peg$c1882 = "-7";
49036
+ const peg$c1883 = peg$literalExpectation("-7", false);
49037
+ const peg$c1884 = "m9";
49038
+ const peg$c1885 = peg$literalExpectation("m9", false);
49039
+ const peg$c1886 = "-9";
49040
+ const peg$c1887 = peg$literalExpectation("-9", false);
49041
+ const peg$c1888 = "+7";
49042
+ const peg$c1889 = peg$literalExpectation("+7", false);
49043
+ const peg$c1890 = "#7";
49044
+ const peg$c1891 = peg$literalExpectation("#7", false);
49045
+ const peg$c1892 = "M7";
49046
+ const peg$c1893 = peg$literalExpectation("M7", false);
49047
+ const peg$c1894 = "+9";
49048
+ const peg$c1895 = peg$literalExpectation("+9", false);
49049
+ const peg$c1896 = "M9";
49050
+ const peg$c1897 = peg$literalExpectation("M9", false);
49051
+ const peg$c1898 = /^[+\-24-79Mmx]/;
49052
+ const peg$c1899 = peg$classExpectation([
48878
49053
  "+",
48879
49054
  "-",
48880
49055
  "2",
@@ -48887,15 +49062,15 @@ Or set the song key before changing key:
48887
49062
  "m",
48888
49063
  "x"
48889
49064
  ], false, false);
48890
- const peg$c1898 = /^[\n\r]/;
48891
- const peg$c1899 = peg$classExpectation([
49065
+ const peg$c1900 = /^[\n\r]/;
49066
+ const peg$c1901 = peg$classExpectation([
48892
49067
  "\n",
48893
49068
  "\r"
48894
49069
  ], false, false);
48895
- const peg$c1900 = "\n";
48896
- const peg$c1901 = peg$literalExpectation("\n", false);
48897
- const peg$c1902 = "\r";
48898
- const peg$c1903 = peg$literalExpectation("\r", false);
49070
+ const peg$c1902 = "\n";
49071
+ const peg$c1903 = peg$literalExpectation("\n", false);
49072
+ const peg$c1904 = "\r";
49073
+ const peg$c1905 = peg$literalExpectation("\r", false);
48899
49074
  let peg$currPos = 0;
48900
49075
  let peg$savedPos = 0;
48901
49076
  const peg$posDetailsCache = [
@@ -56264,20 +56439,20 @@ Or set the song key before changing key:
56264
56439
  if (peg$silentFails === 0) peg$fail(peg$c1390);
56265
56440
  }
56266
56441
  if (s0 === peg$FAILED) {
56267
- if (input.substr(peg$currPos, 5) === peg$c1387) {
56268
- s0 = peg$c1387;
56442
+ if (input.substr(peg$currPos, 5) === peg$c1391) {
56443
+ s0 = peg$c1391;
56269
56444
  peg$currPos += 5;
56270
56445
  } else {
56271
56446
  s0 = peg$FAILED;
56272
- if (peg$silentFails === 0) peg$fail(peg$c1388);
56447
+ if (peg$silentFails === 0) peg$fail(peg$c1392);
56273
56448
  }
56274
56449
  if (s0 === peg$FAILED) {
56275
- if (input.substr(peg$currPos, 5) === peg$c1391) {
56276
- s0 = peg$c1391;
56450
+ if (input.substr(peg$currPos, 5) === peg$c1389) {
56451
+ s0 = peg$c1389;
56277
56452
  peg$currPos += 5;
56278
56453
  } else {
56279
56454
  s0 = peg$FAILED;
56280
- if (peg$silentFails === 0) peg$fail(peg$c1392);
56455
+ if (peg$silentFails === 0) peg$fail(peg$c1390);
56281
56456
  }
56282
56457
  if (s0 === peg$FAILED) {
56283
56458
  if (input.substr(peg$currPos, 5) === peg$c1393) {
@@ -56408,12 +56583,12 @@ Or set the song key before changing key:
56408
56583
  if (peg$silentFails === 0) peg$fail(peg$c1424);
56409
56584
  }
56410
56585
  if (s0 === peg$FAILED) {
56411
- if (input.substr(peg$currPos, 5) === peg$c1423) {
56412
- s0 = peg$c1423;
56586
+ if (input.substr(peg$currPos, 5) === peg$c1425) {
56587
+ s0 = peg$c1425;
56413
56588
  peg$currPos += 5;
56414
56589
  } else {
56415
56590
  s0 = peg$FAILED;
56416
- if (peg$silentFails === 0) peg$fail(peg$c1424);
56591
+ if (peg$silentFails === 0) peg$fail(peg$c1426);
56417
56592
  }
56418
56593
  if (s0 === peg$FAILED) {
56419
56594
  if (input.substr(peg$currPos, 5) === peg$c1425) {
@@ -56942,9 +57117,9 @@ Or set the song key before changing key:
56942
57117
  if (peg$silentFails === 0) peg$fail(peg$c1530);
56943
57118
  }
56944
57119
  if (s0 === peg$FAILED) {
56945
- if (input.substr(peg$currPos, 4) === peg$c1531) {
57120
+ if (input.substr(peg$currPos, 5) === peg$c1531) {
56946
57121
  s0 = peg$c1531;
56947
- peg$currPos += 4;
57122
+ peg$currPos += 5;
56948
57123
  } else {
56949
57124
  s0 = peg$FAILED;
56950
57125
  if (peg$silentFails === 0) peg$fail(peg$c1532);
@@ -57486,20 +57661,20 @@ Or set the song key before changing key:
57486
57661
  if (peg$silentFails === 0) peg$fail(peg$c1666);
57487
57662
  }
57488
57663
  if (s0 === peg$FAILED) {
57489
- if (input.substr(peg$currPos, 4) === peg$c1663) {
57490
- s0 = peg$c1663;
57664
+ if (input.substr(peg$currPos, 4) === peg$c1667) {
57665
+ s0 = peg$c1667;
57491
57666
  peg$currPos += 4;
57492
57667
  } else {
57493
57668
  s0 = peg$FAILED;
57494
- if (peg$silentFails === 0) peg$fail(peg$c1664);
57669
+ if (peg$silentFails === 0) peg$fail(peg$c1668);
57495
57670
  }
57496
57671
  if (s0 === peg$FAILED) {
57497
- if (input.substr(peg$currPos, 4) === peg$c1667) {
57498
- s0 = peg$c1667;
57672
+ if (input.substr(peg$currPos, 4) === peg$c1665) {
57673
+ s0 = peg$c1665;
57499
57674
  peg$currPos += 4;
57500
57675
  } else {
57501
57676
  s0 = peg$FAILED;
57502
- if (peg$silentFails === 0) peg$fail(peg$c1668);
57677
+ if (peg$silentFails === 0) peg$fail(peg$c1666);
57503
57678
  }
57504
57679
  if (s0 === peg$FAILED) {
57505
57680
  if (input.substr(peg$currPos, 4) === peg$c1669) {
@@ -57518,20 +57693,20 @@ Or set the song key before changing key:
57518
57693
  if (peg$silentFails === 0) peg$fail(peg$c1672);
57519
57694
  }
57520
57695
  if (s0 === peg$FAILED) {
57521
- if (input.substr(peg$currPos, 4) === peg$c1669) {
57522
- s0 = peg$c1669;
57696
+ if (input.substr(peg$currPos, 4) === peg$c1673) {
57697
+ s0 = peg$c1673;
57523
57698
  peg$currPos += 4;
57524
57699
  } else {
57525
57700
  s0 = peg$FAILED;
57526
- if (peg$silentFails === 0) peg$fail(peg$c1670);
57701
+ if (peg$silentFails === 0) peg$fail(peg$c1674);
57527
57702
  }
57528
57703
  if (s0 === peg$FAILED) {
57529
- if (input.substr(peg$currPos, 4) === peg$c1673) {
57530
- s0 = peg$c1673;
57704
+ if (input.substr(peg$currPos, 4) === peg$c1671) {
57705
+ s0 = peg$c1671;
57531
57706
  peg$currPos += 4;
57532
57707
  } else {
57533
57708
  s0 = peg$FAILED;
57534
- if (peg$silentFails === 0) peg$fail(peg$c1674);
57709
+ if (peg$silentFails === 0) peg$fail(peg$c1672);
57535
57710
  }
57536
57711
  if (s0 === peg$FAILED) {
57537
57712
  if (input.substr(peg$currPos, 4) === peg$c1675) {
@@ -57550,20 +57725,20 @@ Or set the song key before changing key:
57550
57725
  if (peg$silentFails === 0) peg$fail(peg$c1678);
57551
57726
  }
57552
57727
  if (s0 === peg$FAILED) {
57553
- if (input.substr(peg$currPos, 4) === peg$c1675) {
57554
- s0 = peg$c1675;
57728
+ if (input.substr(peg$currPos, 4) === peg$c1679) {
57729
+ s0 = peg$c1679;
57555
57730
  peg$currPos += 4;
57556
57731
  } else {
57557
57732
  s0 = peg$FAILED;
57558
- if (peg$silentFails === 0) peg$fail(peg$c1676);
57733
+ if (peg$silentFails === 0) peg$fail(peg$c1680);
57559
57734
  }
57560
57735
  if (s0 === peg$FAILED) {
57561
- if (input.substr(peg$currPos, 4) === peg$c1679) {
57562
- s0 = peg$c1679;
57736
+ if (input.substr(peg$currPos, 4) === peg$c1677) {
57737
+ s0 = peg$c1677;
57563
57738
  peg$currPos += 4;
57564
57739
  } else {
57565
57740
  s0 = peg$FAILED;
57566
- if (peg$silentFails === 0) peg$fail(peg$c1680);
57741
+ if (peg$silentFails === 0) peg$fail(peg$c1678);
57567
57742
  }
57568
57743
  if (s0 === peg$FAILED) {
57569
57744
  if (input.substr(peg$currPos, 4) === peg$c1681) {
@@ -57582,20 +57757,20 @@ Or set the song key before changing key:
57582
57757
  if (peg$silentFails === 0) peg$fail(peg$c1684);
57583
57758
  }
57584
57759
  if (s0 === peg$FAILED) {
57585
- if (input.substr(peg$currPos, 4) === peg$c1681) {
57586
- s0 = peg$c1681;
57760
+ if (input.substr(peg$currPos, 4) === peg$c1685) {
57761
+ s0 = peg$c1685;
57587
57762
  peg$currPos += 4;
57588
57763
  } else {
57589
57764
  s0 = peg$FAILED;
57590
- if (peg$silentFails === 0) peg$fail(peg$c1682);
57765
+ if (peg$silentFails === 0) peg$fail(peg$c1686);
57591
57766
  }
57592
57767
  if (s0 === peg$FAILED) {
57593
- if (input.substr(peg$currPos, 4) === peg$c1685) {
57594
- s0 = peg$c1685;
57768
+ if (input.substr(peg$currPos, 4) === peg$c1683) {
57769
+ s0 = peg$c1683;
57595
57770
  peg$currPos += 4;
57596
57771
  } else {
57597
57772
  s0 = peg$FAILED;
57598
- if (peg$silentFails === 0) peg$fail(peg$c1686);
57773
+ if (peg$silentFails === 0) peg$fail(peg$c1684);
57599
57774
  }
57600
57775
  if (s0 === peg$FAILED) {
57601
57776
  if (input.substr(peg$currPos, 4) === peg$c1687) {
@@ -57708,36 +57883,36 @@ Or set the song key before changing key:
57708
57883
  }
57709
57884
  function peg$parseChordSuffix8() {
57710
57885
  let s0;
57711
- if (input.substr(peg$currPos, 4) === peg$c1645) {
57712
- s0 = peg$c1645;
57886
+ if (input.substr(peg$currPos, 4) === peg$c1689) {
57887
+ s0 = peg$c1689;
57713
57888
  peg$currPos += 4;
57714
57889
  } else {
57715
57890
  s0 = peg$FAILED;
57716
- if (peg$silentFails === 0) peg$fail(peg$c1646);
57891
+ if (peg$silentFails === 0) peg$fail(peg$c1690);
57717
57892
  }
57718
57893
  if (s0 === peg$FAILED) {
57719
- if (input.substr(peg$currPos, 4) === peg$c1689) {
57720
- s0 = peg$c1689;
57894
+ if (input.substr(peg$currPos, 4) === peg$c1647) {
57895
+ s0 = peg$c1647;
57721
57896
  peg$currPos += 4;
57722
57897
  } else {
57723
57898
  s0 = peg$FAILED;
57724
- if (peg$silentFails === 0) peg$fail(peg$c1690);
57899
+ if (peg$silentFails === 0) peg$fail(peg$c1648);
57725
57900
  }
57726
57901
  if (s0 === peg$FAILED) {
57727
- if (input.substr(peg$currPos, 4) === peg$c1645) {
57728
- s0 = peg$c1645;
57902
+ if (input.substr(peg$currPos, 4) === peg$c1691) {
57903
+ s0 = peg$c1691;
57729
57904
  peg$currPos += 4;
57730
57905
  } else {
57731
57906
  s0 = peg$FAILED;
57732
- if (peg$silentFails === 0) peg$fail(peg$c1646);
57907
+ if (peg$silentFails === 0) peg$fail(peg$c1692);
57733
57908
  }
57734
57909
  if (s0 === peg$FAILED) {
57735
- if (input.substr(peg$currPos, 4) === peg$c1691) {
57736
- s0 = peg$c1691;
57910
+ if (input.substr(peg$currPos, 4) === peg$c1647) {
57911
+ s0 = peg$c1647;
57737
57912
  peg$currPos += 4;
57738
57913
  } else {
57739
57914
  s0 = peg$FAILED;
57740
- if (peg$silentFails === 0) peg$fail(peg$c1692);
57915
+ if (peg$silentFails === 0) peg$fail(peg$c1648);
57741
57916
  }
57742
57917
  if (s0 === peg$FAILED) {
57743
57918
  if (input.substr(peg$currPos, 4) === peg$c1693) {
@@ -57756,20 +57931,20 @@ Or set the song key before changing key:
57756
57931
  if (peg$silentFails === 0) peg$fail(peg$c1696);
57757
57932
  }
57758
57933
  if (s0 === peg$FAILED) {
57759
- if (input.substr(peg$currPos, 4) === peg$c1647) {
57760
- s0 = peg$c1647;
57934
+ if (input.substr(peg$currPos, 4) === peg$c1697) {
57935
+ s0 = peg$c1697;
57761
57936
  peg$currPos += 4;
57762
57937
  } else {
57763
57938
  s0 = peg$FAILED;
57764
- if (peg$silentFails === 0) peg$fail(peg$c1648);
57939
+ if (peg$silentFails === 0) peg$fail(peg$c1698);
57765
57940
  }
57766
57941
  if (s0 === peg$FAILED) {
57767
- if (input.substr(peg$currPos, 4) === peg$c1697) {
57768
- s0 = peg$c1697;
57942
+ if (input.substr(peg$currPos, 4) === peg$c1649) {
57943
+ s0 = peg$c1649;
57769
57944
  peg$currPos += 4;
57770
57945
  } else {
57771
57946
  s0 = peg$FAILED;
57772
- if (peg$silentFails === 0) peg$fail(peg$c1698);
57947
+ if (peg$silentFails === 0) peg$fail(peg$c1650);
57773
57948
  }
57774
57949
  if (s0 === peg$FAILED) {
57775
57950
  if (input.substr(peg$currPos, 4) === peg$c1699) {
@@ -57804,28 +57979,28 @@ Or set the song key before changing key:
57804
57979
  if (peg$silentFails === 0) peg$fail(peg$c1706);
57805
57980
  }
57806
57981
  if (s0 === peg$FAILED) {
57807
- if (input.substr(peg$currPos, 4) === peg$c1701) {
57808
- s0 = peg$c1701;
57982
+ if (input.substr(peg$currPos, 4) === peg$c1707) {
57983
+ s0 = peg$c1707;
57809
57984
  peg$currPos += 4;
57810
57985
  } else {
57811
57986
  s0 = peg$FAILED;
57812
- if (peg$silentFails === 0) peg$fail(peg$c1702);
57987
+ if (peg$silentFails === 0) peg$fail(peg$c1708);
57813
57988
  }
57814
57989
  if (s0 === peg$FAILED) {
57815
- if (input.substr(peg$currPos, 4) === peg$c1707) {
57816
- s0 = peg$c1707;
57990
+ if (input.substr(peg$currPos, 4) === peg$c1703) {
57991
+ s0 = peg$c1703;
57817
57992
  peg$currPos += 4;
57818
57993
  } else {
57819
57994
  s0 = peg$FAILED;
57820
- if (peg$silentFails === 0) peg$fail(peg$c1708);
57995
+ if (peg$silentFails === 0) peg$fail(peg$c1704);
57821
57996
  }
57822
57997
  if (s0 === peg$FAILED) {
57823
- if (input.substr(peg$currPos, 4) === peg$c1707) {
57824
- s0 = peg$c1707;
57998
+ if (input.substr(peg$currPos, 4) === peg$c1709) {
57999
+ s0 = peg$c1709;
57825
58000
  peg$currPos += 4;
57826
58001
  } else {
57827
58002
  s0 = peg$FAILED;
57828
- if (peg$silentFails === 0) peg$fail(peg$c1708);
58003
+ if (peg$silentFails === 0) peg$fail(peg$c1710);
57829
58004
  }
57830
58005
  if (s0 === peg$FAILED) {
57831
58006
  if (input.substr(peg$currPos, 4) === peg$c1709) {
@@ -57916,20 +58091,20 @@ Or set the song key before changing key:
57916
58091
  if (peg$silentFails === 0) peg$fail(peg$c1730);
57917
58092
  }
57918
58093
  if (s0 === peg$FAILED) {
57919
- if (input.substr(peg$currPos, 4) === peg$c1699) {
57920
- s0 = peg$c1699;
58094
+ if (input.substr(peg$currPos, 4) === peg$c1731) {
58095
+ s0 = peg$c1731;
57921
58096
  peg$currPos += 4;
57922
58097
  } else {
57923
58098
  s0 = peg$FAILED;
57924
- if (peg$silentFails === 0) peg$fail(peg$c1700);
58099
+ if (peg$silentFails === 0) peg$fail(peg$c1732);
57925
58100
  }
57926
58101
  if (s0 === peg$FAILED) {
57927
- if (input.substr(peg$currPos, 4) === peg$c1731) {
57928
- s0 = peg$c1731;
58102
+ if (input.substr(peg$currPos, 4) === peg$c1701) {
58103
+ s0 = peg$c1701;
57929
58104
  peg$currPos += 4;
57930
58105
  } else {
57931
58106
  s0 = peg$FAILED;
57932
- if (peg$silentFails === 0) peg$fail(peg$c1732);
58107
+ if (peg$silentFails === 0) peg$fail(peg$c1702);
57933
58108
  }
57934
58109
  if (s0 === peg$FAILED) {
57935
58110
  if (input.substr(peg$currPos, 4) === peg$c1733) {
@@ -57964,9 +58139,9 @@ Or set the song key before changing key:
57964
58139
  if (peg$silentFails === 0) peg$fail(peg$c1740);
57965
58140
  }
57966
58141
  if (s0 === peg$FAILED) {
57967
- if (input.substr(peg$currPos, 3) === peg$c1741) {
58142
+ if (input.substr(peg$currPos, 4) === peg$c1741) {
57968
58143
  s0 = peg$c1741;
57969
- peg$currPos += 3;
58144
+ peg$currPos += 4;
57970
58145
  } else {
57971
58146
  s0 = peg$FAILED;
57972
58147
  if (peg$silentFails === 0) peg$fail(peg$c1742);
@@ -58348,33 +58523,33 @@ Or set the song key before changing key:
58348
58523
  if (peg$silentFails === 0) peg$fail(peg$c1836);
58349
58524
  }
58350
58525
  if (s0 === peg$FAILED) {
58351
- if (input.substr(peg$currPos, 3) === peg$c1823) {
58352
- s0 = peg$c1823;
58526
+ if (input.substr(peg$currPos, 3) === peg$c1837) {
58527
+ s0 = peg$c1837;
58353
58528
  peg$currPos += 3;
58354
58529
  } else {
58355
58530
  s0 = peg$FAILED;
58356
- if (peg$silentFails === 0) peg$fail(peg$c1824);
58531
+ if (peg$silentFails === 0) peg$fail(peg$c1838);
58357
58532
  }
58358
58533
  if (s0 === peg$FAILED) {
58359
- if (input.substr(peg$currPos, 3) === peg$c1823) {
58360
- s0 = peg$c1823;
58534
+ if (input.substr(peg$currPos, 3) === peg$c1825) {
58535
+ s0 = peg$c1825;
58361
58536
  peg$currPos += 3;
58362
58537
  } else {
58363
58538
  s0 = peg$FAILED;
58364
- if (peg$silentFails === 0) peg$fail(peg$c1824);
58539
+ if (peg$silentFails === 0) peg$fail(peg$c1826);
58365
58540
  }
58366
58541
  if (s0 === peg$FAILED) {
58367
- if (input.substr(peg$currPos, 3) === peg$c1837) {
58368
- s0 = peg$c1837;
58542
+ if (input.substr(peg$currPos, 3) === peg$c1825) {
58543
+ s0 = peg$c1825;
58369
58544
  peg$currPos += 3;
58370
58545
  } else {
58371
58546
  s0 = peg$FAILED;
58372
- if (peg$silentFails === 0) peg$fail(peg$c1838);
58547
+ if (peg$silentFails === 0) peg$fail(peg$c1826);
58373
58548
  }
58374
58549
  if (s0 === peg$FAILED) {
58375
- if (input.substr(peg$currPos, 2) === peg$c1839) {
58550
+ if (input.substr(peg$currPos, 3) === peg$c1839) {
58376
58551
  s0 = peg$c1839;
58377
- peg$currPos += 2;
58552
+ peg$currPos += 3;
58378
58553
  } else {
58379
58554
  s0 = peg$FAILED;
58380
58555
  if (peg$silentFails === 0) peg$fail(peg$c1840);
@@ -58452,12 +58627,12 @@ Or set the song key before changing key:
58452
58627
  if (peg$silentFails === 0) peg$fail(peg$c1858);
58453
58628
  }
58454
58629
  if (s0 === peg$FAILED) {
58455
- if (input.substr(peg$currPos, 2) === peg$c1857) {
58456
- s0 = peg$c1857;
58630
+ if (input.substr(peg$currPos, 2) === peg$c1859) {
58631
+ s0 = peg$c1859;
58457
58632
  peg$currPos += 2;
58458
58633
  } else {
58459
58634
  s0 = peg$FAILED;
58460
- if (peg$silentFails === 0) peg$fail(peg$c1858);
58635
+ if (peg$silentFails === 0) peg$fail(peg$c1860);
58461
58636
  }
58462
58637
  if (s0 === peg$FAILED) {
58463
58638
  if (input.substr(peg$currPos, 2) === peg$c1859) {
@@ -58500,12 +58675,12 @@ Or set the song key before changing key:
58500
58675
  if (peg$silentFails === 0) peg$fail(peg$c1868);
58501
58676
  }
58502
58677
  if (s0 === peg$FAILED) {
58503
- if (input.substr(peg$currPos, 2) === peg$c82) {
58504
- s0 = peg$c82;
58678
+ if (input.substr(peg$currPos, 2) === peg$c1869) {
58679
+ s0 = peg$c1869;
58505
58680
  peg$currPos += 2;
58506
58681
  } else {
58507
58682
  s0 = peg$FAILED;
58508
- if (peg$silentFails === 0) peg$fail(peg$c1869);
58683
+ if (peg$silentFails === 0) peg$fail(peg$c1870);
58509
58684
  }
58510
58685
  }
58511
58686
  }
@@ -58610,8 +58785,8 @@ Or set the song key before changing key:
58610
58785
  }
58611
58786
  function peg$parseChordSuffix9() {
58612
58787
  let s0;
58613
- if (input.substr(peg$currPos, 2) === peg$c1870) {
58614
- s0 = peg$c1870;
58788
+ if (input.substr(peg$currPos, 2) === peg$c82) {
58789
+ s0 = peg$c82;
58615
58790
  peg$currPos += 2;
58616
58791
  } else {
58617
58792
  s0 = peg$FAILED;
@@ -58714,13 +58889,22 @@ Or set the song key before changing key:
58714
58889
  if (peg$silentFails === 0) peg$fail(peg$c1895);
58715
58890
  }
58716
58891
  if (s0 === peg$FAILED) {
58717
- if (peg$c1896.test(input.charAt(peg$currPos))) {
58718
- s0 = input.charAt(peg$currPos);
58719
- peg$currPos++;
58892
+ if (input.substr(peg$currPos, 2) === peg$c1896) {
58893
+ s0 = peg$c1896;
58894
+ peg$currPos += 2;
58720
58895
  } else {
58721
58896
  s0 = peg$FAILED;
58722
58897
  if (peg$silentFails === 0) peg$fail(peg$c1897);
58723
58898
  }
58899
+ if (s0 === peg$FAILED) {
58900
+ if (peg$c1898.test(input.charAt(peg$currPos))) {
58901
+ s0 = input.charAt(peg$currPos);
58902
+ peg$currPos++;
58903
+ } else {
58904
+ s0 = peg$FAILED;
58905
+ if (peg$silentFails === 0) peg$fail(peg$c1899);
58906
+ }
58907
+ }
58724
58908
  }
58725
58909
  }
58726
58910
  }
@@ -58738,12 +58922,12 @@ Or set the song key before changing key:
58738
58922
  }
58739
58923
  function peg$parseNewLine() {
58740
58924
  let s0;
58741
- if (peg$c1898.test(input.charAt(peg$currPos))) {
58925
+ if (peg$c1900.test(input.charAt(peg$currPos))) {
58742
58926
  s0 = input.charAt(peg$currPos);
58743
58927
  peg$currPos++;
58744
58928
  } else {
58745
58929
  s0 = peg$FAILED;
58746
- if (peg$silentFails === 0) peg$fail(peg$c1899);
58930
+ if (peg$silentFails === 0) peg$fail(peg$c1901);
58747
58931
  }
58748
58932
  if (s0 === peg$FAILED) s0 = peg$parseCarriageReturnLineFeed();
58749
58933
  return s0;
@@ -58773,22 +58957,22 @@ Or set the song key before changing key:
58773
58957
  function peg$parseLineFeed() {
58774
58958
  let s0;
58775
58959
  if (input.charCodeAt(peg$currPos) === 10) {
58776
- s0 = peg$c1900;
58960
+ s0 = peg$c1902;
58777
58961
  peg$currPos++;
58778
58962
  } else {
58779
58963
  s0 = peg$FAILED;
58780
- if (peg$silentFails === 0) peg$fail(peg$c1901);
58964
+ if (peg$silentFails === 0) peg$fail(peg$c1903);
58781
58965
  }
58782
58966
  return s0;
58783
58967
  }
58784
58968
  function peg$parseCarriageReturn() {
58785
58969
  let s0;
58786
58970
  if (input.charCodeAt(peg$currPos) === 13) {
58787
- s0 = peg$c1902;
58971
+ s0 = peg$c1904;
58788
58972
  peg$currPos++;
58789
58973
  } else {
58790
58974
  s0 = peg$FAILED;
58791
- if (peg$silentFails === 0) peg$fail(peg$c1903);
58975
+ if (peg$silentFails === 0) peg$fail(peg$c1905);
58792
58976
  }
58793
58977
  return s0;
58794
58978
  }
@@ -59595,6 +59779,7 @@ Or set the song key before changing key:
59595
59779
  * Gets conditional CSS styles from font configuration
59596
59780
  */
59597
59781
  getConditionalStyles(style) {
59782
+ const normalizedFontStyles = this.getNormalizedFontStyles(style);
59598
59783
  return {
59599
59784
  ...style.name && {
59600
59785
  fontFamily: style.name
@@ -59602,15 +59787,7 @@ Or set the song key before changing key:
59602
59787
  ...style.size && {
59603
59788
  fontSize: `${style.size}px`
59604
59789
  },
59605
- ...style.weight && {
59606
- fontWeight: style.weight
59607
- },
59608
- ...style.style && {
59609
- fontStyle: style.style
59610
- },
59611
- ...style.color && {
59612
- color: style.color
59613
- },
59790
+ ...normalizedFontStyles,
59614
59791
  ...style.underline && {
59615
59792
  textDecoration: "underline"
59616
59793
  },
@@ -59661,6 +59838,7 @@ Or set the song key before changing key:
59661
59838
  * Applies font styles to an HTML element
59662
59839
  */
59663
59840
  applyFontStyle(element, style) {
59841
+ const normalizedFontStyles = this.getNormalizedFontStyles(style);
59664
59842
  const styles = {
59665
59843
  whiteSpace: "pre",
59666
59844
  ...style.name && {
@@ -59669,15 +59847,7 @@ Or set the song key before changing key:
59669
59847
  ...style.size && {
59670
59848
  fontSize: `${style.size}px`
59671
59849
  },
59672
- ...style.weight && {
59673
- fontWeight: style.weight
59674
- },
59675
- ...style.style && {
59676
- fontStyle: style.style
59677
- },
59678
- ...style.color && {
59679
- color: style.color
59680
- },
59850
+ ...normalizedFontStyles,
59681
59851
  ...style.underline && {
59682
59852
  textDecoration: "underline"
59683
59853
  },
@@ -59710,6 +59880,27 @@ Or set the song key before changing key:
59710
59880
  getCustomClass(elementType) {
59711
59881
  return this.config.cssClasses?.[elementType];
59712
59882
  }
59883
+ getNormalizedFontStyles(style) {
59884
+ const fontWeight = style.weight ?? (style.style === "bold" ? "bold" : void 0);
59885
+ const fontStyle = style.style && style.style !== "bold" ? style.style : void 0;
59886
+ const color = this.normalizeColor(style.color);
59887
+ return {
59888
+ ...fontWeight && {
59889
+ fontWeight
59890
+ },
59891
+ ...fontStyle && {
59892
+ fontStyle
59893
+ },
59894
+ ...color && {
59895
+ color
59896
+ }
59897
+ };
59898
+ }
59899
+ normalizeColor(color) {
59900
+ if (typeof color === "number") return `rgb(${color}, ${color}, ${color})`;
59901
+ if (typeof color === "string" && /^\d+$/.test(color)) return `rgb(${color}, ${color}, ${color})`;
59902
+ return color;
59903
+ }
59713
59904
  };
59714
59905
  var $0594288a7c3f9fa6$export$2e2bcd8739ae039 = $0594288a7c3f9fa6$export$94eb343ca6d26096;
59715
59906
  function $bdd8c6196670168a$var$isNumber(value) {
@@ -59944,7 +60135,14 @@ Or set the song key before changing key:
59944
60135
  if (!contentItem.condition) return true;
59945
60136
  const { metadata: songMetadata, extraMetadata } = this.context;
59946
60137
  const metadata = new Proxy({}, {
59947
- get: (_3, prop) => extraMetadata?.[prop] ?? songMetadata.get(prop)
60138
+ get: (_3, prop) => {
60139
+ const value = extraMetadata?.[prop] ?? songMetadata.get(prop);
60140
+ if ((prop === "page" || prop === "pages" || prop === "renderTime") && typeof value === "string") {
60141
+ const numericValue = Number(value);
60142
+ if (!Number.isNaN(numericValue)) return numericValue;
60143
+ }
60144
+ return value;
60145
+ }
59948
60146
  });
59949
60147
  return new (0, $bdd8c6196670168a$export$2e2bcd8739ae039)(contentItem.condition, metadata).evaluate();
59950
60148
  }
@@ -59959,16 +60157,19 @@ Or set the song key before changing key:
59959
60157
  this.backend.setFontStyle(style);
59960
60158
  const availableWidth = position.width || this.getAvailableWidth();
59961
60159
  const y3 = sectionY + position.y;
59962
- if (position.clip) this.renderClippedText(textValue, position, availableWidth, y3, style);
59963
- else this.renderMultilineText(textValue, position, availableWidth, y3, style);
60160
+ if (position.clip) this.renderClippedText(textValue, textItem, availableWidth, y3, style);
60161
+ else this.renderMultilineText(textValue, textItem, availableWidth, y3, style);
59964
60162
  }
59965
60163
  /**
59966
60164
  * Renders clipped text with optional ellipsis
59967
60165
  */
59968
- renderClippedText(textValue, position, availableWidth, y3, style) {
60166
+ renderClippedText(textValue, textItem, availableWidth, y3, style) {
60167
+ const { position } = textItem;
59969
60168
  const clippedText = position.ellipsis ? this.clipTextWithEllipsis(textValue, availableWidth, style) : this.clipText(textValue, availableWidth, style);
59970
60169
  const textWidth = this.backend.getTextWidth(clippedText, style);
59971
- const x2 = this.calculateX(position.x, textWidth);
60170
+ const alignmentWidth = position.width ?? textWidth;
60171
+ this.backend.setTextItem?.(textItem);
60172
+ const x2 = this.calculateX(position.x, alignmentWidth, position.offsetX);
59972
60173
  this.backend.text(clippedText, x2, y3);
59973
60174
  }
59974
60175
  /**
@@ -59990,12 +60191,15 @@ Or set the song key before changing key:
59990
60191
  /**
59991
60192
  * Renders multiline text
59992
60193
  */
59993
- renderMultilineText(textValue, position, availableWidth, y3, style) {
60194
+ renderMultilineText(textValue, textItem, availableWidth, y3, style) {
60195
+ const { position } = textItem;
59994
60196
  const lines = this.backend.splitTextToSize(textValue, availableWidth, style);
59995
60197
  let tempY = y3;
59996
60198
  lines.forEach((line) => {
59997
60199
  const lineWidth = this.backend.getTextWidth(line, style);
59998
- const x2 = this.calculateX(position.x, lineWidth);
60200
+ const alignmentWidth = position.width ?? lineWidth;
60201
+ this.backend.setTextItem?.(textItem);
60202
+ const x2 = this.calculateX(position.x, alignmentWidth, position.offsetX);
59999
60203
  this.backend.text(line, x2, tempY);
60000
60204
  tempY += style.size * (style.lineHeight ?? 1.2);
60001
60205
  });
@@ -60005,7 +60209,7 @@ Or set the song key before changing key:
60005
60209
  */
60006
60210
  renderImage(imageItem, sectionY) {
60007
60211
  const { src, position, size, alias, compression, rotation } = imageItem;
60008
- const x2 = this.calculateX(position.x, size.width);
60212
+ const x2 = this.calculateX(position.x, size.width, position.offsetX);
60009
60213
  const y3 = sectionY + position.y;
60010
60214
  const format = src.split(".").pop()?.toUpperCase();
60011
60215
  this.backend.addImage(src, format, x2, y3, size.width, size.height, alias, compression, rotation);
@@ -60042,16 +60246,16 @@ ${template}
60042
60246
  /**
60043
60247
  * Calculates the X position based on alignment
60044
60248
  */
60045
- calculateX(alignment, width = 0) {
60249
+ calculateX(alignment, width = 0, offsetX = 0) {
60046
60250
  switch (alignment) {
60047
60251
  case "center":
60048
- return this.backend.pageSize.width / 2 - width / 2;
60252
+ return this.backend.pageSize.width / 2 - width / 2 + offsetX;
60049
60253
  case "right":
60050
- return this.backend.pageSize.width - this.context.margins.right - width;
60254
+ return this.backend.pageSize.width - this.context.margins.right - width + offsetX;
60051
60255
  case "left":
60052
60256
  default:
60053
- if (typeof alignment === "number") return this.context.margins.left + alignment;
60054
- return this.context.margins.left;
60257
+ if (typeof alignment === "number") return this.context.margins.left + alignment + offsetX;
60258
+ return this.context.margins.left + offsetX;
60055
60259
  }
60056
60260
  }
60057
60261
  /**
@@ -60324,7 +60528,6 @@ ${template}
60324
60528
  recordRenderingTime() {
60325
60529
  const endTime = performance.now();
60326
60530
  this.renderTime = (endTime - this.startTime) / 1e3;
60327
- console.log(`Rendered in ${this.renderTime.toFixed(2)} seconds`);
60328
60531
  }
60329
60532
  /**
60330
60533
  * Get the elements for a specific page
@@ -60458,7 +60661,7 @@ ${template}
60458
60661
  * Creates a new HtmlRenderer
60459
60662
  */
60460
60663
  constructor(song, container, configuration) {
60461
- super(song), this._dimensions = null, this._dimensionCacheKey = null;
60664
+ super(song), this.currentLayoutFontStyle = null, this.currentLayoutSection = null, this.currentLayoutTextItem = null, this.currentLineStyle = null, this._dimensions = null, this._dimensionCacheKey = null;
60462
60665
  this.container = container;
60463
60666
  this.configuration = configuration;
60464
60667
  this.styler = new (0, $0594288a7c3f9fa6$export$2e2bcd8739ae039)({
@@ -60519,36 +60722,52 @@ ${template}
60519
60722
  console.log("Chord diagram rendering is stubbed out");
60520
60723
  }
60521
60724
  renderHeadersAndFooters() {
60522
- const layoutRenderer = this.createLayoutRenderer();
60523
- if (this.getHeaderConfig()) this.doc.eachPage(() => {
60524
- layoutRenderer.renderLayout(this.getHeaderConfig(), "header");
60525
- });
60526
- if (this.getFooterConfig()) this.doc.eachPage(() => {
60527
- layoutRenderer.renderLayout(this.getFooterConfig(), "footer");
60725
+ const headerConfig = this.getHeaderConfig();
60726
+ const footerConfig = this.getFooterConfig();
60727
+ if (headerConfig) this.renderLayoutForEachPage(headerConfig, "header");
60728
+ if (footerConfig) this.renderLayoutForEachPage(footerConfig, "footer");
60729
+ this.resetLayoutRenderingState();
60730
+ }
60731
+ renderLayoutForEachPage(layoutConfig, section) {
60732
+ this.doc.eachPage((_page, index2) => {
60733
+ this.currentLayoutSection = section;
60734
+ this.resetLayoutRenderingState(section);
60735
+ this.createLayoutRenderer(index2 + 1, this.doc.totalPages).renderLayout(layoutConfig, section);
60528
60736
  });
60529
60737
  }
60530
- createLayoutRenderer() {
60531
- const backend = this.createLayoutBackend();
60738
+ resetLayoutRenderingState(section = null) {
60739
+ this.currentLayoutSection = section;
60740
+ this.currentLayoutFontStyle = null;
60741
+ this.currentLayoutTextItem = null;
60742
+ this.currentLineStyle = null;
60743
+ }
60744
+ createLayoutRenderer(page, totalPages) {
60745
+ const backend = this.createLayoutBackend(page, totalPages);
60532
60746
  return new (0, $2e404bc796b05dec$export$2e2bcd8739ae039)(backend, {
60533
60747
  metadata: this.song.metadata,
60534
60748
  margins: this.dimensions.margins,
60535
- extraMetadata: this.getExtraMetadata(this.doc.currentPage, this.doc.totalPages)
60749
+ extraMetadata: this.getExtraMetadata(page, totalPages)
60536
60750
  });
60537
60751
  }
60538
- createLayoutBackend() {
60752
+ createLayoutBackend(page, totalPages) {
60539
60753
  return {
60540
60754
  pageSize: this.doc.pageSize,
60541
- currentPage: this.doc.currentPage,
60542
- totalPages: this.doc.totalPages,
60755
+ currentPage: page,
60756
+ totalPages,
60543
60757
  text: (content, x2, y3) => this.renderHtmlText(content, x2, y3),
60544
60758
  getTextWidth: (text2, font) => this.doc.getTextWidth(text2, font),
60545
60759
  splitTextToSize: (text2, maxWidth, font) => this.doc.splitTextToSize(text2, maxWidth, font),
60546
- setFontStyle: () => {
60760
+ setFontStyle: (style) => {
60761
+ this.currentLayoutFontStyle = style;
60762
+ },
60763
+ setTextItem: (item) => {
60764
+ this.currentLayoutTextItem = item;
60547
60765
  },
60548
60766
  addElement: (element, x2, y3) => this.doc.addElement(element, x2, y3),
60549
60767
  addImage: (src, _format, x2, y3, width, height) => this.renderHtmlImage(src, x2, y3, width, height),
60550
60768
  line: (x1, y1, x2, y22) => this.renderHtmlLine(x1, y1, x2, y22),
60551
- setLineStyle: () => {
60769
+ setLineStyle: (style) => {
60770
+ this.currentLineStyle = style;
60552
60771
  },
60553
60772
  resetDash: () => {
60554
60773
  }
@@ -60557,9 +60776,20 @@ ${template}
60557
60776
  renderHtmlText(content, x2, y3) {
60558
60777
  const element = document.createElement("div");
60559
60778
  element.className = `${this.styler.prefix}header-text`;
60779
+ this.applyLayoutTextClasses(element);
60560
60780
  element.textContent = content;
60781
+ this.applyLayoutTextStyles(element);
60561
60782
  this.doc.addElement(element, x2, y3);
60562
60783
  }
60784
+ applyLayoutTextClasses(element) {
60785
+ const sectionClass = this.currentLayoutSection ? this.styler.getCustomClass(this.currentLayoutSection) : void 0;
60786
+ if (sectionClass) element.classList.add(sectionClass);
60787
+ if (this.currentLayoutTextItem?.cssClass) element.classList.add(this.currentLayoutTextItem.cssClass);
60788
+ }
60789
+ applyLayoutTextStyles(element) {
60790
+ if (this.currentLayoutTextItem?.elementStyle) Object.assign(element.style, this.currentLayoutTextItem.elementStyle);
60791
+ if (this.currentLayoutFontStyle) this.styler.applyFontStyle(element, this.currentLayoutFontStyle);
60792
+ }
60563
60793
  renderHtmlImage(src, x2, y3, width, height) {
60564
60794
  const img = document.createElement("img");
60565
60795
  img.className = `${this.styler.prefix}image`;
@@ -60571,11 +60801,12 @@ ${template}
60571
60801
  renderHtmlLine(x1, y1, x2, _y2) {
60572
60802
  const lineElement = document.createElement("div");
60573
60803
  lineElement.className = `${this.styler.prefix}line`;
60804
+ const lineStyle = this.currentLineStyle;
60574
60805
  lineElement.style.width = `${x2 - x1}px`;
60575
- lineElement.style.height = "1px";
60576
- lineElement.style.borderBottomWidth = "1px";
60577
- lineElement.style.borderBottomStyle = "solid";
60578
- lineElement.style.borderBottomColor = "#000000";
60806
+ lineElement.style.height = "0";
60807
+ lineElement.style.borderBottomWidth = `${lineStyle?.width ?? 1}px`;
60808
+ lineElement.style.borderBottomStyle = lineStyle?.dash?.length ? "dashed" : "solid";
60809
+ lineElement.style.borderBottomColor = lineStyle?.color ?? "#000000";
60579
60810
  this.doc.addElement(lineElement, x1, y1);
60580
60811
  }
60581
60812
  renderParagraphs(paragraphLayouts) {
@@ -69982,7 +70213,7 @@ AjwCRQJ5AAAAAAABAAAAANpTmfAAAAAA0e+yRgAAAADR77JG
69982
70213
  }
69983
70214
  };
69984
70215
  var $a5a21ced491ea51f$export$2e2bcd8739ae039 = $a5a21ced491ea51f$var$UltimateGuitarParser;
69985
- var $ae92e002ce14f11a$export$2e2bcd8739ae039 = "14.5.0";
70216
+ var $ae92e002ce14f11a$export$2e2bcd8739ae039 = "14.6.0";
69986
70217
  var $a3816b486f741c00$exports = {};
69987
70218
  var $892913528e7f60f9$export$2e2bcd8739ae039 = {
69988
70219
  CHORUS: $dce48cb70c4120bb$export$8db6c706fc9142b2,
@@ -70076,7 +70307,7 @@ html2canvas/dist/html2canvas.js:
70076
70307
  ***************************************************************************** *)
70077
70308
 
70078
70309
  dompurify/dist/purify.es.mjs:
70079
- (*! @license DOMPurify 3.3.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.2/LICENSE *)
70310
+ (*! @license DOMPurify 3.4.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.0/LICENSE *)
70080
70311
 
70081
70312
  svg-pathdata/lib/SVGPathData.module.js:
70082
70313
  (*! *****************************************************************************