|
@@ -100,69 +100,69 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
|
|
|
}
|
|
|
});
|
|
|
/** word比较特殊需要精确到note位置 */
|
|
|
- words.forEach((word) => {
|
|
|
- let text = word.textContent || "";
|
|
|
- text = ["cresc."].includes(text) ? "" : text;
|
|
|
- if ((isSpecialMark(text) || isSpeedKeyword(text) || isGradientWords(text) || isRepeatWord(text) || GRADIENT_SPEED_RESET_TAG) && text) {
|
|
|
- const wordContainer = word.parentElement?.parentElement;
|
|
|
- const parentMeasure = wordContainer?.parentElement;
|
|
|
- const measureWords = [...(parentMeasure?.childNodes || [])];
|
|
|
- const wordIndex = wordContainer ? measureWords.indexOf(wordContainer) : -1;
|
|
|
- if (wordContainer && parentMeasure && wordIndex > -1) {
|
|
|
- const index = firstMeasures.indexOf(parentMeasure);
|
|
|
- const activeMeasure = part.getElementsByTagName("measure")[index];
|
|
|
- // 找当前小节是否包含word标签
|
|
|
- const _words: any = Array.from(activeMeasure?.getElementsByTagName("words") || []);
|
|
|
- // 遍历word标签,检查是否和第一小节重复,如果有重复则不平移word
|
|
|
- const total = _words.reduce((total: any, _word) => {
|
|
|
- if (_word.textContent?.includes(text)) {
|
|
|
- total++;
|
|
|
- }
|
|
|
- return total;
|
|
|
- }, 0);
|
|
|
- if (total === 0) {
|
|
|
- setElementNoteBefore(wordContainer, parentMeasure, activeMeasure);
|
|
|
+ // words.forEach((word) => {
|
|
|
+ // let text = word.textContent || "";
|
|
|
+ // text = ["cresc."].includes(text) ? "" : text;
|
|
|
+ // if ((isSpecialMark(text) || isSpeedKeyword(text) || isGradientWords(text) || isRepeatWord(text) || GRADIENT_SPEED_RESET_TAG) && text) {
|
|
|
+ // const wordContainer = word.parentElement?.parentElement;
|
|
|
+ // const parentMeasure = wordContainer?.parentElement;
|
|
|
+ // const measureWords = [...(parentMeasure?.childNodes || [])];
|
|
|
+ // const wordIndex = wordContainer ? measureWords.indexOf(wordContainer) : -1;
|
|
|
+ // if (wordContainer && parentMeasure && wordIndex > -1) {
|
|
|
+ // const index = firstMeasures.indexOf(parentMeasure);
|
|
|
+ // const activeMeasure = part.getElementsByTagName("measure")[index];
|
|
|
+ // // 找当前小节是否包含word标签
|
|
|
+ // const _words: any = Array.from(activeMeasure?.getElementsByTagName("words") || []);
|
|
|
+ // // 遍历word标签,检查是否和第一小节重复,如果有重复则不平移word
|
|
|
+ // const total = _words.reduce((total: any, _word) => {
|
|
|
+ // if (_word.textContent?.includes(text)) {
|
|
|
+ // total++;
|
|
|
+ // }
|
|
|
+ // return total;
|
|
|
+ // }, 0);
|
|
|
+ // if (total === 0) {
|
|
|
+ // setElementNoteBefore(wordContainer, parentMeasure, activeMeasure);
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // });
|
|
|
/** word比较特殊需要精确到note位置 */
|
|
|
- codas.forEach((coda) => {
|
|
|
- const wordContainer = coda.parentElement?.parentElement;
|
|
|
- const parentMeasure = wordContainer?.parentElement;
|
|
|
- const measureWords = [...(parentMeasure?.childNodes || [])];
|
|
|
- const wordIndex = wordContainer ? measureWords.indexOf(wordContainer) : -1;
|
|
|
- if (wordContainer && parentMeasure && wordIndex > -1) {
|
|
|
- const index = firstMeasures.indexOf(parentMeasure);
|
|
|
- const activeMeasure = part.getElementsByTagName("measure")[index];
|
|
|
+ // codas.forEach((coda) => {
|
|
|
+ // const wordContainer = coda.parentElement?.parentElement;
|
|
|
+ // const parentMeasure = wordContainer?.parentElement;
|
|
|
+ // const measureWords = [...(parentMeasure?.childNodes || [])];
|
|
|
+ // const wordIndex = wordContainer ? measureWords.indexOf(wordContainer) : -1;
|
|
|
+ // if (wordContainer && parentMeasure && wordIndex > -1) {
|
|
|
+ // const index = firstMeasures.indexOf(parentMeasure);
|
|
|
+ // const activeMeasure = part.getElementsByTagName("measure")[index];
|
|
|
|
|
|
- setElementNoteBefore(wordContainer, parentMeasure, activeMeasure);
|
|
|
+ // setElementNoteBefore(wordContainer, parentMeasure, activeMeasure);
|
|
|
|
|
|
- }
|
|
|
- });
|
|
|
- rehearsals.forEach((rehearsal) => {
|
|
|
- const container = rehearsal.parentElement?.parentElement;
|
|
|
- const parentMeasure = container?.parentElement;
|
|
|
- // console.log(rehearsal)
|
|
|
- if (parentMeasure) {
|
|
|
- const index = firstMeasures.indexOf(parentMeasure);
|
|
|
- part.getElementsByTagName("measure")[index]?.appendChild(container.cloneNode(true));
|
|
|
- // console.log(index, parentMeasure, firstMeasures.indexOf(parentMeasure))
|
|
|
- }
|
|
|
- });
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // rehearsals.forEach((rehearsal) => {
|
|
|
+ // const container = rehearsal.parentElement?.parentElement;
|
|
|
+ // const parentMeasure = container?.parentElement;
|
|
|
+ // // console.log(rehearsal)
|
|
|
+ // if (parentMeasure) {
|
|
|
+ // const index = firstMeasures.indexOf(parentMeasure);
|
|
|
+ // part.getElementsByTagName("measure")[index]?.appendChild(container.cloneNode(true));
|
|
|
+ // // console.log(index, parentMeasure, firstMeasures.indexOf(parentMeasure))
|
|
|
+ // }
|
|
|
+ // });
|
|
|
} else {
|
|
|
- words.forEach((word) => {
|
|
|
- const text = word.textContent || "";
|
|
|
- if (isSpeedKeyword(text) && text) {
|
|
|
- const wordContainer = word.parentElement?.parentElement?.parentElement;
|
|
|
- if (wordContainer && wordContainer.firstElementChild && wordContainer.firstElementChild !== word) {
|
|
|
- const wordParent = word.parentElement?.parentElement;
|
|
|
- const fisrt = wordContainer.firstElementChild;
|
|
|
- wordContainer.insertBefore(wordParent, fisrt);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ // words.forEach((word) => {
|
|
|
+ // const text = word.textContent || "";
|
|
|
+ // if (isSpeedKeyword(text) && text) {
|
|
|
+ // const wordContainer = word.parentElement?.parentElement?.parentElement;
|
|
|
+ // if (wordContainer && wordContainer.firstElementChild && wordContainer.firstElementChild !== word) {
|
|
|
+ // const wordParent = word.parentElement?.parentElement;
|
|
|
+ // const fisrt = wordContainer.firstElementChild;
|
|
|
+ // wordContainer.insertBefore(wordParent, fisrt);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // });
|
|
|
}
|
|
|
|
|
|
// 最后一个小节的结束线元素不在最后 调整
|