@onjmin/dtm 0.1.77 → 0.1.78
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/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +9 -2
- package/dist/index.mjs +9 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -6988,6 +6988,12 @@ var parseBpmMeta = (chords) => {
|
|
|
6988
6988
|
if (Number.isNaN(val)) return null;
|
|
6989
6989
|
return Math.max(40, Math.min(240, val));
|
|
6990
6990
|
};
|
|
6991
|
+
var parseLoopMeta = (chords) => {
|
|
6992
|
+
const m = chords.match(/^#\s*loop\s*=\s*(on|off|1|0|true|false)\s*$/im);
|
|
6993
|
+
if (!m) return null;
|
|
6994
|
+
const v = m[1].toLowerCase();
|
|
6995
|
+
return v === "on" || v === "1" || v === "true";
|
|
6996
|
+
};
|
|
6991
6997
|
var _nameToKeyCache = null;
|
|
6992
6998
|
var getNameToKey = async () => {
|
|
6993
6999
|
if (!_nameToKeyCache) _nameToKeyCache = await buildNameToKeyMapping();
|
|
@@ -7158,7 +7164,7 @@ var mountChordPlayer = (target, chords, options = {}) => {
|
|
|
7158
7164
|
let masterVolume = options.volume ?? 80;
|
|
7159
7165
|
let isLoading = false;
|
|
7160
7166
|
let loadAbortId = 0;
|
|
7161
|
-
let loopEnabled = false;
|
|
7167
|
+
let loopEnabled = options.loop ?? parseLoopMeta(chords) ?? false;
|
|
7162
7168
|
let metronomeEnabled = parseMetronomeMeta(chords);
|
|
7163
7169
|
let playOffsetSec = 0;
|
|
7164
7170
|
let currentPlaySec = 0;
|
|
@@ -7233,7 +7239,8 @@ var mountChordPlayer = (target, chords, options = {}) => {
|
|
|
7233
7239
|
loopBtn.type = "button";
|
|
7234
7240
|
loopBtn.className = "dtm-cp-loop";
|
|
7235
7241
|
loopBtn.innerHTML = icon("loop", 12);
|
|
7236
|
-
loopBtn.title = "LOOP OFF";
|
|
7242
|
+
loopBtn.title = loopEnabled ? "LOOP ON" : "LOOP OFF";
|
|
7243
|
+
loopBtn.classList.toggle("dtm-cp-loop--on", loopEnabled);
|
|
7237
7244
|
loopBtn.addEventListener("click", () => {
|
|
7238
7245
|
loopEnabled = !loopEnabled;
|
|
7239
7246
|
loopBtn.classList.toggle("dtm-cp-loop--on", loopEnabled);
|
package/dist/index.mjs
CHANGED
|
@@ -6865,6 +6865,12 @@ var parseBpmMeta = (chords) => {
|
|
|
6865
6865
|
if (Number.isNaN(val)) return null;
|
|
6866
6866
|
return Math.max(40, Math.min(240, val));
|
|
6867
6867
|
};
|
|
6868
|
+
var parseLoopMeta = (chords) => {
|
|
6869
|
+
const m = chords.match(/^#\s*loop\s*=\s*(on|off|1|0|true|false)\s*$/im);
|
|
6870
|
+
if (!m) return null;
|
|
6871
|
+
const v = m[1].toLowerCase();
|
|
6872
|
+
return v === "on" || v === "1" || v === "true";
|
|
6873
|
+
};
|
|
6868
6874
|
var _nameToKeyCache = null;
|
|
6869
6875
|
var getNameToKey = async () => {
|
|
6870
6876
|
if (!_nameToKeyCache) _nameToKeyCache = await buildNameToKeyMapping();
|
|
@@ -7035,7 +7041,7 @@ var mountChordPlayer = (target, chords, options = {}) => {
|
|
|
7035
7041
|
let masterVolume = options.volume ?? 80;
|
|
7036
7042
|
let isLoading = false;
|
|
7037
7043
|
let loadAbortId = 0;
|
|
7038
|
-
let loopEnabled = false;
|
|
7044
|
+
let loopEnabled = options.loop ?? parseLoopMeta(chords) ?? false;
|
|
7039
7045
|
let metronomeEnabled = parseMetronomeMeta(chords);
|
|
7040
7046
|
let playOffsetSec = 0;
|
|
7041
7047
|
let currentPlaySec = 0;
|
|
@@ -7110,7 +7116,8 @@ var mountChordPlayer = (target, chords, options = {}) => {
|
|
|
7110
7116
|
loopBtn.type = "button";
|
|
7111
7117
|
loopBtn.className = "dtm-cp-loop";
|
|
7112
7118
|
loopBtn.innerHTML = icon("loop", 12);
|
|
7113
|
-
loopBtn.title = "LOOP OFF";
|
|
7119
|
+
loopBtn.title = loopEnabled ? "LOOP ON" : "LOOP OFF";
|
|
7120
|
+
loopBtn.classList.toggle("dtm-cp-loop--on", loopEnabled);
|
|
7114
7121
|
loopBtn.addEventListener("click", () => {
|
|
7115
7122
|
loopEnabled = !loopEnabled;
|
|
7116
7123
|
loopBtn.classList.toggle("dtm-cp-loop--on", loopEnabled);
|
package/package.json
CHANGED