chordsheetjs 12.0.0 → 12.1.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
@@ -14,10 +14,13 @@ var ChordSheetJS = (() => {
14
14
  function $parcel$export(e, n, v, s) {
15
15
  Object.defineProperty(e, n, { get: v, set: s, enumerable: true, configurable: true });
16
16
  }
17
+ function $parcel$interopDefault(a) {
18
+ return a && a.__esModule ? a.default : a;
19
+ }
17
20
  $parcel$defineInteropFlag(module.exports);
18
21
  $parcel$export(module.exports, "default", () => $892913528e7f60f9$export$2e2bcd8739ae039);
19
22
  $parcel$export(module.exports, "Chord", () => $177a605b8569b31c$export$2e2bcd8739ae039);
20
- $parcel$export(module.exports, "ChordDefinition", () => $36ec5eba476f1300$export$2e2bcd8739ae039);
23
+ $parcel$export(module.exports, "ChordDefinition", () => $6c1ed1378c3b5965$export$2e2bcd8739ae039);
21
24
  $parcel$export(module.exports, "ChordLyricsPair", () => $551a223fc13b5c10$export$2e2bcd8739ae039);
22
25
  $parcel$export(module.exports, "ChordProFormatter", () => $244a67400187e14e$export$2e2bcd8739ae039);
23
26
  $parcel$export(module.exports, "ChordProParser", () => $957f29f677b8d58d$export$2e2bcd8739ae039);
@@ -53,6 +56,7 @@ var ChordSheetJS = (() => {
53
56
  $parcel$export(module.exports, "SYMBOL", () => $dce48cb70c4120bb$export$27c95a7104c1f7aa);
54
57
  $parcel$export(module.exports, "TAB", () => $dce48cb70c4120bb$export$f1c9dd0f5207dd5e);
55
58
  $parcel$export(module.exports, "VERSE", () => $dce48cb70c4120bb$export$4b194284baed1659);
59
+ $parcel$export(module.exports, "PART", () => $dce48cb70c4120bb$export$609cc0ea1637d6a0);
56
60
  $parcel$export(module.exports, "NUMERAL", () => $dce48cb70c4120bb$export$1321df9b16c30c6a);
57
61
  function $b0c0093f9a3a0967$var$peg$padEnd(str, targetLength, padString) {
58
62
  padString = padString || " ";
@@ -967,6 +971,7 @@ var ChordSheetJS = (() => {
967
971
  var $dce48cb70c4120bb$export$c53d0f541b41b88e = "none";
968
972
  var $dce48cb70c4120bb$export$f1c9dd0f5207dd5e = "tab";
969
973
  var $dce48cb70c4120bb$export$4b194284baed1659 = "verse";
974
+ var $dce48cb70c4120bb$export$609cc0ea1637d6a0 = "part";
970
975
  var $dce48cb70c4120bb$export$6a5a2eab72b6e3d = "ly";
971
976
  var $dce48cb70c4120bb$export$92249c36c213e508 = "abc";
972
977
  var $dce48cb70c4120bb$export$27c95a7104c1f7aa = "symbol";
@@ -987,6 +992,9 @@ var ChordSheetJS = (() => {
987
992
  var $dce48cb70c4120bb$export$f0f7b592ea674eb2 = "NM";
988
993
  var $dce48cb70c4120bb$export$f23edc19d247fd25 = "m";
989
994
  var $dce48cb70c4120bb$export$39615881bb0d21f6 = "M";
995
+ var $dce48cb70c4120bb$export$dfea9b8ecbbb8623 = "start_tag";
996
+ var $dce48cb70c4120bb$export$3d329a2c209fbc28 = "end_tag";
997
+ var $dce48cb70c4120bb$export$97c0a36af1d48540 = "auto";
990
998
  var $3d106a0ee348cfa8$export$7e1516eaf3ebe01f = {
991
999
  [(0, $dce48cb70c4120bb$export$27c95a7104c1f7aa)]: {
992
1000
  [(0, $dce48cb70c4120bb$export$39615881bb0d21f6)]: {
@@ -2736,10 +2744,13 @@ var ChordSheetJS = (() => {
2736
2744
  function $28a2fcb6fb95a147$var$dasherize(string) {
2737
2745
  return string.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
2738
2746
  }
2747
+ function $28a2fcb6fb95a147$var$scopeSelector(selector, scope) {
2748
+ return selector.split(",").map((s) => `${scope} ${s.trim()}`.trim()).join(",\n");
2749
+ }
2739
2750
  function $28a2fcb6fb95a147$export$59d377d2a2e0150a(css, scope = "") {
2740
2751
  return Object.entries(css).map(([selector, styles]) => {
2741
2752
  const rules = Object.entries(styles).map(([property, value]) => `${$28a2fcb6fb95a147$var$dasherize(property)}: ${value};`).join("\n ");
2742
- const scopedSelector = `${scope} ${selector}`.trim();
2753
+ const scopedSelector = $28a2fcb6fb95a147$var$scopeSelector(selector, scope);
2743
2754
  return `
2744
2755
  ${scopedSelector} {
2745
2756
  ${rules}
@@ -3828,53 +3839,46 @@ to a key`);
3828
3839
  const peg$c33 = function(fret) {
3829
3840
  return fret;
3830
3841
  };
3831
- const peg$c34 = /^[1-9]/;
3832
- const peg$c35 = peg$classExpectation([
3833
- [
3834
- "1",
3835
- "9"
3836
- ]
3837
- ], false, false);
3838
- const peg$c36 = "0";
3839
- const peg$c37 = peg$literalExpectation("0", false);
3840
- const peg$c38 = function() {
3842
+ const peg$c34 = "0";
3843
+ const peg$c35 = peg$literalExpectation("0", false);
3844
+ const peg$c36 = function() {
3841
3845
  return 0;
3842
3846
  };
3843
- const peg$c39 = "-1";
3844
- const peg$c40 = peg$literalExpectation("-1", false);
3845
- const peg$c41 = /^[NXnx]/;
3846
- const peg$c42 = peg$classExpectation([
3847
+ const peg$c37 = "-1";
3848
+ const peg$c38 = peg$literalExpectation("-1", false);
3849
+ const peg$c39 = /^[NXnx]/;
3850
+ const peg$c40 = peg$classExpectation([
3847
3851
  "N",
3848
3852
  "X",
3849
3853
  "n",
3850
3854
  "x"
3851
3855
  ], false, false);
3852
- const peg$c43 = peg$otherExpectation("whitespace");
3853
- const peg$c44 = peg$otherExpectation("optional whitespace");
3854
- const peg$c45 = /^[ \t\n\r]/;
3855
- const peg$c46 = peg$classExpectation([
3856
+ const peg$c41 = peg$otherExpectation("whitespace");
3857
+ const peg$c42 = peg$otherExpectation("optional whitespace");
3858
+ const peg$c43 = /^[ \t\n\r]/;
3859
+ const peg$c44 = peg$classExpectation([
3856
3860
  " ",
3857
3861
  " ",
3858
3862
  "\n",
3859
3863
  "\r"
3860
3864
  ], false, false);
3861
- const peg$c47 = peg$otherExpectation("space");
3862
- const peg$c48 = /^[ \t]/;
3863
- const peg$c49 = peg$classExpectation([
3865
+ const peg$c45 = peg$otherExpectation("space");
3866
+ const peg$c46 = /^[ \t]/;
3867
+ const peg$c47 = peg$classExpectation([
3864
3868
  " ",
3865
3869
  " "
3866
3870
  ], false, false);
3867
- const peg$c50 = /^[\n\r]/;
3868
- const peg$c51 = peg$classExpectation([
3871
+ const peg$c48 = /^[\n\r]/;
3872
+ const peg$c49 = peg$classExpectation([
3869
3873
  "\n",
3870
3874
  "\r"
3871
3875
  ], false, false);
3872
- const peg$c52 = "\n";
3873
- const peg$c53 = peg$literalExpectation("\n", false);
3874
- const peg$c54 = "\r";
3875
- const peg$c55 = peg$literalExpectation("\r", false);
3876
- const peg$c56 = "\\";
3877
- const peg$c57 = peg$literalExpectation("\\", false);
3876
+ const peg$c50 = "\n";
3877
+ const peg$c51 = peg$literalExpectation("\n", false);
3878
+ const peg$c52 = "\r";
3879
+ const peg$c53 = peg$literalExpectation("\r", false);
3880
+ const peg$c54 = "\\";
3881
+ const peg$c55 = peg$literalExpectation("\\", false);
3878
3882
  let peg$currPos = 0;
3879
3883
  let peg$savedPos = 0;
3880
3884
  const peg$posDetailsCache = [
@@ -4420,12 +4424,12 @@ to a key`);
4420
4424
  function peg$parseFretNumber() {
4421
4425
  let s0, s1;
4422
4426
  s0 = peg$currPos;
4423
- if (peg$c34.test(input.charAt(peg$currPos))) {
4427
+ if (peg$c26.test(input.charAt(peg$currPos))) {
4424
4428
  s1 = input.charAt(peg$currPos);
4425
4429
  peg$currPos++;
4426
4430
  } else {
4427
4431
  s1 = peg$FAILED;
4428
- if (peg$silentFails === 0) peg$fail(peg$c35);
4432
+ if (peg$silentFails === 0) peg$fail(peg$c27);
4429
4433
  }
4430
4434
  if (s1 !== peg$FAILED) {
4431
4435
  peg$savedPos = s0;
@@ -4438,35 +4442,35 @@ to a key`);
4438
4442
  let s0, s1;
4439
4443
  s0 = peg$currPos;
4440
4444
  if (input.charCodeAt(peg$currPos) === 48) {
4441
- s1 = peg$c36;
4445
+ s1 = peg$c34;
4442
4446
  peg$currPos++;
4443
4447
  } else {
4444
4448
  s1 = peg$FAILED;
4445
- if (peg$silentFails === 0) peg$fail(peg$c37);
4449
+ if (peg$silentFails === 0) peg$fail(peg$c35);
4446
4450
  }
4447
4451
  if (s1 !== peg$FAILED) {
4448
4452
  peg$savedPos = s0;
4449
- s1 = peg$c38();
4453
+ s1 = peg$c36();
4450
4454
  }
4451
4455
  s0 = s1;
4452
4456
  return s0;
4453
4457
  }
4454
4458
  function peg$parseNonSoundingString() {
4455
4459
  let s0;
4456
- if (input.substr(peg$currPos, 2) === peg$c39) {
4457
- s0 = peg$c39;
4460
+ if (input.substr(peg$currPos, 2) === peg$c37) {
4461
+ s0 = peg$c37;
4458
4462
  peg$currPos += 2;
4459
4463
  } else {
4460
4464
  s0 = peg$FAILED;
4461
- if (peg$silentFails === 0) peg$fail(peg$c40);
4465
+ if (peg$silentFails === 0) peg$fail(peg$c38);
4462
4466
  }
4463
4467
  if (s0 === peg$FAILED) {
4464
- if (peg$c41.test(input.charAt(peg$currPos))) {
4468
+ if (peg$c39.test(input.charAt(peg$currPos))) {
4465
4469
  s0 = input.charAt(peg$currPos);
4466
4470
  peg$currPos++;
4467
4471
  } else {
4468
4472
  s0 = peg$FAILED;
4469
- if (peg$silentFails === 0) peg$fail(peg$c42);
4473
+ if (peg$silentFails === 0) peg$fail(peg$c40);
4470
4474
  }
4471
4475
  }
4472
4476
  return s0;
@@ -4484,7 +4488,7 @@ to a key`);
4484
4488
  peg$silentFails--;
4485
4489
  if (s0 === peg$FAILED) {
4486
4490
  s1 = peg$FAILED;
4487
- if (peg$silentFails === 0) peg$fail(peg$c43);
4491
+ if (peg$silentFails === 0) peg$fail(peg$c41);
4488
4492
  }
4489
4493
  return s0;
4490
4494
  }
@@ -4500,18 +4504,18 @@ to a key`);
4500
4504
  peg$silentFails--;
4501
4505
  if (s0 === peg$FAILED) {
4502
4506
  s1 = peg$FAILED;
4503
- if (peg$silentFails === 0) peg$fail(peg$c44);
4507
+ if (peg$silentFails === 0) peg$fail(peg$c42);
4504
4508
  }
4505
4509
  return s0;
4506
4510
  }
4507
4511
  function peg$parseWhitespaceCharacter() {
4508
4512
  let s0;
4509
- if (peg$c45.test(input.charAt(peg$currPos))) {
4513
+ if (peg$c43.test(input.charAt(peg$currPos))) {
4510
4514
  s0 = input.charAt(peg$currPos);
4511
4515
  peg$currPos++;
4512
4516
  } else {
4513
4517
  s0 = peg$FAILED;
4514
- if (peg$silentFails === 0) peg$fail(peg$c46);
4518
+ if (peg$silentFails === 0) peg$fail(peg$c44);
4515
4519
  }
4516
4520
  return s0;
4517
4521
  }
@@ -4520,21 +4524,21 @@ to a key`);
4520
4524
  peg$silentFails++;
4521
4525
  s0 = peg$currPos;
4522
4526
  s1 = [];
4523
- if (peg$c48.test(input.charAt(peg$currPos))) {
4527
+ if (peg$c46.test(input.charAt(peg$currPos))) {
4524
4528
  s2 = input.charAt(peg$currPos);
4525
4529
  peg$currPos++;
4526
4530
  } else {
4527
4531
  s2 = peg$FAILED;
4528
- if (peg$silentFails === 0) peg$fail(peg$c49);
4532
+ if (peg$silentFails === 0) peg$fail(peg$c47);
4529
4533
  }
4530
4534
  if (s2 !== peg$FAILED) while (s2 !== peg$FAILED) {
4531
4535
  s1.push(s2);
4532
- if (peg$c48.test(input.charAt(peg$currPos))) {
4536
+ if (peg$c46.test(input.charAt(peg$currPos))) {
4533
4537
  s2 = input.charAt(peg$currPos);
4534
4538
  peg$currPos++;
4535
4539
  } else {
4536
4540
  s2 = peg$FAILED;
4537
- if (peg$silentFails === 0) peg$fail(peg$c49);
4541
+ if (peg$silentFails === 0) peg$fail(peg$c47);
4538
4542
  }
4539
4543
  }
4540
4544
  else s1 = peg$FAILED;
@@ -4543,18 +4547,18 @@ to a key`);
4543
4547
  peg$silentFails--;
4544
4548
  if (s0 === peg$FAILED) {
4545
4549
  s1 = peg$FAILED;
4546
- if (peg$silentFails === 0) peg$fail(peg$c47);
4550
+ if (peg$silentFails === 0) peg$fail(peg$c45);
4547
4551
  }
4548
4552
  return s0;
4549
4553
  }
4550
4554
  function peg$parseNewLine() {
4551
4555
  let s0;
4552
- if (peg$c50.test(input.charAt(peg$currPos))) {
4556
+ if (peg$c48.test(input.charAt(peg$currPos))) {
4553
4557
  s0 = input.charAt(peg$currPos);
4554
4558
  peg$currPos++;
4555
4559
  } else {
4556
4560
  s0 = peg$FAILED;
4557
- if (peg$silentFails === 0) peg$fail(peg$c51);
4561
+ if (peg$silentFails === 0) peg$fail(peg$c49);
4558
4562
  }
4559
4563
  if (s0 === peg$FAILED) s0 = peg$parseCarriageReturnLineFeed();
4560
4564
  return s0;
@@ -4584,33 +4588,33 @@ to a key`);
4584
4588
  function peg$parseLineFeed() {
4585
4589
  let s0;
4586
4590
  if (input.charCodeAt(peg$currPos) === 10) {
4587
- s0 = peg$c52;
4591
+ s0 = peg$c50;
4588
4592
  peg$currPos++;
4589
4593
  } else {
4590
4594
  s0 = peg$FAILED;
4591
- if (peg$silentFails === 0) peg$fail(peg$c53);
4595
+ if (peg$silentFails === 0) peg$fail(peg$c51);
4592
4596
  }
4593
4597
  return s0;
4594
4598
  }
4595
4599
  function peg$parseCarriageReturn() {
4596
4600
  let s0;
4597
4601
  if (input.charCodeAt(peg$currPos) === 13) {
4598
- s0 = peg$c54;
4602
+ s0 = peg$c52;
4599
4603
  peg$currPos++;
4600
4604
  } else {
4601
4605
  s0 = peg$FAILED;
4602
- if (peg$silentFails === 0) peg$fail(peg$c55);
4606
+ if (peg$silentFails === 0) peg$fail(peg$c53);
4603
4607
  }
4604
4608
  return s0;
4605
4609
  }
4606
4610
  function peg$parseEscape() {
4607
4611
  let s0;
4608
4612
  if (input.charCodeAt(peg$currPos) === 92) {
4609
- s0 = peg$c56;
4613
+ s0 = peg$c54;
4610
4614
  peg$currPos++;
4611
4615
  } else {
4612
4616
  s0 = peg$FAILED;
4613
- if (peg$silentFails === 0) peg$fail(peg$c57);
4617
+ if (peg$silentFails === 0) peg$fail(peg$c55);
4614
4618
  }
4615
4619
  return s0;
4616
4620
  }
@@ -4622,7 +4626,7 @@ to a key`);
4622
4626
  }
4623
4627
  }
4624
4628
  var $df16aafec6fb7993$export$98e6a39c04603d36 = $df16aafec6fb7993$var$peg$parse;
4625
- var $36ec5eba476f1300$var$ChordDefinition = class _$36ec5eba476f1300$var$ChordDefinition {
4629
+ var $6c1ed1378c3b5965$var$ChordDefinition = class _$6c1ed1378c3b5965$var$ChordDefinition {
4626
4630
  constructor(name, baseFret, frets, fingers) {
4627
4631
  this.name = name;
4628
4632
  this.baseFret = baseFret;
@@ -4639,100 +4643,74 @@ to a key`);
4639
4643
  */
4640
4644
  static parse(chordDefinition) {
4641
4645
  const { name, baseFret, frets, fingers } = (0, $df16aafec6fb7993$export$98e6a39c04603d36)(chordDefinition.trim());
4642
- return new _$36ec5eba476f1300$var$ChordDefinition(name, baseFret, frets, fingers);
4646
+ return new _$6c1ed1378c3b5965$var$ChordDefinition(name, baseFret, frets, fingers);
4643
4647
  }
4644
4648
  clone() {
4645
- return new _$36ec5eba476f1300$var$ChordDefinition(this.name, this.baseFret, [
4649
+ return new _$6c1ed1378c3b5965$var$ChordDefinition(this.name, this.baseFret, [
4646
4650
  ...this.frets
4647
4651
  ], [
4648
4652
  ...this.fingers
4649
4653
  ]);
4650
4654
  }
4651
4655
  };
4652
- var $36ec5eba476f1300$export$2e2bcd8739ae039 = $36ec5eba476f1300$var$ChordDefinition;
4653
- var $f1e1976743ced067$export$a014e67b549cbef4 = {
4656
+ var $6c1ed1378c3b5965$export$2e2bcd8739ae039 = $6c1ed1378c3b5965$var$ChordDefinition;
4657
+ var $2c1f35091b79c8d2$export$f152539e8297cacc = (string) => string;
4658
+ var $2c1f35091b79c8d2$var$defaultMetadataConfiguration = {
4654
4659
  separator: ","
4655
4660
  };
4656
- var $f1e1976743ced067$var$MetadataConfiguration = class {
4657
- constructor(metadataConfiguration = {}) {
4658
- this.separator = metadataConfiguration.separator || $f1e1976743ced067$export$a014e67b549cbef4.separator;
4659
- }
4660
- };
4661
- var $f1e1976743ced067$export$2e2bcd8739ae039 = $f1e1976743ced067$var$MetadataConfiguration;
4662
- var $66494710ef677b2b$var$InstrumentConfiguration = class {
4663
- constructor(instrumentConfiguration = {}) {
4664
- this.type = instrumentConfiguration.type;
4665
- this.description = instrumentConfiguration.description;
4666
- }
4661
+ var $2c1f35091b79c8d2$var$defaultDelegatesConfiguration = {
4662
+ abc: $2c1f35091b79c8d2$export$f152539e8297cacc,
4663
+ ly: $2c1f35091b79c8d2$export$f152539e8297cacc,
4664
+ tab: $2c1f35091b79c8d2$export$f152539e8297cacc,
4665
+ grid: $2c1f35091b79c8d2$export$f152539e8297cacc
4667
4666
  };
4668
- var $66494710ef677b2b$export$2e2bcd8739ae039 = $66494710ef677b2b$var$InstrumentConfiguration;
4669
- var $a911f47e3c49e507$var$UserConfiguration = class {
4670
- constructor(userConfiguration = {}) {
4671
- this.name = userConfiguration.name;
4672
- this.fullname = userConfiguration.fullname;
4673
- }
4674
- };
4675
- var $a911f47e3c49e507$export$2e2bcd8739ae039 = $a911f47e3c49e507$var$UserConfiguration;
4676
- var $1900e9488433afb1$export$f152539e8297cacc = (string) => string;
4677
- var $1900e9488433afb1$export$78c0028a34264234 = {
4667
+ var $2c1f35091b79c8d2$var$defaultConfiguration = {
4668
+ decapo: false,
4669
+ delegates: $2c1f35091b79c8d2$var$defaultDelegatesConfiguration,
4678
4670
  evaluate: false,
4679
- metadata: (0, $f1e1976743ced067$export$a014e67b549cbef4),
4680
- key: null,
4681
4671
  expandChorusDirective: false,
4682
- useUnicodeModifiers: false,
4672
+ instrument: null,
4673
+ key: null,
4674
+ metadata: $2c1f35091b79c8d2$var$defaultMetadataConfiguration,
4683
4675
  normalizeChords: true,
4684
- delegates: {
4685
- abc: $1900e9488433afb1$export$f152539e8297cacc,
4686
- ly: $1900e9488433afb1$export$f152539e8297cacc,
4687
- tab: $1900e9488433afb1$export$f152539e8297cacc,
4688
- grid: $1900e9488433afb1$export$f152539e8297cacc
4689
- }
4676
+ useUnicodeModifiers: false,
4677
+ user: null
4690
4678
  };
4691
- var $1900e9488433afb1$var$Configuration = class {
4692
- get metadataSeparator() {
4693
- return this.metadata.separator ?? "";
4694
- }
4695
- constructor(configuration = $1900e9488433afb1$export$78c0028a34264234) {
4696
- const mergedConfig = {
4697
- ...$1900e9488433afb1$export$78c0028a34264234,
4698
- ...configuration
4699
- };
4700
- this.evaluate = mergedConfig.evaluate;
4701
- this.expandChorusDirective = mergedConfig.expandChorusDirective;
4702
- this.useUnicodeModifiers = mergedConfig.useUnicodeModifiers;
4703
- this.normalizeChords = mergedConfig.normalizeChords;
4704
- this.metadata = new (0, $f1e1976743ced067$export$2e2bcd8739ae039)(configuration.metadata);
4705
- this.key = configuration.key ? (0, $c2d6ab25ad00308f$export$2e2bcd8739ae039).wrap(configuration.key) : null;
4706
- this.delegates = {
4707
- ...$1900e9488433afb1$export$78c0028a34264234.delegates,
4679
+ function $2c1f35091b79c8d2$export$8d21e34596265fa2(configuration) {
4680
+ return {
4681
+ ...$2c1f35091b79c8d2$var$defaultConfiguration,
4682
+ ...configuration,
4683
+ metadata: {
4684
+ ...$2c1f35091b79c8d2$var$defaultMetadataConfiguration,
4685
+ ...configuration.metadata
4686
+ },
4687
+ delegates: {
4688
+ ...$2c1f35091b79c8d2$var$defaultDelegatesConfiguration,
4708
4689
  ...configuration.delegates
4709
- };
4710
- this.instrument = configuration.instrument ? new (0, $66494710ef677b2b$export$2e2bcd8739ae039)(configuration.instrument) : void 0;
4711
- this.user = configuration.user ? new (0, $a911f47e3c49e507$export$2e2bcd8739ae039)(configuration.user) : void 0;
4712
- this.decapo = !!configuration.decapo;
4713
- }
4714
- };
4715
- var $1900e9488433afb1$export$2e2bcd8739ae039 = $1900e9488433afb1$var$Configuration;
4690
+ },
4691
+ key: configuration.key ? (0, $c2d6ab25ad00308f$export$2e2bcd8739ae039).wrap(configuration.key) : null
4692
+ };
4693
+ }
4716
4694
  var $ed0d9ddbbe7224cd$var$Formatter = class {
4717
4695
  /**
4718
- * Instantiate
4719
- * @param {Object} [configuration={}] options
4720
- * @param {boolean} [configuration.evaluate=false] Whether or not to evaluate meta expressions.
4721
- * For more info about meta expressions, see: https://bit.ly/2SC9c2u
4722
- * @param {object} [configuration.metadata={}]
4723
- * @param {string} [configuration.metadata.separator=", "] The separator to be used when rendering a
4724
- * metadata value that has multiple values. See: https://bit.ly/2SC9c2u
4725
- * @param {Key|string} [configuration.key=null] The key to use for rendering. The chord sheet will be
4726
- * transposed from the song's original key (as indicated by the `{key}` directive) to the specified key.
4727
- * Note that transposing will only work if the original song key is set.
4728
- * @param {boolean} [configuration.expandChorusDirective=false] Whether or not to expand `{chorus}` directives
4729
- * by rendering the last defined chorus inline after the directive.
4730
- * @param {boolean} [configuration.useUnicodeModifiers=false] Whether or not to use unicode flat and sharp
4731
- * symbols.
4732
- * @param {boolean} [configuration.normalizeChords=true] Whether or not to automatically normalize chords
4733
- */
4696
+ * Instantiate
4697
+ * @param {Object} [configuration={}] options
4698
+ * @param {boolean} [configuration.evaluate=false] Whether or not to evaluate meta expressions.
4699
+ * For more info about meta expressions, see: https://bit.ly/2SC9c2u
4700
+ * @param {object} [configuration.metadata={}]
4701
+ * @param {string} [configuration.metadata.separator=", "] The separator to be used when rendering a
4702
+ * metadata value that has multiple values. See: https://bit.ly/2SC9c2u
4703
+ * @param {Key|string} [configuration.key=null] The key to use for rendering. The chord sheet will be
4704
+ * transposed from the song's original key (as indicated by the `{key}` directive) to the specified key.
4705
+ * Note that transposing will only work if the original song key is set.
4706
+ * @param {boolean} [configuration.expandChorusDirective=false] Whether or not to expand `{chorus}` directives
4707
+ * by rendering the last defined chorus inline after the directive.
4708
+ * @param {boolean} [configuration.useUnicodeModifiers=false] Whether or not to use unicode flat and sharp
4709
+ * symbols.
4710
+ * @param {boolean} [configuration.normalizeChords=true] Whether or not to automatically normalize chords
4711
+ */
4734
4712
  constructor(configuration = {}) {
4735
- this.configuration = new (0, $1900e9488433afb1$export$2e2bcd8739ae039)(configuration || {});
4713
+ this.configuration = (0, $2c1f35091b79c8d2$export$8d21e34596265fa2)(configuration);
4736
4714
  }
4737
4715
  };
4738
4716
  var $ed0d9ddbbe7224cd$export$2e2bcd8739ae039 = $ed0d9ddbbe7224cd$var$Formatter;
@@ -4749,47 +4727,129 @@ to a key`);
4749
4727
  }
4750
4728
  };
4751
4729
  var $c5ce4fc4f57fe810$export$2e2bcd8739ae039 = $c5ce4fc4f57fe810$var$AstComponent;
4752
- var $7251dad5f4a4c35f$export$10227cb086d1770c = "album";
4753
- var $7251dad5f4a4c35f$export$585ac316350d4927 = "arranger";
4754
- var $7251dad5f4a4c35f$export$17d8dfb3db842bf = "artist";
4755
- var $7251dad5f4a4c35f$export$866f445d49bad88e = "capo";
4756
- var $7251dad5f4a4c35f$export$a29989082612d0d9 = "comment";
4757
- var $7251dad5f4a4c35f$export$98424633dc8c377f = "composer";
4758
- var $7251dad5f4a4c35f$export$4ab8c75045d12480 = "copyright";
4759
- var $7251dad5f4a4c35f$export$bacc88974c736870 = "duration";
4760
- var $7251dad5f4a4c35f$export$37c7b13f53af2469 = "end_of_abc";
4761
- var $7251dad5f4a4c35f$export$1c874e9780385ecd = "end_of_bridge";
4762
- var $7251dad5f4a4c35f$export$473c1a4819e5180b = "end_of_chorus";
4763
- var $7251dad5f4a4c35f$export$4b28ac1ae75aff60 = "end_of_grid";
4764
- var $7251dad5f4a4c35f$export$e3f6cdbd95b1f8f = "end_of_ly";
4765
- var $7251dad5f4a4c35f$export$66a0ef3ffeab32b7 = "end_of_tab";
4766
- var $7251dad5f4a4c35f$export$640d294ab83f9040 = "end_of_verse";
4767
- var $7251dad5f4a4c35f$export$7167c830cefcb6b5 = "key";
4768
- var $7251dad5f4a4c35f$export$430b1920f5feeae = "_key";
4769
- var $7251dad5f4a4c35f$export$a6901bd008617c61 = "lyricist";
4770
- var $7251dad5f4a4c35f$export$a1aa5ca2f265ee7f = "sorttitle";
4771
- var $7251dad5f4a4c35f$export$9e9edc166b8d0233 = "start_of_abc";
4772
- var $7251dad5f4a4c35f$export$3550cc87694d54e0 = "start_of_bridge";
4773
- var $7251dad5f4a4c35f$export$4f5168acae064e01 = "start_of_chorus";
4774
- var $7251dad5f4a4c35f$export$b7e6dcd848b88f43 = "start_of_grid";
4775
- var $7251dad5f4a4c35f$export$634ff7795b596e62 = "start_of_ly";
4776
- var $7251dad5f4a4c35f$export$8dd1111100e0e88d = "start_of_tab";
4777
- var $7251dad5f4a4c35f$export$deca399f8cd9b7dc = "start_of_verse";
4778
- var $7251dad5f4a4c35f$export$5895c693c74b9cf4 = "subtitle";
4779
- var $7251dad5f4a4c35f$export$bd8d57d0bc5a8478 = "tempo";
4780
- var $7251dad5f4a4c35f$export$a9905336c0111a3a = "time";
4781
- var $7251dad5f4a4c35f$export$f1e53f710478ceb4 = "title";
4782
- var $7251dad5f4a4c35f$export$ae60ab9b4739fc3d = "transpose";
4783
- var $7251dad5f4a4c35f$export$b7627374a6424f68 = "new_key";
4784
- var $7251dad5f4a4c35f$export$90b88dc425a06a95 = "year";
4785
- var $7251dad5f4a4c35f$export$2b0cbe6e95114098 = "chordfont";
4786
- var $7251dad5f4a4c35f$export$1f62a95bf5703cac = "chordsize";
4787
- var $7251dad5f4a4c35f$export$f7227d9f34d97bec = "chordcolour";
4788
- var $7251dad5f4a4c35f$export$14fe4ba6e94df04d = "textfont";
4789
- var $7251dad5f4a4c35f$export$f0dee7f48597f09a = "textsize";
4790
- var $7251dad5f4a4c35f$export$d2ed2b49c006eb23 = "textcolour";
4791
- var $7251dad5f4a4c35f$export$8db6c706fc9142b2 = "chorus";
4792
- var $7251dad5f4a4c35f$export$d8cbdf44b1f66df1 = "chord_style";
4730
+ var $d21c5c7a462f3c34$export$10227cb086d1770c = "album";
4731
+ var $d21c5c7a462f3c34$export$585ac316350d4927 = "arranger";
4732
+ var $d21c5c7a462f3c34$export$17d8dfb3db842bf = "artist";
4733
+ var $d21c5c7a462f3c34$export$866f445d49bad88e = "capo";
4734
+ var $d21c5c7a462f3c34$export$a29989082612d0d9 = "comment";
4735
+ var $d21c5c7a462f3c34$export$98424633dc8c377f = "composer";
4736
+ var $d21c5c7a462f3c34$export$4ab8c75045d12480 = "copyright";
4737
+ var $d21c5c7a462f3c34$export$bacc88974c736870 = "duration";
4738
+ var $d21c5c7a462f3c34$export$37c7b13f53af2469 = "end_of_abc";
4739
+ var $d21c5c7a462f3c34$export$1c874e9780385ecd = "end_of_bridge";
4740
+ var $d21c5c7a462f3c34$export$473c1a4819e5180b = "end_of_chorus";
4741
+ var $d21c5c7a462f3c34$export$4b28ac1ae75aff60 = "end_of_grid";
4742
+ var $d21c5c7a462f3c34$export$e3f6cdbd95b1f8f = "end_of_ly";
4743
+ var $d21c5c7a462f3c34$export$66a0ef3ffeab32b7 = "end_of_tab";
4744
+ var $d21c5c7a462f3c34$export$640d294ab83f9040 = "end_of_verse";
4745
+ var $d21c5c7a462f3c34$export$189f12065cceb96a = "end_of_part";
4746
+ var $d21c5c7a462f3c34$export$7167c830cefcb6b5 = "key";
4747
+ var $d21c5c7a462f3c34$export$430b1920f5feeae = "_key";
4748
+ var $d21c5c7a462f3c34$export$a6901bd008617c61 = "lyricist";
4749
+ var $d21c5c7a462f3c34$export$a1aa5ca2f265ee7f = "sorttitle";
4750
+ var $d21c5c7a462f3c34$export$9e9edc166b8d0233 = "start_of_abc";
4751
+ var $d21c5c7a462f3c34$export$3550cc87694d54e0 = "start_of_bridge";
4752
+ var $d21c5c7a462f3c34$export$4f5168acae064e01 = "start_of_chorus";
4753
+ var $d21c5c7a462f3c34$export$b7e6dcd848b88f43 = "start_of_grid";
4754
+ var $d21c5c7a462f3c34$export$634ff7795b596e62 = "start_of_ly";
4755
+ var $d21c5c7a462f3c34$export$8dd1111100e0e88d = "start_of_tab";
4756
+ var $d21c5c7a462f3c34$export$deca399f8cd9b7dc = "start_of_verse";
4757
+ var $d21c5c7a462f3c34$export$2b9510a208875fc9 = "start_of_part";
4758
+ var $d21c5c7a462f3c34$export$5895c693c74b9cf4 = "subtitle";
4759
+ var $d21c5c7a462f3c34$export$bd8d57d0bc5a8478 = "tempo";
4760
+ var $d21c5c7a462f3c34$export$a9905336c0111a3a = "time";
4761
+ var $d21c5c7a462f3c34$export$f1e53f710478ceb4 = "title";
4762
+ var $d21c5c7a462f3c34$export$ae60ab9b4739fc3d = "transpose";
4763
+ var $d21c5c7a462f3c34$export$b7627374a6424f68 = "new_key";
4764
+ var $d21c5c7a462f3c34$export$90b88dc425a06a95 = "year";
4765
+ var $d21c5c7a462f3c34$export$2b0cbe6e95114098 = "chordfont";
4766
+ var $d21c5c7a462f3c34$export$1f62a95bf5703cac = "chordsize";
4767
+ var $d21c5c7a462f3c34$export$f7227d9f34d97bec = "chordcolour";
4768
+ var $d21c5c7a462f3c34$export$14fe4ba6e94df04d = "textfont";
4769
+ var $d21c5c7a462f3c34$export$f0dee7f48597f09a = "textsize";
4770
+ var $d21c5c7a462f3c34$export$d2ed2b49c006eb23 = "textcolour";
4771
+ var $d21c5c7a462f3c34$export$8db6c706fc9142b2 = "chorus";
4772
+ var $d21c5c7a462f3c34$export$d8cbdf44b1f66df1 = "chord_style";
4773
+ var $35ced0783ee29c4f$var$START_TAG_TO_SECTION_TYPE = {
4774
+ [(0, $d21c5c7a462f3c34$export$9e9edc166b8d0233)]: (0, $dce48cb70c4120bb$export$92249c36c213e508),
4775
+ [(0, $d21c5c7a462f3c34$export$3550cc87694d54e0)]: (0, $dce48cb70c4120bb$export$78d8c50e853acd10),
4776
+ [(0, $d21c5c7a462f3c34$export$4f5168acae064e01)]: (0, $d21c5c7a462f3c34$export$8db6c706fc9142b2),
4777
+ [(0, $d21c5c7a462f3c34$export$b7e6dcd848b88f43)]: (0, $dce48cb70c4120bb$export$e2b0b9a5e613f348),
4778
+ [(0, $d21c5c7a462f3c34$export$634ff7795b596e62)]: (0, $dce48cb70c4120bb$export$6a5a2eab72b6e3d),
4779
+ [(0, $d21c5c7a462f3c34$export$8dd1111100e0e88d)]: (0, $dce48cb70c4120bb$export$f1c9dd0f5207dd5e),
4780
+ [(0, $d21c5c7a462f3c34$export$deca399f8cd9b7dc)]: (0, $dce48cb70c4120bb$export$4b194284baed1659)
4781
+ };
4782
+ var $35ced0783ee29c4f$var$END_TAG_TO_SECTION_TYPE = {
4783
+ [(0, $d21c5c7a462f3c34$export$37c7b13f53af2469)]: (0, $dce48cb70c4120bb$export$92249c36c213e508),
4784
+ [(0, $d21c5c7a462f3c34$export$1c874e9780385ecd)]: (0, $dce48cb70c4120bb$export$78d8c50e853acd10),
4785
+ [(0, $d21c5c7a462f3c34$export$473c1a4819e5180b)]: (0, $d21c5c7a462f3c34$export$8db6c706fc9142b2),
4786
+ [(0, $d21c5c7a462f3c34$export$4b28ac1ae75aff60)]: (0, $dce48cb70c4120bb$export$e2b0b9a5e613f348),
4787
+ [(0, $d21c5c7a462f3c34$export$e3f6cdbd95b1f8f)]: (0, $dce48cb70c4120bb$export$6a5a2eab72b6e3d),
4788
+ [(0, $d21c5c7a462f3c34$export$66a0ef3ffeab32b7)]: (0, $dce48cb70c4120bb$export$f1c9dd0f5207dd5e),
4789
+ [(0, $d21c5c7a462f3c34$export$640d294ab83f9040)]: (0, $dce48cb70c4120bb$export$4b194284baed1659)
4790
+ };
4791
+ var $35ced0783ee29c4f$var$SECTION_START_REGEX = /^start_of_(.+)$/;
4792
+ var $35ced0783ee29c4f$var$SECTION_END_REGEX = /^end_of_(.+)$/;
4793
+ var $35ced0783ee29c4f$var$TagInterpreter = class {
4794
+ static interpret(tagName, tagValue) {
4795
+ return new this(tagName, tagValue).interpret();
4796
+ }
4797
+ constructor(tagName, tagValue) {
4798
+ this.tagName = tagName;
4799
+ this.tagValue = tagValue;
4800
+ }
4801
+ interpret() {
4802
+ return this.startOfPart() || this.endOfPart() || this.sectionStart() || this.sectionEnd() || this.startOfSection() || this.endOfSection() || [
4803
+ null,
4804
+ null
4805
+ ];
4806
+ }
4807
+ startOfPart() {
4808
+ if (this.tagName === (0, $d21c5c7a462f3c34$export$2b9510a208875fc9) && this.tagValue) return [
4809
+ (0, $dce48cb70c4120bb$export$dfea9b8ecbbb8623),
4810
+ this.tagValue.split(" ")[0].toLowerCase()
4811
+ ];
4812
+ return null;
4813
+ }
4814
+ endOfPart() {
4815
+ if (this.tagName === (0, $d21c5c7a462f3c34$export$189f12065cceb96a)) return [
4816
+ (0, $dce48cb70c4120bb$export$3d329a2c209fbc28),
4817
+ (0, $dce48cb70c4120bb$export$97c0a36af1d48540)
4818
+ ];
4819
+ return null;
4820
+ }
4821
+ sectionStart() {
4822
+ if (this.tagName in $35ced0783ee29c4f$var$START_TAG_TO_SECTION_TYPE) return [
4823
+ (0, $dce48cb70c4120bb$export$dfea9b8ecbbb8623),
4824
+ $35ced0783ee29c4f$var$START_TAG_TO_SECTION_TYPE[this.tagName]
4825
+ ];
4826
+ return null;
4827
+ }
4828
+ sectionEnd() {
4829
+ if (this.tagName in $35ced0783ee29c4f$var$END_TAG_TO_SECTION_TYPE) return [
4830
+ (0, $dce48cb70c4120bb$export$3d329a2c209fbc28),
4831
+ $35ced0783ee29c4f$var$END_TAG_TO_SECTION_TYPE[this.tagName]
4832
+ ];
4833
+ return null;
4834
+ }
4835
+ startOfSection() {
4836
+ const parseStartResult = $35ced0783ee29c4f$var$SECTION_START_REGEX.exec(this.tagName);
4837
+ if (parseStartResult) return [
4838
+ (0, $dce48cb70c4120bb$export$dfea9b8ecbbb8623),
4839
+ parseStartResult[1]
4840
+ ];
4841
+ return null;
4842
+ }
4843
+ endOfSection() {
4844
+ const parseEndResult = $35ced0783ee29c4f$var$SECTION_END_REGEX.exec(this.tagName);
4845
+ if (parseEndResult) return [
4846
+ (0, $dce48cb70c4120bb$export$3d329a2c209fbc28),
4847
+ parseEndResult[1]
4848
+ ];
4849
+ return null;
4850
+ }
4851
+ };
4852
+ var $35ced0783ee29c4f$export$2e2bcd8739ae039 = $35ced0783ee29c4f$var$TagInterpreter;
4793
4853
  var $7251dad5f4a4c35f$var$CHORDFONT_SHORT = "cf";
4794
4854
  var $7251dad5f4a4c35f$var$CHORDSIZE_SHORT = "cs";
4795
4855
  var $7251dad5f4a4c35f$var$COMMENT_SHORT = "c";
@@ -4798,95 +4858,89 @@ to a key`);
4798
4858
  var $7251dad5f4a4c35f$var$END_OF_GRID_SHORT = "eog";
4799
4859
  var $7251dad5f4a4c35f$var$END_OF_TAB_SHORT = "eot";
4800
4860
  var $7251dad5f4a4c35f$var$END_OF_VERSE_SHORT = "eov";
4861
+ var $7251dad5f4a4c35f$var$END_OF_PART_SHORT = "eop";
4801
4862
  var $7251dad5f4a4c35f$var$NEW_KEY_SHORT = "nk";
4802
4863
  var $7251dad5f4a4c35f$var$START_OF_BRIDGE_SHORT = "sob";
4803
4864
  var $7251dad5f4a4c35f$var$START_OF_CHORUS_SHORT = "soc";
4804
4865
  var $7251dad5f4a4c35f$var$START_OF_GRID_SHORT = "sog";
4805
4866
  var $7251dad5f4a4c35f$var$START_OF_TAB_SHORT = "sot";
4806
4867
  var $7251dad5f4a4c35f$var$START_OF_VERSE_SHORT = "sov";
4868
+ var $7251dad5f4a4c35f$var$START_OF_PART_SHORT = "sop";
4807
4869
  var $7251dad5f4a4c35f$var$SUBTITLE_SHORT = "st";
4808
4870
  var $7251dad5f4a4c35f$var$TEXTFONT_SHORT = "tf";
4809
4871
  var $7251dad5f4a4c35f$var$TEXTSIZE_SHORT = "ts";
4810
4872
  var $7251dad5f4a4c35f$var$TITLE_SHORT = "t";
4873
+ var $7251dad5f4a4c35f$var$START_OF_PART_SHORTER = "p";
4874
+ var $7251dad5f4a4c35f$var$END_OF_PART_SHORTER = "ep";
4811
4875
  var $7251dad5f4a4c35f$var$RENDERABLE_TAGS = [
4812
- $7251dad5f4a4c35f$export$a29989082612d0d9
4876
+ (0, $d21c5c7a462f3c34$export$a29989082612d0d9)
4813
4877
  ];
4814
4878
  var $7251dad5f4a4c35f$export$57ecf0dc09effb3 = [
4815
- $7251dad5f4a4c35f$export$10227cb086d1770c,
4816
- $7251dad5f4a4c35f$export$585ac316350d4927,
4817
- $7251dad5f4a4c35f$export$17d8dfb3db842bf,
4818
- $7251dad5f4a4c35f$export$866f445d49bad88e,
4819
- $7251dad5f4a4c35f$export$d8cbdf44b1f66df1,
4820
- $7251dad5f4a4c35f$export$98424633dc8c377f,
4821
- $7251dad5f4a4c35f$export$4ab8c75045d12480,
4822
- $7251dad5f4a4c35f$export$bacc88974c736870,
4823
- $7251dad5f4a4c35f$export$7167c830cefcb6b5,
4824
- $7251dad5f4a4c35f$export$a6901bd008617c61,
4825
- $7251dad5f4a4c35f$export$a1aa5ca2f265ee7f,
4826
- $7251dad5f4a4c35f$export$5895c693c74b9cf4,
4827
- $7251dad5f4a4c35f$export$bd8d57d0bc5a8478,
4828
- $7251dad5f4a4c35f$export$a9905336c0111a3a,
4829
- $7251dad5f4a4c35f$export$f1e53f710478ceb4,
4830
- $7251dad5f4a4c35f$export$90b88dc425a06a95
4879
+ (0, $d21c5c7a462f3c34$export$10227cb086d1770c),
4880
+ (0, $d21c5c7a462f3c34$export$585ac316350d4927),
4881
+ (0, $d21c5c7a462f3c34$export$17d8dfb3db842bf),
4882
+ (0, $d21c5c7a462f3c34$export$866f445d49bad88e),
4883
+ (0, $d21c5c7a462f3c34$export$d8cbdf44b1f66df1),
4884
+ (0, $d21c5c7a462f3c34$export$98424633dc8c377f),
4885
+ (0, $d21c5c7a462f3c34$export$4ab8c75045d12480),
4886
+ (0, $d21c5c7a462f3c34$export$bacc88974c736870),
4887
+ (0, $d21c5c7a462f3c34$export$7167c830cefcb6b5),
4888
+ (0, $d21c5c7a462f3c34$export$a6901bd008617c61),
4889
+ (0, $d21c5c7a462f3c34$export$a1aa5ca2f265ee7f),
4890
+ (0, $d21c5c7a462f3c34$export$5895c693c74b9cf4),
4891
+ (0, $d21c5c7a462f3c34$export$bd8d57d0bc5a8478),
4892
+ (0, $d21c5c7a462f3c34$export$a9905336c0111a3a),
4893
+ (0, $d21c5c7a462f3c34$export$f1e53f710478ceb4),
4894
+ (0, $d21c5c7a462f3c34$export$90b88dc425a06a95)
4831
4895
  ];
4832
4896
  var $7251dad5f4a4c35f$export$75d737e15c3fab80 = [
4833
- $7251dad5f4a4c35f$export$430b1920f5feeae
4897
+ (0, $d21c5c7a462f3c34$export$430b1920f5feeae)
4834
4898
  ];
4835
4899
  var $7251dad5f4a4c35f$var$INLINE_FONT_TAGS = [
4836
- $7251dad5f4a4c35f$export$2b0cbe6e95114098,
4837
- $7251dad5f4a4c35f$export$1f62a95bf5703cac,
4838
- $7251dad5f4a4c35f$export$f7227d9f34d97bec,
4839
- $7251dad5f4a4c35f$export$14fe4ba6e94df04d,
4840
- $7251dad5f4a4c35f$export$f0dee7f48597f09a,
4841
- $7251dad5f4a4c35f$export$d2ed2b49c006eb23
4900
+ (0, $d21c5c7a462f3c34$export$2b0cbe6e95114098),
4901
+ (0, $d21c5c7a462f3c34$export$1f62a95bf5703cac),
4902
+ (0, $d21c5c7a462f3c34$export$f7227d9f34d97bec),
4903
+ (0, $d21c5c7a462f3c34$export$14fe4ba6e94df04d),
4904
+ (0, $d21c5c7a462f3c34$export$f0dee7f48597f09a),
4905
+ (0, $d21c5c7a462f3c34$export$d2ed2b49c006eb23)
4842
4906
  ];
4843
4907
  var $7251dad5f4a4c35f$var$DIRECTIVES_WITH_RENDERABLE_LABEL = [
4844
- $7251dad5f4a4c35f$export$8db6c706fc9142b2
4908
+ (0, $d21c5c7a462f3c34$export$8db6c706fc9142b2),
4909
+ (0, $d21c5c7a462f3c34$export$9e9edc166b8d0233),
4910
+ (0, $d21c5c7a462f3c34$export$3550cc87694d54e0),
4911
+ (0, $d21c5c7a462f3c34$export$4f5168acae064e01),
4912
+ (0, $d21c5c7a462f3c34$export$b7e6dcd848b88f43),
4913
+ (0, $d21c5c7a462f3c34$export$634ff7795b596e62),
4914
+ (0, $d21c5c7a462f3c34$export$8dd1111100e0e88d),
4915
+ (0, $d21c5c7a462f3c34$export$deca399f8cd9b7dc),
4916
+ (0, $d21c5c7a462f3c34$export$2b9510a208875fc9)
4845
4917
  ];
4846
4918
  var $7251dad5f4a4c35f$var$ALIASES = {
4847
- [$7251dad5f4a4c35f$var$CHORDFONT_SHORT]: $7251dad5f4a4c35f$export$2b0cbe6e95114098,
4848
- [$7251dad5f4a4c35f$var$CHORDSIZE_SHORT]: $7251dad5f4a4c35f$export$1f62a95bf5703cac,
4849
- [$7251dad5f4a4c35f$var$COMMENT_SHORT]: $7251dad5f4a4c35f$export$a29989082612d0d9,
4850
- [$7251dad5f4a4c35f$var$END_OF_BRIDGE_SHORT]: $7251dad5f4a4c35f$export$1c874e9780385ecd,
4851
- [$7251dad5f4a4c35f$var$END_OF_CHORUS_SHORT]: $7251dad5f4a4c35f$export$473c1a4819e5180b,
4852
- [$7251dad5f4a4c35f$var$END_OF_GRID_SHORT]: $7251dad5f4a4c35f$export$4b28ac1ae75aff60,
4853
- [$7251dad5f4a4c35f$var$END_OF_TAB_SHORT]: $7251dad5f4a4c35f$export$66a0ef3ffeab32b7,
4854
- [$7251dad5f4a4c35f$var$END_OF_VERSE_SHORT]: $7251dad5f4a4c35f$export$640d294ab83f9040,
4855
- [$7251dad5f4a4c35f$var$NEW_KEY_SHORT]: $7251dad5f4a4c35f$export$b7627374a6424f68,
4856
- [$7251dad5f4a4c35f$var$START_OF_BRIDGE_SHORT]: $7251dad5f4a4c35f$export$3550cc87694d54e0,
4857
- [$7251dad5f4a4c35f$var$START_OF_CHORUS_SHORT]: $7251dad5f4a4c35f$export$4f5168acae064e01,
4858
- [$7251dad5f4a4c35f$var$START_OF_GRID_SHORT]: $7251dad5f4a4c35f$export$b7e6dcd848b88f43,
4859
- [$7251dad5f4a4c35f$var$START_OF_TAB_SHORT]: $7251dad5f4a4c35f$export$8dd1111100e0e88d,
4860
- [$7251dad5f4a4c35f$var$START_OF_VERSE_SHORT]: $7251dad5f4a4c35f$export$deca399f8cd9b7dc,
4861
- [$7251dad5f4a4c35f$var$SUBTITLE_SHORT]: $7251dad5f4a4c35f$export$5895c693c74b9cf4,
4862
- [$7251dad5f4a4c35f$var$TEXTFONT_SHORT]: $7251dad5f4a4c35f$export$14fe4ba6e94df04d,
4863
- [$7251dad5f4a4c35f$var$TEXTSIZE_SHORT]: $7251dad5f4a4c35f$export$f0dee7f48597f09a,
4864
- [$7251dad5f4a4c35f$var$TITLE_SHORT]: $7251dad5f4a4c35f$export$f1e53f710478ceb4
4919
+ [$7251dad5f4a4c35f$var$CHORDFONT_SHORT]: (0, $d21c5c7a462f3c34$export$2b0cbe6e95114098),
4920
+ [$7251dad5f4a4c35f$var$CHORDSIZE_SHORT]: (0, $d21c5c7a462f3c34$export$1f62a95bf5703cac),
4921
+ [$7251dad5f4a4c35f$var$COMMENT_SHORT]: (0, $d21c5c7a462f3c34$export$a29989082612d0d9),
4922
+ [$7251dad5f4a4c35f$var$END_OF_BRIDGE_SHORT]: (0, $d21c5c7a462f3c34$export$1c874e9780385ecd),
4923
+ [$7251dad5f4a4c35f$var$END_OF_CHORUS_SHORT]: (0, $d21c5c7a462f3c34$export$473c1a4819e5180b),
4924
+ [$7251dad5f4a4c35f$var$END_OF_GRID_SHORT]: (0, $d21c5c7a462f3c34$export$4b28ac1ae75aff60),
4925
+ [$7251dad5f4a4c35f$var$END_OF_TAB_SHORT]: (0, $d21c5c7a462f3c34$export$66a0ef3ffeab32b7),
4926
+ [$7251dad5f4a4c35f$var$END_OF_VERSE_SHORT]: (0, $d21c5c7a462f3c34$export$640d294ab83f9040),
4927
+ [$7251dad5f4a4c35f$var$END_OF_PART_SHORT]: (0, $d21c5c7a462f3c34$export$189f12065cceb96a),
4928
+ [$7251dad5f4a4c35f$var$END_OF_PART_SHORTER]: (0, $d21c5c7a462f3c34$export$189f12065cceb96a),
4929
+ [$7251dad5f4a4c35f$var$NEW_KEY_SHORT]: (0, $d21c5c7a462f3c34$export$b7627374a6424f68),
4930
+ [$7251dad5f4a4c35f$var$START_OF_BRIDGE_SHORT]: (0, $d21c5c7a462f3c34$export$3550cc87694d54e0),
4931
+ [$7251dad5f4a4c35f$var$START_OF_CHORUS_SHORT]: (0, $d21c5c7a462f3c34$export$4f5168acae064e01),
4932
+ [$7251dad5f4a4c35f$var$START_OF_GRID_SHORT]: (0, $d21c5c7a462f3c34$export$b7e6dcd848b88f43),
4933
+ [$7251dad5f4a4c35f$var$START_OF_TAB_SHORT]: (0, $d21c5c7a462f3c34$export$8dd1111100e0e88d),
4934
+ [$7251dad5f4a4c35f$var$START_OF_VERSE_SHORT]: (0, $d21c5c7a462f3c34$export$deca399f8cd9b7dc),
4935
+ [$7251dad5f4a4c35f$var$START_OF_PART_SHORT]: (0, $d21c5c7a462f3c34$export$2b9510a208875fc9),
4936
+ [$7251dad5f4a4c35f$var$START_OF_PART_SHORTER]: (0, $d21c5c7a462f3c34$export$2b9510a208875fc9),
4937
+ [$7251dad5f4a4c35f$var$SUBTITLE_SHORT]: (0, $d21c5c7a462f3c34$export$5895c693c74b9cf4),
4938
+ [$7251dad5f4a4c35f$var$TEXTFONT_SHORT]: (0, $d21c5c7a462f3c34$export$14fe4ba6e94df04d),
4939
+ [$7251dad5f4a4c35f$var$TEXTSIZE_SHORT]: (0, $d21c5c7a462f3c34$export$f0dee7f48597f09a),
4940
+ [$7251dad5f4a4c35f$var$TITLE_SHORT]: (0, $d21c5c7a462f3c34$export$f1e53f710478ceb4)
4865
4941
  };
4866
4942
  var $7251dad5f4a4c35f$var$TAG_REGEX = /^([^:\s]+)(:?\s*(.+))?$/;
4867
4943
  var $7251dad5f4a4c35f$var$CUSTOM_META_TAG_NAME_REGEX = /^x_(.+)$/;
4868
- var $7251dad5f4a4c35f$var$START_TAG_TO_SECTION_TYPE = {
4869
- [$7251dad5f4a4c35f$export$9e9edc166b8d0233]: (0, $dce48cb70c4120bb$export$92249c36c213e508),
4870
- [$7251dad5f4a4c35f$export$3550cc87694d54e0]: (0, $dce48cb70c4120bb$export$78d8c50e853acd10),
4871
- [$7251dad5f4a4c35f$export$4f5168acae064e01]: $7251dad5f4a4c35f$export$8db6c706fc9142b2,
4872
- [$7251dad5f4a4c35f$export$b7e6dcd848b88f43]: (0, $dce48cb70c4120bb$export$e2b0b9a5e613f348),
4873
- [$7251dad5f4a4c35f$export$634ff7795b596e62]: (0, $dce48cb70c4120bb$export$6a5a2eab72b6e3d),
4874
- [$7251dad5f4a4c35f$export$8dd1111100e0e88d]: (0, $dce48cb70c4120bb$export$f1c9dd0f5207dd5e),
4875
- [$7251dad5f4a4c35f$export$deca399f8cd9b7dc]: (0, $dce48cb70c4120bb$export$4b194284baed1659)
4876
- };
4877
- var $7251dad5f4a4c35f$var$END_TAG_TO_SECTION_TYPE = {
4878
- [$7251dad5f4a4c35f$export$37c7b13f53af2469]: (0, $dce48cb70c4120bb$export$92249c36c213e508),
4879
- [$7251dad5f4a4c35f$export$1c874e9780385ecd]: (0, $dce48cb70c4120bb$export$78d8c50e853acd10),
4880
- [$7251dad5f4a4c35f$export$473c1a4819e5180b]: $7251dad5f4a4c35f$export$8db6c706fc9142b2,
4881
- [$7251dad5f4a4c35f$export$4b28ac1ae75aff60]: (0, $dce48cb70c4120bb$export$e2b0b9a5e613f348),
4882
- [$7251dad5f4a4c35f$export$e3f6cdbd95b1f8f]: (0, $dce48cb70c4120bb$export$6a5a2eab72b6e3d),
4883
- [$7251dad5f4a4c35f$export$66a0ef3ffeab32b7]: (0, $dce48cb70c4120bb$export$f1c9dd0f5207dd5e),
4884
- [$7251dad5f4a4c35f$export$640d294ab83f9040]: (0, $dce48cb70c4120bb$export$4b194284baed1659)
4885
- };
4886
- var $7251dad5f4a4c35f$export$dfea9b8ecbbb8623 = "start_tag";
4887
- var $7251dad5f4a4c35f$export$3d329a2c209fbc28 = "end_tag";
4888
- var $7251dad5f4a4c35f$var$SECTION_START_REGEX = /^start_of_(.+)$/;
4889
- var $7251dad5f4a4c35f$var$SECTION_END_REGEX = /^end_of_(.+)$/;
4890
4944
  function $7251dad5f4a4c35f$export$3ef04055cb4a269a(tagName) {
4891
4945
  return $7251dad5f4a4c35f$export$75d737e15c3fab80.includes(tagName);
4892
4946
  }
@@ -4937,30 +4991,6 @@ to a key`);
4937
4991
  if (!parsed) throw new Error(`Failed to parse ${tag}`);
4938
4992
  return parsed;
4939
4993
  }
4940
- static recognizeSectionTag(tagName) {
4941
- if (tagName in $7251dad5f4a4c35f$var$START_TAG_TO_SECTION_TYPE) return [
4942
- $7251dad5f4a4c35f$export$dfea9b8ecbbb8623,
4943
- $7251dad5f4a4c35f$var$START_TAG_TO_SECTION_TYPE[tagName]
4944
- ];
4945
- if (tagName in $7251dad5f4a4c35f$var$END_TAG_TO_SECTION_TYPE) return [
4946
- $7251dad5f4a4c35f$export$3d329a2c209fbc28,
4947
- $7251dad5f4a4c35f$var$END_TAG_TO_SECTION_TYPE[tagName]
4948
- ];
4949
- const parseStartResult = $7251dad5f4a4c35f$var$SECTION_START_REGEX.exec(tagName);
4950
- if (parseStartResult) return [
4951
- $7251dad5f4a4c35f$export$dfea9b8ecbbb8623,
4952
- parseStartResult[1]
4953
- ];
4954
- const parseEndResult = $7251dad5f4a4c35f$var$SECTION_END_REGEX.exec(tagName);
4955
- if (parseEndResult) return [
4956
- $7251dad5f4a4c35f$export$3d329a2c209fbc28,
4957
- parseEndResult[1]
4958
- ];
4959
- return [
4960
- null,
4961
- null
4962
- ];
4963
- }
4964
4994
  get label() {
4965
4995
  const labelAttribute = this.attributes.label;
4966
4996
  if (labelAttribute && labelAttribute.length > 0) return labelAttribute;
@@ -4970,12 +5000,12 @@ to a key`);
4970
5000
  return this.isSectionStart() || this.isSectionEnd();
4971
5001
  }
4972
5002
  isSectionStart() {
4973
- const [tagType] = _$7251dad5f4a4c35f$var$Tag.recognizeSectionTag(this.name);
4974
- return tagType === $7251dad5f4a4c35f$export$dfea9b8ecbbb8623;
5003
+ const [tagType] = (0, $35ced0783ee29c4f$export$2e2bcd8739ae039).interpret(this.name, this.value);
5004
+ return tagType === (0, $dce48cb70c4120bb$export$dfea9b8ecbbb8623);
4975
5005
  }
4976
5006
  isSectionEnd() {
4977
- const [tagType] = _$7251dad5f4a4c35f$var$Tag.recognizeSectionTag(this.name);
4978
- return tagType === $7251dad5f4a4c35f$export$3d329a2c209fbc28;
5007
+ const [tagType] = (0, $35ced0783ee29c4f$export$2e2bcd8739ae039).interpret(this.name, this.value);
5008
+ return tagType === (0, $dce48cb70c4120bb$export$3d329a2c209fbc28);
4979
5009
  }
4980
5010
  isInlineFontTag() {
4981
5011
  return $7251dad5f4a4c35f$var$INLINE_FONT_TAGS.includes(this.name);
@@ -5937,82 +5967,75 @@ to a key`);
5937
5967
  const peg$c125 = function(fret) {
5938
5968
  return fret;
5939
5969
  };
5940
- const peg$c126 = /^[1-9]/;
5941
- const peg$c127 = peg$classExpectation([
5942
- [
5943
- "1",
5944
- "9"
5945
- ]
5946
- ], false, false);
5947
- const peg$c128 = "0";
5948
- const peg$c129 = peg$literalExpectation("0", false);
5949
- const peg$c130 = function() {
5970
+ const peg$c126 = "0";
5971
+ const peg$c127 = peg$literalExpectation("0", false);
5972
+ const peg$c128 = function() {
5950
5973
  return 0;
5951
5974
  };
5952
- const peg$c131 = "-1";
5953
- const peg$c132 = peg$literalExpectation("-1", false);
5954
- const peg$c133 = /^[NXnx]/;
5955
- const peg$c134 = peg$classExpectation([
5975
+ const peg$c129 = "-1";
5976
+ const peg$c130 = peg$literalExpectation("-1", false);
5977
+ const peg$c131 = /^[NXnx]/;
5978
+ const peg$c132 = peg$classExpectation([
5956
5979
  "N",
5957
5980
  "X",
5958
5981
  "n",
5959
5982
  "x"
5960
5983
  ], false, false);
5961
- const peg$c135 = function(startTag, content, endTag) {
5984
+ const peg$c133 = function(startTag, content, endTag) {
5962
5985
  return $51ced2cf8b50f946$export$665e0f4515a68234(startTag, endTag, content);
5963
5986
  };
5964
- const peg$c136 = "start_of_abc";
5965
- const peg$c137 = peg$literalExpectation("start_of_abc", false);
5966
- const peg$c138 = "end_of_abc";
5967
- const peg$c139 = peg$literalExpectation("end_of_abc", false);
5968
- const peg$c140 = function(tagName) {
5987
+ const peg$c134 = "start_of_abc";
5988
+ const peg$c135 = peg$literalExpectation("start_of_abc", false);
5989
+ const peg$c136 = "end_of_abc";
5990
+ const peg$c137 = peg$literalExpectation("end_of_abc", false);
5991
+ const peg$c138 = function(tagName) {
5969
5992
  return $51ced2cf8b50f946$export$4478cda40be33ba2(tagName, null, null, location());
5970
5993
  };
5971
- const peg$c141 = "start_of_grid";
5972
- const peg$c142 = peg$literalExpectation("start_of_grid", false);
5973
- const peg$c143 = "sog";
5974
- const peg$c144 = peg$literalExpectation("sog", false);
5975
- const peg$c145 = "end_of_grid";
5976
- const peg$c146 = peg$literalExpectation("end_of_grid", false);
5977
- const peg$c147 = "eog";
5978
- const peg$c148 = peg$literalExpectation("eog", false);
5979
- const peg$c149 = "start_of_ly";
5980
- const peg$c150 = peg$literalExpectation("start_of_ly", false);
5981
- const peg$c151 = "end_of_ly";
5982
- const peg$c152 = peg$literalExpectation("end_of_ly", false);
5983
- const peg$c153 = "start_of_tab";
5984
- const peg$c154 = peg$literalExpectation("start_of_tab", false);
5985
- const peg$c155 = "sot";
5986
- const peg$c156 = peg$literalExpectation("sot", false);
5987
- const peg$c157 = "end_of_tab";
5988
- const peg$c158 = peg$literalExpectation("end_of_tab", false);
5989
- const peg$c159 = "eot";
5990
- const peg$c160 = peg$literalExpectation("eot", false);
5991
- const peg$c161 = peg$anyExpectation();
5992
- const peg$c162 = peg$otherExpectation("whitespace");
5993
- const peg$c163 = peg$otherExpectation("optional whitespace");
5994
- const peg$c164 = /^[ \t\n\r]/;
5995
- const peg$c165 = peg$classExpectation([
5994
+ const peg$c139 = "start_of_grid";
5995
+ const peg$c140 = peg$literalExpectation("start_of_grid", false);
5996
+ const peg$c141 = "sog";
5997
+ const peg$c142 = peg$literalExpectation("sog", false);
5998
+ const peg$c143 = "end_of_grid";
5999
+ const peg$c144 = peg$literalExpectation("end_of_grid", false);
6000
+ const peg$c145 = "eog";
6001
+ const peg$c146 = peg$literalExpectation("eog", false);
6002
+ const peg$c147 = "start_of_ly";
6003
+ const peg$c148 = peg$literalExpectation("start_of_ly", false);
6004
+ const peg$c149 = "end_of_ly";
6005
+ const peg$c150 = peg$literalExpectation("end_of_ly", false);
6006
+ const peg$c151 = "start_of_tab";
6007
+ const peg$c152 = peg$literalExpectation("start_of_tab", false);
6008
+ const peg$c153 = "sot";
6009
+ const peg$c154 = peg$literalExpectation("sot", false);
6010
+ const peg$c155 = "end_of_tab";
6011
+ const peg$c156 = peg$literalExpectation("end_of_tab", false);
6012
+ const peg$c157 = "eot";
6013
+ const peg$c158 = peg$literalExpectation("eot", false);
6014
+ const peg$c159 = peg$anyExpectation();
6015
+ const peg$c160 = peg$otherExpectation("whitespace");
6016
+ const peg$c161 = peg$otherExpectation("optional whitespace");
6017
+ const peg$c162 = /^[ \t\n\r]/;
6018
+ const peg$c163 = peg$classExpectation([
5996
6019
  " ",
5997
6020
  " ",
5998
6021
  "\n",
5999
6022
  "\r"
6000
6023
  ], false, false);
6001
- const peg$c166 = peg$otherExpectation("space");
6002
- const peg$c167 = /^[ \t]/;
6003
- const peg$c168 = peg$classExpectation([
6024
+ const peg$c164 = peg$otherExpectation("space");
6025
+ const peg$c165 = /^[ \t]/;
6026
+ const peg$c166 = peg$classExpectation([
6004
6027
  " ",
6005
6028
  " "
6006
6029
  ], false, false);
6007
- const peg$c169 = /^[\n\r]/;
6008
- const peg$c170 = peg$classExpectation([
6030
+ const peg$c167 = /^[\n\r]/;
6031
+ const peg$c168 = peg$classExpectation([
6009
6032
  "\n",
6010
6033
  "\r"
6011
6034
  ], false, false);
6012
- const peg$c171 = "\n";
6013
- const peg$c172 = peg$literalExpectation("\n", false);
6014
- const peg$c173 = "\r";
6015
- const peg$c174 = peg$literalExpectation("\r", false);
6035
+ const peg$c169 = "\n";
6036
+ const peg$c170 = peg$literalExpectation("\n", false);
6037
+ const peg$c171 = "\r";
6038
+ const peg$c172 = peg$literalExpectation("\r", false);
6016
6039
  let peg$currPos = 0;
6017
6040
  let peg$savedPos = 0;
6018
6041
  const peg$posDetailsCache = [
@@ -8184,12 +8207,12 @@ to a key`);
8184
8207
  function peg$parseFretNumber() {
8185
8208
  let s0, s1;
8186
8209
  s0 = peg$currPos;
8187
- if (peg$c126.test(input.charAt(peg$currPos))) {
8210
+ if (peg$c118.test(input.charAt(peg$currPos))) {
8188
8211
  s1 = input.charAt(peg$currPos);
8189
8212
  peg$currPos++;
8190
8213
  } else {
8191
8214
  s1 = peg$FAILED;
8192
- if (peg$silentFails === 0) peg$fail(peg$c127);
8215
+ if (peg$silentFails === 0) peg$fail(peg$c119);
8193
8216
  }
8194
8217
  if (s1 !== peg$FAILED) {
8195
8218
  peg$savedPos = s0;
@@ -8202,35 +8225,35 @@ to a key`);
8202
8225
  let s0, s1;
8203
8226
  s0 = peg$currPos;
8204
8227
  if (input.charCodeAt(peg$currPos) === 48) {
8205
- s1 = peg$c128;
8228
+ s1 = peg$c126;
8206
8229
  peg$currPos++;
8207
8230
  } else {
8208
8231
  s1 = peg$FAILED;
8209
- if (peg$silentFails === 0) peg$fail(peg$c129);
8232
+ if (peg$silentFails === 0) peg$fail(peg$c127);
8210
8233
  }
8211
8234
  if (s1 !== peg$FAILED) {
8212
8235
  peg$savedPos = s0;
8213
- s1 = peg$c130();
8236
+ s1 = peg$c128();
8214
8237
  }
8215
8238
  s0 = s1;
8216
8239
  return s0;
8217
8240
  }
8218
8241
  function peg$parseNonSoundingString() {
8219
8242
  let s0;
8220
- if (input.substr(peg$currPos, 2) === peg$c131) {
8221
- s0 = peg$c131;
8243
+ if (input.substr(peg$currPos, 2) === peg$c129) {
8244
+ s0 = peg$c129;
8222
8245
  peg$currPos += 2;
8223
8246
  } else {
8224
8247
  s0 = peg$FAILED;
8225
- if (peg$silentFails === 0) peg$fail(peg$c132);
8248
+ if (peg$silentFails === 0) peg$fail(peg$c130);
8226
8249
  }
8227
8250
  if (s0 === peg$FAILED) {
8228
- if (peg$c133.test(input.charAt(peg$currPos))) {
8251
+ if (peg$c131.test(input.charAt(peg$currPos))) {
8229
8252
  s0 = input.charAt(peg$currPos);
8230
8253
  peg$currPos++;
8231
8254
  } else {
8232
8255
  s0 = peg$FAILED;
8233
- if (peg$silentFails === 0) peg$fail(peg$c134);
8256
+ if (peg$silentFails === 0) peg$fail(peg$c132);
8234
8257
  }
8235
8258
  }
8236
8259
  return s0;
@@ -8317,7 +8340,7 @@ to a key`);
8317
8340
  s4 = peg$parseAbcEndTag();
8318
8341
  if (s4 !== peg$FAILED) {
8319
8342
  peg$savedPos = s0;
8320
- s1 = peg$c135(s1, s3, s4);
8343
+ s1 = peg$c133(s1, s3, s4);
8321
8344
  s0 = s1;
8322
8345
  } else {
8323
8346
  peg$currPos = s0;
@@ -8350,12 +8373,12 @@ to a key`);
8350
8373
  if (s1 !== peg$FAILED) {
8351
8374
  s2 = peg$parse_();
8352
8375
  if (s2 !== peg$FAILED) {
8353
- if (input.substr(peg$currPos, 12) === peg$c136) {
8354
- s3 = peg$c136;
8376
+ if (input.substr(peg$currPos, 12) === peg$c134) {
8377
+ s3 = peg$c134;
8355
8378
  peg$currPos += 12;
8356
8379
  } else {
8357
8380
  s3 = peg$FAILED;
8358
- if (peg$silentFails === 0) peg$fail(peg$c137);
8381
+ if (peg$silentFails === 0) peg$fail(peg$c135);
8359
8382
  }
8360
8383
  if (s3 !== peg$FAILED) {
8361
8384
  s4 = peg$parseTagSelector();
@@ -8426,12 +8449,12 @@ to a key`);
8426
8449
  if (s1 !== peg$FAILED) {
8427
8450
  s2 = peg$parse_();
8428
8451
  if (s2 !== peg$FAILED) {
8429
- if (input.substr(peg$currPos, 10) === peg$c138) {
8430
- s3 = peg$c138;
8452
+ if (input.substr(peg$currPos, 10) === peg$c136) {
8453
+ s3 = peg$c136;
8431
8454
  peg$currPos += 10;
8432
8455
  } else {
8433
8456
  s3 = peg$FAILED;
8434
- if (peg$silentFails === 0) peg$fail(peg$c139);
8457
+ if (peg$silentFails === 0) peg$fail(peg$c137);
8435
8458
  }
8436
8459
  if (s3 !== peg$FAILED) {
8437
8460
  s4 = peg$parse_();
@@ -8445,7 +8468,7 @@ to a key`);
8445
8468
  }
8446
8469
  if (s5 !== peg$FAILED) {
8447
8470
  peg$savedPos = s0;
8448
- s1 = peg$c140(s3);
8471
+ s1 = peg$c138(s3);
8449
8472
  s0 = s1;
8450
8473
  } else {
8451
8474
  peg$currPos = s0;
@@ -8539,7 +8562,7 @@ to a key`);
8539
8562
  s4 = peg$parseGridEndTag();
8540
8563
  if (s4 !== peg$FAILED) {
8541
8564
  peg$savedPos = s0;
8542
- s1 = peg$c135(s1, s3, s4);
8565
+ s1 = peg$c133(s1, s3, s4);
8543
8566
  s0 = s1;
8544
8567
  } else {
8545
8568
  peg$currPos = s0;
@@ -8572,20 +8595,20 @@ to a key`);
8572
8595
  if (s1 !== peg$FAILED) {
8573
8596
  s2 = peg$parse_();
8574
8597
  if (s2 !== peg$FAILED) {
8575
- if (input.substr(peg$currPos, 13) === peg$c141) {
8576
- s3 = peg$c141;
8598
+ if (input.substr(peg$currPos, 13) === peg$c139) {
8599
+ s3 = peg$c139;
8577
8600
  peg$currPos += 13;
8578
8601
  } else {
8579
8602
  s3 = peg$FAILED;
8580
- if (peg$silentFails === 0) peg$fail(peg$c142);
8603
+ if (peg$silentFails === 0) peg$fail(peg$c140);
8581
8604
  }
8582
8605
  if (s3 === peg$FAILED) {
8583
- if (input.substr(peg$currPos, 3) === peg$c143) {
8584
- s3 = peg$c143;
8606
+ if (input.substr(peg$currPos, 3) === peg$c141) {
8607
+ s3 = peg$c141;
8585
8608
  peg$currPos += 3;
8586
8609
  } else {
8587
8610
  s3 = peg$FAILED;
8588
- if (peg$silentFails === 0) peg$fail(peg$c144);
8611
+ if (peg$silentFails === 0) peg$fail(peg$c142);
8589
8612
  }
8590
8613
  }
8591
8614
  if (s3 !== peg$FAILED) {
@@ -8657,20 +8680,20 @@ to a key`);
8657
8680
  if (s1 !== peg$FAILED) {
8658
8681
  s2 = peg$parse_();
8659
8682
  if (s2 !== peg$FAILED) {
8660
- if (input.substr(peg$currPos, 11) === peg$c145) {
8661
- s3 = peg$c145;
8683
+ if (input.substr(peg$currPos, 11) === peg$c143) {
8684
+ s3 = peg$c143;
8662
8685
  peg$currPos += 11;
8663
8686
  } else {
8664
8687
  s3 = peg$FAILED;
8665
- if (peg$silentFails === 0) peg$fail(peg$c146);
8688
+ if (peg$silentFails === 0) peg$fail(peg$c144);
8666
8689
  }
8667
8690
  if (s3 === peg$FAILED) {
8668
- if (input.substr(peg$currPos, 3) === peg$c147) {
8669
- s3 = peg$c147;
8691
+ if (input.substr(peg$currPos, 3) === peg$c145) {
8692
+ s3 = peg$c145;
8670
8693
  peg$currPos += 3;
8671
8694
  } else {
8672
8695
  s3 = peg$FAILED;
8673
- if (peg$silentFails === 0) peg$fail(peg$c148);
8696
+ if (peg$silentFails === 0) peg$fail(peg$c146);
8674
8697
  }
8675
8698
  }
8676
8699
  if (s3 !== peg$FAILED) {
@@ -8685,7 +8708,7 @@ to a key`);
8685
8708
  }
8686
8709
  if (s5 !== peg$FAILED) {
8687
8710
  peg$savedPos = s0;
8688
- s1 = peg$c140(s3);
8711
+ s1 = peg$c138(s3);
8689
8712
  s0 = s1;
8690
8713
  } else {
8691
8714
  peg$currPos = s0;
@@ -8779,7 +8802,7 @@ to a key`);
8779
8802
  s4 = peg$parseLyEndTag();
8780
8803
  if (s4 !== peg$FAILED) {
8781
8804
  peg$savedPos = s0;
8782
- s1 = peg$c135(s1, s3, s4);
8805
+ s1 = peg$c133(s1, s3, s4);
8783
8806
  s0 = s1;
8784
8807
  } else {
8785
8808
  peg$currPos = s0;
@@ -8812,12 +8835,12 @@ to a key`);
8812
8835
  if (s1 !== peg$FAILED) {
8813
8836
  s2 = peg$parse_();
8814
8837
  if (s2 !== peg$FAILED) {
8815
- if (input.substr(peg$currPos, 11) === peg$c149) {
8816
- s3 = peg$c149;
8838
+ if (input.substr(peg$currPos, 11) === peg$c147) {
8839
+ s3 = peg$c147;
8817
8840
  peg$currPos += 11;
8818
8841
  } else {
8819
8842
  s3 = peg$FAILED;
8820
- if (peg$silentFails === 0) peg$fail(peg$c150);
8843
+ if (peg$silentFails === 0) peg$fail(peg$c148);
8821
8844
  }
8822
8845
  if (s3 !== peg$FAILED) {
8823
8846
  s4 = peg$parseTagSelector();
@@ -8888,12 +8911,12 @@ to a key`);
8888
8911
  if (s1 !== peg$FAILED) {
8889
8912
  s2 = peg$parse_();
8890
8913
  if (s2 !== peg$FAILED) {
8891
- if (input.substr(peg$currPos, 9) === peg$c151) {
8892
- s3 = peg$c151;
8914
+ if (input.substr(peg$currPos, 9) === peg$c149) {
8915
+ s3 = peg$c149;
8893
8916
  peg$currPos += 9;
8894
8917
  } else {
8895
8918
  s3 = peg$FAILED;
8896
- if (peg$silentFails === 0) peg$fail(peg$c152);
8919
+ if (peg$silentFails === 0) peg$fail(peg$c150);
8897
8920
  }
8898
8921
  if (s3 !== peg$FAILED) {
8899
8922
  s4 = peg$parse_();
@@ -8907,7 +8930,7 @@ to a key`);
8907
8930
  }
8908
8931
  if (s5 !== peg$FAILED) {
8909
8932
  peg$savedPos = s0;
8910
- s1 = peg$c140(s3);
8933
+ s1 = peg$c138(s3);
8911
8934
  s0 = s1;
8912
8935
  } else {
8913
8936
  peg$currPos = s0;
@@ -9001,7 +9024,7 @@ to a key`);
9001
9024
  s4 = peg$parseTabEndTag();
9002
9025
  if (s4 !== peg$FAILED) {
9003
9026
  peg$savedPos = s0;
9004
- s1 = peg$c135(s1, s3, s4);
9027
+ s1 = peg$c133(s1, s3, s4);
9005
9028
  s0 = s1;
9006
9029
  } else {
9007
9030
  peg$currPos = s0;
@@ -9034,20 +9057,20 @@ to a key`);
9034
9057
  if (s1 !== peg$FAILED) {
9035
9058
  s2 = peg$parse_();
9036
9059
  if (s2 !== peg$FAILED) {
9037
- if (input.substr(peg$currPos, 12) === peg$c153) {
9038
- s3 = peg$c153;
9060
+ if (input.substr(peg$currPos, 12) === peg$c151) {
9061
+ s3 = peg$c151;
9039
9062
  peg$currPos += 12;
9040
9063
  } else {
9041
9064
  s3 = peg$FAILED;
9042
- if (peg$silentFails === 0) peg$fail(peg$c154);
9065
+ if (peg$silentFails === 0) peg$fail(peg$c152);
9043
9066
  }
9044
9067
  if (s3 === peg$FAILED) {
9045
- if (input.substr(peg$currPos, 3) === peg$c155) {
9046
- s3 = peg$c155;
9068
+ if (input.substr(peg$currPos, 3) === peg$c153) {
9069
+ s3 = peg$c153;
9047
9070
  peg$currPos += 3;
9048
9071
  } else {
9049
9072
  s3 = peg$FAILED;
9050
- if (peg$silentFails === 0) peg$fail(peg$c156);
9073
+ if (peg$silentFails === 0) peg$fail(peg$c154);
9051
9074
  }
9052
9075
  }
9053
9076
  if (s3 !== peg$FAILED) {
@@ -9119,20 +9142,20 @@ to a key`);
9119
9142
  if (s1 !== peg$FAILED) {
9120
9143
  s2 = peg$parse_();
9121
9144
  if (s2 !== peg$FAILED) {
9122
- if (input.substr(peg$currPos, 10) === peg$c157) {
9123
- s3 = peg$c157;
9145
+ if (input.substr(peg$currPos, 10) === peg$c155) {
9146
+ s3 = peg$c155;
9124
9147
  peg$currPos += 10;
9125
9148
  } else {
9126
9149
  s3 = peg$FAILED;
9127
- if (peg$silentFails === 0) peg$fail(peg$c158);
9150
+ if (peg$silentFails === 0) peg$fail(peg$c156);
9128
9151
  }
9129
9152
  if (s3 === peg$FAILED) {
9130
- if (input.substr(peg$currPos, 3) === peg$c159) {
9131
- s3 = peg$c159;
9153
+ if (input.substr(peg$currPos, 3) === peg$c157) {
9154
+ s3 = peg$c157;
9132
9155
  peg$currPos += 3;
9133
9156
  } else {
9134
9157
  s3 = peg$FAILED;
9135
- if (peg$silentFails === 0) peg$fail(peg$c160);
9158
+ if (peg$silentFails === 0) peg$fail(peg$c158);
9136
9159
  }
9137
9160
  }
9138
9161
  if (s3 !== peg$FAILED) {
@@ -9147,7 +9170,7 @@ to a key`);
9147
9170
  }
9148
9171
  if (s5 !== peg$FAILED) {
9149
9172
  peg$savedPos = s0;
9150
- s1 = peg$c140(s3);
9173
+ s1 = peg$c138(s3);
9151
9174
  s0 = s1;
9152
9175
  } else {
9153
9176
  peg$currPos = s0;
@@ -9178,7 +9201,7 @@ to a key`);
9178
9201
  peg$currPos++;
9179
9202
  } else {
9180
9203
  s0 = peg$FAILED;
9181
- if (peg$silentFails === 0) peg$fail(peg$c161);
9204
+ if (peg$silentFails === 0) peg$fail(peg$c159);
9182
9205
  }
9183
9206
  return s0;
9184
9207
  }
@@ -9195,7 +9218,7 @@ to a key`);
9195
9218
  peg$silentFails--;
9196
9219
  if (s0 === peg$FAILED) {
9197
9220
  s1 = peg$FAILED;
9198
- if (peg$silentFails === 0) peg$fail(peg$c162);
9221
+ if (peg$silentFails === 0) peg$fail(peg$c160);
9199
9222
  }
9200
9223
  return s0;
9201
9224
  }
@@ -9211,18 +9234,18 @@ to a key`);
9211
9234
  peg$silentFails--;
9212
9235
  if (s0 === peg$FAILED) {
9213
9236
  s1 = peg$FAILED;
9214
- if (peg$silentFails === 0) peg$fail(peg$c163);
9237
+ if (peg$silentFails === 0) peg$fail(peg$c161);
9215
9238
  }
9216
9239
  return s0;
9217
9240
  }
9218
9241
  function peg$parseWhitespaceCharacter() {
9219
9242
  let s0;
9220
- if (peg$c164.test(input.charAt(peg$currPos))) {
9243
+ if (peg$c162.test(input.charAt(peg$currPos))) {
9221
9244
  s0 = input.charAt(peg$currPos);
9222
9245
  peg$currPos++;
9223
9246
  } else {
9224
9247
  s0 = peg$FAILED;
9225
- if (peg$silentFails === 0) peg$fail(peg$c165);
9248
+ if (peg$silentFails === 0) peg$fail(peg$c163);
9226
9249
  }
9227
9250
  return s0;
9228
9251
  }
@@ -9231,21 +9254,21 @@ to a key`);
9231
9254
  peg$silentFails++;
9232
9255
  s0 = peg$currPos;
9233
9256
  s1 = [];
9234
- if (peg$c167.test(input.charAt(peg$currPos))) {
9257
+ if (peg$c165.test(input.charAt(peg$currPos))) {
9235
9258
  s2 = input.charAt(peg$currPos);
9236
9259
  peg$currPos++;
9237
9260
  } else {
9238
9261
  s2 = peg$FAILED;
9239
- if (peg$silentFails === 0) peg$fail(peg$c168);
9262
+ if (peg$silentFails === 0) peg$fail(peg$c166);
9240
9263
  }
9241
9264
  if (s2 !== peg$FAILED) while (s2 !== peg$FAILED) {
9242
9265
  s1.push(s2);
9243
- if (peg$c167.test(input.charAt(peg$currPos))) {
9266
+ if (peg$c165.test(input.charAt(peg$currPos))) {
9244
9267
  s2 = input.charAt(peg$currPos);
9245
9268
  peg$currPos++;
9246
9269
  } else {
9247
9270
  s2 = peg$FAILED;
9248
- if (peg$silentFails === 0) peg$fail(peg$c168);
9271
+ if (peg$silentFails === 0) peg$fail(peg$c166);
9249
9272
  }
9250
9273
  }
9251
9274
  else s1 = peg$FAILED;
@@ -9254,18 +9277,18 @@ to a key`);
9254
9277
  peg$silentFails--;
9255
9278
  if (s0 === peg$FAILED) {
9256
9279
  s1 = peg$FAILED;
9257
- if (peg$silentFails === 0) peg$fail(peg$c166);
9280
+ if (peg$silentFails === 0) peg$fail(peg$c164);
9258
9281
  }
9259
9282
  return s0;
9260
9283
  }
9261
9284
  function peg$parseNewLine() {
9262
9285
  let s0;
9263
- if (peg$c169.test(input.charAt(peg$currPos))) {
9286
+ if (peg$c167.test(input.charAt(peg$currPos))) {
9264
9287
  s0 = input.charAt(peg$currPos);
9265
9288
  peg$currPos++;
9266
9289
  } else {
9267
9290
  s0 = peg$FAILED;
9268
- if (peg$silentFails === 0) peg$fail(peg$c170);
9291
+ if (peg$silentFails === 0) peg$fail(peg$c168);
9269
9292
  }
9270
9293
  if (s0 === peg$FAILED) s0 = peg$parseCarriageReturnLineFeed();
9271
9294
  return s0;
@@ -9295,22 +9318,22 @@ to a key`);
9295
9318
  function peg$parseLineFeed() {
9296
9319
  let s0;
9297
9320
  if (input.charCodeAt(peg$currPos) === 10) {
9298
- s0 = peg$c171;
9321
+ s0 = peg$c169;
9299
9322
  peg$currPos++;
9300
9323
  } else {
9301
9324
  s0 = peg$FAILED;
9302
- if (peg$silentFails === 0) peg$fail(peg$c172);
9325
+ if (peg$silentFails === 0) peg$fail(peg$c170);
9303
9326
  }
9304
9327
  return s0;
9305
9328
  }
9306
9329
  function peg$parseCarriageReturn() {
9307
9330
  let s0;
9308
9331
  if (input.charCodeAt(peg$currPos) === 13) {
9309
- s0 = peg$c173;
9332
+ s0 = peg$c171;
9310
9333
  peg$currPos++;
9311
9334
  } else {
9312
9335
  s0 = peg$FAILED;
9313
- if (peg$silentFails === 0) peg$fail(peg$c174);
9336
+ if (peg$silentFails === 0) peg$fail(peg$c172);
9314
9337
  }
9315
9338
  return s0;
9316
9339
  }
@@ -9479,6 +9502,13 @@ to a key`);
9479
9502
  return this.type === (0, $dce48cb70c4120bb$export$4b194284baed1659);
9480
9503
  }
9481
9504
  /**
9505
+ * Indicates whether the line type is {@link PART}
9506
+ * @returns {boolean}
9507
+ */
9508
+ isPart() {
9509
+ return this.type === (0, $dce48cb70c4120bb$export$609cc0ea1637d6a0);
9510
+ }
9511
+ /**
9482
9512
  * Indicates whether the line contains items that are renderable. Please use {@link hasRenderableItems}
9483
9513
  * @deprecated
9484
9514
  * @returns {boolean}
@@ -9610,43 +9640,43 @@ to a key`);
9610
9640
  var $8906e348466806fd$export$2e2bcd8739ae039 = $8906e348466806fd$var$Paragraph;
9611
9641
  var $9047ab737bb447ce$var$MetadataAccessors = class {
9612
9642
  get key() {
9613
- return this.getSingleMetadata((0, $7251dad5f4a4c35f$export$7167c830cefcb6b5));
9643
+ return this.getSingleMetadata((0, $d21c5c7a462f3c34$export$7167c830cefcb6b5));
9614
9644
  }
9615
9645
  get title() {
9616
- return this.getSingleMetadata((0, $7251dad5f4a4c35f$export$f1e53f710478ceb4));
9646
+ return this.getSingleMetadata((0, $d21c5c7a462f3c34$export$f1e53f710478ceb4));
9617
9647
  }
9618
9648
  get subtitle() {
9619
- return this.getSingleMetadata((0, $7251dad5f4a4c35f$export$5895c693c74b9cf4));
9649
+ return this.getSingleMetadata((0, $d21c5c7a462f3c34$export$5895c693c74b9cf4));
9620
9650
  }
9621
9651
  get capo() {
9622
- return this.getMetadata((0, $7251dad5f4a4c35f$export$866f445d49bad88e));
9652
+ return this.getMetadata((0, $d21c5c7a462f3c34$export$866f445d49bad88e));
9623
9653
  }
9624
9654
  get duration() {
9625
- return this.getSingleMetadata((0, $7251dad5f4a4c35f$export$bacc88974c736870));
9655
+ return this.getSingleMetadata((0, $d21c5c7a462f3c34$export$bacc88974c736870));
9626
9656
  }
9627
9657
  get tempo() {
9628
- return this.getSingleMetadata((0, $7251dad5f4a4c35f$export$bd8d57d0bc5a8478));
9658
+ return this.getSingleMetadata((0, $d21c5c7a462f3c34$export$bd8d57d0bc5a8478));
9629
9659
  }
9630
9660
  get time() {
9631
- return this.getMetadata((0, $7251dad5f4a4c35f$export$a9905336c0111a3a));
9661
+ return this.getMetadata((0, $d21c5c7a462f3c34$export$a9905336c0111a3a));
9632
9662
  }
9633
9663
  get year() {
9634
- return this.getSingleMetadata((0, $7251dad5f4a4c35f$export$90b88dc425a06a95));
9664
+ return this.getSingleMetadata((0, $d21c5c7a462f3c34$export$90b88dc425a06a95));
9635
9665
  }
9636
9666
  get album() {
9637
- return this.getMetadata((0, $7251dad5f4a4c35f$export$10227cb086d1770c));
9667
+ return this.getMetadata((0, $d21c5c7a462f3c34$export$10227cb086d1770c));
9638
9668
  }
9639
9669
  get copyright() {
9640
- return this.getSingleMetadata((0, $7251dad5f4a4c35f$export$4ab8c75045d12480));
9670
+ return this.getSingleMetadata((0, $d21c5c7a462f3c34$export$4ab8c75045d12480));
9641
9671
  }
9642
9672
  get lyricist() {
9643
- return this.getMetadata((0, $7251dad5f4a4c35f$export$a6901bd008617c61));
9673
+ return this.getMetadata((0, $d21c5c7a462f3c34$export$a6901bd008617c61));
9644
9674
  }
9645
9675
  get artist() {
9646
- return this.getMetadata((0, $7251dad5f4a4c35f$export$17d8dfb3db842bf));
9676
+ return this.getMetadata((0, $d21c5c7a462f3c34$export$17d8dfb3db842bf));
9647
9677
  }
9648
9678
  get composer() {
9649
- return this.getMetadata((0, $7251dad5f4a4c35f$export$98424633dc8c377f));
9679
+ return this.getMetadata((0, $d21c5c7a462f3c34$export$98424633dc8c377f));
9650
9680
  }
9651
9681
  };
9652
9682
  var $9047ab737bb447ce$export$2e2bcd8739ae039 = $9047ab737bb447ce$var$MetadataAccessors;
@@ -9656,7 +9686,8 @@ to a key`);
9656
9686
  var $5c7afec93ec943b9$var$Metadata = class _$5c7afec93ec943b9$var$Metadata extends (0, $9047ab737bb447ce$export$2e2bcd8739ae039) {
9657
9687
  constructor(metadata = {}) {
9658
9688
  super(), this.metadata = {};
9659
- if (metadata) this.assign(metadata);
9689
+ if (metadata instanceof _$5c7afec93ec943b9$var$Metadata) this.assign(metadata.metadata);
9690
+ else this.assign(metadata);
9660
9691
  }
9661
9692
  merge(metadata) {
9662
9693
  const clone = this.clone();
@@ -9716,7 +9747,7 @@ to a key`);
9716
9747
  * else it returns an array of strings.
9717
9748
  */
9718
9749
  get(prop) {
9719
- if (prop === (0, $7251dad5f4a4c35f$export$430b1920f5feeae)) return this.calculateKeyFromCapo();
9750
+ if (prop === (0, $d21c5c7a462f3c34$export$430b1920f5feeae)) return this.calculateKeyFromCapo();
9720
9751
  if (prop in this.metadata) return this.metadata[prop];
9721
9752
  return this.getArrayItem(prop);
9722
9753
  }
@@ -9760,8 +9791,8 @@ to a key`);
9760
9791
  return new _$5c7afec93ec943b9$var$Metadata(this.metadata);
9761
9792
  }
9762
9793
  calculateKeyFromCapo() {
9763
- const capoString = this.getSingle((0, $7251dad5f4a4c35f$export$866f445d49bad88e));
9764
- const keyString = this.getSingle((0, $7251dad5f4a4c35f$export$7167c830cefcb6b5));
9794
+ const capoString = this.getSingle((0, $d21c5c7a462f3c34$export$866f445d49bad88e));
9795
+ const keyString = this.getSingle((0, $d21c5c7a462f3c34$export$7167c830cefcb6b5));
9765
9796
  if (capoString && keyString) {
9766
9797
  const key = (0, $c2d6ab25ad00308f$export$2e2bcd8739ae039).parse(keyString);
9767
9798
  if (!key) throw new Error(`Could not parse ${keyString}`);
@@ -9827,22 +9858,22 @@ to a key`);
9827
9858
  var $ccba1b48264c125d$var$FontStack = class {
9828
9859
  applyTag(tag) {
9829
9860
  switch (tag.name) {
9830
- case (0, $7251dad5f4a4c35f$export$14fe4ba6e94df04d):
9861
+ case (0, $d21c5c7a462f3c34$export$14fe4ba6e94df04d):
9831
9862
  this.textFont.font = this.pushOrPopTag(tag);
9832
9863
  break;
9833
- case (0, $7251dad5f4a4c35f$export$f0dee7f48597f09a):
9864
+ case (0, $d21c5c7a462f3c34$export$f0dee7f48597f09a):
9834
9865
  this.textFont.size = this.pushOrPopSizeTag(tag);
9835
9866
  break;
9836
- case (0, $7251dad5f4a4c35f$export$d2ed2b49c006eb23):
9867
+ case (0, $d21c5c7a462f3c34$export$d2ed2b49c006eb23):
9837
9868
  this.textFont.colour = this.pushOrPopTag(tag);
9838
9869
  break;
9839
- case (0, $7251dad5f4a4c35f$export$2b0cbe6e95114098):
9870
+ case (0, $d21c5c7a462f3c34$export$2b0cbe6e95114098):
9840
9871
  this.chordFont.font = this.pushOrPopTag(tag);
9841
9872
  break;
9842
- case (0, $7251dad5f4a4c35f$export$1f62a95bf5703cac):
9873
+ case (0, $d21c5c7a462f3c34$export$1f62a95bf5703cac):
9843
9874
  this.chordFont.size = this.pushOrPopSizeTag(tag);
9844
9875
  break;
9845
- case (0, $7251dad5f4a4c35f$export$f7227d9f34d97bec):
9876
+ case (0, $d21c5c7a462f3c34$export$f7227d9f34d97bec):
9846
9877
  this.chordFont.colour = this.pushOrPopTag(tag);
9847
9878
  break;
9848
9879
  default:
@@ -9871,14 +9902,14 @@ to a key`);
9871
9902
  }
9872
9903
  constructor() {
9873
9904
  this.fontAndColourStacks = {
9874
- [(0, $7251dad5f4a4c35f$export$f7227d9f34d97bec)]: [],
9875
- [(0, $7251dad5f4a4c35f$export$2b0cbe6e95114098)]: [],
9876
- [(0, $7251dad5f4a4c35f$export$d2ed2b49c006eb23)]: [],
9877
- [(0, $7251dad5f4a4c35f$export$14fe4ba6e94df04d)]: []
9905
+ [(0, $d21c5c7a462f3c34$export$f7227d9f34d97bec)]: [],
9906
+ [(0, $d21c5c7a462f3c34$export$2b0cbe6e95114098)]: [],
9907
+ [(0, $d21c5c7a462f3c34$export$d2ed2b49c006eb23)]: [],
9908
+ [(0, $d21c5c7a462f3c34$export$14fe4ba6e94df04d)]: []
9878
9909
  };
9879
9910
  this.sizeStacks = {
9880
- [(0, $7251dad5f4a4c35f$export$1f62a95bf5703cac)]: [],
9881
- [(0, $7251dad5f4a4c35f$export$f0dee7f48597f09a)]: []
9911
+ [(0, $d21c5c7a462f3c34$export$1f62a95bf5703cac)]: [],
9912
+ [(0, $d21c5c7a462f3c34$export$f0dee7f48597f09a)]: []
9882
9913
  };
9883
9914
  this.textFont = new (0, $3b7d86e1e1307736$export$2e2bcd8739ae039)();
9884
9915
  this.chordFont = new (0, $3b7d86e1e1307736$export$2e2bcd8739ae039)();
@@ -9934,7 +9965,7 @@ to a key`);
9934
9965
  }
9935
9966
  this.setCurrentProperties(this.sectionType, this.selector);
9936
9967
  this.currentLine.transposeKey = this.transposeKey ?? this.currentKey;
9937
- this.currentLine.key = this.currentKey || this.metadata.getSingle((0, $7251dad5f4a4c35f$export$7167c830cefcb6b5));
9968
+ this.currentLine.key = this.currentKey || this.metadata.getSingle((0, $d21c5c7a462f3c34$export$7167c830cefcb6b5));
9938
9969
  this.currentLine.lineNumber = this.lines.length - 1;
9939
9970
  return this.currentLine;
9940
9971
  }
@@ -9973,8 +10004,8 @@ to a key`);
9973
10004
  }
9974
10005
  applyTagOnSong(tag) {
9975
10006
  if (tag.isMetaTag()) this.setMetadata(tag.name, tag.value || "");
9976
- else if (tag.name === (0, $7251dad5f4a4c35f$export$ae60ab9b4739fc3d)) this.transposeKey = tag.value;
9977
- else if (tag.name === (0, $7251dad5f4a4c35f$export$b7627374a6424f68)) this.currentKey = tag.value;
10007
+ else if (tag.name === (0, $d21c5c7a462f3c34$export$ae60ab9b4739fc3d)) this.transposeKey = tag.value;
10008
+ else if (tag.name === (0, $d21c5c7a462f3c34$export$b7627374a6424f68)) this.currentKey = tag.value;
9978
10009
  else if (tag.isSectionDelimiter()) this.setSectionTypeFromTag(tag);
9979
10010
  else if (tag.isInlineFontTag()) this.fontStack.applyTag(tag);
9980
10011
  }
@@ -9987,15 +10018,16 @@ to a key`);
9987
10018
  this.metadata.add(name, value);
9988
10019
  }
9989
10020
  setSectionTypeFromTag(tag) {
9990
- const [tagType, sectionType] = (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039).recognizeSectionTag(tag.name);
10021
+ const [tagType, sectionType] = (0, $35ced0783ee29c4f$export$2e2bcd8739ae039).interpret(tag.name, tag.value);
9991
10022
  if (!sectionType) return;
9992
- if (tagType === (0, $7251dad5f4a4c35f$export$dfea9b8ecbbb8623)) this.startSection(sectionType, tag);
9993
- else if (tagType === (0, $7251dad5f4a4c35f$export$3d329a2c209fbc28)) this.endSection(sectionType, tag);
10023
+ if (tagType === (0, $dce48cb70c4120bb$export$dfea9b8ecbbb8623)) this.startSection(sectionType, tag);
10024
+ else if (tagType === (0, $dce48cb70c4120bb$export$3d329a2c209fbc28)) this.endSection(sectionType === (0, $dce48cb70c4120bb$export$97c0a36af1d48540) ? this.sectionType : sectionType, tag);
9994
10025
  }
9995
10026
  startSection(sectionType, tag) {
9996
10027
  this.checkCurrentSectionType((0, $dce48cb70c4120bb$export$c53d0f541b41b88e), tag);
9997
- this.sectionType = sectionType;
9998
10028
  this.selector = tag.selector;
10029
+ if (sectionType === (0, $dce48cb70c4120bb$export$609cc0ea1637d6a0) && tag.value) this.sectionType = tag.value.split(" ")[0].toLowerCase();
10030
+ else this.sectionType = sectionType;
9999
10031
  this.setCurrentProperties(sectionType, tag.selector);
10000
10032
  }
10001
10033
  endSection(sectionType, tag) {
@@ -10004,7 +10036,7 @@ to a key`);
10004
10036
  this.selector = null;
10005
10037
  }
10006
10038
  checkCurrentSectionType(sectionType, tag) {
10007
- if (this.sectionType !== sectionType) this.addWarning(`Unexpected tag {${tag.originalName}}, current section is: ${this.sectionType}`, tag);
10039
+ if (this.sectionType !== sectionType && !(sectionType === "part" && tag.name === "end_of_part")) this.addWarning(`Unexpected tag {${tag.originalName}}, current section is: ${this.sectionType}`, tag);
10008
10040
  }
10009
10041
  addWarning(message, { line, column }) {
10010
10042
  const warning = new (0, $7981c56ae667de5e$export$2e2bcd8739ae039)(message, line || null, column || null);
@@ -10053,9 +10085,9 @@ to a key`);
10053
10085
  const chord = (0, $177a605b8569b31c$export$2e2bcd8739ae039).parse(chordString);
10054
10086
  if (!chord) return chordString;
10055
10087
  const songKey = song.key;
10056
- const capoString = song.metadata.getSingle((0, $7251dad5f4a4c35f$export$866f445d49bad88e));
10088
+ const capoString = song.metadata.getSingle((0, $d21c5c7a462f3c34$export$866f445d49bad88e));
10057
10089
  const capo = decapo && capoString ? parseInt(capoString, 10) : null;
10058
- const chordStyle = song.metadata.getSingle((0, $7251dad5f4a4c35f$export$d8cbdf44b1f66df1));
10090
+ const chordStyle = song.metadata.getSingle((0, $d21c5c7a462f3c34$export$d8cbdf44b1f66df1));
10059
10091
  const effectiveTransposeDistance = $2ce1086ce25c9ac0$var$chordTransposeDistance(capo, line.transposeKey, songKey, renderKey);
10060
10092
  const contextKey = (0, $c2d6ab25ad00308f$export$2e2bcd8739ae039).wrap(line.key || song.key);
10061
10093
  const modifier = $2ce1086ce25c9ac0$var$effectiveModifier(renderKey, contextKey);
@@ -10078,10 +10110,43 @@ to a key`);
10078
10110
  const metadataValueTruthy = metadataValue && metadataValue !== "";
10079
10111
  return isNegated ? !metadataValueTruthy : !!metadataValueTruthy;
10080
10112
  }
10113
+ var $5761643905a98621$exports = {};
10114
+ $5761643905a98621$exports = JSON.parse('{"A":"A base-fret 0 frets x 0 2 2 2 0","A/B":"A/B base-fret 0 frets x 2 2 2 2 0","A/C#":"A/C# base-fret 0 frets x 4 2 2 2 0","A/D":"A/D base-fret 0 frets x x 0 2 2 0","A/E":"A/E base-fret 0 frets 0 0 2 2 2 0","A/F#":"A/F# base-fret 0 frets 2 0 2 2 0 0","A/G":"A/G base-fret 0 frets 3 0 2 2 0 0","A/G#":"A/G# base-fret 0 frets 4 x 2 2 0 0","A11":"A11 base-fret 2 frets 4 3 x 1 2 2","A13":"A13 base-fret 0 frets x 0 2 0 2 2","A13(b9)":"A13(b9) base-fret 3 frets 2 x 2 3 4 3","A2":"A2 base-fret 0 frets x 0 2 2 0 0","A2/C#":"A2/C# base-fret 0 frets x 4 2 2 0 0","A2/E":"A2/E base-fret 0 frets 0 0 2 2 0 0","A2/F#":"A2/F# base-fret 0 frets 2 0 2 2 0 0","A2/G#":"A2/G# base-fret 0 frets 4 x 2 2 0 0","Asus":"Asus base-fret 0 frets x 0 2 2 3 0","Asus/E":"Asus/E base-fret 0 frets 0 0 2 2 3 0","A5":"A5 base-fret 0 frets x 0 2 2 x x","A5/E":"A5/E base-fret 2 frets 0 0 1 1 1 4","A6":"A6 base-fret 0 frets x 0 2 2 2 2","A7":"A7 base-fret 0 frets x 0 2 0 2 0","Aaug7":"Aaug7 base-fret 0 frets x 0 3 2 2 1","A7(#5b9)":"A7(#5b9) base-fret 3 frets 2 x 2 3 3 3","A7(b5)":"A7(b5) base-fret 0 frets x 0 1 0 2 x","A7/E":"A7/E base-fret 0 frets 0 0 2 0 2 0","A7/G":"A7/G base-fret 0 frets 3 x 2 0 2 0","A7(b9)":"A7(b9) base-fret 0 frets x 0 2 3 2 3","A7sus4":"A7sus4 base-fret 0 frets x 0 2 0 3 0","A7sus4/E":"A7sus4/E base-fret 0 frets 0 0 2 0 3 0","A9":"A9 base-fret 0 frets x 0 2 4 0 0","A9(b5)":"A9(b5) base-fret 0 frets x 0 1 4 2 3","Aaug":"Aaug base-fret 0 frets x 0 3 2 2 1","G#9":"G#9 base-fret 0 frets 4 3 4 3 4 x","G#sus":"G#sus base-fret 0 frets 4 4 1 1 2 x","G#ma9":"G#ma9 base-fret 0 frets 4 x 1 3 1 3","Adim":"Adim base-fret 0 frets x 0 1 2 1 2","Adim7":"Adim7 base-fret 0 frets x 0 1 2 1 2","Am":"Am base-fret 0 frets x 0 2 2 1 0","Am/C":"Am/C base-fret 0 frets x 3 2 2 1 0","Am13":"Am13 base-fret 0 frets x 0 0 0 1 2","Am6":"Am6 base-fret 0 frets x 0 2 2 1 2","Am7":"Am7 base-fret 0 frets x 0 2 0 1 0","Am7(b5)":"Am7(b5) base-fret 0 frets x 0 1 0 1 x","Am7/G":"Am7/G base-fret 0 frets 3 x 2 0 1 0","Am9":"Am9 base-fret 0 frets x 0 2 4 1 0","Ama7":"Ama7 base-fret 0 frets x 0 2 1 2 0","Ama9":"Ama9 base-fret 0 frets x 0 2 4 2 4","B":"B base-fret 0 frets x 2 4 4 4 2","B/A":"B/A base-fret 0 frets x 0 4 4 4 2","B/A#":"B/A# base-fret 0 frets x 1 4 3 0 x","B/C#":"B/C# base-fret 0 frets x 4 4 4 4 x","B/D#":"B/D# base-fret 0 frets x x 1 4 4 2","B/E":"B/E base-fret 0 frets 0 2 4 4 0 0","B/F#":"B/F# base-fret 0 frets 2 2 4 4 4 2","B/G#":"B/G# base-fret 0 frets 4 x 4 4 4 x","B11":"B11 base-fret 0 frets x 2 1 2 0 0","B13":"B13 base-fret 0 frets x 2 4 2 4 4","B13(b9)":"B13(b9) base-fret 5 frets 2 x 2 3 4 3","B2":"B2 base-fret 0 frets x 2 4 4 2 2","B2/A#":"B2/A# base-fret 0 frets x 1 4 4 0 x","B2/D#":"B2/D# base-fret 0 frets x 3 1 1 0 x","B2/G#":"B2/G# base-fret 0 frets 4 x 4 4 0 x","Bsus":"Bsus base-fret 0 frets x 2 4 4 0 0","Bsus/F#":"Bsus/F# base-fret 0 frets 2 2 4 4 0 0","B5":"B5 base-fret 0 frets x 2 4 4 0 x","B5/F#":"B5/F# base-fret 0 frets 2 2 4 4 2 2","B6":"B6 base-fret 0 frets x 2 4 4 4 4","B6/9":"B6/9 base-fret 0 frets x 2 1 1 2 x","B7":"B7 base-fret 0 frets x 2 1 2 0 2","Baug7":"Baug7 base-fret 0 frets x 2 1 0 0 3","B7(#5b9)":"B7(#5b9) base-fret 5 frets 2 x 2 3 3 3","B7(#9)":"B7(#9) base-fret 0 frets x 2 1 2 3 x","B7(b5)":"B7(b5) base-fret 0 frets x 2 3 2 4 x","B7(b9)":"B7(b9) base-fret 0 frets x 2 1 2 1 x","B7/A":"B7/A base-fret 0 frets x 0 1 2 0 2","B7/D#":"B7/D# base-fret 0 frets x x 1 2 0 2","B7/F#":"B7/F# base-fret 0 frets 2 2 4 2 4 2","B7sus4":"B7sus4 base-fret 0 frets x 2 2 2 0 2","B7sus4/F#":"B7sus4/F# base-fret 0 frets 2 2 4 4 0 0","B7sus4/G#":"B7sus4/G# base-fret 0 frets 4 x 4 4 0 0","B9":"B9 base-fret 0 frets x 2 1 2 2 2","B9(b5)":"B9(b5) base-fret 0 frets x 2 1 2 2 1","Baug":"Baug base-fret 0 frets x 2 1 0 0 3","A#/D":"A#/D base-fret 0 frets x x 0 3 3 1","A#/F":"A#/F base-fret 0 frets 1 1 3 3 3 1","A#11":"A#11 base-fret 0 frets x 1 0 3 4 4","A#13":"A#13 base-fret 0 frets x 1 3 1 3 3","A#2":"A#2 base-fret 0 frets x 1 3 3 1 1","A#2/F":"A#2/F base-fret 0 frets 1 1 3 3 1 1","A#sus":"A#sus base-fret 0 frets x 1 3 3 4 1","A#7":"A#7 base-fret 0 frets x 1 3 1 3 1","A#aug7":"A#aug7 base-fret 0 frets x 1 4 1 3 x","A#7(#5b9)":"A#7(#5b9) base-fret 5 frets 1 x 1 2 2 2","A#7(#9)":"A#7(#9) base-fret 0 frets x 1 0 1 2 x","A#7(b5)":"A#7(b5) base-fret 0 frets 2 x 2 3 1 x","A#7/F":"A#7/F base-fret 0 frets 1 1 3 1 3 1","A#9":"A#9 base-fret 0 frets x 1 3 3 1 1","A#9(b5)":"A#9(b5) base-fret 0 frets x 1 0 1 1 0","A#m11":"A#m11 base-fret 0 frets 4 x 4 4 2 x","A#m13":"A#m13 base-fret 0 frets x 1 1 1 2 3","A#m6":"A#m6 base-fret 0 frets x x x 3 2 3","A#m7":"A#m7 base-fret 0 frets x 1 3 1 2 1","A#m7(b5)":"A#m7(b5) base-fret 0 frets x 1 2 1 2 0","A#m9":"A#m9 base-fret 0 frets x 4 3 1 1 1","A#ma9":"A#ma9 base-fret 0 frets x 1 0 2 1 x","Bdim":"Bdim base-fret 0 frets x 2 0 1 0 1","Bdim7":"Bdim7 base-fret 0 frets x 2 0 1 0 1","Bm":"Bm base-fret 0 frets x 2 4 4 3 2","Bm/D":"Bm/D base-fret 0 frets x x 0 4 3 2","Bm11":"Bm11 base-fret 0 frets x 2 0 2 2 0","Bm13":"Bm13 base-fret 0 frets x 2 0 1 2 2","Bm6":"Bm6 base-fret 0 frets x 2 0 1 0 2","Bm7":"Bm7 base-fret 0 frets x 2 4 2 3 2","Bm7(b5)":"Bm7(b5) base-fret 0 frets x 2 3 2 3 x","Bm7/A":"Bm7/A base-fret 0 frets x 0 4 2 3 2","Bm9":"Bm9 base-fret 0 frets x 2 x 2 2 2","Bma7":"Bma7 base-fret 0 frets 2 2 4 3 4 2","Bma9":"Bma9 base-fret 0 frets x 2 1 3 2 x","C":"C base-fret 0 frets x 3 2 0 3 3","C#/G#":"C#/G# base-fret 0 frets x x x 1 2 1","C#11":"C#11 base-fret 0 frets x 4 3 4 2 2","C#13":"C#13 base-fret 2 frets x 2 1 2 2 4","C#2":"C#2 base-fret 0 frets x 4 1 1 2 x","C#2/G#":"C#2/G# base-fret 3 frets 1 1 3 3 1 1","C#7":"C#7 base-fret 0 frets x 4 3 4 2 x","C#aug7":"C#aug7 base-fret 0 frets x 4 3 2 0 x","C#7(b5)":"C#7(b5) base-fret 0 frets x 4 3 4 x 3","C#7(b9)":"C#7(b9) base-fret 0 frets x 4 3 4 3 x","C#7/G#":"C#7/G# base-fret 3 frets 1 1 3 1 3 1","C#9":"C#9 base-fret 0 frets x 4 3 4 4 4","C#m7":"C#m7 base-fret 0 frets x 4 2 4 2 4","C#m7(b5)":"C#m7(b5) base-fret 0 frets x 4 2 4 2 3","C#m9":"C#m9 base-fret 0 frets x 4 2 4 4 4","C/A":"C/A base-fret 0 frets x 0 2 0 1 0","C/B":"C/B base-fret 0 frets x 2 x 0 1 3","C/A#":"C/A# base-fret 0 frets x 1 2 0 2 0","C/D":"C/D base-fret 0 frets x x 0 0 1 0","C/E":"C/E base-fret 0 frets 0 3 2 0 1 0","C/F":"C/F base-fret 0 frets x x 3 0 1 0","C/G":"C/G base-fret 0 frets 3 3 2 0 1 0","C11":"C11 base-fret 0 frets x 3 3 3 3 3","C2":"C2 base-fret 0 frets x 3 2 0 3 3","C2/A":"C2/A base-fret 0 frets x 0 2 0 3 3","C2/B":"C2/B base-fret 0 frets x 2 2 0 3 3","C2/E":"C2/E base-fret 0 frets 0 3 2 0 3 3","C2/G":"C2/G base-fret 0 frets 3 3 2 0 3 3","Csus":"Csus base-fret 0 frets x 3 3 2 1 1","C5":"C5 base-fret 0 frets x 3 x 0 1 3","C5/B":"C5/B base-fret 0 frets x 2 x 0 1 3","C5/G":"C5/G base-fret 0 frets 3 3 x 0 1 3","C6":"C6 base-fret 0 frets x 3 2 2 1 0","C7":"C7 base-fret 0 frets 0 3 2 3 1 0","Caug7":"Caug7 base-fret 0 frets x 3 2 1 1 0","C7(b9)":"C7(b9) base-fret 0 frets x 3 2 3 2 x","C7/E":"C7/E base-fret 0 frets 0 3 2 3 1 0","C7/G":"C7/G base-fret 0 frets 3 x 2 3 1 0","C7sus4":"C7sus4 base-fret 0 frets x 3 3 3 1 3","C9":"C9 base-fret 0 frets x 3 2 0 3 0","Caug":"Caug base-fret 0 frets x 3 2 1 1 0","Cdim":"Cdim base-fret 0 frets x x 1 2 1 2","Cdim7":"Cdim7 base-fret 0 frets x 3 4 2 4 x","Cm":"Cm base-fret 0 frets x 3 1 x 1 3","Cm/D#":"Cm/D# base-fret 0 frets x x 1 x 1 3","Cm11":"Cm11 base-fret 0 frets x 3 3 3 4 3","Cm7":"Cm7 base-fret 0 frets x 3 1 3 4 x","Cm9":"Cm9 base-fret 0 frets x 3 1 3 3 3","Cma7":"Cma7 base-fret 0 frets x 3 2 0 0 0","Cma9":"Cma9 base-fret 0 frets x 3 2 4 3 x","D":"D base-fret 0 frets x x 0 2 3 2","D/A":"D/A base-fret 0 frets x 0 0 2 3 2","D/B":"D/B base-fret 0 frets x 2 0 2 3 2","D/C":"D/C base-fret 0 frets x 3 x 2 3 2","D/C#":"D/C# base-fret 0 frets x 4 x 2 3 2","D/E":"D/E base-fret 0 frets x x 2 2 3 2","D/F#":"D/F# base-fret 0 frets 2 0 0 2 3 2","D/G":"D/G base-fret 0 frets 3 x 0 0 3 2","D11":"D11 base-fret 3 frets x 2 2 2 2 2","D13":"D13 base-fret 0 frets x x 0 2 0 2","D2":"D2 base-fret 0 frets x x 0 2 2 0","D2/A":"D2/A base-fret 0 frets x 0 0 2 3 0","D2/B":"D2/B base-fret 0 frets x 2 0 2 3 0","D2/C#":"D2/C# base-fret 0 frets x 4 0 2 3 0","D2/F#":"D2/F# base-fret 0 frets 2 x 0 2 3 0","Dsus":"Dsus base-fret 0 frets x x 0 2 3 3","Dsus/A":"Dsus/A base-fret 0 frets x 0 0 2 3 3","D5":"D5 base-fret 0 frets x x 0 2 3 x","D5/A":"D5/A base-fret 2 frets x 0 0 1 2 4","D5/C#":"D5/C# base-fret 2 frets x x 0 1 1 4","D6":"D6 base-fret 0 frets x x 0 2 0 2","D7":"D7 base-fret 0 frets x x 0 2 1 2","Daug7":"Daug7 base-fret 0 frets x x 0 3 3 2","D7(#9)":"D7(#9) base-fret 3 frets x 2 1 2 3 x","D7(b5)":"D7(b5) base-fret 0 frets x x 0 1 1 2","D7(b9)":"D7(b9) base-fret 2 frets x 4 x 4 3 1","D7/A":"D7/A base-fret 0 frets x 0 0 2 1 2","D7/C":"D7/C base-fret 0 frets x 3 0 2 1 2","D7/F#":"D7/F# base-fret 0 frets 2 0 0 2 1 2","D7sus4":"D7sus4 base-fret 0 frets x x 0 2 1 1","D9":"D9 base-fret 0 frets x x 0 2 2 0","Daug":"Daug base-fret 0 frets x x 0 3 3 2","Ddim":"Ddim base-fret 0 frets x x 0 1 0 1","Ddim7":"Ddim7 base-fret 0 frets x x 0 1 0 1","Dm":"Dm base-fret 0 frets x x 0 2 1 3","Dm/F":"Dm/F base-fret 0 frets x x 3 2 1 3","Dm7":"Dm7 base-fret 0 frets x x 0 2 1 1","Dm7(b5)":"Dm7(b5) base-fret 0 frets x x 0 1 1 1","Dm7/C":"Dm7/C base-fret 0 frets x 3 x 2 1 1","Dma7":"Dma7 base-fret 0 frets x x 0 2 2 2","Dma9":"Dma9 base-fret 2 frets x 4 3 1 1 0","E":"E base-fret 0 frets 0 2 2 1 0 0","E/A":"E/A base-fret 0 frets x 0 2 1 0 0","E/B":"E/B base-fret 0 frets x 2 2 1 0 0","E/C#":"E/C# base-fret 0 frets x 4 2 4 0 0","E/D":"E/D base-fret 0 frets x x 0 1 0 0","E/D#":"E/D# base-fret 0 frets x x 1 1 0 0","E/F#":"E/F# base-fret 0 frets 2 2 2 1 0 x","E/G#":"E/G# base-fret 0 frets 4 x 2 4 0 0","E11":"E11 base-fret 0 frets 0 2 0 2 3 4","E13":"E13 base-fret 0 frets 0 2 0 1 3 0","E2":"E2 base-fret 0 frets 0 2 4 1 0 0","E2/B":"E2/B base-fret 0 frets x 2 4 1 0 0","E2/C#":"E2/C# base-fret 5 frets x 2 4 4 0 0","E2/D#":"E2/D# base-fret 5 frets x 2 4 3 0 0","E2/G#":"E2/G# base-fret 0 frets 4 x 4 4 0 0","Esus":"Esus base-fret 0 frets 0 2 2 2 0 0","Esus/B":"Esus/B base-fret 0 frets x 2 2 2 0 0","E5":"E5 base-fret 0 frets 0 2 4 4 0 0","E5/B":"E5/B base-fret 0 frets x 2 2 4 0 0","E5/D#":"E5/D# base-fret 5 frets x 1 4 3 0 0","E6":"E6 base-fret 0 frets 0 2 2 1 2 0","E7":"E7 base-fret 0 frets 0 2 0 1 0 0","E7(#9)":"E7(#9) base-fret 0 frets 0 2 0 1 3 3","E7(b5)":"E7(b5) base-fret 0 frets 0 1 2 1 3 x","E7(b9)":"E7(b9) base-fret 0 frets 0 x 0 1 0 1","E7/B":"E7/B base-fret 0 frets x 2 0 1 0 0","E7/D":"E7/D base-fret 0 frets x x 0 1 0 0","E7/G#":"E7/G# base-fret 0 frets 4 x 0 4 0 0","E7sus4":"E7sus4 base-fret 0 frets 0 2 0 2 0 0","E9":"E9 base-fret 0 frets 0 2 4 1 0 0","Eaug":"Eaug base-fret 0 frets 0 3 2 1 1 0","Eaug7":"Eaug7 base-fret 0 frets 0 3 2 1 1 0","D#/A#":"D#/A# base-fret 0 frets x x x 3 4 3","D#11":"D#11 base-fret 0 frets x x 1 0 2 4","D#13":"D#13 base-fret 4 frets x 2 1 2 2 4","D#2":"D#2 base-fret 0 frets x x 1 3 4 1","D#2/A#":"D#2/A# base-fret 5 frets 1 1 3 3 1 1","D#7":"D#7 base-fret 0 frets x x 1 3 2 3","D#aug7":"D#aug7 base-fret 0 frets x x 1 4 2 3","D#7(#9)":"D#7(#9) base-fret 0 frets x x 1 0 2 2","D#7(b5)":"D#7(b5) base-fret 0 frets x x 1 2 2 3","D#7(b9)":"D#7(b9) base-fret 0 frets x x 1 0 2 0","D#7/A#":"D#7/A# base-fret 5 frets 2 2 4 2 4 2","D#9":"D#9 base-fret 0 frets x x 1 0 2 1","D#dim7":"D#dim7 base-fret 0 frets x x 1 2 1 2","D#m9":"D#m9 base-fret 3 frets x 3 1 3 3 3","D#ma9":"D#ma9 base-fret 0 frets x x 1 0 3 1","Edim":"Edim base-fret 0 frets 0 1 2 0 2 0","Edim7":"Edim7 base-fret 0 frets 0 1 2 0 2 0","Em":"Em base-fret 0 frets 0 2 2 0 0 0","Em/G":"Em/G base-fret 0 frets 3 2 2 0 3 3","Em7":"Em7 base-fret 0 frets 0 2 2 0 3 0","Em7/D":"Em7/D base-fret 0 frets x x 0 0 3 3","Em9":"Em9 base-fret 0 frets 0 2 4 0 0 0","Ema7":"Ema7 base-fret 0 frets 0 2 1 1 0 0","Ema9":"Ema9 base-fret 0 frets 0 2 4 4 4 4","F":"F base-fret 0 frets x x 3 2 1 1","F#/C#":"F#/C# base-fret 0 frets x 4 4 3 2 2","F#13":"F#13 base-fret 0 frets 2 4 2 3 4 2","F#sus":"F#sus base-fret 0 frets 2 4 4 4 2 2","F#6":"F#6 base-fret 0 frets 2 x 1 3 2 x","F#7":"F#7 base-fret 0 frets 1 4 1 3 1 1","F#7(b5)":"F#7(b5) base-fret 0 frets 2 x 2 3 1 x","F#7/C#":"F#7/C# base-fret 0 frets x 4 2 3 2 2","F#dim7":"F#dim7 base-fret 0 frets 2 3 4 2 4 2","F#m/A":"F#m/A base-fret 0 frets x 0 2 2 0 0","F#m6":"F#m6 base-fret 0 frets 2 x 1 2 2 2","F#m7":"F#m7 base-fret 0 frets 2 x 2 2 0 0","F#m7(b5)":"F#m7(b5) base-fret 0 frets 2 x 2 2 1 0","F#m7/E":"F#m7/E base-fret 0 frets 0 4 4 2 0 0","F#ma9":"F#ma9 base-fret 0 frets 2 1 3 1 2 1","F/A":"F/A base-fret 0 frets x 0 3 2 1 1","F/A#":"F/A# base-fret 0 frets x 1 3 2 1 1","F/C":"F/C base-fret 0 frets x 3 3 2 1 1","F/D":"F/D base-fret 0 frets x x 0 2 1 1","F/E":"F/E base-fret 0 frets x x 2 2 1 1","F/D#":"F/D# base-fret 0 frets x x 1 2 1 1","F/G":"F/G base-fret 0 frets 3 x 3 2 1 1","F13":"F13 base-fret 0 frets 1 3 1 2 3 1","F2":"F2 base-fret 0 frets x x 3 0 1 1","F2/A":"F2/A base-fret 0 frets x 0 3 0 1 1","F2/C":"F2/C base-fret 0 frets x 3 3 0 1 1","F2/D":"F2/D base-fret 0 frets x x 0 0 1 1","F2/E":"F2/E base-fret 0 frets x x 2 0 1 1","Fsus":"Fsus base-fret 0 frets x x 3 3 1 1","F5":"F5 base-fret 0 frets 1 3 3 x 1 1","F6":"F6 base-fret 0 frets x x 3 2 3 1","F7":"F7 base-fret 0 frets 1 3 1 2 1 1","F7(#9)":"F7(#9) base-fret 0 frets x x 3 2 4 4","F7(b9)":"F7(b9) base-fret 0 frets x x 3 2 4 2","F7/A":"F7/A base-fret 0 frets x 0 1 2 1 1","F7/C":"F7/C base-fret 0 frets x 3 1 2 1 1","F7sus4":"F7sus4 base-fret 0 frets 1 3 1 3 1 1","F9":"F9 base-fret 0 frets x x 3 0 1 1","Faug":"Faug base-fret 0 frets x x 3 2 2 1","Faug7":"Faug7 base-fret 0 frets x x 3 2 2 1","Fdim":"Fdim base-fret 0 frets x x 0 1 0 1","Fdim7":"Fdim7 base-fret 0 frets x x 3 4 3 4","Fm":"Fm base-fret 0 frets x x 3 1 1 1","Fm6":"Fm6 base-fret 0 frets 1 x 0 1 1 1","Fm7":"Fm7 base-fret 0 frets 1 3 1 1 1 1","Fm7(b5)":"Fm7(b5) base-fret 0 frets 1 x 1 1 0 x","Fm9":"Fm9 base-fret 0 frets 1 3 1 1 1 3","Fma7":"Fma7 base-fret 0 frets x x 3 2 1 0","G":"G base-fret 0 frets 3 2 0 0 3 3","G#/D#":"G#/D# base-fret 0 frets x x 1 1 1 4","G#11":"G#11 base-fret 0 frets 4 x 4 3 2 x","G#13":"G#13 base-fret 0 frets 4 x 4 3 1 1","G#13(b9)":"G#13(b9) base-fret 3 frets 1 x 1 2 3 2","G#7":"G#7 base-fret 0 frets 4 3 4 1 1 x","G#aug7":"G#aug7 base-fret 0 frets 4 x 3 4 4 4","G#7(#5b9)":"G#7(#5b9) base-fret 3 frets 1 x 1 2 2 2","G#7(#9)":"G#7(#9) base-fret 0 frets 4 x 4 2 4 x","G#7(b5)":"G#7(b5) base-fret 0 frets 4 3 4 x 3 4","G#7/D#":"G#7/D# base-fret 3 frets x 3 1 2 1 1","G#9(b5)":"G#9(b5) base-fret 0 frets 4 x 4 3 3 x","G#m11":"G#m11 base-fret 0 frets 4 x 4 4 2 x","G#m13":"G#m13 base-fret 0 frets 4 2 4 x x 1","G#m6":"G#m6 base-fret 0 frets 4 3 4 3 4 4","G#m7":"G#m7 base-fret 0 frets 4 2 4 4 x 2","G#m7(b5)":"G#m7(b5) base-fret 0 frets 4 x 4 4 3 x","G#m7(b9)":"G#m7(b9) base-fret 2 frets 2 x 1 2 2 4","G#m9":"G#m9 base-fret 0 frets 4 2 4 3 x 2","G/A":"G/A base-fret 0 frets x 0 0 0 3 3","G/B":"G/B base-fret 0 frets x 2 0 0 3 3","G/C":"G/C base-fret 0 frets x 3 0 0 3 3","G/D":"G/D base-fret 0 frets x x 0 0 3 3","G/E":"G/E base-fret 0 frets 0 2 0 0 3 3","G/F":"G/F base-fret 0 frets 1 2 0 0 3 3","G/F#":"G/F# base-fret 0 frets 2 2 0 0 3 3","G11":"G11 base-fret 0 frets 3 x 3 2 1 x","G13":"G13 base-fret 0 frets 3 2 3 0 0 0","G13(b9)":"G13(b9) base-fret 3 frets 1 x 1 2 3 2","G2":"G2 base-fret 0 frets 3 x 0 2 3 3","G2/B":"G2/B base-fret 0 frets x 2 0 2 3 3","G2/D":"G2/D base-fret 0 frets x x 0 2 3 3","G2/E":"G2/E base-fret 0 frets x x 2 2 3 3","G2/F#":"G2/F# base-fret 0 frets 2 x 0 2 3 3","Gsus":"Gsus base-fret 0 frets 3 x 0 0 1 3","Gsus/D":"Gsus/D base-fret 0 frets x x 0 0 1 3","G5":"G5 base-fret 0 frets 3 x 0 0 3 3","G5/D":"G5/D base-fret 0 frets x x 0 0 3 3","G5/F#":"G5/F# base-fret 0 frets 2 x 0 0 3 3","G6":"G6 base-fret 0 frets 3 2 0 0 0 0","G7":"G7 base-fret 0 frets 3 2 3 0 0 3","Gaug7":"Gaug7 base-fret 0 frets 3 x 3 4 2 x","G7(#5b9)":"G7(#5b9) base-fret 0 frets 3 x 3 4 4 4","G7(#9)":"G7(#9) base-fret 0 frets 3 2 3 3 3 x","G7(b5)":"G7(b5) base-fret 0 frets 3 x 3 4 4 x","G7(b9)":"G7(b9) base-fret 0 frets 3 x 3 1 3 x","G7/B":"G7/B base-fret 0 frets x 2 3 0 3 3","G7/D":"G7/D base-fret 0 frets x x 0 0 0 1","G7sus4":"G7sus4 base-fret 0 frets 3 x 0 0 1 1","G9":"G9 base-fret 0 frets 3 x 0 2 3 3","G9(b5)":"G9(b5) base-fret 0 frets 3 x 3 2 2 x","Gaug":"Gaug base-fret 0 frets 3 2 1 0 0 3","F#9":"F#9 base-fret 0 frets 2 4 2 3 2 4","Gdim":"Gdim base-fret 0 frets x 1 2 0 2 0","Gdim7":"Gdim7 base-fret 0 frets x 1 2 0 2 0","Gm11":"Gm11 base-fret 0 frets 3 x 3 3 1 x","Gm6":"Gm6 base-fret 0 frets 3 x 2 3 3 3","Gm7(b5)":"Gm7(b5) base-fret 0 frets 3 x 3 3 2 x","Gma7":"Gma7 base-fret 0 frets 3 x 3 0 0 2","Gma9":"Gma9 base-fret 0 frets 3 x 4 2 3 x","A9(#5)":"A9(#5) base-fret 0 frets x 0 3 4 2 3","A9sus4":"A9sus4 base-fret 0 frets x 0 0 0 0 0","G#":"G# base-fret 0 frets 4 3 1 1 1 x","G#(2)":"G#(2) base-fret 0 frets 4 1 1 3 1 4","G#6":"G#6 base-fret 0 frets 4 3 1 1 1 1","G#6/9":"G#6/9 base-fret 0 frets 4 3 3 3 4 x","G#7(b9)":"G#7(b9) base-fret 0 frets x x 1 2 1 2","G#7sus4":"G#7sus4 base-fret 0 frets x x 1 1 2 2","G#9(#5)":"G#9(#5) base-fret 0 frets 4 3 2 3 x 2","G#9sus4":"G#9sus4 base-fret 0 frets 4 x 4 3 2 2","G#dim7":"G#dim7 base-fret 0 frets x x 0 1 0 1","G#m":"G#m base-fret 0 frets 4 2 1 1 4 x","G#m(ma7)":"G#m(ma7) base-fret 0 frets 4 2 1 1 x 3","G#ma7":"G#ma7 base-fret 0 frets 4 3 1 1 1 3","G#ma7(#11)":"G#ma7(#11) base-fret 3 frets 2 x 3 3 1 x","G#2":"G#2 base-fret 0 frets 4 1 1 1 4 x","Am11":"Am11 base-fret 0 frets x 0 0 0 1 0","Ama7(#11)":"Ama7(#11) base-fret 0 frets x 0 1 1 2 x","B(2)":"B(2) base-fret 0 frets x 2 1 x 2 2","B9(#5)":"B9(#5) base-fret 0 frets x 2 1 2 2 3","B9sus4":"B9sus4 base-fret 0 frets x 2 2 2 2 2","A#(2)":"A#(2) base-fret 0 frets x 1 0 3 1 x","A#5":"A#5 base-fret 0 frets x 1 3 3 x x","A#6":"A#6 base-fret 0 frets x 1 3 3 3 3","A#6/9":"A#6/9 base-fret 0 frets x 1 0 0 1 1","A#7(b9)":"A#7(b9) base-fret 0 frets x 1 0 1 0 1","A#7sus4":"A#7sus4 base-fret 0 frets x 1 3 1 4 1","A#9(#5)":"A#9(#5) base-fret 0 frets x x 0 1 1 2","A#9sus4":"A#9sus4 base-fret 0 frets x 1 1 1 1 1","A#dim7":"A#dim7 base-fret 0 frets x x 2 3 2 3","A#m":"A#m base-fret 0 frets x 1 3 0 2 x","A#m(ma7)":"A#m(ma7) base-fret 0 frets x 1 3 2 2 1","A#ma7":"A#ma7 base-fret 0 frets x 1 3 2 3 1","A#ma7(#11)":"A#ma7(#11) base-fret 0 frets x 1 2 2 3 0","Bm(ma7)":"Bm(ma7) base-fret 0 frets x 2 0 3 3 2","Bma7(#11)":"Bma7(#11) base-fret 0 frets x 2 3 3 4 x","C(2)":"C(2) base-fret 0 frets x 3 2 0 3 0","C#5":"C#5 base-fret 0 frets x x x x 2 4","C13":"C13 base-fret 2 frets x 2 1 2 2 4","C6/9":"C6/9 base-fret 0 frets x 3 2 2 3 x","C7(#9)":"C7(#9) base-fret 0 frets x 3 2 3 4 x","C7(b5)":"C7(b5) base-fret 0 frets x 3 2 3 x 2","C9(#5)":"C9(#5) base-fret 0 frets x 3 2 3 3 4","C9(b5)":"C9(b5) base-fret 0 frets x 3 2 3 3 2","C9sus4":"C9sus4 base-fret 0 frets x 3 3 3 3 3","Cm(ma7)":"Cm(ma7) base-fret 0 frets x 3 1 0 0 3","Cm13":"Cm13 base-fret 3 frets x 1 1 1 2 3","Cm6":"Cm6 base-fret 0 frets x 3 1 2 1 x","Cm7(b5)":"Cm7(b5) base-fret 0 frets x 3 4 3 4 x","Cma7(#11)":"Cma7(#11) base-fret 3 frets x 1 2 2 3 x","D(2)":"D(2) base-fret 2 frets x 4 3 1 4 0","D6/9":"D6/9 base-fret 2 frets x 4 x 3 4 1","D9(#5)":"D9(#5) base-fret 3 frets x 3 2 3 3 4","D9(b5)":"D9(b5) base-fret 3 frets x 3 2 3 3 2","D9sus4":"D9sus4 base-fret 0 frets x x 0 0 1 0","C#":"C# base-fret 0 frets x 4 3 1 2 1","C#(2)":"C#(2) base-fret 0 frets x 4 3 1 4 x","C#6":"C#6 base-fret 0 frets x 4 3 3 2 x","C#6/9":"C#6/9 base-fret 0 frets x 4 3 3 4 4","C#7(#9)":"C#7(#9) base-fret 0 frets x 4 3 4 0 0","C#7sus4":"C#7sus4 base-fret 0 frets x 4 4 4 2 x","C#9(#5)":"C#9(#5) base-fret 3 frets x 2 1 2 2 3","C#9(b5)":"C#9(b5) base-fret 0 frets x 4 3 4 4 3","C#9sus4":"C#9sus4 base-fret 0 frets x 4 4 4 4 4","C#dim7":"C#dim7 base-fret 0 frets x x 2 3 2 3","C#m":"C#m base-fret 0 frets x 4 2 x 2 4","C#m(ma7)":"C#m(ma7) base-fret 0 frets x 4 2 1 1 4","C#m11":"C#m11 base-fret 0 frets x 4 2 4 4 2","C#m13":"C#m13 base-fret 3 frets x 2 2 2 3 4","C#m6":"C#m6 base-fret 0 frets x 4 2 3 2 x","C#ma7":"C#ma7 base-fret 0 frets x 4 3 1 1 1","C#ma7(#11)":"C#ma7(#11) base-fret 3 frets x 2 3 3 4 x","C#ma9":"C#ma9 base-fret 3 frets x 2 1 4 3 x","C#sus":"C#sus base-fret 0 frets x 4 4 1 2 x","Dm9":"Dm9 base-fret 2 frets x 4 2 1 4 0","Dm(ma7)":"Dm(ma7) base-fret 0 frets x x 0 2 2 1","Dm11":"Dm11 base-fret 3 frets x 3 1 3 3 1","Dm13":"Dm13 base-fret 5 frets x 1 1 1 2 3","Dm6":"Dm6 base-fret 0 frets x x 0 2 0 1","Dma7(#11)":"Dma7(#11) base-fret 5 frets x 1 2 2 3 x","E(2)":"E(2) base-fret 0 frets 0 2 2 1 0 2","E6/9":"E6/9 base-fret 0 frets 0 x 2 1 2 2","E9(#5)":"E9(#5) base-fret 0 frets 0 x 0 1 1 2","E9(b5)":"E9(b5) base-fret 0 frets 0 1 2 1 3 2","E9sus4":"E9sus4 base-fret 0 frets 0 2 0 2 0 2","D#":"D# base-fret 0 frets x x 1 3 4 3","D#aug":"D#aug base-fret 0 frets x x 1 0 0 x","D#(2)":"D#(2) base-fret 3 frets x 4 3 1 4 x","D#(b5)":"D#(b5) base-fret 5 frets x 2 1 2 2 1","D#5":"D#5 base-fret 0 frets x x 1 3 4 x","D#6":"D#6 base-fret 0 frets x x 1 3 1 3","D#6/9":"D#6/9 base-fret 0 frets x x 1 0 1 1","D#7sus4":"D#7sus4 base-fret 0 frets x x 1 1 2 4","D#9sus4":"D#9sus4 base-fret 0 frets x x 1 1 2 1","D#m":"D#m base-fret 0 frets x x 1 3 4 2","D#m(ma7)":"D#m(ma7) base-fret 0 frets x x 1 3 3 2","D#m11":"D#m11 base-fret 3 frets x 4 2 4 4 2","D#m13":"D#m13 base-fret 5 frets x 2 2 2 3 4","D#m7":"D#m7 base-fret 0 frets x x 1 3 2 2","D#m7(b5)":"D#m7(b5) base-fret 0 frets x x 1 2 2 2","D#ma7":"D#ma7 base-fret 0 frets x x 1 3 3 3","D#ma7(#11)":"D#ma7(#11) base-fret 5 frets x 2 3 3 4 x","D#sus":"D#sus base-fret 0 frets x 1 1 3 4 4","Em(ma7)":"Em(ma7) base-fret 0 frets 0 2 1 0 0 0","Em11":"Em11 base-fret 0 frets 0 2 0 2 0 3","Em13":"Em13 base-fret 0 frets 0 4 4 0 2 0","Em6":"Em6 base-fret 0 frets 0 2 2 0 2 0","Em7(b5)":"Em7(b5) base-fret 0 frets 0 x 2 3 3 3","Ema7(#11)":"Ema7(#11) base-fret 0 frets 0 x 2 3 4 4","F(2)":"F(2) base-fret 0 frets x x 3 2 1 3","F#":"F# base-fret 0 frets 3 x 2 4 3 x","F#(2)":"F#(2) base-fret 0 frets 2 x 4 3 2 4","F#5":"F#5 base-fret 0 frets 2 4 4 x x x","F#6/9":"F#6/9 base-fret 0 frets 2 1 1 1 2 x","F#aug7":"F#aug7 base-fret 0 frets 2 x 2 3 3 x","F#7(#9)":"F#7(#9) base-fret 0 frets 2 1 2 2 x x","F#7(b9)":"F#7(b9) base-fret 0 frets x x 2 3 2 3","F#7sus4":"F#7sus4 base-fret 0 frets 1 4 2 4 2 2","F#9(#5)":"F#9(#5) base-fret 0 frets 2 1 2 1 3 x","F#9(b5)":"F#9(b5) base-fret 0 frets 2 1 2 1 3 x","F#9sus4":"F#9sus4 base-fret 0 frets 2 4 2 4 2 4","F#m":"F#m base-fret 0 frets 2 4 4 2 2 2","F#m9":"F#m9 base-fret 0 frets 2 4 4 2 2 4","F#m(ma7)":"F#m(ma7) base-fret 0 frets 2 4 3 2 2 x","F#m11":"F#m11 base-fret 0 frets 2 x 2 2 0 0","F#m13":"F#m13 base-fret 0 frets 1 3 1 1 3 1","F#ma7":"F#ma7 base-fret 0 frets 2 x 3 3 2 x","F#ma7(#11)":"F#ma7(#11) base-fret 0 frets 2 x 3 3 1 x","F#2":"F#2 base-fret 0 frets 2 4 4 x 2 4","F6/9":"F6/9 base-fret 0 frets 1 0 0 0 1 1","F7(b5)":"F7(b5) base-fret 0 frets 1 0 1 2 0 x","F9(#5)":"F9(#5) base-fret 0 frets 1 0 1 0 2 x","F9(b5)":"F9(b5) base-fret 0 frets 1 0 1 0 0 x","F9sus4":"F9sus4 base-fret 0 frets 1 3 1 3 1 3","Fm(ma7)":"Fm(ma7) base-fret 0 frets 1 x x 1 1 0","Fm11":"Fm11 base-fret 0 frets 1 3 1 3 1 4","Fm13":"Fm13 base-fret 0 frets 1 3 1 1 3 1","Fma7(#11)":"Fma7(#11) base-fret 0 frets 1 x 2 2 0 0","Fma9":"Fma9 base-fret 0 frets 1 0 2 0 1 0","G(2)":"G(2) base-fret 0 frets 3 x 0 2 0 3","G#5":"G#5 base-fret 0 frets 4 x 1 1 4 x","G6/9":"G6/9 base-fret 0 frets 3 2 2 2 3 0","G9(#5)":"G9(#5) base-fret 0 frets 3 2 3 2 4 x","G9sus4":"G9sus4 base-fret 0 frets 3 x 3 2 1 1","Gm":"Gm base-fret 0 frets 3 x 0 3 3 3","Gm9":"Gm9 base-fret 0 frets 3 1 3 2 x 1","Gm(ma7)":"Gm(ma7) base-fret 0 frets 3 x 0 3 3 2","Gm13":"Gm13 base-fret 0 frets 3 x 3 3 1 0","Gm7":"Gm7 base-fret 0 frets 3 x 3 3 3 x","Gma7(#11)":"Gma7(#11) base-fret 0 frets 3 x 4 4 2 x","A(2)":"A(2) base-fret 0 frets x 0 2 4 2 0","A(4)":"A(4) base-fret 0 frets x 0 0 2 2 0","Am2":"Am2 base-fret 0 frets x 0 2 4 1 0","A6/9":"A6/9 base-fret 0 frets x 0 2 4 2 2","A13sus4":"A13sus4 base-fret 0 frets x 0 0 0 0 2","Am(ma7)":"Am(ma7) base-fret 0 frets x x x 2 1 4","Am(ma9)":"Am(ma9) base-fret 2 frets x 0 1 4 0 3","A7(#9)":"A7(#9) base-fret 2 frets 4 x 1 4 1 2","Am7(#5)":"Am7(#5) base-fret 0 frets x 0 3 2 1 3","Ama7(#5)":"Ama7(#5) base-fret 0 frets x 0 3 1 2 1","Ama7(b5)":"Ama7(b5) base-fret 0 frets x 0 1 2 2 4","A/A#":"A/A# base-fret 0 frets x 1 2 2 2 x","A/C":"A/C base-fret 0 frets x 3 2 2 2 x","A/D#":"A/D# base-fret 0 frets x x 1 2 2 0","A/F":"A/F base-fret 0 frets 1 4 2 2 x x","Am/A#":"Am/A# base-fret 0 frets x 1 2 2 1 x","Am/B":"Am/B base-fret 0 frets x 2 2 2 1 x","Am/C#":"Am/C# base-fret 0 frets x 4 2 2 1 x","Am/D":"Am/D base-fret 0 frets x x 0 2 1 0","Am/D#":"Am/D# base-fret 0 frets x x 1 2 1 0","Am/E":"Am/E base-fret 0 frets x x 2 2 1 x","Am/F":"Am/F base-fret 0 frets 1 3 2 2 x x","Am/F#":"Am/F# base-fret 0 frets 2 3 2 2 x x","Am/G":"Am/G base-fret 0 frets 3 3 2 2 x x","Am/G#":"Am/G# base-fret 0 frets 4 3 2 2 x x","A#":"A# base-fret 0 frets x 1 3 3 3 1","A#(4)":"A#(4) base-fret 0 frets x 1 1 3 3 1","A#m2":"A#m2 base-fret 3 frets 4 1 1 4 4 x","A#aug":"A#aug base-fret 0 frets x x x 3 3 2","A#dim":"A#dim base-fret 0 frets x 1 2 3 2 x","A#13sus4":"A#13sus4 base-fret 0 frets x 1 1 1 4 3","A#m(ma9)":"A#m(ma9) base-fret 3 frets 4 2 x 3 4 3","A#m7(#5)":"A#m7(#5) base-fret 0 frets x 1 4 1 2 x","A#ma7(#5)":"A#ma7(#5) base-fret 0 frets x 1 4 2 3 2","A#ma7(b5)":"A#ma7(b5) base-fret 0 frets x 1 2 2 3 x","A#/A":"A#/A base-fret 0 frets x 0 0 3 3 1","A#/B":"A#/B base-fret 0 frets x 2 3 3 3 x","A#/C":"A#/C base-fret 0 frets x 3 3 3 3 x","A#/C#":"A#/C# base-fret 0 frets x 4 3 3 3 x","A#/D#":"A#/D# base-fret 0 frets x x 1 3 3 1","A#/E":"A#/E base-fret 0 frets 0 1 3 x 3 1","A#/F#":"A#/F# base-fret 0 frets 2 1 3 x 3 1","A#/G":"A#/G base-fret 0 frets 3 1 3 x 3 1","A#/G#":"A#/G# base-fret 0 frets 4 1 3 x 3 1","A#m/A":"A#m/A base-fret 0 frets x 0 3 3 2 1","A#m/B":"A#m/B base-fret 0 frets x 2 3 3 2 x","A#m/C":"A#m/C base-fret 0 frets x 3 3 3 2 x","A#m/C#":"A#m/C# base-fret 0 frets x 4 3 3 x x","A#m/D":"A#m/D base-fret 0 frets x x 0 3 2 1","A#m/D#":"A#m/D# base-fret 0 frets x x 1 3 2 1","A#m/E":"A#m/E base-fret 0 frets 0 1 3 3 2 1","A#m/F":"A#m/F base-fret 0 frets 1 1 3 3 2 1","A#m/F#":"A#m/F# base-fret 0 frets 2 1 x 3 2 1","A#m/G":"A#m/G base-fret 0 frets 3 1 3 x 2 1","A#m/G#":"A#m/G# base-fret 0 frets 4 1 3 x 2 1","B(4)":"B(4) base-fret 0 frets x 2 2 4 4 2","Bm2":"Bm2 base-fret 0 frets x 2 0 x 2 2","B13sus4":"B13sus4 base-fret 0 frets x 2 2 2 0 4","Bm(ma9)":"Bm(ma9) base-fret 0 frets x 2 0 3 2 x","Bm7(#5)":"Bm7(#5) base-fret 0 frets x 2 x 2 3 3","Bma7(#5)":"Bma7(#5) base-fret 0 frets x 2 1 3 4 3","Bma7(b5)":"Bma7(b5) base-fret 0 frets x 2 1 3 4 1","B/C":"B/C base-fret 0 frets x 3 4 4 4 x","B/D":"B/D base-fret 0 frets x x 0 4 4 2","B/F":"B/F base-fret 0 frets 1 2 1 x 4 2","B/G":"B/G base-fret 0 frets 3 2 4 x 4 2","Bm/A":"Bm/A base-fret 0 frets x 0 0 4 3 2","Bm/A#":"Bm/A# base-fret 0 frets x 1 x 4 3 2","Bm/C":"Bm/C base-fret 0 frets x 3 4 4 3 x","Bm/C#":"Bm/C# base-fret 0 frets x 4 4 4 3 x","Bm/D#":"Bm/D# base-fret 0 frets x x 1 4 3 2","Bm/E":"Bm/E base-fret 0 frets 0 2 0 4 3 2","Bm/F":"Bm/F base-fret 0 frets x x 3 4 3 2","Bm/F#":"Bm/F# base-fret 0 frets 2 2 4 4 3 2","Bm/G":"Bm/G base-fret 0 frets 3 2 x 4 3 2","Bm/G#":"Bm/G# base-fret 0 frets 4 2 4 x 3 2","C(4)":"C(4) base-fret 0 frets x 3 2 0 1 1","Cm2":"Cm2 base-fret 0 frets x 3 1 x 3 3","C13sus4":"C13sus4 base-fret 3 frets x 1 1 1 4 3","Cm(ma9)":"Cm(ma9) base-fret 0 frets x 3 1 4 3 3","Cm7(#5)":"Cm7(#5) base-fret 0 frets x 3 1 3 1 4","Cma7(#5)":"Cma7(#5) base-fret 0 frets x 3 2 4 x 4","Cma7(b5)":"Cma7(b5) base-fret 0 frets x 3 2 4 x 2","C/C#":"C/C# base-fret 0 frets x 4 2 x 1 3","C/D#":"C/D# base-fret 0 frets x x 1 0 1 0","C/F#":"C/F# base-fret 0 frets 2 3 2 x x 3","C/G#":"C/G# base-fret 0 frets 4 3 2 0 x 0","Cm/A":"Cm/A base-fret 0 frets x 0 1 0 1 3","Cm/A#":"Cm/A# base-fret 0 frets x 1 1 x 1 3","Cm/B":"Cm/B base-fret 0 frets x 2 1 x 1 3","Cm/C#":"Cm/C# base-fret 0 frets x 4 1 0 1 x","Cm/D":"Cm/D base-fret 3 frets x 3 3 3 2 x","Cm/E":"Cm/E base-fret 0 frets 0 3 1 0 1 x","Cm/F":"Cm/F base-fret 0 frets 1 3 1 0 x x","Cm/F#":"Cm/F# base-fret 0 frets 2 3 1 x x 3","Cm/G":"Cm/G base-fret 0 frets 3 3 1 x x x","Cm/G#":"Cm/G# base-fret 0 frets 4 3 x x 4 3","C#(4)":"C#(4) base-fret 0 frets x 4 4 1 2 1","C#m2":"C#m2 base-fret 0 frets x 4 2 1 4 4","C#aug":"C#aug base-fret 0 frets x 4 3 2 2 x","C#dim":"C#dim base-fret 0 frets x 4 2 x 2 3","C#13sus4":"C#13sus4 base-fret 3 frets x 2 2 2 0 4","C#m(ma9)":"C#m(ma9) base-fret 2 frets x 3 1 4 3 3","C#m7(#5)":"C#m7(#5) base-fret 0 frets x 4 2 2 0 0","C#ma7(#5)":"C#ma7(#5) base-fret 0 frets x 4 3 2 1 1","C#ma7(b5)":"C#ma7(b5) base-fret 0 frets x 4 3 x 1 3","C#/A":"C#/A base-fret 0 frets x 0 3 1 2 1","C#/A#":"C#/A# base-fret 0 frets x 1 3 1 2 1","C#/B":"C#/B base-fret 0 frets x 2 3 1 2 1","C#/C":"C#/C base-fret 0 frets x 3 3 1 2 1","C#/D":"C#/D base-fret 0 frets x x 0 1 2 1","C#/D#":"C#/D# base-fret 0 frets x x 1 1 2 1","C#/E":"C#/E base-fret 0 frets 0 4 3 1 2 1","C#/F":"C#/F base-fret 0 frets x x 3 1 2 1","C#/F#":"C#/F# base-fret 0 frets x x 4 1 2 1","C#/G":"C#/G base-fret 0 frets 3 x 3 1 2 1","C#m/A":"C#m/A base-fret 0 frets x 0 2 1 2 0","C#m/A#":"C#m/A# base-fret 0 frets x 1 2 1 2 x","C#m/B":"C#m/B base-fret 0 frets x 2 2 1 2 x","C#m/C":"C#m/C base-fret 0 frets x 3 2 1 2 x","C#m/D":"C#m/D base-fret 0 frets x x 0 1 2 0","C#m/D#":"C#m/D# base-fret 0 frets x x 1 1 2 0","C#m/E":"C#m/E base-fret 0 frets x x 2 1 2 x","C#m/F":"C#m/F base-fret 0 frets 1 x 2 1 2 4","C#m/F#":"C#m/F# base-fret 0 frets 2 x 2 1 2 x","C#m/G":"C#m/G base-fret 0 frets 3 4 2 1 x x","C#m/G#":"C#m/G# base-fret 0 frets 4 4 2 x x x","D(4)":"D(4) base-fret 2 frets x 4 4 1 2 1","Dm2":"Dm2 base-fret 2 frets x 4 2 1 4 4","D13sus4":"D13sus4 base-fret 5 frets x 1 1 1 4 3","Dm(ma9)":"Dm(ma9) base-fret 2 frets x 4 2 x 1 0","Dm7(#5)":"Dm7(#5) base-fret 0 frets x x 0 3 1 1","Dma7(#5)":"Dma7(#5) base-fret 0 frets x x 0 3 2 2","Dma7(b5)":"Dma7(b5) base-fret 0 frets x x 0 1 2 2","D/A#":"D/A# base-fret 0 frets x 1 4 2 3 2","D/D#":"D/D# base-fret 0 frets x x 1 2 3 2","D/F":"D/F base-fret 0 frets x x 3 2 3 2","D/G#":"D/G# base-fret 0 frets 4 x 4 2 3 2","Dm/A":"Dm/A base-fret 0 frets x x x 2 3 1","Dm/A#":"Dm/A# base-fret 0 frets x 1 3 2 3 1","Dm/B":"Dm/B base-fret 0 frets x 2 3 2 3 x","Dm/C":"Dm/C base-fret 0 frets x 3 3 2 3 x","Dm/C#":"Dm/C# base-fret 0 frets x 4 3 2 3 x","Dm/D#":"Dm/D# base-fret 0 frets x x 1 2 3 1","Dm/E":"Dm/E base-fret 0 frets 0 0 0 2 3 1","Dm/F#":"Dm/F# base-fret 0 frets 2 x 3 2 3 x","Dm/G":"Dm/G base-fret 0 frets 3 x 3 2 3 x","Dm/G#":"Dm/G# base-fret 0 frets 4 x 3 2 3 x","D#(4)":"D#(4) base-fret 3 frets x 4 4 1 2 1","D#m2":"D#m2 base-fret 3 frets x 4 2 1 4 4","D#dim":"D#dim base-fret 0 frets x x 1 2 4 2","D#m6":"D#m6 base-fret 0 frets x x 1 3 1 2","D#13sus4":"D#13sus4 base-fret 6 frets x 1 1 1 4 3","D#m(ma9)":"D#m(ma9) base-fret 4 frets x 3 1 4 3 x","D#m7(#5)":"D#m7(#5) base-fret 0 frets x x 1 4 2 2","D#ma7(#5)":"D#ma7(#5) base-fret 0 frets x x 1 4 3 3","D#ma7(b5)":"D#ma7(b5) base-fret 0 frets x x 1 2 3 3","D#9(#5)":"D#9(#5) base-fret 5 frets x 2 1 2 2 3","D#9(b5)":"D#9(b5) base-fret 5 frets x 2 1 2 2 1","D#/A":"D#/A base-fret 0 frets x 0 1 3 4 3","D#/B":"D#/B base-fret 0 frets x 2 1 3 4 3","D#/C":"D#/C base-fret 0 frets x 3 1 3 4 3","D#/C#":"D#/C# base-fret 0 frets x 4 x 3 4 3","D#/D":"D#/D base-fret 0 frets x x 0 3 4 3","D#/E":"D#/E base-fret 0 frets 0 x 1 3 4 3","D#/F":"D#/F base-fret 0 frets 1 1 1 3 4 3","D#/F#":"D#/F# base-fret 0 frets x x 4 3 4 3","D#/G":"D#/G base-fret 0 frets 3 1 1 3 4 x","D#/G#":"D#/G# base-fret 0 frets 4 x x 3 4 3","D#m/A":"D#m/A base-fret 0 frets x 0 4 3 4 2","D#m/A#":"D#m/A# base-fret 0 frets x 1 1 3 4 2","D#m/B":"D#m/B base-fret 0 frets x 2 4 3 4 2","D#m/C":"D#m/C base-fret 0 frets x 3 4 3 4 x","D#m/C#":"D#m/C# base-fret 0 frets x 4 4 3 4 x","D#m/D":"D#m/D base-fret 0 frets x x 0 3 4 2","D#m/E":"D#m/E base-fret 0 frets 0 x 4 3 4 2","D#m/F":"D#m/F base-fret 0 frets 1 1 1 3 4 2","D#m/F#":"D#m/F# base-fret 0 frets 2 x 4 3 4 2","D#m/G":"D#m/G base-fret 0 frets 3 1 1 3 x 2","D#m/G#":"D#m/G# base-fret 0 frets 4 1 1 3 x 2","E(4)":"E(4) base-fret 0 frets 0 0 2 1 0 0","Em2":"Em2 base-fret 0 frets 0 2 4 0 0 0","E13sus4":"E13sus4 base-fret 0 frets 0 0 0 2 2 2","Em(ma9)":"Em(ma9) base-fret 0 frets 0 2 1 0 0 2","Em7(#5)":"Em7(#5) base-fret 0 frets 0 3 0 0 3 0","Ema7(#5)":"Ema7(#5) base-fret 0 frets 0 3 2 1 4 0","Ema7(b5)":"Ema7(b5) base-fret 0 frets x x 2 3 4 4","E/A#":"E/A# base-fret 0 frets x 1 2 4 x 4","E/C":"E/C base-fret 0 frets x 3 2 4 x 4","E/F":"E/F base-fret 0 frets 1 2 2 1 x 4","E/G":"E/G base-fret 0 frets 3 2 2 4 x 4","Em/A":"Em/A base-fret 0 frets x 0 2 0 0 0","Em/A#":"Em/A# base-fret 0 frets x 1 2 4 x 3","Em/B":"Em/B base-fret 0 frets x 2 2 4 x 3","Em/C":"Em/C base-fret 0 frets x 3 2 4 x 3","Em/C#":"Em/C# base-fret 0 frets x 4 2 4 x 3","Em/D":"Em/D base-fret 0 frets x x 0 0 0 0","Em/D#":"Em/D# base-fret 0 frets x x 1 0 0 0","Em/F":"Em/F base-fret 0 frets 1 2 2 4 x 3","Em/F#":"Em/F# base-fret 0 frets x x 4 0 0 0","Em/G#":"Em/G# base-fret 0 frets 4 2 2 4 x 3","F(4)":"F(4) base-fret 0 frets 1 1 3 2 1 1","Fm2":"Fm2 base-fret 0 frets x x 3 1 1 3","F11":"F11 base-fret 0 frets 1 0 1 3 x x","F13sus4":"F13sus4 base-fret 0 frets 1 3 1 3 3 1","Fm(ma9)":"Fm(ma9) base-fret 0 frets 1 3 2 1 1 3","Fm7(#5)":"Fm7(#5) base-fret 0 frets 1 4 1 1 4 1","Fma7(#5)":"Fma7(#5) base-fret 0 frets 1 x 2 2 2 1","Fma7(b5)":"Fma7(b5) base-fret 0 frets 1 2 2 2 x 1","F/B":"F/B base-fret 0 frets x 2 3 2 1 1","F/C#":"F/C# base-fret 0 frets x 4 3 2 1 1","F/F#":"F/F# base-fret 0 frets 2 x 3 2 1 1","F/G#":"F/G# base-fret 0 frets 4 3 x 2 1 1","Fm/A":"Fm/A base-fret 0 frets x 0 3 1 1 1","Fm/A#":"Fm/A# base-fret 0 frets x 1 3 1 1 1","Fm/B":"Fm/B base-fret 0 frets x 2 3 1 1 1","Fm/C":"Fm/C base-fret 0 frets x 3 3 1 1 1","Fm/C#":"Fm/C# base-fret 0 frets x 4 3 1 1 1","Fm/D":"Fm/D base-fret 0 frets x x 0 1 1 1","Fm/D#":"Fm/D# base-fret 0 frets x x 1 1 1 1","Fm/E":"Fm/E base-fret 0 frets 0 3 3 1 1 1","Fm/F#":"Fm/F# base-fret 0 frets 2 3 3 1 1 1","Fm/G":"Fm/G base-fret 0 frets 3 3 3 1 1 1","Fm/G#":"Fm/G# base-fret 0 frets x x x 1 1 1","F#(4)":"F#(4) base-fret 0 frets 2 2 4 3 2 2","F#m2":"F#m2 base-fret 0 frets x x 4 2 2 4","F#aug":"F#aug base-fret 0 frets 2 x 4 3 3 2","F#dim":"F#dim base-fret 0 frets 2 3 4 2 x x","F#11":"F#11 base-fret 0 frets 2 1 2 4 x x","F#13sus4":"F#13sus4 base-fret 0 frets 2 4 2 4 4 2","F#m(ma9)":"F#m(ma9) base-fret 0 frets 2 4 3 2 2 4","F#m7(#5)":"F#m7(#5) base-fret 0 frets 2 x 2 2 3 2","F#ma7(#5)":"F#ma7(#5) base-fret 0 frets 2 x 3 3 3 2","F#ma7(b5)":"F#ma7(b5) base-fret 0 frets 2 1 3 3 1 1","F#/A":"F#/A base-fret 0 frets x 0 4 3 2 2","F#/A#":"F#/A# base-fret 0 frets x x x 3 2 2","F#/B":"F#/B base-fret 0 frets x 2 4 3 2 2","F#/C":"F#/C base-fret 0 frets x 3 4 3 2 2","F#/D":"F#/D base-fret 0 frets x x 0 3 2 2","F#/D#":"F#/D# base-fret 0 frets x x 1 3 2 2","F#/E":"F#/E base-fret 0 frets 0 4 4 3 2 2","F#/F":"F#/F base-fret 0 frets x x 3 3 2 2","F#/G":"F#/G base-fret 0 frets 3 x 4 3 2 2","F#/G#":"F#/G# base-fret 0 frets 4 x 4 3 2 2","F#m/A#":"F#m/A# base-fret 0 frets x 1 4 2 2 2","F#m/B":"F#m/B base-fret 0 frets x 2 4 2 2 2","F#m/C":"F#m/C base-fret 0 frets x 3 4 2 2 2","F#m/C#":"F#m/C# base-fret 0 frets x 4 4 2 2 2","F#m/D":"F#m/D base-fret 0 frets x x 0 2 2 2","F#m/D#":"F#m/D# base-fret 0 frets x x 1 2 2 2","F#m/E":"F#m/E base-fret 0 frets 0 0 4 2 2 2","F#m/F":"F#m/F base-fret 0 frets x x 3 2 2 2","F#m/G":"F#m/G base-fret 0 frets 3 4 4 2 2 2","F#m/G#":"F#m/G# base-fret 0 frets 4 4 4 2 2 2","G(4)":"G(4) base-fret 0 frets 3 3 x 4 3 3","Gm2":"Gm2 base-fret 0 frets 3 1 x 2 3 x","G13sus4":"G13sus4 base-fret 0 frets 3 3 3 0 3 0","Gm(ma9)":"Gm(ma9) base-fret 0 frets 3 1 4 2 x x","Gm7(#5)":"Gm7(#5) base-fret 0 frets 3 1 1 3 4 1","Gma7(#5)":"Gma7(#5) base-fret 0 frets 3 2 4 x 4 2","Gma7(b5)":"Gma7(b5) base-fret 0 frets 3 2 4 4 2 2","G/A#":"G/A# base-fret 0 frets x 1 x 4 3 3","G/C#":"G/C# base-fret 0 frets x 4 x 4 3 3","G/D#":"G/D# base-fret 0 frets x x 1 4 3 3","G/G#":"G/G# base-fret 0 frets 4 x x 4 3 3","Gm/A":"Gm/A base-fret 0 frets x 0 0 3 3 3","Gm/A#":"Gm/A# base-fret 0 frets x x x 3 3 3","Gm/B":"Gm/B base-fret 0 frets x 2 x 3 3 3","Gm/C":"Gm/C base-fret 0 frets x 3 x 3 3 3","Gm/C#":"Gm/C# base-fret 0 frets x 4 x 3 3 3","Gm/D":"Gm/D base-fret 0 frets x x 0 3 3 3","Gm/D#":"Gm/D# base-fret 0 frets x x 1 3 3 3","Gm/E":"Gm/E base-fret 0 frets 0 1 0 0 x x","Gm/F":"Gm/F base-fret 0 frets x x 3 3 3 3","Gm/F#":"Gm/F# base-fret 0 frets x x 4 3 3 3","Gm/G#":"Gm/G# base-fret 0 frets 4 x x 3 3 3","G#(4)":"G#(4) base-fret 0 frets 4 3 1 1 2 x","G#m2":"G#m2 base-fret 0 frets 4 1 1 4 4 x","G#aug":"G#aug base-fret 0 frets 4 x 2 1 1 4","G#dim":"G#dim base-fret 0 frets 4 2 x 4 3 x","G#13sus4":"G#13sus4 base-fret 0 frets 4 x 4 1 2 1","G#m(ma9)":"G#m(ma9) base-fret 0 frets 4 2 x 3 4 3","G#m7(#5)":"G#m7(#5) base-fret 0 frets 4 2 2 4 x 2","G#ma7(#5)":"G#ma7(#5) base-fret 0 frets 4 x 2 1 1 3","G#ma7(b5)":"G#ma7(b5) base-fret 0 frets 4 3 x 1 3 3","G#/A":"G#/A base-fret 0 frets x 0 1 1 1 x","G#/A#":"G#/A# base-fret 0 frets x 1 1 1 1 4","G#/B":"G#/B base-fret 0 frets x 2 1 1 1 4","G#/C":"G#/C base-fret 0 frets x 3 1 1 4 x","G#/C#":"G#/C# base-fret 0 frets x 4 1 1 1 4","G#/D":"G#/D base-fret 3 frets x 3 4 3 2 2","G#/E":"G#/E base-fret 0 frets 0 3 1 1 x x","G#/F":"G#/F base-fret 0 frets 1 3 1 1 1 4","G#/F#":"G#/F# base-fret 0 frets 2 3 1 1 4 x","G#/G":"G#/G base-fret 0 frets 3 3 1 1 4 x","G#m/A":"G#m/A base-fret 0 frets x 0 1 4 4 4","G#m/A#":"G#m/A# base-fret 0 frets x 1 1 4 4 4","G#m/B":"G#m/B base-fret 0 frets x x x 4 4 4","G#m/C":"G#m/C base-fret 0 frets x 3 1 4 4 4","G#m/C#":"G#m/C# base-fret 0 frets x 4 x 4 4 4","G#m/D":"G#m/D base-fret 0 frets x x 0 4 4 4","G#m/D#":"G#m/D# base-fret 0 frets x x 1 4 4 4","G#m/E":"G#m/E base-fret 0 frets 0 2 1 1 0 x","G#m/F":"G#m/F base-fret 0 frets 1 2 1 1 4 x","G#m/F#":"G#m/F# base-fret 0 frets x x 4 4 4 4","G#m/G":"G#m/G base-fret 0 frets 3 2 1 1 4 x","Am(4)":"Am(4) base-fret 0 frets x 0 0 2 1 0","Am6/9":"Am6/9 base-fret 0 frets x 0 4 4 1 2","Am6/7":"Am6/7 base-fret 0 frets x 0 2 0 1 2","Am7(4)":"Am7(4) base-fret 0 frets x 0 0 0 1 0","Ama11":"Ama11 base-fret 3 frets 3 2 4 x 1 x","Ama13":"Ama13 base-fret 0 frets x 0 2 1 2 2","A#m(4)":"A#m(4) base-fret 0 frets x 1 1 3 2 1","A#m6/9":"A#m6/9 base-fret 3 frets 4 2 1 3 x 1","A#m6/7":"A#m6/7 base-fret 0 frets x 1 3 1 2 3","A#m7(4)":"A#m7(4) base-fret 0 frets x 1 1 1 2 1","A#ma11":"A#ma11 base-fret 0 frets x 1 0 2 4 x","A#ma13":"A#ma13 base-fret 0 frets x 1 3 2 3 3","Bm(4)":"Bm(4) base-fret 0 frets x 2 2 4 3 2","Bm6/9":"Bm6/9 base-fret 0 frets x 2 0 1 2 2","Bm6/7":"Bm6/7 base-fret 0 frets x 2 4 2 3 4","Bm7(4)":"Bm7(4) base-fret 0 frets x 2 2 2 3 2","Bma11":"Bma11 base-fret 0 frets x 2 1 3 0 0","Bma13":"Bma13 base-fret 0 frets x 2 4 3 4 4","Cm(4)":"Cm(4) base-fret 0 frets x 3 3 x 4 3","Cm6/9":"Cm6/9 base-fret 0 frets x 3 1 2 3 x","Cm6/7":"Cm6/7 base-fret 3 frets x 1 3 1 2 3","Cm7(4)":"Cm7(4) base-fret 0 frets x 3 1 3 1 1","Cma11":"Cma11 base-fret 0 frets x 3 2 4 1 1","Cma13":"Cma13 base-fret 2 frets x 2 1 3 4 4","C#m(4)":"C#m(4) base-fret 0 frets x 4 2 1 2 2","C#m6/9":"C#m6/9 base-fret 0 frets x 4 2 3 4 4","C#m6/7":"C#m6/7 base-fret 0 frets x 4 2 3 0 0","C#m7(4)":"C#m7(4) base-fret 0 frets x 4 2 4 2 2","C#ma11":"C#ma11 base-fret 0 frets x 4 3 1 1 2","C#ma13":"C#ma13 base-fret 3 frets x 2 4 3 4 4","Dm(4)":"Dm(4) base-fret 2 frets x 4 2 1 2 2","Dm6/9":"Dm6/9 base-fret 2 frets x 4 2 1 0 0","Dm6/7":"Dm6/7 base-fret 0 frets x x 0 4 1 1","Dm7(4)":"Dm7(4) base-fret 0 frets x x 0 0 1 1","Dma11":"Dma11 base-fret 2 frets x 4 3 1 1 2","Dma13":"Dma13 base-fret 4 frets x 2 1 3 4 4","D#m(4)":"D#m(4) base-fret 3 frets x 4 2 1 2 2","D#m6/9":"D#m6/9 base-fret 3 frets x 4 2 3 4 4","D#m6/7":"D#m6/7 base-fret 5 frets x 2 4 2 3 4","D#m7(4)":"D#m7(4) base-fret 0 frets x x 1 1 2 2","D#ma11":"D#ma11 base-fret 0 frets x x 1 0 3 4","D#ma13":"D#ma13 base-fret 5 frets x 2 4 3 4 4","Em(4)":"Em(4) base-fret 0 frets 0 0 2 0 0 0","Em6/9":"Em6/9 base-fret 0 frets 0 2 2 0 2 2","Em6/7":"Em6/7 base-fret 0 frets 0 4 0 0 0 0","Em7(4)":"Em7(4) base-fret 0 frets x x 2 2 3 3","Ema11":"Ema11 base-fret 0 frets 0 x 4 2 4 4","Ema13":"Ema13 base-fret 0 frets 0 2 1 1 2 0","Fm(4)":"Fm(4) base-fret 0 frets 1 1 3 1 1 1","Fm6/9":"Fm6/9 base-fret 0 frets 1 3 x 1 3 3","Fm6/7":"Fm6/7 base-fret 0 frets 1 3 1 1 3 1","Fm7(4)":"Fm7(4) base-fret 0 frets 1 1 1 1 1 1","Fma11":"Fma11 base-fret 0 frets 1 0 2 3 1 0","Fma13":"Fma13 base-fret 0 frets 1 x 2 2 3 1","F#m(4)":"F#m(4) base-fret 0 frets 2 2 4 2 2 2","F#m6/9":"F#m6/9 base-fret 0 frets 2 x 4 2 4 4","F#m6/7":"F#m6/7 base-fret 0 frets 2 4 2 2 4 2","F#m7(4)":"F#m7(4) base-fret 0 frets 2 2 2 2 2 2","F#ma11":"F#ma11 base-fret 0 frets 2 1 3 4 x 1","F#ma13":"F#ma13 base-fret 0 frets 2 1 3 1 4 1","Gm(4)":"Gm(4) base-fret 0 frets 3 3 x 3 3 3","Gm6/9":"Gm6/9 base-fret 0 frets 3 1 2 2 3 x","Gm6/7":"Gm6/7 base-fret 0 frets 3 1 2 3 x 1","Gm7(4)":"Gm7(4) base-fret 0 frets 3 3 3 3 3 3","Gma11":"Gma11 base-fret 0 frets 3 2 4 x 1 x","Gma13":"Gma13 base-fret 0 frets 3 2 4 0 0 0","G#m(4)":"G#m(4) base-fret 0 frets 4 2 1 1 2 x","G#m6/9":"G#m6/9 base-fret 0 frets 4 2 1 3 x 1","G#m6/7":"G#m6/7 base-fret 0 frets 4 2 3 4 x 2","G#m7(4)":"G#m7(4) base-fret 0 frets 4 4 4 4 4 4","G#ma11":"G#ma11 base-fret 0 frets 4 3 x x 2 3","G#ma13":"G#ma13 base-fret 0 frets 4 3 x 0 2 1"}');
10115
+ var $4ff43932a550a629$var$ChordDefinitionSet = class _$4ff43932a550a629$var$ChordDefinitionSet {
10116
+ constructor(definitions) {
10117
+ this.definitions = definitions || {};
10118
+ }
10119
+ get(chord) {
10120
+ return this.definitions[chord] || null;
10121
+ }
10122
+ withDefaults() {
10123
+ const defaultDefinitions = (0, /* @__PURE__ */ $parcel$interopDefault($5761643905a98621$exports));
10124
+ const clone = this.clone();
10125
+ Object.keys(defaultDefinitions).forEach((chord) => {
10126
+ const definition = (0, $6c1ed1378c3b5965$export$2e2bcd8739ae039).parse(defaultDefinitions[chord]);
10127
+ if (!clone.has(chord)) clone.add(chord, definition);
10128
+ });
10129
+ return clone;
10130
+ }
10131
+ add(chord, definition) {
10132
+ this.definitions[chord] = definition;
10133
+ }
10134
+ has(chord) {
10135
+ return chord in this.definitions;
10136
+ }
10137
+ clone() {
10138
+ const clone = new _$4ff43932a550a629$var$ChordDefinitionSet();
10139
+ Object.keys(this.definitions).forEach((chord) => {
10140
+ clone.add(chord, this.definitions[chord].clone());
10141
+ });
10142
+ return clone;
10143
+ }
10144
+ };
10145
+ var $4ff43932a550a629$export$2e2bcd8739ae039 = $4ff43932a550a629$var$ChordDefinitionSet;
10081
10146
  var $c53141c05fae8382$var$Song = class _$c53141c05fae8382$var$Song extends (0, $9047ab737bb447ce$export$2e2bcd8739ae039) {
10082
10147
  /**
10083
10148
  * Creates a new {Song} instance
10084
- * @param metadata {Object|Metadata} predefined metadata
10149
+ * @param metadata {Record<string, string | string[]>|Metadata} predefined metadata
10085
10150
  */
10086
10151
  constructor(metadata = {}) {
10087
10152
  super(), /**
@@ -10119,7 +10184,7 @@ to a key`);
10119
10184
  }
10120
10185
  expandLine(line) {
10121
10186
  const expandedLines = line.items.flatMap((item) => {
10122
- if (item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039) && item.name === (0, $7251dad5f4a4c35f$export$8db6c706fc9142b2)) return this.getLastChorusBefore(line.lineNumber);
10187
+ if (item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039) && item.name === (0, $dce48cb70c4120bb$export$8db6c706fc9142b2)) return this.getLastChorusBefore(line.lineNumber);
10123
10188
  return [];
10124
10189
  });
10125
10190
  return [
@@ -10142,7 +10207,7 @@ to a key`);
10142
10207
  filterChorusStartEndDirectives(line) {
10143
10208
  return line.mapItems((item) => {
10144
10209
  if (item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039)) {
10145
- if (item.name === (0, $7251dad5f4a4c35f$export$4f5168acae064e01) || item.name === (0, $7251dad5f4a4c35f$export$473c1a4819e5180b)) return null;
10210
+ if (item.name === (0, $d21c5c7a462f3c34$export$4f5168acae064e01) || item.name === (0, $d21c5c7a462f3c34$export$473c1a4819e5180b)) return null;
10146
10211
  }
10147
10212
  return item;
10148
10213
  });
@@ -10202,7 +10267,7 @@ to a key`);
10202
10267
  */
10203
10268
  setKey(key) {
10204
10269
  const strKey = key ? key.toString() : null;
10205
- return this.changeMetadata((0, $7251dad5f4a4c35f$export$7167c830cefcb6b5), strKey);
10270
+ return this.changeMetadata((0, $d21c5c7a462f3c34$export$7167c830cefcb6b5), strKey);
10206
10271
  }
10207
10272
  /**
10208
10273
  * Returns a copy of the song with the key value set to the specified capo. It changes:
@@ -10215,7 +10280,7 @@ to a key`);
10215
10280
  */
10216
10281
  setCapo(capo) {
10217
10282
  const strCapo = capo ? capo.toString() : null;
10218
- return this.changeMetadata((0, $7251dad5f4a4c35f$export$866f445d49bad88e), strCapo);
10283
+ return this.changeMetadata((0, $d21c5c7a462f3c34$export$866f445d49bad88e), strCapo);
10219
10284
  }
10220
10285
  setDirective(name, value) {
10221
10286
  if (value === null) return this.removeItem((item) => item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039) && item.name === name);
@@ -10237,7 +10302,7 @@ to a key`);
10237
10302
  let transposedKey = null;
10238
10303
  const song = this;
10239
10304
  return song.mapItems((item) => {
10240
- if (item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039) && item.name === (0, $7251dad5f4a4c35f$export$7167c830cefcb6b5)) {
10305
+ if (item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039) && item.name === (0, $d21c5c7a462f3c34$export$7167c830cefcb6b5)) {
10241
10306
  transposedKey = (0, $c2d6ab25ad00308f$export$2e2bcd8739ae039).wrapOrFail(item.value).transpose(delta);
10242
10307
  if (modifier) transposedKey = transposedKey.useModifier(modifier);
10243
10308
  return item.set({
@@ -10314,14 +10379,37 @@ to a key`);
10314
10379
  * @returns {Song} the changed song
10315
10380
  */
10316
10381
  useModifier(modifier) {
10382
+ const { currentKey } = this;
10383
+ let changedSong = this.mapChordLyricsPairs((pair) => pair.useModifier(modifier));
10384
+ if (currentKey && currentKey.modifier !== modifier) changedSong = changedSong.changeKey(currentKey.useModifier(modifier));
10385
+ return changedSong;
10386
+ }
10387
+ /**
10388
+ * Returns a copy of the song with all chords normalized to the specified key. See {@link Chord#normalize}.
10389
+ * @param key the key to normalize to
10390
+ * @param options options
10391
+ * @param options.normalizeSuffix whether to normalize the chord suffixes
10392
+ */
10393
+ normalizeChords(key = null, { normalizeSuffix = true } = {}) {
10394
+ return this.changeChords((chord) => chord.normalize(key, {
10395
+ normalizeSuffix
10396
+ }));
10397
+ }
10398
+ mapChordLyricsPairs(func) {
10317
10399
  return this.mapItems((item) => {
10318
- if (item instanceof (0, $551a223fc13b5c10$export$2e2bcd8739ae039)) return item.useModifier(modifier);
10400
+ if (item instanceof (0, $551a223fc13b5c10$export$2e2bcd8739ae039)) return func(item);
10319
10401
  return item;
10320
10402
  });
10321
10403
  }
10404
+ changeChords(func) {
10405
+ return this.mapChordLyricsPairs((pair) => pair.changeChord(func));
10406
+ }
10407
+ get currentKey() {
10408
+ return (0, $c2d6ab25ad00308f$export$2e2bcd8739ae039).wrap(this.key);
10409
+ }
10322
10410
  requireCurrentKey() {
10323
- const wrappedKey = (0, $c2d6ab25ad00308f$export$2e2bcd8739ae039).wrap(this.key);
10324
- if (!wrappedKey) throw new Error(`
10411
+ const { currentKey } = this;
10412
+ if (!currentKey) throw new Error(`
10325
10413
  Cannot change song key, the original key is unknown.
10326
10414
 
10327
10415
  Either ensure a key directive is present in the song (when using chordpro):
@@ -10329,7 +10417,7 @@ Either ensure a key directive is present in the song (when using chordpro):
10329
10417
 
10330
10418
  Or set the song key before changing key:
10331
10419
  \`song.setKey('C');\``.substring(1));
10332
- return wrappedKey;
10420
+ return currentKey;
10333
10421
  }
10334
10422
  /**
10335
10423
  * Returns a copy of the song with the directive value set to the specified value.
@@ -10428,6 +10516,9 @@ Or set the song key before changing key:
10428
10516
  });
10429
10517
  return chordDefinitions;
10430
10518
  }
10519
+ get chordDefinitions() {
10520
+ return new (0, $4ff43932a550a629$export$2e2bcd8739ae039)(this.getChordDefinitions());
10521
+ }
10431
10522
  /**
10432
10523
  * Change the song contents inline. Return a new {@link Line} to replace it. Return `null` to remove it.
10433
10524
  * @example
@@ -10626,7 +10717,7 @@ Or set the song key before changing key:
10626
10717
  }, attributes);
10627
10718
  tag.selector = selector || null;
10628
10719
  tag.isNegated = isNegated || false;
10629
- if (chordDefinition) tag.chordDefinition = new (0, $36ec5eba476f1300$export$2e2bcd8739ae039)(chordDefinition.name, chordDefinition.baseFret, chordDefinition.frets, chordDefinition.fingers);
10720
+ if (chordDefinition) tag.chordDefinition = new (0, $6c1ed1378c3b5965$export$2e2bcd8739ae039)(chordDefinition.name, chordDefinition.baseFret, chordDefinition.frets, chordDefinition.fingers);
10630
10721
  return tag;
10631
10722
  }
10632
10723
  parseComment(astComponent) {
@@ -10868,7 +10959,7 @@ Or set the song key before changing key:
10868
10959
  return string.replace(/\n/g, "<br>");
10869
10960
  }
10870
10961
  function $f9c5006b26957916$export$4c0287abd2ec956e(paragraph, configuration) {
10871
- const delegate = configuration.delegates[paragraph.type] || (0, $1900e9488433afb1$export$f152539e8297cacc);
10962
+ const delegate = configuration.delegates[paragraph.type] || (0, $2c1f35091b79c8d2$export$f152539e8297cacc);
10872
10963
  return delegate(paragraph.contents);
10873
10964
  }
10874
10965
  function $f9c5006b26957916$export$79b2f7037acddd43(collection, callback) {
@@ -10880,22 +10971,22 @@ Or set the song key before changing key:
10880
10971
  function $f9c5006b26957916$export$b8d631d9200974fa(line) {
10881
10972
  return line.items.some((item) => item instanceof (0, $551a223fc13b5c10$export$2e2bcd8739ae039) && !(0, $28a2fcb6fb95a147$export$78d1711480f95c3e)(item.lyrics) || item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039) && item.isRenderable() || (0, $28a2fcb6fb95a147$export$e3f63561d52b936d)(item));
10882
10973
  }
10883
- function $f9c5006b26957916$export$8a559c16cc3576(line) {
10974
+ function $f9c5006b26957916$export$8a559c16cc3576(line, cssClasses) {
10884
10975
  const classes = [
10885
- "row"
10976
+ cssClasses.row
10886
10977
  ];
10887
- if (!$f9c5006b26957916$export$3db5961874282581(line)) classes.push("empty-line");
10978
+ if (!$f9c5006b26957916$export$3db5961874282581(line)) classes.push(cssClasses.emptyLine);
10888
10979
  return classes.join(" ");
10889
10980
  }
10890
- function $f9c5006b26957916$export$dcd1550c9709312c(paragraph) {
10981
+ function $f9c5006b26957916$export$dcd1550c9709312c(paragraph, cssClasses) {
10891
10982
  const classes = [
10892
- "paragraph"
10983
+ cssClasses.paragraph
10893
10984
  ];
10894
10985
  if (paragraph.type !== (0, $dce48cb70c4120bb$export$c5a6fe907430212e) && paragraph.type !== (0, $dce48cb70c4120bb$export$c53d0f541b41b88e)) classes.push(paragraph.type);
10895
10986
  return classes.join(" ");
10896
10987
  }
10897
10988
  function $f9c5006b26957916$export$fef61f332f2c0afc(item, metadata, configuration) {
10898
- return item.evaluate(metadata, configuration.metadataSeparator);
10989
+ return item.evaluate(metadata, configuration.metadata.separator);
10899
10990
  }
10900
10991
  function $f9c5006b26957916$export$ca030c9435779e4b(font) {
10901
10992
  const cssString = font.toCssString();
@@ -23188,7 +23279,61 @@ Or set the song key before changing key:
23188
23279
  }
23189
23280
  };
23190
23281
  var $df9247d334a0483e$export$2e2bcd8739ae039 = $df9247d334a0483e$var$ChordsOverWordsParser;
23282
+ var $fb7c3e115538fcf2$export$2969e7e19d88b575 = {
23283
+ annotation: "annotation",
23284
+ chord: "chord",
23285
+ chordSheet: "chord-sheet",
23286
+ column: "column",
23287
+ comment: "comment",
23288
+ emptyLine: "empty-line",
23289
+ label: "label",
23290
+ labelWrapper: "label-wrapper",
23291
+ line: "line",
23292
+ literal: "literal",
23293
+ literalContents: "contents",
23294
+ lyrics: "lyrics",
23295
+ paragraph: "paragraph",
23296
+ row: "row",
23297
+ subtitle: "subtitle",
23298
+ title: "title"
23299
+ };
23191
23300
  var $fb7c3e115538fcf2$var$HtmlFormatter = class extends (0, $ed0d9ddbbe7224cd$export$2e2bcd8739ae039) {
23301
+ /**
23302
+ * Instantiate the formatter. For all options see {@link Formatter}
23303
+ * @param {Object} [configuration={}] options
23304
+ * @param {object} [configuration.cssClasses={}] CSS classes to use in the HTML output. The default classes are
23305
+ * defined in {@link defaultCssClasses}. You can override them by providing your own classes here:
23306
+ * @example
23307
+ * ```javascript
23308
+ * {
23309
+ * cssClasses: {
23310
+ * annotation: 'my-annotation',
23311
+ * chord: 'my-chord',
23312
+ * chordSheet: 'my-chord-sheet',
23313
+ * column: 'my-column',
23314
+ * comment: 'my-comment',
23315
+ * emptyLine: 'my-empty-line',
23316
+ * label: 'my-label',
23317
+ * labelWrapper: 'my-label-wrapper',
23318
+ * line: 'my-line',
23319
+ * literal: 'my-literal',
23320
+ * literalContents: 'my-contents',
23321
+ * lyrics: 'my-lyrics',
23322
+ * paragraph: 'my-paragraph',
23323
+ * row: 'my-row',
23324
+ * subtitle: 'my-subtitle',
23325
+ * title: 'my-title',
23326
+ * }
23327
+ * }
23328
+ * ```
23329
+ */
23330
+ constructor(configuration = {}) {
23331
+ super(configuration);
23332
+ this.cssClasses = {
23333
+ ...$fb7c3e115538fcf2$export$2969e7e19d88b575,
23334
+ ...configuration.cssClasses
23335
+ };
23336
+ }
23192
23337
  /**
23193
23338
  * Formats a song into HTML.
23194
23339
  * @param {Song} song The song to be formatted
@@ -23199,7 +23344,8 @@ Or set the song key before changing key:
23199
23344
  return this.template({
23200
23345
  song,
23201
23346
  configuration: this.configuration,
23202
- bodyParagraphs: this.configuration.expandChorusDirective ? expandedBodyParagraphs : bodyParagraphs
23347
+ bodyParagraphs: this.configuration.expandChorusDirective ? expandedBodyParagraphs : bodyParagraphs,
23348
+ cssClasses: this.cssClasses
23203
23349
  });
23204
23350
  }
23205
23351
  /**
@@ -23215,7 +23361,7 @@ Or set the song key before changing key:
23215
23361
  * @returns {string} the CSS string
23216
23362
  */
23217
23363
  cssString(scope = "") {
23218
- return (0, $28a2fcb6fb95a147$export$59d377d2a2e0150a)(this.defaultCss, scope);
23364
+ return (0, $28a2fcb6fb95a147$export$59d377d2a2e0150a)(this.cssObject, scope);
23219
23365
  }
23220
23366
  /**
23221
23367
  * Basic CSS, in object style à la useStyles, to use with the HTML output
@@ -23234,34 +23380,34 @@ Or set the song key before changing key:
23234
23380
  }
23235
23381
  };
23236
23382
  var $fb7c3e115538fcf2$export$2e2bcd8739ae039 = $fb7c3e115538fcf2$var$HtmlFormatter;
23237
- var $1408adfd7317f0b6$export$2e2bcd8739ae039 = ({ configuration, configuration: { key }, song, renderBlankLines = false, song: { title, subtitle, metadata }, bodyParagraphs }) => (0, $f9c5006b26957916$export$6ea1b0eb82ead3f)(`
23238
- ${(0, $f9c5006b26957916$export$a55877ca9db47377)(title, () => `<h1>${title}</h1>`)}
23239
- ${(0, $f9c5006b26957916$export$a55877ca9db47377)(subtitle, () => `<h2>${subtitle}</h2>`)}
23383
+ var $1408adfd7317f0b6$export$2e2bcd8739ae039 = ({ configuration, configuration: { key }, song, renderBlankLines = false, song: { title, subtitle, metadata }, bodyParagraphs, cssClasses: c }) => (0, $f9c5006b26957916$export$6ea1b0eb82ead3f)(`
23384
+ ${(0, $f9c5006b26957916$export$a55877ca9db47377)(title, () => `<h1 class="${c.title}">${title}</h1>`)}
23385
+ ${(0, $f9c5006b26957916$export$a55877ca9db47377)(subtitle, () => `<h2 class="${c.subtitle}">${subtitle}</h2>`)}
23240
23386
 
23241
- <div class="chord-sheet">
23387
+ <div class="${c.chordSheet}">
23242
23388
  ${(0, $f9c5006b26957916$export$79b2f7037acddd43)(bodyParagraphs, (paragraph) => `
23243
- <div class="${(0, $f9c5006b26957916$export$dcd1550c9709312c)(paragraph)}">
23389
+ <div class="${(0, $f9c5006b26957916$export$dcd1550c9709312c)(paragraph, c)}">
23244
23390
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(paragraph.isLiteral(), () => `
23245
23391
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $28a2fcb6fb95a147$export$ee27c052bca048fb)(paragraph.label), () => `
23246
- <div class="row">
23247
- <h3 class="label">${paragraph.label}</h3>
23392
+ <div class="${c.row}">
23393
+ <h3 class="${c.label}">${paragraph.label}</h3>
23248
23394
  </div>
23249
23395
  `)}
23250
23396
 
23251
- <div class="row">
23252
- <div class="literal">${(0, $f9c5006b26957916$export$e2953cc935d48476)((0, $f9c5006b26957916$export$4c0287abd2ec956e)(paragraph, configuration))}</div>
23397
+ <div class="${c.row}">
23398
+ <div class="${c.literal}">${(0, $f9c5006b26957916$export$e2953cc935d48476)((0, $f9c5006b26957916$export$4c0287abd2ec956e)(paragraph, configuration))}</div>
23253
23399
  </div>
23254
23400
  `).else(() => `
23255
23401
  ${(0, $f9c5006b26957916$export$79b2f7037acddd43)(paragraph.lines, (line) => `
23256
23402
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(renderBlankLines || (0, $f9c5006b26957916$export$3db5961874282581)(line), () => `
23257
- <div class="${(0, $f9c5006b26957916$export$8a559c16cc3576)(line)}">
23403
+ <div class="${(0, $f9c5006b26957916$export$8a559c16cc3576)(line, c)}">
23258
23404
  ${(0, $f9c5006b26957916$export$79b2f7037acddd43)(line.items, (item) => `
23259
23405
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$17c9e635b932873b)(item), () => `
23260
- <div class="column">
23406
+ <div class="${c.column}">
23261
23407
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(item.annotation).then(() => `
23262
- <div class="annotation"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${item.annotation}</div>
23408
+ <div class="${c.annotation}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${item.annotation}</div>
23263
23409
  `).else(() => `
23264
- <div class="chord"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>
23410
+ <div class="${c.chord}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>
23265
23411
  ${(0, $2ce1086ce25c9ac0$export$596ec52955da9472)(item.chords, line, song, {
23266
23412
  renderKey: key,
23267
23413
  useUnicodeModifier: configuration.useUnicodeModifiers,
@@ -23270,20 +23416,20 @@ Or set the song key before changing key:
23270
23416
  })}
23271
23417
  </div>
23272
23418
  `)}
23273
- <div class="lyrics"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.lyrics}</div>
23419
+ <div class="${c.lyrics}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.lyrics}</div>
23274
23420
  </div>
23275
23421
  `).elseWhen((0, $f9c5006b26957916$export$3bf645f08efe3292)(item), () => `
23276
23422
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$3ab01370f5e64ac8)(item), () => `
23277
- <div class="comment">${item.value}</div>
23423
+ <div class="${c.comment}">${item.value}</div>
23278
23424
  `)}
23279
23425
 
23280
23426
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(item.hasRenderableLabel(), () => `
23281
- <h3 class="label">${item.label}</h3>
23427
+ <h3 class="${c.label}">${item.label}</h3>
23282
23428
  `)}
23283
23429
  `).elseWhen((0, $28a2fcb6fb95a147$export$e3f63561d52b936d)(item), () => `
23284
- <div class="column">
23285
- <div class="chord"></div>
23286
- <div class="lyrics"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>
23430
+ <div class="${c.column}">
23431
+ <div class="${c.chord}"></div>
23432
+ <div class="${c.lyrics}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>
23287
23433
  ${(0, $f9c5006b26957916$export$fef61f332f2c0afc)(item, metadata, configuration)}
23288
23434
  </div>
23289
23435
  </div>
@@ -23297,68 +23443,71 @@ Or set the song key before changing key:
23297
23443
  `)}
23298
23444
  </div>
23299
23445
  `);
23300
- var $d9bea8c73e9a5034$var$defaultCss = {
23301
- ".chord:not(:last-child)": {
23302
- paddingRight: "10px"
23303
- },
23304
- ".paragraph": {
23305
- marginBottom: "1em"
23306
- },
23307
- ".row": {
23308
- display: "flex"
23309
- },
23310
- ".chord:after": {
23311
- content: "'\\200b'"
23312
- },
23313
- ".lyrics:after": {
23314
- content: "'\\200b'"
23315
- }
23316
- };
23446
+ function $d9bea8c73e9a5034$var$defaultCss(cssClasses) {
23447
+ const { chord, lyrics, paragraph, row } = cssClasses;
23448
+ return {
23449
+ [`.${chord}:not(:last-child)`]: {
23450
+ paddingRight: "10px"
23451
+ },
23452
+ [`.${paragraph}`]: {
23453
+ marginBottom: "1em"
23454
+ },
23455
+ [`.${row}`]: {
23456
+ display: "flex"
23457
+ },
23458
+ [`.${chord}:after`]: {
23459
+ content: "'\\200b'"
23460
+ },
23461
+ [`.${lyrics}:after`]: {
23462
+ content: "'\\200b'"
23463
+ }
23464
+ };
23465
+ }
23317
23466
  var $d9bea8c73e9a5034$var$HtmlDivFormatter = class extends (0, $fb7c3e115538fcf2$export$2e2bcd8739ae039) {
23318
23467
  get template() {
23319
23468
  return 0, $1408adfd7317f0b6$export$2e2bcd8739ae039;
23320
23469
  }
23321
23470
  get defaultCss() {
23322
- return $d9bea8c73e9a5034$var$defaultCss;
23471
+ return $d9bea8c73e9a5034$var$defaultCss(this.cssClasses);
23323
23472
  }
23324
23473
  };
23325
23474
  var $d9bea8c73e9a5034$export$2e2bcd8739ae039 = $d9bea8c73e9a5034$var$HtmlDivFormatter;
23326
- var $396f7048979e89c9$export$2e2bcd8739ae039 = ({ configuration, configuration: { key }, song, renderBlankLines = false, song: { title, subtitle, bodyLines, metadata }, bodyParagraphs }) => (0, $f9c5006b26957916$export$6ea1b0eb82ead3f)(`
23327
- ${(0, $f9c5006b26957916$export$a55877ca9db47377)(title, () => `<h1>${title}</h1>`)}
23328
- ${(0, $f9c5006b26957916$export$a55877ca9db47377)(subtitle, () => `<h2>${subtitle}</h2>`)}
23475
+ var $396f7048979e89c9$export$2e2bcd8739ae039 = ({ configuration, configuration: { key }, song, renderBlankLines = false, song: { title, subtitle, bodyLines, metadata }, bodyParagraphs, cssClasses: c }) => (0, $f9c5006b26957916$export$6ea1b0eb82ead3f)(`
23476
+ ${(0, $f9c5006b26957916$export$a55877ca9db47377)(title, () => `<h1 class="${c.title}">${title}</h1>`)}
23477
+ ${(0, $f9c5006b26957916$export$a55877ca9db47377)(subtitle, () => `<h2 class="${c.subtitle}">${subtitle}</h2>`)}
23329
23478
 
23330
23479
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(bodyLines.length > 0, () => `
23331
- <div class="chord-sheet">
23480
+ <div class="${c.chordSheet}">
23332
23481
  ${(0, $f9c5006b26957916$export$79b2f7037acddd43)(bodyParagraphs, (paragraph) => `
23333
- <div class="${(0, $f9c5006b26957916$export$dcd1550c9709312c)(paragraph)}">
23482
+ <div class="${(0, $f9c5006b26957916$export$dcd1550c9709312c)(paragraph, c)}">
23334
23483
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(paragraph.isLiteral(), () => `
23335
23484
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $28a2fcb6fb95a147$export$ee27c052bca048fb)(paragraph.label), () => `
23336
- <table class="row">
23485
+ <table class="${c.row}">
23337
23486
  <tr>
23338
- <td>
23339
- <h3 class="label">${paragraph.label}</h3>
23487
+ <td class="${c.labelWrapper}">
23488
+ <h3 class="${c.label}">${paragraph.label}</h3>
23340
23489
  </td>
23341
23490
  </tr>
23342
23491
  </table>
23343
23492
  `)}
23344
23493
 
23345
- <table class="literal">
23494
+ <table class="${c.literal}">
23346
23495
  <tr>
23347
- <td class="contents">${(0, $f9c5006b26957916$export$e2953cc935d48476)((0, $f9c5006b26957916$export$4c0287abd2ec956e)(paragraph, configuration))}</td>
23496
+ <td class="${c.literalContents}">${(0, $f9c5006b26957916$export$e2953cc935d48476)((0, $f9c5006b26957916$export$4c0287abd2ec956e)(paragraph, configuration))}</td>
23348
23497
  </tr>
23349
23498
  </table>
23350
23499
  `).else(() => `
23351
23500
  ${(0, $f9c5006b26957916$export$79b2f7037acddd43)(paragraph.lines, (line) => `
23352
23501
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(renderBlankLines || (0, $f9c5006b26957916$export$3db5961874282581)(line), () => `
23353
- <table class="${(0, $f9c5006b26957916$export$8a559c16cc3576)(line)}">
23502
+ <table class="${(0, $f9c5006b26957916$export$8a559c16cc3576)(line, c)}">
23354
23503
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $28a2fcb6fb95a147$export$d332d76d125f0cbe)(line), () => `
23355
23504
  <tr>
23356
23505
  ${(0, $f9c5006b26957916$export$79b2f7037acddd43)(line.items, (item) => `
23357
23506
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$17c9e635b932873b)(item), () => `
23358
23507
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(item.annotation).then(() => `
23359
- <td class="annotation"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${item.annotation}</td>
23508
+ <td class="${c.annotation}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${item.annotation}</td>
23360
23509
  `).else(() => `
23361
- <td class="chord"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${(0, $2ce1086ce25c9ac0$export$596ec52955da9472)(item.chords, line, song, {
23510
+ <td class="${c.chord}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${(0, $2ce1086ce25c9ac0$export$596ec52955da9472)(item.chords, line, song, {
23362
23511
  renderKey: key,
23363
23512
  useUnicodeModifier: configuration.useUnicodeModifiers,
23364
23513
  normalizeChords: configuration.normalizeChords,
@@ -23374,19 +23523,21 @@ Or set the song key before changing key:
23374
23523
  <tr>
23375
23524
  ${(0, $f9c5006b26957916$export$79b2f7037acddd43)(line.items, (item) => `
23376
23525
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$17c9e635b932873b)(item), () => `
23377
- <td class="lyrics"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.lyrics}</td>
23526
+ <td class="${c.lyrics}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.lyrics}</td>
23378
23527
  `).elseWhen((0, $f9c5006b26957916$export$3bf645f08efe3292)(item), () => `
23379
23528
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$3ab01370f5e64ac8)(item), () => `
23380
- <td class="comment"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.value}</td>
23529
+ <td class="${c.comment}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.value}</td>
23381
23530
  `)}
23382
23531
 
23383
23532
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(item.hasRenderableLabel(), () => `
23384
- <td><h3 class="label"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.label}</h3></td>
23533
+ <td class="${c.labelWrapper}">
23534
+ <h3 class="${c.label}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.label}</h3>
23535
+ </td>
23385
23536
  `)}
23386
23537
  `).elseWhen((0, $f9c5006b26957916$export$899158ea22bb4609)(item), () => `
23387
- <td class="literal">${item.string}</td>
23538
+ <td class="${c.literal}">${item.string}</td>
23388
23539
  `).elseWhen((0, $28a2fcb6fb95a147$export$e3f63561d52b936d)(item), () => `
23389
- <td class="lyrics"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>
23540
+ <td class="${c.lyrics}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>
23390
23541
  ${(0, $f9c5006b26957916$export$fef61f332f2c0afc)(item, metadata, configuration)}
23391
23542
  </td>
23392
23543
  `)}
@@ -23402,33 +23553,36 @@ Or set the song key before changing key:
23402
23553
  </div>
23403
23554
  `)}
23404
23555
  `);
23405
- var $57075975ee3e6c20$var$defaultCss = {
23406
- "h1": {
23407
- fontSize: "1.5em"
23408
- },
23409
- "h2": {
23410
- fontSize: "1.1em"
23411
- },
23412
- "table": {
23413
- borderSpacing: "0",
23414
- color: "inherit"
23415
- },
23416
- "td": {
23417
- padding: "3px 0"
23418
- },
23419
- ".chord:not(:last-child)": {
23420
- paddingRight: "10px"
23421
- },
23422
- ".paragraph": {
23423
- marginBottom: "1em"
23424
- }
23425
- };
23556
+ function $57075975ee3e6c20$var$defaultCss(cssClasses) {
23557
+ const { annotation, chord, comment, labelWrapper, line, literal, literalContents, lyrics, paragraph, row, subtitle, title } = cssClasses;
23558
+ return {
23559
+ [`.${title}`]: {
23560
+ fontSize: "1.5em"
23561
+ },
23562
+ [`.${subtitle}`]: {
23563
+ fontSize: "1.1em"
23564
+ },
23565
+ [`.${row}, .${line}, .${literal}`]: {
23566
+ borderSpacing: "0",
23567
+ color: "inherit"
23568
+ },
23569
+ [`.${annotation}, .${chord}, .${comment}, .${literalContents}, .${labelWrapper}, .${literal}, .${lyrics}`]: {
23570
+ padding: "3px 0"
23571
+ },
23572
+ [`.${chord}:not(:last-child)`]: {
23573
+ paddingRight: "10px"
23574
+ },
23575
+ [`.${paragraph}`]: {
23576
+ marginBottom: "1em"
23577
+ }
23578
+ };
23579
+ }
23426
23580
  var $57075975ee3e6c20$var$HtmlTableFormatter = class extends (0, $fb7c3e115538fcf2$export$2e2bcd8739ae039) {
23427
23581
  get template() {
23428
23582
  return 0, $396f7048979e89c9$export$2e2bcd8739ae039;
23429
23583
  }
23430
23584
  get defaultCss() {
23431
- return $57075975ee3e6c20$var$defaultCss;
23585
+ return $57075975ee3e6c20$var$defaultCss(this.cssClasses);
23432
23586
  }
23433
23587
  };
23434
23588
  var $57075975ee3e6c20$export$2e2bcd8739ae039 = $57075975ee3e6c20$var$HtmlTableFormatter;
@@ -23534,12 +23688,12 @@ Or set the song key before changing key:
23534
23688
  var $a5a21ced491ea51f$var$CHORUS_LINE_REGEX = /^\[(Chorus)]/i;
23535
23689
  var $a5a21ced491ea51f$var$OTHER_METADATA_LINE_REGEX = /^\[([^\]]+)]/;
23536
23690
  var $a5a21ced491ea51f$var$startSectionTags = {
23537
- [(0, $dce48cb70c4120bb$export$4b194284baed1659)]: (0, $7251dad5f4a4c35f$export$deca399f8cd9b7dc),
23538
- [(0, $dce48cb70c4120bb$export$8db6c706fc9142b2)]: (0, $7251dad5f4a4c35f$export$4f5168acae064e01)
23691
+ [(0, $dce48cb70c4120bb$export$4b194284baed1659)]: (0, $d21c5c7a462f3c34$export$deca399f8cd9b7dc),
23692
+ [(0, $dce48cb70c4120bb$export$8db6c706fc9142b2)]: (0, $d21c5c7a462f3c34$export$4f5168acae064e01)
23539
23693
  };
23540
23694
  var $a5a21ced491ea51f$var$endSectionTags = {
23541
- [(0, $dce48cb70c4120bb$export$4b194284baed1659)]: (0, $7251dad5f4a4c35f$export$640d294ab83f9040),
23542
- [(0, $dce48cb70c4120bb$export$8db6c706fc9142b2)]: (0, $7251dad5f4a4c35f$export$473c1a4819e5180b)
23695
+ [(0, $dce48cb70c4120bb$export$4b194284baed1659)]: (0, $d21c5c7a462f3c34$export$640d294ab83f9040),
23696
+ [(0, $dce48cb70c4120bb$export$8db6c706fc9142b2)]: (0, $d21c5c7a462f3c34$export$473c1a4819e5180b)
23543
23697
  };
23544
23698
  var $a5a21ced491ea51f$var$UltimateGuitarParser = class extends (0, $e136d63bbe28a4e0$export$2e2bcd8739ae039) {
23545
23699
  /**
@@ -23570,7 +23724,7 @@ Or set the song key before changing key:
23570
23724
  this.endSection();
23571
23725
  const comment = line.match($a5a21ced491ea51f$var$OTHER_METADATA_LINE_REGEX)[1];
23572
23726
  if (!this.songLine) throw new Error("Expected this.songLine to be present");
23573
- this.songLine.addTag(new (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039)((0, $7251dad5f4a4c35f$export$a29989082612d0d9), comment));
23727
+ this.songLine.addTag(new (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039)((0, $d21c5c7a462f3c34$export$a29989082612d0d9), comment));
23574
23728
  }
23575
23729
  isSectionEnd() {
23576
23730
  return this.songLine !== null && this.songLine.isEmpty() && this.songBuilder.previousLine !== null && !this.songBuilder.previousLine.isEmpty();
@@ -23604,7 +23758,7 @@ Or set the song key before changing key:
23604
23758
  var $892913528e7f60f9$export$2e2bcd8739ae039 = {
23605
23759
  CHORUS: $dce48cb70c4120bb$export$8db6c706fc9142b2,
23606
23760
  Chord: $177a605b8569b31c$export$2e2bcd8739ae039,
23607
- ChordDefinition: $36ec5eba476f1300$export$2e2bcd8739ae039,
23761
+ ChordDefinition: $6c1ed1378c3b5965$export$2e2bcd8739ae039,
23608
23762
  ChordLyricsPair: $551a223fc13b5c10$export$2e2bcd8739ae039,
23609
23763
  ChordProFormatter: $244a67400187e14e$export$2e2bcd8739ae039,
23610
23764
  ChordProParser: $957f29f677b8d58d$export$2e2bcd8739ae039,
@@ -23622,6 +23776,7 @@ Or set the song key before changing key:
23622
23776
  Metadata: $5c7afec93ec943b9$export$2e2bcd8739ae039,
23623
23777
  NONE: $dce48cb70c4120bb$export$c53d0f541b41b88e,
23624
23778
  Paragraph: $8906e348466806fd$export$2e2bcd8739ae039,
23779
+ PART: $dce48cb70c4120bb$export$609cc0ea1637d6a0,
23625
23780
  SoftLineBreak: $4b6dd3e4b817bd81$export$2e2bcd8739ae039,
23626
23781
  Song: $c53141c05fae8382$export$2e2bcd8739ae039,
23627
23782
  TAB: $dce48cb70c4120bb$export$f1c9dd0f5207dd5e,