diff --git a/README.md b/README.md index f08c262..cb01ed3 100644 --- a/README.md +++ b/README.md @@ -347,6 +347,12 @@ new SVGuitarChord('#some-selector') }, ], + /** + * Flag to show or disable all fret markers globally. This is just for convenience. + * The fret markers can also be removed by not setting the fretMarkers property. + */ + showFretMarkers: true, + /** * The shape of the fret markets. Applies to all fret markets unless overridden * on specific fret markers. Defaults to circles. @@ -380,7 +386,7 @@ new SVGuitarChord('#some-selector') * is equivalent to 0.5 times the width of the whole neck. */ doubleFretMarkerDistance: 0.4 - + }) .draw() ``` diff --git a/src/svguitar.ts b/src/svguitar.ts index 2ba2d68..0b94fed 100644 --- a/src/svguitar.ts +++ b/src/svguitar.ts @@ -200,6 +200,12 @@ export interface ChordSettings { */ fretMarkers?: FretMarker[] + /** + * Flag to show or disable all fret markers globally. This is just for convenience. + * The fret markers can also be removed by not setting the {@link fretMarkers} property. + */ + showFretMarkers?: boolean, + /** * The {@link Shape} of the fret markets. Applies to all fret markets unless overridden * on specific fret markers. @@ -470,6 +476,7 @@ interface RequiredChordSettings { orientation: Orientation watermarkFontSize: number noPosition: boolean + showFretMarkers: boolean, fretMarkerSize: number, fretMarkerShape: Shape, fretMarkerColor: string, @@ -508,6 +515,7 @@ const defaultSettings: RequiredChordSettings = { fretMarkerSize: 0.4, doubleFretMarkerDistance: 0.4, fretMarkerShape: Shape.CIRCLE, + showFretMarkers: true, } export class SVGuitarChord { @@ -1190,7 +1198,8 @@ export class SVGuitarChord { ) }) - this.settings.fretMarkers + if (this.settings.showFretMarkers ?? defaultSettings.showFretMarkers) { + this.settings.fretMarkers ?.forEach((fretMarker) => { const fretMarkerOptions = (typeof fretMarker == 'number' ? { fret: fretMarker, @@ -1242,6 +1251,7 @@ export class SVGuitarChord { ) } }); + } return y + height } diff --git a/test/svguitar.test.ts b/test/svguitar.test.ts index d13e97f..9ce169d 100644 --- a/test/svguitar.test.ts +++ b/test/svguitar.test.ts @@ -1118,6 +1118,24 @@ describe('SVGuitarChord', () => { saveSvg('fret markers horizontal', container.outerHTML) }) + it('Should remove all fret markers', () => { + svguitar + .chord({ + fingers: [ + ], + barres: [ + ], + }) + .configure({ + showFretMarkers: false, + fretMarkers: [ + 2, 4, 6, + ], + }) + .draw() + + saveSvg('hide fret markers', container.outerHTML) + }) test.each` setting | value | valid