var un=Object.defineProperty;var hn=(i,e,r)=>e in i?un(i,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[e]=r;var xt=(i,e,r)=>(hn(i,typeof e!="symbol"?e+"":e,r),r);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function r(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function s(o){if(o.ep)return;o.ep=!0;const a=r(o);fetch(o.href,a)}})();const index="",common="",popup$2="",SnackbarSfc="",elevation="",loading$1="",button$1="",icon$2="",snackbar="",coreSfc="",cell="",CellSfc="",ripple="",formDetails="",hoverOverlay="",_switch="",SwitchSfc="",style="";function makeMap(i,e){const r=Object.create(null),s=i.split(",");for(let o=0;o!!r[o.toLowerCase()]:o=>!!r[o]}function normalizeStyle(i){if(isArray$9(i)){const e={};for(let r=0;r{if(r){const s=r.split(propertyDelimiterRE);s.length>1&&(e[s[0].trim()]=s[1].trim())}}),e}function normalizeClass(i){let e="";if(isString$2(i))e=i;else if(isArray$9(i))for(let r=0;risString$2(i)?i:i==null?"":isArray$9(i)||isObject$5(i)&&(i.toString===objectToString$3||!isFunction$6(i.toString))?JSON.stringify(i,replacer,2):String(i),replacer=(i,e)=>e&&e.__v_isRef?replacer(i,e.value):isMap$3(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((r,[s,o])=>(r[`${s} =>`]=o,r),{})}:isSet$3(e)?{[`Set(${e.size})`]:[...e.values()]}:isObject$5(e)&&!isArray$9(e)&&!isPlainObject$3(e)?String(e):e,EMPTY_OBJ={},EMPTY_ARR=[],NOOP=()=>{},NO=()=>!1,onRE=/^on[^a-z]/,isOn=i=>onRE.test(i),isModelListener=i=>i.startsWith("onUpdate:"),extend$3=Object.assign,remove$7=(i,e)=>{const r=i.indexOf(e);r>-1&&i.splice(r,1)},hasOwnProperty$f=Object.prototype.hasOwnProperty,hasOwn$2=(i,e)=>hasOwnProperty$f.call(i,e),isArray$9=Array.isArray,isMap$3=i=>toTypeString(i)==="[object Map]",isSet$3=i=>toTypeString(i)==="[object Set]",isFunction$6=i=>typeof i=="function",isString$2=i=>typeof i=="string",isSymbol$1=i=>typeof i=="symbol",isObject$5=i=>i!==null&&typeof i=="object",isPromise$1=i=>isObject$5(i)&&isFunction$6(i.then)&&isFunction$6(i.catch),objectToString$3=Object.prototype.toString,toTypeString=i=>objectToString$3.call(i),toRawType=i=>toTypeString(i).slice(8,-1),isPlainObject$3=i=>toTypeString(i)==="[object Object]",isIntegerKey=i=>isString$2(i)&&i!=="NaN"&&i[0]!=="-"&&""+parseInt(i,10)===i,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cacheStringFunction=i=>{const e=Object.create(null);return r=>e[r]||(e[r]=i(r))},camelizeRE$1=/-(\w)/g,camelize$2=cacheStringFunction(i=>i.replace(camelizeRE$1,(e,r)=>r?r.toUpperCase():"")),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(i=>i.replace(hyphenateRE,"-$1").toLowerCase()),capitalize=cacheStringFunction(i=>i.charAt(0).toUpperCase()+i.slice(1)),toHandlerKey=cacheStringFunction(i=>i?`on${capitalize(i)}`:""),hasChanged=(i,e)=>!Object.is(i,e),invokeArrayFns=(i,e)=>{for(let r=0;r{Object.defineProperty(i,e,{configurable:!0,enumerable:!1,value:r})},looseToNumber=i=>{const e=parseFloat(i);return isNaN(e)?i:e},toNumber$1=i=>{const e=isString$2(i)?Number(i):NaN;return isNaN(e)?i:e};let _globalThis;const getGlobalThis=()=>_globalThis||(_globalThis=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let activeEffectScope;class EffectScope{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=activeEffectScope,!e&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const r=activeEffectScope;try{return activeEffectScope=this,e()}finally{activeEffectScope=r}}}on(){activeEffectScope=this}off(){activeEffectScope=this.parent}stop(e){if(this._active){let r,s;for(r=0,s=this.effects.length;r{const e=new Set(i);return e.w=0,e.n=0,e},wasTracked=i=>(i.w&trackOpBit)>0,newTracked=i=>(i.n&trackOpBit)>0,initDepMarkers=({deps:i})=>{if(i.length)for(let e=0;e{const{deps:e}=i;if(e.length){let r=0;for(let s=0;s{(g==="length"||g>=u)&&c.push(d)})}else switch(r!==void 0&&c.push(l.get(r)),e){case"add":isArray$9(i)?isIntegerKey(r)&&c.push(l.get("length")):(c.push(l.get(ITERATE_KEY)),isMap$3(i)&&c.push(l.get(MAP_KEY_ITERATE_KEY)));break;case"delete":isArray$9(i)||(c.push(l.get(ITERATE_KEY)),isMap$3(i)&&c.push(l.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$3(i)&&c.push(l.get(ITERATE_KEY));break}if(c.length===1)c[0]&&triggerEffects(c[0]);else{const u=[];for(const d of c)d&&u.push(...d);triggerEffects(createDep(u))}}function triggerEffects(i,e){const r=isArray$9(i)?i:[...i];for(const s of r)s.computed&&triggerEffect(s);for(const s of r)s.computed||triggerEffect(s)}function triggerEffect(i,e){(i!==activeEffect||i.allowRecurse)&&(i.scheduler?i.scheduler():i.run())}function getDepFromReactive(i,e){var r;return(r=targetMap.get(i))===null||r===void 0?void 0:r.get(e)}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(i=>i!=="arguments"&&i!=="caller").map(i=>Symbol[i]).filter(isSymbol$1)),get$1=createGetter(),shallowGet=createGetter(!1,!0),readonlyGet=createGetter(!0),arrayInstrumentations=createArrayInstrumentations();function createArrayInstrumentations(){const i={};return["includes","indexOf","lastIndexOf"].forEach(e=>{i[e]=function(...r){const s=toRaw(this);for(let a=0,l=this.length;a{i[e]=function(...r){pauseTracking();const s=toRaw(this)[e].apply(this,r);return resetTracking(),s}}),i}function hasOwnProperty$e(i){const e=toRaw(this);return track(e,"has",i),e.hasOwnProperty(i)}function createGetter(i=!1,e=!1){return function(s,o,a){if(o==="__v_isReactive")return!i;if(o==="__v_isReadonly")return i;if(o==="__v_isShallow")return e;if(o==="__v_raw"&&a===(i?e?shallowReadonlyMap:readonlyMap:e?shallowReactiveMap:reactiveMap).get(s))return s;const l=isArray$9(s);if(!i){if(l&&hasOwn$2(arrayInstrumentations,o))return Reflect.get(arrayInstrumentations,o,a);if(o==="hasOwnProperty")return hasOwnProperty$e}const c=Reflect.get(s,o,a);return(isSymbol$1(o)?builtInSymbols.has(o):isNonTrackableKeys(o))||(i||track(s,"get",o),e)?c:isRef(c)?l&&isIntegerKey(o)?c:c.value:isObject$5(c)?i?readonly(c):reactive(c):c}}const set$1=createSetter(),shallowSet=createSetter(!0);function createSetter(i=!1){return function(r,s,o,a){let l=r[s];if(isReadonly(l)&&isRef(l)&&!isRef(o))return!1;if(!i&&(!isShallow(o)&&!isReadonly(o)&&(l=toRaw(l),o=toRaw(o)),!isArray$9(r)&&isRef(l)&&!isRef(o)))return l.value=o,!0;const c=isArray$9(r)&&isIntegerKey(s)?Number(s)i,getProto$1=i=>Reflect.getPrototypeOf(i);function get$2(i,e,r=!1,s=!1){i=i.__v_raw;const o=toRaw(i),a=toRaw(e);r||(e!==a&&track(o,"get",e),track(o,"get",a));const{has:l}=getProto$1(o),c=s?toShallow:r?toReadonly:toReactive;if(l.call(o,e))return c(i.get(e));if(l.call(o,a))return c(i.get(a));i!==o&&i.get(e)}function has$4(i,e=!1){const r=this.__v_raw,s=toRaw(r),o=toRaw(i);return e||(i!==o&&track(s,"has",i),track(s,"has",o)),i===o?r.has(i):r.has(i)||r.has(o)}function size(i,e=!1){return i=i.__v_raw,!e&&track(toRaw(i),"iterate",ITERATE_KEY),Reflect.get(i,"size",i)}function add(i){i=toRaw(i);const e=toRaw(this);return getProto$1(e).has.call(e,i)||(e.add(i),trigger(e,"add",i,i)),this}function set(i,e){e=toRaw(e);const r=toRaw(this),{has:s,get:o}=getProto$1(r);let a=s.call(r,i);a||(i=toRaw(i),a=s.call(r,i));const l=o.call(r,i);return r.set(i,e),a?hasChanged(e,l)&&trigger(r,"set",i,e):trigger(r,"add",i,e),this}function deleteEntry(i){const e=toRaw(this),{has:r,get:s}=getProto$1(e);let o=r.call(e,i);o||(i=toRaw(i),o=r.call(e,i)),s&&s.call(e,i);const a=e.delete(i);return o&&trigger(e,"delete",i,void 0),a}function clear(){const i=toRaw(this),e=i.size!==0,r=i.clear();return e&&trigger(i,"clear",void 0,void 0),r}function createForEach(i,e){return function(s,o){const a=this,l=a.__v_raw,c=toRaw(l),u=e?toShallow:i?toReadonly:toReactive;return!i&&track(c,"iterate",ITERATE_KEY),l.forEach((d,g)=>s.call(o,u(d),u(g),a))}}function createIterableMethod(i,e,r){return function(...s){const o=this.__v_raw,a=toRaw(o),l=isMap$3(a),c=i==="entries"||i===Symbol.iterator&&l,u=i==="keys"&&l,d=o[i](...s),g=r?toShallow:e?toReadonly:toReactive;return!e&&track(a,"iterate",u?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:m,done:y}=d.next();return y?{value:m,done:y}:{value:c?[g(m[0]),g(m[1])]:g(m),done:y}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(i){return function(...e){return i==="delete"?!1:this}}function createInstrumentations(){const i={get(a){return get$2(this,a)},get size(){return size(this)},has:has$4,add,set,delete:deleteEntry,clear,forEach:createForEach(!1,!1)},e={get(a){return get$2(this,a,!1,!0)},get size(){return size(this)},has:has$4,add,set,delete:deleteEntry,clear,forEach:createForEach(!1,!0)},r={get(a){return get$2(this,a,!0)},get size(){return size(this,!0)},has(a){return has$4.call(this,a,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!1)},s={get(a){return get$2(this,a,!0,!0)},get size(){return size(this,!0)},has(a){return has$4.call(this,a,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{i[a]=createIterableMethod(a,!1,!1),r[a]=createIterableMethod(a,!0,!1),e[a]=createIterableMethod(a,!1,!0),s[a]=createIterableMethod(a,!0,!0)}),[i,r,e,s]}const[mutableInstrumentations,readonlyInstrumentations,shallowInstrumentations,shallowReadonlyInstrumentations]=createInstrumentations();function createInstrumentationGetter(i,e){const r=e?i?shallowReadonlyInstrumentations:shallowInstrumentations:i?readonlyInstrumentations:mutableInstrumentations;return(s,o,a)=>o==="__v_isReactive"?!i:o==="__v_isReadonly"?i:o==="__v_raw"?s:Reflect.get(hasOwn$2(r,o)&&o in s?r:s,o,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(i){switch(i){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(i){return i.__v_skip||!Object.isExtensible(i)?0:targetTypeMap(toRawType(i))}function reactive(i){return isReadonly(i)?i:createReactiveObject(i,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(i){return createReactiveObject(i,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(i){return createReactiveObject(i,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function createReactiveObject(i,e,r,s,o){if(!isObject$5(i)||i.__v_raw&&!(e&&i.__v_isReactive))return i;const a=o.get(i);if(a)return a;const l=getTargetType(i);if(l===0)return i;const c=new Proxy(i,l===2?s:r);return o.set(i,c),c}function isReactive(i){return isReadonly(i)?isReactive(i.__v_raw):!!(i&&i.__v_isReactive)}function isReadonly(i){return!!(i&&i.__v_isReadonly)}function isShallow(i){return!!(i&&i.__v_isShallow)}function isProxy(i){return isReactive(i)||isReadonly(i)}function toRaw(i){const e=i&&i.__v_raw;return e?toRaw(e):i}function markRaw(i){return def(i,"__v_skip",!0),i}const toReactive=i=>isObject$5(i)?reactive(i):i,toReadonly=i=>isObject$5(i)?readonly(i):i;function trackRefValue(i){shouldTrack&&activeEffect&&(i=toRaw(i),trackEffects(i.dep||(i.dep=createDep())))}function triggerRefValue(i,e){i=toRaw(i);const r=i.dep;r&&triggerEffects(r)}function isRef(i){return!!(i&&i.__v_isRef===!0)}function ref(i){return createRef(i,!1)}function shallowRef(i){return createRef(i,!0)}function createRef(i,e){return isRef(i)?i:new RefImpl(i,e)}class RefImpl{constructor(e,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?e:toRaw(e),this._value=r?e:toReactive(e)}get value(){return trackRefValue(this),this._value}set value(e){const r=this.__v_isShallow||isShallow(e)||isReadonly(e);e=r?e:toRaw(e),hasChanged(e,this._rawValue)&&(this._rawValue=e,this._value=r?e:toReactive(e),triggerRefValue(this))}}function unref(i){return isRef(i)?i.value:i}const shallowUnwrapHandlers={get:(i,e,r)=>unref(Reflect.get(i,e,r)),set:(i,e,r,s)=>{const o=i[e];return isRef(o)&&!isRef(r)?(o.value=r,!0):Reflect.set(i,e,r,s)}};function proxyRefs(i){return isReactive(i)?i:new Proxy(i,shallowUnwrapHandlers)}function toRefs(i){const e=isArray$9(i)?new Array(i.length):{};for(const r in i)e[r]=toRef(i,r);return e}class ObjectRefImpl{constructor(e,r,s){this._object=e,this._key=r,this._defaultValue=s,this.__v_isRef=!0}get value(){const e=this._object[this._key];return e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}function toRef(i,e,r){const s=i[e];return isRef(s)?s:new ObjectRefImpl(i,e,r)}var _a$1;class ComputedRefImpl{constructor(e,r,s,o){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[_a$1]=!1,this._dirty=!0,this.effect=new ReactiveEffect(e,()=>{this._dirty||(this._dirty=!0,triggerRefValue(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=s}get value(){const e=toRaw(this);return trackRefValue(e),(e._dirty||!e._cacheable)&&(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}_a$1="__v_isReadonly";function computed$1(i,e,r=!1){let s,o;const a=isFunction$6(i);return a?(s=i,o=NOOP):(s=i.get,o=i.set),new ComputedRefImpl(s,o,a||!o,r)}function warn(i,...e){}function callWithErrorHandling(i,e,r,s){let o;try{o=s?i(...s):i()}catch(a){handleError(a,e,r)}return o}function callWithAsyncErrorHandling(i,e,r,s){if(isFunction$6(i)){const a=callWithErrorHandling(i,e,r,s);return a&&isPromise$1(a)&&a.catch(l=>{handleError(l,e,r)}),a}const o=[];for(let a=0;a>>1;getId(queue$1[s])flushIndex&&queue$1.splice(e,1)}function queuePostFlushCb(i){isArray$9(i)?pendingPostFlushCbs.push(...i):(!activePostFlushCbs||!activePostFlushCbs.includes(i,i.allowRecurse?postFlushIndex+1:postFlushIndex))&&pendingPostFlushCbs.push(i),queueFlush()}function flushPreFlushCbs(i,e=isFlushing?flushIndex+1:0){for(;egetId(r)-getId(s)),postFlushIndex=0;postFlushIndexi.id==null?1/0:i.id,comparator=(i,e)=>{const r=getId(i)-getId(e);if(r===0){if(i.pre&&!e.pre)return-1;if(e.pre&&!i.pre)return 1}return r};function flushJobs(i){isFlushPending=!1,isFlushing=!0,queue$1.sort(comparator);const e=NOOP;try{for(flushIndex=0;flushIndexisString$2(b)?b.trim():b)),m&&(o=r.map(looseToNumber))}let c,u=s[c=toHandlerKey(e)]||s[c=toHandlerKey(camelize$2(e))];!u&&a&&(u=s[c=toHandlerKey(hyphenate(e))]),u&&callWithAsyncErrorHandling(u,i,6,o);const d=s[c+"Once"];if(d){if(!i.emitted)i.emitted={};else if(i.emitted[c])return;i.emitted[c]=!0,callWithAsyncErrorHandling(d,i,6,o)}}function normalizeEmitsOptions(i,e,r=!1){const s=e.emitsCache,o=s.get(i);if(o!==void 0)return o;const a=i.emits;let l={},c=!1;if(!isFunction$6(i)){const u=d=>{const g=normalizeEmitsOptions(d,e,!0);g&&(c=!0,extend$3(l,g))};!r&&e.mixins.length&&e.mixins.forEach(u),i.extends&&u(i.extends),i.mixins&&i.mixins.forEach(u)}return!a&&!c?(isObject$5(i)&&s.set(i,null),null):(isArray$9(a)?a.forEach(u=>l[u]=null):extend$3(l,a),isObject$5(i)&&s.set(i,l),l)}function isEmitListener(i,e){return!i||!isOn(e)?!1:(e=e.slice(2).replace(/Once$/,""),hasOwn$2(i,e[0].toLowerCase()+e.slice(1))||hasOwn$2(i,hyphenate(e))||hasOwn$2(i,e))}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(i){const e=currentRenderingInstance;return currentRenderingInstance=i,currentScopeId=i&&i.type.__scopeId||null,e}function pushScopeId(i){currentScopeId=i}function popScopeId(){currentScopeId=null}function withCtx(i,e=currentRenderingInstance,r){if(!e||i._n)return i;const s=(...o)=>{s._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(e);let l;try{l=i(...o)}finally{setCurrentRenderingInstance(a),s._d&&setBlockTracking(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function markAttrsAccessed(){}function renderComponentRoot(i){const{type:e,vnode:r,proxy:s,withProxy:o,props:a,propsOptions:[l],slots:c,attrs:u,emit:d,render:g,renderCache:m,data:y,setupState:b,ctx:S,inheritAttrs:A}=i;let E,x;const P=setCurrentRenderingInstance(i);try{if(r.shapeFlag&4){const C=o||s;E=normalizeVNode(g.call(C,C,m,a,b,y,S)),x=u}else{const C=e;E=normalizeVNode(C.length>1?C(a,{attrs:u,slots:c,emit:d}):C(a,null)),x=e.props?u:getFunctionalFallthrough(u)}}catch(C){blockStack.length=0,handleError(C,i,1),E=createVNode(Comment)}let T=E;if(x&&A!==!1){const C=Object.keys(x),{shapeFlag:M}=T;C.length&&M&7&&(l&&C.some(isModelListener)&&(x=filterModelListeners(x,l)),T=cloneVNode(T,x))}return r.dirs&&(T=cloneVNode(T),T.dirs=T.dirs?T.dirs.concat(r.dirs):r.dirs),r.transition&&(T.transition=r.transition),E=T,setCurrentRenderingInstance(P),E}const getFunctionalFallthrough=i=>{let e;for(const r in i)(r==="class"||r==="style"||isOn(r))&&((e||(e={}))[r]=i[r]);return e},filterModelListeners=(i,e)=>{const r={};for(const s in i)(!isModelListener(s)||!(s.slice(9)in e))&&(r[s]=i[s]);return r};function shouldUpdateComponent(i,e,r){const{props:s,children:o,component:a}=i,{props:l,children:c,patchFlag:u}=e,d=a.emitsOptions;if(e.dirs||e.transition)return!0;if(r&&u>=0){if(u&1024)return!0;if(u&16)return s?hasPropsChanged(s,l,d):!!l;if(u&8){const g=e.dynamicProps;for(let m=0;mi.__isSuspense;function queueEffectWithSuspense(i,e){e&&e.pendingBranch?isArray$9(i)?e.effects.push(...i):e.effects.push(i):queuePostFlushCb(i)}function provide(i,e){if(currentInstance){let r=currentInstance.provides;const s=currentInstance.parent&¤tInstance.parent.provides;s===r&&(r=currentInstance.provides=Object.create(s)),r[i]=e}}function inject(i,e,r=!1){const s=currentInstance||currentRenderingInstance;if(s){const o=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(o&&i in o)return o[i];if(arguments.length>1)return r&&isFunction$6(e)?e.call(s.proxy):e}}function watchEffect(i,e){return doWatch(i,null,e)}const INITIAL_WATCHER_VALUE={};function watch(i,e,r){return doWatch(i,e,r)}function doWatch(i,e,{immediate:r,deep:s,flush:o,onTrack:a,onTrigger:l}=EMPTY_OBJ){const c=getCurrentScope()===(currentInstance==null?void 0:currentInstance.scope)?currentInstance:null;let u,d=!1,g=!1;if(isRef(i)?(u=()=>i.value,d=isShallow(i)):isReactive(i)?(u=()=>i,s=!0):isArray$9(i)?(g=!0,d=i.some(T=>isReactive(T)||isShallow(T)),u=()=>i.map(T=>{if(isRef(T))return T.value;if(isReactive(T))return traverse(T);if(isFunction$6(T))return callWithErrorHandling(T,c,2)})):isFunction$6(i)?e?u=()=>callWithErrorHandling(i,c,2):u=()=>{if(!(c&&c.isUnmounted))return m&&m(),callWithAsyncErrorHandling(i,c,3,[y])}:u=NOOP,e&&s){const T=u;u=()=>traverse(T())}let m,y=T=>{m=x.onStop=()=>{callWithErrorHandling(T,c,4)}},b;if(isInSSRComponentSetup)if(y=NOOP,e?r&&callWithAsyncErrorHandling(e,c,3,[u(),g?[]:void 0,y]):u(),o==="sync"){const T=useSSRContext();b=T.__watcherHandles||(T.__watcherHandles=[])}else return NOOP;let S=g?new Array(i.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const A=()=>{if(x.active)if(e){const T=x.run();(s||d||(g?T.some((C,M)=>hasChanged(C,S[M])):hasChanged(T,S)))&&(m&&m(),callWithAsyncErrorHandling(e,c,3,[T,S===INITIAL_WATCHER_VALUE?void 0:g&&S[0]===INITIAL_WATCHER_VALUE?[]:S,y]),S=T)}else x.run()};A.allowRecurse=!!e;let E;o==="sync"?E=A:o==="post"?E=()=>queuePostRenderEffect(A,c&&c.suspense):(A.pre=!0,c&&(A.id=c.uid),E=()=>queueJob(A));const x=new ReactiveEffect(u,E);e?r?A():S=x.run():o==="post"?queuePostRenderEffect(x.run.bind(x),c&&c.suspense):x.run();const P=()=>{x.stop(),c&&c.scope&&remove$7(c.scope.effects,x)};return b&&b.push(P),P}function instanceWatch(i,e,r){const s=this.proxy,o=isString$2(i)?i.includes(".")?createPathGetter(s,i):()=>s[i]:i.bind(s,s);let a;isFunction$6(e)?a=e:(a=e.handler,r=e);const l=currentInstance;setCurrentInstance(this);const c=doWatch(o,a.bind(s),r);return l?setCurrentInstance(l):unsetCurrentInstance(),c}function createPathGetter(i,e){const r=e.split(".");return()=>{let s=i;for(let o=0;o{traverse(r,e)});else if(isPlainObject$3(i))for(const r in i)traverse(i[r],e);return i}function useTransitionState(){const i={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return onMounted(()=>{i.isMounted=!0}),onBeforeUnmount(()=>{i.isUnmounting=!0}),i}const TransitionHookValidator=[Function,Array],BaseTransitionImpl={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},setup(i,{slots:e}){const r=getCurrentInstance(),s=useTransitionState();let o;return()=>{const a=e.default&&getTransitionRawChildren(e.default(),!0);if(!a||!a.length)return;let l=a[0];if(a.length>1){for(const A of a)if(A.type!==Comment){l=A;break}}const c=toRaw(i),{mode:u}=c;if(s.isLeaving)return emptyPlaceholder(l);const d=getKeepAliveChild(l);if(!d)return emptyPlaceholder(l);const g=resolveTransitionHooks(d,c,s,r);setTransitionHooks(d,g);const m=r.subTree,y=m&&getKeepAliveChild(m);let b=!1;const{getTransitionKey:S}=d.type;if(S){const A=S();o===void 0?o=A:A!==o&&(o=A,b=!0)}if(y&&y.type!==Comment&&(!isSameVNodeType(d,y)||b)){const A=resolveTransitionHooks(y,c,s,r);if(setTransitionHooks(y,A),u==="out-in")return s.isLeaving=!0,A.afterLeave=()=>{s.isLeaving=!1,r.update.active!==!1&&r.update()},emptyPlaceholder(l);u==="in-out"&&d.type!==Comment&&(A.delayLeave=(E,x,P)=>{const T=getLeavingNodesForType(s,y);T[String(y.key)]=y,E._leaveCb=()=>{x(),E._leaveCb=void 0,delete g.delayedLeave},g.delayedLeave=P})}return l}}},BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(i,e){const{leavingVNodes:r}=i;let s=r.get(e.type);return s||(s=Object.create(null),r.set(e.type,s)),s}function resolveTransitionHooks(i,e,r,s){const{appear:o,mode:a,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:d,onEnterCancelled:g,onBeforeLeave:m,onLeave:y,onAfterLeave:b,onLeaveCancelled:S,onBeforeAppear:A,onAppear:E,onAfterAppear:x,onAppearCancelled:P}=e,T=String(i.key),C=getLeavingNodesForType(r,i),M=(k,D)=>{k&&callWithAsyncErrorHandling(k,s,9,D)},B=(k,D)=>{const O=D[1];M(k,D),isArray$9(k)?k.every(z=>z.length<=1)&&O():k.length<=1&&O()},I={mode:a,persisted:l,beforeEnter(k){let D=c;if(!r.isMounted)if(o)D=A||c;else return;k._leaveCb&&k._leaveCb(!0);const O=C[T];O&&isSameVNodeType(i,O)&&O.el._leaveCb&&O.el._leaveCb(),M(D,[k])},enter(k){let D=u,O=d,z=g;if(!r.isMounted)if(o)D=E||u,O=x||d,z=P||g;else return;let N=!1;const Q=k._enterCb=_=>{N||(N=!0,_?M(z,[k]):M(O,[k]),I.delayedLeave&&I.delayedLeave(),k._enterCb=void 0)};D?B(D,[k,Q]):Q()},leave(k,D){const O=String(i.key);if(k._enterCb&&k._enterCb(!0),r.isUnmounting)return D();M(m,[k]);let z=!1;const N=k._leaveCb=Q=>{z||(z=!0,D(),Q?M(S,[k]):M(b,[k]),k._leaveCb=void 0,C[O]===i&&delete C[O])};C[O]=i,y?B(y,[k,N]):N()},clone(k){return resolveTransitionHooks(k,e,r,s)}};return I}function emptyPlaceholder(i){if(isKeepAlive(i))return i=cloneVNode(i),i.children=null,i}function getKeepAliveChild(i){return isKeepAlive(i)?i.children?i.children[0]:void 0:i}function setTransitionHooks(i,e){i.shapeFlag&6&&i.component?setTransitionHooks(i.component.subTree,e):i.shapeFlag&128?(i.ssContent.transition=e.clone(i.ssContent),i.ssFallback.transition=e.clone(i.ssFallback)):i.transition=e}function getTransitionRawChildren(i,e=!1,r){let s=[],o=0;for(let a=0;a1)for(let a=0;a!!i.type.__asyncLoader;function defineAsyncComponent(i){isFunction$6(i)&&(i={loader:i});const{loader:e,loadingComponent:r,errorComponent:s,delay:o=200,timeout:a,suspensible:l=!0,onError:c}=i;let u=null,d,g=0;const m=()=>(g++,u=null,y()),y=()=>{let b;return u||(b=u=e().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),c)return new Promise((A,E)=>{c(S,()=>A(m()),()=>E(S),g+1)});throw S}).then(S=>b!==u&&u?u:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),d=S,S)))};return defineComponent({name:"AsyncComponentWrapper",__asyncLoader:y,get __asyncResolved(){return d},setup(){const b=currentInstance;if(d)return()=>createInnerComp(d,b);const S=P=>{u=null,handleError(P,b,13,!s)};if(l&&b.suspense||isInSSRComponentSetup)return y().then(P=>()=>createInnerComp(P,b)).catch(P=>(S(P),()=>s?createVNode(s,{error:P}):null));const A=ref(!1),E=ref(),x=ref(!!o);return o&&setTimeout(()=>{x.value=!1},o),a!=null&&setTimeout(()=>{if(!A.value&&!E.value){const P=new Error(`Async component timed out after ${a}ms.`);S(P),E.value=P}},a),y().then(()=>{A.value=!0,b.parent&&isKeepAlive(b.parent.vnode)&&queueJob(b.parent.update)}).catch(P=>{S(P),E.value=P}),()=>{if(A.value&&d)return createInnerComp(d,b);if(E.value&&s)return createVNode(s,{error:E.value});if(r&&!x.value)return createVNode(r)}}})}function createInnerComp(i,e){const{ref:r,props:s,children:o,ce:a}=e.vnode,l=createVNode(i,s,o);return l.ref=r,l.ce=a,delete e.vnode.ce,l}const isKeepAlive=i=>i.type.__isKeepAlive;function onActivated(i,e){registerKeepAliveHook(i,"a",e)}function onDeactivated(i,e){registerKeepAliveHook(i,"da",e)}function registerKeepAliveHook(i,e,r=currentInstance){const s=i.__wdc||(i.__wdc=()=>{let o=r;for(;o;){if(o.isDeactivated)return;o=o.parent}return i()});if(injectHook(e,s,r),r){let o=r.parent;for(;o&&o.parent;)isKeepAlive(o.parent.vnode)&&injectToKeepAliveRoot(s,e,r,o),o=o.parent}}function injectToKeepAliveRoot(i,e,r,s){const o=injectHook(e,i,s,!0);onUnmounted(()=>{remove$7(s[e],o)},r)}function injectHook(i,e,r=currentInstance,s=!1){if(r){const o=r[i]||(r[i]=[]),a=e.__weh||(e.__weh=(...l)=>{if(r.isUnmounted)return;pauseTracking(),setCurrentInstance(r);const c=callWithAsyncErrorHandling(e,r,i,l);return unsetCurrentInstance(),resetTracking(),c});return s?o.unshift(a):o.push(a),a}}const createHook=i=>(e,r=currentInstance)=>(!isInSSRComponentSetup||i==="sp")&&injectHook(i,(...s)=>e(...s),r),onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(i,e=currentInstance){injectHook("ec",i,e)}function withDirectives(i,e){const r=currentRenderingInstance;if(r===null)return i;const s=getExposeProxy(r)||r.proxy,o=i.dirs||(i.dirs=[]);for(let a=0;ae(l,c,void 0,a&&a[c]));else{const l=Object.keys(i);o=new Array(l.length);for(let c=0,u=l.length;cisVNode(e)?!(e.type===Comment||e.type===Fragment&&!ensureValidVNode(e.children)):!0)?i:null}const getPublicInstance=i=>i?isStatefulComponent(i)?getExposeProxy(i)||i.proxy:getPublicInstance(i.parent):null,publicPropertiesMap=extend$3(Object.create(null),{$:i=>i,$el:i=>i.vnode.el,$data:i=>i.data,$props:i=>i.props,$attrs:i=>i.attrs,$slots:i=>i.slots,$refs:i=>i.refs,$parent:i=>getPublicInstance(i.parent),$root:i=>getPublicInstance(i.root),$emit:i=>i.emit,$options:i=>resolveMergedOptions(i),$forceUpdate:i=>i.f||(i.f=()=>queueJob(i.update)),$nextTick:i=>i.n||(i.n=nextTick.bind(i.proxy)),$watch:i=>instanceWatch.bind(i)}),hasSetupBinding=(i,e)=>i!==EMPTY_OBJ&&!i.__isScriptSetup&&hasOwn$2(i,e),PublicInstanceProxyHandlers={get({_:i},e){const{ctx:r,setupState:s,data:o,props:a,accessCache:l,type:c,appContext:u}=i;let d;if(e[0]!=="$"){const b=l[e];if(b!==void 0)switch(b){case 1:return s[e];case 2:return o[e];case 4:return r[e];case 3:return a[e]}else{if(hasSetupBinding(s,e))return l[e]=1,s[e];if(o!==EMPTY_OBJ&&hasOwn$2(o,e))return l[e]=2,o[e];if((d=i.propsOptions[0])&&hasOwn$2(d,e))return l[e]=3,a[e];if(r!==EMPTY_OBJ&&hasOwn$2(r,e))return l[e]=4,r[e];shouldCacheAccess&&(l[e]=0)}}const g=publicPropertiesMap[e];let m,y;if(g)return e==="$attrs"&&track(i,"get",e),g(i);if((m=c.__cssModules)&&(m=m[e]))return m;if(r!==EMPTY_OBJ&&hasOwn$2(r,e))return l[e]=4,r[e];if(y=u.config.globalProperties,hasOwn$2(y,e))return y[e]},set({_:i},e,r){const{data:s,setupState:o,ctx:a}=i;return hasSetupBinding(o,e)?(o[e]=r,!0):s!==EMPTY_OBJ&&hasOwn$2(s,e)?(s[e]=r,!0):hasOwn$2(i.props,e)||e[0]==="$"&&e.slice(1)in i?!1:(a[e]=r,!0)},has({_:{data:i,setupState:e,accessCache:r,ctx:s,appContext:o,propsOptions:a}},l){let c;return!!r[l]||i!==EMPTY_OBJ&&hasOwn$2(i,l)||hasSetupBinding(e,l)||(c=a[0])&&hasOwn$2(c,l)||hasOwn$2(s,l)||hasOwn$2(publicPropertiesMap,l)||hasOwn$2(o.config.globalProperties,l)},defineProperty(i,e,r){return r.get!=null?i._.accessCache[e]=0:hasOwn$2(r,"value")&&this.set(i,e,r.value,null),Reflect.defineProperty(i,e,r)}};let shouldCacheAccess=!0;function applyOptions(i){const e=resolveMergedOptions(i),r=i.proxy,s=i.ctx;shouldCacheAccess=!1,e.beforeCreate&&callHook$1(e.beforeCreate,i,"bc");const{data:o,computed:a,methods:l,watch:c,provide:u,inject:d,created:g,beforeMount:m,mounted:y,beforeUpdate:b,updated:S,activated:A,deactivated:E,beforeDestroy:x,beforeUnmount:P,destroyed:T,unmounted:C,render:M,renderTracked:B,renderTriggered:I,errorCaptured:k,serverPrefetch:D,expose:O,inheritAttrs:z,components:N,directives:Q,filters:_}=e;if(d&&resolveInjections(d,s,null,i.appContext.config.unwrapInjectedRef),l)for(const H in l){const R=l[H];isFunction$6(R)&&(s[H]=R.bind(r))}if(o){const H=o.call(r,r);isObject$5(H)&&(i.data=reactive(H))}if(shouldCacheAccess=!0,a)for(const H in a){const R=a[H],V=isFunction$6(R)?R.bind(r,r):isFunction$6(R.get)?R.get.bind(r,r):NOOP,te=!isFunction$6(R)&&isFunction$6(R.set)?R.set.bind(r):NOOP,W=computed({get:V,set:te});Object.defineProperty(s,H,{enumerable:!0,configurable:!0,get:()=>W.value,set:$=>W.value=$})}if(c)for(const H in c)createWatcher(c[H],s,r,H);if(u){const H=isFunction$6(u)?u.call(r):u;Reflect.ownKeys(H).forEach(R=>{provide(R,H[R])})}g&&callHook$1(g,i,"c");function G(H,R){isArray$9(R)?R.forEach(V=>H(V.bind(r))):R&&H(R.bind(r))}if(G(onBeforeMount,m),G(onMounted,y),G(onBeforeUpdate,b),G(onUpdated,S),G(onActivated,A),G(onDeactivated,E),G(onErrorCaptured,k),G(onRenderTracked,B),G(onRenderTriggered,I),G(onBeforeUnmount,P),G(onUnmounted,C),G(onServerPrefetch,D),isArray$9(O))if(O.length){const H=i.exposed||(i.exposed={});O.forEach(R=>{Object.defineProperty(H,R,{get:()=>r[R],set:V=>r[R]=V})})}else i.exposed||(i.exposed={});M&&i.render===NOOP&&(i.render=M),z!=null&&(i.inheritAttrs=z),N&&(i.components=N),Q&&(i.directives=Q)}function resolveInjections(i,e,r=NOOP,s=!1){isArray$9(i)&&(i=normalizeInject(i));for(const o in i){const a=i[o];let l;isObject$5(a)?"default"in a?l=inject(a.from||o,a.default,!0):l=inject(a.from||o):l=inject(a),isRef(l)&&s?Object.defineProperty(e,o,{enumerable:!0,configurable:!0,get:()=>l.value,set:c=>l.value=c}):e[o]=l}}function callHook$1(i,e,r){callWithAsyncErrorHandling(isArray$9(i)?i.map(s=>s.bind(e.proxy)):i.bind(e.proxy),e,r)}function createWatcher(i,e,r,s){const o=s.includes(".")?createPathGetter(r,s):()=>r[s];if(isString$2(i)){const a=e[i];isFunction$6(a)&&watch(o,a)}else if(isFunction$6(i))watch(o,i.bind(r));else if(isObject$5(i))if(isArray$9(i))i.forEach(a=>createWatcher(a,e,r,s));else{const a=isFunction$6(i.handler)?i.handler.bind(r):e[i.handler];isFunction$6(a)&&watch(o,a,i)}}function resolveMergedOptions(i){const e=i.type,{mixins:r,extends:s}=e,{mixins:o,optionsCache:a,config:{optionMergeStrategies:l}}=i.appContext,c=a.get(e);let u;return c?u=c:!o.length&&!r&&!s?u=e:(u={},o.length&&o.forEach(d=>mergeOptions$1(u,d,l,!0)),mergeOptions$1(u,e,l)),isObject$5(e)&&a.set(e,u),u}function mergeOptions$1(i,e,r,s=!1){const{mixins:o,extends:a}=e;a&&mergeOptions$1(i,a,r,!0),o&&o.forEach(l=>mergeOptions$1(i,l,r,!0));for(const l in e)if(!(s&&l==="expose")){const c=internalOptionMergeStrats[l]||r&&r[l];i[l]=c?c(i[l],e[l]):e[l]}return i}const internalOptionMergeStrats={data:mergeDataFn,props:mergeObjectOptions,emits:mergeObjectOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray,created:mergeAsArray,beforeMount:mergeAsArray,mounted:mergeAsArray,beforeUpdate:mergeAsArray,updated:mergeAsArray,beforeDestroy:mergeAsArray,beforeUnmount:mergeAsArray,destroyed:mergeAsArray,unmounted:mergeAsArray,activated:mergeAsArray,deactivated:mergeAsArray,errorCaptured:mergeAsArray,serverPrefetch:mergeAsArray,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(i,e){return e?i?function(){return extend$3(isFunction$6(i)?i.call(this,this):i,isFunction$6(e)?e.call(this,this):e)}:e:i}function mergeInject(i,e){return mergeObjectOptions(normalizeInject(i),normalizeInject(e))}function normalizeInject(i){if(isArray$9(i)){const e={};for(let r=0;r0)&&!(l&16)){if(l&8){const g=i.vnode.dynamicProps;for(let m=0;m{u=!0;const[y,b]=normalizePropsOptions(m,e,!0);extend$3(l,y),b&&c.push(...b)};!r&&e.mixins.length&&e.mixins.forEach(g),i.extends&&g(i.extends),i.mixins&&i.mixins.forEach(g)}if(!a&&!u)return isObject$5(i)&&s.set(i,EMPTY_ARR),EMPTY_ARR;if(isArray$9(a))for(let g=0;g-1,b[1]=A<0||S-1||hasOwn$2(b,"default"))&&c.push(m)}}}const d=[l,c];return isObject$5(i)&&s.set(i,d),d}function validatePropName(i){return i[0]!=="$"}function getType(i){const e=i&&i.toString().match(/^\s*(function|class) (\w+)/);return e?e[2]:i===null?"null":""}function isSameType(i,e){return getType(i)===getType(e)}function getTypeIndex(i,e){return isArray$9(e)?e.findIndex(r=>isSameType(r,i)):isFunction$6(e)&&isSameType(e,i)?0:-1}const isInternalKey=i=>i[0]==="_"||i==="$stable",normalizeSlotValue=i=>isArray$9(i)?i.map(normalizeVNode):[normalizeVNode(i)],normalizeSlot$1=(i,e,r)=>{if(e._n)return e;const s=withCtx((...o)=>normalizeSlotValue(e(...o)),r);return s._c=!1,s},normalizeObjectSlots=(i,e,r)=>{const s=i._ctx;for(const o in i){if(isInternalKey(o))continue;const a=i[o];if(isFunction$6(a))e[o]=normalizeSlot$1(o,a,s);else if(a!=null){const l=normalizeSlotValue(a);e[o]=()=>l}}},normalizeVNodeSlots=(i,e)=>{const r=normalizeSlotValue(e);i.slots.default=()=>r},initSlots=(i,e)=>{if(i.vnode.shapeFlag&32){const r=e._;r?(i.slots=toRaw(e),def(e,"_",r)):normalizeObjectSlots(e,i.slots={})}else i.slots={},e&&normalizeVNodeSlots(i,e);def(i.slots,InternalObjectKey,1)},updateSlots=(i,e,r)=>{const{vnode:s,slots:o}=i;let a=!0,l=EMPTY_OBJ;if(s.shapeFlag&32){const c=e._;c?r&&c===1?a=!1:(extend$3(o,e),!r&&c===1&&delete o._):(a=!e.$stable,normalizeObjectSlots(e,o)),l=e}else e&&(normalizeVNodeSlots(i,e),l={default:1});if(a)for(const c in o)!isInternalKey(c)&&!(c in l)&&delete o[c]};function createAppContext(){return{app:null,config:{isNativeTag:NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let uid$1=0;function createAppAPI(i,e){return function(s,o=null){isFunction$6(s)||(s=Object.assign({},s)),o!=null&&!isObject$5(o)&&(o=null);const a=createAppContext(),l=new Set;let c=!1;const u=a.app={_uid:uid$1++,_component:s,_props:o,_container:null,_context:a,_instance:null,version,get config(){return a.config},set config(d){},use(d,...g){return l.has(d)||(d&&isFunction$6(d.install)?(l.add(d),d.install(u,...g)):isFunction$6(d)&&(l.add(d),d(u,...g))),u},mixin(d){return a.mixins.includes(d)||a.mixins.push(d),u},component(d,g){return g?(a.components[d]=g,u):a.components[d]},directive(d,g){return g?(a.directives[d]=g,u):a.directives[d]},mount(d,g,m){if(!c){const y=createVNode(s,o);return y.appContext=a,g&&e?e(y,d):i(y,d,m),c=!0,u._container=d,d.__vue_app__=u,getExposeProxy(y.component)||y.component.proxy}},unmount(){c&&(i(null,u._container),delete u._container.__vue_app__)},provide(d,g){return a.provides[d]=g,u}};return u}}function setRef(i,e,r,s,o=!1){if(isArray$9(i)){i.forEach((y,b)=>setRef(y,e&&(isArray$9(e)?e[b]:e),r,s,o));return}if(isAsyncWrapper(s)&&!o)return;const a=s.shapeFlag&4?getExposeProxy(s.component)||s.component.proxy:s.el,l=o?null:a,{i:c,r:u}=i,d=e&&e.r,g=c.refs===EMPTY_OBJ?c.refs={}:c.refs,m=c.setupState;if(d!=null&&d!==u&&(isString$2(d)?(g[d]=null,hasOwn$2(m,d)&&(m[d]=null)):isRef(d)&&(d.value=null)),isFunction$6(u))callWithErrorHandling(u,c,12,[l,g]);else{const y=isString$2(u),b=isRef(u);if(y||b){const S=()=>{if(i.f){const A=y?hasOwn$2(m,u)?m[u]:g[u]:u.value;o?isArray$9(A)&&remove$7(A,a):isArray$9(A)?A.includes(a)||A.push(a):y?(g[u]=[a],hasOwn$2(m,u)&&(m[u]=g[u])):(u.value=[a],i.k&&(g[i.k]=u.value))}else y?(g[u]=l,hasOwn$2(m,u)&&(m[u]=l)):b&&(u.value=l,i.k&&(g[i.k]=l))};l?(S.id=-1,queuePostRenderEffect(S,r)):S()}}}const queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(i){return baseCreateRenderer(i)}function baseCreateRenderer(i,e){const r=getGlobalThis();r.__VUE__=!0;const{insert:s,remove:o,patchProp:a,createElement:l,createText:c,createComment:u,setText:d,setElementText:g,parentNode:m,nextSibling:y,setScopeId:b=NOOP,insertStaticContent:S}=i,A=(ee,ne,F,se=null,re=null,J=null,K=!1,ie=null,fe=!!ne.dynamicChildren)=>{if(ee===ne)return;ee&&!isSameVNodeType(ee,ne)&&(se=ue(ee),$(ee,re,J,!0),ee=null),ne.patchFlag===-2&&(fe=!1,ne.dynamicChildren=null);const{type:he,ref:le,shapeFlag:me}=ne;switch(he){case Text:E(ee,ne,F,se);break;case Comment:x(ee,ne,F,se);break;case Static:ee==null&&P(ne,F,se,K);break;case Fragment:N(ee,ne,F,se,re,J,K,ie,fe);break;default:me&1?M(ee,ne,F,se,re,J,K,ie,fe):me&6?Q(ee,ne,F,se,re,J,K,ie,fe):(me&64||me&128)&&he.process(ee,ne,F,se,re,J,K,ie,fe,pe)}le!=null&&re&&setRef(le,ee&&ee.ref,J,ne||ee,!ne)},E=(ee,ne,F,se)=>{if(ee==null)s(ne.el=c(ne.children),F,se);else{const re=ne.el=ee.el;ne.children!==ee.children&&d(re,ne.children)}},x=(ee,ne,F,se)=>{ee==null?s(ne.el=u(ne.children||""),F,se):ne.el=ee.el},P=(ee,ne,F,se)=>{[ee.el,ee.anchor]=S(ee.children,ne,F,se,ee.el,ee.anchor)},T=({el:ee,anchor:ne},F,se)=>{let re;for(;ee&&ee!==ne;)re=y(ee),s(ee,F,se),ee=re;s(ne,F,se)},C=({el:ee,anchor:ne})=>{let F;for(;ee&&ee!==ne;)F=y(ee),o(ee),ee=F;o(ne)},M=(ee,ne,F,se,re,J,K,ie,fe)=>{K=K||ne.type==="svg",ee==null?B(ne,F,se,re,J,K,ie,fe):D(ee,ne,re,J,K,ie,fe)},B=(ee,ne,F,se,re,J,K,ie)=>{let fe,he;const{type:le,props:me,shapeFlag:be,transition:ve,dirs:xe}=ee;if(fe=ee.el=l(ee.type,J,me&&me.is,me),be&8?g(fe,ee.children):be&16&&k(ee.children,fe,null,se,re,J&&le!=="foreignObject",K,ie),xe&&invokeDirectiveHook(ee,null,se,"created"),I(fe,ee,ee.scopeId,K,se),me){for(const ye in me)ye!=="value"&&!isReservedProp(ye)&&a(fe,ye,null,me[ye],J,ee.children,se,re,Z);"value"in me&&a(fe,"value",null,me.value),(he=me.onVnodeBeforeMount)&&invokeVNodeHook(he,se,ee)}xe&&invokeDirectiveHook(ee,null,se,"beforeMount");const Te=(!re||re&&!re.pendingBranch)&&ve&&!ve.persisted;Te&&ve.beforeEnter(fe),s(fe,ne,F),((he=me&&me.onVnodeMounted)||Te||xe)&&queuePostRenderEffect(()=>{he&&invokeVNodeHook(he,se,ee),Te&&ve.enter(fe),xe&&invokeDirectiveHook(ee,null,se,"mounted")},re)},I=(ee,ne,F,se,re)=>{if(F&&b(ee,F),se)for(let J=0;J{for(let he=fe;he{const ie=ne.el=ee.el;let{patchFlag:fe,dynamicChildren:he,dirs:le}=ne;fe|=ee.patchFlag&16;const me=ee.props||EMPTY_OBJ,be=ne.props||EMPTY_OBJ;let ve;F&&toggleRecurse(F,!1),(ve=be.onVnodeBeforeUpdate)&&invokeVNodeHook(ve,F,ne,ee),le&&invokeDirectiveHook(ne,ee,F,"beforeUpdate"),F&&toggleRecurse(F,!0);const xe=re&&ne.type!=="foreignObject";if(he?O(ee.dynamicChildren,he,ie,F,se,xe,J):K||R(ee,ne,ie,null,F,se,xe,J,!1),fe>0){if(fe&16)z(ie,ne,me,be,F,se,re);else if(fe&2&&me.class!==be.class&&a(ie,"class",null,be.class,re),fe&4&&a(ie,"style",me.style,be.style,re),fe&8){const Te=ne.dynamicProps;for(let ye=0;ye{ve&&invokeVNodeHook(ve,F,ne,ee),le&&invokeDirectiveHook(ne,ee,F,"updated")},se)},O=(ee,ne,F,se,re,J,K)=>{for(let ie=0;ie{if(F!==se){if(F!==EMPTY_OBJ)for(const ie in F)!isReservedProp(ie)&&!(ie in se)&&a(ee,ie,F[ie],null,K,ne.children,re,J,Z);for(const ie in se){if(isReservedProp(ie))continue;const fe=se[ie],he=F[ie];fe!==he&&ie!=="value"&&a(ee,ie,he,fe,K,ne.children,re,J,Z)}"value"in se&&a(ee,"value",F.value,se.value)}},N=(ee,ne,F,se,re,J,K,ie,fe)=>{const he=ne.el=ee?ee.el:c(""),le=ne.anchor=ee?ee.anchor:c("");let{patchFlag:me,dynamicChildren:be,slotScopeIds:ve}=ne;ve&&(ie=ie?ie.concat(ve):ve),ee==null?(s(he,F,se),s(le,F,se),k(ne.children,F,le,re,J,K,ie,fe)):me>0&&me&64&&be&&ee.dynamicChildren?(O(ee.dynamicChildren,be,F,re,J,K,ie),(ne.key!=null||re&&ne===re.subTree)&&traverseStaticChildren(ee,ne,!0)):R(ee,ne,F,le,re,J,K,ie,fe)},Q=(ee,ne,F,se,re,J,K,ie,fe)=>{ne.slotScopeIds=ie,ee==null?ne.shapeFlag&512?re.ctx.activate(ne,F,se,K,fe):_(ne,F,se,re,J,K,fe):U(ee,ne,fe)},_=(ee,ne,F,se,re,J,K)=>{const ie=ee.component=createComponentInstance(ee,se,re);if(isKeepAlive(ee)&&(ie.ctx.renderer=pe),setupComponent(ie),ie.asyncDep){if(re&&re.registerDep(ie,G),!ee.el){const fe=ie.subTree=createVNode(Comment);x(null,fe,ne,F)}return}G(ie,ee,ne,F,re,J,K)},U=(ee,ne,F)=>{const se=ne.component=ee.component;if(shouldUpdateComponent(ee,ne,F))if(se.asyncDep&&!se.asyncResolved){H(se,ne,F);return}else se.next=ne,invalidateJob(se.update),se.update();else ne.el=ee.el,se.vnode=ne},G=(ee,ne,F,se,re,J,K)=>{const ie=()=>{if(ee.isMounted){let{next:le,bu:me,u:be,parent:ve,vnode:xe}=ee,Te=le,ye;toggleRecurse(ee,!1),le?(le.el=xe.el,H(ee,le,K)):le=xe,me&&invokeArrayFns(me),(ye=le.props&&le.props.onVnodeBeforeUpdate)&&invokeVNodeHook(ye,ve,le,xe),toggleRecurse(ee,!0);const Pe=renderComponentRoot(ee),Me=ee.subTree;ee.subTree=Pe,A(Me,Pe,m(Me.el),ue(Me),ee,re,J),le.el=Pe.el,Te===null&&updateHOCHostEl(ee,Pe.el),be&&queuePostRenderEffect(be,re),(ye=le.props&&le.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(ye,ve,le,xe),re)}else{let le;const{el:me,props:be}=ne,{bm:ve,m:xe,parent:Te}=ee,ye=isAsyncWrapper(ne);if(toggleRecurse(ee,!1),ve&&invokeArrayFns(ve),!ye&&(le=be&&be.onVnodeBeforeMount)&&invokeVNodeHook(le,Te,ne),toggleRecurse(ee,!0),me&&ge){const Pe=()=>{ee.subTree=renderComponentRoot(ee),ge(me,ee.subTree,ee,re,null)};ye?ne.type.__asyncLoader().then(()=>!ee.isUnmounted&&Pe()):Pe()}else{const Pe=ee.subTree=renderComponentRoot(ee);A(null,Pe,F,se,ee,re,J),ne.el=Pe.el}if(xe&&queuePostRenderEffect(xe,re),!ye&&(le=be&&be.onVnodeMounted)){const Pe=ne;queuePostRenderEffect(()=>invokeVNodeHook(le,Te,Pe),re)}(ne.shapeFlag&256||Te&&isAsyncWrapper(Te.vnode)&&Te.vnode.shapeFlag&256)&&ee.a&&queuePostRenderEffect(ee.a,re),ee.isMounted=!0,ne=F=se=null}},fe=ee.effect=new ReactiveEffect(ie,()=>queueJob(he),ee.scope),he=ee.update=()=>fe.run();he.id=ee.uid,toggleRecurse(ee,!0),he()},H=(ee,ne,F)=>{ne.component=ee;const se=ee.vnode.props;ee.vnode=ne,ee.next=null,updateProps(ee,ne.props,se,F),updateSlots(ee,ne.children,F),pauseTracking(),flushPreFlushCbs(),resetTracking()},R=(ee,ne,F,se,re,J,K,ie,fe=!1)=>{const he=ee&&ee.children,le=ee?ee.shapeFlag:0,me=ne.children,{patchFlag:be,shapeFlag:ve}=ne;if(be>0){if(be&128){te(he,me,F,se,re,J,K,ie,fe);return}else if(be&256){V(he,me,F,se,re,J,K,ie,fe);return}}ve&8?(le&16&&Z(he,re,J),me!==he&&g(F,me)):le&16?ve&16?te(he,me,F,se,re,J,K,ie,fe):Z(he,re,J,!0):(le&8&&g(F,""),ve&16&&k(me,F,se,re,J,K,ie,fe))},V=(ee,ne,F,se,re,J,K,ie,fe)=>{ee=ee||EMPTY_ARR,ne=ne||EMPTY_ARR;const he=ee.length,le=ne.length,me=Math.min(he,le);let be;for(be=0;bele?Z(ee,re,J,!0,!1,me):k(ne,F,se,re,J,K,ie,fe,me)},te=(ee,ne,F,se,re,J,K,ie,fe)=>{let he=0;const le=ne.length;let me=ee.length-1,be=le-1;for(;he<=me&&he<=be;){const ve=ee[he],xe=ne[he]=fe?cloneIfMounted(ne[he]):normalizeVNode(ne[he]);if(isSameVNodeType(ve,xe))A(ve,xe,F,null,re,J,K,ie,fe);else break;he++}for(;he<=me&&he<=be;){const ve=ee[me],xe=ne[be]=fe?cloneIfMounted(ne[be]):normalizeVNode(ne[be]);if(isSameVNodeType(ve,xe))A(ve,xe,F,null,re,J,K,ie,fe);else break;me--,be--}if(he>me){if(he<=be){const ve=be+1,xe=vebe)for(;he<=me;)$(ee[he],re,J,!0),he++;else{const ve=he,xe=he,Te=new Map;for(he=xe;he<=be;he++){const Fe=ne[he]=fe?cloneIfMounted(ne[he]):normalizeVNode(ne[he]);Fe.key!=null&&Te.set(Fe.key,he)}let ye,Pe=0;const Me=be-xe+1;let Ne=!1,it=0;const Le=new Array(Me);for(he=0;he=Me){$(Fe,re,J,!0);continue}let Oe;if(Fe.key!=null)Oe=Te.get(Fe.key);else for(ye=xe;ye<=be;ye++)if(Le[ye-xe]===0&&isSameVNodeType(Fe,ne[ye])){Oe=ye;break}Oe===void 0?$(Fe,re,J,!0):(Le[Oe-xe]=he+1,Oe>=it?it=Oe:Ne=!0,A(Fe,ne[Oe],F,null,re,J,K,ie,fe),Pe++)}const Qe=Ne?getSequence(Le):EMPTY_ARR;for(ye=Qe.length-1,he=Me-1;he>=0;he--){const Fe=xe+he,Oe=ne[Fe],ft=Fe+1{const{el:J,type:K,transition:ie,children:fe,shapeFlag:he}=ee;if(he&6){W(ee.component.subTree,ne,F,se);return}if(he&128){ee.suspense.move(ne,F,se);return}if(he&64){K.move(ee,ne,F,pe);return}if(K===Fragment){s(J,ne,F);for(let me=0;meie.enter(J),re);else{const{leave:me,delayLeave:be,afterLeave:ve}=ie,xe=()=>s(J,ne,F),Te=()=>{me(J,()=>{xe(),ve&&ve()})};be?be(J,xe,Te):Te()}else s(J,ne,F)},$=(ee,ne,F,se=!1,re=!1)=>{const{type:J,props:K,ref:ie,children:fe,dynamicChildren:he,shapeFlag:le,patchFlag:me,dirs:be}=ee;if(ie!=null&&setRef(ie,null,F,ee,!0),le&256){ne.ctx.deactivate(ee);return}const ve=le&1&&be,xe=!isAsyncWrapper(ee);let Te;if(xe&&(Te=K&&K.onVnodeBeforeUnmount)&&invokeVNodeHook(Te,ne,ee),le&6)Y(ee.component,F,se);else{if(le&128){ee.suspense.unmount(F,se);return}ve&&invokeDirectiveHook(ee,null,ne,"beforeUnmount"),le&64?ee.type.remove(ee,ne,F,re,pe,se):he&&(J!==Fragment||me>0&&me&64)?Z(he,ne,F,!1,!0):(J===Fragment&&me&384||!re&&le&16)&&Z(fe,ne,F),se&&de(ee)}(xe&&(Te=K&&K.onVnodeUnmounted)||ve)&&queuePostRenderEffect(()=>{Te&&invokeVNodeHook(Te,ne,ee),ve&&invokeDirectiveHook(ee,null,ne,"unmounted")},F)},de=ee=>{const{type:ne,el:F,anchor:se,transition:re}=ee;if(ne===Fragment){oe(F,se);return}if(ne===Static){C(ee);return}const J=()=>{o(F),re&&!re.persisted&&re.afterLeave&&re.afterLeave()};if(ee.shapeFlag&1&&re&&!re.persisted){const{leave:K,delayLeave:ie}=re,fe=()=>K(F,J);ie?ie(ee.el,J,fe):fe()}else J()},oe=(ee,ne)=>{let F;for(;ee!==ne;)F=y(ee),o(ee),ee=F;o(ne)},Y=(ee,ne,F)=>{const{bum:se,scope:re,update:J,subTree:K,um:ie}=ee;se&&invokeArrayFns(se),re.stop(),J&&(J.active=!1,$(K,ee,ne,F)),ie&&queuePostRenderEffect(ie,ne),queuePostRenderEffect(()=>{ee.isUnmounted=!0},ne),ne&&ne.pendingBranch&&!ne.isUnmounted&&ee.asyncDep&&!ee.asyncResolved&&ee.suspenseId===ne.pendingId&&(ne.deps--,ne.deps===0&&ne.resolve())},Z=(ee,ne,F,se=!1,re=!1,J=0)=>{for(let K=J;Kee.shapeFlag&6?ue(ee.component.subTree):ee.shapeFlag&128?ee.suspense.next():y(ee.anchor||ee.el),ae=(ee,ne,F)=>{ee==null?ne._vnode&&$(ne._vnode,null,null,!0):A(ne._vnode||null,ee,ne,null,null,null,F),flushPreFlushCbs(),flushPostFlushCbs(),ne._vnode=ee},pe={p:A,um:$,m:W,r:de,mt:_,mc:k,pc:R,pbc:O,n:ue,o:i};let Se,ge;return e&&([Se,ge]=e(pe)),{render:ae,hydrate:Se,createApp:createAppAPI(ae,Se)}}function toggleRecurse({effect:i,update:e},r){i.allowRecurse=e.allowRecurse=r}function traverseStaticChildren(i,e,r=!1){const s=i.children,o=e.children;if(isArray$9(s)&&isArray$9(o))for(let a=0;a>1,i[r[c]]0&&(e[s]=r[a-1]),r[a]=s)}}for(a=r.length,l=r[a-1];a-- >0;)r[a]=l,l=e[l];return r}const isTeleport=i=>i.__isTeleport,isTeleportDisabled=i=>i&&(i.disabled||i.disabled===""),isTargetSVG=i=>typeof SVGElement<"u"&&i instanceof SVGElement,resolveTarget=(i,e)=>{const r=i&&i.to;return isString$2(r)?e?e(r):null:r},TeleportImpl={__isTeleport:!0,process(i,e,r,s,o,a,l,c,u,d){const{mc:g,pc:m,pbc:y,o:{insert:b,querySelector:S,createText:A,createComment:E}}=d,x=isTeleportDisabled(e.props);let{shapeFlag:P,children:T,dynamicChildren:C}=e;if(i==null){const M=e.el=A(""),B=e.anchor=A("");b(M,r,s),b(B,r,s);const I=e.target=resolveTarget(e.props,S),k=e.targetAnchor=A("");I&&(b(k,I),l=l||isTargetSVG(I));const D=(O,z)=>{P&16&&g(T,O,z,o,a,l,c,u)};x?D(r,B):I&&D(I,k)}else{e.el=i.el;const M=e.anchor=i.anchor,B=e.target=i.target,I=e.targetAnchor=i.targetAnchor,k=isTeleportDisabled(i.props),D=k?r:B,O=k?M:I;if(l=l||isTargetSVG(B),C?(y(i.dynamicChildren,C,D,o,a,l,c),traverseStaticChildren(i,e,!0)):u||m(i,e,D,O,o,a,l,c,!1),x)k||moveTeleport(e,r,M,d,1);else if((e.props&&e.props.to)!==(i.props&&i.props.to)){const z=e.target=resolveTarget(e.props,S);z&&moveTeleport(e,z,null,d,0)}else k&&moveTeleport(e,B,I,d,1)}updateCssVars(e)},remove(i,e,r,s,{um:o,o:{remove:a}},l){const{shapeFlag:c,children:u,anchor:d,targetAnchor:g,target:m,props:y}=i;if(m&&a(g),(l||!isTeleportDisabled(y))&&(a(d),c&16))for(let b=0;b0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(i),i}function createElementBlock(i,e,r,s,o,a){return setupBlock(createBaseVNode(i,e,r,s,o,a,!0))}function createBlock(i,e,r,s,o){return setupBlock(createVNode(i,e,r,s,o,!0))}function isVNode(i){return i?i.__v_isVNode===!0:!1}function isSameVNodeType(i,e){return i.type===e.type&&i.key===e.key}const InternalObjectKey="__vInternal",normalizeKey=({key:i})=>i!=null?i:null,normalizeRef=({ref:i,ref_key:e,ref_for:r})=>i!=null?isString$2(i)||isRef(i)||isFunction$6(i)?{i:currentRenderingInstance,r:i,k:e,f:!!r}:i:null;function createBaseVNode(i,e=null,r=null,s=0,o=null,a=i===Fragment?0:1,l=!1,c=!1){const u={__v_isVNode:!0,__v_skip:!0,type:i,props:e,key:e&&normalizeKey(e),ref:e&&normalizeRef(e),scopeId:currentScopeId,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:currentRenderingInstance};return c?(normalizeChildren(u,r),a&128&&i.normalize(u)):r&&(u.shapeFlag|=isString$2(r)?8:16),isBlockTreeEnabled>0&&!l&¤tBlock&&(u.patchFlag>0||a&6)&&u.patchFlag!==32&¤tBlock.push(u),u}const createVNode=_createVNode;function _createVNode(i,e=null,r=null,s=0,o=null,a=!1){if((!i||i===NULL_DYNAMIC_COMPONENT)&&(i=Comment),isVNode(i)){const c=cloneVNode(i,e,!0);return r&&normalizeChildren(c,r),isBlockTreeEnabled>0&&!a&¤tBlock&&(c.shapeFlag&6?currentBlock[currentBlock.indexOf(i)]=c:currentBlock.push(c)),c.patchFlag|=-2,c}if(isClassComponent(i)&&(i=i.__vccOpts),e){e=guardReactiveProps(e);let{class:c,style:u}=e;c&&!isString$2(c)&&(e.class=normalizeClass(c)),isObject$5(u)&&(isProxy(u)&&!isArray$9(u)&&(u=extend$3({},u)),e.style=normalizeStyle(u))}const l=isString$2(i)?1:isSuspense(i)?128:isTeleport(i)?64:isObject$5(i)?4:isFunction$6(i)?2:0;return createBaseVNode(i,e,r,s,o,l,a,!0)}function guardReactiveProps(i){return i?isProxy(i)||InternalObjectKey in i?extend$3({},i):i:null}function cloneVNode(i,e,r=!1){const{props:s,ref:o,patchFlag:a,children:l}=i,c=e?mergeProps(s||{},e):s;return{__v_isVNode:!0,__v_skip:!0,type:i.type,props:c,key:c&&normalizeKey(c),ref:e&&e.ref?r&&o?isArray$9(o)?o.concat(normalizeRef(e)):[o,normalizeRef(e)]:normalizeRef(e):o,scopeId:i.scopeId,slotScopeIds:i.slotScopeIds,children:l,target:i.target,targetAnchor:i.targetAnchor,staticCount:i.staticCount,shapeFlag:i.shapeFlag,patchFlag:e&&i.type!==Fragment?a===-1?16:a|16:a,dynamicProps:i.dynamicProps,dynamicChildren:i.dynamicChildren,appContext:i.appContext,dirs:i.dirs,transition:i.transition,component:i.component,suspense:i.suspense,ssContent:i.ssContent&&cloneVNode(i.ssContent),ssFallback:i.ssFallback&&cloneVNode(i.ssFallback),el:i.el,anchor:i.anchor,ctx:i.ctx,ce:i.ce}}function createTextVNode(i=" ",e=0){return createVNode(Text,null,i,e)}function createCommentVNode(i="",e=!1){return e?(openBlock(),createBlock(Comment,null,i)):createVNode(Comment,null,i)}function normalizeVNode(i){return i==null||typeof i=="boolean"?createVNode(Comment):isArray$9(i)?createVNode(Fragment,null,i.slice()):typeof i=="object"?cloneIfMounted(i):createVNode(Text,null,String(i))}function cloneIfMounted(i){return i.el===null&&i.patchFlag!==-1||i.memo?i:cloneVNode(i)}function normalizeChildren(i,e){let r=0;const{shapeFlag:s}=i;if(e==null)e=null;else if(isArray$9(e))r=16;else if(typeof e=="object")if(s&65){const o=e.default;o&&(o._c&&(o._d=!1),normalizeChildren(i,o()),o._c&&(o._d=!0));return}else{r=32;const o=e._;!o&&!(InternalObjectKey in e)?e._ctx=currentRenderingInstance:o===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?e._=1:(e._=2,i.patchFlag|=1024))}else isFunction$6(e)?(e={default:e,_ctx:currentRenderingInstance},r=32):(e=String(e),s&64?(r=16,e=[createTextVNode(e)]):r=8);i.children=e,i.shapeFlag|=r}function mergeProps(...i){const e={};for(let r=0;rcurrentInstance||currentRenderingInstance,setCurrentInstance=i=>{currentInstance=i,i.scope.on()},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),currentInstance=null};function isStatefulComponent(i){return i.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(i,e=!1){isInSSRComponentSetup=e;const{props:r,children:s}=i.vnode,o=isStatefulComponent(i);initProps(i,r,o,e),initSlots(i,s);const a=o?setupStatefulComponent(i,e):void 0;return isInSSRComponentSetup=!1,a}function setupStatefulComponent(i,e){const r=i.type;i.accessCache=Object.create(null),i.proxy=markRaw(new Proxy(i.ctx,PublicInstanceProxyHandlers));const{setup:s}=r;if(s){const o=i.setupContext=s.length>1?createSetupContext(i):null;setCurrentInstance(i),pauseTracking();const a=callWithErrorHandling(s,i,0,[i.props,o]);if(resetTracking(),unsetCurrentInstance(),isPromise$1(a)){if(a.then(unsetCurrentInstance,unsetCurrentInstance),e)return a.then(l=>{handleSetupResult(i,l,e)}).catch(l=>{handleError(l,i,0)});i.asyncDep=a}else handleSetupResult(i,a,e)}else finishComponentSetup(i,e)}function handleSetupResult(i,e,r){isFunction$6(e)?i.type.__ssrInlineRender?i.ssrRender=e:i.render=e:isObject$5(e)&&(i.setupState=proxyRefs(e)),finishComponentSetup(i,r)}let compile$1;function finishComponentSetup(i,e,r){const s=i.type;if(!i.render){if(!e&&compile$1&&!s.render){const o=s.template||resolveMergedOptions(i).template;if(o){const{isCustomElement:a,compilerOptions:l}=i.appContext.config,{delimiters:c,compilerOptions:u}=s,d=extend$3(extend$3({isCustomElement:a,delimiters:c},l),u);s.render=compile$1(o,d)}}i.render=s.render||NOOP}setCurrentInstance(i),pauseTracking(),applyOptions(i),resetTracking(),unsetCurrentInstance()}function createAttrsProxy(i){return new Proxy(i.attrs,{get(e,r){return track(i,"get","$attrs"),e[r]}})}function createSetupContext(i){const e=s=>{i.exposed=s||{}};let r;return{get attrs(){return r||(r=createAttrsProxy(i))},slots:i.slots,emit:i.emit,expose:e}}function getExposeProxy(i){if(i.exposed)return i.exposeProxy||(i.exposeProxy=new Proxy(proxyRefs(markRaw(i.exposed)),{get(e,r){if(r in e)return e[r];if(r in publicPropertiesMap)return publicPropertiesMap[r](i)},has(e,r){return r in e||r in publicPropertiesMap}}))}function getComponentName(i,e=!0){return isFunction$6(i)?i.displayName||i.name:i.name||e&&i.__name}function isClassComponent(i){return isFunction$6(i)&&"__vccOpts"in i}const computed=(i,e)=>computed$1(i,e,isInSSRComponentSetup);function h$1(i,e,r){const s=arguments.length;return s===2?isObject$5(e)&&!isArray$9(e)?isVNode(e)?createVNode(i,null,[e]):createVNode(i,e):createVNode(i,null,e):(s>3?r=Array.prototype.slice.call(arguments,2):s===3&&isVNode(r)&&(r=[r]),createVNode(i,e,r))}const ssrContextKey=Symbol(""),useSSRContext=()=>inject(ssrContextKey),version="3.2.47",svgNS="http://www.w3.org/2000/svg",doc$2=typeof document<"u"?document:null,templateContainer=doc$2&&doc$2.createElement("template"),nodeOps={insert:(i,e,r)=>{e.insertBefore(i,r||null)},remove:i=>{const e=i.parentNode;e&&e.removeChild(i)},createElement:(i,e,r,s)=>{const o=e?doc$2.createElementNS(svgNS,i):doc$2.createElement(i,r?{is:r}:void 0);return i==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:i=>doc$2.createTextNode(i),createComment:i=>doc$2.createComment(i),setText:(i,e)=>{i.nodeValue=e},setElementText:(i,e)=>{i.textContent=e},parentNode:i=>i.parentNode,nextSibling:i=>i.nextSibling,querySelector:i=>doc$2.querySelector(i),setScopeId(i,e){i.setAttribute(e,"")},insertStaticContent(i,e,r,s,o,a){const l=r?r.previousSibling:e.lastChild;if(o&&(o===a||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),r),!(o===a||!(o=o.nextSibling)););else{templateContainer.innerHTML=s?`${i}`:i;const c=templateContainer.content;if(s){const u=c.firstChild;for(;u.firstChild;)c.appendChild(u.firstChild);c.removeChild(u)}e.insertBefore(c,r)}return[l?l.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}};function patchClass(i,e,r){const s=i._vtc;s&&(e=(e?[e,...s]:[...s]).join(" ")),e==null?i.removeAttribute("class"):r?i.setAttribute("class",e):i.className=e}function patchStyle(i,e,r){const s=i.style,o=isString$2(r);if(r&&!o){if(e&&!isString$2(e))for(const a in e)r[a]==null&&setStyle(s,a,"");for(const a in r)setStyle(s,a,r[a])}else{const a=s.display;o?e!==r&&(s.cssText=r):e&&i.removeAttribute("style"),"_vod"in i&&(s.display=a)}}const importantRE=/\s*!important$/;function setStyle(i,e,r){if(isArray$9(r))r.forEach(s=>setStyle(i,e,s));else if(r==null&&(r=""),e.startsWith("--"))i.setProperty(e,r);else{const s=autoPrefix(i,e);importantRE.test(r)?i.setProperty(hyphenate(s),r.replace(importantRE,""),"important"):i[s]=r}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(i,e){const r=prefixCache[e];if(r)return r;let s=camelize$2(e);if(s!=="filter"&&s in i)return prefixCache[e]=s;s=capitalize(s);for(let o=0;ocachedNow||(p.then(()=>cachedNow=0),cachedNow=Date.now());function createInvoker(i,e){const r=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=r.attached)return;callWithAsyncErrorHandling(patchStopImmediatePropagation(s,r.value),e,5,[s])};return r.value=i,r.attached=getNow(),r}function patchStopImmediatePropagation(i,e){if(isArray$9(e)){const r=i.stopImmediatePropagation;return i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0},e.map(s=>o=>!o._stopped&&s&&s(o))}else return e}const nativeOnRE=/^on[a-z]/,patchProp=(i,e,r,s,o=!1,a,l,c,u)=>{e==="class"?patchClass(i,s,o):e==="style"?patchStyle(i,r,s):isOn(e)?isModelListener(e)||patchEvent(i,e,r,s,l):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):shouldSetAsProp(i,e,s,o))?patchDOMProp(i,e,s,a,l,c,u):(e==="true-value"?i._trueValue=s:e==="false-value"&&(i._falseValue=s),patchAttr(i,e,s,o))};function shouldSetAsProp(i,e,r,s){return s?!!(e==="innerHTML"||e==="textContent"||e in i&&nativeOnRE.test(e)&&isFunction$6(r)):e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&i.tagName==="INPUT"||e==="type"&&i.tagName==="TEXTAREA"||nativeOnRE.test(e)&&isString$2(r)?!1:e in i}const TRANSITION="transition",ANIMATION="animation",Transition=(i,{slots:e})=>h$1(BaseTransition,resolveTransitionProps(i),e);Transition.displayName="Transition";const DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=Transition.props=extend$3({},BaseTransition.props,DOMTransitionPropsValidators),callHook=(i,e=[])=>{isArray$9(i)?i.forEach(r=>r(...e)):i&&i(...e)},hasExplicitCallback=i=>i?isArray$9(i)?i.some(e=>e.length>1):i.length>1:!1;function resolveTransitionProps(i){const e={};for(const N in i)N in DOMTransitionPropsValidators||(e[N]=i[N]);if(i.css===!1)return e;const{name:r="v",type:s,duration:o,enterFromClass:a=`${r}-enter-from`,enterActiveClass:l=`${r}-enter-active`,enterToClass:c=`${r}-enter-to`,appearFromClass:u=a,appearActiveClass:d=l,appearToClass:g=c,leaveFromClass:m=`${r}-leave-from`,leaveActiveClass:y=`${r}-leave-active`,leaveToClass:b=`${r}-leave-to`}=i,S=normalizeDuration(o),A=S&&S[0],E=S&&S[1],{onBeforeEnter:x,onEnter:P,onEnterCancelled:T,onLeave:C,onLeaveCancelled:M,onBeforeAppear:B=x,onAppear:I=P,onAppearCancelled:k=T}=e,D=(N,Q,_)=>{removeTransitionClass(N,Q?g:c),removeTransitionClass(N,Q?d:l),_&&_()},O=(N,Q)=>{N._isLeaving=!1,removeTransitionClass(N,m),removeTransitionClass(N,b),removeTransitionClass(N,y),Q&&Q()},z=N=>(Q,_)=>{const U=N?I:P,G=()=>D(Q,N,_);callHook(U,[Q,G]),nextFrame(()=>{removeTransitionClass(Q,N?u:a),addTransitionClass(Q,N?g:c),hasExplicitCallback(U)||whenTransitionEnds(Q,s,A,G)})};return extend$3(e,{onBeforeEnter(N){callHook(x,[N]),addTransitionClass(N,a),addTransitionClass(N,l)},onBeforeAppear(N){callHook(B,[N]),addTransitionClass(N,u),addTransitionClass(N,d)},onEnter:z(!1),onAppear:z(!0),onLeave(N,Q){N._isLeaving=!0;const _=()=>O(N,Q);addTransitionClass(N,m),forceReflow(),addTransitionClass(N,y),nextFrame(()=>{N._isLeaving&&(removeTransitionClass(N,m),addTransitionClass(N,b),hasExplicitCallback(C)||whenTransitionEnds(N,s,E,_))}),callHook(C,[N,_])},onEnterCancelled(N){D(N,!1),callHook(T,[N])},onAppearCancelled(N){D(N,!0),callHook(k,[N])},onLeaveCancelled(N){O(N),callHook(M,[N])}})}function normalizeDuration(i){if(i==null)return null;if(isObject$5(i))return[NumberOf(i.enter),NumberOf(i.leave)];{const e=NumberOf(i);return[e,e]}}function NumberOf(i){return toNumber$1(i)}function addTransitionClass(i,e){e.split(/\s+/).forEach(r=>r&&i.classList.add(r)),(i._vtc||(i._vtc=new Set)).add(e)}function removeTransitionClass(i,e){e.split(/\s+/).forEach(s=>s&&i.classList.remove(s));const{_vtc:r}=i;r&&(r.delete(e),r.size||(i._vtc=void 0))}function nextFrame(i){requestAnimationFrame(()=>{requestAnimationFrame(i)})}let endId=0;function whenTransitionEnds(i,e,r,s){const o=i._endId=++endId,a=()=>{o===i._endId&&s()};if(r)return setTimeout(a,r);const{type:l,timeout:c,propCount:u}=getTransitionInfo(i,e);if(!l)return s();const d=l+"end";let g=0;const m=()=>{i.removeEventListener(d,y),a()},y=b=>{b.target===i&&++g>=u&&m()};setTimeout(()=>{g(r[S]||"").split(", "),o=s(`${TRANSITION}Delay`),a=s(`${TRANSITION}Duration`),l=getTimeout(o,a),c=s(`${ANIMATION}Delay`),u=s(`${ANIMATION}Duration`),d=getTimeout(c,u);let g=null,m=0,y=0;e===TRANSITION?l>0&&(g=TRANSITION,m=l,y=a.length):e===ANIMATION?d>0&&(g=ANIMATION,m=d,y=u.length):(m=Math.max(l,d),g=m>0?l>d?TRANSITION:ANIMATION:null,y=g?g===TRANSITION?a.length:u.length:0);const b=g===TRANSITION&&/\b(transform|all)(,|$)/.test(s(`${TRANSITION}Property`).toString());return{type:g,timeout:m,propCount:y,hasTransform:b}}function getTimeout(i,e){for(;i.lengthtoMs(r)+toMs(i[s])))}function toMs(i){return Number(i.slice(0,-1).replace(",","."))*1e3}function forceReflow(){return document.body.offsetHeight}const positionMap=new WeakMap,newPositionMap=new WeakMap,TransitionGroupImpl={name:"TransitionGroup",props:extend$3({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(i,{slots:e}){const r=getCurrentInstance(),s=useTransitionState();let o,a;return onUpdated(()=>{if(!o.length)return;const l=i.moveClass||`${i.name||"v"}-move`;if(!hasCSSTransform(o[0].el,r.vnode.el,l))return;o.forEach(callPendingCbs),o.forEach(recordPosition);const c=o.filter(applyTranslation);forceReflow(),c.forEach(u=>{const d=u.el,g=d.style;addTransitionClass(d,l),g.transform=g.webkitTransform=g.transitionDuration="";const m=d._moveCb=y=>{y&&y.target!==d||(!y||/transform$/.test(y.propertyName))&&(d.removeEventListener("transitionend",m),d._moveCb=null,removeTransitionClass(d,l))};d.addEventListener("transitionend",m)})}),()=>{const l=toRaw(i),c=resolveTransitionProps(l);let u=l.tag||Fragment;o=a,a=e.default?getTransitionRawChildren(e.default()):[];for(let d=0;ddelete i.mode;TransitionGroupImpl.props;const TransitionGroup=TransitionGroupImpl;function callPendingCbs(i){const e=i.el;e._moveCb&&e._moveCb(),e._enterCb&&e._enterCb()}function recordPosition(i){newPositionMap.set(i,i.el.getBoundingClientRect())}function applyTranslation(i){const e=positionMap.get(i),r=newPositionMap.get(i),s=e.left-r.left,o=e.top-r.top;if(s||o){const a=i.el.style;return a.transform=a.webkitTransform=`translate(${s}px,${o}px)`,a.transitionDuration="0s",i}}function hasCSSTransform(i,e,r){const s=i.cloneNode();i._vtc&&i._vtc.forEach(l=>{l.split(/\s+/).forEach(c=>c&&s.classList.remove(c))}),r.split(/\s+/).forEach(l=>l&&s.classList.add(l)),s.style.display="none";const o=e.nodeType===1?e:e.parentNode;o.appendChild(s);const{hasTransform:a}=getTransitionInfo(s);return o.removeChild(s),a}const keyNames={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},withKeys=(i,e)=>r=>{if(!("key"in r))return;const s=hyphenate(r.key);if(e.some(o=>o===s||keyNames[o]===s))return i(r)},vShow={beforeMount(i,{value:e},{transition:r}){i._vod=i.style.display==="none"?"":i.style.display,r&&e?r.beforeEnter(i):setDisplay(i,e)},mounted(i,{value:e},{transition:r}){r&&e&&r.enter(i)},updated(i,{value:e,oldValue:r},{transition:s}){!e!=!r&&(s?e?(s.beforeEnter(i),setDisplay(i,!0),s.enter(i)):s.leave(i,()=>{setDisplay(i,!1)}):setDisplay(i,e))},beforeUnmount(i,{value:e}){setDisplay(i,e)}};function setDisplay(i,e){i.style.display=e?i._vod:"none"}const rendererOptions=extend$3({patchProp},nodeOps);let renderer;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}const createApp=(...i)=>{const e=ensureRenderer().createApp(...i),{mount:r}=e;return e.mount=s=>{const o=normalizeContainer(s);if(!o)return;const a=e._component;!isFunction$6(a)&&!a.render&&!a.template&&(a.template=o.innerHTML),o.innerHTML="";const l=r(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},e};function normalizeContainer(i){return isString$2(i)?document.querySelector(i):i}/*! * vue-router v4.1.6 * (c) 2022 Eduardo San Martin Morote * @license MIT */const isBrowser=typeof window<"u";function isESModule(i){return i.__esModule||i[Symbol.toStringTag]==="Module"}const assign$2=Object.assign;function applyToParams(i,e){const r={};for(const s in e){const o=e[s];r[s]=isArray$8(o)?o.map(i):i(o)}return r}const noop$2=()=>{},isArray$8=Array.isArray,TRAILING_SLASH_RE=/\/$/,removeTrailingSlash=i=>i.replace(TRAILING_SLASH_RE,"");function parseURL(i,e,r="/"){let s,o={},a="",l="";const c=e.indexOf("#");let u=e.indexOf("?");return c=0&&(u=-1),u>-1&&(s=e.slice(0,u),a=e.slice(u+1,c>-1?c:e.length),o=i(a)),c>-1&&(s=s||e.slice(0,c),l=e.slice(c,e.length)),s=resolveRelativePath(s!=null?s:e,r),{fullPath:s+(a&&"?")+a+l,path:s,query:o,hash:l}}function stringifyURL(i,e){const r=e.query?i(e.query):"";return e.path+(r&&"?")+r+(e.hash||"")}function stripBase(i,e){return!e||!i.toLowerCase().startsWith(e.toLowerCase())?i:i.slice(e.length)||"/"}function isSameRouteLocation(i,e,r){const s=e.matched.length-1,o=r.matched.length-1;return s>-1&&s===o&&isSameRouteRecord(e.matched[s],r.matched[o])&&isSameRouteLocationParams(e.params,r.params)&&i(e.query)===i(r.query)&&e.hash===r.hash}function isSameRouteRecord(i,e){return(i.aliasOf||i)===(e.aliasOf||e)}function isSameRouteLocationParams(i,e){if(Object.keys(i).length!==Object.keys(e).length)return!1;for(const r in i)if(!isSameRouteLocationParamsValue(i[r],e[r]))return!1;return!0}function isSameRouteLocationParamsValue(i,e){return isArray$8(i)?isEquivalentArray(i,e):isArray$8(e)?isEquivalentArray(e,i):i===e}function isEquivalentArray(i,e){return isArray$8(e)?i.length===e.length&&i.every((r,s)=>r===e[s]):i.length===1&&i[0]===e}function resolveRelativePath(i,e){if(i.startsWith("/"))return i;if(!i)return e;const r=e.split("/"),s=i.split("/");let o=r.length-1,a,l;for(a=0;a1&&o--;else break;return r.slice(0,o).join("/")+"/"+s.slice(a-(a===s.length?1:0)).join("/")}var NavigationType;(function(i){i.pop="pop",i.push="push"})(NavigationType||(NavigationType={}));var NavigationDirection;(function(i){i.back="back",i.forward="forward",i.unknown=""})(NavigationDirection||(NavigationDirection={}));function normalizeBase(i){if(!i)if(isBrowser){const e=document.querySelector("base");i=e&&e.getAttribute("href")||"/",i=i.replace(/^\w+:\/\/[^\/]+/,"")}else i="/";return i[0]!=="/"&&i[0]!=="#"&&(i="/"+i),removeTrailingSlash(i)}const BEFORE_HASH_RE=/^[^#]+#/;function createHref(i,e){return i.replace(BEFORE_HASH_RE,"#")+e}function getElementPosition(i,e){const r=document.documentElement.getBoundingClientRect(),s=i.getBoundingClientRect();return{behavior:e.behavior,left:s.left-r.left-(e.left||0),top:s.top-r.top-(e.top||0)}}const computeScrollPosition=()=>({left:window.pageXOffset,top:window.pageYOffset});function scrollToPosition(i){let e;if("el"in i){const r=i.el,s=typeof r=="string"&&r.startsWith("#"),o=typeof r=="string"?s?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!o)return;e=getElementPosition(o,i)}else e=i;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.pageXOffset,e.top!=null?e.top:window.pageYOffset)}function getScrollKey(i,e){return(history.state?history.state.position-e:-1)+i}const scrollPositions=new Map;function saveScrollPosition(i,e){scrollPositions.set(i,e)}function getSavedScrollPosition(i){const e=scrollPositions.get(i);return scrollPositions.delete(i),e}let createBaseLocation=()=>location.protocol+"//"+location.host;function createCurrentLocation(i,e){const{pathname:r,search:s,hash:o}=e,a=i.indexOf("#");if(a>-1){let c=o.includes(i.slice(a))?i.slice(a).length:1,u=o.slice(c);return u[0]!=="/"&&(u="/"+u),stripBase(u,"")}return stripBase(r,i)+s+o}function useHistoryListeners(i,e,r,s){let o=[],a=[],l=null;const c=({state:y})=>{const b=createCurrentLocation(i,location),S=r.value,A=e.value;let E=0;if(y){if(r.value=b,e.value=y,l&&l===S){l=null;return}E=A?y.position-A.position:0}else s(b);o.forEach(x=>{x(r.value,S,{delta:E,type:NavigationType.pop,direction:E?E>0?NavigationDirection.forward:NavigationDirection.back:NavigationDirection.unknown})})};function u(){l=r.value}function d(y){o.push(y);const b=()=>{const S=o.indexOf(y);S>-1&&o.splice(S,1)};return a.push(b),b}function g(){const{history:y}=window;y.state&&y.replaceState(assign$2({},y.state,{scroll:computeScrollPosition()}),"")}function m(){for(const y of a)y();a=[],window.removeEventListener("popstate",c),window.removeEventListener("beforeunload",g)}return window.addEventListener("popstate",c),window.addEventListener("beforeunload",g),{pauseListeners:u,listen:d,destroy:m}}function buildState(i,e,r,s=!1,o=!1){return{back:i,current:e,forward:r,replaced:s,position:window.history.length,scroll:o?computeScrollPosition():null}}function useHistoryStateNavigation(i){const{history:e,location:r}=window,s={value:createCurrentLocation(i,r)},o={value:e.state};o.value||a(s.value,{back:null,current:s.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function a(u,d,g){const m=i.indexOf("#"),y=m>-1?(r.host&&document.querySelector("base")?i:i.slice(m))+u:createBaseLocation()+i+u;try{e[g?"replaceState":"pushState"](d,"",y),o.value=d}catch(b){console.error(b),r[g?"replace":"assign"](y)}}function l(u,d){const g=assign$2({},e.state,buildState(o.value.back,u,o.value.forward,!0),d,{position:o.value.position});a(u,g,!0),s.value=u}function c(u,d){const g=assign$2({},o.value,e.state,{forward:u,scroll:computeScrollPosition()});a(g.current,g,!0);const m=assign$2({},buildState(s.value,u,null),{position:g.position+1},d);a(u,m,!1),s.value=u}return{location:s,state:o,push:c,replace:l}}function createWebHistory(i){i=normalizeBase(i);const e=useHistoryStateNavigation(i),r=useHistoryListeners(i,e.state,e.location,e.replace);function s(a,l=!0){l||r.pauseListeners(),history.go(a)}const o=assign$2({location:"",base:i,go:s,createHref:createHref.bind(null,i)},e,r);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>e.state.value}),o}function createWebHashHistory(i){return i=location.host?i||location.pathname+location.search:"",i.includes("#")||(i+="#"),createWebHistory(i)}function isRouteLocation(i){return typeof i=="string"||i&&typeof i=="object"}function isRouteName(i){return typeof i=="string"||typeof i=="symbol"}const START_LOCATION_NORMALIZED={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},NavigationFailureSymbol=Symbol("");var NavigationFailureType;(function(i){i[i.aborted=4]="aborted",i[i.cancelled=8]="cancelled",i[i.duplicated=16]="duplicated"})(NavigationFailureType||(NavigationFailureType={}));function createRouterError(i,e){return assign$2(new Error,{type:i,[NavigationFailureSymbol]:!0},e)}function isNavigationFailure(i,e){return i instanceof Error&&NavigationFailureSymbol in i&&(e==null||!!(i.type&e))}const BASE_PARAM_PATTERN="[^/]+?",BASE_PATH_PARSER_OPTIONS={sensitive:!1,strict:!1,start:!0,end:!0},REGEX_CHARS_RE=/[.+*?^${}()[\]/\\]/g;function tokensToParser(i,e){const r=assign$2({},BASE_PATH_PARSER_OPTIONS,e),s=[];let o=r.start?"^":"";const a=[];for(const d of i){const g=d.length?[]:[90];r.strict&&!d.length&&(o+="/");for(let m=0;me.length?e.length===1&&e[0]===40+40?1:-1:0}function comparePathParserScore(i,e){let r=0;const s=i.score,o=e.score;for(;r0&&e[e.length-1]<0}const ROOT_TOKEN={type:0,value:""},VALID_PARAM_RE=/[a-zA-Z0-9_]/;function tokenizePath(i){if(!i)return[[]];if(i==="/")return[[ROOT_TOKEN]];if(!i.startsWith("/"))throw new Error(`Invalid path "${i}"`);function e(b){throw new Error(`ERR (${r})/"${d}": ${b}`)}let r=0,s=r;const o=[];let a;function l(){a&&o.push(a),a=[]}let c=0,u,d="",g="";function m(){d&&(r===0?a.push({type:0,value:d}):r===1||r===2||r===3?(a.length>1&&(u==="*"||u==="+")&&e(`A repeatable param (${d}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:d,regexp:g,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):e("Invalid state to consume buffer"),d="")}function y(){d+=u}for(;c{l(P)}:noop$2}function l(g){if(isRouteName(g)){const m=s.get(g);m&&(s.delete(g),r.splice(r.indexOf(m),1),m.children.forEach(l),m.alias.forEach(l))}else{const m=r.indexOf(g);m>-1&&(r.splice(m,1),g.record.name&&s.delete(g.record.name),g.children.forEach(l),g.alias.forEach(l))}}function c(){return r}function u(g){let m=0;for(;m=0&&(g.record.path!==r[m].record.path||!isRecordChildOf(g,r[m]));)m++;r.splice(m,0,g),g.record.name&&!isAliasRecord(g)&&s.set(g.record.name,g)}function d(g,m){let y,b={},S,A;if("name"in g&&g.name){if(y=s.get(g.name),!y)throw createRouterError(1,{location:g});A=y.record.name,b=assign$2(paramsFromLocation(m.params,y.keys.filter(P=>!P.optional).map(P=>P.name)),g.params&¶msFromLocation(g.params,y.keys.map(P=>P.name))),S=y.stringify(b)}else if("path"in g)S=g.path,y=r.find(P=>P.re.test(S)),y&&(b=y.parse(S),A=y.record.name);else{if(y=m.name?s.get(m.name):r.find(P=>P.re.test(m.path)),!y)throw createRouterError(1,{location:g,currentLocation:m});A=y.record.name,b=assign$2({},m.params,g.params),S=y.stringify(b)}const E=[];let x=y;for(;x;)E.unshift(x.record),x=x.parent;return{name:A,path:S,params:b,matched:E,meta:mergeMetaFields(E)}}return i.forEach(g=>a(g)),{addRoute:a,resolve:d,removeRoute:l,getRoutes:c,getRecordMatcher:o}}function paramsFromLocation(i,e){const r={};for(const s of e)s in i&&(r[s]=i[s]);return r}function normalizeRouteRecord(i){return{path:i.path,redirect:i.redirect,name:i.name,meta:i.meta||{},aliasOf:void 0,beforeEnter:i.beforeEnter,props:normalizeRecordProps(i),children:i.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in i?i.components||null:i.component&&{default:i.component}}}function normalizeRecordProps(i){const e={},r=i.props||!1;if("component"in i)e.default=r;else for(const s in i.components)e[s]=typeof r=="boolean"?r:r[s];return e}function isAliasRecord(i){for(;i;){if(i.record.aliasOf)return!0;i=i.parent}return!1}function mergeMetaFields(i){return i.reduce((e,r)=>assign$2(e,r.meta),{})}function mergeOptions(i,e){const r={};for(const s in i)r[s]=s in e?e[s]:i[s];return r}function isRecordChildOf(i,e){return e.children.some(r=>r===i||isRecordChildOf(i,r))}const HASH_RE=/#/g,AMPERSAND_RE=/&/g,SLASH_RE=/\//g,EQUAL_RE=/=/g,IM_RE=/\?/g,PLUS_RE=/\+/g,ENC_BRACKET_OPEN_RE=/%5B/g,ENC_BRACKET_CLOSE_RE=/%5D/g,ENC_CARET_RE=/%5E/g,ENC_BACKTICK_RE=/%60/g,ENC_CURLY_OPEN_RE=/%7B/g,ENC_PIPE_RE=/%7C/g,ENC_CURLY_CLOSE_RE=/%7D/g,ENC_SPACE_RE=/%20/g;function commonEncode(i){return encodeURI(""+i).replace(ENC_PIPE_RE,"|").replace(ENC_BRACKET_OPEN_RE,"[").replace(ENC_BRACKET_CLOSE_RE,"]")}function encodeHash(i){return commonEncode(i).replace(ENC_CURLY_OPEN_RE,"{").replace(ENC_CURLY_CLOSE_RE,"}").replace(ENC_CARET_RE,"^")}function encodeQueryValue(i){return commonEncode(i).replace(PLUS_RE,"%2B").replace(ENC_SPACE_RE,"+").replace(HASH_RE,"%23").replace(AMPERSAND_RE,"%26").replace(ENC_BACKTICK_RE,"`").replace(ENC_CURLY_OPEN_RE,"{").replace(ENC_CURLY_CLOSE_RE,"}").replace(ENC_CARET_RE,"^")}function encodeQueryKey(i){return encodeQueryValue(i).replace(EQUAL_RE,"%3D")}function encodePath(i){return commonEncode(i).replace(HASH_RE,"%23").replace(IM_RE,"%3F")}function encodeParam(i){return i==null?"":encodePath(i).replace(SLASH_RE,"%2F")}function decode$5(i){try{return decodeURIComponent(""+i)}catch(e){}return""+i}function parseQuery(i){const e={};if(i===""||i==="?")return e;const s=(i[0]==="?"?i.slice(1):i).split("&");for(let o=0;oa&&encodeQueryValue(a)):[s&&encodeQueryValue(s)]).forEach(a=>{a!==void 0&&(e+=(e.length?"&":"")+r,a!=null&&(e+="="+a))})}return e}function normalizeQuery(i){const e={};for(const r in i){const s=i[r];s!==void 0&&(e[r]=isArray$8(s)?s.map(o=>o==null?null:""+o):s==null?s:""+s)}return e}const matchedRouteKey=Symbol(""),viewDepthKey=Symbol(""),routerKey=Symbol(""),routeLocationKey=Symbol(""),routerViewLocationKey=Symbol("");function useCallbacks(){let i=[];function e(s){return i.push(s),()=>{const o=i.indexOf(s);o>-1&&i.splice(o,1)}}function r(){i=[]}return{add:e,list:()=>i,reset:r}}function guardToPromiseFn(i,e,r,s,o){const a=s&&(s.enterCallbacks[o]=s.enterCallbacks[o]||[]);return()=>new Promise((l,c)=>{const u=m=>{m===!1?c(createRouterError(4,{from:r,to:e})):m instanceof Error?c(m):isRouteLocation(m)?c(createRouterError(2,{from:e,to:m})):(a&&s.enterCallbacks[o]===a&&typeof m=="function"&&a.push(m),l())},d=i.call(s&&s.instances[o],e,r,u);let g=Promise.resolve(d);i.length<3&&(g=g.then(u)),g.catch(m=>c(m))})}function extractComponentsGuards(i,e,r,s){const o=[];for(const a of i)for(const l in a.components){let c=a.components[l];if(!(e!=="beforeRouteEnter"&&!a.instances[l]))if(isRouteComponent(c)){const d=(c.__vccOpts||c)[e];d&&o.push(guardToPromiseFn(d,r,s,a,l))}else{let u=c();o.push(()=>u.then(d=>{if(!d)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${a.path}"`));const g=isESModule(d)?d.default:d;a.components[l]=g;const y=(g.__vccOpts||g)[e];return y&&guardToPromiseFn(y,r,s,a,l)()}))}}return o}function isRouteComponent(i){return typeof i=="object"||"displayName"in i||"props"in i||"__vccOpts"in i}function useLink(i){const e=inject(routerKey),r=inject(routeLocationKey),s=computed(()=>e.resolve(unref(i.to))),o=computed(()=>{const{matched:u}=s.value,{length:d}=u,g=u[d-1],m=r.matched;if(!g||!m.length)return-1;const y=m.findIndex(isSameRouteRecord.bind(null,g));if(y>-1)return y;const b=getOriginalPath(u[d-2]);return d>1&&getOriginalPath(g)===b&&m[m.length-1].path!==b?m.findIndex(isSameRouteRecord.bind(null,u[d-2])):y}),a=computed(()=>o.value>-1&&includesParams(r.params,s.value.params)),l=computed(()=>o.value>-1&&o.value===r.matched.length-1&&isSameRouteLocationParams(r.params,s.value.params));function c(u={}){return guardEvent(u)?e[unref(i.replace)?"replace":"push"](unref(i.to)).catch(noop$2):Promise.resolve()}return{route:s,href:computed(()=>s.value.href),isActive:a,isExactActive:l,navigate:c}}const RouterLinkImpl=defineComponent({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink,setup(i,{slots:e}){const r=reactive(useLink(i)),{options:s}=inject(routerKey),o=computed(()=>({[getLinkClass(i.activeClass,s.linkActiveClass,"router-link-active")]:r.isActive,[getLinkClass(i.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=e.default&&e.default(r);return i.custom?a:h$1("a",{"aria-current":r.isExactActive?i.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:o.value},a)}}}),RouterLink=RouterLinkImpl;function guardEvent(i){if(!(i.metaKey||i.altKey||i.ctrlKey||i.shiftKey)&&!i.defaultPrevented&&!(i.button!==void 0&&i.button!==0)){if(i.currentTarget&&i.currentTarget.getAttribute){const e=i.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return i.preventDefault&&i.preventDefault(),!0}}function includesParams(i,e){for(const r in e){const s=e[r],o=i[r];if(typeof s=="string"){if(s!==o)return!1}else if(!isArray$8(o)||o.length!==s.length||s.some((a,l)=>a!==o[l]))return!1}return!0}function getOriginalPath(i){return i?i.aliasOf?i.aliasOf.path:i.path:""}const getLinkClass=(i,e,r)=>i!=null?i:e!=null?e:r,RouterViewImpl=defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(i,{attrs:e,slots:r}){const s=inject(routerViewLocationKey),o=computed(()=>i.route||s.value),a=inject(viewDepthKey,0),l=computed(()=>{let d=unref(a);const{matched:g}=o.value;let m;for(;(m=g[d])&&!m.components;)d++;return d}),c=computed(()=>o.value.matched[l.value]);provide(viewDepthKey,computed(()=>l.value+1)),provide(matchedRouteKey,c),provide(routerViewLocationKey,o);const u=ref();return watch(()=>[u.value,c.value,i.name],([d,g,m],[y,b,S])=>{g&&(g.instances[m]=d,b&&b!==g&&d&&d===y&&(g.leaveGuards.size||(g.leaveGuards=b.leaveGuards),g.updateGuards.size||(g.updateGuards=b.updateGuards))),d&&g&&(!b||!isSameRouteRecord(g,b)||!y)&&(g.enterCallbacks[m]||[]).forEach(A=>A(d))},{flush:"post"}),()=>{const d=o.value,g=i.name,m=c.value,y=m&&m.components[g];if(!y)return normalizeSlot(r.default,{Component:y,route:d});const b=m.props[g],S=b?b===!0?d.params:typeof b=="function"?b(d):b:null,E=h$1(y,assign$2({},S,e,{onVnodeUnmounted:x=>{x.component.isUnmounted&&(m.instances[g]=null)},ref:u}));return normalizeSlot(r.default,{Component:E,route:d})||E}}});function normalizeSlot(i,e){if(!i)return null;const r=i(e);return r.length===1?r[0]:r}const RouterView=RouterViewImpl;function createRouter(i){const e=createRouterMatcher(i.routes,i),r=i.parseQuery||parseQuery,s=i.stringifyQuery||stringifyQuery,o=i.history,a=useCallbacks(),l=useCallbacks(),c=useCallbacks(),u=shallowRef(START_LOCATION_NORMALIZED);let d=START_LOCATION_NORMALIZED;isBrowser&&i.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const g=applyToParams.bind(null,Y=>""+Y),m=applyToParams.bind(null,encodeParam),y=applyToParams.bind(null,decode$5);function b(Y,Z){let ue,ae;return isRouteName(Y)?(ue=e.getRecordMatcher(Y),ae=Z):ae=Y,e.addRoute(ae,ue)}function S(Y){const Z=e.getRecordMatcher(Y);Z&&e.removeRoute(Z)}function A(){return e.getRoutes().map(Y=>Y.record)}function E(Y){return!!e.getRecordMatcher(Y)}function x(Y,Z){if(Z=assign$2({},Z||u.value),typeof Y=="string"){const ee=parseURL(r,Y,Z.path),ne=e.resolve({path:ee.path},Z),F=o.createHref(ee.fullPath);return assign$2(ee,ne,{params:y(ne.params),hash:decode$5(ee.hash),redirectedFrom:void 0,href:F})}let ue;if("path"in Y)ue=assign$2({},Y,{path:parseURL(r,Y.path,Z.path).path});else{const ee=assign$2({},Y.params);for(const ne in ee)ee[ne]==null&&delete ee[ne];ue=assign$2({},Y,{params:m(Y.params)}),Z.params=m(Z.params)}const ae=e.resolve(ue,Z),pe=Y.hash||"";ae.params=g(y(ae.params));const Se=stringifyURL(s,assign$2({},Y,{hash:encodeHash(pe),path:ae.path})),ge=o.createHref(Se);return assign$2({fullPath:Se,hash:pe,query:s===stringifyQuery?normalizeQuery(Y.query):Y.query||{}},ae,{redirectedFrom:void 0,href:ge})}function P(Y){return typeof Y=="string"?parseURL(r,Y,u.value.path):assign$2({},Y)}function T(Y,Z){if(d!==Y)return createRouterError(8,{from:Z,to:Y})}function C(Y){return I(Y)}function M(Y){return C(assign$2(P(Y),{replace:!0}))}function B(Y){const Z=Y.matched[Y.matched.length-1];if(Z&&Z.redirect){const{redirect:ue}=Z;let ae=typeof ue=="function"?ue(Y):ue;return typeof ae=="string"&&(ae=ae.includes("?")||ae.includes("#")?ae=P(ae):{path:ae},ae.params={}),assign$2({query:Y.query,hash:Y.hash,params:"path"in ae?{}:Y.params},ae)}}function I(Y,Z){const ue=d=x(Y),ae=u.value,pe=Y.state,Se=Y.force,ge=Y.replace===!0,ee=B(ue);if(ee)return I(assign$2(P(ee),{state:typeof ee=="object"?assign$2({},pe,ee.state):pe,force:Se,replace:ge}),Z||ue);const ne=ue;ne.redirectedFrom=Z;let F;return!Se&&isSameRouteLocation(s,ae,ue)&&(F=createRouterError(16,{to:ne,from:ae}),te(ae,ae,!0,!1)),(F?Promise.resolve(F):D(ne,ae)).catch(se=>isNavigationFailure(se)?isNavigationFailure(se,2)?se:V(se):H(se,ne,ae)).then(se=>{if(se){if(isNavigationFailure(se,2))return I(assign$2({replace:ge},P(se.to),{state:typeof se.to=="object"?assign$2({},pe,se.to.state):pe,force:Se}),Z||ne)}else se=z(ne,ae,!0,ge,pe);return O(ne,ae,se),se})}function k(Y,Z){const ue=T(Y,Z);return ue?Promise.reject(ue):Promise.resolve()}function D(Y,Z){let ue;const[ae,pe,Se]=extractChangingRecords(Y,Z);ue=extractComponentsGuards(ae.reverse(),"beforeRouteLeave",Y,Z);for(const ee of ae)ee.leaveGuards.forEach(ne=>{ue.push(guardToPromiseFn(ne,Y,Z))});const ge=k.bind(null,Y,Z);return ue.push(ge),runGuardQueue(ue).then(()=>{ue=[];for(const ee of a.list())ue.push(guardToPromiseFn(ee,Y,Z));return ue.push(ge),runGuardQueue(ue)}).then(()=>{ue=extractComponentsGuards(pe,"beforeRouteUpdate",Y,Z);for(const ee of pe)ee.updateGuards.forEach(ne=>{ue.push(guardToPromiseFn(ne,Y,Z))});return ue.push(ge),runGuardQueue(ue)}).then(()=>{ue=[];for(const ee of Y.matched)if(ee.beforeEnter&&!Z.matched.includes(ee))if(isArray$8(ee.beforeEnter))for(const ne of ee.beforeEnter)ue.push(guardToPromiseFn(ne,Y,Z));else ue.push(guardToPromiseFn(ee.beforeEnter,Y,Z));return ue.push(ge),runGuardQueue(ue)}).then(()=>(Y.matched.forEach(ee=>ee.enterCallbacks={}),ue=extractComponentsGuards(Se,"beforeRouteEnter",Y,Z),ue.push(ge),runGuardQueue(ue))).then(()=>{ue=[];for(const ee of l.list())ue.push(guardToPromiseFn(ee,Y,Z));return ue.push(ge),runGuardQueue(ue)}).catch(ee=>isNavigationFailure(ee,8)?ee:Promise.reject(ee))}function O(Y,Z,ue){for(const ae of c.list())ae(Y,Z,ue)}function z(Y,Z,ue,ae,pe){const Se=T(Y,Z);if(Se)return Se;const ge=Z===START_LOCATION_NORMALIZED,ee=isBrowser?history.state:{};ue&&(ae||ge?o.replace(Y.fullPath,assign$2({scroll:ge&&ee&&ee.scroll},pe)):o.push(Y.fullPath,pe)),u.value=Y,te(Y,Z,ue,ge),V()}let N;function Q(){N||(N=o.listen((Y,Z,ue)=>{if(!oe.listening)return;const ae=x(Y),pe=B(ae);if(pe){I(assign$2(pe,{replace:!0}),ae).catch(noop$2);return}d=ae;const Se=u.value;isBrowser&&saveScrollPosition(getScrollKey(Se.fullPath,ue.delta),computeScrollPosition()),D(ae,Se).catch(ge=>isNavigationFailure(ge,12)?ge:isNavigationFailure(ge,2)?(I(ge.to,ae).then(ee=>{isNavigationFailure(ee,20)&&!ue.delta&&ue.type===NavigationType.pop&&o.go(-1,!1)}).catch(noop$2),Promise.reject()):(ue.delta&&o.go(-ue.delta,!1),H(ge,ae,Se))).then(ge=>{ge=ge||z(ae,Se,!1),ge&&(ue.delta&&!isNavigationFailure(ge,8)?o.go(-ue.delta,!1):ue.type===NavigationType.pop&&isNavigationFailure(ge,20)&&o.go(-1,!1)),O(ae,Se,ge)}).catch(noop$2)}))}let _=useCallbacks(),U=useCallbacks(),G;function H(Y,Z,ue){V(Y);const ae=U.list();return ae.length?ae.forEach(pe=>pe(Y,Z,ue)):console.error(Y),Promise.reject(Y)}function R(){return G&&u.value!==START_LOCATION_NORMALIZED?Promise.resolve():new Promise((Y,Z)=>{_.add([Y,Z])})}function V(Y){return G||(G=!Y,Q(),_.list().forEach(([Z,ue])=>Y?ue(Y):Z()),_.reset()),Y}function te(Y,Z,ue,ae){const{scrollBehavior:pe}=i;if(!isBrowser||!pe)return Promise.resolve();const Se=!ue&&getSavedScrollPosition(getScrollKey(Y.fullPath,0))||(ae||!ue)&&history.state&&history.state.scroll||null;return nextTick().then(()=>pe(Y,Z,Se)).then(ge=>ge&&scrollToPosition(ge)).catch(ge=>H(ge,Y,Z))}const W=Y=>o.go(Y);let $;const de=new Set,oe={currentRoute:u,listening:!0,addRoute:b,removeRoute:S,hasRoute:E,getRoutes:A,resolve:x,options:i,push:C,replace:M,go:W,back:()=>W(-1),forward:()=>W(1),beforeEach:a.add,beforeResolve:l.add,afterEach:c.add,onError:U.add,isReady:R,install(Y){const Z=this;Y.component("RouterLink",RouterLink),Y.component("RouterView",RouterView),Y.config.globalProperties.$router=Z,Object.defineProperty(Y.config.globalProperties,"$route",{enumerable:!0,get:()=>unref(u)}),isBrowser&&!$&&u.value===START_LOCATION_NORMALIZED&&($=!0,C(o.location).catch(pe=>{}));const ue={};for(const pe in START_LOCATION_NORMALIZED)ue[pe]=computed(()=>u.value[pe]);Y.provide(routerKey,Z),Y.provide(routeLocationKey,reactive(ue)),Y.provide(routerViewLocationKey,u);const ae=Y.unmount;de.add(Y),Y.unmount=function(){de.delete(Y),de.size<1&&(d=START_LOCATION_NORMALIZED,N&&N(),N=null,u.value=START_LOCATION_NORMALIZED,$=!1,G=!1),ae()}}};return oe}function runGuardQueue(i){return i.reduce((e,r)=>e.then(()=>r()),Promise.resolve())}function extractChangingRecords(i,e){const r=[],s=[],o=[],a=Math.max(e.matched.length,i.matched.length);for(let l=0;lisSameRouteRecord(d,c))?s.push(c):r.push(c));const u=i.matched[l];u&&(e.matched.find(d=>isSameRouteRecord(d,u))||o.push(u))}return[r,s,o]}function useRouter(){return inject(routerKey)}function useRoute$1(){return inject(routeLocationKey)}const isDef$1=i=>i!=null,isFunction$5=i=>typeof i=="function",isObject$4=i=>i!==null&&typeof i=="object",isPromise=i=>isObject$4(i)&&isFunction$5(i.then)&&isFunction$5(i.catch),isNumeric=i=>typeof i=="number"||/^\d+(\.\d+)?$/.test(i),isIOS$1=()=>inBrowser$2?/ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()):!1;function noop$1(){}const extend$2=Object.assign,inBrowser$2=typeof window<"u";function get(i,e){const r=e.split(".");let s=i;return r.forEach(o=>{var a;s=isObject$4(s)&&(a=s[o])!=null?a:""}),s}function pick$1(i,e,r){return e.reduce((s,o)=>((!r||i[o]!==void 0)&&(s[o]=i[o]),s),{})}const isSameValue=(i,e)=>JSON.stringify(i)===JSON.stringify(e),toArray=i=>Array.isArray(i)?i:[i],unknownProp=null,numericProp=[Number,String],truthProp={type:Boolean,default:!0},makeRequiredProp=i=>({type:i,required:!0}),makeArrayProp=()=>({type:Array,default:()=>[]}),makeNumberProp=i=>({type:Number,default:i}),makeNumericProp=i=>({type:numericProp,default:i}),makeStringProp=i=>({type:String,default:i});var inBrowser$1=typeof window<"u";function raf(i){return inBrowser$1?requestAnimationFrame(i):-1}function cancelRaf(i){inBrowser$1&&cancelAnimationFrame(i)}function doubleRaf(i){raf(()=>raf(i))}var isWindow=i=>i===window,makeDOMRect=(i,e)=>({top:0,left:0,right:i,bottom:e,width:i,height:e}),useRect=i=>{const e=unref(i);if(isWindow(e)){const r=e.innerWidth,s=e.innerHeight;return makeDOMRect(r,s)}return e!=null&&e.getBoundingClientRect?e.getBoundingClientRect():makeDOMRect(0,0)};function useParent$1(i){const e=inject(i,null);if(e){const r=getCurrentInstance(),{link:s,unlink:o,internalChildren:a}=e;s(r),onUnmounted(()=>o(r));const l=computed(()=>a.indexOf(r));return{parent:e,index:l}}return{parent:null,index:ref(-1)}}function flattenVNodes(i){const e=[],r=s=>{Array.isArray(s)&&s.forEach(o=>{var a;isVNode(o)&&(e.push(o),(a=o.component)!=null&&a.subTree&&(e.push(o.component.subTree),r(o.component.subTree.children)),o.children&&r(o.children))})};return r(i),e}var findVNodeIndex=(i,e)=>{const r=i.indexOf(e);return r===-1?i.findIndex(s=>e.key!==void 0&&e.key!==null&&s.type===e.type&&s.key===e.key):r};function sortChildren(i,e,r){const s=flattenVNodes(i.subTree.children);r.sort((a,l)=>findVNodeIndex(s,a.vnode)-findVNodeIndex(s,l.vnode));const o=r.map(a=>a.proxy);e.sort((a,l)=>{const c=o.indexOf(a),u=o.indexOf(l);return c-u})}function useChildren$1(i){const e=reactive([]),r=reactive([]),s=getCurrentInstance();return{children:e,linkChildren:a=>{provide(i,Object.assign({link:u=>{u.proxy&&(r.push(u),e.push(u.proxy),sortChildren(s,e,r))},unlink:u=>{const d=r.indexOf(u);e.splice(d,1),r.splice(d,1)},children:e,internalChildren:r},a))}}}function onMountedOrActivated(i){let e;onMounted(()=>{i(),nextTick(()=>{e=!0})}),onActivated(()=>{e&&i()})}function useEventListener$1(i,e,r={}){if(!inBrowser$1)return;const{target:s=window,passive:o=!1,capture:a=!1}=r;let l=!1,c;const u=m=>{if(l)return;const y=unref(m);y&&!c&&(y.addEventListener(i,e,{capture:a,passive:o}),c=!0)},d=m=>{if(l)return;const y=unref(m);y&&c&&(y.removeEventListener(i,e,a),c=!1)};onUnmounted(()=>d(s)),onDeactivated(()=>d(s)),onMountedOrActivated(()=>u(s));let g;return isRef(s)&&(g=watch(s,(m,y)=>{d(y),u(m)})),()=>{g==null||g(),d(s),l=!0}}function useClickAway(i,e,r={}){if(!inBrowser$1)return;const{eventName:s="click"}=r;useEventListener$1(s,a=>{(Array.isArray(i)?i:[i]).every(u=>{const d=unref(u);return d&&!d.contains(a.target)})&&e(a)},{target:document})}var width,height;function useWindowSize(){if(!width&&(width=ref(0),height=ref(0),inBrowser$1)){const i=()=>{width.value=window.innerWidth,height.value=window.innerHeight};i(),window.addEventListener("resize",i,{passive:!0}),window.addEventListener("orientationchange",i,{passive:!0})}return{width,height}}var overflowScrollReg=/scroll|auto|overlay/i,defaultRoot=inBrowser$1?window:void 0;function isElement$2(i){return i.tagName!=="HTML"&&i.tagName!=="BODY"&&i.nodeType===1}function getScrollParent$1(i,e=defaultRoot){let r=i;for(;r&&r!==e&&isElement$2(r);){const{overflowY:s}=window.getComputedStyle(r);if(overflowScrollReg.test(s))return r;r=r.parentNode}return e}function useScrollParent(i,e=defaultRoot){const r=ref();return onMounted(()=>{i.value&&(r.value=getScrollParent$1(i.value,e))}),r}var visibility;function usePageVisibility(){if(!visibility&&(visibility=ref("visible"),inBrowser$1)){const i=()=>{visibility.value=document.hidden?"hidden":"visible"};i(),window.addEventListener("visibilitychange",i)}return visibility}var CUSTOM_FIELD_INJECTION_KEY=Symbol("van-field");function useCustomFieldValue(i){const e=inject(CUSTOM_FIELD_INJECTION_KEY,null);e&&!e.customValue.value&&(e.customValue.value=i,watch(i,()=>{e.resetValidation(),e.validateWithTrigger("onChange")}))}function getScrollTop(i){const e="scrollTop"in i?i.scrollTop:i.pageYOffset;return Math.max(e,0)}function setScrollTop(i,e){"scrollTop"in i?i.scrollTop=e:i.scrollTo(i.scrollX,e)}function getRootScrollTop(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}function setRootScrollTop(i){setScrollTop(window,i),setScrollTop(document.body,i)}function getElementTop(i,e){if(i===window)return 0;const r=e?getScrollTop(e):getRootScrollTop();return useRect(i).top+r}const isIOS=isIOS$1();function resetScroll(){isIOS&&setRootScrollTop(getRootScrollTop())}const stopPropagation=i=>i.stopPropagation();function preventDefault(i,e){(typeof i.cancelable!="boolean"||i.cancelable)&&i.preventDefault(),e&&stopPropagation(i)}function isHidden(i){const e=unref(i);if(!e)return!1;const r=window.getComputedStyle(e),s=r.display==="none",o=e.offsetParent===null&&r.position!=="fixed";return s||o}const{width:windowWidth,height:windowHeight}=useWindowSize();function addUnit(i){if(isDef$1(i))return isNumeric(i)?`${i}px`:String(i)}function getSizeStyle(i){if(isDef$1(i)){if(Array.isArray(i))return{width:addUnit(i[0]),height:addUnit(i[1])};const e=addUnit(i);return{width:e,height:e}}}function getZIndexStyle(i){const e={};return i!==void 0&&(e.zIndex=+i),e}let rootFontSize;function getRootFontSize(){if(!rootFontSize){const i=document.documentElement,e=i.style.fontSize||window.getComputedStyle(i).fontSize;rootFontSize=parseFloat(e)}return rootFontSize}function convertRem(i){return i=i.replace(/rem/g,""),+i*getRootFontSize()}function convertVw(i){return i=i.replace(/vw/g,""),+i*windowWidth.value/100}function convertVh(i){return i=i.replace(/vh/g,""),+i*windowHeight.value/100}function unitToPx(i){if(typeof i=="number")return i;if(inBrowser$2){if(i.includes("rem"))return convertRem(i);if(i.includes("vw"))return convertVw(i);if(i.includes("vh"))return convertVh(i)}return parseFloat(i)}const camelizeRE=/-(\w)/g,camelize$1=i=>i.replace(camelizeRE,(e,r)=>r.toUpperCase()),kebabCase=i=>i.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,""),clamp=(i,e,r)=>Math.min(Math.max(i,e),r);function trimExtraChar(i,e,r){const s=i.indexOf(e);return s===-1?i:e==="-"&&s!==0?i.slice(0,s):i.slice(0,s+1)+i.slice(s).replace(r,"")}function formatNumber(i,e=!0,r=!0){e?i=trimExtraChar(i,".",/\./g):i=i.split(".")[0],r?i=trimExtraChar(i,"-",/-/g):i=i.replace(/-/,"");const s=e?/[^-0-9.]/g:/[^-0-9]/g;return i.replace(s,"")}function addNumber(i,e){return Math.round((i+e)*1e10)/1e10}const{hasOwnProperty:hasOwnProperty$d}=Object.prototype;function assignKey(i,e,r){const s=e[r];isDef$1(s)&&(!hasOwnProperty$d.call(i,r)||!isObject$4(s)?i[r]=s:i[r]=deepAssign(Object(i[r]),s))}function deepAssign(i,e){return Object.keys(e).forEach(r=>{assignKey(i,e,r)}),i}var stdin_default$E={name:"姓名",tel:"电话",save:"保存",confirm:"确认",cancel:"取消",delete:"删除",loading:"加载中...",noCoupon:"暂无优惠券",nameEmpty:"请填写姓名",addContact:"添加联系人",telInvalid:"请填写正确的电话",vanCalendar:{end:"结束",start:"开始",title:"日期选择",weekdays:["日","一","二","三","四","五","六"],monthTitle:(i,e)=>`${i}年${e}月`,rangePrompt:i=>`最多选择 ${i} 天`},vanCascader:{select:"请选择"},vanPagination:{prev:"上一页",next:"下一页"},vanPullRefresh:{pulling:"下拉即可刷新...",loosing:"释放即可刷新..."},vanSubmitBar:{label:"合计:"},vanCoupon:{unlimited:"无门槛",discount:i=>`${i}折`,condition:i=>`满${i}元可用`},vanCouponCell:{title:"优惠券",count:i=>`${i}张可用`},vanCouponList:{exchange:"兑换",close:"不使用",enable:"可用",disabled:"不可用",placeholder:"输入优惠码"},vanAddressEdit:{area:"地区",areaEmpty:"请选择地区",addressEmpty:"请填写详细地址",addressDetail:"详细地址",defaultAddress:"设为默认收货地址"},vanAddressList:{add:"新增地址"}};const lang=ref("zh-CN"),messages=reactive({"zh-CN":stdin_default$E}),Locale={messages(){return messages[lang.value]},use(i,e){lang.value=i,this.add({[i]:e})},add(i={}){deepAssign(messages,i)}};var stdin_default$D=Locale;function createTranslate(i){const e=camelize$1(i)+".";return(r,...s)=>{const o=stdin_default$D.messages(),a=get(o,e+r)||get(o,r);return isFunction$5(a)?a(...s):a}}function genBem(i,e){return e?typeof e=="string"?` ${i}--${e}`:Array.isArray(e)?e.reduce((r,s)=>r+genBem(i,s),""):Object.keys(e).reduce((r,s)=>r+(e[s]?genBem(i,s):""),""):""}function createBEM(i){return(e,r)=>(e&&typeof e!="string"&&(r=e,e=""),e=e?`${i}__${e}`:i,`${e}${genBem(e,r)}`)}function createNamespace$1(i){const e=`van-${i}`;return[e,createBEM(e),createTranslate(e)]}const BORDER="van-hairline",BORDER_TOP=`${BORDER}--top`,BORDER_LEFT=`${BORDER}--left`,BORDER_BOTTOM=`${BORDER}--bottom`,BORDER_SURROUND=`${BORDER}--surround`,BORDER_TOP_BOTTOM=`${BORDER}--top-bottom`,BORDER_UNSET_TOP_BOTTOM=`${BORDER}-unset--top-bottom`,HAPTICS_FEEDBACK="van-haptics-feedback",FORM_KEY=Symbol("van-form");function callInterceptor(i,{args:e=[],done:r,canceled:s}){if(i){const o=i.apply(null,e);isPromise(o)?o.then(a=>{a?r():s&&s()}).catch(noop$1):o?r():s&&s()}else r()}function withInstall(i){return i.install=e=>{const{name:r}=i;r&&(e.component(r,i),e.component(camelize$1(`-${r}`),i))},i}const POPUP_TOGGLE_KEY=Symbol();function onPopupReopen(i){const e=inject(POPUP_TOGGLE_KEY,null);e&&watch(e,r=>{r&&i()})}const useHeight=(i,e)=>{const r=ref(),s=()=>{r.value=useRect(i).height};return onMounted(()=>{if(nextTick(s),e)for(let o=1;o<=3;o++)setTimeout(s,100*o)}),onPopupReopen(()=>nextTick(s)),watch([windowWidth,windowHeight],s),r};function usePlaceholder(i,e){const r=useHeight(i,!0);return s=>createVNode("div",{class:e("placeholder"),style:{height:r.value?`${r.value}px`:void 0}},[s()])}const[name$A,bem$z]=createNamespace$1("action-bar"),ACTION_BAR_KEY=Symbol(name$A),actionBarProps={placeholder:Boolean,safeAreaInsetBottom:truthProp};var stdin_default$C=defineComponent({name:name$A,props:actionBarProps,setup(i,{slots:e}){const r=ref(),s=usePlaceholder(r,bem$z),{linkChildren:o}=useChildren$1(ACTION_BAR_KEY);o();const a=()=>{var l;return createVNode("div",{ref:r,class:[bem$z(),{"van-safe-area-bottom":i.safeAreaInsetBottom}]},[(l=e.default)==null?void 0:l.call(e)])};return()=>i.placeholder?s(a):a()}});const ActionBar=withInstall(stdin_default$C);function useExpose(i){const e=getCurrentInstance();e&&extend$2(e.proxy,i)}const routeProps={to:[String,Object],url:String,replace:Boolean};function route({to:i,url:e,replace:r,$router:s}){i&&s?s[r?"replace":"push"](i):e&&(r?location.replace(e):location.href=e)}function useRoute(){const i=getCurrentInstance().proxy;return()=>route(i)}const[name$z,bem$y]=createNamespace$1("badge"),badgeProps={dot:Boolean,max:numericProp,tag:makeStringProp("div"),color:String,offset:Array,content:numericProp,showZero:truthProp,position:makeStringProp("top-right")};var stdin_default$B=defineComponent({name:name$z,props:badgeProps,setup(i,{slots:e}){const r=()=>{if(e.content)return!0;const{content:c,showZero:u}=i;return isDef$1(c)&&c!==""&&(u||c!==0&&c!=="0")},s=()=>{const{dot:c,max:u,content:d}=i;if(!c&&r())return e.content?e.content():isDef$1(u)&&isNumeric(d)&&+d>+u?`${u}+`:d},o=c=>c.startsWith("-")?c.replace("-",""):`-${c}`,a=computed(()=>{const c={background:i.color};if(i.offset){const[u,d]=i.offset,{position:g}=i,[m,y]=g.split("-");e.default?(typeof d=="number"?c[m]=addUnit(m==="top"?d:-d):c[m]=m==="top"?addUnit(d):o(d),typeof u=="number"?c[y]=addUnit(y==="left"?u:-u):c[y]=y==="left"?addUnit(u):o(u)):(c.marginTop=addUnit(d),c.marginLeft=addUnit(u))}return c}),l=()=>{if(r()||i.dot)return createVNode("div",{class:bem$y([i.position,{dot:i.dot,fixed:!!e.default}]),style:a.value},[s()])};return()=>{if(e.default){const{tag:c}=i;return createVNode(c,{class:bem$y("wrapper")},{default:()=>[e.default(),l()]})}return l()}}});const Badge=withInstall(stdin_default$B);let globalZIndex=2e3;const useGlobalZIndex=()=>++globalZIndex,setGlobalZIndex=i=>{globalZIndex=i},[name$y,bem$x]=createNamespace$1("config-provider"),CONFIG_PROVIDER_KEY=Symbol(name$y),configProviderProps={tag:makeStringProp("div"),theme:makeStringProp("light"),zIndex:Number,themeVars:Object,themeVarsDark:Object,themeVarsLight:Object,iconPrefix:String};function mapThemeVarsToCSSVars(i){const e={};return Object.keys(i).forEach(r=>{e[`--van-${kebabCase(r)}`]=i[r]}),e}defineComponent({name:name$y,props:configProviderProps,setup(i,{slots:e}){const r=computed(()=>mapThemeVarsToCSSVars(extend$2({},i.themeVars,i.theme==="dark"?i.themeVarsDark:i.themeVarsLight)));if(inBrowser$2){const s=()=>{document.documentElement.classList.add(`van-theme-${i.theme}`)},o=(a=i.theme)=>{document.documentElement.classList.remove(`van-theme-${a}`)};watch(()=>i.theme,(a,l)=>{l&&o(l),s()},{immediate:!0}),onActivated(s),onDeactivated(o),onBeforeUnmount(o)}return provide(CONFIG_PROVIDER_KEY,i),watchEffect(()=>{i.zIndex!==void 0&&setGlobalZIndex(i.zIndex)}),()=>createVNode(i.tag,{class:bem$x(),style:r.value},{default:()=>{var s;return[(s=e.default)==null?void 0:s.call(e)]}})}});const[name$x,bem$w]=createNamespace$1("icon"),isImage=i=>i==null?void 0:i.includes("/"),iconProps={dot:Boolean,tag:makeStringProp("i"),name:String,size:numericProp,badge:numericProp,color:String,badgeProps:Object,classPrefix:String};var stdin_default$A=defineComponent({name:name$x,props:iconProps,setup(i,{slots:e}){const r=inject(CONFIG_PROVIDER_KEY,null),s=computed(()=>i.classPrefix||(r==null?void 0:r.iconPrefix)||bem$w());return()=>{const{tag:o,dot:a,name:l,size:c,badge:u,color:d}=i,g=isImage(l);return createVNode(Badge,mergeProps({dot:a,tag:o,class:[s.value,g?"":`${s.value}-${l}`],style:{color:d,fontSize:addUnit(c)},content:u},i.badgeProps),{default:()=>{var m;return[(m=e.default)==null?void 0:m.call(e),g&&createVNode("img",{class:bem$w("image"),src:l},null)]}})}}});const Icon$1=withInstall(stdin_default$A),[name$w,bem$v]=createNamespace$1("loading"),SpinIcon=Array(12).fill(null).map((i,e)=>createVNode("i",{class:bem$v("line",String(e+1))},null)),CircularIcon=createVNode("svg",{class:bem$v("circular"),viewBox:"25 25 50 50"},[createVNode("circle",{cx:"50",cy:"50",r:"20",fill:"none"},null)]),loadingProps={size:numericProp,type:makeStringProp("circular"),color:String,vertical:Boolean,textSize:numericProp,textColor:String};var stdin_default$z=defineComponent({name:name$w,props:loadingProps,setup(i,{slots:e}){const r=computed(()=>extend$2({color:i.color},getSizeStyle(i.size))),s=()=>{const a=i.type==="spinner"?SpinIcon:CircularIcon;return createVNode("span",{class:bem$v("spinner",i.type),style:r.value},[e.icon?e.icon():a])},o=()=>{var a;if(e.default)return createVNode("span",{class:bem$v("text"),style:{fontSize:addUnit(i.textSize),color:(a=i.textColor)!=null?a:i.color}},[e.default()])};return()=>{const{type:a,vertical:l}=i;return createVNode("div",{class:bem$v([a,{vertical:l}]),"aria-live":"polite","aria-busy":!0},[s(),o()])}}});const Loading$1=withInstall(stdin_default$z),[name$v,bem$u]=createNamespace$1("button"),buttonProps=extend$2({},routeProps,{tag:makeStringProp("button"),text:String,icon:String,type:makeStringProp("default"),size:makeStringProp("normal"),color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,nativeType:makeStringProp("button"),loadingSize:numericProp,loadingText:String,loadingType:String,iconPosition:makeStringProp("left")});var stdin_default$y=defineComponent({name:name$v,props:buttonProps,emits:["click"],setup(i,{emit:e,slots:r}){const s=useRoute(),o=()=>r.loading?r.loading():createVNode(Loading$1,{size:i.loadingSize,type:i.loadingType,class:bem$u("loading")},null),a=()=>{if(i.loading)return o();if(r.icon)return createVNode("div",{class:bem$u("icon")},[r.icon()]);if(i.icon)return createVNode(Icon$1,{name:i.icon,class:bem$u("icon"),classPrefix:i.iconPrefix},null)},l=()=>{let d;if(i.loading?d=i.loadingText:d=r.default?r.default():i.text,d)return createVNode("span",{class:bem$u("text")},[d])},c=()=>{const{color:d,plain:g}=i;if(d){const m={color:g?d:"white"};return g||(m.background=d),d.includes("gradient")?m.border=0:m.borderColor=d,m}},u=d=>{i.loading?preventDefault(d):i.disabled||(e("click",d),s())};return()=>{const{tag:d,type:g,size:m,block:y,round:b,plain:S,square:A,loading:E,disabled:x,hairline:P,nativeType:T,iconPosition:C}=i,M=[bem$u([g,m,{plain:S,block:y,round:b,square:A,loading:E,disabled:x,hairline:P}]),{[BORDER_SURROUND]:P}];return createVNode(d,{type:T,class:M,style:c(),disabled:x,onClick:u},{default:()=>[createVNode("div",{class:bem$u("content")},[C==="left"&&a(),l(),C==="right"&&a()])]})}}});const Button$1=withInstall(stdin_default$y),[name$u,bem$t]=createNamespace$1("action-bar-button"),actionBarButtonProps=extend$2({},routeProps,{type:String,text:String,icon:String,color:String,loading:Boolean,disabled:Boolean});var stdin_default$x=defineComponent({name:name$u,props:actionBarButtonProps,setup(i,{slots:e}){const r=useRoute(),{parent:s,index:o}=useParent$1(ACTION_BAR_KEY),a=computed(()=>{if(s){const c=s.children[o.value-1];return!(c&&"isButton"in c)}}),l=computed(()=>{if(s){const c=s.children[o.value+1];return!(c&&"isButton"in c)}});return useExpose({isButton:!0}),()=>{const{type:c,icon:u,text:d,color:g,loading:m,disabled:y}=i;return createVNode(Button$1,{class:bem$t([c,{last:l.value,first:a.value}]),size:"large",type:c,icon:u,color:g,loading:m,disabled:y,onClick:r},{default:()=>[e.default?e.default():d]})}}});const ActionBarButton=withInstall(stdin_default$x),popupSharedProps={show:Boolean,zIndex:numericProp,overlay:truthProp,duration:numericProp,teleport:[String,Object],lockScroll:truthProp,lazyRender:truthProp,beforeClose:Function,overlayStyle:Object,overlayClass:unknownProp,transitionAppear:Boolean,closeOnClickOverlay:truthProp},popupSharedPropKeys=Object.keys(popupSharedProps);function getDirection(i,e){return i>e?"horizontal":e>i?"vertical":""}function useTouch(){const i=ref(0),e=ref(0),r=ref(0),s=ref(0),o=ref(0),a=ref(0),l=ref(""),c=()=>l.value==="vertical",u=()=>l.value==="horizontal",d=()=>{r.value=0,s.value=0,o.value=0,a.value=0,l.value=""};return{move:y=>{const b=y.touches[0];r.value=(b.clientX<0?0:b.clientX)-i.value,s.value=b.clientY-e.value,o.value=Math.abs(r.value),a.value=Math.abs(s.value);const S=10;(!l.value||o.value{d(),i.value=y.touches[0].clientX,e.value=y.touches[0].clientY},reset:d,startX:i,startY:e,deltaX:r,deltaY:s,offsetX:o,offsetY:a,direction:l,isVertical:c,isHorizontal:u}}let totalLockCount=0;const BODY_LOCK_CLASS="van-overflow-hidden";function useLockScroll(i,e){const r=useTouch(),s="01",o="10",a=g=>{r.move(g);const m=r.deltaY.value>0?o:s,y=getScrollParent$1(g.target,i.value),{scrollHeight:b,offsetHeight:S,scrollTop:A}=y;let E="11";A===0?E=S>=b?"00":"01":A+S>=b&&(E="10"),E!=="11"&&r.isVertical()&&!(parseInt(E,2)&parseInt(m,2))&&preventDefault(g,!0)},l=()=>{document.addEventListener("touchstart",r.start),document.addEventListener("touchmove",a,{passive:!1}),totalLockCount||document.body.classList.add(BODY_LOCK_CLASS),totalLockCount++},c=()=>{totalLockCount&&(document.removeEventListener("touchstart",r.start),document.removeEventListener("touchmove",a),totalLockCount--,totalLockCount||document.body.classList.remove(BODY_LOCK_CLASS))},u=()=>e()&&l(),d=()=>e()&&c();onMountedOrActivated(u),onDeactivated(d),onBeforeUnmount(d),watch(e,g=>{g?l():c()})}function useLazyRender(i){const e=ref(!1);return watch(i,r=>{r&&(e.value=r)},{immediate:!0}),r=>()=>e.value?r():null}const[name$t,bem$s]=createNamespace$1("overlay"),overlayProps={show:Boolean,zIndex:numericProp,duration:numericProp,className:unknownProp,lockScroll:truthProp,lazyRender:truthProp,customStyle:Object};var stdin_default$w=defineComponent({name:name$t,props:overlayProps,setup(i,{slots:e}){const r=ref(),s=useLazyRender(()=>i.show||!i.lazyRender),o=l=>{i.lockScroll&&preventDefault(l,!0)},a=s(()=>{var l;const c=extend$2(getZIndexStyle(i.zIndex),i.customStyle);return isDef$1(i.duration)&&(c.animationDuration=`${i.duration}s`),withDirectives(createVNode("div",{ref:r,style:c,class:[bem$s(),i.className]},[(l=e.default)==null?void 0:l.call(e)]),[[vShow,i.show]])});return useEventListener$1("touchmove",o,{target:r}),()=>createVNode(Transition,{name:"van-fade",appear:!0},{default:a})}});const Overlay=withInstall(stdin_default$w),popupProps$1=extend$2({},popupSharedProps,{round:Boolean,position:makeStringProp("center"),closeIcon:makeStringProp("cross"),closeable:Boolean,transition:String,iconPrefix:String,closeOnPopstate:Boolean,closeIconPosition:makeStringProp("top-right"),safeAreaInsetTop:Boolean,safeAreaInsetBottom:Boolean}),[name$s,bem$r]=createNamespace$1("popup");var stdin_default$v=defineComponent({name:name$s,inheritAttrs:!1,props:popupProps$1,emits:["open","close","opened","closed","keydown","update:show","clickOverlay","clickCloseIcon"],setup(i,{emit:e,attrs:r,slots:s}){let o,a;const l=ref(),c=ref(),u=useLazyRender(()=>i.show||!i.lazyRender),d=computed(()=>{const M={zIndex:l.value};if(isDef$1(i.duration)){const B=i.position==="center"?"animationDuration":"transitionDuration";M[B]=`${i.duration}s`}return M}),g=()=>{o||(o=!0,l.value=i.zIndex!==void 0?+i.zIndex:useGlobalZIndex(),e("open"))},m=()=>{o&&callInterceptor(i.beforeClose,{done(){o=!1,e("close"),e("update:show",!1)}})},y=M=>{e("clickOverlay",M),i.closeOnClickOverlay&&m()},b=()=>{if(i.overlay)return createVNode(Overlay,{show:i.show,class:i.overlayClass,zIndex:l.value,duration:i.duration,customStyle:i.overlayStyle,role:i.closeOnClickOverlay?"button":void 0,tabindex:i.closeOnClickOverlay?0:void 0,onClick:y},{default:s["overlay-content"]})},S=M=>{e("clickCloseIcon",M),m()},A=()=>{if(i.closeable)return createVNode(Icon$1,{role:"button",tabindex:0,name:i.closeIcon,class:[bem$r("close-icon",i.closeIconPosition),HAPTICS_FEEDBACK],classPrefix:i.iconPrefix,onClick:S},null)},E=()=>e("opened"),x=()=>e("closed"),P=M=>e("keydown",M),T=u(()=>{var M;const{round:B,position:I,safeAreaInsetTop:k,safeAreaInsetBottom:D}=i;return withDirectives(createVNode("div",mergeProps({ref:c,style:d.value,role:"dialog",tabindex:0,class:[bem$r({round:B,[I]:I}),{"van-safe-area-top":k,"van-safe-area-bottom":D}],onKeydown:P},r),[(M=s.default)==null?void 0:M.call(s),A()]),[[vShow,i.show]])}),C=()=>{const{position:M,transition:B,transitionAppear:I}=i,k=M==="center"?"van-fade":`van-popup-slide-${M}`;return createVNode(Transition,{name:B||k,appear:I,onAfterEnter:E,onAfterLeave:x},{default:T})};return watch(()=>i.show,M=>{M&&!o&&(g(),r.tabindex===0&&nextTick(()=>{var B;(B=c.value)==null||B.focus()})),!M&&o&&(o=!1,e("close"))}),useExpose({popupRef:c}),useLockScroll(c,()=>i.show&&i.lockScroll),useEventListener$1("popstate",()=>{i.closeOnPopstate&&(m(),a=!1)}),onMounted(()=>{i.show&&g()}),onActivated(()=>{a&&(e("update:show",!0),a=!1)}),onDeactivated(()=>{i.show&&i.teleport&&(m(),a=!0)}),provide(POPUP_TOGGLE_KEY,()=>i.show),()=>i.teleport?createVNode(Teleport,{to:i.teleport},{default:()=>[b(),C()]}):createVNode(Fragment,null,[b(),C()])}});const Popup$1=withInstall(stdin_default$v),[name$r,bem$q,t$1]=createNamespace$1("picker"),getFirstEnabledOption=i=>i.find(e=>!e.disabled)||i[0];function getColumnsType(i,e){const r=i[0];if(r){if(Array.isArray(r))return"multiple";if(e.children in r)return"cascade"}return"default"}function findIndexOfEnabledOption(i,e){e=clamp(e,0,i.length);for(let r=e;r=0;r--)if(!i[r].disabled)return r;return 0}const isOptionExist=(i,e,r)=>e!==void 0&&!!i.find(s=>s[r.value]===e);function findOptionByValue(i,e,r){const s=i.findIndex(a=>a[r.value]===e),o=findIndexOfEnabledOption(i,s);return i[o]}function formatCascadeColumns(i,e,r){const s=[];let o={[e.children]:i},a=0;for(;o&&o[e.children];){const l=o[e.children],c=r.value[a];if(o=isDef$1(c)?findOptionByValue(l,c,e):void 0,!o&&l.length){const u=getFirstEnabledOption(l)[e.value];o=findOptionByValue(l,u,e)}a++,s.push(l)}return s}function getElementTranslateY(i){const{transform:e}=window.getComputedStyle(i),r=e.slice(7,e.length-1).split(", ")[5];return Number(r)}function assignDefaultFields(i){return extend$2({text:"text",value:"value",children:"children"},i)}const DEFAULT_DURATION=200,MOMENTUM_TIME=300,MOMENTUM_DISTANCE=15,[name$q,bem$p]=createNamespace$1("picker-column"),PICKER_KEY=Symbol(name$q);var stdin_default$u=defineComponent({name:name$q,props:{value:numericProp,fields:makeRequiredProp(Object),options:makeArrayProp(),readonly:Boolean,allowHtml:Boolean,optionHeight:makeRequiredProp(Number),swipeDuration:makeRequiredProp(numericProp),visibleOptionNum:makeRequiredProp(numericProp)},emits:["change","clickOption"],setup(i,{emit:e,slots:r}){let s,o,a,l,c;const u=ref(),d=ref(),g=ref(0),m=ref(0),y=useTouch(),b=()=>i.options.length,S=()=>i.optionHeight*(+i.visibleOptionNum-1)/2,A=D=>{const O=findIndexOfEnabledOption(i.options,D),z=-O*i.optionHeight,N=()=>{const Q=i.options[O][i.fields.value];Q!==i.value&&e("change",Q)};s&&z!==g.value?c=N:N(),g.value=z},E=()=>i.readonly||!i.options.length,x=D=>{s||E()||(c=null,m.value=DEFAULT_DURATION,A(D),e("clickOption",i.options[D]))},P=D=>clamp(Math.round(-D/i.optionHeight),0,b()-1),T=(D,O)=>{const z=Math.abs(D/O);D=g.value+z/.003*(D<0?-1:1);const N=P(D);m.value=+i.swipeDuration,A(N)},C=()=>{s=!1,m.value=0,c&&(c(),c=null)},M=D=>{if(!E()){if(y.start(D),s){const O=getElementTranslateY(d.value);g.value=Math.min(0,O-S())}m.value=0,o=g.value,a=Date.now(),l=o,c=null}},B=D=>{if(E())return;y.move(D),y.isVertical()&&(s=!0,preventDefault(D,!0)),g.value=clamp(o+y.deltaY.value,-(b()*i.optionHeight),i.optionHeight);const O=Date.now();O-a>MOMENTUM_TIME&&(a=O,l=g.value)},I=()=>{if(E())return;const D=g.value-l,O=Date.now()-a;if(OMOMENTUM_DISTANCE){T(D,O);return}const N=P(g.value);m.value=DEFAULT_DURATION,A(N),setTimeout(()=>{s=!1},0)},k=()=>{const D={height:`${i.optionHeight}px`};return i.options.map((O,z)=>{const N=O[i.fields.text],{disabled:Q}=O,_=O[i.fields.value],U={role:"button",style:D,tabindex:Q?-1:0,class:[bem$p("item",{disabled:Q,selected:_===i.value}),O.className],onClick:()=>x(z)},G={class:"van-ellipsis",[i.allowHtml?"innerHTML":"textContent"]:N};return createVNode("li",U,[r.option?r.option(O,z):createVNode("div",G,null)])})};return useParent$1(PICKER_KEY),useExpose({stopMomentum:C}),watchEffect(()=>{const D=i.options.findIndex(N=>N[i.fields.value]===i.value),z=-findIndexOfEnabledOption(i.options,D)*i.optionHeight;g.value=z}),useEventListener$1("touchmove",B,{target:u}),()=>createVNode("div",{ref:u,class:bem$p(),onTouchstartPassive:M,onTouchend:I,onTouchcancel:I},[createVNode("ul",{ref:d,style:{transform:`translate3d(0, ${g.value+S()}px, 0)`,transitionDuration:`${m.value}ms`,transitionProperty:m.value?"all":"none"},class:bem$p("wrapper"),onTransitionend:C},[k()])])}});const[name$p]=createNamespace$1("picker-toolbar"),pickerToolbarProps={title:String,cancelButtonText:String,confirmButtonText:String},pickerToolbarSlots=["cancel","confirm","title","toolbar"],pickerToolbarPropKeys=Object.keys(pickerToolbarProps);var stdin_default$t=defineComponent({name:name$p,props:pickerToolbarProps,emits:["confirm","cancel"],setup(i,{emit:e,slots:r}){const s=()=>{if(r.title)return r.title();if(i.title)return createVNode("div",{class:[bem$q("title"),"van-ellipsis"]},[i.title])},o=()=>e("cancel"),a=()=>e("confirm"),l=()=>{const u=i.cancelButtonText||t$1("cancel");return createVNode("button",{type:"button",class:[bem$q("cancel"),HAPTICS_FEEDBACK],onClick:o},[r.cancel?r.cancel():u])},c=()=>{const u=i.confirmButtonText||t$1("confirm");return createVNode("button",{type:"button",class:[bem$q("confirm"),HAPTICS_FEEDBACK],onClick:a},[r.confirm?r.confirm():u])};return()=>createVNode("div",{class:bem$q("toolbar")},[r.toolbar?r.toolbar():[l(),s(),c()]])}});function scrollLeftTo(i,e,r){let s=0;const o=i.scrollLeft,a=r===0?1:Math.round(r*1e3/16);function l(){i.scrollLeft+=(e-o)/a,++se||!a&&oe?raf(u):s&&raf(s)}u()}let current=0;function useId(){const i=getCurrentInstance(),{name:e="unknown"}=(i==null?void 0:i.type)||{};return`${e}-${++current}`}function useRefs(){const i=ref([]),e=[];return onBeforeUpdate(()=>{i.value=[]}),[i,s=>(e[s]||(e[s]=o=>{i.value[s]=o}),e[s])]}function useVisibilityChange(i,e){if(!inBrowser$2||!window.IntersectionObserver)return;const r=new IntersectionObserver(a=>{e(a[0].intersectionRatio>0)},{root:document.body}),s=()=>{i.value&&r.observe(i.value)},o=()=>{i.value&&r.unobserve(i.value)};onDeactivated(o),onBeforeUnmount(o),onMountedOrActivated(s)}const[name$o,bem$o]=createNamespace$1("sticky"),stickyProps={zIndex:numericProp,position:makeStringProp("top"),container:Object,offsetTop:makeNumericProp(0),offsetBottom:makeNumericProp(0)};var stdin_default$s=defineComponent({name:name$o,props:stickyProps,emits:["scroll","change"],setup(i,{emit:e,slots:r}){const s=ref(),o=useScrollParent(s),a=reactive({fixed:!1,width:0,height:0,transform:0}),l=computed(()=>unitToPx(i.position==="top"?i.offsetTop:i.offsetBottom)),c=computed(()=>{const{fixed:m,height:y,width:b}=a;if(m)return{width:`${b}px`,height:`${y}px`}}),u=computed(()=>{if(!a.fixed)return;const m=extend$2(getZIndexStyle(i.zIndex),{width:`${a.width}px`,height:`${a.height}px`,[i.position]:`${l.value}px`});return a.transform&&(m.transform=`translate3d(0, ${a.transform}px, 0)`),m}),d=m=>e("scroll",{scrollTop:m,isFixed:a.fixed}),g=()=>{if(!s.value||isHidden(s))return;const{container:m,position:y}=i,b=useRect(s),S=getScrollTop(window);if(a.width=b.width,a.height=b.height,y==="top")if(m){const A=useRect(m),E=A.bottom-l.value-a.height;a.fixed=l.value>b.top&&A.bottom>0,a.transform=E<0?E:0}else a.fixed=l.value>b.top;else{const{clientHeight:A}=document.documentElement;if(m){const E=useRect(m),x=A-E.top-l.value-a.height;a.fixed=A-l.valueE.top,a.transform=x<0?-x:0}else a.fixed=A-l.valuea.fixed,m=>e("change",m)),useEventListener$1("scroll",g,{target:o,passive:!0}),useVisibilityChange(s,g),()=>{var m;return createVNode("div",{ref:s,style:c.value},[createVNode("div",{class:bem$o({fixed:a.fixed}),style:u.value},[(m=r.default)==null?void 0:m.call(r)])])}}});const Sticky=withInstall(stdin_default$s),[name$n,bem$n]=createNamespace$1("tab");var stdin_default$r=defineComponent({name:name$n,props:{id:String,dot:Boolean,type:String,color:String,title:String,badge:numericProp,shrink:Boolean,isActive:Boolean,disabled:Boolean,controls:String,scrollable:Boolean,activeColor:String,inactiveColor:String,showZeroBadge:truthProp},setup(i,{slots:e}){const r=computed(()=>{const o={},{type:a,color:l,disabled:c,isActive:u,activeColor:d,inactiveColor:g}=i;l&&a==="card"&&(o.borderColor=l,c||(u?o.backgroundColor=l:o.color=l));const y=u?d:g;return y&&(o.color=y),o}),s=()=>{const o=createVNode("span",{class:bem$n("text",{ellipsis:!i.scrollable})},[e.title?e.title():i.title]);return i.dot||isDef$1(i.badge)&&i.badge!==""?createVNode(Badge,{dot:i.dot,content:i.badge,showZero:i.showZeroBadge},{default:()=>[o]}):o};return()=>createVNode("div",{id:i.id,role:"tab",class:[bem$n([i.type,{grow:i.scrollable&&!i.shrink,shrink:i.shrink,active:i.isActive,disabled:i.disabled}])],style:r.value,tabindex:i.disabled?void 0:i.isActive?0:-1,"aria-selected":i.isActive,"aria-disabled":i.disabled||void 0,"aria-controls":i.controls},[s()])}});const[name$m,bem$m]=createNamespace$1("swipe"),swipeProps={loop:truthProp,width:numericProp,height:numericProp,vertical:Boolean,autoplay:makeNumericProp(0),duration:makeNumericProp(500),touchable:truthProp,lazyRender:Boolean,initialSwipe:makeNumericProp(0),indicatorColor:String,showIndicators:truthProp,stopPropagation:truthProp},SWIPE_KEY=Symbol(name$m);var stdin_default$q=defineComponent({name:name$m,props:swipeProps,emits:["change","dragStart","dragEnd"],setup(i,{emit:e,slots:r}){const s=ref(),o=ref(),a=reactive({rect:null,width:0,height:0,offset:0,active:0,swiping:!1});let l=!1;const c=useTouch(),{children:u,linkChildren:d}=useChildren$1(SWIPE_KEY),g=computed(()=>u.length),m=computed(()=>a[i.vertical?"height":"width"]),y=computed(()=>i.vertical?c.deltaY.value:c.deltaX.value),b=computed(()=>a.rect?(i.vertical?a.rect.height:a.rect.width)-m.value*g.value:0),S=computed(()=>m.value?Math.ceil(Math.abs(b.value)/m.value):g.value),A=computed(()=>g.value*m.value),E=computed(()=>(a.active+g.value)%g.value),x=computed(()=>{const W=i.vertical?"vertical":"horizontal";return c.direction.value===W}),P=computed(()=>{const W={transitionDuration:`${a.swiping?0:i.duration}ms`,transform:`translate${i.vertical?"Y":"X"}(${a.offset}px)`};if(m.value){const $=i.vertical?"height":"width",de=i.vertical?"width":"height";W[$]=`${A.value}px`,W[de]=i[de]?`${i[de]}px`:""}return W}),T=W=>{const{active:$}=a;return W?i.loop?clamp($+W,-1,g.value):clamp($+W,0,S.value):$},C=(W,$=0)=>{let de=W*m.value;i.loop||(de=Math.min(de,-b.value));let oe=$-de;return i.loop||(oe=clamp(oe,b.value,0)),oe},M=({pace:W=0,offset:$=0,emitChange:de})=>{if(g.value<=1)return;const{active:oe}=a,Y=T(W),Z=C(Y,$);if(i.loop){if(u[0]&&Z!==b.value){const ue=Z0;u[g.value-1].setOffset(ue?-A.value:0)}}a.active=Y,a.offset=Z,de&&Y!==oe&&e("change",E.value)},B=()=>{a.swiping=!0,a.active<=-1?M({pace:g.value}):a.active>=g.value&&M({pace:-g.value})},I=()=>{B(),c.reset(),doubleRaf(()=>{a.swiping=!1,M({pace:-1,emitChange:!0})})},k=()=>{B(),c.reset(),doubleRaf(()=>{a.swiping=!1,M({pace:1,emitChange:!0})})};let D;const O=()=>clearTimeout(D),z=()=>{O(),+i.autoplay>0&&g.value>1&&(D=setTimeout(()=>{k(),z()},+i.autoplay))},N=(W=+i.initialSwipe)=>{if(!s.value)return;const $=()=>{var de,oe;if(!isHidden(s)){const Y={width:s.value.offsetWidth,height:s.value.offsetHeight};a.rect=Y,a.width=+((de=i.width)!=null?de:Y.width),a.height=+((oe=i.height)!=null?oe:Y.height)}g.value&&(W=Math.min(g.value-1,W),W===-1&&(W=g.value-1)),a.active=W,a.swiping=!0,a.offset=C(W),u.forEach(Y=>{Y.setOffset(0)}),z()};isHidden(s)?nextTick().then($):$()},Q=()=>N(a.active);let _;const U=W=>{!i.touchable||W.touches.length>1||(c.start(W),l=!1,_=Date.now(),O(),B())},G=W=>{i.touchable&&a.swiping&&(c.move(W),x.value&&(!i.loop&&(a.active===0&&y.value>0||a.active===g.value-1&&y.value<0)||(preventDefault(W,i.stopPropagation),M({offset:y.value}),l||(e("dragStart",{index:E.value}),l=!0))))},H=()=>{if(!i.touchable||!a.swiping)return;const W=Date.now()-_,$=y.value/W;if((Math.abs($)>.25||Math.abs(y.value)>m.value/2)&&x.value){const oe=i.vertical?c.offsetY.value:c.offsetX.value;let Y=0;i.loop?Y=oe>0?y.value>0?-1:1:0:Y=-Math[y.value>0?"ceil":"floor"](y.value/m.value),M({pace:Y,emitChange:!0})}else y.value&&M({pace:0});l=!1,a.swiping=!1,e("dragEnd",{index:E.value}),z()},R=(W,$={})=>{B(),c.reset(),doubleRaf(()=>{let de;i.loop&&W===g.value?de=a.active===0?0:W:de=W%g.value,$.immediate?doubleRaf(()=>{a.swiping=!1}):a.swiping=!1,M({pace:de-a.active,emitChange:!0})})},V=(W,$)=>{const de=$===E.value,oe=de?{backgroundColor:i.indicatorColor}:void 0;return createVNode("i",{style:oe,class:bem$m("indicator",{active:de})},null)},te=()=>{if(r.indicator)return r.indicator({active:E.value,total:g.value});if(i.showIndicators&&g.value>1)return createVNode("div",{class:bem$m("indicators",{vertical:i.vertical})},[Array(g.value).fill("").map(V)])};return useExpose({prev:I,next:k,state:a,resize:Q,swipeTo:R}),d({size:m,props:i,count:g,activeIndicator:E}),watch(()=>i.initialSwipe,W=>N(+W)),watch(g,()=>N(a.active)),watch(()=>i.autoplay,z),watch([windowWidth,windowHeight],Q),watch(usePageVisibility(),W=>{W==="visible"?z():O()}),onMounted(N),onActivated(()=>N(a.active)),onPopupReopen(()=>N(a.active)),onDeactivated(O),onBeforeUnmount(O),useEventListener$1("touchmove",G,{target:o}),()=>{var W;return createVNode("div",{ref:s,class:bem$m()},[createVNode("div",{ref:o,style:P.value,class:bem$m("track",{vertical:i.vertical}),onTouchstartPassive:U,onTouchend:H,onTouchcancel:H},[(W=r.default)==null?void 0:W.call(r)]),te()])}}});const Swipe=withInstall(stdin_default$q),[name$l,bem$l]=createNamespace$1("tabs");var stdin_default$p=defineComponent({name:name$l,props:{count:makeRequiredProp(Number),inited:Boolean,animated:Boolean,duration:makeRequiredProp(numericProp),swipeable:Boolean,lazyRender:Boolean,currentIndex:makeRequiredProp(Number)},emits:["change"],setup(i,{emit:e,slots:r}){const s=ref(),o=c=>e("change",c),a=()=>{var c;const u=(c=r.default)==null?void 0:c.call(r);return i.animated||i.swipeable?createVNode(Swipe,{ref:s,loop:!1,class:bem$l("track"),duration:+i.duration*1e3,touchable:i.swipeable,lazyRender:i.lazyRender,showIndicators:!1,onChange:o},{default:()=>[u]}):u},l=c=>{const u=s.value;u&&u.state.active!==c&&u.swipeTo(c,{immediate:!i.inited})};return watch(()=>i.currentIndex,l),onMounted(()=>{l(i.currentIndex)}),useExpose({swipeRef:s}),()=>createVNode("div",{class:bem$l("content",{animated:i.animated||i.swipeable})},[a()])}});const[name$k,bem$k]=createNamespace$1("tabs"),tabsProps={type:makeStringProp("line"),color:String,border:Boolean,sticky:Boolean,shrink:Boolean,active:makeNumericProp(0),duration:makeNumericProp(.3),animated:Boolean,ellipsis:truthProp,swipeable:Boolean,scrollspy:Boolean,offsetTop:makeNumericProp(0),background:String,lazyRender:truthProp,lineWidth:numericProp,lineHeight:numericProp,beforeChange:Function,swipeThreshold:makeNumericProp(5),titleActiveColor:String,titleInactiveColor:String},TABS_KEY=Symbol(name$k);var stdin_default$o=defineComponent({name:name$k,props:tabsProps,emits:["change","scroll","rendered","clickTab","update:active"],setup(i,{emit:e,slots:r}){let s,o,a;const l=ref(),c=ref(),u=ref(),d=ref(),g=useId(),m=useScrollParent(l),[y,b]=useRefs(),{children:S,linkChildren:A}=useChildren$1(TABS_KEY),E=reactive({inited:!1,position:"",lineStyle:{},currentIndex:-1}),x=computed(()=>S.length>+i.swipeThreshold||!i.ellipsis||i.shrink),P=computed(()=>({borderColor:i.color,background:i.background})),T=(oe,Y)=>{var Z;return(Z=oe.name)!=null?Z:Y},C=computed(()=>{const oe=S[E.currentIndex];if(oe)return T(oe,E.currentIndex)}),M=computed(()=>unitToPx(i.offsetTop)),B=computed(()=>i.sticky?M.value+s:0),I=oe=>{const Y=c.value,Z=y.value;if(!x.value||!Y||!Z||!Z[E.currentIndex])return;const ue=Z[E.currentIndex].$el,ae=ue.offsetLeft-(Y.offsetWidth-ue.offsetWidth)/2;scrollLeftTo(Y,ae,oe?0:+i.duration)},k=()=>{const oe=E.inited;nextTick(()=>{const Y=y.value;if(!Y||!Y[E.currentIndex]||i.type!=="line"||isHidden(l.value))return;const Z=Y[E.currentIndex].$el,{lineWidth:ue,lineHeight:ae}=i,pe=Z.offsetLeft+Z.offsetWidth/2,Se={width:addUnit(ue),backgroundColor:i.color,transform:`translateX(${pe}px) translateX(-50%)`};if(oe&&(Se.transitionDuration=`${i.duration}s`),isDef$1(ae)){const ge=addUnit(ae);Se.height=ge,Se.borderRadius=ge}E.lineStyle=Se})},D=oe=>{const Y=oe=0&&oe{const Z=D(oe);if(!isDef$1(Z))return;const ue=S[Z],ae=T(ue,Z),pe=E.currentIndex!==null;E.currentIndex!==Z&&(E.currentIndex=Z,Y||I(),k()),ae!==i.active&&(e("update:active",ae),pe&&e("change",ae,ue.title)),a&&!i.scrollspy&&setRootScrollTop(Math.ceil(getElementTop(l.value)-M.value))},z=(oe,Y)=>{const Z=S.find((ae,pe)=>T(ae,pe)===oe),ue=Z?S.indexOf(Z):0;O(ue,Y)},N=(oe=!1)=>{if(i.scrollspy){const Y=S[E.currentIndex].$el;if(Y&&m.value){const Z=getElementTop(Y,m.value)-B.value;o=!0,scrollTopTo(m.value,Z,oe?0:+i.duration,()=>{o=!1})}}},Q=(oe,Y,Z)=>{const{title:ue,disabled:ae}=S[Y],pe=T(S[Y],Y);ae||(callInterceptor(i.beforeChange,{args:[pe],done:()=>{O(Y),N()}}),route(oe)),e("clickTab",{name:pe,title:ue,event:Z,disabled:ae})},_=oe=>{a=oe.isFixed,e("scroll",oe)},U=oe=>{nextTick(()=>{z(oe),N(!0)})},G=()=>{for(let oe=0;oeB.value)return oe===0?0:oe-1}return S.length-1},H=()=>{if(i.scrollspy&&!o){const oe=G();O(oe)}},R=()=>S.map((oe,Y)=>createVNode(stdin_default$r,mergeProps({key:oe.id,id:`${g}-${Y}`,ref:b(Y),type:i.type,color:i.color,style:oe.titleStyle,class:oe.titleClass,shrink:i.shrink,isActive:Y===E.currentIndex,controls:oe.id,scrollable:x.value,activeColor:i.titleActiveColor,inactiveColor:i.titleInactiveColor,onClick:Z=>Q(oe,Y,Z)},pick$1(oe,["dot","badge","title","disabled","showZeroBadge"])),{title:oe.$slots.title})),V=()=>{if(i.type==="line"&&S.length)return createVNode("div",{class:bem$k("line"),style:E.lineStyle},null)},te=()=>{var oe,Y,Z;const{type:ue,border:ae,sticky:pe}=i,Se=[createVNode("div",{ref:pe?void 0:u,class:[bem$k("wrap"),{[BORDER_TOP_BOTTOM]:ue==="line"&&ae}]},[createVNode("div",{ref:c,role:"tablist",class:bem$k("nav",[ue,{shrink:i.shrink,complete:x.value}]),style:P.value,"aria-orientation":"horizontal"},[(oe=r["nav-left"])==null?void 0:oe.call(r),R(),V(),(Y=r["nav-right"])==null?void 0:Y.call(r)])]),(Z=r["nav-bottom"])==null?void 0:Z.call(r)];return pe?createVNode("div",{ref:u},[Se]):Se};watch([()=>i.color,windowWidth],k),watch(()=>i.active,oe=>{oe!==C.value&&z(oe)}),watch(()=>S.length,()=>{E.inited&&(z(i.active),k(),nextTick(()=>{I(!0)}))});const W=()=>{z(i.active,!0),nextTick(()=>{E.inited=!0,u.value&&(s=useRect(u.value).height),I(!0)})},$=(oe,Y)=>e("rendered",oe,Y);return useExpose({resize:()=>{k(),nextTick(()=>{var oe,Y;return(Y=(oe=d.value)==null?void 0:oe.swipeRef.value)==null?void 0:Y.resize()})},scrollTo:U}),onActivated(k),onPopupReopen(k),onMountedOrActivated(W),useVisibilityChange(l,k),useEventListener$1("scroll",H,{target:m,passive:!0}),A({id:g,props:i,setLine:k,onRendered:$,currentName:C,scrollIntoView:I}),()=>createVNode("div",{ref:l,class:bem$k([i.type])},[i.sticky?createVNode(Sticky,{container:l.value,offsetTop:M.value,onScroll:_},{default:()=>[te()]}):te(),createVNode(stdin_default$p,{ref:d,count:S.length,inited:E.inited,animated:i.animated,duration:i.duration,swipeable:i.swipeable,lazyRender:i.lazyRender,currentIndex:E.currentIndex,onChange:O},{default:()=>{var oe;return[(oe=r.default)==null?void 0:oe.call(r)]}})])}});const TAB_STATUS_KEY=Symbol(),useTabStatus=()=>inject(TAB_STATUS_KEY,null),[name$j,bem$j]=createNamespace$1("swipe-item");var stdin_default$n=defineComponent({name:name$j,setup(i,{slots:e}){let r;const s=reactive({offset:0,inited:!1,mounted:!1}),{parent:o,index:a}=useParent$1(SWIPE_KEY);if(!o)return;const l=computed(()=>{const d={},{vertical:g}=o.props;return o.size.value&&(d[g?"height":"width"]=`${o.size.value}px`),s.offset&&(d.transform=`translate${g?"Y":"X"}(${s.offset}px)`),d}),c=computed(()=>{const{loop:d,lazyRender:g}=o.props;if(!g||r)return!0;if(!s.mounted)return!1;const m=o.activeIndicator.value,y=o.count.value-1,b=m===0&&d?y:m-1,S=m===y&&d?0:m+1;return r=a.value===m||a.value===b||a.value===S,r}),u=d=>{s.offset=d};return onMounted(()=>{nextTick(()=>{s.mounted=!0})}),useExpose({setOffset:u}),()=>{var d;return createVNode("div",{class:bem$j(),style:l.value},[c.value?(d=e.default)==null?void 0:d.call(e):null])}}});const SwipeItem=withInstall(stdin_default$n),[name$i,bem$i]=createNamespace$1("tab"),tabProps=extend$2({},routeProps,{dot:Boolean,name:numericProp,badge:numericProp,title:String,disabled:Boolean,titleClass:unknownProp,titleStyle:[String,Object],showZeroBadge:truthProp});var stdin_default$m=defineComponent({name:name$i,props:tabProps,setup(i,{slots:e}){const r=useId(),s=ref(!1),{parent:o,index:a}=useParent$1(TABS_KEY);if(!o)return;const l=()=>{var g;return(g=i.name)!=null?g:a.value},c=()=>{s.value=!0,o.props.lazyRender&&nextTick(()=>{o.onRendered(l(),i.title)})},u=computed(()=>{const g=l()===o.currentName.value;return g&&!s.value&&c(),g}),d=ref(!u.value);return watch(u,g=>{g?d.value=!1:doubleRaf(()=>{d.value=!0})}),watch(()=>i.title,()=>{o.setLine(),o.scrollIntoView()}),provide(TAB_STATUS_KEY,u),()=>{var g;const m=`${o.id}-${a.value}`,{animated:y,swipeable:b,scrollspy:S,lazyRender:A}=o.props;if(!e.default&&!y)return;const E=S||u.value;if(y||b)return createVNode(SwipeItem,{id:r,role:"tabpanel",class:bem$i("panel-wrapper",{inactive:d.value}),tabindex:u.value?0:-1,"aria-hidden":!u.value,"aria-labelledby":m},{default:()=>{var T;return[createVNode("div",{class:bem$i("panel")},[(T=e.default)==null?void 0:T.call(e)])]}});const P=s.value||S||!A?(g=e.default)==null?void 0:g.call(e):null;return useExpose({id:r}),withDirectives(createVNode("div",{id:r,role:"tabpanel",class:bem$i("panel"),tabindex:E?0:-1,"aria-labelledby":m},[P]),[[vShow,E]])}}});const Tab=withInstall(stdin_default$m),Tabs=withInstall(stdin_default$o),[name$h,bem$h]=createNamespace$1("picker-group"),PICKER_GROUP_KEY=Symbol(name$h),pickerGroupProps=extend$2({tabs:makeArrayProp(),nextStepText:String},pickerToolbarProps);defineComponent({name:name$h,props:pickerGroupProps,emits:["confirm","cancel"],setup(i,{emit:e,slots:r}){const s=ref(0),{children:o,linkChildren:a}=useChildren$1(PICKER_GROUP_KEY);a();const l=()=>s.value{l()?s.value++:e("confirm",o.map(d=>d.confirm()))},u=()=>e("cancel");return()=>{var d;const g=(d=r.default)==null?void 0:d.call(r),m=l()?i.nextStepText:i.confirmButtonText;return createVNode("div",{class:bem$h()},[createVNode(stdin_default$t,{title:i.title,cancelButtonText:i.cancelButtonText,confirmButtonText:m,onConfirm:c,onCancel:u},pick$1(r,pickerToolbarSlots)),createVNode(Tabs,{active:s.value,"onUpdate:active":y=>s.value=y,class:bem$h("tabs"),shrink:!0,animated:!0,lazyRender:!1},{default:()=>[i.tabs.map((y,b)=>createVNode(Tab,{title:y,titleClass:bem$h("tab-title")},{default:()=>[g==null?void 0:g[b]]}))]})])}}});const pickerSharedProps=extend$2({loading:Boolean,readonly:Boolean,allowHtml:Boolean,optionHeight:makeNumericProp(44),showToolbar:truthProp,swipeDuration:makeNumericProp(1e3),visibleOptionNum:makeNumericProp(6)},pickerToolbarProps),pickerProps=extend$2({},pickerSharedProps,{columns:makeArrayProp(),modelValue:makeArrayProp(),toolbarPosition:makeStringProp("top"),columnsFieldNames:Object});var stdin_default$l=defineComponent({name:name$r,props:pickerProps,emits:["confirm","cancel","change","clickOption","update:modelValue"],setup(i,{emit:e,slots:r}){const s=ref(),o=ref(i.modelValue.slice(0)),{parent:a}=useParent$1(PICKER_GROUP_KEY),{children:l,linkChildren:c}=useChildren$1(PICKER_KEY);c();const u=computed(()=>assignDefaultFields(i.columnsFieldNames)),d=computed(()=>unitToPx(i.optionHeight)),g=computed(()=>getColumnsType(i.columns,u.value)),m=computed(()=>{const{columns:z}=i;switch(g.value){case"multiple":return z;case"cascade":return formatCascadeColumns(z,u.value,o);default:return[z]}}),y=computed(()=>m.value.some(z=>z.length)),b=computed(()=>m.value.map((z,N)=>findOptionByValue(z,o.value[N],u.value))),S=computed(()=>m.value.map((z,N)=>z.findIndex(Q=>Q[u.value.value]===o.value[N]))),A=(z,N)=>{if(o.value[z]!==N){const Q=o.value.slice(0);Q[z]=N,o.value=Q}},E=()=>({selectedValues:o.value.slice(0),selectedOptions:b.value,selectedIndexes:S.value}),x=(z,N)=>{A(N,z),g.value==="cascade"&&o.value.forEach((Q,_)=>{const U=m.value[_];isOptionExist(U,Q,u.value)||A(_,U.length?U[0][u.value.value]:void 0)}),nextTick(()=>{e("change",extend$2({columnIndex:N},E()))})},P=(z,N)=>e("clickOption",extend$2({columnIndex:N,currentOption:z},E())),T=()=>{l.forEach(N=>N.stopMomentum());const z=E();return nextTick(()=>{e("confirm",z)}),z},C=()=>e("cancel",E()),M=()=>m.value.map((z,N)=>createVNode(stdin_default$u,{value:o.value[N],fields:u.value,options:z,readonly:i.readonly,allowHtml:i.allowHtml,optionHeight:d.value,swipeDuration:i.swipeDuration,visibleOptionNum:i.visibleOptionNum,onChange:Q=>x(Q,N),onClickOption:Q=>P(Q,N)},{option:r.option})),B=z=>{if(y.value){const N={height:`${d.value}px`},Q={backgroundSize:`100% ${(z-d.value)/2}px`};return[createVNode("div",{class:bem$q("mask"),style:Q},null),createVNode("div",{class:[BORDER_UNSET_TOP_BOTTOM,bem$q("frame")],style:N},null)]}},I=()=>{const z=d.value*+i.visibleOptionNum,N={height:`${z}px`};return createVNode("div",{ref:s,class:bem$q("columns"),style:N},[M(),B(z)])},k=()=>{if(i.showToolbar&&!a)return createVNode(stdin_default$t,mergeProps(pick$1(i,pickerToolbarPropKeys),{onConfirm:T,onCancel:C}),pick$1(r,pickerToolbarSlots))};watch(m,z=>{z.forEach((N,Q)=>{N.length&&!isOptionExist(N,o.value[Q],u.value)&&A(Q,getFirstEnabledOption(N)[u.value.value])})},{immediate:!0});let D;return watch(()=>i.modelValue,z=>{!isSameValue(z,o.value)&&!isSameValue(z,D)&&(o.value=z.slice(0),D=z.slice(0))},{deep:!0}),watch(o,z=>{isSameValue(z,i.modelValue)||(D=z.slice(0),e("update:modelValue",D))},{immediate:!0}),useEventListener$1("touchmove",preventDefault,{target:s}),useExpose({confirm:T,getSelectedOptions:()=>b.value}),()=>{var z,N;return createVNode("div",{class:bem$q()},[i.toolbarPosition==="top"?k():null,i.loading?createVNode(Loading$1,{class:bem$q("loading")},null):null,(z=r["columns-top"])==null?void 0:z.call(r),I(),(N=r["columns-bottom"])==null?void 0:N.call(r),i.toolbarPosition==="bottom"?k():null])}}});const Picker=withInstall(stdin_default$l),[name$g,bem$g]=createNamespace$1("cell"),cellSharedProps={tag:makeStringProp("div"),icon:String,size:String,title:numericProp,value:numericProp,label:numericProp,center:Boolean,isLink:Boolean,border:truthProp,required:Boolean,iconPrefix:String,valueClass:unknownProp,labelClass:unknownProp,titleClass:unknownProp,titleStyle:null,arrowDirection:String,clickable:{type:Boolean,default:null}},cellProps=extend$2({},cellSharedProps,routeProps);var stdin_default$k=defineComponent({name:name$g,props:cellProps,setup(i,{slots:e}){const r=useRoute(),s=()=>{if(e.label||isDef$1(i.label))return createVNode("div",{class:[bem$g("label"),i.labelClass]},[e.label?e.label():i.label])},o=()=>{var u;if(e.title||isDef$1(i.title)){const d=(u=e.title)==null?void 0:u.call(e);return Array.isArray(d)&&d.length===0?void 0:createVNode("div",{class:[bem$g("title"),i.titleClass],style:i.titleStyle},[d||createVNode("span",null,[i.title]),s()])}},a=()=>{const u=e.value||e.default;if(u||isDef$1(i.value))return createVNode("div",{class:[bem$g("value"),i.valueClass]},[u?u():createVNode("span",null,[i.value])])},l=()=>{if(e.icon)return e.icon();if(i.icon)return createVNode(Icon$1,{name:i.icon,class:bem$g("left-icon"),classPrefix:i.iconPrefix},null)},c=()=>{if(e["right-icon"])return e["right-icon"]();if(i.isLink){const u=i.arrowDirection&&i.arrowDirection!=="right"?`arrow-${i.arrowDirection}`:"arrow";return createVNode(Icon$1,{name:u,class:bem$g("right-icon")},null)}};return()=>{var u;const{tag:d,size:g,center:m,border:y,isLink:b,required:S}=i,A=(u=i.clickable)!=null?u:b,E={center:m,required:S,clickable:A,borderless:!y};return g&&(E[g]=!!g),createVNode(d,{class:bem$g(E),role:A?"button":void 0,tabindex:A?0:void 0,onClick:r},{default:()=>{var x;return[l(),o(),a(),c(),(x=e.extra)==null?void 0:x.call(e)]}})}}});const Cell=withInstall(stdin_default$k);function isEmptyValue(i){return Array.isArray(i)?!i.length:i===0?!1:!i}function runSyncRule(i,e){if(isEmptyValue(i)){if(e.required)return!1;if(e.validateEmpty===!1)return!0}return!(e.pattern&&!e.pattern.test(String(i)))}function runRuleValidator(i,e){return new Promise(r=>{const s=e.validator(i,e);if(isPromise(s)){s.then(r);return}r(s)})}function getRuleMessage(i,e){const{message:r}=e;return isFunction$5(r)?r(i,e):r||""}function startComposing({target:i}){i.composing=!0}function endComposing({target:i}){i.composing&&(i.composing=!1,i.dispatchEvent(new Event("input")))}function resizeTextarea(i,e){const r=getRootScrollTop();i.style.height="auto";let s=i.scrollHeight;if(isObject$4(e)){const{maxHeight:o,minHeight:a}=e;o!==void 0&&(s=Math.min(s,o)),a!==void 0&&(s=Math.max(s,a))}s&&(i.style.height=`${s}px`,setRootScrollTop(r))}function mapInputType(i){return i==="number"?{type:"text",inputmode:"decimal"}:i==="digit"?{type:"tel",inputmode:"numeric"}:{type:i}}function getStringLength(i){return[...i].length}function cutString(i,e){return[...i].slice(0,e).join("")}const[name$f,bem$f]=createNamespace$1("field"),fieldSharedProps={id:String,name:String,leftIcon:String,rightIcon:String,autofocus:Boolean,clearable:Boolean,maxlength:numericProp,formatter:Function,clearIcon:makeStringProp("clear"),modelValue:makeNumericProp(""),inputAlign:String,placeholder:String,autocomplete:String,errorMessage:String,enterkeyhint:String,clearTrigger:makeStringProp("focus"),formatTrigger:makeStringProp("onChange"),error:{type:Boolean,default:null},disabled:{type:Boolean,default:null},readonly:{type:Boolean,default:null}},fieldProps=extend$2({},cellSharedProps,fieldSharedProps,{rows:numericProp,type:makeStringProp("text"),rules:Array,autosize:[Boolean,Object],labelWidth:numericProp,labelClass:unknownProp,labelAlign:String,showWordLimit:Boolean,errorMessageAlign:String,colon:{type:Boolean,default:null}});var stdin_default$j=defineComponent({name:name$f,props:fieldProps,emits:["blur","focus","clear","keypress","clickInput","endValidate","startValidate","clickLeftIcon","clickRightIcon","update:modelValue"],setup(i,{emit:e,slots:r}){const s=useId(),o=reactive({status:"unvalidated",focused:!1,validateMessage:""}),a=ref(),l=ref(),c=ref(),{parent:u}=useParent$1(FORM_KEY),d=()=>{var Z;return String((Z=i.modelValue)!=null?Z:"")},g=Z=>{if(isDef$1(i[Z]))return i[Z];if(u&&isDef$1(u.props[Z]))return u.props[Z]},m=computed(()=>{const Z=g("readonly");if(i.clearable&&!Z){const ue=d()!=="",ae=i.clearTrigger==="always"||i.clearTrigger==="focus"&&o.focused;return ue&&ae}return!1}),y=computed(()=>c.value&&r.input?c.value():i.modelValue),b=Z=>Z.reduce((ue,ae)=>ue.then(()=>{if(o.status==="failed")return;let{value:pe}=y;if(ae.formatter&&(pe=ae.formatter(pe,ae)),!runSyncRule(pe,ae)){o.status="failed",o.validateMessage=getRuleMessage(pe,ae);return}if(ae.validator)return isEmptyValue(pe)&&ae.validateEmpty===!1?void 0:runRuleValidator(pe,ae).then(Se=>{Se&&typeof Se=="string"?(o.status="failed",o.validateMessage=Se):Se===!1&&(o.status="failed",o.validateMessage=getRuleMessage(pe,ae))})}),Promise.resolve()),S=()=>{o.status="unvalidated",o.validateMessage=""},A=()=>e("endValidate",{status:o.status,message:o.validateMessage}),E=(Z=i.rules)=>new Promise(ue=>{S(),Z?(e("startValidate"),b(Z).then(()=>{o.status==="failed"?(ue({name:i.name,message:o.validateMessage}),A()):(o.status="passed",ue(),A())})):ue()}),x=Z=>{if(u&&i.rules){const{validateTrigger:ue}=u.props,ae=toArray(ue).includes(Z),pe=i.rules.filter(Se=>Se.trigger?toArray(Se.trigger).includes(Z):ae);pe.length&&E(pe)}},P=Z=>{var ue;const{maxlength:ae}=i;if(isDef$1(ae)&&getStringLength(Z)>+ae){const pe=d();if(pe&&getStringLength(pe)===+ae)return pe;const Se=(ue=a.value)==null?void 0:ue.selectionEnd;if(o.focused&&Se){const ge=[...Z],ee=ge.length-+ae;return ge.splice(Se-ee,ee),ge.join("")}return cutString(Z,+ae)}return Z},T=(Z,ue="onChange")=>{const ae=Z;Z=P(Z);const pe=getStringLength(ae)-getStringLength(Z);if(i.type==="number"||i.type==="digit"){const ge=i.type==="number";Z=formatNumber(Z,ge,ge)}let Se=0;if(i.formatter&&ue===i.formatTrigger){const{formatter:ge,maxlength:ee}=i;if(Z=ge(Z),isDef$1(ee)&&getStringLength(Z)>+ee&&(Z=cutString(Z,+ee)),a.value&&o.focused){const{selectionEnd:ne}=a.value,F=cutString(ae,ne);Se=getStringLength(ge(F))-getStringLength(F)}}if(a.value&&a.value.value!==Z)if(o.focused){let{selectionStart:ge,selectionEnd:ee}=a.value;if(a.value.value=Z,isDef$1(ge)&&isDef$1(ee)){const ne=getStringLength(Z);pe?(ge-=pe,ee-=pe):Se&&(ge+=Se,ee+=Se),a.value.setSelectionRange(Math.min(ge,ne),Math.min(ee,ne))}}else a.value.value=Z;Z!==i.modelValue&&e("update:modelValue",Z)},C=Z=>{Z.target.composing||T(Z.target.value)},M=()=>{var Z;return(Z=a.value)==null?void 0:Z.blur()},B=()=>{var Z;return(Z=a.value)==null?void 0:Z.focus()},I=()=>{const Z=a.value;i.type==="textarea"&&i.autosize&&Z&&resizeTextarea(Z,i.autosize)},k=Z=>{o.focused=!0,e("focus",Z),nextTick(I),g("readonly")&&M()},D=Z=>{o.focused=!1,T(d(),"onBlur"),e("blur",Z),!g("readonly")&&(x("onBlur"),nextTick(I),resetScroll())},O=Z=>e("clickInput",Z),z=Z=>e("clickLeftIcon",Z),N=Z=>e("clickRightIcon",Z),Q=Z=>{preventDefault(Z),e("update:modelValue",""),e("clear",Z)},_=computed(()=>{if(typeof i.error=="boolean")return i.error;if(u&&u.props.showError&&o.status==="failed")return!0}),U=computed(()=>{const Z=g("labelWidth"),ue=g("labelAlign");if(Z&&ue!=="top")return{width:addUnit(Z)}}),G=Z=>{Z.keyCode===13&&(!(u&&u.props.submitOnEnter)&&i.type!=="textarea"&&preventDefault(Z),i.type==="search"&&M()),e("keypress",Z)},H=()=>i.id||`${s}-input`,R=()=>o.status,V=()=>{const Z=bem$f("control",[g("inputAlign"),{error:_.value,custom:!!r.input,"min-height":i.type==="textarea"&&!i.autosize}]);if(r.input)return createVNode("div",{class:Z,onClick:O},[r.input()]);const ue={id:H(),ref:a,name:i.name,rows:i.rows!==void 0?+i.rows:void 0,class:Z,disabled:g("disabled"),readonly:g("readonly"),autofocus:i.autofocus,placeholder:i.placeholder,autocomplete:i.autocomplete,enterkeyhint:i.enterkeyhint,"aria-labelledby":i.label?`${s}-label`:void 0,onBlur:D,onFocus:k,onInput:C,onClick:O,onChange:endComposing,onKeypress:G,onCompositionend:endComposing,onCompositionstart:startComposing};return i.type==="textarea"?createVNode("textarea",ue,null):createVNode("input",mergeProps(mapInputType(i.type),ue),null)},te=()=>{const Z=r["left-icon"];if(i.leftIcon||Z)return createVNode("div",{class:bem$f("left-icon"),onClick:z},[Z?Z():createVNode(Icon$1,{name:i.leftIcon,classPrefix:i.iconPrefix},null)])},W=()=>{const Z=r["right-icon"];if(i.rightIcon||Z)return createVNode("div",{class:bem$f("right-icon"),onClick:N},[Z?Z():createVNode(Icon$1,{name:i.rightIcon,classPrefix:i.iconPrefix},null)])},$=()=>{if(i.showWordLimit&&i.maxlength){const Z=getStringLength(d());return createVNode("div",{class:bem$f("word-limit")},[createVNode("span",{class:bem$f("word-num")},[Z]),createTextVNode("/"),i.maxlength])}},de=()=>{if(u&&u.props.showErrorMessage===!1)return;const Z=i.errorMessage||o.validateMessage;if(Z){const ue=r["error-message"],ae=g("errorMessageAlign");return createVNode("div",{class:bem$f("error-message",ae)},[ue?ue({message:Z}):Z])}},oe=()=>{const Z=g("labelWidth"),ue=g("labelAlign"),ae=g("colon")?":":"";if(r.label)return[r.label(),ae];if(i.label)return createVNode("label",{id:`${s}-label`,for:H(),style:ue==="top"&&Z?{width:addUnit(Z)}:void 0},[i.label+ae])},Y=()=>[createVNode("div",{class:bem$f("body")},[V(),m.value&&createVNode(Icon$1,{ref:l,name:i.clearIcon,class:bem$f("clear")},null),W(),r.button&&createVNode("div",{class:bem$f("button")},[r.button()])]),$(),de()];return useExpose({blur:M,focus:B,validate:E,formValue:y,resetValidation:S,getValidationStatus:R}),provide(CUSTOM_FIELD_INJECTION_KEY,{customValue:c,resetValidation:S,validateWithTrigger:x}),watch(()=>i.modelValue,()=>{T(d()),S(),x("onChange"),nextTick(I)}),onMounted(()=>{T(d(),i.formatTrigger),nextTick(I)}),useEventListener$1("touchstart",Q,{target:computed(()=>{var Z;return(Z=l.value)==null?void 0:Z.$el})}),()=>{const Z=g("disabled"),ue=g("labelAlign"),ae=te(),pe=()=>{const Se=oe();return ue==="top"?[ae,Se].filter(Boolean):Se||[]};return createVNode(Cell,{size:i.size,class:bem$f({error:_.value,disabled:Z,[`label-${ue}`]:ue}),center:i.center,border:i.border,isLink:i.isLink,clickable:i.clickable,titleStyle:U.value,valueClass:bem$f("value"),titleClass:[bem$f("label",[ue,{required:i.required}]),i.labelClass],arrowDirection:i.arrowDirection},{icon:ae&&ue!=="top"?()=>ae:null,title:pe,value:Y,extra:r.extra})}}});const Field=withInstall(stdin_default$j);let lockCount=0;function lockClick(i){i?(lockCount||document.body.classList.add("van-toast--unclickable"),lockCount++):lockCount&&(lockCount--,lockCount||document.body.classList.remove("van-toast--unclickable"))}const[name$e,bem$e]=createNamespace$1("toast"),popupInheritProps=["show","overlay","teleport","transition","overlayClass","overlayStyle","closeOnClickOverlay"],toastProps={icon:String,show:Boolean,type:makeStringProp("text"),overlay:Boolean,message:numericProp,iconSize:numericProp,duration:makeNumberProp(2e3),position:makeStringProp("middle"),teleport:[String,Object],wordBreak:String,className:unknownProp,iconPrefix:String,transition:makeStringProp("van-fade"),loadingType:String,forbidClick:Boolean,overlayClass:unknownProp,overlayStyle:Object,closeOnClick:Boolean,closeOnClickOverlay:Boolean};var stdin_default$i=defineComponent({name:name$e,props:toastProps,emits:["update:show"],setup(i,{emit:e,slots:r}){let s,o=!1;const a=()=>{const m=i.show&&i.forbidClick;o!==m&&(o=m,lockClick(o))},l=m=>e("update:show",m),c=()=>{i.closeOnClick&&l(!1)},u=()=>clearTimeout(s),d=()=>{const{icon:m,type:y,iconSize:b,iconPrefix:S,loadingType:A}=i;if(m||y==="success"||y==="fail")return createVNode(Icon$1,{name:m||y,size:b,class:bem$e("icon"),classPrefix:S},null);if(y==="loading")return createVNode(Loading$1,{class:bem$e("loading"),size:b,type:A},null)},g=()=>{const{type:m,message:y}=i;if(r.message)return createVNode("div",{class:bem$e("text")},[r.message()]);if(isDef$1(y)&&y!=="")return m==="html"?createVNode("div",{key:0,class:bem$e("text"),innerHTML:String(y)},null):createVNode("div",{class:bem$e("text")},[y])};return watch(()=>[i.show,i.forbidClick],a),watch(()=>[i.show,i.type,i.message,i.duration],()=>{u(),i.show&&i.duration>0&&(s=setTimeout(()=>{l(!1)},i.duration))}),onMounted(a),onUnmounted(a),()=>createVNode(Popup$1,mergeProps({class:[bem$e([i.position,i.wordBreak==="normal"?"break-normal":i.wordBreak,{[i.type]:!i.icon}]),i.className],lockScroll:!1,onClick:c,onClosed:u,"onUpdate:show":l},pick$1(i,popupInheritProps)),{default:()=>[d(),g()]})}});function usePopupState(){const i=reactive({show:!1}),e=o=>{i.show=o},r=o=>{extend$2(i,o,{transitionAppear:!0}),e(!0)},s=()=>e(!1);return useExpose({open:r,close:s,toggle:e}),{open:r,close:s,state:i,toggle:e}}function mountComponent(i){const e=createApp(i),r=document.createElement("div");return document.body.appendChild(r),{instance:e.mount(r),unmount(){e.unmount(),document.body.removeChild(r)}}}const defaultOptions$1={icon:"",type:"text",message:"",className:"",overlay:!1,onClose:void 0,onOpened:void 0,duration:2e3,teleport:"body",iconSize:void 0,iconPrefix:void 0,position:"middle",transition:"van-fade",forbidClick:!1,loadingType:void 0,overlayClass:"",overlayStyle:void 0,closeOnClick:!1,closeOnClickOverlay:!1};let queue=[],allowMultiple=!1,currentOptions$1=extend$2({},defaultOptions$1);const defaultOptionsMap=new Map;function parseOptions(i){return isObject$4(i)?i:{message:i}}function createInstance(){const{instance:i,unmount:e}=mountComponent({setup(){const r=ref(""),{open:s,state:o,close:a,toggle:l}=usePopupState(),c=()=>{},u=()=>createVNode(stdin_default$i,mergeProps(o,{onClosed:c,"onUpdate:show":l}),null);return watch(r,d=>{o.message=d}),getCurrentInstance().render=u,{open:s,close:a,message:r}}});return i}function getInstance(){if(!queue.length||allowMultiple){const i=createInstance();queue.push(i)}return queue[queue.length-1]}function showToast(i={}){if(!inBrowser$2)return{};const e=getInstance(),r=parseOptions(i);return e.open(extend$2({},currentOptions$1,defaultOptionsMap.get(r.type||currentOptions$1.type),r)),e}const createMethod=i=>e=>showToast(extend$2({type:i},parseOptions(e))),showLoadingToast=createMethod("loading"),closeToast=i=>{queue.length&&(i?(queue.forEach(e=>{e.close()}),queue=[]):queue[0].close())};withInstall(stdin_default$i);const[name$d,bem$d]=createNamespace$1("switch"),switchProps={size:numericProp,loading:Boolean,disabled:Boolean,modelValue:unknownProp,activeColor:String,inactiveColor:String,activeValue:{type:unknownProp,default:!0},inactiveValue:{type:unknownProp,default:!1}};var stdin_default$h=defineComponent({name:name$d,props:switchProps,emits:["change","update:modelValue"],setup(i,{emit:e,slots:r}){const s=()=>i.modelValue===i.activeValue,o=()=>{if(!i.disabled&&!i.loading){const l=s()?i.inactiveValue:i.activeValue;e("update:modelValue",l),e("change",l)}},a=()=>{if(i.loading){const l=s()?i.activeColor:i.inactiveColor;return createVNode(Loading$1,{class:bem$d("loading"),color:l},null)}if(r.node)return r.node()};return useCustomFieldValue(()=>i.modelValue),()=>{var l;const{size:c,loading:u,disabled:d,activeColor:g,inactiveColor:m}=i,y=s(),b={fontSize:addUnit(c),backgroundColor:y?g:m};return createVNode("div",{role:"switch",class:bem$d({on:y,loading:u,disabled:d}),style:b,tabindex:d?void 0:0,"aria-checked":y,onClick:o},[createVNode("div",{class:bem$d("node")},[a()]),(l=r.background)==null?void 0:l.call(r)])}}});const Switch$1=withInstall(stdin_default$h),[name$c,bem$c]=createNamespace$1("radio-group"),radioGroupProps={disabled:Boolean,iconSize:numericProp,direction:String,modelValue:unknownProp,checkedColor:String},RADIO_KEY=Symbol(name$c);var stdin_default$g=defineComponent({name:name$c,props:radioGroupProps,emits:["change","update:modelValue"],setup(i,{emit:e,slots:r}){const{linkChildren:s}=useChildren$1(RADIO_KEY),o=a=>e("update:modelValue",a);return watch(()=>i.modelValue,a=>e("change",a)),s({props:i,updateValue:o}),useCustomFieldValue(()=>i.modelValue),()=>{var a;return createVNode("div",{class:bem$c([i.direction]),role:"radiogroup"},[(a=r.default)==null?void 0:a.call(r)])}}});const RadioGroup=withInstall(stdin_default$g),checkerProps={name:unknownProp,shape:makeStringProp("round"),disabled:Boolean,iconSize:numericProp,modelValue:unknownProp,checkedColor:String,labelPosition:String,labelDisabled:Boolean};var stdin_default$f=defineComponent({props:extend$2({},checkerProps,{bem:makeRequiredProp(Function),role:String,parent:Object,checked:Boolean,bindGroup:truthProp}),emits:["click","toggle"],setup(i,{emit:e,slots:r}){const s=ref(),o=m=>{if(i.parent&&i.bindGroup)return i.parent.props[m]},a=computed(()=>o("disabled")||i.disabled),l=computed(()=>o("direction")),c=computed(()=>{const m=i.checkedColor||o("checkedColor");if(m&&i.checked&&!a.value)return{borderColor:m,backgroundColor:m}}),u=m=>{const{target:y}=m,b=s.value,S=b===y||(b==null?void 0:b.contains(y));!a.value&&(S||!i.labelDisabled)&&e("toggle"),e("click",m)},d=()=>{const{bem:m,shape:y,checked:b}=i,S=i.iconSize||o("iconSize");return createVNode("div",{ref:s,class:m("icon",[y,{disabled:a.value,checked:b}]),style:{fontSize:addUnit(S)}},[r.icon?r.icon({checked:b,disabled:a.value}):createVNode(Icon$1,{name:"success",style:c.value},null)])},g=()=>{if(r.default)return createVNode("span",{class:i.bem("label",[i.labelPosition,{disabled:a.value}])},[r.default()])};return()=>{const m=i.labelPosition==="left"?[g(),d()]:[d(),g()];return createVNode("div",{role:i.role,class:i.bem([{disabled:a.value,"label-disabled":i.labelDisabled},l.value]),tabindex:a.value?void 0:0,"aria-checked":i.checked,onClick:u},[m])}}});const[name$b,bem$b]=createNamespace$1("radio");var stdin_default$e=defineComponent({name:name$b,props:checkerProps,emits:["update:modelValue"],setup(i,{emit:e,slots:r}){const{parent:s}=useParent$1(RADIO_KEY),o=()=>(s?s.props.modelValue:i.modelValue)===i.name,a=()=>{s?s.updateValue(i.name):e("update:modelValue",i.name)};return()=>createVNode(stdin_default$f,mergeProps({bem:bem$b,role:"radio",parent:s,checked:o(),onToggle:a},i),pick$1(r,["default","icon"]))}});const Radio=withInstall(stdin_default$e),[name$a,bem$a]=createNamespace$1("circle");let uid=0;const format$1=i=>Math.min(Math.max(+i,0),100);function getPath(i,e){const r=i?1:0;return`M ${e/2} ${e/2} m 0, -500 a 500, 500 0 1, ${r} 0, 1000 a 500, 500 0 1, ${r} 0, -1000`}const circleProps={text:String,size:numericProp,fill:makeStringProp("none"),rate:makeNumericProp(100),speed:makeNumericProp(0),color:[String,Object],clockwise:truthProp,layerColor:String,currentRate:makeNumberProp(0),strokeWidth:makeNumericProp(40),strokeLinecap:String,startPosition:makeStringProp("top")};var stdin_default$d=defineComponent({name:name$a,props:circleProps,emits:["update:currentRate"],setup(i,{emit:e,slots:r}){const s=`van-circle-${uid++}`,o=computed(()=>+i.strokeWidth+1e3),a=computed(()=>getPath(i.clockwise,o.value)),l=computed(()=>{const y={top:0,right:90,bottom:180,left:270}[i.startPosition];if(y)return{transform:`rotate(${y}deg)`}});watch(()=>i.rate,m=>{let y;const b=Date.now(),S=i.currentRate,A=format$1(m),E=Math.abs((S-A)*1e3/+i.speed),x=()=>{const P=Date.now(),C=Math.min((P-b)/E,1)*(A-S)+S;e("update:currentRate",format$1(parseFloat(C.toFixed(1)))),(A>S?CA)&&(y=raf(x))};i.speed?(y&&cancelRaf(y),y=raf(x)):e("update:currentRate",A)},{immediate:!0});const c=()=>{const{strokeWidth:y,currentRate:b,strokeLinecap:S}=i,A=3140*b/100,E=isObject$4(i.color)?`url(#${s})`:i.color,x={stroke:E,strokeWidth:`${+y+1}px`,strokeLinecap:S,strokeDasharray:`${A}px 3140px`};return createVNode("path",{d:a.value,style:x,class:bem$a("hover"),stroke:E},null)},u=()=>{const m={fill:i.fill,stroke:i.layerColor,strokeWidth:`${i.strokeWidth}px`};return createVNode("path",{class:bem$a("layer"),style:m,d:a.value},null)},d=()=>{const{color:m}=i;if(!isObject$4(m))return;const y=Object.keys(m).sort((b,S)=>parseFloat(b)-parseFloat(S)).map((b,S)=>createVNode("stop",{key:S,offset:b,"stop-color":m[b]},null));return createVNode("defs",null,[createVNode("linearGradient",{id:s,x1:"100%",y1:"0%",x2:"0%",y2:"0%"},[y])])},g=()=>{if(r.default)return r.default();if(i.text)return createVNode("div",{class:bem$a("text")},[i.text])};return()=>createVNode("div",{class:bem$a(),style:getSizeStyle(i.size)},[createVNode("svg",{viewBox:`0 0 ${o.value} ${o.value}`,style:l.value},[d(),u(),c()]),g()])}});const Circle=withInstall(stdin_default$d),[name$9,bem$9]=createNamespace$1("empty"),emptyProps={image:makeStringProp("default"),imageSize:[Number,String,Array],description:String};var stdin_default$c=defineComponent({name:name$9,props:emptyProps,setup(i,{slots:e}){const r=()=>{const x=e.description?e.description():i.description;if(x)return createVNode("p",{class:bem$9("description")},[x])},s=()=>{if(e.default)return createVNode("div",{class:bem$9("bottom")},[e.default()])},o=useId(),a=x=>`${o}-${x}`,l=x=>`url(#${a(x)})`,c=(x,P,T)=>createVNode("stop",{"stop-color":x,offset:`${P}%`,"stop-opacity":T},null),u=(x,P)=>[c(x,0),c(P,100)],d=x=>[createVNode("defs",null,[createVNode("radialGradient",{id:a(x),cx:"50%",cy:"54%",fx:"50%",fy:"54%",r:"297%",gradientTransform:"matrix(-.16 0 0 -.33 .58 .72)"},[c("#EBEDF0",0),c("#F2F3F5",100,.3)])]),createVNode("ellipse",{fill:l(x),opacity:".8",cx:"80",cy:"140",rx:"46",ry:"8"},null)],g=()=>[createVNode("defs",null,[createVNode("linearGradient",{id:a("a"),x1:"64%",y1:"100%",x2:"64%"},[c("#FFF",0,.5),c("#F2F3F5",100)])]),createVNode("g",{opacity:".8"},[createVNode("path",{d:"M36 131V53H16v20H2v58h34z",fill:l("a")},null),createVNode("path",{d:"M123 15h22v14h9v77h-31V15z",fill:l("a")},null)])],m=()=>[createVNode("defs",null,[createVNode("linearGradient",{id:a("b"),x1:"64%",y1:"97%",x2:"64%",y2:"0%"},[c("#F2F3F5",0,.3),c("#F2F3F5",100)])]),createVNode("g",{opacity:".8"},[createVNode("path",{d:"M87 6c3 0 7 3 8 6a8 8 0 1 1-1 16H80a7 7 0 0 1-8-6c0-4 3-7 6-7 0-5 4-9 9-9Z",fill:l("b")},null),createVNode("path",{d:"M19 23c2 0 3 1 4 3 2 0 4 2 4 4a4 4 0 0 1-4 3v1h-7v-1l-1 1c-2 0-3-2-3-4 0-1 1-3 3-3 0-2 2-4 4-4Z",fill:l("b")},null)])],y=()=>createVNode("svg",{viewBox:"0 0 160 160"},[createVNode("defs",null,[createVNode("linearGradient",{id:a(1),x1:"64%",y1:"100%",x2:"64%"},[c("#FFF",0,.5),c("#F2F3F5",100)]),createVNode("linearGradient",{id:a(2),x1:"50%",x2:"50%",y2:"84%"},[c("#EBEDF0",0),c("#DCDEE0",100,0)]),createVNode("linearGradient",{id:a(3),x1:"100%",x2:"100%",y2:"100%"},[u("#EAEDF0","#DCDEE0")]),createVNode("radialGradient",{id:a(4),cx:"50%",cy:"0%",fx:"50%",fy:"0%",r:"100%",gradientTransform:"matrix(0 1 -.54 0 .5 -.5)"},[c("#EBEDF0",0),c("#FFF",100,0)])]),createVNode("g",{fill:"none"},[g(),createVNode("path",{fill:l(4),d:"M0 139h160v21H0z"},null),createVNode("path",{d:"M80 54a7 7 0 0 1 3 13v27l-2 2h-2a2 2 0 0 1-2-2V67a7 7 0 0 1 3-13z",fill:l(2)},null),createVNode("g",{opacity:".6","stroke-linecap":"round","stroke-width":"7"},[createVNode("path",{d:"M64 47a19 19 0 0 0-5 13c0 5 2 10 5 13",stroke:l(3)},null),createVNode("path",{d:"M53 36a34 34 0 0 0 0 48",stroke:l(3)},null),createVNode("path",{d:"M95 73a19 19 0 0 0 6-13c0-5-2-9-6-13",stroke:l(3)},null),createVNode("path",{d:"M106 84a34 34 0 0 0 0-48",stroke:l(3)},null)]),createVNode("g",{transform:"translate(31 105)"},[createVNode("rect",{fill:"#EBEDF0",width:"98",height:"34",rx:"2"},null),createVNode("rect",{fill:"#FFF",x:"9",y:"8",width:"80",height:"18",rx:"1.1"},null),createVNode("rect",{fill:"#EBEDF0",x:"15",y:"12",width:"18",height:"6",rx:"1.1"},null)])])]),b=()=>createVNode("svg",{viewBox:"0 0 160 160"},[createVNode("defs",null,[createVNode("linearGradient",{x1:"50%",x2:"50%",y2:"100%",id:a(5)},[u("#F2F3F5","#DCDEE0")]),createVNode("linearGradient",{x1:"95%",y1:"48%",x2:"5.5%",y2:"51%",id:a(6)},[u("#EAEDF1","#DCDEE0")]),createVNode("linearGradient",{y1:"45%",x2:"100%",y2:"54%",id:a(7)},[u("#EAEDF1","#DCDEE0")])]),g(),m(),createVNode("g",{transform:"translate(36 50)",fill:"none"},[createVNode("g",{transform:"translate(8)"},[createVNode("rect",{fill:"#EBEDF0",opacity:".6",x:"38",y:"13",width:"36",height:"53",rx:"2"},null),createVNode("rect",{fill:l(5),width:"64",height:"66",rx:"2"},null),createVNode("rect",{fill:"#FFF",x:"6",y:"6",width:"52",height:"55",rx:"1"},null),createVNode("g",{transform:"translate(15 17)",fill:l(6)},[createVNode("rect",{width:"34",height:"6",rx:"1"},null),createVNode("path",{d:"M0 14h34v6H0z"},null),createVNode("rect",{y:"28",width:"34",height:"6",rx:"1"},null)])]),createVNode("rect",{fill:l(7),y:"61",width:"88",height:"28",rx:"1"},null),createVNode("rect",{fill:"#F7F8FA",x:"29",y:"72",width:"30",height:"6",rx:"1"},null)])]),S=()=>createVNode("svg",{viewBox:"0 0 160 160"},[createVNode("defs",null,[createVNode("linearGradient",{x1:"50%",x2:"50%",y2:"100%",id:a(8)},[u("#EAEDF1","#DCDEE0")])]),g(),m(),d("c"),createVNode("path",{d:"m59 60 21 21 21-21h3l9 9v3L92 93l21 21v3l-9 9h-3l-21-21-21 21h-3l-9-9v-3l21-21-21-21v-3l9-9h3Z",fill:l(8)},null)]),A=()=>createVNode("svg",{viewBox:"0 0 160 160"},[createVNode("defs",null,[createVNode("linearGradient",{x1:"50%",y1:"100%",x2:"50%",id:a(9)},[u("#EEE","#D8D8D8")]),createVNode("linearGradient",{x1:"100%",y1:"50%",y2:"50%",id:a(10)},[u("#F2F3F5","#DCDEE0")]),createVNode("linearGradient",{x1:"50%",x2:"50%",y2:"100%",id:a(11)},[u("#F2F3F5","#DCDEE0")]),createVNode("linearGradient",{x1:"50%",x2:"50%",y2:"100%",id:a(12)},[u("#FFF","#F7F8FA")])]),g(),m(),d("d"),createVNode("g",{transform:"rotate(-45 113 -4)",fill:"none"},[createVNode("rect",{fill:l(9),x:"24",y:"52.8",width:"5.8",height:"19",rx:"1"},null),createVNode("rect",{fill:l(10),x:"22.1",y:"67.3",width:"9.9",height:"28",rx:"1"},null),createVNode("circle",{stroke:l(11),"stroke-width":"8",cx:"27",cy:"27",r:"27"},null),createVNode("circle",{fill:l(12),cx:"27",cy:"27",r:"16"},null),createVNode("path",{d:"M37 7c-8 0-15 5-16 12",stroke:l(11),"stroke-width":"3",opacity:".5","stroke-linecap":"round",transform:"rotate(45 29 13)"},null)])]),E=()=>{var x;if(e.image)return e.image();const P={error:S,search:A,network:y,default:b};return((x=P[i.image])==null?void 0:x.call(P))||createVNode("img",{src:i.image},null)};return()=>createVNode("div",{class:bem$9()},[createVNode("div",{class:bem$9("image"),style:getSizeStyle(i.imageSize)},[E()]),r(),s()])}});const Empty=withInstall(stdin_default$c),[name$8,bem$8,t]=createNamespace$1("dialog"),dialogProps=extend$2({},popupSharedProps,{title:String,theme:String,width:numericProp,message:[String,Function],callback:Function,allowHtml:Boolean,className:unknownProp,transition:makeStringProp("van-dialog-bounce"),messageAlign:String,closeOnPopstate:truthProp,showCancelButton:Boolean,cancelButtonText:String,cancelButtonColor:String,cancelButtonDisabled:Boolean,confirmButtonText:String,confirmButtonColor:String,confirmButtonDisabled:Boolean,showConfirmButton:truthProp,closeOnClickOverlay:Boolean}),popupInheritKeys=[...popupSharedPropKeys,"transition","closeOnPopstate"];var stdin_default$b=defineComponent({name:name$8,props:dialogProps,emits:["confirm","cancel","keydown","update:show"],setup(i,{emit:e,slots:r}){const s=ref(),o=reactive({confirm:!1,cancel:!1}),a=x=>e("update:show",x),l=x=>{var P;a(!1),(P=i.callback)==null||P.call(i,x)},c=x=>()=>{i.show&&(e(x),i.beforeClose?(o[x]=!0,callInterceptor(i.beforeClose,{args:[x],done(){l(x),o[x]=!1},canceled(){o[x]=!1}})):l(x))},u=c("cancel"),d=c("confirm"),g=withKeys(x=>{var P,T;if(x.target!==((T=(P=s.value)==null?void 0:P.popupRef)==null?void 0:T.value))return;({Enter:i.showConfirmButton?d:noop$1,Escape:i.showCancelButton?u:noop$1})[x.key](),e("keydown",x)},["enter","esc"]),m=()=>{const x=r.title?r.title():i.title;if(x)return createVNode("div",{class:bem$8("header",{isolated:!i.message&&!r.default})},[x])},y=x=>{const{message:P,allowHtml:T,messageAlign:C}=i,M=bem$8("message",{"has-title":x,[C]:C}),B=isFunction$5(P)?P():P;return T&&typeof B=="string"?createVNode("div",{class:M,innerHTML:B},null):createVNode("div",{class:M},[B])},b=()=>{if(r.default)return createVNode("div",{class:bem$8("content")},[r.default()]);const{title:x,message:P,allowHtml:T}=i;if(P){const C=!!(x||r.title);return createVNode("div",{key:T?1:0,class:bem$8("content",{isolated:!C})},[y(C)])}},S=()=>createVNode("div",{class:[BORDER_TOP,bem$8("footer")]},[i.showCancelButton&&createVNode(Button$1,{size:"large",text:i.cancelButtonText||t("cancel"),class:bem$8("cancel"),style:{color:i.cancelButtonColor},loading:o.cancel,disabled:i.cancelButtonDisabled,onClick:u},null),i.showConfirmButton&&createVNode(Button$1,{size:"large",text:i.confirmButtonText||t("confirm"),class:[bem$8("confirm"),{[BORDER_LEFT]:i.showCancelButton}],style:{color:i.confirmButtonColor},loading:o.confirm,disabled:i.confirmButtonDisabled,onClick:d},null)]),A=()=>createVNode(ActionBar,{class:bem$8("footer")},{default:()=>[i.showCancelButton&&createVNode(ActionBarButton,{type:"warning",text:i.cancelButtonText||t("cancel"),class:bem$8("cancel"),color:i.cancelButtonColor,loading:o.cancel,disabled:i.cancelButtonDisabled,onClick:u},null),i.showConfirmButton&&createVNode(ActionBarButton,{type:"danger",text:i.confirmButtonText||t("confirm"),class:bem$8("confirm"),color:i.confirmButtonColor,loading:o.confirm,disabled:i.confirmButtonDisabled,onClick:d},null)]}),E=()=>r.footer?r.footer():i.theme==="round-button"?A():S();return()=>{const{width:x,title:P,theme:T,message:C,className:M}=i;return createVNode(Popup$1,mergeProps({ref:s,role:"dialog",class:[bem$8([T]),M],style:{width:addUnit(x)},tabindex:0,"aria-labelledby":P||C,onKeydown:g,"onUpdate:show":a},pick$1(i,popupInheritKeys)),{default:()=>[m(),b(),E()]})}}});let instance$1;const DEFAULT_OPTIONS$1={title:"",width:"",theme:null,message:"",overlay:!0,callback:null,teleport:"body",className:"",allowHtml:!1,lockScroll:!0,transition:void 0,beforeClose:null,overlayClass:"",overlayStyle:void 0,messageAlign:"",cancelButtonText:"",cancelButtonColor:null,cancelButtonDisabled:!1,confirmButtonText:"",confirmButtonColor:null,confirmButtonDisabled:!1,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1};let currentOptions=extend$2({},DEFAULT_OPTIONS$1);function initInstance(){({instance:instance$1}=mountComponent({setup(){const{state:e,toggle:r}=usePopupState();return()=>createVNode(stdin_default$b,mergeProps(e,{"onUpdate:show":r}),null)}}))}function showDialog(i){return inBrowser$2?new Promise((e,r)=>{instance$1||initInstance(),instance$1.open(extend$2({},currentOptions,i,{callback:s=>{(s==="confirm"?e:r)(s)}}))}):Promise.resolve()}const showConfirmDialog=i=>showDialog(extend$2({showCancelButton:!0},i));withInstall(stdin_default$b);const[name$7,bem$7]=createNamespace$1("nav-bar"),navBarProps={title:String,fixed:Boolean,zIndex:numericProp,border:truthProp,leftText:String,rightText:String,leftArrow:Boolean,placeholder:Boolean,safeAreaInsetTop:Boolean,clickable:truthProp};var stdin_default$a=defineComponent({name:name$7,props:navBarProps,emits:["clickLeft","clickRight"],setup(i,{emit:e,slots:r}){const s=ref(),o=usePlaceholder(s,bem$7),a=g=>e("clickLeft",g),l=g=>e("clickRight",g),c=()=>r.left?r.left():[i.leftArrow&&createVNode(Icon$1,{class:bem$7("arrow"),name:"arrow-left"},null),i.leftText&&createVNode("span",{class:bem$7("text")},[i.leftText])],u=()=>r.right?r.right():createVNode("span",{class:bem$7("text")},[i.rightText]),d=()=>{const{title:g,fixed:m,border:y,zIndex:b}=i,S=getZIndexStyle(b),A=i.leftArrow||i.leftText||r.left,E=i.rightText||r.right;return createVNode("div",{ref:s,style:S,class:[bem$7({fixed:m}),{[BORDER_BOTTOM]:y,"van-safe-area-top":i.safeAreaInsetTop}]},[createVNode("div",{class:bem$7("content")},[A&&createVNode("div",{class:[bem$7("left"),i.clickable?HAPTICS_FEEDBACK:""],onClick:a},[c()]),createVNode("div",{class:[bem$7("title"),"van-ellipsis"]},[r.title?r.title():g]),E&&createVNode("div",{class:[bem$7("right"),i.clickable?HAPTICS_FEEDBACK:""],onClick:l},[u()])])])};return()=>i.fixed&&i.placeholder?o(d):d()}});const NavBar=withInstall(stdin_default$a),[name$6,bem$6]=createNamespace$1("notice-bar"),noticeBarProps={text:String,mode:String,color:String,delay:makeNumericProp(1),speed:makeNumericProp(60),leftIcon:String,wrapable:Boolean,background:String,scrollable:{type:Boolean,default:null}};var stdin_default$9=defineComponent({name:name$6,props:noticeBarProps,emits:["close","replay"],setup(i,{emit:e,slots:r}){let s=0,o=0,a;const l=ref(),c=ref(),u=reactive({show:!0,offset:0,duration:0}),d=()=>{if(r["left-icon"])return r["left-icon"]();if(i.leftIcon)return createVNode(Icon$1,{class:bem$6("left-icon"),name:i.leftIcon},null)},g=()=>{if(i.mode==="closeable")return"cross";if(i.mode==="link")return"arrow"},m=E=>{i.mode==="closeable"&&(u.show=!1,e("close",E))},y=()=>{if(r["right-icon"])return r["right-icon"]();const E=g();if(E)return createVNode(Icon$1,{name:E,class:bem$6("right-icon"),onClick:m},null)},b=()=>{u.offset=s,u.duration=0,raf(()=>{doubleRaf(()=>{u.offset=-o,u.duration=(o+s)/+i.speed,e("replay")})})},S=()=>{const E=i.scrollable===!1&&!i.wrapable,x={transform:u.offset?`translateX(${u.offset}px)`:"",transitionDuration:`${u.duration}s`};return createVNode("div",{ref:l,role:"marquee",class:bem$6("wrap")},[createVNode("div",{ref:c,style:x,class:[bem$6("content"),{"van-ellipsis":E}],onTransitionend:b},[r.default?r.default():i.text])])},A=()=>{const{delay:E,speed:x,scrollable:P}=i,T=isDef$1(E)?+E*1e3:0;s=0,o=0,u.offset=0,u.duration=0,clearTimeout(a),a=setTimeout(()=>{if(!l.value||!c.value||P===!1)return;const C=useRect(l).width,M=useRect(c).width;(P||M>C)&&doubleRaf(()=>{s=C,o=M,u.offset=-o,u.duration=o/+x})},T)};return onPopupReopen(A),onMountedOrActivated(A),useEventListener$1("pageshow",A),useExpose({reset:A}),watch(()=>[i.text,i.scrollable],A),()=>{const{color:E,wrapable:x,background:P}=i;return withDirectives(createVNode("div",{role:"alert",class:bem$6({wrapable:x}),style:{color:E,background:P}},[d(),S(),y()]),[[vShow,u.show]])}}});const NoticeBar=withInstall(stdin_default$9);function getWindow(i){if(i==null)return window;if(i.toString()!=="[object Window]"){var e=i.ownerDocument;return e&&e.defaultView||window}return i}function isElement$1(i){var e=getWindow(i).Element;return i instanceof e||i instanceof Element}function isHTMLElement(i){var e=getWindow(i).HTMLElement;return i instanceof e||i instanceof HTMLElement}function isShadowRoot(i){if(typeof ShadowRoot>"u")return!1;var e=getWindow(i).ShadowRoot;return i instanceof e||i instanceof ShadowRoot}var round=Math.round;function getUAString(){var i=navigator.userAgentData;return i!=null&&i.brands?i.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(i,e,r){e===void 0&&(e=!1),r===void 0&&(r=!1);var s=i.getBoundingClientRect(),o=1,a=1;e&&isHTMLElement(i)&&(o=i.offsetWidth>0&&round(s.width)/i.offsetWidth||1,a=i.offsetHeight>0&&round(s.height)/i.offsetHeight||1);var l=isElement$1(i)?getWindow(i):window,c=l.visualViewport,u=!isLayoutViewport()&&r,d=(s.left+(u&&c?c.offsetLeft:0))/o,g=(s.top+(u&&c?c.offsetTop:0))/a,m=s.width/o,y=s.height/a;return{width:m,height:y,top:g,right:d+m,bottom:g+y,left:d,x:d,y:g}}function getWindowScroll(i){var e=getWindow(i),r=e.pageXOffset,s=e.pageYOffset;return{scrollLeft:r,scrollTop:s}}function getHTMLElementScroll(i){return{scrollLeft:i.scrollLeft,scrollTop:i.scrollTop}}function getNodeScroll(i){return i===getWindow(i)||!isHTMLElement(i)?getWindowScroll(i):getHTMLElementScroll(i)}function getNodeName(i){return i?(i.nodeName||"").toLowerCase():null}function getDocumentElement(i){return((isElement$1(i)?i.ownerDocument:i.document)||window.document).documentElement}function getWindowScrollBarX(i){return getBoundingClientRect(getDocumentElement(i)).left+getWindowScroll(i).scrollLeft}function getComputedStyle(i){return getWindow(i).getComputedStyle(i)}function isScrollParent(i){var e=getComputedStyle(i),r=e.overflow,s=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+o+s)}function isElementScaled(i){var e=i.getBoundingClientRect(),r=round(e.width)/i.offsetWidth||1,s=round(e.height)/i.offsetHeight||1;return r!==1||s!==1}function getCompositeRect(i,e,r){r===void 0&&(r=!1);var s=isHTMLElement(e),o=isHTMLElement(e)&&isElementScaled(e),a=getDocumentElement(e),l=getBoundingClientRect(i,o,r),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(s||!s&&!r)&&((getNodeName(e)!=="body"||isScrollParent(a))&&(c=getNodeScroll(e)),isHTMLElement(e)?(u=getBoundingClientRect(e,!0),u.x+=e.clientLeft,u.y+=e.clientTop):a&&(u.x=getWindowScrollBarX(a))),{x:l.left+c.scrollLeft-u.x,y:l.top+c.scrollTop-u.y,width:l.width,height:l.height}}function getLayoutRect(i){var e=getBoundingClientRect(i),r=i.offsetWidth,s=i.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-s)<=1&&(s=e.height),{x:i.offsetLeft,y:i.offsetTop,width:r,height:s}}function getParentNode(i){return getNodeName(i)==="html"?i:i.assignedSlot||i.parentNode||(isShadowRoot(i)?i.host:null)||getDocumentElement(i)}function getScrollParent(i){return["html","body","#document"].indexOf(getNodeName(i))>=0?i.ownerDocument.body:isHTMLElement(i)&&isScrollParent(i)?i:getScrollParent(getParentNode(i))}function listScrollParents(i,e){var r;e===void 0&&(e=[]);var s=getScrollParent(i),o=s===((r=i.ownerDocument)==null?void 0:r.body),a=getWindow(s),l=o?[a].concat(a.visualViewport||[],isScrollParent(s)?s:[]):s,c=e.concat(l);return o?c:c.concat(listScrollParents(getParentNode(l)))}function isTableElement(i){return["table","td","th"].indexOf(getNodeName(i))>=0}function getTrueOffsetParent(i){return!isHTMLElement(i)||getComputedStyle(i).position==="fixed"?null:i.offsetParent}function getContainingBlock(i){var e=/firefox/i.test(getUAString()),r=/Trident/i.test(getUAString());if(r&&isHTMLElement(i)){var s=getComputedStyle(i);if(s.position==="fixed")return null}var o=getParentNode(i);for(isShadowRoot(o)&&(o=o.host);isHTMLElement(o)&&["html","body"].indexOf(getNodeName(o))<0;){var a=getComputedStyle(o);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||e&&a.willChange==="filter"||e&&a.filter&&a.filter!=="none")return o;o=o.parentNode}return null}function getOffsetParent(i){for(var e=getWindow(i),r=getTrueOffsetParent(i);r&&isTableElement(r)&&getComputedStyle(r).position==="static";)r=getTrueOffsetParent(r);return r&&(getNodeName(r)==="html"||getNodeName(r)==="body"&&getComputedStyle(r).position==="static")?e:r||getContainingBlock(i)||e}var top$1="top",bottom="bottom",right$2="right",left="left",auto="auto",basePlacements=[top$1,bottom,right$2,left],start="start",end="end",placements=[].concat(basePlacements,[auto]).reduce(function(i,e){return i.concat([e,e+"-"+start,e+"-"+end])},[]),beforeRead="beforeRead",read$6="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write$6="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read$6,afterRead,beforeMain,main,afterMain,beforeWrite,write$6,afterWrite];function order(i){var e=new Map,r=new Set,s=[];i.forEach(function(a){e.set(a.name,a)});function o(a){r.add(a.name);var l=[].concat(a.requires||[],a.requiresIfExists||[]);l.forEach(function(c){if(!r.has(c)){var u=e.get(c);u&&o(u)}}),s.push(a)}return i.forEach(function(a){r.has(a.name)||o(a)}),s}function orderModifiers(i){var e=order(i);return modifierPhases.reduce(function(r,s){return r.concat(e.filter(function(o){return o.phase===s}))},[])}function debounce$1(i){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(i())})})),e}}function format(i){for(var e=arguments.length,r=new Array(e>1?e-1:0),s=1;s=0?"x":"y"}function computeOffsets(i){var e=i.reference,r=i.element,s=i.placement,o=s?getBasePlacement(s):null,a=s?getVariation(s):null,l=e.x+e.width/2-r.width/2,c=e.y+e.height/2-r.height/2,u;switch(o){case top$1:u={x:l,y:e.y-r.height};break;case bottom:u={x:l,y:e.y+e.height};break;case right$2:u={x:e.x+e.width,y:c};break;case left:u={x:e.x-r.width,y:c};break;default:u={x:e.x,y:e.y}}var d=o?getMainAxisFromPlacement(o):null;if(d!=null){var g=d==="y"?"height":"width";switch(a){case start:u[d]=u[d]-(e[g]/2-r[g]/2);break;case end:u[d]=u[d]+(e[g]/2-r[g]/2);break}}return u}var INVALID_ELEMENT_ERROR="Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.",INFINITE_LOOP_ERROR="Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.",DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var i=arguments.length,e=new Array(i),r=0;r100){console.error(INFINITE_LOOP_ERROR);break}if(g.reset===!0){g.reset=!1,M=-1;continue}var B=g.orderedModifiers[M],I=B.fn,k=B.options,D=k===void 0?{}:k,O=B.name;typeof I=="function"&&(g=I({state:g,options:D,name:O,instance:b})||g)}}},update:debounce$1(function(){return new Promise(function(E){b.forceUpdate(),E(g)})}),destroy:function(){A(),y=!0}};if(!areValidElements(c,u))return console.error(INVALID_ELEMENT_ERROR),b;b.setOptions(d).then(function(E){!y&&d.onFirstUpdate&&d.onFirstUpdate(E)});function S(){g.orderedModifiers.forEach(function(E){var x=E.name,P=E.options,T=P===void 0?{}:P,C=E.effect;if(typeof C=="function"){var M=C({state:g,name:x,instance:b,options:T}),B=function(){};m.push(M||B)}})}function A(){m.forEach(function(E){return E()}),m=[]}return b}}var passive={passive:!0};function effect(i){var e=i.state,r=i.instance,s=i.options,o=s.scroll,a=o===void 0?!0:o,l=s.resize,c=l===void 0?!0:l,u=getWindow(e.elements.popper),d=[].concat(e.scrollParents.reference,e.scrollParents.popper);return a&&d.forEach(function(g){g.addEventListener("scroll",r.update,passive)}),c&&u.addEventListener("resize",r.update,passive),function(){a&&d.forEach(function(g){g.removeEventListener("scroll",r.update,passive)}),c&&u.removeEventListener("resize",r.update,passive)}}var eventListeners_default={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect,data:{}};function popperOffsets(i){var e=i.state,r=i.name;e.modifiersData[r]=computeOffsets({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var popperOffsets_default={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}},unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(i){var e=i.x,r=i.y,s=window,o=s.devicePixelRatio||1;return{x:round(e*o)/o||0,y:round(r*o)/o||0}}function mapToStyles(i){var e,r=i.popper,s=i.popperRect,o=i.placement,a=i.variation,l=i.offsets,c=i.position,u=i.gpuAcceleration,d=i.adaptive,g=i.roundOffsets,m=i.isFixed,y=l.x,b=y===void 0?0:y,S=l.y,A=S===void 0?0:S,E=typeof g=="function"?g({x:b,y:A}):{x:b,y:A};b=E.x,A=E.y;var x=l.hasOwnProperty("x"),P=l.hasOwnProperty("y"),T=left,C=top$1,M=window;if(d){var B=getOffsetParent(r),I="clientHeight",k="clientWidth";if(B===getWindow(r)&&(B=getDocumentElement(r),getComputedStyle(B).position!=="static"&&c==="absolute"&&(I="scrollHeight",k="scrollWidth")),B=B,o===top$1||(o===left||o===right$2)&&a===end){C=bottom;var D=m&&B===M&&M.visualViewport?M.visualViewport.height:B[I];A-=D-s.height,A*=u?1:-1}if(o===left||(o===top$1||o===bottom)&&a===end){T=right$2;var O=m&&B===M&&M.visualViewport?M.visualViewport.width:B[k];b-=O-s.width,b*=u?1:-1}}var z=Object.assign({position:c},d&&unsetSides),N=g===!0?roundOffsetsByDPR({x:b,y:A}):{x:b,y:A};if(b=N.x,A=N.y,u){var Q;return Object.assign({},z,(Q={},Q[C]=P?"0":"",Q[T]=x?"0":"",Q.transform=(M.devicePixelRatio||1)<=1?"translate("+b+"px, "+A+"px)":"translate3d("+b+"px, "+A+"px, 0)",Q))}return Object.assign({},z,(e={},e[C]=P?A+"px":"",e[T]=x?b+"px":"",e.transform="",e))}function computeStyles(i){var e=i.state,r=i.options,s=r.gpuAcceleration,o=s===void 0?!0:s,a=r.adaptive,l=a===void 0?!0:a,c=r.roundOffsets,u=c===void 0?!0:c;{var d=getComputedStyle(e.elements.popper).transitionProperty||"";l&&["transform","top","right","bottom","left"].some(function(m){return d.indexOf(m)>=0})&&console.warn(["Popper: Detected CSS transitions on at least one of the following",'CSS properties: "transform", "top", "right", "bottom", "left".',` `,'Disable the "computeStyles" modifier\'s `adaptive` option to allow',"for smooth transitions, or remove these properties from the CSS","transition declaration on the popper element if only transitioning","opacity or background-color for example.",` `,"We recommend using the popper element as a wrapper around an inner","element that can have any CSS property transitioned for animations."].join(" "))}var g={placement:getBasePlacement(e.placement),variation:getVariation(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,mapToStyles(Object.assign({},g,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:l,roundOffsets:u})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,mapToStyles(Object.assign({},g,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var computeStyles_default={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}};function applyStyles(i){var e=i.state;Object.keys(e.elements).forEach(function(r){var s=e.styles[r]||{},o=e.attributes[r]||{},a=e.elements[r];!isHTMLElement(a)||!getNodeName(a)||(Object.assign(a.style,s),Object.keys(o).forEach(function(l){var c=o[l];c===!1?a.removeAttribute(l):a.setAttribute(l,c===!0?"":c)}))})}function effect2(i){var e=i.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(s){var o=e.elements[s],a=e.attributes[s]||{},l=Object.keys(e.styles.hasOwnProperty(s)?e.styles[s]:r[s]),c=l.reduce(function(u,d){return u[d]="",u},{});!isHTMLElement(o)||!getNodeName(o)||(Object.assign(o.style,c),Object.keys(a).forEach(function(u){o.removeAttribute(u)}))})}}var applyStyles_default={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect2,requires:["computeStyles"]},defaultModifiers=[eventListeners_default,popperOffsets_default,computeStyles_default,applyStyles_default],createPopper=popperGenerator({defaultModifiers});function distanceAndSkiddingToXY(i,e,r){var s=getBasePlacement(i),o=[left,top$1].indexOf(s)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},e,{placement:i})):r,l=a[0],c=a[1];return l=l||0,c=(c||0)*o,[left,right$2].indexOf(s)>=0?{x:c,y:l}:{x:l,y:c}}function offset(i){var e=i.state,r=i.options,s=i.name,o=r.offset,a=o===void 0?[0,0]:o,l=placements.reduce(function(g,m){return g[m]=distanceAndSkiddingToXY(m,e.rects,a),g},{}),c=l[e.placement],u=c.x,d=c.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=u,e.modifiersData.popperOffsets.y+=d),e.modifiersData[s]=l}var offset_default={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};const useSyncPropRef=(i,e)=>{const r=ref(i());return watch(i,s=>{s!==r.value&&(r.value=s)}),watch(r,s=>{s!==i()&&e(s)}),r},[name$5,bem$5]=createNamespace$1("popover"),popupProps=["overlay","duration","teleport","overlayStyle","overlayClass","closeOnClickOverlay"],popoverProps={show:Boolean,theme:makeStringProp("light"),overlay:Boolean,actions:makeArrayProp(),trigger:makeStringProp("click"),duration:numericProp,showArrow:truthProp,placement:makeStringProp("bottom"),iconPrefix:String,overlayClass:unknownProp,overlayStyle:Object,closeOnClickAction:truthProp,closeOnClickOverlay:truthProp,closeOnClickOutside:truthProp,offset:{type:Array,default:()=>[0,8]},teleport:{type:[String,Object],default:"body"}};var stdin_default$8=defineComponent({name:name$5,props:popoverProps,emits:["select","touchstart","update:show"],setup(i,{emit:e,slots:r,attrs:s}){let o;const a=ref(),l=ref(),c=ref(),u=useSyncPropRef(()=>i.show,P=>e("update:show",P)),d=()=>({placement:i.placement,modifiers:[{name:"computeStyles",options:{adaptive:!1,gpuAcceleration:!1}},extend$2({},offset_default,{options:{offset:i.offset}})]}),g=()=>l.value&&c.value?createPopper(l.value,c.value.popupRef.value,d()):null,m=()=>{nextTick(()=>{u.value&&(o?o.setOptions(d()):(o=g(),inBrowser$2&&(window.addEventListener("animationend",m),window.addEventListener("transitionend",m))))})},y=P=>{u.value=P},b=()=>{i.trigger==="click"&&(u.value=!u.value)},S=(P,T)=>{P.disabled||(e("select",P,T),i.closeOnClickAction&&(u.value=!1))},A=()=>{u.value&&i.closeOnClickOutside&&(!i.overlay||i.closeOnClickOverlay)&&(u.value=!1)},E=(P,T)=>r.action?r.action({action:P,index:T}):[P.icon&&createVNode(Icon$1,{name:P.icon,classPrefix:i.iconPrefix,class:bem$5("action-icon")},null),createVNode("div",{class:[bem$5("action-text"),BORDER_BOTTOM]},[P.text])],x=(P,T)=>{const{icon:C,color:M,disabled:B,className:I}=P;return createVNode("div",{role:"menuitem",class:[bem$5("action",{disabled:B,"with-icon":C}),I],style:{color:M},tabindex:B?void 0:0,"aria-disabled":B||void 0,onClick:()=>S(P,T)},[E(P,T)])};return onMounted(()=>{m(),watchEffect(()=>{var P;a.value=(P=c.value)==null?void 0:P.popupRef.value})}),onBeforeUnmount(()=>{o&&(inBrowser$2&&(window.removeEventListener("animationend",m),window.removeEventListener("transitionend",m)),o.destroy(),o=null)}),watch(()=>[u.value,i.offset,i.placement],m),useClickAway([l,a],A,{eventName:"touchstart"}),()=>{var P;return createVNode(Fragment,null,[createVNode("span",{ref:l,class:bem$5("wrapper"),onClick:b},[(P=r.reference)==null?void 0:P.call(r)]),createVNode(Popup$1,mergeProps({ref:c,show:u.value,class:bem$5([i.theme]),position:"",transition:"van-popover-zoom",lockScroll:!1,"onUpdate:show":y},s,pick$1(i,popupProps)),{default:()=>[i.showArrow&&createVNode("div",{class:bem$5("arrow")},null),createVNode("div",{role:"menu",class:bem$5("content")},[r.default?r.default():i.actions.map(x)])]})])}}});const Popover=withInstall(stdin_default$8),[name$4,bem$4]=createNamespace$1("skeleton-title"),skeletonTitleProps={round:Boolean,titleWidth:numericProp};var stdin_default$7=defineComponent({name:name$4,props:skeletonTitleProps,setup(i){return()=>createVNode("h3",{class:bem$4([{round:i.round}]),style:{width:addUnit(i.titleWidth)}},null)}});const SkeletonTitle=withInstall(stdin_default$7);var stdin_default$6=SkeletonTitle;const[name$3,bem$3]=createNamespace$1("skeleton-avatar"),skeletonAvatarProps={avatarSize:numericProp,avatarShape:makeStringProp("round")};var stdin_default$5=defineComponent({name:name$3,props:skeletonAvatarProps,setup(i){return()=>createVNode("div",{class:bem$3([i.avatarShape]),style:getSizeStyle(i.avatarSize)},null)}});const SkeletonAvatar=withInstall(stdin_default$5);var stdin_default$4=SkeletonAvatar;const DEFAULT_ROW_WIDTH="100%",skeletonParagraphProps={round:Boolean,rowWidth:{type:numericProp,default:DEFAULT_ROW_WIDTH}},[name$2,bem$2]=createNamespace$1("skeleton-paragraph");var stdin_default$3=defineComponent({name:name$2,props:skeletonParagraphProps,setup(i){return()=>createVNode("div",{class:bem$2([{round:i.round}]),style:{width:i.rowWidth}},null)}});const SkeletonParagraph=withInstall(stdin_default$3);var stdin_default$2=SkeletonParagraph;const[name$1,bem$1]=createNamespace$1("skeleton"),DEFAULT_LAST_ROW_WIDTH="60%",skeletonProps={row:makeNumericProp(0),round:Boolean,title:Boolean,titleWidth:numericProp,avatar:Boolean,avatarSize:numericProp,avatarShape:makeStringProp("round"),loading:truthProp,animate:truthProp,rowWidth:{type:[Number,String,Array],default:DEFAULT_ROW_WIDTH}};var stdin_default$1=defineComponent({name:name$1,inheritAttrs:!1,props:skeletonProps,setup(i,{slots:e,attrs:r}){const s=()=>{if(i.avatar)return createVNode(stdin_default$4,{avatarShape:i.avatarShape,avatarSize:i.avatarSize},null)},o=()=>{if(i.title)return createVNode(stdin_default$6,{round:i.round,titleWidth:i.titleWidth},null)},a=u=>{const{rowWidth:d}=i;return d===DEFAULT_ROW_WIDTH&&u===+i.row-1?DEFAULT_LAST_ROW_WIDTH:Array.isArray(d)?d[u]:d},l=()=>Array(+i.row).fill("").map((u,d)=>createVNode(stdin_default$2,{key:d,round:i.round,rowWidth:addUnit(a(d))},null)),c=()=>e.template?e.template():createVNode(Fragment,null,[s(),createVNode("div",{class:bem$1("content")},[o(),l()])]);return()=>{var u;return i.loading?createVNode("div",mergeProps({class:bem$1({animate:i.animate,round:i.round})},r),[c()]):(u=e.default)==null?void 0:u.call(e)}}});const Skeleton=withInstall(stdin_default$1),[name,bem]=createNamespace$1("slider"),sliderProps={min:makeNumericProp(0),max:makeNumericProp(100),step:makeNumericProp(1),range:Boolean,reverse:Boolean,disabled:Boolean,readonly:Boolean,vertical:Boolean,barHeight:numericProp,buttonSize:numericProp,activeColor:String,inactiveColor:String,modelValue:{type:[Number,Array],default:0}};var stdin_default=defineComponent({name,props:sliderProps,emits:["change","dragEnd","dragStart","update:modelValue"],setup(i,{emit:e,slots:r}){let s,o,a;const l=ref(),c=[ref(),ref()],u=ref(),d=useTouch(),g=computed(()=>Number(i.max)-Number(i.min)),m=computed(()=>{const O=i.vertical?"width":"height";return{background:i.inactiveColor,[O]:addUnit(i.barHeight)}}),y=O=>i.range&&Array.isArray(O),b=()=>{const{modelValue:O,min:z}=i;return y(O)?`${(O[1]-O[0])*100/g.value}%`:`${(O-Number(z))*100/g.value}%`},S=()=>{const{modelValue:O,min:z}=i;return y(O)?`${(O[0]-Number(z))*100/g.value}%`:"0%"},A=computed(()=>{const z={[i.vertical?"height":"width"]:b(),background:i.activeColor};u.value&&(z.transition="none");const N=()=>i.vertical?i.reverse?"bottom":"top":i.reverse?"right":"left";return z[N()]=S(),z}),E=O=>{const z=+i.min,N=+i.max,Q=+i.step;O=clamp(O,z,N);const _=Math.round((O-z)/Q)*Q;return addNumber(z,_)},x=O=>{var z,N;const Q=(z=O[0])!=null?z:Number(i.min),_=(N=O[1])!=null?N:Number(i.max);return Q>_?[_,Q]:[Q,_]},P=(O,z)=>{y(O)?O=x(O).map(E):O=E(O),isSameValue(O,i.modelValue)||e("update:modelValue",O),z&&!isSameValue(O,a)&&e("change",O)},T=O=>{if(O.stopPropagation(),i.disabled||i.readonly)return;const{min:z,reverse:N,vertical:Q,modelValue:_}=i,U=useRect(l),G=()=>Q?N?U.bottom-O.clientY:O.clientY-U.top:N?U.right-O.clientX:O.clientX-U.left,H=Q?U.height:U.width,R=Number(z)+G()/H*g.value;if(y(_)){const[V,te]=_,W=(V+te)/2;R<=W?P([R,te],!0):P([V,R],!0)}else P(R,!0)},C=O=>{i.disabled||i.readonly||(d.start(O),o=i.modelValue,y(o)?a=o.map(E):a=E(o),u.value="start")},M=O=>{if(i.disabled||i.readonly)return;u.value==="start"&&e("dragStart",O),preventDefault(O,!0),d.move(O),u.value="dragging";const z=useRect(l),N=i.vertical?d.deltaY.value:d.deltaX.value,Q=i.vertical?z.height:z.width;let _=N/Q*g.value;if(i.reverse&&(_=-_),y(a)){const U=i.reverse?1-s:s;o[U]=a[U]+_}else o=a+_;P(o)},B=O=>{i.disabled||i.readonly||(u.value==="dragging"&&(P(o,!0),e("dragEnd",O)),u.value="")},I=O=>typeof O=="number"?bem("button-wrapper",["left","right"][O]):bem("button-wrapper",i.reverse?"left":"right"),k=(O,z)=>{if(typeof z=="number"){const N=r[z===0?"left-button":"right-button"];if(N)return N({value:O})}return r.button?r.button({value:O}):createVNode("div",{class:bem("button"),style:getSizeStyle(i.buttonSize)},null)},D=O=>{const z=typeof O=="number"?i.modelValue[O]:i.modelValue;return createVNode("div",{ref:c[O!=null?O:0],role:"slider",class:I(O),tabindex:i.disabled?void 0:0,"aria-valuemin":i.min,"aria-valuenow":z,"aria-valuemax":i.max,"aria-disabled":i.disabled||void 0,"aria-readonly":i.readonly||void 0,"aria-orientation":i.vertical?"vertical":"horizontal",onTouchstartPassive:N=>{typeof O=="number"&&(s=O),C(N)},onTouchend:B,onTouchcancel:B,onClick:stopPropagation},[k(z,O)])};return P(i.modelValue),useCustomFieldValue(()=>i.modelValue),c.forEach(O=>{useEventListener$1("touchmove",M,{target:O})}),()=>createVNode("div",{ref:l,style:m.value,class:bem({vertical:i.vertical,disabled:i.disabled}),onClick:T},[createVNode("div",{class:bem("bar"),style:A.value},[i.range?[D(0),D(1)]:D()])])}});const Slider=withInstall(stdin_default),storeData=reactive({status:"init",user:{},platformType:"STUDENT",platformApi:"/api-student",proxy:"",isApp:!1}),setStoreData=i=>{Object.assign(storeData,i)},setUserInfo=i=>{storeData.status="login",storeData.user=i||{}};var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getAugmentedNamespace(i){if(i.__esModule)return i;var e=i.default;if(typeof e=="function"){var r=function s(){if(this instanceof s){var o=[null];o.push.apply(o,arguments);var a=Function.bind.apply(e,o);return new a}return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(i).forEach(function(s){var o=Object.getOwnPropertyDescriptor(i,s);Object.defineProperty(r,s,o.get?o:{enumerable:!0,get:function(){return i[s]}})}),r}var assign$1=make_assign(),create$1=make_create(),trim$1=make_trim(),Global$5=typeof window<"u"?window:commonjsGlobal,util$i={assign:assign$1,create:create$1,trim:trim$1,bind:bind$3,slice:slice$3,each:each$8,map,pluck:pluck$1,isList:isList$1,isFunction:isFunction$4,isObject:isObject$3,Global:Global$5};function make_assign(){return Object.assign?Object.assign:function(e,r,s,o){for(var a=1;a"u"?null:console;if(i){var e=i.warn?i.warn:i.log;e.apply(i,arguments)}}function createStore(i,e,r){r||(r=""),i&&!isList(i)&&(i=[i]),e&&!isList(e)&&(e=[e]);var s=r?"__storejs_"+r+"_":"",o=r?new RegExp("^"+s):null,a=/^[a-zA-Z0-9_\-]*$/;if(!a.test(r))throw new Error("store.js namespaces can only have alphanumerics + underscores and dashes");var l={_namespacePrefix:s,_namespaceRegexp:o,_testStorage:function(u){try{var d="__storejs__test__";u.write(d,d);var g=u.read(d)===d;return u.remove(d),g}catch(m){return!1}},_assignPluginFnProp:function(u,d){var g=this[d];this[d]=function(){var y=slice$2(arguments,0),b=this;function S(){if(g)return each$7(arguments,function(E,x){y[x]=E}),g.apply(b,y)}var A=[S].concat(y);return u.apply(b,A)}},_serialize:function(u){return JSON.stringify(u)},_deserialize:function(u,d){if(!u)return d;var g="";try{g=JSON.parse(u)}catch(m){g=u}return g!==void 0?g:d},_addStorage:function(u){this.enabled||this._testStorage(u)&&(this.storage=u,this.enabled=!0)},_addPlugin:function(u){var d=this;if(isList(u)){each$7(u,function(y){d._addPlugin(y)});return}var g=pluck(this.plugins,function(y){return u===y});if(!g){if(this.plugins.push(u),!isFunction$3(u))throw new Error("Plugins must be function values that return objects");var m=u.call(this);if(!isObject$2(m))throw new Error("Plugins must return an object of function properties");each$7(m,function(y,b){if(!isFunction$3(y))throw new Error("Bad plugin property: "+b+" from plugin "+u.name+". Plugins should only return functions.");d._assignPluginFnProp(y,b)})}},addStorage:function(u){_warn("store.addStorage(storage) is deprecated. Use createStore([storages])"),this._addStorage(u)}},c=create(l,storeAPI,{plugins:[]});return c.raw={},each$7(c,function(u,d){isFunction$3(u)&&(c.raw[d]=bind$2(c,u))}),each$7(i,function(u){c._addStorage(u)}),each$7(e,function(u){c._addPlugin(u)}),c}var util$g=util$i,Global$4=util$g.Global,localStorage_1={name:"localStorage",read:read$5,write:write$5,each:each$6,remove:remove$6,clearAll:clearAll$5};function localStorage$1(){return Global$4.localStorage}function read$5(i){return localStorage$1().getItem(i)}function write$5(i,e){return localStorage$1().setItem(i,e)}function each$6(i){for(var e=localStorage$1().length-1;e>=0;e--){var r=localStorage$1().key(e);i(read$5(r),r)}}function remove$6(i){return localStorage$1().removeItem(i)}function clearAll$5(){return localStorage$1().clear()}var util$f=util$i,Global$3=util$f.Global,oldFFGlobalStorage={name:"oldFF-globalStorage",read:read$4,write:write$4,each:each$5,remove:remove$5,clearAll:clearAll$4},globalStorage=Global$3.globalStorage;function read$4(i){return globalStorage[i]}function write$4(i,e){globalStorage[i]=e}function each$5(i){for(var e=globalStorage.length-1;e>=0;e--){var r=globalStorage.key(e);i(globalStorage[r],r)}}function remove$5(i){return globalStorage.removeItem(i)}function clearAll$4(){each$5(function(i,e){delete globalStorage[i]})}var util$e=util$i,Global$2=util$e.Global,oldIEUserDataStorage={name:"oldIE-userDataStorage",write:write$3,read:read$3,each:each$4,remove:remove$4,clearAll:clearAll$3},storageName="storejs",doc$1=Global$2.document,_withStorageEl=_makeIEStorageElFunction(),disable$1=(Global$2.navigator?Global$2.navigator.userAgent:"").match(/ (MSIE 8|MSIE 9|MSIE 10)\./);function write$3(i,e){if(!disable$1){var r=fixKey(i);_withStorageEl(function(s){s.setAttribute(r,e),s.save(storageName)})}}function read$3(i){if(!disable$1){var e=fixKey(i),r=null;return _withStorageEl(function(s){r=s.getAttribute(e)}),r}}function each$4(i){_withStorageEl(function(e){for(var r=e.XMLDocument.documentElement.attributes,s=r.length-1;s>=0;s--){var o=r[s];i(e.getAttribute(o.name),o.name)}})}function remove$4(i){var e=fixKey(i);_withStorageEl(function(r){r.removeAttribute(e),r.save(storageName)})}function clearAll$3(){_withStorageEl(function(i){var e=i.XMLDocument.documentElement.attributes;i.load(storageName);for(var r=e.length-1;r>=0;r--)i.removeAttribute(e[r].name);i.save(storageName)})}var forbiddenCharsRegex=new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]","g");function fixKey(i){return i.replace(/^\d/,"___$&").replace(forbiddenCharsRegex,"___")}function _makeIEStorageElFunction(){if(!doc$1||!doc$1.documentElement||!doc$1.documentElement.addBehavior)return null;var i="script",e,r,s;try{r=new ActiveXObject("htmlfile"),r.open(),r.write("<"+i+">document.w=window'),r.close(),e=r.w.frames[0].document,s=e.createElement("div")}catch(o){s=doc$1.createElement("div"),e=doc$1.body}return function(o){var a=[].slice.call(arguments,0);a.unshift(s),e.appendChild(s),s.addBehavior("#default#userData"),s.load(storageName),o.apply(this,a),e.removeChild(s)}}var util$d=util$i,Global$1=util$d.Global,trim=util$d.trim,cookieStorage={name:"cookieStorage",read:read$2,write:write$2,each:each$3,remove:remove$3,clearAll:clearAll$2},doc=Global$1.document;function read$2(i){if(!i||!_has(i))return null;var e="(?:^|.*;\\s*)"+escape(i).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(doc.cookie.replace(new RegExp(e),"$1"))}function each$3(i){for(var e=doc.cookie.split(/; ?/g),r=e.length-1;r>=0;r--)if(trim(e[r])){var s=e[r].split("="),o=unescape(s[0]),a=unescape(s[1]);i(a,o)}}function write$2(i,e){i&&(doc.cookie=escape(i)+"="+escape(e)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/")}function remove$3(i){!i||!_has(i)||(doc.cookie=escape(i)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function clearAll$2(){each$3(function(i,e){remove$3(e)})}function _has(i){return new RegExp("(?:^|;\\s*)"+escape(i).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(doc.cookie)}var util$c=util$i,Global=util$c.Global,sessionStorage_1={name:"sessionStorage",read:read$1,write:write$1,each:each$2,remove:remove$2,clearAll:clearAll$1};function sessionStorage$1(){return Global.sessionStorage}function read$1(i){return sessionStorage$1().getItem(i)}function write$1(i,e){return sessionStorage$1().setItem(i,e)}function each$2(i){for(var e=sessionStorage$1().length-1;e>=0;e--){var r=sessionStorage$1().key(e);i(read$1(r),r)}}function remove$2(i){return sessionStorage$1().removeItem(i)}function clearAll$1(){return sessionStorage$1().clear()}var memoryStorage_1={name:"memoryStorage",read,write,each:each$1,remove:remove$1,clearAll},memoryStorage={};function read(i){return memoryStorage[i]}function write(i,e){memoryStorage[i]=e}function each$1(i){for(var e in memoryStorage)memoryStorage.hasOwnProperty(e)&&i(memoryStorage[e],e)}function remove$1(i){delete memoryStorage[i]}function clearAll(i){memoryStorage={}}var all=[localStorage_1,oldFFGlobalStorage,oldIEUserDataStorage,cookieStorage,sessionStorage_1,memoryStorage_1],json2$1={},hasRequiredJson2;function requireJson2(){return hasRequiredJson2||(hasRequiredJson2=1,typeof JSON!="object"&&(JSON={}),function(){var rx_one=/^[\],:{}\s]*$/,rx_two=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rx_three=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rx_four=/(?:^|:|,)(?:\s*\[)+/g,rx_escapable=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,rx_dangerous=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;function f(i){return i<10?"0"+i:i}function this_value(){return this.valueOf()}typeof Date.prototype.toJSON!="function"&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},Boolean.prototype.toJSON=this_value,Number.prototype.toJSON=this_value,String.prototype.toJSON=this_value);var gap,indent,meta,rep;function quote(i){return rx_escapable.lastIndex=0,rx_escapable.test(i)?'"'+i.replace(rx_escapable,function(e){var r=meta[e];return typeof r=="string"?r:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+i+'"'}function str(i,e){var r,s,o,a,l=gap,c,u=e[i];switch(u&&typeof u=="object"&&typeof u.toJSON=="function"&&(u=u.toJSON(i)),typeof rep=="function"&&(u=rep.call(e,i,u)),typeof u){case"string":return quote(u);case"number":return isFinite(u)?String(u):"null";case"boolean":case"null":return String(u);case"object":if(!u)return"null";if(gap+=indent,c=[],Object.prototype.toString.apply(u)==="[object Array]"){for(a=u.length,r=0;ri==null,strictUriEncode=i=>encodeURIComponent(i).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),encodeFragmentIdentifier=Symbol("encodeFragmentIdentifier");function encoderForArrayFormat(i){switch(i.arrayFormat){case"index":return e=>(r,s)=>{const o=r.length;return s===void 0||i.skipNull&&s===null||i.skipEmptyString&&s===""?r:s===null?[...r,[encode$1(e,i),"[",o,"]"].join("")]:[...r,[encode$1(e,i),"[",encode$1(o,i),"]=",encode$1(s,i)].join("")]};case"bracket":return e=>(r,s)=>s===void 0||i.skipNull&&s===null||i.skipEmptyString&&s===""?r:s===null?[...r,[encode$1(e,i),"[]"].join("")]:[...r,[encode$1(e,i),"[]=",encode$1(s,i)].join("")];case"colon-list-separator":return e=>(r,s)=>s===void 0||i.skipNull&&s===null||i.skipEmptyString&&s===""?r:s===null?[...r,[encode$1(e,i),":list="].join("")]:[...r,[encode$1(e,i),":list=",encode$1(s,i)].join("")];case"comma":case"separator":case"bracket-separator":{const e=i.arrayFormat==="bracket-separator"?"[]=":"=";return r=>(s,o)=>o===void 0||i.skipNull&&o===null||i.skipEmptyString&&o===""?s:(o=o===null?"":o,s.length===0?[[encode$1(r,i),e,encode$1(o,i)].join("")]:[[s,encode$1(o,i)].join(i.arrayFormatSeparator)])}default:return e=>(r,s)=>s===void 0||i.skipNull&&s===null||i.skipEmptyString&&s===""?r:s===null?[...r,encode$1(e,i)]:[...r,[encode$1(e,i),"=",encode$1(s,i)].join("")]}}function parserForArrayFormat(i){let e;switch(i.arrayFormat){case"index":return(r,s,o)=>{if(e=/\[(\d*)]$/.exec(r),r=r.replace(/\[\d*]$/,""),!e){o[r]=s;return}o[r]===void 0&&(o[r]={}),o[r][e[1]]=s};case"bracket":return(r,s,o)=>{if(e=/(\[])$/.exec(r),r=r.replace(/\[]$/,""),!e){o[r]=s;return}if(o[r]===void 0){o[r]=[s];return}o[r]=[...o[r],s]};case"colon-list-separator":return(r,s,o)=>{if(e=/(:list)$/.exec(r),r=r.replace(/:list$/,""),!e){o[r]=s;return}if(o[r]===void 0){o[r]=[s];return}o[r]=[...o[r],s]};case"comma":case"separator":return(r,s,o)=>{const a=typeof s=="string"&&s.includes(i.arrayFormatSeparator),l=typeof s=="string"&&!a&&decode$3(s,i).includes(i.arrayFormatSeparator);s=l?decode$3(s,i):s;const c=a||l?s.split(i.arrayFormatSeparator).map(u=>decode$3(u,i)):s===null?s:decode$3(s,i);o[r]=c};case"bracket-separator":return(r,s,o)=>{const a=/(\[])$/.test(r);if(r=r.replace(/\[]$/,""),!a){o[r]=s&&decode$3(s,i);return}const l=s===null?[]:s.split(i.arrayFormatSeparator).map(c=>decode$3(c,i));if(o[r]===void 0){o[r]=l;return}o[r]=[...o[r],...l]};default:return(r,s,o)=>{if(o[r]===void 0){o[r]=s;return}o[r]=[...[o[r]].flat(),s]}}}function validateArrayFormatSeparator(i){if(typeof i!="string"||i.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function encode$1(i,e){return e.encode?e.strict?strictUriEncode(i):encodeURIComponent(i):i}function decode$3(i,e){return e.decode?decodeUriComponent(i):i}function keysSorter(i){return Array.isArray(i)?i.sort():typeof i=="object"?keysSorter(Object.keys(i)).sort((e,r)=>Number(e)-Number(r)).map(e=>i[e]):i}function removeHash(i){const e=i.indexOf("#");return e!==-1&&(i=i.slice(0,e)),i}function getHash(i){let e="";const r=i.indexOf("#");return r!==-1&&(e=i.slice(r)),e}function parseValue(i,e){return e.parseNumbers&&!Number.isNaN(Number(i))&&typeof i=="string"&&i.trim()!==""?i=Number(i):e.parseBooleans&&i!==null&&(i.toLowerCase()==="true"||i.toLowerCase()==="false")&&(i=i.toLowerCase()==="true"),i}function extract(i){i=removeHash(i);const e=i.indexOf("?");return e===-1?"":i.slice(e+1)}function parse$5(i,e){e={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,...e},validateArrayFormatSeparator(e.arrayFormatSeparator);const r=parserForArrayFormat(e),s=Object.create(null);if(typeof i!="string"||(i=i.trim().replace(/^[?#&]/,""),!i))return s;for(const o of i.split("&")){if(o==="")continue;const a=e.decode?o.replace(/\+/g," "):o;let[l,c]=splitOnFirst(a,"=");l===void 0&&(l=a),c=c===void 0?null:["comma","separator","bracket-separator"].includes(e.arrayFormat)?c:decode$3(c,e),r(decode$3(l,e),c,s)}for(const[o,a]of Object.entries(s))if(typeof a=="object"&&a!==null)for(const[l,c]of Object.entries(a))a[l]=parseValue(c,e);else s[o]=parseValue(a,e);return e.sort===!1?s:(e.sort===!0?Object.keys(s).sort():Object.keys(s).sort(e.sort)).reduce((o,a)=>{const l=s[a];return l&&typeof l=="object"&&!Array.isArray(l)?o[a]=keysSorter(l):o[a]=l,o},Object.create(null))}function stringify$2(i,e){if(!i)return"";e={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",...e},validateArrayFormatSeparator(e.arrayFormatSeparator);const r=l=>e.skipNull&&isNullOrUndefined(i[l])||e.skipEmptyString&&i[l]==="",s=encoderForArrayFormat(e),o={};for(const[l,c]of Object.entries(i))r(l)||(o[l]=c);const a=Object.keys(o);return e.sort!==!1&&a.sort(e.sort),a.map(l=>{const c=i[l];return c===void 0?"":c===null?encode$1(l,e):Array.isArray(c)?c.length===0&&e.arrayFormat==="bracket-separator"?encode$1(l,e)+"[]":c.reduce(s(l),[]).join("&"):encode$1(l,e)+"="+encode$1(c,e)}).filter(l=>l.length>0).join("&")}function parseUrl(i,e){var o,a;e={decode:!0,...e};let[r,s]=splitOnFirst(i,"#");return r===void 0&&(r=i),{url:(a=(o=r==null?void 0:r.split("?"))==null?void 0:o[0])!=null?a:"",query:parse$5(extract(i),e),...e&&e.parseFragmentIdentifier&&s?{fragmentIdentifier:decode$3(s,e)}:{}}}function stringifyUrl(i,e){e={encode:!0,strict:!0,[encodeFragmentIdentifier]:!0,...e};const r=removeHash(i.url).split("?")[0]||"",s=extract(i.url),o={...parse$5(s,{sort:!1}),...i.query};let a=stringify$2(o,e);a&&(a=`?${a}`);let l=getHash(i.url);if(i.fragmentIdentifier){const c=new URL(r);c.hash=i.fragmentIdentifier,l=e[encodeFragmentIdentifier]?c.hash:`#${i.fragmentIdentifier}`}return`${r}${a}${l}`}function pick(i,e,r){r={parseFragmentIdentifier:!0,[encodeFragmentIdentifier]:!1,...r};const{url:s,query:o,fragmentIdentifier:a}=parseUrl(i,r);return stringifyUrl({url:s,query:includeKeys(o,e),fragmentIdentifier:a},r)}function exclude(i,e,r){const s=Array.isArray(e)?o=>!e.includes(o):(o,a)=>!e(o,a);return pick(i,s,r)}const queryString=Object.freeze(Object.defineProperty({__proto__:null,exclude,extract,parse:parse$5,parseUrl,pick,stringify:stringify$2,stringifyUrl},Symbol.toStringTag,{value:"Module"})),getQuery=()=>{let i={};try{i={...queryString.parse(location.search),...queryString.parse(location.hash.split("?")[1])}}catch(e){}return{...i}},browser=()=>{const i=navigator.userAgent;return{trident:i.indexOf("Trident")>-1,presto:i.indexOf("Presto")>-1,webKit:i.indexOf("AppleWebKit")>-1,gecko:i.indexOf("Gecko")>-1&&i.indexOf("KHTML")==-1,mobile:!!i.match(/AppleWebKit.*Mobile.*/),ios:!!i.match(/Mac OS X/)||/(iPhone|iPad|iPod|iOS)/i.test(i),android:i.indexOf("Android")>-1||i.indexOf("Adr")>-1,iPhone:i.indexOf("ORCHESTRAAPPI")>-1,isApp:i.includes("DAYAAPPA")||i.includes("DAYAAPPI")||i.includes("COLEXIUAPPA")||i.includes("COLEXIUAPPI")||i.includes("ORCHESTRAAPPI")||i.includes("ORCHESTRAAPPA"),isTeacher:i.indexOf("ORCHESTRATEACHER")>-1||i.includes("COLEXIUTEACHER"),isStudent:i.indexOf("ORCHESTRASTUDENT")>-1||i.includes("COLEXIUSTUDENT"),isSchool:i.indexOf("ORCHESTRASCHOOL")>-1,iPad:i.indexOf("iPad")>-1,webApp:i.indexOf("Safari")==-1,weixin:i.indexOf("MicroMessenger")>-1,alipay:i.indexOf("AlipayClient")>-1,huawei:!!i.match(/huawei/i)||!!i.match(/honor/i),xiaomi:!!i.match(/mi\s/i)||!!i.match(/redmi/i)||!!i.match(/mix/i)}},getRandomKey=()=>""+Date.now()+Math.floor(Math.random()*1e6),AuthorizationKey="AUTHORIZATION",setToken=i=>{sessionStorage.setItem(AuthorizationKey,i)},getToken=()=>sessionStorage.getItem(AuthorizationKey)||"",setGlobalData=(i,e)=>{if(!i||!e)return;const r=window.GYM||{};r[i]=e,window.GYM=r},BEHAVIORIDKEY="BEHAVIORID",setBehaviorId=i=>{localStorage.setItem(BEHAVIORIDKEY,i)},getBehaviorId=()=>localStorage.getItem(BEHAVIORIDKEY),campIdKey="CAMPID",setCampId=i=>{sessionStorage.setItem(campIdKey,i)},getCampId=()=>sessionStorage.getItem(campIdKey)||"",getSecondRPM=(i,e)=>{if(isNaN(i))return"00:00";let r=Math.floor(i/60/60%24),s=Math.floor(i/60%60),o=Math.floor(i%60);return e==="cn"?`${r>0?r.toString().padStart(2,"0")+"时":""}${s.toString().padStart(2,"0")}分${o.toString().padStart(2,"0")}秒`:`${r>0?r.toString().padStart(2,"0")+":":""}${s.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`},SPEEDKEY="speeds",setStorageSpeed=(i,e)=>{const r=store_legacy.get(SPEEDKEY)||{};r[i]=e,store_legacy.set(SPEEDKEY,r)},getStorageSpeed=i=>(store_legacy.get(SPEEDKEY)||{})[i]||0,matchProductApiUrl=()=>{const i=getQuery(),e={cbs:{dev:"https://dev.resource.colexiu.com",test:"https://test.resource.colexiu.com",online:"https://mec.colexiu.com"},gym:{dev:"https://dev.dayaedu.com",test:"https://test.dayaedu.com",online:"https://online.dayaedu.com"},colexiu:{dev:"https://dev.colexiu.com/",test:"https://test.colexiu.com",online:"https://online.colexiu.com"},orchestra:{dev:"https://dev.lexiaoya.cn",test:"https://test.lexiaoya.cn",online:"https://online.lexiaoya.cn"},instrument:{dev:"https://dev.kt.colexiu.com",test:"https://test.kt.colexiu.com",test2:"https://test.lexiaoya.cn",online:"https://kt.colexiu.com"}};let r=location.origin.includes("//dev")?"dev":location.origin.includes("//test")?"test":location.origin.includes("//online")||location.origin.includes("//kt")||location.origin.includes("//mec")?"online":"dev";if(i.isCbs)return e.cbs[r]+"/cbs-app";{const s=location.pathname.includes("gym")?"gym":location.pathname.includes("colexiu")?"colexiu":location.pathname.includes("orchestra")?"orchestra":"instrument";return s==="instrument"&&r==="test"&&(r=location.origin.includes("//test.kt")?"test":"test2"),e[s][r]+"/edu-app"}},debounce=(i,e=0)=>{let r;return function(...s){clearTimeout(r),r=setTimeout(()=>i.apply(this,s),e)}},originalPostMessage=window.postMessage;window.postMessage=i=>{originalPostMessage(i,"*")};const loop=()=>{},calls={};var wi,Pi,Ti,Ci,Mi,Ii;const instance=window.DAYA||((Pi=(wi=window.webkit)==null?void 0:wi.messageHandlers)==null?void 0:Pi.DAYA)||window.COLEXIU||((Ci=(Ti=window.webkit)==null?void 0:Ti.messageHandlers)==null?void 0:Ci.COLEXIU)||window.ORCHESTRA||((Ii=(Mi=window.webkit)==null?void 0:Mi.messageHandlers)==null?void 0:Ii.ORCHESTRA);instance&&window.addEventListener("message",i=>{var e,r;try{const s=i.data?typeof i.data=="object"?i.data:JSON.parse(i.data):{},o=((e=s.content)==null?void 0:e.uuid)||s.uuid;try{s.content&&(s.content=JSON.parse(s.content))}catch(c){}if(!o){const c=Object.keys(calls).filter(u=>u.indexOf(s.api)===0);for(const u of c){const d=calls[u]||loop;typeof d=="function"&&d(s),Array.isArray(d)&&d.forEach(g=>{typeof g=="function"&&g(s)})}return}const a=((r=s.content)==null?void 0:r.uuid)||s.uuid||s.api+s.uuid,l=calls[a]||loop;typeof l=="function"&&l(s)}catch(s){console.error("通信消息解析错误",s)}});const postMessage$1=(i,e)=>{if(instance){const r=getRandomKey();calls[r]=e||loop,i.content=i.content?{...i.content,uuid:r}:{uuid:r},instance.postMessage(JSON.stringify(i)),console.log("h5_请求_api:",i)}},listenerMessage=(i,e)=>{const r=i;calls[r]||(calls[r]=[]),calls[r].push(e||loop)},removeListenerMessage=(i,e)=>{const r=i;if(Array.isArray(calls[r])){const s=calls[r].indexOf(e);calls[r].splice(s,1)}},promisefiyPostMessage=i=>new Promise(e=>{postMessage$1(i,r=>e(r))}),api_getToken=()=>storeData.isApp?promisefiyPostMessage({api:"getToken"}):Promise.resolve({}),getEarphone=()=>storeData.isApp?promisefiyPostMessage({api:"isWiredHeadsetOn"}):Promise.resolve({}),isSpecialShapedScreen=()=>storeData.isApp?promisefiyPostMessage({api:"isSpecialShapedScreen"}):Promise.resolve({}),sendResult=i=>{listenerMessage("sendResult",i)},removeResult=i=>{removeListenerMessage("sendResult",i)},endSoundCheck=()=>{postMessage$1({api:"endSoundCheck"})},startEvaluating=i=>storeData.isApp?promisefiyPostMessage({api:"startEvaluating",content:i}):Promise.resolve({}),endEvaluating=i=>storeData.isApp?promisefiyPostMessage({api:"endEvaluating",content:i}):Promise.resolve({}),cancelEvaluating=()=>{postMessage$1({api:"cancelEvaluating"})},api_startRecordingCb=(i,e)=>{postMessage$1({api:"startRecording",content:i},e)},api_proxyServiceMessage=i=>storeData.isApp?promisefiyPostMessage({api:"proxyServiceMessage",content:i}):Promise.resolve({}),api_recordStartTime=i=>{listenerMessage("recordStartTime",i)},api_remove_recordStartTime=i=>{removeListenerMessage("recordStartTime",i)},api_videoUpdate=i=>{postMessage$1({api:"videoUpdate"},i)},api_shareAchievements=i=>storeData.isApp?promisefiyPostMessage({api:"shareAchievements",content:i}):Promise.resolve({}),api_openWebView=i=>storeData.isApp?promisefiyPostMessage({api:"openWebView",content:i}):Promise.resolve({}),api_openCamera=()=>storeData.isApp?promisefiyPostMessage({api:"openCamera"}):Promise.resolve({}),api_closeCamera=()=>storeData.isApp?promisefiyPostMessage({api:"closeCamera"}):Promise.resolve({}),api_setStatusBarVisibility=()=>{postMessage$1({api:"setStatusBarVisibility",content:{isVisibility:0}})},api_cloudToggleFollow=i=>storeData.isApp?promisefiyPostMessage({api:"cloudToggleFollow",content:{state:i}}):Promise.resolve({}),api_cloudFollowTime=(i,e=!0)=>{e?listenerMessage("cloudFollowTime",i):removeListenerMessage("cloudFollowTime",i)},api_goback=()=>{postMessage$1({api:"goBack"})},api_back=()=>{postMessage$1({api:"back"})},api_cloudLoading=(i=!1)=>{postMessage$1({api:"cloudLoading",content:{show:i,type:"fullscreen"}})},api_cloudDestroy=()=>{postMessage$1({api:"cloudDestroy"})},api_setEventTracking=()=>{postMessage$1({api:"setEventTracking",content:{type:"klx_xiaokuAI"}})},api_savePicture=i=>storeData.isApp?promisefiyPostMessage({api:"savePicture",content:i}):Promise.resolve({}),api_setCache=i=>{postMessage$1({api:"setCache",content:i})},api_suspendPlay=i=>{listenerMessage("suspendPlay",i)},api_startCapture=()=>{postMessage$1({api:"startCapture"})},api_endCapture=()=>{postMessage$1({api:"endCapture"})},api_getDeviceDelay=()=>storeData.isApp?promisefiyPostMessage({api:"getDeviceDelay"}):Promise.resolve({}),api_toggleTune=(i,e)=>{if(!storeData.isApp)return Promise.resolve({});if(i==="start")return promisefiyPostMessage({api:"startTune",content:{count:e+""}});if(i==="stop")return promisefiyPostMessage({api:"endTune"});if(i==="finishTune")return promisefiyPostMessage({api:"finishTune"})},api_createMusicPlayer=i=>storeData.isApp?promisefiyPostMessage({api:"createMusicPlayer",content:i}):Promise.resolve({}),api_keepScreenLongLight=()=>{postMessage$1({api:"keepScreenLongLight",content:{isOpenLight:!0}})},api_setRequestedOrientation=i=>{postMessage$1({api:"setRequestedOrientation",content:{orientation:i}})},api_playProgress=i=>{listenerMessage("playProgress",i)},api_openAdjustRecording=i=>{postMessage$1({api:"openAdjustRecording",content:i})},hideComplexButton=(i,e)=>{e?listenerMessage("hideComplexButton",i):removeListenerMessage("hideComplexButton",i)},addCheckPlayEnd=i=>{listenerMessage("checkPlayEnd",i)},removeCheckPlayEnd=i=>{removeListenerMessage("checkPlayEnd",i)},api_checkSocketStatus=()=>promisefiyPostMessage({api:"checkSocketStatus"}),addAccompanyError=i=>{listenerMessage("accompanyError",i)},removeAccompanyError=i=>{removeListenerMessage("accompanyError",i)},addSocketStatus=i=>{listenerMessage("socketConnectSuccessReport",i)},removeSocketStatus=i=>{removeListenerMessage("socketConnectSuccessReport",i)},api_disconnectSocket=()=>promisefiyPostMessage({api:"disconnectSocket"}),api_cloudDetail=(i,e)=>{postMessage$1({api:"cloudDetail",content:i},e)},api_cloudGetMediaStatus=()=>promisefiyPostMessage({api:"cloudGetMediaStatus"}),api_cloudPlay=i=>{promisefiyPostMessage({api:"cloudPlay",content:i})},api_cloudSuspend=i=>{promisefiyPostMessage({api:"cloudSuspend",content:i})},api_cloudSetCurrentTime=i=>{promisefiyPostMessage({api:"cloudSetCurrentTime",content:i})},api_cloudChangeSpeed=i=>{promisefiyPostMessage({api:"cloudChangeSpeed",content:i})},api_cloudVolume=i=>{promisefiyPostMessage({api:"cloudVolume",content:i})},api_cloudTimeUpdae=i=>{listenerMessage("cloudTimeUpdae",i)},api_remove_cloudTimeUpdae=i=>{removeListenerMessage("cloudTimeUpdae",i)},api_cloudplayed=i=>{listenerMessage("cloudplayed",i)},api_remove_cloudplayed=i=>{removeListenerMessage("cloudplayed",i)},api_midiMicDelay=i=>{postMessage$1({api:"proxyServiceMessage",content:i})},TheError=defineComponent({name:"The-error",setup(i,e){return()=>createVNode("div",null,[createVNode(NavBar,{leftArrow:!0,onClickLeft:()=>{api_back()}},null),createVNode(Empty,{image:"error",description:"网络开小差,请稍后重试"},{default:()=>[createVNode(Button$1,{type:"primary",size:"small",onClick:()=>history.go(0)},{default:()=>[createTextVNode("重新加载")]})]})])}});var shams=function i(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),s=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(s)!=="[object Symbol]")return!1;var o=42;e[r]=o;for(r in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var l=Object.getOwnPropertyDescriptor(e,r);if(l.value!==o||l.enumerable!==!0)return!1}return!0},origSymbol=typeof Symbol<"u"&&Symbol,hasSymbolSham=shams,hasSymbols$1=function i(){return typeof origSymbol!="function"||typeof Symbol!="function"||typeof origSymbol("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:hasSymbolSham()},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",slice$1=Array.prototype.slice,toStr$1=Object.prototype.toString,funcType="[object Function]",implementation$1=function i(e){var r=this;if(typeof r!="function"||toStr$1.call(r)!==funcType)throw new TypeError(ERROR_MESSAGE+r);for(var s=slice$1.call(arguments,1),o,a=function(){if(this instanceof o){var g=r.apply(this,s.concat(slice$1.call(arguments)));return Object(g)===g?g:this}else return r.apply(e,s.concat(slice$1.call(arguments)))},l=Math.max(0,r.length-s.length),c=[],u=0;u"u"?undefined$1:getProto(Uint8Array),INTRINSICS={"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols?getProto([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols?getProto(getProto([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols?undefined$1:getProto(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols?undefined$1:getProto(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols?getProto(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols?Symbol:undefined$1,"%SyntaxError%":$SyntaxError,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError$1,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};try{null.error}catch(i){var errorProto=getProto(getProto(i));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function i(e){var r;if(e==="%AsyncFunction%")r=getEvalledConstructor("async function () {}");else if(e==="%GeneratorFunction%")r=getEvalledConstructor("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=getEvalledConstructor("async function* () {}");else if(e==="%AsyncGenerator%"){var s=i("%AsyncGeneratorFunction%");s&&(r=s.prototype)}else if(e==="%AsyncIteratorPrototype%"){var o=i("%AsyncGenerator%");o&&(r=getProto(o.prototype))}return INTRINSICS[e]=r,r},LEGACY_ALIASES={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=functionBind,hasOwn$1=src$1,$concat$1=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace$1=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function i(e){var r=$strSlice(e,0,1),s=$strSlice(e,-1);if(r==="%"&&s!=="%")throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");if(s==="%"&&r!=="%")throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");var o=[];return $replace$1(e,rePropName,function(a,l,c,u){o[o.length]=c?$replace$1(u,reEscapeChar,"$1"):l||a}),o},getBaseIntrinsic=function i(e,r){var s=e,o;if(hasOwn$1(LEGACY_ALIASES,s)&&(o=LEGACY_ALIASES[s],s="%"+o[0]+"%"),hasOwn$1(INTRINSICS,s)){var a=INTRINSICS[s];if(a===needsEval&&(a=doEval(s)),typeof a>"u"&&!r)throw new $TypeError$1("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:o,name:s,value:a}}throw new $SyntaxError("intrinsic "+e+" does not exist!")},getIntrinsic=function i(e,r){if(typeof e!="string"||e.length===0)throw new $TypeError$1("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new $TypeError$1('"allowMissing" argument must be a boolean');if($exec(/^%?[^%]*%?$/,e)===null)throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var s=stringToPath(e),o=s.length>0?s[0]:"",a=getBaseIntrinsic("%"+o+"%",r),l=a.name,c=a.value,u=!1,d=a.alias;d&&(o=d[0],$spliceApply(s,$concat$1([0,1],d)));for(var g=1,m=!0;g=s.length){var A=$gOPD(c,y);m=!!A,m&&"get"in A&&!("originalValue"in A.get)?c=A.get:c=c[y]}else m=hasOwn$1(c,y),c=c[y];m&&!u&&(INTRINSICS[l]=c)}}return c},callBindExports={},callBind$1={get exports(){return callBindExports},set exports(i){callBindExports=i}};(function(i){var e=functionBind,r=getIntrinsic,s=r("%Function.prototype.apply%"),o=r("%Function.prototype.call%"),a=r("%Reflect.apply%",!0)||e.call(o,s),l=r("%Object.getOwnPropertyDescriptor%",!0),c=r("%Object.defineProperty%",!0),u=r("%Math.max%");if(c)try{c({},"a",{value:1})}catch(g){c=null}i.exports=function(m){var y=a(e,o,arguments);if(l&&c){var b=l(y,"length");b.configurable&&c(y,"length",{value:1+u(0,m.length-(arguments.length-1))})}return y};var d=function(){return a(e,s,arguments)};c?c(i.exports,"apply",{value:d}):i.exports.apply=d})(callBind$1);var GetIntrinsic$1=getIntrinsic,callBind=callBindExports,$indexOf=callBind(GetIntrinsic$1("String.prototype.indexOf")),callBound$1=function i(e,r){var s=GetIntrinsic$1(e,!!r);return typeof s=="function"&&$indexOf(e,".prototype.")>-1?callBind(s):s};const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$0$1=getAugmentedNamespace(__viteBrowserExternal$1);var hasMap=typeof Map=="function"&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&typeof mapSizeDescriptor.get=="function"?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet=typeof Set=="function"&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&typeof setSizeDescriptor.get=="function"?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap=typeof WeakMap=="function"&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet=typeof WeakSet=="function"&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef=typeof WeakRef=="function"&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString$2=Object.prototype.toString,functionToString=Function.prototype.toString,$match=String.prototype.match,$slice=String.prototype.slice,$replace=String.prototype.replace,$toUpperCase=String.prototype.toUpperCase,$toLowerCase=String.prototype.toLowerCase,$test=RegExp.prototype.test,$concat=Array.prototype.concat,$join=Array.prototype.join,$arrSlice=Array.prototype.slice,$floor=Math.floor,bigIntValueOf=typeof BigInt=="function"?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,hasShammedSymbols=typeof Symbol=="function"&&typeof Symbol.iterator=="object",toStringTag=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===hasShammedSymbols||"symbol")?Symbol.toStringTag:null,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(i){return i.__proto__}:null);function addNumericSeparator(i,e){if(i===1/0||i===-1/0||i!==i||i&&i>-1e3&&i<1e3||$test.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof i=="number"){var s=i<0?-$floor(-i):$floor(i);if(s!==i){var o=String(s),a=$slice.call(e,o.length+1);return $replace.call(o,r,"$&_")+"."+$replace.call($replace.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(e,r,"$&_")}var utilInspect=require$$0$1,inspectCustom=utilInspect.custom,inspectSymbol=isSymbol(inspectCustom)?inspectCustom:null,objectInspect=function i(e,r,s,o){var a=r||{};if(has$3(a,"quoteStyle")&&a.quoteStyle!=="single"&&a.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(a,"maxStringLength")&&(typeof a.maxStringLength=="number"?a.maxStringLength<0&&a.maxStringLength!==1/0:a.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var l=has$3(a,"customInspect")?a.customInspect:!0;if(typeof l!="boolean"&&l!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(a,"indent")&&a.indent!==null&&a.indent!==" "&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has$3(a,"numericSeparator")&&typeof a.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var c=a.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return inspectString(e,a);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var u=String(e);return c?addNumericSeparator(e,u):u}if(typeof e=="bigint"){var d=String(e)+"n";return c?addNumericSeparator(e,d):d}var g=typeof a.depth>"u"?5:a.depth;if(typeof s>"u"&&(s=0),s>=g&&g>0&&typeof e=="object")return isArray$7(e)?"[Array]":"[Object]";var m=getIndent(a,s);if(typeof o>"u")o=[];else if(indexOf$2(o,e)>=0)return"[Circular]";function y(Q,_,U){if(_&&(o=$arrSlice.call(o),o.push(_)),U){var G={depth:a.depth};return has$3(a,"quoteStyle")&&(G.quoteStyle=a.quoteStyle),i(Q,G,s+1,o)}return i(Q,a,s+1,o)}if(typeof e=="function"&&!isRegExp$1(e)){var b=nameOf(e),S=arrObjKeys(e,y);return"[Function"+(b?": "+b:" (anonymous)")+"]"+(S.length>0?" { "+$join.call(S,", ")+" }":"")}if(isSymbol(e)){var A=hasShammedSymbols?$replace.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(e);return typeof e=="object"&&!hasShammedSymbols?markBoxed(A):A}if(isElement(e)){for(var E="<"+$toLowerCase.call(String(e.nodeName)),x=e.attributes||[],P=0;P",E}if(isArray$7(e)){if(e.length===0)return"[]";var T=arrObjKeys(e,y);return m&&!singleLineValues(T)?"["+indentedJoin(T,m)+"]":"[ "+$join.call(T,", ")+" ]"}if(isError(e)){var C=arrObjKeys(e,y);return!("cause"in Error.prototype)&&"cause"in e&&!isEnumerable.call(e,"cause")?"{ ["+String(e)+"] "+$join.call($concat.call("[cause]: "+y(e.cause),C),", ")+" }":C.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+$join.call(C,", ")+" }"}if(typeof e=="object"&&l){if(inspectSymbol&&typeof e[inspectSymbol]=="function"&&utilInspect)return utilInspect(e,{depth:g-s});if(l!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(isMap$2(e)){var M=[];return mapForEach&&mapForEach.call(e,function(Q,_){M.push(y(_,e,!0)+" => "+y(Q,e))}),collectionOf("Map",mapSize.call(e),M,m)}if(isSet$2(e)){var B=[];return setForEach&&setForEach.call(e,function(Q){B.push(y(Q,e))}),collectionOf("Set",setSize.call(e),B,m)}if(isWeakMap(e))return weakCollectionOf("WeakMap");if(isWeakSet(e))return weakCollectionOf("WeakSet");if(isWeakRef(e))return weakCollectionOf("WeakRef");if(isNumber$1(e))return markBoxed(y(Number(e)));if(isBigInt(e))return markBoxed(y(bigIntValueOf.call(e)));if(isBoolean$1(e))return markBoxed(booleanValueOf.call(e));if(isString$1(e))return markBoxed(y(String(e)));if(!isDate$1(e)&&!isRegExp$1(e)){var I=arrObjKeys(e,y),k=gPO?gPO(e)===Object.prototype:e instanceof Object||e.constructor===Object,D=e instanceof Object?"":"null prototype",O=!k&&toStringTag&&Object(e)===e&&toStringTag in e?$slice.call(toStr(e),8,-1):D?"Object":"",z=k||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",N=z+(O||D?"["+$join.call($concat.call([],O||[],D||[]),": ")+"] ":"");return I.length===0?N+"{}":m?N+"{"+indentedJoin(I,m)+"}":N+"{ "+$join.call(I,", ")+" }"}return String(e)};function wrapQuotes(i,e,r){var s=(r.quoteStyle||e)==="double"?'"':"'";return s+i+s}function quote(i){return $replace.call(String(i),/"/g,""")}function isArray$7(i){return toStr(i)==="[object Array]"&&(!toStringTag||!(typeof i=="object"&&toStringTag in i))}function isDate$1(i){return toStr(i)==="[object Date]"&&(!toStringTag||!(typeof i=="object"&&toStringTag in i))}function isRegExp$1(i){return toStr(i)==="[object RegExp]"&&(!toStringTag||!(typeof i=="object"&&toStringTag in i))}function isError(i){return toStr(i)==="[object Error]"&&(!toStringTag||!(typeof i=="object"&&toStringTag in i))}function isString$1(i){return toStr(i)==="[object String]"&&(!toStringTag||!(typeof i=="object"&&toStringTag in i))}function isNumber$1(i){return toStr(i)==="[object Number]"&&(!toStringTag||!(typeof i=="object"&&toStringTag in i))}function isBoolean$1(i){return toStr(i)==="[object Boolean]"&&(!toStringTag||!(typeof i=="object"&&toStringTag in i))}function isSymbol(i){if(hasShammedSymbols)return i&&typeof i=="object"&&i instanceof Symbol;if(typeof i=="symbol")return!0;if(!i||typeof i!="object"||!symToString)return!1;try{return symToString.call(i),!0}catch(e){}return!1}function isBigInt(i){if(!i||typeof i!="object"||!bigIntValueOf)return!1;try{return bigIntValueOf.call(i),!0}catch(e){}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(i){return i in this};function has$3(i,e){return hasOwn.call(i,e)}function toStr(i){return objectToString$2.call(i)}function nameOf(i){if(i.name)return i.name;var e=$match.call(functionToString.call(i),/^function\s*([\w$]+)/);return e?e[1]:null}function indexOf$2(i,e){if(i.indexOf)return i.indexOf(e);for(var r=0,s=i.length;re.maxStringLength){var r=i.length-e.maxStringLength,s="... "+r+" more character"+(r>1?"s":"");return inspectString($slice.call(i,0,e.maxStringLength),e)+s}var o=$replace.call($replace.call(i,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte);return wrapQuotes(o,"single",e)}function lowbyte(i){var e=i.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+$toUpperCase.call(e.toString(16))}function markBoxed(i){return"Object("+i+")"}function weakCollectionOf(i){return i+" { ? }"}function collectionOf(i,e,r,s){var o=s?indentedJoin(r,s):$join.call(r,", ");return i+" ("+e+") {"+o+"}"}function singleLineValues(i){for(var e=0;e=0)return!1;return!0}function getIndent(i,e){var r;if(i.indent===" ")r=" ";else if(typeof i.indent=="number"&&i.indent>0)r=$join.call(Array(i.indent+1)," ");else return null;return{base:r,prev:$join.call(Array(e+1),r)}}function indentedJoin(i,e){if(i.length===0)return"";var r=` `+e.prev+e.base;return r+$join.call(i,","+r)+` `+e.prev}function arrObjKeys(i,e){var r=isArray$7(i),s=[];if(r){s.length=i.length;for(var o=0;o1;){var r=e.pop(),s=r.obj[r.prop];if(isArray$6(s)){for(var o=[],a=0;a=48&&d<=57||d>=65&&d<=90||d>=97&&d<=122||a===formats$2.RFC1738&&(d===40||d===41)){c+=l.charAt(u);continue}if(d<128){c=c+hexTable[d];continue}if(d<2048){c=c+(hexTable[192|d>>6]+hexTable[128|d&63]);continue}if(d<55296||d>=57344){c=c+(hexTable[224|d>>12]+hexTable[128|d>>6&63]+hexTable[128|d&63]);continue}u+=1,d=65536+((d&1023)<<10|l.charCodeAt(u)&1023),c+=hexTable[240|d>>18]+hexTable[128|d>>12&63]+hexTable[128|d>>6&63]+hexTable[128|d&63]}return c},compact=function i(e){for(var r=[{obj:{o:e},prop:"o"}],s=[],o=0;o"u"&&(T=0)}if(typeof u=="function"?x=u(r,x):x instanceof Date?x=m(x):s==="comma"&&isArray$5(x)&&(x=utils$2.maybeMap(x,function(G){return G instanceof Date?m(G):G})),x===null){if(a)return c&&!S?c(r,defaults$1.encoder,A,"key",y):r;x=""}if(isNonNullishPrimitive(x)||utils$2.isBuffer(x)){if(c){var B=S?r:c(r,defaults$1.encoder,A,"key",y);return[b(B)+"="+b(c(x,defaults$1.encoder,A,"value",y))]}return[b(r)+"="+b(String(x))]}var I=[];if(typeof x>"u")return I;var k;if(s==="comma"&&isArray$5(x))S&&c&&(x=utils$2.maybeMap(x,c)),k=[{value:x.length>0?x.join(",")||null:void 0}];else if(isArray$5(u))k=u;else{var D=Object.keys(x);k=d?D.sort(d):D}for(var O=o&&isArray$5(x)&&x.length===1?r+"[]":r,z=0;z"u"?defaults$1.allowDots:!!e.allowDots,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:defaults$1.charsetSentinel,delimiter:typeof e.delimiter>"u"?defaults$1.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:defaults$1.encode,encoder:typeof e.encoder=="function"?e.encoder:defaults$1.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:defaults$1.encodeValuesOnly,filter:a,format:s,formatter:o,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:defaults$1.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:defaults$1.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:defaults$1.strictNullHandling}},stringify_1=function(i,e){var r=i,s=normalizeStringifyOptions(e),o,a;typeof s.filter=="function"?(a=s.filter,r=a("",r)):isArray$5(s.filter)&&(a=s.filter,o=a);var l=[];if(typeof r!="object"||r===null)return"";var c;e&&e.arrayFormat in arrayPrefixGenerators?c=e.arrayFormat:e&&"indices"in e?c=e.indices?"indices":"repeat":c="indices";var u=arrayPrefixGenerators[c];if(e&&"commaRoundTrip"in e&&typeof e.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var d=u==="comma"&&e&&e.commaRoundTrip;o||(o=Object.keys(r)),s.sort&&o.sort(s.sort);for(var g=getSideChannel(),m=0;m0?S+b:""},utils$1=utils$3,has=Object.prototype.hasOwnProperty,isArray$4=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils$1.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(i){return i.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},parseArrayValue=function(i,e){return i&&typeof i=="string"&&e.comma&&i.indexOf(",")>-1?i.split(","):i},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function i(e,r){var s={},o=r.ignoreQueryPrefix?e.replace(/^\?/,""):e,a=r.parameterLimit===1/0?void 0:r.parameterLimit,l=o.split(r.delimiter,a),c=-1,u,d=r.charset;if(r.charsetSentinel)for(u=0;u-1&&(S=isArray$4(S)?[S]:S),has.call(s,b)?s[b]=utils$1.combine(s[b],S):s[b]=S}return s},parseObject=function(i,e,r,s){for(var o=s?e:parseArrayValue(e,r),a=i.length-1;a>=0;--a){var l,c=i[a];if(c==="[]"&&r.parseArrays)l=[].concat(o);else{l=r.plainObjects?Object.create(null):{};var u=c.charAt(0)==="["&&c.charAt(c.length-1)==="]"?c.slice(1,-1):c,d=parseInt(u,10);!r.parseArrays&&u===""?l={0:o}:!isNaN(d)&&c!==u&&String(d)===u&&d>=0&&r.parseArrays&&d<=r.arrayLimit?(l=[],l[d]=o):u!=="__proto__"&&(l[u]=o)}o=l}return o},parseKeys=function i(e,r,s,o){if(e){var a=s.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,l=/(\[[^[\]]*])/,c=/(\[[^[\]]*])/g,u=s.depth>0&&l.exec(a),d=u?a.slice(0,u.index):a,g=[];if(d){if(!s.plainObjects&&has.call(Object.prototype,d)&&!s.allowPrototypes)return;g.push(d)}for(var m=0;s.depth>0&&(u=c.exec(a))!==null&&m"u"?defaults.charset:e.charset;return{allowDots:typeof e.allowDots>"u"?defaults.allowDots:!!e.allowDots,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:defaults.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:defaults.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:defaults.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:defaults.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:defaults.comma,decoder:typeof e.decoder=="function"?e.decoder:defaults.decoder,delimiter:typeof e.delimiter=="string"||utils$1.isRegExp(e.delimiter)?e.delimiter:defaults.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:defaults.depth,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:defaults.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:defaults.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:defaults.plainObjects,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:defaults.strictNullHandling}},parse$4=function(i,e){var r=normalizeParseOptions(e);if(i===""||i===null||typeof i>"u")return r.plainObjects?Object.create(null):{};for(var s=typeof i=="string"?parseValues(i,r):i,o=r.plainObjects?Object.create(null):{},a=Object.keys(s),l=0;l-1};function normalizeName(i){if(typeof i!="string"&&(i=String(i)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(i)||i==="")throw new TypeError('Invalid character in header field name: "'+i+'"');return i.toLowerCase()}function normalizeValue(i){return typeof i!="string"&&(i=String(i)),i}function iteratorFor(i){var e={next:function(){var r=i.shift();return{done:r===void 0,value:r}}};return support.iterable&&(e[Symbol.iterator]=function(){return e}),e}function Headers(i){this.map={},i instanceof Headers?i.forEach(function(e,r){this.append(r,e)},this):Array.isArray(i)?i.forEach(function(e){this.append(e[0],e[1])},this):i&&Object.getOwnPropertyNames(i).forEach(function(e){this.append(e,i[e])},this)}Headers.prototype.append=function(i,e){i=normalizeName(i),e=normalizeValue(e);var r=this.map[i];this.map[i]=r?r+", "+e:e};Headers.prototype.delete=function(i){delete this.map[normalizeName(i)]};Headers.prototype.get=function(i){return i=normalizeName(i),this.has(i)?this.map[i]:null};Headers.prototype.has=function(i){return this.map.hasOwnProperty(normalizeName(i))};Headers.prototype.set=function(i,e){this.map[normalizeName(i)]=normalizeValue(e)};Headers.prototype.forEach=function(i,e){for(var r in this.map)this.map.hasOwnProperty(r)&&i.call(e,this.map[r],r,this)};Headers.prototype.keys=function(){var i=[];return this.forEach(function(e,r){i.push(r)}),iteratorFor(i)};Headers.prototype.values=function(){var i=[];return this.forEach(function(e){i.push(e)}),iteratorFor(i)};Headers.prototype.entries=function(){var i=[];return this.forEach(function(e,r){i.push([r,e])}),iteratorFor(i)};support.iterable&&(Headers.prototype[Symbol.iterator]=Headers.prototype.entries);function consumed(i){if(i.bodyUsed)return Promise.reject(new TypeError("Already read"));i.bodyUsed=!0}function fileReaderReady(i){return new Promise(function(e,r){i.onload=function(){e(i.result)},i.onerror=function(){r(i.error)}})}function readBlobAsArrayBuffer(i){var e=new FileReader,r=fileReaderReady(e);return e.readAsArrayBuffer(i),r}function readBlobAsText(i){var e=new FileReader,r=fileReaderReady(e);return e.readAsText(i),r}function readArrayBufferAsText(i){for(var e=new Uint8Array(i),r=new Array(e.length),s=0;s-1?e:i}function Request(i,e){if(!(this instanceof Request))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e=e||{};var r=e.body;if(i instanceof Request){if(i.bodyUsed)throw new TypeError("Already read");this.url=i.url,this.credentials=i.credentials,e.headers||(this.headers=new Headers(i.headers)),this.method=i.method,this.mode=i.mode,this.signal=i.signal,!r&&i._bodyInit!=null&&(r=i._bodyInit,i.bodyUsed=!0)}else this.url=String(i);if(this.credentials=e.credentials||this.credentials||"same-origin",(e.headers||!this.headers)&&(this.headers=new Headers(e.headers)),this.method=normalizeMethod(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&r)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(r),(this.method==="GET"||this.method==="HEAD")&&(e.cache==="no-store"||e.cache==="no-cache")){var s=/([?&])_=[^&]*/;if(s.test(this.url))this.url=this.url.replace(s,"$1_="+new Date().getTime());else{var o=/\?/;this.url+=(o.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit})};function decode$1(i){var e=new FormData;return i.trim().split("&").forEach(function(r){if(r){var s=r.split("="),o=s.shift().replace(/\+/g," "),a=s.join("=").replace(/\+/g," ");e.append(decodeURIComponent(o),decodeURIComponent(a))}}),e}function parseHeaders(i){var e=new Headers,r=i.replace(/\r?\n[\t ]+/g," ");return r.split("\r").map(function(s){return s.indexOf(` `)===0?s.substr(1,s.length):s}).forEach(function(s){var o=s.split(":"),a=o.shift().trim();if(a){var l=o.join(":").trim();e.append(a,l)}}),e}Body.call(Request.prototype);function Response(i,e){if(!(this instanceof Response))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=e.status===void 0?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=e.statusText===void 0?"":""+e.statusText,this.headers=new Headers(e.headers),this.url=e.url||"",this._initBody(i)}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url})};Response.error=function(){var i=new Response(null,{status:0,statusText:""});return i.type="error",i};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(i,e){if(redirectStatuses.indexOf(e)===-1)throw new RangeError("Invalid status code");return new Response(null,{status:e,headers:{location:i}})};var DOMException=global$1.DOMException;try{new DOMException}catch(i){DOMException=function(e,r){this.message=e,this.name=r;var s=Error(e);this.stack=s.stack},DOMException.prototype=Object.create(Error.prototype),DOMException.prototype.constructor=DOMException}function fetch$2(i,e){return new Promise(function(r,s){var o=new Request(i,e);if(o.signal&&o.signal.aborted)return s(new DOMException("Aborted","AbortError"));var a=new XMLHttpRequest;function l(){a.abort()}a.onload=function(){var u={status:a.status,statusText:a.statusText,headers:parseHeaders(a.getAllResponseHeaders()||"")};u.url="responseURL"in a?a.responseURL:u.headers.get("X-Request-URL");var d="response"in a?a.response:a.responseText;setTimeout(function(){r(new Response(d,u))},0)},a.onerror=function(){setTimeout(function(){s(new TypeError("Network request failed"))},0)},a.ontimeout=function(){setTimeout(function(){s(new TypeError("Network request failed"))},0)},a.onabort=function(){setTimeout(function(){s(new DOMException("Aborted","AbortError"))},0)};function c(u){try{return u===""&&global$1.location.href?global$1.location.href:u}catch(d){return u}}a.open(o.method,c(o.url),!0),o.credentials==="include"?a.withCredentials=!0:o.credentials==="omit"&&(a.withCredentials=!1),"responseType"in a&&(support.blob?a.responseType="blob":support.arrayBuffer&&o.headers.get("Content-Type")&&o.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(a.responseType="arraybuffer")),e&&typeof e.headers=="object"&&!(e.headers instanceof Headers)?Object.getOwnPropertyNames(e.headers).forEach(function(u){a.setRequestHeader(u,normalizeValue(e.headers[u]))}):o.headers.forEach(function(u,d){a.setRequestHeader(d,u)}),o.signal&&(o.signal.addEventListener("abort",l),a.onreadystatechange=function(){a.readyState===4&&o.signal.removeEventListener("abort",l)}),a.send(typeof o._bodyInit>"u"?null:o._bodyInit)})}fetch$2.polyfill=!0;global$1.fetch||(global$1.fetch=fetch$2,global$1.Headers=Headers,global$1.Request=Request,global$1.Response=Response);self.fetch.bind(self);function ownKeys(i,e){var r=Object.keys(i);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(i);e&&(s=s.filter(function(o){return Object.getOwnPropertyDescriptor(i,o).enumerable})),r.push.apply(r,s)}return r}function _objectSpread2(i){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(i){return!1}}function _construct(i,e,r){return _isNativeReflectConstruct()?_construct=Reflect.construct:_construct=function(o,a,l){var c=[null];c.push.apply(c,a);var u=Function.bind.apply(o,c),d=new u;return l&&_setPrototypeOf(d,l.prototype),d},_construct.apply(null,arguments)}function _isNativeFunction(i){return Function.toString.call(i).indexOf("[native code]")!==-1}function _wrapNativeSuper(i){var e=typeof Map=="function"?new Map:void 0;return _wrapNativeSuper=function(s){if(s===null||!_isNativeFunction(s))return s;if(typeof s!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(s))return e.get(s);e.set(s,o)}function o(){return _construct(s,arguments,_getPrototypeOf(this).constructor)}return o.prototype=Object.create(s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf(o,s)},_wrapNativeSuper(i)}function _assertThisInitialized(i){if(i===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return i}function _possibleConstructorReturn(i,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(i)}function _createSuper(i){var e=_isNativeReflectConstruct();return function(){var s=_getPrototypeOf(i),o;if(e){var a=_getPrototypeOf(this).constructor;o=Reflect.construct(s,arguments,a)}else o=s.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _toConsumableArray(i){return _arrayWithoutHoles(i)||_iterableToArray(i)||_unsupportedIterableToArray(i)||_nonIterableSpread()}function _arrayWithoutHoles(i){if(Array.isArray(i))return _arrayLikeToArray(i)}function _iterableToArray(i){if(typeof Symbol<"u"&&i[Symbol.iterator]!=null||i["@@iterator"]!=null)return Array.from(i)}function _unsupportedIterableToArray(i,e){if(i){if(typeof i=="string")return _arrayLikeToArray(i,e);var r=Object.prototype.toString.call(i).slice(8,-1);if(r==="Object"&&i.constructor&&(r=i.constructor.name),r==="Map"||r==="Set")return Array.from(i);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _arrayLikeToArray(i,e)}}function _arrayLikeToArray(i,e){(e==null||e>i.length)&&(e=i.length);for(var r=0,s=new Array(e);r1&&arguments[1]!==void 0?arguments[1]:{global:!1,core:!1,defaultInstance:!1},o=!1,a=!1,l=!1;if(typeof s=="number"?(process&&process.env,o=!0,a=!1):_typeof(s)==="object"&&s&&(a=s.global||!1,o=s.core||!1,l=s.defaultInstance||!1),a){i.globalMiddlewares.splice(i.globalMiddlewares.length-i.defaultGlobalMiddlewaresLength,0,r);return}if(o){i.coreMiddlewares.splice(i.coreMiddlewares.length-i.defaultCoreMiddlewaresLength,0,r);return}if(l){this.defaultMiddlewares.push(r);return}this.middlewares.push(r)}},{key:"execute",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,s=compose([].concat(_toConsumableArray(this.middlewares),_toConsumableArray(this.defaultMiddlewares),_toConsumableArray(i.globalMiddlewares),_toConsumableArray(i.coreMiddlewares)));return s(r)}}]),i}();Onion.globalMiddlewares=[];Onion.defaultGlobalMiddlewaresLength=0;Onion.coreMiddlewares=[];Onion.defaultCoreMiddlewaresLength=0;var MapCache$1=function(){function i(e){_classCallCheck(this,i),this.cache=new Map,this.timer={},this.extendOptions(e)}return _createClass(i,[{key:"extendOptions",value:function(r){this.maxCache=r.maxCache||0}},{key:"get",value:function(r){return this.cache.get(JSON.stringify(r))}},{key:"set",value:function(r,s){var o=this,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:6e4;if(this.maxCache>0&&this.cache.size>=this.maxCache){var l=_toConsumableArray(this.cache.keys())[0];this.cache.delete(l),this.timer[l]&&clearTimeout(this.timer[l])}var c=JSON.stringify(r);this.cache.set(c,s),a>0&&(this.timer[c]=setTimeout(function(){o.cache.delete(c),delete o.timer[c]},a))}},{key:"delete",value:function(r){var s=JSON.stringify(r);return delete this.timer[s],this.cache.delete(s)}},{key:"clear",value:function(){return this.timer={},this.cache.clear()}}]),i}(),RequestError=function(i){_inherits(r,i);var e=_createSuper(r);function r(s,o){var a,l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"RequestError";return _classCallCheck(this,r),a=e.call(this,s),a.name="RequestError",a.request=o,a.type=l,a}return r}(_wrapNativeSuper(Error)),ResponseError=function(i){_inherits(r,i);var e=_createSuper(r);function r(s,o,a,l){var c,u=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"ResponseError";return _classCallCheck(this,r),c=e.call(this,o||s.statusText),c.name="ResponseError",c.data=a,c.response=s,c.request=l,c.type=u,c}return r}(_wrapNativeSuper(Error));function readerGBK(i){return new Promise(function(e,r){var s=new FileReader;s.onload=function(){e(s.result)},s.onerror=r,s.readAsText(i,"GBK")})}function safeJsonParse(i){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;try{return JSON.parse(i)}catch(o){if(e)throw new ResponseError(r,"JSON.parse fail",i,s,"ParseError")}return i}function timeout2Throw(i,e,r){return new Promise(function(s,o){setTimeout(function(){o(new RequestError(e||"timeout of ".concat(i,"ms exceeded"),r,"Timeout"))},i)})}function cancel2Throw(i){return new Promise(function(e,r){i.cancelToken&&i.cancelToken.promise.then(function(s){r(s)})})}var toString$2=Object.prototype.toString;function getEnv(){var i;return typeof process<"u"&&toString$2.call(process)==="[object process]"&&(i="NODE"),typeof XMLHttpRequest<"u"&&(i="BROWSER"),i}function isArray$3(i){return _typeof(i)==="object"&&Object.prototype.toString.call(i)==="[object Array]"}function isURLSearchParams(i){return typeof URLSearchParams<"u"&&i instanceof URLSearchParams}function isDate(i){return _typeof(i)==="object"&&Object.prototype.toString.call(i)==="[object Date]"}function isObject$1(i){return i!==null&&_typeof(i)==="object"}function forEach2ObjArr(i,e){if(i)if(_typeof(i)!=="object"&&(i=[i]),isArray$3(i))for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:{},s=r.prefix,o=r.suffix;return s&&(e="".concat(s).concat(e)),o&&(e="".concat(e).concat(o)),{url:e,options:r}},warnedCoreType=!1;function __defaultValidateCache(i,e){var r=e.method,s=r===void 0?"get":r;return s.toLowerCase()==="get"}function fetchMiddleware(i,e){if(!i)return e();var r=i.req;r=r===void 0?{}:r;var s=r.options,o=s===void 0?{}:s,a=r.url,l=a===void 0?"":a,c=i.cache,u=i.responseInterceptors,d=o.timeout,g=d===void 0?0:d,m=o.timeoutMessage,y=o.__umiRequestCoreType__,b=y===void 0?"normal":y,S=o.useCache,A=S===void 0?!1:S,E=o.method,x=E===void 0?"get":E,P=o.params,T=o.ttl,C=o.validateCache,M=C===void 0?__defaultValidateCache:C;if(b!=="normal")return process&&process.env,e();var B=fetch;if(!B)throw new Error("Global fetch not exist!");var I=getEnv()==="BROWSER",k=M(l,o)&&A&&I;if(k){var D=c.get({url:l,params:P,method:x});if(D)return D=D.clone(),D.useCache=!0,i.res=D,e()}var O;return g>0?O=Promise.race([cancel2Throw(o),B(l,o),timeout2Throw(g,m,i.req)]):O=Promise.race([cancel2Throw(o),B(l,o)]),u.forEach(function(z){O=O.then(function(N){var Q=typeof N.clone=="function"?N.clone():N;return z(Q,o)})}),O.then(function(z){if(k&&z.status===200){var N=z.clone();N.useCache=!0,c.set({url:l,params:P,method:x},N,T)}return i.res=z,e()})}function parseResponseMiddleware(i,e){var r;return e().then(function(){if(i){var s=i.res,o=s===void 0?{}:s,a=i.req,l=a===void 0?{}:a,c=l||{},u=c.options;u=u===void 0?{}:u;var d=u.responseType,g=d===void 0?"json":d,m=u.charset,y=m===void 0?"utf8":m;u.getResponse;var b=u.throwErrIfParseFail,S=b===void 0?!1:b,A=u.parseResponse,E=A===void 0?!0:A;if(E&&!(!o||!o.clone)){if(r=getEnv()==="BROWSER"?o.clone():o,r.useCache=o.useCache||!1,y==="gbk")try{return o.blob().then(readerGBK).then(function(x){return safeJsonParse(x,!1,r,l)})}catch(x){throw new ResponseError(r,x.message,null,l,"ParseError")}else if(g==="json")return o.text().then(function(x){return safeJsonParse(x,S,r,l)});try{return o[g]()}catch(x){throw new ResponseError(r,"responseType not support",null,l,"ParseError")}}}}).then(function(s){if(i){i.res;var o=i.req,a=o===void 0?{}:o,l=a||{},c=l.options;c=c===void 0?{}:c;var u=c.getResponse,d=u===void 0?!1:u;if(r){if(r.status>=200&&r.status<300){if(d){i.res={data:s,response:r};return}i.res=s;return}throw new ResponseError(r,"http error",s,a,"HttpError")}}}).catch(function(s){if(s instanceof RequestError||s instanceof ResponseError)throw s;var o=i.req,a=i.res;throw s.request=s.request||o,s.response=s.response||a,s.type=s.type||s.name,s.data=s.data||void 0,s})}function simplePostMiddleware(i,e){if(!i)return e();var r=i.req;r=r===void 0?{}:r;var s=r.options,o=s===void 0?{}:s,a=o.method,l=a===void 0?"get":a;if(["post","put","patch","delete"].indexOf(l.toLowerCase())===-1)return e();var c=o.requestType,u=c===void 0?"json":c,d=o.data;if(d){var g=Object.prototype.toString.call(d);g==="[object Object]"||g==="[object Array]"?u==="json"?(o.headers=_objectSpread2({Accept:"application/json","Content-Type":"application/json;charset=UTF-8"},o.headers),o.body=JSON.stringify(d)):u==="form"&&(o.headers=_objectSpread2({Accept:"application/json","Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},o.headers),o.body=reqStringify(d)):(o.headers=_objectSpread2({Accept:"application/json"},o.headers),o.body=d)}return i.req.options=o,e()}function paramsSerialize(i,e){var r,s;if(i)if(e)r=e(i);else if(isURLSearchParams(i))r=i.toString();else if(isArray$3(i))s=[],forEach2ObjArr(i,function(a){a===null||typeof a>"u"?s.push(a):s.push(isObject$1(a)?JSON.stringify(a):a)}),r=reqStringify(s);else{s={},forEach2ObjArr(i,function(a,l){var c=a;a===null||typeof a>"u"?s[l]=a:isDate(a)?c=a.toISOString():isArray$3(a)?c=a:isObject$1(a)&&(c=JSON.stringify(a)),s[l]=c});var o=reqStringify(s);r=o}return r}function simpleGetMiddleware(i,e){if(!i)return e();var r=i.req;r=r===void 0?{}:r;var s=r.options,o=s===void 0?{}:s,a=o.paramsSerializer,l=o.params,c=i.req;c=c===void 0?{}:c;var u=c.url,d=u===void 0?"":u;o.method=o.method?o.method.toUpperCase():"GET",o.credentials=o.credentials||"same-origin";var g=paramsSerialize(l,a);if(i.req.originUrl=d,g){var m=d.indexOf("?")!==-1?"&":"?";i.req.url="".concat(d).concat(m).concat(g)}return i.req.options=o,e()}var globalMiddlewares=[simplePostMiddleware,simpleGetMiddleware,parseResponseMiddleware],coreMiddlewares=[fetchMiddleware];Onion.globalMiddlewares=globalMiddlewares;Onion.defaultGlobalMiddlewaresLength=globalMiddlewares.length;Onion.coreMiddlewares=coreMiddlewares;Onion.defaultCoreMiddlewaresLength=coreMiddlewares.length;var Core=function(){function i(e){_classCallCheck(this,i),this.onion=new Onion([]),this.fetchIndex=0,this.mapCache=new MapCache$1(e),this.initOptions=e,this.instanceRequestInterceptors=[],this.instanceResponseInterceptors=[]}return _createClass(i,[{key:"use",value:function(r){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!1,core:!1};return this.onion.use(r,s),this}},{key:"extendOptions",value:function(r){this.initOptions=mergeRequestOptions(this.initOptions,r),this.mapCache.extendOptions(r)}},{key:"dealRequestInterceptors",value:function(r){var s=function(l,c){return l.then(function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return r.req.url=u.url||r.req.url,r.req.options=u.options||r.req.options,c(r.req.url,r.req.options)})},o=[].concat(_toConsumableArray(i.requestInterceptors),_toConsumableArray(this.instanceRequestInterceptors));return o.reduce(s,Promise.resolve()).then(function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return r.req.url=a.url||r.req.url,r.req.options=a.options||r.req.options,Promise.resolve()})}},{key:"request",value:function(r,s){var o=this,a=this.onion,l={req:{url:r,options:_objectSpread2(_objectSpread2({},s),{},{url:r})},res:null,cache:this.mapCache,responseInterceptors:[].concat(_toConsumableArray(i.responseInterceptors),_toConsumableArray(this.instanceResponseInterceptors))};if(typeof r!="string")throw new Error("url MUST be a string");return new Promise(function(c,u){o.dealRequestInterceptors(l).then(function(){return a.execute(l)}).then(function(){c(l.res)}).catch(function(d){var g=l.req.options.errorHandler;if(g)try{var m=g(d);c(m)}catch(y){u(y)}else u(d)})})}}],[{key:"requestUse",value:function(r){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!0};if(typeof r!="function")throw new TypeError("Interceptor must be function!");s.global?i.requestInterceptors.push(r):this.instanceRequestInterceptors.push(r)}},{key:"responseUse",value:function(r){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!0};if(typeof r!="function")throw new TypeError("Interceptor must be function!");s.global?i.responseInterceptors.push(r):this.instanceResponseInterceptors.push(r)}}]),i}();Core.requestInterceptors=[addfix];Core.responseInterceptors=[];function Cancel(i){this.message=i}Cancel.prototype.toString=function i(){return this.message?"Cancel: ".concat(this.message):"Cancel"};Cancel.prototype.__CANCEL__=!0;function CancelToken(i){if(typeof i!="function")throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(o){e=o});var r=this;i(function(o){r.reason||(r.reason=new Cancel(o),e(r.reason))})}CancelToken.prototype.throwIfRequested=function i(){if(this.reason)throw this.reason};CancelToken.source=function i(){var e,r=new CancelToken(function(o){e=o});return{token:r,cancel:e}};function isCancel(i){return!!(i&&i.__CANCEL__)}var request$1=function i(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=new Core(e),s=function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},u=mergeRequestOptions(r.initOptions,c);return r.request(l,u)};s.use=r.use.bind(r),s.fetchIndex=r.fetchIndex,s.interceptors={request:{use:Core.requestUse.bind(r)},response:{use:Core.responseUse.bind(r)}};var o=["get","post","delete","put","patch","head","options","rpc"];return o.forEach(function(a){s[a]=function(l,c){return s(l,_objectSpread2(_objectSpread2({},c),{},{method:a}))}}),s.Cancel=Cancel,s.CancelToken=CancelToken,s.isCancel=isCancel,s.extendOptions=r.extendOptions.bind(r),s.middlewares={instance:r.onion.middlewares,defaultInstance:r.onion.defaultMiddlewares,global:Onion.globalMiddlewares,core:Onion.coreMiddlewares},s},extend$1=function i(e){return request$1(e)};request$1({parseResponse:!1});var request$1$1=request$1({}),lodash_isemptyExports={},lodash_isempty={get exports(){return lodash_isemptyExports},set exports(i){lodash_isemptyExports=i}};(function(i,e){var r=9007199254740991,s="[object Arguments]",o="[object Function]",a="[object GeneratorFunction]",l="[object Map]",c="[object Object]",u="[object Promise]",d="[object Set]",g="[object WeakMap]",m="[object DataView]",y=/[\\^$.*+?()[\]{}|]/g,b=/^\[object .+?Constructor\]$/,S=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,A=typeof self=="object"&&self&&self.Object===Object&&self,E=S||A||Function("return this")(),x=e&&!e.nodeType&&e,P=x&&!0&&i&&!i.nodeType&&i,T=P&&P.exports===x;function C(ye,Pe){return ye==null?void 0:ye[Pe]}function M(ye){var Pe=!1;if(ye!=null&&typeof ye.toString!="function")try{Pe=!!(ye+"")}catch(Me){}return Pe}function B(ye,Pe){return function(Me){return ye(Pe(Me))}}var I=Function.prototype,k=Object.prototype,D=E["__core-js_shared__"],O=function(){var ye=/[^.]+$/.exec(D&&D.keys&&D.keys.IE_PROTO||"");return ye?"Symbol(src)_1."+ye:""}(),z=I.toString,N=k.hasOwnProperty,Q=k.toString,_=RegExp("^"+z.call(N).replace(y,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),U=T?E.Buffer:void 0,G=k.propertyIsEnumerable,H=U?U.isBuffer:void 0,R=B(Object.keys,Object),V=ee(E,"DataView"),te=ee(E,"Map"),W=ee(E,"Promise"),$=ee(E,"Set"),de=ee(E,"WeakMap"),oe=!G.call({valueOf:1},"valueOf"),Y=re(V),Z=re(te),ue=re(W),ae=re($),pe=re(de);function Se(ye){return Q.call(ye)}function ge(ye){if(!ve(ye)||F(ye))return!1;var Pe=me(ye)||M(ye)?_:b;return Pe.test(re(ye))}function ee(ye,Pe){var Me=C(ye,Pe);return ge(Me)?Me:void 0}var ne=Se;(V&&ne(new V(new ArrayBuffer(1)))!=m||te&&ne(new te)!=l||W&&ne(W.resolve())!=u||$&&ne(new $)!=d||de&&ne(new de)!=g)&&(ne=function(ye){var Pe=Q.call(ye),Me=Pe==c?ye.constructor:void 0,Ne=Me?re(Me):void 0;if(Ne)switch(Ne){case Y:return m;case Z:return l;case ue:return u;case ae:return d;case pe:return g}return Pe});function F(ye){return!!O&&O in ye}function se(ye){var Pe=ye&&ye.constructor,Me=typeof Pe=="function"&&Pe.prototype||k;return ye===Me}function re(ye){if(ye!=null){try{return z.call(ye)}catch(Pe){}try{return ye+""}catch(Pe){}}return""}function J(ye){return fe(ye)&&N.call(ye,"callee")&&(!G.call(ye,"callee")||Q.call(ye)==s)}var K=Array.isArray;function ie(ye){return ye!=null&&be(ye.length)&&!me(ye)}function fe(ye){return xe(ye)&&ie(ye)}var he=H||Te;function le(ye){if(ie(ye)&&(K(ye)||typeof ye=="string"||typeof ye.splice=="function"||he(ye)||J(ye)))return!ye.length;var Pe=ne(ye);if(Pe==l||Pe==d)return!ye.size;if(oe||se(ye))return!R(ye).length;for(var Me in ye)if(N.call(ye,Me))return!1;return!0}function me(ye){var Pe=ve(ye)?Q.call(ye):"";return Pe==o||Pe==a}function be(ye){return typeof ye=="number"&&ye>-1&&ye%1==0&&ye<=r}function ve(ye){var Pe=typeof ye;return!!ye&&(Pe=="object"||Pe=="function")}function xe(ye){return!!ye&&typeof ye=="object"}function Te(){return!1}i.exports=le})(lodash_isempty,lodash_isemptyExports);var objectTag$4="[object Object]";function isHostObject(i){var e=!1;if(i!=null&&typeof i.toString!="function")try{e=!!(i+"")}catch(r){}return e}function overArg$1(i,e){return function(r){return i(e(r))}}var funcProto$2=Function.prototype,objectProto$f=Object.prototype,funcToString$2=funcProto$2.toString,hasOwnProperty$c=objectProto$f.hasOwnProperty,objectCtorString=funcToString$2.call(Object),objectToString$1=objectProto$f.toString,getPrototype$2=overArg$1(Object.getPrototypeOf,Object);function isObjectLike$1(i){return!!i&&typeof i=="object"}function isPlainObject$2(i){if(!isObjectLike$1(i)||objectToString$1.call(i)!=objectTag$4||isHostObject(i))return!1;var e=getPrototype$2(i);if(e===null)return!0;var r=hasOwnProperty$c.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&funcToString$2.call(r)==objectCtorString}var lodash_isplainobject=isPlainObject$2,lodash_transformExports={},lodash_transform={get exports(){return lodash_transformExports},set exports(i){lodash_transformExports=i}};(function(i,e){var r=200,s="Expected a function",o="__lodash_hash_undefined__",a=1,l=2,c=1/0,u=9007199254740991,d="[object Arguments]",g="[object Array]",m="[object Boolean]",y="[object Date]",b="[object Error]",S="[object Function]",A="[object GeneratorFunction]",E="[object Map]",x="[object Number]",P="[object Object]",T="[object Promise]",C="[object RegExp]",M="[object Set]",B="[object String]",I="[object Symbol]",k="[object WeakMap]",D="[object ArrayBuffer]",O="[object DataView]",z="[object Float32Array]",N="[object Float64Array]",Q="[object Int8Array]",_="[object Int16Array]",U="[object Int32Array]",G="[object Uint8Array]",H="[object Uint8ClampedArray]",R="[object Uint16Array]",V="[object Uint32Array]",te=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,W=/^\w*$/,$=/^\./,de=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,oe=/[\\^$.*+?()[\]{}|]/g,Y=/\\(\\)?/g,Z=/^\[object .+?Constructor\]$/,ue=/^(?:0|[1-9]\d*)$/,ae={};ae[z]=ae[N]=ae[Q]=ae[_]=ae[U]=ae[G]=ae[H]=ae[R]=ae[V]=!0,ae[d]=ae[g]=ae[D]=ae[m]=ae[O]=ae[y]=ae[b]=ae[S]=ae[E]=ae[x]=ae[P]=ae[C]=ae[M]=ae[B]=ae[k]=!1;var pe=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,Se=typeof self=="object"&&self&&self.Object===Object&&self,ge=pe||Se||Function("return this")(),ee=e&&!e.nodeType&&e,ne=ee&&!0&&i&&!i.nodeType&&i,F=ne&&ne.exports===ee,se=F&&pe.process,re=function(){try{return se&&se.binding("util")}catch(q){}}(),J=re&&re.isTypedArray;function K(q,ce){for(var Ae=-1,Ee=q?q.length:0;++Ae-1}function ri(q,ce){var Ae=this.__data__,Ee=qt(Ae,q);return Ee<0?Ae.push([q,ce]):Ae[Ee][1]=ce,this}Ze.prototype.clear=Qt,Ze.prototype.delete=Wt,Ze.prototype.get=jt,Ze.prototype.has=ct,Ze.prototype.set=ri;function ut(q){var ce=-1,Ae=q?q.length:0;for(this.clear();++ceGe))return!1;var et=Ce.get(q);if(et&&Ce.get(ce))return et==ce;var ht=-1,dt=!0,tt=Ie&a?new Ye:void 0;for(Ce.set(q,ce),Ce.set(ce,q);++ht-1&&q%1==0&&q-1&&q%1==0&&q<=u}function Ht(q){var ce=typeof q;return!!q&&(ce=="object"||ce=="function")}function Zt(q){return!!q&&typeof q=="object"}function ui(q){return typeof q=="symbol"||Zt(q)&&Fe.call(q)==I}var xi=J?le(J):Gi;function rn(q){return q==null?"":ji(q)}function sn(q,ce,Ae){var Ee=q==null?void 0:di(q,ce);return Ee===void 0?Ae:Ee}function on(q,ce){return q!=null&&Ji(q,ce,Di)}function $t(q){return Ai(q)?si(q):Ui(q)}function an(q,ce,Ae){var Ee=Mt(q)||xi(q);if(ce=Hi(ce),Ae==null)if(Ee||Ht(q)){var Ie=q.constructor;Ee?Ae=Mt(q)?new Ie:[]:Ae=li(Ie)?Li(Re(q)):{}}else Ae={};return(Ee?K:Ni)(q,function(Ce,De,Ge){return ce(Ae,Ce,De,Ge)}),Ae}function ln(q){return q}function cn(q){return Kt(q)?fe(Jt(q)):Wi(q)}i.exports=an})(lodash_transform,lodash_transformExports);const isEmpty$1=lodash_isemptyExports,isPlainObject$1=lodash_isplainobject,transform=lodash_transformExports;var src=function i(e,{cleanKeys:r=[],cleanValues:s=[],emptyArrays:o=!0,emptyObjects:a=!0,emptyStrings:l=!0,NaNValues:c=!1,nullValues:u=!0,undefinedValues:d=!0}={}){return transform(e,(g,m,y)=>{if(!r.includes(y)&&((Array.isArray(m)||isPlainObject$1(m))&&(m=i(m,{NaNValues:c,cleanKeys:r,cleanValues:s,emptyArrays:o,emptyObjects:a,emptyStrings:l,nullValues:u,undefinedValues:d})),!s.includes(m)&&!(a&&isPlainObject$1(m)&&isEmpty$1(m))&&!(o&&Array.isArray(m)&&!m.length)&&!(l&&m==="")&&!(c&&Number.isNaN(m))&&!(u&&m===null)&&!(d&&m===void 0))){if(Array.isArray(g))return g.push(m);g[y]=m}})};const whiteUrl=()=>({"/sysMusicScoreCategories/queryTree":"/eduMusicScore/queryTree","/sysMusicScoreAccompaniment/queryPage":queryString.parse(location.search).platform?"/sysMusicScoreAccompaniment/queryPage":"/eduMusicScore/queryPage","/sysMusicScoreAccompaniment/queryPageLimit":"/eduMusicScore/queryPageLimit","/sysMusicScoreAccompaniment/querySubjectIds":"/eduMusicScore/querySubjectIds"});whiteUrl();browser();getQuery();const request=extend$1({requestType:"form",timeout:1e4});request.interceptors.request.use((i,e)=>{const r=e.isContentCenter?"/cbs-app":storeData.platformApi;storeData.proxy+r,i=matchProductApiUrl()+i;const s=getToken(),o={};return s&&!e.isContentCenter&&(o.Authorization=s),{url:i,options:{...e,params:src(e.params),data:src(e.data),headers:{...e.headers,...o}}}},{global:!1});request.interceptors.response.use(async(i,e)=>{if(i.status>299||i.status<200){const s=i.statusText+", 状态码"+i.status;showToast(s)}const r=await i.clone().json();if(r.code===5e3)return r;if(r.code!==200&&r.errCode!==0){const s=r.msg||r.message||"处理失败,请重试";throw r.code===403||r.code,new Error(s)}return r},{global:!1});var dayjs_minExports={},dayjs_min={get exports(){return dayjs_minExports},set exports(i){dayjs_minExports=i}};(function(i,e){(function(r,s){i.exports=s()})(commonjsGlobal,function(){var r=1e3,s=6e4,o=36e5,a="millisecond",l="second",c="minute",u="hour",d="day",g="week",m="month",y="quarter",b="year",S="date",A="Invalid Date",E=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,x=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,P={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(Q){var _=["th","st","nd","rd"],U=Q%100;return"["+Q+(_[(U-20)%10]||_[U]||_[0])+"]"}},T=function(Q,_,U){var G=String(Q);return!G||G.length>=_?Q:""+Array(_+1-G.length).join(U)+Q},C={s:T,z:function(Q){var _=-Q.utcOffset(),U=Math.abs(_),G=Math.floor(U/60),H=U%60;return(_<=0?"+":"-")+T(G,2,"0")+":"+T(H,2,"0")},m:function Q(_,U){if(_.date()1)return Q(V[0])}else{var te=_.name;B[te]=_,H=te}return!G&&H&&(M=H),H||!G&&M},D=function(Q,_){if(I(Q))return Q.clone();var U=typeof _=="object"?_:{};return U.date=Q,U.args=arguments,new z(U)},O=C;O.l=k,O.i=I,O.w=function(Q,_){return D(Q,{locale:_.$L,utc:_.$u,x:_.$x,$offset:_.$offset})};var z=function(){function Q(U){this.$L=k(U.locale,null,!0),this.parse(U)}var _=Q.prototype;return _.parse=function(U){this.$d=function(G){var H=G.date,R=G.utc;if(H===null)return new Date(NaN);if(O.u(H))return new Date;if(H instanceof Date)return new Date(H);if(typeof H=="string"&&!/Z$/i.test(H)){var V=H.match(E);if(V){var te=V[2]-1||0,W=(V[7]||"0").substring(0,3);return R?new Date(Date.UTC(V[1],te,V[3]||1,V[4]||0,V[5]||0,V[6]||0,W)):new Date(V[1],te,V[3]||1,V[4]||0,V[5]||0,V[6]||0,W)}}return new Date(H)}(U),this.$x=U.x||{},this.init()},_.init=function(){var U=this.$d;this.$y=U.getFullYear(),this.$M=U.getMonth(),this.$D=U.getDate(),this.$W=U.getDay(),this.$H=U.getHours(),this.$m=U.getMinutes(),this.$s=U.getSeconds(),this.$ms=U.getMilliseconds()},_.$utils=function(){return O},_.isValid=function(){return this.$d.toString()!==A},_.isSame=function(U,G){var H=D(U);return this.startOf(G)<=H&&H<=this.endOf(G)},_.isAfter=function(U,G){return D(U)=0&&m<=1){if(y._volume=m,y._muted)return y;y.usingWebAudio&&y.masterGain.gain.setValueAtTime(m,r.ctx.currentTime);for(var b=0;b=0;y--)m._howls[y].unload();return m.usingWebAudio&&m.ctx&&typeof m.ctx.close<"u"&&(m.ctx.close(),m.ctx=null,g()),m},codecs:function(m){return(this||r)._codecs[m.replace(/^x-/,"")]},_setup:function(){var m=this||r;if(m.state=m.ctx&&m.ctx.state||"suspended",m._autoSuspend(),!m.usingWebAudio)if(typeof Audio<"u")try{var y=new Audio;typeof y.oncanplaythrough>"u"&&(m._canPlayEvent="canplay")}catch(b){m.noAudio=!0}else m.noAudio=!0;try{var y=new Audio;y.muted&&(m.noAudio=!0)}catch(b){}return m.noAudio||m._setupCodecs(),m},_setupCodecs:function(){var m=this||r,y=null;try{y=typeof Audio<"u"?new Audio:null}catch(C){return m}if(!y||typeof y.canPlayType!="function")return m;var b=y.canPlayType("audio/mpeg;").replace(/^no$/,""),S=m._navigator?m._navigator.userAgent:"",A=S.match(/OPR\/([0-6].)/g),E=A&&parseInt(A[0].split("/")[1],10)<33,x=S.indexOf("Safari")!==-1&&S.indexOf("Chrome")===-1,P=S.match(/Version\/(.*?) /),T=x&&P&&parseInt(P[1],10)<15;return m._codecs={mp3:!!(!E&&(b||y.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!b,opus:!!y.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!y.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!y.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(y.canPlayType('audio/wav; codecs="1"')||y.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!y.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!y.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(y.canPlayType("audio/x-m4a;")||y.canPlayType("audio/m4a;")||y.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(y.canPlayType("audio/x-m4b;")||y.canPlayType("audio/m4b;")||y.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(y.canPlayType("audio/x-mp4;")||y.canPlayType("audio/mp4;")||y.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!T&&y.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!T&&y.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!y.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(y.canPlayType("audio/x-flac;")||y.canPlayType("audio/flac;")).replace(/^no$/,"")},m},_unlockAudio:function(){var m=this||r;if(!(m._audioUnlocked||!m.ctx)){m._audioUnlocked=!1,m.autoUnlock=!1,!m._mobileUnloaded&&m.ctx.sampleRate!==44100&&(m._mobileUnloaded=!0,m.unload()),m._scratchBuffer=m.ctx.createBuffer(1,1,22050);var y=function(b){for(;m._html5AudioPool.length"u"?T.noteOn(0):T.start(0),typeof m.ctx.resume=="function"&&m.ctx.resume(),T.onended=function(){T.disconnect(0),m._audioUnlocked=!0,document.removeEventListener("touchstart",y,!0),document.removeEventListener("touchend",y,!0),document.removeEventListener("click",y,!0),document.removeEventListener("keydown",y,!0);for(var C=0;C"u"||!r.usingWebAudio)){for(var y=0;y"u"||!r.usingWebAudio))return m.state==="running"&&m.ctx.state!=="interrupted"&&m._suspendTimer?(clearTimeout(m._suspendTimer),m._suspendTimer=null):m.state==="suspended"||m.state==="running"&&m.ctx.state==="interrupted"?(m.ctx.resume().then(function(){m.state="running";for(var y=0;y"u"&&(m="__default",!b._playLock)){for(var A=0,E=0;E0?x._seek:b._sprite[m][0]/1e3),C=Math.max(0,(b._sprite[m][0]+b._sprite[m][1])/1e3-T),M=C*1e3/Math.abs(x._rate),B=b._sprite[m][0]/1e3,I=(b._sprite[m][0]+b._sprite[m][1])/1e3;x._sprite=m,x._ended=!1;var k=function(){x._paused=!1,x._seek=T,x._start=B,x._stop=I,x._loop=!!(x._loop||b._sprite[m][2])};if(T>=I){b._ended(x);return}var D=x._node;if(b._webAudio){var O=function(){b._playLock=!1,k(),b._refreshBuffer(x);var _=x._muted||b._muted?0:x._volume;D.gain.setValueAtTime(_,r.ctx.currentTime),x._playStart=r.ctx.currentTime,typeof D.bufferSource.start>"u"?x._loop?D.bufferSource.noteGrainOn(0,T,86400):D.bufferSource.noteGrainOn(0,T,C):x._loop?D.bufferSource.start(0,T,86400):D.bufferSource.start(0,T,C),M!==1/0&&(b._endTimers[x._id]=setTimeout(b._ended.bind(b,x),M)),y||setTimeout(function(){b._emit("play",x._id),b._loadQueue()},0)};r.state==="running"&&r.ctx.state!=="interrupted"?O():(b._playLock=!0,b.once("resume",O),b._clearTimer(x._id))}else{var z=function(){D.currentTime=T,D.muted=x._muted||b._muted||r._muted||D.muted,D.volume=x._volume*r.volume(),D.playbackRate=x._rate;try{var _=D.play();if(_&&typeof Promise<"u"&&(_ instanceof Promise||typeof _.then=="function")?(b._playLock=!0,k(),_.then(function(){b._playLock=!1,D._unlocked=!0,y?b._loadQueue():b._emit("play",x._id)}).catch(function(){b._playLock=!1,b._emit("playerror",x._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),x._ended=!0,x._paused=!0})):y||(b._playLock=!1,k(),b._emit("play",x._id)),D.playbackRate=x._rate,D.paused){b._emit("playerror",x._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}m!=="__default"||x._loop?b._endTimers[x._id]=setTimeout(b._ended.bind(b,x),M):(b._endTimers[x._id]=function(){b._ended(x),D.removeEventListener("ended",b._endTimers[x._id],!1)},D.addEventListener("ended",b._endTimers[x._id],!1))}catch(U){b._emit("playerror",x._id,U)}};D.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(D.src=b._src,D.load());var N=window&&window.ejecta||!D.readyState&&r._navigator.isCocoonJS;if(D.readyState>=3||N)z();else{b._playLock=!0,b._state="loading";var Q=function(){b._state="loaded",z(),D.removeEventListener(r._canPlayEvent,Q,!1)};D.addEventListener(r._canPlayEvent,Q,!1),b._clearTimer(x._id)}}return x._id},pause:function(m){var y=this;if(y._state!=="loaded"||y._playLock)return y._queue.push({event:"pause",action:function(){y.pause(m)}}),y;for(var b=y._getSoundIds(m),S=0;S"u"?A._node.bufferSource.noteOff(0):A._node.bufferSource.stop(0),y._cleanBuffer(A._node)}else(!isNaN(A._node.duration)||A._node.duration===1/0)&&A._node.pause();arguments[1]||y._emit("pause",A?A._id:null)}return y},stop:function(m,y){var b=this;if(b._state!=="loaded"||b._playLock)return b._queue.push({event:"stop",action:function(){b.stop(m)}}),b;for(var S=b._getSoundIds(m),A=0;A"u"?E._node.bufferSource.noteOff(0):E._node.bufferSource.stop(0),b._cleanBuffer(E._node)):(!isNaN(E._node.duration)||E._node.duration===1/0)&&(E._node.currentTime=E._start||0,E._node.pause(),E._node.duration===1/0&&b._clearSound(E._node))),y||b._emit("stop",E._id))}return b},mute:function(m,y){var b=this;if(b._state!=="loaded"||b._playLock)return b._queue.push({event:"mute",action:function(){b.mute(m,y)}}),b;if(typeof y>"u")if(typeof m=="boolean")b._muted=m;else return b._muted;for(var S=b._getSoundIds(y),A=0;A"u"){var A=m._getSoundIds(),E=A.indexOf(y[0]);E>=0?S=parseInt(y[0],10):b=parseFloat(y[0])}else y.length>=2&&(b=parseFloat(y[0]),S=parseInt(y[1],10));var x;if(typeof b<"u"&&b>=0&&b<=1){if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"volume",action:function(){m.volume.apply(m,y)}}),m;typeof S>"u"&&(m._volume=b),S=m._getSoundIds(S);for(var P=0;P"u")}}return A},_startFadeInterval:function(m,y,b,S,A,E){var x=this,P=y,T=b-y,C=Math.abs(T/.01),M=Math.max(4,C>0?S/C:S),B=Date.now();m._fadeTo=b,m._interval=setInterval(function(){var I=(Date.now()-B)/S;B=Date.now(),P+=T*I,P=Math.round(P*100)/100,T<0?P=Math.max(b,P):P=Math.min(b,P),x._webAudio?m._volume=P:x.volume(P,m._id,!0),E&&(x._volume=P),(by&&P>=b)&&(clearInterval(m._interval),m._interval=null,m._fadeTo=null,x.volume(b,m._id),x._emit("fade",m._id))},M)},_stopFade:function(m){var y=this,b=y._soundById(m);return b&&b._interval&&(y._webAudio&&b._node.gain.cancelScheduledValues(r.ctx.currentTime),clearInterval(b._interval),b._interval=null,y.volume(b._fadeTo,m),b._fadeTo=null,y._emit("fade",m)),y},loop:function(){var m=this,y=arguments,b,S,A;if(y.length===0)return m._loop;if(y.length===1)if(typeof y[0]=="boolean")b=y[0],m._loop=b;else return A=m._soundById(parseInt(y[0],10)),A?A._loop:!1;else y.length===2&&(b=y[0],S=parseInt(y[1],10));for(var E=m._getSoundIds(S),x=0;x=0?S=parseInt(y[0],10):b=parseFloat(y[0])}else y.length===2&&(b=parseFloat(y[0]),S=parseInt(y[1],10));var x;if(typeof b=="number"){if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"rate",action:function(){m.rate.apply(m,y)}}),m;typeof S>"u"&&(m._rate=b),S=m._getSoundIds(S);for(var P=0;P=0?S=parseInt(y[0],10):m._sounds.length&&(S=m._sounds[0]._id,b=parseFloat(y[0]))}else y.length===2&&(b=parseFloat(y[0]),S=parseInt(y[1],10));if(typeof S>"u")return 0;if(typeof b=="number"&&(m._state!=="loaded"||m._playLock))return m._queue.push({event:"seek",action:function(){m.seek.apply(m,y)}}),m;var x=m._soundById(S);if(x)if(typeof b=="number"&&b>=0){var P=m.playing(S);P&&m.pause(S,!0),x._seek=b,x._ended=!1,m._clearTimer(S),!m._webAudio&&x._node&&!isNaN(x._node.duration)&&(x._node.currentTime=b);var T=function(){P&&m.play(S,!0),m._emit("seek",S)};if(P&&!m._webAudio){var C=function(){m._playLock?setTimeout(C,0):T()};setTimeout(C,0)}else T()}else if(m._webAudio){var M=m.playing(S)?r.ctx.currentTime-x._playStart:0,B=x._rateSeek?x._rateSeek-x._seek:0;return x._seek+(B+M*Math.abs(x._rate))}else return x._node.currentTime;return m},playing:function(m){var y=this;if(typeof m=="number"){var b=y._soundById(m);return b?!b._paused:!1}for(var S=0;S=0&&r._howls.splice(S,1);var A=!0;for(b=0;b=0){A=!1;break}return a&&A&&delete a[m._src],r.noAudio=!1,m._state="unloaded",m._sounds=[],m=null,null},on:function(m,y,b,S){var A=this,E=A["_on"+m];return typeof y=="function"&&E.push(S?{id:b,fn:y,once:S}:{id:b,fn:y}),A},off:function(m,y,b){var S=this,A=S["_on"+m],E=0;if(typeof y=="number"&&(b=y,y=null),y||b)for(E=0;E=0;E--)(!A[E].id||A[E].id===y||m==="load")&&(setTimeout(function(x){x.call(this,y,b)}.bind(S,A[E].fn),0),A[E].once&&S.off(m,A[E].fn,A[E].id));return S._loadQueue(m),S},_loadQueue:function(m){var y=this;if(y._queue.length>0){var b=y._queue[0];b.event===m&&(y._queue.shift(),y._loadQueue()),m||b.action()}return y},_ended:function(m){var y=this,b=m._sprite;if(!y._webAudio&&m._node&&!m._node.paused&&!m._node.ended&&m._node.currentTime=0;S--){if(b<=y)return;m._sounds[S]._ended&&(m._webAudio&&m._sounds[S]._node&&m._sounds[S]._node.disconnect(0),m._sounds.splice(S,1),b--)}}},_getSoundIds:function(m){var y=this;if(typeof m>"u"){for(var b=[],S=0;S=0;if(r._scratchBuffer&&m.bufferSource&&(m.bufferSource.onended=null,m.bufferSource.disconnect(0),b))try{m.bufferSource.buffer=r._scratchBuffer}catch(S){}return m.bufferSource=null,y},_clearSound:function(m){var y=/MSIE |Trident\//.test(r._navigator&&r._navigator.userAgent);y||(m.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var o=function(m){this._parent=m,this.init()};o.prototype={init:function(){var m=this,y=m._parent;return m._muted=y._muted,m._loop=y._loop,m._volume=y._volume,m._rate=y._rate,m._seek=0,m._paused=!0,m._ended=!0,m._sprite="__default",m._id=++r._counter,y._sounds.push(m),m.create(),m},create:function(){var m=this,y=m._parent,b=r._muted||m._muted||m._parent._muted?0:m._volume;return y._webAudio?(m._node=typeof r.ctx.createGain>"u"?r.ctx.createGainNode():r.ctx.createGain(),m._node.gain.setValueAtTime(b,r.ctx.currentTime),m._node.paused=!0,m._node.connect(r.masterGain)):r.noAudio||(m._node=r._obtainHtml5Audio(),m._errorFn=m._errorListener.bind(m),m._node.addEventListener("error",m._errorFn,!1),m._loadFn=m._loadListener.bind(m),m._node.addEventListener(r._canPlayEvent,m._loadFn,!1),m._endFn=m._endListener.bind(m),m._node.addEventListener("ended",m._endFn,!1),m._node.src=y._src,m._node.preload=y._preload===!0?"auto":y._preload,m._node.volume=b*r.volume(),m._node.load()),m},reset:function(){var m=this,y=m._parent;return m._muted=y._muted,m._loop=y._loop,m._volume=y._volume,m._rate=y._rate,m._seek=0,m._rateSeek=0,m._paused=!0,m._ended=!0,m._sprite="__default",m._id=++r._counter,m},_errorListener:function(){var m=this;m._parent._emit("loaderror",m._id,m._node.error?m._node.error.code:0),m._node.removeEventListener("error",m._errorFn,!1)},_loadListener:function(){var m=this,y=m._parent;y._duration=Math.ceil(m._node.duration*10)/10,Object.keys(y._sprite).length===0&&(y._sprite={__default:[0,y._duration*1e3]}),y._state!=="loaded"&&(y._state="loaded",y._emit("load"),y._loadQueue()),m._node.removeEventListener(r._canPlayEvent,m._loadFn,!1)},_endListener:function(){var m=this,y=m._parent;y._duration===1/0&&(y._duration=Math.ceil(m._node.duration*10)/10,y._sprite.__default[1]===1/0&&(y._sprite.__default[1]=y._duration*1e3),y._ended(m)),m._node.removeEventListener("ended",m._endFn,!1)}};var a={},l=function(m){var y=m._src;if(a[y]){m._duration=a[y].duration,d(m);return}if(/^data:[^;]+;base64,/.test(y)){for(var b=atob(y.split(",")[1]),S=new Uint8Array(b.length),A=0;A0?(a[y._src]=A,d(y,A)):b()};typeof Promise<"u"&&r.ctx.decodeAudioData.length===1?r.ctx.decodeAudioData(m).then(S).catch(b):r.ctx.decodeAudioData(m,S,b)},d=function(m,y){y&&!m._duration&&(m._duration=y.duration),Object.keys(m._sprite).length===0&&(m._sprite={__default:[0,m._duration*1e3]}),m._state!=="loaded"&&(m._state="loaded",m._emit("load"),m._loadQueue())},g=function(){if(r.usingWebAudio){try{typeof AudioContext<"u"?r.ctx=new AudioContext:typeof webkitAudioContext<"u"?r.ctx=new webkitAudioContext:r.usingWebAudio=!1}catch(A){r.usingWebAudio=!1}r.ctx||(r.usingWebAudio=!1);var m=/iP(hone|od|ad)/.test(r._navigator&&r._navigator.platform),y=r._navigator&&r._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),b=y?parseInt(y[1],10):null;if(m&&b&&b<9){var S=/safari/.test(r._navigator&&r._navigator.userAgent.toLowerCase());r._navigator&&!S&&(r.usingWebAudio=!1)}r.usingWebAudio&&(r.masterGain=typeof r.ctx.createGain>"u"?r.ctx.createGainNode():r.ctx.createGain(),r.masterGain.gain.setValueAtTime(r._muted?0:r._volume,r.ctx.currentTime),r.masterGain.connect(r.ctx.destination)),r._setup()}};i.Howler=r,i.Howl=s,typeof commonjsGlobal<"u"?(commonjsGlobal.HowlerGlobal=e,commonjsGlobal.Howler=r,commonjsGlobal.Howl=s,commonjsGlobal.Sound=o):typeof window<"u"&&(window.HowlerGlobal=e,window.Howler=r,window.Howl=s,window.Sound=o)})();/*! * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. * * howler.js v2.2.3 * howlerjs.com * * (c) 2013-2020, James Simpson of GoldFire Studios * goldfirestudios.com * * MIT License */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(r){var s=this;if(!s.ctx||!s.ctx.listener)return s;for(var o=s._howls.length-1;o>=0;o--)s._howls[o].stereo(r);return s},HowlerGlobal.prototype.pos=function(r,s,o){var a=this;if(!a.ctx||!a.ctx.listener)return a;if(s=typeof s!="number"?a._pos[1]:s,o=typeof o!="number"?a._pos[2]:o,typeof r=="number")a._pos=[r,s,o],typeof a.ctx.listener.positionX<"u"?(a.ctx.listener.positionX.setTargetAtTime(a._pos[0],Howler.ctx.currentTime,.1),a.ctx.listener.positionY.setTargetAtTime(a._pos[1],Howler.ctx.currentTime,.1),a.ctx.listener.positionZ.setTargetAtTime(a._pos[2],Howler.ctx.currentTime,.1)):a.ctx.listener.setPosition(a._pos[0],a._pos[1],a._pos[2]);else return a._pos;return a},HowlerGlobal.prototype.orientation=function(r,s,o,a,l,c){var u=this;if(!u.ctx||!u.ctx.listener)return u;var d=u._orientation;if(s=typeof s!="number"?d[1]:s,o=typeof o!="number"?d[2]:o,a=typeof a!="number"?d[3]:a,l=typeof l!="number"?d[4]:l,c=typeof c!="number"?d[5]:c,typeof r=="number")u._orientation=[r,s,o,a,l,c],typeof u.ctx.listener.forwardX<"u"?(u.ctx.listener.forwardX.setTargetAtTime(r,Howler.ctx.currentTime,.1),u.ctx.listener.forwardY.setTargetAtTime(s,Howler.ctx.currentTime,.1),u.ctx.listener.forwardZ.setTargetAtTime(o,Howler.ctx.currentTime,.1),u.ctx.listener.upX.setTargetAtTime(a,Howler.ctx.currentTime,.1),u.ctx.listener.upY.setTargetAtTime(l,Howler.ctx.currentTime,.1),u.ctx.listener.upZ.setTargetAtTime(c,Howler.ctx.currentTime,.1)):u.ctx.listener.setOrientation(r,s,o,a,l,c);else return d;return u},Howl.prototype.init=function(r){return function(s){var o=this;return o._orientation=s.orientation||[1,0,0],o._stereo=s.stereo||null,o._pos=s.pos||null,o._pannerAttr={coneInnerAngle:typeof s.coneInnerAngle<"u"?s.coneInnerAngle:360,coneOuterAngle:typeof s.coneOuterAngle<"u"?s.coneOuterAngle:360,coneOuterGain:typeof s.coneOuterGain<"u"?s.coneOuterGain:0,distanceModel:typeof s.distanceModel<"u"?s.distanceModel:"inverse",maxDistance:typeof s.maxDistance<"u"?s.maxDistance:1e4,panningModel:typeof s.panningModel<"u"?s.panningModel:"HRTF",refDistance:typeof s.refDistance<"u"?s.refDistance:1,rolloffFactor:typeof s.rolloffFactor<"u"?s.rolloffFactor:1},o._onstereo=s.onstereo?[{fn:s.onstereo}]:[],o._onpos=s.onpos?[{fn:s.onpos}]:[],o._onorientation=s.onorientation?[{fn:s.onorientation}]:[],r.call(this,s)}}(Howl.prototype.init),Howl.prototype.stereo=function(r,s){var o=this;if(!o._webAudio)return o;if(o._state!=="loaded")return o._queue.push({event:"stereo",action:function(){o.stereo(r,s)}}),o;var a=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof s>"u")if(typeof r=="number")o._stereo=r,o._pos=[r,0,0];else return o._stereo;for(var l=o._getSoundIds(s),c=0;c"u")if(typeof r=="number")l._pos=[r,s,o];else return l._pos;for(var c=l._getSoundIds(a),u=0;u"u")if(typeof r=="number")l._orientation=[r,s,o];else return l._orientation;for(var c=l._getSoundIds(a),u=0;u"u"&&(o.pannerAttr||(o.pannerAttr={coneInnerAngle:o.coneInnerAngle,coneOuterAngle:o.coneOuterAngle,coneOuterGain:o.coneOuterGain,distanceModel:o.distanceModel,maxDistance:o.maxDistance,refDistance:o.refDistance,rolloffFactor:o.rolloffFactor,panningModel:o.panningModel}),r._pannerAttr={coneInnerAngle:typeof o.pannerAttr.coneInnerAngle<"u"?o.pannerAttr.coneInnerAngle:r._coneInnerAngle,coneOuterAngle:typeof o.pannerAttr.coneOuterAngle<"u"?o.pannerAttr.coneOuterAngle:r._coneOuterAngle,coneOuterGain:typeof o.pannerAttr.coneOuterGain<"u"?o.pannerAttr.coneOuterGain:r._coneOuterGain,distanceModel:typeof o.pannerAttr.distanceModel<"u"?o.pannerAttr.distanceModel:r._distanceModel,maxDistance:typeof o.pannerAttr.maxDistance<"u"?o.pannerAttr.maxDistance:r._maxDistance,refDistance:typeof o.pannerAttr.refDistance<"u"?o.pannerAttr.refDistance:r._refDistance,rolloffFactor:typeof o.pannerAttr.rolloffFactor<"u"?o.pannerAttr.rolloffFactor:r._rolloffFactor,panningModel:typeof o.pannerAttr.panningModel<"u"?o.pannerAttr.panningModel:r._panningModel});else return l=r._soundById(parseInt(s[0],10)),l?l._pannerAttr:r._pannerAttr;else s.length===2&&(o=s[0],a=parseInt(s[1],10));for(var c=r._getSoundIds(a),u=0;umetronomeData.cursorMode,()=>{const i=document.querySelector("#cursorImg-0");if(i){switch(metronomeData.cursorMode){case 1:i.classList.remove("lineHide"),i.style.opacity="inherit",metronomeData.cursorTips="您已切换到指针跟随音符播放",i.style.opacity="inherit";break;case 2:i.classList.add("lineHide"),i.style.opacity="inherit",metronomeData.cursorTips="您已切换到指针跟随节拍播放";break;case 3:i.style.opacity="0",metronomeData.cursorTips="您已关闭指针显示";break}hideCursorTip()}});watch(()=>metronomeData.lineShow,()=>{const i=document.querySelector("#cursorImg-0");i&&(metronomeData.lineShow?i.classList.add("lineHide"):i.classList.remove("lineHide"))});class Metronome{constructor(e){xt(this,"playType","tick");xt(this,"source",null);xt(this,"source1",null);xt(this,"source2",null);xt(this,"createAudio",e=>new Promise(r=>{const s=new Audio(e);s.load(),s.onloadedmetadata=()=>{r(s)},s.onerror=()=>{r(null)}}));xt(this,"sound",e=>{state$1.sectionStatus||(e=setCurrentTime(e));let r=-1,s=-1;for(let o=0;o=a)r=o,s=a;else break}if(r>-1&&metronomeData.activeIndex!==r){metronomeData.activeIndex=r,metronomeData.activeMetro=this.getStep(s),this.playAudio(),metronomeData.isClick=!1;return}metronomeData.isClick=!1});xt(this,"playAudio",()=>{var r;if(!metronomeData.initPlayerState||state$1.playState==="paused")return;const e=state$1.setting.beatVolume/100;this.source=((r=metronomeData.activeMetro)==null?void 0:r.index)===0?audioData$2.tick:audioData$2.tock,this.source.volume=metronomeData.disable?0:e,this.source.volume<=0?this.source.muted=!0:this.source.muted=!1,this.source.play()});xt(this,"simulatePlayAudio",()=>{if(!metronomeData.initPlayerState)return;const e=state$1.setting.beatVolume/100;this.source=metronomeData.followAudioIndex===1?audioData$2.tick:audioData$2.tock,this.source.volume=metronomeData.disable?0:e,this.source.volume<=0?this.source.muted=!0:this.source.muted=!1,console.log("音量",this.source,this.source.volume),this.source.play(),metronomeData.followAudioIndex+=1,metronomeData.followAudioIndex=metronomeData.followAudioIndex>metronomeData.totalNumerator?1:metronomeData.followAudioIndex});xt(this,"loadAudio1",()=>new howler.Howl({src:tockAndTick.tick}));xt(this,"loadAudio2",()=>new howler.Howl({src:tockAndTick.tock}))}init(e){this.calculation(e),metronomeData.activeList=[]}initPlayer(){Promise.all([this.createAudio(tickWav),this.createAudio(tockWav)]).then(([e,r])=>{e&&(audioData$2.tick=e),r&&(audioData$2.tock=r),metronomeData.initPlayerState=!0})}selectPlay(){}getStep(e){for(let r=0;ra.time===e);if(o)return o}return{}}calculation(e){var l,c,u,d,g,m,y,b,S,A,E,x,P,T;const r=[];let s=-1;for(let C=0;C-1&&B!=s){const k={measureNumberXML:B,measureNumberIndex:I,numerator:((y=(m=(g=M==null?void 0:M.noteElement)==null?void 0:g.sourceMeasure)==null?void 0:m.ActiveTimeSignature)==null?void 0:y.numerator)||0,start:M.measures[0].time,end:M.measures[M.measures.length-1].endtime,time:M.measures[M.measures.length-1].endtime-M.measures[0].time,stave_x:((x=(E=(A=(S=(b=M==null?void 0:M.noteElement)==null?void 0:b.sourceMeasure)==null?void 0:S.verticalMeasureList)==null?void 0:A[0])==null?void 0:E.stave)==null?void 0:x.x)||0,end_x:((P=M==null?void 0:M.stave)==null?void 0:P.end_x)||0||0,stepList:[],svgs:[],isRestFlag:M.isRestFlag};if([121].includes(state$1.subjectId)){const D=e.filter(O=>{var z,N;return((N=(z=O==null?void 0:O.noteElement)==null?void 0:z.sourceMeasure)==null?void 0:N.measureListIndex)==I});M.measures=D,k.start=M.measures[0].time,k.end=M.measures[M.measures.length-1].endtime,k.time=M.measures[M.measures.length-1].endtime-M.measures[0].time;try{const O=M.noteElement.sourceMeasure.verticalMeasureList.reduce((N,Q)=>(N.push(...Q.vfVoices[1].tickables),N),[]),z=[];k.svgs=O.map(N=>{const Q=N.getBoundingBox().x;if(!z.includes(Q)&&N.duration!=="w")return z.push(Q),N._start_x=Q,N}).filter(Boolean).sort((N,Q)=>N._start_x-Q._start_x)}catch(O){console.log(O)}k.stepList=calculateMutilpleMetroStep(M.measures,k)}else{let D=M.measures;state$1.isCombineRender&&(D=D.filter(O=>O.MeasureNumberXML===k.measureNumberXML)),k.stepList=calculateMetroStep(D,k)}r.push(k),s=B}}console.log(r,r.length,"小节汇总");let o=[];const a=[];try{for(let C=0;C-1?`${N} + ${k}%`:`${N}px + ${k}%`:`${k}%`,M.stepList[D]=z}a[C].push({index:D,time:O,left:(z==null?void 0:z.indexOf("%"))>-1?`calc(${z})`:z,measureNumberXML:M.measureNumberXML,isRestFlag:M.isRestFlag})}}}catch(C){console.log(C)}metronomeData.metroList=o,metronomeData.metroMeasure=a,metronomeData.activeMetro=((T=a[0])==null?void 0:T[0])||{}}}function calculateMetroStep(i,e){var c,u,d,g,m,y,b,S,A,E,x,P,T,C,M,B,I,k,D,O,z,N,Q,_,U,G,H,R,V,te,W,$,de,oe,Y,Z,ue,ae,pe,Se,ge,ee,ne,F,se,re,J,K,ie,fe,he,le,me,be,ve,xe,Te,ye,Pe,Me,Ne,it,Le,Qe,Fe,Oe,ft;const s=i.reduce((ke,Re)=>(ke+=Re._noteLength,ke),0)/e.numerator;if(i.length===1){const ke=i[0].svgElement;if(ke&&!ke.isRest()){const Re=((m=(g=(d=(u=(c=ke==null?void 0:ke.attrs)==null?void 0:c.el)==null?void 0:u.parentElement)==null?void 0:d.parentElement)==null?void 0:g.getBoundingClientRect)==null?void 0:m.call(g))||{x:0,right:0};let pt=((S=(b=(y=ke==null?void 0:ke.attrs)==null?void 0:y.el)==null?void 0:b.getBoundingClientRect)==null?void 0:S.call(b))||{x:0},lt=Math.abs(Re.right-pt.x)/e.numerator,Ue=[];for(let we=0;we=1){o-=s;let Ue=((N=(z=(O=(D=(k=(I=Re==null?void 0:Re.svgElement)==null?void 0:I.attrs)==null?void 0:k.el)==null?void 0:D.parentElement)==null?void 0:O.parentElement)==null?void 0:z.getBoundingClientRect)==null?void 0:N.call(z))||{x:0};if(state$1.musicRenderType!=="staff"&&(Ue=((V=(R=(H=(G=(U=(_=(Q=Re==null?void 0:Re.svgElement)==null?void 0:Q.attrs)==null?void 0:_.el)==null?void 0:U.parentElement)==null?void 0:G.parentElement)==null?void 0:H.querySelector(".vf-stave"))==null?void 0:R.getBoundingClientRect)==null?void 0:V.call(R))||{x:0}),!Ue.width&&a.length>0&&(Ue=state$1.musicRenderType!=="staff"?((ue=(Z=(Y=(oe=(de=($=(W=(te=a[0])==null?void 0:te.svgElement)==null?void 0:W.attrs)==null?void 0:$.el)==null?void 0:de.parentElement)==null?void 0:oe.parentElement)==null?void 0:Y.querySelector(".vf-stave"))==null?void 0:Z.getBoundingClientRect)==null?void 0:ue.call(Z))||{x:0}:((F=(ne=(ee=(ge=(Se=(pe=(ae=a[0])==null?void 0:ae.svgElement)==null?void 0:pe.attrs)==null?void 0:Se.el)==null?void 0:ge.parentElement)==null?void 0:ee.parentElement)==null?void 0:ne.getBoundingClientRect)==null?void 0:F.call(ne))||{x:0}),a.length>0){let He=((ie=(K=(J=(re=(se=a[0])==null?void 0:se.svgElement)==null?void 0:re.attrs)==null?void 0:J.el)==null?void 0:K.getBoundingClientRect)==null?void 0:ie.call(K))||{x:0},nt=He.x-Ue.x;if(a[0]._noteLength/s>=1){const $e=((be=(me=(le=(he=(fe=i[a[0].index+1])==null?void 0:fe.svgElement)==null?void 0:he.attrs)==null?void 0:le.el)==null?void 0:me.getBoundingClientRect)==null?void 0:be.call(me))||{x:Ue.right},Ve=Math.abs(He.x-$e.x)/2;nt=He.x-Ue.x+Ve}l.push(nt)}else{let nt=(((ye=(Te=(xe=(ve=Re==null?void 0:Re.svgElement)==null?void 0:ve.attrs)==null?void 0:xe.el)==null?void 0:Te.getBoundingClientRect)==null?void 0:ye.call(Te))||{x:0}).x-Ue.x;l.push(nt)}a=[];let we=((it=(Ne=(Me=(Pe=Re==null?void 0:Re.svgElement)==null?void 0:Pe.attrs)==null?void 0:Me.el)==null?void 0:Ne.getBoundingClientRect)==null?void 0:it.call(Ne))||{x:0},_e=we.x-Ue.x,at=0;if(lt>1){const He=((ft=(Oe=(Fe=(Qe=(Le=i[ke+1])==null?void 0:Le.svgElement)==null?void 0:Qe.attrs)==null?void 0:Fe.el)==null?void 0:Oe.getBoundingClientRect)==null?void 0:ft.call(Oe))||{x:Ue.right};at=Math.abs(we.x-He.x)/lt}for(let He=1;HeNumber.EPSILON&&o>0&&a.push(Re)}return l=l.reduce((ke,Re)=>(ke.includes(Re)?ke.push(void 0):ke.push(Re),ke),[]),l}function calculateMutilpleMetroStep(i,e){var c,u,d,g,m,y,b,S,A,E,x,P,T,C,M,B,I,k,D;const r=e.time/e.numerator,s=((b=(y=(m=(g=(d=(u=(c=i[0])==null?void 0:c.svgElement)==null?void 0:u.attrs)==null?void 0:d.el)==null?void 0:g.parentElement)==null?void 0:m.parentElement)==null?void 0:y.getBoundingClientRect)==null?void 0:b.call(y))||{x:0};if(i.length===1){const O=e.svgs[0];let z=((E=(A=(S=O==null?void 0:O.attrs)==null?void 0:S.el)==null?void 0:A.getBoundingClientRect)==null?void 0:E.call(A))||{x:0};return O&&!O.isRest()?[z.x-s.x]:[]}let o=0,a=[],l=[];for(let O=0;Or){o-=r;let U=_.x-s.x;a.length>0&&(Q=(M=(C=e.svgs[a[0]._index])==null?void 0:C.attrs)==null?void 0:M.el,_=((B=Q==null?void 0:Q.getBoundingClientRect)==null?void 0:B.call(Q))||{x:0},U=_.x-s.x),l.push(U),a=[]}else a.push(z);if(Math.abs(o-r)<.001){let U=_.x-s.x;a.length>0&&(Q=(k=(I=e.svgs[a[0]._index])==null?void 0:I.attrs)==null?void 0:k.el,_=((D=Q==null?void 0:Q.getBoundingClientRect)==null?void 0:D.call(Q))||{x:0},U=_.x-s.x),l.push(U),o=0,a=[]}}return l=l.reduce((O,z)=>(O.includes(z)?O.push(void 0):O.push(z),O),[]),l}function setCurrentTime(i){return browserInfo$3.huawei||browserInfo$3.xiaomi?i+=.125:browserInfo$3.android?i+=.11:browserInfo$3.ios&&(i+=.01),i}function hideCursorTip(){tipsTimer?(clearTimeout(tipsTimer),tipsTimer=setTimeout(()=>{metronomeData.cursorTips="",clearTimeout(tipsTimer),tipsTimer=null},2e3)):tipsTimer=setTimeout(()=>{metronomeData.cursorTips="",clearTimeout(tipsTimer),tipsTimer=null},2e3)}var GradualVersion=(i=>(i[i.BASE=0]="BASE",i[i.ENSEMBLE=1]="ENSEMBLE",i))(GradualVersion||{});const scoreMode="_scoreMode_6lpfe_1",tipBox="_tipBox_6lpfe_5",tipContent="_tipContent_6lpfe_15",tipBtn="_tipBtn_6lpfe_18",hiddenPop="_hiddenPop_6lpfe_28",styles$m={scoreMode,tipBox,tipContent,tipBtn,hiddenPop};var context={locks:{},zIndex:2e3,enableRipple:!0};reactive(context);const Context=reactive(context),isString=i=>typeof i=="string",isBoolean=i=>typeof i=="boolean",isNumber=i=>typeof i=="number",isPlainObject=i=>Object.prototype.toString.call(i)==="[object Object]",isFunction$2=i=>typeof i=="function",isArray$2=i=>Array.isArray(i),isURL=i=>i?/^(http)|(\.*\/)/.test(i):!1,toNumber=i=>i==null?0:isString(i)?(i=parseFloat(i),i=Number.isNaN(i)?0:i,i):isBoolean(i)?Number(i):i,removeItem=(i,e)=>{if(i.length){const r=i.indexOf(e);if(r>-1)return i.splice(r,1)}},inBrowser=()=>typeof window<"u",camelize=i=>i.replace(/-(\w)/g,(e,r)=>r.toUpperCase());function getViewportSize(){var{innerWidth:i,innerHeight:e}=window;return i>e?{vMin:e,vMax:i}:{vMin:i,vMax:e}}var isRem=i=>isString(i)&&i.endsWith("rem"),isPx=i=>isString(i)&&i.endsWith("px")||isNumber(i),isPercent=i=>isString(i)&&i.endsWith("%"),isVw=i=>isString(i)&&i.endsWith("vw"),isVh=i=>isString(i)&&i.endsWith("vh"),isVMin=i=>isString(i)&&i.endsWith("vmin"),isVMax=i=>isString(i)&&i.endsWith("vmax"),isCalc=i=>isString(i)&&i.startsWith("calc("),isVar=i=>isString(i)&&i.startsWith("var("),toPxNum=i=>{if(isNumber(i))return i;if(isPx(i))return+i.replace("px","");if(isVw(i))return+i.replace("vw","")*window.innerWidth/100;if(isVh(i))return+i.replace("vh","")*window.innerHeight/100;if(isRem(i)){var e=+i.replace("rem",""),r=window.getComputedStyle(document.documentElement).fontSize;return e*parseFloat(r)}return isVMin(i)?getViewportSize().vMin:isVMax(i)?getViewportSize().vMax:isString(i)?toNumber(i):0},toSizeUnit=i=>{if(i!=null)return isPercent(i)||isVw(i)||isVh(i)||isRem(i)||isCalc(i)||isVar(i)||isVMin(i)||isVMax(i)?i:toPxNum(i)+"px"},multiplySizeUnit=function(i,e){if(e===void 0&&(e=1),i!=null){var r=toSizeUnit(i),s=r.match(/(vh|%|rem|px|vw)$/)[0];return""+parseFloat(r)*e+s}};function supportTouch(){var i=typeof window<"u";return i&&"ontouchstart"in window}function useMounted(i){let e=!1;onMounted(()=>{i(),nextTick(()=>{e=!0})}),onActivated(()=>{e&&i()})}function useEventListener(i,e,r,s={}){if(!inBrowser())return;const{passive:o=!1,capture:a=!1}=s;let l=!1,c=!1;const u=y=>{if(l||c)return;const b=unref(y);b&&(b.addEventListener(e,r,{passive:o,capture:a}),l=!0)},d=y=>{if(!l||c)return;const b=unref(y);b&&(b.removeEventListener(e,r,{capture:a}),l=!1)};let g;isRef(i)&&(g=watch(()=>i.value,(y,b)=>{d(b),u(y)}));const m=()=>{g==null||g(),d(i),c=!0};return useMounted(()=>{u(i)}),onBeforeUnmount(()=>{d(i)}),onDeactivated(()=>{d(i)}),m}var __rest=globalThis&&globalThis.__rest||function(i,e){var r={};for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&e.indexOf(s)<0&&(r[s]=i[s]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,s=Object.getOwnPropertySymbols(i);or.indexOf(l)),parentProvider:a,bindParent:d=>{onMounted(()=>{nextTick().then(()=>{s(l,d)})}),onBeforeUnmount(()=>{nextTick().then(()=>{o(l,d)})})}}}function flatVNodes(i){const e=[],r=s=>{if(s!=null&&s.component){r(s==null?void 0:s.component.subTree);return}Array.isArray(s==null?void 0:s.children)&&s.children.forEach(o=>{isVNode(o)&&(e.push(o),r(o))})};return r(i),e}function useChildren(i){const e=getCurrentInstance(),r=reactive([]),s=[],o=computed(()=>r.length),a=()=>{const d=flatVNodes(e.subTree);r.sort((g,m)=>d.indexOf(g.vnode)-d.indexOf(m.vnode))},l=(d,g)=>{r.push(d),s.push(g),a()},c=(d,g)=>{removeItem(r,d),removeItem(s,g)};return{length:o,childProviders:s,bindChildren:d=>{provide(i,Object.assign({childInstances:r,collect:l,clear:c},d))}}}function asyncGeneratorStep$1(i,e,r,s,o,a,l){try{var c=i[a](l),u=c.value}catch(d){r(d);return}c.done?e(u):Promise.resolve(u).then(s,o)}function _asyncToGenerator$1(i){return function(){var e=this,r=arguments;return new Promise(function(s,o){var a=i.apply(e,r);function l(u){asyncGeneratorStep$1(a,s,o,l,c,"next",u)}function c(u){asyncGeneratorStep$1(a,s,o,l,c,"throw",u)}l(void 0)})}}function _extends$6(){return _extends$6=Object.assign?Object.assign.bind():function(i){for(var e=1;e(r[s]=i[s],r),{}):i[e]}function mount(i){var e=createApp(i),r=document.createElement("div");return document.body.appendChild(r),{instance:e.mount(r),unmount(){e.unmount(),document.body.removeChild(r)}}}function mountInstance(i,e,r){e===void 0&&(e={}),r===void 0&&(r={});var s={setup(){return()=>h$1(i,_extends$6({},e,r))}},{unmount:o}=mount(s);return{unmountInstance:o}}function useValidation(){var i=ref(""),e=function(){var o=_asyncToGenerator$1(function*(a,l,c){if(!isArray$2(a)||!a.length)return!0;var u=yield Promise.all(a.map(d=>d(l,c)));return!u.some(d=>d!==!0?(i.value=String(d),!0):!1)});return function(l,c,u){return o.apply(this,arguments)}}(),r=()=>{i.value=""},s=function(){var o=_asyncToGenerator$1(function*(a,l,c,u,d){a.includes(l)&&(yield e(c,u,d))&&(i.value="")});return function(l,c,u,d,g){return o.apply(this,arguments)}}();return{errorMessage:i,validate:e,resetValidation:r,validateWithTrigger:s}}function useRouteListener(i){inBrowser()&&(useEventListener(window,"hashchange",i),useEventListener(window,"popstate",i))}function useTeleport(){var i=ref(!1);return onActivated(()=>{i.value=!1}),onDeactivated(()=>{i.value=!0}),{disabled:i}}function createNamespace(i){var e="var",r=e+"-"+i,s=a=>a?a[0]==="$"?a.replace("$",e):a.startsWith("--")?""+r+a:r+"__"+a:r,o=function(){for(var a=arguments.length,l=new Array(a),c=0;c{if(isArray$2(u)){var[d,g,m=null]=u;return d?g:m}return u})};return{n:s,classes:o}}function call(i){for(var e=arguments.length,r=new Array(e>1?e-1:0),s=1;so(...r));if(i)return i(...r)}function defineListenerProp(i){return{type:[Function,Array],default:i}}function formatElevation(i,e){return i===!1?null:(i===!0&&e&&(i=e),"var-elevation--"+i)}function _extends$5(){return _extends$5=Object.assign?Object.assign.bind():function(i){for(var e=1;e{e.tasker=null;var{x:s,y:o,centerX:a,centerY:l,size:c}=computeRippleStyles(this,i),u=document.createElement("div");u.classList.add(n$a()),u.style.opacity="0",u.style.transform="translate("+s+"px, "+o+"px) scale3d(.3, .3, .3)",u.style.width=c+"px",u.style.height=c+"px",e.color&&(u.style.backgroundColor=e.color),u.dataset.createdAt=String(performance.now()),setStyles(this),this.appendChild(u),window.setTimeout(()=>{u.style.transform="translate("+a+"px, "+l+"px) scale3d(1, 1, 1)",u.style.opacity=".25"},20)};e.tasker=window.setTimeout(r,30)}}function removeRipple(){var i=this._ripple,e=()=>{var r=this.querySelectorAll("."+n$a());if(r.length){var s=r[r.length-1],o=ANIMATION_DURATION-performance.now()+Number(s.dataset.createdAt);window.setTimeout(()=>{s.style.opacity="0",window.setTimeout(()=>{var a;return(a=s.parentNode)==null?void 0:a.removeChild(s)},ANIMATION_DURATION)},o)}};i.tasker?window.setTimeout(e,30):e()}function forbidRippleTask(){if(!(!supportTouch()||!Context.enableRipple)){var i=this._ripple;i.tasker&&window.clearTimeout(i.tasker),i.tasker=null}}function mounted$1(i,e){var r;i._ripple=_extends$5({tasker:null},(r=e.value)!=null?r:{},{removeRipple:removeRipple.bind(i)}),i.addEventListener("touchstart",createRipple,{passive:!0}),i.addEventListener("touchmove",forbidRippleTask,{passive:!0}),i.addEventListener("dragstart",removeRipple,{passive:!0}),document.addEventListener("touchend",i._ripple.removeRipple,{passive:!0}),document.addEventListener("touchcancel",i._ripple.removeRipple,{passive:!0})}function unmounted$1(i){i.removeEventListener("touchstart",createRipple),i.removeEventListener("touchmove",forbidRippleTask),i.removeEventListener("dragstart",removeRipple),document.removeEventListener("touchend",i._ripple.removeRipple),document.removeEventListener("touchcancel",i._ripple.removeRipple)}function updated$1(i,e){var r,s,o,a,l={color:(r=e.value)==null?void 0:r.color,disabled:(s=e.value)==null?void 0:s.disabled},c=l.color!==((o=i._ripple)==null?void 0:o.color)||l.disabled!==((a=i._ripple)==null?void 0:a.disabled);if(c){var u,d;i._ripple=_extends$5({tasker:l.disabled?null:(u=i._ripple)==null?void 0:u.tasker,removeRipple:(d=i._ripple)==null?void 0:d.removeRipple},l)}}var Ripple={mounted:mounted$1,unmounted:unmounted$1,updated:updated$1,install(i){i.directive("ripple",this)}};const Ripple$1=Ripple;function positionValidator$1(i){return["top","bottom","right","left","center"].includes(i)}var props$9={show:{type:Boolean,default:!1},position:{type:String,default:"center",validator:positionValidator$1},transition:{type:String},overlay:{type:Boolean,default:!0},overlayClass:{type:String},overlayStyle:{type:Object},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},defaultStyle:{type:Boolean,default:!0},teleport:{type:String},onOpen:defineListenerProp(),onOpened:defineListenerProp(),onClose:defineListenerProp(),onClosed:defineListenerProp(),onClickOverlay:defineListenerProp(),"onUpdate:show":defineListenerProp(),onRouteChange:defineListenerProp()};function resolveLock(){var i=Object.keys(Context.locks).length;i<=0?document.body.classList.remove("var--lock"):document.body.classList.add("var--lock")}function addLock(i){Context.locks[i]=1,resolveLock()}function releaseLock(i){delete Context.locks[i],resolveLock()}function useLock(i,e){var{uid:r}=getCurrentInstance();e&&watch(e,s=>{s===!1?releaseLock(r):s===!0&&i()===!0&&addLock(r)}),watch(i,s=>{e&&e()===!1||(s===!0?addLock(r):releaseLock(r))}),onBeforeMount(()=>{e&&e()===!1||i()===!0&&addLock(r)}),onUnmounted(()=>{e&&e()===!1||i()===!0&&releaseLock(r)}),onActivated(()=>{e&&e()===!1||i()===!0&&addLock(r)}),onDeactivated(()=>{e&&e()===!1||i()===!0&&releaseLock(r)})}function useZIndex(i,e){var r=ref(Context.zIndex);return watch(i,s=>{s&&(Context.zIndex+=e,r.value=Context.zIndex)},{immediate:!0}),{zIndex:r}}function _extends$4(){return _extends$4=Object.assign?Object.assign.bind():function(i){for(var e=1;ei.show,3),{disabled:a}=useTeleport(),l=()=>{var{closeOnClickOverlay:g,onClickOverlay:m}=i;call(m),g&&call(i["onUpdate:show"],!1)};useLock(()=>i.show,()=>i.lockScroll),watch(()=>i.show,g=>{call(g?i.onOpen:i.onClose)}),useRouteListener(()=>call(i.onRouteChange));var c=()=>{var{overlayClass:g="",overlayStyle:m}=i;return createVNode("div",{class:classes$7(n$9("overlay"),g),style:_extends$4({zIndex:o.value-1},m),onClick:l},null)},u=()=>createVNode("div",mergeProps({class:classes$7(n$9("content"),n$9("--"+i.position),[i.defaultStyle,n$9("--content-background-color")],[i.defaultStyle,n$9("$-elevation--3")]),style:{zIndex:o.value}},s),[call(r.default)]),d=()=>{var{onOpened:g,onClosed:m,show:y,overlay:b,transition:S,position:A}=i;return createVNode(Transition,{name:n$9("$-fade"),onAfterEnter:g,onAfterLeave:m},{default:()=>[withDirectives(createVNode("div",{class:classes$7(n$9("$--box"),n$9()),style:{zIndex:o.value-2}},[b&&c(),createVNode(Transition,{name:S||n$9("$-pop-"+A)},{default:()=>[y&&u()]})]),[[vShow,y]])]})};return()=>{var{teleport:g}=i;if(g){var m;return createVNode(Teleport,{to:g,disabled:a.value},_isSlot$1(m=d())?m:{default:()=>[m]})}return d()}}});Popup.install=function(i){i.component(Popup.name,Popup)};var props$8={name:{type:String},size:{type:[Number,String]},color:{type:String},namespace:{type:String,default:"var-icon"},transition:{type:[Number,String],default:0},animationClass:{type:String},onClick:defineListenerProp()};function asyncGeneratorStep(i,e,r,s,o,a,l){try{var c=i[a](l),u=c.value}catch(d){r(d);return}c.done?e(u):Promise.resolve(u).then(s,o)}function _asyncToGenerator(i){return function(){var e=this,r=arguments;return new Promise(function(s,o){var a=i.apply(e,r);function l(u){asyncGeneratorStep(a,s,o,l,c,"next",u)}function c(u){asyncGeneratorStep(a,s,o,l,c,"throw",u)}l(void 0)})}}var{n:n$8,classes:classes$6}=createNamespace("icon");function __render__$8(i,e){return openBlock(),createBlock(resolveDynamicComponent(i.isURL(i.name)?"img":"i"),{class:normalizeClass(i.classes(i.n(),[i.namespace!==i.n(),i.namespace],i.namespace+"--set",[i.isURL(i.name),i.n("image"),i.namespace+"-"+i.nextName],[i.animateInProgress,i.animationClass==null?i.n("--shrinking"):i.animationClass])),style:normalizeStyle({color:i.color,"transition-duration":i.toNumber(i.transition)+"ms",width:i.isURL(i.name)?i.toSizeUnit(i.size):null,height:i.isURL(i.name)?i.toSizeUnit(i.size):null,fontSize:i.toSizeUnit(i.size)}),src:i.isURL(i.name)?i.nextName:null,onClick:i.onClick},null,8,["class","style","src","onClick"])}var __sfc__$8=defineComponent({name:"VarIcon",props:props$8,setup(i){var e=ref(""),r=ref(!1),s=function(){var o=_asyncToGenerator(function*(a,l){var{transition:c}=i;if(l==null||toNumber(c)===0){e.value=a;return}r.value=!0,yield nextTick(),setTimeout(()=>{l!=null&&(e.value=a),r.value=!1},toNumber(c))});return function(l,c){return o.apply(this,arguments)}}();return watch(()=>i.name,s,{immediate:!0}),{n:n$8,classes:classes$6,nextName:e,animateInProgress:r,isURL,toNumber,toSizeUnit}}});__sfc__$8.render=__render__$8;const Icon=__sfc__$8;Icon.install=function(i){i.component(Icon.name,Icon)};function typeValidator$3(i){return["circle","wave","cube","rect","disappear"].includes(i)}function sizeValidator$2(i){return["normal","mini","small","large"].includes(i)}var props$7={type:{type:String,default:"circle",validator:typeValidator$3},radius:{type:[String,Number]},size:{type:String,default:"normal",validator:sizeValidator$2},color:{type:String},description:{type:String},loading:{type:Boolean,default:!1}},{n:n$7,classes:classes$5}=createNamespace("loading"),_withScopeId=i=>(pushScopeId(""),i=i(),popScopeId(),i),_hoisted_1$3=_withScopeId(()=>createBaseVNode("svg",{viewBox:"25 25 50 50"},[createBaseVNode("circle",{cx:"50",cy:"50",r:"20",fill:"none"})],-1)),_hoisted_2$1=[_hoisted_1$3];function __render__$7(i,e){return openBlock(),createElementBlock("div",{class:normalizeClass(i.n())},[i.$slots.default?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(i.classes(i.n("content"),[i.loading,i.n("content--active")]))},[renderSlot(i.$slots,"default"),i.loading?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(i.n("content-mask"))},null,2)):createCommentVNode("v-if",!0)],2)):createCommentVNode("v-if",!0),i.isShow?(openBlock(),createElementBlock("div",{key:1,class:normalizeClass(i.classes(i.n("$--box"),i.n("body"),[i.$slots.default,i.n("inside")]))},[i.type==="circle"?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(i.n("circle"))},[createBaseVNode("span",{class:normalizeClass(i.classes(i.n("circle-block"),i.n("circle-block--"+i.size))),style:normalizeStyle({width:i.multiplySizeUnit(i.radius,2),height:i.multiplySizeUnit(i.radius,2),color:i.color})},_hoisted_2$1,6)],2)):createCommentVNode("v-if",!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(i.loadingTypeDict,(r,s)=>(openBlock(),createElementBlock(Fragment,{key:s},[i.type===s?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(i.classes(i.n(s),i.n(s+"--"+i.size)))},[(openBlock(!0),createElementBlock(Fragment,null,renderList(r,o=>(openBlock(),createElementBlock("div",{key:o+s,style:normalizeStyle({backgroundColor:i.color}),class:normalizeClass(i.classes(i.n(s+"-item"),i.n(s+"-item--"+i.size)))},null,6))),128))],2)):createCommentVNode("v-if",!0)],64))),128)),i.$slots.description||i.description?(openBlock(),createElementBlock("div",{key:1,class:normalizeClass(i.classes(i.n("description"),i.n("description--"+i.size))),style:normalizeStyle({color:i.color})},[renderSlot(i.$slots,"description",{},()=>[createTextVNode(toDisplayString(i.description),1)])],6)):createCommentVNode("v-if",!0)],2)):createCommentVNode("v-if",!0)],2)}var __sfc__$7=defineComponent({name:"VarLoading",props:props$7,setup(i,e){var{slots:r}=e,s={wave:5,cube:4,rect:8,disappear:3},o=computed(()=>call(r.default)?i.loading:!0);return{n:n$7,classes:classes$5,multiplySizeUnit,loadingTypeDict:s,isShow:o}}});__sfc__$7.render=__render__$7;const Loading=__sfc__$7;Loading.install=function(i){i.component(Loading.name,Loading)};var props$6={hovering:{type:Boolean,default:!0}},{n:n$6,classes:classes$4}=createNamespace("hover-overlay");function __render__$6(i,e){return openBlock(),createElementBlock("div",{class:normalizeClass(i.classes(i.n(),[i.hovering,i.n("--hovering")]))},null,2)}var __sfc__$6=defineComponent({name:"VarHoverOverlay",props:props$6,setup(){return{n:n$6,classes:classes$4}}});__sfc__$6.render=__render__$6;const HoverOverlay=__sfc__$6;HoverOverlay.install=function(i){i.component(HoverOverlay.name,HoverOverlay)};function useHoverOverlay(){var i=ref(!1),e=r=>{i.value=r};return{hovering:i,handleHovering:e}}function shouldDisabled(i){if(!i)return!1;var e=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);return!!(i==="desktop"&&e||i==="mobile"&&!e)}function getStyle(i){var e=i.getAttribute("style");return e?e.split(";").filter(Boolean).reduce((r,s)=>{var[o,a]=s.split(":").map(l=>l.trim());return r[camelize(o)]=a,r},{}):{}}function updateRawStyle(i){var{value:e}=i._hover,r=getStyle(i);Object.keys(e).forEach(s=>{var o=camelize(s),a=e[o];a!=null&&r[o]&&(i._hover.rawStyle[o]=r[o])})}function updateStyle(i,e){Object.keys(e).forEach(r=>{var s=e[r];s!=null&&(i.style[r]=s)})}function clearStyle(i){Object.keys(i._hover.value).forEach(e=>{var r=i._hover.value[e];r!=null&&(i.style[e]="")})}function restoreStyle(i){clearStyle(i),updateStyle(i,i._hover.rawStyle)}function createHover(){var{value:i}=this._hover;if(this._hover.hovering=!0,isFunction$2(i)){i(this._hover.hovering);return}updateStyle(this,i)}function removeHover(){if(this._hover.hovering=!1,isFunction$2(this._hover.value)){this._hover.value(this._hover.hovering);return}restoreStyle(this)}function mounted(i,e){var r,s,{arg:o,value:a}=e;shouldDisabled(o)||(i._hover={value:a,hovering:(r=(s=i._hover)==null?void 0:s.hovering)!=null?r:!1,rawStyle:{}},updateRawStyle(i),i.addEventListener("mouseenter",createHover),i.addEventListener("mouseleave",removeHover))}function unmounted(i,e){shouldDisabled(e.arg)||(restoreStyle(i),i.removeEventListener("mouseenter",createHover),i.removeEventListener("mouseleave",removeHover))}function beforeUpdate(i,e){i._hover&&unmounted(i,e)}function shouldUpdateStyle(i,e){return!isFunction$2(e.value)&&i._hover.hovering}function updated(i,e){mounted(i,e),shouldUpdateStyle(i,e)&&updateStyle(i,e.value)}var Hover={mounted,unmounted,beforeUpdate,updated,install(i){i.directive("hover",this)}};const Hover$1=Hover;function _extends$3(){return _extends$3=Object.assign?Object.assign.bind():function(i){for(var e=1;e{if(!r)return{elevation:formatElevation(i.elevation,2),type:i.type!=null?i.type:"default",size:i.size!=null?i.size:"normal",color:i.color,text:i.text,textColor:i.textColor,outline:i.outline};var{type:d,size:g,color:m,textColor:y,mode:b}=r;return{elevation:"",type:i.type!=null?i.type:d.value,size:i.size!=null?i.size:g.value,color:i.color!=null?i.color:m.value,textColor:i.textColor!=null?i.textColor:y.value,text:b.value!=="normal",outline:b.value==="outline"}}),l=d=>{i.autoLoading&&(e.value=!0,d=isArray$2(d)?d:[d],Promise.all(d).then(()=>{e.value=!1}).catch(()=>{e.value=!1}))},c=d=>{var{loading:g,disabled:m,onClick:y}=i;!y||g||m||e.value||l(call(y,d))},u=d=>{var{loading:g,disabled:m,onTouchstart:y}=i;!y||g||m||e.value||l(call(y,d))};return{n:n$5,classes:classes$3,pending:e,states:a,hovering:s,handleHovering:o,handleClick:c,handleTouchstart:u}}});__sfc__$5.render=__render__$5;const Button=__sfc__$5;Button.install=function(i){i.component(Button.name,Button)};function typeValidator$1(i){return["default","primary","info","success","warning","danger"].includes(i)}function sizeValidator(i){return["normal","mini","small","large"].includes(i)}function modeValidator(i){return["normal","text","outline"].includes(i)}var props$4={type:{type:String,default:"default",validator:typeValidator$1},size:{type:String,default:"normal",validator:sizeValidator},color:{type:String},textColor:{type:String},mode:{type:String,default:"normal",validator:modeValidator},elevation:{type:[Boolean,Number,String],default:!0},vertical:{type:Boolean,default:!1}},{n:n$4,classes:classes$2}=createNamespace("button-group");function __render__$4(i,e){return openBlock(),createElementBlock("div",{class:normalizeClass(i.classes(i.n(),i.n("$--box"),[i.mode,""+i.n("--mode-"+i.mode)],[i.vertical,i.n("--vertical"),i.n("--horizontal")],[i.mode==="normal",i.formatElevation(i.elevation,2)]))},[renderSlot(i.$slots,"default")],2)}var __sfc__$4=defineComponent({name:"VarButtonGroup",props:props$4,setup(i){var{bindButtons:e}=useButtons(),r={elevation:computed(()=>i.elevation),type:computed(()=>i.type),size:computed(()=>i.size),color:computed(()=>i.color),textColor:computed(()=>i.textColor),mode:computed(()=>i.mode)};return e(r),{n:n$4,classes:classes$2,formatElevation}}});__sfc__$4.render=__render__$4;const ButtonGroup=__sfc__$4;ButtonGroup.install=function(i){i.component(ButtonGroup.name,ButtonGroup)};var props$3={errorMessage:{type:String,default:""},extraMessage:{type:String,default:""}},{n:n$3}=createNamespace("form-details"),_hoisted_1$1={key:0},_hoisted_2={key:0};function __render__$3(i,e){return openBlock(),createBlock(Transition,{name:i.n()},{default:withCtx(()=>[i.errorMessage||i.extraMessage?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(i.n())},[createBaseVNode("div",{class:normalizeClass(i.n("error-message"))},[createVNode(Transition,{name:i.n("message")},{default:withCtx(()=>[i.errorMessage?(openBlock(),createElementBlock("div",_hoisted_1$1,toDisplayString(i.errorMessage),1)):createCommentVNode("v-if",!0)]),_:1},8,["name"])],2),createBaseVNode("div",{class:normalizeClass(i.n("extra-message"))},[createVNode(Transition,{name:i.n("message")},{default:withCtx(()=>[i.extraMessage?(openBlock(),createElementBlock("div",_hoisted_2,toDisplayString(i.extraMessage),1)):createCommentVNode("v-if",!0)]),_:1},8,["name"])],2)],2)):createCommentVNode("v-if",!0)]),_:1},8,["name"])}var __sfc__$3=defineComponent({name:"VarFormDetails",props:props$3,setup:()=>({n:n$3})});__sfc__$3.render=__render__$3;const FormDetails=__sfc__$3;FormDetails.install=function(i){i.component(FormDetails.name,FormDetails)};function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(i){for(var e=1;e{r(_extends$2({},a,{instance:s}))}:null;return{index:e,form:i,bindForm:o}}function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(i){for(var e=1;e[createTextVNode(toDisplayString(i.content),1)])],2),createBaseVNode("div",{class:normalizeClass(i.n("action"))},[i.iconName?(openBlock(),createBlock(r,{key:0,name:i.iconName},null,8,["name"])):createCommentVNode("v-if",!0),i.type==="loading"?(openBlock(),createBlock(s,{key:1,type:i.loadingType,size:i.loadingSize,color:i.loadingColor,radius:i.loadingRadius},null,8,["type","size","color","radius"])):createCommentVNode("v-if",!0),renderSlot(i.$slots,"action")],2)],6)],6)),[[vShow,i.show]])}var __sfc__$2=defineComponent({name:"VarSnackbarCore",components:{VarLoading:Loading,VarIcon:Icon},props:props$2,setup(i){var e=ref(null),{zIndex:r}=useZIndex(()=>i.show,1);useLock(()=>i.show,()=>i.lockScroll);var s=computed(()=>i.type==="loading"||i.forbidClick),o=computed(()=>i.type?ICON_TYPE_DICT[i.type]:""),a=()=>{e.value=setTimeout(()=>{i.type!=="loading"&&call(i["onUpdate:show"],!1)},i.duration)};return watch(()=>i.show,l=>{l?(call(i.onOpen),a()):l===!1&&(clearTimeout(e.value),call(i.onClose))}),watch(()=>i._update,()=>{clearTimeout(e.value),a()}),useMounted(()=>{i.show&&(call(i.onOpen),a())}),{SNACKBAR_TYPE,n:n$2,classes:classes$1,zIndex:r,iconName:o,isForbidClick:s}}});__sfc__$2.render=__render__$2;const VarSnackbarCore=__sfc__$2;var{n:n$1}=createNamespace("snackbar");function __render__$1(i,e){var r=resolveComponent("var-snackbar-core");return openBlock(),createBlock(Teleport,{to:i.teleport,disabled:i.disabled},[createVNode(Transition,{name:i.n()+"-fade",onAfterEnter:i.onOpened,onAfterLeave:i.onClosed},{default:withCtx(()=>[createVNode(r,mergeProps(i.$props,{class:i.n("transition")}),{action:withCtx(()=>[renderSlot(i.$slots,"action")]),default:withCtx(()=>[renderSlot(i.$slots,"default",{},()=>[createTextVNode(toDisplayString(i.content),1)])]),_:3},16,["class"])]),_:3},8,["name","onAfterEnter","onAfterLeave"])],8,["to","disabled"])}var __sfc__$1=defineComponent({name:"VarSnackbar",components:{VarSnackbarCore},props:props$2,setup(){var{disabled:i}=useTeleport();return{n:n$1,disabled:i}}});__sfc__$1.render=__render__$1;const VarSnackbar=__sfc__$1;function _extends(){return _extends=Object.assign?Object.assign.bind():function(i){for(var e=1;e{},onOpened:()=>{},onClose:()=>{},onClosed:()=>{}},uniqSnackbarOptions=reactive([]),defaultOptions=defaultOptionsValue,transitionGroupProps={name:"var-snackbar-fade",tag:"div",class:"var-transition-group"},TransitionGroupHost={setup(){return()=>{var i=uniqSnackbarOptions.map(e=>{var{id:r,reactiveSnackOptions:s,_update:o}=e,a=document.querySelector(".var-transition-group");s.forbidClick||s.type==="loading"?a.classList.add("var-pointer-auto"):a.classList.remove("var-pointer-auto"),isAllowMultiple&&(s.position="top");var l=isAllowMultiple?"relative":"absolute",c=_extends({position:l},getTop(s.position));return createVNode(VarSnackbarCore,mergeProps(s,{key:r,style:c,"data-id":r,_update:o,show:s.show,"onUpdate:show":u=>s.show=u}),null)});return createVNode(TransitionGroup,mergeProps(transitionGroupProps,{style:{zIndex:Context.zIndex},onAfterEnter:opened,onAfterLeave:removeUniqOption}),_isSlot(i)?i:{default:()=>[i]})}}},Snackbar=function(i){var e=normalizeOptions(i),r=reactive(_extends({},defaultOptions,e));r.show=!0,isMount||(isMount=!0,unmount=mountInstance(TransitionGroupHost).unmountInstance);var{length:s}=uniqSnackbarOptions,o={id:sid++,reactiveSnackOptions:r};if(s===0||isAllowMultiple)addUniqOption(o);else{var a="update-"+sid;updateUniqOption(r,a)}return{clear(){!isAllowMultiple&&uniqSnackbarOptions.length?uniqSnackbarOptions[0].reactiveSnackOptions.show=!1:r.show=!1}}};SNACKBAR_TYPE.forEach(i=>{Snackbar[i]=e=>(isPlainObject(e)?e.type=i:e={content:e,type:i},Snackbar(e))});Snackbar.install=function(i){i.component(VarSnackbar.name,VarSnackbar)};Snackbar.allowMultiple=function(i){i===void 0&&(i=!1),i!==isAllowMultiple&&(uniqSnackbarOptions.forEach(e=>{e.reactiveSnackOptions.show=!1}),isAllowMultiple=i)};Snackbar.clear=function(){uniqSnackbarOptions.forEach(i=>{i.reactiveSnackOptions.show=!1})};Snackbar.setDefaultOptions=function(i){defaultOptions=i};Snackbar.resetDefaultOptions=function(){defaultOptions=defaultOptionsValue};Snackbar.Component=VarSnackbar;function opened(i){var e=i.getAttribute("data-id"),r=uniqSnackbarOptions.find(s=>s.id===toNumber(e));r&&call(r.reactiveSnackOptions.onOpened)}function removeUniqOption(i){i.parentElement&&i.parentElement.classList.remove("var-pointer-auto");var e=i.getAttribute("data-id"),r=uniqSnackbarOptions.find(o=>o.id===toNumber(e));r&&(r.animationEnd=!0,call(r.reactiveSnackOptions.onClosed));var s=uniqSnackbarOptions.every(o=>o.animationEnd);s&&(call(unmount),uniqSnackbarOptions=reactive([]),isMount=!1)}function addUniqOption(i){uniqSnackbarOptions.push(i)}function normalizeOptions(i){return i===void 0&&(i={}),isString(i)?{content:i}:i}function updateUniqOption(i,e){var[r]=uniqSnackbarOptions;r.reactiveSnackOptions=_extends({},r.reactiveSnackOptions,i),r._update=e}function getTop(i){return i===void 0&&(i="top"),i==="bottom"?{[i]:"5%"}:{top:i==="top"?"5%":"45%"}}VarSnackbar.install=function(i){i.component(VarSnackbar.name,VarSnackbar)};const Snackbar$1=Snackbar;var props$1={modelValue:{default:!1},activeValue:{default:!0},inactiveValue:{default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},color:{type:String},loadingColor:{type:String},closeColor:{type:String},size:{type:[String,Number]},rules:{type:Array},ripple:{type:Boolean,default:!0},onClick:defineListenerProp(),onChange:defineListenerProp(),"onUpdate:modelValue":defineListenerProp()},{n,classes}=createNamespace("switch");function __render__(i,e){var r=resolveComponent("var-loading"),s=resolveComponent("var-hover-overlay"),o=resolveComponent("var-form-details"),a=resolveDirective("ripple"),l=resolveDirective("hover");return withDirectives((openBlock(),createElementBlock("div",{class:normalizeClass(i.n())},[createBaseVNode("div",{class:normalizeClass(i.classes(i.n("block"),[i.disabled||i.formDisabled,i.n("--disabled")])),onClick:e[0]||(e[0]=function(){return i.switchActive&&i.switchActive(...arguments)}),style:normalizeStyle(i.styleComputed.switch)},[createBaseVNode("div",{style:normalizeStyle(i.styleComputed.track),class:normalizeClass(i.classes(i.n("track"),[i.modelValue===i.activeValue,i.n("track--active")],[i.errorMessage,i.n("track--error")]))},null,6),withDirectives((openBlock(),createElementBlock("div",{class:normalizeClass(i.classes(i.n("ripple"),[i.modelValue===i.activeValue,i.n("ripple--active")])),style:normalizeStyle(i.styleComputed.ripple)},[createBaseVNode("div",{style:normalizeStyle(i.styleComputed.handle),class:normalizeClass(i.classes(i.n("handle"),i.n("$-elevation--2"),[i.modelValue===i.activeValue,i.n("handle--active")],[i.errorMessage,i.n("handle--error")]))},[i.loading?(openBlock(),createBlock(r,{key:0,radius:i.radius,color:"currentColor"},null,8,["radius"])):createCommentVNode("v-if",!0)],6),createVNode(s,{hovering:i.hovering},null,8,["hovering"])],6)),[[a,{disabled:!i.ripple||i.disabled||i.loading||i.formDisabled}]])],6),createVNode(o,{"error-message":i.errorMessage},null,8,["error-message"])],2)),[[l,i.hover,"desktop"]])}var __sfc__=defineComponent({name:"VarSwitch",components:{VarLoading:Loading,VarFormDetails:FormDetails,VarHoverOverlay:HoverOverlay},directives:{Ripple:Ripple$1,Hover:Hover$1},props:props$1,setup(i){var{bindForm:e,form:r}=useForm(),{errorMessage:s,validateWithTrigger:o,validate:a,resetValidation:l}=useValidation(),{hovering:c,handleHovering:u}=useHoverOverlay(),d=()=>a(i.rules,i.modelValue),g=()=>nextTick(()=>o(["onChange"],"onChange",i.rules,i.modelValue)),m=computed(()=>{var{size:x,modelValue:P,color:T,closeColor:C,loadingColor:M,activeValue:B}=i;return{handle:{width:multiplySizeUnit(x),height:multiplySizeUnit(x),backgroundColor:P===B?T:C,color:M},ripple:{left:P===B?multiplySizeUnit(x,.5):"-"+multiplySizeUnit(x,.5),color:P===B?T:C||"#999",width:multiplySizeUnit(x,2),height:multiplySizeUnit(x,2)},track:{height:multiplySizeUnit(x,.72),width:multiplySizeUnit(x,1.9),borderRadius:multiplySizeUnit(x,2/3),filter:P===B||s!=null&&s.value?void 0:"brightness(.6)",backgroundColor:P===B?T:C},switch:{height:multiplySizeUnit(x,1.2),width:multiplySizeUnit(x,2)}}}),y=computed(()=>{var{size:x="5.333vw"}=i;return multiplySizeUnit(x,.4)}),b=x=>{var{onClick:P,onChange:T,disabled:C,loading:M,readonly:B,modelValue:I,activeValue:k,inactiveValue:D,"onUpdate:modelValue":O}=i;if(call(P,x),!(C||M||B||r!=null&&r.disabled.value||r!=null&&r.readonly.value)){var z=I===k?D:k;call(T,z),call(O,z),g()}},S=x=>{i.disabled||r!=null&&r.disabled.value||u(x)},A=()=>{call(i["onUpdate:modelValue"],i.inactiveValue),l()},E={reset:A,validate:d,resetValidation:l};return call(e,E),{n,classes,switchActive:b,hovering:c,hover:S,radius:y,styleComputed:m,errorMessage:s,formDisabled:r==null?void 0:r.disabled,formReadonly:r==null?void 0:r.readonly}}});__sfc__.render=__render__;const Switch=__sfc__;Switch.install=function(i){i.component(Switch.name,Switch)};const Image1=""+new URL("../png/5-d8bfbf51.png",import.meta.url).href,Image2=""+new URL("../png/4-cfa387c7.png",import.meta.url).href,Image3=""+new URL("../png/3-d02c685a.png",import.meta.url).href,Image4=""+new URL("../png/2-5c4c2ef5.png",import.meta.url).href,Image5=""+new URL("../png/1-a0d5037d.png",import.meta.url).href,clx1=""+new URL("../svg/clx5-b3331931.svg",import.meta.url).href,clx2=""+new URL("../svg/clx4-7a8a1657.svg",import.meta.url).href,clx3=""+new URL("../svg/clx3-82262a8a.svg",import.meta.url).href,clx4=""+new URL("../svg/clx2-99f2ced3.svg",import.meta.url).href,clx5=""+new URL("../svg/clx1-3d063166.svg",import.meta.url).href,good="data:image/png;base64,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",bad="data:image/png;base64,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",perfect="data:image/png;base64,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",great="data:image/png;base64,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",scoreIcon={good,bad,perfect,great},leveByScoreMeasureIcons=[{icon:scoreIcon.bad,text:"bad",color:"#EE4C6A"},{icon:scoreIcon.good,text:"good",color:"#FF958B"},{icon:scoreIcon.great,text:"great",color:"#FF8E5A"},{icon:scoreIcon.perfect,text:"perfect",color:"#516AFF"}],icons$3=[{img:Image1,tips:"你的演奏不太好,再练一练吧~",mome:"敢于尝试",clxImg:clx1,clxtip:"你的演奏不太好,音准和完整性还需加强,再练一练吧~",clxmome:"敢于尝试"},{img:Image2,tips:"你的演奏还不熟练,加紧训练才能有好成绩哦~",mome:"还要加油哦~",clxImg:clx2,clxtip:"你的演奏还不熟练,音准和完整性还需加强,加紧训练才能有好成绩哦~",clxmome:"还要加油哦~"},{img:Image3,tips:"你的演奏还不流畅,科学的练习才能更完美哦~",mome:"突破自我",clxImg:clx3,clxtip:"你的演奏还不流畅,音准和节奏还需加强,科学的练习才能更完美哦~",clxmome:"突破自我"},{img:Image4,tips:"你的演奏还不错,继续加油吧,离完美就差一步啦~",mome:"崭露头角",clxImg:clx4,clxtip:"你的演奏还不错,继续加油吧,加强音准,离完美就差一步啦~",clxmome:"崭露头角"},{img:Image5,tips:"你的演奏完美无缺,继续努力吧~",mome:"你很棒",clxImg:clx5,clxtip:"你的演奏非常不错,音准的把握和节奏稍有瑕疵,完整性把握的很好~",clxmome:"你很棒"}],getLeveByScore=i=>{if(!i&&typeof i!="number")return{};let e=0;return i>20&&i<=40?e=1:i>40&&i<=60?e=2:i>60&&i<=80?e=3:i>80&&(e=4),{...icons$3[e],leve:e}},getLeveByScoreMeasure=i=>{if(!i&&typeof i!="number")return{};let e=0;return i>=40&&i<70?e=1:i>=70&&i<90?e=2:i>=90&&(e=3),e},audioList="_audioList_1j0z3_1",styles$l={audioList};let timer=null;const midiData=reactive({iframeRef:null,playing:!1,index:0,rate:1}),playNote=()=>{var r,s;if(!midiData.playing)return;const i=state$1.times[midiData.index];if(!i)return;midiData.index++;const e=i.endtime-i.time;(s=(r=midiData.iframeRef)==null?void 0:r.contentWindow)==null||s.playNote(i.realKey,e),timer=setTimeout(()=>{playNote()},e/midiData.rate*1e3)},hanldeInitMidiData=i=>{midiData.iframeRef=i},hanldeSetMidiPlaybackRate=i=>{midiData.rate=i},setMidiCurrentTime=i=>{clearTimeout(timer),midiData.index=i,playNote()},initMidi=(i,e)=>{const r=ref(!1);if(e){console.log("曲谱为midi,使用app播放"),r.value=!0,state$1.midiPlayIniting=!0;const s=getDuration(state$1.osmd);api_cloudDestroy(),api_cloudDetail({midi:e,denominator:s.denominator,numerator:s.numerator,originalSpeed:state$1.originSpeed,interval:50,duration:i*1e3},()=>{state$1.midiPlayIniting=!1,r.value=!1,e&&changeMode("music")}),state$1.durationNum=i}return{initial:r}},getActiveMidiId=()=>{var i,e,r,s,o,a,l;return(l=(a=(o=(s=(r=(e=(i=state$1.osmd)==null?void 0:i.sheet)==null?void 0:e.instruments)==null?void 0:r[0])==null?void 0:s.subInstruments)==null?void 0:o[0])==null?void 0:a.midiInstrumentID)!=null?l:0},changeMode=async(i,e)=>{var s,o,a,l;const r=i==="background"?"music":"background";if(console.log(!state$1.songs[i],i,r),state$1.isAppPlay){const c=new Map;for(const u of state$1.partListNames)c.set(u,60);api_cloudVolume({activeMidiId:getActiveMidiId(),activeMidiVolume:r==="background"?100:0,parts:Array.from(c.keys()).map(u=>({name:u,volume:c.get(u)}))})}state$1.playSource=i,e==="all"?((s=state$1.audiosInstance)==null||s.setMute(!0,state$1.songs[r]),(o=state$1.audiosInstance)==null||o.setMute(!0,state$1.songs[i])):((a=state$1.audiosInstance)==null||a.setMute(!0,state$1.songs[r]),(l=state$1.audiosInstance)==null||l.setMute(!1,state$1.songs[i]))},cloudToggleState=async i=>{const e=await api_cloudGetMediaStatus(),r=e==null?void 0:e.content.status;if(r==="init"||r==="suspend"&&i==="paused")return;r==="suspend"?(state$1.isSelectMeasureMode&&(audioData$1.progress=state$1.midiSectionStart),await api_cloudPlay({songID:state$1.examSongId,startTime:audioData$1.progress*1e3,originalSpeed:state$1.originSpeed,speed:state$1.modeType==="evaluating"?state$1.originSpeed:state$1.speed,hertz:440}),onPlay()):(await api_cloudSuspend({songID:state$1.examSongId}),state$1.modeType==="evaluating"&&(audioData$1.progress=0));const s=await api_cloudGetMediaStatus();state$1.playState=(s==null?void 0:s.content.status)==="suspend"?"paused":"play",console.log(s,"cloudGetMediaStatused")},audioData$1=reactive({songEle:null,backgroundEle:null,midiRender:!1,progress:0,duration:0}),midiRef=ref(),audioListStart=i=>{var e,r,s,o;if(i==="play"&&state$1.originSpeed!==0&&setAudioPlaybackRate(state$1.speed/state$1.originSpeed),state$1.isAppPlay){cloudToggleState(i);return}i==="play"?((e=audioData$1.songEle)==null||e.play(),(r=audioData$1.backgroundEle)==null||r.play()):i==="paused"&&((s=audioData$1.songEle)==null||s.pause(),(o=audioData$1.backgroundEle)==null||o.pause())},setAudioPlaybackRate=i=>{if(state$1.isAppPlay){if(state$1.modeType==="evaluating")return;hanldeSetMidiPlaybackRate(i);return}audioData$1.songEle&&(audioData$1.songEle.playbackRate=i),audioData$1.backgroundEle&&(audioData$1.backgroundEle.playbackRate=i)},getAudioCurrentTime=()=>{var i,e,r;return state$1.isAppPlay?audioData$1.progress:state$1.playSource==="music"?((i=audioData$1.songEle)==null?void 0:i.currentTime)||audioData$1.progress:state$1.playSource==="background"?((e=audioData$1.backgroundEle)==null?void 0:e.currentTime)||audioData$1.progress:((r=audioData$1.songEle)==null?void 0:r.currentTime)||audioData$1.progress},getAudioDuration=()=>{var i,e,r;if(state$1.isAppPlay){const s=((i=state$1.times[state$1.times.length-1||0])==null?void 0:i.endtime)||0;return audioData$1.duration||s}return((e=audioData$1.songEle)==null?void 0:e.duration)||((r=audioData$1.backgroundEle)==null?void 0:r.duration)||audioData$1.duration},setAudioCurrentTime=(i,e=0)=>{if(state$1.isAppPlay){setMidiCurrentTime(e);return}audioData$1.songEle&&(audioData$1.songEle.currentTime=i),audioData$1.backgroundEle&&(audioData$1.backgroundEle.currentTime=i),audioData$1.progress=i},toggleMutePlayAudio=(i,e)=>{i==="music"?audioData$1.songEle&&(audioData$1.songEle.muted=e):i==="background"&&audioData$1.backgroundEle&&(audioData$1.backgroundEle.muted=e)},AudioList=defineComponent({name:"audio-list",setup(){const i=()=>{midiRef.value.contentWindow.handleRendered=()=>{audioData$1.midiRender=!0},hanldeInitMidiData(midiRef.value)};watch(()=>state$1.playSource,()=>{if(state$1.modeType==="evaluating"&&!state$1.setting.enableAccompaniment){console.log("评测模式设置了关闭伴奏,不切换原音伴奏");return}state$1.playSource==="music"?(audioData$1.songEle&&(audioData$1.songEle.muted=!1),audioData$1.backgroundEle&&(audioData$1.backgroundEle.muted=!0)):(audioData$1.songEle&&(audioData$1.songEle.muted=!0),audioData$1.backgroundEle&&(audioData$1.backgroundEle.muted=!1))});const e=a=>new Promise(l=>{const c=new Audio(a+"?v="+Date.now());c.load(),c.onloadedmetadata=()=>{l(c)},c.onerror=()=>{l(null)}}),r=a=>{var d,g,m;const l=(a==null?void 0:a.currentTime)||((d=a==null?void 0:a.content)==null?void 0:d.currentTime),c=(a==null?void 0:a.totalDuration)||((g=a==null?void 0:a.content)==null?void 0:g.totalDuration),u=l/1e3;if(audioData$1.progress=u,audioData$1.songEle&&(audioData$1.songEle.currentTime=u),audioData$1.backgroundEle&&(audioData$1.backgroundEle.currentTime=u),audioData$1.duration=c/1e3,((m=a==null?void 0:a.content)==null?void 0:m.totalDuration)>1e3&&l>=c){if(evaluatingData.isAudioPlayEnd)return;evaluatingData.isAudioPlayEnd=!0,onEnded()}},s=a=>{var u,d,g;if(audioData$1.duration==0){const m=((u=state$1.times[state$1.times.length-1||0])==null?void 0:u.endtime)||0;audioData$1.duration=m}const l=(a==null?void 0:a.currentTime)||((d=a==null?void 0:a.content)==null?void 0:d.currentTime);a!=null&&a.totalDuration||((g=a==null?void 0:a.content)==null||g.totalDuration);const c=l/1e3;audioData$1.progress=c,state$1.sectionStatus&&state$1.section.length==2&&l>=state$1.section},o=a=>{a&&(console.log("midi结束"),audioData$1.progress=0,onEnded())};return onMounted(()=>{var a;if(state$1.playMode!=="MIDI")Promise.all([e(state$1.music),e(state$1.accompany)]).then(([l,c])=>{state$1.audioDone=!0,l&&(audioData$1.songEle=l),c&&(audioData$1.backgroundEle=c),audioData$1.songEle?(audioData$1.songEle.addEventListener("play",onPlay),audioData$1.songEle.addEventListener("ended",onEnded),c&&(c.muted=!0)):audioData$1.backgroundEle&&(audioData$1.backgroundEle.addEventListener("play",onPlay),audioData$1.backgroundEle.addEventListener("ended",onEnded))}),api_playProgress(r);else{const l=((a=state$1.times[state$1.times.length-1||0])==null?void 0:a.endtime)||0;audioData$1.duration=l,api_cloudTimeUpdae(s),api_cloudplayed(o)}}),onUnmounted(()=>{api_remove_cloudplayed(o),api_remove_cloudTimeUpdae(s)}),()=>createVNode("div",{class:styles$l.audioList},[state$1.playMode==="MIDI"&&state$1.speed!=0&&createVNode("iframe",{style:{display:"none"},ref:midiRef,src:"/midi/index.html",onLoad:i},null)])}}),popup$1="_popup_1838h_1",dots="_dots_1838h_6",dot="_dot_1838h_6",active$2="_active_1838h_20",one="_one_1838h_23",styles$k={popup:popup$1,dots,dot,active:active$2,one},browserInfo$2=browser(),tickData=reactive({list:[],len:0,tickEnd:!1,beatLengthInMilliseconds:0,state:"",source1:"",source2:"",index:0,show:!1}),handlePlay=(i,e)=>new Promise(r=>{setTimeout(()=>{if(tickData.tickEnd){r(i);return}if(tickData.index++,e){const s=state$1.setting.beatVolume/100;e.volume=s,e.volume<=0?e.muted=!0:e.muted=!1,e.play()}r(i)},tickData.beatLengthInMilliseconds)}),audioData=reactive({tick:null,tock:null}),createAudio=i=>new Promise(e=>{const r=new Audio(i+"?v="+Date.now());r.load(),r.onloadedmetadata=()=>{e(r)},r.onerror=()=>{e(null)}}),handleInitTick=(i,e)=>{tickData.state="",tickData.beatLengthInMilliseconds=i,tickData.len=e},handleStartTick=async()=>{tickData.show=!0,tickData.tickEnd=!1,tickData.state!=="ok"&&(tickData.source1=new howler.Howl({src:tockAndTick.tick,html5:browserInfo$2.ios}),tickData.source2=new howler.Howl({src:tockAndTick.tock}),tickData.state="ok"),tickData.index=0,tickData.beatLengthInMilliseconds=60/state$1.speed*1e3;for(let i=0;i<=tickData.len;i++){if(tickData.tickEnd)return!1;const e=i===0?audioData.tick:i===tickData.len?null:audioData.tock;await handlePlay(i,e)}return tickData.show=!1,!0},Tick=defineComponent({name:"metronome",setup(){const i=()=>{tickData.tickEnd=!0};return onMounted(()=>{Promise.all([createAudio(tickWav),createAudio(tockWav)]).then(([e,r])=>{e&&(audioData.tick=e),r&&(audioData.tock=r)})}),()=>createVNode(Popup$1,{class:[styles$k.popup,"normal-close"],show:tickData.show,"onUpdate:show":e=>tickData.show=e,closeable:!0,onClickCloseIcon:i},{default:()=>[createVNode("div",{class:styles$k.dots},[Array(tickData.len).fill(0).map((e,r)=>createVNode("div",{class:[styles$k.dot,tickData.index>r&&styles$k.active,tickData.index>r&&r===0&&styles$k.one]},null))])]})}}),fraction$1="_fraction_8vx8x_1",close$2="_close_8vx8x_11",bg="_bg_8vx8x_18",content$5="_content_8vx8x_21",title$4="_title_8vx8x_21",desc="_desc_8vx8x_29",btn$8="_btn_8vx8x_37",loadColumn="_loadColumn_8vx8x_42",loadIcon="_loadIcon_8vx8x_57",successIcon="_successIcon_8vx8x_61",styles$j={fraction:fraction$1,close:close$2,bg,content:content$5,title:title$4,desc,btn:btn$8,loadColumn,loadIcon,successIcon};var lottieExports={},lottie={get exports(){return lottieExports},set exports(i){lottieExports=i}};(function(module,exports){typeof navigator<"u"&&function(i,e){module.exports=e()}(commonjsGlobal,function(){var svgNS="http://www.w3.org/2000/svg",locationHref="",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(e){_useWebWorker=!!e},getWebWorker=function(){return _useWebWorker},setLocationHref=function(e){locationHref=e},getLocationHref=function(){return locationHref};function createTag(i){return document.createElement(i)}function extendPrototype(i,e){var r,s=i.length,o;for(r=0;r1?r[1]=1:r[1]<=0&&(r[1]=0),HSVtoRGB(r[0],r[1],r[2])}function addBrightnessToRGB(i,e){var r=RGBtoHSV(i[0]*255,i[1]*255,i[2]*255);return r[2]+=e,r[2]>1?r[2]=1:r[2]<0&&(r[2]=0),HSVtoRGB(r[0],r[1],r[2])}function addHueToRGB(i,e){var r=RGBtoHSV(i[0]*255,i[1]*255,i[2]*255);return r[0]+=e/360,r[0]>1?r[0]-=1:r[0]<0&&(r[0]+=1),HSVtoRGB(r[0],r[1],r[2])}var rgbToHex=function(){var i=[],e,r;for(e=0;e<256;e+=1)r=e.toString(16),i[e]=r.length===1?"0"+r:r;return function(s,o,a){return s<0&&(s=0),o<0&&(o=0),a<0&&(a=0),"#"+i[s]+i[o]+i[a]}}(),setSubframeEnabled=function(e){subframeEnabled=!!e},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(e){expressionsPlugin=e},getExpressionsPlugin=function(){return expressionsPlugin},setExpressionInterfaces=function(e){expressionsInterfaces=e},getExpressionInterfaces=function(){return expressionsInterfaces},setDefaultCurveSegments=function(e){defaultCurveSegments=e},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(e){idPrefix$1=e};function createNS(i){return document.createElementNS(svgNS,i)}function _typeof$5(i){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$5=function(r){return typeof r}:_typeof$5=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},_typeof$5(i)}var dataManager=function(){var i=1,e=[],r,s,o={onmessage:function(){},postMessage:function(b){r({data:b})}},a={postMessage:function(b){o.onmessage({data:b})}};function l(y){if(window.Worker&&window.Blob&&getWebWorker()){var b=new Blob(["var _workerSelf = self; self.onmessage = ",y.toString()],{type:"text/javascript"}),S=URL.createObjectURL(b);return new Worker(S)}return r=y,o}function c(){s||(s=l(function(b){function S(){function E(U,G){var H,R,V=U.length,te,W,$,de;for(R=0;R=0;G-=1)if(U[G].ty==="sh")if(U[G].ks.k.i)M(U[G].ks.k);else for(V=U[G].ks.k.length,R=0;RH[0]?!0:H[0]>U[0]?!1:U[1]>H[1]?!0:H[1]>U[1]?!1:U[2]>H[2]?!0:H[2]>U[2]?!1:null}var I=function(){var U=[4,4,14];function G(R){var V=R.t.d;R.t.d={k:[{s:V,t:0}]}}function H(R){var V,te=R.length;for(V=0;V=0;V-=1)if(R[V].ty==="sh")if(R[V].ks.k.i)R[V].ks.k.c=R[V].closed;else for($=R[V].ks.k.length,W=0;W<$;W+=1)R[V].ks.k[W].s&&(R[V].ks.k[W].s[0].c=R[V].closed),R[V].ks.k[W].e&&(R[V].ks.k[W].e[0].c=R[V].closed);else R[V].ty==="gr"&&G(R[V].it)}function H(R){var V,te,W=R.length,$,de,oe,Y;for(te=0;te500)&&(this._imageLoaded(),clearInterval(T)),P+=1}.bind(this),50)}function a(x){var P=s(x,this.assetsPath,this.path),T=createNS("image");isSafari?this.testImageLoaded(T):T.addEventListener("load",this._imageLoaded,!1),T.addEventListener("error",function(){C.img=i,this._imageLoaded()}.bind(this),!1),T.setAttributeNS("http://www.w3.org/1999/xlink","href",P),this._elementHelper.append?this._elementHelper.append(T):this._elementHelper.appendChild(T);var C={img:T,assetData:x};return C}function l(x){var P=s(x,this.assetsPath,this.path),T=createTag("img");T.crossOrigin="anonymous",T.addEventListener("load",this._imageLoaded,!1),T.addEventListener("error",function(){C.img=i,this._imageLoaded()}.bind(this),!1),T.src=P;var C={img:T,assetData:x};return C}function c(x){var P={assetData:x},T=s(x,this.assetsPath,this.path);return dataManager.loadData(T,function(C){P.img=C,this._footageLoaded()}.bind(this),function(){P.img={},this._footageLoaded()}.bind(this)),P}function u(x,P){this.imagesLoadedCb=P;var T,C=x.length;for(T=0;Tthis.animationData.op&&(this.animationData.op=i.op,this.totalFrames=Math.floor(i.op-this.animationData.ip));var e=this.animationData.layers,r,s=e.length,o=i.layers,a,l=o.length;for(a=0;athis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(!(this.isLoaded===!1||!this.renderer))try{this.expressionsPlugin&&this.expressionsPlugin.resetFrame(),this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(i){this.triggerRenderFrameError(i)}},AnimationItem.prototype.play=function(i){i&&this.name!==i||this.isPaused===!0&&(this.isPaused=!1,this.trigger("_play"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(i){i&&this.name!==i||this.isPaused===!1&&(this.isPaused=!0,this.trigger("_pause"),this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(i){i&&this.name!==i||(this.isPaused===!0?this.play():this.pause())},AnimationItem.prototype.stop=function(i){i&&this.name!==i||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(i){for(var e,r=0;r=this.totalFrames-1&&this.frameModifier>0?!this.loop||this.playCount===this.loop?this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(r=!0,e=this.totalFrames-1):e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(e):e<0?this.checkSegments(e%this.totalFrames)||(this.loop&&!(this.playCount--<=0&&this.loop!==!0)?(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0):(r=!0,e=0)):this.setCurrentRawFrameValue(e),r&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(i,e){this.playCount=0,i[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=i[0]-i[1],this.timeCompleted=this.totalFrames,this.firstFrame=i[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):i[1]>i[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=i[1]-i[0],this.timeCompleted=this.totalFrames,this.firstFrame=i[0],this.setCurrentRawFrameValue(.001+e)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(i,e){var r=-1;this.isPaused&&(this.currentRawFrame+this.firstFramee&&(r=e-i)),this.firstFrame=i,this.totalFrames=e-i,this.timeCompleted=this.totalFrames,r!==-1&&this.goToAndStop(r,!0)},AnimationItem.prototype.playSegments=function(i,e){if(e&&(this.segments.length=0),_typeof$4(i[0])==="object"){var r,s=i.length;for(r=0;r=0;H-=1)e[H].animation.destroy(G)}function k(G,H,R){var V=[].concat([].slice.call(document.getElementsByClassName("lottie")),[].slice.call(document.getElementsByClassName("bodymovin"))),te,W=V.length;for(te=0;te0?C=k:T=k;while(Math.abs(I)>a&&++D=o?E(T,z,C,M):N===0?z:A(T,I,I+u,C,M)}},i}(),pooling=function(){function i(e){return e.concat(createSizedArray(e.length))}return{double:i}}(),poolFactory=function(){return function(i,e,r){var s=0,o=i,a=createSizedArray(o),l={newElement:c,release:u};function c(){var d;return s?(s-=1,d=a[s]):d=e(),d}function u(d){s===o&&(a=pooling.double(a),o*=2),r&&r(d),a[s]=d,s+=1}return l}}(),bezierLengthPool=function(){function i(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}}return poolFactory(8,i)}(),segmentsLengthPool=function(){function i(){return{lengths:[],totalLength:0}}function e(r){var s,o=r.lengths.length;for(s=0;s-.001&&P<.001}function r(y,b,S,A,E,x,P,T,C){if(S===0&&x===0&&C===0)return e(y,b,A,E,P,T);var M=i.sqrt(i.pow(A-y,2)+i.pow(E-b,2)+i.pow(x-S,2)),B=i.sqrt(i.pow(P-y,2)+i.pow(T-b,2)+i.pow(C-S,2)),I=i.sqrt(i.pow(P-A,2)+i.pow(T-E,2)+i.pow(C-x,2)),k;return M>B?M>I?k=M-B-I:k=I-B-M:I>B?k=I-B-M:k=B-M-I,k>-1e-4&&k<1e-4}var s=function(){return function(y,b,S,A){var E=getDefaultCurveSegments(),x,P,T,C,M,B=0,I,k=[],D=[],O=bezierLengthPool.newElement();for(T=S.length,x=0;xP?-1:1,M=!0;M;)if(A[x]<=P&&A[x+1]>P?(T=(P-A[x])/(A[x+1]-A[x]),M=!1):x+=C,x<0||x>=E-1){if(x===E-1)return S[x];M=!1}return S[x]+(S[x+1]-S[x])*T}function d(y,b,S,A,E,x){var P=u(E,x),T=1-P,C=i.round((T*T*T*y[0]+(P*T*T+T*P*T+T*T*P)*S[0]+(P*P*T+T*P*P+P*T*P)*A[0]+P*P*P*b[0])*1e3)/1e3,M=i.round((T*T*T*y[1]+(P*T*T+T*P*T+T*T*P)*S[1]+(P*P*T+T*P*P+P*T*P)*A[1]+P*P*P*b[1])*1e3)/1e3;return[C,M]}var g=createTypedArray("float32",8);function m(y,b,S,A,E,x,P){E<0?E=0:E>1&&(E=1);var T=u(E,P);x=x>1?1:x;var C=u(x,P),M,B=y.length,I=1-T,k=1-C,D=I*I*I,O=T*I*I*3,z=T*T*I*3,N=T*T*T,Q=I*I*k,_=T*I*k+I*T*k+I*I*C,U=T*T*k+I*T*C+T*I*C,G=T*T*C,H=I*k*k,R=T*k*k+I*C*k+I*k*C,V=T*C*k+I*C*C+T*k*C,te=T*C*C,W=k*k*k,$=C*k*k+k*C*k+k*k*C,de=C*C*k+k*C*C+C*k*C,oe=C*C*C;for(M=0;M=d.t-r){u.h&&(u=d),o=0;break}if(d.t-r>i){o=a;break}a=x||i=x?C.points.length-1:0;for(y=C.points[M].point.length,m=0;m=k&&B=x)s[0]=T[0],s[1]=T[1],s[2]=T[2];else if(i<=P)s[0]=u.s[0],s[1]=u.s[1],s[2]=u.s[2];else{var _=createQuaternion(u.s),U=createQuaternion(T),G=(i-P)/(x-P);quaternionToEuler(s,slerp(_,U,G))}else for(a=0;a=x?b=1:i1e-6?(y=Math.acos(b),S=Math.sin(y),A=Math.sin((1-r)*y)/S,E=Math.sin(r*y)/S):(A=1-r,E=r),s[0]=A*o+E*u,s[1]=A*a+E*d,s[2]=A*l+E*g,s[3]=A*c+E*m,s}function quaternionToEuler(i,e){var r=e[0],s=e[1],o=e[2],a=e[3],l=Math.atan2(2*s*a-2*r*o,1-2*s*s-2*o*o),c=Math.asin(2*r*s+2*o*a),u=Math.atan2(2*r*a-2*s*o,1-2*r*r-2*o*o);i[0]=l/degToRads,i[1]=c/degToRads,i[2]=u/degToRads}function createQuaternion(i){var e=i[0]*degToRads,r=i[1]*degToRads,s=i[2]*degToRads,o=Math.cos(e/2),a=Math.cos(r/2),l=Math.cos(s/2),c=Math.sin(e/2),u=Math.sin(r/2),d=Math.sin(s/2),g=o*a*l-c*u*d,m=c*u*l+o*a*d,y=c*a*l+o*u*d,b=o*u*l-c*a*d;return[m,y,b,g]}function getValueAtCurrentTime(){var i=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,r=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(i===this._caching.lastFrame||this._caching.lastFrame!==initFrame&&(this._caching.lastFrame>=r&&i>=r||this._caching.lastFrame=i&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var s=this.interpolateValue(i,this._caching);this.pv=s}return this._caching.lastFrame=i,this.pv}function setVValue(i){var e;if(this.propType==="unidimensional")e=i*this.mult,mathAbs(this.v-e)>1e-5&&(this.v=e,this._mdf=!0);else for(var r=0,s=this.v.length;r1e-5&&(this.v[r]=e,this._mdf=!0),r+=1}function processEffectsSequence(){if(!(this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)){if(this.lock){this.setVValue(this.pv);return}this.lock=!0,this._mdf=this._isFirstFrame;var i,e=this.effectsSequence.length,r=this.kf?this.pv:this.data.k;for(i=0;i=this._maxLength&&this.doubleArrayLength(),r){case"v":a=this.v;break;case"i":a=this.i;break;case"o":a=this.o;break;default:a=[];break}(!a[s]||a[s]&&!o)&&(a[s]=pointPool.newElement()),a[s][0]=i,a[s][1]=e},ShapePath.prototype.setTripleAt=function(i,e,r,s,o,a,l,c){this.setXYAt(i,e,"v",l,c),this.setXYAt(r,s,"o",l,c),this.setXYAt(o,a,"i",l,c)},ShapePath.prototype.reverse=function(){var i=new ShapePath;i.setPathData(this.c,this._length);var e=this.v,r=this.o,s=this.i,o=0;this.c&&(i.setTripleAt(e[0][0],e[0][1],s[0][0],s[0][1],r[0][0],r[0][1],0,!1),o=1);var a=this._length-1,l=this._length,c;for(c=o;c=_[_.length-1].t-this.offsetTime)M=_[_.length-1].s?_[_.length-1].s[0]:_[_.length-2].e[0],I=!0;else{for(var U=C,G=_.length-1,H=!0,R,V,te;H&&(R=_[U],V=_[U+1],!(V.t-this.offsetTime>x));)U=V.t-this.offsetTime)N=1;else if(xT&&x>T)||(this._caching.lastIndex=C0||R>-1e-6&&R<0?s(R*V)/V:R}function H(){var R=this.props,V=G(R[0]),te=G(R[1]),W=G(R[4]),$=G(R[5]),de=G(R[12]),oe=G(R[13]);return"matrix("+V+","+te+","+W+","+$+","+de+","+oe+")"}return function(){this.reset=o,this.rotate=a,this.rotateX=l,this.rotateY=c,this.rotateZ=u,this.skew=g,this.skewFromAxis=m,this.shear=d,this.scale=y,this.setTransform=b,this.translate=S,this.transform=A,this.multiply=E,this.applyToPoint=M,this.applyToX=B,this.applyToY=I,this.applyToZ=k,this.applyToPointArray=Q,this.applyToTriplePoints=N,this.applyToPointStringified=_,this.toCSS=U,this.to2dCSS=H,this.clone=T,this.cloneFromProps=C,this.equals=P,this.inversePoints=z,this.inversePoint=O,this.getInverseMatrix=D,this._t=this.transform,this.isIdentity=x,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();function _typeof$3(i){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$3=function(r){return typeof r}:_typeof$3=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},_typeof$3(i)}var lottie={};function setLocation(i){setLocationHref(i)}function searchAnimations(){animationManager.searchAnimations()}function setSubframeRendering(i){setSubframeEnabled(i)}function setPrefix(i){setIdPrefix(i)}function loadAnimation(i){return animationManager.loadAnimation(i)}function setQuality(i){if(typeof i=="string")switch(i){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10);break}else!isNaN(i)&&i>1&&setDefaultCurveSegments(i)}function inBrowser(){return typeof navigator<"u"}function installPlugin(i,e){i==="expressions"&&setExpressionsPlugin(e)}function getFactory(i){switch(i){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}lottie.play=animationManager.play,lottie.pause=animationManager.pause,lottie.setLocationHref=setLocation,lottie.togglePause=animationManager.togglePause,lottie.setSpeed=animationManager.setSpeed,lottie.setDirection=animationManager.setDirection,lottie.stop=animationManager.stop,lottie.searchAnimations=searchAnimations,lottie.registerAnimation=animationManager.registerAnimation,lottie.loadAnimation=loadAnimation,lottie.setSubframeRendering=setSubframeRendering,lottie.resize=animationManager.resize,lottie.goToAndStop=animationManager.goToAndStop,lottie.destroy=animationManager.destroy,lottie.setQuality=setQuality,lottie.inBrowser=inBrowser,lottie.installPlugin=installPlugin,lottie.freeze=animationManager.freeze,lottie.unfreeze=animationManager.unfreeze,lottie.setVolume=animationManager.setVolume,lottie.mute=animationManager.mute,lottie.unmute=animationManager.unmute,lottie.getRegisteredAnimations=animationManager.getRegisteredAnimations,lottie.useWebWorker=setWebWorker,lottie.setIDPrefix=setPrefix,lottie.__getFactory=getFactory,lottie.version="5.12.2";function checkReady(){document.readyState==="complete"&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(i){for(var e=queryString.split("&"),r=0;r=1?a.push({s:i-1,e:e-1}):(a.push({s:i,e:1}),a.push({s:0,e:e-1}));var l=[],c,u=a.length,d;for(c=0;cs+r)){var g,m;d.s*o<=s?g=0:g=(d.s*o-s)/r,d.e*o>=s+r?m=1:m=(d.e*o-s)/r,l.push([g,m])}return l.length||l.push([0,0]),l},TrimModifier.prototype.releasePathsData=function(i){var e,r=i.length;for(e=0;e1?e=1+s:this.s.v<0?e=0+s:e=this.s.v+s,this.e.v>1?r=1+s:this.e.v<0?r=0+s:r=this.e.v+s,e>r){var o=e;e=r,r=o}e=Math.round(e*1e4)*1e-4,r=Math.round(r*1e4)*1e-4,this.sValue=e,this.eValue=r}else e=this.sValue,r=this.eValue;var a,l,c=this.shapes.length,u,d,g,m,y,b=0;if(r===e)for(l=0;l=0;l-=1)if(A=this.shapes[l],A.shape._mdf){for(E=A.localShapeCollection,E.releaseShapes(),this.m===2&&c>1?(C=this.calculateShapeEdges(e,r,A.totalShapeLength,T,b),T+=A.totalShapeLength):C=[[x,P]],d=C.length,u=0;u=1?S.push({s:A.totalShapeLength*(x-1),e:A.totalShapeLength*(P-1)}):(S.push({s:A.totalShapeLength*x,e:A.totalShapeLength}),S.push({s:0,e:A.totalShapeLength*(P-1)}));var M=this.addShapes(A,S[0]);if(S[0].s!==S[0].e){if(S.length>1){var B=A.shape.paths.shapes[A.shape.paths._length-1];if(B.c){var I=M.pop();this.addPaths(M,E),M=this.addShapes(A,S[1],I)}else this.addPaths(M,E),M=this.addShapes(A,S[1])}this.addPaths(M,E)}}A.shape.paths=E}}},TrimModifier.prototype.addPaths=function(i,e){var r,s=i.length;for(r=0;re.e){r.c=!1;break}else e.s<=d&&e.e>=d+g.addedLength?(this.addSegment(o[a].v[c-1],o[a].o[c-1],o[a].i[c],o[a].v[c],r,m,E),E=!1):(b=bez.getNewSegment(o[a].v[c-1],o[a].v[c],o[a].o[c-1],o[a].i[c],(e.s-d)/g.addedLength,(e.e-d)/g.addedLength,y[c-1]),this.addSegmentFromArray(b,r,m,E),E=!1,r.c=!1),d+=g.addedLength,m+=1;if(o[a].c&&y.length){if(g=y[c-1],d<=e.e){var x=y[c-1].addedLength;e.s<=d&&e.e>=d+x?(this.addSegment(o[a].v[c-1],o[a].o[c-1],o[a].i[0],o[a].v[0],r,m,E),E=!1):(b=bez.getNewSegment(o[a].v[c-1],o[a].v[0],o[a].o[c-1],o[a].i[0],(e.s-d)/x,(e.e-d)/x,y[c-1]),this.addSegmentFromArray(b,r,m,E),E=!1,r.c=!1)}else r.c=!1;d+=g.addedLength,m+=1}if(r._length&&(r.setXYAt(r.v[A][0],r.v[A][1],"i",A),r.setXYAt(r.v[r._length-1][0],r.v[r._length-1][1],"o",r._length-1)),d>e.e)break;a=this.p.keyframes[this.p.keyframes.length-1].t?(g=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/d,0),m=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/d,0)):(g=this.p.pv,m=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/d,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){g=[],m=[];var y=this.px,b=this.py;y._caching.lastFrame+y.offsetTime<=y.keyframes[0].t?(g[0]=y.getValueAtTime((y.keyframes[0].t+.01)/d,0),g[1]=b.getValueAtTime((b.keyframes[0].t+.01)/d,0),m[0]=y.getValueAtTime(y.keyframes[0].t/d,0),m[1]=b.getValueAtTime(b.keyframes[0].t/d,0)):y._caching.lastFrame+y.offsetTime>=y.keyframes[y.keyframes.length-1].t?(g[0]=y.getValueAtTime(y.keyframes[y.keyframes.length-1].t/d,0),g[1]=b.getValueAtTime(b.keyframes[b.keyframes.length-1].t/d,0),m[0]=y.getValueAtTime((y.keyframes[y.keyframes.length-1].t-.01)/d,0),m[1]=b.getValueAtTime((b.keyframes[b.keyframes.length-1].t-.01)/d,0)):(g=[y.pv,b.pv],m[0]=y.getValueAtTime((y._caching.lastFrame+y.offsetTime-.01)/d,y.offsetTime),m[1]=b.getValueAtTime((b._caching.lastFrame+b.offsetTime-.01)/d,b.offsetTime))}else m=i,g=m;this.v.rotate(-Math.atan2(g[1]-m[1],g[0]-m[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}}function s(){if(this.appliedTransformations=0,this.pre.reset(),!this.a.effectsSequence.length)this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1;else return;if(!this.s.effectsSequence.length)this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2;else return;if(this.sk)if(!this.sk.effectsSequence.length&&!this.sa.effectsSequence.length)this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3;else return;this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):!this.rz.effectsSequence.length&&!this.ry.effectsSequence.length&&!this.rx.effectsSequence.length&&!this.or.effectsSequence.length&&(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}function o(){}function a(u){this._addDynamicProperty(u),this.elem.addDynamicProperty(u),this._isDirty=!0}function l(u,d,g){if(this.elem=u,this.frameId=-1,this.propType="transform",this.data=d,this.v=new Matrix,this.pre=new Matrix,this.appliedTransformations=0,this.initDynamicPropertyContainer(g||u),d.p&&d.p.s?(this.px=PropertyFactory.getProp(u,d.p.x,0,0,this),this.py=PropertyFactory.getProp(u,d.p.y,0,0,this),d.p.z&&(this.pz=PropertyFactory.getProp(u,d.p.z,0,0,this))):this.p=PropertyFactory.getProp(u,d.p||{k:[0,0,0]},1,0,this),d.rx){if(this.rx=PropertyFactory.getProp(u,d.rx,0,degToRads,this),this.ry=PropertyFactory.getProp(u,d.ry,0,degToRads,this),this.rz=PropertyFactory.getProp(u,d.rz,0,degToRads,this),d.or.k[0].ti){var m,y=d.or.k.length;for(m=0;m0;)r-=1,this._elements.unshift(e[r]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(i){var e,r=i.length;for(e=0;e0?Math.floor(y):Math.ceil(y),A=this.pMatrix.props,E=this.rMatrix.props,x=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var P=0;if(y>0){for(;PS;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),P-=1;b&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-b,!0),P-=b)}s=this.data.m===1?0:this._currentCopies-1,o=this.data.m===1?1:-1,a=this._currentCopies;for(var T,C;a;){if(e=this.elemsData[s].it,r=e[e.length-1].transform.mProps.v.props,C=r.length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=this._currentCopies===1?this.so.v:this.so.v+(this.eo.v-this.so.v)*(s/(this._currentCopies-1)),P!==0){for((s!==0&&o===1||s!==this._currentCopies-1&&o===-1)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(E[0],E[1],E[2],E[3],E[4],E[5],E[6],E[7],E[8],E[9],E[10],E[11],E[12],E[13],E[14],E[15]),this.matrix.transform(x[0],x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8],x[9],x[10],x[11],x[12],x[13],x[14],x[15]),this.matrix.transform(A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],A[8],A[9],A[10],A[11],A[12],A[13],A[14],A[15]),T=0;T0&&s<1?[e]:[]:[e-s,e+s].filter(function(o){return o>0&&o<1})},PolynomialBezier.prototype.split=function(i){if(i<=0)return[singlePoint(this.points[0]),this];if(i>=1)return[this,singlePoint(this.points[this.points.length-1])];var e=lerpPoint(this.points[0],this.points[1],i),r=lerpPoint(this.points[1],this.points[2],i),s=lerpPoint(this.points[2],this.points[3],i),o=lerpPoint(e,r,i),a=lerpPoint(r,s,i),l=lerpPoint(o,a,i);return[new PolynomialBezier(this.points[0],e,o,l,!0),new PolynomialBezier(l,a,s,this.points[3],!0)]};function extrema(i,e){var r=i.points[0][e],s=i.points[i.points.length-1][e];if(r>s){var o=s;s=r,r=o}for(var a=quadRoots(3*i.a[e],2*i.b[e],i.c[e]),l=0;l0&&a[l]<1){var c=i.point(a[l])[e];cs&&(s=c)}return{min:r,max:s}}PolynomialBezier.prototype.bounds=function(){return{x:extrema(this,0),y:extrema(this,1)}},PolynomialBezier.prototype.boundingBox=function(){var i=this.bounds();return{left:i.x.min,right:i.x.max,top:i.y.min,bottom:i.y.max,width:i.x.max-i.x.min,height:i.y.max-i.y.min,cx:(i.x.max+i.x.min)/2,cy:(i.y.max+i.y.min)/2}};function intersectData(i,e,r){var s=i.boundingBox();return{cx:s.cx,cy:s.cy,width:s.width,height:s.height,bez:i,t:(e+r)/2,t1:e,t2:r}}function splitData(i){var e=i.bez.split(.5);return[intersectData(e[0],i.t1,i.t),intersectData(e[1],i.t,i.t2)]}function boxIntersect(i,e){return Math.abs(i.cx-e.cx)*2=a||i.width<=s&&i.height<=s&&e.width<=s&&e.height<=s){o.push([i.t,e.t]);return}var l=splitData(i),c=splitData(e);intersectsImpl(l[0],c[0],r+1,s,o,a),intersectsImpl(l[0],c[1],r+1,s,o,a),intersectsImpl(l[1],c[0],r+1,s,o,a),intersectsImpl(l[1],c[1],r+1,s,o,a)}}PolynomialBezier.prototype.intersections=function(i,e,r){e===void 0&&(e=2),r===void 0&&(r=7);var s=[];return intersectsImpl(intersectData(this,0,1),intersectData(i,0,1),0,e,s,r),s},PolynomialBezier.shapeSegment=function(i,e){var r=(e+1)%i.length();return new PolynomialBezier(i.v[e],i.o[e],i.i[r],i.v[r],!0)},PolynomialBezier.shapeSegmentInverted=function(i,e){var r=(e+1)%i.length();return new PolynomialBezier(i.v[r],i.i[r],i.o[e],i.v[e],!0)};function crossProduct(i,e){return[i[1]*e[2]-i[2]*e[1],i[2]*e[0]-i[0]*e[2],i[0]*e[1]-i[1]*e[0]]}function lineIntersection(i,e,r,s){var o=[i[0],i[1],1],a=[e[0],e[1],1],l=[r[0],r[1],1],c=[s[0],s[1],1],u=crossProduct(crossProduct(o,a),crossProduct(l,c));return floatZero(u[2])?null:[u[0]/u[2],u[1]/u[2]]}function polarOffset(i,e,r){return[i[0]+Math.cos(e)*r,i[1]-Math.sin(e)*r]}function pointDistance(i,e){return Math.hypot(i[0]-e[0],i[1]-e[1])}function pointEqual(i,e){return floatEqual(i[0],e[0])&&floatEqual(i[1],e[1])}function ZigZagModifier(){}extendPrototype([ShapeModifier],ZigZagModifier),ZigZagModifier.prototype.initModifierProperties=function(i,e){this.getValue=this.processKeys,this.amplitude=PropertyFactory.getProp(i,e.s,0,null,this),this.frequency=PropertyFactory.getProp(i,e.r,0,null,this),this.pointsType=PropertyFactory.getProp(i,e.pt,0,null,this),this._isAnimated=this.amplitude.effectsSequence.length!==0||this.frequency.effectsSequence.length!==0||this.pointsType.effectsSequence.length!==0};function setPoint(i,e,r,s,o,a,l){var c=r-Math.PI/2,u=r+Math.PI/2,d=e[0]+Math.cos(r)*s*o,g=e[1]-Math.sin(r)*s*o;i.setTripleAt(d,g,d+Math.cos(c)*a,g-Math.sin(c)*a,d+Math.cos(u)*l,g-Math.sin(u)*l,i.length())}function getPerpendicularVector(i,e){var r=[e[0]-i[0],e[1]-i[1]],s=-Math.PI*.5,o=[Math.cos(s)*r[0]-Math.sin(s)*r[1],Math.sin(s)*r[0]+Math.cos(s)*r[1]];return o}function getProjectingAngle(i,e){var r=e===0?i.length()-1:e-1,s=(e+1)%i.length(),o=i.v[r],a=i.v[s],l=getPerpendicularVector(o,a);return Math.atan2(0,1)-Math.atan2(l[1],l[0])}function zigZagCorner(i,e,r,s,o,a,l){var c=getProjectingAngle(e,r),u=e.v[r%e._length],d=e.v[r===0?e._length-1:r-1],g=e.v[(r+1)%e._length],m=a===2?Math.sqrt(Math.pow(u[0]-d[0],2)+Math.pow(u[1]-d[1],2)):0,y=a===2?Math.sqrt(Math.pow(u[0]-g[0],2)+Math.pow(u[1]-g[1],2)):0;setPoint(i,e.v[r%e._length],c,l,s,y/((o+1)*2),m/((o+1)*2))}function zigZagSegment(i,e,r,s,o,a){for(var l=0;l1&&e.length>1&&(o=getIntersection(i[0],e[e.length-1]),o)?[[i[0].split(o[0])[0]],[e[e.length-1].split(o[1])[1]]]:[r,s]}function pruneIntersections(i){for(var e,r=1;r1&&(e=pruneSegmentIntersection(i[i.length-1],i[0]),i[i.length-1]=e[0],i[0]=e[1]),i}function offsetSegmentSplit(i,e){var r=i.inflectionPoints(),s,o,a,l;if(r.length===0)return[offsetSegment(i,e)];if(r.length===1||floatEqual(r[1],1))return a=i.split(r[0]),s=a[0],o=a[1],[offsetSegment(s,e),offsetSegment(o,e)];a=i.split(r[0]),s=a[0];var c=(r[1]-r[0])/(1-r[0]);return a=a[1].split(c),l=a[0],o=a[1],[offsetSegment(s,e),offsetSegment(l,e),offsetSegment(o,e)]}function OffsetPathModifier(){}extendPrototype([ShapeModifier],OffsetPathModifier),OffsetPathModifier.prototype.initModifierProperties=function(i,e){this.getValue=this.processKeys,this.amount=PropertyFactory.getProp(i,e.a,0,null,this),this.miterLimit=PropertyFactory.getProp(i,e.ml,0,null,this),this.lineJoin=e.lj,this._isAnimated=this.amount.effectsSequence.length!==0},OffsetPathModifier.prototype.processPath=function(i,e,r,s){var o=shapePool.newElement();o.c=i.c;var a=i.length();i.c||(a-=1);var l,c,u,d=[];for(l=0;l=0;l-=1)u=PolynomialBezier.shapeSegmentInverted(i,l),d.push(offsetSegmentSplit(u,e));d=pruneIntersections(d);var g=null,m=null;for(l=0;l0&&($=!1),$){var Y=createTag("style");Y.setAttribute("f-forigin",R[V].fOrigin),Y.setAttribute("f-origin",R[V].origin),Y.setAttribute("f-family",R[V].fFamily),Y.type="text/css",Y.innerText="@font-face {font-family: "+R[V].fFamily+"; font-style: normal; src: url('"+R[V].fPath+"');}",H.appendChild(Y)}}else if(R[V].fOrigin==="g"||R[V].origin===1){for(de=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),oe=0;oe=55296&&R<=56319){var V=G.charCodeAt(1);V>=56320&&V<=57343&&(H=(R-55296)*1024+V-56320+65536)}return H}function B(G,H){var R=G.toString(16)+H.toString(16);return m.indexOf(R)!==-1}function I(G){return G===u}function k(G){return G===c}function D(G){var H=M(G);return H>=d&&H<=g}function O(G){return D(G.substr(0,2))&&D(G.substr(2,2))}function z(G){return r.indexOf(G)!==-1}function N(G,H){var R=M(G.substr(H,2));if(R!==s)return!1;var V=0;for(H+=2;V<5;){if(R=M(G.substr(H,2)),Rl)return!1;V+=1,H+=2}return M(G.substr(H,2))===o}function Q(){this.isLoaded=!0}var _=function(){this.fonts=[],this.chars=null,this.typekitLoaded=0,this.isLoaded=!1,this._warned=!1,this.initTime=Date.now(),this.setIsLoadedBinded=this.setIsLoaded.bind(this),this.checkLoadedFontsBinded=this.checkLoadedFonts.bind(this)};_.isModifier=B,_.isZeroWidthJoiner=I,_.isFlagEmoji=O,_.isRegionalCode=D,_.isCombinedCharacter=z,_.isRegionalFlag=N,_.isVariationSelector=k,_.BLACK_FLAG_CODE_POINT=s;var U={addChars:x,addFonts:E,getCharData:P,getFontByName:C,measureText:T,checkLoadedFonts:S,setIsLoaded:Q};return _.prototype=U,_}();function SlotManager(i){this.animationData=i}SlotManager.prototype.getProp=function(i){return this.animationData.slots&&this.animationData.slots[i.sid]?Object.assign(i,this.animationData.slots[i.sid].p):i};function slotFactory(i){return new SlotManager(i)}function RenderableElement(){}RenderableElement.prototype={initRenderable:function(){this.isInRange=!1,this.hidden=!1,this.isTransparent=!1,this.renderableComponents=[]},addRenderableComponent:function(e){this.renderableComponents.indexOf(e)===-1&&this.renderableComponents.push(e)},removeRenderableComponent:function(e){this.renderableComponents.indexOf(e)!==-1&&this.renderableComponents.splice(this.renderableComponents.indexOf(e),1)},prepareRenderableFrame:function(e){this.checkLayerLimits(e)},checkTransparency:function(){this.finalTransform.mProp.o.v<=0?!this.isTransparent&&this.globalData.renderConfig.hideOnTransparent&&(this.isTransparent=!0,this.hide()):this.isTransparent&&(this.isTransparent=!1,this.show())},checkLayerLimits:function(e){this.data.ip-this.data.st<=e&&this.data.op-this.data.st>e?this.isInRange!==!0&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):this.isInRange!==!1&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var e,r=this.renderableComponents.length;for(e=0;e.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(i){this.audio.rate(i)},AudioElement.prototype.volume=function(i){this._volumeMultiplier=i,this._previousVolume=i*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){};function BaseRenderer(){}BaseRenderer.prototype.checkLayers=function(i){var e,r=this.layers.length,s;for(this.completeLayers=!0,e=r-1;e>=0;e-=1)this.elements[e]||(s=this.layers[e],s.ip-s.st<=i-this.layers[e].st&&s.op-s.st>i-this.layers[e].st&&this.buildItem(e)),this.completeLayers=this.elements[e]?this.completeLayers:!1;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(i){switch(i.ty){case 2:return this.createImage(i);case 0:return this.createComp(i);case 1:return this.createSolid(i);case 3:return this.createNull(i);case 4:return this.createShape(i);case 5:return this.createText(i);case 6:return this.createAudio(i);case 13:return this.createCamera(i);case 15:return this.createFootage(i);default:return this.createNull(i)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(i){return new AudioElement(i,this.globalData,this)},BaseRenderer.prototype.createFootage=function(i){return new FootageElement(i,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var i,e=this.layers.length;for(i=0;i0&&(this.maskElement.setAttribute("id",y),this.element.maskedElement.setAttribute(P,"url("+getLocationHref()+"#"+y+")"),s.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}MaskElement.prototype.getMaskProperty=function(i){return this.viewData[i].prop},MaskElement.prototype.renderFrame=function(i){var e=this.element.finalTransform.mat,r,s=this.masksProperties.length;for(r=0;r1&&(s+=" C"+e.o[o-1][0]+","+e.o[o-1][1]+" "+e.i[0][0]+","+e.i[0][1]+" "+e.v[0][0]+","+e.v[0][1]),r.lastPath!==s){var l="";r.elem&&(e.c&&(l=i.inv?this.solidPath+s:s),r.elem.setAttribute("d",l)),r.lastPath=s}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var i={};i.createFilter=e,i.createAlphaToLuminanceFilter=r;function e(s,o){var a=createNS("filter");return a.setAttribute("id",s),o!==!0&&(a.setAttribute("filterUnits","objectBoundingBox"),a.setAttribute("x","0%"),a.setAttribute("y","0%"),a.setAttribute("width","100%"),a.setAttribute("height","100%")),a}function r(){var s=createNS("feColorMatrix");return s.setAttribute("type","matrix"),s.setAttribute("color-interpolation-filters","sRGB"),s.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),s}return i}(),featureSupport=function(){var i={maskType:!0,svgLumaHidden:!0,offscreenCanvas:typeof OffscreenCanvas<"u"};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(i.maskType=!1),/firefox/i.test(navigator.userAgent)&&(i.svgLumaHidden=!1),i}(),registeredEffects$1={},idPrefix="filter_result_";function SVGEffects(i){var e,r="SourceGraphic",s=i.data.ef?i.data.ef.length:0,o=createElementID(),a=filtersFactory.createFilter(o,!0),l=0;this.filters=[];var c;for(e=0;e=0&&(s=this.shapeModifiers[e].processShapes(this._isFirstFrame),!s);e-=1);}},searchProcessedElement:function(e){for(var r=this.processedElements,s=0,o=r.length;s.01)return!1;r+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!==this.c.length/4)return!1;if(this.data.k.k[0].s)for(var i=0,e=this.data.k.k.length;i0;)x=y.transformers[D].mProps._mdf||x,k-=1,D-=1;if(x)for(k=M-y.styles[T].lvl,D=y.transformers.length-1;k>0;)I.multiply(y.transformers[D].mProps.v),k-=1,D-=1}else I=i;if(B=y.sh.paths,A=B._length,x){for(E="",S=0;S=1?Q=.99:Q<=-1&&(Q=-.99);var _=z*Q,U=Math.cos(N+y.a.v)*_+E[0],G=Math.sin(N+y.a.v)*_+E[1];S.setAttribute("fx",U),S.setAttribute("fy",G),A&&!y.g._collapsable&&(y.of.setAttribute("fx",U),y.of.setAttribute("fy",G))}}}function g(m,y,b){var S=y.style,A=y.d;A&&(A._mdf||b)&&A.dashStr&&(S.pElem.setAttribute("stroke-dasharray",A.dashStr),S.pElem.setAttribute("stroke-dashoffset",A.dashoffset[0])),y.c&&(y.c._mdf||b)&&S.pElem.setAttribute("stroke","rgb("+bmFloor(y.c.v[0])+","+bmFloor(y.c.v[1])+","+bmFloor(y.c.v[2])+")"),(y.o._mdf||b)&&S.pElem.setAttribute("stroke-opacity",y.o.v),(y.w._mdf||b)&&(S.pElem.setAttribute("stroke-width",y.w.v),S.msElem&&S.msElem.setAttribute("stroke-width",y.w.v))}return r}();function SVGShapeElement(i,e,r){this.shapes=[],this.shapesData=i.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(i,e,r),this.prevViewData=[]}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var i,e=this.shapes.length,r,s,o=this.stylesList.length,a,l=[],c=!1;for(s=0;s1&&c&&this.setShapesAsAnimated(l)}},SVGShapeElement.prototype.setShapesAsAnimated=function(i){var e,r=i.length;for(e=0;e=0;u-=1){if(E=this.searchProcessedElement(i[u]),E?e[u]=r[E-1]:i[u]._render=l,i[u].ty==="fl"||i[u].ty==="st"||i[u].ty==="gf"||i[u].ty==="gs"||i[u].ty==="no")E?e[u].style.closed=!1:e[u]=this.createStyleElement(i[u],o),i[u]._render&&e[u].style.pElem.parentNode!==s&&s.appendChild(e[u].style.pElem),y.push(e[u].style);else if(i[u].ty==="gr"){if(!E)e[u]=this.createGroupElement(i[u]);else for(m=e[u].it.length,g=0;g1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(i){this.effectsSequence.push(i),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(i){if(!((this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)&&!i)){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,r=this.keysIndex;if(this.lock){this.setCurrentData(this.currentData);return}this.lock=!0,this._mdf=!1;var s,o=this.effectsSequence.length,a=i||this.data.d.k[this.keysIndex].s;for(s=0;se);)r+=1;return this.keysIndex!==r&&(this.keysIndex=r),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(i){for(var e=[],r=0,s=i.length,o,a,l=!1,c=!1,u="";r=55296&&o<=56319?FontManager.isRegionalFlag(i,r)?u=i.substr(r,14):(a=i.charCodeAt(r+1),a>=56320&&a<=57343&&(FontManager.isModifier(o,a)?(u=i.substr(r,2),l=!0):FontManager.isFlagEmoji(i.substr(r,4))?u=i.substr(r,4):u=i.substr(r,2))):o>56319?(a=i.charCodeAt(r+1),FontManager.isVariationSelector(o)&&(l=!0)):FontManager.isZeroWidthJoiner(o)&&(l=!0,c=!0),l?(e[e.length-1]+=u,l=!1):e.push(u),r+=u.length;return e},TextProperty.prototype.completeTextData=function(i){i.__complete=!0;var e=this.elem.globalData.fontManager,r=this.data,s=[],o,a,l,c=0,u,d=r.m.g,g=0,m=0,y=0,b=[],S=0,A=0,E,x,P=e.getFontByName(i.f),T,C=0,M=getFontProperties(P);i.fWeight=M.weight,i.fStyle=M.style,i.finalSize=i.s,i.finalText=this.buildFinalText(i.t),a=i.finalText.length,i.finalLineHeight=i.lh;var B=i.tr/1e3*i.finalSize,I;if(i.sz)for(var k=!0,D=i.sz[0],O=i.sz[1],z,N;k;){N=this.buildFinalText(i.t),z=0,S=0,a=N.length,B=i.tr/1e3*i.finalSize;var Q=-1;for(o=0;oD&&N[o]!==" "?(Q===-1?a+=1:o=Q,z+=i.finalLineHeight||i.finalSize*1.2,N.splice(o,Q===o?1:0,"\r"),Q=-1,S=0):(S+=C,S+=B);z+=P.ascent*i.finalSize/100,this.canResize&&i.finalSize>this.minimumFontSize&&OA?S:A,S=-2*B,u="",l=!0,y+=1):u=U,e.chars?(T=e.getCharData(U,P.fStyle,e.getFontByName(i.f).fFamily),C=l?0:T.w*i.finalSize/100):C=e.measureText(u,i.f,i.finalSize),U===" "?_+=C+B:(S+=C+B+_,_=0),s.push({l:C,an:C,add:g,n:l,anIndexes:[],val:u,line:y,animatorJustifyOffset:0}),d==2){if(g+=C,u===""||u===" "||o===a-1){for((u===""||u===" ")&&(g-=C);m<=o;)s[m].an=g,s[m].ind=c,s[m].extra=C,m+=1;c+=1,g=0}}else if(d==3){if(g+=C,u===""||o===a-1){for(u===""&&(g-=C);m<=o;)s[m].an=g,s[m].ind=c,s[m].extra=C,m+=1;g=0,c+=1}}else s[c].ind=c,s[c].extra=0,c+=1;if(i.l=s,A=S>A?S:A,b.push(S),i.sz)i.boxWidth=i.sz[0],i.justifyOffset=0;else switch(i.boxWidth=A,i.j){case 1:i.justifyOffset=-i.boxWidth;break;case 2:i.justifyOffset=-i.boxWidth/2;break;default:i.justifyOffset=0}i.lineWidths=b;var G=r.a,H,R;x=G.length;var V,te,W=[];for(E=0;E0?c=this.ne.v/100:u=-this.ne.v/100,this.xe.v>0?d=1-this.xe.v/100:g=1+this.xe.v/100;var m=BezierFactory.getBezierEasing(c,u,d,g).get,y=0,b=this.finalS,S=this.finalE,A=this.data.sh;if(A===2)S===b?y=l>=S?1:0:y=i(0,e(.5/(S-b)+(l-b)/(S-b),1)),y=m(y);else if(A===3)S===b?y=l>=S?0:1:y=1-i(0,e(.5/(S-b)+(l-b)/(S-b),1)),y=m(y);else if(A===4)S===b?y=0:(y=i(0,e(.5/(S-b)+(l-b)/(S-b),1)),y<.5?y*=2:y=1-2*(y-.5)),y=m(y);else if(A===5){if(S===b)y=0;else{var E=S-b;l=e(i(0,l+.5-b),S-b);var x=-E/2+l,P=E/2;y=Math.sqrt(1-x*x/(P*P))}y=m(y)}else A===6?(S===b?y=0:(l=e(i(0,l+.5-b),S-b),y=(1+Math.cos(Math.PI+Math.PI*2*l/(S-b)))/2),y=m(y)):(l>=r(b)&&(l-b<0?y=i(0,e(e(S,1)-(b-l),1)):y=i(0,e(S-l,1))),y=m(y));if(this.sm.v!==100){var T=this.sm.v*.01;T===0&&(T=1e-8);var C=.5-T*.5;y1&&(y=1))}return y*this.a.v},getValue:function(l){this.iterateDynamicProperties(),this._mdf=l||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,l&&this.data.r===2&&(this.e.v=this._currentTextLength);var c=this.data.r===2?1:100/this.data.totalChars,u=this.o.v/c,d=this.s.v/c+u,g=this.e.v/c+u;if(d>g){var m=d;d=g,g=m}this.finalS=d,this.finalE=g}},extendPrototype([DynamicPropertyContainer],s);function o(a,l,c){return new s(a,l)}return{getTextSelectorProp:o}}();function TextAnimatorDataProperty(i,e,r){var s={propType:!1},o=PropertyFactory.getProp,a=e.a;this.a={r:a.r?o(i,a.r,0,degToRads,r):s,rx:a.rx?o(i,a.rx,0,degToRads,r):s,ry:a.ry?o(i,a.ry,0,degToRads,r):s,sk:a.sk?o(i,a.sk,0,degToRads,r):s,sa:a.sa?o(i,a.sa,0,degToRads,r):s,s:a.s?o(i,a.s,1,.01,r):s,a:a.a?o(i,a.a,1,0,r):s,o:a.o?o(i,a.o,0,.01,r):s,p:a.p?o(i,a.p,1,0,r):s,sw:a.sw?o(i,a.sw,0,0,r):s,sc:a.sc?o(i,a.sc,1,0,r):s,fc:a.fc?o(i,a.fc,1,0,r):s,fh:a.fh?o(i,a.fh,0,0,r):s,fs:a.fs?o(i,a.fs,0,.01,r):s,fb:a.fb?o(i,a.fb,0,.01,r):s,t:a.t?o(i,a.t,0,0,r):s},this.s=TextSelectorProp.getTextSelectorProp(i,e.s,r),this.s.t=e.s.t}function TextAnimatorProperty(i,e,r){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=i,this._renderType=e,this._elem=r,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(r)}TextAnimatorProperty.prototype.searchProperties=function(){var i,e=this._textData.a.length,r,s=PropertyFactory.getProp;for(i=0;i=S+xe||!M?(D=(S+xe-E)/A.partialLength,oe=C.point[0]+(A.point[0]-C.point[0])*D,Y=C.point[1]+(A.point[1]-C.point[1])*D,a.translate(-r[0]*y[g].an*.005,-(r[1]*_)*.01),x=!1):M&&(E+=A.partialLength,P+=1,P>=M.length&&(P=0,T+=1,B[T]?M=B[T].points:z.v.c?(P=0,T=0,M=B[T].points):(E-=A.partialLength,M=null)),M&&(C=A,A=M[P],I=A.partialLength));de=y[g].an/2-y[g].add,a.translate(-de,0,0)}else de=y[g].an/2-y[g].add,a.translate(-de,0,0),a.translate(-r[0]*y[g].an*.005,-r[1]*_*.01,0);for(R=0;Ri?this.textSpans[i].span:createNS(c?"g":"text"),T<=i){if(u.setAttribute("stroke-linecap","butt"),u.setAttribute("stroke-linejoin","round"),u.setAttribute("stroke-miterlimit","4"),this.textSpans[i].span=u,c){var M=createNS("g");u.appendChild(M),this.textSpans[i].childSpan=M}this.textSpans[i].span=u,this.layerElement.appendChild(u)}u.style.display="inherit"}if(d.reset(),m&&(l[i].n&&(y=-A,b+=r.yOffset,b+=S?1:0,S=!1),this.applyTextPropertiesToMatrix(r,d,l[i].line,y,b),y+=l[i].l||0,y+=A),c){C=this.globalData.fontManager.getCharData(r.finalText[i],s.fStyle,this.globalData.fontManager.getFontByName(r.f).fFamily);var B;if(C.t===1)B=new SVGCompElement(C.data,this.globalData,this);else{var I=emptyShapeData;C.data&&C.data.shapes&&(I=this.buildShapeData(C.data,r.finalSize)),B=new SVGShapeElement(I,this.globalData,this)}if(this.textSpans[i].glyph){var k=this.textSpans[i].glyph;this.textSpans[i].childSpan.removeChild(k.layerElement),k.destroy()}this.textSpans[i].glyph=B,B._debug=!0,B.prepareFrame(0),B.renderFrame(),this.textSpans[i].childSpan.appendChild(B.layerElement),C.t===1&&this.textSpans[i].childSpan.setAttribute("transform","scale("+r.finalSize/100+","+r.finalSize/100+")")}else m&&u.setAttribute("transform","translate("+d.props[12]+","+d.props[13]+")"),u.textContent=l[i].val,u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}m&&u&&u.setAttribute("d",g)}for(;i=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(i-this.layers[e].st);if(this.globalData._mdf)for(e=0;e=0;r-=1)(this.completeLayers||this.elements[r])&&(this.elements[r].prepareFrame(this.renderedFrame-this.layers[r].st),this.elements[r]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var i,e=this.layers.length;for(i=0;i=0;s-=1)e.finalTransform.multiply(e.transforms[s].transform.mProps.v);e._mdf=a},processSequences:function(e){var r,s=this.sequenceList.length;for(r=0;r=1){this.buffers=[];var e=this.globalData.canvasContext,r=assetLoader.createCanvas(e.canvas.width,e.canvas.height);this.buffers.push(r);var s=assetLoader.createCanvas(e.canvas.width,e.canvas.height);this.buffers.push(s),this.data.tt>=3&&!document._isProxy&&assetLoader.loadLumaCanvas()}this.canvasContext=this.globalData.canvasContext,this.transformCanvas=this.globalData.transformCanvas,this.renderableEffectsManager=new CVEffects(this),this.searchEffectTransforms()},createContent:function(){},setBlendMode:function(){var e=this.globalData;if(e.blendMode!==this.data.bm){e.blendMode=this.data.bm;var r=getBlendMode(this.data.bm);e.canvasContext.globalCompositeOperation=r}},createRenderableComponents:function(){this.maskManager=new CVMaskElement(this.data,this),this.transformEffects=this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT)},hideElement:function(){!this.hidden&&(!this.isInRange||this.isTransparent)&&(this.hidden=!0)},showElement:function(){this.isInRange&&!this.isTransparent&&(this.hidden=!1,this._isFirstFrame=!0,this.maskManager._isFirstFrame=!0)},clearCanvas:function(e){e.clearRect(this.transformCanvas.tx,this.transformCanvas.ty,this.transformCanvas.w*this.transformCanvas.sx,this.transformCanvas.h*this.transformCanvas.sy)},prepareLayer:function(){if(this.data.tt>=1){var e=this.buffers[0],r=e.getContext("2d");this.clearCanvas(r),r.drawImage(this.canvasContext.canvas,0,0),this.currentTransform=this.canvasContext.getTransform(),this.canvasContext.setTransform(1,0,0,1,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.setTransform(this.currentTransform)}},exitLayer:function(){if(this.data.tt>=1){var e=this.buffers[1],r=e.getContext("2d");this.clearCanvas(r),r.drawImage(this.canvasContext.canvas,0,0),this.canvasContext.setTransform(1,0,0,1,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.setTransform(this.currentTransform);var s=this.comp.getElementById("tp"in this.data?this.data.tp:this.data.ind-1);if(s.renderFrame(!0),this.canvasContext.setTransform(1,0,0,1,0,0),this.data.tt>=3&&!document._isProxy){var o=assetLoader.getLumaCanvas(this.canvasContext.canvas),a=o.getContext("2d");a.drawImage(this.canvasContext.canvas,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.drawImage(o,0,0)}this.canvasContext.globalCompositeOperation=operationsMap[this.data.tt],this.canvasContext.drawImage(e,0,0),this.canvasContext.globalCompositeOperation="destination-over",this.canvasContext.drawImage(this.buffers[0],0,0),this.canvasContext.setTransform(this.currentTransform),this.canvasContext.globalCompositeOperation="source-over"}},renderFrame:function(e){if(!(this.hidden||this.data.hd)&&!(this.data.td===1&&!e)){this.renderTransform(),this.renderRenderable(),this.renderLocalTransform(),this.setBlendMode();var r=this.data.ty===0;this.prepareLayer(),this.globalData.renderer.save(r),this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props),this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity),this.renderInnerContent(),this.globalData.renderer.restore(r),this.exitLayer(),this.maskManager.hasMasks&&this.globalData.renderer.restore(!0),this._isFirstFrame&&(this._isFirstFrame=!1)}},destroy:function(){this.canvasContext=null,this.data=null,this.globalData=null,this.maskManager.destroy()},mHelper:new Matrix},CVBaseElement.prototype.hide=CVBaseElement.prototype.hideElement,CVBaseElement.prototype.show=CVBaseElement.prototype.showElement;function CVShapeData(i,e,r,s){this.styledShapes=[],this.tr=[0,0,0,0,0,0];var o=4;e.ty==="rc"?o=5:e.ty==="el"?o=6:e.ty==="sr"&&(o=7),this.sh=ShapePropertyFactory.getShapeProp(i,e,o,i);var a,l=r.length,c;for(a=0;a=0;a-=1){if(m=this.searchProcessedElement(i[a]),m?e[a]=r[m-1]:i[a]._shouldRender=s,i[a].ty==="fl"||i[a].ty==="st"||i[a].ty==="gf"||i[a].ty==="gs")m?e[a].style.closed=!1:e[a]=this.createStyleElement(i[a],S),d.push(e[a].style);else if(i[a].ty==="gr"){if(!m)e[a]=this.createGroupElement(i[a]);else for(u=e[a].it.length,c=0;c=0;o-=1)e[o].ty==="tr"?(l=r[o].transform,this.renderShapeTransform(i,l)):e[o].ty==="sh"||e[o].ty==="el"||e[o].ty==="rc"||e[o].ty==="sr"?this.renderPath(e[o],r[o]):e[o].ty==="fl"?this.renderFill(e[o],r[o],l):e[o].ty==="st"?this.renderStroke(e[o],r[o],l):e[o].ty==="gf"||e[o].ty==="gs"?this.renderGradientFill(e[o],r[o],l):e[o].ty==="gr"?this.renderShape(l,e[o].it,r[o].it):e[o].ty;s&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(i,e){if(this._isFirstFrame||e._mdf||i.transforms._mdf){var r=i.trNodes,s=e.paths,o,a,l,c=s._length;r.length=0;var u=i.transforms.finalTransform;for(l=0;l=1?g=.99:g<=-1&&(g=-.99);var m=u*g,y=Math.cos(d+e.a.v)*m+l[0],b=Math.sin(d+e.a.v)*m+l[1];o=a.createRadialGradient(y,b,0,l[0],l[1],u)}var S,A=i.g.p,E=e.g.c,x=1;for(S=0;Sa&&u==="xMidYMid slice"||oo&&c==="meet"||ao&&c==="slice")?this.transformCanvas.tx=(r-this.transformCanvas.w*(s/this.transformCanvas.h))/2*this.renderConfig.dpr:d==="xMax"&&(ao&&c==="slice")?this.transformCanvas.tx=(r-this.transformCanvas.w*(s/this.transformCanvas.h))*this.renderConfig.dpr:this.transformCanvas.tx=0,g==="YMid"&&(a>o&&c==="meet"||ao&&c==="meet"||a=0;i-=1)this.elements[i]&&this.elements[i].destroy&&this.elements[i].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(i,e){if(!(this.renderedFrame===i&&this.renderConfig.clearCanvas===!0&&!e||this.destroyed||i===-1)){this.renderedFrame=i,this.globalData.frameNum=i-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=i;var r,s=this.layers.length;for(this.completeLayers||this.checkLayers(i),r=s-1;r>=0;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].prepareFrame(i-this.layers[r].st);if(this.globalData._mdf){for(this.renderConfig.clearCanvas===!0?this.canvasContext.clearRect(0,0,this.transformCanvas.w,this.transformCanvas.h):this.save(),r=s-1;r>=0;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].renderFrame();this.renderConfig.clearCanvas!==!0&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(i){var e=this.elements;if(!(e[i]||this.layers[i].ty===99)){var r=this.createItem(this.layers[i],this,this.globalData);e[i]=r,r.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var i=this.pendingElements.pop();i.checkParenting()}},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display="block"};function CanvasContext(){this.opacity=-1,this.transform=createTypedArray("float32",16),this.fillStyle="",this.strokeStyle="",this.lineWidth="",this.lineCap="",this.lineJoin="",this.miterLimit="",this.id=Math.random()}function CVContextData(){this.stack=[],this.cArrPos=0,this.cTr=new Matrix;var i,e=15;for(i=0;i=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].renderFrame()},CVCompElement.prototype.destroy=function(){var i,e=this.layers.length;for(i=e-1;i>=0;i-=1)this.elements[i]&&this.elements[i].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(i){return new CVCompElement(i,this.globalData,this)};function CanvasRenderer(i,e){this.animationItem=i,this.renderConfig={clearCanvas:e&&e.clearCanvas!==void 0?e.clearCanvas:!0,context:e&&e.context||null,progressiveLoad:e&&e.progressiveLoad||!1,preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",contentVisibility:e&&e.contentVisibility||"visible",className:e&&e.className||"",id:e&&e.id||"",runExpressions:!e||e.runExpressions===void 0||e.runExpressions},this.renderConfig.dpr=e&&e.dpr||1,this.animationItem.wrapper&&(this.renderConfig.dpr=e&&e.dpr||window.devicePixelRatio||1),this.renderedFrame=-1,this.globalData={frameNum:-1,_mdf:!1,renderConfig:this.renderConfig,currentGlobalAlpha:-1},this.contextData=new CVContextData,this.elements=[],this.pendingElements=[],this.transformMat=new Matrix,this.completeLayers=!1,this.rendererType="canvas",this.renderConfig.clearCanvas&&(this.ctxTransform=this.contextData.transform.bind(this.contextData),this.ctxOpacity=this.contextData.opacity.bind(this.contextData),this.ctxFillStyle=this.contextData.fillStyle.bind(this.contextData),this.ctxStrokeStyle=this.contextData.strokeStyle.bind(this.contextData),this.ctxLineWidth=this.contextData.lineWidth.bind(this.contextData),this.ctxLineCap=this.contextData.lineCap.bind(this.contextData),this.ctxLineJoin=this.contextData.lineJoin.bind(this.contextData),this.ctxMiterLimit=this.contextData.miterLimit.bind(this.contextData),this.ctxFill=this.contextData.fill.bind(this.contextData),this.ctxFillRect=this.contextData.fillRect.bind(this.contextData),this.ctxStroke=this.contextData.stroke.bind(this.contextData),this.save=this.contextData.save.bind(this.contextData))}extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(i){return new CVCompElement(i,this.globalData,this)};function HBaseElement(){}HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||"div"),this.data.hasMask?(this.svgElement=createNS("svg"),this.layerElement=createNS("g"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects(this),this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),this.data.bm!==0&&this.setBlendMode()},renderElement:function(){var e=this.transformedElement?this.transformedElement.style:{};if(this.finalTransform._matMdf){var r=this.finalTransform.mat.toCSS();e.transform=r,e.webkitTransform=r}this.finalTransform._opMdf&&(e.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=BaseRenderer.prototype.buildElementParenting;function HSolidElement(i,e,r){this.initElement(i,e,r)}extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var i;this.data.hasMask?(i=createNS("rect"),i.setAttribute("width",this.data.sw),i.setAttribute("height",this.data.sh),i.setAttribute("fill",this.data.sc),this.svgElement.setAttribute("width",this.data.sw),this.svgElement.setAttribute("height",this.data.sh)):(i=createTag("div"),i.style.width=this.data.sw+"px",i.style.height=this.data.sh+"px",i.style.backgroundColor=this.data.sc),this.layerElement.appendChild(i)};function HShapeElement(i,e,r){this.shapes=[],this.shapesData=i.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.shapesContainer=createNS("g"),this.initElement(i,e,r),this.prevViewData=[],this.currentBBox={x:999999,y:-999999,h:0,w:0}}extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var i;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),i=this.svgElement;else{i=createNS("svg");var e=this.comp.data?this.comp.data:this.globalData.compSize;i.setAttribute("width",e.w),i.setAttribute("height",e.h),i.appendChild(this.shapesContainer),this.layerElement.appendChild(i)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=i},HShapeElement.prototype.getTransformedPoint=function(i,e){var r,s=i.length;for(r=0;r0&&u<1&&o[y].push(this.calculateF(u,i,e,r,s,y))):(d=l*l-4*c*a,d>=0&&(g=(-l+bmSqrt(d))/(2*a),g>0&&g<1&&o[y].push(this.calculateF(g,i,e,r,s,y)),m=(-l-bmSqrt(d))/(2*a),m>0&&m<1&&o[y].push(this.calculateF(m,i,e,r,s,y)))));this.shapeBoundingBox.left=bmMin.apply(null,o[0]),this.shapeBoundingBox.top=bmMin.apply(null,o[1]),this.shapeBoundingBox.right=bmMax.apply(null,o[0]),this.shapeBoundingBox.bottom=bmMax.apply(null,o[1])},HShapeElement.prototype.calculateF=function(i,e,r,s,o,a){return bmPow(1-i,3)*e[a]+3*bmPow(1-i,2)*i*r[a]+3*(1-i)*bmPow(i,2)*s[a]+bmPow(i,3)*o[a]},HShapeElement.prototype.calculateBoundingBox=function(i,e){var r,s=i.length;for(r=0;rr&&(r=o)}r*=i.mult}else r=i.v*i.mult;e.x-=r,e.xMax+=r,e.y-=r,e.yMax+=r},HShapeElement.prototype.currentBoxContains=function(i){return this.currentBBox.x<=i.x&&this.currentBBox.y<=i.y&&this.currentBBox.width+this.currentBBox.x>=i.x+i.width&&this.currentBBox.height+this.currentBBox.y>=i.y+i.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var i=this.tempBoundingBox,e=999999;if(i.x=e,i.xMax=-e,i.y=e,i.yMax=-e,this.calculateBoundingBox(this.itemsData,i),i.width=i.xMax=0;e-=1){var s=this.hierarchy[e].finalTransform.mProp;this.mat.translate(-s.p.v[0],-s.p.v[1],s.p.v[2]),this.mat.rotateX(-s.or.v[0]).rotateY(-s.or.v[1]).rotateZ(s.or.v[2]),this.mat.rotateX(-s.rx.v).rotateY(-s.ry.v).rotateZ(s.rz.v),this.mat.scale(1/s.s.v[0],1/s.s.v[1],1/s.s.v[2]),this.mat.translate(s.a.v[0],s.a.v[1],s.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var o;this.p?o=[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:o=[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var a=Math.sqrt(Math.pow(o[0],2)+Math.pow(o[1],2)+Math.pow(o[2],2)),l=[o[0]/a,o[1]/a,o[2]/a],c=Math.sqrt(l[2]*l[2]+l[0]*l[0]),u=Math.atan2(l[1],c),d=Math.atan2(l[0],-l[2]);this.mat.rotateY(d).rotateX(-u)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var g=!this._prevMat.equals(this.mat);if((g||this.pe._mdf)&&this.comp.threeDElements){r=this.comp.threeDElements.length;var m,y,b;for(e=0;e=i)return this.threeDElements[e].perspectiveElem;e+=1}return null},HybridRendererBase.prototype.createThreeDContainer=function(i,e){var r=createTag("div"),s,o;styleDiv(r);var a=createTag("div");if(styleDiv(a),e==="3d"){s=r.style,s.width=this.globalData.compSize.w+"px",s.height=this.globalData.compSize.h+"px";var l="50% 50%";s.webkitTransformOrigin=l,s.mozTransformOrigin=l,s.transformOrigin=l,o=a.style;var c="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)";o.transform=c,o.webkitTransform=c}r.appendChild(a);var u={container:a,perspectiveElem:r,startPos:i,endPos:i,type:e};return this.threeDElements.push(u),u},HybridRendererBase.prototype.build3dContainers=function(){var i,e=this.layers.length,r,s="";for(i=0;i=0;i-=1)this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem)},HybridRendererBase.prototype.addTo3dContainer=function(i,e){for(var r=0,s=this.threeDElements.length;rr?(o=i/this.globalData.compSize.w,a=i/this.globalData.compSize.w,l=0,c=(e-this.globalData.compSize.h*(i/this.globalData.compSize.w))/2):(o=e/this.globalData.compSize.h,a=e/this.globalData.compSize.h,l=(i-this.globalData.compSize.w*(e/this.globalData.compSize.h))/2,c=0);var u=this.resizerElem.style;u.webkitTransform="matrix3d("+o+",0,0,0,0,"+a+",0,0,0,0,1,0,"+l+","+c+",0,1)",u.transform=u.webkitTransform},HybridRendererBase.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRendererBase.prototype.hide=function(){this.resizerElem.style.display="none"},HybridRendererBase.prototype.show=function(){this.resizerElem.style.display="block"},HybridRendererBase.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var i=this.globalData.compSize.w,e=this.globalData.compSize.h,r,s=this.threeDElements.length;for(r=0;r=d;)z/=2,N/=2,Q>>>=1;return(z+Q)/N};return D.int32=function(){return k.g(4)|0},D.quick=function(){return k.g(4)/4294967296},D.double=D,E(P(k.S),i),(C.pass||M||function(O,z,N,Q){return Q&&(Q.S&&S(Q,k),O.state=function(){return S(k,{})}),N?(e[l]=O,z):O})(D,I,"global"in C?C.global:this==e,C.state)}e["seed"+l]=y;function b(T){var C,M=T.length,B=this,I=0,k=B.i=B.j=0,D=B.S=[];for(M||(T=[M++]);Ir){var s=r;r=e,e=s}return Math.min(Math.max(i,e),r)}function radiansToDegrees(i){return i/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(i){return i*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(i,e){if(typeof i=="number"||i instanceof Number)return e=e||0,Math.abs(i-e);e||(e=helperLengthArray);var r,s=Math.min(i.length,e.length),o=0;for(r=0;r.5?d/(2-o-a):d/(o+a),o){case e:l=(r-s)/d+(r1&&(r-=1),r<1/6?i+(e-i)*6*r:r<1/2?e:r<2/3?i+(e-i)*(2/3-r)*6:i}function hslToRgb(i){var e=i[0],r=i[1],s=i[2],o,a,l;if(r===0)o=s,l=s,a=s;else{var c=s<.5?s*(1+r):s+r-s*r,u=2*s-c;o=hue2rgb(u,c,e+1/3),a=hue2rgb(u,c,e),l=hue2rgb(u,c,e-1/3)}return[o,a,l,i[3]]}function linear(i,e,r,s,o){if((s===void 0||o===void 0)&&(s=e,o=r,e=0,r=1),r=r)return o;var l=r===e?0:(i-e)/(r-e);if(!s.length)return s+(o-s)*l;var c,u=s.length,d=createTypedArray("float32",u);for(c=0;c1){for(o=0;o1?e=1:e<0&&(e=0);var l=i(e);if($bm_isInstanceOfArray(o)){var c,u=o.length,d=createTypedArray("float32",u);for(c=0;cdata.k[e].t&&idata.k[e+1].t-i?(s=e+2,o=data.k[e+1].t):(s=e+1,o=data.k[e].t);break}s===-1&&(s=e+1,o=data.k[e].t)}var a={};return a.index=s,a.time=o/elem.comp.globalData.frameRate,a}function key(i){var e,r,s;if(!data.k.length||typeof data.k[0]=="number")throw new Error("The property has no keyframe at index "+i);i-=1,e={time:data.k[i].t/elem.comp.globalData.frameRate,value:[]};var o=Object.prototype.hasOwnProperty.call(data.k[i],"s")?data.k[i].s:data.k[i-1].e;for(s=o.length,r=0;rE.length-1)&&(b=E.length-1),T=E[E.length-1-b].t,P=x-T);var C,M,B;if(y==="pingpong"){var I=Math.floor((A-T)/P);if(I%2!==0)return this.getValueAtTime((P-(A-T)%P+T)/this.comp.globalData.frameRate,0)}else if(y==="offset"){var k=this.getValueAtTime(T/this.comp.globalData.frameRate,0),D=this.getValueAtTime(x/this.comp.globalData.frameRate,0),O=this.getValueAtTime(((A-T)%P+T)/this.comp.globalData.frameRate,0),z=Math.floor((A-T)/P);if(this.pv.length){for(B=new Array(k.length),M=B.length,C=0;C=x)return this.pv;var P,T;S?(b?P=Math.abs(this.elem.comp.globalData.frameRate*b):P=Math.max(0,this.elem.data.op-x),T=x+P):((!b||b>E.length-1)&&(b=E.length-1),T=E[b].t,P=T-x);var C,M,B;if(y==="pingpong"){var I=Math.floor((x-A)/P);if(I%2===0)return this.getValueAtTime(((x-A)%P+x)/this.comp.globalData.frameRate,0)}else if(y==="offset"){var k=this.getValueAtTime(x/this.comp.globalData.frameRate,0),D=this.getValueAtTime(T/this.comp.globalData.frameRate,0),O=this.getValueAtTime((P-(x-A)%P+x)/this.comp.globalData.frameRate,0),z=Math.floor((x-A)/P)+1;if(this.pv.length){for(B=new Array(k.length),M=B.length,C=0;C1?(E-A)/(b-1):1,P=0,T=0,C;this.pv.length?C=createTypedArray("float32",this.pv.length):C=0;for(var M;PP){var I=T,k=A.c&&T===C-1?0:T+1,D=(P-M)/x[T].addedLength;B=bez.getPointInSegment(A.v[I],A.v[k],A.o[I],A.i[k],D,x[T]);break}else M+=x[T].addedLength;T+=1}return B||(B=A.c?[A.v[0][0],A.v[0][1]]:[A.v[A._length-1][0],A.v[A._length-1][1]]),B},vectorOnPath:function(b,S,A){b==1?b=this.v.c:b==0&&(b=.999);var E=this.pointOnPath(b,S),x=this.pointOnPath(b+.001,S),P=x[0]-E[0],T=x[1]-E[1],C=Math.sqrt(Math.pow(P,2)+Math.pow(T,2));if(C===0)return[0,0];var M=A==="tangent"?[P/C,T/C]:[-T/C,P/C];return M},tangentOnPath:function(b,S){return this.vectorOnPath(b,S,"tangent")},normalOnPath:function(b,S){return this.vectorOnPath(b,S,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([g],u),extendPrototype([g],d),d.prototype.getValueAtTime=c,d.prototype.initiateExpression=ExpressionManager.initiateExpression;var m=ShapePropertyFactory.getShapeProp;ShapePropertyFactory.getShapeProp=function(y,b,S,A,E){var x=m(y,b,S,A,E);return x.propertyIndex=b.ix,x.lock=!1,S===3?expressionHelpers.searchExpressions(y,b.pt,x):S===4&&expressionHelpers.searchExpressions(y,b.ks,x),x.k&&y.addDynamicProperty(x),x}}function initialize$1(){addPropertyDecorator()}function addDecorator(){function i(){return this.data.d.x?(this.calculateExpression=ExpressionManager.initiateExpression.bind(this)(this.elem,this.data.d,this),this.addEffect(this.getExpressionValue.bind(this)),!0):null}TextProperty.prototype.getExpressionValue=function(e,r){var s=this.calculateExpression(r);if(e.t!==s){var o={};return this.copyData(o,e),o.t=s.toString(),o.__complete=!1,o}return e},TextProperty.prototype.searchProperty=function(){var e=this.searchKeyframes(),r=this.searchExpressions();return this.kf=e||r,this.kf},TextProperty.prototype.searchExpressions=i}function initialize(){addDecorator()}function SVGComposableEffect(){}SVGComposableEffect.prototype={createMergeNode:function i(e,r){var s=createNS("feMerge");s.setAttribute("result",e);var o,a;for(a=0;a=d?m=S<0?s:o:m=s+b*Math.pow((c-i)/S,1/r),g[y]=m,y+=1,a+=256/(l-1);return g.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(i){if(i||this.filterManager._mdf){var e,r=this.filterManager.effectElements;this.feFuncRComposed&&(i||r[3].p._mdf||r[4].p._mdf||r[5].p._mdf||r[6].p._mdf||r[7].p._mdf)&&(e=this.getTableValue(r[3].p.v,r[4].p.v,r[5].p.v,r[6].p.v,r[7].p.v),this.feFuncRComposed.setAttribute("tableValues",e),this.feFuncGComposed.setAttribute("tableValues",e),this.feFuncBComposed.setAttribute("tableValues",e)),this.feFuncR&&(i||r[10].p._mdf||r[11].p._mdf||r[12].p._mdf||r[13].p._mdf||r[14].p._mdf)&&(e=this.getTableValue(r[10].p.v,r[11].p.v,r[12].p.v,r[13].p.v,r[14].p.v),this.feFuncR.setAttribute("tableValues",e)),this.feFuncG&&(i||r[17].p._mdf||r[18].p._mdf||r[19].p._mdf||r[20].p._mdf||r[21].p._mdf)&&(e=this.getTableValue(r[17].p.v,r[18].p.v,r[19].p.v,r[20].p.v,r[21].p.v),this.feFuncG.setAttribute("tableValues",e)),this.feFuncB&&(i||r[24].p._mdf||r[25].p._mdf||r[26].p._mdf||r[27].p._mdf||r[28].p._mdf)&&(e=this.getTableValue(r[24].p.v,r[25].p.v,r[26].p.v,r[27].p.v,r[28].p.v),this.feFuncB.setAttribute("tableValues",e)),this.feFuncA&&(i||r[31].p._mdf||r[32].p._mdf||r[33].p._mdf||r[34].p._mdf||r[35].p._mdf)&&(e=this.getTableValue(r[31].p.v,r[32].p.v,r[33].p.v,r[34].p.v,r[35].p.v),this.feFuncA.setAttribute("tableValues",e))}};function SVGDropShadowEffect(i,e,r,s,o){var a=e.container.globalData.renderConfig.filterSize,l=e.data.fs||a;i.setAttribute("x",l.x||a.x),i.setAttribute("y",l.y||a.y),i.setAttribute("width",l.width||a.width),i.setAttribute("height",l.height||a.height),this.filterManager=e;var c=createNS("feGaussianBlur");c.setAttribute("in","SourceAlpha"),c.setAttribute("result",s+"_drop_shadow_1"),c.setAttribute("stdDeviation","0"),this.feGaussianBlur=c,i.appendChild(c);var u=createNS("feOffset");u.setAttribute("dx","25"),u.setAttribute("dy","0"),u.setAttribute("in",s+"_drop_shadow_1"),u.setAttribute("result",s+"_drop_shadow_2"),this.feOffset=u,i.appendChild(u);var d=createNS("feFlood");d.setAttribute("flood-color","#00ff00"),d.setAttribute("flood-opacity","1"),d.setAttribute("result",s+"_drop_shadow_3"),this.feFlood=d,i.appendChild(d);var g=createNS("feComposite");g.setAttribute("in",s+"_drop_shadow_3"),g.setAttribute("in2",s+"_drop_shadow_2"),g.setAttribute("operator","in"),g.setAttribute("result",s+"_drop_shadow_4"),i.appendChild(g);var m=this.createMergeNode(s,[s+"_drop_shadow_4",o]);i.appendChild(m)}extendPrototype([SVGComposableEffect],SVGDropShadowEffect),SVGDropShadowEffect.prototype.renderFrame=function(i){if(i||this.filterManager._mdf){if((i||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),i||this.filterManager.effectElements[0].p._mdf){var e=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(e[0]*255),Math.round(e[1]*255),Math.round(e[2]*255)))}if((i||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),i||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var r=this.filterManager.effectElements[3].p.v,s=(this.filterManager.effectElements[2].p.v-90)*degToRads,o=r*Math.cos(s),a=r*Math.sin(s);this.feOffset.setAttribute("dx",o),this.feOffset.setAttribute("dy",a)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(i,e,r){this.initialized=!1,this.filterManager=e,this.filterElem=i,this.elem=r,r.matteElement=createNS("g"),r.matteElement.appendChild(r.layerElement),r.matteElement.appendChild(r.transformedElement),r.baseElement=r.matteElement}SVGMatte3Effect.prototype.findSymbol=function(i){for(var e=0,r=_svgMatteSymbols.length;e-1&&i%1==0&&i-1&&i%1==0&&i<=MAX_SAFE_INTEGER}function isArrayLike(i){return i!=null&&isLength(i.length)&&!isFunction$1(i)}var objectProto$a=Object.prototype;function isPrototype(i){var e=i&&i.constructor,r=typeof e=="function"&&e.prototype||objectProto$a;return i===r}function baseTimes(i,e){for(var r=-1,s=Array(i);++r-1}function listCacheSet(i,e){var r=this.__data__,s=assocIndexOf(r,i);return s<0?(++this.size,r.push([i,e])):r[s][1]=e,this}function ListCache(i){var e=-1,r=i==null?0:i.length;for(this.clear();++ec))return!1;var d=a.get(i),g=a.get(e);if(d&&g)return d==e&&g==i;var m=-1,y=!0,b=r&COMPARE_UNORDERED_FLAG$1?new SetCache:void 0;for(a.set(i,e),a.set(e,i);++m{const r=i.__vccOpts||i;for(const[s,o]of e)r[s]=o;return r};const _sfc_main=defineComponent({props:{animationData:{type:Object,default:()=>({})},animationLink:{type:String,default:""},loop:{type:[Boolean,Number],default:!0},autoPlay:{type:Boolean,default:!0},width:{type:[Number,String],default:"100%"},height:{type:[Number,String],default:"100%"},speed:{type:Number,default:1},delay:{type:Number,default:0},direction:{type:String,default:"forward"},pauseOnHover:{type:Boolean,default:!1},playOnHover:{type:Boolean,default:!1},backgroundColor:{type:String,default:"transparent"},pauseAnimation:{type:Boolean,default:!1},renderer:{type:String,default:"svg"},rendererSettings:{type:Object,default:()=>({})},assetsPath:{type:String,default:""}},emits:{onComplete:null,onLoopComplete:null,onEnterFrame:null,onSegmentStart:null,onAnimationLoaded:null},setup(i,{emit:e}){let r=ref(null);const s=ref("");let o=1;const a=k=>document.querySelector(`[data-id="${k}"]`)!==null,l=async k=>{let D=i.autoPlay;i.playOnHover&&(D=!1);let O={};if(isEqual(i.animationData,{})===!1&&(O=cloneDeep(i.animationData)),i.animationLink!="")try{O=await(await fetch(i.animationLink)).json()}catch(Q){console.error(Q);return}let z=i.loop;typeof z=="number"&&z>0&&(z=z-1),i.delay>0&&(D=!1);const N={container:k,renderer:i.renderer,loop:z,autoplay:D,animationData:O,assetsPath:i.assetsPath};isEqual(i.rendererSettings,{})===!1&&(N.rendererSettings=i.rendererSettings),r=Lottie.loadAnimation(N),setTimeout(()=>{D=i.autoPlay,i.playOnHover?r.pause():D?r.play():r.pause(),e("onAnimationLoaded")},i.delay),r.setSpeed(i.speed),i.direction==="reverse"&&r.setDirection(-1),i.direction==="normal"&&r.setDirection(1),(i.pauseAnimation||i.playOnHover)&&r.pause(),r.addEventListener("loopComplete",()=>{i.direction==="alternate"&&(r.stop(),o=o*-1,r.setDirection(o),r.play()),e("onLoopComplete")}),r.addEventListener("complete",()=>{e("onComplete")}),r.addEventListener("enterFrame",()=>{e("onEnterFrame")}),r.addEventListener("segmentStart",()=>{e("onSegmentStart")})},c=computed(()=>{let k=i.width,D=i.height;return typeof i.width=="number"&&(k=`${i.width}px`),typeof i.height=="number"&&(D=`${i.height}px`),{"--lottie-animation-container-width":k,"--lottie-animation-container-height":D,"--lottie-animation-container-background-color":i.backgroundColor}}),u=()=>{r&&i.pauseOnHover&&r.pause(),r&&i.playOnHover&&r.play()},d=()=>{r&&i.pauseOnHover&&r.play(),r&&i.playOnHover&&r.pause()};watch(()=>i.pauseAnimation,()=>{if((i.pauseOnHover||i.playOnHover)&&i.pauseAnimation){console.error("If you are using pauseAnimation prop for Vue3-Lottie, please remove the props pauseOnHover and playOnHover");return}r&&(i.pauseAnimation?r.pause():r.play())});const g=()=>{r&&r.play()},m=()=>{r&&r.pause()},y=()=>{r&&r.stop()},b=()=>{r&&r.destroy()},S=(k=1)=>{if(k<=0)throw new Error("Speed must be greater than 0");r&&r.setSpeed(k)},A=k=>{r&&(k==="forward"?r.setDirection(1):k==="reverse"&&r.setDirection(-1))},E=(k,D=!0)=>{r&&r.goToAndStop(k,D)},x=(k,D=!0)=>{r&&r.goToAndPlay(k,D)},P=(k,D=!1)=>{r&&r.playSegments(k,D)},T=(k=!0)=>{r&&r.setSubframe(k)},C=(k=!0)=>{if(r)return r.getDuration(k)},M=(k,D=0)=>{r&&r.renderer.elements[D].updateDocumentData(k)},B=k=>{for(var D="",O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",z=O.length,N=0;N{if(i.pauseOnHover&&i.playOnHover)throw new Error("You cannot set pauseOnHover and playOnHover for Vue3-Lottie at the same time.");if(i.animationLink===""&&isEqual(i.animationData,{}))throw new Error("You must provide either animationLink or animationData");const D=setInterval(()=>{if(a(k)){clearInterval(D);const O=document.querySelector(`[data-id="${k}" ]`);O&&l(O)}},0)};return onMounted(async()=>{s.value=B(20),I(s.value)}),{elementid:s,hoverEnded:d,hoverStarted:u,getCurrentStyle:c,play:g,pause:m,stop:y,destroy:b,setSpeed:S,setDirection:A,goToAndStop:E,goToAndPlay:x,playSegments:P,setSubFrame:T,getDuration:C,updateDocumentData:M}}}),_hoisted_1=["data-id"];function _sfc_render(i,e,r,s,o,a){return openBlock(),createElementBlock("div",{"data-id":i.elementid,class:"lottie-animation-container",style:normalizeStyle(i.getCurrentStyle),onMouseenter:e[0]||(e[0]=(...l)=>i.hoverStarted&&i.hoverStarted(...l)),onMouseleave:e[1]||(e[1]=(...l)=>i.hoverEnded&&i.hoverEnded(...l))},null,44,_hoisted_1)}var Vue3Lottie=_export_sfc(_sfc_main,[["render",_sfc_render]]);const v="5.7.1",fr=25,ip=0,op=50,w=120,h=120,nm="转动",ddd=0,assets=[],layers=[{ddd:0,ind:1,ty:4,nm:"转动",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[60,60,0],ix:2},a:{a:0,k:[-16,-36,0],ix:1},s:{a:0,k:[23.737,23.737,100],ix:6}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[447.14,447.14],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"st",c:{a:0,k:[.125490196078,.741176470588,1,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:46,ix:5},lc:2,lj:1,ml:4,bm:0,nm:"描边 1",mn:"ADBE Vector Graphic - Stroke",hd:!1},{ty:"tr",p:{a:0,k:[-16,-36],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:!1},{ty:"tm",s:{a:0,k:0,ix:1},e:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[50]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:25,s:[50],e:[0]},{t:50}],ix:2},o:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[720]},{t:50}],ix:3},m:1,ix:2,nm:"修剪路径 1",mn:"ADBE Vector Filter - Trim",hd:!1}],ip:0,op:50,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"底",sr:1,ks:{o:{a:0,k:30,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[60,60,0],ix:2},a:{a:0,k:[-16,-36,0],ix:1},s:{a:0,k:[23.737,23.737,100],ix:6}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[447.14,447.14],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"st",c:{a:0,k:[1,1,1,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:46,ix:5},lc:1,lj:1,ml:4,bm:0,nm:"描边 1",mn:"ADBE Vector Graphic - Stroke",hd:!1},{ty:"tr",p:{a:0,k:[-16,-36],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:!1}],ip:0,op:50,st:0,bm:0}],markers=[],loading={v,fr,ip,op,w,h,nm,ddd,assets,layers,markers},AbnormalPop=defineComponent({name:"abnormal-pop",props:{},emits:["close","confirm"],setup(i,{emit:e}){return()=>createVNode(Fragment,null,[evaluatingData.socketErrorStatus===0&&createVNode("div",{class:styles$j.fraction},[createVNode("img",{class:styles$j.close,src:popImgs.icon_close,onClick:()=>e("close")},null),createVNode("img",{class:styles$j.bg,src:popImgs.icon_bg},null),createVNode("div",{class:styles$j.content},[createVNode("div",{class:styles$j.title},[createTextVNode("您的网络连接异常")]),createVNode("div",{class:styles$j.desc},[createTextVNode("请确保网络正常后重新连接")])]),createVNode("div",null,[createVNode("img",{src:popImgs.icon_btn,class:styles$j.btn,onClick:()=>e("confirm",!0)},null)])]),evaluatingData.socketErrorStatus===1&&createVNode("div",{class:styles$j.loadColumn},[createVNode(Vue3Lottie,{class:styles$j.loadIcon,animationData:loading,loop:!0},null),createVNode("img",{class:styles$j.close,src:popImgs.icon_close,onClick:()=>e("close")},null),createVNode("p",null,[createTextVNode("正在连接服务器,请稍后…")])]),evaluatingData.socketErrorStatus===2&&createVNode("div",{class:styles$j.loadColumn},[createVNode("img",{class:styles$j.successIcon,src:popImgs.icon_success},null),createVNode("p",null,[createTextVNode("连接成功")])])])}}),icon_bg=""+new URL("../svg/icon_bg-026faf73.svg",import.meta.url).href,icon_close=""+new URL("../svg/icon_close-0f82fcc9.svg",import.meta.url).href,icon_btn$1=""+new URL("../svg/icon_btn-f3b09ea8.svg",import.meta.url).href,icon_success=""+new URL("../svg/icon_success-6e9ec0d6.svg",import.meta.url).href,homework="_homework_spg76_1",styles$i={homework},studentQueryUserInfo=async()=>await request.get("/user/getUserInfo"),api_musicPracticeRecordSave=i=>request.post("/musicPracticeRecord/save",{requestType:"json",data:i}),api_lessonTrainingSubmitTraining=i=>request.post("/lessonTraining/submitTraining",{requestType:"json",data:i}),api_lessonTrainingTrainingStudentDetail=i=>request.get(`/lessonTraining/trainingContentStudentDetail?id=${i}`),api_musicPracticeRecordVideoUpload=i=>request.post("/musicPracticeRecord/videoUpload",{data:i,requestType:"json"}),sysSuggestionAdd=i=>request.post("/sysSuggestion/save",{data:i,requestType:"json"}),api_musicPracticeRecordDetail=i=>request.get("/musicPracticeRecord/detail/"+i),api_subjectList=i=>request.post("/subject/list",{data:i,requestType:"json"}),api_musicSheetPage=i=>request.post("/musicSheet/page",{data:i,requestType:"json"}),getSuggestionList=i=>request.post("/sysSuggestionType/page",{data:i,requestType:"json"}),WorkHome=defineComponent({name:"HomeWork",props:{workeData:{type:Object,default:()=>({})}},emits:["change"],setup(i,{expose:e}){const r=reactive({trainingTimes:"",trainingSpeed:0,times:0,workRecord:"",isAddOk:0,starTime:0,start:"",end:""}),s=()=>{const u=["studnetT-0","studnetT-2","studnetT-4"];for(let d=0;d{const u=i.workeData;if(u.id){let d={};try{d=JSON.parse(u.trainingContent)}catch(g){console.log("🚀 ~ error:",g)}r.times=d.trainingTimes||0,r.trainingTimes=(u.trainingTimes/60).toFixed(1)||"0",r.trainingSpeed=d.practiceSpeed,r.start=Number(d.practiceChapterBegin),r.end=Number(d.practiceChapterEnd),state$1.userChooseEndIndex=r.end,r.isAddOk===0&&setSection(r.start,r.end,r.trainingSpeed)}},a=async()=>{const u=await api_lessonTrainingTrainingStudentDetail(i.workeData.id);(u==null?void 0:u.code)===200&&(r.trainingTimes=(u.data.trainingTimes/60).toFixed(1)||"0")},l=async()=>{let u=Math.ceil((Date.now()-r.starTime)/1e3);try{const d=await api_lessonTrainingSubmitTraining({id:i.workeData.id,trainingTimes:u});(d==null?void 0:d.code)==200&&a()}catch(d){}};watch(()=>state$1.playState,()=>{state$1.playState==="play"?r.starTime=Date.now():l()});const c=()=>{state$1.playState==="play"&&(console.log("退出"),l())};return onMounted(()=>{s(),o()}),e({handleAdd:c}),()=>createVNode("div",{class:styles$i.homework},[r.trainingTimes,createTextVNode(" / "),r.times,createTextVNode(" 分钟")])}}),WorkEaluating=defineComponent({name:"EvaluatingWork",props:{workeData:{type:Object,default:()=>({})}},setup(i,{expose:e}){var l;getQuery();const r=reactive({difficulty:"",evaluatingRecord:(l=i.workeData)==null?void 0:l.id,start:"",end:"",evaluateSpeed:0}),s=()=>{const c=["studnetT-0"];for(let u=0;u{let c={};try{c=JSON.parse(i.workeData.trainingContent)}catch(u){console.log("🚀 ~ error:",u)}["BEGINNER","ADVANCED","PERFORMER"].includes(c.evaluateDifficult)&&(r.difficulty=c.evaluateDifficult,state$1.setting.evaluationDifficulty=c.evaluateDifficult,r.evaluateSpeed=c.evaluateSpeed,r.start=Number(c.practiceChapterBegin),r.end=Number(c.practiceChapterEnd),state$1.userChooseEndIndex=r.end,setSection(r.start,r.end,r.evaluateSpeed))},a=async c=>{try{const u=await api_lessonTrainingSubmitTraining({id:r.evaluatingRecord,trainingTimes:(c==null?void 0:c.score)||0,recordId:evaluatingData.resultData.recordId})}catch(u){console.log(u)}};return watch(()=>evaluatingData.resultData.recordId,()=>{evaluatingData.resulstMode&&evaluatingData.resultData.recordId&&evaluatingData.isComplete&&a(evaluatingData.resultData)}),onMounted(()=>{s(),o()}),()=>createVNode("div",null,null)}}),headerTop="_headerTop_h7al3_1",headerDown="_headerDown_h7al3_1",headRightTop="_headRightTop_h7al3_13",headRightTopHide="_headRightTopHide_h7al3_18",back="_back_h7al3_36",hidenBack="_hidenBack_h7al3_48",headRight="_headRight_h7al3_13",pcHeadRight="_pcHeadRight_h7al3_58",btn$7="_btn_h7al3_62",iconBtn="_iconBtn_h7al3_77",btnWrap="_btnWrap_h7al3_89",progress="_progress_h7al3_94",iconContent="_iconContent_h7al3_102",arrowIcon="_arrowIcon_h7al3_102",tipSpec="_tipSpec_h7al3_128",pcBtn="_pcBtn_h7al3_131",setBtn="_setBtn_h7al3_140",disabled$1="_disabled_h7al3_143",badge="_badge_h7al3_147",playBtn="_playBtn_h7al3_155",playLeftButton="_playLeftButton_h7al3_170",playRightButton="_playRightButton_h7al3_175",playButtonHide="_playButtonHide_h7al3_180",resetBtn="_resetBtn_h7al3_184",pauseLeftButton="_pauseLeftButton_h7al3_195",pauseRightButton="_pauseRightButton_h7al3_200",pcTransPop="_pcTransPop_h7al3_217",styles$h={headerTop,headerDown,headRightTop,headRightTopHide,back,hidenBack,headRight,pcHeadRight,btn:btn$7,iconBtn,btnWrap,progress,iconContent,arrowIcon,"botton-tips":"_botton-tips_h7al3_114",tipSpec,pcBtn,setBtn,disabled:disabled$1,badge,playBtn,playLeftButton,playRightButton,playButtonHide,resetBtn,pauseLeftButton,pauseRightButton,pcTransPop},iconBack$1=""+new URL("../svg/icon-back-cc8f7b2a.svg",import.meta.url).href,container$4="_container_1rrce_1",noticeBar="_noticeBar_1rrce_10",pcContainer$1="_pcContainer_1rrce_14",icon$1="_icon_1rrce_17",status="_status_1rrce_22",styles$g={container:container$4,noticeBar,pcContainer:pcContainer$1,icon:icon$1,status},Title=defineComponent({name:"detail-title",props:{text:{type:String,default:""},rightView:{type:Boolean,default:!0},onClick:{type:Function}},render(){return createVNode("div",{class:[styles$g.container,state$1.platform===IPlatform.PC&&styles$g.pcContainer]},[createVNode(NoticeBar,{text:this.text,color:"#000",class:styles$g.noticeBar,background:"none"},null)])}}),iconAdd="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAuCAMAAABkkgs4AAABmFBMVEUAAAA0rP9f6v8mnf8nnv9T4f8nn/9Q3f8qpP8qpP9X5P8qpP9O2/8xrv8uqv9a6/9Cx/88vv8rpv9X5/8yrv9S3v9X5/9N1/8xr/8noP9T3/9BxP8/xP9N1v80sP8pov9Z6f9L1P9AxP8+wP8zsP8oof9W5f8mnf9Z6v9W5P9M1v8/w/89wf9Y5/9M1v9Z6v9Hz/82tf9O2f9L1f9b6/9Bxf8+wP9a7P9b6f9W5f////8po/9CyP9P2/9M1/9J0v9Hz/82tf84uf8vrP8rpv9R3v9K1P8ysP8sqP80tP8zsv9T4f8wrv8mn/49wf9Axf86vP88v/9U4/9Eyv8uqf9N2P8/w/9I0P8oof8lnf5FzP82t/87vf9W5P9FzP5Q3P9O2f9Gzf85uv9L1f9X5v9S3/8uqv9Y6P9Bxv+M0f+I1v+O3/+G0v/w+v+R4/+O1f+M2/98yv656f+L2v+L2f+N3v6q6v+k4f950v90zf9BtP+J0f6J2P9vyP5cvv5Tvf5Ouv6B4f+A3/+f2v992v+e2P5hxv5Jvf4Die87AAAAOnRSTlMAEBC82MPCv6JdUVEQ2MK/v7++urqhkJCQkFxcUTs7O/Pz8/Pz8/Ly2dnZ2dnW1sXFxbq6oqKhXTs7RKlO9AAAAzNJREFUSMd1lWdbWkEQhVfsMRprijW99x4pAiqXJtIFBFtUgoQQNXajpv/tzOxsuRT38/uc550zd/cy82kYetvz6OaszZZZds5N3HjYOjBoYfXPcE82Gwklk7O2WGzB6ZzweBwJu731Qh109MW8eyUbAXr2ky2WcUI0wEv2xbXmD9XsVZ8L4HAkRPDCMsIfHQBPBwKXK2X7/QRngebJGYITAK8Fon0WE9tpGD6kwyQNEy6gB8L26elANPpE0/3BoN9f6QF9TIA0eAAcyOX6lO9kMGj43af/yANhjCZp8sitCu/R+Ppk0Dg7Kpf/ChjKk3BCwvn3HO7yAnxWKJfLB1w6hNIxlPZQeSi9uvoM2Y4pb3zy8Ajg/RV3mEvvlUq7WnqRS+fzuJ1ehDcLhcKBywXSsJb9cTi/q6Xzl6C2KYBPgd10Acw9thEuIkwbF3DewtqtU14vBB8dYnngIWH0gKYdommA37E2K9AAnxiy6cg3SgZYekAyRL9mLQifFDYNgH3z6EHwji7PrqSbEI4fGkGAcUIJFxW8JOH77E4KYOgDYClNyXrjJJ3LX2czKR6NG5df3jFPtiGsyotitIIh+vtnOBsbx1sIbxV3il/g/BBNEww0wLDxX+N1z66ekKVTAHOPUn24pD14Mo8+H07wzwPh9ExKePw5R4M+U4Ix2eqNgwcOiBPSgDvFIk74k3+mCp4R0upubSD8Vd0tXR7BVB7fuMsM0xKlNCQDbSVp2vi8gPG6ZCo3zu4J2MthP8BuE7w8hxtP0MbvsibpsU4eCtYPk0N4PGCN4KE2jtIC3qbXw3zHm1kbwtgHSUO0hPnDBH14ZHkDrD1tLs9A6QOE95M0oVNLD7KGdK00PAV7oWSNtIXVSIs7TjA17eFwKz4yFK3K8yEcBlh6yIvIfwEtQFvJQ1wXTMZoG3nQhM0Mz5h54+puhbQHRY8wfq7VSOunNyabvsLEadTlUTSH0SPGPQB+qX8TTRRNMElnIzQhPUxPLzJNNxIMIxKsXnVq+pViydsMuxRM0sJXn7EWkEZY/7dEec9HWO3p6MXk6vK6h2tJUm9v6+q87ffxJUZuPe5+M1Qh+x9vXgp6TP6+qAAAAABJRU5ErkJggg==",__vite_glob_0_1$1=""+new URL("../svg/background-b89deedf.svg",import.meta.url).href,__vite_glob_0_2$1=""+new URL("../svg/close2-9bf3f858.svg",import.meta.url).href,__vite_glob_0_3$1=""+new URL("../svg/cursor-icon-1-b64224eb.svg",import.meta.url).href,__vite_glob_0_4$1=""+new URL("../svg/cursor-icon-2-03a5f875.svg",import.meta.url).href,__vite_glob_0_5$1=""+new URL("../svg/cursor-icon-3-020a25ee.svg",import.meta.url).href,__vite_glob_0_6$1=""+new URL("../svg/down-1c21ed5a.svg",import.meta.url).href,__vite_glob_0_7$1=""+new URL("../svg/guding-active-e8543b78.svg",import.meta.url).href,__vite_glob_0_8$1=""+new URL("../svg/guding-a3ea7233.svg",import.meta.url).href,__vite_glob_0_10$1=""+new URL("../svg/icon-staff-active-5035908c.svg",import.meta.url).href,__vite_glob_0_11$1=""+new URL("../svg/icon-staff-5a2b7c94.svg",import.meta.url).href,__vite_glob_0_12$1=""+new URL("../svg/icon_evaluatingOff-0b1c80e6.svg",import.meta.url).href,__vite_glob_0_13$1=""+new URL("../svg/icon_evaluatingOn-bb155620.svg",import.meta.url).href,__vite_glob_0_14$1=""+new URL("../svg/icon_menu-30009ed1.svg",import.meta.url).href,__vite_glob_0_15$1=""+new URL("../svg/icon_minus-35cb01c5.svg",import.meta.url).href,__vite_glob_0_16$1=""+new URL("../svg/icon_pause-b4b9ea85.svg",import.meta.url).href,__vite_glob_0_17$1=""+new URL("../svg/icon_play-4e74a97f.svg",import.meta.url).href,__vite_glob_0_18$1=""+new URL("../svg/icon_plus-8646d352.svg",import.meta.url).href,__vite_glob_0_19$1=""+new URL("../svg/icon_resetbtn-b9bae964.svg",import.meta.url).href,__vite_glob_0_20$1=""+new URL("../svg/icon_speed-ba38a91a.svg",import.meta.url).href,__vite_glob_0_21$1=""+new URL("../svg/icon_speedRest-c6c9e93d.svg",import.meta.url).href,__vite_glob_0_22$1=""+new URL("../svg/icon_zhuanpu-61d31826.svg",import.meta.url).href,iconInfo=""+new URL("../svg/info-ba658f25.svg",import.meta.url).href,__vite_glob_0_24$1=""+new URL("../svg/modeType-7cd93c3f.svg",import.meta.url).href,__vite_glob_0_25$1=""+new URL("../svg/music-856b3e8e.svg",import.meta.url).href,__vite_glob_0_26$1=""+new URL("../svg/off-8d507628.svg",import.meta.url).href,__vite_glob_0_27$1=""+new URL("../svg/on-13b29450.svg",import.meta.url).href,PcEndIcon=""+new URL("../png/pc_end_icon-c048a862.png",import.meta.url).href,__vite_glob_0_29$1=""+new URL("../png/pc_icon_pausebtn-6844b114.png",import.meta.url).href,__vite_glob_0_30$1=""+new URL("../png/pc_icon_playbtn-727f07a3.png",import.meta.url).href,__vite_glob_0_31$1=""+new URL("../png/pc_icon_resetbtn-e6358a0f.png",import.meta.url).href,__vite_glob_0_32=""+new URL("../svg/section0-6aca7de8.svg",import.meta.url).href,__vite_glob_0_33=""+new URL("../svg/section1-65bdce67.svg",import.meta.url).href,__vite_glob_0_34=""+new URL("../svg/section2-15e16c95.svg",import.meta.url).href,__vite_glob_0_35=""+new URL("../svg/shenggui-31fe8d1c.svg",import.meta.url).href,__vite_glob_0_36=""+new URL("../svg/shuodiao-active-36a3e38b.svg",import.meta.url).href,__vite_glob_0_37=""+new URL("../svg/shuodiao-da855d30.svg",import.meta.url).href,iconSubtract="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAuCAMAAABkkgs4AAABdFBMVEUAAAAzqf8mnv9Z6f9T3/9V4P9Y5/9T4P9Bxf9M1/9W5P9X5P8qpP9e8P8sp/8nnv8xr/8noP9S3v8rpv85uf8rpv8mn/9X5/8/wv8sp/9X5/9N1/8wr/8noP8/xP8sp/8pov9Dy/9W5f9M1f9AxP8+wP8yr/9a6v9L1f8/w/8+wv8mnP9M1f9Z6v9Hzv8wrv80sf8wq/9P2f8mnf8mnP9Fzf85uv84tv8wqf////9R3v83uP9Ey/9CyP8uq/9Gzv9P2/89wP8xr/87vf81tf8zsv8/w/85uv9N2P9Bxv8wrf9L1f8tqf8sp/9I0P9AxP8pov8mn/5V5P9T4P86u/88vv8rpf82tv8lnf8oof8+wf80s/8qpP9FzP9Dyf8ysP9K0/9O2f9M1v9J0f9J0v9U4f9Q3P9Y6P9X5v9U4v9W5f+Z5f+b6P+X4//r+v/o9v9+3/9m2P+R5v9w4P9u2f9b2f9S0v+M5f5sxf6E3/942P5a0P7a/p9pAAAAOXRSTlMAEMG8OxDYv7+8XVFREPvz2NjFxcK+uqKioZCQkJBcXDsR8/Pz8/Py2dnZ2dbFxb+6uqKiXVFROzvHpnYuAAADFUlEQVRIx22Vd1saQRCHF3uJvSdGY3rv9QA5ARU8OWkqJKCgh4SWiDXlyzuzs8vewc3f7zPPu7+Zm2P2WlmaH3j+KJTe9HrDP9Yfj79ZWPYw9/o04I/ubHxf2w2lvfsArwe3VrdHZ265oD2v8z6/P8rhzU2gEQY6tjd1r529YwbyvgNsvbaGHtg6GFxFOBe/60B7By0zEPD5CN5NQ2uAD9ED4eysx8a+NKzjq+Z/7rHR8jhEj1gsl8smJhQ9eGQUmo1G48Lv39kBGD3C6EHS8Ww2MdvyjUSMZq3WaPw7EJ1DUlp6JDLCu0ePHF3WoE7zPgovBNL74TBJb8cQTmQok0m9WDyrAxvIH4BHKzxMmuBcHOAuZIc1vXher9f+8vCiUZJW4UmPDE6nX9P1a4CvOpMmDwFj696UdqKf1esX1rEZQFh4eCEPAUMeCGc8bCilafp5/dooHNNYVNLUeVW+MPORzZUA1i+LAAsP6Owu/YH1l8ADwjMMgKWHgslDSvdVNICLEcOwTDOPHq3wVNJ73OMFuw+dNYS5NI4FaLkeTukxlqyksDVMvGCZCLdJb9nCY8kkly7CLtmld92SZlUBwxNPf33rqN9/wCNG0g4Y2U6awovHEf6ZTOILUdodVh4AkzTC7ho8PAlXeR7cw8KJwxP5TsNBwImr9cgmWBlgaA0w5UFJ0/XAPACW0gCjB0pzuGNN123hIVytlNRYaPPIA9dUeSD8pGyTLpgmwPIgpOVOb9HEx1gfeABMHpbwwM7SQ63pBOsGWM6FPNSakkdQhtfF5spllbRBsJR2XLG9+AIbKlPSMjySdoQnD9MyGykraRUewio8kh71MLs00BKO4jVFWEnP4JEBD4Q1lBbhAUzSMjxcU/4LeCWSPpHrkbclrX4BU3QY0SOVapdGWEoj/JXxuo0emkpafeNp5bHIRHWDh3yhYz3UxN8xWSN9zvBo4vZrOu5hiu6ukLSauOOavpWs8KbwXNc0vNjx05yU0nRNcfPIY/oL66zhfvJwfC6h6c/MvXqH3g8+fWAJ+OGzgfmlFWarG2rqAKqUjHVOAAAAAElFTkSuQmCC",__vite_glob_0_39=""+new URL("../svg/task-bg-859300d7.svg",import.meta.url).href,__vite_glob_0_40=""+new URL("../svg/tickoff-0fda3f41.svg",import.meta.url).href,__vite_glob_0_41=""+new URL("../svg/tickon-fbcde2e9.svg",import.meta.url).href,iconTv=""+new URL("../svg/tv-6937ad6f.svg",import.meta.url).href,iconYijian=""+new URL("../svg/yijian-9ffcec54.svg",import.meta.url).href,icons$2=Object.assign({"./add.png":iconAdd,"./background.svg":__vite_glob_0_1$1,"./close2.svg":__vite_glob_0_2$1,"./cursor-icon-1.svg":__vite_glob_0_3$1,"./cursor-icon-2.svg":__vite_glob_0_4$1,"./cursor-icon-3.svg":__vite_glob_0_5$1,"./down.svg":__vite_glob_0_6$1,"./guding-active.svg":__vite_glob_0_7$1,"./guding.svg":__vite_glob_0_8$1,"./icon-back.svg":iconBack$1,"./icon-staff-active.svg":__vite_glob_0_10$1,"./icon-staff.svg":__vite_glob_0_11$1,"./icon_evaluatingOff.svg":__vite_glob_0_12$1,"./icon_evaluatingOn.svg":__vite_glob_0_13$1,"./icon_menu.svg":__vite_glob_0_14$1,"./icon_minus.svg":__vite_glob_0_15$1,"./icon_pause.svg":__vite_glob_0_16$1,"./icon_play.svg":__vite_glob_0_17$1,"./icon_plus.svg":__vite_glob_0_18$1,"./icon_resetbtn.svg":__vite_glob_0_19$1,"./icon_speed.svg":__vite_glob_0_20$1,"./icon_speedRest.svg":__vite_glob_0_21$1,"./icon_zhuanpu.svg":__vite_glob_0_22$1,"./info.svg":iconInfo,"./modeType.svg":__vite_glob_0_24$1,"./music.svg":__vite_glob_0_25$1,"./off.svg":__vite_glob_0_26$1,"./on.svg":__vite_glob_0_27$1,"./pc_end_icon.png":PcEndIcon,"./pc_icon_pausebtn.png":__vite_glob_0_29$1,"./pc_icon_playbtn.png":__vite_glob_0_30$1,"./pc_icon_resetbtn.png":__vite_glob_0_31$1,"./section0.svg":__vite_glob_0_32,"./section1.svg":__vite_glob_0_33,"./section2.svg":__vite_glob_0_34,"./shenggui.svg":__vite_glob_0_35,"./shuodiao-active.svg":__vite_glob_0_36,"./shuodiao.svg":__vite_glob_0_37,"./subtract.png":iconSubtract,"./task-bg.svg":__vite_glob_0_39,"./tickoff.svg":__vite_glob_0_40,"./tickon.svg":__vite_glob_0_41,"./tv.svg":iconTv,"./yijian.svg":iconYijian}),headImg=i=>icons$2[`./${i}`]||"",speedContainer="_speedContainer_1bzeg_1",btn$6="_btn_1bzeg_9",slider$1="_slider_1bzeg_17",customButton="_customButton_1bzeg_25",styles$f={speedContainer,btn:btn$6,slider:slider$1,customButton},Speed=defineComponent({name:"speed",setup(i){const e=reactive({value:state$1.speed}),r=()=>{e.value=Math.max(e.value-1,45)},s=()=>{e.value=Math.min(e.value+1,270)},o=()=>{e.value=Math.floor(state$1.originSpeed)};watch(()=>e.value,()=>{handleSetSpeed(e.value)});const a=ref();return useClickAway(a,()=>{headData.speedShow=!1}),()=>createVNode("div",{class:styles$f.speedContainer,ref:a},[createVNode(Button$1,{class:styles$f.btn,icon:headImg("icon_plus.svg"),disabled:state$1.speed==270,onClick:s},null),createVNode(Slider,{class:styles$f.slider,max:270,min:45,vertical:!0,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,reverse:!0},{button:()=>createVNode("div",{class:styles$f.customButton},[e.value])}),createVNode(Button$1,{class:styles$f.btn,icon:headImg("icon_minus.svg"),disabled:state$1.speed==45,onClick:r},null),createVNode(Button$1,{class:styles$f.btn,icon:headImg("icon_speedRest.svg"),onClick:o},null)])}}),content$4="_content_jcfco_4",pcContent$1="_pcContent_jcfco_64",pcDragTop="_pcDragTop_jcfco_67",noticebar="_noticebar_jcfco_79",reactionTime="_reactionTime_jcfco_84",radioGroup="_radioGroup_jcfco_90",sliderWrap="_sliderWrap_jcfco_125",slider="_slider_jcfco_125",sliderBtn="_sliderBtn_jcfco_132",sliderVolume="_sliderVolume_jcfco_141",btnsbar="_btnsbar_jcfco_144",btn$5="_btn_jcfco_144",disabled="_disabled_jcfco_174",operateHz="_operateHz_jcfco_178",styles$e={"header-settting":"_header-settting_jcfco_1",content:content$4,pcContent:pcContent$1,pcDragTop,noticebar,reactionTime,radioGroup,sliderWrap,slider,sliderBtn,sliderVolume,btnsbar,btn:btn$5,disabled,operateHz},container$3="_container_dub61_1",closeBtn$1="_closeBtn_dub61_33",jianyi="_jianyi_dub61_41",styles$d={container:container$3,closeBtn:closeBtn$1,jianyi},iconBack="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABYCAMAAACeR2QMAAAAjVBMVEUAAAAAAAAAAAAPDw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISHJyckYGBjj4+Pg4ODd3d3Z2dnS0tLAwMAyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAADt7e3l5eXW1tbOzs6xsbHx8fHp6enExMSoqKj5+fn09PTn5+e5ubmkpKSTk5P///8Yw+S0AAAALnRSTlNpAFFtYltmPzYyKyESDnHDb9vY1dLLu3deVkhFJyYR593Ox7Lr4r+q9/Dft6meP3PX/gAAAZpJREFUWMPF2NeOwjAQBdCLk5BCEmpoSy/L1vz/5+0yL0gpdnRHiPsIOpLl2GN70HNnN4hDswr8Pipx4TRZ+zXTCWdRAAAM3hoAHE4CgMSbJUDi1AAsjvpgcWYAFg980DgGaByCx28gsVgeh+BxDB4PwOPMV2ADHkfgcdpXYAMeb6DASwVOoMCBAm+hwEaBMyhwxGP7dC2mH0VuwSksGZZleWjX9o88Kf8zHrXitQ3/lPdMvDbswzpu0dMWvYM9J9GzZu0sXYXoI5oSu7B3FF2gISGceib6hHoM3HoqeohaVnBnNBH9XvsjQBc9Fj1HJT466YPoW+XnjjU3v97xJ4cXlzu+UMNe7GXYv60T5rY35lPlV7FnZpHkXy0WodsexH4TG+OxQIgt6T2WZj07blM8ypB7O1IF8Cy24EqvTNbR44r+XIofedzkw/3ce9pBl0F3uL/qWtELNDiB7hL3musjP+H8lVl/WacGzj9Q+KeR/lGmfw7qH6K81j++qVnjGw58q4NvsvDtHb6xpG9p6Ztp+jaevoHIty7/ACq7JkZiIbpNAAAAAElFTkSuQmCC",ScreenModel=defineComponent({name:"screenModel",emits:["close"],setup(i,{emit:e}){const r={dev:"https://dev.kt.colexiu.com",test:"https://test.lexiaoya.cn",online:"https://kt.colexiu.com"};let s=location.origin.includes("//dev")?"dev":location.origin.includes("//test")?"test":location.origin.includes("//online")||location.origin.includes("//kt")||location.origin.includes("//mec")?"online":"dev";const o=/(localhost|192)/.test(location.host)?"https://test.lexiaoya.cn":r[s];return()=>createVNode(Fragment,null,[createVNode("img",{class:styles$d.closeBtn,src:iconBack,onClick:()=>e("close")},null),createVNode("div",{class:styles$d.container},[createVNode(Tabs,{swipeable:!0,animated:!0},{default:()=>[createVNode(Tab,{name:"投屏",title:"投屏"},{default:()=>[createVNode("iframe",{src:`${o}/classroom-app/#/guide`},null)]}),createVNode(Tab,{name:"帮助",title:"帮助"},{default:()=>[createVNode("iframe",{src:`${o}/classroom-app/#/help-center?platformType=ANALYSIS`},null)]})]})])])}}),closeBtn="_closeBtn_v5zss_1",content$3="_content_v5zss_20",pcContent="_pcContent_v5zss_48",tags="_tags_v5zss_55",active$1="_active_v5zss_75",pcTags="_pcTags_v5zss_81",btn$4="_btn_v5zss_84",styles$c={closeBtn,content:content$3,pcContent,tags,active:active$1,pcTags,btn:btn$4},iconSubmit=""+new URL("../svg/icon-submit-23a9105e.svg",import.meta.url).href,Recommendation=defineComponent({name:"recommendation",emits:["close"],setup(i,{emit:e}){const r=ref([]),s=reactive({loading:!1,active:"识别不准",message:"",suggestId:null}),o=async()=>{try{const l=await getSuggestionList({rows:9999,page:1});r.value=l.data.rows||[]}catch(l){}},a=async()=>{var l;if(!s.message||!s.suggestId){const c=s.suggestId?"请先填写意见反馈":"请先选择问题类型";showToast({message:c,position:"top"});return}s.loading=!0;try{await sysSuggestionAdd({content:s.message,type:"SMART_PRACTICE",suggestionTypeId:s.suggestId,mobileNo:(l=storeData.user)==null?void 0:l.phone}),showToast({message:"意见反馈已提交",position:"top"}),e("close"),s.suggestId=null,s.message=""}catch(c){}s.loading=!1};return onMounted(()=>{o()}),()=>createVNode("div",{class:[styles$c.content,state$1.platform===IPlatform.PC&&styles$c.pcContent]},[state$1.platform===IPlatform.PC&&createVNode("div",{class:"top_drag"},null),createVNode(Tabs,{lineHeight:0,color:"#1A1A1A"},{default:()=>[createVNode(Tab,{title:"意见反馈"},{default:()=>[createVNode(Cell,{border:!1,title:"请选择问题类型"},null),createVNode("div",{class:styles$c.tags},[r.value.map(l=>createVNode("span",{class:[styles$c.tag,s.suggestId===l.id&&styles$c.active],onClick:()=>s.suggestId=l.id},[l.name]))]),createVNode(Field,{modelValue:s.message,"onUpdate:modelValue":l=>s.message=l,rows:"2",autosize:{maxHeight:44},border:!1,type:"textarea",maxlength:200,placeholder:"请详细描述您遇到的问题,以便我们尽快为您解决!","show-word-limit":!0},null),createVNode(Cell,null,{default:()=>[createVNode("img",{class:styles$c.btn,src:iconSubmit,onClick:a},null)]})]})]})])}});function useDrag(i,e,r,s){const o=ref({top:-1,left:-1}),a=s+e;watch(r,()=>{r.value?(c(),window.addEventListener("resize",u),nextTick(()=>{const d=document.querySelector(`.${e}`);d&&i.map(g=>{const m=document.querySelector(`.${g}`);m&&(m.style.cursor="move",drag(m,d,o))})})):(window.removeEventListener("resize",u),setCachePos(a,o.value))});const l=computed(()=>o.value.left===-1&&o.value.top===-1?{}:{position:"fixed",left:`${o.value.left}px`,top:`${o.value.top}px`,transform:"initial",transformOrigin:"initial",margin:"initial",transition:"initial"});function c(){const d=getCachePos(a);d&&(o.value=d,nextTick(()=>{u()}))}function u(){if(o.value.left===-1&&o.value.top===-1)return;const d=document.querySelector(`.${e}`);if(!d)return;const g=d.getBoundingClientRect(),m=document.documentElement.clientWidth,y=document.documentElement.clientHeight,{top:b,left:S}=o.value,A=m-g.width,E=y-g.height;let x=S,P=b;const T=0,C=0;x=xA?A:x,P=PE?E:P,o.value={top:P,left:x}}return{pos:o,styleDrag:l}}function drag(i,e,r){function s(o){const a=e.getBoundingClientRect(),l=o.clientX,c=o.clientY,u=document.documentElement.clientWidth,d=document.documentElement.clientHeight,g=u-a.width,m=d-a.height,y=0,b=0;function S(E){let x=a.left+(E.clientX-l),P=a.top+(E.clientY-c);x=xg?g:x,P=Pm?m:P,r.value={top:P,left:x}}function A(){document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",A)}document.addEventListener("mousemove",S),document.addEventListener("mouseup",A)}i.addEventListener("mousedown",s)}const localStorageName="dragCachePos";function getCachePos(i){const e=localStorage.getItem(localStorageName);if(e)try{return JSON.parse(e)[i]}catch(r){return null}return null}function setCachePos(i,e){const r=localStorage.getItem(localStorageName);let s={};if(r)try{s=JSON.parse(r)}catch(o){}s[i]=e,localStorage.setItem(localStorageName,JSON.stringify(s))}const dragBom="_dragBom_u8a8z_1",box$2="_box_u8a8z_9",right$1="_right_u8a8z_18",guide="_guide_u8a8z_23",guideBg="_guideBg_u8a8z_39",guideDone="_guideDone_u8a8z_47",guideTop="_guideTop_u8a8z_58",guideLeft="_guideLeft_u8a8z_66",guideRight="_guideRight_u8a8z_75",styles$b={dragBom,box:box$2,right:right$1,guide,guideBg,guideDone,guideTop,guideLeft,guideRight},Dragbom=defineComponent({name:"dragBom",emits:["guideDone"],props:{showGuide:{type:Boolean,default:!1}},setup(i,{emit:e}){const r=reactive({guidePos:"bottom"}),s=()=>{var g,m,y;const o=document.documentElement.clientHeight||document.body.clientHeight;document.documentElement.clientWidth||document.body.clientWidth;const a=((g=document.querySelector(".bom_guide"))==null?void 0:g.clientHeight)||0,l=((m=document.querySelector(".bom_guide"))==null?void 0:m.clientWidth)||0,c=(y=document.querySelector(".bom_drag"))==null?void 0:y.getBoundingClientRect(),u=(c==null?void 0:c.top)||0,d=(c==null?void 0:c.left)||0;o-u>a?r.guidePos="bottom":r.guidePos=d>l?"left":"right"};return onMounted(()=>{nextTick(()=>{setTimeout(()=>{s()},0)})}),()=>createVNode(Fragment,null,[createVNode("div",{class:[styles$b.dragBom,"bom_drag"]},[createVNode("div",{class:styles$b.box},null),createVNode("div",{class:[styles$b.box,styles$b.right]},null)]),i.showGuide&&createVNode("div",{class:[styles$b.guide,r.guidePos==="left"&&styles$b.guideLeft,r.guidePos==="right"&&styles$b.guideRight,"bom_guide"],onClick:()=>e("guideDone")},[createVNode("div",{class:styles$b.guideBg},null),createVNode("div",{class:styles$b.guideDone},null)])])}}),query$3=getQuery(),setGuidance=i=>query$3.isCbs?{}:request.post("/functionGuidance/save",{data:i,requestType:"json"}),getGuidance=i=>storeData.platformApi=="/cbs-app"?{data:null}:request.get("/functionGuidance/queryTagDetail",{data:i,params:i}),Settting=defineComponent({name:"header-settting",setup(){var c,u;const i=getQuery(),e=reactive({show:!1,recommendationShow:!1}),r=d=>d=String(Math.min(3e3,d)),s=d=>{const g=state$1.baseFrequency-10,m=state$1.baseFrequency+10;let y=state$1.setting.frequency;if(d===1){if(y-1m)return showToast({message:`最高标准音高${m}HZ`});y=y+1}state$1.setting.frequency=y>=0?y:0},o="recommenBoxClass_drag",a=(c=storeData.user)!=null&&c.id?String((u=storeData.user)==null?void 0:u.id):"",l=state$1.platform!==IPlatform.PC?{styleDrag:{value:null}}:useDrag([`${o} .top_drag`,`${o} .bom_drag`],o,toRef(e,"recommendationShow"),a);return()=>createVNode("div",{class:styles$e["header-settting"]},[createVNode("div",{class:[styles$e.content,state$1.platform===IPlatform.PC&&styles$e.pcContent]},[state$1.platform===IPlatform.PC&&createVNode("div",{class:"top_drag"},null),createVNode(Tabs,{border:!0,animated:!0,swipeable:!0},{default:()=>[createVNode(Tab,{title:"全局设置"},{default:()=>[createVNode(NoticeBar,{class:styles$e.noticebar,"left-icon":iconInfo,text:"全局设置会更改所有乐谱练习及评测"},null),createVNode(Cell,{title:"护眼模式",center:!0},{extra:()=>createVNode(Switch$1,{modelValue:state$1.setting.eyeProtection,"onUpdate:modelValue":d=>state$1.setting.eyeProtection=d},null)}),createVNode(Cell,{title:"节拍器音量",class:styles$e.sliderWrap,center:!0},{extra:()=>createVNode(Slider,{class:[styles$e.slider,styles$e.sliderVolume],min:0,max:100,modelValue:state$1.setting.beatVolume,"onUpdate:modelValue":d=>state$1.setting.beatVolume=d},{button:()=>createVNode("div",{class:styles$e.sliderBtn},[state$1.setting.beatVolume])})}),createVNode("div",{class:styles$e.btnsbar},[createVNode("div",{class:styles$e.btn,onClick:()=>e.show=!0},[createVNode("img",{src:iconTv},null),createTextVNode("投屏帮助")]),createVNode("div",{class:styles$e.btn,onClick:()=>e.recommendationShow=!0},[createVNode("img",{src:iconYijian},null),createTextVNode("意见反馈")])])]}),createVNode(Tab,{title:"练习设置"},{default:()=>[createVNode(Cell,{title:"循环播放",center:!0},{extra:()=>createVNode(Switch$1,{modelValue:state$1.setting.repeatAutoPlay,"onUpdate:modelValue":d=>state$1.setting.repeatAutoPlay=d},null)}),createVNode(Cell,{class:[state$1.modeType=="evaluating"&&styles$e.disabled],title:"显示指法",center:!0},{extra:()=>createVNode(Switch$1,{modelValue:state$1.setting.displayFingering,"onUpdate:modelValue":d=>state$1.setting.displayFingering=d,disabled:!state$1.fingeringInfo.name||!state$1.isShowFingering},null)})]}),createVNode(Tab,{title:"评测设置"},{default:()=>[createVNode(Cell,{class:[i.workRecord&&styles$e.disabled],title:"评测难度",center:!0},{extra:()=>createVNode(RadioGroup,{iconSize:20,class:styles$e.radioGroup,modelValue:state$1.setting.evaluationDifficulty,"onUpdate:modelValue":d=>state$1.setting.evaluationDifficulty=d},{default:()=>[createVNode(Radio,{name:"BEGINNER"},{default:()=>[createTextVNode("入门")]}),createVNode(Radio,{name:"ADVANCED"},{default:()=>[createTextVNode("进阶")]}),createVNode(Radio,{name:"PERFORMER"},{default:()=>[createTextVNode("大师")]})]})}),createVNode(Cell,{title:"延迟检测",center:!0},{extra:()=>createVNode(Switch$1,{modelValue:state$1.setting.soundEffect,"onUpdate:modelValue":d=>state$1.setting.soundEffect=d},null)}),createVNode(Cell,{title:"摄像头",center:!0},{extra:()=>createVNode(Switch$1,{modelValue:state$1.setting.camera,"onUpdate:modelValue":d=>state$1.setting.camera=d,onChange:async d=>{var g;if(d){const m=await api_openCamera();(g=m==null?void 0:m.content)!=null&&g.reson&&(state$1.setting.camera=!1)}else api_closeCamera()}},null)}),createVNode(Cell,{style:{display:state$1.setting.camera?"":"none"},title:"透明度",class:styles$e.sliderWrap,center:!0},{extra:()=>createVNode(Slider,{class:styles$e.slider,min:0,max:100,modelValue:state$1.setting.cameraOpacity,"onUpdate:modelValue":d=>state$1.setting.cameraOpacity=d},{button:()=>createVNode("div",{class:styles$e.sliderBtn},[state$1.setting.cameraOpacity])})}),createVNode(Cell,{title:"开启伴奏",center:!0},{extra:()=>createVNode(Switch$1,{modelValue:state$1.setting.enableAccompaniment,"onUpdate:modelValue":d=>state$1.setting.enableAccompaniment=d},null)}),createVNode(Cell,{title:"标准音高",center:!0},{extra:()=>createVNode("div",{class:styles$e.operateHz},[createVNode("img",{src:iconSubtract,onClick:()=>s(1)},null),createVNode("span",null,[state$1.setting.frequency,createTextVNode("HZ")]),createVNode("img",{src:iconAdd,onClick:()=>s(2)},null)])}),createVNode(Field,{class:styles$e.reactionTime,label:"反应时间(毫秒)",type:"digit",placeholder:"最大可输入3000毫秒",formatter:r,modelValue:state$1.setting.reactionTimeMs,"onUpdate:modelValue":d=>state$1.setting.reactionTimeMs=d},null)]})]})]),createVNode(Popup$1,{class:["popup-custom",styles$e.screen],show:e.show,"onUpdate:show":d=>e.show=d,onClose:()=>{e.show=!1},position:"right",teleport:"body"},{default:()=>[createVNode(ScreenModel,{onClose:d=>{e.show=!1}},null)]}),createVNode(Popup$1,{show:e.recommendationShow,"onUpdate:show":d=>e.recommendationShow=d,class:"popup-custom van-scale center-closeBtn recommenBoxClass_drag",transition:"van-scale",teleport:"body",closeable:!0,style:l.styleDrag.value},{default:()=>{var d;return[createVNode(Recommendation,{onClose:()=>{e.recommendationShow=!1}},null),state$1.platform===IPlatform.PC&&createVNode(Dragbom,{showGuide:!((d=state$1.guideInfo)!=null&&d.teacherDrag)},null)]}})])}});function autoCorrelate(i,e){for(var r=i.length,s=0,o=0;od[m+1];)m++;for(var y=-1,b=-1,o=m;oy&&(y=d[o],b=o);var S=b,A=d[S-1],E=d[S],x=d[S+1];let P=(A+x-2*E)/2,T=(x-A)/2;return P&&(S=S-T/(2*P)),e/S}const audioRecorder={audioContext:null,mediaRecorder:null,recordeState:!1,progress:i=>{},init(){this.audioContext=new(window.AudioContext||window.webkitAudioContext)},toggleRecord(i){return new Promise((e,r)=>{i?navigator.mediaDevices.getUserMedia({audio:!0}).then(s=>{audioRecorder.mediaRecorder=s.getAudioTracks()[0],audioRecorder.recordeState=!0;const o=this.audioContext.createMediaStreamSource(s),a=this.audioContext.createAnalyser();a.fftSize=2048,o.connect(a);var l=new Float32Array(a.fftSize);const c=this.audioContext.sampleRate;function u(){if(!audioRecorder.recordeState)return;a.getFloatTimeDomainData(l);const d=autoCorrelate(l,c);audioRecorder.progress(d),setTimeout(()=>{u()},10)}u(),e(!0)}).catch(s=>{e(!1),console.error("Error accessing media devices:",s)}):audioRecorder.mediaRecorder.stop()})},checkSupport(){return new Promise((i,e)=>{if(navigator.mediaDevices.getUserMedia){const r={audio:!0};navigator.mediaDevices.getUserMedia(r).then(s=>{i(!0),console.log("授权成功!")},()=>{i(!1),console.error("授权失败!")})}else i(!1),console.error("浏览器不支持 getUserMedia")})}},query$2=getQuery(),followData=reactive({list:[],index:0,start:!1,rendered:!1,earphone:!1}),handleRecord=i=>{if(query$2.isCbs)return;i<0&&(i=0);const e=i/1e3,r={clientType:storeData.user.clientType,musicSheetId:state$1.examSongId,sysMusicScoreId:state$1.examSongId,feature:"FOLLOW_UP_TRAINING",practiceSource:"FOLLOW_UP_TRAINING",playTime:e,deviceType:browser().android?"ANDROID":"IOS",behaviorId:getBehaviorId()};api_musicPracticeRecordSave(r)},toggleFollow=(i=!0)=>{state$1.modeType=state$1.modeType==="follow"?"practise":"follow",i||(followData.start=!1,openToggleRecord(!1))},noteFrequency=ref(0),audioFrequency=ref(0),followTime=ref(0),openToggleRecord=async(i=!0)=>{if(i||api_cloudToggleFollow(i?"start":"end"),i)followTime.value=Date.now();else{const e=Date.now()-followTime.value;followTime.value!==0&&e>0&&(handleRecord(e),followTime.value=0)}storeData.isApp||!await(audioRecorder==null?void 0:audioRecorder.toggleRecord(i))&&followData.start&&(followData.earphone=!0,followData.start=!1)},onClear=()=>{state$1.times.forEach(i=>{const e=document.querySelector(`div[data-vf=vf${i.id}]`);e&&e.classList.remove("follow-up","follow-down","follow-error","follow-success");const r=document.getElementById(`vf-${i.id}`);r&&r.classList.remove("follow-up","follow-down")})},handleFollowStart=async()=>{var e;const i=await api_cloudToggleFollow("start");if(!((e=i==null?void 0:i.content)!=null&&e.reson)){if(followData.start=!0,!await handleStartTick())return followData.start=!1,!1;onClear(),followData.start=!0,followData.index=0,followData.list=[],resetPlaybackToStart(),openToggleRecord(!0),getNoteIndex();const s=getDuration(state$1.osmd);metronomeData.totalNumerator=s.numerator||2,metronomeData.followAudioIndex=1,state$1.beatStartTime=0,followBeatPaly()}},handleFollowEnd=()=>{onClear(),followData.start=!1,openToggleRecord(!1),followData.index=0,console.log("结束")},next=()=>{gotoNext(state$1.times[followData.index])},getNoteIndex=()=>{const i=state$1.times[followData.index];return i.frequency<=0?(followData.index=followData.index+1,next(),getNoteIndex()):(noteFrequency.value=i.frequency,{id:i.id,min:i.frequency-(i.frequency-i.prevFrequency)*.5,max:i.frequency+(i.nextFrequency-i.frequency)*.5,duration:i.duration,baseFrequency:i.frequency})};let checking=!1;const onFollowTime=i=>{var r;const e=(r=i==null?void 0:i.content)==null?void 0:r.frequency;followData.start&&e>0&&(audioFrequency.value=e,checked())};let startTime=0;const checked=()=>{if(checking)return;checking=!0;const i=getNoteIndex();if(audioFrequency.value=i.min&&audioFrequency.value<=i.max){if(startTime===0)startTime=Date.now();else if((Date.now()-startTime)/1e3>=i.duration*.6){startTime=0,followData.index=followData.index+1,setColor(i,"",!0),next(),checking=!1;return}}setColor(i,audioFrequency.value>i.baseFrequency?"follow-up":"follow-down"),checking=!1},setColor=(i,e,r=!1)=>{const s=document.querySelector(`div[data-vf=vf${i.id}]`);s&&(s.classList.remove("follow-up","follow-down","follow-error","follow-success"),r?s.classList.add("follow-success"):s.classList.add("follow-error",e));const o=document.getElementById(`vf-${i.id}`);o&&(o.classList.remove("follow-up","follow-down"),e&&o.classList.add(e))},FollowPractice=defineComponent({name:"follow",setup(){return onMounted(async()=>{storeData.isApp?api_cloudFollowTime(onFollowTime):await audioRecorder.checkSupport()?(audioRecorder.init(),audioRecorder.progress=e=>{onFollowTime({api:"",content:{frequency:e}})}):followData.earphone=!0,console.log("进入跟练模式")}),onUnmounted(()=>{api_cloudFollowTime(onFollowTime,!1),resetPlaybackToStart(),onClear(),openToggleRecord(!1),console.log("退出跟练模式")}),()=>createVNode("div",null,null)}}),item$2="_item_1c8fq_1",active="_active_1c8fq_8",styles$a={item:item$2,active},fraction="_fraction_mpnkj_1",pcFraction="_pcFraction_mpnkj_10",title$3="_title_mpnkj_13",tip="_tip_mpnkj_24",btns$2="_btns_mpnkj_29",btn$3="_btn_mpnkj_29",styles$9={fraction,pcFraction,title:title$3,tip,btns:btns$2,btn:btn$3},icon_title=""+new URL("../svg/icon_title-e17b577f.svg",import.meta.url).href,icon_cancel=""+new URL("../svg/icon_cancel-06949ce5.svg",import.meta.url).href,icon_confirm=""+new URL("../svg/icon_confirm-fa958ade.svg",import.meta.url).href,TheComfirm=defineComponent({name:"evaluat-audio",props:{tip:{type:String,default:()=>""}},emits:["close"],setup(i,{emit:e}){return()=>createVNode("div",{class:[styles$9.fraction,state$1.platform===IPlatform.PC&&styles$9.pcFraction]},[state$1.platform===IPlatform.PC&&createVNode("div",{class:"top_drag"},null),createVNode("div",{class:styles$9.title},[createVNode("img",{src:icon_title},null)]),createVNode("div",{class:styles$9.tip},[i.tip]),createVNode("div",{class:styles$9.btns},[createVNode("img",{src:icon_cancel,class:styles$9.btn,onClick:()=>e("close")},null),createVNode("img",{src:icon_confirm,class:styles$9.btn,onClick:()=>e("close",!0)},null)])])}});class AJAX{static ajax(e,r=9e3){let s;const o=e.indexOf(".mxl")>-1?"text/plain; charset=x-user-defined":"application/xml";if(XMLHttpRequest)s=new XMLHttpRequest;else if(ActiveXObject)s=new ActiveXObject("Microsoft.XMLHTTP");else return Promise.reject(new Error("XMLHttp not supported."));return s.timeout=r,new Promise((a,l)=>{s.onreadystatechange=()=>{s.readyState===XMLHttpRequest.DONE&&(s.status===200||s.status===0&&s.responseText?a(s.responseText):l(new Error("Could not retrieve requested URL "+s.status)))},s.ontimeout=c=>{l(new Error("Server request Timeout"))},s.overrideMimeType(o),s.open("GET",e,!0),s.send()})}}const _Fraction=class{constructor(i=0,e=1,r=0,s=!0){this.numerator=0,this.denominator=1,this.wholeValue=0,this.numerator=i,this.denominator=e,this.wholeValue=r,s&&this.simplify(),this.setRealValue()}static max(i,e){return i.RealValue>e.RealValue?i:e}static Equal(i,e){return i.wholeValue===e.wholeValue&&i.Denominator===e.Denominator&&i.Numerator===e.Numerator}static createFromFraction(i){return new _Fraction(i.numerator,i.denominator,i.wholeValue,!1)}static plus(i,e){const r=i.clone();return r.Add(e),r}static minus(i,e){const r=i.clone();return r.Sub(e),r}static multiply(i,e){return new _Fraction((i.wholeValue*i.denominator+i.numerator)*(e.wholeValue*e.denominator+e.numerator),i.denominator*e.denominator)}static greatestCommonDenominator(i,e){if(i===0)return e;if(e===1)return 1;for(;Math.abs(e)>=1&&Math.abs(i)>=1;)i>e?i-=e:e-=i;const r=Math.round(i);return Math.max(r,1)}toString(){let i=this.numerator+"/"+this.denominator;return this.wholeValue!==0&&(i=this.wholeValue+" "+i),i}clone(){return new _Fraction(this.numerator,this.denominator,this.wholeValue,!1)}get Numerator(){return this.numerator}set Numerator(i){this.numerator!==i&&(this.numerator=i,this.simplify(),this.setRealValue())}get Denominator(){return this.denominator}set Denominator(i){this.denominator!==i&&(this.denominator=i,this.numerator!==0&&this.simplify(),this.setRealValue())}get WholeValue(){return this.wholeValue}set WholeValue(i){this.wholeValue!==i&&(this.wholeValue=i,this.setRealValue())}GetExpandedNumerator(){return this.wholeValue*this.denominator+this.numerator}calculateNumberOfNeededDots(){let i=1,e=2;const r=this.GetExpandedNumerator();for(;ei;)e.Numerator++;if(this.numerator>this.denominator){const r=new _Fraction(this.numerator-1,this.denominator,this.wholeValue);for(;r.Denominator>i;)r.Numerator--;if(r.Denominator_Fraction.maximumAllowedNumber){const r=this.denominator/_Fraction.maximumAllowedNumber;this.numerator=Math.round(this.numerator/r),this.denominator=Math.round(this.denominator/r)}if(this.numerator>_Fraction.maximumAllowedNumber){const r=this.numerator/_Fraction.maximumAllowedNumber;this.numerator=Math.round(this.numerator/r),this.denominator=Math.round(this.denominator/r)}}isOnBeat(i){const e=this.distanceFromBeat(i);return Math.abs(e)<_Fraction.FloatInaccuracyTolerance}distanceFromBeat(i){const e=new _Fraction(1,i.Denominator);return this.RealValue%e.RealValue}};let Fraction$1=_Fraction;Fraction$1.maximumAllowedNumber=46340;Fraction$1.FloatInaccuracyTolerance=1e-4;class AbstractExpression{constructor(e){this.placement=e}static isStringInStringList(e,r){for(let s=0,o=e.length;s(i[i.Above=0]="Above",i[i.Below=1]="Below",i[i.Left=2]="Left",i[i.Right=3]="Right",i[i.NotYetDefined=4]="NotYetDefined",i[i.AboveOrBelow=5]="AboveOrBelow",i))(PlacementEnum||{});const _ContinuousDynamicExpression=class extends AbstractExpression{constructor(i,e,r,s,o,a,l=""){super(e),super.parentMeasure=s,this.NumberXml=a,this.dynamicType=i,this.label=l,this.staffNumber=r,this.activeInstantaneousDynamic=o,this.startVolume=1,this.endVolume=1,this.setStartAndEndVolume(),l!==""&&this.setType()}setStartAndEndVolume(){this.activeInstantaneousDynamic&&(this.dynamicType===0&&(this.startVolume=this.activeInstantaneousDynamic.Volume,this.endVolume=this.activeInstantaneousDynamic.Volume*1.2),this.dynamicType===1&&(this.startVolume=this.activeInstantaneousDynamic.Volume,this.endVolume=this.activeInstantaneousDynamic.Volume*.8))}get DynamicType(){return this.dynamicType}set DynamicType(i){this.dynamicType=i}get StartMultiExpression(){return this.startMultiExpression}set StartMultiExpression(i){this.startMultiExpression=i}get EndMultiExpression(){return this.endMultiExpression}set EndMultiExpression(i){this.endMultiExpression=i}get Placement(){return this.placement}set Placement(i){this.placement=i}get StartVolume(){return this.startVolume}set StartVolume(i){this.startVolume=i}get EndVolume(){return this.endVolume}set EndVolume(i){this.endVolume=i}get StaffNumber(){return this.staffNumber}set StaffNumber(i){this.staffNumber=i}get Label(){return this.label}set Label(i){this.label=i,this.setType()}static isInputStringContinuousDynamic(i){return i?_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicIncreasing,i)||_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicDecreasing,i):!1}getInterpolatedDynamic(i){const e=this.StartMultiExpression.AbsoluteTimestamp;let r;if(this.EndMultiExpression?r=this.EndMultiExpression.AbsoluteTimestamp:r=Fraction$1.plus(this.startMultiExpression.SourceMeasureParent.AbsoluteTimestamp,this.startMultiExpression.SourceMeasureParent.Duration),i.lt(e))return-1;if(r.lt(i))return-2;const s=Fraction$1.minus(i,e).RealValue/Fraction$1.minus(r,e).RealValue;return Math.max(0,Math.min(99.9,this.startVolume+(this.endVolume-this.startVolume)*s))}isWedge(){return!this.label}setType(){_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicIncreasing,this.label)?this.dynamicType=0:_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicDecreasing,this.label)&&(this.dynamicType=1)}};let ContinuousDynamicExpression=_ContinuousDynamicExpression;ContinuousDynamicExpression.listContinuousDynamicIncreasing=["crescendo","cresc","cresc.","cres."];ContinuousDynamicExpression.listContinuousDynamicDecreasing=["decrescendo","decresc","decr.","diminuendo","dim.","dim"];var ContDynamicEnum=(i=>(i[i.crescendo=0]="crescendo",i[i.diminuendo=1]="diminuendo",i))(ContDynamicEnum||{}),DynamicExpressionSymbolEnum=(i=>(i[i.p=0]="p",i[i.f=1]="f",i[i.s=2]="s",i[i.z=3]="z",i[i.m=4]="m",i[i.r=5]="r",i))(DynamicExpressionSymbolEnum||{});class MusicSheetReadingException{constructor(e,r){this.message=e,r&&(this.message+=" "+r.toString())}}class ArgumentOutOfRangeException{constructor(e){this.message=e}}class InvalidEnumArgumentException{constructor(e){this.message=e}}var loglevelExports={},loglevel={get exports(){return loglevelExports},set exports(i){loglevelExports=i}};(function(i){(function(e,r){i.exports?i.exports=r():e.log=r()})(commonjsGlobal,function(){var e=function(){},r="undefined",s=typeof window!==r&&typeof window.navigator!==r&&/Trident\/|MSIE /.test(window.navigator.userAgent),o=["trace","debug","info","warn","error"];function a(A,E){var x=A[E];if(typeof x.bind=="function")return x.bind(A);try{return Function.prototype.bind.call(x,A)}catch(P){return function(){return Function.prototype.apply.apply(x,[A,arguments])}}}function l(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(A){return A==="debug"&&(A="log"),typeof console===r?!1:A==="trace"&&s?l:console[A]!==void 0?a(console,A):console.log!==void 0?a(console,"log"):e}function u(A,E){for(var x=0;x=0&&D<=P.levels.SILENT){if(T=D,O!==!1&&M(D),u.call(P,D,A),typeof console===r&&D"u"}i.isUndefined=c;function u(m){return Object.prototype.toString.call(m)==="[object String]"}i.isString=u;function d(m){return c(m)||!l(m)?function(y,b){return y=0;a--)if(s(i[a],e))return a;return-1}arrays$4.lastIndexOf=lastIndexOf;function contains(i,e,r){return indexOf$1(i,e,r)>=0}arrays$4.contains=contains;function remove(i,e,r){var s=indexOf$1(i,e,r);return s<0?!1:(i.splice(s,1),!0)}arrays$4.remove=remove;function frequency(i,e,r){for(var s=r||util$a.defaultEquals,o=i.length,a=0,l=0;l=i.length||r<0||r>=i.length)return!1;var s=i[e];return i[e]=i[r],i[r]=s,!0}arrays$4.swap=swap;function toString$1(i){return"["+i.toString()+"]"}arrays$4.toString=toString$1;function forEach(i,e){for(var r=0,s=i;re.size())return!1;var r=!0;return this.forEach(function(s){return e.contains(s)?!0:(r=!1,!1)}),r},i.prototype.remove=function(e){return this.contains(e)?(this.dictionary.remove(e),!0):!1},i.prototype.forEach=function(e){this.dictionary.forEach(function(r,s){return e(s)})},i.prototype.toArray=function(){return this.dictionary.values()},i.prototype.isEmpty=function(){return this.dictionary.isEmpty()},i.prototype.size=function(){return this.dictionary.size()},i.prototype.clear=function(){this.dictionary.clear()},i.prototype.toString=function(){return arrays$3.toString(this.toArray())},i}();_Set.default=Set$1;Object.defineProperty(Bag$1,"__esModule",{value:!0});var util$7=util$b,Dictionary_1$4=Dictionary$2,Set_1$1=_Set,Bag=function(){function i(e){this.toStrF=e||util$7.defaultToString,this.dictionary=new Dictionary_1$4.default(this.toStrF),this.nElements=0}return i.prototype.add=function(e,r){if(r===void 0&&(r=1),util$7.isUndefined(e)||r<=0)return!1;if(this.contains(e))this.dictionary.getValue(e).copies+=r;else{var s={value:e,copies:r};this.dictionary.setValue(e,s)}return this.nElements+=r,!0},i.prototype.count=function(e){return this.contains(e)?this.dictionary.getValue(e).copies:0},i.prototype.contains=function(e){return this.dictionary.containsKey(e)},i.prototype.remove=function(e,r){if(r===void 0&&(r=1),util$7.isUndefined(e)||r<=0)return!1;if(this.contains(e)){var s=this.dictionary.getValue(e);return r>s.copies?this.nElements-=s.copies:this.nElements-=r,s.copies-=r,s.copies<=0&&this.dictionary.remove(e),!0}else return!1},i.prototype.toArray=function(){for(var e=[],r=this.dictionary.values(),s=0,o=r;sthis.nElements||util$6.isUndefined(e))return!1;var s=this.createNode(e);if(this.nElements===0||this.lastNode===null)this.firstNode=s,this.lastNode=s;else if(r===this.nElements)this.lastNode.next=s,this.lastNode=s;else if(r===0)s.next=this.firstNode,this.firstNode=s;else{var o=this.nodeAtIndex(r-1);if(o===null)return!1;s.next=o.next,o.next=s}return this.nElements++,!0},i.prototype.first=function(){if(this.firstNode!==null)return this.firstNode.element},i.prototype.last=function(){if(this.lastNode!==null)return this.lastNode.element},i.prototype.elementAtIndex=function(e){var r=this.nodeAtIndex(e);if(r!==null)return r.element},i.prototype.indexOf=function(e,r){var s=r||util$6.defaultEquals;if(util$6.isUndefined(e))return-1;for(var o=this.firstNode,a=0;o!==null;){if(s(o.element,e))return a;a++,o=o.next}return-1},i.prototype.contains=function(e,r){return this.indexOf(e,r)>=0},i.prototype.remove=function(e,r){var s=r||util$6.defaultEquals;if(this.nElements<1||util$6.isUndefined(e))return!1;for(var o=null,a=this.firstNode;a!==null;){if(s(a.element,e))return o===null?(this.firstNode=a.next,a===this.lastNode&&(this.lastNode=null)):a===this.lastNode?(this.lastNode=o,o.next=a.next,a.next=null):(o.next=a.next,a.next=null),this.nElements--,!0;o=a,a=a.next}return!1},i.prototype.clear=function(){this.firstNode=null,this.lastNode=null,this.nElements=0},i.prototype.equals=function(e,r){var s=r||util$6.defaultEquals;return!(e instanceof i)||this.size()!==e.size()?!1:this.equalsAux(this.firstNode,e.firstNode,s)},i.prototype.equalsAux=function(e,r,s){for(;e!==null&&r!==null;){if(!s(e.element,r.element))return!1;e=e.next,r=r.next}return!0},i.prototype.removeElementAtIndex=function(e){if(!(e<0||e>=this.nElements||this.firstNode===null||this.lastNode===null)){var r;if(this.nElements===1)r=this.firstNode.element,this.firstNode=null,this.lastNode=null;else{var s=this.nodeAtIndex(e-1);s===null?(r=this.firstNode.element,this.firstNode=this.firstNode.next):s.next===this.lastNode&&(r=this.lastNode.element,this.lastNode=s),s!==null&&s.next!==null&&(r=s.next.element,s.next=s.next.next)}return this.nElements--,r}},i.prototype.forEach=function(e){for(var r=this.firstNode;r!==null&&e(r.element)!==!1;)r=r.next},i.prototype.reverse=function(){for(var e=null,r=this.firstNode,s=null;r!==null;)s=r.next,r.next=e,e=r,r=s;s=this.firstNode,this.firstNode=this.lastNode,this.lastNode=s},i.prototype.toArray=function(){for(var e=[],r=this.firstNode;r!==null;)e.push(r.element),r=r.next;return e},i.prototype.size=function(){return this.nElements},i.prototype.isEmpty=function(){return this.nElements<=0},i.prototype.toString=function(){return arrays$2.toString(this.toArray())},i.prototype.nodeAtIndex=function(e){if(e<0||e>=this.nElements)return null;if(e===this.nElements-1)return this.lastNode;for(var r=this.firstNode,s=0;s0&&(e=e.rightCh);return e},i.prototype.transplant=function(e,r){e.parent===null?this.root=r:e===e.parent.leftCh?e.parent.leftCh=r:e.parent.rightCh=r,r!==null&&(r.parent=e.parent)},i.prototype.removeNode=function(e){if(e.leftCh===null)this.transplant(e,e.rightCh);else if(e.rightCh===null)this.transplant(e,e.leftCh);else{var r=this.minimumAux(e.rightCh);r.parent!==e&&(this.transplant(r,r.rightCh),r.rightCh=e.rightCh,r.rightCh.parent=r),this.transplant(e,r),r.leftCh=e.leftCh,r.leftCh.parent=r}},i.prototype.inorderTraversalAux=function(e,r,s){e===null||s.stop||(this.inorderTraversalAux(e.leftCh,r,s),!s.stop&&(s.stop=r(e.element)===!1,!s.stop&&this.inorderTraversalAux(e.rightCh,r,s)))},i.prototype.levelTraversalAux=function(e,r){var s=new Queue_1$1.default;for(e!==null&&s.enqueue(e),e=s.dequeue()||null;e!=null;){if(r(e.element)===!1)return;e.leftCh!==null&&s.enqueue(e.leftCh),e.rightCh!==null&&s.enqueue(e.rightCh),e=s.dequeue()||null}},i.prototype.preorderTraversalAux=function(e,r,s){e===null||s.stop||(s.stop=r(e.element)===!1,!s.stop&&(this.preorderTraversalAux(e.leftCh,r,s),!s.stop&&this.preorderTraversalAux(e.rightCh,r,s)))},i.prototype.postorderTraversalAux=function(e,r,s){e===null||s.stop||(this.postorderTraversalAux(e.leftCh,r,s),!s.stop&&(this.postorderTraversalAux(e.rightCh,r,s),!s.stop&&(s.stop=r(e.element)===!1)))},i.prototype.minimumAux=function(e){for(;e!=null&&e.leftCh!==null;)e=e.leftCh;return e},i.prototype.maximumAux=function(e){for(;e!=null&&e.rightCh!==null;)e=e.rightCh;return e},i.prototype.heightAux=function(e){return e===null?-1:Math.max(this.heightAux(e.leftCh),this.heightAux(e.rightCh))+1},i.prototype.insertNode=function(e){for(var r=null,s=this.root;s!==null;){var o=this.compare(e.element,s.element);if(o===0)return null;o<0?(r=s,s=s.leftCh):(r=s,s=s.rightCh)}return e.parent=r,r===null?this.root=e:this.compare(e.element,r.element)<0?r.leftCh=e:r.rightCh=e,e},i.prototype.createNode=function(e){return{element:e,leftCh:null,rightCh:null,parent:null}},i}();BSTreeKV$1.default=BSTreeKV;var __extends$2=commonjsGlobal&&commonjsGlobal.__extends||function(){var i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var s in r)r.hasOwnProperty(s)&&(e[s]=r[s])};return function(e,r){i(e,r);function s(){this.constructor=e}e.prototype=r===null?Object.create(r):(s.prototype=r.prototype,new s)}}();Object.defineProperty(BSTree$1,"__esModule",{value:!0});var BSTreeKV_1$1=BSTreeKV$1,BSTree=function(i){__extends$2(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e}(BSTreeKV_1$1.default);BSTree$1.default=BSTree;var Heap$1={};Object.defineProperty(Heap$1,"__esModule",{value:!0});var collections=util$b,arrays$1=arrays$4,Heap=function(){function i(e){this.data=[],this.compare=e||collections.defaultCompare}return i.prototype.leftChildIndex=function(e){return 2*e+1},i.prototype.rightChildIndex=function(e){return 2*e+2},i.prototype.parentIndex=function(e){return Math.floor((e-1)/2)},i.prototype.minIndex=function(e,r){return r>=this.data.length?e>=this.data.length?-1:e:this.compare(this.data[e],this.data[r])<=0?e:r},i.prototype.siftUp=function(e){for(var r=this.parentIndex(e);e>0&&this.compare(this.data[r],this.data[e])>0;)arrays$1.swap(this.data,r,e),e=r,r=this.parentIndex(e)},i.prototype.siftDown=function(e){for(var r=this.minIndex(this.leftChildIndex(e),this.rightChildIndex(e));r>=0&&this.compare(this.data[e],this.data[r])>0;)arrays$1.swap(this.data,r,e),e=r,r=this.minIndex(this.leftChildIndex(e),this.rightChildIndex(e))},i.prototype.peek=function(){if(this.data.length>0)return this.data[0]},i.prototype.add=function(e){return collections.isUndefined(e)?!1:(this.data.push(e),this.siftUp(this.data.length-1),!0)},i.prototype.removeRoot=function(){if(this.data.length>0){var e=this.data[0];return this.data[0]=this.data[this.data.length-1],this.data.splice(this.data.length-1,1),this.data.length>0&&this.siftDown(0),e}},i.prototype.contains=function(e){var r=collections.compareToEquals(this.compare);return arrays$1.contains(this.data,e,r)},i.prototype.size=function(){return this.data.length},i.prototype.isEmpty=function(){return this.data.length<=0},i.prototype.clear=function(){this.data.length=0},i.prototype.forEach=function(e){arrays$1.forEach(this.data,e)},i}();Heap$1.default=Heap;var LinkedDictionary$1={},__extends$1=commonjsGlobal&&commonjsGlobal.__extends||function(){var i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var s in r)r.hasOwnProperty(s)&&(e[s]=r[s])};return function(e,r){i(e,r);function s(){this.constructor=e}e.prototype=r===null?Object.create(r):(s.prototype=r.prototype,new s)}}();Object.defineProperty(LinkedDictionary$1,"__esModule",{value:!0});var Dictionary_1$3=Dictionary$2,util$4=util$b,LinkedDictionaryPair=function(){function i(e,r){this.key=e,this.value=r}return i.prototype.unlink=function(){this.prev.next=this.next,this.next.prev=this.prev},i}(),HeadOrTailLinkedDictionaryPair=function(){function i(){this.key=null,this.value=null}return i.prototype.unlink=function(){this.prev.next=this.next,this.next.prev=this.prev},i}();function isHeadOrTailLinkedDictionaryPair(i){return!i.next}var LinkedDictionary=function(i){__extends$1(e,i);function e(r){var s=i.call(this,r)||this;return s.head=new HeadOrTailLinkedDictionaryPair,s.tail=new HeadOrTailLinkedDictionaryPair,s.head.next=s.tail,s.tail.prev=s.head,s}return e.prototype.appendToTail=function(r){var s=this.tail.prev;s.next=r,r.prev=s,r.next=this.tail,this.tail.prev=r},e.prototype.getLinkedDictionaryPair=function(r){if(!util$4.isUndefined(r)){var s="$"+this.toStr(r),o=this.table[s];return o}},e.prototype.getValue=function(r){var s=this.getLinkedDictionaryPair(r);if(!util$4.isUndefined(s))return s.value},e.prototype.remove=function(r){var s=this.getLinkedDictionaryPair(r);if(!util$4.isUndefined(s))return i.prototype.remove.call(this,r),s.unlink(),s.value},e.prototype.clear=function(){i.prototype.clear.call(this),this.head.next=this.tail,this.tail.prev=this.head},e.prototype.replace=function(r,s){var o="$"+this.toStr(s.key);s.next=r.next,s.prev=r.prev,this.remove(r.key),s.prev.next=s,s.next.prev=s,this.table[o]=s,++this.nElements},e.prototype.setValue=function(r,s){if(!(util$4.isUndefined(r)||util$4.isUndefined(s))){var o=this.getLinkedDictionaryPair(r),a=new LinkedDictionaryPair(r,s),l="$"+this.toStr(r);if(util$4.isUndefined(o)){this.appendToTail(a),this.table[l]=a,++this.nElements;return}else return this.replace(o,a),o.value}},e.prototype.keys=function(){var r=[];return this.forEach(function(s,o){r.push(s)}),r},e.prototype.values=function(){var r=[];return this.forEach(function(s,o){r.push(o)}),r},e.prototype.forEach=function(r){for(var s=this.head.next;!isHeadOrTailLinkedDictionaryPair(s);){var o=r(s.key,s.value);if(o===!1)return;s=s.next}},e}(Dictionary_1$3.default);LinkedDictionary$1.default=LinkedDictionary;var MultiDictionary$1={};Object.defineProperty(MultiDictionary$1,"__esModule",{value:!0});var util$3=util$b,Dictionary_1$2=Dictionary$2,arrays=arrays$4,MultiDictionary=function(){function i(e,r,s){s===void 0&&(s=!1),this.dict=new Dictionary_1$2.default(e),this.equalsF=r||util$3.defaultEquals,this.allowDuplicate=s}return i.prototype.getValue=function(e){var r=this.dict.getValue(e);return util$3.isUndefined(r)?[]:arrays.copy(r)},i.prototype.setValue=function(e,r){if(util$3.isUndefined(e)||util$3.isUndefined(r))return!1;var s=this.dict.getValue(e);return util$3.isUndefined(s)?(this.dict.setValue(e,[r]),!0):!this.allowDuplicate&&arrays.contains(s,r,this.equalsF)?!1:(s.push(r),!0)},i.prototype.remove=function(e,r){if(util$3.isUndefined(r)){var s=this.dict.remove(e);return!util$3.isUndefined(s)}var o=this.dict.getValue(e);return!util$3.isUndefined(o)&&arrays.remove(o,r,this.equalsF)?(o.length===0&&this.dict.remove(e),!0):!1},i.prototype.keys=function(){return this.dict.keys()},i.prototype.values=function(){for(var e=this.dict.values(),r=[],s=0,o=e;s-1&&this.insertIdIntoRoot(r,s);for(var o in this.nodes)if(this.nodes.hasOwnProperty(o)){var a=this.findNodeId(o,e);a>-1&&this.insertIdIntoNode(o,r,a)}},i.prototype.insertIdAfterId=function(e,r){var s=this.findRootId(e);s>-1&&this.insertIdIntoRoot(r,s+1);for(var o in this.nodes)if(this.nodes.hasOwnProperty(o)){var a=this.findNodeId(o,e);a>-1&&this.insertIdIntoNode(o,r,a+1)}},i.prototype.insertIdIntoId=function(e,r){this.nodeInsertAtEnd(e,r),this.nodes[r]=[]},i.prototype.insertIdIntoRoot=function(e,r){if(r===void 0)this.rootInsertAtEnd(e);else if(r<0){var s=this.rootIds.length;this.rootIds.splice(r+s+1,0,e)}else this.rootIds.splice(r,0,e);this.nodes[e]=this.nodes[e]||[]},i.prototype.insertIdIntoNode=function(e,r,s){if(this.nodes[e]=this.nodes[e]||[],this.nodes[r]=this.nodes[r]||[],s===void 0)this.nodeInsertAtEnd(e,r);else if(s<0){var o=this.nodes[e].length;this.nodes[e].splice(s+o+1,0,r)}else this.nodes[e].splice(s,0,r)},i.prototype.moveId=function(e,r,s){var o=e,a=this.findRootId(o);this.nodes[r];for(var l in this.nodes)if(this.nodes.hasOwnProperty(l)){this.findNodeId(l,r);break}var c=r,u=this.findRootId(c);this.nodes[r];for(var l in this.nodes)if(this.nodes.hasOwnProperty(l)){this.findNodeId(l,r);break}if(a>-1)if(u>-1)switch(this.rootDelete(a),u>a&&u--,s){case Direction.BEFORE:this.insertIdIntoRoot(o,u);break;case Direction.AFTER:this.insertIdIntoRoot(o,u+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(c,o);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(c,o);break}else{this.rootDelete(a);for(var l in this.nodes)if(this.nodes.hasOwnProperty(l)){var d=this.findNodeId(l,c);if(d>-1){switch(s){case Direction.BEFORE:this.insertIdIntoNode(l,o,d);break;case Direction.AFTER:this.insertIdIntoNode(l,o,d+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(c,o);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(c,o);break}break}}}else if(u>-1){for(var l in this.nodes)if(this.nodes.hasOwnProperty(l)){var d=this.findNodeId(l,o);if(d>-1){this.nodeDeleteAtIndex(l,d);break}}switch(s){case Direction.BEFORE:this.insertIdIntoRoot(o,u);break;case Direction.AFTER:this.insertIdIntoRoot(o,u+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(c,o);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(c,o);break}}else{for(var l in this.nodes)if(this.nodes.hasOwnProperty(l)){var d=this.findNodeId(l,o);if(d>-1){this.nodeDeleteAtIndex(l,d);break}}for(var l in this.nodes)if(this.nodes.hasOwnProperty(l)){var d=this.findNodeId(l,c);if(d>-1){switch(s){case Direction.BEFORE:this.insertIdIntoNode(l,o,d);break;case Direction.AFTER:this.insertIdIntoNode(l,o,d+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(c,o);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(c,o);break}break}}}},i.prototype.swapArrayElements=function(e,r,s){var o=e[r];return e[r]=e[s],e[s]=o,e},i.prototype.rootDeleteId=function(e){var r=this.findRootId(e);r>-1&&this.rootDelete(r)},i.prototype.nodeAndSubNodesDelete=function(e){for(var r=[],s=0;s(i[i.pppppp=0]="pppppp",i[i.ppppp=1]="ppppp",i[i.pppp=2]="pppp",i[i.ppp=3]="ppp",i[i.pp=4]="pp",i[i.p=5]="p",i[i.mp=6]="mp",i[i.mf=7]="mf",i[i.f=8]="f",i[i.ff=9]="ff",i[i.fff=10]="fff",i[i.ffff=11]="ffff",i[i.fffff=12]="fffff",i[i.ffffff=13]="ffffff",i[i.sf=14]="sf",i[i.sff=15]="sff",i[i.sfp=16]="sfp",i[i.sfpp=17]="sfpp",i[i.fp=18]="fp",i[i.rf=19]="rf",i[i.rfz=20]="rfz",i[i.sfz=21]="sfz",i[i.sffz=22]="sffz",i[i.fz=23]="fz",i[i.other=24]="other",i))(DynamicEnum||{});InstantaneousDynamicExpression.staticConstructor();class DynamicsContainer{constructor(e,r){e instanceof ContinuousDynamicExpression?this.continuousDynamicExpression=e:e instanceof InstantaneousDynamicExpression&&(this.instantaneousDynamicExpression=e),this.staffNumber=r}static Compare(e,r){return e.parMultiExpression().AbsoluteTimestamp.CompareTo(r.parMultiExpression().AbsoluteTimestamp)}parMultiExpression(){if(this.continuousDynamicExpression)return this.continuousDynamicExpression.StartMultiExpression;if(this.instantaneousDynamicExpression)return this.instantaneousDynamicExpression.ParentMultiExpression}}class AbstractNotationInstruction{constructor(e){this.printObject=!0,this.parent=e}get Parent(){return this.parent}set Parent(e){this.parent=e}get PrintObject(){return this.printObject}set PrintObject(e){this.printObject=e}}class RhythmInstruction extends AbstractNotationInstruction{constructor(e,r){super(void 0),this.rhythm=e,this.numerator=e.Numerator,this.denominator=e.Denominator,this.symbolEnum=r}get Rhythm(){return this.rhythm}set Rhythm(e){this.rhythm=e}get SymbolEnum(){return this.symbolEnum}set SymbolEnum(e){this.symbolEnum=e}clone(){return new RhythmInstruction(this.rhythm.clone(),this.symbolEnum)}OperatorEquals(e){const r=this;return r===e?!0:!r||!e?!1:r.numerator===e.numerator&&r.denominator===e.denominator}OperatorNotEqual(e){return this!==e}ToString(){return"Rhythm: "+this.rhythm.toString()}}var RhythmSymbolEnum=(i=>(i[i.NONE=0]="NONE",i[i.COMMON=1]="COMMON",i[i.CUT=2]="CUT",i))(RhythmSymbolEnum||{});class MusicPartManagerIterator{constructor(e,r,s){this.currentMeasureIndex=0,this.currentPartIndex=0,this.currentVoiceEntryIndex=-1,this.currentDynamicEntryIndex=0,this.currentTempoEntryIndex=0,this.currentDynamicChangingExpressions=[],this.repetitionIterationCountDictKeys=[],this.repetitionIterationCountDictValues=[],this.currentRepetition=void 0,this.endReached=!1,this.frontReached=!1,this.currentTimeStamp=new Fraction$1(0,1),this.currentEnrolledMeasureTimestamp=new Fraction$1(0,1),this.currentRelativeInMeasureTimestamp=new Fraction$1(0,1),this.currentVerticalContainerInMeasureTimestamp=new Fraction$1(0,1),this.jumpResponsibleRepetition=void 0,this.activeDynamicExpressions=[],this.SkipInvisibleNotes=!0,this.testNoteIdx=0;try{this.frontReached=!0,this.musicSheet=e,this.currentBpm=e.userStartTempoInBPM,this.currentVoiceEntries=void 0,this.frontReached=!1;for(const o of this.musicSheet.Repetitions)this.setRepetitionIterationCount(o,1);for(let o=0;o=this.JumpResponsibleRepetition.StartIndex&&o.EndIndex<=this.JumpResponsibleRepetition.EndIndex&&this.resetRepetitionIterationCount(o)}}handleRepetitionsAtMeasureEnd(){for(let e=0,r=this.currentMeasure.LastRepetitionInstructions.length;e-1&&this.getRepetitionIterationCount(o)=this.JumpResponsibleRepetition.StartIndex&&o.EndIndex<=this.JumpResponsibleRepetition.EndIndex&&this.resetRepetitionIterationCount(o),this.repetitionIterationCountDictKeys.contains(o))){const a=o.getForwardJumpTargetForIteration(this.getRepetitionIterationCount(o));if(a>=0){this.currentMeasureIndex=a,this.currentMeasure=this.musicSheet.SourceMeasures[this.currentMeasureIndex],this.currentVoiceEntryIndex=-1,this.jumpResponsibleRepetition=o,this.forwardJumpOccurred=!0;return}a===-2&&(this.endReached=!0)}}}this.currentMeasureIndex++,this.JumpResponsibleRepetition!==void 0&&this.currentMeasureIndex>this.JumpResponsibleRepetition.EndIndex&&(this.jumpResponsibleRepetition=void 0)}doBackJump(e){this.currentMeasureIndex=e.getBackwardJumpTarget(),this.currentMeasure=this.musicSheet.SourceMeasures[this.currentMeasureIndex],this.currentVoiceEntryIndex=-1,this.incrementRepetitionIterationCount(e),this.jumpResponsibleRepetition=e,this.backJumpOccurred=!0}activateCurrentRhythmInstructions(){if(this.currentMeasure!==void 0&&this.currentMeasure.FirstInstructionsStaffEntries.length>0&&this.currentMeasure.FirstInstructionsStaffEntries[0]!==void 0){const e=this.currentMeasure.FirstInstructionsStaffEntries[0].Instructions;for(let r=0,s=e.length;r0&&(this.currentDynamicEntryIndex>=e.length||e[this.currentDynamicEntryIndex].parMultiExpression().AbsoluteTimestamp.gte(this.CurrentSourceTimestamp));)this.currentDynamicEntryIndex--;for(;this.currentDynamicEntryIndex0&&(this.currentTempoEntryIndex>=r.length||r[this.currentTempoEntryIndex].AbsoluteTimestamp.gte(this.CurrentSourceTimestamp));)this.currentTempoEntryIndex--;for(;this.currentTempoEntryIndex0){this.currentVoiceEntryIndex--;const e=this.currentMeasure.VerticalSourceStaffEntryContainers[this.currentVoiceEntryIndex];this.currentVoiceEntries=this.getVoiceEntries(e),this.currentVerticalContainerInMeasureTimestamp=e.Timestamp,this.currentTimeStamp=Fraction$1.plus(this.currentMeasure.AbsoluteTimestamp,this.currentVerticalContainerInMeasureTimestamp),this.activateCurrentDynamicOrTempoInstructions();const r=this.musicSheet.SelectionEnd;r&&this.currentTimeStamp.lt(r)&&(this.endReached=!1),this.currentMeasureIndex=this.musicSheet.SourceMeasures.indexOf(this.CurrentMeasure);return}else if(this.currentVoiceEntryIndex===0&&this.currentMeasureIndex!==0){const e=this.musicSheet.SourceMeasures[this.currentMeasureIndex-1];this.currentMeasureIndex--,this.currentMeasure=this.musicSheet.SourceMeasures[this.currentMeasureIndex];const r=e.VerticalSourceStaffEntryContainers[e.VerticalSourceStaffEntryContainers.length-1];this.currentVoiceEntries=this.getVoiceEntries(r),this.currentVerticalContainerInMeasureTimestamp=r.Timestamp,this.currentVoiceEntryIndex=e.VerticalSourceStaffEntryContainers.length-1,this.currentTimeStamp=Fraction$1.plus(this.currentMeasure.AbsoluteTimestamp,r.Timestamp),this.activateCurrentDynamicOrTempoInstructions();const s=this.musicSheet.SelectionEnd;s&&this.currentTimeStamp.lt(s)&&(this.endReached=!1);return}this.frontReached=!0,this.currentTimeStamp=new Fraction$1(-1,1)}recursiveMove(){var e,r,s,o;if(this.currentVoiceEntryIndex++,this.currentVoiceEntryIndex===0&&(this.handleRepetitionsAtMeasureBegin(),this.activateCurrentRhythmInstructions()),this.currentVoiceEntryIndex>=0&&this.currentVoiceEntryIndex=0&&this.currentMeasureIndex0){if(!e)return!0;for(let s=0,o=r.length;sr,this.openSheetMusicDisplay.Sheet.SelectionStart=this.openSheetMusicDisplay.Sheet.SourceMeasures[r].AbsoluteTimestamp,this.openSheetMusicDisplay.Sheet&&this.openSheetMusicDisplay.Sheet.SourceMeasures.length>s){const o=this.openSheetMusicDisplay.Sheet.SourceMeasures[s];this.openSheetMusicDisplay.Sheet.SelectionEnd=Fraction$1.plus(o.AbsoluteTimestamp,o.Duration)}this.iterator=this.manager.getIterator(),this.iterator.SkipInvisibleNotes=this.skipInvisibleNotes}getStaffEntryFromVoiceEntry(e){const r=e.ParentSourceStaffEntry.VerticalContainerParent.ParentMeasure.measureListIndex,s=e.ParentSourceStaffEntry.ParentStaff.idInMusicSheet;return this.graphic.findGraphicalStaffEntryFromMeasureList(s,r,e.ParentSourceStaffEntry)}updateWithTimestamp(e){const r=this.manager.absoluteEnrolledToSheetTimestamp(e),s=this.graphic.calculateXPositionFromTimestamp(r),o=s[0],a=s[1];this.updateCurrentPageFromSystem(a);const l=s[2];if(!l)return;const c=Math.max(l.parentMeasure.MeasureNumber,1);let u;for(const y of this.graphic.MeasureList[c-1])if(y){u=y;break}const d=this.graphic.calculateCursorPoints(o,a),g=d[0].y,m=d[1].y-g;if(u){if(this.updateWidthAndStyle(u.PositionAndShape,o,g,m),this.openSheetMusicDisplay.FollowCursor){const y=this.cursorElement.getBoundingClientRect().top;this.cursorElement.scrollIntoView({behavior:y<1e3?"smooth":"auto",block:this.ScrollPosition})}this.cursorElement.style.display=""}}update(){if(this.hidden||this.hidden===void 0||this.hidden===null)return;this.updateCurrentPage();const e=this.Iterator;let r=e.CurrentVisibleVoiceEntries(),s=e.CurrentMeasureIndex,o=0,a=0,l=0,c;if(r.length===0&&!e.FrontReached&&!e.EndReached&&(e.moveToPrevious(),r=e.CurrentVisibleVoiceEntries(),e.moveToNext()),e.FrontReached&&r.length===0){e.moveToNext(),r=e.CurrentVisibleVoiceEntries();const y=this.findVisibleGraphicalMeasure(e.CurrentMeasureIndex);o=y.PositionAndShape.AbsolutePosition.x,c=y.ParentMusicSystem,e.moveToPrevious()}else if(e.EndReached||!e.CurrentVoiceEntries||r.length===0){e.moveToPrevious(),r=e.CurrentVisibleVoiceEntries(),s=e.CurrentMeasureIndex;const y=this.findVisibleGraphicalMeasure(e.CurrentMeasureIndex);o=y.PositionAndShape.AbsolutePosition.x+y.PositionAndShape.Size.width,c=y.ParentMusicSystem,e.moveToNext()}else if(e.CurrentMeasure.isReducedToMultiRest){const y=this.findVisibleGraphicalMeasure(e.CurrentMeasureIndex),b=y.parentSourceMeasure.multipleRestMeasures,A=e.CurrentMeasure.multipleRestMeasureNumber/(b+1),E=y.PositionAndShape.Size.width-y.beginInstructionsWidth;o=y.PositionAndShape.AbsolutePosition.x+y.beginInstructionsWidth+A*E,c=y.ParentMusicSystem}else{const b=r.map(S=>this.getStaffEntryFromVoiceEntry(S)).sort((S,A)=>{var E,x,P,T;return((x=(E=S==null?void 0:S.PositionAndShape)==null?void 0:E.AbsolutePosition)==null?void 0:x.x)<=((T=(P=A==null?void 0:A.PositionAndShape)==null?void 0:P.AbsolutePosition)==null?void 0:T.x)?-1:1})[0];b&&(o=b.PositionAndShape.AbsolutePosition.x,c=b.parentMeasure.ParentMusicSystem)}if(!c)return;a=c.PositionAndShape.AbsolutePosition.y+c.StaffLines[0].PositionAndShape.RelativePosition.y;let u=c.PositionAndShape.AbsolutePosition.y;const d=c.StaffLines[c.StaffLines.length-1];d&&(u+=d.PositionAndShape.RelativePosition.y+d.StaffHeight),l=u-a;const g=this.findVisibleGraphicalMeasure(s);if(!g)return;const m=g.PositionAndShape;if(this.updateWidthAndStyle(m,o,a,l),this.openSheetMusicDisplay.FollowCursor&&this.cursorOptions.follow)if(this.openSheetMusicDisplay.EngravingRules.RenderSingleHorizontalStaffline)this.cursorElement.scrollIntoView({behavior:"smooth",inline:"center"});else{const y=this.cursorElement.getBoundingClientRect().top;this.cursorElement.scrollIntoView({behavior:y<1e3?"smooth":"auto",block:"center"})}this.cursorElement.style.display=""}findVisibleGraphicalMeasure(e){for(let r=0;r{s.push.apply(s,o.Notes)}),s}GNotesUnderCursor(e){const r=this.VoicesUnderCursor(e),s=[];return r.forEach(o=>{s.push(...o.Notes.map(a=>this.rules.GNote(a)))}),s}updateCurrentPage(){let e=this.iterator.currentTimeStamp;e.RealValue<0&&(e=new Fraction$1(0,0));for(const r of this.graphic.MusicPages)if(r.MusicSystems.last().GetSystemsLastTimeStamp().gt(e)){const o=r.PageNumber;return o!==this.currentPageNumber&&(this.container.removeChild(this.cursorElement),this.container=document.getElementById(this.rules.DYContainerId+o),this.container.appendChild(this.cursorElement)),this.currentPageNumber=o}return 1}get SkipInvisibleNotes(){return this.skipInvisibleNotes}set SkipInvisibleNotes(e){this.skipInvisibleNotes=e,this.iterator.SkipInvisibleNotes=e}get CursorOptions(){return this.cursorOptions}set CursorOptions(e){this.cursorOptions=e}updateCurrentPageFromSystem(e){if(e!=null&&e.Parent){const r=e.Parent.PageNumber;return r!==this.currentPageNumber&&(this.container.removeChild(this.cursorElement),this.container=document.getElementById(this.rules.DYContainerId+r),this.container.appendChild(this.cursorElement)),this.currentPageNumber=r}return 1}Dispose(){this.rules=void 0,this.openSheetMusicDisplay=void 0,this.cursorOptions=void 0}}var DrawingParametersEnum=(i=>(i.allon="allon",i.compact="compact",i.compacttight="compacttight",i.default="default",i.leadsheet="leadsheet",i.preview="preview",i.thumbnail="thumbnail",i))(DrawingParametersEnum||{}),CursorType=(i=>(i[i.Standard=0]="Standard",i[i.ThinLeft=1]="ThinLeft",i[i.ShortThinTopLeft=2]="ShortThinTopLeft",i[i.CurrentArea=3]="CurrentArea",i[i.CurrentAreaLeft=4]="CurrentAreaLeft",i))(CursorType||{}),AlignRestOption=(i=>(i[i.Never=0]="Never",i[i.Always=1]="Always",i[i.Auto=2]="Auto",i))(AlignRestOption||{}),FillEmptyMeasuresWithWholeRests=(i=>(i[i.No=0]="No",i[i.YesVisible=1]="YesVisible",i[i.YesInvisible=2]="YesInvisible",i))(FillEmptyMeasuresWithWholeRests||{}),BackendType=(i=>(i[i.SVG=0]="SVG",i[i.Canvas=1]="Canvas",i))(BackendType||{}),SkyBottomLineBatchCalculatorBackendType=(i=>(i[i.Plain=0]="Plain",i[i.WebGL=1]="WebGL",i))(SkyBottomLineBatchCalculatorBackendType||{});class OSMDOptions{static OSMDOptionsStandard(){return{autoResize:!0,backend:"svg",drawingParameters:DrawingParametersEnum.default}}static BackendTypeFromString(e){return e&&e.toLowerCase()==="canvas"?1:0}}class IXmlElement{constructor(e){if(this.hasAttributes=!1,!e)throw new Error("IXmlElement: expected Element, got undefined");this.elem=e,this.name=e.nodeName.toLowerCase(),e.hasAttributes()&&(this.hasAttributes=!0,this.firstAttribute=e.attributes[0]),this.hasElements=e.hasChildNodes(),e.childNodes.length===1&&e.childNodes[0].nodeType===Node.TEXT_NODE?this.value=e.childNodes[0].nodeValue:this.value=""}attribute(e){return this.elem.attributes.getNamedItem(e)}attributes(){if(!this.attrs){const e=this.elem.attributes,r=[];for(let s=0;s0){let s;for(let o=0,a=r.length;oo?1:0}getFirstNonNullStaffEntry(){for(let e=0,r=this.staffEntries.length;e(i[i.BaseWritingColor=0]="BaseWritingColor",i[i.FollowingCursor=1]="FollowingCursor",i[i.AlternativeFollowingCursor=2]="AlternativeFollowingCursor",i[i.PlaybackCursor=3]="PlaybackCursor",i[i.Highlighted=4]="Highlighted",i[i.ErrorUnderlay=5]="ErrorUnderlay",i[i.Selected=6]="Selected",i[i.SelectionSymbol=7]="SelectionSymbol",i[i.DebugColor1=8]="DebugColor1",i[i.DebugColor2=9]="DebugColor2",i[i.DebugColor3=10]="DebugColor3",i[i.SplitScreenDivision=11]="SplitScreenDivision",i[i.GreyTransparentOverlay=12]="GreyTransparentOverlay",i[i.MarkedArea1=13]="MarkedArea1",i[i.MarkedArea2=14]="MarkedArea2",i[i.MarkedArea3=15]="MarkedArea3",i[i.MarkedArea4=16]="MarkedArea4",i[i.MarkedArea5=17]="MarkedArea5",i[i.MarkedArea6=18]="MarkedArea6",i[i.MarkedArea7=19]="MarkedArea7",i[i.MarkedArea8=20]="MarkedArea8",i[i.MarkedArea9=21]="MarkedArea9",i[i.MarkedArea10=22]="MarkedArea10",i[i.Comment1=23]="Comment1",i[i.Comment2=24]="Comment2",i[i.Comment3=25]="Comment3",i[i.Comment4=26]="Comment4",i[i.Comment5=27]="Comment5",i[i.Comment6=28]="Comment6",i[i.Comment7=29]="Comment7",i[i.Comment8=30]="Comment8",i[i.Comment9=31]="Comment9",i[i.Comment10=32]="Comment10",i))(OutlineAndFillStyleEnum||{});const OUTLINE_AND_FILL_STYLE_DICT=new Dictionary;OUTLINE_AND_FILL_STYLE_DICT.setValue(0,"Thistle");OUTLINE_AND_FILL_STYLE_DICT.setValue(1,"Aqua");OUTLINE_AND_FILL_STYLE_DICT.setValue(2,"Azure");OUTLINE_AND_FILL_STYLE_DICT.setValue(3,"Bisque");OUTLINE_AND_FILL_STYLE_DICT.setValue(4,"CadetBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(5,"DarkBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(6,"DarkGoldenRod");OUTLINE_AND_FILL_STYLE_DICT.setValue(7,"BlanchedAlmond");OUTLINE_AND_FILL_STYLE_DICT.setValue(8,"Chartreuse");OUTLINE_AND_FILL_STYLE_DICT.setValue(9,"DarkGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(10,"DarkOrange");OUTLINE_AND_FILL_STYLE_DICT.setValue(11,"FireBrick");OUTLINE_AND_FILL_STYLE_DICT.setValue(12,"DarkSalmon");OUTLINE_AND_FILL_STYLE_DICT.setValue(13,"DarkSeaGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(14,"DarkOrchid");OUTLINE_AND_FILL_STYLE_DICT.setValue(15,"Aquamarine");OUTLINE_AND_FILL_STYLE_DICT.setValue(16,"DarkKhaki");OUTLINE_AND_FILL_STYLE_DICT.setValue(17,"ForestGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(18,"AliceBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(19,"DeepPink");OUTLINE_AND_FILL_STYLE_DICT.setValue(20,"Coral");OUTLINE_AND_FILL_STYLE_DICT.setValue(21,"DarkOliveGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(22,"Chocolate");OUTLINE_AND_FILL_STYLE_DICT.setValue(23,"DodgerBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(24,"Blue");OUTLINE_AND_FILL_STYLE_DICT.setValue(25,"Beige");OUTLINE_AND_FILL_STYLE_DICT.setValue(26,"Crimson");OUTLINE_AND_FILL_STYLE_DICT.setValue(27,"Fuchsia");OUTLINE_AND_FILL_STYLE_DICT.setValue(28,"Brown");OUTLINE_AND_FILL_STYLE_DICT.setValue(29,"BlanchedAlmond");OUTLINE_AND_FILL_STYLE_DICT.setValue(30,"CornflowerBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(31,"Cornsilk");OUTLINE_AND_FILL_STYLE_DICT.setValue(32,"DarkGrey");var GraphicalLayers=(i=>(i[i.Background=0]="Background",i[i.Highlight=1]="Highlight",i[i.MeasureError=2]="MeasureError",i[i.SelectionSymbol=3]="SelectionSymbol",i[i.Cursor=4]="Cursor",i[i.PSI_Debug=5]="PSI_Debug",i[i.Notes=6]="Notes",i[i.Comment=7]="Comment",i[i.Debug_above=8]="Debug_above",i))(GraphicalLayers||{}),NoteState=(i=>(i[i.Normal=0]="Normal",i[i.Selected=1]="Selected",i[i.Follow_Confirmed=2]="Follow_Confirmed",i[i.QFeedback_NotFound=3]="QFeedback_NotFound",i[i.QFeedback_OK=4]="QFeedback_OK",i[i.QFeedback_Perfect=5]="QFeedback_Perfect",i[i.Debug1=6]="Debug1",i[i.Debug2=7]="Debug2",i[i.Debug3=8]="Debug3",i))(NoteState||{}),AutoColorSet=(i=>(i.C="#d82c6b",i.D="#F89D15",i.E="#FFE21A",i.F="#4dbd5c",i.G="#009D96",i.A="#43469d",i.B="#76429c",i.Rest="#000000",i))(AutoColorSet||{});class GraphicalLine{constructor(e,r,s=0,o=OutlineAndFillStyleEnum.BaseWritingColor,a=void 0){this.start=e,this.end=r,this.width=s,this.styleId=o,this.colorHex=a}get Start(){return this.start}set Start(e){this.start=e}get End(){return this.end}set End(e){this.end=e}get Width(){return this.width}set Width(e){this.width=e}}class PointF2D{constructor(e=0,r=0){this.x=0,this.y=0,this.x=e,this.y=r}static get Empty(){return new PointF2D}static pointsAreEqual(e,r){return e.x===r.x&&e.y===r.y}ToString(){return"["+this.x+", "+this.y+"]"}}var NoteEnum=(i=>(i[i.C=0]="C",i[i.D=2]="D",i[i.E=4]="E",i[i.F=5]="F",i[i.G=7]="G",i[i.A=9]="A",i[i.B=11]="B",i))(NoteEnum||{}),AccidentalEnum=(i=>(i[i.SHARP=0]="SHARP",i[i.FLAT=1]="FLAT",i[i.NONE=2]="NONE",i[i.NATURAL=3]="NATURAL",i[i.DOUBLESHARP=4]="DOUBLESHARP",i[i.DOUBLEFLAT=5]="DOUBLEFLAT",i[i.TRIPLESHARP=6]="TRIPLESHARP",i[i.TRIPLEFLAT=7]="TRIPLEFLAT",i[i.QUARTERTONESHARP=8]="QUARTERTONESHARP",i[i.QUARTERTONEFLAT=9]="QUARTERTONEFLAT",i[i.SLASHFLAT=10]="SLASHFLAT",i[i.THREEQUARTERSSHARP=11]="THREEQUARTERSSHARP",i[i.THREEQUARTERSFLAT=12]="THREEQUARTERSFLAT",i[i.SLASHQUARTERSHARP=13]="SLASHQUARTERSHARP",i[i.SLASHSHARP=14]="SLASHSHARP",i[i.DOUBLESLASHFLAT=15]="DOUBLESLASHFLAT",i[i.SORI=16]="SORI",i[i.KORON=17]="KORON",i))(AccidentalEnum||{});const _Pitch=class{constructor(i,e,r,s=void 0,o=!1){this.accidental=2,this.fundamentalNote=i,this.octave=e,this.accidental=r,this.accidentalXml=s,this.halfTone=i+(e+_Pitch.octXmlDiff)*12+_Pitch.HalfTonesFromAccidental(r),o||(this.frequency=_Pitch.calcFrequency(this),this.nextFrequency=_Pitch.calcFrequency(this,"next"),this.prevFrequency=_Pitch.calcFrequency(this,"prev"))}static getNoteEnumString(i){switch(i){case 0:return"C";case 2:return"D";case 4:return"E";case 5:return"F";case 7:return"G";case 9:return"A";case 11:return"B";default:return""}}static lineShiftFromNoteEnum(i,e){if(e===0)return[i,0];const r=_Pitch.pitchEnumValues,s=r.indexOf(i);let o=0,a=(s+e)%r.length;return s+e>r.length-1&&(o=1),a<0&&(a=r.length+a,o=-1),[r[a],o]}static CalculateTransposedHalfTone(i,e){const r=i.fundamentalNote+i.AccidentalHalfTones+e;return _Pitch.WrapAroundCheck(r,12)}static WrapAroundCheck(i,e){let r=0;for(;i<0;)i+=e,r--;for(;i>=e;)i-=e,r++;return{overflow:r,halftone:i}}static calcFrequency(i,e){const r=window.DYProjectName==="musicScore"?{"-2":[11,3],"-7":[12],"-9":[5],12:[33,34,35,37,38,2],24:[39]}:{"-2":[4,12,23],"-7":[13],"-9":[6],12:[5,116,55]};let s=0,o;if(i instanceof _Pitch){const d=i;s=d.octave-1,o=d.fundamentalNote-9+d.AccidentalHalfTones}else typeof i=="number"&&(o=i-57);const a=window.DYSubjectId;let l=0;if(window.DYEnvironment==="COLEXIU"&&(r[12]=[120]),window.xmlNeedAdjustVoice){for(const d in r)if(Object.prototype.hasOwnProperty.call(r,d)&&r[d].includes(a)){l=parseFloat(d);break}}let c=o+l;return e==="next"&&c++,e==="prev"&&c--,442*Math.pow(2,s)*Math.pow(2,c/12)}static calcFractionalKey(i){return Math.log(i/440)/Math.LN10*_Pitch.halftoneFactor+57}static fromFrequency(i){const e=_Pitch.calcFractionalKey(i)+.5,r=Math.floor(e/12)-_Pitch.octXmlDiff,s=Math.floor(e)%12;let o=s,a=2;return this.pitchEnumValues.indexOf(o)===-1&&(o=s-1,a=0),new _Pitch(o,r,a)}static fromHalftone(i){const e=Math.floor(i/12)-_Pitch.octXmlDiff,r=i%12;let s=r,o=2;return this.pitchEnumValues.indexOf(s)===-1&&(s=r-1,o=0),new _Pitch(s,e,o)}static ceiling(i){i=i%12;let e=i;return this.pitchEnumValues.indexOf(e)===-1&&(e=i+1),e}static floor(i){i=i%12;let e=i;return this.pitchEnumValues.indexOf(e)===-1&&(e=i-1),e}static HalfTonesFromAccidental(i){switch(i){case 2:return 0;case 0:return 1;case 1:return-1;case 3:return 0;case 4:return 2;case 5:return-2;case 6:return 3;case 7:return-3;case 8:return .5;case 9:return-.5;case 10:return-.51;case 11:return 1.5;case 12:return-1.5;case 13:return .0013;case 14:return .0014;case 15:return-.0015;case 16:return .0016;case 17:return .0017;default:throw new Error("Unhandled AccidentalEnum value")}}static AccidentalFromHalfTones(i){switch(i){case 0:return 2;case 1:return 0;case-1:return 1;case 2:return 4;case-2:return 5;case 3:return 6;case-3:return 7;case .5:return 8;case-.5:return 9;case 1.5:return 11;case-1.5:return 12;default:return i>0&&i<1?8:i<0&&i>-1?9:8}}static accidentalVexflow(i){let e;switch(i){case 3:e="n";break;case 1:e="b";break;case 0:e="#";break;case 4:e="##";break;case 6:e="###";break;case 5:e="bb";break;case 7:e="bbs";break;case 8:e="+";break;case 9:e="d";break;case 10:e="bs";break;case 11:e="++";break;case 12:e="db";break;case 13:e="+-";break;case 14:e="++-";break;case 15:e="bss";break;case 16:e="o";break;case 17:e="k";break}return e}get AccidentalHalfTones(){return _Pitch.HalfTonesFromAccidental(this.accidental)}get Octave(){return this.octave}get FundamentalNote(){return this.fundamentalNote}get Accidental(){return this.accidental}get AccidentalXml(){return this.accidentalXml}get Frequency(){return this.frequency}static get OctaveXmlDifference(){return _Pitch.octXmlDiff}getHalfTone(){return this.halfTone}getTransposedPitch(i){if(i>12)throw new Error("rewrite this method to handle bigger octave changes or don't use is with bigger octave changes!");return i>0?this.getHigherPitchByTransposeFactor(i):i<0?this.getLowerPitchByTransposeFactor(-i):this}DoEnharmonicChange(){switch(this.accidental){case 1:case 5:this.fundamentalNote=this.getPreviousFundamentalNote(this.fundamentalNote),this.accidental=_Pitch.AccidentalFromHalfTones(this.halfTone-(this.fundamentalNote+(this.octave+_Pitch.octXmlDiff)*12));break;case 0:case 4:this.fundamentalNote=this.getNextFundamentalNote(this.fundamentalNote),this.accidental=_Pitch.AccidentalFromHalfTones(this.halfTone-(this.fundamentalNote+(this.octave+_Pitch.octXmlDiff)*12));break;default:return}}ToString(){let i=_Pitch.accidentalVexflow(this.accidental);return i||(i=""),"Key: "+_Pitch.getNoteEnumString(this.fundamentalNote)+i+", Note: "+this.fundamentalNote+", octave: "+this.octave.toString()}ToStringShort(i=0){let e=_Pitch.accidentalVexflow(this.accidental);e||(e="");const r=this.octave+i;return _Pitch.getNoteEnumString(this.fundamentalNote)+e+r}get ToStringShortGet(){return this.ToStringShort(0)}OperatorEquals(i){const e=this;return!e||!i?!1:e.FundamentalNote===i.FundamentalNote&&e.Octave===i.Octave&&e.Accidental===i.Accidental}OperatorNotEqual(i){return this!==i}OperatorFundamentalGreaterThan(i){const e=this;return e.Octave===i.Octave?e.FundamentalNote>i.FundamentalNote:e.Octave>i.Octave}OperatorFundamentalLessThan(i){const e=this;return e.Octave===i.Octave?e.FundamentalNote_Pitch.pitchEnumValues.length-1?(s=_Pitch.pitchEnumValues[e+i-_Pitch.pitchEnumValues.length],r++):s=_Pitch.pitchEnumValues[e+i],new _Pitch(s,r,2)}getLowerPitchByTransposeFactor(i){const e=_Pitch.pitchEnumValues.indexOf(this.fundamentalNote);let r=this.octave,s;return e-i<0?(s=_Pitch.pitchEnumValues[_Pitch.pitchEnumValues.length+e-i],r--):s=_Pitch.pitchEnumValues[e-i],new _Pitch(s,r,2)}getNextFundamentalNote(i){let e=_Pitch.pitchEnumValues.indexOf(i);return e=(e+1)%_Pitch.pitchEnumValues.length,_Pitch.pitchEnumValues[e]}getPreviousFundamentalNote(i){const e=_Pitch.pitchEnumValues.indexOf(i);return e>0?_Pitch.pitchEnumValues[e-1]:_Pitch.pitchEnumValues[_Pitch.pitchEnumValues.length-1]}};let Pitch=_Pitch;Pitch.pitchEnumValues=[0,2,4,5,7,9,11];Pitch.halftoneFactor=12/(Math.LN2/Math.LN10);Pitch.octXmlDiff=3;class ClefInstruction extends AbstractNotationInstruction{constructor(e=0,r=0,s=2){super(void 0),this.clefType=0,this.line=2,this.octaveOffset=0,this.line=s,this.clefType=e,this.octaveOffset=r,this.calcParameters()}static getDefaultClefFromMidiInstrument(e){switch(e){case 0:return new ClefInstruction(1,0,4);case 33:return new ClefInstruction(1,0,4);case 34:return new ClefInstruction(1,0,4);case 35:return new ClefInstruction(1,0,4);case 36:return new ClefInstruction(1,0,4);case 37:return new ClefInstruction(1,0,4);case 38:return new ClefInstruction(1,0,4);case 39:return new ClefInstruction(1,0,4);case 43:return new ClefInstruction(1,0,4);default:return new ClefInstruction(0,0,2)}}static getAllPossibleClefs(){const e=[];for(let r=0;r<=2;r++){const s=new ClefInstruction(0,r,2);e.push(s)}for(let r=-2;r<=0;r++){const s=new ClefInstruction(1,r,4);e.push(s)}return e}static isSupportedClef(e){switch(e){case 0:case 1:case 2:case 3:case 4:return!0;default:return!1}}get ClefType(){return this.clefType}set ClefType(e){this.clefType=e}get Line(){return this.line}set Line(e){this.line=e}get OctaveOffset(){return this.octaveOffset}set OctaveOffset(e){this.octaveOffset=e}get ClefPitch(){return this.clefPitch}set ClefPitch(e){this.clefPitch=e}get ReferenceCyPosition(){return this.referenceCyPosition}set ReferenceCyPosition(e){this.referenceCyPosition=e}Equals(e){return this===e?!0:!this||!e?!1:this.clefPitch===e.clefPitch&&this.Line===e.Line}NotEqual(e){return!this.Equals(e)}ToString(){return"ClefType: "+this.clefType}calcParameters(){switch(this.clefType){case 0:this.clefPitch=new Pitch(NoteEnum.G,1+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line+2;break;case 1:this.clefPitch=new Pitch(NoteEnum.F,0+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line+1.5;break;case 2:this.clefPitch=new Pitch(NoteEnum.C,1+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line;break;case 3:this.clefPitch=new Pitch(NoteEnum.C,2,AccidentalEnum.NONE),this.referenceCyPosition=2;break;case 4:this.clefPitch=new Pitch(NoteEnum.G,0,AccidentalEnum.NONE),this.referenceCyPosition=0;break;default:throw new ArgumentOutOfRangeException("clefType")}}}var ClefEnum=(i=>(i[i.G=0]="G",i[i.F=1]="F",i[i.C=2]="C",i[i.percussion=3]="percussion",i[i.TAB=4]="TAB",i))(ClefEnum||{}),MidiInstrument=(i=>(i[i.None=-1]="None",i[i.Acoustic_Grand_Piano=0]="Acoustic_Grand_Piano",i[i.Bright_Acoustic_Piano=1]="Bright_Acoustic_Piano",i[i.Electric_Grand_Piano=2]="Electric_Grand_Piano",i[i.Honky_tonk_Piano=3]="Honky_tonk_Piano",i[i.Electric_Piano_1=4]="Electric_Piano_1",i[i.Electric_Piano_2=5]="Electric_Piano_2",i[i.Harpsichord=6]="Harpsichord",i[i.Clavinet=7]="Clavinet",i[i.Celesta=8]="Celesta",i[i.Glockenspiel=9]="Glockenspiel",i[i.Music_Box=10]="Music_Box",i[i.Vibraphone=11]="Vibraphone",i[i.Marimba=12]="Marimba",i[i.Xylophone=13]="Xylophone",i[i.Tubular_Bells=14]="Tubular_Bells",i[i.Dulcimer=15]="Dulcimer",i[i.Drawbar_Organ=16]="Drawbar_Organ",i[i.Percussive_Organ=17]="Percussive_Organ",i[i.Rock_Organ=18]="Rock_Organ",i[i.Church_Organ=19]="Church_Organ",i[i.Reed_Organ=20]="Reed_Organ",i[i.Accordion=21]="Accordion",i[i.Harmonica=22]="Harmonica",i[i.Tango_Accordion=23]="Tango_Accordion",i[i.Acoustic_Guitar_nylon=24]="Acoustic_Guitar_nylon",i[i.Acoustic_Guitar_steel=25]="Acoustic_Guitar_steel",i[i.Electric_Guitar_jazz=26]="Electric_Guitar_jazz",i[i.Electric_Guitar_clean=27]="Electric_Guitar_clean",i[i.Electric_Guitar_muted=28]="Electric_Guitar_muted",i[i.Overdriven_Guitar=29]="Overdriven_Guitar",i[i.Distortion_Guitar=30]="Distortion_Guitar",i[i.Guitar_harmonics=31]="Guitar_harmonics",i[i.Acoustic_Bass=32]="Acoustic_Bass",i[i.Electric_Bass_finger=33]="Electric_Bass_finger",i[i.Electric_Bass_pick=34]="Electric_Bass_pick",i[i.Fretless_Bass=35]="Fretless_Bass",i[i.Slap_Bass_1=36]="Slap_Bass_1",i[i.Slap_Bass_2=37]="Slap_Bass_2",i[i.Synth_Bass_1=38]="Synth_Bass_1",i[i.Synth_Bass_2=39]="Synth_Bass_2",i[i.Violin=40]="Violin",i[i.Viola=41]="Viola",i[i.Cello=42]="Cello",i[i.Contrabass=43]="Contrabass",i[i.Tremolo_Strings=44]="Tremolo_Strings",i[i.Pizzicato_Strings=45]="Pizzicato_Strings",i[i.Orchestral_Harp=46]="Orchestral_Harp",i[i.Timpani=47]="Timpani",i[i.String_Ensemble_1=48]="String_Ensemble_1",i[i.String_Ensemble_2=49]="String_Ensemble_2",i[i.Synth_Strings_1=50]="Synth_Strings_1",i[i.Synth_Strings_2=51]="Synth_Strings_2",i[i.Choir_Aahs=52]="Choir_Aahs",i[i.Voice_Oohs=53]="Voice_Oohs",i[i.Synth_Voice=54]="Synth_Voice",i[i.Orchestra_Hit=55]="Orchestra_Hit",i[i.Trumpet=56]="Trumpet",i[i.Trombone=57]="Trombone",i[i.Tuba=58]="Tuba",i[i.Muted_Trumpet=59]="Muted_Trumpet",i[i.French_Horn=60]="French_Horn",i[i.Brass_Section=61]="Brass_Section",i[i.Synth_Brass_1=62]="Synth_Brass_1",i[i.Synth_Brass_2=63]="Synth_Brass_2",i[i.Soprano_Sax=64]="Soprano_Sax",i[i.Alto_Sax=65]="Alto_Sax",i[i.Tenor_Sax=66]="Tenor_Sax",i[i.Baritone_Sax=67]="Baritone_Sax",i[i.Oboe=68]="Oboe",i[i.English_Horn=69]="English_Horn",i[i.Bassoon=70]="Bassoon",i[i.Clarinet=71]="Clarinet",i[i.Piccolo=72]="Piccolo",i[i.Flute=73]="Flute",i[i.Recorder=74]="Recorder",i[i.Pan_Flute=75]="Pan_Flute",i[i.Blown_Bottle=76]="Blown_Bottle",i[i.Shakuhachi=77]="Shakuhachi",i[i.Whistle=78]="Whistle",i[i.Ocarina=79]="Ocarina",i[i.Lead_1_square=80]="Lead_1_square",i[i.Lead_2_sawtooth=81]="Lead_2_sawtooth",i[i.Lead_3_calliope=82]="Lead_3_calliope",i[i.Lead_4_chiff=83]="Lead_4_chiff",i[i.Lead_5_charang=84]="Lead_5_charang",i[i.Lead_6_voice=85]="Lead_6_voice",i[i.Lead_7_fifths=86]="Lead_7_fifths",i[i.Lead_8_bass_lead=87]="Lead_8_bass_lead",i[i.Pad_1_new_age=88]="Pad_1_new_age",i[i.Pad_2_warm=89]="Pad_2_warm",i[i.Pad_3_polysynth=90]="Pad_3_polysynth",i[i.Pad_4_choir=91]="Pad_4_choir",i[i.Pad_5_bowed=92]="Pad_5_bowed",i[i.Pad_6_metallic=93]="Pad_6_metallic",i[i.Pad_7_halo=94]="Pad_7_halo",i[i.Pad_8_sweep=95]="Pad_8_sweep",i[i.FX_1_rain=96]="FX_1_rain",i[i.FX_2_soundtrack=97]="FX_2_soundtrack",i[i.FX_3_crystal=98]="FX_3_crystal",i[i.FX_4_atmosphere=99]="FX_4_atmosphere",i[i.FX_5_brightness=100]="FX_5_brightness",i[i.FX_6_goblins=101]="FX_6_goblins",i[i.FX_7_echoes=102]="FX_7_echoes",i[i.FX_8_scifi=103]="FX_8_scifi",i[i.Sitar=104]="Sitar",i[i.Banjo=105]="Banjo",i[i.Shamisen=106]="Shamisen",i[i.Koto=107]="Koto",i[i.Kalimba=108]="Kalimba",i[i.Bag_pipe=109]="Bag_pipe",i[i.Fiddle=110]="Fiddle",i[i.Shanai=111]="Shanai",i[i.Tinkle_Bell=112]="Tinkle_Bell",i[i.Agogo=113]="Agogo",i[i.Steel_Drums=114]="Steel_Drums",i[i.Woodblock=115]="Woodblock",i[i.Taiko_Drum=116]="Taiko_Drum",i[i.Melodic_Tom=117]="Melodic_Tom",i[i.Synth_Drum=118]="Synth_Drum",i[i.Reverse_Cymbal=119]="Reverse_Cymbal",i[i.Guitar_Fret_Noise=120]="Guitar_Fret_Noise",i[i.Breath_Noise=121]="Breath_Noise",i[i.Seashore=122]="Seashore",i[i.Bird_Tweet=123]="Bird_Tweet",i[i.Telephone_Ring=124]="Telephone_Ring",i[i.Helicopter=125]="Helicopter",i[i.Applause=126]="Applause",i[i.Gunshot=127]="Gunshot",i[i.Percussion=128]="Percussion",i))(MidiInstrument||{});const _KeyInstruction=class extends AbstractNotationInstruction{constructor(i=void 0,e=0,r=0){super(i),this.isTransposedBy=0,this.Key=e,this.keyTypeOriginal=e,this.mode=r,this.alteratedNotes=this.calcAlteratedNotes()}static copy(i){const e=new _KeyInstruction(i.parent,i.Key,i.Mode);return e.keyTypeOriginal=i.keyTypeOriginal,e}static getAllPossibleMajorKeyInstructions(){const i=[];for(let e=-7;e<7;e++){const r=new _KeyInstruction(void 0,e,0);i.push(r)}return i}get Key(){return this.keyType}set Key(i){this.keyType=i,this.alteratedNotes=this.calcAlteratedNotes()}get Mode(){return this.mode}set Mode(i){this.mode=i}get AlteratedNotes(){return this.alteratedNotes}calcAlteratedNotes(){const i=[];if(this.keyType>0)for(let e=0;e=0}getAlterationForPitch(i){return this.keyType>0&&this.alteratedNotes.indexOf(i.FundamentalNote)<=this.keyType?AccidentalEnum.SHARP:this.keyType<0&&this.alteratedNotes.indexOf(i.FundamentalNote)<=Math.abs(this.keyType)?AccidentalEnum.FLAT:AccidentalEnum.NONE}ToString(){return"Key: "+this.keyType+this.mode}OperatorEquals(i){const e=this;return e===i?!0:!e||!i?!1:e.Key===i.Key&&e.Mode===i.Mode}OperatorNotEqual(i){return!this.OperatorEquals(i)}};let KeyInstruction=_KeyInstruction;KeyInstruction.sharpPositionList=[NoteEnum.F,NoteEnum.C,NoteEnum.G,NoteEnum.D,NoteEnum.A,NoteEnum.E,NoteEnum.B];KeyInstruction.flatPositionList=[NoteEnum.B,NoteEnum.E,NoteEnum.A,NoteEnum.D,NoteEnum.G,NoteEnum.C,NoteEnum.F];var KeyEnum=(i=>(i[i.major=0]="major",i[i.minor=1]="minor",i[i.none=2]="none",i[i.dorian=3]="dorian",i[i.phrygian=4]="phrygian",i[i.lydian=5]="lydian",i[i.mixolydian=6]="mixolydian",i[i.aeolian=7]="aeolian",i[i.ionian=8]="ionian",i[i.locrian=9]="locrian",i))(KeyEnum||{});class SizeF2D{constructor(e=0,r=0){this.width=e,this.height=r}}class RectangleF2D{constructor(e,r,s,o){this.x=0,this.y=0,this.width=0,this.height=0,this.x=e,this.y=r,this.width=s,this.height=o}static createFromLocationAndSize(e,r){return new RectangleF2D(e.x,e.y,r.width,r.height)}get Location(){return new PointF2D(this.x,this.y)}get Size(){return new SizeF2D(this.width,this.height)}}class AClassHierarchyTrackable{isInstanceOfClass(e){let r=this.constructor.prototype;for(;r;){if(e===r.constructor.name)return!0;r=r.__proto__}return!1}}class GraphicalObject extends AClassHierarchyTrackable{get PositionAndShape(){return this.boundingBox}set PositionAndShape(e){this.boundingBox=e}}class Clickable extends GraphicalObject{}let BoundingBox$1=class{constructor(e=void 0,r=void 0,s=!1){this.isSymbol=!1,this.relativePositionHasBeenSet=!1,this.xBordersHaveBeenSet=!1,this.yBordersHaveBeenSet=!1,this.absolutePosition=new PointF2D,this.relativePosition=new PointF2D,this.size=new SizeF2D,this.marginSize=new SizeF2D,this.upperLeftCorner=new PointF2D,this.upperLeftMarginCorner=new PointF2D,this.borderLeft=0,this.borderRight=0,this.borderTop=0,this.borderBottom=0,this.borderMarginLeft=0,this.borderMarginRight=0,this.borderMarginTop=0,this.borderMarginBottom=0,this.childElements=[],this.parent=r,this.dataObject=e,this.isSymbol=s,this.xBordersHaveBeenSet=!1,this.yBordersHaveBeenSet=!1,r&&(this.Parent=r)}get RelativePositionHasBeenSet(){return this.relativePositionHasBeenSet}get XBordersHaveBeenSet(){return this.xBordersHaveBeenSet}set XBordersHaveBeenSet(e){this.xBordersHaveBeenSet=e}get YBordersHaveBeenSet(){return this.yBordersHaveBeenSet}set YBordersHaveBeenSet(e){this.yBordersHaveBeenSet=e}get AbsolutePosition(){return this.absolutePosition}set AbsolutePosition(e){this.absolutePosition=e}get RelativePosition(){return this.relativePosition}set RelativePosition(e){this.relativePosition=e,this.relativePositionHasBeenSet=!0}get Size(){return this.size}set Size(e){this.size=e}get MarginSize(){return this.marginSize}get UpperLeftCorner(){return this.upperLeftCorner}get UpperLeftMarginCorner(){return this.upperLeftMarginCorner}get BorderLeft(){return this.borderLeft}set BorderLeft(e){this.borderLeft=e,this.calculateRectangle()}get BorderRight(){return this.borderRight}set BorderRight(e){this.borderRight=e,this.calculateRectangle()}get BorderTop(){return this.borderTop}set BorderTop(e){this.borderTop=e,this.calculateRectangle()}get BorderBottom(){return this.borderBottom}set BorderBottom(e){this.borderBottom=e,this.calculateRectangle()}get BorderMarginLeft(){return this.borderMarginLeft>this.borderLeft?this.borderLeft:this.borderMarginLeft}set BorderMarginLeft(e){this.borderMarginLeft=e,this.calculateMarginRectangle()}get BorderMarginRight(){return this.borderMarginRightthis.borderTop?this.borderTop:this.borderMarginTop}set BorderMarginTop(e){this.borderMarginTop=e,this.calculateMarginRectangle()}get BorderMarginBottom(){return this.borderMarginBottom-1&&this.parent.ChildElements.splice(l,1)}this.parent=e,((s=(r=this.parent)==null?void 0:r.ChildElements)==null?void 0:s.indexOf(this))>-1?loglevelExports.error("BoundingBox of "+this.dataObject.constructor.name+" already in children list of "+this.parent.dataObject.constructor.name+"'s BoundingBox"):(a=(o=this.parent)==null?void 0:o.ChildElements)==null||a.push(this)}get DataObject(){return this.dataObject}get Center(){return new PointF2D(this.RelativePosition.x+(this.BorderMarginRight+this.BorderMarginLeft),this.RelativePosition.y+(this.BorderMarginBottom+this.BorderMarginTop))}setAbsolutePositionFromParent(){this.parent?(this.absolutePosition.x=this.parent.AbsolutePosition.x+this.relativePosition.x,this.absolutePosition.y=this.parent.AbsolutePosition.y+this.relativePosition.y):this.absolutePosition=this.relativePosition}calculateAbsolutePosition(){this.absolutePosition.x=this.relativePosition.x,this.absolutePosition.y=this.relativePosition.y;let e=this.parent;for(;e;)this.absolutePosition.x+=e.relativePosition.x,this.absolutePosition.y+=e.relativePosition.y,e=e.parent}calculateAbsolutePositionsRecursiveWithoutTopelement(){this.absolutePosition.x=0,this.absolutePosition.y=0;for(let e=0,r=this.ChildElements.length;e.001;break;case 2:case 3:o=this.relativePosition.y,e.calculateMarginPositionAlongDirection(this,r),a=Math.abs(o-this.relativePosition.y)>.001;break;default:throw new ArgumentOutOfRangeException("direction")}while(a)}collisionDetection(e){const r=Math.min(this.AbsolutePosition.x+this.borderRight,e.absolutePosition.x+e.borderRight)-Math.max(this.AbsolutePosition.x+this.borderLeft,e.absolutePosition.x+e.borderLeft),s=Math.min(this.AbsolutePosition.y+this.borderBottom,e.absolutePosition.y+e.borderBottom)-Math.max(this.AbsolutePosition.y+this.borderTop,e.absolutePosition.y+e.borderTop);return r>0&&s>0}liesInsideBorders(e){const r=this.AbsolutePosition.x+this.borderLeft<=e.absolutePosition.x+e.borderLeft&&e.absolutePosition.x+e.borderLeft<=this.AbsolutePosition.x+this.borderRight,s=this.AbsolutePosition.x+this.borderLeft<=e.absolutePosition.x+e.borderRight&&e.absolutePosition.x+e.borderRight<=this.AbsolutePosition.x+this.borderRight;if(r&&s){const o=this.AbsolutePosition.y+this.borderTop<=e.absolutePosition.y+e.borderTop&&e.absolutePosition.y+e.borderTop<=this.AbsolutePosition.y+this.borderBottom,a=this.AbsolutePosition.y+this.borderTop<=e.absolutePosition.y+e.borderBottom&&e.absolutePosition.y+e.borderBottom<=this.AbsolutePosition.y+this.borderBottom;if(o&&a)return!0}return!1}pointLiesInsideBorders(e){return this.AbsolutePosition.x+this.borderLeft<=e.x&&e.x<=this.AbsolutePosition.x+this.borderRight&&this.AbsolutePosition.y+this.borderTop<=e.y&&e.y<=this.AbsolutePosition.y+this.borderBottom}marginCollisionDetection(e){const r=Math.min(this.AbsolutePosition.x+this.borderMarginRight,e.absolutePosition.x+e.borderMarginRight)-Math.max(this.AbsolutePosition.x+this.borderMarginLeft,e.absolutePosition.x+e.borderMarginLeft),s=Math.min(this.AbsolutePosition.y+this.borderMarginBottom,e.absolutePosition.y+e.borderMarginBottom)-Math.max(this.AbsolutePosition.y+this.borderMarginTop,e.absolutePosition.y+e.borderMarginTop);return r>0&&s>0}liesInsideMargins(e){const r=this.AbsolutePosition.x+this.borderMarginLeft<=e.absolutePosition.x+e.borderMarginLeft&&e.absolutePosition.x+e.borderMarginLeft<=this.AbsolutePosition.x+this.borderMarginRight,s=this.AbsolutePosition.x+this.borderMarginLeft<=e.absolutePosition.x+e.borderMarginRight&&e.absolutePosition.x+e.borderMarginRight<=this.AbsolutePosition.x+this.borderMarginRight;if(r&&s){const o=this.AbsolutePosition.y+this.borderMarginTop<=e.absolutePosition.y+e.borderMarginTop&&e.absolutePosition.y+e.borderMarginTop<=this.AbsolutePosition.y+this.borderMarginBottom,a=this.AbsolutePosition.y+this.borderMarginTop<=e.absolutePosition.y+e.borderMarginBottom&&e.absolutePosition.y+e.borderMarginBottom<=this.AbsolutePosition.y+this.borderMarginBottom;if(o&&a)return!0}return!1}pointLiesInsideMargins(e){return this.AbsolutePosition.x+this.borderMarginLeft<=e.x&&e.x<=this.AbsolutePosition.x+this.borderMarginRight&&this.AbsolutePosition.y+this.borderMarginTop<=e.y&&e.y<=this.AbsolutePosition.y+this.borderMarginBottom}computeNonOverlappingPosition(e,r,s){this.RelativePosition=new PointF2D(s.x,s.y),this.setAbsolutePositionFromParent();let o=0,a=!1;do switch(r){case 0:case 1:o=this.relativePosition.x,e.calculatePositionAlongDirection(this,r),a=Math.abs(o-this.relativePosition.x)>1e-4;break;case 2:case 3:o=this.relativePosition.y,e.calculatePositionAlongDirection(this,r),a=Math.abs(o-this.relativePosition.y)>1e-4;break;default:throw new ArgumentOutOfRangeException("direction")}while(a)}getClickedObjectOfType(e){const r=this.dataObject;if(this.pointLiesInsideBorders(e)&&r)return r;for(let s=0,o=this.childElements.length;s(i[i.Left=0]="Left",i[i.Right=1]="Right",i[i.Up=2]="Up",i[i.Down=3]="Down",i[i.NotYetDefined=4]="NotYetDefined",i))(ColDirEnum||{});Array.prototype.last||Object.defineProperty(Array.prototype,"last",{enumerable:!1,writable:!0,value:function(){return this[this.length-1]}});Array.prototype.clear||Object.defineProperty(Array.prototype,"clear",{enumerable:!1,writable:!0,value:function(){this.length=0}});Array.prototype.contains||Object.defineProperty(Array.prototype,"contains",{enumerable:!1,writable:!0,value:function(i){return this.indexOf(i)!==-1}});class CollectionUtil{static contains2(e,r){for(let s=0;s(i[i.Down=0]="Down",i[i.Right=1]="Right",i[i.RightDown=2]="RightDown",i))(PagePlacementEnum||{}),TextAlignmentEnum=(i=>(i[i.LeftTop=0]="LeftTop",i[i.LeftCenter=1]="LeftCenter",i[i.LeftBottom=2]="LeftBottom",i[i.CenterTop=3]="CenterTop",i[i.CenterCenter=4]="CenterCenter",i[i.CenterBottom=5]="CenterBottom",i[i.RightTop=6]="RightTop",i[i.RightCenter=7]="RightCenter",i[i.RightBottom=8]="RightBottom",i))(TextAlignmentEnum||{});class TextAlignment{static IsLeft(e){return e===0||e===1||e===2}static IsCenterAligned(e){return e===3||e===4||e===5}static IsRight(e){return e===6||e===7||e===8}}var ColoringModes=(i=>(i[i.XML=0]="XML",i[i.AutoColoring=1]="AutoColoring",i[i.CustomColorSet=2]="CustomColorSet",i))(ColoringModes||{}),FontStyles=(i=>(i[i.Regular=0]="Regular",i[i.Bold=1]="Bold",i[i.Italic=2]="Italic",i[i.BoldItalic=3]="BoldItalic",i[i.Underlined=4]="Underlined",i))(FontStyles||{}),Fonts=(i=>(i[i.TimesNewRoman=0]="TimesNewRoman",i[i.Kokila=1]="Kokila",i[i.Gonville=2]="Gonville",i))(Fonts||{});const FontStringNames={0:"Times New Roman",1:"Kokila",2:"Gonville"};var TieTypes=(i=>(i.SIMPLE="",i.HAMMERON="H",i.PULLOFF="P",i.SLIDE="S",i.TAPPING="T",i))(TieTypes||{});class ChordSymbolContainer{constructor(e,r,s,o,a){this.rootPitch=e,this.chordKind=r,this.bassPitch=s,this.degrees=o,this.rules=a}get RootPitch(){return this.rootPitch}get ChordKind(){return this.chordKind}get BassPitch(){return this.bassPitch}get ChordDegrees(){return this.degrees}static calculateChordText(e,r,s){let o=e.RootPitch;if(MusicSheetCalculator.transposeCalculator&&(o=MusicSheetCalculator.transposeCalculator.transposePitch(e.RootPitch,s,r)),e.ChordKind===31)return e.getTextFromChordKindEnum(e.ChordKind);let a=Pitch.getNoteEnumString(o.FundamentalNote);o.Accidental!==AccidentalEnum.NONE&&(a+=e.getTextForAccidental(o.Accidental));const l={adds:[],alts:[],subs:[]};for(const g of e.ChordDegrees)if(g){let m="";switch(g.alteration!==AccidentalEnum.NONE&&(m+=e.getTextForAccidental(g.alteration)),m+=g.value,g.text){case 0:l.adds.push(m);break;case 1:l.alts.push(m);break;case 2:l.subs.push(m);break}}let c=e.getTextFromChordKindEnum(e.ChordKind);const u=["adds","alts","subs"],d=e.rules.CustomChords;for(const g of d){if(g.chordKind!==e.chordKind)continue;let m=!0;for(const y of u){for(const b of g.degrees[y]||[])if(l[y].indexOf(b)<0){m=!1;break}if(!m)break}if(m){for(const y of u)for(const b of g.degrees[y]||[])l[y].splice(l[y].indexOf(b),1);c=g.alternateName}}if(a+=c,l.adds.length>0&&(a+="("+l.adds.join(",")+")"),l.alts.length>0&&(a+="(alt "+l.alts.join(",")+")"),l.subs.length>0&&(a+="(omit "+l.subs.join(",")+")"),e.BassPitch){let g=e.BassPitch;MusicSheetCalculator.transposeCalculator&&(g=MusicSheetCalculator.transposeCalculator.transposePitch(e.BassPitch,s,r)),a+="/",a+=Pitch.getNoteEnumString(g.FundamentalNote),a+=e.getTextForAccidental(g.Accidental)}return a}getTextForAccidental(e){const r=this.rules.ChordAccidentalTexts.getValue(e);return r!==void 0?r:""}getTextFromChordKindEnum(e){var r;return(r=this.rules.ChordSymbolLabelTexts.getValue(e))!=null?r:""}}class Degree{constructor(e,r,s){this.value=e,this.alteration=r,this.text=s}}class CustomChord{constructor(e,r,s){this.alternateName=e,this.chordKind=r,this.degrees=s}static createCustomChord(e,r,s){return new CustomChord(e,r,s)}static renameCustomChord(e,r,s){for(const o of s)o.alternateName===e&&(o.alternateName=r)}}var ChordDegreeText=(i=>(i[i.add=0]="add",i[i.alter=1]="alter",i[i.subtract=2]="subtract",i))(ChordDegreeText||{}),ChordSymbolEnum=(i=>(i[i.major=0]="major",i[i.minor=1]="minor",i[i.augmented=2]="augmented",i[i.diminished=3]="diminished",i[i.dominant=4]="dominant",i[i.majorseventh=5]="majorseventh",i[i.minorseventh=6]="minorseventh",i[i.diminishedseventh=7]="diminishedseventh",i[i.augmentedseventh=8]="augmentedseventh",i[i.halfdiminished=9]="halfdiminished",i[i.majorminor=10]="majorminor",i[i.majorsixth=11]="majorsixth",i[i.minorsixth=12]="minorsixth",i[i.dominantninth=13]="dominantninth",i[i.majorninth=14]="majorninth",i[i.minorninth=15]="minorninth",i[i.dominant11th=16]="dominant11th",i[i.major11th=17]="major11th",i[i.minor11th=18]="minor11th",i[i.dominant13th=19]="dominant13th",i[i.major13th=20]="major13th",i[i.minor13th=21]="minor13th",i[i.suspendedsecond=22]="suspendedsecond",i[i.suspendedfourth=23]="suspendedfourth",i[i.Neapolitan=24]="Neapolitan",i[i.Italian=25]="Italian",i[i.French=26]="French",i[i.German=27]="German",i[i.pedal=28]="pedal",i[i.power=29]="power",i[i.Tristan=30]="Tristan",i[i.none=31]="none",i))(ChordSymbolEnum||{});class GraphicalNote extends GraphicalObject{constructor(e,r,s,o=void 0){super(),this.DrawnAccidental=AccidentalEnum.NONE,this.lineShift=0,this.sourceNote=e,this.parentVoiceEntry=r,this.PositionAndShape=new BoundingBox$1(this,r.PositionAndShape),o?this.graphicalNoteLength=o:this.graphicalNoteLength=e.Length,this.numberOfDots=this.calculateNumberOfNeededDots(this.graphicalNoteLength),this.rules=s,this.rules.addGraphicalNoteToNoteMap(e,this)}Transpose(e,r,s,o){let a=this.sourceNote.Pitch;return MusicSheetCalculator.transposeCalculator&&(a=MusicSheetCalculator.transposeCalculator.transposePitch(this.sourceNote.Pitch,e,s)),a}calculateNumberOfNeededDots(e){return!this.sourceNote||!this.sourceNote.NoteTuplet?e.calculateNumberOfNeededDots():0}get ParentMusicPage(){return this.parentVoiceEntry.parentStaffEntry.parentMeasure.ParentMusicSystem.Parent}static FromNote(e,r){return r.NoteToGraphicalNoteMap.getValue(e.NoteToGraphicalNoteObjectId)}ToStringShort(e=0){var r;return(r=this.sourceNote)==null?void 0:r.ToStringShort(e)}get ToStringShortGet(){return this.ToStringShort(0)}}const _EngravingRules=class{constructor(){this.DYSlursStartingAtSameStaffEntryYOffset=0,this.DYMinNoteWidth=0,this.DYWorkId=0,this.DYWorkSpecial=!1,this.DYContainerId="osmdCanvasPage",this.DYSVGContainerId="osmdSvgPage",this.DYMusicScoreType="staff",this.DYMusicScoreId="",this.DYCustomRepeatCount=0,this.DYMusicClientType="",this.NoteDistances=[1,1,1.3,1.6,2,2.5,3,4],this.NoteDistancesScalingFactors=[1,2,4,8,16,32,64,128],this.DurationDistanceDict={},this.DurationScalingDistanceDict={},this.NoteToGraphicalNoteMapObjectCount=0,this.RenderCount=0,this.PlayAlreadyStartedNotesFromCursorPosition=!1,this.PlaybackSkipNotesSafetyInterval=.02,this.UseDefaultVoiceInteractionListener=!0,this.LimitCursorPositionToCurrentMeasure=!0,this.loadDefaultValues()}loadDefaultValues(){this.SamplingUnit=_EngravingRules.unit*3,this.MpatMode=!0,this.SheetTitleHeight=4,this.SheetSubtitleHeight=2,this.SheetMinimumDistanceBetweenTitleAndSubtitle=1,this.SheetComposerHeight=2,this.SheetAuthorHeight=2,this.SheetCopyrightHeight=1.5,this.SheetCopyrightMargin=2,this.SheetComposerSubtitleUseLegacyParsing=!1,this.CompactMode=!1,this.PagePlacementEnum=PagePlacementEnum.Down,this.PageHeight=100001,this.PageTopMargin=5,this.PageTopMarginNarrow=0,this.PageBottomMargin=5,this.PageLeftMargin=5,this.PageRightMargin=5,this.TitleTopDistance=5,this.TitleBottomDistance=1,this.StaffDistance=7,this.BetweenStaffDistance=5,this.MinimumStaffLineDistance=4,this.MinSkyBottomDistBetweenStaves=1,this.StaffHeight=4,this.TabStaffInterlineHeight=1.1111,this.BetweenStaffLinesDistance=_EngravingRules.unit,this.SystemLeftMargin=0,this.SystemRightMargin=0,this.SystemLabelsRightMargin=2,this.SystemComposerDistance=2,this.SystemLyricistDistance=2,this.InstrumentLabelTextHeight=2,this.MinimumDistanceBetweenSystems=7,this.MinSkyBottomDistBetweenSystems=5,this.LastSystemMaxScalingFactor=1.4,this.AutoBeamNotes=!1,this.AutoBeamOptions={beam_middle_rests_only:!1,beam_rests:!1,maintain_stem_directions:!1},this.AutoBeamTabs=!1,this.BeamWidth=_EngravingRules.unit/2,this.BeamSpaceWidth=_EngravingRules.unit/3,this.BeamForwardLength=1.25*_EngravingRules.unit,this.FlatBeams=!1,this.FlatBeamOffset=20,this.FlatBeamOffsetPerBeam=10,this.ClefLeftMargin=.5,this.ClefRightMargin=.75,this.PercussionOneLineCutoff=3,this.PercussionForceVoicesOneLineCutoff=1,this.PercussionUseXMLDisplayStep=!0,this.PercussionXMLDisplayStepNoteValueShift=0,this.PercussionOneLineXMLDisplayStepOctaveOffset=0,this.PercussionUseCajon2NoteSystem=!1,this.BetweenKeySymbolsDistance=.2,this.KeyRightMargin=.75,this.RhythmRightMargin=1.25,this.ShowRhythmAgainAfterPartEndOrFinalBarline=!0,this.NewPartAndSystemAfterFinalBarline=!1,this.InStaffClefScalingFactor=.8,this.DistanceBetweenNaturalAndSymbolWhenCancelling=.4,this.NoteHelperLinesOffset=.25,this.MeasureLeftMargin=.7,this.MeasureRightMargin=0,this.DistanceBetweenLastInstructionAndRepetitionBarline=1,this.ArpeggioDistance=.6,this.StaccatoShorteningFactor=2,this.IdealStemLength=3,this.StemNoteHeadBorderYOffset=.2,this.StemMargin=.2,this.StemMinLength=2.5,this.StemMaxLength=4.5,this.BeamSlopeMaxAngle=10,this.StemMinAllowedDistanceBetweenNoteHeadAndBeamLine=1,this.SetWantedStemDirectionByXml=!0,this.GraceNoteScalingFactor=.6,this.GraceNoteXOffset=.2,this.GraceNoteGroupXMargin=0,this.WedgeOpeningLength=1.2,this.WedgeMeasureEndOpeningLength=.75,this.WedgeMeasureBeginOpeningLength=.75,this.WedgePlacementAboveY=-1.5,this.WedgePlacementBelowY=1.5,this.WedgeHorizontalMargin=.6,this.WedgeVerticalMargin=.5,this.DistanceOffsetBetweenTwoHorizontallyCrossedWedges=.3,this.WedgeMinLength=2,this.WedgeEndDistanceBetweenTimestampsFactor=1.75,this.SoftAccentWedgePadding=.4,this.SoftAccentSizeFactor=.6,this.DistanceBetweenAdjacentDynamics=.75,this.TempoChangeMeasureValidity=4,this.TempoContinousFactor=.7,this.StaccatoScalingFactor=.8,this.BetweenDotsDistance=.8,this.OrnamentAccidentalScalingFactor=.65,this.ChordSymbolTextHeight=2,this.ChordSymbolTextAlignment=TextAlignmentEnum.LeftBottom,this.ChordSymbolRelativeXOffset=-1,this.ChordSymbolExtraXShiftForShortChordSymbols=.3,this.ChordSymbolExtraXShiftWidthThreshold=2,this.ChordSymbolXSpacing=1,this.ChordOverlapAllowedIntoNextMeasure=0,this.ChordSymbolYOffset=.1,this.ChordSymbolYPadding=0,this.ChordSymbolYAlignment=!0,this.ChordSymbolYAlignmentScope="staffline",this.ChordSymbolWholeMeasureRestXOffset=0,this.ChordSymbolWholeMeasureRestXOffsetMeasure1=-2,this.ChordAccidentalTexts=new Dictionary,this.resetChordAccidentalTexts(this.ChordAccidentalTexts,!1),this.ChordSymbolLabelTexts=new Dictionary,this.resetChordSymbolLabelTexts(this.ChordSymbolLabelTexts),this.CustomChords=[],this.resetChordNames(),this.RepetitionSymbolsYOffset=0,this.RepetitionEndInstructionXShiftAsPercentOfStaveWidth=.4,this.RehearsalMarkXOffsetDefault=10,this.RehearsalMarkXOffset=0,this.RehearsalMarkXOffsetSystemStartMeasure=-20,this.RehearsalMarkYOffsetDefault=-15,this.RehearsalMarkYOffset=0,this.RehearsalMarkFontSize=10,this.MeasureNumberLabelHeight=1.5*_EngravingRules.unit,this.MeasureNumberLabelOffset=2,this.MeasureNumberLabelXOffset=-.5,this.TupletsRatioed=!1,this.TupletsBracketed=!1,this.TripletsBracketed=!1,this.TupletsBracketedUseXMLValue=!0,this.TupletNumberLabelHeight=1.5*_EngravingRules.unit,this.TupletNumberYOffset=.5,this.TupletNumberLimitConsecutiveRepetitions=!0,this.TupletNumberMaxConsecutiveRepetitions=2,this.TupletNumberAlwaysDisableAfterFirstMax=!0,this.TupletNumberUseShowNoneXMLValue=!0,this.LabelMarginBorderFactor=.1,this.TupletVerticalLineLength=.5,this.TupletNumbersInTabs=!0,this.TabTupletYOffsetBottom=1,this.TabTupletYOffsetTop=-3.5,this.TabTupletYOffsetEffects=1.5,this.TabTupletsBracketed=!0,this.TabBeamsRendered=!0,this.TabKeySignatureRendered=!1,this.TabKeySignatureSpacingAdded=!0,this.TabTimeSignatureRendered=!1,this.TabTimeSignatureSpacingAdded=!0,this.TabFingeringsRendered=!1,this.SlurPlacementFromXML=!0,this.SlurPlacementAtStems=!1,this.SlurPlacementUseSkyBottomLine=!1,this.BezierCurveStepSize=1e3,this.calculateCurveParametersArrays(),this.TieGhostObjectWidth=.75,this.TieYPositionOffsetFactor=.3,this.MinimumNeededXspaceForTieGhostObject=1,this.TieHeightMinimum=.28,this.TieHeightMaximum=1.2,this.TieHeightInterpolationK=.0288,this.TieHeightInterpolationD=.136,this.SlurNoteHeadYOffset=.5,this.SlurEndArticulationYOffset=.8,this.SlurStartArticulationYOffsetOfArticulation=.5,this.SlurStemXOffset=.3,this.SlurSlopeMaxAngle=15,this.SlurTangentMinAngle=30,this.SlurTangentMaxAngle=80,this.SlurHeightFactor=1,this.SlurHeightFlattenLongSlursFactorByWidth=.24,this.SlurHeightFlattenLongSlursFactorByAngle=.36,this.SlurHeightFlattenLongSlursCutoffAngle=47,this.SlurHeightFlattenLongSlursCutoffWidth=16,this.SlursStartingAtSameStaffEntryYOffset=.8,this.SlurMaximumYControlPointDistance=void 0,this.GlissandoNoteOffset=.5,this.GlissandoStafflineStartMinimumWidth=1,this.GlissandoStafflineStartYDistanceToNote=.8,this.GlissandoStafflineEndOffset=1,this.GlissandoDefaultWidth=.1,this.RepetitionAllowFirstMeasureBeginningRepeatBarline=!1,this.RepetitionEndingLabelHeight=2,this.RepetitionEndingLabelXOffset=.5,this.RepetitionEndingLabelYOffset=.3,this.RepetitionEndingLineYLowerOffset=.5,this.RepetitionEndingLineYUpperOffset=.3,this.VoltaOffset=2.5,this.LyricsAlignmentStandard=TextAlignmentEnum.LeftBottom,this.LyricsHeight=2,this.LyricsYOffsetToStaffHeight=0,this.LyricsYMarginToBottomLine=.2,this.LyricsExtraXShiftForShortLyrics=.5,this.LyricsExtraXShiftForShortLyricsWidthThreshold=1.4,this.LyricsUseXPaddingForLongLyrics=!0,this.LyricsXPaddingFactorForLongLyrics=1,this.LyricsXPaddingWidthThreshold=1.7,this.LyricsXPaddingReductionForLongNotes=.7,this.LyricsXPaddingReductionForLastNoteInMeasure=1.2,this.LyricsXPaddingForLastNoteInMeasure=!0,this.VerticalBetweenLyricsDistance=.5,this.HorizontalBetweenLyricsDistance=.2,this.BetweenSyllableMaximumDistance=10,this.BetweenSyllableMinimumDistance=.5,this.LyricOverlapAllowedIntoNextMeasure=3.4,this.MinimumDistanceBetweenDashes=10,this.MaximumLyricsElongationFactor=2.5,this.TempoYSpacing=.5,this.InstantaneousTempoTextHeight=2.3,this.ContinuousDynamicTextHeight=2.3,this.MoodTextHeight=2.3,this.UnknownTextHeight=2,this.ContinuousTempoTextHeight=2.3,this.DynamicExpressionMaxDistance=2,this.DynamicExpressionSpacer=.5,this.IgnoreRepeatedDynamics=!1,this.ExpressionsUseXMLColor=!0,this.VexFlowDefaultNotationFontScale=39,this.VexFlowDefaultTabFontScale=39,this.TremoloStrokeScale=1,this.TremoloYSpacingScale=1,this.TremoloBuzzRollThickness=.25,this.StemWidth=.15,this.StaffLineWidth=.1,this.StaffLineColor=void 0,this.LedgerLineWidth=1,this.LedgerLineStrokeStyle=void 0,this.LedgerLineColorDefault="#000000",this.WedgeLineWidth=.12,this.TupletLineWidth=.12,this.LyricUnderscoreLineWidth=.12,this.SystemThinLineWidth=.12,this.SystemBoldLineWidth=_EngravingRules.unit/2,this.SystemRepetitionEndingLineWidth=.12,this.SystemDotWidth=_EngravingRules.unit/2,this.DistanceBetweenVerticalSystemLines=.35,this.DistanceBetweenDotAndLine=.7,this.RepeatEndStartPadding=2,this.OctaveShiftLineWidth=.12,this.OctaveShiftVerticalLineLength=_EngravingRules.unit,this.OctaveShiftOnWholeMeasureNoteUntilEndOfMeasure=!1,this.GraceLineWidth=this.StaffLineWidth*this.GraceNoteScalingFactor,this.MultipleRestMeasureDefaultWidth=4,this.MultipleRestMeasureAddKeySignature=!0,this.FixedMeasureWidth=!1,this.FixedMeasureWidthFixedValue=void 0,this.FixedMeasureWidthUseForPickupMeasures=!1,this.MinimumCrossedBeamDifferenceMargin=1e-4,this.SheetMaximumWidth=32767,this.VoiceSpacingMultiplierVexflow=.85,this.VoiceSpacingAddendVexflow=3,this.PickupMeasureWidthMultiplier=1,this.PickupMeasureRepetitionSpacing=.8,this.PickupMeasureSpacingSingleNoteAddend=1.6,this.DisplacedNoteMargin=.1,this.MinNoteDistance=2,this.SubMeasureXSpacingThreshold=35,this.MeasureDynamicsMaxScalingFactor=2.5,this.WholeRestXShiftVexflow=-1.5,this.MetronomeMarksDrawn=!0,this.MetronomeMarkXShift=-6,this.MetronomeMarkYShift=-1,this.SoftmaxFactorVexFlow=15,this.StaggerSameWholeNotes=!0,this.AlignRests=AlignRestOption.Never,this.RestCollisionYPadding=0,this.FillEmptyMeasuresWithWholeRest=FillEmptyMeasuresWithWholeRests.No,this.ArpeggiosGoAcrossVoices=!1,this.RenderArpeggios=!0,this.RenderSlurs=!0,this.RenderGlissandi=!0,this.ColoringMode=ColoringModes.XML,this.ColoringEnabled=!0,this.ColorStemsLikeNoteheads=!1,this.ColorBeams=!0,this.ColorFlags=!0,this.applyDefaultColorMusic("#000000"),this.DefaultColorCursor="#33e02f",this.DefaultFontFamily="Times New Roman",this.DefaultFontStyle=FontStyles.Regular,this.DefaultVexFlowNoteFont="gonville",this.MaxMeasureToDrawIndex=Number.MAX_VALUE,this.MinMeasureToDrawIndex=0,this.MaxSystemToDrawNumber=Number.MAX_VALUE,this.MaxPageToDrawNumber=Number.MAX_VALUE,this.RenderComposer=!0,this.RenderTitle=!0,this.RenderSubtitle=!0,this.RenderLyricist=!0,this.RenderCopyright=!1,this.RenderPartNames=!0,this.RenderPartAbbreviations=!0,this.RenderSystemLabelsAfterFirstPage=!0,this.RenderFingerings=!0,this.RenderMeasureNumbers=!0,this.RenderMeasureNumbersOnlyAtSystemStart=!1,this.UseXMLMeasureNumbers=!0,this.RenderLyrics=!0,this.RenderChordSymbols=!0,this.RenderMultipleRestMeasures=!0,this.AutoGenerateMultipleRestMeasuresFromRestMeasures=!0,this.RenderRehearsalMarks=!0,this.RenderClefsAtBeginningOfStaffline=!0,this.RenderKeySignatures=!0,this.RenderTimeSignatures=!0,this.RenderPedals=!0,this.RenderWavyLines=!0,this.ArticulationPlacementFromXML=!0,this.BreathMarkDistance=.8,this.FingeringPosition=PlacementEnum.AboveOrBelow,this.FingeringPositionFromXML=!0,this.FingeringPositionGrace=PlacementEnum.Left,this.FingeringInsideStafflines=!1,this.FingeringLabelFontHeight=1.7,this.FingeringOffsetX=0,this.FingeringOffsetY=0,this.FingeringPaddingY=-.2,this.FingeringTextSize=1.5,this.RenderStringNumbersClassical=!0,this.StringNumberOffsetY=0,this.NewSystemAtXMLNewSystemAttribute=!1,this.NewPageAtXMLNewPageAttribute=!1,this.NewSystemAtXMLNewPageAttribute=!1,this.RestoreCursorAfterRerender=!0,this.StretchLastSystemLine=!1,this.IgnoreBracketsWords=!0,this.PlaceWordsInsideStafflineFromXml=!1,this.PlaceWordsInsideStafflineYOffset=.9,this.UseJustifiedBuilder=!0,this.PageFormat=PageFormat.UndefinedPageFormat,this.PageBackgroundColor=void 0,this.PerformanceMode=!1,this.RenderSingleHorizontalStaffline=!1,this.SpacingBetweenTextLines=0,this.NoteToGraphicalNoteMap=new Dictionary,this.NoteToGraphicalNoteMapObjectCount=0,this.SkyBottomLineBatchMinMeasures=5,this.SkyBottomLineWebGLMinMeasures=80,this.AlwaysSetPreferredSkyBottomLineBackendAutomatically=!0,this.DisableWebGLInFirefox=!0,this.DisableWebGLInSafariAndIOS=!0,this.setPreferredSkyBottomLineBackendAutomatically();try{this.MaxInstructionsConstValue=this.ClefLeftMargin+this.ClefRightMargin+this.KeyRightMargin+this.RhythmRightMargin+11}catch(i){loglevelExports.info("EngravingRules()",i)}this.MpatMode&&(this.NewPartAndSystemAfterFinalBarline=!0)}setPreferredSkyBottomLineBackendAutomatically(i=-1){var o,a,l,c;let e="",r="";typeof globalThis=="object"&&(e=(a=(o=globalThis.navigator)==null?void 0:o.vendor)!=null?a:"",r=(c=(l=globalThis.navigator)==null?void 0:l.userAgent)!=null?c:"");let s=!1;(this.DisableWebGLInSafariAndIOS&&/apple/i.test(e)||this.DisableWebGLInFirefox&&r.includes("Firefox"))&&(s=!0),this.PreferredSkyBottomLineBatchCalculatorBackend=SkyBottomLineBatchCalculatorBackendType.Plain,s||i>=this.SkyBottomLineWebGLMinMeasures&&(this.PreferredSkyBottomLineBatchCalculatorBackend=SkyBottomLineBatchCalculatorBackendType.WebGL)}applyDefaultColorMusic(i){this.DefaultColorMusic=i,this.DefaultColorNotehead=i,this.DefaultColorRest=i,this.DefaultColorStem=i,this.DefaultColorLabel=i,this.DefaultColorLyrics=i,this.DefaultColorTitle=i,this.LedgerLineColorDefault=i}addGraphicalNoteToNoteMap(i,e){i.NoteToGraphicalNoteObjectId=this.NoteToGraphicalNoteMapObjectCount,this.NoteToGraphicalNoteMap.setValue(i.NoteToGraphicalNoteObjectId,e),this.NoteToGraphicalNoteMapObjectCount++}GNote(i){return GraphicalNote.FromNote(i,this)}clearMusicSheetObjects(){this.NoteToGraphicalNoteMap=new Dictionary,this.NoteToGraphicalNoteMapObjectCount=0}resetChordAccidentalTexts(i,e){i.setValue(AccidentalEnum.SHARP,e?"♯":"#"),i.setValue(AccidentalEnum.FLAT,e?"♭":"b"),i.setValue(AccidentalEnum.DOUBLEFLAT,e?"𝄫":"bb"),i.setValue(AccidentalEnum.DOUBLESHARP,e?"𝄪":"x")}setChordSymbolLabelText(i,e){this.ChordSymbolLabelTexts.setValue(i,e)}resetChordSymbolLabelTexts(i){return i.setValue(ChordSymbolEnum.minor,"m"),i.setValue(ChordSymbolEnum.augmented,"aug"),i.setValue(ChordSymbolEnum.diminished,"dim"),i.setValue(ChordSymbolEnum.dominant,"7"),i.setValue(ChordSymbolEnum.majorseventh,"maj7"),i.setValue(ChordSymbolEnum.minorseventh,"m7"),i.setValue(ChordSymbolEnum.diminishedseventh,"dim7"),i.setValue(ChordSymbolEnum.augmentedseventh,"aug7"),i.setValue(ChordSymbolEnum.halfdiminished,`m7${this.ChordAccidentalTexts.getValue(AccidentalEnum.FLAT)}5`),i.setValue(ChordSymbolEnum.majorminor,"m(maj7)"),i.setValue(ChordSymbolEnum.majorsixth,"maj6"),i.setValue(ChordSymbolEnum.minorsixth,"m6"),i.setValue(ChordSymbolEnum.dominantninth,"9"),i.setValue(ChordSymbolEnum.majorninth,"maj9"),i.setValue(ChordSymbolEnum.minorninth,"m9"),i.setValue(ChordSymbolEnum.dominant11th,"11"),i.setValue(ChordSymbolEnum.major11th,"maj11"),i.setValue(ChordSymbolEnum.minor11th,"m11"),i.setValue(ChordSymbolEnum.dominant13th,"13"),i.setValue(ChordSymbolEnum.major13th,"maj13"),i.setValue(ChordSymbolEnum.minor13th,"m13"),i.setValue(ChordSymbolEnum.suspendedsecond,"sus2"),i.setValue(ChordSymbolEnum.suspendedfourth,"sus4"),i.setValue(ChordSymbolEnum.power,"5"),i.setValue(ChordSymbolEnum.none,"N.C."),i}addChordName(i,e,r,s,o){if(ChordSymbolEnum[e]!==void 0){const a={adds:r,alts:s,subs:o};this.CustomChords.push(CustomChord.createCustomChord(i,ChordSymbolEnum[e],a))}}renameChord(i,e){CustomChord.renameCustomChord(i,e,this.CustomChords)}resetChordNames(){const i=this.ChordAccidentalTexts.getValue(AccidentalEnum.SHARP),e=this.ChordAccidentalTexts.getValue(AccidentalEnum.FLAT);this.addChordName("alt","major",[`${i}5`,`${e}9`,`${i}9`],[`${e}5`],[]),this.addChordName("7alt","dominant",[`${i}5`,`${e}9`,`${i}9`],[`${e}5`],[]),this.addChordName("7sus4","dominant",["4"],[],["3"]),this.addChordName("7sus4","suspendedfourth",["7"],[],[]),this.addChordName("9sus4","dominantninth",["4"],[],["3"]),this.addChordName("9sus4","suspendedfourth",["9"],[],[]),this.addChordName("11sus4","dominant11th",["4"],[],["3"]),this.addChordName("11sus4","suspendedfourth",["11"],[],[]),this.addChordName("13sus4","dominant13th",["4"],[],["3"]),this.addChordName("13sus4","suspendedfourth",["13"],[],[]),this.addChordName("7sus2","dominant",["2"],[],["3"]),this.addChordName("7sus2","suspendedsecond",["7"],[],[]),this.addChordName(`m7${e}5`,"minorseventh",[],[`${e}5`],[]),this.addChordName("9sus2","dominantninth",["2"],[],["3"]),this.addChordName("9sus2","suspendedsecond",["9"],[],[]),this.addChordName("11sus2","dominant11th",["2"],[],["3"]),this.addChordName("11sus2","suspendedsecond",["11"],[],[]),this.addChordName("13sus2","dominant13th",["2"],[],["3"]),this.addChordName("13sus2","suspendedsecond",["13"],[],[]),this.addChordName("m(maj9)","majorminor",["9"],[],[]),this.addChordName("m(maj11)","majorminor",["11"],[],[]),this.addChordName("m(maj13)","majorminor",["13"],[],[]),this.addChordName("69","majorsixth",["9"],[],[]),this.addChordName("mi69","minorsixth",["9"],[],[])}calculateCurveParametersArrays(){this.TPower3=new Array(this.BezierCurveStepSize),this.OneMinusTPower3=new Array(this.BezierCurveStepSize),this.FactorOne=new Array(this.BezierCurveStepSize),this.FactorTwo=new Array(this.BezierCurveStepSize);for(let i=0;i{var s,o,a,l;return((o=(s=r.sourceNote.Pitch)==null?void 0:s.getHalfTone())!=null?o:0)-((l=(a=e.sourceNote.Pitch)==null?void 0:a.getHalfTone())!=null?l:0)}),this.notes}sortForVexflow(){return this.notes.sort((e,r)=>{var s,o,a;return((o=(s=e.sourceNote.Pitch)==null?void 0:s.getHalfTone())!=null?o:0)-((a=r.sourceNote.Pitch.getHalfTone())!=null?a:0)}),this.notes}color(){}}class GraphicalMusicSheet{constructor(e,r){this.musicPages=[],this.measureList=[],this.verticalGraphicalStaffEntryContainers=[],this.cursors=[],this.leadSheet=!1,this.musicSheet=e,this.numberOfStaves=this.musicSheet.Staves.length,this.calculator=r,this.calculator.initialize(this)}get ParentMusicSheet(){return this.musicSheet}get GetCalculator(){return this.calculator}get JianpuKeySignature(){return this.jianpuKeySignature}set JianpuKeySignature(e){this.jianpuKeySignature=e}get MusicPages(){return this.musicPages}set MusicPages(e){this.musicPages=e}get MeasureList(){return this.measureList}set MeasureList(e){this.measureList=e}get VerticalGraphicalStaffEntryContainers(){return this.verticalGraphicalStaffEntryContainers}set VerticalGraphicalStaffEntryContainers(e){this.verticalGraphicalStaffEntryContainers=e}get Title(){return this.title}set Title(e){this.title=e}get Subtitle(){return this.subtitle}set Subtitle(e){this.subtitle=e}get Composer(){return this.composer}set Composer(e){this.composer=e}get Lyricist(){return this.lyricist}set Lyricist(e){this.lyricist=e}get Copyright(){return this.copyright}set Copyright(e){this.copyright=e}get Cursors(){return this.cursors}get SelectionStartSymbol(){return this.selectionStartSymbol}get SelectionEndSymbol(){return this.selectionEndSymbol}get MinAllowedSystemWidth(){return this.minAllowedSystemWidth}set MinAllowedSystemWidth(e){this.minAllowedSystemWidth=e}get NumberOfStaves(){return this.numberOfStaves}get LeadSheet(){return this.leadSheet}set LeadSheet(e){this.leadSheet=e}static transformRelativeToAbsolutePosition(e){for(let r=0;r=0;o--){const a=(s=this.measureList[o])==null?void 0:s[r];if(a)return a}}findGraphicalStaffEntryFromMeasureList(e,r,s){for(let o=r;o0)return l.staffEntries[0]}}getFirstVisibleMeasuresListFromIndices(e,r){const s=[],o=this.measureList[0].length;for(let a=e;a<=r;a++)for(let l=0;l=0;r--){if(this.verticalGraphicalStaffEntryContainers[r].AbsoluteTimestamp.lt(e)){const s=new VerticalGraphicalStaffEntryContainer(this.numberOfStaves,e);return this.verticalGraphicalStaffEntryContainers.splice(r+1,0,s),s}if(this.verticalGraphicalStaffEntryContainers[r].AbsoluteTimestamp.Equals(e))return this.verticalGraphicalStaffEntryContainers[r]}}GetVerticalContainerFromTimestamp(e,r=0){const s=CollectionUtil.binarySearch(this.verticalGraphicalStaffEntryContainers,new VerticalGraphicalStaffEntryContainer(0,e),VerticalGraphicalStaffEntryContainer.compareByTimestamp,r);if(s>=0)return this.verticalGraphicalStaffEntryContainers[s]}GetInterpolatedIndexInVerticalContainers(e){const r=this.verticalGraphicalStaffEntryContainers;if(r.length===1)return 0;let s=0,o=r.length-1,a,l;if(e.lte(r[r.length-1].AbsoluteTimestamp)){for(;o-s>1;){const g=Math.floor((o+s)/2);if(r[s].AbsoluteTimestamp.Equals(e)){o=s;break}else if(r[o].AbsoluteTimestamp.Equals(e)){s=o;break}else{if(r[g].AbsoluteTimestamp.Equals(e))return this.verticalGraphicalStaffEntryContainers.indexOf(r[g]);e.lt(r[g].AbsoluteTimestamp)?o=g:s=g}}if(s===o)return this.verticalGraphicalStaffEntryContainers.indexOf(r[s]);a=r[s].AbsoluteTimestamp,l=r[o].AbsoluteTimestamp}else a=r[r.length-1].AbsoluteTimestamp,l=Fraction$1.plus(this.getLongestStaffEntryDuration(r.length-1),a),o=r.length;const c=l.RealValue-a.RealValue,u=l.RealValue-e.RealValue,d=o-u/c;return Math.min(d,this.verticalGraphicalStaffEntryContainers.length-1)}getVisibleStavesIndicesFromSourceMeasure(e){const r=[],s=[];for(let o=0,a=e.length;o=0;)o=this.measureList[--s][e];return this.measureList[s][e]}getMeasureIndex(e,r,s){for(r=0;r{var s;return((s=r.parentStaffEntry)==null?void 0:s.relInMeasureTimestamp)!==void 0})}GetNearestNote(e,r){const s=this.GetNearestVoiceEntry(e);if(!s)return;let o,a=Number.MAX_SAFE_INTEGER;for(const l of s.notes){const c=l.PositionAndShape.AbsolutePosition.y,u=Math.abs(l.PositionAndShape.AbsolutePosition.x-e.x),d=Math.abs(c-e.y);u+dl.PositionAndShape.RelativePosition.x&&(s=l):s=l)}}catch(o){loglevelExports.info("GraphicalMusicSheet.getStaffEntry",o)}return s}GetPreviousVisibleContainerIndex(e){for(let r=e-1;r>=0;r--){const s=this.verticalGraphicalStaffEntryContainers[r].StaffEntries;for(let o=0,a=s.length;o=0;a--)if(s=this.getStaffEntry(a),s)if(r){if(s.sourceStaffEntry.ParentStaff.ParentInstrument.Visible)return s}else return s}findClosestRightStaffEntry(e,r){let s;const o=Math.max(0,Math.ceil(e));for(let a=o;a1}isVisible(){return this.ParentStaff.ParentInstrument.Visible}getGraphicalMeasureDurationFromStaffEntries(){let e=new Fraction$1(0,1);const r=[];for(let s=0,o=this.staffEntries.length;s0&&l.Add(u.notes[0].graphicalNoteLength);e.lt(l)&&(e=Fraction$1.createFromFraction(l))}return e}addGraphicalStaffEntry(e){this.staffEntries.push(e)}addGraphicalStaffEntryAtTimestamp(e){if(e)if(this.staffEntries.length===0||this.staffEntries[this.staffEntries.length-1].relInMeasureTimestamp.lt(e.relInMeasureTimestamp))this.staffEntries.push(e);else for(let r=this.staffEntries.length-1;r>=0;r--){if(this.staffEntries[r].relInMeasureTimestamp.lt(e.relInMeasureTimestamp)){this.staffEntries.splice(r+1,0,e);break}r===0&&this.staffEntries.splice(r,0,e)}}isPianoRightHand(){return this.isUpperStaffOfInstrument()}isPianoLeftHand(){return this.isLowerStaffOfInstrument()}isUpperStaffOfInstrument(){return this.parentStaff.ParentInstrument.Staves.length===1?!0:this.ParentStaff===this.parentStaff.ParentInstrument.Staves[0]}isLowerStaffOfInstrument(){return this.parentStaff.ParentInstrument.Staves.length===1?!1:this.ParentStaff===this.ParentStaff.ParentInstrument.Staves.last()}beginsWithLineRepetition(){const e=this.parentSourceMeasure;return e?e.beginsWithLineRepetition():!1}endsWithLineRepetition(){const e=this.parentSourceMeasure;return e?e.endsWithLineRepetition():!1}beginsWithWordRepetition(){const e=this.parentSourceMeasure;return e?e.beginsWithWordRepetition():!1}endsWithWordRepetition(){const e=this.parentSourceMeasure;return e?e.endsWithWordRepetition():!1}getTransposedHalftones(){return this.parentStaff.ParentInstrument.GetMusicSheet.Transpose+this.parentStaff.ParentInstrument.Transpose}}const Vex=()=>{};Vex.L=(i,e)=>{if(!e)return;const r=Array.prototype.slice.call(e).join(" ");window.console.log(i+": "+r)};Vex.MakeException=i=>class extends Error{constructor(r,s){super(r),this.name=i,this.message=r,this.data=s}};class RuntimeError{constructor(e,r){this.code=e,this.message=r}toString(){return"[RuntimeError] "+this.code+":"+this.message}}Vex.RuntimeError=RuntimeError;Vex.RERR=Vex.RuntimeError;Vex.Merge=(i,e)=>{for(const r in e)i[r]=e[r];return i};Vex.Min=Math.min;Vex.Max=Math.max;Vex.forEach=(i,e)=>{for(let r=0;ri%e>=e/2?parseInt(i/e,10)*e+e:parseInt(i/e,10)*e;Vex.MidLine=(i,e)=>{let r=e+(i-e)/2;return r%2>0&&(r=Vex.RoundN(r*10,5)/10),r};Vex.SortAndUnique=(i,e,r)=>{if(i.length>1){const s=[];let o;i.sort(e);for(let a=0;a{let r=i.length;for(;r--;)if(i[r]===e)return!0;return!1};Vex.getCanvasContext=i=>{if(!i)throw new Vex.RERR("BadArgument","Invalid canvas selector: "+i);const e=document.getElementById(i);if(!(e&&e.getContext))throw new Vex.RERR("UnsupportedBrowserError","This browser does not support HTML5 Canvas");return e.getContext("2d")};Vex.drawDot=(i,e,r,s="#55")=>{i.save(),i.setFillStyle(s),i.beginPath(),i.arc(e,r,3,0,Math.PI*2,!0),i.closePath(),i.fill(),i.restore()};Vex.BM=(i,e)=>{const r=new Date().getTime();e();const s=new Date().getTime()-r;Vex.L(i+s+"ms")};Vex.StackTrace=()=>new Error().stack;Vex.W=(...i)=>{const e=i.join(" ");window.console.log("Warning: ",e,Vex.StackTrace())};Vex.Prefix=i=>Vex.Prefix.prefix+i;Vex.Prefix.prefix="vf-";class Fraction{static GCD(e,r){if(typeof e!="number"||typeof r!="number")throw new Vex.RERR("BadArgument",`Invalid numbers: ${e}, ${r}`);let s;for(;r!==0;)s=r,r=e%r,e=s;return e}static LCM(e,r){return e*r/Fraction.GCD(e,r)}static LCMM(e){if(e.length===0)return 0;if(e.length===1)return e[0];if(e.length===2)return Fraction.LCM(e[0],e[1]);{const r=e[0];return e.shift(),Fraction.LCM(r,Fraction.LCMM(e))}}constructor(e,r){this.set(e,r)}set(e,r){return this.numerator=e===void 0?1:e,this.denominator=r===void 0?1:r,this}value(){return this.numerator/this.denominator}simplify(){let e=this.numerator,r=this.denominator;const s=Fraction.GCD(e,r);return e/=s,r/=s,r<0&&(r=-r,e=-e),this.set(e,r)}add(e,r){let s,o;e instanceof Fraction?(s=e.numerator,o=e.denominator):(e!==void 0?s=e:s=0,r!==void 0?o=r:o=1);const a=Fraction.LCM(this.denominator,o),l=a/this.denominator,c=a/o,u=this.numerator*l+s*c;return this.set(u,a)}subtract(e,r){let s,o;e instanceof Fraction?(s=e.numerator,o=e.denominator):(e!==void 0?s=e:s=0,r!==void 0?o=r:o=1);const a=Fraction.LCM(this.denominator,o),l=a/this.denominator,c=a/o,u=this.numerator*l-s*c;return this.set(u,a)}multiply(e,r){let s,o;return e instanceof Fraction?(s=e.numerator,o=e.denominator):(e!==void 0?s=e:s=1,r!==void 0?o=r:o=1),this.set(this.numerator*s,this.denominator*o)}divide(e,r){let s,o;return e instanceof Fraction?(s=e.numerator,o=e.denominator):(e!==void 0?s=e:s=1,r!==void 0?o=r:o=1),this.set(this.numerator*o,this.denominator*s)}equals(e){const r=Fraction.__compareA.copy(e).simplify(),s=Fraction.__compareB.copy(this).simplify();return r.numerator===s.numerator&&r.denominator===s.denominator}greaterThan(e){const r=Fraction.__compareB.copy(this);return r.subtract(e),r.numerator>0}greaterThanEquals(e){const r=Fraction.__compareB.copy(this);return r.subtract(e),r.numerator>=0}lessThan(e){return!this.greaterThanEquals(e)}lessThanEquals(e){return!this.greaterThan(e)}clone(){return new Fraction(this.numerator,this.denominator)}copy(e){return typeof e=="number"?this.set(e||0,1):this.set(e.numerator,e.denominator)}quotient(){return Math.floor(this.numerator/this.denominator)}fraction(){return this.numerator%this.denominator}abs(){return this.denominator=Math.abs(this.denominator),this.numerator=Math.abs(this.numerator),this}toString(){return this.numerator+"/"+this.denominator}toSimplifiedString(){return Fraction.__tmp.copy(this).simplify().toString()}toMixedString(){let e="";const r=this.quotient(),s=Fraction.__tmp.copy(this);return r<0?s.abs().fraction():s.fraction(),r!==0?(e+=r,s.numerator!==0&&(e+=" "+s.toSimplifiedString())):s.numerator===0?e="0":e=s.toSimplifiedString(),e}parse(e){const r=e.split("/"),s=parseInt(r[0],10),o=r[1]?parseInt(r[1],10):1;return this.set(s,o)}}Fraction.__compareA=new Fraction;Fraction.__compareB=new Fraction;Fraction.__tmp=new Fraction;const X$3=Vex.MakeException("RegistryError");function setIndexValue(i,e,r,s,o){i[e][r]||(i[e][r]={}),i[e][r][s]=o}class Registry{static get INDEXES(){return["type"]}constructor(){this.clear()}static enableDefaultRegistry(e){Registry.defaultRegistry=e}static getDefaultRegistry(){return Registry.defaultRegistry}static disableDefaultRegistry(){Registry.defaultRegistry=null}clear(){return this.index={id:{},type:{},class:{}},this}updateIndex({id:e,name:r,value:s,oldValue:o}){const a=this.getElementById(e);o!==null&&this.index[r][o]&&delete this.index[r][o][e],s!==null&&setIndexValue(this.index,r,s,a.getAttribute("id"),a)}register(e,r){if(r=r||e.getAttribute("id"),!r)throw new X$3("Can't add element without `id` attribute to registry",e);return e.setAttribute("id",r),setIndexValue(this.index,"id",r,r,e),Registry.INDEXES.forEach(s=>{this.updateIndex({id:r,name:s,value:e.getAttribute(s),oldValue:null})}),e.onRegister(this),this}getElementById(e){return this.index.id[e]?this.index.id[e][e]:null}getElementsByAttribute(e,r){const s=this.index[e];return s&&s[r]?Object.keys(s[r]).map(o=>s[r][o]):[]}getElementsByType(e){return this.getElementsByAttribute("type",e)}getElementsByClass(e){return this.getElementsByAttribute("class",e)}onUpdate({id:e,name:r,value:s,oldValue:o}){function a(l,c){return l.filter(u=>u===c).length>0}return a(Registry.INDEXES.concat(["id","class"]),r)?(this.updateIndex({id:e,name:r,value:s,oldValue:o}),this):this}}Registry.defaultRegistry=null;let Element$1=class hi{static newID(){return"auto"+hi.ID++}constructor({type:e}={}){this.attrs={id:hi.newID(),el:null,type:e||"Base",classes:{}},this.boundingBox=null,this.context=null,this.rendered=!1,Registry.getDefaultRegistry()&&Registry.getDefaultRegistry().register(this)}setStyle(e){return this.style=e,this}getStyle(){return this.style}applyStyle(e=this.context,r=this.getStyle()){return r?(e.save(),r.shadowColor&&e.setShadowColor(r.shadowColor),r.shadowBlur&&e.setShadowBlur(r.shadowBlur),r.fillStyle&&e.setFillStyle(r.fillStyle),r.strokeStyle&&e.setStrokeStyle(r.strokeStyle),r.lineWidth&&e.setLineWidth(r.lineWidth),this):this}restoreStyle(e=this.context,r=this.getStyle()){return r?(e.restore(),this):this}drawWithStyle(){this.checkContext(),this.applyStyle(),this.draw(),this.restoreStyle()}hasClass(e){return this.attrs.classes[e]===!0}addClass(e){return this.attrs.classes[e]=!0,this.registry&&this.registry.onUpdate({id:this.getAttribute("id"),name:"class",value:e,oldValue:null}),this}removeClass(e){return delete this.attrs.classes[e],this.registry&&this.registry.onUpdate({id:this.getAttribute("id"),name:"class",value:null,oldValue:e}),this}onRegister(e){return this.registry=e,this}isRendered(){return this.rendered}setRendered(e=!0){return this.rendered=e,this}getAttributes(){return this.attrs}getAttribute(e){return this.attrs[e]}setAttribute(e,r){const s=this.attrs.id,o=this.attrs[e];return this.attrs[e]=r,this.registry&&this.registry.onUpdate({id:s,name:e,value:r,oldValue:o}),this}getContext(){return this.context}setContext(e){return this.context=e,this}getBoundingBox(){return this.boundingBox}checkContext(){if(!this.context)throw new Vex.RERR("NoContext","No rendering context attached to instance");return this.context}};Element$1.ID=1e3;class BoundingBoxComputation{constructor(e,r,s,o){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN,this.addPoint(e,r),this.addPoint(s,o)}width(){return this.x2-this.x1}height(){return this.y2-this.y1}addPoint(e,r){e!=null&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=e,this.x2=e),ethis.x2&&(this.x2=e)),r!=null&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=r,this.y2=r),rthis.y2&&(this.y2=r))}addX(e){this.addPoint(e,null)}addY(e){this.addPoint(null,e)}addQuadraticCurve(e,r,s,o,a,l){const c=e+.6666666666666666*(s-e),u=r+2/3*(o-r),d=c+1/3*(a-e),g=u+1/3*(l-r);this.addBezierCurve(e,r,c,u,d,g,a,l)}addBezierCurve(e,r,s,o,a,l,c,u){const d=[e,r],g=[s,o],m=[a,l],y=[c,u];let b;this.addPoint(d[0],d[1]),this.addPoint(y[0],y[1]);const S=(A,E)=>Math.pow(1-A,3)*d[E]+3*Math.pow(1-A,2)*A*g[E]+3*(1-A)*Math.pow(A,2)*m[E]+Math.pow(A,3)*y[E];for(b=0;b<=1;b++){const A=6*d[b]-12*g[b]+6*m[b],E=-3*d[b]+9*g[b]-9*m[b]+3*y[b],x=3*g[b]-3*d[b];if(E===0){if(A===0)continue;const M=-x/A;0{if(!i)throw new Vex.RERR("BadArgument","Invalid clef: "+i);const e=Flow.clefProperties.values[i];if(!e)throw new Vex.RERR("BadArgument","Invalid clef: "+i);return e};Flow.clefProperties.values={treble:{line_shift:0},bass:{line_shift:6},tenor:{line_shift:4},alto:{line_shift:3},soprano:{line_shift:1},percussion:{line_shift:0},"mezzo-soprano":{line_shift:2},"baritone-c":{line_shift:5},"baritone-f":{line_shift:5},subbass:{line_shift:7},french:{line_shift:-1}};Flow.keyProperties=(i,e,r)=>{e===void 0&&(e="treble");const s={octave_shift:0};typeof r=="object"&&Vex.Merge(s,r);const o=i.split("/");if(o.length<2)throw new Vex.RERR("BadArguments",`Key must have note + octave and an optional glyph: ${i}`);const a=o[0].toUpperCase(),l=Flow.keyProperties.note_values[a];if(!l)throw new Vex.RERR("BadArguments","Invalid key name: "+a);l.octave&&(o[1]=l.octave);let c=parseInt(o[1],10);c-=s.octave_shift;let d=(c*7-4*7+l.index)/2;d+=Flow.clefProperties(e).line_shift;let g=0;d<=0&&d*2%2===0&&(g=1),d>=6&&d*2%2===0&&(g=-1);const m=typeof l.int_val<"u"?c*12+l.int_val:null,y=l.code,b=l.shift_right;let S={};if(o.length>2&&o[2]){const A=o[2].toUpperCase();S=Flow.keyProperties.customNoteHeads[A]||{}}return{key:a,octave:c,line:d,int_value:m,accidental:l.accidental,code:y,stroke:g,shift_right:b,displaced:!1,...S}};Flow.keyProperties.note_values={C:{index:0,int_val:0,accidental:null},CN:{index:0,int_val:0,accidental:"n"},"C#":{index:0,int_val:1,accidental:"#"},"C##":{index:0,int_val:2,accidental:"##"},CB:{index:0,int_val:-1,accidental:"b"},CBB:{index:0,int_val:-2,accidental:"bb"},D:{index:1,int_val:2,accidental:null},DN:{index:1,int_val:2,accidental:"n"},"D#":{index:1,int_val:3,accidental:"#"},"D##":{index:1,int_val:4,accidental:"##"},DB:{index:1,int_val:1,accidental:"b"},DBB:{index:1,int_val:0,accidental:"bb"},E:{index:2,int_val:4,accidental:null},EN:{index:2,int_val:4,accidental:"n"},"E#":{index:2,int_val:5,accidental:"#"},"E##":{index:2,int_val:6,accidental:"##"},EB:{index:2,int_val:3,accidental:"b"},EBB:{index:2,int_val:2,accidental:"bb"},F:{index:3,int_val:5,accidental:null},FN:{index:3,int_val:5,accidental:"n"},"F#":{index:3,int_val:6,accidental:"#"},"F##":{index:3,int_val:7,accidental:"##"},FB:{index:3,int_val:4,accidental:"b"},FBB:{index:3,int_val:3,accidental:"bb"},G:{index:4,int_val:7,accidental:null},GN:{index:4,int_val:7,accidental:"n"},"G#":{index:4,int_val:8,accidental:"#"},"G##":{index:4,int_val:9,accidental:"##"},GB:{index:4,int_val:6,accidental:"b"},GBB:{index:4,int_val:5,accidental:"bb"},A:{index:5,int_val:9,accidental:null},AN:{index:5,int_val:9,accidental:"n"},"A#":{index:5,int_val:10,accidental:"#"},"A##":{index:5,int_val:11,accidental:"##"},AB:{index:5,int_val:8,accidental:"b"},ABB:{index:5,int_val:7,accidental:"bb"},B:{index:6,int_val:11,accidental:null},BN:{index:6,int_val:11,accidental:"n"},"B#":{index:6,int_val:12,accidental:"#"},"B##":{index:6,int_val:13,accidental:"##"},BB:{index:6,int_val:10,accidental:"b"},BBB:{index:6,int_val:9,accidental:"bb"},R:{index:6,int_val:9,rest:!0},X:{index:6,accidental:"",octave:4,code:"v3e",shift_right:5.5}};Flow.keyProperties.customNoteHeads={D0:{code:"v27",shift_right:0,stem_up_x_offset:0,stem_down_x_offset:0,stem_up_y_offset:-1,stem_down_y_offset:0},D1:{code:"v2d",shift_right:-.5},D2:{code:"v22",shift_right:-.5},D3:{code:"v70",shift_right:-.5},T0:{code:"v49",shift_right:-2,stem_up_y_offset:-4,stem_down_y_offset:4},T1:{code:"v93",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},T2:{code:"v40",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},T3:{code:"v7d",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},TI:{code:"v11",shift_right:0,stem_up_y_shift:5,stem_down_y_shift:5,stem_up_x_offset:6,stem_down_x_offset:4},X0:{code:"v92",stem_up_x_offset:-2,stem_down_x_offset:0,stem_up_y_offset:4,stem_down_y_offset:4},X1:{code:"v95",shift_right:-.5,stem_up_y_offset:4,stem_down_y_offset:4},X2:{code:"v3e",shift_right:.5,stem_up_y_offset:4,stem_down_y_offset:4},X3:{code:"v3b",shift_right:0,stem_up_x_offset:-1.2,stem_down_x_offset:0,stem_up_y_offset:-1,stem_down_y_offset:2},S1:{code:"vd3",shift_right:0},S2:{code:"vd2",shift_right:0},R1:{code:"vd5",shift_right:0},R2:{code:"vd4",shift_right:0},rwl:{code:"rwl",shift_right:0},rhl:{code:"rhl",shift_right:0}};Flow.integerToNote=i=>{if(typeof i>"u")throw new Vex.RERR("BadArguments","Undefined integer for integerToNote");if(i<-2)throw new Vex.RERR("BadArguments",`integerToNote requires integer > -2: ${i}`);const e=Flow.integerToNote.table[i];if(!e)throw new Vex.RERR("BadArguments",`Unknown note value for integer: ${i}`);return e};Flow.integerToNote.table={0:"C",1:"C#",2:"D",3:"D#",4:"E",5:"F",6:"F#",7:"G",8:"G#",9:"A",10:"A#",11:"B"};Flow.tabToGlyph=(i,e=1)=>{let r=null,s=0,o=0;if(i.toString().toUpperCase()==="X"){const a=new Glyph("v7f",Flow.DEFAULT_TABLATURE_FONT_SCALE).getMetrics();r="v7f",s=a.width,o=-a.height/2}else s=Flow.textWidth(i.toString());return{text:i,code:r,getWidth:()=>s*e,shift_y:o}};Flow.textWidth=i=>7*i.toString().length;Flow.articulationCodes=i=>Flow.articulationCodes.articulations[i];Flow.articulationCodes.articulations={"a.":{code:"v23",between_lines:!0},av:{code:"v28",between_lines:!0},"a>":{code:"v42",between_lines:!0},"a-":{code:"v25",between_lines:!0},"a^":{code:"va",between_lines:!1},"a+":{code:"v8b",between_lines:!1},ao:{code:"v94",between_lines:!1},ah:{code:"vb9",between_lines:!1},"a@a":{code:"v43",between_lines:!1},"a@u":{code:"v5b",between_lines:!1},"a|":{code:"v75",between_lines:!1},am:{code:"v97",between_lines:!1},"a,":{code:"vb3",between_lines:!1}};Flow.accidentalCodes=i=>Flow.accidentalCodes.accidentals[i];Flow.accidentalCodes.accidentals={"#":{code:"v18",parenRightPaddingAdjustment:-1},"##":{code:"v7f",parenRightPaddingAdjustment:-1},b:{code:"v44",parenRightPaddingAdjustment:-2},bb:{code:"v26",parenRightPaddingAdjustment:-2},n:{code:"v4e",parenRightPaddingAdjustment:-1},"{":{code:"v9c",parenRightPaddingAdjustment:-1},"}":{code:"v84",parenRightPaddingAdjustment:-1},db:{code:"v9e",parenRightPaddingAdjustment:-1},d:{code:"vab",parenRightPaddingAdjustment:0},bbs:{code:"v90",parenRightPaddingAdjustment:-1},"++":{code:"v51",parenRightPaddingAdjustment:-1},"+":{code:"v78",parenRightPaddingAdjustment:-1},"+-":{code:"v8d",parenRightPaddingAdjustment:-1},"++-":{code:"v7a",parenRightPaddingAdjustment:-1},bs:{code:"vb7",parenRightPaddingAdjustment:-1},bss:{code:"v39",parenRightPaddingAdjustment:-1},o:{code:"vd0",parenRightPaddingAdjustment:-1},k:{code:"vd1",parenRightPaddingAdjustment:-1},ashs:{code:"vd6",parenRightPaddingAdjustment:-1},afhf:{code:"vd7",parenRightPaddingAdjustment:-1}};Flow.accidentalColumnsTable={1:{a:[1],b:[1]},2:{a:[1,2]},3:{a:[1,3,2],b:[1,2,1],second_on_bottom:[1,2,3]},4:{a:[1,3,4,2],b:[1,2,3,1],spaced_out_tetrachord:[1,2,1,2]},5:{a:[1,3,5,4,2],b:[1,2,4,3,1],spaced_out_pentachord:[1,2,3,2,1],very_spaced_out_pentachord:[1,2,1,2,1]},6:{a:[1,3,5,6,4,2],b:[1,2,4,5,3,1],spaced_out_hexachord:[1,3,2,1,3,2],very_spaced_out_hexachord:[1,2,1,2,1,2]}};Flow.ornamentCodes=i=>Flow.ornamentCodes.ornaments[i];Flow.ornamentCodes.ornaments={mordent:{code:"v1e"},mordent_inverted:{code:"v45"},turn:{code:"v72"},turn_inverted:{code:"v33"},tr:{code:"v1f"},upprall:{code:"v60"},downprall:{code:"vb4"},prallup:{code:"v6d"},pralldown:{code:"v2c"},upmordent:{code:"v29"},downmordent:{code:"v68"},lineprall:{code:"v20"},prallprall:{code:"v86"}};Flow.keySignature=i=>{const e=Flow.keySignature.keySpecs[i];if(!e)throw new Vex.RERR("BadKeySignature",`Bad key signature spec: '${i}'`);if(!e.acc)return[];const r=Flow.keySignature.accidentalList(e.acc),s=[];for(let o=0;o({b:[2,.5,2.5,1,3,1.5,3.5],"#":[0,1.5,-.5,1,2.5,.5,2]})[i];Flow.parseNoteDurationString=i=>{if(typeof i!="string")return null;const r=/(\d*\/?\d+|[a-z])(d*)([nrhms]|$)/.exec(i);if(!r)return null;const s=r[1],o=r[2].length;let a=r[3];return a.length===0&&(a="n"),{duration:s,dots:o,type:a}};Flow.parseNoteStruct=i=>{const e=i.duration,r=Flow.parseNoteDurationString(e);if(!r)return null;let s=Flow.durationToTicks(r.duration);if(s==null)return null;let o=i.type;const a=[];if(o){if(!Flow.getGlyphProps.validTypes[o])return null}else o=r.type||"n",i.keys!==void 0&&i.keys.forEach((u,d)=>{const g=u.split("/");g&&g.length===3&&(a[d]=g[2])});const l=i.dots?i.dots:r.dots;if(typeof l!="number")return null;let c=s;for(let u=0;u{const e=Flow.durationAliases[i];if(e!==void 0&&(i=e),Flow.durationToTicks.durations[i]===void 0)throw new Vex.RERR("BadArguments",`The provided duration is not valid: ${i}`);return i};Flow.durationToFraction=i=>new Fraction().parse(Flow.sanitizeDuration(i));Flow.durationToNumber=i=>Flow.durationToFraction(i).value();Flow.durationToTicks=i=>{i=Flow.sanitizeDuration(i);const e=Flow.durationToTicks.durations[i];return e===void 0?null:e};Flow.durationToTicks.durations={"1/2":Flow.RESOLUTION*2,1:Flow.RESOLUTION/1,2:Flow.RESOLUTION/2,4:Flow.RESOLUTION/4,8:Flow.RESOLUTION/8,16:Flow.RESOLUTION/16,32:Flow.RESOLUTION/32,64:Flow.RESOLUTION/64,128:Flow.RESOLUTION/128,256:Flow.RESOLUTION/256};Flow.durationAliases={w:"1",h:"2",q:"4",b:"256"};Flow.getGlyphProps=(i,e)=>{i=Flow.sanitizeDuration(i);const r=Flow.getGlyphProps.duration_codes[i];if(r===void 0)return null;e||(e="n");let s=r.type[e];if(s===void 0){const o=Flow.keyProperties.customNoteHeads[e.toUpperCase()];if(o===void 0)return null;s={code_head:o.code,...o}}return{...r.common,...s}};Flow.getGlyphProps.validTypes={n:{name:"note"},r:{name:"rest"},h:{name:"harmonic"},m:{name:"muted"},s:{name:"slash"}};Flow.getGlyphProps.duration_codes={"1/2":{common:{getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v53",i).getMetrics().width},stem:!1,stem_offset:0,flag:!1,stem_up_extension:-Flow.STEM_HEIGHT,stem_down_extension:-Flow.STEM_HEIGHT,tabnote_stem_up_extension:-Flow.STEM_HEIGHT,tabnote_stem_down_extension:-Flow.STEM_HEIGHT,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v53"},h:{code_head:"v59"},m:{code_head:"vf",stem_offset:0},r:{code_head:"v31",rest:!0,position:"B/5",dot_shiftY:.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},1:{common:{getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v1d",i).getMetrics().width},stem:!1,stem_offset:0,flag:!1,stem_up_extension:-Flow.STEM_HEIGHT,stem_down_extension:-Flow.STEM_HEIGHT,tabnote_stem_up_extension:-Flow.STEM_HEIGHT,tabnote_stem_down_extension:-Flow.STEM_HEIGHT,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v1d"},h:{code_head:"v46"},m:{code_head:"v92",stem_offset:-3},r:{code_head:"v5c",rest:!0,position:"D/5",dot_shiftY:.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},2:{common:{getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v81",i).getMetrics().width},stem:!0,stem_offset:0,flag:!1,stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v81"},h:{code_head:"v2d"},m:{code_head:"v95",stem_offset:-3},r:{code_head:"vc",stem:!1,rest:!0,position:"B/4",dot_shiftY:-.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},4:{common:{getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",i).getMetrics().width},stem:!0,stem_offset:0,flag:!1,stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e",stem_offset:-3},r:{code_head:"v7c",stem:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1.5,line_below:1.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},8:{common:{getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",i).getMetrics().width},stem:!0,stem_offset:0,flag:!0,beam_count:1,code_flag_upstem:"v54",code_flag_downstem:"v9a",stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"va5",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1,line_below:1},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},16:{common:{beam_count:2,getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",i).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v3f",code_flag_downstem:"v8f",stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v3c",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1,line_below:2},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},32:{common:{beam_count:3,getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",i).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v47",code_flag_downstem:"v2a",stem_up_extension:9,stem_down_extension:9,tabnote_stem_up_extension:8,tabnote_stem_down_extension:5,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v55",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-1.5,line_above:2,line_below:2},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},64:{common:{beam_count:4,getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",i).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"va9",code_flag_downstem:"v58",stem_up_extension:13,stem_down_extension:13,tabnote_stem_up_extension:12,tabnote_stem_down_extension:9,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v38",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-1.5,line_above:2,line_below:3},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},128:{common:{beam_count:5,getWidth(i=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",i).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v9b",code_flag_downstem:"v30",stem_up_extension:22,stem_down_extension:22,tabnote_stem_up_extension:21,tabnote_stem_down_extension:18,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"vaa",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:1.5,line_above:3,line_below:3},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}}};Flow.smufl={};Flow.smufl.to_code_points={bracketTop:"v1b",bracketBottom:"v10",barlineTick:"v6f",segno:"v8c",coda:"v4d",gClef:"v83",cClef:"vad",fClef:"v79",unpitchedPercussionClef1:"v59","6stringTabClef":"v2f",timeSig0:"v0",timeSig1:"v1",timeSig2:"v2",timeSig3:"v3",timeSig4:"v4",timeSig5:"v5",timeSig6:"v6",timeSig7:"v7",timeSig8:"v8",timeSig9:"v9",timeSigCommon:"v41",timeSigCutCommon:"vb6",noteheadDoubleWhole:"v53",noteheadWhole:"v1d",noteheadHalf:"v81",noteheadBlack:"vb",noteheadXWhole:"v92",noteheadXHalf:"v95",noteheadXBlack:"v3e",noteheadCircleX:"v3b",noteheadTriangleUpWhole:"v49",noteheadTriangleUpHalf:"v93",noteheadTriangleUpBlack:"v40",noteheadDiamondWhole:"v46",noteheadDiamondHalf:"v2d",noteheadDiamondBlack:"v22",augmentationDot:"v23",tremolo1:"v74",flag8thUp:"v54",flag8thDown:"v9a",flag16thUp:"v3f",flag16thDown:"v8f",flag32ndUp:"v47",flag32ndDown:"v2a",flag64thUp:"va9",flag64thDown:"v58",flag128thUp:"v9b",flag128thDown:"v30",accidentalFlat:"v44",accidentalNatural:"v4e",accidentalSharp:"v18",accidentalDoubleSharp:"v7f",accidentalDoubleFlat:"v26",accidentalParensLeft:"v9c",accidentalParensRight:"v84",accidentalQuarterToneFlatStein:"vab",accidentalThreeQuarterTonesFlatZimmermann:"v9e",accidentalQuarterToneSharpStein:"v78",accidentalThreeQuarterTonesSharpStein:"v51",accidentalBuyukMucennebFlat:"v39",accidentalBakiyeFlat:"vb7",accidentalKomaSharp:"v51",accidentalKucukMucennebSharp:"v8d",accidentalKoron:"vd1",accidentalSori:"vd0",articAccentAbove:"v42",articAccentBelow:"v42",articTenutoAbove:"v25",articTenutoBelow:"v25",articStaccatoAbove:"v23",articStaccatoBelow:"v23",articStaccatissimoAbove:"v28",articMarcatoAbove:"va",fermataAbove:"v43",fermataBelow:"v5b",breathMarkComma:"v6c",breathMarkUpbow:"v8a",caesura:"v34",caesuraCurved:"v4b",restMaxima:"v59",restDoubleWhole:"v31",restWhole:"v5c",restHalf:"vc",restQuarter:"v7c",rest8th:"va5",rest16th:"v3c",rest32nd:"v55",rest64th:"v38",rest128th:"vaa",dynamicPiano:"vbf",dynamicMezzo:"v62",dynamicForte:"vba",dynamicRinforzando:"vba",dynamicSforzando:"v4a",dynamicZ:"v80",ornamentTrill:"v1f",ornamentTurn:"v72",ornamentTurnSlash:"v33",ornamentMordent:"v45",ornamentMordentInverted:"v1e",ornamentTremblement:"v86",ornamentPrecompAppoggTrill:"v20",ornamentPrecompSlideTrillDAnglebert:"v60",ornamentPrecompSlideTrillBach:"v29",ornamentPrecompTrillSuffixDandrieu:"v6d",ornamentPrecompDoubleCadenceUpperPrefix:"vb4",ornamentPrecompDoubleCadenceUpperPrefixTurn:"v68",ornamentPrecompTrillLowerSuffix:"v2c",stringsDownBow:"v94",stringsUpBow:"v75",stringsHarmonic:"vb9",pluckedSnapPizzicatoAbove:"v94",pluckedLeftHandPizzicato:"v8b",keyboardPedalPed:"v36",keyboardPedalUp:"v5d",pictChokeCymbal:"vb3",wiggleArpeggiatoUp:"va3",arrowheadBlackUp:"vc3",arrowheadBlackDown:"v52"};Flow.TIME4_4={num_beats:4,beat_value:4,resolution:Flow.RESOLUTION};class CanvasContext{static get WIDTH(){return 600}static get HEIGHT(){return 400}static get CANVAS_BROWSER_SIZE_LIMIT(){return 32767}static SanitizeCanvasDims(e,r){return Math.max(e,r)>this.CANVAS_BROWSER_SIZE_LIMIT&&(Vex.W("Canvas dimensions exceed browser limit. Cropping to "+this.CANVAS_BROWSER_SIZE_LIMIT),e>this.CANVAS_BROWSER_SIZE_LIMIT&&(e=this.CANVAS_BROWSER_SIZE_LIMIT),r>this.CANVAS_BROWSER_SIZE_LIMIT&&(r=this.CANVAS_BROWSER_SIZE_LIMIT)),[e,r]}constructor(e){this.vexFlowCanvasContext=e,e.canvas?this.canvas=e.canvas:this.canvas={width:CanvasContext.WIDTH,height:CanvasContext.HEIGHT}}clear(){this.vexFlowCanvasContext.clearRect(0,0,this.canvas.width,this.canvas.height)}openGroup(){}closeGroup(){}add(){}setFont(e,r,s){return this.vexFlowCanvasContext.font=(s||"")+" "+r+"pt "+e,this}setRawFont(e){return this.vexFlowCanvasContext.font=e,this}setFillStyle(e){return this.vexFlowCanvasContext.fillStyle=e,this}setBackgroundFillStyle(e){return this.background_fillStyle=e,this}setStrokeStyle(e){return this.vexFlowCanvasContext.strokeStyle=e,this}setShadowColor(e){return this.vexFlowCanvasContext.shadowColor=e,this}setShadowBlur(e){return this.vexFlowCanvasContext.shadowBlur=e,this}setLineWidth(e){return this.vexFlowCanvasContext.lineWidth=e,this}setLineCap(e){return this.vexFlowCanvasContext.lineCap=e,this}setLineDash(e){return this.vexFlowCanvasContext.lineDash=e,this}scale(e,r){return this.vexFlowCanvasContext.scale(parseFloat(e),parseFloat(r))}resize(e,r){return[e,r]=this.SanitizeCanvasDims(parseInt(e,10),parseInt(r,10)),this.vexFlowCanvasContext.resize(e,r)}rect(e,r,s,o){return this.vexFlowCanvasContext.rect(e,r,s,o)}fillRect(e,r,s,o){return this.vexFlowCanvasContext.fillRect(e,r,s,o)}clearRect(e,r,s,o){return this.vexFlowCanvasContext.clearRect(e,r,s,o)}beginPath(){return this.vexFlowCanvasContext.beginPath()}moveTo(e,r){return this.vexFlowCanvasContext.moveTo(e,r)}lineTo(e,r){return this.vexFlowCanvasContext.lineTo(e,r)}bezierCurveTo(e,r,s,o,a,l){return this.vexFlowCanvasContext.bezierCurveTo(e,r,s,o,a,l)}quadraticCurveTo(e,r,s,o){return this.vexFlowCanvasContext.quadraticCurveTo(e,r,s,o)}arc(e,r,s,o,a,l){return this.vexFlowCanvasContext.arc(e,r,s,o,a,l)}glow(){return this.vexFlowCanvasContext.glow()}fill(){return this.vexFlowCanvasContext.fill()}stroke(){return this.vexFlowCanvasContext.stroke()}closePath(){return this.vexFlowCanvasContext.closePath()}measureText(e){return this.vexFlowCanvasContext.measureText(e)}fillText(e,r,s){return this.vexFlowCanvasContext.fillText(e,r,s)}save(){return this.vexFlowCanvasContext.save()}restore(){return this.vexFlowCanvasContext.restore()}}class RaphaelContext{constructor(e){this.element=e,this.paper=Raphael(e),this.path="",this.pen={x:0,y:0},this.lineWidth=1,this.state={scale:{x:1,y:1},font_family:"Arial",font_size:8,font_weight:800},this.attributes={"stroke-width":.3,fill:"black",stroke:"black",font:"10pt Arial"},this.background_attributes={"stroke-width":0,fill:"white",stroke:"white",font:"10pt Arial"},this.shadow_attributes={width:0,color:"black"},this.state_stack=[]}openGroup(){}closeGroup(){}add(){}setFont(e,r,s){return this.state.font_family=e,this.state.font_size=r,this.state.font_weight=s,this.attributes.font=(this.state.font_weight||"")+" "+this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this}setRawFont(e){return this.attributes.font=e,this}setFillStyle(e){return this.attributes.fill=e,this}setBackgroundFillStyle(e){return this.background_attributes.fill=e,this.background_attributes.stroke=e,this}setStrokeStyle(e){return this.attributes.stroke=e,this}setShadowColor(e){return this.shadow_attributes.color=e,this}setShadowBlur(e){return this.shadow_attributes.width=e,this}setLineWidth(e){this.attributes["stroke-width"]=e,this.lineWidth=e}setLineDash(){return this}setLineCap(){return this}scale(e,r){return this.state.scale={x:e,y:r},this.attributes.transform="S"+e+","+r+",0,0",this.attributes.scale=e+","+r+",0,0",this.attributes.font=this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this.background_attributes.transform="S"+e+","+r+",0,0",this.background_attributes.font=this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this}clear(){this.paper.clear()}resize(e,r){return this.element.style.width=e,this.paper.setSize(e,r),this}setViewBox(e){this.paper.canvas.setAttribute("viewBox",e)}rect(e,r,s,o){return o<0&&(r+=o,o=-o),this.paper.rect(e,r,s-.5,o-.5).attr(this.attributes).attr("fill","none").attr("stroke-width",this.lineWidth),this}fillRect(e,r,s,o){return o<0&&(r+=o,o=-o),this.paper.rect(e,r,s-.5,o-.5).attr(this.attributes),this}clearRect(e,r,s,o){return o<0&&(r+=o,o=-o),this.paper.rect(e,r,s-.5,o-.5).attr(this.background_attributes),this}beginPath(){return this.path="",this.pen.x=0,this.pen.y=0,this}moveTo(e,r){return this.path+="M"+e+","+r,this.pen.x=e,this.pen.y=r,this}lineTo(e,r){return this.path+="L"+e+","+r,this.pen.x=e,this.pen.y=r,this}bezierCurveTo(e,r,s,o,a,l){return this.path+="C"+e+","+r+","+s+","+o+","+a+","+l,this.pen.x=a,this.pen.y=l,this}quadraticCurveTo(e,r,s,o){return this.path+="Q"+e+","+r+","+s+","+o,this.pen.x=s,this.pen.y=o,this}arc(e,r,s,o,a,l){function c(d){for(;d<0;)d+=Math.PI*2;for(;d>Math.PI*2;)d-=Math.PI*2;return d}if(o=c(o),a=c(a),o>a){const d=o;o=a,a=d,l=!l}const u=a-o;return u>Math.PI?(this.arcHelper(e,r,s,o,o+u/2,l),this.arcHelper(e,r,s,o+u/2,a,l)):this.arcHelper(e,r,s,o,a,l),this}arcHelper(e,r,s,o,a,l){const c=e+s*Math.cos(o),u=r+s*Math.sin(o),d=e+s*Math.cos(a),g=r+s*Math.sin(a);let m=0,y=0;l?(y=1,a-oMath.PI&&(m=1),this.path+="M"+c+","+u+",A"+s+","+s+",0,"+m+","+y+","+d+","+g+"M"+this.pen.x+","+this.pen.y}glow(){const e=this.paper.set();if(this.shadow_attributes.width>0){const r=this.shadow_attributes,s=r.width/2;for(let o=1;o<=s;o++)e.push(this.paper.path(this.path).attr({stroke:r.color,"stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(r.width/s*o).toFixed(3),opacity:+((r.opacity||.3)/s).toFixed(3),transform:this.attributes.transform,scale:this.attributes.scale}))}return e}fill(){const e=this.paper.path(this.path).attr(this.attributes).attr("stroke-width",0);return this.glow(e),this}stroke(){const e=this.lineWidth*(this.state.scale.x+this.state.scale.y)/2,r=this.paper.path(this.path).attr(this.attributes).attr("fill","none").attr("stroke-width",e);return this.glow(r),this}closePath(){return this.path+="Z",this}measureText(e){const r=this.paper.text(0,0,e).attr(this.attributes).attr("fill","none").attr("stroke","none"),s=r.getBBox();return r.remove(),{width:s.width,height:s.height}}fillText(e,r,s){return this.paper.text(r+this.measureText(e).width/2,s-this.state.font_size/(2.25*this.state.scale.y),e).attr(this.attributes),this}save(){return this.state_stack.push({state:{font_family:this.state.font_family},attributes:{font:this.attributes.font,fill:this.attributes.fill,stroke:this.attributes.stroke,"stroke-width":this.attributes["stroke-width"]},shadow_attributes:{width:this.shadow_attributes.width,color:this.shadow_attributes.color}}),this}restore(){const e=this.state_stack.pop();return this.state.font_family=e.state.font_family,this.attributes.font=e.attributes.font,this.attributes.fill=e.attributes.fill,this.attributes.stroke=e.attributes.stroke,this.attributes["stroke-width"]=e.attributes["stroke-width"],this.shadow_attributes.width=e.shadow_attributes.width,this.shadow_attributes.color=e.shadow_attributes.color,this}}const attrNamesToIgnoreMap={path:{x:!0,y:!0,width:!0,height:!0},rect:{},text:{width:!0,height:!0}};{const i={"font-family":!0,"font-weight":!0,"font-style":!0,"font-size":!0};Vex.Merge(attrNamesToIgnoreMap.rect,i),Vex.Merge(attrNamesToIgnoreMap.path,i)}class SVGContext{constructor(e){this.element=e,this.svgNS="http://www.w3.org/2000/svg";const r=this.create("svg");this.element.appendChild(r),this.svg=r,this.groups=[this.svg],this.parent=this.svg,this.path="",this.pen={x:NaN,y:NaN},this.lineWidth=1,this.state={scale:{x:1,y:1},"font-family":"Arial","font-size":"8pt","font-weight":"normal"},this.attributes={"stroke-width":.3,fill:"black",stroke:"black","stroke-dasharray":"none","font-family":"Arial","font-size":"10pt","font-weight":"normal","font-style":"normal"},this.background_attributes={"stroke-width":0,fill:"white",stroke:"white","stroke-dasharray":"none","font-family":"Arial","font-size":"10pt","font-weight":"normal","font-style":"normal"},this.shadow_attributes={width:0,color:"black"},this.state_stack=[],this.iePolyfill()}create(e){return document.createElementNS(this.svgNS,e)}openGroup(e,r,s,o){const a=this.create("g");return this.groups.push(a),this.parent.appendChild(a),this.parent=a,e&&a.setAttribute("class",Vex.Prefix(e)),r&&a.setAttribute("id",Vex.Prefix(r)),s&&s.pointerBBox&&a.setAttribute("pointer-events","bounding-box"),o&&o==="isX"&&(a.style.transformOrigin="center",a.style.transformBox="content-box",a.style.transform="scale(1.5) translateY(-5px)"),a}closeGroup(e){if(e&&e==="transform"){const r=this.groups.pop();let s=r.getAttribute("class");s=s+" vf-stopDot",r.setAttribute("class",s)}else this.groups.pop();this.parent=this.groups[this.groups.length-1]}add(e){this.parent.appendChild(e)}iePolyfill(){typeof navigator<"u"&&(this.ie=/MSIE 9/i.test(navigator.userAgent)||/MSIE 10/i.test(navigator.userAgent)||/rv:11\.0/i.test(navigator.userAgent)||/Trident/i.test(navigator.userAgent))}setFont(e,r,s){let o=!1,a=!1,l="normal";typeof s=="string"&&(s.indexOf("italic")!==-1&&(s=s.replace(/italic/g,""),a=!0),s.indexOf("bold")!==-1&&(s=s.replace(/bold/g,""),o=!0),s=s.replace(/ /g,"")),s=o?"bold":s,s=typeof s>"u"||s===""?"normal":s,l=a?"italic":l;const c={"font-family":e,"font-size":r+"pt","font-weight":s,"font-style":l};return this.fontSize=Number(r),Vex.Merge(this.attributes,c),Vex.Merge(this.state,c),this}setRawFont(e){e=e.trim();const r=e.split(" ");return this.attributes["font-family"]=r[1],this.state["font-family"]=r[1],this.attributes["font-size"]=r[0],this.state["font-size"]=r[0],this.fontSize=Number(r[0].match(/\d+/)),this}setFillStyle(e){return this.attributes.fill=e,this}setBackgroundFillStyle(e){return this.background_attributes.fill=e,this.background_attributes.stroke=e,this}setStrokeStyle(e){return this.attributes.stroke=e,this}setShadowColor(e){return this.shadow_attributes.color=e,this}setShadowBlur(e){return this.shadow_attributes.width=e,this}setLineWidth(e){this.attributes["stroke-width"]=e,this.lineWidth=e}setLineDash(e){if(Object.prototype.toString.call(e)==="[object Array]")return e=e.join(", "),this.attributes["stroke-dasharray"]=e,this;throw new Vex.RERR("ArgumentError","lineDash must be an array of integers.")}setLineCap(e){return this.attributes["stroke-linecap"]=e,this}resize(e,r){this.width=e,this.height=r,this.element.style.width=e;const s={width:e,height:r};return this.applyAttributes(this.svg,s),this.scale(this.state.scale.x,this.state.scale.y),this}scale(e,r){this.state.scale={x:e,y:r};const s=this.width/e,o=this.height/r;return this.setViewBox(0,0,s,o),this}setViewBox(...e){if(e.length===1){const[r]=e;this.svg.setAttribute("viewBox",r)}else{const[r,s,o,a]=e,l=r+" "+s+" "+o+" "+a;this.svg.setAttribute("viewBox",l)}}applyAttributes(e,r){const s=attrNamesToIgnoreMap[e.nodeName];return Object.keys(r).forEach(o=>{var a;s&&s[o]||!o||!r[o]||o==="d"&&((a=r[o])==null?void 0:a.indexOf("NaN"))>-1||e.setAttributeNS(null,o,r[o])}),e}clear(){for(;this.svg.lastChild;)this.svg.removeChild(this.svg.lastChild);this.scale(this.state.scale.x,this.state.scale.y)}rect(e,r,s,o,a){o<0&&(r+=o,o*=-1);const l=this.create("rect");return typeof a>"u"&&(a={fill:"none","stroke-width":this.lineWidth,stroke:this.attributes.stroke}),Vex.Merge(a,{x:e,y:r,width:s,height:o}),this.applyAttributes(l,a),this.add(l),this}fillRect(e,r,s,o){return o<0&&(r+=o,o*=-1),this.rect(e,r,s,o,this.attributes),this}clearRect(e,r,s,o){return this.rect(e,r,s,o,this.background_attributes),this}beginPath(){return this.path="",this.pen.x=NaN,this.pen.y=NaN,this}moveTo(e,r){return this.path+="M"+e+" "+r,this.pen.x=e,this.pen.y=r,this}lineTo(e,r){return this.path+="L"+e+" "+r,this.pen.x=e,this.pen.y=r,this}bezierCurveTo(e,r,s,o,a,l){return this.path+="C"+e+" "+r+","+s+" "+o+","+a+" "+l,this.pen.x=a,this.pen.y=l,this}quadraticCurveTo(e,r,s,o){return this.path+="Q"+e+" "+r+","+s+" "+o,this.pen.x=s,this.pen.y=o,this}arc(e,r,s,o,a,l){function c(d){for(;d<0;)d+=Math.PI*2;for(;d>Math.PI*2;)d-=Math.PI*2;return d}if(o=c(o),a=c(a),o>a){const d=o;o=a,a=d,l=!l}const u=a-o;return u>Math.PI?(this.arcHelper(e,r,s,o,o+u/2,l),this.arcHelper(e,r,s,o+u/2,a,l)):this.arcHelper(e,r,s,o,a,l),this}arcHelper(e,r,s,o,a,l){const c=e+s*Math.cos(o),u=r+s*Math.sin(o),d=e+s*Math.cos(a),g=r+s*Math.sin(a);let m=0,y=0;l?(y=1,a-oMath.PI&&(m=1),this.path+="M"+c+" "+u+" A"+s+" "+s+" 0 "+m+" "+y+" "+d+" "+g,!isNaN(this.pen.x)&&!isNaN(this.pen.y)&&(this.peth+="M"+this.pen.x+" "+this.pen.y)}closePath(){return this.path+="Z",this}glow(){if(this.shadow_attributes.width>0){const e=this.shadow_attributes,r=e.width/2;for(let s=1;s<=r;s++){const o={stroke:e.color,"stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(e.width*.4/r*s).toFixed(3),opacity:+((e.opacity||.3)/r).toFixed(3)},a=this.create("path");o.d=this.path,this.applyAttributes(a,o),this.add(a)}}return this}fill(e){this.glow();const r=this.create("path");let s=e;return typeof e>"u"?(e={},Vex.Merge(e,this.attributes),e.stroke="none",s=e):(s=e,Vex.Merge(s,this.attributes),e.class&&(s.class=e.class),e.id&&(s.id=e.id)),e.d=this.path,this.applyAttributes(r,e),this.add(r),this}stroke(e=void 0){this.glow();const r=this.create("path"),s={};return Vex.Merge(s,this.attributes),e&&Vex.Merge(s,e),s.fill="none",s["stroke-width"]=this.lineWidth,s.d=this.path,this.applyAttributes(r,s),this.add(r),this}measureText(e){const r=this.create("text");if(typeof r.getBBox!="function")return{x:0,y:0,width:0,height:0};r.textContent=e,this.applyAttributes(r,this.attributes),this.svg.appendChild(r);let s=r.getBBox();return this.ie&&e!==""&&this.attributes["font-style"]==="italic"&&(s=this.ieMeasureTextFix(s,e)),this.svg.removeChild(r),s}ieMeasureTextFix(e){const r=Number(this.fontSize),s=1.196,o=1.9598,a=s*r+o,l=e.width-a,c=e.height-1.5;return{x:e.x,y:e.y,width:l,height:c}}fillText(e,r,s){if(!e||e.length<=0)return;const o={};Vex.Merge(o,this.attributes),o.stroke="none",o.x=r,o.y=s;const a=this.create("text");a.textContent=e,this.applyAttributes(a,o),this.add(a)}save(){return this.state_stack.push({state:{"font-family":this.state["font-family"],"font-weight":this.state["font-weight"],"font-style":this.state["font-style"],"font-size":this.state["font-size"],scale:this.state.scale},attributes:{"font-family":this.attributes["font-family"],"font-weight":this.attributes["font-weight"],"font-style":this.attributes["font-style"],"font-size":this.attributes["font-size"],fill:this.attributes.fill,stroke:this.attributes.stroke,"stroke-width":this.attributes["stroke-width"],"stroke-dasharray":this.attributes["stroke-dasharray"]},shadow_attributes:{width:this.shadow_attributes.width,color:this.shadow_attributes.color},lineWidth:this.lineWidth}),this}restore(){const e=this.state_stack.pop();return this.state["font-family"]=e.state["font-family"],this.state["font-weight"]=e.state["font-weight"],this.state["font-style"]=e.state["font-style"],this.state["font-size"]=e.state["font-size"],this.state.scale=e.state.scale,this.attributes["font-family"]=e.attributes["font-family"],this.attributes["font-weight"]=e.attributes["font-weight"],this.attributes["font-style"]=e.attributes["font-style"],this.attributes["font-size"]=e.attributes["font-size"],this.attributes.fill=e.attributes.fill,this.attributes.stroke=e.attributes.stroke,this.attributes["stroke-width"]=e.attributes["stroke-width"],this.attributes["stroke-dasharray"]=e.attributes["stroke-dasharray"],this.shadow_attributes.width=e.shadow_attributes.width,this.shadow_attributes.color=e.shadow_attributes.color,this.lineWidth=e.lineWidth,this}}let lastContext=null;class Renderer{static get Backends(){return{CANVAS:1,RAPHAEL:2,SVG:3,VML:4}}static get LineEndType(){return{NONE:1,UP:2,DOWN:3}}static get USE_CANVAS_PROXY(){return!1}static get lastContext(){return lastContext}static set lastContext(e){lastContext=e}static buildContext(e,r,s,o,a){const l=new Renderer(e,r);s&&o&&l.resize(s,o),a||(a="#FFF");const c=l.getContext();return c.setBackgroundFillStyle(a),Renderer.lastContext=c,c}static getCanvasContext(e,r,s,o){return Renderer.buildContext(e,Renderer.Backends.CANVAS,r,s,o)}static getRaphaelContext(e,r,s,o){return Renderer.buildContext(e,Renderer.Backends.RAPHAEL,r,s,o)}static getSVGContext(e,r,s,o){return Renderer.buildContext(e,Renderer.Backends.SVG,r,s,o)}static bolsterCanvasContext(e){if(Renderer.USE_CANVAS_PROXY)return new CanvasContext(e);const r=["clear","setFont","setRawFont","setFillStyle","setBackgroundFillStyle","setStrokeStyle","setShadowColor","setShadowBlur","setLineWidth","setLineCap","setLineDash","openGroup","closeGroup","getGroup"];return e.vexFlowCanvasContext=e,r.forEach(s=>{e[s]=e[s]||CanvasContext.prototype[s]}),e}static drawDashedLine(e,r,s,o,a,l){e.beginPath();const c=o-r,u=a-s,d=Math.atan2(u,c);let g=r,m=s;e.moveTo(r,s);let y=0,b=!0;for(;!((c<0?g<=o:g>=o)&&(u<0?m<=a:m>=a));){const S=l[y++%l.length],A=g+Math.cos(d)*S;g=c<0?Math.max(o,A):Math.min(o,A);const E=m+Math.sin(d)*S;m=u<0?Math.max(a,E):Math.min(a,E),b?e.lineTo(g,m):e.moveTo(g,m),b=!b}e.closePath(),e.stroke()}constructor(e,r){if(this.elementId=e,!this.elementId)throw new Vex.RERR("BadArgument","Invalid id for renderer.");if(this.element=document.getElementById(e),this.element||(this.element=e),this.ctx=null,this.paper=null,this.backend=r,this.backend===Renderer.Backends.CANVAS){if(!this.element.getContext)throw new Vex.RERR("BadElement",`Can't get canvas context from element: ${e}`);this.ctx=Renderer.bolsterCanvasContext(this.element.getContext("2d",{willReadFrequently:!0}))}else if(this.backend===Renderer.Backends.RAPHAEL)this.ctx=new RaphaelContext(this.element);else if(this.backend===Renderer.Backends.SVG)this.ctx=new SVGContext(this.element);else throw new Vex.RERR("InvalidBackend",`No support for backend: ${this.backend}`)}resize(e,r){if(this.backend===Renderer.Backends.CANVAS){if(!this.element.getContext)throw new Vex.RERR("BadElement",`Can't get canvas context from element: ${this.elementId}`);[e,r]=CanvasContext.SanitizeCanvasDims(e,r);const s=window.devicePixelRatio||1;this.element.width=e*s,this.element.height=r*s,this.element.style.width=e+"px",this.element.style.height=r+"px",this.ctx=Renderer.bolsterCanvasContext(this.element.getContext("2d",{willReadFrequently:!0})),this.ctx.scale(s,s)}else this.ctx.resize(e,r);return this}getContext(){return this.ctx}}function L$j(...i){Stem.DEBUG&&Vex.L("Vex.Flow.Stem",i)}class Stem extends Element$1{static get CATEGORY(){return"stem"}static get UP(){return 1}static get DOWN(){return-1}static get WIDTH(){return Flow.STEM_WIDTH}static get HEIGHT(){return Flow.STEM_HEIGHT}constructor(e={}){super(),this.setAttribute("type","Stem"),this.x_begin=e.x_begin||0,this.x_end=e.x_end||0,this.y_top=e.y_top||0,this.y_bottom=e.y_bottom||0,this.stem_extension=e.stem_extension||0,this.stem_direction=e.stem_direction||0,this.hide=e.hide||!1,this.isStemlet=e.isStemlet||!1,this.stemletHeight=e.stemletHeight||0,this.renderHeightAdjustment=0,this.setOptions(e)}setResetHeight(e){this.resetHeight=e}setOptions(e){this.stem_up_y_offset=e.stem_up_y_offset||0,this.stem_down_y_offset=e.stem_down_y_offset||0}setNoteHeadXBounds(e,r){return this.x_begin=e,this.x_end=r,this}setDirection(e){this.stem_direction=e}setExtension(e){this.stem_extension=e}getExtension(){return this.stem_extension}setYBounds(e,r){this.y_top=e,this.y_bottom=r}getCategory(){return Stem.CATEGORY}getHeight(){const e=this.stem_direction===Stem.UP?this.stem_up_y_offset:this.stem_down_y_offset;return(this.y_bottom-this.y_top)*this.stem_direction+(Stem.HEIGHT-e+this.stem_extension)*this.stem_direction}getBoundingBox(){throw new Vex.RERR("NotImplemented","getBoundingBox() not implemented.")}getExtents(){const e=this.stem_direction===Stem.UP,r=[this.y_top,this.y_bottom],s=Stem.HEIGHT+this.stem_extension,o=(e?Math.min:Math.max)(...r),a=(e?Math.max:Math.min)(...r);return{topY:o+s*-this.stem_direction,baseY:a}}setVisibility(e){return this.hide=!e,this}setStemlet(e,r){return this.isStemlet=e,this.stemletHeight=r,this}draw(){if(this.setRendered(),this.hide)return;const e=this.checkContext();let r,s;const o=this.stem_direction;o===Stem.DOWN?(r=this.x_begin,s=this.y_top+this.stem_down_y_offset):(r=this.x_end,s=this.y_bottom-this.stem_up_y_offset);const a=this.getHeight();L$j("Rendering stem - ","Top Y: ",this.y_top,"Bottom Y: ",this.y_bottom);const l=this.isStemlet?a-this.stemletHeight*this.stem_direction:0;if(e.save(),this.applyStyle(e),e.beginPath(),e.setLineWidth(Stem.WIDTH),e.moveTo(r,s-l),e.lineTo(r,s-a-this.renderHeightAdjustment*o),e.svg){const c={class:Vex.Prefix("stem")};this.id&&(c.id=this.id),e.stroke(c)}else e.stroke();this.restoreStyle(e),e.restore()}}let Tuplet$1=class Bt extends Element$1{static get LOCATION_TOP(){return 1}static get LOCATION_BOTTOM(){return-1}static get NESTING_OFFSET(){return 15}constructor(e,r){if(super(),this.setAttribute("type","Tuplet"),!e||!e.length)throw new Vex.RuntimeError("BadArguments","No notes provided for tuplet.");this.options=Vex.Merge({},r),this.notes=e,this.num_notes="num_notes"in this.options?this.options.num_notes:e.length,this.options.beats_occupied&&this.beatsOccupiedDeprecationWarning(),this.notes_occupied=this.options.notes_occupied||this.options.beats_occupied||2,"bracketed"in this.options?this.bracketed=this.options.bracketed:this.bracketed=e.some(s=>s.beam===null),this.ratioed="ratioed"in this.options?this.options.ratioed:Math.abs(this.notes_occupied-this.num_notes)>1,this.point=28,this.y_pos=16,this.x_pos=100,this.width=200,this.location=this.options.location||Bt.LOCATION_TOP,Formatter.AlignRestsToNotes(e,!0,!0),this.resolveGlyphs(),this.attach()}attach(){for(let e=0;e=1;)this.numerator_glyphs.unshift(new Glyph("v"+e%10,this.point)),e=parseInt(e/10,10);for(this.denom_glyphs=[],e=this.notes_occupied;e>=1;)this.denom_glyphs.unshift(new Glyph("v"+e%10,this.point)),e=parseInt(e/10,10)}getNestedTupletCount(){const e=this.location,r=this.notes[0];let s=a(r,e),o=a(r,e);function a(l,c){return l.tupletStack.filter(u=>u.location===c).length}return this.notes.forEach(l=>{const c=a(l,e);s=c>s?c:s,o=co&&(o=l)}}return o+e+r}draw(){this.checkContext(),this.setRendered();const e=this.notes[0],r=this.notes[this.notes.length-1];this.bracketed?(this.x_pos=e.getTieLeftX()-5,this.width=r.getTieRightX()-this.x_pos+5):(this.x_pos=e.getStemX(),this.width=r.getStemX()-this.x_pos),this.y_pos=this.getYPosition();const s=(c,u)=>c+u.getMetrics().width;let o=this.numerator_glyphs.reduce(s,0);this.ratioed&&(o=this.denom_glyphs.reduce(s,o),o+=this.point*.32);const l=this.x_pos+this.width/2-o/2;if(this.bracketed){const c=this.width/2-o/2-5;c>0&&(this.context.fillRect(this.x_pos,this.y_pos,c,1),this.context.fillRect(this.x_pos+this.width/2+o/2+5,this.y_pos,c,1),this.context.fillRect(this.x_pos,this.y_pos+(this.location===Bt.LOCATION_BOTTOM),1,this.location*10),this.context.fillRect(this.x_pos+this.width,this.y_pos+(this.location===Bt.LOCATION_BOTTOM),1,this.location*10))}if(this.RenderTupletNumber!==!1){let c=0;this.numerator_glyphs.forEach(u=>{u.render(this.context,l+c,this.y_pos+this.point/3-2),c+=u.getMetrics().width})}if(this.ratioed){const c=l+x_offset+this.point*.16,u=this.point*.06;this.context.beginPath(),this.context.arc(c,this.y_pos-this.point*.08,u,0,Math.PI*2,!0),this.context.closePath(),this.context.fill(),this.context.beginPath(),this.context.arc(c,this.y_pos+this.point*.12,u,0,Math.PI*2,!0),this.context.closePath(),this.context.fill(),x_offset+=this.point*.32,this.denom_glyphs.forEach(d=>{d.render(this.context,l+x_offset,this.y_pos+this.point/3-2),x_offset+=d.getMetrics().width})}}};function calculateStemDirection(i){let e=0;return i.forEach(r=>{r.keyProps&&r.keyProps.forEach(s=>{e+=s.line-3})}),e>=0?Stem.DOWN:Stem.UP}const getStemSlope=(i,e)=>{const r=i.getStemExtents().topY,s=i.getStemX(),o=e.getStemExtents().topY,a=e.getStemX();return(o-r)/(a-s)},BEAM_LEFT="L",BEAM_RIGHT="R",BEAM_BOTH="B";let Beam$1=class fi extends Element$1{static getDefaultBeamGroups(e){(!e||e==="c")&&(e="4/4");const s={"1/2":["1/2"],"2/2":["1/2"],"3/2":["1/2"],"4/2":["1/2"],"1/4":["1/4"],"2/4":["1/4"],"3/4":["1/4"],"4/4":["1/4"],"1/8":["1/8"],"2/8":["2/8"],"3/8":["3/8"],"4/8":["2/8"],"1/16":["1/16"],"2/16":["2/16"],"3/16":["3/16"],"4/16":["2/16"]}[e];if(s===void 0){const o=parseInt(e.split("/")[0],10),a=parseInt(e.split("/")[1],10);if(o%3===0)return[new Fraction(3,a)];if(a>4)return[new Fraction(2,a)];if(a<=4)return[new Fraction(1,a)]}else return s.map(o=>new Fraction().parse(o));return[new Fraction(1,4)]}static applyAndGetBeams(e,r,s){return fi.generateBeams(e.getTickables(),{groups:s,stem_direction:r})}static generateBeams(e,r){r||(r={}),(!r.groups||!r.groups.length)&&(r.groups=[new Fraction(2,8)]);const s=r.groups.map(C=>{if(!C.multiply)throw new Vex.RuntimeError("InvalidBeamGroups","The beam groups must be an array of Vex.Flow.Fractions");return C.clone().multiply(Flow.RESOLUTION,1)}),o=e;let a=0,l=[],c=[];function u(C){return C.reduce((M,B)=>B.getTicks().clone().add(M),new Fraction(0,1))}function d(){s.length-1>a?a+=1:a=0}function g(){let C=[];o.forEach(M=>{if(C=[],M.shouldIgnoreTicks()){l.push(c),c=C;return}c.push(M);const B=s[a].clone(),I=u(c),k=Flow.durationToNumber(M.duration)<8;k&&M.tuplet&&(B.numerator*=2),I.greaterThan(B)?(k||C.push(c.pop()),l.push(c),c=C,d()):I.equals(B)&&(l.push(c),c=C,d())}),c.length>0&&l.push(c)}function m(){return l.filter(C=>{if(C.length>1){let M=!0;return C.forEach(B=>{B.getIntrinsicTicks()>=Flow.durationToTicks("4")&&(M=!1)}),M}return!1})}function y(){const C=[];l.forEach(M=>{let B=[];M.forEach((I,k,D)=>{const O=k===0||k===D.length-1,z=D[k-1],N=!r.beam_rests&&I.isRest(),Q=r.beam_rests&&r.beam_middle_only&&I.isRest()&&O;let _=!1;if(r.maintain_stem_directions&&z&&!I.isRest()&&!z.isRest()){const H=z.getStemDirection();_=I.getStemDirection()!==H}const U=parseInt(I.duration,10)<8;N||Q||_||U?(B.length>0&&C.push(B),B=_?[I]:[]):B.push(I)}),B.length>0&&C.push(B)}),l=C}function b(){l.forEach(C=>{let M;if(r.maintain_stem_directions){const B=S(C);M=B?B.getStemDirection():Stem.UP}else r.stem_direction?M=r.stem_direction:M=calculateStemDirection(C);A(C,M)})}function S(C){for(let M=0;M{B.setStemDirection(M)})}function E(){const C=[];return l.forEach(M=>{let B=null;M.forEach(I=>{I.tuplet&&B!==I.tuplet&&(B=I.tuplet,C.push(B))})}),C}g(),y(),b();const x=m(),P=E(),T=[];return x.forEach(C=>{const M=new fi(C);r.show_stemlets&&(M.render_options.show_stemlets=!0),r.secondary_breaks&&(M.render_options.secondary_break_ticks=Flow.durationToTicks(r.secondary_breaks)),r.flat_beams===!0&&(M.render_options.flat_beams=!0,M.render_options.flat_beam_offset=r.flat_beam_offset),T.push(M)}),P.forEach(C=>{const M=C.notes[0].stem_direction===Stem.DOWN?Tuplet$1.LOCATION_BOTTOM:Tuplet$1.LOCATION_TOP;C.setTupletLocation(M);let B=!1;for(let I=0;I=Flow.durationToTicks("4"))throw new Vex.RuntimeError("BadArguments","Beams can only be applied to notes shorter than a quarter note.");let s,o;for(this.stem_direction=Stem.UP,s=0;sc+u.stem_direction,0)>-1?Stem.UP:Stem.DOWN),s=0;ss.getGlyph().beam_count).reduce((s,o)=>o>s?o:s)}breakSecondaryAt(e){return this.break_on_indices=e,this}getSlopeY(e,r,s,o){return s+(e-r)*o}calculateSlope(){const{notes:e,stem_direction:r,render_options:{max_slope:s,min_slope:o,slope_iterations:a,slope_cost:l}}=this,c=e[0],u=getStemSlope(c,e[e.length-1]),d=(s-o)/a;let g=Number.MAX_VALUE,m=0,y=0;for(let b=o;b<=s;b+=d){let S=0,A=0;for(let T=1;TE)&&(d=E,c=Math.min(...A.getYs()),u=A.getBeamCount())}let g=l/e.length;const m=s*1.5,y=o+u*m,b=c+y*-r;r===Stem.DOWN&&gb&&(g=c-y),a+this.render_options.flat_beam_offset_per_beam>0?r===Stem.DOWN&&g>a&&!this.render_options.flat_beams?this.render_options.flat_beam_offset=g:r===Stem.UP&&g0){let o=this.render_options.flat_beam_offset;this.render_options.flat_beam_offset_per_beam&&(o+=this.render_options.flat_beam_offset_per_beam*this.getBeamCount());let a=this.notes[0].note_heads[0].y;const l=this.stem_direction>0?Math.min:Math.max;for(const c of this.notes)for(const u of c.note_heads)a=l(a,u.y);s=a+o*-this.stem_direction}return s}applyStemExtensions(){const{notes:e,slope:r,y_shift:s,stem_direction:o,beam_count:a,render_options:{show_stemlets:l,stemlet_extension:c,beam_width:u}}=this,d=e[0],g=this.getBeamYToDraw(),m=d.getStemX();for(let y=0;y=8&&(b=this.break_on_indices.indexOf(g)!==-1,this.render_options.secondary_break_ticks&&u>=this.render_options.secondary_break_ticks&&(u=0,b=!0));const S=m.getIntrinsicTicks(){e.getStem()&&(this.context.openGroup("stem",e.getAttribute("id")+"-stem"),e.getStem().setContext(this.context).draw(),this.context.closeGroup())},this)}drawBeamLines(){this.checkContext();const e=["4","8","16","32","64"],r=this.notes[0];let s=this.getBeamYToDraw();const o=r.getStemX(),a=this.render_options.beam_width*this.stem_direction,l={};for(const c of this.notes)l[c.getAttribute("id")]=0;for(let c=0;c{e.getStave()||e.setStave(this.stave)}),this.preFormatted=!0,this)}draw(e=this.context,r=this.stave){this.setRendered();let s=null;for(let o=0;o0&&s){const l=a.getBoundingBox();l&&s.mergeWith(l)}a.setContext(e),a.drawWithStyle()}this.boundingBox=s}};function drawBoldDoubleLine(i,e,r,s,o){if(e!==StaveConnector.type.BOLD_DOUBLE_LEFT&&e!==StaveConnector.type.BOLD_DOUBLE_RIGHT)throw new Vex.RERR("InvalidConnector","A REPEAT_BEGIN or REPEAT_END type must be provided.");let a=3,l=3.5;const c=2;e===StaveConnector.type.BOLD_DOUBLE_RIGHT&&(a=-5,l=3),i.fillRect(r+a,s,1,o-s),i.fillRect(r-c,s,l,o-s)}class StaveConnector extends Element$1{static get type(){return{SINGLE_RIGHT:0,SINGLE_LEFT:1,SINGLE:1,DOUBLE:2,BRACE:3,BRACKET:4,BOLD_DOUBLE_LEFT:5,BOLD_DOUBLE_RIGHT:6,THIN_DOUBLE:7,NONE:8}}static get typeString(){return{singleRight:StaveConnector.type.SINGLE_RIGHT,singleLeft:StaveConnector.type.SINGLE_LEFT,single:StaveConnector.type.SINGLE,double:StaveConnector.type.DOUBLE,brace:StaveConnector.type.BRACE,bracket:StaveConnector.type.BRACKET,boldDoubleLeft:StaveConnector.type.BOLD_DOUBLE_LEFT,boldDoubleRight:StaveConnector.type.BOLD_DOUBLE_RIGHT,thinDouble:StaveConnector.type.THIN_DOUBLE,none:StaveConnector.type.NONE}}constructor(e,r){super(),this.setAttribute("type","StaveConnector"),this.thickness=Flow.STAVE_LINE_THICKNESS,this.width=3,this.top_stave=e,this.bottom_stave=r,this.type=StaveConnector.type.DOUBLE,this.font={family:"times",size:16,weight:"normal"},this.x_shift=0,this.texts=[]}setType(e){return e=typeof e=="string"?StaveConnector.typeString[e]:e,e>=StaveConnector.type.SINGLE_RIGHT&&e<=StaveConnector.type.NONE&&(this.type=e),this}setText(e,r){return this.texts.push({content:e,options:Vex.Merge({shift_x:0,shift_y:0},r)}),this}setFont(e){Vex.Merge(this.font,e)}setXShift(e){if(typeof e!="number")throw Vex.RERR("InvalidType","x_shift must be a Number");return this.x_shift=e,this}draw(){const e=this.checkContext();this.setRendered();let r=this.top_stave.getYForLine(0),s=this.bottom_stave.getYForLine(this.bottom_stave.getNumLines()-1)+this.thickness,o=this.width,a=this.top_stave.getX();(this.type===StaveConnector.type.SINGLE_RIGHT||this.type===StaveConnector.type.BOLD_DOUBLE_RIGHT||this.type===StaveConnector.type.THIN_DOUBLE)&&(a=this.top_stave.getX()+this.top_stave.width);let c=s-r;switch(this.type){case StaveConnector.type.SINGLE:o=1;break;case StaveConnector.type.SINGLE_LEFT:o=1;break;case StaveConnector.type.SINGLE_RIGHT:o=1;break;case StaveConnector.type.DOUBLE:a-=this.width+2;break;case StaveConnector.type.BRACE:{o=12;const u=this.top_stave.getX()-2+this.x_shift,d=r,g=u,m=s,y=u-o,b=d+c/2,S=y-.9*o,A=d+.2*c,E=u+1.1*o,x=b-.135*c,P=E,T=b+.135*c,C=S,M=m-.2*c,B=y-o,I=M,k=u+.4*o,D=b+.135*c,O=k,z=b-.135*c,N=B,Q=A;e.beginPath(),e.moveTo(u,d),e.bezierCurveTo(S,A,E,x,y,b),e.bezierCurveTo(P,T,C,M,g,m),e.bezierCurveTo(B,I,k,D,y,b),e.bezierCurveTo(O,z,N,Q,u,d),e.fill(),e.stroke();break}case StaveConnector.type.BRACKET:r-=4,s+=4,c=s-r,Glyph.renderGlyph(e,a-5,r-3,40,"v1b",!0),Glyph.renderGlyph(e,a-5,s+3,40,"v10",!0),a-=this.width+2;break;case StaveConnector.type.BOLD_DOUBLE_LEFT:drawBoldDoubleLine(e,this.type,a+this.x_shift,r,s);break;case StaveConnector.type.BOLD_DOUBLE_RIGHT:drawBoldDoubleLine(e,this.type,a,r,s);break;case StaveConnector.type.THIN_DOUBLE:o=1;break;case StaveConnector.type.NONE:break;default:throw new Vex.RERR("InvalidType",`The provided StaveConnector.type (${this.type}) is invalid`)}this.type!==StaveConnector.type.BRACE&&this.type!==StaveConnector.type.BOLD_DOUBLE_LEFT&&this.type!==StaveConnector.type.BOLD_DOUBLE_RIGHT&&this.type!==StaveConnector.type.NONE&&e.fillRect(a,r,o,c),this.type===StaveConnector.type.THIN_DOUBLE&&e.fillRect(a-3,r,o,c),e.save(),e.lineWidth=2,e.setFont(this.font.family,this.font.size,this.font.weight);for(let u=0;u0){const E=A.space.deviation,x=E>=0?"+":"";e.setFillStyle("red"),e.fillText(x+Math.round(E),c+r.getXShift(),s-10)}e.restore()}constructor(e){if(super(),this.setAttribute("type","Note"),!e)throw new Vex.RuntimeError("BadArguments","Note must have valid initialization data to identify duration and type.");const r=Flow.parseNoteStruct(e);if(!r)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization object: ${JSON.stringify(e)}`);if(this.duration=r.duration,this.dots=r.dots,this.noteType=r.type,this.customTypes=r.customTypes,this.DYMusicScoreType=e.DYMusicScoreType,e.duration_override?this.setDuration(e.duration_override):this.setIntrinsicTicks(r.ticks),this.modifiers=[],this.glyph=Flow.getGlyphProps(this.duration,this.noteType),this.customGlyphs=this.customTypes.map(s=>Flow.getGlyphProps(this.duration,s)),this.positions&&(typeof this.positions!="object"||!this.positions.length))throw new Vex.RuntimeError("BadArguments","Note keys must be array type.");this.playNote=null,this.tickContext=null,this.modifierContext=null,this.ignore_ticks=!1,this.width=0,this.extraLeftPx=0,this.extraRightPx=0,this.x_shift=0,this.left_modPx=0,this.right_modPx=0,this.voice=null,this.preFormatted=!1,this.ys=[],e.align_center&&this.setCenterAlignment(e.align_center),this.stave=null,this.render_options={annotation_spacing:5,stave_padding:Note.STAVEPADDING}}getPlayNote(){return this.playNote}setPlayNote(e){return this.playNote=e,this}isRest(){return!1}addStroke(e,r){return r.setNote(this),r.setIndex(e),this.modifiers.push(r),this.setPreFormatted(!1),this}getStave(){return this.stave}setStave(e){return this.stave=e,this.setYs([e.getYForLine(0)]),this.context=this.stave.context,this}getCategory(){return Note.CATEGORY}setContext(e){return this.context=e,this}getExtraLeftPx(){return this.extraLeftPx}getExtraRightPx(){return this.extraRightPx}setExtraLeftPx(e){return this.extraLeftPx=e,this}setExtraRightPx(e){return this.extraRightPx=e,this}shouldIgnoreTicks(){return this.ignore_ticks}getLineNumber(){return 0}getLineForRest(){return 0}getGlyph(){return this.glyph}getGlyphWidth(){return this.glyph.getWidth?this.glyph.getWidth(this.render_options.glyph_font_scale):15}setYs(e){return this.ys=e,this}getYs(){if(this.ys.length===0)throw new Vex.RERR("NoYValues","No Y-values calculated for this note.");return this.ys}getYForTopText(e){if(!this.stave)throw new Vex.RERR("NoStave","No stave attached to this note.");return this.stave.getYForTopText(e)}getBoundingBox(){return null}getVoice(){if(!this.voice)throw new Vex.RERR("NoVoice","Note has no voice.");return this.voice}setVoice(e){return this.voice=e,this.preFormatted=!1,this}getTickContext(){return this.tickContext}setTickContext(e){return this.tickContext=e,this.preFormatted=!1,this}getDuration(){return this.duration}isDotted(){return this.dots>0}hasStem(){return!1}getDots(){return this.dots}getNoteType(){return this.noteType}setBeam(){return this}setModifierContext(e){return this.modifierContext=e,this}addModifier(e,r=0){return e.setNote(this),e.setIndex(r),this.modifiers.push(e),this.setPreFormatted(!1),this}getModifierStartXY(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetModifierStartXY on an unformatted note");return{x:this.getAbsoluteX(),y:this.ys[0]}}getMetrics(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call getMetrics on an unformatted note.");let e=0,r=0;this.modifierContext!=null&&(e=this.modifierContext.state.left_shift,r=this.modifierContext.state.right_shift);const s=this.getWidth();return{width:s,noteWidth:s-e-r-this.extraLeftPx-this.extraRightPx,left_shift:this.x_shift,modLeftPx:e,modRightPx:r,extraLeftPx:this.extraLeftPx,extraRightPx:this.extraRightPx}}setWidth(e){this.width=e}getWidth(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetWidth on an unformatted note.");return this.width+(this.modifierContext?this.modifierContext.getWidth():0)}setXShift(e){return this.x_shift=e,this}getXShift(){return this.x_shift}getX(){if(!this.tickContext)throw new Vex.RERR("NoTickContext","Note needs a TickContext assigned for an X-Value");return this.tickContext.getX()+this.x_shift}getAbsoluteX(){if(!this.tickContext)throw new Vex.RERR("NoTickContext","Note needs a TickContext assigned for an X-Value");let e=this.tickContext.getX();return this.stave&&(e+=this.stave.getNoteStartX()+this.render_options.stave_padding),this.isCenterAligned()&&(this.DYMusicScoreType==="jianpu"||(e+=this.getCenterXShift())),e}setPreFormatted(e){if(this.preFormatted=e,this.preFormatted){const r=this.tickContext.getExtraPx();this.left_modPx=Math.max(this.left_modPx,r.left),this.right_modPx=Math.max(this.right_modPx,r.right)}}}function L$i(...i){NoteHead.DEBUG&&Vex.L("Vex.Flow.NoteHead",i)}function drawSlashNoteHead(i,e,r,s,o,a){const l=Flow.SLASH_NOTEHEAD_WIDTH;i.save(),i.setLineWidth(Flow.STEM_WIDTH);let c=!1;if(Flow.durationToNumber(e)>2&&(c=!0),c||(r-=Flow.STEM_WIDTH/2*o),i.beginPath(),i.moveTo(r,s+a),i.lineTo(r,s+1),i.lineTo(r+l,s-a),i.lineTo(r+l,s),i.lineTo(r,s+a),i.closePath(),c?i.fill():i.stroke(),Flow.durationToFraction(e).equals(.5)){const u=[-3,-1,l+1,l+3];for(let d=0;d5||this.line<0)&&(this.isLedgerLinedRest=!0,this.duration==="h"?(e.custom_glyph_code="rhl",this.x_shift_ledger_rest-=4):this.duration==="w"&&(e.custom_glyph_code="rwl",this.x_shift_ledger_rest-=4,this.y_shift_ledger_rest=-5)),e.custom_glyph_code&&(this.custom_glyph=!0,this.glyph_code=e.custom_glyph_code,this.stem_up_x_offset=e.stem_up_x_offset||0,this.stem_down_x_offset=e.stem_down_x_offset||0,this.stem_up_y_shift=e.stem_up_y_shift||0,this.stem_down_y_shift=e.stem_down_y_shift||0),this.style=e.style,this.slashed=e.slashed,Vex.Merge(this.render_options,{glyph_font_scale:e.glyph_font_scale||Flow.DEFAULT_NOTATION_FONT_SCALE,stroke_px:3}),this.setWidth(this.glyph.getWidth(this.render_options.glyph_font_scale))}getCategory(){return NoteHead.CATEGORY}getWidth(){return this.width}isDisplaced(){return this.displaced===!0}getGlyph(){return this.glyph}setX(e){return this.x=e,this}getY(){return this.y}setY(e){return this.y=e,this}getLine(){return this.line}setLine(e){return this.line=e,this}getAbsoluteX(){const e=this.preFormatted?super.getAbsoluteX():this.x,r=Stem.WIDTH/2;return e+(this.displaced?(this.width-r)*this.stem_direction:0)}getBoundingBox(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call getBoundingBox on an unformatted note.");const e=this.stave.getSpacingBetweenLines(),r=e/2,s=this.y-r;return new Flow.BoundingBox(this.getAbsoluteX(),s,this.width,e)}setStave(e){const r=this.getLine();return this.stave=e,this.setY(e.getYForNote(r)),this.context=this.stave.context,this}preFormat(){if(this.preFormatted)return this;const e=this.getWidth()+this.extraLeftPx+this.extraRightPx;return this.setWidth(e),this.setPreFormatted(!0),this}draw(){this.checkContext(),this.setRendered();const e=this.context;let r=this.getAbsoluteX(),s=this.y;this.custom_glyph&&(r+=this.x_shift_ledger_rest,this.stem_direction===Stem.UP?(r+=this.stem_up_x_offset,s+=this.stem_up_y_shift||0):this.stem_direction===Stem.DOWN&&(r+=this.stem_down_x_offset,s+=this.stem_down_y_shift||0),s+=this.y_shift_ledger_rest),L$i("Drawing note head '",this.note_type,this.duration,"' at",r,s);const o=this.stem_direction,a=this.render_options.glyph_font_scale;if(this.style&&this.applyStyle(e),this.note_type==="s"){const l=this.stave.getSpacingBetweenLines();drawSlashNoteHead(e,this.duration,r,s,o,l)}else Glyph.renderGlyph(e,r,s,a,this.glyph_code);this.style&&this.restoreStyle(e)}}class StemmableNote extends Note{constructor(e){super(e),this.setAttribute("type","StemmableNote"),this.stem=null,this.stemExtensionOverride=null,this.beam=null,this.renderFlag=!0}getStem(){return this.stem}setStem(e){return this.stem=e,this}buildStem(){const e=new Stem;return this.setStem(e),this}buildFlag(){const{glyph:e,beam:r}=this,s=r===null&&this.renderFlag;if(e&&e.flag&&s){const o=this.getStemDirection()===Stem.DOWN?e.code_flag_downstem:e.code_flag_upstem;this.flag=new Glyph(o,this.render_options.glyph_font_scale)}}getTopGlyph(){return this.getStemDirection()===Stem.DOWN?this.customGlyphs[this.customGlyphs.length-1]:this.customGlyphs[0]}getStemLength(){return Stem.HEIGHT+this.getStemExtension()}getBeamCount(){const e=this.getGlyph();return e?e.beam_count:0}getStemMinumumLength(){let r=Flow.durationToFraction(this.duration).value()<=1?0:20;switch(this.duration){case"8":this.beam==null&&(r=35);break;case"16":r=this.beam==null?35:25;break;case"32":r=this.beam==null?45:35;break;case"64":r=this.beam==null?50:40;break;case"128":r=this.beam==null?55:45;break}return r}getStemDirection(){return this.stem_direction}setStemDirection(e){if(e||(e=Stem.UP),e!==Stem.UP&&e!==Stem.DOWN)throw new Vex.RERR("BadArgument",`Invalid stem direction: ${e}`);if(this.stem_direction=e,this.stem){this.stem.setDirection(e),this.stem.setExtension(this.getStemExtension());const r=this.getTopGlyph()||this.getGlyph();this.stem.setOptions({stem_up_y_offset:r.stem_up_y_offset,stem_down_y_offset:r.stem_down_y_offset})}return this.reset(),this.flag&&this.renderFlag&&this.buildFlag(),this.beam=null,this.preFormatted&&this.preFormat(),this}getStemX(){const e=this.getAbsoluteX()+this.x_shift,r=this.getAbsoluteX()+this.x_shift+this.getGlyphWidth();return this.stem_direction===Stem.DOWN?e:r}getCenterGlyphX(){return this.getAbsoluteX()+this.x_shift+this.getGlyphWidth()/2}getStemExtension(){const e=this.getGlyph();return this.stemExtensionOverride!=null?this.stemExtensionOverride:e?this.getStemDirection()===1?e.stem_up_extension:e.stem_down_extension:0}setStemLength(e){return this.stemExtensionOverride=e-Stem.HEIGHT,this}getStemExtents(){return this.stem.getExtents()}setBeam(e){return this.beam=e,this}getYForTopText(e){const r=this.getStemExtents();return this.hasStem()?Math.min(this.stave.getYForTopText(e),r.topY-this.render_options.annotation_spacing*(e+1)):this.stave.getYForTopText(e)}getYForBottomText(e){const r=this.getStemExtents();return this.hasStem()?Math.max(this.stave.getYForTopText(e),r.baseY+this.render_options.annotation_spacing*e):this.stave.getYForBottomText(e)}hasFlag(){return this.renderFlag&&Flow.getGlyphProps(this.duration).flag&&!this.beam}postFormat(){return this.beam&&this.beam.postFormat(),this.postFormatted=!0,this}drawStem(e){this.checkContext(),this.setRendered(),this.setStem(new Stem(e)),this.stem.setContext(this.context).draw()}}class Modifier extends Element$1{static get CATEGORY(){return"none"}static get Position(){return{LEFT:1,RIGHT:2,ABOVE:3,BELOW:4}}static get PositionString(){return{above:Modifier.Position.ABOVE,below:Modifier.Position.BELOW,left:Modifier.Position.LEFT,right:Modifier.Position.RIGHT}}constructor(){super(),this.setAttribute("type","Modifier"),this.width=0,this.note=null,this.index=null,this.text_line=0,this.position=Modifier.Position.LEFT,this.modifier_context=null,this.x_shift=0,this.y_shift=0,this.spacingFromNextModifier=0}getCategory(){return Modifier.CATEGORY}getWidth(){return this.width}setWidth(e){return this.width=e,this}getNote(){return this.note}setNote(e){return this.note=e,this}getIndex(){return this.index}setIndex(e){return this.index=e,this}getModifierContext(){return this.modifier_context}setModifierContext(e){return this.modifier_context=e,this}getPosition(){return this.position}setPosition(e){return this.position=typeof e=="string"?Modifier.PositionString[e]:e,this}setTextLine(e){return this.text_line=e,this}setYShift(e){return this.y_shift=e,this}setSpacingFromNextModifier(e){this.spacingFromNextModifier=e}getSpacingFromNextModifier(){return this.spacingFromNextModifier}setXShift(e){this.x_shift=0,this.position===Modifier.Position.LEFT?this.x_shift-=e:this.x_shift+=e}getXShift(){return this.x_shift}draw(){throw this.checkContext(),new Vex.RERR("MethodNotImplemented","draw() not implemented for this modifier.")}alignSubNotesWithNote(e,r){const s=r.getTickContext(),o=s.getExtraPx(),a=s.getX()-o.left-o.extraLeft+this.getSpacingFromNextModifier();e.forEach(l=>{const c=l.getTickContext();l.setStave(r.stave),c.setXOffset(a)})}}class Dot extends Modifier{static get CATEGORY(){return"dots"}static format(e,r){const s=r.right_shift,o=1;if(!e||e.length===0)return!1;const a=[],l={};for(let b=0;bS.line-b.line);let c=s,u=0,d=null,g=null,m=null,y=0;for(let b=0;bu?c:u,d=x,g=A}return r.right_shift+=u,!0}constructor(){super(),this.setAttribute("type","Dot"),this.note=null,this.index=null,this.position=Modifier.Position.RIGHT,this.radius=2,this.setWidth(5),this.dot_shiftY=0}getCategory(){return Dot.CATEGORY}setNote(e){this.note=e,this.note.getCategory()==="gracenotes"&&(this.radius*=.5,this.setWidth(3))}setDotShiftY(e){return this.dot_shiftY=e,this}draw(){if(this.checkContext(),this.setRendered(),!this.note||this.index===null)throw new Vex.RERR("NoAttachedNote","Can't draw dot without a note and index.");const e=this.note.stave.options.spacing_between_lines_px,r=this.note.getModifierStartXY(this.position,this.index,{forceFlagRight:!0});this.note.getCategory()==="tabnotes"&&(r.y=this.note.getStemExtents().baseY+1);const s=r.x+this.x_shift+this.width-this.radius;let o=this.dot_shiftY*e;this.note&&this.note.DYMusicScoreType=="jianpu"&&(o=-5);const a=r.y+this.y_shift+o,l=this.context;l.beginPath(),l.arc(s,a,this.radius,0,Math.PI*2,!1),l.fill()}}function L$h(...i){StaveNote.DEBUG&&Vex.L("Vex.Flow.StaveNote",i)}const getStemAdjustment=i=>Stem.WIDTH/(2*-i.getStemDirection()),isInnerNoteIndex=(i,e)=>e===(i.getStemDirection()===Stem.UP?i.keyProps.length-1:0);function shiftRestVertical(i,e,r){if(i.note.shiftRestVerticalDisabled)return;const s=(e.isrest?0:1)*r;i.line+=s,i.maxLine+=s,i.minLine+=s,i.note.setKeyLine(0,i.note.getKeyLine(0)+s)}function centerRest(i,e,r){const s=i.line-Vex.MidLine(e.minLine,r.maxLine);i.note.setKeyLine(0,i.note.getKeyLine(0)-s),i.line-=s,i.maxLine-=s,i.minLine-=s}class StaveNote extends StemmableNote{static get CATEGORY(){return"stavenotes"}static get STEM_UP(){return Stem.UP}static get STEM_DOWN(){return Stem.DOWN}static get DEFAULT_LEDGER_LINE_OFFSET(){return 3}static renderVibrato(e,r,s,o){let{width:a,height:l,wave_width:c,wave_girth:u,wave_height:d,stem_direction:g}=o;const m=Math.floor(a/c);let y=l/(m/2)*g;y==0&&(g=1,y=.3),e.beginPath(),e.moveTo(r,s+u);for(let b=0;b2?s[1]:null;let u=a>2?s[2]:s[1];a===2&&l.stemDirection===-1&&u.stemDirection===1&&!l.isrest&&!u.isRest&&(l=s[1],u=s[0]);const d=Math.max(l.voice_shift,u.voice_shift);let g=0,m;if(a===2){const y=l.stemDirection===u.stemDirection?0:.5;if(l.stemDirection===u.stemDirection&&l.minLine<=u.maxLine&&(l.isrest||(m=Math.abs(l.line-(u.maxLine+.5)),m=Math.max(m,l.stemMin),l.minLine=l.line-m,l.note.setStemLength(m*10))),l.minLine<=u.maxLine+y)if(l.isrest)shiftRestVertical(l,u,1),l.note.hasLedgerLinedRest&&(l.note.shiftRestVerticalDisabled=!0);else if(u.isrest)shiftRestVertical(u,l,-1),u.note.hasLedgerLinedRest&&(u.note.shiftRestVerticalDisabled=!0);else{g=d;const b=Math.abs(l.line-u.line);let S=0,A=0;l.note.duration==="h"?S++:l.note.duration==="w"&&A++,u.note.duration==="h"?S++:u.note.duration==="w"&&A++;let E=S===1||A===1||l.note.dots!==u.note.dots;if(o&&(E=E||A===2),b===0&&E){if(u.note.setXShift(g),l.note.dots>0){let x=0;for(const P of l.note.modifiers)if(P instanceof Dot&&(x++,P.setYShift(-10*(u.maxLine-l.line+1)),x===l.note.dots))break}}else b<1&&b>0?u.note.setXShift(g):l.note.voice!==u.note.voice&&l.stemDirection===u.stemDirection&&(l.line>u.line?l.stemDirection===1?u.note.renderFlag=!1:l.note.renderFlag=!1:u.line>l.line?u.stemDirection===1?l.note.renderFlag=!1:u.note.renderFlag=!1:u.stemDirection===1&&(u.stemDirection=-1,u.note.setStemDirection(-1)))}return!0}if(c!==null&&c.minLiner.postFormat()),!0):!1}constructor(e){if(super(e),this.setAttribute("type","StaveNote"),this.keys=e.keys,this.clef=e.clef,this.octave_shift=e.octave_shift,this.beam=null,this.vibrato=null,this.slideNote=null,this.glyph=Flow.getGlyphProps(this.duration,this.noteType),!this.glyph)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization data (No glyph found): ${JSON.stringify(e)}`);this.displaced=!1,this.dot_shiftY=0,this.addDotsCount=0,this.keyProps=[],this.use_default_head_x=!1,this.paddingRight=0,this.note_heads=[],this.modifiers=[],Vex.Merge(this.render_options,{glyph_font_scale:e.glyph_font_scale||Flow.DEFAULT_NOTATION_FONT_SCALE,stroke_px:e.stroke_px||StaveNote.DEFAULT_LEDGER_LINE_OFFSET}),this.calculateKeyProps(),this.buildStem(),e.auto_stem?this.autoStem():this.setStemDirection(e.stem_direction),this.reset(),this.buildFlag()}reset(){super.reset();const e=this.note_heads.map(s=>s.getStyle()),r=[];this.note_heads.forEach(s=>r.push(s.note_type)),this.buildNoteHeads(),this.note_heads.forEach((s,o)=>{s.setStyle(e[o]),r[o]&&(s.note_type=r[o])}),this.stave&&this.note_heads.forEach(s=>s.setStave(this.stave)),this.calcExtraPx()}setBeam(e){return this.beam=e,this.calcExtraPx(),this}setVibrato(e){this.vibrato=e}setSlideNote(e){this.slideNote=e}getCategory(){return StaveNote.CATEGORY}buildStem(){this.setStem(new Stem({hide:!!this.isRest()})),this.stem.id=Vex.Prefix(`${this.getAttribute("id")}-stem`)}buildNoteHeads(){this.note_heads=[];const e=this.getStemDirection(),r=this.getKeys();let s=null,o=null,a=!1,l,c,u;e===Stem.UP?(l=0,c=r.length,u=1):e===Stem.DOWN&&(l=r.length-1,c=-1,u=-1);for(let d=l;d!==c;d+=u){const g=this.keyProps[d],m=g.line;s===null?s=m:(o=Math.abs(s-m),o===0||o===.5?a=!a:(a=!1,this.use_default_head_x=!0)),s=m;const y=new NoteHead({duration:this.duration,note_type:this.noteType,displaced:a,stem_direction:e,custom_glyph_code:g.code,glyph_font_scale:this.render_options.glyph_font_scale,x_shift:g.shift_right,stem_up_x_offset:g.stem_up_x_offset,stem_down_x_offset:g.stem_down_x_offset,stem_up_y_shift:g.stem_up_y_shift,stem_down_y_shift:g.stem_down_y_shift,line:g.line});y.isLedgerLinedRest&&(this.hasLedgerLinedRest=!0),this.note_heads[d]=y}}autoStem(){this.minLine=this.keyProps[0].line,this.maxLine=this.keyProps[this.keyProps.length-1].line;const e=3,s=(this.minLine+this.maxLine)/20&&(this.keyProps[r-1].displaced=!0)),e=l,this.keyProps.push(a)}e=-1/0,this.keyProps.forEach(r=>{r.liner.line-s.line)}getBoundingBox(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call getBoundingBox on an unformatted note.");const{width:e,modLeftPx:r,extraLeftPx:s}=this.getMetrics(),o=this.getAbsoluteX()-r-s-this.paddingRight;let a=0,l=0;const c=this.getStave().getSpacingBetweenLines()/2,u=c*2;if(this.isRest()){const d=this.ys[0],g=Flow.durationToFraction(this.duration);g.equals(1)||g.equals(2)?(a=d-c,l=d+c):(a=d-this.glyph.line_above*u,l=d+this.glyph.line_below*u)}else if(this.glyph.stem){const d=this.getStemExtents();d.baseY+=c*this.stem_direction,a=Math.min(d.topY,d.baseY),l=Math.max(d.topY,d.baseY)}else{a=null,l=null;for(let d=0;dr&&(r=o):o1}hasStem(){return this.glyph.stem}hasFlag(){return super.hasFlag()&&!this.isRest()&&this.renderFlag}getStemX(){return this.noteType==="r"?this.getCenterGlyphX():super.getStemX()+getStemAdjustment(this)}getYForTopText(e){const r=this.getStemExtents();return Math.min(this.stave.getYForTopText(e),r.topY-this.render_options.annotation_spacing*(e+1))}getYForBottomText(e){const r=this.getStemExtents();return Math.max(this.stave.getYForTopText(e),r.baseY+this.render_options.annotation_spacing*e)}setStave(e){super.setStave(e);const r=this.note_heads.map(s=>(s.setStave(e),s.getY()));if(this.setYs(r),this.stem){const{y_top:s,y_bottom:o}=this.getNoteHeadBounds();this.stem.setYBounds(s,o)}return this}getKeys(){return this.keys}getKeyProps(){return this.keyProps}isDisplaced(){return this.displaced}setNoteDisplaced(e){return this.displaced=e,this}getTieRightX(){let e=this.getAbsoluteX();return e+=this.getGlyphWidth()+this.x_shift+this.extraRightPx,this.modifierContext&&(e+=this.modifierContext.getExtraRightPx()),e}getTieLeftX(){let e=this.getAbsoluteX();return e+=this.x_shift-this.extraLeftPx,e}getLineForRest(){let e=this.keyProps[0].line;if(this.keyProps.length>1){const r=this.keyProps[this.keyProps.length-1].line,s=Math.max(e,r),o=Math.min(e,r);e=Vex.MidLine(s,o)}return e}getModifierStartXY(e,r,s){if(s=s||{},!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetModifierStartXY on an unformatted note");if(this.ys.length===0)throw new Vex.RERR("NoYValues","No Y-Values calculated for this note.");const{ABOVE:o,BELOW:a,LEFT:l,RIGHT:c}=Modifier.Position;let u=0;return e===l?u=-1*2:e===c?(u=this.getGlyphWidth()+this.x_shift+2,this.stem_direction===Stem.UP&&this.hasFlag()&&(s.forceFlagRight||isInnerNoteIndex(this,r))&&(u+=this.flag.getMetrics().width)):(e===a||e===o)&&(u=this.getGlyphWidth()/2),{x:this.getAbsoluteX()+u,y:this.ys[r]}}setStyle(e){super.setStyle(e),this.note_heads.forEach(r=>r.setStyle(e)),this.stem&&this.stem.setStyle(e)}setStemStyle(e){this.stem&&this.getStem().setStyle(e)}getStemStyle(){return this.stem.getStyle()}setLedgerLineStyle(e){this.ledgerLineStyle=e}getLedgerLineStyle(){return this.ledgerLineStyle}setFlagStyle(e){this.flagStyle=e}getFlagStyle(){return this.flagStyle}setKeyStyle(e,r){return this.note_heads[e].setStyle(r),this}setKeyLine(e,r){return this.keyProps[e].line=r,this.reset(),this}getKeyLine(e){return this.keyProps[e].line}addToModifierContext(e){this.setModifierContext(e);for(let r=0;r{const y=m.getLine(),b=m.getY();(e===null||br)&&(r=b),o===null&&m.isDisplaced()&&(o=m.getAbsoluteX()),s===null&&!m.isDisplaced()&&(s=m.getAbsoluteX()),a=y>a?y:a,l=y{let M;C&&T?M=A-s:T?M=S-s:M=b-s;const B=T&&C?l:a;o.beginPath(),o.moveTo(M,P),o.lineTo(M+B,P),o.stroke()},x={...e.getStyle()||{},...this.getLedgerLineStyle()||{}};this.applyStyle(o,x);for(let P=6;P<=c;++P){const T=S!==null&&P<=g,C=b!==null&&P<=d;E(e.getYForNote(P),T,C)}for(let P=0;P>=u;--P){const T=S!==null&&P>=y,C=b!==null&&P>=m;E(e.getYForNote(P),T,C)}this.restoreStyle(o,x)}drawVibrato(){if(this.vibrato){const e=this.context,r=this.vibrato.getNoteHeadEndX()+2;let{y_bottom:s}=this.vibrato.getNoteHeadBounds(),{y_top:o}=this.getNoteHeadBounds();const a=s1&&l.getAttribute("type")==="Accidental"&&this.modifiers.findIndex(g=>g.getAttribute("type")==="GraceNoteGroup")>=0)&&!(l.note&&l.note.DYMusicScoreType=="jianpu"&&l.getAttribute("type")==="Dot"&&!l.note.formatterMetrics.duration)){if(l.note&&l.note.DYMusicScoreType=="jianpu"&&l.getAttribute("type")==="Dot")try{l.note.getModifierStartXY(l.position,0,{forceFlagRight:!0}).x-l.note.x<9&&(l.x_shift+=7)}catch(d){console.log("🚀 ~ error:",d)}l.note&&l.note.DYMusicScoreType=="jianpu"&&(((s=l==null?void 0:l.articulation)==null?void 0:s.code)==="v28"||((o=l==null?void 0:l.articulation)==null?void 0:o.code)==="v42")&&(r="transform"),c.applyStyle(e,u),l.setContext(e),l.drawWithStyle(),c.restoreStyle(e,u)}}e.closeGroup(r),this.drawVibrato(),this.drawSlide()}drawFlag(){const{stem:e,beam:r,context:s}=this;if(!s)throw new Vex.RERR("NoCanvasContext","Can't draw without a canvas context.");const o=r===null&&this.renderFlag;if(this.getGlyph().flag&&o){const{y_top:l,y_bottom:c}=this.getNoteHeadBounds(),u=e.getHeight(),d=this.getStemX();let g=this.getStemDirection()===Stem.DOWN?l-u+2:c-u-2;if(e&&!r){const m=this.keyProps[0].line;(m>6.5||m<-.5)&&(g=g+(m>6.5?(m-6.5)*10:(m+.5)*10))}s.openGroup("flag",null,{pointerBBox:!0}),this.applyStyle(s,this.getFlagStyle()||!1),this.flag.render(s,d,g),this.restoreStyle(s,this.getFlagStyle()||!1),s.closeGroup()}}drawNoteHeads(){this.note_heads.forEach(e=>{this.context.openGroup("notehead",null,{pointerBBox:!0});try{if(this.isRest()&&this.duration==="w"){const r=this.stave.options.line_config.filter(o=>o.visible).length;this.keyProps[0].line===4&&r<5&&e.setY(e.getY()+10),r===1&&e.setLine(3)}}catch(r){}e.setContext(this.context).draw(),this.context.closeGroup()})}drawStem(e){if(!this.context)throw new Vex.RERR("NoCanvasContext","Can't draw without a canvas context.");e&&this.setStem(new Stem(e)),this.stem.id=Vex.Prefix(`${this.getAttribute("id")}-stem`),this.stem&&(this.context.openGroup("stem",null,{pointerBBox:!0}),this.stem.setContext(this.context).draw(),this.context.closeGroup())}draw(){if(!this.context)throw new Vex.RERR("NoCanvasContext","Can't draw without a canvas context.");if(!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");if(this.ys.length===0)throw new Vex.RERR("NoYValues","Can't draw note without Y values.");const e=this.stave.getLines();if(e===2||e===3||e===4)for(let o=0;oo.setX(r)),this.stem){let o=this.getStemX();const a=this.keyProps[0].line;(a>6.5||a<-.5)&&(this.beam||(this.stem.renderHeightAdjustment=a>6.5?(a-6.5)*10:Math.abs(a+.5)*10)),this.stem.setNoteHeadXBounds(o,o)}L$h("Rendering ",this.isChord()?"chord :":"note :",this.keys),this.drawLedgerLines(),this.applyStyle(),this.setAttribute("el",this.context.openGroup("stavenote",this.getAttribute("id"))),this.context.openGroup("note",null,{pointerBBox:!0}),s&&this.drawStem(),this.drawNoteHeads(),this.drawFlag(),this.context.closeGroup(),this.drawModifiers(),this.context.closeGroup(),this.restoreStyle(),this.setRendered()}}class FretHandFinger extends Modifier{static get CATEGORY(){return"frethandfinger"}static format(e,r){const{left_shift:s,right_shift:o}=r,a=1;if(!e||e.length===0)return!1;const l=[];let c=null,u=0,d=0;for(let E=0;Ex.line-E.line);let g=0,m=0,y=0,b=0,S=null,A=null;for(let E=0;Ey?x:y):T===Modifier.Position.RIGHT&&(C.setXShift(m),x=d+k,b=x>b?x:b),S=M,A=P}return r.left_shift+=y,r.right_shift+=b,!0}constructor(e){super(),this.setAttribute("type","FretHandFinger"),this.note=null,this.index=null,this.finger=e,this.width=7,this.position=Modifier.Position.LEFT,this.x_shift=0,this.y_shift=0,this.x_offset=0,this.y_offset=0,this.font={family:"sans-serif",size:9,weight:"bold"}}getCategory(){return FretHandFinger.CATEGORY}setFretHandFinger(e){return this.finger=e,this}setOffsetX(e){return this.x_offset=e,this}setOffsetY(e){return this.y_offset=e,this}draw(){if(this.checkContext(),!this.note||this.index==null)throw new Vex.RERR("NoAttachedNote","Can't draw string number without a note and index.");this.setRendered();const e=this.context,r=this.note.getModifierStartXY(this.position,this.index);let s=r.x+this.x_shift+this.x_offset,o=r.y+this.y_shift+this.y_offset+5;switch(this.position){case Modifier.Position.ABOVE:s-=4,o-=12;break;case Modifier.Position.BELOW:s-=2,o+=10;break;case Modifier.Position.LEFT:s-=this.width;break;case Modifier.Position.RIGHT:s+=1;break;default:throw new Vex.RERR("InvalidPostion",`The position ${this.position} does not exist`)}e.save(),e.setFont(this.font.family,this.font.size,this.font.weight),e.fillText(""+this.finger,s,o),e.restore()}}class Music{static get NUM_TONES(){return 12}static get roots(){return["c","d","e","f","g","a","b"]}static get root_values(){return[0,2,4,5,7,9,11]}static get root_indices(){return{c:0,d:1,e:2,f:3,g:4,a:5,b:6}}static get canonical_notes(){return["c","c#","d","d#","e","f","f#","g","g#","a","a#","b"]}static get diatonic_intervals(){return["unison","m2","M2","m3","M3","p4","dim5","p5","m6","M6","b7","M7","octave"]}static get diatonic_accidentals(){return{unison:{note:0,accidental:0},m2:{note:1,accidental:-1},M2:{note:1,accidental:0},m3:{note:2,accidental:-1},M3:{note:2,accidental:0},p4:{note:3,accidental:0},dim5:{note:4,accidental:-1},p5:{note:4,accidental:0},m6:{note:5,accidental:-1},M6:{note:5,accidental:0},b7:{note:6,accidental:-1},M7:{note:6,accidental:0},octave:{note:7,accidental:0}}}static get intervals(){return{u:0,unison:0,m2:1,b2:1,min2:1,S:1,H:1,2:2,M2:2,maj2:2,T:2,W:2,m3:3,b3:3,min3:3,M3:4,3:4,maj3:4,4:5,p4:5,"#4":6,b5:6,aug4:6,dim5:6,5:7,p5:7,"#5":8,b6:8,aug5:8,6:9,M6:9,maj6:9,b7:10,m7:10,min7:10,dom7:10,M7:11,maj7:11,8:12,octave:12}}static get scales(){return{major:[2,2,1,2,2,2,1],dorian:[2,1,2,2,2,1,2],mixolydian:[2,2,1,2,2,1,2],minor:[2,1,2,2,1,2,2]}}static get scaleTypes(){return{M:Music.scales.major,m:Music.scales.minor}}static get accidentals(){return["bb","b","n","#","##"]}static get noteValues(){return{c:{root_index:0,int_val:0},cn:{root_index:0,int_val:0},"c#":{root_index:0,int_val:1},"c##":{root_index:0,int_val:2},cb:{root_index:0,int_val:11},cbb:{root_index:0,int_val:10},d:{root_index:1,int_val:2},dn:{root_index:1,int_val:2},"d#":{root_index:1,int_val:3},"d##":{root_index:1,int_val:4},db:{root_index:1,int_val:1},dbb:{root_index:1,int_val:0},e:{root_index:2,int_val:4},en:{root_index:2,int_val:4},"e#":{root_index:2,int_val:5},"e##":{root_index:2,int_val:6},eb:{root_index:2,int_val:3},ebb:{root_index:2,int_val:2},f:{root_index:3,int_val:5},fn:{root_index:3,int_val:5},"f#":{root_index:3,int_val:6},"f##":{root_index:3,int_val:7},fb:{root_index:3,int_val:4},fbb:{root_index:3,int_val:3},g:{root_index:4,int_val:7},gn:{root_index:4,int_val:7},"g#":{root_index:4,int_val:8},"g##":{root_index:4,int_val:9},gb:{root_index:4,int_val:6},gbb:{root_index:4,int_val:5},a:{root_index:5,int_val:9},an:{root_index:5,int_val:9},"a#":{root_index:5,int_val:10},"a##":{root_index:5,int_val:11},ab:{root_index:5,int_val:8},abb:{root_index:5,int_val:7},b:{root_index:6,int_val:11},bn:{root_index:6,int_val:11},"b#":{root_index:6,int_val:0},"b##":{root_index:6,int_val:1},bb:{root_index:6,int_val:10},bbb:{root_index:6,int_val:9}}}isValidNoteValue(e){return!(e==null||e<0||e>=Music.NUM_TONES)}isValidIntervalValue(e){return this.isValidNoteValue(e)}getNoteParts(e){if(!e||e.length<1)throw new Vex.RERR("BadArguments","Invalid note name: "+e);if(e.length>3)throw new Vex.RERR("BadArguments","Invalid note name: "+e);const r=e.toLowerCase(),o=/^([cdefgab])(b|bb|n|#|##)?$/.exec(r);if(o!=null){const a=o[1],l=o[2];return{root:a,accidental:l}}else throw new Vex.RERR("BadArguments","Invalid note name: "+e)}getKeyParts(e){if(!e||e.length<1)throw new Vex.RERR("BadArguments","Invalid key: "+e);const r=e.toLowerCase(),o=/^([cdefgab])(b|#)?(mel|harm|m|M)?$/.exec(r);if(o!=null){const a=o[1],l=o[2];let c=o[3];return c||(c="M"),{root:a,accidental:l,type:c}}else throw new Vex.RERR("BadArguments",`Invalid key: ${e}`)}getNoteValue(e){const r=Music.noteValues[e];if(r==null)throw new Vex.RERR("BadArguments",`Invalid note name: ${e}`);return r.int_val}getIntervalValue(e){const r=Music.intervals[e];if(r==null)throw new Vex.RERR("BadArguments",`Invalid interval name: ${e}`);return r}getCanonicalNoteName(e){if(!this.isValidNoteValue(e))throw new Vex.RERR("BadArguments",`Invalid note value: ${e}`);return Music.canonical_notes[e]}getCanonicalIntervalName(e){if(!this.isValidIntervalValue(e))throw new Vex.RERR("BadArguments",`Invalid interval value: ${e}`);return Music.diatonic_intervals[e]}getRelativeNoteValue(e,r,s){if(s==null&&(s=1),s!==1&&s!==-1)throw new Vex.RERR("BadArguments",`Invalid direction: ${s}`);let o=(e+s*r)%Music.NUM_TONES;return o<0&&(o+=Music.NUM_TONES),o}getRelativeNoteName(e,r){const s=this.getNoteParts(e),o=this.getNoteValue(s.root);let a=r-o;if(Math.abs(a)>Music.NUM_TONES-3){let c=1;a>0&&(c=-1);const u=(r+1+(o+1))%Music.NUM_TONES*c;if(Math.abs(u)>2)throw new Vex.RERR("BadArguments",`Notes not related: ${e}, ${r})`);a=u}if(Math.abs(a)>2)throw new Vex.RERR("BadArguments",`Notes not related: ${e}, ${r})`);let l=s.root;if(a>0)for(let c=1;c<=a;++c)l+="#";else if(a<0)for(let c=-1;c>=a;--c)l+="b";return l}getScaleTones(e,r){const s=[e];let o=e;for(let a=0;ai.getMetrics().width;class Accidental extends Modifier{static get CATEGORY(){return"accidentals"}static format(e,r){const o=r.left_shift+1,a=3;if(!e||e.length===0)return;const l=[];let c=null,u=0,d;for(let P=0;PT.line-P.line);const g=[];let m=0,y=null;for(let P=0;Pm?T.shift:m,y=T.line}let b=0;for(let P=0;Pg[C+_],I=_=>_.map(B),k=(_,U)=>{const[G,H]=I([_,U]).map(R=>R.line);return G-H},D=(..._)=>_.map(I).every(U=>!this.checkCollision(...U)),O=M-C+1;let z=this.checkCollision(g[C],g[M])?"a":"b";switch(O){case 3:z==="a"&&k(1,2)===.5&&k(0,1)!==.5&&(z="second_on_bottom");break;case 4:D([0,2],[1,3])&&(z="spaced_out_tetrachord");break;case 5:z==="b"&&D([1,3])&&(z="spaced_out_pentachord",D([0,2],[2,4])&&(z="very_spaced_out_pentachord"));break;case 6:D([0,3],[1,4],[2,5])&&(z="spaced_out_hexachord"),D([0,2],[2,4],[1,3],[3,5])&&(z="very_spaced_out_hexachord");break}let N,Q;if(O>=7){let _=2,U=!0;for(;U===!0;){U=!1;for(let G=0;G+_Q?b:Q}else for(N=P;N<=M;N++)Q=Flow.accidentalColumnsTable[O][z][N-P],g[N].column=Q,b=b>Q?b:Q;P=M}const S=[],A=[];for(let P=0;P<=b;P++)S[P]=0,A[P]=0;S[0]=m+o,A[0]=m+o,g.forEach(P=>{P.width>S[P.column]&&(S[P.column]=P.width)});for(let P=1;P{let T=0;const C=x+P.numAcc;for(x;x0?(o=r.flatLine||r.dblSharpLine?2.5:3,e.dblSharpLine&&(s-=.5)):(o=e.flatLine||e.dblSharpLine?2.5:3,r.dblSharpLine&&(s-=.5));const a=Math.abs(s){const u=new Fraction(0,1);c.getTickables().forEach(g=>{if(g.shouldIgnoreTicks())return;const m=o[u.value()];m?m.push(g):(s.push(u.value()),o[u.value()]=[g]),u.add(g.getTicks())})});const a=new Music;r||(r="C");const l=a.createScaleMap(r);s.forEach(c=>{const u=o[c],d=[],g=m=>{m.isRest()||m.shouldIgnoreTicks()||(m.keys.forEach((y,b)=>{const S=a.getNoteParts(y.split("/")[0]),A=S.accidental||"n",E=S.root+A,x=l[S.root]===E,P=d.indexOf(E)>-1;if(!x||x&&P){l[S.root]=E;const T=new Accidental(A);m.addAccidental(b,T),d.push(E)}}),m.getModifiers().forEach(y=>{y.getCategory()==="gracenotegroups"&&y.getGraceNotes().forEach(g)}))};u.forEach(g)})}constructor(e=null){if(super(),this.setAttribute("type","Accidental"),L$g("New accidental: ",e),this.note=null,this.index=null,this.type=e,this.position=Modifier.Position.LEFT,this.render_options={font_scale:38,stroke_px:3,parenLeftPadding:2,parenRightPadding:2},this.accidental=Flow.accidentalCodes(this.type),!this.accidental)throw new Vex.RERR("ArgumentError",`Unknown accidental type: ${e}`);this.cautionary=!1,this.parenLeft=null,this.parenRight=null,this.reset()}reset(){const e=this.render_options.font_scale;this.glyph=new Glyph(this.accidental.code,e),this.glyph.setOriginX(1),this.cautionary&&(this.parenLeft=new Glyph(Flow.accidentalCodes("{").code,e),this.parenRight=new Glyph(Flow.accidentalCodes("}").code,e),this.parenLeft.setOriginX(1),this.parenRight.setOriginX(1))}getCategory(){return Accidental.CATEGORY}getWidth(){const e=this.cautionary?getGlyphWidth(this.parenLeft)+getGlyphWidth(this.parenRight)+this.render_options.parenLeftPadding+this.render_options.parenRightPadding:0;return getGlyphWidth(this.glyph)+e}setNote(e){if(!e)throw new Vex.RERR("ArgumentError",`Bad note value: ${e}`);this.note=e,this.note.getCategory()==="gracenotes"&&(this.render_options.font_scale=25,this.reset())}setAsCautionary(){return this.cautionary=!0,this.render_options.font_scale=28,this.reset(),this}draw(){const{context:e,type:r,position:s,note:o,index:a,cautionary:l,x_shift:c,y_shift:u,glyph:d,parenLeft:g,parenRight:m,render_options:{parenLeftPadding:y,parenRightPadding:b}}=this;if(this.checkContext(),!(o&&a!=null))throw new Vex.RERR("NoAttachedNote","Can't draw accidental without a note and index.");const S=o.getModifierStartXY(s,a);let A=S.x+c;const E=S.y+u;L$g("Rendering: ",r,A,E),l?(m.render(e,A,E),A-=getGlyphWidth(m),A-=b,A-=this.accidental.parenRightPaddingAdjustment,d.render(e,A,E),A-=getGlyphWidth(d),A-=y,g.render(e,A,E)):d.render(e,A,E),this.setRendered()}}let NoteSubGroup$1=class Bi extends Modifier{static get CATEGORY(){return"notesubgroup"}static format(e,r){if(!e||e.length===0)return!1;let s=0;for(let o=0;o{r.ignore_ticks=!1}),this.width=0,this.preFormatted=!1,this.formatter=new Formatter,this.voice=new Voice$1({num_beats:4,beat_value:4,resolution:Flow.RESOLUTION}).setStrict(!1),this.voice.addTickables(this.subNotes),this}getCategory(){return Bi.CATEGORY}preFormat(){this.preFormatted||(this.formatter.joinVoices([this.voice]).format([this.voice],0),this.setWidth(this.formatter.getMinTotalWidth()),this.preFormatted=!0)}setNote(e){this.note=e}setWidth(e){this.width=e}getWidth(){return this.width}draw(){this.checkContext();const e=this.getNote();if(!(e&&this.index!==null))throw new Vex.RuntimeError("NoAttachedNote","Can't draw notes without a parent note and parent note index.");this.setRendered(),this.alignSubNotesWithNote(this.subNotes,e),this.subNotes.forEach(r=>r.setContext(this.context).drawWithStyle())}};class StaveTie extends Element$1{constructor(e,r){super(),this.setAttribute("type","StaveTie"),this.notes=e,this.context=null,this.text=r,this.direction=null,this.render_options={cp1:8,cp2:12,text_shift_x:0,first_x_shift:0,last_x_shift:0,y_shift:7,tie_spacing:0,font:{family:"Arial",size:15,style:""}},this.font=this.render_options.font,this.setNotes(e)}setFont(e){return this.font=e,this}setDirection(e){return this.direction=e,this}setNotes(e){if(!e.first_note&&!e.last_note)throw new Vex.RuntimeError("BadArguments","Tie needs to have either first_note or last_note set.");if(e.first_indices||(e.first_indices=[0]),e.last_indices||(e.last_indices=[0]),e.first_indices.length!==e.last_indices.length)throw new Vex.RuntimeError("BadArguments","Tied notes must have similar index sizes");return this.first_note=e.first_note,this.first_indices=e.first_indices,this.last_note=e.last_note,this.last_indices=e.last_indices,this}isPartial(){return!this.first_note||!this.last_note}renderTie(e){if(e.first_ys.length===0||e.last_ys.length===0)throw new Vex.RERR("BadArguments","No Y-values to render");const r=this.context;let s=this.render_options.cp1,o=this.render_options.cp2;Math.abs(e.last_x_px-e.first_x_px)<10&&(s=2,o=8);const a=this.render_options.first_x_shift,l=this.render_options.last_x_shift,c=this.render_options.y_shift*e.direction;for(let u=0;uy&&Math.abs(g-y)<10?-6:0;if(this.first_note&&this.first_note.DYMusicScoreType==="jianpu"){if(this.getAttribute("type")==="TabTie")continue;g1){const r=new Beam$1(e);r.render_options.beam_width=3,r.render_options.partial_beam_length=4,this.beams.push(r)}return this}setNote(e){this.note=e}setWidth(e){this.width=e}getWidth(){return this.width}getGraceNotes(){return this.grace_notes}draw(){this.checkContext();const e=this.getNote();if(L$f("Drawing grace note group for:",e),!(e&&this.index!==null))throw new Vex.RuntimeError("NoAttachedNote","Can't draw grace note without a parent note and parent note index.");if(this.setRendered(),this.alignSubNotesWithNote(this.getGraceNotes(),e),this.grace_notes.forEach(r=>{r.setContext(this.context).draw()}),this.beams.forEach(r=>{r.setContext(this.context).draw()}),this.show_slur){const r=this.getNote().getCategory()===StaveNote.CATEGORY,s=r?StaveTie:TabTie;this.slur=new s({last_note:this.grace_notes[0],first_note:e,first_indices:[0],last_indices:[0]}),this.slur.render_options.cp2=12,this.slur.render_options.y_shift=(r?7:5)+this.render_options.slur_y_shift,this.slur.setContext(this.context).draw()}}}class Stroke extends Modifier{static get CATEGORY(){return"strokes"}static get Type(){return{BRUSH_DOWN:1,BRUSH_UP:2,ROLL_DOWN:3,ROLL_UP:4,RASQUEDO_DOWN:5,RASQUEDO_UP:6,ARPEGGIO_DIRECTIONLESS:7}}static format(e,r){const s=r.left_shift,o=0;if(!e||e.length===0)return this;const a=e.map(u=>{const d=u.getNote();if(d instanceof StaveNote){const{line:g,displaced:m}=d.getKeyProps()[u.getIndex()],y=m?d.getExtraLeftPx():0;return{line:g,shift:y,stroke:u}}else{const{str:g}=d.getPositions()[u.getIndex()];return{line:g,shift:0,stroke:u}}}),l=s,c=a.reduce((u,{stroke:d,shift:g})=>(d.setXShift(l+g),Math.max(d.getWidth()+o,u)),0);return r.left_shift+=c,!0}constructor(e,r){super(),this.setAttribute("type","Stroke"),this.note=null,this.options=Vex.Merge({},r),this.all_voices="all_voices"in this.options?this.options.all_voices:!0,this.note_end=null,this.index=null,this.type=e,this.position=Modifier.Position.LEFT,this.render_options={font_scale:38,stroke_px:3,stroke_spacing:10},this.font={family:"serif",size:10,weight:"bold italic"},this.setXShift(0),this.setWidth(10)}getCategory(){return Stroke.CATEGORY}getPosition(){return this.position}addEndNote(e){return this.note_end=e,this}draw(){if(this.checkContext(),this.setRendered(),!(this.note&&this.index!=null))throw new Vex.RERR("NoAttachedNote","Can't draw stroke without a note and index.");const e=this.note.getModifierStartXY(this.position,this.index);let r=this.note.getYs(),s=e.y,o=e.y;const a=e.x-5,l=this.note.stave.options.spacing_between_lines_px,c=this.getModifierContext().getModifiers(this.note.getCategory());for(let b=0;bM.line-C.line);let A=0,E=0,x=0,P=null,T=null;for(g=0;gE?C:E):b===Modifier.Position.RIGHT&&(m.setXShift(A),C+=I,x=C>x?C:x),P=M,T=y}return r.left_shift+=E,r.right_shift+=x,!0}constructor(e){super(),this.setAttribute("type","StringNumber"),this.note=null,this.last_note=null,this.index=null,this.string_number=e,this.setWidth(20),this.position=Modifier.Position.ABOVE,this.x_shift=0,this.y_shift=0,this.x_offset=0,this.y_offset=0,this.dashed=!0,this.leg=Renderer.LineEndType.NONE,this.radius=8,this.font={family:"sans-serif",size:10,weight:"bold"}}getCategory(){return StringNumber.CATEGORY}getNote(){return this.note}setNote(e){return this.note=e,this}getIndex(){return this.index}setIndex(e){return this.index=e,this}setLineEndType(e){return e>=Renderer.LineEndType.NONE&&e<=Renderer.LineEndType.DOWN&&(this.leg=e),this}setStringNumber(e){return this.string_number=e,this}setOffsetX(e){return this.x_offset=e,this}setOffsetY(e){return this.y_offset=e,this}setLastNote(e){return this.last_note=e,this}setDashed(e){return this.dashed=e,this}draw(){const e=this.checkContext();if(!(this.note&&this.index!=null))throw new Vex.RERR("NoAttachedNote","Can't draw string number without a note and index.");this.setRendered();const r=this.note.stave.options.spacing_between_lines_px,s=this.note.getModifierStartXY(this.position,this.index);let o=s.x+this.x_shift+this.x_offset,a=s.y+this.y_shift+this.y_offset;switch(this.position){case Modifier.Position.ABOVE:case Modifier.Position.BELOW:{const c=this.note.getStemExtents();let u=c.topY,d=c.baseY+2;this.note.stem_direction===StaveNote.STEM_DOWN&&(u=c.baseY,d=c.topY-2),this.position===Modifier.Position.ABOVE?a=this.note.hasStem()?u-r*1.75:s.y-r*1.75:a=this.note.hasStem()?d+r*1.5:s.y+r*1.75,a+=this.y_shift+this.y_offset;break}case Modifier.Position.LEFT:o-=this.radius/2+5;break;case Modifier.Position.RIGHT:o+=this.radius/2+6;break;default:throw new Vex.RERR("InvalidPosition",`The position ${this.position} is invalid`)}e.save(),e.beginPath(),e.arc(o,a,this.radius,0,Math.PI*2,!1),e.lineWidth=1.5,e.stroke(),e.setFont(this.font.family,this.font.size,this.font.weight);const l=o-e.measureText(this.string_number).width/2;if(e.fillText(""+this.string_number,l,a+4.5),this.last_note!=null){const c=this.last_note.getStemX()-this.note.getX()+5;e.strokeStyle="#000000",e.lineCap="round",e.lineWidth=.6,this.dashed?Renderer.drawDashedLine(e,o+10,a,o+c,a,[3,3]):Renderer.drawDashedLine(e,o+10,a,o+c,a,[3,0]);let u,d;switch(this.leg){case Renderer.LineEndType.UP:u=-10,d=this.dashed?[3,3]:[3,0],Renderer.drawDashedLine(e,o+c,a,o+c,a+u,d);break;case Renderer.LineEndType.DOWN:u=10,d=this.dashed?[3,3]:[3,0],Renderer.drawDashedLine(e,o+c,a,o+c,a+u,d);break}}e.restore()}}class TickContext extends Tickable{static getNextContext(e){const r=e.tContexts,s=r.indexOf(e);return r[s+1]}constructor(){super(),this.setAttribute("type","TickContext"),this.currentTick=new Fraction(0,1),this.maxTicks=new Fraction(0,1),this.minTicks=null,this.padding=3,this.x=0,this.xBase=0,this.xOffset=0,this.tickables=[],this.notePx=0,this.extraLeftPx=0,this.extraRightPx=0,this.tContexts=[]}getX(){return this.x}setX(e){return this.x=e,this.xBase=e,this.xOffset=0,this}getXBase(){return this.xBase}setXBase(e){this.xBase=e,this.x=e+this.xOffset}getXOffset(){return this.xOffset}setXOffset(e){this.xOffset=e,this.x=this.xBase+e}getWidth(){return this.width+this.padding*2}setPadding(e){return this.padding=e,this}getMaxTicks(){return this.maxTicks}getMinTicks(){return this.minTicks}getTickables(){return this.tickables}getCenterAlignedTickables(){return this.tickables.filter(e=>e.isCenterAligned())}getMetrics(){const{width:e,notePx:r,extraLeftPx:s,extraRightPx:o}=this;return{width:e,notePx:r,extraLeftPx:s,extraRightPx:o}}getCurrentTick(){return this.currentTick}setCurrentTick(e){this.currentTick=e,this.preFormatted=!1}getExtraPx(){let e=0,r=0,s=0,o=0;for(let a=0;ai(e/.5)*.5,isWithinLines=(i,e)=>e===ABOVE?i<=5:i>=1,getRoundingFunction=(i,e)=>isWithinLines(i,e)?e===ABOVE?Math.ceil:Math.floor:Math.round,snapLineToStaff=(i,e,r,s)=>{const o=roundToNearestHalf(getRoundingFunction(e,r),e),a=i&&isWithinLines(o,r),l=o%1===0;return a&&l?o+.5*-s:o},isStaveNote=i=>{const e=i.getCategory();return e==="stavenotes"||e==="gracenotes"},isTabNote=i=>{const e=i.getCategory();return e==="tabnotes"||e==="numberednotes"},getTopY=(i,e)=>{const r=i.getStave(),s=i.getStemDirection(),{topY:o,baseY:a}=i.getStemExtents();if(isStaveNote(i))return i.hasStem()?s===Stem.UP?o:a:Math.min(...i.getYs());if(isTabNote(i))return i.hasStem()&&s===Stem.UP?o:r.getYForTopText(e);throw new Vex.RERR("UnknownCategory","Only can get the top and bottom ys of stavenotes and tabnotes")},getBottomY=(i,e)=>{const r=i.getStave(),s=i.getStemDirection(),{topY:o,baseY:a}=i.getStemExtents();if(isStaveNote(i))return i.hasStem()?s===Stem.UP?a:o:Math.max(...i.getYs());if(isTabNote(i))return i.hasStem()?s===Stem.UP?r.getYForBottomText(e):o:r.getYForBottomText(e);throw new Vex.RERR("UnknownCategory","Only can get the top and bottom ys of stavenotes and tabnotes")},getInitialOffset=(i,e)=>{const r=e===ABOVE&&i.getStemDirection()===Stem.UP||e===BELOW&&i.getStemDirection()===Stem.DOWN;return isStaveNote(i)?i.hasStem()&&r?.5:1:i.hasStem()&&r?1:0};let Articulation$1=class ii extends Modifier{static get CATEGORY(){return"articulations"}static get INITIAL_OFFSET(){return-.5}static format(e,r){if(!e||e.length===0)return!1;const s=u=>u.getPosition()===ABOVE,o=u=>u.getPosition()===BELOW,a=.5,l=(u,d,g)=>roundToNearestHalf(getRoundingFunction(d,g),u.glyph.getMetrics().height/10+a);e.filter(s).forEach(u=>{u.setTextLine(r.top_text_line),r.top_text_line+=l(u,r.top_text_line,ABOVE)}),e.filter(o).forEach(u=>{u.setTextLine(r.text_line),r.text_line+=l(u,r.text_line,BELOW)});const c=e.map(u=>u.getWidth()).reduce((u,d)=>Math.max(d,u));return r.left_shift+=c/2,r.right_shift+=c/2,!0}static easyScoreHook({articulations:e},r,s){if(!e)return;const o={staccato:"a.",tenuto:"a-"};e.split(",").map(a=>a.trim().split(".")).map(([a,l])=>{const c={type:o[a]};return l&&(c.position=Modifier.PositionString[l]),s.getFactory().Articulation(c)}).map(a=>r.addModifier(0,a))}constructor(e){if(super(),this.setAttribute("type","Articulation"),this.note=null,this.index=null,this.type=e,this.position=BELOW,this.render_options={font_scale:38},this.breathMarkDistance=.8,this.articulation=Flow.articulationCodes(this.type),this.type==="abr"&&(this.articulation={code:"v6c",between_lines:!1}),!this.articulation)throw new Vex.RERR("ArgumentError",`Articulation not found: ${this.type}`);this.glyph=new Glyph(this.articulation.code,this.render_options.font_scale),this.setWidth(this.glyph.getMetrics().width)}getCategory(){return ii.CATEGORY}draw(){const{note:e,index:r,position:s,glyph:o,articulation:{between_lines:a},text_line:l,context:c}=this;if(this.checkContext(),!e||r==null)throw new Vex.RERR("NoAttachedNote","Can't draw Articulation without a note and index.");this.setRendered();const u=e.getStave(),d=u.getSpacingBetweenLines(),g=e.getCategory()==="tabnotes";let{x:m}=e.getModifierStartXY(s,r);if(this.type==="abr"){let E=0;const x=e.getTickContext(),P=TickContext.getNextContext(x),T=e.getTickContext().getX();if(P)E=(P.getX()-T)*this.breathMarkDistance;else{const C=e.getStave();E=(C.getX()+C.getWidth()-T)*this.breathMarkDistance}m+=E}const y=this.getXShift();y&&(m+=y);const b=!a||g,S=getInitialOffset(e,s);let A={[ABOVE]:()=>{o.setOrigin(.5,1);const E=getTopY(e,l)-(l+S)*d+(this.y_shift||0);return b?Math.min(u.getYForTopText(ii.INITIAL_OFFSET),E):E},[BELOW]:()=>{o.setOrigin(.5,0);const E=getBottomY(e,l)+(l+S)*d;return b?Math.max(u.getYForBottomText(ii.INITIAL_OFFSET),E):E}}[s]();if(!g){const E=s===ABOVE?-1:1,x=g?e.positions[r].str:e.getKeyProps()[r].line,T=(e.getYs()[r]-A)/d+x,C=snapLineToStaff(a,T,s,E);isWithinLines(C,s)&&o.setOrigin(.5,.5),A+=Math.abs(C-T)*d*E}L$e(`Rendering articulation at (x: ${m}, y: ${A})`),o.render(c,m,A)}};function L$d(...i){Ornament.DEBUG&&Vex.L("Vex.Flow.Ornament",i)}class Ornament extends Modifier{static get CATEGORY(){return"ornaments"}static format(e,r){if(!e||e.length===0)return!1;let s=0;for(let o=0;o0&&o--;for(let u=0;u{L$b("Preformatting ModifierContext: ",e.CATEGORY),e.format(this.getModifiers(e.CATEGORY),this.state,this)}),this.width=this.state.left_shift+this.state.right_shift,this.preFormatted=!0)}postFormat(){this.postFormatted||this.POSTFORMAT.forEach(e=>{L$b("Postformatting ModifierContext: ",e.CATEGORY),e.postFormat(this.getModifiers(e.CATEGORY),this)})}}function L$a(...i){Formatter.DEBUG&&Vex.L("Vex.Flow.Formatter",i)}function getNext(i,e){var s,o;const r=i[e+1];return r&&((s=r==null?void 0:r.keys)!=null&&s.includes("b/4"))||(o=r==null?void 0:r.keys)!=null&&o.includes("r/4")?getNext(i,e+1):r}function lookAhead(i,e,r,s){let o=e;for(r+=1;r{if(u.getMode()===Voice$1.Mode.STRICT&&!u.isComplete())throw new Vex.RERR("IncompleteVoice","Voice does not have enough notes.");return Math.max(c,Fraction.LCM(c,u.getResolutionMultiplier()))},1),o={},a=[],l=[];return i.forEach(c=>{const u=new Fraction(0,s);c.getTickables().forEach(d=>{const g=u.numerator;if(!o[g]){const m=new e;l.push(m),o[g]=m}r(d,o[g]),a.push(g),u.add(d.getTicks())})}),{map:o,array:l,list:Vex.SortAndUnique(a,(c,u)=>c-u,(c,u)=>c===u),resolutionMultiplier:s}}class Formatter{static SimpleFormat(e,r=0,{paddingBetween:s=10}={}){e.reduce((o,a)=>{a.addToModifierContext(new ModifierContext);const l=new TickContext().addTickable(a).preFormat(),c=l.getExtraPx();return l.setX(o+c.left),o+l.getWidth()+c.right+s},r)}static plotDebugging(e,r,s,o,a){const l=s+Note.STAVEPADDING,c=r.contextGaps;function u(d,g,m){e.beginPath(),e.setStrokeStyle(m),e.setFillStyle(m),e.setLineWidth(1),e.fillRect(d,o,g-d,a-o)}e.save(),e.setFont("Arial",8,""),c.gaps.forEach(d=>{u(l+d.x1,l+d.x2,"#aaa"),e.fillText(Math.round(d.x2-d.x1),l+d.x1,a+12)}),e.fillText(Math.round(c.total)+"px",l-20,a+12),e.setFillStyle("red"),e.fillText("Loss: "+r.lossHistory.map(d=>Math.round(d)),l-20,a+22),e.restore()}static FormatAndDraw(e,r,s,o){const a={auto_beam:!1,align_rests:!1};typeof o=="object"?Vex.Merge(a,o):typeof o=="boolean"&&(a.auto_beam=o);const l=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(s),c=a.auto_beam?Beam$1.applyAndGetBeams(l):[];return new Formatter().joinVoices([l],{align_rests:a.align_rests}).formatToStave([l],r,{align_rests:a.align_rests,stave:r}),l.setStave(r).draw(e,r),c.forEach(u=>u.setContext(e).draw()),l.getBoundingBox()}static FormatAndDrawTab(e,r,s,o,a,l,c){const u={auto_beam:l,align_rests:!1};typeof c=="object"?Vex.Merge(u,c):typeof c=="boolean"&&(u.auto_beam=c);const d=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(a),g=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(o),m=u.auto_beam?Beam$1.applyAndGetBeams(d):[];new Formatter().joinVoices([d],{align_rests:u.align_rests}).joinVoices([g]).formatToStave([d,g],s,{align_rests:u.align_rests}),d.draw(e,s),g.draw(e,r),m.forEach(y=>y.setContext(e).draw()),new StaveConnector(s,r).setContext(e).draw()}static AlignRestsToNotes(e,r,s){return e.forEach((o,a)=>{if(o instanceof StaveNote&&o.isRest()){if(o.tuplet&&!s)return;const l=o.getGlyph().position.toUpperCase();if(l!=="R/4"&&l!=="B/4")return;if(r||o.beam!=null){const c=o.getKeyProps()[0];if(a===0)c.line=lookAhead(e,c.line,a,!1),o.setKeyLine(0,c.line);else if(a>0&&a0){const A=b<1.5?Math.abs(b-1.5)*c:0;S.setResetHeight(A)}else{const A=b>4.5?Math.abs(b-4.5)*c:0;S.setResetHeight(A)}}}}}}),this}constructor(){this.minTotalWidth=0,this.hasMinTotalWidth=!1,this.totalTicks=new Fraction(0,1),this.tickContexts=null,this.modiferContexts=null,this.contextGaps={total:0,gaps:[]},this.voices=[]}alignRests(e,r){if(!e||!e.length)throw new Vex.RERR("BadArgument","No voices to format rests");e.forEach(s=>Formatter.AlignRestsToNotes(s.getTickables(),r))}preCalculateMinTotalWidth(e){if(this.hasMinTotalWidth)return this.minTotalWidth;if(!this.tickContexts){if(!e)throw new Vex.RERR("BadArgument","'voices' required to run preCalculateMinTotalWidth");this.createTickContexts(e)}const{list:r,map:s}=this.tickContexts;return this.minTotalWidth=r.map(o=>{const a=s[o];return a.preFormat(),a.getWidth()}).reduce((o,a)=>o+a,0),this.hasMinTotalWidth=!0,this.minTotalWidth}getMinTotalWidth(){if(!this.hasMinTotalWidth)throw new Vex.RERR("NoMinTotalWidth","Call 'preCalculateMinTotalWidth' or 'preFormat' before calling 'getMinTotalWidth'");return this.minTotalWidth}createModifierContexts(e){const r=createContexts(e,ModifierContext,(s,o)=>s.addToModifierContext(o));return this.modiferContexts=r,r}createTickContexts(e){const r=createContexts(e,TickContext,(s,o)=>o.addTickable(s));return r.array.forEach(s=>{s.tContexts=r.array}),this.totalTicks=e[0].getTicksUsed().clone(),this.tickContexts=r,r}preFormat(e=0,r,s,o){const a=this.tickContexts,{list:l,map:c,resolutionMultiplier:u}=a;s&&o&&s.forEach(E=>E.setStave(o).preFormat());let d=0,g=0;const m=e/2;if(this.minTotalWidth=0,l.forEach(E=>{const x=c[E];r&&x.setContext(r),x.preFormat();const P=x.getWidth();this.minTotalWidth+=P;const T=x.getMetrics();d=d+g+T.extraLeftPx,x.setX(d),g=P-T.extraLeftPx}),this.minTotalWidth=d+g,this.hasMinTotalWidth=!0,e<=0)return;const y=e-this.minTotalWidth;let b=this.totalTicks.value();b===0&&(b=1);const S=y/(b*u);let A=0;l.forEach((E,x)=>{const P=l[x-1]||0,T=c[E],C=(E-P)*S;A+=C,T.setX(T.getX()+A),T.getCenterAlignedTickables().forEach(M=>{M.center_x_shift=m-T.getX()})}),l.length!==1&&(this.justifyWidth=e,this.lossHistory=[],this.evaluate())}evaluate(){const e=this.justifyWidth;this.contextGaps={total:0,gaps:[]},this.tickContexts.list.forEach((a,l)=>{if(l===0)return;const c=this.tickContexts.list[l-1],u=this.tickContexts.map[c],d=this.tickContexts.map[a],g=u.getMetrics(),m=u.getX()+g.width,y=d.getX(),b=y-m;this.contextGaps.total+=b,this.contextGaps.gaps.push({x1:m,x2:y}),d.getFormatterMetrics().freedom.left=b,u.getFormatterMetrics().freedom.right=b});const r=this.durationStats={};function s(a,l){const c=r[a];c===void 0?r[a]={mean:l,count:1}:(c.count+=1,c.mean=(c.mean+l)/2)}this.voices.forEach(a=>{a.getTickables().forEach((l,c,u)=>{const d=l.getTicks().clone().simplify().toString(),g=l.getMetrics(),m=l.getFormatterMetrics(),y=l.getX()+g.noteWidth+g.modRightPx+g.extraRightPx;let b=0;if(c{a.getTickables().forEach(l=>{const c=l.getTicks().clone().simplify().toString(),u=l.getFormatterMetrics();u.iterations+=1,u.space.deviation=u.space.used-r[c].mean,u.duration=c,u.space.mean=r[c].mean,o+=Math.pow(r[c].mean,2)})}),this.totalCost=Math.sqrt(o),this.lossHistory.push(this.totalCost),this}tune(){const e=o=>o.reduce((a,l)=>a+l);function r(o,a,l,c){o.setX(o.getX()+c),o.getFormatterMetrics().freedom.left+=c,o.getFormatterMetrics().freedom.right-=c,a&&(a.getFormatterMetrics().freedom.right+=c),l&&(l.getFormatterMetrics().freedom.left-=c)}let s=0;return this.tickContexts.list.forEach((o,a,l)=>{const c=this.tickContexts.map[o],u=a>0?this.tickContexts.map[l[a-1]]:null,d=ay.getFormatterMetrics().space.deviation));g>0?s=-Math.min(c.getFormatterMetrics().freedom.right,Math.abs(g)):g<0&&(d?s=Math.min(d.getFormatterMetrics().freedom.right,Math.abs(g)):s=0);const m=Math.min(5,Math.abs(s));s=s>0?m:-m}),this.evaluate()}postFormat(){const e=r=>r.list.forEach(s=>r.map[s].postFormat());return e(this.modiferContexts),e(this.tickContexts),this}joinVoices(e){return this.createModifierContexts(e),this.hasMinTotalWidth=!1,this}format(e,r,s){const o={align_rests:!1,context:null,stave:null};return Vex.Merge(o,s),this.voices=e,this.alignRests(e,o.align_rests),this.createTickContexts(e),this.preFormat(r,o.context,e,o.stave),this}formatToStave(e,r,s){const o=r.getNoteEndX()-r.getNoteStartX()-10;L$a("Formatting voices to width: ",o);const a={context:r.getContext()};return Vex.Merge(a,s),this.format(e,o,a)}}class StaveModifier extends Element$1{static get Position(){return{LEFT:1,RIGHT:2,ABOVE:3,BELOW:4,BEGIN:5,END:6}}constructor(){super(),this.setAttribute("type","StaveModifier"),this.padding=10,this.position=StaveModifier.Position.ABOVE,this.layoutMetrics=null}getPosition(){return this.position}setPosition(e){return this.position=e,this}getStave(){return this.stave}setStave(e){return this.stave=e,this}getWidth(){return this.width}setWidth(e){return this.width=e,this}getX(){return this.x}setX(e){return this.x=e,this}getCategory(){return""}makeSpacer(e){return{getContext(){return!0},setStave(){},renderToStave(){},getMetrics(){return{width:e}}}}placeGlyphOnLine(e,r,s){e.setYShift(r.getYForLine(s)-r.getYForGlyphs())}getPadding(e){return e!==void 0&&e<2?0:this.padding}setPadding(e){return this.padding=e,this}setLayoutMetrics(e){return this.layoutMetrics=e,this}getLayoutMetrics(){return this.layoutMetrics}}class Barline extends StaveModifier{static get CATEGORY(){return"barlines"}static get type(){return{SINGLE:1,DOUBLE:2,END:3,REPEAT_BEGIN:4,REPEAT_END:5,REPEAT_BOTH:6,NONE:7}}static get typeString(){return{single:Barline.type.SINGLE,double:Barline.type.DOUBLE,end:Barline.type.END,repeatBegin:Barline.type.REPEAT_BEGIN,repeatEnd:Barline.type.REPEAT_END,repeatBoth:Barline.type.REPEAT_BOTH,none:Barline.type.NONE}}constructor(e){super(),this.setAttribute("type","Barline"),this.thickness=Flow.STAVE_LINE_THICKNESS;const r=Barline.type;this.widths={},this.widths[r.SINGLE]=5,this.widths[r.DOUBLE]=5,this.widths[r.END]=5,this.widths[r.REPEAT_BEGIN]=5,this.widths[r.REPEAT_END]=5,this.widths[r.REPEAT_BOTH]=5,this.widths[r.NONE]=5,this.paddings={},this.paddings[r.SINGLE]=0,this.paddings[r.DOUBLE]=0,this.paddings[r.END]=0,this.paddings[r.REPEAT_BEGIN]=15,this.paddings[r.REPEAT_END]=15,this.paddings[r.REPEAT_BOTH]=15,this.paddings[r.NONE]=0,this.layoutMetricsMap={},this.layoutMetricsMap[r.SINGLE]={xMin:0,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[r.DOUBLE]={xMin:-3,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[r.END]={xMin:-5,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[r.REPEAT_END]={xMin:-10,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[r.REPEAT_BEGIN]={xMin:-2,xMax:10,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[r.REPEAT_BOTH]={xMin:-10,xMax:10,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[r.NONE]={xMin:0,xMax:0,paddingLeft:5,paddingRight:5},this.setPosition(StaveModifier.Position.BEGIN),this.setType(e)}getCategory(){return Barline.CATEGORY}getType(){return this.type}setType(e){return this.type=typeof e=="string"?Barline.typeString[e]:e,this.setWidth(this.widths[this.type]),this.setPadding(this.paddings[this.type]),this.setLayoutMetrics(this.layoutMetricsMap[this.type]),this}draw(e){switch(e.checkContext(),this.setRendered(),this.type){case Barline.type.SINGLE:this.drawVerticalBar(e,this.x,!1);break;case Barline.type.DOUBLE:this.drawVerticalBar(e,this.x,!0);break;case Barline.type.END:this.drawVerticalEndBar(e,this.x);break;case Barline.type.REPEAT_BEGIN:this.drawRepeatBar(e,this.x,!0),e.getX()!==this.x&&this.drawVerticalBar(e,e.getX());break;case Barline.type.REPEAT_END:this.drawRepeatBar(e,this.x,!1);break;case Barline.type.REPEAT_BOTH:this.drawRepeatBar(e,this.x,!1),this.drawRepeatBar(e,this.x,!0);break}}drawVerticalBar(e,r,s){e.checkContext();const o=e.getTopLineTopY(),a=e.getBottomLineBottomY();s&&e.context.fillRect(r-3,o,1,a-o),e.context.fillRect(r,o,1,a-o)}drawVerticalEndBar(e,r){e.checkContext();const s=e.getTopLineTopY(),o=e.getBottomLineBottomY();e.context.fillRect(r-5,s,1,o-s),e.context.fillRect(r-2,s,3,o-s)}drawRepeatBar(e,r,s){e.checkContext();const o=e.getTopLineTopY(),a=e.getBottomLineBottomY();let l=3;s||(l=-5),e.context.fillRect(r+l,o,1,a-o),e.context.fillRect(r-2,o,3,a-o);const c=2;s?l+=4:l-=4;const u=r+l+c/2;let d=(e.getNumLines()-1)*e.getSpacingBetweenLines();d=d/2-e.getSpacingBetweenLines()/2;let g=o+d+c/2;e.context.beginPath(),e.context.arc(u,g,c,0,Math.PI*2,!1),e.context.fill(),g+=e.getSpacingBetweenLines(),e.context.beginPath(),e.context.arc(u,g,c,0,Math.PI*2,!1),e.context.fill()}}let Repetition$1=class Je extends StaveModifier{static get CATEGORY(){return"repetitions"}static get type(){return{NONE:1,CODA_LEFT:2,CODA_RIGHT:3,SEGNO_LEFT:4,SEGNO_RIGHT:5,DC:6,DC_AL_CODA:7,DC_AL_FINE:8,DS:9,DS_AL_CODA:10,DS_AL_FINE:11,FINE:12,TO_CODA:13}}constructor(e,r,s){super(),this.setAttribute("type","Repetition"),this.symbol_type=e,this.x=r,this.x_shift=0,this.y_shift=s,this.font={family:"times",size:12,weight:"bold italic"}}getCategory(){return Je.CATEGORY}setShiftX(e){return this.x_shift=e,this}setShiftY(e){return this.y_shift=e,this}setX(e){return this.x=e,this}draw(e,r){switch(this.setRendered(),this.symbol_type){case Je.type.CODA_RIGHT:this.drawCodaFixed(e,r+e.width);break;case Je.type.CODA_LEFT:this.drawSymbolText(e,r,"Coda",!0);break;case Je.type.SEGNO_LEFT:this.drawSignoFixed(e,r);break;case Je.type.SEGNO_RIGHT:this.drawSignoFixed(e,r+e.width);break;case Je.type.DC:this.drawSymbolText(e,r,"D.C.",!1);break;case Je.type.DC_AL_CODA:this.drawSymbolText(e,r,"D.C. al",!0);break;case Je.type.DC_AL_FINE:this.drawSymbolText(e,r,"D.C. al Fine",!1);break;case Je.type.DS:this.drawSymbolText(e,r,"D.S.",!1);break;case Je.type.DS_AL_CODA:this.drawSymbolText(e,r,"D.S. al",!0);break;case Je.type.DS_AL_FINE:this.drawSymbolText(e,r,"D.S. al Fine",!1);break;case Je.type.FINE:this.drawSymbolText(e,r,"Fine",!1);break;case Je.type.TO_CODA:this.drawSymbolText(e,r,"To",!0);break}return this}drawCodaFixed(e,r){const s=e.getYForTopText(e.options.num_lines)+this.y_shift;return Glyph.renderGlyph(e.context,this.x+r+this.x_shift,s+25,40,"v4d",!0),this}drawSignoFixed(e,r){const s=e.getYForTopText(e.options.num_lines)+this.y_shift;return Glyph.renderGlyph(e.context,this.x+r+this.x_shift,s+25,30,"v8c",!0),this}drawSymbolText(e,r,s,o){const a=e.checkContext();a.save(),a.setFont(this.font.family,this.font.size,this.font.weight);let l=0+this.x_shift,c=r+this.x_shift;if(this.symbol_type===Je.type.CODA_LEFT?(l=this.x+this.x_shift,c=l+a.measureText(s).width+12):(this.x_shift=-(l+a.measureText(s).width+12+e.options.vertical_bar_width+12),l=this.x+this.x_shift+e.options.vertical_bar_width,c=l+a.measureText(s).width+12),this.xShiftAsPercentOfStaveWidth){const d=e.width*this.xShiftAsPercentOfStaveWidth;(this.symbol_type===Je.type.DC_AL_FINE||this.symbol_type===Je.type.FINE||this.symbol_type===Je.type.DC||this.symbol_type===Je.type.DS_AL_FINE||this.symbol_type===Je.type.DS||this.symbol_type===Je.type.FINE)&&(l+=d)}const u=e.getYForTopText(e.options.num_lines)+this.y_shift+25;return o&&Glyph.renderGlyph(a,c,u,40,"v4d",!0),a.fillText(s,l,u+5),a.restore(),this}};class StaveSection extends StaveModifier{static get CATEGORY(){return"stavesection"}constructor(e,r,s){super(),this.setAttribute("type","StaveSection"),this.setWidth(16),this.section=e,this.x=r,this.shift_x=0,this.shift_y=s,this.font={family:"sans-serif",size:12,weight:"bold"}}getCategory(){return StaveSection.CATEGORY}setStaveSection(e){return this.section=e,this}setShiftX(e){return this.shift_x=e,this}setShiftY(e){return this.shift_y=e,this}draw(e,r){const s=e.checkContext();this.setRendered(),s.save(),s.lineWidth=2,s.setFont(this.font.family,this.font.size,this.font.weight);const o=s.measureText(""+this.section),a=o.width;let l=o.height;!l&&o.emHeightAscent>=0&&(l=o.emHeightAscent+2),l||(l=o.fontBoundingBoxAscent+3);let c=a+6;c<18&&(c=18);const u=l+this.font.size/10,d=e.getYForTopText(3)+19-u*1.15+this.shift_y;let g=this.x+r;return s.beginPath(),s.lineWidth=2,s.rect(g,d+l/4,c,u),s.stroke(),g+=(c-a)/2,s.fillText(""+this.section,g,d+u),s.restore(),this}}class StaveTempo extends StaveModifier{static get CATEGORY(){return"stavetempo"}constructor(e,r,s){super(),this.setAttribute("type","StaveTempo"),this.tempo=e,this.position=Modifier.Position.ABOVE,this.x=r,this.shift_x=10,this.shift_y=s,this.font={family:"times",size:14,weight:"bold"},this.render_options={glyph_font_scale:30}}getCategory(){return StaveTempo.CATEGORY}setTempo(e){return this.tempo=e,this}setShiftX(e){return this.shift_x=e,this}setShiftY(e){return this.shift_y=e,this}draw(e,r){const s=e.checkContext();this.setRendered();const o=this.render_options,a=o.glyph_font_scale/38,l=this.tempo.name,c=this.tempo.duration,u=this.tempo.dots,d=this.tempo.bpm,g=this.font;let m=this.x+this.shift_x+r;const y=e.getYForTopText(1)+this.shift_y;if(s.save(),s.openGroup("stavetempo",null,{}),l&&(s.setFont(g.family,g.size,g.weight),s.fillText(l,m,y),m+=s.measureText(l).width),c&&d){s.setFont(g.family,g.size,"normal"),l&&(m+=s.measureText(" ").width,s.fillText("(",m,y),m+=s.measureText("(").width);const b=Flow.getGlyphProps(c);if(m+=3*a,Glyph.renderGlyph(s,m,y,o.glyph_font_scale,b.code_head),m+=b.getWidth()*a,b.stem){let S=30;b.beam_count&&(S+=3*(b.beam_count-1)),S*=a;const A=y-S;s.fillRect(m-a,A,a,S),b.flag&&(Glyph.renderGlyph(s,m,A,o.glyph_font_scale,b.code_flag_upstem),u||(m+=6*a))}for(let S=0;S=e.line?u.above:u.below)}this.placeGlyphOnLine(o,this.stave,e.line),this.glyphs.push(o);const l=this.xPositions[this.xPositions.length-1],c=o.getMetrics().width+a;this.xPositions.push(l+c),this.width+=c}cancelKey(e){return this.formatted=!1,this.cancelKeySpec=e,this}convertToCancelAccList(e){const r=Flow.keySignature(e),s=this.accList.length>0&&r.length>0&&r[0].type!==this.accList[0].type,o=s?r.length:r.length-this.accList.length;if(o<1)return;const a=[];for(let l=0;l0?e[0].type:null;let s;if(this.cancelKeySpec&&(s=this.convertToCancelAccList(this.cancelKeySpec)),this.alterKeySpec&&this.convertToAlterAccList(this.alterKeySpec),this.accList.length>0){const o=(this.position===StaveModifier.Position.END?this.stave.endClef:this.stave.clef)||this.stave.clef;s&&this.convertAccLines(o,s.type,s.accList),this.convertAccLines(o,r,e);for(let a=0;a0){const e=this.stave.context.openGroup("keysignature");for(let r=0;r{const e=i.split("/").filter(r=>r!=="");if(e.length!==2)throw new Vex.RERR("BadTimeSignature",`Invalid time spec: ${i}. Must be in the form "/"`);e.forEach(r=>{if(isNaN(Number(r)))throw new Vex.RERR("BadTimeSignature",`Invalid time spec: ${i}. Must contain two valid numbers.`)})};class TimeSignature extends StaveModifier{static get CATEGORY(){return"timesignatures"}static get glyphs(){return{C:{code:"v41",point:40,line:2},"C|":{code:"vb6",point:40,line:2}}}constructor(e=null,r=15,s=!0){if(super(),this.setAttribute("type","TimeSignature"),this.validate_args=s,e===null)return;const o=r;this.point=40,this.topLine=2,this.bottomLine=4,this.setPosition(StaveModifier.Position.BEGIN),this.setTimeSig(e),this.setWidth(this.timeSig.glyph.getMetrics().width),this.setPadding(o)}getCategory(){return TimeSignature.CATEGORY}parseTimeSpec(e){if(e==="C"||e==="C|"){const{line:o,code:a,point:l}=TimeSignature.glyphs[e];return{line:o,num:!1,glyph:new Glyph(a,l)}}this.validate_args&&assertIsValidFraction(e);const[r,s]=e.split("/").map(o=>o.split(""));return{num:!0,glyph:this.makeTimeSignatureGlyph(r,s)}}makeTimeSignatureGlyph(e,r){const s=new Glyph("v0",this.point);s.topGlyphs=[],s.botGlyphs=[];let o=0;for(let m=0;ma?o:a,c=s.getMetrics().x_min;s.getMetrics=()=>({x_min:c,x_max:c+l,width:l});const u=(l-o)/2,d=(l-a)/2,g=this;return s.renderToStave=function(y){let b=y+u;for(let S=0;Sr.visible).filter(Boolean).length}formatBegModifiers(e){let r=0;e.forEach(s=>{s.getNoteStartX()>r&&(r=s.getNoteStartX())}),e.forEach(s=>{s.setNoteStartX(r)}),r=0,e.forEach(s=>{s.getModifiers(StaveModifier.Position.BEGIN,Barline.CATEGORY).forEach(a=>{a.getType()==Barline.type.REPEAT_BEGIN&&a.getX()>r&&(r=a.getX())})}),e.forEach(s=>{s.getModifiers(StaveModifier.Position.BEGIN,Barline.CATEGORY).forEach(a=>{a.getType()==Barline.type.REPEAT_BEGIN&&a.setX(r)})}),r=0,e.forEach(s=>{s.getModifiers(StaveModifier.Position.BEGIN,TimeSignature.CATEGORY).forEach(a=>{a.getX()>r&&(r=a.getX())})}),e.forEach(s=>{s.getModifiers(StaveModifier.Position.BEGIN,TimeSignature.CATEGORY).forEach(a=>{a.setX(r)})})}getOptions(){return this.options}setNoteStartX(e){return this.formatted||this.format(),this.setStartX(e),this}setStartX(e){this.start_x=e}getNoteStartX(){return this.formatted||this.format(),this.start_x}getNoteEndX(){return this.formatted||this.format(),this.end_x}getTieStartX(){return this.start_x}getTieEndX(){return this.x+this.width}getX(){return this.x}getNumLines(){return this.options.num_lines}setNumLines(e){return this.options.num_lines=parseInt(e,10),this.resetLines(),this}setY(e){return this.y=e,this}getTopLineTopY(){return this.getYForLine(0)-Flow.STAVE_LINE_THICKNESS/2}getBottomLineBottomY(){return this.getLines()===2?this.getYForLine(6)+Flow.STAVE_LINE_THICKNESS/2:this.getYForLine(this.getNumLines()-1)+Flow.STAVE_LINE_THICKNESS/2}setX(e){const r=e-this.x;this.formatted=!1,this.x=e,this.start_x+=r,this.end_x+=r;for(let s=0;ss.getWidth()&&(r-=s.getWidth()),r}setRepetitionTypeLeft(e,r){return this.modifiers.push(new Repetition$1(e,this.x,r)),this}setRepetitionTypeRight(e,r){return this.modifiers.push(new Repetition$1(e,this.x,r)),this}setVoltaType(e,r,s){if(e===2)volta.type===2&&volta.stave.modifiers.push(new Volta(volta.type,volta.number_t,volta.x,volta.y)),volta={stave:this,type:e,number_t:r,MeasureNumber:this.MeasureNumber,y:s,x:this.x};else if(e===4){let o=this.MeasureNumber-volta.MeasureNumber,a=Math.max(volta.y,s);for(let l=0;l<=o;l++)voltaMeasureNumber[volta.MeasureNumber+l]={type:l===0?2:l===o?4:0,number_t:r,y:a};volta={}}else this.modifiers.push(new Volta(e,r,this.x,s));return this}drawVolta(){let e=voltaMeasureNumber[this.MeasureNumber];e&&(this.modifiers.push(new Volta(e.type,e.number_t,this.x,e.y)),delete voltaMeasureNumber[this.MeasureNumber]),volta.type&&volta.MeasureNumber==this.MeasureNumber&&(this.modifiers.push(new Volta(volta.type,volta.number_t,this.x,volta.y)),volta={})}setSection(e,r,s=0,o=12){const a=new StaveSection(e,this.x+s,r);return a.font.size=o,this.modifiers.push(a),this}setTempo(e,r){return this.modifiers.push(new StaveTempo(e,this.x,r)),this}setText(e,r,s){let o=new StaveText(e,r,s);return o.setFont({family:"Arial",size:14,weight:"normal"}),this.modifiers.push(o),this}getHeight(){return this.height}getSpacingBetweenLines(){return this.options.spacing_between_lines_px}getBoundingBox(){return new BoundingBox(this.x,this.y,this.width,this.getBottomY()-this.y)}getBottomY(){const e=this.options,r=e.spacing_between_lines_px;return this.getYForLine(e.num_lines)+e.space_below_staff_ln*r}getBottomLineY(){return this.getYForLine(this.options.num_lines)}getYForLine(e){const r=this.options,s=r.spacing_between_lines_px,o=r.space_above_staff_ln;return this.y+e*s+o*s}getLineForY(e){const r=this.options,s=r.spacing_between_lines_px,o=r.space_above_staff_ln;return(e-this.y)/s-o}getYForTopText(e){const r=e||0;return this.getYForLine(-r-this.options.top_text_position)}getYForBottomText(e){const r=e||0;return this.getYForLine(this.options.bottom_text_position+r)}getYForNote(e){const r=this.options,s=r.spacing_between_lines_px,o=r.space_above_staff_ln;return this.y+o*s+5*s-e*s}getYForGlyphs(){return this.getYForLine(3)}addModifier(e,r,s){return r!==void 0&&e.setPosition(r),s&&(this.timeSignature.numerator=s.numerator,this.timeSignature.denominator=s.denominator),e.setStave(this),this.formatted=!1,this.modifiers.push(e),this}addEndModifier(e){return this.addModifier(e,StaveModifier.Position.END),this}setBegBarType(e){const{SINGLE:r,REPEAT_BEGIN:s,NONE:o}=Barline.type;return(e===r||e===s||e===o)&&(this.modifiers[0].setType(e),this.formatted=!1),this}setEndBarType(e){return e!==Barline.type.REPEAT_BEGIN&&(this.modifiers[1].setType(e),this.formatted=!1),this}setClef(e,r,s,o){o===void 0&&(o=StaveModifier.Position.BEGIN),o===StaveModifier.Position.END?this.endClef=e:this.clef=e;const a=this.getModifiers(o,Clef.CATEGORY);return a.length===0?this.addClef(e,r,s,o):a[0].setType(e,r,s),this}setEndClef(e,r,s){return this.setClef(e,r,s,StaveModifier.Position.END),this}setKeySignature(e,r,s){this.options.keySignature=e,s===void 0&&(s=StaveModifier.Position.BEGIN);const o=this.getModifiers(s,KeySignature.CATEGORY);return o.length===0?this.options.DYMusicScoreType!=="jianpu"&&this.addKeySignature(e,r,s):o[0].setKeySig(e,r),this}setEndKeySignature(e,r){return this.setKeySignature(e,r,StaveModifier.Position.END),this}setTimeSignature(e,r,s){s===void 0&&(s=StaveModifier.Position.BEGIN);const o=this.getModifiers(s,TimeSignature.CATEGORY);return o.length===0?this.addTimeSignature(e,r,s):o[0].setTimeSig(e),this}setEndTimeSignature(e,r){return this.setTimeSignature(e,r,StaveModifier.Position.END),this}addKeySignature(e,r,s){return s===void 0&&(s=StaveModifier.Position.BEGIN),this.addModifier(new KeySignature(e,r).setPosition(s),s),this}addClef(e,r,s,o){return o===void 0||o===StaveModifier.Position.BEGIN?this.clef=e:o===StaveModifier.Position.END&&(this.endClef=e),this.addModifier(new Clef(e,r,s),o),this}addEndClef(e,r,s){return this.addClef(e,r,s,StaveModifier.Position.END),this}addTimeSignature(e,r,s){return this.addModifier(new TimeSignature(e,r),s),this}addEndTimeSignature(e,r){return this.addTimeSignature(e,r,StaveModifier.Position.END),this}addTrebleGlyph(){return this.addClef("treble"),this}getModifiers(e,r){return e===void 0&&r===void 0?this.modifiers:this.modifiers.filter(s=>(e===void 0||e===s.getPosition())&&(r===void 0||r===s.getCategory()))}sortByCategory(e,r){for(let s=e.length-1;s>=0;s--)for(let o=0;or[e[o+1].getCategory()]){const a=e[o];e[o]=e[o+1],e[o+1]=a}}format(){const e=this.modifiers[0],r=this.modifiers[1],s=this.getModifiers(StaveModifier.Position.BEGIN),o=this.getModifiers(StaveModifier.Position.END);this.sortByCategory(s,{barlines:0,clefs:1,keysignatures:2,timesignatures:3}),this.sortByCategory(o,{timesignatures:0,keysignatures:1,barlines:2,clefs:3}),s.length>1&&e.getType()===Barline.type.REPEAT_BEGIN&&(s.push(s.splice(0,1)[0]),s.splice(0,0,new Barline(Barline.type.SINGLE))),o.indexOf(r)>0&&o.splice(0,0,new Barline(Barline.type.NONE));let a,l,c,u=0,d=this.x;for(let y=0;yd?d=b:c.setX(d),d+=a,l+a===0&&u--}d>this.start_x&&this.setStartX(d),d=this.x+this.width;const g={left:0,right:0,paddingRight:0,paddingLeft:0};let m=0;for(let y=0;y{l.includes(u)?c.visible=!0:c.visible=!1})}for(let l=0;lthis.drawStaveTempo()),this.measure>0){this.context.save(),this.context.setFont(this.font.family,this.font.size,this.font.weight);const l=this.context.measureText(""+this.measure).width;o=this.getYForTopText(0)+3,this.context.fillText(""+this.measure,this.x-l/2,o),this.context.restore()}return this}drawStaveTempo(){if(!this.staveTempos.length)return;const e=document.querySelector(`#${this.attrs.id}`);if(!e)return;const r=e.parentElement.getBBox(),s=this.getYForLine(0),o=e.parentElement.parentElement.querySelectorAll(".vf-curve");if(o.length){const a=this.x+this.staveTempos[0].shift_x+this.getModifierXShift(0),l=this.getYForTopText(1)+r.y-s+5;o.forEach(c=>{const u=c.getBBox();u.x-10a&&u.y-10l&&(r.y=u.y+5)})}for(let a=0;a=0&&this.timeSignature.numerator){let e=40,r=0;this.MeasureNumber<2&&(e=70,r=-72),this.setText(`${this.timeSignature.numerator}`,1,{justification:1,shift_x:e,shift_y:r-13}),this.setText("ᅳ",1,{justification:1,shift_x:e+3,shift_y:r-2}),this.setText(`${this.timeSignature.denominator}`,1,{justification:1,shift_x:e,shift_y:r+8})}}drawVertical(e,r){this.drawVerticalFixed(this.x+e,r)}drawVerticalFixed(e,r){this.checkContext();const s=this.getYForLine(0),o=this.getYForLine(this.options.num_lines-1);r&&this.context.fillRect(e-3,s,1,o-s+1),this.context.fillRect(e,s,1,o-s+1)}drawVerticalBar(e){this.drawVerticalBarFixed(this.x+e,!1)}drawVerticalBarFixed(e){this.checkContext();const r=this.getYForLine(0),s=this.getYForLine(this.options.num_lines-1);this.context.fillRect(e,r,1,s-r+1)}getConfigForLines(){return this.options.line_config}setConfigForLine(e,r){if(e>=this.options.num_lines||e<0)throw new Vex.RERR("StaveConfigError","The line number must be within the range of the number of lines in the Stave.");if(r.visible===void 0)throw new Vex.RERR("StaveConfigError","The line configuration object is missing the 'visible' property.");if(typeof r.visible!="boolean")throw new Vex.RERR("StaveConfigError","The line configuration objects 'visible' property must be true or false.");return this.options.line_config[e]=r,this}setConfigForLines(e){if(e.length!==this.options.num_lines)throw new Vex.RERR("StaveConfigError","The length of the lines configuration array must match the number of lines in the Stave");for(const r in e)e[r]||(e[r]=this.options.line_config[r]),Vex.Merge(this.options.line_config[r],e[r]);return this.options.line_config=e,this}}class TabStave extends Stave{constructor(e,r,s,o){const a={spacing_between_lines_px:13,num_lines:6,top_text_position:1};Vex.Merge(a,o),super(e,r,s,a),this.setAttribute("type","TabStave")}getYForGlyphs(){return this.getYForLine(2.5)}addTabGlyph(){return this.addClef("tab"),this}}function getUnusedStringGroups(i,e){const r=[];let s=[];for(let o=1;o<=i;o++)e.indexOf(o)>-1?(r.push(s),s=[]):s.push(o);return s.length>0&&r.push(s),r}function getPartialStemLines(i,e,r,s){const o=s!==1,a=s!==-1,l=r.getSpacingBetweenLines(),c=r.getNumLines(),u=[];return e.forEach(d=>{const g=d.indexOf(c)>-1,m=d.indexOf(1)>-1;if(o&&m||a&&g)return;d.length===1&&d.push(d[0]);const y=[];d.forEach((b,S,A)=>{const E=b===1,x=b===c;let P=r.getYForLine(b-1);S===0&&!E?P-=l/2-1:S===A.length-1&&!x&&(P+=l/2-1),y.push(P),s===1&&E?y.push(i-2):s===-1&&x&&y.push(i+2)}),u.push(y.sort((b,S)=>b-S))}),u}let TabNote$1=class ki extends StemmableNote{static get CATEGORY(){return"tabnotes"}constructor(e,r){if(super(e),this.setAttribute("type","TabNote"),this.ghost=!1,this.positions=e.positions,Vex.Merge(this.render_options,{glyph_font_scale:Flow.DEFAULT_TABLATURE_FONT_SCALE,draw_stem:r,draw_dots:r,draw_stem_through_stave:!1,y_shift:0,scale:1,font:"10pt Arial"}),this.glyph=Flow.getGlyphProps(this.duration,this.noteType),!this.glyph)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization data (No glyph found): ${JSON.stringify(e)}`);this.buildStem(),e.stem_direction?this.setStemDirection(e.stem_direction):this.setStemDirection(Stem.UP),this.ghost=!1,this.updateWidth()}reset(){this.stave&&this.setStave(this.stave)}getCategory(){return ki.CATEGORY}setGhost(e){return this.ghost=e,this.updateWidth(),this}hasStem(){return this.render_options.draw_stem}getStemExtension(){const e=this.getGlyph();return this.stem_extension_override!=null?this.stem_extension_override:e?this.getStemDirection()===1?e.tabnote_stem_up_extension:e.tabnote_stem_down_extension:0}addDot(){const e=new Dot;return this.dots+=1,this.addModifier(e,0)}updateWidth(){this.glyphs=[],this.width=0;for(let e=0;ethis.width}setStave(e){super.setStave(e),this.context=e.context;let r;if(this.context){const o=this.context;for(this.width=0,r=0;ra.width),this.width=Math.max(a.getWidth(),this.width)}this.glyph.getWidth=()=>this.width}const s=this.positions.map(({str:o})=>e.getYForLine(o-1));return this.setYs(s),this.stem&&this.stem.setYBounds(this.getStemY(),this.getStemY()),this}getPositions(){return this.positions}addToModifierContext(e){this.setModifierContext(e);for(let r=0;r{e.getCategory()==="dots"&&!this.render_options.draw_dots||(e.setContext(this.context),e.drawWithStyle())})}drawStemThrough(){const e=this.getStemX(),r=this.getStemY(),s=this.context,o=this.render_options.draw_stem_through_stave;if(this.render_options.draw_stem&&o){const l=this.stave.getNumLines(),c=this.positions.map(g=>g.str),u=getUnusedStringGroups(l,c),d=getPartialStemLines(r,u,this.getStave(),this.getStemDirection());s.save(),s.setLineWidth(Stem.WIDTH),d.forEach(g=>{g.length!==0&&(s.beginPath(),s.moveTo(e,g[0]),s.lineTo(e,g[g.length-1]),s.stroke(),s.closePath())}),s.restore()}}drawPositions(){const e=this.context,r=this.getAbsoluteX(),s=this.ys;for(let o=0;oparseInt(o,10)?TabSlide.SLIDE_DOWN:TabSlide.SLIDE_UP}this.slide_direction=r,this.render_options.cp1=11,this.render_options.cp2=14,this.render_options.y_shift=.5,this.setFont({font:"Times",size:10,style:"bold italic"}),this.setNotes(e)}renderTie(e){if(e.first_ys.length===0||e.last_ys.length===0)throw new Vex.RERR("BadArguments","No Y-values to render");const r=this.context,s=e.first_x_px,o=e.first_ys,a=e.last_x_px,l=this.slide_direction;if(l!==TabSlide.SLIDE_UP&&l!==TabSlide.SLIDE_DOWN)throw new Vex.RERR("BadSlide","Invalid slide direction");for(let c=0;cthis.numStrings)throw new Vex.RERR("BadArguments",`String number must be between 1 and ${this.numStrings}:${e}`);return this.tuningValues[r-1]}getValueForFret(e,r){const s=this.getValueForString(r),o=parseInt(e,10);if(o<0)throw new Vex.RERR("BadArguments","Fret number must be 0 or higher: "+e);return s+o}getNoteForFret(e,r){const s=this.getValueForFret(e,r),o=Math.floor(s/12),a=s%12;return Flow.integerToNote(a)+"/"+o}}class KeyManager{constructor(e){this.music=new Music,this.setKey(e)}setKey(e){return this.key=e,this.reset(),this}getKey(){return this.key}reset(){if(this.keyParts=this.music.getKeyParts(this.key),this.keyString=this.keyParts.root,this.keyParts.accidental&&(this.keyString+=this.keyParts.accidental),!Music.scaleTypes[this.keyParts.type])throw new Vex.RERR("BadArguments",`Unsupported key type: ${this.key}`);this.scale=this.music.getScaleTones(this.music.getNoteValue(this.keyString),Music.scaleTypes[this.keyParts.type]),this.scaleMap={},this.scaleMapByValue={},this.originalScaleMapByValue={};const r=Music.root_indices[this.keyParts.root];for(let s=0;s{const s=TextDynamics.GLYPHS[r];if(!s)throw new Vex.RERR("Invalid dynamics character: "+r);const o=this.render_options.glyph_font_size,a=new Glyph(s.code,o);this.glyphs.push(a),e+=s.width}),this.setWidth(e),this.preFormatted=!0,this}draw(){this.setRendered();const e=this.getAbsoluteX(),r=this.stave.getYForLine(this.line+-3);L$7("Rendering Dynamics: ",this.sequence);let s=e;this.glyphs.forEach((o,a)=>{const l=this.sequence[a];o.render(this.context,s,r),s+=TextDynamics.GLYPHS[l].width})}}function drawArrowHead(i,e,r,s,o,a,l){i.beginPath(),i.moveTo(e,r),i.lineTo(s,o),i.lineTo(a,l),i.lineTo(e,r),i.closePath(),i.fill()}function drawArrowLine(i,e,r,s){const o=s.draw_start_arrow&&s.draw_end_arrow,a=e.x,l=e.y,c=r.x,u=r.y,d=Math.sqrt((c-a)*(c-a)+(u-l)*(u-l)),g=(d-s.arrowhead_length/3)/d;let m,y,b,S;s.draw_end_arrow||o?(m=Math.round(a+(c-a)*g),y=Math.round(l+(u-l)*g)):(m=c,y=u),s.draw_start_arrow||o?(b=a+(c-a)*(1-g),S=l+(u-l)*(1-g)):(b=a,S=l),s.color&&(i.setStrokeStyle(s.color),i.setFillStyle(s.color)),i.beginPath(),i.moveTo(b,S),i.lineTo(m,y),i.stroke(),i.closePath();const A=Math.atan2(u-l,c-a),E=Math.abs(s.arrowhead_length/Math.cos(s.arrowhead_angle));let x,P,T,C,M,B;(s.draw_end_arrow||o)&&(x=A+Math.PI+s.arrowhead_angle,T=c+Math.cos(x)*E,C=u+Math.sin(x)*E,P=A+Math.PI-s.arrowhead_angle,M=c+Math.cos(P)*E,B=u+Math.sin(P)*E,drawArrowHead(i,T,C,c,u,M,B)),(s.draw_start_arrow||o)&&(x=A+s.arrowhead_angle,T=a+Math.cos(x)*E,C=l+Math.sin(x)*E,P=A-s.arrowhead_angle,M=a+Math.cos(P)*E,B=l+Math.sin(P)*E,drawArrowHead(i,T,C,a,l,M,B))}class StaveLine extends Element$1{static get TextVerticalPosition(){return{TOP:1,BOTTOM:2}}static get TextJustification(){return{LEFT:1,CENTER:2,RIGHT:3}}constructor(e){super(),this.setAttribute("type","StaveLine"),this.notes=e,this.text="",this.font={family:"Arial",size:10,weight:""},this.render_options={padding_left:4,padding_right:3,line_width:1,line_dash:null,rounded_end:!0,color:null,draw_start_arrow:!1,draw_end_arrow:!1,arrowhead_length:10,arrowhead_angle:Math.PI/8,text_position_vertical:StaveLine.TextVerticalPosition.TOP,text_justification:StaveLine.TextJustification.CENTER},this.setNotes(e)}setFont(e){return this.font=e,this}setText(e){return this.text=e,this}setNotes(e){if(!e.first_note&&!e.last_note)throw new Vex.RuntimeError("BadArguments","Notes needs to have either first_note or last_note set.");if(e.first_indices||(e.first_indices=[0]),e.last_indices||(e.last_indices=[0]),e.first_indices.length!==e.last_indices.length)throw new Vex.RuntimeError("BadArguments","Connected notes must have similar index sizes");return this.first_note=e.first_note,this.first_indices=e.first_indices,this.last_note=e.last_note,this.last_indices=e.last_indices,this}applyLineStyle(){const e=this.checkContext(),r=this.render_options;r.line_dash&&e.setLineDash(r.line_dash),r.line_width&&e.setLineWidth(r.line_width),r.rounded_end?e.setLineCap("round"):e.setLineCap("square")}applyFontStyle(){const e=this.checkContext();this.font&&e.setFont(this.font.family,this.font.size,this.font.weight),this.render_options.color&&(e.setStrokeStyle(this.render_options.color),e.setFillStyle(this.render_options.color))}draw(){const e=this.checkContext();this.setRendered();const r=this.first_note,s=this.last_note,o=this.render_options;e.save(),this.applyLineStyle();let a,l;this.first_indices.forEach((y,b)=>{const S=this.last_indices[b];a=r.getModifierStartXY(2,y),l=s.getModifierStartXY(1,S);const A=a.y>l.y;a.x+=r.getMetrics().modRightPx+o.padding_left,l.x-=s.getMetrics().modLeftPx+o.padding_right;const E=r.getGlyph().getWidth();r.getKeyProps()[y].displaced&&r.getStemDirection()===1&&(a.x+=E+o.padding_left),s.getKeyProps()[S].displaced&&s.getStemDirection()===-1&&(l.x-=E+o.padding_right),a.y+=A?-3:1,l.y+=A?2:0,drawArrowLine(e,a,l,this.render_options)}),e.restore();const c=e.measureText(this.text).width,u=o.text_justification;let d=0;u===StaveLine.TextJustification.LEFT?d=a.x:u===StaveLine.TextJustification.CENTER?d=(l.x-a.x)/2+a.x-c/2:u===StaveLine.TextJustification.RIGHT&&(d=l.x-c);let g;const m=o.text_position_vertical;return m===StaveLine.TextVerticalPosition.TOP?g=r.getStave().getYForTopText():m===StaveLine.TextVerticalPosition.BOTTOM&&(g=r.getStave().getYForBottomText(Flow.TEXT_HEIGHT_OFFSET_HACK)),e.save(),this.applyFontStyle(),e.fillText(this.text,d,g),e.restore(),this}}function L$6(...i){PedalMarking.DEBUG&&Vex.L("Vex.Flow.PedalMarking",i)}function drawPedalGlyph(i,e,r,s,o){const a=PedalMarking.GLYPHS[i];new Glyph(a.code,o).render(e,r+a.x_shift,s+a.y_shift)}class PedalMarking extends Element$1{static get GLYPHS(){return{pedal_depress:{code:"v36",x_shift:-10,y_shift:0},pedal_release:{code:"v5d",x_shift:-2,y_shift:3}}}static get Styles(){return{TEXT:1,BRACKET:2,MIXED:3,MIXED_OPEN_END:4,BRACKET_OPEN_BEGIN:5,BRACKET_OPEN_END:6,BRACKET_OPEN_BOTH:7}}static get StylesString(){return{text:PedalMarking.Styles.TEXT,bracket:PedalMarking.Styles.BRACKET,mixed:PedalMarking.Styles.MIXED,mixed_open_end:PedalMarking.Styles.MIXED_OPEN_END,bracket_open_begin:PedalMarking.Styles.BRACKET_OPEN_BEGIN,bracket_open_end:PedalMarking.Styles.BRACKET_OPEN_END,bracket_open_both:PedalMarking.Styles.BRACKET_OPEN_BOTH}}static createSustain(e){return new PedalMarking(e)}static createSostenuto(e){const r=new PedalMarking(e);return r.setStyle(PedalMarking.Styles.MIXED),r.setCustomText("Sost. Ped."),r}static createUnaCorda(e){const r=new PedalMarking(e);return r.setStyle(PedalMarking.Styles.TEXT),r.setCustomText("una corda","tre corda"),r}constructor(e){super(),this.setAttribute("type","PedalMarking"),this.EndsStave=!1,this.ChangeBegin=!1,this.ChangeEnd=!1,this.notes=e,this.style=PedalMarking.TEXT,this.line=0,this.custom_depress_text="",this.custom_release_text="",this.font={family:"Times New Roman",size:12,weight:"italic bold"},this.render_options={bracket_height:10,text_margin_right:6,bracket_line_width:1,glyph_point_size:40,color:"black"}}setEndStave(e){if(this.endStave=e,this.endStaveAddedWidth=0,this.startMargin=0,this.endMargin=0,Array.isArray(this.endStave.modifiers))for(let r=0;r3)throw new Vex.RERR("InvalidParameter","The style must be one found in PedalMarking.Styles");return this.style=e,this}setLine(e){return this.line=e,this}drawBracketed(){const e=this.context;let r=!1,s,o;const a=this;this.notes.forEach((l,c,u)=>{r=!r;let d=0;if(l?(d=l.getNoteHeadBeginX(),this.BeginsStave&&(d=l.getStave().getNoteStartX())):d=this.endStave.end_x+this.endStaveAddedWidth,this.EndsStave)r?this.ChangeBegin&&(d=l.getAbsoluteX()):(l?this.ChangeEnd?d=l.getAbsoluteX():d=l.getStave().end_x+this.endStaveAddedWidth-a.render_options.text_margin_right:d=this.endStave.end_x+this.endStaveAddedWidth-a.render_options.text_margin_right,this.endMargin=-a.render_options.text_margin_right);else if(l)if(r)this.ChangeBegin&&(d=l.getAbsoluteX());else switch(a.style){case PedalMarking.Styles.BRACKET_OPEN_END:case PedalMarking.Styles.BRACKET_OPEN_BOTH:case PedalMarking.Styles.MIXED_OPEN_END:d=l.getNoteHeadEndX();break;default:this.ChangeEnd?d=l.getAbsoluteX():(d=l.getNoteHeadBeginX()-a.render_options.text_margin_right,this.startMargin=-a.render_options.text_margin_right);break}let g=this.endStave;l&&(g=l.getStave());let m=g.getYForBottomText(a.line+3);o&&o>m&&(m=o);const y=u[c+1]===l,b=u[c-1]===l;let S=0;if(r)if(S=b?5:0,(a.style===PedalMarking.Styles.MIXED||a.style===PedalMarking.Styles.MIXED_OPEN_END)&&!b)if(a.custom_depress_text){const A=e.measureText(a.custom_depress_text).width;e.fillText(a.custom_depress_text,d-A/2,m),S=A/2+a.render_options.text_margin_right}else drawPedalGlyph("pedal_depress",e,d,m,a.render_options.glyph_point_size),S=20+a.render_options.text_margin_right;else e.beginPath(),a.style===PedalMarking.Styles.BRACKET_OPEN_BEGIN||a.style===PedalMarking.Styles.BRACKET_OPEN_BOTH?e.moveTo(d+S,m):(this.ChangeBegin&&(d+=5),e.moveTo(d,m-a.render_options.bracket_height),this.ChangeBegin&&(d+=5),e.lineTo(d+S,m)),e.stroke(),e.closePath();else S=y&&!this.EndsStave?-5:0,e.beginPath(),e.moveTo(s,o),e.lineTo(d+S,m),a.style!==PedalMarking.Styles.BRACKET_OPEN_END&&a.style!==PedalMarking.Styles.MIXED_OPEN_END&&a.style!==PedalMarking.Styles.BRACKET_OPEN_BOTH&&(this.ChangeEnd&&(d+=5),e.lineTo(d,m-a.render_options.bracket_height)),e.stroke(),e.closePath();s=d+S,o=m})}drawText(){const e=this.context;let r=!1;const s=this,o=s.render_options.glyph_point_size;this.notes.forEach(a=>{if(!a)return;r=!r;const l=a.getStave(),c=a.getAbsoluteX(),u=l.getYForBottomText(s.line+3);let d=0;r?s.custom_depress_text?(d=e.measureText(s.custom_depress_text).width,e.fillText(s.custom_depress_text,c-d/2,u)):drawPedalGlyph("pedal_depress",e,c,u,o):s.custom_release_text?(d=e.measureText(s.custom_release_text).width,e.fillText(s.custom_release_text,c-d/2,u)):drawPedalGlyph("pedal_release",e,c,u,o)})}draw(){const e=this.checkContext();this.setRendered(),e.save(),e.setStrokeStyle(this.render_options.color),e.setFillStyle(this.render_options.color),e.setFont(this.font.family,this.font.size,this.font.weight),L$6("Rendering Pedal Marking"),this.style===PedalMarking.Styles.BRACKET||this.style===PedalMarking.Styles.MIXED||this.style===PedalMarking.Styles.MIXED_OPEN_END||this.style===PedalMarking.Styles.BRACKET_OPEN_BEGIN||this.style===PedalMarking.Styles.BRACKET_OPEN_END||this.style===PedalMarking.Styles.BRACKET_OPEN_BOTH?(e.setLineWidth(this.render_options.bracket_line_width),this.drawBracketed()):this.style===PedalMarking.Styles.TEXT&&this.drawText(),e.restore()}}function L$5(...i){TextBracket.DEBUG&&Vex.L("Vex.Flow.TextBracket",i)}class TextBracket extends Element$1{static get Positions(){return{TOP:1,BOTTOM:-1}}static get PositionString(){return{top:TextBracket.Positions.TOP,bottom:TextBracket.Positions.BOTTOM}}constructor({start:e,stop:r,text:s="",superscript:o="",position:a=TextBracket.Positions.TOP}){super(),this.setAttribute("type","TextBracket"),this.start=e,this.stop=r,this.text=s,this.superscript=o,this.position=typeof a=="string"?TextBracket.PositionString[a]:a,this.line=1,this.font={family:"Serif",size:15,weight:"italic"},this.render_options={dashed:!0,dash:[5],color:"black",line_width:1,show_bracket:!0,bracket_height:8,underline_superscript:!0}}applyStyle(e){return e.setFont(this.font.family,this.font.size,this.font.weight),e.setStrokeStyle(this.render_options.color),e.setFillStyle(this.render_options.color),e.setLineWidth(this.render_options.line_width),this}setDashed(e,r){return this.render_options.dashed=e,r&&(this.render_options.dash=r),this}setFont(e){return this.font={...this.font,...e},this}setLine(e){return this.line=e,this}draw(){const e=this.context;this.setRendered();let r=0;switch(this.position){case TextBracket.Positions.TOP:r=this.start.getStave().getYForTopText(this.line);break;case TextBracket.Positions.BOTTOM:r=this.start.getStave().getYForBottomText(this.line+Flow.TEXT_HEIGHT_OFFSET_HACK);break;default:throw new Vex.RERR("InvalidPosition",`The position ${this.position} is invalid`)}const s={x:this.start.getAbsoluteX(),y:r},o={x:this.stop.getAbsoluteX(),y:r};L$5("Rendering TextBracket: start:",s,"stop:",o,"y:",r);const a=this.render_options.bracket_height*this.position;e.save(),this.applyStyle(e),e.fillText(this.text,s.x,s.y);let l=e.measureText(this.text).width;l>0||(l=10*this.text.length);let c=e.measureText("M").width;c>0||(c=20);const u=s.y-c/2.5;e.setFont(this.font.family,this.font.size/1.4,this.font.weight),e.fillText(this.superscript,s.x+l+1,u);let d=e.measureText(this.superscript).width;d>0||(d=12,this.superscript.includes("m")&&(d+=5));let g=e.measureText("M").width;g>0||(g=10);let m=s.x,y=u,b=o.x+this.stop.getGlyph().getWidth();this.position===TextBracket.Positions.TOP?(m+=l+d+5,y-=g/2.7):this.position===TextBracket.Positions.BOTTOM&&(y+=g/2.7,m+=l+2,this.render_options.underline_superscript||(m+=d)),this.render_options.dashed?(b0||r===!0;return r&&!(a>0)&&(this.pos=o),c?this.matchSuccess():this.matchFail(o),{success:c,results:s,numMatches:a}}expectZeroOrMore(e){return this.expectOneOrMore(e,!0)}expect(e){L$2("Evaluating rules:",e);let r;if(!e)throw new X$2("Invalid Rule: "+e,e);const s=e.bind(this.grammar)();if(s.token)r=this.matchToken(s.token,s.noSpace===!0),r.success&&(this.pos+=r.incrementPos);else if(s.expect)s.oneOrMore?r=this.expectOneOrMore(s):s.zeroOrMore?r=this.expectZeroOrMore(s):r=this.expectOne(s);else throw new X$2("Bad grammar! No `token` or `expect` property",s);return r.matches=[],r.results&&r.results.forEach(o=>r.matches.push(flattenMatches(o))),s.run&&r.success&&s.run(r),r}}function L$1(...i){EasyScore.DEBUG&&Vex.L("Vex.Flow.EasyScore",i)}const X$1=Vex.MakeException("EasyScoreError");class Grammar{constructor(e){this.builder=e}begin(){return this.LINE}LINE(){return{expect:[this.PIECE,this.PIECES,this.EOL]}}PIECE(){return{expect:[this.CHORDORNOTE,this.PARAMS],run:()=>this.builder.commitPiece()}}PIECES(){return{expect:[this.COMMA,this.PIECE],zeroOrMore:!0}}PARAMS(){return{expect:[this.DURATION,this.TYPE,this.DOTS,this.OPTS]}}CHORDORNOTE(){return{expect:[this.CHORD,this.SINGLENOTE],or:!0}}CHORD(){return{expect:[this.LPAREN,this.NOTES,this.RPAREN],run:e=>this.builder.addChord(e.matches[1])}}NOTES(){return{expect:[this.NOTE],oneOrMore:!0}}NOTE(){return{expect:[this.NOTENAME,this.ACCIDENTAL,this.OCTAVE]}}SINGLENOTE(){return{expect:[this.NOTENAME,this.ACCIDENTAL,this.OCTAVE],run:e=>this.builder.addSingleNote(e.matches[0],e.matches[1],e.matches[2])}}ACCIDENTAL(){return{expect:[this.ACCIDENTALS],maybe:!0}}DOTS(){return{expect:[this.DOT],zeroOrMore:!0,run:e=>this.builder.setNoteDots(e.matches[0])}}TYPE(){return{expect:[this.SLASH,this.MAYBESLASH,this.TYPES],maybe:!0,run:e=>this.builder.setNoteType(e.matches[2])}}DURATION(){return{expect:[this.SLASH,this.DURATIONS],maybe:!0,run:e=>this.builder.setNoteDuration(e.matches[1])}}OPTS(){return{expect:[this.LBRACKET,this.KEYVAL,this.KEYVALS,this.RBRACKET],maybe:!0}}KEYVALS(){return{expect:[this.COMMA,this.KEYVAL],zeroOrMore:!0}}KEYVAL(){const e=r=>r.slice(1,-1);return{expect:[this.KEY,this.EQUALS,this.VAL],run:r=>this.builder.addNoteOption(r.matches[0],e(r.matches[2]))}}VAL(){return{expect:[this.SVAL,this.DVAL],or:!0}}KEY(){return{token:"[a-zA-Z][a-zA-Z0-9]*"}}DVAL(){return{token:'["][^"]*["]'}}SVAL(){return{token:"['][^']*[']"}}NOTENAME(){return{token:"[a-gA-G]"}}OCTAVE(){return{token:"[0-9]+"}}ACCIDENTALS(){return{token:"bbs|bb|bss|bs|b|db|d|##|#|n|\\+\\+-|\\+-|\\+\\+|\\+|k|o"}}DURATIONS(){return{token:"[0-9whq]+"}}TYPES(){return{token:"[rRsSxX]"}}LPAREN(){return{token:"[(]"}}RPAREN(){return{token:"[)]"}}COMMA(){return{token:"[,]"}}DOT(){return{token:"[.]"}}SLASH(){return{token:"[/]"}}MAYBESLASH(){return{token:"[/]?"}}EQUALS(){return{token:"[=]"}}LBRACKET(){return{token:"\\["}}RBRACKET(){return{token:"\\]"}}EOL(){return{token:"$"}}}class Builder{constructor(e){this.factory=e,this.commitHooks=[],this.reset()}reset(e={}){this.options={stem:"auto",clef:"treble"},this.elements={notes:[],accidentals:[]},this.rollingDuration="8",this.resetPiece(),Object.assign(this.options,e)}getFactory(){return this.factory}getElements(){return this.elements}addCommitHook(e){this.commitHooks.push(e)}resetPiece(){L$1("resetPiece"),this.piece={chord:[],duration:this.rollingDuration,dots:0,type:void 0,options:{}}}setNoteDots(e){L$1("setNoteDots:",e),e&&(this.piece.dots=e.length)}setNoteDuration(e){L$1("setNoteDuration:",e),this.rollingDuration=this.piece.duration=e||this.rollingDuration}setNoteType(e){L$1("setNoteType:",e),e&&(this.piece.type=e)}addNoteOption(e,r){L$1("addNoteOption: key:",e,"value:",r),this.piece.options[e]=r}addNote(e,r,s){L$1("addNote:",e,r,s),this.piece.chord.push({key:e,accid:r,octave:s})}addSingleNote(e,r,s){L$1("addSingleNote:",e,r,s),this.addNote(e,r,s)}addChord(e){L$1("startChord"),typeof e[0]!="object"?this.addSingleNote(e[0]):e.forEach(r=>{r&&this.addNote(...r)}),L$1("endChord")}commitPiece(){L$1("commitPiece");const{factory:e}=this;if(!e)return;const r={...this.options,...this.piece.options},{stem:s,clef:o}=r,a=s.toLowerCase()==="auto",l=!a&&s.toLowerCase()==="up"?StaveNote.STEM_UP:StaveNote.STEM_DOWN,{chord:c,duration:u,dots:d,type:g}=this.piece,m=c.map(S=>S.key+"/"+S.octave),y=e.StaveNote({keys:m,duration:u,dots:d,type:g,clef:o,auto_stem:a});a||y.setStemDirection(l);const b=c.map(S=>S.accid||null);b.forEach((S,A)=>{S&&y.addAccidental(A,e.Accidental({type:S}))});for(let S=0;SS(r,y,this)),this.elements.notes.push(y),this.elements.accidentals.concat(b),this.resetPiece()}}function setId({id:i},e){i!==void 0&&e.setAttribute("id",i)}function setClass(i,e){if(!i.class)return;const r=/\s*,\s*/;i.class.split(r).forEach(s=>e.addClass(s))}class EasyScore{constructor(e={}){this.setOptions(e),this.defaults={clef:"treble",time:"4/4",stem:"auto"}}set(e){return Object.assign(this.defaults,e),this}setOptions(e){return this.options={factory:null,builder:null,commitHooks:[setId,setClass,Articulation$1.easyScoreHook],throwOnError:!1,...e},this.factory=this.options.factory,this.builder=this.options.builder||new Builder(this.factory),this.grammar=new Grammar(this.builder),this.parser=new Parser(this.grammar),this.options.commitHooks.forEach(r=>this.addCommitHook(r)),this}setContext(e){return this.factory&&this.factory.setContext(e),this}parse(e,r={}){this.builder.reset(r);const s=this.parser.parse(e);if(!s.success&&this.options.throwOnError)throw new X$1("Error parsing line: "+e,s);return s}beam(e,r={}){return this.factory.Beam({notes:e,options:r}),e}tuplet(e,r={}){return this.factory.Tuplet({notes:e,options:r}),e}notes(e,r={}){return r={clef:this.defaults.clef,stem:this.defaults.stem,...r},this.parse(e,r),this.builder.getElements().notes}voice(e,r){return r={time:this.defaults.time,...r},this.factory.Voice(r).addTickables(e)}addCommitHook(e){return this.builder.addCommitHook(e)}}function initGroup(){return{notes:[],finish:!1,total:0,staveId:""}}let _text_width=null,tone="C",group=initGroup(),_denominator="",_numerator="",ornamentGroup="";class NumberedNote extends StaveNote{static get CATEGORY(){return"numberednotes"}static accidentalAndKey(e){switch(e){case"G":return{4:"#"};case"D":return{1:"#",4:"#"};case"A":return{1:"#",4:"#",5:"#"};case"E":return{1:"#",2:"#",4:"#",5:"#"};case"B":return{1:"#",2:"#",4:"#",5:"#",6:"#"};case"F#":return{1:"#",2:"#",3:"#",4:"#",5:"#",6:"#"};case"C#":return{1:"#",2:"#",3:"#",4:"#",5:"#",6:"#",7:"#"};case"F":return{7:"b"};case"Bb":return{7:"b",3:"b"};case"Eb":return{7:"b",3:"b",6:"b"};case"Ab":return{7:"b",2:"b",3:"b",6:"b"};case"Db":return{7:"b",2:"b",3:"b",5:"b",6:"b"};case"Gb":return{7:"b",1:"b",2:"b",3:"b",5:"b",6:"b"};case"Cb":return{7:"b",1:"b",2:"b",3:"b",4:"b",5:"b",6:"b"};default:return{}}}static accidentalMap(e){switch(e){case"C":return"";case"F":case"Bb":case"Eb":case"Ab":case"Db":case"Gb":case"Cb":return{bb:"b",b:"",n:"#","#":"##"};default:return{b:"bb",n:"b","#":"","##":"#"}}}static get noteLift(){switch(tone){case"G":return["7"];case"D":return["7","3"];case"A":return["7","3","6"];case"E":return["2","6","3","7"];case"B":return["5","2","6","3","7"];case"F#":return["1","5","2","6","3","7"];case"C#":return["4","1","5","2","6","3","7"];case"F":return["4"];case"Bb":return["1","4"];case"Eb":return["5","1","4"];case"Ab":return["2","5","1","4"];case"Db":return["6","2","5","1","4"];case"Gb":return["3","6","2","5","1","4"];case"Cb":return["7","3","6","2","5","1","4"]}}static get longDurationLine(){return{1:3,2:1,6:2}}static get numberedDurationLine(){return{8:1,16:2,32:3,64:4,128:5}}static get durationTime(){return{8:6144,4:4096}}constructor(e){super(e),this.setAttribute("type","NumberedNote"),tone=e.keyString,this.ornament=!!e.ornament,this.line=0,this.keys=e.keys||[],this.fontSize=20,this.offset_x=0,this.offset_y=0,this.note_tones=[],this.duration_lines=0,this.long_duration_lines=0,this.note_size=e.note_size||16;const r=Flow.sanitizeDuration(this.duration);var s=NumberedNote.numberedDurationLine[r.toString()];if(s&&(this.duration_lines=s),s=NumberedNote.longDurationLine[r.toString()],s&&(this.long_duration_lines=s),!_text_width){var o="__$text_wraper$$__";let l=document.createElement("canvas");l.id=o,document.body.append(l);const c=document.getElementById(o),u=c.getContext("2d");u.font="Arial 22px";var a=u.measureText("5");_text_width=a.width+2,document.body.removeChild(c)}}getCategory(){return NumberedNote.CATEGORY}setKeySignature(e){this.keySignature=e}preFormat(){this.preFormatted||(this.modifierContext&&this.modifierContext.preFormat(),this.setWidth(this.full_width),this.setPreFormatted(!0))}filterNote(){if(window&&window.sett&&window.sett.keySignature||!this.keys||!this.keys.length)return;const e=NumberedNote.accidentalMap(tone);if(!e)return;const r=NumberedNote.noteLift;if(!r)return;var s=this.keys[0].split("/"),o=s[0];o==="b"&&(o="R"),o=o.replace(new RegExp("#","g"),""),o=o.replace(new RegExp("n","g"),""),o.length>1&&(o=o.replace(new RegExp("b","g"),""));const a=NumberedNoteHead.numberedNotationMapping[o.toUpperCase()];if(r.includes(a))for(let l=0;l{switch(s.getAttribute("type")){case"Accidental":s.render_options.font_scale=this.note_width*1.4,s.x_shift=2,s.y_shift=this.unit_height/2,this.ornament&&(s.render_options.font_scale=this.note_width,s.x_shift=14,s.y_shift=-10);break;case"Stroke":s.x_shift=-1*e,s.y_shift=1*this.unit_height;break;case"Dot":s.x_shift=r*this.duration_dot_width+7,s.y_shift=1*this.unit_height,r++;break;case"Ornament":s.y_shift=-3;break;default:s.y_shift=1*this.unit_height}s.reset&&s.reset(),e+=s.getWidth()/2})}handleDeleteDot(){for(let e=0;ec),s=r.length?r[0]/r[1]:0;if(this.ornament)return;if(s===0)return this.long_duration_lines=this.intrinsicTicks/e-1,this.long_duration_lines>=_numerator&&(this.long_duration_lines=_numerator-1),_denominator==8&&(this.long_duration_lines=0,_numerator==3&&this.draw_dot(this.context,this.bottom_x+25,this.bottom_y-30,this.dot_width),_numerator==6&&(this.draw_dot(this.context,this.bottom_x+25,this.bottom_y-30,this.dot_width),new Glyph("v0",40).render(this.context,this.bottom_x+40,this.top_y),this.draw_dot(this.context,this.bottom_x+65,this.bottom_y-30,this.dot_width))),group=initGroup();let o={lines:this.duration_lines,duration:s,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,y:this.y,width:this.full_width};s>e*2&&(this.long_duration_lines=parseInt(s/e)-1,this.handleDeleteDot()),ornamentGroup&&(o.x+=this.note_width),group.notes.push(o);let a=group.notes.reduce((c,u)=>c+u.duration,0);a=parseInt(a),a>e&&(a-=e),a>e-10&&au.lines===0).length&&(this.drawDurationLoneLine(),group=initGroup()))}draw(){if(this.checkContext(),!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");let e=this.context;e.save(),e.setFont("Arial",this.note_height,"normal"),this.setAttribute("el",e.openGroup("stavenote",this.getAttribute("id"))),e.openGroup("note",null,{pointerBBox:!0});let r=this.getAbsoluteX()+2.5;this.x=r;let s=this.stave.getYForLine(2)+this.note_height/2;this.y=s,this.buildToneHeads(),this.preFormatModifier(),this.applyStyle(),this.note_tones.forEach(o=>{o!=null&&o.key.includes("X2")?o.draw(e,"isX"):o.draw(e)}),e.openGroup("modifier",null,{pointerBBox:!0}),this.drawModifiers(),e.closeGroup(),e.closeGroup(),e.closeGroup(),this.calcGroup(),group.staveId=this.stave.attrs.id,this.drawDurationLine(e,{}),this.drawLongDurationLines(e),this.restoreStyle(),this.setRendered(),this.ornament?ornamentGroup?ornamentGroup=Object.assign(ornamentGroup,{lines:this.duration_lines,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,width:this.full_width}):ornamentGroup={lines:this.duration_lines,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,width:this.full_width}:ornamentGroup=""}drawDurationLoneLine(e,r){e=e||this.context;let s=r||this.y+this.duration_line_space;for(let o=0;o<5;o++){let a=[],l=0;for(let c=0;co)a.push(u),l++;else{if(a.length>1){let d=a.length-1;s=a[0].y+this.duration_line_space,e.rect(a[0].x,s+o*3,a[d].x-a[0].x+a[d].width,.5)}a=[],l=c+1}}if(a.length>1){let c=a.length-1;s=a[0].y+this.duration_line_space,e.rect(a[0].x,s+o*3,a[c].x-a[0].x+a[c].width,.5)}}}draw_dot(e,r,s,o){e.openGroup("numbered-note-dot"),e.beginPath(),e.arc(r,s,o,0,2*Math.PI),e.closePath(),e.fill(),e.closeGroup()}drawDurationLine(e,r){var s=this.attrs.id+"-lines";e.openGroup("numbered_note_lines",s);var o,a;if(this.duration_lines>0){const u=this.duration_line_space;var l=this.full_width;if(r&&r.width&&(l=r.width),l<0&&(l=this.note_width),!r||typeof r.startX>"u"?o=this.x-u/2-this.left_width:o=r.startX,!r||typeof r.startY>"u"?a=this.y+this.duration_line_space:a=r.startY,group.finish&&(this.drawDurationLoneLine(e,a),group=initGroup()),this.ornament?(o+=12,a-=22,l=15,ornamentGroup&&(o-=10,l+=10)):ornamentGroup&&(o+=this.note_width,l-=this.note_width),l>0){for(var c=0;cu.getAttribute("type")==="Dot"),l=this.modifiers.findIndex(u=>u.getAttribute("type")==="Accidental"),c=this.modifiers.findIndex(u=>u.getAttribute("type")==="GraceNoteGroup");o&&l>-1?this.modifiers[l].accidental.code=o==="#"?"v18":"v44":a>=0||c>=0?a>=0&&this.modifiers.splice(a+1,1):this.modifiers.splice(l,1)}}catch(o){console.log("🚀 ~ error",o)}}this.setYs(e)}getFullWidth(){return this.full_width}getFullHeight(){return this.full_height}getLine(){return this.keyProps[0].line}get full_width(){return this.note_width+this.left_width+this.right_width+this.long_duration_line_width}get long_duration_line_width(){return(this.long_duration_width+this.long_duration_space)*this.long_duration_lines}get full_height(){return this.bottom_y-this.top_y}get note_width(){return this.note_size||0}get note_dot_width(){return 6}get note_height(){return this.unit_height}get unit_height(){return this.note_size||0}get note_x(){return this.x||0}get top_x(){return this.x||0}get top_y(){var e=this;return(this.y||0)-(e.note_tones.map(s=>(s.td+s.bd)*(e.dot_space+e.dot_width)).reduce((s,o)=>s+o,0)+this.note_height*this.note_tones.length-this.unit_height-this.note_tones[0].bd*(e.dot_space+e.dot_width)+(this.note_tones.length-1)*this.head_space)}get bottom_x(){return this.x||0}get bottom_y(){return(this.y||0)+this.unit_height+this.duration_lines*(this.duration_line_height+this.duration_line_space)+this.note_tones[0].meta.bd*(this.dot_width+this.dot_space)}get left_width(){return this.modifiers_width}get right_width(){return this.full_duration_dot_width}get duration_dot_width(){return 6}get full_duration_dot_width(){return this.duration_dot_width*this.getModifiersByCategory(Dot.CATEGORY).length}getModifiersByCategory(e){var r=[];return this.modifiers.forEach(s=>{s.getCategory()===e&&r.push(s)}),r}get head_space(){return 6}get duration_line_height(){return 2}get duration_line_space(){return 4}get dot_width(){return 2}get dot_space(){return 2}get long_duration_space(){return 10}get long_duration_width(){return 20}getWidth(){return this.full_width}get modifiers_width(){let e=0;return this.modifiers.forEach(r=>{e+=r.getWidth()}),e}}class NumberedNoteHead{static get numberedNotationMapping(){let e=tone;switch(window&&window.sett&&window.sett.keySignature&&(e="C"),e){case"A":return{C:"3",D:"4",E:"5",F:"6",G:"7",A:"1",B:"2",R:"0",X:"x",min:2.5,max:5.5};case"B":return{C:"2",D:"3",E:"4",F:"5",G:"6",A:"7",B:"1",R:"0",X:"x",min:-.5,max:2.5};case"D":return{C:"7",D:"1",E:"2",F:"3",G:"4",A:"5",B:"6",R:"0",X:"x",min:.5,max:3.5};case"E":return{C:"6",D:"7",E:"1",F:"2",G:"3",A:"4",B:"5",R:"0",X:"x",min:1,max:4};case"F":return{C:"5",D:"6",E:"7",F:"1",G:"2",A:"3",B:"4",R:"0",X:"x",min:1.5,max:4.5};case"G":case"Gb":return{C:"4",D:"5",E:"6",F:"7",G:"1",A:"2",B:"3",R:"0",X:"x",min:2,max:5};case"Eb":return{C:"6",D:"7",E:"1",F:"2",G:"3",A:"4",B:"5",R:"0",X:"x",min:1,max:4};case"D#":case"Db":return{C:"7",D:"1",E:"2",F:"3",G:"4",A:"5",B:"6",R:"0",X:"x",min:.5,max:3.5};case"F#":return{C:"5",D:"6",E:"7",F:"1",G:"2",A:"3",B:"4",R:"0",X:"x",min:1.5,max:4.5};case"Ab":case"G#":return{C:"3",D:"4",E:"5",F:"6",G:"7",A:"1",B:"2",R:"0",X:"x",min:-1,max:2};case"Bb":case"A#":return{C:"2",D:"3",E:"4",F:"5",G:"6",A:"7",B:"1",R:"0",X:"x",min:-.5,max:2.5};case"C#":case"Cb":default:return{C:"1",D:"2",E:"3",F:"4",G:"5",A:"6",B:"7",R:"0",X:"x",min:0,max:3}}}tone_to_numbered_key(){var e=this.key.split("/"),r=e[0];r==="b"&&(r="R"),r=r.replace(new RegExp("#","g"),""),r=r.replace(new RegExp("n","g"),""),r.length>1&&(r=r.replace(new RegExp("b","g"),"")),e.includes("X2")&&(r="X");let s=0,o=0;this.note.stave&&this.note.stave.options&&this.note.stave.options.keySignature&&(tone=this.note.stave.options.keySignature);const a=this.note.getLine();return aNumberedNoteHead.numberedNotationMapping.max&&(o=Math.ceil((a-NumberedNoteHead.numberedNotationMapping.max)/3.5)),r.toUpperCase()==="R"&&(s=0,o=0),{key:NumberedNoteHead.numberedNotationMapping[r.toUpperCase()],td:o,bd:s}}constructor(e){this.key=e.key,this.x=e.x||0,this.y=e.y||0,this.idx=e.idx||0,this.note=e.note||0,this.meta=this.tone_to_numbered_key(),this.noteSize=e.noteSize||16,this.td=this.meta.td,this.bd=this.meta.bd}draw(e,r){let s=this.y;r&&r==="isX"?e.openGroup("numbered-note-head","","","isX"):e.openGroup("numbered-note-head");var o=this.x+(this.note.ornament?-2:0);let a=s-this.note.unit_height-this.note.dot_space-(this.note.ornament?-4:2);for(let c=0;c1&&(u-=this.note.duration_line_space),s+=u}this.draw_dot(e,o+_text_width,s,this.note.dot_width),s+=this.note.dot_width+this.note.dot_space}e.closeGroup()}get height(){return this.note.note_height+(this.meta.bd+this.meta.td)*(this.note.dot_width+this.note.dot_space)}draw_dot(e,r,s,o){e.openGroup("numbered-note-dot"),e.beginPath(),e.arc(r,s,o,0,2*Math.PI),e.closePath(),e.fill(),e.closeGroup()}}function L(...i){Factory.DEBUG&&Vex.L("Vex.Flow.Factory",i)}const X=Vex.MakeException("FactoryError");function setDefaults$1(i={},e){const r=e.options;return i=Object.assign(e,i),i.options=Object.assign(r,i.options),i}class Factory{constructor(e){L("New factory: ",e);const r={stave:{space:10},renderer:{context:null,elementId:"",backend:Renderer.Backends.SVG,width:500,height:200,background:"#FFF"},font:{face:"Arial",point:10,style:""}};this.options=r,this.setOptions(e)}static newFromElementId(e,r=500,s=200){return new Factory({renderer:{elementId:e,width:r,height:s}})}reset(){this.renderQ=[],this.systems=[],this.staves=[],this.voices=[],this.stave=null}getOptions(){return this.options}setOptions(e){for(const r of["stave","renderer","font"])Object.assign(this.options[r],e[r]);(this.options.renderer.elementId!==null||this.options.renderer.context)&&this.initRenderer(),this.reset()}initRenderer(){const{elementId:e,backend:r,width:s,height:o,background:a}=this.options.renderer;if(e==="")throw new X("HTML DOM element not set in Factory");this.context=Renderer.buildContext(e,r,s,o,a)}getContext(){return this.context}setContext(e){return this.context=e,this}getStave(){return this.stave}getVoices(){return this.voices}space(e){return this.options.stave.space*e}Stave(e){e=setDefaults$1(e,{x:0,y:0,width:this.options.renderer.width-this.space(1),options:{spacing_between_lines_px:this.options.stave.space}});const r=new Stave(e.x,e.y,e.width,e.options);return this.staves.push(r),r.setContext(this.context),this.stave=r,r}TabStave(e){e=setDefaults$1(e,{x:0,y:0,width:this.options.renderer.width-this.space(1),options:{spacing_between_lines_px:this.options.stave.space*1.3}});const r=new TabStave(e.x,e.y,e.width,e.options);return this.staves.push(r),r.setContext(this.context),this.stave=r,r}StaveNote(e){const r=new StaveNote(e);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}GhostNote(e){const r=new GhostNote(e);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}TextNote(e){const r=new TextNote(e);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}NumberedNote(e){const r=new NumberedNote(e);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}BarNote(e){e=setDefaults$1(e,{type:"single",options:{}});const r=new BarNote(e.type);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}ClefNote(e){e=setDefaults$1(e,{type:"treble",options:{size:"default"}});const r=new ClefNote(e.type,e.options.size,e.options.annotation);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}TimeSigNote(e){e=setDefaults$1(e,{time:"4/4",options:{}});const r=new TimeSigNote(e.time);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}KeySigNote(e){const r=new KeySigNote(e.key,e.cancelKey,e.alterKey);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}TabNote(e){const r=new TabNote$1(e);return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}GraceNote(e){const r=new GraceNote(e);return this.stave&&r.setStave(this.stave),r.setContext(this.context),r}GraceNoteGroup(e){const r=new GraceNoteGroup(e.notes,e.slur);return r.setContext(this.context),r}Accidental(e){e=setDefaults$1(e,{type:null,options:{}});const r=new Accidental(e.type);return r.setContext(this.context),r}Annotation(e){e=setDefaults$1(e,{text:"p",vJustify:"below",hJustify:"center",fontFamily:"Times",fontSize:14,fontWeight:"bold italic",options:{}});const r=new Annotation(e.text);return r.setJustification(e.hJustify),r.setVerticalJustification(e.vJustify),r.setFont(e.fontFamily,e.fontSize,e.fontWeight),r.setContext(this.context),r}Articulation(e){e=setDefaults$1(e,{type:"a.",position:"above",options:{}});const r=new Articulation$1(e.type);return r.setPosition(e.position),r.setContext(this.context),r}TextDynamics(e){e=setDefaults$1(e,{text:"p",duration:"q",dots:0,line:0,options:{}});const r=new TextDynamics({text:e.text,line:e.line,duration:e.duration,dots:e.dots});return this.stave&&r.setStave(this.stave),r.setContext(this.context),this.renderQ.push(r),r}Fingering(e){e=setDefaults$1(e,{number:"0",position:"left",options:{}});const r=new FretHandFinger(e.number);return r.setPosition(e.position),r.setContext(this.context),r}StringNumber(e){e=setDefaults$1(e,{number:"0",position:"left",options:{}});const r=new StringNumber(e.number);return r.setPosition(e.position),r.setContext(this.context),r}TickContext(){return new TickContext().setContext(this.context)}ModifierContext(){return new ModifierContext}MultiMeasureRest(e){const r=new MultiMeasureRest(e.number_of_measures,e);return r.setContext(this.context),this.renderQ.push(r),r}Voice(e){e=setDefaults$1(e,{time:"4/4",options:{}});const r=new Voice$1(e.time);return this.voices.push(r),r}StaveConnector(e){e=setDefaults$1(e,{top_stave:null,bottom_stave:null,type:"double",options:{}});const r=new StaveConnector(e.top_stave,e.bottom_stave);return r.setType(e.type).setContext(this.context),this.renderQ.push(r),r}Formatter(){return new Formatter}Tuplet(e){e=setDefaults$1(e,{notes:[],options:{}});const r=new Tuplet$1(e.notes,e.options).setContext(this.context);return this.renderQ.push(r),r}Beam(e){e=setDefaults$1(e,{notes:[],options:{autoStem:!1,secondaryBeamBreaks:[]}});const r=new Beam$1(e.notes,e.options.autoStem).setContext(this.context);return r.breakSecondaryAt(e.options.secondaryBeamBreaks),this.renderQ.push(r),r}Curve(e){e=setDefaults$1(e,{from:null,to:null,options:{}});const r=new Curve(e.from,e.to,e.options).setContext(this.context);return this.renderQ.push(r),r}StaveTie(e){e=setDefaults$1(e,{from:null,to:null,first_indices:[0],last_indices:[0],text:null,options:{direction:void 0}});const r=new StaveTie({first_note:e.from,last_note:e.to,first_indices:e.first_indices,last_indices:e.last_indices},e.text);return e.options.direction&&r.setDirection(e.options.direction),r.setContext(this.context),this.renderQ.push(r),r}StaveLine(e){e=setDefaults$1(e,{from:null,to:null,first_indices:[0],last_indices:[0],options:{}});const r=new StaveLine({first_note:e.from,last_note:e.to,first_indices:e.first_indices,last_indices:e.last_indices});return e.options.text&&r.setText(e.options.text),e.options.font&&r.setFont(e.options.font),r.setContext(this.context),this.renderQ.push(r),r}VibratoBracket(e){e=setDefaults$1(e,{from:null,to:null,options:{harsh:!1}});const r=new VibratoBracket({start:e.from,stop:e.to});return e.options.line&&r.setLine(e.options.line),e.options.harsh&&r.setHarsh(e.options.harsh),r.setContext(this.context),this.renderQ.push(r),r}TextBracket(e){e=setDefaults$1(e,{from:null,to:null,text:"",options:{superscript:"",position:1}});const r=new TextBracket({start:e.from,stop:e.to,text:e.text,superscript:e.options.superscript,position:e.options.position});return e.options.line&&r.setLine(e.options.line),e.options.font&&r.setFont(e.options.font),r.setContext(this.context),this.renderQ.push(r),r}System(e={}){e.factory=this;const r=new System(e).setContext(this.context);return this.systems.push(r),r}EasyScore(e={}){return e.factory=this,new EasyScore(e)}PedalMarking(e={}){e=setDefaults$1(e,{notes:[],options:{style:"mixed"}});const r=new PedalMarking(e.notes);return r.setStyle(PedalMarking.StylesString[e.options.style]),r.setContext(this.context),this.renderQ.push(r),r}NoteSubGroup(e={}){e=setDefaults$1(e,{notes:[],options:{}});const r=new NoteSubGroup$1(e.notes);return r.setContext(this.context),r}draw(){this.systems.forEach(e=>e.setContext(this.context).format()),this.staves.forEach(e=>e.setContext(this.context).draw()),this.voices.forEach(e=>e.setContext(this.context).draw()),this.renderQ.forEach(e=>{e.isRendered()||e.setContext(this.context).draw()}),this.systems.forEach(e=>e.setContext(this.context).draw()),this.reset()}}function setDefaults(i,e){const r=e.options;return i=Object.assign(e,i),i.options=Object.assign(r,i.options),i}class System extends Element$1{constructor(e={}){super(),this.setAttribute("type","System"),this.setOptions(e),this.parts=[]}setOptions(e={}){this.options=setDefaults(e,{x:10,y:10,width:500,connector:null,spaceBetweenStaves:12,factory:null,debugFormatter:!1,formatIterations:0,options:{}}),this.factory=this.options.factory||new Factory({renderer:{el:null}})}setContext(e){return super.setContext(e),this.factory.setContext(e),this}addConnector(e="double"){return this.connector=this.factory.StaveConnector({top_stave:this.parts[0].stave,bottom_stave:this.parts[this.parts.length-1].stave,type:e}),this.connector}addStave(e){return e=setDefaults(e,{stave:null,voices:[],spaceAbove:0,spaceBelow:0,debugNoteMetrics:!1,options:{left_bar:!1}}),e.stave||(e.stave=this.factory.Stave({x:this.options.x,y:this.options.y,width:this.options.width,options:e.options})),e.voices.forEach(r=>r.setContext(this.context).setStave(e.stave).getTickables().forEach(s=>s.setStave(e.stave))),this.parts.push(e),e.stave}format(){const e=new Formatter;this.formatter=e;let r=this.options.y,s=0,o=[];const a=[];this.parts.forEach(c=>{r=r+c.stave.space(c.spaceAbove),c.stave.setY(r),e.joinVoices(c.voices),r=r+c.stave.space(c.spaceBelow),r=r+c.stave.space(this.options.spaceBetweenStaves),c.debugNoteMetrics&&(a.push({y:r,voice:c.voices[0]}),r+=15),o=o.concat(c.voices),s=Math.max(s,c.stave.getNoteStartX())}),this.parts.forEach(c=>c.stave.setNoteStartX(s));const l=this.options.width-(s-this.options.x)-Note.STAVEPADDING;e.format(o,l);for(let c=0;c{r.voice.getTickables().forEach(s=>Note.plotMetrics(e,s,r.y))})}}Vex.Flow=Flow;Vex.Flow.Element=Element$1;Vex.Flow.Fraction=Fraction;Vex.Flow.Renderer=Renderer;Vex.Flow.Formatter=Formatter;Vex.Flow.Music=Music;Vex.Flow.Glyph=Glyph;Vex.Flow.Stave=Stave;Vex.Flow.StaveNote=StaveNote;Vex.Flow.StaveModifier=StaveModifier;Vex.Flow.StaveTempo=StaveTempo;Vex.Flow.Voice=Voice$1;Vex.Flow.Accidental=Accidental;Vex.Flow.Beam=Beam$1;Vex.Flow.StaveTie=StaveTie;Vex.Flow.TabStave=TabStave;Vex.Flow.TabNote=TabNote$1;Vex.Flow.Bend=Bend;Vex.Flow.Vibrato=Vibrato;Vex.Flow.VibratoBracket=VibratoBracket;Vex.Flow.Note=Note;Vex.Flow.ModifierContext=ModifierContext;Vex.Flow.MultiMeasureRest=MultiMeasureRest;Vex.Flow.TickContext=TickContext;Vex.Flow.Articulation=Articulation$1;Vex.Flow.Annotation=Annotation;Vex.Flow.Barline=Barline;Vex.Flow.NoteHead=NoteHead;Vex.Flow.StaveConnector=StaveConnector;Vex.Flow.ClefNote=ClefNote;Vex.Flow.KeySignature=KeySignature;Vex.Flow.KeySigNote=KeySigNote;Vex.Flow.TimeSignature=TimeSignature;Vex.Flow.TimeSigNote=TimeSigNote;Vex.Flow.Stem=Stem;Vex.Flow.TabTie=TabTie;Vex.Flow.Clef=Clef;Vex.Flow.Dot=Dot;Vex.Flow.Modifier=Modifier;Vex.Flow.TabSlide=TabSlide;Vex.Flow.Tuplet=Tuplet$1;Vex.Flow.GraceNote=GraceNote;Vex.Flow.GraceTabNote=GraceTabNote;Vex.Flow.Tuning=Tuning;Vex.Flow.KeyManager=KeyManager;Vex.Flow.StaveHairpin=StaveHairpin;Vex.Flow.BoundingBox=BoundingBox;Vex.Flow.Stroke=Stroke;Vex.Flow.TextNote=TextNote;Vex.Flow.Curve=Curve;Vex.Flow.TextDynamics=TextDynamics;Vex.Flow.StaveLine=StaveLine;Vex.Flow.Ornament=Ornament;Vex.Flow.PedalMarking=PedalMarking;Vex.Flow.TextBracket=TextBracket;Vex.Flow.FretHandFinger=FretHandFinger;Vex.Flow.Repetition=Repetition$1;Vex.Flow.BarNote=BarNote;Vex.Flow.GhostNote=GhostNote;Vex.Flow.NoteSubGroup=NoteSubGroup$1;Vex.Flow.GraceNoteGroup=GraceNoteGroup;Vex.Flow.Tremolo=Tremolo;Vex.Flow.StringNumber=StringNumber;Vex.Flow.Crescendo=Crescendo;Vex.Flow.Volta=Volta;Vex.Flow.Font=Font;Vex.Flow.System=System;Vex.Flow.Factory=Factory;Vex.Flow.Parser=Parser;Vex.Flow.EasyScore=EasyScore;Vex.Flow.Registry=Registry;var SystemLinesEnum=(i=>(i[i.SingleThin=0]="SingleThin",i[i.DoubleThin=1]="DoubleThin",i[i.ThinBold=2]="ThinBold",i[i.BoldThinDots=3]="BoldThinDots",i[i.DotsThinBold=4]="DotsThinBold",i[i.DotsBoldBoldDots=5]="DotsBoldBoldDots",i[i.None=6]="None",i[i.Dotted=7]="Dotted",i[i.Dashed=8]="Dashed",i[i.Bold=9]="Bold",i[i.BoldThin=10]="BoldThin",i[i.DoubleBold=11]="DoubleBold",i[i.Tick=12]="Tick",i[i.Short=13]="Short",i))(SystemLinesEnum||{});class SystemLinesEnumHelper{static xmlBarlineStyleToSystemLinesEnum(e){return e==="regular"?0:e==="dotted"?7:e==="dashed"?8:e==="heavy"?9:e==="light-light"?1:e==="light-heavy"?2:e==="heavy-light"?10:e==="heavy-heavy"?11:e==="tick"?12:e==="short"?13:e==="none"?6:0}}class Matrix2D{constructor(){this.matrix=[];for(let e=0;e<2;e++){this.matrix[e]=[];for(let r=0;r<2;r++)this.matrix[e][r]=0}}static getRotationMatrix(e){const r=new Matrix2D,s=Math.cos(e),o=Math.sin(e);return r.matrix[0][0]=s,r.matrix[0][1]=-o,r.matrix[1][0]=o,r.matrix[1][1]=s,r}scalarMultiplication(e){for(let r=0;r<2;r++)for(let s=0;s<2;s++)this.matrix[r][s]*=e}getTransposeMatrix(){const e=new Matrix2D;for(let r=0;r<2;r++)for(let s=0;s<2;s++)e.matrix[r][s]=this.matrix[s][r];return e}vectorMultiplication(e){const r=new PointF2D;return r.x=e.x*this.matrix[0][0]+e.y*this.matrix[0][1],r.y=e.x*this.matrix[1][0]+e.y*this.matrix[1][1],r}}class MusicSheetErrors{constructor(){this.measureErrors={},this.errors=[],this.tempErrors=[]}finalizeMeasure(e){let r=this.measureErrors[e];r||(r=[]),this.measureErrors[e]=r.concat(this.tempErrors),this.tempErrors=[]}pushMeasureError(e){this.tempErrors.push(e)}push(e){this.errors.push(e)}}class Arpeggio{constructor(e,r=7){this.parentVoiceEntry=e,this.type=r,this.notes=[]}addNote(e){this.notes.push(e),e.Arpeggio=this}}var ArpeggioType=(i=>(i[i.BRUSH_DOWN=1]="BRUSH_DOWN",i[i.BRUSH_UP=2]="BRUSH_UP",i[i.ROLL_DOWN=3]="ROLL_DOWN",i[i.ROLL_UP=4]="ROLL_UP",i[i.RASQUEDO_DOWN=5]="RASQUEDO_DOWN",i[i.RASQUEDO_UP=6]="RASQUEDO_UP",i[i.ARPEGGIO_DIRECTIONLESS=7]="ARPEGGIO_DIRECTIONLESS",i))(ArpeggioType||{});class Beam{constructor(e=1,r=0){this.notes=[],this.extendedNoteList=[],this.BeamNumberOffsetToXML=0,this.AutoGenerated=!1,this.BeamNumber=e,this.BeamNumberOffsetToXML=r}get Notes(){return this.notes}set Notes(e){this.notes=e}get ExtendedNoteList(){return this.extendedNoteList}set ExtendedNoteList(e){this.extendedNoteList=e}addNoteToBeam(e){e&&(e.NoteBeam=this,this.notes.push(e),this.extendedNoteList.push(e))}}class Glissando{constructor(e){this.notes=[],this.XMLNumber=1,this.AddNote(e),this.StartNote=e,this.Direction=ColDirEnum.NotYetDefined}get Notes(){return this.notes}get Duration(){const e=new Fraction$1;for(const r of this.notes)e.Add(r.Length);return e}get Pitch(){return this.StartNote.Pitch}AddNote(e){this.notes.push(e),e.NoteGlissando=this,this.notes.length===2&&(this.notes[0].Pitch.getHalfTone()2:(loglevelExports.warn("notehead: sourceNote and filledXmlAttribute undefined."),s=!0)),this.filled=s}get SourceNote(){return this.sourceNote}get Shape(){return this.shape}get Filled(){return this.filled}static ShapeTypeXmlToShape(e){switch(e.toLowerCase()){case"normal":return 2;case"x":return 8;case"slash":return 4;case"diamond":return 1;case"square":return 5;case"la":return 5;case"do":case"triangle":return 6;case"inverted triangle":return 7;case"rectangle":return 3;case"circle-x":return 0;default:return loglevelExports.info("unsupported/unhandled xml notehead '"+e+"'. Using normal notehead."),2}}}var NoteHeadShape=(i=>(i[i.CIRCLEX=0]="CIRCLEX",i[i.DIAMOND=1]="DIAMOND",i[i.NORMAL=2]="NORMAL",i[i.RECTANGLE=3]="RECTANGLE",i[i.SLASH=4]="SLASH",i[i.SQUARE=5]="SQUARE",i[i.TRIANGLE=6]="TRIANGLE",i[i.TRIANGLE_INVERTED=7]="TRIANGLE_INVERTED",i[i.X=8]="X",i))(NoteHeadShape||{});class ITextTranslation{static translateText(e,r){if(!this.defaultTextTranslation)return r}}var NoteType=(i=>(i[i.UNDEFINED=0]="UNDEFINED",i[i._1024th=1]="_1024th",i[i._512th=2]="_512th",i[i._256th=3]="_256th",i[i._128th=4]="_128th",i[i._64th=5]="_64th",i[i._32nd=6]="_32nd",i[i._16th=7]="_16th",i[i.EIGTH=8]="EIGTH",i[i.QUARTER=9]="QUARTER",i[i.HALF=10]="HALF",i[i.WHOLE=11]="WHOLE",i[i.BREVE=12]="BREVE",i[i.LONG=13]="LONG",i[i.MAXIMA=14]="MAXIMA",i))(NoteType||{});class NoteTypeHandler{static NoteTypeToString(e){return this.NoteTypeXmlValues[e]}static StringToNoteType(e){const r=this.NoteTypeXmlValues.indexOf(e);return r!==-1?r:0}static getNoteDurationFromType(e){switch(e){case"1024th":return new Fraction$1(1,1024);case"512th":return new Fraction$1(1,512);case"256th":return new Fraction$1(1,256);case"128th":return new Fraction$1(1,128);case"64th":return new Fraction$1(1,64);case"32th":case"32nd":return new Fraction$1(1,32);case"16th":return new Fraction$1(1,16);case"eighth":return new Fraction$1(1,8);case"quarter":return new Fraction$1(1,4);case"half":return new Fraction$1(1,2);case"whole":return new Fraction$1(1,1);case"breve":return new Fraction$1(2,1);case"long":return new Fraction$1(4,1);case"maxima":return new Fraction$1(8,1);default:{const r=ITextTranslation.translateText("ReaderErrorMessages/NoteDurationError","Invalid note duration.");throw new MusicSheetReadingException(r)}}}}NoteTypeHandler.NoteTypeXmlValues=["","1024th","512th","256th","128th","64th","32nd","16th","eigth","quarter","half","whole","breve","long","maxima"];class OrnamentContainer{constructor(e){this.placement=PlacementEnum.Above,this.accidentalAbove=AccidentalEnum.NONE,this.accidentalBelow=AccidentalEnum.NONE,this.ornament=e}get GetOrnament(){return this.ornament}get AccidentalAbove(){return this.accidentalAbove}set AccidentalAbove(e){this.accidentalAbove=e}get AccidentalBelow(){return this.accidentalBelow}set AccidentalBelow(e){this.accidentalBelow=e}}var OrnamentEnum=(i=>(i[i.Trill=0]="Trill",i[i.Turn=1]="Turn",i[i.InvertedTurn=2]="InvertedTurn",i[i.DelayedTurn=3]="DelayedTurn",i[i.DelayedInvertedTurn=4]="DelayedInvertedTurn",i[i.Mordent=5]="Mordent",i[i.InvertedMordent=6]="InvertedMordent",i))(OrnamentEnum||{});class VerticalSourceStaffEntryContainer{constructor(e,r,s){this.staffEntries=[],this.comments=[],this.timestamp=r,this.staffEntries=new Array(s),this.parentMeasure=e}$get$(e){return this.staffEntries[e]}$set$(e,r){this.staffEntries[e]=r}get Timestamp(){return this.timestamp}set Timestamp(e){this.timestamp=e}get StaffEntries(){return this.staffEntries}set StaffEntries(e){this.staffEntries=e}get Comments(){return this.comments}set Comments(e){this.comments=e}get ParentMeasure(){return this.parentMeasure}set ParentMeasure(e){this.parentMeasure=e}getAbsoluteTimestamp(){return Fraction$1.plus(this.timestamp,this.parentMeasure.AbsoluteTimestamp)}}class SourceStaffEntry{constructor(e,r){this.voiceEntries=[],this.instructions=[],this.chordSymbolContainers=[],this.verticalContainerParent=e,this.parentStaff=r}get ParentStaff(){return this.parentStaff}get VerticalContainerParent(){return this.verticalContainerParent}get Timestamp(){if(this.VerticalContainerParent)return this.VerticalContainerParent.Timestamp}get AbsoluteTimestamp(){if(this.VerticalContainerParent)return Fraction$1.plus(this.VerticalContainerParent.ParentMeasure.AbsoluteTimestamp,this.VerticalContainerParent.Timestamp)}get VoiceEntries(){return this.voiceEntries}set VoiceEntries(e){this.voiceEntries=e}get Link(){return this.staffEntryLink}set Link(e){this.staffEntryLink=e}get Instructions(){return this.instructions}set Instructions(e){this.instructions=e}get ChordContainers(){return this.chordSymbolContainers}set ChordContainers(e){this.chordSymbolContainers=e}removeAllInstructionsOfTypeClefInstruction(){let e=0,r=0;for(;e0)return!0;return!1}hasTie(){for(let e=0,r=this.VoiceEntries.length;er.parentRepetition.StartIndex)return-1}if(e.alignment===0&&r.alignment===0){if(e.parentRepetition.EndIndexr.parentRepetition.EndIndex)return-1}}return 0}}class RepetitionInstruction{constructor(e,r,s=1,o=void 0,a=void 0){this.endingIndices=void 0,this.measureIndex=e,a&&(this.endingIndices=a.slice()),this.type=r,this.alignment=s,this.parentRepetition=o}CompareTo(e){const r=e;if(this.measureIndex>r.measureIndex)return 1;if(this.measureIndex(i[i.StartLine=0]="StartLine",i[i.ForwardJump=1]="ForwardJump",i[i.BackJumpLine=2]="BackJumpLine",i[i.Ending=3]="Ending",i[i.DaCapo=4]="DaCapo",i[i.DalSegno=5]="DalSegno",i[i.Fine=6]="Fine",i[i.ToCoda=7]="ToCoda",i[i.DalSegnoAlFine=8]="DalSegnoAlFine",i[i.DaCapoAlFine=9]="DaCapoAlFine",i[i.DalSegnoAlCoda=10]="DalSegnoAlCoda",i[i.DaCapoAlCoda=11]="DaCapoAlCoda",i[i.Coda=12]="Coda",i[i.Segno=13]="Segno",i[i.None=14]="None",i))(RepetitionInstructionEnum||{}),AlignmentType=(i=>(i[i.Begin=0]="Begin",i[i.End=1]="End",i))(AlignmentType||{});let prevSourceMeasure=null;class SourceMeasure{constructor(e,r){this.printNewSystemXml=!1,this.printNewPageXml=!1,this.IsSystemStartMeasure=!1,this.hasLyrics=!1,this.hasMoodExpressions=!1,this.allRests=!1,this.isReducedToMultiRest=!1,this.multipleRestMeasureNumber=0,this.staffLinkedExpressions=[],this.tempoExpressions=[],this.verticalSourceStaffEntryContainers=[],this.graphicalMeasureErrors=[],this.firstRepetitionInstructions=[],this.lastRepetitionInstructions=[],this.metronomeNoteIndex=0,this.WasRendered=!1,this.completeNumberOfStaves=e,this.implicitMeasure=!1,this.hasEndLine=!1,this.endingBarStyleXml="",this.endingBarStyleEnum=SystemLinesEnum.SingleThin,this.firstInstructionsStaffEntries=new Array(e),this.lastInstructionsStaffEntries=new Array(e),this.rules=r,this.TempoInBPM=0;for(let s=0;s1)return e[this.measureListIndex-1]}get Rules(){return this.rules}get VerticalMeasureList(){return this.verticalMeasureList}set VerticalMeasureList(e){this.verticalMeasureList=e}get TempoInBPM(){return this.tempoInBPM}set TempoInBPM(e){this.tempoInBPM=e}findOrCreateStaffEntry(e,r,s){let o,a;for(const c of this.verticalSourceStaffEntryContainers)if(c.Timestamp.Equals(e)){a=c;break}if(a)return a.StaffEntries[r]?o=a.StaffEntries[r]:(o=new SourceStaffEntry(a,s),a.StaffEntries[r]=o),{createdNewContainer:!1,staffEntry:o};const l=this.verticalSourceStaffEntryContainers[this.verticalSourceStaffEntryContainers.length-1];if(this.verticalSourceStaffEntryContainers.length===0||l.Timestamp.lt(e)){const c=new VerticalSourceStaffEntryContainer(this,e.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.push(c),o=new SourceStaffEntry(c,s),c.StaffEntries[r]=o}else for(let c=this.verticalSourceStaffEntryContainers.length-1;c>=0;c--){if(this.verticalSourceStaffEntryContainers[c].Timestamp.lt(e)){const u=new VerticalSourceStaffEntryContainer(this,e.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.splice(c+1,0,u),o=new SourceStaffEntry(u,s),u.StaffEntries[r]=o;break}if(c===0){const u=new VerticalSourceStaffEntryContainer(this,e.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.splice(c,0,u),o=new SourceStaffEntry(u,s),u.StaffEntries[r]=o;break}}return{createdNewContainer:!0,staffEntry:o}}findOrCreateVoiceEntry(e,r){let s,o=!1;for(const a of e.VoiceEntries)if(a.ParentVoice===r){s=a;break}return s||(s=new VoiceEntry(e.Timestamp,r,e),o=!0),{createdVoiceEntry:o,voiceEntry:s}}getPreviousSourceStaffEntryFromIndex(e,r){for(let s=r-1;s>=0;s--)if(this.verticalSourceStaffEntryContainers[s][e])return this.verticalSourceStaffEntryContainers[s][e]}getVerticalContainerIndexByTimestamp(e){for(let r=0,s=this.VerticalSourceStaffEntryContainers.length;r=0;m--){const y=this.verticalSourceStaffEntryContainers[m][c+u];if(y!==void 0&&y.hasTie()&&l.lt(Fraction$1.plus(y.Timestamp,y.calculateMaxNoteLength()))){l=Fraction$1.plus(y.Timestamp,y.calculateMaxNoteLength());break}}}}o.push(l)}for(let a=0,l=o.length;a0)return!0}return!1}beginsWithLineRepetition(){for(let e=0,r=this.FirstRepetitionInstructions.length;e=0;o--)if(s=this.verticalSourceStaffEntryContainers[o].StaffEntries[e],s&&(!r||s.VoiceEntries.length>0))return s}canBeReducedToMultiRest(){var s,o,a,l,c,u;if(this.firstRepetitionInstructions.length>0||this.lastRepetitionInstructions.length>0)return!1;let e=!0,r=!1;for(const d of this.verticalSourceStaffEntryContainers)if(d){for(const g of d.StaffEntries)if(!(!g||!g.ParentStaff.ParentInstrument.Visible)){if(g.ChordContainers.length>0)return!1;g.ParentStaff.hasLyrics&&(r=!0);for(const m of g.VoiceEntries){for(const y of m.Notes)if(!y.isRest()){e=!1;break}if(!e)break}}}if(!e||r||this.hasMoodExpressions||this.tempoExpressions.length>0)return!1;for(const d of this.staffLinkedExpressions)if(d.length>0)return!1;for(const d of this.lastInstructionsStaffEntries)for(let g=0,m=d==null?void 0:d.Instructions.length;g=0;r--)for(let s=0;s(i[i.Fingering=0]="Fingering",i[i.String=1]="String",i))(TechnicalInstructionType||{});class TechnicalInstruction{}class PlaybackNote{constructor(e,r){this.parentEntry=e,this.parentNote=r,this.ParentNote.PlaybackNote=this,this.Length=this.ParentNote.Length,r.Pitch!==void 0?this.ParentNote.ParentStaff.ParentInstrument.MidiInstrumentId===MidiInstrument.Percussion?this.MidiKey=PlaybackNote.noteToMidiDrumKey(r):this.MidiKey=r.Pitch.getHalfTone()+12:this.MidiKey=0}setLength(){this.ParentNote.NoteTie!==void 0&&this.ParentNote.NoteTie.StartNote===this.ParentNote&&(this.Length=this.ParentNote.NoteTie.Duration)}get ParentEntry(){return this.parentEntry}get ParentNote(){return this.parentNote}static noteToMidiDrumKey(e){var o;const r=e.Pitch.getHalfTone()-12,s=(o=e.Notehead)==null?void 0:o.Shape;switch(e.Pitch.Octave){case 1:switch(e.Pitch.FundamentalNote){case NoteEnum.D:switch(s){default:return 44}case NoteEnum.E:switch(s){default:return 35}case NoteEnum.F:switch(s){default:return 36}case NoteEnum.G:switch(s){default:return 41}case NoteEnum.A:switch(s){default:return 43}case NoteEnum.B:switch(s){case NoteHeadShape.TRIANGLE:return 54;default:return 47}default:return r}case 2:switch(e.Pitch.FundamentalNote){case NoteEnum.C:switch(s){case NoteHeadShape.X:return 37;default:return 38}case NoteEnum.D:switch(s){case NoteHeadShape.X:return 59;default:return 48}case NoteEnum.E:switch(s){case NoteHeadShape.X:return 42;case NoteHeadShape.CIRCLEX:return 46;case NoteHeadShape.TRIANGLE:return 56;default:return 50}case NoteEnum.F:switch(s){case NoteHeadShape.DIAMOND:return 53;default:return 51}case NoteEnum.G:switch(s){case NoteHeadShape.CIRCLEX:case NoteHeadShape.DIAMOND:return 46;default:return 42}case NoteEnum.A:switch(s){default:return 49}case NoteEnum.B:switch(s){default:return 57}default:return r}case 3:switch(e.Pitch.FundamentalNote){case NoteEnum.C:switch(s){case NoteHeadShape.CIRCLEX:return 52;default:return 55}default:return r}default:return r}}}class PlaybackEntry{constructor(e){this.notes=[],this.TimestampShift=new Fraction$1,this.parentVoiceEntry=e;for(const r of e.Notes)this.Notes.push(new PlaybackNote(this,r))}get ParentVoiceEntry(){return this.parentVoiceEntry}get Notes(){return this.notes}get Length(){if(this.Notes.length>0)return this.Notes[0].Length}set Length(e){for(const r of this.Notes)r.Length=e}get HasNotes(){return this.Notes.length>0}}class VoiceEntry{constructor(e,r,s,o=!0,a=!1,l=!1,c=!1){if(this.notes=[],this.graceVoiceEntriesBefore=[],this.graceVoiceEntriesAfter=[],this.articulations=[],this.playbackEntries=[],this.technicalInstructions=[],this.lyricsEntries=new Dictionary,this.wantedStemDirection=-1,this.stemDirectionXml=-1,this.stemDirection=-1,this.timestamp=e,this.parentVoice=r,this.parentSourceStaffEntry=s,this.isGrace=a,this.graceAfterMainNote=!1,this.graceNoteSlash=l,this.graceSlur=c,a||r.VoiceEntries.push(this),o&&s!==void 0){const u=s.VoiceEntries;u.indexOf(this)===-1&&u.push(this)}this.mainPlaybackEntry=new PlaybackEntry(this),this.PlaybackEntries.push(this.mainPlaybackEntry)}get ParentSourceStaffEntry(){return this.parentSourceStaffEntry}get ParentVoice(){return this.parentVoice}get Timestamp(){return this.timestamp}set Timestamp(e){this.timestamp=e}get Notes(){return this.notes}addNote(e){this.notes.push(e),!e.isRest()&&(e.NoteTie===void 0||e.NoteTie.StartNote===e)&&this.MainPlaybackEntry.Notes.push(new PlaybackNote(this.MainPlaybackEntry,e))}get GraceVoiceEntriesBefore(){return this.graceVoiceEntriesBefore}set GraceVoiceEntriesBefore(e){this.graceVoiceEntriesBefore=e;for(const r of this.graceVoiceEntriesBefore)r.parentSourceStaffEntry=this.ParentSourceStaffEntry}get GraceVoiceEntriesAfter(){return this.graceVoiceEntriesAfter}set GraceVoiceEntriesAfter(e){this.graceVoiceEntriesAfter=e;for(const r of this.graceVoiceEntriesAfter)r.parentSourceStaffEntry=this.ParentSourceStaffEntry}get IsGrace(){return this.isGrace}set IsGrace(e){this.isGrace=e}get GraceAfterMainNote(){return this.graceAfterMainNote}set GraceAfterMainNote(e){this.graceAfterMainNote=e}get GraceNoteSlash(){return this.graceNoteSlash}set GraceNoteSlash(e){this.graceNoteSlash=e}get GraceSlur(){return this.graceSlur}set GraceSlur(e){this.graceSlur=e}get Articulations(){return this.articulations}get PlaybackEntries(){return this.playbackEntries}get Fermata(){return this.fermata}get MainPlaybackEntry(){return this.mainPlaybackEntry}set MainPlaybackEntry(e){this.mainPlaybackEntry=e}removeMainPlaybackEntry(){this.mainPlaybackEntry!==void 0&&this.removePlaybackEntry(this.mainPlaybackEntry)}removePlaybackEntry(e){this.mainPlaybackEntry===e&&(this.mainPlaybackEntry=void 0);const r=this.playbackEntries.indexOf(e);r>-1&&this.playbackEntries.splice(r,1)}set Articulations(e){this.articulations=e}get TechnicalInstructions(){return this.technicalInstructions}get LyricsEntries(){return this.lyricsEntries}get Arpeggio(){return this.arpeggio}set Arpeggio(e){this.arpeggio=e}get OrnamentContainer(){return this.ornamentContainer}set OrnamentContainer(e){this.ornamentContainer=e}set WantedStemDirection(e){this.wantedStemDirection=e}get WantedStemDirection(){return this.wantedStemDirection}set StemDirectionXml(e){this.stemDirectionXml=e}get StemDirectionXml(){return this.stemDirectionXml}set StemDirection(e){this.stemDirection=e}get StemDirection(){return this.stemDirection}get StemColorXml(){return this.stemColorXml}set StemColorXml(e){this.stemColorXml=e}get StemColor(){return this.stemColor}set StemColor(e){this.stemColor=e}get VolumeModifier(){return this.volumeModifier}set VolumeModifier(e){this.volumeModifier=e}get DurationModifier(){return this.durationModifier}set DurationModifier(e){this.durationModifier=e}hasArticulation(e){for(const r of this.articulations)if(r.Equals(e))return!0;return!1}static isSupportedArticulation(e){switch(e){case 0:case 1:case 2:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 27:return!0;default:return!1}}hasTie(){for(let e=0,r=this.Notes.length;e0)return!0;return!1}isStaccato(){for(const e of this.Articulations)if(e.articulationEnum===6)return!0;return!1}isAccent(){for(const e of this.Articulations)if(e.articulationEnum===0||e.articulationEnum===1)return!0;return!1}getVerseNumberForLyricEntry(e){let r="1";return this.lyricsEntries.forEach((s,o)=>{e===o&&(r=s)}),r}}var ArticulationEnum=(i=>(i[i.accent=0]="accent",i[i.strongaccent=1]="strongaccent",i[i.softaccent=2]="softaccent",i[i.marcatoup=3]="marcatoup",i[i.marcatodown=4]="marcatodown",i[i.invertedstrongaccent=5]="invertedstrongaccent",i[i.staccato=6]="staccato",i[i.staccatissimo=7]="staccatissimo",i[i.spiccato=8]="spiccato",i[i.tenuto=9]="tenuto",i[i.fermata=10]="fermata",i[i.invertedfermata=11]="invertedfermata",i[i.breathmark=12]="breathmark",i[i.caesura=13]="caesura",i[i.lefthandpizzicato=14]="lefthandpizzicato",i[i.naturalharmonic=15]="naturalharmonic",i[i.snappizzicato=16]="snappizzicato",i[i.upbow=17]="upbow",i[i.downbow=18]="downbow",i[i.scoop=19]="scoop",i[i.plop=20]="plop",i[i.doit=21]="doit",i[i.falloff=22]="falloff",i[i.stress=23]="stress",i[i.unstress=24]="unstress",i[i.detachedlegato=25]="detachedlegato",i[i.otherarticulation=26]="otherarticulation",i[i.bend=27]="bend",i))(ArticulationEnum||{}),StemDirectionType=(i=>(i[i.Undefined=-1]="Undefined",i[i.Up=0]="Up",i[i.Down=1]="Down",i[i.None=2]="None",i[i.Double=3]="Double",i))(StemDirectionType||{}),SystemLinePosition=(i=>(i[i.MeasureBegin=0]="MeasureBegin",i[i.MeasureEnd=1]="MeasureEnd",i))(SystemLinePosition||{});class GraphicalLabel extends Clickable{constructor(e,r,s,o,a=void 0){super(),this.CenteringXShift=0,this.label=e,this.boundingBox=new BoundingBox$1(this,a),this.label.fontHeight=r,this.label.textAlignment=s,this.rules=o,this.rules.MpatMode&&this.label.text==="TRIO"&&(this.label.fontFamily="Arial")}get Label(){return this.label}toString(){return`${this.label.text} (${this.boundingBox.RelativePosition.x},${this.boundingBox.RelativePosition.y})`}setLabelPositionAndShapeBorders(){var c,u;if(this.Label.text.trim()==="")return;this.TextLines=[];const e=(u=(c=this.rules)==null?void 0:c.LabelMarginBorderFactor)!=null?u:.1,r=this.Label.text.split(/[\n\r]+/g),s=r.length;let o=0;for(let d=0;d0&&this.TextLines.length>1&&(a+=this.rules.SpacingBetweenTextLines*s/10);const l=this.PositionAndShape;switch(this.Label.textAlignment){case TextAlignmentEnum.CenterBottom:l.BorderTop=-a,l.BorderLeft=-o/2,l.BorderBottom=0,l.BorderRight=o/2;break;case TextAlignmentEnum.CenterCenter:l.BorderTop=-a/2,l.BorderLeft=-o/2,l.BorderBottom=a/2,l.BorderRight=o/2;break;case TextAlignmentEnum.CenterTop:l.BorderTop=0,l.BorderLeft=-o/2,l.BorderBottom=a,l.BorderRight=o/2;break;case TextAlignmentEnum.LeftBottom:l.BorderTop=-a,l.BorderLeft=0,l.BorderBottom=0,l.BorderRight=o;break;case TextAlignmentEnum.LeftCenter:l.BorderTop=-a/2,l.BorderLeft=0,l.BorderBottom=a/2,l.BorderRight=o;break;case TextAlignmentEnum.LeftTop:l.BorderTop=0,l.BorderLeft=0,l.BorderBottom=a,l.BorderRight=o;break;case TextAlignmentEnum.RightBottom:l.BorderTop=-a,l.BorderLeft=-o,l.BorderBottom=0,l.BorderRight=0;break;case TextAlignmentEnum.RightCenter:l.BorderTop=-a/2,l.BorderLeft=-o,l.BorderBottom=a/2,l.BorderRight=0;break;case TextAlignmentEnum.RightTop:l.BorderTop=0,l.BorderLeft=-o,l.BorderBottom=a,l.BorderRight=0;break}l.BorderMarginTop=l.BorderTop-a*e,l.BorderMarginLeft=l.BorderLeft-a*e,l.BorderMarginBottom=l.BorderBottom+a*e,l.BorderMarginRight=l.BorderRight+a*e}}class Label{constructor(e="",r=TextAlignmentEnum.CenterBottom,s=void 0,o=!0){this.IsCreditLabel=!1,this.text=e,this.print=o,this.textAlignment=r,this.font=s,this.fontFamily=void 0}set font(e){this.fontEnumValue=e,this.fontFamily=FontStringNames[e]}get font(){return this.fontEnumValue}ToString(){return this.text}}const SpeedTag={Grava:40,Largo:46,Lento:52,Adagio:56,Larghetto:60,Andante:66,Anderato:69,Andantino:69,Moderato:88,Allegretto:108,"Allegro Moderato":108,Allegro:132,Vivace:152,Vivo:160,Vivacissimo:168,Presto:184,Prestissimo:208},SpecialMarks=["纯律","纯律结束"],HideWords=["跳过下一个","b","#","§","º","X"],GradientWords=["poco rit.","rall.","rit.","accel.","molto rit.","molto rall","lentando","poco accel.","calando"],GRADIENT_SPEED_CLOSE_TAG="结束范围速度",GRADIENT_SPEED_RESET_TAG="a tempo",SpecialWords=[GRADIENT_SPEED_CLOSE_TAG],SpeedKeyword="速度 ",SpeedHiddenKeyword="仅文本速度 ";function isSpeedKeyword(i){return i.indexOf(SpeedKeyword)===0}function isSpeedHiddenKeyword(i){return i.indexOf(SpeedHiddenKeyword)===0}function formatSpeedKeyword(i){return i.replace(SpeedHiddenKeyword,"").replace(SpeedKeyword,"")}function isGradientWords(i){return GradientWords.includes(i)}function isSpecialMark(i){return[...Object.keys(SpeedTag),...SpecialMarks,...SpecialWords,...HideWords].map(e=>e.trim().toLocaleUpperCase()).includes(i.toLocaleUpperCase().trim())}function isTopFont(i){return[TextAlignmentEnum.CenterTop,TextAlignmentEnum.RightTop].includes(i)}var MusicSymbol=(i=>(i[i.Unused_first_Symbol=0]="Unused_first_Symbol",i[i.BLACK_HEAD=1]="BLACK_HEAD",i[i.UPWARDS_TAIL=2]="UPWARDS_TAIL",i[i.DOWNWARDS_TAIL=3]="DOWNWARDS_TAIL",i[i.UPWARDS_DOUBLE_TAIL=4]="UPWARDS_DOUBLE_TAIL",i[i.DOWNWARDS_DOUBLE_TAIL=5]="DOWNWARDS_DOUBLE_TAIL",i[i.UPWARDS_TRIPLE_TAIL=6]="UPWARDS_TRIPLE_TAIL",i[i.DOWNWARDS_TRIPLE_TAIL=7]="DOWNWARDS_TRIPLE_TAIL",i[i.UPWARDS_QUAD_TAIL=8]="UPWARDS_QUAD_TAIL",i[i.DOWNWARDS_QUAD_TAIL=9]="DOWNWARDS_QUAD_TAIL",i[i.ROUND_HEAD=10]="ROUND_HEAD",i[i.WHITE_HEAD=11]="WHITE_HEAD",i[i.G_CLEF=12]="G_CLEF",i[i.F_CLEF=13]="F_CLEF",i[i.C_CLEF=14]="C_CLEF",i[i.BREVE=15]="BREVE",i[i.BREVE_REST=16]="BREVE_REST",i[i.COMMON_TIME=17]="COMMON_TIME",i[i.CUT_TIME=18]="CUT_TIME",i[i.WHOLE_REST=19]="WHOLE_REST",i[i.HALF_REST=20]="HALF_REST",i[i.QUARTER_REST=21]="QUARTER_REST",i[i.EIGHTH_REST=22]="EIGHTH_REST",i[i.SIXTEENTH_REST=23]="SIXTEENTH_REST",i[i.THIRTYSECOND_REST=24]="THIRTYSECOND_REST",i[i.SIXTYFOURTH_REST=25]="SIXTYFOURTH_REST",i[i.FLAT=26]="FLAT",i[i.SHARP=27]="SHARP",i[i.NATURAL=28]="NATURAL",i[i.DOUBLE_FLAT=29]="DOUBLE_FLAT",i[i.DOUBLE_SHARP=30]="DOUBLE_SHARP",i[i.ZERO=31]="ZERO",i[i.ONE=32]="ONE",i[i.TWO=33]="TWO",i[i.THREE=34]="THREE",i[i.FOUR=35]="FOUR",i[i.FIVE=36]="FIVE",i[i.SIX=37]="SIX",i[i.SEVEN=38]="SEVEN",i[i.EIGHT=39]="EIGHT",i[i.NINE=40]="NINE",i[i.DOT=41]="DOT",i[i.FERMATA=42]="FERMATA",i[i.INVERTED_FERMATA=43]="INVERTED_FERMATA",i[i.SPICCATO=44]="SPICCATO",i[i.TENUTO=45]="TENUTO",i[i.MARCATO=46]="MARCATO",i[i.MARCATISSIMO=47]="MARCATISSIMO",i[i.INVERTED_MARCATISSIMO=48]="INVERTED_MARCATISSIMO",i[i.P=49]="P",i[i.F=50]="F",i[i.S=51]="S",i[i.Z=52]="Z",i[i.M=53]="M",i[i.R=54]="R",i[i.SEGNO=55]="SEGNO",i[i.CODA=56]="CODA",i[i.DRUM_CLEF=57]="DRUM_CLEF",i[i.G_CLEF_SUB8=58]="G_CLEF_SUB8",i[i.G_CLEF_SUPER8=59]="G_CLEF_SUPER8",i[i.G_CLEF_SUB15=60]="G_CLEF_SUB15",i[i.G_CLEF_SUPER15=61]="G_CLEF_SUPER15",i[i.F_CLEF_SUB8=62]="F_CLEF_SUB8",i[i.F_CLEF_SUPER8=63]="F_CLEF_SUPER8",i[i.F_CLEF_SUB15=64]="F_CLEF_SUB15",i[i.F_CLEF_SUPER15=65]="F_CLEF_SUPER15",i[i.DOWN_BOW=66]="DOWN_BOW",i[i.MORDENT=67]="MORDENT",i[i.INVERTED_MORDENT=68]="INVERTED_MORDENT",i[i.TURN=69]="TURN",i[i.INVERTED_TURN=70]="INVERTED_TURN",i[i.LEFTHAND_PIZZICATO=71]="LEFTHAND_PIZZICATO",i[i.RELEASE_PED=72]="RELEASE_PED",i[i.ENGAGE_PED=73]="ENGAGE_PED",i[i.VA8=74]="VA8",i[i.VB8=75]="VB8",i[i.TRILL=76]="TRILL",i[i.MA15=77]="MA15",i[i.MB15=78]="MB15",i[i.HIGH=79]="HIGH",i[i.PLAY=80]="PLAY",i[i.MIC=81]="MIC",i[i.SNAP_PIZZICATO=82]="SNAP_PIZZICATO",i[i.NATURAL_HARMONIC=83]="NATURAL_HARMONIC",i[i.EditPen=84]="EditPen",i[i.PEDAL_BRACKET=85]="PEDAL_BRACKET",i[i.PEDAL_MIXED=86]="PEDAL_MIXED",i[i.PEDAL_SYMBOL=87]="PEDAL_SYMBOL",i))(MusicSymbol||{}),MusicSymbolDrawingStyle=(i=>(i[i.Normal=0]="Normal",i[i.Disabled=1]="Disabled",i[i.Selected=2]="Selected",i[i.Clickable=3]="Clickable",i[i.PlaybackSymbols=4]="PlaybackSymbols",i[i.FollowSymbols=5]="FollowSymbols",i[i.QFeedbackNotFound=6]="QFeedbackNotFound",i[i.QFeedbackOk=7]="QFeedbackOk",i[i.QFeedbackPerfect=8]="QFeedbackPerfect",i[i.Debug1=9]="Debug1",i[i.Debug2=10]="Debug2",i[i.Debug3=11]="Debug3",i))(MusicSymbolDrawingStyle||{}),PhonicScoreModes=(i=>(i[i.Following=0]="Following",i[i.Midi=1]="Midi",i[i.Manual=2]="Manual",i))(PhonicScoreModes||{});class LabelRenderSpecs{}class MusicSheetDrawer{constructor(e,r){this.drawableBoundingBoxElement="None",this.skyLineVisible=!1,this.bottomLineVisible=!1,this.needSpecialArrTs=[],this.phonicScoreMode=PhonicScoreModes.Manual,this.textMeasurer=e,this.splitScreenLineColor=-1,this.drawingParameters=r,this.rules=r.Rules}set Mode(e){this.phonicScoreMode=e}drawSheet(e){if(this.graphicalMusicSheet=e,this.rules=e.ParentMusicSheet.Rules,this.drawSplitScreenLine(),this.drawingParameters.drawCursors)for(const s of e.Cursors){if(!s)continue;const o=new BoundingBox$1(s);o.AbsolutePosition=s.Start,o.BorderBottom=s.End.y-s.Start.y,o.BorderRight=s.Width/2,o.BorderLeft=-s.Width/2,this.isVisible(o)&&this.drawLineAsVerticalRectangle(s,GraphicalLayers.Cursor)}this.drawingParameters.drawScrollIndicator&&this.drawScrollIndicator();const r=Math.min(this.graphicalMusicSheet.MusicPages.length,this.rules.MaxPageToDrawNumber);for(let s=0;sW[0]).filter(Boolean))||[],V=[];let te=!1;for(let W=0;WW.x-$.x))==null?void 0:M[0])==null?void 0:B.measure;break}}}catch(G){console.log("🚀 ~ error",G)}let _=0;Q?_=((I=Q.stave)==null?void 0:I.end_x)||0:_=((k=s.sourceNote.SourceMeasure.VerticalMeasureList[0])==null?void 0:k.getVFStave()).end_x;const U=0;a.ScreenPosition.x=_,a.ScreenPosition.y=z===0?(e.PositionAndShape.Parent.AbsolutePosition.y-3-U)*10:z*10}const u=["C","G","D","A","E","B","F#","C#","G#","F","Bb","Eb","Ab","Db","Gb","Cb","Fb","D#","A#","E#"];u.includes(o.text)&&(a.ScreenPosition.y=(e.PositionAndShape.Parent.AbsolutePosition.y+e.PositionAndShape.Parent.BorderTop+e.PositionAndShape.Parent.BorderMarginTop)*10),["play","listen"].includes(o.text.toLocaleLowerCase())&&o.textAlignment===TextAlignmentEnum.LeftBottom&&(a.ScreenPosition.y=(e.PositionAndShape.Parent.AbsolutePosition.y-1+e.PositionAndShape.Parent.BorderBottom)*10);const d=["ffp","p-f","sfzp","szf","sffzp"];for(let z=0;z0&&(isTopFont(e.Label.textAlignment)||[TextAlignmentEnum.CenterBottom].includes(e.Label.textAlignment))){let z=-1,N=!1;for(const Q of(c==null?void 0:c.AbstractExpressions)||[])if(Q.Label===e?z=(D=Q==null?void 0:Q.parentMeasure)==null?void 0:D.measureListIndex:(O=Q.expression)!=null&&O.TempoInBpm&&(N=Q.expression.TempoInBpm>0),N&&z>-1){a.ScreenPosition.y-=4*10;break}}this.renderLabel(e,r,a)}calculateLabel(e){var c,u;const r=new LabelRenderSpecs,s=e.Label;r.ScreenPosition=this.applyScreenTransformation(e.PositionAndShape.AbsolutePosition),r.FontHeightInPixel=this.calculatePixelDistance(s.fontHeight);const o=this.calculatePixelDistance(e.PositionAndShape.Size.width);switch(r.BitmapWidth=Math.ceil(o),r.BitmapHeight=e.TextLines?Math.ceil(r.FontHeightInPixel*(.2+e.TextLines.length)):10,s.textAlignment){case TextAlignmentEnum.LeftTop:break;case TextAlignmentEnum.LeftCenter:r.ScreenPosition.y-=r.BitmapHeight/2;break;case TextAlignmentEnum.LeftBottom:r.ScreenPosition.y-=r.BitmapHeight;break;case TextAlignmentEnum.CenterTop:r.ScreenPosition.x-=r.BitmapWidth/2;break;case TextAlignmentEnum.CenterCenter:r.ScreenPosition.x-=r.BitmapWidth/2,r.ScreenPosition.y-=r.BitmapHeight/2;break;case TextAlignmentEnum.CenterBottom:r.ScreenPosition.x-=r.BitmapWidth/2,r.ScreenPosition.y-=r.BitmapHeight,s.text==="筒音作5"&&this.rules.DYMusicScoreType==="jianpu"&&(r.ScreenPosition.x=80);break;case TextAlignmentEnum.RightTop:r.ScreenPosition.x-=r.BitmapWidth;break;case TextAlignmentEnum.RightCenter:r.ScreenPosition.x-=r.BitmapWidth,r.ScreenPosition.y-=r.BitmapHeight/2;break;case TextAlignmentEnum.RightBottom:r.ScreenPosition.x-=r.BitmapWidth,r.ScreenPosition.y-=r.BitmapHeight;break;default:throw new ArgumentOutOfRangeException("")}const a=e.PositionAndShape.Parent.DataObject,l=[1,3,7,9,15,20,22,24,28,30,36,41];this.rules.DYMusicScoreId&&this.rules.DYMusicScoreId==="1722157850347765762"&&(s.text==="."&&(r.ScreenPosition.x=142,r.ScreenPosition.y=134),s.text==="T"&&(this.needSpecialArrTs.push(r),((u=(c=a==null?void 0:a.measures)==null?void 0:c[0])==null?void 0:u.MeasureNumber)===1?r.ScreenPosition.y+=20:r.ScreenPosition.y-=20));for(let d in this.needSpecialArrTs)l.includes(Number(d))&&(this.needSpecialArrTs[d].ScreenPosition.x-=20);return r}applyScreenTransformations(e){const r=[];for(const s of e)r.push(this.applyScreenTransformation(s));return r}drawSplitScreenLine(){}renderRectangle(e,r,s,o=void 0,a=1){throw new Error("not implemented")}drawScrollIndicator(){}drawSelectionStartSymbol(e){}drawSelectionEndSymbol(e){}renderLabel(e,r,s){throw new Error("not implemented")}renderSystemToScreen(e,r,s){}drawSkyLine(e){}drawBottomLine(e){}drawInstrumentBrace(e,r){}drawGroupBracket(e,r){}isVisible(e){return!0}drawMusicSystem(e){const r=this.getSystemAbsBoundingRect(e),s=this.getSytemBoundingBoxInPixels(r);this.drawMusicSystemComponents(e,s,r)}getSytemBoundingBoxInPixels(e){const r=this.applyScreenTransformationForRect(e);return r.x=Math.round(r.x),r.y=Math.round(r.y),r}getSystemAbsBoundingRect(e){const r=e.PositionAndShape.BoundingRectangle;return new RectangleF2D(e.PositionAndShape.AbsolutePosition.x+e.PositionAndShape.BorderLeft-1,e.PositionAndShape.AbsolutePosition.y+e.PositionAndShape.BorderTop-1,r.width+6,r.height+2)}drawMusicSystemComponents(e,r,s){const o=this.graphicalMusicSheet.SelectionStartSymbol,a=this.graphicalMusicSheet.SelectionEndSymbol;this.drawingParameters.drawSelectionStartSymbol&&o!==void 0&&this.isVisible(o.PositionAndShape)&&this.drawSelectionStartSymbol(o),this.drawingParameters.drawSelectionEndSymbol&&a!==void 0&&this.isVisible(a.PositionAndShape)&&this.drawSelectionEndSymbol(a);for(const u of e.StaffLines)this.drawStaffLine(u),this.rules.RenderLyrics&&(u.LyricsDashes.length>0&&this.drawDashes(u.LyricsDashes),u.LyricLines.length>0&&this.drawLyricLines(u.LyricLines,u));for(const u of e.SystemLines)this.drawSystemLineObject(u);if(this.rules.RenderSystemLabelsAfterFirstPage||e.Parent===e.Parent.Parent.MusicPages[0])for(const u of e.Labels)u.SVGNode=this.drawLabel(u,GraphicalLayers.Notes);const l=this.graphicalMusicSheet.ParentMusicSheet.Instruments,c=l.filter(u=>u.Visible).length;for(const u of e.InstrumentBrackets)this.drawInstrumentBrace(u,e);if(l.length>0)if(c>1)for(const u of e.GroupBrackets)this.drawGroupBracket(u,e);else for(const u of e.GroupBrackets)u.Visible=!1;if(!this.leadSheet)for(const u of e.MeasureNumberLabels)u.SVGNode=this.drawLabel(u,GraphicalLayers.Notes);for(const u of e.StaffLines)this.drawStaffLineSymbols(u);this.drawingParameters.drawMarkedAreas&&this.drawMarkedAreas(e)}activateSystemRendering(e,r,s,o){return!0}drawSystemLineObject(e){}drawStaffLine(e){for(const r of e.Measures)this.drawMeasure(r),r.parentSourceMeasure&&(r.parentSourceMeasure.WasRendered=!0);this.rules.RenderLyrics&&e.LyricsDashes.length>0&&this.drawDashes(e.LyricsDashes),this.drawOctaveShifts(e),this.drawPedals(e),this.drawWavyLines(e),this.drawExpressions(e),this.skyLineVisible&&this.drawSkyLine(e),this.bottomLineVisible&&this.drawBottomLine(e)}drawLyricLines(e,r){r.LyricLines.forEach(s=>{s.Start.y+=r.PositionAndShape.AbsolutePosition.y,s.End.y+=r.PositionAndShape.AbsolutePosition.y,s.Start.x+=r.PositionAndShape.AbsolutePosition.x,s.End.x+=r.PositionAndShape.AbsolutePosition.x,this.drawGraphicalLine(s,this.rules.LyricUnderscoreLineWidth,s.colorHex)})}drawExpressions(e){}drawGraphicalLine(e,r,s="black"){return this.drawLine(e.Start,e.End,s,r)}drawLine(e,r,s="#FF0000FF",o){}drawDashes(e){e.forEach(r=>r.SVGNode=this.drawLabel(r,GraphicalLayers.Notes))}drawOctaveShifts(e){}drawStaffLines(e){if(e.StaffLines){const r=e.PositionAndShape.AbsolutePosition;for(let s=0;s<5;s++)this.drawLineAsHorizontalRectangleWithOffset(e.StaffLines[s],r,GraphicalLayers.Notes)}}drawSymbol(e,r,s,o=1,a=GraphicalLayers.Notes){}get leadSheet(){return this.graphicalMusicSheet.LeadSheet}set leadSheet(e){this.graphicalMusicSheet.LeadSheet=e}drawPage(e){if(this.isVisible(e.PositionAndShape)){for(const r of e.MusicSystems)this.isVisible(r.PositionAndShape)&&this.drawMusicSystem(r);if(e===e.Parent.MusicPages[0])for(const r of e.Labels)r.SVGNode=this.drawLabel(r,GraphicalLayers.Notes);this.drawableBoundingBoxElement&&this.drawBoundingBoxes(e.PositionAndShape,0,this.drawableBoundingBoxElement)}}drawBoundingBoxes(e,r=0,s="all"){const o=e.DataObject.constructor.name;let a=!1;s==="all"&&(a=!0),(a||o===s)&&this.drawBoundingBox(e,void 0,!0,o,r),r++,e.ChildElements.forEach(l=>this.drawBoundingBoxes(l,r,s))}drawBoundingBox(e,r=void 0,s=!1,o=void 0,a=0){let l=new RectangleF2D(e.AbsolutePosition.x+e.BorderMarginLeft,e.AbsolutePosition.y+e.BorderMarginTop,e.BorderMarginRight-e.BorderMarginLeft,e.BorderMarginBottom-e.BorderMarginTop);s&&(this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(e.AbsolutePosition.x-1,e.AbsolutePosition.y),new PointF2D(e.AbsolutePosition.x+1,e.AbsolutePosition.y),.1,OutlineAndFillStyleEnum.BaseWritingColor,r),a-1),this.drawLineAsVerticalRectangle(new GraphicalLine(new PointF2D(e.AbsolutePosition.x,e.AbsolutePosition.y-1),new PointF2D(e.AbsolutePosition.x,e.AbsolutePosition.y+1),.1,OutlineAndFillStyleEnum.BaseWritingColor,r),a-1)),l=this.applyScreenTransformationForRect(l);const c=this.renderRectangle(l,GraphicalLayers.Background,a,r,.5);if(o){const u=new Label(o),d=new LabelRenderSpecs;d.BitmapWidth=l.width,d.BitmapHeight=l.height,d.FontHeightInPixel=l.height,d.ScreenPosition=new PointF2D(l.x,l.y+12),this.renderLabel(new GraphicalLabel(u,.8,TextAlignmentEnum.CenterCenter,this.rules),a,d)}return c}drawMarkedAreas(e){for(const r of e.GraphicalMarkedAreas)r&&(r.systemRectangle&&this.drawRectangle(r.systemRectangle,GraphicalLayers.Background),r.settings&&(r.settings.SVGNode=this.drawLabel(r.settings,GraphicalLayers.Comment)),r.labelRectangle&&this.drawRectangle(r.labelRectangle,GraphicalLayers.Background),r.label&&(r.label.SVGNode=this.drawLabel(r.label,GraphicalLayers.Comment)))}drawStaffLineSymbols(e){const r=e.ParentStaff.ParentInstrument,s=e.PositionAndShape.AbsolutePosition.x,o=e.PositionAndShape.AbsolutePosition.y+2,a=e.PositionAndShape.BorderRight;r.highlight&&this.drawingParameters.drawHighlights&&this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(s,o),new PointF2D(s+a,o),4,OutlineAndFillStyleEnum.Highlighted),GraphicalLayers.Highlight);let l=MusicSymbolDrawingStyle.Disabled,c=MusicSymbol.PLAY,u=this.drawingParameters.drawActivitySymbols;switch(this.phonicScoreMode){case PhonicScoreModes.Midi:c=MusicSymbol.PLAY,this.midiPlaybackAvailable&&e.ParentStaff.audible&&(l=MusicSymbolDrawingStyle.PlaybackSymbols);break;case PhonicScoreModes.Following:c=MusicSymbol.MIC,e.ParentStaff.following&&(l=MusicSymbolDrawingStyle.FollowSymbols);break;default:u=!1;break}if(u){const d=new PointF2D(s+a+2,o);this.drawSymbol(c,l,d)}if(this.drawingParameters.drawErrors)for(const d of e.Measures){const g=d.PositionAndShape,m=g.AbsolutePosition.x,y=g.AbsolutePosition.y+2;d.hasError&&this.graphicalMusicSheet.ParentMusicSheet.DrawErroneousMeasures&&this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(m,y),new PointF2D(m+g.BorderRight,y),4,OutlineAndFillStyleEnum.ErrorUnderlay),GraphicalLayers.MeasureError)}}}class VexFlowTextMeasurer{constructor(e){this.fontSize=20,this.fontSizeStandard=this.fontSize;const r=document.createElement("canvas");this.context=r.getContext("2d"),this.rules=e}computeTextWidthToHeightRatio(e,r,s,o=void 0,a=this.fontSize){return this.context.font=VexFlowConverter.font(a,s,r,this.rules,o),this.context.measureText(e).width/a}setFontSize(e=this.fontSizeStandard){return this.fontSize=e,e}}class AbstractGraphicalExpression extends GraphicalObject{constructor(e,r,s){super(),this.expression=r,this.parentMeasure=s,this.boundingBox=new BoundingBox$1(this,e.PositionAndShape),this.parentStaffLine=e,this.parentStaffLine.AbstractExpressions.push(this),this.rules=e.ParentMusicSystem.rules}get Label(){return this.label}get ParentStaffLine(){return this.parentStaffLine}get SourceExpression(){return this.expression}get Placement(){return this.expression.Placement}}class GraphicalInstantaneousTempoExpression extends AbstractGraphicalExpression{constructor(e,r){super(r.PositionAndShape.Parent.DataObject,e,e.parentMeasure),this.label=r}get GraphicalLabel(){return this.label}updateSkyBottomLine(){}}class GraphicalInstantaneousDynamicExpression extends AbstractGraphicalExpression{constructor(e,r,s){super(r,e,s.parentSourceMeasure),this.mInstantaneousDynamicExpression=e,this.mMeasure=s}updateSkyBottomLine(){const e=this.parentStaffLine.SkyBottomLineCalculator,r=this.PositionAndShape.RelativePosition.x+this.PositionAndShape.BorderMarginLeft,s=this.PositionAndShape.RelativePosition.x+this.PositionAndShape.BorderMarginRight;let o=0;switch(this.Placement){case PlacementEnum.Above:o=this.PositionAndShape.RelativePosition.y+this.PositionAndShape.BorderMarginTop,e.updateSkyLineInRange(r,s,o);break;case PlacementEnum.Below:o=this.PositionAndShape.RelativePosition.y+this.PositionAndShape.BorderMarginBottom,e.updateBottomLineInRange(r,s,o);break;default:loglevelExports.error("Placement for GraphicalInstantaneousDynamicExpression is unknown")}}}class GraphicalContinuousDynamicExpression extends AbstractGraphicalExpression{constructor(e,r,s){super(r,e,s),this.lines=[],this.isSplittedPart=!1,this.notToBeRemoved=!1}get StartMeasure(){return this.startMeasure}set StartMeasure(e){this.startMeasure=e}get EndMeasure(){return this.endMeasure}set EndMeasure(e){this.endMeasure=e}get EndStaffLine(){return this.endMeasure?this.endMeasure.ParentStaffLine:void 0}get IsSplittedPart(){return this.isSplittedPart}set IsSplittedPart(e){this.isSplittedPart=e}get IsVerbal(){return this.ContinuousDynamic.Label&&this.ContinuousDynamic.Label.length>0}get NotToBeRemoved(){return this.notToBeRemoved}set NotToBeRemoved(e){this.notToBeRemoved=e}get Lines(){return this.lines}get ContinuousDynamic(){return this.SourceExpression}updateSkyBottomLine(){var o;const e=this.parentStaffLine.SkyBottomLineCalculator,r=this.IsVerbal?this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginLeft:0,s=this.IsVerbal?this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginRight:0;switch(!this.IsSoftAccent&&!this.IsVerbal&&this.lines.length<2&&loglevelExports.warn("Not enough lines for SkyBottomLine calculation"),this.IsVerbal||this.ContinuousDynamic.DynamicType!==ContDynamicEnum.crescendo&&this.ContinuousDynamic.DynamicType!==ContDynamicEnum.diminuendo&&loglevelExports.warn("GraphicalContinuousDynamicExpression.updateSkyBottomLine(): unhandled continuous dynamic type. start measure: "+((o=this.startMeasure)==null?void 0:o.MeasureNumber)),this.Placement){case PlacementEnum.Above:if(this.IsSoftAccent)e.updateSkyLineWithWedge(this.lines[0].Start,this.lines[0].End),e.updateSkyLineWithWedge(this.lines[2].End,this.lines[2].Start),e.updateSkyLineWithLine(this.lines[0].End,this.lines[2].End,this.lines[0].End.y);else if(!this.IsVerbal)this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?e.updateSkyLineWithWedge(this.lines[0].Start,this.lines[0].End):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&e.updateSkyLineWithWedge(this.lines[0].End,this.lines[0].Start);else{const a=this.label.PositionAndShape.BorderMarginTop+this.label.PositionAndShape.RelativePosition.y;e.updateSkyLineInRange(r,s,a)}break;case PlacementEnum.Below:if(!this.IsVerbal)this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?e.updateBottomLineWithWedge(this.lines[1].Start,this.lines[1].End):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&e.updateBottomLineWithWedge(this.lines[1].End,this.lines[1].Start);else{const a=this.label.PositionAndShape.BorderMarginBottom+this.label.PositionAndShape.RelativePosition.y;e.updateBottomLineInRange(r,s,a)}break;default:loglevelExports.error("Placement for GraphicalContinuousDynamicExpression is unknown")}}createCrescendoLines(e,r,s,o=this.rules.WedgeOpeningLength,a=this.rules.WedgeLineWidth){const l=new PointF2D(e,s),c=new PointF2D(r,s-o/2),u=new PointF2D(r,s+o/2);this.addWedgeLines(l,c,u,a)}createFirstHalfCrescendoLines(e,r,s,o=this.rules.WedgeMeasureEndOpeningLength,a=this.rules.WedgeLineWidth){const l=new PointF2D(e,s),c=new PointF2D(r,s-o/2),u=new PointF2D(r,s+o/2);this.addWedgeLines(l,c,u,a)}createSecondHalfCrescendoLines(e,r,s,o=this.rules.WedgeMeasureBeginOpeningLength,a=this.rules.WedgeOpeningLength,l=this.rules.WedgeLineWidth){const c=new PointF2D(e,s-o/2),u=new PointF2D(e,s+o/2),d=new PointF2D(r,s-a/2),g=new PointF2D(r,s+a/2);this.addDoubleLines(c,d,u,g,l)}recalculateCrescendoLines(e,r,s){const o=Math.abs(this.lines[0].Start.y-this.lines[1].Start.y)>1e-4;this.lines.clear(),o?this.createSecondHalfCrescendoLines(e,r,s):this.isSplittedPart?this.createFirstHalfCrescendoLines(e,r,s):this.createCrescendoLines(e,r,s)}createDiminuendoLines(e,r,s,o=this.rules.WedgeOpeningLength,a=this.rules.WedgeLineWidth){const l=new PointF2D(e,s-o/2),c=new PointF2D(e,s+o/2),u=new PointF2D(r,s);this.addWedgeLines(u,l,c,a)}createFirstHalfDiminuendoLines(e,r,s,o=this.rules.WedgeOpeningLength,a=this.rules.WedgeMeasureEndOpeningLength,l=this.rules.WedgeLineWidth){const c=new PointF2D(e,s-o/2),u=new PointF2D(e,s+o/2),d=new PointF2D(r,s-a/2),g=new PointF2D(r,s+a/2);this.addDoubleLines(c,d,u,g,l)}createSecondHalfDiminuendoLines(e,r,s,o=this.rules.WedgeMeasureBeginOpeningLength,a=this.rules.WedgeLineWidth){const l=new PointF2D(e,s-o/2),c=new PointF2D(e,s+o/2),u=new PointF2D(r,s);this.addWedgeLines(u,l,c,a)}recalculateDiminuendoLines(e,r,s){const o=Math.abs(this.lines[0].End.y-this.lines[1].End.y)>1e-4;this.lines.clear(),o?this.createFirstHalfDiminuendoLines(e,r,s):this.isSplittedPart?this.createSecondHalfDiminuendoLines(e,r,s):this.createDiminuendoLines(e,r,s)}createFirstHalfLines(e,r,s,o=this.rules.WedgeOpeningLength,a=this.rules.WedgeMeasureEndOpeningLength,l=this.rules.WedgeLineWidth){this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?this.createFirstHalfCrescendoLines(e,r,s,a,l):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&this.createFirstHalfDiminuendoLines(e,r,s,o,a,l)}createSecondHalfLines(e,r,s,o=this.rules.WedgeMeasureBeginOpeningLength,a=this.rules.WedgeOpeningLength,l=this.rules.WedgeLineWidth){this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?this.createSecondHalfCrescendoLines(e,r,s,o,a,l):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&this.createSecondHalfDiminuendoLines(e,r,s,o,l)}createLines(e,r,s,o=this.rules.WedgeOpeningLength,a=this.rules.WedgeLineWidth){this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?this.createCrescendoLines(e,r,s,o,a):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&this.createDiminuendoLines(e,r,s,o,a)}calcPsi(){if(this.IsVerbal){this.PositionAndShape.calculateBoundingBox();return}this.PositionAndShape.RelativePosition=this.lines[0].Start,this.PositionAndShape.BorderMarginTop=this.lines[0].End.y-this.lines[0].Start.y,this.PositionAndShape.BorderMarginBottom=this.lines[1].End.y-this.lines[1].Start.y,this.PositionAndShape.Center.y=(this.PositionAndShape.BorderMarginTop+this.PositionAndShape.BorderMarginBottom)/2,this.IsSoftAccent?(this.PositionAndShape.BorderMarginLeft=0,this.PositionAndShape.BorderMarginRight=this.lines[3].Start.x-this.lines[0].Start.x):this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?(this.PositionAndShape.BorderMarginLeft=0,this.PositionAndShape.BorderMarginRight=this.lines[0].End.x-this.lines[0].Start.x):(this.PositionAndShape.BorderMarginLeft=this.lines[0].End.x-this.lines[0].Start.x,this.PositionAndShape.BorderMarginRight=0)}cleanUp(){this.lines.clear()}shiftYPosition(e){this.IsVerbal?(this.PositionAndShape.RelativePosition.y+=e,this.PositionAndShape.calculateBoundingBox()):(this.lines[0].Start.y+=e,this.lines[0].End.y+=e,this.lines[1].End.y+=e)}squeeze(e){this.IsVerbal||Math.abs(this.lines[0].End.x-this.lines[0].Start.x)0?this.lines[0].Start.x+=e:(this.lines[0].End.x+=e,this.lines[1].End.x+=e):e<0?this.lines[0].Start.x+=e:(this.lines[0].End.x+=e,this.lines[1].End.x+=e),this.calcPsi())}addWedgeLines(e,r,s,o){const a=new GraphicalLine(e,r,o),l=new GraphicalLine(e,s,o);this.rules.DefaultColorMusic&&(a.colorHex=this.rules.DefaultColorMusic,l.colorHex=this.rules.DefaultColorMusic),this.lines.push(a),this.lines.push(l)}addDoubleLines(e,r,s,o,a){const l=new GraphicalLine(e,r,a),c=new GraphicalLine(s,o,a);this.rules.DefaultColorMusic&&(l.colorHex=this.rules.DefaultColorMusic,c.colorHex=this.rules.DefaultColorMusic),this.lines.push(l),this.lines.push(c)}}class DrawingParameters{constructor(e=DrawingParametersEnum.default,r){this.drawCursors=!0,this.drawTitle=!0,this.drawSubtitle=!0,this.drawLyricist=!0,this.drawComposer=!0,this.drawCopyright=!1,this.drawCredits=!0,this.drawPartNames=!0,this.fingeringPosition=PlacementEnum.Left,this.drawHiddenNotes=!1,this.rules=r,this.rules||(this.rules=new EngravingRules),this.DrawingParametersEnum=e}set DrawingParametersEnum(e){switch(this.drawingParametersEnum=e,e){case DrawingParametersEnum.allon:this.setForAllOn();break;case DrawingParametersEnum.thumbnail:this.setForThumbnail();break;case DrawingParametersEnum.leadsheet:this.setForLeadsheet();break;case DrawingParametersEnum.compact:this.setForCompactMode();break;case DrawingParametersEnum.compacttight:this.setForCompactTightMode();break;case DrawingParametersEnum.default:default:this.setForDefault()}}get DrawingParametersEnum(){return this.drawingParametersEnum}setForAllOn(){this.drawHighlights=!0,this.drawErrors=!0,this.drawSelectionStartSymbol=!0,this.drawSelectionEndSymbol=!0,this.drawCursors=!0,this.drawActivitySymbols=!0,this.drawScrollIndicator=!0,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0,this.DrawTitle=!0,this.DrawSubtitle=!0,this.DrawComposer=!0,this.DrawLyricist=!0,this.drawCredits=!0,this.DrawPartNames=!0,this.drawHiddenNotes=!0,this.rules.CompactMode=!1}setForDefault(){this.rules.loadDefaultValues(),this.setForAllOn(),this.drawHiddenNotes=!1}setForThumbnail(){this.drawHighlights=!1,this.drawErrors=!1,this.drawSelectionStartSymbol=!1,this.drawSelectionStartSymbol=!1,this.drawCursors=!1,this.drawActivitySymbols=!1,this.drawScrollIndicator=!1,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0,this.drawHiddenNotes=!1}setForCompactMode(){this.rules.CompactMode=!0,this.DrawCredits=!1,this.drawHiddenNotes=!1}setForCompactTightMode(){this.setForCompactMode(),this.DrawPartNames=!1,this.rules.VoiceSpacingMultiplierVexflow=.65,this.rules.VoiceSpacingAddendVexflow=2,this.rules.MinSkyBottomDistBetweenStaves=1,this.rules.MinSkyBottomDistBetweenSystems=1,this.rules.BetweenStaffDistance=2.5,this.rules.StaffDistance=3.5,this.rules.MinimumDistanceBetweenSystems=1,this.rules.PageBottomMargin=0,this.rules.PageLeftMargin=2,this.rules.PageRightMargin=2}setForLeadsheet(){this.drawHighlights=!1,this.drawErrors=!1,this.drawSelectionStartSymbol=!0,this.drawSelectionEndSymbol=!0,this.drawCursors=!0,this.drawActivitySymbols=!1,this.drawScrollIndicator=!0,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0}get DrawCredits(){return this.drawCredits}set DrawCredits(e){this.drawCredits=e,this.DrawComposer=e,this.DrawTitle=e,this.DrawSubtitle=e,this.DrawLyricist=e,this.DrawCopyright=e}get DrawTitle(){return this.drawTitle}set DrawTitle(e){this.drawTitle=e,this.rules.RenderTitle=e,e||(this.DrawSubtitle=!1)}get DrawSubtitle(){return this.drawSubtitle}set DrawSubtitle(e){this.drawSubtitle=e,this.rules.RenderSubtitle=e,e&&(this.DrawTitle=!0)}get DrawComposer(){return this.drawComposer}set DrawComposer(e){this.drawComposer=e,this.rules.RenderComposer=e}get DrawLyricist(){return this.drawLyricist}set DrawLyricist(e){this.drawLyricist=e,this.rules.RenderLyricist=e}get DrawCopyright(){return this.drawCopyright}set DrawCopyright(e){this.drawCopyright=e,this.rules.RenderCopyright=e}get DrawPartNames(){return this.drawPartNames}set DrawPartNames(e){this.drawPartNames=e,this.rules.RenderPartNames=e,this.rules.RenderPartNames||(this.rules.RenderPartAbbreviations=!1)}get FingeringPosition(){return this.fingeringPosition}set FingeringPosition(e){this.fingeringPosition=e,this.rules.FingeringPosition=e}get Rules(){return this.rules}set Rules(e){this.rules=e}}class GraphicalUnknownExpression extends AbstractGraphicalExpression{constructor(e,r,s,o,a=void 0){super(e,new AbstractExpression(s),o),this.label=r,this.sourceMultiExpression=a}updateSkyBottomLine(){const e=this.parentStaffLine.SkyBottomLineCalculator,r=this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginLeft,s=this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginRight;switch(this.Placement){case PlacementEnum.Above:const o=this.label.PositionAndShape.BorderMarginTop+this.label.PositionAndShape.RelativePosition.y;e.updateSkyLineInRange(r,s,o);break;case PlacementEnum.Below:const a=this.label.PositionAndShape.BorderMarginBottom+this.label.PositionAndShape.RelativePosition.y;e.updateBottomLineInRange(r,s,a);break;default:loglevelExports.error("Placement for GraphicalUnknownExpression is unknown")}}}const VF$c=Vex.Flow;class VexFlowBackend{getInnerElement(){return this.inner}getCanvas(){return this.canvas}getRenderElement(){let e=this.canvas;return this.getVexflowBackendType()===VF$c.Renderer.Backends.CANVAS&&(e=this.inner),e}getRenderer(){return this.renderer}removeAllChildrenFromContainer(e){for(;e.children.length!==0;)e.removeChild(e.children.item(0))}removeFromContainer(e){const r=this.getRenderElement();for(let s=0;s \r<`)),a.download="opensheetmusicdisplay_download.svg",a.innerHTML=window.location.href+"/download",document.body.appendChild(a)}}const unitInPixels=10;class VexFlowMusicSheetDrawer extends MusicSheetDrawer{constructor(e=new DrawingParameters){super(new VexFlowTextMeasurer(e.Rules),e),this.backends=[],this.zoom=1,this.pageIdx=0,this.getDotId=(r,s)=>s?String(r.Label.PositionAndShape.RelativePosition[s]):String(r.Label.PositionAndShape.RelativePosition.x)+String(r.Label.PositionAndShape.RelativePosition.y),this.hasDot=(r,s,o,a)=>{const l=s||Object.values(a);for(const c of l){if(o)return r.x===c.x&&r.y===c.y;if(r.x===c.x)return!0}return!1}}get Zoom(){return this.zoom}get Backends(){return this.backends}initializeBackendForPage(e){this.backend=this.backends[e.PageNumber-1]}drawSheet(e){var r,s,o;this.rules.DefaultVexFlowNoteFont==="gonville"&&(Vex.Flow.DEFAULT_FONT_STACK=[(r=Vex.Flow.Fonts)==null?void 0:r.Gonville,(s=Vex.Flow.Fonts)==null?void 0:s.Bravura,(o=Vex.Flow.Fonts)==null?void 0:o.Custom]),Vex.Flow.STAVE_LINE_THICKNESS=this.rules.StaffLineWidth*unitInPixels,Vex.Flow.STEM_WIDTH=this.rules.StemWidth*unitInPixels,Vex.Flow.DEFAULT_NOTATION_FONT_SCALE=this.rules.VexFlowDefaultNotationFontScale,Vex.Flow.DEFAULT_TAB_FONT_SCALE=this.rules.VexFlowDefaultTabFontScale,this.pageIdx=0;for(const a of e.MusicPages){if(a.PageNumber>this.rules.MaxPageToDrawNumber)break;const l=this.backends[this.pageIdx];l.graphicalMusicPage=a,l.scale(this.zoom),this.pageIdx+=1}this.pageIdx=0,this.backend=this.backends[0],super.drawSheet(e)}drawPage(e){e&&(this.backend=this.backends[e.PageNumber-1],super.drawPage(e),this.pageIdx+=1)}clear(){for(const e of this.backends)e.clear()}setZoom(e){this.zoom=e}calculatePixelDistance(e){return e*unitInPixels}drawStaffLine(e){const r=this.backend.getContext().openGroup();r&&r.classList.add("staffline"),super.drawStaffLine(e);const s=e.PositionAndShape.AbsolutePosition;this.rules.RenderSlurs&&this.drawSlurs(e,s),this.backend.getContext().closeGroup(),this.rules.RenderGlissandi&&this.drawGlissandi(e,s)}drawSlurs(e,r){var o,a,l,c;const s=(o=window.GYM)==null?void 0:o.vfcurveItem;for(let u=0;u(m.index?m.index===u:!0)&&m.MeasureNumberXML==d.staffEntries[d.staffEntries.length-1].parentMeasure.MeasureNumber);g&&(d.bezierEndControlPt.y+=(a=g==null?void 0:g.bezierEndControlPt)!=null&&a.y?g.bezierEndControlPt.y:0,d.bezierEndPt.y+=(l=g==null?void 0:g.bezierEndPt)!=null&&l.y?g.bezierEndPt.y:0,d.bezierStartControlPt.y+=(c=g==null?void 0:g.bezierStartControlPt)!=null&&c.y?g.bezierStartControlPt.y:0)}catch(g){console.log(g)}this.drawSlur(d,r)}}}drawGlissandi(e,r){for(const s of e.GraphicalGlissandi)this.drawGlissando(s,r)}drawGlissando(e,r){if(e.StaffLine.ParentStaff.isTab||e.calculateLine(this.rules),e.Line){const s=new PointF2D(e.Line.Start.x+r.x,e.Line.Start.y),o=new PointF2D(e.Line.End.x+r.x,e.Line.End.y);this.drawLine(s,o,e.Color,e.Width)}else{const s=e.vfTie;if(s){const o=this.backend.getContext();s.setContext(o),s.draw()}}}drawSlur(e,r){const s=[];let o,a,l,c;this.rules.DYMusicScoreType==="jianpu"?((e.placement>0||e.bezierStartPt.y>0)&&(e.bezierStartPt.y=-.8,e.bezierStartControlPt.y=-2.5),o=new PointF2D(e.bezierStartPt.x+r.x,e.bezierStartPt.y+r.y),a=new PointF2D(e.bezierStartControlPt.x+r.x,e.bezierStartControlPt.y+r.y),l=new PointF2D(e.bezierEndControlPt.x+r.x,e.bezierStartControlPt.y+r.y),c=new PointF2D(e.bezierEndPt.x+r.x,e.bezierStartPt.y+r.y)):(o=new PointF2D(e.bezierStartPt.x+r.x,e.bezierStartPt.y+r.y),a=new PointF2D(e.bezierStartControlPt.x+r.x,e.bezierStartControlPt.y+r.y),l=new PointF2D(e.bezierEndControlPt.x+r.x,e.bezierEndControlPt.y+r.y),c=new PointF2D(e.bezierEndPt.x+r.x,e.bezierEndPt.y+r.y)),s.push(this.applyScreenTransformation(o)),s.push(this.applyScreenTransformation(a)),s.push(this.applyScreenTransformation(l)),s.push(this.applyScreenTransformation(c)),e.placement===PlacementEnum.Above?(o.y-=.05,a.y-=.3,l.y-=.3,c.y-=.05):(o.y+=.05,a.y+=.3,l.y+=.3,c.y+=.05),s.push(this.applyScreenTransformation(o)),s.push(this.applyScreenTransformation(a)),s.push(this.applyScreenTransformation(l)),s.push(this.applyScreenTransformation(c)),e.SVGElement=this.backend.renderCurve(s)}drawMeasure(e){e.setAbsoluteCoordinates(e.PositionAndShape.AbsolutePosition.x*unitInPixels,e.PositionAndShape.AbsolutePosition.y*unitInPixels);const r=this.backend.getContext();try{e.draw(r)}catch(o){loglevelExports.warn("VexFlowMusicSheetDrawer.drawMeasure",o)}let s=0;for(const o of e.staffEntries)this.drawStaffEntry(o),s=this.drawBuzzRolls(o,s)}drawBuzzRolls(e,r){var s;for(const o of e.graphicalVoiceEntries)for(const a of o.notes)if((s=a.sourceNote.TremoloInfo)!=null&&s.tremoloUnmeasured){const l=this.rules.TremoloBuzzRollThickness,c=.9,u=.5,d=a;let g,m;const y=d.vfnote[0].getStemDirection();let b;if(this.backend instanceof SvgVexFlowBackend&&(b=d.getStemSVG()),(b==null?void 0:b.getBbox)!==void 0){const M=b.getBBox();g=new PointF2D(M.x/10,M.y/10),m=M.height/10}else m=d.vfnote[0].getStemLength()/10,g=new PointF2D(d.vfnote[0].getStem().x_begin/10,d.vfnote[0].getStem().y_top/10),y===1&&(g.y-=m);let A=g.y+m/3;d.vfnote[0].getBeamCount()>1&&(A=g.y+m/2,y===-1&&(A-=u+.2));const E=g.x-.5,x=A,P=[],T=[new PointF2D(0,-l),new PointF2D(c-l,0),new PointF2D(-c+l,-u),new PointF2D(0,-l),new PointF2D(c,0),new PointF2D(0,l),new PointF2D(-c+l,0),new PointF2D(c-l,u),new PointF2D(0,l),new PointF2D(-c,0)];let C=new PointF2D(E,x);P.push(C);for(const M of T)C=P.last(),P.push(new PointF2D(C.x+M.x,C.y-M.y));this.DrawPath(P,d.ParentMusicPage,!0,`buzzRoll${r}`),r++}return r}drawLine(e,r,s="#000000FF",o=.2){return e=this.applyScreenTransformation(e),r=this.applyScreenTransformation(r),this.backend.renderLine(e,r,s,o*unitInPixels)}DrawOverlayLine(e,r,s,o="#FF0000FF",a=.2,l){if(!s.PageNumber||s.PageNumber>this.backends.length||s.PageNumber<1){console.log("VexFlowMusicSheetDrawer.drawOverlayLine: invalid page number / music page number doesn't correspond to an existing backend.");return}const c=s.PageNumber-1,u=this.backends[c];return e=this.applyScreenTransformation(e),r=this.applyScreenTransformation(r),l||(l=`overlayLine ${e.x}/${e.y}`),u.renderLine(e,r,o,a*unitInPixels,l)}DrawPath(e,r,s=!0,o){const a=r.PageNumber-1,l=this.backends[a],c=[];for(const u of e)c.push(this.applyScreenTransformation(u));return l.renderPath(c,s,o)}drawSkyLine(e){const r=e.PositionAndShape.AbsolutePosition,s=e.PositionAndShape.Size.width;this.drawSampledLine(e.SkyLine,r,s)}drawBottomLine(e){const r=new PointF2D(e.PositionAndShape.AbsolutePosition.x,e.PositionAndShape.AbsolutePosition.y),s=e.PositionAndShape.Size.width;this.drawSampledLine(e.BottomLine,r,s,"#0000FFFF")}drawSampledLine(e,r,s,o="#FF0000FF"){const a=[];let l=0;for(let u=0;u0){const u=this.rules.SamplingUnit;let d=new PointF2D(c.x,c.y),g=new PointF2D(a[0]/u+c.x,c.y);this.drawLine(d,g,o);let m,y;e[0]>=0&&(m=new PointF2D(a[0]/u+c.x,c.y),y=new PointF2D(a[0]/u+c.x,c.y+e[a[0]]),this.drawLine(m,y,o));for(let b=1;b0)for(const r of e.FingeringEntries)r.SVGNode=this.drawLabel(r,GraphicalLayers.Notes);if(e.graphicalChordContainers!==void 0&&e.graphicalChordContainers.length>0)for(const r of e.graphicalChordContainers){const s=r.GraphicalLabel;s.SVGNode=this.drawLabel(s,GraphicalLayers.Notes)}this.rules.RenderLyrics&&e.LyricsEntries.length>0&&this.drawLyrics(e.LyricsEntries,GraphicalLayers.Notes)}drawLyrics(e,r){e.forEach(s=>{const o=s.GraphicalLabel;o.Label.colorDefault=this.rules.DefaultColorLyrics,o.SVGNode=this.drawLabel(o,r)})}drawInstrumentBrace(e,r){e.draw(this.backend.getContext())}drawGroupBracket(e,r){e.draw(this.backend.getContext())}drawOctaveShifts(e){for(const r of e.OctaveShifts)if(r){const s=r,o=this.backend.getContext(),a=s.getTextBracket();this.rules.DefaultColorMusic&&(a.render_options.color=this.rules.DefaultColorMusic),a.setContext(o);try{a.draw()}catch(l){loglevelExports.warn(l)}}}drawPedals(e){for(const r of e.Pedals)if(r){const s=r,o=this.backend.getContext(),a=s.getPedalMarking();a.render_options.color=this.rules.DefaultColorMusic,a.setContext(o),a.draw()}}drawWavyLines(e){for(const r of e.WavyLines)if(r){const s=r,o=this.backend.getContext(),a=s.getVibratoBracket();a.setContext(o),a.draw()}}getMaxExpressionsYAndDots(e){var u,d;const r=[];let s=0;for(const g of e.measures)r.push(g.measureNumber);const o={},a={},l={};for(const g of e.AbstractExpressions)if(g instanceof GraphicalUnknownExpression&&r.includes(g.parentMeasure.MeasureNumber)){const m=this.getDotId(g),y=this.getDotId(g,"x");a[m]||(a[m]=[]),l[y]||(l[y]=[]),this.hasDot(g.Label.PositionAndShape.RelativePosition,a[m],!0)||(a[m].push(g.Label.PositionAndShape.RelativePosition),l[y].push(g.Label.PositionAndShape.RelativePosition)),o[m]=g.Label.PositionAndShape.RelativePosition}let c=0;for(const g of e.AbstractExpressions){const m=(u=g.parentMeasure)==null?void 0:u.MeasureNumber;if(g instanceof GraphicalUnknownExpression&&r.includes(m)){const y=(d=g.parentMeasure.verticalMeasureList[0])==null?void 0:d.stave,b=(y==null?void 0:y.end_x)-(y==null?void 0:y.x),S=this.getDotId(g,"x");if((l[S]||[]).length===1&&c!==m){const A=g.Label.PositionAndShape.AbsolutePosition.y;s=s===0?A:Math.min(s,A)}(l[S]||[]).length!==1&&b/10Number.EPSILON){let o=Math.min(...e.Lines.map(l=>l.Start.x)),a=Math.min(...e.Lines.map(l=>l.Start.y));e.Lines[0].Start.x=o,e.Lines[1].Start.x=o,e.Lines[0].Start.y=a+this.rules.WedgeOpeningLength/2,e.Lines[1].Start.y=a+this.rules.WedgeOpeningLength*2,e.Lines[0].End.y+=this.rules.WedgeOpeningLength/2,e.Lines[1].End.y+=this.rules.WedgeOpeningLength}}catch(o){}const s=this.backend.getContext();s.openGroup("lineGroup");for(const o of e.Lines){const a=new PointF2D(e.ParentStaffLine.PositionAndShape.AbsolutePosition.x+o.Start.x,e.ParentStaffLine.PositionAndShape.AbsolutePosition.y+o.Start.y),l=new PointF2D(e.ParentStaffLine.PositionAndShape.AbsolutePosition.x+o.End.x,e.ParentStaffLine.PositionAndShape.AbsolutePosition.y+o.End.y);this.drawLine(a,l,(r=o.colorHex)!=null?r:"#000000",o.Width)}s.closeGroup()}}renderLabel(e,r,s){return this._renderLabel(e,s)}_renderLabel(e,r){var d;if(!e.Label.print)return;const s=e.Label.fontHeight*unitInPixels,{font:o}=e.Label;let a;this.rules.ColoringEnabled&&(a=e.Label.colorDefault,e.ColorXML&&(a=e.ColorXML),e.Label.color&&(a=e.Label.color.toString()),a||(a=this.rules.DefaultColorLabel));let{fontStyle:l,fontFamily:c}=e.Label;l||(l=this.rules.DefaultFontStyle),c||(c=this.rules.DefaultFontFamily);let u;for(let g=0;g<((d=e.TextLines)==null?void 0:d.length);g++){const m=e.TextLines[g],y=this.calculatePixelDistance(m.xOffset),b=new PointF2D(r.ScreenPosition.x+y,r.ScreenPosition.y),S=this.backend.renderText(s,l,o,m.text,r.FontHeightInPixel,b,a,e.Label.fontFamily);u?u.appendChild(S):u=S,r.ScreenPosition.y=r.ScreenPosition.y+r.FontHeightInPixel,e.TextLines.length>1&&(r.ScreenPosition.y+=this.rules.SpacingBetweenTextLines)}return u}renderRectangle(e,r,s,o,a){return this.backend.renderRectangle(e,s,o,a)}applyScreenTransformation(e){return new PointF2D(e.x*unitInPixels,e.y*unitInPixels)}applyScreenTransformationForRect(e){return new RectangleF2D(e.x*unitInPixels,e.y*unitInPixels,e.width*unitInPixels,e.height*unitInPixels)}}class TabNote extends Note$1{constructor(e,r,s,o,a,l,c,u){super(e,r,s,o,a),this.stringNumberTab=l,this.fretNumber=c,this.bendArray=u}get StringNumberTab(){return this.stringNumberTab}get FretNumber(){return this.fretNumber}get BendArray(){return this.bendArray}hasTabEffects(){var e;return((e=this.bendArray)==null?void 0:e.length)>0}}const VF$a=Vex.Flow,_VexFlowConverter=class{static durations(i,e){const r=[],s=i.clone();for(;s.RealValue>1e-4;){const o=s.RealValue;if(o>=2)r.push("1/2"),s.Sub(new Fraction$1(2,1));else if(o>=1)r.push("w"),s.Sub(new Fraction$1(1,1));else if(o<1&&o>=.5){if(e&&o>.5)return["w"];r.push("h"),s.Sub(new Fraction$1(1,2))}else if(o<.5&&o>=.25){if(e&&o>.25)return["h"];r.push("q"),s.Sub(new Fraction$1(1,4))}else if(o<.25&&o>=.125){if(e&&o>.125)return["q"];r.push("8"),s.Sub(new Fraction$1(1,8))}else if(o<.125&&o>=.0625){if(e&&o>.0625)return["8"];r.push("16"),s.Sub(new Fraction$1(1,16))}else if(o<.0625&&o>=.03125){if(e&&o>.03125)return["16"];r.push("32"),s.Sub(new Fraction$1(1,32))}else if(o<.03125&&o>=.015625){if(e&&o>.015625)return["32"];r.push("64"),s.Sub(new Fraction$1(1,64))}else{if(e)return["64"];r.push("128"),s.Sub(new Fraction$1(1,128))}}return r}static pitch(i,e,r,s=void 0,o=void 0){let a=o;o===void 0&&(a=3),e&&o===void 0&&(a=0,r.ClefType===ClefEnum.F&&(a=2),r.ClefType===ClefEnum.C&&(a=2));const l=NoteEnum[i.FundamentalNote].toLowerCase(),c=Pitch.accidentalVexflow(i.Accidental),u=i.Octave-r.OctaveOffset+a;let d="";return s&&(d=this.NoteHeadCode(s)),[l+"n/"+u+d,c,r]}static restToNotePitch(i,e){let r=i.Octave;switch(e){case ClefEnum.C:case ClefEnum.F:{r+=2;break}case ClefEnum.G:}return new Pitch(i.FundamentalNote,r,AccidentalEnum.NONE)}static NoteHeadCode(i){const e="/",r=i.Filled?"2":"1";switch(i.Shape){case NoteHeadShape.NORMAL:return"";case NoteHeadShape.DIAMOND:return e+"D"+r;case NoteHeadShape.TRIANGLE:return e+"T"+r;case NoteHeadShape.TRIANGLE_INVERTED:return e+"TI";case NoteHeadShape.X:return e+"X"+r;case NoteHeadShape.CIRCLEX:return e+"X3";case NoteHeadShape.RECTANGLE:return e+"R"+r;case NoteHeadShape.SQUARE:return e+"S"+r;case NoteHeadShape.SLASH:return"";default:return""}}static GhostNotes(i){const e=[],r=_VexFlowConverter.durations(i,!1);for(const s of r)e.push(new VF$a.GhostNote({duration:s}));return e}static StaveNote(i){var B,I,k,D,O,z,N,Q,_,U,G,H,R,V,te,W,$,de,oe;i.sortForVexflow();const e=i.notes,r=i.parentStaffEntry.parentMeasure.parentSourceMeasure.Rules,s=e[0];let o=[],a;const l=[],c=s.graphicalNoteLength,u=s.sourceNote.NoteTuplet!==void 0;let d=_VexFlowConverter.durations(c,u)[0];_VexFlowConverter.idx+=1,s.sourceNote.TypeLength!==void 0&&s.sourceNote.TypeLength!==c&&s.sourceNote.TypeLength.RealValue!==0&&(d=_VexFlowConverter.durations(s.sourceNote.TypeLength,u)[0],s.numberOfDots=s.sourceNote.DotsXml);let g,m=s.numberOfDots,y=!1,b=0,S=!1,A;for(const Y of e){if(m=1&&Se.length-1>=ne+1&&(ge=(O=(D=Se[ne-1])==null?void 0:D.graphicalVoiceEntries[0])==null?void 0:O.parentVoiceEntry,ee=(N=(z=Se[ne+1])==null?void 0:z.graphicalVoiceEntries[0])==null?void 0:N.parentVoiceEntry,ge&&ee)){const F=ge.Notes[0],se=ee.Notes[0];if((Q=F.NoteBeam)!=null&&Q.Notes.includes(se)&&se.ParentStaffEntry.ParentStaff.StafflineCount!==1){const re=ge.Notes.last().Pitch,J=Y.Clef(),K=_VexFlowConverter.pitch(_VexFlowConverter.restToNotePitch(re.getTransposedPitch(-2),J.ClefType),!1,J);re.FundamentalNote===4&&(o=[K[0]])}}}}if((Y.sourceNote.IsWholeMeasureRest||c.RealValue===Y.sourceNote.SourceMeasure.ActiveTimeSignature.RealValue)&&(o=r.DYMusicScoreType==="staff"?["d/5"]:["R/5"],d="w",m=0,y=!0,b=r.WholeRestXShiftVexflow*unitInPixels),[...Y.sourceNote.ParentStaff.Voices].filter(pe=>(pe==null?void 0:pe.VoiceId)!=1).length){const pe=Y.parentVoiceEntry.parentStaffEntry.graphicalVoiceEntries,Se=Y.parentVoiceEntry.parentVoiceEntry.ParentVoice.VoiceId;let ge,ee;for(const ne of pe)for(const F of ne.notes){if(F===Y||F.sourceNote.isRest()||!F.sourceNote.PrintObject){Y.lineShift=-2;continue}const se=F.parentVoiceEntry.parentVoiceEntry.WantedStemDirection,re=Se===1||Se===5,J=re?1:-1,ie=F.sourceNote.Pitch.getHalfTone(),fe=J===1&&ie>ge,he=J===-1&&ie0){let ne=3;const F=Y.Clef();switch(F.ClefType){case ClefEnum.F:ne=5;break;case ClefEnum.C:ne=4;break}A=Pitch.fromHalftone(ge),o=[_VexFlowConverter.pitch(A,!0,F,void 0,ne)[0]]}}break}Y.sourceNote.Notehead&&(Y.sourceNote.Notehead.Shape,NoteHeadShape.SLASH);const Z=Y.vfpitch;if((U=(_=Z[2])==null?void 0:_.Parent)!=null&&U.Instructions)for(let ue=0,ae=Z[2].Parent.Instructions.length;ue0&&r.RenderLyrics&&r.LyricsUseXPaddingForLongLyrics){const ae=i.parentStaffEntry.parentMeasure,pe=ae.staffEntries.indexOf(i.parentStaffEntry),Se=[];for(let ne=pe+1;ne.25){Z=!1;break}if(ne.LyricsEntries.length>0)break;const se=Fraction$1.minus(F,ee);ue+=se.RealValue*32,ee=F}}if(r.RenderLyrics&&r.LyricsUseXPaddingForLongLyrics&&Y.length>0&&Z){let ae=!1,pe=0;for(const ge of e)if(ge.sourceNote.Length.RealValue<=.125){ae=!0;break}let Se=!1;for(const ge of Y){const ee=r.LyricsXPaddingWidthThreshold;let ne=ge.GraphicalLabel.PositionAndShape.Size.width;if(ge.hasDashFromLyricWord()&&(ne+=.5),ne>ee){pe+=ne-ee;const F=i.parentStaffEntry,se=F.parentMeasure.staffEntries,J=se.indexOf(F)===se.length-1;J&&(ue+=r.LyricsXPaddingReductionForLastNoteInMeasure),ae||(ue+=r.LyricsXPaddingReductionForLongNotes),(r.LyricsXPaddingForLastNoteInMeasure||!J)&&ne>ee+ue&&(Se=!0,pe-=ue);break}}Se&&(E.paddingRight=10*r.LyricsXPaddingFactorForLongLyrics*pe)}}const T=i.notes[0].lineShift;if(T!==0&&(E.getKeyProps()[0].line+=T),e.length>1)for(let Y=0;Y1&&i.notes[0].sourceNote.ParentVoiceEntry.ParentVoice.VoiceId==1&&(E.getKeyProps()[0].line=4.5);const M=(W=window.GYM)==null?void 0:W.customBassDrum;if(M&&E.isRest()&&(E.getDuration()==="q"&&(E.getKeyProps()[0].line=M),E.getDuration()==="h"&&(E.getKeyProps()[0].line=M-1)),E.getKeyProps().forEach(({line:Y},Z)=>i.notes[Z].staffLine=Y),(r.LedgerLineWidth||r.LedgerLineStrokeStyle)&&(E.ledgerLineStyle||(E.ledgerLineStyle={}),r.LedgerLineWidth&&(E.ledgerLineStyle.lineWidth=r.LedgerLineWidth),r.LedgerLineStrokeStyle&&(E.ledgerLineStyle.strokeStyle=r.LedgerLineStrokeStyle)),r.ColoringEnabled){const Y=r.DefaultColorStem;let Z=i.parentVoiceEntry.StemColor;!Z&&Y&&(Z=Y);const ue={fillStyle:Z,strokeStyle:Z};Z&&(E.setStemStyle(ue),E.flag&&r.ColorFlags&&E.setFlagStyle(ue))}if(E.x_shift=b,i.parentVoiceEntry.IsGrace&&i.notes[0].sourceNote.NoteBeam&&(i.parentVoiceEntry.WantedStemDirection=i.notes[0].sourceNote.NoteBeam.Notes[0].ParentVoiceEntry.WantedStemDirection),i.parentVoiceEntry){let Y=i.parentVoiceEntry.WantedStemDirection;const Z=(($=window.GYM)==null?void 0:$.stemDirectionNote)||[],ue=Z==null?void 0:Z.find(ae=>ae.id===i.notes[0].sourceNote.NoteToGraphicalNoteObjectId);switch(ue&&typeof(ue==null?void 0:ue.direction)=="number"&&(Y=ue.direction),Y){case StemDirectionType.Up:E.setStemDirection(VF$a.Stem.UP),i.parentVoiceEntry.StemDirection=StemDirectionType.Up;break;case StemDirectionType.Down:E.setStemDirection(VF$a.Stem.DOWN),i.parentVoiceEntry.StemDirection=StemDirectionType.Down;break}}for(let Y=0,Z=e.length;Y0&&ae==="single"){const pe=new VF$a.Tremolo(ue);pe.extra_stroke_scale=r.TremoloStrokeScale,pe.y_spacing_scale=r.TremoloYSpacingScale,E&&E.duration==="w"&&E.stem.setExtension(-9),E.addModifier(Y,pe)}if(ue>0&&ae==="start"&&this.noteTremoloList.push(E),ue>0&&ae==="stop"){if(this.noteTremoloList.push(E),this.noteTremoloList.filter(ge=>ge.duration==="w").length===this.noteTremoloList.length)try{this.noteTremoloList[0].keyProps&&this.noteTremoloList[1].keyProps&&((de=(this.noteTremoloList[0].keyProps[0].line>this.noteTremoloList[1].keyProps[0].line?this.noteTremoloList[1]:this.noteTremoloList[0]).stem)==null||de.setResetHeight(30))}catch(ge){console.error("设置都是全音符,stem的高度失败")}const Se=new VF$a.Tremolo(ue,[...this.noteTremoloList]);Se.extra_stroke_scale=1.2,Se.y_spacing_scale=1.2,Se.x_shift=-30,E.addModifier(Y,Se),this.noteTremoloList=[]}this.glissandoList.length&&(E.setVibrato(this.glissandoList[0].vfnote[0]),this.glissandoList=[]),e[Y].sourceNote.glissandoType==="start"&&this.glissandoList.push(e[Y])}if(this.slideNote){try{E.setSlideNote(this.slideNote)}catch(Y){console.error(Y)}this.slideNote=null}if(i.notes[0].sourceNote.slideType==="start"&&(this.slideNote=E),P.Length.RealValue===.25&&P.Notehead&&P.Notehead.Filled===!1){const Y=E.getKeyProps();for(let Z=0;Z1){let Y=E.getKeyProps().filter(ue=>!ue.code&&ue.line>3);!((oe=window.GYM)==null?void 0:oe.stemDirectionNote)&&Y.length===o.length&&E.setStemDirection(-1)}r.DYMusicScoreType==="jianpu"&&window&&window.sett&&window.sett.keySignature&&E.addAccidental(0,new VF$a.Accidental("#"));try{const Y=["b","#","§","º","X"],Z={b:"b","#":"#","§":"n",º:"bb",X:"##"};for(const ue of e){const ae=ue.sourceNote.voiceEntry.Timestamp;for(const pe of ue.sourceNote.SourceMeasure.StaffLinkedExpressions)for(const Se of pe){const ge=Fraction$1.Equal(ae,Se.Timestamp),ne=Se.EntriesList.map(F=>F.label).filter(F=>Y.includes(F)).map(F=>Z[F]);if(ge){for(const F of ne)F&&E.addAnnotation(0,new VF$a.Annotation(F));break}}}}catch(Y){}return E}static generateArticulations(i,e,r){var s,o,a,l,c,u;if(!(!i||i.getAttribute("type")==="GhostNote"))for(const d of e.sourceNote.ParentVoiceEntry.Articulations){let g=VF$a.Modifier.Position.ABOVE;i.getStemDirection()===VF$a.Stem.UP&&(g=VF$a.Modifier.Position.BELOW);let m;const y=d.articulationEnum;switch(r.ArticulationPlacementFromXML&&(d.placement===PlacementEnum.Above?g=VF$a.Modifier.Position.ABOVE:d.placement===PlacementEnum.Below&&(g=VF$a.Modifier.Position.BELOW)),y){case ArticulationEnum.accent:{m=new VF$a.Articulation("a>");const b=e.sourceNote.NoteSlurs;for(const S of b)S.StartNote===e.sourceNote&&(S.PlacementXml===PlacementEnum.Above?m.setYShift(-r.SlurStartArticulationYOffsetOfArticulation*10):S.PlacementXml===PlacementEnum.Below&&m.setYShift(r.SlurStartArticulationYOffsetOfArticulation*10));break}case ArticulationEnum.breathmark:{m=new VF$a.Articulation("abr"),d.placement===PlacementEnum.Above&&(g=VF$a.Modifier.Position.ABOVE),m.breathMarkDistance=r.BreathMarkDistance;break}case ArticulationEnum.downbow:{m=new VF$a.Articulation("am"),d.placement===void 0&&(g=VF$a.Modifier.Position.ABOVE,d.placement=PlacementEnum.Above);break}case ArticulationEnum.fermata:{m=new VF$a.Articulation("a@a"),g=VF$a.Modifier.Position.ABOVE,d.placement=PlacementEnum.Above;break}case ArticulationEnum.marcatodown:{m=new VF$a.Articulation("a|");break}case ArticulationEnum.marcatoup:{m=new VF$a.Articulation("a^"),g=VF$a.Modifier.Position.ABOVE;break}case ArticulationEnum.invertedfermata:{const b=e.sourceNote.ParentVoiceEntry,S=e.sourceNote;if(b!==S.ParentVoiceEntry.ParentSourceStaffEntry.VoiceEntries.last()){b.Articulations=b.Articulations.slice(b.Articulations.indexOf(d)),b.ParentSourceStaffEntry.VoiceEntries.last().Articulations.push(d);continue}m=new VF$a.Articulation("a@u"),g=VF$a.Modifier.Position.BELOW,d.placement=PlacementEnum.Below;break}case ArticulationEnum.lefthandpizzicato:{m=new VF$a.Articulation("a+");break}case ArticulationEnum.naturalharmonic:{m=new VF$a.Articulation("ah");break}case ArticulationEnum.snappizzicato:{m=new VF$a.Articulation("ao");break}case ArticulationEnum.staccatissimo:{m=new VF$a.Articulation("av");break}case ArticulationEnum.staccato:{m=new VF$a.Articulation("a.");break}case ArticulationEnum.tenuto:{m=new VF$a.Articulation("a-");break}case ArticulationEnum.upbow:{m=new VF$a.Articulation("a|"),d.placement===void 0&&(g=VF$a.Modifier.Position.ABOVE,d.placement=PlacementEnum.Above);break}case ArticulationEnum.strongaccent:{m=new VF$a.Articulation("a^");break}}m&&(!i.hasStem()&&!i.isRest()&&y==ArticulationEnum.accent&&i.getLineNumber()>=3&&(g=VF$a.Modifier.Position.ABOVE,(o=(s=i==null?void 0:i.modifiers)==null?void 0:s.filter(A=>["TREMOLO"].includes(A.getCategory().toLocaleUpperCase())))!=null&&o.length&&m.setYShift(-16)),y===ArticulationEnum.strongaccent&&(g=VF$a.Modifier.Position.ABOVE,(a=window.GYM)!=null&&a.customArtPosition&&(i.getStemDirection()===1?g=VF$a.Modifier.Position.ABOVE:(g=VF$a.Modifier.Position.BELOW,m=new VF$a.Articulation("a|")))),(l=window.GYM)!=null&&l.customAccentItem&&y===ArticulationEnum.accent&&(g=VF$a.Modifier.Position.ABOVE),(c=window.GYM)!=null&&c.customLefthandpizzicatoItem&&(y===ArticulationEnum.lefthandpizzicato||y===ArticulationEnum.naturalharmonic)&&(g=VF$a.Modifier.Position.ABOVE),y===ArticulationEnum.tenuto&&i.getDuration()==="w"&&((u=window.GYM)!=null&&u.customTenutoItem)&&(g=VF$a.Modifier.Position.ABOVE),m.setPosition(g),i.addModifier(0,m))}}static generateOrnaments(i,e){let r=VF$a.Modifier.Position.ABOVE;e.placement===PlacementEnum.Below&&(r=VF$a.Modifier.Position.BELOW);let s;switch(e.GetOrnament){case OrnamentEnum.DelayedInvertedTurn:{s=new VF$a.Ornament("turn_inverted"),s.setDelayed(!0);break}case OrnamentEnum.DelayedTurn:{s=new VF$a.Ornament("turn"),s.setDelayed(!0);break}case OrnamentEnum.InvertedMordent:{s=new VF$a.Ornament("mordent"),s.setDelayed(!1);break}case OrnamentEnum.InvertedTurn:{s=new VF$a.Ornament("turn_inverted"),s.setDelayed(!1);break}case OrnamentEnum.Mordent:{s=new VF$a.Ornament("mordent_inverted"),s.setDelayed(!1);break}case OrnamentEnum.Trill:{s=new VF$a.Ornament("tr"),s.setDelayed(!1);break}case OrnamentEnum.Turn:{s=new VF$a.Ornament("turn"),s.setDelayed(!1);break}default:{loglevelExports.warn("unhandled OrnamentEnum type: "+e.GetOrnament);return}}s&&(e.AccidentalBelow!==AccidentalEnum.NONE&&s.setLowerAccidental(Pitch.accidentalVexflow(e.AccidentalBelow)),e.AccidentalAbove!==AccidentalEnum.NONE&&s.setUpperAccidental(Pitch.accidentalVexflow(e.AccidentalAbove)),s.setPosition(r),i.addModifier(0,s))}static StrokeTypeFromArpeggioType(i){switch(i){case ArpeggioType.ARPEGGIO_DIRECTIONLESS:return VF$a.Stroke.Type.ARPEGGIO_DIRECTIONLESS;case ArpeggioType.BRUSH_DOWN:return VF$a.Stroke.Type.BRUSH_UP;case ArpeggioType.BRUSH_UP:return VF$a.Stroke.Type.BRUSH_DOWN;case ArpeggioType.RASQUEDO_DOWN:return VF$a.Stroke.Type.RASQUEDO_UP;case ArpeggioType.RASQUEDO_UP:return VF$a.Stroke.Type.RASQUEDO_DOWN;case ArpeggioType.ROLL_DOWN:return VF$a.Stroke.Type.ROLL_UP;case ArpeggioType.ROLL_UP:return VF$a.Stroke.Type.ROLL_DOWN;default:return VF$a.Stroke.Type.ARPEGGIO_DIRECTIONLESS}}static CreateTabNote(i){const e=[],r=i.notes.reverse(),s=[],o=i.notes[0].graphicalNoteLength,a=i.notes[0].sourceNote.NoteTuplet!==void 0;let l=_VexFlowConverter.durations(o,a)[0],c=0;for(const d of i.notes){const g=d.sourceNote;let m={str:g.StringNumberTab,fret:g.FretNumber};d.sourceNote instanceof TabNote||(loglevelExports.info(`invalid tab note: ${d.sourceNote.Pitch.ToString()} in measure ${i.parentStaffEntry.parentMeasure.MeasureNumber}, likely missing XML string+fret number.`),m={str:1,fret:0}),e.push(m),g.BendArray&&g.BendArray.forEach(function(y){let b;const S=y.bendalter-m.fret;S>1?b="Full":S===1?b="1/2":b="1/4",y.direction==="up"?s.push({type:VF$a.Bend.UP,text:b,width:10}):s.push({type:VF$a.Bend.DOWN,text:b,width:10})}),c(i[i.VA8=0]="VA8",i[i.VB8=1]="VB8",i[i.MA15=2]="MA15",i[i.MB15=3]="MB15",i[i.NONE=4]="NONE",i))(OctaveEnum||{});class AbstractTempoExpression extends AbstractExpression{constructor(e,r,s,o){super(r),this.label=e,this.staffNumber=s,this.parentMultiTempoExpression=o}get Label(){return this.label}set Label(e){this.label=e}get Placement(){return this.placement}set Placement(e){this.placement=e}get StaffNumber(){return this.staffNumber}set StaffNumber(e){this.staffNumber=e}get ParentMultiTempoExpression(){return this.parentMultiTempoExpression}static isStringInStringList(e,r){for(const s of e)if(AbstractTempoExpression.stringContainsSeparatedWord(r.toLowerCase().trim(),s.toLowerCase().trim()))return!0;return!1}static stringContainsSeparatedWord(e,r){return e===r||e.indexOf(" "+r)!==-1||e.indexOf(r+" ")!==-1}}const _InstantaneousTempoExpression=class extends AbstractTempoExpression{constructor(i,e,r,s,o,a=!1){super(i,e,r,o),this.isMetronomeMark=a,this.setTempoAndTempoType(s)}static getDefaultValueForTempoType(i){switch(i){case 1:return 20;case 2:return 30;case 3:return 48;case 4:return 52;case 5:return 63;case 6:return 70;case 7:return 75;case 8:return 88;case 9:return 92;case 10:return 96;case 11:return 106;case 12:return 112;case 13:return 118;case 14:return 130;case 15:return 140;case 16:return 155;case 17:return 170;case 18:return 184;case 19:return 200;default:throw new ArgumentOutOfRangeException("tempoEnum")}}static isInputStringInstantaneousTempo(i){return i?_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghissimo,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoGrave,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLento,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLargo,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghetto,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagio,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagietto,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndante,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndantino,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoModerato,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegretto,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegro,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivace,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivacissimo,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPresto,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPrestissimo,i)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral,i):!1}get Label(){return this.label}set Label(i){this.label=i}get Placement(){return this.placement}set Placement(i){this.placement=i}get StaffNumber(){return this.staffNumber}set StaffNumber(i){this.staffNumber=i}get Enum(){return this.tempoEnum}get TempoInBpm(){return this.tempoInBpm}set TempoInBpm(i){this.tempoInBpm=i}get ParentMultiTempoExpression(){return this.parentMultiTempoExpression}getAbsoluteTimestamp(){return Fraction$1.plus(this.ParentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.ParentMultiTempoExpression.Timestamp)}getAbsoluteFloatTimestamp(){return Fraction$1.plus(this.ParentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.ParentMultiTempoExpression.Timestamp).RealValue}setTempoAndTempoType(i){if(!this.label){this.tempoInBpm=i,this.tempoEnum=23;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghissimo,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(1)),this.tempoInBpm=i,this.tempoEnum=1;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoGrave,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(2)),this.tempoInBpm=i,this.tempoEnum=2;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLento,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(3)),this.tempoInBpm=i,this.tempoEnum=3;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLargo,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(4)),this.tempoInBpm=i,this.tempoEnum=4;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghetto,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(5)),this.tempoInBpm=i,this.tempoEnum=5;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagio,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(6)),this.tempoInBpm=i,this.tempoEnum=6;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagietto,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(7)),this.tempoInBpm=i,this.tempoEnum=7;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(8)),this.tempoInBpm=i,this.tempoEnum=8;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndante,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(9)),this.tempoInBpm=i,this.tempoEnum=9;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndantino,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(10)),this.tempoInBpm=i,this.tempoEnum=10;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoModerato,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(11)),this.tempoInBpm=i,this.tempoEnum=11;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegretto,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(12)),this.tempoInBpm=i,this.tempoEnum=12;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(13)),this.tempoInBpm=i,this.tempoEnum=13;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegro,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(14)),this.tempoInBpm=i,this.tempoEnum=14;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivace,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(15)),this.tempoInBpm=i,this.tempoEnum=15;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivacissimo,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(16)),this.tempoInBpm=i,this.tempoEnum=16;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(17)),this.tempoInBpm=i,this.tempoEnum=17;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPresto,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(18)),this.tempoInBpm=i,this.tempoEnum=18;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPrestissimo,this.label)){i===0&&(i=_InstantaneousTempoExpression.getDefaultValueForTempoType(19)),this.tempoInBpm=i,this.tempoEnum=19;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAddons,this.label)){this.tempoInBpm=0,this.tempoEnum=21;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral,this.label)){this.tempoInBpm=0,this.tempoEnum=22;return}}};let InstantaneousTempoExpression=_InstantaneousTempoExpression;InstantaneousTempoExpression.listInstantaneousTempoLarghissimo=["Larghissimo","Sehr breit","very, very slow"];InstantaneousTempoExpression.listInstantaneousTempoGrave=["Grave","Schwer","slow and solemn"];InstantaneousTempoExpression.listInstantaneousTempoLento=["Lento","Lent","Langsam","slowly"];InstantaneousTempoExpression.listInstantaneousTempoLargo=["Largo","Breit","broadly"];InstantaneousTempoExpression.listInstantaneousTempoLarghetto=["Larghetto","Etwas breit","rather broadly"];InstantaneousTempoExpression.listInstantaneousTempoAdagio=["Adagio","Langsam","Ruhig","slow and stately"];InstantaneousTempoExpression.listInstantaneousTempoAdagietto=["Adagietto","Ziemlich ruhig","Ziemlich langsam","rather slow"];InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato=["Andante moderato"];InstantaneousTempoExpression.listInstantaneousTempoAndante=["Andante","Gehend","Schreitend","at a walking pace"];InstantaneousTempoExpression.listInstantaneousTempoAndantino=["Andantino","Maestoso"];InstantaneousTempoExpression.listInstantaneousTempoModerato=["Moderato","Mäßig","Modéré","moderately"];InstantaneousTempoExpression.listInstantaneousTempoAllegretto=["Allegretto","Animato","fast"];InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato=["Allegro moderato"];InstantaneousTempoExpression.listInstantaneousTempoAllegro=["Allegro","Rapide","Vite","Rasch","Schnell","Fröhlich"];InstantaneousTempoExpression.listInstantaneousTempoVivace=["Vivace","Allegro Assai","Lebhaft","Lebendig","lively and fast"];InstantaneousTempoExpression.listInstantaneousTempoVivacissimo=["Vivacissimo","Sehr lebhaft","Sehr lebendig"];InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo=["Allegrissimo","very fast"];InstantaneousTempoExpression.listInstantaneousTempoPresto=["Presto","Sehr schnell","Geschwind"];InstantaneousTempoExpression.listInstantaneousTempoPrestissimo=["Prestissimo","äußerst schnell"];InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral=["tempo primo","a tempo","tempo i","rubato","doppio movimento","rallentando","ritardando","ritard.","rit.","ritard","rall...","accelerando","accel"];InstantaneousTempoExpression.listInstantaneousTempoAddons=["assai","amoroso","cantabile","con brio","con dolore","con espressione","con fuoco","con moto","con spirito","spiritoso","espressivo","giocoso","giusto","grazioso","lesto","lugubre","maestoso","ma non troppo","marcato","molto","morendo","mosso","non tanto","piu","un poco","poco","quasi","risoluto","scherzando","sostenuto","teneramente","tempo giusto","tranquillo","sehr","lieblich","liebevoll","mit Leidenschaft","mit Liebe","amourös","gesanglich","mit Schwung","mit Feuer","mit Schmerz","mit Ausdruck","mit Bewegung","geistvoll","ausdrucksvoll","freudig","verspielt","angemessen","graziös","mit Grazie","flink","behände","traurig","klagend","majestätisch","aber nicht zu sehr","markant","gemäßigt","viel","sehr","ersterbend","bewegt","nicht zu sehr","mehr","ein wenig","gleichsam","entschlossen","zupackend","heiter","nachdrücklich","getragen","gewichtig","zart","zärtlich","im angemessenen Zeitmaß","ruhig","ein wenig","alla marcia","ad libitum","alla breve"];var TempoEnum=(i=>(i[i.none=0]="none",i[i.larghissimo=1]="larghissimo",i[i.grave=2]="grave",i[i.lento=3]="lento",i[i.largo=4]="largo",i[i.larghetto=5]="larghetto",i[i.adagio=6]="adagio",i[i.adagietto=7]="adagietto",i[i.andanteModerato=8]="andanteModerato",i[i.andante=9]="andante",i[i.andantino=10]="andantino",i[i.moderato=11]="moderato",i[i.allegretto=12]="allegretto",i[i.allegroModerato=13]="allegroModerato",i[i.allegro=14]="allegro",i[i.vivace=15]="vivace",i[i.vivacissimo=16]="vivacissimo",i[i.allegrissimo=17]="allegrissimo",i[i.presto=18]="presto",i[i.prestissimo=19]="prestissimo",i[i.lastRealTempo=20]="lastRealTempo",i[i.addon=21]="addon",i[i.changes=22]="changes",i[i.metronomeMark=23]="metronomeMark",i))(TempoEnum||{});const _MoodExpression=class extends AbstractExpression{constructor(i,e,r){super(e),this.label=i,this.staffNumber=r,this.setMoodType()}static isInputStringMood(i){return i?_MoodExpression.isStringInStringList(_MoodExpression.listMoodAffettuoso,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAgitato,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAnimato,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAppassionato,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodBrillante,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodCantabile,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodDolce,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEnergico,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEroico,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEspressivo,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodFurioso,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGiocoso,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGioioso,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrandioso,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrazioso,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodLacrimoso,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodLeggiero,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMaestoso,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMalinconico,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarcato,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarziale,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMesto,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMorendo,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodNobilmente,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodPatetico,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodPesante,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSaltando,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSautille,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodScherzando,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSostenuto,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSpiccato,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTenerezza,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTranquillamente,i)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTrionfante,i):!1}get Label(){return this.label}set Label(i){this.label=i}get Mood(){return this.moodType}set Mood(i){this.moodType=i}get StaffNumber(){return this.staffNumber}set StaffNumber(i){this.staffNumber=i}get Placement(){return this.placement}set Placement(i){this.placement=i}setMoodType(){_MoodExpression.isStringInStringList(_MoodExpression.listMoodAffettuoso,this.label)?this.moodType=0:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAgitato,this.label)?this.moodType=1:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAnimato,this.label)?this.moodType=3:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAppassionato,this.label)?this.moodType=2:_MoodExpression.isStringInStringList(_MoodExpression.listMoodBrillante,this.label)?this.moodType=4:_MoodExpression.isStringInStringList(_MoodExpression.listMoodCantabile,this.label)?this.moodType=5:_MoodExpression.isStringInStringList(_MoodExpression.listMoodDolce,this.label)?this.moodType=6:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEnergico,this.label)?this.moodType=7:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEroico,this.label)?this.moodType=8:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEspressivo,this.label)?this.moodType=9:_MoodExpression.isStringInStringList(_MoodExpression.listMoodFurioso,this.label)?this.moodType=10:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGiocoso,this.label)?this.moodType=11:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGioioso,this.label)?this.moodType=12:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrandioso,this.label)?this.moodType=14:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrazioso,this.label)?this.moodType=15:_MoodExpression.isStringInStringList(_MoodExpression.listMoodLacrimoso,this.label)?this.moodType=13:_MoodExpression.isStringInStringList(_MoodExpression.listMoodLeggiero,this.label)?this.moodType=16:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMaestoso,this.label)?this.moodType=17:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMalinconico,this.label)?this.moodType=18:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarcato,this.label)?this.moodType=19:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarziale,this.label)?this.moodType=20:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMesto,this.label)?this.moodType=21:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMorendo,this.label)?this.moodType=22:_MoodExpression.isStringInStringList(_MoodExpression.listMoodNobilmente,this.label)?this.moodType=23:_MoodExpression.isStringInStringList(_MoodExpression.listMoodPatetico,this.label)?this.moodType=24:_MoodExpression.isStringInStringList(_MoodExpression.listMoodPesante,this.label)?this.moodType=25:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSaltando,this.label)?this.moodType=27:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSautille,this.label)?this.moodType=26:_MoodExpression.isStringInStringList(_MoodExpression.listMoodScherzando,this.label)?this.moodType=28:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSostenuto,this.label)?this.moodType=29:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSpiccato,this.label)?this.moodType=30:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTenerezza,this.label)?this.moodType=31:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTranquillamente,this.label)?this.moodType=32:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTrionfante,this.label)&&(this.moodType=33)}};let MoodExpression=_MoodExpression;MoodExpression.listMoodAffettuoso=["affettuoso"];MoodExpression.listMoodAgitato=["agitato"];MoodExpression.listMoodAppassionato=["appassionato"];MoodExpression.listMoodAnimato=["animato","lively"];MoodExpression.listMoodBrillante=["brillante"];MoodExpression.listMoodCantabile=["cantabile"];MoodExpression.listMoodDolce=["dolce"];MoodExpression.listMoodEnergico=["energico"];MoodExpression.listMoodEroico=["eroico"];MoodExpression.listMoodEspressivo=["espressivo"];MoodExpression.listMoodFurioso=["furioso"];MoodExpression.listMoodGiocoso=["giocoso"];MoodExpression.listMoodGioioso=["gioioso"];MoodExpression.listMoodLacrimoso=["lacrimoso"];MoodExpression.listMoodGrandioso=["grandioso"];MoodExpression.listMoodGrazioso=["grazioso"];MoodExpression.listMoodLeggiero=["leggiero"];MoodExpression.listMoodMaestoso=["maestoso"];MoodExpression.listMoodMalinconico=["malinconico"];MoodExpression.listMoodMarcato=["marcato"];MoodExpression.listMoodMarziale=["marziale"];MoodExpression.listMoodMesto=["mesto"];MoodExpression.listMoodMorendo=["morendo"];MoodExpression.listMoodNobilmente=["nobilmente"];MoodExpression.listMoodPatetico=["patetico"];MoodExpression.listMoodPesante=["pesante"];MoodExpression.listMoodSautille=["sautille"];MoodExpression.listMoodSaltando=["saltando"];MoodExpression.listMoodScherzando=["scherzando"];MoodExpression.listMoodSostenuto=["sostenuto"];MoodExpression.listMoodSpiccato=["spiccato"];MoodExpression.listMoodTenerezza=["tenerezza"];MoodExpression.listMoodTranquillamente=["tranquillamente"];MoodExpression.listMoodTrionfante=["trionfante"];class UnknownExpression extends AbstractExpression{constructor(e,r,s,o){super(r),this.label=e,this.staffNumber=o,s===void 0&&(s=TextAlignmentEnum.LeftBottom),this.textAlignment=s}get Label(){return this.label}get Placement(){return this.placement}set Placement(e){this.placement=e}get StaffNumber(){return this.staffNumber}set StaffNumber(e){this.staffNumber=e}get TextAlignment(){return this.textAlignment}}class MultiExpression{constructor(e,r){this.unknownList=[],this.moodList=[],this.expressions=[],this.sourceMeasure=e,this.timestamp=r}get SourceMeasureParent(){return this.sourceMeasure}set SourceMeasureParent(e){this.sourceMeasure=e}get StaffNumber(){return this.staffNumber}set StaffNumber(e){this.staffNumber=e}get Timestamp(){return this.timestamp}set Timestamp(e){this.timestamp=e}get AbsoluteTimestamp(){return Fraction$1.plus(this.timestamp,this.sourceMeasure.AbsoluteTimestamp)}get InstantaneousDynamic(){return this.instantaneousDynamic}set InstantaneousDynamic(e){this.instantaneousDynamic=e}get EndingContinuousDynamic(){return this.endingContinuousDynamic}set EndingContinuousDynamic(e){this.endingContinuousDynamic=e}get StartingContinuousDynamic(){return this.startingContinuousDynamic}set StartingContinuousDynamic(e){this.startingContinuousDynamic=e}get MoodList(){return this.moodList}get UnknownList(){return this.unknownList}get EntriesList(){return this.expressions}get OctaveShiftStart(){return this.octaveShiftStart}set OctaveShiftStart(e){this.octaveShiftStart=e}get OctaveShiftEnd(){return this.octaveShiftEnd}set OctaveShiftEnd(e){this.octaveShiftEnd=e}get CombinedExpressionsText(){return this.combinedExpressionsText}set CombinedExpressionsText(e){this.combinedExpressionsText=e}getPlacementOfFirstEntry(){let e=PlacementEnum.Above;return this.expressions.length>0&&(this.expressions[0].expression instanceof InstantaneousDynamicExpression?e=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof ContinuousDynamicExpression?e=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof MoodExpression?e=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof UnknownExpression&&(e=this.expressions[0].expression.Placement)),e}getFontstyleOfFirstEntry(){var r;let e=FontStyles.Regular;return this.expressions.length>0&&(this.expressions[0].expression instanceof ContinuousDynamicExpression||this.expressions[0].expression instanceof MoodExpression?e=FontStyles.Italic:this.expressions[0].expression instanceof UnknownExpression&&(e=(r=this.expressions[0].expression.fontStyle)!=null?r:FontStyles.Regular)),e}addExpression(e,r){e instanceof InstantaneousDynamicExpression?(this.instantaneousDynamic&&this.removeExpressionFromEntryList(this.InstantaneousDynamic),this.instantaneousDynamic=e,this.instantaneousDynamic.ParentMultiExpression=this):e instanceof ContinuousDynamicExpression?this.startingContinuousDynamic=e:e instanceof MoodExpression?this.moodList.push(e):e instanceof UnknownExpression&&this.unknownList.push(e),this.addExpressionToEntryList(e,r)}CompareTo(e){return this.Timestamp.RealValue>e.Timestamp.RealValue?1:this.Timestamp.RealValue=5&&i<=12}get TempoType(){return this.tempoType}set TempoType(i){this.tempoType=i}get StartTempo(){return this.startTempo}set StartTempo(i){this.startTempo=i}get EndTempo(){return this.endTempo}set EndTempo(i){this.endTempo=i}get AbsoluteEndTimestamp(){return this.absoluteEndTimestamp}set AbsoluteEndTimestamp(i){this.absoluteEndTimestamp=i}get AbsoluteTimestamp(){return this.ParentMultiTempoExpression.AbsoluteTimestamp}getAbsoluteFloatTimestamp(){return this.ParentMultiTempoExpression.AbsoluteTimestamp.RealValue}getInterpolatedTempo(i){const e=Fraction$1.plus(this.parentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.parentMultiTempoExpression.Timestamp);if(i.lt(e))return-1;if(this.absoluteEndTimestamp.lt(i))return-2;const r=Fraction$1.minus(i,e).RealValue/Fraction$1.minus(this.absoluteEndTimestamp,e).RealValue;return Math.max(0,Math.min(250,this.startTempo+(this.endTempo-this.startTempo)*r))}setTempoType(){_ContinuousTempoExpression.isStringInStringList(_ContinuousTempoExpression.listContinuousTempoFaster,this.label)?this.tempoType=0:_ContinuousTempoExpression.isStringInStringList(_ContinuousTempoExpression.listContinuousTempoSlower,this.label)&&(this.tempoType=9)}};let ContinuousTempoExpression=_ContinuousTempoExpression;ContinuousTempoExpression.listContinuousTempoFaster=["accelerando","piu mosso","poco piu","stretto"];ContinuousTempoExpression.listContinuousTempoSlower=["poco meno","meno mosso","piu lento","calando","allargando","rallentando","ritardando","ritenuto","ritard.","ritard","rit.","rit","riten.","riten"];class MultiTempoExpression{constructor(e,r){this.expressions=[],this.sourceMeasure=e,this.timestamp=r}get Timestamp(){return this.timestamp}get AbsoluteTimestamp(){return Fraction$1.plus(this.sourceMeasure.AbsoluteTimestamp,this.timestamp)}get SourceMeasureParent(){return this.sourceMeasure}set SourceMeasureParent(e){this.sourceMeasure=e}get InstantaneousTempo(){return this.instantaneousTempo}get ContinuousTempo(){return this.continuousTempo}get EntriesList(){return this.expressions}get CombinedExpressionsText(){return this.combinedExpressionsText}set CombinedExpressionsText(e){this.combinedExpressionsText=e}getPlacementOfFirstEntry(){let e=PlacementEnum.Above;return this.expressions.length>0&&(this.expressions[0].Expression instanceof InstantaneousTempoExpression?e=this.expressions[0].Expression.Placement:this.expressions[0].Expression instanceof ContinuousTempoExpression&&(e=this.expressions[0].Expression.Placement)),e}getFontstyleOfFirstEntry(){let e=FontStyles.Regular;return this.expressions[0].Expression instanceof InstantaneousTempoExpression?e=FontStyles.Bold:this.expressions[0].Expression instanceof ContinuousTempoExpression&&(e=FontStyles.Italic),e}addExpression(e,r){if(this.checkIfAlreadyExists(e))return;e instanceof InstantaneousTempoExpression?this.instantaneousTempo=e:e instanceof ContinuousTempoExpression&&(this.continuousTempo=e);const s=new TempoExpressionEntry;s.prefix=r,s.Expression=e,s.label=e.Label,this.expressions.push(s)}CompareTo(e){return this.Timestamp.RealValue>e.Timestamp.RealValue?1:this.Timestamp.RealValue0){if(this.rules.MaxSystemToDrawNumber===this.musicSystems.length)return this.finalizeCurrentSystem(this.measureList[this.measureList.length-1],!this.rules.StretchLastSystemLine,!1),this.musicSystems;this.finalizeCurrentAndCreateNewSystem(this.measureList[this.measureList.length-1],!this.rules.StretchLastSystemLine,!1)}return this.musicSystems}calculateSystemYLayout(){for(const e of this.musicSystems)this.optimizeDistanceBetweenStaffLines(e);this.calculateMusicSystemsRelativePositions()}setMeasureWidth(e,r,s,o){for(let a=0,l=e.length;a0&&(c.beginInstructionsWidth=s),o>0&&(c.endInstructionsWidth=o)}}finalizeCurrentAndCreateNewSystem(e,r=!1,s=!0,o=!1){this.finalizeCurrentSystem(e,r,s,o),this.currentSystemParams=new SystemBuildParameters,e!==void 0&&this.measureListIndex=1){const r=this.currentSystemParams.currentSystem.GraphicalMeasures[this.currentSystemParams.currentSystem.GraphicalMeasures.length-1];let s=0;const o=e[e.length-1];o.endLine===SystemLinesEnum.DotsBoldBoldDots&&(o.endLine=SystemLinesEnum.DotsThinBold,s=r[0].getLineWidth(SystemLinesEnum.DotsBoldBoldDots)/2-r[0].getLineWidth(SystemLinesEnum.DotsThinBold)),this.currentSystemParams.currentSystemFixWidth-=s;for(let a=0,l=r.length;a1){l=!0;break}}let c=0;for(let u=0;u=0&&this.measureList[B]){const k=(T=this.measureList[B][0])==null?void 0:T.parentSourceMeasure;k!=null&&k.ImplicitMeasure&&(k!=null&&k.RhythmPrinted)&&(C=!1)}C&&(r.addRhythmAtBegin(d),r.parentSourceMeasure.RhythmPrinted=d,b=!0)}return(m||y||b)&&(l+=r.beginInstructionsWidth,b&&(l+=this.rules.RhythmRightMargin)),l}addInstructionsAtMeasureEnd(e,r,s){if(!e||!e.Instructions||e.Instructions.length===0)return 0;for(let o=0,a=e.Instructions.length;o0&&(this.currentSystemParams.systemMeasures.push({beginLine:SystemLinesEnum.None,endLine:SystemLinesEnum.None}),this.currentSystemParams.currentWidth+=o,this.currentSystemParams.currentSystemFixWidth+=o)}addExtraInstructionMeasure(e,r,s){const o=this.currentSystemParams.currentSystem,a=MusicSheetCalculator.symbolFactory.createExtraGraphicalMeasure(o.StaffLines[e]);r&&a.addKeyAtBegin(r,this.activeKeys[e],this.activeClefs[e]),s!==void 0&&s.PrintObject&&a.addRhythmAtBegin(s),a.PositionAndShape.BorderLeft=0,a.PositionAndShape.BorderTop=0,a.PositionAndShape.BorderBottom=this.rules.StaffHeight;const l=this.rules.MeasureLeftMargin+a.beginInstructionsWidth+this.rules.MeasureRightMargin;return a.PositionAndShape.BorderRight=l,o.StaffLines[e].Measures.push(a),l}addStaveMeasuresToSystem(e){if(e[0]){const r=[];for(let o=0;o1){const c=Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length-1,e.measureListIndex+e.multipleRestMeasures-1);e=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[c]}}finally{}const r=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures,s=r[this.measureListIndex];let o=!1;return s.allRests&&(o=(l=(a=r[this.measureListIndex+s.multipleRestMeasures-1])==null?void 0:a.endsWithLineRepetition)==null?void 0:l.call(a)),this.nextMeasureBeginsLineRepetition()&&this.thisMeasureEndsLineRepetition()?SystemLinesEnum.DotsBoldBoldDots:this.thisMeasureEndsLineRepetition()||o?SystemLinesEnum.DotsThinBold:this.nextMeasureHasKeyInstructionChange()||this.thisMeasureEndsWordRepetition()||this.nextMeasureBeginsWordRepetition()?SystemLinesEnum.DoubleThin:e&&e.endingBarStyleEnum!==void 0?e.endingBarStyleEnum:SystemLinesEnum.SingleThin}getLineWidth(e,r,s){let o=e.getLineWidth(r);return r===SystemLinesEnum.DotsBoldBoldDots&&(o/=2),s&&r===SystemLinesEnum.BoldThinDots&&(o+=this.rules.DistanceBetweenLastInstructionAndRepetitionBarline),o}previousMeasureEndsLineRepetition(){if(this.measureListIndex===0)return!1;for(let e=0,r=this.measureList[this.measureListIndex-1].length;e=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length||!this.measureList[e])return!1;for(let r=0,s=this.measureList[e].length;r=u)l=g,u=g.multipleRestMeasureNumber;else break}return l.endsWithLineRepetition()}}return!1}nextMeasureBeginsWordRepetition(){const e=this.measureListIndex+1;if(e>=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length||e>this.measureList.length-1)return!1;for(let r=0,s=this.measureList[e].length;r1)for(let c=1;ca&&(a=g)}for(let c=0;cthis.rules.PageHeight-this.rules.PageBottomMargin&&(o++,o<=4&&console.log(`warning: could not fit a single system on page ${e.PageNumber} and measure number ${s.GraphicalMeasures[0][0].MeasureNumber}. The PageFormat may be too small for this sheet." Will not give further warnings for all pages, only total.`))}else{const u=this.musicSystems[c-1],d=u.StaffLines[u.StaffLines.length-1],g=d.PositionAndShape;let m=this.findRequiredDistanceWithSkyBottomLine(u,s);m=Math.max(a,m),m+=this.rules.MinSkyBottomDistBetweenSystems,((l=window==null?void 0:window.appName)==null?void 0:l.toLocaleUpperCase())==="GYM"&&(m=m<16?16:m);const y=this.hasExpressionCounts(s);y.TempoCount>0&&this.rules.MetronomeMarksDrawn&&(m+=2),y.OtherCount>0&&this.rules.MetronomeMarksDrawn&&(m+=2),m=Math.max(m,this.rules.MinimumDistanceBetweenSystems+d.StaffHeight);const b=r+g.RelativePosition.y+m,S=b+s.PositionAndShape.BorderMarginBottom;if(!(this.rules.NewPageAtXMLNewPageAttribute&&u.breaksPage)&&S0&&console.log(`total amount of pages that couldn't fit a single music system: ${o} of ${e.PageNumber}`)}findRequiredDistanceWithSkyBottomLine(e,r){const s=e.StaffLines[e.StaffLines.length-1],o=r.StaffLines[0],a=s.BottomLine,l=o.SkyLine,c=s.PositionAndShape,u=o.PositionAndShape,d=1/this.rules.SamplingUnit;let g=0;for(let m=0;m=l.length)break;const S=Math.max(0,b-6),A=Math.min(l.length-1,b+6);let E=0;for(let P=S;P<=A;P++)E=Math.min(E,l[P]);const x=y-E;g=Math.max(x,g)}return g===0&&(g=c.BorderBottom-u.BorderTop),g}}class SystemBuildParameters{constructor(){this.systemMeasures=[],this.systemMeasureIndex=0,this.currentWidth=0,this.currentSystemFixWidth=0,this.currentSystemVarWidth=0,this.maxLabelLength=0}IsSystemStartMeasure(){return this.systemMeasureIndex===0}}class OctaveShiftParams{constructor(e,r,s){this.getOpenOctaveShift=e,this.getAbsoluteStartTimestamp=r,this.getAbsoluteEndTimestamp=s}}class AccidentalCalculator{constructor(){this.keySignatureNoteAlterationsDict=new Dictionary,this.currentAlterationsComparedToKeyInstructionList=[],this.currentInMeasureNoteAlterationsDict=new Dictionary}get ActiveKeyInstruction(){return this.activeKeyInstruction}set ActiveKeyInstruction(e){this.activeKeyInstruction=e,this.reactOnKeyInstructionChange()}doCalculationsAtEndOfMeasure(){this.currentInMeasureNoteAlterationsDict.clear(),this.currentAlterationsComparedToKeyInstructionList.clear();for(const e of this.keySignatureNoteAlterationsDict.keys())this.currentInMeasureNoteAlterationsDict.setValue(e,this.keySignatureNoteAlterationsDict.getValue(e))}checkAccidental(e,r){if(!r)return;const s=r.FundamentalNote+r.Octave*12,o=this.currentAlterationsComparedToKeyInstructionList.indexOf(s)>=0;if(this.currentInMeasureNoteAlterationsDict.containsKey(s)){if(o&&this.currentAlterationsComparedToKeyInstructionList.splice(this.currentAlterationsComparedToKeyInstructionList.indexOf(s),1),this.currentInMeasureNoteAlterationsDict.getValue(s)!==r.AccidentalHalfTones){this.keySignatureNoteAlterationsDict.containsKey(s)&&this.keySignatureNoteAlterationsDict.getValue(s)!==r.AccidentalHalfTones?(this.currentAlterationsComparedToKeyInstructionList.push(s),this.currentInMeasureNoteAlterationsDict.setValue(s,r.AccidentalHalfTones)):r.Accidental!==AccidentalEnum.NONE&&this.currentInMeasureNoteAlterationsDict.remove(s);const a=this.currentInMeasureNoteAlterationsDict.getValue(s);if(r.Accidental===AccidentalEnum.NONE&&(Math.abs(a)===.5?r=new Pitch(r.FundamentalNote,r.Octave,AccidentalEnum.NONE):r=new Pitch(r.FundamentalNote,r.Octave,AccidentalEnum.NATURAL)),this.isAlterAmbiguousAccidental(r.Accidental)&&!r.AccidentalXml)return;MusicSheetCalculator.symbolFactory.addGraphicalAccidental(e,r)}}else if(r.Accidental!==AccidentalEnum.NONE){if(o||this.currentAlterationsComparedToKeyInstructionList.push(s),this.currentInMeasureNoteAlterationsDict.setValue(s,r.AccidentalHalfTones),this.isAlterAmbiguousAccidental(r.Accidental)&&!r.AccidentalXml)return;MusicSheetCalculator.symbolFactory.addGraphicalAccidental(e,r)}else o&&(r=new Pitch(r.FundamentalNote,r.Octave,AccidentalEnum.NATURAL),this.currentAlterationsComparedToKeyInstructionList.splice(this.currentAlterationsComparedToKeyInstructionList.indexOf(s),1),MusicSheetCalculator.symbolFactory.addGraphicalAccidental(e,r))}isAlterAmbiguousAccidental(e){return e===AccidentalEnum.SLASHFLAT||e===AccidentalEnum.QUARTERTONEFLAT}reactOnKeyInstructionChange(){const e=this.activeKeyInstruction.AlteratedNotes;let r;this.activeKeyInstruction.Key>0?r=AccidentalEnum.SHARP:r=AccidentalEnum.FLAT,this.keySignatureNoteAlterationsDict.clear(),this.currentAlterationsComparedToKeyInstructionList.length=0;for(let s=-9;s<9;s++)for(let o=0;o0?(s=d-1,e.push({startIndex:r,endIndex:s}),r=d):y.HasEndLine&&this.rules.NewPartAndSystemAfterFinalBarline&&(s=d,e.push({startIndex:r,endIndex:s}),r=d+1)}r0?Number(z):6,C===z||T+k>S&&C%2===0?(a.push(C),T=I,C=1):C++}else T>S?(a.push(C),T=I,C=1):C++;I>S?D=M+1:D=Math.ceil(D),x===D?P+=1:(o.push(P),x=D,P=1)}o.push(P),a.push(C),a=a.filter(Boolean)}return a.length>1&&a[a.length-1]===1&&(a[a.length-2]=a[a.length-2]-1,a[a.length-1]=a[a.length-1]+1),console.log(a,o),this.buildPreparedMusicSystems(a)}buildPreparedMusicSystems(e){let r=!1;this.currentSystemParams=new SystemBuildParameters,this.currentSystemParams.currentSystem=this.initMusicSystem();for(let s=0,o=this.measureList.length;s0&&this.rules.RenderMultipleRestMeasures){m.isReducedToMultiRest=!0,m.multipleRestMeasureNumber=1;const b=m.multipleRestMeasures-1;d+=b;for(let S=1;S<=b;S++){const A=e.SourceMeasures.indexOf(m)+S;if(A>=e.SourceMeasures.length)break;const E=e.SourceMeasures[A];E.multipleRestMeasureNumber=S+1,E.isReducedToMultiRest=!0,r.push([void 0])}}}if(this.rules.AutoGenerateMultipleRestMeasuresFromRestMeasures&&this.rules.RenderMultipleRestMeasures){let d,g=0;for(let m=0,y=e.SourceMeasures.length;m0){d.isReducedToMultiRest=!0,d.multipleRestMeasureNumber=1,g++,b.multipleRestMeasureNumber=g,b.isReducedToMultiRest=!0;for(let S=0;S1){d.multipleRestMeasures=g;const S=this.createGraphicalMeasuresForSourceMeasure(d,s,a,c,o);r[d.measureListIndex]=S,g=0,d=void 0}else g=0,d=void 0}if(g>1){d.multipleRestMeasures=g,d.isReducedToMultiRest=!0;const m=this.createGraphicalMeasuresForSourceMeasure(d,s,a,c,o);r[d.measureListIndex]=m,g=0,d=void 0}}const u=o.map(d=>d.ClefType===ClefEnum.percussion);this.handleStaffEntries(u),this.calculateVerticalContainersList(),this.setIndicesToVerticalGraphicalContainers()}calculate(){this.musicSystems=[],this.clearSystemsAndMeasures(),this.clearRecreatedObjects(),this.createGraphicalTies(),this.calculateSheetLabelBoundingBoxes(),this.calculateXLayout(this.graphicalMusicSheet,this.maxInstrNameLabelLength()),this.graphicalMusicSheet.MusicPages.length=0,this.calculateMusicSystems(),GraphicalMusicSheet.transformRelativeToAbsolutePosition(this.graphicalMusicSheet)}calculateXLayout(e,r){var s;if(this.graphicalMusicSheet.MeasureList.length>0){let o=0,a;for(let l=0;lo&&(o=c),MusicSheetCalculator.setMeasuresMinStaffEntriesWidth(a,c)}if(this.rules.FixedMeasureWidth){let l=o;this.rules.FixedMeasureWidthFixedValue&&(l=this.rules.FixedMeasureWidthFixedValue);for(let c=0;c1;if(a===1&&r.Measures[0].parentSourceMeasure.ImplicitMeasure&&(c=!1),c)return;(l.MeasureNumber===0||l.MeasureNumber===1)&&(s=l.MeasureNumber),l!==r.Measures[0]&&this.rules.MeasureNumberLabelXOffset?o=this.rules.MeasureNumberLabelXOffset:o=0;const u=this.rules.UseXMLMeasureNumbers&&l.MeasureNumber===1&&l.parentSourceMeasure.getPrintedMeasureNumber()!==1;((l.MeasureNumber===s||l.MeasureNumber>=s+this.rules.MeasureNumberLabelOffset)&&!l.parentSourceMeasure.ImplicitMeasure||u)&&((l.MeasureNumber!==1||l.MeasureNumber===1&&l!==r.Measures[0]||u)&&this.calculateSingleMeasureNumberPlacement(l,r,e,o),s=l.MeasureNumber)}}calculateSingleMeasureNumberPlacement(e,r,s,o=0){const a=e.parentSourceMeasure.getPrintedMeasureNumber().toString(),l=new Label(a),c=new GraphicalLabel(l,this.rules.MeasureNumberLabelHeight,TextAlignmentEnum.LeftBottom,this.rules),u=r.SkyBottomLineCalculator;c.setLabelPositionAndShapeBorders(),c.PositionAndShape.Parent=s.PositionAndShape;const d=r.PositionAndShape.RelativePosition.x+e.PositionAndShape.RelativePosition.x-c.PositionAndShape.BorderMarginLeft+o;let g,m=d,y=d-c.PositionAndShape.BorderLeft+c.PositionAndShape.BorderRight;m-=r.PositionAndShape.RelativePosition.x,y-=r.PositionAndShape.RelativePosition.x;const b=m+.5,S=y-.5,A=u.getSkyLineMinInRange(b,S);if(e===r.Measures[0]){let E=0;if(s.GroupBrackets.length>0)for(const x of s.GroupBrackets)E=Math.min(E,x.PositionAndShape.BorderTop);else e.ParentStaff.ParentInstrument.Parent&&(E=-1);g=Math.min(A,E)}else g=A;g=Math.min(0,g),c.PositionAndShape.RelativePosition=new PointF2D(d,g),s.MeasureNumberLabels.push(c)}calculateMeasureNumberSkyline(e){const r=e.StaffLines[0];for(const s of e.MeasureNumberLabels){let o=s.PositionAndShape.RelativePosition.x,a=o-s.PositionAndShape.BorderLeft+s.PositionAndShape.BorderRight;o-=r.PositionAndShape.RelativePosition.x,a-=r.PositionAndShape.RelativePosition.x,r.SkyBottomLineCalculator.updateSkyLineInRange(o,a,s.PositionAndShape.RelativePosition.y+s.PositionAndShape.BorderMarginTop)}}layoutGraphicalTie(e,r,s){throw new Error(this.abstractNotImplementedErrorMessage)}calculateSingleStaffLineLyricsPosition(e,r){let s=0,o=this.rules.StaffHeight;const a=new Map,l=[],c=e.SkyBottomLineCalculator;let u=e.Measures.length;for(let g=0;g0){l.push(A),s=Math.max(s,A.LyricsEntries.length);const x=A.PositionAndShape.RelativePosition.x+y.x;let P=Number.MAX_VALUE,T=Number.MIN_VALUE;for(let M=0;M0){const g=e.PositionAndShape.Size.width;let m=l[0].PositionAndShape.RelativePosition.x+l[0].PositionAndShape.BorderMarginLeft+l[0].parentMeasure.PositionAndShape.RelativePosition.x;m=m>g?g:m,c.updateBottomLineInRange(m,g,d)}return l}calculateLyricsExtendsAndDashes(e){for(let r=0,s=e.length;r0||e.UnknownList.length>0){let g="";for(let A=0,E=e.EntriesList.length;A-50){let A=c/10;A+=this.rules.PlaceWordsInsideStafflineYOffset,S.PositionAndShape.RelativePosition.y=A}new GraphicalUnknownExpression(m,S,b,(d=a[s])==null?void 0:d.parentSourceMeasure,e)}}clearRecreatedObjects(){for(let e=0,r=this.staffEntriesWithGraphicalTies.length;ee.length-1&&(loglevelExports.debug("minimum measure to draw index out of range. resetting min measure index to limit."),this.rules.MinMeasureToDrawIndex=e.length-1);const r=[];for(let l=this.rules.MinMeasureToDrawIndex,c=e.length;l0){let x=0;l.staffEntries[0].relInMeasureTimestamp.RealValue===0&&(x=l.staffEntries[0].PositionAndShape.RelativePosition.x,l.MeasureNumber===1&&(x+=this.rules.ChordSymbolWholeMeasureRestXOffsetMeasure1));const P=l.PositionAndShape.Size.width-l.endInstructionsWidth,T=u.relInMeasureTimestamp.RealValue/l.parentSourceMeasure.Duration.RealValue;let C=x+(P-x)*T+g.PositionAndShape.BorderMarginLeft;c&&(C=Math.max(C,c.PositionAndShape.RelativePosition.x+c.GraphicalLabel.PositionAndShape.Size.width+this.rules.ChordSymbolXSpacing)),g.PositionAndShape.RelativePosition.x=C,g.PositionAndShape.Parent=l.staffEntries[0].PositionAndShape.Parent}const m=g.PositionAndShape,y=m.Parent;if(y.DataObject instanceof GraphicalMeasure&&u.relInMeasureTimestamp.RealValue===0&&(m.RelativePosition.x=Math.max(l.beginInstructionsWidth,m.RelativePosition.x),l.MeasureNumber===1&&m.RelativePosition.x>3&&(m.RelativePosition.x+=this.rules.ChordSymbolWholeMeasureRestXOffsetMeasure1)),u.PositionAndShape.RelativePosition.x===0){const x=e.GraphicalMeasures[a];for(const P of x){let T=!1;for(const C of P.staffEntries)if(C.relInMeasureTimestamp===u.relInMeasureTimestamp&&C.PositionAndShape.RelativePosition.x!==0){m.RelativePosition.x=C.PositionAndShape.RelativePosition.x,T=!0;break}if(T)break}}const b=m.BorderMarginLeft+y.AbsolutePosition.x+m.RelativePosition.x,S=m.BorderMarginRight+y.AbsolutePosition.x+m.RelativePosition.x;(!this.rules.ChordSymbolYAlignment||o>0)&&(o=s.getSkyLineMinInRange(b,S));let A=0;d===0?(A+=this.rules.ChordSymbolYOffset,A+=.1):A+=this.rules.ChordSymbolYPadding,A*=-1;const E=g.GraphicalLabel;E.PositionAndShape.RelativePosition.y=o+A,E.setLabelPositionAndShapeBorders(),E.PositionAndShape.calculateBoundingBox(),s.updateSkyLineInRange(b,S,o+E.PositionAndShape.BorderMarginTop),c=g}}}}calculateAlignedChordSymbolsOffset(e,r){let s=Number.MAX_SAFE_INTEGER;for(const o of e)for(const a of o.graphicalChordContainers){const l=a.PositionAndShape,c=l.Parent;let u=l.BorderMarginLeft+c.AbsolutePosition.x,d=l.BorderMarginRight+c.AbsolutePosition.x;c.DataObject instanceof GraphicalMeasure&&(u+=c.DataObject.beginInstructionsWidth,d+=c.DataObject.beginInstructionsWidth),s=Math.min(s,r.getSkyLineMinInRange(u,d))}return s}layoutMeasureWithWholeRest(e,r,s){}layoutBeams(e){}layoutArticulationMarks(e,r,s){}layoutOrnament(e,r,s){}calculateRestNotePlacementWithinGraphicalBeam(e,r,s,o,a){}calculateTupletNumbers(){if(!this.rules.TupletNumberLimitConsecutiveRepetitions)return;let e=-1,r,s=0,o,a;const l={};for(const c of this.graphicalMusicSheet.ParentMusicSheet.Instruments)for(const u of c.Voices){s=0,l[u.VoiceId]={};for(const d of u.VoiceEntries)if(d.Notes.length>0){const g=d.Notes[0];if(!g.NoteTuplet||g.NoteTuplet.shouldBeBracketed(this.rules.TupletsBracketedUseXMLValue,this.rules.TupletsBracketed,this.rules.TripletsBracketed)){e=-1,s=0,o=void 0,r=void 0;continue}if(g.NoteTuplet===a)continue;let m=g.TypeLength;if(m||(loglevelExports.warn("note missing TypeLength"),m=g.NoteTuplet.Fractions[0]),g.NoteTuplet!==o&&l[u.VoiceId][g.NoteTuplet.TupletLabelNumber]&&l[u.VoiceId][g.NoteTuplet.TupletLabelNumber][m.RealValue]){g.NoteTuplet.RenderTupletNumber=!1,a=g.NoteTuplet;continue}(g.NoteTuplet.TupletLabelNumber!==e||!m.Equals(r)||g.NoteTuplet.Bracket)&&(e=g.NoteTuplet.TupletLabelNumber,r=m,s=0),o=g.NoteTuplet,s++,s<=this.rules.TupletNumberMaxConsecutiveRepetitions&&(g.NoteTuplet.RenderTupletNumber=!0),s>this.rules.TupletNumberMaxConsecutiveRepetitions&&(g.NoteTuplet.RenderTupletNumber=!1,this.rules.TupletNumberAlwaysDisableAfterFirstMax&&(l[u.VoiceId][e]||(l[u.VoiceId][e]={}),l[u.VoiceId][e][m.RealValue]=!0)),a=o}}}calculateSlurs(){}calculateGlissandi(){}calculateDynamicExpressionsForMultiExpression(e,r,s){}calculateGraphicalVerbalContinuousDynamic(e,r){const s=e.Label,o=r.x+s.PositionAndShape.BorderMarginLeft,a=r.x+s.PositionAndShape.BorderMarginRight,l=e.ContinuousDynamic.Placement,u=e.ParentStaffLine.SkyBottomLineCalculator;let d;l===PlacementEnum.Below?(d=u.getBottomLineMaxInRange(o,a),s.PositionAndShape.RelativePosition=new PointF2D(r.x,d-s.PositionAndShape.BorderMarginTop)):(d=u.getSkyLineMinInRange(o,a),s.PositionAndShape.RelativePosition=new PointF2D(r.x,d-s.PositionAndShape.BorderMarginBottom))}calculateGraphicalContinuousDynamic(e,r){var te;const s=e.IsSoftAccent,o=e.ParentStaffLine.ParentStaff.idInMusicSheet,a=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(e.ContinuousDynamic.EndMultiExpression.SourceMeasureParent,o);if(!a){loglevelExports.warn("MusicSheetCalculator.calculateGraphicalContinuousDynamic: No endMeasure found");return}e.EndMeasure=a;const l=e.ParentStaffLine,c=a.ParentStaffLine,u=c&&l===c;let d=!1;c?d=c==null?void 0:c.isPartOfMultiStaffInstrument():l&&(d=l==null?void 0:l.isPartOfMultiStaffInstrument());const g=Fraction$1.createFromFraction(e.ContinuousDynamic.EndMultiExpression.AbsoluteTimestamp),m=this.graphicalMusicSheet.GetVerticalContainerFromTimestamp(g),y=m.getFirstNonNullStaffEntry().parentMeasure,b=y.PositionAndShape.AbsolutePosition.x+y.PositionAndShape.BorderRight;let S=new Fraction$1(0,0,0);for(const W of m.StaffEntries){const $=(te=W==null?void 0:W.sourceStaffEntry)==null?void 0:te.calculateMaxNoteLength(!1);$!=null&&$.gt(S)&&(S=$)}const A=!s&&e.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo,E=this.getRelativePositionInStaffLineFromTimestamp(g,o,c,d,0,A),x=Fraction$1.plus(g,S),P=this.getRelativePositionInStaffLineFromTimestamp(x,o,c,d,0,e.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo),T=this.rules.SoftAccentWedgePadding,C=m.getFirstNonNullStaffEntry().PositionAndShape.Size.width,M=this.rules.SoftAccentSizeFactor;s?(r.x-=C/2*M+T,E.x=r.x+C/2*M):P.x>E.x&&P.xk){const oe=I.StaffLines[W].PositionAndShape.RelativePosition.y-l.PositionAndShape.RelativePosition.y-this.rules.StaffHeight;R=this.rules.StaffHeight+oe/2}else R=this.rules.WedgePlacementBelowY;R-=this.rules.WedgeOpeningLength/2,u||(V=R);let $=D.getBottomLineMaxInRange(Q,U);if($>R&&(R=$),kV&&(V=$),V+=this.rules.WedgeOpeningLength/2,V+=this.rules.WedgeVerticalMargin),R+=this.rules.WedgeOpeningLength/2,R+=this.rules.WedgeVerticalMargin}else if(O===PlacementEnum.Above){if(l.ParentStaff.ParentInstrument.Staves.length===1)R=this.rules.WedgePlacementAboveY;else{let $=0;k>0&&($=k-1);const de=I.StaffLines[$];R=-(l.PositionAndShape.RelativePosition.y-de.PositionAndShape.RelativePosition.y-this.rules.StaffHeight)/2}R+=this.rules.WedgeOpeningLength/2,u||(V=R);let W=D.getSkyLineMinInRange(Q,U);if(W1&&k>0){const $=l.findClosestStaffEntry(Q),de=l.findClosestStaffEntry(U);$&&de&&$.parentVerticalContainer}u||(W=c.SkyBottomLineCalculator.getSkyLineMinInRange(_,G),Woe&&(oe=Y),oe+=this.rules.WedgeOpeningLength/2,oe+=this.rules.WedgeVerticalMargin}else if(O===PlacementEnum.Above){const Y=de.SkyBottomLineCalculator.getSkyLineMinInRange(_,G);Y-m/2?u=-m/2:u=d-e.PositionAndShape.BorderMarginBottom}else u=d-e.PositionAndShape.BorderMarginBottom;e.PositionAndShape.RelativePosition=new PointF2D(r.x,u)}else if(e.Placement===PlacementEnum.Below){const d=c.getBottomLineMaxInRange(a,l),g=o.ParentStaff.ParentInstrument.Staves[o.ParentStaff.ParentInstrument.Staves.length-1];if(o.isPartOfMultiStaffInstrument()&&o.ParentStaff!==g){const y=o.ParentMusicSystem.StaffLines[o.ParentMusicSystem.StaffLines.indexOf(o)+1].PositionAndShape.RelativePosition.y-o.PositionAndShape.RelativePosition.y-this.rules.StaffHeight,b=e.PositionAndShape.BorderMarginBottom;d+be.PositionAndShape.Size.width&&(b=e.PositionAndShape.Size.width-this.rules.MeasureRightMargin,y=b-g.PositionAndShape.MarginSize.width,r.x=y-g.PositionAndShape.BorderMarginLeft);let S;const A=e.SkyBottomLineCalculator;return a===PlacementEnum.Below?S=A.getBottomLineMaxInRange(y,b)+u:S=A.getSkyLineMinInRange(y,b)-u,g.PositionAndShape.RelativePosition=new PointF2D(r.x,S),a===PlacementEnum.Below?A.updateBottomLineInRange(y,b,g.PositionAndShape.BorderMarginBottom+S):A.updateSkyLineInRange(y,b,g.PositionAndShape.BorderMarginTop+S),g}calculateTempoExpressionsForMultiTempoExpression(e,r,s,o){metronomeMarks={};const a=Fraction$1.plus(e.AbsoluteTimestamp,r.Timestamp),l=this.graphicalMusicSheet.MeasureList[s];let c=new PointF2D;if(r.ContinuousTempo||r.InstantaneousTempo){if(this.rules.MinMeasureToDrawIndex>0||!l[0])return;let u=l[0].ParentStaffLine,d=l[0].PositionAndShape.RelativePosition.x,g=0;for(let m=0;m0){u=l[m].ParentStaffLine,d=l[m].PositionAndShape.RelativePosition.x,g=m;break}if(c=this.getRelativePositionInStaffLineFromTimestamp(a,g,u,u.isPartOfMultiStaffInstrument(),d),r.EntriesList.length>0&&r.EntriesList[0].Expression instanceof InstantaneousTempoExpression){const m=r.EntriesList[0].Expression;if(m.Placement=PlacementEnum.Above,u.Measures[0].staffEntries.length>0&&Math.abs(c.x-u.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x)===0&&u.ParentMusicSystem===this.musicSystems[0]){const y=u.Measures[0].FirstInstructionStaffEntry;if(y){const b=y.GraphicalInstructions.last();c.x=b.PositionAndShape.RelativePosition.x}this.rules.CompactMode&&(c.x=u.PositionAndShape.RelativePosition.x+u.Measures[0].PositionAndShape.RelativePosition.x)}}for(const m of r.EntriesList){let y=TextAlignmentEnum.CenterBottom;this.rules.CompactMode&&(y=TextAlignmentEnum.LeftBottom);const b=this.calculateLabel(u,c,m.label,r.getFontstyleOfFirstEntry(),m.Expression.Placement,this.rules.UnknownTextHeight,y,this.rules.TempoYSpacing);if(m.Expression.ColorXML&&this.rules.ExpressionsUseXMLColor&&(b.ColorXML=m.Expression.ColorXML),m.Expression instanceof InstantaneousTempoExpression){for(const A of u.AbstractExpressions)A instanceof GraphicalInstantaneousTempoExpression&&(A.SourceExpression.Label,m.Expression.Label);new GraphicalInstantaneousTempoExpression(m.Expression,b).ParentStaffLine||loglevelExports.warn("Adding staffline didn't work"),m.Expression.Enum===TempoEnum.metronomeMark&&(metronomeMarks[s]=m.Expression)}else m.Expression instanceof ContinuousTempoExpression;if(o===e.TempoExpressions.length-1)for(const S of Object.values(metronomeMarks))this.createMetronomeMark(S,s);else if(m.Expression instanceof ContinuousTempoExpression){for(const S of u.AbstractExpressions)S instanceof GraphicalInstantaneousTempoExpression&&(S.SourceExpression.Label,m.Expression.Label);u.AbstractExpressions.push(new GraphicalInstantaneousTempoExpression(m.Expression,b))}}}}createMetronomeMark(e,r){throw new Error(this.abstractNotImplementedErrorMessage)}graphicalMeasureCreatedCalculations(e){}clearSystemsAndMeasures(){for(let e=0,r=this.graphicalMusicSheet.MusicPages.length;e-1&&y.PositionAndShape.ChildElements.splice(b,1),y.FirstInstructionStaffEntry=void 0,y.beginInstructionsWidth=0}if(y.LastInstructionStaffEntry){const b=y.PositionAndShape.ChildElements.indexOf(y.LastInstructionStaffEntry.PositionAndShape);b>-1&&y.PositionAndShape.ChildElements.splice(b,1),y.LastInstructionStaffEntry=void 0,y.endInstructionsWidth=0}}d.Measures=[],d.PositionAndShape.ChildElements=[]}l.StaffLines.length=0,l.PositionAndShape.ChildElements=[]}s.MusicSystems=[],s.PositionAndShape.ChildElements=[]}this.graphicalMusicSheet.MusicPages=[]}handleVoiceEntry(e,r,s,o,a,l,c,u,d,g=void 0,m=void 0){e.StemDirectionXml!==StemDirectionType.Undefined&&this.rules.SetWantedStemDirectionByXml&&e.StemDirectionXml!==void 0?e.WantedStemDirection=e.StemDirectionXml:this.calculateStemDirectionFromVoices(e);const y=r.findOrCreateGraphicalVoiceEntry(e);y.octaveShiftValue=u;const b=r.tabStaffEntry;let S;b&&(S=b.findOrCreateGraphicalVoiceEntry(e));for(let A=0,E=e.Notes.length;A-1)continue;let P;if(e.IsGrace?P=MusicSheetCalculator.symbolFactory.createGraceNote(x,y,a,this.rules,u):(P=MusicSheetCalculator.symbolFactory.createNote(x,y,a,u,this.rules,void 0),MusicSheetCalculator.stafflineNoteCalculator.trackNote(P)),x.Pitch&&this.checkNoteForAccidental(P,s,a,u),this.resetYPositionForLeadSheet(P.PositionAndShape),r.addGraphicalNoteToListAtCorrectYPosition(y,P),P.PositionAndShape.calculateBoundingBox(),this.leadSheet||(x.NoteBeam!==void 0&&x.PrintObject&&(!(x instanceof TabNote)||this.rules.TabBeamsRendered)&&this.handleBeam(P,x.NoteBeam,c),x.NoteTuplet!==void 0&&x.PrintObject&&this.handleTuplet(P,x.NoteTuplet,l)),S){const T=MusicSheetCalculator.symbolFactory.createNote(x,S,a,u,this.rules,void 0);b.addGraphicalNoteToListAtCorrectYPosition(S,T),T.PositionAndShape.calculateBoundingBox(),this.leadSheet||x.NoteTuplet&&this.handleTuplet(T,x.NoteTuplet,l)}}return e.Articulations.length>0&&this.handleVoiceEntryArticulations(e.Articulations,e,r),e.TechnicalInstructions.length>0&&this.handleVoiceEntryTechnicalInstructions(e.TechnicalInstructions,e,r),e.LyricsEntries.size()>0&&this.handleVoiceEntryLyrics(e,r,o),e.OrnamentContainer&&this.handleVoiceEntryOrnaments(e.OrnamentContainer,e,r),u}resetYPositionForLeadSheet(e){this.leadSheet&&(e.RelativePosition=new PointF2D(e.RelativePosition.x,0))}layoutVoiceEntries(e,r){if(e.PositionAndShape.RelativePosition=new PointF2D(0,0),!this.leadSheet)for(const s of e.graphicalVoiceEntries){const o=s.notes;if(o.length===0)continue;const a=o[0].sourceNote.ParentVoiceEntry,l=o[0].sourceNote.Pitch!==void 0;this.layoutVoiceEntry(a,o,e,l)}}maxInstrNameLabelLength(){var r;let e=0;for(const s of this.graphicalMusicSheet.ParentMusicSheet.Instruments)if((r=s.NameLabel)!=null&&r.print&&s.Voices.length>0&&s.Voices[0].Visible){let o=s.NameLabel;this.rules.RenderPartNames||(o=new Label("",o.textAlignment,o.font));const a=new GraphicalLabel(o,this.rules.InstrumentLabelTextHeight,TextAlignmentEnum.LeftCenter,this.rules);a.setLabelPositionAndShapeBorders(),e=Math.max(e,a.PositionAndShape.MarginSize.width)}return this.rules.RenderPartNames?e:0}calculateSheetLabelBoundingBoxes(){var o;const e=this.graphicalMusicSheet.ParentMusicSheet,r=this.rules.DefaultColorTitle;if(e.Title!==void 0&&this.rules.RenderTitle){const a=new GraphicalLabel(e.Title,this.rules.SheetTitleHeight,TextAlignmentEnum.CenterBottom,this.rules);a.Label.IsCreditLabel=!0,a.Label.colorDefault=r,this.graphicalMusicSheet.Title=a,a.setLabelPositionAndShapeBorders()}else this.rules.RenderTitle||(this.graphicalMusicSheet.Title=void 0);if(e.Subtitle!==void 0&&this.rules.RenderSubtitle){const a=new GraphicalLabel(e.Subtitle,this.rules.SheetSubtitleHeight,TextAlignmentEnum.CenterCenter,this.rules);a.Label.IsCreditLabel=!0,a.Label.colorDefault=r,this.graphicalMusicSheet.Subtitle=a,a.setLabelPositionAndShapeBorders()}else this.rules.RenderSubtitle||(this.graphicalMusicSheet.Subtitle=void 0);if(e.Composer!==void 0&&this.rules.RenderComposer){const a=new GraphicalLabel(e.Composer,this.rules.SheetComposerHeight,TextAlignmentEnum.RightCenter,this.rules);a.Label.IsCreditLabel=!0,a.Label.colorDefault=r,this.graphicalMusicSheet.Composer=a,a.setLabelPositionAndShapeBorders()}else this.rules.RenderComposer||(this.graphicalMusicSheet.Composer=void 0);if(e.Lyricist!==void 0&&this.rules.RenderLyricist){const a=new GraphicalLabel(e.Lyricist,this.rules.SheetAuthorHeight,TextAlignmentEnum.RightCenter,this.rules);a.Label.IsCreditLabel=!0,a.Label.colorDefault=r,this.graphicalMusicSheet.Lyricist=a,a.setLabelPositionAndShapeBorders()}else this.rules.RenderLyricist||(this.graphicalMusicSheet.Lyricist=void 0);if(e.Copyright!==void 0&&this.rules.RenderCopyright){const a=new GraphicalLabel(e.Copyright,this.rules.SheetCopyrightHeight,TextAlignmentEnum.CenterBottom,this.rules);a.Label.IsCreditLabel=!0,a.Label.colorDefault=r,this.graphicalMusicSheet.Copyright=a,a.setLabelPositionAndShapeBorders()}else this.rules.RenderCopyright||(this.graphicalMusicSheet.Copyright=void 0);const s=(o=this.graphicalMusicSheet.musicSheet.sourceMeasures)==null?void 0:o[0];if(s&&s.FirstInstructionsStaffEntries.length>0){const a=s.FirstInstructionsStaffEntries[0];let l,c;for(let u=0,d=a.Instructions.length;u0&&g.graphicalVoiceEntries[0].notes.length===1){const m=g.graphicalVoiceEntries[0].notes[0];!m.sourceNote.Pitch&&new Fraction$1(1,2).lt(m.sourceNote.Length)&&this.layoutMeasureWithWholeRest(m,g,d)}}}}}}optimizeRestNotePlacement(e,r){if(e.graphicalVoiceEntries.length===0)return;const s=e.graphicalVoiceEntries[0].notes;if(s.length===0)return;const o=s[0],a=o.sourceNote.isRest();if(e.graphicalVoiceEntries.length===2){let l=!1;const c=e.graphicalVoiceEntries[1].notes;c.length>0&&(l=c[0].sourceNote.isRest()),a&&l?this.calculateTwoRestNotesPlacementWithCollisionDetection(e):(a||l)&&this.calculateRestNotePlacementWithCollisionDetectionFromGraphicalNote(e)}else if(a&&e!==r.staffEntries[0]&&e!==r.staffEntries[r.staffEntries.length-1]){const l=r.staffEntries.indexOf(e),c=r.staffEntries[l-1],u=r.staffEntries[l+1];if(c.graphicalVoiceEntries.length===1){const d=c.graphicalVoiceEntries[0].notes[0];if(d.sourceNote.NoteBeam!==void 0&&u.graphicalVoiceEntries.length===1){const g=u.graphicalVoiceEntries[0].notes[0];g.sourceNote.NoteBeam!==void 0&&d.sourceNote.NoteBeam===g.sourceNote.NoteBeam&&(this.calculateRestNotePlacementWithinGraphicalBeam(e,o,d,u,g),e.PositionAndShape.calculateBoundingBox())}}}}getRelativePositionInStaffLineFromTimestamp(e,r,s,o,a=0,l=!1){let c=new PointF2D,u,d;const g=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers.length,m=this.graphicalMusicSheet.GetInterpolatedIndexInVerticalContainers(e),y=Math.min(Math.floor(m),g-1),b=Math.min(Math.ceil(m),g-1);if(y<0||r<0)return c;if(u=this.getFirstLeftNotNullStaffEntryFromContainer(y,r,o),d=this.getFirstRightNotNullStaffEntryFromContainer(b,r,o),u&&d){let S=u.parentMeasure.PositionAndShape.RelativePosition.x;a>0&&(S=a);let A=u.PositionAndShape.RelativePosition.x+S,E=d.PositionAndShape.RelativePosition.x+d.parentMeasure.PositionAndShape.RelativePosition.x;const x=e.RealValue>d.getAbsoluteTimestamp().RealValue;a>0?E=d.PositionAndShape.RelativePosition.x+S:l&&(u.getAbsoluteTimestamp().RealValue===e.RealValue||x)&&(A=u.PositionAndShape.RelativePosition.x+u.PositionAndShape.BorderLeft+S,E=A);let P=0;if(u!==d){const T=u.getAbsoluteTimestamp(),C=d.getAbsoluteTimestamp();P=Fraction$1.minus(e,T).RealValue/Fraction$1.minus(C,T).RealValue}u.parentMeasure.ParentStaffLine!==d.parentMeasure.ParentStaffLine&&(u.parentMeasure.ParentStaffLine===s?E=s.PositionAndShape.Size.width:A=s.PositionAndShape.RelativePosition.x),c=new PointF2D(A+(E-A)*P,0)}return c}getRelativeXPositionFromTimestamp(e){const r=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers.length,s=this.graphicalMusicSheet.GetInterpolatedIndexInVerticalContainers(e),o=Math.max(0,Math.min(Math.round(s),r-1)),a=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[o].getFirstNonNullStaffEntry();return a.PositionAndShape.RelativePosition.x+a.parentMeasure.PositionAndShape.RelativePosition.x}calculatePageLabels(e){var g,m;this.rules.RenderSingleHorizontalStaffline&&(e.PositionAndShape.BorderRight=e.PositionAndShape.Size.width,e.PositionAndShape.calculateBoundingBox(),this.graphicalMusicSheet.ParentMusicSheet.pageWidth=e.PositionAndShape.Size.width);let r=10,s=-1;if(e.MusicSystems.length>0){const y=e.MusicSystems[0];r=y.PositionAndShape.RelativePosition.y+y.PositionAndShape.BorderTop;const b=e.MusicSystems[e.MusicSystems.length-1];s=b.PositionAndShape.RelativePosition.y+b.PositionAndShape.BorderBottom}if(this.graphicalMusicSheet.Title&&this.rules.RenderTitle){const y=this.graphicalMusicSheet.Title;y.PositionAndShape.Parent=e.PositionAndShape;const b=new PointF2D;b.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth/2,b.y=this.rules.TitleTopDistance+this.rules.SheetTitleHeight,y.PositionAndShape.RelativePosition=b,e.Labels.push(y)}if(this.graphicalMusicSheet.Subtitle&&this.rules.RenderTitle&&this.rules.RenderSubtitle){const y=this.graphicalMusicSheet.Subtitle;y.PositionAndShape.Parent=e.PositionAndShape;const b=new PointF2D;b.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth/2,b.y=this.rules.TitleTopDistance+this.rules.SheetTitleHeight+this.rules.SheetMinimumDistanceBetweenTitleAndSubtitle;const S=(g=y.TextLines)==null?void 0:g.length;S>1&&(b.y+=y.PositionAndShape.BorderBottom*(S-1)/S),y.PositionAndShape.RelativePosition=b,e.Labels.push(y)}const o=this.graphicalMusicSheet.Composer;let a;const c=this.graphicalMusicSheet.Composer&&this.rules.RenderComposer&&this.graphicalMusicSheet.Lyricist&&this.rules.RenderLyricist?2:0;if(o&&this.rules.RenderComposer){o.PositionAndShape.Parent=e.PositionAndShape,o.setLabelPositionAndShapeBorders();const y=new PointF2D;y.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth-this.rules.PageRightMargin,y.y=r,y.y-=this.rules.SystemComposerDistance;const b=(m=o.TextLines)==null?void 0:m.length;b>1&&(y.y-=o.PositionAndShape.BorderBottom*(b-1)/b),a=y.y,y.y-=c,o.PositionAndShape.RelativePosition=y,e.Labels.push(o)}const u=this.graphicalMusicSheet.Lyricist;if(u&&this.rules.RenderLyricist){u.PositionAndShape.Parent=e.PositionAndShape,u.setLabelPositionAndShapeBorders();const y=new PointF2D;y.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth-this.rules.PageRightMargin,y.y=r,y.y-=this.rules.SystemLyricistDistance,y.y+=u.PositionAndShape.BorderBottom,y.y=Math.min(y.y,a!=null?a:Number.MAX_SAFE_INTEGER),y.y+=c,u.PositionAndShape.RelativePosition=y,e.Labels.push(u)}const d=this.graphicalMusicSheet.Copyright;if(d&&this.rules.RenderCopyright){d.PositionAndShape.Parent=e.PositionAndShape,d.setLabelPositionAndShapeBorders();const y=new PointF2D;y.x=e.PositionAndShape.Size.width/2,y.y=s+this.rules.SheetCopyrightMargin,y.y-=d.PositionAndShape.BorderTop,d.PositionAndShape.RelativePosition=y,e.Labels.push(d)}}createGraphicalTies(){for(let e=0;e=0&&this.staffEntriesWithGraphicalTies.push(a)}a=c}}setTieDirections(e){if(!e)return;const r=e.ties;if(r.length===1){const s=r[0];if(s.TieDirection===PlacementEnum.NotYetDefined){const o=s.Notes[0].ParentVoiceEntry.ParentVoice.VoiceId;(o===2||o===6)&&(s.TieDirection=PlacementEnum.Below)}}if(r.length>1){let s;for(const o of r){const a=o.Notes[0];(!s||a.Pitch.getHalfTone()>s.Pitch.getHalfTone())&&(s=a)}for(const o of r)o.TieDirection===PlacementEnum.NotYetDefined&&(o.Notes[0]===s?o.TieDirection=PlacementEnum.Above:o.TieDirection=PlacementEnum.Below)}}createAccidentalCalculators(){const e=[],r=this.graphicalMusicSheet.ParentMusicSheet.getFirstSourceMeasure();if(r)for(let s=0;s1)return;m=MusicSheetCalculator.symbolFactory.createGraphicalMeasure(e,g)}if(m.hasError=e.getErrorInMeasure(u),e.FirstInstructionsStaffEntries[u])for(let x=0,P=e.FirstInstructionsStaffEntries[u].Instructions.length;x0){const B=P.Instructions[0];MusicSheetCalculator.symbolFactory.createInStaffClef(T,B)}this.rules.RenderChordSymbols&&((E=P.ChordContainers)==null?void 0:E.length)>0&&(P.ParentStaff.ParentInstrument.HasChordSymbols=!0,MusicSheetCalculator.symbolFactory.createChordSymbols(P,T,o.ActiveKeyInstruction,this.graphicalMusicSheet.ParentMusicSheet.Transpose))}}if(o.doCalculationsAtEndOfMeasure(),e.LastInstructionsStaffEntries[u]){const x=e.LastInstructionsStaffEntries[u];for(let P=0,T=x.Instructions.length;P=1&&m.staffEntries.length===0){const x=new SourceStaffEntry(new VerticalSourceStaffEntryContainer(m.parentSourceMeasure,m.parentSourceMeasure.AbsoluteTimestamp,m.parentSourceMeasure.CompleteNumberOfStaves),g);if(g.Voices.length===0){const k=new Voice(m.ParentStaff.ParentInstrument,-1);g.Voices.push(k)}const P=new VoiceEntry(new Fraction$1(0,1),g.Voices[0],x);let T=e.Duration;T.RealValue===0&&(T=e.ActiveTimeSignature.clone());const C=new Note$1(P,x,T,void 0,e,!0);C.IsWholeMeasureRest=!0,C.PrintObject=this.rules.FillEmptyMeasuresWithWholeRest===FillEmptyMeasuresWithWholeRests.YesVisible,P.addNote(C);const M=MusicSheetCalculator.symbolFactory.createStaffEntry(x,m);m.addGraphicalStaffEntry(M),M.relInMeasureTimestamp=P.Timestamp;const B=MusicSheetCalculator.symbolFactory.createVoiceEntry(P,M);M.graphicalVoiceEntries.push(B);const I=MusicSheetCalculator.symbolFactory.createNote(C,B,new ClefInstruction,OctaveEnum.NONE,this.rules);MusicSheetCalculator.stafflineNoteCalculator.trackNote(I),B.notes.push(I)}m.hasOnlyRests=!0;for(const x of m.staffEntries)if(m.hasOnlyRests=x.hasOnlyRests(),!m.hasOnlyRests)break;return m}checkNoteForAccidental(e,r,s,o){let a=e.sourceNote.Pitch;const l=e.parentVoiceEntry.parentStaffEntry.parentMeasure.getTransposedHalftones();l!==0&&e.sourceNote.ParentStaffEntry.ParentStaff.ParentInstrument.MidiInstrumentId!==MidiInstrument.Percussion&&(a=e.Transpose(r.ActiveKeyInstruction,s,l,o),e.sourceNote.TransposedPitch=a),e.sourceNote.halfTone=a.getHalfTone(),r.checkAccidental(e,a)}handleStaffEntries(e){for(let r=0,s=this.graphicalMusicSheet.MeasureList.length;r0&&!this.rules.PercussionUseCajon2NoteSystem&&e[a]&&(this.rules.PercussionOneLineCutoff===-1||MusicSheetCalculator.stafflineNoteCalculator.getStafflineUniquePositionCount(a)0&&u.graphicalVoiceEntries[0].notes.length>0&&(this.layoutVoiceEntries(u,a),this.layoutStaffEntry(u));this.graphicalMeasureCreatedCalculations(c)}}}}calculateSkyBottomLines(){for(const e of this.musicSystems)for(const r of e.StaffLines)r.SkyBottomLineCalculator.calculateLines()}calculateExpressionAlignements(){}calculateStaffEntryArticulationMarks(){for(let e=0,r=this.musicSystems.length;e0&&this.layoutArticulationMarks(A.Articulations,A,y)}}}}}}calculateOrnaments(){for(let e=0,r=this.musicSystems.length;e0&&o.LyricVersesNumbers.sort()}for(let r=0,s=this.musicSystems.length;r=0&&(o=r.GraphicalLyricsEntries[s+1]),!o)return;const a=e.StaffEntryParent.parentMeasure.ParentStaffLine,l=o.StaffEntryParent.parentMeasure.ParentStaffLine,c=e.StaffEntryParent,u=o.StaffEntryParent;if(e.StaffEntryParent.parentMeasure.ParentStaffLine===o.StaffEntryParent.parentMeasure.ParentStaffLine){const d=c.parentMeasure.PositionAndShape.RelativePosition.x+c.PositionAndShape.RelativePosition.x+e.GraphicalLabel.PositionAndShape.RelativePosition.x+e.GraphicalLabel.PositionAndShape.BorderMarginRight-e.GraphicalLabel.CenteringXShift,g=u.parentMeasure.PositionAndShape.RelativePosition.x+u.PositionAndShape.RelativePosition.x+e.GraphicalLabel.PositionAndShape.RelativePosition.x+o.GraphicalLabel.PositionAndShape.BorderMarginLeft,m=e.GraphicalLabel.PositionAndShape.RelativePosition.y;let y=1;g-d>this.rules.MinimumDistanceBetweenDashes*3&&(y=Math.floor((g-d)/this.rules.MinimumDistanceBetweenDashes)-1),y===1?this.calculateSingleDashForLyricWord(a,d,g,m):this.calculateDashes(a,d,g,m)}else{const d=c.parentMeasure.PositionAndShape.RelativePosition.x+c.PositionAndShape.RelativePosition.x+e.GraphicalLabel.PositionAndShape.BorderMarginRight,g=a.Measures[a.Measures.length-1],m=g.PositionAndShape.RelativePosition.x+g.PositionAndShape.Size.width;let y=e.GraphicalLabel.PositionAndShape.RelativePosition.y;if(this.calculateDashes(a,d,m,y),l&&l.Measures[0]&&u.parentMeasure.ParentStaffLine&&!(u===u.parentMeasure.staffEntries[0]&&u.parentMeasure===u.parentMeasure.ParentStaffLine.Measures[0])){const b=l.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x,S=u.parentMeasure.PositionAndShape.RelativePosition.x+u.PositionAndShape.RelativePosition.x+o.GraphicalLabel.PositionAndShape.BorderMarginLeft;y=o.GraphicalLabel.PositionAndShape.RelativePosition.y,this.calculateDashes(l,b,S,y)}}}calculateDashes(e,r,s,o){let a=s-r;if(ar;)a=this.calculateRightAndLeftDashesForLyricWord(e,r,s,o),r+=c,s-=c,u++;a>c*2&&this.calculateSingleDashForLyricWord(e,r,s,o)}}calculateSingleDashForLyricWord(e,r,s,o){const a=new Label("-");a.colorDefault=this.rules.DefaultColorLyrics;let l=this.rules.LyricsHeight;s-r<.8&&(l*=.8,o-=.1*l);const c=new GraphicalLabel(a,l,TextAlignmentEnum.CenterBottom,this.rules);c.setLabelPositionAndShapeBorders(),e.LyricsDashes.push(c),this.staffLinesWithLyricWords.indexOf(e)===-1&&this.staffLinesWithLyricWords.push(e),c.PositionAndShape.Parent=e.PositionAndShape;const u=new PointF2D(r+(s-r)/2,o);c.PositionAndShape.RelativePosition=u}calculateLyricExtend(e){let r=e.GraphicalLabel.PositionAndShape.RelativePosition.y;const s=e.StaffEntryParent,o=s.parentMeasure.ParentStaffLine;let a,l;const c=s.parentMeasure.ParentStaff.idInMusicSheet;for(let u=s.parentVerticalContainer.Index+1;u0)break;a=d,l=a.parentMeasure.ParentStaffLine,l||(l=s.parentMeasure.ParentStaffLine)}}if(!(!a||!l))if(o===l&&a.parentMeasure.ParentStaffLine){const u=s.parentMeasure.PositionAndShape.RelativePosition.x+s.PositionAndShape.RelativePosition.x+e.GraphicalLabel.PositionAndShape.BorderMarginRight,d=a.parentMeasure.PositionAndShape.RelativePosition.x+a.PositionAndShape.RelativePosition.x+a.PositionAndShape.BorderMarginRight;r-=e.GraphicalLabel.PositionAndShape.Size.height/4,this.calculateSingleLyricWordWithUnderscore(o,u,d,r)}else{const u=o.Measures[o.Measures.length-1].PositionAndShape,d=s.parentMeasure.PositionAndShape.RelativePosition.x+s.PositionAndShape.RelativePosition.x+e.GraphicalLabel.PositionAndShape.BorderMarginRight,g=u.RelativePosition.x+u.Size.width;if(r-=e.GraphicalLabel.PositionAndShape.Size.height/4,this.calculateSingleLyricWordWithUnderscore(o,d,g,r),!a)return;if(a.parentMeasure.ParentStaffLine&&a.parentMeasure.staffEntries&&!(a===a.parentMeasure.staffEntries[0]&&a.parentMeasure===a.parentMeasure.ParentStaffLine.Measures[0])){const m=l.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x,y=a.parentMeasure.PositionAndShape.RelativePosition.x+a.PositionAndShape.RelativePosition.x+a.PositionAndShape.BorderMarginRight;this.calculateSingleLyricWordWithUnderscore(l,m,y,r)}}}calculateSingleLyricWordWithUnderscore(e,r,s,o){const a=new PointF2D(r,o),l=new PointF2D(s,o),c=new GraphicalLine(a,l,this.rules.LyricUnderscoreLineWidth);c.colorHex=this.rules.DefaultColorLyrics,e.LyricLines.push(c),this.staffLinesWithLyricWords.indexOf(e)===-1&&this.staffLinesWithLyricWords.push(e)}calculateRightAndLeftDashesForLyricWord(e,r,s,o){const a=new Label("-");a.colorDefault=this.rules.DefaultColorLyrics;const l=new GraphicalLabel(a,this.rules.LyricsHeight,TextAlignmentEnum.CenterBottom,this.rules);l.setLabelPositionAndShapeBorders(),e.LyricsDashes.push(l),this.staffLinesWithLyricWords.indexOf(e)===-1&&this.staffLinesWithLyricWords.push(e),l.PositionAndShape.Parent=e.PositionAndShape;const c=new PointF2D(r,o);l.PositionAndShape.RelativePosition=c;const u=new Label("-"),d=new GraphicalLabel(u,this.rules.LyricsHeight,TextAlignmentEnum.CenterBottom,this.rules);d.setLabelPositionAndShapeBorders(),e.LyricsDashes.push(d),d.PositionAndShape.Parent=e.PositionAndShape;const g=new PointF2D(s,o);return d.PositionAndShape.RelativePosition=g,d.PositionAndShape.RelativePosition.x-l.PositionAndShape.RelativePosition.x}calculateDynamicExpressions(){const e=Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length-1,this.rules.MaxMeasureToDrawIndex),r=Math.min(this.rules.MinMeasureToDrawIndex,this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length);for(let s=r;s<=e;s++){const o=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[s];this.dynamicExpressionMap.clear();for(let a=0;a=0;o--)if(this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[o].StaffEntries[r])return this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[o].StaffEntries[r]}getFirstRightNotNullStaffEntryFromContainer(e,r,s){if(this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[e].StaffEntries[r])return this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[e].StaffEntries[r];for(let o=e+1;o0||r.StaffLinkedExpressions[s][o].UnknownList.length>0)&&this.calculateMoodAndUnknownExpression(r.StaffLinkedExpressions[s][o],e,s)}}calculateStemDirectionFromVoices(e){if(e.ParentSourceStaffEntry.Link!==void 0)if(e===e.ParentSourceStaffEntry.VoiceEntries[0]){e.WantedStemDirection=StemDirectionType.Up;return}else{e.WantedStemDirection=StemDirectionType.Down;return}else e.ParentVoice instanceof LinkedVoice?e.WantedStemDirection=StemDirectionType.Down:e.ParentSourceStaffEntry.VoiceEntries.length>1&&(e.WantedStemDirection=StemDirectionType.Up)}setBeamNotesWantedStemDirections(e){if(!(e.Notes.length>0))return;const r=e.Notes[0].NoteBeam;if(r){for(const s of r.Notes)if(s.ParentVoiceEntry.WantedStemDirection!==StemDirectionType.Undefined&&s.ParentVoiceEntry.ParentSourceStaffEntry.ParentStaff.Id===e.ParentSourceStaffEntry.ParentStaff.Id){e.WantedStemDirection=s.ParentVoiceEntry.WantedStemDirection;break}}}}class InstrumentalGroup{constructor(e,r,s){this.instrumentalGroups=[],this.name=e,this.musicSheet=r,this.parent=s}get InstrumentalGroups(){return this.instrumentalGroups}get Parent(){return this.parent}get Name(){return this.name}set Name(e){this.name=e}get GetMusicSheet(){return this.musicSheet}}class Instrument extends InstrumentalGroup{constructor(e,r,s,o){super(void 0,s,o),this.Transpose=0,this.voices=[],this.staves=[],this.hasLyrics=!1,this.hasChordSymbols=!1,this.playbackTranspose=0,this.lyricVersesNumbers=[],this.subInstruments=[],this.id=e,this.idString=r,this.nameLabel=new Label(r)}get Voices(){return this.voices}get Staves(){return this.staves}get NameLabel(){return this.nameLabel}get HasLyrics(){return this.hasLyrics}set HasLyrics(e){this.hasLyrics=e}get HasChordSymbols(){return this.hasChordSymbols}set HasChordSymbols(e){this.hasChordSymbols=e}get LyricVersesNumbers(){return this.lyricVersesNumbers}set LyricVersesNumbers(e){this.lyricVersesNumbers=e}get Name(){return this.nameLabel.text}set Name(e){this.nameLabel.text=e}get IdString(){return this.idString}get Id(){return this.id}get MidiInstrumentId(){return this.subInstruments[0].midiInstrumentID}set MidiInstrumentId(e){this.subInstruments[0].midiInstrumentID=e}get Volume(){return this.subInstruments[0].volume}set Volume(e){for(let r=0,s=this.subInstruments.length;r0?this.Voices[0].Visible:!1}set Visible(e){for(let r=0,s=this.Voices.length;r-1&&this.parent.MusicSystems.splice(r,1)}this.parent=e,this.boundingBox.Parent=e.PositionAndShape}get NextSystem(){const e=this.Parent.MusicSystems.indexOf(this);return e!==this.Parent.MusicSystems.length?this.Parent.MusicSystems[e+1]:void 0}get StaffLines(){return this.staffLines}get GraphicalMeasures(){return this.graphicalMeasures}get MeasureNumberLabels(){return this.measureNumberLabels}get Labels(){return this.labels.values()}get ObjectsToRedraw(){return this.objectsToRedraw}get InstrumentBrackets(){return this.instrumentBrackets}get GroupBrackets(){return this.groupBrackets}get GraphicalMarkedAreas(){return this.graphicalMarkedAreas}get SystemLines(){return this.systemLines}get Id(){return this.id}createSystemLeftLine(e,r,s){let o=-e/2;s&&(o=this.maxLabelLength+r-e/2);const a=this.staffLines[0].Measures[0];let l;this.staffLines.length>1&&(l=this.staffLines[this.staffLines.length-1].Measures[0]);const c=this.createSystemLine(o,e,SystemLinesEnum.SingleThin,SystemLinePosition.MeasureBegin,this,a,l);this.SystemLines.push(c),c.PositionAndShape.RelativePosition=new PointF2D(o,0),c.PositionAndShape.BorderLeft=0,c.PositionAndShape.BorderRight=e,c.PositionAndShape.BorderTop=c.PositionAndShape.Parent.BorderTop,c.PositionAndShape.BorderBottom=c.PositionAndShape.Parent.BorderBottom,this.createLinesForSystemLine(c)}createVerticalLineForMeasure(e,r,s,o,a,l){const c=l.ParentStaffLine,u=new PointF2D(c.PositionAndShape.RelativePosition.x,c.PositionAndShape.RelativePosition.y),d=c.ParentStaff.ParentInstrument.Staves;if(c.ParentStaff===d[0]){let g;d.length>1&&(g=this.getBottomStaffLine(c).Measures[a]);const m=this.createSystemLine(e,r,s,o,this,l,g),y=u.x+e;m.PositionAndShape.RelativePosition=new PointF2D(y,0),m.PositionAndShape.BorderLeft=0,m.PositionAndShape.BorderRight=r,this.SystemLines.push(m)}}setYPositionsToVerticalLineObjectsAndCreateLines(e){}calculateBorders(e){}alignBeginInstructions(){}GetLeftBorderAbsoluteXPosition(){return this.StaffLines[0].PositionAndShape.AbsolutePosition.x+this.StaffLines[0].Measures[0].beginInstructionsWidth}GetRightBorderAbsoluteXPosition(){return this.StaffLines[0].PositionAndShape.AbsolutePosition.x+this.StaffLines[0].StaffLines[0].End.x}AddGraphicalMeasures(e){for(let r=0,s=e.length;r1){let l,c;for(let u=0,d=this.staffLines.length;uthis.maxLabelLength&&(this.maxLabelLength=g.PositionAndShape.Size.width,r=a)}this.updateMusicSystemStaffLineXPosition(r)}setMusicSystemLabelsYPosition(){this.labels.forEach((e,r)=>{let s=0,o=0;for(let a=0;a0&&(r.PositionAndShape.RelativePosition=new PointF2D(0,s/o+2))})}checkStaffEntriesForStaffEntryLink(){let e=!1,r=!1;for(let s=0;s=0;s--){if(r=e.InstrumentalGroups[s],r instanceof Instrument){if(r.Visible===!0)return r;continue}return this.findLastVisibleInstrumentInInstrumentalGroup(r)}}updateMusicSystemStaffLineXPosition(e){for(let r=0,s=this.StaffLines.length;ru.symbol_type===r))return;const c=new VF$7.Repetition(r,o,-this.rules.RepetitionSymbolsYOffset);c.xShiftAsPercentOfStaveWidth=this.rules.RepetitionEndInstructionXShiftAsPercentOfStaveWidth,this.stave.addModifier(c,s);return}this.addVolta(e)}addVolta(e){var s;let r=VF$7.Volta.type.BEGIN;if(e.type===RepetitionInstructionEnum.Ending){switch(e.alignment){case AlignmentType.Begin:this.parentSourceMeasure.endsRepetitionEnding()?r=VF$7.Volta.type.BEGIN_END:r=VF$7.Volta.type.BEGIN;break;case AlignmentType.End:if(this.parentSourceMeasure.beginsRepetitionEnding())return;r=VF$7.Volta.type.END;break}const o=this.ParentStaffLine.SkyBottomLineCalculator,a=this.PositionAndShape.AbsolutePosition.x+this.PositionAndShape.BorderMarginLeft+.4,l=Math.max(this.PositionAndShape.AbsolutePosition.x+this.PositionAndShape.BorderMarginRight,a+.4),c=o.getSkyLineMinInRange(a,l)-2;let u=-6.1+this.rules.VoltaOffset,d=this.rules.VoltaOffset;if(c0){loglevelExports.trace(`Ghost Found in between (measure ${this.MeasureNumber})`);const m=this.createGhostGves(g);s.splice(l,0,...m),l+=m.length}}else{const g=Fraction$1.minus(u,this.parentSourceMeasure.AbsoluteTimestamp);if(g.RealValue>0){loglevelExports.trace(`Ghost Found at start (measure ${this.MeasureNumber})`);const m=this.createGhostGves(g);s.splice(0,0,...m),l+=m.length}}r=d}const o=Fraction$1.plus(this.parentSourceMeasure.AbsoluteTimestamp,this.parentSourceMeasure.Duration),a=Fraction$1.minus(o,r);if(a.RealValue>0){loglevelExports.trace(`Ghost Found at end (measure ${this.MeasureNumber})`);const l=this.createGhostGves(a);s=s.concat(l)}return s}createGhostGves(e){const r=VexFlowConverter.GhostNotes(e),s=[];for(const o of r){const a=new VexFlowVoiceEntry(void 0,void 0,this.rules);a.vfStaveNote=o,s.push(a)}return s}handleBeam(e,r){const s=e.sourceNote.ParentVoiceEntry.ParentVoice.VoiceId;let o=this.beams[s];o||(o=this.beams[s]=[]);let a;for(const c of o)c[0]===r&&(a=c);a||(a=[r,[]],o.push(a));const l=e.parentVoiceEntry;a[1].indexOf(l)<0&&a[1].push(l)}handleTuplet(e,r){const s=e.sourceNote.ParentVoiceEntry.ParentVoice.VoiceId;r=e.sourceNote.NoteTuplet;let o=this.tuplets[s];o||(o=this.tuplets[s]=[]);let a;for(const c of o)c[0]===r&&(a=c);a||(a=[r,[]],o.push(a));const l=e.parentVoiceEntry;a[1].indexOf(l)<0&&a[1].push(l)}finalizeBeams(){if(this.vfbeams={},this.isTabMeasure&&!this.rules.TabBeamsRendered)return;const e=[];for(const r in this.beams)if(this.beams.hasOwnProperty(r)){let s=this.vfbeams[r];s||(s=this.vfbeams[r]=[]);for(const o of this.beams[r]){let a=!1;for(const b of o[0].Notes)if(b.Length.RealValue>=new Fraction$1(1,4).RealValue&&(!b.TypeLength||b.TypeLength.RealValue>.125)){a=!0;break}if(a){loglevelExports.debug("Beam between note >= quarter, likely tremolo, currently unsupported. continuing.");continue}const l=[],c=o[0],u=o[1];let d=!0;for(const b of u)b.parentVoiceEntry.ParentVoice===c.Notes[0].ParentVoiceEntry.ParentVoice&&(d=b.parentVoiceEntry.WantedStemDirection===StemDirectionType.Undefined);let g=!1,m;const y=[];for(const b of u){const S=b.vfStaveNote;S&&(l.push(S),e.push(S)),b.parentVoiceEntry.IsGrace&&(g=!0),b.parentVoiceEntry.StemColor&&this.rules.ColoringEnabled&&y.push(b.parentVoiceEntry.StemColor)}if(l.length>1){const b=new VF$7.Beam(l,d);if(g&&(b.render_options.beam_width=3,b.render_options.partial_beam_length=4),y.length>=2&&this.rules.ColorBeams){m=y[0];for(const S of y)if(S!==m){m=void 0;break}b.setStyle({fillStyle:m,strokeStyle:m})}this.rules.FlatBeams&&(b.render_options.flat_beams=!0,b.render_options.flat_beam_offset=this.rules.FlatBeamOffset,b.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),s.push(b)}else loglevelExports.debug("Warning! Beam with no notes!")}}this.rules.AutoBeamNotes&&this.autoBeamNotes(e)}autoBeamNotes(e){if(!this.rules.AutoBeamTabs&&this.isTabMeasure)return;let r=60,s=[],o=[],a,l=[];this.autoTupletVfBeams=[];const c=[];this.autoVfBeams=[];let u=this.parentSourceMeasure.ActiveTimeSignature;u||(u=this.parentSourceMeasure.Duration);for(const m of this.staffEntries)for(const y of m.graphicalVoiceEntries){const b=y.vfStaveNote,S=y.notes[0],A={vfStaveNote:b,sourceNote:S.sourceNote},E=m.relInMeasureTimestamp.isOnBeat(u),x=o.length>=2,P=S.sourceNote.Length.RealValue-new Fraction$1(1,4).RealValue>-Fraction$1.FloatInaccuracyTolerance,T=y.parentVoiceEntry.IsGrace||P||e.contains(b);if(T||E){if(x){for(const M of o)s.push(M);c.push(s.slice()),s=[]}if(o=[],T)continue}const C=y.notes[0].sourceNote.NoteTuplet;if(C){let M=!1;for(const B of C.Notes){for(const I of B)if(I.NoteTypeXml>=NoteType.QUARTER||I.ParentVoiceEntry.IsGrace||I.isRest()&&!this.rules.AutoBeamOptions.beam_rests){M=!0;break}if(M)break}if(!a)a=C;else if(a!==C){if(l.length>1){const B=[];for(const D of l)B.push(D.vfStaveNote);const I=new VF$7.Beam(B,!0);this.rules.FlatBeams&&(I.render_options.flat_beams=!0,I.render_options.flat_beam_offset=this.rules.FlatBeamOffset,I.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoTupletVfBeams.push(I);const k=new Beam(r++);k.AutoGenerated=!0;for(const D of l)k.addNoteToBeam(D.sourceNote)}l=[],a=C}M||l.push(A);continue}else a=void 0;o.push(A)}if(l.length>=2){const m=[];for(const S of l)m.push(S.vfStaveNote);const y=new VF$7.Beam(m,!0);this.rules.FlatBeams&&(y.render_options.flat_beams=!0,y.render_options.flat_beam_offset=this.rules.FlatBeamOffset,y.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoTupletVfBeams.push(y);const b=new Beam(r++);b.AutoGenerated=!0;for(const S of l)b.addNoteToBeam(S.sourceNote)}if(o.length>=2){for(const m of o)s.push(m);c.push(s)}const d=this.rules.AutoBeamOptions,g={beam_middle_only:d.beam_middle_rests_only,beam_rests:d.beam_rests,maintain_stem_directions:d.maintain_stem_directions};if(d.groups&&d.groups.length){const m=[];for(const y of d.groups)m.push(new VF$7.Fraction(y[0],y[1]));g.groups=m}for(const m of c){const y=[];for(const S of m)y.push(S.vfStaveNote);const b=VF$7.Beam.generateBeams(y,g);for(const S of b)this.rules.FlatBeams&&(S.render_options.flat_beams=!0,S.render_options.flat_beam_offset=this.rules.FlatBeamOffset,S.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoVfBeams.push(S)}}finalizeTuplets(){this.vftuplets={};for(const e in this.tuplets)if(this.tuplets.hasOwnProperty(e)){let r=this.vftuplets[e];r||(r=this.vftuplets[e]=[]);for(const s of this.tuplets[e]){const o=[],a=s[1];for(const l of a)o.push(l.vfStaveNote);if(o.length>1){const l=s[0],c=l.Notes[0][0].NormalNotes,u=l.shouldBeBracketed(this.rules.TupletsBracketedUseXMLValue,this.rules.TupletsBracketed,this.rules.TripletsBracketed,this.isTabMeasure,this.rules.TabTupletsBracketed);let d=VF$7.Tuplet.LOCATION_TOP;l.tupletLabelNumberPlacement===PlacementEnum.Below&&(d=VF$7.Tuplet.LOCATION_BOTTOM);let g=0;if(this.isTabMeasure&&(g=this.rules.TabTupletYOffsetBottom*10,d===VF$7.Tuplet.LOCATION_TOP)){g=this.rules.TabTupletYOffsetTop*-10;const y=l.Notes[0][0];y!=null&&y.hasTabEffects()&&(g-=this.rules.TabTupletYOffsetEffects*10)}const m=new VF$7.Tuplet(o,{bracketed:u,location:d,notes_occupied:c,num_notes:l.TupletLabelNumber,ratioed:this.rules.TupletsRatioed,y_offset:g});r.push(m)}else loglevelExports.debug("Warning! Tuplet with no notes! Trying to ignore, but this is a serious problem.")}}}layoutStaffEntry(e){}graphicalMeasureCreatedCalculations(){let e,r=[];const s=[];for(const a of this.staffEntries){e=!1,r=[];for(const l of a.graphicalVoiceEntries){if(l.parentVoiceEntry.IsGrace){r.push(l),s.push(l),e||(e=l.parentVoiceEntry.GraceSlur);continue}if(l.vfStaveNote=VexFlowConverter.StaveNote(l),r.length>0){const c=[];for(let d=0;d0&&(g.GraceSlash=!1);const m=VexFlowConverter.StaveNote(g);g.vfStaveNote=m,c.push(m)}const u=new VF$7.GraceNoteGroup(c,e);u.spacing=this.rules.GraceNoteGroupXMargin*10,l.vfStaveNote.addModifier(0,u),r=[]}}}if(r.length>0)for(const a of r)a.vfStaveNote=VexFlowConverter.StaveNote(a),a.parentVoiceEntry.GraceAfterMainNote=!0;this.finalizeBeams(),this.finalizeTuplets();const o=this.getVoicesWithinMeasure();if(this.rules.RenderFingerings)for(const a of this.staffEntries)a.setModifierXOffsets();for(const a of o){if(!a)continue;this.vfVoices[a.VoiceId]=new VF$7.Voice({beat_value:this.parentSourceMeasure.ActiveTimeSignature.Denominator,num_beats:this.parentSourceMeasure.ActiveTimeSignature.Numerator,resolution:VF$7.RESOLUTION}).setMode(VF$7.Voice.Mode.SOFT);const l=this.getRestFilledVexFlowStaveNotesPerVoice(a);for(const c of l){if(c.parentVoiceEntry&&c.parentVoiceEntry.IsGrace&&!c.parentVoiceEntry.GraceAfterMainNote)continue;const u=c;if(u.vfStaveNote.getTicks().denominator===0&&(u.vfStaveNote.getTicks().denominator=1),c.notes.length===0||!c.notes[0]||!c.notes[0].sourceNote.PrintObject){this.vfVoices[a.VoiceId].addTickable(u.vfStaveNote);continue}const d=u.parentStaffEntry;if(d&&d.vfClefBefore){const g=new NoteSubGroup([d.vfClefBefore]);u.vfStaveNote.getCategory&&u.vfStaveNote.getCategory()==="stavenotes"&&u.vfStaveNote.addModifier(0,g)}c.parentVoiceEntry&&this.rules.RenderFingerings&&((this.rules.FingeringPosition===PlacementEnum.Left||this.rules.FingeringPosition===PlacementEnum.Right)&&this.createFingerings(c),this.createStringNumber(c)),this.createArpeggio(c),this.vfVoices[a.VoiceId].addTickable(u.vfStaveNote)}}this.setStemDirectionFromVexFlow();for(const a of s)this.createFingerings(a),this.createStringNumber(a),this.createArpeggio(a);this.createArticulations(),this.createOrnaments()}createArpeggio(e){if(e.parentVoiceEntry&&e.parentVoiceEntry.Arpeggio){const r=e.parentVoiceEntry.Arpeggio;if(e.notes&&e.notes.length>1){const s=VexFlowConverter.StrokeTypeFromArpeggioType(r.type),o=new VF$7.Stroke(s,{all_voices:this.rules.ArpeggiosGoAcrossVoices});this.rules.RenderArpeggios&&e.vfStaveNote.addStroke(0,o)}else loglevelExports.debug(`[OSMD] arpeggio in measure ${this.MeasureNumber} could not be drawn. voice entry had less than two notes, arpeggio is likely between voice entries, not currently supported in Vexflow.`)}}setStemDirectionFromVexFlow(){for(const e of this.staffEntries)for(const r of e.graphicalVoiceEntries)for(const s of r.notes){const o=s.vfnote;if(!o||!o[0])continue;switch(o[0].getStemDirection()){case VF$7.Stem.UP:r.parentVoiceEntry.StemDirection=StemDirectionType.Up;break;case VF$7.Stem.DOWN:r.parentVoiceEntry.StemDirection=StemDirectionType.Down;break}}}createArticulations(){for(let e=0,r=this.staffEntries.length;es){for(const l of e.notes)if(!l.sourceNote.Fingering&&(l.sourceNote.Fingering=o.pop(),s++,o.length===0))break}let a=-1;for(const l of e.notes){const c=l.sourceNote.Fingering;if(!c){a++;continue}a++;let u=this.rules.FingeringPosition;this.rules.FingeringPositionGrace===PlacementEnum.AboveOrBelow&&(this.isUpperStaffOfInstrument()?u=PlacementEnum.Above:this.isLowerStaffOfInstrument()&&(u=PlacementEnum.Below)),c.placement!==PlacementEnum.NotYetDefined&&(u=c.placement);let d=this.rules.FingeringOffsetX,g;switch(u){default:case PlacementEnum.Left:g=VF$7.StaveModifier.Position.LEFT,d-=l.baseFingeringXOffset*unitInPixels;break;case PlacementEnum.Right:g=VF$7.StaveModifier.Position.RIGHT,d+=l.baseFingeringXOffset*unitInPixels;break;case PlacementEnum.Above:g=VF$7.StaveModifier.Position.ABOVE;break;case PlacementEnum.Below:g=VF$7.StaveModifier.Position.BELOW;break;case PlacementEnum.NotYetDefined:const y=e.parentStaffEntry.sourceStaffEntry.ParentStaff;e.notes.length>1||e.parentStaffEntry.graphicalVoiceEntries.length>1?g=VF$7.StaveModifier.Position.LEFT:y.idInMusicSheet===0?(g=VF$7.StaveModifier.Position.ABOVE,u=PlacementEnum.Above):(g=VF$7.StaveModifier.Position.BELOW,u=PlacementEnum.Below)}const m=new VF$7.FretHandFinger(c.value);if(m.setPosition(g),m.setOffsetX(d),u===PlacementEnum.Above||u===PlacementEnum.Below){const y=u===PlacementEnum.Above?-1:1,b=u===PlacementEnum.Above?a:s-1-a;if(this.rules.FingeringInsideStafflines&&s>1){const S=m.getWidth()/2,A=s*2.5;m.setOffsetY(y*(b+A)*S)}else if(!this.rules.FingeringInsideStafflines){const S=new VF$7.StringNumber(c.value);S.radius=0,S.setPosition(g),S.setOffsetY(y*b*S.getWidth()*2/3),r.vfStaveNote.addModifier(a,S);continue}}r.vfStaveNote.addModifier(a,m)}}createStringNumber(e){if(!this.rules.RenderStringNumbersClassical)return;const r=e;e.notes.forEach((s,o)=>{const a=s.sourceNote.StringInstruction;if(a){let l=a.value;switch(l){case"1":l="I";break;case"2":l="II";break;case"3":l="III";break;case"4":l="IV";break;case"5":l="V";break;case"6":l="VI";break}const c=new VF$7.StringNumber(l);c.radius=0;const u=-this.rules.StringNumberOffsetY;e.notes.length>1||e.parentStaffEntry.graphicalVoiceEntries.length>1?(c.setOffsetX(s.baseStringNumberXOffset*13),c.setPosition(VF$7.Modifier.Position.RIGHT)):c.setPosition(VF$7.Modifier.Position.ABOVE),c.setOffsetY(u),r.vfStaveNote.addModifier(o,c)}})}lineTo(e,r){const s=new VF$7.StaveConnector(e.getVFStave(),this.stave);s.setType(r),this.connectors.push(s)}getVFStave(){return this.stave}updateInstructionWidth(){let e=0,r=0;const s=this.stave.getModifiers();for(const o of s)o.getPosition()===5?e+=o.getWidth()+o.getPadding(void 0):o.getPosition()===6&&(r+=o.getWidth()+o.getPadding(void 0));this.beginInstructionsWidth=(e!=null?e:0)/unitInPixels,this.endInstructionsWidth=(r!=null?r:0)/unitInPixels}addStaveTie(e,r){this.vfTies.push(e),r.vfTie=e,r.Tie.TieDirection===PlacementEnum.Below&&e.setDirection(1)}}class GraphicalStaffEntry extends GraphicalObject{constructor(e,r=void 0,s=void 0){super(),this.graphicalChordContainers=[],this.tabStaffEntry=void 0,this.MaxAccidentals=0,this.graphicalInstructions=[],this.ties=[],this.graphicalTies=[],this.lyricsEntries=[],this.parentMeasure=e,this.graphicalVoiceEntries=[],this.sourceStaffEntry=r,s?(this.staffEntryParent=s,this.parentVerticalContainer=s.parentVerticalContainer,this.PositionAndShape=new BoundingBox$1(this,s.PositionAndShape)):this.PositionAndShape=new BoundingBox$1(this,e.PositionAndShape),r&&(this.relInMeasureTimestamp=r.Timestamp),this.FingeringEntries=[]}get GraphicalInstructions(){return this.graphicalInstructions}get GraphicalTies(){return this.graphicalTies}get LyricsEntries(){return this.lyricsEntries}set LyricsEntries(e){this.lyricsEntries=e}getAbsoluteTimestamp(){const e=this.parentMeasure.parentSourceMeasure.AbsoluteTimestamp.clone();return this.relInMeasureTimestamp&&e.Add(this.relInMeasureTimestamp),e}findTieGraphicalNoteFromNote(e){var s;const r=((s=window.GYM)==null?void 0:s.graceCustom)||!1;for(const o of this.graphicalVoiceEntries)for(const a of o.notes){const l=a.sourceNote;if(r){if(e.NoteToGraphicalNoteObjectId==l.NoteToGraphicalNoteObjectId)return a}else if(!l.isRest()&&l.Pitch.FundamentalNote===e.Pitch.FundamentalNote&&l.Pitch.Octave===e.Pitch.Octave&&l.getAbsoluteTimestamp().Equals(e.getAbsoluteTimestamp()))return a}}findEndTieGraphicalNoteFromNoteWithStartingSlur(e,r){if(e){for(const s of this.graphicalVoiceEntries)if(s.parentVoiceEntry===e.ParentVoiceEntry)for(const o of s.notes){const a=o.sourceNote;if(a.NoteTie&&a.NoteSlurs.indexOf(r)!==-1)return o}}}findGraphicalNoteFromGraceNote(e){if(e){for(const r of this.graphicalVoiceEntries)if(r.parentVoiceEntry===e.ParentVoiceEntry){for(const s of r.notes)if(s.sourceNote===e)return s}}}findGraphicalNoteFromNote(e){if(e){for(const r of this.graphicalVoiceEntries)if(r.parentVoiceEntry===e.ParentVoiceEntry){for(const s of r.notes)if(s.sourceNote===e&&this.getAbsoluteTimestamp().Equals(e.getAbsoluteTimestamp()))return s}}}getGraphicalNoteDurationFromVoice(e){for(const r of this.graphicalVoiceEntries)if(r.parentVoiceEntry.ParentVoice===e)return r.notes[0].graphicalNoteLength;return new Fraction$1(0,1)}findVoiceEntryGraphicalNotes(e){for(const r of this.graphicalVoiceEntries)if(r.parentVoiceEntry===e)return r.notes}isVoiceEntryPartOfLinkedVoiceEntry(e){if(this.sourceStaffEntry.Link)for(let r=0,s=this.sourceStaffEntry.Link.LinkStaffEntries.length;r0&&(e=o)}return e}findStaffEntryMaxNoteLength(){let e=new Fraction$1(0,1);for(const r of this.graphicalVoiceEntries)for(const s of r.notes){const o=s.graphicalNoteLength;e.lt(o)&&o.GetExpandedNumerator()>0&&(e=o)}return e}findOrCreateGraphicalVoiceEntry(e){for(const s of this.graphicalVoiceEntries)if(s.parentVoiceEntry===e)return s;const r=MusicSheetCalculator.symbolFactory.createVoiceEntry(e,this);return this.graphicalVoiceEntries.push(r),r}findOrCreateGraphicalVoiceEntryFromGraphicalNote(e){for(const s of this.graphicalVoiceEntries)if(s===e.parentVoiceEntry)return s;const r=MusicSheetCalculator.symbolFactory.createVoiceEntry(e.sourceNote.ParentVoiceEntry,this);return this.graphicalVoiceEntries.push(r),r}addGraphicalNoteToListAtCorrectYPosition(e,r){const s=e.notes;if(s.length===0||r.PositionAndShape.RelativePosition.y=0;o--){if(s[o].PositionAndShape.RelativePosition.y>r.PositionAndShape.RelativePosition.y){s.splice(o+1,0,r);break}if(o===0){s.splice(0,0,r);break}}}hasOnlyRests(){return this.sourceStaffEntry.hasOnlyRests}getSkylineMin(){var o;const e=(o=this.parentMeasure)==null?void 0:o.ParentStaffLine.SkyBottomLineCalculator;if(!e)return;const[r,s]=this.getAbsoluteStartAndEnd();return e.getSkyLineMinInRange(r,s)}getHighestYAtEntry(){return this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.y+this.getSkylineMin()}getLowestYAtEntry(){return this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.y+this.getBottomlineMax()}getBottomlineMax(){var o;const e=(o=this.parentMeasure)==null?void 0:o.ParentStaffLine.SkyBottomLineCalculator;if(!e)return;const[r,s]=this.getAbsoluteStartAndEnd();return e.getBottomLineMaxInRange(r,s)}getAbsoluteStartAndEnd(){let e=this.PositionAndShape.AbsolutePosition.x;e-=this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.x;const r=e+this.PositionAndShape.Size.width;return[e,r]}}class VexFlowStaffEntry extends GraphicalStaffEntry{constructor(e,r,s){super(e,r,s)}calculateXPosition(){const e=this.parentMeasure.getVFStave();let r=0;for(const s of this.graphicalVoiceEntries)if(s.vfStaveNote){if(s.vfStaveNote.setStave(e),!s.vfStaveNote.preFormatted)continue;s.applyBordersFromVexflow();let o=!1,a=this.PositionAndShape;s.notes[0].sourceNote.isWholeRest()&&!this.hasOnlyRests()&&(o=!0,a=s.PositionAndShape),this.parentMeasure.ParentStaff.isTab?a.RelativePosition.x=(s.vfStaveNote.getAbsoluteX()+s.vfStaveNote.glyph.getWidth())/unitInPixels:(a.RelativePosition.x=s.vfStaveNote.getBoundingBox().getX()/unitInPixels,o&&(a.RelativePosition.x-=e.getNoteStartX()/unitInPixels,a.RelativePosition.x-=1.3));const l=s.notes[0].sourceNote;l.isRest()&&l.Length.RealValue===this.parentMeasure.parentSourceMeasure.ActiveTimeSignature.RealValue&&(a.RelativePosition.x+=this.parentMeasure.parentSourceMeasure.Rules.WholeRestXShiftVexflow-.1,s.PositionAndShape.BorderLeft=-.7,s.PositionAndShape.BorderRight=.7),s.PositionAndShape.BorderLefta.staffLine),s=this.calculateModifierXOffsets(r,1),o=this.calculateModifierXOffsets(r,.5);e.forEach((a,l)=>{a.baseFingeringXOffset=o[l],a.baseStringNumberXOffset=s[l]})}calculateModifierXOffsets(e,r){const s=[];for(let o=0;o=0;c--){if(Math.abs(e[o]-e[c])<=r&&a===s[c]){a++,l=!0;break}l=!1}s.push(a)}return s}}class VexFlowGraphicalNote extends GraphicalNote{constructor(e,r,s,o=OctaveEnum.NONE,a,l=void 0){if(super(e,r,a,l),this.clef=s,this.octaveShift=o,e.Pitch){const c=e.isRest()?e.Pitch:OctaveShift.getPitchFromOctaveShift(e.Pitch,o);this.vfpitch=VexFlowConverter.pitch(c,e.isRest(),this.clef,this.sourceNote.Notehead),this.vfpitch[1]=void 0}}setAccidental(e){const r=this.drawPitch(e);this.vfpitch=VexFlowConverter.pitch(r,this.sourceNote.isRest(),this.clef,this.sourceNote.Notehead),this.DrawnAccidental=r.Accidental}drawPitch(e){return OctaveShift.getPitchFromOctaveShift(e,this.octaveShift)}Transpose(e,r,s,o){const a=super.Transpose(e,r,s,o),l=OctaveShift.getPitchFromOctaveShift(a,this.octaveShift);return this.vfpitch=VexFlowConverter.pitch(l,this.sourceNote.isRest(),this.clef,this.sourceNote.Notehead),this.vfpitch[1]=void 0,l}setIndex(e,r){this.vfnote=[e,r],this.vfnoteIndex=r}notehead(e=void 0){let r=e;r||(r=this.vfnote[0]);const s=r.note_heads;return s&&s.length>this.vfnoteIndex&&s[this.vfnoteIndex]?r.note_heads[this.vfnoteIndex]:{line:0}}Clef(){return this.clef}getSVGId(){if(this.vfnote)return this.vfnote[0].getAttribute("id")}getSVGGElement(){if(this.vfnote)return this.vfnote[0].getAttribute("el")}getStemSVG(){return document.getElementById("vf-"+this.getSVGId()+"-stem")}getBeamSVGs(){const e=[];for(let r=0;;r++){const s=document.getElementById(`vf-${this.getSVGId()}-beam${r}`);if(!s)break;e.push(s)}return e}}class GraphicalChordSymbolContainer extends GraphicalObject{constructor(e,r,s,o,a,l){super(),this.chordSymbolContainer=e,this.boundingBox=new BoundingBox$1(this,r),this.rules=l,this.calculateLabel(s,a,o)}get GetChordSymbolContainer(){return this.chordSymbolContainer}get GraphicalLabel(){return this.graphicalLabel}calculateLabel(e,r,s){const o=ChordSymbolContainer.calculateChordText(this.chordSymbolContainer,r,s);this.graphicalLabel=new GraphicalLabel(new Label(o),e,this.rules.ChordSymbolTextAlignment,this.rules,this.boundingBox),this.graphicalLabel.PositionAndShape.RelativePosition=new PointF2D(this.rules.ChordSymbolRelativeXOffset,0),this.graphicalLabel.Label.colorDefault=this.rules.DefaultColorChordSymbol}}const VF$6=Vex.Flow;class VexFlowTabMeasure extends VexFlowMeasure{constructor(e,r=void 0,s=void 0){super(e,r,s),this.isTabMeasure=!0}resetLayout(){var r;const e=(r=this.ParentStaff.StafflineCount)!=null?r:6;this.stave=new VF$6.TabStave(0,0,0,{space_above_staff_ln:0,space_below_staff_ln:0,num_lines:e}),this.updateInstructionWidth()}graphicalMeasureCreatedCalculations(){for(let r=0,s=this.staffEntries.length;r1){const c=VexFlowConverter.StrokeTypeFromArpeggioType(l.type),u=new VF$6.Stroke(c,{all_voices:this.rules.ArpeggiosGoAcrossVoices});this.rules.RenderArpeggios&&a.vfStaveNote.addStroke(0,u)}else loglevelExports.debug(`[OSMD] arpeggio in measure ${this.MeasureNumber} could not be drawn. voice entry had less than two notes, arpeggio is likely between voice entries, not currently supported in Vexflow.`)}if(a.vfGhostNotes)for(const l of a.vfGhostNotes)this.vfVoices[r.VoiceId].addTickable(l);else this.vfVoices[r.VoiceId].addTickable(a.vfStaveNote)}}}}class StaffLineActivitySymbol extends GraphicalObject{constructor(e){super(),this.parentStaffLine=e;const r=e.PositionAndShape;this.boundingBox=new BoundingBox$1(this,r),this.boundingBox.BorderRight=6,this.boundingBox.BorderBottom=4.5,this.boundingBox.BorderLeft=-1.5,this.boundingBox.BorderTop=-1.5}}class StaffLine extends GraphicalObject{constructor(e,r){super(),this.measures=[],this.staffLines=new Array(5),this.octaveShifts=[],this.lyricLines=[],this.lyricsDashes=[],this.abstractExpressions=[],this.graphicalSlurs=[],this.graphicalGlissandi=[],this.Pedals=[],this.WavyLines=[],this.parentMusicSystem=e,this.parentStaff=r,this.boundingBox=new BoundingBox$1(this,e.PositionAndShape),this.skyBottomLine=MusicSheetCalculator.symbolFactory.createSkyBottomLineCalculator(this),this.staffHeight=this.parentMusicSystem.rules.StaffHeight,this.topLineOffset=0,this.bottomLineOffset=4,this.calculateStaffLineOffsets()}calculateStaffLineOffsets(){if(this.ParentStaff.isTab)switch(this.ParentStaff.StafflineCount){case 5:this.staffHeight=this.bottomLineOffset=this.ParentStaff.ParentInstrument.GetMusicSheet.Rules.TabStaffInterlineHeight*6;break;default:this.staffHeight=this.bottomLineOffset=this.ParentStaff.ParentInstrument.GetMusicSheet.Rules.TabStaffInterlineHeight*this.ParentStaff.StafflineCount;break}else switch(this.ParentStaff.StafflineCount){case 4:this.bottomLineOffset=1;break;case 3:this.topLineOffset=1,this.bottomLineOffset=1;break;case 2:this.topLineOffset=2,this.bottomLineOffset=1;break;case 1:this.topLineOffset=2,this.bottomLineOffset=2;break}}get Measures(){return this.measures}set Measures(e){this.measures=e}get StaffLines(){return this.staffLines}set StaffLines(e){this.staffLines=e}get Index(){return this.parentMusicSystem.StaffLines.indexOf(this)}get NextStaffLine(){const e=this.Index;return e!==this.parentMusicSystem.StaffLines.length?this.parentMusicSystem.StaffLines[e+1]:void 0}get LyricLines(){return this.lyricLines}get AbstractExpressions(){return this.abstractExpressions}set AbstractExpressions(e){this.abstractExpressions=e}set LyricLines(e){this.lyricLines=e}get LyricsDashes(){return this.lyricsDashes}set LyricsDashes(e){this.lyricsDashes=e}get ParentMusicSystem(){return this.parentMusicSystem}set ParentMusicSystem(e){this.parentMusicSystem=e}get ParentStaff(){return this.parentStaff}set ParentStaff(e){this.parentStaff=e}get SkyBottomLineCalculator(){return this.skyBottomLine}get SkyLine(){return this.skyBottomLine.SkyLine}get BottomLine(){return this.skyBottomLine.BottomLine}get OctaveShifts(){return this.octaveShifts}set OctaveShifts(e){this.octaveShifts=e}get StaffHeight(){return this.staffHeight}get TopLineOffset(){return this.topLineOffset}get BottomLineOffset(){return this.bottomLineOffset}get GraphicalSlurs(){return this.graphicalSlurs}get GraphicalGlissandi(){return this.graphicalGlissandi}addSlurToStaffline(e){this.graphicalSlurs.push(e)}addGlissandoToStaffline(e){this.graphicalGlissandi.push(e),e.StaffLine=this}addActivitySymbolClickArea(){const e=new StaffLineActivitySymbol(this),r=this.PositionAndShape;e.PositionAndShape.RelativePosition=new PointF2D(r.RelativePosition.x+r.BorderRight+.5,r.RelativePosition.y+.5),e.PositionAndShape.Parent=this.parentMusicSystem.PositionAndShape}isPartOfMultiStaffInstrument(){return this.parentStaff.ParentInstrument.Staves.length>1}findClosestStaffEntry(e){let r;for(let s=0,o=this.Measures.length;s0){const u=c.map(y=>y.PositionAndShape.Center.y),d=Math.max(...u),g=((a=window.GYM)==null?void 0:a.noNeedContinuousDynamic)||!1,m=((l=window.GYM)==null?void 0:l.noNeedGraphicalContinuousDynamic)||!1;for(let y=0;y0?c[y-1]:void 0;if(A){const x=this.getOverlap(b.PositionAndShape,A.PositionAndShape);b.squeeze(-(x.x+this.rules.DynamicExpressionSpacer))}if(E){const x=this.getOverlap(E.PositionAndShape,b.PositionAndShape);b.squeeze(x.x+this.rules.DynamicExpressionSpacer)}}}}}getDistance(e,r){const s=e.RelativePosition.x+e.BorderMarginRight,o=r.RelativePosition.x+r.BorderMarginLeft,a=e.RelativePosition.y+e.BorderMarginBottom,l=r.RelativePosition.y+r.BorderMarginTop;return new PointF2D(o-s,l-a)}getOverlap(e,r){return new PointF2D(e.RelativePosition.x+e.BorderMarginRight-(r.RelativePosition.x+r.BorderMarginLeft),e.RelativePosition.y+e.BorderMarginBottom-(r.RelativePosition.y+r.BorderMarginTop))}}class VexFlowStaffLine extends StaffLine{constructor(e,r){super(e,r),this.slursInVFStaffLine=[],this.alignmentManager=new AlignmentManager(this)}get SlursInVFStaffLine(){return this.slursInVFStaffLine}addVFSlurToVFStaffline(e){this.slursInVFStaffLine.push(e)}get AlignmentManager(){return this.alignmentManager}}const VF$5=Vex.Flow;class VexFlowMultiRestMeasure extends VexFlowMeasure{constructor(e,r=void 0,s=void 0){super(e,r,s),this.minimumStaffEntriesWidth=-1,s?this.rules=s.ParentMusicSystem.rules:r&&(this.rules=r.Rules),this.resetLayout(),this.multiRestElement=new VF$5.MultiMeasureRest(r.multipleRestMeasures,{})}draw(e){var a,l,c,u,d;const r=e.openGroup();(a=r==null?void 0:r.classList)==null||a.add("vf-measure");const s=e.openGroup();(l=s==null?void 0:s.classList)==null||l.add("vf-stave"),s==null||s.setAttribute("id",(u=(c=this.stave)==null?void 0:c.attrs)==null?void 0:u.id),this.stave.setContext(e).draw(),e.closeGroup();const o=e.openGroup();(d=o==null?void 0:o.classList)==null||d.add("vf-voices"),this.multiRestElement.setStave(this.stave),this.multiRestElement.setContext(e),this.multiRestElement.draw(),e.closeGroup();for(const g of this.connectors)g.setContext(e).draw();return e.closeGroup(),r}format(){}getVoicesWithinMeasure(){return[]}getGraphicalVoiceEntriesPerVoice(e){return[]}getRestFilledVexFlowStaveNotesPerVoice(e){return[]}handleBeam(e,r){}handleTuplet(e,r){}finalizeBeams(){}finalizeTuplets(){}layoutStaffEntry(e){}graphicalMeasureCreatedCalculations(){}createArticulations(){}createOrnaments(){}createFingerings(e){}getVFStave(){return this.stave}}class SkyBottomLineCalculationResult{constructor(e,r){this.skyLine=e,this.bottomLine=r}}const VF$4=Vex.Flow;class CanvasVexFlowBackend extends VexFlowBackend{constructor(e){super(),this.rules=e}getVexflowBackendType(){return VF$4.Renderer.Backends.CANVAS}getOSMDBackendType(){return BackendType.Canvas}getCanvasSize(){var e;return(e=document.getElementById("osmdCanvasPage"+this.graphicalMusicPage.PageNumber))==null?void 0:e.offsetHeight}initialize(e,r){this.zoom=r,this.canvas=document.createElement("canvas"),this.graphicalMusicPage||(this.graphicalMusicPage=new GraphicalMusicPage(void 0),this.graphicalMusicPage.PageNumber=1),this.canvas.id="osmdCanvasVexFlowBackendCanvas"+this.graphicalMusicPage.PageNumber,this.inner=document.createElement("div"),this.inner.id="osmdCanvasPage"+this.graphicalMusicPage.PageNumber,this.inner.style.position="relative",this.canvas.style.zIndex="0",this.inner.appendChild(this.canvas),e.appendChild(this.inner),this.renderer=new VF$4.Renderer(this.canvas,this.getVexflowBackendType()),this.ctx=this.renderer.getContext()}initializeHeadless(e=300,r=300){this.graphicalMusicPage||(this.graphicalMusicPage=new GraphicalMusicPage(void 0),this.graphicalMusicPage.PageNumber=1),this.canvas=document.createElement("canvas"),this.canvas.width=e,this.canvas.height=r,this.renderer=new VF$4.Renderer(this.canvas,this.getVexflowBackendType()),this.ctx=this.renderer.getContext()}getContext(){return this.ctx}free(){this.canvas&&(this.canvas.width=0,this.canvas.height=0,this.canvas.remove(),delete this.canvas,this.canvas=null)}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.rules.PageBackgroundColor&&(this.ctx.save(),this.ctx.setFillStyle(this.rules.PageBackgroundColor),this.zoom=1,this.ctx.fillRect(0,0,this.canvas.width/this.zoom,this.canvas.height/this.zoom),this.ctx.restore())}scale(e){this.ctx.scale(e,e)}translate(e,r){this.CanvasRenderingCtx.translate(e,r)}renderText(e,r,s,o,a,l,c=void 0,u=void 0){const d=this.CanvasRenderingCtx.font;this.CanvasRenderingCtx.save(),this.CanvasRenderingCtx.font=VexFlowConverter.font(e,r,s,this.rules,u),this.CanvasRenderingCtx.fillStyle=c,this.CanvasRenderingCtx.strokeStyle=c,this.CanvasRenderingCtx.fillText(o,l.x,l.y+a),this.CanvasRenderingCtx.restore(),this.CanvasRenderingCtx.font=d}renderRectangle(e,r,s,o=1){const a=this.CanvasRenderingCtx.fillStyle;s?this.CanvasRenderingCtx.fillStyle=s:this.CanvasRenderingCtx.fillStyle=VexFlowConverter.style(r),this.CanvasRenderingCtx.globalAlpha=o,this.ctx.fillRect(e.x,e.y,e.width,e.height),this.CanvasRenderingCtx.fillStyle=a,this.CanvasRenderingCtx.globalAlpha=1}renderLine(e,r,s="#FF0000FF",o=2,a){const l=this.CanvasRenderingCtx.strokeStyle;this.CanvasRenderingCtx.strokeStyle=s,this.CanvasRenderingCtx.beginPath(),this.CanvasRenderingCtx.moveTo(e.x,e.y),this.CanvasRenderingCtx.lineTo(r.x,r.y),this.CanvasRenderingCtx.stroke(),this.CanvasRenderingCtx.strokeStyle=l}renderCurve(e){this.ctx.beginPath(),this.ctx.moveTo(e[0].x,e[0].y),this.ctx.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y),this.ctx.lineTo(e[7].x,e[7].y),this.ctx.bezierCurveTo(e[6].x,e[6].y,e[5].x,e[5].y,e[4].x,e[4].y),this.ctx.lineTo(e[0].x,e[0].y),this.ctx.closePath(),this.ctx.fill()}renderPath(e,r=!0,s){this.ctx.beginPath();let o;for(const a of e){if(!o){this.ctx.moveTo(a.x,a.y),o=a;continue}this.ctx.lineTo(a.x,a.y)}this.ctx.closePath(),r?this.ctx.fill():this.ctx.stroke()}get CanvasRenderingCtx(){return this.ctx.vexFlowCanvasContext}}class SkyBottomLineCalculator{constructor(e){this.mStaffLineParent=e,this.mRules=e.ParentMusicSystem.rules}updateLines(e){const r=this.StaffLineParent.Measures;if(e.length!==r.length)if(loglevelExports.warn("SkyBottomLineCalculator: lengths of calculation result array and measure array do not match"),e.length(d-c)/unitInPixels+this.StaffLineParent.TopLineOffset);const u=Math.min(...this.mBottomLine);this.mBottomLine=this.mBottomLine.map(d=>(d-u)/unitInPixels+this.StaffLineParent.BottomLineOffset)}calculateLines(){const e=Math.max(Math.ceil(this.StaffLineParent.PositionAndShape.Size.width*this.SamplingUnit),1);this.mSkyLine=[],this.mBottomLine=[];const r=new CanvasVexFlowBackend(this.StaffLineParent.ParentMusicSystem.rules);for(const l of this.StaffLineParent.Measures){l.PositionAndShape.calculateAbsolutePositionsRecursive(0,0);const c=l.getVFStave();let u=c.getWidth();if(!(u>0)&&!l.IsExtraGraphicalMeasure&&(loglevelExports.warn("SkyBottomLineCalculator: width not > 0 in measure "+l.MeasureNumber),u=50),!(u>=50)&&l.IsExtraGraphicalMeasure)continue;r.initializeHeadless(u);const d=r.getContext(),g=r.getCanvas();u=g.width;const m=g.height;this.mRules.DYMusicScoreType==="jianpu"||c.setY(c.y+100);const y=c.getWidth();c.setWidth(u),l.format(),c.setWidth(y);try{l.draw(d)}catch(P){loglevelExports.warn("SkyBottomLineCalculator.calculateLines.draw",P)}const b=d.getImageData(0,0,u,m),S=4,A=Math.max(Math.ceil(l.PositionAndShape.Size.width*this.mRules.SamplingUnit),1),E=new Array(A),x=new Array(A);for(let P=0;P0){E[P]=T;break}}for(let T=m;T>0;T--){const M=T*u*S+P*S;if(b.data[M+3]>0){x[P]=T;break}}}for(let P=0;P(l-Math.max(...this.mSkyLine))/unitInPixels+this.StaffLineParent.TopLineOffset),this.mBottomLine=this.mBottomLine.map(l=>(l-Math.min(...this.mBottomLine))/unitInPixels+this.StaffLineParent.BottomLineOffset)}updateSkyLineWithLine(e,r,s){const o=Math.floor(e.x*this.SamplingUnit),a=Math.ceil(r.x*this.SamplingUnit);for(let l=o+1;l=this.BottomLine.length&&(s=this.BottomLine.length-1),o<0&&(o=0),o>=this.BottomLine.length&&(o=this.BottomLine.length),this.SkyLine[s]=e.y;for(let l=s+1;l=this.BottomLine.length&&(s=this.BottomLine.length-1),o<0&&(o=0),o>=this.BottomLine.length&&(o=this.BottomLine.length),this.BottomLine[s]=e.y;for(let l=s+1;le)}setBottomLineWithValue(e){this.BottomLine.forEach(r=>e)}getLeftIndexForPointX(e,r){const s=Math.floor(e*this.SamplingUnit);return s<0?0:s>=r?r-1:s}getRightIndexForPointX(e,r){const s=Math.ceil(e*this.SamplingUnit);return s<0?0:s>=r?r-1:s}updateStaffLineBorders(){this.mStaffLineParent.PositionAndShape.BorderTop=this.getSkyLineMin(),this.mStaffLineParent.PositionAndShape.BorderMarginTop=this.getSkyLineMin(),this.mStaffLineParent.PositionAndShape.BorderBottom=this.getBottomLineMax(),this.mStaffLineParent.PositionAndShape.BorderMarginBottom=this.getBottomLineMax()}getSkyLineMin(){return Math.min(...this.SkyLine.filter(e=>!isNaN(e)))}getSkyLineMinAtPoint(e){const r=Math.round(e*this.SamplingUnit);return this.mSkyLine[r]}getSkyLineMinInRange(e,r){return this.getMinInRange(this.SkyLine,e,r)}getBottomLineMax(){return Math.max(...this.BottomLine.filter(e=>!isNaN(e)))}getBottomLineMaxAtPoint(e){const r=Math.round(e*this.SamplingUnit);return this.mBottomLine[r]}getBottomLineMaxInRange(e,r){return this.getMaxInRange(this.BottomLine,e,r)}getBottomLineMaxInBoundingBox(e){const r=Math.floor(e.AbsolutePosition.x+e.BorderLeft),s=Math.ceil(e.AbsolutePosition.x+e.BorderRight);return this.getMaxInRange(this.mBottomLine,r,s)}updateWithBoundingBoxRecursively(e){if(e.ChildElements&&e.ChildElements.length>0)for(const r of e.ChildElements)this.updateWithBoundingBoxRecursively(r);else{const r=e.BorderTop+e.AbsolutePosition.y,s=e.BorderBottom+e.AbsolutePosition.y;if(r<0){const o=Math.floor(e.AbsolutePosition.x+e.BorderLeft),a=Math.ceil(e.AbsolutePosition.x+e.BorderRight);this.updateInRange(this.mSkyLine,o,a,r)}else if(s>this.StaffLineParent.StaffHeight){const o=Math.floor(e.AbsolutePosition.x+e.BorderLeft),a=Math.ceil(e.AbsolutePosition.x+e.BorderRight);this.updateInRange(this.mBottomLine,o,a,s)}}}findPreviousValidNumber(e,r){for(let s=e;s>=0;s--)if(!isNaN(r[s]))return r[s];return 0}findNextValidNumber(e,r){if(e>=r.length)return r[e-1];for(let s=e;se.length&&(s=e.length);for(let a=r;aMath.abs(e[a])?o:e[a]}setInRange(e,r=0,s=e.length,o=0){if(r=Math.floor(r*this.SamplingUnit),s=Math.ceil(s*this.SamplingUnit),se.length&&(s=e.length);for(let a=r;a=e.length&&(r=e.length-1),s<0&&(s=0),s>=e.length&&(s=e.length),r>=0&&s<=e.length)return Math.min(...e.slice(r,s+1))}getMaxInRange(e,r,s){if(r=Math.floor(r*this.SamplingUnit),s=Math.ceil(s*this.SamplingUnit),!e)return Number.MIN_VALUE;if(r<0&&(r=0),r>=e.length&&(r=e.length-1),s<0&&(s=0),s>=e.length&&(s=e.length),r>=0&&s<=e.length)return Math.max(...e.slice(r,s+1))}get SamplingUnit(){return this.mRules.SamplingUnit}get StaffLineParent(){return this.mStaffLineParent}get SkyLine(){return this.mSkyLine}get BottomLine(){return this.mBottomLine}}var parserExports$1={},parser$2={get exports(){return parserExports$1},set exports(i){parserExports$1=i}};/*! * d-path-parser - v1.0.0 * by Massimo Artizzu (MaxArt2501) * * https://github.com/MaxArt2501/d-path-parser * * Licensed under the MIT License * See LICENSE for details */(function(i,e){(function(r,s){i.exports=s()})(commonjsGlobal,function(){return function(s){for(var o={command:/\s*([achlmqstvz])/gi,number:/\s*([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/gi,comma:/\s*(?:(,)|\s)/g,flag:/\s*([01])/g},a={number:function(A){return+b("number",A)},"coordinate pair":function(A){var E=b("number",A);if(E===null&&!A)return null;b("comma");var x=b("number",!0);return{x:+E,y:+x}},"arc definition":function(A){var E=a["coordinate pair"](A);if(!E&&!A)return null;b("comma");var x=+b("number",!0);b("comma",!0);var P=!!+b("flag",!0);b("comma");var T=!!+b("flag",!0);b("comma");var C=a["coordinate pair"](!0);return{radii:E,rotation:x,large:P,clockwise:T,end:C}}},l=0,c=[];lr.bottom)switch(e.tagName.toLowerCase()){case"g":for(const y of e.children)this.recursiveUpdate(y,r,s,o);break;case"circle":case"rect":case"line":case"path":let g=Math.floor((a.x-s.x)/unitInPixels*this.mRules.SamplingUnit);const m=g+Math.ceil(a.width/unitInPixels*this.mRules.SamplingUnit);if(e.parentElement.classList.contains("vf-beams")&&e.hasAttribute("d")){const y=parserExports$1(e.getAttribute("d"));if(y.length===5){const b=y[0],S=y[3],A=(S.end.y-b.end.y)/(S.end.x-b.end.x);let E=b.end.y/unitInPixels;for(g;g<=m;g++)Ed[g]&&(d[g]=E),E+=A/this.mRules.SamplingUnit}}else for(g;g<=m;g++)ld[g]&&(d[g]=c);break}}calculateLinesForMeasure(e,r){var B,I,k;const s=r.getBBox(),o=Math.max(Math.round(e.PositionAndShape.Size.width*this.mRules.SamplingUnit),1),a=s.height/unitInPixels,c=r.getElementsByClassName("vf-stave")[0].getBBox();let u=(c==null?void 0:c.height)/unitInPixels,d=(c==null?void 0:c.y)/unitInPixels;const g=e.getVFStave();let m=((B=g.options)!=null&&B.num_lines?g.options.num_lines:5)-1,y=-1,b=0;const S=[m];for(const D of(I=g.options)==null?void 0:I.line_config)D.visible?(y===-1&&(y=b),S.push(b)):m--,b++;const A=S.pop();y===-1&&(y=0),m=A-y;const E=(k=g.options)==null?void 0:k.spacing_between_lines_px,x=m*E/unitInPixels;u-x>.2&&(u=x,d=y*E/unitInPixels);const P=d+u,T=new Array(o).fill(d),C=new Array(o).fill(P),M=[T,C];if(a>u)for(const D of r.children)this.recursiveUpdate(D,{top:d,bottom:P},s,[T,C]);return M}calculateLines(){this.mSkyLine=[],this.mBottomLine=[];const e=document.createElement("div");document.body.append(e);const r=new SvgVexFlowBackend(this.mRules);r.initialize(e,1,"0");const s=r.getContext(),o=s.openGroup();o.classList.add("staffline");for(const a of this.StaffLineParent.Measures){a.PositionAndShape.calculateAbsolutePositionsRecursive(0,0),a.setAbsoluteCoordinates(a.PositionAndShape.AbsolutePosition.x*unitInPixels,a.PositionAndShape.AbsolutePosition.y*unitInPixels);const l=a.draw(s),[c,u]=this.calculateLinesForMeasure(a,l);this.mSkyLine.push(...c),this.mBottomLine.push(...u)}s.closeGroup();for(const a of o.getElementsByClassName("vf-ties"))for(const l of a.childNodes)if(l.nodeName.toLowerCase()==="path"){const c=l.getBBox();let u=Math.floor(c.x/unitInPixels*this.mRules.SamplingUnit);const d=u+Math.ceil(c.width/unitInPixels*this.mRules.SamplingUnit),g=c.y/unitInPixels,m=c.height/unitInPixels+g;for(u;u<=d;u++)gthis.mBottomLine[u]&&(this.mBottomLine[u]=m)}r.clear(),e.remove()}}const VF$3=Vex.Flow;class VexFlowGraphicalSymbolFactory{constructor(){this.hasBBox=!1,document.createElementNS("http://www.w3.org/2000/svg","g").getBBox!==void 0&&(this.hasBBox=!0)}createMusicSystem(e,r){return new VexFlowMusicSystem(e,r)}createStaffLine(e,r){return new VexFlowStaffLine(e,r)}createSkyBottomLineCalculator(e){return e.ParentMusicSystem.rules.PerformanceMode&&this.hasBBox?new SkyBottomLineCalculatorSVG(e):new SkyBottomLineCalculator(e)}createGraphicalMeasure(e,r,s=!1){return new VexFlowMeasure(r,e,void 0)}createMultiRestMeasure(e,r,s){return new VexFlowMultiRestMeasure(r,e,s)}createTabStaffMeasure(e,r){return new VexFlowTabMeasure(r,e)}createExtraGraphicalMeasure(e){const r=new VexFlowMeasure(e.ParentStaff,void 0,e);return r.IsExtraGraphicalMeasure=!0,r.ExtraGraphicalMeasurePreviousMeasure=e.Measures.last(),r}createStaffEntry(e,r){return new VexFlowStaffEntry(r,e,void 0)}createVoiceEntry(e,r){return new VexFlowVoiceEntry(e,r)}createNote(e,r,s,o=OctaveEnum.NONE,a,l=void 0){return new VexFlowGraphicalNote(e,r,s,o,a,l)}createGraceNote(e,r,s,o,a=OctaveEnum.NONE){return new VexFlowGraphicalNote(e,r,s,a,o)}addGraphicalAccidental(e,r){e.setAccidental(r)}addFermataAtTiedEndNote(e,r){}createInStaffClef(e,r){const s=e,o=VexFlowConverter.Clef(r,"small");s.vfClefBefore=new VF$3.ClefNote(o.type,o.size,o.annotation)}createChordSymbols(e,r,s,o){const a=r.parentMeasure.parentSourceMeasure.Rules;let l=0;const c=a.ChordSymbolXSpacing;for(const u of e.ChordContainers){let d=r.PositionAndShape;r.graphicalVoiceEntries.length===1&&r.graphicalVoiceEntries[0].notes.length===1&&r.graphicalVoiceEntries[0].notes[0].sourceNote.isWholeRest()&&(d=r.parentMeasure.PositionAndShape,l+=r.parentMeasure.beginInstructionsWidth,l+=a.ChordSymbolWholeMeasureRestXOffset);const g=new GraphicalChordSymbolContainer(u,d,a.ChordSymbolTextHeight,s,o,r.parentMeasure.parentSourceMeasure.Rules),m=g.GraphicalLabel;m.PositionAndShape.RelativePosition.y-=a.ChordSymbolYOffset,m.setLabelPositionAndShapeBorders();let y=0;m.PositionAndShape.Size.width=4&&e.Parent.Notes[0].Length.Denominator>4&&TextAlignmentEnum.LeftBottom;const l=new Label(e.Text),c=this.graphicalStaffEntry.parentMeasure.parentSourceMeasure.Rules;this.graphicalLabel=new GraphicalLabel(l,s,a,c,r.PositionAndShape),this.graphicalLabel.Label.colorDefault=c.DefaultColorLyrics,this.graphicalLabel.PositionAndShape.RelativePosition=new PointF2D(0,o),this.graphicalLabel.setLabelPositionAndShapeBorders(),this.graphicalLabel.PositionAndShape.Size.width1&&e=_GraphicalCurve.bezierCurveStepSize?new PointF2D:new PointF2D(_GraphicalCurve.oneMinusTPow3[e]*this.bezierStartPt.x+_GraphicalCurve.bezierFactorOne[e]*this.bezierStartControlPt.x+_GraphicalCurve.bezierFactorTwo[e]*this.bezierEndControlPt.x+_GraphicalCurve.tPow3[e]*this.bezierEndPt.x,_GraphicalCurve.oneMinusTPow3[e]*this.bezierStartPt.y+_GraphicalCurve.bezierFactorOne[e]*this.bezierStartControlPt.y+_GraphicalCurve.bezierFactorTwo[e]*this.bezierEndControlPt.y+_GraphicalCurve.tPow3[e]*this.bezierEndPt.y)}};let GraphicalCurve=_GraphicalCurve;GraphicalCurve.bezierCurveStepSize=1e3;const VF$1=Vex.Flow,_GraphicalSlur=class extends GraphicalCurve{constructor(i,e){super(),this.staffEntries=[],this.slur=i,this.rules=e}static Compare(i,e){if(i.staffEntries.length<1)return-1;if(e.staffEntries.length<1)return 1;const r=Fraction$1.minus(i.staffEntries[i.staffEntries.length-1].getAbsoluteTimestamp(),i.staffEntries[0].getAbsoluteTimestamp()),s=Fraction$1.minus(e.staffEntries[e.staffEntries.length-1].getAbsoluteTimestamp(),e.staffEntries[0].getAbsoluteTimestamp());return r.RealValue>s.RealValue?1:s.RealValue>r.RealValue?-1:0}calculateCurve(i){const e=this.staffEntries[0],r=this.staffEntries[this.staffEntries.length-1];let s=e.findGraphicalNoteFromNote(this.slur.StartNote);!s&&this.graceStart&&(s=e.findGraphicalNoteFromGraceNote(this.slur.StartNote)),s||(s=e.findEndTieGraphicalNoteFromNoteWithStartingSlur(this.slur.StartNote,this.slur));let o=r.findGraphicalNoteFromNote(this.slur.EndNote);!o&&this.graceEnd&&(o=r.findGraphicalNoteFromGraceNote(this.slur.EndNote));const a=e.parentMeasure.ParentStaffLine,l=a.SkyBottomLineCalculator;this.calculatePlacement(l,a);const c=this.calculateStartAndEnd(s,o,a,i,l),u=c.startX,d=c.endX;let g=c.startY,m=c.endY;const y=i.SlurTangentMinAngle,b=i.SlurTangentMaxAngle;let S;if(this.placement===PlacementEnum.Above){g-=i.SlurNoteHeadYOffset,m-=i.SlurNoteHeadYOffset;const A=new PointF2D(this.staffEntries[0].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[0].PositionAndShape.RelativePosition.x,g);s?A.x+=this.staffEntries[0].PositionAndShape.BorderRight:A.x=this.staffEntries[0].parentMeasure.beginInstructionsWidth,this.graceStart&&(A.x+=r.PositionAndShape.RelativePosition.x);const E=new PointF2D(this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[this.staffEntries.length-1].PositionAndShape.RelativePosition.x,m);if(o?E.x+=this.staffEntries[this.staffEntries.length-1].PositionAndShape.BorderLeft:E.x=this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.Size.width,this.graceEnd&&(E.x+=r.staffEntryParent.PositionAndShape.RelativePosition.x),S=this.calculateTopPoints(A,E,a,l),S.length===0){const Z=new PointF2D((E.x-A.x)/2+A.x,(E.y-A.y)/2+A.y);S.push(Z)}const x=Math.atan((m-g)/(d-u)),P=new PointF2D(0,0);let T=new PointF2D(d-u,-(m-g));const C=Matrix2D.getRotationMatrix(x),M=C.getTransposeMatrix();T=C.vectorMultiplication(T);const B=this.calculateTranslatedAndRotatedPointListAbove(S,u,g,C),I=this.calculateMaxLeftSlope(B,P,T),k=this.calculateMaxRightSlope(B,P,T),D=P.y-P.x*I,O=T.y-T.x*k,z=new PointF2D;let N=!1;Math.abs(Math.abs(I)-Math.abs(k))<1e-4?(z.x=T.x/2,z.y=0,N=!0):(z.x=(O-D)/(I-k),z.y=I*z.x+D);const Q=this.calculateHeightWidthRatio(T.x,B),_=0,U=0;let G=y,H=-y;if(!N){const Z=this.calculateAngles(y,I,k,b);G=Z.startAngle,H=Z.endAngle}const R=this.calculateControlPoints(T.x,G,H,B,Q,g,m);let V=R.startControlPoint,te=R.endControlPoint;V=M.vectorMultiplication(V),V.x+=u,V.y=-V.y+g,te=M.vectorMultiplication(te),te.x+=u,te.y=-te.y+g,this.bezierStartPt=new PointF2D(u,g-_),this.bezierStartControlPt=new PointF2D(V.x,V.y-_),this.bezierEndControlPt=new PointF2D(te.x,te.y-U),this.bezierEndPt=new PointF2D(d,m-U);const W=a.SkyLine.length,$=l.getLeftIndexForPointX(this.bezierStartPt.x,W),de=l.getLeftIndexForPointX(this.bezierEndPt.x,W),oe=this.bezierEndPt.x-this.bezierStartPt.x,Y=l.SamplingUnit;for(let Z=$;Z=$&&(a.SkyLine[pe]=Math.min(a.SkyLine[pe],ae.y)),pe++,pe=$&&(a.BottomLine[pe]=Math.max(a.BottomLine[pe],ae.y)),pe++,pe0){this.placement=PlacementEnum.Above;return}const r=this.staffEntries[0],s=this.staffEntries[this.staffEntries.length-1],o=r.graphicalVoiceEntries[0].parentVoiceEntry.StemDirection,a=s.graphicalVoiceEntries[0].parentVoiceEntry.StemDirection;if(o===a)this.placement=o===StemDirectionType.Up?PlacementEnum.Below:PlacementEnum.Above,this.rules.SlurPlacementAtStems&&(this.placement=o===StemDirectionType.Up?PlacementEnum.Above:PlacementEnum.Below);else{let l=r.PositionAndShape.BorderLeft+r.PositionAndShape.RelativePosition.x+r.parentMeasure.PositionAndShape.RelativePosition.x,c=s.PositionAndShape.BorderRight+s.PositionAndShape.RelativePosition.x+s.parentMeasure.PositionAndShape.RelativePosition.x;this.graceStart&&(l+=s.PositionAndShape.RelativePosition.x),this.graceEnd&&(c+=s.staffEntryParent.PositionAndShape.RelativePosition.x);const u=i.getSkyLineMinInRange(l,c)*-1;i.getBottomLineMaxInRange(l,c)-e.StaffHeight>u?this.placement=PlacementEnum.Above:this.placement=PlacementEnum.Below}}calculateTopPoints(i,e,r,s){const o=[];let a=s.getRightIndexForPointX(i.x,r.SkyLine.length),l=s.getLeftIndexForPointX(e.x,r.SkyLine.length);a<0&&(a=0),l>=r.SkyLine.length&&(l=r.SkyLine.length-1);for(let c=a;c=r.BottomLine.length&&(l=r.BottomLine.length-1);for(let c=a;cd&&i>g&&(u+=i/70*this.rules.SlurHeightFlattenLongSlursFactorByWidth,u*=1+e/30*this.rules.SlurHeightFlattenLongSlursFactorByAngle,c/=u);const m=Math.min(.5,Math.max(.1,1.7*e/80*c*Math.pow(Math.max(o,.05),.4))),y=Math.min(.5,Math.max(.1,1.7*-r/80*c*Math.pow(Math.max(o,.05),.4))),b=new PointF2D;b.x=i*m*Math.cos(e*_GraphicalSlur.degreesToRadiansFactor),b.y=i*m*Math.sin(e*_GraphicalSlur.degreesToRadiansFactor);const S=new PointF2D;S.x=i-i*y*Math.cos(r*_GraphicalSlur.degreesToRadiansFactor),S.y=-(i*y*Math.sin(r*_GraphicalSlur.degreesToRadiansFactor));let A=b.y-S.y;for(;this.rules.SlurMaximumYControlPointDistance&&Math.abs(A)>this.rules.SlurMaximumYControlPointDistance;)A<0?(b.y+=1,S.y-=1):(b.y-=1,S.y+=1),A=b.y-S.y;return{startControlPoint:b,endControlPoint:S}}calculateAngles(i,e,r,s){let a=Math.atan(e)/_GraphicalSlur.degreesToRadiansFactor;e>0?a+=20:a-=20;let l=Math.atan(r)/_GraphicalSlur.degreesToRadiansFactor;r<0?l-=20:l+=20;const c=Math.min(Math.max(i,a),s),u=Math.max(Math.min(-i,l),-s);return{startAngle:c,endAngle:u}}};let GraphicalSlur=_GraphicalSlur;GraphicalSlur.degreesToRadiansFactor=Math.PI/180;class VexflowStafflineNoteCalculator{constructor(e){this.staffPitchListMapping=new Dictionary,this.baseLineNote=NoteEnum.B,this.baseLineOctave=1,this.rules=e}trackNote(e){if(!(e instanceof VexFlowGraphicalNote)||e.Clef().ClefType!==ClefEnum.percussion||e.sourceNote.isRest()||this.rules.PercussionOneLineCutoff===0||this.rules.PercussionForceVoicesOneLineCutoff===-1)return;const r=e.parentVoiceEntry.parentStaffEntry.sourceStaffEntry.ParentStaff.idInMusicSheet;let s;this.staffPitchListMapping.containsKey(r)||this.staffPitchListMapping.setValue(r,new Array),s=this.staffPitchListMapping.getValue(r);const o=e.sourceNote.Pitch;VexflowStafflineNoteCalculator.findOrInsert(s,o)}static PitchIndexOf(e,r,s=0){if(s>e.length-1)return-1;for(let o=s;othis.rules.PercussionOneLineCutoff&&!o&&!this.rules.PercussionUseCajon2NoteSystem)return e;const a=e,l=e.sourceNote.Pitch;let c=this.baseLineNote,u=this.baseLineOctave;if(this.rules.PercussionUseCajon2NoteSystem?l.FundamentalNote===NoteEnum.C&&(c=NoteEnum.G,u=1):this.rules.PercussionUseXMLDisplayStep&&e.sourceNote.displayStepUnpitched!==void 0&&(c=e.sourceNote.displayStepUnpitched,u=e.sourceNote.displayOctaveUnpitched+this.rules.PercussionOneLineXMLDisplayStepOctaveOffset),s.length<=this.rules.PercussionForceVoicesOneLineCutoff)a.setAccidental(new Pitch(c,u,l.Accidental));else{const d=VexflowStafflineNoteCalculator.PitchIndexOf(s,l);if(d>-1){const g=Math.ceil(s.length/2);if(!this.rules.PercussionUseXMLDisplayStep)if(d>=g)switch(u=2,(d-g)%5){case 1:c=NoteEnum.E;break;case 2:c=NoteEnum.G;break;case 3:c=NoteEnum.B;break;case 4:c=NoteEnum.D,u=3;break;default:c=NoteEnum.C;break}else switch(d%5){case 1:c=NoteEnum.F;break;case 2:c=NoteEnum.D;break;case 3:c=NoteEnum.B,u=0;break;case 4:c=NoteEnum.G,u=0;break;default:c=NoteEnum.A;break}const m=new Pitch(c,u,l.Accidental);a.setAccidental(m);const y=a.parentVoiceEntry.parentVoiceEntry;!this.rules.SetWantedStemDirectionByXml&&y.Notes.length<2&&(m.Octave>this.baseLineOctave||m.FundamentalNote===this.baseLineNote&&m.Octave===this.baseLineOctave?a.parentVoiceEntry.parentVoiceEntry.WantedStemDirection=StemDirectionType.Up:a.parentVoiceEntry.parentVoiceEntry.WantedStemDirection=StemDirectionType.Down)}}return a}getStafflineUniquePositionCount(e){return this.staffPitchListMapping.containsKey(e)?this.staffPitchListMapping.getValue(e).length:0}}class GraphicalPedal extends GraphicalObject{constructor(e,r){super(),this.getPedal=e,this.setSymbol(),this.PositionAndShape=new BoundingBox$1(this,r)}setSymbol(){!this.getPedal.IsLine&&this.getPedal.IsSign?this.pedalSymbol=MusicSymbol.PEDAL_SYMBOL:this.getPedal.IsLine&&this.getPedal.IsSign?this.pedalSymbol=MusicSymbol.PEDAL_MIXED:this.pedalSymbol=MusicSymbol.PEDAL_BRACKET}}class VexFlowPedal extends GraphicalPedal{constructor(e,r,s=!1,o=!1){switch(super(e,r),this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET,this.ChangeBegin=!1,this.ChangeEnd=!1,this.line=-3,this.EndSymbolPositionAndShape=void 0,this.ChangeBegin=e.ChangeBegin,this.ChangeEnd=e.ChangeEnd,this.pedalSymbol){case MusicSymbol.PEDAL_SYMBOL:this.vfStyle=Vex.Flow.PedalMarking.Styles.TEXT,this.EndSymbolPositionAndShape=new BoundingBox$1(this,r);break;case MusicSymbol.PEDAL_MIXED:s&&o?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BOTH:s?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BEGIN:o?this.vfStyle=Vex.Flow.PedalMarking.Styles.MIXED_OPEN_END:this.vfStyle=Vex.Flow.PedalMarking.Styles.MIXED;break;case MusicSymbol.PEDAL_BRACKET:default:s&&o?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BOTH:s?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BEGIN:o?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_END:this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET;break}}setStartNote(e){if(!e)return!1;for(const r of e.graphicalVoiceEntries){const s=r;if(s!=null&&s.vfStaveNote)return this.startNote=s.vfStaveNote,this.startVfVoiceEntry=s,!0}return!1}setEndNote(e){if(!e)return!1;for(const r of e.graphicalVoiceEntries){const s=r;if(s!=null&&s.vfStaveNote)return this.endNote=s.vfStaveNote,this.endVfVoiceEntry=s,!0}return!1}setEndMeasure(e){this.endMeasure=e}CalculateBoundingBox(){}setLine(e){this.line=e}getPedalMarking(){const e=new Vex.Flow.PedalMarking([this.startNote,this.endNote]);return this.endMeasure&&e.setEndStave(this.endMeasure.getVFStave()),e.setStyle(this.vfStyle),e.setLine(this.line),e.setCustomText(this.DepressText,this.ReleaseText),(!this.endVfVoiceEntry||this.getPedal.EndsStave)&&(e.EndsStave=!0),this.getPedal.BeginsStave&&(e.BeginsStave=!0),e.ChangeBegin=this.ChangeBegin,e.ChangeEnd=this.ChangeEnd,e}setEndsStave(e,r){r!=null&&r.gte(e.parentSourceMeasure.Duration)&&(this.getPedal.EndsStave=!0)}setBeginsStave(e,r){e&&r.RealValue===0&&(this.getPedal.BeginsStave=!0)}}class GraphicalGlissando{constructor(e){this.Glissando=e,this.staffEntries=[]}calculateLine(e){const r=this.staffEntries[0],s=this.staffEntries[this.staffEntries.length-1],o=r.findGraphicalNoteFromNote(this.Glissando.StartNote),a=s.findGraphicalNoteFromNote(this.Glissando.EndNote);if(!o&&!a)return;const l=r.parentMeasure.ParentStaffLine;let c,u,d,g;if(o&&r.parentMeasure.ParentStaffLine===this.StaffLine)c=o.PositionAndShape.RelativePosition.x+o.parentVoiceEntry.parentStaffEntry.PositionAndShape.RelativePosition.x+o.parentVoiceEntry.parentStaffEntry.parentMeasure.PositionAndShape.RelativePosition.x+e.GlissandoNoteOffset,d=o.PositionAndShape.AbsolutePosition.y;else{c=s.parentMeasure.beginInstructionsWidth-.4;const b=this.Glissando.Direction===ColDirEnum.Down?-1:1;d=a.PositionAndShape.AbsolutePosition.y+b*e.GlissandoStafflineStartYDistanceToNote}if(a&&s.parentMeasure.ParentStaffLine===this.StaffLine)u=a.PositionAndShape.RelativePosition.x+a.parentVoiceEntry.parentStaffEntry.PositionAndShape.RelativePosition.x+a.parentVoiceEntry.parentStaffEntry.parentMeasure.PositionAndShape.RelativePosition.x-.5-e.GlissandoNoteOffset,c>u&&(c=u-e.GlissandoStafflineStartMinimumWidth),g=a.PositionAndShape.AbsolutePosition.y;else{if(l.Measures.last().parentSourceMeasure.HasEndLine)return;u=l.PositionAndShape.Size.width,u-c>e.GlissandoStafflineEndOffset&&(c=u-e.GlissandoStafflineEndOffset);const b=this.Glissando.Direction===ColDirEnum.Down?1:-1;g=o.PositionAndShape.AbsolutePosition.y+b*e.GlissandoStafflineStartYDistanceToNote}const m=new PointF2D(c,d),y=new PointF2D(u,g);this.Width===void 0&&(this.Width=e.GlissandoDefaultWidth),this.Line=new GraphicalLine(m,y,this.Width)}}class VexFlowGlissando extends GraphicalGlissando{}class GraphicalWavyLine extends GraphicalObject{constructor(e,r){super(),this.getWavyLine=e,this.PositionAndShape=new BoundingBox$1(this,r)}}class VexflowVibratoBracket extends GraphicalWavyLine{constructor(e,r,s=!1){super(e,r),this.line=1,this.isVibrato=!1,this.toEndOfStopStave=!1,this.isVibrato=s}get ToEndOfStopStave(){return this.toEndOfStopStave}setStartNote(e){for(const r of e.graphicalVoiceEntries){const s=r;if(s!=null&&s.vfStaveNote)return this.startNote=s.vfStaveNote,this.startVfVoiceEntry=s,!0}return!1}setEndNote(e){for(const r of e.graphicalVoiceEntries){const s=r;if(s!=null&&s.vfStaveNote){this.endNote=s.vfStaveNote,this.endVfVoiceEntry=s;const o=this.endVfVoiceEntry.parentStaffEntry.parentMeasure.staffEntries,a=o[o.length-1];return this.toEndOfStopStave=a===this.endVfVoiceEntry.parentStaffEntry,!0}}return!1}CalculateBoundingBox(){const e=this.getVibratoBracket();this.boundingBox.Size.height=e.render_options.wave_height*.2}getVibratoBracket(){const e=new Vex.Flow.VibratoBracket({start:this.startNote,stop:this.endNote,toEndOfStopStave:this.toEndOfStopStave});return e.setLine(this.line),this.isVibrato?e.render_options.vibrato_width=20:e.render_options.wave_girth=4,e}}const VF=Vex.Flow;class VexFlowMusicSheetCalculator extends MusicSheetCalculator{constructor(e){var r,s,o,a,l,c,u,d;super(),this.beamsNeedUpdate=!1,this.rules=e,MusicSheetCalculator.symbolFactory=new VexFlowGraphicalSymbolFactory,MusicSheetCalculator.TextMeasurer=new VexFlowTextMeasurer(this.rules),MusicSheetCalculator.stafflineNoteCalculator=new VexflowStafflineNoteCalculator(this.rules),((r=this.rules.DefaultVexFlowNoteFont)==null?void 0:r.toLowerCase())==="gonville"?Vex.Flow.DEFAULT_FONT_STACK=[(s=Vex.Flow.Fonts)==null?void 0:s.Gonville,(o=Vex.Flow.Fonts)==null?void 0:o.Bravura,(a=Vex.Flow.Fonts)==null?void 0:a.Custom]:((l=this.rules.DefaultVexFlowNoteFont)==null?void 0:l.toLowerCase())==="petaluma"&&(Vex.Flow.DEFAULT_FONT_STACK=[(c=Vex.Flow.Fonts)==null?void 0:c.Petaluma,(u=Vex.Flow.Fonts)==null?void 0:u.Gonville,(d=Vex.Flow.Fonts)==null?void 0:d.Bravura])}clearRecreatedObjects(){super.clearRecreatedObjects(),MusicSheetCalculator.stafflineNoteCalculator=new VexflowStafflineNoteCalculator(this.rules);for(const e of this.graphicalMusicSheet.MeasureList)for(const r of e)r==null||r.clean()}formatMeasures(){for(const e of this.graphicalMusicSheet.MeasureList){if(!e||!e[0])continue;e.find(s=>s==null?void 0:s.isVisible()).format();for(const s of e){for(const o of s.staffEntries)o.calculateXPosition();s.finalizeBeams()}}this.beamsNeedUpdate=!1}calculateMeasureXLayout(e){const r=[];for(const g of e)g!=null&&g.isVisible()&&r.push(g);if(r.length===0)return 0;e=r;const s=[],o=new VF.Formatter({softmaxFactor:this.rules.SoftmaxFactorVexFlow});let a=e[0].staffEntries.length,l=1;for(const g of e){if(!g)continue;let m=0;for(const S of g.staffEntries)m+=S.setMaxAccidentals();g.parentSourceMeasure.ImplicitMeasure&&(a=Math.max(g.staffEntries.length,a),l=Math.max(g.staffEntries.length+m,l));const y=g.vfVoices,b=[];for(const S in y)if(y.hasOwnProperty(S)){const A=y[S];g.hasOnlyRests&&!A.ticksUsed.equals(A.totalTicks)&&(A.ticksUsed=A.totalTicks),b.push(A),s.push(A)}if(b.length===0){loglevelExports.debug("Found a measure with no voices. Continuing anyway.",y);continue}o.joinVoices(b)}let c=12;const u=e[0].parentSourceMeasure,d=.3;if(s.length>0){if(c=o.preCalculateMinTotalWidth(s)/unitInPixels*this.rules.VoiceSpacingMultiplierVexflow+this.rules.VoiceSpacingAddendVexflow+a*d,u!=null&&u.ImplicitMeasure){c=u.Duration.RealValue/u.ActiveTimeSignature.RealValue*c;let y=0;const b=u.measureListIndex;if(b>1)for(const S of this.graphicalMusicSheet.MeasureList[b-1]){const A=S==null?void 0:S.parentSourceMeasure.endingBarStyleEnum;if(A===SystemLinesEnum.ThinBold||A===SystemLinesEnum.DotsThinBold){y=this.rules.PickupMeasureRepetitionSpacing;break}}c+=y,a>1?c+=l*d*1.5:b>1&&a===1&&(c+=this.rules.PickupMeasureSpacingSingleNoteAddend),c*=this.rules.PickupMeasureWidthMultiplier}MusicSheetCalculator.setMeasuresMinStaffEntriesWidth(e,c);const g=(y,b)=>{o.formatToStave(s,b.getVFStave())},m=(y,b)=>{o.formatToStave(s,b.getVFStave(),{align_rests:!0,context:void 0})};for(const y of e){if(this.rules.AlignRests===AlignRestOption.Never)y.formatVoices=g;else if(this.rules.AlignRests===AlignRestOption.Always)y.formatVoices=m;else if(this.rules.AlignRests===AlignRestOption.Auto){let b=!1;for(const S of y.staffEntries){let A=0,E=0;for(const x of S.graphicalVoiceEntries)if(x.parentVoiceEntry.IsGrace||x&&x.notes&&x.notes[0]&&x.notes[0].sourceNote&&x.notes[0].sourceNote.PrintObject&&A++,x&&x.notes&&x.notes[0]&&x.notes[0].sourceNote&&x.notes[0].sourceNote.isRest()&&x.notes[0].sourceNote.PrintObject&&E++,A>1&&E>=1){b=!0;break}if(b)break}b?y.formatVoices=m:y.formatVoices=g}if(y===e[0]){const b=y;b.formatVoices(c*unitInPixels,b)}}}for(const g of e)if(g)for(const m of g.staffEntries)m.calculateXPosition();for(const g of e){if(!g)continue;const m=g.vfVoices,y=[];for(const b in m)m.hasOwnProperty(b)&&y.push(m[b]);if(y.length===0){loglevelExports.debug("Found a measure with no voices. Continuing anyway.",m);continue}o.joinVoices(y)}return c}calculateElongationFactor(e,r,s,o,a,l,c,u){let d=a,g=0;for(const m of e){const y=m.GraphicalLabel.Label.textAlignment;let b=c,S=u;if(m instanceof GraphicalLyricEntry&&m.ParentLyricWord){m.LyricsEntry.SyllableIndex>0&&(b=this.rules.BetweenSyllableMinimumDistance,TextAlignment.IsCenterAligned(y)&&(b+=1));const Q=m.ParentLyricWord.GetLyricWord.Syllables;Q.length>1&&m.LyricsEntry.SyllableIndex4&&(z*=1.1)}}else s[g]&&(z=C/M);D=Math.max(O,z),d=Math.max(d,D);let N=Math.max(C-M||0,0);s[g]&&(N+=s[g].cumulativeOverlap),s[g]={cumulativeOverlap:N,extend:m instanceof GraphicalLyricEntry?m.LyricsEntry.extend:!1,labelWidth:E,measureNumber:l,sourceNoteDuration:m instanceof GraphicalLyricEntry?m.LyricsEntry&&m.LyricsEntry.Parent.Notes[0].Length:!1,text:m instanceof GraphicalLyricEntry?m.LyricsEntry.Text:m.GraphicalLabel.Label.text,xPosition:T},g++}return d}calculateElongationFactorFromStaffEntries(e,r,s,o){let a=s;const l={},c={};for(const u of e)u.LyricsEntries.length>0&&this.rules.RenderLyrics&&(a=this.calculateElongationFactor(u.LyricsEntries,u,l,r,a,o,this.rules.HorizontalBetweenLyricsDistance,this.rules.LyricOverlapAllowedIntoNextMeasure)),u.graphicalChordContainers.length>0&&this.rules.RenderChordSymbols&&(a=this.calculateElongationFactor(u.graphicalChordContainers,u,c,r,a,o,this.rules.ChordSymbolXSpacing,this.rules.ChordOverlapAllowedIntoNextMeasure));return a}calculateMeasureWidthFromStaffEntries(e,r){var l;let s=1;if(!((l=window.GYM)==null?void 0:l.multitrack))for(const c of e)!c||c.staffEntries.length===0||(s=this.calculateElongationFactorFromStaffEntries(c.staffEntries,r,s,c.MeasureNumber),s=1);return s=Math.min(s,this.rules.MaximumLyricsElongationFactor),r*s}createGraphicalTie(e,r,s,o,a){return new GraphicalTie(e,o,a)}updateStaffLineBorders(e){e.SkyBottomLineCalculator.updateStaffLineBorders()}graphicalMeasureCreatedCalculations(e){e.rules=this.rules,e.graphicalMeasureCreatedCalculations()}layoutVoiceEntry(e,r,s,o){for(let a=0;a=2&&(l=o.vfnote[0],c=o.vfnote[1]);let u,d=0;if(a&&a.vfnote&&a.vfnote.length>=2&&(u=a.vfnote[0],d=a.vfnote[1]),r){if(l){const E=new VF.StaveTie({first_indices:[c],first_note:l}),x=o.parentVoiceEntry.parentStaffEntry.parentMeasure;if(u){u.getDuration()==="w"&&((m=(g=u.keyProps)==null?void 0:g[0])==null?void 0:m.line)>=3&&u.setStemDirection(-1);let P=((y=window.GYM)==null?void 0:y.tieDirection)||0;Math.abs(P)===1&&(((S=(b=u.keyProps)==null?void 0:b[0])==null?void 0:S.line)>=3?u.setStemDirection(-P):u.setStemDirection(P)),E==null||E.setDirection(u.getStemDirection())}if(x.vfTies.length>0){const P=x.vfTies[0].direction;E==null||E.setDirection(P?-P:1)}x.addStaveTie(E,e)}if(u){const E=new VF.StaveTie({last_indices:[d],last_note:u}),x=a.parentVoiceEntry.parentStaffEntry.parentMeasure;if(x.vfTies.length>0){const P=x.vfTies[0].direction;E==null||E.setDirection(P?-P:1)}x.addStaveTie(E,e)}}else if(l||u){let E;if(s)if(e.Tie.Type==="S"){const T=e.StartNote.sourceNote,C=e.EndNote.sourceNote;let M=1;T.FretNumber>C.FretNumber&&(M=-1),E=new VF.TabSlide({first_indices:[c],first_note:l,last_indices:[d],last_note:u},M)}else E=new VF.TabTie({first_indices:[c],first_note:l,last_indices:[d],last_note:u},e.Tie.Type);else{E=new VF.StaveTie({first_indices:[c],first_note:l,last_indices:[d],last_note:u});const T=e.Tie.getTieDirection(o.sourceNote);T===PlacementEnum.Below?E.setDirection(1):T===PlacementEnum.Above&&E.setDirection(-1)}const x=a.parentVoiceEntry.parentStaffEntry.parentMeasure,P=((A=window.GYM)==null?void 0:A.graceCustom)||!1;P&&E.setDirection(P.direction),x.addStaveTie(E,e)}}calculateDynamicExpressionsForMultiExpression(e,r,s){if(rthis.rules.MaxMeasureToDrawIndex)return;const o=e.AbsoluteTimestamp,a=this.graphicalMusicSheet.MeasureList[r],l=a[s].ParentStaffLine,c=a[s];if(!l)return;const u=e.StartingContinuousDynamic,d=u!==void 0&&!u.IsStartOfSoftAccent,g=this.getRelativePositionInStaffLineFromTimestamp(o,s,l,l==null?void 0:l.isPartOfMultiStaffInstrument(),void 0,d);if(g.x<=0&&(g.x=c.beginInstructionsWidth+this.rules.RhythmRightMargin),e.InstantaneousDynamic){const m=new VexFlowInstantaneousDynamicExpression(e.InstantaneousDynamic,l,c);this.calculateGraphicalInstantaneousDynamicExpression(m,g,o),this.dynamicExpressionMap.set(o.RealValue,m.PositionAndShape)}if(u){const m=new VexFlowContinuousDynamicExpression(u,l,c.parentSourceMeasure);if(m.StartMeasure=c,m.IsSoftAccent=e.StartingContinuousDynamic.IsStartOfSoftAccent,!m.IsVerbal&&u.EndMultiExpression)try{this.calculateGraphicalContinuousDynamic(m,g),m.updateSkyBottomLine()}catch(y){}else m.IsVerbal?this.calculateGraphicalVerbalContinuousDynamic(m,g):loglevelExports.warn("This continuous dynamic is not covered. measure"+e.SourceMeasureParent.MeasureNumber)}}createMetronomeMark(e,r){var P,T,C,M,B,I,k,D,O,z,N;const s=Math.max(e.ParentMultiTempoExpression.SourceMeasureParent.MeasureNumber-1,0),o=r||s,a=Math.max(e.StaffNumber-1,0),l=this.graphicalMusicSheet.MeasureList[o][a].getVFStave();let c="q";if(e.beatUnit){const Q=NoteTypeHandler.getNoteDurationFromType(e.beatUnit);c=VexFlowConverter.durations(Q,!1)[0]}let u=this.rules.MetronomeMarkYShift,d=!1;const g=[];if(e.parentMeasure){for(const Q of e.parentMeasure.StaffLinkedExpressions)for(const _ of Q)_&&_ instanceof UnknownExpression&&g.push(_);for(const Q of e.parentMeasure.TempoExpressions){const _=((P=Q.InstantaneousTempo)==null?void 0:P.Enum)===TempoEnum.metronomeMark;if(!e.beatUnit&&Q.InstantaneousTempo.beatUnit){const U=NoteTypeHandler.getNoteDurationFromType(e.beatUnit);c=VexFlowConverter.durations(U,!1)[0]}if(Q.getPlacementOfFirstEntry()===PlacementEnum.Above&&!_){d=!0;break}}}d&&(u-=1.4);const m=(T=this.graphicalMusicSheet.MeasureList[0][0].ParentStaffLine)==null?void 0:T.SkyLine;let y=e.TempoInBpm,b="",S="",A="";for(const Q of this.graphicalMusicSheet.MeasureList[o][a].parentSourceMeasure.TempoExpressions){if(S=Q.CombinedExpressionsText,isSpecialMark(Q.CombinedExpressionsText)){b=Q.CombinedExpressionsText;break}if(isSpeedKeyword(Q.CombinedExpressionsText)||isSpeedHiddenKeyword(Q.CombinedExpressionsText)){b=formatSpeedKeyword(Q.CombinedExpressionsText),y=Q.sourceMeasure.TempoInBPM,isSpeedKeyword(Q.CombinedExpressionsText)&&(A=c);break}}const E={bpm:e.TempoInBpm,dots:e.dotted,duration:c,name:b};b&&(E.bpm=y/(E.dots?1.5:1),isSpeedKeyword(S)?E.duration=A:(y===SpeedTag[b]||!SpeedTag[b])&&(E.duration=""));const x=((I=(B=(M=(C=this.graphicalMusicSheet.MeasureList[o][a])==null?void 0:C.vfVoices)==null?void 0:M[1])==null?void 0:B.boundingBox)==null?void 0:I.y)||0;if(this.rules.MetronomeMarksDrawn){if(m){const G=((D=(k=this.graphicalMusicSheet.MeasureList[0])==null?void 0:k[a])==null?void 0:D.ParentStaffLine).Measures.map(H=>H.MeasureNumber-1);if(x&&G.includes(o)&&(isSpeedKeyword(S)||isSpeedHiddenKeyword(S))){const H=m.slice(0,9);let R=Math.min(...H);R=R<0?R-1:R,u+=R}G.includes(o)&&g.length?m[0]=Math.min(m[0],-4.5+u-4):m[0]=Math.min(m[0],-4.5+u)}l.options.line_config.reduce((U,G)=>(G.visible&&U++,U),0)<5&&(u-=2),l.setTempo(E,u*unitInPixels);let _=0;try{const U=(N=(z=(O=this.graphicalMusicSheet.MeasureList[o][a])==null?void 0:O.vfVoices)==null?void 0:z[1])==null?void 0:N.getTickables();_+=U[e.parentMeasure.metronomeNoteIndex].getBoundingBox().getX()-l.getNoteStartX()}catch(U){}l.getModifiers()[l.getModifiers().length-1].setShiftX(_)}}calculateRehearsalMark(e){var d,g,m,y,b,S,A,E,x;const r=e.rehearsalExpression;if(!r)return;const s=(m=(g=(d=e.VerticalMeasureList)==null?void 0:d[0])==null?void 0:g.getVFStave)==null?void 0:m.call(g);if(!s)return;const o=-this.rules.RehearsalMarkYOffsetDefault-this.rules.RehearsalMarkYOffset;let a=this.rules.RehearsalMarkXOffsetDefault+this.rules.RehearsalMarkXOffset;e.IsSystemStartMeasure&&(a+=this.rules.RehearsalMarkXOffsetSystemStartMeasure);const l=this.rules.RehearsalMarkFontSize,c=s.getModifiers(),u=c.find(P=>P.getCategory().toLocaleLowerCase()==="repetitions");if(u&&u.setShiftY(u.y_shift-10),s.setSection(r.label,o,a,l),(S=(b=(y=e.VerticalMeasureList)==null?void 0:y[0])==null?void 0:b.ParentStaffLine)!=null&&S.AbstractExpressions){const P=c.find(T=>T.getCategory().toLocaleLowerCase()==="stavesection");for(let T of((x=(E=(A=e==null?void 0:e.VerticalMeasureList)==null?void 0:A[0])==null?void 0:E.ParentStaffLine)==null?void 0:x.AbstractExpressions)||[])T instanceof GraphicalUnknownExpression&&(P&&(T.Label.PositionAndShape.RelativePosition.y-=.5),u&&(T.Label.PositionAndShape.RelativePosition.y-=1.7))}}calculateSingleOctaveShift(e,r,s,o){var S;const a=r.OctaveShiftStart,l=a.ParentStartMultiExpression.Timestamp,c=(S=a.ParentEndMultiExpression)==null?void 0:S.Timestamp,u=this.rules.MinMeasureToDrawIndex,d=this.rules.MaxMeasureToDrawIndex;let g=this.graphicalMusicSheet.MeasureList[s][o].ParentStaffLine;g||(g=this.graphicalMusicSheet.MeasureList[u][o].ParentStaffLine);let m;a.ParentEndMultiExpression?m=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(a.ParentEndMultiExpression.SourceMeasureParent,o):m=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(o,!0),m.MeasureNumber>d+1&&(m=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(o,!0));let y;if(a.ParentEndMultiExpression?y=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(a.ParentStartMultiExpression.SourceMeasureParent,o):y=this.graphicalMusicSheet.MeasureList[u][o],y.MeasureNumberd||m.parentSourceMeasure.measureListIndexd)return;let b=m.ParentStaffLine;if(b||(b=g),m&&g&&b){const A=new VexFlowOctaveShift(a,g.PositionAndShape);if(!A.startNote){let P;for(const T of y.staffEntries)if(T){P=T;break}if(!P||(A.setStartNote(P),!A.startNote))return}if(!A.endNote){let P;for(let T=m.staffEntries.length-1;T>=0;T++)if(m.staffEntries[T]){P=m.staffEntries[T];break}if(!P){A.graphicalEndAtMeasureEnd=!0;return}if(A.setEndNote(P),!A.endNote)return}let E=y.findGraphicalStaffEntryFromTimestamp(l);E||(E=y.staffEntries[0]);let x=m.findGraphicalStaffEntryFromTimestamp(c);if(x||(x=m.staffEntries[m.staffEntries.length-1]),A.setStartNote(E),b!==g){A.endsOnDifferentStaffLine=!0;let P=this.findLastStafflineMeasure(g);P===void 0&&(P=m);const T=P.staffEntries[P.staffEntries.length-1];A.setEndNote(T),A.graphicalEndAtMeasureEnd=!0,A.endMeasure=P;const C=b.ParentMusicSystem.Id-g.ParentMusicSystem.Id;if(C>0)for(let M=g.ParentMusicSystem.Id;M=0;r--){const s=e.Measures[r];if(s.staffEntries.length>0)return s}}calculateSinglePedal(e,r,s,o){var S;const a=r.PedalStart,l=a.ParentStartMultiExpression.Timestamp,c=(S=a.ParentEndMultiExpression)==null?void 0:S.Timestamp,u=this.rules.MinMeasureToDrawIndex,d=this.rules.MaxMeasureToDrawIndex;let g=this.graphicalMusicSheet.MeasureList[s][o].ParentStaffLine;g||(g=this.graphicalMusicSheet.MeasureList[u][o].ParentStaffLine);let m;a.ParentEndMultiExpression?m=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(a.ParentEndMultiExpression.SourceMeasureParent,o):m=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(o,!0),m||(m=a.ParentStartMultiExpression.SourceMeasureParent.VerticalMeasureList[o]),m.MeasureNumber>d+1&&(m=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(o,!0));let y;if(a.ParentEndMultiExpression?y=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(a.ParentStartMultiExpression.SourceMeasureParent,o):(y=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(a.ParentStartMultiExpression.SourceMeasureParent,o),y||(y=this.graphicalMusicSheet.MeasureList[u][o])),y.MeasureNumberd||m.parentSourceMeasure.measureListIndexd)return;let b=m.ParentStaffLine;if(b||(b=g),m&&g&&b){let A=!1;g!==b&&(A=!0);const E=new VexFlowPedal(a,g.PositionAndShape,!1,A);E.setEndsStave(m,c);let x=y.findGraphicalStaffEntryFromTimestamp(l);x||(x=y.staffEntries[0]);let P=m.findGraphicalStaffEntryFromTimestamp(c);if(P||(P=m.staffEntries[m.staffEntries.length-1]),!E.setStartNote(x))return;if(E.setBeginsStave(E.startNote.isRest(),l),b!==g)if(E.pedalSymbol===MusicSymbol.PEDAL_SYMBOL){E.setEndNote(P),E.setEndMeasure(m),E.ReleaseText=" ",E.CalculateBoundingBox(),this.calculatePedalSkyBottomLine(E.startVfVoiceEntry,E.endVfVoiceEntry,E,g);const T=b.Measures[0],C=new VexFlowPedal(a,T.PositionAndShape);E.setEndsStave(m,c);const M=T.staffEntries[0];if(!C.setStartNote(M))return;C.setEndNote(P),C.setEndMeasure(m),E.setEndMeasure(m),b.Pedals.push(C),C.CalculateBoundingBox(),C.DepressText=" ",this.calculatePedalSkyBottomLine(C.startVfVoiceEntry,C.endVfVoiceEntry,C,b)}else{let T=this.findLastStafflineMeasure(g);T===void 0&&(T=m);const C=T.staffEntries[T.staffEntries.length-1];E.setEndNote(C),E.setEndMeasure(m),E.ChangeEnd=!1;const M=b.ParentMusicSystem.Id-g.ParentMusicSystem.Id;if(M>0){let B=1;for(let I=g.ParentMusicSystem.Id;Id+1&&(m=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(o,!0));let y;if(a.ParentEndMultiExpression?y=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(a.ParentStartMultiExpression.SourceMeasureParent,o):y=this.graphicalMusicSheet.MeasureList[u][o],y.MeasureNumberd||m.parentSourceMeasure.measureListIndexd)return;let b=m.ParentStaffLine;if(b||(b=g),m&&g&&b){const A=new VexflowVibratoBracket(a,g.PositionAndShape,y.ParentStaff.isTab);let E=y.findGraphicalStaffEntryFromTimestamp(l);E||(E=y.staffEntries[0]);let x=m.findGraphicalStaffEntryFromTimestamp(c);if(x||(x=m.staffEntries[m.staffEntries.length-1]),A.setStartNote(E),b!==g){let P=g.Measures[g.Measures.length-1];P===void 0&&(P=m);const T=P.staffEntries[P.staffEntries.length-1];if(A.setEndNote(T),b.ParentMusicSystem.Id-g.ParentMusicSystem.Id>0)for(let M=g.ParentMusicSystem.Id;Mm){const T=m;m=g,g=T}o.SkyBottomLineCalculator.updateBottomLineInRange(g,m,y+x)}for(const x of o.Pedals){const P=x,T=P.getPedalMarking(),C=T.line+3+(o.StaffLines.length-1);if(y>C){const M=T.render_options.text_margin_right/10;let B=P.startVfVoiceEntry.PositionAndShape.AbsolutePosition.x-M,I;P.setLine(y-3-(o.StaffLines.length-1));let k=(S=P.endVfVoiceEntry)==null?void 0:S.PositionAndShape;if(k||(k=P.endMeasure.PositionAndShape),P.EndSymbolPositionAndShape){const D=c.render_options.glyph_point_size/20;I=B+3.4;const O=k.AbsolutePosition.x-M,z=O+1.5;o.SkyBottomLineCalculator.updateBottomLineInRange(B,I,y+D),o.SkyBottomLineCalculator.updateBottomLineInRange(O,z,y+D)}else{const D=T.render_options.bracket_height/10;if(T.EndsStave)I=k.AbsolutePosition.x+k.Size.width-M;else switch(c.style){case l.BRACKET_OPEN_END:case l.BRACKET_OPEN_BOTH:case l.MIXED_OPEN_END:I=k.AbsolutePosition.x+k.BorderRight-M;break;default:I=k.AbsolutePosition.x+k.BorderLeft-M;break}const O=(E=(A=P.endVfVoiceEntry)==null?void 0:A.parentStaffEntry)==null?void 0:E.vfClefBefore;if(O){const z=O.getWidth()/10;I+=z}if(B>I){const z=B;B=I,I=z}o.SkyBottomLineCalculator.updateBottomLineInRange(B,I,y+D)}}}}calculateOctaveShiftSkyBottomLine(e,r,s,o){if(!r){loglevelExports.warn("octaveshift: no endStaffEntry");return}let a=r.PositionAndShape;s.graphicalEndAtMeasureEnd&&(a=r.parentMeasure.PositionAndShape);let l=e.PositionAndShape.Size.width,c=a.Size.width;e.hasOnlyRests()?l=-l:l/=2,s.graphicalEndAtMeasureEnd||(r.hasOnlyRests()?c*=2:c/=2,e===r&&(c*=2));let u=e.PositionAndShape.AbsolutePosition.x-l,d=a.AbsolutePosition.x+c;if(u>d){const y=u;u=d,d=y}s.PositionAndShape.Size.width=d-u;const g=s.getTextBracket(),m=g.font.size/10;if(g.position===VF.TextBracket.Positions.TOP){const y=Math.ceil(o.SkyBottomLineCalculator.getSkyLineMinInRange(u,d));if(y===1/0)return;g.start.getStave().options.top_text_position=Math.abs(y),o.SkyBottomLineCalculator.updateSkyLineInRange(u,d,y-m*2)}else{const y=o.SkyBottomLineCalculator.getBottomLineMaxInRange(u,d);if(y===1/0)return;g.start.getStave().options.bottom_text_position=y,e.parentMeasure!==r.parentMeasure&&(g.stop.getStave().options.bottom_text_position=y),o.SkyBottomLineCalculator.updateBottomLineInRange(u,d,y+m*1.5)}}calculateWordRepetitionInstruction(e,r){let s;const o=this.graphicalMusicSheet.MeasureList[r];for(let a=0,l=o.length;as.StaffLines));let r=0;for(const s of e)for(const o of s.Measures)o&&r++;this.rules.AlwaysSetPreferredSkyBottomLineBackendAutomatically&&this.rules.setPreferredSkyBottomLineBackendAutomatically(r);for(const s of e)s.SkyBottomLineCalculator.calculateLines()}calculateExpressionAlignements(){for(const e of this.musicSystems)for(const r of e.StaffLines)try{r.AlignmentManager.alignDynamicExpressions(),r.AbstractExpressions.forEach(s=>{s.updateSkyBottomLine()})}catch(s){}}handleTiedGraphicalNote(e,r,s,o,a,l,c,u){}handleBeam(e,r,s){e.parentVoiceEntry.parentStaffEntry.parentMeasure.handleBeam(e,r)}handleVoiceEntryLyrics(e,r,s){e.LyricsEntries.forEach((o,a)=>{const l=new GraphicalLyricEntry(a,r,this.rules.LyricsHeight,this.rules.StaffHeight);if(r.LyricsEntries.push(l),l.GraphicalLabel.setLabelPositionAndShapeBorders(),a.Word){const u=a.Word.Syllables.indexOf(a);let d=s.indexOf(a.Word);if(d===-1&&(s.push(a.Word),d=s.indexOf(a.Word)),this.graphicalLyricWords.length===0||d>this.graphicalLyricWords.length-1){const g=new GraphicalLyricWord(a.Word);l.ParentLyricWord=g,g.GraphicalLyricsEntries[u]=l,this.graphicalLyricWords.push(g)}else{const g=this.graphicalLyricWords[d];l.ParentLyricWord=g,g.GraphicalLyricsEntries[u]=l,g.isFilled()&&(s.splice(d,1),this.graphicalLyricWords.splice(this.graphicalLyricWords.indexOf(g),1))}}})}handleVoiceEntryOrnaments(e,r,s){}handleVoiceEntryArticulations(e,r,s){}handleVoiceEntryTechnicalInstructions(e,r,s){}handleTuplet(e,r,s){e.parentVoiceEntry.parentStaffEntry.parentMeasure.handleTuplet(e,r)}findIndexGraphicalSlurFromSlur(e,r){for(let s=0;s=0){const m=o[g];m.staffEntries.indexOf(l)===-1&&m.staffEntries.push(l),o.splice(g,1)}}}for(const c of o)c.staffEntries.indexOf(l)===-1&&c.staffEntries.push(l)}}for(const r of this.musicSystems)for(const s of r.StaffLines){const o=s.GraphicalSlurs.sort(GraphicalSlur.Compare);for(const a of o)a.slur.isCrossed()||a.calculateCurve(this.rules)}}calculateGlissandi(){const e={};for(const r of this.graphicalMusicSheet.MeasureList[0])e[r.ParentStaff.idInMusicSheet]=[];for(const r of this.musicSystems)for(const s of r.StaffLines){const o=e[s.ParentStaff.idInMusicSheet];for(let a=0;a=0){const m=o[g];m.staffEntries.indexOf(l)===-1&&m.staffEntries.push(l),o.splice(g,1)}}}}for(const c of o)c.staffEntries.indexOf(l)===-1&&c.staffEntries.push(l)}}for(const r of this.musicSystems)for(const s of r.StaffLines)for(const o of s.GraphicalGlissandi)if(s.ParentStaff.isTab){const l=o.Glissando.StartNote,c=o.Glissando.EndNote,u=o.staffEntries[0].findGraphicalNoteFromNote(l),d=o.staffEntries.last().findGraphicalNoteFromNote(c);if(!u&&!d)return;let g=1;l.FretNumber>c.FretNumber&&(g=-1);let m,y,b;u&&u.vfnote&&u.vfnote.length>=2&&(b=u.vfnote[0],m=[0]);let S;d&&d.vfnote&&d.vfnote.length>=2&&(S=d.vfnote[0],y=[0]);const A=new VF.TabSlide({first_indices:m,first_note:b,last_indices:y,last_note:S},g),E=u==null?void 0:u.parentVoiceEntry.parentStaffEntry.parentMeasure;E&&(E.vfTies.push(A),o.vfTie=A);const x=d==null?void 0:d.parentVoiceEntry.parentStaffEntry.parentMeasure;x&&(x.vfTies.push(A),o.vfTie=A)}}}class MusicPartManager{constructor(e){this.musicSheet=e}reInit(){this.init()}init(){this.parts=this.musicSheet.Repetitions.slice(),this.sheetStart=this.musicSheet.SelectionStart=new Fraction$1(0,1),this.sheetEnd=this.musicSheet.SelectionEnd=this.musicSheet.SheetEndTimestamp,this.calcMapping()}getCurrentRepetitionTimestampTransform(e){let r;for(let s=this.timestamps.length-1;s>=0;s--)if(r=this.timestamps[s],e.gte(r.from))return r;return this.timestamps[0]}absoluteEnrolledToSheetTimestamp(e){if(this.timestamps.length===0)return e;const r=this.getCurrentRepetitionTimestampTransform(e);return Fraction$1.plus(e,Fraction$1.minus(r.to,r.from))}get Parts(){return this.parts}get MusicSheet(){return this.musicSheet}getIterator(e){return e?new MusicPartManagerIterator(this.musicSheet,e,void 0):new MusicPartManagerIterator(this.musicSheet,this.musicSheet.SelectionStart,this.musicSheet.SelectionEnd)}setSelectionStart(e){this.musicSheet.SelectionStart=e,this.musicSheet.SelectionEnd=void 0}setSelectionRange(e,r){this.musicSheet.SelectionStart=e!=null?e:this.sheetStart,this.musicSheet.SelectionEnd=r!=null?r:this.sheetEnd}calcMapping(){this.timestamps=[];const e=this.getIterator();let r=e.CurrentRepetition,s=new TimestampTransform(e.CurrentEnrolledTimestamp.clone(),e.CurrentSourceTimestamp.clone(),void 0,0);for(this.timestamps.push(s);!e.EndReached;){if(e.JumpOccurred||r!==e.CurrentRepetition){if(r=e.CurrentRepetition,e.backJumpOccurred){const o=e.JumpResponsibleRepetition;s.nextBackJump=e.CurrentEnrolledTimestamp,s.curRepetition=o,s.curRepetitionIteration=e.CurrentJumpResponsibleRepetitionIterationBeforeJump;for(let a=this.timestamps.length-2;a>=0&&!(o.AbsoluteTimestamp.gt(this.timestamps[a].to)||this.timestamps[a].curRepetition);a--)this.timestamps[a].nextBackJump=s.nextBackJump,this.timestamps[a].curRepetition=o,this.timestamps[a].curRepetitionIteration=s.curRepetitionIteration}s=new TimestampTransform(e.CurrentEnrolledTimestamp.clone(),e.CurrentSourceTimestamp.clone(),void 0,0),this.timestamps.push(s)}e.moveToNext()}}}class TimestampTransform{constructor(e,r,s,o){this.from=e,this.to=r,this.curRepetition=s,this.curRepetitionIteration=o,this.nextBackJump=void 0,this.nextForwardJump=void 0}}class PartListEntry{constructor(e){this.enrolledTimestamps=[],this.visible=!0,this.musicSheet=e}get Visible(){return this.visible}set Visible(e){this.visible=e}getFirstSourceMeasure(){return this.musicSheet.SourceMeasures[this.startIndex]}getLastSourceMeasure(){return this.musicSheet.SourceMeasures[this.endIndex]}}class SourceMusicPart extends PartListEntry{constructor(e,r,s){super(e),this.musicSheet=e,this.startIndex=r,this.endIndex=s}get MeasuresCount(){return this.endIndex-this.startIndex+1}get StartIndex(){return this.startIndex}get EndIndex(){return this.endIndex}get ParentRepetition(){return this.parentRepetition}set ParentRepetition(e){this.parentRepetition=e}get AbsoluteTimestamp(){return Fraction$1.createFromFraction(this.musicSheet.SourceMeasures[this.startIndex].AbsoluteTimestamp)}setStartIndex(e){this.startIndex=e}setEndIndex(e){this.endIndex=e}}class Repetition extends PartListEntry{constructor(e,r=!1){super(e),this.backwardJumpInstructions=[],this.endingParts=[],this.endingIndexDict={},this.userNumberOfRepetitions=0,this.visibles=[],this.fromWords=!1,this.repetitonIterationOrder=[],this.numberOfEndings=1,this.musicSheet2=e,this.virtualOverallRepetition=r}get BackwardJumpInstructions(){return this.backwardJumpInstructions}get EndingIndexDict(){return this.endingIndexDict}get EndingParts(){return this.endingParts}get Visibles(){return this.visibles}set Visibles(e){this.visibles=e}get DefaultNumberOfRepetitions(){let e=2;return this.virtualOverallRepetition&&(e=1),Math.max(e,Object.keys(this.endingIndexDict).length,this.checkRepetitionForMultipleLyricVerses())}get UserNumberOfRepetitions(){return this.userNumberOfRepetitions}set UserNumberOfRepetitions(e){this.userNumberOfRepetitions=e,this.repetitonIterationOrder=[];const r=this.userNumberOfRepetitions-this.NumberOfEndings;for(let s=1;s<=this.userNumberOfRepetitions;s++)s<=r?this.repetitonIterationOrder.push(1):this.repetitonIterationOrder.push(s-r)}getForwardJumpTargetForIteration(e){const r=this.repetitonIterationOrder[e-1];return this.endingIndexDict[r]?this.endingIndexDict[r].part.StartIndex:-1}getBackwardJumpTarget(){return this.startMarker.measureIndex}setEndingsStartIndex(e,r){const s=new RepetitionEndingPart(new SourceMusicPart(this.musicSheet2,r,r));this.endingParts.push(s);for(const o of e)try{this.endingIndexDict[o]=s,s.endingIndices.push(o),this.numberOfEndings0&&(o=1),a.Add(new Fraction$1(o,r)),a}}class MusicSheet{constructor(){this.idString="uninitialized",this.sourceMeasures=[],this.repetitions=[],this.dynListStaves=[],this.timestampSortedDynamicExpressionsList=[],this.timestampSortedTempoExpressionsList=[],this.instrumentalGroups=[],this.instruments=[],this.musicPartManager=void 0,this.musicSheetErrors=new MusicSheetErrors,this.staves=[],this.playbackDataDict=new Dictionary,this.transpose=0,this.defaultStartTempoInBpm=0,this.drawErroneousMeasures=!1,this.hasBeenOpenedForTheFirstTime=!1,this.currentEnrolledPosition=new Fraction$1(0,1),this.soundTempos=new Map,this.userStartTempoInBPM=100,this.playbackSettings=new PlaybackSettings(new Fraction$1(4,4,0,!1),this.userStartTempoInBPM),this.pageWidth=120,this.MusicPartManager=new MusicPartManager(this),this.hasBPMInfo=!1}get SoundTempos(){return this.soundTempos}set SoundTempos(e){this.soundTempos=e}static getIndexFromStaff(e){return e.idInMusicSheet}get CurrentKeyInstruction(){return this.currentKeyInstruction}set CurrentKeyInstruction(e){this.currentKeyInstruction=e}get SourceMeasures(){return this.sourceMeasures}set SourceMeasures(e){this.sourceMeasures=e}get Repetitions(){return this.repetitions}set Repetitions(e){this.repetitions=e}get DynListStaves(){return this.dynListStaves}get TimestampSortedTempoExpressionsList(){return this.timestampSortedTempoExpressionsList}get TimestampSortedDynamicExpressionsList(){return this.timestampSortedDynamicExpressionsList}get InstrumentalGroups(){return this.instrumentalGroups}get Parts(){return this.instruments}get Instruments(){return this.instruments}get SheetPlaybackSetting(){return this.playbackSettings}set SheetPlaybackSetting(e){this.playbackSettings=e}get DrawErroneousMeasures(){return this.drawErroneousMeasures}set DrawErroneousMeasures(e){this.drawErroneousMeasures=e}get HasBeenOpenedForTheFirstTime(){return this.hasBeenOpenedForTheFirstTime}set HasBeenOpenedForTheFirstTime(e){this.hasBeenOpenedForTheFirstTime=e}InitializeStartTempoInBPM(e){this.playbackSettings.BeatsPerMinute=e,this.userStartTempoInBPM=e}get DefaultStartTempoInBpm(){return this.defaultStartTempoInBpm}set DefaultStartTempoInBpm(e){this.defaultStartTempoInBpm=e,this.InitializeStartTempoInBPM(e)}get Path(){return this.path}set Path(e){this.path=e}get Staves(){return this.staves}get TitleString(){return this.title?this.title.text:""}set TitleString(e){this.Title=new Label(e)}get SubtitleString(){return this.subtitle?this.subtitle.text:""}set SubtitleString(e){this.Subtitle=new Label(e)}get ComposerString(){return this.composer?this.composer.text:""}set ComposerString(e){this.Composer=new Label(e)}get LyricistString(){return this.lyricist?this.lyricist.text:""}set LyricistString(e){this.Lyricist=new Label(e)}get CopyrightString(){return this.copyright?this.copyright.text:""}set CopyrightString(e){this.Copyright=new Label(e,TextAlignmentEnum.CenterBottom,void 0,!0)}get Title(){return this.title}set Title(e){this.title=e}get Subtitle(){return this.subtitle}set Subtitle(e){this.subtitle=e}get Composer(){return this.composer}set Composer(e){this.composer=e}get Lyricist(){return this.lyricist}set Lyricist(e){this.lyricist=e}get Copyright(){return this.copyright}set Copyright(e){this.copyright=e}get Rules(){return this.rules||(loglevelExports.debug("warning: sheet.Rules was undefined. Creating new EngravingRules."),this.rules=new EngravingRules),this.rules}set Rules(e){this.rules=e}get SheetErrors(){return this.musicSheetErrors}get PlaybackDataDict(){return this.playbackDataDict}get SelectionStart(){return this.selectionStart}set SelectionStart(e){this.selectionStart=e.clone(),this.currentEnrolledPosition=e.clone()}get SelectionEnd(){return this.selectionEnd}set SelectionEnd(e){this.selectionEnd=e}set HasBPMInfo(e){this.hasBPMInfo=e}get HasBPMInfo(){return this.hasBPMInfo}addMeasure(e){this.sourceMeasures.push(e),e.measureListIndex=this.sourceMeasures.length-1}checkForInstrumentWithNoVoice(){for(let e=0,r=this.instruments.length;e0){const e=this.TimestampSortedTempoExpressionsList[0];if(e.InstantaneousTempo)return e.InstantaneousTempo.TempoInBpm;if(e.ContinuousTempo)return e.ContinuousTempo.StartTempo}return this.userStartTempoInBPM}get Errors(){return this.musicSheetErrors.measureErrors}get FirstMeasureNumber(){try{return this.getFirstSourceMeasure().MeasureNumber}catch(e){return loglevelExports.info("MusicSheet.FirstMeasureNumber: ",e),0}}get LastMeasureNumber(){try{return this.getLastSourceMeasure().MeasureNumber}catch(e){return loglevelExports.info("MusicSheet.LastMeasureNumber: ",e),0}}get CurrentEnrolledPosition(){return this.currentEnrolledPosition.clone()}set CurrentEnrolledPosition(e){this.currentEnrolledPosition=e.clone()}get Transpose(){return this.transpose}set Transpose(e){this.transpose=e}get FullNameString(){return this.ComposerString+" "+this.TitleString}get IdString(){return this.idString}set IdString(e){this.idString=e}getEnrolledSelectionStartTimeStampWorkaround(){const e=this.MusicPartManager.getIterator(this.SelectionStart);return Fraction$1.createFromFraction(e.CurrentEnrolledTimestamp)}get SheetEndTimestamp(){const e=this.getLastSourceMeasure();return Fraction$1.plus(e.AbsoluteTimestamp,e.Duration)}getSourceMeasureFromTimeStamp(e){for(let r=0,s=this.sourceMeasures.length;r0&&o.Voices[0].Visible&&e.push(o)}return e}}MusicSheet.defaultTitle="defaultTitle";class LyricWord{constructor(){this.syllables=[]}get Syllables(){return this.syllables}containsVoiceEntry(e){for(let r=0,s=this.Syllables.length;r=0&&(this.syllableIndex=a)}get Text(){return this.text}set Text(e){this.text=e}get Word(){return this.word}get Parent(){return this.parent}set Parent(e){this.parent=e}get VerseNumber(){return this.verseNumber}get SyllableIndex(){return this.syllableIndex}get IsTranslation(){return this.VerseNumber.endsWith("translation")}get IsChorus(){return this.VerseNumber.startsWith("chorus")}get FontStyle(){return this.IsChorus||this.IsTranslation?FontStyles.Italic:FontStyles.Regular}}class LyricsReader{constructor(e){this.openLyricWords={},this.musicSheet=e}addLyricEntry(e,r){var s,o;if(e){const a=e;for(let l=0,c=a.length;l0)for(let T=E;T0){const a=e.elements();for(let l=0,c=a.length;l0&&r.Articulations[0].articulationEnum!==ArticulationEnum.staccato&&r.Articulations.splice(0,0,b);else if(d==="breathmark")m===PlacementEnum.NotYetDefined&&(b.placement=PlacementEnum.Above);else if(d==="strongaccent"){const S=(o=u==null?void 0:u.attribute("type"))==null?void 0:o.value;S==="up"?b.articulationEnum=ArticulationEnum.marcatoup:S==="down"&&(b.articulationEnum=ArticulationEnum.marcatodown)}else if(g===ArticulationEnum.softaccent){const S=r.ParentSourceStaffEntry.ParentStaff.Id-1;m===PlacementEnum.NotYetDefined&&(m=PlacementEnum.Above,S>0&&(m=PlacementEnum.Below));const A=r.ParentSourceStaffEntry.VerticalContainerParent.ParentMeasure,E=new MultiExpression(A,r.Timestamp);E.StartingContinuousDynamic=new ContinuousDynamicExpression(ContDynamicEnum.crescendo,m,S,A,null,-1),E.StartingContinuousDynamic.IsStartOfSoftAccent=!0,E.StartingContinuousDynamic.StartMultiExpression=E,E.StartingContinuousDynamic.EndMultiExpression=E,E.EndingContinuousDynamic=new ContinuousDynamicExpression(ContDynamicEnum.diminuendo,m,S,A,null,-1),E.EndingContinuousDynamic.StartMultiExpression=E,E.EndingContinuousDynamic.EndMultiExpression=E,A.StaffLinkedExpressions[S].push(E)}if(!r.hasArticulation(b))switch(r.Articulations.push(b),b.articulationEnum){case ArticulationEnum.staccato:case ArticulationEnum.staccatissimo:r.DurationModifier=b;break;case ArticulationEnum.accent:case ArticulationEnum.strongaccent:r.VolumeModifier=b;break;default:break}}}catch(g){const m="Invalid note articulation.";loglevelExports.debug("addArticulationExpression",m,g);return}}}}addFermata(e,r){var a;let s=ArticulationEnum.fermata;e.attributes().length>0&&e.attribute("type")&&e.attribute("type").value==="inverted"&&(s=ArticulationEnum.invertedfermata);let o=PlacementEnum.Above;((a=e.attribute("placement"))==null?void 0:a.value)==="below"&&(o=PlacementEnum.Below),r.Articulations.push(new Articulation(s,o))}addTechnicalArticulations(e,r,s){var c,u;const o={bend:ArticulationEnum.bend,"down-bow":ArticulationEnum.downbow,"open-string":ArticulationEnum.naturalharmonic,"snap-pizzicato":ArticulationEnum.snappizzicato,stopped:ArticulationEnum.lefthandpizzicato,"up-bow":ArticulationEnum.upbow,harmonic:ArticulationEnum.naturalharmonic};for(const d in o){if(!o.hasOwnProperty(d))continue;const g=o[d],m=e.element(d);if(m){let y;((c=m.attribute("placement"))==null?void 0:c.value)==="above"&&(y=PlacementEnum.Above),((u=m.attribute("placement"))==null?void 0:u.value)==="below"&&(y=PlacementEnum.Below);const b=new Articulation(g,y);r.hasArticulation(b)||r.Articulations.push(b)}}const a=e.elements("fingering");for(const d of a){const g=this.createTechnicalInstruction(d,s);g.type=TechnicalInstructionType.Fingering,s.Fingering||(s.Fingering=g),r.TechnicalInstructions.push(g)}const l=e.element("string");if(l){const d=this.createTechnicalInstruction(l,s);d.type=TechnicalInstructionType.String,s.StringInstruction=d,r.TechnicalInstructions.push(d)}}createTechnicalInstruction(e,r){const s=new TechnicalInstruction;s.sourceNote=r,s.value=e.value;const o=e.attribute("placement");return this.rules.FingeringPositionFromXML&&(s.placement=this.getPlacement(o)),s}getPlacement(e,r=PlacementEnum.NotYetDefined){if(r!==PlacementEnum.NotYetDefined)return r;if(e)switch(e.value){case"above":return PlacementEnum.Above;case"below":return PlacementEnum.Below;case"left":return PlacementEnum.Left;case"right":return PlacementEnum.Right;default:return PlacementEnum.NotYetDefined}else return PlacementEnum.NotYetDefined}addOrnament(e,r){if(e){let s;const o={"delayed-inverted-turn":OrnamentEnum.DelayedInvertedTurn,"delayed-turn":OrnamentEnum.DelayedTurn,"inverted-mordent":OrnamentEnum.InvertedMordent,"inverted-turn":OrnamentEnum.InvertedTurn,mordent:OrnamentEnum.Mordent,"trill-mark":OrnamentEnum.Trill,turn:OrnamentEnum.Turn};for(const a in o){if(!o.hasOwnProperty(a))continue;const l=e.element(a);if(l){s=new OrnamentContainer(o[a]);const c=l.attribute("placement");c&&c.value==="below"&&(s.placement=PlacementEnum.Below)}}if(s){const a=e.elements("accidental-mark");if(a){let l=PlacementEnum.Below,c=AccidentalEnum.NONE;const u=a;for(let d=0,g=u.length;d0&&(this.currentVoiceEntry.GraceVoiceEntriesBefore=this.graceVoiceEntriesTempList,this.graceVoiceEntriesTempList=[]))}finalizeReadingMeasure(){this.graceVoiceEntriesTempList.length>0&&this.currentNormalVoiceEntry!==void 0&&this.currentNormalVoiceEntry.GraceVoiceEntriesAfter.concat(this.graceVoiceEntriesTempList),this.graceVoiceEntriesTempList=[],this.pluginManager.processVoiceMeasureReadPlugins(this.currMeasureVoiceEntries,this.activeKey,this.activeRhythm),this.currMeasureVoiceEntries.length=0,this.openBeams.length>1&&this.handleOpenBeam()}read(e,r,s,o,a,l,c,u,d,g,m,y,b,S,A,E,x,P,T,C,M,B,I){this.currentStaffEntry=c,this.currentMeasure=u;try{this.currentNote=l?this.addRestNote(e.element("rest"),r,o,s,a,b,S,T,e):this.addSingleNote(e,r,o,s,a,m,y,b,S,A,E,x,P,T,M,B,I),this.currentNote.DotsXml=C;const k=e.elements("lyric");this.lyricsReader!==void 0&&k&&(this.lyricsReader.addLyricEntry(k,this.currentVoiceEntry),this.voice.Parent.HasLyrics=!0);let D=!1;const O=e.element("notations");if(O){this.articulationReader&&this.readArticulations(O,this.currentVoiceEntry,this.currentNote);const z=O.elements("slur"),N=O.elements("slide"),Q=O.elements("glissando");this.slurReader!==void 0&&(z.length>0||N.length>0)&&!this.currentNote.ParentVoiceEntry.IsGrace&&(this.slurReader.addSlur(z,this.currentNote),N.length>0&&this.slurReader.addSlur(N,this.currentNote),Q.length>0&&this.slurReader.addSlur(Q,this.currentNote));const _=O.elements("tuplet");_.length>0&&(this.openTupletNumber=this.addTuplet(e,_),D=!0);const U=O.element("arpeggiate");if(U!==void 0){let R;if(this.currentVoiceEntry.Arpeggio)R=this.currentVoiceEntry.Arpeggio;else{let V=!1;for(const te of this.currentStaffEntry.VoiceEntries)if(te.Arpeggio){V=!0,R=te.Arpeggio;break}if(!V){let te=ArpeggioType.ARPEGGIO_DIRECTIONLESS;const W=U.attribute("direction");if(W)switch(W.value){case"up":te=ArpeggioType.ROLL_UP;break;case"down":te=ArpeggioType.ROLL_DOWN;break;default:te=ArpeggioType.ARPEGGIO_DIRECTIONLESS}R=new Arpeggio(this.currentVoiceEntry,te),this.currentVoiceEntry.Arpeggio=R}}R.addNote(this.currentNote)}const G=O.elements("tied");G.length>0&&this.addTie(G,d,g,TieTypes.SIMPLE);const H=O.element("technical");if(H){const R=H.elements("hammer-on");R.length>0&&this.addTie(R,d,g,TieTypes.HAMMERON);const V=H.elements("pull-off");V.length>0&&this.addTie(V,d,g,TieTypes.PULLOFF)}}e.element("time-modification")!==void 0&&!D&&this.handleTimeModificationNode(e)}catch(k){loglevelExports.warn(k);const D=ITextTranslation.translateText("ReaderErrorMessages/NoteError","Ignored erroneous Note.");this.musicSheet.SheetErrors.pushMeasureError(D),this.musicSheet.SheetErrors.pushMeasureError(k)}return this.currentNote}checkForStaffEntryLink(e,r,s,o){const a=new StaffEntryLink(this.currentVoiceEntry);a.LinkStaffEntries.push(s),s.Link=a;const l=this.currentVoiceEntry.Timestamp.clone(),c=o.getVerticalContainerByTimestamp(l);return s=c.StaffEntries[e],s||(s=new SourceStaffEntry(c,r),c.StaffEntries[e]=s),s.VoiceEntries.push(this.currentVoiceEntry),a.LinkStaffEntries.push(s),s.Link=a,s}checkForOpenBeam(){this.openBeams.length>0&&this.currentNote&&this.handleOpenBeam()}checkOpenTies(){const e=this.openTieDict;for(const r in e)if(e.hasOwnProperty(r)){const s=e[r];Fraction$1.plus(s.StartNote.ParentStaffEntry.Timestamp,s.Duration).lt(s.StartNote.SourceMeasure.Duration)&&delete e[r]}}hasVoiceEntry(){return this.currentVoiceEntry!==void 0}readArticulations(e,r,s){const o=e.element("articulations");o&&this.articulationReader.addArticulationExpression(o,r);const a=e.element("fermata");a&&this.articulationReader.addFermata(a,r);const l=e.element("technical");l&&this.articulationReader.addTechnicalArticulations(l,r,s);const c=e.element("ornaments");c&&this.articulationReader.addOrnament(c,r)}addSingleNote(e,r,s,o,a,l,c,u,d,g,m,y,b,S,A,E,x){var de;let P=0,T,C=AccidentalEnum.NONE,M=NoteEnum.C,B=NoteEnum.C,I=0,k=0,D,O,z;const N=e.elements();for(let oe=0,Y=N.length;oe{const Y=oe.getAttribute("begin"),Z=oe.getAttribute("end");te.push({begin:Y?Y/1e3:0,end:Z?Z/1e3:0})}),this.addNoteInfo(U,s,u,d,a,B,k,S,S,te),U.TypeLength=o,U.IsGraceNote=g,U.StemDirectionXml=m,U.TremoloInfo=y,U.PlaybackInstrumentId=D,(O!==void 0&&O!=="normal"||z!==void 0)&&(U.Notehead=new Notehead(U,O,z)),U.NoteheadColorXml=S,U.NoteheadColor=S,U.PlaybackInstrumentId=D,U.TremoloType=A,U.glissandoType=E,U.slideType=x,this.currentVoiceEntry.addNote(U),m===StemDirectionType.None&&(b="#00000000"),this.currentVoiceEntry.StemDirectionXml=m,b&&(this.currentVoiceEntry.StemColorXml=b,this.currentVoiceEntry.StemColor=b,U.StemColorXml=b),e.elements("beam")&&!l&&this.createBeam(e,U),U}addRestNote(e,r,s,o,a,l,c,u,d){var C;const g=Fraction$1.createFromFraction(r),m=e.element("display-step"),y=e.element("display-octave");let b,S,A;m&&y&&(b=NoteEnum[m.value.toUpperCase()],S=parseInt(y.value,10),A=new Pitch(b,S,AccidentalEnum.NONE,void 0,!0));const E=new Note$1(this.currentVoiceEntry,this.currentStaffEntry,g,A,this.currentMeasure,!0);let x=[];const P=e.element("times")||d.element("times"),T=(C=P==null?void 0:P.elem)==null?void 0:C.getElementsByTagName("time");return T&&T.length&&Array.from(T).forEach(M=>{const B=M.getAttribute("begin"),I=M.getAttribute("end");x.push({begin:B?B/1e3:0,end:I?I/1e3:0})}),this.addNoteInfo(E,s,l,c,a,b,S,u,u,x),E.TypeLength=o,this.currentVoiceEntry.Notes.push(E),this.openBeams.length>0&&this.openBeams.last().ExtendedNoteList.push(E),E}addNoteInfo(e,r,s,o,a,l,c,u,d,g){e.NoteTypeXml=r,e.PrintObject=s,e.IsCueNote=o,e.NormalNotes=a,e.displayStepUnpitched=l,e.displayOctaveUnpitched=c,e.NoteheadColorXml=u,e.NoteheadColor=u,e.noteTimeInfo=g}createBeam(e,r){var s;try{const o=e.element("beam");let a;if(o!==void 0&&o.hasAttributes&&(a=o.attribute("number")),a){let l=parseInt(a.value,10);const c=e.elements("beam"),u=c[0].value;c&&(u==="begin"?(l===((s=this.openBeams.last())==null?void 0:s.BeamNumber)?(this.beamNumberOffset++,l+=this.beamNumberOffset):this.openBeams.last()&&this.handleOpenBeam(),this.openBeams.push(new Beam(l,this.beamNumberOffset))):l+=this.beamNumberOffset);let d=!1;if(!(l>0&&l<=this.openBeams.length)||!this.openBeams[l-1]){loglevelExports.debug("[OSMD] invalid beamnumber");return}for(let g=0,m=this.openBeams[l-1].Notes.length;g1){let a=e.element("time-modification");a&&(a=a.element("actual-notes"));const l=r;for(let c=0,u=l.length;c1&&this.openTupletNumber--),this.tupletDict[b]=A;const x=[];x.push(this.currentNote),A.Notes.push(x),A.Fractions.push(this.getTupletNoteDurationFromType(e)),this.currentNote.NoteTuplet=A,this.openTupletNumber=b}else if(y.value==="stop"){let b=1;d.attribute("number")&&(b=parseInt(d.attribute("number").value,10));const S=this.tupletDict[b];if(S){const A=d.attribute("placement");A&&(A.value==="below"?S.tupletLabelNumberPlacement=PlacementEnum.Below:S.tupletLabelNumberPlacement=PlacementEnum.Above,S.PlacementFromXml=!0);const E=[];if(E.push(this.currentNote),S.Notes.push(E),!S.PlacementFromXml){let x=!1;for(const P of S.Notes){for(const T of P)if(!T.isRest()){T.StemDirectionXml===StemDirectionType.Down?S.tupletLabelNumberPlacement=PlacementEnum.Below:S.tupletLabelNumberPlacement=PlacementEnum.Above,x=!0;break}if(x)break}}S.Fractions.push(this.getTupletNoteDurationFromType(e)),this.currentNote.NoteTuplet=S,delete this.tupletDict[b],Object.keys(this.tupletDict).length===0?this.openTupletNumber=0:Object.keys(this.tupletDict).length>1&&this.openTupletNumber--}}}}}else if(r[0]){const a=r[0];if(a.hasAttributes){const l=a.attribute("type").value;let c=1;a.attribute("number")&&(c=parseInt(a.attribute("number").value,10));const u=isNaN(c),d=this.readShowNumberNoneGiven(a),g=a.attribute("bracket");if(g&&g.value==="yes"?(s=!0,o=!0):g&&g.value==="no"&&(o=!1),l==="start"){let m=0,y=e.element("time-modification");if(y&&(y=y.element("actual-notes")),y&&(m=parseInt(y.value,10),isNaN(m))){const E=ITextTranslation.translateText("ReaderErrorMessages/TupletNoteDurationError","Invalid tuplet note duration.");throw this.musicSheet.SheetErrors.pushMeasureError(E),new MusicSheetReadingException(E)}u&&(this.openTupletNumber++,c=this.openTupletNumber);let b=this.tupletDict[c];b||(b=this.tupletDict[c]=new Tuplet(m,s),b.BracketedXmlValue=o,b.ShowNumberNoneGivenInXml=d,b.tupletLabelNumberPlacement=PlacementEnum.Above);const S=a.attribute("placement");S&&(S.value==="below"?b.tupletLabelNumberPlacement=PlacementEnum.Below:b.tupletLabelNumberPlacement=PlacementEnum.Above,b.PlacementFromXml=!0);const A=[];A.push(this.currentNote),b.Notes.push(A),b.Fractions.push(this.getTupletNoteDurationFromType(e)),this.currentNote.NoteTuplet=b,this.openTupletNumber=c}else if(l==="stop"){u&&(c=this.openTupletNumber);const m=this.tupletDict[this.openTupletNumber];if(m){const y=a.attribute("placement");y&&(y.value==="below"?m.tupletLabelNumberPlacement=PlacementEnum.Below:m.tupletLabelNumberPlacement=PlacementEnum.Above,m.PlacementFromXml=!0);const b=[];if(b.push(this.currentNote),m.Notes.push(b),!m.PlacementFromXml){let S=!1;for(const A of m.Notes){for(const E of A)if(!E.isRest()){E.StemDirectionXml===StemDirectionType.Down?m.tupletLabelNumberPlacement=PlacementEnum.Below:m.tupletLabelNumberPlacement=PlacementEnum.Above,S=!0;break}if(S)break}}m.Fractions.push(this.getTupletNoteDurationFromType(e)),this.currentNote.NoteTuplet=m,Object.keys(this.tupletDict).length===0?this.openTupletNumber=0:Object.keys(this.tupletDict).length>1&&this.openTupletNumber--,delete this.tupletDict[c]}}}}return this.openTupletNumber}readShowNumberNoneGiven(e){const r=e.attribute("show-number");return!!(r!=null&&r.value&&r.value==="none")}handleTimeModificationNode(e){if(this.tupletDict[this.openTupletNumber])try{const r=this.tupletDict[this.openTupletNumber],s=CollectionUtil.last(r.Notes),o=s[0].ParentVoiceEntry;let a;o.Timestamp.Equals(this.currentVoiceEntry.Timestamp)?a=s:(a=[],r.Notes.push(a),r.Fractions.push(this.getTupletNoteDurationFromType(e))),a.push(this.currentNote),this.currentNote.NoteTuplet=r}catch(r){const s=ITextTranslation.translateText("ReaderErrorMessages/TupletNumberError","Invalid tuplet number.");throw this.musicSheet.SheetErrors.pushMeasureError(s),r}else if(this.currentVoiceEntry.Notes.length>0){const r=this.currentVoiceEntry.Notes[0];if(r.NoteTuplet){const s=r.NoteTuplet;CollectionUtil.last(s.Notes).push(this.currentNote),this.currentNote.NoteTuplet=s}}}addTie(e,r,s,o){if(e){if(e.length===1){const a=e[0];if(a!==void 0&&a.attributes()){const l=this.getTieDirection(a),c=a.attribute("type").value;try{if(c==="start"){const u=this.findCurrentNoteInTieDict(this.currentNote);u<0&&delete this.openTieDict[u];const d=this.getNextAvailableNumberForTie(),g=new Tie(this.currentNote,o);this.openTieDict[d]=g,g.TieNumber=d,g.TieDirection=l}else if(c==="stop"){const u=this.findCurrentNoteInTieDict(this.currentNote),d=this.openTieDict[u];d&&(d.AddNote(this.currentNote),delete this.openTieDict[u])}}catch(u){const d=ITextTranslation.translateText("ReaderErrorMessages/TieError","Error while reading tie.");this.musicSheet.SheetErrors.pushMeasureError(d)}}}else if(e.length===2){const a=this.findCurrentNoteInTieDict(this.currentNote);if(a>=0){const l=this.openTieDict[a];l.AddNote(this.currentNote);for(const c of e)if(c.attribute("type").value==="start"){const d=this.getTieDirection(c);l.NoteIndexToTieDirection[l.Notes.length-1]=d}}}}}getTieDirection(e){let r=PlacementEnum.NotYetDefined;const s=e.attribute("placement");s&&(s.value==="above"?r=PlacementEnum.Above:s.value==="below"&&(r=PlacementEnum.Below));const o=e.attribute("orientation");return o&&(o.value==="over"?r=PlacementEnum.Above:o.value==="under"&&(r=PlacementEnum.Below)),r}getNextAvailableNumberForTie(){const e=Object.keys(this.openTieDict);if(e.length===0)return 1;e.sort((r,s)=>+r-+s);for(let r=0;r0?o.RealValue>0?(d=Fraction$1.multiply(Fraction$1.minus(o,a),d),this.directionTimestamp=Fraction$1.plus(d,o)):this.directionTimestamp=Fraction$1.createFromFraction(d):this.offsetDivisions<0&&(o.RealValue>0?(d=Fraction$1.multiply(Fraction$1.minus(o,a),d),this.directionTimestamp=Fraction$1.minus(o,d)):this.directionTimestamp=Fraction$1.createFromFraction(d));let g;const m=e.element("direction-type");let y;if(m&&(y=m.element("wedge"),y)){const S=y.attribute("default-y");S&&(g=this.readPosition(S))}this.WedgeYPosXml=g;const b=e.attribute("placement");if(b)try{const S=b.value;S==="below"?this.placement=PlacementEnum.Below:S==="above"&&(this.placement=PlacementEnum.Above)}catch(S){const A=ITextTranslation.translateText("ReaderErrorMessages/ExpressionPlacementError","Invalid expression placement -> set to default.");loglevelExports.debug("ExpressionReader.readExpressionParameters",A,S),this.musicSheet.SheetErrors.pushMeasureError(A),this.placement=PlacementEnum.Below}if(this.placement===PlacementEnum.NotYetDefined)try{if(m){const S=m.element("dynamics");if(S){const x=S.attribute("default-y");x&&this.readExpressionPlacement(x,"read dynamics y pos")}if(y){const x=y.attribute("default-y");x&&this.readExpressionPlacement(x,"read wedge y pos")}const A=m.element("words");if(A){const x=A.attribute("default-y");x&&this.readExpressionPlacement(x,"read words y pos")}const E=m.element("rehearsal");if(E){const x=E.attribute("default-y");x&&this.readExpressionPlacement(x,"read rehearsal pos")}}}catch(S){const A=ITextTranslation.translateText("ReaderErrorMessages/ExpressionPlacementError","Invalid expression placement. Set to default.");loglevelExports.debug("ExpressionReader.readExpressionParameters",A,S),this.musicSheet.SheetErrors.pushMeasureError(A),this.placement=PlacementEnum.Below}this.placement===PlacementEnum.NotYetDefined&&(r.Staves.length>1?this.placement=PlacementEnum.Below:r.HasLyrics?this.placement=PlacementEnum.Above:this.placement=PlacementEnum.Below)}read(e,r,s,o=void 0,a=0,l){let c=!1,u=!1;const d=e.element("sound");if(d){const y=d.attribute("tempo"),b=d.attribute("dynamics");if(y){const S=y.value.match(/^(\d+)(\.\d+)?$/);(S==null?void 0:S.length)>0?this.soundTempo=Math.round(Number.parseFloat(y.value)):(loglevelExports.info("invalid xml tempo: "+y.value),this.soundTempo=100),r.TempoInBPM=this.soundTempo,this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),this.musicSheet.HasBPMInfo=!0,c=!0}if(b){const S=b.value.match(/\d+/);this.soundDynamic=S!==void 0?parseInt(S[0],10):100,u=!0}}const g=e.element("direction-type");if(!g)return;let m=g.element("metronome");if(m){r.metronomeNoteIndex=a;const y=m.element("beat-unit"),b=m.element("beat-unit-dot")!==void 0,S=m.element("per-minute");if(y!==void 0&&S){m.hasAttributes&&m.attribute("default-x")!==void 0&&(this.directionTimestamp=Fraction$1.createFromFraction(s));const E=parseFloat(S.value);!l&&this.createNewTempoExpressionIfNeeded(r);const x=new InstantaneousTempoExpression(void 0,this.placement,this.staffNumber,E,this.currentMultiTempoExpression,!0);x.parentMeasure=r,this.soundTempo=E,r.TempoInBPM=this.soundTempo*(b?1.5:1),this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),r.MeasureNumberXML===1&&this.musicSheet.SourceMeasures.length===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),this.musicSheet.HasBPMInfo=!0,x.dotted=b,x.beatUnit=y.value,this.currentMultiTempoExpression.addExpression(x,""),this.currentMultiTempoExpression.CombinedExpressionsText="test"}return}if(m=g.element("dynamics"),m){const y=e.element("notations")!==void 0;this.interpretInstantaneousDynamics(m,r,s,y);return}if(m=g.element("words"),m){const y=g.elements("words");let b="";for(const S of y)b+=S.value;if(m.value=b,c||isSpeedKeyword(m.value)||isSpeedHiddenKeyword(m.value)){this.createNewTempoExpressionIfNeeded(r),this.currentMultiTempoExpression.CombinedExpressionsText=m.value,(isSpeedKeyword(m.value)||isSpeedHiddenKeyword(m.value))&&(m.value=void 0);const S=new InstantaneousTempoExpression(m.value,this.placement,this.staffNumber,this.soundTempo,this.currentMultiTempoExpression);this.currentMultiTempoExpression.addExpression(S,"")}else u||this.interpretWords(m,r,s);return}if(m=g.element("wedge"),m){this.interpretWedge(m,r,o,r.MeasureNumber);return}if(m=g.element("rehearsal"),m){this.interpretRehearsalMark(m,r,s,r.MeasureNumber);return}}closeOpenExpressions(e,r){for(const s of this.openContinuousDynamicExpressions)this.createNewMultiExpressionIfNeeded(e,s.NumberXml,r),this.closeOpenContinuousDynamic(s,e,r);this.openContinuousTempoExpression&&this.closeOpenContinuousTempo(Fraction$1.plus(e.AbsoluteTimestamp,r))}addOctaveShift(e,r,s){var c;let o=1;const a=e.element("staff");if(a)try{o=parseInt(a.value,10)}catch(u){const d=ITextTranslation.translateText("ReaderErrorMessages/OctaveShiftStaffError","Invalid octave shift staff number. Set to default");this.musicSheet.SheetErrors.pushMeasureError(d),o=1,loglevelExports.debug("ExpressionReader.addOctaveShift",d,u)}const l=e.element("direction-type");if(l){const u=l.element("octave-shift"),d=this.readPlacement(e);if(u!==void 0&&u.hasAttributes)try{const g=this.readNumber(u);if(u.attribute("size")){const m=parseInt(u.attribute("size").value,10);let y=0;m===8?y=1:m===15&&(y=2);let b=(c=u.attribute("type"))==null?void 0:c.value;if(b||(d===PlacementEnum.Above?b="down":d===PlacementEnum.Below&&(b="up")),b==="up"||b==="down"){const S=new OctaveShift(b,y);S.StaffNumber=o,this.getMultiExpression=this.createNewMultiExpressionIfNeeded(r,g),this.getMultiExpression.OctaveShiftStart=S,S.ParentStartMultiExpression=this.getMultiExpression,this.openOctaveShift=S}else if(b==="stop"){if(this.openOctaveShift){this.getMultiExpression=this.createNewMultiExpressionIfNeeded(r,this.openOctaveShift.numberXml,s);const S=this.getMultiExpression;S.OctaveShiftEnd=this.openOctaveShift,this.openOctaveShift.ParentEndMultiExpression=this.getMultiExpression,this.openOctaveShift=void 0}}else b||loglevelExports.debug("octave-shift missing type in xml")}}catch(g){const m=ITextTranslation.translateText("ReaderErrorMessages/OctaveShiftError","Error while reading octave shift.");this.musicSheet.SheetErrors.pushMeasureError(m),loglevelExports.debug("ExpressionReader.addOctaveShift",m,g)}}}addPedalMarking(e,r,s){var a,l,c;const o=e.element("direction-type");if(o){const u=o.element("pedal");if(u!==void 0&&u.hasAttributes){let d=!1,g=!1;try{switch(((a=u.attribute("line"))==null?void 0:a.value)==="yes"?g=!0:((l=u.attribute("line"))==null?void 0:l.value)==="no"?(g=!1,d=!0):((c=u.attribute("sign"))==null?void 0:c.value)==="yes"?d=!0:(d=!1,g=!0),u.attribute("type").value){case"start":this.openPedal&&this.openPedal.IsLine&&this.endOpenPedal(r),this.createNewMultiExpressionIfNeeded(r,-1),this.openPedal=new Pedal(g,d),this.getMultiExpression.PedalStart=this.openPedal,this.openPedal.ParentStartMultiExpression=this.getMultiExpression;break;case"stop":this.openPedal&&this.endOpenPedal(r,s);break;case"change":this.openPedal&&this.openPedal.IsLine&&(this.openPedal.ChangeEnd=!0,this.createNewMultiExpressionIfNeeded(r,-1),this.getMultiExpression.PedalEnd=this.openPedal,this.openPedal.ParentEndMultiExpression=this.getMultiExpression,this.createNewMultiExpressionIfNeeded(r,-1),this.openPedal=new Pedal(g,d),this.openPedal.ChangeBegin=!0,this.getMultiExpression.PedalStart=this.openPedal,this.openPedal.ParentStartMultiExpression=this.getMultiExpression);break;case"continue":break;default:break}}catch(m){const y=ITextTranslation.translateText("ReaderErrorMessages/PedalError","Error while reading pedal.");this.musicSheet.SheetErrors.pushMeasureError(y),loglevelExports.debug("ExpressionReader.addPedalMarking",y,m)}}}}endOpenPedal(e,r){this.createNewMultiExpressionIfNeeded(e,-1,r),this.getMultiExpression.PedalEnd=this.openPedal,this.openPedal.ParentEndMultiExpression=this.getMultiExpression,this.openPedal=void 0}addWavyLine(e,r,s,o){if(e&&e.hasAttributes)try{switch(e.attribute("type").value){case"start":this.createNewMultiExpressionIfNeeded(r,-1),this.openWavyLine=new WavyLine(this.placement),this.getMultiExpression.WavyLineStart=this.openWavyLine,this.openWavyLine.ParentStartMultiExpression=this.getMultiExpression;break;case"stop":this.openWavyLine&&(this.createNewMultiExpressionIfNeeded(r,-1,s),this.getMultiExpression.WavyLineEnd=this.openWavyLine,this.openWavyLine.ParentEndMultiExpression=this.getMultiExpression,this.openWavyLine=void 0);break;case"continue":break;default:break}}catch(a){const l=ITextTranslation.translateText("ReaderErrorMessages/WavyLineError","Error while reading wavy-line.");this.musicSheet.SheetErrors.pushMeasureError(l),loglevelExports.debug("ExpressionReader.addWavyLine",l,a)}}initialize(){this.placement=PlacementEnum.NotYetDefined,this.soundTempo=0,this.soundDynamic=0,this.offsetDivisions=0}readPlacement(e){var s;const r=(s=e.attribute("placement"))==null?void 0:s.value;return r==="above"?PlacementEnum.Above:r==="below"?PlacementEnum.Below:PlacementEnum.NotYetDefined}readExpressionPlacement(e,r){try{const s=this.readPosition(e);s<0?this.placement=PlacementEnum.Below:s>0&&(this.placement=PlacementEnum.Above)}catch(s){loglevelExports.debug("ExpressionReader.readExpressionParameters",r,s)}}readPosition(e){try{const r=parseInt(e.value,10);return r<0?this.placement=PlacementEnum.Below:r>0&&(this.placement=PlacementEnum.Above),r}catch(r){loglevelExports.debug("ExpressionReader.readExpressionParameters",r)}}interpretInstantaneousDynamics(e,r,s,o){var a,l,c;if(e.hasElements){e.hasAttributes&&e.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(s));const u=this.readNumber(e);let d=(a=e.elements()[0])==null?void 0:a.name;if(d==="other-dynamics"&&(d=e.elements()[0].value),d){if((l=r.Rules)!=null&&l.IgnoreRepeatedDynamics){let m;try{m=DynamicEnum[d]}catch(y){const b=ITextTranslation.translateText("ReaderErrorMessages/DynamicError","Error while reading dynamic.");this.musicSheet.SheetErrors.pushMeasureError(b);return}if(((c=this.activeInstantaneousDynamic)==null?void 0:c.DynEnum)===m)return}o?this.createNewMultiExpressionIfNeeded(r,u,Fraction$1.createFromFraction(s)):this.createNewMultiExpressionIfNeeded(r,u);const g=new InstantaneousDynamicExpression(d,this.soundDynamic,this.placement,this.staffNumber,r);g.InMeasureTimestamp=s.clone(),this.getMultiExpression.addExpression(g,""),this.initialize(),this.activeInstantaneousDynamic?this.activeInstantaneousDynamic.DynEnum=g.DynEnum:this.activeInstantaneousDynamic=new InstantaneousDynamicExpression(d,0,PlacementEnum.NotYetDefined,1,r)}}}interpretWords(e,r,s){var b;const o=e.value;if(r.Rules.IgnoreBracketsWords&&(/^\(\s*\)$/.test(o)||/^\[\s*\]$/.test(o)))return;let a;const l=e.attribute("font-style");let c,u,d;l&&(c=l.value,c==="italic"&&(a=FontStyles.Italic));const g=e.attribute("font-weight");g&&(u=g.value,u==="bold"&&(a=FontStyles.Bold,c==="italic"&&(a=FontStyles.BoldItalic)));const m=e.attribute("color");m&&(d=m.value);let y;if(r.Rules.PlaceWordsInsideStafflineFromXml){const S=(b=e.attribute("default-y"))==null?void 0:b.value;(S==null?void 0:S.length)>0&&(y=Number.parseInt(S,10))}if(o.length>0){if(e.hasAttributes&&e.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(s)),this.checkIfWordsNodeIsRepetitionInstruction(o))return;this.fillMultiOrTempoExpression(o,r,s,a,d,y),this.initialize()}}readNumber(e){var o;let r=1;const s=(o=e.attribute("number"))==null?void 0:o.value;return s&&(r=Number.parseInt(s,10)),r}interpretWedge(e,r,s,o){var c,u;e!==void 0&&e.hasAttributes&&e.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(s));const a=this.readNumber(e),l=(u=(c=e.attribute("type"))==null?void 0:c.value)==null?void 0:u.toLowerCase();this.lastWedge&&this.lastWedge.parentMeasure.MeasureNumberXML===r.MeasureNumberXML&&this.lastWedge.StaffNumber===this.staffNumber&&this.placement===this.lastWedge.Placement&&this.WedgeYPosXml!==void 0&&this.lastWedge.YPosXml===this.WedgeYPosXml&&this.lastWedge.StartMultiExpression.Timestamp.Equals(this.directionTimestamp)&&this.lastWedge.DynamicType===ContDynamicEnum[l]||(l==="stop"?this.createNewMultiExpressionIfNeeded(r,a,s):this.createNewMultiExpressionIfNeeded(r,a),this.addWedge(e,r,s),this.initialize())}interpretRehearsalMark(e,r,s,o){r.rehearsalExpression=new RehearsalExpression(e.value,this.placement)}createNewMultiExpressionIfNeeded(e,r,s=void 0){s||(s=this.directionTimestamp);let o=this.getMultiExpression;return(!o||o&&(o.SourceMeasureParent!==e||o.numberXml!==r||o.SourceMeasureParent===e&&o.Timestamp!==s))&&(this.getMultiExpression=o=new MultiExpression(e,Fraction$1.createFromFraction(s)),e.StaffLinkedExpressions[this.globalStaffIndex].push(o)),o}createNewTempoExpressionIfNeeded(e){(!this.currentMultiTempoExpression||this.currentMultiTempoExpression.SourceMeasureParent!==e||this.currentMultiTempoExpression.Timestamp!==this.directionTimestamp)&&(this.currentMultiTempoExpression=new MultiTempoExpression(e,Fraction$1.createFromFraction(this.directionTimestamp)),e.TempoExpressions.push(this.currentMultiTempoExpression))}addWedge(e,r,s){if(e!==void 0&&e.hasAttributes){const o=this.readNumber(e),a=e.attribute("type").value.toLowerCase();try{if(a==="crescendo"||a==="diminuendo"){const l=new ContinuousDynamicExpression(ContDynamicEnum[a],this.placement,this.staffNumber,r,this.activeInstantaneousDynamic,o);this.lastWedge=l,this.lastWedge.YPosXml=this.WedgeYPosXml,this.openContinuousDynamicExpressions.push(l);let c=this.getMultiExpression;c||(c=this.createNewMultiExpressionIfNeeded(r,o)),c.StartingContinuousDynamic=l,l.StartMultiExpression=c,this.activeInstantaneousDynamic!==void 0&&this.activeInstantaneousDynamic.StaffNumber===l.StaffNumber&&(this.activeInstantaneousDynamic=void 0)}else if(a==="stop")for(const l of this.openContinuousDynamicExpressions)l.NumberXml===o&&this.closeOpenContinuousDynamic(l,r,s)}catch(l){const c="ReaderErrorMessages/WedgeError, Error while reading Crescendo / Diminuendo.";this.musicSheet.SheetErrors.pushMeasureError(c),loglevelExports.debug("ExpressionReader.addWedge",c,l)}}}fillMultiOrTempoExpression(e,r,s,o,a,l=void 0){if(!e)return;const c=e.trim();this.createExpressionFromString("",c,r,s,e,o,a,l)}createExpressionFromString(e,r,s,o,a,l,c,u=void 0){if(InstantaneousTempoExpression.isInputStringInstantaneousTempo(r)||ContinuousTempoExpression.isInputStringContinuousTempo(r)){if(s.TempoExpressions.length>0)for(let y=0,b=s.TempoExpressions.length;y0)for(let y=0,b=s.TempoExpressions.length;y0&&!this.hasDigit(r)&&this.globalStaffIndex>0){if(S.EntriesList[0].label.indexOf(r)>=0)return!1;break}}let g=TextAlignmentEnum.CenterBottom;this.musicSheet.Rules.CompactMode&&(g=TextAlignmentEnum.LeftBottom);const m=new UnknownExpression(r,this.placement,g,this.staffNumber);return m.fontStyle=l,m.ColorXML=c,m.defaultYXml=u,d.addExpression(m,e),!1}closeOpenContinuousDynamic(e,r,s){if(!e)return;const o=e.NumberXml;e.EndMultiExpression=this.createNewMultiExpressionIfNeeded(r,o,s),e.StartMultiExpression.EndingContinuousDynamic=e,this.openContinuousDynamicExpressions=this.openContinuousDynamicExpressions.filter(a=>a!==e)}closeOpenContinuousTempo(e){this.openContinuousTempoExpression.AbsoluteEndTimestamp=e,this.openContinuousTempoExpression=void 0}checkIfWordsNodeIsRepetitionInstruction(e){return e=e.trim().toLowerCase(),e==="coda"||e==="tocoda"||e==="to coda"||e==="fine"||e==="d.c."||e==="dacapo"||e==="da capo"||e==="d.s."||e==="dalsegno"||e==="dal segno"||e==="d.c. al fine"||e==="d.s. al fine"||e==="d.c. al coda"||e==="d.s. al coda"}hasDigit(e){return/\d/.test(e)}}class SlurReader{constructor(e){this.openSlurDict={},this.musicSheet=e}addSlur(e,r,s){try{if(e){for(const o of e)if(o.attributes().length>0){const a=o.attribute("type").value;let l=1;try{o.attribute("number")&&(l=parseInt(o.attribute("number").value,10))}catch(g){loglevelExports.debug("VoiceGenerator.addSlur number: ",g)}let c=PlacementEnum.NotYetDefined;const u=o.attribute("placement");u&&u.value&&(u.value==="above"?c=PlacementEnum.Above:u.value==="below"&&(c=PlacementEnum.Below));const d=o.attribute("orientation");if(d&&d.value&&(d.value==="over"?c=PlacementEnum.Above:d.value==="under"&&(c=PlacementEnum.Below)),a==="start"){let g=new Slur;this.openSlurDict[l]=g,g.StartNote=r,g.idx=s,g.PlacementXml=c}else if(a==="stop"){const g=this.openSlurDict[l];if(g){const m=o.name;if(m==="slide"||m==="glissando"){const y=g.StartNote,b=new Glissando(y);b.AddNote(r),b.EndNote=r,r.NoteGlissando=b,delete this.openSlurDict[l]}else g.idx=s,g.EndNote=r,r.isDuplicateSlur(g)||(r.NoteSlurs.push(g),g.StartNote.NoteSlurs.push(g)),delete this.openSlurDict[l]}}}}}catch(o){const a=ITextTranslation.translateText("ReaderErrorMessages/SlurError","Error while reading slur.");this.musicSheet.SheetErrors.pushMeasureError(a)}}}class InstrumentReader{constructor(e,r,s,o){this.voiceGeneratorsDict={},this.staffMainVoiceGeneratorDict={},this.divisions=0,this.currentClefNumber=1,this.currentXmlMeasureIndex=0,this.activeKeyHasBeenInitialized=!1,this.abstractInstructions=[],this.soundTempos=new Map,this.xmlNotes=[],this.repetitionInstructionReader=r,this.xmlMeasureList=s,this.musicSheet=o.GetMusicSheet,this.instrument=o,this.activeClefs=new Array(o.Staves.length),this.activeClefsHaveBeenInitialized=new Array(o.Staves.length);for(let a=0;a=this.xmlMeasureList.length)return!1;this.currentMeasure=e,this.followingMultirestMeasures=Math.max(this.followingMultirestMeasures-1,0),this.inSourceMeasureInstrumentIndex=this.musicSheet.getGlobalStaffIndexOfFirstStaff(this.instrument),this.repetitionInstructionReader&&this.repetitionInstructionReader.prepareReadingMeasure(e,this.currentXmlMeasureIndex);let o=new Fraction$1(0,1),a=new Fraction$1(0,1),l=!1;this.maxTieNoteFraction=new Fraction$1(0,1);let c=!1;const u=[];let d=!1;try{const T=this.xmlMeasureList[this.currentXmlMeasureIndex],C=T.elements();if(e.Rules.UseXMLMeasureNumbers&&!Number.isInteger(e.MeasureNumberXML)){const B=parseInt((g=T.attribute("number"))==null?void 0:g.value,10);Number.isInteger(B)&&(e.MeasureNumberXML=B)}let M;for(let B=0;B0&&(M=C[B-1]),I.name==="print"){const k=I.attribute("new-system");(k==null?void 0:k.value)==="yes"&&(e.printNewSystemXml=!0);const D=I.attribute("new-page");(D==null?void 0:D.value)==="yes"&&(e.printNewPageXml=!0)}else if(I.name==="attributes"){const k=I.element("divisions");if(k&&(this.divisions=parseInt(k.value,10),isNaN(this.divisions))){const z=ITextTranslation.translateText("ReaderErrorMessages/DivisionError","Invalid divisions value at Instrument: ");if(loglevelExports.debug("InstrumentReader.readNextXmlMeasure",z),this.divisions=this.readDivisionsFromNotes(),this.divisions>0)this.musicSheet.SheetErrors.push(z+this.instrument.Name);else throw l=!0,new MusicSheetReadingException(z+this.instrument.Name)}if(!I.element("divisions")&&this.divisions===0&&this.currentXmlMeasureIndex===0){const z=ITextTranslation.translateText("ReaderErrorMessages/DivisionError","Invalid divisions value at Instrument: ");if(this.divisions=this.readDivisionsFromNotes(),this.divisions>0)this.musicSheet.SheetErrors.push(z+this.instrument.Name);else throw l=!0,new MusicSheetReadingException(z+this.instrument.Name)}this.addAbstractInstruction(I,s,M,o.clone()),o.Equals(new Fraction$1(0,1))&&this.isAttributesNodeAtBeginOfMeasure(this.xmlMeasureList[this.currentXmlMeasureIndex],I)&&this.saveAbstractInstructionList(this.instrument.Staves.length,!0),this.isAttributesNodeAtEndOfMeasure(this.xmlMeasureList[this.currentXmlMeasureIndex],I,o)&&this.saveClefInstructionAtEndOfMeasure();const D=I.elements("staff-details");for(const z of D){const N=z.element("staff-lines");if(N){let Q=1;const _=z.attribute("number");_&&(Q=parseInt(_.value,10)),this.instrument.Staves[Q-1].StafflineCount=parseInt(N.value,10)}}const O=I.element("measure-style");if(O){const z=O.element("multiple-rest");if(z){const N=z.value;let Q=0;try{Q=Number.parseInt(N,10),e.multipleRestMeasures!==void 0&&Q!==e.multipleRestMeasures?e.multipleRestMeasures=0:(e.multipleRestMeasures=Q,this.currentMultirestStartMeasure=e,this.followingMultirestMeasures=Q+1)}catch(_){console.log("multirest parse error: "+_)}}}}else if(I.name==="note"){let k=!0;((m=I.attribute("print-object"))==null?void 0:m.value)==="no"&&(k=!1);const D=this.getNoteStaff(I);this.currentStaff=this.instrument.Staves[D-1];const O=I.element("chord")!==void 0;if(I.element("voice")){const F=parseInt(I.element("voice").value,10);this.currentVoiceGenerator=this.getOrCreateVoiceGenerator(F,D-1)}else(!O||!this.currentVoiceGenerator)&&(this.currentVoiceGenerator=this.getOrCreateVoiceGenerator(1,D-1));let z=0,N=new Fraction$1(0,1),Q=2,_,U=!1;if(I.element("duration")){if(z=parseInt(I.element("duration").value,10),isNaN(z)){const F=ITextTranslation.translateText("ReaderErrorMessages/NoteDurationError","Invalid Note Duration.");this.musicSheet.SheetErrors.pushMeasureError(F),loglevelExports.debug("InstrumentReader.readNextXmlMeasure",F);continue}else if(N=new Fraction$1(z,4*this.divisions),z===0?N=this.getNoteDurationFromTypeNode(I):_=this.getNoteDurationFromTypeNode(I),I.element("time-modification")){N=this.getNoteDurationForTuplet(I);const F=I.element("time-modification");F!=null&&F.element("normal-notes")&&(Q=parseInt(F.element("normal-notes").value,10)),U=!0}}const G=I.element("rest")!==void 0,H=I.combinedElement("notations"),R=I.element("grace")!==void 0||z===0||O&&c;let V=!1,te=!1;if(R){const F=I.element("duration"),se=I.element("grace");se&&se.attributes()&&se.attribute("slash")&&se.attribute("slash").value==="yes"&&(V=!0),F||(N=this.getNoteDurationFromTypeNode(I)),H&&H.element("slur")&&(te=!0)}const[W,$]=this.getCueNoteAndNoteTypeXml(I),[de,oe,Y]=this.getStemDirectionAndColors(I);let Z,ue=0,ae="",pe="",Se="";if(H){const F=H.element("ornaments");if(F){Z=this.getTremoloInfo(F),this.getWavyLines(F,I,o,a);const ie=F.element("tremolo");if(ie){const he=ie.attribute("type");if(ae=he.value,he){const le=parseInt(ie.value,10);le>0&&(ue=le),(he.value==="start"||he.value==="stop")&&(N=new Fraction$1(parseInt(I.element("duration").value,10),4*this.divisions))}}const fe=F.elements("wavy-line");if(fe!==void 0)for(const he of fe){const le=this.expressionReaders[this.readExpressionStaffNumber(I)-1];le&&(le.readExpressionParameters(he,this.instrument,this.divisions,o,a,this.currentMeasure.MeasureNumber,!1),le.addWavyLine(he,this.currentMeasure,o,a))}}H.elements("glissando").find(ie=>ie.attribute("type").value==="start")&&(pe="start"),H.elements("slide").find(ie=>ie.attribute("type").value==="start")&&(Se="start")}const ge=O?a.clone():o.clone();this.currentStaffEntry=this.currentMeasure.findOrCreateStaffEntry(ge,this.inSourceMeasureInstrumentIndex+D-1,this.currentStaff).staffEntry,(!this.currentVoiceGenerator.hasVoiceEntry()||!O&&!R&&!c||R&&!c||R&&!O||!R&&c)&&this.currentVoiceGenerator.createVoiceEntry(ge,this.currentStaffEntry,this.activeKey,this.ActiveRhythm,R,V,te),!R&&!O&&(a=o.clone(),o.Add(N)),O&&this.currentStaffEntry!==void 0&&this.currentStaffEntry.ParentStaff!==this.currentStaff&&(this.currentStaffEntry=this.currentVoiceGenerator.checkForStaffEntryLink(this.inSourceMeasureInstrumentIndex+D-1,this.currentStaff,this.currentStaffEntry,this.currentMeasure));const ee=this.currentStaffEntry!==void 0&&this.currentStaffEntry.Timestamp!==void 0&&this.currentStaffEntry.Timestamp.Equals(new Fraction$1(0,1))&&!this.currentStaffEntry.hasNotes();this.saveAbstractInstructionList(this.instrument.Staves.length,ee),this.activeRhythm,!U&&!R&&(N=new Fraction$1(z,4*this.divisions));const ne=I.elements("dot").length;if(this.currentVoiceGenerator.read(I,N,_,$,Q,G,this.currentStaffEntry,this.currentMeasure,r,this.maxTieNoteFraction,O,s,k,W,R,de,Z,oe,Y,ne,ae,pe,Se),H!==void 0&&H.element("dynamics")){const F=this.expressionReaders[this.readExpressionStaffNumber(I)-1];F&&(F.readExpressionParameters(I,this.instrument,this.divisions,o,a,this.currentMeasure.MeasureNumber,!1),F.read(I,this.currentMeasure,a,void 0,u.length))}c=R}else if(I.name==="forward"){const k=parseInt(I.element("duration").value,10);o.Add(new Fraction$1(k,4*this.divisions))}else if(I.name==="backup"){const k=parseInt(I.element("duration").value,10);o.Sub(new Fraction$1(k,4*this.divisions)),o.IsNegative()&&(o=new Fraction$1(0,1)),a.Sub(new Fraction$1(k,4*this.divisions)),a.IsNegative()&&(a=new Fraction$1(0,1))}else if(I.name==="direction"){const k=I.elements("direction-type"),D=I.element("direction-type");let O=Math.min(1,o.RealValue);this.activeRhythm!==void 0&&this.activeRhythm.Rhythm&&(O/=this.activeRhythm.Rhythm.RealValue);let z=!1;if(this.repetitionInstructionReader&&(z=this.repetitionInstructionReader.handleRepetitionInstructionsFromWordsOrSymbols(D,O)),!z){let N=this.expressionReaders[0];const Q=this.readExpressionStaffNumber(I)-1;if(QG==null?void 0:G.toLocaleLowerCase()).includes((y=_.value)==null?void 0:y.toLocaleLowerCase())&&(this.currentGradualChangeMeasure=this.currentMeasure,this.currentMeasure.speedInfo={startWord:(b=_.value)==null?void 0:b.toLocaleLowerCase(),startXmlNoteIndex:u.length,endXmlNoteIndex:0,resetXmlNoteIndex:0,startMeasureListIndex:this.currentXmlMeasureIndex,endMeasureListIndex:0,resetMeasureListIndex:0},this.xmlNotes=[]),_.value.startsWith(GRADIENT_SPEED_CLOSE_TAG)&&((S=this.currentGradualChangeMeasure)!=null&&S.speedInfo)&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:this.xmlNotes.length,endMeasureListIndex:this.currentXmlMeasureIndex}),((A=_.value)==null?void 0:A.toLocaleLowerCase())==="a tempo".toLocaleLowerCase()&&((E=this.currentGradualChangeMeasure)!=null&&E.speedInfo)){const{endXmlNoteIndex:G,resetXmlNoteIndex:H,endMeasureListIndex:R}=this.currentGradualChangeMeasure.speedInfo;H===0&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:G||this.xmlNotes.length,endMeasureListIndex:R||this.currentXmlMeasureIndex,resetXmlNoteIndex:this.xmlNotes.length,resetMeasureListIndex:this.currentXmlMeasureIndex}),this.xmlNotes=[]}_.value&&_.value.toLocaleLowerCase()==="hiddenspeed"?d=!0:d=!1}if(k.find(U=>U.element("metronome"))&&((x=this.currentGradualChangeMeasure)!=null&&x.speedInfo)){const{endXmlNoteIndex:U,resetXmlNoteIndex:G,endMeasureListIndex:H}=this.currentGradualChangeMeasure.speedInfo;G===0&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:U||this.xmlNotes.length,endMeasureListIndex:H||this.currentXmlMeasureIndex,resetXmlNoteIndex:this.xmlNotes.length,resetMeasureListIndex:this.currentXmlMeasureIndex}),this.xmlNotes=[]}N.readExpressionParameters(I,this.instrument,this.divisions,o,a,this.currentMeasure.MeasureNumber,!1),N.read(I,this.currentMeasure,o,a.clone(),u.length,d)}}}else if(I.name==="barline"){this.repetitionInstructionReader&&this.repetitionInstructionReader.handleLineRepetitionInstructions(I)&&(this.currentMeasure.HasEndLine=!0);const k=I.attribute("location");if(B===C.length-1||k&&k.value==="right"){const O=(P=I.element("bar-style"))==null?void 0:P.value;O&&(this.currentMeasure.endingBarStyleXml=O,this.currentMeasure.endingBarStyleEnum=SystemLinesEnumHelper.xmlBarlineStyleToSystemLinesEnum(O))}}else if(I.name==="sound")try{if(I.attribute("tempo")){const k=parseFloat(I.attribute("tempo").value);I.element("offset")&&(this.soundTempos.has(this.currentXmlMeasureIndex)||this.soundTempos.set(this.currentXmlMeasureIndex,[]),this.soundTempos.get(this.currentXmlMeasureIndex).push(k)),this.currentXmlMeasureIndex===0&&(this.musicSheet.DefaultStartTempoInBpm=k,this.musicSheet.HasBPMInfo=!0)}}catch(k){loglevelExports.debug("InstrumentReader.readTempoInstruction",k)}else if(I.name==="harmony"){const k=this.getNoteStaff(I);this.currentStaff=this.instrument.Staves[k-1];const D=o.clone();this.currentStaffEntry=this.currentMeasure.findOrCreateStaffEntry(D,this.inSourceMeasureInstrumentIndex+k-1,this.currentStaff).staffEntry,this.currentStaffEntry.ChordContainers.push(ChordSymbolReader.readChordSymbol(I,this.musicSheet,this.activeKey))}}for(const B in this.voiceGeneratorsDict)this.voiceGeneratorsDict.hasOwnProperty(B)&&this.voiceGeneratorsDict[B].checkForOpenBeam();if(this.currentXmlMeasureIndex===this.xmlMeasureList.length-1){for(let B=0;B{this.voiceGeneratorsDict[B].finalizeReadingMeasure()}),this.musicSheet.HasBPMInfo?e.TempoInBPM===0&&this.previousMeasure&&(this.currentMeasure.TempoInBPM=this.previousMeasure.TempoInBPM):this.currentMeasure.TempoInBPM=120}catch(T){if(l)throw new MusicSheetReadingException(T.Message);const C=ITextTranslation.translateText("ReaderErrorMessages/MeasureError","Error while reading Measure.");this.musicSheet.SheetErrors.pushMeasureError(C),loglevelExports.debug("InstrumentReader.readNextXmlMeasure",C,T)}return this.previousMeasure=this.currentMeasure,this.currentXmlMeasureIndex+=1,!0}getStemDirectionAndColors(e){let r=StemDirectionType.Undefined,s;const o=e.element("stem");if(o){r=this.getStemDirectionType(o);const c=o.attribute("color");c&&(s=this.parseXmlColor(c.value))}let a=this.getNoteHeadColorXml(e);const l=this.getNoteColorXml(e);return l&&!a&&(a=l),l&&!s&&(s=l),[r,s,a]}parseXmlColor(e){if(e)return e.length===7?e:e.length===9?"#"+e.substr(3):void 0}doCalculationsAfterDurationHasBeenSet(){for(const e in this.voiceGeneratorsDict)this.voiceGeneratorsDict.hasOwnProperty(e)&&this.voiceGeneratorsDict[e].checkOpenTies()}getOrCreateVoiceGenerator(e,r){const s=this.instrument.Staves[r];let o=this.voiceGeneratorsDict[e];if(o)s.Voices.indexOf(o.GetVoice)===-1&&s.Voices.push(o.GetVoice);else{const a=this.staffMainVoiceGeneratorDict[r];a?(o=new VoiceGenerator(this.pluginManager,s,e,this.slurReader,a.GetVoice),s.Voices.push(o.GetVoice),this.voiceGeneratorsDict[e]=o):(o=new VoiceGenerator(this.pluginManager,s,e,this.slurReader),s.Voices.push(o.GetVoice),this.voiceGeneratorsDict[e]=o,this.staffMainVoiceGeneratorDict[r]=o)}return o}createExpressionGenerators(e){this.expressionReaders=new Array(e);for(let r=0;r0?r=this.musicSheet.SourceMeasures[0]:r=this.currentMeasure;const s=new ClefInstruction(ClefEnum.G,0,2);let o;r.FirstInstructionsStaffEntries[e]?(o=r.FirstInstructionsStaffEntries[e],o.removeFirstInstructionOfTypeClefInstruction()):(o=new SourceStaffEntry(void 0,void 0),r.FirstInstructionsStaffEntries[e]=o),s.Parent=o,o.Instructions.splice(0,0,s)}createDefaultKeyInstruction(){let e;this.musicSheet.SourceMeasures.length>0?e=this.musicSheet.SourceMeasures[0]:e=this.currentMeasure;const r=new KeyInstruction(void 0,0,KeyEnum.major);for(let s=this.inSourceMeasureInstrumentIndex;s0&&s[o-1].name==="backup")return!0;let a=-1;for(let l=0;l0||a<0}isAttributesNodeAtEndOfMeasure(e,r,s){var c;if(s.Equals((c=this.ActiveRhythm)==null?void 0:c.Rhythm))return!0;const o=e.elements().slice();let a=0;for(let u=0;ul}getNoteDurationFromTypeNode(e){const r=e.element("type");if(r){const s=r.value;return NoteTypeHandler.getNoteDurationFromType(s)}return new Fraction$1(0,4*this.divisions)}addAbstractInstruction(e,r,s,o){if(e.element("divisions")&&e.elements().length===1)return;const a=e.element("transpose");if(a){const u=a.element("chromatic");u&&(this.instrument.PlaybackTranspose=parseInt(u.value,10))}const l=e.elements("clef");let c;if(l.length>0)for(let u=0,d=l.length;uthis.currentClefNumber&&(b=this.currentClefNumber),this.currentClefNumber=b+1}catch(T){c=ITextTranslation.translateText("ReaderErrorMessages/ClefError","Invalid clef. Using default."),this.musicSheet.SheetErrors.pushMeasureError(c),b=1,this.currentClefNumber=b+1}const P=new ClefInstruction(m,S,y);this.abstractInstructions.push([b,P,o])}if(e.element("key")!==void 0&&this.instrument.MidiInstrumentId!==MidiInstrument.Percussion){let u=0;const d=e.element("key").element("fifths");if(d)try{u=parseInt(d.value,10)}catch(b){c=ITextTranslation.translateText("ReaderErrorMessages/KeyError","Invalid key. Set to default."),this.musicSheet.SheetErrors.pushMeasureError(c),u=0,loglevelExports.debug("InstrumentReader.addAbstractInstruction",c,b)}let g=KeyEnum.none,m=e.element("key");if(m&&(m=m.element("mode")),m)try{g=KeyEnum[m.value]}catch(b){c=ITextTranslation.translateText("ReaderErrorMessages/KeyError","Invalid key/mode. Set to default."),this.musicSheet.SheetErrors.pushMeasureError(c),g=KeyEnum.major,loglevelExports.debug("InstrumentReader.addAbstractInstruction",c,b)}const y=new KeyInstruction(void 0,u,g);this.abstractInstructions.push([1,y,o])}if(e.element("time")){const u=e.element("time");let d=RhythmSymbolEnum.NONE,g=!0;if(u!==void 0&&u.hasAttributes){const x=u.attribute("symbol");x&&(x.value==="common"?d=RhythmSymbolEnum.COMMON:x.value==="cut"&&(d=RhythmSymbolEnum.CUT));const P=u.attribute("print-object");P&&P.value==="no"&&(g=!1)}let m=0,y=0;const b=u&&u.element("senza-misura")!==void 0,S=e.elements("time"),A=[],E=[];for(let x=0,P=S.length;x0&&E!==void 0&&A.length===E.length){const P=A.length,T=new Array(P);let C=0;for(let M=0;M=0;s--){const o=this.abstractInstructions[s],a=o[0],l=o[1],c=o[2];if(l instanceof ClefInstruction){const u=l;if(this.currentXmlMeasureIndex===0||a<=this.activeClefs.length&&u!==this.activeClefs[a-1])if(!r&&this.currentStaffEntry!==void 0&&!this.currentStaffEntry.hasNotes()&&a-1===this.instrument.Staves.indexOf(this.currentStaffEntry.ParentStaff)){const d=u,g=this.currentStaffEntry;if(c&&Math.abs(c.RealValue-g.Timestamp.RealValue)>.01)continue;d.Parent=g,g.removeFirstInstructionOfTypeClefInstruction(),g.Instructions.push(d),this.activeClefs[a-1]=u,this.abstractInstructions.splice(s,1)}else if(r){if(c.RealValue!==0)continue;let d;if(this.currentMeasure){const g=u,m=this.inSourceMeasureInstrumentIndex+a-1,y=this.currentMeasure.FirstInstructionsStaffEntries[m];if(this.currentXmlMeasureIndex===0)if(!y)d=new SourceStaffEntry(void 0,void 0),this.currentMeasure.FirstInstructionsStaffEntries[m]=d,g.Parent=d,d.Instructions.push(g),this.activeClefsHaveBeenInitialized[a-1]=!0;else if(this.currentMeasure.FirstInstructionsStaffEntries[m]!==void 0&&!(y.Instructions[0]instanceof ClefInstruction))d=y,g.Parent=d,d.removeFirstInstructionOfTypeClefInstruction(),d.Instructions.splice(0,0,g),this.activeClefsHaveBeenInitialized[a-1]=!0;else{const b=new SourceStaffEntry(void 0,void 0);this.currentMeasure.LastInstructionsStaffEntries[m]=b,g.Parent=b,b.Instructions.push(g)}else if(this.activeClefsHaveBeenInitialized[a-1]){let b=this.previousMeasure;this.followingMultirestMeasures>0&&this.currentMeasure.Rules.RenderMultipleRestMeasures&&(b=this.currentMultirestStartMeasure);const S=new SourceStaffEntry(void 0,void 0);b.LastInstructionsStaffEntries[m]=S,g.Parent=S,S.Instructions.push(g)}else{const b=this.musicSheet.SourceMeasures[0];b.FirstInstructionsStaffEntries[m]?(d=b.FirstInstructionsStaffEntries[m],d.removeFirstInstructionOfTypeClefInstruction()):d=new SourceStaffEntry(void 0,void 0),g.Parent=d,d.Instructions.splice(0,0,g),this.activeClefsHaveBeenInitialized[a-1]=!0}this.activeClefs[a-1]=u,this.abstractInstructions.splice(s,1)}}else{let d;const g=this.activeRhythm.Rhythm;g.RealValue>0&&c.RealValue/g.RealValue>.9&&g.RealValue!==c.RealValue&&(this.currentMeasure.LastInstructionsStaffEntries[a-1]||(this.currentMeasure.LastInstructionsStaffEntries[a-1]=new SourceStaffEntry(void 0,this.instrument.Staves[a-1])),d=this.currentMeasure.LastInstructionsStaffEntries[a-1]),d&&(u.Parent=d,d.Instructions.push(u),this.activeClefs[a-1]=u,this.abstractInstructions.splice(s,1))}else a<=this.activeClefs.length&&u===this.activeClefs[a-1]&&this.abstractInstructions.splice(s,1)}if(l instanceof KeyInstruction){const u=l;if(!this.activeKey||this.activeKey.Key!==u.Key){this.activeKey=u,this.abstractInstructions.splice(s,1);let d;if(this.activeKeyHasBeenInitialized?d=this.currentMeasure:(this.activeKeyHasBeenInitialized=!0,this.currentXmlMeasureIndex>0?d=this.musicSheet.SourceMeasures[0]:d=this.currentMeasure),d)for(let g=this.inSourceMeasureInstrumentIndex;g=0;e--){const r=this.abstractInstructions[e][0],s=this.abstractInstructions[e][1];if(s instanceof ClefInstruction){const o=s;if(!this.activeClefs[r-1]||o.ClefType!==this.activeClefs[r-1].ClefType||o.ClefType===this.activeClefs[r-1].ClefType&&o.Line!==this.activeClefs[r-1].Line){const a=new SourceStaffEntry(void 0,void 0);this.currentMeasure.LastInstructionsStaffEntries[this.inSourceMeasureInstrumentIndex+r-1]=a;const l=o;l.Parent=a,a.Instructions.push(l),this.activeClefs[r-1]=o,this.abstractInstructions.splice(e,1)}}}}getNoteDurationForTuplet(e){let r=new Fraction$1(0,1);const s=this.getNoteDurationFromTypeNode(e);if(e.element("time-modification")){const o=e.element("time-modification");if(o&&o.element("actual-notes")!==void 0&&o.element("normal-notes")){const a=o.element("actual-notes"),l=o.element("normal-notes");if(a!==void 0&&l){const c=parseInt(a.value,10),u=parseInt(l.value,10);r=new Fraction$1(u*s.Numerator,c*s.Denominator)}}}return r}readExpressionStaffNumber(e){let r=1;if(e.element("staff")){const s=e.element("staff");if(s)try{r=parseInt(s.value,10)}catch(o){const a=ITextTranslation.translateText("ReaderErrorMessages/ExpressionStaffError","Invalid Expression staff number. Set to default.");this.musicSheet.SheetErrors.pushMeasureError(a),r=1,loglevelExports.debug("InstrumentReader.readExpressionStaffNumber",a,o)}}return r}readDivisionsFromNotes(){let e=0,r=this.currentXmlMeasureIndex,s=!1;for(;!s;){const o=this.xmlMeasureList[r].elements();for(let a=0,l=o.length;a0){s=!0;break}}if(e===0&&(r++,r===this.xmlMeasureList.length)){const a=ITextTranslation.translateText("ReaderErrorMEssages/DivisionsError","Invalid divisions value at Instrument: ");throw new MusicSheetReadingException(a+this.instrument.Name)}}return e}getCueNoteAndNoteTypeXml(e){const r=e.element("cue");let s=!1;r&&(s=!0);const o=e.element("type");let a=NoteType.UNDEFINED;if(o){const l=o.attribute("size");(l==null?void 0:l.value)==="cue"&&(s=!0),a=NoteTypeHandler.StringToNoteType(o.value)}return[s,a]}getStemDirectionType(e){switch(e.value){case"down":return StemDirectionType.Down;case"up":return StemDirectionType.Up;case"double":return StemDirectionType.Double;case"none":return StemDirectionType.None;default:return StemDirectionType.Undefined}}getNoteHeadColorXml(e){const r=e.element("notehead");if(r){const s=r.attribute("color");if(s)return this.parseXmlColor(s.value)}return null}getNoteColorXml(e){const r=e.attribute("color");return r?this.parseXmlColor(r.value):null}getTremoloInfo(e){let r,s;const o=e.element("tremolo");if(o){const a=o.attribute("type");if(a){if(a.value==="single"){const l=parseInt(o.value,10);l>0&&(r=l)}else r=0;a.value==="unmeasured"&&(s=!0)}}return{tremoloStrokes:r,tremoloUnmeasured:s}}getWavyLines(e,r,s,o){const a=e.elements("wavy-line");if(a)for(const l of a){const c=this.expressionReaders[this.readExpressionStaffNumber(r)-1];c&&(c.readExpressionParameters(l,this.instrument,this.divisions,s,o,this.currentMeasure.MeasureNumber,!1),c.addWavyLine(l,this.currentMeasure,s,o))}}getNoteStaff(e){let r=1;return this.instrument.Staves.length>1&&e.element("staff")&&(r=parseInt(e.element("staff").value,10),isNaN(r)&&(loglevelExports.debug("InstrumentReader.readNextXmlMeasure.get staff number"),r=1)),r}}class InstrumentNames{}InstrumentNames.MidiInstrument={banjo:MidiInstrument.Banjo,blockfloete:MidiInstrument.Recorder,brass:MidiInstrument.Trombone,bratsche:MidiInstrument.Viola,cello:MidiInstrument.Cello,clarinet:MidiInstrument.Clarinet,contrabass:MidiInstrument.Contrabass,"steel drum":MidiInstrument.Steel_Drums,drums:MidiInstrument.Percussion,flute:MidiInstrument.Flute,floete:MidiInstrument.Flute,frenchhorn:MidiInstrument.French_Horn,gitarre:MidiInstrument.Acoustic_Guitar_nylon,guitar:MidiInstrument.Acoustic_Guitar_nylon,harfe:MidiInstrument.Orchestral_Harp,harp:MidiInstrument.Orchestral_Harp,klarinette:MidiInstrument.Clarinet,klavier:MidiInstrument.Acoustic_Grand_Piano,kontrabass:MidiInstrument.Contrabass,oboe:MidiInstrument.Oboe,organ:MidiInstrument.Church_Organ,orgel:MidiInstrument.Church_Organ,orgue:MidiInstrument.Church_Organ,percussion:MidiInstrument.Percussion,piano:MidiInstrument.Acoustic_Grand_Piano,piccolo:MidiInstrument.Piccolo,posaune:MidiInstrument.Trombone,recorder:MidiInstrument.Recorder,sax:MidiInstrument.Tenor_Sax,schlagwerk:MidiInstrument.Percussion,schlagzeug:MidiInstrument.Percussion,steeldrum:MidiInstrument.Steel_Drums,streicher:MidiInstrument.String_Ensemble_1,strings:MidiInstrument.String_Ensemble_1,tpt:MidiInstrument.Trumpet,trombone:MidiInstrument.Trombone,trompete:MidiInstrument.Trumpet,trumpet:MidiInstrument.Trumpet,tuba:MidiInstrument.Tuba,unnamed:MidiInstrument.Acoustic_Grand_Piano,viola:MidiInstrument.Viola,violin:MidiInstrument.Violin,"violon-c":MidiInstrument.Cello,"violon.":MidiInstrument.Violin,voice:MidiInstrument.Synth_Voice,woodblock:MidiInstrument.Woodblock,alt:MidiInstrument.Synth_Voice,alto:MidiInstrument.Synth_Voice,bariton:MidiInstrument.Synth_Voice,baritone:MidiInstrument.Synth_Voice,bass:MidiInstrument.Synth_Voice,sopran:MidiInstrument.Synth_Voice,tenor:MidiInstrument.Synth_Voice};InstrumentNames.MidiInstrumentSounds={"brass.alphorn":MidiInstrument.French_Horn,"brass.alto-horn":MidiInstrument.French_Horn,"brass.baritone-horn":MidiInstrument.French_Horn,"brass.bugle":MidiInstrument.Trumpet,"brass.bugle.alto":MidiInstrument.Trumpet,"brass.bugle.baritone":MidiInstrument.Trombone,"brass.bugle.contrabass":MidiInstrument.Trombone,"brass.bugle.euphonium-bugle":MidiInstrument.French_Horn,"brass.bugle.mellophone-bugle":MidiInstrument.French_Horn,"brass.bugle.soprano":MidiInstrument.Trumpet,"brass.cimbasso":MidiInstrument.Trombone,"brass.conch-shell":MidiInstrument.Flute,"brass.cornet":MidiInstrument.Trumpet,"brass.cornet.soprano":MidiInstrument.Trumpet,"brass.cornett":MidiInstrument.Trumpet,"brass.cornett.tenor":MidiInstrument.Trumpet,"brass.cornettino":MidiInstrument.Trumpet,"brass.didgeridoo":MidiInstrument.Flute,"brass.euphonium":MidiInstrument.French_Horn,"brass.fiscorn":MidiInstrument.French_Horn,"brass.flugelhorn":MidiInstrument.French_Horn,"brass.french-horn":MidiInstrument.French_Horn,"brass.group":MidiInstrument.Brass_Section,"brass.group.synth":MidiInstrument.Synth_Brass_1,"brass.helicon":MidiInstrument.French_Horn,"brass.horagai":MidiInstrument.Trumpet,"brass.kuhlohorn":MidiInstrument.French_Horn,"brass.mellophone":MidiInstrument.French_Horn,"brass.natural-horn":MidiInstrument.French_Horn,"brass.ophicleide":MidiInstrument.French_Horn,"brass.posthorn":MidiInstrument.French_Horn,"brass.saxhorn":MidiInstrument.French_Horn,"brass.sousaphone":MidiInstrument.Tuba,"brass.trombone":MidiInstrument.Trombone,"brass.trombone.alto":MidiInstrument.Trombone,"brass.trombone.bass":MidiInstrument.Trombone,"brass.trombone.contrabass":MidiInstrument.Trombone,"brass.trombone.tenor":MidiInstrument.Trombone,"brass.trumpet":MidiInstrument.Trumpet,"brass.trumpet.baroque":MidiInstrument.Trumpet,"brass.trumpet.bass":MidiInstrument.Trombone,"brass.trumpet.bflat":MidiInstrument.Trumpet,"brass.trumpet.c":MidiInstrument.Trumpet,"brass.trumpet.d":MidiInstrument.Trumpet,"brass.trumpet.piccolo":MidiInstrument.Trumpet,"brass.trumpet.pocket":MidiInstrument.Trumpet,"brass.trumpet.slide":MidiInstrument.Trumpet,"brass.trumpet.tenor":MidiInstrument.Trumpet,"brass.tuba":MidiInstrument.Tuba,"brass.tuba.bass":MidiInstrument.Tuba,"brass.tuba.subcontrabass":MidiInstrument.Tuba,"brass.vienna-horn":MidiInstrument.French_Horn,"brass.wagner-tuba":MidiInstrument.French_Horn,"drum.ashiko":MidiInstrument.Shakuhachi,"drum.bass-drum":MidiInstrument.Percussion,"drum.bongo":MidiInstrument.Percussion,"drum.bougarabou":MidiInstrument.Percussion,"drum.buffalo-drum":MidiInstrument.Percussion,"drum.cajon":MidiInstrument.Percussion,"drum.chenda":MidiInstrument.Percussion,"drum.chu-daiko":MidiInstrument.Percussion,"drum.conga":MidiInstrument.Percussion,"drum.cuica":MidiInstrument.Percussion,"drum.dabakan":MidiInstrument.Percussion,"drum.daff":MidiInstrument.Percussion,"drum.dafli":MidiInstrument.Percussion,"drum.daibyosi":MidiInstrument.Percussion,"drum.damroo":MidiInstrument.Percussion,"drum.darabuka":MidiInstrument.Percussion,"drum.def":MidiInstrument.Percussion,"drum.dhol":MidiInstrument.Percussion,"drum.dholak":MidiInstrument.Percussion,"drum.djembe":MidiInstrument.Percussion,"drum.doira":MidiInstrument.Percussion,"drum.dondo":MidiInstrument.Percussion,"drum.doun-doun-ba":MidiInstrument.Percussion,"drum.duff":MidiInstrument.Percussion,"drum.dumbek":MidiInstrument.Percussion,"drum.fontomfrom":MidiInstrument.Percussion,"drum.frame-drum":MidiInstrument.Percussion,"drum.frame-drum.arabian":MidiInstrument.Percussion,"drum.geduk":MidiInstrument.Percussion,"drum.ghatam":MidiInstrument.Percussion,"drum.gome":MidiInstrument.Percussion,"drum.group":MidiInstrument.Percussion,"drum.group.chinese":MidiInstrument.Percussion,"drum.group.ewe":MidiInstrument.Percussion,"drum.group.indian":MidiInstrument.Percussion,"drum.group.set":MidiInstrument.Percussion,"drum.hand-drum":MidiInstrument.Percussion,"drum.hira-daiko":MidiInstrument.Percussion,"drum.ibo":MidiInstrument.Percussion,"drum.igihumurizo":MidiInstrument.Percussion,"drum.inyahura":MidiInstrument.Percussion,"drum.ishakwe":MidiInstrument.Percussion,"drum.jang-gu":MidiInstrument.Percussion,"drum.kagan":MidiInstrument.Percussion,"drum.kakko":MidiInstrument.Percussion,"drum.kanjira":MidiInstrument.Percussion,"drum.kendhang":MidiInstrument.Percussion,"drum.kendhang.ageng":MidiInstrument.Percussion,"drum.kendhang.ciblon":MidiInstrument.Percussion,"drum.kenkeni":MidiInstrument.Percussion,"drum.khol":MidiInstrument.Percussion,"drum.kick-drum":MidiInstrument.Percussion,"drum.kidi":MidiInstrument.Percussion,"drum.ko-daiko":MidiInstrument.Percussion,"drum.kpanlogo":MidiInstrument.Percussion,"drum.kudum":MidiInstrument.Percussion,"drum.lambeg":MidiInstrument.Percussion,"drum.lion-drum":MidiInstrument.Percussion,"drum.log-drum":MidiInstrument.Percussion,"drum.log-drum.african":MidiInstrument.Percussion,"drum.log-drum.native":MidiInstrument.Percussion,"drum.log-drum.nigerian":MidiInstrument.Percussion,"drum.madal":MidiInstrument.Percussion,"drum.maddale":MidiInstrument.Percussion,"drum.mridangam":MidiInstrument.Percussion,"drum.naal":MidiInstrument.Percussion,"drum.nagado-daiko":MidiInstrument.Percussion,"drum.nagara":MidiInstrument.Percussion,"drum.naqara":MidiInstrument.Percussion,"drum.o-daiko":MidiInstrument.Percussion,"drum.okawa":MidiInstrument.Percussion,"drum.okedo-daiko":MidiInstrument.Percussion,"drum.pahu-hula":MidiInstrument.Percussion,"drum.pakhawaj":MidiInstrument.Percussion,"drum.pandeiro":MidiInstrument.Percussion,"drum.pandero":MidiInstrument.Percussion,"drum.powwow":MidiInstrument.Percussion,"drum.pueblo":MidiInstrument.Percussion,"drum.repinique":MidiInstrument.Percussion,"drum.riq":MidiInstrument.Percussion,"drum.rototom":MidiInstrument.Percussion,"drum.sabar":MidiInstrument.Percussion,"drum.sakara":MidiInstrument.Percussion,"drum.sampho":MidiInstrument.Percussion,"drum.sangban":MidiInstrument.Percussion,"drum.shime-daiko":MidiInstrument.Percussion,"drum.slit-drum":MidiInstrument.Percussion,"drum.slit-drum.krin":MidiInstrument.Percussion,"drum.snare-drum":MidiInstrument.Percussion,"drum.snare-drum.electric":MidiInstrument.Synth_Drum,"drum.sogo":MidiInstrument.Percussion,"drum.surdo":MidiInstrument.Percussion,"drum.tabla":MidiInstrument.Percussion,"drum.tabla.bayan":MidiInstrument.Percussion,"drum.tabla.dayan":MidiInstrument.Percussion,"drum.tabor":MidiInstrument.Percussion,"drum.taiko":MidiInstrument.Taiko_Drum,"drum.talking":MidiInstrument.Percussion,"drum.tama":MidiInstrument.Percussion,"drum.tamborim":MidiInstrument.Percussion,"drum.tamborita":MidiInstrument.Percussion,"drum.tambourine":MidiInstrument.Percussion,"drum.tamte":MidiInstrument.Percussion,"drum.tangku":MidiInstrument.Percussion,"drum.tan-tan":MidiInstrument.Percussion,"drum.taphon":MidiInstrument.Percussion,"drum.tar":MidiInstrument.Percussion,"drum.tasha":MidiInstrument.Percussion,"drum.tenor-drum":MidiInstrument.Percussion,"drum.teponaxtli":MidiInstrument.Percussion,"drum.thavil":MidiInstrument.Percussion,"drum.the-box":MidiInstrument.Percussion,"drum.timbale":MidiInstrument.Percussion,"drum.timpani":MidiInstrument.Timpani,"drum.tinaja":MidiInstrument.Percussion,"drum.toere":MidiInstrument.Percussion,"drum.tombak":MidiInstrument.Percussion,"drum.tom-tom":MidiInstrument.Melodic_Tom,"drum.tom-tom.synth":MidiInstrument.Melodic_Tom,"drum.tsuzumi":MidiInstrument.Percussion,"drum.tumbak":MidiInstrument.Percussion,"drum.uchiwa-daiko":MidiInstrument.Percussion,"drum.udaku":MidiInstrument.Percussion,"drum.udu":MidiInstrument.Percussion,"drum.zarb":MidiInstrument.Percussion,"effect.applause":MidiInstrument.Applause,"effect.gunshot":MidiInstrument.Gunshot,"effect.helicopter":MidiInstrument.Helicopter,"effect.telephone-ring":MidiInstrument.Telephone_Ring,"keyboard.accordion":MidiInstrument.Accordion,"keyboard.bandoneon":MidiInstrument.Accordion,"keyboard.celesta":MidiInstrument.Celesta,"keyboard.clavichord":MidiInstrument.Harpsichord,"keyboard.clavichord.synth":MidiInstrument.Harpsichord,"keyboard.concertina":MidiInstrument.Accordion,"keyboard.fortepiano":MidiInstrument.Acoustic_Grand_Piano,"keyboard.harmonium":MidiInstrument.Drawbar_Organ,"keyboard.harpsichord":MidiInstrument.Harpsichord,"keyboard.ondes-martenot":MidiInstrument.Pad_3_polysynth,"keyboard.organ":MidiInstrument.Church_Organ,"keyboard.organ.drawbar":MidiInstrument.Percussive_Organ,"keyboard.organ.percussive":MidiInstrument.Rock_Organ,"keyboard.organ.pipe":MidiInstrument.Church_Organ,"keyboard.organ.reed":MidiInstrument.Church_Organ,"keyboard.organ.rotary":MidiInstrument.Rock_Organ,"keyboard.piano":MidiInstrument.Acoustic_Grand_Piano,"keyboard.piano.electric":MidiInstrument.Electric_Grand_Piano,"keyboard.piano.grand":MidiInstrument.Acoustic_Grand_Piano,"keyboard.piano.honky-tonk":MidiInstrument.Honky_tonk_Piano,"keyboard.piano.prepared":MidiInstrument.Acoustic_Grand_Piano,"keyboard.piano.toy":MidiInstrument.Honky_tonk_Piano,"keyboard.piano.upright":MidiInstrument.Acoustic_Grand_Piano,"keyboard.virginal":MidiInstrument.Acoustic_Grand_Piano,"metal.adodo":MidiInstrument.Xylophone,"metal.anvil":MidiInstrument.Xylophone,"metal.babendil":MidiInstrument.Xylophone,"metal.bells.agogo":MidiInstrument.Agogo,"metal.bells.almglocken":MidiInstrument.Tubular_Bells,"metal.bells.bell-plate":MidiInstrument.Tubular_Bells,"metal.bells.bell-tree":MidiInstrument.Tubular_Bells,"metal.bells.carillon":MidiInstrument.Tubular_Bells,"metal.bells.chimes":MidiInstrument.Tinkle_Bell,"metal.bells.chimta":MidiInstrument.Tubular_Bells,"metal.bells.chippli":MidiInstrument.Tubular_Bells,"metal.bells.church":MidiInstrument.Tubular_Bells,"metal.bells.cowbell":MidiInstrument.Percussion,"metal.bells.dawuro":MidiInstrument.Percussion,"metal.bells.gankokwe":MidiInstrument.Percussion,"metal.bells.ghungroo":MidiInstrument.Percussion,"metal.bells.hatheli":MidiInstrument.Percussion,"metal.bells.jingle-bell":MidiInstrument.Percussion,"metal.bells.khartal":MidiInstrument.Percussion,"metal.bells.mark-tree":MidiInstrument.Percussion,"metal.bells.sistrum":MidiInstrument.Percussion,"metal.bells.sleigh-bells":MidiInstrument.Percussion,"metal.bells.temple":MidiInstrument.Percussion,"metal.bells.tibetan":MidiInstrument.Percussion,"metal.bells.tinklebell":MidiInstrument.Percussion,"metal.bells.trychel":MidiInstrument.Percussion,"metal.bells.wind-chimes":MidiInstrument.Percussion,"metal.bells.zills":MidiInstrument.Percussion,"metal.berimbau":MidiInstrument.Flute,"metal.brake-drums":MidiInstrument.Percussion,"metal.crotales":MidiInstrument.Percussion,"metal.cymbal.bo":MidiInstrument.Percussion,"metal.cymbal.ceng-ceng":MidiInstrument.Percussion,"metal.cymbal.chabara":MidiInstrument.Percussion,"metal.cymbal.chinese":MidiInstrument.Percussion,"metal.cymbal.ching":MidiInstrument.Percussion,"metal.cymbal.clash":MidiInstrument.Percussion,"metal.cymbal.crash":MidiInstrument.Percussion,"metal.cymbal.finger":MidiInstrument.Percussion,"metal.cymbal.hand":MidiInstrument.Percussion,"metal.cymbal.kesi":MidiInstrument.Percussion,"metal.cymbal.manjeera":MidiInstrument.Percussion,"metal.cymbal.reverse":MidiInstrument.Percussion,"metal.cymbal.ride":MidiInstrument.Percussion,"metal.cymbal.sizzle":MidiInstrument.Percussion,"metal.cymbal.splash":MidiInstrument.Percussion,"metal.cymbal.suspended":MidiInstrument.Percussion,"metal.cymbal.tebyoshi":MidiInstrument.Percussion,"metal.cymbal.tibetan":MidiInstrument.Percussion,"metal.cymbal.tingsha":MidiInstrument.Percussion,"metal.flexatone":MidiInstrument.Percussion,"metal.gong":MidiInstrument.Percussion,"metal.gong.ageng":MidiInstrument.Percussion,"metal.gong.agung":MidiInstrument.Percussion,"metal.gong.chanchiki":MidiInstrument.Percussion,"metal.gong.chinese":MidiInstrument.Percussion,"metal.gong.gandingan":MidiInstrument.Percussion,"metal.gong.kempul":MidiInstrument.Percussion,"metal.gong.kempyang":MidiInstrument.Percussion,"metal.gong.ketuk":MidiInstrument.Percussion,"metal.gong.kkwenggwari":MidiInstrument.Percussion,"metal.gong.luo":MidiInstrument.Percussion,"metal.gong.singing":MidiInstrument.Percussion,"metal.gong.thai":MidiInstrument.Percussion,"metal.guira":MidiInstrument.Percussion,"metal.hang":MidiInstrument.Percussion,"metal.hi-hat":MidiInstrument.Percussion,"metal.jaw-harp":MidiInstrument.Percussion,"metal.kengong":MidiInstrument.Percussion,"metal.murchang":MidiInstrument.Percussion,"metal.musical-saw":MidiInstrument.Percussion,"metal.singing-bowl":MidiInstrument.Percussion,"metal.spoons":MidiInstrument.Percussion,"metal.steel-drums":MidiInstrument.Percussion,"metal.tamtam":MidiInstrument.Percussion,"metal.thundersheet":MidiInstrument.Percussion,"metal.triangle":MidiInstrument.Percussion,"metal.washboard":MidiInstrument.Percussion,"pitched-percussion.angklung":MidiInstrument.Xylophone,"pitched-percussion.balafon":MidiInstrument.Xylophone,"pitched-percussion.bell-lyre":MidiInstrument.Xylophone,"pitched-percussion.bells":MidiInstrument.Tubular_Bells,"pitched-percussion.bianqing":MidiInstrument.Xylophone,"pitched-percussion.bianzhong":MidiInstrument.Xylophone,"pitched-percussion.bonang":MidiInstrument.Xylophone,"pitched-percussion.cimbalom":MidiInstrument.Xylophone,"pitched-percussion.crystal-glasses":MidiInstrument.Xylophone,"pitched-percussion.dan-tam-thap-luc":MidiInstrument.Xylophone,"pitched-percussion.fangxiang":MidiInstrument.Xylophone,"pitched-percussion.gandingan-a-kayo":MidiInstrument.Xylophone,"pitched-percussion.gangsa":MidiInstrument.Xylophone,"pitched-percussion.gender":MidiInstrument.Xylophone,"pitched-percussion.giying":MidiInstrument.Xylophone,"pitched-percussion.glass-harmonica":MidiInstrument.Xylophone,"pitched-percussion.glockenspiel":MidiInstrument.Glockenspiel,"pitched-percussion.glockenspiel.alto":MidiInstrument.Glockenspiel,"pitched-percussion.glockenspiel.soprano":MidiInstrument.Glockenspiel,"pitched-percussion.gyil":MidiInstrument.Xylophone,"pitched-percussion.hammer-dulcimer":MidiInstrument.Dulcimer,"pitched-percussion.handbells":MidiInstrument.Tubular_Bells,"pitched-percussion.handchimes":MidiInstrument.Tubular_Bells,"pitched-percussion.kalimba":MidiInstrument.Kalimba,"pitched-percussion.kantil":MidiInstrument.Xylophone,"pitched-percussion.khim":MidiInstrument.Xylophone,"pitched-percussion.kulintang":MidiInstrument.Xylophone,"pitched-percussion.kulintang-a-kayo":MidiInstrument.Xylophone,"pitched-percussion.kulintang-a-tiniok":MidiInstrument.Xylophone,"pitched-percussion.likembe":MidiInstrument.Xylophone,"pitched-percussion.luntang":MidiInstrument.Xylophone,"pitched-percussion.marimba":MidiInstrument.Marimba,"pitched-percussion.marimba.bass":MidiInstrument.Marimba,"pitched-percussion.mbira":MidiInstrument.Marimba,"pitched-percussion.mbira.array":MidiInstrument.Marimba,"pitched-percussion.metallophone":MidiInstrument.Xylophone,"pitched-percussion.metallophone.alto":MidiInstrument.Xylophone,"pitched-percussion.metallophone.bass":MidiInstrument.Xylophone,"pitched-percussion.metallophone.soprano":MidiInstrument.Xylophone,"pitched-percussion.music-box":MidiInstrument.Glockenspiel,"pitched-percussion.pelog-panerus":MidiInstrument.Xylophone,"pitched-percussion.pemade":MidiInstrument.Xylophone,"pitched-percussion.penyacah":MidiInstrument.Xylophone,"pitched-percussion.ranat.ek":MidiInstrument.Xylophone,"pitched-percussion.ranat.ek-lek":MidiInstrument.Xylophone,"pitched-percussion.ranat.thum":MidiInstrument.Xylophone,"pitched-percussion.ranat.thum-lek":MidiInstrument.Xylophone,"pitched-percussion.reyong":MidiInstrument.Xylophone,"pitched-percussion.sanza":MidiInstrument.Xylophone,"pitched-percussion.saron-barung":MidiInstrument.Xylophone,"pitched-percussion.saron-demong":MidiInstrument.Xylophone,"pitched-percussion.saron-panerus":MidiInstrument.Xylophone,"pitched-percussion.slendro-panerus":MidiInstrument.Xylophone,"pitched-percussion.slentem":MidiInstrument.Xylophone,"pitched-percussion.tsymbaly":MidiInstrument.Xylophone,"pitched-percussion.tubes":MidiInstrument.Tubular_Bells,"pitched-percussion.tubular-bells":MidiInstrument.Tubular_Bells,"pitched-percussion.vibraphone":MidiInstrument.Vibraphone,"pitched-percussion.xylophone":MidiInstrument.Xylophone,"pitched-percussion.xylophone.alto":MidiInstrument.Xylophone,"pitched-percussion.xylophone.bass":MidiInstrument.Xylophone,"pitched-percussion.xylophone.soprano":MidiInstrument.Xylophone,"pitched-percussion.xylorimba":MidiInstrument.Xylophone,"pitched-percussion.yangqin":MidiInstrument.Xylophone,"pluck.archlute":MidiInstrument.Acoustic_Guitar_nylon,"pluck.autoharp":MidiInstrument.Orchestral_Harp,"pluck.baglama":MidiInstrument.Orchestral_Harp,"pluck.bajo":MidiInstrument.Acoustic_Guitar_steel,"pluck.balalaika":MidiInstrument.Acoustic_Guitar_steel,"pluck.balalaika.alto":MidiInstrument.Acoustic_Guitar_steel,"pluck.balalaika.bass":MidiInstrument.Acoustic_Guitar_steel,"pluck.balalaika.contrabass":MidiInstrument.Acoustic_Guitar_steel,"pluck.balalaika.piccolo":MidiInstrument.Acoustic_Guitar_steel,"pluck.balalaika.prima":MidiInstrument.Acoustic_Guitar_steel,"pluck.balalaika.secunda":MidiInstrument.Acoustic_Guitar_steel,"pluck.bandola":MidiInstrument.Acoustic_Guitar_steel,"pluck.bandura":MidiInstrument.Acoustic_Guitar_steel,"pluck.bandurria":MidiInstrument.Acoustic_Guitar_steel,"pluck.banjo":MidiInstrument.Banjo,"pluck.banjo.tenor":MidiInstrument.Banjo,"pluck.banjolele":MidiInstrument.Banjo,"pluck.barbat":MidiInstrument.Acoustic_Guitar_steel,"pluck.bass":MidiInstrument.Electric_Bass_finger,"pluck.bass.acoustic":MidiInstrument.Acoustic_Bass,"pluck.bass.bolon":MidiInstrument.Electric_Bass_finger,"pluck.bass.electric":MidiInstrument.Electric_Bass_finger,"pluck.bass.fretless":MidiInstrument.Fretless_Bass,"pluck.bass.guitarron":MidiInstrument.Acoustic_Bass,"pluck.bass.synth":MidiInstrument.Synth_Bass_1,"pluck.bass.synth.lead":MidiInstrument.Synth_Bass_2,"pluck.celtic-harp":MidiInstrument.Orchestral_Harp,"pluck.charango":MidiInstrument.Acoustic_Guitar_nylon,"pluck.chitarra-battente":MidiInstrument.Acoustic_Guitar_nylon,"pluck.cithara":MidiInstrument.Acoustic_Guitar_nylon,"pluck.cittern":MidiInstrument.Acoustic_Guitar_nylon,"pluck.cuatro":MidiInstrument.Acoustic_Guitar_nylon,"pluck.dulcimer":MidiInstrument.Dulcimer,"pluck.dutar":MidiInstrument.Acoustic_Grand_Piano,"pluck.duxianqin":MidiInstrument.Dulcimer,"pluck.ektara":MidiInstrument.Acoustic_Guitar_nylon,"pluck.guitar":MidiInstrument.Acoustic_Guitar_nylon,"pluck.guitar.acoustic":MidiInstrument.Acoustic_Guitar_nylon,"pluck.guitar.electric":MidiInstrument.Electric_Guitar_clean,"pluck.guitar.nylon-string":MidiInstrument.Electric_Guitar_clean,"pluck.guitar.pedal-steel":MidiInstrument.Electric_Guitar_clean,"pluck.guitar.portuguese":MidiInstrument.Acoustic_Guitar_nylon,"pluck.guitar.requinto":MidiInstrument.Acoustic_Guitar_nylon,"pluck.guitar.resonator":MidiInstrument.Acoustic_Guitar_nylon,"pluck.guitar.steel-string":MidiInstrument.Acoustic_Guitar_steel,"pluck.harp":MidiInstrument.Orchestral_Harp,"pluck.harp-guitar":MidiInstrument.Orchestral_Harp,"pluck.huapanguera":MidiInstrument.Orchestral_Harp,"pluck.lute":MidiInstrument.Acoustic_Grand_Piano,"pluck.lyre":MidiInstrument.Orchestral_Harp,"pluck.mandobass":MidiInstrument.Acoustic_Guitar_nylon,"pluck.mandocello":MidiInstrument.Acoustic_Guitar_nylon,"pluck.mandola":MidiInstrument.Acoustic_Guitar_nylon,"pluck.mandolin":MidiInstrument.Acoustic_Guitar_nylon,"pluck.mandolin.octave":MidiInstrument.Acoustic_Guitar_nylon,"pluck.setar":MidiInstrument.Acoustic_Guitar_nylon,"pluck.shamisen":MidiInstrument.Shamisen,"pluck.sitar":MidiInstrument.Sitar,"pluck.synth":MidiInstrument.Electric_Bass_pick,"pluck.synth.charang":MidiInstrument.Electric_Bass_pick,"pluck.synth.chiff":MidiInstrument.Electric_Bass_pick,"pluck.synth.stick":MidiInstrument.Electric_Bass_pick,"pluck.tambura":MidiInstrument.Acoustic_Grand_Piano,"pluck.ukulele":MidiInstrument.Banjo,"pluck.ukulele.tenor":MidiInstrument.Banjo,"strings.arpeggione":MidiInstrument.Cello,"strings.cello":MidiInstrument.Cello,"strings.cello.piccolo":MidiInstrument.Cello,"strings.contrabass":MidiInstrument.Contrabass,"strings.fiddle":MidiInstrument.Fiddle,"strings.fiddle.hardanger":MidiInstrument.Fiddle,"strings.group":MidiInstrument.String_Ensemble_1,"strings.group.synth":MidiInstrument.Synth_Strings_1,"strings.octobass":MidiInstrument.Contrabass,"strings.tromba-marina":MidiInstrument.Contrabass,"strings.vielle":MidiInstrument.Violin,"strings.viol":MidiInstrument.Violin,"strings.viol.alto":MidiInstrument.Violin,"strings.viol.bass":MidiInstrument.Violin,"strings.viol.tenor":MidiInstrument.Violin,"strings.viol.treble":MidiInstrument.Violin,"strings.viol.violone":MidiInstrument.Violin,"strings.viola":MidiInstrument.Viola,"strings.viola-damore":MidiInstrument.Viola,"strings.violin":MidiInstrument.Violin,"strings.violono.piccolo":MidiInstrument.Violin,"strings.violotta":MidiInstrument.Viola,"synth.group":MidiInstrument.Pad_3_polysynth,"synth.group.fifths":MidiInstrument.Pad_3_polysynth,"synth.group.orchestra":MidiInstrument.Orchestra_Hit,"synth.pad":MidiInstrument.Pad_1_new_age,"synth.pad.bowed":MidiInstrument.Pad_1_new_age,"synth.pad.choir":MidiInstrument.Pad_4_choir,"synth.pad.halo":MidiInstrument.Acoustic_Grand_Piano,"synth.pad.polysynth":MidiInstrument.Pad_3_polysynth,"voice.alto":MidiInstrument.Voice_Oohs,"voice.baritone":MidiInstrument.Voice_Oohs,"voice.bass":MidiInstrument.Voice_Oohs,"voice.female":MidiInstrument.Synth_Voice,"voice.kazoo":MidiInstrument.Flute,"voice.male":MidiInstrument.Voice_Oohs,"voice.mezzo-soprano":MidiInstrument.Voice_Oohs,"voice.soprano":MidiInstrument.Voice_Oohs,"voice.synth":MidiInstrument.Synth_Voice,"voice.tenor":MidiInstrument.Voice_Oohs,"voice.vocals":MidiInstrument.Choir_Aahs,"wind.flutes.flute":MidiInstrument.Flute,"wind.flutes.flute.alto":MidiInstrument.Flute,"wind.flutes.flute.bass":MidiInstrument.Flute,"wind.flutes.flute.contra-alto":MidiInstrument.Flute,"wind.flutes.flute.contrabass":MidiInstrument.Flute,"wind.flutes.flute.double-contrabass":MidiInstrument.Flute,"wind.flutes.flute.irish":MidiInstrument.Flute,"wind.flutes.flute.piccolo":MidiInstrument.Piccolo,"wind.flutes.flute.subcontrabass":MidiInstrument.Flute,"wind.flutes.ocarina":MidiInstrument.Ocarina,"wind.flutes.panpipes":MidiInstrument.Pan_Flute,"wind.flutes.recorder":MidiInstrument.Acoustic_Grand_Piano,"wind.flutes.recorder.alto":MidiInstrument.Recorder,"wind.flutes.recorder.bass":MidiInstrument.Recorder,"wind.flutes.recorder.contrabass":MidiInstrument.Recorder,"wind.flutes.recorder.descant":MidiInstrument.Recorder,"wind.flutes.recorder.garklein":MidiInstrument.Recorder,"wind.flutes.recorder.great-bass":MidiInstrument.Recorder,"wind.flutes.recorder.sopranino":MidiInstrument.Recorder,"wind.flutes.recorder.soprano":MidiInstrument.Recorder,"wind.flutes.recorder.tenor":MidiInstrument.Recorder,"wind.flutes.shakuhachi":MidiInstrument.Shakuhachi,"wind.flutes.whistle":MidiInstrument.Whistle,"wind.flutes.whistle.alto":MidiInstrument.Whistle,"wind.flutes.whistle.low-irish":MidiInstrument.Whistle,"wind.flutes.whistle.shiva":MidiInstrument.Whistle,"wind.flutes.whistle.slide":MidiInstrument.Whistle,"wind.flutes.whistle.tin":MidiInstrument.Whistle,"wind.flutes.whistle.tin.bflat":MidiInstrument.Whistle,"wind.flutes.whistle.tin.c":MidiInstrument.Whistle,"wind.flutes.whistle.tin.d":MidiInstrument.Whistle,"wind.group":MidiInstrument.Flute,"wind.pipes.bagpipes":MidiInstrument.Bag_pipe,"wind.reed.basset-horn":MidiInstrument.Bassoon,"wind.reed.bassoon":MidiInstrument.Bassoon,"wind.reed.bombarde":MidiInstrument.Bassoon,"wind.reed.clarinet":MidiInstrument.Clarinet,"wind.reed.clarinet.a":MidiInstrument.Clarinet,"wind.reed.clarinet.alto":MidiInstrument.Clarinet,"wind.reed.clarinet.bass":MidiInstrument.Clarinet,"wind.reed.clarinet.basset":MidiInstrument.Clarinet,"wind.reed.clarinet.bflat":MidiInstrument.Clarinet,"wind.reed.clarinet.contra-alto":MidiInstrument.Clarinet,"wind.reed.clarinet.contrabass":MidiInstrument.Clarinet,"wind.reed.clarinet.d":MidiInstrument.Clarinet,"wind.reed.clarinet.eflat":MidiInstrument.Clarinet,"wind.reed.clarinet.g":MidiInstrument.Clarinet,"wind.reed.clarinet.piccolo":MidiInstrument.Clarinet,"wind.reed.clarinet.piccolo.aflat":MidiInstrument.Clarinet,"wind.reed.clarinette-damour":MidiInstrument.Clarinet,"wind.reed.contrabass":MidiInstrument.Clarinet,"wind.reed.contrabassoon":MidiInstrument.Clarinet,"wind.reed.cornamuse":MidiInstrument.Bag_pipe,"wind.reed.english-horn":MidiInstrument.English_Horn,"wind.reed.harmonica":MidiInstrument.Harmonica,"wind.reed.harmonica.bass":MidiInstrument.Harmonica,"wind.reed.oboe":MidiInstrument.Oboe,"wind.reed.oboe.bass":MidiInstrument.Oboe,"wind.reed.oboe.piccolo":MidiInstrument.Oboe,"wind.reed.oboe-da-caccia":MidiInstrument.Oboe,"wind.reed.oboe-damore":MidiInstrument.Oboe,"wind.reed.saxonette":MidiInstrument.Soprano_Sax,"wind.reed.saxophone":MidiInstrument.Alto_Sax,"wind.reed.saxophone.alto":MidiInstrument.Alto_Sax,"wind.reed.saxophone.aulochrome":MidiInstrument.Alto_Sax,"wind.reed.saxophone.baritone":MidiInstrument.Baritone_Sax,"wind.reed.saxophone.bass":MidiInstrument.Baritone_Sax,"wind.reed.saxophone.contrabass":MidiInstrument.Baritone_Sax,"wind.reed.saxophone.melody":MidiInstrument.Baritone_Sax,"wind.reed.saxophone.mezzo-soprano":MidiInstrument.Alto_Sax,"wind.reed.saxophone.sopranino":MidiInstrument.Soprano_Sax,"wind.reed.saxophone.sopranissimo":MidiInstrument.Soprano_Sax,"wind.reed.saxophone.soprano":MidiInstrument.Soprano_Sax,"wind.reed.saxophone.subcontrabass":MidiInstrument.Baritone_Sax,"wind.reed.saxophone.tenor":MidiInstrument.Tenor_Sax,"wood.bones":MidiInstrument.Woodblock,"wood.castanets":MidiInstrument.Woodblock,"wood.claves":MidiInstrument.Woodblock,"wood.drum-sticks":MidiInstrument.Woodblock,"wood.gourd":MidiInstrument.Woodblock,"wood.granite-block":MidiInstrument.Woodblock,"wood.guban":MidiInstrument.Woodblock,"wood.guiro":MidiInstrument.Woodblock,"wood.hyoushigi":MidiInstrument.Woodblock,"wood.ipu":MidiInstrument.Woodblock,"wood.jam-block":MidiInstrument.Woodblock,"wood.kaekeeke":MidiInstrument.Woodblock,"wood.kagul":MidiInstrument.Woodblock,"wood.kalaau":MidiInstrument.Woodblock,"wood.kashiklar":MidiInstrument.Woodblock,"wood.kubing":MidiInstrument.Woodblock,"wood.pan-clappers":MidiInstrument.Woodblock,"wood.sand-block":MidiInstrument.Woodblock,"wood.slapstick":MidiInstrument.Woodblock,"wood.stir-drum":MidiInstrument.Woodblock,"wood.temple-block":MidiInstrument.Woodblock,"wood.tic-toc-block":MidiInstrument.Woodblock,"wood.tonetang":MidiInstrument.Woodblock,"wood.wood-block":MidiInstrument.Woodblock};class SubInstrument{constructor(e){this.parentInstrument=e,this.fixedKey=-1,this.name=this.parseMidiInstrument(this.parentInstrument.Name),this.midiInstrumentID=InstrumentNames.MidiInstrument[this.name],this.volume=1}get ParentInstrument(){return this.parentInstrument}static isPianoInstrument(e){return e===MidiInstrument.Acoustic_Grand_Piano||e===MidiInstrument.Bright_Acoustic_Piano||e===MidiInstrument.Electric_Grand_Piano||e===MidiInstrument.Electric_Piano_1||e===MidiInstrument.Electric_Piano_2}setMidiInstrumentSound(e){this.midiInstrumentID=InstrumentNames.MidiInstrumentSounds[e]}setMidiInstrument(e){this.midiInstrumentID=InstrumentNames.MidiInstrument[this.parseMidiInstrument(e)]}parseMidiInstrument(e){try{if(e){const r=e.toLowerCase().trim();for(const s in InstrumentNames.MidiInstrument)if(r.indexOf(s)!==-1)return s}if(this.parentInstrument.Name){const r=this.parentInstrument.Name.toLowerCase().trim();for(const s in InstrumentNames.MidiInstrument)if(r.indexOf(s)!==-1)return s}}catch(r){loglevelExports.error("Error parsing MIDI Instrument. Default to Grand Piano.")}return"unnamed"}}class StringUtil{static StringContainsSeparatedWord(e,r,s=!1){return new RegExp("( |^)"+r+"([ .]|$)",s?"i":void 0).test(e)}}class RepetitionInstructionReader{set MusicSheet(e){this.musicSheet=e,this.xmlMeasureList=new Array(this.musicSheet.Instruments.length),this.repetitionInstructions=[]}prepareReadingMeasure(e,r){this.currentMeasureIndex=r}handleLineRepetitionInstructions(e){let r=!1;if(e.elements().length>0){let s="",o=!1,a="",l="",c="";const u=[],d=e.element("bar-style");d&&(c=d.value),e.attributes().length>0&&e.attribute("location")?s=e.attribute("location").value:s="right";const g=e.elements();for(let m=0,y=g.length;m0)if(s==="left"){if(l==="start"){const m=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Ending,AlignmentType.Begin,void 0,u);this.addInstruction(this.repetitionInstructions,m)}if(a==="forward"){const m=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.StartLine);this.addInstruction(this.repetitionInstructions,m)}}else{if(l==="stop"){const m=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Ending,AlignmentType.End,void 0,u);this.addInstruction(this.repetitionInstructions,m)}if(a==="backward"){const m=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.BackJumpLine);this.addInstruction(this.repetitionInstructions,m)}}}return r}handleRepetitionInstructionsFromWordsOrSymbols(e,r){const s=e.element("words"),o=this.currentMeasureIndex;if(s){const a="d\\s?\\.s\\.",l=s.value.trim().toLowerCase();if(StringUtil.StringContainsSeparatedWord(l,a+" al fine",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.DalSegnoAlFine);return this.addInstruction(this.repetitionInstructions,u),!0}if(StringUtil.StringContainsSeparatedWord(l,a+" al coda",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.DalSegnoAlCoda);return this.addInstruction(this.repetitionInstructions,u),!0}const c="d\\.\\s?c\\.";if(StringUtil.StringContainsSeparatedWord(l,c+" al fine",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.DaCapoAlFine);return this.addInstruction(this.repetitionInstructions,u),!0}if(StringUtil.StringContainsSeparatedWord(l,c+" al coda",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.DaCapoAlCoda);return this.addInstruction(this.repetitionInstructions,u),!0}if(StringUtil.StringContainsSeparatedWord(l,c)||StringUtil.StringContainsSeparatedWord(l,"da\\s?capo",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.DaCapo);return this.addInstruction(this.repetitionInstructions,u),!0}if(StringUtil.StringContainsSeparatedWord(l,a,!0)||StringUtil.StringContainsSeparatedWord(l,"dal\\s?segno",!0)){let u;return StringUtil.StringContainsSeparatedWord(l,"al\\s?coda",!0)?u=new RepetitionInstruction(o,RepetitionInstructionEnum.DalSegnoAlCoda):u=new RepetitionInstruction(o,RepetitionInstructionEnum.DalSegno),this.addInstruction(this.repetitionInstructions,u),!0}if(StringUtil.StringContainsSeparatedWord(l,"to\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(l,"a (la )?coda",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.ToCoda);return this.addInstruction(this.repetitionInstructions,u),!0}if(StringUtil.StringContainsSeparatedWord(l,"fine",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.Fine);return this.addInstruction(this.repetitionInstructions,u),!0}if(StringUtil.StringContainsSeparatedWord(l,"coda",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.Coda);return this.addInstruction(this.repetitionInstructions,u),!0}if(StringUtil.StringContainsSeparatedWord(l,"segno",!0)){const u=new RepetitionInstruction(o,RepetitionInstructionEnum.Segno);return this.addInstruction(this.repetitionInstructions,u),!0}}else if(e.element("segno")){const a=new RepetitionInstruction(o,RepetitionInstructionEnum.Segno);return this.addInstruction(this.repetitionInstructions,a),!0}else if(e.element("coda")){const a=new RepetitionInstruction(o,RepetitionInstructionEnum.Coda);return this.addInstruction(this.repetitionInstructions,a),!0}return!1}removeRedundantInstructions(){let e=0,r=0,s=0,o=0;for(let a=0;a0&&this.findInstructionInPreviousMeasure(a,l.measureIndex,RepetitionInstructionEnum.ToCoda)&&(l.type=RepetitionInstructionEnum.None),r===0&&s===0&&(l.type=RepetitionInstructionEnum.ToCoda,l.alignment=AlignmentType.End,l.measureIndex--);break;case RepetitionInstructionEnum.Segno:if(e-o>0){let c=!1;for(let u=0,d=this.repetitionInstructions.length;u0?g.type=RepetitionInstructionEnum.DalSegnoAlCoda:g.type=RepetitionInstructionEnum.DalSegno,l.type=RepetitionInstructionEnum.None,c=!0;break;case RepetitionInstructionEnum.DalSegno:case RepetitionInstructionEnum.DalSegnoAlFine:case RepetitionInstructionEnum.DalSegnoAlCoda:l.type=RepetitionInstructionEnum.None,c=!0;break}if(c)break}if(c)break;s-r>0?l.type=RepetitionInstructionEnum.DalSegnoAlCoda:l.type=RepetitionInstructionEnum.DalSegno,l.alignment=AlignmentType.End,l.measureIndex--}break}if(this.backwardSearchForPreviousIdenticalInstruction(a,l)||l.type===RepetitionInstructionEnum.None)this.repetitionInstructions.splice(a,1),a--;else switch(l.type){case RepetitionInstructionEnum.Fine:break;case RepetitionInstructionEnum.ToCoda:s++;break;case RepetitionInstructionEnum.Coda:r++;break;case RepetitionInstructionEnum.Segno:e++;break;case RepetitionInstructionEnum.DalSegnoAlFine:case RepetitionInstructionEnum.DalSegnoAlCoda:o++;break}}this.repetitionInstructions.sort(RepetitionInstructionComparer.Compare)}findInstructionInPreviousMeasure(e,r,s){for(let o=e-1;o>=0;o--){const a=this.repetitionInstructions[o];if(r-a.measureIndex===1&&a.type===s)return!0}return!1}backwardSearchForPreviousIdenticalInstruction(e,r){for(let s=e-1;s>=0;s--)if(this.repetitionInstructions[s].equals(r))return!0;return!1}addInstruction(e,r){let s=!0;for(let o=0,a=e.length;o0;)try{const u=this.openRepetitions.last();if(u.RepetitonUnderConstruction.FromWords){if(u.WaitingForCoda){let d=u.RepetitonUnderConstruction.BackwardJumpInstructions.last().measureIndex+1;d>=this.musicSheet.SourceMeasures.length&&(d=-1),u.RepetitonUnderConstruction.setEndingStartIndex(2,d)}else if(u.RepetitonUnderConstruction.BackwardJumpInstructions.length===0){this.openRepetitions.splice(this.openRepetitions.length-1,1);continue}}else if(u.RepetitonUnderConstruction.BackwardJumpInstructions.length===0){const d=o.length-1,g=new RepetitionInstruction(d,RepetitionInstructionEnum.BackJumpLine,AlignmentType.End,u.RepetitonUnderConstruction);u.RepetitonUnderConstruction.BackwardJumpInstructions.push(g),o[d].LastRepetitionInstructions.push(g)}this.finalizeRepetition(this.openRepetitions.last())}catch(u){try{const d=this.openRepetitions.last().RepetitonUnderConstruction;for(const g of this.repetitionInstructions)g.parentRepetition===d&&(g.parentRepetition=void 0);this.openRepetitions.splice(this.openRepetitions.length-1,1)}catch(d){loglevelExports.error("RepetitionCalculator: calculateRepetitions2",d)}}let a=!1;const l=0,c=this.musicSheet.SourceMeasures.length-1;for(const u of this.musicSheet.Repetitions)if(u.StartIndex===l&&u.EndIndex===c){a=!0;break}if(!a){const u=new Repetition(this.musicSheet,!0);u.FromWords=!0,u.startMarker=new RepetitionInstruction(l,RepetitionInstructionEnum.StartLine),u.startMarker.parentRepetition=u,this.musicSheet.SourceMeasures[l].FirstRepetitionInstructions.push(u.startMarker),u.endMarker=new RepetitionInstruction(c,RepetitionInstructionEnum.BackJumpLine),u.endMarker.parentRepetition=u,u.BackwardJumpInstructions.push(u.endMarker),u.UserNumberOfRepetitions=u.DefaultNumberOfRepetitions,this.musicSheet.Repetitions.push(u)}for(let u=0,d=this.musicSheet.SourceMeasures.length;u1&&g.FirstRepetitionInstructions.sort(RepetitionInstructionComparer.Compare),g.LastRepetitionInstructions.length>1&&g.LastRepetitionInstructions.sort(RepetitionInstructionComparer.Compare)}}handleRepetitionInstructions(e){var s,o,a,l,c,u,d;let r;switch(e.type){case RepetitionInstructionEnum.StartLine:r=this.createNewRepetition(this.currentMeasureIndex),e.parentRepetition=r.RepetitonUnderConstruction,r.RepetitonUnderConstruction.FromWords=!1,r.RepetitonUnderConstruction.startMarker=e,(s=this.currentMeasure)==null||s.FirstRepetitionInstructions.push(e);break;case RepetitionInstructionEnum.BackJumpLine:r=this.getOrCreateCurrentRepetition2(!1),e.parentRepetition=r.RepetitonUnderConstruction,r.RepetitonUnderConstruction.BackwardJumpInstructions.push(e),(o=this.currentMeasure)==null||o.LastRepetitionInstructions.push(e),r.RepetitonUnderConstruction.EndingParts.length===0&&this.finalizeRepetition(r);break;case RepetitionInstructionEnum.Ending:if(r=this.getOrCreateCurrentRepetition(),e.parentRepetition=r.RepetitonUnderConstruction,e.endingIndices.contains(1)&&e.alignment===AlignmentType.Begin){if(r.RepetitonUnderConstruction.BackwardJumpInstructions.length>0||r.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)){r=void 0;for(let m=this.openRepetitions.length-1;m>=0;m--){const y=this.openRepetitions[m];if(y.RepetitonUnderConstruction.BackwardJumpInstructions.length===0)for(r=y;this.openRepetitions.length-1>m;){const b=this.openRepetitions.last();this.finalizeRepetition(b)}}r===void 0&&(r=this.createNewRepetition(0),r.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None))}r.RepetitonUnderConstruction.forwardJumpInstruction===void 0&&(r.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(this.currentMeasureIndex-1,RepetitionInstructionEnum.ForwardJump,AlignmentType.End,r.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[this.currentMeasureIndex-1].LastRepetitionInstructions.push(r.RepetitonUnderConstruction.forwardJumpInstruction))}if(e.alignment===AlignmentType.Begin)r.RepetitonUnderConstruction.setEndingsStartIndex(e.endingIndices,this.currentMeasureIndex),(a=this.currentMeasure)==null||a.FirstRepetitionInstructions.push(e);else for(let m=0,y=e.endingIndices.length;m0&&Math.abs(r.RepetitonUnderConstruction.BackwardJumpInstructions.last().measureIndex-this.currentMeasureIndex)<=1||this.openRepetitions.length&&((d=(u=(c=this.openRepetitions)==null?void 0:c.find(m=>m.RepetitonUnderConstruction.startMarker.type===RepetitionInstructionEnum.StartLine))==null?void 0:u.RepetitonUnderConstruction)==null?void 0:d.StartIndex)===this.currentMeasureIndex)break;r=this.createNewRepetition(this.currentMeasureIndex),e.parentRepetition=r.RepetitonUnderConstruction,r.RepetitonUnderConstruction.FromWords=!0,r.SegnoFound=!0,r.RepetitonUnderConstruction.startMarker=e,this.currentMeasure.FirstRepetitionInstructions.push(e);break;case RepetitionInstructionEnum.Fine:if(this.openRepetitions.length===0||(r=this.getCurrentRepetition(!0),r===void 0))break;e.parentRepetition=r.RepetitonUnderConstruction,r.RepetitonUnderConstruction.FromWords=!0,r.RepetitonUnderConstruction.forwardJumpInstruction===void 0?(r.FineFound=!0,r.RepetitonUnderConstruction.forwardJumpInstruction=e,r.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.currentMeasure.LastRepetitionInstructions.push(e)):this.currentMeasure.LastRepetitionInstructions.push(new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Fine,AlignmentType.End,void 0));break;case RepetitionInstructionEnum.ToCoda:if(this.openRepetitions.length===0||(r=this.getCurrentRepetition(!0),r===void 0))break;r.RepetitonUnderConstruction.forwardJumpInstruction===void 0&&(e.parentRepetition=r.RepetitonUnderConstruction,r.RepetitonUnderConstruction.FromWords=!0,r.ToCodaFound=!0,r.RepetitonUnderConstruction.forwardJumpInstruction=e,this.currentMeasure.LastRepetitionInstructions.push(e));break;case RepetitionInstructionEnum.Coda:if(this.openRepetitions.length===0)break;r=this.getOrCreateCurrentRepetition2(!0),e.parentRepetition=r.RepetitonUnderConstruction,r.WaitingForCoda?(r.CodaFound=!0,r.RepetitonUnderConstruction.setEndingStartIndex(2,this.currentMeasureIndex),this.currentMeasure.LastRepetitionInstructions.push(e),this.finalizeRepetition(r),this.currentMeasureIndex>0&&(this.musicSheet.SourceMeasures[this.currentMeasureIndex-1].printNewSystemXml=!0)):r.ToCodaFound||(r.RepetitonUnderConstruction.BackwardJumpInstructions.length===0?(r.ToCodaFound=!0,r.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.ToCoda,AlignmentType.End,r.RepetitonUnderConstruction),this.currentMeasure.LastRepetitionInstructions.push(r.RepetitonUnderConstruction.forwardJumpInstruction)):this.currentMeasure.LastRepetitionInstructions.push(new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Coda,AlignmentType.Begin,void 0)));break;case RepetitionInstructionEnum.DaCapo:r=this.getOrCreateCurrentRepetition(),r.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&this.finalizeRepetition(r),r.RepetitonUnderConstruction.StartIndex!==0&&(r=this.createNewRepetition(0)),e.parentRepetition=r.RepetitonUnderConstruction,r.RepetitonUnderConstruction.FromWords=!0,r.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,r.RepetitonUnderConstruction),r.RepetitonUnderConstruction.BackwardJumpInstructions.push(e),this.currentMeasure.LastRepetitionInstructions.push(e),r.RepetitonUnderConstruction.EndingParts.length===0&&this.finalizeRepetition(r);break;case RepetitionInstructionEnum.DalSegno:if(r=this.getOrCreateCurrentRepetition2(!0),r.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&(this.finalizeRepetition(r),r=this.createNewRepetition(0),r.RepetitonUnderConstruction.FromWords=!0,r.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,r.RepetitonUnderConstruction)),e.parentRepetition=r.RepetitonUnderConstruction,!r.SegnoFound){const m=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,e.measureIndex);m>=0&&(r.SegnoFound=!0,r.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(m,RepetitionInstructionEnum.Segno,AlignmentType.Begin,r.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[m].FirstRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.startMarker))}r.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)&&r.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),r.RepetitonUnderConstruction.BackwardJumpInstructions.push(e),this.currentMeasure.LastRepetitionInstructions.push(e);break;case RepetitionInstructionEnum.DalSegnoAlFine:if(this.openRepetitions.length===0)break;if(r=this.getOrCreateCurrentRepetition2(!0),e.parentRepetition=r.RepetitonUnderConstruction,!r.SegnoFound){const m=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,e.measureIndex);m>=0&&(r.SegnoFound=!0,r.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(m,RepetitionInstructionEnum.Segno,AlignmentType.Begin,r.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[m].FirstRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.startMarker))}if(!r.FineFound){const m=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Fine,e.measureIndex);m>=0&&(r.FineFound=!0,r.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(m,RepetitionInstructionEnum.Fine,AlignmentType.Begin,r.RepetitonUnderConstruction),r.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.musicSheet.SourceMeasures[m].LastRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.forwardJumpInstruction))}r.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||r.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),r.RepetitonUnderConstruction.BackwardJumpInstructions.push(e),this.currentMeasure.LastRepetitionInstructions.push(e);break;case RepetitionInstructionEnum.DaCapoAlFine:if(r=this.getOrCreateCurrentRepetition(),r.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&(this.finalizeRepetition(r),r=this.createNewRepetition(0)),r.RepetitonUnderConstruction.startMarker!==void 0&&r.RepetitonUnderConstruction.StartIndex!==0&&(r=this.createNewRepetition(0)),r.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,r.RepetitonUnderConstruction),r.RepetitonUnderConstruction.FromWords=!0,e.parentRepetition=r.RepetitonUnderConstruction,!r.FineFound){const m=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Fine,e.measureIndex);m>=0&&(r.FineFound=!0,r.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(m,RepetitionInstructionEnum.Fine,AlignmentType.Begin,r.RepetitonUnderConstruction),r.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.musicSheet.SourceMeasures[m].LastRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.forwardJumpInstruction))}r.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||r.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),r.RepetitonUnderConstruction.BackwardJumpInstructions.push(e),this.currentMeasure.LastRepetitionInstructions.push(e);break;case RepetitionInstructionEnum.DalSegnoAlCoda:if(this.openRepetitions.length===0)break;if(r=this.getOrCreateCurrentRepetition2(!0),e.parentRepetition=r.RepetitonUnderConstruction,!r.SegnoFound){const m=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,e.measureIndex);m>=0&&(r.SegnoFound=!0,r.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(m,RepetitionInstructionEnum.Segno,AlignmentType.Begin,r.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[m].FirstRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.startMarker))}if(!r.ToCodaFound){const m=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.ToCoda,e.measureIndex);if(m>=0)r.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(m,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,r.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[m].LastRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.forwardJumpInstruction),r.ToCodaFound=!0;else{const y=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Coda,e.measureIndex);y>=0&&(r.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(y,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,r.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[y].LastRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.forwardJumpInstruction),r.ToCodaFound=!0)}}r.ToCodaFound&&(r.WaitingForCoda=!0),r.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||r.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),r.RepetitonUnderConstruction.BackwardJumpInstructions.push(e),this.currentMeasure.LastRepetitionInstructions.push(e);break;case RepetitionInstructionEnum.DaCapoAlCoda:if(r=this.getOrCreateCurrentRepetition(),r.RepetitonUnderConstruction.BackwardJumpInstructions.length>0?(this.finalizeRepetition(r),r=this.createNewRepetition(0)):r.RepetitonUnderConstruction.EndingParts.length===0&&(this.finalizeRepetition(r),r=this.createNewRepetition(0)),r.RepetitonUnderConstruction.startMarker!==void 0&&r.RepetitonUnderConstruction.StartIndex!==0&&(r=this.createNewRepetition(0)),r.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,r.RepetitonUnderConstruction),r.RepetitonUnderConstruction.FromWords=!0,e.parentRepetition=r.RepetitonUnderConstruction,!r.ToCodaFound){const m=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.ToCoda,e.measureIndex);if(m>=0)r.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(m,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,r.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[m].LastRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.forwardJumpInstruction),r.ToCodaFound=!0;else{const y=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Coda,e.measureIndex);y>=0&&(r.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(y,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,r.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[y].LastRepetitionInstructions.splice(0,0,r.RepetitonUnderConstruction.forwardJumpInstruction),r.ToCodaFound=!0)}}r.ToCodaFound&&(r.WaitingForCoda=!0),r.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||r.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),r.RepetitonUnderConstruction.BackwardJumpInstructions.push(e),this.currentMeasure.LastRepetitionInstructions.push(e);break;case RepetitionInstructionEnum.None:break;default:throw new ArgumentOutOfRangeException("currentRepetitionInstruction")}return!0}findInstructionInMainListBackwards(e,r){for(let s=this.repetitionInstructions.length-1;s>=0;s--){const o=this.repetitionInstructions[s];if(o.measureIndex<=r&&o.type===e)return o.measureIndex}return-1}finalizeRepetition(e){const r=e.RepetitonUnderConstruction;if(r.BackwardJumpInstructions.length>0){let s=!0;const o=this.getLastFinalizedRepetition();if(o!==void 0&&r.coversIdenticalMeasures(o)){if(r.NumberOfEndings>o.NumberOfEndings){const a=this.musicSheet.Repetitions.indexOf(o,0);a>-1&&this.musicSheet.Repetitions.splice(a,1),o.removeFromRepetitionInstructions(),this.musicSheet.Repetitions.push(r)}s=!1,r.removeFromRepetitionInstructions()}else this.musicSheet.Repetitions.push(r);if(s){r.startMarker.type===RepetitionInstructionEnum.None&&this.musicSheet.SourceMeasures[r.StartIndex].FirstRepetitionInstructions.push(r.startMarker),console.log("设置循环次数3",window==null?void 0:window.DYCustomRepeatCount,this.rules.DYCustomRepeatCount,r.DefaultNumberOfRepetitions);const a=(window==null?void 0:window.DYCustomRepeatCount)>r.DefaultNumberOfRepetitions?window==null?void 0:window.DYCustomRepeatCount:r.DefaultNumberOfRepetitions;r.UserNumberOfRepetitions=a||this.rules.DYCustomRepeatCount||r.DefaultNumberOfRepetitions}}this.openRepetitions.splice(this.openRepetitions.length-1,1)}getCurrentRepetition(e){let r;for(let s=this.openRepetitions.length-1;s>=0;s--)if(this.openRepetitions[s].RepetitonUnderConstruction.FromWords===e){for(r=this.openRepetitions[s];s0)return this.openRepetitions.last();const e=this.createNewRepetition(0);return e.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,e.RepetitonUnderConstruction),e}getOrCreateCurrentRepetition2(e){let r;if(this.openRepetitions.length&&this.openRepetitions.last().RepetitonUnderConstruction.EndingParts.length<2){for(let o=this.openRepetitions.length-1;o>=0;o--)if(r=this.openRepetitions[o],r.RepetitonUnderConstruction.FromWords===e){for(;o0){const s=this.openRepetitions.last(),o=s.RepetitonUnderConstruction;if(o.BackwardJumpInstructions.length>0){const a=Object.keys(o.EndingIndexDict);(a.length===0||o.EndingIndexDict[a[a.length-1]].part.EndIndex>=0)&&this.finalizeRepetition(s)}}const r=new RepetitionBuildingContainer(this.musicSheet);return this.lastRepetitionCommonPartStartIndex=e,this.openRepetitions.push(r),r}getLastFinalizedRepetition(){if(this.musicSheet.Repetitions.length>0)return this.musicSheet.Repetitions.last()}}class RepetitionBuildingContainer{constructor(e){this.RepetitonUnderConstruction=new Repetition(e)}}class MusicSymbolModuleFactory{static createRepetitionInstructionReader(){return new RepetitionInstructionReader}static createRepetitionCalculator(){return new RepetitionCalculator}}class ReaderPluginManager{constructor(){this.voiceMeasureReadPlugins=[]}addVoiceMeasureReadPlugin(e){this.voiceMeasureReadPlugins.push(e)}processVoiceMeasureReadPlugins(e,r,s){for(const o of this.voiceMeasureReadPlugins)try{o.measureReadCalculations(e,r,s)}catch(a){loglevelExports.info("VoiceGenerator.addSingleNote: ",a)}}}class MusicSheetReader{constructor(e=void 0,r=new EngravingRules){this.completeNumberOfStaves=0,this.pluginManager=new ReaderPluginManager,e?this.afterSheetReadingModules=e:this.afterSheetReadingModules=[],this.repetitionInstructionReader=MusicSymbolModuleFactory.createRepetitionInstructionReader(),this.repetitionCalculator=MusicSymbolModuleFactory.createRepetitionCalculator(),this.rules=r}get PluginManager(){return this.pluginManager}get CompleteNumberOfStaves(){return this.completeNumberOfStaves}static doCalculationsAfterDurationHasBeenSet(e){for(const r of e)r.doCalculationsAfterDurationHasBeenSet()}createMusicSheet(e,r){try{return this._createMusicSheet(e,r)}catch(s){loglevelExports.error("MusicSheetReader.CreateMusicSheet",s);return}}_removeFromArray(e,r){const s=e.indexOf(r);s!==-1&&e.splice(s,1)}trimString(e){return e.replace(/^\s+|\s+$/g,"")}_lastElement(e){return e[e.length-1]}_createMusicSheet(e,r){const s=[];let o=0;if(this.musicSheet=new MusicSheet,this.musicSheet.Path=r,this.musicSheet.Rules=this.rules,!e)throw new MusicSheetReadingException("Undefined root element");this.pushSheetLabels(e,r);const a=e.element("part-list");if(!a)throw new MusicSheetReadingException("Undefined partListNode");const l=e.elements("part"),c=a.elements();this.initializeReading(c,l,s);let u=!0;this.currentFraction=new Fraction$1(0,1);let d=!1,g=e.element("identification");for(g&&(g=g.element("encoding")),g&&(g=g.element("software")),g!==void 0&&g.value==="Guitar Pro 5"&&(d=!0);u;){this.currentMeasure!==void 0&&this.currentMeasure.HasEndLine&&this.rules.NewPartAndSystemAfterFinalBarline&&(o=0),this.currentMeasure=new SourceMeasure(this.completeNumberOfStaves,this.musicSheet.Rules);for(const m of s)try{u=u&&m.readNextXmlMeasure(this.currentMeasure,this.currentFraction,d)}catch(y){const b=ITextTranslation.translateText("ReaderErrorMessages/InstrumentError","Error while reading instruments.");throw new MusicSheetReadingException(b,y)}u&&(this.musicSheet.addMeasure(this.currentMeasure),this.checkIfRhythmInstructionsAreSetAndEqual(s),this.checkSourceMeasureForNullEntries(),o=this.setSourceMeasureDuration(s,o),MusicSheetReader.doCalculationsAfterDurationHasBeenSet(s),this.currentMeasure.AbsoluteTimestamp=this.currentFraction.clone(),this.musicSheet.SheetErrors.finalizeMeasure(this.currentMeasure.MeasureNumber),this.currentFraction.Add(this.currentMeasure.Duration),this.previousMeasure=this.currentMeasure)}this.repetitionInstructionReader&&(this.repetitionInstructionReader.removeRedundantInstructions(),this.repetitionCalculator&&this.repetitionCalculator.calculateRepetitions(this.musicSheet,this.repetitionInstructionReader.repetitionInstructions)),this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=100),this.musicSheet.checkForInstrumentWithNoVoice(),this.musicSheet.fillStaffList();for(let m=0,y=this.afterSheetReadingModules.length;ms){if(this.areRhythmInstructionsMixed(r)&&c.SymbolEnum!==RhythmSymbolEnum.NONE)continue;s=c.Rhythm.RealValue,o=r.indexOf(c)}}if(r.length>0&&r.lengthe.Denominator){const s=r.Denominator/e.Denominator;e.expand(s)}}checkIfMeasureIsImplicit(e,r){return!this.previousMeasure&&e.lt(r)?!0:this.previousMeasure?Fraction$1.plus(this.previousMeasure.Duration,e).Equals(r):!1}allInstrumentsHaveSameDuration(e,r){let s=0;for(let o=0,a=e.length;o=0;e--)for(let r=this.currentMeasure.VerticalSourceStaffEntryContainers[e].StaffEntries.length-1;r>=0;r--){const s=this.currentMeasure.VerticalSourceStaffEntryContainers[e].StaffEntries[r];if(s)for(let o=s.VoiceEntries.length-1;o>=0;o--){const a=s.VoiceEntries[o];a.Notes.length===0&&(this._removeFromArray(a.ParentVoice.VoiceEntries,a),this._removeFromArray(s.VoiceEntries,a))}s!==void 0&&s.VoiceEntries.length===0&&s.ChordContainers.length===0&&(this.currentMeasure.VerticalSourceStaffEntryContainers[e].StaffEntries[r]=void 0)}for(let e=this.currentMeasure.VerticalSourceStaffEntryContainers.length-1;e>=0;e--){let r=0;for(let s=0,o=this.currentMeasure.VerticalSourceStaffEntryContainers[e].StaffEntries.length;s0){const o=r[0].elements("rights");if(o.length>0)for(let a=0,l=o.length;ar||T){if(!s&&!T)s=M;else if(x||B==="right")a?a+=` `+M:a=M;else if(E||B!=="right"&&B!=="left")o?o+=` `+M:o=M;else if(B==="left"){this.musicSheet.Lyricist||(this.musicSheet.Lyricist=new Label(M));break}}}}}}if(!this.musicSheet.Title&&s&&(this.musicSheet.Title=new Label(this.trimString(s))),!this.musicSheet.Subtitle&&o&&(this.musicSheet.Subtitle=new Label(this.trimString(o))),a){let y=!1;if(!this.musicSheet.Composer)y=!0;else{const b=((g=a.match(` `))!=null?g:[]).length+1,S=((m=this.musicSheet.Composer.text.match(` `))!=null?m:[]).length+1;b>=S&&(y=!0)}y&&(this.musicSheet.Composer=new Label(this.trimString(a)))}}readTitleAndComposerFromCreditsLegacy(e){var d,g,m;const r=this.computeSystemYCoordinates(e);if(r===0)return;let s=1,o,a=0,l,c;const u=e.elements("credit");for(let y=0,b=u.length;yr||C){if(!this.musicSheet.Title&&!C){const B=(m=A.attribute("font-size"))==null?void 0:m.value;if(B){const I=parseFloat(B);s0&&g.MidiInstrumentId!==MidiInstrument.Percussion&&(A.midiInstrumentID=Math.max(0,parseInt(T.value,10)-1));else if(T.name==="midi-unpitched")A.fixedKey=Math.max(0,parseInt(T.value,10));else if(T.name==="volume")try{const C=parseFloat(T.value);A.volume=C/127}catch(C){loglevelExports.debug("ExpressionReader.readExpressionParameters","read volume",C)}else if(T.name==="pan")try{const C=parseFloat(T.value);A.pan=C/64}catch(C){loglevelExports.debug("ExpressionReader.readExpressionParameters","read pan",C)}}catch(C){loglevelExports.info("MusicSheetReader.createInstrumentGroups midi settings: ",C)}}}}catch(A){loglevelExports.info("MusicSheetReader.createInstrumentGroups: ",A)}}if(g.SubInstruments.length===0){const y=new SubInstrument(g);g.SubInstruments.push(y)}s[d]=g,o?(o.InstrumentalGroups.push(g),this.musicSheet.Instruments.push(g)):(this.musicSheet.InstrumentalGroups.push(g),this.musicSheet.Instruments.push(g))}else if(u.name==="part-group"&&u.attribute("type").value==="start"){const d=new InstrumentalGroup("group",this.musicSheet,o);o?o.InstrumentalGroups.push(d):this.musicSheet.InstrumentalGroups.push(d),o=d}else if(u.name==="part-group"&&u.attribute("type").value==="stop"&&o){if(o.InstrumentalGroups.length===1){const d=o.InstrumentalGroups[0];o.Parent?(o.Parent.InstrumentalGroups.push(d),this._removeFromArray(o.Parent.InstrumentalGroups,o)):(this.musicSheet.InstrumentalGroups.push(d),this._removeFromArray(this.musicSheet.InstrumentalGroups,o))}o=o.Parent}}}catch(a){const l=ITextTranslation.translateText("ReaderErrorMessages/InstrumentError","Error while reading Instruments");throw new MusicSheetReadingException(l,a)}for(let a=0,l=this.musicSheet.Instruments.length;a0){const a=o[0];if(a){let l=a.element("attributes");l&&(l=l.element("staves")),l?r+=parseInt(l.value,10):r++}}}if(isNaN(r)||r<=0){const s=ITextTranslation.translateText("ReaderErrorMessages/StaffError","Invalid number of staves.");throw new MusicSheetReadingException(s)}return r}getInstrumentNumberOfStavesFromXml(e){let r=0;const s=e.element("measure");if(s){const o=s.element("attributes");let a;o&&(a=o.element("staves")),!o||!a?r=1:r=parseInt(a.value,10)}if(isNaN(r)||r<=0){const o=ITextTranslation.translateText("ReaderErrorMessages/StaffError","Invalid number of Staves.");throw new MusicSheetReadingException(o)}return r}}function commonjsRequire(i){throw new Error('Could not dynamically require "'+i+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var jszip_minExports={},jszip_min={get exports(){return jszip_minExports},set exports(i){jszip_minExports=i}};/*! JSZip v3.10.1 - A JavaScript class for generating and reading zip files (c) 2009-2016 Stuart Knightley Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/main/LICENSE */(function(i,e){(function(r){i.exports=r()})(function(){return function r(s,o,a){function l(d,g){if(!o[d]){if(!s[d]){var m=typeof commonjsRequire=="function"&&commonjsRequire;if(!g&&m)return m(d,!0);if(c)return c(d,!0);var y=new Error("Cannot find module '"+d+"'");throw y.code="MODULE_NOT_FOUND",y}var b=o[d]={exports:{}};s[d][0].call(b.exports,function(S){var A=s[d][1][S];return l(A||S)},b,b.exports,r,s,o,a)}return o[d].exports}for(var c=typeof commonjsRequire=="function"&&commonjsRequire,u=0;u>2,b=(3&d)<<4|g>>4,S=1>6:64,A=2>4,g=(15&y)<<4|(b=c.indexOf(u.charAt(A++)))>>2,m=(3&b)<<6|(S=c.indexOf(u.charAt(A++))),P[E++]=d,b!==64&&(P[E++]=g),S!==64&&(P[E++]=m);return P}},{"./support":30,"./utils":32}],2:[function(r,s,o){var a=r("./external"),l=r("./stream/DataWorker"),c=r("./stream/Crc32Probe"),u=r("./stream/DataLengthProbe");function d(g,m,y,b,S){this.compressedSize=g,this.uncompressedSize=m,this.crc32=y,this.compression=b,this.compressedContent=S}d.prototype={getContentWorker:function(){var g=new l(a.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new u("data_length")),m=this;return g.on("end",function(){if(this.streamInfo.data_length!==m.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),g},getCompressedWorker:function(){return new l(a.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},d.createWorkerFrom=function(g,m,y){return g.pipe(new c).pipe(new u("uncompressedSize")).pipe(m.compressWorker(y)).pipe(new u("compressedSize")).withStreamInfo("compression",m)},s.exports=d},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(r,s,o){var a=r("./stream/GenericWorker");o.STORE={magic:"\0\0",compressWorker:function(){return new a("STORE compression")},uncompressWorker:function(){return new a("STORE decompression")}},o.DEFLATE=r("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(r,s,o){var a=r("./utils"),l=function(){for(var c,u=[],d=0;d<256;d++){c=d;for(var g=0;g<8;g++)c=1&c?3988292384^c>>>1:c>>>1;u[d]=c}return u}();s.exports=function(c,u){return c!==void 0&&c.length?a.getTypeOf(c)!=="string"?function(d,g,m,y){var b=l,S=y+m;d^=-1;for(var A=y;A>>8^b[255&(d^g[A])];return-1^d}(0|u,c,c.length,0):function(d,g,m,y){var b=l,S=y+m;d^=-1;for(var A=y;A>>8^b[255&(d^g.charCodeAt(A))];return-1^d}(0|u,c,c.length,0):0}},{"./utils":32}],5:[function(r,s,o){o.base64=!1,o.binary=!1,o.dir=!1,o.createFolders=!0,o.date=null,o.compression=null,o.compressionOptions=null,o.comment=null,o.unixPermissions=null,o.dosPermissions=null},{}],6:[function(r,s,o){var a=null;a=typeof Promise<"u"?Promise:r("lie"),s.exports={Promise:a}},{lie:37}],7:[function(r,s,o){var a=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",l=r("pako"),c=r("./utils"),u=r("./stream/GenericWorker"),d=a?"uint8array":"array";function g(m,y){u.call(this,"FlateWorker/"+m),this._pako=null,this._pakoAction=m,this._pakoOptions=y,this.meta={}}o.magic="\b\0",c.inherits(g,u),g.prototype.processChunk=function(m){this.meta=m.meta,this._pako===null&&this._createPako(),this._pako.push(c.transformTo(d,m.data),!1)},g.prototype.flush=function(){u.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},g.prototype.cleanUp=function(){u.prototype.cleanUp.call(this),this._pako=null},g.prototype._createPako=function(){this._pako=new l[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var m=this;this._pako.onData=function(y){m.push({data:y,meta:m.meta})}},o.compressWorker=function(m){return new g("Deflate",m)},o.uncompressWorker=function(){return new g("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(r,s,o){function a(b,S){var A,E="";for(A=0;A>>=8;return E}function l(b,S,A,E,x,P){var T,C,M=b.file,B=b.compression,I=P!==d.utf8encode,k=c.transformTo("string",P(M.name)),D=c.transformTo("string",d.utf8encode(M.name)),O=M.comment,z=c.transformTo("string",P(O)),N=c.transformTo("string",d.utf8encode(O)),Q=D.length!==M.name.length,_=N.length!==O.length,U="",G="",H="",R=M.dir,V=M.date,te={crc32:0,compressedSize:0,uncompressedSize:0};S&&!A||(te.crc32=b.crc32,te.compressedSize=b.compressedSize,te.uncompressedSize=b.uncompressedSize);var W=0;S&&(W|=8),I||!Q&&!_||(W|=2048);var $=0,de=0;R&&($|=16),x==="UNIX"?(de=798,$|=function(Y,Z){var ue=Y;return Y||(ue=Z?16893:33204),(65535&ue)<<16}(M.unixPermissions,R)):(de=20,$|=function(Y){return 63&(Y||0)}(M.dosPermissions)),T=V.getUTCHours(),T<<=6,T|=V.getUTCMinutes(),T<<=5,T|=V.getUTCSeconds()/2,C=V.getUTCFullYear()-1980,C<<=4,C|=V.getUTCMonth()+1,C<<=5,C|=V.getUTCDate(),Q&&(G=a(1,1)+a(g(k),4)+D,U+="up"+a(G.length,2)+G),_&&(H=a(1,1)+a(g(z),4)+N,U+="uc"+a(H.length,2)+H);var oe="";return oe+=` \0`,oe+=a(W,2),oe+=B.magic,oe+=a(T,2),oe+=a(C,2),oe+=a(te.crc32,4),oe+=a(te.compressedSize,4),oe+=a(te.uncompressedSize,4),oe+=a(k.length,2),oe+=a(U.length,2),{fileRecord:m.LOCAL_FILE_HEADER+oe+k+U,dirRecord:m.CENTRAL_FILE_HEADER+a(de,2)+oe+a(z.length,2)+"\0\0\0\0"+a($,4)+a(E,4)+k+U+z}}var c=r("../utils"),u=r("../stream/GenericWorker"),d=r("../utf8"),g=r("../crc32"),m=r("../signature");function y(b,S,A,E){u.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=S,this.zipPlatform=A,this.encodeFileName=E,this.streamFiles=b,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}c.inherits(y,u),y.prototype.push=function(b){var S=b.meta.percent||0,A=this.entriesCount,E=this._sources.length;this.accumulate?this.contentBuffer.push(b):(this.bytesWritten+=b.data.length,u.prototype.push.call(this,{data:b.data,meta:{currentFile:this.currentFile,percent:A?(S+100*(A-E-1))/A:100}}))},y.prototype.openedSource=function(b){this.currentSourceOffset=this.bytesWritten,this.currentFile=b.file.name;var S=this.streamFiles&&!b.file.dir;if(S){var A=l(b,S,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:A.fileRecord,meta:{percent:0}})}else this.accumulate=!0},y.prototype.closedSource=function(b){this.accumulate=!1;var S=this.streamFiles&&!b.file.dir,A=l(b,S,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(A.dirRecord),S)this.push({data:function(E){return m.DATA_DESCRIPTOR+a(E.crc32,4)+a(E.compressedSize,4)+a(E.uncompressedSize,4)}(b),meta:{percent:100}});else for(this.push({data:A.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},y.prototype.flush=function(){for(var b=this.bytesWritten,S=0;S=this.index;u--)d=(d<<8)+this.byteAt(u);return this.index+=c,d},readString:function(c){return a.transformTo("string",this.readData(c))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var c=this.readInt(4);return new Date(Date.UTC(1980+(c>>25&127),(c>>21&15)-1,c>>16&31,c>>11&31,c>>5&63,(31&c)<<1))}},s.exports=l},{"../utils":32}],19:[function(r,s,o){var a=r("./Uint8ArrayReader");function l(c){a.call(this,c)}r("../utils").inherits(l,a),l.prototype.readData=function(c){this.checkOffset(c);var u=this.data.slice(this.zero+this.index,this.zero+this.index+c);return this.index+=c,u},s.exports=l},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(r,s,o){var a=r("./DataReader");function l(c){a.call(this,c)}r("../utils").inherits(l,a),l.prototype.byteAt=function(c){return this.data.charCodeAt(this.zero+c)},l.prototype.lastIndexOfSignature=function(c){return this.data.lastIndexOf(c)-this.zero},l.prototype.readAndCheckSignature=function(c){return c===this.readData(4)},l.prototype.readData=function(c){this.checkOffset(c);var u=this.data.slice(this.zero+this.index,this.zero+this.index+c);return this.index+=c,u},s.exports=l},{"../utils":32,"./DataReader":18}],21:[function(r,s,o){var a=r("./ArrayReader");function l(c){a.call(this,c)}r("../utils").inherits(l,a),l.prototype.readData=function(c){if(this.checkOffset(c),c===0)return new Uint8Array(0);var u=this.data.subarray(this.zero+this.index,this.zero+this.index+c);return this.index+=c,u},s.exports=l},{"../utils":32,"./ArrayReader":17}],22:[function(r,s,o){var a=r("../utils"),l=r("../support"),c=r("./ArrayReader"),u=r("./StringReader"),d=r("./NodeBufferReader"),g=r("./Uint8ArrayReader");s.exports=function(m){var y=a.getTypeOf(m);return a.checkSupport(y),y!=="string"||l.uint8array?y==="nodebuffer"?new d(m):l.uint8array?new g(a.transformTo("uint8array",m)):new c(a.transformTo("array",m)):new u(m)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(r,s,o){o.LOCAL_FILE_HEADER="PK",o.CENTRAL_FILE_HEADER="PK",o.CENTRAL_DIRECTORY_END="PK",o.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",o.ZIP64_CENTRAL_DIRECTORY_END="PK",o.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(r,s,o){var a=r("./GenericWorker"),l=r("../utils");function c(u){a.call(this,"ConvertWorker to "+u),this.destType=u}l.inherits(c,a),c.prototype.processChunk=function(u){this.push({data:l.transformTo(this.destType,u.data),meta:u.meta})},s.exports=c},{"../utils":32,"./GenericWorker":28}],25:[function(r,s,o){var a=r("./GenericWorker"),l=r("../crc32");function c(){a.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}r("../utils").inherits(c,a),c.prototype.processChunk=function(u){this.streamInfo.crc32=l(u.data,this.streamInfo.crc32||0),this.push(u)},s.exports=c},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(r,s,o){var a=r("../utils"),l=r("./GenericWorker");function c(u){l.call(this,"DataLengthProbe for "+u),this.propName=u,this.withStreamInfo(u,0)}a.inherits(c,l),c.prototype.processChunk=function(u){if(u){var d=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=d+u.data.length}l.prototype.processChunk.call(this,u)},s.exports=c},{"../utils":32,"./GenericWorker":28}],27:[function(r,s,o){var a=r("../utils"),l=r("./GenericWorker");function c(u){l.call(this,"DataWorker");var d=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,u.then(function(g){d.dataIsReady=!0,d.data=g,d.max=g&&g.length||0,d.type=a.getTypeOf(g),d.isPaused||d._tickAndRepeat()},function(g){d.error(g)})}a.inherits(c,l),c.prototype.cleanUp=function(){l.prototype.cleanUp.call(this),this.data=null},c.prototype.resume=function(){return!!l.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,a.delay(this._tickAndRepeat,[],this)),!0)},c.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(a.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},c.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var u=null,d=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":u=this.data.substring(this.index,d);break;case"uint8array":u=this.data.subarray(this.index,d);break;case"array":case"nodebuffer":u=this.data.slice(this.index,d)}return this.index=d,this.push({data:u,meta:{percent:this.max?this.index/this.max*100:0}})},s.exports=c},{"../utils":32,"./GenericWorker":28}],28:[function(r,s,o){function a(l){this.name=l||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}a.prototype={push:function(l){this.emit("data",l)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(l){this.emit("error",l)}return!0},error:function(l){return!this.isFinished&&(this.isPaused?this.generatedError=l:(this.isFinished=!0,this.emit("error",l),this.previous&&this.previous.error(l),this.cleanUp()),!0)},on:function(l,c){return this._listeners[l].push(c),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(l,c){if(this._listeners[l])for(var u=0;u "+l:l}},s.exports=a},{}],29:[function(r,s,o){var a=r("../utils"),l=r("./ConvertWorker"),c=r("./GenericWorker"),u=r("../base64"),d=r("../support"),g=r("../external"),m=null;if(d.nodestream)try{m=r("../nodejs/NodejsStreamOutputAdapter")}catch(S){}function y(S,A){return new g.Promise(function(E,x){var P=[],T=S._internalType,C=S._outputType,M=S._mimeType;S.on("data",function(B,I){P.push(B),A&&A(I)}).on("error",function(B){P=[],x(B)}).on("end",function(){try{var B=function(I,k,D){switch(I){case"blob":return a.newBlob(a.transformTo("arraybuffer",k),D);case"base64":return u.encode(k);default:return a.transformTo(I,k)}}(C,function(I,k){var D,O=0,z=null,N=0;for(D=0;D"u")o.blob=!1;else{var a=new ArrayBuffer(0);try{o.blob=new Blob([a],{type:"application/zip"}).size===0}catch(c){try{var l=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);l.append(a),o.blob=l.getBlob("application/zip").size===0}catch(u){o.blob=!1}}}try{o.nodestream=!!r("readable-stream").Readable}catch(c){o.nodestream=!1}},{"readable-stream":16}],31:[function(r,s,o){for(var a=r("./utils"),l=r("./support"),c=r("./nodejsUtils"),u=r("./stream/GenericWorker"),d=new Array(256),g=0;g<256;g++)d[g]=252<=g?6:248<=g?5:240<=g?4:224<=g?3:192<=g?2:1;d[254]=d[254]=1;function m(){u.call(this,"utf-8 decode"),this.leftOver=null}function y(){u.call(this,"utf-8 encode")}o.utf8encode=function(b){return l.nodebuffer?c.newBufferFrom(b,"utf-8"):function(S){var A,E,x,P,T,C=S.length,M=0;for(P=0;P>>6:(E<65536?A[T++]=224|E>>>12:(A[T++]=240|E>>>18,A[T++]=128|E>>>12&63),A[T++]=128|E>>>6&63),A[T++]=128|63&E);return A}(b)},o.utf8decode=function(b){return l.nodebuffer?a.transformTo("nodebuffer",b).toString("utf-8"):function(S){var A,E,x,P,T=S.length,C=new Array(2*T);for(A=E=0;A>10&1023,C[E++]=56320|1023&x)}return C.length!==E&&(C.subarray?C=C.subarray(0,E):C.length=E),a.applyFromCharCode(C)}(b=a.transformTo(l.uint8array?"uint8array":"array",b))},a.inherits(m,u),m.prototype.processChunk=function(b){var S=a.transformTo(l.uint8array?"uint8array":"array",b.data);if(this.leftOver&&this.leftOver.length){if(l.uint8array){var A=S;(S=new Uint8Array(A.length+this.leftOver.length)).set(this.leftOver,0),S.set(A,this.leftOver.length)}else S=this.leftOver.concat(S);this.leftOver=null}var E=function(P,T){var C;for((T=T||P.length)>P.length&&(T=P.length),C=T-1;0<=C&&(192&P[C])==128;)C--;return C<0||C===0?T:C+d[P[C]]>T?C:T}(S),x=S;E!==S.length&&(l.uint8array?(x=S.subarray(0,E),this.leftOver=S.subarray(E,S.length)):(x=S.slice(0,E),this.leftOver=S.slice(E,S.length))),this.push({data:o.utf8decode(x),meta:b.meta})},m.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:o.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},o.Utf8DecodeWorker=m,a.inherits(y,u),y.prototype.processChunk=function(b){this.push({data:o.utf8encode(b.data),meta:b.meta})},o.Utf8EncodeWorker=y},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(r,s,o){var a=r("./support"),l=r("./base64"),c=r("./nodejsUtils"),u=r("./external");function d(A){return A}function g(A,E){for(var x=0;x>8;this.dir=!!(16&this.externalFileAttributes),b==0&&(this.dosPermissions=63&this.externalFileAttributes),b==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var b=a(this.extraFields[1].value);this.uncompressedSize===l.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===l.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===l.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===l.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(b){var S,A,E,x=b.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});b.index+4>>6:(b<65536?y[E++]=224|b>>>12:(y[E++]=240|b>>>18,y[E++]=128|b>>>12&63),y[E++]=128|b>>>6&63),y[E++]=128|63&b);return y},o.buf2binstring=function(m){return g(m,m.length)},o.binstring2buf=function(m){for(var y=new a.Buf8(m.length),b=0,S=y.length;b>10&1023,P[S++]=56320|1023&A)}return g(P,S)},o.utf8border=function(m,y){var b;for((y=y||m.length)>m.length&&(y=m.length),b=y-1;0<=b&&(192&m[b])==128;)b--;return b<0||b===0?y:b+u[m[b]]>y?b:y}},{"./common":41}],43:[function(r,s,o){s.exports=function(a,l,c,u){for(var d=65535&a|0,g=a>>>16&65535|0,m=0;c!==0;){for(c-=m=2e3>>1:l>>>1;c[u]=l}return c}();s.exports=function(l,c,u,d){var g=a,m=d+u;l^=-1;for(var y=d;y>>8^g[255&(l^c[y])];return-1^l}},{}],46:[function(r,s,o){var a,l=r("../utils/common"),c=r("./trees"),u=r("./adler32"),d=r("./crc32"),g=r("./messages"),m=0,y=4,b=0,S=-2,A=-1,E=4,x=2,P=8,T=9,C=286,M=30,B=19,I=2*C+1,k=15,D=3,O=258,z=O+D+1,N=42,Q=113,_=1,U=2,G=3,H=4;function R(F,se){return F.msg=g[se],se}function V(F){return(F<<1)-(4F.avail_out&&(re=F.avail_out),re!==0&&(l.arraySet(F.output,se.pending_buf,se.pending_out,re,F.next_out),F.next_out+=re,se.pending_out+=re,F.total_out+=re,F.avail_out-=re,se.pending-=re,se.pending===0&&(se.pending_out=0))}function $(F,se){c._tr_flush_block(F,0<=F.block_start?F.block_start:-1,F.strstart-F.block_start,se),F.block_start=F.strstart,W(F.strm)}function de(F,se){F.pending_buf[F.pending++]=se}function oe(F,se){F.pending_buf[F.pending++]=se>>>8&255,F.pending_buf[F.pending++]=255&se}function Y(F,se){var re,J,K=F.max_chain_length,ie=F.strstart,fe=F.prev_length,he=F.nice_match,le=F.strstart>F.w_size-z?F.strstart-(F.w_size-z):0,me=F.window,be=F.w_mask,ve=F.prev,xe=F.strstart+O,Te=me[ie+fe-1],ye=me[ie+fe];F.prev_length>=F.good_match&&(K>>=2),he>F.lookahead&&(he=F.lookahead);do if(me[(re=se)+fe]===ye&&me[re+fe-1]===Te&&me[re]===me[ie]&&me[++re]===me[ie+1]){ie+=2,re++;do;while(me[++ie]===me[++re]&&me[++ie]===me[++re]&&me[++ie]===me[++re]&&me[++ie]===me[++re]&&me[++ie]===me[++re]&&me[++ie]===me[++re]&&me[++ie]===me[++re]&&me[++ie]===me[++re]&&iele&&--K!=0);return fe<=F.lookahead?fe:F.lookahead}function Z(F){var se,re,J,K,ie,fe,he,le,me,be,ve=F.w_size;do{if(K=F.window_size-F.lookahead-F.strstart,F.strstart>=ve+(ve-z)){for(l.arraySet(F.window,F.window,ve,ve,0),F.match_start-=ve,F.strstart-=ve,F.block_start-=ve,se=re=F.hash_size;J=F.head[--se],F.head[se]=ve<=J?J-ve:0,--re;);for(se=re=ve;J=F.prev[--se],F.prev[se]=ve<=J?J-ve:0,--re;);K+=ve}if(F.strm.avail_in===0)break;if(fe=F.strm,he=F.window,le=F.strstart+F.lookahead,me=K,be=void 0,be=fe.avail_in,me=D)for(ie=F.strstart-F.insert,F.ins_h=F.window[ie],F.ins_h=(F.ins_h<=D&&(F.ins_h=(F.ins_h<=D)if(J=c._tr_tally(F,F.strstart-F.match_start,F.match_length-D),F.lookahead-=F.match_length,F.match_length<=F.max_lazy_match&&F.lookahead>=D){for(F.match_length--;F.strstart++,F.ins_h=(F.ins_h<=D&&(F.ins_h=(F.ins_h<=D&&F.match_length<=F.prev_length){for(K=F.strstart+F.lookahead-D,J=c._tr_tally(F,F.strstart-1-F.prev_match,F.prev_length-D),F.lookahead-=F.prev_length-1,F.prev_length-=2;++F.strstart<=K&&(F.ins_h=(F.ins_h<F.pending_buf_size-5&&(re=F.pending_buf_size-5);;){if(F.lookahead<=1){if(Z(F),F.lookahead===0&&se===m)return _;if(F.lookahead===0)break}F.strstart+=F.lookahead,F.lookahead=0;var J=F.block_start+re;if((F.strstart===0||F.strstart>=J)&&(F.lookahead=F.strstart-J,F.strstart=J,$(F,!1),F.strm.avail_out===0)||F.strstart-F.block_start>=F.w_size-z&&($(F,!1),F.strm.avail_out===0))return _}return F.insert=0,se===y?($(F,!0),F.strm.avail_out===0?G:H):(F.strstart>F.block_start&&($(F,!1),F.strm.avail_out),_)}),new pe(4,4,8,4,ue),new pe(4,5,16,8,ue),new pe(4,6,32,32,ue),new pe(4,4,16,16,ae),new pe(8,16,32,32,ae),new pe(8,16,128,128,ae),new pe(8,32,128,256,ae),new pe(32,128,258,1024,ae),new pe(32,258,258,4096,ae)],o.deflateInit=function(F,se){return ne(F,se,P,15,8,0)},o.deflateInit2=ne,o.deflateReset=ee,o.deflateResetKeep=ge,o.deflateSetHeader=function(F,se){return F&&F.state?F.state.wrap!==2?S:(F.state.gzhead=se,b):S},o.deflate=function(F,se){var re,J,K,ie;if(!F||!F.state||5>8&255),de(J,J.gzhead.time>>16&255),de(J,J.gzhead.time>>24&255),de(J,J.level===9?2:2<=J.strategy||J.level<2?4:0),de(J,255&J.gzhead.os),J.gzhead.extra&&J.gzhead.extra.length&&(de(J,255&J.gzhead.extra.length),de(J,J.gzhead.extra.length>>8&255)),J.gzhead.hcrc&&(F.adler=d(F.adler,J.pending_buf,J.pending,0)),J.gzindex=0,J.status=69):(de(J,0),de(J,0),de(J,0),de(J,0),de(J,0),de(J,J.level===9?2:2<=J.strategy||J.level<2?4:0),de(J,3),J.status=Q);else{var fe=P+(J.w_bits-8<<4)<<8;fe|=(2<=J.strategy||J.level<2?0:J.level<6?1:J.level===6?2:3)<<6,J.strstart!==0&&(fe|=32),fe+=31-fe%31,J.status=Q,oe(J,fe),J.strstart!==0&&(oe(J,F.adler>>>16),oe(J,65535&F.adler)),F.adler=1}if(J.status===69)if(J.gzhead.extra){for(K=J.pending;J.gzindex<(65535&J.gzhead.extra.length)&&(J.pending!==J.pending_buf_size||(J.gzhead.hcrc&&J.pending>K&&(F.adler=d(F.adler,J.pending_buf,J.pending-K,K)),W(F),K=J.pending,J.pending!==J.pending_buf_size));)de(J,255&J.gzhead.extra[J.gzindex]),J.gzindex++;J.gzhead.hcrc&&J.pending>K&&(F.adler=d(F.adler,J.pending_buf,J.pending-K,K)),J.gzindex===J.gzhead.extra.length&&(J.gzindex=0,J.status=73)}else J.status=73;if(J.status===73)if(J.gzhead.name){K=J.pending;do{if(J.pending===J.pending_buf_size&&(J.gzhead.hcrc&&J.pending>K&&(F.adler=d(F.adler,J.pending_buf,J.pending-K,K)),W(F),K=J.pending,J.pending===J.pending_buf_size)){ie=1;break}ie=J.gzindexK&&(F.adler=d(F.adler,J.pending_buf,J.pending-K,K)),ie===0&&(J.gzindex=0,J.status=91)}else J.status=91;if(J.status===91)if(J.gzhead.comment){K=J.pending;do{if(J.pending===J.pending_buf_size&&(J.gzhead.hcrc&&J.pending>K&&(F.adler=d(F.adler,J.pending_buf,J.pending-K,K)),W(F),K=J.pending,J.pending===J.pending_buf_size)){ie=1;break}ie=J.gzindexK&&(F.adler=d(F.adler,J.pending_buf,J.pending-K,K)),ie===0&&(J.status=103)}else J.status=103;if(J.status===103&&(J.gzhead.hcrc?(J.pending+2>J.pending_buf_size&&W(F),J.pending+2<=J.pending_buf_size&&(de(J,255&F.adler),de(J,F.adler>>8&255),F.adler=0,J.status=Q)):J.status=Q),J.pending!==0){if(W(F),F.avail_out===0)return J.last_flush=-1,b}else if(F.avail_in===0&&V(se)<=V(re)&&se!==y)return R(F,-5);if(J.status===666&&F.avail_in!==0)return R(F,-5);if(F.avail_in!==0||J.lookahead!==0||se!==m&&J.status!==666){var he=J.strategy===2?function(le,me){for(var be;;){if(le.lookahead===0&&(Z(le),le.lookahead===0)){if(me===m)return _;break}if(le.match_length=0,be=c._tr_tally(le,0,le.window[le.strstart]),le.lookahead--,le.strstart++,be&&($(le,!1),le.strm.avail_out===0))return _}return le.insert=0,me===y?($(le,!0),le.strm.avail_out===0?G:H):le.last_lit&&($(le,!1),le.strm.avail_out===0)?_:U}(J,se):J.strategy===3?function(le,me){for(var be,ve,xe,Te,ye=le.window;;){if(le.lookahead<=O){if(Z(le),le.lookahead<=O&&me===m)return _;if(le.lookahead===0)break}if(le.match_length=0,le.lookahead>=D&&0le.lookahead&&(le.match_length=le.lookahead)}if(le.match_length>=D?(be=c._tr_tally(le,1,le.match_length-D),le.lookahead-=le.match_length,le.strstart+=le.match_length,le.match_length=0):(be=c._tr_tally(le,0,le.window[le.strstart]),le.lookahead--,le.strstart++),be&&($(le,!1),le.strm.avail_out===0))return _}return le.insert=0,me===y?($(le,!0),le.strm.avail_out===0?G:H):le.last_lit&&($(le,!1),le.strm.avail_out===0)?_:U}(J,se):a[J.level].func(J,se);if(he!==G&&he!==H||(J.status=666),he===_||he===G)return F.avail_out===0&&(J.last_flush=-1),b;if(he===U&&(se===1?c._tr_align(J):se!==5&&(c._tr_stored_block(J,0,0,!1),se===3&&(te(J.head),J.lookahead===0&&(J.strstart=0,J.block_start=0,J.insert=0))),W(F),F.avail_out===0))return J.last_flush=-1,b}return se!==y?b:J.wrap<=0?1:(J.wrap===2?(de(J,255&F.adler),de(J,F.adler>>8&255),de(J,F.adler>>16&255),de(J,F.adler>>24&255),de(J,255&F.total_in),de(J,F.total_in>>8&255),de(J,F.total_in>>16&255),de(J,F.total_in>>24&255)):(oe(J,F.adler>>>16),oe(J,65535&F.adler)),W(F),0=re.w_size&&(ie===0&&(te(re.head),re.strstart=0,re.block_start=0,re.insert=0),me=new l.Buf8(re.w_size),l.arraySet(me,se,be-re.w_size,re.w_size,0),se=me,be=re.w_size),fe=F.avail_in,he=F.next_in,le=F.input,F.avail_in=be,F.next_in=0,F.input=se,Z(re);re.lookahead>=D;){for(J=re.strstart,K=re.lookahead-(D-1);re.ins_h=(re.ins_h<>>=D=k>>>24,T-=D,(D=k>>>16&255)===0)U[g++]=65535&k;else{if(!(16&D)){if(!(64&D)){k=C[(65535&k)+(P&(1<>>=D,T-=D),T<15&&(P+=_[u++]<>>=D=k>>>24,T-=D,!(16&(D=k>>>16&255))){if(!(64&D)){k=M[(65535&k)+(P&(1<>>=D,T-=D,(D=g-m)>3,P&=(1<<(T-=O<<3))-1,a.next_in=u,a.next_out=g,a.avail_in=u>>24&255)+(N>>>8&65280)+((65280&N)<<8)+((255&N)<<24)}function P(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new a.Buf16(320),this.work=new a.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function T(N){var Q;return N&&N.state?(Q=N.state,N.total_in=N.total_out=Q.total=0,N.msg="",Q.wrap&&(N.adler=1&Q.wrap),Q.mode=S,Q.last=0,Q.havedict=0,Q.dmax=32768,Q.head=null,Q.hold=0,Q.bits=0,Q.lencode=Q.lendyn=new a.Buf32(A),Q.distcode=Q.distdyn=new a.Buf32(E),Q.sane=1,Q.back=-1,y):b}function C(N){var Q;return N&&N.state?((Q=N.state).wsize=0,Q.whave=0,Q.wnext=0,T(N)):b}function M(N,Q){var _,U;return N&&N.state?(U=N.state,Q<0?(_=0,Q=-Q):(_=1+(Q>>4),Q<48&&(Q&=15)),Q&&(Q<8||15=H.wsize?(a.arraySet(H.window,Q,_-H.wsize,H.wsize,0),H.wnext=0,H.whave=H.wsize):(U<(G=H.wsize-H.wnext)&&(G=U),a.arraySet(H.window,Q,_-U,G,H.wnext),(U-=G)?(a.arraySet(H.window,Q,_-U,U,0),H.wnext=U,H.whave=H.wsize):(H.wnext+=G,H.wnext===H.wsize&&(H.wnext=0),H.whave>>8&255,_.check=c(_.check,ie,2,0),$=W=0,_.mode=2;break}if(_.flags=0,_.head&&(_.head.done=!1),!(1&_.wrap)||(((255&W)<<8)+(W>>8))%31){N.msg="incorrect header check",_.mode=30;break}if((15&W)!=8){N.msg="unknown compression method",_.mode=30;break}if($-=4,F=8+(15&(W>>>=4)),_.wbits===0)_.wbits=F;else if(F>_.wbits){N.msg="invalid window size",_.mode=30;break}_.dmax=1<>8&1),512&_.flags&&(ie[0]=255&W,ie[1]=W>>>8&255,_.check=c(_.check,ie,2,0)),$=W=0,_.mode=3;case 3:for(;$<32;){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}_.head&&(_.head.time=W),512&_.flags&&(ie[0]=255&W,ie[1]=W>>>8&255,ie[2]=W>>>16&255,ie[3]=W>>>24&255,_.check=c(_.check,ie,4,0)),$=W=0,_.mode=4;case 4:for(;$<16;){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}_.head&&(_.head.xflags=255&W,_.head.os=W>>8),512&_.flags&&(ie[0]=255&W,ie[1]=W>>>8&255,_.check=c(_.check,ie,2,0)),$=W=0,_.mode=5;case 5:if(1024&_.flags){for(;$<16;){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}_.length=W,_.head&&(_.head.extra_len=W),512&_.flags&&(ie[0]=255&W,ie[1]=W>>>8&255,_.check=c(_.check,ie,2,0)),$=W=0}else _.head&&(_.head.extra=null);_.mode=6;case 6:if(1024&_.flags&&(V<(Y=_.length)&&(Y=V),Y&&(_.head&&(F=_.head.extra_len-_.length,_.head.extra||(_.head.extra=new Array(_.head.extra_len)),a.arraySet(_.head.extra,U,H,Y,F)),512&_.flags&&(_.check=c(_.check,U,Y,H)),V-=Y,H+=Y,_.length-=Y),_.length))break e;_.length=0,_.mode=7;case 7:if(2048&_.flags){if(V===0)break e;for(Y=0;F=U[H+Y++],_.head&&F&&_.length<65536&&(_.head.name+=String.fromCharCode(F)),F&&Y>9&1,_.head.done=!0),N.adler=_.check=0,_.mode=12;break;case 10:for(;$<32;){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}N.adler=_.check=x(W),$=W=0,_.mode=11;case 11:if(_.havedict===0)return N.next_out=R,N.avail_out=te,N.next_in=H,N.avail_in=V,_.hold=W,_.bits=$,2;N.adler=_.check=1,_.mode=12;case 12:if(Q===5||Q===6)break e;case 13:if(_.last){W>>>=7&$,$-=7&$,_.mode=27;break}for(;$<3;){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}switch(_.last=1&W,$-=1,3&(W>>>=1)){case 0:_.mode=14;break;case 1:if(O(_),_.mode=20,Q!==6)break;W>>>=2,$-=2;break e;case 2:_.mode=17;break;case 3:N.msg="invalid block type",_.mode=30}W>>>=2,$-=2;break;case 14:for(W>>>=7&$,$-=7&$;$<32;){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}if((65535&W)!=(W>>>16^65535)){N.msg="invalid stored block lengths",_.mode=30;break}if(_.length=65535&W,$=W=0,_.mode=15,Q===6)break e;case 15:_.mode=16;case 16:if(Y=_.length){if(V>>=5,$-=5,_.ndist=1+(31&W),W>>>=5,$-=5,_.ncode=4+(15&W),W>>>=4,$-=4,286<_.nlen||30<_.ndist){N.msg="too many length or distance symbols",_.mode=30;break}_.have=0,_.mode=18;case 18:for(;_.have<_.ncode;){for(;$<3;){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}_.lens[fe[_.have++]]=7&W,W>>>=3,$-=3}for(;_.have<19;)_.lens[fe[_.have++]]=0;if(_.lencode=_.lendyn,_.lenbits=7,re={bits:_.lenbits},se=d(0,_.lens,0,19,_.lencode,0,_.work,re),_.lenbits=re.bits,se){N.msg="invalid code lengths set",_.mode=30;break}_.have=0,_.mode=19;case 19:for(;_.have<_.nlen+_.ndist;){for(;pe=(K=_.lencode[W&(1<<_.lenbits)-1])>>>16&255,Se=65535&K,!((ae=K>>>24)<=$);){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}if(Se<16)W>>>=ae,$-=ae,_.lens[_.have++]=Se;else{if(Se===16){for(J=ae+2;$>>=ae,$-=ae,_.have===0){N.msg="invalid bit length repeat",_.mode=30;break}F=_.lens[_.have-1],Y=3+(3&W),W>>>=2,$-=2}else if(Se===17){for(J=ae+3;$>>=ae)),W>>>=3,$-=3}else{for(J=ae+7;$>>=ae)),W>>>=7,$-=7}if(_.have+Y>_.nlen+_.ndist){N.msg="invalid bit length repeat",_.mode=30;break}for(;Y--;)_.lens[_.have++]=F}}if(_.mode===30)break;if(_.lens[256]===0){N.msg="invalid code -- missing end-of-block",_.mode=30;break}if(_.lenbits=9,re={bits:_.lenbits},se=d(g,_.lens,0,_.nlen,_.lencode,0,_.work,re),_.lenbits=re.bits,se){N.msg="invalid literal/lengths set",_.mode=30;break}if(_.distbits=6,_.distcode=_.distdyn,re={bits:_.distbits},se=d(m,_.lens,_.nlen,_.ndist,_.distcode,0,_.work,re),_.distbits=re.bits,se){N.msg="invalid distances set",_.mode=30;break}if(_.mode=20,Q===6)break e;case 20:_.mode=21;case 21:if(6<=V&&258<=te){N.next_out=R,N.avail_out=te,N.next_in=H,N.avail_in=V,_.hold=W,_.bits=$,u(N,oe),R=N.next_out,G=N.output,te=N.avail_out,H=N.next_in,U=N.input,V=N.avail_in,W=_.hold,$=_.bits,_.mode===12&&(_.back=-1);break}for(_.back=0;pe=(K=_.lencode[W&(1<<_.lenbits)-1])>>>16&255,Se=65535&K,!((ae=K>>>24)<=$);){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}if(pe&&!(240&pe)){for(ge=ae,ee=pe,ne=Se;pe=(K=_.lencode[ne+((W&(1<>ge)])>>>16&255,Se=65535&K,!(ge+(ae=K>>>24)<=$);){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}W>>>=ge,$-=ge,_.back+=ge}if(W>>>=ae,$-=ae,_.back+=ae,_.length=Se,pe===0){_.mode=26;break}if(32&pe){_.back=-1,_.mode=12;break}if(64&pe){N.msg="invalid literal/length code",_.mode=30;break}_.extra=15&pe,_.mode=22;case 22:if(_.extra){for(J=_.extra;$>>=_.extra,$-=_.extra,_.back+=_.extra}_.was=_.length,_.mode=23;case 23:for(;pe=(K=_.distcode[W&(1<<_.distbits)-1])>>>16&255,Se=65535&K,!((ae=K>>>24)<=$);){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}if(!(240&pe)){for(ge=ae,ee=pe,ne=Se;pe=(K=_.distcode[ne+((W&(1<>ge)])>>>16&255,Se=65535&K,!(ge+(ae=K>>>24)<=$);){if(V===0)break e;V--,W+=U[H++]<<$,$+=8}W>>>=ge,$-=ge,_.back+=ge}if(W>>>=ae,$-=ae,_.back+=ae,64&pe){N.msg="invalid distance code",_.mode=30;break}_.offset=Se,_.extra=15&pe,_.mode=24;case 24:if(_.extra){for(J=_.extra;$>>=_.extra,$-=_.extra,_.back+=_.extra}if(_.offset>_.dmax){N.msg="invalid distance too far back",_.mode=30;break}_.mode=25;case 25:if(te===0)break e;if(Y=oe-te,_.offset>Y){if((Y=_.offset-Y)>_.whave&&_.sane){N.msg="invalid distance too far back",_.mode=30;break}Z=Y>_.wnext?(Y-=_.wnext,_.wsize-Y):_.wnext-Y,Y>_.length&&(Y=_.length),ue=_.window}else ue=G,Z=R-_.offset,Y=_.length;for(teI?(D=Z[ue+E[Q]],$[de+E[Q]]):(D=96,0),P=1<>R)+(T-=P)]=k<<24|D<<16|O|0,T!==0;);for(P=1<>=1;if(P!==0?(W&=P-1,W+=P):W=0,Q++,--oe[N]==0){if(N===U)break;N=m[y+E[Q]]}if(G>>7)]}function de(K,ie){K.pending_buf[K.pending++]=255&ie,K.pending_buf[K.pending++]=ie>>>8&255}function oe(K,ie,fe){K.bi_valid>x-fe?(K.bi_buf|=ie<>x-K.bi_valid,K.bi_valid+=fe-x):(K.bi_buf|=ie<>>=1,fe<<=1,0<--ie;);return fe>>>1}function ue(K,ie,fe){var he,le,me=new Array(E+1),be=0;for(he=1;he<=E;he++)me[he]=be=be+fe[he-1]<<1;for(le=0;le<=ie;le++){var ve=K[2*le+1];ve!==0&&(K[2*le]=Z(me[ve]++,ve))}}function ae(K){var ie;for(ie=0;ie>1;1<=fe;fe--)ge(K,me,fe);for(le=xe;fe=K.heap[1],K.heap[1]=K.heap[K.heap_len--],ge(K,me,1),he=K.heap[1],K.heap[--K.heap_max]=fe,K.heap[--K.heap_max]=he,me[2*le]=me[2*fe]+me[2*he],K.depth[le]=(K.depth[fe]>=K.depth[he]?K.depth[fe]:K.depth[he])+1,me[2*fe+1]=me[2*he+1]=le,K.heap[1]=le++,ge(K,me,1),2<=K.heap_len;);K.heap[--K.heap_max]=K.heap[1],function(ye,Pe){var Me,Ne,it,Le,Qe,Fe,Oe=Pe.dyn_tree,ft=Pe.max_code,ke=Pe.stat_desc.static_tree,Re=Pe.stat_desc.has_stree,pt=Pe.stat_desc.extra_bits,lt=Pe.stat_desc.extra_base,Ue=Pe.stat_desc.max_length,we=0;for(Le=0;Le<=E;Le++)ye.bl_count[Le]=0;for(Oe[2*ye.heap[ye.heap_max]+1]=0,Me=ye.heap_max+1;Me>=7;le>>=1)if(1&Te&&ve.dyn_ltree[2*xe]!==0)return l;if(ve.dyn_ltree[18]!==0||ve.dyn_ltree[20]!==0||ve.dyn_ltree[26]!==0)return c;for(xe=32;xe>>3,(me=K.static_len+3+7>>>3)<=le&&(le=me)):le=me=fe+5,fe+4<=le&&ie!==-1?J(K,ie,fe,he):K.strategy===4||me===le?(oe(K,2+(he?1:0),3),ee(K,z,N)):(oe(K,4+(he?1:0),3),function(ve,xe,Te,ye){var Pe;for(oe(ve,xe-257,5),oe(ve,Te-1,5),oe(ve,ye-4,4),Pe=0;Pe>>8&255,K.pending_buf[K.d_buf+2*K.last_lit+1]=255&ie,K.pending_buf[K.l_buf+K.last_lit]=255&fe,K.last_lit++,ie===0?K.dyn_ltree[2*fe]++:(K.matches++,ie--,K.dyn_ltree[2*(_[fe]+m+1)]++,K.dyn_dtree[2*$(ie)]++),K.last_lit===K.lit_bufsize-1},o._tr_align=function(K){oe(K,2,3),Y(K,T,z),function(ie){ie.bi_valid===16?(de(ie,ie.bi_buf),ie.bi_buf=0,ie.bi_valid=0):8<=ie.bi_valid&&(ie.pending_buf[ie.pending++]=255&ie.bi_buf,ie.bi_buf>>=8,ie.bi_valid-=8)}(K)}},{"../utils/common":41}],53:[function(r,s,o){s.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(r,s,o){(function(a){(function(l,c){if(!l.setImmediate){var u,d,g,m,y=1,b={},S=!1,A=l.document,E=Object.getPrototypeOf&&Object.getPrototypeOf(l);E=E&&E.setTimeout?E:l,u={}.toString.call(l.process)==="[object process]"?function(C){process.nextTick(function(){P(C)})}:function(){if(l.postMessage&&!l.importScripts){var C=!0,M=l.onmessage;return l.onmessage=function(){C=!1},l.postMessage("","*"),l.onmessage=M,C}}()?(m="setImmediate$"+Math.random()+"$",l.addEventListener?l.addEventListener("message",T,!1):l.attachEvent("onmessage",T),function(C){l.postMessage(m+C,"*")}):l.MessageChannel?((g=new MessageChannel).port1.onmessage=function(C){P(C.data)},function(C){g.port2.postMessage(C)}):A&&"onreadystatechange"in A.createElement("script")?(d=A.documentElement,function(C){var M=A.createElement("script");M.onreadystatechange=function(){P(C),M.onreadystatechange=null,d.removeChild(M),M=null},d.appendChild(M)}):function(C){setTimeout(P,0,C)},E.setImmediate=function(C){typeof C!="function"&&(C=new Function(""+C));for(var M=new Array(arguments.length-1),B=0;B"u"?a===void 0?this:a:self)}).call(this,typeof commonjsGlobal<"u"?commonjsGlobal:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(jszip_min);class MXLHelper{static MXLtoIXmlElement(e){const r=new jszip_minExports;return r.loadAsync(e).then(a=>r.file("META-INF/container.xml").async("text"),a=>{throw a}).then(a=>{const u=new DOMParser().parseFromString(a,"text/xml").getElementsByTagName("rootfile")[0].getAttribute("full-path");return r.file(u).async("text")},a=>{throw a}).then(a=>{const c=new DOMParser().parseFromString(a,"text/xml"),u=new IXmlElement(c.documentElement);return Promise.resolve(u)},a=>{throw a}).then(a=>a,a=>{throw new Error("extractSheetFromMxl: "+a.message)})}static MXLtoXMLstring(e){const r=new jszip_minExports;return r.loadAsync(e).then(s=>r.file("META-INF/container.xml").async("text"),s=>{throw loglevelExports.error(s),s}).then(s=>{const l=new DOMParser().parseFromString(s,"text/xml").getElementsByTagName("rootfile")[0].getAttribute("full-path");return r.file(l).async("text")},s=>{throw s})}}class PlaybackNoteGenerator{calculate(e){const r=new MusicPartManagerIterator(e);for(;!r.EndReached;){const s=r.CurrentEnrolledTimestamp,o=r.CurrentAudibleVoiceEntries();for(const a of o)this.handleVoiceEntry(e,a,s);r.moveToNext()}}handleVoiceEntry(e,r,s){if(r.IsGrace)return;const o=r.ParentVoice;let a;e.PlaybackDataDict.containsKey(o)?a=e.PlaybackDataDict.getValue(o):(a=[],e.PlaybackDataDict.setValue(o,a));for(const l of r.PlaybackEntries)if(l.HasNotes){for(const u of l.Notes)u.setLength();const c=Fraction$1.plus(s,l.TimestampShift);PlaybackNoteGenerator.addEntrySorted(a,l,c)}}static addEntrySorted(e,r,s){if(e.length===0)e.push({enrolledTimestamp:s,playbackEntry:r});else for(let o=e.length-1;o>=0;o--){const a=e[o];if(s.RealValue>a.enrolledTimestamp.RealValue)if(o===e.length-1){e.push({enrolledTimestamp:s,playbackEntry:r});break}else{e.splice(o+1,0,{enrolledTimestamp:s,playbackEntry:r});break}}}}class ScreenViewingRegion{constructor(e,r,s,o){this.psi=new BoundingBox$1(void 0),this.displaySizeInPixel=e,this.RelativeDisplaySize=r,this.RelativeDisplayPosition=s,this.WidthInUnits=o}static createWithRelativeDefaults(e,r){return new ScreenViewingRegion(e,new SizeF2D(1,1),new PointF2D(0,0),r)}static createWithDefaults(){return new ScreenViewingRegion(new SizeF2D(1,1),new SizeF2D(1,1),new PointF2D(0,0),1)}get UpperLeftPositionInUnits(){return this.psi.AbsolutePosition}set UpperLeftPositionInUnits(e){this.psi.AbsolutePosition=e}get DisplaySizeInPixel(){return this.displaySizeInPixel}set DisplaySizeInPixel(e){this.displaySizeInPixel=e,this.regionSizeInPixel=new SizeF2D(this.displaySizeInPixel.width*this.relativeRegionSize.width,this.displaySizeInPixel.height*this.relativeRegionSize.height),this.recalculateDependentVariables()}get RelativeDisplaySize(){return this.relativeRegionSize}set RelativeDisplaySize(e){this.relativeRegionSize=e,this.regionSizeInPixel=new SizeF2D(this.displaySizeInPixel.width*this.relativeRegionSize.width,this.displaySizeInPixel.height*this.relativeRegionSize.height),this.recalculateDependentVariables()}get RegionSizeInPixel(){return this.regionSizeInPixel}get WidthInUnits(){return this.psi.BorderRight}set WidthInUnits(e){this.psi.BorderRight=e,this.recalculateDependentVariables()}get ViewRegionInUnits(){return new SizeF2D(this.psi.BorderRight,this.psi.BorderBottom)}isVisible(e,r){const s=this.psi.collisionDetection(e);return this.psi.liesInsideBorders(e),s}isInsideDisplayArea(e,r){return this.RelativeDisplayPosition.x<=e&&e<=this.RelativeDisplayPosition.x+this.RelativeDisplaySize.width&&this.RelativeDisplayPosition.y<=r&&r<=this.RelativeDisplayPosition.y+this.RelativeDisplaySize.height}transformToUnitCoordinates(e){return new PointF2D(this.UpperLeftPositionInUnits.x+this.ViewRegionInUnits.width*((e.x-this.RelativeDisplayPosition.x)/this.RelativeDisplaySize.width),this.UpperLeftPositionInUnits.y+this.ViewRegionInUnits.height*((e.y-this.RelativeDisplayPosition.y)/this.RelativeDisplaySize.height))}transformLengthXToUnitCoordinates(e){return e/this.horizontalUnitToPixelRatio}transformLengthYToUnitCoordinates(e){return e/this.verticalUnitToPixelRatio}recalculateDependentVariables(){const e=this.regionSizeInPixel.width/this.regionSizeInPixel.height;this.psi.BorderBottom=this.psi.BorderRight/e,this.horizontalUnitToPixelRatio=this.regionSizeInPixel.width/this.ViewRegionInUnits.width,this.verticalUnitToPixelRatio=this.regionSizeInPixel.height/this.ViewRegionInUnits.height}}class AbstractZoomView{constructor(e){this.aspectRatio=1,this.zoomViews=[],this.mouseZoomMode=!1,this.autoScrollY=!0,this.displayInteractionManager=e,this.displayInteractionManager.addListener(this),this.offsetXMin=Number.MIN_VALUE,this.offsetYMin=Number.MIN_VALUE,this.rangeXMin=1,this.rangeYMin=1,this.offsetXMax=Number.MAX_VALUE,this.offsetYMax=Number.MAX_VALUE,this.rangeXMax=1e9,this.rangeYMax=1e9,this.XScrollingEnabled=!1,this.YScrollingEnabled=!0}positionTouched(e,r){if(!this.convertToUnitsReady())return;const s=this.getPositionInUnits(e,r);this.unitPosTouched(s,e,r)}get TouchActive(){return this.displayInteractionManager.TouchActive}get TouchMoving(){return this.displayInteractionManager.TouchMoving}positionDoubleTouched(e,r){if(!this.convertToUnitsReady())return;const s=this.getPositionInUnits(e,r);this.unitPosDoubleTouched(s,e,r)}get UsesManuallyControlledZoomMode(){return this.usesManuallyControlledZoomMode}set UsesManuallyControlledZoomMode(e){this.usesManuallyControlledZoomMode=e}mouseDown(e,r,s=!1){if(!this.convertToUnitsReady())return;this.selectScrollControllerY(!1),this.lastRangeX=Math.max(1,this.RangeX),this.lastRangeY=Math.max(1,this.RangeY),this.lastOffsetX=this.OffsetX,this.lastOffsetY=this.OffsetY;const o=this.getPositionInUnits(e,r);this.unitPosTouchDown(o,e,r),this.usesManuallyControlledZoomMode||(s?this.mouseZoomMode=!0:this.mouseZoomMode=!1)}mouseUp(e,r){const s=this.getPositionInUnits(e,r);this.unitPosTouchUp(s,e,r)}mouseMove(e,r,s,o){this.mouseZoomMode?(Math.abs(s-0)>1e-8&&(this.RangeX=Math.abs(this.lastRangeX/(1+s))),!this.lockRanges&&Math.abs(o-0)>1e-8&&(this.RangeY=Math.abs(this.lastRangeY/(1-o)))):(Math.abs(s-0)>1e-8&&(this.OffsetX=this.lastOffsetX-s*this.RangeX),Math.abs(o-0)>1e-8&&(this.OffsetY=this.lastOffsetY-o*this.RangeY));const a=this.getPositionInUnits(e,r);this.unitPosMove(a,e,r)}zoom(e){this.RangeX=Math.abs(this.lastRangeX/e)}addZoomView(e){this.zoomViews.push(e)}get OffsetX(){return this.offsetX}set OffsetX(e){this.offsetX=Math.min(this.offsetXMax,Math.max(this.offsetXMin,e));for(const r of this.zoomViews)r.viewportXChanged(this.offsetX,this.RangeX)}get OffsetY(){return this.offsetY}set OffsetY(e){this.offsetY=e,this.offsetY>this.offsetYMax?this.offsetY=this.offsetYMax:this.offsetY(i[i.SingleTouch=0]="SingleTouch",i[i.DoubleTouch=1]="DoubleTouch",i[i.TouchUp=2]="TouchUp",i[i.TouchDown=3]="TouchDown",i[i.Move=4]="Move",i))(InteractionType||{});class VoiceEntryInteractionListener{constructor(e){this.renderingManager=e}userDisplayInteraction(e,r,s){var o,a;switch(s){case InteractionType.TouchDown:case InteractionType.SingleTouch:case InteractionType.DoubleTouch:{const l=this.renderingManager.GraphicalMusicSheet.GetNearestVoiceEntry(r);if(l&&l.parentStaffEntry.parentVerticalContainer!==void 0){const c=l.parentStaffEntry.parentVerticalContainer.AbsoluteTimestamp;this.renderingManager.setStartPosition(c),((o=l.notes[0])==null?void 0:o.sourceNote.Pitch)!==void 0&&((a=this.renderingManager.PlaybackManager)==null||a.playVoiceEntry(l.parentVoiceEntry))}break}}}}class SheetRenderingManager extends AbstractZoomView{constructor(e,r){super(e),this.mainViewingRegion=ScreenViewingRegion.createWithDefaults(),this.tryAgainToRenderCount=0,this.yOffsetMouseDown=Number.MIN_VALUE,this.unlockCursorDistancePixel=50,this.relativeTopPosition=.06,this.internalPreviewImageScale=3,this.listeners=[],this.LockDisplayToCursor=!0,this.ZoomActive=!1,this.rules=r,this.addZoomView(this),this.lockRanges=!0,this.TopBarHeightInPixel=70,this.BottomBarHeightInPixel=0,this.rules.UseDefaultVoiceInteractionListener&&this.listeners.push(new VoiceEntryInteractionListener(this))}addListener(e){this.listeners.push(e)}get Listeners(){return this.listeners}convertToUnitsReady(){return this.graphicalMusicSheet!==void 0}unitPosTouched(e,r,s){if(!this.SingleTouchDisabled){const o=new PointF2D(r,s);this.handleUserDisplayInteraction(o,e,InteractionType.SingleTouch)}}unitPosDoubleTouched(e,r,s){if(!this.DoubleTouchDisabled){const o=new PointF2D(r,s);this.handleUserDisplayInteraction(o,e,InteractionType.DoubleTouch)}}unitPosTouchDown(e,r,s){const o=new PointF2D(r,s);this.handleUserDisplayInteraction(o,e,InteractionType.TouchDown),this.yOffsetMouseDown=e.y}unitPosTouchUp(e,r,s){const o=new PointF2D(r,s);this.handleUserDisplayInteraction(o,e,InteractionType.TouchUp),this.displayInteractionManager.WasZoomGestureActive===!1&&this.unlockFromCursorIfNecessary(e),this.yOffsetMouseDown=Number.MIN_VALUE}unitPosMove(e,r,s){const o=new PointF2D(r,s);this.handleUserDisplayInteraction(o,e,InteractionType.Move),this.unlockFromCursorIfNecessary(e)}get MainViewingRegion(){return this.mainViewingRegion}setMusicSheet(e){this.graphicalMusicSheet=e,this.adaptDisplayLimitsToSheet(),this.setYOffset(0,!0)}viewportXChanged(e,r){this.graphicalMusicSheet!==void 0&&this.horizontalViewportChanged(e,r)}viewportYChanged(e,r){this.graphicalMusicSheet!==void 0&&(this.yOffsetMouseDown<=Number.MIN_VALUE+.5&&(this.yOffsetMouseDown=e),this.verticalViewportChanged(e,r))}displaySizeChanged(e,r){super.viewSizeChanged(e,r),!(Math.abs(e-0)<1e-7||Math.abs(r-0)<1e-7)&&(this.graphicalMusicSheet!==void 0&&this.graphicalMusicSheet.EnforceRedrawOfMusicSystems(),this.mainViewingRegion.DisplaySizeInPixel=new SizeF2D(e,r),this.adaptDisplayLimitsToSheet())}calcDisplayYPosition(e){return e.PositionAndShape.AbsolutePosition.y+e.PositionAndShape.BorderMarginTop-this.topBarHeightInUnits()-this.relativeTopPosition*this.heightWithoutTopBottomBarsInUnits()}yPositionForLastSystem(e){return e.PositionAndShape.AbsolutePosition.y+e.PositionAndShape.BorderMarginBottom-this.topBarHeightInUnits()-(1-this.relativeTopPosition)*this.heightWithoutTopBottomBarsInUnits()}scorePositionChanged(e,r,s,o,a,l){const c=this.calcDisplayYPosition(o);this.setYPosition(c,l)}setXPosition(e,r){this.LockDisplayToCursor&&this.setXOffset(e,r)}setYPosition(e,r){this.LockDisplayToCursor&&this.setYOffset(e,r)}get DrawingParameters(){return this.musicSheetDrawer.drawingParameters}topBarHeightInUnits(){return this.mainViewingRegion.transformLengthYToUnitCoordinates(this.TopBarHeightInPixel)}bottomBarHeightInUnits(){return this.mainViewingRegion.transformLengthYToUnitCoordinates(this.BottomBarHeightInPixel)}heightWithoutTopBottomBarsInUnits(){return this.mainViewingRegion.ViewRegionInUnits.height-this.topBarHeightInUnits()-this.bottomBarHeightInUnits()}activePositionToBottomBarHeight(){return(this.mainViewingRegion.ViewRegionInUnits.height-this.topBarHeightInUnits()-this.bottomBarHeightInUnits())*(1-2*this.relativeTopPosition)}getClickPosition(e,r){return this.mainViewingRegion.transformToUnitCoordinates(new PointF2D(e,r))}graphicalObjectIsVisible(e){return this.mainViewingRegion.isVisible(e,!1)}adaptDisplayLimitsToSheet(){if(this.graphicalMusicSheet===void 0||this.graphicalMusicSheet.MusicPages.length===0||this.graphicalMusicSheet.MusicPages[0].MusicSystems.length===0)return;this.offsetXMin=0,this.rangeXMin=this.graphicalMusicSheet.MinAllowedSystemWidth,this.rangeXMax=300,this.offsetYMin=-.3*this.RangeY;const e=this.graphicalMusicSheet.MusicPages.last().PositionAndShape;this.offsetYMax=Math.max(0,e.BorderMarginBottom-.7*this.RangeY),this.OffsetY>this.offsetYMax&&this.setYOffset(this.offsetYMax,!0)}horizontalViewportChanged(e,r){this.mainViewingRegion.WidthInUnits!==r&&(this.mainViewingRegion.WidthInUnits=r)}verticalViewportChanged(e,r){this.mainViewingRegion.UpperLeftPositionInUnits=new PointF2D(this.mainViewingRegion.UpperLeftPositionInUnits.x,e)}unlockFromCursorIfNecessary(e){if(this.LockDisplayToCursor===!1||this.ZoomActive||this.displayInteractionManager.ZoomGestureActive||this.displayInteractionManager.WasZoomGestureActive)return;Math.abs((e.y-this.yOffsetMouseDown)*this.mainViewingRegion.RegionSizeInPixel.height/this.mainViewingRegion.ViewRegionInUnits.height)>this.unlockCursorDistancePixel&&(this.LockDisplayToCursor=!1)}getPositionInUnits(e,r){return this.mainViewingRegion.transformToUnitCoordinates(new PointF2D(e,r))}handleUserDisplayInteraction(e,r,s){switch(s){case InteractionType.TouchDown:case InteractionType.SingleTouch:case InteractionType.DoubleTouch:case InteractionType.TouchUp:case InteractionType.TouchDown:case InteractionType.Move:for(const o of this.listeners)o.userDisplayInteraction(e,r,s);break;default:throw new Error("type")}}setStartPosition(e){var r;this.graphicalMusicSheet!==void 0&&(this.graphicalMusicSheet.ParentMusicSheet.SelectionStart=e,(r=this.PlaybackManager)==null||r.reset())}get GraphicalMusicSheet(){return this.graphicalMusicSheet}}class WebSheetRenderingManager extends SheetRenderingManager{mouseMove(e,r,s,o){const a=this.getPositionInUnits(e,r);this.unitPosMove(a,e,r)}}class AbstractDisplayInteractionManager{constructor(){this.listeners=[],this.zoomGestureActive=!1,this.touchCount=0,this.touchActive=!1,this.touchMoving=!1,this.displayWidth=1,this.displayHeight=1,this.displayDpi=96,this.maxNumerOfFingers=2,this.movementThreshInch=.075,this.interactionWasZoomGesture=!1}addListener(e){this.listeners.push(e)}get ZoomGestureActive(){return this.zoomGestureActive}get WasZoomGestureActive(){return this.interactionWasZoomGesture}displaySizeChanged(e,r){this.displayWidth=e,this.displayHeight=r;for(const s of this.listeners)s.displaySizeChanged(this.displayWidth,this.displayHeight)}Dispose(){this.dispose()}Initialize(){this.initialize()}get DisplayDpi(){return this.displayDpi}get TouchActive(){return this.touchActive}get TouchMoving(){return this.touchMoving}touchDown(e,r,s){this.interactionWasZoomGesture=!1;const o=e/this.displayWidth,a=r/this.displayHeight;this.lastRelPosX=o,this.lastRelPosY=a,this.lastPixelX=e,this.lastPixelY=r,this.touchActive=!0,this.touchMoving=!1,this.touchCount=Math.min(this.touchCount+1,this.maxNumerOfFingers);for(const l of this.listeners)l.mouseDown(o,a,!s)}move(e,r){if(this.touchActive&&!this.zoomGestureActive){const s=e/this.displayWidth,o=r/this.displayHeight,a=s-this.lastRelPosX,l=o-this.lastRelPosY;this.touchMoving=!0;for(const c of this.listeners)c.mouseMove(s,o,a,l)}}zoomGestureStarted(){this.zoomGestureActive=!0}zoomGestureCompleted(){this.zoomGestureActive=!1,this.interactionWasZoomGesture=!0}zoomGestureMove(e){this.zoomGestureActive&&this.listeners.forEach(function(r){r.zoom(e)})}touchUp(e,r){this.touchActive=!1,this.touchMoving=!1,this.touchCount=Math.max(0,this.touchCount-1);const s=e/this.displayWidth,o=r/this.displayHeight;for(const a of this.listeners)a.mouseUp(s,o)}click(e,r){if(!this.mouseDidMove(this.lastPixelX,e,this.lastPixelY,r)&&!this.ZoomGestureActive){const s=e/this.displayWidth,o=r/this.displayHeight;for(const a of this.listeners)a.positionTouched(s,o)}}doubleClick(e,r){if(!this.mouseDidMove(this.lastPixelX,e,this.lastPixelY,r)&&!this.ZoomGestureActive){const s=e/this.displayWidth,o=r/this.displayHeight;for(const a of this.listeners)a.positionDoubleTouched(s,o)}}mouseDidMove(e,r,s,o){const a=Math.abs(e-r)/this.displayDpi,l=Math.abs(s-o)/this.displayDpi;return a>this.movementThreshInch||l>this.movementThreshInch}}class WebDisplayInteractionManager extends AbstractDisplayInteractionManager{constructor(e){super(),this.fullOffsetLeft=0,this.fullOffsetTop=0,this.fullScrollTop=0,this.fullScrollLeft=0,this.parentScrollMap=new Map,this.scrollCallbackMap=new Map,this.timeout=void 0,this.resizeObserver=void 0,this.EventCallbackMap=new Dictionary,this.DOUBLE_CLICK_WINDOW=200,this.lastClick=0,this.osmdSheetMusicContainer=e,this.listenForInteractions()}get FullOffsetTop(){return this.fullOffsetTop}get FullScrollTop(){return this.fullScrollTop}get FullOffsetLeft(){return this.fullOffsetLeft}get FullScrollLeft(){return this.fullScrollLeft}static resizeCallback(e,r){clearTimeout(r.timeout),r.timeout=setTimeout(()=>{r.fullOffsetLeft=0,r.fullOffsetTop=0;let s=r.osmdSheetMusicContainer;for(;s;)r.fullOffsetLeft+=s.offsetLeft,r.fullOffsetTop+=s.offsetTop,s=s.offsetParent;r.resizeEventListener(),r.deregisterScrollOffsets(),r.registerScrollOffsets()},500)}registerScrollOffsets(){let e=this.osmdSheetMusicContainer;this.fullScrollTop=0,this.fullScrollLeft=0;const r=this;for(;e&&e!==document.documentElement;){if(this.parentScrollMap.set(e,[e.scrollTop,e.scrollLeft]),this.fullScrollLeft+=e.scrollLeft,this.fullScrollTop+=e.scrollTop,e.scrollHeight>e.clientHeight){const s=function(o){const a=r.parentScrollMap.get(this),l=a[0],c=a[1];r.fullScrollTop=r.fullScrollTop-l+this.scrollTop,r.fullScrollLeft=r.fullScrollLeft-c+this.scrollLeft,r.parentScrollMap.set(this,[this.scrollTop,this.scrollLeft])};this.scrollCallbackMap.set(e,s),e.addEventListener("scroll",s)}e=e.parentElement}}deregisterScrollOffsets(){for(const e of this.scrollCallbackMap.keys())e.removeEventListener("scroll",this.scrollCallbackMap.get(e));this.scrollCallbackMap.clear()}initialize(){this.fullOffsetLeft=0,this.fullOffsetTop=0;let e=this.osmdSheetMusicContainer;const r=[],s=this;for(window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(o=>{WebDisplayInteractionManager.resizeCallback(o,s)}));e;)this.fullOffsetLeft+=e.offsetLeft,this.fullOffsetTop+=e.offsetTop,this.resizeObserver?this.resizeObserver.observe(e):r.push(e),e=e.offsetParent;if(this.resizeObserver)this.disposeResizeListener=()=>{s.resizeObserver.disconnect(),s.resizeObserver=void 0};else{let o=()=>{WebDisplayInteractionManager.resizeCallback(r,s)};window.addEventListener("resize",o),this.disposeResizeListener=()=>{window.removeEventListener("resize",o),o=void 0}}s.registerScrollOffsets()}dispose(){this.disposeResizeListener();for(const e of this.EventCallbackMap.keys()){const r=this.EventCallbackMap.getValue(e);r[0].removeEventListener(e,r[1])}this.EventCallbackMap.clear(),this.deregisterScrollOffsets(),this.scrollCallbackMap.clear(),this.parentScrollMap.clear()}isTouch(){if("ontouchstart"in window||window.DocumentTouch)return!0;if(!window.matchMedia)return!1;const r=["(",["-webkit-","-moz-","-o-","-ms-"].join("touch-enabled),("),"heartz",")"].join("");return window.matchMedia(r).matches}get downEventName(){return this.isTouch()?"touchstart":"mousedown"}get moveEventName(){return this.isTouch()?"touchmove":"mousemove"}listenForInteractions(){const e=this.downEventListener.bind(this),r=this.touchEndEventListener.bind(this),s=this.moveEventListener.bind(this);this.osmdSheetMusicContainer.addEventListener("mousedown",e),this.osmdSheetMusicContainer.addEventListener("touchend",r),document.addEventListener(this.moveEventName,s),this.EventCallbackMap.setValue("mousedown",[this.osmdSheetMusicContainer,e]),this.EventCallbackMap.setValue("touchend",[this.osmdSheetMusicContainer,r]),this.EventCallbackMap.setValue(this.moveEventName,[document,s])}downEventListener(e){const r=new Date().getTime(),s=r-this.lastClick;clearTimeout(this.clickTimeout);let o=0,a=0;this.isTouch()&&e instanceof TouchEvent?(o=e.touches[0].pageX,a=e.touches[0].pageY):e instanceof MouseEvent&&(o=e.pageX,a=e.pageY);const l=this.getOffsetCoordinates(o,a);if(s0)this.doubleClick(l.x,l.y);else{const c=this;this.clickTimeout=setTimeout(function(){clearTimeout(this.clickTimeout),c.isTouch()?c.touchDown(l.x,l.y,void 0):c.click(l.x,l.y)},this.DOUBLE_CLICK_WINDOW)}this.lastClick=r}moveEventListener(e){let r=0,s=0;if(this.isTouch()&&e instanceof TouchEvent){let a;e.touches&&e.touches.length>0?a=e.touches[0]:e.changedTouches&&e.changedTouches.length>0&&(a=e.changedTouches[0]),r=a==null?void 0:a.clientX,s=a==null?void 0:a.clientY}else e instanceof MouseEvent&&(r=e.clientX,s=e.clientY);const o=this.getOffsetCoordinates(r,s);this.move(o.x,o.y)}touchEndEventListener(e){let r;e.touches&&e.touches.length>0?r=e.touches[0]:e.changedTouches&&e.changedTouches.length>0&&(r=e.changedTouches[0]);const s=this.getOffsetCoordinates(r==null?void 0:r.pageX,r==null?void 0:r.pageY);this.touchUp(s.x,s.y)}resizeEventListener(){this.displaySizeChanged(this.osmdSheetMusicContainer.clientWidth,this.osmdSheetMusicContainer.clientHeight)}getOffsetCoordinates(e,r){const s=e-this.fullOffsetLeft+this.fullScrollLeft,o=r-this.fullOffsetTop+this.fullScrollTop;return new PointF2D(s,o)}}class DynamicsCalculator{static fillDynamicsList(e,r,s){for(let o=0;o=0&&s[u].push(new DynamicsContainer(c.InstantaneousDynamic,u))}if(c.StartingContinuousDynamic!==void 0){s[o].push(new DynamicsContainer(c.StartingContinuousDynamic,c.StaffNumber));const u=this.getOtherStaffIndexIfLinkedStavesAreDetected(e,o,c.StartingContinuousDynamic.Placement);u>=0&&s[u].push(new DynamicsContainer(c.StartingContinuousDynamic,u))}}}}static getOtherStaffIndexIfLinkedStavesAreDetected(e,r,s){const o=e.getStaffFromIndex(r),a=o.ParentInstrument.Staves.indexOf(o),l=o.ParentInstrument.Staves.length;return l>1&&a===0&&s===PlacementEnum.Below?r+1:l>1&&a===1&&s===PlacementEnum.Above?r-1:-1}static fillDynamicExpressions(e){const r=e.DynListStaves,s=e.getCompleteNumberOfStaves(),o=e.TimestampSortedDynamicExpressionsList;for(let a=0;a{e(this.processStringXml(s))},s=>{loglevelExports.error(new Error("[OSMD] Invalid MXL file: "+s)),r(new Error("[OSMD] Invalid MXL file: "+s))})}processStringXml(i){const e=new DOMParser;if(i.substr(0,3)==="")return loglevelExports.debug("[OSMD] UTF with BOM detected, truncate first three bytes and pass along: "+i),e.parseFromString(i.substr(3),"application/xml");if(i.substr(0,6).includes("{r.isMxl(m)?r.processMxl(m,c,u):c(r.processStringXml(m))},m=>{throw u(m),m});else{const m=new Error("[OSMD] osmd.load(string): Could not process string. Did not find {e.init(this.sheet.MusicPartManager,this.graphic)}),this.drawingParameters.DrawingParametersEnum===DrawingParametersEnum.leadsheet&&(this.graphic.LeadSheet=!0),this.renderingManager.setMusicSheet(this.graphic),this.interactionManager.Initialize()}render(){var e;if(!this.graphic)throw new Error("OpenSheetMusicDisplay: Before rendering a music sheet, please load a MusicXML file");(e=this.drawer)==null||e.clear();let i=this.container.offsetWidth;this.rules.RenderSingleHorizontalStaffline&&(i=this.rules.SheetMaximumWidth),this.sheet.pageWidth=i/this.zoom/10,this.renderingManager.MainViewingRegion.WidthInUnits=this.sheet.pageWidth,this.rules.PageFormat&&!this.rules.PageFormat.IsUndefined?(this.rules.PageHeight=this.sheet.pageWidth/this.rules.PageFormat.aspectRatio,loglevelExports.debug("[OSMD] PageHeight: "+this.rules.PageHeight)):(loglevelExports.debug("[OSMD] endless/undefined pageformat, id: "+this.rules.PageFormat.idString),this.rules.PageHeight=100001),this.graphic.reCalculate(),this.drawingParameters.drawCursors&&(this.graphic.Cursors.length=0),this.createOrRefreshRenderBackend(),this.needBackendUpdate=!1,this.drawer.setZoom(this.zoom);for(const r of this.sheet.SourceMeasures)r.WasRendered=!1;this.drawer.drawSheet(this.graphic),this.enableOrDisableCursors(this.drawingParameters.drawCursors),this.drawingParameters.drawCursors&&this.cursors.forEach(r=>{r.update()}),this.zoomUpdated=!1,this.interactionManager.displaySizeChanged(this.container.clientWidth,this.container.clientHeight),this.rules.RenderCount++}createOrRefreshRenderBackend(){if(this.drawer&&this.drawer.Backends){this.drawer.Backends[0]&&this.drawer.Backends[0].removeAllChildrenFromContainer(this.container);for(const s of this.drawer.Backends)s.free();this.drawer.Backends.clear()}this.drawingParameters.Rules=this.rules,this.drawer=new VexFlowMusicSheetDrawer(this.drawingParameters),this.drawer.drawableBoundingBoxElement=this.DrawBoundingBox,this.drawer.bottomLineVisible=this.drawBottomLine,this.drawer.skyLineVisible=this.drawSkyLine;let i=this.container.offsetWidth;this.rules.RenderSingleHorizontalStaffline&&(i=(this.EngravingRules.PageLeftMargin+this.graphic.MusicPages[0].PositionAndShape.Size.width+this.EngravingRules.PageRightMargin)*10*this.zoom);let e;const r=32767;for(const s of this.graphic.MusicPages){if(s.PageNumber>this.rules.MaxPageToDrawNumber)break;const o=this.createBackend(this.backendType,s),a=" exceeds CanvasBackend limit of 32767. Cutting off score.";o.getOSMDBackendType()===BackendType.Canvas&&i>r&&(loglevelExports.warn("[OSMD] Warning: width of "+i+a),i=r),this.rules.PageFormat&&!this.rules.PageFormat.IsUndefined?e=i/this.rules.PageFormat.aspectRatio:(e=s.PositionAndShape.Size.height,e+=this.rules.PageBottomMargin,o.getOSMDBackendType()===BackendType.Canvas&&(e+=.1),e+=s.PositionAndShape.BorderTop,this.rules.RenderTitle&&(e+=this.rules.TitleTopDistance),e*=this.zoom*10),o.getOSMDBackendType()===BackendType.Canvas&&e>r&&(loglevelExports.warn("[OSMD] Warning: height of "+e+a),e=Math.min(e,r)),o.resize(i,e),o.clear(),o.getContext().setFillStyle(this.rules.DefaultColorMusic),o.getContext().setStrokeStyle(this.rules.DefaultColorMusic),this.drawer.Backends.push(o),this.graphic.drawer=this.drawer}}exportSVG(){var i;for(const e of(i=this.drawer)==null?void 0:i.Backends)e instanceof SvgVexFlowBackend&&e.export()}IsReadyToRender(){return this.graphic!==void 0}clear(){var i;(i=this.drawer)==null||i.clear(),this.reset()}dispose(){this.disposeResizeListener&&this.disposeResizeListener(),this.InteractionManager&&this.InteractionManager.Dispose()}setOptions(i){if(this.rules||(this.rules=new EngravingRules),!this.drawingParameters&&!i.drawingParameters?this.drawingParameters=new DrawingParameters(DrawingParametersEnum.default,this.rules):i.drawingParameters&&(this.drawingParameters?this.drawingParameters.DrawingParametersEnum=DrawingParametersEnum[i.drawingParameters.toLowerCase()]:this.drawingParameters=new DrawingParameters(DrawingParametersEnum[i.drawingParameters],this.rules)),i==null){loglevelExports.warn(`warning: osmd.setOptions() called without an options parameter, has no effect. example usage: osmd.setOptions({drawCredits: false, drawPartNames: false})`);return}this.OnXMLRead=function(o){return o},i.onXMLRead&&(this.OnXMLRead=i.onXMLRead);let r=!this.drawer||!this.drawer.Backends||this.drawer.Backends.length<1;if(i.backend!==void 0){const o=OSMDOptions.BackendTypeFromString(i.backend);r=r||this.backendType!==o,this.backendType=o}this.needBackendUpdate=r,i.autoBeam!==void 0&&(this.rules.AutoBeamNotes=i.autoBeam);const s=i.autoBeamOptions;if(s&&(s.maintain_stem_directions===void 0&&(s.maintain_stem_directions=!1),this.rules.AutoBeamOptions=s,s.groups&&s.groups.length)){for(const o of s.groups)if(o.length!==2)throw new Error("Each fraction in autoBeamOptions.groups must be of length 2, e.g. [3,4] for beaming three fourths")}i.percussionOneLineCutoff!==void 0&&(this.rules.PercussionOneLineCutoff=i.percussionOneLineCutoff),this.rules.PercussionOneLineCutoff!==0&&i.percussionForceVoicesOneLineCutoff!==void 0&&(this.rules.PercussionForceVoicesOneLineCutoff=i.percussionForceVoicesOneLineCutoff),i.alignRests!==void 0&&(this.rules.AlignRests=i.alignRests),i.coloringMode!==void 0&&this.setColoringMode(i),i.coloringEnabled!==void 0&&(this.rules.ColoringEnabled=i.coloringEnabled),i.colorStemsLikeNoteheads!==void 0&&(this.rules.ColorStemsLikeNoteheads=i.colorStemsLikeNoteheads),i.disableCursor&&(this.drawingParameters.drawCursors=!1),i.drawHiddenNotes&&(this.drawingParameters.drawHiddenNotes=!0),i.drawCredits!==void 0&&(this.drawingParameters.DrawCredits=i.drawCredits),i.drawComposer!==void 0&&(this.drawingParameters.DrawComposer=i.drawComposer),i.drawTitle!==void 0&&(this.drawingParameters.DrawTitle=i.drawTitle),i.drawSubtitle!==void 0&&(this.drawingParameters.DrawSubtitle=i.drawSubtitle),i.drawLyricist!==void 0&&(this.drawingParameters.DrawLyricist=i.drawLyricist),i.drawMetronomeMarks!==void 0&&(this.rules.MetronomeMarksDrawn=i.drawMetronomeMarks),i.drawPartNames!==void 0&&(this.drawingParameters.DrawPartNames=i.drawPartNames,i.drawPartAbbreviations||(this.rules.RenderPartAbbreviations=i.drawPartNames)),i.drawPartAbbreviations!==void 0&&(this.rules.RenderPartAbbreviations=i.drawPartAbbreviations),i.drawFingerings===!1&&(this.rules.RenderFingerings=!1),i.drawMeasureNumbers!==void 0&&(this.rules.RenderMeasureNumbers=i.drawMeasureNumbers),i.drawMeasureNumbersOnlyAtSystemStart&&(this.rules.RenderMeasureNumbersOnlyAtSystemStart=i.drawMeasureNumbersOnlyAtSystemStart),i.drawLyrics!==void 0&&(this.rules.RenderLyrics=i.drawLyrics),i.drawTimeSignatures!==void 0&&(this.rules.RenderTimeSignatures=i.drawTimeSignatures),i.drawSlurs!==void 0&&(this.rules.RenderSlurs=i.drawSlurs),i.measureNumberInterval!==void 0&&(this.rules.MeasureNumberLabelOffset=i.measureNumberInterval),i.useXMLMeasureNumbers!==void 0&&(this.rules.UseXMLMeasureNumbers=i.useXMLMeasureNumbers),i.fingeringPosition!==void 0&&(this.rules.FingeringPosition=AbstractExpression.PlacementEnumFromString(i.fingeringPosition)),i.fingeringInsideStafflines!==void 0&&(this.rules.FingeringInsideStafflines=i.fingeringInsideStafflines),i.newSystemFromXML!==void 0&&(this.rules.NewSystemAtXMLNewSystemAttribute=i.newSystemFromXML),i.newSystemFromNewPageInXML!==void 0&&(this.rules.NewSystemAtXMLNewPageAttribute=i.newSystemFromNewPageInXML),i.newPageFromXML!==void 0&&(this.rules.NewPageAtXMLNewPageAttribute=i.newPageFromXML),i.fillEmptyMeasuresWithWholeRest!==void 0&&(this.rules.FillEmptyMeasuresWithWholeRest=i.fillEmptyMeasuresWithWholeRest),i.followCursor!==void 0&&(this.FollowCursor=i.followCursor),i.setWantedStemDirectionByXml!==void 0&&(this.rules.SetWantedStemDirectionByXml=i.setWantedStemDirectionByXml),i.darkMode?(this.rules.applyDefaultColorMusic("#FFFFFF"),this.rules.PageBackgroundColor="#000000"):i.darkMode===!1&&(this.rules.applyDefaultColorMusic("#000000"),this.rules.PageBackgroundColor=void 0),i.defaultColorMusic&&this.rules.applyDefaultColorMusic(i.defaultColorMusic),i.defaultColorNotehead&&(this.rules.DefaultColorNotehead=i.defaultColorNotehead),i.defaultColorRest&&(this.rules.DefaultColorRest=i.defaultColorRest),i.defaultColorStem&&(this.rules.DefaultColorStem=i.defaultColorStem),i.defaultColorLabel&&(this.rules.DefaultColorLabel=i.defaultColorLabel),i.defaultColorTitle&&(this.rules.DefaultColorTitle=i.defaultColorTitle),i.defaultFontFamily&&(this.rules.DefaultFontFamily=i.defaultFontFamily),i.defaultFontStyle&&(this.rules.DefaultFontStyle=i.defaultFontStyle),i.drawUpToMeasureNumber&&(this.rules.MaxMeasureToDrawIndex=i.drawUpToMeasureNumber-1),i.drawFromMeasureNumber&&(this.rules.MinMeasureToDrawIndex=i.drawFromMeasureNumber-1),i.drawUpToPageNumber&&(this.rules.MaxPageToDrawNumber=i.drawUpToPageNumber),i.drawUpToSystemNumber&&(this.rules.MaxSystemToDrawNumber=i.drawUpToSystemNumber),i.tupletsRatioed&&(this.rules.TupletsRatioed=!0),i.tupletsBracketed&&(this.rules.TupletsBracketed=!0),i.tripletsBracketed&&(this.rules.TripletsBracketed=!0),i.autoResize?(this.resizeHandlerAttached||this.autoResize(),this.autoResizeEnabled=!0):i.autoResize===!1&&(this.autoResizeEnabled=!1),i.pageFormat!==void 0&&this.setPageFormat(i.pageFormat),i.pageBackgroundColor!==void 0&&(this.rules.PageBackgroundColor=i.pageBackgroundColor),i.performanceMode!==void 0&&(this.rules.PerformanceMode=i.performanceMode),i.renderSingleHorizontalStaffline!==void 0&&(this.rules.RenderSingleHorizontalStaffline=i.renderSingleHorizontalStaffline),i.spacingFactorSoftmax!==void 0&&(this.rules.SoftmaxFactorVexFlow=i.spacingFactorSoftmax),i.spacingBetweenTextLines!==void 0&&(this.rules.SpacingBetweenTextLines=i.spacingBetweenTextLines),i.stretchLastSystemLine!==void 0&&(this.rules.StretchLastSystemLine=i.stretchLastSystemLine),i.autoGenerateMultipleRestMeasuresFromRestMeasures!==void 0&&(this.rules.AutoGenerateMultipleRestMeasuresFromRestMeasures=i.autoGenerateMultipleRestMeasuresFromRestMeasures),i.cursorsOptions!==void 0?this.cursorsOptions=i.cursorsOptions:this.cursorsOptions=[{type:CursorType.Standard,color:this.EngravingRules.DefaultColorCursor,alpha:.5,follow:!0}],i.preferredSkyBottomLineBatchCalculatorBackend!==void 0&&(this.rules.PreferredSkyBottomLineBatchCalculatorBackend=i.preferredSkyBottomLineBatchCalculatorBackend),i.skyBottomLineBatchMinMeasures!==void 0&&(this.rules.SkyBottomLineBatchMinMeasures=i.skyBottomLineBatchMinMeasures)}setColoringMode(i){if(i.coloringMode===ColoringModes.XML){this.rules.ColoringMode=ColoringModes.XML;return}const e=[NoteEnum.C,NoteEnum.D,NoteEnum.E,NoteEnum.F,NoteEnum.G,NoteEnum.A,NoteEnum.B];let r;if(i.coloringMode===ColoringModes.CustomColorSet){if(!i.coloringSetCustom||i.coloringSetCustom.length!==8)throw new Error("Invalid amount of colors: With coloringModes.customColorSet, you have to provide a coloringSetCustom parameter (array) with 8 strings (C to B, rest note).");for(const o of i.coloringSetCustom)if(!/^\#[0-9a-fA-F]{6}$/.test(o))throw new Error(`One of the color strings in options.coloringSetCustom was not a valid HTML Hex color: `+o);r=i.coloringSetCustom}else if(i.coloringMode===ColoringModes.AutoColoring){r=[];const o=Object.keys(AutoColorSet);for(let a=0;a{i.hide()}),this.sheet=void 0,this.graphic=void 0,this.zoom=1,this.rules.RenderCount=0}autoResize(){const i=this;this.handleResize(()=>{},()=>{var e;((e=this.graphic)==null?void 0:e.GetCalculator)instanceof VexFlowMusicSheetCalculator&&(this.graphic.GetCalculator.beamsNeedUpdate=!0),i.IsReadyToRender()&&i.render()})}handleResize(i,e){let r,s;const a=this;function l(){a.AutoResizeEnabled&&(r=new Date().getTime(),s||(i(),r=new Date().getTime(),s=window.setTimeout(c,200)))}function c(){s=void 0,window.clearTimeout(s),new Date().getTime()-r<200?s=window.setTimeout(c,200):e()}window.attachEvent?window.attachEvent("onresize",l):window.addEventListener("resize",l),this.disposeResizeListener=()=>{window.detachEvent?window.detachEvent("onresize",l):window.removeEventListener("resize",l),this.resizeHandlerAttached=!1},this.resizeHandlerAttached=!0,window.setTimeout(i,0),window.setTimeout(e,1)}enableOrDisableCursors(i){var e,r,s,o,a,l,c;if(this.drawingParameters.drawCursors=i,i){for(let u=0;u{u.hide()})}createBackend(i,e){let r;return i===void 0||i===BackendType.SVG?r=new SvgVexFlowBackend(this.rules):r=new CanvasVexFlowBackend(this.rules),r.graphicalMusicPage=e,r.initialize(this.container,this.zoom),r}static StringToPageFormat(i){let e=PageFormat.UndefinedPageFormat;if(i.match("^[0-9]+x[0-9]+$")){const r=i.split("x"),s=Number.parseInt(r[0],10),o=Number.parseInt(r[1],10);s>0&&s<32768&&o>0&&o<32768&&(e=new PageFormat(s,o,`customPageFormat${i}`))}return i=i.replace(" ","_"),i=i.replace("Landscape","L"),i=i.replace("Portrait","P"),_OpenSheetMusicDisplay.PageFormatStandards.hasOwnProperty(i)&&(e=_OpenSheetMusicDisplay.PageFormatStandards[i]),e}setPageFormat(i){const e=_OpenSheetMusicDisplay.StringToPageFormat(i);this.needBackendUpdate=!e.Equals(this.rules.PageFormat),this.rules.PageFormat=e}setCustomPageFormat(i,e){if(i>0&&e>0){const r=new PageFormat(i,e);this.rules.PageFormat=r}}set DrawSkyLine(i){this.drawSkyLine=i,this.drawer&&(this.drawer.skyLineVisible=i)}get DrawSkyLine(){return this.drawer.skyLineVisible}set DrawBottomLine(i){this.drawBottomLine=i,this.drawer&&(this.drawer.bottomLineVisible=i)}get DrawBottomLine(){return this.drawer.bottomLineVisible}set DrawBoundingBox(i){this.setDrawBoundingBox(i,!0)}get DrawBoundingBox(){return this.drawBoundingBox}setDrawBoundingBox(i,e=!1){this.drawBoundingBox=i,this.drawer&&(this.drawer.drawableBoundingBoxElement=i),e&&this.render()}get AutoResizeEnabled(){return this.autoResizeEnabled}set AutoResizeEnabled(i){this.autoResizeEnabled=i}get Zoom(){return this.zoom}set Zoom(i){var e;this.zoom=i,this.zoomUpdated=!0,((e=this.graphic)==null?void 0:e.GetCalculator)instanceof VexFlowMusicSheetCalculator&&(this.graphic.GetCalculator.beamsNeedUpdate=this.zoomUpdated)}set FollowCursor(i){this.followCursor=i}get FollowCursor(){return this.followCursor}set TransposeCalculator(i){MusicSheetCalculator.transposeCalculator=i}get TransposeCalculator(){return MusicSheetCalculator.transposeCalculator}get Sheet(){return this.sheet}get Drawer(){return this.drawer}get GraphicSheet(){return this.graphic}get DrawingParameters(){return this.drawingParameters}get EngravingRules(){return this.rules}get InteractionManager(){return this.interactionManager}get Version(){return this.version}};let OpenSheetMusicDisplay=_OpenSheetMusicDisplay;OpenSheetMusicDisplay.PageFormatStandards={A3_L:new PageFormat(420,297,"A3_L"),A3_P:new PageFormat(297,420,"A3_P"),A4_L:new PageFormat(297,210,"A4_L"),A4_P:new PageFormat(210,297,"A4_P"),A5_L:new PageFormat(210,148,"A5_L"),A5_P:new PageFormat(148,210,"A5_P"),A6_L:new PageFormat(148,105,"A6_L"),A6_P:new PageFormat(105,148,"A6_P"),Endless:PageFormat.UndefinedPageFormat,Letter_L:new PageFormat(279.4,215.9,"Letter_L"),Letter_P:new PageFormat(215.9,279.4,"Letter_P")};var handlebarsExports={},handlebars={get exports(){return handlebarsExports},set exports(i){handlebarsExports=i}},handlebars_runtimeExports={},handlebars_runtime={get exports(){return handlebars_runtimeExports},set exports(i){handlebars_runtimeExports=i}},base$1={},utils={};utils.__esModule=!0;utils.extend=extend;utils.indexOf=indexOf;utils.escapeExpression=escapeExpression;utils.isEmpty=isEmpty;utils.createFrame=createFrame;utils.blockParams=blockParams;utils.appendContextPath=appendContextPath;var escape$1={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},badChars=/[&<>"'`=]/g,possible=/[&<>"'`=]/;function escapeChar(i){return escape$1[i]}function extend(i){for(var e=1;e0?(a.ids&&(a.ids=[a.name]),s.helpers.each(o,a)):l(this);if(a.data&&a.ids){var u=r.createFrame(a.data);u.contextPath=r.appendContextPath(a.data.contextPath,a.name),a={data:u}}return c(o,a)})},i.exports=e.default})(blockHelperMissing,blockHelperMissingExports);var eachExports={},each={get exports(){return eachExports},set exports(i){eachExports=i}};(function(i,e){e.__esModule=!0;function r(l){return l&&l.__esModule?l:{default:l}}var s=utils,o=exceptionExports,a=r(o);e.default=function(l){l.registerHelper("each",function(c,u){if(!u)throw new a.default("Must pass iterator to #each");var d=u.fn,g=u.inverse,m=0,y="",b=void 0,S=void 0;u.data&&u.ids&&(S=s.appendContextPath(u.data.contextPath,u.ids[0])+"."),s.isFunction(c)&&(c=c.call(this)),u.data&&(b=s.createFrame(u.data));function A(C,M,B){b&&(b.key=C,b.index=M,b.first=M===0,b.last=!!B,S&&(b.contextPath=S+C)),y=y+d(c[C],{data:b,blockParams:s.blockParams([c[C],C],[S+C,null])})}if(c&&typeof c=="object")if(s.isArray(c))for(var E=c.length;m=0?a=l:a=parseInt(a,10)}return a},log:function(a){if(a=s.lookupLevel(a),typeof console<"u"&&s.lookupLevel(s.level)<=a){var l=s.methodMap[a];console[l]||(l="log");for(var c=arguments.length,u=Array(c>1?c-1:0),d=1;d= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};base$1.REVISION_CHANGES=REVISION_CHANGES;var objectType="[object Object]";function HandlebarsEnvironment(i,e,r){this.helpers=i||{},this.partials=e||{},this.decorators=r||{},_helpers$2.registerDefaultHelpers(this),_decorators.registerDefaultDecorators(this)}HandlebarsEnvironment.prototype={constructor:HandlebarsEnvironment,logger:_logger2.default,log:_logger2.default.log,registerHelper:function i(e,r){if(_utils$3.toString.call(e)===objectType){if(r)throw new _exception2$3.default("Arg not supported with multiple helpers");_utils$3.extend(this.helpers,e)}else this.helpers[e]=r},unregisterHelper:function i(e){delete this.helpers[e]},registerPartial:function i(e,r){if(_utils$3.toString.call(e)===objectType)_utils$3.extend(this.partials,e);else{if(typeof r>"u")throw new _exception2$3.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=r}},unregisterPartial:function i(e){delete this.partials[e]},registerDecorator:function i(e,r){if(_utils$3.toString.call(e)===objectType){if(r)throw new _exception2$3.default("Arg not supported with multiple decorators");_utils$3.extend(this.decorators,e)}else this.decorators[e]=r},unregisterDecorator:function i(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function i(){_internalProtoAccess$1.resetLoggedProperties()}};var log=_logger2.default.log;base$1.log=log;base$1.createFrame=_utils$3.createFrame;base$1.logger=_logger2.default;var safeStringExports={},safeString={get exports(){return safeStringExports},set exports(i){safeStringExports=i}};(function(i,e){e.__esModule=!0;function r(s){this.string=s}r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},e.default=r,i.exports=e.default})(safeString,safeStringExports);var runtime={},wrapHelper$1={};wrapHelper$1.__esModule=!0;wrapHelper$1.wrapHelper=wrapHelper;function wrapHelper(i,e){if(typeof i!="function")return i;var r=function(){var o=arguments[arguments.length-1];return arguments[arguments.length-1]=e(o),i.apply(this,arguments)};return r}runtime.__esModule=!0;runtime.checkRevision=checkRevision;runtime.template=template;runtime.wrapProgram=wrapProgram;runtime.resolvePartial=resolvePartial;runtime.invokePartial=invokePartial;runtime.noop=noop;function _interopRequireDefault$3(i){return i&&i.__esModule?i:{default:i}}function _interopRequireWildcard$1(i){if(i&&i.__esModule)return i;var e={};if(i!=null)for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r]);return e.default=i,e}var _utils$2=utils,Utils=_interopRequireWildcard$1(_utils$2),_exception$2=exceptionExports,_exception2$2=_interopRequireDefault$3(_exception$2),_base=base$1,_helpers$1=helpers$1,_internalWrapHelper=wrapHelper$1,_internalProtoAccess=protoAccess;function checkRevision(i){var e=i&&i[0]||1,r=_base.COMPILER_REVISION;if(!(e>=_base.LAST_COMPATIBLE_COMPILER_REVISION&&e<=_base.COMPILER_REVISION))if(e<_base.LAST_COMPATIBLE_COMPILER_REVISION){var s=_base.REVISION_CHANGES[r],o=_base.REVISION_CHANGES[e];throw new _exception2$2.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+s+") or downgrade your runtime to an older version ("+o+").")}else throw new _exception2$2.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+i[1]+").")}function template(i,e){if(!e)throw new _exception2$2.default("No environment passed to template");if(!i||!i.main)throw new _exception2$2.default("Unknown template object: "+typeof i);i.main.decorator=i.main_d,e.VM.checkRevision(i.compiler);var r=i.compiler&&i.compiler[0]===7;function s(l,c,u){u.hash&&(c=Utils.extend({},c,u.hash),u.ids&&(u.ids[0]=!0)),l=e.VM.resolvePartial.call(this,l,c,u);var d=Utils.extend({},u,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),g=e.VM.invokePartial.call(this,l,c,d);if(g==null&&e.compile&&(u.partials[u.name]=e.compile(l,i.compilerOptions,e),g=u.partials[u.name](c,d)),g!=null){if(u.indent){for(var m=g.split(` `),y=0,b=m.length;y"u"&&(this.lexer.yylloc={});var E=this.lexer.yylloc;m.push(E);var x=this.lexer.options&&this.lexer.options.ranges;typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);function P(){var Q;return Q=u.lexer.lex()||1,typeof Q!="number"&&(Q=u.symbols_[Q]||Q),Q}for(var T,C,M,B,I={},k,D,O,z;;){if(C=d[d.length-1],this.defaultActions[C]?M=this.defaultActions[C]:((T===null||typeof T>"u")&&(T=P()),M=y[C]&&y[C][T]),typeof M>"u"||!M.length||!M[0]){var N="";{z=[];for(k in y[C])this.terminals_[k]&&k>2&&z.push("'"+this.terminals_[k]+"'");this.lexer.showPosition?N="Parse error on line "+(S+1)+`: `+this.lexer.showPosition()+` Expecting `+z.join(", ")+", got '"+(this.terminals_[T]||T)+"'":N="Parse error on line "+(S+1)+": Unexpected "+(T==1?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(N,{text:this.lexer.match,token:this.terminals_[T]||T,line:this.lexer.yylineno,loc:E,expected:z})}}if(M[0]instanceof Array&&M.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+T);switch(M[0]){case 1:d.push(T),g.push(this.lexer.yytext),m.push(this.lexer.yylloc),d.push(M[1]),T=null,A=this.lexer.yyleng,b=this.lexer.yytext,S=this.lexer.yylineno,E=this.lexer.yylloc;break;case 2:if(D=this.productions_[M[1]][1],I.$=g[g.length-D],I._$={first_line:m[m.length-(D||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(D||1)].first_column,last_column:m[m.length-1].last_column},x&&(I._$.range=[m[m.length-(D||1)].range[0],m[m.length-1].range[1]]),B=this.performAction.call(I,b,A,S,this.yy,M[1],g,m),typeof B<"u")return B;D&&(d=d.slice(0,-1*D*2),g=g.slice(0,-1*D),m=m.slice(0,-1*D)),d.push(this.productions_[M[1]][0]),g.push(I.$),m.push(I._$),O=y[d[d.length-2]][d[d.length-1]],d.push(O);break;case 3:return!0}}return!0}},o=function(){var l={EOF:1,parseError:function(u,d){if(this.yy.parser)this.yy.parser.parseError(u,d);else throw new Error(u)},setInput:function(u){return this._input=u,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var d=u.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},unput:function(u){var d=u.length,g=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d-1),this.offset-=d;var m=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var y=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===m.length?this.yylloc.first_column:0)+m[m.length-g.length].length-g[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-d]),this},more:function(){return this._more=!0,this},less:function(u){this.unput(this.match.slice(u))},pastInput:function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var u=this.pastInput(),d=new Array(u.length+1).join("-");return u+this.upcomingInput()+` `+d+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,d,g,m,y;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),S=0;Sd[0].length)&&(d=g,m=S,!this.options.flex)));S++);return d?(y=d[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+d[0].length},this.yytext+=d[0],this.match+=d[0],this.matches=d,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(d[0].length),this.matched+=d[0],u=this.performAction.call(this,this.yy,this,b[m],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u||void 0):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. `+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var u=this.next();return typeof u<"u"?u:this.lex()},begin:function(u){this.conditionStack.push(u)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(u){this.begin(u)}};return l.options={},l.performAction=function(u,d,g,m){function y(b,S){return d.yytext=d.yytext.substring(b,d.yyleng-S+b)}switch(g){case 0:if(d.yytext.slice(-2)==="\\\\"?(y(0,1),this.begin("mu")):d.yytext.slice(-1)==="\\"?(y(0,1),this.begin("emu")):this.begin("mu"),d.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw"?15:(y(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(d.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return d.yytext=y(1,2).replace(/\\"/g,'"'),80;case 32:return d.yytext=y(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return d.yytext=d.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},l.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],l.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},l}();s.lexer=o;function a(){this.yy={}}return a.prototype=s,s.Parser=a,new a}();e.default=r,i.exports=e.default})(parser$1,parserExports);var whitespaceControlExports={},whitespaceControl={get exports(){return whitespaceControlExports},set exports(i){whitespaceControlExports=i}},visitorExports={},visitor={get exports(){return visitorExports},set exports(i){visitorExports=i}};(function(i,e){e.__esModule=!0;function r(d){return d&&d.__esModule?d:{default:d}}var s=exceptionExports,o=r(s);function a(){this.parents=[]}a.prototype={constructor:a,mutating:!1,acceptKey:function(g,m){var y=this.accept(g[m]);if(this.mutating){if(y&&!a.prototype[y.type])throw new o.default('Unexpected node type "'+y.type+'" found when accepting '+m+" on "+g.type);g[m]=y}},acceptRequired:function(g,m){if(this.acceptKey(g,m),!g[m])throw new o.default(g.type+" requires "+m)},acceptArray:function(g){for(var m=0,y=g.length;m0)throw new _exception2$1.default("Invalid path: "+s,{loc:r});u===".."&&a++}else o.push(u)}return{type:"PathExpression",data:i,depth:a,parts:o,original:s,loc:r}}function prepareMustache(i,e,r,s,o,a){var l=s.charAt(3)||s.charAt(2),c=l!=="{"&&l!=="&",u=/\*/.test(s);return{type:u?"Decorator":"MustacheStatement",path:i,params:e,hash:r,escaped:c,strip:o,loc:this.locInfo(a)}}function prepareRawBlock(i,e,r,s){validateClose(i,r),s=this.locInfo(s);var o={type:"Program",body:e,strip:{},loc:s};return{type:"BlockStatement",path:i.path,params:i.params,hash:i.hash,program:o,openStrip:{},inverseStrip:{},closeStrip:{},loc:s}}function prepareBlock(i,e,r,s,o,a){s&&s.path&&validateClose(i,s);var l=/\*/.test(i.open);e.blockParams=i.blockParams;var c=void 0,u=void 0;if(r){if(l)throw new _exception2$1.default("Unexpected inverse block on decorator",r);r.chain&&(r.program.body[0].closeStrip=s.strip),u=r.strip,c=r.program}return o&&(o=c,c=e,e=o),{type:l?"DecoratorBlock":"BlockStatement",path:i.path,params:i.params,hash:i.hash,program:e,inverse:c,openStrip:i.strip,inverseStrip:u,closeStrip:s&&s.strip,loc:this.locInfo(a)}}function prepareProgram(i,e){if(!e&&i.length){var r=i[0].loc,s=i[i.length-1].loc;r&&s&&(e={source:r.source,start:{line:r.start.line,column:r.start.column},end:{line:s.end.line,column:s.end.column}})}return{type:"Program",body:i,strip:{},loc:e}}function preparePartialBlock(i,e,r,s){return validateClose(i,r),{type:"PartialBlockStatement",name:i.path,params:i.params,hash:i.hash,program:e,openStrip:i.strip,closeStrip:r&&r.strip,loc:this.locInfo(s)}}base.__esModule=!0;base.parseWithoutProcessing=parseWithoutProcessing;base.parse=parse$2;function _interopRequireWildcard(i){if(i&&i.__esModule)return i;var e={};if(i!=null)for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r]);return e.default=i,e}function _interopRequireDefault$1(i){return i&&i.__esModule?i:{default:i}}var _parser=parserExports,_parser2=_interopRequireDefault$1(_parser),_whitespaceControl=whitespaceControlExports,_whitespaceControl2=_interopRequireDefault$1(_whitespaceControl),_helpers=helpers,Helpers=_interopRequireWildcard(_helpers),_utils$1=utils;base.parser=_parser2.default;var yy={};_utils$1.extend(yy,Helpers);function parseWithoutProcessing(i,e){if(i.type==="Program")return i;_parser2.default.yy=yy,yy.locInfo=function(s){return new yy.SourceLocation(e&&e.srcName,s)};var r=_parser2.default.parse(i);return r}function parse$2(i,e){var r=parseWithoutProcessing(i,e),s=new _whitespaceControl2.default(e);return s.accept(r)}var compiler={};compiler.__esModule=!0;compiler.Compiler=Compiler;compiler.precompile=precompile;compiler.compile=compile;function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}var _exception=exceptionExports,_exception2=_interopRequireDefault(_exception),_utils=utils,_ast=astExports,_ast2=_interopRequireDefault(_ast),slice=[].slice;function Compiler(){}Compiler.prototype={compiler:Compiler,equals:function i(e){var r=this.opcodes.length;if(e.opcodes.length!==r)return!1;for(var s=0;s1)throw new _exception2.default("Unsupported number of partial arguments: "+s.length,e);s.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):s.push({type:"PathExpression",parts:[],depth:0}));var o=e.name.original,a=e.name.type==="SubExpression";a&&this.accept(e.name),this.setupFullMustacheParams(e,r,void 0,!0);var l=e.indent||"";this.options.preventIndent&&l&&(this.opcode("appendContent",l),l=""),this.opcode("invokePartial",a,o,l),this.opcode("append")},PartialBlockStatement:function i(e){this.PartialStatement(e)},MustacheStatement:function i(e){this.SubExpression(e),e.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function i(e){this.DecoratorBlock(e)},ContentStatement:function i(e){e.value&&this.opcode("appendContent",e.value)},CommentStatement:function i(){},SubExpression:function i(e){transformLiteralToPath(e);var r=this.classifySexpr(e);r==="simple"?this.simpleSexpr(e):r==="helper"?this.helperSexpr(e):this.ambiguousSexpr(e)},ambiguousSexpr:function i(e,r,s){var o=e.path,a=o.parts[0],l=r!=null||s!=null;this.opcode("getContext",o.depth),this.opcode("pushProgram",r),this.opcode("pushProgram",s),o.strict=!0,this.accept(o),this.opcode("invokeAmbiguous",a,l)},simpleSexpr:function i(e){var r=e.path;r.strict=!0,this.accept(r),this.opcode("resolvePossibleLambda")},helperSexpr:function i(e,r,s){var o=this.setupFullMustacheParams(e,r,s),a=e.path,l=a.parts[0];if(this.options.knownHelpers[l])this.opcode("invokeKnownHelper",o.length,l);else{if(this.options.knownHelpersOnly)throw new _exception2.default("You specified knownHelpersOnly, but used the unknown helper "+l,e);a.strict=!0,a.falsy=!0,this.accept(a),this.opcode("invokeHelper",o.length,a.original,_ast2.default.helpers.simpleId(a))}},PathExpression:function i(e){this.addDepth(e.depth),this.opcode("getContext",e.depth);var r=e.parts[0],s=_ast2.default.helpers.scopedId(e),o=!e.depth&&!s&&this.blockParamIndex(r);o?this.opcode("lookupBlockParam",o,e.parts):r?e.data?(this.options.data=!0,this.opcode("lookupData",e.depth,e.parts,e.strict)):this.opcode("lookupOnContext",e.parts,e.falsy,e.strict,s):this.opcode("pushContext")},StringLiteral:function i(e){this.opcode("pushString",e.value)},NumberLiteral:function i(e){this.opcode("pushLiteral",e.value)},BooleanLiteral:function i(e){this.opcode("pushLiteral",e.value)},UndefinedLiteral:function i(){this.opcode("pushLiteral","undefined")},NullLiteral:function i(){this.opcode("pushLiteral","null")},Hash:function i(e){var r=e.pairs,s=0,o=r.length;for(this.opcode("pushHash");s=0)return[r,a]}}};function precompile(i,e,r){if(i==null||typeof i!="string"&&i.type!=="Program")throw new _exception2.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+i);e=e||{},"data"in e||(e.data=!0),e.compat&&(e.useDepths=!0);var s=r.parse(i,e),o=new r.Compiler().compile(s,e);return new r.JavaScriptCompiler().compile(o,e)}function compile(i,e,r){if(e===void 0&&(e={}),i==null||typeof i!="string"&&i.type!=="Program")throw new _exception2.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+i);e=_utils.extend({},e),"data"in e||(e.data=!0),e.compat&&(e.useDepths=!0);var s=void 0;function o(){var l=r.parse(i,e),c=new r.Compiler().compile(l,e),u=new r.JavaScriptCompiler().compile(c,e,void 0,!0);return r.template(u)}function a(l,c){return s||(s=o()),s.call(this,l,c)}return a._setup=function(l){return s||(s=o()),s._setup(l)},a._child=function(l,c,u,d){return s||(s=o()),s._child(l,c,u,d)},a}function argEquals(i,e){if(i===e)return!0;if(_utils.isArray(i)&&_utils.isArray(e)&&i.length===e.length){for(var r=0;r>1;return u?-d:d}return base64Vlq.encode=function(u){var d="",g,m=a(u);do g=m&s,m>>>=e,m>0&&(g|=o),d+=i.encode(g);while(m>0);return d},base64Vlq.decode=function(u,d,g){var m=u.length,y=0,b=0,S,A;do{if(d>=m)throw new Error("Expected more digits in base 64 VLQ value.");if(A=i.decode(u.charCodeAt(d++)),A===-1)throw new Error("Invalid base64 digit: "+u.charAt(d-1));S=!!(A&o),A&=s,y=y+(A<=0;z--)D=k[z],D==="."?k.splice(z,1):D===".."?O++:O>0&&(D===""?(k.splice(z+1,O),O=0):(k.splice(z,2),O--));return M=k.join("/"),M===""&&(M=I?"/":"."),B?(B.path=M,a(B)):M}i.normalize=l;function c(C,M){C===""&&(C="."),M===""&&(M=".");var B=o(M),I=o(C);if(I&&(C=I.path||"/"),B&&!B.scheme)return I&&(B.scheme=I.scheme),a(B);if(B||M.match(s))return M;if(I&&!I.host&&!I.path)return I.host=M,a(I);var k=M.charAt(0)==="/"?M:l(C.replace(/\/+$/,"")+"/"+M);return I?(I.path=k,a(I)):k}i.join=c,i.isAbsolute=function(C){return C.charAt(0)==="/"||r.test(C)};function u(C,M){C===""&&(C="."),C=C.replace(/\/$/,"");for(var B=0;M.indexOf(C+"/")!==0;){var I=C.lastIndexOf("/");if(I<0||(C=C.slice(0,I),C.match(/^([^\/]+:\/)?\/*$/)))return M;++B}return Array(B+1).join("../")+M.substr(C.length+1)}i.relative=u;var d=function(){var C=Object.create(null);return!("__proto__"in C)}();function g(C){return C}function m(C){return b(C)?"$"+C:C}i.toSetString=d?g:m;function y(C){return b(C)?C.slice(1):C}i.fromSetString=d?g:y;function b(C){if(!C)return!1;var M=C.length;if(M<9||C.charCodeAt(M-1)!==95||C.charCodeAt(M-2)!==95||C.charCodeAt(M-3)!==111||C.charCodeAt(M-4)!==116||C.charCodeAt(M-5)!==111||C.charCodeAt(M-6)!==114||C.charCodeAt(M-7)!==112||C.charCodeAt(M-8)!==95||C.charCodeAt(M-9)!==95)return!1;for(var B=M-10;B>=0;B--)if(C.charCodeAt(B)!==36)return!1;return!0}function S(C,M,B){var I=E(C.source,M.source);return I!==0||(I=C.originalLine-M.originalLine,I!==0)||(I=C.originalColumn-M.originalColumn,I!==0||B)||(I=C.generatedColumn-M.generatedColumn,I!==0)||(I=C.generatedLine-M.generatedLine,I!==0)?I:E(C.name,M.name)}i.compareByOriginalPositions=S;function A(C,M,B){var I=C.generatedLine-M.generatedLine;return I!==0||(I=C.generatedColumn-M.generatedColumn,I!==0||B)||(I=E(C.source,M.source),I!==0)||(I=C.originalLine-M.originalLine,I!==0)||(I=C.originalColumn-M.originalColumn,I!==0)?I:E(C.name,M.name)}i.compareByGeneratedPositionsDeflated=A;function E(C,M){return C===M?0:C===null?1:M===null?-1:C>M?1:-1}function x(C,M){var B=C.generatedLine-M.generatedLine;return B!==0||(B=C.generatedColumn-M.generatedColumn,B!==0)||(B=E(C.source,M.source),B!==0)||(B=C.originalLine-M.originalLine,B!==0)||(B=C.originalColumn-M.originalColumn,B!==0)?B:E(C.name,M.name)}i.compareByGeneratedPositionsInflated=x;function P(C){return JSON.parse(C.replace(/^\)]}'[^\n]*\n/,""))}i.parseSourceMapInput=P;function T(C,M,B){if(M=M||"",C&&(C[C.length-1]!=="/"&&M[0]!=="/"&&(C+="/"),M=C+M),B){var I=o(B);if(!I)throw new Error("sourceMapURL could not be parsed");if(I.path){var k=I.path.lastIndexOf("/");k>=0&&(I.path=I.path.substring(0,k+1))}M=c(a(I),M)}return l(M)}i.computeSourceURL=T}(util)),util}var arraySet={},hasRequiredArraySet;function requireArraySet(){if(hasRequiredArraySet)return arraySet;hasRequiredArraySet=1;var i=requireUtil(),e=Object.prototype.hasOwnProperty,r=typeof Map<"u";function s(){this._array=[],this._set=r?new Map:Object.create(null)}return s.fromArray=function(a,l){for(var c=new s,u=0,d=a.length;u=0)return l}else{var c=i.toSetString(a);if(e.call(this._set,c))return this._set[c]}throw new Error('"'+a+'" is not in the set.')},s.prototype.at=function(a){if(a>=0&&aa||l==a&&u>=c||i.compareByGeneratedPositionsInflated(s,o)<=0}function r(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}return r.prototype.unsortedForEach=function(o,a){this._array.forEach(o,a)},r.prototype.add=function(o){e(this._last,o)?(this._last=o,this._array.push(o)):(this._sorted=!1,this._array.push(o))},r.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},mappingList.MappingList=r,mappingList}var hasRequiredSourceMapGenerator;function requireSourceMapGenerator(){if(hasRequiredSourceMapGenerator)return sourceMapGenerator;hasRequiredSourceMapGenerator=1;var i=requireBase64Vlq(),e=requireUtil(),r=requireArraySet().ArraySet,s=requireMappingList().MappingList;function o(a){a||(a={}),this._file=e.getArg(a,"file",null),this._sourceRoot=e.getArg(a,"sourceRoot",null),this._skipValidation=e.getArg(a,"skipValidation",!1),this._sources=new r,this._names=new r,this._mappings=new s,this._sourcesContents=null}return o.prototype._version=3,o.fromSourceMap=function(l){var c=l.sourceRoot,u=new o({file:l.file,sourceRoot:c});return l.eachMapping(function(d){var g={generated:{line:d.generatedLine,column:d.generatedColumn}};d.source!=null&&(g.source=d.source,c!=null&&(g.source=e.relative(c,g.source)),g.original={line:d.originalLine,column:d.originalColumn},d.name!=null&&(g.name=d.name)),u.addMapping(g)}),l.sources.forEach(function(d){var g=d;c!==null&&(g=e.relative(c,d)),u._sources.has(g)||u._sources.add(g);var m=l.sourceContentFor(d);m!=null&&u.setSourceContent(d,m)}),u},o.prototype.addMapping=function(l){var c=e.getArg(l,"generated"),u=e.getArg(l,"original",null),d=e.getArg(l,"source",null),g=e.getArg(l,"name",null);this._skipValidation||this._validateMapping(c,u,d,g),d!=null&&(d=String(d),this._sources.has(d)||this._sources.add(d)),g!=null&&(g=String(g),this._names.has(g)||this._names.add(g)),this._mappings.add({generatedLine:c.line,generatedColumn:c.column,originalLine:u!=null&&u.line,originalColumn:u!=null&&u.column,source:d,name:g})},o.prototype.setSourceContent=function(l,c){var u=l;this._sourceRoot!=null&&(u=e.relative(this._sourceRoot,u)),c!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[e.toSetString(u)]=c):this._sourcesContents&&(delete this._sourcesContents[e.toSetString(u)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))},o.prototype.applySourceMap=function(l,c,u){var d=c;if(c==null){if(l.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);d=l.file}var g=this._sourceRoot;g!=null&&(d=e.relative(g,d));var m=new r,y=new r;this._mappings.unsortedForEach(function(b){if(b.source===d&&b.originalLine!=null){var S=l.originalPositionFor({line:b.originalLine,column:b.originalColumn});S.source!=null&&(b.source=S.source,u!=null&&(b.source=e.join(u,b.source)),g!=null&&(b.source=e.relative(g,b.source)),b.originalLine=S.line,b.originalColumn=S.column,S.name!=null&&(b.name=S.name))}var A=b.source;A!=null&&!m.has(A)&&m.add(A);var E=b.name;E!=null&&!y.has(E)&&y.add(E)},this),this._sources=m,this._names=y,l.sources.forEach(function(b){var S=l.sourceContentFor(b);S!=null&&(u!=null&&(b=e.join(u,b)),g!=null&&(b=e.relative(g,b)),this.setSourceContent(b,S))},this)},o.prototype._validateMapping=function(l,c,u,d){if(c&&typeof c.line!="number"&&typeof c.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(l&&"line"in l&&"column"in l&&l.line>0&&l.column>=0&&!c&&!u&&!d)){if(l&&"line"in l&&"column"in l&&c&&"line"in c&&"column"in c&&l.line>0&&l.column>=0&&c.line>0&&c.column>=0&&u)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:l,source:u,original:c,name:d}))}},o.prototype._serializeMappings=function(){for(var l=0,c=1,u=0,d=0,g=0,m=0,y="",b,S,A,E,x=this._mappings.toArray(),P=0,T=x.length;P0){if(!e.compareByGeneratedPositionsInflated(S,x[P-1]))continue;b+=","}b+=i.encode(S.generatedColumn-l),l=S.generatedColumn,S.source!=null&&(E=this._sources.indexOf(S.source),b+=i.encode(E-m),m=E,b+=i.encode(S.originalLine-1-d),d=S.originalLine-1,b+=i.encode(S.originalColumn-u),u=S.originalColumn,S.name!=null&&(A=this._names.indexOf(S.name),b+=i.encode(A-g),g=A)),y+=b}return y},o.prototype._generateSourcesContent=function(l,c){return l.map(function(u){if(!this._sourcesContents)return null;c!=null&&(u=e.relative(c,u));var d=e.toSetString(u);return Object.prototype.hasOwnProperty.call(this._sourcesContents,d)?this._sourcesContents[d]:null},this)},o.prototype.toJSON=function(){var l={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(l.file=this._file),this._sourceRoot!=null&&(l.sourceRoot=this._sourceRoot),this._sourcesContents&&(l.sourcesContent=this._generateSourcesContent(l.sources,l.sourceRoot)),l},o.prototype.toString=function(){return JSON.stringify(this.toJSON())},sourceMapGenerator.SourceMapGenerator=o,sourceMapGenerator}var sourceMapConsumer={},binarySearch={},hasRequiredBinarySearch;function requireBinarySearch(){return hasRequiredBinarySearch||(hasRequiredBinarySearch=1,function(i){i.GREATEST_LOWER_BOUND=1,i.LEAST_UPPER_BOUND=2;function e(r,s,o,a,l,c){var u=Math.floor((s-r)/2)+r,d=l(o,a[u],!0);return d===0?u:d>0?s-u>1?e(u,s,o,a,l,c):c==i.LEAST_UPPER_BOUND?s1?e(r,u,o,a,l,c):c==i.LEAST_UPPER_BOUND?u:r<0?-1:r}i.search=function(s,o,a,l){if(o.length===0)return-1;var c=e(-1,o.length,s,o,a,l||i.GREATEST_LOWER_BOUND);if(c<0)return-1;for(;c-1>=0&&a(o[c],o[c-1],!0)===0;)--c;return c}}(binarySearch)),binarySearch}var quickSort={},hasRequiredQuickSort;function requireQuickSort(){if(hasRequiredQuickSort)return quickSort;hasRequiredQuickSort=1;function i(s,o,a){var l=s[o];s[o]=s[a],s[a]=l}function e(s,o){return Math.round(s+Math.random()*(o-s))}function r(s,o,a,l){if(a=0){var A=this._originalMappings[S];if(g.column===void 0)for(var E=A.originalLine;A&&A.originalLine===E;)b.push({line:i.getArg(A,"generatedLine",null),column:i.getArg(A,"generatedColumn",null),lastColumn:i.getArg(A,"lastGeneratedColumn",null)}),A=this._originalMappings[++S];else for(var x=A.originalColumn;A&&A.originalLine===m&&A.originalColumn==x;)b.push({line:i.getArg(A,"generatedLine",null),column:i.getArg(A,"generatedColumn",null),lastColumn:i.getArg(A,"lastGeneratedColumn",null)}),A=this._originalMappings[++S]}return b},sourceMapConsumer.SourceMapConsumer=a;function l(d,g){var m=d;typeof d=="string"&&(m=i.parseSourceMapInput(d));var y=i.getArg(m,"version"),b=i.getArg(m,"sources"),S=i.getArg(m,"names",[]),A=i.getArg(m,"sourceRoot",null),E=i.getArg(m,"sourcesContent",null),x=i.getArg(m,"mappings"),P=i.getArg(m,"file",null);if(y!=this._version)throw new Error("Unsupported version: "+y);A&&(A=i.normalize(A)),b=b.map(String).map(i.normalize).map(function(T){return A&&i.isAbsolute(A)&&i.isAbsolute(T)?i.relative(A,T):T}),this._names=r.fromArray(S.map(String),!0),this._sources=r.fromArray(b,!0),this._absoluteSources=this._sources.toArray().map(function(T){return i.computeSourceURL(A,T,g)}),this.sourceRoot=A,this.sourcesContent=E,this._mappings=x,this._sourceMapURL=g,this.file=P}l.prototype=Object.create(a.prototype),l.prototype.consumer=a,l.prototype._findSourceIndex=function(d){var g=d;if(this.sourceRoot!=null&&(g=i.relative(this.sourceRoot,g)),this._sources.has(g))return this._sources.indexOf(g);var m;for(m=0;m1&&(k.source=E+O[1],E+=O[1],k.originalLine=S+O[2],S=k.originalLine,k.originalLine+=1,k.originalColumn=A+O[3],A=k.originalColumn,O.length>4&&(k.name=x+O[4],x+=O[4])),I.push(k),typeof k.originalLine=="number"&&B.push(k)}o(I,i.compareByGeneratedPositionsDeflated),this.__generatedMappings=I,o(B,i.compareByOriginalPositions),this.__originalMappings=B},l.prototype._findMapping=function(g,m,y,b,S,A){if(g[y]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+g[y]);if(g[b]<0)throw new TypeError("Column must be greater than or equal to 0, got "+g[b]);return e.search(g,m,S,A)},l.prototype.computeColumnSpans=function(){for(var g=0;g=0){var b=this._generatedMappings[y];if(b.generatedLine===m.generatedLine){var S=i.getArg(b,"source",null);S!==null&&(S=this._sources.at(S),S=i.computeSourceURL(this.sourceRoot,S,this._sourceMapURL));var A=i.getArg(b,"name",null);return A!==null&&(A=this._names.at(A)),{source:S,line:i.getArg(b,"originalLine",null),column:i.getArg(b,"originalColumn",null),name:A}}}return{source:null,line:null,column:null,name:null}},l.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(g){return g==null}):!1},l.prototype.sourceContentFor=function(g,m){if(!this.sourcesContent)return null;var y=this._findSourceIndex(g);if(y>=0)return this.sourcesContent[y];var b=g;this.sourceRoot!=null&&(b=i.relative(this.sourceRoot,b));var S;if(this.sourceRoot!=null&&(S=i.urlParse(this.sourceRoot))){var A=b.replace(/^file:\/\//,"");if(S.scheme=="file"&&this._sources.has(A))return this.sourcesContent[this._sources.indexOf(A)];if((!S.path||S.path=="/")&&this._sources.has("/"+b))return this.sourcesContent[this._sources.indexOf("/"+b)]}if(m)return null;throw new Error('"'+b+'" is not in the SourceMap.')},l.prototype.generatedPositionFor=function(g){var m=i.getArg(g,"source");if(m=this._findSourceIndex(m),m<0)return{line:null,column:null,lastColumn:null};var y={source:m,originalLine:i.getArg(g,"line"),originalColumn:i.getArg(g,"column")},b=this._findMapping(y,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions,i.getArg(g,"bias",a.GREATEST_LOWER_BOUND));if(b>=0){var S=this._originalMappings[b];if(S.source===y.source)return{line:i.getArg(S,"generatedLine",null),column:i.getArg(S,"generatedColumn",null),lastColumn:i.getArg(S,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},sourceMapConsumer.BasicSourceMapConsumer=l;function u(d,g){var m=d;typeof d=="string"&&(m=i.parseSourceMapInput(d));var y=i.getArg(m,"version"),b=i.getArg(m,"sections");if(y!=this._version)throw new Error("Unsupported version: "+y);this._sources=new r,this._names=new r;var S={line:-1,column:0};this._sections=b.map(function(A){if(A.url)throw new Error("Support for url field in sections not implemented.");var E=i.getArg(A,"offset"),x=i.getArg(E,"line"),P=i.getArg(E,"column");if(x=0;u--)this.prepend(c[u]);else if(c[o]||typeof c=="string")this.children.unshift(c);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+c);return this},a.prototype.walk=function(c){for(var u,d=0,g=this.children.length;d0){for(u=[],d=0;d0&&(A+=", "+E.join(", "));var x=0;Object.keys(this.aliases).forEach(function(C){var M=S.aliases[C];M.children&&M.referenceCount>1&&(A+=", alias"+ ++x+"="+C,M.children[0]="alias"+x)}),this.lookupPropertyFunctionIsUsed&&(A+=", "+this.lookupPropertyFunctionVarDeclaration());var P=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&P.push("blockParams"),this.useDepths&&P.push("depths");var T=this.mergeSource(A);return b?(P.push(T),Function.apply(this,P)):this.source.wrap(["function(",P.join(","),`) { `,T,"}"])},mergeSource:function(b){var S=this.environment.isSimple,A=!this.forceBuffer,E=void 0,x=void 0,P=void 0,T=void 0;return this.source.each(function(C){C.appendToBuffer?(P?C.prepend(" + "):P=C,T=C):(P&&(x?P.prepend("buffer += "):E=!0,T.add(";"),P=T=void 0),x=!0,S||(A=!1))}),A?P?(P.prepend("return "),T.add(";")):x||this.source.push('return "";'):(b+=", buffer = "+(E?"":this.initializeBuffer()),P?(P.prepend("return buffer + "),T.add(";")):this.source.push("return buffer;")),b&&this.source.prepend("var "+b.substring(2)+(E?"":`; `)),this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return` lookupProperty = container.lookupProperty || function(parent, propertyName) { if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { return parent[propertyName]; } return undefined } `.trim()},blockValue:function(b){var S=this.aliasable("container.hooks.blockHelperMissing"),A=[this.contextName(0)];this.setupHelperArgs(b,0,A);var E=this.popStack();A.splice(1,0,E),this.push(this.source.functionCall(S,"call",A))},ambiguousBlockValue:function(){var b=this.aliasable("container.hooks.blockHelperMissing"),S=[this.contextName(0)];this.setupHelperArgs("",0,S,!0),this.flushInline();var A=this.topStack();S.splice(1,0,A),this.pushSource(["if (!",this.lastHelper,") { ",A," = ",this.source.functionCall(b,"call",S),"}"])},appendContent:function(b){this.pendingContent?b=this.pendingContent+b:this.pendingLocation=this.source.currentLocation,this.pendingContent=b},append:function(){if(this.isInline())this.replaceStack(function(S){return[" != null ? ",S,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var b=this.popStack();this.pushSource(["if (",b," != null) { ",this.appendToBuffer(b,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(b){this.lastContext=b},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(b,S,A,E){var x=0;!E&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(b[x++])):this.pushContext(),this.resolvePath("context",b,x,S,A)},lookupBlockParam:function(b,S){this.useBlockParams=!0,this.push(["blockParams[",b[0],"][",b[1],"]"]),this.resolvePath("context",S,1)},lookupData:function(b,S,A){b?this.pushStackLiteral("container.data(data, "+b+")"):this.pushStackLiteral("data"),this.resolvePath("data",S,0,!0,A)},resolvePath:function(b,S,A,E,x){var P=this;if(this.options.strict||this.options.assumeObjects){this.push(m(this.options.strict&&x,this,S,A,b));return}for(var T=S.length;Athis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var b=this.inlineStack;this.inlineStack=[];for(var S=0,A=b.length;S64&&i<91?i-65:i>96&&i<123?i-71:i>47&&i<58?i+4:i===43?62:i===47?63:0}function decode(i,e){for(var r=i.replace(/[^A-Za-z0-9\+\/]/g,""),s=r.length,o=e?Math.ceil((s*3+1>>2)/e)*e:s*3+1>>2,a=new Uint8Array(o),l,c,u=0,d=0,g=0;g>>(16>>>l&24)&255;u=0}return a}var base64={decode},fetch$1=function(i,e){return new Promise(function(r,s){var o=new XMLHttpRequest;e&&(o.responseType=e),o.open("GET",i),o.onload=function(){o.status===200?r(o.response):s(Error(o.statusText))},o.onerror=function(){s(Error("Network Error"))},o.send()})};(function(i){var e=base64,r=fetch$1;function s(I){return function(k){return typeof k=="string"&&I.test(k)}}function o(I,k){return typeof I=="string"?I+k:typeof I=="function"?I(k):k}function a(I,k,D,O){var z=l(k)?c:u(k)?d:g(k)?m:y(k)?b:S(k)?A:E(k)?x:P(k)?T:C(k)?M:null,N=D||{};return z?z(I,k,N):O?Promise.resolve(O):Promise.reject("Source not valid ("+k+")")}a.fetch=r;function l(I){return I instanceof ArrayBuffer}function c(I,k,D){return new Promise(function(O,z){I.decodeAudioData(k,function(N){O(N)},function(){z("Can't decode audio data ("+k.slice(0,30)+"...)")})})}var u=s(/\.(mp3|wav|ogg)(\?.*)?$/i);function d(I,k,D){var O=o(D.from,k);return a(I,a.fetch(O,"arraybuffer"),D)}function g(I){return I&&typeof I.then=="function"}function m(I,k,D){return k.then(function(O){return a(I,O,D)})}var y=Array.isArray;function b(I,k,D){return Promise.all(k.map(function(O){return a(I,O,D,O)}))}function S(I){return I&&typeof I=="object"}function A(I,k,D){var O={},z=Object.keys(k).map(function(N){if(D.only&&D.only.indexOf(N)===-1)return null;var Q=k[N];return a(I,Q,D,Q).then(function(_){O[N]=_})});return Promise.all(z).then(function(){return O})}var E=s(/\.json(\?.*)?$/i);function x(I,k,D){var O=o(D.from,k);return a(I,a.fetch(O,"text").then(JSON.parse),D)}var P=s(/^data:audio/);function T(I,k,D){var O=k.indexOf(",");return a(I,e.decode(k.slice(O+1)).buffer,D)}var C=s(/\.js(\?.*)?$/i);function M(I,k,D){var O=o(D.from,k);return a(I,a.fetch(O,"text").then(B),D)}function B(I){var k=I.indexOf("MIDI.Soundfont.");if(k<0)throw Error("Invalid MIDI.js Soundfont format");k=I.indexOf("=",k)+2;var D=I.lastIndexOf(",");return JSON.parse(I.slice(k,D)+"}")}i.exports&&(i.exports=a),typeof window<"u"&&(window.loadAudio=a)})(lib$1);var libExports={},lib={get exports(){return libExports},set exports(i){libExports=i}},adsr=ADSR$1;function ADSR$1(i){var e=i.createGain(),r=e._voltage=getVoltage(i),s=scale(r),o=scale(r),a=scale(r);return e._startAmount=scale(o),e._endAmount=scale(a),e._multiplier=scale(s),e._multiplier.connect(e),e._startAmount.connect(e),e._endAmount.connect(e),e.value=s.gain,e.startValue=o.gain,e.endValue=a.gain,e.startValue.value=0,e.endValue.value=0,Object.defineProperties(e,props),e}var props={attack:{value:0,writable:!0},decay:{value:0,writable:!0},sustain:{value:1,writable:!0},release:{value:0,writable:!0},getReleaseDuration:{value:function(){return this.release}},start:{value:function(i){var e=this._multiplier.gain,r=this._startAmount.gain,s=this._endAmount.gain;this._voltage.start(i),this._decayFrom=this._decayFrom=i+this.attack,this._startedAt=i;var o=this.sustain;e.cancelScheduledValues(i),r.cancelScheduledValues(i),s.cancelScheduledValues(i),s.setValueAtTime(0,i),this.attack?(e.setValueAtTime(0,i),e.linearRampToValueAtTime(1,i+this.attack),r.setValueAtTime(1,i),r.linearRampToValueAtTime(0,i+this.attack)):(e.setValueAtTime(1,i),r.setValueAtTime(0,i)),this.decay&&e.setTargetAtTime(o,this._decayFrom,getTimeConstant(this.decay))}},stop:{value:function(i,e){e&&(i=i-this.release);var r=i+this.release;if(this.release){var s=this._multiplier.gain,o=this._startAmount.gain,a=this._endAmount.gain;s.cancelScheduledValues(i),o.cancelScheduledValues(i),a.cancelScheduledValues(i);var l=getTimeConstant(this.release);if(this.attack&&i=e&&(d=e),d}var ADSR=adsr,EMPTY={},DEFAULTS={gain:1,attack:.01,decay:.1,sustain:.9,release:.3,loop:!1,cents:0,loopStart:0,loopEnd:0};function SamplePlayer(i,e,r){var s=!1,o=0,a={},l=i.createGain();l.gain.value=1;var c=Object.assign({},DEFAULTS,r),u={context:i,out:l,opts:c};return e instanceof AudioBuffer?u.buffer=e:u.buffers=e,u.start=function(m,y,b){if(u.buffer&&m!==null)return u.start(null,m,y);var S=m?u.buffers[m]:u.buffer;if(S){if(!s){console.warn("SamplePlayer not connected to any node.");return}}else{console.warn("Buffer "+m+" not found.");return}var A=b||EMPTY;y=Math.max(i.currentTime,y||0),u.emit("start",y,m,A);var E=g(m,S,A);return E.id=d(m,E),E.env.start(y),E.source.start(y),u.emit("started",y,E.id,E),A.duration&&E.stop(y+A.duration),E},u.play=function(m,y,b){return u.start(m,y,b)},u.stop=function(m,y){var b;return y=y||Object.keys(a),y.map(function(S){return b=a[S],b?(b.stop(m),b.id):null})},u.connect=function(m){return s=!0,l.connect(m),u},u.emit=function(m,y,b,S){u.onevent&&u.onevent(m,y,b,S);var A=u["on"+m];A&&A.forEach(E=>{E(y,b,S)})},u;function d(m,y){return y.id=o++,a[y.id]=y,y.startTime=i.currentTime,y.source.onended=function(){var b=i.currentTime;y.source.disconnect(),y.env.disconnect(),y.disconnect(),u.emit("ended",b,y.id,y)},y.id}function g(m,y,b){var S=i.createGain();return S.gain.value=0,S.connect(l),S.env=envelope(i,b,c),S.env.connect(S.gain),S.source=i.createBufferSource(),S.source.buffer=y,S.source.connect(S),S.source.loop=b.loop||c.loop,S.source.playbackRate.value=centsToRate(b.cents||c.cents),S.source.loopStart=b.loopStart||c.loopStart,S.source.loopEnd=b.loopEnd||c.loopEnd,S.stop=function(A){var E=A||i.currentTime;u.emit("stop",E,m);var x=S.env.stop(E);S.source.stop(x)},S}}function isNum$1(i){return typeof i=="number"}var PARAMS=["attack","decay","sustain","release"];function envelope(i,e,r){var s=ADSR(i),o=e.adsr||r.adsr;return PARAMS.forEach(function(a,l){o?s[a]=o[l]:s[a]=e[a]||r[a]}),s.value.value=isNum$1(e.gain)?e.gain:isNum$1(r.gain)?r.gain:1,s}function centsToRate(i){return i?Math.pow(2,i/1200):1}var player=SamplePlayer,events=function(i){return i.on=function(e,r){if(arguments.length===1&&typeof e=="function")return i.on("event",e);var s="on"+e;return i[s]?i[s].push(r):i[s]=[r],i},i},REGEX$1=/^([a-gA-G])(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)\s*$/;function regex$1(){return REGEX$1}var SEMITONES$1=[0,2,4,5,7,9,11];function parse$1(i,e,r){if(typeof i!="string")return null;var s=REGEX$1.exec(i);if(!s||!e&&s[4])return null;var o={letter:s[1].toUpperCase(),acc:s[2].replace(/x/g,"##")};return o.pc=o.letter+o.acc,o.step=(o.letter.charCodeAt(0)+3)%7,o.alt=o.acc[0]==="b"?-o.acc.length:o.acc.length,o.chroma=SEMITONES$1[o.step]+o.alt,s[3]&&(o.oct=+s[3],o.midi=o.chroma+12*(o.oct+1),o.freq=midiToFreq$1(o.midi,r)),e&&(o.tonicOf=s[4]),o}function midiToFreq$1(i,e){return Math.pow(2,(i-69)/12)*(e||440)}var parser={parse:parse$1,regex:regex$1,midiToFreq:midiToFreq$1},FNS=["letter","acc","pc","step","alt","chroma","oct","midi","freq"];FNS.forEach(function(i){parser[i]=function(e){var r=parse$1(e);return r&&typeof r[i]<"u"?r[i]:null}});var noteParser$1=parser,note$1=noteParser$1,isMidi=function(i){return i!==null&&i!==[]&&i>=0&&i<129},toMidi=function(i){return isMidi(i)?+i:note$1.midi(i)},notes=function(i){if(i.buffers){var e=i.opts.map,r=typeof e=="function"?e:toMidi,s=function(a){return a?r(a)||a:null};i.buffers=mapBuffers(i.buffers,s);var o=i.start;i.start=function(a,l,c){var u=s(a),d=u%1;return d&&(u=Math.floor(u),c=Object.assign(c||{},{cents:Math.floor(d*100)})),o(u,l,c)}}return i};function mapBuffers(i,e){return Object.keys(i).reduce(function(r,s){return r[e(s)]=i[s],r},{})}var isArr=Array.isArray,isObj=function(i){return i&&typeof i=="object"},OPTS={},scheduler=function(i){return i.schedule=function(e,r){var s=i.context.currentTime,o=e"u"?null:i.step?build(i.step,i.alt,i.oct):i<0||i>6?null:LETTERS.charAt(i)+accStr(e)+octStr(r)}function midi(i){if((isNum(i)||isStr(i))&&i>=0&&i<128)return+i;var e=parse(i);return e&&isDef(e.midi)?e.midi:null}function freq(i,e){var r=midi(i);return r===null?null:midiToFreq(r,e)}function letter(i){return(parse(i)||{}).letter}function acc(i){return(parse(i)||{}).acc}function pc(i){return(parse(i)||{}).pc}function step(i){return(parse(i)||{}).step}function alt(i){return(parse(i)||{}).alt}function chroma(i){return(parse(i)||{}).chroma}function oct(i){return(parse(i)||{}).oct}const noteParser=Object.freeze(Object.defineProperty({__proto__:null,acc,alt,build,chroma,freq,letter,midi,oct,parse,pc,regex,step},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(noteParser);var legacy,hasRequiredLegacy;function requireLegacy(){if(hasRequiredLegacy)return legacy;hasRequiredLegacy=1;var i=require$$0;function e(o,a){if(console.warn("new Soundfont() is deprected"),console.log("Please use Soundfont.instrument() instead of new Soundfont().instrument()"),!(this instanceof e))return new e(o);this.nameToUrl=a||e.nameToUrl,this.ctx=o,this.instruments={},this.promises=[]}e.prototype.onready=function(o){console.warn("deprecated API"),console.log("Please use Promise.all(Soundfont.instrument(), Soundfont.instrument()).then() instead of new Soundfont().onready()"),Promise.all(this.promises).then(o)},e.prototype.instrument=function(o,a){console.warn("new Soundfont().instrument() is deprecated."),console.log("Please use Soundfont.instrument() instead.");var l=this.ctx;if(o=o||"default",o in this.instruments)return this.instruments[o];var c={name:o,play:s(l,a)};if(this.instruments[o]=c,o!=="default"){var u=e.instrument(l,o,a).then(function(d){return c.play=d.play,c});this.promises.push(u),c.onready=function(d){console.warn("onready is deprecated. Use Soundfont.instrument().then()"),u.then(d)}}else c.onready=function(d){console.warn("onready is deprecated. Use Soundfont.instrument().then()"),d()};return c};function r(o,a,l){return console.warn("Soundfont.loadBuffers is deprecate."),console.log("Use Soundfont.instrument(..) and get buffers properties from the result."),e.instrument(o,a,l).then(function(c){return c.buffers})}e.loadBuffers=r;function s(o,a){return a=a||{},function(l,c,u,d){console.warn("The oscillator player is deprecated."),console.log("Starting with version 0.9.0 you will have to wait until the soundfont is loaded to play sounds.");var g=l>0&&l<129?+l:i.midi(l),m=g?i.midiToFreq(g,440):null;if(m){u=u||.2,d=d||{};var y=d.destination||a.destination||o.destination,b=d.vcoType||a.vcoType||"sine",S=d.gain||a.gain||.4,A=o.createOscillator();A.type=b,A.frequency.value=m;var E=o.createGain();return E.gain.value=S,A.connect(E),E.connect(y),A.start(c),u>0&&A.stop(c+u),A}}}return e.noteToMidi=i.midi,legacy=e,legacy}(function(i){var e=libExports$1,r=libExports;function s(c,u,d){if(arguments.length===1)return function(S,A){return s(c,S,A)};var g=d||{},m=g.isSoundfontURL||o,y=g.nameToUrl||a,b=m(u)?u:y(u,g.soundfont,g.format);return e(c,b,{only:g.only||g.notes}).then(function(S){var A=r(c,S,g).connect(g.destination?g.destination:c.destination);return A.url=b,A.name=u,A})}function o(c){return/\.js(\?.*)?$/i.test(c)}function a(c,u,d){return d=d==="ogg"?d:"mp3",u=u==="FluidR3_GM"?u:"MusyngKite","https://gleitz.github.io/midi-js-soundfonts/"+u+"/"+c+"-"+d+".js"}var l=requireLegacy();l.instrument=s,l.nameToUrl=a,i.exports&&(i.exports=l),typeof window<"u"&&(window.Soundfont=l)})(lib$2);NoteEnum.C,NoteEnum.D,NoteEnum.E,NoteEnum.F,NoteEnum.G,NoteEnum.A,NoteEnum.B;const selectionContainer="_selectionContainer_xbtx1_1",position="_position_xbtx1_8",note="_note_xbtx1_11",staveBox="_staveBox_xbtx1_14",singleLineSelection="_singleLineSelection_xbtx1_17",leftStaveBox="_leftStaveBox_xbtx1_20",rightStaveBox="_rightStaveBox_xbtx1_34",centerStaveBox="_centerStaveBox_xbtx1_48",prepareStaveBox="_prepareStaveBox_xbtx1_73",disable="_disable_xbtx1_76",line="_line_xbtx1_79",eyeLine="_eyeLine_xbtx1_91",lineStaff="_lineStaff_xbtx1_94",lineJianPu="_lineJianPu_xbtx1_97",scoreItem="_scoreItem_xbtx1_103",dotWrap="_dotWrap_xbtx1_140",noteFollow="_noteFollow_xbtx1_155",linePC="_linePC_xbtx1_191",noteDot="_noteDot_xbtx1_195",styles$8={selectionContainer,position,note,staveBox,singleLineSelection,leftStaveBox,rightStaveBox,centerStaveBox,prepareStaveBox,disable,line,eyeLine,lineStaff,lineJianPu,scoreItem,dotWrap,noteFollow,linePC,noteDot},noteMove="_noteMove_6dz5a_1",activeModel="_activeModel_6dz5a_14",toolBox="_toolBox_6dz5a_17",moveDisabled="_moveDisabled_6dz5a_33",hideTool="_hideTool_6dz5a_36",rightHideIcon$1="_rightHideIcon_6dz5a_39",styles$7={noteMove,activeModel,toolBox,moveDisabled,hideTool,rightHideIcon:rightHideIcon$1},tooltip="",TooltipSfc="",buttonGroup="",ButtonGroupSfc="",rightHideIcon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAB4CAYAAACjK+FPAAAAAXNSR0IArs4c6QAAA9hJREFUeF7tnctrE1EUxr+J7wfqRsdCA2okIhMfNCXZVKyKWOzSZVbdCS5KcetON6J/RKEQBKFLwVWpUgvddNFVNkWbGrptSCsVm8otmTDpTDptb+49cx8Xumrn3PM735m5Z5r2HAf86zyAqwAuAjgF4HTr6xi/6Z5Z+Occ0dQZANdbgOeOaEPmZYcGPQHgJoAbAFIyPeXc61CgaQAeAAar2joQKEvv2wAyqtEF/I0FPQ4gD+CKwpDM9X1BmZJFAJcVh4wFZfcje+josLoqyh4893UgbDFEgp4E8AQAuz91WZGgOqWsL1QI9CyAxwCOWjElNQNCoHcAXEuqtxx+hUCftgpyDpuJvLQD9BKAB4l0k9+pDtBbALL8NhNpoQOUVUGql3rdotwB+hDAhUTqwe9UB+gzAKxY0HG1QdlL9KiOhHtLQPYyPWJB1Y9AO3WtouqLuUtgFdVEyDaGVdQqqmgEbOoqKlxXt62iVlFFI2BTV1Hh7MPIpq5NXUUjYFNXUeHsU9emLmnqzszMvCgUCqOO4zgLCwtfhoeHP3M6lDxFl5aWXuZyuecBsJ3Jycn3Y2NjPzhgkwUaAbnLtry8/D2TyXzQArQbJIObm5srDw0NfVIedD/IRqPx23XdV5ubm02lQWMga4ODgxOVSuUPByT9b+olQdKCSoSkA5UMSQNKACkflAhSLighpDxQYkg5oCsrK2/S6XQh6hxsNBq9OifjjlmxtW61Wn3T399PDSle0e3t7elUKhX6S+6NjY1aPp/vRcUTp6T/fbGKNpvNacdxQqD1er3qed7E6urq34N6yvlzYkFrtdrbvr6+e1FO1uv1X57nvZYEKxaUAa6trb1zXfcuMax4UAZYqVTGs9ks+8+L0JKkrBzQBMDKAyWGlQtKCCsflAiWBpQAlg5UMiwtqERYetA42PX19Z+u645vbW3tcJSByQCNg52dnZ3i/PwlOaD7wWr1kYSfllHlYrlc/lgqlb5pkbpBiPn5+dLAwMAI+9hwcXHxa7FYnOKAFP/izelcLy9P1j3aS7I9tiyowOCSmLaKkoRd4KZWUYHBJTFtFSUJu8BNraICg0ti2ipKEnaBm1pFBQaXxLRVlCTsAje1igoMLolpqyhJ2AVuahUVGFwS021FjWncxMJsRCsuBmpMczVj2uUZ0wDRmJaW7D41okkpA821JgqQHHYCN22fo/4erJHwI8WmChwkPiFQdpERraEZqDHNvhmsEe3b/ZzXKYUj71Ef1JgRCwzYiKEZQWW1H4MSPKO0H2wThDViVFEQWPvhU1HlVnCcGBsl5o8US9Q4sf9BGvvA8pV1NwAAAABJRU5ErkJggg==";let extStyleConfigJson={};window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;const showToolBox=ref(!0),moveData=reactive({open:!1,zoom:1,partIndex:"0",hasExtJson:!1,isWeb:!1,modelList:[],activeIndex:-1,sw:0,tool:{isAddAndSub:!1},noteCoords:[]}),initNoteCoord=()=>{const i=Array.from(document.querySelectorAll(".node-dot"));moveData.noteCoords=i.map(e=>{var s;const r=((s=e==null?void 0:e.getBoundingClientRect)==null?void 0:s.call(e))||{x:0,y:0};return{x:r.x,y:r.y}})},computedDistance=(i,e)=>{let r=-1,s=0,o,a,l;return moveData.noteCoords.forEach((c,u)=>{o=Math.abs(c.x-i),a=Math.abs(c.y-e),l=Math.sqrt(o*o+a*a),l=Number(l.toFixed(0)),l!==0&&(r===-1||l{setEleId(m,"temp"+l),l++});let c=1;[...r].forEach(m=>{setEleId(m,"text"+c),c++});let u=1;[...s].forEach(m=>{setEleId(m,"section"+u),u++});let d=1;[...o].forEach(m=>{setEleId(m,"repet"+d),d++});let g=1;[...a].forEach(m=>{setEleId(m,"line"+g),g++})}function setEleId(i,e){if(!i||!e)return;i.getAttribute("id")||i.setAttribute("id",e),createModelBox(i)}function createModelBox(i){var c;const e=((c=document.getElementById("musicAndSelection"))==null?void 0:c.getBoundingClientRect())||{x:0,y:0},r=e.x||0,s=e.y||0,o=i.getBoundingClientRect(),a={left:o.x-r+"px",top:o.y-s+"px",width:o.width+"px",height:o.height+"px"},l=i.getAttribute("class");moveData.modelList.push({id:i.getAttribute("id"),bbox:a,type:l,isMove:!1,left:o.left,top:o.top,width:o.width,height:o.height,x:0,y:0,zoom:state$1.zoom,isDelete:!1,d2:getLineGroupPathDx(i),dx:0})}function getBox(i){var a;if(!i)return{};const e=((a=document.getElementById("musicAndSelection"))==null?void 0:a.getBoundingClientRect())||{x:0,y:0},r=e.x||0,s=e.y||0,o=i.getBoundingClientRect();return{left:o.x-r,top:o.y-s,width:o.width,height:o.height}}const filterMoveData=async()=>{const i=state$1.examSongId;if(i){const e=window.fontSize,r=moveData.modelList.filter(o=>o.isMove).map(o=>{var m,y,b,S;const a=o.left+o.x,l=o.top+o.y,c=computedDistance(a,l),u=a-((m=moveData.noteCoords[c])==null?void 0:m.x),d=l-((y=moveData.noteCoords[c])==null?void 0:y.y);let g={id:o.id,isMove:o.isMove,isDelete:o.isDelete,x:o.x,y:o.y,xRem:Math.abs(o.x/e),yRem:Math.abs(o.y/e),zoom:o.zoom,w:moveData.sw,type:o.type,noteIdx:c,noteRelativeX:u,noteRelativeY:d};if(o.type==="vf-lineGroup"&&(g.dx=o.dx),o.id.includes("text")){const A=((S=(b=document.querySelector("#"+o.id))==null?void 0:b.querySelector("text"))==null?void 0:S.innerHTML)||"";g.textContent=A}return g});extStyleConfigJson[moveData.partIndex]=r,console.log("🚀 ~ extStyleConfigJson",extStyleConfigJson);const s=await request.post("/musicSheet/img",{requestType:"json",data:{id:i,extStyleConfigJson:JSON.stringify(extStyleConfigJson)}});s&&s.code==200&&showToast("保存成功"),clearActiveModel()}},dragData={open:!1,startX:0,startY:0,x:0,y:0,repeatEdit:!1},undoData=reactive({undoList:[],redoList:[],activeItem:null});function onDown(i){const e=i.target,r=moveData.modelList.findIndex(s=>s.id===e.dataset.id);if(r>-1){const s=moveData.modelList[r];moveData.activeIndex=r,dragData.startX=i.clientX,dragData.startY=i.clientY,dragData.x=s.x,dragData.y=s.y,dragData.repeatEdit=s.noteIdx>=0,document.onmousemove=onMove,document.onmouseup=onUp,dragData.open=!0,s.type==="vf-lineGroup"?moveData.tool.isAddAndSub=!0:moveData.tool.isAddAndSub=!1,undoData.activeItem={...s};return}moveData.activeIndex=-1}function onMove(i){if(dragData.open){const e=i.clientX-dragData.startX+dragData.x,r=i.clientY-dragData.startY+dragData.y;setModelPostion(moveData.modelList[moveData.activeIndex],e,r,dragData.repeatEdit)}}function onUp(i){document.onmousemove=null,document.onmouseup=null,dragData.open=!1;const e=i.clientX-dragData.startX+dragData.x,r=i.clientY-dragData.startY+dragData.y;(e||r)&&(moveData.modelList[moveData.activeIndex].isMove=!0,moveData.modelList[moveData.activeIndex].x=e,moveData.modelList[moveData.activeIndex].y=r,undoData.activeItem&&undoData.undoList.push({...undoData.activeItem})),undoData.activeItem=null}const renderSvgItem=i=>{if(setModelPostion(i,i.x,i.y),i.isDelete){const e=document.querySelector("#"+i.id);e&&(e.style.display="none")}else{const e=document.querySelector("#"+i.id);e&&(e.style.display="")}};async function setModelPostion(i,e,r,s){var o;if(i){const a=document.querySelector("#"+i.id),l=document.querySelector(`[data-id=${i.id}]`);if(e===0&&r===0)a&&a.removeAttribute("transform"),l&&(l.style.transform="");else{let c=e,u=r;if(i.noteIdx>=0&&!s){moveData.noteCoords.length||await initNoteCoord();const d=moveData.noteCoords[i.noteIdx].x+i.noteRelativeX,g=moveData.noteCoords[i.noteIdx].y+i.noteRelativeY,m=((o=document.getElementById(i.id))==null?void 0:o.getBoundingClientRect())||{x:0,y:0};c=d-m.x,u=g-m.y,a&&a.setAttribute("transform",`translate(${c/moveData.zoom}, ${u/moveData.zoom})`),l&&(l.style.transform=`translate(${c}px, ${u}px)`)}else a&&a.setAttribute("transform",`translate(${c/moveData.zoom}, ${u/moveData.zoom})`),l&&(l.style.transform=`translate(${c}px, ${u}px)`)}}}const handleDeleteMoveNote=()=>{const i=moveData.modelList[moveData.activeIndex];if(i){moveData.modelList[moveData.activeIndex].isMove=!0,undoData.undoList.push({...moveData.modelList[moveData.activeIndex]}),moveData.modelList[moveData.activeIndex].isDelete=!i.isDelete;const e=document.querySelector("#"+i.id);e&&(e.style.display=moveData.modelList[moveData.activeIndex].isDelete?"none":"")}else showToast("选中需要删除的元素")},resetMoveNote=()=>{for(let i=0;i{if(!["add","sub"].includes(i))return;const e=moveData.modelList[moveData.activeIndex];if(!e||e.type!=="vf-lineGroup")return;e.isMove=!0;const r=i==="add"?10:-10;undoData.undoList.push({...moveData.modelList[moveData.activeIndex]}),moveData.modelList[moveData.activeIndex].dx=e.dx+r,renderLineGroup(moveData.modelList[moveData.activeIndex])};function getLineGroupPathDx(i){var r,s,o,a;if(!i)return 0;const e=i.querySelectorAll("path");if(e!=null&&e.length)for(let l=0;l{const i=undoData.undoList.pop();if(i){const e=moveData.modelList.findIndex(r=>r.id===i.id);e>-1&&(moveData.modelList[e]=i,renderSvgItem(moveData.modelList[e]),i.type==="vf-lineGroup"&&renderLineGroup(i))}},renderForMoveData=()=>{if(state$1.extStyleConfigJson)try{extStyleConfigJson=JSON.parse(state$1.extStyleConfigJson)}catch(e){extStyleConfigJson={}}if(!extStyleConfigJson||!(extStyleConfigJson!=null&&extStyleConfigJson[moveData.partIndex])){initSvgId();return}else initSvgId();const i=extStyleConfigJson==null?void 0:extStyleConfigJson[moveData.partIndex];i&&Array.isArray(i)&&nextTick(()=>{console.log("🚀 ~ list",i),i.forEach(e=>{var s,o,a,l,c,u,d;let r=moveData.modelList.findIndex(g=>g.id===e.id);if(e.type==="vf-text"&&e.textContent){let g=((a=(o=document.querySelector("#"+((s=moveData.modelList[r])==null?void 0:s.id)))==null?void 0:o.querySelector("text"))==null?void 0:a.innerHTML)||"",m=r,y=!1,b=r,S=r;if(g!==e.textContent)for(;!y;){let A=moveData.modelList[b]&&((c=(l=document.querySelector("#"+moveData.modelList[b].id))==null?void 0:l.querySelector("text"))==null?void 0:c.innerHTML)||"",E=moveData.modelList[S]&&((d=(u=document.querySelector("#"+moveData.modelList[S].id))==null?void 0:u.querySelector("text"))==null?void 0:d.innerHTML)||"";A===e.textContent||E===e.textContent?(y=!0,m=A===e.textContent?b:S):(!A&&!E&&(y=!0,m=-1),b=b-1,S=S+1)}r=m,e.id=`text${m+1}`}r>-1&&(moveData.modelList[r]={...moveData.modelList[r],...e},renderSvgItem(moveData.modelList[r]),e.type==="vf-lineGroup"&&renderLineGroup(moveData.modelList[r]))})})},MoveMusicScore=defineComponent({name:"move-music-score",setup(){moveData.zoom=state$1.zoom;const e=getQuery().isMove==="1";return console.log("🚀 ~ isOpen:",e),onMounted(()=>{nextTick(()=>initNoteCoord());const r=document.getElementById("toolBox");r&&document.body.appendChild(r)}),()=>createVNode("div",{class:[moveData.open?"":styles$7.moveDisabled]},[createVNode("div",{id:"toolBox"},[createVNode("div",{class:[styles$7.toolBox,!showToolBox.value&&styles$7.hideTool]},[createVNode(Switch,{modelValue:moveData.open,"onUpdate:modelValue":r=>moveData.open=r},null),moveData.open&&createVNode(Fragment,null,[moveData.tool.isAddAndSub&&createVNode(ButtonGroup,{size:"small",elevation:!1},{default:()=>[createVNode(Button,{onClick:()=>handleAddAndSub("add")},{default:()=>[createTextVNode("加")]}),createVNode(Button,{onClick:()=>handleAddAndSub("sub")},{default:()=>[createTextVNode("减")]})]}),createVNode(Button,{size:"small",onClick:handleUndo,disabled:!undoData.undoList.length},{default:()=>[createVNode(Icon,{name:"arrow-down",style:{transform:"rotate(90deg)"}},null)]}),createVNode(Button,{size:"small",onClick:handleDeleteMoveNote,disabled:!(moveData.activeIndex>-1)},{default:()=>{var r;return[(r=moveData.modelList[moveData.activeIndex])!=null&&r.isDelete?"显示元素":"删除元素"]}}),createVNode(Button,{size:"small",onClick:resetMoveNote},{default:()=>[createTextVNode("重置数据")]}),createVNode(Button,{size:"small",type:"primary",onClick:filterMoveData},{default:()=>[createTextVNode("保存数据")]}),createVNode(Button,{size:"small",type:"primary",onClick:()=>showToolBox.value=!1},{default:()=>[createTextVNode("收起")]})])]),!showToolBox.value&&createVNode("img",{class:[styles$7.rightHideIcon,showToolBox.value?"":styles$7.rightIconShow],src:rightHideIcon,onClick:()=>showToolBox.value=!0},null)]),moveData.modelList.map((r,s)=>createVNode("div",{class:[styles$7.noteMove,moveData.activeIndex===s&&styles$7.activeModel],style:r.bbox,"data-id":r.id,onMousedown:onDown},null))])}}),selectData=reactive({notes:[],staves:[],measureHeight:0}),calcNoteData=()=>{var c,u,d,g,m,y,b,S,A,E,x,P,T;const i=((c=document.getElementById("musicAndSelection"))==null?void 0:c.getBoundingClientRect())||{x:0,y:0},e=i.x||0,r=i.y||0,s=state$1.times,o=[],a=[];let l=0;for(let C=0;CD.id===B.id)||selectData.notes.push(B),o.push(M.noteId)}}if(!a.includes(M.MeasureNumberXML)){if(M.stave){if((P=(x=M.stave)==null?void 0:x.attrs)!=null&&P.id){const I=document.querySelector(`#${M.stave.attrs.id}`),k=[Array.from((I==null?void 0:I.querySelectorAll(".vf-clef"))||[]),Array.from((I==null?void 0:I.querySelectorAll(".vf-keysignature"))||[]),Array.from((I==null?void 0:I.getElementsByTagName("text"))||[])].flat();try{k.length&&k.forEach(z=>{var N;(N=z==null?void 0:z.style)==null||N.setProperty("display","none")})}catch(z){}const D=((T=I==null?void 0:I.getBoundingClientRect)==null?void 0:T.call(I))||{x:0,width:0,y:0,height:0};C===0&&(l=D.height);try{k.length&&k.forEach(z=>{var N;(N=z==null?void 0:z.style)==null||N.removeProperty("display")})}catch(z){}selectData.measureHeight=D.height;let O=D.height-l;O=O>0?O:0,B.staveBox={left:D.x-e+"px",top:D.y-r+O+"px",width:D.width+"px",height:D.height-O+"px"},selectData.staves.push(B)}a.push(M.MeasureNumberXML)}else if(M.multipleRestMeasures){const I=selectData.staves.find(k=>k.MeasureNumberXML===M.MeasureNumberXML-1);I!=null&&I.staveBox&&(B.staveBox={left:I.staveBox.left,top:I.staveBox.top,width:I.staveBox.width},selectData.staves.push(B),a.push(M.MeasureNumberXML))}}}},Selection=defineComponent({name:"selection",setup(){const i=useRoute$1(),e={...getQuery(),...i.query},r=computed(()=>state$1.sectionStatus||state$1.modeType!=="practise"),s=computed(()=>o=>{var a;if(state$1.sectionStatus){if(state$1.section.length===1&&o.MeasureNumberXML==state$1.section[0].MeasureNumberXML)return styles$8.leftStaveBox;if(state$1.section.length===2){const l=state$1.userChooseEndIndex>state$1.section[1].MeasureNumberXML?state$1.userChooseEndIndex:state$1.section[1].MeasureNumberXML;if(state$1.sectionFirst&&o.MeasureNumberXML===state$1.sectionFirst.MeasureNumberXML)return o.staveBox.height=selectData.measureHeight+"px",styles$8.prepareStaveBox;if(o.MeasureNumberXML>=state$1.section[0].MeasureNumberXML&&o.MeasureNumberXML<=l)return o.MeasureNumberXML==state$1.section[0].MeasureNumberXML&&o.MeasureNumberXML==l?styles$8.centerStaveBox:o.MeasureNumberXML==state$1.section[0].MeasureNumberXML?styles$8.leftStaveBox:o.MeasureNumberXML==l?((a=o.staveBox)!=null&&a.height||(o.staveBox.height=selectData.measureHeight+"px"),styles$8.rightStaveBox):styles$8.staveBox}}else if(state$1.activeMeasureIndex==o.MeasureNumberXML&&!state$1.isReport)return o.staveBox.height=selectData.measureHeight+"px",styles$8.staveBox});return onMounted(()=>{calcNoteData();try{moveData.partIndex=e["part-index"]||"0",nextTick(()=>renderForMoveData())}catch(o){}}),()=>createVNode("div",{id:"selectionBox",class:[styles$8.selectionContainer,!state$1.sectionStatus&&state$1.isSingleLine?styles$8.singleLineSelection:""],onClick:o=>o.stopPropagation()},[selectData.staves.map(o=>{var c;const a=o.id&&evaluatingData.evaluatings[o.measureListIndex],l=!state$1.isReport&&metronomeData.cursorMode===2&&o.MeasureNumberXML===((c=metronomeData.activeMetro)==null?void 0:c.measureNumberXML)&&state$1.times[state$1.activeNoteIndex].MeasureNumberXML===o.MeasureNumberXML;return createVNode(Fragment,null,[o.staveBox&&createVNode("div",{class:[styles$8.position,s.value(o),a?`scoreItemLeve${a.leve}`:"",state$1.platform===IPlatform.PC&&state$1.zoom>.8?styles$8.linePC:""],style:o.staveBox,onClick:()=>handleSelection(o)},[l&&createVNode("div",{style:{height:selectData.measureHeight+"px",position:"relative"}},[createVNode("div",{class:[styles$8.line,state$1.setting.eyeProtection?styles$8.eyeLine:"",state$1.musicRenderType==EnumMusicRenderType.staff?styles$8.lineStaff:styles$8.lineJianPu],style:{left:metronomeData.activeMetro.left}},null)]),!state$1.isReport&&!!o.multipleRestMeasures&&state$1.activeMeasureIndex==o.MeasureNumberXML&&createVNode("div",{class:styles$8.dotWrap},[o.multipleRestMeasures]),createVNode(Transition,{name:"centerTop",onAfterEnter:()=>{a.show=!1}},{default:()=>{var u,d;return[(a==null?void 0:a.show)&&createVNode("div",{class:styles$8.scoreItem,style:{color:((u=leveByScoreMeasureIcons[a.leve])==null?void 0:u.color)||""}},[createVNode("img",{src:(d=leveByScoreMeasureIcons[a.leve])==null?void 0:d.icon},null),createVNode("span",null,[a.score])])]}})])])}),selectData.notes.map(o=>createVNode("div",{class:[styles$8.position,r.value&&styles$8.disable,styles$8.note,`noteIndex_${o.index}`],style:o.bbox,onClick:()=>skipNotePlay(o.index)},[createVNode("div",{class:styles$8.noteFollow,"data-vf":"vf"+o.id},[createVNode(Icon$1,{name:"success"},null),createVNode(Icon$1,{name:"cross"},null)]),createVNode("div",{class:[styles$8.noteDot,"node-dot"]},null)])),e.isMove=="1"&&createVNode(MoveMusicScore,null,null)])}}),styles$6={},speedInfo={"rall.":1.333333333,"poco rit.":1.333333333,"rit.":1.333333333,"molto rit.":1.333333333,"molto rall":1.333333333,molto:1.333333333,lentando:1.333333333,allargando:1.333333333,morendo:1.333333333,"accel.":.8,calando:2,"poco accel.":.8,"gradually slowing":1.333333333,slowing:1.333333333,slow:1.333333333,slowly:1.333333333,faster:1.333333333},getNextNote=(i,e)=>{var c;let r=0;const s=i.closest(e);let o=s;const a=s==null?void 0:s.closest("measure");let l=null;for(;!l&&r<((a==null?void 0:a.childNodes.length)||50);)r++,((c=o==null?void 0:o.nextElementSibling)==null?void 0:c.tagName)==="note"&&(l=o==null?void 0:o.nextElementSibling),o=o==null?void 0:o.nextElementSibling;return l},getGradualLengthByXml=i=>{var d,g,m,y;const e=new DOMParser().parseFromString(i,"text/xml"),r=Array.from(e.querySelectorAll("measure")),s=Array.from(e.querySelectorAll("note")),o=Array.from(e.querySelectorAll("words")),a=Array.from(e.querySelectorAll("metronome")),l=[];for(const b of[...o,...a]){const S=getNextNote(b,"direction");if(S){const A=S==null?void 0:S.closest("measure"),E=Array.from(A.querySelectorAll("note")),x=Array.from(A.childNodes).filter(C=>C.nodeName==="note").findIndex(C=>C===S);let P=0,T=0;for(let C=0;Cb.index-S.index);const u=Object.keys(speedInfo).map(b=>b.toLocaleLowerCase());for(const b of l){let S=!1,A=0;const E=(g=b.textContent)==null?void 0:g.toLocaleLowerCase().trim();b===l[l.length-1]&&((m=c[c.length-1])==null?void 0:m.length)===1&&(S=!0);const x=u.find(P=>{const T=P.split(" ");return E&&T.includes(E)});if(b.type==="metronome"||b.type==="words"&&(E.startsWith("a tempo")||x)||S){const P=c.findIndex(T=>T.length===1);P>-1&&b.index>((y=c[P])==null?void 0:y[0].start)&&(A=-1,c[P][1]={start:b.index,measureIndex:b.measureIndex,closedMeasureIndex:b.measureIndex,noteInMeasureIndex:b.noteInMeasureIndex,allDuration:b.allDuration,leftDuration:b.leftDuration,type:E})}b.type==="words"&&x&&c.push([{start:b.index,measureIndex:b.measureIndex,closedMeasureIndex:b.measureIndex+A,noteInMeasureIndex:b.noteInMeasureIndex,allDuration:b.allDuration,leftDuration:b.leftDuration,type:E}])}return c},query$1=getQuery(),container$2=ref(),resetGivenFormate=()=>{var r,s;const e={12200:[{parts:["0","1"],tieId:["1483"]},{parts:["2"],tieId:["1463"]},{parts:["10"],tieId:["1246"]},{parts:["11"],tieId:["2455"]},{parts:["13"],tieId:["1488","1688"]},{parts:["14","15"],tieId:["1272"]},{parts:["16"],tieId:["1264","1368"],staveSection:[{id:"section-0",y:-10}]}],12420:[{parts:["0"],tieId:["1298","1405","1998","2598","3229","2731","2617"]}],7729:[{parts:["3"],tieId:["1498","1660"]}],7439:[{parts:["23"],vfmodifiers:[{id:"modifiers-130",y:-18,isLast:!0}]}],12711:[{parts:["0"],voltas:-12},{parts:["4"],voltas:-8}],3581:[{parts:["0"],voltas:-8}],6244:[{parts:["15"],stavenote:[{id:"vf-auto1608",y:-15}]}],7473:[{parts:["0"],voltas:-8}]}[state$1.cbsExamSongId];if(e){const o=query$1["part-index"]||"0",a=e.find(l=>l.parts.includes(o));if(!a)return;if(a.tieId&&a.tieId.length)for(let l=0;l{c.classList.add(`section-${u}`)});for(let c=0;c{c.classList.add(`modifiers-${u}`)});for(let c=0;c{c.style.transform=`translateY(${a.voltas}px)`}),a.stavenote&&a.stavenote.length)for(let l=0;l{var r,s,o,a,l,c,u,d,g,m,y,b,S;if(["1788850864767643649","1788502467554750466","1789839575249596417","1788501975122489346"].includes(state$1.cbsExamSongId)||i){const A=(r=Array.from(document.getElementsByClassName("vf-curve")))==null?void 0:r.last();if(A&&(A.style.display="none"),state$1.musicRenderType!=="staff"){const E=document.getElementById("auto2670"),x=document.getElementById("auto2710"),P=state$1.cbsExamSongId=="1789839575249596417"&&((o=(s=document.getElementById("vf-auto1554"))==null?void 0:s.getElementsByClassName("vf-modifier"))==null?void 0:o[0]),T=state$1.cbsExamSongId=="1789839575249596417"&&document.getElementById("vf-auto1554-lines"),C=state$1.cbsExamSongId=="1788501975122489346"&&((l=(a=document.getElementById("vf-auto2116"))==null?void 0:a.getElementsByClassName("vf-modifier"))==null?void 0:l[0]),M=state$1.cbsExamSongId=="1788501975122489346"&&document.getElementById("vf-auto2116-lines"),B=state$1.cbsExamSongId=="1788502467554750466"&&((u=(c=document.getElementById("vf-auto2122"))==null?void 0:c.getElementsByClassName("vf-modifier"))==null?void 0:u[0]),I=state$1.cbsExamSongId=="1788502467554750466"&&document.getElementById("vf-auto2122-lines");if(E&&(E.style.display="none"),x&&(x.style.display="none"),P&&(P.style.transform="translateX(-0.65rem)"),C&&(C.style.transform="translateX(-0.65rem)"),B&&(B.style.transform="translateX(-0.65rem)"),T&&(T.style.transform="translateX(-0.65rem)"),M&&(M.style.transform="translateX(-0.65rem)"),I&&(I.style.transform="translateX(-0.65rem)"),T||M||I){const k=T?T.querySelector("path"):M?M.querySelector("path"):I?I.querySelector("path"):null;let D=k==null?void 0:k.getAttribute("d");if(D){const O=(m=(g=(d=D.split("L"))==null?void 0:d.last())==null?void 0:g.split(" "))==null?void 0:m[0];let z=((b=(y=D.split("M"))==null?void 0:y[1])==null?void 0:b.split(" ")[0])||0;z=z?Number(z):0;let N=((S=D.split("L"))==null?void 0:S.last().split(" ")[0])||0;N=N?Number(N):0;const Q=N-z,_=z-Q;D=D.replace(`L${O}`,`L${_}`),k.setAttribute("d",D)}}}}},resetFormate=()=>{var s,o,a;if(container$2.value=document.getElementById("scrollContainer"),!container$2.value)return;moveGracePosition();const i=Array.from(container$2.value.querySelectorAll(".staffline")),e=4,r=28;for(let l=0,c=i.length;l .vf-voices")),S=Array.from(u.querySelectorAll(".vf-measure > .vf-beams")),A=Array.from(u.querySelectorAll(".vf-ties")),E=Array.from(u.querySelectorAll(".vf-line")),x=Array.from(u.querySelectorAll(".vf-measure > .vf-stave text"));Array.from(u.querySelectorAll(".vf-measure > .vf-stave rect[fill=none]"));const P=Array.from(u.querySelectorAll(".vf-measure .vf-staveSection")),T=Array.from(u.querySelectorAll(".vf-measure > .vf-stave path")),C=Array.from(u.querySelectorAll(".vf-measure .vf-stopDot")),M=((s=T[0])==null?void 0:s.getBBox().y)||0,B=["To Coda","D.S. al Coda","Coda"];x.filter(U=>B.includes(U.textContent||"")).forEach(U=>{S.forEach(G=>{var V;const H=collisionDetection(U,G),R=U==null?void 0:U.previousSibling;if(H.isCollision){const te=Number(U.getAttribute("y"))-(H.b1-H.t2)-e+"";U.setAttribute("y",te),R&&R.getAttribute("stroke-width")==="0.3"&&R.getAttribute("stroke")==="none"&&(((V=R.getAttribute("d"))==null?void 0:V.length)||0)>3e3&&(R.style.transform=`translateY(${-(H.b1-H.t2+e)}px)`)}}),b.forEach(G=>{var V;const H=collisionDetection(U,G),R=U==null?void 0:U.previousSibling;if(H.isCollision){const te=Number(U.getAttribute("y"))-(H.b1-H.t2)-e+"";U.setAttribute("y",te),R&&R.getAttribute("stroke-width")==="0.3"&&R.getAttribute("stroke")==="none"&&(((V=R.getAttribute("d"))==null?void 0:V.length)||0)>3e3&&(R.style.transform=`translateY(${-(H.b1-H.t2+e)}px)`)}})}),P.forEach(U=>{let G=0;[...y,...A,...b].forEach(H=>{const R=collisionDetection(U,H);R.isCollision&&(G=Math.min(G,R.t2-R.b1-e))}),U.style.transform=`translateY(${G}px)`});let I=Array.from(u.querySelectorAll(".vf-text > text")).filter(U=>U.getBBox().y text")).filter(U=>U.getBBox().y{const G=U.getBBox();G.y1&&D.forEach(U=>{U.setAttribute("y",k+"")}),I.forEach(U=>{[...y,...m,...E].forEach(G=>{let H=collisionDetection(U,G);if(H.isCollision&&H.b1{I.forEach(G=>{if(U.parentNode!==G.parentNode&&!["marcato","legato"].includes(U.textContent))if(["marcato","legato"].includes(G.textContent)){if(collisionDetection(U,G,30,30).isCollision){const R=U.getBBox();G.setAttribute("x",R.x+R.width+5+""),G.setAttribute("y",R.y+R.height-5+"")}}else{const H=collisionDetection(U,G);if(H.isCollision){const R=Number(U.getAttribute("y")),V=H.b2-H.t2<24?24:H.b2-H.t2;G.setAttribute("y",R-V-.5+"")}}})});const O=["C","G","D","A","E","B","F#","C#","G#","F","Bb","Eb","Ab","Db","Gb","Cb","Fb","D#","A#","E#"],z=["Bb","Eb","Ab","Db","Gb","Cb","Fb"],N=["F#","C#","G#","D#","A#","E#","B#"];I.forEach(U=>{const G=U.textContent;if(O.includes(G)){const H=Number(U.getAttribute("y")),R=M?M-r:H;U.setAttribute("y",R)}z.includes(G)&&(U.textContent=G.replace("b","♭")),N.includes(G)&&(U.textContent=G.replace("#","♯"))}),C.forEach(U=>{state$1.musicRenderType==="fixedTone"?U.setAttribute("transform","translate(3,-12)"):U.setAttribute("transform","translate(3,-7)")});const Q=Array.from(u.querySelectorAll(".vf-text > text")).filter(U=>U.getBBox().y>g),_=Array.from(u.querySelectorAll(".vf-line")).filter(U=>U.getBBox().y>g);for(let U=0;U{[...m].forEach(G=>{let H=collisionDetection(U,G);H.isCollision&&U.setAttribute("y",H.b2+Math.abs(H.t1-Number(U.getAttribute("y")))+"")})}),_.forEach(U=>{var H;const G=[];if((H=U.nextElementSibling)!=null&&H.classList.contains("vf-line")&&Q.forEach(R=>{let V=collisionDetection(U,R,20,20);V.isCollision&&G.push({text:R,result:V})}),G.length===1){const R=G[0].result,V=G[0].text;R.x2+R.w2R.x1+R.w1?Math.abs(R.y2-R.y1)>10&&V.setAttribute("y",R.y1+R.h2/2+""):Math.abs(R.x2-R.x1)10&&V.setAttribute("y",R.y1+R.h2/2+"")):(V.setAttribute("x",R.x1+R.w1+5+""),Math.abs(R.y2-R.y1)>10&&V.setAttribute("y",R.y1+R.h2/2+""))}else if(G.length===2){const R=G[0].result,V=G[0].text,te=G[1].result,W=G[1].text;V.setAttribute("x",R.x1-R.w2-5+""),Math.abs(R.y2-R.y1)>10&&V.setAttribute("y",R.y1+R.h2/2+""),W.setAttribute("x",te.x1+te.w1+5+""),Math.abs(te.y2-te.y1)>10&&W.setAttribute("y",te.y1+te.h2/2+"")}}),Q.forEach(U=>{Q.forEach(G=>{if(U.parentNode!==G.parentNode&&!["marcato","legato","cresc.","Cantabile"].includes(U.textContent))if(["marcato","legato","cresc.","Cantabile"].includes(G.textContent)){if(collisionDetection(U,G,30,30).isCollision){const R=U.getBBox();G.setAttribute("x",R.x+R.width+5+""),G.setAttribute("y",R.y+R.height-5+"")}}else{const H=collisionDetection(U,G);H.isCollision&&G.setAttribute("y",H.y1+H.h1+H.h2+"")}})});for(let U=0;U{const o=i.getBBox(),a=e.getBBox();let l=o.y-s,c=o.x-r,u=o.x+o.width+r,d=o.y+o.height+s,g=a.y,m=a.x,y=a.x+a.width,b=a.y+a.height;return dy||l>b||u{const i=query$1["part-index"]||"0",r=[{id:"12644",part_index:"25",direction:1}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i);setGlobalData("tieDirection",r?r.direction:void 0);const o=[{id:"3509",part_index:"16",direction:1}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i);o&&setGlobalData("graceCustom",{direction:o.direction});const l=[{id:"3030",part_index:"17",line:4},{id:"12704",part_index:"23",line:3}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i);l&&setGlobalData("customBassDrum",l.line);const u=[{id:"11654",part_index:"16",stemNotes:[{id:124,direction:0},{id:125,direction:0},{id:126,direction:0},{id:127,direction:0},{id:128,direction:0}]},{id:"3581",part_index:"4",stemNotes:[{id:380,direction:1}]},{id:"3470",part_index:"0",stemNotes:[{id:36,direction:1},{id:37,direction:1}]},{id:"3470",part_index:"11",stemNotes:[{id:33,direction:1},{id:56,direction:1}]},{id:"12644",part_index:"22",stemNotes:[{id:22,direction:1},{id:26,direction:1},{id:135,direction:1},{id:163,direction:1},{id:199,direction:1},{id:204,direction:1},{id:206,direction:1},{id:208,direction:1},{id:210,direction:1},{id:213,direction:1}]},{id:"12303",part_index:"18",stemNotes:[{id:1,direction:1},{id:4,direction:1},{id:6,direction:1},{id:9,direction:1},{id:12,direction:1},{id:14,direction:1}]},{id:"12669",part_index:"24",stemNotes:[{id:65,direction:1},{id:296,direction:1},{id:298,direction:1},{id:300,direction:1},{id:338,direction:1}]},{id:"12420",part_index:"21",stemNotes:[{id:614,direction:0},{id:617,direction:0},{id:619,direction:0},{id:621,direction:0}]},{id:"12711",part_index:"22",stemNotes:[]},{id:"12973",part_index:"21",stemNotes:[{id:619,direction:1},{id:622,direction:1},{id:745,direction:1}]}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i);u&&setGlobalData("stemDirectionNote",u.stemNotes);const g=[{id:"12711",part_index:"4",vfcurve:[{MeasureNumberXML:25,index:1,bezierEndControlPt:{y:-2}},{MeasureNumberXML:33,index:1,bezierEndControlPt:{y:-2}}]},{id:"12059",part_index:"0",vfcurve:[{MeasureNumberXML:15,bezierEndControlPt:{y:2.8},bezierEndPt:{y:1.1}},{MeasureNumberXML:16,bezierEndControlPt:{y:-1}},{MeasureNumberXML:19,index:1,bezierEndControlPt:{y:2}},{MeasureNumberXML:20,bezierEndControlPt:{y:-1}},{MeasureNumberXML:42,index:1,bezierEndControlPt:{y:-1.5},bezierStartControlPt:{y:-1.5}},{MeasureNumberXML:46,index:3,bezierEndControlPt:{y:-1.5},bezierStartControlPt:{y:-1.5}}]},{id:"12668",part_index:"11",vfcurve:[{MeasureNumberXML:8,index:2,bezierEndControlPt:{y:-3},bezierStartControlPt:{y:-3},bezierEndPt:{y:-1}}]},{id:"11976",part_index:"0",vfcurve:[{MeasureNumberXML:14,index:4,bezierEndControlPt:{y:-3}},{MeasureNumberXML:14,index:1,bezierEndPt:{y:1.5},bezierEndControlPt:{y:1}}]}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i);g&&setGlobalData("vfcurveItem",g.vfcurve),[{id:"12644",part_index:"25"}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i)&&setGlobalData("customArtPosition",!0),[{id:"12645",part_index:"5"}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i)&&setGlobalData("customTenutoItem",!0),([{id:"12711",part_index:"22"},{id:"12711",part_index:"25"}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i)||state$1.isEvxml)&&setGlobalData("customAccentItem",!0),[{id:"12711",part_index:"25"},{id:"7755",part_index:"10"},{id:"6226",part_index:"16"}].find(({id:T,part_index:C})=>T==state$1.cbsExamSongId&&C==i)&&setGlobalData("customLefthandpizzicatoItem",!0)},setCustomGradual=()=>{if(state$1.gradualTimes){const i=state$1.cbsExamSongId+"",e=state$1.partIndex+"";["12280"].includes(i)&&["24"].includes(e)&&(state$1.gradualTimes[8]="00:26:10",state$1.gradualTimes[66]="01:53:35",state$1.gradualTimes[90]="02:41:40")}},setCustomNoteRealValue=()=>{const i=state$1.cbsExamSongId+"",e=state$1.partIndex+"";["2670"].includes(i)&&(customData.customNoteRealValue={0:.03125}),["12673"].includes(i)&&["22"].includes(e)&&(customData.customNoteRealValue={208:.125}),["12667","12673"].includes(i)&&(customData.customNoteCurrentTime=!0)},musicRenderTypeKey="musicRenderType";let osmd=null;const musicData=reactive({showSelection:!1,isRenderLoading:!0,score:"",containerWidth:0}),resetMusicScore=()=>{var e;const i=((e=document.getElementById("musicAndSelection"))==null?void 0:e.offsetWidth)||625;state$1.musicZoom=i/musicData.containerWidth},resetRenderMusicScore=i=>{const e=queryString.parse(location.search),r=queryString.stringify({...e,_t:Date.now(),musicRenderType:i});location.search="?"+r},MusicScore=defineComponent({name:"music-score",emits:["rendered"],props:{showSelection:{type:Boolean,default:!0},renderTypeKey:{type:String,default:""},musicColor:{type:String,default:""},showPartNames:{type:Boolean,default:!1}},setup(i,{emit:e}){const r=()=>{const c=sessionStorage.getItem(i.renderTypeKey||musicRenderTypeKey);c in EnumMusicRenderType&&(state$1.musicRenderType=c)},s=async()=>{const c=await fetch(state$1.xmlUrl).then(d=>d.text()),u=formatXML(c);musicData.score=state$1.isCombineRender?u:onlyVisible(u,state$1.partIndex),state$1.gradualTimes&&(state$1.gradual=getGradualLengthByXml(u))},o=async()=>{const c=document.getElementById("musicAndSelection");!c||!musicData.score||(setGlobalMusicSheet(),osmd=new OpenSheetMusicDisplay(c,{drawTitle:!1,drawSubtitle:!1,autoResize:!1,followCursor:!1,drawPartNames:i.showPartNames,defaultColorMusic:i.musicColor,renderSingleHorizontalStaffline:!!state$1.isSingleLine,autoGenerateMultipleRestMeasuresFromRestMeasures:!state$1.isSingleLine}),osmd.EngravingRules.PageRightMargin=state$1.isSingleLine?(window.innerWidth+200)/10:2,osmd.EngravingRules.FixedMeasureWidth=!!state$1.isSingleLine,osmd.EngravingRules.PageTopMargin=state$1.platform===IPlatform.PC?9:10,osmd.EngravingRules.PageTopMarginNarrow=3,osmd.EngravingRules.PageLeftMargin=2,osmd.EngravingRules.BreathMarkDistance=.1,osmd.EngravingRules.PageBottomMargin=state$1.platform===IPlatform.PC?1:2,osmd.EngravingRules.DYMusicScoreType=state$1.musicRenderType===EnumMusicRenderType.staff?"staff":"jianpu",state$1.musicRenderType===EnumMusicRenderType.fixedTone&&(window.sett={keySignature:!0}),osmd.EngravingRules.DYMusicScoreId=state$1.examSongId||"",osmd.EngravingRules.DYCustomRepeatCount=state$1.maxLyricNum||0,await osmd.load(musicData.score),osmd.zoom=state$1.zoom,osmd.render(),console.log("🚀 ~ osmd:",osmd),e("rendered",osmd),resetFormate(),resetGivenFormate(),musicData.showSelection=!0)},a=()=>{var c;musicData.containerWidth=((c=document.getElementById("musicAndSelection"))==null?void 0:c.offsetWidth)||625};onMounted(async()=>{a(),r(),await s(),await o(),musicData.isRenderLoading=!1});const l=computed(()=>{var d;let c=!1;const u=((d=state$1.times[state$1.activeNoteIndex])==null?void 0:d.measureListIndex)||-1;for(const[g,m]of state$1.gradual)if(g&&m&&(c=g.measureIndex<=u&&ucreateVNode("div",{id:"musicAndSelection",style:{"--music-zoom":state$1.musicZoom},class:[l.value&&styles$6.inGradualRange,state$1.musicRenderType==EnumMusicRenderType.staff?"staff":"jianpuTone"]},[i.showSelection&&musicData.showSelection&&!state$1.isPreView&&!state$1.isEvaluatReport&&createVNode(Selection,null,null)])}}),MusicType=defineComponent({name:"musicType",setup(i){var d,g;const e=reactive({show:!1,type:"staff"}),r=ref();useClickAway(r,()=>{headData.musicTypeShow=!1});const s=m=>{state$1.musicRenderType!=m&&(e.show=!0,e.type=m)},o=m=>{m?(state$1.musicRenderType=e.type,resetRenderMusicScore(e.type)):(headData.musicTypeShow=!1,e.type=""),e.show=!1},a=async()=>{state$1.guideInfo.teacherDrag=!0;try{const m=await setGuidance({guideTag:"guideInfo",guideValue:JSON.stringify(state$1.guideInfo)})}catch(m){console.log(m)}},l="transBoxClass_drag",c=(d=storeData.user)!=null&&d.id?String((g=storeData.user)==null?void 0:g.id):"",u=state$1.platform!==IPlatform.PC?{styleDrag:{value:null}}:useDrag([`${l} .top_drag`,`${l} .bom_drag`],l,toRef(e,"show"),c);return()=>createVNode(Fragment,null,[createVNode("div",{ref:r},[createVNode("div",{class:["van-popover__action",styles$a.item,state$1.musicRenderType==="staff"&&styles$a.active],onClick:()=>s("staff")},[createVNode("img",{src:state$1.musicRenderType==="staff"?headImg("icon-staff-active.svg"):headImg("icon-staff.svg")},null),createVNode("div",null,[createTextVNode("五线谱")])]),createVNode("div",{class:["van-popover__action",styles$a.item,state$1.musicRenderType==="firstTone"&&styles$a.active],onClick:()=>s("firstTone")},[createVNode("img",{src:state$1.musicRenderType==="firstTone"?headImg("shuodiao-active.svg"):headImg("shuodiao.svg")},null),createVNode("div",null,[createTextVNode("首调")])]),["1788501975122489346","1788502467554750466","1789839575249596417"].includes(state$1.cbsExamSongId)?null:createVNode("div",{class:["van-popover__action",styles$a.item,state$1.musicRenderType==="fixedTone"&&styles$a.active],onClick:()=>s("fixedTone")},[createVNode("img",{src:state$1.musicRenderType==="fixedTone"?headImg("guding-active.svg"):headImg("guding.svg")},null),createVNode("div",null,[createTextVNode("固定调")])])]),createVNode(Popup,{teleport:"body",closeOnClickOverlay:!0,defaultStyle:!1,show:e.show,"onUpdate:show":m=>e.show=m,class:"transBoxClass_drag",style:u.styleDrag.value},{default:()=>{var m;return[createVNode(TheComfirm,{tip:"设置成功,是否立即重新加载?",onClose:o},null),state$1.platform===IPlatform.PC&&createVNode(Dragbom,{showGuide:!((m=state$1.guideInfo)!=null&&m.teacherDrag),onGuideDone:a},null)]}})])}}),wrap="_wrap_3koww_1",infoWrap="_infoWrap_3koww_15",hidden="_hidden_3koww_27",styles$5={wrap,infoWrap,hidden},icon_1="data:image/png;base64,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",icon_2="data:image/png;base64,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",icon_3="data:image/png;base64,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",icon_4="data:image/png;base64,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",icon_5="data:image/png;base64,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",icons$1={icon_1,icon_2,icon_3,icon_4,icon_5},guidePopup="_guidePopup_x5pic_1",tipsContainer="_tipsContainer_x5pic_14",backBtn="_backBtn_x5pic_20",right="_right_x5pic_36",content$2="_content_x5pic_44",box$1="_box_x5pic_49",item$1="_item_x5pic_55",img="_img_x5pic_59",iconHead="_iconHead_x5pic_63",head2="_head2_x5pic_69",btns$1="_btns_x5pic_73",btn$2="_btn_x5pic_73",endBtn="_endBtn_x5pic_84",studentbtn="_studentbtn_x5pic_87",teacherBtn="_teacherBtn_x5pic_98",nextBtn="_nextBtn_x5pic_130",studentNext="_studentNext_x5pic_145",myscale="_myscale_x5pic_1",styles$4={guidePopup,tipsContainer,backBtn,right,content:content$2,box:box$1,item:item$1,img,iconHead,head2,btns:btns$1,btn:btn$2,endBtn,studentbtn,teacherBtn,nextBtn,studentNext,myscale},__vite_glob_0_0=""+new URL("../png/aiTeacher1-906c9519.png",import.meta.url).href,__vite_glob_0_1=""+new URL("../png/aiTeacher2-398558c8.png",import.meta.url).href,__vite_glob_0_2=""+new URL("../png/aiTeacher3-4ce7d3e9.png",import.meta.url).href,__vite_glob_0_3=""+new URL("../png/aiTeacher4-a64809b7.png",import.meta.url).href,__vite_glob_0_4=""+new URL("../png/endBtn-fbbc61e9.png",import.meta.url).href,__vite_glob_0_5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABoCAYAAACZmlKPAAAAAXNSR0IArs4c6QAACNNJREFUaEPNmgtsVMcVhv8zd+31AxvSlApSXjGBlpYo610bKGoFkagU1KcaAeZh4xDJSh8kkVInoaVBKaRJSluR0qclEvAav1CqKGqVSI0EqBUimLVdhZSGhwk4CaiQBuz4uXvnVHN37/p6c9dr323HHllrW3tnznfPzDlzzpkheGzrOjhKAoIZpIYggBkgIjAYZmuAcr0MbQ3mpa3v5F4w8uI4ACso68P6d7A1QEVexvUMtKGDrzOhCEpDahQFk1AVgJ7WAM3UCrS+k7vBuN1VKOHD1gDN1QvUwRcImGVrx1ZQQknXWkrpLt1AbxMwx00oA++1ltIXtQJt6OQIM0rchBKhqyVAIa1AFR18QgKLHUvZOWvnWktppW6gowykm5a3W0rpXq1AGzr5dQD3jBIadwFKU/9oCdB9WoHWt/OrRHBfJ4xIS5C+qRWoooOPgLA84RjVdmFrRznJN5tLaZ1WoA0d3EDAl9OY/d9bSmmLVqCKTj7ADGvhqg01ucnG19Cx5gA9qBvo92CscW5hyb8ZbzQH6btagTZ28D5mrLV3+xRre705SI9oBaqI8F4IfM1VqMRfmkNUqxvoGSJ8i10CGBJ4peke2qkVaGM7P8WE+ykRMSZiofgyYrzcFKSf6gXq5CchsSEZnNmaUkgCLU0Bek4vUDs/xsCmpFCHuRHQ2BSkX+oG2s6ESmfoKhiQ8bA63BSk/VqBKtr5IWJUW0IF4iT2bwMvNQXoj3qBOnkbScS9cUqQz4wDzUF6USvQpnauZEZNUisO6USoawxSWDdQBYCHnGGirSwAf2gMUrNeoE7+Dkz8wFWogd80BuhPWoE2RvgbRHjYLR6SJvY3l9OrWoE2t/NaZjzqJpQI+w4H6TWtQJvaeQ0zHnPGQ0LFRXGKXzUG6Q2tQBvbeZVguO7okrC3KUjHtQJt6eCVzHjCjhSdwoXAcw2ldEIr0KY2XgaBHa5CJZ5tLKdTWoEqOrnUMLEz1Q8pCGlgT3OAOrQCbT7Nd5PAT2yhLEEk4lstS+w+XEZvaQWqjPASCexyEyqAp8MhOqsVaNNJXkQ+PJ0UmtAOJIhj2NW4gs5rBaru4AVRid2uGorhqfByuqQVqOIUz/UJ7LHDIAiwlPGkSErsbF5G3VqBtpzm2SA84yqU8eOGMrqqFeiBdp4ZlXjWTWiOwI6XgnRdK9C6E/wpv98daGgIO46spP9oBdp8kovhw/OuQmN44vAK6tEKVHOaC/oIP1eJonWc4Ijz8xmP15VRv1ag7efZf/MW9roJnTEdtfsX0ZBWoNVH2TenCL9QQu36kK2p7h7UHruXYlqBwExbInGg1NYQwg9B1lHMhJvnwxclqTLCzzNbidBIY3BDOT0+YZJEh2yB9hDD51zQTIiFQ95KMdb0e30T1W9LhHcRw+8cgwhD9SEa2XQnKCAroKoI/4gZ+SlAA/Uh+tkEOZKPZwfUxrVMmOYULoDeQ2XkutjHA5kVUGWEH2WJ6bbpWwIJPeEQ7RuPcLdnsgX6Phi32QNb1RjCR+EQ/XZSgLZGuIYlPm1rSKVEJHDjUIjqJgWoqo23gTD6sJdxvb7cW20oa7OvbuNKqc5dR/lFXAuXe6sNZQ20tY03MmH2KLNnXD1UTk2TMmWVb/I6CHx2lHCJ98PL6cikAFWf5m8DmKsCfYeldR8so1cmBagqwl8niflKuJ19sMDl+hD9eVKAqk/xfRBYoIQnU2mJdw8uI3Ue66ll5Rir2ngNpZzdM6GrvtxbsSprK6tu49VSInmlQhUbLKAyOupJPdmGH9UR/gqbI0DWGzIuHFxOf5sUoKp2/hKiydsNFoM0cb5hpbfqWdZTVqWqaIzFhgHAtH7Ubn+u3mP1LGugrSc5RITP2dNjnQQx3jm0giLap0zlZX19KJcCS0jGA31mSEE4W1iINi152ffO8LShAtxu5KBYSuTKj7GQGQssH+QDcwwkDFwS03BRCAybUfT4+/Hh75bSx+PV2Lj8UM1Fno58zJZRFDoHNgdwJ0dxpzX3yuQlSPjRJfx41/mcyEEfBnC1biHdygQ2JpDKThcvxHzJmOE2kBzEPMRQoopViCXufuTgksjDFbfnBeHmuYu4PFZWmxao8hoX5kdRoqYm7VsNY445lLhlZW9mPnQZ+XgvXR81lQM56ArPoj63Z1yBtl3nImMIC9mEMui0jftxh6k05GiGD11UgA/G6kcGTNOPiy/OpN7U5z4BpDSTF8OiTDCWVQ1hlhlFiZ1LKyUZOegiP65lXCsGzEEfzqdqahSQtWbuwpIxp8khSQ7iM4iiRDnEhG+0gEQe/p0JSH2vpu/cBZx1rqlRQDVXeGG6BTzKuiR8Q31YbZr4KoCljERuBigrOmMY+Ku/EMcMgYwlGbXQ6+bRRXv8JJAybekbvVG6veVAP1ZHh/EIGGPf5CR05+TihfwCHMukLRHDBdsljAB9wJ9P9TPOgSSB+m5hO0vr8sC4/Je6IEcC4cLp2C/UpbA0TfmpujvoX5Y/Ux/KAw8XjexJbv16e/Awm6jK9LaupmygvqgYvx6rb24v3lEe3QJ6sIvnkxHPQMeYpr3j1swnbZlzclE71vSxiRsHSuiyBVTTzXensyxTwtfXgyMZ10wm1RG6C4uxLt1CVxZXN5feIrVrD+Riabrx+nuxJhaDp6s3qWP6fHiyoAhpD4fzh3GGMllX7y3sZom1mRQwnu9J4LWi6SOHfql9lLXRA1d5pjGMeekG7P0ILzPiuVe2jYDLRbfh/nTjmLm4QtWXeJYvNR129Oi5iePg0WGHZzBCX/EMrErXPybx/tQDmnJTNuUW9ZQz+ynnGKfk1jHlNldr2qZS+GEBTbUAzYKaaAgrsQoSX2BKFM8ZNyDwT0PgeNYhrAKaaJDveQtJdMwY5KvnJpIGZQOkcrOMaZAtYLyJolegCSWKtpBxpdIeiDyl0racTMWGifJkVWxwCktXjhkv0P+sHJMqMLVgNRbQ/7Vg5SZYRQlDAnnRAuTyYLxKQnkwc/ox7JcY9FrS+y+/mwRHyWbbVwAAAABJRU5ErkJggg==",__vite_glob_0_6="data:image/png;base64,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",__vite_glob_0_7=""+new URL("../png/endBtn-fbbc61e9.png",import.meta.url).href,__vite_glob_0_8=""+new URL("../png/pc_teacherBottom1-7d7c0406.png",import.meta.url).href,__vite_glob_0_9=""+new URL("../png/pc_teacherBottom2-1041fb46.png",import.meta.url).href,__vite_glob_0_10=""+new URL("../png/pc_teacherBottom3-9e8e8dfa.png",import.meta.url).href,__vite_glob_0_11=""+new URL("../png/pc_teacherBottom4-06ba0f51.png",import.meta.url).href,__vite_glob_0_12=""+new URL("../png/pc_teacherBottom5-d02e3c8f.png",import.meta.url).href,__vite_glob_0_13=""+new URL("../png/pc_teacherBottom6-bc1100b9.png",import.meta.url).href,__vite_glob_0_14=""+new URL("../png/studentB1-cada9dc3.png",import.meta.url).href,__vite_glob_0_15=""+new URL("../png/studentB2-22f8c5b1.png",import.meta.url).href,__vite_glob_0_16=""+new URL("../png/studentB3-63e84adf.png",import.meta.url).href,__vite_glob_0_17=""+new URL("../png/studentBtn-cc71146a.png",import.meta.url).href,__vite_glob_0_18=""+new URL("../png/studnetT1-6bad1a7e.png",import.meta.url).href,__vite_glob_0_19=""+new URL("../png/studnetT2-a1c68390.png",import.meta.url).href,__vite_glob_0_20=""+new URL("../png/studnetT3-aea2d51e.png",import.meta.url).href,__vite_glob_0_21=""+new URL("../png/studnetT4-e9bcb3f4.png",import.meta.url).href,__vite_glob_0_22=""+new URL("../png/studnetT5-d98576d3.png",import.meta.url).href,__vite_glob_0_23=""+new URL("../png/studnetT6-e26e655b.png",import.meta.url).href,__vite_glob_0_24=""+new URL("../png/studnetT7-85b09492.png",import.meta.url).href,__vite_glob_0_25=""+new URL("../png/studnetT8-f4dec487.png",import.meta.url).href,__vite_glob_0_26=""+new URL("../png/teacherTop1-fac539f2.png",import.meta.url).href,__vite_glob_0_27=""+new URL("../png/teacherTop2-7139ad50.png",import.meta.url).href,__vite_glob_0_28=""+new URL("../png/teacherTop3-d5b41852.png",import.meta.url).href,__vite_glob_0_29=""+new URL("../png/teacherTop4-6b47a5e7.png",import.meta.url).href,__vite_glob_0_30=""+new URL("../png/teacherTop5-ce3e332a.png",import.meta.url).href,__vite_glob_0_31=""+new URL("../png/teacherTop6-7e748eed.png",import.meta.url).href,modules=Object.assign({"./aiTeacher1.png":__vite_glob_0_0,"./aiTeacher2.png":__vite_glob_0_1,"./aiTeacher3.png":__vite_glob_0_2,"./aiTeacher4.png":__vite_glob_0_3,"./endBtn.png":__vite_glob_0_4,"./indexDot.png":__vite_glob_0_5,"./nextBtn.png":__vite_glob_0_6,"./numbrBtn.png":__vite_glob_0_7,"./pc_teacherBottom1.png":__vite_glob_0_8,"./pc_teacherBottom2.png":__vite_glob_0_9,"./pc_teacherBottom3.png":__vite_glob_0_10,"./pc_teacherBottom4.png":__vite_glob_0_11,"./pc_teacherBottom5.png":__vite_glob_0_12,"./pc_teacherBottom6.png":__vite_glob_0_13,"./studentB1.png":__vite_glob_0_14,"./studentB2.png":__vite_glob_0_15,"./studentB3.png":__vite_glob_0_16,"./studentBtn.png":__vite_glob_0_17,"./studnetT1.png":__vite_glob_0_18,"./studnetT2.png":__vite_glob_0_19,"./studnetT3.png":__vite_glob_0_20,"./studnetT4.png":__vite_glob_0_21,"./studnetT5.png":__vite_glob_0_22,"./studnetT6.png":__vite_glob_0_23,"./studnetT7.png":__vite_glob_0_24,"./studnetT8.png":__vite_glob_0_25,"./teacherTop1.png":__vite_glob_0_26,"./teacherTop2.png":__vite_glob_0_27,"./teacherTop3.png":__vite_glob_0_28,"./teacherTop4.png":__vite_glob_0_29,"./teacherTop5.png":__vite_glob_0_30,"./teacherTop6.png":__vite_glob_0_31}),getImage=i=>modules[`./${i}`]||"",TeacherBootom=defineComponent({name:"aiTeacher-guide",emits:["close"],setup(i,{emit:e}){const r=reactive({box:{},show:!1,steps:state$1.platform===IPlatform.PC?[{img:getImage("aiTeacher2.png"),eleRect:{top:"-3rem"},imgStyle:{left:"-0.7rem",width:"6.48rem",height:"3.01rem"},btnsStyle:{bottom:".9rem",left:".9rem",transform:"scale(.83)"},boxStyle:{borderRadius:"40px"}},{img:getImage("aiTeacher3.png"),eleRect:{top:"-3rem"},imgStyle:{left:"-0.7rem",width:"6.48rem",height:"3rem"},btnsStyle:{bottom:".9rem",left:".8rem",transform:"scale(.83)"},boxStyle:{borderRadius:"40px"}}]:[{eleRect:{left:"4.5rem",top:"-3.6rem"},img:getImage("aiTeacher1.png"),imgStyle:{width:"7.776rem",height:"3.6rem"},btnsStyle:{bottom:"1.3rem",left:"2.1rem"},boxStyle:{borderRadius:"40px",transform:"scale(1)"},eleRectPadding:{left:14,top:14,width:28,height:28}},{img:getImage("aiTeacher2.png"),eleRect:{top:"-3rem"},imgStyle:{left:"-0.7rem",width:"6.48rem",height:"3.01rem"},btnsStyle:{bottom:".9rem",left:".9rem",transform:"scale(.83)"},boxStyle:{borderRadius:"40px"}},{img:getImage("aiTeacher3.png"),eleRect:{top:"-3rem"},imgStyle:{left:"-0.7rem",width:"6.48rem",height:"3rem"},btnsStyle:{bottom:".9rem",left:".8rem",transform:"scale(.83)"},boxStyle:{borderRadius:"40px"}},{img:getImage("aiTeacher4.png"),eleRect:{top:"-3rem",left:"-1rem"},imgStyle:{width:"6.48rem",height:"3.01rem"},btnsStyle:{bottom:".9rem",left:"1.6rem","justify-content":"center",padding:0,transform:"scale(.83)"},boxStyle:{borderRadius:"40px"}}],step:0}),s=ref(!1);getQuery();const o=ref({});(async()=>{var g;try{if(state$1.guideInfo)o.value=state$1.guideInfo;else{const m=await getGuidance({guideTag:"guideInfo"});m.data?o.value=JSON.parse((g=m.data)==null?void 0:g.guideValue)||null:o.value={}}o.value&&o.value.teacherBottom?s.value=!1:s.value=headTopData.modeType==="init"}catch(m){console.log(m)}})();const l=state$1.platform===IPlatform.PC?["modeType-0","modeType-1"]:["modeType-box","modeType-0","modeType-1","modeType-2"],c=()=>{var m,y,b,S;console.log(l[r.step]);const g=document.getElementById(l[r.step]);if(g){const A=g.getBoundingClientRect(),E=((m=r.steps[r.step].eleRectPadding)==null?void 0:m.left)||0,x=((y=r.steps[r.step].eleRectPadding)==null?void 0:y.top)||0,P=((b=r.steps[r.step].eleRectPadding)==null?void 0:b.width)||0,T=((S=r.steps[r.step].eleRectPadding)==null?void 0:S.height)||0;r.box={left:A.x-E+"px",top:A.y-x+"px",width:A.width+P+"px",height:A.height+T+"px"},console.log(`coai-${r.step}`,r.box)}else u()};onMounted(()=>{c()});const u=()=>{if(r.step>=3||state$1.platform===IPlatform.PC&&r.step>=1){d();return}r.step=r.step+1,c()},d=async()=>{o.value?o.value.teacherBottom=!0:o.value={teacherBottom:!0};try{const g=await setGuidance({guideTag:"guideInfo",guideValue:JSON.stringify(o.value)})}catch(g){console.log(g)}s.value=!1};return()=>createVNode(Popup$1,{teleport:"body",overlay:!1,closeOnClickOverlay:!1,class:["popup-custom",styles$4.guidePopup],show:s.value,"onUpdate:show":g=>s.value=g},{default:()=>[createVNode("div",{class:styles$4.content,onClick:()=>u()},[createVNode("div",{class:styles$4.backBtn,onClick:g=>{g.stopPropagation(),d()}},[createTextVNode("跳过")]),createVNode("div",{class:styles$4.box,style:{...r.box,...r.steps[r.step].boxStyle},id:`modeType-${r.step}`},[r.steps.map((g,m)=>{var y,b;return createVNode("div",{onClick:S=>S.stopPropagation(),class:styles$4.item,style:{display:m===r.step?"":"none",left:`${(y=g.eleRect)==null?void 0:y.left}`,top:`${(b=g.eleRect)==null?void 0:b.top}`}},[createVNode("img",{class:styles$4.img,style:g.imgStyle,src:g.img},null),createVNode("div",{class:styles$4.btns,style:g.btnsStyle},[r.step+1==r.steps.length?createVNode(Fragment,null,[createVNode("div",{class:[styles$4.endBtn],onClick:()=>d()},[createTextVNode("完成")]),createVNode("div",{class:[styles$4.nextBtn],style:{"border-color":"#fff"},onClick:()=>{r.step=0,c()}},[createTextVNode("再看一遍")])]):createVNode(Button$1,{class:styles$4.teacherBtn,round:!0,type:"primary",onClick:()=>u()},{default:()=>[createTextVNode("下一步 ("),r.step+1,createTextVNode("/"),r.steps.length,createTextVNode(")")]})])])})])])]})}}),StudentBottom=defineComponent({name:"studentB-guide",emits:["close"],setup(i,{emit:e}){const r=reactive({box:{},show:!1,steps:state$1.platform===IPlatform.PC?[{ele:"",eleRect:{},img:getImage("studentB1.png"),handStyle:{top:"-1.39rem",left:"1.7rem",transform:"rotate(180deg)"},imgStyle:{top:"-5.01rem",width:"6.48rem",height:"3.01rem",left:"1.2rem"},btnsStyle:{top:"-1.61rem",left:"3.2rem"}},{ele:"",img:getImage("studentB2.png"),handStyle:{top:"-1.39rem",left:"1.5rem",transform:"rotate(180deg)"},imgStyle:{top:"-5.01rem",width:"6.48rem",height:"3.01rem"},btnsStyle:{top:"-1.61rem",left:"2.3rem"}}]:[{ele:"",eleRect:{},img:getImage("studentB1.png"),handStyle:{top:"-1.39rem",left:"1.7rem",transform:"rotate(180deg)"},imgStyle:{top:"-5.01rem",width:"6.48rem",height:"3.01rem",left:"1.2rem"},btnsStyle:{top:"-1.61rem",left:"3.2rem"}},{ele:"",img:getImage("studentB2.png"),handStyle:{top:"-1.39rem",left:"1.5rem",transform:"rotate(180deg)"},imgStyle:{top:"-5.01rem",width:"6.48rem",height:"3.01rem"},btnsStyle:{top:"-1.61rem",left:"2.3rem"}},{ele:"",img:getImage("studentB3.png"),handStyle:{top:"-1.39rem",left:"1.4rem",transform:"rotate(180deg)"},imgStyle:{top:"-4.5rem",width:"6.48rem",height:"3.01rem",left:"-4.3rem"},btnsStyle:{top:"-1.1rem",left:"-3.2rem"}}],step:0}),s=ref(!1);getQuery();const o=ref({});(async()=>{var g;try{if(state$1.guideInfo)o.value=state$1.guideInfo;else{const m=await getGuidance({guideTag:"guideInfo"});m.data?o.value=JSON.parse((g=m.data)==null?void 0:g.guideValue)||null:o.value={}}o.value&&o.value.studentB?s.value=!1:s.value=!0}catch(m){console.log(m)}})();const l=["modeType-0","modeType-1","modeType-2"],c=()=>{console.log(l[r.step]);const g=document.getElementById(l[r.step]);if(g){const m=g.getBoundingClientRect();r.box={left:m.x+"px",top:m.y+"px",width:m.width+"px",height:m.height+"px"}}};onMounted(()=>{c()});const u=()=>{if(r.step>=2){d();return}r.step=r.step+1,c()},d=async()=>{o.value?o.value.studentB=!0:o.value={studentB:!0};try{const g=await setGuidance({guideTag:"guideInfo",guideValue:JSON.stringify(o.value)})}catch(g){console.log(g)}s.value=!1};return()=>createVNode(Popup$1,{teleport:"body",overlay:!1,closeOnClickOverlay:!1,class:["popup-custom",styles$4.guidePopup],show:s.value,"onUpdate:show":g=>s.value=g},{default:()=>[createVNode("div",{class:styles$4.content,onClick:()=>u()},[r.step!=r.steps.length-1&&createVNode("div",{class:styles$4.backBtn,onClick:g=>{g.stopPropagation(),d()}},[createTextVNode("跳过")]),createVNode("div",{class:styles$4.box,style:r.box,id:`modeType-${r.step}`},[r.steps.map((g,m)=>{var y,b;return createVNode("div",{onClick:S=>S.stopPropagation(),class:styles$4.item,style:{display:m===r.step?"":"none",left:`${(y=g.eleRect)==null?void 0:y.left}px`,top:`${(b=g.eleRect)==null?void 0:b.top}px`}},[createVNode("img",{class:styles$4.img,style:g.imgStyle,src:g.img},null),createVNode("img",{class:styles$4.iconHead,style:g.handStyle,src:getImage("indexDot.png")},null),createVNode("div",{class:styles$4.btns,style:g.btnsStyle},[r.step+1==r.steps.length?createVNode(Fragment,null,[createVNode("div",{class:[styles$4.studentNext],onClick:()=>d()},[createTextVNode("完成")]),createVNode("div",{class:[styles$4.nextBtn],style:{"border-color":"#fff"},onClick:()=>{r.step=0,c()}},[createTextVNode("再看一遍")])]):createVNode(Button$1,{class:styles$4.studentNext,round:!0,type:"primary",onClick:()=>u()},{default:()=>[createTextVNode("下一步 ("),r.step+1,createTextVNode("/"),r.steps.length,createTextVNode(")")]})])])})])])]})}}),icon_btn="data:image/png;base64,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",icon_btn_cancel="data:image/png;base64,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",container$1="_container_jp744_1",close$1="_close_jp744_11",title$2="_title_jp744_18",content$1="_content_jp744_23",btns="_btns_jp744_32",btn$1="_btn_jp744_32",btnCancel="_btnCancel_jp744_46",styles$3={container:container$1,close:close$1,title:title$2,content:content$1,btns,btn:btn$1,btnCancel},TheVip=defineComponent({name:"TheVip",setup(){const i={dev:"https://dev.kt.colexiu.com",test:"https://test.lexiaoya.cn",online:"https://kt.colexiu.com"};let e=location.origin.includes("//dev")?"dev":location.origin.includes("//test")?"test":location.origin.includes("//online")||location.origin.includes("//kt")||location.origin.includes("//mec")?"online":"dev";const r=()=>{getQuery().modelType?api_goback():api_back()};return()=>createVNode(Popup$1,{teleport:"body",closeOnClickOverlay:!1,class:["popup-custom"],show:!0},{default:()=>[createVNode("div",{class:styles$3.container},[createVNode("div",{class:styles$3.content},[createTextVNode("立即开通"),createVNode("span",{style:{color:"#FF5A56"}},[createTextVNode('"乐器AI学练工具"')]),createTextVNode("服务,解锁更多专属权益,享受全新学习体验!")]),createVNode("div",{class:styles$3.btns},[createVNode("img",{class:[styles$3.btn,styles$3.btnCancel],src:icon_btn_cancel,onClick:r},null),createVNode("img",{class:styles$3.btn,src:icon_btn,onClick:()=>{postMessage$1({api:"openWebView",content:{url:`${location.origin.includes("192")?"https://test.lexiaoya.cn":i[e]}/classroom-app/#/member-center`,orientation:1}})}},null)])])]})}}),detail="_detail_mqn64_1",btn="_btn_mqn64_14",close="_close_mqn64_24",closeIcon$1="_closeIcon_mqn64_30",fingerGuide="_fingerGuide_mqn64_53",content="_content_mqn64_57",box="_box_mqn64_61",boxItem1="_boxItem1_mqn64_67",boxItem2="_boxItem2_mqn64_75",boxItem3="_boxItem3_mqn64_83",item="_item_mqn64_91",fingeringMode="_fingeringMode_mqn64_96",itemScale="_itemScale_mqn64_96",boxTip2="_boxTip2_mqn64_102",boxTip3="_boxTip3_mqn64_103",icon="_icon_mqn64_106",title$1="_title_mqn64_132",des="_des_mqn64_141",styles$2={detail,btn,close,closeIcon:closeIcon$1,fingerGuide,content,box,boxItem1,boxItem2,boxItem3,item,fingeringMode,itemScale,boxTip2,boxTip3,icon,title:title$1,des},DetailGuide=defineComponent({name:"DetailGuide",emits:["close"],setup(i,{emit:e}){const r=ref();return()=>createVNode("div",{ref:r,class:styles$2.detail},[createVNode("div",{class:styles$2.btn,onClick:()=>e("close",!0)},[createTextVNode("不再提醒")]),createVNode("span",{class:styles$2.closeIcon,onClick:()=>e("close")},null)])}}),guide_1="data:image/png;base64,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",guide_2="data:image/png;base64,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",guide_3="data:image/png;base64,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",guide_4="data:image/png;base64,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",icon_cursor_1="data:image/png;base64,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",icon_cursor_2="data:image/png;base64,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",icon_cursor_3="data:image/png;base64,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",icons={guide_1,guide_2,guide_3,guide_4,icon_cursor_1,icon_cursor_2,icon_cursor_3},FingerGuide=defineComponent({name:"DetailGuide",props:{fingeringMode:{type:String,default:""}},emits:["close"],setup(i,{emit:e}){const r=getQuery(),s=reactive({box:{},show:!0,steps:[{className:"boxItem1",classTip:"",des:`快点击下排按钮听听${state$1.fingeringInfo.code}的声音吧,按钮可以滑动哦~`,img:icons.icon_cursor_1},{className:"boxItem2",classTip:"boxTip2",des:"这里可以切换音调,查看不同音调的指法~",img:icons.icon_cursor_2},{className:"boxItem3",classTip:"boxTip3",des:"可以通过手势放大缩小乐器哦~",img:icons.icon_cursor_3}],step:0}),o=["finger-note-0","finger-note-1","finger-note-2"],a=()=>{const u=document.getElementById(o[s.step]);if(console.log(s.step,u),u){const d=u.getBoundingClientRect(),g=s.step===2?d.width:0;s.box={left:d.x-g+"px",top:d.y+"px",width:(s.step===2?0:d.width)+"px",height:(s.step===2?0:d.height)+"px"}}else l()};onMounted(()=>{a()});const l=()=>{if(s.step>=2){c();return}s.step=s.step+1,a()},c=()=>{e("close",!0)};return()=>createVNode(Popup$1,{zIndex:5051,teleport:"body",overlay:!1,closeOnClickOverlay:!1,class:["popup-custom",styles$2.fingerGuide],show:s.show,"onUpdate:show":u=>s.show=u},{default:()=>[createVNode("div",{class:styles$2.content,onClick:()=>l()},[createVNode("div",{class:styles$2.box,style:s.box},[s.steps.map((u,d)=>createVNode("div",{style:{display:d===s.step?"":"none"},class:styles$2[u.className]},[createVNode("img",{src:u.img},null)]))]),createVNode("div",{onClick:u=>u.stopPropagation()},[s.steps.map((u,d)=>createVNode("div",{style:{display:d===s.step?"":"none"},class:[styles$2.item,i.fingeringMode!=="scaleMode"&&styles$2.fingeringMode,["Woodwind","Tenor Recorder","BaroqueRecorder"].includes(r.code)&&styles$2.itemScale,styles$2[u.classTip]]},[createVNode("div",{class:styles$2.icon},[createVNode("img",{src:icons.guide_3},null)]),createVNode(Button$1,{class:styles$2.btn,round:!0,type:"primary",onClick:()=>l()},{default:()=>[createTextVNode("我知道了")]}),createVNode("div",{class:styles$2.title},[createVNode("img",{src:icons.guide_4},null),createVNode("div",{class:styles$2.des,style:{fontSize:d===2?"0.34667rem":""}},[u.des])])]))])])]})}}),GuideIndex=defineComponent({name:"guide-index",props:{list:{type:Array,default:""},showGuide:{type:Boolean,default:!0},fingeringMode:{type:String,default:""}},setup(i){const e=getQuery(),r="detailGuideKey",s="fingerGuideKey",o=reactive({list:i.list,detailShow:!1,fingerShow:!1}),a=()=>{if(!(i.showGuide&&!e.showGuide)){if(o.list.includes("detail")){if(localStorage.getItem(r))return;setTimeout(()=>{o.detailShow=!0},300)}if(o.list.includes("finger")){if(localStorage.getItem(s))return;o.fingerShow=!0}}};return onMounted(()=>{a()}),()=>createVNode(Fragment,null,[o.detailShow&&createVNode(DetailGuide,{onClose:l=>{l&&localStorage.setItem(r,"1"),o.detailShow=!1}},null),o.fingerShow&&createVNode(FingerGuide,{fingeringMode:i.fingeringMode,onClose:l=>{l&&localStorage.setItem(s,"1"),o.fingerShow=!1}},null)])}}),ModeTypeMode=defineComponent({name:"modelWraper",setup(){const i=getQuery(),e=reactive({showPC:!1,showStudent:!1,showVip:!1,showTip:!1}),r=()=>{storeData.platformType!=="STUDENT"||storeData.user.clientType!=="STUDENT"?e.showPC=!0:storeData.user.vipMember||state$1.paymentType==="FREE"||i.showCourseMember==="true"?e.showStudent=!0:e.showVip=!0},s=async()=>{const a=await studentQueryUserInfo(),l=(a==null?void 0:a.data)||{};storeData.user.vipMember=l.vipMember,storeData.user.vipMember&&(e.showVip=!1,r())},o=usePageVisibility();return watch(()=>o.value,a=>{if(a==="visible"){if(storeData.user.vipMember)return;console.log("页面显示"),s()}}),watch(()=>headTopData.modeType,a=>{a==="init"&&nextTick(()=>{nextTick(()=>{setTimeout(()=>{e.showTip=!0},500)})})}),onMounted(()=>{r()}),()=>{var a;return createVNode(Fragment,null,[createVNode("div",{class:[styles$5.wrap,headTopData.modeType==="init"?"":styles$5.hidden]},[createVNode("div",{id:"modeType-box",class:styles$5.infoWrap},[createVNode("img",{id:"modeType-0",onClick:()=>headTopData.handleChangeModeType("practise"),src:icons$1.icon_1},null),createVNode("img",{id:"modeType-1",style:{cursor:state$1.isPercussion?"not-allowed":"pointer"},onClick:()=>headTopData.handleChangeModeType("follow"),src:state$1.isPercussion?icons$1.icon_5:icons$1.icon_2},null),createVNode("img",{id:"modeType-2",style:{cursor:state$1.enableEvaluation?"pointer":"not-allowed"},onClick:()=>headTopData.handleChangeModeType("evaluating"),src:state$1.enableEvaluation?icons$1.icon_3:icons$1.icon_4},null)]),e.showPC&&e.showTip&&!i.isCbs?createVNode(TeacherBootom,null,null):null,e.showStudent&&e.showTip&&!i.isCbs?createVNode(StudentBottom,null,null):null,e.showVip&&createVNode(TheVip,null,null)]),headTopData.modeType&&headTopData.modeType!=="init"&&state$1.modeType=="practise"&&((a=state$1.fingeringInfo)==null?void 0:a.name)&&state$1.setting.displayFingering&&createVNode(GuideIndex,{list:["detail"]},null)])}}}),TeacherTop=defineComponent({name:"teacherTop-guide",emits:["close"],setup(i,{emit:e}){const r=reactive({box:{},show:!1,steps:state$1.platform===IPlatform.PC?[{ele:"",eleRect:{},img:getImage("pc_teacherBottom1.png"),handStyle:{top:"0.91rem"},imgStyle:{bottom:"2.5rem",width:"3.63rem",height:"2.28rem",left:"-0.45rem"},btnsStyle:{bottom:"2.72rem",left:"1.1rem",transform:"scale(.83)"}},{ele:"",img:getImage("pc_teacherBottom2.png"),handStyle:{top:"-1.39rem",left:"0.15rem",transform:"rotate(180deg)"},imgStyle:{bottom:"2.5rem",width:"4.20rem",height:"2.28rem",left:"-0.45rem"},btnsStyle:{bottom:"2.72rem",left:"1.1rem",transform:"scale(.83)"}},{ele:"",img:getImage("pc_teacherBottom3.png"),handStyle:{top:"-1.39rem",left:"0.17rem",transform:"rotate(180deg)"},imgStyle:{bottom:"2.5rem",width:"5.15rem",height:"2.28rem",left:"-0.45rem"},btnsStyle:{bottom:"2.72rem",left:"1.1rem",transform:"scale(.83)"}},{ele:"",img:getImage("pc_teacherBottom4.png"),handStyle:{top:"-1.39rem",left:"1.4rem",transform:"rotate(180deg)"},imgStyle:{bottom:"2.5rem",width:"4.39rem",height:"2.28rem",left:"-0.45rem"},btnsStyle:{bottom:"2.72rem",left:"1.1rem",transform:"scale(.83)"}},{ele:"",img:getImage("pc_teacherBottom5.png"),handStyle:{top:"-1.39rem",left:"1.4rem",transform:"rotate(180deg)"},imgStyle:{bottom:"2.5rem",width:"4.58rem",height:"2.28rem",left:"-0.45rem"},btnsStyle:{bottom:"2.72rem",left:"1.1rem",transform:"scale(.83)"}},{ele:"",img:getImage("pc_teacherBottom6.png"),handStyle:{top:"-1.39rem",left:"1.4rem",transform:"rotate(180deg)"},imgStyle:{bottom:"2.5rem",width:"4.01rem",height:"2.28rem",left:"-3.4rem"},btnsStyle:{bottom:"2.72rem",left:"-2.1rem",transform:"scale(.83)"}}]:[{ele:"",eleRect:{},img:getImage("teacherTop1.png"),handStyle:{top:"0.91rem"},imgStyle:{top:"1.32rem",width:"3.63rem",height:"2.28rem",left:"-2rem"},btnsStyle:{top:"2.8rem",left:"-0.5rem",transform:"scale(.83)"}},{ele:"",img:getImage("teacherTop2.png"),handStyle:{top:"-1.39rem",left:"0.15rem",transform:"rotate(180deg)"},imgStyle:{top:"1.32rem",width:"4.20rem",height:"2.28rem",left:"-2rem"},btnsStyle:{top:"2.8rem",left:"-0.5rem",transform:"scale(.83)"}},{ele:"",img:getImage("teacherTop3.png"),handStyle:{top:"-1.39rem",left:"0.17rem",transform:"rotate(180deg)"},imgStyle:{top:"1.32rem",width:"5.15rem",height:"2.28rem",left:"-2rem"},btnsStyle:{top:"2.8rem",left:"-0.5rem",transform:"scale(.83)"}},{ele:"",img:getImage("teacherTop4.png"),handStyle:{top:"-1.39rem",left:"1.4rem",transform:"rotate(180deg)"},imgStyle:{top:"1.32rem",width:"4.39rem",height:"2.28rem",left:"-2rem"},btnsStyle:{top:"2.8rem",left:"-0.5rem",transform:"scale(.83)"}},{ele:"",img:getImage("teacherTop5.png"),handStyle:{top:"-1.39rem",left:"1.4rem",transform:"rotate(180deg)"},imgStyle:{top:"1.32rem",width:"4.58rem",height:"2.28rem",left:"-2rem"},btnsStyle:{top:"2.8rem",left:"-0.5rem",transform:"scale(.83)"}},{ele:"",img:getImage("teacherTop6.png"),handStyle:{top:"-1.39rem",left:"1.4rem",transform:"rotate(180deg)"},imgStyle:{top:"1.32rem",width:"4.01rem",height:"2.28rem",left:"-3.4rem"},btnsStyle:{top:"2.8rem",left:"-2.1rem",transform:"scale(.83)"}}],step:0}),s=ref(!1);getQuery();const o=ref({});(async()=>{var d;try{if(state$1.guideInfo)o.value=state$1.guideInfo;else{const g=await getGuidance({guideTag:"guideInfo"});g.data?o.value=JSON.parse((d=g.data)==null?void 0:d.guideValue)||null:o.value={}}o.value&&o.value.teacherTop?s.value=!1:s.value=!0}catch(g){console.log(g)}})();const l=()=>{console.log(`teacherTop${r.step}`);const d=document.getElementById(`teacherTop-${r.step}`);if(d){if(d.style.display==="none"){c();return}const g=d.getBoundingClientRect();r.box={left:g.x+"px",top:g.y+"px",width:g.width+"px",height:g.height+"px"}}};onMounted(()=>{setTimeout(()=>{l()},1200)});const c=()=>{if(r.step>=5){u();return}r.step=r.step+1,l()},u=async()=>{o.value?o.value.teacherTop=!0:o.value={teacherTop:!0};try{const d=await setGuidance({guideTag:"guideInfo",guideValue:JSON.stringify(o.value)})}catch(d){console.log(d)}state$1.guideInfo=o.value,s.value=!1};return()=>createVNode(Popup$1,{teleport:"body",overlay:!1,closeOnClickOverlay:!1,class:["popup-custom",styles$4.guidePopup],show:s.value,"onUpdate:show":d=>s.value=d},{default:()=>[createVNode("div",{class:styles$4.content,onClick:()=>c()},[createVNode("div",{class:styles$4.backBtn,onClick:d=>{d.stopPropagation(),u()}},[createTextVNode("跳过")]),createVNode("div",{class:styles$4.box,style:r.box,id:`modeType-${r.step}`},[r.steps.map((d,g)=>{var m,y;return createVNode("div",{onClick:b=>b.stopPropagation(),class:styles$4.item,style:{display:g===r.step?"":"none",left:`${(m=d.eleRect)==null?void 0:m.left}px`,top:`${(y=d.eleRect)==null?void 0:y.top}px`}},[createVNode("img",{class:styles$4.img,style:d.imgStyle,src:d.img},null),createVNode("div",{class:styles$4.btns,style:d.btnsStyle},[r.step+1==r.steps.length?createVNode(Fragment,null,[createVNode("div",{class:[styles$4.endBtn],onClick:()=>u()},[createTextVNode("完成")]),createVNode("div",{class:[styles$4.nextBtn],style:{"border-color":"#fff"},onClick:()=>{r.step=0,l()}},[createTextVNode("再看一遍")])]):createVNode(Button$1,{class:styles$4.teacherBtn,round:!0,type:"primary",onClick:()=>c()},{default:()=>[createTextVNode("下一步 ("),r.step+1,createTextVNode("/"),r.steps.length,createTextVNode(")")]})])])})])])]})}}),StudentTop=defineComponent({name:"studnetT-guide",emits:["close"],setup(i,{emit:e}){const r=reactive({box:{},show:!1,steps:[{ele:"",eleRect:{},img:getImage("studnetT1.png"),handStyle:{top:"0.67rem",left:"0.1rem"},imgStyle:{top:"1.2rem",width:"5.64rem",height:"2.77rem",left:"-2rem"},btnsStyle:{top:"4.4rem",left:"-0.7rem"}},{ele:"",img:getImage("studnetT2.png"),handStyle:{top:"0.67rem",left:"0.1rem"},imgStyle:{top:"1.2rem",width:"5.46rem",height:"2.3rem",left:"-2rem"},btnsStyle:{top:"3.9rem",left:"-0.7rem"}},{ele:"",img:getImage("studnetT3.png"),handStyle:{top:"0.67rem",left:"0.1rem"},imgStyle:{top:"1.2rem",width:"5.46rem",height:"2.30rem",left:"-2rem"},btnsStyle:{top:"3.9rem",left:"-0.7rem"}},{ele:"",img:getImage("studnetT4.png"),handStyle:{top:"0.67rem",left:"0.1rem"},imgStyle:{top:"1.2rem",width:"5.46rem",height:"2.30rem",left:"-2rem"},btnsStyle:{top:"3.9rem",left:"-0.7rem"}},{ele:"",img:getImage("studnetT5.png"),handStyle:{top:"0.67rem",left:"0.1rem"},imgStyle:{top:"1.2rem",width:"5.46rem",height:"2.6rem",left:"-3rem"},btnsStyle:{top:"4.1rem",left:"-1.3rem"}},{ele:"",img:getImage("studnetT6.png"),handStyle:{top:"0.67rem",left:"0.1rem"},imgStyle:{top:"0.92rem",width:"5.46rem",height:"2.30rem",left:"-5.5rem"},btnsStyle:{top:"3.6rem",left:"-1.8rem"}},{ele:"",eleRect:{},img:getImage("studnetT7.png"),handStyle:{top:"0.67rem",left:"0.1rem"},imgStyle:{top:"0.92rem",width:"5.46rem",height:"2.3rem",left:"-5.5rem"},btnsStyle:{top:"3.6rem",left:"-3.7rem"}},{ele:"",eleRect:{},img:getImage("studnetT8.png"),handStyle:{top:"-1.38rem",left:".26rem",transform:"rotate(180deg)"},imgStyle:{top:"-3.8rem",width:"5.46rem",height:"2.28rem",left:"-5rem"},btnsStyle:{top:"-1.2rem",left:"-4.3rem"}}],step:0,initDone:!1}),s=ref(!1);getQuery();const o=ref({});(async()=>{var d;console.log("学生引导123");try{if(state$1.guideInfo)o.value=state$1.guideInfo;else{const g=await getGuidance({guideTag:"guideInfo"});g.data?o.value=JSON.parse((d=g.data)==null?void 0:d.guideValue)||null:o.value={}}o.value&&o.value.studnetT?s.value=!1:s.value=headTopData.modeType!=="init"}catch(g){console.log(g)}})();const l=()=>{console.log(`studnetT${r.step}`);const d=document.getElementById(`studnetT-${r.step}`);if(d){if(d.style.display==="none"){c();return}const g=d.getBoundingClientRect();r.box={left:g.x+"px",top:g.y+"px",width:g.width+"px",height:g.height+"px"}}};onMounted(()=>{setTimeout(()=>{l(),r.initDone=!0},1200)});const c=()=>{if(r.step>=7){u();return}r.step=r.step+1,l()},u=async()=>{o.value?o.value.studnetT=!0:o.value={studnetT:!0};try{const d=await setGuidance({guideTag:"guideInfo",guideValue:JSON.stringify(o.value)})}catch(d){console.log(d)}state$1.guideInfo=o.value,s.value=!1};return()=>createVNode(Popup$1,{teleport:"body",overlay:!1,closeOnClickOverlay:!1,class:["popup-custom",styles$4.guidePopup],show:s.value,"onUpdate:show":d=>s.value=d},{default:()=>[createVNode("div",{class:styles$4.content,onClick:()=>c()},[r.step!=r.steps.length-1&&createVNode("div",{class:styles$4.backBtn,onClick:d=>{d.stopPropagation(),u()}},[createTextVNode("跳过")]),r.initDone&&createVNode("div",{class:styles$4.box,style:r.box,id:`modeType-${r.step}`},[r.steps.map((d,g)=>{var m,y;return createVNode("div",{onClick:b=>b.stopPropagation(),class:styles$4.item,style:{display:g===r.step?"":"none",left:`${(m=d.eleRect)==null?void 0:m.left}px`,top:`${(y=d.eleRect)==null?void 0:y.top}px`}},[createVNode("img",{class:styles$4.img,style:d.imgStyle,src:d.img},null),createVNode("img",{class:styles$4.iconHead,style:d.handStyle,src:getImage("indexDot.png")},null),createVNode("div",{class:styles$4.btns,style:d.btnsStyle},[r.step+1==r.steps.length?createVNode(Fragment,null,[createVNode("div",{class:[styles$4.studentNext],onClick:()=>u()},[createTextVNode("完成")]),createVNode("div",{class:[styles$4.nextBtn],style:{"border-color":"#fff"},onClick:()=>{r.step=0,l()}},[createTextVNode("再看一遍")])]):createVNode(Button$1,{class:styles$4.studentNext,round:!0,type:"primary",onClick:()=>c()},{default:()=>[createTextVNode("下一步 ("),r.step+1,createTextVNode("/"),r.steps.length,createTextVNode(")")]})])])})])])]})}}),index_module={},iconToggle="_iconToggle_1k628_1",popup="_popup_1k628_12",pcPartPop="_pcPartPop_1k628_16",styles$1={iconToggle,popup,pcPartPop},container="_container_1u7ni_1",top="_top_1u7ni_10",closeIcon="_closeIcon_1u7ni_30",picker="_picker_1u7ni_53",pcPicker="_pcPicker_1u7ni_60",button="_button_1u7ni_66",pcContainer="_pcContainer_1u7ni_73",title="_title_1u7ni_82",pcPartTop="_pcPartTop_1u7ni_98",pcPartTopZIndex="_pcPartTopZIndex_1u7ni_102",styles={container,top,closeIcon,picker,pcPicker,button,pcContainer,title,pcPartTop,pcPartTopZIndex},ChoosePartName=defineComponent({name:"choosePartName",props:{partListNames:{type:Array,default:()=>[]},partIndex:{type:Number,default:0}},emits:["close"],setup(i,{emit:e}){const r=ref(!1),{partListNames:s,partIndex:o}=toRefs(i);let a=s.value.findIndex(g=>g.value===o.value);a=a>-1?a:0;const l=ref(a),c=computed(()=>s.value),u=ref([o.value]),d=ref();return onMounted(()=>{}),()=>{var g;return createVNode("div",{class:[styles.container,state$1.platform===IPlatform.PC&&styles.pcContainer]},[state$1.platform===IPlatform.PC&&createVNode("div",{class:[!((g=state$1.guideInfo)!=null&&g.teacherDrag)&&styles.pcPartTopZIndex,styles.pcPartTop,"top_drag"]},null),createVNode("div",{class:styles.top},[createVNode("div",{class:styles.title},[createTextVNode("请选择您练习的乐器")]),createVNode("span",{class:styles.closeIcon,onClick:()=>e("close")},null)]),createVNode(Picker,{ref:d,class:[styles.picker,state$1.platform===IPlatform.PC&&styles.pcPicker],defaultIndex:i.partIndex,modelValue:u.value,"onUpdate:modelValue":m=>u.value=m,showToolbar:!1,columns:c.value,visibleItemCount:Math.ceil(document.body.clientHeight/44/3),onChange:m=>{r.value||(r.value=!0),l.value=m.selectedValues[0]}},null),createVNode(Button$1,{class:styles.button,type:"primary",round:!0,block:!0,onClick:()=>{r.value?e("close",l.value):e("close",o.value)}},{default:()=>[createTextVNode("确定")]})])}}}),instruments={"Acoustic Grand Piano":"大钢琴","Bright Acoustic Piano":"明亮的钢琴","Electric Grand Piano":"电钢琴","Rhodes Piano":"柔和的电钢琴","Chorused Piano":"加合唱效果的电钢琴",Harpsichord:"羽管键琴",Clavichord:"科拉维科特琴",Celesta:"钢片琴",Glockenspiel:"钢片琴","Music box":"八音盒",Vibraphone:"颤音琴",Marimba:"马林巴",Xylophone:"木琴","Tubular Bells":"管钟",Dulcimer:"大扬琴","Hammond Organ":"击杆风琴","Percussive Organ":"打击式风琴","Rock Organ":"摇滚风琴","Church Organ":"教堂风琴","Reed Organ":"簧管风琴",Accordian:"手风琴",Harmonica:"口琴","Tango Accordian":"探戈手风琴","Acoustic Guitar":"钢弦吉他","Electric Guitar":"闷音电吉他","Overdriven Guitar":"加驱动效果的电吉他","Distortion Guitar":"加失真效果的电吉他","Guitar Harmonics":"吉他和音","Acoustic Bass":"大贝司","Electric Bass":"电贝司","Fretless Bass":"无品贝司","Slap Bass":"掌击","Synth Bass":"电子合成",Violin:"小提琴",Viola:"中提琴",Cello:"大提琴",Contrabass:"低音大提琴","Tremolo Strings":"弦乐群颤音音色","Pizzicato Strings":"弦乐群拨弦音色","Orchestral Harp":"竖琴",Timpani:"定音鼓","String Ensemble":"弦乐合奏音色","Synth Strings":"合成弦乐合奏音色","Choir Aahs":"人声合唱","Voice Oohs":"人声","Synth Voice":"合成人声","Orchestra Hit":"管弦乐敲击齐奏",Trumpet:"小号",Trombone:"长号",Tuba:"大号","Muted Trumpet":"加弱音器小号","French Horn":"法国号","Brass Section":"铜管组","Synth Brass":"合成铜管音色","Soprano Sax":"高音萨克斯管","Alto Sax":"中音萨克斯管","Tenor Sax":"次中音萨克斯管","Baritone Sax":"低音萨克斯管",Oboe:"双簧管","English Horn":"英国管",Bassoon:"巴松",Clarinet:"单簧管","Soprano Saxophone":"高音萨克斯管","Alto Saxophone":"中音萨克斯管","Tenor Saxophone":"次中音萨克斯管","Baritone Saxophone":"低音萨克斯管",Piccolo:"短笛",Flute:"长笛",Recorder:"竖笛","Soprano Recorder":"高音竖笛","Pan Flute":"排箫","Bottle Blow":"瓶木管",Whistle:"口哨声",Ocarina:"陶笛",Lead:"合成主音","Lead lead":"合成主音","Pad age":"合成音色",Pad:"合成音色",FX:"合成效果 科幻",Sitar:"西塔尔",Banjo:"班卓琴",Shamisen:"三昧线",Koto:"十三弦筝",Kalimba:"卡林巴",Bagpipe:"风笛",Fiddle:"民族提琴",Shanai:"山奈","Tinkle Bell":"叮当铃",Agogos:"阿戈戈铃","Steel Drums":"钢鼓","Taiko Drum":"太鼓","Melodic Toms":"嗵嗵鼓","Synth Drums":"合成鼓","Reverse Cymbals":"反向镲","Agogo Bells":"阿戈戈铃","Taiko Drums":"太鼓",Bongos:"邦戈鼓","Bongo Bell":"邦戈铃",Congas:"康加鼓",Guiro:"刮壶","Guitar Fret Noise":"吉他换把杂音","Breath Noise":"呼吸声",Seashore:"海浪声","Bird Tweet":"鸟鸣","Telephone Ring":"电话铃",Helicopter:"直升机",Applause:"鼓掌声",Gunshot:"枪声","Acoustic Bass Drum":"大鼓","Bass Drum":"大鼓","Side Drum":"小鼓鼓边","Acoustic Snare":"小鼓","Hand Claps":"拍手","Electric Snare":"小鼓","Low Floor Tom":"低音嗵鼓","Closed Hi-Hat":"闭合踩镲","High Floor Tom":"高音落地嗵鼓","Pedal Hi-Hat":"脚踏踩镲","Low Tom":"低音嗵鼓","Open Hi-Hat":"开音踩镲","Low-Mid Tom":"中低音嗵鼓","Hi Mid Tom":"高音鼓","Crash Cymbals":"对镲","High Tom":"高音嗵鼓","Ride Cymbals":"叮叮镲","Chinese Cymbals":"中国镲","Ride Bell":"圆铃",Tambourine:"铃鼓","Splash Cymbal":"溅音镲",Cowbell:"牛铃","Crash Cymbal":"强音钹","Vibra-Slap":"颤音器","Ride Cymbal":"打点钹","Hi Bongo":"高音邦戈鼓","Low Bongo":"低音邦戈鼓","Mute Hi Conga":"弱音高音康加鼓","Open Hi Conga":"强音高音康加鼓","Low Conga":"低音康加鼓","High Timbale":"高音天巴鼓","Low Timbale":"低音天巴鼓","High Agogo":"高音阿戈戈铃","Low Agogo":"低音阿戈戈铃",Cabasa:"卡巴萨",Maracas:"沙锤","Short Whistle":"短口哨","Long Whistle":"长口哨","Short Guiro":"短刮壶","Long Guiro":"长刮壶",Claves:"响棒","Hi Wood Block":"高音木鱼","Low Wood Block":"低音木鱼","Mute Triangle":"弱音三角铁","Open Triangle":"强音三角铁","Drum Set":"架子鼓","Hulusi flute":"葫芦丝",Melodica:"口风琴",Nai:"口风琴","Snare Drum":"小军鼓",Cymbal:"镲",Cymbals:"镲","Horn in F":"圆号",Triangle:"三角铁",Vibrato:"颤音琴","Suspend Cymbals":"吊镲","Suspended Cymbals":"吊镲","Tom-Toms":"嗵嗵鼓",Bell:"铃铛",Bells:"铃铛","Alto Clarinet":"中音单簧管","Bass Clarinet":"低音单簧管",Cornet:"短号",Euphonium:"上低音号","crash cymbals":"对镲",Castanets:"响板",Shaker:"沙锤","Mark tree":"音树",Chimes:"管钟","Mark Tree":"音树","Tom-toms":"嗵嗵鼓","Hi-Hat":"踩镲","Sleigh Bells":"雪橇铃",Flexatone:"弹音器","Brake drum":"闸鼓",Gong:"锣","concert tom":"音乐会嗵嗵鼓","brake drum":"车轮鼓","finger cymbal":"指钹","ride cymbal":"叮叮镲","Concert Toms":"音乐会嗵嗵鼓",Vibraslap:"弹音器","Wood Blocks":"木鱼","Temple Blocks":"木鱼","Wood Block":"木鱼","Field Drum":"军鼓","Quad-Toms":"筒鼓",Quads:"筒鼓","Drums set":"架子鼓","High Bongo":"邦戈",Timbales:"天巴鼓"},getInstrumentName=(i="")=>{if(i=i.toLocaleLowerCase().replace(/ /g,""),!i)return"";for(let e in instruments)if(e.toLocaleLowerCase().replace(/ /g,"").includes(i))return instruments[e];for(let e in instruments){const r=e.toLocaleLowerCase().replace(/ /g,"");if(i.includes(r))return instruments[e]}return""},sortMusical=(i,e)=>{let r=0;switch(i){case"长笛":r=1;break;case"单簧管":r=2;break;case"中音单簧管":r=3;break;case"低音单簧管":r=4;break;case"高音萨克斯风":r=5;break;case"中音萨克斯风":r=6;break;case"次中音萨克斯风":r=7;break;case"低音萨克斯风":r=8;break;case"小号":r=9;break;case"长号":r=10;break;case"圆号":r=11;break;case"大号":r=12;break;case"上低音号":r=13;break;default:r=e+14;break}return r},toggleMusicSheet=reactive({show:!1,toggle:(i=!0)=>{toggleMusicSheet.show=i}}),ToggleMusicSheet=defineComponent({name:"ToggleMusicSheet",setup(){var u,d;const i=getQuery(),e=computed(()=>{let g=state$1.partListNames||[];return g=g.filter(y=>{var b;return!((b=y==null?void 0:y.toLocaleUpperCase())!=null&&b.includes("COMMON"))}),g.map((y,b)=>{const S=!!(state$1.canSelectTracks.length==0||state$1.canSelectTracks.includes(y)),A=getInstrumentName(y),E=sortMusical(A,b);return{text:y+(A?`(${A})`:""),value:b,sortId:E,canselect:S}}).filter(y=>y.canselect).sort((y,b)=>y.sortId-b.sortId)}),r=computed(()=>{var g;if(e&&e.value.length){const m=((g=e.value.find(y=>y.value==state$1.partIndex))==null?void 0:g.value)||0;return console.log(3333,m),m}else return 0}),s=g=>{if(state$1.partIndex===g)return;togglePlay("paused"),postMessage({api:"cloudDestroy"}),postMessage({api:"cloudLoading",content:{show:!0,type:"fullscreen"}});const m=location.origin+location.pathname+"?"+queryString.stringify({...i,behaviorId:sessionStorage.getItem("behaviorId")||"",_t:new Date().valueOf(),"part-index":g});console.log(m),location.href=m},o="switchBoxClass_drag",a=(u=storeData.user)!=null&&u.id?String((d=storeData.user)==null?void 0:d.id):"",l=state$1.platform!==IPlatform.PC?{styleDrag:{value:null}}:useDrag([`${o} .top_drag`,`${o} .bom_drag`],o,toRef(toggleMusicSheet,"show"),a),c=async()=>{state$1.guideInfo.teacherDrag=!0;try{const g=await setGuidance({guideTag:"guideInfo",guideValue:JSON.stringify(state$1.guideInfo)})}catch(g){console.log(g)}};return()=>createVNode(Popup$1,{class:[styles$1.popup,[state$1.platform===IPlatform.PC&&styles$1.pcPartPop,"switchBoxClass_drag"]],show:toggleMusicSheet.show,"onUpdate:show":g=>toggleMusicSheet.show=g,style:l.styleDrag.value},{default:()=>{var g;return[createVNode(ChoosePartName,{partIndex:r.value||0,partListNames:e.value,onClose:m=>{console.log("🚀 ~ value:",m),toggleMusicSheet.show=!1,m!==void 0&&s(m)}},null),state$1.platform===IPlatform.PC&&createVNode(Dragbom,{showGuide:!((g=state$1.guideInfo)!=null&&g.teacherDrag),onGuideDone:c},null)]}})}}),headTopData=reactive({modeType:"",showBack:!0,settingMode:!1,handleChangeModeType(i){if(!(i==="evaluating"&&!state$1.enableEvaluation)&&!(i==="follow"&&state$1.isPercussion)){if(i==="follow"&&metronomeData.cursorMode===2&&(metronomeData.cursorMode=1),i==="evaluating"){if(!evaluatingData.jsonLoadDone){evaluatingData.jsonLoading=!0,showToast("资源加载中,请稍后");return}if(state$1.platform===IPlatform.PC){showConfirmDialog({className:"modalTip",title:"温馨提示",message:"该功能暂未开放,敬请期待!",showCancelButton:!1});return}state$1.playIngSpeed=state$1.originSpeed,handleStartEvaluat()}else i==="follow"&&toggleFollow();headTopData.modeType="show"}}}),headData=reactive({speedShow:!1,musicTypeShow:!1}),HeaderTop=defineComponent({name:"header-top",emits:["close"],setup(i,{emit:e}){var O,z;const r=getQuery(),s=ref(!1),o=ref(!1),a=computed(()=>state$1.playState==="play"?{display:!0,disabled:!0}:evaluatingData.startBegin||followData.start?{display:!0,disabled:!0}:{display:!0,disabled:!1}),l=computed(()=>state$1.playState==="play"?{display:!0,disabled:!0}:evaluatingData.startBegin||followData.start?{display:!0,disabled:!0}:{disabled:!1,display:!0}),c=computed(()=>headTopData.modeType!=="show"||state$1.modeType==="follow"?{display:!1,disabled:!0}:state$1.modeType==="evaluating"||state$1.playState==="play"?{display:!0,disabled:!0}:{disabled:!1,display:!0}),u=computed(()=>state$1.isShowFingering?headTopData.modeType!=="show"||!state$1.fingeringInfo.name||["evaluating","follow"].includes(state$1.modeType)?{display:!1,disabled:!0}:state$1.playState==="play"?{display:!0,disabled:!0}:{disabled:!1,display:!0}:{display:!0,disabled:!0});computed(()=>headTopData.modeType!=="show"||state$1.modeType!=="evaluating"?{display:!1,disabled:!0}:state$1.playState==="play"?{display:!0,disabled:!0}:{disabled:!1,display:!0});const d=computed(()=>headTopData.modeType!=="show"||["evaluating","follow"].includes(state$1.modeType)?{display:!1,disabled:!0}:state$1.playState==="play"?{display:!0,disabled:!0}:{disabled:!1,display:!0}),g=computed(()=>headTopData.modeType!=="show"||state$1.modeType==="follow"?{display:!1,disabled:!1}:state$1.modeType==="evaluating"?{display:!1,disabled:!0}:!state$1.isAppPlay&&(!state$1.music||!state$1.accompany)?{display:!0,disabled:!0}:{disabled:!1,display:!0}),m=computed(()=>headTopData.modeType!=="show"||!headTopData.showBack?{display:!1,disabled:!1}:followData.start||evaluatingData.startBegin?{display:!0,disabled:!0}:{display:!0,disabled:!1}),y=computed(()=>headTopData.modeType!=="show"?{display:!1,disabled:!1}:["evaluating","follow"].includes(state$1.modeType)?{display:!1,disabled:!0}:state$1.isAppPlay&&state$1.midiPlayIniting?{display:!0,disabled:!0}:{display:!0,disabled:!1}),b=computed(()=>{if(headTopData.modeType!=="show")return{display:!1,disabled:!1};if(["evaluating","follow"].includes(state$1.modeType))return{display:!1,disabled:!0};if(state$1.playState==="play")return{display:!1,disabled:!0};const N=getAudioCurrentTime();return state$1.isAppPlay&&state$1.midiPlayIniting?{display:!1,disabled:!0}:N?{display:!0,disabled:!1}:{display:!1,disabled:!0}}),S=computed(()=>l.value.display&&c.value.display&&d.value.display&&g.value.display&&m.value.display&&s.value),A=computed(()=>l.value.display&&c.value.display&&d.value.display&&g.value.display&&m.value.display&&o.value),E=computed(()=>!!(storeData.user.vipMember||state$1.paymentType==="FREE"||r.showCourseMember==="true")),x=browser(),P=()=>{if(HANDLE_WORK_ADD(),!storeData.isApp){window.close();return}if((x.iPhone||x.ios)&&r.workRecord){setTimeout(()=>{api_back()},550);return}api_back()},T=()=>{r.workRecord||(state$1.defaultModeType==1?(headTopData.handleChangeModeType("practise"),(state$1.platform===IPlatform.PC||state$1.isPreView)&&(headTopData.showBack=!1)):r.modelType?(r.modelType==="practise"?headTopData.handleChangeModeType("practise"):r.modelType==="evaluating"&&headTopData.handleChangeModeType("evaluating"),headTopData.showBack=!1):setTimeout(()=>{headTopData.modeType="init"},500))},C=N=>{var Q,_,U;((Q=N==null?void 0:N.data)==null?void 0:Q.api)==="setPlayState"&&togglePlay("paused","courseware"),state$1.platform===IPlatform.PC&&((_=N==null?void 0:N.data)==null||_.api),((U=N==null?void 0:N.data)==null?void 0:U.api)==="imagePos"&&N!=null&&N.data.data&&(state$1.playBtnDirection=N.data.data==="right"?"right":"left",state$1.musicScoreBtnDirection=state$1.playBtnDirection)},M="settingBoxClass_drag",B=(O=storeData.user)!=null&&O.id?String((z=storeData.user)==null?void 0:z.id):"",I=state$1.platform!==IPlatform.PC?{styleDrag:{value:null}}:useDrag([`${M} .top_drag`,`${M} .bom_drag`],M,toRef(headTopData,"settingMode"),B);onMounted(()=>{T(),window.addEventListener("message",C),state$1.platform===IPlatform.PC?s.value=!0:o.value=!0}),onUnmounted(()=>{window.removeEventListener("message",C)}),watch(state$1.setting,()=>{console.log(state$1.setting,"state.setting"),store_legacy.set("musicscoresetting",state$1.setting)}),(async()=>{var Q;let N=null;try{const _=await getGuidance({guideTag:"guideInfo"});_.data?N=JSON.parse((Q=_.data)==null?void 0:Q.guideValue)||null:N={},state$1.guideInfo=N}catch(_){console.log(_)}})();const D=async()=>{state$1.guideInfo.teacherDrag=!0;try{const N=await setGuidance({guideTag:"guideInfo",guideValue:JSON.stringify(state$1.guideInfo)})}catch(N){console.log(N)}};return()=>createVNode(Fragment,null,[createVNode("div",{class:[styles$h.headerTop,state$1.platform===IPlatform.PC&&styles$h.headRightTop,state$1.platform===IPlatform.PC&&!state$1.attendHideMenu&&styles$h.headRightTopHide],onClick:N=>{N.stopPropagation(),state$1.platform===IPlatform.PC&&window.parent.postMessage({api:"onAttendToggleMenu"},"*")}},[createVNode("div",{class:[styles$h.back,"headTopBackBtn",!headTopData.showBack&&styles$h.hidenBack],onClick:P},[createVNode("img",{src:iconBack$1},null)]),r.iscurseplay==="play"||state$1.platform===IPlatform.PC?null:createVNode(Title,{class:"pcTitle",text:state$1.examSongName,rightView:!1},null),createVNode("div",{class:[styles$h.headRight,state$1.platform===IPlatform.PC&&styles$h.pcHeadRight],onClick:N=>{N.stopPropagation()}},[createVNode("div",{id:state$1.platform===IPlatform.PC?"teacherTop-0":"studnetT-0",style:{display:m.value.display?"":"none"},class:[styles$h.btn,m.value.disabled&&styles$h.disabled],onClick:()=>{handleRessetState(),headTopData.modeType="init"}},[createVNode("img",{class:styles$h.iconBtn,src:headImg("modeType.svg")},null),createVNode("span",null,[createTextVNode("模式")])]),state$1.isSingleLine?null:createVNode("div",{class:[styles$h.btn,state$1.platform===IPlatform.PC?styles$h.pcBtn:""],onClick:()=>{let N=metronomeData.cursorMode;["follow"].includes(state$1.modeType)?N=metronomeData.cursorMode===1?3:1:N=metronomeData.cursorMode===3?1:metronomeData.cursorMode+1,metronomeData.cursorMode=N}},[createVNode("img",{class:styles$h.iconBtn,src:headImg(metronomeData.cursorMode===1?"cursor-icon-1.svg":metronomeData.cursorMode===2?"cursor-icon-2.svg":metronomeData.cursorMode===3?"cursor-icon-3.svg":"")},null),createVNode("span",{class:styles$h.iconContent},[metronomeData.cursorMode===1?"音符指针":metronomeData.cursorMode===2?"节拍指针":metronomeData.cursorMode===3?"关闭指针":"",metronomeData.cursorTips&&createVNode(Fragment,null,[createVNode("i",{class:styles$h.arrowIcon},null),createVNode("div",{class:[styles$h["botton-tips"],metronomeData.cursorMode===3?styles$h.tipSpec:""]},[metronomeData.cursorTips])])])]),state$1.musicRendered&&!r.lessonTrainingId&&!r.questionId&&state$1.isConcert&&createVNode("div",{class:[styles$h.btn,state$1.playState==="play"&&u.value.disabled&&styles$h.disabled],onClick:()=>{toggleMusicSheet.toggle(!0)}},[createVNode("img",{class:styles$h.iconBtn,src:headImg("shenggui.svg")},null),createVNode("span",null,[createTextVNode("声轨")])]),createVNode("div",{id:state$1.platform===IPlatform.PC?"teacherTop-1":"studnetT-1",style:{display:g.value.display?"":"none"},class:[styles$h.btn,g.value.disabled&&styles$h.disabled],onClick:()=>{state$1.playSource=state$1.playSource==="music"?"background":"music"}},[createVNode("img",{style:{display:state$1.playSource==="music"?"":"none"},class:styles$h.iconBtn,src:headImg("music.svg")},null),createVNode("img",{style:{display:state$1.playSource==="music"?"none":""},class:styles$h.iconBtn,src:headImg("background.svg")},null),createVNode("span",null,[state$1.playSource==="music"?"原声":"伴奏"])]),state$1.modeType!=="evaluating"&&createVNode("div",{class:[styles$h.btn],onClick:async()=>{var N;metronomeData.disable=!metronomeData.disable,(N=metronomeData.metro)==null||N.initPlayer()}},[createVNode("img",{style:{display:metronomeData.disable?"block":"none"},class:styles$h.iconBtn,src:headImg("tickoff.svg")},null),createVNode("img",{style:{display:metronomeData.disable?"none":"block"},class:styles$h.iconBtn,src:headImg("tickon.svg")},null),createVNode("span",{style:{whiteSpace:"nowrap"}},[createTextVNode("节拍器")])]),createVNode("div",{id:state$1.platform===IPlatform.PC?"teacherTop-2":"studnetT-2",style:{display:d.value.display?"":"none"},class:[styles$h.btn,d.value.disabled&&styles$h.disabled],onClick:()=>handleChangeSection()},[createVNode("img",{style:{display:state$1.section.length===0?"":"none"},class:styles$h.iconBtn,src:headImg("section0.svg")},null),createVNode("img",{style:{display:state$1.section.length===1?"":"none"},class:styles$h.iconBtn,src:headImg("section1.svg")},null),createVNode("img",{style:{display:state$1.section.length===2?"":"none"},class:styles$h.iconBtn,src:headImg("section2.svg")},null),createVNode("span",null,[createTextVNode("选段")])]),createVNode("div",{id:state$1.platform===IPlatform.PC?"teacherTop-3":"studnetT-3",style:{display:u.value.display?"":"none"},class:[styles$h.btn,u.value.disabled&&styles$h.disabled],onClick:()=>{state$1.setting.displayFingering=!state$1.setting.displayFingering}},[createVNode("img",{style:{display:state$1.setting.displayFingering?"":"none"},class:styles$h.iconBtn,src:headImg("icon_evaluatingOn.svg")},null),createVNode("img",{style:{display:state$1.setting.displayFingering?"none":""},class:styles$h.iconBtn,src:headImg("icon_evaluatingOff.svg")},null),createVNode("span",null,[createTextVNode("指法")])]),createVNode(Popover,{trigger:"manual",show:headData.speedShow,"onUpdate:show":N=>headData.speedShow=N,placement:state$1.platform===IPlatform.PC?"top":"bottom",overlay:!1,offset:state$1.platform===IPlatform.PC?[8,40]:[0,8]},{reference:()=>createVNode("div",{id:state$1.platform===IPlatform.PC?"teacherTop-4":"studnetT-4",style:{display:c.value.display?"":"none"},class:[styles$h.btn,c.value.disabled&&styles$h.disabled],onClick:N=>{N.stopPropagation(),headData.speedShow=!headData.speedShow}},[createVNode(Badge,{class:styles$h.badge,content:state$1.playState==="play"?Math.floor(state$1.playIngSpeed):Math.floor(state$1.speed)},{default:()=>[createVNode("img",{class:styles$h.iconBtn,src:headImg("icon_speed.svg")},null)]}),createVNode("span",null,[createTextVNode("速度")])]),default:()=>createVNode(Speed,null,null)}),state$1.enableNotation?createVNode(Popover,{trigger:"manual",show:headData.musicTypeShow,"onUpdate:show":N=>headData.musicTypeShow=N,class:state$1.platform===IPlatform.PC&&styles$h.pcTransPop,placement:state$1.platform===IPlatform.PC?"top-end":"bottom-end",overlay:!1,offset:state$1.platform===IPlatform.PC?[0,40]:[0,8]},{reference:()=>createVNode("div",{id:state$1.platform===IPlatform.PC?"teacherTop-5":"studnetT-5",style:{display:l.value.display?"":"none"},class:[styles$h.btn,l.value.disabled&&styles$h.disabled],onClick:N=>{N.stopPropagation(),headData.musicTypeShow=!headData.musicTypeShow}},[createVNode("img",{class:styles$h.iconBtn,src:headImg("icon_zhuanpu.svg")},null),createVNode("span",null,[state$1.musicRenderType==="staff"?"转简谱":"转五线谱"])]),default:()=>createVNode(MusicType,null,null)}):null,createVNode("div",{id:state$1.platform===IPlatform.PC?"teacherTop-6":"studnetT-6",style:{display:a.value.display?"":"none"},class:[styles$h.btn,styles$h.setBtn,a.value.disabled&&styles$h.disabled],onClick:()=>headTopData.settingMode=!0},[createVNode("img",{class:styles$h.iconBtn,src:headImg("icon_menu.svg")},null),createVNode("span",null,[createTextVNode("设置")])])])]),createVNode("div",{id:"studnetT-7",style:{display:y.value.display?"":"none"},class:[styles$h.btn,styles$h.playBtn,y.value.disabled&&styles$h.disabled,state$1.platform===IPlatform.PC&&state$1.musicScoreBtnDirection==="left"?styles$h.playLeftButton:state$1.platform===IPlatform.PC&&state$1.musicScoreBtnDirection==="right"?styles$h.playRightButton:"",state$1.platform===IPlatform.PC&&!state$1.attendHideMenu&&styles$h.playButtonHide],onClick:()=>togglePlay()},[createVNode("div",{class:styles$h.btnWrap},[createVNode("img",{style:{display:state$1.playState==="play"?"none":""},class:styles$h.iconBtn,src:headImg(state$1.platform===IPlatform.PC?"pc_icon_playbtn.png":"icon_play.svg")},null),createVNode("img",{style:{display:state$1.playState==="play"?"":"none"},class:styles$h.iconBtn,src:headImg(state$1.platform===IPlatform.PC?"pc_icon_pausebtn.png":"icon_pause.svg")},null),createVNode(Circle,{style:{opacity:state$1.playState==="play"?1:0},class:styles$h.progress,"stroke-width":80,currentRate:state$1.playProgress,rate:100,color:"#FFC830"},null)])]),createVNode("div",{id:"tips-step-9",style:{display:b.value.display?"":"none"},class:[styles$h.btn,styles$h.resetBtn,b.value.disabled&&styles$h.disabled,state$1.platform===IPlatform.PC&&state$1.musicScoreBtnDirection==="left"?styles$h.pauseLeftButton:state$1.platform===IPlatform.PC&&state$1.musicScoreBtnDirection==="right"?styles$h.pauseRightButton:"",state$1.platform===IPlatform.PC&&!state$1.attendHideMenu&&styles$h.playButtonHide],onClick:()=>handleResetPlay()},[createVNode("img",{class:styles$h.iconBtn,src:headImg(state$1.platform===IPlatform.PC?"pc_icon_resetbtn.png":"icon_resetbtn.svg")},null)]),createVNode(Popup$1,{show:headTopData.settingMode,"onUpdate:show":N=>headTopData.settingMode=N,class:"popup-custom van-scale center-closeBtn settingBoxClass_drag",transition:"van-scale",teleport:"body",closeable:!0,style:I.styleDrag.value},{default:()=>{var N;return[createVNode(Settting,null,null),state$1.platform===IPlatform.PC&&createVNode(Dragbom,{showGuide:!((N=state$1.guideInfo)!=null&&N.teacherDrag),onGuideDone:D},null)]}}),createVNode(ModeTypeMode,null,null),S.value&&!r.isCbs&&E.value&&createVNode(TeacherTop,null,null),A.value&&!r.isCbs&&E.value&&createVNode(StudentTop,null,null)])}}),workHomeRef=ref(),data=reactive({trainingType:"",worke:{}}),HANDLE_WORK_ADD=()=>{var i;data.trainingType==="PRACTICE"&&((i=workHomeRef.value)==null||i.handleAdd())},WorkIndex=defineComponent({name:"workIndex",setup(i){const e=getQuery(),r=()=>{if(!data.trainingType)return;const o=data.trainingType==="PRACTICE"?"practise":"evaluating";headTopData.handleChangeModeType(o)},s=async()=>{const o=await api_lessonTrainingTrainingStudentDetail(e.workRecord);(o==null?void 0:o.code)===200&&(data.trainingType=o.data.trainingType,data.worke=o.data,r())};return watch(()=>evaluatingData.jsonLoadDone,()=>{data.trainingType==="EVALUATION"&&evaluatingData.jsonLoading&&evaluatingData.jsonLoadDone&&headTopData.handleChangeModeType("evaluating")}),onMounted(()=>{s()}),()=>createVNode(Fragment,null,[data.trainingType==="PRACTICE"&&createVNode(WorkHome,{ref:workHomeRef,workeData:data.worke},null),data.trainingType==="EVALUATION"&&createVNode(WorkEaluating,{workeData:data.worke},null)])}}),browserInfo$1=browser();let socketStartTime=0;const popImgs={icon_bg,icon_close,icon_btn:icon_btn$1,icon_success},evaluatingData=reactive({contentData:{},rendered:!1,earphone:!1,soundEffect:!1,soundEffectFrequency:0,checkStep:0,checkEnd:!1,earphoneMode:!1,soundEffectMode:!1,websocketState:!1,startBegin:!1,backtime:0,evaluatings:{},resultData:{},resulstMode:!1,isComplete:!1,isDisabledPlayMusic:!1,socketErrorPop:!1,errorContents:"",socketErrorStatus:0,delayCheckSocketError:!1,isErrorState:!1,accompanyErrorType:"",isAudioPlayEnd:!1,preloadJson:!0,jsonLoading:!1,jsonLoadDone:!1,hideResultModal:!1}),sendOffsetTime=async i=>{var r;const e=await api_getDeviceDelay();api_midiMicDelay({header:{commond:"audioPlayStart",type:"SOUND_COMPARE"},body:{offsetTime:i,micDelay:(r=e==null?void 0:e.content)==null?void 0:r.value}})},handleStartEvaluat=async()=>{var i;if(state$1.modeType==="evaluating")handleCancelEvaluat();else if(state$1.platform!=="PC"){const e=await api_checkSocketStatus();((i=e==null?void 0:e.content)==null?void 0:i.status)==="connected"&&handleStopPlay()}else handleStopPlay();state$1.modeType=state$1.modeType==="evaluating"?"practise":"evaluating",state$1.modeType!=="evaluating"&&(evaluatingData.rendered=!1)},startCheckDelay=async()=>{var e;const i=await api_checkSocketStatus();return((e=i==null?void 0:i.content)==null?void 0:e.status)==="connected"?new Promise(r=>{r({checked:!0})}):(socketStartTime=+new Date,evaluatingData.socketErrorPop=!0,evaluatingData.socketErrorStatus=1,new Promise(r=>{r({checked:!1})}))},check_currentTime=()=>{let i=0;if(state$1.isSelectMeasureMode&&(i=state$1.section[0].time*1e3),getAudioCurrentTime()*1e3-i>=500){sendEvaluatingOffsetTime(500);return}setTimeout(()=>{check_currentTime()},10)},sendEvaluatingOffsetTime=async i=>{if(!evaluatingData.backtime)return;const r=Date.now()-evaluatingData.backtime-i;console.error("真正播放延迟",r,"currentTime:",i),await api_proxyServiceMessage({header:{commond:"audioPlayStart",type:"SOUND_COMPARE"},body:{offsetTime:r<0?0:r,micDelay:0}})},checkUseEarphone=async()=>{var e;const i=await getEarphone();return((e=i==null?void 0:i.content)==null?void 0:e.checkIsWired)||!1},handleEndSoundCheck=()=>{endSoundCheck()},connectWebsocket=async i=>{evaluatingData.contentData=i,evaluatingData.websocketState=!0},handlePerformDetection=async()=>{if(!evaluatingData.checkEnd){if(evaluatingData.checkStep===0){if(evaluatingData.checkStep=5,state$1.setting.soundEffect){evaluatingData.soundEffectMode=!0;return}const i=await api_getDeviceDelay();if(console.log("🚀 ~ delayTime:",i),!i){evaluatingData.soundEffectMode=!0;return}handlePerformDetection();return}if(evaluatingData.checkStep=5){if(evaluatingData.checkStep=10,!await checkUseEarphone()){evaluatingData.earphoneMode=!0;return}handlePerformDetection();return}evaluatingData.checkStep===10&&(evaluatingData.checkEnd=!0)}},addMeasureScore=(i,e=!0)=>{for(let r in evaluatingData.evaluatings)evaluatingData.evaluatings[r].show=!1;evaluatingData.evaluatings[i.measureRenderIndex]={...i,leve:getLeveByScoreMeasure(i.score),show:e}},handleScoreResult=i=>{if(console.log("返回",i),i!=null&&i.content){const{header:e,body:r}=i.content;e.commond==="checking"&&(evaluatingData.soundEffectFrequency=r.frequency),(e==null?void 0:e.commond)==="measureScore"&&(console.log("🚀 ~ 评测返回:",i),addMeasureScore(r)),(e==null?void 0:e.commond)==="overall"&&(console.log("🚀 ~ 评测返回:",i),state$1.isHideEvaluatReportSaveBtn=!1,setTimeout(()=>{data.trainingType==="EVALUATION"&&!evaluatingData.isComplete?evaluatingData.hideResultModal=!0:evaluatingData.hideResultModal=!1,evaluatingData.resulstMode=!evaluatingData.isErrorState},200),evaluatingData.resultData={...r,...getLeveByScore(r.score)},closeToast())}},handleStartBegin=async i=>{var s,o;state$1.isAppPlay&&await api_cloudSetCurrentTime({currentTime:0,songID:state$1.examSongId}),evaluatingData.isComplete=!1,evaluatingData.evaluatings={},evaluatingData.resultData={},evaluatingData.backtime=0,resetPlaybackToStart(),evaluatingData.isAudioPlayEnd=!1;const e=await startEvaluating(evaluatingData.contentData);if((e==null?void 0:e.api)!=="startEvaluating"){Snackbar$1.error("请在APP端进行评测"),evaluatingData.startBegin=!1;return}if((s=e==null?void 0:e.content)!=null&&s.reson){showToast((o=e.content)==null?void 0:o.des),evaluatingData.startBegin=!1;return}if(evaluatingData.startBegin=!0,evaluatingData.isDisabledPlayMusic){if(state$1.playState=state$1.playState==="paused"?"play":"paused",state$1.playState==="play"&&state$1.needTick){const a=await handleStartTick();if(console.log("🚀 ~ tickend:",a),!a){state$1.playState="paused",evaluatingData.startBegin=!1;return}}onPlay()}if(evaluatingData.isErrorState)return;let r=state$1.speed/state$1.originSpeed;r=parseFloat(r.toFixed(2)),await api_startRecordingCb({accompanimentState:state$1.setting.enableAccompaniment?1:0,firstNoteTime:i||0,speedRate:r},()=>{state$1.isAppPlay&&setTimeout(()=>{sendOffsetTime(0)},300)}),state$1.setting.camera&&(console.log("开始录制视频"),await api_startCapture()),state$1.isAppPlay&&(await api_cloudChangeSpeed({speed:state$1.originSpeed,originalSpeed:state$1.originSpeed,songID:state$1.examSongId}),audioData$1.progress=0,audioListStart(state$1.playState))},playMusic=async()=>{if(!await togglePlay("play")){evaluatingData.startBegin=!1,handleCancelEvaluat();return}check_currentTime(),state$1.setting.camera&&(console.log("开始录制视频"),api_startCapture())},recordStartTimePoint=async i=>{var r;if(console.error("开始录音"),!evaluatingData.startBegin)return;let e=((r=i==null?void 0:i.content)==null?void 0:r.inteveral)||0;browserInfo$1.ios&&(e*=1e3),evaluatingData.backtime=e||Date.now(),console.log("🚀 ~ 开始时间点:",evaluatingData.backtime,"已经录的时间:",Date.now()-e,"记录时间点:",Date.now()),!evaluatingData.isDisabledPlayMusic&&playMusic()},handleEndEvaluat=(i=!1)=>{!evaluatingData.startBegin||state$1.modeType!=="evaluating"||(console.log("评测结束1"),endEvaluating({musicScoreId:state$1.examSongId}),!i&&data.trainingType==="EVALUATION"?showToast({message:"完整演奏结束才算作业分数!"}):showLoadingToast({message:"评分中",duration:0,overlay:!0,overlayClass:styles$m.scoreMode}),setTimeout(()=>{evaluatingData.startBegin=!1},500),evaluatingData.isComplete=i,state$1.setting.camera&&(console.log("结束录制视频"),api_endCapture()))},handleEndBegin=()=>{handleEndEvaluat(),handleStopPlay()},handleCancelEvaluat=i=>{evaluatingData.evaluatings={},evaluatingData.startBegin=!1,closeToast(),api_proxyServiceMessage({header:{commond:"recordCancel",type:"SOUND_COMPARE",status:200}}),cancelEvaluating(),handleStopPlay(),console.log("评测结束2"),endEvaluating({musicScoreId:state$1.examSongId}),state$1.setting.camera&&(console.log("结束录制视频"),api_endCapture())},handleViewReport=(i,e)=>{var o;const r=((o=evaluatingData.resultData)==null?void 0:o[i])||"";let s="";switch(e){case"gym":s=location.origin+location.pathname+"#/report/"+r;break;case"orchestra":s=location.origin+location.pathname+"report-share.html?id="+r;break;case"instrument":s=location.origin+location.pathname+"#/evaluat-report?id="+r+"&musicRenderType="+state$1.musicRenderType;break;default:s=location.origin+location.pathname+"report-share.html?id="+r;break}api_openWebView({url:s,orientation:0,isHideTitle:!0,statusBarTextColor:!1,isOpenLight:!0,c_orientation:0})},handleComplexButton=i=>{console.log("监听是否隐藏保存按钮",i),i!=null&&i.content&&(i.content,state$1.isHideEvaluatReportSaveBtn=!0)},handleAccompanyError=i=>{if(console.log("异常信息返回",i),i!=null&&i.content){const{type:e,reson:r}=i.content;switch(e){case"enterBackground":case"playError":case"socketError":if(evaluatingData.soundEffectMode){evaluatingData.socketErrorStatus=0,evaluatingData.delayCheckSocketError=!0,evaluatingData.socketErrorPop=e==="socketError",evaluatingData.accompanyErrorType=e;return}state$1.modeType==="evaluating"&&evaluatingData.startBegin&&handleCancelEvaluat(),tickData.show&&(tickData.tickEnd=!0,tickData.show=!1),evaluatingData.socketErrorStatus=0,evaluatingData.socketErrorPop=e==="socketError",evaluatingData.isErrorState=!0,evaluatingData.accompanyErrorType=e,resetPlaybackToStart();break}}},handleSocketStatus=i=>{var e;if(((e=i==null?void 0:i.content)==null?void 0:e.status)==="connected"){const r=+new Date;evaluatingData.delayCheckSocketError=!1;const s=r-socketStartTime;if(s<1e3){const o=1e3-s;console.log(o,99999),setTimeout(()=>{evaluatingData.socketErrorStatus=2},o)}}},hanldeConfirmPop=async()=>{api_checkSocketStatus(),evaluatingData.socketErrorStatus=1,socketStartTime=+new Date},hanldeClosePop=()=>{evaluatingData.socketErrorPop=!1,evaluatingData.socketErrorStatus=0},Evaluating=defineComponent({name:"evaluating",setup(){const i=usePageVisibility(),e=reactive({finger:!1,play_mode:"",enableAccompaniment:!0}),r=()=>{e.finger=state$1.setting.displayFingering,state$1.setting.displayFingering=!1,e.play_mode=state$1.playSource,e.enableAccompaniment=state$1.setting.enableAccompaniment,e.enableAccompaniment||(console.log("关闭伴奏"),toggleMutePlayAudio(e.play_mode==="music"?"music":"background",!0))},s=()=>{state$1.setting.displayFingering=e.finger,state$1.playSource=e.play_mode,e.enableAccompaniment||toggleMutePlayAudio(e.play_mode==="music"?"music":"background",!1)};return watch(i,o=>{o=="hidden"&&evaluatingData.startBegin}),watch(()=>evaluatingData.socketErrorStatus,()=>{evaluatingData.socketErrorStatus===2&&setTimeout(()=>{evaluatingData.socketErrorPop=!1},1e3)}),onMounted(()=>{resetPlaybackToStart(),r(),evaluatingData.resultData={},evaluatingData.evaluatings={},evaluatingData.soundEffectFrequency=0,evaluatingData.checkStep=0,evaluatingData.rendered=!0,sendResult(handleScoreResult),hideComplexButton(handleComplexButton,!0),api_recordStartTime(recordStartTimePoint),addAccompanyError(handleAccompanyError),addSocketStatus(handleSocketStatus),state$1.isSelectMeasureMode||clearSelection(),console.log("加载评测模块成功")}),onUnmounted(()=>{evaluatingData.checkEnd=!1,evaluatingData.rendered=!1,resetPlaybackToStart(),removeResult(handleScoreResult),hideComplexButton(()=>{},!1),api_remove_recordStartTime(recordStartTimePoint),s(),removeAccompanyError(handleAccompanyError),removeSocketStatus(handleSocketStatus),api_disconnectSocket(),console.log("卸载评测模块成功")}),()=>createVNode("div",null,[createVNode("div",{class:styles$m.hiddenPop},[createVNode("img",{src:popImgs.icon_bg},null),createVNode("img",{src:popImgs.icon_btn},null),createVNode("img",{src:popImgs.icon_success},null),createVNode("img",{src:popImgs.icon_close},null)]),createVNode(Popup$1,{teleport:"body",closeOnClickOverlay:!1,class:["popup-custom","van-scale"],transition:"van-scale",show:evaluatingData.socketErrorPop,"onUpdate:show":o=>evaluatingData.socketErrorPop=o},{default:()=>[createVNode(AbnormalPop,{onConfirm:hanldeConfirmPop,onClose:hanldeClosePop},null)]})])}}),scriptRel="modulepreload",assetsURL=function(i,e){return new URL(i,e).href},seen={},__vitePreload=function i(e,r,s){if(!r||r.length===0)return e();const o=document.getElementsByTagName("link");return Promise.all(r.map(a=>{if(a=assetsURL(a,s),a in seen)return;seen[a]=!0;const l=a.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(!!s)for(let g=o.length-1;g>=0;g--){const m=o[g];if(m.href===a&&(!l||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${c}`))return;const d=document.createElement("link");if(d.rel=l?"stylesheet":scriptRel,l||(d.as="script",d.crossOrigin=""),d.href=a,document.head.appendChild(d),l)return new Promise((g,m)=>{d.addEventListener("load",g),d.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>e())},relationships={flute:{59:[27,26,25,15,24,22,17,20],60:[27,26,25,15,24,22,17,20],61:[27,26,25,15,24,22,17,21],62:[27,26,25,15,24,22,17],63:[27,26,25,15,24,22,17,19],64:[27,26,25,15,24,22,19],65:[27,26,25,15,24,19],66:[27,26,25,15,17,19],67:[27,26,25,15,19],68:[27,26,25,15,18,19],69:[27,26,15,19],70:[[27,14,19],[27,24,15,19]],71:[27,15,19],72:[27,19],73:[19],74:[26,25,24,22,17,15],75:[26,25,24,22,17,19,15],76:[27,26,25,15,24,22,19],77:[27,26,25,15,24,19],78:[27,26,25,15,17,19],79:[27,26,25,15,19],80:[27,26,25,15,18,19],81:[27,26,15,19],82:[[27,14,19],[27,24,15,19]],83:[27,15,19],84:[27,19],85:[19],86:[26,25,15,19],87:[27,26,25,15,24,22,17,18,19],88:[27,26,15,24,22,19],89:[27,25,24,15,19],90:[27,25,17,15,19],91:[27,26,25,19],92:[26,25,18,19],93:[26,24,15,19],94:[23,24,15,19],95:[27,25,15,16],96:[27,26,25,18,24,19]},clarinet:{52:[[3,4,6,8,9,11,14,18,20],[3,4,6,8,9,11,14,20]],53:[[3,4,6,8,9,11,12,20],[3,4,6,8,9,11,18,20]],54:[[3,4,6,8,9,11,13,18,20],[3,4,6,8,9,11,13,20],[3,4,6,8,9,11,15]],55:[3,4,6,8,9,11,20],56:[3,4,6,8,9,11,16,20],57:[3,4,6,8,9,20],58:[3,4,6,8,20],59:[[3,4,6,9,20],[3,4,6,8,10,20]],60:[3,4,6,20],61:[3,4,6,7,20],62:[3,4,20],63:[[3,4,20,24],[3,4,5,20],[3,8,20]],64:[3,20],65:[20],66:[[3],[20,23,24]],67:[],68:[2],69:[1],70:[1,19],71:[[3,4,6,8,9,11,14,18,19,20],[3,4,6,8,9,11,14,19,20]],72:[[3,4,6,8,9,11,12,19,20],[3,4,6,8,9,11,18,19,20]],73:[[3,4,6,8,9,11,13,19,20],[3,4,6,8,9,11,13,18,19,20],[3,4,6,8,9,11,15,19,20]],74:[3,4,6,8,9,11,19,20],75:[3,4,6,8,9,11,16,19,20],76:[3,4,6,8,9,19,20],77:[3,4,6,8,19,20],78:[[3,4,6,9,19,20],[3,4,6,8,10,19,20]],79:[3,4,6,19,20],80:[3,4,6,7,19,20],81:[3,4,19,20],82:[[3,4,19,20,24],[3,4,5,19,20],[3,4,8,19,20]],83:[3,19,20],84:[19,20],85:[4,6,8,9,19,20],86:[4,6,8,16,19,20],87:[[4,6,8,10,16,19,20],[4,6,9,16,19,20]],88:[4,6,16,19,20],89:[4,6,7,16,19,20]},trumpet:{0:[1,2,3],54:[4,5,6],55:[4,2,6],56:[1,5,6],57:[4,5,3],58:[4,2,3],59:[1,5,3],60:[1,2,3],61:[4,5,6],62:[4,2,6],63:[1,5,6],64:[4,5,3],65:[4,2,3],66:[1,5,3],67:[1,2,3],68:[1,5,6],69:[4,5,3],70:[4,2,3],71:[1,5,3],72:[1,2,3],73:[4,5,3],74:[4,2,3],75:[1,5,3],76:[1,2,3],77:[4,2,3],78:[1,4,3],79:[1,2,3],80:[1,5,6],81:[4,5,3],82:[4,2,3],83:[1,5,3],84:[1,2,3]},horn:{53:[1],54:[2],55:[],56:[2,3],57:[1,2],58:[1],59:[2],60:[],61:[1,2],62:[1],63:[2],64:[],65:[1],66:[2],67:[],68:[0,2,3],69:[0,1,2],70:[0,1],71:[0,2],72:[0],73:[0,2,3],74:[0,1,2],75:[0,1],76:[0,2],77:[0],78:[0,2],79:[0],80:[0,2,3],81:[0,1,2],82:[0,1],83:[0,2],84:[0]},"up-bass-horn":{0:[1,2,3],40:[4,5,6],41:[4,2,6],42:[1,5,6],43:[4,5,3],44:[4,2,3],45:[1,5,3],46:[1,2,3],47:[4,5,6],48:[4,2,6],49:[1,5,6],50:[4,5,3],51:[4,2,3],52:[1,5,3],53:[1,2,3],54:[1,5,6],55:[4,5,3],56:[4,2,3],57:[1,5,3],58:[1,2,3],59:[4,5,3],60:[4,2,3],61:[1,5,3],62:[1,2,3],63:[4,2,3],64:[1,5,3],65:[1,2,3],66:[1,5,6],67:[4,5,3],68:[4,2,3],69:[1,5,3],70:[1,2,3]},trombone:{0:[1],40:[22],41:[11],42:[5],43:[4],44:[3],45:[2],46:[1],47:[22],48:[11],49:[5],50:[4],51:[3],52:[2],53:[1],54:[5],55:[4],56:[3],57:[2],58:[1],59:[4],60:[3],61:[2],62:[1],63:[3],64:[2],65:[1],66:[5],67:[4],68:[3],69:[2],70:[1]},saxophone:{58:[2,4,5,13,17,18,19,23],59:[2,4,5,11,17,18,19,23],60:[2,4,5,17,18,19,23],61:[2,4,5,12,17,18,19,23],62:[2,4,5,17,18,19],63:[2,4,5,17,18,19,22],64:[2,4,5,17,18],65:[2,4,5,17],66:[[2,4,5,18],[2,4,5,17,21]],67:[2,4,5],68:[2,4,5,10],69:[2,4],70:[[2,4,16],[2,17],[2,3]],71:[2],72:[[4],[2,15]],73:[],74:[2,4,5,6,17,18,19],75:[2,4,5,6,17,18,19,22],76:[2,4,5,6,17,18],77:[2,4,5,6,17],78:[[2,4,5,6,18],[2,4,5,6,17,21]],79:[2,4,5,6],80:[2,4,5,6,10],81:[2,4,6],82:[[2,4,6,16],[2,6,17],[2,3,6]],83:[2,6],84:[[4,6],[2,6,15]],85:[6],86:[6,9],87:[6,7,8],88:[6,8,9,14],89:[[6,7,8,9,14],[1,4,6]]},tuba:{0:[1,2,3],28:[4,5,6],29:[4,2,6],30:[1,5,6],31:[4,5,3],32:[4,2,3],33:[4,2,6],34:[1,2,3],35:[4,5,6],36:[4,2,6],37:[1,5,6],38:[4,5,3],39:[4,2,3],40:[1,5,3],41:[1,2,3],42:[1,5,6],43:[4,5,3],44:[4,2,3],45:[1,5,3],46:[1,2,3],47:[4,5,3],48:[4,2,3],49:[1,5,3],50:[1,2,3],51:[4,2,3],52:[1,5,3],53:[1,2,3],54:[1,5,6],55:[4,5,3],56:[4,2,3],57:[1,5,3],58:[1,2,3]},piccolo:{60:[11,2,33,4,5,6,7,8],61:[11,2,33,4,5,6,7,88],62:[11,2,33,4,5,6,7],63:[11,2,33,4,5,6,77],64:[11,2,33,4,5,6],65:[11,2,33,4,5],66:[11,2,33,4,6,7],67:[11,2,33,4],68:[11,2,33,5,6,77],69:[11,2,33],70:[[11,2,4,5],[1,11,2,4,6,7]],71:[[11,2],[11,33,4]],72:[11,33],73:[[2,33],[11]],74:[33],75:[33,4,5,6,7],76:[1,2,33,4,5,6],77:[1,2,33,4,5],78:[1,2,33,4,6,8],79:[1,2,33,4],80:[1,2,33,4,6,7,8],81:[1,2,33],82:[1,2,33,5,6,7],83:[1,2,33,5,6],84:[1,2,5,6],85:[1,2,4,5,7,8,100],86:[1,2,4,5,7,8]},"small-drum":{0:["active","active-left","active-right"],64:["left","right"]},hulusi:{64:[7,6,5,4,3,2,11,91],65:[7,6,5,4,3,2,1,91],66:[7,6,5,4,3,2,91],67:[7,6,5,4,3,2,11,92],68:[7,6,5,4,3,2,1,92],69:[7,6,5,4,3,2,93],70:[7,6,5,4,3,11,93],71:[7,6,5,4,3,93],72:[7,6,5,4,95],73:[7,6,5,3,2,95],74:[7,6,5,95],75:[7,6,4,3,95],76:[7,6,95],77:[7,5,4,3,2,94],78:[7,5,4,94],79:[7,94],80:[6,94],81:[96]},pan:{55:[21],57:[20],59:[19],60:[18],62:[17],64:[16],65:[15],67:[14],69:[13],71:[12],72:[11],74:[10],76:[9],77:[8],79:[7],81:[6],83:[5],84:[4],86:[3],88:[2],89:[1]},ocarina:{57:[1,2,3,4,5,6,7,8,9,10,11,12],58:[1,2,3,4,5,6,8,9,10,11,12],59:[1,2,4,5,6,7,8,9,10,11,12],60:[1,2,4,5,6,8,9,10,11,12],61:[1,2,4,5,6,7,8,9,11,12],62:[1,2,4,5,6,8,9,11,12],63:[1,2,4,5,6,9,11,12],64:[1,2,4,5,6,8,11,12],65:[1,2,4,5,6,11,12],66:[1,2,4,6,9,11,12],67:[1,2,4,6,11,12],68:[1,2,6,9,11,12],69:[1,2,6,11,12],70:[1,6,9,11,12],71:[1,6,11,12],72:[6,11,12],73:[6,9,12],74:[6,12],75:[6,9],76:[6],77:[]},melodica:{53:[1],54:[101],55:[2],56:[102],57:[3],58:[103],59:[4],60:[5],61:[104],62:[6],63:[105],64:[7],65:[8],66:[106],67:[9],68:[107],69:[10],70:[108],71:[11],72:[12],73:[109],74:[13],75:[110],76:[14],77:[15],78:[111],79:[16],80:[112],81:[17],82:[113],83:[18],84:[19]},baroqueRecorder:{60:[11,2,33,4,5,6,7,8],61:[11,2,33,4,5,6,7,88],62:[11,2,33,4,5,6,7],63:[11,2,33,4,5,6,77],64:[11,2,33,4,5,6],65:[11,2,33,4,5,7,8],66:[11,2,33,4,6,7],67:[11,2,33,4],68:[11,2,33,5,6,77],69:[11,2,33],70:[11,2,4,5],71:[11,2],72:[11,33],73:[2,33],74:[33],75:[33,4,5,6,7],76:[1,2,33,4,5,6],77:[1,2,33,4,5,7],78:[1,2,33,4,6],79:[1,2,33,4],80:[1,2,33,5],81:[1,2,33],82:[1,2,33,5,6,7],83:[1,2,33,5,6],84:[1,2,5,6],85:[1,2,4,5,7,8,100],86:[1,2,4,5,7,8],87:[1,2,4],88:[1,2,33,4,5,6],89:[1,2,33,4,5,7],90:[1,2,33,4,6],91:[1,2,33,4],92:[1,2,33,5],93:[1,2,33],94:[1,2,33,5,6,7],95:[1,2,33,5,6],96:[1,2,5,6],97:[1,2,4,5,7,8],98:[1,2,4]}},mappingVoicePart=(i,e)=>{if(e==="GYM")return Number(i);if(e==="COLEXIU")return{Flute:2,Clarinet:4,Trombone:14,Tuba:17,Trumpet:12,Horn:13,AltoSaxophone:6,TenorSaxophone:6,Saxophone:6,UpBassHorn:15,Melodica:137,HulusiFlute:136,PanFlute:135,Ocarina:134,Recorder:120,Ukulele:130,Mouthorgan:140,Piano:150}[i];if(e==="ORCHESTRA")return{1:23,2:2,3:5,4:4,5:12,6:14,7:13,8:15,9:17}[i];if(e==="INSTRUMENT"){let r=i;return typeof r=="string"&&(r=r.toLocaleLowerCase().replace(/ /g,"")),{flute:2,clarinet:4,trombone:14,tuba:17,trumpet:12,horn:13,altosaxophone:6,tenorsaxophone:6,saxophone:6,upbasshorn:15,melodica:137,hulusiFlute:136,panflute:135,recorder:120,ukulele:130,mouthorgan:140,piano:150,baroquerecorder:"baroque-recorder",4:"piccolo",3:"hulusi-flute",1:"pan-flute",2:"ocarina",5:"melodica",23:2,24:6,25:4,26:12,27:14,28:13,29:15,30:17,tenorrecorder:"piccolo",woodwind:"hulusi-flute",panpipes:"pan-flute",ocarina:"ocarina",whistling:"whistling",nai:"melodica",15:"baroque-recorder",16:"baroque-recorder"}[r]||0}else if(e==="ENSEMBLE"){let r=i;const s={Piccolo:"piccolo",Flute:2,"Flute 1":2,"Flute 2":2,Oboe:1,"Clarinet in Bb 1":4,"Clarinet in Bb 2":4,"Alto Clarinet in Eb":4,"Bass Clarinet in Bb":4,Bassoon:1,"Alto Saxophone":5,"Tenor Saxophone":5,"Baritone Saxophone":5,"Trumpet in Bb 1":12,"Trumpet in Bb 2":12,"Horn in F":13,"Horn in F 1":13,"Horn in F 2":13,"Trombone 1":14,"Trombone 2":14,"Trombone 3":14,Euphonium:15,Tuba:17,Chimes:1,Bells:1,Xylophone:1,"Snare Drum":1,"Bass Drum":1,Triangle:1,"Suspended Cymbal":1,"Crash Cymbals":1,"Concert Toms":1,Timpani:1,flute:2,oboe:4,clarinet:4,trombone:14,tuba:17,trumpet:12,horn:13,altosaxophone:6,tenorsaxophone:6,saxophone:6,upbasshorn:15,melodica:137,hulusiFlute:136,panflute:135,recorder:120,ukulele:130,mouthorgan:140,piano:150,4:"piccolo",3:"hulusi-flute",1:"pan-flute",2:"ocarina",5:"melodica",26:12,tenorrecorder:"piccolo",woodwind:"hulusi-flute",panpipes:"pan-flute",ocarina:"ocarina",nai:"melodica",BaroqueRecorder:"baroque-recorder"};let o;if(typeof r=="string"){for(let a in s)if(a===r){o=s[a];break}}else o=s.code;return o}return 0},matchVoicePart=(i,e)=>{if(e==="SINGLE")return{33:"pan-flute",34:"ocarina",35:"hulusi-flute",37:"piccolo",36:"melodica",38:"baroque-recorder",39:"whistling",1:2,5:5,3:4,11:12,13:14,12:13,14:15,16:17}[i];{let r=i;const s={Piccolo:"piccolo",Flute:2,"Flute 1":2,"Flute 2":2,Oboe:1,"Clarinet in Bb":4,"Clarinet in Bb 1":4,"Clarinet in Bb 2":4,"Alto Clarinet in Eb":4,"Bass Clarinet in Bb":4,Bassoon:1,"Alto Saxophone":5,"Tenor Saxophone":5,"Baritone Saxophone":5,"Trumpet in Bb 1":12,"Trumpet in Bb 2":12,"Horn in F":13,"Horn in F 1":13,"Horn in F 2":13,"Trombone 1":14,"Trombone 2":14,"Trombone 3":14,Euphonium:15,Tuba:17,Chimes:1,Bells:1,Xylophone:1,"Snare Drum":1,"Bass Drum":1,Triangle:1,"Suspended Cymbal":1,"Crash Cymbals":1,"Concert Toms":1,Timpani:1,flute:2,oboe:4,clarinet:4,trombone:14,tuba:17,trumpet:12,horn:13,altosaxophone:6,tenorsaxophone:6,saxophone:6,upbasshorn:15,melodica:137,hulusiFlute:136,panflute:135,recorder:120,ukulele:130,mouthorgan:140,piano:150,4:"piccolo",3:"hulusi-flute",1:"pan-flute",2:"ocarina",5:"melodica",26:12,tenorrecorder:"piccolo",woodwind:"hulusi-flute",panpipes:"pan-flute",ocarina:"ocarina",whistling:"whistling",nai:"melodica",BaroqueRecorder:"baroque-recorder","Drum Set":24,Marimba:26,Vibraphone:27,"Tubular Bells":30,Mallets:32};let o;if(typeof r=="string"){r=r.toLocaleLowerCase().replace(/ /g,"");for(let a in s){let l=a;if(typeof a=="string"&&(l=l.toLocaleLowerCase().replace(/ /g,"")),l===r){o=s[a];break}}}else o=s.code;return o}},subjectFingering=i=>{switch(i){case 2:return{name:"flute",direction:"transverse",height:"1.6rem",hasTizhi:!0,id:1};case 4:return{name:"clarinet",direction:"vertical",width:"3rem",hasTizhi:!0,id:3};case 5:case 6:return{name:"saxophone",direction:"vertical",width:"4.34rem",hasTizhi:!0,id:5};case 12:return{name:"trumpet",direction:"transverse",height:"1.6rem",hasTizhi:!1,id:11};case 13:return{name:"horn",direction:"vertical",width:"4.98rem",hasTizhi:!1,id:12};case 14:return{name:"trombone",direction:"transverse",height:"1.6rem",hasTizhi:!1,id:13};case 15:return{name:"up-bass-horn",direction:"vertical",width:"4.34rem",hasTizhi:!1,id:14};case 17:return{name:"tuba",direction:"vertical",width:"4.34rem",hasTizhi:!1,id:16};case 120:return{name:"piccolo",direction:"vertical",width:"3rem",orientation:0,hasTizhi:!0,id:2};case"piccolo":return{name:"piccolo",direction:"vertical",width:"3rem",orientation:0,code:"竖笛",hasTizhi:!0,id:37};case"hulusi-flute":return{name:"hulusi-flute",direction:"vertical",width:"3rem",orientation:0,code:"葫芦丝",hasTizhi:!1,id:35};case"pan-flute":return{name:"pan-flute",direction:"transverse",height:"2rem",disabledFinger:!0,orientation:0,code:"排箫",hasTizhi:!1,id:33};case"ocarina":return{name:"ocarina",direction:"vertical",width:"3rem",disabledFinger:!0,orientation:0,code:"陶笛",hasTizhi:!1,id:34};case"whistling":return{name:"whistling",direction:"vertical",width:"3rem",disabledFinger:!0,orientation:0,code:"陶笛",hasTizhi:!1,id:39};case"melodica":return{name:"melodica",direction:"transverse",height:"2rem",orientation:0,code:"口风琴",hasTizhi:!1,id:36};case"baroque-recorder":return{name:"baroque-recorder",direction:"vertical",width:"3rem",orientation:0,code:"竖笛",hasTizhi:!0,id:38};default:return typeof i=="number"?{id:i}:{}}},getFingeringConfig=async i=>{switch(i){case"flute":return{json:(await __vitePreload(()=>import("./index-7f22768f.js"),[],import.meta.url)).default,relationship:relationships.flute,height:"60px",styles:{}};case"clarinet":return{json:(await __vitePreload(()=>import("./index-2499965c.js"),[],import.meta.url)).default,relationship:relationships.clarinet,styles:{marginLeft:".4rem",marginRight:".7rem"}};case"trumpet":return{json:(await __vitePreload(()=>import("./index-f01bef28.js"),[],import.meta.url)).default,relationship:relationships.trumpet};case"horn":return{json:(await __vitePreload(()=>import("./index-20c025d3.js"),[],import.meta.url)).default,relationship:relationships.horn,height:"212px",width:"252px"};case"tuba":return{json:(await __vitePreload(()=>import("./index-902205b3.js"),[],import.meta.url)).default,relationship:relationships.tuba};case"piccolo":return{json:(await __vitePreload(()=>import("./index-991877f6.js"),[],import.meta.url)).default,relationship:relationships.piccolo};case"piccolo1":return{json:(await __vitePreload(()=>import("./index-0bbf84fb.js"),[],import.meta.url)).default,relationship:relationships.piccolo};case"piccolo2":return{json:(await __vitePreload(()=>import("./index-f5dd9e1d.js"),[],import.meta.url)).default,relationship:relationships.piccolo};case"up-bass-horn":return{json:(await __vitePreload(()=>import("./index-ad5b3309.js"),[],import.meta.url)).default,relationship:relationships["up-bass-horn"]};case"trombone":return{json:(await __vitePreload(()=>import("./index-f23e3dbf.js"),[],import.meta.url)).default,relationship:relationships.trombone};case"saxophone":return{json:(await __vitePreload(()=>import("./index-cef965b9.js"),[],import.meta.url)).default,relationship:relationships.saxophone,styles:{marginLeft:".2rem",marginRight:".3rem"}};case"small-drum":return{json:(await __vitePreload(()=>import("./index-7ad0b9f0.js"),[],import.meta.url)).default,relationship:relationships["up-bass-horn"],width:"180px"};case"hulusi-flute":return{json:(await __vitePreload(()=>import("./index-71a277d3.js"),[],import.meta.url)).default,relationship:relationships.hulusi,styles:{marginLeft:".6rem",marginRight:".7rem"}};case"hulusi-flute1":return{json:(await __vitePreload(()=>import("./index-03bddf2b.js"),[],import.meta.url)).default,relationship:relationships.hulusi,styles:{marginLeft:".6rem",marginRight:".7rem"}};case"hulusi-flute2":return{json:(await __vitePreload(()=>import("./index-97e45cdd.js"),[],import.meta.url)).default,relationship:relationships.hulusi,styles:{marginLeft:".6rem",marginRight:".7rem"}};case"pan-flute":return{json:(await __vitePreload(()=>import("./index-0bc55d54.js"),[],import.meta.url)).default,relationship:relationships.pan};case"pan-flute1":return{json:(await __vitePreload(()=>import("./index-97c2723f.js"),[],import.meta.url)).default,relationship:relationships.pan};case"pan-flute2":return{json:(await __vitePreload(()=>import("./index-589cb412.js"),[],import.meta.url)).default,relationship:relationships.pan};case"pan-flute3":return{json:(await __vitePreload(()=>import("./index-e427d448.js"),[],import.meta.url)).default,relationship:relationships.pan};case"ocarina":return{json:(await __vitePreload(()=>import("./index-8848f89c.js"),[],import.meta.url)).default,relationship:relationships.ocarina,width:"180px",styles:{marginTop:"auto"}};case"ocarina1":return{json:(await __vitePreload(()=>import("./index-ad04d4cf.js"),[],import.meta.url)).default,relationship:relationships.ocarina,width:"180px",styles:{marginTop:"auto"}};case"ocarina2":return{json:(await __vitePreload(()=>import("./index-c7652d9b.js"),[],import.meta.url)).default,relationship:relationships.ocarina,width:"180px",styles:{marginTop:"auto"}};case"whistling":return{json:(await __vitePreload(()=>import("./index-c5bb109e.js"),[],import.meta.url)).default,relationship:relationships.ocarina,width:"180px",styles:{marginTop:"auto"}};case"whistling1":return{json:(await __vitePreload(()=>import("./index-38262e39.js"),[],import.meta.url)).default,relationship:relationships.ocarina,width:"180px",styles:{marginTop:"auto"}};case"whistling2":return{json:(await __vitePreload(()=>import("./index-6972bb98.js"),[],import.meta.url)).default,relationship:relationships.ocarina,width:"180px",styles:{marginTop:"auto"}};case"melodica":return{json:(await __vitePreload(()=>import("./index-55a98a41.js"),[],import.meta.url)).default,relationship:relationships.melodica,height:"80px",styles:{marginTop:"auto"}};case"melodica1":return{json:(await __vitePreload(()=>import("./index-b6d2ab3b.js"),[],import.meta.url)).default,relationship:relationships.melodica,height:"80px",styles:{marginTop:"auto"}};case"baroque-recorder":return{json:(await __vitePreload(()=>import("./index-7908a008.js"),[],import.meta.url)).default,relationship:relationships.baroqueRecorder};case"baroque-recorder1":return{json:(await __vitePreload(()=>import("./index-142fdf16.js"),[],import.meta.url)).default,relationship:relationships.baroqueRecorder};case"baroque-recorder2":return{json:(await __vitePreload(()=>import("./index-d13c0247.js"),[],import.meta.url)).default,relationship:relationships.baroqueRecorder};default:return null}},getMusicSheetDetail=i=>request.get("/musicSheet/cbsDetail/"+i),query=getQuery();var EnumMusicRenderType=(i=>(i.staff="staff",i.firstTone="firstTone",i.fixedTone="fixedTone",i))(EnumMusicRenderType||{});const musicscoresettingKey="musicscoresetting";var IPlatform=(i=>(i.APP="APP",i.PC="PC",i))(IPlatform||{});const classids=[1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,30,31,35,36,38,108,150,151,152,153,154,155,156,157,158,178,179,180,181,182],musicalInstrumentCodeInfo=[{name:"长笛",code:"Flute",id:1},{name:"短笛",code:"Piccolo",id:2},{name:"单簧管",code:"Clarinet",id:3},{name:"低音单簧管",code:"Bass Clarinet",id:4},{name:"中音萨克斯",code:"Alto Saxophone",id:5},{name:"次中音萨克斯",code:"Tenor Saxophone",id:6},{name:"高音萨克斯",code:"Soprano Saxophone",id:7},{name:"上低音萨克斯",code:"Baritone Saxophone",id:8},{name:"双簧管",code:"Oboe",id:9},{name:"大管",code:"Bassoon",id:10},{name:"小号",code:"Trumpet",id:11},{name:"圆号",code:"Horn",id:12},{name:"长号",code:"Trombone",id:13},{name:"上低音号",code:"Baritone",id:14},{name:"次中音号",code:"Euphonium",id:15},{name:"大号",code:"Tuba",id:16},{name:"钢琴",code:"Piano",id:17},{name:"电钢琴",code:"Electronical Piano",id:18},{name:"钢片琴",code:"Glockenspiel",id:19},{name:"小提琴",code:"Violin",id:20},{name:"中提琴",code:"Viola",id:21},{name:"大提琴",code:"Violoncello",id:22},{name:"低音提琴",code:"Contrabass",id:23},{name:"架子鼓",code:"Drum Set",id:24},{name:"小鼓",code:"Snare Drum",id:25},{name:"马林巴",code:"Marimba",id:26},{name:"颤音琴",code:"Vibraphone",id:27},{name:"钟琴",code:"Chimes",id:28},{name:"木琴",code:"Xylophone",id:29},{name:"管钟",code:"Tubular Bells",id:30},{name:"定音鼓",code:"Timpani",id:31},{name:"键盘",code:"Mallets",id:32},{name:"排箫",code:"Panpipes",id:33},{name:"陶笛",code:"Ocarina",id:34},{name:"葫芦丝",code:"Woodwind",id:35},{name:"口风琴",code:"Nai",id:36},{name:"德式竖笛",code:"Tenor Recorder",id:37},{name:"英式竖笛",code:"Baroque Recorder",id:38},{name:"高音陶笛",code:"Whistling",id:39}],state=reactive({platform:"",appName:"",musicRenderType:"staff",musicRendered:!1,detailId:"",xmlUrl:"",subjectId:0,trackId:0,categoriesId:0,categoriesName:"",enableEvaluation:!0,enableNotation:!1,examSongId:"",cbsExamSongId:"",examSongName:"",coverImg:"",extConfigJson:{},extStyleConfigJson:{},isOpenMetronome:!1,isShowFingering:!1,music:"",accompany:"",midiUrl:"",parentCategoriesId:0,musicSheetCategoriesId:0,bizMusicCategoryId:0,playMode:"MP3",speed:0,originSpeed:0,playIngSpeed:0,track:"",partIndex:0,needTick:!1,osmd:null,isSpecialBookCategory:!1,playState:"paused",playEnd:!1,playSource:"music",playProgress:0,activeNoteIndex:0,activeMeasureIndex:0,sectionStatus:!1,section:[],sectionBoundingBoxs:[],isOpenPrepare:!1,sectionFirst:null,times:[],modeType:"practise",setting:{soundEffect:!0,eyeProtection:!1,camera:!1,cameraOpacity:70,repeatAutoPlay:!0,displayFingering:!0,displayCursor:!0,frequency:0,evaluationDifficulty:"BEGINNER",saveToAlbum:!0,enableAccompaniment:!0,reactionTimeMs:0,beatVolume:50},baseFrequency:440,fixtime:0,evXmlBeginTime:0,secondEvXmlBeginTime:0,evXmlBeginArr:[],fingeringInfo:{},scrollContainer:"musicAndSelection",isPercussion:!1,evaluationStandard:"",repeatedBeats:0,partListNames:[],gradual:[],gradualVersion:GradualVersion.BASE,gradualTimes:null,multitrack:0,zoom:.8,musicZoom:1,isSelectMeasureMode:!1,isReport:!1,isHideEvaluatReportSaveBtn:!1,isConcert:!1,userChooseEndIndex:0,repeatInfo:[],canSelectTracks:[],subjectCodeId:0,musicalCodeId:0,musicalCode:"",isCombineRender:!1,measureTime:0,beatStartTime:0,isPreView:!1,isEvaluatReport:!1,midiPlayIniting:!1,songs:{},isAppPlay:!1,audiosInstance:null,durationNum:0,midiSectionStart:0,audioDone:!1,osmdSvgDom:null,osdmScrollDom:null,cursorDom:null,fistNoteLeft:0,isSingleLine:!1,noteDistance:0,moveType:"smooth",isEvxml:!1,noTimes:[],attendHideMenu:!0,playBtnDirection:"left",musicScoreBtnDirection:"right",isAttendClass:!1,guideInfo:null,noteCoords:[],specialPosInit:!1,paymentType:null,defaultModeType:1,maxLyricNum:0});browser();const customData=reactive({customNoteRealValue:[],customNoteCurrentTime:!1}),setStep=()=>{if(state.playState!=="play"){console.log("暂停播放");return}let i=Date.now();requestAnimationFrame(()=>{Date.now()-i<16.7?(handlePlaying(),setStep()):setTimeout(()=>{handlePlaying(),setStep()},16.7)})},onPlay=()=>{console.log("开始播放","音频总时长:",getAudioDuration()),state.playEnd=!1,setStep()},autoResetPlay=()=>{state.modeType==="practise"&&(skipNotePlay(0,!0),state.setting.repeatAutoPlay&&(scrollViewNote(),setTimeout(()=>{togglePlay("play")},1e3)))},onEnded=()=>{console.log("音频播放结束"),state.playEnd=!0,state.playState="paused",audioListStart(state.playState),handleEndEvaluat(!0),autoResetPlay()},handlePlaying=()=>{var s;const i=getAudioCurrentTime(),e=getAudioDuration();state.playProgress=i/e*100;let r=getNote(i);if(r&&state.modeType==="practise"&&state.playState==="play"&&r.measureSpeed&&r.measureSpeed!==state.playIngSpeed){const o=state.speed/state.originSpeed;state.playIngSpeed=Math.ceil(o*r.measureSpeed)||state.speed}else state.modeType==="practise"&&state.playState==="play"&&r&&!r.measureSpeed&&(state.playIngSpeed=state.speed);if(state.playIngSpeed=state.playIngSpeed||state.speed,r){if(state.sectionStatus&&state.section.length===2){const o=state.sectionFirst?state.sectionFirst:state.section[0],a=state.section[1];if(state.repeatInfo.length){const l=verifyCanRepeat(state.section[0].MeasureNumberXML,state.section[1].MeasureNumberXML),c=l.repeatIdx==-1?0:l.repeatIdx;if(state.modeType==="practise"&&!l.canRepeat&&state.section[1].MeasureNumberXML>state.repeatInfo[c].end){const u=state.times[r.i-1];if(u&&u.MeasureNumberXML>r.MeasureNumberXML){const d=state.times.find(g=>g.MeasureNumberXML===u.MeasureNumberXML+1);if(d){setAudioCurrentTime(d.time,d.i),gotoNext(d);return}}}}if(i-a.endtime>=0){if(console.log("选段播放结束",state.setting.repeatAutoPlay),state.modeType==="evaluating"&&state.isSelectMeasureMode){onEnded();return}if(state.modeType==="practise"&&state.sectionStatus){onEnded(),resetPlaybackToStart();return}r=o,setAudioCurrentTime(o.time,o.i)}}gotoNext(r)}(s=metronomeData.metro)==null||s.sound(i),state.isSingleLine&&(state.moveType==="smooth"?smoothMoveSvgDom():uniformMoveSvgDom())},skipNotePlay=async(i,e=!1)=>{var o;const r=state.times[i];let s=r.time;e&&(s=0),r&&(setAudioCurrentTime(s,i),gotoNext(r,!0),(o=metronomeData.metro)==null||o.sound(s),state.isAppPlay&&(await api_cloudSetCurrentTime({currentTime:s*1e3,songID:state.examSongId}),audioData$1.progress=s,state.midiSectionStart=s))},togglePlay=async(i,e)=>{if(!state.isAppPlay&&!state.audioDone){e!=="courseware"&&showToast("音频资源加载中,请稍后");return}if(state.isAppPlay){if(i==="paused"){await api_cloudSuspend({songID:state.examSongId}),state.playState="paused";return}skipNotePlay(state.activeNoteIndex,!1),await api_cloudChangeSpeed({speed:state.modeType==="evaluating"?state.originSpeed:state.speed,originalSpeed:state.originSpeed,songID:state.examSongId});const r=await api_cloudGetMediaStatus(),s=(r==null?void 0:r.content.status)==="suspend"?"play":"paused";state.playState=s}else state.playState=i||(state.playState==="paused"?"play":"paused");return state.playState==="play"&&state.sectionStatus&&state.section.length==2&&state.playProgress===0&&resetPlaybackToStart(),state.playState==="play"&&state.needTick&&!await handleStartTick()?(state.playState="paused",!1):(state.playState=="play"&&state.sectionStatus&&state.section.length<2&&clearSelection(),audioListStart(state.playState),!0)},handleStopPlay=()=>{state.playState="paused",audioListStart(state.playState)},resetPlaybackToStart=()=>{var i;if(state.sectionStatus&&state.section.length===2){state.section=formateSelectMearure(state.section);return}else metronomeData.activeMetro=((i=metronomeData.metroMeasure[0])==null?void 0:i[0])||{};skipNotePlay(0,!0)},gotoCustomNote=i=>{try{state.osmd.cursor.reset()}catch(e){}for(let e=0;e{var s,o,a;if(state.musicRenderType==="firstTone"||state.musicRenderType==="fixedTone"){if(state.sectionStatus&&state.playState==="paused"&&state.sectionFirst&&(i.multipleRestMeasures||i.MeasureNumberXML!==((s=state.sectionFirst)==null?void 0:s.MeasureNumberXML)))return;if(["1788850864767643649","1788502467554750466","1788501975122489346"].includes(state.cbsExamSongId)&&i.multipleRestMeasures===0){const c=(a=(o=e==null?void 0:e.cursorElement)==null?void 0:o.style)!=null&&a.left?parseFloat(e.cursorElement.style.left):0;let u=0;state.cbsExamSongId=="1788502467554750466"?(state.musicRenderType==="firstTone"&&(u=i.i==0||i.i==60?21:i.i==1||i.i==7||i.i==23||i.i==38||i.i==44||i.i==52||i.i==58?-6:i.i>=2||i.i<=6||i.i>=8||i.i<=22||i.i>=24||i.i<=37||i.i>=39||i.i<=43||i.i>=45||i.i<=51||i.i>=53||i.i<=57||i.i==59?6:0),state.musicRenderType==="fixedTone"&&(u=i.i==0?31:i.i==8||i.i==14||i.i==30||i.i==45||i.i==51||i.i==59||i.i==65?-10:i.i==67?31:0)):state.cbsExamSongId=="1788501975122489346"&&(state.musicRenderType==="firstTone"&&(u=i.i==0?21:i.i==1||i.i==7||i.i==23||i.i==38||i.i==44||i.i==52||i.i==58?-6:i.i==9||i.i==10||i.i==12||i.i==13?3:i.i==14||i.i==30||i.i==45||i.i==51||i.i==59?6:i.i==45?-8:i.i>=15||i.i<=29||i.i>=31||i.i<=36||i.i>=38||i.i<=44||i.i>=46||i.i<=50||i.i>=52||i.i<=58||i.i>=60||i.i<=64||i.i==66?4:0),state.musicRenderType==="fixedTone"&&(u=i.i==0?31:i.i==8||i.i==14||i.i==30||i.i==45||i.i==51||i.i==59||i.i==65?-10:i.i==67?31:0)),(r==="refresh"||r==="init"&&!state.specialPosInit)&&(e.cursorElement.style.left=c+u+"px",state.specialPosInit=!0)}else nextTick(()=>{var g,m,y,b;let c=i.bbox;if(!c){const A=(((g=document.getElementById("musicAndSelection"))==null?void 0:g.getBoundingClientRect())||{x:0,y:0}).x||0,E=document.querySelector(`#vf-${(y=(m=i.svgElement)==null?void 0:m.attrs)==null?void 0:y.id}`);if(E){const x=E.querySelector(".vf-numbered-note-head"),P=(b=x==null?void 0:x.getBoundingClientRect)==null?void 0:b.call(x);P&&(i.bbox={left:P.x-A-P.width/4,width:P.width*1.5},c=i.bbox)}}if(!c)return;const u=state.platform==="PC"?29:18,d=(c.width-u)/3;e.cursorElement.style.left=c.left+"px",e.cursorElement.style.transform=`translateX(${d}px)`})}},gotoNext=(i,e)=>{const r=i.i;if(state.activeNoteIndex===i.i){try{setCursorPosition(i,state.osmd.cursor,"init")}catch(a){console.log(a)}return}const s=state.osmd;let o=state.activeNoteIndex;if(state.activeNoteIndex=r,state.activeMeasureIndex=i.MeasureNumberXML,o&&r-o===1)s.cursor.next();else if(o&&r-o>0)for(;r-o>0;)o++,s.cursor.next();else gotoCustomNote(r);try{setCursorPosition(i,state.osmd.cursor,"refresh")}catch(a){console.log(a)}state.isSingleLine&&moveSvgDom(e),scrollViewNote()},getNote=i=>{const e=state.times,r=state.times.length;if(i>e[r-1].endtime+2&&!state.isAppPlay){onEnded();return}let s=null;for(let o=state.activeNoteIndex;o=a.time)(!l||a.time!=l.time)&&(s=a);else break}return s},handleResetPlay=()=>{state.isAppPlay&&(audioData$1.progress=0),resetPlaybackToStart(),togglePlay("play")},handleSetSpeed=i=>{setStorageSpeed(state.examSongId,i),state.speed=i},clearSelection=()=>{state.sectionStatus=!1,state.section=[],closeToast()},handleChangeSection=()=>{if(state.sectionStatus){togglePlay("paused"),clearSelection(),skipNotePlay(0,!0),state.sectionFirst=null;return}state.sectionStatus=!0,state.sectionStatus&&togglePlay("paused"),showToast({message:"请选择开始小节",duration:0,position:"top",className:"selectionToast"})},formateSelectMearure=i=>{var c,u;if(!i.length)return[];const e=i.sort((d,g)=>d.time-g.time),r=(c=e[0])==null?void 0:c.measureOpenIndex,s=(u=e.last())==null?void 0:u.measureOpenIndex,o=state.times.filter(d=>r===d.measureOpenIndex)||[],a=state.times.filter(d=>s===d.measureOpenIndex)||[];if(!o.length||!a.length)return clearSelection(),[];e[0]=o[0],e[1]=a.last();let l=e[0].i;if(state.isOpenPrepare){const d=e[0].MeasureNumberXML;state.sectionFirst=state.times.find(g=>d-g.MeasureNumberXML===1),l=state.sectionFirst?state.sectionFirst.i:l}return skipNotePlay(l,l===0),e},handleSelection=i=>{!state.sectionStatus||state.section.length>1||(state.section.length!==2&&i&&(state.section.push(i),state.section.length===2&&(setSection(state.section[0].MeasureNumberXML,state.section[1].MeasureNumberXML),closeToast())),state.section.length===1&&showToast({message:"请选择结束小节",duration:0,position:"top",className:"selectionToast"}))},setSection=(i,e,r)=>{var A,E,x,P;const s=state.times.filter(T=>T.noteElement.sourceMeasure.MeasureNumberXML==i),o=state.times.filter(T=>T.noteElement.sourceMeasure.MeasureNumberXML==e);state.userChooseEndIndex=e;const a=o[o.length-1].noteId;let l=o.filter(T=>T.noteId===a);const c=verifyCanRepeat(i,e);console.log("能否重播",c);const u=c.canRepeat;let d=!1;l.length===1&&(d=(x=(E=(A=l[0])==null?void 0:A.stave)==null?void 0:E.modifiers)==null?void 0:x.some(T=>T.getAttribute("type")==="Volta"));let g=e;const m=((P=state.repeatInfo[c.repeatIdx])==null?void 0:P.end)||0;for(;u&&l.length===1&&l[0].MeasureNumberXML<=m&&!d;){g=g-1;const T=state.times.filter(M=>M.noteElement.sourceMeasure.MeasureNumberXML==g),C=T[T.length-1].noteId;l=T.filter(M=>M.noteId===C)}const y=u&&c.repeatIdx==state.repeatInfo.length-1?l.length-1:0,b=s[0],S=l[y];b&&S&&(state.isSelectMeasureMode=!0,hanldeDirectSelection([b,S]),r&&handleSetSpeed(r))},hanldeDirectSelection=i=>{!Array.isArray(i)||i.length!==2||(state.sectionStatus=!0,setTimeout(()=>{state.section=formateSelectMearure(i),console.log("选段小节",state.section)},500))};let offsetTop=0;const scrollViewNote=()=>{const i=document.getElementById("cursorImg-0"),e=document.getElementById(state.scrollContainer);!i||!e||offsetTop===i.offsetTop||(offsetTop=i.offsetTop,offsetTop>50?e.scrollTo({top:(offsetTop-50)*state.musicZoom,behavior:"smooth"}):e.scrollTo({top:0,behavior:"smooth"}))},isRhythmicExercises=()=>state.examSongName.indexOf("节奏练习")>-1,handleRessetState=()=>{clearSelection(),skipNotePlay(0,!0),state.isAppPlay&&(audioData$1.progress=0),state.modeType==="evaluating"?handleStartEvaluat():state.modeType==="practise"?togglePlay("paused"):state.modeType==="follow"&&toggleFollow(!1)},state$1=state,evaluatCreateMusicPlayer=()=>api_createMusicPlayer({musicSrc:state.accompany||state.music,tuneSrc:"https://oss.dayaedu.com/cloud-coach/1686725501654check_music1_(1).mp3"}),getMusicDetail=async i=>{const e=await getMusicSheetDetail(i);(e==null?void 0:e.code)===200&&getMusicInfo(e)},getMusicInfo=i=>{var a,l;const e=query["part-index"]?parseInt(query["part-index"]):0,r=((a=i.data.musicSheetSoundList)==null?void 0:a[e])||{},s=((l=i.data.musicSheetAccompanimentList)==null?void 0:l[0])||{},o={...i.data,music:r.audioFileUrl||"",accompany:s.audioFileUrl||"",musicSheetId:r.musicSheetId||i.data.bizId,track:r.track||""};console.log("🚀 ~ musicInfo:",o),setState(o,e)},setState=(i,e)=>{var g,m,y,b,S,A,E,x,P,T,C,M,B,I;state.appName="COLEXIU",state.detailId=i.bizId,state.xmlUrl=i.xmlFileUrl,state.paymentType=i.paymentType,state.partIndex=e,state.trackId=i.track,state.subjectId=i.subjectIds?(g=i.subjectIds.split(","))==null?void 0:g[0]:0;const r=i.subjectCodes?(m=i.subjectCodes.split(","))==null?void 0:m[0]:"";let s=i.musicalInstrumentIdCodes?(y=i.musicalInstrumentIdCodes.split(","))==null?void 0:y[0]:"";const o=musicalInstrumentCodeInfo.find(k=>k.code.toLocaleLowerCase()===r.toLocaleLowerCase()),a=musicalInstrumentCodeInfo.find(k=>k.code.toLocaleLowerCase()===s.toLocaleLowerCase());if(state.subjectCodeId=o?o.id:0,state.musicalCodeId=a?a.id:0,state.categoriesId=i.musicCategoryId,state.categoriesName=i.musicTagNames,state.examSongId=i.bizId+"",state.cbsExamSongId=i.id+"",state.examSongName=i.name,state.coverImg=(b=i.musicCover)!=null?b:"",state.isCombineRender=i.musicSheetType==="SINGLE"&&((S=i.musicSheetSoundList)==null?void 0:S.length)>1,setCustom(state.isCombineRender?(A=i.musicSheetSoundList)==null?void 0:A.length:0),i.extConfigJson)try{state.extConfigJson=JSON.parse(i.extConfigJson)}catch(k){console.error("解析扩展字段错误:",k)}state.gradualTimes=state.extConfigJson.gradualTimes,state.repeatedBeats=state.extConfigJson.repeatedBeats||0,state.isEvxml=state.extConfigJson.isEvxml==1,state.needTick=!!(i.isUseSystemBeat&&i.isPlayBeat),state.isOpenMetronome=!!(i.isPlayBeat&&!i.isUseSystemBeat),state.isShowFingering=!!i.isShowFingering,state.isAppPlay=i.playMode==="MIDI",state.music=i.music,state.accompany=i.accompany,state.midiUrl=i.midiFileUrl,state.parentCategoriesId=i.musicTag,state.musicSheetCategoriesId=i.musicCategoryId,state.bizMusicCategoryId=i.bizMusicCategoryId,state.playMode=i.playMode==="MP3"?"MP3":"MIDI",state.originSpeed=state.speed=parseFloat(i.playSpeed)||0;const l=i.code||i.track;state.track=l?l.replace(/ /g,"").toLocaleLowerCase():"",state.isAppPlay?state.enableEvaluation=!!state.midiUrl:state.enableEvaluation=!!state.accompany,state.isConcert=i.musicSheetType==="CONCERT",state.canSelectTracks=i.multiTracksSelection==="null"||i.multiTracksSelection===""||i.multiTracksSelection===null?[]:(E=i.multiTracksSelection)==null?void 0:E.split(","),state.isOpenPrepare=!0,state.extStyleConfigJson=i.extStyleConfigJson||{},state.isPercussion=i.evaluationStandard==="AMPLITUDE"||i.evaluationStandard==="DECIBELS",state.evaluationStandard=((x=i.evaluationStandard)==null?void 0:x.toLocaleLowerCase())||"",state.isSpecialBookCategory=!classids.includes(Number(i.musicCategoryId));const c=state.isConcert?matchVoicePart(state.trackId,"CONCERT"):matchVoicePart(state.musicalCodeId,"SINGLE");state.fingeringInfo=subjectFingering(c),console.log("🚀 ~ state.fingeringInfo:",c,state.fingeringInfo,state.trackId,state.track),state.musicalCodeId=((P=state.fingeringInfo)==null?void 0:P.id)||0,state.musicalCode=((T=musicalInstrumentCodeInfo.find(k=>k.id===state.musicalCodeId))==null?void 0:T.code)||state.trackId,window.DYSubjectId=state.musicalCodeId,window.customSectionAmount=!0,window.DYProjectName="musicScore",!state.fingeringInfo.name&&state.setting.displayFingering&&(state.setting.displayFingering=!1),(!state.music||!state.accompany)&&(state.playSource=state.music?"music":"background"),state.platform=((C=query.platform)==null?void 0:C.toLocaleUpperCase())||"",state.platform==="PC"&&(state.zoom=query.zoom||1.5,state.enableEvaluation=!1);let u=null;state.isConcert?(s=(M=musicalInstrumentCodeInfo.find(k=>k.id===state.musicalCodeId))==null?void 0:M.code,u=(B=i.musicalInstruments)==null?void 0:B.find(k=>k.code===s)):u=(I=i.musicalInstruments)==null?void 0:I.find(k=>k.code===s);let d="";u!=null&&u.defaultScore&&(d=(u==null?void 0:u.defaultScore)==="STAVE"?"staff":(u==null?void 0:u.defaultScore)==="JIAN"?"fixedTone":(u==null?void 0:u.defaultScore)==="FIRST"?"firstTone":""),state.musicRenderType=query.musicRenderType||d||"firstTone",["1788501975122489346","1788502467554750466","1789839575249596417"].includes(state.cbsExamSongId)&&state.musicRenderType==="fixedTone"&&(state.musicRenderType="firstTone"),state.enableNotation=u?i.isConvertibleScore&&u.transferFlag:i.isConvertibleScore,console.log("state对象",state),state.baseFrequency=i.evaluationFrequency?i.evaluationFrequency.split(",")[0]:440,state.baseFrequency=Number(state.baseFrequency),Math.abs(state.setting.frequency-state.baseFrequency)>10?state.setting.frequency=state.baseFrequency>=0?state.baseFrequency:440:state.setting.frequency=state.setting.frequency||state.baseFrequency},setCustom=i=>{(i||state.extConfigJson.multitrack)&&(state.multitrack=i||0,setGlobalData("multitrack",i||state.extConfigJson.multitrack))},followBeatPaly=()=>{let i=null;if(!followData.start){clearTimeout(i),i=null;return}const e=state.measureTime*1e3/metronomeData.totalNumerator;requestAnimationFrame(()=>{var s;Date.now()-state.beatStartTime{var o,a,l,c,u,d,g,m,y,b,S,A,E,x,P,T,C;const r=(((o=document.getElementById("musicAndSelection"))==null?void 0:o.getBoundingClientRect())||{x:0,y:0}).x||0;let s=null;for(let M=0;M{var o,a,l,c,u,d,g,m;if(!state.isSingleLine)return;const i=document.getElementById("osmdSvgPage1");state.osmdSvgDom=i;const e=document.getElementById("musicAndSelection"),r=document.getElementById("cursorImg-0");state.fistNoteLeft=((o=r==null?void 0:r.getBoundingClientRect())==null?void 0:o.left)||0,state.osdmScrollDom=e,state.cursorDom=r;let s=r==null?void 0:r.cloneNode(!0);if(s){s.setAttribute("id","cursor-copy"),s.style.position="sticky",s.style.zIndex="2",s.style.left=((l=(a=state.times[0])==null?void 0:a.bbox)==null?void 0:l.x)+((u=(c=state.times[0])==null?void 0:c.bbox)==null?void 0:u.width)/2-1+"px",s.style.height=parseFloat(s.style.height)*3+"px",s.style.opacity=state.moveType==="uniform"?0:1,s&&(e==null||e.appendChild(s));const y=(d=document.querySelector(".vf-measure"))==null?void 0:d.getBBox(),b=document.createElement("div");b.style.width=((m=(g=state.times[0])==null?void 0:g.bbox)==null?void 0:m.x)-(y==null?void 0:y.x)*state.zoom+"px",b.style.height=(y==null?void 0:y.height)*state.zoom+"px",b.style.left=(y==null?void 0:y.x)*state.zoom+"px",b.style.transform="translateY(20px)",b.classList.add("leftNoteBg")}},calculateDistance=()=>{var r,s;const i=(r=state.times[0])==null?void 0:r.bbox,e=(s=state.times.last())==null?void 0:s.bbox;if(i&&e){const o=e.x-i.x+e.width/2-i.width/2-1;console.log("首尾间距",o),state.noteDistance=o||0}},moveSvgDom=i=>{var e,r,s,o;if(state.times.forEach((a,l)=>{var d,g,m,y,b,S;const c=document.getElementById(`vf-${(m=(g=(d=state.times[l])==null?void 0:d.svgElement)==null?void 0:g.attrs)==null?void 0:m.id}`),u=document.getElementById(`vf-${(S=(b=(y=state.times[l])==null?void 0:y.svgElement)==null?void 0:b.attrs)==null?void 0:S.id}-stem`);(a.i===state.activeNoteIndex||a.id===state.times[state.activeNoteIndex].id)&&a.svgElement?(c==null||c.classList.add("noteActive"),u==null||u.classList.add("noteActive")):(c==null||c.classList.remove("noteActive"),u==null||u.classList.remove("noteActive"))}),i){const a=((e=state.times[state.activeNoteIndex].bbox)==null?void 0:e.x)-((r=state.times[0].bbox)==null?void 0:r.x)+((s=state.times[state.activeNoteIndex].bbox)==null?void 0:s.width)/2-((o=state.times[0].bbox)==null?void 0:o.width)/2;state.osdmScrollDom.scrollTo({left:a,behavior:"smooth"})}},smoothMoveSvgDom=()=>{var o,a,l,c,u,d,g,m,y,b,S,A,E;const i=getAudioCurrentTime();if(state.times.findIndex(x=>Math.abs(x.time-i)*1e3<100),i<=state.fixtime||i>((o=state.times.last())==null?void 0:o.time))return;(a=state.times[state.activeNoteIndex])==null||a.bbox;let e=state.activeNoteIndex+1,r=(l=state.times[e])==null?void 0:l.bbox;for(;!r&&e{var s,o;const i=getAudioCurrentTime();if(i<=state.fixtime||i>((s=state.times.last())==null?void 0:s.time))return;const r=(i-state.fixtime)/((o=state.times.last())==null?void 0:o.time)*state.noteDistance||0;state.osdmScrollDom.scrollLeft=r},browserInfo=browser();dayjs.extend(duration);const getFixTime=i=>{const e=getDuration(state$1.osmd);let r=e.numerator||0,s=e.denominator||4;const o=e.beatUnit||"quarter";return state$1.repeatedBeats&&(r=r*2),state$1.isOpenMetronome?60/i*formatBeatUnit(o)*(r/s):0},retain=i=>Math.ceil(i*1e6)/1e6,formatLyricsEntries=i=>{var s,o;const e=((s=i.parentStaffEntry)==null?void 0:s.voiceEntries)||[],r=[];for(const a of e)if((o=a.lyricsEntries)!=null&&o.table){const l=Object.values(a.lyricsEntries.table);for(const c of l)r.push(c==null?void 0:c.value.text)}return r},createSpeedInfo=(i,e)=>{var r,s;if(i&&speedInfo[(r=i.startWord)==null?void 0:r.toLocaleLowerCase()]){const o=Math.max(i.endXmlNoteIndex,3),a=[],l=e,c=e/speedInfo[(s=i.startWord)==null?void 0:s.toLocaleLowerCase()];for(let u=0;u{let e=i;const r=i.split(":");return r.length===1?e=`00:${r[0]}:00`:r.length===2&&(e=`00:${r[0]}:${r[1]}`),`1970-01-01 00:${e}0`},getDuration=i=>{var r;if(i){const{Duration:s,TempoInBPM:o,ActiveTimeSignature:a,TempoExpressions:l}=(r=i.GraphicSheet.MeasureList[0][0])==null?void 0:r.parentSourceMeasure;if(s){let c="quarter";for(const d of l)c=d.InstantaneousTempo.beatUnit||"quarter";return{...formatDuration(a),TempoInBPM:o,beatUnit:c}}}return{...new Fraction$1,TempoInBPM:90,beatUnit:"quarter"}};function formatDuration(i,e){return i}function formatBeatUnit(i){let e=4;switch(i){case"1024th":e=1024;break;case"512th":e=512;break;case"256th":e=256;break;case"128th":e=128;break;case"64th":e=64;break;case"32nd":e=32;break;case"16th":e=16;break;case"eighth":e=8;break;case"quarter":e=4;break;case"half":e=2;break;case"whole":e=1;break;case"breve":e=.5;break;case"long":e=.25;break;case"maxima":e=.125;break}return e}function getTimeByBeatUnit(i,e,r){return r/formatBeatUnit(i)*e}const setElementNoteBefore=(i,e,r)=>{let s=0;if(e){for(let o=0;o0){let o=0;const a=Array.from(r.childNodes).filter(c=>c.nodeName==="note"),l=a[a.length-1];if(s>=a.length&&l){r.insertBefore(i,r.childNodes[Array.from(r.childNodes).indexOf(l)]);return}for(let c=0;c{if(i){const e=i.toLocaleLowerCase(),r="d\\s?\\.s\\.",s="d\\.\\s?c\\.";return e==="@"||StringUtil.StringContainsSeparatedWord(e,r+" al fine",!0)||StringUtil.StringContainsSeparatedWord(e,r+" al coda",!0)||StringUtil.StringContainsSeparatedWord(e,s+" al fine",!0)||StringUtil.StringContainsSeparatedWord(e,s+" al coda",!0)||StringUtil.StringContainsSeparatedWord(e,s)||StringUtil.StringContainsSeparatedWord(e,"da\\s?capo",!0)||StringUtil.StringContainsSeparatedWord(e,r,!0)||StringUtil.StringContainsSeparatedWord(e,"dal\\s?segno",!0)||StringUtil.StringContainsSeparatedWord(e,"al\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(e,"to\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(e,"a (la )?coda",!0)||StringUtil.StringContainsSeparatedWord(e,"fine",!0)||StringUtil.StringContainsSeparatedWord(e,"coda",!0)||StringUtil.StringContainsSeparatedWord(e,"segno",!0)}return!1},onlyVisible=(i,e)=>{var b,S,A,E,x,P,T,C,M;if(!i)return"";const r=state$1.examSongId+"",s=new DOMParser().parseFromString(i,"text/xml"),o=((S=(b=s.getElementsByTagName("part-list"))==null?void 0:b[0])==null?void 0:S.getElementsByTagName("score-part"))||[],a=Array.from(o).map(B=>{var I,k,D;return((D=(k=(I=B.getElementsByTagName("part-name"))==null?void 0:I[0])==null?void 0:k.textContent)==null?void 0:D.trim())||""}),l=s.getElementsByTagName("part"),c=[...(A=l[0])==null?void 0:A.getElementsByTagName("measure")],u=[...(E=l[0])==null?void 0:E.getElementsByTagName("metronome")],d=[...(x=l[0])==null?void 0:x.getElementsByTagName("words")],g=[...(P=l[0])==null?void 0:P.getElementsByTagName("coda")],m=[...(T=l[0])==null?void 0:T.getElementsByTagName("rehearsal")];((M=(C=a[0])==null?void 0:C.toLocaleUpperCase)==null?void 0:M.call(C))==="COMMON"&&(e++,a.shift());const y=o[e];if(state$1.partListNames=a,y){const B=y.getAttribute("id");Array.from(l).forEach(I=>{var k,D,O,z,N;if(I&&I.getAttribute("id")!==B)(k=I.parentNode)==null||k.removeChild(I);else if(I&&I.getAttribute("id")!=="P1"){const Q={};for(let _=0;_{var V;const U=(V=_.parentElement)==null?void 0:V.parentElement,G=U==null?void 0:U.parentElement,H=[...(G==null?void 0:G.childNodes)||[]],R=U?H.indexOf(U):-1;if(G&&R>-1){const te=c.indexOf(G),W=I.getElementsByTagName("measure")[te];setElementNoteBefore(U,G,W)}}),d.forEach(_=>{var G;let U=_.textContent||"";if(U=["cresc."].includes(U)?"":U,(isSpecialMark(U)||isSpeedKeyword(U)||isGradientWords(U)||isRepeatWord(U)||GRADIENT_SPEED_RESET_TAG)&&U){const H=(G=_.parentElement)==null?void 0:G.parentElement,R=H==null?void 0:H.parentElement,V=[...(R==null?void 0:R.childNodes)||[]],te=H?V.indexOf(H):-1;if(H&&R&&te>-1){const W=c.indexOf(R),$=I.getElementsByTagName("measure")[W];Array.from(($==null?void 0:$.getElementsByTagName("words"))||[]).reduce((Y,Z)=>{var ue;return(ue=Z.textContent)!=null&&ue.includes(U)&&Y++,Y},0)===0&&(["12280"].includes(r)?$==null||$.insertBefore(H.cloneNode(!0),$==null?void 0:$.childNodes[te]):setElementNoteBefore(H,R,$))}}}),g.forEach(_=>{var V;const U=(V=_.parentElement)==null?void 0:V.parentElement,G=U==null?void 0:U.parentElement,H=[...(G==null?void 0:G.childNodes)||[]],R=U?H.indexOf(U):-1;if(U&&G&&R>-1){const te=c.indexOf(G),W=I.getElementsByTagName("measure")[te];["12280"].includes(r)?W==null||W.insertBefore(U.cloneNode(!0),W==null?void 0:W.childNodes[R]):setElementNoteBefore(U,G,W)}}),m.forEach(_=>{var H,R;const U=(H=_.parentElement)==null?void 0:H.parentElement,G=U==null?void 0:U.parentElement;if(G){const V=c.indexOf(G);(R=I.getElementsByTagName("measure")[V])==null||R.appendChild(U.cloneNode(!0))}})}else d.forEach((Q,_)=>{var G,H,R;const U=Q.textContent||"";if(isSpeedKeyword(U)&&U){const V=(H=(G=Q.parentElement)==null?void 0:G.parentElement)==null?void 0:H.parentElement;if(V&&V.firstElementChild&&V.firstElementChild!==Q){const te=(R=Q.parentElement)==null?void 0:R.parentElement,W=V.firstElementChild;V.insertBefore(te,W)}}});if(I&&I.getAttribute("id")===B){const Q=I.getElementsByTagName("barline"),_=(z=Q[Q.length-1])==null?void 0:z.parentElement;if(((N=_==null?void 0:_.lastElementChild)==null?void 0:N.tagName)!=="barline"){const U=(_==null?void 0:_.children)||[];for(let G of U)if(G.tagName==="barline"){_==null||_.appendChild(G);break}}}}),Array.from(o).forEach(I=>{var k;I&&I.getAttribute("id")!==B&&((k=I.parentNode)==null||k.removeChild(I))})}return new XMLSerializer().serializeToString(appoggianceFormate(s))},appoggianceFormate=i=>{var s,o,a,l;if(!i)return i;const e=i.querySelectorAll("grace");if(!e.length)return i;const r=c=>c.querySelector("grace")?r(c==null?void 0:c.nextElementSibling):c;for(let c of e){const u=(s=c.parentElement)==null?void 0:s.querySelector("notations");if(u&&u.querySelectorAll("slur").length>1){let d=r((o=c.parentElement)==null?void 0:o.nextElementSibling);if(d&&d.querySelectorAll("slur").length>0){const g=Array.from(((a=d.querySelector("notations"))==null?void 0:a.children)||[]).map(y=>y.getAttribute("number")),m=u.querySelectorAll("slur");for(let y of m)g.includes(y.getAttribute("number"))||(l=d.querySelector("notations"))==null||l.appendChild(y)}}}return i},formatXML=(i,e)=>{var u,d,g;if(!i)return"";const r=new DOMParser().parseFromString(i,"text/xml"),s=Array.from(r.getElementsByTagName("measure")),o=Array.from(r.querySelectorAll("repeat"));compatibleXmlPitchVoice(r),parseXmlToRepeat(o),state$1.isEvxml&&(analyzeEvxml(r),customizationXml(r));let a=-1,l=-1,c=-1;for(const m of s){l===-1&&m.getElementsByTagName("beats").length&&(l=parseInt(m.getElementsByTagName("beats")[0].textContent||"4")),c===-1&&m.getElementsByTagName("beat-type").length&&(c=parseInt(m.getElementsByTagName("beat-type")[0].textContent||"4")),a===-1&&m.getElementsByTagName("per-minute").length&&(a=Number((u=m.getElementsByTagName("per-minute")[0])==null?void 0:u.textContent));const y=parseInt(((d=m.getElementsByTagName("divisions")[0])==null?void 0:d.textContent)||"256");m.getElementsByTagName("note").length&&state$1.isEvxml&&(Array.from(m.getElementsByTagName("note"))||[]).forEach(A=>{var E;A.getElementsByTagName("grace").length||(!A.getElementsByTagName("duration").length||A.getElementsByTagName("duration").length&&((E=A.getElementsByTagName("duration")[0])==null?void 0:E.textContent)==0)&&m.removeChild(A)});const b=new RegExp("[\\u4E00-\\u9FFF]+","g");if(m.getElementsByTagName("words").length&&state$1.isEvxml&&(Array.from(m.getElementsByTagName("words"))||[]).forEach(A=>{var E;A!=null&&A.textContent&&b.test(A==null?void 0:A.textContent)&&((E=A==null?void 0:A.parentNode)!=null&&E.parentNode)&&m.removeChild(A.parentNode.parentNode)}),m.getElementsByTagName("note").length===0){const S=(g=m.getElementsByTagName("forward")[0])==null?void 0:g.getElementsByTagName("duration")[0];S&&(S.textContent="0"),m.innerHTML=m.innerHTML+` ${y*l} 1 whole `}}return(!a||a==-1)&&(a=100),state$1.originSpeed||(state$1.originSpeed=state$1.speed=a||100),new XMLSerializer().serializeToString(r)},formateTimes=i=>{var te,W,$,de,oe,Y,Z,ue,ae,pe,Se,ge,ee,ne,F,se,re,J,K,ie,fe,he,le,me,be,ve,xe,Te,ye,Pe,Me,Ne,it,Le,Qe,Fe,Oe,ft,ke,Re,pt,lt,Ue;const e=customData.customNoteRealValue,r=customData.customNoteCurrentTime;state$1.examSongId+"",state$1.partIndex+"";let s=browserInfo.huawei?.08:0;const o=[],a=[],l=[],{originSpeed:c}=state$1;let u=0;const d=(we,_e)=>{var $e,Ve,Be,We,Xe,rt;return["906"].includes(state$1.cbsExamSongId)?(($e=_e.measures[0])==null?void 0:$e.realKey)||we:["782","784"].includes(state$1.cbsExamSongId)&&[14,16,30,32].includes((Ve=_e.firstVerticalMeasure)==null?void 0:Ve.measureNumber)?((Be=o[o.length-1])==null?void 0:Be.realKey)||we:["900","901","640","641","739","740","800","801","773","774","869","872","714","715"].includes(state$1.cbsExamSongId)&&(((We=_e.firstVerticalMeasure)==null?void 0:We.measureNumber)===3||((Xe=_e.firstVerticalMeasure)==null?void 0:Xe.measureNumber)===9)&&((rt=_e.measures[0])==null?void 0:rt.realKey)||we};if(!i.cursor)return[];const g=i.cursor.Iterator;console.time("音符跑完时间");let m=0,y=0,b=[],S=[],A=0,E=0,x=0,P="quarter",T,C,M=0,B=0,I=0,k=0,D=0,O=0;const z=[];state$1.gradualTimes&&console.log("后台设置的渐慢小节时间",state$1.gradual,state$1.gradualTimes);let N=g.currentTimeStamp.RealValue;const Q=[];let _=!1,U=0,G=0;for(;!g.EndReached;){const we=(te=g.CurrentVoiceEntries)!=null&&te[0]?[(W=g.CurrentVoiceEntries)==null?void 0:W[0]]:[];let _e=[],at=0;at=(($=g.currentMeasure)==null?void 0:$.verticalSourceStaffEntryContainers.length)||0,state$1.multitrack>0?_e=[...g.CurrentVoiceEntries]:_e=[...g.CurrentVoiceEntries].filter(Ve=>{var Be;return Ve&&((Be=Ve==null?void 0:Ve.ParentVoice)==null?void 0:Be.VoiceId)!=1});let He=0,nt=!1,$e=!1;if(_e.length&&!_){nt=!0;let Ve=[...g.CurrentVoiceEntries].reduce((Be,We)=>(Be.push(...We.Notes),Be),[]);if(Ve=Ve.sort((Be,We)=>{var Xe,rt;return((Xe=Be==null?void 0:Be.length)==null?void 0:Xe.realValue)-((rt=We==null?void 0:We.length)==null?void 0:rt.realValue)}),He=((oe=(de=Ve==null?void 0:Ve[0])==null?void 0:de.length)==null?void 0:oe.realValue)||0,state$1.multitrack>0&&_e.length===2){const Be=((Z=(Y=Ve[0])==null?void 0:Y.length)==null?void 0:Z.realValue)||0;U=(((ae=(ue=Ve[Ve.length-1])==null?void 0:ue.length)==null?void 0:ae.realValue)||0)-Be,_=U!==0}}(pe=z[z.length-1])!=null&&pe.isDouble&&!_e.length&&($e=!0),state$1.multitrack>0&&!nt&&_&&(nt=!0,He=U,_=!1,U=0),Q.push(g.currentTimeStamp.realValue-N),N=g.currentTimeStamp.realValue;for(const Ve of we){let Be=Ve.notes[0];if(Be.IsGraceNote&&(Be=Be.parentStaffEntry.voiceEntries.find(Xe=>!Xe.isGrace).notes[0]),Be.fixedKey=Be.ParentVoiceEntry.ParentVoice.Parent.SubInstruments[0].fixedKey||0,(Se=Be==null?void 0:Be.voiceEntry)!=null&&Se.isGrace){nt=!0;let We=[...g.currentVoiceEntries].reduce((Xe,rt)=>(Xe.push(...rt.notes),Xe),[]);We=We.sort((Xe,rt)=>{var kt,Et;return((kt=rt==null?void 0:rt.length)==null?void 0:kt.realValue)-((Et=Xe==null?void 0:Xe.length)==null?void 0:Et.realValue)}),He=He!=0?Math.min((ee=(ge=We==null?void 0:We[0])==null?void 0:ge.length)==null?void 0:ee.realValue,He):(F=(ne=We==null?void 0:We[0])==null?void 0:ne.length)==null?void 0:F.realValue}state$1.multitrack>0&&He>Be.length.realValue&&(He=Be.length.realValue),Be.maxNoteNum=at,z.push({note:Be,iterator:{...g},currentTime:He,isDouble:nt,isMutileSubject:$e,measuresTempoInBPM:(se=Be==null?void 0:Be.sourceMeasure)==null?void 0:se.tempoInBPM})}g.moveToNextVisibleVoiceEntry(!1),g.backJumpOccurred&&(G+=1),g.repeatIdx=G}const H=z.some(we=>we.measuresTempoInBPM!==z[0].measuresTempoInBPM);console.log("变速曲子",H,z);let R=[];for(let{note:we,iterator:_e,currentTime:at,isDouble:He,isMutileSubject:nt}of z){if(we){if(u!=((re=we==null?void 0:we.sourceMeasure)==null?void 0:re.MeasureNumberXML)&&(y=0),y===0&&u!=((J=we==null?void 0:we.sourceMeasure)==null?void 0:J.MeasureNumberXML)&&(u=(K=we==null?void 0:we.sourceMeasure)==null?void 0:K.MeasureNumberXML,l.push(we.sourceMeasure)),y===0&&state$1.isSpecialBookCategory)for(const ze of(ie=we.sourceMeasure)==null?void 0:ie.TempoExpressions)(fe=ze==null?void 0:ze.InstantaneousTempo)!=null&&fe.beatUnit&&(P=ze.InstantaneousTempo.beatUnit);D==((he=we.sourceMeasure)==null?void 0:he.MeasureNumberXML)&&m!==0?k++:(D=(le=we.sourceMeasure)==null?void 0:le.MeasureNumberXML,k=0);let $e=we.sourceMeasure.tempoInBPM;const{metronomeNoteIndex:Ve}=_e.currentMeasure;Ve!==0&&Ve>y&&($e=((me=o[o.length-1])==null?void 0:me.speed)||100);let Be=[];Be=[(ve=(be=we.sourceMeasure)==null?void 0:be.verticalMeasureList)==null?void 0:ve[0]];const{realValue:We}=_e.currentTimeStamp,{RealValue:Xe,Denominator:rt}=formatDuration(_e.currentMeasure.activeTimeSignature,_e.currentMeasure.duration);let{wholeValue:kt,numerator:Et,denominator:Ft,realValue:bt}=we.length;e[m]&&(bt=e[m]),He&&at>0&&at!=bt&&(bt=at),r&&nt&&Q[m+1]>0&&bt>Q[m+1]&&(bt=Q[m+1]);let st=E;state$1.isEvxml&&st0){const ze=state$1.gradual.find((mt,qe)=>{var St;const gt=state$1.gradual[qe+1];return mt[0].measureIndex<=Tt&&((St=mt[1])==null?void 0:St.measureIndex)>=Tt&&(!gt||(gt==null?void 0:gt[0].measureIndex)!==Tt)}),[Ye,ot]=ze||[];if(Ye&&ot){const mt=ot.measureIndex-Ye.measureIndex,qe=Ye.closedMeasureIndex==Tt&&y>=Ye.noteInMeasureIndex,gt=ot.closedMeasureIndex===Tt&&y0)){const ze=T[0]-(T[1]-T[0]),{resetXmlNoteIndex:Ye,endXmlNoteIndex:ot}=C,mt=ot;let qe=(T[T.length-1]-ze)/mt;if(qe=we.DotsXml?qe/1.5:qe,MM&&(Pt=(Te=o[m-1])==null?void 0:Te.speed);wt=(state$1.isSpecialBookCategory?getTimeByBeatUnit(P,Pt,_e.currentMeasure.activeTimeSignature.Denominator):c)||1;const gt=!(MM);M++,gt&&(M=0,C=void 0,T=void 0,S=[])}const ni=bt;let Ze=Ot||Math.min(Xe,bt)*formatBeatUnit(P)*(60/wt);const Qt=Xe*rt*(60/wt);["1788501975122489346","1788502467554750466"].includes(state$1.cbsExamSongId)&&(m==13&&(Ze=Ze/2),m==44&&(Ze=Ze*6),m==56&&(Ze=Ze*4)),E+=Ze,x+=Ze;let Wt=Ze+st;const jt=we.fixedKey||0,ct=(Pe=(ye=Be[0])==null?void 0:ye.vfVoices["1"])==null?void 0:Pe.tickables[k];if(o.length&&o[o.length-1].relativeTime===st)continue;if(m===0&&!state$1.isAppPlay){let ze=0;(((Ne=(Me=we.sourceMeasure.verticalMeasureList)==null?void 0:Me[0])==null?void 0:Ne.staffEntries)||[]).forEach(ot=>{var mt,qe,gt,St,At,Ct;(Ct=(At=(St=(gt=(qe=(mt=ot==null?void 0:ot.sourceStaffEntry)==null?void 0:mt.voiceEntries)==null?void 0:qe[0])==null?void 0:gt.notes)==null?void 0:St[0])==null?void 0:At.length)!=null&&Ct.realValue&&(ze+=ot.sourceStaffEntry.voiceEntries[0].notes[0].length.realValue)}),ze0&&(s+=A,state$1.fixtime=s),state$1.isEvxml&&(s=state$1.evXmlBeginTime?state$1.evXmlBeginTime:s,state$1.fixtime=s),console.log("节拍器时间",s,state$1.evXmlBeginTime)}let ri=(it=Be[0])==null?void 0:it.stave;we.sourceMeasure.multipleRestMeasures&&(B=we.sourceMeasure.multipleRestMeasures,I=0),IYe===(ct==null?void 0:ct.attrs.id)))==null?void 0:Qe.length)||0;ut=(Fe=we==null?void 0:we.noteTimeInfo[ze])==null?void 0:Fe.begin,Ut=(Oe=we==null?void 0:we.noteTimeInfo[ze])==null?void 0:Oe.end,ut&&(st=ut-s)}ct!=null&&ct.attrs.id&&R.push(ct==null?void 0:ct.attrs.id);const Ke={isStaccato:we.voiceEntry.isStaccato(),isRestFlag:we.isRestFlag,noteId:we.NoteToGraphicalNoteObjectId,measureListIndex:we.sourceMeasure.measureListIndex,MeasureNumberXML:we.sourceMeasure.MeasureNumberXML,_noteLength:ni,svgElement:ct,frequency:((ft=we==null?void 0:we.pitch)==null?void 0:ft.frequency)||-1,nextFrequency:((ke=we==null?void 0:we.pitch)==null?void 0:ke.nextFrequency)||-1,prevFrequency:((Re=we==null?void 0:we.pitch)==null?void 0:Re.prevFrequency)||-1,difftime:A,octaveOffset:(pt=Be[0])==null?void 0:pt.octaveOffset,speed:Pt,beatSpeed:wt,i:m,si:y,stepSpeeds:S,measureOpenIndex:l.length-1,measures:b,tempoInBPM:we.sourceMeasure.tempoInBPM,measureLength:Qt,relaMeasureLength:x,id:ct==null?void 0:ct.attrs.id,note:we.halfTone+12,fixtime:s,relativeTime:retain(st),time:state$1.isEvxml&&ut?retain(ut):retain(st+s),endtime:state$1.isEvxml&&Ut?retain(Ut):retain(Wt+s),relaEndtime:retain(Wt),realValue:We,halfTone:we.halfTone,noteElement:we,fixedKey:jt,realKey:0,duration:0,formatLyricsEntries:formatLyricsEntries(we),stave:ri,firstVerticalMeasure:Be[0],noteLength:1,osdmContext:i,speedbeatUnit:P,multipleRestMeasures:I,totalMultipleRestMeasures:B,measureSpeed:$e,maxNoteNum:we.maxNoteNum,repeatIdx:_e.repeatIdx};if(state$1.isEvxml&&Ke.repeatIdx&&Ke.i>0&&Ke.MeasureNumberXML===1&&Ke.noteId===0){const ze=state$1.evXmlBeginArr[Ke.repeatIdx]||0;Ke.time=Ke.time+ze,Ke.endtime=Ke.endtime+ze,E=E+ze,st=st+ze}Ke.realKey=d(we.halfTone-jt*12,Ke),Ke.duration=Ke.endtime-Ke.time;let Vt=((Ue=(lt=Be[0])==null?void 0:lt.vfVoices["1"])==null?void 0:Ue.tickables)||[];[121].includes(state$1.subjectId)&&(Vt=we.sourceMeasure.verticalSourceStaffEntryContainers),Vt=Vt.filter(ze=>{var Ye;return((Ye=ze.attrs)==null?void 0:Ye.type)!=="GhostNote"});const Yt=state$1.isCombineRender&&we.maxNoteNum?we.maxNoteNum:Vt.length;Ke.noteLength=Yt||1,o.push(Ke),a.push(Ke.id),b.push(Ke),ywe.relativeTime-_e.relativeTime).map((we,_e)=>({...we,i:_e}));console.timeEnd("音符跑完时间");try{i.cursor.reset()}catch(we){}return state$1.activeMeasureIndex=V[0].MeasureNumberXML,V},getNoteByMeasuresSlursStart=i=>{let e=i,r;if(i.noteElement.tie&&i.noteElement.tie.StartNote&&(r=i.noteElement.tie.StartNote),e&&r&&r!==e.noteElement){const s=[];for(const o of state$1.times)r===o.noteElement&&s.push(o);if(s.length)return s.find(o=>o.i===i.i-1)||s[0]}return e},parseXmlToRepeat=i=>{if(!i.length)return;let e=[],r=0,s=0;for(let o=0;o{let r=-1;if(state$1.repeatInfo.length){for(let s=state$1.repeatInfo.length-1;s>=0;s--){const{start:o,end:a}=state$1.repeatInfo[s];if(i<=o&&e>=a)return r=s,{repeatIdx:r,canRepeat:!0}}return{repeatIdx:r,canRepeat:!1}}else return{repeatIdx:r,canRepeat:!1}},customizationXml=i=>{var c,u;const e=Array.from(i.querySelectorAll("credit")),r=Array.from(i.querySelectorAll("creator")),s=Array.from(i.querySelectorAll("grace")),o=Array.from(i.getElementsByTagName("measure")),a=Array.from(i.getElementsByTagName("note"));let l=0;if(a&&a.length)for(const d of a)lS.getAttribute("segno")==="segno");!g&&m&&b&&d.parentNode.removeChild(d)}if(l>1&&!(i.querySelectorAll("repeat").length>0)){const g=o.last();if(g.getElementsByTagName("barline").length){const m=g.getElementsByTagName("barline")[0];m.innerHTML=m.innerHTML+''}else g.innerHTML=g.innerHTML+` light-heavy `}},analyzeEvxml=(i,e)=>{var u,d,g,m,y,b,S,A,E,x,P,T,C,M,B,I,k,D,O;const r=(g=(d=(u=i.getElementsByTagName("timegap")[0])==null?void 0:u.getElementsByTagName("values")[0])==null?void 0:d.getElementsByTagName("item")[0])==null?void 0:g.getAttribute("num"),s=(b=(y=(m=i.getElementsByTagName("timegap")[0])==null?void 0:m.getElementsByTagName("values")[0])==null?void 0:y.getElementsByTagName("item")[0])==null?void 0:b.getAttribute("den"),o=(E=(A=(S=i.getElementsByTagName("timegap")[0])==null?void 0:S.getElementsByTagName("values")[0])==null?void 0:A.getElementsByTagName("item")[1])==null?void 0:E.getAttribute("num"),a=(T=(P=(x=i.getElementsByTagName("timegap")[0])==null?void 0:x.getElementsByTagName("values")[0])==null?void 0:P.getElementsByTagName("item")[1])==null?void 0:T.getAttribute("den"),l=(C=i.getElementsByTagName("timegap"))!=null&&C.length?Array.from((k=(I=(B=(M=i.getElementsByTagName("timegap"))==null?void 0:M[0])==null?void 0:B.getElementsByTagName("values"))==null?void 0:I[0])==null?void 0:k.getElementsByTagName("item")):[],c=i.getElementsByTagName("measure")[0];if(c){const z=(O=(D=c.getElementsByTagName("times")[0])==null?void 0:D.getElementsByTagName("time")[0])==null?void 0:O.getAttribute("begin");state$1.evXmlBeginTime=z?z/1e3:r?60/state$1.originSpeed*r*4/s:0,state$1.secondEvXmlBeginTime=z?0:o?60/state$1.originSpeed*o*4/a:0;const N=i.getElementsByTagName("timegap").length>0,Q=i.getElementsByTagName("times").length>0;if(l&&l.length&&!z)for(const _ of l){const U=_==null?void 0:_.getAttribute("num"),G=_==null?void 0:_.getAttribute("den"),H=U?60/state$1.originSpeed*U*4/G:0;state$1.evXmlBeginArr.push(H)}console.log("🚀 ~ evxml解析","有timegap:",N,"有times:",Q,"timegap集合",state$1.evXmlBeginArr,"第一个timegap",state$1.evXmlBeginTime)}},compatibleXmlPitchVoice=i=>{var s,o,a;if(Array.from(i.getElementsByTagName("part-name")).map(l=>{var c,u;return((u=(c=l[0])==null?void 0:c.textContent)==null?void 0:u.trim().toLocaleUpperCase)!=="COMMON"}).length==1){const c=((a=(o=(s=(Array.from(i.getElementsByTagName("instrument-name"))||[])[0])==null?void 0:s.textContent)==null?void 0:o.trim())==null?void 0:a.toLocaleLowerCase())||"";let u=!1;switch(state$1.musicalCodeId){case 37:case 38:u=!!(!c||c.includes("solo")||c.includes("tenor recorder"));break;case 33:u=!!(!c||c.includes("solo")||c.includes("panpipes"));break;case 34:u=!!(!c||c.includes("solo")||c.includes("ocarina"));break;case 35:u=!!(!c||c.includes("solo")||c.includes("woodwind"));break;case 39:u=!!(!c||c.includes("solo")||c.includes("whistling"));break;default:u=!!(!c||c.includes("solo"));break}window.xmlNeedAdjustVoice=u}},Notfind=defineComponent({name:"notfund",render(){return createVNode(Empty,{image:"error",description:this.$route.path+" 路径不存在"},{default:()=>[createVNode(Button$1,{type:"primary",onClick:()=>this.$router.replace("/")},{default:()=>[createTextVNode("返回首页")]})]})}});export{store_legacy as $,Swipe as A,SwipeItem as B,Popup$1 as C,handleEndSoundCheck as D,handleViewReport as E,Fragment as F,handleStartEvaluat as G,api_videoUpdate as H,Icon$1 as I,api_proxyServiceMessage as J,connectWebsocket as K,getNoteByMeasuresSlursStart as L,useClickAway as M,NoticeBar as N,Button$1 as O,Popover as P,Slider as Q,RouterView as R,Snackbar$1 as S,TheError as T,handleSetSpeed as U,Tabs as V,Tab as W,Cell as X,Switch$1 as Y,api_openCamera as Z,api_closeCamera as _,setBehaviorId as a,handleInitTick as a$,toRefs as a0,Picker as a1,getInstrumentName as a2,Popup as a3,isVNode as a4,api_cloudDestroy as a5,postMessage$1 as a6,useRoute$1 as a7,showLoadingToast as a8,request$1$1 as a9,isRhythmicExercises as aA,subjectFingering as aB,formateTimes as aC,Metronome as aD,getStorageSpeed as aE,nextTick as aF,api_cloudLoading as aG,addMeasureScore as aH,createRouter as aI,createWebHashHistory as aJ,Notfind as aK,setStoreData as aL,createApp as aM,Vue3Lottie as aN,RadioGroup as aO,Radio as aP,api_savePicture as aQ,musicRenderTypeKey as aR,resetRenderMusicScore as aS,handleRessetState as aT,toggleFollow as aU,getAudioCurrentTime as aV,handleFollowStart as aW,handleFollowEnd as aX,api_setEventTracking as aY,Tick as aZ,FollowPractice as a_,closeToast as aa,getBehaviorId as ab,getCampId as ac,onUnmounted as ad,handleChangeSection as ae,togglePlay as af,Circle as ag,metronomeData as ah,handleResetPlay as ai,Badge as aj,api_back as ak,useRouter as al,Field as am,getSecondRPM as an,customData as ao,setGlobalData as ap,api_setStatusBarVisibility as aq,resetMusicScore as ar,onBeforeUnmount as as,Skeleton as at,Transition as au,MusicScore as av,AudioList as aw,Evaluating as ax,isSpecialShapedScreen as ay,mappingVoicePart as az,setCampId as b,evaluatCreateMusicPlayer as b$,promisefiyPostMessage as b0,api_setCache as b1,getToken as b2,api_suspendPlay as b3,followData as b4,hanldeDirectSelection as b5,showDialog as b6,api_openWebView as b7,musicscoresettingKey as b8,createNamespace$1 as b9,resetPlaybackToStart as bA,api_openAdjustRecording as bB,startCheckDelay as bC,api_musicPracticeRecordVideoUpload as bD,IPlatform as bE,PcEndIcon as bF,api_musicSheetPage as bG,getGuidance as bH,setGuidance as bI,usePageVisibility as bJ,toRef as bK,GuideIndex as bL,getFingeringConfig as bM,api_subjectList as bN,howler as bO,api_keepScreenLongLight as bP,getMusicDetail as bQ,HeaderTop as bR,Title as bS,ToggleMusicSheet as bT,WorkIndex as bU,setCustomGradual as bV,setCustomNoteRealValue as bW,addNoteBBox as bX,createFixedCursor as bY,calculateDistance as bZ,initMidi as b_,getCurrentInstance as ba,addUnit as bb,isDef$1 as bc,inBrowser$2 as bd,numericProp as be,truthProp as bf,makeStringProp as bg,withDirectives as bh,resolveDirective as bi,mergeProps as bj,withInstall as bk,Comment as bl,Text as bm,api_getToken as bn,studentQueryUserInfo as bo,debounce as bp,getAudioDuration as bq,api_musicPracticeRecordSave as br,icon_title as bs,icon_cancel as bt,icon_confirm as bu,defineAsyncComponent as bv,__vitePreload as bw,headTopData as bx,api_getDeviceDelay as by,checkUseEarphone as bz,onMounted as c,api_setRequestedOrientation as c0,makeNumericProp as c1,useTabStatus as c2,useScrollParent as c3,onUpdated as c4,useExpose as c5,useEventListener$1 as c6,useRect as c7,isHidden as c8,Loading$1 as c9,commonjsGlobal as ca,EnumMusicRenderType as cb,moveGracePosition as cc,api_musicPracticeRecordDetail as cd,sendResult as ce,addCheckPlayEnd as cf,removeResult as cg,removeCheckPlayEnd as ch,api_toggleTune as ci,getEarphone as cj,defineComponent as d,computed as e,createVNode as f,getQuery as g,storeData as h,setUserInfo as i,getRandomKey as j,createTextVNode as k,ref as l,state$1 as m,reactive as n,onBeforeMount as o,evaluatingData as p,showToast as q,request as r,setToken as s,queryString as t,api_shareAchievements as u,browser as v,watch as w,handlePerformDetection as x,handleStartBegin as y,handleEndBegin as z};