1import{a as e,n as t,r as n,t as r}from"./DkW27tQK.js";import{t as i}from"./Cb5XjXk3.js";import{a,c as o,i as s,n as c,o as l,s as u,t as d}from"./CK8KnKct.js";import{F as f,O as p,T as m,_ as h,a as g,f as _,ft as v,gt as y,m as b,mt as x,p as S,pt as C,u as w,v as T,w as E,x as D,y as O}from"./Pojdp4OO.js";import{B as k,C as A,D as j,E as M,F as N,H as P,L as F,M as ee,O as te,P as I,Q as L,R,T as ne,Y as z,Z as re,_ as B,b as V,d as ie,f as H,g as ae,h as oe,i as se,j as ce,k as le,l as U,nt as W,p as G,q as ue,rt as de,u as K,v as q,w as fe,y as J,z as pe}from"./CpJhg-9k.js";import{d as me,i as he,l as ge,r as _e}from"./Bfkz9G3o.js";import{t as ve}from"./Dfi9pfqk.js";import{a as ye,t as be}from"./Cunq12qN.js";import{t as xe}from"./8amMRSWJ.js";import{t as Se}from"./DiaQPiLP.js";import{n as Ce,t as we}from"./BhbmV7-Z.js";import{t as Y}from"./BBq0fxaf.js";import{f as Te,i as Ee,l as De,m as Oe,n as ke,o as Ae,p as je,r as Me,s as Ne,u as Pe}from"./BWvciV-z.js";import{i as Fe,s as Ie}from"./Dd3-DFdV.js";import{t as Le}from"./C33mWia3.js";import{n as Re}from"./Ca0cmFph.js";import{n as ze,t as Be}from"./DnwQSsIw.js";import{t as Ve}from"./eGR7FO07.js";import{t as He}from"./Bop44knL.js";import{i as Ue}from"./CkxTgNXJ.js";import{t as We}from"./30YgTJtn.js";import{r as Ge}from"./DNnIhUw8.js";import{i as Ke}from"./DHI6ZMoS.js";import{n as qe,t as Je}from"./BE2NcSlO.js";import{t as Ye}from"./CeA54qlt.js";import{i as Xe,n as Ze,t as Qe}from"./CdbnR8Gc.js";import{n as $e,t as et}from"./DdDV_r24.js";import{t as tt}from"./pWtdodt7.js";import{$ as nt,A as rt,B as it,C as at,D as ot,E as st,F as ct,G as lt,H as ut,I as dt,J as ft,K as pt,L as mt,O as ht,Q as gt,R as _t,S as vt,T as yt,U as bt,V as xt,W as St,Y as Ct,Z as wt,_ as Tt,_t as Et,a as Dt,at as Ot,b as kt,bt as At,c as jt,ct as Mt,d as Nt,dt as Pt,et as Ft,f as It,ft as Lt,g as Rt,gt as zt,h as Bt,ht as Vt,i as Ht,it as Ut,j as Wt,k as Gt,l as Kt,lt as qt,n as Jt,nt as Yt,o as Xt,pt as Zt,q as Qt,r as $t,rt as en,s as tn,st as nn,t as rn,u as an,w as on,x as sn,xt as cn,y as ln,yt as un,z as dn}from"./B0d0TX86.js";import{a as fn,f as pn,l as mn}from"./CmMd3ZU6.js";import{a as hn,c as gn,l as _n,n as vn,o as yn,r as bn,s as xn,t as Sn}from"./8ayyt8c_.js";import{c as Cn,f as wn,l as Tn,n as En,r as Dn}from"./Cze3iQbs.js";import{C as On,D as kn,E as An,O as jn,T as Mn,_ as Nn,a as Pn,b as Fn,d as In,g as Ln,o as Rn,p as zn,r as Bn}from"./CXGsHkGT.js";import{t as Vn}from"./Cf2Zm6Zf.js";import{i as Hn,n as Un}from"./A0Pwwm_S.js";import{t as Wn}from"./B1eRcSzv.js";import{i as Gn,n as Kn,t as qn}from"./Bwc2ZUzs.js";import{a as Jn,i as Yn,n as X,o as Xn,s as Zn}from"./BUIA2SYS.js";import{a as Qn,d as $n,f as er,l as tr,s as nr,u as rr}from"./BagoZyOj.js";import{r as ir,t as ar}from"./QOahEveq.js";import{i as or,n as sr,t as cr}from"./CPc1lbhf.js";import{$ as lr,A as ur,B as dr,C as fr,D as pr,F as mr,G as hr,H as gr,I as _r,J as vr,L as yr,M as br,N as xr,P as Sr,Q as Cr,R as wr,S as Tr,T as Er,U as Dr,V as Or,W as kr,X as Ar,Y as jr,Z as Mr,a as Nr,at as Pr,b as Fr,d as Ir,et as Lr,f as Rr,h as zr,i as Br,it as Vr,k as Hr,m as Ur,n as Wr,nt as Gr,o as Kr,ot as qr,q as Jr,r as Yr,rt as Xr,s as Zr,t as Qr,tt as $r,v as ei,w as ti,y as ni,z as ri}from"./CYan4OH5.js";import{n as ii}from"./CjWhKK7Y.js";import{_ as ai,a as oi,h as si,i as ci,l as li,o as ui,r as di,s as fi,v as pi,y as mi}from"./IkuoKkRF.js";import{S as hi,_ as gi,a as _i,d as vi,h as yi,i as bi,l as xi,m as Si,n as Ci,r as wi,s as Ti,t as Ei,u as Di,v as Oi,y as ki}from"./DbU3DzAp.js";import{n as Ai,t as ji}from"./BGUzNcSE.js";import{t as Mi}from"./BwzzLHte.js";import{t as Ni}from"./Dfvzj6n2.js";import{t as Pi}from"./DeFBh1se.js";import{B as Fi,Cn as Ii,Ct as Li,Dt as Ri,K as zi,M as Bi,O as Vi,On as Hi,R as Ui,Sn as Wi,St as Gi,W as Ki,Y as qi,Yt as Ji,Z as Yi,a as Xi,an as Zi,c as Qi,cn as $i,d as ea,et as ta,f as na,fn as ra,gn as ia,gt as aa,hn as oa,i as sa,in as ca,l as la,ln as ua,n as da,on as fa,pn as pa,q as ma,r as ha,rn as ga,s as _a,sn as va,u as ya,un as ba,vn as xa,wn as Sa,wt as Ca,xt as wa,yn as Ta,z as Ea}from"./DvQD5s06.js";import"./CkP7hq0S.js";import{n as Da}from"./BcDc1_Ru.js";import{t as Oa}from"./DSr_lfFX.js";import{n as ka,r as Aa,t as ja}from"./ClodnHQH.js";import{n as Ma}from"./BN36g6lq.js";import{n as Na}from"./DCTsfsvY.js";import{n as Pa}from"./D7aeSaTP.js";import{t as Fa}from"./B1mhDUwb.js";import{i as Ia,n as La,s as Ra,t as za}from"./H6J5Kati.js";import{n as Ba}from"./Dd-O5wYC.js";import{t as Va}from"./C-2e_qR8.js";import{t as Ha}from"./BjLUfFLn.js";import{t as Ua}from"./C6zeDrFw.js";import{t as Wa}from"./BaeTApsU.js";import{t as Ga}from"./C0GJiHCx.js";import{t as Ka}from"./D2LCeqW-.js";import{t as qa}from"./CmqYliA1.js";import{r as Ja}from"./CUKqshKd.js";import{a as Ya,r as Xa}from"./CvuOnhwC.js";import{t as Za}from"./D6e3B1cl.js";import{t as Qa}from"./YKtipFH3.js";import{t as $a}from"./BDNMzG2s.js";import{t as eo}from"./8y2kjqZd.js";import{r as to}from"./Fs4Eb2N6.js";import{g as no}from"./C6ahYJ9x.js";import{C as ro,_ as io,g as ao,h as oo,t as so,w as co,y as lo}from"./D6V3esTw.js";import{H as uo,L as fo,P as po,d as mo,f as ho,g as go,t as _o}from"./Bt0F8rjB.js";import{t as vo}from"./CwviWiUN.js";import{t as yo}from"./BMNQOwXU.js";import{n as bo}from"./BLrs7zC2.js";import{t as xo}from"./BPMoEr-2.js";import{t as So}from"./C-VYCe0t.js";import{t as Co}from"./kGV632o0.js";import{t as wo}from"./CblAYOcJ.js";import{t as To}from"./oU3REdi_.js";import{t as Eo}from"./ButxQBhc.js";import{t as Do}from"./GemVWi4P.js";import{t as Oo}from"./CR7mytnQ.js";import{t as ko}from"./4L5VsNvO.js";import{n as Ao,t as jo}from"./Efx_4XEF.js";import{t as Mo}from"./-dYmKZLi.js";import{a as No,c as Po,d as Fo,f as Io,i as Lo,n as Ro,r as zo,t as Bo}from"./BQiTb82b.js";import{t as Vo}from"./DxSHnEQm.js";import{t as Ho}from"./DJBb-HKt.js";import{t as Uo}from"./C15f6mix.js";import{t as Wo}from"./Vd-_mOyK.js";import{i as Go,n as Ko,r as qo}from"./csookdI-.js";import{n as Jo}from"./UegvUOE0.js";import{n as Yo}from"./DnCca8ee.js";import{t as Xo}from"./B4HCqzZu.js";import{a as Zo,c as Qo,n as $o,r as es,t as ts}from"./1vLLOXk6.js";import{t as ns}from"./jCHATZai.js";import{t as rs}from"./C6rMU5gs.js";import{_ as is,a as as,d as os,f as ss,g as cs,m as ls,n as us,o as ds,p as fs,s as ps,u as ms}from"./Da6vHxCQ.js";
1import{a as hs,d as gs,f as _s,i as vs,l as ys,n as bs,r as xs,s as Ss,u as Cs}from"./Dbv8bCwn.js";import{t as ws}from"./B1azRG2n.js";import{t as Ts}from"./GdFoPNGp.js";import{n as Es}from"./DicXl96K.js";import{a as Ds,i as Os,n as ks,r as As}from"./t2px0_jN.js";import{C as js,E as Ms,S as Ns,g as Ps,h as Fs,i as Is,o as Ls,r as Rs,t as zs,v as Bs,x as Vs}from"./Dammhpdy.js";import{r as Hs}from"./Cg793J4d.js";import{a as Us,c as Ws,d as Gs,f as Ks,h as qs,i as Js,l as Ys,m as Xs,n as Zs,o as Z,p as Qs,r as $s,s as ec,t as tc,u as nc}from"./9aq-xEIR.js";import{a as rc,c as ic,i as ac,n as oc,o as sc,r as cc,s as lc,t as uc}from"./D_WCDVuZ.js";import{a as dc,c as fc,d as pc,f as mc,g as hc,h as gc,i as _c,l as vc,m as yc,n as bc,o as xc,p as Sc,r as Cc,s as wc,t as Tc,u as Ec}from"./DfTIc4ba.js";import{a as Dc,i as Oc,n as kc,r as Ac}from"./BwaB-Gxr.js";import{C as jc,S as Mc,_ as Nc,a as Pc,b as Fc,c as Ic,d as Lc,f as Rc,g as zc,h as Bc,i as Vc,l as Hc,m as Uc,n as Wc,o as Gc,p as Kc,r as qc,s as Jc,t as Yc,u as Xc,v as Zc,w as Qc,x as $c,y as el}from"./wF5NeOh-.js";import{a as tl,c as nl,d as rl,i as il,l as al,n as ol,o as sl,r as cl,s as ll,t as ul,u as dl}from"./Lv5C5dXh.js";import{_ as fl,a as pl,c as ml,i as hl,l as gl,m as _l,n as vl,p as yl,r as bl,t as xl,u as Sl}from"./DB0z7bl6.js";import{A as Cl,C as wl,E as Tl,G as El,H as Dl,K as Ol,M as kl,N as Al,P as jl,S as Ml,U as Nl,X as Pl,_ as Fl,a as Il,b as Ll,dt as Rl,et as zl,ft as Bl,h as Vl,i as Hl,j as Ul,mt as Wl,n as Gl,nt as Kl,pt as ql,q as Jl,rt as Yl,ut as Xl,v as Zl,w as Ql,x as $l}from"./DQNU971a.js";import{t as eu}from"./DVdnQZlK.js";import{n as tu,r as nu,t as ru}from"./D3sQWlhs.js";import{C as iu,D as au,E as ou,F as su,I as cu,L as lu,M as uu,N as du,P as fu,R as pu,S as mu,T as hu,a as gu,b as _u,c as vu,d as yu,f as bu,g as xu,h as Su,l as Cu,n as wu,o as Tu,r as Eu,s as Du,t as Ou,w as ku,y as Au,z as ju}from"./CWicAUmS.js";import{i as Mu,n as Nu,r as Pu,t as Fu}from"./C517uOM1.js";import{t as Q}from"./Ckq_1JGl.js";import{u as Iu}from"./DHZil7Ck.js";import{l as Lu}from"./COAyi-Xe.js";import{t as Ru}from"./CUyAtxgo.js";import{t as zu}from"./BLATjnbF.js";import{t as Bu}from"./CwnHA0LI.js";import{t as Vu}from"./CraRGtvZ.js";import{t as Hu}from"./ThYxtji1.js";import{t as Uu}from"./Cd-P6skZ.js";import{t as Wu}from"./BilZSao6.js";import{t as Gu}from"./CtX6PORt.js";import{t as Ku}from"./Cwfr2Th2.js";import{t as qu}from"./CT2bN-hp.js";import{t as Ju}from"./BALf4HQG.js";import{i as Yu,t as Xu}from"./D-JToqUV.js";import"./skkwTsY4.js";import{a as Zu,i as Qu,n as $u,r as ed,t as td}from"./CwAtf7iz.js";import{a as nd,c as rd,i as id,l as ad,n as od,o as sd,r as cd,s as ld,t as ud,u as dd}from"./BBeoqsQZ.js";import{t as fd}from"./Cw2p5MCg.js";import{t as pd}from"./CVNb4YCs.js";import{n as md,r as hd}from"./BF9fMPTU.js";import{n as gd}from"./D08jhRGL.js";import{t as _d}from"./Dwh80MKR.js";import{c as vd,n as yd,s as bd}from"./DrkleFRl.js";import{S as xd,m as Sd,n as Cd,o as wd}from"./DBt__2wB.js";import{a as Td,h as Ed,l as Dd,m as Od,r as kd}from"./BT0X5vPC.js";import{t as Ad}from"./DTGp6j-q.js";import{t as jd}from"./B6JgoYfQ.js";import{t as Md}from"./D_k5qTSr.js";import{t as Nd}from"./BYu2aM3o.js";import{t as Pd}from"./BlTPmuR0.js";import{t as Fd}from"./Bb6X3sNO.js";import{t as Id}from"./BjB9EyGF.js";import{t as Ld}from"./Bg4wCqUa.js";import{t as Rd}from"./zv9uQv2K.js";import{t as zd}from"./CsfQZmLN.js";import{t as Bd}from"./Dh5MYb6Z.js";import{t as Vd}from"./C0yNHi9c.js";import{t as Hd}from"./Dx3KbWBT.js";import{t as Ud}from"./DxHq-iL1.js";import{t as Wd}from"./DAcKkSNZ.js";import{t as Gd}from"./BU8eCzk4.js";import{t as Kd}from"./B0ORgjNx.js";import{t as qd}from"./DEzpc1zK.js";import{t as Jd}from"./DP_dUggG.js";import{t as Yd}from"./DQ_jkiPU.js";import{t as Xd}from"./BCmhXD_6.js";import{t as Zd}from"./4Fo0zleL.js";import{t as Qd}from"./RpWkHYQc.js";import{t as $d}from"./DdUzpzHJ.js";import{t as ef}from"./DQO9PV3m.js";import{t as tf}from"./CaGHoSOC.js";import{t as nf}from"./WdUPg6v8.js";import{t as rf}from"./BRL2fwfr.js";import{c as af,l as of,u as sf}from"./BfKZGPMQ.js";import{t as cf}from"./eAMeg7a5.js";import{t as lf}from"./oqndxv4d.js";import{n as uf}from"./BIrjlK-F.js";import{n as df}from"./CJCNxhpK.js";import{a as ff,o as pf,t as mf}from"./Dpl6L24T.js";import{a as hf,i as gf,r as _f,t as vf}from"./KC341ts5.js";import{t as yf}from"./CBHxkNYt.js";import{t as bf}from"./CNoUcDKW.js";import{t as xf}from"./CFEcU_7f.js";import{t as Sf}from"./Dg904UIs.js";import{t as Cf}from"./CIt0scxV.js";import{n as wf,r as Tf}from"./CZVEAbIL.js";import{t as Ef}from"./C-e1thI2.js";import{t as Df}from"./KFpUTeir.js";import{r as Of,t as kf}from"./BB2d5LNU.js";import{t as Af}from"./DZV5w6je.js";import{t as jf}from"./BndWmEc2.js";import{t as Mf}from"./DVMGllTw.js";import{t as Nf}from"./BO_UJU_r.js";import{t as Pf}from"./B--LM4LX.js";import{t as Ff}from"./aQ7PCkqc.js";import{t as If}from"./DDoSPEqw.js";import{t as Lf}from"./dCJcSiLf.js";import{t as Rf}from"./CS9NA7rK.js";import{t as zf}from"./rJucyMrz.js";import{t as Bf}from"./Bh3ZTrfp.js";import{t as Vf}from"./PIt4uGBy.js";import{t as Hf}from"./CBVjojcG.js";import{t as Uf}from"./DKkWTvqC.js";import{t as Wf}from"./DSr_AbhJ.js";import{t as Gf}from"./DWJI41qF.js";import{t as Kf}from"./7h8tNsPc.js";import{t as qf}from"./Dkt-07P6.js";import{t as Jf}from"./Bw1qop6x.js";import{t as Yf}
1from"./CpbYyP6b.js";import{t as Xf}from"./BW04KueX.js";import{t as Zf}from"./DwJKnMEr.js";import{t as Qf}from"./mP6GuJdV.js";import{t as $f}from"./BGZl6LxX.js";import{t as ep}from"./3pae0c2M.js";import{t as tp}from"./Dsyxo0Zf.js";var np=t((()=>{(function(e){var t={objectMaxDepth:5,urlErrorParamsEnabled:!0};function n(e){if(R(e))L(e.objectMaxDepth)&&(t.objectMaxDepth=r(e.objectMaxDepth)?e.objectMaxDepth:NaN),L(e.urlErrorParamsEnabled)&&W(e.urlErrorParamsEnabled)&&(t.urlErrorParamsEnabled=e.urlErrorParamsEnabled);else return t}function r(e){return re(e)&&e>0}function i(e,n){n||=Error;var r=`https://errors.angularjs.org/1.8.3/`,i=r.replace(`.`,`\\.`)+`[\\s\\S]*`,a=new RegExp(i,`g`);return function(){var i=arguments[0],o=arguments[1],s=`[`+(e?e+`:`:``)+i+`] `,c=Ce(arguments,2).map(function(e){return ft(e,t.objectMaxDepth)}),l,u;if(s+=o.replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1);return t<c.length?c[t].replace(a,``):e}),s+=` 2`+r+(e?e+`/`:``)+i,t.urlErrorParamsEnabled)for(u=0,l=`?`;u<c.length;u++,l=`&`)s+=l+`p`+u+`=`+encodeURIComponent(c[u]);return new n(s)}}var a=/^\/(.+)\/([a-z]*)$/,o=`validity`,s=Object.prototype.hasOwnProperty,c=function(e){return z(e)?e.toLowerCase():e},l=function(e){return z(e)?e.toUpperCase():e},u,d,f,p=[].slice,m=[].splice,h=[].push,g=Object.prototype.toString,_=Object.getPrototypeOf,v=i(`ng`),y=e.angular||={},b,x=0;u=e.document.documentMode;function S(e){if(e==null||oe(e))return!1;if(V(e)||z(e)||d&&e instanceof d)return!0;var t=`length`in Object(e)&&e.length;return re(t)&&(t>=0&&t-1 in e||typeof e.item==`function`)}function C(e,t,n){var r,i;if(e){if(H(e))for(r in e)r!==`prototype`&&r!==`length`&&r!==`name`&&e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else if(V(e)||S(e)){var a=typeof e!=`object`;for(r=0,i=e.length;r<i;r++)(a||r in e)&&t.call(n,e[r],r,e)}else if(e.forEach&&e.forEach!==C)e.forEach(t,n,e);else if(ne(e))for(r in e)t.call(n,e[r],r,e);else if(typeof e.hasOwnProperty==`function`)for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else for(r in e)s.call(e,r)&&t.call(n,e[r],r,e)}return e}function w(e,t,n){for(var r=Object.keys(e).sort(),i=0;i<r.length;i++)t.call(n,e[r[i]],r[i]);return r}function T(e){return function(t,n){e(n,t)}}function E(){return++x}function D(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function O(e,t,n){for(var r=e.$$hashKey,i=0,a=t.length;i<a;++i){var o=t[i];if(R(o)||H(o))for(var s=Object.keys(o),c=0,l=s.length;c<l;c++){var u=s[c],d=o[u];n&&R(d)?B(d)?e[u]=new Date(d.valueOf()):ae(d)?e[u]=new RegExp(d):d.nodeName?e[u]=d.cloneNode(!0):J(d)?e[u]=d.clone():u!==`__proto__`&&(R(e[u])||(e[u]=V(d)?[]:{}),O(e[u],[d],!0)):e[u]=d}}return D(e,r),e}function k(e){return O(e,p.call(arguments,1),!1)}function A(e){return O(e,p.call(arguments,1),!0)}function j(e){return parseInt(e,10)}var M=Number.isNaN||function(e){return e!==e};function N(e,t){return k(Object.create(e),t)}function P(){}P.$inject=[];function F(e){return e}F.$inject=[];function ee(e){return function(){return e}}function te(e){return H(e.toString)&&e.toString!==g}function I(e){return e===void 0}function L(e){return e!==void 0}function R(e){return typeof e==`object`&&!!e}function ne(e){return typeof e==`object`&&!!e&&!_(e)}function z(e){return typeof e==`string`}function re(e){return typeof e==`number`}function B(e){return g.call(e)===`[object Date]`}function V(e){return Array.isArray(e)||e instanceof Array}function ie(e){switch(g.call(e)){case`[object Error]`:return!0;case`[object Exception]`:return!0;case`[object DOMException]`:return!0;default:return e instanceof Error}}function H(e){return typeof e==`function`}function ae(e){return g.call(e)===`[object RegExp]`}function oe(e){return e&&e.window===e}function se(e){return e&&e.$evalAsync&&e.$watch}function ce(e){return g.call(e)===`[object File]`}function le(e){return g.call(e)===`[object FormData]`}function U(e){return g.call(e)===`[object Blob]`}function W(e){return typeof e==`boolean`}function G(e){return e&&H(e.then)}var ue=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/;function de(e){return e&&re(e.length)&&ue.test(g.call(e))}function K(e){return g.call(e)===`[object ArrayBuffer]`}var q=function(e){return z(e)?e.trim():e},fe=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,`\\$1`).replace(/\x08/g,`\\x08`)};function J(e){return!!(e&&(e.nodeName||e.prop&&e.attr&&e.find))}function pe(e){for(var t={},n=e.split(`,`),r=0;r<n.length;r++)t[n[r]]=!0;return t}function me(e){return c(e.nodeName||e[0]&&e[0].nodeName)}function he(e,t){return Array.prototype.indexOf.call(e,t)!==-1}function ge(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function _e(e,t,n){var i=[],a=[];if(n=r(n)?n:NaN,t){if(de(t)||K(t))throw v(`cpta`,`Can't copy! TypedArray de
2stination cannot be mutated.`);if(e===t)throw v(`cpi`,`Can't copy! Source and destination are identical.`);return V(t)?t.length=0:C(t,function(e,n){n!==`$$hashKey`&&delete t[n]}),i.push(e),a.push(t),o(e,t,n)}return c(e,n);function o(e,t,n){if(n--,n<0)return`...`;var r=t.$$hashKey,i;if(V(e))for(var a=0,o=e.length;a<o;a++)t.push(c(e[a],n));else if(ne(e))for(i in e)t[i]=c(e[i],n);else if(e&&typeof e.hasOwnProperty==`function`)for(i in e)e.hasOwnProperty(i)&&(t[i]=c(e[i],n));else for(i in e)s.call(e,i)&&(t[i]=c(e[i],n));return D(t,r),t}function c(e,t){if(!R(e))return e;var n=i.indexOf(e);if(n!==-1)return a[n];if(oe(e)||se(e))throw v(`cpws`,`Can't copy! Making copies of Window or Scope instances is not supported.`);var r=!1,s=l(e);return s===void 0&&(s=V(e)?[]:Object.create(_(e)),r=!0),i.push(e),a.push(s),r?o(e,s,t):s}function l(e){switch(g.call(e)){case`[object Int8Array]`:case`[object Int16Array]`:case`[object Int32Array]`:case`[object Float32Array]`:case`[object Float64Array]`:case`[object Uint8Array]`:case`[object Uint8ClampedArray]`:case`[object Uint16Array]`:case`[object Uint32Array]`:return new e.constructor(c(e.buffer),e.byteOffset,e.length);case`[object ArrayBuffer]`:if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case`[object Boolean]`:case`[object Number]`:case`[object String]`:case`[object Date]`:return new e.constructor(e.valueOf());case`[object RegExp]`:var n=new RegExp(e.source,e.toString().match(/[^/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case`[object Blob]`:return new e.constructor([e],{type:e.type})}if(H(e.cloneNode))return e.cloneNode(!0)}}function ve(e,t){return e===t||e!==e&&t!==t}function ye(e,t){if(e===t)return!0;if(e===null||t===null)return!1;if(e!==e&&t!==t)return!0;var n=typeof e,r=typeof t,i,a,o;if(n===r&&n===`object`){if(V(e)){if(!V(t))return!1;if((i=e.length)===t.length){for(a=0;a<i;a++)if(!ye(e[a],t[a]))return!1;return!0}}else if(B(e))return B(t)?ve(e.getTime(),t.getTime()):!1;else if(ae(e))return ae(t)?e.toString()===t.toString():!1;else{if(se(e)||se(t)||oe(e)||oe(t)||V(t)||B(t)||ae(t))return!1;for(a in o=tt(),e)if(!(a.charAt(0)===`$`||H(e[a]))){if(!ye(e[a],t[a]))return!1;o[a]=!0}for(a in t)if(!(a in o)&&a.charAt(0)!==`$`&&L(t[a])&&!H(t[a]))return!1;return!0}}return!1}var be=function(){if(!L(be.rules)){var t=e.document.querySelector(`[ng-csp]`)||e.document.querySelector(`[data-ng-csp]`);if(t){var n=t.getAttribute(`ng-csp`)||t.getAttribute(`data-ng-csp`);be.rules={noUnsafeEval:!n||n.indexOf(`no-unsafe-eval`)!==-1,noInlineStyle:!n||n.indexOf(`no-inline-style`)!==-1}}else be.rules={noUnsafeEval:r(),noInlineStyle:!1}}return be.rules;function r(){try{return Function(``),!1}catch{return!0}}},xe=function(){if(L(xe.name_))return xe.name_;var t,n,r=Le.length,i,a;for(n=0;n<r;++n)if(i=Le[n],t=e.document.querySelector(`[`+i.replace(`:`,`\\:`)+`jq]`),t){a=t.getAttribute(i+`jq`);break}return xe.name_=a};function Se(e,t,n){return e.concat(p.call(t,n))}function Ce(e,t){return p.call(e,t||0)}function we(e,t){var n=arguments.length>2?Ce(arguments,2):[];return H(t)&&!(t instanceof RegExp)?n.length?function(){return arguments.length?t.apply(e,Se(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}:t}function Y(t,n){var r=n;return typeof t==`string`&&t.charAt(0)===`$`&&t.charAt(1)===`$`?r=void 0:oe(n)?r=`$WINDOW`:n&&e.document===n?r=`$DOCUMENT`:se(n)&&(r=`$SCOPE`),r}function Te(e,t){if(!I(e))return re(t)||(t=t?2:null),JSON.stringify(e,Y,t)}function Ee(e){return z(e)?JSON.parse(e):e}var De=/:/g;function Oe(e,t){e=e.replace(De,``);var n=Date.parse(`Jan 01, 1970 00:00:00 `+e)/6e4;return M(n)?t:n}function ke(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Ae(e,t,n){n=n?-1:1;var r=e.getTimezoneOffset(),i=Oe(t,r);return ke(e,n*(i-r))}function je(e){e=d(e).clone().empty();var t=d(`<div></div>`).append(e).html();try{return e[0].nodeType===at?c(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(e,t){return`<`+c(t)})}catch{return c(t)}}function Me(e){try{return decodeURIComponent(e)}catch{}}function Ne(e){var t={};return C((e||``).split(`&`),function(e){var n,r,i;e&&(r=e=e.replace(/\+/g,`%20`),n=e.indexOf(`=`),n!==-1&&(r=e.substring(0,n),i=e.substring(n+1)),r=Me(r),L(r)&&(i=!L(i)||Me(i),s.call(t,r)?V(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i))}),t}function Pe(e){var t=[];return C(e,function(e,n){V(e)?C(e,function(e){t.push(Ie(n,!0)+(e===!0?``:`=`+Ie(e,!0)))}):t.push(Ie(n,!0)+(e===!0?``:`=`+Ie(e,!0)))}),t.length?t.join(`&`):``}function Fe(e){return Ie(e,!0).replace(/%26/gi,`&`).replace(/%3D/gi,`=`).replace(/%2B/gi,`+`)}function Ie(e,t){return encodeURIComponent(e).replace(/%40/gi,`@`).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%3B/gi,`;`).replace(/%20/g,t?`%20`:`+`)}var Le=[`ng-`,`data-ng-`,`ng:`,`x-ng-`];function Re(e,t){var n,r,i=Le.length;for(r=0;r<i;++r)if(n=Le[r]+t,z(n=e.getAttribute(n)))return n;return null}function ze(t){var n=t.currentScript;if(!n)return!0;
2if(!(n instanceof e.HTMLScriptElement||n instanceof e.SVGScriptElement))return!1;var r=n.attributes;return[r.getNamedItem(`src`),r.getNamedItem(`href`),r.getNamedItem(`xlink:href`)].every(function(e){if(!e)return!0;if(!e.value)return!1;var n=t.createElement(`a`);if(n.href=e.value,t.location.origin===n.origin)return!0;switch(n.protocol){case`http:`:case`https:`:case`ftp:`:case`blob:`:case`file:`:case`data:`:return!0;default:return!1}})}var Be=ze(e.document);function Ve(t,n){var r,i,a={};if(C(Le,function(e){var n=e+`app`;!r&&t.hasAttribute&&t.hasAttribute(n)&&(r=t,i=t.getAttribute(n))}),C(Le,function(e){var n=e+`app`,a;!r&&(a=t.querySelector(`[`+n.replace(`:`,`\\:`)+`]`))&&(r=a,i=a.getAttribute(n))}),r){if(!Be){e.console.error(`AngularJS: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match.`);return}a.strictDi=Re(r,`strict-di`)!==null,n(r,i?[i]:[],a)}}function He(t,n,r){R(r)||(r={}),r=k({strictDi:!1},r);var i=function(){if(t=d(t),t.injector())throw v(`btstrpd`,`App already bootstrapped with this element '{0}'`,(t[0]===e.document?`document`:je(t)).replace(/</,`<`).replace(/>/,`>`));n||=[],n.unshift([`$provide`,function(e){e.value(`$rootElement`,t)}]),r.debugInfoEnabled&&n.push([`$compileProvider`,function(e){e.debugInfoEnabled(!0)}]),n.unshift(`ng`);var i=Mn(n,r.strictDi);return i.invoke([`$rootScope`,`$rootElement`,`$compile`,`$injector`,function(e,t,n,r){e.$apply(function(){t.data(`$injector`,r),n(t)(e)})}]),i},a=/^NG_ENABLE_DEBUG_INFO!/,o=/^NG_DEFER_BOOTSTRAP!/;if(e&&a.test(e.name)&&(r.debugInfoEnabled=!0,e.name=e.name.replace(a,``)),e&&!o.test(e.name))return i();e.name=e.name.replace(o,``),y.resumeBootstrap=function(e){return C(e,function(e){n.push(e)}),i()},H(y.resumeDeferredBootstrap)&&y.resumeDeferredBootstrap()}function Ue(){e.name=`NG_ENABLE_DEBUG_INFO!`+e.name,e.location.reload()}function We(e){var t=y.element(e).injector();if(!t)throw v(`test`,`no injector found for element argument to getTestability`);return t.get(`$$testability`)}var Ge=/[A-Z]/g;function Ke(e,t){return t||=`_`,e.replace(Ge,function(e,n){return(n?t:``)+e.toLowerCase()})}var qe=!1;function Je(){var t;if(!qe){var n=xe();f=I(n)?e.jQuery:n?e[n]:void 0,f&&f.fn.on?(d=f,k(f.fn,{scope:sn.scope,isolateScope:sn.isolateScope,controller:sn.controller,injector:sn.injector,inheritedData:sn.inheritedData})):d=Vt,t=d.cleanData,d.cleanData=function(e){for(var n,r=0,i;(i=e[r])!=null;r++)n=(d._data(i)||{}).events,n&&n.$destroy&&d(i).triggerHandler(`$destroy`);t(e)},y.element=d,qe=!0}}function Ye(){Vt.legacyXHTMLReplacement=!0}function Xe(e,t,n){if(!e)throw v(`areq`,`Argument '{0}' is {1}`,t||`?`,n||`required`);return e}function Ze(e,t,n){return n&&V(e)&&(e=e[e.length-1]),Xe(H(e),t,`not a function, got `+(e&&typeof e==`object`?e.constructor.name||`Object`:typeof e)),e}function Qe(e,t){if(e===`hasOwnProperty`)throw v(`badname`,`hasOwnProperty is not a valid {0} name`,t)}function $e(e,t,n){if(!t)return e;for(var r=t.split(`.`),i,a=e,o=r.length,s=0;s<o;s++)i=r[s],e&&=(a=e)[i];return!n&&H(e)?we(a,e):e}function et(e){for(var t=e[0],n=e[e.length-1],r,i=1;t!==n&&(t=t.nextSibling);i++)(r||e[i]!==t)&&(r||=d(p.call(e,0,i)),r.push(t));return r||e}function tt(){return Object.create(null)}function nt(e){if(e==null)return``;switch(typeof e){case`string`:break;case`number`:e=``+e;break;default:e=te(e)&&!V(e)&&!B(e)?e.toString():Te(e)}return e}var rt=1,it=2,at=3,ot=8,st=9,ct=11;function lt(e){var t=i(`$injector`),n=i(`ng`);function r(e,t,n){return e[t]||(e[t]=n())}var a=r(e,`angular`,Object);return a.$$minErr=a.$$minErr||i,r(a,`module`,function(){var e={};return function(i,a,o){var s={};return function(e,t){if(e===`hasOwnProperty`)throw n(`badname`,`hasOwnProperty is not a valid {0} name`,t)}(i,`module`),a&&e.hasOwnProperty(i)&&(e[i]=null),r(e,i,function(){if(!a)throw t(`nomod`,`Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.`,i);var e=[],r=[],c=[],l=d(`$injector`,`invoke`,`push`,r),u={_invokeQueue:e,_configBlocks:r,_runBlocks:c,info:function(e){if(L(e)){if(!R(e))throw n(`aobj`,`Argument '{0}' must be an object`,`value`);return s=e,this}return s},requires:a,name:i,provider:f(`$provide`,`provider`),factory:f(`$provide`,`factory`),service:f(`$provide`,`service`),value:d(`$provide`,`value`),constant:d(`$provide`,`constant`,`unshift`),decorator:f(`$provide`,`decorator`,r),animation:f(`$animateProvider`,`register`),filter:f(`$filterProvider`,`register`),controller:f(`$controllerProvider`,`register`),directive:f(`$compileProvider`,`directive`),component:f(`$compileProvider`,`component`),config:l,run:function(e){return c.push(e),this}};return o&&l(o),u;function d(t,n,r,i){return i||=e,function(){return i[r||`push`]([t,n,arguments]),u}}function f(t,n,r){return r||=e,function(e,a){return a&&H(a)&&(a.$$moduleName=i),r.push([t,n,arguments]),u}}})}})}function ut(e,t){if(V(e)){t||=[];for(var n=0,r=e.length;n<r;n++)t[n]=e[n]}else if(R(e))for(var i in t||={},e)(i.charAt(0)!==`$`||i.charAt(1)!==`$`)&&(t[i]=e[i]);return t||e}function dt(e,t){var n=[];return r(t)&&(e=y.copy(e,null,t)),JSON.stringify(e,function(e,t){if(t=Y(e,t),R(t)){if(n.indexOf(t)>=0)return`...`;n.push(t)}return t})}function ft(e,t){return typeof e==`function`?e.toString().replace(/ \{[\s\S]*$/,``):I(e)?`undefined`:typeof e==`string`?e:dt(e,t)}var pt={full:`1.8.3`,major:1,minor:8,dot:3,codeName:`ultimate-farewell`};function mt(t){k(t,{errorHandlingConfig:n,bootstrap:He,copy:_e,extend:k,merge:A,equals:ye,element:d,forEac
2h:C,injector:Mn,noop:P,bind:we,toJson:Te,fromJson:Ee,identity:F,isUndefined:I,isDefined:L,isString:z,isFunction:H,isObject:R,isNumber:re,isElement:J,isArray:V,version:pt,isDate:B,callbacks:{$$counter:0},getTestability:We,reloadWithDebugInfo:Ue,UNSAFE_restoreLegacyJqLiteXHTMLReplacement:Ye,$$minErr:i,$$csp:be,$$encodeUriSegment:Fe,$$encodeUriQuery:Ie,$$lowercase:c,$$stringify:nt,$$uppercase:l}),b=lt(e),b(`ng`,[`ngLocale`],[`$provide`,function(e){e.provider({$$sanitizeUri:Vi}),e.provider(`$compile`,tr).directive({a:Za,input:Ho,textarea:Ho,form:ao,script:Gs,select:Ys,option:Xs,ngBind:Ko,ngBindHtml:Jo,ngBindTemplate:qo,ngClass:Zo,ngClassEven:$o,ngClassOdd:Qo,ngCloak:es,ngController:ts,ngForm:oo,ngHide:Rs,ngIf:as,ngInclude:os,ngInit:cs,ngNonBindable:Ds,ngPluralize:js,ngRef:Ns,ngRepeat:Ps,ngShow:Ls,ngStyle:zs,ngSwitch:Bs,ngSwitchWhen:Vs,ngSwitchDefault:Hs,ngOptions:As,ngTransclude:Ws,ngModel:xs,ngList:ls,ngChange:Yo,pattern:Z,ngPattern:Z,required:Zs,ngRequired:Zs,minlength:$s,ngMinlength:$s,maxlength:Qs,ngMaxlength:Qs,ngValue:Go,ngModelOptions:Ts}).directive({ngInclude:ss,input:Uo}).directive(Qa).directive(ns),e.provider({$anchorScroll:Nn,$animate:Un,$animateCss:Kn,$$animateJs:Vn,$$animateQueue:Hn,$$AnimateRunner:Gn,$$animateAsyncRun:Wn,$browser:X,$cacheFactory:Xn,$controller:dr,$document:fr,$$isDocumentHidden:pr,$exceptionHandler:mr,$filter:_a,$$forceReflow:hr,$interpolate:Ir,$interval:Rr,$$intervalFactory:zr,$http:jr,$httpParamSerializer:Cr,$httpParamSerializerJQLike:wr,$httpBackend:Nr,$xhrFactory:Mr,$jsonpCallbacks:Br,$location:si,$log:ci,$parse:Mi,$rootScope:Bi,$q:Ni,$$q:Pi,$sce:Yi,$sceDelegate:Ji,$sniffer:Xi,$$taskTrackerFactory:Zi,$templateCache:Zn,$templateRequest:ea,$$testability:ta,$timeout:ra,$window:ma,$$rAF:zi,$$jqLite:gn,$$Map:xn,$$cookieReader:ga})}]).info({angularVersion:`1.8.3`})}Vt.expando=`ng339`;var ht=Vt.cache={},gt=1;Vt._data=function(e){return this.cache[e[this.expando]]||{}};function _t(){return++gt}var vt=/-([a-z])/g,yt=/^-ms-/,bt={mouseleave:`mouseout`,mouseenter:`mouseover`},xt=i(`jqLite`);function St(e){return wt(e.replace(yt,`ms-`))}function Ct(e,t){return t.toUpperCase()}function wt(e){return e.replace(vt,Ct)}var Tt=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Et=/<|&#?\w+;/,Dt=/<([\w:-]+)/,Ot=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,kt={thead:[`table`],col:[`colgroup`,`table`],tr:[`tbody`,`table`],td:[`tr`,`tbody`,`table`]};kt.tbody=kt.tfoot=kt.colgroup=kt.caption=kt.thead,kt.th=kt.td;var At={option:[1,`<select multiple="multiple">`,`</select>`],_default:[0,``,``]};for(var jt in kt){var Mt=kt[jt],Nt=Mt.slice().reverse();At[jt]=[Nt.length,`<`+Nt.join(`><`)+`>`,`</`+Mt.join(`></`)+`>`]}At.optgroup=At.option;function Pt(e){return!Et.test(e)}function Ft(e){var t=e.nodeType;return t===rt||!t||t===st}function It(e){for(var t in ht[e.ng339])return!0;return!1}function Lt(t,n){var r,i,a,o,s=n.createDocumentFragment(),c=[],l;if(Pt(t))c.push(n.createTextNode(t));else{if(r=s.appendChild(n.createElement(`div`)),i=(Dt.exec(t)||[``,``])[1].toLowerCase(),o=Vt.legacyXHTMLReplacement?t.replace(Ot,`<$1></$2>`):t,u<10)for(a=At[i]||At._default,r.innerHTML=a[1]+o+a[2],l=a[0];l--;)r=r.firstChild;else{for(a=kt[i]||[],l=a.length;--l>-1;)r.appendChild(e.document.createElement(a[l])),r=r.firstChild;r.innerHTML=o}c=Se(c,r.childNodes),r=s.firstChild,r.textContent=``}return s.textContent=``,s.innerHTML=``,C(c,function(e){s.appendChild(e)}),s}function Rt(t,n){n||=e.document;var r;return(r=Tt.exec(t))?[n.createElement(r[1])]:(r=Lt(t,n))?r.childNodes:[]}function zt(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}var Bt=e.Node.prototype.contains||function(e){return!!(this.compareDocumentPosition(e)&16)};function Vt(e){if(e instanceof Vt)return e;var t;if(z(e)&&(e=q(e),t=!0),!(this instanceof Vt)){if(t&&e.charAt(0)!==`<`)throw xt(`nosel`,`Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element`);return new Vt(e)}t?$t(this,Rt(e)):H(e)?on(e):$t(this,e)}function Ht(e){return e.cloneNode(!0)}function Ut(e,t){!t&&Ft(e)&&d.cleanData([e]),e.querySelectorAll&&d.cleanData(e.querySelectorAll(`*`))}function Wt(e){for(var t in e)return!1;return!0}function Gt(e){var t=e.ng339,n=t&&ht[t],r=n&&n.events,i=n&&n.data;(!i||Wt(i))&&(!r||Wt(r))&&(delete ht[t],e.ng339=void 0)}function Kt(e,t,n,r){if(L(r))throw xt(`offargs`,"jqLite#off() does not support the `selector` argument");var i=Jt(e),a=i&&i.events,o=i&&i.handle;if(o){if(t){var s=function(t){var r=a[t];L(n)&&ge(r||[],n),L(n)&&r&&r.length>0||(e.removeEventListener(t,o),delete a[t])};C(t.split(` `),function(e){s(e),bt[e]&&s(bt[e])})}else for(t in a)t!==`$destroy`&&e.removeEventListener(t,o),delete a[t];Gt(e)}}function qt(e,t){var n=e.ng339,r=n&&ht[n];r&&(t?delete r.data[t]:r.data={},Gt(e))}function Jt(e,t){var n=e.ng339,r=n&&ht[n];return t&&!r&&(e.ng339=n=_t(),r=ht[n]={events:{},data:{},handle:void 0}),r}function Yt(e,t,n){if(Ft(e)){var r,i=L(n),a=!i&&t&&!R(t),o=!t,s=Jt(e,!a),c=s&&s.data;
2if(i)c[wt(t)]=n;else if(o)return c;else if(a)return c&&c[wt(t)];else for(r in t)c[wt(r)]=t[r]}}function Xt(e,t){return e.getAttribute?(` `+(e.getAttribute(`class`)||``)+` `).replace(/[\n\t]/g,` `).indexOf(` `+t+` `)>-1:!1}function Zt(e,t){if(t&&e.setAttribute){var n=(` `+(e.getAttribute(`class`)||``)+` `).replace(/[\n\t]/g,` `),r=n;C(t.split(` `),function(e){e=q(e),r=r.replace(` `+e+` `,` `)}),r!==n&&e.setAttribute(`class`,q(r))}}function Qt(e,t){if(t&&e.setAttribute){var n=(` `+(e.getAttribute(`class`)||``)+` `).replace(/[\n\t]/g,` `),r=n;C(t.split(` `),function(e){e=q(e),r.indexOf(` `+e+` `)===-1&&(r+=e+` `)}),r!==n&&e.setAttribute(`class`,q(r))}}function $t(e,t){if(t){if(t.nodeType)e[e.length++]=t;else{var n=t.length;if(typeof n==`number`&&t.window!==t){if(n)for(var r=0;r<n;r++)e[e.length++]=t[r]}else e[e.length++]=t}}}function en(e,t){return tn(e,`$`+(t||`ngController`)+`Controller`)}function tn(e,t,n){e.nodeType===st&&(e=e.documentElement);for(var r=V(t)?t:[t];e;){for(var i=0,a=r.length;i<a;i++)if(L(n=d.data(e,r[i])))return n;e=e.parentNode||e.nodeType===ct&&e.host}}function nn(e){for(Ut(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function rn(e,t){t||Ut(e);var n=e.parentNode;n&&n.removeChild(e)}function an(t,n){n||=e,n.document.readyState===`complete`?n.setTimeout(t):d(n).on(`load`,t)}function on(t){function n(){e.document.removeEventListener(`DOMContentLoaded`,n),e.removeEventListener(`load`,n),t()}e.document.readyState===`complete`?e.setTimeout(t):(e.document.addEventListener(`DOMContentLoaded`,n),e.addEventListener(`load`,n))}var sn=Vt.prototype={ready:on,toString:function(){var e=[];return C(this,function(t){e.push(``+t)}),`[`+e.join(`, `)+`]`},eq:function(e){return d(e>=0?this[e]:this[this.length+e])},length:0,push:h,sort:[].sort,splice:[].splice},cn={};C(`multiple,selected,checked,disabled,readOnly,required,open`.split(`,`),function(e){cn[c(e)]=e});var ln={};C(`input,select,option,textarea,button,form,details`.split(`,`),function(e){ln[e]=!0});var un={ngMinlength:`minlength`,ngMaxlength:`maxlength`,ngMin:`min`,ngMax:`max`,ngPattern:`pattern`,ngStep:`step`};function dn(e,t){var n=cn[t.toLowerCase()];return n&&ln[me(e)]&&n}function fn(e){return un[e]}C({data:Yt,removeData:qt,hasData:It,cleanData:function(e){for(var t=0,n=e.length;t<n;t++)qt(e[t]),Kt(e[t])}},function(e,t){Vt[t]=e}),C({data:Yt,inheritedData:tn,scope:function(e){return d.data(e,`$scope`)||tn(e.parentNode||e,[`$isolateScope`,`$scope`])},isolateScope:function(e){return d.data(e,`$isolateScope`)||d.data(e,`$isolateScopeNoTemplate`)},controller:en,injector:function(e){return tn(e,`$injector`)},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:Xt,css:function(e,t,n){if(t=St(t),L(n))e.style[t]=n;else return e.style[t]},attr:function(e,t,n){var r,i=e.nodeType;if(i!==at&&i!==it&&i!==ot&&e.getAttribute){var a=c(t),o=cn[a];if(L(n))n===null||n===!1&&o?e.removeAttribute(t):e.setAttribute(t,o?a:n);else return r=e.getAttribute(t),o&&r!==null&&(r=a),r===null?void 0:r}},prop:function(e,t,n){if(L(n))e[t]=n;else return e[t]},text:(function(){return e.$dv=``,e;function e(e,t){if(I(t)){var n=e.nodeType;return n===rt||n===at?e.textContent:``}e.textContent=t}})(),val:function(e,t){if(I(t)){if(e.multiple&&me(e)===`select`){var n=[];return C(e.options,function(e){e.selected&&n.push(e.value||e.text)}),n}return e.value}e.value=t},html:function(e,t){if(I(t))return e.innerHTML;Ut(e,!0),e.innerHTML=t},empty:nn},function(e,t){Vt.prototype[t]=function(t,n){var r,i,a=this.length;if(e!==nn&&I(e.length===2&&e!==Xt&&e!==en?t:n)){if(R(t)){for(r=0;r<a;r++)if(e===Yt)e(this[r],t);else for(i in t)e(this[r],i,t[i]);return this}for(var o=e.$dv,s=I(o)?Math.min(a,1):a,c=0;c<s;c++){var l=e(this[c],t,n);o=o?o+l:l}return o}for(r=0;r<a;r++)e(this[r],t,n);return this}});function pn(e,t){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=t[r||n.type],a=i?i.length:0;if(a){if(I(n.immediatePropagationStopped)){var o=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),o&&o.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0};var s=i.specialHandlerWrapper||mn;a>1&&(i=ut(i));for(var c=0;c<a;c++)n.isImmediatePropagationStopped()||s(e,n,i[c])}};return n.elem=e,n}
2function mn(e,t,n){n.call(e,t)}function hn(e,t,n){var r=t.relatedTarget;(!r||r!==e&&!Bt.call(e,r))&&n.call(e,t)}C({removeData:qt,on:function(e,t,n,r){if(L(r))throw xt(`onargs`,"jqLite#on() does not support the `selector` or `eventData` parameters");if(Ft(e)){var i=Jt(e,!0),a=i.events,o=i.handle;o||=i.handle=pn(e,a);for(var s=t.indexOf(` `)>=0?t.split(` `):[t],c=s.length,l=function(t,r,i){var s=a[t];s||(s=a[t]=[],s.specialHandlerWrapper=r,t!==`$destroy`&&!i&&e.addEventListener(t,o)),s.push(n)};c--;)t=s[c],bt[t]?(l(bt[t],hn),l(t,void 0,!0)):l(t)}},off:Kt,one:function(e,t,n){e=d(e),e.on(t,function r(){e.off(t,n),e.off(t,r)}),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;Ut(e),C(new Vt(t),function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t})},children:function(e){var t=[];return C(e.childNodes,function(e){e.nodeType===rt&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===rt||n===ct){t=new Vt(t);for(var r=0,i=t.length;r<i;r++){var a=t[r];e.appendChild(a)}}},prepend:function(e,t){if(e.nodeType===rt){var n=e.firstChild;C(new Vt(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){zt(e,d(t).eq(0).clone()[0])},remove:rn,detach:function(e){rn(e,!0)},after:function(e,t){var n=e,r=e.parentNode;if(r){t=new Vt(t);for(var i=0,a=t.length;i<a;i++){var o=t[i];r.insertBefore(o,n.nextSibling),n=o}}},addClass:Qt,removeClass:Zt,toggleClass:function(e,t,n){t&&C(t.split(` `),function(t){var r=n;I(r)&&(r=!Xt(e,t)),(r?Qt:Zt)(e,t)})},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==ct?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:Ht,triggerHandler:function(e,t,n){var r,i,a,o=t.type||t,s=Jt(e),c=s&&s.events,l=c&&c[o];l&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:P,type:o,target:e},t.type&&(r=k(r,t)),i=ut(l),a=n?[r].concat(n):[r],C(i,function(t){r.isImmediatePropagationStopped()||t.apply(e,a)}))}},function(e,t){Vt.prototype[t]=function(t,n,r){for(var i,a=0,o=this.length;a<o;a++)I(i)?(i=e(this[a],t,n,r),L(i)&&(i=d(i))):$t(i,e(this[a],t,n,r));return L(i)?i:this}}),Vt.prototype.bind=Vt.prototype.on,Vt.prototype.unbind=Vt.prototype.off;function gn(){this.$get=function(){return k(Vt,{hasClass:function(e,t){return e.attr&&(e=e[0]),Xt(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),Qt(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),Zt(e,t)}})}}function _n(e,t){var n=e&&e.$$hashKey;if(n)return typeof n==`function`&&(n=e.$$hashKey()),n;var r=typeof e;return n=r===`function`||r===`object`&&e!==null?e.$$hashKey=r+`:`+(t||E)():r+`:`+e,n}var vn=Object.create(null);function yn(){this._keys=[],this._values=[],this._lastKey=NaN,this._lastIndex=-1}yn.prototype={_idx:function(e){return e!==this._lastKey&&(this._lastKey=e,this._lastIndex=this._keys.indexOf(e)),this._lastIndex},_transformKey:function(e){return M(e)?vn:e},get:function(e){e=this._transformKey(e);var t=this._idx(e);if(t!==-1)return this._values[t]},has:function(e){return e=this._transformKey(e),this._idx(e)!==-1},set:function(e,t){e=this._transformKey(e);var n=this._idx(e);n===-1&&(n=this._lastIndex=this._keys.length),this._keys[n]=e,this._values[n]=t},delete:function(e){e=this._transformKey(e);var t=this._idx(e);return t!==-1&&(this._keys.splice(t,1),this._values.splice(t,1),this._lastKey=NaN,this._lastIndex=-1,!0)}};var bn=yn,xn=[function(){this.$get=[function(){return bn}]}],Sn=/^([^(]+?)=>/,Cn=/^[^(]*\(\s*([^)]*)\)/m,wn=/,/,Tn=/^\s*(_?)(\S+?)\1\s*$/,En=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Dn=i(`$injector`);function On(e){return Function.prototype.toString.call(e)}function kn(e){var t=On(e).replace(En,``);return t.match(Sn)||t.match(Cn)}function An(e){var t=kn(e);return t?`function(`+(t[1]||``).replace(/[\s\r\n]+/,` `)+`)`:`fn`}function jn(e,t,n){var r,i,a;if(typeof e==`function`){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw(!z(n)||!n)&&(n=e.name||An(e)),Dn(`strictdi`,`{0} is not using explicit annotation and cannot be invoked in strict mode`,n);i=kn(e),C(i[1].split(wn),function(e){e.replace(Tn,function(e,t,n){r.push(n)})})}e.$inject=r}}else V(e)?(a=e.length-1,Ze(e[a],`fn`),r=e.slice(0,a)):Ze(e,`fn`,!0);return r}function Mn(e,t){t=t===!0;var n={},r=`Provider`,i=[],a=new bn,o={$provide:{provider:p(m),factory:p(g),service:p(_),value:p(v),constant:p(x),decorator:S}},s=o.$injector=E(o,function(e,t){throw y.isString(t)&&i.push(t),Dn(`unpr`,`Unknown provider: {0}`,i.join(` <- `))}),c={},l=E(c,function(e,t){var n=s.get(e+r,t);return d.invoke(n.$get,n,void 0,e)}),d=l;o[`$injector`+r]={$get:ee(l)},d.modules=s.modules=tt();var f=w(e);return d=l.get(`$injector`),d.strictDi=t,C(f,function(e){e&&d.invoke(e)}),d.loadNewModules=function(e){C(w(e),function(e){e&&d.invoke(e)})},d;function p(e){return function(t,n){if(R(t))C(t,T(e));else return e(t,n)}}function m(e,t){if(Qe(e,`service`),(H(t)||V(t))&&(t=s.instantiate(t)),!t.$get)throw Dn(`pget`,`Provider '{0}' must define $get factory method.`,e);return o[e+r]=t}function h(e,t){return function(){var n=d.invoke(t,this);if(I(n))throw Dn(`undef`,`Provider '{0}' must return a value from $get factory method.`,e);return n}}function g(e,t,n){return m(e,{$get:n===!1?t:h(e,t)})}function _(e,t){return g(e,[`$injector`,function(e){return e.instantiate(t)}])}function v(e,t){return g(e,ee(t),!1)}function x(e,t){Qe(e,`constant`),o[e]=t,c[e]=t}function S(e,t){var n=s.get(e+r),i=n.$get;n.$get=function(){var e=d.invoke(i,n);return d.invoke(t,null,{$delegate:e})}}function w(e){Xe(I(e)||V(e),`modulesToLoad`,`not an array`);var t=[],n;return C(e,function(e){if(a.get(e))return;a.set(e,!0);function r(e){for(var t=0,n=e.length;t<n;t++){var r=e[t],i=s.get(r[0]);i[r[1]].apply(i,r[2])}}try{z(e)?(n=b(e),d.modules[e]=n,t=t.concat(w(n.requires)).concat(n._runBlocks),r(n._invokeQueue),r(n._configBlocks)):H(e)||V(e)?t.push(s.invoke(e)):Ze(e,`module`)}catch(t){throw V(e)&&(e=e[e.length-1]),t.message&&t.stack&&t.stack.indexOf(t.message)===-1&&(t=t.message+` 3`+t.stack),Dn(`modulerr`,`Failed to instantiate module {0} due to: 4{1}`,e,t.stack||t.message||t)}}),t}function E(e,a){function s(t,r){if(e.hasOwnProperty(t)){if(e[t]===n)throw Dn(`cdep`,`Circular dependency foun
4d: {0}`,t+` <- `+i.join(` <- `));return e[t]}try{return i.unshift(t),e[t]=n,e[t]=a(t,r),e[t]}catch(r){throw e[t]===n&&delete e[t],r}finally{i.shift()}}function c(e,n,r){for(var i=[],a=Mn.$$annotate(e,t,r),o=0,c=a.length;o<c;o++){var l=a[o];if(typeof l!=`string`)throw Dn(`itkn`,`Incorrect injection token! Expected service name as string, got {0}`,l);i.push(n&&n.hasOwnProperty(l)?n[l]:s(l,r))}return i}function l(e){if(u||typeof e!=`function`)return!1;var t=e.$$ngIsClass;return W(t)||(t=e.$$ngIsClass=/^class\b/.test(On(e))),t}function d(e,t,n,r){typeof n==`string`&&(r=n,n=null);var i=c(e,n,r);return V(e)&&(e=e[e.length-1]),l(e)?(i.unshift(null),new(Function.prototype.bind.apply(e,i))):e.apply(t,i)}function f(e,t,n){var r=V(e)?e[e.length-1]:e,i=c(e,t,n);return i.unshift(null),new(Function.prototype.bind.apply(r,i))}return{invoke:d,instantiate:f,get:s,annotate:Mn.$$annotate,has:function(t){return o.hasOwnProperty(t+r)||e.hasOwnProperty(t)}}}}Mn.$$annotate=jn;function Nn(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=[`$window`,`$location`,`$rootScope`,function(t,n,r){var i=t.document;function a(e){var t=null;return Array.prototype.some.call(e,function(e){if(me(e)===`a`)return t=e,!0}),t}function o(){var e=c.yOffset;if(H(e))e=e();else if(J(e)){var n=e[0];e=t.getComputedStyle(n).position===`fixed`?n.getBoundingClientRect().bottom:0}else re(e)||(e=0);return e}function s(e){if(e){e.scrollIntoView();var n=o();if(n){var r=e.getBoundingClientRect().top;t.scrollBy(0,r-n)}}else t.scrollTo(0,0)}function c(e){e=z(e)?e:re(e)?e.toString():n.hash();var t;e?(t=i.getElementById(e))||(t=a(i.getElementsByName(e)))?s(t):e===`top`&&s(null):s(null)}
4return e&&r.$watch(function(){return n.hash()},function(e,t){(e!==t||e!==``)&&an(function(){r.$evalAsync(c)})}),c}]}var Pn=i(`$animate`),Fn=1,In=`ng-animate`;function Ln(e,t){return!e&&!t?``:e?t?(V(e)&&(e=e.join(` `)),V(t)&&(t=t.join(` `)),e+` `+t):e:t}function Rn(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===Fn)return n}}function zn(e){z(e)&&(e=e.split(` `));var t=tt();return C(e,function(e){e.length&&(t[e]=!0)}),t}function Bn(e){return R(e)?e:{}}var Vn=function(){this.$get=P},Hn=function(){var e=new bn,t=[];this.$get=[`$$AnimateRunner`,`$rootScope`,function(n,r){return{enabled:P,on:P,off:P,pin:P,push:function(e,t,r,i){i&&i(),r||={},r.from&&e.css(r.from),r.to&&e.css(r.to),(r.addClass||r.removeClass)&&o(e,r.addClass,r.removeClass);var a=new n;return a.complete(),a}};function i(e,t,n){var r=!1;return t&&(t=z(t)?t.split(` `):V(t)?t:[],C(t,function(t){t&&(r=!0,e[t]=n)})),r}function a(){C(t,function(t){var n=e.get(t);if(n){var r=zn(t.attr(`class`)),i=``,a=``;C(n,function(e,t){e!==!!r[t]&&(e?i+=(i.length?` `:``)+t:a+=(a.length?` `:``)+t)}),C(t,function(e){i&&Qt(e,i),a&&Zt(e,a)}),e.delete(t)}}),t.length=0}function o(n,o,s){var c=e.get(n)||{},l=i(c,o,!0),u=i(c,s,!1);(l||u)&&(e.set(n,c),t.push(n),t.length===1&&r.$$postDigest(a))}}]},Un=[`$provide`,function(e){var t=this,n=null,r=null;this.$$registeredAnimations=Object.create(null),this.register=function(n,r){if(n&&n.charAt(0)!==`.`)throw Pn(`notcsel`,`Expecting class selector starting with '.' got '{0}'.`,n);var i=n+`-animation`;t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,r)},this.customFilter=function(e){return arguments.length===1&&(r=H(e)?e:null),r},this.classNameFilter=function(e){if(arguments.length===1&&(n=e instanceof RegExp?e:null,n&&RegExp(`[(\\s|\\/)]`+In+`[(\\s|\\/)]`).test(n.toString())))throw n=null,Pn(`nongcls`,`$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.`,In);return n},this.$get=[`$$animateQueue`,function(e){function t(e,t,n){if(n){var r=Rn(n);r&&!r.parentNode&&!r.previousElementSibling&&(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.cancel&&e.cancel()},enter:function(n,r,i,a){return r&&=d(r),i&&=d(i),r||=i.parent(),t(n,r,i),e.push(n,`enter`,Bn(a))},move:function(n,r,i,a){return r&&=d(r),i&&=d(i),r||=i.parent(),t(n,r,i),e.push(n,`move`,Bn(a))},leave:function(t,n){return e.push(t,`leave`,Bn(n),function(){t.remove()})},addClass:function(t,n,r){return r=Bn(r),r.addClass=Ln(r.addclass,n),e.push(t,`addClass`,r)},removeClass:function(t,n,r){return r=Bn(r),r.removeClass=Ln(r.removeClass,n),e.push(t,`removeClass`,r)},setClass:function(t,n,r,i){return i=Bn(i),i.addClass=Ln(i.addClass,n),i.removeClass=Ln(i.removeClass,r),e.push(t,`setClass`,i)},animate:function(t,n,r,i,a){return a=Bn(a),a.from=a.from?k(a.from,n):n,a.to=a.to?k(a.to,r):r,i||=`ng-inline-animate`,a.tempClasses=Ln(a.tempClasses,i),e.push(t,`animate`,a)}}}]}],Wn=function(){this.$get=[`$$rAF`,function(e){var t=[];function n(n){t.push(n),!(t.length>1)&&e(function(){for(var e=0;e<t.length;e++)t[e]();t=[]})}return function(){var e=!1;return n(function(){e=!0}),function(t){e?t():n(t)}}}]},Gn=function(){this.$get=[`$q`,`$sniffer`,`$$animateAsyncRun`,`$$isDocumentHidden`,`$timeout`,function(e,t,n,r,i){a.chain=function(e,t){var n=0;r();function r(){if(n===e.length){t(!0);return}e[n](function(e){if(e===!1){t(!1);return}n++,r()})}},a.all=function(e,t){var n=0,r=!0;C(e,function(e){e.done(i)});function i(i){r&&=i,++n===e.length&&t(r)}};function a(e){this.setHost(e);var t=n(),a=function(e){i(e,0,!1)};this._doneCallbacks=[],this._tick=function(e){r()?a(e):t(e)},this._state=0}return a.prototype={setHost:function(e){this.host=e||{}},done:function(e){this._state===2?e():this._doneCallbacks.push(e)},progress:P,getPromise:function(){if(!this.promise){var t=this;this.promise=e(function(e,n){t.done(function(t){t===!1?n():e()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;t._state===0&&(t._state=1,t._tick(function(){t._resolve(e)}))},_resolve:function(e){this._state!==2&&(C(this._doneCallbacks,function(t){t(e)}),this._doneCallbacks.length=0,this._state=2)}},a}]},Kn=function(){this.$get=[`$$rAF`,`$q`,`$$AnimateRunner`,function(e,t,n){return function(t,r){var i=r||{};i.$$prepared||(i=_e(i)),i.cleanupStyles&&(i.from=i.to=null),i.from&&(t.css(i.from),i.from=null);var a,o=new n;return{start:s,end:s};function s(){return e(function(){c(),a||o.complete(),a=!0}),o}function c(){i.addClass&&(t.addClass(i.addClass),i.addClass=null),i.removeClass&&(t.removeClass(i.removeClass),i.removeClass=null),i.to&&(t.css(i.to),i.to=null)}}}]};function qn(e){var t=e.indexOf(`#`);return t===-1?``:e.substr(t)}function Jn(e){return e.replace(/#$/,``)}function Yn(e,t,n,r,i){var a=this,o=e.location,s=e.history,c=e.setTimeout,l=e.clearTimeout,u={},f=i(n);a.isMock=!1,a.$$completeOutstandingRequest=f.completeTask,a.$$incOutstandingRequestCount=f.incTaskCount,a.notifyWhenNoOutstandingRequests=f.notifyWhenNoPendingTasks;var p,m,h=o.href,g=t.find(`base`),_=null,v=r.history?function(){try{return s.state}catch{}}:P;w(),a.url=function(t,n,i){if(I(i)&&(i=null),o!==e.location&&(o=e.location),s!==e.history&&(s=e.history),t){var c=m===i;if(t=ca(t).href,h===t&&(!r.history||c))return a;var l=h&&Qr(h)===Qr(t);return h=t,m=i,r.history&&(!l||!c)?(s[n?`replaceState`:`pushState`](i,``,t),w()):(l||(_=t),n?o.replace(t):l?o.hash=qn(t):o.href=t,o.href!==t&&(_=t)),_&&=t,a}return Jn(_||o.href)},a.state=function(){return p};var y=[],b=!1;function x(){_=null,T()}var S=null;function w(){p=v(),p=I(p)?null:p,ye(p,S)&&(p=S),S=p,m=p}function T(){var e=m;w(),(h!==a.url()||e!==p)&&(h=a.url(),m=p,C(y,function(e){e(a.url(),p)}))}a.onUrlChange=function(t){return b||=(r.history&&d(e).on(`popstate`,x),d(e).on(`hashc
4hange`,x),!0),y.push(t),t},a.$$applicationDestroyed=function(){d(e).off(`hashchange popstate`,x)},a.$$checkUrlChange=T,a.baseHref=function(){var e=g.attr(`href`);return e?e.replace(/^(https?:)?\/\/[^/]*/,``):``},a.defer=function(e,t,n){var r;return t||=0,n||=f.DEFAULT_TASK_TYPE,f.incTaskCount(n),r=c(function(){delete u[r],f.completeTask(e,n)},t),u[r]=n,r},a.defer.cancel=function(e){if(u.hasOwnProperty(e)){var t=u[e];return delete u[e],l(e),f.completeTask(P,t),!0}return!1}}function X(){this.$get=[`$window`,`$log`,`$sniffer`,`$document`,`$$taskTrackerFactory`,function(e,t,n,r,i){return new Yn(e,r,t,n,i)}]}function Xn(){this.$get=function(){var e={};function t(t,n){if(t in e)throw i(`$cacheFactory`)(`iid`,`CacheId '{0}' is already taken!`,t);var r=0,a=k({},n,{id:t}),o=tt(),s=n&&n.capacity||Number.MAX_VALUE,c=tt(),l=null,u=null;return e[t]={put:function(e,t){if(!I(t))return s<Number.MAX_VALUE&&d(c[e]||(c[e]={key:e})),e in o||r++,o[e]=t,r>s&&this.remove(u.key),t},get:function(e){if(s<Number.MAX_VALUE){var t=c[e];if(!t)return;d(t)}return o[e]},remove:function(e){if(s<Number.MAX_VALUE){var t=c[e];if(!t)return;t===l&&(l=t.p),t===u&&(u=t.n),f(t.n,t.p),delete c[e]}e in o&&(delete o[e],r--)},removeAll:function(){o=tt(),r=0,c=tt(),l=u=null},destroy:function(){o=null,a=null,c=null,delete e[t]},info:function(){return k({},a,{size:r})}};function d(e){e!==l&&(u?u===e&&(u=e.n):u=e,f(e.n,e.p),f(e,l),l=e,l.n=null)}function f(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}}return t.info=function(){var t={};return C(e,function(e,n){t[n]=e.info()}),t},t.get=function(t){return e[t]},t}}function Zn(){this.$get=[`$cacheFactory`,function(e){return e(`templates`)}]}var Qn=i(`$compile`);function $n(){}var er=new $n;tr.$inject=[`$provide`,`$$sanitizeUriProvider`];function tr(t,n){var r={},i=`Directive`,a=/^\s*directive:\s*([\w-]+)\s+(.*)$/,o=/(([\w-]+)(?::([^;]+))?;?)/,l=pe(`ngSrc,ngSrcset,src,srcset`),f=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,p=/^(on[a-z]+|formaction)$/,m=tt();function h(e,t,n){var r=/^([@&]|[=<](\*?))(\??)\s*([\w$]*)$/,i=tt();return C(e,function(e,a){if(e=e.trim(),e in m){i[a]=m[e];return}var o=e.match(r);if(!o)throw Qn(`iscp`,`Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}`,t,a,e,n?`controller bindings definition`:`isolate scope definition`);i[a]={mode:o[1][0],collection:o[2]===`*`,optional:o[3]===`?`,attrName:o[4]||a},o[4]&&(m[e]=i[a])}),i}function _(e,t){var n={isolateScope:null,bindToController:null};if(R(e.scope)&&(e.bindToController===!0?(n.bindToController=h(e.scope,t,!0),n.isolateScope={}):n.isolateScope=h(e.scope,t,!1)),R(e.bindToController)&&(n.bindToController=h(e.bindToController,t,!0)),n.bindToController&&!e.controller)throw Qn(`noctrl`,`Cannot bind to controller without directive '{0}'s controller.`,t);return n}function v(e){var t=e.charAt(0);if(!t||t!==c(t))throw Qn(`baddir`,`Directive/Component name '{0}' is invalid. The first character must be a lowercase letter`,e);if(e!==e.trim())throw Qn(`baddir`,`Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces`,e)}function y(e){var t=e.require||e.controller&&e.name;return!V(t)&&R(t)&&C(t,function(e,n){var r=e.match(f);e.substring(r[0].length)||(t[n]=r[0]+n)}),t}function b(e,t){if(e&&!(z(e)&&/[EACM]/.test(e)))throw Qn(`badrestrict`,`Restrict property '{0}' of directive '{1}' is invalid`,e,t);return e||`EA`}this.directive=function e(n,a){return Xe(n,`name`),Qe(n,`directive`),z(n)?(v(n),Xe(a,`directiveFactory`),r.hasOwnProperty(n)||(r[n]=[],t.factory(n+i,[`$injector`,`$exceptionHandler`,function(e,t){var i=[];return C(r[n],function(r,a){try{var o=e.invoke(r);H(o)?o={compile:ee(o)}:!o.compile&&o.link&&(o.compile=ee(o.link)),o.priority=o.priority||0,o.index=a,o.name=o.name||n,o.require=y(o),o.restrict=b(o.restrict,n),o.$$moduleName=r.$$moduleName,i.push(o)}catch(e){t(e)}}),i}])),r[n].push(a)):C(n,T(e)),this},this.component=function e(t,n){if(!z(t))return C(t,T(we(this,e))),this;var r=n.controller||function(){};function i(e){function t(t){return H(t)||V(t)?function(n,r){return e.invoke(t,this,{$element:n,$attrs:r})}:t}var i=!n.template&&!n.templateUrl?``:n.template,a={controller:r,controllerAs:ur(n.controller)||n.controllerAs||`$ctrl`,template:t(i),templateUrl:t(n.templateUrl),transclude:n.transclude,scope:{},bindToController:n.bindings||{},restrict:`E`,require:n.require};return C(n,function(e,t){t.charAt(0)===`$`&&(a[t]=e)}),a}return C(n,function(e,t){t.charAt(0)===`$`&&(i[t]=e,H(r)&&(r[t]=e))}),i.$inject=[`$injector`],this.directive(t,i)},this.aHrefSanitizationTrustedUrlList=function(e){return L(e)?(n.aHrefSanitizationTrustedUrlList(e),this):n.aHrefSanitizationTrustedUrlList()},Object.defineProperty(this,"aHrefSanitizationWhitelist",{get:function(){return this.aHrefSanitizationTrustedUrlList},set:function(e){this.aHrefSanitizationTrustedUrlList=e}}),this.imgSrcSanitizationTrustedUrlList=function(e){return L(e)?(n.imgSrcSanitizationTrustedUrlList(e),this):n.imgSrcSanitizationTrustedUrlList()},Object.defineProperty(this,"imgSrcSanitizationWhitelist",{get:function(){return this.imgSrcSanitizationTrustedUrlList},set:function(e){this.imgSrcSanitizationTrustedUrlList=e}});var x=!0;this.debugInfoEnabled=function(e){return L(e)?(x=e,this):x};var S=!1;this.strictComponentBindingsEnabled=function(e){return L(e)?(S=e,this):S};var w=10;this.onChangesTtl=function(e){return arguments.length?(w=e,this):w};var E=!0;this.commentDirectivesEnabled=function(e){return arguments.length?(E=e,this):E};var D=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(D=e,this):D};var O=tt();this.addPropertySecurityContext=function(e,t,n){var r=e.toLowerCase()+`|`+t.toLowerCase();if(r in O&&O[r]!==n)throw Qn(`ctxoverride`,`Property context '{0}.{1}' already set to '{2}', cannot override to '{3}'.`,e,t,O[r],n);return O[r]=n,this},(function(){function e(e,t){C(t,function(t){O[t.toLowerCase()]=e})}e(Ui.HTML,[`iframe|srcdoc`,`*|innerHTML`,`*|outerHTML`]),e(Ui.CSS,[`*|style`]),e(Ui.URL,[`area|href`,`area|ping`,`a|href`,`a|ping`,`blockquote|cite`,`body|background`,`del|cite`,`input|src`,`ins|cite`,`q|cite`]),e(Ui.MEDIA_URL,[`audio|src`,`img|src`,`img|srcset`,`source|src`,`source|srcset`,`track|
4src`,`video|src`,`video|poster`]),e(Ui.RESOURCE_URL,[`*|formAction`,`applet|code`,`applet|codebase`,`base|href`,`embed|src`,`frame|src`,`form|action`,`head|profile`,`html|manifest`,`iframe|src`,`link|href`,`media|src`,`object|codebase`,`object|data`,`script|src`])})(),this.$get=[`$injector`,`$interpolate`,`$exceptionHandler`,`$templateRequest`,`$parse`,`$controller`,`$rootScope`,`$sce`,`$animate`,function(t,n,m,h,v,y,b,T,A){var j=/^\w/,M=e.document.createElement(`div`),ee=E,te=D,L=w,ne;function re(){try{if(!--L)throw ne=void 0,Qn(`infchng`,`{0} $onChanges() iterations reached. Aborting! 5`,w);b.$apply(function(){for(var e=0,t=ne.length;e<t;++e)try{ne[e]()}catch(e){m(e)}ne=void 0})}finally{L++}}function B(e,t){if(!e)return e;if(!z(e))throw Qn(`srcset`,'Can\'t pass trusted values to `{0}`: "{1}"',t,e.toString());for(var n=``,r=q(e),i=/\s/.test(r)?/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/:/(,)/,a=r.split(i),o=Math.floor(a.length/2),s=0;s<o;s++){var c=s*2;n+=T.getTrustedMediaUrl(q(a[c])),n+=` `+q(a[c+1])}var l=q(a[s*2]).split(/\s/);return n+=T.getTrustedMediaUrl(q(l[0])),l.length===2&&(n+=` `+q(l[1])),n}function ae(e,t){if(t)for(var n=Object.keys(t),r=0,i=n.length,a;r<i;r++)a=n[r],this[a]=t[a];else this.$attr={};this.$$element=e}ae.prototype={$normalize:ar,$addClass:function(e){e&&e.length>0&&A.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&A.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=or(e,t);n&&n.length&&A.addClass(this.$$element,n);var r=or(t,e);r&&r.length&&A.removeClass(this.$$element,r)},$set:function(e,t,n,r){var i=this.$$element[0],a=dn(i,e),o=fn(e),s=e,c;a?(this.$$element.prop(e,t),r=a):o&&(this[o]=t,s=o),this[e]=t,r?this.$attr[e]=r:(r=this.$attr[e],r||(this.$attr[e]=r=Ke(e,`-`))),c=me(this.$$element),c===`img`&&e===`srcset`&&(this[e]=t=B(t,`$set('srcset', value)`)),n!==!1&&(t===null||I(t)?this.$$element.removeAttr(r):j.test(r)?a&&t===!1?this.$$element.removeAttr(r):this.$$element.attr(r,t):oe(this.$$element[0],r,t));var l=this.$$observers;l&&C(l[s],function(e){try{e(t)}catch(e){m(e)}})},$observe:function(e,t){var n=this,r=n.$$observers||=tt(),i=r[e]||(r[e]=[]);return i.push(t),b.$evalAsync(function(){!i.$$inter&&n.hasOwnProperty(e)&&!I(n[e])&&t(n[e])}),function(){ge(i,t)}}};function oe(e,t,n){M.innerHTML=`<span `+t+`>`;var r=M.firstChild.attributes,i=r[0];r.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}function ce(e,t){try{e.addClass(t)}catch{}}var le=n.startSymbol(),U=n.endSymbol(),G=le===`{{`&&U===`}}`?F:function(e){return e.replace(/\{\{/g,le).replace(/}}/g,U)},ue=/^ng(Attr|Prop|On)([A-Z].*)$/,de=/^(.+)Start$/;return K.$$addBindingInfo=x?function(e,t){var n=e.data(`$binding`)||[];V(t)?n=n.concat(t):n.push(t),e.data(`$binding`,n)}:P,K.$$addBindingClass=x?function(e){ce(e,`ng-binding`)}:P,K.$$addScopeInfo=x?function(e,t,n,r){var i=n?r?`$isolateScopeNoTemplate`:`$isolateScope`:`$scope`;e.data(i,t)}:P,K.$$addScopeClass=x?function(e,t){ce(e,t?`ng-isolate-scope`:`ng-scope`)}:P,K.$$createComment=function(t,n){var r=``;return x&&(r=` `+(t||``)+`: `,n&&(r+=n+` `)),e.document.createComment(r)},K;function K(e,t,n,r,i){e instanceof d||(e=d(e));var a=J(e,t,e,n,r,i);K.$$addScopeClass(e);var o=null;return function(t,n,r){if(!e)throw Qn(`multilink`,`This element has already been linked.`);Xe(t,`scope`),i&&i.needsNewScope&&(t=t.$parent.$new()),r||={};var s=r.parentBoundTranscludeFn,c=r.transcludeControllers,l=r.futureParentElement;s&&s.$$boundTransclude&&(s=s.$$boundTransclude),o||=fe(l);var u=o===`html`?n?sn.clone.call(e):e:d(Le(o,d(`<div></div>`).append(e).html()));if(c)for(var f in c)u.data(`$`+f+`Controller`,c[f].instance);return K.$$addScopeInfo(u,t),n&&n(u,t),a&&a(t,u,u,s),n||(e=a=null),u}}function fe(e){var t=e&&e[0];return t&&me(t)!==`foreignobject`&&g.call(t).match(/SVG/)?`svg`:`html`}function J(e,t,n,r,i,a){for(var o=[],s=V(e)||e instanceof d,c,l,f,p,m,h,g,_=0;_<e.length;_++)c=new ae,u===11&&pe(e,_,s),l=_e(e[_],[],c,_===0?r:void 0,i),f=l.length?Te(l,e[_],c,t,n,null,[],[],a):null,f&&f.scope&&K.$$addScopeClass(c.$$element),m=f&&f.terminal||!(p=e[_].childNodes)||!p.length?null:J(p,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:t),(f||m)&&(o.push(_,f,m),h=!0,g||=f),a=null;return h?v:null;function v(e,n,r,i){var a,s,c,l,u,f,p,m,h;if(g){var _=n.length;for(h=Array(_),u=0;u<o.length;u+=3)p=o[u],h[p]=n[p]}else h=n;for(u=0,f=o.length;u<f;)c=h[o[u++]],a=o[u++],s=o[u++],a?(a.scope?(l=e.$new(),K.$$addScopeInfo(d(c),l)):l=e,m=a.transcludeOnThisElement?he(e,a.transclude,i):!a.templateOnThisElement&&i?i:!i&&t?he(e,t):null,a(s,l,c,r,m)):s&&s(e,c.childNodes,void 0,i)}}function pe(e,t,n){var r=e[t],i=r.parentNode,a;if(r.nodeType===at)for(;a=i?r.nextSibling:e[t+1],a&&a.nodeType===at;)r.nodeValue+=a.nodeValue,a.parentNode&&a.parentNode.removeChild(a),n&&a===e[t+1]&&e.splice(t+1,1)}function he(e,t,n){function r(r,i,a,o,s){return r||(r=e.$new(!1,s),r.$$transcluded=!0),t(r,i,{parentBoundTranscludeFn:n,transcludeControllers:a,futureParentElement:o})}var i=r.$$slots=tt();for(var a in t.$$slots)i[a]=t.$$slots[a]?he(e,t.$$slots[a],n):null;return r}
5function _e(e,t,n,r,i){var a=e.nodeType,s=n.$attr,c,l,u;switch(a){case rt:l=me(e),ke(t,ar(l),`E`,r,i);for(var d,f,p,m,h,g=e.attributes,_=0,v=g&&g.length;_<v;_++){var y=!1,b=!1,x=!1,S=!1,C=!1,w;d=g[_],f=d.name,m=d.value,p=ar(f.toLowerCase()),(h=p.match(ue))?(x=h[1]===`Attr`,S=h[1]===`Prop`,C=h[1]===`On`,f=f.replace(rr,``).toLowerCase().substr(4+h[1].length).replace(/_(.)/g,function(e,t){return t.toUpperCase()})):(w=p.match(de))&&Ae(w[1])&&(y=f,b=f.substr(0,f.length-5)+`end`,f=f.substr(0,f.length-6)),S||C?(n[p]=m,s[p]=d.name,S?Ve(e,t,p,f):He(t,p,f)):(p=ar(f.toLowerCase()),s[p]=f,(x||!n.hasOwnProperty(p))&&(n[p]=m,dn(e,p)&&(n[p]=!0)),Ue(e,t,m,p,x),ke(t,p,`A`,r,i,y,b))}if(l===`input`&&e.getAttribute(`type`)===`hidden`&&e.setAttribute(`autocomplete`,`off`),!te)break;if(u=e.className,R(u)&&(u=u.animVal),z(u)&&u!==``)for(;c=o.exec(u);)p=ar(c[2]),ke(t,p,`C`,r,i)&&(n[p]=q(c[3])),u=u.substr(c.index+c[0].length);break;case at:Ie(t,e.nodeValue);break;case ot:if(!ee)break;be(e,t,n,r,i)}return t.sort(Pe),t}function be(e,t,n,r,i){try{var o=a.exec(e.nodeValue);if(o){var s=ar(o[1]);ke(t,s,`M`,r,i)&&(n[s]=q(o[2]))}}catch{}}function xe(e,t,n){var r=[],i=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw Qn(`uterdir`,`Unterminated attribute, found '{0}' but no matching '{1}' found.`,t,n);e.nodeType===rt&&(e.hasAttribute(t)&&i++,e.hasAttribute(n)&&i--),r.push(e),e=e.nextSibling}while(i>0);else r.push(e);return d(r)}function Se(e,t,n){return function(r,i,a,o,s){return i=xe(i[0],t,n),e(r,i,a,o,s)}}function Y(e,t,n,r,i,a){var o;return e?K(t,n,r,i,a):function(){return o||(o=K(t,n,r,i,a),t=n=a=null),o.apply(this,arguments)}}function Te(t,n,r,i,a,o,s,c,l){l||={};for(var u=-Number.MAX_VALUE,f=l.newScopeDirective,p=l.controllerDirectives,h=l.newIsolateScopeDirective,g=l.templateDirective,_=l.nonTlbTranscludeDirective,v=!1,y=!1,b=l.hasElementTranscludeDirective,x=r.$$element=d(n),S,w,T,E=o,D=i,O,A=!1,j=!1,M,N=0,P=t.length;N<P;N++){S=t[N];var F=S.$$start,ee=S.$$end;if(F&&(x=xe(n,F,ee)),T=void 0,u>S.priority)break;if(M=S.scope,M&&(S.templateUrl||(R(M)?(Fe(`new/isolated scope`,h||f,S,x),h=S):Fe(`new/isolated scope`,h,S,x)),f||=S),w=S.name,!A&&(S.replace&&(S.templateUrl||S.template)||S.transclude&&!S.$$tlb)){for(var te,L=N+1;te=t[L++];)if(te.transclude&&!te.$$tlb||te.replace&&(te.templateUrl||te.template)){j=!0;break}A=!0}if(!S.templateUrl&&S.controller&&(p||=tt(),Fe(`'`+w+`' controller`,p[w],S,x),p[w]=S),M=S.transclude,M){if(v=!0,S.$$tlb||(Fe(`transclusion`,_,S,x),_=S),M===`element`)b=!0,u=S.priority,T=x,x=r.$$element=d(K.$$createComment(w,r[w])),n=x[0],We(a,Ce(T),n),D=Y(j,T,i,u,E&&E.name,{nonTlbTranscludeDirective:_});else{var ne=tt();if(!R(M))T=d(Ht(n)).contents();else{T=e.document.createDocumentFragment();var z=tt(),re=tt();for(var B in C(M,function(e,t){var n=e.charAt(0)===`?`;e=n?e.substring(1):e,z[e]=t,ne[t]=null,re[t]=n}),C(x.contents(),function(t){var n=z[ar(me(t))];n?(re[n]=!0,ne[n]=ne[n]||e.document.createDocumentFragment(),ne[n].appendChild(t)):T.appendChild(t)}),C(re,function(e,t){if(!e)throw Qn(`reqslot`,"Required transclusion slot `{0}` was not filled.",t)}),ne)if(ne[B]){var ie=d(ne[B].childNodes);ne[B]=Y(j,ie,i)}T=d(T.childNodes)}x.empty(),D=Y(j,T,i,void 0,void 0,{needsNewScope:S.$$isolateScope||S.$$newScope}),D.$$slots=ne}}if(S.template){if(y=!0,Fe(`template`,g,S,x),g=S,M=H(S.template)?S.template(x,r):S.template,M=G(M),S.replace){if(E=S,T=Pt(M)?[]:sr(Le(S.templateNamespace,q(M))),n=T[0],T.length!==1||n.nodeType!==rt)throw Qn(`tplrt`,`Template for directive '{0}' must have exactly one root element. {1}`,w,``);We(a,x,n);var oe={$attr:{}},ce=_e(n,[],oe),le=t.splice(N+1,t.length-(N+1));(h||f)&&Oe(ce,h,f),t=t.concat(ce).concat(le),Me(r,oe),P=t.length}else x.html(M)}if(S.templateUrl)y=!0,Fe(`template`,g,S,x),g=S,S.replace&&(E=S),ue=Ne(t.splice(N,t.length-N),x,r,a,v&&D,s,c,{controllerDirectives:p,newScopeDirective:f!==S&&f,newIsolateScopeDirective:h,templateDirective:g,nonTlbTranscludeDirective:_}),P=t.length;else if(S.compile)try{O=S.compile(x,r,D);var U=S.$$originalDirective||S;H(O)?W(null,we(U,O),F,ee):O&&W(we(U,O.pre),we(U,O.post),F,ee)}catch(e){m(e,je(x))}S.terminal&&(ue.terminal=!0,u=Math.max(u,S.priority))}return ue.scope=f&&f.scope===!0,ue.transcludeOnThisElement=v,ue.templateOnThisElement=y,ue.transclude=D,l.hasElementTranscludeDirective=b,ue;function W(e,t,n,r){e&&(n&&(e=Se(e,n,r)),e.require=S.require,e.directiveName=w,(h===S||S.$$isolateScope)&&(e=Ge(e,{isolateScope:!0})),s.push(e)),t&&(n&&(t=Se(t,n,r)),t.require=S.require,t.directiveName=w,(h===S||S.$$isolateScope)&&(t=Ge(t,{isolateScope:!0})),c.push(t))}function ue(e,t,i,a,o){var l,u,_,v,y,x,S,w,T,E;for(var D in n===i?(T=r,w=r.$$element):(w=d(i),T=new ae(w,r)),y=t,h?v=t.$new(!0):f&&(y=t.$parent),o&&(S=N,S.$$boun
5dTransclude=o,S.isSlotFilled=function(e){return!!o.$$slots[e]}),p&&(x=De(w,T,S,p,v,t,h)),h&&(K.$$addScopeInfo(w,v,!0,!g||g!==h&&g!==h.$$originalDirective),K.$$addScopeClass(w,!0),v.$$isolateBindings=h.$$isolateBindings,E=Ye(t,T,v,v.$$isolateBindings,h),E.removeWatches&&v.$on(`$destroy`,E.removeWatches)),x){var O=p[D],A=x[D],j=O.$$bindings.bindToController;A.instance=A(),w.data(`$`+O.name+`Controller`,A.instance),A.bindingInfo=Ye(y,T,A.instance,j,O)}for(C(p,function(e,t){var n=e.require;e.bindToController&&!V(n)&&R(n)&&k(x[t].instance,Ee(t,n,w,x))}),C(x,function(e){var t=e.instance;if(H(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){m(e)}if(H(t.$onInit))try{t.$onInit()}catch(e){m(e)}H(t.$doCheck)&&(y.$watch(function(){t.$doCheck()}),t.$doCheck()),H(t.$onDestroy)&&y.$on(`$destroy`,function(){t.$onDestroy()})}),l=0,u=s.length;l<u;l++)_=s[l],qe(_,_.isolateScope?v:t,w,T,_.require&&Ee(_.directiveName,_.require,w,x),S);var M=t;for(h&&(h.template||h.templateUrl===null)&&(M=v),e&&e(M,i.childNodes,void 0,o),l=c.length-1;l>=0;l--)_=c[l],qe(_,_.isolateScope?v:t,w,T,_.require&&Ee(_.directiveName,_.require,w,x),S);C(x,function(e){var t=e.instance;H(t.$postLink)&&t.$postLink()});function N(e,t,n,r){var i;if(se(e)||(r=n,n=t,t=e,e=void 0),b&&(i=x),n||=b?w.parent():w,r){var a=o.$$slots[r];if(a)return a(e,t,i,n,M);if(I(a))throw Qn(`noslot`,`No parent directive that requires a transclusion with slot name "{0}". Element: {1}`,r,je(w))}else return o(e,t,i,n,M)}}}function Ee(e,t,n,r){var i;if(z(t)){var a=t.match(f),o=t.substring(a[0].length),s=a[1]||a[3],c=a[2]===`?`;if(s===`^^`?n=n.parent():(i=r&&r[o],i&&=i.instance),!i){var l=`$`+o+`Controller`;i=s===`^^`&&n[0]&&n[0].nodeType===st?null:s?n.inheritedData(l):n.data(l)}if(!i&&!c)throw Qn(`ctreq`,`Controller '{0}', required by directive '{1}', can't be found!`,o,e)}else if(V(t)){i=[];for(var u=0,d=t.length;u<d;u++)i[u]=Ee(e,t[u],n,r)}else R(t)&&(i={},C(t,function(t,a){i[a]=Ee(e,t,n,r)}));return i||null}function De(e,t,n,r,i,a,o){var s=tt();for(var c in r){var l=r[c],u={$scope:l===o||l.$$isolateScope?i:a,$element:e,$attrs:t,$transclude:n},d=l.controller;d===`@`&&(d=t[l.name]);var f=y(d,u,!0,l.controllerAs);s[l.name]=f,e.data(`$`+l.name+`Controller`,f.instance)}return s}function Oe(e,t,n){for(var r=0,i=e.length;r<i;r++)e[r]=N(e[r],{$$isolateScope:t,$$newScope:n})}function ke(e,n,a,o,s,c,l){if(n===s)return null;var u=null;if(r.hasOwnProperty(n)){for(var d,f=t.get(n+i),p=0,m=f.length;p<m;p++)if(d=f[p],(I(o)||o>d.priority)&&d.restrict.indexOf(a)!==-1){if(c&&(d=N(d,{$$start:c,$$end:l})),!d.$$bindings){var h=d.$$bindings=_(d,d.name);R(h.isolateScope)&&(d.$$isolateBindings=h.isolateScope)}e.push(d),u=d}}return u}function Ae(e){if(r.hasOwnProperty(e)){for(var n,a=t.get(e+i),o=0,s=a.length;o<s;o++)if(n=a[o],n.multiElement)return!0}return!1}function Me(e,t){var n=t.$attr,r=e.$attr;C(e,function(r,i){i.charAt(0)!==`$`&&(t[i]&&t[i]!==r&&(r.length?r+=(i===`style`?`;`:` `)+t[i]:r=t[i]),e.$set(i,r,!0,n[i]))}),C(t,function(t,i){!e.hasOwnProperty(i)&&i.charAt(0)!==`$`&&(e[i]=t,i!==`class`&&i!==`style`&&(r[i]=n[i]))})}function Ne(e,t,n,r,i,a,o,s){var c=[],l,u,f=t[0],p=e.shift(),g=N(p,{templateUrl:null,transclude:null,replace:null,$$originalDirective:p}),_=H(p.templateUrl)?p.templateUrl(t,n):p.templateUrl,v=p.templateNamespace;return t.empty(),h(_).then(function(m){var h,y,b,x;if(m=G(m),p.replace){if(b=Pt(m)?[]:sr(Le(v,q(m))),h=b[0],b.length!==1||h.nodeType!==rt)throw Qn(`tplrt`,`Template for directive '{0}' must have exactly one root element. {1}`,p.name,_);y={$attr:{}},We(r,t,h);var S=_e(h,[],y);R(p.scope)&&Oe(S,!0),e=S.concat(e),Me(n,y)}else h=f,t.html(m);for(e.unshift(g),l=Te(e,h,n,i,t,p,a,o,s),C(r,function(e,n){e===h&&(r[n]=t[0])}),u=J(t[0].childNodes,i);c.length;){var w=c.shift(),T=c.shift(),E=c.shift(),D=c.shift(),O=t[0];if(!w.$$destroyed){if(T!==f){var k=T.className;s.hasElementTranscludeDirective&&p.replace||(O=Ht(h)),We(E,d(T),O),ce(d(O),k)}x=l.transcludeOnThisElement?he(w,l.transclude,D):D,l(u,w,O,r,x)}}c=null}).catch(function(e){ie(e)&&m(e)}),function(e,t,n,r,i){var a=i;t.$$destroyed||(c?c.push(t,n,r,a):(l.transcludeOnThisElement&&(a=he(t,l.transclude,i)),l(u,t,n,r,a)))}}function Pe(e,t){var n=t.priority-e.priority;return n===0?e.name===t.name?e.index-t.index:e.name<t.name?-1:1:n}function Fe(e,t,n,r){function i(e){return e?` (module: `+e+`)`:``}if(t)throw Qn(`multidir`,`Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}`,t.name,i(t.$$moduleName),n.name,i(n.$$moduleName),e,je(r))}function Ie(e,t){var r=n(t,!0);r&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&K.$$addBindingClass(t),function(e,t){var i=t.parent();n||K.$$addBindingClass(i),K.$$addBindingInfo(i,r.expressions),e.$watch(r,function(e){t[0].nodeValue=e})}}})}function Le(t,n){switch(t=c(t||`html`),t){case`svg`:case`math`:var r=e.document.createElement(`div`);return r.innerHTML=`<`+t+`>`+n+`</`+t+`>`,r.childNodes[0].childNodes;default:return n}}function Re(e,t){if(t===`srcdoc`)return T.HTML;if(t===`src`||t===`ngSrc`)return[`img`,`video`,`audio`,`source`,`track`].indexOf(e)===-1?T.RESOURCE_URL:T.MEDIA_URL;if(t===`xlinkHref`)return e===`image`?T.MEDIA_URL:e===`a`?T.URL:T.RESOURCE_URL;if(e===`form`&&t===`action`||e===`base`&&t===`href`||e===`link`&&t===`href`)return T.RESOURCE_URL;if(e===`a`&&(t===`href`||t===`ngHref`))return T.URL}function ze(e,t){var n=t.toLowerCase();return O[e+`|`+n]||O[`*|`+n]}function Be(e){return B(T.valueOf(e),`ng-prop-srcset`)}function Ve(e,t,n,r){if(p.test(r))throw Qn(`nodomevents`,`Property bindings for HTML DOM event properties are disallowed`);var i=me(e),a=ze(i,r),o=F;r===`srcset`&&(i===`img`||i===`source`)?o=Be:a&&(o=T.getTrusted.bind(T,a)),t.push({priority:100,compile:function(e,t){var i=v(t[n]),a=v(t[n],function(e){return T.valueOf(e)});return{pre:function(e,t){function n(){var n=i(e);t[0][r]=o(n)}n(),e.$watch(a,n)}}}})}function He(e,t,n){e.push(is(v,b,m,t,n,!1))}function Ue(e,t,r,i,a){var o=me(e),s=Re(o,i),c=!a,u=l[i]||a,d=n(r,c,s,u);if(d){if(i===`multiple`&&o===`select`)throw Qn(`selmulti`,`Binding to the 'multiple' attribute is not supported. Element: {0}`,je(e));if(p.test(i))throw Qn(`nodomevents`,`Interpolations for HTML DOM event attributes are disallowed`);t.push({priority:100,compile:function(){return{pre:function(e,t,a){var o=a.$$observers||=tt(),c=a[i];c!==r&&(d=c&&n(c,!0,s,u),r=c),d&&(a[i]=d(e),(o[i]||(o[i]=[])).$$inter=!0,(a.$$observers&&a.$$observers[i].$$scope||e).$watch(d,function(e,t){i===`class`&&e!==t?a.$updateClass(e,t):a.$set(i,e)}))}}}})}}function We(t,n,r){var i=n[0],a=n.length,o=i.parentNode,s,c;if(t){for(s=0,c=t.length;s<c;s++)if(t[s]===i){t[s++]=r;for(var l=s,u=l+a-1,f=t.length;l<f;l++,u++)u<f?t[l]=t[u]:delete t[l];t.length-=a-1,t.context===i&&(t.context=r);break}}o&&o.replaceChild(r,i);var p=e.document.createDocumentFragment();for(s=0;s<a;s++)p.appendChild(n[s]);for(d.hasData(i)&&(d.data(r,d.data(i)),d(i).off(`$destroy`)),d.cleanData(p.querySelectorAll(`*`)),s=1;s<a;s++)delete n[s];n[0]=r,n.length=1}function Ge(e,t){return k(function(){return e.apply(null,arguments)},e,t)}function qe(e,t,n,r,i,a){try{e(t,n,r,i,a)}catch(e){m(e,je(n))}}function Je(e,t){if(S)throw Qn(`missingattr`,`Attribute '{0}' of '{1}' is non-optional and must be set!`,e,t)}function Ye(e,t,r,i,a){var o=[],c={},l;C(i,function(i,l){var d=i.attrName,f=i.optional,p=i.mode,m,h,g,_,y;switch(p){case`@`:!f&&!s.call(t,d)&&(Je(d,a.name),r[l]=t[d]=void 0),y=t.$observe(d,function(e){if(z(e)||W(e)){var t=r[l];u(l,e,t),r[l]=e}}),t.$$observers[d].$$scope=e,m=t[d],z(m)?r[l]=n(m)(e):W(m)&&(r[l]=m),c[l]=new nr(er,r[l]),o.push(y);break;case`=`:if(!s.call(t,d)){if(f)break;Je(d,a.name),t[d]=void 0}if(f&&!t[d])break;h=v(t[d]),_=h.literal?ye:ve,g=h.assign||function(){throw m=r[l]=h(e),Qn(`nonassign`,`Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!`,t[d],d,a.name)},m=r[l]=h(e);var b=function(t){return _(t,r[l])||(_(t,m)?g(e,t=r[l]):r[l]=t),m=t,m};
5b.$stateful=!0,y=i.collection?e.$watchCollection(t[d],b):e.$watch(v(t[d],b),null,h.literal),o.push(y);break;case`<`:if(!s.call(t,d)){if(f)break;Je(d,a.name),t[d]=void 0}if(f&&!t[d])break;h=v(t[d]);var x=h.literal,S=r[l]=h(e);c[l]=new nr(er,r[l]),y=e[i.collection?`$watchCollection`:`$watch`](h,function(e,t){if(t===e){if(t===S||x&&ye(t,S))return;t=S}u(l,e,t),r[l]=e}),o.push(y);break;case`&`:if(!f&&!s.call(t,d)&&Je(d,a.name),h=t.hasOwnProperty(d)?v(t[d]):P,h===P&&f)break;r[l]=function(t){return h(e,t)}}});function u(t,n,i){H(r.$onChanges)&&!ve(n,i)&&(ne||=(e.$$postDigest(re),[]),l||(l={},ne.push(d)),l[t]&&(i=l[t].previousValue),l[t]=new nr(i,n))}function d(){r.$onChanges(l),l=void 0}return{initialChanges:c,removeWatches:o.length&&function(){for(var e=0,t=o.length;e<t;++e)o[e]()}}}}]}function nr(e,t){this.previousValue=e,this.currentValue=t}nr.prototype.isFirstChange=function(){return this.previousValue===er};var rr=/^((?:x|data)[:\-_])/i,ir=/[:\-_]+(.)/g;function ar(e){return e.replace(rr,``).replace(ir,function(e,t,n){return n?t.toUpperCase():t})}function or(e,t){var n=``,r=e.split(/\s+/),i=t.split(/\s+/);outer:for(var a=0;a<r.length;a++){for(var o=r[a],s=0;s<i.length;s++)if(o===i[s])continue outer;n+=(n.length>0?` `:``)+o}return n}function sr(e){e=d(e);var t=e.length;if(t<=1)return e;for(;t--;){var n=e[t];(n.nodeType===ot||n.nodeType===at&&n.nodeValue.trim()===``)&&m.call(e,t,1)}return e}var cr=i(`$controller`),lr=/^(\S+)(\s+as\s+([\w$]+))?$/;function ur(e,t){if(t&&z(t))return t;if(z(e)){var n=lr.exec(e);if(n)return n[3]}}function dr(){var e={};this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){Qe(t,`controller`),R(t)?k(e,t):e[t]=n},this.$get=[`$injector`,function(t){return function(r,i,a,o){var s,c,l,u;if(a=a===!0,o&&z(o)&&(u=o),z(r)){if(c=r.match(lr),!c)throw cr(`ctrlfmt`,"Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);if(l=c[1],u||=c[3],r=e.hasOwnProperty(l)?e[l]:$e(i.$scope,l,!0),!r)throw cr(`ctrlreg`,`The controller with the name '{0}' is not registered.`,l);Ze(r,l,!0)}if(a){var d=(V(r)?r[r.length-1]:r).prototype;return s=Object.create(d||null),u&&n(i,u,s,l||r.name),k(function(){var e=t.invoke(r,s,i,l);return e!==s&&(R(e)||H(e))&&(s=e,u&&n(i,u,s,l||r.name)),s},{instance:s,identifier:u})}return s=t.instantiate(r,i,l),u&&n(i,u,s,l||r.name),s};function n(e,t,n,r){if(!(e&&R(e.$scope)))throw i(`$controller`)(`noscp`,"Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,t);e.$scope[t]=n}}]}function fr(){this.$get=[`$window`,function(e){return d(e.document)}]}function pr(){this.$get=[`$document`,`$rootScope`,function(e,t){var n=e[0],r=n&&n.hidden;e.on(`visibilitychange`,i),t.$on(`$destroy`,function(){e.off(`visibilitychange`,i)});function i(){r=n.hidden}return function(){return r}}]}function mr(){this.$get=[`$log`,function(e){return function(t,n){e.error.apply(e,arguments)}}]}var hr=function(){this.$get=[`$document`,function(e){return function(t){return t?!t.nodeType&&t instanceof d&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},gr=`application/json`,_r={"Content-Type":gr+`;charset=utf-8`},vr=/^\[|^\{(?!\{)/,yr={"[":/]$/,"{":/}$/},br=/^\)]\}',?\n/,xr=i(`$http`);function Sr(e){return R(e)?B(e)?e.toISOString():Te(e):e}function Cr(){this.$get=function(){return function(e){if(!e)return``;var t=[];return w(e,function(e,n){e===null||I(e)||H(e)||(V(e)?C(e,function(e){t.push(Ie(n)+`=`+Ie(Sr(e)))}):t.push(Ie(n)+`=`+Ie(Sr(e))))}),t.join(`&`)}}}function wr(){this.$get=function(){return function(e){if(!e)return``;var t=[];return n(e,``,!0),t.join(`&`);function n(e,r,i){V(e)?C(e,function(e,t){n(e,r+`[`+(R(e)?t:``)+`]`)}):R(e)&&!B(e)?w(e,function(e,t){n(e,r+(i?``:`[`)+t+(i?``:`]`))}):(H(e)&&(e=e()),t.push(Ie(r)+`=`+(e==null?``:Ie(Sr(e)))))}}}}function Tr(e,t){if(z(e)){var n=e.replace(br,``).trim();if(n){var r=t(`Content-Type`),i=r&&r.indexOf(gr)===0;if(i||Er(n))try{e=Ee(n)}catch(t){if(!i)return e;throw xr(`baddata`,`Data must be a valid JSON object. Received: "{0}". Parse error: "{1}"`,e,t)}}}return e}function Er(e){var t=e.match(vr);return t&&yr[t[0]].test(e)}function Dr(e){var t=tt(),n;function r(e,n){e&&(t[e]=t[e]?t[e]+`, `+n:n)}return z(e)?C(e.split(` 6`),function(e){n=e.indexOf(`:`),r(c(q(e.substr(0,n))),q(e.substr(n+1)))}):R(e)&&C(e,function(e,t){r(c(t),q(e))}),t}function Or(e){var t;return function(n){if(t||=Dr(e),n){var r=t[c(n)];return r===void 0&&(r=null),r}return t}}function kr(e,t,n,r){return H(r)?r(e,t,n):(C(r,function(r){e=r(e,t,n)}),e)}function Ar(e){return 200<=e&&e<300}function jr(){var e=this.defaults={transformResponse:[Tr],transformRequest:[function(e){return R(e)&&!ce(e)&&!U(e)&&!le(e)?Te(e):e}],headers:{common:{Accept:`application/json, text/plain, */*`},post:ut(_r),put:ut(_r),patch:ut(_r)},xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,paramSerializer:`$httpParamSerializer`,jsonpCallbackParam:`callback`},t=!1;this.useApplyAsync=function(e){return L(e)?(t=!!e,this):t};var n=this.interceptors=[],r=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins",{get:function(){return this.xsrfTrustedOrigins}
6,set:function(e){this.xsrfTrustedOrigins=e}}),this.$get=[`$browser`,`$httpBackend`,`$$cookieReader`,`$cacheFactory`,`$rootScope`,`$q`,`$injector`,`$sce`,function(a,o,s,u,d,f,p,m){var h=u(`$http`);e.paramSerializer=z(e.paramSerializer)?p.get(e.paramSerializer):e.paramSerializer;var g=[];C(n,function(e){g.unshift(z(e)?p.get(e):p.invoke(e))});var _=da(r);function v(t){if(!R(t))throw i(`$http`)(`badreq`,`Http request configuration must be an object. Received: {0}`,t);if(!z(m.valueOf(t.url)))throw i(`$http`)(`badreq`,`Http request configuration url must be a string or a $sce trusted object. Received: {0}`,t.url);var n=k({method:`get`,transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer,jsonpCallbackParam:e.jsonpCallbackParam},t);n.headers=_(t),n.method=l(n.method),n.paramSerializer=z(n.paramSerializer)?p.get(n.paramSerializer):n.paramSerializer,a.$$incOutstandingRequestCount(`$http`);var r=[],o=[],s=f.resolve(n);return C(g,function(e){(e.request||e.requestError)&&r.unshift(e.request,e.requestError),(e.response||e.responseError)&&o.push(e.response,e.responseError)}),s=u(s,r),s=s.then(v),s=u(s,o),s=s.finally(d),s;function u(e,t){for(var n=0,r=t.length;n<r;){var i=t[n++],a=t[n++];e=e.then(i,a)}return t.length=0,e}function d(){a.$$completeOutstandingRequest(P,`$http`)}function h(e,t){var n,r={};return C(e,function(e,i){H(e)?(n=e(t),n!=null&&(r[i]=n)):r[i]=e}),r}function _(t){var n=e.headers,r=k({},t.headers),i,a,o;n=k({},n.common,n[c(t.method)]);defaultHeadersIteration:for(i in n){for(o in a=c(i),r)if(c(o)===a)continue defaultHeadersIteration;r[i]=n[i]}return h(r,ut(t))}function v(t){var n=t.headers,r=kr(t.data,Or(n),void 0,t.transformRequest);return I(r)&&C(n,function(e,t){c(t)===`content-type`&&delete n[t]}),I(t.withCredentials)&&!I(e.withCredentials)&&(t.withCredentials=e.withCredentials),x(t,r).then(y,y)}function y(e){var t=k({},e);return t.data=kr(e.data,e.headers,e.status,n.transformResponse),Ar(e.status)?t:f.reject(t)}}return v.pendingRequests=[],y(`get`,`delete`,`head`,`jsonp`),b(`post`,`put`,`patch`),v.defaults=e,v;function y(e){C(arguments,function(e){v[e]=function(t,n){return v(k({},n||{},{method:e,url:t}))}})}function b(e){C(arguments,function(e){v[e]=function(t,n,r){return v(k({},r||{},{method:e,url:t,data:n}))}})}function x(n,r){var i=f.defer(),a=i.promise,l,u,p=n.headers,g=c(n.method)===`jsonp`,y=n.url;if(g?y=m.getTrustedResourceUrl(y):z(y)||(y=m.valueOf(y)),y=S(y,n.paramSerializer(n.params)),g&&(y=w(y,n.jsonpCallbackParam)),v.pendingRequests.push(n),a.then(O,O),(n.cache||e.cache)&&n.cache!==!1&&(n.method===`GET`||n.method===`JSONP`)&&(l=R(n.cache)?n.cache:R(e.cache)?e.cache:h),l&&(u=l.get(y),L(u)?G(u)?u.then(D,D):V(u)?E(u[1],u[0],ut(u[2]),u[3],u[4]):E(u,200,{},`OK`,`complete`):l.put(y,a)),I(u)){var b=_(n.url)?s()[n.xsrfCookieName||e.xsrfCookieName]:void 0;b&&(p[n.xsrfHeaderName||e.xsrfHeaderName]=b),o(n.method,y,r,T,p,n.timeout,n.withCredentials,n.responseType,x(n.eventHandlers),x(n.uploadEventHandlers))}return a;function x(e){if(e){var n={};return C(e,function(e,r){n[r]=function(n){t?d.$applyAsync(r):d.$$phase?r():d.$apply(r);function r(){e(n)}}}),n}}function T(e,n,r,i,a){l&&(Ar(e)?l.put(y,[e,n,Dr(r),i,a]):l.remove(y));function o(){E(n,e,r,i,a)}t?d.$applyAsync(o):(o(),d.$$phase||d.$apply())}function E(e,t,r,a,o){t=t>=-1?t:0,(Ar(t)?i.resolve:i.reject)({data:e,status:t,headers:Or(r),config:n,statusText:a,xhrStatus:o})}function D(e){E(e.data,e.status,ut(e.headers()),e.statusText,e.xhrStatus)}function O(){var e=v.pendingRequests.indexOf(n);e!==-1&&v.pendingRequests.splice(e,1)}}function S(e,t){return t.length>0&&(e+=(e.indexOf(`?`)===-1?`?`:`&`)+t),e}function w(e,t){var n=e.split(`?`);if(n.length>2)throw xr(`badjsonp`,`Illegal use more than one "?", in url, "{1}"`,e);return C(Ne(n[1]),function(n,r){if(n===`JSON_CALLBACK`)throw xr(`badjsonp`,`Illegal use of JSON_CALLBACK in url, "{0}"`,e);if(r===t)throw xr(`badjsonp`,`Illegal use of callback param, "{0}", in url, "{1}"`,t,e)}),e+=(e.indexOf(`?`)===-1?`?`:`&`)+t+`=JSON_CALLBACK`,e}}]}function Mr(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Nr(){this.$get=[`$browser`,`$jsonpCallbacks`,`$document`,`$xhrFactory`,function(e,t,n,r){return Pr(e,r,e.defer,t,n[0])}]}function Pr(e,t,n,r,i){return function(i,o,s,l,u,d,f,p,m,h){if(o||=e.url(),c(i)===`jsonp`)var g=r.createCallback(o),_=a(o,g,function(e,t){S(l,e,e===200&&r.getResponse(g),``,t,`complete`),r.removeCallback(g)});else{var v=t(i,o),y=!1;if(v.open(i,o,!0),C(u,function(e,t){L(e)&&v.setRequestHeader(t,e)}),v.onload=function(){var e=v.statusText||``,t=`response`in v?v.response:v.responseText,n=v.status===1223?204:v.status;n===0&&(n=t?200:ca(o).protocol===`file`?404:0),S(l,n,t,v.getAllResponseHeaders(),e,`complete`)},v.onerror=function(){S(l,-1,null,null,``,`error`)},v.ontimeout=function(){S(l,-1,null,null,``,`timeout`)},v.onabort=function(){S(l,-1,null,null,``,y?`timeout`:`abort`)},C(m,function(e,t){v.addEventListener(t,e)}),C(h,function(e,t){v.upload.addEventListener(t,e)}),f&&(v.withCredentials=!0),p)try{v.responseType=p}catch(e){if(p!==`json`)throw e}v.send(I(s)?null:s)}if(d>0)var b=n(function(){x(`timeout`)},d);else G(d)&&d.then(function(){x(L(d.$$timeoutId)?`timeout`:`abort`)});function x(e){y=e===`timeout`,_&&_(),v&&v.abort()}function S(e,t,r,i,a,o){L(b)&&n.cancel(b),_=v=null,e(t,r,i,a,o)}};function a(e,t,n){e=e.replace(`JSON_CALLBACK`,t);var a=i.createElement(`script`),o=null;return a.type=`text/javascript`,a.src=e,a.async=!0,o=function(e){a.removeEventListener(`load`,o),a.removeEventListener(`error`,o),i.body.removeChild(a),a=null;var s=-1,c=`unknown`;e&&(e.type===`load`&&!r.wasCalled(t)&&(e={type:`error`}),c=e.type,s=e.type===`error`?404:200),n&&n(s,c)},a.addEventListener(`load`,o),a.addEventListener(`error`,o),i.body.appendChild(a),o}}var Fr=y.$interpolateMinErr=i(`$interpolate`);Fr.throwNoconcat=function(e){throw Fr(`noconcat`,`Error while interpolating: {0} 7Strict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce`,e)},Fr.interr=function(e,t){return Fr(`interr`,`Can't interpolate: {0} 8{1}`,e,t.toString())};function Ir(){var e=`{{`,t=`}}`;this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=[`$parse`,`$exceptionHandler`,`$sce`,function(n,r,i){var a=e.length,o=t.length,s=new RegExp(e.replace(/./g,l),`g`),c=new RegExp(t.replace(/./g,l),`g`);function l(e){return`\\\\\\`+e}function u(n){return n.replace(s,e).replace(c,t)}function d(e,t,n,r){var i=e.$watch(function(e){return i(),r(e)},t,n);return i}function f(s,c,l,f){var p=l===i.URL||l===i.MEDIA_URL;if(!s.length||s.indexOf(e)===-1){if(c)return;var m=u(s);p&&(m=i.getTrusted(l,m));var h=ee(m);
8return h.exp=s,h.expressions=[],h.$$watchDelegate=d,h}f=!!f;for(var g,_,v=0,y=[],b,x=s.length,S,C=[],w=[],T;v<x;)if((g=s.indexOf(e,v))!==-1&&(_=s.indexOf(t,g+a))!==-1)v!==g&&C.push(u(s.substring(v,g))),S=s.substring(g+a,_),y.push(S),v=_+o,w.push(C.length),C.push(``);else{v!==x&&C.push(u(s.substring(v)));break}T=C.length===1&&w.length===1;var E=p&&T?void 0:O;if(b=y.map(function(e){return n(e,E)}),!c||y.length){var D=function(e){for(var t=0,n=y.length;t<n;t++){if(f&&I(e[t]))return;C[w[t]]=e[t]}return p?i.getTrusted(l,T?C[0]:C.join(``)):(l&&C.length>1&&Fr.throwNoconcat(s),C.join(``))};return k(function(e){var t=0,n=y.length,i=Array(n);try{for(;t<n;t++)i[t]=b[t](e);return D(i)}catch(e){r(Fr.interr(s,e))}},{exp:s,expressions:y,$$watchDelegate:function(e,t){var n;return e.$watchGroup(b,function(r,i){var a=D(r);t.call(this,a,r===i?a:n,e),n=a})}})}function O(e){try{return e=l&&!p?i.getTrusted(l,e):i.valueOf(e),f&&!L(e)?e:nt(e)}catch(e){r(Fr.interr(s,e))}}}return f.startSymbol=function(){return e},f.endSymbol=function(){return t},f}]}var Lr=i(`$interval`);function Rr(){this.$get=[`$$intervalFactory`,`$window`,function(e,t){var n={},r=function(e,r,i){var a=t.setInterval(e,r);return n[a]=i,a},i=function(e){t.clearInterval(e),delete n[e]},a=e(r,i);return a.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty(`$$intervalId`))throw Lr(`badprom`,"`$interval.cancel()` called with a promise that was not generated by `$interval()`.");if(!n.hasOwnProperty(e.$$intervalId))return!1;var t=e.$$intervalId,r=n[t];return Ri(r.promise),r.reject(`canceled`),i(t),!0},a}]}function zr(){this.$get=[`$browser`,`$q`,`$$q`,`$rootScope`,function(e,t,n,r){return function(i,a){return function(o,s,c,l){var u=arguments.length>4,d=u?Ce(arguments,4):[],f=0,p=L(l)&&!l,m=(p?n:t).defer(),h=m.promise;c=L(c)?c:0;function g(){u?o.apply(null,d):o(f)}function _(){p?e.defer(g):r.$evalAsync(g),m.notify(f++),c>0&&f>=c&&(m.resolve(f),a(h.$$intervalId)),p||r.$apply()}return h.$$intervalId=i(_,s,m,p),h}}}]}var Br=function(){this.$get=function(){var e=y.callbacks,t={};function n(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}return{createCallback:function(r){var i=`_`+(e.$$counter++).toString(36),a=`angular.callbacks.`+i;return t[a]=e[i]=n(i),a},wasCalled:function(e){return t[e].called},getResponse:function(e){return t[e].data},removeCallback:function(n){var r=t[n];delete e[r.id],delete t[n]}}}},Vr=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Hr={http:80,https:443,ftp:21},Ur=i(`$location`);function Wr(e){for(var t=e.split(`/`),n=t.length;n--;)t[n]=Fe(t[n].replace(/%2F/g,`/`));return t.join(`/`)}function Gr(e,t){for(var n=e.split(`/`),r=n.length;r--;)n[r]=decodeURIComponent(n[r]),t&&(n[r]=n[r].replace(/\//g,`%2F`));return n.join(`/`)}function Kr(e,t,n){var r=Pe(t),i=n?`#`+Fe(n):``;return Wr(e)+(r?`?`+r:``)+i}function qr(e,t){var n=ca(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=j(n.port)||Hr[n.protocol]||null}var Jr=/^\s*[\\/]{2,}/;function Yr(e,t,n){if(Jr.test(e))throw Ur(`badpath`,`Invalid url "{0}".`,e);var r=e.charAt(0)!==`/`;r&&(e=`/`+e);var i=ca(e);t.$$path=Gr(r&&i.pathname.charAt(0)===`/`?i.pathname.substring(1):i.pathname,n),t.$$search=Ne(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&t.$$path.charAt(0)!==`/`&&(t.$$path=`/`+t.$$path)}function Xr(e,t){return e.slice(0,t.length)===t}function Zr(e,t){if(Xr(t,e))return t.substr(e.length)}function Qr(e){var t=e.indexOf(`#`);return t===-1?e:e.substr(0,t)}function $r(e){return e.substr(0,Qr(e).lastIndexOf(`/`)+1)}function ei(e){return e.substring(0,e.indexOf(`/`,e.indexOf(`//`)+2))}function ti(e,t,n){this.$$html5=!0,n||=``,qr(e,this),this.$$parse=function(e){var n=Zr(t,e);if(!z(n))throw Ur(`ipthprfx`,`Invalid url "{0}", missing path prefix "{1}".`,e,t);Yr(n,this,!0),this.$$path||=`/`,this.$$compose()},this.$$normalizeUrl=function(e){return t+e.substr(1)},this.$$parseLinkUrl=function(r,i){if(i&&i[0]===`#`)return this.hash(i.slice(1)),!0;var a,o,s;return L(a=Zr(e,r))?(o=a,s=n&&L(a=Zr(n,a))?t+(Zr(`/`,a)||a):e+o):L(a=Zr(t,r))?s=t+a:t===r+`/`&&(s=t),s&&this.$$parse(s),!!s}}function ni(e,t,n){qr(e,this),this.$$parse=function(r){var i=Zr(e,r)||Zr(t,r),a;!I(i)&&i.charAt(0)===`#`?(a=Zr(n,i),I(a)&&(a=i)):this.$$html5?a=i:(a=``,I(i)&&(e=r,this.replace())),Yr(a,this,!1),this.$$path=o(this.$$path,a,e),this.$$compose();
8function o(e,t,n){var r=/^\/[A-Z]:(\/.*)/,i;return Xr(t,n)&&(t=t.replace(n,``)),r.exec(t)?e:(i=r.exec(e),i?i[1]:e)}},this.$$normalizeUrl=function(t){return e+(t?n+t:``)},this.$$parseLinkUrl=function(t,n){return Qr(e)===Qr(t)&&(this.$$parse(t),!0)}}function ri(e,t,n){this.$$html5=!0,ni.apply(this,arguments),this.$$parseLinkUrl=function(r,i){if(i&&i[0]===`#`)return this.hash(i.slice(1)),!0;var a,o;return e===Qr(r)?a=r:(o=Zr(t,r))?a=e+n+o:t===r+`/`&&(a=t),a&&this.$$parse(a),!!a},this.$$normalizeUrl=function(t){return e+n+t}}var ii={$$absUrl:``,$$html5:!1,$$replace:!1,$$compose:function(){this.$$url=Kr(this.$$path,this.$$search,this.$$hash),this.$$absUrl=this.$$normalizeUrl(this.$$url),this.$$urlUpdatedByLocation=!0},absUrl:ai(`$$absUrl`),url:function(e){if(I(e))return this.$$url;var t=Vr.exec(e);return(t[1]||e===``)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||e===``)&&this.search(t[3]||``),this.hash(t[5]||``),this},protocol:ai(`$$protocol`),host:ai(`$$host`),port:ai(`$$port`),path:oi(`$$path`,function(e){return e=e===null?``:e.toString(),e.charAt(0)===`/`?e:`/`+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(z(e)||re(e))e=e.toString(),this.$$search=Ne(e);else if(R(e))e=_e(e,{}),C(e,function(t,n){t??delete e[n]}),this.$$search=e;else throw Ur(`isrcharg`,"The first argument of the `$location#search()` call must be a string or an object.");break;default:I(t)||t===null?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:oi(`$$hash`,function(e){return e===null?``:e.toString()}),replace:function(){return this.$$replace=!0,this}};C([ri,ni,ti],function(e){e.prototype=Object.create(ii),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==ti||!this.$$html5)throw Ur(`nostate`,`History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API`);return this.$$state=I(t)?null:t,this.$$urlUpdatedByLocation=!0,this}});function ai(e){return function(){return this[e]}}function oi(e,t){return function(n){return I(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function si(){var e=`!`,t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return L(t)?(e=t,this):e},this.html5Mode=function(e){return W(e)?(t.enabled=e,this):R(e)?(W(e.enabled)&&(t.enabled=e.enabled),W(e.requireBase)&&(t.requireBase=e.requireBase),(W(e.rewriteLinks)||z(e.rewriteLinks))&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=[`$rootScope`,`$browser`,`$sniffer`,`$rootElement`,`$window`,function(n,r,i,a,o){var s,c,l=r.baseHref(),u=r.url(),f;if(t.enabled){if(!l&&t.requireBase)throw Ur(`nobase`,`$location in HTML5 mode requires a <base> tag to be present!`);f=ei(u)+(l||`/`),c=i.history?ti:ri}else f=Qr(u),c=ni;var p=$r(f);s=new c(f,p,`#`+e),s.$$parseLinkUrl(u,u),s.$$state=r.state();var m=/^\s*(javascript|mailto):/i;function h(e,t){return e===t||ca(e).href===ca(t).href}function g(e,t,n){var i=s.url(),a=s.$$state;try{r.url(e,t,n),s.$$state=r.state()}catch(e){throw s.url(i),s.$$state=a,e}}a.on(`click`,function(e){var i=t.rewriteLinks;if(!(!i||e.ctrlKey||e.metaKey||e.shiftKey||e.which===2||e.button===2)){for(var o=d(e.target);me(o[0])!==`a`;)if(o[0]===a[0]||!(o=o.parent())[0])return;if(!(z(i)&&I(o.attr(i)))){var c=o.prop(`href`),l=o.attr(`href`)||o.attr(`xlink:href`);R(c)&&c.toString()===`[object SVGAnimatedString]`&&(c=ca(c.animVal).href),!m.test(c)&&c&&!o.attr(`target`)&&!e.isDefaultPrevented()&&s.$$parseLinkUrl(c,l)&&(e.preventDefault(),s.absUrl()!==r.url()&&n.$apply())}}}),s.absUrl()!==u&&r.url(s.absUrl(),!0);var _=!0;return r.onUrlChange(function(e,t){if(!Xr(e,p)){o.location.href=e;return}n.$evalAsync(function(){var r=s.absUrl(),i=s.$$state,a;s.$$parse(e),s.$$state=t,a=n.$broadcast(`$locationChangeStart`,e,r,t,i).defaultPrevented,s.absUrl()===e&&(a?(s.$$parse(r),s.$$state=i,g(r,!1,i)):(_=!1,v(r,i)))}),n.$$phase||n.$digest()}),n.$watch(function(){if(_||s.$$urlUpdatedByLocation){s.$$urlUpdatedByLocation=!1;var e=r.url(),t=s.absUrl(),a=r.state(),o=s.$$replace,c=!h(e,t)||s.$$html5&&i.history&&a!==s.$$state;(_||c)&&(_=!1,n.$evalAsync(function(){var t=s.absUrl(),r=n.$broadcast(`$locationChangeStart`,t,e,s.$$state,a).defaultPrevented;s.absUrl()===t&&(r?(s.$$parse(e),s.$$state=a):(c&&g(t,o,a===s.$$
8state?null:s.$$state),v(e,a)))}))}s.$$replace=!1}),s;function v(e,t){n.$broadcast(`$locationChangeSuccess`,s.absUrl(),e,s.$$state,t)}}]}function ci(){var e=!0,t=this;this.debugEnabled=function(t){return L(t)?(e=t,this):e},this.$get=[`$window`,function(n){var r=u||/\bEdge\//.test(n.navigator&&n.navigator.userAgent);return{log:a(`log`),info:a(`info`),warn:a(`warn`),error:a(`error`),debug:(function(){var n=a(`debug`);return function(){e&&n.apply(t,arguments)}})()};function i(e){return ie(e)&&(e.stack&&r?e=e.message&&e.stack.indexOf(e.message)===-1?`Error: `+e.message+` 9`+e.stack:e.stack:e.sourceURL&&(e=e.message+` 10`+e.sourceURL+`:`+e.line)),e}function a(e){var t=n.console||{},r=t[e]||t.log||P;return function(){var e=[];return C(arguments,function(t){e.push(i(t))}),Function.prototype.apply.call(r,t,e)}}}]}var li=i(`$parse`),ui={}.constructor.prototype.valueOf;function di(e){return e+``}var fi=tt();C(`+ - * / % === !== == != < > <= >= && || ! = |`.split(` `),function(e){fi[e]=!0});var pi={n:` 11`,f:`\f`,r:`\r`,t:` `,v:`\v`,"'":`'`,'"':`"`},mi=function(e){this.options=e};mi.prototype={constructor:mi,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if(t===`"`||t===`'`)this.readString(t);else if(this.isNumber(t)||t===`.`&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,`(){}[].,;:?`))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),r=n+this.peek(2),i=fi[t],a=fi[n],o=fi[r];if(i||a||o){var s=o?r:a?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError(`Unexpected next character `,this.index,this.index+1)}}return this.tokens},is:function(e,t){return t.indexOf(e)!==-1},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return`0`<=e&&e<=`9`&&typeof e==`string`},isWhitespace:function(e){return e===` `||e===`\r`||e===` `||e===` 12`||e===`\v`||e===`\xA0`},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return`a`<=e&&e<=`z`||`A`<=e&&e<=`Z`||e===`_`||e===`$`},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return e.length===1?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),r=t.charCodeAt(0);return n>=55296&&n<=56319&&r>=56320&&r<=57343?e+t:e},isExpOperator:function(e){return e===`-`||e===`+`||this.isNumber(e)},throwError:function(e,t,n){throw n||=this.index,li(`lexerr`,`Lexer Error: {0} at column{1} in expression [{2}].`,e,L(t)?`s `+t+`-`+this.index+` [`+this.text.substring(t,n)+`]`:` `+n,this.text)},readNumber:function(){for(var e=``,t=this.index;this.index<this.text.length;){var n=c(this.text.charAt(this.index));if(n===`.`||this.isNumber(n))e+=n;else{var r=this.peek();if(n===`e`&&this.isExpOperator(r))e+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&e.charAt(e.length-1)===`e`)e+=n;else if(this.isExpOperator(n)&&(!r||!this.isNumber(r))&&e.charAt(e.length-1)===`e`)this.throwError(`Invalid exponent`);else break}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n=``,r=e,i=!1;this.index<this.text.length;){var a=this.text.charAt(this.index);if(r+=a,i){if(a===`u`){var o=this.text.substring(this.index+1,this.index+5);o.match(/[\da-f]{4}/i)||this.throwError(`Invalid unicode escape [\\u`+o+`]`),this.index+=4,n+=String.fromCharCode(parseInt(o,16))}else{var s=pi[a];n+=s||a}i=!1}else if(a===`\\`)i=!0;else if(a===e){this.index++,this.tokens.push({index:t,text:r,constant:!0,value:n});return}else n+=a;this.index++}this.throwError(`Unterminated quote`,t)}};var hi=function(e,t){this.lexer=e,this.options=t};hi.Program=`Program`,hi.ExpressionStatement=`ExpressionStatement`,hi.AssignmentExpression=`AssignmentExpression`,hi.ConditionalExpression=`ConditionalExpression`,hi.LogicalExpression=`LogicalExpression`,hi.BinaryExpression=`BinaryExpression`,hi.UnaryExpression=`UnaryExpression`,hi.CallExpression=`CallExpression`,hi.MemberExpression=`MemberExpression`,hi.Identifier=`Identifier`,hi.Literal=`Literal`,hi.ArrayExpression=`ArrayExpression`,hi.Property=`Property`,hi.ObjectExpression=`ObjectExpression`,hi.ThisExpression=`ThisExpression`,hi.LocalsExpression=`LocalsExpression`,hi.NGValueParameter=`NGValueParameter`,hi.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return this.tokens.length!==0&&this.throwError(`is an unexpected token`,this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek(`}`,`)`,`;
12`,`]`)&&e.push(this.expressionStatement()),!this.expect(`;`))return{type:hi.Program,body:e}},expressionStatement:function(){return{type:hi.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect(`|`);)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect(`=`)){if(!wi(e))throw li(`lval`,`Trying to assign a value to a non l-value`);e={type:hi.AssignmentExpression,left:e,right:this.assignment(),operator:`=`}}return e},ternary:function(){var e=this.logicalOR(),t,n;return this.expect(`?`)&&(t=this.expression(),this.consume(`:`))?(n=this.expression(),{type:hi.ConditionalExpression,test:e,alternate:t,consequent:n}):e},logicalOR:function(){for(var e=this.logicalAND();this.expect(`||`);)e={type:hi.LogicalExpression,operator:`||`,left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect(`&&`);)e={type:hi.LogicalExpression,operator:`&&`,left:e,right:this.equality()};return e},equality:function(){for(var e=this.relational(),t;t=this.expect(`==`,`!=`,`===`,`!==`);)e={type:hi.BinaryExpression,operator:t.text,left:e,right:this.relational()};return e},relational:function(){for(var e=this.additive(),t;t=this.expect(`<`,`>`,`<=`,`>=`);)e={type:hi.BinaryExpression,operator:t.text,left:e,right:this.additive()};return e},additive:function(){for(var e=this.multiplicative(),t;t=this.expect(`+`,`-`);)e={type:hi.BinaryExpression,operator:t.text,left:e,right:this.multiplicative()};return e},multiplicative:function(){for(var e=this.unary(),t;t=this.expect(`*`,`/`,`%`);)e={type:hi.BinaryExpression,operator:t.text,left:e,right:this.unary()};return e},unary:function(){var e;return(e=this.expect(`+`,`-`,`!`))?{type:hi.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect(`(`)?(e=this.filterChain(),this.consume(`)`)):this.expect(`[`)?e=this.arrayDeclaration():this.expect(`{`)?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=_e(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:hi.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError(`not a primary expression`,this.peek());for(var t;t=this.expect(`(`,`[`,`.`);)t.text===`(`?(e={type:hi.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(`)`)):t.text===`[`?(e={type:hi.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume(`]`)):t.text===`.`?e={type:hi.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError(`IMPOSSIBLE`);return e},filter:function(e){for(var t=[e],n={type:hi.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(`:`);)t.push(this.expression());return n},parseArguments:function(){var e=[];if(this.peekToken().text!==`)`)do e.push(this.filterChain());while(this.expect(`,`));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError(`is not a valid identifier`,e),{type:hi.Identifier,name:e.text}},constant:function(){return{type:hi.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if(this.peekToken().text!==`]`)do{if(this.peek(`]`))break;e.push(this.expression())}while(this.expect(`,`));return this.consume(`]`),{type:hi.ArrayExpression,elements:e}},object:function(){var e=[],t;if(this.peekToken().text!==`}`)do{if(this.peek(`}`))break;t={type:hi.Property,kind:`init`},this.peek().constant?(t.key=this.constant(),t.computed=!1,this.consume(`:`),t.value=this.expression()):this.peek().identifier?(t.key=this.identifier(),t.computed=!1,this.peek(`:`)?(this.consume(`:`),t.value=this.expression()):t.value=t.key):this.peek(`[`)?(this.consume(`[`),t.key=this.expression(),this.consume(`]`),t.computed=!0,this.consume(`:`),t.value=this.expression()):this.throwError(`invalid key`,this.peek()),e.push(t)}while(this.expect(`,`));return this.consume(`}`),{type:hi.ObjectExpression,properties:e}},throwError:function(e,t){throw li(`syntax`,`Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].`,t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(this.tokens.length===0)throw li(`ueoe`,`Unexpected end of expression: {0}`,this.text);var t=this.expect(e);return t||this.throwError(`is unexpected, expecting [`+e+`]`,this.peek()),t},peekToken:function(){if(this.tokens.length===0)throw li(`ueoe`,`Unexpected end of expression: {0}`,this.text);return this.tokens[0]},peek:function(e,t,n,r){return this.peekAhead(0,e,t,n,r)},peekAhead:function(e,t,n,r,i){if(this.tokens.length>e){var a=this.tokens[e],o=a.text;if(o===t||o===n||o===r||o===i||!t&&!n&&!r&&!i)return a}return!1},expect:function(e,t,n,r){var i=this.peek(e,t,n,r);return i?(this.tokens.shift(),i):!1},selfReferential:{this:{type:hi.ThisExpression},$locals:{type:hi.LocalsExpression}}};function gi(e,t){return e===void 0?t:e}function _i(e,t){return e===void 0?t:t===void 0?e:e+t}function vi(e,t){return!e(t).$stateful}var yi=1,bi=2;function xi(e,t){switch(e.type){case hi.MemberExpression:if(e.computed)return!1;break;case hi.UnaryExpression:return yi;case hi.BinaryExpression:return e.operator!==`+`&&yi;case hi.CallExpression:return!1}return t===void 0?bi:t}function Si(e,t,n){var r,i,a,o=e.isPure=xi(e,n);
12switch(e.type){case hi.Program:r=!0,C(e.body,function(e){Si(e.expression,t,o),r&&=e.expression.constant}),e.constant=r;break;case hi.Literal:e.constant=!0,e.toWatch=[];break;case hi.UnaryExpression:Si(e.argument,t,o),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case hi.BinaryExpression:Si(e.left,t,o),Si(e.right,t,o),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case hi.LogicalExpression:Si(e.left,t,o),Si(e.right,t,o),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case hi.ConditionalExpression:Si(e.test,t,o),Si(e.alternate,t,o),Si(e.consequent,t,o),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case hi.Identifier:e.constant=!1,e.toWatch=[e];break;case hi.MemberExpression:Si(e.object,t,o),e.computed&&Si(e.property,t,o),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=e.constant?[]:[e];break;case hi.CallExpression:a=e.filter?vi(t,e.callee.name):!1,r=a,i=[],C(e.arguments,function(e){Si(e,t,o),r&&=e.constant,i.push.apply(i,e.toWatch)}),e.constant=r,e.toWatch=a?i:[e];break;case hi.AssignmentExpression:Si(e.left,t,o),Si(e.right,t,o),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case hi.ArrayExpression:r=!0,i=[],C(e.elements,function(e){Si(e,t,o),r&&=e.constant,i.push.apply(i,e.toWatch)}),e.constant=r,e.toWatch=i;break;case hi.ObjectExpression:r=!0,i=[],C(e.properties,function(e){Si(e.value,t,o),r&&=e.value.constant,i.push.apply(i,e.value.toWatch),e.computed&&(Si(e.key,t,!1),r&&=e.key.constant,i.push.apply(i,e.key.toWatch))}),e.constant=r,e.toWatch=i;break;case hi.ThisExpression:e.constant=!1,e.toWatch=[];break;case hi.LocalsExpression:e.constant=!1,e.toWatch=[]}}function Ci(e){if(e.length===1){var t=e[0].expression,n=t.toWatch;return n.length===1&&n[0]===t?void 0:n}}function wi(e){return e.type===hi.Identifier||e.type===hi.MemberExpression}function Ti(e){if(e.body.length===1&&wi(e.body[0].expression))return{type:hi.AssignmentExpression,left:e.body[0].expression,right:{type:hi.NGValueParameter},operator:`=`}}function Ei(e){return e.body.length===0||e.body.length===1&&(e.body[0].expression.type===hi.Literal||e.body[0].expression.type===hi.ArrayExpression||e.body[0].expression.type===hi.ObjectExpression)}function Di(e){return e.constant}function Oi(e){this.$filter=e}Oi.prototype={compile:function(e){var t=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Si(e,t.$filter);var n=``,r;if(this.stage=`assign`,r=Ti(e)){this.state.computing=`assign`;var i=this.nextId();this.recurse(r,i),this.return_(i),n=`fn.assign=`+this.generateFunction(`assign`,`s,v,l`)}var a=Ci(e.body);t.stage=`inputs`,C(a,function(e,n){var r=`fn`+n;t.state[r]={vars:[],body:[],own:{}},t.state.computing=r;var i=t.nextId();t.recurse(e,i),t.return_(i),t.state.inputs.push({name:r,isPure:e.isPure}),e.watchId=n}),this.state.computing=`fn`,this.stage=`main`,this.recurse(e);var o=`"`+this.USE+` `+this.STRICT+`"; 13`+this.filterPrefix()+`var fn=`+this.generateFunction(`fn`,`s,l,a,i`)+n+this.watchFns()+`return fn;`,s=Function(`$filter`,`getStringValue`,`ifDefined`,`plus`,o)(this.$filter,di,gi,_i);return this.state=this.stage=void 0,s},USE:`use`,STRICT:`strict`,watchFns:function(){var e=[],t=this.state.inputs,n=this;return C(t,function(t){e.push(`var `+t.name+`=`+n.generateFunction(t.name,`s`)),t.isPure&&e.push(t.name,`.isPure=`+JSON.stringify(t.isPure)+`;`)}),t.length&&e.push(`fn.inputs=[`+t.map(function(e){return e.name}).join(`,`)+`];`),e.join(``)},generateFunction:function(e,t){return`function(`+t+`){`+this.varsPrefix(e)+this.body(e)+`};`},filterPrefix:function(){var e=[],t=this;return C(this.state.filters,function(n,r){e.push(n+`=$filter(`+t.escape(r)+`)`)}),e.length?`var `+e.join(`,`)+`;`:``},varsPrefix:function(e){return this.state[e].vars.length?`var `+this.state[e].vars.join(`,`)+`;`:``},body:function(e){return this.state[e].body.join(``)},recurse:function(e,t,n,r,i,a){var o,s,c=this,l,u,d;if(r||=P,!a&&L(e.watchId)){t||=this.nextId(),this.if_(`i`,this.lazyAssign(t,this.computedMember(`i`,e.watchId)),this.lazyRecurse(e,t,n,r,i,!0));return}switch(e.type){case hi.Program:C(e.body,function(t,n){c.recurse(t.expression,void 0,void 0,function(e){s=e}),n===e.body.length-1?c.return_(s):c.current().body.push(s,`;`)});break;
13case hi.Literal:u=this.escape(e.value),this.assign(t,u),r(t||u);break;case hi.UnaryExpression:this.recurse(e.argument,void 0,void 0,function(e){s=e}),u=e.operator+`(`+this.ifDefined(s,0)+`)`,this.assign(t,u),r(u);break;case hi.BinaryExpression:this.recurse(e.left,void 0,void 0,function(e){o=e}),this.recurse(e.right,void 0,void 0,function(e){s=e}),u=e.operator===`+`?this.plus(o,s):e.operator===`-`?this.ifDefined(o,0)+e.operator+this.ifDefined(s,0):`(`+o+`)`+e.operator+`(`+s+`)`,this.assign(t,u),r(u);break;case hi.LogicalExpression:t||=this.nextId(),c.recurse(e.left,t),c.if_(e.operator===`&&`?t:c.not(t),c.lazyRecurse(e.right,t)),r(t);break;case hi.ConditionalExpression:t||=this.nextId(),c.recurse(e.test,t),c.if_(t,c.lazyRecurse(e.alternate,t),c.lazyRecurse(e.consequent,t)),r(t);break;case hi.Identifier:t||=this.nextId(),n&&(n.context=c.stage===`inputs`?`s`:this.assign(this.nextId(),this.getHasOwnProperty(`l`,e.name)+`?l:s`),n.computed=!1,n.name=e.name),c.if_(c.stage===`inputs`||c.not(c.getHasOwnProperty(`l`,e.name)),function(){c.if_(c.stage===`inputs`||`s`,function(){i&&i!==1&&c.if_(c.isNull(c.nonComputedMember(`s`,e.name)),c.lazyAssign(c.nonComputedMember(`s`,e.name),`{}`)),c.assign(t,c.nonComputedMember(`s`,e.name))})},t&&c.lazyAssign(t,c.nonComputedMember(`l`,e.name))),r(t);break;case hi.MemberExpression:o=n&&(n.context=this.nextId())||this.nextId(),t||=this.nextId(),c.recurse(e.object,o,void 0,function(){c.if_(c.notNull(o),function(){e.computed?(s=c.nextId(),c.recurse(e.property,s),c.getStringValue(s),i&&i!==1&&c.if_(c.not(c.computedMember(o,s)),c.lazyAssign(c.computedMember(o,s),`{}`)),u=c.computedMember(o,s),c.assign(t,u),n&&(n.computed=!0,n.name=s)):(i&&i!==1&&c.if_(c.isNull(c.nonComputedMember(o,e.property.name)),c.lazyAssign(c.nonComputedMember(o,e.property.name),`{}`)),u=c.nonComputedMember(o,e.property.name),c.assign(t,u),n&&(n.computed=!1,n.name=e.property.name))},function(){c.assign(t,`undefined`)}),r(t)},!!i);break;case hi.CallExpression:t||=this.nextId(),e.filter?(s=c.filter(e.callee.name),l=[],C(e.arguments,function(e){var t=c.nextId();c.recurse(e,t),l.push(t)}),u=s+`(`+l.join(`,`)+`)`,c.assign(t,u),r(t)):(s=c.nextId(),o={},l=[],c.recurse(e.callee,s,o,function(){c.if_(c.notNull(s),function(){C(e.arguments,function(t){c.recurse(t,e.constant?void 0:c.nextId(),void 0,function(e){l.push(e)})}),u=o.name?c.member(o.context,o.name,o.computed)+`(`+l.join(`,`)+`)`:s+`(`+l.join(`,`)+`)`,c.assign(t,u)},function(){c.assign(t,`undefined`)}),r(t)}));break;case hi.AssignmentExpression:s=this.nextId(),o={},this.recurse(e.left,void 0,o,function(){c.if_(c.notNull(o.context),function(){c.recurse(e.right,s),u=c.member(o.context,o.name,o.computed)+e.operator+s,c.assign(t,u),r(t||u)})},1);break;case hi.ArrayExpression:l=[],C(e.elements,function(t){c.recurse(t,e.constant?void 0:c.nextId(),void 0,function(e){l.push(e)})}),u=`[`+l.join(`,`)+`]`,this.assign(t,u),r(t||u);break;case hi.ObjectExpression:l=[],d=!1,C(e.properties,function(e){e.computed&&(d=!0)}),d?(t||=this.nextId(),this.assign(t,`{}`),C(e.properties,function(e){e.computed?(o=c.nextId(),c.recurse(e.key,o)):o=e.key.type===hi.Identifier?e.key.name:``+e.key.value,s=c.nextId(),c.recurse(e.value,s),c.assign(c.member(t,o,e.computed),s)})):(C(e.properties,function(t){c.recurse(t.value,e.constant?void 0:c.nextId(),void 0,function(e){l.push(c.escape(t.key.type===hi.Identifier?t.key.name:``+t.key.value)+`:`+e)})}),u=`{`+l.join(`,`)+`}`,this.assign(t,u)),r(t||u);break;case hi.ThisExpression:this.assign(t,`s`),r(t||`s`);break;case hi.LocalsExpression:this.assign(t,`l`),r(t||`l`);break;case hi.NGValueParameter:this.assign(t,`v`),r(t||`v`)}},getHasOwnProperty:function(e,t){var n=e+`.`+t,r=this.current().own;return r.hasOwnProperty(n)||(r[n]=this.nextId(!1,e+`&&(`+this.escape(t)+` in `+e+`)`)),r[n]},assign:function(e,t){if(e)return this.current().body.push(e,`=`,t,`;`),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return`ifDefined(`+e+`,`+this.escape(t)+`)`},plus:function(e,t){return`plus(`+e+`,`+t+`)`},return_:function(e){this.current().body.push(`return `,e,`;`)},if_:function(e,t,n){if(e===!0)t();else{var r=this.current().body;r.push(`if(`,e,`){`),t(),r.push(`}`),n&&(r.push(`else{`),n(),r.push(`}`))}},not:function(e){return`!(`+e+`)`},isNull:function(e){return e+`==null`},notNull:function(e){return e+`!=null`},nonComputedMember:function(e,t){return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+`.`+t:e+`["`+t.replace(/[^$_a-zA-Z0-9]/g,this.stringEscapeFn)+`"]`},computedMember:function(e,t){return e+`[`+t+`]`},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},getStringValue:function(e){this.assign(e,`getStringValue(`+e+`)`)},lazyRecurse:function(e,t,n,r,i,a){var o=this;return function(){o.recurse(e,t,n,r,i,a)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return`\\u`+(`0000`+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(z(e))return`'`+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+`'`;if(re(e))return e.toString();if(e===!0)return`true`;if(e===!1)return`false`;if(e===null)return`null`;if(e===void 0)return`undefined`;throw li(`esc`,`IMPOSSIBLE`)},nextId:function(e,t){var n=`v`+this.state.nextId++;return e||this.current().vars.push(n+(t?`=`+t:``)),n},current:function(){return this.state[this.state.computing]}};function ki(e){this.$filter=e}ki.prototype={compile:function(e){var t=this;Si(e,t.$filter);var n,r;(n=Ti(e))&&(r=this.recurse(n));var i=Ci(e.body),a;i&&(a=[],C(i,function(e,n){var r=t.recurse(e);r.isPure=e.isPure,e.input=r,a.push(r),e.watchId=n}));var o=[];C(e.body,function(e){o.push(t.recurse(e.expression))});var s=e.body.length===0?P:e.body.length===1?o[0]:function(e,t){var n;return C(o,function(r){n=r(e,t)}),n};return r&&(s.assign=function(e,t,n){return r(e,n,t)}),a&&(s.inputs=a),s},recurse:function(e,t,n){var r,i,a=this,o;if(e.input)return this.inputs(e.input,e.watchId);
13switch(e.type){case hi.Literal:return this.value(e.value,t);case hi.UnaryExpression:return i=this.recurse(e.argument),this[`unary`+e.operator](i,t);case hi.BinaryExpression:return r=this.recurse(e.left),i=this.recurse(e.right),this[`binary`+e.operator](r,i,t);case hi.LogicalExpression:return r=this.recurse(e.left),i=this.recurse(e.right),this[`binary`+e.operator](r,i,t);case hi.ConditionalExpression:return this[`ternary?:`](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case hi.Identifier:return a.identifier(e.name,t,n);case hi.MemberExpression:return r=this.recurse(e.object,!1,!!n),e.computed||(i=e.property.name),e.computed&&(i=this.recurse(e.property)),e.computed?this.computedMember(r,i,t,n):this.nonComputedMember(r,i,t,n);case hi.CallExpression:return o=[],C(e.arguments,function(e){o.push(a.recurse(e))}),e.filter&&(i=this.$filter(e.callee.name)),e.filter||(i=this.recurse(e.callee,!0)),e.filter?function(e,n,r,a){for(var s=[],c=0;c<o.length;++c)s.push(o[c](e,n,r,a));var l=i.apply(void 0,s,a);return t?{context:void 0,name:void 0,value:l}:l}:function(e,n,r,a){var s=i(e,n,r,a),c;if(s.value!=null){for(var l=[],u=0;u<o.length;++u)l.push(o[u](e,n,r,a));c=s.value.apply(s.context,l)}return t?{value:c}:c};case hi.AssignmentExpression:return r=this.recurse(e.left,!0,1),i=this.recurse(e.right),function(e,n,a,o){var s=r(e,n,a,o),c=i(e,n,a,o);return s.context[s.name]=c,t?{value:c}:c};case hi.ArrayExpression:return o=[],C(e.elements,function(e){o.push(a.recurse(e))}),function(e,n,r,i){for(var a=[],s=0;s<o.length;++s)a.push(o[s](e,n,r,i));return t?{value:a}:a};case hi.ObjectExpression:return o=[],C(e.properties,function(e){e.computed?o.push({key:a.recurse(e.key),computed:!0,value:a.recurse(e.value)}):o.push({key:e.key.type===hi.Identifier?e.key.name:``+e.key.value,computed:!1,value:a.recurse(e.value)})}),function(e,n,r,i){for(var a={},s=0;s<o.length;++s)o[s].computed?a[o[s].key(e,n,r,i)]=o[s].value(e,n,r,i):a[o[s].key]=o[s].value(e,n,r,i);return t?{value:a}:a};case hi.ThisExpression:return function(e){return t?{value:e}:e};case hi.LocalsExpression:return function(e,n){return t?{value:n}:n};case hi.NGValueParameter:return function(e,n,r){return t?{value:r}:r}}},"unary+":function(e,t){return function(n,r,i,a){var o=e(n,r,i,a);return o=L(o)?+o:0,t?{value:o}:o}},"unary-":function(e,t){return function(n,r,i,a){var o=e(n,r,i,a);return o=L(o)?-o:-0,t?{value:o}:o}},"unary!":function(e,t){return function(n,r,i,a){var o=!e(n,r,i,a);return t?{value:o}:o}},"binary+":function(e,t,n){return function(r,i,a,o){var s=_i(e(r,i,a,o),t(r,i,a,o));return n?{value:s}:s}},"binary-":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o),c=t(r,i,a,o),l=(L(s)?s:0)-(L(c)?c:0);return n?{value:l}:l}},"binary*":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)*t(r,i,a,o);return n?{value:s}:s}},"binary/":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)/t(r,i,a,o);return n?{value:s}:s}},"binary%":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)%t(r,i,a,o);return n?{value:s}:s}},"binary===":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)===t(r,i,a,o);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)!==t(r,i,a,o);return n?{value:s}:s}},"binary==":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)==t(r,i,a,o);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)!=t(r,i,a,o);return n?{value:s}:s}},"binary<":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)<t(r,i,a,o);return n?{value:s}:s}},"binary>":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)>t(r,i,a,o);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)<=t(r,i,a,o);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)>=t(r,i,a,o);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)&&t(r,i,a,o);return n?{value:s}:s}},"binary||":function(e,t,n){return function(r,i,a,o){var s=e(r,i,a,o)||t(r,i,a,o);return n?{value:s}:s}},"ternary?:":function(e,t,n,r){return function(i,a,o,s){var c=e(i,a,o,s)?t(i,a,o,s):n(i,a,o,s);return r?{value:c}:c}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n){return function(r,i,a,o){var s=i&&e in i?i:r;n&&n!==1&&s&&s[e]==null&&(s[e]={});var c=s?s[e]:void 0;return t?{context:s,name:e,value:c}:c}},computedMember:function(e,t,n,r){return function(i,a,o,s){var c=e(i,a,o,s),l,u;return c!=null&&(l=t(i,a,o,s),l=di(l),r&&r!==1&&c&&!c[l]&&(c[l]={}),u=c[l]),n?{context:c,name:l,value:u}:u}},nonComputedMember:function(e,t,n,r){return function(i,a,o,s){var c=e(i,a,o,s);r&&r!==1&&c&&c[t]==null&&(c[t]={});var l=c?.[t];return n?{context:c,name:t,value:l}:l}},inputs:function(e,t){return function(n,r,i,a){return a?a[t]:e(n,r,i)}}};
13function Ai(e,t,n){this.ast=new hi(e,n),this.astCompiler=n.csp?new ki(t):new Oi(t)}Ai.prototype={constructor:Ai,parse:function(e){var t=this.getAst(e),n=this.astCompiler.compile(t.ast);return n.literal=Ei(t.ast),n.constant=Di(t.ast),n.oneTime=t.oneTime,n},getAst:function(e){var t=!1;return e=e.trim(),e.charAt(0)===`:`&&e.charAt(1)===`:`&&(t=!0,e=e.substring(2)),{ast:this.ast.ast(e),oneTime:t}}};function ji(e){return H(e.valueOf)?e.valueOf():ui.call(e)}function Mi(){var e=tt(),t={true:!0,false:!1,null:null,undefined:void 0},n,r;this.addLiteral=function(e,n){t[e]=n},this.setIdentifierFns=function(e,t){return n=e,r=t,this},this.$get=[`$filter`,function(i){var a={csp:be().noUnsafeEval,literals:_e(t),isIdentifierStart:H(n)&&n,isIdentifierContinue:H(r)&&r};return o.$$getAst=s,o;function o(t,n){var r,o;switch(typeof t){case`string`:return t=t.trim(),o=t,r=e[o],r||(r=new Ai(new mi(a),i,a).parse(t),e[o]=p(r)),h(r,n);case`function`:return h(t,n);default:return h(P,n)}}function s(e){return new Ai(new mi(a),i,a).getAst(e).ast}function c(e,t,n){return e==null||t==null?e===t:typeof e==`object`&&(e=ji(e),typeof e==`object`&&!n)?!1:e===t||e!==e&&t!==t}function l(e,t,n,r,i){var a=r.inputs,o;if(a.length===1){var s=c;return a=a[0],e.$watch(function(e){var t=a(e);return c(t,s,a.isPure)||(o=r(e,void 0,void 0,[t]),s=t&&ji(t)),o},t,n,i)}for(var l=[],u=[],d=0,f=a.length;d<f;d++)l[d]=c,u[d]=null;return e.$watch(function(e){for(var t=!1,n=0,i=a.length;n<i;n++){var s=a[n](e);(t||=!c(s,l[n],a[n].isPure))&&(u[n]=s,l[n]=s&&ji(s))}return t&&(o=r(e,void 0,void 0,u)),o},t,n,i)}function u(e,t,n,r,i){var a=r.literal?d:L,o,s,c=r.$$intercepted||r,l=r.$$interceptor||F,u=r.inputs&&!c.inputs;return m.literal=r.literal,m.constant=r.constant,m.inputs=r.inputs,p(m),o=e.$watch(m,t,n,i),o;function f(){a(s)&&o()}function m(e,t,n,r){return s=u&&r?r[0]:c(e,t,n,r),a(s)&&e.$$postDigest(f),l(s)}}function d(e){var t=!0;return C(e,function(e){L(e)||(t=!1)}),t}function f(e,t,n,r){var i=e.$watch(function(e){return i(),r(e)},t,n);return i}function p(e){return e.constant?e.$$watchDelegate=f:e.oneTime?e.$$watchDelegate=u:e.inputs&&(e.$$watchDelegate=l),e}function m(e,t){function n(n){return t(e(n))}return n.$stateful=e.$stateful||t.$stateful,n.$$pure=e.$$pure&&t.$$pure,n}function h(e,t){if(!t)return e;e.$$interceptor&&(t=m(e.$$interceptor,t),e=e.$$intercepted);var n=!1,r=function(r,i,a,o){var s=n&&o?o[0]:e(r,i,a,o);return t(s)};return r.$$intercepted=e,r.$$interceptor=t,r.literal=e.literal,r.oneTime=e.oneTime,r.constant=e.constant,t.$stateful||(n=!e.inputs,r.inputs=e.inputs?e.inputs:[e],t.$$pure||(r.inputs=r.inputs.map(function(e){return e.isPure===bi?function(t){return e(t)}:e}))),p(r)}}]}function Ni(){var e=!0;this.$get=[`$rootScope`,`$exceptionHandler`,function(t,n){return Fi(function(e){t.$evalAsync(e)},n,e)}],this.errorOnUnhandledRejections=function(t){return L(t)?(e=t,this):e}}function Pi(){var e=!0;this.$get=[`$browser`,`$exceptionHandler`,function(t,n){return Fi(function(e){t.defer(e)},n,e)}],this.errorOnUnhandledRejections=function(t){return L(t)?(e=t,this):e}}function Fi(e,t,n){var r=i(`$q`,TypeError),a=0,o=[];function s(){return new c}function c(){var e=this.promise=new l;this.resolve=function(t){p(e,t)},this.reject=function(t){h(e,t)},this.notify=function(t){_(e,t)}}function l(){this.$$state={status:0}}k(l.prototype,{then:function(e,t,n){if(I(e)&&I(t)&&I(n))return this;var r=new l;
13return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,e,t,n]),this.$$state.status>0&&f(this.$$state),r},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then(function(t){return y(t,x,e)},function(t){return y(t,v,e)},t)}});function u(r){var i,o,s=r.pending;r.processScheduled=!1,r.pending=void 0;try{for(var c=0,l=s.length;c<l;++c){Li(r),o=s[c][0],i=s[c][r.status];try{H(i)?p(o,i(r.value)):r.status===1?p(o,r.value):h(o,r.value)}catch(e){h(o,e),e&&e.$$passToExceptionHandler===!0&&t(e)}}}finally{--a,n&&a===0&&e(d)}}function d(){for(;!a&&o.length;){var e=o.shift();if(!Ii(e)){Li(e);var n=`Possibly unhandled rejection: `+ft(e.value);ie(e.value)?t(e.value,n):t(n)}}}function f(t){n&&!t.pending&&t.status===2&&!Ii(t)&&(a===0&&o.length===0&&e(d),o.push(t)),!t.processScheduled&&t.pending&&(t.processScheduled=!0,++a,e(function(){u(t)}))}function p(e,t){e.$$state.status||(t===e?g(e,r(`qcycle`,`Expected promise to be resolved with value other than itself '{0}'`,t)):m(e,t))}function m(e,t){var n,r=!1;try{(R(t)||H(t))&&(n=t.then),H(n)?(e.$$state.status=-1,n.call(t,i,a,o)):(e.$$state.value=t,e.$$state.status=1,f(e.$$state))}catch(e){a(e)}function i(t){r||(r=!0,m(e,t))}function a(t){r||(r=!0,g(e,t))}function o(t){_(e,t)}}function h(e,t){e.$$state.status||g(e,t)}function g(e,t){e.$$state.value=t,e.$$state.status=2,f(e.$$state)}function _(n,r){var i=n.$$state.pending;n.$$state.status<=0&&i&&i.length&&e(function(){for(var e,n,a=0,o=i.length;a<o;a++){n=i[a][0],e=i[a][3];try{_(n,H(e)?e(r):r)}catch(e){t(e)}}})}function v(e){var t=new l;return h(t,e),t}function y(e,t,n){var r=null;try{H(n)&&(r=n())}catch(e){return v(e)}return G(r)?r.then(function(){return t(e)},v):t(e)}function b(e,t,n,r){var i=new l;return p(i,e),i.then(t,n,r)}var x=b;function S(e){var t=new l,n=0,r=V(e)?[]:{};return C(e,function(e,i){n++,b(e).then(function(e){r[i]=e,--n||p(t,r)},function(e){h(t,e)})}),n===0&&p(t,r),t}function w(e){var t=s();return C(e,function(e){b(e).then(t.resolve,t.reject)}),t.promise}function T(e){if(!H(e))throw r(`norslvr`,`Expected resolverFn, got '{0}'`,e);var t=new l;function n(e){p(t,e)}function i(e){h(t,e)}return e(n,i),t}return T.prototype=l.prototype,T.defer=s,T.reject=v,T.when=b,T.resolve=x,T.all=S,T.race=w,T}function Ii(e){return!!e.pur}function Li(e){e.pur=!0}function Ri(e){e.$$state&&Li(e.$$state)}function zi(){this.$get=[`$window`,`$timeout`,function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,r=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,a=i?function(e){var t=n(e);return function(){r(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return a.supported=i,a}]}function Bi(){var e=10,t=i(`$rootScope`),n=null,r=null;this.digestTtl=function(t){return arguments.length&&(e=t),e};function a(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=E(),this.$$ChildScope=null,this.$$suspended=!1}return t.prototype=e,t}this.$get=[`$exceptionHandler`,`$parse`,`$browser`,function(i,o,c){function l(e){e.currentScope.$$destroyed=!0}function d(e){u===9&&(e.$$childHead&&d(e.$$childHead),e.$$nextSibling&&d(e.$$nextSibling)),e.$parent=e.$$nextSibling=e.$$prevSibling=e.$$childHead=e.$$childTail=e.$root=e.$$watchers=null}function f(){this.$id=E(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$suspended=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}f.prototype={constructor:f,$new:function(e,t){var n;return t||=this,e?(n=new f,n.$root=this.$root):(this.$$ChildScope||=a(this),n=new this.$$ChildScope),n.$parent=t,n.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=n,t.$$childTail=n):t.$$childHead=t.$$childTail=n,(e||t!==this)&&n.$on(`$destroy`,l),n},$watch:function(e,t,r,i){var a=o(e),s=H(t)?t:P;
13if(a.$$watchDelegate)return a.$$watchDelegate(this,s,r,a,e);var c=this,l=c.$$watchers,u={fn:s,last:w,get:a,exp:i||e,eq:!!r};return n=null,l||(l=c.$$watchers=[],l.$$digestWatchIndex=-1),l.unshift(u),l.$$digestWatchIndex++,b(this,1),function(){var e=ge(l,u);e>=0&&(b(c,-1),e<l.$$digestWatchIndex&&l.$$digestWatchIndex--),n=null}},$watchGroup:function(e,t){var n=Array(e.length),r=Array(e.length),i=[],a=this,o=!1,s=!0;if(!e.length){var c=!0;return a.$evalAsync(function(){c&&t(r,r,a)}),function(){c=!1}}if(e.length===1)return this.$watch(e[0],function(e,i,a){r[0]=e,n[0]=i,t(r,e===i?r:n,a)});C(e,function(e,t){var n=a.$watch(e,function(e){r[t]=e,o||(o=!0,a.$evalAsync(l))});i.push(n)});function l(){o=!1;try{s?(s=!1,t(r,r,a)):t(r,n,a)}finally{for(var i=0;i<e.length;i++)n[i]=r[i]}}return function(){for(;i.length;)i.shift()()}},$watchCollection:function(e,t){h.$$pure=o(e).literal,h.$stateful=!h.$$pure;var n=this,r,i,a,c=t.length>1,l=0,u=o(e,h),d=[],f={},p=!0,m=0;function h(e){r=e;var t,n,a,o,c;if(!I(r)){if(!R(r))i!==r&&(i=r,l++);else if(S(r)){i!==d&&(i=d,m=i.length=0,l++),t=r.length,m!==t&&(l++,i.length=m=t);for(var u=0;u<t;u++)c=i[u],o=r[u],a=c!==c&&o!==o,!a&&c!==o&&(l++,i[u]=o)}else{for(n in i!==f&&(i=f={},m=0,l++),t=0,r)s.call(r,n)&&(t++,o=r[n],c=i[n],n in i?(a=c!==c&&o!==o,!a&&c!==o&&(l++,i[n]=o)):(m++,i[n]=o,l++));if(m>t)for(n in l++,i)s.call(r,n)||(m--,delete i[n])}return l}}function g(){if(p?(p=!1,t(r,r,n)):t(r,a,n),c){if(!R(r))a=r;else if(S(r)){a=Array(r.length);for(var e=0;e<r.length;e++)a[e]=r[e]}else for(var i in a={},r)s.call(r,i)&&(a[i]=r[i])}}return this.$watch(u,g)},$digest:function(){var a,o,s,l,u,d,f,g=e,b,x,S=m.length?p:this,C=[],E,D;v(`$digest`),c.$$checkUrlChange(),this===p&&r!==null&&(c.defer.cancel(r),T()),n=null;do{f=!1,x=S;for(var O=0;O<m.length;O++){try{D=m[O],l=D.fn,l(D.scope,D.locals)}catch(e){i(e)}n=null}m.length=0;traverseScopesLoop:do{if(d=!x.$$suspended&&x.$$watchers)for(d.$$digestWatchIndex=d.length;d.$$digestWatchIndex--;)try{if(a=d[d.$$digestWatchIndex],a){if(u=a.get,(o=u(x))!==(s=a.last)&&!(a.eq?ye(o,s):M(o)&&M(s)))f=!0,n=a,a.last=a.eq?_e(o,null):o,l=a.fn,l(o,s===w?o:s,x),g<5&&(E=4-g,C[E]||(C[E]=[]),C[E].push({msg:H(a.exp)?`fn: `+(a.exp.name||a.exp.toString()):a.exp,newVal:o,oldVal:s}));else if(a===n){f=!1;break traverseScopesLoop}}}catch(e){i(e)}if(!(b=!x.$$suspended&&x.$$watchersCount&&x.$$childHead||x!==S&&x.$$nextSibling))for(;x!==S&&!(b=x.$$nextSibling);)x=x.$parent}while(x=b);if((f||m.length)&&!g--)throw y(),t(`infdig`,`{0} $digest() iterations reached. Aborting! 14Watchers fired in the last 5 iterations: {1}`,e,C)}while(f||m.length);for(y();_<h.length;)try{h[_++]()}catch(e){i(e)}h.length=_=0,c.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;for(var t in this.$broadcast(`$destroy`),this.$$destroyed=!0,this===p&&c.$$applicationDestroyed(),b(this,-this.$$watchersCount),this.$$listenerCount)x(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=P,this.$on=this.$watch=this.$watchGroup=function(){return P},this.$$listeners={},this.$$nextSibling=null,d(this)}},$eval:function(e,t){return o(e)(this,t)},$evalAsync:function(e,t){!p.$$phase&&!m.length&&c.defer(function(){m.length&&p.$digest()},null,`$evalAsync`),m.push({scope:this,fn:o(e),locals:t})},$$postDigest:function(e){h.push(e)},$apply:function(e){try{v(`$apply`);try{return this.$eval(e)}finally{y()}}catch(e){i(e)}finally{try{p.$digest()}catch(e){throw i(e),e}}},$applyAsync:function(e){var t=this;e&&g.push(n),e=o(e),D();function n(){t.$eval(e)}},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var r=this;do r.$$listenerCount[e]||(r.$$listenerCount[e]=0),r.$$listenerCount[e]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(t);r!==-1&&(delete n[r],x(i,1,e))}},$emit:function(e,t){var n=[],r,a=this,o=!1,s={name:e,targetScope:a,stopPropagation:function(){o=!0},preventDefault:function(){s.defaultPrevented=!0},defaultPrevented:!1}
14,c=Se([s],arguments,1),l,u;do{for(r=a.$$listeners[e]||n,s.currentScope=a,l=0,u=r.length;l<u;l++){if(!r[l]){r.splice(l,1),l--,u--;continue}try{r[l].apply(null,c)}catch(e){i(e)}}if(o)break;a=a.$parent}while(a);return s.currentScope=null,s},$broadcast:function(e,t){var n=this,r=n,a=n,o={name:e,targetScope:n,preventDefault:function(){o.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[e])return o;for(var s=Se([o],arguments,1),c,l,u;r=a;){for(o.currentScope=r,c=r.$$listeners[e]||[],l=0,u=c.length;l<u;l++){if(!c[l]){c.splice(l,1),l--,u--;continue}try{c[l].apply(null,s)}catch(e){i(e)}}if(!(a=r.$$listenerCount[e]&&r.$$childHead||r!==n&&r.$$nextSibling))for(;r!==n&&!(a=r.$$nextSibling);)r=r.$parent}return o.currentScope=null,o}};var p=new f,m=p.$$asyncQueue=[],h=p.$$postDigestQueue=[],g=p.$$applyAsyncQueue=[],_=0;return p;function v(e){if(p.$$phase)throw t(`inprog`,`{0} already in progress`,p.$$phase);p.$$phase=e}function y(){p.$$phase=null}function b(e,t){do e.$$watchersCount+=t;while(e=e.$parent)}function x(e,t,n){do e.$$listenerCount[n]-=t,e.$$listenerCount[n]===0&&delete e.$$listenerCount[n];while(e=e.$parent)}function w(){}function T(){for(;g.length;)try{g.shift()()}catch(e){i(e)}r=null}function D(){r===null&&(r=c.defer(function(){p.$apply(T)},null,`$applyAsync`))}}]}function Vi(){var e=/^\s*(https?|s?ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationTrustedUrlList=function(t){return L(t)?(e=t,this):e},this.imgSrcSanitizationTrustedUrlList=function(e){return L(e)?(t=e,this):t},this.$get=function(){return function(n,r){var i=r?t:e,a=ca(n&&n.trim()).href;return a!==``&&!a.match(i)?`unsafe:`+a:n}}}var Hi=i(`$sce`),Ui={HTML:`html`,CSS:`css`,MEDIA_URL:`mediaUrl`,URL:`url`,RESOURCE_URL:`resourceUrl`,JS:`js`},Wi=/_([a-z])/g;function Gi(e){return e.replace(Wi,Ct)}function Ki(e){if(e===`self`)return e;if(z(e)){if(e.indexOf(`***`)>-1)throw Hi(`iwcard`,`Illegal sequence *** in string matcher. String: {0}`,e);return e=fe(e).replace(/\\\*\\\*/g,`.*`).replace(/\\\*/g,`[^:/.?&;]*`),RegExp(`^`+e+`$`)}if(ae(e))return RegExp(`^`+e.source+`$`);throw Hi(`imatcher`,`Matchers may only be "self", string patterns or RegExp objects`)}function qi(e){var t=[];return L(e)&&C(e,function(e){t.push(Ki(e))}),t}function Ji(){this.SCE_CONTEXTS=Ui;var e=[`self`],t=[];this.trustedResourceUrlList=function(t){return arguments.length&&(e=qi(t)),e},Object.defineProperty(this,"resourceUrlWhitelist",{get:function(){return this.trustedResourceUrlList},set:function(e){this.trustedResourceUrlList=e}}),this.bannedResourceUrlList=function(e){return arguments.length&&(t=qi(e)),t},Object.defineProperty(this,"resourceUrlBlacklist",{get:function(){return this.bannedResourceUrlList},set:function(e){this.bannedResourceUrlList=e}}),this.$get=[`$injector`,`$$sanitizeUri`,function(n,r){var i=function(e){throw Hi(`unsafe`,`Attempting to use an unsafe value in a safe context.`)};n.has(`$sanitize`)&&(i=n.get(`$sanitize`));function a(e,t){return e===`self`?la(t)||ua(t):!!e.exec(t.href)}function o(n){var r=ca(n.toString()),i,o,s=!1;for(i=0,o=e.length;i<o;i++)if(a(e[i],r)){s=!0;break}if(s){for(i=0,o=t.length;i<o;i++)if(a(t[i],r)){s=!1;break}}return s}function s(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}var c=s(),l={};l[Ui.HTML]=s(c),l[Ui.CSS]=s(c),l[Ui.MEDIA_URL]=s(c),l[Ui.URL]=s(l[Ui.MEDIA_URL]),l[Ui.JS]=s(c),l[Ui.RESOURCE_URL]=s(l[Ui.URL]);function u(e,t){var n=l.hasOwnProperty(e)?l[e]:null;if(!n)throw Hi(`icontext`,`Attempted to trust a value in invalid context. Context: {0}; Value: {1}`,e,t);if(t===null||I(t)||t===``)return t;if(typeof t!=`string`)throw Hi(`itype`,`Attempted to trust a non-string value in a content requiring a string: Context: {0}`,e);return new n(t)}function d(e){return e instanceof c?e.$$unwrapTrustedValue():e}function f(e,t){if(t===null||I(t)||t===``)return t;var n=l.hasOwnProperty(e)?l[e]:null;if(n&&t instanceof n)return t.$$unwrapTrustedValue();if(H(t.$$unwrapTrustedValue)&&(t=t.$$unwrapTrustedValue()),e===Ui.MEDIA_URL||e===Ui.URL)return r(t.toString(),e===Ui.MEDIA_URL);if(e===Ui.RESOURCE_URL){if(o(t))return t;throw Hi(`insecurl`,`Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}`,t.toString())}if(e===Ui.HTML)return i(t);throw Hi(`unsafe`,`Attempting to use an unsafe value in a safe context.`)}return{trustAs:u,getTrusted:f,valueOf:d}}]}function Yi(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=[`$parse`,`$sceDelegate`,function(t,n){if(e&&u<8)throw Hi(`iequirks`,`Str
14ict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.`);var r=ut(Ui);r.isEnabled=function(){return e},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){return t},r.valueOf=F),r.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,function(t){return r.getTrusted(e,t)})};var i=r.parseAs,a=r.getTrusted,o=r.trustAs;return C(Ui,function(e,t){var n=c(t);r[Gi(`parse_as_`+n)]=function(t){return i(e,t)},r[Gi(`get_trusted_`+n)]=function(t){return a(e,t)},r[Gi(`trust_as_`+n)]=function(t){return o(e,t)}}),r}]}function Xi(){this.$get=[`$window`,`$document`,function(e,t){var n={},r=!(!(e.nw&&e.nw.process)&&e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id))&&e.history&&e.history.pushState,i=j((/android (\d+)/.exec(c((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),o=t[0]||{},s=o.body&&o.body.style,l=!1,d=!1;return s&&(l=`transition`in s||`webkitTransition`in s,d=`animation`in s||`webkitAnimation`in s),{history:!(!r||i<4||a),hasEvent:function(e){if(e===`input`&&u)return!1;if(I(n[e])){var t=o.createElement(`div`);n[e]=`on`+e in t}return n[e]},csp:be(),transitions:l,animations:d,android:i}}]}function Zi(){this.$get=ee(function(e){return new Qi(e)})}function Qi(e){var t=this,n={},r=[],i=t.ALL_TASKS_TYPE=`$$all$$`,a=t.DEFAULT_TASK_TYPE=`$$default$$`;t.completeTask=o,t.incTaskCount=u,t.notifyWhenNoPendingTasks=d;function o(t,r){r||=a;try{t()}finally{s(r);var o=n[r],u=n[i];if(!u||!o)for(var d=u?l:c,f;f=d(r);)try{f()}catch(t){e.error(t)}}}function s(e){e||=a,n[e]&&(n[e]--,n[i]--)}function c(){var e=r.pop();return e&&e.cb}function l(e){for(var t=r.length-1;t>=0;--t){var n=r[t];if(n.type===e)return r.splice(t,1),n.cb}}function u(e){e||=a,n[e]=(n[e]||0)+1,n[i]=(n[i]||0)+1}function d(e,t){t||=i,n[t]?r.push({type:t,cb:e}):e()}}var $i=i(`$templateRequest`);function ea(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=[`$exceptionHandler`,`$templateCache`,`$http`,`$q`,`$sce`,function(t,n,r,i,a){function o(s,c){o.totalPendingRequests++,(!z(s)||I(n.get(s)))&&(s=a.getTrustedResourceUrl(s));var l=r.defaults&&r.defaults.transformResponse;return V(l)?l=l.filter(function(e){return e!==Tr}):l===Tr&&(l=null),r.get(s,k({cache:n,transformResponse:l},e)).finally(function(){o.totalPendingRequests--}).then(function(e){return n.put(s,e.data)},u);function u(e){return c||(e=$i(`tpload`,`Failed to load template: {0} (HTTP status: {1} {2})`,s,e.status,e.statusText),t(e)),i.reject(e)}}return o.totalPendingRequests=0,o}]}function ta(){this.$get=[`$rootScope`,`$browser`,`$location`,function(e,t,n){var r={};return r.findBindings=function(e,t,n){var r=e.getElementsByClassName(`ng-binding`),i=[];return C(r,function(e){var r=y.element(e).data(`$binding`);r&&C(r,function(r){n?RegExp(`(^|\\s)`+fe(t)+`(\\s|\\||$)`).test(r)&&i.push(e):r.indexOf(t)!==-1&&i.push(e)})}),i},r.findModels=function(e,t,n){for(var r=[`ng-`,`data-ng-`,`ng\\:`],i=0;i<r.length;++i){var a=n?`=`:`*=`,o=`[`+r[i]+`model`+a+`"`+t+`"]`,s=e.querySelectorAll(o);if(s.length)return s}},r.getLocation=function(){return n.url()},r.setLocation=function(t){t!==n.url()&&(n.url(t),e.$digest())},r.whenStable=function(e){t.notifyWhenNoOutstandingRequests(e)},r}]}var na=i(`$timeout`);function ra(){this.$get=[`$rootScope`,`$browser`,`$q`,`$$q`,`$exceptionHandler`,function(e,t,n,r,i){var a={};function o(o,s,c){H(o)||(c=s,s=o,o=P);var l=Ce(arguments,3),u=L(c)&&!c,d=(u?r:n).defer(),f=d.promise,p=t.defer(function(){try{d.resolve(o.apply(null,l))}catch(e){d.reject(e),i(e)}finally{delete a[f.$$timeoutId]}u||e.$apply()},s,`$timeout`);return f.$$timeoutId=p,a[p]=d,f}return o.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty(`$$timeoutId`))throw na(`badprom`,"`$timeout.cancel()` called with a promise that was not generated by `$timeout()`.");if(!a.hasOwnProperty(e.$$timeoutId))return!1;var n=e.$$timeoutId,r=a[n];return Ri(r.promise),r.reject(`canceled`),delete a[n],t.defer.cancel(n)},o}]}var ia=e.document.createElement(`a`),aa=ca(e.location.href),oa;
14ia.href=`http://[::1]`;var sa=ia.hostname===`[::1]`;function ca(e){if(!z(e))return e;var t=e;u&&(ia.setAttribute(`href`,t),t=ia.href),ia.setAttribute(`href`,t);var n=ia.hostname;return!sa&&n.indexOf(`:`)>-1&&(n=`[`+n+`]`),{href:ia.href,protocol:ia.protocol?ia.protocol.replace(/:$/,``):``,host:ia.host,search:ia.search?ia.search.replace(/^\?/,``):``,hash:ia.hash?ia.hash.replace(/^#/,``):``,hostname:n,port:ia.port,pathname:ia.pathname.charAt(0)===`/`?ia.pathname:`/`+ia.pathname}}function la(e){return fa(e,aa)}function ua(e){return fa(e,pa())}function da(e){var t=[aa].concat(e.map(ca));return function(e){var n=ca(e);return t.some(fa.bind(null,n))}}function fa(e,t){return e=ca(e),t=ca(t),e.protocol===t.protocol&&e.host===t.host}function pa(){return e.document.baseURI?e.document.baseURI:(oa||=(oa=e.document.createElement(`a`),oa.href=`.`,oa.cloneNode(!1)),oa.href)}function ma(){this.$get=ee(e)}function ha(e){var t=e[0]||{},n={},r=``;function i(e){try{return e.cookie||``}catch{return``}}function a(e){try{return decodeURIComponent(e)}catch{return e}}return function(){var e,o,s,c,l,u=i(t);if(u!==r)for(r=u,e=r.split(`; `),n={},s=0;s<e.length;s++)o=e[s],c=o.indexOf(`=`),c>0&&(l=a(o.substring(0,c)),I(n[l])&&(n[l]=a(o.substring(c+1))));return n}}ha.$inject=[`$document`];function ga(){this.$get=ha}_a.$inject=[`$provide`];function _a(e){var t=`Filter`;function n(r,i){if(R(r)){var a={};return C(r,function(e,t){a[t]=n(t,e)}),a}return e.factory(r+t,i)}this.register=n,this.$get=[`$injector`,function(e){return function(n){return e.get(n+t)}}],n(`currency`,Ta),n(`date`,Ua),n(`filter`,va),n(`json`,Wa),n(`limitTo`,qa),n(`lowercase`,Ga),n(`number`,Ea),n(`orderBy`,Ya),n(`uppercase`,Ka)}function va(){return function(e,t,n,r){if(!S(e)){if(e==null)return e;throw i(`filter`)(`notarray`,`Expected array but received: {0}`,e)}r||=`$`;var a=xa(t),o,s;switch(a){case`function`:o=t;break;case`boolean`:case`null`:case`number`:case`string`:s=!0;case`object`:o=ya(t,n,r,s);break;default:return e}return Array.prototype.filter.call(e,o)}}function ya(e,t,n,r){var i=R(e)&&n in e,a;return t===!0?t=ye:H(t)||(t=function(e,t){return I(e)?!1:e===null||t===null?e===t:R(t)||R(e)&&!te(e)?!1:(e=c(``+e),t=c(``+t),e.indexOf(t)!==-1)}),a=function(a){return i&&!R(a)?ba(a,e[n],t,n,!1):ba(a,e,t,n,r)},a}function ba(e,t,n,r,i,a){var o=xa(e),s=xa(t);if(s===`string`&&t.charAt(0)===`!`)return!ba(e,t.substring(1),n,r,i);if(V(e))return e.some(function(e){return ba(e,t,n,r,i)});switch(o){case`object`:var c;if(i){for(c in e)if(c.charAt&&c.charAt(0)!==`$`&&ba(e[c],t,n,r,!0))return!0;return!a&&ba(e,t,n,r,!1)}if(s===`object`){for(c in t){var l=t[c];if(!(H(l)||I(l))){var u=c===r;if(!ba(u?e:e[c],l,n,r,u,u))return!1}}return!0}return n(e,t);case`function`:return!1;default:return n(e,t)}}function xa(e){return e===null?`null`:typeof e}var Sa=22,Ca=`.`,wa=`0`;Ta.$inject=[`$locale`];function Ta(e){var t=e.NUMBER_FORMATS;return function(e,n,r){I(n)&&(n=t.CURRENCY_SYM),I(r)&&(r=t.PATTERNS[1].maxFrac);var i=n?/\u00A4/g:/\s*\u00A4\s*/g;return e==null?e:ka(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,r).replace(i,n)}}Ea.$inject=[`$locale`];function Ea(e){var t=e.NUMBER_FORMATS;return function(e,n){return e==null?e:ka(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Da(e){var t=0,n,r,i,a,o;for((r=e.indexOf(Ca))>-1&&(e=e.replace(Ca,``)),(i=e.search(/e/i))>0?(r<0&&(r=i),r+=+e.slice(i+1),e=e.substring(0,i)):r<0&&(r=e.length),i=0;e.charAt(i)===wa;i++);if(i===(o=e.length))n=[0],r=1;else{for(o--;e.charAt(o)===wa;)o--;for(r-=i,n=[],a=0;i<=o;i++,a++)n[a]=+e.charAt(i)}return r>Sa&&(n=n.splice(0,Sa-1),t=r-1,r=1),{d:n,e:t,i:r}}function Oa(e,t,n,r){var i=e.d,a=i.length-e.i;t=I(t)?Math.min(Math.max(n,a),r):+t;var o=t+e.i,s=i[o];if(o>0){i.splice(Math.max(e.i,o));for(var c=o;c<i.length;c++)i[c]=0}else{a=Math.max(0,a),e.i=1,i.length=Math.max(1,o=t+1),i[0]=0;for(var l=1;l<o;l++)i[l]=0}if(s>=5){if(o-1<0){for(var u=0;u>o;u--)i.unshift(0),e.i++;i.unshift(1),e.i++}else i[o-1]++}for(;a<Math.max(0,t);a++)i.push(0);var d=i.reduceRight(function(e,t,n,r){return t+=e,r[n]=t%10,Math.floor(t/10)},0);d&&(i.unshift(d),e.i++)}function ka(e,t,n,r,i){if(!(z(e)||re(e))||isNaN(e))return``;var a=!isFinite(e),o=!1,s=Math.abs(e)+``,c=``,l;if(a)c=`â`;else{l=Da(s),Oa(l,i,t.minFrac,t.maxFrac);var u=l.d,d=l.i,f=l.e,p=[];for(o=u.reduce(function(e,t){return e&&!t}
14,!0);d<0;)u.unshift(0),d++;d>0?p=u.splice(d,u.length):(p=u,u=[0]);var m=[];for(u.length>=t.lgSize&&m.unshift(u.splice(-t.lgSize,u.length).join(``));u.length>t.gSize;)m.unshift(u.splice(-t.gSize,u.length).join(``));u.length&&m.unshift(u.join(``)),c=m.join(n),p.length&&(c+=r+p.join(``)),f&&(c+=`e+`+f)}return e<0&&!o?t.negPre+c+t.negSuf:t.posPre+c+t.posSuf}function Aa(e,t,n,r){var i=``;for((e<0||r&&e<=0)&&(r?e=-e+1:(e=-e,i=`-`)),e=``+e;e.length<t;)e=wa+e;return n&&(e=e.substr(e.length-t)),i+e}function ja(e,t,n,r,i){return n||=0,function(a){var o=a[`get`+e]();return(n>0||o>-n)&&(o+=n),o===0&&n===-12&&(o=12),Aa(o,t,r,i)}}function Ma(e,t,n){return function(r,i){var a=r[`get`+e]();return i[l((n?`STANDALONE`:``)+(t?`SHORT`:``)+e)][a]}}function Na(e,t,n){var r=-1*n,i=r>=0?`+`:``;return i+=Aa(Math[r>0?`floor`:`ceil`](r/60),2)+Aa(Math.abs(r%60),2),i}function Pa(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function Fa(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function Ia(e){return function(t){var n=Pa(t.getFullYear()),r=+Fa(t)-n;return Aa(1+Math.round(r/6048e5),e)}}function La(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function Ra(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function za(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}var Ba={yyyy:ja(`FullYear`,4,0,!1,!0),yy:ja(`FullYear`,2,0,!0,!0),y:ja(`FullYear`,1,0,!1,!0),MMMM:Ma(`Month`),MMM:Ma(`Month`,!0),MM:ja(`Month`,2,1),M:ja(`Month`,1,1),LLLL:Ma(`Month`,!1,!0),dd:ja(`Date`,2),d:ja(`Date`,1),HH:ja(`Hours`,2),H:ja(`Hours`,1),hh:ja(`Hours`,2,-12),h:ja(`Hours`,1,-12),mm:ja(`Minutes`,2),m:ja(`Minutes`,1),ss:ja(`Seconds`,2),s:ja(`Seconds`,1),sss:ja(`Milliseconds`,3),EEEE:Ma(`Day`),EEE:Ma(`Day`,!0),a:La,Z:Na,ww:Ia(2),w:Ia(1),G:Ra,GG:Ra,GGG:Ra,GGGG:za},Va=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,Ha=/^-?\d+$/;Ua.$inject=[`$locale`];function Ua(e){var t=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;function n(e){var n;if(n=e.match(t)){var r=new Date(0),i=0,a=0,o=n[8]?r.setUTCFullYear:r.setFullYear,s=n[8]?r.setUTCHours:r.setHours;n[9]&&(i=j(n[9]+n[10]),a=j(n[9]+n[11])),o.call(r,j(n[1]),j(n[2])-1,j(n[3]));var c=j(n[4]||0)-i,l=j(n[5]||0)-a,u=j(n[6]||0),d=Math.round(parseFloat(`0.`+(n[7]||0))*1e3);return s.call(r,c,l,u,d),r}return e}return function(t,r,i){var a=``,o=[],s,c;if(r||=`mediumDate`,r=e.DATETIME_FORMATS[r]||r,z(t)&&(t=Ha.test(t)?j(t):n(t)),re(t)&&(t=new Date(t)),!B(t)||!isFinite(t.getTime()))return t;for(;r;)c=Va.exec(r),c?(o=Se(o,c,1),r=o.pop()):(o.push(r),r=null);var l=t.getTimezoneOffset();return i&&(l=Oe(i,l),t=Ae(t,i,!0)),C(o,function(n){s=Ba[n],a+=s?s(t,e.DATETIME_FORMATS,l):n===`''`?`'`:n.replace(/(^'|'$)/g,``).replace(/''/g,`'`)}),a}}function Wa(){return function(e,t){return I(t)&&(t=2),Te(e,t)}}var Ga=ee(c),Ka=ee(l);function qa(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):j(t),M(t)||(re(e)&&(e=e.toString()),!S(e))?e:(n=!n||isNaN(n)?0:j(n),n=n<0?Math.max(0,e.length+n):n,t>=0?Ja(e,n,n+t):n===0?Ja(e,t,e.length):Ja(e,Math.max(0,n+t),n))}}function Ja(e,t,n){return z(e)?e.slice(t,n):p.call(e,t,n)}Ya.$inject=[`$parse`];function Ya(e){return function(e,n,r,s){if(e==null)return e;if(!S(e))throw i(`orderBy`)(`notarray`,`Expected array but received: {0}`,e);V(n)||(n=[n]),n.length===0&&(n=[`+`]);var c=t(n),l=r?-1:1,u=H(s)?s:o,d=Array.prototype.map.call(e,f);return d.sort(p),e=d.map(function(e){return e.value}),e;function f(e,t){return{value:e,tieBreaker:{value:t,type:`number`,index:t},predicateValues:c.map(function(n){return a(n.get(e),t)})}}function p(e,t){for(var n=0,r=c.length;n<r;n++){var i=u(e.predicateValues[n],t.predicateValues[n]);if(i)return i*c[n].descending*l}return(u(e.tieBreaker,t.tieBreaker)||o(e.tieBreaker,t.tieBreaker))*l}};function t(t){return t.map(function(t){var n=1,r=F;if(H(t))r=t;else if(z(t)&&((t.charAt(0)===`+`||t.charAt(0)===`-`)&&(n=t.charAt(0)===`-`?-1:1,t=t.substring(1)),t!==``&&(r=e(t),r.constant))){var i=r();r=function(e){return e[i]}}return{get:r,descending:n}})}function n(e){switch(typeof e){case`number`:case`boolean`:case`string`:return!0;default:return!1}}function r(e){return H(e.valueOf)&&(e=e.valueOf(),n(e))||te(e)&&(e=e.toString()),e}function a(e,t){var n=typeof e;return e===null?n=`null`:n===`object`&&(e=r(e)),{value:e,type:n,index:t}}function o(e,t){var n=0,r=e.type,i=t.type;if(r===i){var a=e.value,o=t.value;
14r===`string`?(a=a.toLowerCase(),o=o.toLowerCase()):r===`object`&&(R(a)&&(a=e.index),R(o)&&(o=t.index)),a!==o&&(n=a<o?-1:1)}else n=r===`undefined`?1:i===`undefined`?-1:r===`null`?1:i===`null`||r<i?-1:1;return n}}function Xa(e){return H(e)&&(e={link:e}),e.restrict=e.restrict||`AC`,ee(e)}var Za=ee({restrict:`E`,compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if(t[0].nodeName.toLowerCase()===`a`){var n=g.call(t.prop(`href`))===`[object SVGAnimatedString]`?`xlink:href`:`href`;t.on(`click`,function(e){t.attr(n)||e.preventDefault()})}}}}),Qa={};C(cn,function(e,t){if(e===`multiple`)return;function n(e,n,i){e.$watch(i[r],function(e){i.$set(t,!!e)})}var r=ar(`ng-`+t),i=n;e===`checked`&&(i=function(e,t,i){i.ngModel!==i[r]&&n(e,t,i)}),Qa[r]=function(){return{restrict:`A`,priority:100,link:i}}}),C(un,function(e,t){Qa[t]=function(){return{priority:100,link:function(e,n,r){if(t===`ngPattern`&&r.ngPattern.charAt(0)===`/`){var i=r.ngPattern.match(a);if(i){r.$set(`ngPattern`,new RegExp(i[1],i[2]));return}}e.$watch(r[t],function(e){r.$set(t,e)})}}}}),C([`src`,`srcset`,`href`],function(e){var t=ar(`ng-`+e);Qa[t]=[`$sce`,function(n){return{priority:99,link:function(r,i,a){var o=e,s=e;e===`href`&&g.call(i.prop(`href`))===`[object SVGAnimatedString]`&&(s=`xlinkHref`,a.$attr[s]=`xlink:href`,o=null),a.$set(t,n.getTrustedMediaUrl(a[t])),a.$observe(t,function(t){if(!t){e===`href`&&a.$set(s,null);return}a.$set(s,t),u&&o&&i.prop(o,a[s])})}}}]});var $a={$addControl:P,$getControls:ee([]),$$renameControl:no,$removeControl:P,$setValidity:P,$setDirty:P,$setPristine:P,$setSubmitted:P,$$setSubmitted:P},eo=`ng-pending`,to=`ng-submitted`;function no(e,t){e.$name=t}ro.$inject=[`$element`,`$attrs`,`$scope`,`$animate`,`$interpolate`];function ro(e,t,n,r,i){this.$$controls=[],this.$error={},this.$$success={},this.$pending=void 0,this.$name=i(t.name||t.ngForm||``)(n),this.$dirty=!1,this.$pristine=!0,this.$valid=!0,this.$invalid=!1,this.$submitted=!1,this.$$parentForm=$a,this.$$element=e,this.$$animate=r,so(this)}ro.prototype={$rollbackViewValue:function(){C(this.$$controls,function(e){e.$rollbackViewValue()})},$commitViewValue:function(){C(this.$$controls,function(e){e.$commitViewValue()})},$addControl:function(e){Qe(e.$name,`input`),this.$$controls.push(e),e.$name&&(this[e.$name]=e),e.$$parentForm=this},$getControls:function(){return ut(this.$$controls)},$$renameControl:function(e,t){var n=e.$name;this[n]===e&&delete this[n],this[t]=e,e.$name=t},$removeControl:function(e){e.$name&&this[e.$name]===e&&delete this[e.$name],C(this.$pending,function(t,n){this.$setValidity(n,null,e)},this),C(this.$error,function(t,n){this.$setValidity(n,null,e)},this),C(this.$$success,function(t,n){this.$setValidity(n,null,e)},this),ge(this.$$controls,e),e.$$parentForm=$a},$setDirty:function(){this.$$animate.removeClass(this.$$element,fs),this.$$animate.addClass(this.$$element,ps),this.$dirty=!0,this.$pristine=!1,this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,fs,ps+` `+to),this.$dirty=!1,this.$pristine=!0,this.$submitted=!1,C(this.$$controls,function(e){e.$setPristine()})},$setUntouched:function(){C(this.$$controls,function(e){e.$setUntouched()})},$setSubmitted:function(){for(var e=this;e.$$parentForm&&e.$$parentForm!==$a;)e=e.$$parentForm;e.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,to),this.$submitted=!0,C(this.$$controls,function(e){e.$$setSubmitted&&e.$$setSubmitted()})}},co({clazz:ro,set:function(e,t,n){var r=e[t];r?r.indexOf(n)===-1&&r.push(n):e[t]=[n]},unset:function(e,t,n){var r=e[t];r&&(ge(r,n),r.length===0&&delete e[t])}});var io=function(e){return[`$timeout`,`$parse`,function(t,n){return{name:`form`,restrict:e?`EAC`:`E`,require:[`form`,`^^?form`],controller:ro,compile:function(n,i){n.addClass(fs).addClass(us);var a=i.name?`name`:e&&i.ngForm?`ngForm`:!1;return{pre:function(e,n,i,o){var s=o[0];if(!(`action`in i)){var c=function(t){e.$apply(function(){s.$commitViewValue(),s.$setSubmitted()}),t.preventDefault()};n[0].addEventListener(`submit`,c),n.on(`$destroy`,function(){t(function(){n[0].removeEventListener(`submit`,c)},0,!1)})}(o[1]||s.$$parentForm).$addControl(s);var l=a?r(s.$name):P;a&&(l(e,s),i.$observe(a,function(t){s.$name!==t&&(l(e,void 0),s.$$parentForm.$$renameControl(s,t),l=r(s.$name),l(e,s))})),n.on(`$destroy`,function(){s.$$parentForm.$removeControl(s),l(e,void 0),k(s,$a)})}}}};function r(e){return e===``?n(`this[""]`).assign:n(e).assign||P}}]},ao=io(),oo=io(!0);function so(e){e.$$classCache={},e.$$classCache[ds]=!(e.$$classCache[us]=e.$$element.hasClass(us))}function co(e){var t=e.clazz,n=e.set,r=e.unset;t.prototype.$setValidity=function(e,t,c){I(t)?i(this,`$pending`,e,c):a(this,`$pending`,e,c),W(t)?t?(r(this.$error,e,c),n(this.$$success,e,c)):(n(this.$error,e,c),r(this.$$
14success,e,c)):(r(this.$error,e,c),r(this.$$success,e,c)),this.$pending?(o(this,eo,!0),this.$valid=this.$invalid=void 0,s(this,``,null)):(o(this,eo,!1),this.$valid=lo(this.$error),this.$invalid=!this.$valid,s(this,``,this.$valid));var l=this.$pending&&this.$pending[e]?void 0:this.$error[e]?!1:this.$$success[e]?!0:null;s(this,e,l),this.$$parentForm.$setValidity(e,l,this)};function i(e,t,r,i){e[t]||(e[t]={}),n(e[t],r,i)}function a(e,t,n,i){e[t]&&r(e[t],n,i),lo(e[t])&&(e[t]=void 0)}function o(e,t,n){n&&!e.$$classCache[t]?(e.$$animate.addClass(e.$$element,t),e.$$classCache[t]=!0):!n&&e.$$classCache[t]&&(e.$$animate.removeClass(e.$$element,t),e.$$classCache[t]=!1)}function s(e,t,n){t=t?`-`+Ke(t,`-`):``,o(e,us+t,n===!0),o(e,ds+t,n===!1)}}function lo(e){if(e){for(var t in e)if(e.hasOwnProperty(t))return!1}return!0}var uo=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,fo=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,po=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,mo=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,ho=/^(\d{4,})-(\d{2})-(\d{2})$/,go=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,_o=/^(\d{4,})-W(\d\d)$/,vo=/^(\d{4,})-(\d\d)$/,yo=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,bo=`keydown wheel mousedown`,xo=tt();C(`date,datetime-local,month,time,week`.split(`,`),function(e){xo[e]=!0});var So={text:wo,date:Oo(`date`,ho,Do(ho,[`yyyy`,`MM`,`dd`]),`yyyy-MM-dd`),"datetime-local":Oo(`datetimelocal`,go,Do(go,[`yyyy`,`MM`,`dd`,`HH`,`mm`,`ss`,`sss`]),`yyyy-MM-ddTHH:mm:ss.sss`),time:Oo(`time`,yo,Do(yo,[`HH`,`mm`,`ss`,`sss`]),`HH:mm:ss.sss`),week:Oo(`week`,_o,Eo,`yyyy-Www`),month:Oo(`month`,vo,Do(vo,[`yyyy`,`MM`]),`yyyy-MM`),number:Fo,url:Lo,email:Ro,radio:zo,range:Io,checkbox:Vo,hidden:P,button:P,submit:P,reset:P,file:P};function Co(e){e.$formatters.push(function(t){return e.$isEmpty(t)?t:t.toString()})}function wo(e,t,n,r,i,a){To(e,t,n,r,i,a),Co(r)}function To(e,t,n,r,i,a){var s=c(t[0].type);if(!i.android){var l=!1;t.on(`compositionstart`,function(){l=!0}),t.on(`compositionupdate`,function(e){(I(e.data)||e.data===``)&&(l=!1)}),t.on(`compositionend`,function(){l=!1,d()})}var u,d=function(e){if(u&&=(a.defer.cancel(u),null),!l){var i=t.val(),o=e&&e.type;s!==`password`&&(!n.ngTrim||n.ngTrim!==`false`)&&(i=q(i)),(r.$viewValue!==i||i===``&&r.$$hasNativeValidators)&&r.$setViewValue(i,o)}};if(i.hasEvent(`input`))t.on(`input`,d);else{var f=function(e,t,n){u||=a.defer(function(){u=null,(!t||t.value!==n)&&d(e)})};t.on(`keydown`,function(e){var t=e.keyCode;t===91||15<t&&t<19||37<=t&&t<=40||f(e,this,this.value)}),i.hasEvent(`paste`)&&t.on(`paste cut drop`,f)}t.on(`change`,d),xo[s]&&r.$$hasNativeValidators&&s===n.type&&t.on(bo,function(e){if(!u){var t=this[o],n=t.badInput,r=t.typeMismatch;u=a.defer(function(){u=null,(t.badInput!==n||t.typeMismatch!==r)&&d(e)})}}),r.$render=function(){var e=r.$isEmpty(r.$viewValue)?``:r.$viewValue;t.val()!==e&&t.val(e)}}function Eo(e,t){if(B(e))return e;if(z(e)){_o.lastIndex=0;var n=_o.exec(e);if(n){var r=+n[1],i=+n[2],a=0,o=0,s=0,c=0,l=Pa(r),u=(i-1)*7;return t&&(a=t.getHours(),o=t.getMinutes(),s=t.getSeconds(),c=t.getMilliseconds()),new Date(r,0,l.getDate()+u,a,o,s,c)}}return NaN}function Do(e,t){return function(n,r){var i,a;if(B(n))return n;if(z(n)){if(n.charAt(0)===`"`&&n.charAt(n.length-1)===`"`&&(n=n.substring(1,n.length-1)),uo.test(n))return new Date(n);if(e.lastIndex=0,i=e.exec(n),i){i.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0}
14,C(i,function(e,n){n<t.length&&(a[t[n]]=+e)});var o=new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,a.sss*1e3||0);return a.yyyy<100&&o.setFullYear(a.yyyy),o}}return NaN}}function Oo(e,t,n,r){return function(i,a,o,s,c,l,u,d){ko(i,a,o,s,e),To(i,a,o,s,c,l);var f=e===`time`||e===`datetimelocal`,p,m;if(s.$parsers.push(function(n){if(s.$isEmpty(n))return null;if(t.test(n))return x(n,p);s.$$parserName=e}),s.$formatters.push(function(e){if(e&&!B(e))throw vs(`datefmt`,"Expected `{0}` to be a date",e);if(y(e)){p=e;var t=s.$options.getOption(`timezone`);return t&&(m=t,p=Ae(p,t,!0)),S(e,t)}return p=null,m=null,``}),L(o.min)||o.ngMin){var h=o.min||d(o.ngMin)(i),g=b(h);s.$validators.min=function(e){return!y(e)||I(g)||n(e)>=g},o.$observe(`min`,function(e){e!==h&&(g=b(e),h=e,s.$validate())})}if(L(o.max)||o.ngMax){var _=o.max||d(o.ngMax)(i),v=b(_);s.$validators.max=function(e){return!y(e)||I(v)||n(e)<=v},o.$observe(`max`,function(e){e!==_&&(v=b(e),_=e,s.$validate())})}function y(e){return e&&!(e.getTime&&e.getTime()!==e.getTime())}function b(e){return L(e)&&!B(e)?x(e)||void 0:e}function x(e,t){var r=s.$options.getOption(`timezone`);m&&m!==r&&(t=ke(t,Oe(m)));var i=n(e,t);return!isNaN(i)&&r&&(i=Ae(i,r)),i}function S(e,t){var n=r;f&&z(s.$options.getOption(`timeSecondsFormat`))&&(n=r.replace(`ss.sss`,s.$options.getOption(`timeSecondsFormat`)).replace(/:$/,``));var i=u(`date`)(e,n,t);return f&&s.$options.getOption(`timeStripZeroSeconds`)&&(i=i.replace(/(?::00)?(?:\.000)?$/,``)),i}}}function ko(e,t,n,r,i){var a=t[0];(r.$$hasNativeValidators=R(a.validity))&&r.$parsers.push(function(e){var n=t.prop(o)||{};if(n.badInput||n.typeMismatch){r.$$parserName=i;return}return e})}function Ao(e){e.$parsers.push(function(t){if(e.$isEmpty(t))return null;if(mo.test(t))return parseFloat(t);e.$$parserName=`number`}),e.$formatters.push(function(t){if(!e.$isEmpty(t)){if(!re(t))throw vs(`numfmt`,"Expected `{0}` to be a number",t);t=t.toString()}return t})}function jo(e){return L(e)&&!re(e)&&(e=parseFloat(e)),M(e)?void 0:e}function Mo(e){return(e|0)===e}function No(e){var t=e.toString(),n=t.indexOf(`.`);if(n===-1){if(-1<e&&e<1){var r=/e-(\d+)$/.exec(t);if(r)return Number(r[1])}return 0}return t.length-n-1}function Po(e,t,n){var r=Number(e),i=!Mo(r),a=!Mo(t),o=!Mo(n);if(i||a||o){var s=i?No(r):0,c=a?No(t):0,l=o?No(n):0,u=10**Math.max(s,c,l);r*=u,t*=u,n*=u,i&&(r=Math.round(r)),a&&(t=Math.round(t)),o&&(n=Math.round(n))}return(r-t)%n===0}function Fo(e,t,n,r,i,a,o,s){ko(e,t,n,r,`number`),Ao(r),To(e,t,n,r,i,a);var c;if(L(n.min)||n.ngMin){var l=n.min||s(n.ngMin)(e);c=jo(l),r.$validators.min=function(e,t){return r.$isEmpty(t)||I(c)||t>=c},n.$observe(`min`,function(e){e!==l&&(c=jo(e),l=e,r.$validate())})}if(L(n.max)||n.ngMax){var u=n.max||s(n.ngMax)(e),d=jo(u);r.$validators.max=function(e,t){return r.$isEmpty(t)||I(d)||t<=d},n.$observe(`max`,function(e){e!==u&&(d=jo(e),u=e,r.$validate())})}if(L(n.step)||n.ngStep){var f=n.step||s(n.ngStep)(e),p=jo(f);r.$validators.step=function(e,t){return r.$isEmpty(t)||I(p)||Po(t,c||0,p)},n.$observe(`step`,function(e){e!==f&&(p=jo(e),f=e,r.$validate())})}}function Io(e,t,n,r,i,a){ko(e,t,n,r,`range`),Ao(r),To(e,t,n,r,i,a);var o=r.$$hasNativeValidators&&t[0].type===`range`,s=o?0:void 0,c=o?100:void 0,l=o?1:void 0,u=t[0].validity,d=L(n.min),f=L(n.max),p=L(n.step),m=r.$render;r.$render=o&&L(u.rangeUnderflow)&&L(u.rangeOverflow)?function(){m(),r.$setViewValue(t.val())}:m,d&&(s=jo(n.min),r.$validators.min=o?function(){return!0}:function(e,t){return r.$isEmpty(t)||I(s)||t>=s},h(`min`,g)),f&&(c=jo(n.max),r.$validators.max=o?function(){return!0}:function(e,t){return r.$isEmpty(t)||I(c)||t<=c},h(`max`,_)),p&&(l=jo(n.step),r.$validators.step=o?function(){return!u.stepMismatch}:function(e,t){return r.$isEmpty(t)||I(l)||Po(t,s||0,l)},h(`step`,v));function h(e,r){t.attr(e,n[e]);var i=n[e];n.$observe(e,function(e){e!==i&&(i=e,r(e))})}function g(e){if(s=jo(e),!M(r.$modelValue)){if(o){var n=t.val();s>n&&(n=s,t.val(n)),r.$setViewValue(n)}else r.$validate()}}function _(e){if(c=jo(e),!M(r.$modelValue)){if(o){var n=t.val();c<n&&(t.val(c),n=c<s?s:c),r.$setViewValue(n)}else r.$validate()}}function v(e){l=jo(e),!M(r.$modelValue)&&(o?r.$viewValue!==t.val()&&r.$setViewValue(t.val()):r.$validate())}}function Lo(e,t,n,r,i,a){To(e,t,n,r,i,a),Co(r),r.$validators.url=function(e,t){var n=e||t;return r.$isEmpty(n)||fo.test(n)}}function Ro(e,t,n,r,i,a){To(e,t,n,r,i,a),Co(r),r.$validators.email=function(e,t){var n=e||t;return r.$isEmpty(n)||po.test(n)}}function zo(e,t,n,r){var i=!n.ngTrim||q(n.ngTrim)!==`false`;I(n.name)&&t.attr(`name`,E()),t.on(`change`,function(e){var a;t[0].checked&&(a=n.value,i&&(a=q(a)),r.$setViewValue(a,e&&e.type))}),r.$render=function(){var e=n.value;i&&(e=q(e)),t[0].checked=e===r.$viewValue},n.$observe(`value`,r.$render)}function Bo(e,t,n,r,i){var a;if(L(r)){if(a=e(r),!a.constant)throw vs(`constexpr`,"Expected constant expression for `{0}`, but saw `{1}`.",n,r);return a(t)}return i}function Vo(e,t,n,r,i,a,o,s){var c=Bo(s,e,`ngTrueValue`,n.ngTrueValue,!0),l=Bo(s,e,`ngFalseValue`,n.ngFalseValue,!1);t.on(`change`,function(e){r.$setViewValue(t[0].checked,e&&e.type)}),r.$render=function(){t[0].checked=r.$viewValue},r.$isEmpty=function(e){return e===!1},r.$formatters.push(function(e){return ye(e,c)}),r.$parsers.push(function(e){return e?c:l})}var Ho=[`$browser`,`$sniffer`,`$filter`,`$parse`,function(e,t,n,r){return{restrict:`E`,require:[`?ngModel`],link:{pre:function(i,a,o,s){s[0]&&(So[c(o.type)]||So.text)(i,a,o,s[0],t,e,n,r)}}}}],Uo=function(){var e={configurable:!0,enumerable:!1,get:function(){return this.getAttribute(`value`)||``},set:function(e){this.setAttribute(`value`,e)}};return{restrict:`E`,priority:200,compile:function(t,n){if(c(n.type)===`hidden`)return{pre:function(t,n,r,i){var a=n[0];a.parentNode&&a.parentNode.insertBefore(a,a.nextSibling),Object.defineProperty&&Object.defineProperty(a,"value",e)}}}}},Wo=/^(true|false|\d+)$/,Go=function(){function e(e,t,n){var r=L(n)?n:u===9?``:null;e.prop(`value`,r),t.$set(`value`,n)}return{restrict:`A`,priority:100,compile:function(t,n){return Wo.test(n.ngValue)?function(t,n,r){e(n,r,t.$eval(r.ngValue))}
14:function(t,n,r){t.$watch(r.ngValue,function(t){e(n,r,t)})}}}},Ko=[`$compile`,function(e){return{restrict:`AC`,compile:function(t){return e.$$addBindingClass(t),function(t,n,r){e.$$addBindingInfo(n,r.ngBind),n=n[0],t.$watch(r.ngBind,function(e){n.textContent=nt(e)})}}}}],qo=[`$interpolate`,`$compile`,function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,r,i){var a=e(r.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(r,a.expressions),r=r[0],i.$observe(`ngBindTemplate`,function(e){r.textContent=I(e)?``:e})}}}}],Jo=[`$sce`,`$parse`,`$compile`,function(e,t,n){return{restrict:`A`,compile:function(r,i){var a=t(i.ngBindHtml),o=t(i.ngBindHtml,function(t){return e.valueOf(t)});return n.$$addBindingClass(r),function(t,r,i){n.$$addBindingInfo(r,i.ngBindHtml),t.$watch(o,function(){var n=a(t);r.html(e.getTrustedHtml(n)||``)})}}}}],Yo=ee({restrict:`A`,require:`ngModel`,link:function(e,t,n,r){r.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}});function Xo(e,t){e=`ngClass`+e;var n;return[`$parse`,function(o){return{restrict:`AC`,link:function(s,c,l){var u=c.data(`$classCounts`),d=!0,f;u||(u=tt(),c.data(`$classCounts`,u)),e!==`ngClass`&&(n||=o(`$index`,function(e){return e&1}),s.$watch(n,_)),s.$watch(o(l[e],a),v);function p(e){e=g(i(e),1),l.$addClass(e)}function m(e){e=g(i(e),-1),l.$removeClass(e)}function h(e,t){var n=i(e),a=i(t),o=r(n,a),s=r(a,n),c=g(o,-1),u=g(s,1);l.$addClass(u),l.$removeClass(c)}function g(e,t){var n=[];return C(e,function(e){(t>0||u[e])&&(u[e]=(u[e]||0)+t,u[e]===+(t>0)&&n.push(e))}),n.join(` `)}function _(e){e===t?p(f):m(f),d=e}function v(e){d===t&&h(f,e),f=e}}}}];function r(e,t){if(!e||!e.length)return[];if(!t||!t.length)return e;var n=[];outer:for(var r=0;r<e.length;r++){for(var i=e[r],a=0;a<t.length;a++)if(i===t[a])continue outer;n.push(i)}return n}function i(e){return e&&e.split(` `)}function a(e){if(!e)return e;var t=e;return V(e)?t=e.map(a).join(` `):R(e)?t=Object.keys(e).filter(function(t){return e[t]}).join(` `):z(e)||(t=e+``),t}}var Zo=Xo(``,!0),Qo=Xo(`Odd`,0),$o=Xo(`Even`,1),es=Xa({compile:function(e,t){t.$set(`ngCloak`,void 0),e.removeClass(`ng-cloak`)}}),ts=[function(){return{restrict:`A`,scope:!0,controller:`@`,priority:500}}],ns={},rs={blur:!0,focus:!0};C(`click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste`.split(` `),function(e){var t=ar(`ng-`+e);ns[t]=[`$parse`,`$rootScope`,`$exceptionHandler`,function(n,r,i){return is(n,r,i,t,e,rs[e])}]});function is(e,t,n,r,i,a){return{restrict:`A`,compile:function(o,s){var c=e(s[r]);return function(e,r){r.on(i,function(r){var i=function(){c(e,{$event:r})};if(!t.$$phase)e.$apply(i);else if(a)e.$evalAsync(i);else try{i()}catch(e){n(e)}})}}}}var as=[`$animate`,`$compile`,function(e,t){return{multiElement:!0,transclude:`element`,priority:600,terminal:!0,restrict:`A`,$$tlb:!0,link:function(n,r,i,a,o){var s,c,l;n.$watch(i.ngIf,function(n){n?c||o(function(n,a){c=a,n[n.length++]=t.$$createComment(`end ngIf`,i.ngIf),s={clone:n},e.enter(n,r.parent(),r)}):(l&&=(l.remove(),null),c&&=(c.$destroy(),null),s&&=(l=et(s.clone),e.leave(l).done(function(e){e!==!1&&(l=null)}),null))})}}}],os=[`$templateRequest`,`$anchorScroll`,`$animate`,function(e,t,n){return{restrict:`ECA`,priority:400,terminal:!0,transclude:`element`,controller:y.noop,compile:function(r,i){var a=i.ngInclude||i.src,o=i.onload||``,s=i.autoscroll;return function(r,i,c,l,u){var d=0,f,p,m,h=function(){p&&=(p.remove(),null),f&&=(f.$destroy(),null),m&&=(n.leave(m).done(function(e){e!==!1&&(p=null)}),p=m,null)};r.$watch(a,function(a){var c=function(e){e!==!1&&L(s)&&(!s||r.$eval(s))&&t()},p=++d;a?(e(a,!0).then(function(e){if(!r.$$destroyed&&p===d){var t=r.$new();l.template=e;var s=u(t,function(e){h(),n.enter(e,null,i).done(c)});f=t,m=s,f.$emit(`$includeContentLoaded`,a),r.$eval(o)}},function(){r.$$destroyed||p===d&&(h(),r.$emit(`$includeContentError`,a))}),r.$emit(`$includeContentRequested`,a)):(h(),l.template=null)})}}}}],ss=[`$compile`,function(t){return{restrict:`ECA`,priority:-400,require:`ngInclude`,link:function(n,r,i,a){if(g.call(r[0]).match(/SVG/)){r.empty(),t(Lt(a.template,e.document).childNodes)(n,function(e){r.append(e)},{futureParentElement:r});return}r.html(a.template),t(r.contents())(n)}}}],cs=Xa({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),ls=function(){return{restrict:`A`,priority:100,require:`ngModel`,link:function(e,t,n,r){var i=n.ngList||`, `,a=n.ngTrim!==`fal
14se`,o=a?q(i):i;r.$parsers.push(function(e){if(!I(e)){var t=[];return e&&C(e.split(o),function(e){e&&t.push(a?q(e):e)}),t}}),r.$formatters.push(function(e){if(V(e))return e.join(i)}),r.$isEmpty=function(e){return!e||!e.length}}}},us=`ng-valid`,ds=`ng-invalid`,fs=`ng-pristine`,ps=`ng-dirty`,ms=`ng-untouched`,hs=`ng-touched`,gs=`ng-empty`,_s=`ng-not-empty`,vs=i(`ngModel`);ys.$inject=[`$scope`,`$exceptionHandler`,`$attrs`,`$element`,`$parse`,`$animate`,`$timeout`,`$q`,`$interpolate`];function ys(e,t,n,r,i,a,o,s,c){this.$viewValue=NaN,this.$modelValue=NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=c(n.name||``,!1)(e),this.$$parentForm=$a,this.$options=Ss,this.$$updateEvents=``,this.$$updateEventHandler=this.$$updateEventHandler.bind(this),this.$$parsedNgModel=i(n.ngModel),this.$$parsedNgModelAssign=this.$$parsedNgModel.assign,this.$$ngModelGet=this.$$parsedNgModel,this.$$ngModelSet=this.$$parsedNgModelAssign,this.$$pendingDebounce=null,this.$$parserValid=void 0,this.$$parserName=`parse`,this.$$currentValidationRunId=0,this.$$scope=e,this.$$rootScope=e.$root,this.$$attr=n,this.$$element=r,this.$$animate=a,this.$$timeout=o,this.$$parse=i,this.$$q=s,this.$$exceptionHandler=t,so(this),bs(this)}ys.prototype={$$initGetterSetters:function(){if(this.$options.getOption(`getterSetter`)){var e=this.$$parse(this.$$attr.ngModel+`()`),t=this.$$parse(this.$$attr.ngModel+`($$$p)`);this.$$ngModelGet=function(t){var n=this.$$parsedNgModel(t);return H(n)&&(n=e(t)),n},this.$$ngModelSet=function(e,n){H(this.$$parsedNgModel(e))?t(e,{$$$p:n}):this.$$parsedNgModelAssign(e,n)}}else if(!this.$$parsedNgModel.assign)throw vs(`nonassign`,`Expression '{0}' is non-assignable. Element: {1}`,this.$$attr.ngModel,je(this.$$element))},$render:P,$isEmpty:function(e){return I(e)||e===``||e===null||e!==e},$$updateEmptyClasses:function(e){this.$isEmpty(e)?(this.$$animate.removeClass(this.$$element,_s),this.$$animate.addClass(this.$$element,gs)):(this.$$animate.removeClass(this.$$element,gs),this.$$animate.addClass(this.$$element,_s))},$setPristine:function(){this.$dirty=!1,this.$pristine=!0,this.$$animate.removeClass(this.$$element,ps),this.$$animate.addClass(this.$$element,fs)},$setDirty:function(){this.$dirty=!0,this.$pristine=!1,this.$$animate.removeClass(this.$$element,fs),this.$$animate.addClass(this.$$element,ps),this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1,this.$untouched=!0,this.$$animate.setClass(this.$$element,ms,hs)},$setTouched:function(){this.$touched=!0,this.$untouched=!1,this.$$animate.setClass(this.$$element,hs,ms)},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce),this.$viewValue=this.$$lastCommittedViewValue,this.$render()},$validate:function(){if(!M(this.$modelValue)){var e=this.$$lastCommittedViewValue,t=this.$$rawModelValue,n=this.$valid,r=this.$modelValue,i=this.$options.getOption(`allowInvalid`),a=this;this.$$runValidators(t,e,function(e){!i&&n!==e&&(a.$modelValue=e?t:void 0,a.$modelValue!==r&&a.$$writeModelToScope())})}},$$runValidators:function(e,t,n){this.$$currentValidationRunId++;var r=this.$$currentValidationRunId,i=this;if(!a()){l(!1);return}if(!o()){l(!1);return}s();function a(){var e=i.$$parserName;if(I(i.$$parserValid))c(e,null);else return i.$$parserValid||(C(i.$validators,function(e,t){c(t,null)}),C(i.$asyncValidators,function(e,t){c(t,null)})),c(e,i.$$parserValid),i.$$parserValid;return!0}function o(){var n=!0;return C(i.$validators,function(r,i){var a=!!r(e,t);n&&=a,c(i,a)}),n?!0:(C(i.$asyncValidators,function(e,t){c(t,null)}),!1)}function s(){var n=[],r=!0;C(i.$asyncValidators,function(i,a){var o=i(e,t);if(!G(o))throw vs(`nopromise`,`Expected asynchronous validator to return a promise but got '{0}' instead.`,o);c(a,void 0),n.push(o.then(function(){c(a,!0)},function(){r=!1,c(a,!1)}))}),n.length?i.$$q.all(n).then(function(){l(r)},P):l(!0)}function c(e,t){r===i.$$currentValidationRunId&&i.$setValidity(e,t)}function l(e){r===i.$$currentValidationRunId&&n(e)}},$commitViewValue:function(){var e=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce),(this.$$lastCommittedViewValue!==e||e===``&&this.$$hasNativeValidators)&&(this.$$updateEmptyClasses(e),this.$$lastCommittedViewValue=e,this.$pristine&&this.$setDirty(),this.$$parseAndValidate())},$$parseAndValidate:function(){var e=this.$$lastCommittedViewValue,t=this;if(this.$$parserValid=!I(e)||void 0,this.$setValidity(this.$$parserName,null),this.$$parserName=`parse`,this.$$parserValid){for(var n=0;n<this.$parsers.length;n++)if(e=this.$parsers[n](e),I(e)){this.$$parserValid=!1;break}}M(this.$modelValue)&&(this.$modelValue=this.$$ngModelGet(this.$$
14scope));var r=this.$modelValue,i=this.$options.getOption(`allowInvalid`);this.$$rawModelValue=e,i&&(this.$modelValue=e,a()),this.$$runValidators(e,this.$$lastCommittedViewValue,function(n){i||(t.$modelValue=n?e:void 0,a())});function a(){t.$modelValue!==r&&t.$$writeModelToScope()}},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue),C(this.$viewChangeListeners,function(e){try{e()}catch(e){this.$$exceptionHandler(e)}},this)},$setViewValue:function(e,t){this.$viewValue=e,this.$options.getOption(`updateOnDefault`)&&this.$$debounceViewValueCommit(t)},$$debounceViewValueCommit:function(e){var t=this.$options.getOption(`debounce`);re(t[e])?t=t[e]:re(t.default)&&this.$options.getOption(`updateOn`).indexOf(e)===-1?t=t.default:re(t[`*`])&&(t=t[`*`]),this.$$timeout.cancel(this.$$pendingDebounce);var n=this;t>0?this.$$pendingDebounce=this.$$timeout(function(){n.$commitViewValue()},t):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply(function(){n.$commitViewValue()})},$overrideModelOptions:function(e){this.$options=this.$options.createChild(e),this.$$setUpdateOnEvents()},$processModelValue:function(){var e=this.$$format();this.$viewValue!==e&&(this.$$updateEmptyClasses(e),this.$viewValue=this.$$lastCommittedViewValue=e,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,P))},$$format:function(){for(var e=this.$formatters,t=e.length,n=this.$modelValue;t--;)n=e[t](n);return n},$$setModelValue:function(e){this.$modelValue=this.$$rawModelValue=e,this.$$parserValid=void 0,this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&&this.$$element.off(this.$$updateEvents,this.$$updateEventHandler),this.$$updateEvents=this.$options.getOption(`updateOn`),this.$$updateEvents&&this.$$element.on(this.$$updateEvents,this.$$updateEventHandler)},$$updateEventHandler:function(e){this.$$debounceViewValueCommit(e&&e.type)}};function bs(e){e.$$scope.$watch(function(t){var n=e.$$ngModelGet(t);return n!==e.$modelValue&&(e.$modelValue===e.$modelValue||n===n)&&e.$$setModelValue(n),n})}co({clazz:ys,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]}});var xs=[`$rootScope`,function(e){return{restrict:`A`,require:[`ngModel`,`^?form`,`^?ngModelOptions`],controller:ys,priority:1,compile:function(t){return t.addClass(fs).addClass(ms).addClass(us),{pre:function(e,t,n,r){var i=r[0],a=r[1]||i.$$parentForm,o=r[2];o&&(i.$options=o.$options),i.$$initGetterSetters(),a.$addControl(i),n.$observe(`name`,function(e){i.$name!==e&&i.$$parentForm.$$renameControl(i,e)}),e.$on(`$destroy`,function(){i.$$parentForm.$removeControl(i)})},post:function(t,n,r,i){var a=i[0];a.$$setUpdateOnEvents();function o(){a.$setTouched()}n.on(`blur`,function(){a.$touched||(e.$$phase?t.$evalAsync(o):t.$apply(o))})}}}}}],Ss,Cs=/(\s+|^)default(\s+|$)/;function ws(e){this.$$options=e}ws.prototype={getOption:function(e){return this.$$options[e]},createChild:function(e){var t=!1;return e=k({},e),C(e,function(n,r){n===`$inherit`?r===`*`?t=!0:(e[r]=this.$$options[r],r===`updateOn`&&(e.updateOnDefault=this.$$options.updateOnDefault)):r===`updateOn`&&(e.updateOnDefault=!1,e[r]=q(n.replace(Cs,function(){return e.updateOnDefault=!0,` `})))},this),t&&(delete e[`*`],Es(e,this.$$options)),Es(e,Ss.$$options),new ws(e)}},Ss=new ws({updateOn:``,updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var Ts=function(){e.$inject=[`$attrs`,`$scope`];function e(e,t){this.$$attrs=e,this.$$scope=t}return e.prototype={$onInit:function(){var e=this.parentCtrl?this.parentCtrl.$options:Ss,t=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=e.createChild(t)}},{restrict:`A`,priority:10,require:{parentCtrl:`?^^ngModelOptions`},bindToController:!0,controller:e}};function Es(e,t){C(t,function(t,n){L(e[n])||(e[n]=t)})}var Ds=Xa({terminal:!0,priority:1e3}),Os=i(`ngOptions`),ks=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,As=[`$compile`,`$document`,`$parse`,function(t,n,r){function i(e,t,n){var i=e.match(ks);if(!i)throw Os(`iexp`,`Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}`,e,je(t));var a=i[5]||i[7],o=i[6],s=/ as /.test(i[0])&&i[1],c=i[9],l=r(i[2]?i[1]:a),u=s&&r(s)||l,d=c&&r(c),f=c?function(e,t){return d(n,t)}:function(e){return _n(e)},p=function(e,t){return f(e,y(e,t))},m=r(i[2]||i[1]),h=r(i[3]||``),g=r(i[4]||``),_=r(i[8]),v={},y=o?function(e,t){return v[o]=t,v[a]=e,v}:function(e){return v[a]=e,v};function b(e,t,n,r,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=r,this.disabled=i}function x(e){var t;if(!o&&S(e))t=e;else for(var n in t=[],e)e.hasOwnProperty(n)&&n.charAt(0)!==`$`&&t.push(n);return t}return{trackBy:c,getTrackByValue:p,getWatchables:r(_,function(e){var t=[];e||=[];for(var r=x(e),a=r.length,o=0;o<a;o++){var s=e===r?o:r[o],c=e[s],l=y(c,s),u=f(c,l);if(t.push(u),i[2]||i[1]){var d=m(n,l);t.push(d)}if(i[4]){var p=g(n,l);t.push(p)}}return t}),getOptions:function(){for(var e=[],t={},r=_(n)||[],i=x(r),a=i.length,o=0;o<a;o++){var s=r===i?o:i[o],l=r[s],d=y(l,s),v=u(n,d),S=f(v,d),C=new b(S,v,m(n,d),h(n,d),g(n,d));e.push(C),t[S]=C}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[p(e)]},getViewValueFromOption:function(e){return c?_e(e.viewValue):e.viewValue}}}}}var a=e.document.createElement(`option`),o=e.document.createElement(`optgroup`);function s(e,r,s,c){for(var l=c[0],u=c[1],f=s.multiple,p=0,m=r.children(),h=m.length;p<h;p++)if(m[p].value===``){l.hasEmptyOption=!0,l.emptyOption=m.eq(p);break}r.empty();var g=!!l.emptyOption;d(a.cloneNode(!1)).val(`?`);var _,v=i(s.ngOptions,r,e),y=n[0].createDocumentFragment();l.generateUnknownOptionValue=function(e){return`?`},f?(l.writeValue=function(e){if(_){var t=e&&e.map(x)||[];
14_.items.forEach(function(e){e.element.selected&&!he(t,e)&&(e.element.selected=!1)})}},l.readValue=function(){var e=r.val()||[],t=[];return C(e,function(e){var n=_.selectValueMap[e];n&&!n.disabled&&t.push(_.getViewValueFromOption(n))}),t},v.trackBy&&e.$watchCollection(function(){if(V(u.$viewValue))return u.$viewValue.map(function(e){return v.getTrackByValue(e)})},function(){u.$render()})):(l.writeValue=function(e){if(_){var t=r[0].options[r[0].selectedIndex],n=_.getOptionFromViewValue(e);t&&t.removeAttribute(`selected`),n?(r[0].value!==n.selectValue&&(l.removeUnknownOption(),r[0].value=n.selectValue,n.element.selected=!0),n.element.setAttribute(`selected`,`selected`)):l.selectUnknownOrEmptyOption(e)}},l.readValue=function(){var e=_.selectValueMap[r.val()];return e&&!e.disabled?(l.unselectEmptyOption(),l.removeUnknownOption(),_.getViewValueFromOption(e)):null},v.trackBy&&e.$watch(function(){return v.getTrackByValue(u.$viewValue)},function(){u.$render()})),g&&(t(l.emptyOption)(e),r.prepend(l.emptyOption),l.emptyOption[0].nodeType===ot?(l.hasEmptyOption=!1,l.registerOption=function(e,t){t.val()===``&&(l.hasEmptyOption=!0,l.emptyOption=t,l.emptyOption.removeClass(`ng-scope`),u.$render(),t.on(`$destroy`,function(){var e=l.$isEmptyOptionSelected();l.hasEmptyOption=!1,l.emptyOption=void 0,e&&u.$render()}))}):l.emptyOption.removeClass(`ng-scope`)),e.$watchCollection(v.getWatchables,w);function b(e,t){var n=a.cloneNode(!1);t.appendChild(n),S(e,n)}function x(e){var t=_.getOptionFromViewValue(e),n=t&&t.element;return n&&!n.selected&&(n.selected=!0),t}function S(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),t.value=e.selectValue}function w(){var e=_&&l.readValue();if(_)for(var t=_.items.length-1;t>=0;t--){var n=_.items[t];L(n.group)?rn(n.element.parentNode):rn(n.element)}_=v.getOptions();var i={};if(_.items.forEach(function(e){var t;L(e.group)?(t=i[e.group],t||(t=o.cloneNode(!1),y.appendChild(t),t.label=e.group===null?`null`:e.group,i[e.group]=t),b(e,t)):b(e,y)}),r[0].appendChild(y),u.$render(),!u.$isEmpty(e)){var a=l.readValue();(v.trackBy||f?!ye(e,a):e!==a)&&(u.$setViewValue(a),u.$render())}}}return{restrict:`A`,terminal:!0,require:[`select`,`ngModel`],link:{pre:function(e,t,n,r){r[0].registerOption=P},post:s}}}],js=[`$locale`,`$interpolate`,`$log`,function(e,t,n){var r=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(a,o,s){var l=s.count,u=s.$attr.when&&o.attr(s.$attr.when),d=s.offset||0,f=a.$eval(u)||{},p={},m=t.startSymbol(),h=t.endSymbol(),g=m+l+`-`+d+h,_=y.noop,v;C(s,function(e,t){var n=i.exec(t);if(n){var r=(n[1]?`-`:``)+c(n[2]);f[r]=o.attr(s.$attr[t])}}),C(f,function(e,n){p[n]=t(e.replace(r,g))}),a.$watch(l,function(t){var r=parseFloat(t),i=M(r);if(!i&&!(r in f)&&(r=e.pluralCat(r-d)),r!==v&&!(i&&M(v))){_();var o=p[r];I(o)?(t!=null&&n.debug(`ngPluralize: no rule defined for '`+r+`' in `+u),_=P,b()):_=a.$watch(o,b),v=r}});function b(e){o.text(e||``)}}}}],Ms=i(`ngRef`),Ns=[`$parse`,function(e){return{priority:-1,restrict:`A`,compile:function(t,n){var r=ar(me(t)),i=e(n.ngRef),a=i.assign||function(){throw Ms(`nonassign`,`Expression in ngRef="{0}" is non-assignable!`,n.ngRef)};return function(e,t,o){var s;if(o.hasOwnProperty(`ngRefRead`)){if(o.ngRefRead===`$element`)s=t;else if(s=t.data(`$`+o.ngRefRead+`Controller`),!s)throw Ms(`noctrl`,`The controller for ngRefRead="{0}" could not be found on ngRef="{1}"`,o.ngRefRead,n.ngRef)}else s=t.data(`$`+r+`Controller`);s||=t,a(e,s),t.on(`$destroy`,function(){i(e)===s&&a(e,null)})}}}}],Ps=[`$parse`,`$animate`,`$compile`,function(e,t,n){var r=`$$NG_REMOVED`,a=i(`ngRepeat`),o=function(e,t,n,r,i,a,o){e[n]=r,i&&(e[i]=a),e.$index=t,e.$first=t===0,e.$last=t===o-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=!(t&1))},c=function(e){return e.clone[0]},l=function(e){return e.clone[e.clone.length-1]},u=function(e,t,n){return _n(n)},d=function(e,t){return t};return{restrict:`A`,multiElement:!0,transclude:`element`,priority:1e3,terminal:!0,$$tlb:!0,compile:function(i,f){var p=f.ngRepeat,m=n.$$createComment(`end ngRepeat`,p),h=p.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!h)throw a(`iexp`,`Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.`,p);var g=h[1],_=h[2],v=h[3],y=h[4];if(h=g.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/),!h)throw a(`iidexp`,`'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.`,g);var b=h[3]||h[1],x=h[2];if(v&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(v)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(v)))throw a(`badident`,`alias '{0}
14' is invalid --- must be a valid JS identifier which is not a reserved name.`,v);var w;if(y){var T={$id:_n},E=e(y);w=function(e,t,n,r){return x&&(T[x]=t),T[b]=n,T.$index=r,E(e,T)}}return function(e,n,i,f,h){var g=tt();e.$watchCollection(_,function(i){var f,_,y=n[0],E,D=tt(),O,k,A,j,M,N,P,F,ee;if(v&&(e[v]=i),S(i))N=i,M=w||u;else for(var te in M=w||d,N=[],i)s.call(i,te)&&te.charAt(0)!==`$`&&N.push(te);for(O=N.length,F=Array(O),f=0;f<O;f++)if(k=i===N?f:N[f],A=i[k],j=M(e,k,A,f),g[j])P=g[j],delete g[j],D[j]=P,F[f]=P;else if(D[j])throw C(F,function(e){e&&e.scope&&(g[e.id]=e)}),a(`dupes`,`Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}`,p,j,A);else F[f]={id:j,scope:void 0,clone:void 0},D[j]=!0;for(var I in T&&(T[b]=void 0),g){if(P=g[I],ee=et(P.clone),t.leave(ee),ee[0].parentNode)for(f=0,_=ee.length;f<_;f++)ee[f][r]=!0;P.scope.$destroy()}for(f=0;f<O;f++)if(k=i===N?f:N[f],A=i[k],P=F[f],P.scope){E=y;do E=E.nextSibling;while(E&&E[r]);c(P)!==E&&t.move(et(P.clone),null,y),y=l(P),o(P.scope,f,b,A,x,k,O)}else h(function(e,n){P.scope=n;var r=m.cloneNode(!1);e[e.length++]=r,t.enter(e,null,y),y=r,P.clone=e,D[P.id]=P,o(P.scope,f,b,A,x,k,O)});g=D})}}}}],Fs=`ng-hide`,Is=`ng-hide-animate`,Ls=[`$animate`,function(e){return{restrict:`A`,multiElement:!0,link:function(t,n,r){t.$watch(r.ngShow,function(t){e[t?`removeClass`:`addClass`](n,Fs,{tempClasses:Is})})}}}],Rs=[`$animate`,function(e){return{restrict:`A`,multiElement:!0,link:function(t,n,r){t.$watch(r.ngHide,function(t){e[t?`addClass`:`removeClass`](n,Fs,{tempClasses:Is})})}}}],zs=Xa(function(e,t,n){e.$watchCollection(n.ngStyle,function(e,n){
14n&&e!==n&&C(n,function(e,n){t.css(n,``)}),e&&t.css(e)})}),Bs=[`$animate`,`$compile`,function(e,t){return{require:`ngSwitch`,controller:[`$scope`,function(){this.cases={}}],link:function(n,r,i,a){var o=i.ngSwitch||i.on,s=[],c=[],l=[],u=[],d=function(e,t){return function(n){n!==!1&&e.splice(t,1)}};n.$watch(o,function(n){for(var r,i;l.length;)e.cancel(l.pop());for(r=0,i=u.length;r<i;++r){var o=et(c[r].clone);u[r].$destroy(),(l[r]=e.leave(o)).done(d(l,r))}c.length=0,u.length=0,(s=a.cases[`!`+n]||a.cases[`?`])&&C(s,function(n){n.transclude(function(r,i){u.push(i);var a=n.element;r[r.length++]=t.$$createComment(`end ngSwitchWhen`);var o={clone:r};c.push(o),e.enter(r,a.parent(),a)})})})}}}],Vs=Xa({transclude:`element`,priority:1200,require:`^ngSwitch`,multiElement:!0,link:function(e,t,n,r,i){C(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter(function(e,t,n){return n[t-1]!==e}),function(e){r.cases[`!`+e]=r.cases[`!`+e]||[],r.cases[`!`+e].push({transclude:i,element:t})})}}),Hs=Xa({transclude:`element`,priority:1200,require:`^ngSwitch`,multiElement:!0,link:function(e,t,n,r,i){r.cases[`?`]=r.cases[`?`]||[],r.cases[`?`].push({transclude:i,element:t})}}),Us=i(`ngTransclude`),Ws=[`$compile`,function(e){return{restrict:`EAC`,compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,r,i,a){if(!a)throw Us(`orphan`,`Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}`,je(t));r.ngTransclude===r.$attr.ngTransclude&&(r.ngTransclude=``);var o=r.ngTransclude||r.ngTranscludeSlot;a(s,null,o),o&&!a.isSlotFilled(o)&&c();function s(e,n){e.length&&l(e)?t.append(e):(c(),n.$destroy())}function c(){n(e,function(e){t.append(e)})}function l(e){for(var t=0,n=e.length;t<n;t++){var r=e[t];if(r.nodeType!==at||r.nodeValue.trim())return!0}}}}}}],Gs=[`$templateCache`,function(e){return{restrict:`E`,terminal:!0,compile:function(t,n){if(n.type===`text/ng-template`){var r=n.id,i=t[0].text;e.put(r,i)}}}}],Ks={$setViewValue:P,$render:P};function qs(e,t){e.prop(`selected`,t),e.attr(`selected`,t)}var Js=[`$element`,`$scope`,function(t,n){var r=this,i=new bn;r.selectValueMap={},r.ngModelCtrl=Ks,r.multiple=!1,r.unknownOption=d(e.document.createElement(`option`)),r.hasEmptyOption=!1,r.emptyOption=void 0,r.renderUnknownOption=function(e){var n=r.generateUnknownOptionValue(e);r.unknownOption.val(n),t.prepend(r.unknownOption),qs(r.unknownOption,!0),t.val(n)},r.updateUnknownOption=function(e){var n=r.generateUnknownOptionValue(e);r.unknownOption.val(n),qs(r.unknownOption,!0),t.val(n)},r.generateUnknownOptionValue=function(e){return`? `+_n(e)+` ?`},r.removeUnknownOption=function(){r.unknownOption.parent()&&r.unknownOption.remove()},r.selectEmptyOption=function(){r.emptyOption&&(t.val(``),qs(r.emptyOption,!0))},r.unselectEmptyOption=function(){r.hasEmptyOption&&qs(r.emptyOption,!1)},n.$on(`$destroy`,function(){r.renderUnknownOption=P}),r.readValue=function(){var e=t.val(),n=e in r.selectValueMap?r.selectValueMap[e]:e;return r.hasOption(n)?n:null},r.writeValue=function(e){var n=t[0].options[t[0].selectedIndex];if(n&&qs(d(n),!1),r.hasOption(e)){r.removeUnknownOption();var i=_n(e);t.val(i in r.selectValueMap?i:e);var a=t[0].options[t[0].selectedIndex];qs(d(a),!0)}else r.selectUnknownOrEmptyOption(e)},r.addOption=function(e,t){if(t[0].nodeType!==ot){Qe(e,`"option value"`),e===``&&(r.hasEmptyOption=!0,r.emptyOption=t);var n=i.get(e)||0;i.set(e,n+1),o()}},r.removeOption=function(e){var t=i.get(e);t&&(t===1?(i.delete(e),e===``&&(r.hasEmptyOption=!1,r.emptyOption=void 0)):i.set(e,t-1))},r.hasOption=function(e){return!!i.get(e)},r.$hasEmptyOption=function(){return r.hasEmptyOption},r.$isUnknownOptionSelected=function(){return t[0].options[0]===r.unknownOption[0]},r.$isEmptyOptionSelected=function(){return r.hasEmptyOption&&t[0].options[t[0].selectedIndex]===r.emptyOption[0]},r.selectUnknownOrEmptyOption=function(e){e==null&&r.emptyOption?(r.removeUnknownOption(),r.selectEmptyOption()):r.unknownOption.parent().length?r.updateUnknownOption(e):r.renderUnknownOption(e)};var a=!1;function o(){a||(a=!0,n.$$postDigest(function(){a=!1,r.ngModelCtrl.$render()}))}var s=!1;function c(e){s||(s=!0,n.$$postDigest(function(){n.$$destroyed||(s=!1,r.ngModelCtrl.$setViewValue(r.readValue()),e&&r.ngModelCtrl.$render())}))}r.registerOption=function(e,t,n,i,a){if(n.$attr.ngValue){var s,l;n.$observe(`value`,function(e){var n,i=t.prop(`selected`);L(l)&&(r.removeOption(s),delete r.selectValueMap[l],n=!0),l=_n(e),s=e,r.selectValueMap[l]=e,r.addOption(e,t),t.attr(`value`,l),n&&i&&c()})}else i?n.$observe(`value`,function(e){r.readValue();var n,i=t.prop(`selected`);L(s)&&(r.removeOption(s),n=!0),s=e,r.addOption(e,t),n&&i&&c()}):a?e.$watch(a,function(e,i){n.$set(`value`,e);var a=t.prop(`selected`);i!==e&&r.removeOption(i),r.addOption(e,t),i&&a&&c()}):r.addOption(n.value,t);n.$observe(`disabled`,function(e){(e===`true`||e&&t.prop(`selected`))&&(r.multiple?c(!0):(r.ngModelCtrl.$setViewValue(null),r.ngModelCtrl.$render()))}),t.on(`$destroy`,function(){var e=r.readValue(),t=n.value;r.removeOption(t),o(),(r.multiple&&e&&e.indexOf(t)!==-1||e===t)&&c(!0)})}}],Ys=function(){return{restrict:`E`,require:[`select`,`?ngModel`],controller:Js,priority:1,link:{pre:e,post:t}};function e(e,t,n,r){var i=r[0],a=r[1];if(!a){i.registerOption=P;return}if(i.ngModelCtrl=a,t.on(`change`,function(){i.removeUnknownOption(),e.$apply(function(){a.$setViewValue(i.readValue())})}),n.multiple){i.multiple=!0,i.readValue=function(){var e=[];return C(t.find(`option`),function(t){if(t.selected&&!t.disabled){var n=t.value;e.push(n in i.selectValueMap?i.selectValueMap[n]:n)}}),e},i.writeValue=function(e){C(t.find(`option`),function(t){var n=!!e&&(he(e,t.value)||he(e,i.selectValueMap[t.value]));n!==t.selected&&qs(d(t),n)})};var o,s=NaN;e.$watch(function(){s===a.$viewValue&&!ye(o,a.$viewValue)&&(o=ut(a.$viewValue),a.$render()),s=a.$viewValue}),a.$isEmpty=function(e){return!e||e.length===0}}}function t(e,t,n,r){var i=r[1];if(i){var a=r[0];i.$render=function(){a.writeValue(i.$viewValue)}}}},Xs=[`$interpolate`,function(e){return{restrict:`E`,priority:100,compile:function(t,n){var r,i;return L(n.ngValue)||(L(n.value)?r=e(n.value,!0):(i=e(t.text(),!0),i||n.$set(`value`,t.text()))),function(e,t,n){var a=`$selectController`,o=t.parent(),s=o.data(a)||o.parent().data(a);s&&s.registerOption(e,t,n,r,i)}}}}],Zs=[`$parse`,function(e){return{restrict:`A`,require:`?ngModel`,link:function(t,n,r,i){if(i){var a=r.hasOwnProperty(`required`)||e(r.ngRequired)(t);r.ngRequired||(r.required=!0),i.$validators.required=function(e,t){return!a||!i.$isEmpty(t)},r.$observe(`required`,function(e){a!==e&&(a=e,i.$validate())})}}}}],Z=[`$parse`,function(e){return{restrict:`A`,require:`?ngModel`,compile:function(t,n){var r,i;return n.ngPattern&&(r=n.ngPattern,i=n.ngPattern.charAt(0)===`/`&&a.test(n.ngPattern)?function(){return n.ngPattern}:e(n.ngPattern)),function(e,t,n,a){if(a){var o=n.pattern;n.ngPattern?o=i(e):r=n.pattern;var s=ec(o,r,t);n.$observe(`pattern`,function(e){var n=s;s=ec(e,r,t),(n&&n.toString())!==(s&&s.toString())&&a.$validate()}),a.$validators.pattern=function(e,t){return a.$isEmpty(t)||I(s)||s.test(t)}}}}}}],Qs=[`$parse`,function(e){return{restrict:`A`,require:`?ngModel`,link:function(t,n,r,i){if(i){var a=r.maxlength||e(r.ngMaxlength)(t),o=tc(a);r.$observe(`maxlength`,function(e){a!==e&&(o=tc(e),a=e,i.$validate())}),i.$validators.maxlength=function(e,t){return o<0||i.$isEmpty(t)||t.length<=o}}}}}],$s=[`$parse`,function(e){return{restrict:`A`,require:`?ngModel`,link:function(t,n,r,i){if(i){var a=r.minlength||e(r.ngMinlength)(t),o=tc(a)||-1;r.$observe(`minlength`,function(e){a!==e&&(o=tc(e)||-1,a=e,i.$validate())}),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=o}}}}}];function ec(e,t,n){if(e){if(z(e)&&(e=RegExp(`^`+e+`$`)),!e.test)throw i(`ngPattern`)(`noregexp`,`Expected {0} to be a RegExp but was {1}. Element: {2}`,t,e,je(n));return e}}function tc(e){var t=j(e);return M(t)?-1:t}if(e.angular.bootstrap){e.console;return}Je(),mt(y),y.module(`ngLocale`,[],[`$provide`,function(e){var t={ZERO:`zero`,ONE:`one`,TWO:`two`,FEW:`few`,MANY:`many`,OTHER:`other`};function n(e){e+=``;var t=e.indexOf(`.`);return t==-1?0:e.length-t-1}function r(e,t){var r=t;r===void 0&&(r=Math.min(n(e),3));var i=10**r,a=(e*i|0)%i;return{v:r,f:a}}e.value(`$locale`,{DATETIME_FORMATS:{AMPMS:[`AM`,`PM`],DAY:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],ERANAMES:[`Before Christ`,`Anno Domini`],ERAS:[`BC`,`AD`],FIRSTDAYOFWEEK:6,MONTH:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],SHORTDAY:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],SHORTMONTH:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],STANDALONEMONTH:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],WEEKENDRANGE:[5,6],fullDate:`EEEE, MMMM d, y`,longDate:`MMMM d, y`,medium:`MMM d, y h:mm:ss a`,mediumDate:`MMM d, y`,mediumTime:`h:mm:ss a`,short:`M/d/yy h:mm a`,shortDate:`M/d/yy`,shortTime:`h:mm a`},NUMBER_FORMATS:{CURRENCY_SYM:`$`,DECIMAL_SEP:`.`,GROUP_SEP:`,`,PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:`-`,negSuf:``,posPre:``,posSuf:``},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:`-¤`,negSuf:``,posPre:`¤`,posSuf:``}]},id:`en-us`,localeID:`en_US`,pluralCat:function(e,n){var i=e|0,a=r(e,n);return i==1&&a.v==0?t.ONE:t.OTHER}})}]),d(function(){Ve(e.document,He)})})(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(window.angular.element(`<style>`).text(`@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}`))}));np(),(function(e,t){var n=`-add`,r=`-remove`,i=`ng-animate`,a=`$$ngAnimateChildren`,o,s,c,l;e.ontransitionend===void 0&&e.onwebkittransitionend!==void 0?(o=`WebkitTransition`,s=`
14webkitTransitionEnd transitionend`):(o=`transition`,s=`transitionend`),e.onanimationend===void 0&&e.onwebkitanimationend!==void 0?(c=`WebkitAnimation`,l=`webkitAnimationEnd animationend`):(c=`animation`,l=`animationend`);var u=`Duration`,d=`Property`,f=`Delay`,p=`TimingFunction`,m=`IterationCount`,h=`PlayState`,g=9999,_=c+f,v=c+u,y=o+f,b=o+u,x=t.$$minErr(`ng`);function S(e,t,n){if(!e)throw x(`areq`,`Argument '{0}' is {1}`,t||`?`,n||`required`);return e}function C(e,t){return!e&&!t?``:e?t?(we(e)&&(e=e.join(` `)),we(t)&&(t=t.join(` `)),e+` `+t):e:t}function w(e){var t={};return e&&(e.to||e.from)&&(t.to=e.to,t.from=e.from),t}function T(e,t,n){var r=``;return e=we(e)?e:e&&Oe(e)&&e.length?e.split(/\s+/):[],Ce(e,function(e,i){e&&e.length>0&&(r+=i>0?` `:``,r+=n?t+e:e+t)}),r}function E(e,t){var n=e.indexOf(t);t>=0&&e.splice(n,1)}function D(e){if(e instanceof Ae)switch(e.length){case 0:return e;case 1:if(e[0].nodeType===1)return e;break;default:return Ae(O(e))}if(e.nodeType===1)return Ae(e)}function O(e){if(!e[0])return e;for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===1)return n}}function k(e,t,n){Ce(t,function(t){e.addClass(t,n)})}function A(e,t,n){Ce(t,function(t){e.removeClass(t,n)})}function j(e){return function(t,n){n.addClass&&=(k(e,t,n.addClass),null),n.removeClass&&=(A(e,t,n.removeClass),null)}}function M(e){if(e||={},!e.$$prepared){var t=e.domOperation||je;e.domOperation=function(){e.$$domOperationFired=!0,t(),t=je},e.$$prepared=!0}return e}function N(e,t){P(e,t),F(e,t)}function P(e,t){t.from&&=(e.css(t.from),null)}function F(e,t){t.to&&=(e.css(t.to),null)}function ee(e,t,n){var r=t.options||{},i=n.options||{},a=(r.addClass||``)+` `+(i.addClass||``),o=(r.removeClass||``)+` `+(i.removeClass||``),s=te(e.attr(`class`),a,o);i.preparationClasses&&(r.preparationClasses=re(i.preparationClasses,r.preparationClasses),delete i.preparationClasses);var c=r.domOperation===je?null:r.domOperation;return Se(r,i),c&&(r.domOperation=c),r.addClass=s.addClass?s.addClass:null,r.removeClass=s.removeClass?s.removeClass:null,t.addClass=r.addClass,t.removeClass=r.removeClass,r}function te(e,t,i){var a={};e=s(e),t=s(t),Ce(t,function(e,t){a[t]=1}),i=s(i),Ce(i,function(e,t){a[t]=a[t]===1?null:-1});var o={addClass:``,removeClass:``};Ce(a,function(t,i){var a,s;t===1?(a=`addClass`,s=!e[i]||e[i+r]):t===-1&&(a=`removeClass`,s=e[i]||e[i+n]),s&&(o[a].length&&(o[a]+=` `),o[a]+=i)});function s(e){Oe(e)&&(e=e.split(` `));var t={};return Ce(e,function(e){e.length&&(t[e]=!0)}),t}return o}function I(e){return e instanceof Ae?e[0]:e}function L(e,t,i,a){var o=``;i&&(o=T(i,`ng-`,!0)),a.addClass&&(o=re(o,T(a.addClass,n))),a.removeClass&&(o=re(o,T(a.removeClass,r))),o.length&&(a.preparationClasses=o,t.addClass(o))}function R(e,t){t.preparationClasses&&=(e.removeClass(t.preparationClasses),null),t.activeClasses&&=(e.removeClass(t.activeClasses),null)}function ne(e,t){var n=t?`paused`:``,r=c+h;return z(e,[r,n]),[r,n]}function z(e,t){var n=t[0],r=t[1];e.style[n]=r}function re(e,t){return e?t?e+` `+t:e:t}var B={blockTransitions:function(e,t){var n=t?`-`+t+`s`:``;return z(e,[y,n]),[y,n]}},V=[`$$rAF`,function(e){var t,n;function r(e){t=t.concat(e),i()}return t=r.queue=[],r.waitUntilQuiet=function(t){n&&n(),n=e(function(){n=null,t(),i()})},r;function i(){if(t.length){for(var r=t.shift(),a=0;a<r.length;a++)r[a]();n||e(function(){n||i()})}}}],ie=[`$interpolate`,function(e){return{link:function(t,n,r){var i=r.ngAnimateChildren;Oe(i)&&i.length===0?n.data(a,!0):(o(e(i)(t)),r.$observe(`ngAnimateChildren`,o));function o(e){e=e===`on`||e===`true`,n.data(a,e)}}}}],H=`$$animateCss`,ae=1e3,oe=3,se=1.5,ce={transitionDuration:b,transitionDelay:y,transitionProperty:o+d,animationDuration:v,animationDelay:_,animationIterationCount:c+m},le={transitionDuration:b,transitionDelay:y,animationDuration:v,animationDelay:_};function U(e){return[v,e+`s`]}function W(e,t){return[t?_:y,e+`s`]}function G(e,t,n){var r=Object.create(null),i=e.getComputedStyle(t)||{};return Ce(n,function(e,t){var n=i[e];if(n){var a=n.charAt(0);(a===`-`||a===`+`||a>=0)&&(n=ue(n)),n===0&&(n=null),r[t]=n}}),r}function ue(e){var t=0,n=e.split(/\s*,\s*/);return Ce(n,function(e){e.charAt(e.length-1)===`s`&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function de(e){return e===0||e!=null}function K(e,t){var n=o,r=e+`s`;return t?n+=u:r+=` linear all`,[n,r]}function q(e,t,n){Ce(n,function(n){e[n]=Y(e[n])?e[n]:t.style.getPropertyValue(n)})}var fe=[`$animateProvider`,function(e){this.$get=[`$window`,`$$jq
14Lite`,`$$AnimateRunner`,`$timeout`,`$$animateCache`,`$$forceReflow`,`$sniffer`,`$$rAFScheduler`,`$$animateQueue`,function(e,t,i,a,u,f,m,h,_){var v=j(t);function y(t,n,r,i,a){var o=u.get(r);o||(o=G(e,t,a),o.animationIterationCount===`infinite`&&(o.animationIterationCount=1));var s=i||o.transitionDuration>0||o.animationDuration>0;return u.put(r,o,s),o}function b(n,r,i,a){var o,s=`stagger-`+i;if(u.count(i)>0&&(o=u.get(s),!o)){var c=T(r,`-stagger`);t.addClass(n,c),o=G(e,n,a),o.animationDuration=Math.max(o.animationDuration,0),o.transitionDuration=Math.max(o.transitionDuration,0),t.removeClass(n,c),u.put(s,o,!0)}return o||{}}var x=[];function S(e){x.push(e),h.waitUntilQuiet(function(){u.flush();for(var e=f(),t=0;t<x.length;t++)x[t](e);x.length=0})}function C(e,t,n,r){var i=y(e,t,n,r,ce),a=i.animationDelay,o=i.transitionDelay;return i.maxDelay=a&&o?Math.max(a,o):a||o,i.maxDuration=Math.max(i.animationDuration*i.animationIterationCount,i.transitionDuration),i}return function(e,f){var h=f||{};h.$$prepared||(h=M(xe(h)));var y={},x=I(e);if(!x||!x.parentNode||!_.enabled())return Re();var D=[],O=e.attr(`class`),k=w(h),A,j,ee,te,L,R,re,V,ie,ce,G=[];if(h.duration===0||!m.animations&&!m.transitions)return Re();var ue=h.event&&we(h.event)?h.event.join(` `):h.event,fe=ue&&h.structural,J=``,pe=``;fe?J=T(ue,`ng-`,!0):ue&&(J=ue),h.addClass&&(pe+=T(h.addClass,n)),h.removeClass&&(pe.length&&(pe+=` `),pe+=T(h.removeClass,r)),h.applyClassesEarly&&pe.length&&v(e,h);var me=[J,pe].join(` `).trim(),he=O+` `+me,ge=k.to&&Object.keys(k.to).length>0;if(!((h.keyframeStyle||``).length>0)&&!ge&&!me)return Re();var _e,ve=u.cacheKey(x,ue,h.addClass,h.removeClass);if(u.containsCachedAnimationWithoutDuration(ve))return me=null,Re();if(h.stagger>0){var ye=parseFloat(h.stagger);_e={transitionDelay:ye,animationDelay:ye,transitionDuration:0,animationDuration:0}}else _e=b(x,me,ve,le);h.$$skipPreparationClasses||t.addClass(e,me);var be;if(h.transitionStyle){var Se=[o,h.transitionStyle];z(x,Se),D.push(Se)}if(h.duration>=0){be=x.style[o].length>0;var Y=K(h.duration,be);z(x,Y),D.push(Y)}if(h.keyframeStyle){var Te=[c,h.keyframeStyle];z(x,Te),D.push(Te)}var Ee=_e?h.staggerIndex>=0?h.staggerIndex:u.count(ve):0,De=Ee===0;De&&!h.skipBlocking&&B.blockTransitions(x,g);var Oe=C(x,he,ve,!fe),ke=Oe.maxDelay;R=Math.max(ke,0),V=Oe.maxDuration;var Ae={};if(Ae.hasTransitions=Oe.transitionDuration>0,Ae.hasAnimations=Oe.animationDuration>0,Ae.hasTransitionAll=Ae.hasTransitions&&Oe.transitionProperty===`all`,Ae.applyTransitionDuration=ge&&(Ae.hasTransitions&&!Ae.hasTransitionAll||Ae.hasAnimations&&!Ae.hasTransitions),Ae.applyAnimationDuration=h.duration&&Ae.hasAnimations,Ae.applyTransitionDelay=de(h.delay)&&(Ae.applyTransitionDuration||Ae.hasTransitions),Ae.applyAnimationDelay=de(h.delay)&&Ae.hasAnimations,Ae.recalculateTimingStyles=pe.length>0,(Ae.applyTransitionDuration||Ae.applyAnimationDuration)&&(V=h.duration?parseFloat(h.duration):V,Ae.applyTransitionDuration&&(Ae.hasTransitions=!0,Oe.transitionDuration=V,be=x.style[o+d].length>0,D.push(K(V,be))),Ae.applyAnimationDuration&&(Ae.hasAnimations=!0,Oe.animationDuration=V,D.push(U(V)))),V===0&&!Ae.recalculateTimingStyles)return Re();var Me=T(me,`-active`);if(h.delay!=null){var Ne;typeof h.delay!=`boolean`&&(Ne=parseFloat(h.delay),R=Math.max(Ne,0)),Ae.applyTransitionDelay&&D.push(W(Ne)),Ae.applyAnimationDelay&&D.push(W(Ne,!0))}return h.duration==null&&Oe.transitionDuration>0&&(Ae.recalculateTimingStyles=Ae.recalculateTimingStyles||De),re=R*ae,ie=V*ae,h.skipBlocking||(Ae.blockTransition=Oe.transitionDuration>0,Ae.blockKeyframeAnimation=Oe.animationDuration>0&&_e.animationDelay>0&&_e.animationDuration===0),h.from&&(h.cleanupStyles&&q(y,x,Object.keys(h.from)),P(e,h)),Ae.blockTransition||Ae.blockKeyframeAnimation?Le(V):h.skipBlocking||B.blockTransitions(x,!1),{$$willAnimate:!0,end:Pe,start:function(){if(!A)return L={end:Pe,cancel:Fe,resume:null,pause:null},te=new i(L),S(Be),te}};function Pe(){Ie()}function Fe(){Ie(!0)}function Ie(n){if(!(A||ee&&j)){A=!0,j=!1,me&&!h.$$skipPreparationClasses&&t.removeClass(e,me),Me&&t.removeClass(e,Me),ne(x,!1),B.blockTransitions(x,!1),Ce(D,function(e){x.style[e[0]]=``}),v(e,h),N(e,h),Object.keys(y).length&&Ce(y,function(e,t){e?x.style.setProperty(t,e):x.style.removeProperty(t)}),h.onDone&&h.onDone(),G&&G.length&&e.off(G.join(` `),ze);var r=e.data(H);r&&(a.cancel(r[0].timer),e.removeData(H)),te&&te.complete(!n)}}function Le(e){Ae.blockTransition&&B.blockTransitions(x,e),Ae.blockKeyframeAnimation&&ne(x,!!e)}function Re(){return te=new i({end:Pe,cancel:Fe}),S(je),Ie(),{$$willAnimate:!1,start:function(){return te},end:Pe}}function ze(e){e.stopPropagation();var t=e.originalEvent||e;if(t.target===x){var n=t.$manualTimeStamp||Date.now(),r=parseFloat(t.elapsedTime.toFixed(oe));Math.max(n-ce,0)>=re&&r>=V&&(ee=!0,Ie())}}function Be(){if(A)return;if(!x.parentNode){Ie();return}var n=function(e){if(ee)j&&e&&(j=!1,Ie());else if(j=!e,Oe.animationDuration){var t=ne(x,j);j?D.push(t):E(D,t)}},r=Ee>0&&(Oe.transitionDuration&&_e.transitionDuration===0||Oe.animationDuration&&_e.animationDuration===0)&&Math.max(_e.animationDelay,_e.transitionDelay);r?a(i,Math.floor(r*Ee*ae),!1):i(),L.resume=function(){n(!0)},L.pause=function(){n(!1)};function i(){if(!A){if(Le(!1),Ce(D,function(e){var t=e[0],n=e[1];x.style[t]=n}
14),v(e,h),t.addClass(e,Me),Ae.recalculateTimingStyles){if(he=x.getAttribute(`class`)+` `+me,ve=u.cacheKey(x,ue,h.addClass,h.removeClass),Oe=C(x,he,ve,!1),ke=Oe.maxDelay,R=Math.max(ke,0),V=Oe.maxDuration,V===0){Ie();return}Ae.hasTransitions=Oe.transitionDuration>0,Ae.hasAnimations=Oe.animationDuration>0}if(Ae.applyAnimationDelay&&(ke=typeof h.delay!=`boolean`&&de(h.delay)?parseFloat(h.delay):ke,R=Math.max(ke,0),Oe.animationDelay=ke,Ne=W(ke,!0),D.push(Ne),x.style[Ne[0]]=Ne[1]),re=R*ae,ie=V*ae,h.easing){var n,r=h.easing;Ae.hasTransitions&&(n=o+p,D.push([n,r]),x.style[n]=r),Ae.hasAnimations&&(n=c+p,D.push([n,r]),x.style[n]=r)}Oe.transitionDuration&&G.push(s),Oe.animationDuration&&G.push(l),ce=Date.now();var i=re+se*ie,f=ce+i,m=e.data(H)||[],g=!0;if(m.length){var _=m[0];g=f>_.expectedEndTime,g?a.cancel(_.timer):m.push(Ie)}g&&(m[0]={timer:a(d,i,!1),expectedEndTime:f},m.push(Ie),e.data(H,m)),G.length&&e.on(G.join(` `),ze),h.to&&(h.cleanupStyles&&q(y,x,Object.keys(h.to)),F(e,h))}}function d(){var t=e.data(H);if(t){for(var n=1;n<t.length;n++)t[n]();e.removeData(H)}}}}}]}],J=[`$$animationProvider`,function(e){e.drivers.push(`$$animateCssDriver`);var t=`ng-animate-shim`,n=`ng-anchor`,r=`ng-anchor-out`,i=`ng-anchor-in`;function a(e){return e.parentNode&&e.parentNode.nodeType===11}this.$get=[`$animateCss`,`$rootScope`,`$$AnimateRunner`,`$rootElement`,`$sniffer`,`$$jqLite`,`$document`,function(e,o,s,c,l,u,d){if(!l.animations&&!l.transitions)return je;var f=d[0].body,p=I(c),m=Ae(a(p)||f.contains(p)?p:f);return function(e){return e.from&&e.to?v(e.from,e.to,e.classes,e.anchors):y(e)};function h(e){return e.replace(/\bng-\S+\b/g,``)}function g(e,t){return Oe(e)&&(e=e.split(` `)),Oe(t)&&(t=t.split(` `)),e.filter(function(e){return t.indexOf(e)===-1}).join(` `)}function _(a,o,c){var l=Ae(I(o).cloneNode(!0)),u=h(b(l));o.addClass(t),c.addClass(t),l.addClass(n),m.append(l);var d,p=y();if(!p&&(d=x(),!d))return S();var _=p||d;return{start:function(){var e,t=_.start();return t.done(function(){if(t=null,!d&&(d=x(),d))return t=d.start(),t.done(function(){t=null,S(),e.complete()}),t;S(),e.complete()}),e=new s({end:n,cancel:n}),e;function n(){t&&t.end()}}};function v(e){var t={},n=I(e).getBoundingClientRect();return Ce([`width`,`height`,`top`,`left`],function(e){var r=n[e];switch(e){case`top`:r+=f.scrollTop;break;case`left`:r+=f.scrollLeft}t[e]=Math.floor(r)+`px`}),t}function y(){var t=e(l,{addClass:r,delay:!0,from:v(o)});return t.$$willAnimate?t:null}function b(e){return e.attr(`class`)||``}function x(){var t=h(b(c)),n=g(t,u),a=g(u,t),o=e(l,{to:v(c),addClass:i+` `+n,removeClass:r+` `+a,delay:!0});return o.$$willAnimate?o:null}function S(){l.remove(),o.removeClass(t),c.removeClass(t)}}function v(e,t,n,r){var i=y(e,je),a=y(t,je),o=[];if(Ce(r,function(e){var t=e.out,r=e.in,i=_(n,t,r);i&&o.push(i)}),i||a||o.length!==0)return{start:function(){var e=[];i&&e.push(i.start()),a&&e.push(a.start()),Ce(o,function(t){e.push(t.start())});var t=new s({end:n,cancel:n});return s.all(e,function(e){t.complete(e)}),t;function n(){Ce(e,function(e){e.end()})}}}}function y(t){var n=t.element,r=t.options||{};t.structural&&(r.event=t.event,r.structural=!0,r.applyClassesEarly=!0,t.event===`leave`&&(r.onDone=r.domOperation)),r.preparationClasses&&(r.event=re(r.event,r.preparationClasses));var i=e(n,r);return i.$$willAnimate?i:null}}]}],pe=[`$animateProvider`,function(e){this.$get=[`$injector`,`$$AnimateRunner`,`$$jqLite`,function(t,n,r){var i=j(r);return function(e,t,r,o){var s=!1;arguments.length===3&&De(r)&&(o=r,r=null),o=M(o),r||(r=e.attr(`class`)||``,o.addClass&&(r+=` `+o.addClass),o.removeClass&&(r+=` `+o.removeClass));var c=o.addClass,l=o.removeClass,u=a(r),d,f;if(u.length){var p,m;t===`leave`?(m=`leave`,p=`afterLeave`):(m=`before`+t.charAt(0).toUpperCase()+t.substr(1),p=t),t!==`enter`&&t!==`move`&&(d=b(e,t,o,u,m)),f=b(e,t,o,u,p)}if(!d&&!f)return;function h(){o.domOperation(),i(e,o)}function g(){s=!0,h(),N(e,o)}var _;return{$$willAnimate:!0,end:function(){return _?_.end():(g(),_=new n,_.complete(!0)),_},start:function(){if(_)return _;_=new n;var e,t=[];return d&&t.push(function(t){e=d(t)}),t.length?t.push(function(e){h(),e(!0)}):h(),f&&t.push(function(t){e=f(t)}),_.setHost({end:function(){i()},cancel:function(){i(!0)}}),n.chain(t,r),_;function r(e){g(e),_.complete(e)}function i(t){s||((e||je)(t),r(t))}}};function v(e,t,r,i,a){var o;switch(r){case`animate`:o=[t,i.from,i.to,a];break;case`setClass`:o=[t,c,l,a];break;case`addClass`:o=[t,c,a];break;case`removeClass`:o=[t,l,a];break;default:o=[t,a]}o.push(i);var s=e.apply(e,o);if(s){if(Ee(s.start)&&(s=s.start()),s instanceof n)s.done(a);else if(Ee(s))return s}return je}function y(e,t,r,i,a){var o=[];return Ce(i,function(i){var s=i[a];s&&o.push(function(){var i,a,o=!1,c=function(e){o||(o=!0,(a||je)(e),i.complete(!e))};return i=new n({end:function(){c()},cancel:function(){c(!0)}}),a=v(s,e,t,r,function(e){c(e===!1)}),i})}),o}function b(e,t,r,i,a){var o=y(e,t,r,i,a);if(o.length===0){var s,c;a===`beforeSetClass`?(s=y(e,`removeClass`,r,i,`beforeRemoveClass`),c=y(e,`addClass`,r,i,`beforeAddClass`)):a===`setClass`&&(s=y(e,`removeClass`,r,i,`removeClass`),c=y(e,`addClass`,r,i,`addClass`)),s&&(o=o.c
14oncat(s)),c&&(o=o.concat(c))}if(o.length!==0)return function(e){var t=[];return o.length&&Ce(o,function(e){t.push(e())}),t.length?n.all(t,e):e(),function(e){Ce(t,function(t){e?t.cancel():t.end()})}}}};function a(n){n=we(n)?n:n.split(` `);for(var r=[],i={},a=0;a<n.length;a++){var o=n[a],s=e.$$registeredAnimations[o];s&&!i[o]&&(r.push(t.get(s)),i[o]=!0)}return r}}]}],me=[`$$animationProvider`,function(e){e.drivers.push(`$$animateJsDriver`),this.$get=[`$$animateJs`,`$$AnimateRunner`,function(e,t){return function(e){if(e.from&&e.to){var r=n(e.from),i=n(e.to);return!r&&!i?void 0:{start:function(){var e=[];r&&e.push(r.start()),i&&e.push(i.start()),t.all(e,o);var n=new t({end:a(),cancel:a()});return n;function a(){return function(){Ce(e,function(e){e.end()})}}function o(e){n.complete(e)}}}}return n(e)};function n(t){var n=t.element,r=t.event,i=t.options,a=t.classes;return e(n,r,a,i)}}]}],he=`data-ng-animate`,ge=`$ngAnimatePin`,_e=[`$animateProvider`,function(t){var n=this.rules={skip:[],cancel:[],join:[]};function r(e){return{addClass:e.addClass,removeClass:e.removeClass,from:e.from,to:e.to}}function i(e){if(!e)return null;var t=e.split(` `),n=Object.create(null);return Ce(t,function(e){n[e]=!0}),n}function o(e,t){if(e&&t){var n=i(t);return e.split(` `).some(function(e){return n[e]})}}function s(e,t,r){return n[e].some(function(e){return e(t,r)})}function c(e,t){var n=(e.addClass||``).length>0,r=(e.removeClass||``).length>0;return t?n&&r:n||r}n.join.push(function(e,t){return!e.structural&&c(e)}),n.skip.push(function(e,t){return!e.structural&&!c(e)}),n.skip.push(function(e,t){return t.event===`leave`&&e.structural}),n.skip.push(function(e,t){return t.structural&&t.state===2&&!e.structural}),n.cancel.push(function(e,t){return t.structural&&e.structural}),n.cancel.push(function(e,t){return t.state===2&&e.structural}),n.cancel.push(function(e,t){if(t.structural)return!1;var n=e.addClass,r=e.removeClass,i=t.addClass,a=t.removeClass;return ke(n)&&ke(r)||ke(i)&&ke(a)?!1:o(n,a)||o(r,i)}),this.$get=[`$$rAF`,`$rootScope`,`$rootElement`,`$document`,`$$Map`,`$$animation`,`$$AnimateRunner`,`$templateRequest`,`$$jqLite`,`$$forceReflow`,`$$isDocumentHidden`,function(n,i,o,l,u,d,f,p,m,h,g){var _=new u,v=new u,y=null;function b(e){v.delete(e.target)}function x(){var e=!1;return function(t){e?t():i.$$postDigest(function(){e=!0,t()})}}var C=i.$watch(function(){return p.totalPendingRequests===0},function(e){e&&(C(),i.$$postDigest(function(){i.$$postDigest(function(){y===null&&(y=!0)})}))}),w=Object.create(null),T=t.customFilter(),E=t.classNameFilter(),k=function(){return!0},A=T||k,P=E?function(e,t){var n=[e.getAttribute(`class`),t.addClass,t.removeClass].join(` `);return E.test(n)}:k,F=j(m);function te(e,t){return ee(e,t,{})}var ne=e.Node.prototype.contains||function(e){return this===e||!!(this.compareDocumentPosition(e)&16)};function z(e,t,n){var r=[],i=w[n];return i&&Ce(i,function(i){(ne.call(i.node,t)||n===`leave`&&ne.call(i.node,e))&&r.push(i.callback)}),r}function re(e,t,n){var r=O(t);return e.filter(function(e){return e.node!==r||!!n&&e.callback!==n})}function B(e,t){e===`close`&&!t.parentNode&&V.off(t)}var V={on:function(e,t,n){var r=O(t);w[e]=w[e]||[],w[e].push({node:r,callback:n}),Ae(t).on(`$destroy`,function(){_.get(r)||V.off(e,t,n)})},off:function(e,t,n){if(arguments.length===1&&!Oe(arguments[0])){for(var r in t=arguments[0],w)w[r]=re(w[r],t);return}var i=w[e];i&&(w[e]=arguments.length===1?null:re(i,t,n))},pin:function(e,t){S(Te(e),`element`,`not an element`),S(Te(t),`parentElement`,`not an element`),e.data(ge,t)},push:function(e,t,n,r){return n||={},n.domOperation=r,ie(e,t,n)},enabled:function(e,t){var n=arguments.length;if(n===0)t=!!y;else if(!Te(e))t=y=!!e;else{var r=I(e);n===1?t=!v.get(r):(v.has(r)||Ae(e).on(`$destroy`,b),v.set(r,!t))}return t}};return V;function ie(e,t,a){var o=xe(a),l=D(e),u=I(l),p=u&&u.parentNode;o=M(o);var h=new f,b=x();if(we(o.addClass)&&(o.addClass=o.addClass.join(` `)),o.addClass&&!Oe(o.addClass)&&(o.addClass=null),we(o.removeClass)&&(o.removeClass=o.removeClass.join(` `)),o.removeClass&&!Oe(o.removeClass)&&(o.removeClass=null),o.from&&!De(o.from)&&(o.from=null),o.to&&!De(o.to)&&(o.to=null),!y||!u||!A(u,t,a)||
14!P(u,o))return re(),h;var S=[`enter`,`move`,`leave`].indexOf(t)>=0,C=g(),w=C||v.get(u),T=!w&&_.get(u)||{},E=!!T.state;if(!w&&(!E||T.state!==1)&&(w=!oe(u,p,t)),w)return C&&ne(h,t,`start`,r(o)),re(),C&&ne(h,t,`close`,r(o)),h;S&&H(u);var O={structural:S,element:l,event:t,addClass:o.addClass,removeClass:o.removeClass,close:re,options:o,runner:h};if(E){if(s(`skip`,O,T))return T.state===2?(re(),h):(ee(l,T,O),T.runner);if(s(`cancel`,O,T)){if(T.state===2)T.runner.end();else if(T.structural)T.close();else return ee(l,T,O),T.runner}else if(s(`join`,O,T)){if(T.state===2)te(l,O);else return L(m,l,S?t:null,o),t=O.event=T.event,o=ee(l,T,O),T.runner}}else te(l,O);var k=O.structural;if(k||=O.event===`animate`&&Object.keys(O.options.to||{}).length>0||c(O),!k)return re(),ae(u),h;var j=(T.counter||0)+1;return O.counter=j,se(u,1,O),i.$$postDigest(function(){l=D(e);var n=_.get(u),i=!n;n||={};var a=(l.parent()||[]).length>0&&(n.event===`animate`||n.structural||c(n));if(i||n.counter!==j||!a){i&&(F(l,o),N(l,o)),(i||S&&n.event!==t)&&(o.domOperation(),h.end()),a||ae(u);return}t=!n.structural&&c(n,!0)?`setClass`:n.event,se(u,2);var s=d(l,t,n.options);h.setHost(s),ne(h,t,`start`,r(o)),s.done(function(e){re(!e);var n=_.get(u);n&&n.counter===j&&ae(u),ne(h,t,`close`,r(o))})}),h;function ne(e,t,r,i){b(function(){var e=z(p,u,t);e.length?n(function(){Ce(e,function(e){e(l,r,i)}),B(r,u)}):B(r,u)}),e.progress(t,r,i)}function re(e){R(l,o),F(l,o),N(l,o),o.domOperation(),h.complete(!e)}}function H(e){var t=e.querySelectorAll(`[`+he+`]`);Ce(t,function(e){var t=parseInt(e.getAttribute(he),10),n=_.get(e);if(n)switch(t){case 2:n.runner.end();case 1:_.delete(e)}})}function ae(e){e.removeAttribute(he),_.delete(e)}function oe(e,t,n){var r=l[0].body,i=I(o),s=e===r||e.nodeName===`HTML`,c=e===i,u=!1,d=v.get(e),f,p=Ae.data(e,ge);for(p&&(t=I(p));t&&(c||=t===i,t.nodeType===1);){var m=_.get(t)||{};if(!u){var h=v.get(t);if(h===!0&&d!==!1){d=!0;break}h===!1&&(d=!1),u=m.structural}if(ke(f)||f===!0){var g=Ae.data(t,a);Y(g)&&(f=g)}if(u&&f===!1||(s||=t===r,s&&c))break;if(!c&&(p=Ae.data(t,ge),p)){t=I(p);continue}t=t.parentNode}return(!u||f)&&d!==!0&&c&&s}function se(e,t,n){n||={},n.state=t,e.setAttribute(he,t);var r=_.get(e),i=r?Se(r,n):n;_.set(e,i)}}]}],ve=function(){var e=`$$ngAnimateParentKey`,t=0,n=Object.create(null);this.$get=[function(){return{cacheKey:function(n,r,i,a){var o=n.parentNode,s=[o[e]||(o[e]=++t),r,n.getAttribute(`class`)];return i&&s.push(i),a&&s.push(a),s.join(` `)},containsCachedAnimationWithoutDuration:function(e){var t=n[e];return t&&!t.isValid||!1},flush:function(){n=Object.create(null)},count:function(e){var t=n[e];return t?t.total:0},get:function(e){var t=n[e];return t&&t.value},put:function(e,t,r){n[e]?(n[e].total++,n[e].value=t):n[e]={total:1,value:t,isValid:r}}}}]},ye=[`$animateProvider`,function(e){var t=`ng-animate-ref`,n=this.drivers=[],r=`$$animationRunner`,a=`$$animatePrepareClasses`;function o(e,t){e.data(r,t)}function s(e){e.removeData(r)}function c(e){return e.data(r)}this.$get=[`$$jqLite`,`$rootScope`,`$injector`,`$$AnimateRunner`,`$$Map`,`$$rAFScheduler`,`$$animateCache`,function(e,r,l,u,d,f,p){var m=[],h=j(e);function g(e){var t={children:[]},n,r=new d;for(n=0;n<e.length;n++){var i=e[n];r.set(i.domNode,e[n]={domNode:i.domNode,element:i.element,fn:i.fn,children:[]})}for(n=0;n<e.length;n++)a(e[n]);return o(t);function a(e){if(e.processed)return e;e.processed=!0;var n=e.domNode,i=n.parentNode;r.set(n,e);for(var o;i;){if(o=r.get(i),o){o.processed||(o=a(o));break}i=i.parentNode}return(o||t).children.push(e),e}function o(e){for(var t=[],n=[],r=0;r<e.children.length;r++)n.push(e.children[r]);var i=n.length,a=0,o=[];for(r=0;r<n.length;r++){var s=n[r];i<=0&&(i=a,a=0,t.push(o),o=[]),o.push(s),s.children.forEach(function(e){a++,n.push(e)}),i--}return o.length&&t.push(o),t}}return function(d,_,v){v=M(v);var y=[`enter`,`move`,`leave`].indexOf(_)>=0,b=new u({end:function(){j()},cancel:function(){j(!0)}});if(!n.length)return j(),b;var x=C(d.attr(`class`),C(v.addClass,v.removeClass)),S=v.tempClasses;return S&&(x+=` `+S,v.tempClasses=null),y&&d.data(a,`ng-`+_+`-prepare`),o(d,b),m.push({element:d,classes:x,event:_,structural
14:y,options:v,beforeStart:O,close:j}),d.on(`$destroy`,A),m.length>1||r.$$postDigest(function(){var t=[];Ce(m,function(e){c(e.element)?t.push(e):e.close()}),m.length=0;var n=T(t),r=[];Ce(n,function(e){var t=e.from?e.from.element:e.element,n=v.addClass;n=(n?n+` `:``)+i;var a=p.cacheKey(t[0],e.event,n,v.removeClass);r.push({element:t,domNode:I(t),fn:function(){var t,n=e.close;if(p.containsCachedAnimationWithoutDuration(a)){n();return}if(e.beforeStart(),c(e.anchors?e.from.element||e.to.element:e.element)){var r=D(e);r&&(t=r.start)}if(!t)n();else{var i=t();i.done(function(e){n(!e)}),k(e,i)}}})});for(var o=g(r),s=0;s<o.length;s++)for(var l=o[s],u=0;u<l.length;u++){var d=l[u],h=d.element;if(o[s][u]=d.fn,s===0){h.removeData(a);continue}var _=h.data(a);_&&e.addClass(h,_)}f(o)}),b;function w(e){var n=e.hasAttribute(t)?[e]:e.querySelectorAll(`[ng-animate-ref]`),r=[];return Ce(n,function(e){var n=e.getAttribute(t);n&&n.length&&r.push(e)}),r}function T(e){var n=[],r={};Ce(e,function(e,i){var a=e.element,o=I(a),s=e.event,c=[`enter`,`move`].indexOf(s)>=0,l=e.structural?w(o):[];if(l.length){var u=c?`to`:`from`;Ce(l,function(e){var n=e.getAttribute(t);r[n]=r[n]||{},r[n][u]={animationID:i,element:Ae(e)}})}else n.push(e)});var i={},a={};return Ce(r,function(t,r){var o=t.from,s=t.to;if(!o||!s){var c=o?o.animationID:s.animationID,l=c.toString();i[l]||(i[l]=!0,n.push(e[c]));return}var u=e[o.animationID],d=e[s.animationID],f=o.animationID.toString();if(!a[f]){var p=a[f]={structural:!0,beforeStart:function(){u.beforeStart(),d.beforeStart()},close:function(){u.close(),d.close()},classes:E(u.classes,d.classes),from:u,to:d,anchors:[]};p.classes.length?n.push(p):(n.push(u),n.push(d))}a[f].anchors.push({out:o.element,in:s.element})}),n}function E(e,t){e=e.split(` `),t=t.split(` `);for(var n=[],r=0;r<e.length;r++){var i=e[r];if(i.substring(0,3)!==`ng-`){for(var a=0;a<t.length;a++)if(i===t[a]){n.push(i);break}}}return n.join(` `)}function D(e){for(var t=n.length-1;t>=0;t--){var r=n[t],i=l.get(r)(e);if(i)return i}}function O(){S=(S?S+` `:``)+i,e.addClass(d,S);var t=d.data(a);t&&=(e.removeClass(d,t),null)}function k(e,t){e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element);function n(e){var n=c(e);n&&n.setHost(t)}}function A(){var e=c(d);e&&(_!==`leave`||!v.$$domOperationFired)&&e.end()}function j(t){d.off(`$destroy`,A),s(d),h(d,v),N(d,v),v.domOperation(),S&&e.removeClass(d,S),b.complete(!t)}}}]}],be=[`$animate`,function(e){return{restrict:`A`,transclude:`element`,terminal:!0,priority:550,link:function(t,n,r,i,a){var o,s;t.$watchCollection(r.ngAnimateSwap||r.for,function(t){o&&e.leave(o),s&&=(s.$destroy(),null),(t||t===0)&&a(function(t,r){o=t,s=r,e.enter(t,null,n)})})}}}],xe,Se,Ce,we,Y,Te,Ee,De,Oe,ke,Ae,je;t.module(`ngAnimate`,[],function(){je=t.noop,xe=t.copy,Se=t.extend,Ae=t.element,Ce=t.forEach,we=t.isArray,Oe=t.isString,De=t.isObject,ke=t.isUndefined,Y=t.isDefined,Ee=t.isFunction,Te=t.isElement}).info({angularVersion:`1.8.3`}).directive(`ngAnimateSwap`,be).directive(`ngAnimateChildren`,ie).factory(`$$rAFScheduler`,V).provider(`$$animateQueue`,_e).provider(`$$animateCache`,ve).provider(`$$animation`,ye).provider(`$animateCss`,fe).provider(`$$animateCssDriver`,J).provider(`$$animateJs`,pe).provider(`$$animateJsDriver`,me)})(window,window.angular),(function(e,t){var n=t.$$minErr(`$resource`),r=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;function i(e){return e!=null&&e!==``&&e!==`hasOwnProperty`&&r.test(`.`+e)}function a(e,r){if(!i(r))throw n(`badmember`,`Dotted member path "@{0}" is invalid.`,r);for(var a=r.split(`.`),o=0,s=a.length;o<s&&t.isDefined(e);o++){var c=a[o];e=e===null?void 0:e[c]}return e}function o(e,n){for(var r in n||={},t.forEach(n,function(e,t){delete n[t]}),e)e.hasOwnProperty(r)&&(r.charAt(0)!==`$`||r.charAt(1)!==`$`)&&(n[r]=e[r]);return n}t.module(`ngResource`,[`ng`]).info({angularVersion:`1.8.3`}).provider(`$resource`,function(){var e=/^https?:\/\/\[[^\]]*][^/]*/,r=this;this.defaults={stripTrailingSlashes:!0,cancellable:!1,actions:{get:{method:`GET`},save:{method:`POST`},query:{method:`GET`,isArray:!0},remove:{method:`DELETE`},delete:{method:`DELETE`}}
14},this.$get=[`$http`,`$log`,`$q`,`$timeout`,function(i,s,c,l){var u=t.noop,d=t.forEach,f=t.extend,p=t.copy,m=t.isArray,h=t.isDefined,g=t.isFunction,_=t.isNumber,v=t.$$encodeUriQuery,y=t.$$encodeUriSegment;function b(e,t){this.template=e,this.defaults=f({},r.defaults,t),this.urlParams={}}b.prototype={setUrlParams:function(t,r,i){var a=this,o=i||a.template,s,c,l=``,u=a.urlParams=Object.create(null);d(o.split(/\W/),function(e){if(e===`hasOwnProperty`)throw n(`badname`,`hasOwnProperty is not a valid parameter name.`);!RegExp(`^\\d+$`).test(e)&&e&&RegExp(`(^|[^\\\\]):`+e+`(\\W|$)`).test(o)&&(u[e]={isQueryParamValue:RegExp(`\\?.*=:`+e+`(?:\\W|$)`).test(o)})}),o=o.replace(/\\:/g,`:`),o=o.replace(e,function(e){return l=e,``}),r||={},d(a.urlParams,function(e,t){s=r.hasOwnProperty(t)?r[t]:a.defaults[t],h(s)&&s!==null?(c=e.isQueryParamValue?v(s,!0):y(s),o=o.replace(RegExp(`:`+t+`(\\W|$)`,`g`),function(e,t){return c+t})):o=o.replace(RegExp(`(/?):`+t+`(\\W|$)`,`g`),function(e,t,n){return n.charAt(0)===`/`?n:t+n})}),a.defaults.stripTrailingSlashes&&(o=o.replace(/\/+$/,``)||`/`),o=o.replace(/\/\.(?=\w+($|\?))/,`.`),t.url=l+o.replace(/\/(\\|%5C)\./,`/.`),d(r,function(e,n){a.urlParams[n]||(t.params=t.params||{},t.params[n]=e)})}};function x(e,t,v,y){var x=new b(e,y);v=f({},r.defaults.actions,v);function S(e,n){var r={};return n=f({},t,n),d(n,function(t,n){g(t)&&(t=t(e)),r[n]=t&&t.charAt&&t.charAt(0)===`@`?a(e,t.substr(1)):t}),r}function C(e){return e.resource}function w(e){o(e||{},this)}return w.prototype.toJSON=function(){var e=f({},this);return delete e.$promise,delete e.$resolved,delete e.$cancelRequest,e},d(v,function(e,t){var r=e.hasBody===!0||e.hasBody!==!1&&/^(POST|PUT|PATCH)$/i.test(e.method),a=e.timeout,v=h(e.cancellable)?e.cancellable:x.defaults.cancellable;a&&!_(a)&&(s.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete e.timeout,a=null),w[t]=function(s,h,_,y){var b={},T,E,D;switch(arguments.length){case 4:D=y,E=_;case 3:case 2:if(g(h)){if(g(s)){E=s,D=h;break}E=h,D=_}else{b=s,T=h,E=_;break}case 1:g(s)?E=s:r?T=s:b=s;break;case 0:break;default:throw n(`badargs`,`Expected up to 4 arguments [params, data, success, error], got {0} arguments`,arguments.length)}var O=this instanceof w,k=O?T:e.isArray?[]:new w(T),A={},j=e.interceptor&&e.interceptor.request||void 0,M=e.interceptor&&e.interceptor.requestError||void 0,N=e.interceptor&&e.interceptor.response||C,P=e.interceptor&&e.interceptor.responseError||c.reject,F=E?function(e){E(e,L.headers,L.status,L.statusText)}:void 0,ee=D||void 0,te,I,L;d(e,function(e,t){switch(t){default:A[t]=p(e);break;case`params`:case`isArray`:case`interceptor`:case`cancellable`:}}),!O&&v&&(te=c.defer(),A.timeout=te.promise,a&&(I=l(te.resolve,a))),r&&(A.data=T),x.setUrlParams(A,f({},S(T,e.params||{}),b),e.url);var R=c.resolve(A).then(j).catch(M).then(i);return R=R.then(function(r){var i=r.data;if(i){if(m(i)!==!!e.isArray)throw n(`badcfg`,"Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",t,e.isArray?`array`:`object`,m(i)?`array`:`object`,A.method,A.url);if(e.isArray)k.length=0,d(i,function(e){typeof e==`object`?k.push(new w(e)):k.push(e)});else{var a=k.$promise;o(i,k),k.$promise=a}}return r.resource=k,L=r,N(r)},function(e){return e.resource=k,L=e,P(e)}),R=R.finally(function(){k.$resolved=!0,!O&&v&&(k.$cancelRequest=u,l.cancel(I),te=I=A.timeout=null)}),R.then(F,ee),O?R:(k.$promise=R,k.$resolved=!1,v&&(k.$cancelRequest=ne),k);function ne(e){R.catch(u),te!==null&&te.resolve(e)}},w.prototype[`$`+t]=function(e,n,r){g(e)&&(r=n,n=e,e={});var i=w[t].call(this,e,this,n,r);return i.$promise||i}}),w}return x}]})})(window,window.angular),(function(e,t){var n=t.$$minErr(`$sanitize`),r,i,a,o,s,c,l,u,d,f;function p(){var p=!1,m=!1;this.$get=[`$$sanitizeUri`,function(e){return p=!0,m&&i(T,C),function(t){var n=[];return d(t,f(n,function(t,n){return!/^unsafe:/.test(e(t,n))})),n.join(``)}}],this.enableSvg=function(e){return s(e)?(m=e,this):m},this.addValidElements=function(e){return p||(o(e)&&(e={htmlElements:e}),M(C,e.svgElements),M(_,e.htmlVoidElements),M(T,e.htmlVoidElements),M(T,e.htmlElements)),this},this.addValidAttrs=function(e){return p||i(k,j(e,!0)),this}
vendor: 2,355 bytes, line 14
14,r=t.bind,i=t.extend,a=t.forEach,o=t.isArray,s=t.isDefined,c=t.$$lowercase,l=t.noop,d=P,f=te,u=e.Node.prototype.contains||function(e){return!!(this.compareDocumentPosition(e)&16)};var h=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,g=/([^#-~ |!])/g,_=A(`area,br,col,hr,img,wbr`),v=A(`colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr`),y=A(`rp,rt`),b=i({},y,v),x=i({},v,A(`address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul`)),S=i({},y,A(`a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var`)),C=A(`circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan`),w=A(`script,style`),T=i({},_,x,S,b),E=A(`background,cite,href,longdesc,src,xlink:href,xml:base`),D=A(`abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width`),O=A(`accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode
14-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan`,!0),k=i({},E,O,D);function A(e,t){return j(e.split(`,`),t)}function j(e,t){for(var n={},r=0;r<e.length;r++)n[t?c(e[r]):e[r]]=!0;return n}function M(e,t){t&&t.length&&i(e,j(t))}var N=(function(e,t){if(a())return o;if(!t||!t.implementation)throw n(`noinert`,`Can't create an inert html document`);var r=t.implementation.createHTMLDocument(`inert`),i=(r.documentElement||r.getDocumentElement()).querySelector(`body`);return s;function a(){try{return!!o(``)}catch{return!1}}function o(t){t=`<remove></remove>`+t;try{var n=new e.DOMParser().parseFromString(t,`text/html`).body;return n.firstChild.remove(),n}catch{return}}function s(e){return i.innerHTML=e,t.documentMode&&I(i),i}})(e,e.document);function P(e,t){e==null?e=``:typeof e!=`string`&&(e=``+e);var r=N(e);if(!r)return``;var i=5;do{if(i===0)throw n(`uinput`,`Failed to sanitize html because the input is unstable`);i--,e=r.innerHTML,r=N(e)}while(e!==r.innerHTML);for(var a=r.firstChild;a;){switch(a.nodeType){case 1:t.start(a.nodeName.toLowerCase(),F(a.attributes));break;case 3:t.chars(a.textContent)}var o;if(!(o=a.firstChild)&&(a.nodeType===1&&t.end(a.nodeName.toLowerCase()),o=L(`nextSibling`,a),!o))for(;o==null&&(a=L(`parentNode`,a),a!==r);)o=L(`nextSibling`,a),a.nodeType===1&&t.end(a.nodeName.toLowerCase());a=o}for(;a=r.firstChild;)r.removeChild(a)}function F(e){for(var t={},n=0,r=e.length;n<r;n++){var i=e[n];t[i.name]=i.value}return t}function ee(e){return e.replace(/&/g,`&`).replace(h,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return`&#`+((t-55296)*1024+(n-56320)+65536)+`;`}).replace(g,function(e){return`&#`+e.charCodeAt(0)+`;`}).replace(/</g,`<`).replace(/>/g,`>`)}function te(e,t){var n=!1,i=r(e,e.push);return{start:function(e,r){e=c(e),!n&&w[e]&&(n=e),!n&&T[e]===!0&&(i(`<`),i(e),a(r,function(n,r){var a=c(r),o=e===`img`&&a===`src`||a===`background`;k[a]===!0&&(E[a]!==!0||t(n,o))&&(i(` `),i(r),i(`="`),i(ee(n)),i(`"`))}),i(`>`))},end:function(e){e=c(e),!n&&T[e]===!0&&_[e]!==!0&&(i(`</`),i(e),i(`>`)),e==n&&(n=!1)},chars:function(e){n||i(ee(e))}}}function I(t){for(;t;){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,r=0,i=n.length;r<i;r++){var a=n[r],o=a.name.toLowerCase();(o===`xmlns:ns1`||o.lastIndexOf(`ns1:`,0)===0)&&(t.removeAttributeNode(a),r--,i--)}var s=t.firstChild;s&&I(s),t=L(`nextSibling`,t)}}function L(e,t){var r=t[e];if(r&&u.call(t,r))throw n(`elclob`,`Failed to sanitize html because the element is clobbered: {0}`,t.outerHTML||t.outerText);return r}}function m(e){var t=[];return f(t,l).chars(e),t.join(``)}t.module(`ngSanitize`,[]).provider(`$sanitize`,p).info({angularVersion:`1.8.3`}),t.module(`ngSanitize`).filter(`linky`,[`$sanitize`,function(e){var n=/((s?ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,r=/^mailto:/i,i=t.$$minErr(`linky`),a=t.isDefined,o=t.isFunction,s=t.isObject,c=t.isString;return function(t,l,u){if(t==null||t===``)return t;if(!c(t))throw i(`notstring`,`Expected string but received: {0}`,t);for(var d=o(u)?u:s(u)?function(){return u}:function(){return{}},f,p=t,h=[],g,_;f=p.match(n);)g=f[0],!f[2]&&!f[4]&&(g=(f[3]?`http://`:`mailto:`)+g),_=f.index,v(p.substr(0,_)),y(g,f[0].replace(r,``)),p=p.substring(_+f[0].length);return v(p),e(h.join(``));function v(e){e&&h.push(m(e))}function y(e,t){var n,r=d(e);for(n in h.push(`<a `),r)h.push(n+`="`+r[n]+`" `);a(l)&&!(`target`in r)&&h.push(`target="`,l,`" `),h.push(`href="`,e.replace(/"/g,`"`),`">`),v(t),h.push(`</a>`)}}}])})(window,window.angular),angular.module(`ngLocale`,[],[`$provide`,function(e){var t={ZERO:`zero`,ONE:`one`,TWO:`two`,FEW:`few`,MANY:`many`,OTHER:`other`};function n(e){e+=``;var t=e.indexOf(`.`);return t==-1?0:e.length-t-1}function r(e,t){var r=t;r===void 0&&(r=Math.min(n(e),3));var i=10**r,a=(e*i|0)%i;return{v:r,f:a}}e.value(`$locale`,{DATETIME_FORMATS:{AMPMS:[`AM`,`PM`],DAY:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],ERANAMES:[`Before Christ`,`Anno Domini`],ERAS:[`BC`,`AD`],FIRSTDAYOFWEEK:6,MONTH:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],SHORTDAY:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],SHORTMONTH:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],STANDALONEMONTH:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],WEEKENDRANGE:[5,6],fullDate:`EEEE, MMMM d, y`,longDate:`MMMM d, y`,medium:`MMM d, y h:mm:ss a`,mediumDate:`MMM d, y`,mediumTime:`h:mm:ss a`,short:`M/d/yy h:mm a`,shortDate:`M/d/yy`,shortTime:`h:mm a`},NUMBER_FORMATS:{CURRENCY_SYM:`$`,DECIMAL_SEP:`.`,GROUP_SEP:`,`,PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:`-`,negSuf:``,posPre:``,posSuf:``},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:`-¤`,negSuf:``,posPre:`¤`,posSuf:``}]},id:`en`,localeID:`en`,pluralCat:function(e,n){var i=e|0,a=r(e,n);return i==1&&a.v==0?t.ONE:t.OTHER}})}]);var rp=r(((e,t)=>{np(),t.exports=angular}));r(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?r(e,rp()):typeof define==`function`&&define.amd?define([`exports`,`angular`],r):(n||=self,r(n[`@uirouter/angularjs`]={},n.angular))})(e,(function(e,t){var n=angular,r=t&&t.module?t:n,i=function(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;
14r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))};function a(e){return function t(){if(arguments.length>=e.length)return e.apply(this,arguments);var n=Array.prototype.slice.call(arguments);return t.bind.apply(t,i([this],n,!1))}}function o(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}function s(){return o.apply(null,[].slice.call(arguments).reverse())}var c=function(e){return function(t){return t&&t[e]}},l=a(function(e,t,n){return n&&n[e]===t}),u=function(e){return s.apply(null,e.split(`.`).map(c))},d=function(e){return function(){var t=[...arguments];return!e.apply(null,t)}};function f(e,t){return function(){var n=[...arguments];return e.apply(null,n)&&t.apply(null,n)}}function p(e,t){return function(){var n=[...arguments];return e.apply(null,n)||t.apply(null,n)}}var m=function(e){return function(t){return t.reduce(function(t,n){return t&&!!e(n)},!0)}},h=function(e){return function(t){return t.reduce(function(t,n){return t||!!e(n)},!1)}},g=function(e){return function(t){return t!=null&&t.constructor===e||t instanceof e}},_=function(e){return function(t){return e===t}},v=function(e){return function(){return e}};function y(e,t){return function(n){return n[e].apply(n,t)}}function b(e){return function(t){for(var n=0;n<e.length;n++)if(e[n][0](t))return e[n][1](t)}}var x=Object.prototype.toString,S=function(e){return function(t){return typeof t===e}},C=S(`undefined`),w=d(C),T=function(e){return e===null},E=p(T,C),D=S(`function`),O=S(`number`),k=S(`string`),A=function(e){return typeof e==`object`&&!!e},j=Array.isArray,M=(function(e){return x.call(e)===`[object Date]`}),N=(function(e){return x.call(e)===`[object RegExp]`});function P(e){if(j(e)&&e.length){var t=e.slice(0,-1),n=e.slice(-1);return!(t.filter(d(k)).length||n.filter(d(D)).length)}return D(e)}var F=f(A,s(c(`then`),D)),ee=function(e){return function(){throw Error(`No implementation for ${e}. The framework specific code did not implement this method.`)}},te=function(e,t){return t.reduce(function(t,n){return t[n]=ee(`${e}.${String(n)}()`),t},{})},I={$q:void 0,$injector:void 0},L=function(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))},R=typeof self==`object`&&self.self===self&&self||typeof global==`object`&&global.global===global&&global||void 0,ne=R.angular||{},z=ne.fromJson||JSON.parse.bind(JSON),re=ne.toJson||JSON.stringify.bind(JSON),B=ne.forEach||Fe,V=Object.assign||Ie,ie=ne.equals||Le;function H(e){return e}function ae(){}function oe(e,t,n,r,i){i===void 0&&(i=!1);var a=function(t){return e()[t].bind(n())},o=function(e){return function(){return t[e]=a(e),t[e].apply(null,arguments)}};return r||=Object.keys(e()),r.reduce(function(e,t){return e[t]=i?o(t):a(t),e},t)}var se=function(e,t){return V(Object.create(e),t)},ce=a(le);function le(e,t){return e.indexOf(t)!==-1}var U=a(W);function W(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),e}var G=a(ue);function ue(e,t){return e.push(t),t}var de=function(e){return e.slice().forEach(function(t){typeof t==`function`&&t(),U(e,t)})};function K(e){var t=[...arguments].slice(1),n=V.apply(void 0,L([{}],t.reverse(),!1));return V(n,J(e||{},Object.keys(n)))}var q=function(e,t){return V(e,t)};function fe(e,t){var n=[];for(var r in e.path){if(e.path[r]!==t.path[r])break;n.push(e.path[r])}return n}function J(e,t){var n={};for(var r in e)t.indexOf(r)!==-1&&(n[r]=e[r]);return n}function pe(e,t){return Object.keys(e).filter(d(ce(t))).reduce(function(t,n){return t[n]=e[n],t},{})}function me(e,t){return ve(e,c(t))}function he(e,t){var n=j(e),r=n?[]:{},i=n?function(e){return r.push(e)}:function(e,t){return r[t]=e};return B(e,function(e,n){t(e,n)&&i(e,n)}),r}function ge(e,t){var n;return B(e,function(e,r){n||t(e,r)&&(n=e)}),n}var _e=ve;function ve(e,t,n){return n||=j(e)?[]:{},B(e,function(e,r){return n[r]=t(e,r)}),n}var ye=function(e){return Object.keys(e).map(function(t){return e[t]})},be=function(e,t){return e&&t},xe=function(e,t){return e||t},Se=function(e,t){return e.concat(t)},Ce=function(e,t){return j(t)?e.concat(t.reduce(Ce,[])):we(e,t)};function we(e,t){return e.push(t),e}var Y=function(e,t){return ce(e,t)?e:we(e,t)},Te=function(e){return e.reduce(Se,[])},Ee=function(e){return e.reduce(Ce,[])},De=ke,Oe=ke;function ke(e,t){return t===void 0&&(t=`assert failure`),function(n){var r=e(n);if(!r)throw Error(D(t)?t(n):t);return r}}var Ae=function(e){return Object.keys(e).map(function(t){return[t,e[t]]})};function je(){var e=[...arguments];if(e.length===0)return[];for(var t=e.reduce(function(e,t){return Math.min(t.length,e)},9007199254740991),n=[],r=function(t){switch(e.length){case 1:n.push([e[0][t]]);break;case 2:n.push([e[0][t],e[1][t]]);break;case 3:n.push([e[0][t],e[1][t],e[2][t]]);break;case 4:n.push([e[0][t],e[1][t],e[2][t],e[3][t]]);break;default:n.push(e.map(function(e){return e[t]}))}},i=0;i<t;i++)r(i);return n}function Me(e,t){var n,r;if(j(t)&&(n=t[0],r=t[1]),!k(n))throw Error(`invalid parameters to applyPairs`);return e[n]=r,e}function Ne(e){return e.length&&e[e.length-1]||void 0}function Pe(e,t){return t&&Object.keys(t).forEach(function(e){return delete t[e]}),t||={},V(t,e)}function Fe(e,t,n){if(j(e))return e.forEach(t,n);Object.keys(e).forEach(function(n){return t(e[n],n)})}function Ie(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(n)for(var r=Object.keys(n),i=0;i<r.length;
14i++)e[r[i]]=n[r[i]]}return e}function Le(e,t){if(e===t)return!0;if(e===null||t===null)return!1;if(e!==e&&t!==t)return!0;var n=typeof e;if(n!==typeof t||n!==`object`)return!1;var r=[e,t];if(m(j)(r))return Re(e,t);if(m(M)(r))return e.getTime()===t.getTime();if(m(N)(r))return e.toString()===t.toString();if(m(D)(r))return!0;if([D,j,M,N].map(h).reduce(function(e,t){return e||!!t(r)},!1))return!1;var i={};for(var a in e){if(!Le(e[a],t[a]))return!1;i[a]=!0}for(var a in t)if(!i[a])return!1;return!0}function Re(e,t){return e.length===t.length&&je(e,t).reduce(function(e,t){return e&&Le(t[0],t[1])},!0)}var ze=function(e){return e.catch(function(e){return 0})&&e},Be=function(e){return ze(I.$q.reject(e))},Ve=function(){function e(e){this.text=e,this.glob=e.split(`.`);var t=this.text.split(`.`).map(function(e){return e===`**`?`(?:|(?:\\.[^.]*)*)`:e===`*`?`\\.[^.]*`:`\\.`+e}).join(``);this.regexp=RegExp(`^`+t+`$`)}return e.is=function(e){return!!/[!,*]+/.exec(e)},e.fromString=function(t){return e.is(t)?new e(t):null},e.prototype.matches=function(e){return this.regexp.test(`.`+e)},e}(),He=function(){function e(e,t){e===void 0&&(e=[]),t===void 0&&(t=null),this._items=e,this._limit=t,this._evictListeners=[],this.onEvict=G(this._evictListeners)}return e.prototype.enqueue=function(e){var t=this._items;return t.push(e),this._limit&&t.length>this._limit&&this.evict(),e},e.prototype.evict=function(){var e=this._items.shift();return this._evictListeners.forEach(function(t){return t(e)}),e},e.prototype.dequeue=function(){if(this.size())return this._items.splice(0,1)[0]},e.prototype.clear=function(){var e=this._items;return this._items=[],e},e.prototype.size=function(){return this._items.length},e.prototype.remove=function(e){var t=this._items.indexOf(e);return t>-1&&this._items.splice(t,1)[0]},e.prototype.peekTail=function(){return this._items[this._items.length-1]},e.prototype.peekHead=function(){if(this.size())return this._items[0]},e}();(function(e){e[e.SUPERSEDED=2]=`SUPERSEDED`,e[e.ABORTED=3]=`ABORTED`,e[e.INVALID=4]=`INVALID`,e[e.IGNORED=5]=`IGNORED`,e[e.ERROR=6]=`ERROR`})(e.RejectType||={});var Ue=0,We=function(){function t(e,t,n){this.$id=Ue++,this.type=e,this.message=t,this.detail=n}return t.isRejectionPromise=function(e){return e&&typeof e.then==`function`&&g(t)(e._transitionRejection)},t.superseded=function(n,r){var i=new t(e.RejectType.SUPERSEDED,`The transition has been superseded by a different transition`,n);return r&&r.redirected&&(i.redirected=!0),i},t.redirected=function(e){return t.superseded(e,{redirected:!0})},t.invalid=function(n){return new t(e.RejectType.INVALID,`This transition is invalid`,n)},t.ignored=function(n){return new t(e.RejectType.IGNORED,`The transition was ignored`,n)},t.aborted=function(n){return new t(e.RejectType.ABORTED,`The transition has been aborted`,n)},t.errored=function(n){return new t(e.RejectType.ERROR,`The transition errored`,n)},t.normalize=function(e){return g(t)(e)?e:t.errored(e)},t.prototype.toString=function(){var e=function(e){return e&&e.toString!==Object.prototype.toString?e.toString():Xe(e)}(this.detail),t=this;return`Transition Rejection(\$id: ${t.$id} type: ${t.type}, message: ${t.message}, detail: ${e})`},t.prototype.toPromise=function(){return V(Be(this),{_transitionRejection:this})},t}();function Ge(e,t){return t.length<=e?t:t.substr(0,e-3)+`...`}function Ke(e,t){for(;t.length<e;)t+=` `;return t}function qe(e){return e.replace(/^([A-Z])/,function(e){return e.toLowerCase()}).replace(/([A-Z])/g,function(e){return`-`+e.toLowerCase()})}function Je(e){var t=Ye(e),n=t.match(/^(function [^ ]+\([^)]*\))/),r=n?n[1]:t,i=e.name||``;return i&&r.match(/function \(/)?`function `+i+r.substr(9):r}function Ye(e){var t=j(e)?e.slice(-1)[0]:e;return t&&t.toString()||`undefined`}function Xe(e){var t=[],n=We.isRejectionPromise,r=b([[C,v(`undefined`)],[T,v(`null`)],[F,v(`[Promise]`)],[n,function(e){return e._transitionRejection.toString()}],[function(e){return A(e)&&!j(e)&&e.constructor!==Object&&D(e.toString)},function(e){return e.toString()}],[P,Je],[v(!0),H]]);function i(e){if(A(e)){if(t.indexOf(e)!==-1)return`[circular ref]`;t.push(e)}return r(e)}return C(e)?i(e):JSON.stringify(e,function(e,t){return i(t)}).replace(/\\"/g,`"`)}
14var Ze=function(e){return function(t){if(!t)return[``,``];var n=t.indexOf(e);return n===-1?[t,``]:[t.substr(0,n),t.substr(n+1)]}},Qe=RegExp(`^(?:[a-z]+:)?//[^/]+/`),$e=function(e){return e.replace(/\/[^/]*$/,``)},et=Ze(`#`),tt=Ze(`?`),nt=Ze(`=`),rt=function(e){return e?e.replace(/^#/,``):``};function it(e){var t=RegExp(`(`+e+`)`,`g`);return function(e){return e.split(t).filter(H)}}function at(e,t){return k(Ne(e))&&k(t)?e.slice(0,-1).concat(Ne(e)+t):we(e,t)}var ot={log:ae,error:ae,table:ae};function st(e){var t=function(t){return Function.prototype.bind.call(t,e)};return{log:t(e.log),error:t(e.log),table:t(e.log)}}function ct(e){var t=e.log.bind(e);return{log:t,error:e.error?e.error.bind(e):t,table:e.table?e.table.bind(e):t}}function lt(){return typeof document<`u`&&document.documentMode&&document.documentMode===9?window&&window.console?st(window.console):ot:!console.table||!console.error?ct(console):console}var ut=lt();function dt(e){if(!e)return`ui-view (defunct)`;var t=e.creationContext?e.creationContext.name||`(root)`:`(none)`;return`[ui-view#${e.id} ${e.$type}:${e.fqn} (${e.name}@${t})]`}var ft=function(e){var t=e.viewDecl,n=t.$context.name||`(root)`;return`[View#${e.$id} from '${n}' state]: target ui-view: '${t.$uiViewName}@${t.$uiViewContextAnchor}'`};function pt(t){return O(t)?e.Category[t]:e.Category[e.Category[t]]}(function(e){e[e.RESOLVE=0]=`RESOLVE`,e[e.TRANSITION=1]=`TRANSITION`,e[e.HOOK=2]=`HOOK`,e[e.UIVIEW=3]=`UIVIEW`,e[e.VIEWCONFIG=4]=`VIEWCONFIG`})(e.Category||={});var mt=u(`$id`),ht=u(`router.$id`),gt=function(e){return`Transition #${mt(e)}-${ht(e)}`},_t=function(){function t(){this._enabled={},this.approximateDigests=0}return t.prototype._set=function(t,n){var r=this;n.length||(n=Object.keys(e.Category).map(function(e){return parseInt(e,10)}).filter(function(e){return!isNaN(e)}).map(function(t){return e.Category[t]})),n.map(pt).forEach(function(e){return r._enabled[e]=t})},t.prototype.enable=function(){var e=[...arguments];this._set(!0,e)},t.prototype.disable=function(){var e=[...arguments];this._set(!1,e)},t.prototype.enabled=function(e){return!!this._enabled[pt(e)]},t.prototype.traceTransitionStart=function(t){this.enabled(e.Category.TRANSITION)&&ut.log(`${gt(t)}: Started -> ${Xe(t)}`)},t.prototype.traceTransitionIgnored=function(t){this.enabled(e.Category.TRANSITION)&&ut.log(`${gt(t)}: Ignored <> ${Xe(t)}`)},t.prototype.traceHookInvocation=function(t,n,r){if(this.enabled(e.Category.HOOK)){var i=u(`traceData.hookType`)(r)||`internal`,a=u(`traceData.context.state.name`)(r)||u(`traceData.context`)(r)||`unknown`,o=Je(t.registeredHook.callback);ut.log(`${gt(n)}: Hook -> ${i} context: ${a}, ${Ge(200,o)}`)}},t.prototype.traceHookResult=function(t,n,r){this.enabled(e.Category.HOOK)&&ut.log(`${gt(n)}: <- Hook returned: ${Ge(200,Xe(t))}`)},t.prototype.traceResolvePath=function(t,n,r){this.enabled(e.Category.RESOLVE)&&ut.log(`${gt(r)}: Resolving ${t} (${n})`)},t.prototype.traceResolvableResolved=function(t,n){this.enabled(e.Category.RESOLVE)&&ut.log(`${gt(n)}: <- Resolved ${t} to: ${Ge(200,Xe(t.data))}`)},t.prototype.traceError=function(t,n){this.enabled(e.Category.TRANSITION)&&ut.log(`${gt(n)}: <- Rejected ${Xe(n)}, reason: ${t}`)},t.prototype.traceSuccess=function(t,n){this.enabled(e.Category.TRANSITION)&&ut.log(`${gt(n)}: <- Success ${Xe(n)}, final state: ${t.name}`)},t.prototype.traceUIViewEvent=function(t,n,r){r===void 0&&(r=``),this.enabled(e.Category.UIVIEW)&&ut.log(`ui-view: ${Ke(30,t)} ${dt(n)}${r}`)},t.prototype.traceUIViewConfigUpdated=function(t,n){this.enabled(e.Category.UIVIEW)&&this.traceUIViewEvent(`Updating`,t,` with ViewConfig from context='${n}'`)},t.prototype.traceUIViewFill=function(t,n){this.enabled(e.Category.UIVIEW)&&this.traceUIViewEvent(`Fill`,t,` with: ${Ge(200,n)}`)},t.prototype.traceViewSync=function(t){if(this.enabled(e.Category.VIEWCONFIG)){var n=`uiview component fqn`,r=`view config state (view name)`,i=t.map(function(e){var t,i=e.uiView,a=e.viewConfig,o=i&&i.fqn,s=a&&`${a.viewDecl.$context.name}: (${a.viewDecl.$name})`;return t={},t[n]=o,t[r]=s,t}).sort(function(e,t){return(e[n]||``).localeCompare(t[n]||``)});ut.table(i)}},t.prototype.traceViewServiceEvent=function(t,n){this.enabled(e.Category.VIEWCONFIG)&&ut.log(`VIEWCONFIG: ${t} ${ft(n)}`)},t.prototype.traceViewServiceUIViewEvent=function(t,n){this.enabled(e.Category.VIEWCONFIG)&&ut.log(`VIEWCONFIG: ${t} ${dt(n)}`)},t}(),vt=new _t,yt=function(){function e(e){this.pattern=/.*/,this.inherit=!0,V(this,e)}return e.prototype.is=function(e,t){return!0},e.prototype.encode=function(e,t){return e},e.prototype.decode=function(e,t){return e},e.prototype.equals=function(e,t){return e==t},e.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},e.prototype.toString=function(){return`{ParamType:${this.name}}`},e.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},e.prototype.$asArray=function(e,t){if(!e)return this;if(e===`auto`&&!t)throw Error(`'auto' array mode is for query parameters only`);return new bt(this,e)},e}();function bt(e,t){var n=this;function r(e){return j(e)?e:w(e)?[e]:[]}function i(e){switch(e.length){case 0:return;case 1:return t===`auto`?e[0]:e;default:return e}}function a(e,t){return function(n){if(j(n)&&n.length===0)return n;var a=ve(r(n),e);return t===!0?he(a,function(e){return!e}).length===0:i(a)}}
14function o(e){return function(t,n){var i=r(t),a=r(n);if(i.length!==a.length)return!1;for(var o=0;o<i.length;o++)if(!e(i[o],a[o]))return!1;return!0}}[`encode`,`decode`,`equals`,`$normalize`].forEach(function(t){var r=e[t].bind(e);n[t]=(t===`equals`?o:a)(r)}),V(this,{dynamic:e.dynamic,name:e.name,pattern:e.pattern,inherit:e.inherit,raw:e.raw,is:a(e.is.bind(e),!0),$arrayMode:t})}var xt=Object.prototype.hasOwnProperty,St=function(e){return[`value`,`type`,`squash`,`array`,`dynamic`].filter(xt.bind(e||{})).length===0};(function(e){e[e.PATH=0]=`PATH`,e[e.SEARCH=1]=`SEARCH`,e[e.CONFIG=2]=`CONFIG`})(e.DefType||={});function Ct(t,n,r){var i=r.reloadOnSearch===!1&&n===e.DefType.SEARCH||void 0,a=ge([r.dynamic,i],w);return V(w(a)?{dynamic:a}:{},wt(r&&r.params&&r.params[t]))}function wt(e){e=St(e)?{value:e}:e,t.__cacheable=!0;function t(){return e.value}var n=P(e.value)?e.value:t;return V(e,{$$fn:n})}function Tt(t,n,r,i,a){if(t.type&&n&&n.name!==`string`)throw Error(`Param '${i}' has two type configurations.`);if(t.type&&n&&n.name===`string`&&a.type(t.type))return a.type(t.type);if(n)return n;if(!t.type){var o=r===e.DefType.CONFIG?`any`:r===e.DefType.PATH?`path`:r===e.DefType.SEARCH?`query`:`string`;return a.type(o)}return t.type instanceof yt?t.type:a.type(t.type)}function Et(e,t,n){var r=e.squash;if(!t||r===!1)return!1;if(!w(r)||r==null)return n;if(r===!0||k(r))return r;throw Error(`Invalid squash policy: '${r}'. Valid policies: false, true, or arbitrary string`)}function Dt(e,t,n,r){var i=[{from:``,to:n||t?void 0:``},{from:null,to:n||t?void 0:``}],a=j(e.replace)?e.replace:[];k(r)&&a.push({from:r,to:void 0});var o=ve(a,c(`from`));return he(i,function(e){return o.indexOf(e.from)===-1}).concat(a)}var Ot=function(){function t(t,n,r,i,a){var o=Ct(t,r,a);n=Tt(o,n,r,t,i.paramTypes);var s=m();n=s?n.$asArray(s,r===e.DefType.SEARCH):n;var c=o.value!==void 0||r===e.DefType.SEARCH,l=w(o.dynamic)?!!o.dynamic:!!n.dynamic,u=w(o.raw)?!!o.raw:!!n.raw,d=Et(o,c,i.defaultSquashPolicy()),f=Dt(o,s,c,d),p=w(o.inherit)?!!o.inherit:!!n.inherit;function m(){return V({array:r===e.DefType.SEARCH&&`auto`},t.match(/\[\]$/)?{array:!0}:{},o).array}V(this,{id:t,type:n,location:r,isOptional:c,dynamic:l,raw:u,squash:d,replace:f,inherit:p,array:s,config:o})}return t.values=function(e,t){t===void 0&&(t={});for(var n={},r=0,i=e;r<i.length;r++){var a=i[r];n[a.id]=a.value(t[a.id])}return n},t.changed=function(e,t,n){return t===void 0&&(t={}),n===void 0&&(n={}),e.filter(function(e){return!e.type.equals(t[e.id],n[e.id])})},t.equals=function(e,n,r){return n===void 0&&(n={}),r===void 0&&(r={}),t.changed(e,n,r).length===0},t.validates=function(e,t){return t===void 0&&(t={}),e.map(function(e){return e.validates(t[e.id])}).reduce(be,!0)},t.prototype.isDefaultValue=function(e){return this.isOptional&&this.type.equals(this.value(),e)},t.prototype.value=function(e){var t=this;return e=function(e){for(var n=0,r=t.replace;n<r.length;n++){var i=r[n];if(i.from===e)return i.to}return e}(e),C(e)?function(){if(t._defaultValueCache)return t._defaultValueCache.defaultValue;if(!I.$injector)throw Error(`Injectable functions cannot be called at configuration time`);var e=I.$injector.invoke(t.config.$$fn);if(e!=null&&!t.type.is(e))throw Error(`Default value (${e}) for parameter '${t.id}' is not an instance of ParamType (${t.type.name})`);return t.config.$$fn.__cacheable&&(t._defaultValueCache={defaultValue:e}),e}():this.type.$normalize(e)},t.prototype.isSearch=function(){return this.location===e.DefType.SEARCH},t.prototype.validates=function(e){if((C(e)||e===null)&&this.isOptional)return!0;var t=this.type.$normalize(e);if(!this.type.is(t))return!1;var n=this.type.encode(t);return!(k(n)&&!this.type.pattern.exec(n))},t.prototype.toString=function(){return`{Param:${this.id} ${this.type} squash: '${this.squash}' optional: ${this.isOptional}}`},t}(),kt=function(){function e(){this.enqueue=!0,this.typeQueue=[],this.defaultTypes=J(e.prototype,[`hash`,`string`,`query`,`path`,`int`,`bool`,`date`,`json`,`any`]);var t=function(e,t){return new yt(V({name:t},e))};this.types=se(ve(this.defaultTypes,t),{})}return e.prototype.dispose=function(){this.types={}},e.prototype.type=function(e,t,n){if(!w(t))return this.types[e];
14if(this.types.hasOwnProperty(e))throw Error(`A type named '${e}' has already been defined.`);return this.types[e]=new yt(V({name:e},t)),n&&(this.typeQueue.push({name:e,def:n}),this.enqueue||this._flushTypeQueue()),this},e.prototype._flushTypeQueue=function(){for(;this.typeQueue.length;){var e=this.typeQueue.shift();if(e.pattern)throw Error(`You cannot override a type's .pattern at runtime.`);V(this.types[e.name],I.$injector.invoke(e.def))}},e}();function At(){var e=function(e){var t=function(e){return e==null?e:e.toString()};return V({},{encode:t,decode:t,is:g(String),pattern:/.*/,equals:function(e,t){return e==t}},e)};V(kt.prototype,{string:e({}),path:e({pattern:/[^/]*/}),query:e({}),hash:e({inherit:!1}),int:e({decode:function(e){return parseInt(e,10)},is:function(e){return!E(e)&&this.decode(e.toString())===e},pattern:/-?\d+/}),bool:e({encode:function(e){return e&&1||0},decode:function(e){return parseInt(e,10)!==0},is:g(Boolean),pattern:/0|1/}),date:e({encode:function(e){return this.is(e)?[e.getFullYear(),(`0`+(e.getMonth()+1)).slice(-2),(`0`+e.getDate()).slice(-2)].join(`-`):void 0},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):void 0},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return[`getFullYear`,`getMonth`,`getDate`].reduce(function(n,r){return n&&e[r]()===t[r]()},!0)},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/}),json:e({encode:re,decode:z,is:g(Object),equals:ie,pattern:/[^/]*/}),any:e({encode:H,decode:H,is:function(){return!0},equals:ie})})}At();var jt=function(){function e(e){e===void 0&&(e={}),V(this,e)}return e.prototype.$inherit=function(e,t,n){var r=fe(t,n),i={},a=[];for(var o in r)if(r[o]&&r[o].params){var s=r[o].params,c=Object.keys(s);if(c.length)for(var l in c)!c.hasOwnProperty(l)||s[c[l]].inherit==0||a.indexOf(c[l])>=0||(a.push(c[l]),i[c[l]]=this[c[l]])}return V({},i,e)},e}(),Mt=function(){function e(t){if(t instanceof e){var n=t;this.state=n.state,this.paramSchema=n.paramSchema.slice(),this.paramValues=V({},n.paramValues),this.resolvables=n.resolvables.slice(),this.views=n.views&&n.views.slice()}else{var r=t;this.state=r,this.paramSchema=r.parameters({inherit:!1}),this.paramValues={},this.resolvables=r.resolvables.map(function(e){return e.clone()})}}return e.prototype.clone=function(){return new e(this)},e.prototype.applyRawParams=function(e){var t=function(t){return[t.id,t.value(e[t.id])]};return this.paramValues=this.paramSchema.reduce(function(e,n){return Me(e,t(n))},{}),this},e.prototype.parameter=function(e){return ge(this.paramSchema,l(`id`,e))},e.prototype.equals=function(e,t){var n=this.diff(e,t);return n&&n.length===0},e.prototype.diff=function(e,t){if(this.state!==e.state)return!1;var n=t?t(this):this.paramSchema;return Ot.changed(n,this.paramValues,e.paramValues)},e.clone=function(e){return e.clone()},e}(),Nt=function(){function e(e,t,n,r){this._stateRegistry=e,this._identifier=t,this._identifier=t,this._params=V({},n||{}),this._options=V({},r||{}),this._definition=e.matcher.find(t,this._options.relative)}return e.prototype.name=function(){return this._definition&&this._definition.name||this._identifier},e.prototype.identifier=function(){return this._identifier},e.prototype.params=function(){return this._params},e.prototype.$state=function(){return this._definition},e.prototype.state=function(){return this._definition&&this._definition.self},e.prototype.options=function(){return this._options},e.prototype.exists=function(){return!!(this._definition&&this._definition.self)},e.prototype.valid=function(){return!this.error()},e.prototype.error=function(){var e=this.options().relative;if(!this._definition&&e){var t=e.name?e.name:e;return`Could not resolve '${this.name()}' from state '${t}'`}if(!this._definition)return`No such state '${this.name()}'`;if(!this._definition.self)return`State '${this.name()}' has an invalid definition`},e.prototype.toString=function(){return`'${this.name()}'${Xe(this.params())}`},e.prototype.withState=function(t){return new e(this._stateRegistry,t,this._params,this._options)},e.prototype.withParams=function(t,n){n===void 0&&(n=!1);var r=n?t:V({},this._params,t);return new e(this._stateRegistry,this._identifier,r,this._options)},e.prototype.withOptions=function(t,n){n===void 0&&(n=!1);var r=n?t:V({},this._options,t);return new e(this._stateRegistry,this._identifier,this._params,r)},e.isDef=function(e){return e&&e.state&&(k(e.state)||A(e.state)&&k(e.state.name))},e}(),Pt=function(){function e(){}
14return e.makeTargetState=function(e,t){var n=Ne(t).state;return new Nt(e,n,t.map(c(`paramValues`)).reduce(q,{}),{})},e.buildPath=function(e){var t=e.params();return e.$state().path.map(function(e){return new Mt(e).applyRawParams(t)})},e.buildToPath=function(t,n){var r=e.buildPath(n);return n.options().inherit?e.inheritParams(t,r,Object.keys(n.params())):r},e.applyViewConfigs=function(t,n,r){n.filter(function(e){return ce(r,e.state)}).forEach(function(r){var i=ye(r.state.views||{}),a=e.subPath(n,function(e){return e===r});r.views=i.map(function(e){return t.createViewConfig(a,e)}).reduce(Se,[])})},e.inheritParams=function(e,t,n){n===void 0&&(n=[]);function r(e,t){var n=ge(e,l(`state`,t));return V({},n&&n.paramValues)}var i=e.map(function(e){return e.paramSchema}).reduce(Se,[]).filter(function(e){return!e.inherit}).map(c(`id`));function a(t){var a=V({},t&&t.paramValues),o=J(a,n);a=pe(a,n);var s=pe(r(e,t.state)||{},i),c=V(a,s,o);return new Mt(t.state).applyRawParams(c)}return t.map(a)},e.treeChanges=function(t,n,r){for(var i=Math.min(t.length,n.length),a=0,o=function(t,n){return t.equals(n,e.nonDynamicParams)};a<i&&t[a].state!==r&&o(t[a],n[a]);)a++;function s(e,t){var r=e.clone();return r.paramValues=n[t].paramValues,r}var c=t,l=c.slice(0,a),u=c.slice(a),d,f,p=l.map(s);return d=n.slice(a),f=p.concat(d),{from:c,to:f,retained:l,retainedWithToParams:p,exiting:u,entering:d}},e.matching=function(e,t,n){var r=!1;return je(e,t).reduce(function(e,t){var i=t[0],a=t[1];return r||=!i.equals(a,n),r?e:e.concat(i)},[])},e.equals=function(t,n,r){return t.length===n.length&&e.matching(t,n,r).length===t.length},e.subPath=function(e,t){var n=ge(e,t),r=e.indexOf(n);return r===-1?void 0:e.slice(0,r+1)},e.nonDynamicParams=function(e){return e.state.parameters({inherit:!1}).filter(function(e){return!e.dynamic})},e.paramValues=function(e){return e.reduce(function(e,t){return V(e,t.paramValues)},{})},e}(),Ft={when:{LAZY:`LAZY`,EAGER:`EAGER`},async:{WAIT:`WAIT`,NOWAIT:`NOWAIT`}},It={when:`LAZY`,async:`WAIT`},Lt=function(){function e(t,n,r,i,a){if(this.resolved=!1,this.promise=void 0,t instanceof e)V(this,t);else if(D(n)){if(E(t))throw Error(`new Resolvable(): token argument is required`);if(!D(n))throw Error(`new Resolvable(): resolveFn argument must be a function`);this.token=t,this.policy=i,this.resolveFn=n,this.deps=r||[],this.data=a,this.resolved=a!==void 0,this.promise=this.resolved?I.$q.when(this.data):void 0}else if(A(t)&&t.token&&(t.hasOwnProperty(`resolveFn`)||t.hasOwnProperty(`data`))){var o=t;return new e(o.token,o.resolveFn,o.deps,o.policy,o.data)}}return e.prototype.getPolicy=function(e){var t=this.policy||{},n=e&&e.resolvePolicy||{};return{when:t.when||n.when||It.when,async:t.async||n.async||It.async}},e.prototype.resolve=function(e,t){var n=this,r=I.$q,i=function(){return r.all(e.getDependencies(n).map(function(n){return n.get(e,t)}))},a=function(e){return n.resolveFn.apply(null,e)},o=e.findNode(this),s=o&&o.state,c=this.getPolicy(s).async,l=D(c)?c:H,u=function(e){return n.data=e,n.resolved=!0,n.resolveFn=null,vt.traceResolvableResolved(n,t),n.data};return this.promise=r.when().then(i).then(a).then(l).then(u)},e.prototype.get=function(e,t){return this.promise||this.resolve(e,t)},e.prototype.toString=function(){return`Resolvable(token: ${Xe(this.token)}, requires: [${this.deps.map(Xe)}])`},e.prototype.clone=function(){return new e(this)},e.fromData=function(t,n){return new e(t,function(){return n},null,null,n)},e}(),Rt=Ft.when,zt=[Rt.EAGER,Rt.LAZY],Bt=[Rt.EAGER],Vt=`Native Injector`,Ht=function(){function e(e){this._path=e}return e.prototype.getTokens=function(){return this._path.reduce(function(e,t){return e.concat(t.resolvables.map(function(e){return e.token}))},[]).reduce(Y,[])},e.prototype.getResolvable=function(e){return Ne(this._path.map(function(e){return e.resolvables}).reduce(Se,[]).filter(function(t){return t.token===e}))},e.prototype.getPolicy=function(e){var t=this.findNode(e);return e.getPolicy(t.state)},e.prototype.subContext=function(t){return new e(Pt.subPath(this._path,function(e){return e.state===t}))},e.prototype.addResolvables=function(e,t){var n=ge(this._path,l(`state`,t)),r=e.map(function(e){return e.token});n.resolvables=n.resolvables.filter(function(e){return r.indexOf(e.token)===-1}).concat(e)},e.prototype.resolvePath=function(e,t){var n=this;e===void 0&&(e=`LAZY`);var r=(ce(zt,e)?e:`LAZY`)===Ft.when.EAGER?Bt:zt;vt.traceResolvePath(this._path,e,t);var i=function(e,t){return function(r){return ce(e,n.getPolicy(r)[t])}},a=this._path.reduce(function(e,a){var o=a.resolvables.filter(i(r,`when`)),s=o.filter(i([`NOWAIT`],`async`)),c=o.filter(d(i([`NOWAIT`],`async`))),l=n.subContext(a.state),u=function(e){return e.get(l,t).then(function(t){return{token:e.token,value:t}})};
14return s.forEach(u),e.concat(c.map(u))},[]);return I.$q.all(a)},e.prototype.injector=function(){return this._injector||=new Ut(this)},e.prototype.findNode=function(e){return ge(this._path,function(t){return ce(t.resolvables,e)})},e.prototype.getDependencies=function(e){var t=this,n=this.findNode(e),r=(Pt.subPath(this._path,function(e){return e===n})||this._path).reduce(function(e,t){return e.concat(t.resolvables)},[]).filter(function(t){return t!==e});return e.deps.map(function(e){var n=r.filter(function(t){return t.token===e});if(n.length)return Ne(n);var i=t.injector().getNative(e);if(C(i))throw Error(`Could not find Dependency Injection token: `+Xe(e));return new Lt(e,function(){return i},[],i)})},e}(),Ut=function(){function e(e){this.context=e,this.native=this.get(Vt)||I.$injector}return e.prototype.get=function(e){var t=this.context.getResolvable(e);if(t){if(this.context.getPolicy(t).async===`NOWAIT`)return t.get(this.context);if(!t.resolved)throw Error(`Resolvable async .get() not complete:`+Xe(t.token));return t.data}return this.getNative(e)},e.prototype.getAsync=function(e){var t=this.context.getResolvable(e);return t?t.get(this.context):I.$q.when(this.native.get(e))},e.prototype.getNative=function(e){return this.native&&this.native.get(e)},e}(),Wt=function(e){if(!k(e))return!1;var t=e.charAt(0)===`^`;return{val:t?e.substring(1):e,root:t}};function Gt(e){return e.name}function Kt(e){return e.self.$$state=function(){return e},e.self}function qt(e){return e.parent&&e.parent.data&&(e.data=e.self.data=se(e.parent.data,e.data)),e.data}var Jt=function(e,t){return function(n){var r=n.self;if(r&&r.url&&r.name&&r.name.match(/\.\*\*$/)){var i={};Pe(r,i),i.url+=`{remainder:any}`,r=i}var a=n.parent,o=Wt(r.url),s=o?e.compile(o.val,{state:r}):r.url;if(!s)return null;if(!e.isMatcher(s))throw Error(`Invalid url '${s}' in state '${n}'`);return o&&o.root?s:(a&&a.navigable||t()).url.append(s)}},Yt=function(e){return function(t){return!e(t)&&t.url?t:t.parent?t.parent.navigable:null}},Xt=function(e){return function(t){var n=function(n,r){return e.fromConfig(r,null,t.self)},r=t.url&&t.url.parameters({inherit:!1})||[],i=ye(_e(pe(t.params||{},r.map(c(`id`))),n));return r.concat(i).map(function(e){return[e.id,e]}).reduce(Me,{})}};function Zt(e){return e.parent?e.parent.path.concat(e):[e]}function Qt(e){var t=e.parent?V({},e.parent.includes):{};return t[e.name]=!0,t}function $t(e){var t=function(e,t){return Object.keys(e||{}).map(function(n){return{token:n,val:e[n],deps:void 0,policy:t[n]}})},n=function(e){var t=I.$injector;return e.$inject||t&&t.annotate(e,t.strictDi)||`deferred`},r=function(e){return!!(e.token&&e.resolveFn)},i=function(e){return!!((e.provide||e.token)&&(e.useValue||e.useFactory||e.useExisting||e.useClass))},a=function(e){return!!(e&&e.val&&(k(e.val)||j(e.val)||D(e.val)))},o=function(e){return e.provide||e.token},l=b([[c(`resolveFn`),function(e){return new Lt(o(e),e.resolveFn,e.deps,e.policy)}],[c(`useFactory`),function(e){return new Lt(o(e),e.useFactory,e.deps||e.dependencies,e.policy)}],[c(`useClass`),function(e){return new Lt(o(e),function(){return new e.useClass},[],e.policy)}],[c(`useValue`),function(e){return new Lt(o(e),function(){return e.useValue},[],e.policy,e.useValue)}],[c(`useExisting`),function(e){return new Lt(o(e),H,[e.useExisting],e.policy)}]]),u=b([[s(c(`val`),k),function(e){return new Lt(e.token,H,[e.val],e.policy)}],[s(c(`val`),j),function(e){return new Lt(e.token,Ne(e.val),e.val.slice(0,-1),e.policy)}],[s(c(`val`),D),function(e){return new Lt(e.token,e.val,n(e.val),e.policy)}]]),d=b([[g(Lt),function(e){return e}],[r,l],[i,l],[a,u],[v(!0),function(e){throw Error(`Invalid resolve value: `+Xe(e))}]]),f=e.resolve;return(j(f)?f:t(f,e.resolvePolicy||{})).map(d)}var en=function(){function e(e,t){this.matcher=e;var n=this,r=function(){return e.find(``)},i=function(e){return e.name===``};function a(t){return i(t)?null:e.find(n.parentName(t))||r()}this.builders={name:[Gt],self:[Kt],parent:[a],data:[qt],url:[Jt(t,r)],navigable:[Yt(i)],params:[Xt(t.paramFactory)],views:[],path:[Zt],includes:[Qt],resolvables:[$t]}}return e.prototype.builder=function(e,t){var n=this.builders,r=n[e]||[];if(k(e)&&!w(t))return r.length>1?r:r[0];if(k(e)&&D(t))return n[e]=r,n[e].push(t),function(){return n[e].splice(n[e].indexOf(t,1))&&null}},e.prototype.build=function(e){var t=this,n=t.matcher,r=t.builders,i=this.parentName(e);
14if(i&&!n.find(i,void 0,!1))return null;for(var a in r)r.hasOwnProperty(a)&&(e[a]=r[a].reduce(function(e,t){return function(n){return t(n,e)}},ae)(e));return e},e.prototype.parentName=function(e){var t=e.name||``,n=t.split(`.`);if(n.pop()===`**`&&n.pop(),n.length){if(e.parent)throw Error(`States that specify the 'parent:' property should not have a '.' in their name (${t})`);return n.join(`.`)}return e.parent?k(e.parent)?e.parent:e.parent.name:``},e.prototype.name=function(e){var t=e.name;if(t.indexOf(`.`)!==-1||!e.parent)return t;var n=k(e.parent)?e.parent:e.parent.name;return n?n+`.`+t:t},e}(),tn=function(){function e(t){return e.create(t||{})}return e.create=function(t){t=e.isStateClass(t)?new t:t;var n=se(se(t,e.prototype));return t.$$state=function(){return n},n.self=t,n.__stateObjectCache={nameGlob:Ve.fromString(n.name)},n},e.prototype.is=function(e){return this===e||this.self===e||this.fqn()===e},e.prototype.fqn=function(){if(!this.parent||!(this.parent instanceof this.constructor))return this.name;var e=this.parent.fqn();return e?e+`.`+this.name:this.name},e.prototype.root=function(){return this.parent&&this.parent.root()||this},e.prototype.parameters=function(e){return e=K(e,{inherit:!0,matchingKeys:null}),(e.inherit&&this.parent&&this.parent.parameters()||[]).concat(ye(this.params)).filter(function(t){return!e.matchingKeys||e.matchingKeys.hasOwnProperty(t.id)})},e.prototype.parameter=function(e,t){return t===void 0&&(t={}),this.url&&this.url.parameter(e,t)||ge(ye(this.params),l(`id`,e))||t.inherit&&this.parent&&this.parent.parameter(e)},e.prototype.toString=function(){return this.fqn()},e.isStateClass=function(e){return D(e)&&e.__uiRouterState===!0},e.isStateDeclaration=function(e){return D(e.$$state)},e.isState=function(e){return A(e.__stateObjectCache)},e}(),nn=function(){function e(e){this._states=e}return e.prototype.isRelative=function(e){return e||=``,e.indexOf(`.`)===0||e.indexOf(`^`)===0},e.prototype.find=function(e,t,n){if(n===void 0&&(n=!0),e||e===``){var r=k(e),i=r?e:e.name;this.isRelative(i)&&(i=this.resolvePath(i,t));var a=this._states[i];if(a&&(r||!r&&(a===e||a.self===e)))return a;if(r&&n){var o=ye(this._states).filter(function(e){return e.__stateObjectCache.nameGlob&&e.__stateObjectCache.nameGlob.matches(i)});return o.length>1&&ut.error(`stateMatcher.find: Found multiple matches for ${i} using glob: `,o.map(function(e){return e.name})),o[0]}}},e.prototype.resolvePath=function(e,t){if(!t)throw Error(`No reference point given for path '${e}'`);for(var n=this.find(t),r=e.split(`.`),i=r.length,a=0,o=n;a<i;a++){if(r[a]===``&&a===0){o=n;continue}
14if(r[a]===`^`){if(!o.parent)throw Error(`Path '${e}' not valid for state '${n.name}'`);o=o.parent;continue}break}var s=r.slice(a).join(`.`);return o.name+(o.name&&s?`.`:``)+s},e}(),rn=function(){function e(e,t,n,r){this.router=e,this.states=t,this.builder=n,this.listeners=r,this.queue=[]}return e.prototype.dispose=function(){this.queue=[]},e.prototype.register=function(e){var t=this.queue,n=tn.create(e),r=n.name;if(!k(r))throw Error(`State must have a valid name`);if(this.states.hasOwnProperty(r)||ce(t.map(c(`name`)),r))throw Error(`State '${r}' is already defined`);return t.push(n),this.flush(),n},e.prototype.flush=function(){for(var e=this,t=this,n=t.queue,r=t.states,i=t.builder,a=[],o=[],s={},c=function(t){return e.states.hasOwnProperty(t)&&e.states[t]},l=function(){a.length&&e.listeners.forEach(function(e){return e(`registered`,a.map(function(e){return e.self}))})};n.length>0;){var u=n.shift(),d=u.name,f=i.build(u),p=o.indexOf(u);if(f){var m=c(d);if(m&&m.name===d)throw Error(`State '${d}' is already defined`);var h=c(d+`.**`);h&&this.router.stateRegistry.deregister(h),r[d]=u,this.attachRoute(u),p>=0&&o.splice(p,1),a.push(u);continue}var g=s[d];if(s[d]=n.length,p>=0&&g===n.length)return n.push(u),l(),r;p<0&&o.push(u),n.push(u)}return l(),r},e.prototype.attachRoute=function(e){if(!e.abstract&&e.url){var t=this.router.urlService.rules;t.rule(t.urlRuleFactory.create(e))}},e}(),an=function(){function e(e){this.router=e,this.states={},this.listeners=[],this.matcher=new nn(this.states),this.builder=new en(this.matcher,e.urlMatcherFactory),this.stateQueue=new rn(e,this.states,this.builder,this.listeners),this._registerRoot()}return e.prototype._registerRoot=function(){var e={name:``,url:`^`,views:null,params:{"#":{value:null,type:`hash`,dynamic:!0}},abstract:!0},t=this._root=this.stateQueue.register(e);t.navigable=null},e.prototype.dispose=function(){var e=this;this.stateQueue.dispose(),this.listeners=[],this.get().forEach(function(t){return e.get(t)&&e.deregister(t)})},e.prototype.onStatesChanged=function(e){return this.listeners.push(e),function(){U(this.listeners)(e)}.bind(this)},e.prototype.root=function(){return this._root},e.prototype.register=function(e){return this.stateQueue.register(e)},e.prototype._deregisterTree=function(e){var t=this,n=this.get().map(function(e){return e.$$state()}),r=function(e){var t=n.filter(function(t){return e.indexOf(t.parent)!==-1});return t.length===0?t:t.concat(r(t))},i=r([e]),a=[e].concat(i).reverse();return a.forEach(function(e){var n=t.router.urlService.rules;n.rules().filter(l(`state`,e)).forEach(function(e){return n.removeRule(e)}),delete t.states[e.name]}),a},e.prototype.deregister=function(e){var t=this.get(e);if(!t)throw Error(`Can't deregister state; not found: `+e);var n=this._deregisterTree(t.$$state());return this.listeners.forEach(function(e){return e(`deregistered`,n.map(function(e){return e.self}))}),n},e.prototype.get=function(e,t){var n=this;if(arguments.length===0)return Object.keys(this.states).map(function(e){return n.states[e].self});var r=this.matcher.find(e,t);return r&&r.self||null},e.prototype.decorator=function(e,t){return this.builder.builder(e,t)},e}();(function(e){e[e.CREATE=0]=`CREATE`,e[e.BEFORE=1]=`BEFORE`,e[e.RUN=2]=`RUN`,e[e.SUCCESS=3]=`SUCCESS`,e[e.ERROR=4]=`ERROR`})(e.TransitionHookPhase||={}),(function(e){e[e.TRANSITION=0]=`TRANSITION`,e[e.STATE=1]=`STATE`})(e.TransitionHookScope||={});var on={current:ae,transition:null,traceData:{},bind:null},sn=function(){function t(t,n,r,i){var a=this;this.transition=t,this.stateContext=n,this.registeredHook=r,this.options=i,this.isSuperseded=function(){return a.type.hookPhase===e.TransitionHookPhase.RUN&&!a.options.transition.isActive()},this.options=K(i,on),this.type=r.eventType}return t.chain=function(e,t){return e.reduce(function(e,t){return e.then(function(){return t.invokeHook()})},t||I.$q.when())},t.invokeHooks=function(e,n){for(var r=0;r<e.length;r++){var i=e[r].invokeHook();if(F(i)){var a=e.slice(r+1);return t.chain(a,i).then(n)}}return n()},t.runAllHooks=function(e){e.forEach(function(e){return e.invokeHook()})},t.prototype.logError=function(e){this.transition.router.stateService.defaultErrorHandler()(e)},t.prototype.invokeHook=function(){var e=this,t=this.registeredHook;if(!t._deregistered){var n=this.getNotCurrentRejection();if(n)return n;var r=this.options;vt.traceHookInvocation(this,this.transition,r);var i=function(){return t.callback.call(r.bind,e.transition,e.stateContext)}
14,a=function(e){return We.normalize(e).toPromise()},o=function(n){return t.eventType.getErrorHandler(e)(n)},s=function(n){return t.eventType.getResultHandler(e)(n)};try{var c=i();return!this.type.synchronous&&F(c)?c.catch(a).then(s,o):s(c)}catch(e){return o(We.normalize(e))}finally{t.invokeLimit&&++t.invokeCount>=t.invokeLimit&&t.deregister()}}},t.prototype.handleHookResult=function(e){var t=this,n=this.getNotCurrentRejection();if(n)return n;if(F(e))return e.then(function(e){return t.handleHookResult(e)});if(vt.traceHookResult(e,this.transition,this.options),e===!1)return We.aborted(`Hook aborted transition`).toPromise();if(g(Nt)(e))return We.redirected(e).toPromise()},t.prototype.getNotCurrentRejection=function(){var e=this.transition.router;if(e._disposed)return We.aborted(`UIRouter instance #${e.$id} has been stopped (disposed)`).toPromise();if(this.transition._aborted)return We.aborted().toPromise();if(this.isSuperseded())return We.superseded(this.options.current()).toPromise()},t.prototype.toString=function(){var e=this,t=e.options,n=e.registeredHook;return`${u(`traceData.hookType`)(t)||`internal`} context: ${u(`traceData.context.state.name`)(t)||u(`traceData.context`)(t)||`unknown`}, ${Ge(200,Ye(n.callback))}`},t.HANDLE_RESULT=function(e){return function(t){return e.handleHookResult(t)}},t.LOG_REJECTED_RESULT=function(e){return function(t){F(t)&&t.catch(function(t){return e.logError(We.normalize(t))})}},t.LOG_ERROR=function(e){return function(t){return e.logError(t)}},t.REJECT_ERROR=function(e){return function(e){return Be(e)}},t.THROW_ERROR=function(e){return function(e){throw e}},t}();function cn(e,t,n){var r=k(t)?[t]:t;function i(e){for(var t=r,n=0;n<t.length;n++){var i=new Ve(t[n]);if(i&&i.matches(e.name)||!i&&t[n]===e.name)return!0}return!1}return!!(D(r)?r:i)(e,n)}var ln=function(){function t(e,t,n,r,i,a){a===void 0&&(a={}),this.tranSvc=e,this.eventType=t,this.callback=n,this.matchCriteria=r,this.removeHookFromRegistry=i,this.invokeCount=0,this._deregistered=!1,this.priority=a.priority||0,this.bind=a.bind||null,this.invokeLimit=a.invokeLimit}return t.prototype._matchingNodes=function(e,t,n){if(t===!0)return e;var r=e.filter(function(e){return cn(e.state,t,n)});return r.length?r:null},t.prototype._getDefaultMatchCriteria=function(){return _e(this.tranSvc._pluginapi._getPathTypes(),function(){return!0})},t.prototype._getMatchingNodes=function(t,n){var r=this,i=V(this._getDefaultMatchCriteria(),this.matchCriteria);return ye(this.tranSvc._pluginapi._getPathTypes()).reduce(function(a,o){var s=o.scope===e.TransitionHookScope.STATE,c=t[o.name]||[],l=s?c:[Ne(c)];return a[o.name]=r._matchingNodes(l,i[o.name],n),a},{})},t.prototype.matches=function(e,t){var n=this._getMatchingNodes(e,t);return ye(n).every(H)?n:null},t.prototype.deregister=function(){this.removeHookFromRegistry(this),this._deregistered=!0},t}();function un(e,t,n){var r=e._registeredHooks=e._registeredHooks||{},i=r[n.name]=[],a=U(i);e[n.name]=o;function o(e,r,o){o===void 0&&(o={});var s=new ln(t,n,r,e,a,o);return i.push(s),s.deregister.bind(s)}return o}var dn=function(){function t(e){this.transition=e}return t.prototype.buildHooksForPhase=function(e){var t=this;return this.transition.router.transitionService._pluginapi._getEvents(e).map(function(e){return t.buildHooks(e)}).reduce(Se,[]).filter(H)},t.prototype.buildHooks=function(t){var n=this.transition,r=n.treeChanges(),i=this.getMatchingHooks(t,r,n);if(!i)return[];var a={transition:n,current:n.options().current};return i.map(function(i){return i.matches(r,n)[t.criteriaMatchPath.name].map(function(r){var o=V({bind:i.bind,traceData:{hookType:t.name,context:r}},a);return{hook:i,node:r,transitionHook:new sn(n,t.criteriaMatchPath.scope===e.TransitionHookScope.STATE?r.state.self:null,i,o)}})}).reduce(Se,[]).sort(fn(t.reverseSort)).map(function(e){return e.transitionHook})},t.prototype.getMatchingHooks=function(t,n,r){var i=t.hookPhase===e.TransitionHookPhase.CREATE,a=this.transition.router.transitionService;return(i?[a]:[this.transition,a]).map(function(e){return e.getHooks(t.name)}).filter(De(j,`broken event named: ${t.name}`)).reduce(Se,[]).filter(function(e){return e.matches(n,r)})},t}();function fn(e){return e===void 0&&(e=!1),function(t,n){var r=e?-1:1,i=(t.node.state.path.length-n.node.state.path.length)*r;return i===0?n.hook.priority-t.hook.priority:i}}var pn=c(`self`),mn=function(){function t(t,n,r){var i=this;if(this._deferred=I.$q.defer(),this.promise=this._deferred.promise,this._registeredHooks={},this._hookBuilder=new dn(this),this.isActive=function(){return i.router.globals.transition===i},this.router=r,this._targetState=n,!n.valid())throw Error(n.error());this._options=V({current:v(this)},n.options()),this.$id=r.transitionService._transitionCount++;var a=Pt.buildToPath(t,n);this._treeChanges=Pt.treeChanges(t,a,this._options.reloadState),this.createTransitionHookRegFns();var o=this._hookBuilder.buildHooksForPhase(e.TransitionHookPhase.CREATE);sn.invokeHooks(o,function(){return null}),this.applyViewConfigs(r)}return t.prototype.onBefore=function(e,t,n){},t.prototype.onStart=function(e,t,n){},t.prototype.onExit=function(e,t,n){},t.prototype.onRetain=function(e,t,n){},t.prototype.onEnter=function(e,t,n){},t.prototype.onFinish=function(e,t,n){},t.prototype.onSuccess=function(e,t,n){},t.prototype.onError=function(e,t,n){},t.prototype.createTransitionHookRegFns=function(){var t=this;this.router.transitionService._pluginapi._getEvents().filter(function(t){return t.hookPhase!==e.TransitionHookPhase.CREATE}
14).forEach(function(e){return un(t,t.router.transitionService,e)})},t.prototype.getHooks=function(e){return this._registeredHooks[e]},t.prototype.applyViewConfigs=function(e){var t=this._treeChanges.entering.map(function(e){return e.state});Pt.applyViewConfigs(e.transitionService.$view,this._treeChanges.to,t)},t.prototype.$from=function(){return Ne(this._treeChanges.from).state},t.prototype.$to=function(){return Ne(this._treeChanges.to).state},t.prototype.from=function(){return this.$from().self},t.prototype.to=function(){return this.$to().self},t.prototype.targetState=function(){return this._targetState},t.prototype.is=function(e){return e instanceof t?this.is({to:e.$to().name,from:e.$from().name}):!(e.to&&!cn(this.$to(),e.to,this)||e.from&&!cn(this.$from(),e.from,this))},t.prototype.params=function(e){return e===void 0&&(e=`to`),Object.freeze(this._treeChanges[e].map(c(`paramValues`)).reduce(q,{}))},t.prototype.paramsChanged=function(){var e=this.params(`from`),t=this.params(`to`),n=[].concat(this._treeChanges.to,this._treeChanges.from).map(function(e){return e.paramSchema}).reduce(Ce,[]).reduce(Y,[]);return Ot.changed(n,e,t).reduce(function(e,n){return e[n.id]=t[n.id],e},{})},t.prototype.injector=function(e,t){t===void 0&&(t=`to`);var n=this._treeChanges[t];return e&&(n=Pt.subPath(n,function(t){return t.state===e||t.state.name===e})),new Ht(n).injector()},t.prototype.getResolveTokens=function(e){return e===void 0&&(e=`to`),new Ht(this._treeChanges[e]).getTokens()},t.prototype.addResolvable=function(e,t){t===void 0&&(t=``),e=g(Lt)(e)?e:new Lt(e);var n=typeof t==`string`?t:t.name,r=this._treeChanges.to,i=ge(r,function(e){return e.state.name===n});new Ht(r).addResolvables([e],i.state)},t.prototype.redirectedFrom=function(){return this._options.redirectedFrom||null},t.prototype.originalTransition=function(){var e=this.redirectedFrom();return e&&e.originalTransition()||this},t.prototype.options=function(){return this._options},t.prototype.entering=function(){return ve(this._treeChanges.entering,c(`state`)).map(pn)},t.prototype.exiting=function(){return ve(this._treeChanges.exiting,c(`state`)).map(pn).reverse()},t.prototype.retained=function(){return ve(this._treeChanges.retained,c(`state`)).map(pn)},t.prototype.views=function(e,t){e===void 0&&(e=`entering`);var n=this._treeChanges[e];return n=t?n.filter(l(`state`,t)):n,n.map(c(`views`)).filter(H).reduce(Se,[])},t.prototype.treeChanges=function(e){return e?this._treeChanges[e]:this._treeChanges},t.prototype.redirect=function(e){for(var t=1,n=this;(n=n.redirectedFrom())!=null;)if(++t>20)throw Error(`Too many consecutive Transition redirects (20+)`);var r={redirectedFrom:this,source:`redirect`};this.options().source===`url`&&e.options().location!==!1&&(r.location=`replace`);var i=V({},this.options(),e.options(),r);e=e.withOptions(i,!0);var a=this.router.transitionService.create(this._treeChanges.from,e),o=this._treeChanges.entering,s=a._treeChanges.entering;return Pt.matching(s,o,Pt.nonDynamicParams).filter(d(function(e){return function(t){return e&&t.state.includes[e.name]}}(e.options().reloadState))).forEach(function(e,t){e.resolvables=o[t].resolvables}),a},t.prototype._changedParams=function(){var e=this._treeChanges;if(!this._options.reload&&!(e.exiting.length||e.entering.length)&&e.to.length===e.from.length&&!je(e.to,e.from).map(function(e){return e[0].state!==e[1].state}).reduce(xe,!1)){var t=e.to.map(function(e){return e.paramSchema}),n=[e.to,e.from].map(function(e){return e.map(function(e){return e.paramValues})}),r=n[0],i=n[1];return je(t,r,i).map(function(e){var t=e[0],n=e[1],r=e[2];return Ot.changed(t,n,r)}).reduce(Se,[])}},t.prototype.dynamic=function(){var e=this._changedParams();return e?e.map(function(e){return e.dynamic}).reduce(xe,!1):!1},t.prototype.ignored=function(){return!!this._ignoredReason()},t.prototype._ignoredReason=function(){var e=this.router.globals.transition,t=this._options.reloadState,n=function(e,n){if(e.length!==n.length)return!1;var r=Pt.matching(e,n);return e.length===r.filter(function(e){return!t||!e.state.includes[t.name]}).length},r=this.treeChanges(),i=e&&e.treeChanges();if(i&&n(i.to,r.to)&&n(i.exiting,r.exiting))return`SameAsPending`;if(r.exiting.length===0&&r.entering.length===0&&n(r.from,r.to))return`SameAsCurrent`},t.prototype.run=function(){var t=this,n=sn.runAllHooks,r=function(e){return t._hookBuilder.buildHooksForPhase(e)},i=function(){vt.traceSuccess(t.$to(),t),t.success=!0,t._deferred.resolve(t.to()),n(r(e.TransitionHookPhase.SUCCESS))},a=function(i){vt.traceError(i,t),t.success=!1,t._deferred.reject(i),t._error=i,n(r(e.TransitionHookPhase.ERROR))},o=function(){var t=r(e.TransitionHookPhase.RUN);return sn.invokeHooks(t,function(){return I.$q.when(void 0)})},s=function(){var e=t.router.globals;return e.lastStartedTransitionId=t.$id,e.transition=t,e.transitionHistory.enqueue(t),vt.traceTransitionStart(t),I.$q.when(void 0)},c=r(e.TransitionHookPhase.BEFORE);return sn.invokeHooks(c,s).then(o).then(i,a),this.promise},t.prototype.valid=function(){return!this.error()||this.success!==void 0},t.prototype.abort=function(){C(this.success)&&(this._aborted=!0)},t.prototype.error=function(){var e=this.$to();
14if(e.self.abstract)return We.invalid(`Cannot transition to abstract state '${e.name}'`);var t=e.parameters(),n=this.params(),r=t.filter(function(e){return!e.validates(n[e.id])});if(r.length){var i=r.map(function(e){return`[${e.id}:${Xe(n[e.id])}]`}).join(`, `),a=`The following parameter values are not valid for state '${e.name}': ${i}`;return We.invalid(a)}if(this.success===!1)return this._error},t.prototype.toString=function(){var e=this.from(),t=this.to(),n=function(e){return e[`#`]!==null&&e[`#`]!==void 0?e:pe(e,[`#`])};return`Transition#${this.$id}( '${A(e)?e.name:e}'${Xe(n(this._treeChanges.from.map(c(`paramValues`)).reduce(q,{})))} -> ${this.valid()?``:`(X) `}'${A(t)?t.name:t}'${Xe(n(this.params()))} )`},t.diToken=t,t}();function hn(e,t){var n=[``,``],r=e.replace(/[\\\[\]\^$*+?.()|{}]/g,`\\$&`);if(!t)return r;switch(t.squash){case!1:n=[`(`,`)`+(t.isOptional?`?`:``)];break;case!0:r=r.replace(/\/$/,``),n=[`(?:/(`,`)|/)?`];break;default:n=[`(${t.squash}|`,`)?`]}return r+n[0]+t.type.pattern.source+n[1]}var gn=function(e,t,n){return e[t]=e[t]||n()},_n=it(`/`),vn={state:{params:{}},strict:!0,caseInsensitive:!0,decodeParams:!0},yn=function(){function t(e,n,r,i){var a=this;this._cache={path:[this]},this._children=[],this._params=[],this._segments=[],this._compiled=[],this.config=i=K(i,vn),this.pattern=e;for(var o=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:(?=(\s*))\4((?:[^{}\\]|\\.|\{(?:[^{}\\]|\\.)*\})+))?\}/g,s=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:(?=(\s*))\4((?:[^{}\\]|\\.|\{(?:[^{}\\]|\\.)*\})+))?\}/g,c=[],u=0,d,f=function(n){if(!t.nameValidator.test(n))throw Error(`Invalid parameter name '${n}' in pattern '${e}'`);if(ge(a._params,l(`id`,n)))throw Error(`Duplicate parameter name '${n}' in pattern '${e}'`)},p=function(t,r){var i=t[2]||t[3],o=r?t[5]:t[5]||(t[1]===`*`?`[\\s\\S]*`:null);return{id:i,regexp:o,segment:e.substring(u,t.index),type:o?n.type(o)||function(e){return se(n.type(r?`query`:`path`),{pattern:new RegExp(e,a.config.caseInsensitive?`i`:void 0)})}(o):null}},m,h;(d=o.exec(e))&&(m=p(d,!1),!(m.segment.indexOf(`?`)>=0));)f(m.id),this._params.push(r.fromPath(m.id,m.type,i.state)),this._segments.push(m.segment),c.push([m.segment,Ne(this._params)]),u=o.lastIndex;h=e.substring(u);var g=h.indexOf(`?`);if(g>=0){var _=h.substring(g);if(h=h.substring(0,g),_.length>0)for(u=0;d=s.exec(_);)m=p(d,!0),f(m.id),this._params.push(r.fromSearch(m.id,m.type,i.state)),u=o.lastIndex}this._segments.push(h),this._compiled=c.map(function(e){return hn.apply(null,e)}).concat(hn(h))}return t.encodeDashes=function(e){return encodeURIComponent(e).replace(/-/g,function(e){return`%5C%${e.charCodeAt(0).toString(16).toUpperCase()}`})},t.pathSegmentsAndParams=function(t){var n=t._segments;return je(n,t._params.filter(function(t){return t.location===e.DefType.PATH}).concat(void 0)).reduce(Se,[]).filter(function(e){return e!==``&&w(e)})},t.queryParams=function(t){return t._params.filter(function(t){return t.location===e.DefType.SEARCH})},t.compare=function(e,n){var r=function(e){return e._cache.segments=e._cache.segments||e._cache.path.map(t.pathSegmentsAndParams).reduce(Se,[]).reduce(at,[]).map(function(e){return k(e)?_n(e):e}).reduce(Se,[])},i=function(e){return e._cache.weights=e._cache.weights||r(e).map(function(e){if(e===`/`)return 1;if(k(e))return 2;if(e instanceof Ot)return 3})},a=function(e,t,n){for(var r=Math.max(e.length,t.length);e.length<r;)e.push(n);for(;t.length<r;)t.push(n)},o=i(e),s=i(n);a(o,s,0);for(var c=je(o,s),l,u=0;u<c.length;u++)if(l=c[u][0]-c[u][1],l!==0)return l;return 0},t.prototype.append=function(e){return this._children.push(e),e._cache={path:this._cache.path.concat(e),parent:this,pattern:null},e},t.prototype.isRoot=function(){return this._cache.path[0]===this},t.prototype.toString=function(){return this.pattern},t.prototype._getDecodedParamValue=function(e,t){return w(e)&&(this.config.decodeParams&&!t.type.raw&&(e=j(e)?e.map(function(e){return decodeURIComponent(e)}):decodeURIComponent(e)),e=t.type.decode(e)),t.value(e)},t.prototype.exec=function(e,t,n,r){var i=this;t===void 0&&(t={});var a=gn(this._cache,`pattern`,function(){return new RegExp([`^`,Te(i._cache.path.map(c(`_compiled`))).join(``),i.config.strict===!1?`/?`:``,`$`].join(``),i.config.caseInsensitive?`i`:void 0)}).exec(e);if(!a)return null;var o=this.parameters(),s=o.filter(function(e){return!e.isSearch()}),l=o.filter(function(e){return e.isSearch()}),u=this._cache.path.map(function(e){return e._segments.length-1}).reduce(function(e,t){return e+t}),d={};if(u!==a.length-1)throw Error(`Unbalanced capture group in route '${this.pattern}'`);function f(e){var t=function(e){return e.split(``).reverse().join(``)};return ve(ve(t(e).split(/-(?!\\)/),t),function(e){return e.replace(/\\-/g,`-`)}).reverse()}for(var p=0;p<u;p++){for(var m=s[p],h=a[p+1],g=0;g<m.replace.length;g++)m.replace[g].from===h&&(h=m.replace[g].to);h&&m.array===!0&&(h=f(h)),d[m.id]=this._getDecodedParamValue(h,m)}return l.forEach(function(e){for(var n=t[e.id],r=0;r<e.replace.length;r++)e.replace[r].from===n&&(n=e.replace[r].to);d[e.id]=i._getDecodedParamValue(n,e)}),n&&(d[`#`]=n),d},t.prototype.parameters=function(e){return e===void 0&&(e={}),e.inherit===!1?this._params:Te(this._cache.path.map(function(e){return e._params}))},t.prototype.parameter=function(e,t){var n=this;t===void 0&&(t={});var r=function(){for(var t=0,r=n._params;t<r.length;t++){var i=r[t];if(i.id===e)return i}},i=this._cache.parent;return r()||t.inherit!==!1&&i&&i.parameter(e,t)||null},t.prototype.validates=function(e){var t=function(e,t){return!e||e.validates(t)};return e||={},this.parameters().filter(function(t){return e.hasOwnProperty(t.id)}).map(function(n){return t(n,e[n.id])}).reduce(be,!0)},t.prototype.format=function(e){e===void 0&&(e={});var n=this._cache.path,r=n.map(t.pathSegmentsAndParams).reduce(Se,[]).map(function(e){return k(e)?e:a(e)}),i=n.map(t.queryParams).reduce(Se,[]).map(a);if(r.concat(i).filter(function(e){return e.isValid===!1}).length)return null;function a(t){var n=t.value(e[t.id]),r=t.validates(n),i=t.isDefaultValue(n);return{param:t,value:n,isValid:r,isDefaultValue:i,squash:i?t.squash:!1,encoded:t.type.encode(n)}}var o=r.reduce(function(e,n){if(k(n))return e+n;var r=n.squash,i=n.encoded,a=n.param;return r===!0?e.match(/\/$/)?e.slice(0,-1):e:k(r)?e+r:r!==!1||i==null?e:j(i)?e+ve(i,t.encodeDashes
14).join(`-`):a.raw?e+i:e+encodeURIComponent(i)},``),s=i.map(function(e){var t=e.param,n=e.squash,r=e.encoded,i=e.isDefaultValue;if(!(r==null||i&&n!==!1)&&(j(r)||(r=[r]),r.length!==0))return t.raw||(r=ve(r,encodeURIComponent)),r.map(function(e){return`${t.id}=${e}`})}).filter(H).reduce(Se,[]).join(`&`);return o+(s?`?${s}`:``)+(e[`#`]?`#`+e[`#`]:``)},t.nameValidator=/^\w+([-.]+\w+)*(?:\[\])?$/,t}(),bn=function(){return bn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},bn.apply(this,arguments)},xn=function(){function t(e){this.router=e}return t.prototype.fromConfig=function(t,n,r){return new Ot(t,n,e.DefType.CONFIG,this.router.urlService.config,r)},t.prototype.fromPath=function(t,n,r){return new Ot(t,n,e.DefType.PATH,this.router.urlService.config,r)},t.prototype.fromSearch=function(t,n,r){return new Ot(t,n,e.DefType.SEARCH,this.router.urlService.config,r)},t}(),Sn=function(){function e(e){var t=this;this.router=e,this.paramFactory=new xn(this.router),this.UrlMatcher=yn,this.Param=Ot,this.caseInsensitive=function(e){return t.router.urlService.config.caseInsensitive(e)},this.defaultSquashPolicy=function(e){return t.router.urlService.config.defaultSquashPolicy(e)},this.strictMode=function(e){return t.router.urlService.config.strictMode(e)},this.type=function(e,n,r){return t.router.urlService.config.type(e,n,r)||t}}return e.prototype.compile=function(e,t){var n=this.router.urlService.config,r=t&&!t.state&&t.params;t=r?bn({state:{params:r}},t):t;var i={strict:n._isStrictMode,caseInsensitive:n._isCaseInsensitive,decodeParams:n._decodeParams};return new yn(e,n.paramTypes,this.paramFactory,V(i,t))},e.prototype.isMatcher=function(e){if(!A(e))return!1;var t=!0;return B(yn.prototype,function(n,r){D(n)&&(t=t&&w(e[r])&&D(e[r]))}),t},e.prototype.$get=function(){var e=this.router.urlService.config;return e.paramTypes.enqueue=!1,e.paramTypes._flushTypeQueue(),this},e}(),Cn=function(){function e(e){this.router=e}return e.prototype.compile=function(e){return this.router.urlMatcherFactory.compile(e)},e.prototype.create=function(e,t){var n=this,r=tn.isState,i=tn.isStateDeclaration,a=b([[k,function(e){return a(n.compile(e))}],[g(yn),function(e){return n.fromUrlMatcher(e,t)}],[p(r,i),function(e){return n.fromState(e,n.router)}],[g(RegExp),function(e){return n.fromRegExp(e,t)}],[D,function(e){return new wn(e,t)}]]),o=a(e);if(!o)throw Error(`invalid 'what' in when()`);return o},e.prototype.fromUrlMatcher=function(e,t){var n=t;k(t)&&(t=this.router.urlMatcherFactory.compile(t)),g(yn)(t)&&(n=function(e){return t.format(e)});function r(t){var n=e.exec(t.path,t.search,t.hash);return e.validates(n)&&n}function i(t){var n=e.parameters().filter(function(e){return e.isOptional});return n.length?n.filter(function(e){return t[e.id]}).length/n.length:1e-6}var a={urlMatcher:e,matchPriority:i,type:`URLMATCHER`};return V(new wn(r,n),a)},e.prototype.fromState=function(e,t){var n=tn.isStateDeclaration(e)?e.$$state():e,r=function(e){var r=t.stateService,i=t.globals;r.href(n,e)!==r.href(i.current,i.params)&&r.transitionTo(n,e,{inherit:!0,source:`url`})},i={state:n,type:`STATE`};return V(this.fromUrlMatcher(n.url,r),i)},e.prototype.fromRegExp=function(e,t){if(e.global||e.sticky)throw Error(`Rule RegExp must not be global or sticky`);var n=k(t)?function(e){return t.replace(/\$(\$|\d{1,2})/,function(t,n){return e[n===`$`?0:Number(n)]})}:t,r=function(t){return e.exec(t.path)},i={regexp:e,type:`REGEXP`};return V(new wn(r,n),i)},e.isUrlRule=function(e){return e&&[`type`,`match`,`handler`].every(function(t){return w(e[t])})},e}(),wn=function(){function e(e,t){var n=this;this.match=e,this.type=`RAW`,this.matchPriority=function(e){return 0-n.$id},this.handler=t||H}return e}();function Tn(e,t,n,r){return r===`/`?e:t?$e(r)+e:n?r.slice(1)+e:e}var En=function(){function e(e){var t=this;this.router=e,this.sync=function(e){return t.router.urlService.sync(e)},this.listen=function(e){return t.router.urlService.listen(e)},this.deferIntercept=function(e){return t.router.urlService.deferIntercept(e)},this.match=function(e){return t.router.urlService.match(e)},this.initial=function(e){return t.router.urlService.rules.initial(e)},this.otherwise=function(e){return t.router.urlService.rules.otherwise(e)},this.removeRule=function(e){return t.router.urlService.rules.removeRule(e)},this.rule=function(e){return t.router.urlService.rules.rule(e)},this.rules=function(){return t.router.urlService.rules.rules()},this.sort=function(e){return t.router.urlService.rules.sort(e)},this.when=function(e,n,r){return t.router.urlService.rules.when(e,n,r)},this.urlRuleFactory=new Cn(e)}return e.prototype.update=function(e){var t=this.router.locationService;if(e){this.location=t.url();return}t.url()!==this.location&&t.url(this.location,!0)},e.prototype.push=function(e,t,n){var r=n&&!!n.replace;this.router.urlService.url(e.format(t||{}),r)},e.prototype.href=function(e,t,n){var r=e.format(t);if(r==null)return null;n||={absolute:!1};var i=this.router.urlService.config,a=i.html5Mode();if(!a&&r!==null&&(r=`#`+i.hashPrefix()+r),r=Tn(r,a,n.absolute,i.baseHref()),!n.absolute||!r)return r;var o=!a&&r?`/`:``,s=i.port(),c=s===80||s===443?``:`:`+s;return[i.protocol(),`://`,i.host(),c,o,r].join(``)},Object.defineProperty(e.prototype,"interceptDeferred",{get:function(){return this.router.urlService.interceptDeferred}
14,enumerable:!1,configurable:!0}),e}(),Dn=function(){function e(e){var t=this;this.router=e,this._uiViews=[],this._viewConfigs=[],this._viewConfigFactories={},this._listeners=[],this._pluginapi={_rootViewContext:this._rootViewContext.bind(this),_viewConfigFactory:this._viewConfigFactory.bind(this),_registeredUIView:function(e){return ge(t._uiViews,function(n){return`${t.router.$id}.${n.id}`===e})},_registeredUIViews:function(){return t._uiViews},_activeViewConfigs:function(){return t._viewConfigs},_onSync:function(e){return t._listeners.push(e),function(){return U(t._listeners,e)}}}}return e.normalizeUIViewTarget=function(e,t){t===void 0&&(t=``);var n=t.split(`@`),r=n[0]||`$default`,i=k(n[1])?n[1]:`^`,a=/^(\^(?:\.\^)*)\.(.*$)/.exec(r);return a&&(i=a[1],r=a[2]),r.charAt(0)===`!`&&(r=r.substr(1),i=``),/^(\^(?:\.\^)*)$/.exec(i)?i=i.split(`.`).reduce(function(e,t){return e.parent},e).name:i===`.`&&(i=e.name),{uiViewName:r,uiViewContextAnchor:i}},e.prototype._rootViewContext=function(e){return this._rootContext=e||this._rootContext},e.prototype._viewConfigFactory=function(e,t){this._viewConfigFactories[e]=t},e.prototype.createViewConfig=function(e,t){var n=this._viewConfigFactories[t.$type];if(!n)throw Error(`ViewService: No view config factory registered for type `+t.$type);var r=n(e,t);return j(r)?r:[r]},e.prototype.deactivateViewConfig=function(e){vt.traceViewServiceEvent(`<- Removing`,e),U(this._viewConfigs,e)},e.prototype.activateViewConfig=function(e){vt.traceViewServiceEvent(`-> Registering`,e),this._viewConfigs.push(e)},e.prototype.sync=function(){var t=this,n=this._uiViews.map(function(e){return[e.fqn,e]}).reduce(Me,{});function r(e){var t=function(e){return e&&e.parent?t(e.parent)+1:1};return e.fqn.split(`.`).length*1e4+t(e.creationContext)}function i(e){for(var t=e.viewDecl.$context,n=0;++n&&t.parent;)t=t.parent;return n}var o=a(function(e,t,n,r){return t*(e(n)-e(r))}),s=function(r){var a=t._viewConfigs.filter(e.matches(n,r));return a.length>1&&a.sort(o(i,-1)),{uiView:r,viewConfig:a[0]}},c=function(e){t._uiViews.indexOf(e.uiView)!==-1&&e.uiView.configUpdated(e.viewConfig)},l=this._uiViews.sort(o(r,1)).map(s),u=l.map(function(e){return e.viewConfig}),d=this._viewConfigs.filter(function(e){return!ce(u,e)}).map(function(e){return{uiView:void 0,viewConfig:e}});l.forEach(c);var f=l.concat(d);this._listeners.forEach(function(e){return e(f)}),vt.traceViewSync(f)},e.prototype.registerUIView=function(e){vt.traceViewServiceUIViewEvent(`-> Registering`,e);var t=this._uiViews;return t.filter(function(t){return t.fqn===e.fqn&&t.$type===e.$type}).length&&vt.traceViewServiceUIViewEvent(`!!!! duplicate uiView named:`,e),t.push(e),this.sync(),function(){if(t.indexOf(e)===-1){vt.traceViewServiceUIViewEvent(`Tried removing non-registered uiView`,e);return}vt.traceViewServiceUIViewEvent(`<- Deregistering`,e),U(t)(e)}},e.prototype.available=function(){return this._uiViews.map(c(`fqn`))},e.prototype.active=function(){return this._uiViews.filter(c(`$config`)).map(c(`name`))},e.matches=function(e,t){return function(n){if(t.$type!==n.viewDecl.$type)return!1;var r=n.viewDecl,i=r.$uiViewName.split(`.`),a=t.fqn.split(`.`);if(!ie(i,a.slice(0-i.length)))return!1;var o=1-i.length||void 0,s=e[a.slice(0,o).join(`.`)].creationContext;return r.$uiViewContextAnchor===(s&&s.name)}},e}(),On=function(){function e(){this.params=new jt,this.lastStartedTransitionId=-1,this.transitionHistory=new He([],1),this.successfulTransitions=new He([],1)}return e.prototype.dispose=function(){this.transitionHistory.clear(),this.successfulTransitions.clear(),this.transition=null},e}(),kn=function(e,t){return(t.priority||0)-(e.priority||0)},An=function(e,t){var n={STATE:4,URLMATCHER:4,REGEXP:3,RAW:2,OTHER:1};return(n[e.type]||0)-(n[t.type]||0)},jn=function(e,t){return!e.urlMatcher||!t.urlMatcher?0:yn.compare(e.urlMatcher,t.urlMatcher)},Mn=function(e,t){var n={STATE:!0,URLMATCHER:!0};return n[e.type]&&n[t.type]?0:(e.$id||0)-(t.$id||0)},Nn=function(e,t){var n=kn(e,t);return n!==0||(n=An(e,t),n!==0)||(n=jn(e,t),n!==0)?n:Mn(e,t)};function Pn(e){if(!D(e)&&!k(e)&&!g(Nt)(e)&&!Nt.isDef(e))throw Error(`'handler' must be a string, function, TargetState, or have a state: 'newtarget' property`);return D(e)?e:v(e)}var Fn=function(){function e(e){this.router=e,this._sortFn=Nn,this._rules=[],this._id=0,this.urlRuleFactory=new Cn(e)}return e.prototype.dispose=function(e){this._rules=[],delete this._otherwiseFn},e.prototype.initial=function(e){var t=Pn(e);this.rule(this.urlRuleFactory.create(function(e,t){return t.globals.transitionHistory.size()===0&&!!/^\/?$/.exec(e.path)},t))},e.prototype.otherwise=function(e){var t=Pn(e);this._otherwiseFn=this.urlRuleFactory.create(v(!0),t),this._sorted=!1},e.prototype.removeRule=function(e){U(this._rules,e)},e.prototype.rule=function(e){var t=this;if(!Cn.isUrlRule(e))throw Error(`invalid rule`);return e.$id=this._id++,e.priority=e.priority||0,this._rules.push(e),this._sorted=!1,function(){return t.removeRule(e)}},e.prototype.rules=function(){return this.ensureSorted(),this._rules.concat(this._otherwiseFn?[this._otherwiseFn]:[])},e.prototype.sort=function(e){for(var t=this.stableSort(this._rules,this._sortFn=e||this._sortFn),n=0,r=0;r<t.length;r++)t[r]._group=n,r<t.length-1&&this._sortFn(t[r],t[r+1])!==0&&n++;this._rules=t,this._sorted=!0}
14,e.prototype.ensureSorted=function(){this._sorted||this.sort()},e.prototype.stableSort=function(e,t){var n=e.map(function(e,t){return{elem:e,idx:t}});return n.sort(function(e,n){var r=t(e.elem,n.elem);return r===0?e.idx-n.idx:r}),n.map(function(e){return e.elem})},e.prototype.when=function(e,t,n){var r=this.urlRuleFactory.create(e,t);return w(n&&n.priority)&&(r.priority=n.priority),this.rule(r),r},e}(),In=function(){function e(e){var t=this;this.router=e,this.paramTypes=new kt,this._decodeParams=!0,this._isCaseInsensitive=!1,this._isStrictMode=!0,this._defaultSquashPolicy=!1,this.dispose=function(){return t.paramTypes.dispose()},this.baseHref=function(){return t.router.locationConfig.baseHref()},this.hashPrefix=function(e){return t.router.locationConfig.hashPrefix(e)},this.host=function(){return t.router.locationConfig.host()},this.html5Mode=function(){return t.router.locationConfig.html5Mode()},this.port=function(){return t.router.locationConfig.port()},this.protocol=function(){return t.router.locationConfig.protocol()}}return e.prototype.caseInsensitive=function(e){return this._isCaseInsensitive=w(e)?e:this._isCaseInsensitive},e.prototype.defaultSquashPolicy=function(e){if(w(e)&&e!==!0&&e!==!1&&!k(e))throw Error(`Invalid squash policy: ${e}. Valid policies: false, true, arbitrary-string`);return this._defaultSquashPolicy=w(e)?e:this._defaultSquashPolicy},e.prototype.strictMode=function(e){return this._isStrictMode=w(e)?e:this._isStrictMode},e.prototype.type=function(e,t,n){var r=this.paramTypes.type(e,t,n);return w(t)?this:r},e}(),Ln=function(){function e(e){var t=this;this.router=e,this.interceptDeferred=!1,this.rules=new Fn(this.router),this.config=new In(this.router),this.url=function(e,n,r){return t.router.locationService.url(e,n,r)},this.path=function(){return t.router.locationService.path()},this.search=function(){return t.router.locationService.search()},this.hash=function(){return t.router.locationService.hash()},this.onChange=function(e){return t.router.locationService.onChange(e)}}return e.prototype.dispose=function(){this.listen(!1),this.rules.dispose()},e.prototype.parts=function(){return{path:this.path(),search:this.search(),hash:this.hash()}},e.prototype.sync=function(e){if(!(e&&e.defaultPrevented)){var t=this.router,n=t.urlService,r=t.stateService,i={path:n.path(),search:n.search(),hash:n.hash()},a=this.match(i);b([[k,function(e){return n.url(e,!0)}],[Nt.isDef,function(e){return r.go(e.state,e.params,e.options)}],[g(Nt),function(e){return r.go(e.state(),e.params(),e.options())}]])(a&&a.rule.handler(a.match,i,this.router))}},e.prototype.listen=function(e){var t=this;if(e===!1)this._stopListeningFn&&this._stopListeningFn(),delete this._stopListeningFn;else return this._stopListeningFn=this._stopListeningFn||this.router.urlService.onChange(function(e){return t.sync(e)})},e.prototype.deferIntercept=function(e){e===void 0&&(e=!0),this.interceptDeferred=e},e.prototype.match=function(e){var t=this;e=V({path:``,search:{},hash:``},e);for(var n=this.rules.rules(),r=function(n){var r=n.match(e,t.router);return r&&{match:r,rule:n,weight:n.matchPriority(r)}},i,a=0;a<n.length&&!(i&&i.rule._group!==n[a]._group);a++){var o=r(n[a]);i=!i||o&&o.weight>i.weight?o:i}return i},e}(),Rn=0,zn=[`url`,`path`,`search`,`hash`,`onChange`],Bn=[`port`,`protocol`,`host`,`baseHref`,`html5Mode`,`hashPrefix`],Vn=te(`LocationServices`,zn),Hn=te(`LocationConfig`,Bn),Un=function(){function e(e,t){e===void 0&&(e=Vn),t===void 0&&(t=Hn),this.locationService=e,this.locationConfig=t,this.$id=Rn++,this._disposed=!1,this._disposables=[],this.trace=vt,this.viewService=new Dn(this),this.globals=new On,this.transitionService=new Er(this),this.urlMatcherFactory=new Sn(this),this.urlRouter=new En(this),this.urlService=new Ln(this),this.stateRegistry=new an(this),this.stateService=new Dr(this),this._plugins={},this.viewService._pluginapi._rootViewContext(this.stateRegistry.root()),this.globals.$current=this.stateRegistry.root(),this.globals.current=this.globals.$current.self,this.disposable(this.globals),this.disposable(this.stateService),this.disposable(this.stateRegistry),this.disposable(this.transitionService),this.disposable(this.urlService),this.disposable(e),this.disposable(t)}return e.prototype.disposable=function(e){this._disposables.push(e)},e.prototype.dispose=function(e){var t=this;if(e&&D(e.dispose)){e.dispose(this);return}
14this._disposed=!0,this._disposables.slice().forEach(function(e){try{typeof e.dispose==`function`&&e.dispose(t),U(t._disposables,e)}catch{}})},e.prototype.plugin=function(e,t){t===void 0&&(t={});var n=new e(this,t);if(!n.name)throw Error("Required property `name` missing on plugin: "+n);return this._disposables.push(n),this._plugins[n.name]=n},e.prototype.getPlugin=function(e){return e?this._plugins[e]:ye(this._plugins)},e}();function Wn(e){e.addResolvable(Lt.fromData(Un,e.router),``),e.addResolvable(Lt.fromData(mn,e),``),e.addResolvable(Lt.fromData(`$transition$`,e),``),e.addResolvable(Lt.fromData(`$stateParams`,e.params()),``),e.entering().forEach(function(t){e.addResolvable(Lt.fromData(`$state$`,t),t)})}var Gn=function(e){return e.onCreate({},Wn)},Kn=ce([`$transition$`,mn]),qn=function(e){var t=ye(e.treeChanges()).reduce(Se,[]).reduce(Y,[]),n=function(e){return Kn(e.token)?Lt.fromData(e.token,null):e};t.forEach(function(e){e.resolvables=e.resolvables.map(n)})},Jn=function(e){var t=e.to().redirectTo;if(!t)return;var n=e.router.stateService;function r(t){if(t){if(t instanceof Nt)return t;if(k(t))return n.target(t,e.params(),e.options());if(t.state||t.params)return n.target(t.state||e.to(),t.params||e.params(),e.options())}}return D(t)?I.$q.when(t(e)).then(r):r(t)},Yn=function(e){return e.onStart({to:function(e){return!!e.redirectTo}},Jn)};function X(e){return function(t,n){var r=n.$$state()[e];return r(t,n)}}var Xn=X(`onExit`),Zn=function(e){return e.onExit({exiting:function(e){return!!e.onExit}},Xn)},Qn=X(`onRetain`),$n=function(e){return e.onRetain({retained:function(e){return!!e.onRetain}},Qn)},er=X(`onEnter`),tr=function(e){return e.onEnter({entering:function(e){return!!e.onEnter}},er)},nr=1e3,rr=function(e){return new Ht(e.treeChanges().to).resolvePath(`EAGER`,e).then(ae)},ir=function(e){return e.onStart({},rr,{priority:nr})},ar=function(e,t){return new Ht(e.treeChanges().to).subContext(t.$$state()).resolvePath(`LAZY`,e).then(ae)},or=function(e){return e.onEnter({entering:v(!0)},ar,{priority:nr})},sr=function(e){return new Ht(e.treeChanges().to).resolvePath(`LAZY`,e).then(ae)},cr=function(e){return e.onFinish({},sr,{priority:nr})},lr=function(e){var t=I.$q,n=e.views(`entering`);if(n.length)return t.all(n.map(function(e){return t.when(e.load())})).then(ae)},ur=function(e){return e.onFinish({},lr)},dr=function(e){var t=e.views(`entering`),n=e.views(`exiting`);if(t.length||n.length){var r=e.router.viewService;n.forEach(function(e){return r.deactivateViewConfig(e)}),t.forEach(function(e){return r.activateViewConfig(e)}),r.sync()}},fr=function(e){return e.onSuccess({},dr)},pr=function(e){var t=e.router.globals,n=function(){t.successfulTransitions.enqueue(e),t.$current=e.$to(),t.current=t.$current.self,Pe(e.params(),t.params)},r=function(){t.transition===e&&(t.transition=null)};e.onSuccess({},n,{priority:1e4}),e.promise.then(r,r)},mr=function(e){return e.onCreate({},pr)},hr=function(e){var t=e.options(),n=e.router.stateService,r=e.router.urlRouter;if(t.source!==`url`&&t.location&&n.$current.navigable){var i={replace:t.location===`replace`};r.push(n.$current.navigable.url,n.params,i)}r.update(!0)},gr=function(e){return e.onSuccess({},hr,{priority:9999})},_r=function(e){var t=e.router;function n(){if(e.originalTransition().options().source!==`url`){var n=e.targetState();return t.stateService.target(n.identifier(),n.params(),n.options())}var r=t.urlService,i=r.match(r.parts()),a=i&&i.rule;if(a&&a.type===`STATE`){var o=a.state,s=i.match;return t.stateService.target(o,s,e.options())}t.urlService.sync()}var r=e.entering().filter(function(e){return!!e.$$state().lazyLoad}).map(function(t){return yr(e,t)});return I.$q.all(r).then(n)},vr=function(e){return e.onBefore({entering:function(e){return!!e.lazyLoad}},_r)};function yr(e,t){var n=t.$$state().lazyLoad,r=n._promise;r||=n._promise=I.$q.when(n(e,t)).then(i).then(function(e){return delete t.lazyLoad,delete t.$$state().lazyLoad,delete n._promise,e},function(e){return delete n._promise,I.$q.reject(e)});function i(t){return t&&Array.isArray(t.states)&&t.states.forEach(function(t){return e.router.stateRegistry.register(t)}),t}return r}var br=function(){function e(e,t,n,r,i,a,o,s){i===void 0&&(i=!1),a===void 0&&(a=sn.HANDLE_RESULT),o===void 0&&(o=sn.REJECT_ERROR),s===void 0&&(s=!1),this.name=e,this.hookPhase=t,this.hookOrder=n,this.criteriaMatchPath=r,this.reverseSort=i,this.getResultHandler=a,this.getErrorHandler=o,this.synchronous=s}return e}();function xr(e){var t=e._ignoredReason();if(t){vt.traceTransitionIgnored(e);var n=e.router.globals.transition;return t===`SameAsCurrent`&&n&&n.abort(),We.ignored().toPromise()}}var Sr=function(e){return e.onBefore({},xr,{priority:-9999})};function Cr(e){if(!e.valid())throw Error(e.error().toString())}var wr=function(e){return e.onBefore({},Cr,{priority:-1e4})}
14,Tr={location:!0,relative:null,inherit:!1,notify:!0,reload:!1,supercede:!0,custom:{},current:function(){return null},source:`unknown`},Er=function(){function t(e){this._transitionCount=0,this._eventTypes=[],this._registeredHooks={},this._criteriaPaths={},this._router=e,this.$view=e.viewService,this._deregisterHookFns={},this._pluginapi=oe(v(this),{},v(this),[`_definePathType`,`_defineEvent`,`_getPathTypes`,`_getEvents`,`getHooks`]),this._defineCorePaths(),this._defineCoreEvents(),this._registerCoreTransitionHooks(),e.globals.successfulTransitions.onEvict(qn)}return t.prototype.onCreate=function(e,t,n){},t.prototype.onBefore=function(e,t,n){},t.prototype.onStart=function(e,t,n){},t.prototype.onExit=function(e,t,n){},t.prototype.onRetain=function(e,t,n){},t.prototype.onEnter=function(e,t,n){},t.prototype.onFinish=function(e,t,n){},t.prototype.onSuccess=function(e,t,n){},t.prototype.onError=function(e,t,n){},t.prototype.dispose=function(e){ye(this._registeredHooks).forEach(function(e){return e.forEach(function(t){t._deregistered=!0,U(e,t)})})},t.prototype.create=function(e,t){return new mn(e,t,this._router)},t.prototype._defineCoreEvents=function(){var t=e.TransitionHookPhase,n=sn,r=this._criteriaPaths,i=!1,a=!0,o=!0;this._defineEvent(`onCreate`,t.CREATE,0,r.to,i,n.LOG_REJECTED_RESULT,n.THROW_ERROR,o),this._defineEvent(`onBefore`,t.BEFORE,0,r.to),this._defineEvent(`onStart`,t.RUN,0,r.to),this._defineEvent(`onExit`,t.RUN,100,r.exiting,a),this._defineEvent(`onRetain`,t.RUN,200,r.retained),this._defineEvent(`onEnter`,t.RUN,300,r.entering),this._defineEvent(`onFinish`,t.RUN,400,r.to),this._defineEvent(`onSuccess`,t.SUCCESS,0,r.to,i,n.LOG_REJECTED_RESULT,n.LOG_ERROR,o),this._defineEvent(`onError`,t.ERROR,0,r.to,i,n.LOG_REJECTED_RESULT,n.LOG_ERROR,o)},t.prototype._defineCorePaths=function(){var t=e.TransitionHookScope.STATE,n=e.TransitionHookScope.TRANSITION;this._definePathType(`to`,n),this._definePathType(`from`,n),this._definePathType(`exiting`,t),this._definePathType(`retained`,t),this._definePathType(`entering`,t)},t.prototype._defineEvent=function(e,t,n,r,i,a,o,s){i===void 0&&(i=!1),a===void 0&&(a=sn.HANDLE_RESULT),o===void 0&&(o=sn.REJECT_ERROR),s===void 0&&(s=!1);var c=new br(e,t,n,r,i,a,o,s);this._eventTypes.push(c),un(this,this,c)},t.prototype._getEvents=function(e){return(w(e)?this._eventTypes.filter(function(t){return t.hookPhase===e}):this._eventTypes.slice()).sort(function(e,t){var n=e.hookPhase-t.hookPhase;return n===0?e.hookOrder-t.hookOrder:n})},t.prototype._definePathType=function(e,t){this._criteriaPaths[e]={name:e,scope:t}},t.prototype._getPathTypes=function(){return this._criteriaPaths},t.prototype.getHooks=function(e){return this._registeredHooks[e]},t.prototype._registerCoreTransitionHooks=function(){var e=this._deregisterHookFns;e.addCoreResolves=Gn(this),e.ignored=Sr(this),e.invalid=wr(this),e.redirectTo=Yn(this),e.onExit=Zn(this),e.onRetain=$n(this),e.onEnter=tr(this),e.eagerResolve=ir(this),e.lazyResolve=or(this),e.resolveAll=cr(this),e.loadViews=ur(this),e.activateViews=fr(this),e.updateGlobals=mr(this),e.updateUrl=gr(this),e.lazyLoad=vr(this)},t}(),Dr=function(){function t(e){this.router=e,this.invalidCallbacks=[],this._defaultErrorHandler=function(e){e instanceof Error&&e.stack||e instanceof We&&e.detail&&e.detail.stack};var n=Object.keys(t.prototype).filter(d(ce([`current`,`$current`,`params`,`transition`])));oe(v(t.prototype),this,v(this),n)}return Object.defineProperty(t.prototype,"transition",{get:function(){return this.router.globals.transition},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"params",{get:function(){return this.router.globals.params},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"current",{get:function(){return this.router.globals.current},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"$current",{get:function(){return this.router.globals.$current},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){this.defaultErrorHandler(ae),this.invalidCallbacks=[]},t.prototype._handleInvalidTargetState=function(e,t){var n=this,r=Pt.makeTarget
14State(this.router.stateRegistry,e),i=this.router.globals,a=function(){return i.transitionHistory.peekTail()},o=a(),s=new He(this.invalidCallbacks.slice()),c=new Ht(e).injector(),l=function(e){if(e instanceof Nt){var t=e;return t=n.target(t.identifier(),t.params(),t.options()),t.valid()?a()===o?n.transitionTo(t.identifier(),t.params(),t.options()):We.superseded().toPromise():We.invalid(t.error()).toPromise()}};function u(){var e=s.dequeue();return e===void 0?We.invalid(t.error()).toPromise():I.$q.when(e(t,r,c)).then(l).then(function(e){return e||u()})}return u()},t.prototype.onInvalid=function(e){return this.invalidCallbacks.push(e),function(){U(this.invalidCallbacks)(e)}.bind(this)},t.prototype.reload=function(e){return this.transitionTo(this.current,this.params,{reload:!w(e)||e,inherit:!1,notify:!1})},t.prototype.go=function(e,t,n){var r=K(n,{relative:this.$current,inherit:!0},Tr);return this.transitionTo(e,t,r)},t.prototype.target=function(e,t,n){if(n===void 0&&(n={}),A(n.reload)&&!n.reload.name)throw Error(`Invalid reload state object`);var r=this.router.stateRegistry;if(n.reloadState=n.reload===!0?r.root():r.matcher.find(n.reload,n.relative),n.reload&&!n.reloadState)throw Error(`No such reload state '${k(n.reload)?n.reload:n.reload.name}'`);return new Nt(this.router.stateRegistry,e,t,n)},t.prototype.getCurrentPath=function(){var e=this,t=this.router.globals.successfulTransitions.peekTail();return t?t.treeChanges().to:function(){return[new Mt(e.router.stateRegistry.root())]}()},t.prototype.transitionTo=function(t,n,r){var i=this;n===void 0&&(n={}),r===void 0&&(r={});var a=this.router,o=a.globals;r=K(r,Tr);var s=function(){return o.transition};r=V(r,{current:s});var c=this.target(t,n,r),l=this.getCurrentPath();if(!c.exists())return this._handleInvalidTargetState(l,c);if(!c.valid())return Be(c.error());if(r.supercede===!1&&s())return We.ignored(`Another transition is in progress and supercede has been set to false in TransitionOptions for the transition. So the transition was ignored in favour of the existing one in progress.`).toPromise();var u=function(t){return function(n){if(n instanceof We){var r=a.globals.lastStartedTransitionId<=t.$id;if(n.type===e.RejectType.IGNORED)return r&&a.urlRouter.update(),I.$q.when(o.current);var s=n.detail;if(n.type===e.RejectType.SUPERSEDED&&n.redirected&&s instanceof Nt){var c=t.redirect(s);return c.run().catch(u(c))}if(n.type===e.RejectType.ABORTED)return r&&a.urlRouter.update(),I.$q.reject(n)}return i.defaultErrorHandler()(n),I.$q.reject(n)}},d=this.router.transitionService.create(l,c),f=d.run().catch(u(d));return ze(f),V(f,{transition:d})},t.prototype.is=function(e,t,n){n=K(n,{relative:this.$current});var r=this.router.stateRegistry.matcher.find(e,n.relative);if(w(r)){if(this.$current!==r)return!1;if(!t)return!0;var i=r.parameters({inherit:!0,matchingKeys:t});return Ot.equals(i,Ot.values(i,t),this.params)}},t.prototype.includes=function(e,t,n){n=K(n,{relative:this.$current});var r=k(e)&&Ve.fromString(e);if(r){if(!r.matches(this.$current.name))return!1;e=this.$current.name}var i=this.router.stateRegistry.matcher.find(e,n.relative),a=this.$current.includes;if(w(i)){if(!w(a[i.name]))return!1;if(!t)return!0;var o=i.parameters({inherit:!0,matchingKeys:t});return Ot.equals(o,Ot.values(o,t),this.params)}},t.prototype.href=function(e,t,n){var r={lossy:!0,inherit:!0,absolute:!1,relative:this.$current};n=K(n,r),t||={};var i=this.router.stateRegistry.matcher.find(e,n.relative);if(!w(i))return null;n.inherit&&(t=this.params.$inherit(t,this.$current,i));var a=i&&n.lossy?i.navigable:i;return!a||a.url===void 0||a.url===null?null:this.router.urlRouter.href(a.url,t,{absolute:n.absolute})},t.prototype.defaultErrorHandler=function(e){return this._defaultErrorHandler=e||this._defaultErrorHandler},t.prototype.get=function(e,t){var n=this.router.stateRegistry;return arguments.length===0?n.get():n.get(e,t||this.$current)},t.prototype.lazyLoad=function(e,t){var n=this.get(e);if(!n||!n.lazyLoad)throw Error(`Can not lazy load `+e);var r=this.getCurrentPath(),i=Pt.makeTargetState(this.router.stateRegistry,r);return t||=this.router.transitionService.create(r,i),yr(t,n)},t}(),Or={when:function(e){return new Promise(function(t,n){return t(e)})},reject:function(e){return new Promise(function(t,n){n(e)})},defer:function(){var e={};return e.promise=new Promise(function(t,n){e.resolve=t,e.reject=n}),e},all:function(e){if(j(e))return Promise.all(e);
14if(A(e)){var t=Object.keys(e).map(function(t){return e[t].then(function(e){return{key:t,val:e}})});return Or.all(t).then(function(e){return e.reduce(function(e,t){return e[t.key]=t.val,e},{})})}}},kr={},Ar=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,jr=/([^\s,]+)/g,Mr={get:function(e){return kr[e]},has:function(e){return Mr.get(e)!=null},invoke:function(e,t,n){var r=V({},kr,n||{}),i=Mr.annotate(e),a=De(function(e){return r.hasOwnProperty(e)},function(e){return`DI can't find injectable: '${e}'`}),o=i.filter(a).map(function(e){return r[e]});return D(e)?e.apply(t,o):e.slice(-1)[0].apply(t,o)},annotate:function(e){if(!P(e))throw Error(`Not an injectable function: ${e}`);if(e&&e.$inject)return e.$inject;if(j(e))return e.slice(0,-1);var t=e.toString().replace(Ar,``);return t.slice(t.indexOf(`(`)+1,t.indexOf(`)`)).match(jr)||[]}},Nr=function(e,t){var n=t[0],r=t[1];return e.hasOwnProperty(n)?j(e[n])?e[n].push(r):e[n]=[e[n],r]:e[n]=r,e},Pr=function(e){return e.split(`&`).filter(H).map(nt).reduce(Nr,{})};function Fr(e){var t=function(e){return e||``},n=et(e).map(t),r=n[0],i=n[1],a=tt(r).map(t);return{path:a[0],search:a[1],hash:i,url:e}}var Ir=function(e){var t=e.path(),n=e.search(),r=e.hash(),i=Object.keys(n).map(function(e){var t=n[e];return(j(t)?t:[t]).map(function(t){return e+`=`+t})}).reduce(Se,[]).join(`&`);return t+(i?`?`+i:``)+(r?`#`+r:``)};function Lr(e,t,n,r){return function(i){var a=i.locationService=new n(i),o=i.locationConfig=new r(i,t);function s(e){e.dispose(a),e.dispose(o)}return{name:e,service:a,configuration:o,dispose:s}}}var Rr=function(){function e(e,t){var n=this;this.fireAfterUpdate=t,this._listeners=[],this._listener=function(e){return n._listeners.forEach(function(t){return t(e)})},this.hash=function(){return Fr(n._get()).hash},this.path=function(){return Fr(n._get()).path},this.search=function(){return Pr(Fr(n._get()).search)},this._location=R.location,this._history=R.history}return e.prototype.url=function(e,t){return t===void 0&&(t=!0),w(e)&&e!==this._get()&&(this._set(null,null,e,t),this.fireAfterUpdate&&this._listeners.forEach(function(t){return t({url:e})})),Ir(this)},e.prototype.onChange=function(e){var t=this;return this._listeners.push(e),function(){return U(t._listeners,e)}},e.prototype.dispose=function(e){de(this._listeners)},e}(),zr=(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),Br=function(e){zr(t,e);function t(t){var n=e.call(this,t,!1)||this;return R.addEventListener(`hashchange`,n._listener,!1),n}return t.prototype._get=function(){return rt(this._location.hash)},t.prototype._set=function(e,t,n,r){this._location.hash=n},t.prototype.dispose=function(t){e.prototype.dispose.call(this,t),R.removeEventListener(`hashchange`,this._listener)},t}(Rr),Vr=(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),Hr=function(e){Vr(t,e);function t(t){return e.call(this,t,!0)||this}return t.prototype._get=function(){return this._url},t.prototype._set=function(e,t,n,r){this._url=n},t}(Rr),Ur=(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}
14t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),Wr=function(e){Ur(t,e);function t(t){var n=e.call(this,t,!0)||this;return n._config=t.urlService.config,R.addEventListener(`popstate`,n._listener,!1),n}return t.prototype._getBasePrefix=function(){return $e(this._config.baseHref())},t.prototype._get=function(){var e=this._location,t=e.pathname,n=e.hash,r=e.search;r=tt(r)[1],n=et(n)[1];var i=this._getBasePrefix(),a=t===this._config.baseHref(),o=t.substr(0,i.length)===i;return t=a?`/`:o?t.substring(i.length):t,t+(r?`?`+r:``)+(n?`#`+n:``)},t.prototype._set=function(e,t,n,r){var i=this._getBasePrefix(),a=n&&n[0]!==`/`?`/`:``,o=n===``||n===`/`?this._config.baseHref():i+a+n;r?this._history.replaceState(e,t,o):this._history.pushState(e,t,o)},t.prototype.dispose=function(t){e.prototype.dispose.call(this,t),R.removeEventListener(`popstate`,this._listener)},t}(Rr),Gr=function(){function e(){var e=this;this.dispose=ae,this._baseHref=``,this._port=80,this._protocol=`http`,this._host=`localhost`,this._hashPrefix=``,this.port=function(){return e._port},this.protocol=function(){return e._protocol},this.host=function(){return e._host},this.baseHref=function(){return e._baseHref},this.html5Mode=function(){return!1},this.hashPrefix=function(t){return w(t)?e._hashPrefix=t:e._hashPrefix}}return e}(),Kr=function(){function e(e,t){t===void 0&&(t=!1),this._isHtml5=t,this._baseHref=void 0,this._hashPrefix=``}return e.prototype.port=function(){return location.port?Number(location.port):this.protocol()===`https`?443:80},e.prototype.protocol=function(){return location.protocol.replace(/:/g,``)},e.prototype.host=function(){return location.hostname},e.prototype.html5Mode=function(){return this._isHtml5},e.prototype.hashPrefix=function(e){return w(e)?this._hashPrefix=e:this._hashPrefix},e.prototype.baseHref=function(e){return w(e)&&(this._baseHref=e),C(this._baseHref)&&(this._baseHref=this.getBaseHref()),this._baseHref},e.prototype.getBaseHref=function(){var e=document.getElementsByTagName(`base`)[0];return e&&e.href?e.href.replace(/^([^/:]*:)?\/\/[^/]*/,``):this._isHtml5?`/`:location.pathname||`/`},e.prototype.dispose=function(){},e}();function qr(e){return I.$injector=Mr,I.$q=Or,{name:`vanilla.services`,$q:Or,$injector:Mr,dispose:function(){return null}}}var Jr=Lr(`vanilla.hashBangLocation`,!1,Br,Kr),Yr=Lr(`vanilla.pushStateLocation`,!0,Wr,Kr),Xr=Lr(`vanilla.memoryLocation`,!1,Hr,Gr),Zr=function(){function e(){}return e.prototype.dispose=function(e){},e}(),Qr=Object.freeze({__proto__:null,root:R,fromJson:z,toJson:re,forEach:B,extend:V,equals:ie,identity:H,noop:ae,createProxyFunctions:oe,inherit:se,inArray:ce,_inArray:le,removeFrom:U,_removeFrom:W,pushTo:G,_pushTo:ue,deregAll:de,defaults:K,mergeR:q,ancestors:fe,pick:J,omit:pe,pluck:me,filter:he,find:ge,mapObj:_e,map:ve,values:ye,allTrueR:be,anyTrueR:xe,unnestR:Se,flattenR:Ce,pushR:we,uniqR:Y,unnest:Te,flatten:Ee,assertPredicate:De,assertMap:Oe,assertFn:ke,pairs:Ae,arrayTuples:je,applyPairs:Me,tail:Ne,copy:Pe,_extend:Ie,silenceUncaughtInPromise:ze,silentRejection:Be,makeStub:te,services:I,Glob:Ve,curry:a,compose:o,pipe:s,prop:c,propEq:l,parse:u,not:d,and:f,or:p,all:m,any:h,is:g,eq:_,val:v,invoke:y,pattern:b,isUndefined:C,isDefined:w,isNull:T,isNullOrUndefined:E,isFunction:D,isNumber:O,isString:k,isObject:A,isArray:j,isDate:M,isRegExp:N,isInjectable:P,isPromise:F,Queue:He,maxLength:Ge,padString:Ke,kebobString:qe,functionToString:Je,fnToString:Ye,stringify:Xe,beforeAfterSubstr:Ze,hostRegex:Qe,stripLastPathElement:$e,splitHash:et,splitQuery:tt,splitEqual:nt,trimHashVal:rt,splitOnDelim:it,joinNeighborsR:at,get Category(){return e.Category},Trace:_t,trace:vt,get DefType(){return e.DefType},Param:Ot,ParamTypes:kt,StateParams:jt,ParamType:yt,PathNode:Mt,PathUtils:Pt,resolvePolicies:Ft,defaultResolvePolicy:It,Resolvable:Lt,NATIVE_INJECTOR_TOKEN:Vt,ResolveContext:Ht,resolvablesBuilder:$t,StateBuilder:en,StateObject:tn,StateMatcher:nn,StateQueueManager:rn,StateRegistry:an,StateService:Dr,TargetState:Nt,get TransitionHookPhase(){return e.TransitionHookPhase},get TransitionHookScope(){return e.TransitionHookScope},HookBuilder:dn,matchState:cn,RegisteredHook:ln,makeEvent:un,get RejectType(){return e.RejectType},Rejection:We,Transition:mn,TransitionHook:sn,TransitionEventType:br,defaultTransOpts:Tr,TransitionService:Er,UrlRules:Fn,UrlConfig:In,UrlMatcher:yn,ParamFactory:xn,UrlMatcherFactory:Sn,UrlRouter:En,UrlRuleFactory:Cn,BaseUrlRule:wn,UrlService:Ln,ViewService:Dn,UIRouterGlobals:On,UI
14Router:Un,$q:Or,$injector:Mr,BaseLocationServices:Rr,HashLocationService:Br,MemoryLocationService:Hr,PushStateLocationService:Wr,MemoryLocationConfig:Gr,BrowserLocationConfig:Kr,keyValsToObjectR:Nr,getParams:Pr,parseUrl:Fr,buildUrl:Ir,locationPluginFactory:Lr,servicesPlugin:qr,hashLocationPlugin:Jr,pushStateLocationPlugin:Yr,memoryLocationPlugin:Xr,UIRouterPluginBase:Zr});function $r(){var e=null;return function(t,n){return e||=I.$injector.get(`$templateFactory`),[new ri(t,n,e)]}}var ei=function(e,t){return e.reduce(function(e,n){return e||w(t[n])},!1)};function ti(e){if(!e.parent)return{};var t=[`templateProvider`,`templateUrl`,`template`,`notify`,`async`],n=[`controller`,`controllerProvider`,`controllerAs`,`resolveAs`],r=[`component`,`bindings`,`componentProvider`],i=t.concat(n),a=r.concat(i);if(w(e.views)&&ei(a,e))throw Error(`State '`+e.name+`' has a 'views' object. It cannot also have "view properties" at the state level. Move the following properties into a view (in the 'views' object): `+(` `+a.filter(function(t){return w(e[t])}).join(`, `)));var o={};return B(e.views||{$default:J(e,a)},function(t,n){if(n||=`$default`,k(t)&&(t={component:t}),t=V({},t),ei(r,t)&&ei(i,t))throw Error(`Cannot combine: `+r.join(`|`)+` with: `+i.join(`|`)+` in stateview: '`+n+`@`+e.name+`'`);t.resolveAs=t.resolveAs||`$resolve`,t.$type=`ng1`,t.$context=e,t.$name=n;var a=Dn.normalizeUIViewTarget(t.$context,t.$name);t.$uiViewName=a.uiViewName,t.$uiViewContextAnchor=a.uiViewContextAnchor,o[n]=t}),o}var ni=0,ri=function(){function e(e,t,n){var r=this;this.path=e,this.viewDecl=t,this.factory=n,this.$id=ni++,this.loaded=!1,this.getTemplate=function(e,t){return r.component?r.factory.makeComponentTemplate(e,t,r.component,r.viewDecl.bindings):r.template}}return e.prototype.load=function(){var e=this,t=I.$q,n=new Ht(this.path),r=this.path.reduce(function(e,t){return V(e,t.paramValues)},{}),i={template:t.when(this.factory.fromConfig(this.viewDecl,r,n)),controller:t.when(this.getController(n))};return t.all(i).then(function(t){return vt.traceViewServiceEvent(`Loaded`,e),e.controller=t.controller,V(e,t.template),e})},e.prototype.getController=function(e){var t=this.viewDecl.controllerProvider;if(!P(t))return this.viewDecl.controller;var n=I.$injector.annotate(t);return new Lt(``,j(t)?Ne(t):t,n).get(e)},e}(),ii=function(){function e(){var e=this;this._useHttp=r.version.minor<3,this.$get=[`$http`,`$templateCache`,`$injector`,function(t,n,r){return e.$templateRequest=r.has&&r.has(`$templateRequest`)&&r.get(`$templateRequest`),e.$http=t,e.$templateCache=n,e}]}return e.prototype.useHttpService=function(e){this._useHttp=e},e.prototype.fromConfig=function(e,t,n){var r=`<ui-view></ui-view>`,i=function(e){return I.$q.when(e).then(function(e){return{template:e}})},a=function(e){return I.$q.when(e).then(function(e){return{component:e}})};return w(e.template)?i(this.fromString(e.template,t)):w(e.templateUrl)?i(this.fromUrl(e.templateUrl,t)):w(e.templateProvider)?i(this.fromProvider(e.templateProvider,t,n)):w(e.component)?a(e.component):w(e.componentProvider)?a(this.fromComponentProvider(e.componentProvider,t,n)):i(r)},e.prototype.fromString=function(e,t){return D(e)?e(t):e},e.prototype.fromUrl=function(e,t){return D(e)&&(e=e(t)),e==null?null:this._useHttp?this.$http.get(e,{cache:this.$templateCache,headers:{Accept:`text/html`}}).then(function(e){return e.data}):this.$templateRequest(e)},e.prototype.fromProvider=function(e,t,n){var r=I.$injector.annotate(e);return new Lt(``,j(e)?Ne(e):e,r).get(n)},e.prototype.fromComponentProvider=function(e,t,n){var r=I.$injector.annotate(e);return new Lt(``,j(e)?Ne(e):e,r).get(n)},e.prototype.makeComponentTemplate=function(e,t,n,i){i||={};var a=r.version.minor>=3?`::`:``,o=function(e){var t=qe(e);return/^(x|data)-/.exec(t)?`x-`+t:t},s=ai(n).map(function(n){var r=n.name,s=n.type,c=o(r);if(e.attr(c)&&!i[r])return c+`='`+e.attr(c)+`'`;var l=i[r]||r;if(s===`@`)return c+`='{{`+a+`$resolve.`+l+`}}'`;if(s===`&`){var u=t.getResolvable(l),d=u&&u.data,f=d&&I.$injector.annotate(d)||[],p=j(d)?`[`+(d.length-1)+`]`:``;return c+`='$resolve.`+l+p+`(`+f.join(`,`)+`)'`}return c+`='`+a+`$resolve.`+l+`'`}).join(` `),c=o(n);return`<`+c+` `+s+`></`+c+`>`},e}();function ai(e){var t=I.$injector.get(e+`Directive`);if(!t||!t.length)throw Error(`Unable to find component named '`+e+`'`);return t.map(oi).reduce(Se,[])}var oi=function(e){return A(e.bindToController)?si(e.bindToController):si(e.scope)},si=function(e){return Object.keys(e||{}).map(function(t){return[t,/^([=<@&])[?]?(.*)/.exec(e[t])]}).filter(function(e){return w(e)&&j(e[1])}).map(function(e){return{name:e[1][2]||e[0],type:e[1][1]}})},ci=function(){function e(t,n){this.stateRegistry=t,this.stateService=n,oe(v(e.prototype),this,v(this))}return e.prototype.decorator=function(e,t){return this.stateRegistry.decorator(e,t)||this},e.prototype.state=function(e,t){return A(e)?t=e:t.name=e,this.stateRegistry.register(t),this},e.prototype.onInvalid=function(e){return this.stateService.onInvalid(e)},e}(),li=function(e){return function(t){var n=t[e],r=e===`onExit`?`from`:`to`;function i(e,t){var i=V(wi(new Ht(e.treeChanges(r)).subContext(t.$$state())),{$state$:t,$transition$:e});return I.$injector.invoke(n,this,i)}return n?i:void 0}},ui=function(){function e(e){this._urlListeners=[],this.$locationProvider=e;var t=v(e);oe(t,this,t,[`hashPrefix`])}return e.monkeyPatchPathParameterType=function(e){var t=e.urlMatcherFactory.type(`path`);t.encode=function(e){return e==null?e:e.toString().replace(/(~|\/)/g,function(e){return{"~":`~~`,"/":`~2F`}[e]})},t.decode=function(e){return e==null?e:e.toString().replace(/(~~|~2F)/g,function(e){return{"~~":`~`,"~2F":`/`}[e]})}},e.prototype.dispose=function(){},e.prototype.onChange=function(e){var t=this;return this._urlListeners.push(e),function(){return U(t._urlListeners)(e)}},e.prototype.html5Mode=function(){var e=this.$locationProvider.html5Mode();return e=A(e)?e.enabled:e,e&&this.$sniffer.history},e.prototype.baseHref=function(){return this._baseHref||=this.$browser.baseHref()||this.$window.location.pathname},e.prototype.url=function(e,t,n){return t===void 0&&(t=!1),w(e)&&this.$location.url(e),t&&this.$location.replace(),n&&this.$location.state(n),this.$location.url()},e.prototype._runtimeServices=function(e,t,n,r,i){var a=this;this.$location=t,this.$sniffer=n,this.$browser=r,this.$window=i,e.$on(`$locationChangeSuccess`,function(e){return a._urlListeners.forEac
14h(function(t){return t(e)})});var o=v(t);oe(o,this,o,[`replace`,`path`,`search`,`hash`]),oe(o,this,o,[`port`,`protocol`,`host`])},e}(),di=function(){function e(e){this.router=e}return e.injectableHandler=function(e,t){return function(n){return I.$injector.invoke(t,null,{$match:n,$stateParams:e.globals.params})}},e.prototype.$get=function(){var e=this.router.urlService;return this.router.urlRouter.update(!0),e.interceptDeferred||e.listen(),this.router.urlRouter},e.prototype.rule=function(e){var t=this;if(!D(e))throw Error(`'rule' must be a function`);var n=new wn(function(){return e(I.$injector,t.router.locationService)},H);return this.router.urlService.rules.rule(n),this},e.prototype.otherwise=function(e){var t=this,n=this.router.urlService.rules;if(k(e))n.otherwise(e);else if(D(e))n.otherwise(function(){return e(I.$injector,t.router.locationService)});else throw Error(`'rule' must be a string or function`);return this},e.prototype.when=function(t,n){return(j(n)||D(n))&&(n=e.injectableHandler(this.router,n)),this.router.urlService.rules.when(t,n),this},e.prototype.deferIntercept=function(e){this.router.urlService.deferIntercept(e)},e}();r.module(`ui.router.angular1`,[]);var fi=r.module(`ui.router.init`,[`ng`]),pi=r.module(`ui.router.util`,[`ui.router.init`]),mi=r.module(`ui.router.router`,[`ui.router.util`]),hi=r.module(`ui.router.state`,[`ui.router.router`,`ui.router.util`,`ui.router.angular1`]),gi=r.module(`ui.router`,[`ui.router.init`,`ui.router.state`,`ui.router.angular1`]);r.module(`ui.router.compat`,[`ui.router`]);var _i=null;vi.$inject=[`$locationProvider`];function vi(e){_i=this.router=new Un,_i.stateProvider=new ci(_i.stateRegistry,_i.stateService),_i.stateRegistry.decorator(`views`,ti),_i.stateRegistry.decorator(`onExit`,li(`onExit`)),_i.stateRegistry.decorator(`onRetain`,li(`onRetain`)),_i.stateRegistry.decorator(`onEnter`,li(`onEnter`)),_i.viewService._pluginapi._viewConfigFactory(`ng1`,$r()),_i.urlService.config._decodeParams=!1;var t=_i.locationService=_i.locationConfig=new ui(e);ui.monkeyPatchPathParameterType(_i),_i.router=_i,_i.$get=n,n.$inject=[`$location`,`$browser`,`$window`,`$sniffer`,`$rootScope`,`$http`,`$templateCache`];function n(e,n,r,i,a,o,s){return t._runtimeServices(a,e,i,n,r),delete _i.router,delete _i.$get,_i}return _i}var yi=function(e){return[`$uiRouterProvider`,function(t){var n=t.router[e];return n.$get=function(){return n},n}]};bi.$inject=[`$injector`,`$q`,`$uiRouter`];function bi(e,t,n){if(I.$injector=e,I.$q=t,!Object.prototype.hasOwnProperty.call(e,`strictDi`))try{e.invoke(function(e){})}catch(t){e.strictDi=!!/strict mode/.exec(t&&t.toString())}n.stateRegistry.get().map(function(e){return e.$$state().resolvables}).reduce(Se,[]).filter(function(e){return e.deps===`deferred`}).forEach(function(t){return t.deps=e.annotate(t.resolveFn,e.strictDi)})}var xi=function(e){return e.urlRouterProvider=new di(e)},Si=function(){return V(_i.stateProvider,{$get:function(){return _i.stateService}})};Ci.$inject=[`$rootScope`];function Ci(e){e.$watch(function(){vt.approximateDigests++})}fi.provider(`$uiRouter`,vi),mi.provider(`$urlRouter`,[`$uiRouterProvider`,xi]),pi.provider(`$urlService`,yi(`urlService`)),pi.provider(`$urlMatcherFactory`,[`$uiRouterProvider`,function(){return _i.urlMatcherFactory}]),pi.provider(`$templateFactory`,function(){return new ii}),hi.provider(`$stateRegistry`,yi(`stateRegistry`)),hi.provider(`$uiRouterGlobals`,yi(`globals`)),hi.provider(`$transitions`,yi(`transitionService`)),hi.provider(`$state`,[`$uiRouterProvider`,Si]),hi.factory(`$stateParams`,[`$uiRouter`,function(e){return e.globals.params}]),gi.factory(`$view`,function(){return _i.viewService}),gi.service(`$trace`,function(){return vt}),gi.run(Ci),pi.run([`$urlMatcherFactory`,function(e){}]),hi.run([`$state`,function(e){}]),mi.run([`$urlRouter`,function(e){}]),fi.run(bi);var wi=function(e){return e.getTokens().filter(k).map(function(t){var n=e.getResolvable(t);return[t,e.getPolicy(n).async===`NOWAIT`?n.promise:n.data]}).reduce(Me,{})};function Ti(e){var t=e.match(/^\s*({[^}]*})\s*$/);t&&(e=`(`+t[1]+`)`);var n=e.replace(/\n/g,` `).match(/^\s*([^(]*?)\s*(\((.*)\))?\s*$/);if(!n||n.length!==4)throw Error(`Invalid state ref '`+e+`'`);return{state:n[1]||null,paramExpr:n[3]||null}}function Ei(e){var t=e.parent().inheritedData(`$uiView`),n=u(`$cfg.path`)(t);return n?Ne(n).state.name:void 0}function Di(e,t,n){var r=n.uiState||e.current.name,i=V(Ai(t,e),n.uiStateOpts||{}),a=e.href(r,n.uiStateParams,i);return{uiState:r,uiStateParams:n.uiStateParams,uiStateOpts:i,href:a}}function Oi(e){var t=Object.prototype.toString.call(e.prop(`href`))===`[object SVGAnimatedString]`,n=e[0].nodeName===`FORM`;return{attr:n?`action`:t?`xlink:href`:`href`,isAnchor:e.prop(`tagName`).toUpperCase()===`A`,clickable:!n}}function ki(e,t,n,r,i){return function(a){var o=a.which||a.button,s=i();if(!(o>1||a.ctrlKey||a.metaKey||a.shiftKey||a.altKey||e.attr(`target`))){var c=n(function(){e.attr(`disabled`)||t.go(s.uiState,s.uiStateParams,s.uiStateOpts)});a.preventDefault();var l=r.isAnchor&&!s.href?1:0;a.preventDefault=function(){l--<=0&&n.cancel(c)}}}}function Ai(e,t){return{relative:Ei(e)||t.$current,inherit:!0,source:`sref`}}function ji(e,t,n,r){var i;r&&(i=r.events),j(i)||(i=[`click`]);for(var a=e.on?`on`:`bind`,o=0,s=i;o<s.length;o++){var c=s[o];e[a](c,n)}t.$on(`$destroy`,function(){for(var t=e.off?`off`:`unbind`,r=0,a=i;r<a.length;r++){var o=a[r];e[t](o,n)}})}var Mi=[`$uiRouter`,`$timeout`,function(e,t){var n=e.stateService;return{restrict:`A`,require:[`?^uiSrefActive`,`?^uiSrefActiveEq`],link:function(r,i,a,o){var s=Oi(i),c=o[1]||o[0],l=null,u={},d=function(){return Di(n,i,u)},f=Ti(a.uiSref);u.uiState=f.state,u.uiStateOpts=a.uiSrefOpts?r.$eval(a.uiSrefOpts):{};function p(){var e=d();l&&l(),c&&(l=c.$$addStateInfo(e.uiState,e.uiStateParams)),e.href!=null&&a.$set(s.attr,e.href)}f.paramExpr&&(r.$watch(f.paramExpr,function(e){u.uiStateParams=V({},e),p()},!0),u.uiStateParams=V({},r.$eval(f.paramExpr))),p(),r.$on(`$destroy`,e.stateRegistry.onStatesChanged(p)),r.$on(`$destroy`,e.transitionService.onSuccess({},p)),s.clickable&&ji(i,r,ki(i,n,t,s,d),u.uiStateOpts)}}}],Ni=[`$uiRouter`,`$timeout`,function(e,t){var n=e.stateService;return{restrict:`A`,require:[`?^uiSrefActive`,`?^uiSrefActiveEq`],link:function(r,i,a,o){var s=Oi(i),c=o[1]||o[0],l=null,u,d={},f=function(){return Di(n,i,d)},p=[`uiState`,`uiStateParams`,`uiStateOpts`],m=p.reduce(function(e,t){return e[t]=ae,e},{});function h(){var e=f();l&&l(),c&&(l=c.$$addStateInfo(e.uiState,e.uiStateParams)),e.href!=null&&a.$set(s.attr,e.href)}
14p.forEach(function(e){d[e]=a[e]?r.$eval(a[e]):null,a.$observe(e,function(t){m[e](),m[e]=r.$watch(t,function(t){d[e]=t,h()},!0)})}),h(),r.$on(`$destroy`,e.stateRegistry.onStatesChanged(h)),r.$on(`$destroy`,e.transitionService.onSuccess({},h)),s.clickable&&(u=ki(i,n,t,s,f),ji(i,r,u,d.uiStateOpts))}}}],Pi=[`$state`,`$stateParams`,`$interpolate`,`$uiRouter`,function(e,t,n,r){return{restrict:`A`,controller:[`$scope`,`$element`,`$attrs`,function(t,i,a){var o=[],s=n(a.uiSrefActiveEq||``,!1)(t),c;try{c=t.$eval(a.uiSrefActive)}catch{}c||=n(a.uiSrefActive||``,!1)(t),f(c),this.$$addStateInfo=function(e,t){if(!(A(c)&&o.length>0)){var n=p(e,t,c);return m(),n}};function l(e){e.promise.then(m,ae)}t.$on(`$destroy`,u()),r.globals.transition&&l(r.globals.transition);function u(){var e=r.stateRegistry.onStatesChanged(d),n=r.transitionService.onStart({},l),i=t.$on(`$stateChangeSuccess`,m);return function(){e(),n(),i()}}function d(){f(c)}function f(e){A(e)&&(o=[],B(e,function(e,n){var r=function(e,n){var r=Ti(e);p(r.state,t.$eval(r.paramExpr),n)};k(e)?r(e,n):j(e)&&B(e,function(e){r(e,n)})}))}function p(t,n,r){var a={state:e.get(t,Ei(i))||{name:t},params:n,activeClass:r};return o.push(a),function(){U(o)(a)}}function m(){var n=function(e){return e.split(/\s/).filter(H)},r=function(e){return e.map(function(e){return e.activeClass}).map(n).reduce(Se,[])},a=r(o).concat(n(s)).reduce(Y,[]),c=r(o.filter(function(t){return e.includes(t.state.name,t.params)})),l=o.filter(function(t){return e.is(t.state.name,t.params)}).length?n(s):[],u=c.concat(l).reduce(Y,[]),d=a.filter(function(e){return!ce(u,e)});t.$evalAsync(function(){u.forEach(function(e){return i.addClass(e)}),d.forEach(function(e){return i.removeClass(e)})})}m()}]}}];r.module(`ui.router.state`).directive(`uiSref`,Mi).directive(`uiSrefActive`,Pi).directive(`uiSrefActiveEq`,Pi).directive(`uiState`,Ni),Fi.$inject=[`$state`];function Fi(e){var t=function(t,n,r){return e.is(t,n,r)};return t.$stateful=!0,t}Ii.$inject=[`$state`];function Ii(e){var t=function(t,n,r){return e.includes(t,n,r)};return t.$stateful=!0,t}r.module(`ui.router.state`).filter(`isState`,Fi).filter(`includedByState`,Ii);var Li=[`$view`,`$animate`,`$uiViewScroll`,`$interpolate`,`$q`,function(e,t,n,i,a){function o(){return{enter:function(e,n,i){r.version.minor>2?t.enter(e,null,n).then(i):t.enter(e,null,n,i)},leave:function(e,n){r.version.minor>2?t.leave(e).then(n):t.leave(e,n)}}}function s(e,t){return e===t}var c={$cfg:{viewDecl:{$context:e._pluginapi._rootViewContext()}},$uiView:{}},l={count:0,restrict:`ECA`,terminal:!0,priority:400,transclude:`element`,compile:function(t,r,d){return function(t,r,f){var p=f.onload||``,m=f.autoscroll,h=o(),g=r.inheritedData(`$uiView`)||c,_=i(f.uiView||f.name||``)(t)||`$default`,v,y,b,x,S={$type:`ng1`,id:l.count++,name:_,fqn:g.$uiView.fqn?g.$uiView.fqn+`.`+_:_,config:null,configUpdated:C,get creationContext(){var e=u(`$cfg.viewDecl.$context`)(g),t=u(`$uiView.creationContext`)(g);return e||t}};vt.traceUIViewEvent(`Linking`,S);function C(e){(!e||e instanceof ri)&&(s(x,e)||(vt.traceUIViewConfigUpdated(S,e&&e.viewDecl&&e.viewDecl.$context),x=e,D(e)))}r.data(`$uiView`,{$uiView:S}),D();var T=e.registerUIView(S);t.$on(`$destroy`,function(){vt.traceUIViewEvent(`Destroying/Unregistering`,S),T()});function E(){if(v&&=(vt.traceUIViewEvent(`Removing (previous) el`,v.data(`$uiView`)),v.remove(),null),b&&=(vt.traceUIViewEvent(`Destroying scope`,S),b.$destroy(),null),y){var e=y.data(`$uiViewAnim`);vt.traceUIViewEvent(`Animate out`,e),h.leave(y,function(){e.$$animLeave.resolve(),v=null}),v=y,y=null}}function D(e){var i=t.$new(),o=a.defer(),s=a.defer(),c={$cfg:e,$uiView:S},l={$animEnter:o.promise,$animLeave:s.promise,$$animLeave:s};i.$emit(`$viewContentLoading`,_),y=d(i,function(e){e.data(`$uiViewAnim`,l),e.data(`$uiView`,c),h.enter(e,r,function(){o.resolve(),b&&b.$emit(`$viewContentAnimationEnded`),(w(m)&&!m||t.$eval(m))&&n(e)}),E()}),b=i,b.$emit(`$viewContentLoaded`,e||x),b.$eval(p)}}}};return l}];Ri.$inject=[`$compile`,`$controller`,`$transitions`,`$view`,`$q`];function Ri(e,t,n,i,a){var o=u(`viewDecl.controllerAs`),s=u(`viewDecl.resolveAs`);return{restrict:`ECA`,priority:-400,compile:function(i){var c=i.html();return i.empty(),function(i,l){var u=l.data(`$uiView`);if(!u){l.html(c),e(l.contents())(i);return}var d=u.$cfg||{viewDecl:{},getTemplate:ae},f=d.path&&new Ht(d.path);l.html(d.getTemplate(l,f)||c),vt.traceUIViewFill(u.$uiView,l.html());var p=e(l.contents()),m=d.controller,h=o(d),g=s(d),_=f&&wi(f);
14if(i[g]=_,m){var v=t(m,V({},_,{$scope:i,$element:l}));h&&(i[h]=v,i[h][g]=_),l.data(`$ngControllerController`,v),l.children().data(`$ngControllerController`,v),Vi(a,n,v,i,d)}if(k(d.component))var y=qe(d.component),b=RegExp(`^(x-|data-)?`+y+`$`,`i`),x=i.$watch(function(){var e=[].slice.call(l[0].children).filter(function(e){return e&&e.tagName&&b.exec(e.tagName)});return e&&r.element(e).data(`$`+d.component+`Controller`)},function(e){e&&(Vi(a,n,e,i,d),x())});p(i)}}}}var zi=typeof r.module(`ui.router`).component==`function`,Bi=0;function Vi(e,t,n,r,i){D(n.$onInit)&&!((i.viewDecl.component||i.viewDecl.componentProvider)&&zi)&&n.$onInit();var a=Ne(i.path).state.self,o={bind:n};if(D(n.uiOnParamsChanged)){var s=new Ht(i.path).getResolvable(`$transition$`).data;r.$on(`$destroy`,t.onSuccess({},function(e){if(e!==s&&e.exiting().indexOf(a)===-1){var t=e.params(`to`),r=e.params(`from`),i=function(e){return e.paramSchema},o=e.treeChanges(`to`).map(i).reduce(Se,[]),c=e.treeChanges(`from`).map(i).reduce(Se,[]),l=o.filter(function(e){var n=c.indexOf(e);return n===-1||!c[n].type.equals(t[e.id],r[e.id])});if(l.length){var u=l.map(function(e){return e.id}),d=he(t,function(e,t){return u.indexOf(t)!==-1});n.uiOnParamsChanged(d,e)}}},o))}if(D(n.uiCanExit)){var c=Bi++,l=`_uiCanExitIds`,u=function(e){return!!e&&(e[l]&&e[l][c]===!0||u(e.redirectedFrom()))},d=function(t){var r,i=t[l]=t[l]||{};return u(t)||(r=e.when(n.uiCanExit(t)),r.then(function(e){return i[c]=e!==!1})),r},f={exiting:a.name};r.$on(`$destroy`,t.onBefore(f,d,o))}}r.module(`ui.router.state`).directive(`uiView`,Li),r.module(`ui.router.state`).directive(`uiView`,Ri);function Hi(){var e=!1;this.useAnchorScroll=function(){e=!0},this.$get=[`$anchorScroll`,`$timeout`,function(t,n){return e?t:function(e){return n(function(){e[0].scrollIntoView()},0,!1)}}]}r.module(`ui.router.state`).provider(`$uiViewScroll`,Hi),e.$injector=Mr,e.$q=Or,e.BaseLocationServices=Rr,e.BaseUrlRule=wn,e.BrowserLocationConfig=Kr,e.Glob=Ve,e.HashLocationService=Br,e.HookBuilder=dn,e.MemoryLocationConfig=Gr,e.MemoryLocationService=Hr,e.NATIVE_INJECTOR_TOKEN=Vt,e.Ng1ViewConfig=ri,e.Param=Ot,e.ParamFactory=xn,e.ParamType=yt,e.ParamTypes=kt,e.PathNode=Mt,e.PathUtils=Pt,e.PushStateLocationService=Wr,e.Queue=He,e.RegisteredHook=ln,e.Rejection=We,e.Resolvable=Lt,e.ResolveContext=Ht,e.StateBuilder=en,e.StateMatcher=nn,e.StateObject=tn,e.StateParams=jt,e.StateProvider=ci,e.StateQueueManager=rn,e.StateRegistry=an,e.StateService=Dr,e.TargetState=Nt,e.Trace=_t,e.Transition=mn,e.TransitionEventType=br,e.TransitionHook=sn,e.TransitionService=Er,e.UIRouter=Un,e.UIRouterGlobals=On,e.UIRouterPluginBase=Zr,e.UrlConfig=In,e.UrlMatcher=yn,e.UrlMatcherFactory=Sn,e.UrlRouter=En,e.UrlRouterProvider=di,e.UrlRuleFactory=Cn,e.UrlRules=Fn,e.UrlService=Ln,e.ViewService=Dn,e._extend=Ie,e._inArray=le,e._pushTo=ue,e._removeFrom=W,e.all=m,e.allTrueR=be,e.ancestors=fe,e.and=f,e.any=h,e.anyTrueR=xe,e.applyPairs=Me,e.arrayTuples=je,e.assertFn=ke,e.assertMap=Oe,e.assertPredicate=De,e.beforeAfterSubstr=Ze,e.buildUrl=Ir,e.compose=o,e.copy=Pe,e.core=Qr,e.createProxyFunctions=oe,e.curry=a,e.default=`ui.router`,e.defaultResolvePolicy=It,e.defaultTransOpts=Tr,e.defaults=K,e.deregAll=de,e.eq=_,e.equals=ie,e.extend=V,e.filter=he,e.find=ge,e.flatten=Ee,e.flattenR=Ce,e.fnToString=Ye,e.forEach=B,e.fromJson=z,e.functionToString=Je,e.getLocals=wi,e.getNg1ViewConfigFactory=$r,e.getParams=Pr,e.hashLocationPlugin=Jr,e.hostRegex=Qe,e.identity=H,e.inArray=ce,e.inherit=se,e.invoke=y,e.is=g,e.isArray=j,e.isDate=M,e.isDefined=w,e.isFunction=D,e.isInjectable=P,e.isNull=T,e.isNullOrUndefined=E,e.isNumber=O,e.isObject=A,e.isPromise=F,e.isRegExp=N,e.isString=k,e.isUndefined=C,e.joinNeighborsR=at,e.kebobString=qe,e.keyValsToObjectR=Nr,e.locationPluginFactory=Lr,e.makeEvent=un,e.makeStub=te,e.map=ve,e.mapObj=_e,e.matchState=cn,e.maxLength=Ge,e.memoryLocationPlugin=Xr,e.mergeR=q,e.ng1ViewsBuilder=ti,e.noop=ae,e.not=d,e.omit=pe,e.or=p,e.padString=Ke,e.pairs=Ae,e.parse=u,e.parseUrl=Fr,e.pattern=b,e.pick=J,e.pipe=s,e.pluck=me,e.prop=c,e.propEq=l,e.pushR=we,e.pushStateLocationPlugin=Yr,e.pushTo=G,e.removeFrom=U,e.resolvablesBuilder=$t,e.resolvePolicies=Ft,e.root=R,e.services=I,e.servicesPlugin=qr,e.silenceUncaughtInProm
14ise=ze,e.silentRejection=Be,e.splitEqual=nt,e.splitHash=et,e.splitOnDelim=it,e.splitQuery=tt,e.stringify=Xe,e.stripLastPathElement=$e,e.tail=Ne,e.toJson=re,e.trace=vt,e.trimHashVal=rt,e.uniqR=Y,e.unnest=Te,e.unnestR=Se,e.val=v,e.values=ye,e.watchDigests=Ci,Object.defineProperty(e,"__esModule",{value:!0})}))}))(),angular.module(`monospaced.elastic`,[]).directive(`msdElastic`,[`$timeout`,`$window`,function(e,t){return{require:`ngModel`,restrict:`A, C`,link:function(n,r,i,a){var o=r[0],s=r;if(o.nodeName!==`TEXTAREA`||!t.getComputedStyle)return;s.css({overflow:`hidden`,"overflow-y":`hidden`,"word-wrap":`break-word`});var c=o.value;o.value=``,o.value=c;var l=i.msdElastic?i.msdElastic.replace(/\\n/g,` 15`):``,u=angular.element(t),d=`position: absolute; top: -999px; right: auto; bottom: auto;left: 0; overflow: hidden;box-sizing: content-box;min-height: 0 !important; height: 0 !important; padding: 0;word-wrap: break-word; border: 0; margin: 0;`,f=angular.element(`<textarea aria-hidden="true" tabindex="-1" style="`+d+`"/>`).data(`elastic`,!0),p=f[0],m=getComputedStyle(o),h=m.getPropertyValue(`resize`),g,_,v=[`font-family`,`font-size`,`font-weight`,`font-style`,`letter-spacing`,`line-height`,`text-transform`,`word-spacing`,`text-indent`];if(s.data(`elastic`))return;s.css({resize:h===``||h===`none`||h===`vertical`?`none`:`horizontal`}).data(`elastic`,!0);function y(){var e=d;g=o,m=getComputedStyle(o),angular.forEach(v,function(t){e+=t+`:`+m.getPropertyValue(t)+`;`}),p.setAttribute(`style`,e)}function b(){var t,r,i,a,c,u,d,f,h,v,b,x;g!==o&&y(),_||(_=!0,p.value=o.value+l,p.style.overflowY=o.style.overflowY,b=o.style.height===``?`auto`:parseInt(o.style.height,10),h=getComputedStyle(o),v=h.getPropertyValue(`width`),a=parseInt(h.getPropertyValue(`max-height`),10),a=a&&a>0?a:9e4,t=h.getPropertyValue(`box-sizing`)===`border-box`,r=t?{width:parseInt(h.getPropertyValue(`border-right-width`),10)+parseInt(h.getPropertyValue(`padding-right`),10)+parseInt(h.getPropertyValue(`padding-left`),10)+parseInt(h.getPropertyValue(`border-left-width`),10),height:parseInt(h.getPropertyValue(`border-top-width`),10)+parseInt(h.getPropertyValue(`padding-top`),10)+parseInt(h.getPropertyValue(`padding-bottom`),10)+parseInt(h.getPropertyValue(`border-bottom-width`),10)}:{width:0,height:0},u=parseInt(m.getPropertyValue(`min-height`),10),i=parseInt(h.getPropertyValue(`height`),10),c=(u||i)-r.height,v.substr(v.length-2,2)===`px`&&(x=parseInt(v,10)-r.width,p.style.width=x+`px`),d=p.scrollHeight,d>a?(d=a,f=`scroll`):d<c&&(d=c),d+=r.height,o.style.overflowY=f||`hidden`,b!==d&&(n.$emit(`elastic:resize`,s,b,d),o.style.height=d+`px`),e(function(){_=!1},1,!1))}function x(){_=!1,b()}o.oninput=`onpropertychange`in o&&`oninput`in o?o.onkeyup=b:b,u.bind(`resize`,x),n.$watch(function(){return a.$modelValue},function(e){(e||e===``)&&(p.parentNode!==document.body&&angular.element(document.body).append(p),x())}),n.$on(`elastic:adjust`,function(){y(),x()}),n.$on(`$destroy`,function(){f.remove(),u.unbind(`resize`,x)})}}}]),typeof Promise.withResolvers!=`function`&&(Promise.withResolvers=function(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}),angular.module(`bandlab.account`,[]),angular.module(`bandlab.account`).controller(`AuthCtrl`,[`$scope`,function(e){e.$on(`auth:start`,function(){e.waitingForAuth=!0}),e.$on(`auth:error`,function(){e.waitingForAuth=!1})}]),angular.module(`bandlab.account`).controller(`SnsConnectCtrl`,[`$scope`,`authService`,function(e,t){e.snsConnect=function(e,n){if(d.get(`ageRestricted`)===`true`){window.location.href=`https://accounts.bandlab.com/birthday-form?error=188`;return}t.setAfterAuthState();let r=new URLSearchParams({redirect_uri:`https://www.bandlab.com/auth/bandlab/callback`,nonce:i()});n&&r.append(`state`,n);let a=`https://accounts.bandlab.com/oauth/connect/authorize?client_id=bandlab_web&scope=openid+profile+email+linked_accounts+offline_access&response_type=code&response_mode=fragment&${r.toString()}`;window.location.href=`https://accounts.bandlab.com/login?provider=${e}&ReturnUrl=${encodeURIComponent(a)}`}}]);function $(e,t,n,r={},i){if(ip(e))return e.then(({default:e})=>
15{if(!(`$$destroyed`in n&&n.$$destroyed))return $(e,t,n,r,i)});let a=_e({provide:r,render:()=>fe(e,i),name:`__name`in e?e.__name:void 0});return a.mount(t),n.$on(`$destroy`,a.unmount),a}function ip(e){return typeof e.then==`function`}angular.module(`bandlab.account`).directive(`completeProfileBirthday`,function(){return{restrict:`A`,scope:{isLastStep:`=`,birthday:`=`,nextStep:`&`},link:function(e,t){let n=h({isLastStep:e.isLastStep,birthday:e.birthday,nextStep:function(){e.$apply(function(){e.nextStep()})},onUpdateBirthday:function(t){e.birthday=t,n.birthday=t,e.$applyAsync()}});e.$watch(`isLastStep`,function(e){n.isLastStep=e}),$(import(`./D7domaBH.js`),t[0],e,{},n)}}}).directive(`completeProfileGoals`,function(){return{restrict:`A`,scope:{isLastStep:`=`,selectedGoal:`=`,nextStep:`&`},link:function(e,t){let n=h({selectedGoal:e.selectedGoal,nextStep:e.nextStep,onUpdateSelectedGoal:function(t){e.selectedGoal=t,n.selectedGoal=t,e.$applyAsync()}});$(import(`./uUjLUH7F.js`),t[0],e,{},n)}}}).directive(`completeProfileSkills`,function(){return{restrict:`A`,scope:{isLastStep:`=`,skills:`=`,nextStep:`&`},link:function(e,t){let n=h({skills:e.skills,nextStep:e.nextStep});$(import(`./HJhOFvFQ.js`),t[0],e,{},n)}}}).directive(`completeProfileGenres`,function(){return{restrict:`A`,scope:{isLastStep:`=`,genres:`=`,nextStep:`&`},link:function(e,t){let n=h({genres:e.genres,nextStep:e.nextStep});$(import(`./GXfu5VJs.js`),t[0],e,{},n)}}}).directive(`completeArtistRecommendations`,[`$injector`,function(e){return{restrict:`EA`,replace:!0,scope:{isLastStep:`=`,nextStep:`&`,artistRecommendations:`=`},template:`<div class="complete-profile-artist-recommendations"></div>`,link:function(t,n){let r=h({nextStep:t.nextStep,artistRecommendations:t.artistRecommendations});$(import(`./BdEK3FGr.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`completeProfileEmailConfirmation`,[`$injector`,`AppNotifications`,`authService`,`completeProfile`,`Identity`,`Me`,function(e,t,n,r,i,a){return{restrict:`A`,scope:{isExistingUser:`=`},link:function(o,s){let c=h({isExistingUser:o.isExistingUser});$(import(`./D8g_MLdq.js`),s[0],o,{$injector:e,AppNotifications:t,authService:n,completeProfile:r,Identity:i,Me:a},c)}}}]).directive(`completeProfileSimplifyLogin`,[`$injector`,function(e){return{restrict:`A`,scope:{nextStep:`&`},link:function(t,n){let r=h({nextStep:function(){t.$apply(function(){t.nextStep()})}});$(import(`./Bh16EyeZ.js`),n[0],t,{$injector:e},r)}}}]),angular.module(`bandlab.account`).directive(`accountIncompleteZeroCase`,[`Identity`,`Me`,function(e,t){return{restrict:`A`,link:function(n,r){Me(t,`account_validation_settings`).then(i=>{$(import(`./DCl5xd6p.js`),r[0],n,{Identity:e,Me:t},{flag:i})})}}}]),angular.module(`bandlab.account.login`,[`bandlab.account`]),angular.module(`bandlab.account.login.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`login`,{url:`/login?state`,resolve:{redirect:[`$stateParams`,function(e){if(navigator.userAgent.includes(`Prerender`))return;let t=new URLSearchParams({redirect_uri:`https://www.bandlab.com/auth/bandlab/callback`,nonce:i(),prompt:`login`});return e.state&&t.append(`state`,e.state),new Promise(function(){window.location.href=`https://accounts.bandlab.com/oauth/connect/authorize?client_id=bandlab_web&scope=openid+profile+email+linked_accounts+offline_access&response_type=code&response_mode=fragment&${t.toString()}`})}]}}).state(`oauthBandlabCallback`,{url:`/auth/bandlab/callback`,params:{rewriteTracking:function(){return()=>`/auth/bandlab/callback`}},template:`<div></div>`,data:{hideNavBar:!0},controller:[`$analytics`,`$location`,`$state`,`authService`,`ChatNotifications`,function(e,t,n,r,i){let a=Object.fromEntries(new URLSearchParams(t.hash()));return a.code?r.getNewAccessToken(a.code).then(function(t){return e.eventTrack(`API_Auth_finished`,{platform:`firebase`,params:{is_signup:!1,success:!0}}),t}).catch(function(t){return e.eventTrack(`API_Auth_finished`,{platform:`firebase`,params:{is_signup:!1,success:!1}}),n.go(`500`),Promise.reject(t)}).then(function(e){return s(e),r.refreshMe()}).then(function(e){return Kn(e).refreshMembership().then(()=>e)}
15).then(function(t){return e.eventTrack(`initial_profile_load_finished`,{platform:`firebase`,params:{is_signup:!1,success:!0}}),r.identifyUserForTrackers(t)}).catch(function(t){return d.remove(`loginMethod`,{domain:`bandlab.com`}),e.eventTrack(`initial_profile_load_finished`,{platform:`firebase`,params:{is_signup:!1,success:!1}}),Promise.reject(t)}).then(function(e){let t=d.get(`loginMethod`);return t===`passkey`&&(d.remove(`loginMethod`,{domain:`bandlab.com`}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logLogin:e}){return e(t)}).catch(function(){})),e}).then(function(t){if(Date.now()-new Date(t.createdOn)<6e4&&e.eventTrack(`Register`,{category:`Authentication`,label:d.get(`signupProvider`)}),a.state){let{path:e=``}=JSON.parse(atob(a.state)),t=new URL(e,window.location.origin);if(t.origin===window.location.origin){window.location.href=t.href;return}}return i.start(),r.redirectAfterAuth()}):n.go(`login`,{state:a.state})}]}).state(`oauthAirbitCallback`,{url:`/auth/airbit/callback?state&code`,params:{rewriteTracking:function(){return()=>`/auth/airbit/callback`}},template:`<div></div>`,controller:[`$http`,`$state`,`$stateParams`,`authService`,`Identity`,`Me`,function(e,t,n,r,i,a){if(!n.code)return u();let s=d.get(`airbitState`);if(d.remove(`airbitState`),n.state!==s){t.go(`500`);return}let c=d.get(`airbitCodeVerifier`);d.remove(`airbitCodeVerifier`);let l=new FormData;l.append(`grant_type`,`authorization_code`),l.append(`client_id`,`bandlab`),l.append(`redirect_uri`,`https://www.bandlab.com/auth/airbit/callback`),l.append(`code`,n.code),l.append(`state`,s),l.append(`code_verifier`,c),e.post(`https://accounts.airbit.com/oauth/token`,l,{headers:{"Content-Type":void 0}}).then(function(t){let n=t.data.access_token;return e.get(`https://api.airbit.com/sso/profile`,{headers:{Authorize:n}})}).then(function(e){return i.update({links:{...a.links,airbit:`https://www.airbit.com/${e.data.data.nickname}`}}).$promise}).then(function(e){return delete e.genres,delete e.skills,r.setMe(e)}).then(u).catch(function(){return t.go(`500`)});function u(){return o()&&(location.href=`_#bl_closeWebView`),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSocialLinkAdd:e}){e(`airbit`)}),t.go(`settings.profile`)}}]}).state(`oauthInstagramCallback`,{url:`/auth/instagram/callback?access_token&user_id`,params:{rewriteTracking:function(){return()=>`/auth/instagram/callback`}},template:`<div></div>`,controller:[`$http`,`$state`,`$stateParams`,`authService`,`Identity`,`Me`,function(e,t,n,r,i,a){if(!n.access_token)return s();e({url:`https://graph.instagram.com/me`,params:{fields:`id,username`,access_token:n.access_token}}).then(function(e){return i.update({links:{...a.links,instagram:`https://www.instagram.com/${e.data.username}`}}).$promise}).then(function(e){return delete e.genres,delete e.skills,r.setMe(e)}).then(s).catch(function(){return t.go(`500`)});function s(){return o()&&(location.href=`_#bl_closeWebView`),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSocialLinkAdd:e}){e(`instagram`)}),t.go(`settings.profile`)}}]}).state(`oauthSoundcloudCallback`,{url:`/auth/soundcloud/callback?success`,params:{rewriteTracking:function(){return()=>`/auth/soundcloud/callback`}},template:`<div></div>`,controller:[`$state`,`$stateParams`,function(e,t){return t.success?n():e.go(`500`);function n(){return o()&&(location.href=`_#bl_closeWebView`),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSocialLinkAdd:e}){e(`soundcloud`)}),e.go(`settings.profile`)}}]}).state(`oauthTiktokCallback`,{url:`/auth/tiktok/callback?success`,params:{rewriteTracking:function(){return()=>`/auth/tiktok/callback`}},template:`<div></div>`,controller:[`$state`,`$stateParams`,function(e,t){return t.success?n():e.go(`500`);function n(){return o()&&(location.href=`_#bl_closeWebView`),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSocialLinkAdd:e}){e(`tiktok`)}),e.go(`settings.profile`)}}]}).state(`emailConfirmation`,{url:`/email-confirm?userId&code`,controller:[`$stateParams`,function(e){location.href=`https://accounts.bandlab.com/email-confirmation?${new URLSearchParams({code:e.code,userId:e.userId}).toString()}`}]}).state(`logout`,{url:`/logout`,resolve:{redirect:[`authService`,function(e){e.logoutAccounts()}]}}).state(`logoutSuccess`,{url:`/logout-success`,resolve:{redirect:[`authService`,function(e){e.logout()}]}})}]);const ap=Le(async function(e){return e?.isUser()?await ke(e,`media_tab_default`)===`true`:!1},sp);function op(e){document.body.classList.toggle(`media-tab-default-experiment-enabled`,e)}function sp(e){return e?.id??`anonymous`}const cp=`onboarding`,lp=new Set([`landing`,`login`,`passwordReset`,`signUp`]),up=new Set(`aiTokens.album.beatsPurchase.checkout.connectTipaltiAccount.feed.chat.classroom.classrooms.dashboard.dashboardPagesEPK.discover.distributionCreate.distributionCreateEmpty.distributionEdit.fanReachCreate.getMembership.getVerified.industryConnect.
15joinProject.library.me.membershipChangePlan.membershipFeatures.membershipOnboarding.membershipReferral.mixEditor.notifications.playbackhistory.postNew.profileViewers.promoteWizard.promoteOverview.report.reportEntity.reportGeneral.school.search.settings.userMe.userStreaks.onboarding.logout.warning`.split(`.`));async function dp(e){return await ap(e)?`discover`:`feed`}function fp(e){return{exists:o,getDirHandle:t,getHandlesInDirectory:i,readFile:a,remove:n,removeAll:r,updateFile:s};async function t(t,n={create:!0}){let r=await(await navigator.storage.getDirectory()).getDirectoryHandle(e,n);if(t){let e=gp(t);for(let t of e)r=await r.getDirectoryHandle(t,n)}return r}async function n(e){try{let n=mp(e),r=hp(e);await(await t(n)).removeEntry(r,{recursive:!0})}catch{}}async function r(){let e=await t(`/`);for await(let t of e.values())e.removeEntry(t.name,{recursive:!0})}async function i(e){let n=await t(e),r=[];for await(let e of n.values())r.push(e);return r}async function a(e,n={}){try{let r=mp(e),i=hp(e);return await(await(await t(r,{create:!1})).getFileHandle(i,n)).getFile()}catch{}}async function o(e){try{let n=await t(mp(e),{create:!1}),r=hp(e),[i,a]=await Promise.all([n.getFileHandle(r,{create:!1}).catch(()=>null),n.getDirectoryHandle(r,{create:!1}).catch(()=>null)]);return!!i||!!a}catch{return!1}}async function s(n,r){let i=mp(n),a=hp(n),o=await(await t(i,{create:!0})).getFileHandle(a,{create:!0});if(!o.createWritable){await pp(r,n,e);return}let s=await o.createWritable();await s.write(r),await s.close()}}function pp(e,t,n){return new Promise((r,i)=>{let a=new Worker(`https://www.bandlab.com/web-app/common/workers/updateFileWorker-90b3206a6c.js`,{type:`module`});a.onmessage=function(e){e.data.success?r():i(Error(e.data.error))},a.onerror=function(e){i(Error(e.message)),Sentry.onLoad(()=>{Sentry.captureException(e)})},a.postMessage({blob:e,filePath:t,dbName:n})})}function mp(e){return gp(e).slice(0,-1).join(`/`)||``}function hp(e){let t=gp(e);return t[t.length-1]||``}function gp(e){return e.trim().replace(/\/+/g,`/`).replace(/^\//,``).replace(/\/$/,``).split(`/`).map(e=>e.trim()).filter(Boolean)}async function _p(){await vp.removeAll(),await yp.removeAll(),await bp.removeAll()}const vp=fp(`splitter`),yp=fp(`studio`),bp=fp(`revision`),xp=[`large`,`medium`,`compact`],Sp=/^(\d{4,6})-(\d{2})-(\d{2})$/;function Cp(e){let t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function wp(e){let t=new Date(e);return`${t.getUTCFullYear()}-${String(t.getUTCMonth()+1).padStart(2,`0`)}-${String(t.getUTCDate()).padStart(2,`0`)}`}function Tp(e){let[t,n,r]=e.split(`-`);return!t||!n||!r?new Date(``):new Date(Number(t),Number(n)-1,Number(r))}function Ep(){let e=ne(`authService`);return{snsConnect:t};function t(t){e.setAfterAuthState();let n=`https://accounts.bandlab.com/oauth/connect/authorize?client_id=bandlab_web&scope=openid+profile+email+linked_accounts+offline_access&response_type=code&response_mode=fragment&redirect_uri=https://www.bandlab.com/auth/bandlab/callback&nonce=${i()}`;window.location.href=`https://accounts.bandlab.com/login?provider=${t}&ReturnUrl=${encodeURIComponent(n)}`}}function Dp(e){let t=new Date,n=Tp(e),r=t.getFullYear()-n.getFullYear(),i=t.getMonth()-n.getMonth();return(i<0||i===0&&t.getDate()<n.getDate())&&r--,r}function Op(e){if(!e)return`Add your birthday`;let t=Tp(e),n=new Date,r=new Date(n.getFullYear()-6,n.getMonth(),n.getDate());return t<new Date(1900,0,1)||t>r?`Invalid date`:!0}angular.module(`bandlab.account`).factory(`authService`,[`$analytics`,`$http`,`$injector`,`$q`,`$rootScope`,`$state`,`$transitions`,`$window`,`Ap
15pNotifications`,`ChatNotifications`,`Identity`,`Me`,`Modal`,`Page`,function(e,t,n,r,i,u,f,p,m,h,g,_,v,y){var b,x=r.resolve(),S,C;try{b=JSON.parse(Y.afterAuthState)}catch{b=null}return i.$on(`$request:forbidden`,function(e,t){if(!_.isAnonymous()){if(t.errorCode===203){u.go(`404`);return}k(t.errorCode,t.message,t.action)}}),window.renewSession=te,{displayAuthModal:w,displayConfirmationEmailError:E,displayUnvalidatedProfileError:D,displayUnderAgeLimitError:O,getNewAccessToken:ee,getUser:N,identifyUserForTrackers:F,initSession:L,logout:R,logoutAccounts:ne,redirectAfterAuth:re,redirectAfterSignUp:B,refreshFtue:M,refreshMe:j,renewSession:te,setAfterAuthState:V,setMe:A,signUp:I,solveCaptcha:ie};function w({title:e,description:t,onCancel:n,redirectState:r,overlayClose:i,escapeClose:a}={}){C=new v({id:`authModal`,templateUrl:`https://www.bandlab.com/web-app/account/signUp/partials/_sign-up-modal-f663121e5.html`,contentScope:{title:e,description:t,redirectState:r,overlayClose:i,escapeClose:a},overlayClose:i,escapeClose:a,onCancel:n}),C.show()}function T(e){return{bandInvite:`Requests to join are locked`,comment:`Comments are disabled`,communityInvite:`Requests to join are locked`,invite:`Requests to join are locked`,projectInvite:`Requests to join are locked`,talkTo:`Chat is disabled`}[e]||`This feature is locked`}function E(e){let t=T(e);m.addNotification({id:`confirmationEmailError`,title:t,content:`Confirm your email to access all features.`,action:` 16 <a class="notification-action-text-inline" href="${u.href(`settings.account`)}">Go to Account Settings</a> 17 `,classList:`warning`})}function D(e){let t=T(e);m.addNotification({id:`unvalidatedProfileError`,title:t,content:`Finish your account setup to unlock social features`,action:` 18 <a class="notification-action-text-inline" href="${u.href(`settings.account`)}">Go to Account Settings</a> 19 `,classList:e===`talkTo`?`alert`:`warning`})}function O(e){let t=T(e);m.addNotification({id:`underAgeLimitError`,title:t,content:`For your safety, you need to be older to use this feature.`,action:` 20 <a class="notification-action-text-inline" href="https://help.bandlab.com/hc/en-us/articles/43054754867481-Why-Are-Certain-Features-Age-Restricted">Open</a> 21 `,classList:`alert`})}function k(e,t,n){switch(e){case 201:Me(_,`account_validation_settings`).then(e=>{let t=e.payload?.extra_requirements?.includes(`birthday`),r=e.payload?.extra_requirements?.includes(`age_limit`);t&&!_.birthday?D(n):t&&r&&_.age<e.payload.age_limit?O(n):E(n)});break;case 202:m.addNotification({title:t||`Your account has been suspended`,action:`<a href="https://help.bandlab.com/hc/en-us/articles/360026519473" target="_blank" class="notification-action-text-inline">Learn More</a>`,classList:`alert`});break;case 204:case 205:m.addNotification({content:t,classList:`alert`,autoclose:1e4});break;case 207:m.addNotification({content:`Unblock this user to view his/her profile.`,classList:`alert`,autoclose:1e4})}}function A(e){return r(function(t){Object.assign(_,e),_.birthday&&(_.age=Dp(_.birthday)),Promise.all([Me(_,`account_validation_settings`),ke(_,`onboarding_birthday_required_enabled`)]).then(([e,n])=>{let r=e.payload?.extra_requirements?.includes(`birthday`);e.payload?.extra_requirements?.includes(`age_limit`)?(_.permissions.canCreateConversations=_.permissions.canCreateConversations&&!!_.birthday&&_.age>=e.payload.age_limit,_.permissions.canInvite=_.permissions.canInvite&&!!_.birthday&&_.age>=e.payload.age_limit,_.permissions.canComment=_.permissions.canComment&&!!_.birthday&&_.age>=e.payload.age_limit):r&&(_.permissions.canCreateConversations=_.permissions.canCreateConversations&&!!_.birthday,_.permissions.canInvite=_.permissions.canInvite&&!!_.birthday,_.permissions.canComment=_.permissions.canComment&&!!_.birthday),_.isOnboarded=(_.hasPassword||_.isSocial)&&(n===`false`||!!_.birthday)&&_.ftue.setGenres&&_.ftue.setSkills&&_.ftue.setInspiredBy&&!!_.email&&_.isEmailConfirmed,o()&&(_.isOnboarded=!0),t(_)})})}function j(){return N().catch(P)}
21function M(){return g.ftue().$promise.then(function(e){return _.ftue=e,_})}function N(){return Promise.all([g.info().$promise,g.ftue().$promise]).then(function([e,t]){return e.ftue=t,e}).then(A).then(function(e){return y.update(),e})}function P(e){return e.status?import(`./DvQD5s06.js`).then(e=>e.t).then(function({logRefreshTokenFailed:t}){return t(e)}):import(`./DvQD5s06.js`).then(e=>e.t).then(function({logForceSignOut:e}){return e()}),R()}function F(t){return Sentry.onLoad(function(){let e=Sentry.getCurrentScope();e.setTag(`touch`,matchMedia(`(any-hover: none)`).matches),e.setUser({id:t.id,username:t.username})}),e.setUsername(t.id),Ne(_),Promise.all([import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDailyOpen:e}){return e()}),import(`./DHI6ZMoS.js`).then(e=>e.t).then(function({setUserProperties:e}){return e(t)}),import(`./BWvciV-z.js`).then(e=>e.t).then(function({setUserProperties:e}){return e(t)}),import(`./DNnIhUw8.js`).then(e=>e.t).then(function({startSession:e}){return e(t)}),import(`./DQhIDnCU.js`).then(e=>e.t).then(function({setIdentity:e}){return e(t)})]).then(function(){return t}).catch(function(e){return t})}function ee(e){let t=new URLSearchParams;return t.append(`client_id`,`bandlab_web`),t.append(`redirect_uri`,`https://www.bandlab.com/auth/bandlab/callback`),e?(t.append(`grant_type`,`authorization_code`),t.append(`code`,e)):(t.append(`grant_type`,`refresh_token`),t.append(`refresh_token`,a())),Un.post(`https://accounts.bandlab.com/oauth/connect/token`,{body:t}).json()}function te(){return S?x:l()?(S=!0,x=ee().then(s).then(N).then(function(e){return F(e),h.start(),n.get(`StreaksService`).bootstrap(),e}).catch(P).finally(function(){S=!1}),x):r.reject()}function I(t,r=null,i=!1){let a={...r?{"bl-captcha-response":r}:{}};return t.client_id=`bandlab_web`,t.scope=`openid profile email linked_accounts offline_access`,d.get(`invitationKey`)&&(t.accessKey=d.get(`invitationKey`)),S=!0,x=Un.post(`https://accounts.bandlab.com/oauth/users`,{headers:a,json:t,credentials:`include`}).json().then(function(n){return e.eventTrack(`API_Auth_finished`,{platform:`firebase`,params:{is_signup:!0,method:t.provider,success:!0}}),n}).catch(function(n){return e.eventTrack(`API_Auth_finished`,{platform:`firebase`,params:{is_signup:!0,method:t.provider,success:!1}}),Promise.reject(n)}).then(s).then(N).then(function(n){return e.eventTrack(`initial_profile_load_finished`,{platform:`firebase`,params:{is_signup:!0,method:t.provider,success:!0}}),n}).catch(function(n){return e.eventTrack(`initial_profile_load_finished`,{platform:`firebase`,params:{is_signup:!0,method:t.provider,success:!1}}),Promise.reject(n)}).then(function(e){return F(e)}).then(function(t){return h.start(),n.get(`StreaksService`).bootstrap(),e.eventTrack(`Register`,{category:`Authentication`,label:i?`MagicLink`:`Password`}),d.remove(`invitationKey`),t}).finally(function(){S=!1}),x}function L(e){return A(new g(e)).then(e=>(F(e),h.start(),n.get(`StreaksService`).bootstrap(),y.update(),e))}async function R(){let e=Y.getItem(`redirectAfterLogout`)??``;return await z(),new Promise(function(){p.location.href=`${document.baseURI}${e}`})}async function ne(){try{await Un.post(`https://accounts.bandlab.com/oauth/logout?client_id=bandlab_web`,{credentials:`include`})}catch{}return R()}async function z(){c();let e=Y.privacyConsent;Y.clear(),Y.privacyConsent=e||`{}`,`indexedDB`in window&&indexedDB.deleteDatabase(Dt),`FileSystemHandle`in window&&_p(),await import(`./BWvciV-z.js`).then(e=>e.t).then(function({clearUserProperties:e}){return e()})}function re(){_.isOnboarded?b?(u.go(b.toState,b.toParams,{location:`replace`}),b=null,delete Y.afterAuthState):dp(_).then(e=>{u.go(e,{username:_.username},{location:`replace`}),f.onSuccess({from:`onboarding`},function(){H()})}):B(),C&&C.destroy()}function B(){if(b?.toUrl){let e=new URL(b.toUrl,window.location.origin);if(e.origin===new URL(`https://accounts.bandlab.com`).origin){window.location.href=e.href;return}}let e=[`mastering`,`sounds`,`mixEditor`,`songStarter`,`splitter`].includes(b?.toState)?b.toState:cp;u.go(e,{...b?.toParams??{}},{location:`replace`,reload:!0}),C&&C.destroy()}function V(e={toState:u.current.name,toParams:u.params}){lp.has(e.toState)?(b=null,delete Y.afterAuthState):(b={toState:e.toState,toParams:{...e.toParams},toUrl:e.toUrl},Y.afterAuthState=JSON.stringify(e))}function ie(){return new Promise(function(e,n){let r=new v({overlayClose:!1,template:`<div class="modal-content-small"><div class="modal-content recaptcha"></div><button type="button" class="angularjs-ds-modal-close-button" aria-label="Close" ng-click="cancel()"><icon-svg name="x" size="16"></icon-svg></button></div>`,onCancel:()=>n(Error(`Cancel`)),onCreate:function(i){Re(`https://www.recaptcha.net/recaptcha/api.js?render=explicit`).then(function(){return new Promise(e=>grecaptcha.ready(e))}).then(function(){return new Promise(function(e){grecaptcha.render(i[0].querySelector(`.recaptcha`),{sitekey:`6LeulbUUAAAAAPyBTaqWfZcxwuwG1u9tw37__Ahn`,callback:e})})}).then(function(i){t.post(`https://www.bandlab.com/api/v1.3/recaptcha/verify`,{"g-recaptcha-response":i}).then(e).catch(n).finally(()=>r.destroy())})}});r.show()})}function H(){ke(_,`on_signup_paywall`).then(e=>e===`false`||e===`off`).then(e=>{e||ai({productAttribution:`on_signup_paywall`,productAttributionGroup:`misc`,useCheckoutModal:!0})})}}]);function kp(e){return`streaks:${e}`}function Ap(e){try{let t=Y.getItem(kp(e));if(!t)return{uiSeen:{}}
21;let n=JSON.parse(t);return!n||typeof n!=`object`?{uiSeen:{}}:{uiSeen:n.uiSeen&&typeof n.uiSeen==`object`?n.uiSeen:{},tracker:n.tracker}}catch{return{uiSeen:{}}}}function jp(e,t){let n=kp(e),r=JSON.stringify(t);return Y.setItem(n,r),Y.getItem(n)===r}function Mp(e,t){return Ap(e).uiSeen[t]}function Np({userId:e,key:t,value:n}){let r=Ap(e);r.uiSeen[t]=n,jp(e,r)}function Pp(e,t){let n=Ap(e);t in n.uiSeen&&(delete n.uiSeen[t],jp(e,n))}function Fp(e){return Ap(e).tracker??null}function Ip(e,t){let n=Ap(e),r=n.tracker;return Lp(r?.stateVersion)>Lp(t?.stateVersion)||(n.tracker=t,!jp(e,n))?{applied:!1,tracker:r}:{applied:!0,tracker:t}}function Lp(e){return Number.isFinite(e)?Number(e):-1}const Rp={post:1,comment:3,discover:5};function zp(e){if(!e||!e.enrolled)return{enrolled:!1};let t=tm(e.currentWeek,e.dayDurationMinutes),n=um({value:e.streakCounter,fallback:0,minimum:0});return{enrolled:!0,streakCounter:n,...em(e,n),currentWeek:t}}function Bp(e){return e.enrolled?e:null}function Vp(e,t=new Date){if(!e.enrolled)return!1;let n=Yp(e.currentWeek);if(!n)return!1;let r=Date.parse(n.endUtc);return!Number.isNaN(r)&&t.getTime()>r+1e3}function Hp({serverBaseline:e,localPendingByDay:t,optimisticActiveDayKeys:n,targets:r}){if(!e.enrolled)return e;let i=e.currentWeek.currentDayDedupeKey||Xp(),a=t[i]||{posts:0,comments:0,plays:0},o=(e.currentWeek.todayPosts||0)+a.posts,s=(e.currentWeek.todayComments||0)+a.comments,c=(e.currentWeek.todayPlays||0)+a.plays,l=qp({posts:e.currentWeek.todayPosts||0,comments:e.currentWeek.todayComments||0,plays:e.currentWeek.todayPlays||0},r),u=qp({posts:o,comments:s,plays:c},r),d=n.includes(i)||!l&&u?1:0,f=(e.currentWeek.activeDays||0)+d;return Up(e,{weekStartDateUtc:e.currentWeek.weekStartDateUtc,weekEndDateUtc:e.currentWeek.weekEndDateUtc,activeDays:f,todayPosts:o,todayComments:s,todayPlays:c})}function Up(e,t){return e.enrolled?{...e,currentWeek:{...e.currentWeek,...t}}:e}function Wp(e){return e.enrolled?{posts:e.currentWeek.todayPosts||0,comments:e.currentWeek.todayComments||0,plays:e.currentWeek.todayPlays||0}:{posts:0,comments:0,plays:0}}function Gp(e,t){return e.enrolled?{posts:(e.currentWeek.todayPosts||0)+t.posts,comments:(e.currentWeek.todayComments||0)+t.comments,plays:(e.currentWeek.todayPlays||0)+t.plays}:t}function Kp(e){if(!e.enrolled)return null;let{targetDays:t,targetPosts:n,targetComments:r,targetPlays:i}=e.currentWeek;return[t,n,r,i].some(e=>typeof e!=`number`||!lm(e))?null:{targetDays:t,targetPosts:n,targetComments:r,targetPlays:i}}function qp(e,t){let n=e.posts>=t.targetPosts,r=e.comments>=t.targetComments,i=e.plays>=t.targetPlays;return n||r||i}function Jp({serverCounter:e,counterAnchorServerValue:t,completedWeekCount:n}){if(t===null||n===0)return{projectedCounter:e,shouldClearOverlay:!1};let r=t+n;return e>=r?{projectedCounter:e,shouldClearOverlay:!0}:{projectedCounter:r,shouldClearOverlay:!1}}function Yp(e){if(e)return e.weekSchedule.find(e=>e.isCurrent)}function Xp(e){let t=dm(e);return`${t.getUTCFullYear()}-${`${t.getUTCMonth()+1}`.padStart(2,`0`)}-${`${t.getUTCDate()}`.padStart(2,`0`)}`}function Zp(e){let t=dm(e),n=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())),r=(n.getUTCDay()+6)%7;return n.setUTCDate(n.getUTCDate()-r),n}function Qp(e){return Xp(Zp(e))}function $p(e){let t=new Date(e);return isNaN(t.getTime())?null:Qp(t)}function em(e,t){return{streakActive:e.streakActive??t>0,streakLostLastWeek:e.streakLostLastWeek??!1,streakLostNotified:e.streakLostNotified??!1,hasStreakHistory:e.hasStreakHistory??t>0}}function tm(e,t){let n=nm({todayValue:e?.todayPosts,targetValue:e?.targetPosts,defaultTarget:Rp.post}),r=nm({todayValue:e?.todayComments,targetValue:e?.targetComments,defaultTarget:Rp.comment}),i=nm({todayValue:e?.todayPlays,targetValue:e?.targetPlays,defaultTarget:Rp.discover}),a=rm(e?.weekSchedule),o=om(e?.weekStartDateUtc,a),s=sm(e?.weekEndDateUtc,a,o);return{weekSchedule:a,currentDayDedupeKey:im({weekStartDateUtc:o,weekSchedule:a}),dayDurationMinutes:um({value:t??e?.dayDurationMinutes,fallback:0,minimum:0}),weekStartDateUtc:o,weekEndDateUtc:s,activeDays:um({value:e?.activeDays,fallback:0,minimum:0}),targetDays:um({value:e?.targetDays,fallback:3,minimum:0}),todayPosts:n.today,targetPosts:n.target,todayComments:r.today,targetComments:r.target,todayPlays:i.today,targetPlays:i.target}}function nm({todayValue:e,targetValue:t,defaultTarget:n}){return{today:um({value:e,fallback:0,minimum:0}),target:um({value:t,fallback:n,minimum:1})}}function rm(e){return Array.isArray(e)?e.filter(e=>Number.isFinite(e?.day)&&typeof e?.startUtc==`string`&&typeof e?.endUtc==`string`&&typeof e?.isCurrent==`boolean`).map(e=>({day:Number(e.day),startUtc:e.startUtc,endUtc:e.endUtc,isCurrent:e.isCurrent})):[]}function im(e){let t=am(e.weekSchedule);return t?`${e.weekStartDateUtc}|day-${t.day}`:`${e.weekStartDateUtc}|day-0`}function am(e){if(!e.length)return null;let t=e.filter(e=>e.isCurrent);if(t.length===1)return t[0]||null;let n=Date.now();return e.find(e=>
21{let t=Date.parse(e.startUtc),r=Date.parse(e.endUtc);return Number.isNaN(t)||Number.isNaN(r)?!1:n>=t&&n<r})||e[0]||null}function om(e,t){return cm(e)||cm(t[0]?.startUtc)||Zp().toISOString()}function sm(e,t,n){let r=cm(e);if(r)return r;let i=cm(t[t.length-1]?.endUtc);if(i)return i;let a=new Date(n);return Number.isNaN(a.getTime())?Zp(new Date(Date.now()+6048e5)).toISOString():new Date(a.getTime()+6048e5).toISOString()}function cm(e){if(typeof e!=`string`)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}function lm(e){return typeof e==`number`&&isFinite(e)&&e>0}function um({value:e,fallback:t,minimum:n}){let r=Number(e);return Math.max(n,isNaN(r)?t:r)}function dm(e){return e instanceof Date?e:e?new Date(e):new Date}const fm={posts:0,comments:0,plays:0};function pm(e,t={}){let{onPersist:n}=t,r=mm(e),i=0,a=0,o=null;function s({action:e,eventKey:t,contentId:n,dayKey:i,now:a}){if(P(a),t&&r.currentWeek.dedupeKeys.includes(t))return{eventAccepted:!1};let s=F(i,a);switch(e){case`post`:s.posts+=1;break;case`comment`:s.comments+=1;break;case`discover`:{let e=D(s,n);if(e)return e;break}}return t&&(r.currentWeek.dedupeKeys.push(t),r.currentWeek.dedupeKeys=r.currentWeek.dedupeKeys.slice(-400)),o=Date.now(),L(),{eventAccepted:!0}}function c(e={}){let{dayKey:t,now:n}=e;P(n);let i=ee(t,n);return{todayKey:i,localToday:{...te(i)},localPendingByDay:vm(r.currentWeek.pendingByDay),optimisticActiveDayKeys:r.currentWeek.optimisticActiveDayKeys.slice(),notificationSeenForWeek:r.seenByWeek.includes(r.currentWeek.weekKey),stateVersion:r.stateVersion}}function l(e,t){P(t);let n=r.currentWeek.weekKey;r.completedWeekKeys.includes(n)||I(()=>{r.counterAnchorServerValue===null&&(r.counterAnchorServerValue=e),r.completedWeekKeys.includes(n)||(r.completedWeekKeys.push(n),r.completedWeekKeys=r.completedWeekKeys.slice(-52))})}function u(e=Date.now()){return o===null?null:Math.max(0,e-o)}function d(e={}){let{clearOptimisticActiveDays:t=!1}=e;(Object.keys(r.currentWeek.pendingByDay).length!==0||r.currentWeek.dedupeKeys.length!==0||t&&r.currentWeek.optimisticActiveDayKeys.length!==0)&&I(()=>{r.currentWeek.pendingByDay={},r.currentWeek.dedupeKeys=[],t&&(r.currentWeek.optimisticActiveDayKeys=[])})}function f(){r=mm(e)}function p(){return r.lastServerSnapshot?{weekKey:r.lastServerSnapshot.weekKey,dayKey:r.lastServerSnapshot.dayKey,activeDays:r.lastServerSnapshot.activeDays,today:{...r.lastServerSnapshot.today}}:null}function m(e){I(()=>{r.lastServerSnapshot={weekKey:e.weekKey,dayKey:e.dayKey,activeDays:e.activeDays,today:{posts:e.today.posts,comments:e.today.comments,plays:e.today.plays}}})}function h(e){let t=Jp({serverCounter:e,counterAnchorServerValue:r.counterAnchorServerValue,completedWeekCount:r.completedWeekKeys.length});return t.shouldClearOverlay&&I(()=>{r.counterAnchorServerValue=null,r.completedWeekKeys=[]}),t.projectedCounter}function g(e){return e?r.completedWeekKeys.includes(e):!1}function _(){return r.counterAnchorServerValue===null||r.completedWeekKeys.length===0?null:{counterAnchorServerValue:r.counterAnchorServerValue,completedWeekKeys:r.completedWeekKeys.slice()}}function v(e){if(!Number.isFinite(e.counterAnchorServerValue)||e.completedWeekKeys.length===0)return;let t=Sm(e.completedWeekKeys).slice(-52);if(t.length===0)return;let n=r.counterAnchorServerValue===e.counterAnchorServerValue,i=Cm(r.completedWeekKeys,t);n&&i||I(()=>{r.counterAnchorServerValue=e.counterAnchorServerValue,r.completedWeekKeys=t})}function y({previousServerToday:e,nextServerToday:t,previousActiveDays:n,nextActiveDays:i,previousDayKey:a,nextDayKey:o,now:s}){P(s);let c=!!(a&&o&&a!==o);if(o&&(c||O(o))&&k(o),c)return;let l=A(e,t),u=ee(o,s),d=F(o,s);if(j(d,l),M(d,u),ym(l)){if(N(n,i)){L();return}return}I(()=>{r.currentWeek.dedupeKeys=[],N(n,i)})}function b(e,t){P(t);let n=ee(e,t);r.currentWeek.optimisticActiveDayKeys.includes(n)||I(()=>{r.currentWeek.optimisticActiveDayKeys.push(n)})}function x(e){r.currentWeek.weekKey!==e&&I(()=>{r.currentWeek=_m(e)})}function S(e){P(e);let t=r.currentWeek.weekKey;r.seenByWeek.includes(t)||I(()=>{r.seenByWeek.push(t),r.seenByWeek=r.seenByWeek.slice(-12)})}function C(e){e&&r.seenByWeek.includes(e)&&I(()=>{r.seenByWeek=r.seenByWeek.filter(t=>t!==e)})}function w(e){e&&r.completedWeekKeys.includes(e)&&I(()=>{r.completedWeekKeys=r.completedWeekKeys.filter(t=>t!==e),r.completedWeekKeys.length===0&&(r.counterAnchorServerValue=null)})}function T(e){return r.dailyNotificationSeenKeys.includes(e)}function E(e){e&&!r.dailyNotificationSeenKeys.includes(e)&&I(()=>{r.dailyNotificationSeenKeys.push(e),r.dailyNotificationSeenKeys=r.dailyNotificationSeenKeys.slice(-30)})}function D(e,t){return t?(e.plays+=1,null):{eventAccepted:!1}}function O(e){return Object.keys(r.currentWeek.pendingByDay).some(t=>t!==e)}function k(e){let t=r.currentWeek.pendingByDay[e];I(()=>{r.currentWeek.pendingByDay=t?{[e]:{...t}}:{},r.currentWeek.dedupeKeys=[],r.currentWeek.optimisticActiveDayKeys=[]})}function A(e,t){return{posts:Math.max(0,t.posts-e.posts),comments:Math.max(0,t.comments-e.comments),plays:Math.max(0,t.plays-e.plays)}}function j(e,t){e.posts=Math.max(0,e.posts-t.posts),e.comments=Math.max(0,e.comments-t.comments),e.plays=Math.max(0,e.plays-t.plays)}function M(e,t){ym(e)&&delete r.currentWeek.pendingByDay[t]}function N(e,t){return t>e&&(r.currentWeek.optimisticActiveDayKeys=[],!0)}function P(e){let t=Qp(e);r.currentWeek.weekKey!==t&&I(()=>{r.currentWeek=_m(t)})}function F(e,t){return te(ee(e,t))}function ee(e,t){return e||Xp(t)}function te(e){return r.currentWeek.pendingByDay[e]||(r.currentWeek.pendingByDay[e]={...fm}),r.currentWeek.pendingByDay[e]}function I(e){e(),L()}function L(){let t=R(),i=Ip(e,{...r,stateVersion:t,currentWeek:{...r.currentWeek,pendingByDay:vm(r.currentWeek.pendingByDay),dedupeKeys:r.currentWeek.dedupeKeys.slice(),optimisticActiveDayKeys:r.currentWeek.optimisticActiveDayKeys.slice()},seenByWeek:r.seenByWeek.slice(),dailyNotificationSeenKeys:r.dailyNotificationSeenKeys.slice(),completedWeekKeys:r.completedWeekKeys.slice(),lastServerSnapshot:r.lastServerSnapshot?{weekKey:r.lastServerSnapshot.weekKey,dayKey:r.lastServerSnapshot.dayKey,activeDays:r.lastServerSnapshot.activeDays,today:{posts:r.lastServerSnapshot.today.posts,comments:r.lastServerSnapshot.today.comments,plays:r.lastServerSnapshot.today.plays}}:null});r=mm(e),i.applied&&n?.()}
21function R(){let e=Date.now()*100;e===i?a=Math.min(99,a+1):(i=e,a=0);let t=i+a;return Math.max(r.stateVersion+1,t)}return{recordAction:s,getSnapshot:c,markWeeklyGoalCompleted:l,hasWeeklyGoalCompletedForWeek:g,getProjectionSnapshot:_,applyProjectionSnapshot:v,getMsSinceLastSessionAction:u,clearLocalOverlay:d,reloadFromStorage:f,getServerSnapshot:p,setServerSnapshot:m,getProjectedStreakCounter:h,reconcileWithServerDelta:y,markTodayAsOptimisticActiveDay:b,forceResetForServerWeek:x,markWeeklyNotificationShown:S,clearWeeklyNotificationShownForWeek:C,clearWeeklyGoalCompletedForWeek:w,hasDailyNotificationSeen:T,markDailyNotificationShown:E,resetForWeekIfNeeded:P}}function mm(e){let t=Fp(e);if(!t||t.userId!==e||!t.currentWeek)return hm(e);let n=typeof t.currentWeek.weekKey==`string`?t.currentWeek.weekKey:Qp();return{version:1,userId:e,seenByWeek:Sm(t.seenByWeek),dailyNotificationSeenKeys:Sm(t.dailyNotificationSeenKeys),completedWeekKeys:Sm(t.completedWeekKeys),counterAnchorServerValue:bm(t.counterAnchorServerValue),lastServerSnapshot:gm(t.lastServerSnapshot),stateVersion:xm(t.stateVersion,0),currentWeek:{weekKey:n,pendingByDay:t.currentWeek.pendingByDay&&typeof t.currentWeek.pendingByDay==`object`?vm(t.currentWeek.pendingByDay):{},dedupeKeys:Sm(t.currentWeek.dedupeKeys),optimisticActiveDayKeys:Sm(t.currentWeek.optimisticActiveDayKeys)}}}function hm(e){return{version:1,userId:e,seenByWeek:[],dailyNotificationSeenKeys:[],completedWeekKeys:[],counterAnchorServerValue:null,lastServerSnapshot:null,stateVersion:0,currentWeek:_m(Qp())}}function gm(e){if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.weekKey!=`string`||typeof t.dayKey!=`string`)return null;let n=t.today;return!n||typeof n!=`object`?null:{weekKey:t.weekKey,dayKey:t.dayKey,activeDays:Number.isFinite(t.activeDays)?Number(t.activeDays):0,today:{posts:Number.isFinite(n.posts)?Number(n.posts):0,comments:Number.isFinite(n.comments)?Number(n.comments):0,plays:Number.isFinite(n.plays)?Number(n.plays):0}}}function _m(e){return{weekKey:e,pendingByDay:{},dedupeKeys:[],optimisticActiveDayKeys:[]}}function vm(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{posts:Number(t.posts)||0,comments:Number(t.comments)||0,plays:Number(t.plays)||0}]))}function ym(e){return e.posts===0&&e.comments===0&&e.plays===0}function bm(e){return Number.isFinite(e)?Number(e):null}function xm(e,t){return Number.isFinite(e)?Number(e):t}function Sm(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0):[]}function Cm(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}const wm={streakStarted:`streak_started`,weeklyStreakAchieved:`weekly_streak_achieved`,weeklyStreakEnded:`weekly_streak_ended`,streakOnboardingShown:`streak_onboarding_shown`,streakOnboardingLearnMore:`streak_onboarding_learn_more`,streakDashboardViewed:`streak_dashboard_viewed`},Tm={streaksModalId:`streaks-weekly-goal-completed-modal`,queuedStreaksModalPollMs:200,boostModalQueueGraceMs:1200};function Em({AppNotifications:e,acknowledgeStreakLostNotified:t,getCurrentStreaksData:n,canShowResetNotification:r,getStreaksDashboardHref:i,notificationState:a,withProjectedStreakCounter:o,streaksModalId:s=Tm.streaksModalId,queuedStreaksModalPollMs:c=Tm.queuedStreaksModalPollMs,boostModalQueueGraceMs:l=Tm.boostModalQueueGraceMs,maxQueuedStreaksModalWaitMs:u=3e4,StreaksModalComponent:d}){let{getTrackerSnapshot:f,hasWeeklyGoalCompletedForWeek:p,hasDailyNotificationSeen:m,markWeeklyGoalCompleted:h,markDailyNotificationShown:g,markWeeklyNotificationShown:_,clearWeeklyNotificationShownForWeek:v,clearWeeklyGoalCompletedForWeek:y,getStreakResetNotifiedWeek:b,markStreakResetNotifiedWeek:x,getDeferredResetNotification:S,setDeferredResetNotification:C,clearDeferredResetNotification:w}=a,T=new Set,E=null,D=!1,O=null,k=0,A=!1;function j(e){let t=e.previousActiveDays??0;if(e.suppressGoalNotifications===!0||ee(e.effective,e.targetDays))return{effective:e.effective};let n=ne({effective:e.effective,source:e.source,acceptedActionEventKey:e.acceptedActionEventKey,previousActiveDays:t,targetDays:e.targetDays,trackerSnapshot:f(),didCompleteWeekOnAcceptedAction:!!e.didCompleteWeekOnAcceptedAction});return n.shown||ie({beforeActiveToday:e.beforeActiveToday,afterActiveToday:e.afterActiveToday,allowDailyQualifiedF
21allback:!!e.allowDailyQualifiedFallback,effective:n.effective,targetDays:e.targetDays}),{effective:n.effective}}function M(){let e=S();if(!e||!r())return Promise.resolve(!1);let t=o(n());return B(t)||!t.enrolled||t.currentWeek.weekEndDateUtc!==e.weekEndDateUtc||L(e.weekEndDateUtc)?(w(),Promise.resolve(!1)):Promise.resolve(I(e)).then(e=>(e&&w(),e))}function N(){E=null,D=!1,k=0,O!==null&&(clearTimeout(O),O=null)}function P(){A=!0,N(),Zn(s)}function F(){A=!1}function ee(e,t){if(!e.enrolled)return!1;let n=e.currentWeek.weekEndDateUtc;return e.streakLostLastWeek!==!0||e.streakLostNotified!==!1||L(n)?!1:r()?(Ae(wm.weeklyStreakEnded),I({weekEndDateUtc:n,targetDays:t}).then(e=>{e||C({weekEndDateUtc:n,targetDays:t})}),!0):te(n)?!0:(Ae(wm.weeklyStreakEnded),C({weekEndDateUtc:n,targetDays:t}),!0)}function te(e){return S()?.weekEndDateUtc===e}function I(e){return W({variant:`reset`,targetDays:e.targetDays}).shown?(R(e.weekEndDateUtc),Promise.resolve(t()).catch(()=>{}).then(()=>!0)):Promise.resolve(!1)}function L(e){return e?T.has(e)?!0:b()===e&&(T.add(e),!0):!1}function R(e){e&&(T.add(e),x(e))}function ne(e){let{effective:t,trackerSnapshot:n}=e;if(!t.enrolled||!n)return{shown:!1,effective:t};let r=t.currentWeek.activeDays||0,i=ce(t),a=z({effective:t,trackerSnapshot:n,currentActiveDays:r,targetDays:e.targetDays}),s=V({weekKey:i,currentActiveDays:r,targetDays:e.targetDays});if(!re({source:e.source,acceptedActionEventKey:e.acceptedActionEventKey,notificationSeenForWeek:a,didCompleteWeekOnAcceptedAction:e.didCompleteWeekOnAcceptedAction,weeklyGoalCompletedForWeek:s,currentActiveDays:r,targetDays:e.targetDays}))return{shown:!1,effective:t};(e.source===`action`||!s)&&h(t.streakCounter),Ae(wm.weeklyStreakAchieved);let c=o(t),l=c.enrolled?c.streakCounter:0,u=W({variant:`completed`,targetDays:e.targetDays,streakCounter:l},!0,J(e.acceptedActionSource));return g(se(c)),{shown:u.shown||u.queued,effective:c}}function z(e){if(!le({notificationSeenForWeek:e.trackerSnapshot.notificationSeenForWeek,currentActiveDays:e.currentActiveDays,targetDays:e.targetDays}))return e.trackerSnapshot.notificationSeenForWeek;let t=ce(e.effective);return t&&(v(t),y(t)),!1}function re(e){return e.notificationSeenForWeek?!1:e.source===`action`&&e.acceptedActionEventKey&&e.didCompleteWeekOnAcceptedAction?!0:e.weeklyGoalCompletedForWeek&&e.currentActiveDays>=e.targetDays}function B(e){if(!e.enrolled)return!0;let t=Kp(e);return t?qp({posts:e.currentWeek.todayPosts||0,comments:e.currentWeek.todayComments||0,plays:e.currentWeek.todayPlays||0},t):!1}function V(e){return!e.weekKey||!p(e.weekKey)?!1:e.currentActiveDays>=e.targetDays||(y(e.weekKey),!1)}function ie(e){if(!H(e))return!1;let t=se(e.effective);return!m(t)&&(ae({streaksData:e.effective,targetDays:e.targetDays}),g(t),!0)}function H(e){if(U(e.effective,e.targetDays))return!1;let t=!e.beforeActiveToday&&e.afterActiveToday,n=e.allowDailyQualifiedFallback&&e.afterActiveToday;return t||n}function ae({streaksData:t,targetDays:n}){let r=oe(t,n),a=i();e.addNotification({content:r,action:` 22 <a 23 href="${a}" 24 class="notification-action-text-inline" 25 > 26 View My Streak 27 </a> 28 `,autoclose:5e3,classList:`success`})}function oe(e,t){return e.enrolled&&(e.streakActive||e.streakCounter>0)?`Nice! Keep growing your audience by staying active ${t} days every week!`:`Nice! Stay active ${t} days a week to start your streak and grow your audience!`}function se(e){return e.enrolled&&e.currentWeek.currentDayDedupeKey||Xp()}function ce(e){return e.enrolled?$p(e.currentWeek.weekStartDateUtc):null}function le(e){return e.notificationSeenForWeek&&e.currentActiveDays<e.targetDays}function U(e,t){return e.enrolled&&(e.currentWeek.activeDays||0)>=t}function W(e,t=!1,n=!1){return e.variant===`completed`&&A?{shown:!1,queued:!1}:n||e.variant===`completed`||K(e)?(ue(e,t),{shown:!1,queued:!0}):{shown:G(e,t),queued:!1}}function G(e,t=!1){return!Jn.value.some(e=>e.options.id===s)&&(X(d,e,{id:s}),t&&_(),!0)}function ue(e,t=!1){E=e,D=t,k=Date.now(),O===null&&de()}function de(){if(!E){N();return}let e=Date.now()-k;if(e<l){fe();return}if(q()){k=Date.now(),fe();return}if(e>=u){N();return}let t=E,n=D;N(),!(t.variant===`completed`&&A)&&G(t,n)}function K(e){return e.variant===`completed`&&q()}function q(){return Jn.value.some(e=>e.options.id!==s)}function fe(){O=setTimeout(de,c)}function J(e){return e===`$post:createSuccess`}return{notifyGoalTransitions:j,flushDeferredResetNotification:M,clearQueuedStreaksModal:N,markBoostFlowStarted:P,resetBoostFlowSuppression:F}}async function Dm(e){return await ke(e,`social_streaks_on`)===`true`}
28const Om={actionDedupeTtlMs:2e3,boundaryStaleGraceMs:500,maxQueuedTrackActions:200,queueTtlMs:864e5};function km({me:e,getStateName:t,isFeatureEnabled:n,getCurrentBaseline:r,getTracker:i,resolveAndApplyEffectiveState:a,syncTracked:o,maybeSyncForStateUpdate:s,actionDedupeTtlMs:c=Om.actionDedupeTtlMs,boundaryStaleGraceMs:l=Om.boundaryStaleGraceMs,maxQueuedTrackActions:u=Om.maxQueuedTrackActions,queueTtlMs:d=Om.queueTtlMs}){let f=[],p=new Map,m=null;function h(e={}){if(!n()||!e.action)return;let i=Am(t,{source:e.source||e.action,stateName:e.stateName,eventKey:e.eventKey,contentId:e.contentId}),a=zp(r());y(e.action,i,a)||C(e.action,i,a)}function g(e,t=Date.now()){e.action&&(M(t),N(),f.push({payload:e,queuedAt:t}))}function _(){if(f.length!==0){if(!n()){v();return}j().forEach(e=>{h(e)})}}function v(){f.length=0}function y(e,t,n){return Vp(r())?(S(e,t),x(),!0):k(n)&&Kp(n)?!1:(S(e,t),b(),!0)}function b(){let e=s();return e?Promise.resolve(e).then(e=>(e!==null&&!Vp(r())&&_(),e)):null}function x(){return m||(m=Promise.resolve(o()).finally(()=>{m=null}),m)}function S(e,t={}){g({action:e,source:t.source,stateName:t.stateName,eventKey:t.eventKey,contentId:t.contentId})}function C(e,t={},n=zp(r())){let a=i();if(a?.reloadFromStorage(),!a||!k(n))return;if(Vp(n,new Date(Date.now()+l))){S(e,t),x();return}if(e===`discover`&&!t.contentId||!A(jm({action:e,context:t,baseline:n})))return;let o=w(a,n,e,t);o&&T(o)&&(E(o),D(o),O(o))}function w(e,t,n,r){let i=Kp(t);if(!i)return null;let a=t.currentWeek.currentDayDedupeKey,o=e.getSnapshot({dayKey:a}),s=Hp({serverBaseline:t,localPendingByDay:o.localPendingByDay,optimisticActiveDayKeys:o.optimisticActiveDayKeys,targets:i}),c=qp(Gp(t,o.localToday),i);return{activeTracker:e,action:n,serverBaseline:t,targets:i,context:r,trackerDayKey:a,beforeTrackerSnapshot:o,beforeEffective:s,beforeQualified:c,afterQualified:c}}function T(e){if(!e.activeTracker.recordAction({action:e.action,eventKey:e.context.eventKey,contentId:e.context.contentId,dayKey:e.trackerDayKey}).eventAccepted)return!1;let t=e.activeTracker.getSnapshot({dayKey:e.trackerDayKey});return e.afterQualified=qp(Gp(e.serverBaseline,t.localToday),e.targets),!0}function E(e){let{beforeQualified:t,afterQualified:n,beforeTrackerSnapshot:r,activeTracker:i,trackerDayKey:a}=e;!t&&n&&!r.optimisticActiveDayKeys.includes(r.todayKey)&&i.markTodayAsOptimisticActiveDay(a)}function D(e){let{beforeQualified:t,afterQualified:n,beforeEffective:r}=e;!t&&n&&r.enrolled&&(r.streakCounter||0)<=0&&(r.currentWeek.activeDays||0)<=0&&Ae(wm.streakStarted)}function O(e){let t=e.activeTracker.getSnapshot({dayKey:e.trackerDayKey}),n=Hp({serverBaseline:e.serverBaseline,localPendingByDay:t.localPendingByDay,optimisticActiveDayKeys:t.optimisticActiveDayKeys,targets:e.targets}),r=e.beforeEffective.enrolled&&e.beforeEffective.currentWeek.activeDays||0,i=!e.beforeQualified&&e.afterQualified&&r<e.targets.targetDays&&r+1>=e.targets.targetDays;i&&e.activeTracker.markWeeklyGoalCompleted(e.serverBaseline.streakCounter||0),a({beforeActiveToday:e.beforeQualified,afterActiveToday:e.afterQualified,effective:n,source:`action`,targetDays:e.targets.targetDays,previousActiveDays:r,acceptedActionSource:e.context.source,acceptedActionEventKey:e.context.eventKey??null,didCompleteWeekOnAcceptedAction:i})}function k(t){return!e.isAnonymous()&&n()&&t.enrolled}function A(e){let t=Date.now();return p.forEach((e,n)=>{t-e>c&&p.delete(n)}),!p.has(e)&&(p.set(e,t),!0)}function j(e=Date.now()){return f.splice(0,f.length).filter(t=>e-t.queuedAt<=d).map(e=>e.payload)}function M(e=Date.now()){let t=f[0];for(;t&&P(t,e);)f.shift(),t=f[0]}function N(){f.length<u||f.shift()}function P(e,t){return t-e.queuedAt>d}return{trackAction:h,queueTrackAction:g,flushQueuedTrackActions:_,clearQueuedTrackActions:v}}function Am(e,t={}){return{stateName:e(),eventKey:Mm(t.source),...t}}function jm(e){let t=Nm(e.baseline),n=e.context.contentId||e.context.eventKey||`no-content`;return`${e.action}:${n}:${t}`}function Mm(e){let t=Date.now(),n=Math.random().toString(36).slice(2,10);return`${String(e||`event`)}::${t}::${n}`}function Nm(e){return e.enrolled&&e.currentWeek.currentDayDedupeKey||`unknown`}function Pm({getMeId:e,getStorageKey:t,getTracker:n,getHasServerData:r,getCurrentBaseline:i,normalizeStreaksData:a,deriveAndApplyEffectiveFromTrackerOverlay:o,applyExternalServerData:s,requestServerSyncFor
28CrossTab:c}){let l=null,u=null,d=!1,f=0,p=null,m=null,h=null,g=null,_=null,v=null,y=null,b=ce();function x(e){f=e}function S(){D()}function C(){if(d||!D())return;let e=n(),t=e?.getSnapshot()?.stateVersion||0;f=Math.max(f,t),A(t,e?.getProjectionSnapshot()??null)}function w(e){let t=k();if(!t)return;let n=O();if(n)try{n.postMessage({schemaVersion:1,tabId:b,type:`server-data`,key:t,data:e})}catch{}}function T(){if(h===null)return;let e=h;h=null,P(e)}function E(){g!==null&&(clearTimeout(g),g=null),_!==null&&(clearTimeout(_),_=null),y&&=(window.removeEventListener(`storage`,y),null),l&&=(l.removeEventListener(`message`,N),l.close(),null),u=null}function D(){let e=k();return e?u===e?(O(),!0):(y&&=(window.removeEventListener(`storage`,y),null),u=e,y=t=>{M(t,e)},window.addEventListener(`storage`,y),O(),!0):!1}function O(){if(!k())return null;if(l)return l;try{return l=new BroadcastChannel(`streaks`),l.addEventListener(`message`,N),l}catch{return l=null,null}}function k(){let n=e();return n?t(n):null}function A(e,t){p=Math.max(p??0,e),m=t,g===null&&(g=setTimeout(()=>{g=null,j()},75))}function j(){if(p===null)return;let e=k();if(!e)return;let t=p,n=m;p=null,m=null;let r=`${Date.now()}:${t}`;try{window.localStorage.setItem(`${e}:sync`,r)}catch{}let i=O();if(i)try{i.postMessage({schemaVersion:1,tabId:b,type:`tracker-update`,key:e,signal:r,stateVersion:t,projection:n})}catch{}}function M(e,t){if(!e.key||e.key!==`${t}:sync`)return;let n=typeof e.newValue==`string`?e.newValue:``,r=Number(n.split(`:`).pop());Number.isFinite(r)&&P(r)}function N(e){let t=k();if(!t)return;let n=e.data;if(n?.key===t&&!(n.tabId&&n.tabId===b)&&se(n.schemaVersion)){if(n?.type===`tracker-update`){let e=n.stateVersion;if(typeof e!=`number`||!Number.isFinite(e))return;P(e,n.projection??null);return}n?.type===`server-data`&&n.data&&ee(n.data)}}function P(e,t){let i=n();if(i&&!d){if(!r()){F(i,t),ne(e);return}if(!(!I(t)&&e<=f)){d=!0;try{i.reloadFromStorage();let n=te(i,t),r=i.getSnapshot();if(n&&(f=Math.max(f,r.stateVersion),o()),e<=f)return;if(r.stateVersion<e){R(e,r.stateVersion);return}f=Math.max(f,r.stateVersion),B(e),H(e),o()}finally{d=!1}}}}function F(e,t){if(I(t)){d=!0;try{e.reloadFromStorage(),te(e,t)}finally{d=!1}}}function ee(e){if(!d)try{let t=a(e);if(!oe({incoming:t,current:a(i())}))return;d=!0,s(t)}catch{return}finally{d=!1}}function te(e,t){if(!I(t))return!1;let n=e.getProjectionSnapshot(),r=t;return e.applyProjectionSnapshot(r),!L(n,e.getProjectionSnapshot())}function I(e){return!!(e&&Number.isFinite(e.counterAnchorServerValue)&&e.completedWeekKeys.length>0)}function L(e,t){return e===t?!0:!e||!t||e.counterAnchorServerValue!==t.counterAnchorServerValue||e.completedWeekKeys.length!==t.completedWeekKeys.length?!1:e.completedWeekKeys.every((e,n)=>e===t.completedWeekKeys[n])}function R(e,t){let n=Date.now();(!v||v.version!==e)&&(v={version:e,firstSeenAt:n,attempts:0,lastStorageStateVersion:t,fallbackRequested:!1}),v.attempts+=1,v.lastStorageStateVersion=t,n-v.firstSeenAt>=2e3&&re(e,t,v.attempts),h=Math.max(h??0,e),z()}function ne(e){h=Math.max(h??0,e),z()}function z(){_===null&&(_=setTimeout(()=>{_=null,T()},200))}function re(e,t,n){if(v?.fallbackRequested)return;let r=ie(e);v={version:e,firstSeenAt:v?.firstSeenAt??Date.now(),attempts:n,lastStorageStateVersion:t,fallbackRequested:!0},r&&c?.()}function B(e){v&&e>=v.version&&(v=null,h=null)}function V(){let e=k();return e?`${e}:sync-fallback-lock`:null}function ie(e){let t=V();if(!t)return!1;let n=Date.now(),r=ae(window.localStorage.getItem(t));if(r&&r.expiresAt>n&&r.version===e&&r.tabId!==b)return!1;let i={tabId:b,version:e,expiresAt:n+5e3};try{window.localStorage.setItem(t,JSON.stringify(i));let n=ae(window.localStorage.getItem(t));return n?.tabId===b&&n?.version===e}catch{return!1}}function H(e){let t=V();if(!t)return;let n=ae(window.localStorage.getItem(t));if(n&&n.tabId===b&&!(e<n.version))try{window.localStorage.removeItem(t)}catch{}}function ae(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t.tabId!=`string`||typeof t.version!=`number`||!Number.isFinite(t.version)||typeof t.expiresAt!=`number`||!Number.isFinite(t.expiresAt)?
28null:{tabId:t.tabId,version:t.version,expiresAt:t.expiresAt}}catch{return null}}function oe(e){let{incoming:t,current:n}=e;if(!t.enrolled&&n.enrolled)return!1;if(t.enrolled&&!n.enrolled||!t.enrolled||!n.enrolled)return!0;let r=le(t.currentWeek.weekStartDateUtc,n.currentWeek.weekStartDateUtc);if(r>0)return!0;if(r<0)return!1;let i=U(t.currentWeek.currentDayDedupeKey,n.currentWeek.currentDayDedupeKey);if(i>0)return!0;if(i<0)return!1;let a=W(t.streakCounter,n.streakCounter);if(a>0)return!0;if(a<0)return!1;let o=G(t,n);return o>0||!(o<0)}function se(e){return typeof e!=`number`||e===1}function ce(){return`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function le(e,t){if(!e||!t)return 0;let n=Date.parse(e),r=Date.parse(t),i=!Number.isNaN(n),a=!Number.isNaN(r);return!i&&!a?0:i?!a||n>r?1:n<r?-1:0:-1}function U(e,t){if(!e||!t)return 0;let n=/\|day-(\d+)$/,r=n.exec(e),i=n.exec(t);if(r?.[1]&&i?.[1]){let e=Number(r[1]),t=Number(i[1]);return e>t?1:e<t?-1:0}return le(e,t)}function W(e,t){return e>t?1:e<t?-1:0}function G(e,t){let n=[e.currentWeek.activeDays,e.currentWeek.todayPosts,e.currentWeek.todayComments,e.currentWeek.todayPlays],r=[t.currentWeek.activeDays,t.currentWeek.todayPosts,t.currentWeek.todayComments,t.currentWeek.todayPlays],i=!1,a=!1;for(let e=0;e<n.length;e+=1){let t=n[e]||0,o=r[e]||0;t>o&&(i=!0),t<o&&(a=!0)}return i&&a?2:i?1:a?-1:0}return{setInitialVersion:x,initialize:S,notifyTrackerPersisted:C,notifyServerDataFetched:w,replayDeferredTrackerSync:T,dispose:E}}const Fm=new Set([`user.feed`]),Im=new Set([`user.feed`,`userStreaks.dashboard`]),Lm=new Set([`user.feed`,`userStreaks.dashboard`]);function Rm({contextMeta:e,currentStateName:t,currentUsername:n,meUsername:r}){let i=e?.stateName??t,a=e?.username??n;return a!==``&&a===r&&Im.has(i)}const zm={syncRetryDelaysMs:[500,1500],staleWindowSyncCooldownMs:2e3,dayBoundarySyncBufferMs:1e3,maxTimeoutDelayMs:2147483647,localOverlayServerLatencyThresholdMs:1e4};function Bm({me:e,state:t,getFeatureEnabledState:n,resolveFeatureEnabled:r,getCurrentBaseline:i,getPreviousBaseline:a,seedBaseline:o,getTracker:s,getStateService:c,applyClientData:l,resolveAndApplyEffectiveState:u,flushQueuedTrackActions:d,ensureLoadedFallbackState:f,enroll:p,initializeCrossTabSync:m,replayDeferredCrossTabSync:h,notifyServerDataFetched:g,syncRetryDelaysMs:_=[...zm.syncRetryDelaysMs],staleWindowSyncCooldownMs:v=zm.staleWindowSyncCooldownMs,dayBoundarySyncBufferMs:y=zm.dayBoundarySyncBufferMs,maxTimeoutDelayMs:b=zm.maxTimeoutDelayMs,localOverlayServerLatencyThresholdMs:x=zm.localOverlayServerLatencyThresholdMs}){let S=null,C=!1,w=new Map,T=null,E=0,D=!1,O=null;function k({force:e=!1}={}){let a=n();return a===!1?Promise.resolve(t.data):a===null?Promise.resolve(r()).then(n=>n?k({force:e}):t.data):S&&!e||S&&e&&C?S:(t.isLoading=!0,t.error=null,C=e,S=L().then(({previousServerData:e})=>(F(i(),e,{skipNotifications:!0}),h(),t.data)).catch(e=>(t.error=e,t.hasServerData=!1,Promise.reject(e))).finally(()=>{t.isLoaded=!0,t.isLoading=!1,S=null,C=!1}),S)}function A(e={}){return m(),n()===!1?Promise.resolve(null):Promise.resolve(r()).then(t=>t?te(e):null).then(e=>(e!==null&&!Vp(i())&&d(),e===null&&f(),e))}function j(e){let t=w.get(e.dedupeKey);if(t)return t;let n=Promise.resolve(A({ensureEnrollment:e.ensureEnrollment,contextMeta:e.contextMeta})).finally(()=>{w.delete(e.dedupeKey)});return w.set(e.dedupeKey,n),n}function M(){return T||(ae()?(E=Date.now(),T=Promise.resolve(A()).finally(()=>{T=null}),T):null)}function N(){oe(),P()}function P(){if(G(),!t.hasServerData)return;let e=U();e!==null&&(O=setTimeout(()=>{O=null,W()},Math.min(e,b)))}function F(e,t,n={}){let r=s();if(!r||!e.enrolled)return l(e),e;let i=re(r,e,t);B(r,e,t,i),V(r);let a=r.getSnapshot({dayKey:e.currentWeek.currentDayDedupeKey}),o=Kp(e);if(!o)return l(e),e;let c=Hp({serverBaseline:e,localPendingByDay:a.localPendingByDay,optimisticActiveDayKeys:a.optimisticActiveDayKeys,targets:o}),d=u({...ie(o,t,i),effective:c,source:`sync`,targetDays:o.targetDays,previousActiveDays:i.previousActiveDays,skipNotifications:n.skipNotifications});return H(r,e,i),h(),d}function ee(){G(),D&&typeof window==`object`&&(window.removeEventListener(`visibilitychange`,se),window.removeEventListener(`focus`,ce),D=!1)}function te(n={}){if(e.isAnonymous()||!q())return Promise.resolve(null);let r=c(),i=r?.current?.name||`unknown`,a=typeof r?.params?.username==`string`?r.params.username:``;return n.contextMeta&&!Rm({contextMeta:n.contextMeta,currentStateName:i,currentUsername:a,meUsername:e?.username})?Promise.resolve(null):Promise.resolve(I(n)).catch(e=>(t.error=e,t.isLoaded=!0,null))}function I(e,t=0){return Promise.resolve(L()).then(t=>R(t,e)).then(e=>F(e.nextServerData,e.previousServerData)).catch(n=>ue(n,t)?K(_[t]||0).then(()=>I(e,t+1)):Promise.reject(n))}function L(){let e=i();return ne().then(t=>(o(t),g(t),{previousServerData:e,nextServerData:i()}))}function R(e,t){return z(e,t)?Promise.resolve(p()).then(e=>({nextServerData:zp(e),previousServerData:a()})):Promise.resolve(e)}function ne(){return Un.get(`https://aws.bandlab.com/api/v1.3/streaks/me`).json().then(zp)}function z(e,t){return!(!t.ensureEnrollment||e.nextServerData.enrolled)}function re(e,t,n){e.reloadFromStorage();let r=$p(t.currentWeek.weekStartDateUtc);r&&e.forceResetForServerWeek(r);let i=e.getServerSnapshot(),a=r&&i&&i.weekKey===r?i:null;return{serverWeekKey:r,usableTrackerSnapshot:a,previousToday:n?Wp(n):a?a.today:Wp(t),nextToday:Wp(t),previousActiveDays:n?.enrolled?n.currentWeek.activeDays||0:a?a.activeDays:0,nextActiveDays:t.currentWeek.activeDays||0}}function B(e,t,n,r){e.reconcileWithServerDelta({previousServerToday:r.previousToday,nextServerToday:r.nextToday,previousActiveDays:r.previousActiveDays,nextActiveDays:r.nextActiveDays,previousDayKey:n?.enrolled?n.currentWeek.currentDayDedupeKey:r.usableTrackerSnapshot?r.usableTrackerSnapshot.dayKey:void 0,nextDayKey:t.currentWeek.currentDayDedupeKey})}function V(e){let t=e.getMsSinceLastSessionAction();t===null||t<=x||e.clearLocalOverlay({clearOptimisticActiveDays:!1})}function ie(e,t,n){let r=n.previousActiveDays,i=!!t;return{beforeActiveToday:qp(n.previousToday,e),afterActiveToday:qp(n.nextToday,e),allowDailyQualifiedF
28allback:!i&&!!n.usableTrackerSnapshot,suppressGoalNotifications:i&&r>=e.targetDays}}function H(e,t,n){n.serverWeekKey&&t.currentWeek.currentDayDedupeKey&&e.setServerSnapshot({weekKey:n.serverWeekKey,dayKey:t.currentWeek.currentDayDedupeKey,today:n.nextToday,activeDays:n.nextActiveDays})}function ae(){return Date.now()-E>=v}function oe(){D||typeof window!=`object`||(D=!0,window.addEventListener(`visibilitychange`,se),window.addEventListener(`focus`,ce))}function se(){document.visibilityState===`visible`&&le()}function ce(){le()}function le(){if(q()){if(!Vp(i())){P();return}W()}}function U(){let e=i();if(!e.enrolled)return null;let t=e.currentWeek.weekSchedule.find(e=>e.isCurrent);if(!t?.endUtc)return null;let n=Date.parse(t.endUtc);return Number.isNaN(n)?null:Math.max(0,n-Date.now()+y)}function W(){Promise.resolve(A()).finally(()=>{P()})}function G(){O!==null&&(clearTimeout(O),O=null)}function ue(e,t){if(t>=_.length)return!1;let n=de(e);return n===null||n===-1||n===0||n===408||n===429||n>=500}function de(e){if(!e||typeof e!=`object`)return null;let{response:t,status:n}=e,r=t?.status??n,i=Number(r);return Number.isFinite(i)?i:null}function K(e){return new Promise(t=>{setTimeout(t,e)})}function q(){return n()===!0}return{fetchLatest:k,syncTracked:A,ensureSyncedForContext:j,maybeSyncForStateUpdate:M,initializeEnabledRuntime:N,scheduleDayBoundarySync:P,applyFromServerSync:F,dispose:ee}}const Vm={bootstrapRetryDelaysMs:[1e3,3e3,8e3]},Hm={boostFlowStarted:`streaks:boost-flow-started`,boostFlowEnded:`streaks:boost-flow-ended`},Um={resetNotificationWeek:`reset-notification-week`,deferredResetNotification:`deferred-reset-notification`,onboardingModal:`streaks-onboarding-modal`};function Wm(e,t){let n=h({isLoading:!1,isLoaded:!1,hasServerData:!1,isEnrolling:!1,error:null,data:{enrolled:!1}}),r=null,i=e.get(`Me`),a=e.get(`AppNotifications`),o=null,s=new Map,c=null,l=null,u=null,d=null,f=!1,p={current:{enrolled:!1},previous:null},m=Pm({getMeId:()=>K(),getStorageKey:kp,getTracker:ne,getHasServerData:()=>n.hasServerData,getCurrentBaseline:()=>p.current,normalizeStreaksData:zp,deriveAndApplyEffectiveFromTrackerOverlay(){v(L(le(p.current)))},applyExternalServerData(e){let t=p.current;R(e),u?.applyFromServerSync(e,t,{skipNotifications:!0})},requestServerSyncForCrossTab(){Promise.resolve(u?.syncTracked({ensureEnrollment:!1})??null)}});function _(e={}){return u.fetchLatest(e)}function v(e){return d===!1?n.data:(n.data=zp(e),n.isLoaded=!0,n.hasServerData=!0,n.error=null,u?.scheduleDayBoundarySync(),n.data)}function y(e={}){return u.syncTracked(e)}function b(e){return u.ensureSyncedForContext(e)}function x(){return ce.flushDeferredResetNotification()}function S(){return d===!1?Promise.resolve(n.data):d===null?N(S,n.data):n.isEnrolling?Promise.resolve(n.data):(n.isEnrolling=!0,n.error=null,Un.post(`https://aws.bandlab.com/api/v1.3/streaks/enroll`).then(()=>_({force:!0})).catch(e=>(n.error=e,Promise.reject(e))).finally(()=>{n.isEnrolling=!1}))}function C(){return d===!1?Promise.resolve():d===null?N(C,void 0):Un.post(`https://aws.bandlab.com/api/v1.3/streaks/streak-lost-notified`).then(()=>void 0)}function w(){n.hasServerData||te(0)}function T(){!i.isAnonymous()&&ge()&&Ae(wm.streakDashboardViewed)}function E(e){let t=de(e);return{sessionId:t,trackAcceptedPlay(e){e&&t&&l?.trackAction({action:`discover`,contentId:e})}}}function D(e){let t=g(!0);return t.run(()=>re(n,t=>e(t),{deep:!0,immediate:!0})),()=>t.stop()}function O(){pe(),c!==null&&(clearTimeout(c),c=null),ce.clearQueuedStreaksModal(),l?.clearQueuedTrackActions(),u?.dispose(),m.dispose()}function k(){fe(`trackActionListener`,`streaks:track-action`,(e,t={})=>{me(t)}),fe(`commentChangedListener`,`$comment:changed`,(e,{action:t,comment:n}={})=>{t===`create`&&n?.id&&me({action:`comment`,source:`$comment:changed`,eventKe
28y:`comment::${n.id}`,contentId:n.id})}),fe(`postCreateListener`,`$post:createSuccess`,(e,t)=>{A(t,`$post:createSuccess`)}),fe(`boostFlowStartedListener`,Hm.boostFlowStarted,()=>{ce.markBoostFlowStarted()}),fe(`boostFlowEndedListener`,Hm.boostFlowEnded,()=>{ce.resetBoostFlowSuppression()})}function A(e,t){e?.id&&!he(e)&&me({action:`post`,source:t,eventKey:`post::${e.id}`,contentId:e.id})}function j(){ge()&&!f&&(f=!0,ne(),u?.initializeEnabledRuntime(),l?.flushQueuedTrackActions())}function M(e){return d=e,e?j():(l?.clearQueuedTrackActions(),ee()),e}function N(e,t){return P().then(n=>n?e():t)}function P(){if(r)return r;if(d!==null)return Promise.resolve(d);if(i.isAnonymous())return Promise.resolve(!1);let e=Promise.resolve(Dm(i)).then(M).finally(()=>{r=null});return r=e,e}function F(){n.isLoaded||(n.data=zp(n.data),n.isLoaded=!0,n.hasServerData=!1,n.isLoading=!1)}function ee(){ce.clearQueuedStreaksModal(),n.isLoading=!1,n.isLoaded=!0,n.hasServerData=!1,n.isEnrolling=!1,n.error=null,n.data=zp({enrolled:!1})}function te(e){Promise.resolve(_()).catch(()=>{if(e>=Vm.bootstrapRetryDelaysMs.length){F();return}c=setTimeout(()=>{c=null,te(e+1)},Vm.bootstrapRetryDelaysMs[e])})}function I(e){let t=L(e.effective);if(e.skipNotifications)return v(t),t;let n=ce.notifyGoalTransitions({beforeActiveToday:e.beforeActiveToday,afterActiveToday:e.afterActiveToday,allowDailyQualifiedFallback:e.allowDailyQualifiedFallback,suppressGoalNotifications:e.suppressGoalNotifications,effective:t,source:e.source,targetDays:e.targetDays,previousActiveDays:e.previousActiveDays,acceptedActionSource:e.acceptedActionSource,acceptedActionEventKey:e.acceptedActionEventKey,didCompleteWeekOnAcceptedAction:e.didCompleteWeekOnAcceptedAction});return v(n.effective),n.effective}function L(e){if(!e.enrolled)return e;let t=z();if(!t)return e;let n=t.getProjectedStreakCounter(e.streakCounter||0);return n===e.streakCounter?e:{...e,streakCounter:n,streakActive:n>0||e.streakActive,hasStreakHistory:n>0||e.hasStreakHistory}}function R(e){return p.previous=p.current,p.current=zp(e),p.current}function ne(){if(o)return o;let e=K();return e?(o=pm(e,{onPersist:m.notifyTrackerPersisted}),m.setInitialVersion(o.getSnapshot().stateVersion),m.initialize(),o):null}function z(){let e=ne();return e?(e.reloadFromStorage(),e):null}function B(e,t){let n=z();return n?t(n):e}function V(e){let t=z();t&&e(t)}function ie(){let e=K();if(e)return Mp(e,Um.resetNotificationWeek)||void 0}function H(){let e=K();if(!e)return null;let t=Mp(e,Um.deferredResetNotification);if(!t)return null;try{let e=JSON.parse(t);return typeof e.weekEndDateUtc!=`string`||typeof e.targetDays!=`number`?null:{weekEndDateUtc:e.weekEndDateUtc,targetDays:e.targetDays}}catch{return null}}function ae(e){let t=K();t&&Np({userId:t,key:Um.deferredResetNotification,value:JSON.stringify(e)})}function oe(){let e=K();e&&Pp(e,Um.deferredResetNotification)}function se(e){let t=K();t&&e&&Np({userId:t,key:Um.resetNotificationWeek,value:e})}let ce=Em({AppNotifications:a,acknowledgeStreakLostNotified:C,getCurrentStreaksData:()=>n.data,canShowResetNotification:G,getStreaksDashboardHref:ue,notificationState:{getTrackerSnapshot:()=>B(null,e=>e.getSnapshot()),hasWeeklyGoalCompletedForWeek:e=>B(!1,t=>t.hasWeeklyGoalCompletedForWeek(e)),hasDailyNotificationSeen:e=>B(!1,t=>t.hasDailyNotificationSeen(e)),markWeeklyGoalCompleted:e=>V(t=>{t.markWeeklyGoalCompleted(e)}),markDailyNotificationShown:e=>V(t=>{t.markDailyNotificationShown(e)}),markWeeklyNotificationShown:()=>V(e=>{e.markWeeklyNotificationShown()}),clearWeeklyNotificationShownForWeek:e=>V(t=>{t.clearWeeklyNotificationShownForWeek(e)}),clearWeeklyGoalCompletedForWeek:e=>V(t=>{t.clearWeeklyGoalCompletedForWeek(e)}),getStreakResetNotifiedWeek:ie,markStreakResetNotifiedWeek:se,getDeferredResetNotification:H,setDeferredResetNotification:ae,clearDeferredResetNotification:oe},withProjectedStreakCounter:L,StreaksModalComponent:J(()=>import(`./Cut04u7Q.js`))});function le(e){if(!e.enrolled)return e;let t=z();if(!t)return e;let n=Kp(e);if(!n)return e;let r=t.getSnapshot({dayKey:e.currentWeek.currentDayDedupeKey});return Hp({serverBaseline:e,localPendingByDay:r.localPendingByDay,optimisticActiveDayKeys:r.optimisticActiveDayKeys,targets:n})}function U(){return e.get(`$state`)}function W(){return U()?.current?.name||``}function G(){let e=U(),t=e?.current?.name||``,n=e?.params?.username??``;return n!==``&&n===i?.username&&Lm.has(t)}function ue(){return i?.username?U().href(`userStreaks.dashboard`,{username:i.username}):null}function de(e){if(e&&ge()&&n.data.enrolled&&W()===`discover.hotNow`)return e}function K(){return!i?.id||i.isAnonymous()?null:i.id}function q(e,t){if(s.has(e))return;let n=t();typeof n==`function`&&s.set(e,n)}function fe(e,n,r){q(e,()=>t.$on(n,r))}
28function pe(){Array.from(s.values()).reverse().forEach(e=>{e()}),s.clear()}function me(e){if(d===null){l?.queueTrackAction(e),Promise.resolve(P());return}l?.trackAction(e)}u=Bm({me:i,state:n,getFeatureEnabledState:()=>d,resolveFeatureEnabled:P,getCurrentBaseline:()=>p.current,getPreviousBaseline:()=>p.previous,seedBaseline:R,getTracker:ne,getStateService:U,applyClientData:v,resolveAndApplyEffectiveState:I,flushQueuedTrackActions:()=>l?.flushQueuedTrackActions(),ensureLoadedFallbackState:F,enroll:S,initializeCrossTabSync:m.initialize,replayDeferredCrossTabSync:m.replayDeferredTrackerSync,notifyServerDataFetched:m.notifyServerDataFetched}),l=km({me:i,getStateName:W,isFeatureEnabled:ge,getCurrentBaseline:()=>p.current,getTracker:ne,resolveAndApplyEffectiveState:I,syncTracked:e=>u.syncTracked(e),maybeSyncForStateUpdate:()=>u?.maybeSyncForStateUpdate()??null}),k();function he(e){let t=String(e.type||``).toLowerCase(),n=t===`revision`||t===`track`,r=!!(e.revision||e.revisionId||e.songRevision);return n||r}function ge(){return d===!0}return{state:n,fetchLatest:_,enroll:S,acknowledgeStreakLostNotified:C,applyClientData:v,getDiscoverPlayTrackingContext:E,syncTracked:y,ensureSyncedForContext:b,flushDeferredResetNotification:x,bootstrap:w,trackDashboardViewed:T,subscribe:D,dispose:O}}const Gm=Wn(Wm);function Km(e,t){return Gm(e,t)}Km.$inject=[`$injector`,`$rootScope`],angular.module(`bandlab.user`,[]).factory(`StreaksService`,Km).directive(`userProfileHeader`,[`$injector`,function(e){return{scope:{user:`=`},link:function(t,n){$(import(`./DQO3s6M3.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`userProfileHeaderMobile`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,scope:{user:`=`},link:function(t,n){$(import(`./BzkaWlZS.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`userProfileStatsMobile`,[`$injector`,function(e){return{restrict:`E`,scope:{user:`=`},link:function(t,n){let r=h({user:t.user});t.$watch(`user`,e=>{r.user={...e,counters:{...e.counters}}},!0),$(import(`./D-13mXVP.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userProfileInteractableVerifiedBadge`,[`$injector`,function(e){return{scope:{user:`=`},link:function(t,n){let r=h({user:t.user});$(import(`./DSsTiELB.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userProfileVerifiedCard`,[`$injector`,function(e){return{scope:{user:`=`},link:function(t,n){let r=h({user:t.user});$(import(`./BWc6mYDW.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userProfileAboutCard`,[`$injector`,function(e){return{scope:{user:`<`},link:function(t,n){let r=h({user:t.user});$(import(`./DZmZaPsF.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userProfileSocialCard`,[`$injector`,function(e){return{scope:{isOwnerBioPagePublic:`<`,user:`<`},link:function(t,n){let r=h({user:t.user,isOwnerBioPagePublic:t.isOwnerBioPagePublic});t.$watch(function(e){let{user:t,isOwnerBioPagePublic:n}=e;r.user=t,r.isOwnerBioPagePublic=n},!0),$(import(`./hMzS3M64.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userCreatePost`,[`$injector`,function(e){return{restrict:`EA`,replace:!0,scope:{entity:`<`,injectedCaption:`<`,injectedImage:`<`,text:`<`},template:`<div class="user-create-post"></div>`,link:function(t,n){let r={entity:t.entity,injectedCaption:t.injectedCaption,injectedImage:t.injectedImage,text:t.text};$(import(`./CjuPA5bM.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userSocialCarousel`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,scope:{isOwnerBioPagePublic:`<`,user:`=`},link:function(t,n){let r=h({isOwnerBioPagePublic:t.isOwnerBioPagePublic});t.$watch(function(e){let{isOwnerBioPagePublic:t}=e;r.isOwnerBioPagePublic=t},!0),$(import(`./DoMfBkU-.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userFollowTile`,[`$injector`,function(e){return{restrict:`E`,scope:{adEventSource:`@`,user:`=`,triggeredFrom:`<`},link:function(t,n){let r=h({adEventSource:t.adEventSource,user:t.user,triggeredFrom:t.triggeredFrom});$(import(`./Cxwcw_cR.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`nowPlaying`,[`$injector`,function(e){return{restrict:`EA`,replace:!0,scope:{post:`<`,isCurrentlyPlaying:`<`},template:`<div class="now-playing-root"></div>`,link:function(t,n){let r={post:t.post,isCurrentlyPlaying:t.isCurrentlyPlaying};$(import(`./C7gkydGR.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userProfileMetrics`,[`$injector`,function(e){return{restrict:`EA`,replace:!0,scope:{user:`<`,profileViewersLinkIsLoading:`<`,streaksEnabled:`<`},template:`<div class="user-profile-metrics"></div>`,link:function(t,n){let r=h({user:t.user,profileViewersLinkIsLoading:t.profileViewersLinkIsLoading,streaksEnabled:!!t.streaksEnabled});
28t.$watch(`user`,function(e){r.user=e}),t.$watch(`profileViewersLinkIsLoading`,function(e){r.profileViewersLinkIsLoading=!!e}),t.$watch(`streaksEnabled`,function(e){r.streaksEnabled=!!e}),$(import(`./B4BxKmCK.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userProfileCountersCard`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{user:`<`,isOwnProfile:`<`,profileViewersLinkIsLoading:`<`,mutualConnections:`<`},template:`<div class="profile-card-counters-container"></div>`,link:function(t,n){let r=h({user:t.user,isOwnProfile:!!t.isOwnProfile,profileViewersLinkIsLoading:!!t.profileViewersLinkIsLoading,mutualConnections:t.mutualConnections||null});t.$watch(`user`,e=>{r.user={...e,counters:{...e.counters}}},!0),t.$watch(`profileViewersLinkIsLoading`,e=>{r.profileViewersLinkIsLoading=!!e}),t.$watch(`mutualConnections`,e=>{r.mutualConnections=e||null}),$(import(`./DZKAIzkm.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`userRecentActivityCard`,[`$injector`,function(e){return{restrict:`EA`,replace:!0,scope:{recentActivity:`<`,isLoading:`<`},template:`<div class="user-recent-activity-card"></div>`,link:function(t,n){let r=h({recentActivity:[],isLoading:!1});t.$watchCollection(`recentActivity`,function(e){r.recentActivity=Array.isArray(e)?e:[]}),t.$watch(`isLoading`,e=>{r.isLoading=!!e}),$(import(`./CwmRe3ls.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`streaksCard`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{user:`<`,tooltipLayout:`@?`},template:`<div></div>`,link:function(t,n){function r(e){n[0].style.display=e?``:`none`}let i=h({user:t.user,tooltipLayout:t.tooltipLayout||`desktop`,onVisibilityChange:r});t.$watch(`user`,function(e){i.user=e}),t.$watch(`tooltipLayout`,function(e){i.tooltipLayout=e||`desktop`}),$(import(`./Cnqw6v3m.js`).then(e=>e.n),n[0],t,{$injector:e,scope:t},i)}}}]).directive(`userCardProfilePicture`,[`$injector`,function(e){return{restrict:`E`,scope:{user:`<`,isOnline:`<`,isInStudio:`<`},link:function(t,n){function r(e){return e&&{...e,picture:e.picture?{...e.picture}:e.picture,counters:e.counters?{...e.counters}:e.counters,badges:e.badges?[...e.badges]:e.badges}}let i=h({user:r(t.user),isOnline:t.isOnline,isInStudio:t.isInStudio});t.$watch(`user`,e=>{i.user=r(e)},!0),t.$watch(`isOnline`,e=>{i.isOnline=e}),t.$watch(`isInStudio`,e=>{i.isInStudio=e}),$(import(`./LIIo9I9E.js`),n[0],t,{$injector:e,scope:t},i)}}}]).directive(`userCompleteProfileCard`,[`$injector`,function(e){return{link:function(t,n){$(import(`./CQLcspBt.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`userMutualConnectionsMobile`,[`$injector`,function(e){return{restrict:`E`,replace:!0,template:`<div style="display: contents;"></div>`,scope:{mutualConnections:`<`,user:`<`},link:function(t,n){let r=h({mutualConnections:t.mutualConnections,user:t.user});$(import(`./BP2_KwWN.js`),n[0],t,{$injector:e,scope:t},r)}}}]);function qm(e,t){var n=[];return ji(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function Jm(e,t){return(Ye(e)?Fn:qm)(e,Mi(t,3))}function Ym(e,t){var n=-1,r=Rn(e)?Array(e.length):[];return ji(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function Xm(e,t){return(Ye(e)?$e:Ym)(e,Mi(t,3))}function Zm(e,t){var n;return ji(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}function Qm(e,t,n){var r=Ye(e)?An:Zm;return n&&Pi(e,t,n)&&(t=void 0),r(e,Mi(t,3))}function $m(e){return Un.get(`https://www.bandlab.com/api/v1.3/settings/notifications/${e}`).json()}function eh(e,t){return Un.patch(`https://www.bandlab.com/api/v1.3/settings/notifications/${e}`,{json:t})}function th(){return Un.get(`https://accounts.bandlab.com/oauth/external/token`).json()}function nh(e){return Un.post(`https://aws.bandlab.com/api/v1.3/marketing-consent`,{json:e})}angular.module(`bandlab.user`).factory(`completeProfile`,[`$analytics`,`$http`,`$q`,`$rootScope`,`authService`,`Identity`,`Me`,`Modal`,`Password`,`Tag`,`User`,function(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,m,h;return{start:_,stop:v};function g({genres:t,skills:r,goals:l,artistRecommendations:u,isBirthdayOnboardingRequired:p,isMarketingConsentEnabled:g,shouldCompleteProfileGoals:_,shouldShowSimplifyLogin:v}){let y=Y.getItem(`artistRecommendationsStepComplete`)===`true`;h={value:!1};let x={simplifyLogin:!v,user:o.ftue.setCustomUsername&&(o.hasPassword||o.isSocial)&&o.email,birthday:!p||!!o.birthday,goals:!_||!!o.goals?.length,skills:o.ftue.setSkills,genres:o.ftue.setGenres,inspiredBy:o.ftue.setInspiredBy,artistRecommendations:y||u.length===0},S=Object.keys(x).filter(e=>!x[e]),C={current:1,total:S.filter(e=>e!==`simplifyLogin`).length};o.isEmailConfirmed||(S.push(`emailConfirmation`),C.total+=1);var w=n.defer(),T;let E=o.username;return d=new s({id:`completeProfileModal`,templateUrl:`https://www.bandlab.com/web-app/account/partials/_complete-profile-bc3c0cae2.html`,overlayClose:!1,contentScope:{isMarketingConsentEnabled:g,showEmailConfirmationStep:!o.isEmailConfirmed,isExistingUser:(Date.now()-new Date(o.createdOn))/36e5>24,steps:C,stepsData:S,me:o,genres:t,skills:r,goals:l,profilePictures:m,marketingConsent:h,artistRecommendations:u,user:{newPassword:``,inspiredBy:o.inspiredBy,birthday:o.birthday,username:o.username,email:o.email}
28,submitUserStep:function(e,t){!e||e.$invalid||e.$pending||(o.username=t.username,o.email=t.email,this.updatePasswordField(t.newPassword),(!t.email||!o.isEmailConfirmed)&&!this.showEmailConfirmationStep&&!this.isExistingUser&&a.resendEmailConfirmation(),this.nextStep())},submitProfile:function(){let n=this.user.birthday,s=l.selectedGoal?{Create:`Artist`,Connect:`Social Musician`,Listen:`#1 Fan`}[l.selectedGoal]:`None`;e.eventTrack(s,{category:`Onboarding`}),l.selectedGoal||=`Listen`,new a({genres:Jm(t,{isSelected:!0}),skills:Jm(r,{isSelected:!0}),inspiredBy:o.inspiredBy,...n?{birthday:n}:{},...E===o.username?{}:{username:o.username},email:o.email}).$update().then(function(e){let t={...e,...n?{birthday:n}:{}};return f?new c({newPassword:f}).$update().then(function(){return t.hasPassword=!0,t}):t}).then(function(e){return e.goals=[l.selectedGoal],i.setMe(e),b([l.selectedGoal])}).then(function(){if((o.isEmailConfirmed&&g===`create_account_page`||g===`set_up_profile_page`)&&nh({decision:h.value,screen:`Signup`}),o.isEmailConfirmed&&g===`create_account_page`||g===`set_up_profile_page`){let e=g===`create_account_page`?`create_account_page`:`set_up_profile_page`;h.value===!1?ba(e):ua(e)}}).then(function(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logMainOnboardingComplete:e,logInspiredByArtistAdd:t}){e(),o.inspiredBy.length>0&&(a.setInspiredBy(),t(o.inspiredBy,`onboarding`))}),w.resolve()})},updatePasswordField:function(e){f=e},displayStep:function(){let e=+(S[0]===`simplifyLogin`);return C.current-e},nextStep:function(){let e=S[C.current];e===`inspiredBy`&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logInspiredByOpen:e}){e(`onboarding`)}),(!e||e===`emailConfirmation`)&&this.submitProfile(),e&&T.classList.add(`step-${++C.current}`),T.scrollTop=0}},onCreate:function(e){T=e[0]}}),d.show(),w.promise}function _(){return p=r.$on(`$user:changed`,function(e,{action:t,data:n}){m[0].pictureId=n.pictureId,t!==`updateProfilePicture`&&u.get({id:o.id}).$promise.then(function(){o.picture.isDefault=!1})}),n.all([l.getSkills(),l.getGenres(),y(),u.getProfilePictures({userId:o.id}),u.getOnboardingArtistRecommendations({userId:o.id,limit:4}).$promise,ke(o,`onboarding_birthday_required_enabled`),ke(o,`sign_up_marketing_consent_ui`),Me(o,`onboarding-no-musical-journey`),ke(o,`passkey_enabled`)]).then(async function([e,t,n,r,i,a,s,c,l]){m=r,t=Xm(t,function(e){return e.isSelected=Qm(o.genres,{id:e.id}),e}),e=Xm(e,function(e){return e.isSelected=Qm(o.skills,{id:e.id}),e}),n={selectedGoal:n[0]};let u=!1;if(l===`true`)try{let{getActivePasskey:e,isPasskeySupported:t}=await import(`./YB3ztOnz.js`);if(t()){let{passkeys:t=[]}=await e();u=!(t.length>0)}}catch{u=!1}let d=i?.data||[];return g({skills:e,genres:t,goals:n,artistRecommendations:d,isBirthdayOnboardingRequired:a!==`false`,isMarketingConsentEnabled:s,shouldCompleteProfileGoals:c?.key!==`true`,shouldShowSimplifyLogin:u})})}function v(){d.destroy(),p()}function y(){return t.get(`https://www.bandlab.com/api/v1.3/users/${o.id}/goals`).then(e=>e.data.goals||[]).catch(()=>[])}function b(e){return t.put(`https://www.bandlab.com/api/v1.3/users/${o.id}/goals`,{goals:e}).catch(()=>[])}}]),angular.module(`bandlab.account`).factory(`Grants`,[`$resource`,function(e){var t=`https://accounts.bandlab.com/oauth`;return e(t,{},{get:{method:`GET`,url:`${t}/grants`},revoke:{method:`DELETE`,params:{clientId:`@clientId`},url:`${t}/grants/:clientId`}})}]),angular.module(`bandlab.account`).factory(`Identity`,[`$resource`,function(e){var t=`https://www.bandlab.com/api/v1.3/`;return e(t,{},{info:{cache:!1,method:`GET`,url:`${t}me`},ftue:{cache:!1,method:`GET`,url:`${t}me/ftue`},counters:{cache:!1,method:`GET`,params:{id:`@id`},url:`${t}users/:id/counters`},resendEmailConfirmation:{method:`POST`,url:`${t}emails/confirmations`},setUsedStudio:{method:`POST`,url:`${t}me/ftue/used-studio`},setInspiredBy:{method:`POST`,url:`${t}me/ftue/set-inspired-by`},update:{method:`PATCH`,url:`${t}me`,transformRequest:[n,angular.toJson]},getWarning:{method:`GET`,url:`https://www.bandlab.com/api/v1.3/users/:id/warnings`}
28,sendDeletionEmail:{method:`POST`,url:`${t}me/delete`,params:{reason:`@reason`}}});function n(e){return Qe(e,`place.name`)&&!Qe(e,`place.id`)&&(e=angular.copy(e),delete e.place),e}}]),angular.module(`bandlab.account`).factory(`Login`,[`$resource`,function(e){var t=`https://www.bandlab.com/api/v1.3/logins`;return e(t,{},{delete:{method:`DELETE`,params:{provider:`@provider`},url:`${t}/:provider`}})}]),angular.module(`bandlab.account`).factory(`Me`,function(){return{isAnonymous:function(){return angular.isUndefined(this.username)},isUser:function(){return angular.isDefined(this.username)}}}),angular.module(`bandlab.account`).factory(`Password`,[`$resource`,function(e){var t=`https://www.bandlab.com/api/v1.3/passwords`;return e(t,{},{reset:{method:`POST`,url:`${t}/reset`},update:{method:`PUT`}})}]),angular.module(`bandlab.account`).factory(`Settings`,[`$resource`,`Me`,function(e,t){return e(`https://www.bandlab.com/api/v1.3/settings`,{},{getPrivacySettings:{method:`GET`,url:`https://www.bandlab.com/api/v1.3/users/${t.id}/settings/privacy/:service`},savePrivacySettings:{method:`PUT`,params:{service:`@service`},url:`https://www.bandlab.com/api/v1.3/users/${t.id}/settings/privacy/:service`}})}]),angular.module(`bandlab.account.settings`,[`bandlab.account`]),angular.module(`bandlab.account.settings`).controller(`AccountDeleteCtrl`,[`$analytics`,`$scope`,`AppNotifications`,`Identity`,`Modal`,function(e,t,n,r,i){t.reason=d.get(`deleteReason`),t.isEmailLoa
28ding=!1,t.storeReasonInCookie=function(){d.set(`deleteReason`,t.reason,{expires:1})},t.openDeleteConfirmationModal=function(e){new i({templateUrl:`https://www.bandlab.com/web-app/account/settings/partials/_account-delete-confirm-4e3d684c4.html`,contentScope:{sendDeletionEmailModal:()=>a(e)}}).show()};function a(e){return t.isEmailLoading=!0,r.sendDeletionEmail({reason:t.reason}).$promise.then(function(n){n?.deleteConfirmationLink&&(window.location.href=n.deleteConfirmationLink),o(),s(e),e.$submitted=!1,t.isEmailLoading=!1}).catch(function(r){e.$submitted=!1,t.isEmailLoading=!1,n.addNotification({title:r.data?.message||`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})}function o(){Promise.all([import(`./BnQjuQvx.js`),import(`./BUIA2SYS.js`).then(e=>e.t)]).then(function([{default:e},{createModal:t}]){t(e)})}function s(){e.eventTrack(`Reason: ${t.reason}`,{category:`Delete account`,label:t.details})}}]),angular.module(`bandlab.account.settings`).controller(`AccountEditCtrl`,[`$location`,`$scope`,`$state`,`$timeout`,`AppNotifications`,`authService`,`Identity`,`Me`,function(e,t,n,r,i,a,o,s){t.user=new o,t.user.email=s.email,t.user.gender=s.gender,t.user.birthday=s.birthday,t.user.age=s.age,t.initalBirthday=s.birthday,t.form={},t.form.birthdayFieldInvalid=!1,Me(s,`settings_allow_birthday_update`).then(e=>{t.birthdayUpdateAgeLimit=e?.payload?.age_limit}),t.updateBirthday=function(e,t){l(e,t)},t.validateBirthday=function(e){if(!e)return`Required field`;let t=new Date,n=new Date;t.setFullYear(t.getFullYear()-6),n.setFullYear(n.getFullYear()-130);let r=Tp(e);return Number.isNaN(r.getTime())||r>t||r<n?`Invalid date`:!0},t.editMe=function(e,r){o.update({[e]:t.user[e]}).$promise.then(function(o){a.setMe(o).then(function(){a.identifyUserForTrackers(o)}),i.addNotification({title:`Profile updated`,action:`<a class="notification-action-text-inline" href="${n.href(`user.feed`,{username:o.username})}">Go to Profile</a>`,classList:`success`,autoclose:8e3}),e===`birthday`&&(t.initalBirthday=o.birthday),r.$setPristine()}).catch(function(e){i.addNotification({title:`Your account has not been updated.`,content:e.data?.message||`Something went wrong`,classList:`alert`,autoclose:8e3}),r.$setPristine()})};function c(e){let t=new Date,n=t.getFullYear();return e>t.setFullYear(n-13)}function l(e,n){let r=Tp(n),i=r.toLocaleDateString(Di(),{month:`short`,day:`2-digit`,year:`numeric`}),a=J(()=>import(`./Ce06OZnj.js`));X(a,{onConfirm:function(){t.editMe(`birthday`,e),va({is_restricted:c(r)}),c(r)===!0&&u()},inputDate:i})}function u(){let e=J(()=>import(`./l5lfqz4A.js`));X(e,{onConfirm:function(){n.go(`logout`)}},{overlayClose:!1,escapeClose:!1})}r(()=>{let t=e.hash();t&&document.getElementById(t).scrollIntoView({behavior:`smooth`,inline:`center`})})}]),angular.module(`bandlab.account.settings`).controller(`AppsPermissionsCtrl`,[`$scope`,`ConfirmModal`,`Grants`,function(e,t,n){function r(){n.get().$promise.then(({grants:t})=>{e.apps=t.filter(e=>e.clientId!==`bandlab`)})}function i({clientId:t}){n.revoke({clientId:t}).$promise.then(()=>{e.apps=e.apps.filter(e=>t!==e.clientId)}).catch(r)}e.revokeConfirm=function(e){new t({confirmLabel:`Remove`,contentScope:{title:`Remove access?`,message:`<p>${`${`<strong>${e.clientName}</strong>`} will not be able to access your BandLab account unless you grant permissions.`}</p>`},onConfirm:()=>i(e)}).show()},r()}]);function rh({rgb:e,hex:t,ratio:n}){return(e||vh(t)).map(e=>Math.max(0,Math.min(255,e+Math.round(n*255))))}function ih({rgb:e,hex:t,ratio:n}){return(e||vh(t)).map(e=>Math.max(0,Math.min(255,e+Math.round(n*e))))}function ah([e,t,n]){return .299*e+.587*t+.114*n}function oh(e,t){return t.find(function(t){return Object.keys(t.colors).every(function(n){return t.colors[n]===e[n]})})}function sh([e,t,n],[r,i,a]){return Math.max(e,r)-Math.min(e,r)+(Math.max(t,i)-Math.min(t,i))+(Math.max(n,a)-Math.min(n,a))}async function ch(e){try{let[t,{getColorSync:n,getPaletteSync:r}]=await Promise.all([xh(e),import(`./BpXamvF8.js`)]);return[n(t,{colorSpace:`rgb`}).array(),...r(t,{colorSpace:`rgb`}).map(e=>e.array())]}catch{return[1,2,3,4,5].map(()=>[255,255,255])}}async function lh(e){return mh((await ch(e))[0])}async function uh(e){let t=await ch(e),n=Ch(t);return sh(n[0],n[n.length-1])<300?[dh(n),...hh(gh(t[0]))]:[mh(t[0]),fh(n),...ph(t)]}function dh(e){let t=Ch(e);return{name:`Monochrome`,colors:_h(bh({rgb:t[0]})?t.map((e,t)=>rh({rgb:e,ratio:t*-.15})):t.map((e,n)=>rh({rgb:e,ratio:(t.length-1-n)*.15})))}}function fh(e){return{name:`Bright`,colors:_h(Ch(e))}}function ph(e){return e.map((t,n)=>({name:`Palette ${`${n+1}`}`,colors:_h(wh(t,e))}))}function mh(e){return{name:`Monochrome`,colors:_h(gh(e))}}function hh(e){return e.map((t,n)=>({name:`Palette ${`${n+1}`}`,colors:_h(wh(t,e))}))}function gh(e){let t=ah(e)>255/2?-1:1;return[rh({rgb:e,ratio:t*.03}),rh({rgb:e,ratio:t*.1}),rh({rgb:e,ratio:t*.2}),rh({rgb:e,ratio:t*.5}),rh({rgb:e,ratio:t*.7})]}function _h(e){let t=e.map(e=>Sh(e));return{body:t[0],button:t[1],background:t[t.length-3],secondary:t[t.length-2],text:t[t.length-1]}}function vh(e){let t=e.replace(/#/g,``);return[parseInt(t.substring(0,2),16),parseInt(t.substring(2,4),16),parseInt(t.substring(4,6),16)]}function yh(e){let[t,n,r]=vh(e);t/=255,n/=255,r/=255;let i=Math.max(t,n,r),a=Math.min(t,n,r),o,s,c=(i+a)/2;if(i===a)o=s=0;else{var l=i-a;switch(s=c>.5?l/(2-i-a):l/(i+a),i){case t:o=(n-r)/l+(n<r?6:0);break;case n:o=(r-t)/l+2;break;case r:o=(t-n)/l+4}o/=6}return[o,s,c]}function bh({rgb:e,hex:t}){return e?ah(e)>127:t?ah(vh(t))>127:!1}function xh(e){let t=new Image;return t.src=e,t.crossOrigin=`Anonymous`,new Promise(function(e){if(t.complete)return e(t);t.addEventListener(`load`,function(){return e(t)},{once:!0})})}function Sh([e,t,n]){return`#${[e,t,n].map(e=>{let t=e.toString(16);return t.length===1?`0${t}`:t}).join(``)}`}function Ch(e){return[...e].sort((e,t)=>
28ah(t)-ah(e))}function wh(e,t){return[...t].sort((t,n)=>sh(e,t)-sh(e,n))}function Th(e,t,n){return e?gn||vn?Da(e,t):Sn?e>=n:!1:!1}var Eh=n({daysLeft:()=>Nh,handleErrorCheck:()=>kh,opportunityThemeGenerator:()=>jh,parseOpportunityTypeLabel:()=>Ph,processCampaign:()=>Ah,retrieveBanners:()=>Dh,useInAppPurchaseTrigger:()=>Oh});function Dh(e){return e?.data?e.data.map(e=>({title:e.title,link:e.link,imgUrl:e.picture.url})):[]}function Oh(e,t,n=()=>{}){let r=e.get(`$state`),i=e.get(`Me`),{clearMembershipOtherTabs:a,membership:s,refreshMembership:c}=Kn(i),l=0;return window.addEventListener(`popstate`,u),t.$on(`$destroy`,function(){window.removeEventListener(`popstate`,u)}),{startPurchaseFlow:f};function u(){location.hash&&l++,[`#bl_purchaseCompleted`,`#bl_purchaseCancelled`].includes(location.hash)&&(window.history.go(-1*l),l=0),location.hash===`#bl_purchaseCompleted`&&(c(),a(),n(s))}function f(e,t,n){let i=Th(d.get(`X-Client-Version`),`10.71.0`,1071e4);if(o()&&i){let i=r.href(`getMembership`,{contentId:n,productAttribution:e,productAttributionGroup:t,persistWebview:!0},{absolute:!0});window.open(i,`_blank`);return}r.go(`.`,{"#":`bl_startMembershipPurchaseFlow`})}}function kh(e,t){if(t?.data?.errorCode===22||t?.data?.errorCode===120){let e=J(()=>import(`./C9NRjjLY.js`));import(`./BUIA2SYS.js`).then(e=>e.t).then(function({createModal:n}){n(e,{emailUnconfirmed:t.data.errorCode===120})})}else e.addNotification({title:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})}async function Ah(e){return await Mh(e.picture),e}function jh(){let e=document.querySelector(`.submission-page`),t=s();if(!t)return;o(n(t[0]));function n(e){return{colors:r(i(e))}}function r(e){return{body:e.map(e=>Sh(e))[0]}}function i(e){return[rh({rgb:e,ratio:(ah(e)>255/2?-1:1)*.03})]}function a(e){return ah(vh(e))<=50?ih({hex:e,ratio:.8}):ih({hex:e,ratio:-.4})}function o({colors:t}){let{body:n}=t,r=a(n),i=s(r,.1);e.style.setProperty(`--submission-bg`,`rgba(${r.join(`,`)},1)`),e.style.setProperty(`--submission-bg-secondary`,Sh(i)),e.style.setProperty(`--checkmark-bg`,o(Sh(r),.15)),e.style.setProperty(`--recommendation-hover`,o(Sh(i),-.02));function o(e,t){return`rgb(${(bh({hex:e})?rh({hex:e,ratio:-1*t}):rh({hex:e,ratio:t})).join(`,`)})`}function s(e,t){let[n,r,i]=e;return[Math.ceil(255*t)+Math.ceil(n*(1-t)),Math.ceil(255*t)+Math.ceil(r*(1-t)),Math.ceil(255*t)+Math.ceil(i*(1-t))]}}function s(){let e=Y.getItem(`colors`);if(e)try{let{color:t,palette:n}=JSON.parse(e);return[t,n]}catch{}}}function Mh(e){let t=new Image;t.crossOrigin=`Anonymous`,t.src=e;let n=new Promise(e=>{t.addEventListener(`load`,()=>e(t),{once:!0}),t.addEventListener(`error`,()=>e(null),{once:!0})});return Promise.all([import(`./BpXamvF8.js`),n]).then(([{getColorSync:e,getPaletteSync:t},n])=>{if(!n)return Y.removeItem(`colors`);let r=e(n,{colorSpace:`rgb`}).array(),i=t(n,{colorSpace:`rgb`}).map(e=>e.array());Y.setItem(`colors`,JSON.stringify({color:r,palette:i}))})}function Nh(e){let t=0;if(e.endsOn){let n=new Date(e.endsOn).getTime()-Date.parse(new Date().toUTCString());n>0&&(t=Math.ceil(n/864e5)),t>0&&(t+=1)}return t}function Ph(e){switch(e){case`Exclusive`:return`BandLab Platform`;default:return e}}angular.module(`bandlab.account.settings`).controller(`PrivacyCtrl`,[`$injector`,`$q`,`$scope`,`$state`,`AppNotifications`,`authService`,`browsingPrivacy`,`chatPrivacy`,`commentsPrivacy`,`ConfirmModal`,`Identity`,`invitesPrivacy`,`Me`,`Settings`,`User`,function(e,t,n,r,i,a,s,c,l,u,d,f,p,m,h){n.privacy={account:p.isPrivate,browsing:s,comments:l,chat:c,invites:f},Me(p,`private_account_settings`).then(({payload:e})=>{n.isUnderage=p.age<e?.age_limit});let g=JSON.parse(r.params.redirectState||`{}`),_=g.name&&r.href(g.name,g.params),{availableFeaturesSet:v}=qn(n,p);n.availableFeaturesSet=v;var y=null,b,x=!1;function S(){return x?t.resolve([]):(b=h.blocked({id:p.id,after:y}).$promise,b.then(function(e){y=e.paging.cursors.after,x=!y}),b)}n.loadMore=function(){return n.infiniteScrollEnded?t.resolve():(b=b.then(function({data:e}){return n.infiniteScrollEnded=x,n.users=n.users||[],n.users=n.users.concat(e),S()}),b)},S().then(n.loadMore),n.saveAccountSettings=async function(){await new Promise(function(e,t){n.privacy.account?new u({confirmLabel:`Make Private`,contentScope:{title:`Make account private`,message:`Making your profile private will stop active Boost campaigns and Profile promotions.`},onConfirm:e,onCancel:function(){n.privacy.account=!1,n.$applyAsync(),t()}}).show():e()}),d.update({isPrivate:n.privacy.account}
28).$promise.then(function(e){return n.accountPrivacyForm.$setPristine(),i.addNotification({title:`Privacy settings updated`,classList:`success`,autoclose:8e3,action:_&&`<a class="notification-action-text-inline" href="${_}">Go Back</a>`}),a.setMe(e)})},n.saveBrowsingSettings=function(e){v.value.has(`profile-views`)?m.savePrivacySettings({service:`profile-views`,isIncognitoEnabled:n.privacy.browsing}).$promise.then(function(){e.$setPristine(),i.addNotification({title:`Privacy settings updated`,classList:`success`,autoclose:8e3,action:_&&`<a class="notification-action-text-inline" href="${_}">Go Back</a>`})}):(n.privacy.browsing=!1,o()?C(`incognito_mode`,`incognito_mode`):w())},n.saveChatSettings=function(){m.savePrivacySettings({service:`chat`,allowMessagesFrom:n.privacy.chat}).$promise.then(function(){n.chatPrivacyForm.$setPristine(),i.addNotification({title:`Privacy settings updated`,classList:`success`,autoclose:8e3,action:_&&`<a class="notification-action-text-inline" href="${_}">Go Back</a>`})})},n.saveCommentsSettings=function(){m.savePrivacySettings({service:`comments`,allowCommentsFrom:n.privacy.comments}).$promise.then(function(){n.commentsPrivacyForm.$setPristine(),i.addNotification({title:`Privacy settings updated`,classList:`success`,autoclose:8e3,action:_&&`<a class="notification-action-text-inline" href="${_}">Go Back</a>`})})},n.saveInvitesSettings=function(){m.savePrivacySettings({service:`invites`,allowInvitesFrom:n.privacy.invites}).$promise.then(function(){n.invitesPrivacyForm.$setPristine(),i.addNotification({title:`Privacy settings updated`,classList:`success`,autoclose:8e3,action:_&&`<a class="notification-action-text-inline" href="${_}">Go Back</a>`})})};let{startPurchaseFlow:C}=Oh(e,n);function w(){ai({product:`membership`,productAttribution:`incognito_mode`,productAttributionGroup:`incognito_mode`})}}]),angular.module(`bandlab.account.settings`).controller(`EmailConfirmationCtrl`,[`$scope`,`Identity`,function(e,t){e.resendEmailConfirmation=function(){t.resendEmailConfirmation().$promise.then(function(){e.emailConfirmationRequestSent=!0})}}]);function Fh(e,t,n){var r=e.length;return n=n===void 0?r:n,!t&&n>=r?e:Oa(e,t,n)}var Ih=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function Lh(e){return Ih.test(e)}function Rh(e){return e.split(``)}var zh=`\\ud800-\\udfff`,Bh=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,Vh=`\\ufe0e\\ufe0f`,Hh=`[`+zh+`]`,Uh=`[`+Bh+`]`,Wh=`\\ud83c[\\udffb-\\udfff]`,Gh=`(?:`+Uh+`|`+Wh+`)`,Kh=`[^`+zh+`]`,qh=`(?:\\ud83c[\\udde6-\\uddff]){2}`,Jh=`[\\ud800-\\udbff][\\udc00-\\udfff]`,Yh=`\\u200d`,Xh=Gh+`?`,Zh=`[`+Vh+`]?`,Qh=`(?:`+Yh+`(?:`+[Kh,qh,Jh].join(`|`)+`)`+Zh+Xh+`)*`,$h=Zh+Xh+Qh,eg=`(?:`+[Kh+Uh+`?`,Uh,qh,Jh,Hh].join(`|`)+`)`,tg=RegExp(Wh+`(?=`+Wh+`)|`+eg+$h,`g`);function ng(e){return e.match(tg)||[]}function rg(e){return Lh(e)?ng(e):Rh(e)}function ig(e){return function(t){t=et(t);var n=Lh(t)?rg(t):void 0,r=n?n[0]:t.charAt(0),i=n?Fh(n,1).join(``):t.slice(1);return r[e]()+i}}var ag=ig(`toUpperCase`);function og(e){return ag(et(e).toLowerCase())}angular.module(`bandlab.account.settings`).controller(`LinkedAccountsEditCtrl`,[`$q`,`$scope`,`AppNotifications`,`Login`,`Me`,function(e,t,n,r,i){t.toggleLinkAccount=function(e,t){e.preventDefault(),t.isLinked?o(t):a(t)};function a(e){e.provider===`facebook`?l().then(function(t){c(e.provider,t)}):e.provider===`google`&&u().then(function(t){c(e.provider,t)}).catch(function(){n.addNotification({title:`Failed to link to Google`,classList:`alert`,autoclose:8e3})})}function o(e){if(!t.linkedAccounts.filter(function(t){return t!==e}).reduce(function(e,t){return e||t.isLinked},!1)&&!(i.email&&i.hasPassword)){window.alert(`To continue accessing your account, please set an email and/or password before unlinking.`);return}r.delete({provider:e.provider}).$promise.then(function(){s()}).catch(function(e){e.status===401||e.status===404?alert(e.data.message):alert(`Something went wrong, please try again later`)})}function s(){r.query().$promise.then(function(e){t.linkedAccounts=e,angular.forEach(e,function(e){e.isLinked=!0,e.title=og(e.provider)}),t.linkedAccounts.some(e=>e.provider===`google`)||t.linkedAccounts.push({provider:`google`,title:`Google`,isLinked:!1}),t.linkedAccounts.some(e=>e.provider===`facebook`)||t.linkedAccounts.push({provider:`facebook`,title:`Facebook`,isLinked:!1})})}function c(e,n){t.errorConflict=!1,new r({provider:e,accessToken:n}).$save().then(function(){s()}).catch(function(e){e.status===409&&(t.errorConflict=!0,t.errorMessage=Qe(e,`data.message`))})}function l(){return import(`./U3odhO2M.js`).then(function({login:e}){return e()}).then(function(e){return e.authResponse.accessToken}).catch(function(t){return e.reject(t.status)})}function u(){return import(`./DQwFoY5S.js`).then(function({startSignIn:e}){return e()}).then(function(e){return e.credential})}return s()}]),angular.module(`bandlab.account.settings`).controller(`PasswordChangeCtrl`,[`$scope`,`AppNotifications`,`Me`,`Password`,function(e,t,n,r){e.password=new r,e.changeSuccess=!1,e.passwordError=!1,e.doChangePassword=function(){e.passwordError=!1,e.password.$update(
28).then(function(){t.addNotification({title:`Password changed`,classList:`success`,autoclose:8e3}),e.changeSuccess=!0,e.changePasswordForm.$setPristine()}).catch(function(t){e.passwordError=!0,e.changePasswordForm.$setPristine(),e.errorMessage=Qe(t,`data.message`)})},e.resetPassword=function(){new r({email:n.email}).$reset().then(function(){t.addNotification({title:`An email has been sent`,content:`An email has been sent to ${n.email} for you to set a new password.`,autoclose:8e3})}).catch(function(){e.requestFailed=!0})}}]),angular.module(`bandlab.account.settings`).controller(`PictureEditCtrl`,[`$scope`,function(e){e.changeError=!1,e.$on(`$file:uploadFailed`,function(){e.changeError=!0})}]);function sg(){let e=new Uint32Array(16);return crypto.getRandomValues(e),Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}async function cg(){let e=sg(),t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return{codeVerifier:e,codeChallenge:btoa(String.fromCharCode.apply(null,new Uint8Array(n))).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}}const lg=[`disabled`],ug=[`srcset`,`data-id`,`alt`],dg=[`disabled`],fg={key:2,class:`carousel-counter-label typography-footnote-regular`},pg={__name:`UserCounterCarousel`,props:{carouselItems:{type:Array,default:()=>[]},isContinuous:{type:Boolean,default:!0},displayCounter:{type:Boolean,default:!0},imgAlt:{type:String,required:!0}},emits:[`update:activeImageId`],setup(e,{emit:t}){let n=e,r=O(0),i=t,a=U(()=>r.value<n.carouselItems.length-1),o=U(()=>r.value>0);re(r,e=>{n.carouselItems[e]&&i(`update:activeImageId`,n.carouselItems[e].pictureId)}),re(()=>n.carouselItems,()=>{r.value=0},{deep:!0});function s(){r.value<n.carouselItems.length-1?r.value++:n.isContinuous&&(r.value=0)}function c(){r.value>0?r.value--:n.isContinuous&&(r.value=n.carouselItems.length-1)}function l(e){e.key===`ArrowLeft`?c():e.key===`ArrowRight`&&s()}return(t,i)=>e.carouselItems.length?(F(),G(`div`,{key:0,class:`carousel-counter-container`,tabindex:`0`,onKeydown:l},[e.carouselItems.length>1?(F(),G(`button`,{key:0,type:`button`,class:`carousel-counter-button carousel-counter-button-left`,disabled:!o.value&&!n.isContinuous,onClick:c},[q(Va,{size:32})],8,lg)):H(``,!0),(F(!0),G(se,null,pe(e.carouselItems,(t,n)=>(F(),G(`div`,{key:n,class:v([`carousel-counter-item`,{active:n===r.value}])},[K(`img`,{class:`carousel-counter-image`,srcset:`${t.originalUrl}500x500 1x, ${t.originalUrl}1000x1000 2x`,"data-id":t.pictureId,alt:e.imgAlt},null,8,ug)],2))),128)),e.carouselItems.length>1?(F(),G(`button`,{key:1,type:`button`,class:`carousel-counter-button carousel-counter-button-right`,disabled:!a.value&&!n.isContinuous,onClick:s},[q(Ha,{size:32})],8,dg)):H(``,!0),e.displayCounter?(F(),G(`div`,fg,y(`${r.value+1} of ${e.carouselItems.length}`),1)):H(``,!0)],32)):H(``,!0)}};var mg=n({default:()=>gg});const hg=[`width`,`height`,`role`,`aria-hidden`],gg={__name:`image`,props:Ve,setup(e){return(e,t)=>(F(),G(`svg`,{width:e.size>0?e.size:e.width>0?e.width:e.height>0?e.height/24*24:void 0,height:e.size>0?e.size:e.width>0?e.width/24*24:e.height>0?e.height:void 0,viewBox:`0 0 24 24`,fill:`none`,role:e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?`img`:null,"aria-hidden":e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?null:`true`},[...t[0]||=[K(`path`,{fill:`currentColor`,d:`M11 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0`},null,-1),K(`path`,{fill:`currentColor`,d:`M2 6a4 4 0 0 1 4-4h12a4 4 0 0 1 4 4v12a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4zm18 0a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v6.7l4.32 2.2 7.05-5.68a1 1 0 0 1 1.19-.05L20 11.5zM4 18c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2v-4.1l-3.95-2.66-6.98 5.63a1 1 0 0 1-1.08.11L4 14.95z`},null,-1)]],8,hg))}},_g={style:{height:`500px`}},vg={key:0,class:`loader-spinner user-profile-pictures-modal-loader`},yg={key:0,class:`ds-modal-footer user-profile-pictures-modal-footer`},bg={key:0},xg={__name:`UserProfilePicturesModal`,props:{user:{type:Object,required:!0},isOwnProfile:{type:Boolean,required:!0},triggeredFrom:{type:String,required:!0}},emits:[`closeModal`],setup(e,{emit:t}){let n=e,r=t,i=J(()=>import(`./tlfH_E9T.js`)),a=ne(`$injector`),o=a.get(`$rootScope`),s=a.get(`AppNotifications`),c=a.get(`Me`),l=a.get(`Modal`),u=a.get(`User`),d=O(null),p=O(!0),{availableFeaturesSet:m}=Kn(c),h=O([]),g=U(()=>
28d.value===h.value[0].pictureId),_=o.$on(`$user:changed`,function(e,{action:t}){t===`profilePicture`&&b()});I(()=>{b().then(()=>{p.value=!1,h.value.length>0&&(d.value=h.value[0].pictureId)})});function b(){return p.value=!0,u.getProfilePictures({userId:n.user.id}).$promise.then(e=>{h.value=e,d.value=h.value[0].pictureId,p.value=!1})}function x(){u.deleteProfilePicture({userId:n.user.id,pictureId:d.value}).$promise.then(()=>{o.$broadcast(`profilePictureModal:updated`),b()}).catch(()=>{s.addNotification({title:`Unable to delete the image`,classList:`alert`,autoclose:5e3})})}function S(){p.value=!0,u.setProfilePictureAsMain({userId:n.user.id,pictureId:d.value}).$promise.then(()=>{o.$broadcast(`profilePictureModal:updated`),b(),s.addNotification({title:`Set As Main`,classList:`success`,autoclose:5e3})}).catch(()=>{p.value=!1,s.addNotification({title:`Unable to set as main image`,classList:`alert`,autoclose:5e3})})}function C(){Ii(n.triggeredFrom),m.value.has(`multiple-profile-pictures`)?T():D()}function w(){r(`closeModal`),o.$broadcast(`profilePictureModal:closed`)}function T(){new l({id:`pictureUploadSuccess`,templateUrl:`https://www.bandlab.com/web-app/account/settings/partials/_picture-upload-c1fc38ac8.html`,contentScope:{availableFeaturesSet:m,me:c,profilePictures:h.value,replacePictureId:d.value,triggeredFrom:n.triggeredFrom}}).show()}function E(){X(i,{deleteProfilePicture:x})}function D(){ai({productAttribution:`profile_picture`,productAttributionGroup:`misc`})}return N(()=>{_()}),(t,n)=>(F(),G(`div`,{class:v([`ds-modal user-profile-pictures-modal`,e.isOwnProfile?`ds-modal-with-footer`:``])},[q(Pa,{color:`overlay`,onClick:n[0]||=e=>w()}),K(`div`,_g,[p.value?(F(),G(`div`,vg)):H(``,!0),p.value?H(``,!0):(F(),ie(pg,{key:1,"carousel-items":h.value,"img-alt":`Profile picture of ${e.user.name}`,class:v({"user-own-profile-carousel":e.isOwnProfile}),"onUpdate:activeImageId":n[1]||=e=>d.value=e},null,8,[`carousel-items`,`img-alt`,`class`]))]),e.isOwnProfile?(F(),G(`section`,yg,[f(m).has(`multiple-profile-pictures`)?(F(),G(`div`,bg,[h.value.length>1?(F(),ie(Ma,{key:0,type:`button`,size:`medium`,color:`destructive-secondary`,shape:`pill`,"aria-label":`Delete`,style:{"margin-right":`8px`},"is-disabled":p.value,onClick:n[2]||=e=>E()},{default:W(({class:e})=>[q(Ka,{size:20,class:v(e)},null,8,[`class`])]),_:1},8,[`aria-label`,`is-disabled`])):H(``,!0),h.value.length>1?(F(),ie(Ma,{key:1,type:`button`,size:`medium`,color:`secondary`,shape:`pill`,"aria-label":`Set As Main`,"is-disabled":g.value||p.value,onClick:n[3]||=e=>S()},{default:W(({class:e})=>[g.value?(F(),ie(Ga,{key:0,size:20,class:v(e)},null,8,[`class`])):(F(),ie(Wa,{key:1,size:20,class:v(e)},null,8,[`class`]))]),_:1},8,[`aria-label`,`is-disabled`])):H(``,!0)])):H(``,!0),!f(m).has(`multiple-profile-pictures`)||f(m).has(`multiple-profile-pictures`)&&h.value.length===5?(F(),ie(Ba,{key:1,placement:`bottom`,"should-open":f(m).has(`multiple-profile-pictures`)&&h.value.length===5},{trigger:W(({setTriggerElement:e})=>[q(Ue,{ref:t=>e(t),type:`button`,size:`medium`,color:`secondary`,"is-disabled":p.value,onClick:n[4]||=e=>T()},{"leading-icon":W(({class:e})=>[q(gg,{size:16,class:v(e)},null,8,[`class`])]),default:W(()=>[B(` `+y(`Replace`),1)]),_:1},8,[`is-disabled`])]),content:W(()=>[B(y(`You have reached the limit. Replace or Delete and upload a new photo.`),1)]),_:1},8,[`should-open`])):H(``,!0),!f(m).has(`multiple-profile-pictures`)||f(m).has(`multiple-profile-pictures`)&&h.value.length<5?(F(),ie(Ba,{key:2,placement:`bottom`,"should-open":!f(m).has(`multiple-profile-pictures`)},{trigger:W(({setTriggerElement:e})=>[q(Ue,{ref:t=>e(t),type:`button`,size:`medium`,color:`primary`,"is-disabled":p.value,onClick:n[5]||=e=>C()},{"leading-icon":W(({class:e})=>[q(Ua,{size:16,class:v(e)},null,8,[`class`])]),default:W(()=>[B(` `+y(`${5-h.value.length} more`),1)]),_:1},8,[`is-disabled`])]),content:W(()=>[B(y(`Add multiple profile photos with BandLab Membership`),1)]),_:1},8,[`should-open`])):H(``,!0)])):H(``,!0)],2))}};angular.module(`bandlab.account.settings`).controller(`ProfileEditCtrl`,[`$location`,`$rootScope`,`$scope`,`$state`,`$timeout`,`AppNotifications`,`authService`,`Identity`,`Me`,`Mod
28al`,`Tag`,`User`,function(e,t,n,r,a,o,s,c,l,u,f,p){n.changeError=!1,n.user=new c,n.user.name=l.name,n.user.username=l.username,n.user.gender=l.gender,n.user.birthday=l.birthday,n.user.about=l.about,n.user.place=l.place,n.user.links={...l.links},n.usernameMinLength=Math.min(l.username.length,4),n.instagram=`https://www.instagram.com/oauth/authorize?client_id=2385428618461387&redirect_uri=https://accounts.bandlab.com/oauth/instagram&response_type=code&scope=instagram_business_basic&state=${_()}`,n.user.inspiredBy=[...l.inspiredBy],n.disconnectProfile=v,n.displayProfilePictures=y,ke(l,`soundcloud-social-link`).then(e=>{n.hasSoundcloud=e===`true`}),ke(l,`tiktok-social-link`).then(e=>{n.hasTiktok=e===`true`});let{availableFeaturesSet:m}=qn(n,l);n.availableFeaturesSet=m,T(),g();let h=t.$on(`$user:changed`,function(e,{action:t}){if(t===`profilePicture`){T(),n.me.picture.isDefault=!1;let e=JSON.parse(r.params.redirectState||`{}`);if(e.name){let t=r.href(e.name,e.params);o.addNotification({title:`Profile updated`,action:`<a class="notification-action-text-inline" href="${t}">Go Back</a>`,classList:`success`,autoclose:8e3})}}});async function g(){let{codeVerifier:e,codeChallenge:t}=await cg(),r=btoa(i());d.set(`airbitState`,r),d.set(`airbitCodeVerifier`,e),n.airbit=`https://accounts.airbit.com/oauth/authorize?client_id=bandlab&response_type=code&code_challenge_method=S256&redirect_uri=https://www.bandlab.com/auth/airbit/callback&code_challenge=${t}&state=${r}`}function _(){return btoa(JSON.stringify({nonce:i(),url:`https://www.bandlab.com/auth/instagram/callback`}))}n.connectSoundcloud=async function(){let{token:e}=await th(),t=r.href(`oauthSoundcloudCallback`,{},{absolute:!0});window.location.href=`https://accounts.bandlab.com/oauth/soundcloud/connect?token=${e}&clientUrl=${t}`},n.connectTiktok=async function(){let{token:e}=await th(),t=r.href(`oauthTiktokCallback`,{},{absolute:!0});window.location.href=`https://accounts.bandlab.com/oauth/tiktok/connect?token=${e}&clientUrl=${t}`};function v(...e){e.forEach(e=>{delete n.user.links[e]}),S()}function y(){X(xg,{user:l,isOwnProfile:!0,triggeredFrom:`settings`})}let b=this;b.uiCanExit=function(e){return n.profileForm.$dirty?new Promise(function(t){let n=new u({toFocusConfirm:!0,contentScope:{leave:function(){n.destroy(),t(e)}},onCancel:function(){n.destroy(),t(!1)},templateUrl:`https://www.bandlab.com/web-app/account/settings/partials/_profile-leave-confirm-f1f133fb5.html`});n.show()}):e},f.getSkills().then(function(e){n.skills=Xm(e,function(e){return e.isSelected=Qm(l.skills,{id:e.id}),e})}),f.getGenres().then(function(e){n.genres=Xm(e,function(e){return e.isSelected=Qm(l.genres,{id:e.id}),e})}),n.$watch(`user.inspiredBy`,function(e,t){let r=e.map(e=>e.id),i=t.map(e=>e.id);Vn(r,i)||n.profileForm.$setDirty()},!0),n.editMe=function(){n.changeError=!1,n.user.genres=Jm(n.genres,{isSelected:!0}),n.user.skills=Jm(n.skills,{isSelected:!0}),n.user.links=Object.keys(n.user.links).reduce(function(e,t){return t===`website`?e[t]=n.user.links[t]:n.user.links[t]&&(e[t]=C(n.user.links[t])),e[t]&&n.profileForm[t]?.$dirty&&w(t),e},{});let e=Object.keys(n.user).filter(function(e){return[`genres`,`skills`,`inspiredBy`].includes(e)?!x(l[e],n.user[e]):!angular.equals(n.user[e],l[e])}).reduce(function(e,t){return e[t]=n.user[t],e},{});return c.update(e).$promise.then(function({...e}){s.setMe(e).then(function(){s.identifyUserForTrackers(e)}),!e.ftue.setInspiredBy&&e.inspiredBy.length&&c.setInspiredBy();let t=JSON.parse(r.params.redirectState||`{}`),i=t.name?r.href(t.name,t.params):r.href(`user.feed`,{username:e.username});o.addNotification({title:`Profile updated`,action:`<a class="notification-action-text-inline" href="${i}">${t.name?`Go Back`:`Go to Profile`}</a>`,classList:`success`,autoclose:8e3}),n.profileForm.$setPristine()}).catch(function(e){n.profileForm.$setPristine(),n.changeError=e||!0})};function x(e,t){return e.length===t.length&&e.every(e=>t.some(t=>e.id===t.id))}function S(){new c({links:n.user.links}).$update().then(function(e){s.setMe(e)})}function C(e){if(e.includes(`https://www.instagram.com/`)||e.includes(`https://www.airbit.com/`))return e;!e.startsWith(`http://`)&&!e.startsWith(`https://`)&&(e=`https://${e}`);let{origin:t,pathname:n}=new URL(e);if(n=decodeURI(n),e=t,t.includes(`youtube`)||t.includes(`spotify`)){let[t,r,i,a]=n.split(`/`);e+=[t,r,i,...a?[a]:[]].join(`/`).replace(/\/$/,``)}if(t.includes(`soundcloud`)){let[t,r]=n.split(`/`);e+=[t,r].join(`/`)}if(t.includes(`tiktok`)){let[t,r,i=``,a=``,o=``]=n.split(`/`);e+=i===``?[t,r].join(`/`):[t,r,i,a,o].join(`/`).replace(/\/$/,``)}return e.replace(`http://`,`https://`).replace(`//youtube.com/`,`//www.youtube.com/`).replace(`//www.soundcloud.com/`,`//soundcloud.com/`).replace(`//m.soundcloud.com/`,`//soundcloud.com/`)}n.trimLink=function(e,t){e.srcElement.value=n.user.links[t]??e.srcElement.value};function w(e){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSocialLinkAdd:t}){t(e)})}function T(){p.getProfilePictures({userId:l.id}).$promise.then(e=>{n.profilePictures=e})}n.removeInspireByArtist=function(e){ja(n.user.inspiredBy,e)},n.$on(`$destroy`,function(){h()});let E=e.hash();E&&a(()=>{document.getElementById(E).scrollIntoView({behavior:`smooth`,inline:`center`})})}]),angular.module(`bandlab.account.settings`).component(`authorizedAppTile`,{bindings:{app:`=`,revoke:`&`},templateUrl:`https://www.bandlab.com/web-app/account/settings/partials/_authorized-app-tile-9de57bd62.html`,controllerAs:`vm`}),angular.module(`bandlab.account.settings`).directive(`settingsProfileLinkCell`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{type:`@`,connect:`&?`,connectUrl:`<?`,link:`<?`,unverifiedLink:`<?`,disconnect:`&`},link:function(t,n){let r=h({type:t.type,connect:t.connect,connectUrl:t.connectUrl,link:t.link,unverifiedLink:t.unverifiedLink,disconnect:t.disconnect});
28t.$watch(function(e){let{link:t,unverifiedLink:n}=e;r.link=t,r.unverifiedLink=n},!0),$(import(`./BFYHbL_H.js`),n[0],t,{$injector:e,scope:t},r)}}}]);const Sg=window.matchMedia(`(prefers-color-scheme: dark)`);function Cg(e){e.matches?document.body.setAttribute(`data-theme`,`dark`):document.body.setAttribute(`data-theme`,`light`)}angular.module(`bandlab.account.settings.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`settings`,{url:`/settings?redirectState`,redirectTo:`settings.profile`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/settings-layout-97811809c.html`,controller:[`$scope`,`Me`,function(e,t){e.me=t}]}).state(`settings.deactivate`,{url:`/account/delete`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/account-delete-db6245faa.html`}).state(`settings.account`,{url:`/account`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/account-edit-2ac3a6715.html`,controller:`AccountEditCtrl`,resolve:{templates:[`$templateRequest`,`$q`,function(e,t){return t.all([e(`https://www.bandlab.com/web-app/account/settings/partials/_email-change-1931f2a2c.html`),e(`https://www.bandlab.com/web-app/account/settings/partials/_password-change-df2bb6d92.html`)]).catch(function(){})}]}}).state(`settings.security`,{url:`/security`,template:`<div id="settingsSecurityVue"></div>`,controller:[`$scope`,`AppNotifications`,`Me`,function(e,t,n){$(import(`./DiZcbRpN.js`).then(e=>e.t),document.querySelector(`#settingsSecurityVue`),e,{AppNotifications:t,Me:n})}]}).state(`settings.privacy`,{url:`/privacy`,resolve:{browsingPrivacy:[`Me`,`Settings`,function(e,t){return import(`./Bwc2ZUzs.js`).then(e=>e.r).then(({useMembership:n})=>{let{availableFeaturesSet:r}=n(e);return r.value.has(`profile-views`)?t.getPrivacySettings({service:`profile-views`}).$promise.then(function({isIncognitoEnabled:e}){return e}):!1})}],chatPrivacy:[`Settings`,function(e){return e.getPrivacySettings({service:`chat`}).$promise.then(function({allowMessagesFrom:e}){return e})}],commentsPrivacy:[`Settings`,function(e){return e.getPrivacySettings({service:`comments`}).$promise.then(function({allowCommentsFrom:e}){return e})}],invitesPrivacy:[`Settings`,function(e){return e.getPrivacySettings({service:`invites`}).$promise.then(function({allowInvitesFrom:e}){return e})}]},templateUrl:`https://www.bandlab.com/web-app/account/settings/views/privacy-edit-83e8a9921.html`,controller:`PrivacyCtrl`}).state(`settings.linkedAccounts`,{url:`/linked-accounts`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/linked-accounts-edit-6275f2d26.html`,controller:`LinkedAccountsEditCtrl`}).state(`settings.profile`,{url:`/profile?focus`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/profile-edit-f0091bd36.html`,controller:`ProfileEditCtrl`}).state("settings.links`",{url:`/social-links/:sns`,resolve:{redirect:[`$stateParams`,function(e){return new Promise(function(){switch(e.sns){case`instagram`:window.location.href=`https://www.instagram.com/oauth/authorize?client_id=2385428618461387&redirect_uri=https://accounts.bandlab.com/oauth/instagram&response_type=code&scope=instagram_business_basic&state=${n()}`;break;case`airbit`:t()}async function t(){let{codeVerifier:e,codeChallenge:t}=await cg(),n=btoa(i());d.set(`airbitState`,n),d.set(`airbitCodeVerifier`,e),window.location.href=`https://accounts.airbit.com/oauth/authorize?client_id=bandlab&response_type=code&code_challenge_method=S256&redirect_uri=https://www.bandlab.com/auth/airbit/callback&code_challenge=${t}&state=${n}${o()?`&gl=0`:``}`}function n(){return btoa(JSON.stringify({nonce:i(),url:`https://www.bandlab.com/auth/instagram/callback`}))}})}]}}).state(`passwordReset`,{url:`/reset-password`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/password-reset-ae86f2dd2.html`,controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./V-hbaAtj.js`),e[0].querySelector(`#passwordResetMount`),n,{$injector:t})}]}).state(`passwordRenew`,{url:`/renew-password?userid&code`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/password-renew-d4dbf6010.html`,controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./WOIhe_st.js`),e[0].querySelector(`#passwordRenewMount`),n,{$injector:t})}]}).state(`settings.apps`,{url:`/apps`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/apps-permissions-12b204b8b.html`,controller:`AppsPermissionsCtrl`}).state(`settings.notifications`,{url:`/notifications`,template:`<div></div>`,controller:[`$element`,`$scope`,`AppNotifications`,function(e,t,n){$(import(`./he5e_ShH.js`),e[0],t,{AppNotifications:n})}]}).state(`settings.membership`,{url:`/membership?cancel`,template:`<div></div>`,controller:[`$element`,`$injector`,`$scope`,`$stateParams`,function(e,t,n,r){$(import(`./BsjwXvBZ.js`),e[0],n,{$injector:t,$stateParams:r},{})}]}).state(`settings.verified`,{url:`/verified`,template:`<div></div>`,controller:[`$element`,`$scope`,`$injector`,function(e,t,n){$(import(`./DRadW7iw.js`),e[0],t,{$injector:n},{})}]}).state(`settings.payments`,{url:`/payments?success`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/payments-edit-a650f9e93.html`,resolve:{Payments:function(){return import(`./BT0X5vPC.js`).then(e=>e.t)},Wallets:[`Payments`,`Me`,function(e,t){return e.getWallets(t.id)}]},controller:[`$scope`,`$state`,`Wallets`,function(e,t,n){e.isWebview=o(),e.tipaltiAccount=n.find(e=>e.gateway===`Tipalti`);let r=t.params[`#`];r&&setTimeout(function(){document.getElementById(r).scrollIntoView({behavior:`smooth`})},1e3)}]}).state(`settings.deletedProjects`,{url:`/deleted-projects`,redirectTo:{state:`library.projects.songs`,params:{category:`deleted`}}}).state(`settings.language`,{url:`/language`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/language-edit-3e218a1ac.html`,controller:[`$scope`,function(e){e.language=d.get(`language`),e.updateLanguage=function(){d.set(`language`,e.language,{expires:365,domain:`bandlab.com`}),location.reload()}}]}).state(`settings.appearance`,{url:`/appearance`,templateUrl:`https://www.bandlab.com/web-app/account/settings/views/appearance-edit-7a0936a6c.html`,controller:[`$scope`,function(e){e.appTheme=Y.getItem(`appTheme`),e.updateTheme=function(){switch(Y.setItem(`appTheme`,e.appTheme),Sg.removeEventListener(`change`,Cg),e.a
28ppTheme){case`dark`:case`light`:document.body.setAttribute(`data-theme`,e.appTheme);break;case`system`:Sg.matches?document.body.setAttribute(`data-theme`,`dark`):document.body.setAttribute(`data-theme`,`light`),Sg.addEventListener(`change`,Cg)}}}]})}]),angular.module(`bandlab.account.signUp`,[`bandlab.account`]),angular.module(`bandlab.account.signUp`).directive(`passwordSignUpForm`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./CYTGbXrv.js`),n[0],t,{$injector:e,scope:t})}}}]);const wg=/^\(\d+\)\s/;function Tg(e){document.querySelector(`meta[name="twitter:title"]`).setAttribute(`content`,e),document.querySelector(`meta[property="og:title"]`).setAttribute(`content`,e);let t=document.title.match(wg)?.[0]??``;document.title=`${t}${e}`}function Eg(e){document.querySelector(`meta[name="twitter:title"]`).setAttribute(`content`,e),document.querySelector(`meta[property="og:title"]`).setAttribute(`content`,e)}function Dg(e){let t=document.title.replace(wg,``);document.title=e?`(${e}) ${t}`:t}function Og(e){document.querySelector(`meta[name="description"]`).setAttribute(`content`,e),document.querySelector(`meta[name="twitter:description"]`).setAttribute(`content`,e),document.querySelector(`meta[property="og:description"]`).setAttribute(`content`,e)}function kg(e){document.querySelector(`meta[name="twitter:description"]`).setAttribute(`content`,e),document.querySelector(`meta[property="og:description"]`).setAttribute(`content`,e)}function Ag(e,t){document.querySelector(`meta[name="twitter:image"]`).setAttribute(`content`,e),document.querySelector(`meta[property="og:image"]`).setAttribute(`content`,e),document.querySelector(`meta[property="og:type"]`).setAttribute(`content`,t)}function jg(e=document.location.href){document.querySelector(`link[rel="canonical"]`).setAttribute(`href`,e),document.querySelector(`meta[property="og:url"]`).setAttribute(`content`,e)}function Mg(e){document.querySelector(`meta[name="twitter:card"]`).setAttribute(`content`,e)}function Ng(e){let t=[`en`,`es`,`fr`,`hi`,`ja`,`pt-BR`,`ru`,`tr`,`x-default`],n=new URL(e);for(let e of t){let t=document.createElement(`link`);t.rel=`alternate`,t.hreflang=e,e===`x-default`?n.searchParams.delete(`lang`):n.searchParams.set(`lang`,e),t.href=n.toString(),document.head.append(t)}}function Pg(){let e=document.querySelectorAll(`link[hreflang]`);for(let t of e)document.head.removeChild(t)}angular.module(`bandlab.account.signUp.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`invitation`,{url:`/invitation?invitation&email&name&redirect&sender-id`,redirectTo:function(e){return o()&&(location.href=`_#bl_closeWebView`),{state:`signUp`,params:{...e.params()}}}}).state(`signUp`,{url:`/sign-up?code&invitation&email&name&redirect&sender-id`,templateUrl:`https://www.bandlab.com/web-app/account/signUp/views/sign-up-b28bd3ee2.html`,controller:[`$scope`,function(e){e.title=`Create an Account`}],reloadOnChange:!1,resolve:{redirect:[`$stateParams`,`authService`,function(e,t){window.location.pathname.includes(`/sounds/`)?t.setAfterAuthState({toState:`sounds`}):e.redirect&&t.setAfterAuthState({toUrl:e.redirect})}]},onEnter:[`$analytics`,`$state`,`$stateParams`,`AppNotifications`,function(e,t,n,r){var i=/[a-zA-Z0-9-_]+/;if(n.invitation)return e.eventTrack(`Has invitation parameter on signup route ${n.invitation}`,{category:`Debug`}),n.invitation.match(i)?d.put(`invitationKey`,n.invitation):r.addNotification({title:`Invalid Invitation`,classList:`alert`,autoclose:5e3}),t.target(`signUp`,{},{inherit:!1})}]})}]),angular.module(`bandlab.advertising`,[]),angular.module(`bandlab.advertising`).directive(`vastAdMaterials`,[`$injector`,function(e){return{restrict:`E`,replace:!0,template:`<div class="vast-ad-container"></div>`,scope:{ad:`=`},link:function(t,n){$(import(`./DCztqiSb.js`),n[0],t,{$injector:e,scope:t})}}}]),angular.module(`angulartics`,[]).provider(`$analytics`,Fg).directive(`analyticsOn`,[`$analytics`,Ig]);function Fg(){var e=this,t=[`pageTrack`,`eventTrack`,`setUsername`],n={};function r(e,t){return n[e]||(n[e]=[]),n[e].push(t),function(){var t=Array.prototype.slice.apply(arguments);return this.$inject([`$q`,angular.bind(this,function(r){return r.all(n[e].map(function(e){return r.when(e.apply(this,t))},this))})])}}var i={},a={$get:[`$injector`,function(e){return c(e)}]};function o(e,t){i[e]=r(e,t)}function s(e){return e.replace(/^./,function(e){return e.toUpperCase()})}var c=function(e){return angular.extend(i,{$inject:e.invoke})};function l(e){var t=`register`+s(e);a[t]=function(t){o(e,t)}}function u(t,n,r){for(var i in angular.forEach(n,r),t)e[i]=t[i]}u(a,t,l)}function Ig(e){return{restrict:`A`,link:function(t,n,r){var i=r.analyticsOn||`click`,a={};angular.forEach(r.$attr,function(e,t){Lg(t)&&(a[Rg(t)]=r[t],r.$observe(t,function(e){a[Rg(t)]=e}))}),n.on(i,function(t){var n=r.analyticsEvent;a.eventType=t.type,e.eventTrack(n,a)})}}}function Lg(e){return e.substr(0,9)===`analytics`&&[`On`,`Event`,`Properties`].indexOf(e.substr(9))===-1}function Rg(e){var t=e.slice(9);return t.substring(0,1).toLowerCase()+t.substring(1)}var zg=`angulartics`,Bg=`Expected a function`;function Vg(e,t,n){var r=!0,i=!0;if(typeof e!=`function`)throw TypeError(Bg);return ye(n)&&(r=`leading`in n?!!n.leading:r,i=`trailing`in n?!!n.trailing:i),Fa(e,t,{leading:r,maxWait:t,trailing:i})}
28Hg.$inject=[`$analytics`,`$location`,`$rootScope`,`$state`,`$transitions`,`appActions`,`authService`,`Me`];function Hg(e,t,n,r,i,a,s,c){let{signup_source:f=d.get(`signupSource`)}=t.search();f&&d.set(`signupSource`,f);{let e=Math.ceil(Math.random()*11);document.querySelector(`main`).classList.add(`main-landing-${e}`)}n.state=r,(u()||o())&&(document.body.classList.add(`webview`),Y.privacyConsent=JSON.stringify({essential:!0,functionality:!0,analytics:!0,marketing:!0}));let p=Vg(function(){document.body.classList.toggle(`scrolled`,window.scrollY>0),document.body.classList.contains(`scrolled`)&&document.body.classList.remove(`was-scrolled`)},250,{leading:!1,trailing:!0});window.addEventListener(`scroll`,p,{passive:!0}),i.onSuccess({},function(e){let t=e.from(),n=e.to();c.isAnonymous()?document.body.classList.add(`user-anonymous`):document.body.classList.remove(`user-anonymous`),!m(e)&&(t.name.includes(`opportunities`)&&n.name.endsWith(`list`)||t.name.startsWith(`library`)&&n.name.startsWith(`library`)&&n.params?.search||t.name.includes(`tree`)&&n.name.includes(`Song`)||t.name.includes(`Song`)&&n.name.includes(`tree`)||t.name===n.name&&e.params(`from`).postId||(document.body.scrollTop=document.documentElement.scrollTop=0))});function m(e){let t=e.from().name,n=e.to().name;if(t===n)return!1;let r=new Set([`user.feed`,`user.musicOverview`,`user.videos`,`user.gear`,`user.bands`]);if(!r.has(t)||!r.has(n))return!1;let i=e.params(`from`),a=e.params(`to`);if(i.username!==a?.username)return!1;let o=document.querySelector(`.page-header-sticky`);if(!o)return!0;let s=o.parentElement?.nextElementSibling;if(s){let e=Number.parseFloat(window.getComputedStyle(o).marginBottom)||0,t=o.getBoundingClientRect(),n=t.top+t.height+e-s.getBoundingClientRect().top;if(n>0){let e=document.documentElement.scrollTop||document.body.scrollTop,t=Math.max(0,e-n);document.body.scrollTop=document.documentElement.scrollTop=t}}return!0}n.$watch(()=>c.id,e=>{_(e)});function h(){return window.fromAPI?.me?s.initSession(window.fromAPI.me):l()?s.refreshMe().then(s.initSession):(c.id=Be,Ne(c),Promise.resolve())}function g(){let{getUserMembership:e}=Kn(c);return e(c.id)}function _(e=c.id){if(!e||!c.isUser()){op(!1);return}let t=e;ap(c).then(e=>{c.id===t&&op(e)}).catch(()=>{c.id===t&&op(!1)})}let v=i.onBefore({},function(e){return v(),h().then(g).then(()=>e)});i.onStart({},function(e){let t=e.to(),n={...e.params()},i=a.checkStateCompatibility(t);if(i)return r.target(i,{url:encodeURIComponent(r.href(t.name,n,{absolute:!0}))});let o=new Map([[`joinProject`,`join_project`],[`mastering`,`mastering`],[`sounds`,`bl_sounds`],[`splitter`,`splitter`],[`songStarter`,`songstarter`],[`distribution`,`distro`]]);o.has(t.name)&&d.set(`signupSource`,o.get(t.name));let u=new Set([`emailConfirmation`,`passwordRenew`,`passwordReset`,`0`,`403`,`404`,`500`,`updateBrowser`,`projectFull`,`unavailable`]),f=e.from();if(t.name===`login`&&f.name&&!u.has(f.name)){let t=e.params(`from`);s.setAfterAuthState({toState:f.name,toParams:t})}else if(t.name===`logout`&&f.name===`sounds`){let t=e.params(`from`);Y.setItem(`redirectAfterLogout`,r.href(`sounds`,t,{inherit:!1}))}if(!l())return up.has(t.name.split(`.`)[0])?(s.setAfterAuthState({toState:t.name,toParams:n}),r.target(`login`)):void 0;if(lp.has(t.name))return dp(c).then(e=>r.target(e,{username:c.username}));if(!c.isOnboarded&&!u.has(t.name)&&!t.data?.skipOnboarding&&t.name!==`onboarding`)return s.setAfterAuthState({toState:t.name,toParams:n}),r.target(cp)}),i.onSuccess({},function(n){let r=n.options(),i=n.params();if(r.notify){if(i.rewriteTracking){let n=i.rewriteTracking(t.url());e.pageTrack(n)}else e.pageTrack(t.url())}}),r.defaultErrorHandler(function(e){if(!/supersed/.test(Qe(e,`message`))){switch(Qe(e,`detail.status`)){case 404:return r.go(`404`,{},{location:`replace`,custom:e.detail.data});case 403:case 500:return r.go(`${e.detail.status}`)}return r.go(`0`,{error:e.detail})}})}function Ug(){d.get(`auid`)||d.set(`auid`,ze(),{expires:365})}angular.module(`bandlab.web`,[`ui.router`,`ngAnimate`,`ngResource`,`ngSanitize`,`monospaced.elastic`,zg,`bandlab.advertising`,`bandlab.artistservices`,`bandlab.config`,`bandlab.account`,`bandlab.account.login`,`bandlab.account.settings`,`bandlab.account.signUp`,`bandlab.album`,`bandlab.audio`,`bandlab.band`,`bandlab.beats`,`bandlab.banner`,`bandlab.chat`,`bandlab.collection`,`bandlab.comment`,`bandlab.common`,`bandlab.common.notification`,`bandlab.community`,`bandlab.distribution`,`bandlab.easterEgg`,`bandlab.editor`,`bandlab.explore`,`bandlab.fanreach`,`bandlab.global`,`bandlab.library`,`bandlab.membership`,`bandlab.notification`,`bandlab.opportunities`,`bandlab.pages`,`bandlab.playbackhistory`,`bandlab.player`,`bandlab.post`,`bandlab.project`,`bandlab.promote`,`bandlab.search`,`bandlab.song`,`bandlab.shout`,`bandlab.track`,`bandlab.payment`,`bandlab.user`,`bandlab.global.redirects`,`bandlab.account.login.routes`,`bandlab.account.settings.routes`,`bandlab.account.signUp.routes`,`bandlab.audio.routes`,`bandlab.chat.routes`,`bandlab.collection.routes`,`bandlab.editor.routes`,`bandlab.error.routes`,`bandlab.explore.routes`,`bandlab.global.routes`,`bandlab.payment.routes`,`bandlab.playbackhistory.routes`,`bandlab.product.routes`,`bandlab.library.routes`,`bandlab.opportunities.routes`,`bandlab.post.routes`,`bandlab.promote.routes`,`bandlab.report.routes`,`bandlab.fanreach.routes`,`bandlab.search.routes`,`bandlab.user.routes`,`bandlab.band.routes`,`bandlab.community.routes`,`bandlab.song.routes`,`bandlab.album.routes`,`bandlab.beats.routes`]).run(Ug).run(
28Hg),angular.module(`bandlab.config`,[]).config(Hn),angular.element(function(){angular.bootstrap(document,[`bandlab.web`])}),angular.module(`bandlab.album`,[]),angular.module(`bandlab.album.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`album`,{url:`/album`,redirectTo:`album.new`}).state(`album.new`,{url:`/new`,resolve:{theAlbum:function(){return Promise.resolve()},theGenres:[`Tag`,function(e){return e.getGenres().catch(()=>[])}]},controller:`AlbumInfoEditCtrl`,templateUrl:`https://www.bandlab.com/web-app/album/views/album-info-b1062cd97.html`,data:{hideNavBar:!0}}).state(`album.create`,{url:`/{albumId:[a-zA-Z0-9-_]+}`,redirectTo:`album.create.info`,data:{hideNavBar:!0},resolve:{theAlbum:[`$stateParams`,`Album`,function(e,t){return e.albumId?t.get({id:e.albumId}).$promise:Promise.resolve()}],canEdit:[`$q`,`theAlbum`,`Me`,function(e,t,n){return t.creator.id===n.id?e.resolve(!0):e.reject({status:403})}],theGenres:[`Tag`,function(e){return e.getGenres().catch(()=>[])}]},controller:[`$scope`,function(e){e.$on(`Album:saving`,function(){e.saving=!0,e.saved=!1}),e.$on(`Album:saveCompleted`,function(){e.saving=!1,e.saved=!0}),e.$on(`Album:saveFailed`,function(){e.saving=!1,e.saved=!0})}]}).state(`album.create.info`,{url:`/info`,controller:`AlbumInfoEditCtrl`,templateUrl:`https://www.bandlab.com/web-app/album/views/album-info-b1062cd97.html`}).state(`album.create.tracks`,{url:`/tracks`,controller:`AlbumTracksEditCtrl`,templateUrl:`https://www.bandlab.com/web-app/album/views/album-tracks-43202c277.html`}).state(`album.edit`,{url:`/{albumId:[a-zA-Z0-9-_]+}/edit`,templateUrl:`https://www.bandlab.com/web-app/album/views/manage/album-manage-layout-9529a445b.html`,redirectTo:`album.edit.info`,resolve:{theAlbum:[`$stateParams`,`Album`,function(e,t){return t.get({id:e.albumId}).$promise}],canEdit:[`$q`,`theAlbum`,`Me`,function(e,t,n){return t.creator.id===n.id?e.resolve(!0):e.reject({status:403})}],theGenres:[`Tag`,function(e){return e.getGenres().catch(()=>[])}]},controller:[`$scope`,`theAlbum`,function(e,t){e.album=t,e.$on(`$album:changed`,function(t,n){n.album.id===e.album.id&&n.action===`update`&&(e.album=n.album)})}]}).state(`album.edit.info`,{url:`/info`,templateUrl:`https://www.bandlab.com/web-app/album/views/manage/album-info-fddd3ee96.html`,controller:`AlbumInfoEditCtrl`}).state(`album.edit.tracks`,{url:`/tracks`,templateUrl:`https://www.bandlab.com/web-app/album/views/manage/album-tracks-cf654178f.html`,controller:`AlbumTracksEditCtrl`}).state(`albumId`,{url:`/albums/{id:[a-zA-Z0-9-_]+}?commentId&replyId`,redirectTo:function(e){let t=e.injector().get(`$state`);return e.injector().get(`Album`).get({id:e.params().id}).$promise.then(function(n){return t.target(`userAlbum`,{username:n.creator.username,id:n.id,commentId:e.params().commentId,replyId:e.params().replyId},{album:n})})}}).state(`userAlbum`,{url:`/{username:[a-zA-Z0-9-_]+}/albums/{id:[a-zA-Z0-9-_]+}?commentId&replyId`,params:{new:!1,commentId:{dynamic:!0,inherit:!1},replyId:{dynamic:!0,inherit:!1},rewriteTracking:function(){return()=>`/album/page`}},templateUrl:`https://www.bandlab.com/web-app/album/views/album-layout-a7f0a2ff5.html`,resolve:{theAlbum:[`$stateParams`,`$transition$`,`Album`,function(e,t,n){let r=t.options();return r.album?r.album:n.get({id:e.id}).$promise}],theGenres:[`Tag`,function(e){return e.getGenres().catch(()=>[])}],theUser:[`$q`,`$stateParams`,`theAlbum`,function(e,t,n){return n.creator.username===t.username?n.artist:e.reject({status:404})}],Themes:[`Album`,function(e){return e.themes().$promise}]},onEnter:[`Page`,`theAlbum`,function(e,t){e.setMetadata({title:`${t.name} ${`by ${t.creator.name}`} | BandLab`,description:`${t.description?`${t.description} | `:``}Unlimited free listening on BandLab.`,image:`${t.picture.url}360x360`})}],onExit:[`Page`,function(e){e.clearMetadata()}],controller:`AlbumPageCtrl`}).state(`albumTracks`,{url:`/{username:[a-zA-Z0-9-_]+}/albums/{id:[a-zA-Z0-9-_]+}/tracks/{trackId:[a-zA-Z0-9-_]+}`,redirectTo:function(e){return{state:`track`,params:{id:e.params().trackId}}}})}]),angular.module(`bandlab.album`).controller(`AlbumDownloadCtrl`,[`$analytics`,`$http`,`$scope`,`$timeout`,`AppNotifications`,function(e,t,n,r,i){n.selected={},n.isLoading=!1,n.isDone=!1,t.get(`https://www.bandlab.com/api/v1.3/albums/${n.album.id}/download-options`).then(function({data:e}){a(e),n.options=e}),n.downloadAlbum=o;function a(e){[Kr,Br,Nr].forEach(function(t){let n=e.find(e=>e.id===t.id);n&&Object.assign(n,t)})}function o(a){if(a.url){angular.element(`<a href="${a.url}" target="_self"></a>`)[0].click(),n.isDone=!0,r(function(){n.isDone=!1},3e3);return}n.isLoading=!0,t.post(`https://www.bandlab.com/api/v1.3/albums/${n.album.id}/download-options/${a.id}`).then(function(){e.eventTrack(`Download`,{category:`Album`,label:`Music Album`}),n.confirm(),i.addNotification({title:`Youâre all set! We will email you the download link once itâs ready.`,classList:`success`,autoclose:8e3}),n.isLoading=!1,n.isDone=!0})}}]),angular.module(`bandlab.album`).controller(`AlbumEditCtrl`,[`$analytics`,`$rootScope`,`$scope`,`$state`,`$timeout`,`Album`,`AppNotifications`,`ConfirmModal`,`Modal`,function(e,t,n,r,i,a,o,s,c){n.downloadAlbum=p,n.deleteAlbum=f,n.publishAlbum=u,n.unpublishAlbum=d,n.deleteTrack=m;function l(e){return new Promise(function(t){new c({contentScope:{album:e},templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-publish-scheduled-modal-cf36dc46f.html`,onConfirm:()=>t(!0),onCancel:()=>t(!1)}).show()})}async function u(n){if(!n.counters.posts)return o.addNotification({title:`Unable to publish album`,content:`Albums must contain at least one track.`,classList:`alert`,autoclose:8e3});e.eventTrack(`Publish Album`,{category:`Album`}),(!n.isReleaseScheduled||await l(n))&&a.publish({id:n.id,state:`Released`}).$promise.then(function(){n.state=`Released`;let e=new Date;(n.isReleaseScheduled||!n.releaseDate)&&(n.releaseDate=`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,`0`)}-${e.getDate().toString().padStart(2,`0`)}`),n.isReleaseScheduled=!1,n.isCommentingAllowed=!0,t.$broadcast(`$album:changed`,{action:`update`,album:n}),Promise.all([import(`./BWvciV-z.js`).then(e=>e.t),import(`./DNnIhUw8.js`).then(e=>e.t),import(`./DHI6ZMoS.js`).then(e=>e.t)]).then(([{logEvent:e},{logCustomEvent:t},{logEvent:r}
28])=>{e(`album_publish`,{album_id:n.id}),t(`album_publish`,{album_id:n.id}),r(`album_publish`,{album_id:n.id})})})}function d(e){a.publish({id:e.id,state:`Draft`}).$promise.then(function(){e.state=`Draft`,t.$broadcast(`$album:changed`,{action:`update`,album:e})})}function f(e){return new s({confirmLabel:`Delete`,contentScope:{title:`Delete this album?`,message:`<p>You wonât be able to undo this action.</p>`},onConfirm:function(){t.$broadcast(`$album:changed`,{action:`mark-deleted`,album:e}),e=new a(e),e.$delete().then(function(){t.$broadcast(`$album:changed`,{action:`deleted`,album:e}),r.includes(`userAlbum`)&&i(()=>{r.go(`library.albums`)},500)}).catch(n=>{t.$broadcast(`$album:changed`,{action:`unmark-deleted`,album:e}),o.addNotification({title:`Cannot delete album`,content:Qe(n,`data.message`)||Qe(n,`message`,`Unknown error`),autoclose:5e3,classList:`alert`})})}}).show()}function p(e){new c({templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-download-e9595d586.html`,contentScope:{album:e}}).show()}function m(e){a.removePost({id:e.albumId,postId:e.id}).$promise.then(function(){r.go(`userAlbum`,{username:e.creator.username,id:e.albumId})})}}]);const Wg=[{name:`Album`,id:`Album`},{name:`LP`,id:`LP`},{name:`EP`,id:`EP`},{name:`Single`,id:`Single`},{name:`Mixtape`,id:`Mixtape`}];angular.module(`bandlab.album`).controller(`AlbumInfoEditCtrl`,[`$analytics`,`$rootScope`,`$scope`,`$state`,`$timeout`,`Album`,`AppNotifications`,`ConfirmModal`,`Me`,`theAlbum`,`theGenres`,function(e,t,n,r,i,a,o,s,c,l,u){n.updateForm=C,n.deleteAlbum=h,n.unpublishAlbum=g,n.genres=u,n.albumTypes=Wg,n.isToday=v,n.isFutureRelease=_,n.setReleaseToday=y,n.validateReleaseDate=b,n.isAlbumUpdating=!1;let f=new Date;n.maxReleaseDate=`${f.getFullYear()+1}-${(f.getMonth()+1).toString().padStart(2,`0`)}-${f.getDate().toString().padStart(2,`0`)}`,p(),n.$on(`$file:uploadSuccess`,function(e,t){n.album.pictureId=t.id,n.album.picture=t,n.album.id&&a.picture({id:n.album.id,pictureId:t.id})});function p(){n.album=l?new a(l):new a({state:`Draft`,type:`Album`,genreId:`other`,isAutoRepostEnabled:!0,policy:{isDownloadable:!0}})}function m(){_(n.album.releaseDate)&&new Date(n.album.releaseDate)>new Date(n.maxReleaseDate)&&delete n.album.releaseDate}function h(){return new s({confirmLabel:`Delete`,contentScope:{title:`Delete this album?`,message:`<p>You wonât be able to undo this action.</p>`},onConfirm:function(){t.$broadcast(`$album:changed`,{action:`mark-deleted`,album:n.album}),n.album.$delete().then(function(){t.$broadcast(`$album:changed`,{action:`delete`,album:n.album}),i(()=>{r.go(`library.albums`)},500)}).catch(e=>{t.$broadcast(`$album:changed`,{action:`unmark-deleted`,album:n.album}),o.addNotification({title:`Unable to delete album`,content:Qe(e,`data.message`)||Qe(e,`message`,`Unknown error`),autoclose:5e3,classList:`alert`})})}}).show()}function g(e){n.isAlbumUpdating=!0,a.publish({id:e.id,state:`Draft`}).$promise.then(function(){n.isAlbumUpdating=!1,e.state=`Draft`,t.$broadcast(`$album:changed`,{action:`update`,album:e})}).catch(function(){n.isAlbumUpdating=!1})}function _(e){return new Date(e)>f}function v(e){let t=new Date(e);return f.getFullYear()===t.getUTCFullYear()&&f.getMonth()===t.getUTCMonth()&&f.getDate()===t.getUTCDate()}function y(){n.album.releaseDate=`${f.getFullYear()}-${(f.getMonth()+1).toString().padStart(2,`0`)}-${f.getDate().toString().padStart(2,`0`)}`,n.albumForm.$setDirty()}function b(e){return e?Number.isNaN(Date.parse(e))?`Invalid date`:e>n.maxReleaseDate?`Please pick a date before ${Ei(n.maxReleaseDate)}`:!0:!0}function x(){return new Promise(e=>{if(!_(n.album.releaseDate)||d.get(`modalScheduledAlbumSeen`))return e();let t=J(()=>import(`./CZFq5u4H.js`));X(t,{onConfirm:function(){d.set(`modalScheduledAlbumSeen`,!0)}},{onClose:e})})}function S(){return n.album.themeId=null,Promise.all([n.album.$update(),lh(n.album.picture.url).then(function(e){return Y.setItem(`customThemeType`,n.customThemeType),a.updateTheme({id:n.album.id,colors:e.colors,current:{background:`Color`}})})]).then(function([e]){return e})}async function C(s=null){if(s===`library`&&!n.album.name){r.go(`library.albums`);return}m(),await x();let l={...n.album.policy},u;
28n.album.id?n.albumForm.$dirty?(u=n.album.$update().then(function(e){return a.updatePolicy({id:e.id,...l}).$promise.then(function(){return e})}),n.albumForm.$setPristine()):u=Promise.resolve(n.album):u=n.album.$save().then(function(e){return a.updatePolicy({id:e.id,...l}).$promise.then(function(){return e})}).then(function({id:t}){return e.eventTrack(`Create Album`,{category:`Album`}),Promise.all([import(`./BWvciV-z.js`).then(e=>e.t),import(`./DNnIhUw8.js`).then(e=>e.t),import(`./DHI6ZMoS.js`).then(e=>e.t)]).then(([{logEvent:e},{logCustomEvent:n},{logEvent:r}])=>{e(`album_create`,{album_id:t}),n(`album_create`,{album_id:t}),r(`album_create`,{album_id:t})}),gtag(`event`,`conversion`,{send_to:`AW-876226372/AXjmCPr_9NgBEMTO6KED`}),i(()=>{},1e3)}),(r.current.name===`album.create.info`||r.current.name===`album.new`)&&n.album.pictureId&&(u=u.then(S)),u.then(function(e){s===`tracks`?r.go(`album.create.tracks`,{albumId:n.album.id},{reload:!0}):s===`library`?r.go(`library.albums`):(t.$broadcast(`$album:changed`,{action:`update`,album:e}),o.addNotification({title:`Album updated`,action:`<a class="notification-action-text-inline" href="${r.href(`albumId`,{username:c.username,id:e.id||n.album.id})}">View Album</a>`,classList:`success`,autoclose:8e3}))}).catch(function(e){n.albumForm.$setPristine(),o.addNotification({title:`Unable to create playlist`,content:e.data.message,classList:`alert`})})}}]),angular.module(`bandlab.album`).controller(`AlbumPageCtrl`,[`$http`,`$rootScope`,`$scope`,`$state`,`$timeout`,`Album`,`appActions`,`AppNotifications`,`Me`,`Modal`,`theAlbum`,`theGenres`,`Themes`,`theUser`,`User`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){n.album=new a(u),n.editingPalette=!1,n.isFree=n.album.policy.pricingType===`Free`,n.me=c,n.theUser=p,n.themes=f,n.closeThemePalette=g,n.downloadAlbum=_,n.getGenre=v,n.getPostShareObject=b,n.getType=y,n.getLikers=x,n.hideHeader=C,n.openComments=T,n.openThemePalette=E;let h=this;w(),h.uiOnParamsChanged=function(){(r.params.commentId||r.params.replyId)&&T({commentId:r.params.commentId,replyId:r.params.replyId})},n.$on(`$album:changed`,(e,{action:t,album:r})=>{t===`update`&&(n.album=r)}),n.$on(`$albumTrack:changed`,function(e,t){D(t)}),n.$on(`$albumTrack:deleted`,function(e,t){n.album.posts=n.album.posts.filter(e=>e.id!==t.id)}),n.$on(`$comment:updateCounter`,function(e,t){t.id===n.album.id&&(n.album.counters.comments=t.nextCommentsCounter)}),n.$on(`$destroy`,()=>{n.album.permissions.edit&&s.clearAll()});function g(){n.editingPalette=!1,document.body.classList.remove(`album-palette-visible`)}function _(){o.checkAllowed(`download`)&&n.album.permissions.download&&new l({templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-download-e9595d586.html`,contentScope:{album:n.album}}).show()}function v(e){return d.find(t=>t.id===e)}function y(e){return Wg.find(t=>t.id===e).name}function b(e){return{...e,post:{...a.albumToPost(e),attachment:{object:e,type:`Album`}}}}function x(e){return Object.assign(e,{entity:`albums`,entityId:n.album.id}),m.likersWithCursor(e).$promise}function S(){return e.get(`https://www.bandlab.com/api/v1.3/explore/recommended-albums`,{cache:!0,params:{genres:n.album.genreId,limit:6}}).then(e=>e.data).catch(()=>[])}function C(){n.album.theme.isHeaderHidden=!0,a.updateTheme({id:n.album.id,...n.album.theme}),t.$broadcast(`$album:changed`,{action:`update`,album:n.album})}function w(){let e=n.album.permissions.edit&&!Y.getItem(`albumCustomizeClosed`);i(()=>{n.showCustomizeNotification=e},1e3),(r.params.commentId||r.params.replyId)&&T({commentId:r.params.commentId,replyId:r.params.replyId}),S().then(function(e){n.recommendedAlbums=e.filter(e=>e.id!==n.album.id).slice(0,5)})}function T({commentId:e,replyId:t}={}){let i=J(()=>import(`./H2hvafSQ.js`));X(i,{album:n.album,commentId:e,replyId:t,onCloseModal:()=>{r.go(`userAlbum`,{username:u.creator.username,id:u.id},{notify:!1})}},{escapeClose:!1,overlayClose:!1})}function E(){n.editingPalette=!0,n.showCustomizeNotification=!1,Y.setItem(`albumCustomizeClosed`,!0),document.body.classList.add(`album-palette-visible`),s.clearAll()}function D(e){let r=n.album.posts.find(t=>t.revision.id===e.id);r.caption=e.caption,r.track=e.track,r.revision.track=e.track,r.isExplicit=e.isExplicit,r.state=e.state,r.revision.song.name=e.track.name,n.$applyAsync(),t.$broadcast(`Album:saveCompleted`)}}]),angular.module(`bandlab.album`).controller(`AlbumPaletteCtrl`,[`$analytics`,`$scope`,`Album`,function(e,t,n){t.$on(`$albumPicture:changed`,function(e,{data:n}){n.property?(t.album.theme.images[n.property]=n.picture.url,n.property===`header`&&(t.album.theme.isHeaderHidden=!1),y()):(t.album.picture=n.picture,u(),t.customThemeType&&(t.loading=!0,lh(t.album.picture.url).then(e=>{t.customThemeType=e.name,t.album.theme.colors=e.colors,t.loading=!1,y(),r()})))}),t.$on(`$album:changed`,function(){y()}),t.$on(`$destroy`,function(){document.body.removeEventListener(`mousedown`,i),document.body.removeEventListener(`ke
28ydown`,l)}),t.$watch(`editingPalette`,function(){y(),t.editingPalette&&(document.body.addEventListener(`mousedown`,i),document.body.addEventListener(`keydown`,l))}),t.closeCustomPalette=a,t.deleteBackground=o,t.deleteCover=c,t.deleteHeader=s,t.openCustomPalette=d,t.resetTheme=f,t.selectBackgroundType=m,t.selectTheme=h,t.toggleGeneratedTheme=g,t.toggleHeader=_,t.updateColors=v;let r=Fa(()=>{n.updateTheme({id:t.album.id,...t.album.theme})},400);function i(e){e.target.closest(`.album-palette`)||e.target.closest(`.ds-button`)||e.target.closest(`.ds-icon-button`)||e.target.closest(`.modal-overlay`)||(t.closeThemePalette(),a(),t.$applyAsync(),document.body.removeEventListener(`mousedown`,i))}function a(){t.editingCustom=!1}function o(){t.album.theme.images.background=null,y(),r()}function s(){t.album.theme.images.header=null,y(),r()}function c(){n.picture({id:t.album.id,picture:null}).$promise.then(({picture:e})=>{t.album.picture=e})}function l(e){e.keyCode===27&&(t.closeThemePalette(),a(),t.$applyAsync(),document.body.removeEventListener(`keydown`,l))}async function u(){t.generatedThemes=[];let e=await uh(t.album.picture.url);t.customThemeType=oh(t.album.theme.colors,e)?.name,t.generatedThemes=e,t.generatedThemeIndex=e.findIndex(e=>e.name===t.customThemeType),t.$applyAsync()}function d(){t.editingCustom=!0,u(),t.album.themeId&&(t.album.themeId=null,n.update({id:t.album.id,themeId:null}).$promise.then(()=>t.album.$get()).then(()=>{y()}))}function f(){t.generatedThemeIndex=0,t.customThemeType=null,n.deleteTheme({id:t.album.id}).$promise.then(()=>t.album.$get()).then(()=>y())}function p(e){return(e[0]===`#`?e:`#${e}`).toUpperCase()}function m(e){t.album.theme.current.background=e,y(),r()}function h(r){e.eventTrack(`Select Theme`,{category:`Album`,label:r.id}),t.album.themeId=r.id,n.update({id:t.album.id,themeId:r.id}),y()}function g(e){t.generatedThemeIndex=t.customThemeType?e<0?t.generatedThemes.length-1:e%t.generatedThemes.length:0;let n=t.generatedThemes[t.generatedThemeIndex];n&&(t.customThemeType=n.name,t.album.theme.colors=n.colors,y(),r())}function _(){t.album.theme.isHeaderHidden=!t.album.theme.isHeaderHidden,y(),r()}function v(){Object.keys(t.album.theme.colors).forEach(e=>{t.album.theme.colors[e]=p(t.album.theme.colors[e])}),t.generatedThemeIndex=0,t.customThemeType=null,y(),r()}function y(){let e=document.querySelector(`.album-background`),n=e.style,r=t.album.themeId?t.themes.find(e=>e.id===t.album.themeId):t.album.theme;if(r.current.background===`Image`&&r.images.background?n.setProperty(`--album-background-image`,`url(${r.images.background})`):n.setProperty(`--album-background-image`,``),r.isHeaderHidden||t.album.state===`Released`&&!t.editingPalette&&!r.images.header?e.classList.add(`hide-header`):(e.classList.remove(`hide-header`),r.images.header?(n.setProperty(`--album-header-color`,`transparent`),n.setProperty(`--album-header-image`,`url(${r.images.header})`)):(n.setProperty(`--album-header-color`,r.colors.button),n.setProperty(`--album-header-image`,``))),r.id==="default"){n.removeProperty(`--album-header-color`),n.removeProperty(`--album-background-color`),n.removeProperty(`--album-body-color`),n.removeProperty(`--album-separator-color`),n.removeProperty(`--album-button-color`),n.removeProperty(`--album-button-hover-color`),n.removeProperty(`--album-button-icon-scd`),n.removeProperty(`--album-text-color`),n.removeProperty(`--album-secondary-color`);return}n.setProperty(`--album-background-color`,r.colors.background),n.setProperty(`--album-body-color`,r.colors.body),n.setProperty(`--album-separator-color`,i(r.colors.body,.1)),n.setProperty(`--album-button-color`,r.colors.button),n.setProperty(`--album-button-hover-color`,i(r.colors.button,.05)),n.setProperty(`--album-button-icon-scd`,a(r.colors.button)),n.setProperty(`--album-text-color`,r.colors.text),n.setProperty(`--album-secondary-color`,r.colors.secondary);function i(e,t){return`rgb(${(bh({hex:e})?rh({hex:e,ratio:-1*t}):rh({hex:e,ratio:t})).join(`,`)})`}function a(e){if(e)return bh({hex:e})?`#000000`:`#FFFFFF`}}}]),angular.module(`bandlab.album`).controller(`AlbumTracksEditCtrl`,[`$rootScope`,`$scope`,`$state`,`Album`,`Me`,`PlayerHistory`,`ProjectUploader`,`RevisionSocket`,`theAlbum`,function(e,t,n,r,i,a,o,s,c){t.album=new r(c),t.toInfo=l,t.toPage=d,t.toLibrary=u,t.saving=!1,t.$on(`Album:saving`,function(){t.saving=!0}),t.$on(`Album:saveCompleted`,function(){t.saving=!1}),t.$on(`Album:saveFailed`,function(){t.saving=!1}),t.$on(`$revision:changed`,function(e,n){let r=n.revision;r.mixdown&&r.mixdown.status!==`Ready`&&s.join({revisionId:r.id}),t.album.posts.push(r.post)}),t.$on(`$albumTrack:changed`,function(e,t){f(t)}),t.$on(`$albumTrack:added`,function(e,n){t.album.posts.push(n.post)}),t.$on(`$albumTrack:deleted`,function(e,n){t.album.posts=t.album.posts.filter(e=>
28e.id!==n.id)}),t.$on(`$destroy`,s.disconnect),t.$on(`$mixdown:changed`,function(e,n){let r=t.album.posts.find(function(e){return e.revision.mixdown.id===n.mixdown.id});r&&(r.revision.mixdown=n.mixdown,t.$applyAsync())}),t.$watch(`album.posts`,function(){p()},!0),t.isUploading=function(){return o.queue.some(function(e){return!e.complete})};function l(){n.go(`album.create.info`,{albumId:t.album.id})}function u(){n.go(`library.albums`)}function d(){n.go(`userAlbum`,{username:i.username,id:t.album.id,new:!0})}function f(n){let r=t.album.posts.find(e=>e.revision.id===n.id);r.caption=n.caption,r.track=n.track,r.revision.track=n.track,r.isExplicit=n.isExplicit,r.state=n.state,r.revision.song.name=n.track.name,t.$applyAsync(),e.$broadcast(`Album:saveCompleted`)}function p(){a.forcePushQueueSongs(t.album.posts,a.getStack()[a.getIndex()],{contentSource:`album`,id:t.album.id})}}]),angular.module(`bandlab.album`).controller(`AlbumTrackFormCtrl`,[`$rootScope`,`$scope`,`Album`,`Post`,`Tag`,function(e,t,n,r,i){t.post=new r({...t.post,track:{...t.post.track}}),i.getGenres().catch(()=>[]).then(e=>{t.genres=e}),t.$on(`$trackPicture:changed`,function(n,{data:r}){t.post.track.picture=r.picture,e.$broadcast(`$albumTrack:changed`,t.post)}),t.editTrack=function(){n.updatePost({id:t.post.id,caption:t.post.caption,isExplicit:t.post.isExplicit,state:t.post.state,track:{name:t.post.track.name,genreId:t.post.track.genreId}}).$promise.then(function(){e.$broadcast(`$albumTrack:changed`,t.post),e.$broadcast(`editTrackModal`,`close`)}).catch(function(e){t.errorMessage=e.message})}}]),angular.module(`bandlab.album`).component(`albumCreateHeader`,{bindings:{save:`&`,notSaved:`=`},templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-create-header-51d2c42c0.html`,controller:[`$scope`,function(e){let t=this;e.$on(`Album:saving`,function(){e.saving=!0,e.saved=!1}),e.$on(`Album:saveCompleted`,function(){e.saving=!1,e.saved=!0}),e.$on(`Album:saveFailed`,function(){e.saving=!1,e.saved=!0}),e.save=function(){t.save()}}],controllerAs:`vm`}),angular.module(`bandlab.album`).component(`albumDropzone`,{templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-dropzone-97cec8ca2.html`,bindings:{size:`@`,album:`=`},controller:[`$element`,`$filter`,`$http`,`$q`,`$rootScope`,`$scope`,`$timeout`,`$window`,`appActions`,`Album`,`AppNotifications`,`Post`,`ProjectUploader`,`RevisionImporter`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p){var m=this;m.maxTracks=50,s=angular.element(s),a.uploadFromComputer=S,a.openTrackPicker=C,s.on(`dragover`,h),s.on(`dragleave`,g),a.$on(`$destroy`,function(){s.off(`dragover`,h),s.off(`dragleave`,g)}),e.on(`drop`,function(e){e.preventDefault(),e.stopPropagation(),e.dataTransfer.files&&_(e.dataTransfer.files),a.isDragging=!1,a.$applyAsync()}),e.on(`dragover`,function(e){e.preventDefault(),e.stopPropagation(),a.isDragging=!0,e.dataTransfer.dropEffect=`copy`,a.$applyAsync()}),e.on(`dragleave`,function(){a.isDragging=!1,a.$applyAsync()});function h(e){Array.from(e.dataTransfer.items).some(e=>e.type.includes(`audio`))&&(a.isDragging=!0,a.$applyAsync())}function g(){a.isDragging=!1,a.$applyAsync()}function _(e){let t=f.queue.reduce(function(e,t){return t.failed===!1||t.progress>=1?e:e+1},0);if(m.album.posts.length+e.length+t>50){x();return}return r.all(Array.from(e).map(b)).then(function(e){let t=e.filter(([,e])=>e),n=e.filter(([,e])=>!e);n.length&&u.addNotification({title:`Unable to import file. Please check that your file is not corrupted.`,content:`${n.map(([e,,t])=>`<div style="margin: 4px 0">${u.escapeContent(e.name)}<br>${u.escapeContent(t.message)}</div>`).join(``)}`,classList:`alert`}),t.map(function([e,t]){return v(e,t)})})}function v(e,a){let o={createdAt:performance.now(),name:t(`limitTo`)(e.name.replace(/\.[^/.]+$/,``),100),file:e,progress:0,loaded:0,complete:!1,cancel:function(){ja(f.queue,o),o.upload.cancel()},upload:s(),retry:function(){o.upload=s(),o.failed=!1},index:f.queue.length};f.queue.push(o);function s(){let s=r.defer();return Object.assign(br(e).then(function(e){let n=l.createPost({id:m.album.id,track:{name:t(`limitTo`)(e.name.replace(/\.[^/.]+$/,``),100),genreId:m.album.genreId,sample:{audioFormat:ei(e.type),duration:a}}});return s.promise.then(()=>n.$cancelRequest()),Promise.all([n.$promise,e])}).then(function([e,t]){let{"Content-Type":r}=Object.fromEntries(new URLSearchParams(e.track.sample.uploadUrl));return o.post=e,n({method:`PUT`,url:e.track.sample.uploadUrl,data:t,headers:{"Content-Type":r},uploadEventHandlers:{progress:function(e){o.total=e.total,o.loaded=e.loaded,o.progress=e.loaded/e.total}},timeout:s.promise})}).then(function(){o.complete=!0,i.$broadcast(`$albumTrack:added`,{post:o.post}),ha(),y(o.post.id)}).catch(e=>{o.failed=!0}),{progress:{},cancel:c});function c(){s.resolve(),o.post&&l.removePost({id:m.album.id,postId:o.post.id})}}}function y(e){o(function(){d.get({id:e}
28).$promise.then(function(t){t.track.sample.status===`Empty`?y(e):i.$broadcast(`$albumTrack:changed`,t)})},5e3)}function b(e){return p.isAudioFileValid(e,{loader:!1}).then(function([e,t]){return[e,t]}).catch(t=>[e,null,t])}function x(){u.addNotification({title:`Track couldnât be added`,content:`This album has reached its limit of tracks (50). Please remove some tracks and try again.`,classList:`alert`,autoclose:8e3}),a.isDragging=!1}function S(){c.checkAllowed(`upload`)&&pr({accept:`audio/*, audio/x-m4a`,multiple:!0}).then(function(e){return _(e)})}function C(){Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./BzK9grA-.js`)]).then(function([{createModal:e},{default:t}]){e(t,{album:m.album})})}}],controllerAs:`vm`}),angular.module(`bandlab.album`).component(`albumStepper`,{bindings:{step:`=`,back:`=`,next:`=`,nextFn:`&`,backFn:`&`,uploading:`=`},templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-stepper-df49a11e5.html`,controller:[`$scope`,function(e){let t=this;t.$onInit=n,e.steps=[{step:1,name:`Info`},{step:2,name:`Tracks`}];function n(){e.currentStep=t.step&&t.step>0?t.step:1}e.back=function(){t.backFn()},e.next=function(){t.nextFn()}}],controllerAs:`vm`}),angular.module(`bandlab.album`).component(`albumTile`,{bindings:{album:`<`,triggeredFrom:`<`},templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-tile-4cb763916.html`,controller:[`$scope`,`$stateParams`,`Me`,function(e,t,n){let r=this;r.me=n,e.getType=i,e.$on(`$album:changed`,function(e,t){t.album.id===r.album.id&&t.action===`update`&&(r.album=t.album)});function i(e){return Wg.find(t=>t.id===e).name}r.isPurchases=t.purchased}],controllerAs:`vm`}).component(`albumPreview`,{bindings:{album:`<`},templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-preview-da3bb2b62.html`,controller:[`$scope`,`Me`,`Tag`,function(e,t,n){let r=this;r.me=t,e.getType=a,e.getGenre=i,e.genres=[],e.maxTracksShown=3,r.$onInit=function(){n.getGenres().then(t=>{e.genres=t})},e.$on(`$album:changed`,function(e,t){t.album.id===r.album.id&&t.action===`update`&&(r.album=t.album)});function i(t){return e.genres.find(e=>e.id===t)?.name}function a(e){return Wg.find(t=>t.id===e).name}}],controllerAs:`vm`}),angular.module(`bandlab.album`).component(`albumTrackTile`,{bindings:{album:`=`,editable:`=`,index:`=`,post:`=`},templateUrl:`https://www.bandlab.com/web-app/album/partials/_album-track-tile-af67656b0.html`,controller:[`$rootScope`,`$scope`,`Album`,`ConfirmModal`,`Player`,`Me`,function(e,t,n,r,i,a){let o=this;o.me=a,t.confirmDeleteTrack=function(){new r({confirmLabel:`Delete`,toFocusConfirm:!0,contentScope:{title:`Remove Track From Album`},onConfirm:s}).show()};function s(){e.$broadcast(`Album:saving`),o.post.isDeleting=!0,t.$applyAsync(),n.removePost({id:o.album.id,postId:o.post.id}).$promise.then(function(){e.$broadcast(`$albumTrack:deleted`,{id:o.post.id}),i.removeRevisionFromQueue(o.post.revId,o.post.id),e.$broadcast(`Album:saveCompleted`)}).catch(function(){e.$broadcast(`Album:saveFailed`)})}t.updateTrackOrder=function(e,t){n.updatePostOrder({id:o.album.id,postId:e,order:t})}}],controllerAs:`vm`}),angular.module(`bandlab.album`).factory(`Album`,[`$http`,`$resource`,function(e,t){var n=`https://www.bandlab.com/api/v1.3/albums`;let r=t(n,{},{addPost:{method:`POST`,params:{albumId:`@albumId`,postId:`@postId`},url:`${n}/:albumId/posts/:postId`,transformResponse:[...e.defaults.transformResponse,c]},createPost:{method:`POST`,params:{id:`@id`},url:`${n}/:id/posts`,cancellable:!0,transformResponse:[...e.defaults.transformResponse,c]},delete:{method:`DELETE`,params:{id:`@id`},url:`${n}/:id`},deleteTheme:{method:`DELETE`,params:{id:`@id`},url:`${n}/:id/theme`},fromUser:{method:`GET`,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/albums`,preservePagination:!0},get:{method:`GET`,params:{id:`@id`},url:`${n}/:id`,transformResponse:[...e.defaults.transformResponse,o,s]},liked:{method:`GET`,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/likes/albums`,preservePagination:!0},picture:{method:`PUT`,params:{id:`@id`},url:`${n}/:id/picture`},pictureTrack:{method:`PUT`,params:{postId:`@id`},url:`https://www.bandlab.com/api/v1.3/posts/:postId/track/picture`},publish:{method:`PUT`,params:{id:`@id`},url:`${n}/:id/state`},purchased:{method:`GET`,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/purchases/albums`,preservePagination:!0}
28,removePost:{method:`DELETE`,params:{id:`@id`,postId:`@postId`},url:`${n}/:id/posts/:postId`},save:{method:`POST`,url:n},themes:{method:`GET`,isArray:!0,url:`${n}/themes`},update:{method:`PATCH`,params:{id:`@id`},url:`${n}/:id`,transformRequest:[a,angular.toJson]},updatePolicy:{method:`PUT`,params:{id:`@id`},url:`${n}/:id/policy`},updatePost:{method:`PATCH`,params:{postId:`@id`},url:`https://www.bandlab.com/api/v1.3/posts/:postId`,transformRequest:[i,angular.toJson]},updatePostOrder:{method:`PUT`,params:{id:`@id`,postId:`@postId`},url:`${n}/:id/posts/:postId/order`},updateTheme:{method:`PUT`,params:{id:`@id`},url:`${n}/:id/theme`}});return Object.assign(r,{trackPostToPost:l,albumToPost:u});function i(e){return delete e.id,e}function a(e){let t=[`description`,`genreId`,`isAutoRepostEnabled`,`name`,`releaseDate`,`themeId`,`type`].reduce((t,n)=>(t[n]=e[n],t),{});return t.releaseDate&&angular.isObject(t.releaseDate)&&(t.releaseDate=`${t.releaseDate.getUTCFullYear()}-${(t.releaseDate.getUTCMonth()+1).toString().padStart(2,`0`)}-${t.releaseDate.getUTCDate().toString().padStart(2,`0`)}`),t}function o(e,t,n){return n===200&&(e.creator=e.artist),e}function s(e,t,n){return n===200&&(e.posts=e.posts.map(t=>l(t,e))),e}function c(e,t,n){return n===201?l(e):e}function l(e,t={}){let n={albumId:e.albumId,counters:{},creator:e.creator||t.creator,id:e.id,isLiked:e.isLiked,isPublic:t.state===`Released`,mixdown:{duration:e.track.sample.duration,status:e.track.sample.status,waveform:e.track.sample.waveformUrl},postId:e.id,genres:[{id:e.track.genreId}],song:{albumId:e.albumId,author:{type:`User`,username:(e.creator||t.creator).username},name:e.track.name,picture:e.track.picture||t.picture},state:e.state,track:e.track,type:`Track`};return{...e,revision:{revision:n,...n}}}function u(e){return{id:e.id,caption:e.description,counters:e.counters,createdOn:e.releaseDate,creator:e.creator,state:e.state,type:`Album`}}}]),angular.module(`bandlab.artistservices`,[]);function Gg(e){return e?.canEdit}function Kg(e){let{state:t}=e.post;return t===`Public`||t===`Unlisted`}function qg(e){return e?.mixdown.duration>=90}function Jg(e){return e?.mixdown.status===`Ready`}function Yg(e,t){return Jg(e)?qg(e)?Gg(e)?Kg(e)?!0:t.addNotification({title:`Oops! This is private`,content:`Make your track public and try again`,innerScope:{revision:e},action:`<button type="button" class="ds-button ds-button-color-primary ds-button-size-compact" 29 async-modal="https://www.bandlab.com/web-app/song/partials/_revision-publish-e889bd989.html" 30 async-modal-id="editRevisionModal" 31 async-modal-parse="{ revision: $parent.innerScope.revision }"><span class="ds-button-text">Publish</span></button>`,classList:`warning`,autoclose:8e3}):t.addNotification({title:`Zire error`,content:`Only the creator can submit`,classList:`warning`,autoclose:8e3}):t.addNotification({title:`Zire error`,content:`Must be longer than 90 secs`,classList:`warning`,autoclose:8e3}):t.addNotification({title:`Zire error`,content:`Currently processing. Please wait a few seconds before trying again.`,classList:`warning`,autoclose:8e3})}async function Xg(e){if(!e.isPrivate)return;let{createModal:t}=await import(`./BUIA2SYS.js`).then(e=>e.t),{default:n}=await import(`./CMX0AnjN.js`).then(e=>e.t);return new Promise(function(e,r){t(n,{onConfirm:e,title:`Make your profile public to promote`,description:`You need to be public to reach people. Continue to update your settings and pick a track.`},{onClose:r})})}function Zg(e,t,n){Yg(n,e)&&new t({templateUrl:`https://www.bandlab.com/web-app/reverbnation/partials/_promote-confirmation-875bbcdf6.html`,class:`artist-services-usps-modal-root`,contentScope:{link:`https://zire.com/onboarding/review-release?revision_id=${n.id}`}}).show()}function Qg(e,t){return t.getAccess({userId:e.id}).$promise.then(function({featureAccess:e}){return!e.error||e.error.code===`1426`||e.error.code===1425||Promise.reject(e.error)})}function $g(e,t,n){return Qg(t,n).catch(function(t){if(t.code===22||t.code===120){let e=J(()=>import(`./C9NRjjLY.js`));X(e,{emailUnconfirmed:t.code===120})}else t.status===500||t.code===500||e.addNotification({title:t.message??`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})}
31function e_(e){return e?.mixdown.duration>=60}function t_(e,t){return Jg(t)?!e_(t)||!Gg(t)||t.song.isFork||t.song.counters.collaborators>0||t.song.author.type===`Band`?e.addNotification({title:`BandLab Distribution`,content:`Tracks must exceed 60 seconds, not be Fork tracks, and without collaborators.`,classList:`warning`,autoclose:8e3}):!0:e.addNotification({title:`BandLab Distribution`,content:`Currently processing. Please wait a few seconds before trying again.`,classList:`warning`,autoclose:8e3})}function n_({title:e,message:t,isMessageHtml:n=!1}){let r=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));X(r,{title:e,size:`small`,...n?{contentVHtml:t}:{subtitle:t}})}async function r_(e,t){return(await e.getFormOptions({userId:t.id}).$promise).availableReleaseDates}async function i_(e,t){return(await e.getFormOptions({userId:t.id}).$promise).genres}async function a_(e,t){return((await e.getFormOptions({userId:t.id}).$promise).versionTypes||[{id:`Acapella`,name:`Acapella`,description:`Vocals only, no instruments`},{id:`Acoustic`,name:`Acoustic`,description:`Played with acoustic instruments`},{id:`Alternate Take`,name:`Alternate Take`,description:`Different recording from the same session`},{id:`Demo`,name:`Demo`,description:`Early or rough version`},{id:`Deluxe`,name:`Deluxe`,description:`Special edition with bonus tracks`},{id:`Extended`,name:`Extended`,description:`Longer than original track`},{id:`Freestyle`,name:`Freestyle`,description:`Improvised performance`},{id:`Instrumental`,name:`Instrumental`,description:`Music only, no vocals`},{id:`Karaoke`,name:`Karaoke`,description:`Sing-along instrumental`},{id:`Lo-Fi`,name:`Lo-Fi`,description:`Raw or low-fidelity sound`},{id:`Radio Edit`,name:`Radio Edit`,description:`Shortened or censored version`},{id:`Remastered`,name:`Remastered`,description:`Enhanced original recording`},{id:`Remix`,name:`Remix`,description:`Reworked version of your track`},{id:`Slowed and Reverb`,name:`Slowed & Reverb`,description:`Slower tempo with reverb effect`},{id:`Slowed Down`,name:`Slowed Down`,description:`Slower than original`},{id:`Sped Up`,name:`Sped Up`,description:`Faster than original`},{id:`Other`,name:`Other`,description:`Enter custom version`}]).map(e=>({...e,originalId:e.id,id:e.name}))}async function o_(e,t){return(await e.getFormOptions({userId:t.id}).$promise).instruments}async function s_(e,t){return(await e.getFormOptions({userId:t.id}).$promise).productionRoles}async function c_(e,t){return(await e.getFormOptions({userId:t.id}).$promise).contributorRoles}function l_(){return[{id:`Primary`,name:`Primary`},{id:`Featuring`,name:`Featuring`}]}function u_(){return[{name:`English`,id:`EN`},{name:`Spanish`,id:`ES`},{name:`Portuguese`,id:`PT`},{name:`No lyrics / Instrumental`,id:`ZXX`},{name:`Abkhazian`,id:`AB`},{name:`Afar`,id:`AA`},{name:`Afrikaans`,id:`AF`},{name:`Akan`,id:`AK`},{name:`Albanian`,id:`SQ`},{name:`Amharic`,id:`AM`},{name:`Arabic`,id:`AR`},{name:`Aragonese`,id:`AN`},{name:`Armenian`,id:`HY`},{name:`Assamese`,id:`AS`},{name:`Avaric`,id:`AV`},{name:`Avestan`,id:`AE`},{name:`Aymara`,id:`AY`},{name:`Azerbaijani`,id:`AZ`},{name:`Bambara`,id:`BM`},{name:`Bashkir`,id:`BA`},{name:`Basque`,id:`EU`},{name:`Belarusian`,id:`BE`},{name:`Bengali`,id:`BN`},{name:`Bhojpuri`,id:`BHO`},{name:`Bislama`,id:`BI`},{name:`Bosnian`,id:`BS`},{name:`Breton`,id:`BR`},{name:`Bulgarian`,id:`BG`},{name:`Burmese`,id:`MY`},{name:`Cantonese`,id:`YUE`},{name:`Catalan`,id:`CA`},{name:`Central Khmer`,id:`KM`},{name:`Chamorro`,id:`CH`},{name:`Chechen`,id:`CE`},{name:`Chichewa`,id:`NY`},{name:`Chinese`,id:`ZH`},{name:`Church Slavic`,id:`CU`},{name:`Chuvash`,id:`CV`},{name:`Cornish`,id:`KW`},{name:`Corsican`,id:`CO`},{name:`Cree`,id:`CR`},{name:`Creole, English based`,id:`CPE`},{name:`Creole, French based`,id:`CPF`},{name:`Creole, Portuguese based`,id:`CPP`},{name:`Croatian`,id:`HR`},{name:`Czech`,id:`CS`},{name:`Danish`,id:`DA`},{name:`Divehi`,id:`DV`},{name:`Dutch`,id:`NL`},{name:`Dzongkha`,id:`DZ`},{name:`Esperanto`,id:`EO`},{name:`Estonian`,id:`ET`},{name:`Ewe`,id:`EE`},{name:`Faroese`,id:`FO`},{name:`Fijian`,id:`FJ`},{name:`Finnish`,id:`FI`},{name:`French`,id:`FR`},{name:`Fulah`,id:`FF`},{name:`Gaelic`,id:`GD`},{name:`Galician`,id:`GL`},{name:`Georgian`,id:`KA`},{name:`German`,id:`DE`},{name:`Greek`,id:`EL`},{name:`Guarani`,id:`GN`},{name:`Gujarati`,id:`GU`}
31,{name:`Haitian Creole`,id:`HAT`},{name:`Haitian`,id:`HT`},{name:`Hausa`,id:`HA`},{name:`Hebrew`,id:`HE`},{name:`Herero`,id:`HZ`},{name:`Hindi`,id:`HI`},{name:`Hiri Motu`,id:`HO`},{name:`Hungarian`,id:`HU`},{name:`Icelandic`,id:`IS`},{name:`Ido`,id:`IO`},{name:`Igbo`,id:`IG`},{name:`Indonesian`,id:`ID`},{name:`Interlingua`,id:`IA`},{name:`Interlingue`,id:`IE`},{name:`Inuktitut`,id:`IU`},{name:`Inupiaq`,id:`IK`},{name:`Irish`,id:`GA`},{name:`Italian`,id:`IT`},{name:`Japanese`,id:`JA`},{name:`Javanese`,id:`JV`},{name:`Kalaallisut`,id:`KL`},{name:`Kannada`,id:`KN`},{name:`Kanuri`,id:`KR`},{name:`Kashmiri`,id:`KS`},{name:`Kazakh`,id:`KK`},{name:`Kikuyu`,id:`KI`},{name:`Kinyarwanda`,id:`RW`},{name:`Kirghiz`,id:`KY`},{name:`Komi`,id:`KV`},{name:`Kongo`,id:`KG`},{name:`Korean`,id:`KO`},{name:`Kuanyama`,id:`KJ`},{name:`Kurdish`,id:`KU`},{name:`Lao`,id:`LO`},{name:`Latin`,id:`LA`},{name:`Latvian`,id:`LV`},{name:`Limburgan`,id:`LI`},{name:`Lingala`,id:`LN`},{name:`Lithuanian`,id:`LT`},{name:`Luba-Katanga`,id:`LU`},{name:`Luganda`,id:`LG`},{name:`Luxembourgish`,id:`LB`},{name:`Macedonian`,id:`MK`},{name:`Magahi`,id:`MAG`},{name:`Maithili`,id:`MAI`},{name:`Malagasy`,id:`MG`},{name:`Malay`,id:`MS`},{name:`Malayalam`,id:`ML`},{name:`Maltese`,id:`MT`},{name:`Manx`,id:`GV`},{name:`Maori`,id:`MI`},{name:`Marathi`,id:`MR`},{name:`Marshallese`,id:`MH`},{name:`Mongolian`,id:`MN`},{name:`Nauru`,id:`NA`},{name:`Navajo`,id:`NV`},{name:`Ndonga`,id:`NG`},{name:`Nepali`,id:`NE`},{name:`North Ndebele`,id:`ND`},{name:`Northern Sami`,id:`SE`},{name:`Norwegian Bokmål`,id:`NB`},{name:`Norwegian Nynorsk`,id:`NN`},{name:`Norwegian`,id:`NO`},{name:`Occitan`,id:`OC`},{name:`Ojibwa`,id:`OJ`},{name:`Oriya`,id:`OR`},{name:`Oromo`,id:`OM`},{name:`Ossetian`,id:`OS`},{name:`Pali`,id:`PI`},{name:`Persian`,id:`FA`},{name:`Polish`,id:`PL`},{name:`Punjabi`,id:`PA`},{name:`Pushto`,id:`PS`},{name:`Quechua`,id:`QU`},{name:`Romanian`,id:`RO`},{name:`Romansh`,id:`RM`},{name:`Rundi`,id:`RN`},{name:`Russian`,id:`RU`},{name:`Samoan`,id:`SM`},{name:`Sango`,id:`SG`},{name:`Sanskrit`,id:`SA`},{name:`Sardinian`,id:`SC`},{name:`Serbian`,id:`SR`},{name:`Shona`,id:`SN`},{name:`Sichuan Yi`,id:`II`},{name:`Sindhi`,id:`SD`},{name:`Sinhala`,id:`SI`},{name:`Slovak`,id:`SK`},{name:`Slovene`,id:`SL`},{name:`Somali`,id:`SO`},{name:`Sotho, Southern`,id:`ST`},{name:`South Ndebele`,id:`NR`},{name:`Sundanese`,id:`SU`},{name:`Swahili`,id:`SW`},{name:`Swati`,id:`SS`},{name:`Swedish`,id:`SV`},{name:`Tagalog`,id:`TL`},{name:`Tahitian`,id:`TY`},{name:`Tajik`,id:`TG`},{name:`Tamil`,id:`TA`},{name:`Tatar`,id:`TT`},{name:`Telugu`,id:`TE`},{name:`Thai`,id:`TH`},{name:`Tibetan`,id:`BO`},{name:`Tigrinya`,id:`TI`},{name:`Tonga (Tonga Islands)`,id:`TO`},{name:`Tsonga`,id:`TS`},{name:`Tswana`,id:`TN`},{name:`Turkish`,id:`TR`},{name:`Turkmen`,id:`TK`},{name:`Twi`,id:`TW`},{name:`Uighur`,id:`UG`},{name:`Ukrainian`,id:`UK`},{name:`Urdu`,id:`UR`},{name:`Uzbek`,id:`UZ`},{name:`Venda`,id:`VE`},{name:`Vietnamese`,id:`VI`},{name:`Volapük`,id:`VO`},{name:`Walloon`,id:`WA`},{name:`Welsh`,id:`CY`},{name:`Western Frisian`,id:`FY`},{name:`Wolof`,id:`WO`},{name:`Xhosa`,id:`XH`},{name:`Yiddish`,id:`YI`},{name:`Yoruba`,id:`YO`},{name:`Zhuang`,id:`ZA`},{name:`Zulu`,id:`ZU`},{name:`No language listed`,id:`NLL`}]}function d_(e){return e.some(e=>e.useFreeSlot&&(e.state===`InReview`||e.state===`Released`))}async function f_({Me:e,assets:t=[]}){return{userId:e.id,artist:{name:e.name,links:{spotify:e.links.spotify,appleMusic:null}},releaseTitle:null,releaseDate:new Date().toISOString(),genre:t.length===1?await W_(t[0]?.genre?.id):``,assets:t,picture:{isDefault:!0},upc:null,label:null,catalogNumber:null}}async function p_({revision:e,triggeredFrom:t,redirect:n,paywallProductAttribution:r}){let i=angular.element(document.body).injector().get(`$state`),a=angular.element(document.body).injector().get(`Me`),o=angular.element(document.body).injector().get(`Release`),s=[e],[c]=await R_(a.id,[e.id]),l=c?.hasFreeDistributionSlot||!1,u=c?.releases||[],d=u.find(e=>e.useFreeSlot===!0),{availableFeaturesSet:f}=Kn(a);if(!c?.hasFreeDistributionSlot&&!f.value.has(`distro`)){ai({productAttribution:r,productAttributionGroup:`artist_services`,useCheckoutModal:!0,onCheckoutSuccess:()=>p_({revision:e,triggeredFrom:t,redirect:n})});return}if(d&&!d_(u))return i.go(`distributionEdit`,{releaseId:d.releaseId});s=h_(s,{revision:e,hasFreeDistributionSlot:l}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroReleaseStart:e}){e({numTracks:s.length,triggeredFrom:t,type:l?`free_slot`:`paid`,grantedFrom:c?.freeDistributionSlotSource})});let p=await f_({Me:a,assets:s}),m=await o.create(p).$promise,h={preFillId:await g_({Release:o,Me:a}),releaseId:m.id};i.params.redirect?h.redirect=i.params.redirect:n&&(h.redirect=encodeURIComponent(JSON.stringify(n))),i.go(`distributionCreate`,h)}function m_({selectedTracks:e=[],addedTracks:t,release:n,availableFeaturesSet:r}){let i=angular.element(document.body).injector().get(`AppNotifications`),a=t.filter(e=>e.audioUrl),o=t.filter(e=>!e.audioUrl);return e=h_(e,{release:n}
31),t=a.concat(e,o),t.forEach(e=>{e.hasBeenReleasedBefore||=!1,e.revision||={id:e.audioId,mixdown:{duration:e.duration,file:e.audioUrl,id:e.audioId},song:{id:e.audioId}},e.instrumentPerformers||=[],e.productionContributors||=[]}),t.length>1&&t.some(e=>e.hasFreeDistributionSlot)&&!r.value.has(`distro`)&&i.addNotification({classList:`warning`,title:`Free release no longer available`,content:`You added more than one track, this release will be paid`,autoclose:8e3}),t.length===1&&t[0].hasFreeDistributionSlot&&!r.value.has(`distro`)&&qi({numTracks:e.length,triggeredFrom:`distro_add_tracks_wizard`,type:`free_slot`,grantedFrom:t[0].freeDistributionSlotSource}),t}function h_(e,t={}){let{release:n=null,revision:r=null,hasFreeDistributionSlot:i=null}=t;return e.map(t=>({title:t.title||r?.song.name,copyrightYear:new Date(t.createdOn).getFullYear(),language:``,explicitContent:``,artists:n?[{...n.artist,type:`Primary`}]:null,contributors:[],isrc:null,publisher:null,rightsOrg:null,mechanicalOrg:null,genre:r?.genres[0],audioId:t.revision?.id||t.id,audioUrl:t.revision?.sample?.url||t.mixdown?.file,duration:t.revision?.sample?.duration||t.mixdown?.duration,hasFreeDistributionSlot:r?i:t.revision?.hasFreeDistributionSlot,freeDistributionSlotSource:e[0]?.revision?.freeDistributionSlotSource}))}async function g_({Release:e,Me:t}){try{return(await e.getList({userId:t.id,state:`Released`,limit:1}).$promise).data?.[0]?.id??null}catch(e){return angular.element(document.body).injector().get(`AppNotifications`).addNotification({title:e?.data?.message||`Something went wrong, please try again later`,autoclose:8e3,classList:`warning`})}}async function __({triggeredFrom:e,shouldRedirect:t=!1,shouldOpenExternalTab:n=!1,isRouteRedirect:r=!1,paywallProductAttribution:i=`distro`}){let a=angular.element(document.body).injector().get(`$state`),o=angular.element(document.body).injector().get(`Me`),s=angular.element(document.body).injector().get(`Release`),{availableFeaturesSet:c,getUserMembership:l}=Kn(o);if(await l(o.id),!c.value.has(`distro`)&&![`distro_dashboard`,`ai_artwork_gallery`,`services_dashboard`,`feed_as_shortcuts`].includes(e)){function a(){ai({productAttribution:i,productAttributionGroup:`artist_services`,useCheckoutModal:!0,onCheckoutSuccess:()=>__({triggeredFrom:e,shouldRedirect:t,shouldOpenExternalTab:n,isRouteRedirect:r})})}if(Yn.value)a();else{let e=re(Yn,()=>{Yn.value&&(e(),a())})}return}if(n){let t=a.href(`distributionCreateEmpty`,{triggeredFrom:e},{absolute:!0});window.open(t,`_blank`);return}let u=await f_({Me:o}),d=await s.create(u).$promise;import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroReleaseStart:t}){t({numTracks:0,triggeredFrom:e})});let f={preFillId:await g_({Release:s,Me:o}),releaseId:d.id,redirect:t?encodeURIComponent(JSON.stringify({name:a.current.name,params:a.current.name===`track`?{postId:a.params.id}:{}})):null};if(r){a.go(`distributionCreate`,f,{location:`replace`});return}a.go(`distributionCreate`,f)}function v_(e){return{Released:`You will lose all release data, remove the release from streaming services as well as stop receiving earnings`,InReview:`You will lose all release data as well as stop the review process`,Rejected:e.isEditable?`You will lose all release data. If you want to submit for review again, you can edit release and try again.`:`You will lose all your release data. To resubmit, create a new release for review.`}[e.state]||`You will lose all release data`}function y_(e){let t=e.map(e=>e.name||`${e.firstName} ${e.lastName}`);return t.length>0&&new Intl.ListFormat(`en`,{style:`narrow`,type:`conjunction`}).format(t)}function b_(e){let t=e.error;return!!(t?.name||t?.firstName||t?.lastName||t?.links?.spotify||t?.links?.appleMusic)}function x_({releaseId:e,onClose:t=()=>{},onPageDeleted:n=()=>{},onUpdateAcceptedCollaborators:r=()=>{},onUpdateState:i=()=>{}}){let a=J(()=>import(`./Bi6__R1u.js`));X(a,{releaseId:e,onPageDeleted:n,onUpdateAcceptedCollaborators:r,onUpdateState:i},{onClose:t})}function S_({link:e,onRedirect:t=()=>{},onClose:n=()=>{}}){let r=J(()=>import(`./wSxajf7V.js`));X(r,{link:e,class:`artist-services-usps-modal-root`,onRedirect:t},{onClose:n})}async function C_({revisionId:e,pageId:t,upc:n}){let r=angular.element(document.body).injector().get(`Revision`),i=angular.element(document.body).injector().get(`AppNotifications`),a=angular.element(document.body).injector().get(`$state`),o=angular.element(document.body).injector().get(`Me`);
31if(await ke(o,`distro_promote_website_ads_open`)!==`true`){S_({link:`https://zire.com/onboarding/review-release?upc=${n}&source=distro`,onRedirect:Yi});return}return ma({triggeredFrom:`release_info_page`}),r.get({id:e}).$promise.then(e=>{e.isPublic?a.go(`promoteWizard.promote`,{postId:e.postId,pageId:t,redirect:encodeURIComponent(JSON.stringify({name:a.current.name,params:a.params}))}):i.addNotification({title:`Oops! This is private`,content:`Make your track public and try again`,classList:`warning`,innerScope:{revision:e},action:`<button type="button" class="ds-button ds-button-color-primary ds-button-size-compact" 32 async-modal="https://www.bandlab.com/web-app/song/partials/_revision-publish-e889bd989.html" 33 async-modal-id="editRevisionModal" 34 async-modal-parse="{ revision: $parent.innerScope.revision }"><span class="ds-button-text">Publish</span></button>`,autoclose:8e3})}).catch(e=>{i.addNotification({title:e?.data?.message||`Something went wrong, please try again later`,classList:`warning`,autoclose:8e3})})}function w_({liveLinksData:e}){let t=J(()=>import(`./CVaDaRWf.js`));X(t,{liveLinksData:e})}function T_(e,t){return e.getFormOptions({userId:t}).$promise.then(function({coverArtStyles:e=[]}){return e.filter(e=>!e.deprecated&&e.url)})}function E_(e){let{after:t,limit:n=12,userId:r}=e,i=new URLSearchParams(We({after:t,limit:n}));return Un.get(`https://aws.bandlab.com/api/v1.3/users/${r}/distro/ai-covers`,{searchParams:i}).json()}async function D_({Release:e,userId:t,AppNotifications:n,hasRegeneratedAiCoverArt:r=!1,onRegenerate:i,onGenerate:a,onSelect:o}){let s=angular.element(document.body).injector().get(`Me`),{getUserMembership:c,availableFeaturesSet:l}=Kn(s);async function u(){return(await H_(t)).createAiCover.remaining}try{await c(t)}catch(e){n.addNotification({title:e?.data?.message||`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3});return}let d;try{d=await u()}catch(e){let t=await e.response?.json();n.addNotification({title:t?.message||`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3});return}let f;try{f=await T_(e,t)}catch(e){n.addNotification({title:e?.data?.message||`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3});return}if(l.value.has(`distro`)&&d<=0){n.addNotification({content:`Youâve reached your generation limit for now. Please try again later, or upload your own cover art to continue.`,classList:`alert`,autoclose:8e3});return}let p=J(()=>import(`./D95l2sWw.js`));X(p,{coverArtStyles:f,hasRegeneratedAiCoverArt:r,remainingGenerations:d,loadQuota:u,onRegenerate:i,onGenerate:a,onSelect:o})}function O_({hasRegeneratedAiCoverArt:e=!1,onSelect:t}){let n=J(()=>import(`./DFYsomQ9.js`));X(n,{hasRegeneratedAiCoverArt:e,onSelect:t})}async function k_({userId:e,releaseId:t,remainingGenerations:n,selectedCoverArtStyle:r,AppNotifications:i}){try{let i=(await Un.post(U_(e,t),{json:{style:r.id}}).json()).covers;if(!i.length)throw Error(`Something went wrong, please try again later`);return{artworks:i,remaining:n-1}}catch(e){let t=await e.response?.json();return i.addNotification({title:t?.message||`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3}),null}}async function A_({Release:e,userId:t,releaseId:n,selectedArtwork:r}){await Un.post(`${U_(t,n)}/${r.id}`);let i=await e.get({userId:t,releaseId:n}).$promise;return{data:i.picture||{id:r.id,...r.picture},res:{aiCoversGeneratedCount:i.aiCoversGeneratedCount,coverArtViolations:i.coverArtViolations||[],hasAiCover:i.hasAiCover}}}async function j_(e){let t=await fetch(e);if(!t.ok)throw Error(`Something went wrong, please try again later`);let n=await t.blob();xr(n)}function M_(e){e.pause(),e.getCurrentSong().id=``}function N_(e){let t=e.injector().get(`Me`),n=e.injector().get(`Release`),r=e.injector().get(`AppNotifications`);if(!t.isAnonymous())return e.injector().getAsync(`theRelease`).then(function(e){if(e.state===`InReview`)return`dashboard.distribution`;if(!e.isEditable)return{state:`dashboard.distribution.list`,params:{releaseId:e.releaseId}};if(e.state===`Rejected`){let r={userId:t.id,releaseId:e.releaseId,state:`Draft`};n.updateState(r)}}).catch(function(e){return r.addNotification({title:e?.data?.message||`Something went wrong, please try again later`,autoclose:8e3,classList:`warning`}),`dashboard.distribution`})}function P_(e,t){return Un.get(`https://www.bandlab.com/api/v1.3/users/${e}/distro/analytics?period=${t}`).json()}function F_(e){zi();let t=angular.element(document.body).injector().get(`$state`).href(`dashboard.pages`,{path:`revision`,subpath:`create`,innerSubpath:e,source:`distro`});window.open(t,`_blank`)}function I_(e,t){return Un.post(`https://aws.bandlab.com/api/v1.3/users/${e}/distro/releases/${t}
34/distribution-split-invitations/accept`).json()}function L_(e,t){return Un.post(`https://aws.bandlab.com/api/v1.3/users/${e}/distro/releases/${t}/distribution-split-invitations/decline`).json()}async function R_(e,t){let n=new URLSearchParams;n.set(`revisionIds`,t[0]);try{return(await Un.get(`https://www.bandlab.com/api/v1.3/users/${e}/distro/revisions`,{searchParams:n}).json()).data}catch{return[]}}async function z_(e,t,n){let r=`${t}Data`,i=Date.now(),a=(await Me(e,n)).payload?.resetIntervalDays??10,o=JSON.parse(Y.getItem(r))||{firstOpenedTime:i,numOfOpens:0};i-o.firstOpenedTime>a*24*60*60*1e3?o={firstOpenedTime:i,numOfOpens:1}:o.numOfOpens+=1,Y.setItem(r,JSON.stringify(o))}async function B_(e,t,n,r=2,i=1,a=10){let o=await Me(e,n);if(o.value!==`true`)return!1;r=o.payload?.attempts??r,i=o.payload?.intervalDays??i,a=o.payload?.resetIntervalDays??a;let s=`${t}Data`,c=JSON.parse(Y.getItem(s)||`{}`);if(!c.firstOpenedTime)return!0;let l=Date.now(),u=864e5,d=l-c.firstOpenedTime;return d>a*u||c.numOfOpens<r&&d>i*u}function V_(e){return e.releaseTitle=e.assets[0]?.title,e}function H_(e){return Un.get(`https://aws.bandlab.com/api/v1.3/users/${e}/distro/quotas`).json()}function U_(e,t){return`https://aws.bandlab.com/api/v1.3/users/${e}/distro/releases/${t}/ai-covers`}async function W_(e){let t=angular.element(document.body).injector(),n=await i_(t.get(`Release`),t.get(`Me`)),r=Object.fromEntries(n.map(e=>[e.id,e.name])),i={"dance-and-edm":`electronic`,"hip-hop":`hip_hop_rap`,house:`electronic`,metal:`rock`,"progressive-rock":`rock`,punk:`rock`,"r-n-b":`r_b_soul`,trap:`hip_hop_rap`,funk:`r_b_soul`,dancehall:`reggae`,"christian-and-gospel":`inspirational`,afro:`world`,"k-pop":`pop`,lofi:`electronic`};return r[e]?e:i[e]&&r[i[e]]?i[e]:``}function G_(e,{minWidth:t,minHeight:n,maxWidth:r,maxHeight:i,aspectRatio:a}={}){return new Promise((o,s)=>{if(!e.type.startsWith(`image/`))return s(Error(`File is not an image.`));let c=new Image;c.onload=()=>{let{width:e,height:l}=c,u=e/l;if(t&&e<t)return s(Error(`Width must be at least ${t}px`));if(n&&l<n)return s(Error(`Height must be at least ${n}px`));if(r&&e>r)return s(Error(`Width must be no more than ${r}px`));if(i&&l>i)return s(Error(`Height must be no more than ${i}px`));if(a&&Math.abs(u-a)>.01)return s(Error(`Aspect ratio must be approximately ${a.toFixed(2)} (got ${u.toFixed(2)})`));URL.revokeObjectURL(c.src),o({width:e,height:l,ratio:u})},c.onerror=()=>s(Error(`Unable to load image.`)),c.src=URL.createObjectURL(e)})}function K_(e){function t(e){return(e||``).trim().toLowerCase()}let n=t(e?.artist?.name),r={},i={Composer:[],Lyricist:[],InstrumentPerformer:[],ProductionContributor:[]};return(e?.assets||[]).forEach(e=>{(e.contributors||[]).forEach(t=>{if((t.type===`Composer`||t.type===`Lyricist`)&&(t.firstName||t.lastName)){let n={firstName:t.firstName||``,lastName:t.lastName||``};t.type===`Lyricist`&&(n.language=e.language,n.explicitContent=e.explicitContent),i[t.type].push(n)}}),(e.instrumentPerformers||[]).forEach(e=>{e.name&&i.InstrumentPerformer.push({name:e.name})}),(e.productionContributors||[]).forEach(e=>{e.name&&i.ProductionContributor.push({name:e.name})})}
34),Object.keys(i).forEach(e=>{let a=i[e];if(!a.length)return;let o=a.find(e=>t(e.name??`${e.firstName} ${e.lastName}`)===n)||a[0];r[e]=o}),r}function q_(e){return!(!e||!e.audioUrl||e.isDeleted||e.uploadError||e.pendingValidation||e.isValid===!1)}function J_(e,t){return t.language=e.language,t.explicitContent=e.explicitContent,t.artists=JSON.parse(JSON.stringify(e.artists)),t.contributors=JSON.parse(JSON.stringify(e.contributors)),t.instrumentPerformers=JSON.parse(JSON.stringify(e.instrumentPerformers)),t.productionContributors=JSON.parse(JSON.stringify(e.productionContributors)),t.error=null,t}var Y_=n({PAGES_THEME_DEFAULT_ID:()=>Lv,REGEX_URL_VIMEO:()=>Hv,REGEX_URL_YOUTUBE:()=>Vv,createUserPageBio:()=>vv,createUserPageBioLink:()=>xv,createUserPageEPK:()=>Kv,createUserPageRevision:()=>Dv,createUserPageRevisionLink:()=>Mv,deleteRevisionPage:()=>Ov,deleteUserPageBio:()=>yv,deleteUserPageBioLink:()=>Sv,deleteUserPageEPK:()=>qv,deleteUserPageRevisionLink:()=>Nv,dspOptions:()=>kv,getAllStatisticsFromDays:()=>zv,getIconByService:()=>Av,getPageStatisticsFromDays:()=>Bv,getPagesList:()=>gv,getPublicUserPageBio:()=>wv,getUserPageBio:()=>Cv,getUserPageEPK:()=>Jv,getUserPageRevision:()=>Pv,getUserPageRevisionList:()=>jv,isVideoUrlValid:()=>
34Gv,openContactsModal:()=>Zv,openVideoModal:()=>Qv,setPagePublicModal:()=>$v,themesData:()=>Rv,updateUserPageBio:()=>Tv,updateUserPageBioLink:()=>Ev,updateUserPageEPK:()=>Yv,updateUserPageRevision:()=>Fv,updateUserPageRevisionLink:()=>Iv,useDashboardEPK:()=>Xv,usePagesInUserProfile:()=>bv,usePagesList:()=>_v});const X_=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n)),Z_=J(()=>import(`./C3cNFZvQ.js`)),Q_=J(()=>import(`./eh5gzUWE.js`)),$_=J(()=>import(`./4CxnL1Ho.js`)),ev=J(()=>import(`./BwxWtBe3.js`).then(e=>e.n)),tv=J(()=>import(`./DI7c4GQH.js`)),nv=J(()=>import(`./DqWKghbV.js`).then(e=>e.n)),rv=J(()=>import(`./qGvxmyK3.js`)),iv=J(()=>import(`./ac2aco6a.js`).then(e=>e.n)),av=J(()=>import(`./Da3-pfaH.js`).then(e=>e.n)),ov=J(()=>import(`./DCwWHHNh.js`)),sv=J(()=>import(`./CMuV5t7T.js`)),cv=J(()=>import(`./B8kLH_S1.js`)),lv=J(()=>import(`./Bl84ojmq.js`).then(e=>e.n)),uv=J(()=>import(`./BiHWrcOq.js`)),dv=J(()=>import(`./C5EBWLG1.js`).then(e=>e.n)),fv=J(()=>import(`./BlpewjR9.js`)),pv=J(()=>import(`./i58-UPti.js`).then(e=>e.n)),mv=J(()=>import(`./Cj1TW1aJ.js`)),hv=J(()=>import(`./DfRpgI34.js`));function gv(e){return Un.get(`https://www.bandlab.com/api/v1.3/users/${e}/pages`).json()}const _v=To((e,t)=>{let n=O(),r=O(``),i=O(!0),a=O(!0),o=no();s(),c();function s(){gv(e.id).then(e=>{if(n.value=e.data,n.value){let e=n.value.filter(e=>e.type===`Bio`),t=n.value.filter(e=>e.type===`PressKit`);i.value=e.length>0,a.value=t.length>0}})}function c(){Cv(e.id).then(function(){i.value=!0}).catch(function(e){(e.response.status===404||e.response.status===429)&&(i.value=!1)})}function l(r,i=``){let a=n.value;return n.value&&(r===`Bio`?n.value=n.value.filter(e=>e.type!==`Bio`):n.value=n.value.filter(e=>e.id!==i||e.type===`Bio`)),r===`Revision`?Ov(e.id,i).then(function(){s()}).catch(async function(e){n.value=a;let r=await e.response.json();t.addNotification({title:r.message,classList:`alert`,autoclose:8e3})}):r===`Bio`?yv(e.id).then(function(){s()}).catch(async function(e){n.value=a;let r=await e.response.json();t.addNotification({title:r.message,classList:`alert`,autoclose:8e3})}):r===`PressKit`?qv(e.id,i).then(()=>{s()}).catch(async function(e){n.value=a;let r=await e.response.json();t.addNotification({title:r.message,classList:`alert`,autoclose:8e3})}):Promise.resolve()}function u(e,t=``){X(X_,{size:`small`,title:`Delete this page?`,subtitle:`You will lose all data`,actions:[{label:`Cancel`,color:`secondary`},{label:`Delete`,color:`destructive-primary`,onClick:()=>{l(e,t).then(()=>{o.push({name:`dashboard.pages.home`})})}}]})}return{deletePage:l,isBioPageCreated:i,hasEPKPages:a,openDeletePageModal:u,pagesList:n,refreshBioPageCheck:c,selectedPageTitle:r,updatePagesList:s}});function vv(e){return Un.post(`https://www.bandlab.com/api/v1.3/users/${e}/pages/bio`).json()}function yv(e){return Un.delete(`https://www.bandlab.com/api/v1.3/users/${e}/pages/bio`).json()}const bv=To(e=>{let t=O(null),n=O(null),r=O(!0);i();function i(){e.isAnonymous()?(t.value=!1,n.value=!0,r.value=!1):(r.value=!0,Cv(e.id).then(e=>{t.value=!0,n.value=!e.isPublic}).catch(function(e){(e.response.status===404||e.response.status===429)&&(t.value=!1)}).finally(()=>{r.value=!1}))}return{isBioPageCreated:t,isBioPagePrivated:n,isBioPageCheckLoading:r}});function xv(e,t){return Un.post(`https://www.bandlab.com/api/v1.3/users/${e}/pages/bio/links`,{json:t}).json()}function Sv(e,t){return Un.delete(`https://www.bandlab.com/api/v1.3/users/${e}/pages/bio/links/${t}`).json()}function Cv(e,t){return Un.get(`https://www.bandlab.com/api/v1.3/users/${e}/pages/bio`,{signal:t}).json()}function wv(e,t){return Un.get(`https://bnd.link/api/v1.3/users/${e}/pages/bio`,{signal:t}).json()}function Tv(e,t){return Un.patch(`https://www.bandlab.com/api/v1.3/users/${e}/pages/bio`,{json:t}).json()}function Ev(e,t,n){return Un.patch(`https://www.bandlab.com/api/v1.3/users/${e}/pages/bio/links/${t}`,{json:n}).json()}function Dv(e,t){return Un.post(`https://www.bandlab.com/api/v1.3/users/${e}/pages/revisions`,{json:{revisionId:t}}).json()}function Ov(e,t){return Un.delete(`https://www.bandlab.com/api/v1.3/users/${e}/pages/revisions/${t}`).json()}const kv=[{name:`Apple Music`,icon:tv,iconColored:nv},{name:`Spotify`,icon:uv,iconColored:dv},{name:`SoundCloud`,icon:cv,iconColored:lv},{name:`YouTube Music`,icon:mv,iconColored:hv},{name:`Pandora`,icon:ov,iconColored:sv},{name:`Deezer`,icon:rv,iconColored:iv},{name:`Tidal`,icon:fv,iconColored:pv},{name:`Amazon Music`,icon:$_,iconColored:ev},{name:`Others`,icon:av}];function Av(e,t=!1){if(!e)return av;let n=kv.find(t=>t.name===e);return t&&n?.iconColored?n.iconColored:n?n.icon:av}function jv(e,t){let n=new URL(`https://www.bandlab.com/api/v1.3/users/${e}/pages/revisions`),r=new URLSearchParams(We({revisionIds:t||``}));return Un.get(n.toString(),{searchParams:r}).json()}function Mv(e,t,n,r,i){return Un.post(`https://www.bandlab.com/api/v1.3/users/${e}/pages/revisions/${t}/links`,{json:{name:n,url:r,isEnabled:i}}).json()}function Nv(e,t,n){return Un.delete(`https://www.bandlab.com/api/v1.3/users/${e}/pages/revisions/${t}/links/${n}`).json()}function Pv(e,t,n){return Un.get(`https://www.bandlab.com/api/v1.3/users/${e}/pages/revisions/${t}`,{signal:n}).json()}function Fv(e,t,n){return Un.patch(`https://www.bandlab.com/api/v1.3/users/${e}/pages/revisions/${t}`,{json:n}).json()}function Iv(e,t,n,r){return Un.patch(`https://www.bandlab.com/api/v1.3/users/${e}/pages/revisions/${t}/links/${n}`,{json:r}).json()}const Lv=`light`,Rv=[{name:`Light`,id:`light`,icon:`https://www.bandlab.com/web-app/images/pages/theme-light-b501544bc7.svg`},{name:`Dark`,id:`dark`,icon:`https://www.bandlab.com/web-app/images/pages/theme-dark-45a2a4ad73.svg`}
34,{name:`Grapefruit`,id:`grapefruit`,icon:`https://www.bandlab.com/web-app/images/pages/theme-grapefruit-11365c8d53.svg`},{name:`Lines`,id:`lines`,icon:`https://www.bandlab.com/web-app/images/pages/theme-lines-9c6f970822.svg`},{name:`Green`,id:`green`,icon:`https://www.bandlab.com/web-app/images/pages/theme-green-90217e258f.svg`},{name:`Blue`,id:`blue`,icon:`https://www.bandlab.com/web-app/images/pages/theme-blue-a4cf60bb86.svg`},{name:`Red`,id:`red`,icon:`https://www.bandlab.com/web-app/images/pages/theme-red-67dc9abb43.svg`}];function zv(e,t){return Un.get(`https://www.bandlab.com/api/v1.3/users/${e}/pages/statistics?fromDays=${t}`).json()}function Bv(e,t,n){return Un.get(`https://www.bandlab.com/api/v1.3/users/${e}/pages/${t}/statistics?fromDays=${n}`).json()}const Vv=/(youtube\.com\/watch[?]v=|youtube\.com\/embed|youtu\.be)(\/)?([A-Za-z0-9._%-]+).*$/i,Hv=/vimeo\.com\/[a-z_/]*([0-9]{6,10})\/?/i;function Uv(e){return!!e.match(Vv)}function Wv(e){return!!e.replace(/#.+/,``).replace(/\?.+/,``).match(Hv)}function Gv(e){return e?!!(Uv(e)||Wv(e)):!1}function Kv(e,t){return Un.post(`https://www.bandlab.com/api/v1.3/users/${e}/pages/press-kits/${t}`).json()}function qv(e,t){return Un.delete(`https://www.bandlab.com/api/v1.3/users/${e}/pages/press-kits/${t}`).json()}function Jv(e,t,n){return Un.get(`https://www.bandlab.com/api/v1.3/users/${e}/pages/press-kits/${t}`,{signal:n}).json()}function Yv(e,t,n){return Un.patch(`https://www.bandlab.com/api/v1.3/users/${e}/pages/press-kits/${t}`,{json:n}).json()}const Xv=To(()=>{let e=angular.element(document.body).injector(),t=e.get(`AppNotifications`),n=e.get(`Me`),r=O(`Desktop`),i=O(),a=U(()=>i.value?i.value.name:null),o=O(!0),s=O(),c=O(!1),l=O(!1);function u(e,r=`pages`){l.value=!1,Jv(n.id,e).then(e=>{i.value=e,s.value=!0}).catch(async function(i){if(s.value=!1,i.name===`AbortError`)return;let a=await i.response.json();a.errorCode===404?Kv(n.id,e).then(()=>{import(`./DvQD5s06.js`).then(e=>e.t).then(function({logEPKCreate:e}){e({triggeredFrom:r})}),f(e)}).catch(()=>{t.addNotification({title:a.message,classList:`alert`,autoclose:8e3}),l.value=!0}):(t.addNotification({title:a.message,classList:`alert`,autoclose:8e3}),l.value=!0)})}function d(e){i.value&&(i.value.isPublic=e)}function f(e){l.value=!1,c.value=!0,Jv(n.id,e).then(e=>{i.value=e,s.value=!0}).catch(async function(e){if(s.value=!1,e.name===`AbortError`)return;let n=await e.response.json();n.errorCode!==404&&(t.addNotification({title:n.message,classList:`alert`,autoclose:8e3}),l.value=!0)}).finally(()=>{c.value=!1})}return{epkData:i,isEditMode:o,isEPKPageCreated:s,isEPKLoadingFailed:l,isRefreshingEPK:c,loadEPKPage:u,refreshEPKData:f,selectedEpkPageTitle:a,selectedPlatform:r,setEPKIsPublic:d}});function Zv(e,t){let{refreshEPKData:n}=Xv();X(Z_,{contactDetails:e,epkId:t,onRefreshData:()=>{n(t)}})}function Qv(e,t){let{refreshEPKData:n}=Xv();X(Q_,{videos:e,epkId:t,onRefreshData:()=>{n(t)}})}function $v(e,t){X(X_,{title:e?`Publish Page`:`Make Private`,subtitle:e?`Anyone with the link can view`:`By making a page private, your audience will no longer be able to access it`,size:`small`,actions:[{label:`Cancel`,color:`secondary`},{label:e?`Publish`:`Make Private`,color:e?`primary`:`destructive-primary`,onClick:function(){t(e)}}]})}function ey(e,{revision:t,triggeredFrom:n,redirect:r,paywallProductAttribution:i}){if(t_(e.get(`AppNotifications`),t))return p_({revision:t,triggeredFrom:n,redirect:r,paywallProductAttribution:i})}function ty(e,t){e.get(`$state`).go(`fanReachCreate`,{trackId:t})}async function ny(e,t){let n=e.get(`Song`),r=e.get(`Revision`),i=await n.get({id:t}).$promise;return await r.get({id:i.revision.id}).$promise}function ry(e,t){let n=e.get(`$state`),r=e.get(`AppNotifications`),i=e.get(`Me`);jv(i.id,t.id).then(e=>{if(e.data.length>0){let t=e.data[0];n.go(`dashboard.pages`,{path:`revision`,subpath:t.id,source:`track_page`})}else X(qa,{pageType:`Revision`}),Dv(i.id,t.id).then(e=>{Xn(qa),n.go(`dashboard.pages`,{path:`revision`,subpath:e.id,source:`track_page`})}).catch(async function(e){Xn(qa);let t=await e.response.json();r.addNotification({title:t.message,classList:`alert`,autoclose:8e3})})}).catch(async function(e){let t=await e.response.json();r.addNotification({title:t.message,classList:`alert`,autoclose:8e3})})}async function iy(e,t,n){Zg(e.get(`AppNotifications`),e.get(`Modal`),n||await ny(e,t.id))}function ay(e,t,n){let r=e.get(`$state`),i=n||zs[`${r.current.name}`];Ls(e,t,i)}function oy(e,t){let n=e.get(`$state`),r=n.current.name===`track.boost`,i=n.
34current.name.includes(`track.boost.history`);r?ay(e,t):i&&import(`./DXRvDXMG.js`).then(({default:n})=>{X(n,{postId:t.id,insightsOnly:!0,onSuccess:({triggeredFrom:n})=>ay(e,t,n)})})}function sy(e,t,n,r=`revision_page`){if(!cy(e,n,t))return;let i={boost:()=>ay(e,n.innerPost),distro:()=>ey(e,{revision:n.innerRevision,triggeredFrom:r,redirect:{name:`track`,params:{postId:n.innerPost.id}},paywallProductAttribution:`distro_revision_page`}),"fan-reach":()=>ty(e,n.innerPost.postCompositeId),"industry-connect":()=>dy(e,n.innerRevision),pages:()=>ry(e,n.innerRevision),"promote-it":()=>iy(e,n.project,n.innerRevision)}[t.item];return i&&!t.isLoading?i():t.link?window.location.href=t.link:null}function cy(e,t,n){let r=e.get(`Me`),i=[`boost`,`fan-reach`,`promote-it`].includes(n.item),a=[`distro`].includes(n.item);function o(t,n,r=null,i=null){e.get(`AppNotifications`).addNotification({title:t,content:n,innerScope:r,action:i,classList:`warning`,autoclose:8e3})}return a&&!uy(t.project,r)?o(`BandLab Distribution`,`Tracks must exceed 60 seconds, not be Fork tracks, and without collaborators.`):i&&!Kg(t.innerRevision)?o(`Oops! This is private`,`Make your track public and try again`,{revision:t.innerRevision},`<button type="button" class="ds-button ds-button-color-primary ds-button-size-compact" 35 async-modal="https://www.bandlab.com/web-app/song/partials/_revision-publish-e889bd989.html" 36 async-modal-id="editRevisionModal" 37 async-modal-parse="{ revision: $parent.innerScope.revision }"><span class="ds-button-text">Publish</span></button>`):!0}function ly(e,t){return e.filter(e=>!(t&&e.item===`distro`))}function uy(e,t){return e&&e.author.id===t.id&&e.counters.collaborators===0&&!e.isFork}function dy(e,t){let n=e.get(`$http`),r=e.get(`AppNotifications`),i=e.get(`Modal`),a=e.get(`Me`),{membership:o}=Kn(a);new i({id:`reachedReleaseLimitModal`,templateUrl:`https://www.bandlab.com/web-app/global/partials/_submit-industry-connect-modal-5f7e18d88.html`,onConfirm:function(){n.post(`https://industry-connect-revision.bandlab.workers.dev/`,{membership_plan:o.plan,revision_id:t.id,username:a.username}).then(function(){r.addNotification({title:`Industry Connect`,content:`Thanks for your submission. Weâll notify you if our partners express interest.`,classList:`success`,autoclose:8e3})}).catch(function(e){return e.status===409&&r.addNotification({title:`Industry Connect`,content:`This track is already in our database. Weâll notify you if our partners express interest.`,classList:`warning`,autoclose:8e3}),Promise.reject(e)})}}).show()}angular.module(`bandlab.artistservices`).directive(`artistServicesTrackPagePanel`,[`$injector`,`Me`,function(e,t){return{restrict:`E`,replace:!0,scope:{revisionTrackSong:`=`},link:function(n,r){let i=n.revisionTrackSong.project.value.bandId,a=h({availableServices:[],revisionTrackSong:n.revisionTrackSong});Me(t,`as_revision_page_list`).then(e=>{e.value===`true`&&e.payload.length?a.availableServices=ly(e.payload,i):a.availableServices=ly([{productIcon:_(J(()=>Promise.resolve().then(()=>mL))),item:`distro`,title:`Distribute`},{productIcon:_(J(()=>import(`./BYm49QES.js`).then(e=>e.n))),item:`boost`,title:`Boost`},{productIcon:_(J(()=>import(`./C9JlWVFH.js`).then(e=>e.n))),item:`promote-it`,title:`Promote`}],i)}),$(import(`./eLN8P2AR.js`),r[0],n,{$injector:e},a)}}}]).directive(`artistServicesFeedPanel`,[`$injector`,function(e){return{restrict:`E`,replace:!0,link:function(t,n){$(import(`./BivcHc0X.js`),n[0],t,{$injector:e,scope:t})}}}]),angular.module(`bandlab.artistservices`).controller(`ArtistServicesCtrl`,[`$injector`,`$scope`,`$state`,`Me`,`Revision`,`Song`,function(e,t,n,r,i,a){t.me=r,t.state=n,t.isSongEligibleForDistro=function(e){return!e.isFork&&e.canEdit&&e.collaborators.length<=1&&!e.bandId},t.goToDistributionCreate=async function({song:t,revision:n,triggeredFrom:r,redirect:i,isLoading:s,paywallProductAttribution:c}){s&&(s.value=!0);try{n||=await o((await a.get({id:t.id}).$promise).revision.id),n=await n,await ey(e,{revision:n,triggeredFrom:r,redirect:i,paywallProductAttribution:c})}finally{s&&(s.value=!1)}}
37,t.openBoostPostModal=function(t,n){ay(e,t,n)};async function o(e){return await i.get({id:e}).$promise}t.getRevisionById=o}]),angular.module(`bandlab.audio`,[]),angular.module(`bandlab.audio.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`mastering`,{url:`/mastering`,template:`<div id="vue"></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controller:[`$injector`,`$element`,`$scope`,`authService`,`Me`,function(e,t,n,r,i){function a({attribution:e,onCancelPaywallFlow:t,onConfirmMembership:n}){ai({productAttribution:e,productAttributionGroup:`mastering`,useCheckoutModal:!0,onCheckoutCancel:t,onCheckoutSuccess:n},{onClose:t})}$(import(`./DZboxCkX.js`),t[0].querySelector(`#vue`),n,{$injector:e,authService:r,Me:i},{openPaywall:a})}]}).state(`upload`,{url:`/upload`,redirectTo:function(){return bn?`quickUpload`:`mastering`}}).state(`quickUpload`,{url:`/quick-upload?remote`,params:{remote:{dynamic:!0}},templateUrl:`https://www.bandlab.com/web-app/audio/views/quick-upload-layout-21b2854fd.html`,resolve:{templates:[`$templateRequest`,`$q`,function(e,t){return t.all([e(`https://www.bandlab.com/web-app/audio/partials/_quick-upload-cover-be294509b.html`)]).catch(function(){})}]},controller:[`$scope`,`QuickUpload`,function(e,t){t.state={step:0,isForkable:!0},e.state=t.state,e.isMobile=bn,e.isTablet=hn,e.downloadUrl=ts(window.location.href)}]}).state(`quickUpload2`,{url:`/quick-upload/2`,templateUrl:`https://www.bandlab.com/web-app/audio/views/quick-upload-layout-21b2854fd.html`,redirectTo:function(e){if(!e.injector().get(`QuickUpload`).state.audioFile)return`quickUpload`},controller:[`$analytics`,`$q`,`$scope`,`AppNotifications`,`EditorLoader`,`EditorModel`,`FileHelper`,`QuickUpload`,`Revision`,`Sample`,function(e,t,n,r,i,a,o,s,c,l){n.isMobile=bn,n.state=s.state,n.state.revision=null,n.submit=function(a){let o=i.pushTask(`uploadMeta`),f={...n.state};return a.$setSubmitted(),t.all([u(f),l.upload({blob:f.audioFile,sampleId:f.sampleId,sampleType:`samples`})]).then(function(){let e=d(f);return c.save({revision:e}).$promise}).then(function(t){n.state.audioFile=null,n.state.revision=t,s.state.step=2,e.eventTrack(`Create Project`,{category:`Quick Upload`,label:f.pictureId?`Upload cover image`:`Ignore cover image`})}).catch(function(e){a.$setPristine(),i.flushQueue(),e?.data.errorCode!==202&&r.addNotification({title:Gr,content:dr,classList:`alert`})}).finally(function(){i.finishTask(o)})};function u(e){if(!e.imageFile)return;let t=Math.min(e.imageWidth,e.imageHeight),n=(e.imageWidth-t)/2,r=(e.imageHeight-t)/2;return o.upload(e.imageFile,`https://storage.bandlab.com/v1.3/images`,{params:{x:n,y:r,width:t,height:t}}).then(function({data:t}){e.pictureId=t.id})}function d({audioFile:e,duration:t,genres:n,description:r,name:i,pictureId:o,sampleId:s,isForkable:c}){let l=a.createTrack({name:e.name});return l.regions=[a.createRegion({endPosition:t,name:e.name,sampleId:s,trackId:l.id})],a.createRevision({description:r,genres:n,mastering:null,post:{state:`Public`},song:{isForkable:c,name:i||`New Project`,pictureId:o},tracks:[l]})}}]}).state(`song-starter`,{url:`/song-starter`,redirectTo:`songStarter`}).state(`songStarter`,{url:`/songstarter`,isCompatible:()=>ar(!0),template:`<div id="vue"></div>`,data:{forcedTheme:`dark`,hideNavBar:!0,skipOnboarding:!0},controller:[`$analytics`,`$element`,`$injector`,`$scope`,`$state`,`appActions`,`authService`,`AppNotifications`,`EditorHelper`,`Me`,`Revision`,`RevisionImporter`,function(e,t,n,r,i,a,o,s,c,l,u,d){$(import(`./X8ANsQ5J.js`),t[0].querySelector(`#vue`),r,{$analytics:e,$injector:n,authService:o,AppNotifications:s,Me:l,EditorHelper:c,Revision:u,RevisionImporter:d,$scope:r,$state:i},{}),r.openSignUpDialog=function(){a.checkAllowed(`useSongStarter`,{toState:`songStarter`},{description:`Sign up for free to get unlimited downloads. No limits, no paywalls.`})}}]}).state(`effectPresetSharedKey`,{url:`/effect-presets/:linkToken`,resolve:{thePreset:[`$transition$`,`EffectsPreset`,function(e,t){let{linkToken:n}=e.params();return t.getSharedPreset(n)}]},redirectTo:function(e){if(!e.params().linkToken)return{state:`404`}},template:`<div id="vue" class="shared-preset-wrapper"></div>`,controller:[`$injector`,`$scope`,`$state`,`$element`,`appActions`,`thePreset`,function(e,t,n,r,i,a){$(import(`./Bn6gIARQ.js`),r[0].querySelector(`#vue`),t,{$injector:e,$state:n,appActions:i}
37,{preset:a})}]})}]);const fy=`trackInstrumentCache`,py=[{label:`Chromatic`,type:`scale`,tonal:`chromatic`},{label:`Major Scale`,type:`scale`,tonal:`major`},{label:`Minor Scale`,type:`scale`,tonal:`minor`},{label:`Major pentatonic`,type:`scale`,tonal:`major pentatonic`},{label:`Minor pentatonic`,type:`scale`,tonal:`minor pentatonic`}],my=[{label:`C`},{label:`Câ¯`,tonal:`C#`},{label:`Dâ`,tonal:`Db`},{label:`D`},{label:`Dâ¯`,tonal:`D#`},{label:`Eâ`,tonal:`Eb`},{label:`E`},{label:`F`},{label:`Fâ¯`,tonal:`F#`},{label:`Gâ`,tonal:`Gb`},{label:`G`},{label:`Aâ`,tonal:`Ab`},{label:`A`},{label:`Bâ`,tonal:`Bb`},{label:`B`}],hy=`keyboard`,gy=`smart-keys`,_y=O(``),vy=O(``),yy=O(hy),by=O({}),xy=O([]),Sy=U(()=>{if(!_y.value)return{key:my[0],view:py[0]};let[e=``,t=``]=_y.value.split(` `);return{key:{label:e,tonal:e.includes(`â¯`)||e.includes(`â`)?e.replace(/â¯/g,`#`).replace(/â/g,`b`):null},view:py.find(e=>e.label.toLowerCase().includes(t))||py[0]}}),Cy=O(Ey());re(Cy,()=>{let e=Array.from(Cy.value).slice(0,100);Y.setItem(fy,JSON.stringify(e))});const wy=U({get:()=>Cy.value.has(vy.value)?Cy.value.get(vy.value)[0]||my[0]:Sy.value.key,set:e=>{Oy(vy.value,[e,Ty.value])}}),Ty=U({get:()=>Cy.value.has(vy.value)?Cy.value.get(vy.value)[1]||py[0]:Sy.value.view,set:e=>{Oy(vy.value,[wy.value,e])}});function Ey(){let e=Y.getItem(fy);return new Map(e?Array.from(JSON.parse(e)):[])}function Dy(e){if(Cy.value.has(e)){let[t,n]=Cy.value.get(e);return[t||my[0],n||py[0]]}return[Sy.value.key,Sy.value.view]}function Oy(e,t){let n=new Map(Cy.value);n.delete(e),n.set(e,t),Cy.value=n}const ky=h({showPitch:!1,octave:3});function Ay(){ky.showPitch=!1,ky.octave=3}const jy=[{slug:`kick`,name:`Kick`,midi:36,icon:`kick`},{slug:`snareStick`,name:`Snare Edge`,midi:37,icon:`rim`},{slug:`snare`,name:`Snare`,midi:38,icon:`snare`},{slug:`clap`,name:`Clap`,midi:39,icon:`clap`},{slug:`electricSnare`,name:`Electric Snare`,midi:40,icon:`snare-electric`},{slug:`tomFloor`,name:`Floor Tom`,midi:41,icon:`low-tom-3`},{slug:`tomFloor`,name:`Floor Tom`,midi:43,icon:`low-tom-4`},{slug:`tomMid`,name:`Mid Tom`,midi:45,icon:`mid-tom-3`},{slug:`tomMid`,name:`Mid Tom`,midi:47,icon:`mid-tom-4`},{slug:`tomHigh`,name:`High Tom`,midi:48,icon:`hi-tom-4`},{slug:`tomHigh`,name:`High Tom`,midi:50,icon:`hi-tom-3`},{slug:`hhClosed`,name:`Closed Hi-Hat`,midi:42,icon:`hi-hat-closed`},{slug:`hhSemi`,name:`Pedal Hi-Hat`,midi:44,icon:`hi-hat-semi-opened`},{slug:`hhOpen`,name:`Open Hi-Hat`,midi:46,icon:`hi-hat-open`},{slug:`crash`,name:`Crash Cymbal`,midi:49,icon:`cymbal-crash`},{slug:`rideCymbal`,name:`Ride Cymbal`,midi:51,icon:`cymbal-ride`},{slug:`rideBell`,name:`Ride Bell`,midi:53,icon:`cymbal-ride-bell`},{slug:`cowbell`,name:`Cowbell`,midi:56,icon:`cowbell`}],My=[`KeyA`,`KeyW`,`KeyS`,`KeyE`,`KeyD`,`KeyF`,`KeyT`,`KeyG`,`KeyY`,`KeyH`,`KeyU`,`KeyJ`,`KeyK`,`KeyO`,`KeyL`,`KeyP`,`Semicolon`,`Quote`],Ny=`KeyZ.KeyS.KeyX.KeyD.KeyC.KeyV.KeyG.KeyB.KeyH.KeyN.KeyJ.KeyM.Comma.KeyL.Period.Digit1.KeyQ.KeyW.Digit3.KeyE.Digit4.KeyR.Digit5.KeyT.KeyY.Digit7.KeyU.Digit8.KeyI.KeyO.Digit0.KeyP`.split(`.`),Py={ShiftRight:`sustain`,ShiftLeft:`sustain`},Fy={KeyX:200,KeyZ:300,...Py},Iy={Plus:200,Equal:200,Minus:300,...Py},Ly=[`KeyA`,`KeyS`,`KeyD`,`KeyF`,`KeyG`,`KeyH`,`KeyJ`,`KeyK`,`KeyL`,`Semicolon`,`Quote`],Ry=[{midi:48,shortcut:`4`,code:`Digit4`,index:12},{midi:49,shortcut:`5`,code:`Digit5`,index:13},{midi:50,shortcut:`6`,code:`Digit6`,index:14},{midi:51,shortcut:`7`,code:`Digit7`,index:15},{midi:44,shortcut:`R`,code:`KeyR`,index:8},{midi:45,shortcut:`T`,code:`KeyT`,index:9},{midi:46,shortcut:`Y`,code:`KeyY`,index:10},{midi:47,shortcut:`U`,code:`KeyU`,index:11},{midi:40,shortcut:`F`,code:`KeyF`,index:4},{midi:41,shortcut:`G`,code:`KeyG`,index:5},{midi:42,shortcut:`H`,code:`KeyH`,index:6},{midi:43,shortcut:`J`,code:`KeyJ`,index:7},{midi:36,shortcut:`V`,code:`KeyV`,index:0},{midi:37,shortcut:`B`,code:`KeyB`,index:1},{midi:38,shortcut:`N`,code:`KeyN`,index:2},{midi:39,shortcut:`M`,code:`KeyM`,index:3}],zy=Ry.slice().sort(function(e,t){return e.midi-t.midi}),By=`pads`,Vy=`drum-machine`;function Hy(){return jy.reduce((e,t)=>
37(e[t.midi]=t,e),{})}const Uy=[{slug:`tomHigh`,midi:50,code:`KeyQ`},{slug:`tomHigh`,midi:48,code:`KeyW`},{slug:`tomMid`,midi:47,code:`KeyE`},{slug:`tomMid`,midi:45,code:`KeyR`},{slug:`tomFloor`,midi:43,code:`KeyU`},{slug:`tomFloor`,midi:41,code:`KeyI`},{slug:`crash`,midi:49,code:`KeyO`},{slug:`rideBell`,midi:53,code:`KeyP`},{slug:`hhClosed`,midi:42,code:`KeyJ`},{slug:`hhSemi`,midi:44,code:`KeyK`},{slug:`hhOpen`,midi:46,code:`KeyL`},{slug:`rideCymbal`,midi:51,code:`Semicolon`},{slug:`kick`,midi:36,code:`KeyA`},{slug:`snareStick`,midi:37,code:`KeyS`},{slug:`cowbell`,midi:56,code:`KeyD`},{slug:`snare`,midi:38,code:`KeyF`}],Wy=[{midi:40,slug:`electricSnare`,code:`KeyW`},{midi:48,slug:`tomHigh`,code:`KeyE`},{midi:45,slug:`tomMid`,code:`KeyI`},{midi:41,slug:`tomFloor`,code:`KeyO`},{midi:42,slug:`hhClosed`,code:`KeyJ`},{midi:46,slug:`hhOpen`,code:`KeyK`},{midi:49,slug:`crash`,code:`KeyL`},{midi:56,slug:`cowbell`,code:`Semicolon`},{midi:36,slug:`kick`,code:`KeyA`},{midi:37,slug:`snareStick`,code:`KeyS`},{midi:39,slug:`clap`,code:`KeyD`},{midi:38,slug:`snare`,code:`KeyF`}],Gy=[50,47,43];function Ky(){let e=Hy();return Uy.map(t=>{let n=e[t.midi];return tt(n)?{...n,code:t.code,shortcut:eb(t.code)}:null}).filter(tt)}function qy(){return jy.reduce(function(e,t){return e[t.midi]=t,e},{})}function Jy(e){let t=Hy();return Zy(e).reduce((e,n)=>{let r=t[n.midi];return tt(r)&&(e[n.midi]={code:n.code,shortcut:eb(n.code),...r}),e},{})}function Yy(){let e=Hy();return Wy.map(t=>{let n=e[t.midi];return tt(n)?{...n,code:t.code,shortcut:eb(t.code)}:null}).filter(tt)}function Xy(e){return Zy(e).reduce((e,t)=>(e[t.code]=t.midi,e),{})}function Zy(e){return(e===`drum-kit`?Uy:Wy).filter(e=>!Gy.includes(e.midi))}function Qy(){return Ky().reduce(function(e,t){return e[t.code]=t.midi,e},{})}function $y(){return Yy().reduce((e,t)=>(e[t.code]=t.midi,e),{})}function eb(e=``){return{Comma:`,`,Period:`.`,Semicolon:`;`,Slash:`/`,Quote:`'`}[e]||e.replace(/Key|Digit/,``)}function tb(e,t){switch(e){case`creators-kit`:return nb();case`piano`:return rb(t);case By:return $y();case Vy:return{};default:return Qy()}}function nb(){return Ry.reduce(function(e,t){return e[t.code]=t.midi,e},{})}function rb(e){let t=Z.IS_LEGACY_KEYBOARD?Ny:My,n=e*12,r=t.reduce(function(e,t){return e[t]=n++,e},{});return Z.IS_LEGACY_KEYBOARD?{...r,...Iy,...tt(r.Digit1)&&{SemiColon:r.Digit1},...tt(r.KeyQ)&&{Slash:r.KeyQ}}:{...r,...Fy}}function ib(e=[]){let t={},n=ob();for(let r=0;r<n.length;r++){let i=e[r];tt(i)&&(t[n[r]]=i)}return Z.IS_LEGACY_KEYBOARD?{...t,...Iy,...tt(t.Digit1)&&{SemiColon:t.Digit1},...tt(t.KeyQ)&&{Slash:t.KeyQ}}:{...t,...Fy}}function ab(e=[]){let t={},n=ob();for(let r=0;r<n.length;r++){let i=e[r],a=n[r];tt(i)&&(t[i]=eb(a))}return t}function ob(){return yy.value===`smart-keys`?Ly:Z.IS_LEGACY_KEYBOARD?Ny:My}function sb(e,t){let n=[];for(;t--;n[t]=t+e);return n}function cb(e,t){let n=[];for(;t--;n[t]=e-t);return n}function lb(e,t){return e<t?sb(e,t-e+1):cb(e,e-t+1)}function ub(e,t){let n=t.length,r=(e%n+n)%n;return t.slice(r,n).concat(t.slice(0,r))}function db(e){return e.filter(e=>e===0||e)}var fb={empty:!0,name:``,setNum:0,chroma:`000000000000`,normalized:`000000000000`,intervals:[]},pb=e=>Number(e).toString(2).padStart(12,`0`),mb=e=>parseInt(e,2),hb=/^[01]{12}$/;function gb(e){return hb.test(e)}var _b=e=>typeof e==`number`&&e>=0&&e<=4095,vb=e=>e&&gb(e.chroma),yb={[fb.chroma]:fb};function bb(e){let t=gb(e)?e:_b(e)?pb(e):Array.isArray(e)?kb(e):vb(e)?e.chroma:fb.chroma;return yb[t]=yb[t]||Ob(t)}var xb=e=>bb(e).chroma,Sb=[`1P`,`2m`,`2M`,`3m`,`3M`,`4P`,`5d`,`5P`,`6m`,`6M`,`7m`,`7M`];function Cb(e){let t=[];for(let n=0;n<12;n++)e.charAt(n)===`1`&&t.push(Sb[n]);return t}function wb(e,t=!0){let n=bb(e).chroma.split(``);return db(n.map((e,r)=>{let i=ub(r,n);return t&&i[0]===`0`?null:i.join(``)}))}function Tb(e){let t=bb(e).setNum;return e=>{let n=bb(e).setNum;return t&&t!==n&&(n&t)===n}}function Eb(e){let t=bb(e).setNum;return e=>{let n=bb(e).setNum;return t&&t!==n&&(n|t)===n}}function Db(e){let t=e.split(``);return t.map((e,n)=>ub(n,t).join(``))}function Ob(e){let t=mb(e),n=Db(e).map(mb).filter(e=>e>=2048).sort()[0];return{empty:!1,name:``,setNum:t,chroma:e,normalized:pb(n),intervals:Cb(e)}}function kb(e){if(e.length===0)return fb.chroma;let t,n=[0,0,0,0,0,0,0,0,0,0,0,0];for(let r=0;r<e.length;r++)t=Ec(e[r]),t.empty&&(t=dc(e[r])),t.empty||(n[t.chroma]=1);return n.join(``)}var Ab=[[`1P 3M 5P`,`major`,`M ^ maj`],[`1P 3M 5P 7M`,`major seventh`,`maj7 Î ma7 M7 Maj7 ^7`],[`1P 3M 5P 7M 9M`,`major ninth`,`maj9 Î9 ^9`],[`1P 3M 5P 7M 9M 13M`,`major thirteenth`,`maj13 Maj13 ^13`],[`1P 3M 5P 6M`,`sixth`,`6 add6 add13 M6`],[`1P 3M 5P 6M 9M`,`sixth added ninth`,`6a
37dd9 6/9 69 M69`],[`1P 3M 6m 7M`,`major seventh flat sixth`,`M7b6 ^7b6`],[`1P 3M 5P 7M 11A`,`major seventh sharp eleventh`,`maj#4 Î#4 Î#11 M7#11 ^7#11 maj7#11`],[`1P 3m 5P`,`minor`,`m min -`],[`1P 3m 5P 7m`,`minor seventh`,`m7 min7 mi7 -7`],[`1P 3m 5P 7M`,`minor/major seventh`,`m/ma7 m/maj7 mM7 mMaj7 m/M7 -Î7 mÎ -^7 -maj7`],[`1P 3m 5P 6M`,`minor sixth`,`m6 -6`],[`1P 3m 5P 7m 9M`,`minor ninth`,`m9 -9`],[`1P 3m 5P 7M 9M`,`minor/major ninth`,`mM9 mMaj9 -^9`],[`1P 3m 5P 7m 9M 11P`,`minor eleventh`,`m11 -11`],[`1P 3m 5P 7m 9M 13M`,`minor thirteenth`,`m13 -13`],[`1P 3m 5d`,`diminished`,`dim ° o`],[`1P 3m 5d 7d`,`diminished seventh`,`dim7 °7 o7`],[`1P 3m 5d 7m`,`half-diminished`,`m7b5 ø -7b5 h7 h`],[`1P 3M 5P 7m`,`dominant seventh`,`7 dom`],[`1P 3M 5P 7m 9M`,`dominant ninth`,`9`],[`1P 3M 5P 7m 9M 13M`,`dominant thirteenth`,`13`],[`1P 3M 5P 7m 11A`,`lydian dominant seventh`,`7#11 7#4`],[`1P 3M 5P 7m 9m`,`dominant flat ninth`,`7b9`],[`1P 3M 5P 7m 9A`,`dominant sharp ninth`,`7#9`],[`1P 3M 7m 9m`,`altered`,`alt7`],[`1P 4P 5P`,`suspended fourth`,`sus4 sus`],[`1P 2M 5P`,`suspended second`,`sus2`],[`1P 4P 5P 7m`,`suspended fourth seventh`,`7sus4 7sus`],[`1P 5P 7m 9M 11P`,`eleventh`,`11`],[`1P 4P 5P 7m 9m`,`suspended fourth flat ninth`,`b9sus phryg 7b9sus 7b9sus4`],[`1P 5P`,`fifth`,`5`],[`1P 3M 5A`,`augmented`,`aug + +5 ^#5`],[`1P 3m 5A`,`minor augmented`,`m#5 -#5 m+`],[`1P 3M 5A 7M`,`augmented seventh`,`maj7#5 maj7+5 +maj7 ^7#5`],[`1P 3M 5P 7M 9M 11A`,`major sharp eleventh (lydian)`,`maj9#11 Î9#11 ^9#11`],[`1P 2M 4P 5P`,``,`sus24 sus4add9`],[`1P 3M 5A 7M 9M`,``,`maj9#5 Maj9#5`],[`1P 3M 5A 7m`,``,`7#5 +7 7+ 7aug aug7`],[`1P 3M 5A 7m 9A`,``,`7#5#9 7#9#5 7alt`],[`1P 3M 5A 7m 9M`,``,`9#5 9+`],[`1P 3M 5A 7m 9M 11A`,``,`9#5#11`],[`1P 3M 5A 7m 9m`,``,`7#5b9 7b9#5`],[`1P 3M 5A 7m 9m 11A`,``,`7#5b9#11`],[`1P 3M 5A 9A`,``,`+add#9`],[`1P 3M 5A 9M`,``,`M#5add9 +add9`],[`1P 3M 5P 6M 11A`,``,`M6#11 M6b5 6#11 6b5`],[`1P 3M 5P 6M 7M 9M`,``,`M7add13`],[`1P 3M 5P 6M 9M 11A`,``,`69#11`],[`1P 3m 5P 6M 9M`,``,`m69 -69`],[`1P 3M 5P 6m 7m`,``,`7b6`],[`1P 3M 5P 7M 9A 11A`,``,`maj7#9#11`],[`1P 3M 5P 7M 9M 11A 13M`,``,`M13#11 maj13#11 M13+4 M13#4`],[`1P 3M 5P 7M 9m`,``,`M7b9`],[`1P 3M 5P 7m 11A 13m`,``,`7#11b13 7b5b13`],[`1P 3M 5P 7m 13M`,``,`7add6 67 7add13`],[`1P 3M 5P 7m 9A 11A`,``,`7#9#11 7b5#9 7#9b5`],[`1P 3M 5P 7m 9A 11A 13M`,``,`13#9#11`],[`1P 3M 5P 7m 9A 11A 13m`,``,`7#9#11b13`],[`1P 3M 5P 7m 9A 13M`,``,`13#9`],[`1P 3M 5P 7m 9A 13m`,``,`7#9b13`],[`1P 3M 5P 7m 9M 11A`,``,`9#11 9+4 9#4`],[`1P 3M 5P 7m 9M 11A 13M`,``,`13#11 13+4 13#4`],[`1P 3M 5P 7m 9M 11A 13m`,``,`9#11b13 9b5b13`],[`1P 3M 5P 7m 9m 11A`,``,`7b9#11 7b5b9 7b9b5`],[`1P 3M 5P 7m 9m 11A 13M`,``,`13b9#11`],[`1P 3M 5P 7m 9m 11A 13m`,``,`7b9b13#11 7b9#11b13 7b5b9b13`],[`1P 3M 5P 7m 9m 13M`,``,`13b9`],[`1P 3M 5P 7m 9m 13m`,``,`7b9b13`],[`1P 3M 5P 7m 9m 9A`,``,`7b9#9`],[`1P 3M 5P 9M`,``,`Madd9 2 add9 add2`],[`1P 3M 5P 9m`,``,`Maddb9`],[`1P 3M 5d`,``,`Mb5`],[`1P 3M 5d 6M 7m 9M`,``,`13b5`],[`1P 3M 5d 7M`,``,`M7b5`],[`1P 3M 5d 7M 9M`,``,`M9b5`],[`1P 3M 5d 7m`,``,`7b5`],[`1P 3M 5d 7m 9M`,``,`9b5`],[`1P 3M 7m`,``,`7no5`],[`1P 3M 7m 13m`,``,`7b13`],[`1P 3M 7m 9M`,``,`9no5`],[`1P 3M 7m 9M 13M`,``,`13no5`],[`1P 3M 7m 9M 13m`,``,`9b13`],[`1P 3m 4P 5P`,``,`madd4`],[`1P 3m 5P 6m 7M`,``,`mMaj7b6`],[`1P 3m 5P 6m 7M 9M`,``,`mMaj9b6`],[`1P 3m 5P 7m 11P`,``,`m7add11 m7add4`],[`1P 3m 5P 9M`,``,`madd9`],[`1P 3m 5d 6M 7M`,``,`o7M7`],[`1P 3m 5d 7M`,``,`oM7`],[`1P 3m 6m 7M`,``,`mb6M7`],[`1P 3m 6m 7m`,``,`m7#5`],[`1P 3m 6m 7m 9M`,``,`m9#5`],[`1P 3m 5A 7m 9M 11P`,``,`m11A`],[`1P 3m 6m 9m`,``,`mb6b9`],[`1P 2M 3m 5d 7m`,``,`m9b5`],[`1P 4P 5A 7M`,``,`M7#5sus4`],[`1P 4P 5A 7M 9M`,``,`M9#5sus4`],[`1P 4P 5A 7m`,``,`7#5sus4`],[`1P 4P 5P 7M`,``,`M7sus4`],[`1P 4P 5P 7M 9M`,``,`M9sus4`],[`1P 4P 5P 7m 9M`,``,`9sus4 9sus`],[`1P 4P 5P 7m 9M 13M`,``,`13sus4 13sus`],[`1P 4P 5P 7m 9m 13m`,``,`7sus4b9b13 7b9b13sus4`],[`1P 4P 7m 10m`,``,`4 quartal`],[`1P 5P 7m 9m 11P`,``,`11b9`]];({...fb});var jb=[],Mb={};function Nb(){return jb.slice()}function Pb(e,t,n){let r=Ib(e),i={...bb(e),name:n||``,quality:r,intervals:e,aliases:t};jb.push(i),i.name&&(Mb[i.name]=i),Mb[i.setNum]=i,Mb[i.chroma]=i,i.aliases.forEac
37h(e=>Fb(i,e))}function Fb(e,t){Mb[t]=e}function Ib(e){let t=t=>e.indexOf(t)!==-1;return t(`5A`)?`Augmented`:t(`3M`)?`Major`:t(`5d`)?`Diminished`:t(`3m`)?`Minor`:`Unknown`}Ab.forEach(([e,t,n])=>Pb(e.split(` `),n.split(` `),t)),jb.sort((e,t)=>e.setNum-t.setNum);var Lb=[[`1P 2M 3M 5P 6M`,`major pentatonic`,`pentatonic`],[`1P 2M 3M 4P 5P 6M 7M`,`major`,`ionian`],[`1P 2M 3m 4P 5P 6m 7m`,`minor`,`aeolian`],[`1P 2M 3m 3M 5P 6M`,`major blues`],[`1P 3m 4P 5d 5P 7m`,`minor blues`,`blues`],[`1P 2M 3m 4P 5P 6M 7M`,`melodic minor`],[`1P 2M 3m 4P 5P 6m 7M`,`harmonic minor`],[`1P 2M 3M 4P 5P 6M 7m 7M`,`bebop`],[`1P 2M 3m 4P 5d 6m 6M 7M`,`diminished`,`whole-half diminished`],[`1P 2M 3m 4P 5P 6M 7m`,`dorian`],[`1P 2M 3M 4A 5P 6M 7M`,`lydian`],[`1P 2M 3M 4P 5P 6M 7m`,`mixolydian`,`dominant`],[`1P 2m 3m 4P 5P 6m 7m`,`phrygian`],[`1P 2m 3m 4P 5d 6m 7m`,`locrian`],[`1P 3M 4P 5P 7M`,`ionian pentatonic`],[`1P 3M 4P 5P 7m`,`mixolydian pentatonic`,`indian`],[`1P 2M 4P 5P 6M`,`ritusen`],[`1P 2M 4P 5P 7m`,`egyptian`],[`1P 3M 4P 5d 7m`,`neapolitan major pentatonic`],[`1P 3m 4P 5P 6m`,`vietnamese 1`],[`1P 2m 3m 5P 6m`,`pelog`],[`1P 2m 4P 5P 6m`,`kumoijoshi`],[`1P 2M 3m 5P 6m`,`hirajoshi`],[`1P 2m 4P 5d 7m`,`iwato`],[`1P 2m 4P 5P 7m`,`in-sen`],[`1P 3M 4A 5P 7M`,`lydian pentatonic`,`chinese`],[`1P 3m 4P 6m 7m`,`malkos raga`],[`1P 3m 4P 5d 7m`,`locrian pentatonic`,`minor seven flat five pentatonic`],[`1P 3m 4P 5P 7m`,`minor pentatonic`,`vietnamese 2`],[`1P 3m 4P 5P 6M`,`minor six pentatonic`],[`1P 2M 3m 5P 6M`,`flat three pentatonic`,`kumoi`],[`1P 2M 3M 5P 6m`,`flat six pentatonic`],[`1P 2m 3M 5P 6M`,`scriabin`],[`1P 3M 5d 6m 7m`,`whole tone pentatonic`],[`1P 3M 4A 5A 7M`,`lydian #5p pentatonic`],[`1P 3M 4A 5P 7m`,`lydian dominant pentatonic`],[`1P 3m 4P 5P 7M`,`minor #7m pentatonic`],[`1P 3m 4d 5d 7m`,`super locrian pentatonic`],[`1P 2M 3m 4P 5P 7M`,`minor hexatonic`],[`1P 2A 3M 5P 5A 7M`,`augmented`],[`1P 2M 4P 5P 6M 7m`,`piongio`],[`1P 2m 3M 4A 6M 7m`,`prometheus neapolitan`],[`1P 2M 3M 4A 6M 7m`,`prometheus`],[`1P 2m 3M 5d 6m 7m`,`mystery #1`],[`1P 2m 3M 4P 5A 6M`,`six tone symmetric`],[`1P 2M 3M 4A 5A 6A`,`whole tone`,`messiaen's mode #1`],[`1P 2m 4P 4A 5P 7M`,`messiaen's mode #5`],[`1P 2M 3M 4P 5d 6m 7m`,`locrian major`,`arabian`],[`1P 2m 3M 4A 5P 6m 7M`,`double harmonic lydian`],[`1P 2m 2A 3M 4A 6m 7m`,`altered`,`super locrian`,`diminished whole tone`,`pomeroy`],[`1P 2M 3m 4P 5d 6m 7m`,`locrian #2`,`half-diminished`,`aeolian b5`],[`1P 2M 3M 4P 5P 6m 7m`,`mixolydian b6`,`melodic minor fifth mode`,`hindu`],[`1P 2M 3M 4A 5P 6M 7m`,`lydian dominant`,`lydian b7`,`overtone`],[`1P 2M 3M 4A 5A 6M 7M`,`lydian augmented`],[`1P 2m 3m 4P 5P 6M 7m`,`dorian b2`,`phrygian #6`,`melodic minor second mode`],[`1P 2m 3m 4d 5d 6m 7d`,`ultralocrian`,`superlocrian bb7`,`superlocrian diminished`],[`1P 2m 3m 4P 5d 6M 7m`,`locrian 6`,`locrian natural 6`,`locrian sharp 6`],[`1P 2A 3M 4P 5P 5A 7M`,`augmented heptatonic`],[`1P 2M 3m 4A 5P 6M 7m`,`dorian #4`,`ukrainian dorian`,`romanian minor`,`altered dorian`],[`1P 2M 3m 4A 5P 6M 7M`,`lydian diminished`],[`1P 2M 3M 4A 5A 7m 7M`,`leading whole tone`],[`1P 2M 3M 4A 5P 6m 7m`,`lydian minor`],[`1P 2m 3M 4P 5P 6m 7m`,`phrygian dominant`,`spanish`,`phrygian major`],[`1P 2m 3m 4P 5P 6m 7M`,`balinese`],[`1P 2m 3m 4P 5P 6M 7M`,`neapolitan major`],[`1P 2M 3M 4P 5P 6m 7M`,`harmonic major`],[`1P 2m 3M 4P 5P 6m 7M`,`double harmonic major`,`gypsy`],[`1P 2M 3m 4A 5P 6m 7M`,`hungarian minor`],[`1P 2A 3M 4A 5P 6M 7m`,`hungarian major`],[`1P 2m 3M 4P 5d 6M 7m`,`oriental`],[`1P 2m 3m 3M 4A 5P 7m`,`flamenco`],[`1P 2m 3m 4A 5P 6m 7M`,`todi raga`],[`1P 2m 3M 4P 5d 6m 7M`,`persian`],[`1P 2m 3M 5d 6m 7m 7M`,`enigmatic`],[`1P 2M 3M 4P 5A 6M 7M`,`major augmented`,`major #5`,`ionian augmented`,`ionian #5`],[`1P 2A 3M 4A 5P 6M 7M`,`lydian #9`],[`1P 2m 2M 4P 4A 5P 6m 7M`,`messiaen's mode #4`],[`1P 2m 3M 4P 4A 5P 6m 7M`,`purvi raga`],[`1P 2m 3m 3M 4P 5P 6m 7m`,`spanish heptatonic`],[`1P 2M 3m 3M 4P 5P 6M 7m`,`bebop minor`],[`1P 2M 3M 4P 5P 5A 6M 7M`,`bebop major`],[`1P 2m 3m 4P 5d 5P 6m 7m`,`bebop locrian`],[`1P 2M 3m 4P 5P 6m 7m 7M`,`minor bebop`],[`1P 2M 3M 4P 5d 5P 6M 7M`,`ichikosucho`],[`1P 2M 3m 4P 5P 6m 6M 7M`,`minor six diminished`],[`1P 2m 3m 3M 4A 5P 6M 7m`,`half-whole diminished`,`dominant diminished`,`messiaen's mode #2`],[`1P 3m 3M 4P 5P 6M 7m 7M`,`kafi raga`],[`1P 2M 3M 4P 4A 5A 6A 7M`,`messiaen's mode #6`],[`
371P 2M 3m 3M 4P 5d 5P 6M 7m`,`composite blues`],[`1P 2M 3m 3M 4A 5P 6m 7m 7M`,`messiaen's mode #3`],[`1P 2m 2M 3m 4P 4A 5P 6m 6M 7M`,`messiaen's mode #7`],[`1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M`,`chromatic`]],Rb={...fb,intervals:[],aliases:[]},zb=[],Bb={};function Vb(){return zb.map(e=>e.name)}function Hb(e){return Bb[e]||Rb}function Ub(){return zb.slice()}function Wb(e,t,n=[]){let r={...bb(e),name:t,intervals:e,aliases:n};return zb.push(r),Bb[r.name]=r,Bb[r.setNum]=r,Bb[r.chroma]=r,r.aliases.forEach(e=>Gb(r,e)),r}function Gb(e,t){Bb[t]=e}Lb.forEach(([e,t,...n])=>Wb(e.split(` `),t,n));var Kb=n({default:()=>cx,degrees:()=>ox,detect:()=>Qb,extended:()=>ex,get:()=>Xb,modeNames:()=>rx,names:()=>Yb,rangeOf:()=>ax,reduced:()=>tx,scale:()=>Zb,scaleChords:()=>$b,scaleNotes:()=>nx,steps:()=>sx,tokenize:()=>Jb}),qb={empty:!0,name:``,type:``,tonic:null,setNum:NaN,chroma:``,normalized:``,aliases:[],notes:[],intervals:[]};function Jb(e){if(typeof e!=`string`)return[``,``];let t=e.indexOf(` `),n=Ec(e.substring(0,t));if(n.empty){let t=Ec(e);return t.empty?[``,e.toLowerCase()]:[t.name,``]}let r=e.substring(n.name.length+1).toLowerCase();return[n.name,r.length?r:``]}var Yb=Vb;function Xb(e){let t=Array.isArray(e)?e:Jb(e),n=Ec(t[0]).name,r=Hb(t[1]);if(r.empty)return qb;let i=r.name,a=n?r.intervals.map(e=>Cc(n,e)):[],o=n?n+` `+i:i;return{...r,name:o,type:i,tonic:n,notes:a}}var Zb=Xb;function Qb(e,t={}){let n=xb(e),r=Ec(t.tonic??e[0]??``),i=r.chroma;if(i===void 0)return[];let a=n.split(``);a[i]=`1`;let o=ub(i,a).join(``),s=Ub().find(e=>e.chroma===o),c=[];return s&&c.push(r.name+` `+s.name),t.match===`exact`||ex(o).forEach(e=>{c.push(r.name+` `+e)}),c}function $b(e){let t=Tb(Xb(e).chroma);return Nb().filter(e=>t(e.chroma)).map(e=>e.aliases[0])}function ex(e){let t=Eb(gb(e)?e:Xb(e).chroma);return Ub().filter(e=>t(e.chroma)).map(e=>e.name)}function tx(e){let t=Tb(Xb(e).chroma);return Ub().filter(e=>t(e.chroma)).map(e=>e.name)}function nx(e){let t=e.map(e=>Ec(e).pc).filter(e=>e),n=t[0],r=Dc(t);return ub(r.indexOf(n),r)}function rx(e){let t=Xb(e);if(t.empty)return[];let n=t.tonic?t.notes:t.intervals;return wb(t.chroma).map((e,t)=>{let r=Xb(e).name;return r?[n[t],r]:[``,``]}).filter(e=>e[0])}function ix(e){let t=Array.isArray(e)?nx(e):Xb(e).notes,n=t.map(e=>Ec(e).chroma);return e=>{let r=Ec(typeof e==`number`?Ac(e):e),i=r.height;if(i===void 0)return;let a=i%12,o=n.indexOf(a);if(o!==-1)return kc(r.name,t[o])}}function ax(e){let t=ix(e);return(e,n)=>{let r=Ec(e).height,i=Ec(n).height;return r===void 0||i===void 0?[]:lb(r,i).map(t).filter(e=>e)}}function ox(e){let{intervals:t,tonic:n}=Xb(e),r=bc(t,n);return e=>e?r(e>0?e-1:e):``}function sx(e){let{intervals:t,tonic:n}=Xb(e);return bc(t,n)}var cx={degrees:ox,detect:Qb,extended:ex,get:Xb,modeNames:rx,names:Yb,rangeOf:ax,reduced:tx,scaleChords:$b,scaleNotes:nx,steps:sx,tokenize:Jb,scale:Zb};const lx={M:`1P 3M 5P`,m:`1P 3m 5P`,o:`1P 3m 5d`,M7:`1P 3M 5P 7M`,m7:`1P 3m 5P 7m`,7:`1P 3M 5P 7m`,o7:`1P 3m 5d 7m`,M9:`1P 3M 5P 7M 9M`,"M9#11":`1P 3M 5P 7M 9M 11A`,m9:`1P 3m 5P 7m 9M`,m7b9:`1P 3m 5P 7m 9m`,o7b9:`1P 3m 5d 7m 9m`,9:`1P 3M 5P 7m 9M`,M11:`1P 3M 5P 7M 9M 11P`,M11b9:`1P 3M 5P 7M 9m 11P`,m11:`1P 3m 5P 7m 9M 11P`,m11b9:`1P 3m 5P 7m 9m 11P`,o11b9:`1P 3m 5d 7m 9m 11P`,11:`1P 5P 7m 9M 11P`,M13:`1P 3M 5P 7M 9M 11P 13M`,"M13#11":`1P 3M 5P 7M 9M 11A 13M`,m13:`1P 3m 5P 7m 9M 11P 13M`,m11b13:`1P 3m 5P 7m 9M 11P 13m`,m11b9b13:`1P 3m 5P 7m 9m 11P 13m`,o13b9:`1P 3m 5d 7m 9m 11P 13m`,13:`1P 3M 5P 7m 9M 11P 13M`},ux=.52,dx=[`default`,`7`,`9`,`11`],fx=[`major`,`minor`];function px(e){return fx.includes(e)}const mx=O(null),hx=O(null),gx=[],_x={default:{major:`M`,minor:`m`,diminished:`o`},7:{major:`M7`,minor:`m7`,dominant:`7`,diminished:`o7`},9:{major:`M9`,minor:`m9`,mediant:`m7b9`,dominant:`9`,diminished:`o7b9`},11:{major:`M11`,minor:`m11`,mediant:`m11b9`,subdominant:`M9#11`,dominant:`11`,diminished:`o11b9`}},vx=`smartChordsTrackSettingsKey`,yx=U({get(){let e=Y.getItem(vx)||`{}`;return new Map(Object.entries(JSON.parse(e)))},set:Fa(e=>{Y.setItem(vx,JSON.stringify(Object.fromEntries(e.entries())??{}))},300)}),bx=O(yx.value),xx=U({get(){return Sx(vy.value)},set(e){Cx(vy.value,e)}});function Sx(e){let t=bx.value.get(e)??{};return{enabled:t.enabled??!1,strum:t.strum??0,engaged:t.engaged??!0,spread:t.spread??0,complexity:t.complexity??0,minimised:t.minimised??!1}}function Cx(e,t){let n=new Map(bx.value);n.delete(e),n.set(e,t),bx.value=n,yx.value=n}function wx(e=[],t=``){let n=[`drum-kit`,`drum-pads`,`special-effects`,`drum-machine`,`creators-kit`,`looper`,`guitar-electric`,`guitar-bass`,`sampler`].includes(t),r=e.length===0||e.includes(`keyboard`);return!n&&r&&xx.value.enabled}function Tx(e){let t=wy.value.tonal||wy.value.label,n=Ty.value.tonal;if(!px(n))throw Error(`not a valid smart chords key`);let{complexity:r,spread:i}=xx.value;return Ex(e,t,n,r,i)}function Ex(e,t,n,r,i,a=!0){let o=cx.get([t,n]).notes,s=Oc.fromMidi(e),c=Oc.pitchClass(s),l=o.find(e=>e===c||e===Oc.enharmonic(c)),u;if(l){let e=o.indexOf(l)+1,t=dx[Math.round(r*(dx.length-1))];u=Dx(e,n,t)}else u=`o7`,l=c;let d=lx[u].split(` `).map(e=>Oc.transpose(s,e)).map(e=>Oc.midi(e)).filter(tt),f=d.length-1,p=Math.round((1-i)*f);if(a){let[e,t]=[4,7],n=Math.round((1-i)*f)/f,r=Math.round((t-e)*(1-n)+e);d.splice(0,Math.max(d.length-r,0))}for(;p>0;)d.unshift(d.pop()-12),p--;let m=[e,...d.map(e=>e+12)];return m.sort((e,t)=>
37e-t),{root:e,notes:m,chordType:u,name:jx(l+u),timeouts:[]}}function Dx(e,t,n){let r=e;t===`minor`&&(r=(e+5)%7);let i=[1,4,5],a=[2,3,6],o=r===2,s=r===3,c=r===4,l=r===5,u=r===6;if(o)return _x[n].supertonic??_x[n].minor;if(s)return _x[n].mediant??_x[n].minor;if(c)return _x[n].subdominant??_x[n].major;if(l)return _x[n].dominant??_x[n].major;if(u)return _x[n].submediant??_x[n].minor;let d=i.includes(r)?`major`:a.includes(r)?`minor`:`diminished`;return _x[n][d]}function Ox(e,t){let n=Lt(xx.value.strum,2)*ux,r=Math.abs(n);function i(e){return 1-(1-e)**2}let a=e.slice();return n<0&&a.reverse(),a.map((e,n)=>{let o=i(n/(a.length-1))*r*1e3;return setTimeout(()=>{t(e)},o)})}function kx(e,t,n,r){let i=Tx(e);mx.value&&mx.value.root!==e&&Ax(mx.value.root,r),xx.value.strum===0?n(i.notes):gx.push(...Ox(i.notes,t)),mx.value=i,hx.value=i,Mx.smartChordPlayed()}function Ax(e,t){if(!mx.value||e!==mx.value.root)return;let{notes:n}=mx.value;t(n),gx.forEach(clearTimeout),gx.length=0,mx.value=null}function jx(e){let t=e;return t=t.replace(/([Mmo][0-9]*)([#b].*)/g,`$1($2)`),t=t.replace(`M`,`maj`),t=t.replace(`o`,`dim`),t=t.replaceAll(`#`,`â¯`),t=t.replaceAll(`b`,`â`),t}const Mx=Nx();function Nx(){let e=0;return{subscribe:t,onSmartChordsEnabled:n,smartChordPlayed:i};function t(e){let t=e.$on($c,a),n=e.$on(Mc,r);return()=>{t(),n()}}function n(){Ae(`studio_smart_chords_enabled`)}function r(){e&&Ae(`smart_chords_recording_finished`,{num_smart_chords:e})}function i(){e++}function a(){e=0}}const Px={smartChords:`Smart Chords`,spread:`Spread`,complexity:`Complexity`,tooltip:`Smart Chords plays an entire chord from just one note. 38 39In the XY pad, the horizontal axis controls the ranges of notes, while the vertical axis controls the amount of notes in each chord. Click to lock the cursorâs position. 40 41Strum offsets to the playback of each note to give a human feel.`,clickToEngage:`Click to engage`,strum:`Strum:`,invaliKeyNotification:`Smart Chords needs a Major/Minor key. Setting key to be Major`};angular.module(`bandlab.audio`).controller(`VirtualInstrumentCtrl`,[`$scope`,`MidiKeyboardHandler`,`SharedMidiSynth`,`Soundbank`,function(e,t,n,r){r.isMusicalTypingActive()&&t.enable();let i=re([wy,Ty],()=>{t.releaseAll()}),a=angular.noop;e.$on(`$destroy`,function(){i(),a()}),e.press=function(e){t.press(e)},e.release=function(e){t.release(e)},e.isActive=function(...e){return e.some(function(e){return!!n.current[e]&&r.isNoteMapped(e)})},e.isMapped=function(e){return r.isNoteMapped(e)},e.shouldShowControls=()=>{let t=e.getTrack()?.soundbank;return t&&lc(t)},e.keyboardMode=yy,Promise.resolve().then(()=>$D).then(function({note:n}){e.getMidiFromNote=function(e){return n(e).midi},Promise.all([Promise.resolve().then(()=>Kb),import(`./BwaB-Gxr.js`).then(e=>e.t)]).then(function([r,i]){e.keyboardKeys=o();function o(){let t,n;return yy.value===`keyboard`&&(t=8,n=l(my[0],py[0])),yy.value===`smart-keys`&&(t=1,n=e.current.notes),n=n.concat(c(n,1)),n=n.concat(c(n,2).slice(0,t)),s(n),n}function s(e=[]){let r=e.map(e=>n(e).midi);by.value=ab(r),t.updatePianoKeyMap(r)}e.$watch(()=>Z.IS_LEGACY_KEYBOARD,()=>{s(e.current.notes),e.$applyAsync()});function c(e,t){return e.map(e=>n(e).pc+(n(e).oct+t))}e.shouldShowInKeyLabel=function(t){if(Ty.value.tonal===`chromatic`)return;let r=e.current.notes.map(e=>i.simplify(n(e).pc)),a=n(t).pc;return r.includes(a)||r.includes(i.enharmonic(a))},e.isSmartChordNonRoot=function(e){return xx.value.enabled&&mx.value&&mx.value.notes.includes(e)&&mx.value.root!==e},e.getPitchClassColor=function(e){return n(e).acc?`black`:`white`};function l(e,t){let n=(e.tonal||e.label)+ky.octave,i=t.tonal||t.label;return r.get([n,i]).notes}e.$applyAsync(),a=re(()=>ky.octave,()=>{e.current.notes=l(wy.value,Ty.value),e.$applyAsync()}),e.$watch(()=>{e.current.notes=l(wy.value,Ty.value),e.keyboardKeys=o()})})})}]);function Fx(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}function Ix(e,t,n,r){return ji(e,function(e,i,a){t(r,e,n(e),a)}),r}function Lx(e,t){return function(n,r){var i=Ye(n)?Fx:Ix,a=t?t():{};return i(n,e,Mi(r,2),a)}}var Rx=Object.prototype.hasOwnProperty,zx=Lx(function(e,t,n){Rx.call(e,n)?++e[n]:rl(e,n,1)});const Bx={0:`blue`,1:`orange`,2:`purple`,3:`green`};function Vx(e,t){return Vo(`--ds-color-tint-${e}-base`,t)}const Hx=parseInt(window.getComputedStyle(document.body).getPropertyValue(`--sampler-pad-width`));function Ux(e){return e-36}function Wx(e,t){let n=new Path2D,r=e/2;for(let e=0;e<t.length;e+=2){let i=t[e],a=t[e+1];if(!tt(a))break;let o=e/2;n.moveTo(o,r-r*Math.max(i,.002)),n.lineTo(o,r-r*Math.min(a,-.002))}return n}function Gx(e,t,n){let r=e.getContext(`2d`);r&&(r.canvas.width=zo(Hx),r.canvas.height=zo(Hx),r.strokeStyle=Vx(Bx[n]??`blue`,e),r.translate(.5,.5),r.stroke(t))}async function Kx(e,{src:t,id:n,original:r,triggeredFrom:i,fromFavorites:a},o,s){let{claimSample:c,openSoundsGetMoreCreditsModal:l}=jo(s);if(r.isUserUploaded||r.isFree||await l(`studio`,r.id))return r.isUserUploaded?n=ze():(r.isFree||c(n,{fromFavorites:a,productOrigin:`mix_editor`,
41sample:r,triggeredFrom:i}),ec[n]=!0),o.loading=!0,fetch(t).then(function(e){return e.blob()}).then(function(e){return Zx(e,s)}).then(function(t){return o.pending=Yx(e,n,t),o.pending}).then(function(){o.pad=e,o.pad.launchMode=r.features.oneShot?`OneShot`:`Gate`}).then(function(){xS(`me_sampler_pad_actions`,{action:`import_from_sounds`}),s.get(`$analytics`).eventTrack(`Import sample from Loops API`,{category:`Mix Editor`,extra:{...r,triggeredFrom:i,importTarget:`sampler_pad`,fromFavorites:a}})}).finally(function(){o.loading=!1})}function qx(e,t,n){return e.get(`SharedMidiSynth`).stopNotes(),pr({accept:`audio/*`}).then(function([r]){return Jx(e,t,r,n)})}function Jx(e,t,n,r){let i=e.get(`AppNotifications`);return r.loading=!0,r.pending=ti(n,1/0).then(function(t){return Zx(t,e)}).then(function(e){return Yx(t,ze(),e)}).then(function(){r.addSnapshotAfterSamplerKitEdit(),xS(`me_sampler_pad_actions`,{action:`import_from_device`})}).catch(function(e){i.addNotification({title:`Unable to import file`,content:i.escapeContent(e.message),classList:`alert`,autoclose:8e3})}).finally(function(){r.loading=!1}),r.pending}function Yx(e,t,n){return e.remove().then(function(){return e.loadSample(t,n)})}function Xx(e,t,n,r){let i=e.get(`EditorMixdown`),a=e.get(`EditorRevision`),o=a.current.tracks.find(e=>e.id===n.trackId);return r.loading=!0,r.pending=i.renderRegionToWav({...n},{track:o},{$injector:e,revision:a.current}).then(function({id:e,arrayBuffer:n}){return Yx(t,e,n)}).then(()=>{r.addSnapshotAfterSamplerKitEdit()}).finally(function(){r.loading=!1}),r.pending}function Zx(e,t){return e.arrayBuffer().then(function(e){return cr(e)}).then(function(e){if(e.duration>60.1){t.get(`AppNotifications`).addNotification({title:`Your file is too long`,content:`To select a different part, import the file onto Arrangement view and trim it there before importing to Sampler.`,autoclose:5e3});let n=or(e,60);return _r(n)}return _r(e)}).then(function(e){return e.arrayBuffer()})}async function Qx(e,t,n){let r=e.get(`EditorPlayer`),i=await r.current.mixHandler.getMultipadSamplerForTrack(t.id);if(!i)throw Error(`Unable to get multipad sampler for track`);return i.getKit().then(function(e){return e?Promise.all(e.sampleIds.filter(function(e){return!ec[e]||n}).map(function(e){return r.current.readSample(e).then(function(t){return{blob:new Blob([t],{type:`audio/wav`}),id:e}})})).then(function(t){return{samplerKit:e,samples:t}}):(Sentry.onLoad(()=>{Sentry.captureException(`Unable to get SamplerKitData for track`,{extra:{trackId:t.id}})}),null)}).finally(function(){i.delete()})}function $x(e,t,n){let r=e.getBoundingClientRect(),i=zo(r.height);return n=zo(n),t.getWaveform(n,!1).then(function(r){if(!r)return;let a=Wx(i,r),o=e.getContext(`2d`);o&&(e.width=n,e.height=i,Bo(o),o.strokeStyle=Vx(Bx[t.color]??`blue`,e),o.translate(.5,.5),o.stroke(a))}).catch(()=>{})}const eS=`https://www.bandlab.com/api/v2.0`;let tS=[],nS=[];function rS(e,t){let n=e.get(`$http`),r=e.get(`EditorState`),i=e.get(`Me`),a=e.get(`$analytics`),o=e.get(`SharedMidiSynth`).get
41Sampler();return new Promise(function(e){let n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));r.isInBackground=!0,X(n,{title:`Delete ${t.samplerKit.displayName||``}?`,subtitle:`You wonât be able to undo this action. But it wonât affect other projects where you used this kit.`,size:`small`,actions:[{label:`Cancel`,color:`secondary`,onClick:()=>e()},{label:`Delete`,color:`destructive-primary`,onClick:()=>e(!0)}]},{onClose:()=>{r.isInBackground=!1,e()}})}).then(function(e){if(e)return o.loading=!0,n({method:`delete`,url:`${eS}/users/${i.id}/sampler-kits/${t.samplerKit.originalSamplerKitId}`}).then(function(e){return a.eventTrack(`blsounds_action`,{platform:`firebase`,params:{action:`remove`,content_type:`pack`,category:`studio`,content_id:t.samplerKit.id,is_user_content:!0,target:`sampler_my_kits`,triggered_from:`sampler_settings`}}),t.samplerKit.originalSamplerKitId&&ja(nS,{id:t.samplerKit.originalSamplerKitId}),wS(t,!0),e}).finally(()=>{o.loading=!1})})}function iS(){return tS}let aS;function oS(){return aS=e().then(function(e){return tS=e.packs,tS.forEach(function(e){e.features.multipadSampler.id=e.id,e.features.multipadSampler.displayName=e.name}),tS}).catch(()=>[]),aS;function e(t=[],n){return lo({features:`multipadSampler`,after:n}).then(function(n){let r=n;return t=t.concat(r.packs),r.totalCount&&t.length<r.totalCount?e(t,r.after??void 0):{packs:t}})}}async function sS(e,t,n={undo:!1,ignoreBPMKey:!1}){let r=e.get(`EditorHistory`),i=e.get(`EditorImporter`),a=e.get(`EditorPlayer`),o=e.get(`EditorRevision`),s=e.get(`EditorTimeline`),c=e.get(`EditorState`),l=e.get(`MidiEditor`),u=e.get(`SharedMidiSynth`);if(n.undo&&r.pushUndo(o.current),await hS(e,t,u.getSampler()),n.ignoreBPMKey)return;let d=!(!t.key||o.current.key);if(!(t.tempo&&o.current.metronome.pristine&&!c.songDuration)){d&&await i.askKeyUpdateConfirmation(t.key)&&(o.current.key=t.key??null,l.transposeKeys(t.key,o.current.key??t.key));return}return new Promise(e=>{let n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n)),r={size:`small`,subtitle:``,title:`Recommended`,actions:[{label:`No, thanks`,color:`secondary`,onClick:()=>e()}]};c.isInBackground=!0,r.subtitle=d?`Recommended settings for this audio pack are ${t.tempo} BPM and ${t.key}.`:`Recommended setting for this audio pack is ${`${t.tempo} BPM`}`,r.actions.push({label:d?`Set tempo and key`:`Set Tempo`,color:`primary`,onClick:async()=>{s.updateBpm(t.tempo),d&&(o.current.key=t.key,l.transposeKeys(t.key,o.current.key??t.key)),await a.current.updateMix(),e()}}),X(n,r,{onClose:()=>{c.isInBackground=!1,e()}})})}function cS(e){let t=e.get(`$http`),n=e.get(`Me`);return t({method:`GET`,url:`${eS}/users/${n.id}/sampler-kits`}).then(function(e){return nS=e.data,e})}function lS(){return nS}function uS(e,t){if(!e)return`Custom`;let n=t.find(t=>(`features`in t?t.features.multipadSampler:t).id===e.originalSamplerKitId);return(n&&(`features`in n?n.features.multipadSampler:n))?.displayName||e.displayName||`Custom`}function dS(e,t){let n=e.get(`EditorRevision`),r=e.get(`EditorState`),i=e.get(`$analytics`),a=e.get(`SharedMidiSynth`).get
41Sampler(),o=t.samplerKit.originalSamplerKitId||t.samplerKit.id;pS(e,{displayName:uS(t.samplerKit,[...nS,...tS]),onSubmit:s,presetNames:nS.filter(e=>e.id!==o).map(e=>e.displayName),title:`Rename Kit`,formLabel:`New Kit`,buttonText:`Rename`});function s(o){let s=n.current.tracks.filter(e=>e.samplerKit?.id===t.samplerKit.id),c=s.some(e=>e.samplerKit?.displayName!==o);return t.samplerKit.displayName=o,c&&(r.hasRevisionChanges=!0),Promise.all([gS(e,t),(async()=>{let[e,t]=await a.getMultipadSamplerForTrack();e&&(await e.setKitName(o),t())})()]).then(function(){s.forEach(function(e){e.samplerKit.displayName=o}),xS(`me_sampler_kit_actions`,{action:`rename`}),i.eventTrack(`blsounds_action`,{platform:`firebase`,params:{action:`edit`,content_type:`pack`,category:`studio`,content_id:t.samplerKit.id,is_user_content:!0,triggered_from:`sampler_settings`}})})}}function fS(e,t){let n=e.get(`$analytics`),r=e.get(`$filter`),i=e.get(`$http`),a=e.get(`Me`),o=e.get(`EditorPlayer`),s=e.get(`SharedMidiSynth`).getSampler();return new Promise(function(i,a){let o=r(`presetName`)(t);pS(e,{displayName:o===`Custom`?`My Preset`:o,onCancel:()=>a(`cancelled`),onSubmit:s,presetNames:nS.map(e=>e.displayName),title:`New Kit`,formLabel:`Kit name`,buttonText:`Create`});function s(e){let{samplerKit:r}=t;return n.eventTrack(`Save User Sampler Kit`,{category:`Mix Editor`}),t.samplerKit.displayName=e,i({...r,displayName:e})}}).then(function(n){return s.loading=!0,Promise.all([n.displayName,mS(e,t),(async()=>{let[e,t]=await s.getMultipadSamplerForTrack();await e.setKitName(n.displayName),t()})()])}).then(function([e]){return i({method:`post`,url:`${eS}/users/${a.id}/sampler-kits`,data:{...t.samplerKit,displayName:e,audioUrl:void 0,color:void 0,createdOn:void 0,id:void 0,imageUrl:void 0,modifiedOn:void 0,originalSamplerKitId:void 0,samples:void 0}}).then(async function(e){return nS=nS.concat(e.data),t.samplerKit.id=e.data.id,t.samplerKit.originalSamplerKitId=e.data.id,t.samplerKit.displayName=e.data.displayName,await o.current.updateMix(),xS(`me_sampler_kit_actions`,{action:`save_as`}),e})}).catch(e=>{e!==`cancelled`&&Sentry.onLoad(()=>{Sentry.captureException(`Failed to upload sampler kit`,{extra:{trackId:t.id,error:e}})})}).finally(()=>{s.loading=!1})}function pS(e,t,n=()=>{}){let r=e.get(`EditorState`),i=J(()=>import(`./DRJPNTQX.js`));r.isInBackground=!0,X(i,t,{escapeClose:!0,overlayClose:!0,onClose:()=>{r.isInBackground=!1,n()}})}function mS(e,t){let n=e.get(`Sample`);return Qx(e,t,!1).then(function(e){if(!e)return;let{samples:t}=e;return Promise.all(t.map(function({blob:e,id:t}){return n.upload({blob:e,sampleId:t,sampleType:`samples`})}))})}function hS(e,t,n){let r=e.get(`$rootScope`);return t.originalSamplerKitId=t.id,n.loadSamplerKit(t).then(function(){r.$applyAsync(),xS(`me_sampler_kit_select`,{source:t.modifiedOn?`user`:`sounds`})})}function gS(e,t){let n=e.get(`$http`),r=e.get(`Me`),i=e.get(`EditorPlayer`);return mS(e,t).then(function(){return n({method:`put`,url:`${eS}/users/${r.id}/sampler-kits/${t.samplerKit.originalSamplerKitId}`,data:{...t.samplerKit,audioUrl:void 0,imageUrl:void 0,color:void 0,createdOn:void 0,modifiedOn:void 0,samples:void 0}})}).then(async function(e){return ja(nS,{id:e.data.id}),nS=nS.concat(e.data),t.samplerKit.id=e.data.originalSamplerKitId,await i.current.updateMix(),e})}function _S(e,t){let n=t.find(t=>t.id===e.originalSamplerKitId);if(!n||!e.kit)return!1;let r=`features`in n?n.features.multipadSampler:n,i={kit:r.kit,sampleIds:r.sampleIds,samples:r.samples,type:r.type},a={kit:e.kit,sampleIds:r.sampleIds,samples:r.samples,type:r.type};return!Vn(i,a)}function vS(e,t,n){let r=t.samplerKit.originalSamplerKitId,i=nS.find(e=>e.id===r),a=tS.find(e=>e.features.multipadSampler.id===r),o=i||a?.features.multipadSampler;if(!o)throw Error(`Sampler kit not found`);hS(e,o,n)}async function yS(e,t){let n=e.get(`EditorPlayer`),r=e.get(`SharedMidiSynth`).get
41Sampler().pads[t]?.samplerPad;if(!r)throw Error(`Sampler pad at index ${t} not found`);let i=await r.getSampleId(),a=await n.current.readSample(i);return new Blob([a],{type:`audio/wav`})}function bS(t,n){return Promise.all([import(`./DI9eyZvR.js`).then(t=>e(t.default)),Qx(t,n,!0)]).then(function([{default:e},t]){if(!t)return;let{samplerKit:n,samples:r}=t,i=new e;n.kit=JSON.parse(n.kit),i.file(`kit.json`,JSON.stringify(n,null,2));for(let e of r)i.file(`samples/${e.id}.wav`,e.blob);return i.generateAsync({type:`blob`})}).then(function(e){xr(e)})}function xS(e,t){return import(`./DHI6ZMoS.js`).then(e=>e.t).then(function({logEvent:n}){return n(e,t)})}function SS(e){let t=e.get(`EditorState`),n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));return t.isInBackground=!0,new Promise(e=>{X(n,{size:`small`,title:`Overwrite Existing Pads?`,subtitle:`There are more slices than empty pads in the Sampler. Would you like to fill in only empty pads or overwrite?`,actions:[{label:`Overwrite`,color:`secondary`,onClick:()=>e(`overwrite`)},{label:`Fill In Pads`,color:`secondary`,onClick:()=>e(`fill`)}]},{onClose:()=>{e(`cancel`),t.isInBackground=!1}})})}async function CS(e,t,n){let r=e.get(`EditorHistory`),i=e.get(`EditorPlayer`),a=e.get(`EditorRevision`);r.pushUndo(a.current),wS(t),await i.current.updateMix(),await n.clearAllPads(),xS(`me_sampler_kit_actions`,{action:`clear`})}function wS(e,t=!1){e.samplerKit.originalSamplerKitId=null,e.samplerKit.displayName=null;let n=ze();e.samplerKit.id=t?n:e.samplerKit.id}function TS(e){return e?!!e.originalSamplerKitId||!!e.displayName||e.kit?.layers?.length>0:!1}function ES(e,t,n){let r=e.get(`EditorDB`),i=e.get(`EditorPlayer`),a=e.get(`EditorRevision`),{enqueue:o}=Eu(),s=O(null),c=O(null),l=O(new Map),u=O(()=>Promise.resolve()),{mixHandler:d}=i.current,f=Promise.resolve(),p=Le(function(e){return Le(async t=>{let n=await d.getMultipadSamplerForTrack(t);return await n?.setSampleDurationLimit(60),await n?.setAutoOnsetDetection(!0),await n?.setDenoiseAfterRecording(!1),[n,Fa(function(){o(async()=>{i.current.getPreviousMixData()!==e&&(p.cache.get(e)?.cache.delete(t),p.cache.delete(e),await n?.delete())})},Gl)]})}),m=E(),h=Array.from({length:16},function(t,n){let r=U(function(){return l.value.get(n)}),a=O(0),o=O(``),c=U({get:()=>a.value,set:async function(e){a.value=e,r.value&&(await r.value.setAttackTime(e,!1),o.value=await r.value.getAttackTimeDisplayValue())}}),u=O(0),d=U({get:()=>u.value,set:function(e){u.value=e,r.value&&r.value.setColor(e)}}),f=O(0),p=U({get:()=>f.value,set:function(e){f.value=e,r.value&&r.value.setEndTime(e,!1)}}),m=O(null),h=U({get:()=>m.value,set:()=>{}}),g=O(!1),v=O(`Gate`),y=U({get:()=>v.value,set:async function(e){v.value=e,r.value&&(await r.value.setLaunchMode(e),v.value=await r.value.getLaunchMode())}}),b=O(0),x=U({get:()=>b.value,set:function(e){b.value=e,r.value&&r.value.setMutexGroup(e)}}),S=O(0),C=O(``),w=U({get:()=>S.value,set:async function(e){S.value=e,r.value&&(await r.value.setPan(e,!1),C.value=await r.value.getPanDisplayValue())}}),T=O(0),k=O(``),A=U({get:()=>T.value,set:async function(e){T.value=e,r.value&&(await r.value.setPitchShift(e,!1),k.value=await r.value.getPitchShiftDisplayValue())}}),j=O(0),M=O(``),N=U({get:()=>j.value,set:async function(e){j.value=e,r.value&&(await r.value.setReleaseTime(e,!1),M.value=await r.value.getReleaseTimeDisplayValue())}}),P=O(0),F=U({get:()=>P.value,set:()=>{}}),ee=O(0),te=U({get:()=>ee.value,set:function(e){ee.value=e,r.value&&r.value.setStartTime(e,!1)}}),I=O(0),L=O(``),R=U({get:()=>I.value,set:async function(e){I.value=e,r.value&&(await r.value.setTone(e,!1),L.value=await r.value.getToneDisplayValue())}}),ne=O(0),z=O(``),B=U({get:()=>ne.value,set:async function(e){ne.value=e,r.value&&(await r.value.setVolume(e,!1),z.value=await r.value.getVolumeDisplayValue())}}),V=O(null);return re([te,p],ie),re(r,async function(){if(!r.value){m.value=null,V.value=null;return}[a.value,u.value,f.value,m.value,v.value,b.value,S.value,T.value,j.value,P.value,ee.value,I.value,ne.value,o.value,C.value,k.value,M.value,L.value,z.value,V.value,g.value]=await Promise.all([r.value.getAttackTime(),r.value.getColor(),r.value.getEndTime(),r.value.getId(),r.value.getLaunchMode(),r.value.getMutexGroup(),r.value.getPan(),r.value.getPitchShift(),r.value.getReleaseTime(),r.value.getSampleLength(),r.value.getStartTime(),r.value.getTone(),r.value.getVolume(),r.value.getAttackTimeDisplayValue(),r.value.getPanDisplayValue(),r.value.getPitchShiftDisplayValue(),r.value.getReleaseTimeDisplayValue(),r.value.getToneDisplayValue(),r.value.getVolumeDisplayValue(),ae(r.value),r.value.isCorrupted()])},{immediate:!0}),{attackTime:c,color:d,endTime:p,id:h,isCorrupted:g,launchMode:y,mutexGroup:x,pan:w,pitchShift:A,releaseTime:N,sampleLength:F,startTime:te,tone:R,volume:B,waveform:V,readableAttackTime:o,readableReleaseTime:M,readablePan:C,readablePitchShift:k,readableTone:L,readableVolume:z,samplerPad:r,autoslice:H,crop:ce,normalize:se,remove:oe,reverse:le,copy:W,paste:G,loadSample:de,getWaveform:ue,updatePadWaveformPath:ie};async function ie(){r.value&&(V.value=await ae(r.value))}async function H(){let t=e.get(`$rootScope`),r=e.get(`EditorHistory`),i=e.get(`EditorRevision`),a=e.get(`SharedMidiSynth`).get
41Sampler();a.loading=!0;let o;try{let[c,l]=await _();if(o=l,!await c.canAutoSlice(n))return s();let u=await c.autoSlice(n);if(u===`OneSliceReturnedError`||u===`Error`)return s();let d=null;if(u===`Prompt`){let t=await SS(e);if(t===`cancel`)return;r.pushUndo(i.current),t===`overwrite`&&(d=await c.autoSliceOverwritePads()),t===`fill`&&(d=await c.autoSliceFillPads())}u===`DoNotPrompt`&&(r.pushUndo(i.current),d=await c.autoSliceFillPads()),d?(await D(c),a.addSnapshotAfterSamplerKitEdit(),t.$broadcast(`Sampler:highlightAfterSlice`,d.lastChangedPads)):(r.undo(i.current),i.redoStack.pop()),xS(`me_sampler_sample_editor_actions`,{action:`autoslice`})}catch{}finally{o?.(),a.loading=!1}function s(){return e.get(`AppNotifications`).addNotification({id:`sampler-autoslice-not-enough-slices`,title:`Unable to detect slices, try a longer sample.`,classList:`warning`,autoclose:8e3})}}async function ae(e){let t=await e.getWaveform(zo(Hx),!0);return Wx(zo(Hx),t)}async function oe(){let[e,t]=await _();await e.removePadFrom(n),await D(e),t()}async function se(){r.value&&(await r.value.normalize(),await E(),xS(`me_sampler_sample_editor_actions`,{action:`normalize`}))}async function ce(){r.value&&(await r.value.crop(),await E(),xS(`me_sampler_sample_editor_actions`,{action:`crop`}))}async function le(){r.value&&(await r.value.reverse(),await E(),xS(`me_sampler_sample_editor_actions`,{action:`reverse`}))}function W(){s.value=n}async function G(){if(s.value===null)return;let[e,t]=await _();await e.copyPad(s.value,n),await D(e),t()}async function ue(e,t){if(r.value)return await r.value.getWaveform(e,t)}async function de(e,t){let[r,a]=await _();await i.current.writeSample(e,t),await r.loadSample(e,n);let o=await r.getPadAt(n);await o?.setAttackTime(0,!1),await o?.delete(),await D(r),a()}}),g=O(h[Math.max(n,0)]);return{initializing:m,clipboard:s,pads:h,recordingPad:c,selectedPad:g,updateSamplerState:E,clearAllPads:x,startRecording:y,stopRecording:u,getEmptyPad:b,duplicatePad:S,addSnapshotAfterSamplerKitEdit:v,loadSamplerKit:T,movePad:w,swapPads:C,getMultipadSamplerForTrack:_};async function _(){let e=t.id,[n,r]=await o(async()=>{let t=i.current.getPreviousMixData();return await p(t)(e)});if(!n)throw Error(`Unable to get multipad sampler for track`);return[n,r]}async function v(){let e;try{let[t,n]=await _();e=n;let o=await t.getKit();if(!o)return;let s=o.sampleIds.filter(e=>!ec[e]).map(async e=>{if(await r.getFile(e))return;let t=await i.current.readSample(e);await r.updateFile({sampleId:e,blob:new Blob([t],{type:`audio/wav`})})});await Promise.all(s),r.addSnapshot(a.current)}catch{}finally{e?.()}}async function y(e,t){let n=await i.current.startRecordingSampler(e,t,r);xS(`me_sampler_pad_actions`,{action:`record`}),c.value=h[e],u.value=r;async function r(){u.value=()=>Promise.resolve(),await n(),await E(),c.value=null,v()}}function b(e=0){for(let t=e;t<16;t++)if(!l.value.has(t))return t;return-1}async function x(){let[e,t]=await _();await e.forceStopAllPads();for(let t=0;t<16;t++)await e.removePadFrom(t);await D(e),t()}async function S(e,t){let[n,r]=await _();await n.copyPad(e,t),await D(n),g.value=h[t],r()}async function C(e,t){if(e===t)return;let[n,r]=await _(),i=await n.getKit();if(!i)return;let a=i.kit,o=JSON.parse(a),s=h[e];if(!s)throw ReferenceError(`Could not find pad at source ${e}`);let c=h[t];if(!c)throw ReferenceError(`Could not find pad at destination ${t}`);let l=o.layers.find(e=>e.id===c.id.value),u=c.attackTime.value,d=c.color.value,f=c.endTime.value,p=c.launchMode.value,m=c.mutexGroup.value,v=c.pan.value,y=c.pitchShift.value,b=c.releaseTime.value,x=c.startTime.value,S=c.tone.value,C=c.volume.value;if(await n.copyPad(e,t),await n.removePadFrom(e),await n.loadSample(l.sampleId,e),await D(n),s=h[e],!s)throw ReferenceError(`Could not find pad at destination ${t}`);s.attackTime.value=u,s.color.value=d,s.endTime.value=f,s.launchMode.value=p,s.mutexGroup.value=m,s.pan.value=v,s.pitchShift.value=y,s.releaseTime.value=b,s.startTime.value=x,s.tone.value=S,s.volume.value=C,await te(),await D(n),g.value=h[t],r()}async function w(e,t){let[n,r]=await _();await n.copyPad(e,t),await n.removePadFrom(e),await D(n),g.value=h[t],r()}async function T(t){let[n]=await i.current.putSamplerKitsIntoVirtualFileSystem([t]),r=n?.some(e=>e.error);r&&e.get(`EditorHelper`).notifyMissingSamples();
41let a=e.get(`SharedMidiSynth`).getSampler()?.track;a&&r&&(Object.assign(a.samplerKit,t),await i.current.updateMix());let[o,s]=await _();await o.loadKit({...t,kit:JSON.stringify(t.kit)}),await D(o),s()}function E(){return f=f.then(async()=>{let e;try{let[t,n]=await _();e=n,await D(t)}catch(e){Sentry.onLoad(()=>{Sentry.captureException(`Failed to update sampler state`,{extra:{error:e}})})}finally{e?.()}}),f}async function D(e){let t=l.value,n=await e.getAllPads();l.value=n;let r=new Set(n.values());for(let e of t.values())e&&!r.has(e)&&await e.delete();await i.current.updatePreviousMixData()}}DS.$inject=[`$analytics`,`$injector`,`EditorState`,`SharedMidiSynth`];function DS(e,t,n,r){"ngInject";return{replace:!0,restrict:`E`,template:`<div style="display: contents"></div>`,link:function(i,a){function o(n){let i=t.get(`EditorHistory`),a=t.get(`EditorRevision`);i.pushUndo(a.current),hS(t,m(n),r.getSampler()),e.eventTrack(`Load sampler kit`,{category:`Mix Editor`,extra:n}),e.eventTrack(`blsounds_action`,{platform:`firebase`,params:{action:`select`,content_type:`pack`,category:`studio`,content_id:n.id,is_user_content:!0,triggered_from:`sampler_my_kits`}})}async function s(n){let r=n.features.multipadSampler;if(!r)throw Error(`${n.name} does not have multipad sampler features`);await sS(t,m(r),{undo:!0}),e.eventTrack(`Load sampler kit`,{category:`Mix Editor`,extra:n}),e.eventTrack(`blsounds_action`,{platform:`firebase`,params:{action:`select`,content_type:`pack`,category:`studio`,content_id:n.id,is_user_content:!1,triggered_from:`sampler_curated`}})}let c=h({track:i.getTrack(),hasSamplerKitChanged:!1,isSamplerKitsLoaded:!1,samplerKits:[],setIsInBackground:e=>n.isInBackground=e,selectSamplerKit:e=>{if(e.groupId===`my_kits`){o(e);return}s(e)}});i.$watch(()=>{let e=lS(),t=iS(),n=e.map(e=>({...e,groupId:`my_kits`})),r=t.map(e=>({...e,groupId:`curated_kits`})),a=[...n,...r];c.samplerKits=a;let o=i.getTrack();c.hasSamplerKitChanged=!!_S(o.samplerKit||{},a);let s=o.samplerKit?.originalSamplerKitId,l=n.find(e=>s===e.id),u=t.find(e=>s===e.features.multipadSampler.id),d=!(l||u);rc(o)&&d&&wS(o),c.track={...o}}),aS?.then(()=>{c.isSamplerKitsLoaded=!0}),$(J(()=>import(`./DHvu6bqo.js`)),a[0],i,{},c)}}}function OS(e=`Blue`){return e===`Violet`?`purple`:e.toLowerCase()}angular.module(`bandlab.audio`).directive(`studioPanelHeader`,[`$injector`,`EditorHelper`,`EditorState`,`MidiDevice`,`SharedMidiSynth`,`Soundbank`,function(e,t,n,r,i,a){return{replace:!0,restrict:`E`,link:function(o,s){$(import(`./Bkudytyc.js`),s[0],o,{$injector:e,Soundbank:a,scope:o,EditorHelper:t,EditorState:n,MidiDevice:r,SharedMidiSynth:i})}}}]).directive(`audioTrackPanelHeader`,[`$injector`,`EditorPlayer`,`EditorRevision`,function(e,t,n){return{replace:!0,restrict:`E`,link:function(r,i){let a=D({notifyInputChanged:r.notifyInputChanged,track:r.getTrack()});r.$watch(()=>r.getTrack(),e=>{a.track=e}),$(import(`./ZSJaGD6t.js`),i[0],r,{$injector:e,scope:r,EditorPlayer:t,EditorRevision:n},a)}}}]).directive(`samplerKitToolsMenu`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div class="instrument-col-gap-8"></div>`,link:function(t,n){$(import(`./B9PsM43q.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`audioInput`,[`$injector`,`EditorRevision`,`EditorState`,`EditorTrack`,`EffectsPreset`,`MidiKeyboardHandler`,`SharedMidiSynth`,`Soundbank`,function(e,t,n,r,i,a,o,s){return{restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_audio-input-7f42ae87e.html`,replace:!0,scope:{getTrack:`=`,hidePanel:`=`},controller:[`$rootScope`,`$scope`,`Me`,function(c,l,u){l.current=s.getCurrent(),l.state=n,l.user=u,l.colorNameToDSColor=OS,l.isMusicalTypingActive=s.isMusicalTypingActive,l.hasMusicalTyping=s.hasMusicalTyping,l.isSamplerTrack=rc,l.isMIDIInstrumentTrack=cc,l.getUserInterface=function(){if(oc(l.getTrack()))return`drum-machine`;if([`key-pads`,`drum-pads`,`drum-kit`,`drum-kit-16`,`special-effects`].includes(l.current.input?.slug))return`key-pads`;if(l.current.input?.slug===`creators-kit`)return`creators-kit`;let e=l.current.soundbank?.userInterfaces??[];return e.includes(`keyboard`)?`keyboard`:e.includes(`creators-kit`)?`creators-kit`:e.includes(`key-pads`)||e.includes(`drum-pads`)||e.includes(`drum-kit-16`)?`key-pads`:`keyboard`},l.$watch(()=>s.isMusicalTypingActive(),function(e){e?a.enable():a.disable()}),l.$on(Fc,function(){let e=t.selectedTrack;(ic(e)||rc(e))&&(n.isAudioInputActive=!0)}),l.notifyInputChanged=function(){setTimeout(function(){c.$broadcast(Gc)})},l.isDrumMachine=function(){return oc(l.getTrack())},l.isKeyboardView=function(){return n.isAudioInputVisible&&ic(l.getTrack())&&l.getUserInterface()===`keyboard`},l.isSustaining=function(){return o.isSustaining()},l.$on(`MidiMessage:noteEvent`,function(){l.$digest()}),l.deleteUserPreset=function(t){X(Mo,{size:`small`,title:`Delete this preset?`,subtitle:`You wonât be able to undo this action.`,actions:[{label:`Cancel`,color:`secondary`},{label:`OK`,color:`destructive-primary`,onClick:()=>{let n=i.getUserPresetOrigin(t);import(`./DvQD5s06.js`).then(e=>e.t).then(({logEffectsPresetDelete:e})=>e({method:`single`,presetOrigin:n,originCounts:{[n]:1}})),t===Qe(l.getTrack(),`effectsData.originalPresetId`)&&(r.selectPreset(jt,{shouldAskConfirmation:!1}),i.clearAiPresetDisplayOverride(l.getTrack())),i.deleteUserPreset({id:t}).catch(function(t){let n=e.get(`AppNotifications`);n.addNotification({title:`Something went wrong, please try again later`,content:n.escapeContent(Qe(t,`data.message`,``)),classList:`alert`,autoclose:8e3})})}}]})},l.deleteUserPresets=function(t){return new Promise(function(n){X(Mo,{size:`small`,title:(e=>{let t=new Intl.PluralRules(`en`);return{one:`Delete ${e} preset?`,other:`Delete ${e} presets?`}[t.select(e)]})(t.length),subtitle:`You wonât be able to undo this action.`,actions:[{label:`Cancel`,color:`secondary`,onClick:()=>n(!1)},{label:`OK`,color:`destructive-primary`,onClick:()=>{let a=zx(t,e=>i.getUserPresetOrigin(e));import(`./DvQD5s06.js`).then(e=>e.t).then(({logEffectsPresetDelete:e})=>e({method:`bulk`,originCounts:a}));let o=l.getTrack(),s=Qe(o,`effectsData.originalPresetId`);i.deleteUserPresets(t).then(function(){let e=l.getTrack();e.id===o.id&&Qe(e,`effectsData.originalPresetId`)===s&&t.includes(s)&&(r.selectPreset(jt,{shouldAskConfirmation:!1}),i.clearAiPresetDisplayOverride(e))}).catch(function(t){let n=e.get(`AppNotifications`);n.addNotification({title:`Something went wrong, please try again later`,content:n.escapeContent(Qe(t,`data.message`,``)),classList:`alert`,autoclose:8e3})}),n(!0)}}]},{onDismiss:()=>n(!1)})})},l.exportSamplerKitForCurator=()=>bS(e,l.getTrack()),l.$watch(`current.soundbank`,function(e){e&&e.slug&&s.getJSON(e).then(e=>{let t=lc(e);return s.getBank(t?e:e.slug)})})}]}}]).directive(`mixEditorFocusInstrument`,[`$document`,`EditorState`,function(e,t){return{restrict:`A`,link:function(n,r){let i=n.$watch(()=>t.isAudioInputVisible,t=>{if(t){r.on(`mousedown touchstart`,a),e.on(`mousedown touchstart`,o);return}r.off(`mousedown touchstart`,a),e.off(`mousedown touchstart`,o)});function a(){t.isAudioInputActive=!0,n.$applyAsync()}function o(e){e.target===r[0]||r[0].contains(e.target)||[`.ds-dropdown-menu`,`#studio-menu-hamburger-button`,`#sampler-audio-settings-dialog`,`#instrument-settings-dialog`,`.mix-editor-audio-input`,`.mix-editor-context-menu`,`.mix-editor-flyout`,`.mix-editor-track-header`,`.mix-editor-footer`,`.mix-editor-toolbar`,`.modal`].some(t=>e.target.closest(t))||[`mix-editor-block-tracks`,`mix-editor-block-headers`].some(t=>e.target.classList.contains(t))||(t.isAudioInputActive=!1,n.$applyAsync())}n.$on(`$destroy`,()=>{i(),e.off(`mousedown touchstart`,o)})}}}]).directive(`virtualInstrumentPanelHeader`,[`$analytics`,`$injector`,`DrumMachine`,`DrumMachineState`,`EditorHistory`,`EditorRevision`,`EditorState`,`EditorTimeline`,`EditorTrack`,`MidiEditor`,`MidiEditorState`,`Soundbank`,function(e,t,n,r,i,a,o,s,c,l,u,d){return{replace:!0,restrict:`E`,template:`<div class="virtual-instrument-panel-header"></div>`,link:function(f,m){let g=h({isTrackFrozen:f.getTrack().isFrozen||!1,isKeyboardView:f.isKeyboardView(),isDrumMachine:f.isDrumMachine(),armPushUndo:()=>we(()=>{i.pushUndo(a.current),f.$applyAsync()}),currentInput:p(f.current,`input`),currentSoundbank:p(f.current,`soundbank`),editorState:o,getSoundbankCategories:d.getCategories,setTrackSoundbank:c.setTrackSoundbank,setIsInBackgroun
41d:e=>o.isInBackground=e,drumMachineState:r,selectPatternByIndex:_,togglePlayback:()=>{n.toggle(),f.$applyAsync()},insertPatternAtPlayhead:()=>{s.createDrumMachineRegion(f.getTrack(),r.selectedPatternIndex,o.crTime)},setDraggedPattern:v,unsetDraggedPattern:y,setSwingAmount:e=>{i.pushUndo(a.current),n.setSwingAmount(e)},setSelectedPatternLengthInBars:e=>{i.pushUndo(a.current),n.setSelectedPatternLengthInBars(e)},setVelocityMode:n.setVelocityMode});f.$watchGroup([f.isKeyboardView,f.isDrumMachine,()=>f.getTrack().isFrozen],()=>{g.isKeyboardView=f.isKeyboardView(),g.isDrumMachine=f.isDrumMachine(),g.isTrackFrozen=f.getTrack().isFrozen||!1});function _(e){n.selectPatternByIndex(e);let t=f.getTrack().patterns[e];t&&(a.selectedRegions=new Set(a.current.tracks.map(e=>e.regions).flat().filter(e=>e.sampleId===t.sampleId)))}function v(){a.selectedTrack&&qs({type:`drum_machine_pattern`,value:{trackId:a.selectedTrack.id,patternIndex:r.selectedPatternIndex,duration:n.getPatternDurationInSeconds(r.selectedPatternIndex)}})}function y(){qs({})}$(import(`./DZkw-Ipp.js`),m[0],f,{$analytics:e,$injector:t,scope:f,MidiEditor:l,MidiEditorState:u},g)}}}]).directive(`samplerKitFlyout`,DS).directive(`samplerAudioInputSettings`,[`$injector`,`EditorPlayer`,`EditorRevision`,function(e,t,n){return{replace:!0,restrict:`E`,template:`<div class="instrument-col-gap-8"></div>`,link:function(r,i){let a=D({track:r.getTrack(),notifyInputChanged:r.notifyInputChanged});r.$watch(()=>r.getTrack(),e=>{a.track=e}),$(import(`./DCnA-EjZ.js`),i[0],r,{scope:r,$injector:e,EditorPlayer:t,EditorRevision:n},a)}}}]),angular.module(`bandlab.audio`).directive(`audioInputEffectsChainSelector`,[`$compile`,`$injector`,`$rootScope`,function(e,t,n){return{restrict:`E`,replace:!0,template:`<div></div>`,link:function(r,i){$(import(`./Crb-1yg4.js`),i[0],r,{$compile:e,$injector:t,$rootScope:n,scope:r})}}}]).directive(`audioInputEffectsSelector`,[`$compile`,`$injector`,`$rootScope`,function(e,t,n){return{restrict:`E`,replace:!0,template:`<div></div>`,link:function(r,i){$(import(`./DUq1yOMt.js`),i[0],r,{$compile:e,$injector:t,$rootScope:n,scope:r})}}}]).directive(`audioInputPresetsSelector`,[`$analytics`,`$compile`,`$filter`,`$injector`,`$rootScope`,`$state`,`$stateParams`,`Me`,function(e,t,n,r,i,a,o,s){return{restrict:`E`,replace:!0,link:function(c,l){$(import(`./BMN98DtA.js`),l[0],c,{scope:c,$analytics:e,$compile:t,$filter:n,$injector:r,$rootScope:i,$state:a,Me:s,$stateParams:o})}}}]),angular.module(`bandlab.audio`).directive(`aiGeneratePresetPanelButton`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,link:function(t,n){$(import(`./Be3K9cxn.js`),n[0],t,{$injector:e})}}}]).directive(`audioInputPresetSettings`,[`$analytics`,`$rootScope`,`EditorHistory`,`EditorRevision`,`EditorState`,`Katnip`,`MidiMapping`,function(e,t,n,r,i,a,o){return{replace:!0,restrict:`E`,scope:{preset:`=`},templateUrl:`https://www.bandlab.com/web-app/audio/partials/_audio-input-preset-settings-f71b32b49.html`,controller:[`$scope`,function(s){s.editorState=i,s.katnipEffects=a.metadata,s.effectsUI=a.effectsJson.effectsUI,s.$on(`$pedal:selected`,function(e,t){s.lastSelectedEffectSlug=t}),s.$watch(()=>r.selectedTrack,function(){s.lastSelectedEffectSlug=null}),s.toggleEffectBypass=function(e){s.stopPushUndo(),e.bypass=!e.bypass,t.$broadcast(Pc,{effectOrder:s.preset.effects.indexOf(e),effectSlug:e.slug,paramSlug:`bypass`,value:e.bypass}),s.resumePushUndo()},s.addEffect=function(t,n){if(s.preset.effects.find(e=>e.id===t.id))return;let r=n??s.preset.effects.length,i=s.preset.effects.slice(0,r),a=s.preset.effects.slice(r),o=i.concat([t],a);c(o,null),e.eventTrack(`Add Effect`,{category:`Mix Editor`,label:t.slug,value:o.length})},s.removeEffect=function(e){c(Jm(s.preset.effects,t=>t.id!==e.id),null),o.pruneMappings(),o.updateMappings()},s.stopPushUndo=function(){n.pushUndo(r.current),n.startToIgnorePushUndo()},s.resumePushUndo=function(){n.stopToIgnorePushUndo()},s.updateParams=function(e){t.$broadcast(Pc,{effectOrder:s.preset.effects.indexOf(e.effect),effectSlug:e.effect.slug,paramSlug:e.property,value:e.effect.params[e.property]})};function c(e,n){t.$broadcast(Vc,{effects:e,preset:n})}}]}}
41]),angular.module(`bandlab.audio`).directive(`audioInputSharedReverb`,[`$injector`,function(e){return{restrict:`E`,replace:!0,template:`<div></div>`,link:function(t,n){$(import(`./DsWj2Me3.js`),n[0],t,{$injector:e,scope:t})}}}]),angular.module(`bandlab.audio`).directive(`autoPitch`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div class="auto-pitch-container"></div>`,link:function(t,n){$(import(`./CO65DgPF.js`),n[0],t,{$injector:e,scope:t}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logMeAutoPitchOpen:e}){e()})}}}]),angular.module(`bandlab.audio`).directive(`creatorsKit`,[`MidiKeyboardHandler`,function(e){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_creators-kit-6c43c89b9.html`,compile:function(t){let n=Ry.map(function(e){return` 42 <button type="button" 43 class="virtual-drum-pad" 44 data-midi-code="${e.midi}" 45 aria-pressed="{{ isActive(${e.midi}) }}"> 46 <span class="virtual-drum-pad-shortcut">${e.shortcut}</span> 47 <mix-editor-mappable data-mappable-target="INSTRUMENT" data-mappable-note-number="${e.midi}"></mix-editor-mappable> 48 </button> 49 `}).join(``);return t.append(n),{post:function(){e.changeKeymap(`creators-kit`)}}},controller:`VirtualInstrumentCtrl`}}]);function kS(e){return function(t,n,r){var i=Object(t);if(!Rn(t)){var a=Mi(n,3);t=Pn(t),n=function(e){return a(i[e],e,i)}}var o=e(t,n,r);return o>-1?i[a?t[o]:o]:void 0}}var AS=Math.max;function jS(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:Ce(n);return i<0&&(i=AS(r+i,0)),nu(e,Mi(t,3),i)}var MS=kS(jS);angular.module(`bandlab.audio`).directive(`drumMachine`,[`$document`,`DrumMachine`,`DrumMachineState`,`EditorState`,`MidiKeyboardHandler`,`Soundbank`,function(e,t,n,r,i,a){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_drum-machine-7d2052a10.html`,link:function(o,s){i.changeKeymap(Vy),o.isPressed={};let c=s[0].querySelector(`#drum-machine-ruler`);function l(){let e=``;for(let t=0;t<n.patternLengthInBars*4;t++){let n=Math.floor(t/4)+1,r=t%4+1;e+=`<span ${r===1?`class="bar"`:``}>${n}.${r}</span>`}c.innerHTML=e}o.$watch(`drumMachineState.patternLengthInBars`,l),e.on(`keydown`,u),e.on(`keyup`,d),o.isCorruptedPatternSelected=function(){let{selectedPatternIndex:e,corruptedPatternIndices:t}=n;return t.has(e)},o.getDrumShortcut=function(e){let t=Jy(a.getPropertyValue(o.getTrack().soundbank,`instrumentSlug`))[e.midi];return t?t.shortcut:``},o.isRowMapped=function(e){if(!n.selectedPattern.notes)return!1;let t=n.selectedPattern.notes[e],r=qy()[t];return o.getDrumShortcut(r)};function u(e){if(e.repeat)return;let n=a.getPropertyValue(o.getTrack().soundbank,`instrumentSlug`);var i=Xy(n),s=Jy(n),c=i[e.code];a.isMusicalTypingActive()&&!r.isInBackground&&e.target.nodeName!==`INPUT`&&e.code!==`Space`&&(e.shiftKey&&e.code===`KeyL`||(e.target.nodeName===`SELECT`&&e.preventDefault(),c&&MS(t.getCurrentKit(),{midi:c})&&(t.previewNote(s[c]),o.isPressed[s[c].slug]=!0,o.$digest())))}function d(e){let t=a.getPropertyValue(o.getTrack().soundbank,`instrumentSlug`);var n=Xy(t),r=Jy(t),i=n[e.code];i&&(o.isPressed[r[i].slug]=!1,o.$digest())}o.$on(`DrumMachine:beat`,function(e,t){o.highlightedBeat=t,o.$applyAsync()}),o.$on(`$destroy`,function(){e.off(`keydown`,u),e.off(`keyup`,d)})},controller:`DrumMachineCtrl`}}]).controller(`DrumMachineCtrl`,[`$rootScope`,`$scope`,`DrumMachine`,`DrumMachineState`,`EditorHistory`,`EditorRevision`,`EditorState`,function(e,t,n,r,i,a,o){let s=!1,c=angular.noop;t.drumMachineState=r,t.getCurrentKit=n.getCurrentKit,t.state=o,t.swapDrum=(...e)=>{i.pushUndo(a.current),n.swapDrum(...e)},t.supportedNotes={},t.previewNote=function(e){r.isActive||n.previewNote(e)},t.isKitMenuOpen=function(e){return parseInt(za.element?.[0].getAttribute(`index`))===e},t.getAvailableKit=function(e){t.isKitMenuOpen(e)||Promise.all([n.getAvailableKit(e),n.getSupportedNotes()]).then(function([n,r]){t.supportedNotes[e]=r.map(e=>({available:n.find(t=>t.midi===e.midi),...e}))})},t.clearPattern=function(){i.pushUndo(a.current),n.clearPattern()},t.copyMatrixValues=function(){n.copyPattern()},t.isSelectedPatternEmpty=n.isSelectedPatternEmpty,t.hasMatrixValuesInClipboard=function(){return Zs.value&&Zs.value.pattern},t.pasteMatrixValues=function(){i.pushUndo(a.current),n.pastePattern()},t.onMouseDown=function(e,r){s=!0,i.pushUndo(a.current),n.touchDown(e,r),c=()=>n.touchUp(e,r),document.addEventListener(`mouseup`,t.onMouseUp)},t.onMouseEnter=function(e,t){s&&(n.touchMove(e,t),c=()=>n.touchUp(e,t))},t.onMouseUp=function(){s&&(s=!1,c(),c=angular.noop,document.removeEventListener(`mouseup`,t.onMouseUp))},t.$on(Nc,()=>{n.stop()}),t.$on(zc,()=>{e.$broadcast(`DrumMachine:beat`,-1)}),t.$on(`$destroy`,function(){Q.remove(`playing`,l),n.stop()}),Q.add(`playing`,l);function l(){if(a.selectedTrack.isFrozen)return;var i=MS(a.selectedTrack.regions,function(e){return o.crTime>e.startPosition&&o.crTime<e.endPosition}),s=en({bpm:a.current.metronome.bpm,signature:{notesCount:4,noteValue:4}}),c;i&&o.isPlaying?(c=(o.crTime-i.startPosition)%(i.loopLength||s*r.patternLengthInBars)+i.sampleOffset,c=Math.floor(c/s*16),e.$broadcast(`DrumMachine:beat`,c)):e.$broadcast(`DrumMachine:beat`,-1);let l=(a.selectedTrack.patterns??[]).findIndex(e=>e.sampleId===i?.sampleId);l<0||l===r.selectedPatternIndex||(n.selectPatternByIndex(l),t.$applyAsync())}}]).directive(`drumMachineNote`,function(){return{restrict:`A`,link:function(e,t){t.on(`mousedown`,function(t){za.element||t.which===3||e.onMouseDown(e.rowIndex,e.$index)}),t.on(`mouseenter`,function(t){t.buttons<1||t.which!==1||e.onMouseEnter(e.rowIndex,e.$index)}),t.on(`mouseup`,function(){e.onMouseUp(e.rowIndex,e.$index)})}}}),angular.module(`bandlab.audio`).directive(`knob`,function(){return{restrict:`E`,replace:!0,scope:{automation:`=`,bypass:`=`,trackId:`=`,effectId:`=`,effectIndex:`=`,metadata:`=`,onChange:`&`,onChangeEnd:`&`,onChangeStart:`&`,onChangeSelect:`&`,params:`=`,preset:`=`,property:`@`,size:`@`,selectMetadata:`=`,selectProperty:`@`,activatorProperty:`@`,subscribeToGlobalEffectChanges:`=`},templateUrl:`https://www.bandlab.com/web-app/audio/partials/_knob-d409ed134.html`,compile:function(e,t){return t.automation=t.automation||`effect.automation['${t.property}']`,t.bypass=t.bypass||`effect.bypass`,t.effectId=`effect.id`,t.effectIndex=t.effectIndex||`$index`,t.onChange=t.onChange||`updateParams({ effect: effect, property: '${t.property}' })`,t.onChangeSelect=t.onChangeSelect||`updateParams({ effect: effect, property: '${t.selectProperty}' })`,t.onChangeStart=t.onChangeStart||`stopPushUndo()`,t.onChangeEnd=t.onChangeEnd||`resumePushUndo()`,t.preset=t.trackId||`preset`,function(e,t,n){e.knobLarge=n.knobLarge,e.knobOrigin=n.knobOrigin,e.knobSignedTicks=n.knobSignedTicks,e.knobPointer=n.knobPointer,e.knobTicks=n.knobTicks}}}}).directive(`pedalKnob`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./Bvr3qDYa.js`),n[0],t,{$injector:e,scope:t})}}}]),angular.module(`bandlab.audio`).directive(`midiCode`,function(){return{restrict:`A`,link:function(e,t,n){let r=`mouseup mouseout touchend touchleave touchcancel`;t.on(`mousedown mouseenter touchstart`,function(i){if(t[0].getAttribute(`draggable`)!==`true`&&i.preventDefault(),i.type!==`touchstart`&&(i.buttons<1||i.which!==1))return;let a=parseInt(n.midiCode);e.press(a),t.on(r,o);function o(n){n.preventDefault(),e.release(a),t.off(r,o)}})}}});const NS=Wn(function(e){let t=e.get(`$rootScope`),n=e.get(`$analytics`),r=e.get(`MidiMapping`),i=e.get(`Katnip`),a=e.get(`Me`),{maxEffectsPerChain:o,maxEffectsPerChainWithoutMembership:s}=i.effectsJson.effectsUI,{availableFeaturesSet:c}=Kn(a),l=U(()=>c.value.has(`extended-fx-chain`)?o:s);return{addEffect:u,containsEffect:PS,removeEffect:d,moveEffectWithinTrack:f};function u(e,r,i,a={}){let{logAnalytics:o=!0,enforceMaxEffects:s=!0}=a;if(s&&r.effects.length+1>l.value)return{ok:!1,reason:`EXCEEDS_MAX_EFFECTS`};if(r.effects.find(t=>
49t.id===e.id))return{ok:!1};let c=i??r.effects.length,u=[...r.effects.slice(0,c),e,...r.effects.slice(c)];return t.$broadcast(Vc,{effects:u,track:r}),t.$applyAsync(),o&&n.eventTrack(`Add Effect`,{category:`Mix Editor`,label:e.slug,value:u.length}),{ok:!0}}function d(e,n){let i=n.effects.findIndex(t=>t.id===e.id);if(i===-1)return!1;let a=n.effects.toSpliced(i,1);return t.$broadcast(Vc,{effects:a,track:n}),t.$applyAsync(),r.pruneMappings(),r.updateMappings(),!0}function f(e,t,n){let r=n.effects.findIndex(t=>t.id===e.id);if(r===-1)return;let i=t+(r<t?-1:0);if(r!==i&&d(e,n))return u(e,n,i,{logAnalytics:!1})}});function PS(e,t){return t.effects.some(t=>t.id===e.id)}function FS(e,{preserveId:t,preserveAutomation:n}){return{id:t?e.id:i(),...IS(e,{preserveAutomation:n})}}function IS(e,{preserveAutomation:t}={preserveAutomation:!0}){let n=Object.fromEntries(Object.keys(e.params).map(e=>[e,[]]));return{bypass:e.bypass,slug:e.slug,params:structuredClone(m(e.params)),automation:t?structuredClone(m(e.automation)):n}}function LS(e,t){return e.length===t.length&&e.every((e,n)=>e.id===t[n]?.id)}function RS(e){return e?.type===`track`}function zS(e){return e?.type===`effect-chain`}const BS=`application/x-effect`;function VS(e){return!!e.dataTransfer?.types.includes(BS)}const HS=To(US);function US(e){let t=e.get(`EditorHistory`),n=e.get(`EditorRevision`),r=NS(e),i=e.get(`$rootScope`),a=e.get(`AppNotifications`),o=null,s=null,c=null,l=!1;return S(()=>{s!==null&&s(),k()}),{startDragFromMetadata:u,startDrag:f,handleDragOverEffectChain:x,handleDragOverTrack:v,handleDragOverDiscardSink:d,handleDragLeaveEffectChain:h,handleDragLeaveTrack:g,handleDropEffectChain:T,handleDropTrack:w,handleDropDiscardSink:E,endDrag:p,isDragged:e=>o?.draggedEffect?.id===e};function u(e,t){f(e,{effect:Tn(t),index:null})}function d(e){VS(e)&&e.dataTransfer?.dropEffect&&(WS(e),e.dataTransfer.dropEffect=`move`)}function f(e,{effect:r,index:a}){e.stopPropagation();let l=ul(n.current);t.startToIgnorePushUndo(),s=we(t.stopToIgnorePushUndo),c=we(()=>{t.pushUndo(l),i.$applyAsync()}),e.dataTransfer?.setData(BS,``),A(!0),o={draggedEffect:r,initialIndex:a,initialTrack:ul(n.selectedTrack),target:null},i.$applyAsync()}function p(e){if(VS(e)&&o)return m(e.dataTransfer?.dropEffect===`none`?`rejected`:`success`)}function m(e){let t=e;switch(s?.(),e){case`success`:n()?c?.():t=`no-change`;break;case`rejected`:O()}return k(),i.$applyAsync(),t;function n(){if(!o)return;if(l)return!0;let e=j(o.initialTrack.id)?.effects;return!tt(e)||!LS(e,o.initialTrack.effects)}}function h(e){if(!VS(e)||!o)return;let t=e.currentTarget;if(!t)throw Error(`No effect chain el`);if(!qS(t,e)){if(zS(o.target)){let e={...o.draggedEffect};r.containsEffect(e,o.target.track)&&(r.removeEffect(e,o.target.track),i.$applyAsync())}C()}}function g(e){if(!VS(e)||!o)return;let t=e.currentTarget;if(!t)throw Error(`No effect chain el`);qS(t,e)||y(t.dataset.id)}function _(){if(o&&o.target)switch(o.target.type){case`track`:y();break;case`effect-chain`:C()}}function v(e,{track:t}){VS(e)&&o&&(WS(e),e.dataTransfer&&(e.dataTransfer.dropEffect=e.altKey&&o.initialIndex!==null?`copy`:`move`),!(RS(o.target)&&o.target.track.id===t.id)&&(b(t.id,!0),o.target={type:`track`,track:t}))}function y(e){o?.target&&o.target.type===`track`&&(e?(b(e,!1),o.target.track.id===e&&(o.target=null)):(b(o.target.track.id,!1),o.target=null))}function b(e,t){document.querySelector(`.mix-editor-track-header[data-id="${e}"]`)?.classList.toggle(`dropping`,t),document.querySelector(`.mix-editor-track[data-id="${e}"]`)?.classList.toggle(`dropping`,t)}function x(e,{track:t}){if(!VS(e)||!o)return;let n=document.getElementById(`audio-input-effect-chain`);if(!n)throw Error(`No effect chain el`);WS(e);let a={track:t,type:`effect-chain`,index:GS(e.clientX,n,t.effects)};if(zS(o.target)&&o.target.track.id===a.track.id&&o.target.index===a.index)return;let s=o.draggedEffect;r.containsEffect(s,a.track)?r.moveEffectWithinTrack(s,a.index,a.track):D(s,a.track,a.index),i.$applyAsync(),o.target=a}function C(){o?.target&&o.target.type===`effect-chain`&&(o.target=null)}function w(e){if(!VS(e)||!o)return;if(e.preventDefault(),!o.target)return m(`rejected`);let t=FS(o.draggedEffect,{preserveId:!0,preserveAutomation:!0}),n=FS(o.draggedEffect,{preserveId:!1,preserveAutomation:!0});switch(e.altKey&&o.initialIndex!==null?`copy-effect`:`move-effect`){case`copy-effect`:{O();let{ok:e}=D(n,o.target.track);if(!e)return m(`rejected`);a.addNotification({title:`Effect Copied`,content:`Added to end of FX chain`,classList:`success`,autoclose:8e3});break}case`move-effect`:{let e=j(o.initialTrack.id);e&&r.containsEffect(t,e)&&(r.removeEffect(t,e),i.$applyAsync());let{ok:n}=D(t,o.target.track);if(!n)return m(`rejected`);a.addNotification({title:`Effect Moved`,content:`Added to end of FX chain`,classList:`success`,autoclose:8e3});break}}return i.$applyAsync(),o.target.track.id!==o.initialTrack.id&&(l=!0),m(`success`)}function T(e){if(VS(e)&&o)return e.preventDefault(),m(e.dataTransfer?.dropEffect===`none`?`rejected`:`success`)}function E(e){if(VS(e)&&o)return e.preventDefault(),m(e.dataTransfer?.dropEffect===`none`?`rejected`:`success`)}function D(...e){let{ok:t,reason:n}=r.addEffect(...e);return!t&&n===`EXCEEDS_MAX_EFFECTS`&&(O(),a.addNotification({title:`FX chain limit reached`,content:`Remove an effect to add another`,classList:`alert`,autoclose:8e3})),{ok:t,reason:n}}function O(){if(!o)return;let e=FS(o.draggedEffect,{preserveId:!0,preserveAutomation:!0}),t=j(o.initialTrack.id);t&&o.initialIndex!==null&&(r.containsEffect(e,t)||r.addEffect(e,t,o.initialIndex))}function k(){o&&(o.target&&_(),A(!1),o=null,s=null,c=null,l=!1)}function A(e){document.body.classList.toggle(`is-effect-pedal-dragging`,e)}function j(e){return n.current.tracks.find(t=>
49t.id===e)}}function WS(e){e.preventDefault()}function GS(e,t,n){let r=Array.from(t.querySelectorAll(`.pedal-container`));for(let t=0;t<r.length;t++){let n=r[t].getBoundingClientRect();if(e<n.left+n.width/2)return t}return n.length}const KS=To(e=>{let t=HS(e),n=e.get(`EditorRevision`),r=O(null),i=O(null),a=new Map;function o(e){if(!VS(e))return;if(!r.value)throw void 0;let n=s(r.value);n&&t.handleDragOverEffectChain(e,{track:n})}I(()=>{if(r.value=document.getElementById(`audio-input-effect-chain`),!r.value)throw Error(`Effect Chain element must have been rendered`);if(i.value=document.querySelector(`.mix-editor-block-tracks`),!i.value)throw Error(`mixEditorBody element must have been rendered`);i.value.addEventListener(`dragover`,t.handleDragOverDiscardSink),i.value.addEventListener(`drop`,t.handleDropDiscardSink),r.value.addEventListener(`dragover`,o),r.value.addEventListener(`dragleave`,t.handleDragLeaveEffectChain),r.value.addEventListener(`drop`,t.handleDropEffectChain)}),S(()=>{i.value?.removeEventListener(`dragover`,t.handleDragOverDiscardSink),i.value?.removeEventListener(`drop`,t.handleDropDiscardSink),r.value?.removeEventListener(`dragover`,o),r.value?.removeEventListener(`dragleave`,t.handleDragLeaveEffectChain),r.value?.removeEventListener(`drop`,t.handleDropEffectChain),a.clear()});function s(e){let t=e.dataset.trackId;if(!t)return;if(a.has(t))return a.get(t);let r=n.current.tracks.find(e=>e.id===t);return r&&a.set(t,r),r}});function qS(e,t){if(t.relatedTarget){let n=t.relatedTarget;return n instanceof Node&&e.contains(n)}let n=document.elementFromPoint(t.clientX,t.clientY);return e.contains(n)}angular.module(`bandlab.audio`).directive(`draggablePedal`,[`$injector`,function(e){return{restrict:`A`,link:function(t,n){n[0].draggable=!0;let r=Gn(()=>HS(e),t);n[0].addEventListener(`dragstart`,function(e){r.startDrag(e,{effect:t.effect,index:t.preset.effects.findIndex(e=>e.id===t.effect.id)})}),n[0].addEventListener(`dragend`,function(e){VS(e)&&r.endDrag(e)}),t.isDragged=()=>r.isDragged(t.effect.id)}}}]).directive(`pedalHeader`,function(){return{replace:!0,scope:{effect:`=`,effectId:`=`,effectIndex:`=`,effectsUI:`=`,trackId:`=`,preset:`=`,toggleEffectBypass:`&`,removeEffect:`&`,katnipEffects:`=`},templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-header-1a50d315d.html`,compile:function(e,t){t.effect=`effect`,t.effectId=`effect.id`,t.effectIndex=`$index`,t.effectsUI=`effectsUI`,t.preset=t.trackId||`preset`,t.removeEffect=`removeEffect(effect)`,t.toggleEffectBypass=`toggleEffectBypass(effect)`,t.katnipEffects=`katnipEffects`}}}).directive(`pedalBypass`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div class="pedal-bypass"></div>`,link:function(t,n,r){$(import(`./D74EkxvK.js`),n[0],t,{$injector:e,scope:t,pedalTitle:r.pedalTitle})}}}]).directive(`pedalHeaderToggletip`,function(){return{replace:!0,restrict:`E`,template:`<div></div>`,scope:{content:`@`},link:function(e,t){$(import(`./B6IK8Iwg.js`),t[0],e,{scope:e})}}}).directive(`pedalAutoFilter`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-auto-filter-645bcdc47.html`}}).directive(`pedalAutoPan`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-auto-pan-5d6212aa2.html`}}).directive(`pedalAutoWah`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-auto-wah-e419099e0.html`}}).directive(`pedalBackCompr`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-back-compr-6a47b95c9.html`}}).directive(`pedalBeatSyncDelay2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-beat-sync-delay2-8c49fc3b8.html`}}).directive(`pedalVisualBeatSyncDelay`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./Cv1aYz-_.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalBitBandit`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-bit-bandit-e73551aa0.html`}}).directive(`pedalBossCe5`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-boss-ce5-fa4e46db1.html`}}).directive(`pedalCabinet`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-cabinet-9e206abfd.html`}}).directive(`pedalChorus`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-chorus-21eff6fa7.html`}}).directive(`pedalCleanLimiter`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-clean-limiter-543685571.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalCleanLimiterBody`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},link:function(t,n){$(import(`./B2QDxxe3.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalCompander`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-compander-7a159716c.html`}}).directive(`pedalVisualChorus`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./Z6ZtLWCT.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalCompressor`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-compressor-51c9dbe61.html`}}).directive(`pedalDdelay`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-ddelay-9610922ff.html`}}).directive(`pedalDdelayPlus`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-ddelay-plus-f64ff1f08.html`}}).directive(`pedalDdelayPlus2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-ddelay-plus-2-8923422b5.html`}}).directive(`pedalVisualDdelayPlus`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./CkpRR1gw.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalReverser`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-reverser-6e8a96295.html`}}).directive(`pedalDelay`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-delay-992301796.html`}}).directive(`pedalEqualizer`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-equalizer-f60458a09.html`}}).directive(`pedalExciter`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-exciter-5240ec9a0.html`}}).directive(`pedalExpGate`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-exp-gate-b3059416e.html`}}).directive(`pedalVisualExpGate`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./Bj7LOoyX.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalFilter`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-filter-13f068ae5.html`}}).directive(`pedalGain`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-gain-42c997358.html`}}).directive(`pedalGain2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-gain2-57a043ad7.html`}}).directive(`pedalGater2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-gater-2-132644c6e.html`}}).directive(`pedalGenericAmp`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-generic-amp-02363e38e.html`}}).directive(`pedalGuitarAmp`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-guitar-amp-48479ba08.html`}}).directive(`pedalGuitarCab`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-guitar-cab-39985bd99.html`}}).directive(`pedalOctaver`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-octaver-7cd3a992b.html`}}).directive(`pedalOverdrive`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-overdrive-7b13db8b0.html`}}).directive(`pedalShaper`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-shaper-adce090ad.html`}}).directive(`pedalVisualOverdrive`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./DXhOEo8b.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalBossGe7`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-boss-ge7-7bc216686.html`}}).directive(`pedalRossCompressor`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-ross-compressor-0ab874ded.html`}}).directive(`pedalLa2aCompressor`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-la2a-compressor-3acfe8071.html`}}
49).directive(`pedalCompressor1176`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-compressor-1176-3db889129.html`}}).directive(`pedalMxrPhase90`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-mxr-phase-90-f353a914b.html`}}).directive(`pedalDimensionD`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-dimension-d-bed883ca9.html`}}).directive(`pedalEhSmallStone`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-eh-small-stone-38d435997.html`}}).directive(`pedalBossVb2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-boss-vb2-c760dbf5c.html`}}).directive(`pedalBigMuffPi`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-big-muff-pi-5279d93da.html`}}).directive(`pedalBossMt2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-boss-mt2-d804d6024.html`}}).directive(`pedalProCoRat`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-pro-co-rat-5639d2f61.html`}}).directive(`pedalMxrDistortion`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-mxr-distortion-f907d1a6c.html`}}).directive(`pedalFuzzFace`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-fuzz-face-ed412d458.html`}}).directive(`pedalBossBd2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-boss-bd2-aba41e3eb.html`}}).directive(`pedalTubeScreamer2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-tube-screamer2-466c5dc6a.html`}}).directive(`pedalPhaser`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-phaser-e36a9ec7c.html`}}).directive(`pedalPingpongDelay`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-pingpong-delay-6ba7cea6a.html`}}).directive(`pedalVisualPingpongDelay`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./DDCyLw2u.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalPumper`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-pumper-442eabe0f.html`}}).directive(`pedalPumper2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-pumper-2-fa26e2f6a.html`}}).directive(`pedalPumper3`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-pumper-3-42b7a6849.html`}}).directive(`pedalReverbHybrid`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-reverb-hybrid-ca00c578f.html`}}).directive(`pedalDeEsser`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-de-esser-6065cebac.html`}}).directive(`pedalVisualDeEsser`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./DAA3MscL.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalSpringReverb2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-spring-reverb2-b36e99e73.html`}}).directive(`pedalVisualSpringReverb2`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./KWPgOLv9.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalSimpleStudioReverb`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-simple-studio-reverb-3b56b8239.html`}}).directive(`pedalVisualSimpleStudioReverb`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./Cy_UX0Qg.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalTapeSimulator`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-tape-simulator-b3a1a55e0.html`}}).directive(`pedalTubeScreamer`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-tube-screamer-ad083e74b.html`}}).directive(`pedalVocalDoubler`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-vocal-doubler-8bbe9df16.html`}}).directive(`pedalVocalVerb`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-vocal-verb-4b107ebad.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalVocalVerbTemplateButtons`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{metadata:`=metadataParams`,params:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},link:function(t,n){$(import(`./BNxGcpNR.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalAntiSqueal`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-anti-squeal-ffe02dbf8.html`}}).directive(`pedalTremolo`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-tremolo-2b1aba7
49a9.html`}}).directive(`pedalVisualTremolo`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,params:`=`},link:function(t,n){$(import(`./6gJYuEnG.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalStereoSpreader`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-stereo-spreader-74f3752f4.html`}}).directive(`pedalLofi`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-lofi-be4c91bc3.html`}}).directive(`pedalVisualLofi`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=`,bypass:`=`,params:`=`},link:function(t,n){$(import(`./Bwpk87qO.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalThreeBandEq2`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-three-band-eq2-d8e8e8776.html`}}).directive(`pedalUniverb`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-univerb-5831e30aa.html`}}).directive(`pedalMasteringLimiter`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-mastering-limiter-1ba1d4a7d.html`}}).directive(`pedalMultiShifter`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-multi-shifter-3198881b4.html`}}).directive(`pedalPitchShifter`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-pitch-shifter-7e0293036.html`}}).directive(`pedalEnhancer`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-enhancer-2fa5ac18d.html`}}).directive(`pedalVisualEq`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-visual-eq-42b32a329.html`,link:function(e){e.onChangeStart=e.stopPushUndo,e.onChangeEnd=e.resumePushUndo,e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalVisualEqBody`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectId:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},link:function(t,n){for(let e=0;e<3;e++)t.metadata[`filter${e}Gain`].name=`Gain`,t.metadata[`filter${e}Freq`].name=`Freq`,t.metadata[`filter${e}Bandwidth`].name=`Width`;$(import(`./fePguP84.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalMultibandCompressor`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-multiband-compressor-61c78d4ec.html`,link:function(e){e.katnipEffects.multibandComp2.params.main_inputGain.name=`Input Gain`,e.katnipEffects.multibandComp2.params.main_outputGain.name=`Output Gain`;for(let t=0;t<4;t++)e.katnipEffects.multibandComp2.params[`band${t}_threshold`].name=`Threshold`,e.katnipEffects.multibandComp2.params[`band${t}_ratio`].name=`Ratio`,e.katnipEffects.multibandComp2.params[`band${t}_attack`].name=`Attack`,e.katnipEffects.multibandComp2.params[`band${t}_release`].name=`Release`,e.katnipEffects.multibandComp2.params[`band${t}_makeupGain`].name=`Level`;e.effect.state={currentBandNum:0},e.getMetadata=function(t,n){return e.katnipEffects.multibandComp2.params[`band${t}_${n}`]},e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalVisualMultibandCompressor`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{state:`=`,automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectId:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`,trackId:`=`,property:`@`},link:function(t,n){$(import(`./C2_ToHg7.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalMultibandSoloSwitch`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,scope:{state:`=`,params:`=`,metadata:`=metadataParams`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},link:function(t,n){$(import(`./0pdElg9D.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalShimmerReverb`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-shimmer-reverb-547eca254.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalShimmerReverbBody`,[`$injector`,function(e){return{replace:!0,template:`<div></div>`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectId:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},link:function(t,n){$(import(`./FgsaaWox.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalOneKnobBrighter`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-one-knob-brighter-ad8ad05e0.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalOneKnobBrighterBody`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},template:`<div></div>`,link:function(t,n){$(import(`./D7pTrImJ.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalOneKnobEcho`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-one-knob-echo-a86fe4085.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalOneKnobEchoBody`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},template:`<div></div>`,link:function(t,n){$(import(`./9xexnvhJ.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalOneKnobPunchy`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-one-knob-punchy-ca00fb0ff.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalOneKnobPunchyBody`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},template:`<div></div>`,link:function(t,n){$(import(`./U2R7sewj.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalOneKnobRoom`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-one-knob-room-314870976.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalOneKnobRoomBody`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},template:`<div></div>`,link:function(t,n){$(import(`./ByHERYvj.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalOneKnobBassy`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-one-knob-bassy-0b4e0efc5.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalOneKnobBassyBody`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},template:`<div></div>`,link:function(t,n){$(import(`./BiR8SeGQ.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalOneKnobDirty`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-one-knob-dirty-5b607e0e4.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalOneKnobDirtyBody`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},template:`<div></div>`,link:function(t,n){$(import(`./C17g1fF3.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalOneKnobLeveller`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-one-knob-leveller-5fb0752d3.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalOneKnobLevellerBody`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},template:`<div></div>`,link:function(t,n){$(import(`./EY9i36NC.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalOneKnobToasty`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-one-knob-toasty-8e344f056.html`,link:function(e){e.onChange=function(t){e.updateParams({effect:e.effect,property:t})}}}}).directive(`pedalOneKnobToastyBody`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{automation:`=automationParams`,metadata:`=metadataParams`,params:`=`,bypass:`=`,effectIndex:`=`,onChange:`=`,onChangeEnd:`&`,onChangeStart:`&`},template:`<div></div>`,link:function(t,n){$(import(`./B0M2mpN5.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalDefault`,[`$compile`,`$injector`,`EditorState`,`Me`,function(e,t,n,r){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_pedal-default-fff57d4b4.html`,link:function(i,a){let o=i.katnipEffects[i.effect.slug],s=a[0].querySelector(`.pedal-settings`),{availableFeaturesSet:c}=qn(i,r);o.isMembershipOnly&&!c.value.has(`membership-effects`)?l():u();function l(){$(import(`./C4ltkuFv.js`),s,i,{$injector:t},{metadata:o,openPaywall:m});let e=re(()=>c.value.has(`membership-effects`),function(){c.value.has(`membership-effects`)&&(u(),e())});i.$on(`$destroy`,function(){e()})}function u(){let t=e(i.effectsUI.effects[i.effect.slug].paramList.map(function(e){return[e,o.params[e]]}).map(function([e,t]){if(t.type===`bool`)return d(i.effect.slug,e);if(t.type===`enum`)return f(i.effect.slug,e);if(t.type===`float`)return p(i.effect.slug,e)}).join(``))(i),n=angular.element(s);n.empty(),n.append(t)}function d(e,t){return`<pedal-toggle-boolean metadata="katnipEffects.${e}.params.${t}" params="effect.params" property="${t}"></pedal-toggle-boolean>`}function f(e,t){return`<slide-switch metadata="katnipEffects.${e}.params.${t}" params="effect.params" property="${t}"></slide-switch>`}function p(e,t){return`<knob metadata="katnipEffects.${e}.params.${t}" params="effect.params" property="${t}"></knob>`}function m(){ai({productAttribution:`${o.slug.toLowerCase()}_membership_banner`,productAttributionGroup:`effects`,useCheckoutModal:!0,onCheckoutSuccess:()=>{n.hasMembership=!0,i.$applyAsync()}})}}}}]),angular.module(`bandlab.audio`).directive(`presetAttachment`,[`$injector`,`$rootScope`,`$state`,`Me`,function(e,t,n,r){return{restrict:`E`,replace:!0,scope:{post:`=`},template:`<div></div>`,link:function(i,a){$(import(`./MTZeYeq2.js`),a[0],i,{$injector:e,$rootScope:t,$state:n,Me:r},{post:i.post})}}}]).directive(`presetAddForm`,[`$injector`,`$rootScope`,`$state`,function(e,t,n){return{restrict:`E`,replace:!0,template:`<div></div>`,scope:{preset:`<`},link:function(r,i){$(import(`./Bn6gIARQ.js`),i[0],r,{$injector:e,$rootScope:t,$state:n}
49,{preset:r.preset})}}}]),angular.module(`bandlab.audio`).constant(`QuickUpload`,{state:{}}).directive(`quickUploadDropzone`,[`$state`,`$stateParams`,`$timeout`,`appActions`,`AppNotifications`,`EditorLoader`,`RevisionImporter`,function(e,t,n,r,i,a,o){return{replace:!0,restrict:`A`,link:function(s,c){if(c.on(`click`,function(){r.checkAllowed(`upload`)&&pr({accept:Wr}).then(function([e]){l(e)})}),c.on(`drop`,function(e){e.preventDefault(),e.stopPropagation(),c.removeClass(`dropping`),l(Qe(e,`dataTransfer.files[0]`,!1))}),c.on(`dragover`,function(e){e.preventDefault(),e.stopPropagation(),c.addClass(`dropping`)}),c.on(`dragleave`,function(){c.removeClass(`dropping`)}),t.remote){let n=t.remote;e.go(`.`,{remote:null}),Je.get(t.remote).blob().then(function(e){return e.name=n.split(`/`).pop(),e}).then(l)}function l(t){t&&r.checkAllowed(`upload`)&&fr(t).then(function(e){return Promise.all([o.isAudioFileValid(e),o.getMetadataFromFile(e)])}).then(function([[t,r],{coverArt:i,title:a}={}]){s.state.audioFile=t,s.state.description=``,s.state.duration=r,s.state.genres=[],s.state.imageFileFromMetadata=i,s.state.isForkable=!0,s.state.name=a||t.name,s.state.sampleId=ze(),n(function(){s.state.step=1,e.go(`quickUpload2`)})}).catch(function(e){a.flushQueue(),i.addNotification({title:Or,content:i.escapeContent(e.message),classList:`alert`,autoclose:8e3})})}}}}]).directive(`quickUploadCover`,[`AppNotifications`,function(e){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_quick-upload-cover-be294509b.html`,link:function(t,n){t.state.imageFile=null,t.state.revisionCover=null,t.state.imageWidth=null,t.state.imageHeight=null,t.state.pictureId=null,t.state.imageFileFromMetadata&&r(t.state.imageFileFromMetadata),n.on(`click`,function(){pr({accept:`image/*`}).then(function([e]){r(e)})}),n.on(`drop`,function(e){e.preventDefault(),e.stopPropagation(),n.removeClass(`dropping`),r(Qe(e,`dataTransfer.files[0]`,!1))}),n.on(`dragover`,function(e){e.preventDefault(),e.stopPropagation(),n.addClass(`dropping`)}),n.on(`dragleave`,function(){n.removeClass(`dropping`)});function r(n){if(n)return Rr(n).then(function(e){return Er(e)}).then(function({file:e,image:n}){t.state.imageFile=e,t.state.revisionCover=n.src,t.state.imageWidth=n.width,t.state.imageHeight=n.height}).catch(function(t){e.addNotification({title:Or,content:e.escapeContent(t.message),classList:`alert`,autoclose:8e3})}).finally(function(){t.$applyAsync()})}}}}]).directive(`quickUploadCoverCta`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_quick-upload-cover-cta-236557c35.html`}}),angular.module(`bandlab.audio`).directive(`sampler`,function(){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_sampler-b18d1e7cb.html`,controller:[`$scope`,`EditorHistory`,`EditorPlayer`,`EditorRevision`,`MidiKeyboardHandler`,`SharedMidiSynth`,`Soundbank`,function(e,t,n,r,i,a,o){o.isMusicalTypingActive()&&i.enable(),i.changeKeymap(`creators-kit`),o.setSampler();let s=a.getSampler(),c=re([s.recordingPad],function(){e.$applyAsync()}),l=re(()=>[...s.pads],function(){e.$applyAsync();let t=s.track;s.track&&s.getMultipadSamplerForTrack().then(async function([r,i]){try{let e=await r.getKit();e.kit=JSON.parse(e.kit),e.kit.layers=e.kit.layers||[],Object.assign(t.samplerKit,e),n.current.resetPreviousMixData()}finally{e.$applyAsync(),i()}}).catch(e=>{})},{deep:!0});s.updateSamplerState(),e.$on(`mixUpdate`,function(){s.updateSamplerState()}),e.pads=Ry,e.$on(`MidiMessage:noteEvent`,function(t,n){n>=36&&n<52&&(s.pad=s.pads[n-36]),e.$digest()}),e.$on(`$destroy`,function(){Q.remove(`playing`,d),i.disable(),s.stopRecording().then(function(){l(),c()})}),e.$on(`Sampler:deletePad`,function(){let t=s.pads.indexOf(s.pad);t>=0&&s.pads[t].id&&e.delete(t+36)}),e.press=function(e){if(!s.pad.samplerPad)return;i.press(e);let t=Ux(e);s.pad=s.pads[t]||{}},e.release=function(e){s.pad.samplerPad&&i.release(e)},e.isPlayingMap=Array(128).fill(!1),e.isHighlightedMap={};let u;e.$on(`Sampler:highlightAfterSlice`,(t,n)=>
49{clearTimeout(u),n.forEach(t=>{let n=t+36;e.isHighlightedMap[n]=!0}),u=setTimeout(()=>{e.isHighlightedMap={},e.$applyAsync()},1500)}),Q.add(`playing`,d);async function d(){e.isPlayingMap=await n.current.getKeyDownState(r.selectedTrack.id),e.$digest()}e.$on(zc,()=>{e.isPlayingMap=Array(128).fill(!1)}),e.isActive=function(t){return!!a.current[t]||e.isPlayingMap[t]},e.isLoading=function(){return s.loading},e.isRecordingPad=function(e){let t=Ux(e);return s.recordingPad===s.pads[t]},e.isSelected=function(e){let t=Ux(e);return s.pads[t]===s.pad},e.isMapped=function(e){let t=Ux(e);return s.pads[t]?.id},e.getColor=function(e){let t=Ux(e);return Bx[s.pads[t]?.color]},e.delete=function(e){return JS(s,e,t,r)}}]}}).directive(`samplerPad`,[`$injector`,`$q`,`$timeout`,`EditorHistory`,`EditorRevision`,`SharedMidiSynth`,function(e,t,n,r,i,a){return{restrict:`C`,link:function(o,s){let c=a.getSampler(),l=Ux(o.pad.midi);o.isCorrupted=c.pads[l]?.isCorrupted;let u=re(()=>[c.pads[l]?.waveform,c.pads[l]?.color],function(){p()},{immediate:!0}),d=re(()=>c.pads[l]?.isCorrupted,e=>{o.isCorrupted=e},{immediate:!0});Q.add(`onDprChange`,f);function f(){let e=c.pads[l],t=e?.samplerPad;e?.waveform&&t&&e.updatePadWaveformPath().then(p)}function p(){let e=s[0].querySelector(`canvas`);if(!c.pads[l]?.waveform){Bo(e.getContext(`2d`));return}o.$applyAsync(),Gx(e,c.pads[l].waveform,c.pads[l]?.color||0)}o.$on(`$destroy`,function(){u(),d(),Q.remove(`onDprChange`,f)}),s[0].addEventListener(`pointerdown`,function(e){if(c.pad=c.pads[l]||{},e.button>0||c.pad.id)return;let a=n(()=>{},200);e.target.setPointerCapture(e.pointerId),e.target.style.touchAction=`none`,t.all([a]).then(function(){return c.startRecording(l,i.selectedTrack)}).then(function(){r.pushUndo(i.current);let e=re(()=>c.pad,t);s[0].addEventListener(`pointerup`,n);function t(){return e(),s[0].removeEventListener(`pointerup`,n),c.stopRecording()}function n(){return t().then(function(){c.pad=c.pads[l]})}}).catch(e=>{}),s[0].addEventListener(`pointerup`,function(){n.cancel(a),e.target.style.touchAction=``},{once:!0})}),s[0].addEventListener(`mouseover`,function(){Gs($s)&&(s[0].classList.add(`dropping`),s[0].classList.add(`copying`))}),s[0].addEventListener(`mouseleave`,function(){Gs($s)&&(s[0].classList.remove(`dropping`),s[0].classList.remove(`copying`))}),s[0].addEventListener(`mouseup`,function(){if(!Gs($s))return;let t=Us.get($s.value);t.id=t._id??t.id,t.isPlayable=!0,Xx(e,c.pads[l],t,c),s[0].classList.remove(`dropping`),s[0].classList.remove(`copying`)}),s[0].addEventListener(`dragstart`,function(e){qs({type:`sampler_pad`,value:{type:`sampler_pad`,...o.pad},altKey:e.altKey}),o.release(o.pad.midi),$s.altKey||(e.dataTransfer.effectAllowed=`move`)}),s[0].addEventListener(`dragenter`,function(e){e.preventDefault(),e.stopPropagation(),o.pad!==$s.value&&c.recordingPad!==c.pads[l]&&(s[0].classList.add(`dropping`),s[0].classList.toggle(`copying`,$s.altKey||$s.value?.src))}),s[0].addEventListener(`dragover`,function(e){e.preventDefault(),e.stopPropagation()}),s[0].addEventListener(`dragleave`,function(e){e.preventDefault(),e.stopPropagation(),s[0].classList.remove(`dropping`),s[0].classList.remove(`copying`)}),s[0].addEventListener(`drop`,function(t){if(t.preventDefault(),t.stopPropagation(),o.pad===$s.value||c.recordingPad===c.pads[l])return;s[0].classList.remove(`dropping`),s[0].classList.remove(`copying`);let n=[...t.dataTransfer.files];if(n.length===1){r.pushUndo(i.current);let t=Ux(s[0].getAttribute(`data-midi-code`)),o=a.getSampler();return Jx(e,o.pads[t],n[0],o)}if(n.length>1){r.pushUndo(i.current);let t=a.getSampler();n.reduce(function(n,r){return n.then(function(){let n=t.getEmptyPad();return n<0?Promise.resolve():Jx(e,t.pads[n],r,t)})},Promise.resolve())}if(Ks($s))return r.pushUndo(i.current),Kx(c.pads[l],$s.value,c,e);if($s.value!==o.pad&&Qs($s)){r.pushUndo(i.current);let e=a.getSampler(),t=$s.value.index,n=o.pad.index;return $s.altKey?e.duplicatePad(t,n):e.pads[n].id?e.swapPads(t,n):e.movePad(t,n)}})}}}]).directive(`vueSampler`,[`$injector`,`EditorHistory`,`EditorRevision`,`InputDevice`,`SharedMidiSynth`,function(e,t,n,r,i){return{restrict:`A`,controller:[`$scope`,`$element`,function(a,o){let s=i.getSampler(),c=re(()=>s.pad,function(){a.pad=[...Ry].sort((e,t)=>
49e.midi-t.midi)[s.pads.indexOf(s.pad)],a.$applyAsync()});$(import(`./PRkTnrMi.js`),o[0],a,{$injector:e,EditorHistory:t,EditorRevision:n,InputDevice:r,scope:a,SharedMidiSynth:i},{}),a.$on(`$destroy`,function(){c()})}]}}]).controller(`SamplerMenuCtrl`,[`$injector`,`$scope`,`EditorHistory`,`EditorRevision`,`SharedMidiSynth`,function(e,t,n,r,i){let a=i.getSampler(),{requireStudioMembership:o}=Eo(e);t.autoslice=async function(e){if(await o(`studio_auto_slice`,`studio`)){let t=Ux(e);a.pads[t].autoslice()}},t.clear=async()=>await CS(e,t.getTrack(),a),t.canClearSamplerKit=TS,t.canPaste=function(){return tt(a.clipboard)&&!t.isRecording()},t.import=function(t){let n=Ux(t);qx(e,a.pads[n],a)},t.isRecording=function(){return a.recordingPad?.midi},t.isSet=function(e){let t=Ux(e);return a.pads[t]?.id},t.normalize=function(e){n.pushUndo(r.current);let t=Ux(e);a.pads[t].normalize()},t.crop=function(e){n.pushUndo(r.current);let t=Ux(e);a.pads[t].crop()},t.reverse=function(e){n.pushUndo(r.current);let t=Ux(e);a.pads[t].reverse()},t.delete=function(e){return JS(a,e,n,r)},t.paste=function(e){n.pushUndo(r.current);let t=Ux(e);a.pads[t].paste()},t.copy=function(e){let t=Ux(e);a.pads[t].copy()}}]);async function JS(e,t,n,r){n.pushUndo(r.current);let i=Ux(t);await e.pads[i].remove(),xS(`me_sampler_pad_actions`,{action:`delete`})}angular.module(`bandlab.audio`).directive(`slider`,function(){return{restrict:`E`,replace:!0,scope:{automation:`=`,bypass:`=`,trackId:`=`,effectId:`=`,effectIndex:`=`,metadata:`=`,onChange:`&`,onChangeEnd:`&`,onChangeSelect:`&`,onChangeStart:`&`,params:`=`,preset:`=`,property:`@`,selectMetadata:`=`,selectProperty:`@`,subscribeToGlobalEffectChanges:`=`},templateUrl:`https://www.bandlab.com/web-app/audio/partials/_slider-04e40bf0b.html`,compile:function(e,t){return t.automation=t.automation||`effect.automation['${t.property}']`,t.bypass=t.bypass||`effect.bypass`,t.effectId=`effect.id`,t.effectIndex=t.effectIndex||`$index`,t.onChange=t.onChange||`updateParams({ effect: effect, property: '${t.property}' })`,t.onChangeSelect=t.onChangeSelect||`updateParams({ effect: effect, property: '${t.selectProperty}' })`,t.onChangeStart=t.onChangeStart||`stopPushUndo()`,t.onChangeEnd=t.onChangeEnd||`resumePushUndo()`,t.preset=t.trackId||`preset`,function(e,t,n){e.sliderInput=n.sliderInput,e.sliderOrigin=n.sliderOrigin,e.sliderPro=n.sliderPro}}}}).directive(`pedalSlider`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div class="slider"></div>`,link:function(t,n){$(import(`./BEbIh34e.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`sliderButton`,function(){return{restrict:`E`,replace:!0,scope:{automation:`=`,bypass:`=`,trackId:`=`,effectId:`=`,effectIndex:`=`,metadata:`=`,onChange:`&`,onChangeEnd:`&`,onChangeStart:`&`,params:`=`,preset:`=`,property:`@`},template:`<div><pedal-slider-button></pedal-slider-button></div>`,compile:function(e,t){t.automation=t.automation||`effect.automation['${t.property}']`,t.bypass=t.bypass||`effect.bypass`,t.effectId=`effect.id`,t.effectIndex=t.effectIndex||`$index`,t.onChange=t.onChange||`updateParams({ effect: effect, property: '${t.property}' })`,t.onChangeStart=t.onChangeStart||`stopPushUndo()`,t.onChangeEnd=t.onChangeEnd||`resumePushUndo()`,t.preset=t.trackId||`preset`}}}).directive(`pedalSliderButton`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./DnsUbwAq.js`),n[0],t,{$injector:e,scope:t})}}}]),angular.module(`bandlab.audio`).directive(`slideSwitch`,function(){return{restrict:`E`,replace:!0,scope:{bypass:`=`,metadata:`=`,onChange:`&`,onChangeEnd:`&`,onChangeStart:`&`,params:`=`,property:`@`,toggle:`=`},templateUrl:`https://www.bandlab.com/web-app/audio/partials/_slide-switch-718eab3be.html`,compile:function(e,t){t.bypass=t.bypass||`effect.bypass`,t.onChange=t.onChange||`updateParams({ effect: effect, property: '${t.property}' })`,t.onChangeStart=t.onChangeStart||`stopPushUndo()`,t.onChangeEnd=t.onChangeEnd||`resumePushUndo()`}}}).directive(`pedalSelect`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./BAzjS8d8.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalToggle`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./BqzovxQt.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`pedalToggleBoolean`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{bypass:`=`,metadata:`=`,onChange:`&`,onChangeEnd:`&`,onChangeStart:`&`,params:`=`,property:`@`,toggle:`=`},template:`<div></div>`,compile:function(t,n){return n.bypass=n.bypass||`effect.bypass`,n.onChange=n.onChange||`updateParams({ effect: effect, property: '${n.property}' })`,n.onChangeStart=n.onChangeStart||`stopPushUndo()`,n.onChangeEnd=n.onChangeEnd||`resumePushUndo()`,function(t,n){$(import(`./CEHFkY2c.js`),n[0],t,{$injector:e,scope:t})}}}}]).directive(`pedalToggleEnum`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{bypass:`=`,metadata:`=`,onChange:`&`,onChangeEnd:`&`,onChangeStart:`&`,params:`=`,property:`@`,toggle:`=`},template:`<div></div>`,compile:function(t,n){return n.bypass=n.bypass||`effect.bypass`,n.onChange=n.onChange||`updateParams({ effect: effect, property: '${n.property}' })`,n.onChangeStart=n.onChangeStart||`stopPushUndo()`,n.onChangeEnd=n.onChangeEnd||`resumePushUndo()`,function(t,n){$(import(`./CvDoqTAq.js`),n[0],t,{$injector:e,scope:t},{applyInactiveLabelColor:!0})}}}}]);const YS=`arpeggiatorTrackSettingsKey`,XS=U({get(){let e=Y.getItem(YS)||`{}`;return new Map(Object.entries(JSON.parse(e)))},set:Fa(e=>{let t=Array.from(e.entries()).slice(-1e3);Y.setItem(YS,JSON.stringify(Object.fromEntries(t)??{}))},300)}),ZS=O(XS.value),QS={enabled:!1,swing:0,engaged:!0,rate:hd.To16th,noteLength:.5,style:md.Up,minimised:!0};function $S(e){let t=ZS.value.get(e)??{};return{enabled:t.enabled??QS.enabled,swing:t.swing??QS.swing,engaged:t.engaged??QS.engaged,rate:t.rate??QS.rate,noteLength:t.noteLength??QS.noteLength,style:t.style??QS.style,minimised:t.minimised??QS.minimised}}const eC=U({get(){return $S(vy.value)},set(e){tC(vy.value,e)}});function tC(e,t){let n=new Map(ZS.value);n.delete(e),n.set(e,t),ZS.value=n,XS.value=n}const nC=rC();function rC(){return{subscribe:e,onArpeggiatorEnabled:t};function e(e){let t=e.$on(Mc,n);return()=>{t()}}function t(){Ae(`studio_arpeggiator_enabled`)}function n(){eC.value.enabled&&Ae(`arpeggiator_recording_finished`)}}const iC={arpeggiator:`Arpeggiator`,rate:`Rate`,noteLength:`Note Length`,tooltip:`Arpeggiator plays incoming notes back in a sequence, based on the selected style. Rate controls how fast the notes are played, note length adjusts the duration of each note. Add groove to the sequence with the swing slider.`,swing:`Swing`};angular.module(`bandlab.audio`).directive(`virtualDrumPads`,[`$rootScope`,`MidiKeyboardHandler`,function(e,t){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_virtual-drum-pads-9d869dd66.html`,link:function(n){let r=nC.subscribe(e);n.$on(`$destroy`,()=>{r()}),n.$watch(`current.input.slug`,e=>{switch(e){case`drum-kit`:t.changeKeymap(`drums`),n.drums=Ky();break;case`drum-pads`:case`special-effects`:t.changeKeymap(By),n.drums=Yy()}})},controller:`VirtualInstrumentCtrl`}}]),angular.module(`bandlab.audio`).directive(`virtualPiano`,[`$rootScope`,`MidiKeyboardHandler`,function(e,t){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/audio/partials/_virtual-piano-b44e5751c.html`,compile:function(){return{post:function(n){t.changeKeymap(`piano`);let r=Mx.subscribe(e),i=nC.subscribe(e);n.$on(`$destroy`,()=>{r(),i()})}}},controller:`VirtualInstrumentCtrl`}}]).directive(`virtualPianoOctaveControls`,[`$injector`,`MidiKeyboardHandler`,function(e,t){return{replace:!0,restrict:`E`,template:`<div class="instrument-octave-control
49s-container"> 50 <span id="virtualPianoOctaveSpinButtonLabel" class="typography-body-compact-regular">Octave</span> 51 <div class="instrument-octave-spin-button-container"> 52 <div class="instrument-octave-spin-button"></div> 53 <mix-editor-mappable data-mappable-target="OCTAVE_DOWN"></mix-editor-mappable> 54 <mix-editor-mappable data-mappable-target="OCTAVE_UP"></mix-editor-mappable> 55 </div> 56 </div>`,link:function(n,r){$(import(`./lwbZBkTA.js`),r[0].querySelector(`.instrument-octave-spin-button`),n,{$injector:e}),n.$on(`MidiMapping:OCTAVE_DOWN`,function(e,{toggle:n,value:r}){(n||r)&&t.octaveDown()}),n.$on(`MidiMapping:OCTAVE_UP`,function(e,{toggle:n,value:r}){(n||r)&&t.octaveUp()})}}}]).directive(`virtualPianoKeyLabel`,[`$injector`,function(e){return{replace:!0,restrict:`E`,link:function(t,n,r){let i=r.note,a=r.showEnharmonic===`true`;$(import(`./CN4lMSng.js`),n[0],t,{$injector:e,scope:t,note:i,showEnharmonic:a})}}}]).directive(`liveInstrumentControls`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div style="display: contents"></div>`,link:function(t,n){let r=t.getTrack();if(!ac(r))throw Error(`Error initialising live instrument controls, track is not a MIDI instrument track with metaparameters`);let i=h({track:{...r}});t.$watch(()=>{let e=t.getTrack();if(!ac(e))throw Error(`Error updating live instrument controls, track is not a MIDI instrument track with metaparameters`);i.track={...e}}),$(import(`./BxEfilZk.js`),n[0],t,{$injector:e},i)}}}]);const aC=[`guitar-bass`,`guitar-electric`,`looper`];angular.module(`bandlab.audio`).directive(`voiceMicrophone`,[`EditorHelper`,`EditorRevision`,function(e,t){return{replace:!0,restrict:`E`,link:function(n,r){function i(){let e=t.selectedTrack,n=e?.loopPack?`looper`:e?.type;return aC.includes(n)?n:null}let a=i();if(!a)return;let o=D({openTuner:e.openTuner,type:a});n.$watch(i,e=>{e&&(o.type=e)}),$(import(`./BZ4IAG4t.js`),r[0],n,{},o)}}}]),angular.module(`bandlab.audio`).filter(`displayUnit`,function(){return Yt}),angular.module(`bandlab.audio`).filter(`formatQuantization`,function(){return function(e){return{1:`1/1`,2:`1/2`,4:`1/4`,8:`1/8`,16:`1/16`,32:`1/32`,3:`1/2T`,6:`1/4T`,12:`1/8T`,24:`1/16T`,48:`1/32T`}[e]||e}}),angular.module(`bandlab.audio`).filter(`presetName`,[`EffectsPreset`,function(e){return function(t){if(!t.preset)return``;let n=Qe(t,`effectsData.displayName`);if(n&&e.getUserPresetsSync().some(e=>e.id===t.effectsData.originalPresetId))return n;let r=e.getBySlug(Qe(t,`effectsData.originalPresetId`));return t.preset===`custom`&&r?`${r.name}`:{custom:`Custom`,none:`None`}[t.preset]||e.getBySlug(t.preset).name}}]),angular.module(`bandlab.audio`).filter(`soundTime`,function(){return gi});var oC=Math.ceil,sC=Math.max;function cC(e,t,n){t=(n?Pi(e,t,n):t===void 0)?1:sC(Ce(t),0);var r=e==null?0:e.length;if(!r||t<1)return[];for(var i=0,a=0,o=Array(oC(r/t));i<r;)o[a++]=Oa(e,i,i+=t);return o}angular.module(`bandlab.audio`).factory(`EffectsPreset`,[`$http`,`$injector`,`Me`,function(e,t,n){let r=O([]),i=we(b),a=O(JSON.parse(Y.newUserPresets||`[]`)),o=O([]),s=U(()=>o.value.filter(e=>e.isNew)),c=[],l={},u=O([]),d=O([]),f=O([]),p=O([]),m=O(null),h=O([]);return re(()=>a.value.length,function(){Y.newUserPresets=JSON.stringify(a.value)}),{artistPresets:p,exclusivePresetCampaign:m,exclusivePresets:h,getTrackPresetDisplay:k,hasAiPresetDisplayOverride:A,getAiPresetDisplayOverride:j,setAiPresetDisplayOverride:P,clearAiPresetDisplayOverride:M,discardAiPresetDisplayOverride:N,deleteUserPreset:ee,deleteUserPresets:te,getArtistPresets:ne,getExclusivePresets:z,getByInput:w,getBySlug:C,getCuratedPresets:x,getPresets:i,getPresetGroupsSync:S,getSharedPreset:I,getFavoritePresetIdsRef:T,getFavoritePresetIds:L,getTrendingPresets:V,getUserTrendingPresets:ie,getPublicTrendingPresets:H,getUserPresetByName:de,getUserPreset:D,getUserPresets:R,getUserPresetsRef:E,getUserPresetsSync:F,getUserPresetOrigin:ue,isAiGeneratedPreset:G,populateUnownedUserPresetsFromRevision:_,newUserPresets:a,regenerateUserPresetLink:ae,createUserPreset:oe,saveSharedPreset:se,toggleFavoritePreset:le,trendingPresets:f,updateUserPreset:ce,getNewCuratedPresets:B};function g(e){return e.tracks.filter(e=>e.effectsData?.originalPresetId).filter(e=>e.effectsData?.link).filter(e=>!d.value.find(t=>
56t.id===e.effectsData.originalPresetId)).map(function(e){return{displayName:e.effectsData.displayName,effects:e.effects.map(({params:e,...t})=>({params:{...e},...t})),id:e.effectsData.originalPresetId,link:e.effectsData.link}})}function _(e){y(g(e).map(e=>e.link).map(e=>v(e))).then(function(e){u.value=e})}function v(e){return e.split(`effect-presets/`)[1]}function y(e){let t=e.map(e=>I(e));return Promise.allSettled(t).then(e=>e.filter(e=>e.status===`fulfilled`).map(e=>e.value)).catch(()=>[])}function b(){let e=t.get(`Katnip`);return e.then(function(){l=e.effectsJson.recommended,o.value=Object.values(e.effectsJson.presets),c=e.effectsJson.presetsUI.group})}function x(){return o}function S(){return c}function C(e){return e===jt.slug?jt:t.get(`Katnip`).effectsJson.presets[e]}function w({slug:e}){return l[e]||[]}function T(){return r}function E(){return d}function D(e){return(d.value.find(t=>t.id===e)||h.value.find(t=>t.id===e)||f.value.find(t=>t.id===e)||u.value.find(t=>t.id===e)||p.value.find(t=>t.id===e))??null}function k(e){let t=e.effectsData?.aiPresetDisplayOverride;if(tt(t))return{...t,isDifferentFromTrackEffectChain:!Dn(t.effects,e.effects||[]),displayKind:`ai-fx-override`};let n=e.effectsData?.originalPresetId,r=D(n);if(r)return{...r,picture:r.picture?.url||r.picture,isDifferentFromTrackEffectChain:!Dn(r.effects,e.effects||[]),displayKind:`user-preset`};let i=C(n);return i?{...i,displayName:i.name,picture:i.picture?.url||i.picture,isDifferentFromTrackEffectChain:!Dn(i.effects,e.effects||[]),displayKind:`bandlab-preset`}:{displayName:e.preset===`custom`?`Custom`:`None`,displayKind:`fallback`}}function A(e){return tt(e.effectsData?.aiPresetDisplayOverride)}function j(e){return e.effectsData?.aiPresetDisplayOverride??null}function M(e){let t=e.effectsData?.aiPresetDisplayOverride;tt(t)&&delete e.effectsData.aiPresetDisplayOverride}function N(e,t){M(e),import(`./BWvciV-z.js`).then(e=>e.t).then(({logEvent:e})=>e(`fx_ai_refine_discard`,{triggered_from:`arrangement_view`,triggered_from_component:t}))}function P(e,t){e.effectsData={aiPresetDisplayOverride:{displayName:t.displayName,description:t.description,effects:t.effects.slice().map(e=>({...e,params:{...e.params},automation:{...e.automation}})),displayKind:t.displayKind,picture:t.picture,version:t.version,initialPrompt:t.initialPrompt}}}function F(){return d.value}function ee(t){let r=d.value.slice();return d.value=r.filter(e=>e.id!==t.id),e({method:`delete`,url:`https://www.bandlab.com/api/v1.3/users/${n.id}/effect-presets/${t.id}`}).catch(function(e){throw d.value=r,e})}function te(t){let r=new Set(t),i=d.value.slice();d.value=i.filter(e=>!r.has(e.id));let a=cC(t,25),o=new Set;return Promise.all(a.map(function(t){return e({method:`delete`,url:`https://www.bandlab.com/api/v1.3/users/${n.id}/effect-presets`,data:{presetIds:t}}).then(function(e){return e.data.items.forEach(e=>o.add(e.id)),{ok:!0}}).catch(function(e){return{ok:!1,err:e}})})).then(function(e){d.value=i.filter(e=>!o.has(e.id));let t=e.find(e=>!e.ok);if(t)throw t.err})}function I(t){return e({method:`get`,url:`https://www.bandlab.com/api/v1.3/effect-presets/${t}`}).then(function(e){return e.data})}async function L(){let i=t.get(`Katnip`);return await i,e.get(`https://www.bandlab.com/api/v1.3/users/${n.id}/favorite-effect-presets-ids`).then(function(e){let t=e.data,n=new Set(i.effectsJson.deprecatedPresetSlugs),a=t.filter(e=>!n.has(e));r.value=a}).catch(()=>[])}function R(t){return e({url:`https://www.bandlab.com/api/v1.3/users/${n.id}/effect-presets`,params:{after:t,limit:100},preservePagination:!0}).then(function(e){return t?d.value=d.value.concat(e.data.data):d.value=e.data.data,e.data.paging.cursors.after?R(e.data.paging.cursors.after):e})}function ne(){return e({url:`https://www.bandlab.com/api/v1.3/users/${n.id}/artists-effect-presets`}).then(function(e){return p.value=e.data,p.value}).catch(()=>[])}async function z(){try{let t=(await e({url:`https://aws.bandlab.com/api/v1.3/users/${n.id}/promo-campaigns`,params:{type:`FxPresets`,limit:10}})).data.find(e=>e.fxPresets.itemIds.length),r=t.fxPresets.itemIds,i=(await e({url:`https://www.bandlab.com/api/v1.3/users/${n.id}/effect-presets/promo-campaigns/${t.id}/content`,params:{ids:r.join(`,`)}})).data;
56return m.value={id:t.id,title:t.fxPresets.title,subtitle:t.fxPresets.subtitle},h.value=i.toSorted((e,t)=>r.indexOf(e.id)-r.indexOf(t.id)),h.value}catch{return m.value=null,h.value=[],[]}}function B(){return s}function V(){return n.isAnonymous()?H():ie()}function ie(){return e({url:`https://www.bandlab.com/api/v1.3/users/${n.id}/trending-effect-presets`,params:{limit:100},preservePagination:!0}).then(function(e){return f.value=e.data.data,f.value}).catch(()=>[])}function H(){return e({url:`https://www.bandlab.com/api/v1.3/trending-effect-presets`,params:{limit:100},preservePagination:!0}).then(function(e){return f.value=e.data.data,f.value}).catch(()=>[])}function ae(t){return e({method:`delete`,url:`https://www.bandlab.com/api/v1.3/users/${n.id}/effect-presets/${t}/link`}).then(function(e){return e.data})}function oe(t){return e({method:`post`,url:`https://www.bandlab.com/api/v1.3/users/${n.id}/effect-presets`,data:{...t,effects:t.effects.map(function({automation:e,...t}){return t})}}).then(function(e){return d.value=[e.data].concat(d.value),e.data}).catch(function(e){return null})}function se(t){return e({method:`post`,url:`https://www.bandlab.com/api/v1.3/users/${n.id}/effect-presets/${t}`}).then(function(e){let t=e.data;return d.value=[t].concat(d.value),a.value.push(t.id),t})}function ce(t){return e({method:`patch`,url:`https://www.bandlab.com/api/v1.3/users/${n.id}/effect-presets/${t.id}`,data:{...t,effects:t.effects.map(function({automation:e,...t}){return t})}}).then(function(e){let n=d.value.findIndex(e=>e.id===t.id);return d.value.splice(n,1,e.data),e.data})}function le(t){r.value.includes(t)?(r.value=r.value.filter(e=>e!==t),e.delete(`https://www.bandlab.com/api/v1.3/users/${n.id}/favorite-effect-presets-ids/${t}`).catch(function(){L()})):(r.value.unshift(t),e.post(`https://www.bandlab.com/api/v1.3/users/${n.id}/favorite-effect-presets-ids/${t}`).catch(function(){L()}),lC(t))}function W(e){return e.originalPresetId===e.id}function G(e){if(!e)return!1;let t=d.value.find(t=>t.id===e);return t?.origin===`AI`&&W(t)}function ue(e){return d.value.find(t=>t.id===e)?.origin}function de(e){return d.value.find(t=>t.displayName===e)}}]);function lC(e){import(`./DHI6ZMoS.js`).then(e=>e.t).then(function({logEvent:t}){t(`effects_preset_favorite`,{preset_id:e,triggered_from:`list`})})}const uC=To(function(e){let t=e.get(`EditorState`),n=U(function(){return!t.isRecording&&!t.isWaitingCountIn}),r=`none`;return{NO_DEVICE_DEVICE_ID:r,canChangeInput:n,getNoDevice:i,selectedAudioDevice:O(i())};function i(){return{label:`No Device`,name:`No Device`,deviceId:r}}}),dC=O(null),fC=O(-1),pC=h({currentStep:U(()=>dC.value?dC.value.steps[fC.value]??null:null),progress:{value:U(()=>dC.value?(fC.value+1)/dC.value.steps.length:-1),readable:U(()=>dC.value?{numerator:fC.value+1,denominator:dC.value.steps.length}:null)},canForward:O(!0)});angular.module(`bandlab.audio`).factory(`InputDevice`,[`$injector`,`$q`,`$rootScope`,`AppNotifications`,function(e,t,n,r){let i={audio:{latency:0,echoCancellation:!1,autoGainControl:!1,noiseSuppression:!1,googHighpassFilter:!1}},{NO_DEVICE_DEVICE_ID:a,getNoDevice:o,selectedAudioDevice:s}=Gn(()=>uC(e),n),c=sr().createGain(),l=we(()=>{let e=J(()=>import(`./RkCvkEvK.js`));X(e,{},{escapeClose:!0,overlayClose:!0})}),u=Le(function(e){import(`./DvQD5s06.js`).then(e=>e.t).then(({logStudioAudioDeviceConnect:t})=>t({device_name:e}))});var d,f;return x(),{connect:_,disconnect:v,getAudioDevices:y,reset:x,switchTo:g};function p(e){return i.audio.deviceId=e.deviceId?{exact:e.deviceId}:void 0,i.audio.sampleRate=sr().sampleRate,_n.browser.name!==`Safari`&&b(),navigator.mediaDevices.getUserMedia(i).then(a).catch(o);function a(e){return d=e,e.oninactive=function(){e.normalStop||(r.addNotification({title:`Active audio device disconnected`,content:`${e.getAudioTracks()[0].label} has been disconnected. Please reconnect it or choose a different input device.`,autoclose:5e3}),n.$broadcast(Jc))},t.resolve(e)}function o(e){return t.reject(Cr)}}function m(e){return p(e).then(function(e){return sr().createMediaStreamSource(e)})}function h(e){return e.deviceId===a?t.resolve(sr().createGain()):m(e)}function g(e=s.value){let t=e.deviceId===a?y().then(function(e){return e[0]||o()}):Promise.resolve(e);return Promise.resolve(t).then(async function(e){if(e.kind!==a&&u(e.name),s.value.deviceId===e.deviceId&&f&&d?.active)return;s.value=e;let t=await h(e);f&&f.disconnect(),f=t,f.connect(c)}).catch(function(e){if(s.value=o(),n.$applyAsync(),e===`Microphone access is not allowed`){if(dC.value)return;l()}})}function _(e){return c.connect(e),()=>v(e)}function v(e){c.disconnect(e)}async function y(){try{let e={audio:{...i.audio}};delete e.audio.deviceId,(await navigator.mediaDevices.getUserMedia(e)).getTracks().forEac
56h(e=>e.stop());let t=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===mt).map(function(e,t){return Object.assign(e,{name:e.label||`Audio Device #${t+1}`})});if(t.length===0)return t;let n=t.findIndex(e=>e.deviceId==="default"),r=t.splice(n,1)[0];return r&&t.unshift(r),t}catch{return l(),[]}}function b(){d&&d.active&&(d.getTracks().forEach(function(e){e.stop()}),d.normalStop=!0)}function x(){b(),d={},f=null}}]);const mC=function(){let e=pd().then(async function({audioEngineWorkletNode:t,effectMetadataManager:n}){let r=await n.getMaxEffectsPerChain(),i={autoPitchGroups:[],deprecatedPresetSlugs:[],effects:{},effectsUI:{effects:{},groups:await n.getEffectGroups(),maxEffectsPerChain:r,maxEffectsPerChainWithoutMembership:r/2},presets:{},presetsUI:{group:[]},recommended:{},version:await n.getVersion()},a=await n.getAvailableEffects();for(let e of a){let t=await n.getMetadataForEffect(e);i.effects[e]=hC(e,t),i.effectsUI.effects[e]=gC(e,t)}i.effectsUI.groups.forEach(function(e){e.effects=e.effects.flatMap(function(e){return i.effects[e]})}),i.effectsUI.groups=i.effectsUI.groups.filter(e=>e.effects.length>0),await vC(t,i.effects.autoPitchWrap0_0.params);let o=await n.getAvailablePresets();for(let e of o){let t=await n.getMetadataForPreset(e);i.presets[e]=_C(e,t)}let s=[];for(let e of o)await n.isPresetDeprecated(e)&&s.push(e);i.deprecatedPresetSlugs=s;let c=new Set(s),l=await n.getPresetGroups();for(let e of l){let t=e.effects.filter(e=>!c.has(e)).map(e=>i.presets[e]);t.length&&i.presetsUI.group.push({name:e.name,presets:t})}let u=[`aux-channels`,`experimental`,`mastering`,`synth-piano`,`videoMix`,...It.map(e=>e.slug)];for(let e of u){let t=await n.getRecommendedPresetsForTrackType(e);i.recommended[e]=t.map(e=>i.presets[e])}let d=await t.AutoPitch.getMaxSupportedVersion();tc.maxValue=Da(d,tc.maxValue)?tc.maxValue:d;let f=await t.AutoPitch.getPresetGroupsAndPresets(tc.maxValue);for(let{name:e,effects:n,slug:r}of f){let a=[];for(let e of n){let n=await t.AutoPitch.getPresetMetadata(e,tc.maxValue);n.isMembershipOnly,a.push(n)}i.autoPitchGroups.push({slug:r,name:e,presets:a})}Object.assign(e,{effectsJson:i,metadata:i.effects})});return e};angular.module(`bandlab.audio`).factory(`Katnip`,function(){return ir()?mC():{}});function hC(e,t){let n={};return t.boolParams.forEach(function(e){n[e.slug]={automatable:!1,default:e.defaultVal,description:e.desc,display:{name:e.name},name:e.name,readOnly:e.readOnly,type:`bool`,unit:e.unit,visible:e.visible}}
56),t.enumParams.forEach(function(e){n[e.slug]={automatable:!1,default:e.defaultVal,description:e.desc,display:{name:e.name,enumType:e.enumType},name:e.name,readOnly:e.readOnly,type:`enum`,unit:e.unit,values:e.choices,visible:e.visible}}),t.floatParams.forEach(function(e){n[e.slug]={automatable:e.automatable,default:e.defaultVal,description:e.desc,display:{name:e.name},displayUnit:e.displayUnit,max:e.maxVal,min:e.minVal,name:e.name,scale:e.scale,step:e.step,readOnly:e.readOnly,type:`float`,unit:e.unit,visible:e.visible},e.displayMax>e.displayMin&&(n[e.slug].displayMax=e.displayMax,n[e.slug].displayMin=e.displayMin)}),{description:t.desc,isMembershipOnly:t.isMembershipOnly,isNew:t.isNew,name:t.name,params:n,slug:e,visible:t.visible}}function gC(e,t){return{name:t.name,paramList:t.paramList,previewImage:{height:t.previewImageHeight,url:t.previewImageUrl,width:t.previewImageWidth},slug:e,subTitle:t.subtitle}}function _C(e,t){let n=t.effectChain.map(function(e){let t=[`boolParams`,`enumParams`,`floatParams`].reduce(function(t,n){return e[n].forEach(function(e){t[e.slug]=e.value}),t},{});return{bypass:e.bypass,slug:e.slug,params:t}});return{description:t.desc,effects:n,isNew:t.isNew,name:t.name,packs:t.packs,picture:t.picture,slug:t.slug}}async function vC({AutoPitch:e},t){let n=t.tonic.values.filter(e=>e.name!==`Undefined`),r=t.scale.values.filter(e=>e.name!==`Undefined`);for(let e of n)for(let t of r)await i(Jl,t,e);
56async function i(t,n,r){let i=yl(n.slug),a=_l(r.slug),o=xl(i,a),{targetNotes:s=[]}=await e.sanitizeData({tonic:a,scale:i,slug:``,targetNotes:[],responseTime:0,version:tc.value},o)??{};t.push({isSharp:o.sf>0,scale:n.slug,notes:s,tonic:r.slug})}}const yC=(function(){return function(){return D({sound:`Default`,volume:1})}})(),bC=(function(){return function(e,t,n,r){return{init:i,getSounds:a,setSound:l,setVolume:c,update:s};async function i(){isNaN(Y.metronomeVolume)||await c(+Y.metronomeVolume),Y.metronomeSound&&await l(Y.metronomeSound,!0)}function a(){return e.get(`https://www.bandlab.com/api/v3.0/metronome`,{cache:!0}).then(function(e){return[...new Set(e.data.sounds.map(e=>e.name.replace(`-Hi`,``).replace(`-Low`,``)))]})}function o(){return Promise.all([a(),e.get(`https://www.bandlab.com/api/v3.0/metronome`,{cache:!0})]).then(function([e,n]){return t.current.loadMetronomeSounds(e,n.data.sounds)})}function s(){return n.isMetronomeEnabled?t.current?.startMetronome():t.current?.stopMetronome()}function c(e){return Y.metronomeVolume=e,r.volume=e,t.current.setMetronomeVolume(e)}function l(e,n){return Y.metronomeSound=e,r.sound=e,Promise.all([a(),o()]).then(function([r]){let i=r.indexOf(e);i<0||(n?t.current.setMetronomeSoundWithoutPreview(i):t.current.setMetronomeSound(i))})}}})();bC.$inject=[`$http`,`EditorPlayer`,`EditorState`,`MetronomeState`],angular.module(`bandlab.audio`).factory(`MetronomeState`,yC).factory(`Metronome`,bC),angular.module(`bandlab.audio`).factory(`Sample`,[`$http`,`$q`,`Me`,function(e,t,n){return{getBuffer:i,getJSON:r,getOptions:()=>t.when(s()),upload:o};function r(t){return e({url:`https://www.bandlab.com/api/v2.0/uploads/${t}
56`,cache:!0,data:``,headers:{"Content-Type":`application/json`}}).then(function(e){return ec[e.data.id]=!0,e.data})}function i(t){return e({url:t,responseType:`arraybuffer`}).then(function(e){return e.data})}function a(t,r,i,a){return e({url:`https://www.bandlab.com/api/v2.0/uploads/${t}/${r}?format=${i}`,method:`PUT`,headers:{"X-Amz-Meta-User-Id":n.id,"X-Amz-Meta-Device":``,"X-Amz-Meta-Source":``},timeout:a}).then(function(e){return e.data.value})}function o(n,r=1,i=angular.noop){var s=Fr(n.blob),c=t.defer(),l=t.resolve();return[`mid`].includes(s)||(l=br(n.blob).then(e=>{n.blob=e,s=Fr(n.blob)})),Object.assign(l.then(function(){return a(n.sampleType,n.sampleId,s,c.promise)}).then(function(r){return n.blob.size===0?t.reject(Error(ri)):e({url:r,method:`PUT`,data:n.blob,headers:{"Content-Type":Zr[s][0]},uploadEventHandlers:{progress:i},timeout:c.promise,transformRequest:[]})}).then(()=>{ec[n.sampleId]=!0}).catch(function(e){if(e.status===409){ec[n.sampleId]=!0;return}return e.config?.timeout.$$state.status===1?t.reject(`Cancelled`):r<=3?o(n,++r):t.reject(e)}),{cancel:()=>c.resolve()})}async function s(){let[t,r,i]=await Promise.all([e.get(`https://www.bandlab.com/api/v2.0/options`,{cache:!0}).then(function(e){return e.data.mixEditor}).catch(function(){return{maxSongDuration:Z.SONG_DURATION_MAX,maxTracks:Z.TRACKS_LIMIT}}),Me(n,`studio_max_tracks`),Me(n,`studio_max_track_duration_sec`)]),a=parseInt(r.value),o=parseInt(i.value);return{maxSongDuration:o>0?o:t.maxSongDuration,maxTracks:a>0?a:t.maxTracks}}}]),xC.$inject=[`$http`,`$rootScope`,`EditorState`],angular.module(`bandlab.audio`).factory(`Soundbank`,xC);function xC(e,t,n){let r=[],i=D({input:{slug:null,kind:null}}),a=[];C();let o=Le(p);return{getBank:c,getBanks:u,getCategories:m,getCurrent:_,getJSON:g,getList:f,getPropertyValue:h,hasMusicalTyping:b,init:d,isMusicalTypingActive:x,isNoteMapped:s,reset:C,setFromAudioType:v,setSampler:S,setFromSoundbank:y};function s(e){return!i?.soundbank||e===null?!1:i.soundbank.synth===`VASynth`||i.soundbank.synth===`FMSynth`?e!==null&&e>=0&&e<=127:!!SC[i.soundbank.slug]?.[e]}function c(e){let t=lc(e),n=t?e.slug:e,r=a.find(e=>e.slug===n);if(!r){if(t){let t={21:!0,127:!0};return e.synth===`VASynth`&&(t={0:!0,127:!0}),e.synth===`FMSynth`&&(t={21:!0,119:!0}),Promise.resolve({...e,...l(t)})}if(r=a.find(e=>e.slug===rt),!r)throw Error(`Could not find default soundbank`)}return r.promise?r.promise:r.synth===`VASynth`||r.synth===`FMSynth`?(r.promise=g(r).then(function(e){let t={...r,...e},n;return t.synth===`VASynth`&&(n={0:!0,127:!0}),t.synth===`FMSynth`&&(n={21:!0,119:!0}),{...t,...l(n)}}),r.promise):(r.promise=g(r).then(function(e){let{category:t,samples:n=[]}=e,i={...r,...e};r.category=t;let a={};for(let e of n){let t=e.minRange??e.midiNumber,n=e.maxRange??e.midiNumber;for(let e=t;e<=n;e++)a[e]=!0}return SC[i.slug]=a,{...i,...l(a)}}),r.promise)}function l(e={}){let t=Object.keys(e).map(Number),n=i(t[t.length-1]),r=n-(Z.IS_LEGACY_KEYBOARD?2:1);return{minOctave:i(t[0]),maxOctave:n,minFullOctave:Math.ceil(t[0]/12)-1,maxFullOctave:r};function i(e){return Math.floor(e/12)-1}}function u(){return a}async function d(){let e=await o();a=e.soundbanks,r=e.categories}async function f(){let{soundbanks:e}=await o();return e}function p(){return e.get(`https://www.bandlab.com/api/v4.3/soundbanks`,{cache:!0}).then(function({data:{categories:e,soundbanks:t}}){let n=[],r=[],i=`for-members`;return t.forEach(function(e){e.editable,n.push({...e,filters:e.editable?[...e.filters,i]:e.filters})}),e.forEach(function(e){let t=[];e.title===`Instruments`&&t.push({slug:i,title:`For Members`,icon:``,subfilters:[],soundbanks:n.filter(e=>e.filters.includes(i))}),e.filters.forEach(function(e){let r={...e,soundbanks:n.filter(t=>t.filters.includes(e.slug))};e.subfilters.length&&(r.subfilters=e.subfilters.map(e=>({...e,soundbanks:n.filter(t=>t.filters.includes(e.slug))}))),t.push(r)}),r.push({...e,filters:t})}),r.push({title:`Drum Machine`,filters:[r[0].filters.find(e=>e.slug===`instrument-drum-kits`),r[0].filters.find(e=>e.slug===`instrument-drum-pads`)].filter(tt)}),{soundbanks:n,categories:r}})}function m(){return r}function h(e,t){if(typeof e!=`string`)return e[t];let n=a.find(t=>t.slug===e);return n?n[t]:null}function g(t){return e.get(`https://www.bandlab.com/api/v4.3/soundbanks/${t.slug}`,{cache:!0}).then(function(e){return e.data})}function _(){return i}function v(e){i.input=Jt.find(t=>t.slug===e)||{kind:null,slug:null},i.soundbank=null}function y(e,n){let r=lc(e),o=r?e.slug:e,s=a.find(e=>e.slug===o);if(!s&&r&&(s=e),n===`drum-machine`){i.input=tn,i.soundbank=s;return}i.soundbank=s,i.input=Bt.find(e=>e.slug===s?.instrumentSlug)||Rt,t.$applyAsync()}function b(){return i.input.kind?[_t,dn,bt].includes(i.input.kind):!1}function x(){return b()&&n.isAudioInputActive}function S(){i.input=at,i.soundbank=null}function C(){i.input={kind:null,slug:null},ky.octave=3,i.soundbank=null}}const SC={};angular.module(`bandlab.band`,[]).directive(`bandTileSmallCard`,[`$injector`,function(e){return{scope:{band:`<`},link:function(t,n){$(import(`./DO5AwTAv.js`),n[0],t,{$injector:e},{band:t.band})}}}]).directive(`bandProfileHeader`,[`$injector`,function(e){return{scope:{band:`=`},link:function(t,n){$(import(`./Ck84iII6.js`),n[0],t,{$injector:e,scope:t},{})}}}]).directive(`bandMemberActions`,[`$injector`,function(e){return{link:function(t,n){$(import(`./z5XPj_eb.js`),n[0],t,{$injector:e,scope:t},{})}}}]).component(`bandFollowersCard`,{bindings:{band:`<`},templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-followers-card-5d468aa43.html`,controller:[`$rootScope`,`Band`,function(e,t){let n=this;n.$onInit=r,n.getFollowers=i;function r(){i({limit:10}).then(function({data:e}){n.users=e})}function i(e){return t.getFollowers({id:n.band.id,...e}).$promise}e.$on(`$band:relationChanged`,r)}],controllerAs:`vm`}).directive(`bandsToFollow`,[`$injector`,function(e){return{link:function(t,n){$(import(`./CfbnQpMa.js`),n[0],t,{$injector:e,scope:t},{onRemoveElement:()=>n.remove()})}}}]).directive(`bandCreateEmptyCase`,[`$injector`,function(e){return{link:function(t,n){$(import(`./G16s-q5k.js`),n[0],t,{$injector:e,scope:t},{})}}}]).directive(`bandFeedZeroCase`,[`$injector`,function(e){return{link:function(t,n){$(import(`./DKSCC1MA.js`),n[0],t,{$injector:e,scope:t},{band:t.band})}}}]).directive(`bandOnboardCard`,function(){return{restrict:`E`,scope:{band:`<`},templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-onboard-card-2a0a70b10.html`,controller:[`$scope`,`Post`,function(e,t){e.isOnboardCardClosed=Y.getItem(`isBandOnboardCardClosed`)||!1,e.hasPost=null,t.fromBand({bandId:e.band.id,limit:1}).$promise.then(function(t){e.hasPost=t.data.length>0}),e.logBandGettingStartedClickthrough=la,e.closeOnboardCard=function(){Y.setItem(`isBandOnboardCardClosed`,!0),e.isOnboardCardClosed=!0,la(`close`)}}]}}).directive(`bandTabs`,[`$injector`,function(e){return{link:function(t,n){$(import(`./AjFfzbNc.js`),n[0],t,{$injector:e})}}}]).directive(`bandPendingMembers`,[`$injector`,function(e){return{replace:!0,scope:{band:`<`},link:function(t,n){$(import(`./Be6rgRU6.js`),n[0],t,{$injector:e,scope:t},{band:t.band})}}}]).directive(`bandAboutCard`,[`$injector`,function(e){return{scope:{band:`<`},link:function(t,n){$(import(`./tCePXCZ4.js`),n[0],t,{$injector:e},{about:t.band.about})}}}]),CC.$inject=[`$rootScope`,`$scope`,`$state`,`$stateParams`,`Me`,`theBand`];function CC(e,t,n,r,i,a){"ngInject";t.band=a,t.onPostCreate=function(e){t.$broadcast(`$bandFeed:postCreated`,e)},e.$broadcast(`$band:viewProfile`,t.band),t.$on(`$invite:changed`,function(){t.band.$get({id:t.band.id}).then(e=>{e.conversationId||setTimeout(()=>{t.band.$get({id:t.band.id})},2e3)})}),t.$on(`$band:changed`,function(e,i){i.action===`update`&&r.username!==t.band.username&&n.go(n.current.name,Object.assign(n.params,{username:t.band.username,changed:!0}),{reload:!0})}),t.$on(`$band:left`,function(e,r){n.current.name===`band.edit.members`?n.go(`user.feed`,{username:i.username}):t.band===r.band&&setTimeout(()=>{n.go(`.`,n.params,{reload:!0})},1e3)}),t.$on(`$band:relationChanged`,function(e,{band:n}){n.id===t.band.id&&(t.band.followingState=n.followingState)})}function wC(e){let t=OC(e);return t?{...t,rootPostId:e?.id??e?.postId??t?.rootPostId??null}:null}function TC(e=[]){return e.map(e=>wC(e)).filter(e=>e!==null)}
56function EC(e=[],t=[]){let n=new Set(t.map(kC).filter(Boolean));return e.filter(e=>{let t=kC(e),r=n.has(t);return!t||r?!1:(n.add(t),!0)})}function DC({tracks:e=[],selectedItem:t}){let n=e.indexOf(t);if(n!==-1)return n;let r=t?.rootPostId??null;if(r){let t=e.findIndex(e=>kC(e)===r);if(t!==-1)return t}let i=[t?.id,t?.postId].filter(e=>e!=null),a=[t?.revision?.id,t?.revisionId,AC(t)].filter(e=>e!=null);return e.findIndex(e=>i.includes(e.id)||i.includes(e.postId)||i.includes(e?.revision?.id)||i.includes(e.revisionId)||a.includes(e?.revision?.id)||a.includes(e.revisionId))}function OC(e){let t=e?.repost?.post??e?.repost;return e?.linkEntity?.revisionPost??e?.linkEntity?.post??e?.linkEntity?.entity??e?.attachment?.object?.post??e?.attachment?.object??t?.linkEntity?.revisionPost??t?.linkEntity?.post??t?.attachment?.object?.post??t??e}function kC(e){return e?.rootPostId??e?.id??e?.postId??e?.revision?.postId??e?.post?.id??null}function AC(e){return e?.revision?.id??e?.revisionId??e?.postId??e?.id??null}jC.$inject=[`$injector`,`$location`,`$q`,`$scope`,`$state`,`$stateParams`,`$timeout`,`Me`,`PlayerHistory`,`Post`,`theBand`];function jC(e,t,n,r,i,a,o,s,c,l,u){"ngInject";var d=null,f,p=!1,m=t.url();r.band=u,r.loadMore=g,r.me=s,r.$on(`$bandFeed:postCreated`,function(e,t){_(t)}),na({bandId:u.id,isBandMember:u.isMember,triggeredFrom:i.params.triggeredFrom}),a.postId&&fs({$injector:e,id:a.postId}),c.setCurrentPageContext({contentSource:`band`,loader:g,url:m}),r.$on(`$post:delete`,function(e,t){ja(r.posts,function(e){return e.id===t.post.id}),r.pinned.length&&ja(r.pinned,function(e){return e.id===t.post.id})}),r.$on(`$user:relationChanged`,function(e,t){t.type===`block`&&ja(r.posts,function(e){return e.creator.id===t.user.id}),r.pinned.length&&ja(r.pinned,function(e){return e.creator.id===t.user.id})}),r.$on(`$post:pin`,function(e,{post:t}){MS(r.posts,{id:t.id})&&o(()=>i.reload(`band.feed`),1e3)}),r.$on(`$post:unpin`,function(e,{post:t}){MS(r.pinned,{id:t.id})&&o(()=>i.reload(`band.feed`),1e3)}),r.$on(`$post:attachmentResolved`,function(e,{resolvedPost:t}){if(i.current.name!==`band.feed`||t?.revision?.mixdown?.status!==`Ready`)return;let n=TC([...r.pinned||[],...r.posts||[]]);c.pushQueueSongs(n,m,!0)});function h(){return p?n.resolve([]):(f=l.fromBand({after:d,bandId:u.id,limit:5}).$promise.then(function(e){return d=e.paging.cursors.after,p=!d,e.data.map(e=>{e.band=u}),e.data}),f)}function g(){return r.infiniteScrollEnded?n.resolve():(f=f.then(function(e){r.infiniteScrollEnded=p,r.posts=r.posts||[];let t=e.filter(e=>!e.isPinned),n=e.filter(e=>e.isPinned);r.posts=r.posts.concat(t),r.pinned=r.pinned||n;let i=TC([...n,...t]);return c.pushQueueSongs(i,m),h()}),f)}function _(e){r.posts.unshift(e)}h().then(r.loadMore)}angular.module(`bandlab.band.routes`,[]).config([`$stateProvider`,function(e){e.state(`band`,{url:`/band/{username:[a-z][0-9a-z_]{1,19}}`,abstract:!0,templateUrl:`https://www.bandlab.com/web-app/band/views/band-layout-911ab7b60.html`,resolve:{theBand:[`$stateParams`,`Band`,function(e,t){return t.get({id:e.username}).$promise}]},onEnter:[`Page`,`theBand`,function(e,t){e.setMetadata({title:`${t.name} (@${t.username}) ⢠BandLab - Make Music Online`,description:`${t.about?`${t.about} | `:``}${`Listen to music from ${t.name} and follow their creative process on BandLab.`}`,image:`${t.picture.url}640x360`})}],onExit:[`Page`,function(e){e.clearMetadata()}],controller:CC}).state(`band.feed`,{url:`?postId`,params:{postId:{dynamic:!0,inherit:!1},triggeredFrom:null},views:{content:{templateUrl:`https://www.bandlab.com/web-app/band/views/band-feed-7ae6ce7ee.html`,controller:jC}}}).state(`band.feed.shout`,{url:`/shout?postId`,redirectTo:function(e){let{postId:t}=e.params();return{state:`post`,params:{id:Array.isArray(t)?t[0]:t}}}}).state(`band.videos`,{url:`/videos`,views:{content:{template:`<div id="vue"></div>`,controller:[`$element`,`$scope`,`$injector`,`theBand`,function(e,t,n,r){$(import(`./DXD8aWQI.js`),e[0].querySelector(`#vue`),t,{$injector:n,theBand:r})}]}}}).state(`band.edit`,{url:`/edit`,params:{rewriteTracking:function(){return e=>e.replace(/^\/band\/[a-z][0-9a-z_]{1,19}(($|\/).*)/g,`/band$1`)}},redirectTo:function(e){return{state:`band.edit.profile`,params:{username:e.params().username}}},resolve:{canEdit:[`$q`,`theBand`,function(e,t){return t.role===`Admin`||t.role===`Owner`?e.resolve(!0):e.reject({status:403})}]},views:{"@":{templateUrl:`https://www.bandlab.com/web-app/band/views/manage/band-manage-layout-b68d5a9b2.html`,controller:CC}}}).state(`band.edit.profile`,{url:`/profile?changed`,templateUrl:`https://www.bandlab.com/web-app/band/views/manage/band-edit-4a93a886f.html`,controller:`BandEditCtrl`}).state(`band.edit.members`,{url:`/members`,templateUrl:`https://www.bandlab.com/web-app/band/views/manage/band-members-e9127cd6d.html`}).state(`band.edit.privacy`,{url:`/privacy`,templateUrl:`https://www.bandlab.com/web-app/band/views/manage/band-privacy-96c1c14f1.html`,controller:`BandEditCtrl`})}]),angular.module(`bandlab.band`).controller(`BandCreateCtrl`,[`$analytics`,`$rootScope`,`$scope`,`$state`,`AppNotifications`,`Band`,function(e,t,n,r,i,a){n.band=new a,n.$on(`$file:uploadSuccess`,function(e,t){n.band.pictureId=t.id,n.band.picture=t,n.bandForm.$setDirty()}),n.addBand=function(){n.band.$save().then(function(a){t.$broadcast(`createBandModal`,`close`),t.$broadcast(`$band:changed`,{action:`create`,band:a}),e.eventTrack(`Create Band`,{category:`Band`}),i.addNotification({title:`Band created`,content:`Invite new members and start making music.`,image:`${a.picture.url}
5648x0 1x, ${a.picture.url}96x0 2x`,action:`<a class="notification-action-text-inline" href="${r.href(`band.edit.members`,{username:a.username})}">Invite Members</a>`,autoclose:8e3}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logBandCreate:e}){e({bandId:a.id,hasOnboarding:n.hasOnboarding})})}).catch(function(e){n.bandForm.$setPristine(),e?.data?.errorCode!==202&&i.addNotification({title:`Unable to create band. Check your internet connection and try again.`,content:e.data.message,classList:`alert`,autoclose:8e3})})}}]),angular.module(`bandlab.band`).controller(`BandEditCtrl`,[`$analytics`,`$rootScope`,`$scope`,`$state`,`$timeout`,`AppNotifications`,`Band`,`Me`,`Tag`,`theBand`,function(e,t,n,r,i,a,o,s,c,l){n.changeError=!1,n.band=angular.copy(l),c.getGenres().then(function(e){n.genres=Xm(e,function(e){return e.isSelected=Qm(l.genres,{id:e.id}),e})}),n.$on(`$band:changed`,function(e,{action:t,data:r}){t===`picture`?(Object.assign(l.picture,r.picture),Object.assign(n.band.picture,r.picture)):t===`role`&&(l.role=r.role,n.band.role=r.role)}),n.updateBand=function(){o.update({id:l.id,name:n.band.name,username:n.band.username,about:n.band.about,isOpen:n.band.isOpen,commentCreateGroup:n.band.commentCreateGroup,genres:Jm(n.genres,{isSelected:!0}),location:n.band.location}).$promise.then(function(o){i(function(){Object.assign(l,o),t.$broadcast(`$band:changed`,{action:`update`,band:l})},1e3),n.bandForm.$setPristine(),a.addNotification({title:`Band profile updated`,action:`<a class="notification-action-text-inline" href="${r.href(`band.feed`,{username:o.username})}">Go to Band</a>`,classList:`success`,autoclose:8e3}),e.eventTrack(`Update Band`,{category:`Band`,label:l.id})}).catch(function(e){n.bandForm.$setPristine(),n.errorMessage=e?.data.message||`Please verify that the information is correct.`,n.changeError=!0})}}]);const MC={OWNER:`Owner`,ADMIN:`Admin`,MEMBER:`Member`};function NC(e){let t=e.get(`$rootScope`),n=e.get(`$state`),r=e.get(`$timeout`),i=e.get(`appActions`),a=e.get(`authService`),o=e.get(`Band`),s=e.get(`Me`),c=O(!1);return{isFollowLoading:c,toggleFollowBand:l};function l(e,l=Ee(n)){if(!i.checkAllowed(`follow`)||c.value)return;c.value=!0;let u=e.followingState===`None`?`follow`:`unfollow`;u===`follow`&&Qi({bandId:e.id,triggeredFrom:l}),o[u]({id:e.id,followerId:s.id}).$promise.then(()=>{u===`follow`?(e.followingState=`Following`,e.counters.followers=(e.counters.followers||0)+1):(e.followingState=`None`,e.counters.followers=Math.max((e.counters.followers||0)-1,0)),t.$broadcast(`$band:relationChanged`,{band:e}),r(()=>{a.refreshMe()},1500)}).finally(()=>{c.value=!1})}}angular.module(`bandlab.band`).controller(`BandFollowCtrl`,[`$injector`,`$scope`,function(e,t){let{isFollowLoading:n,toggleFollowBand:r}=NC(e);t.toggleFollowBand=r,L(()=>{t.isFollowLoading=n.value,t.$applyAsync()})}]),angular.module(`bandlab.band`).controller(`BandInviteCtrl`,[`$rootScope`,`$scope`,`Band`,`Invite`,`Me`,`Modal`,function(e,t,n,r,i,a){t.invite=new r,t.invite.userIds=[t.user.id],o(),t.$watch(`invite.bandId`,function(e){e&&(t.formInviteUser.bandId.$setValidity(`forbidden`,!0),t.formInviteUser.bandId.$setValidity(`unavailable`,!0))}),t.sendInvite=function(){delete t.inviteSent,t.invite.$save({rel:`bands`,id:t.invite.bandId}).then(function(){e.$broadcast(`$invite:changed`,{invite:t.invite}),t.inviteSent=!0,t.band=n.get({id:t.invite.bandId}),delete t.invite}).catch(function(e){e.status===403?t.formInviteUser.bandId.$setValidity(`forbidden`,!1):e.status===409&&t.formInviteUser.bandId.$setValidity(`unavailable`,!1),t.inviteSent=!1,t.formInviteUser.$setPristine(),t.errorMessage=Qe(e,`data.message`)})};function o(){n.fromUser({userId:i.id,limit:40,role:`Owner,Admin`}).$promise.then(e=>(t.bands=e.data,e.data))}t.openModalCreateBand=function(){let e=new a({id:`createBandModal`,templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-create-e79262035.html`});e.show();let n=t.$on(`$band:changed`,(r,{action:i,band:a})=>{i===`create`&&(t.bands=[a].concat(t.bands),t.invite.bandId=a.id,t.formInviteUser.$setDirty()),n(),e.destroy()})}}]);var PC=n({default:()=>IC});const FC=[`width`,`height`,`role`,`aria-hidden`],IC={__name:`zerocase-user`,props:Ve,setup(e){return(e,t)=>(F(),G(`svg`,{width:e.size>
560?e.size:e.width>0?e.width:e.height>0?e.height/40*40:void 0,height:e.size>0?e.size:e.width>0?e.width/40*40:e.height>0?e.height:void 0,viewBox:`0 0 40 40`,fill:`none`,role:e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?`img`:null,"aria-hidden":e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?null:`true`},[...t[0]||=[K(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M20 23a9 9 0 1 0 0-18 9 9 0 0 0 0 18m6-9a6 6 0 1 1-12 0 6 6 0 0 1 12 0`,"clip-rule":`evenodd`},null,-1),K(`path`,{fill:`currentColor`,d:`M4.48 36.49a20.2 20.2 0 0 1 31.03.17l2.31-1.92a23.2 23.2 0 0 0-35.63-.2z`},null,-1)]],8,FC))}},LC=[`for`],RC={class:`ds-cell-left-detail`},zC=[`srcset`],BC={class:`ds-cell-content`},VC={class:`typography-body-compact-regular ds-glyphs-secondary`},HC={class:`ds-cell-right-detail`},UC={__name:`BandFollowerCheckboxCell`,props:{user:{type:Object,required:!0},modelValue:{type:Array,required:!0}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=U({get(){return n.modelValue},set(e){r(`update:modelValue`,e)}});return(t,n)=>(F(),G(`label`,{for:`band-invite-followers-${e.user.id}-checkbox`,class:`ds-cell ds-cell-padding-block-8 ds-cell-padding-inline-8 band-follower-checkbox-cell`},[K(`header`,RC,[K(`img`,{srcset:`${e.user.picture.url}40x40 1x, ${e.user.picture.url}80x80 2x`,alt:``,class:`ds-avatar ds-avatar-size-40`},null,8,zC)]),K(`div`,BC,[q(Do,{size:`medium`,"font-weight":`medium`,layout:`truncate-all`},{title:W(t=>[K(`span`,{class:v(t.class)},y(e.user.name),3),e.user.isVerified?(F(),ie(gd,{key:0,size:16,class:v(t.iconClass)},null,8,[`class`])):H(``,!0)]),_:1}),K(`div`,VC,` @`+y(e.user.username),1)]),K(`div`,HC,[q(vo,{id:`band-invite-followers-${e.user.id}-checkbox`,modelValue:i.value,"onUpdate:modelValue":n[0]||=e=>i.value=e,value:e.user},null,8,[`id`,`modelValue`,`value`])])],8,LC))}},WC={class:`ds-modal ds-modal-size-small ds-modal-with-footer ds-modal-form`},GC={class:`ds-modal-header`},KC={class:`ds-modal-title`},qC={class:`ds-modal-content`},JC={class:`band-invite-followers-sticky-section row-gap-24`},YC={class:`band-invite-followers-user-section-header`},XC={class:`typography-body-compact-medium`},ZC={class:`typography-body-compact-regular ds-glyphs-secondary`},QC={key:1,class:`band-invite-followers-user-section-list`},$C={class:`ds-modal-footer ds-modal-footer-one-button`},ew={__name:`BandInviteFollowersModal`,props:{band:{type:Object,required:!0}},emits:[`closeModal`],setup(e,{emit:t}){let n=e,r=t,i=ne(`$injector`),a=i.get(`AppNotifications`),o=i.get(`Band`),s=i.get(`Invite`),c=i.get(`Me`),l=O(``),u=O([]),d=O([]),f=O(!1),p=O(!1),m=O(null);async function h(){let{data:e,paging:t}=await g();u.value=u.value.concat(e),m.value=t.cursors.after,p.value=!t.cursors.after}function g(){return o.getFollowersToInvite({id:n.band.id,userId:c.id,after:m.value,limit:30}).$promise}function _(){if(d.value.length>10){a.addNotification({title:`You can only invite up to 10 followers.`,classList:`alert`,autoclose:8e3});return}f.value=!0,s.save({id:n.band.id,rel:`bands`},{message:l.value,isBandFollowInvite:!0,userIds:d.value.map(e=>e.id)}).$promise.then(()=>{a.addNotification({title:`Invitation(s) sent`,classList:`success`,autoclose:8e3}),r(`closeModal`)}).catch(()=>{a.addNotification({title:`Unable to send invite, please try again`,classList:`alert`,autoclose:8e3})}).finally(()=>{f.value=!1}),ya()}re(d,function(){d.value.length>10&&(a.addNotification({title:`You can send up to 10 invitations at once`,classList:`alert`,autoclose:8e3}),d.value=d.value.slice(0,10))});function b(e){return Xa(e,[250])?!0:`Please use maximum 250 characters.`}return(e,t)=>(F(),G(`section`,WC,[K(`form`,{onSubmit:me(_,[`prevent`])},[K(`header`,GC,[K(`h2`,KC,y(`Invite Followers`),1)]),K(`section`,qC,[K(`div`,JC,[q(Jo,null,{label:W(()=>[q(Yo,{for:`inviteFollowersMessage`,"font-weight":`medium`},{default:W(()=>[B(y(`Message (optional)`),1)]),_:1})]),field:W(()=>[q(rs,{id:`inviteFollowersMessage`,modelValue:l.value,"onUpdate:modelValue":t[0]||=e=>l.value=e,name:`inviteFollowersMessage`,rows:`3`,size:`medium`,"validation-rules":b,style:{resize:`none`}}
56,{"character-counter":W(e=>[K(`span`,{class:v(e.class)},y(`${l.value.length}/250`),3)]),_:1},8,[`modelValue`])]),_:1}),K(`div`,YC,[K(`span`,XC,y(`Followers`),1),K(`span`,ZC,y(`${d.value.length}/10`),1)])]),K(`div`,null,[p.value&&u.value.length===0?(F(),ie(Hs,{key:0,"vertical-alignment":`center`},{"illustration-icon":W(({class:e})=>[q(IC,{class:v(e),size:40},null,8,[`class`])]),title:W(()=>[B(y(`No eligible users to invite yet.`),1)]),_:1})):(F(),G(`div`,QC,[(F(!0),G(se,null,pe(u.value,e=>(F(),ie(UC,{key:e.id,modelValue:d.value,"onUpdate:modelValue":t[1]||=e=>d.value=e,user:e},null,8,[`modelValue`,`user`]))),128)),p.value?H(``,!0):(F(),ie(ws,{key:0,"load-more":h}))]))])]),K(`section`,$C,[q(Ue,{type:`submit`,size:`medium`,color:`primary`,"is-disabled":!d.value.length||f.value,"is-loading":f.value},{default:W(()=>[B(y(`Send Invite`),1)]),_:1},8,[`is-disabled`,`is-loading`])])],32),q(Pa,{onClick:t[2]||=t=>e.$emit(`closeModal`)})]))}};angular.module(`bandlab.band`).controller(`BandInviteFollowersCtrl`,[`$scope`,function(e){e.openInviteFollowersModal=t;function t(e){X(ew,{band:e},{overlayClose:!1})}}]),angular.module(`bandlab.band`).controller(`BandJoinCtrl`,[`$rootScope`,`$scope`,`appActions`,`AppNotifications`,`ConfirmModal`,`Invite`,`Me`,`Modal`,function(e,t,n,r,i,a,o,s){t.sendRequestToJoinBand=function(t){if(!n.checkAllowed(`bandRequestInvite`))return;new s({contentScope:{invite:t.invite,submit:i},id:`bandJoinRequestModal`,templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-join-request-66921bb72.html`}).show();function i(n){new a({message:n,userIds:[o.id]}).$save({rel:`bands`,id:t.id}).then(function(){e.$broadcast(`$band:changed`,{action:`update`,band:t}),e.$broadcast(`$invite:changed`),r.addNotification({autoclose:8e3,classList:`success`,title:`Request sent`})}).catch(function(e){e.data?.errorCode!==201&&e.data?.errorCode!==202&&r.addNotification({autoclose:8e3,classList:`alert`,title:`Unable to send request`,content:Qe(e,`data.message`)})}).finally(function(){e.$broadcast(`bandJoinRequestModal`,`close`)})}},t.cancelRequestToJoinBand=function(t){new i({cancelLabel:`No`,confirmLabel:`Yes`,contentScope:{title:`Cancel Request`,message:`Are you sure you want to <strong>cancel</strong> your request to join ${t.name}?`},id:`bandCancelRequestModal`,onConfirm:function(){let n=new a;n.bandId=t.id,n.$remove({id:t.invite.id}).then(function(){e.$broadcast(`$band:changed`,{action:`update`,band:t}),e.$broadcast(`$invite:changed`),r.addNotification({autoclose:8e3,classList:`success`,title:`Request canceled`})}).catch(function(e){r.addNotification({autoclose:8e3,classList:`alert`,title:`Unable to cancel request`,content:e.data.message})}).finally(function(){e.$broadcast(`bandCancelRequestModal`,`close`)})}}).show()}}]),angular.module(`bandlab.band`).controller(`BandLeaveCtrl`,[`$analytics`,`$scope`,`$state`,`AppNotifications`,`BandActions`,`Me`,function(e,t,n,r,i,a){t.deleteBand=o,t.leaveBand=s,t.userRole=t.band.role,t.$on(`$band:changed`,function(e,{action:n,data:r}){n===`role`&&(t.userRole=r.role)});function o({isLeaving:r}={}){return i.deleteBand(t.band,r).then(()=>{e.eventTrack(`Delete Band`,{category:`Band`}),n.includes(`band`)&&n.go(`user.feed`,{username:a.username})}).catch(e=>c(e,`Unable to delete the band`))}function s(){return t.band.counters.members===1?o({isLeaving:!0}):t.userRole===`Owner`?X(J(()=>import(`./D56fJ6_J.js`)),{manageMembersRoute:{name:`band.edit.members`,params:{username:t.band.username}}}):i.leaveBand(t.band).then(function(){e.eventTrack(`Leave Band`,{category:`Band`,label:t.band.id})}).catch(e=>c(e,`Unable to leave the band. Please try again.`))}function c(e,t){e!==`Cancelled`&&r.addNotification({title:t,content:Qe(e,`data.message`)||Qe(e,`message`,`Unknown error`),autoclose:5e3,classList:`alert`})}}]),angular.module(`bandlab.band`).controller(`BandManageCtrl`,[`$scope`,`Invite`,`User`,function(e,t,n){e.$on(`$invite:changed`,function(){r()}),r();function r(){t.query({id:e.band.id,entity:`bands`,accepted:!1,limit:50}).$promise.then(function(t){e.pendingInvitedUser=[],e.pendingInvitedExternalUser=[],t.data.forEach(function(t){var r;t.user?(r=new n(t.user),r.invite=t,e.pendingInvitedUser.push(r)):(r=new n({email:t.email}),r.invite=t,e.pendingInvitedExternalUser.push(r))})})}}]),angular.module(`bandlab.band`).controller(`BandMembersCtrl`,[`$injector`,`$rootScope`,`$scope`,`AppNotifications`,`BandActions`,`Me`,`Role`,`User`,function(e,t,n,r,i,a,o,s){n.me=a,n.removeMember=d,n.updateRole=u,n.userRole=n.band.role;function c(){l()}function l(){s.fromBand({bandId:n.band.id,accepted:!0}).$promise.then(({data:e})=>{n.members=e})}function u(e,r){if(r===`Owner`){let r=MS(n.members,{role:`Owner`});return i.assignOwnership(n.band,e).then(()=>{r.role=`Admin`,n.band.role===`Owner`&&n.setUserRole(`Admin`),t.$broadcast(`$band:changed`,{action:`role`,data:r})}).catch(e=>{f(e),c()})}o.setUserRole({bandId:n.band.id,userId:e.id,role:r}).then(()=>{e.role=r}).catch(e=>{f(e),c()})}function d(e){i.removeMember(n.band,e).then(function(){ja(n.members,function(t){return t.id===e.id}),--n.band.counters.members}).then(function(){}).catch(function(e){f(e)})}function f(e){r.addNotification({title:e?.data?.message??`Something went wrong, please try again later`,classList:`alert`,autoclose:5e3})}n.setUserRole=function(e){n.userRole=e,n.band.role=e},n.$on(`$invite:changed`,c),c()}]),angular.module(`bandlab.band`).component(`bandCard`,{bindings:{band:`=`},templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-card-06a7ef1e5.html`,controllerAs:`vm`}),angular.module(`bandlab.band`).component(`bandMembersCard`,{bindings:{band:`=`},templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-members-card-03c6d8781.html`,controller:[`$rootScope`,`User`,function(e,t){let n=this;n.$onInit=r,n.getMembers=i;function r(){i({limit:10}).then(({data:e})=>{n.users=e})}function i(e){return t.fromBand(Object.assign(e,{bandId:n.band.id,accepted:!0})).$promise}e.$on(`$invite:changed`,r)}],controllerAs:`vm`}),angular.module(`bandlab.band`).component(`bandTile`,{bindings:{band:`=`},transclude:{actions:`?bandTileActions`},templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-tile-cb32a3cad.html`,controllerAs:`vm`,controller:[`$element`,`$scope`,`$state`,`User`,function(e,t,n,r){let i=this;i.getMembers=a,i.triggeredFrom=Ee(n,e),t.$on(`$band:changed`,(e,{action:t,band:n})=>{t===`update`&&i.band&&n.id===i.band.id&&Object.assign(i.band,n)});function a(e={}){return r.fromBand(Object.assign({bandId:i.band.id,limit:50,accepted:!0},e)).$promise}}]}),angular.module(`bandlab.band`).component(`bandTileMembers`,{bindings:{band:`=`},templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-tile-members-bb3c7397a.html`,controller:[`User`,function(e){let t=this;t.getMembers=n;function n(n={}){return e.fromBand(Object.assign({bandId:t.band.id,limit:50,accepted:!0},n)).$promise}}],controllerAs:`vm`}),angular.module(`bandlab.band`).factory(`Band`,[`$http`,`$resource`,function(e,t){let n=`bands`,r=`https://www.bandlab.com/api/v1.3/${n}`;return t(r,{},{delete:{method:`DELETE`,params:{id:`@id`},url:`${r}/:id`},fromUser:{method:`GET`,params:{userId:``,limit:10},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/${n}`},follow:{method:`POST`,params:{id:`@id`,followerId:`@followerId`},url:`${r}/:id/followers/:followerId`},get:{method:`GET`,params:{id:`@id`},url:`${r}/:id`},getFollowers:{method:`GET`,params:{id:`@id`,limit:10},preservePagination:!0,url:`${r}/:id/followers`},getFollowersToInvite:{method:`GET`,params:{id:`@id`,userId:`@userId`,limit:10},preservePagination:!0,url:`${r}/:id/members/:userId/follow-invitees`},save:{method:`POST`,url:r,transformResponse:[...e.defaults.transformResponse]},saveToSchool:{method:`POST`,params:{schoolId:`@schoolId`},url:`https://www.bandlab.com/api/v1.3/schools/:schoolId/classrooms`},suggested:{method:`GET`,url:`${r}/suggested`},unfollow:{method:`DELETE`,params:{id:`@id`,followerId:`@followerId`},url:`${r}/:id/followers/:followerId`},update:{method:`PATCH`,params:{id:`@id`},url:`${r}/:id`}})}]),angular.module(`bandlab.band`).factory(`BandActions`,[`$q`,`$rootScope`,`authService`,`Band`,`ConfirmModal`,`Me`,`Role`,function(e,t,n,r,i,a,o){return{assignOwnership:s,deleteBand:c,leaveBand:u,removeMember:l};function s(t,n){return e(function(e,r){return new i({confirmLabel:`Transfer`,contentScope:{title:`Transfer ownership to ${n.name}?`,message:`<p>Your ownership rights will be given to the selected user.</p>`}
56,onCancel:r,onConfirm:function(){o.setUserRole({bandId:t.id,userId:n.id,role:`Owner`}).then(function(t){n.role=t.role,e(n)}).catch(r)}}).show().catch(r)})}function c(a,o){return e(function(e,s){return new i({confirmLabel:`Delete`,contentScope:{title:o?`Leave Band`:`Delete Band`,message:` 57 <div class="text-left"> 58 ${o?`<p>Youâre the only member of this band. If you leave, this band will be deleted.</p>`:``} 59 <p>Deleting a band cannot be undone. By doing so:</p> 60 <ul> 61 <li>You will lose access to any project saved by the band.</li> 62 <li>All band members will no longer be in the band.</li> 63 <li>All band members will lose access to any existing projects owned by the band.</li> 64 </ul> 65 <p>${`Are you sure you want to delete ${`<strong>${a.name}</strong>`}?`}</p> 66 </div> 67 `},onCancel:()=>s(`Cancelled`),onConfirm:function(){t.$broadcast(`$band:changed`,{action:`mark-deleted`,band:a}),r.delete({id:a.id}).$promise.then(n.refreshMe).then(function(){t.$broadcast(`$band:changed`,{action:`delete`,band:a}),e(a)}).catch(e=>{t.$broadcast(`$band:changed`,{action:`unmark-deleted`,band:a}),s(e)})}}).show().catch(s)})}function l(t,n){return e(function(e,r){return new i({confirmLabel:`Remove`,contentScope:{title:`Remove Member`,message:`<p>Remove this member from your band?</p>`},onCancel:r,onConfirm:function(){o.removeUserRole({bandId:t.id,userId:n.id}).then(e).catch(r)}}).show().catch(r)})}function u(n){return e(function(e,r){return new i({confirmLabel:`Leave`,contentScope:{title:`Leave this band?`},onCancel:()=>r(`Cancelled`),onConfirm:function(){t.$broadcast(`$band:changed`,{action:`mark-deleted`,band:n}),o.removeUserRole({bandId:n.id,userId:a.id}).then(()=>{t.$broadcast(`$band:left`,{band:n}),e(n)}).catch(e=>{t.$broadcast(`$band:changed`,{action:`unmark-deleted`,band:n}),r(e)})}}).show().catch(r)})}}]),angular.module(`bandlab.banner`,[]),angular.module(`bandlab.banner`).directive(`userProfileServicesBannerCarousel`,[`$injector`,`Me`,function(e,t){return{restrict:`E`,replace:!0,scope:{autoPlayInterval:`=?`,triggeredFrom:`<`},template:`<div></div>`,link:function(n,r){function i(){n.$destroy(),r.remove()}Me(t,`as_user_profile_promo_list`).then(a=>{if(a.value===`true`&&(n.items=a.payload),!n.items?.length)return i();function o(e,t,n){Ta(e.item),e.webLink?window.open(`https://www.bandlab.com${e.webLink}`,`_blank`):e.item===`distro`?__({triggeredFrom:n,shouldOpenExternalTab:!0,paywallProductAttribution:`distro_profile_carousel`}):e.item===`boost`&&js(t,n,!0)}$(import(`./Bxr_IOyo.js`),r[0],n,{$injector:e},{autoPlayInterval:n.autoPlayInterval,items:n.items,onEmpty:i,onActivated:e=>o(e,t,n.triggeredFrom)})})}}}]).directive(`trackPageServicesBannerCarousel`,[`$injector`,`AppNotifications`,`Me`,function(e,t,n){return{restrict:`E`,replace:!0,scope:{autoPlayInterval:`=?`,revisionTrackSong:`=`,triggeredFrom:`<`},template:`<div></div>`,link:function(r,i){function a(){r.$destroy(),i.remove()}Me(n,`as_promo_banners_revision_page`).then(n=>{if(n.value===`true`&&(r.items=n.payload),!r.items?.length)return a();function o(n,i){if(oa(n.item),n.webLink)window.open(`https://www.bandlab.com${n.webLink}`,`_blank`);else if(n.item===`distro`)__({triggeredFrom:i,shouldOpenExternalTab:!0,paywallProductAttribution:`distro_track_page_carousel`});else if(n.item===`boost`){if(r.revisionTrackSong.isPublic.value||r.revisionTrackSong.isUnlisted.value)return ay(e,r.revisionTrackSong.innerPost.value,i);t.addNotification({title:`Oops! This is private`,content:`Make your track public and try again`,classList:`warning`,innerScope:{revision:r.revisionTrackSong.innerRevision.value},action:`<button type="button" class="ds-button ds-button-color-primary ds-button-size-compact" 68 async-modal="https://www.bandlab.com/web-app/song/partials/_revision-publish-e889bd989.html" 69 async-modal-id="editRevisionModal" 70 async-modal-parse="{ revision: $parent.innerScope.revision }"><span class="ds-button-text">Publish</span></button>`,autoclose:8e3})}}$(import(`./Bxr_IOyo.js`),i[0],r,{$injector:e},{autoPlayInterval:r.autoPlayInterval,items:r.items,onEmpty:a,onActivated:e=>o(e,r.triggeredFrom)})})}}}]),angular.module(`bandlab.banner`).directive(`banner`,[`$compile`,`$templateRequest`,`Me`,function(e,t,n){let r=new Map,i=new Map,a=ve(function(e){return import(`./BWvciV-z.js`).then(e=>e.t).then(function({getAmplitudeFeatureFlag:t}){return t(n,e)})},{cache:r}),o=ve(function(e){return t(e)},{cache:i}
70);return{restrict:`E`,link:async function(t,s,c){let{hasMembership:l}=qn(t,n);if(new URLSearchParams(window.location.search).get(`ghostInspectorBannerId`),c.amplitudeFlag)c.bannerId=r.has(c.amplitudeFlag)?r.get(c.amplitudeFlag):await a(c.amplitudeFlag);else if(c.bannerId)c.bannerId===`membership-side`&&l.value&&s[0].remove();else{let e=[`distribution-side`];c.bannerId=l.value?u(e):u([`membership-side`,...e])}function u(e){return e[Math.floor(Math.random()*e.length)]}t.closeBanner=(e,t)=>{e.stopPropagation(),e.target.closest(`banner`).remove();let n={}[t],r=parseInt(d.get(p(n))),i=r?r===15?r:r*2+1:3;d.set(p(t),!0,{expires:i,domain:`bandlab.com`}),d.set(p(n),i,{domain:`bandlab.com`})},t.showPaywallModal=()=>{ai({productAttribution:`membership_banner`,productAttributionGroup:`artist_services`,triggeredFrom:`membership_banner`})},t.handleClickDistroBanner=()=>__({triggeredFrom:`distro_promo_banner`,shouldOpenExternalTab:!0,paywallProductAttribution:`distro_promo_banner`});let f={"membership-side":await a(`voice_cleaner_free`).then(e=>e===`on`)?`https://www.bandlab.com/web-app/banner/partials/_membership-side-promo-banner-b44228153.html`:`https://www.bandlab.com/web-app/banner/partials/_membership-side-banner-a98818ab0.html`,"mobile-apps":`https://www.bandlab.com/web-app/banner/partials/_mobile-apps-3ebfe58b0.html`,"distribution-side":`https://www.bandlab.com/web-app/banner/partials/_distribution-side-banner-c90b43743.html`}[c.bannerId];if(!f){s.remove();return}function p(e=`banner`){return c.cookiesKey?e.concat(`_`).concat(c.cookiesKey):e}let m=i.has(f)?i.get(f):await o(f);d.get(p(c.bannerId))?s.remove():s.append(e(m)(t)),t.membershipBannerTitleTemplate=`Propel your creator journey with 71 <div class="banner-membership-crown-title"> 72 <img src="https://www.bandlab.com/web-app/images/membership/membership-banner-crown-b3e2c193b7.svg"> 73 Membership 74 </div> 75 `}}}]);const tw={exact:[`track`],prefixes:[`track`,`user`,`userStreaks`,`feed`]};function nw(e){return e?tw.exact.includes(e)?!0:tw.prefixes.some(t=>e.startsWith(`${t}.`)):!1}angular.module(`bandlab.banner`).directive(`downloadAppBanner`,[`$analytics`,`$state`,function(e,t){return{replace:!0,restrict:`E`,template:`<div ng-show="isDownloadAppBannerVisible()"></div>`,link:function(n,r){n.isDownloadAppBannerVisible=function(){return nw(t.current?.name)},!bn||o()?r.remove():$(import(`./DB47PuqH.js`),r[0],n,{$analytics:e,$state:t})}}}]),angular.module(`bandlab.banner`).directive(`modalDownloadAppsSmall`,[`$transitions`,`Modal`,function(e,t){return{restrict:`E`,link:function(n){if(!bn)return;let r=e.onFinish({},a);function i(){new t({class:`mobile-apps-small-overlay`,templateUrl:`https://www.bandlab.com/web-app/banner/partials/_mobile-apps-small-5fd754675.html`,onDestroy:function(){let e=new Date;e.setHours(e.getHours()+1),d.put(`modalDownloadAppsSeen`,`true`,{expires:e})}}).show(),r()}function a(e){let t=e.to();d.get(`modalDownloadAppsSeen`)||d.get(`webview`)===`true`||t.data?.hideModalDownloadAppsSmall||(n.downloadUrl=/user\./.test(t.name)?Qo(window.location.href):[`post`,`track`].includes(t.name)?Zo(window.location.href,e.params().revId):ts(window.location.href),i())}}}}]),angular.module(`bandlab.banner`).directive(`promoBanner`,[`$state`,`Me`,function(e,t){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(n,r,i){n.isMembershipReady=!1,n.me=t;let{getUserMembership:a}=qn(n,t,e=>{n.hasMembership=e.plan!==`Free`}),s=n.$watch(`me.id`,function(){t.id&&(t.isAnonymous()||s(),Promise.all([Me(t,`mem_promo_banner`),a(t.id)]).then(function([i]){if(n.isMembershipReady=!0,n.memPromoBannerFlag=i,f()){let i=n.memPromoBannerFlag.payload?.icon,a=angular.isUndefined(i)?_(_d):i===null||i===``?null:i;$(import(`./D8PsYePa.js`),r[0],n,{$state:e,Me:t,scope:n},{backgroundImage:n.memPromoBannerFlag.payload?.backgroundImage,ctaLabel:n.memPromoBannerFlag.payload?.ctaLabel,ctaLink:n.memPromoBannerFlag.payload?.ctaLink,description:n.memPromoBannerFlag.payload?.description,endDate:n.memPromoBannerFlag.payload?.endDate,icon:a,isDismissible:n.memPromoBannerFlag.payload?.isDismissible,textColor:n.memPromoBannerFlag.payload?.textColor,title:n.memPromoBannerFlag.payload?.title}),n.$applyAsync()}}))}),c=new ResizeObserver(p),l=[`feed`,`dashboard`,`discover`,`explore`,`library`,`user`,`notifications`,`sounds`],u=[`albums`,`ai`,`beatslanding`,`boost`,`fanReach`,`features`,`fx`,`landing`,`mastering`,`membership`,`songStarter`,`pages`,`promoteIt`,`opportunitiesLandingPage`,`distribution`,`splitter`,`playgroundLandingPage`,`products.mastering`,`products.marketingDiceVocalist`,`products.marketingDiceBeatMaker`,`products.voiceCleaner`];n.isPromoBannerVisible=function(){return!d.get(`hidePromoCampaignBanner`)&&f()&&!bn&&!o()&&(l.some(t=>e.includes(t))||u.some(t=>e.is(t)))},n.$watch(i.ngShow,function(e){e?c.observe(r[0]):(c.disconnect(),document.body.style.removeProperty(`--top-bar-banner-height`))});function f(){let e=!!n.memPromoBannerFlag?.value&&![`false`,`off`].includes(n.memPromoBannerFlag.value);return n.isMembershipReady&&e&&!n.hasMembership}function p(e){let t=e[0].contentRect.height;document.body.style.setProperty(`--top-bar-banner-height`,`${t}px`)}}}}]),angular.module(`bandlab.beats`,[]),angular.module(`bandlab.beats.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`beatsPurchase`,{url:`/beats-purchase/{beatId:[a-zA-Z0-9-_]+}?promoCode&source`,template:` 76 <div class="content-main"> 77 <loader-wave></loader-wave> 78 </div> 79 `,controller:[`$state`,`$stateParams`,`AppNotifications`,function(e,t,n){wd(t.beatId).then(function(r){return r.isPurchased?e.go(`beats`,{path:`purchased`}):Td(`beats`,`paddle`,{beatId:t.beatId,promoCode:t.promoCode}).then(function({id:n}){e.go(`checkout`,{contentId:t.beatId,paymentIntentId:n,product:`beats`,redirectUrl:encodeURIComponent(JSON.stringify({name:`beats`,params:{path:`purchased`}})),redirectCancelUrl:encodeURIComponent(JSON.stringify({name:`beats`})),source:t.source},{location:`replace`})}).catch(function(t){n.addNotification({title:navigator.onLine?`Something went wrong, please try again later`:`Check your internet connection and try again`,classList:`alert`,content:t?.message||`Something went wrong, please try again later`,autoclose:8e3}),e.go(`0`)})})}]}).state(`beatsDownloadRedirect`,{url:`/beats/download`,redirectTo:{state:`beats`,params:{path:`purchased`}}}).state(`beatsDownload`,{url:`/beats-download`,redirectTo:{state:`beats`,params:{path:`purchased`}}}).state(`beatslandingRedirect`,{url:`/beats`,redirectTo:`beatslanding`}).state(`beatslanding`,{url:`/beats/home`,template:`<div id="vue"></div>`,data:{hideNavBar:!0,skipOnboarding:!0},controller:[`$element`,`$injector`,`$scope`,`authService`,`Me`,function(e,t,n,r,i){$(import(`./D8faB_9N.js`),e[0].querySelector(`#vue`),n,{$injector:t,authService:r,Me:i},{})}]})}]),angular.module(`bandlab.beats`).directive(`beatAttachment`,[`$injector`,`$rootScope`,`$state`,`Me`,function(e,t,n,r){return{restrict:`E`,replace:!0,scope:{post:`=`},template:`<div></div>`,link:function(i,a){$(import(`./DDBbpkWD.js`),a[0],i,{$injector:e,$rootScope:t,$state:n,Me:r},{post:i.post})}}}]),angular.module(`bandlab.beats`).component(`beatDetailsLink`,{bindings:{beat:`<`},transclude:!0,template:`<a 80 ui-state="'beats'" 81 ui-state-params="{ 82 path: vm.beat.isSaved ? 'favorites' : vm.beat.isPurchased ? 'purchased' : vm.beat.id, 83 subpath: (vm.beat.isSaved || vm.beat.isPurchased) ? vm.beat.id : undefined 84 }" 85 ng-click="vm.navigateToBeatDetails($event)" 86 ng-transclude></a>`,controller:[`$state`,function(e){let t=this;t.navigateToBeatDetails=r;function n(){return t.beat.isSaved?e.href(`beats`,{path:`favorites`,subpath:t.beat.id}):t.beat.isPurchased?e.href(`beats`,{path:`purchased`,subpath:t.beat.id}):e.href(`beats`,{path:t.beat.id})}function r(t){e.includes(`beats`)&&(t.preventDefault(),window.history.pushState({},``,n()),window.dispatchEvent(new PopStateEvent(`popstate`)))}}],controllerAs:`vm`}),angular.module(`bandlab.beats`).directive(`freeBeatsTooltip`,[`$state`,`Me`,function(e,t){return{restrict:`C`,link:function(n,r){let{claimsCopy:i,isFreeBeatsExperiment:a,refreshLimits:o}=Ad(t),{setStepStatusAsShown:s,activeEducationStep:c}=vd(),{availableFeaturesSet:l}=Kn(t);n.isClaimsModalAvailable=!1,n.shouldShowFreeBeatsTooltip=!1,n.tooltipContent=`Claim free beats`,n.isFreeBeatsTooltipOpen=n.shouldShowFreeBeatsTooltip,n.$watch(`isClaimsModalAvailable`,function(t){if(!t)return;n.shouldShowFreeBeatsTooltip=c.value===bd.freeBeats;let i=window.getComputedStyle(r[0]).display!==`none`;return e.params?.subpath===`free`&&i&&n.openFreeClaimsModal()}),n.$watch(`shouldShowFreeBeatsTooltip`,function(){n.isFreeBeatsTooltipOpen=n.shouldShowFreeBeatsTooltip});let u=re(c,function(e){n.shouldShowFreeBeatsTooltip=e===bd.freeBeats,n.$applyAsync()},{immediate:!0}),d=re(()=>l.value.has(`members-only-beats`),function(){o()},{immediate:!0}),f=re([()=>i.quotaPopup,a],function([e,r]){n.isClaimsModalAvailable=!t.isAnonymous()&&!r&&!!e,n.$applyAsync()},{immediate:!0});n.$on(`$destroy`,function(){u(),d(),f()}),n.openFreeClaimsModal=function(){n.shouldShowFreeBeatsTooltip&&=(s({step:bd.freeBeats}),!1);let e=J(()=>import(`./CXrz0taz.js`));X(e,{onSubmit:()=>{ai({productAttribution:`beats`,productAttributionGroup:`beats`})}})}}}}]).directive(`freeBeatsModalButton`,[`$injector`,function(e){return{restrict:`E`,template:`<div></div>`,replace:!0,scope:{openModal:`&`},link:function(t,n){let r=h({openModal:t.openModal});$(import(`./CnWMI3hX.js`),n[0],t,{$injector:e,scope:t},r)}}}]),angular.module(`bandlab.chat`,[]),rw.$inject=[`$scope`,`$stateParams`],angular.module(`bandlab.chat.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`chat`,{url:`/chat?requests&contacts`,redirectTo:function(){return bn?`unavailable`:null},params:{contacts:{dynamic:!0},requests:{dynamic:!0}}
86,templateUrl:`https://www.bandlab.com/web-app/chat/views/chat-layout-e0ceb2af0.html`,resolve:{templates:[`$templateRequest`,`$q`,function(e,t){return t.all([e(`https://www.bandlab.com/web-app/chat/partials/_conversation-690ca91d9.html`),e(`https://www.bandlab.com/web-app/chat/partials/_conversation-input-dd4e742f8.html`),e(`https://www.bandlab.com/web-app/chat/partials/_conversation-new-4aa894b50.html`)]).catch(function(){})}],theConversationRequests:[`Chat`,function(e){return e.getconversationRequests()}],theHiddenConversationRequests:[`Chat`,function(e){return e.getHiddenConversationRequests()}]},controller:[`$filter`,`$q`,`$scope`,`$state`,`Chat`,`ChatCache`,`ChatHelper`,`ConfirmModal`,`theConversationRequests`,`theHiddenConversationRequests`,`Me`,function(e,t,n,r,i,a,o,s,c,l,u){let d=t.resolve(),f,p=c.data.paging.cursors.after,m=l.data.paging.cursors.after;a.conversationsRequests=c.data.data,a.conversationsHiddenRequests=l.data.data,n.chatRequestType=`Pending`,n.conversationRequestsDisplayed=r.params.requests===`true`,n.infiniteScrollRequestsEnded=!p,n.infiniteScrollHiddenEnded=!m,n.chatCache=a,n.getConversations=o.getConversations,n.declineConversationRequests=_,n.privacySettingsLink=r.href(`settings.privacy`),n.loadMoreRequests=function(){return n.infiniteScrollRequestsEnded?t.resolve([]):(d=d.then(()=>i.getconversationRequests({after:p})).then(e=>{p=e.data.paging.cursors.after,n.chatCache.conversationsRequests=n.chatCache.conversationsRequests.concat(e.data.data),n.infiniteScrollRequestsEnded=!p}),d)},n.loadMoreHiddenRequests=function(){return n.infiniteScrollHiddenEnded?t.resolve([]):(d=d.then(()=>i.getHiddenConversationRequests({after:m})).then(e=>{m=e.data.paging.cursors.after,n.chatCache.conversationsHiddenRequests=n.chatCache.conversationsHiddenRequests.concat(e.data.data),n.infiniteScrollHiddenEnded=!m}),d)},n.loadMore=function(){return n.infiniteScrollEnded?t.resolve([]):(d=d.then(()=>i.getConversations(50,f)).then(e=>{f=e.data.paging.cursors.after,n.infiniteScrollEnded=!f}),d)},n.loadMore().then(function(){r.current.name===`chat`&&(a.conversations.length?n.conversationRequestsDisplayed&&n.chatCache.conversationsRequests.length?r.go(`chat.conversation`,{id:n.chatCache.conversationsRequests[0].id},{location:`replace`}):(n.conversationRequestsDisplayed=!1,r.go(`chat.conversation`,{id:a.conversations[0].id,requests:!1},{location:`replace`})):r.go(`chat.new`,{contacts:!0},{location:`replace`}))}),n.$on(`$chat:toggleRequestType`,function(e,t){n.chatRequestType=t}),n.$on(`$conversation:leave`,function(e,t){ja(n.chatCache.conversationsRequests,{id:t.id}),ja(a.conversations,{id:t.id}),g()}),n.$on(`$conversation:messagesRead`,function(e,t){let r=MS(n.chatCache.conversationsRequests,{id:t.id});r&&(r.unreadMessageCount=t.unreadMessageCount)});let h=Fa(e=>{i.getOneConversation(e.conversation.id).then(function(t){var n=MS(a.conversations,{id:e.conversation.id});if(!n){a.conversations.unshift(t);return}n.previewMessage=angular.copy(t.previewMessage),o.updateConversationLastMessage(n,e),document.location.pathname.indexOf(n.id)===-1&&(n.unreadMessageCount=t.unreadMessageCount)})},5e3,{trailing:!0,maxWait:5e3});n.$on(`$message:new`,function(e,t){var n=MS(a.conversations,{id:t.conversation.id});n?document.location.pathname.indexOf(n.id)===-1&&n.lastMessageSenderId!==u.id&&n.unreadMessageCount++:h(t)}),n.$on(`$band:left`,function(){g()}),n.$watch(`searchConversation`,function(t){if(n.infiniteScrollEnded||!t)return;r();function r(){e(`filter`)(a.conversations,{keywords:n.searchConversation}).length>50||n.infiniteScrollEnded||d.then(()=>n.loadMore()).then(()=>r())}}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logChatOpen:e}){e()});function g(){n.conversationRequestsDisplayed=!1,a.conversations[0]?r.go(`chat.conversation`,{id:a.conversations[0].id},{location:`replace`}):r.go(`chat.new`,{contacts:!0},{location:`replace`})}function _(e,t){return new s({confirmLabel:`Delete`,contentScope:{title:`Delete all?`,message:`<p>Ensure that youâre not deleting a request from someone you know.</p>`},onConfirm:function(){i.declineConversationRequests(e).then(function(){if(t===`Hidden`&&a.conversationsRequests.length>0)a.conversationsHiddenRequests=[],n.chatRequestType=`Pending`,n.$applyAsync();else return r.go(`chat`,{},{reload:!0})})}}).show()}}]}).state(`chat.new`,{url:`/new`,redirectTo:function(){return bn?`unavailable`:null},views:{conversation:{templateUrl:`https://www.bandlab.com/web-app/c
86hat/partials/_conversation-new-4aa894b50.html`}}}).state(`chat.conversation`,{url:`/{id:[a-zA-Z0-9-_]+}`,redirectTo:function(){return bn?`unavailable`:null},params:{rewriteTracking:function(){return()=>`/chat/conversation`}},views:{header:{template:`<conversation-header conversation-id="conversationId"></conversation-header>`,controller:rw},conversation:{template:`<conversation conversation-id="conversationId"></conversation>`,controller:rw},partner:{template:`<conversation-partner conversation-id="conversationId"></conversation-partner>`,controller:rw}}})}]);function rw(e,t){e.conversationId=t.id}angular.module(`bandlab.chat`).controller(`ConversationListCtrl`,[`$scope`,`Chat`,`ChatHelper`,function(e,t,n){return n.getConversations().length>0&&(e.getConversations=n.getConversations),t.getConversations(15).then(()=>{e.getConversations=n.getConversations})}]);const iw={AUDIO:`Audio`,IMAGE:`Image`,VIDEO:`Video`},aw={ATTACHMENTS:`Attachments`,GIF:`Animation`,LINKS:`Links`,TEXT:`Text`};function ow(e){let t=e.attachments?.length>0&&sw(e.attachments[0]?.type),n=e.links?.length>0,r=e.repliedMessage;return t||n||r}function sw(e){return new Set(Object.values(iw)).has(e)}function cw(e){return e.links?.[0]?.url?.match(/bandlab\.com\/join/)}function lw(e){let t=e.attachments?.[0]?.type;return e.status===`Deleted`?!1:e.messageContentType===aw.LINKS||e.messageContentType===aw.GIF?!0:e.messageContentType===aw.ATTACHMENTS?t===iw.IMAGE||t===iw.VIDEO:!1}function uw(e){let t=e.attachments?.[0]?.type,n=`https://www.bandlab.com/web-app/images/attachment-placeholder-782a26760a.png`;return t===iw.IMAGE?e.attachments[0].image.url:t===iw.VIDEO?e.attachments[0].video.previewUrl:e.messageContentType===aw.GIF?e.animation.previewUrl:e.messageContentType===aw.LINKS?e.links[0].image??n:n}function dw(e,t){function n(n,r){let i=`Uploadingâ¦`,a=``;n===`success`?i=`Upload completed`:n===`error`&&(i=`Unable to send message`,a=`alert`),t.clearAll(),t.addNotification({title:i,classList:a,content:r,autoclose:n===`uploading`?null:5e3}),e.$applyAsync()}return{showUploadStatus:n}}function fw(){function e(e,t){let n={objectType:`ChatMessage`,objectId:t,subObjectId:e.id,creator:e.sender};Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./CWskUNkY.js`)]).then(function([{createModal:e},{default:t}]){e(t,{toReport:n})})}return{reportMessage:e}}function pw(e,t){let n=e.get(`$rootScope`),r=e.get(`$state`),i=e.get(`AppNotifications`),a=e.get(`Me`),o=`https://www.bandlab.com/api/v1.3/users/${a.id}/conversations/${t.conversation.id}/messages/${t.message.id}/reactions`;return{getEmojiReactions:s,createEmojiReaction:c,updateEmojiReaction:l,deleteEmojiReaction:u};function s(){return Un.get(o).json()}function c(e){let{revertMessageReactions:n}=g();t.message.initiatorReaction=e,d(e);let i={reaction:e};Un.post(o,{json:i}).json().then(()=>{p(),Vi(i,r)}).catch(e=>{m(e),n()})}function l(e){let{currentInitiatorReaction:n,revertMessageReactions:r}=g();t.message.initiatorReaction=e,d(e),f(n),Un.patch(o,{json:{reaction:e}}).json().then(()=>{p()}).catch(e=>{m(e),r()})}function u(){let{currentInitiatorReaction:e,revertMessageReactions:n}=g();t.message.initiatorReaction=null,f(e),Un.delete(o).then(()=>{p()}).catch(e=>{m(e),n()})}function d(e){t.message.reactions||(t.message.reactions=[]);let n=t.message.reactions?.findIndex(t=>t.reaction===e);n===-1?t.message.reactions.push({reaction:e,count:1}):t.message.reactions[n].count++,t.$applyAsync()}function f(e){let n=t.message.reactions.findIndex(t=>t.reaction===e);t.message.reactions[n].count--,t.message.reactions[n].count===0&&t.message.reactions.splice(n,1),t.$applyAsync()}function p(){n.$broadcast(`$message:reactionUpdated`,{conversationId:t.conversation.id,initiatorReaction:t.message.initiatorReaction,memberId:a.id,messageId:t.message.id,reactions:t.message.reactions})}async function m(e){let t=`Something went wrong, please try again later`;e.name===`TypeError`?t=`Check your internet connection and try again`:e.response&&(t=(await e.response.json()).message),h(t)}function h(e){i.addNotification({content:e,classList:`alert`,autoclose:8e3})}function g(){let e=ul(t.message.reactions),n=t.message.initiatorReaction;return{currentInitiatorReaction:n,revertMessageReactions:r};function r(){t.message.reactions=e,t.message.initiatorReaction=n,t.$applyAsync()}}}const mw=[];angular.module(`bandlab.chat`).directive(`chatMessage`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{conversation:`<`,message:`=`},link:function(t,n){let r=h({conversation:t.conversation,message:t.message});
86t.$watch(function(e){let{message:t,conversation:n}=e;r.message=t,r.conversation=n});let i=$(import(`./C3Kbd1i3.js`).then(e=>e.t),n[0],t,{$injector:e,scope:t},r);mw.push(i)}}}]).directive(`chatLoadingMessages`,[`$injector`,`$timeout`,function(e,t){return{replace:!0,restrict:`E`,scope:{conversation:`<`,scrollToBottom:`&`},link:function(n,r){let i=n.conversation;function a(){t(n.scrollToBottom,300,!1)}let o=$(import(`./Beb6TjIl.js`),r[0],n,{$injector:e,scope:n},{conversation:i,scrollToBottom:a});mw.push(o)}}}]).directive(`chatReadStatus`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{conversation:`=`,message:`=`},link:function(t,n){let r=h({conversation:t.conversation,message:t.message});t.$watch(function(e){let{conversation:t,message:n}=e;r.conversation=t,r.message=n},!0);let i=$(import(`./wg28hbPR.js`),n[0],t,{$injector:e,scope:t},r);mw.push(i)}}}]).component(`chatMemberJoinedMessages`,{bindings:{getMembers:`&`},templateUrl:`https://www.bandlab.com/web-app/chat/partials/_member-joined-messages-3e27d9243.html`,controllerAs:`vm`}).directive(`conversation`,[`$timeout`,function(e){return{restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/chat/partials/_conversation-690ca91d9.html`,scope:{conversationId:`=conversationId`},link:function(t,n){let r=n[0].querySelector(`.conversation-body`),i=n[0].querySelector(`.conversation-message-list`);var a;function o(){if(t.oldestMessageReached&&r.removeEventListener(`scroll`,o),!t.isLoadingMoreMessages&&a>r.scrollTop&&r.scrollTop===0){let n=r.scrollHeight;t.loadOlderMessages(),e(()=>{r.scrollTo({top:r.scrollHeight-n})},0)}a=r.scrollTop}t.isSupportedAttachment=sw,t.scrollToBottom=function(){r.scrollTop=r.scrollHeight},t.initBodyLayout=function(){if(r.clientHeight>i.clientHeight&&!t.oldestMessageReached)return t.loadOlderMessages().then(t.initBodyLayout);setTimeout(function(){Promise.allSettled(mw.splice(0,mw.length)).then(function(){r.style.overflowY=`scroll`,r.style.visibility=`visible`,r.scrollTop=r.scrollHeight,o(),r.addEventListener(`scroll`,o)})})},t.getUsersJoinedBetweenMessages=function(e=null,n=null){if(!t.conversation?.members||t.conversation.type!==`Band`&&t.conversation.type!==`Song`)return[];let r=t.conversation?.members;return!e&&!n?t.oldestDate?r.filter(e=>e.createdOn<t.oldestDate.toISOString()):[]:e?n?r.filter(t=>t.createdOn>e.createdOn&&t.createdOn<=n.createdOn):r.filter(t=>t.createdOn>e.createdOn):r.filter(e=>e.createdOn<=n.createdOn)},t.$on(`elastic:resize`,function(){setTimeout(s,32)});function s(){let e=r.scrollHeight-r.offsetHeight-r.scrollTop;Math.abs(e)<20&&(r.scrollTop=r.scrollHeight)}},controller:[`$q`,`$scope`,`$state`,`$timeout`,`Chat`,`ChatCache`,`ChatHelper`,`FloatingChat`,`Me`,`User`,function(e,t,n,r,i,a,o,s,c,l){var u,d;t.oldestMessageReached=!1,t.state=n;function f(){return d?e.resolve([]):(u=i.getMessages(t.conversation,20).then(function(e){return d=!t.conversation.after,e}),u)}function p(){return t.oldestMessageReached?e.resolve():(t.isLoadingMoreMessages=!0,u=u.then(function(e){if(t.oldestMessageReached=d,t.messages=t.messages||[],t.messages=t.messages.concat(e),d){let e=new Date,n=t.messages.length?new Date(t.messages[t.messages.length-1].createdOn):e;t.oldestDate=n,e.getDate()===n.getDate()&&e.getMonth()===n.getMonth()&&e.getFullYear()===n.getFullYear()&&(t.chatStartedToday=!0)}return f()}).finally(function(){t.isLoadingMoreMessages=!1}),u)}t.conversation=a.conversations.concat(a.conversationsRequests,a.conversationsHiddenRequests).find(e=>e.id===t.conversationId);let m=t.conversation?.isHidden;i.getOneConversation(t.conversationId).then(function(e){return m&&(e.isHidden=!0),t.conversation=e,t.canMessage=e.permissions?.message||e.type===`Band`,f()}).then(function(){return p()}).then(function(){return t.initBodyLayout()}).then(function(){h(),i.markAllAsRead(t.conversation,t.messages)}).catch(async function(e){if(e&&(e.status===404||e.status===400)&&ja(a.conversations,e=>e.id===t.conversationId),e&&e.status===403&&(t.errorCode=403,t.messages=[],c.permissions.canCreateConversations)){t.isBlocked=!0;let e=n.params.id.split(`_`)[1],r=await l.get({id:e}).$promise,i={id:r.conversationId,partner:r,picture:r.picture,user:r,type:`User`};a.conversations=o.tidyConversations([i,...a.conversations]);return}if(n.includes(`chat`))return a.conversations.length?n.go(`chat.conversation`,{id:a.conversations[0].id},{reload:!0}):n.go(`404`)}),t.loadOlderMessages=p;function h(){t.$on(`$conversation:memberAdded`,function(e,n){t.conversation.id===n.conversationId&&o.updateConversationMember(t.conversation,n)}
86),t.$on(`$message:new`,function(e,n){let l=MS(a.conversations,{id:n.conversation.id});if(l&&(l.previewMessage=Object.assign({},n),l.date=n.createdOn,o.updateConversationLastMessage(l,n),n.attachments?.length>0)){let e=l.previewMessage.attachments[0];l.previewMessage.attachmentType=e.type,l.previewMessage.content=e.caption,l.previewMessage.abstract=l.previewMessage.content}if(n.conversation.id===t.conversation.id&&!MS(t.messages,{id:n.id})){if(o.addRelativeMessageData(n,t.messages[0],!0),t.messages.unshift(n),r(t.scrollToBottom,300,!1),n.sender.id!==c.id){if(s.activeConversations[0]&&s.activeConversations[0].isMinimized)return;i.markAsRead(n,t.conversation).then(function(){t.conversation.unreadMessageCount=0,t.$emit(`$message:read`,t.conversation)})}let e=a.conversations.find(e=>e.id===t.conversation.id);o.updateConversationLastMessage(e,n)}}),t.$on(`$message:delete`,function(e,n){let r=jS(t.messages,{id:n.messageId});if(r<0)return;t.messages[r].status=`Deleted`,t.messages[r].content=`This message was deleted`,g(n.messageId);let i=MS(a.conversations,{id:n.conversationId});i&&i.lastMessageId===n.messageId&&(i.previewMessage=t.messages[r],o.updateConversationLastMessage(i,t.messages[r]))}),t.$on(`$chat:openFloatingChat`,function(){i.markAllAsRead(t.conversation,t.messages)}),t.$on(`$message:reactionCreated`,function(e,t){_(t)}),t.$on(`$message:reactionDeleted`,function(e,t){_(t)}),t.$on(`$message:reactionUpdated`,function(e,t){_(t)})}function g(e){let n=t.messages.findIndex(t=>t.repliedMessage?.id===e);n<0||(t.messages[n].repliedMessage.status=`Deleted`,t.messages[n].repliedMessage.content=`This message was deleted`)}function _(e){if(e.conversationId!==t.conversation.id)return;let n=t.messages.findIndex(t=>t.id===e.messageId);n>=0&&(t.messages[n].reactions=e.reactions,e.memberId===c.id&&(t.messages[n].initiatorReaction=e.initiatorReaction))}}]}}]).directive(`chatUnconfirmedAccountZeroCase`,function(){return{restrict:`E`,replace:!0,template:`<div></div>`,controller:[`$element`,`$scope`,function(e,t){$(import(`./DyGjYItz.js`),e[0],t,{},{})}]}}).directive(`chatCommunityGuidelineZeroCase`,function(){return{restrict:`E`,replace:!0,template:`<div></div>`,scope:{conversation:`=`},controller:[`$element`,`$scope`,function(e,t){$(import(`./CpXbiMer.js`),e[0],t,{},{conversation:t.conversation})}]}}).directive(`chatPrivacyZeroCase`,function(){return{restrict:`E`,replace:!0,template:`<div></div>`,controller:[`$element`,`$scope`,function(e,t){$(import(`./cbq4poMX.js`),e[0],t,{},{})}]}}),angular.module(`bandlab.chat`).directive(`conversationAttachment`,[`$injector`,function(e){return{scope:{attachments:`<`},link:function(t,n){$(import(`./QF3xGltD.js`).then(e=>e.t),n[0],t,{$injector:e},{attachment:t.attachments[0]})}}}]),angular.module(`bandlab.chat`).directive(`conversationContacts`,[`$state`,function(e){return{restrict:`A`,link:function(t,n){let r=n[0].querySelector(`[type="search"]`);r.addEventListener(`keydown`,function(e){[27,38,40,13].indexOf(e.keyCode)>-1&&e.preventDefault()});function i(i){if(i.keyCode===27)i.target===r?r.blur():(e.go(`.`,{contacts:!1}),t.$apply());else if(i.keyCode===38)a(`previous`);else if(i.keyCode===40)a(`next`);else if(i.keyCode===13){let e=n[0].querySelector(`.conversation-tile.active`);e&&e.click()}}function a(e){let t=n[0].querySelector(`.conversation-tile.active`),r=n[0].querySelectorAll(`.conversation-tile`);if(r.length){if(!t)e===`next`?r[0].classList.add(`active`):e===`previous`&&r[r.length-1].classList.add(`active`);else{let n=Array.from(r).indexOf(t);t.classList.remove(`active`),e===`next`?n+1===r.length?r[0].classList.add(`active`):r[n+1].classList.add(`active`):e===`previous`&&(n-1<0?r[r.length-1].classList.add(`active`):r[n-1].classList.add(`active`))}}}t.$watch(e.params.contacts,function(e){e?(n[0].querySelector(`.conversation-contacts-list`).scrollTop=0,setTimeout(function(){r.focus()},100),window.addEventListener(`keyup`,i)):(setTimeout(function(){r.blur()},100),angular.element(n[0].querySelector(`.conversation-tile.active`)).removeClass(`active`),window.removeEventListener(`keyup`,i))}
86),t.$on(`$destroy`,function(){window.removeEventListener(`keyup`,i)})},controller:[`$scope`,`$state`,`Chat`,`ChatCache`,function(e,t,n,r){e.startConversation=i;function i(e){t.go(`.`,{contacts:!1}),n.startConversation(e.id)}r.getContacts().then(function(t){e.contacts=t})}]}}]);const hw=h(new Map),gw=O(null),_w=h({}),vw=h({});function yw(e,t){_w[e]||(_w[e]=[]),_w[e].push(t)}function bw(e,t){if(!_w[e])return;let n=_w[e].findIndex(e=>e.id===t);n<0||_w[e].splice(n,1)}function xw(e,t){if(!_w[e])return;let n=_w[e].findIndex(e=>e.id===t.id);n<0||(_w[e].splice(n,1,t),_w[e]=[..._w[e]])}function Sw(e,t,n){gw.value!==null&&gw.value!==n&&Cw(gw.value),gw.value=n,hw.set(n,{audioPlayer:t,isPlaying:!0,hasPlayed:!0}),t.value.play(),te(()=>{e.value.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})})}function Cw(e){let t=hw.get(e);t&&(t.isPlaying=!1,hw.set(e,t),t.audioPlayer&&t.audioPlayer.pause())}function ww(){Cw(gw.value)}function Tw(){hw.clear(),gw.value=null}function Ew(e,t){vw[e]=t}function Dw(e){delete vw[e]}function Ow(e,t,n={}){vw[e]&&t===vw[e].id&&(vw[e]={...vw[e],...n})}angular.module(`bandlab.chat`).directive(`attachmentPicker`,[`$injector`,function(e){return{restrict:`E`,replace:!0,template:``,link:function(t,n){$(import(`./BFU10-B0.js`).then(e=>e.t),n[0],t,{$injector:e,scope:t})}}}]).directive(`chatInputReplyPreview`,[`$injector`,function(e){return{restrict:`E`,replace:!0,link:function(t,n){$(import(`./Ce8ITclJ.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`conversationInput`,[`$timeout`,`ChatHelper`,function(e,t){return{restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/chat/partials/_conversation-input-dd4e742f8.html`,link:function(n,r,i){n.disabled=i.disabled;let a=angular.element(r[0].querySelector(`.conversation-input-textarea`));t.resetMessageAttachmentsCache(),a.on(`keydown`,function(e){e.which===13&&!e.shiftKey&&n.messageForm.$valid&&!n.messageForm.$submitted&&(e.preventDefault(),n.messageForm.$setSubmitted(),n.submitMessageForm())}),a.on(`keyup`,function(e){e.which===13&&a.prop(`selectionStart`)===a.val().length&&setTimeout(function(){a[0].scrollTop=1e4},10),o()}),a.on(`keyup`,Fa(s,1e3)),a.on(`paste`,function(){setTimeout(function(){o(),s(),n.$broadcast(`elastic:adjust`)})});function o(){if(!vw[n.conversationId]){if(a.val().length&&n.messageBody){let e=ks(n.messageBody);e.length?(n.loading=!0,n.messageAttachment={type:`Link`,url:e[0]}):n.messageAttachment=null}else n.messageAttachment=null,n.$digest()}}function s(){if(n.messageAttachment){let e=n.messageAttachment.url;t.getExternalUrl(e).then(function(t){n.messageAttachment&&(n.messageAttachment={...t[0].object,url:e},n.loading=!1)})}}n.focusInput=function(){return e(function(){a[0].focus()},100)},n.$on(`$destroy`,function(){t.resetMessageAttachmentsCache()})},controller:[`$scope`,`$state`,`appActions`,`AppNotifications`,`Chat`,`ChatCache`,function(t,n,r,i,a,o){t.hasAttachment=u,t.messageAttachment=null,t.removeAttachment=l,t.submitMessageForm=s,t.sendMessage=c,t.loading=!1,Object.defineProperty(t,"messageBody",{get:function(){return o.getDraftInput(t.conversationId)||``},set:function(e){o.saveDraftInput(t.conversationId,e)},configurable:!0}),t.$applyAsync(()=>{t.$broadcast(`elastic:adjust`)}),t.$on(`$message:removeLinkAttachment`,()=>{t.messageAttachment&&(l(),t.$applyAsync())});function s(){if(!r.checkAllowed(`talkTo`))return;let e=t.messageBody,n=null,i=vw[t.conversationId]?.id;return t.messageAttachment&&t.messageAttachment.type!==`hide`&&(n=[t.messageAttachment]),t.messageAttachment=null,t.messageForm.$setPristine(),c({content:e,links:n,repliedMessageId:i})}function c({content:r,links:o,animation:s,attachments:c,repliedMessageId:l}){return u(!0),a.sendMessage({conversation:t.conversation,content:r,links:o,animation:s,attachments:c,repliedMessageId:l}).then(function(r){return import(`./DvQD5s06.js`).then(e=>e.t).then(function({logChatSendMessage:e}){e(r,n)}),t.messageBody=``,u(!1),Dw(t.conversationId),t.focusInput(),e(()=>{t.$broadcast(`elastic:adjust`)},0),r}).catch(function(e){throw u(!1),e.data.errorCode!==202&&i.addNotification({title:`Unable to send message`,content:Qe(e,`status`)===404?`Unable to load conversation.`:Qe(e,`status`)===403?Qe(e,`data.message`):`Something went wrong, please try again later`,classList:`alert`,autoclose:5e3}),e});function u(e){t.isMessageSending=e,vw[t.conversationId]&&(vw[t.conversationId].isMessageSending=e)}}function l(){t.messageAttachment.type=`hide`}function u(){return t.messageAttachment&&t.messageAttachment.type!==`hide`}}]}}]),angular.module(`bandlab.chat`).directive(`conversationList`,[`$state`,function(e){return{restrict:`C`,link:function(t){t.openConversation=function(t){Tw(),e.go(`chat.conversation`,{id:t.id})},t.$on(`$destroy`,function(){Tw()})}}}]),angular.module(`bandlab.chat`).directive(`conversationPartner`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/c
86hat/partials/_conversation-partner-c93f5c469.html`,scope:{conversationId:`=conversationId`},controller:[`$scope`,`$http`,`$injector`,`ChatCache`,`Me`,function(e,t,n,r,i){e.getConversation=function(){return r.conversations.find(t=>t.id===e.conversationId)||r.conversationsRequests.find(t=>t.id===e.conversationId)},e.inviteToBandCallback=function(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logChatInviteToBand:e}){e()})},e.isMe=function(){return e.getConversation()?.partner?.id===i.id},e.openInviteToProjectModal=()=>{kw(e,t,n)}}]}}).directive(`conversationHeader`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/chat/partials/_conversation-header-f859272dd.html`,scope:{conversationId:`=conversationId`},controller:[`$scope`,`$http`,`$injector`,`ChatCache`,`Me`,function(e,t,n,r,i){e.getConversation=function(){return r.conversations.find(t=>t.id===e.conversationId)||r.conversationsRequests.find(t=>t.id===e.conversationId)},e.inviteToBandCallback=function(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logChatInviteToBand:e}){e()})},e.isMe=function(){return e.getConversation()?.partner?.id===i.id},e.openInviteToProjectModal=()=>{kw(e,t,n)}}]}});function kw(e,t,n){let r=n.get(`AppNotifications`),i=n.get(`Me`),a=n.get(`Song`),o=n.get(`Chat`),s=O(null),c=O([]);Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./DyTNN1m0.js`)]).then(function([{createModal:e},{default:n}]){e(n,{itemList:c,loadMore:async function(){let{data:e,paging:t}=await a.fromUserWithCursor({id:i.id,authorId:i.id,limit:30,after:s.value}).$promise;c.value.push(...e),s.value=t.cursors.after},onContinueWithSingleSelection:function(e,n){t.get(`https://www.bandlab.com/api/v1.3/songs/${e.id}/invite-link`).then(function({data:{inviteLink:t}}){return l(t,e,n)}).catch(e=>{let t=`Something went wrong, please try again later`;e?.status===-1&&(t=`Check your internet connection and try again`),r.addNotification({title:`Unable to send invite, please try again`,content:e.message||t,classList:`alert`,autoclose:5e3})})},pagingAfter:s,selectionType:`single`,title:`Invite to Project`,zerocaseMessage:`Create your first project to invite collaborators`})});function l(t,n,r){let i=[{title:n.name,description:``,url:t,image:n.picture.url}];return r(),import(`./DvQD5s06.js`).then(e=>e.t).then(({logChatProjectInvitationSend:e})=>{e()}),o.sendMessage({conversation:e.getConversation(),content:``,links:i}).catch(e=>{let t=`Something went wrong, please try again later`;throw e?.status===404?t=`Unable to load conversation.`:e?.status===403?t=`New message is currently not allowed due to either your Chat Privacy Settings or the Recipientâs.`:e?.data?.message&&(t=e?.data?.message),Error(t)})}}angular.module(`bandlab.chat`).directive(`conversationRequest`,function(){return{restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/chat/partials/_conversation-request-729c9c629.html`,controller:[`$scope`,`$state`,`$rootScope`,`Chat`,`ChatCache`,`FloatingChat`,`User`,function(e,t,n,r,i,a,o){e.acceptConversationRequest=c,e.declineConversationRequest=s,e.getUserTotalFollowings=je,e.$watch(`conversation`,function(){if(!e.conversation||!e.conversation.partner)return;let t=e.conversation.members.find(t=>t.id===e.conversation.partner.id);if(!t.isActive){e.conversation.partner=t;return}o.get({id:e.conversation.partner.id}).$promise.then(function(t){e.conversation.partner=t})},!0),e.$on(`$user:relationChanged`,function(n,{type:r,user:o}){if(r===`block`&&o.id===e.conversation.partner.id){if(a.activeConversations[0]&&a.activeConversations[0].id===e.conversation.id){a.activeConversations=[];return}return}if(r===`follow`&&o.id===e.conversation.partner.id){if(a.activeConversations[0]&&a.activeConversations[0].id===e.conversation.id){e.conversation.isAccepted=!0;return}return i.conversations=[],t.go(`chat`,{id:e.conversation.id},{reload:!0})}});function s(o){return r.declineConversationRequest(o).then(function(){if(a.activeConversations[0]&&a.activeConversations[0].id===e.conversation.id){a.activeConversations=[];return}if(o.isHidden){ja(i.conversationsHiddenRequests,e=>e.id===o.id);let e=i.conversationsHiddenRequests.find(e=>e.isAccepted===!1);if(e)return t.go(`chat.conversation`,{id:e.id});let r=i.conversationsRequests.find(e=>e.isAccepted===!1);if(r)return n.$broadcast(`$chat:toggleRequestType`,`Pending`),t.go(`chat.conversation`,{id:r.id})}else{ja(i.conversationsRequests,e=>e.id===o.id);let e=i.conversationsRequests.find(e=>e.isAccepted===!1);if(e)return t.go(`chat.conversation`,{id:e.id});if(i.conversationsHiddenRequests&&i.conversationsHiddenRequests.length>0)return}return i.conversations=[],t.go(`chat`,{requests:!1},{reload:!0})})}function c(n){return r.acceptConversationRequest(n).then(function(){if(a.activeConversations[0]&&a.activeConversations[0].id===e.conversation.id){e.conversation.isAccepted=!0;return}return i.conversations=[],t.go(`chat.conversation`,{id:n.id},{reload:!0})})}}]}}),angular.module(`bandlab.chat`).directive(`conversationTile`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{conversation:`=`,onClick:`&`},link:function(t,n){let r=h({conversation:t.conversation,onClick:t.onClick});
86t.$watch(function(e){let{conversation:t,onClick:n}=e;r.conversation=t,r.onClick=n},!0),$(import(`./BjLGu6GY.js`),n[0],t,{$injector:e,scope:t},r)}}}]),angular.module(`bandlab.chat`).value(`FloatingChat`,{activeConversations:[]}).directive(`floatingChat`,[`FloatingChat`,function(e){return{restrict:`A`,scope:!0,link:function(t,n){if(bn)return n.remove();t.floatingChat=e,t.$on(`$band:left`,function(t,{band:n}){ja(e.activeConversations,e=>e.id===n.conversationId)})}}}]).directive(`floatingConversation`,[`$state`,function(e){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/chat/partials/_floating-conversation-428cb379b.html`,controller:[`$scope`,`FloatingChat`,function(t,n){t.openInChat=function(){ww(),Tw(),e.go(`chat.conversation`,{id:t.conversation.id})},t.closeConversation=function(){n.activeConversations=[],Tw()},t.toggleFloatingChat=function(){t.conversation.isMinimized=!t.conversation.isMinimized,t.conversation.isMinimized?ww():t.$broadcast(`$chat:openFloatingChat`)}}]}}]),angular.module(`bandlab.chat`).component(`shareAsMessage`,{bindings:{message:`<`,attachment:`=`},templateUrl:`https://www.bandlab.com/web-app/chat/partials/_share-as-message-99fba45f5.html`,controller:[`$q`,`$rootScope`,`AppNotifications`,`Chat`,`ChatHelper`,`Share`,function(e,t,n,r,i,a){let o=this;o.submitForm=s,o.users=[],o.$onInit=function(){o.messageBody=o.message||``;let e=o.attachment?a.getShareUrl(o.attachment):``;(e?i.getExternalUrl(e):Promise.resolve([{}])).then(function(e){o.attachments=[e[0].object]})};function s(i){let a=o.users.map(function(e){return r.getOneConversation(e.conversationId).then(function(e){return r.sendMessage({conversation:e,content:o.messageBody||``,links:o.attachments})})});return e.all(a).then(function(){n.addNotification({content:`Sent`,autoclose:3e3}),t.$broadcast(`messageModal`,`close`)}).catch(e=>{i.$setPristine();let t=Qe(e,`data.message`)||e.message,r=Qe(e,`data.code`);n.addNotification({title:`Unable to send message`,content:r===105?`Your email is not confirmed`:t,classList:`alert`,autoclose:5e3})})}}],controllerAs:`vm`}),angular.module(`bandlab.chat`).directive(`talkTo`,[`appActions`,`Chat`,function(e,t){return{restrict:`A`,link:function(n,r,i){r[0].addEventListener(`click`,function(n){if(!e.checkAllowed(`talkTo`)){n.preventDefault();return}t.startConversation(i.talkTo,i.talkToType)})}}}]);function Aw(e){return typeof e==`function`?e:Ni}function jw(e,t){return(Ye(e)?dl:ji)(e,Aw(t))}angular.module(`bandlab.chat`).factory(`Chat`,[`$http`,`$q`,`$rootScope`,`$state`,`Band`,`ChatCache`,`ChatHelper`,`FloatingChat`,`Me`,`User`,function(e,t,n,r,i,a,o,s,c,l){return{acceptConversationRequest:f,declineConversationRequest:p,declineConversationRequests:m,deleteConversation:C,deleteMessage:S,getconversationRequests:u,getConversations:h,getHiddenConversationRequests:d,getMessages:_,getOneConversation:g,getUnreadConversationCount:v,markAllAsRead:x,markAsRead:b,sendMessage:y,startConversation:w};function u({after:t,limit:n=20}={}){return e({url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations`,params:{isAccepted:!1,after:t,limit:n},preservePagination:!0})}function d({after:t,limit:n=20}={}){return e({url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/hidden`,params:{isAccepted:!1,after:t,limit:n},preservePagination:!0}).then(function(e){return e.data.data=e.data.data.map(e=>({...e,isHidden:!0})),e})}function f(t){return e({method:`patch`,url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${t.id}`,data:{isAccepted:!0}})}function p(t){return e({method:`delete`,url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${t.id}`})}function m(e){return Promise.all(e.map(p))}function h(t=20,n){return e({url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations`,params:{isAccepted:!0,limit:t,after:n},preservePagination:!0}).then(function(e){let t=o.tidyConversations([...e.data.data]);return o.addConversationsData(t),a.conversations=o.tidyConversations([...a.conversations,...t]),e})}function g(t){return e({url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${t}?useMessagePermissionFlag=true`}).then(function(n){let r=n.data.members?.length?n.data.members:e({url:`https://www.bandlab.com/api/v1.3/conversations/${t}/members`,cache:!0}).then(({data:e})=>e);return Promise.all([r,n])}).then(function([e,{data:t}]){return Object.assign(t,{members:e,messages:[]}),t.type!==`Song`&&o.addOneConversationData(t,{fetchBand:!0}),t.isAccepted!==!1&&t.type!==`Song`?a.conversations=o.tidyConversations([t,...a.conversations]):t.isAccepted===!1&&!a.conversationsHiddenRequests.find(e=>e.id===t.id)&&(a.conversationsRequests=o.tidyConversations([t,...a.conversationsRequests])),t})}function _(t,n){return e({url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${t.id}/messages`,params:{limit:n,after:t.after},preservePagination:!0}
86).then(function({data:{data:e,paging:n}}){return t.after=n.cursors.after,jw(e,function(e){e.conversation=t}),o.addMessagesData(e),e})}function v(){return e({url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/count`,params:{isRead:!1}}).then(function(e){a.unreadConversationCount=e.data.count})}function y({conversation:t,content:r,links:i,animation:a,attachments:s,repliedMessageId:l}){let u={content:r};return i&&(u.links=i),a&&(u.animation=a),s&&(u.attachments=s),l&&(u.repliedMessageId=l),e.post(`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${t.id}/messages`,u).then(function(e){let r=e.data;return r.conversation=t,r.sender=c,o.addOneMessageData(r),n.$broadcast(`$message:new`,r),r})}function b(t,n){return e({method:`POST`,url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${n.id}/messages/${t.id}/receipts/read`})}function x(r,i){return i.length?e({method:`POST`,url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${r.id}/messages/${i[0].id}/receipts/read`}).then(function(e){return r.unreadMessageCount=0,n.$broadcast(`$conversation:messagesRead`,r),e}):t.resolve()}function S(t,r){return e({method:`DELETE`,url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${t.id}/messages/${r.id}`}).then(function(){r.status=`Deleted`,n.$broadcast(`$message:delete`,{messageId:r.id,conversationId:t.id})})}function C(t){return e({method:`DELETE`,url:`https://www.bandlab.com/api/v1.3/users/${c.id}/conversations/${t.id}`}).then(function(){ja(a.conversations,{id:t.id}),n.$broadcast(`$conversation:leave`,t)})}async function w(e,t=`user`){if(t===`user`){let t=await l.get({id:e}).$promise;return g(t.conversationId).then(T).catch(e=>{if(e.status===403&&c.permissions.canCreateConversations)return T({id:t.conversationId,partner:t,picture:t.picture,user:t,type:`User`})})}return i.get({id:e}).$promise.then(e=>g(e.conversationId)).then(T)}function T(e){return bn||r.includes(`chat`)?r.go(`chat.conversation`,{id:e.id}):(s.activeConversations=[e],e)}}]),angular.module(`bandlab.chat`).factory(`ChatCache`,[`$q`,`Band`,`Me`,`User`,function(e,t,n,r){let i=[],a=new Map;return{conversations:[],conversationsRequests:[],conversationsHiddenRequests:[],getBand:Le(o),getContacts:s,getUser:Le(l),getDraftInput:u,saveDraftInput:d,unreadConversationCount:0};function o(e){return t.get({id:e}).$promise}function s(){return i.length?e.resolve(i):c().then(function(e){return i=e.sort(function(e,t){return e.name.localeCompare(t.name)}),i})}function c(){let e=[];return t(i);function t(n){return n().then(function({paging:n,data:r}){return e=e.concat(r),n.cursors.after?t(()=>i(n.cursors)):e})}function i({after:e}={}){return r.relation({id:n.id,rel:`following`,limit:50,after:e}).$promise}}function l(e){return Sentry.onLoad(()=>{Sentry.addBreadcrumb({message:`Call ChatCache.getUser()`,data:{userId:e}})}),r.get({id:e}).$promise}function u(e){return a.get(e)}function d(e,t){a.set(e,t)}}]);function Mw(){}var Nw=Bn&&1/On(new Bn([,-0]))[1]==1/0?function(e){return new Bn(e)}:Mw,Pw=200;function Fw(e,t,n){var r=-1,i=tu,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=ru;else if(a>=Pw){var l=t?null:Nw(e);if(l)return On(l);o=!1,i=Mn,c=new kn}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}
86else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}function Iw(e){return e&&e.length?Fw(e):[]}angular.module(`bandlab.chat`).factory(`ChatHelper`,[`$filter`,`$http`,`$q`,`$sce`,`Album`,`Band`,`ChatCache`,`Collection`,`Community`,`EffectsPreset`,`Me`,`Post`,`Revision`,`User`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=/https?:\/\/(?:(?:[a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/(?:[^\s\\]*albums\/)([a-zA-Z0-9-_]+)\/?(?:\s|\n|$)/g,h=/https?:\/\/(?:(?:[a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/(?:[^\s\\]*albums\/)([a-zA-Z0-9-_]+)\/tracks\/([0-9a-f_]+)\/?(?:\s|\n|$)/g,g=/https?:\/\/(([a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/band\/([a-z][0-9a-z_]{1,19})\/?(\s|\n|$|members)/g,_=/https?:\/\/(?:(?:[a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/beats\/(?!(?:trending|promo|purchased|favorites|all|search|collections|collection-item|home|download)\/?(?:\s|\n|$))(?:[a-zA-Z0-9-_]+\/)?([a-zA-Z0-9-_]+)\/?(?:\s|\n|$)/g,v=/https?:\/\/(?:(?:[a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/(?:[^\s\\]*collections\/)([a-zA-Z0-9-_]+)\/?(?:\s|\n|$)/g,y=/https?:\/\/(([a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/community\/([a-z][0-9a-z_]{1,19})\/?(\s|\n|$)/g,b=/https?:\/\/(?:(?:[a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/posts?\/([a-zA-Z0-9-_]+)\/?(?:\s|\n|$)/g,x=/https?:\/\/(?:(?:[a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/effect-presets\/([a-zA-Z0-9-_]+)/g,S=/https?:\/\/(?:(?:[a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/(?:[^\s\\]*\?revId=|revisions\/)([a-zA-Z0-9-_]+)\/?(?:\s|\n|$)/g,C=/https?:\/\/(?:(?:[a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/track\/([a-zA-Z0-9-_]+)\/?/g,w=/https?:\/\/(([a-z]*\.)*bandlab\.com|localhost:[0-9]{4})\/(?!band\/|song\/)([a-z0-9][a-z0-9_]{2,19})\/?(\s|\n|$|bands)/g,T=/(youtube\.com\/watch[?]v=|youtube\.com\/embed|youtu\.be)(\/)?([A-Za-z0-9._%-]+).*$/i,E=/vimeo\.com\/[a-z_/]*([0-9]{6,10})\/?/i,D=/solo\.airbit\.com\/(.+)\/?/i,O=/open\.spotify\.com\/(album|artist|playlist|track)\/(.+)\/?/i,k=/bl-embed-test\.netlify\.app\/(.+)/i,A=/^(https?:\/\/)?([a-z0-9-]+\.)*lab\.fm(\/.*)?$/i,j=/^(https?:\/\/)?([a-z0-9-]+\.)*product\.io(\/.*)?$/i,M=Object.freeze({AIRBIT:`airbit`,SPOTIFY:`spotify`,YOUTUBE:`youtube`,VIMEO:`vimeo`,BL_EMBED:`blembed`}),N=Object.freeze(Object.values(M)),P=Le(we),F=Le(ve),ee=Le(_e),te=Le(Y),I=Le(be),L=Le(de),R=Le(q),ne=Le(J),z=Le(me),re=Le(Oe);return{addConversationsData:B,addMessagesData:ae,addOneConversationData:V,addOneMessageData:se,addRelativeMessageData:oe,getConversations:ke,getExternalUrl:re,getLinkPreview:Te,getMessageAttachments:le,getVideoUrls:Ee,isSupportedAttachmentType:De,isInternalUrl:Ae,parsePostUrls:G,parseTrackUrls:ue,resetMessageAttachmentsCache:U,tidyConversations:ce,updateConversationMember:ie,updateConversationLastMessage:H};function B(e){e.forEach(function(e){V(e)})}function V(e,{fetchBand:t=!1}={}){e.keywords=Qe(e,`name`,` `),e.date=e.previewMessage&&e.lastMessageCreatedOn||new Date().toISOString(),e.previewMessage&&(e.previewMessage.abstract=e.previewMessage.content,e.keywords+=`${e.previewMessage.abstract} `),e.members=e.members||[],e.type===`Band`?(e.band=e.group,e.keywords+=`${e.name} `,e.members.forEach(function(t){e.keywords+=`${t.name} ${t.username} `}),t&&o.getBand(e.group.id).then(function(t){e.band=t})):e.members.forEach(function(t){(u.id!==t.id||e.members.length===1)&&(e.partner=t,e.user&&(e.partner.isVerified=e.user.id===t.id&&e.user.isVerified)),e.keywords+=`${t.name} ${t.username} `})}function ie(e,t){let n=o.conversations.findIndex(e=>e.id===t.conversationId),r=o.conversations[n];r?.type===`Band`&&(r.band.members.push(t),r.band.counters.members++),e.members.find(e=>e.id===t.id)||(e.members.push(t),r&&(r.members=e.members))}function H(e,t){e.lastMessageCreatedOn=t.createdOn,e.lastMessageId=t.id,e.lastMessageSenderId=t.sender.id}function ae(e){jw(e,function(t,n){se(t);let r=e[n+1];oe(t,r,n===0)})}function oe(e,t,n=!1){e.isNextDate=t&&new Date(e.createdOn).toDateString()!==new Date(t.createdOn).toDateString(),e.isNextUser=!t||e.sender.id!==t.sender.id,e.isNextPeriod=t&&!e.isNextDate&&!e.isNextUser&&new Date(e.createdOn).getTime()-new Date(t.createdOn).getTime()>9e5,t&&(t.isLastInPeriod=e.isNextDate||e.isNextUser||new Date(e.createdOn).getTime()-new Date(t.createdOn).getTime()>9e5),n&&(e.isLastInPeriod=!0),e.status||=`Active`}function se(e){let t=e.conversation.members.find(({id:t})=>t===e.sender.id);t?e.sender=t:o.getUser(e.sender.id).then(function(t){e.sender=t})}function ce(e){return Object.values(e.reduce(function(e,t){return e[t.id]?new Date(t.lastMessageCreatedOn)>new Date(e[t.id].lastMessageCreatedOn)&&(e[t.id].previewMessage=t.previewMessage,e[t.id].unreadMessageCount=t.unreadMessageCount,e[t.id].hasUnreadReaction=t.hasUnreadReaction,e[t.id].lastMessageCreatedOn=t.lastMessageCreatedOn,e[t.id].lastMessageId=t.lastMessageId,e[t.id].lastMessageSenderId=t.lastMessageSenderId):e[t.id]=t,e},{})).map(function(e){return Object.assign(e,{date:e.lastMessageCreatedOn??new Date().toISOString()}),e}).sort((e,t)=>
86new Date(t.date).getTime()-new Date(e.date).getTime())}function le(e=``){return n.all([...Ee(e),...he(e),...ge(e),...Ce(e),...xe(e),...Se(e),...ye(e),...G(e),...ue(e),...K(e),...fe(e),...pe(e)]).then(e=>e.filter(e=>e))}function U(){[ne,L,z,F].forEach(function(e){e.cache=new Le.Cache})}function W(e,t){e.lastIndex=0;let n=[],r;for(;(r=e.exec(t))!==null;)n.push(r);return n}function G(e){return Iw(W(b,e).map(([,e])=>e)).map(e=>L(e,`Post`))}function ue(e){return Iw(W(C,e).map(([,e])=>e)).map(e=>L(e,`Post`))}function de(e,t=`Post`){return d.get({id:e}).$promise.then(function(e){return{object:e,type:t}}).catch(()=>{})}function K(e){return Iw(W(x,e).map(([,e])=>e)).map(R)}function q(e){return l.getSharedPreset(e).then(function(e){return{object:e,type:`Preset`}}).catch(()=>{})}function fe(e){return Iw(W(S,e).map(([,e])=>e)).map(ne)}function J(e){return{object:f.get({id:e}).$promise.then(function(e){return e}).catch(()=>null),type:`Revision`}}function pe(e){return Iw(W(w,e).map(([,,,e])=>e)).map(z)}function me(e){return p.get({id:e}).$promise.then(function(e){return{object:e,type:`User`}}).catch(()=>{})}function he(e){return Iw(W(g,e).map(([,,,e])=>e)).map(F)}function ge(e){return Iw(W(_,e).map(([,e])=>e)).map(ee)}function _e(e){return wd(e).then(function(e){return{object:e,type:`Beat`}}).catch(()=>{})}function ve(e){return a.get({id:e}).$promise.then(function(e){return{object:e,type:`Band`}}).catch(()=>{})}function ye(e){return Iw(W(y,e).map(([,,,e])=>e)).map(I)}function be(e){return c.get({id:e}).$promise.then(function(e){return{object:e,type:`Community`}}).catch(()=>{})}function xe(e){return Iw(W(m,e).map(([,e])=>e)).map(P)}function Se(e){return Iw(W(h,e).map(([,,e])=>e)).map(e=>L(e,`Post`))}function Ce(e){return Iw(W(v,e).map(([,e])=>e)).map(te)}function we(e){return{object:i.get({id:e}).$promise.then(function(e){return e}).catch(()=>null),type:`Album`}}function Y(e){return s.get({id:e}).$promise.then(function(e){return{object:e,type:`Collection`}}).catch(()=>{})}function Te(e){let t=ks(e).shift();return t?re(t):n.resolve([])}function Ee(e){return e.split(/\s/).map(e=>e.replace(/[.,;!?]*$/,``)).map(e=>{if(!As(e))return;let t=e.match(T);if(t)return{type:M.YOUTUBE,id:t[3],url:r.trustAsResourceUrl(`//www.youtube.com/embed/${t[3]}`)};let n=e.replace(/#.+/,``).replace(/\?.+/,``).match(E);if(n)return{type:M.VIMEO,id:n[1],url:r.trustAsResourceUrl(`//player.vimeo.com/video/${n[1]}`)};let i=e.match(D);if(i)return{type:M.AIRBIT,id:i[1],url:r.trustAsResourceUrl(`//solo.airbit.com/${i[1]}`)};let a=e.match(k);if(a)return{type:M.BL_EMBED,id:a[1],url:r.trustAsResourceUrl(`//bl-embed-test.netlify.app/${a[1]}`)};if(e.match(A)||e.match(j))return{type:M.BL_EMBED,id:e,url:r.trustAsResourceUrl(e)};let o=e.match(O);if(o)return{type:M.SPOTIFY,id:e,url:r.trustAsResourceUrl(`//open.spotify.com/embed/${o[1]}/${o[2]}`)}}).filter(Boolean)}function De(e){return N.includes(e)}function Oe(n){return t.get(`https://www.bandlab.com/api/v1.3/preview?url=${encodeURIComponent(n)}`,{cache:!0}).then(({data:t})=>(t.description=e(`textTruncate`)({content:t.description},200,40,3),[{object:t,type:`Link`,value:n}])).catch(()=>[{object:{url:n},type:`Link`,value:n}])}function ke(){return o.conversations.filter(e=>Qe(e,`lastMessageId`)).filter(e=>Qe(e,`isAccepted`)!==!1)}function Ae(e){function t(e,t){return e.lastIndex=0,e.test(t)}return t(m,e)||t(h,e)||t(g,e)||t(_,e)||t(v,e)||t(y,e)||t(b,e)||t(x,e)||t(S,e)||t(C,e)||t(w,e)||t(O,e)||t(T,e)||t(E,e)||t(D,e)||t(k,e)||t(A,e)||t(j,e)}}]);function Lw(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}angular.module(`bandlab.chat`).factory(`ChatNotifications`,[`$http`,`$q`,`$rootScope`,`$state`,`$stateParams`,`AppNotifications`,`Chat`,`ChatCache`,`ChatHelper`,`FloatingChat`,`Me`,`User`,function(t,n,r,i,a,o,s,c,l,u,d,f){var p=angular.noop,m;let h=Fa(function(){s.getUnreadConversationCount()},5e3,{leading:!0,trailing:!0,maxWait:5e3});return r.$on(`$message:read`,function(e,t){t.type!==`Song`&&D()}),r.$on(`$conversation:messagesRead`,function(e,t){if(t.type!==`Song`){var n=MS(c.conversations,{id:t.id});n&&(n.unreadMessageCount=t.unreadMessageCount,n.hasUnreadReaction=!1),D()}}),r.$on(`$conversation:leave`,function(e,t){var n=jS(c.conversations,{id:t.id});n>=0&&c.conversations.splice(n,1),u.activeConversations[0]&&u.activeConversations[0].id===t.id&&(u.activeConversations=[]),D()}),r.$on(`$band:left`,function(e,{band:t}){ja(c.conversations,e=>e.id===t.conversationId),D()}),{start:_,stop:v};function g(){return n.all([t.post(`https://www.bandlab.com/api/v1.3/chat/authorizations`,{}),import(`./C74yVDnM.js`).then(t=>e(t.default))]).then(function([{data:{accessToken:e,url:t}},n]){return new n.HubConnectionBuilder().withUrl(t,{accessTokenFactory:()=>e}).configureLogging(n.LogLevel.Error).build()})}function _(){d.permissions?.canCreateConversations&&(b(),h(),p=r.$on(`$chat:error`,y))}function v(){m&&m.stop(),m=null}function y(){p()}function b(){return g().then(function(r){r.on(`ConversationMemberAdded`,e),r.on(`MessageReceived`,t),r.on(`MessageDeleted`,n),r.on(`MessageRead`,i),r.on(`MessageReactionCreated`,a),r.on(`MessageReactionDeleted`,o),r.on(`MessageReactionUpdated`,c),v(),r.start().catch(u),m=r});function e(e){r.$broadcast(`$conversation:memberAdded`,e),r.$applyAsync()}function t(e){let t=e.sender.pictureUrl;x(e).then(function(n){e.conversation=n,l.addOneMessageData(e),e.sender.pictureUrl=t,S(e),r.$applyAsync()})}function n(e){r.$broadcast(`$message:delete`,{messageId:e.id,conversationId:e.conversationId}),Ow(e.conversationId,e.id,{status:`Deleted`}),r.$applyAsync()}function i(e){r.$broadcast(`$message:receiptRead`,e),r.$applyAsync()}function a(e){r.$broadcast(`$message:reactionCreated`,e),C(e),O(e),D(),r.$applyAsync()}function o(e){r.$broadcast(`$message:reactionDeleted`,e),s.getOneConversation(e.conversationId),D(),r.$applyAsync()}function c(e){r.$broadcast(`$message:reactionUpdated`,e),s.getOneConversation(e.conversationId),r.$applyAsync()}function u(){r.$broadcast(`$chat:error`)}}function x(e){let t=c.conversations.find(t=>
86t.id===e.conversationId);return t?Promise.resolve(t):s.getOneConversation(e.conversationId)}async function S(e){r.$broadcast(`$message:new`,e);let t=e.sender.id===d.id||!!a.id&&a.id===e.conversation.id,n=w(e.conversation.id);if(t||n&&!u.activeConversations[0].isMinimized||e.conversation.type===`Song`||(D({delay:1e3}),i.includes(`mixEditor`))||await T(e.sender.id))return;let o=`<span ng-non-bindable>${Lw(e.content)}</span>`;if(e.animation&&(o=`<b>GIF</b>`),e.attachments.length>0){let t=e.attachments[0];o=`<icon-svg name="${k(t.type)}" size="12"></icon-svg><span ng-non-bindable>${Lw(t.caption===``?t.type:t.caption)}</span>`}cw(e)&&!e.content&&(o=`<icon-svg name="link" size="12"></icon-svg> Letâs create music together!`),E({title:e.sender.name,description:o,pictureUrl:e.sender.pictureUrl,conversationId:e.conversation.id,conversationType:e.conversation.type})}async function C(e){let t=a.id&&a.id===e.conversationId,n=w(e.conversationId);i.includes(`mixEditor`)||e.conversationType!==`Song`&&(e.messageCreatorId===d.id||e.reactionCreator.id===d.id)&&(t||n&&!u.activeConversations[0]?.isMinimized||await T(e.reactionCreator.id)||E({title:e.reactionCreator.name,description:`<span ng-non-bindable>${Lw(e.description)}</span>`,pictureUrl:e.reactionCreator.pictureUrl,conversationId:e.conversationId,conversationType:e.conversationType}))}function w(e){return u.activeConversations[0]&&e===u.activeConversations[0]?.id}function T(e){return f.blockedId({meId:d.id,userId:e}).$promise.then(e=>e.isBlocked).catch(()=>!1)}function E({title:e,description:t,pictureUrl:n,conversationId:r}){o.addNotification({title:Lw(e),content:`<span class="text-truncate-2-lines">${t}</span>`,image:`${n}48x48 1x, ${n}96x96 2x`,autoclose:6e3,classList:`user`}),setTimeout(function(){var e=document.querySelector(`.notification.user`),t;e&&(t=e.closest(`.notification`),t.style.cursor=`pointer`,t.addEventListener(`click`,function(){o.clearAll(),i.includes(`chat`)?i.go(`chat.conversation`,{id:r}):w(r)?u.activeConversations[0].isMinimized=!1:s.getOneConversation(r).then(function(e){u.activeConversations=[e]})}))},300)}function D({delay:e=0}={}){setTimeout(()=>{s.getUnreadConversationCount()},e)}function O(e){let t=a.id&&a.id===e.conversationId,n=w(e.conversationId),r=c.conversations.findIndex(t=>t.id===e.conversationId),i=c.conversations[r];if(i&&e.conversationType!==`Song`&&e.messageCreatorId===d.id){if(e.memberId!==d.id&&(i.previewMessage.previewType=`Reaction`,i.previewMessage.id=e.messageId,i.previewMessage.content=e.description,i.previewMessage.hasFullContent=!0),t||n&&!u.activeConversations[0]?.isMinimized){s.markAsRead({id:e.messageId},i).then(function(){i.hasUnreadReaction=!1});return}i.hasUnreadReaction=!0}}function k(e){switch(e){case iw.IMAGE:return`image`;case iw.VIDEO:return`video`;case iw.AUDIO:return`note`}}}]),angular.module(`bandlab.collection`,[]);function Rw(e=[],t){if(!e.length)return t;let n=e.map(({adEngagementEvent:e,adImpressionEvent:t,adPlayEvent:n,adProfileOpenEvent:r,adCreative:i,position:a,placement:o})=>{let{isBoosted:s,post:c}=i;return{...c,position:a,placement:o,engagementEvent:e,impressionEvent:t,playEvent:n,profileOpenEvent:r,isBoosted:s}}),r=[...t.posts];return n.forEach(e=>{r.splice(e.position,0,e)}),{...t,posts:r}}angular.module(`bandlab.collection.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`collectionId`,{url:`/collections/{id:[a-zA-Z0-9-_]+}?triggeredFrom`,redirectTo:function(e){let t=e.injector().get(`Collection`),n=e.injector().get(`$state`);return t.get({id:e.params().id}).$promise.then(function(t){return n.target(`collection`,{id:t.id,username:t.creator.username,triggeredFrom:e.params().triggeredFrom},{collection:t})})}}).state(`collection`,{url:`/{username:[a-z0-9][a-z0-9_]{2,19}}/collections/{id:[a-zA-Z0-9-_]+}?triggeredFrom`,params:{rewriteTracking:[`Me`,`$stateParams`,function(e,t){return n=>n.replace(/^\/[a-z0-9][a-z0-9_]{2,19}(($|\/).*)/g,`/${t.username===e.username?`me`:`user`}/collection`)}]},templateUrl:`https://www.bandlab.com/web-app/collection/views/collection-layout-36a23ee94.html`,resolve:{theCollection:[`$stateParams`,`$transition$`,`Collection`,function(e,t,n){return t.options().collection||n.get({id:e.id}).$promise}]},onEnter:[`Page`,`theCollection`,function(e,t){e.setMetadata({title:`${t.name} ${`by ${t.creator.name}`} | BandLab`,description:`${t.description?`${t.description} | `:``}Unlimited free listening on BandLab.`,image:`${t.picture.url}360x360`})}],onExit:[`Page`,function(e){e.clearMetadata()}],controller:[`$scope`,`$state`,`$stateParams`,`Me`,`PlayerHistory`,`theCollection`,function(e,t,n,r,i,a){e.me=r;let{posts:o,...s}=a;e.collection=s;let c=`playlist_page_${n.id}`;as(c).then(({ads:t})=>{e.adsList=t.map(e=>({...e,placement:c}))}).catch(()=>e.adsList=[]).finally(()=>e.$applyAsync()),e.$watch(`adsList`,function(t){t&&(e.collection=Rw(e.adsList,{...e.collection,posts:o}),l(),e.$applyAsync())}
86),e.$on(`$collection:changed`,function(n,i){if(i.collection.id===e.collection.id){if(i.action===`update`)e.collection=i.collection;else if(i.action===`add-post`){let t={...i.post,canChangePinState:!1,revision:{...i.post.revision,canEdit:!1}};e.collection.posts.unshift(t)}else i.action===`delete`&&t.go(`user.collections`,{username:r.username})}});function l(){i.getCurrentPlayerContext().id===e.collection.id&&i.forcePushQueueSongs(e.collection.posts,i.getStack()[i.getIndex()],{contentSource:`playlist`,id:e.collection.id})}}]})}]),angular.module(`bandlab.collection`).controller(`CollectionCreateCtrl`,[`$rootScope`,`$scope`,`$state`,`AppNotifications`,`Collection`,function(e,t,n,r,i){t.collection=new i,t.collection.isPublic=!0,t.$on(`$file:uploadSuccess`,function(e,n){t.collection.pictureId=n.id,t.collection.picture=n,t.collectionForm.$setDirty()}),t.addCollection=function(){t.collection.$save().then(function(i){e.$broadcast(`createCollectionModal`,`close`),e.$broadcast(`$collection:changed`,{action:`create`,collection:i}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logPlaylistCreate:e}){e(i.isPublic,t.triggeredFrom??Ee(n))}),n.current.name!==`user.collections`&&r.addNotification({title:`Playlist created`,content:`Start searching for tracks and playlists to add here!`,image:`${i.picture.url}48x48 1x, ${i.picture.url}96x96 2x`,action:` 87 <a class="ds-button ds-button-color-primary ds-button-size-compact" href="${n.href(`discover`)}"><span class="ds-button-text">Discover</span></a> 88 `,autoclose:8e3})}).catch(function(e){t.collectionForm.$setPristine(),e?.data?.errorCode!==202&&r.addNotification({title:`Unable to create playlist`,content:e.data.message,classList:`alert`,autoclose:8e3})})}}]),angular.module(`bandlab.collection`).controller(`CollectionEditCtrl`,[`$analytics`,`$rootScope`,`$scope`,`AppNotifications`,`Collection`,`ConfirmModal`,function(e,t,n,r,i,a){n.deleteCollection=c,n.unpublishCollection=s,n.publishCollection=o;function o(e){e.isPublic=!0,e=new i(e),e.$update().then(function(e){t.$broadcast(`$collection:changed`,{action:`update`,collection:e})})}function s(e){e.isPublic=!1,e=new i(e),e.$update().then(function(e){t.$broadcast(`$collection:changed`,{action:`update`,collection:e})})}function c(n){return new a({confirmLabel:`Delete`,contentScope:{title:`Delete this playlist?`,message:`<p>Youâll lose everything thatâs saved inside.</p>`},onConfirm:function(){t.$broadcast(`$collection:changed`,{action:`mark-deleted`,collection:n}),n=new i(n),n.$delete().then(function(){t.$broadcast(`$collection:changed`,{action:`delete`,collection:n}),e.eventTrack(`Delete Collection`,{category:`Collection`})}).catch(e=>{t.$broadcast(`$collection:changed`,{action:`unmark-deleted`,collection:n}),r.addNotification({title:`Cannot delete collection`,content:Qe(e,`data.message`)||Qe(e,`message`,`Unknown error`),autoclose:5e3,classList:`alert`})})}}).show()}}]),angular.module(`bandlab.collection`).controller(`CollectionFormCtrl`,[`$analytics`,`$rootScope`,`$scope`,`Collection`,function(e,t,n,r){let i=n.$parent.collection;n.editCollection=a,n.collection=new r({id:i.id,name:i.name,description:i.description,isPublic:i.isPublic,picture:{...i.picture}}),n.$on(`$file:uploadSuccess`,function(e,t){n.collection.pictureId=t.id,n.collection.picture=t,n.collectionForm.$setDirty()});function a(){n.collection.$update().then(function(n){Object.assign(i,n),t.$broadcast(`editCollectionModal`,`close`),t.$broadcast(`$collection:changed`,{action:`update`,collection:n}),e.eventTrack(`Edit Collection`,{category:`Collection`})})}}]);const zw={classic:jd,duet:Md,bigHarmony:Nd,natural:Pd,third:Fd,chip:Id,modernRap:Ld,stone:Rd,yummy:zd,playCard:Bd,ocean:Vd,telephone:Hd,simulacrum:Ud,ultrashift:Wd,hyper:Gd,bitz:Kd,amped:qd,appleX:Jd,robot:Yd,futurescape:Xd,krafty:Zd,gorgon:Qd,halo:$d,drone:ef},Bw=tf,Vw={class:`beats-play-button-container`},Hw={class:`beat-details-play-button-container player-audio-controls player-button-overlay`},Uw={__name:`BeatPlayerButton`,props:{beat:{type:Object,default:null},collectionId:{type:String,default:null},previewBeat:{type:Function,default:()=>{}},useRouter:{type:Boolean,default:!0},isLoading:{type:Boolean,default:!1}},setup(e){let t=J(()=>import(`./BkU3ZBIr.js`).then(e=>e.t)),n=e,r=U(()=>!n.beat&&!n.collectionId?!1:n.collectionId?a(n.collectionId):i(n.beat)),{isPlayingBeat:i,isPlayingCollection:a}=sf(n.useRouter);return(n,i)=>(F(),G(`div`,Vw,[k(n.$slots,`default`),K(`div`,{class:v([`beats-play-button`,{"is-visible":f(yn),"status-playing":r.value&&!e.isLoading,"status-paused":!r.value&&!e.isLoading,"status-loading":e.isLoading}]),onClick:i[0]||=me((...t)=>e.previewBeat&&e.previewBeat(...t),[`stop`])},[K(`div`,Hw,[q(f(t))])],2)]))}};function Ww(e,{overlayClose:t=!0,escapeClose:n=!0,signal:r,injector:i}){let a=J(()=>import(`./CUnTiRld.js`)),o=i.get(`Me`),{availableFeaturesSet:s}=Kn(o);async function c(){let{logBeatsPurchaseFlowLicenseContinue:t}=await import(`./DvQD5s06.js`).then(e=>e.t),{getBeatById:n}=await import(`./DBt__2wB.js`).then(e=>e.t),{beatId:r,freeBeat:i,freeBeatsQuota:a,triggeredFrom:o}=e;n(r).then(e=>{t({beat:e,freeBeatsQuota:a,freeCampaign:!0,freeForMembership:!i&&s.value.has(`members-only-beats`),triggeredFrom:o})})}return new Promise(function(i,o){if(r.aborted)return i(!0);X(a,{...e,onConfirm:function(){c(),i(!0),Xn(a)},onDismiss:function(){o()}},{onClose:function(){o()},overlayClose:t,escapeClose:n}),r.aborted&&Xn(a)})}function Gw(e,t,n,r){let i=t.get(`AppNotifications`),a=t.get(`Me`),{refreshLimits:o}=Ad(a);return Sd(e).then(function(){return o(),n?n.push({name:`beats.purchased.item`,params:{id:e}}):r?r():t.get(`$state`).go(`beats`,{path:`purchased`,subpath:e})}).catch(async function(e){let t=``;if(e?.response?.json)try{let{message:n}=await e.response.json();t=n}catch{}if(e?.response?.status===403){let e=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));X(e,{size:`small`,title:`Warning`,subtitle:t||`Something went wrong, please try again later`,actions:[{label:`Close`,color:`primary`}]})}else i.addNotification({title:navigator.onLine?`Something went wrong, please try again later`:`Check your internet connection and try again`,classList:`alert`,content:t||`Something went wrong, please try again later`,autoclose:8e3})})}function Kw(e,t,{redirectUrl:n,redirectCancelUrl:r,isModal:i,onPurchased:a,onSuccess:o,triggeredFrom:s}={}){let c=t.get(`AppNotifications`),l=t.get(`$state`),u=encodeURIComponent(JSON.stringify({name:`beats`,params:{path:`all`}}));return Td(`beats`,`paddle`,{beatId:e}).then(function({id:t}){if(i){let n=J(()=>import(`./DqthGvaN.js`).then(e=>e.n));return X(n,{onPaymentSuccess:a,onSuccess:o,checkoutProps:{contentId:e,paymentIntentId:t,product:`beats`,productAttribution:`beats`,productAttributionGroup:`beats`,triggeredFrom:s}},{escapeClose:!1})}l.go(`checkout`,{contentId:e,paymentIntentId:t,product:`beats`,redirectUrl:n||u,redirectCancelUrl:r,triggeredFrom:s})}).catch(function(e){if(e.errorCode===22){let e=J(()=>import(`./C9NRjjLY.js`));import(`./BUIA2SYS.js`).then(e=>e.t).then(function({createModal:t}){t(e,{emailUnconfirmed:!1})})}else c.addNotification({title:navigator.onLine?`Something went wrong, please try again later`:`Check your internet connection and try again`,classList:`alert`,autoclose:8e3});throw e})}async function qw(e,t,n,r){try{if(r.freeBeatsQuota?.dailyLimitReached&&!r.free)return await Kw(e,t,r);if(r.free)return Ww({beatId:e,freeBeatsQuota:r.freeBeatsQuota,freeBeat:r.free,purchaseLabel:r.purchaseLabel,triggeredFrom:r.triggeredFrom},{signal:r.signal,injector:t}).then(async()=>await Gw(e,t,n)).catch(()=>{});if(!r.freeBeatsQuota?.dailyLimitReached)return Ww({beatId:e,freeBeatsQuota:r.freeBeatsQuota,purchaseLabel:r.purchaseLabel,triggeredFrom:r.triggeredFrom},{signal:r.signal,injector:t}).then(async()=>await Gw(e,t,n)).catch(()=>{});await Kw(e,t,r)}catch{return{}}}function Jw(e,t=e.isSaved??!1){let n={...e.picture,s:e.picture.s??e.picture.xs??e.picture.url,xs:e.picture.xs??e.picture.s??e.picture.url};return yd({...e,audioUrl:e.audioUrl??e.audioPreviewUrl??``,isMembersOnly:e.isMembersOnly??!1,isPurchased:e.isPurchased??!1,isSaved:t,picture:n,sale:e.sale??null,saleLimitation:e.saleLimitation??null,sampleId:e.sampleId??null})}function Yw(e){let t=e.imageUrl||e.pack.imageUrl;return{...e,sampleId:e.sampleId,imageUrl:t,features:{loop:e.features.loop?{key:e.features.loop.key??``,tempo:e.features.loop.tempo}:void 0,oneShot:e.features.oneShot?{name:`oneShot`,key:e.features.oneShot.key}:void 0}}}function Xw(e){let t=Yw(e),n=t.imageUrl??``;return n.includes(`/image/loop-packs-original/`)?{...t,image:n,imageUrl:void 0}:t}function Zw(e,t){eT(e)||(e.preventDefault(),t())}function Qw(e=10){let t=document.getElementById(`authModal`);if(t){t.classList.add(`track-rewind-elevated-modal-overlay`);return}e<=0||setTimeout(()=>Qw(e-1),50)}
88function $w(e=10){let t=document.querySelectorAll(`.modal-overlay`),n=t[t.length-1];if(n&&!n.querySelector(`.ds-modal-bump-z-index`)){n.classList.add(`track-rewind-elevated-modal-overlay`);return}e<=0||setTimeout(()=>$w(e-1),50)}function eT(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}const tT={class:`beat-sample-name`},nT=[`src`,`alt`],rT={class:`text-truncate`},iT=[`href`],aT={class:`beat-details-grid-meta beat-sample-name-description-subtitle text-truncate`,role:`list`},oT={key:0},sT={key:1},cT={key:2},lT={key:3};var uT=V({__name:`TrackRewindBeatPreview`,props:{beat:{},containerElementForDropdownMenu:{}},setup(e){let t=e,n=ne(`$injector`),r=n.get(`Me`),i=n.get(`$state`),a=n.get(`AppNotifications`),o=n.get(`appActions`),s=new AbortController,c=new AbortController,l=O(!1),u=O(t.beat.isSaved??!1),d=U(()=>Jw(t.beat,u.value)),p=U(()=>d.value),{previewBeat:m}=sf(!1),{logBeatPreviewPlay:h,logBeatsPurchaseFlowStart:g}=of(n),{freeBeat:_,beatPrice:b,beatSalePrice:x}=af(p),{limits:S,claimsCopy:C,shouldUseFreeLabel:w}=Ad(r),{availableFeaturesSet:T}=Kn(r),E=U(()=>t.beat.picture.xs??t.beat.picture.s??t.beat.picture.url),D=U(()=>t.containerElementForDropdownMenu??void 0),k=U(()=>({name:`beats`,params:{path:t.beat.id}})),A=U(()=>i.href(`beats`,{path:t.beat.id})),j=U(()=>!T.value.has(`members-only-beats`)),M=U(()=>!(!t.beat.saleLimitation||t.beat.saleLimitation.onSale)),P=U(()=>t.beat.isMembersOnly&&j.value),ee=U(()=>P.value?`monetization-primary`:`primary`),te=U(()=>es({beatId:p.value.id,source:`beatsSample`,openAttribution:`beats`,triggeredFrom:`beats_try_in_studio`})),I=U(()=>!r.isAnonymous()&&(t.beat.isPurchased||!M.value)),L=U(()=>!S.isLimitLoading&&!S.dailyLimitReached),R=U(()=>_.value||w.value),z=U(()=>t.beat.isMembersOnly&&j.value),re=U(()=>L.value&&!R.value),V=U(()=>{let e=typeof t.beat.price==`number`;return x.value?{isFree:R.value,label:null,shouldShow:!0}:e?{isFree:R.value,label:R.value?`Free`:b.value,shouldShow:!0}:{isFree:!1,label:null,shouldShow:!1}});N(()=>{s.abort()});function ae(){m(d.value,()=>{h({beat:d.value,triggeredFrom:`rewind_page`})})}function ce(e){ca(),Zw(e,()=>i.go(`beats`,{path:t.beat.id}))}function le(){ai({productAttribution:`members_only_beats`,productAttributionGroup:`beats`}),$w()}function ue(){if(!t.beat.saleLimitation||t.beat.saleLimitation.onSale)return!r.isAnonymous()&&t.beat.isMembersOnly&&j.value?le():fe()}function fe(){if(!o.checkAllowed(`checkout`))return;l.value=!0,g({beat:d.value,triggeredFrom:`track_rewind`});let e={free:_.value,freeBeatsQuota:S,purchaseLabel:C.purchasePopupLabel,redirectUrl:encodeURIComponent(JSON.stringify({name:`beats`,params:{path:`purchased`,subpath:t.beat.id}})),redirectCancelUrl:encodeURIComponent(JSON.stringify({name:i.current.name,params:i.params})),triggeredFrom:`track_rewind`,signal:s.signal},r=qw(t.beat.id,n,null,e);return $w(),r.finally(()=>{l.value=!1})}function J(){c.abort(),c=new AbortController;let e=c.signal,t=u.value;u.value?xd(r.id,d.value.id,{signal:e}).then(()=>{a.addNotification({classList:`success`,title:`Beat was removed from Favorites`,autoclose:5e3})}).catch(n=>{pe(n,e,t)}):Cd(r.id,p.value.id,{signal:e}).then(()=>{a.addNotification({classList:`success`,title:`Beat was added to Favorites`,autoclose:5e3})}).catch(n=>{pe(n,e,t)}),u.value=!u.value}function pe(e,t,n){t.aborted||e instanceof Error&&e.name===`AbortError`||(u.value=n)}return(t,n)=>(F(),G(`div`,{class:`beat-search-sample track-rewind-beat-preview cursor-pointer`,onClick:ae},[K(`div`,tT,[q(Uw,{beat:d.value,"preview-beat":ae,"use-router":!1,class:`beat-sample-image-container`},{default:W(()=>[K(`img`,{class:`beat-sample-image`,src:E.value,alt:e.beat.name},null,8,nT)]),_:1},8,[`beat`]),K(`div`,rT,[K(`div`,{class:v([`beat-sample-name-description text-truncate`,{"limited-beat":e.beat.saleLimitation}])},[de((F(),G(`a`,{href:A.value,class:`typography-body-default-medium text-truncate`,onClick:n[0]||=me((...e)=>f(ca)&&f(ca)(...e),[`stop`])},[B(y(e.beat.name),1)],8,iT)),[[f(Ts),k.value]]),e.beat.saleLimitation?(F(),ie(Es,{key:0,color:`neutral`,size:`compact`},{default:W(()=>[B(y(`Limited`),1)]),_:1})):H(``,!0)],2),K(`ul`,aT,[K(`li`,null,y(e.beat.creatorName),1),K(`li`,null,y(e.beat.genre),1),K(`li`,null,y(`${e.beat.bpm} BPM`),1)])])]),K(`div`,{class:`beat-sample-actions`,onClick:n[2]||=me(()=>{},[`stop`])},[e.beat.isPurchased?(F(),ie(Ma,{key:0,as:`a`,"aria-label":`Open in Studio`,href:te.value,color:`brand-red`,class:`beat-sample-action-button track-rewind-beat-preview-cta`,size:`compact`,shape:`pill`,target:`_blank`},{default:W(({class:e})=>[q(So,{size:16,class:v(e)},null,8,[`class`])]),_:1},8,[`aria-label`,`href`])):M.value?(F(),ie(Ue,{key:1,"aria-label":`Sold out`,color:`primary`,"is-disabled":``,size:`compact`,type:`button`,class:`beat-sample-action-button track-rewind-beat-preview-cta`},{default:W(()=>[B(y(`Sold out`),1)]),_:1},8,[`aria-label`])):V.value.shouldShow?(F(),ie(Ue,{key:2,type:`button`,color:ee.value,size:`compact`,"is-loading":f(S).isLimitLoading||l.value,"is-disabled":l.value,class:`beat-sample-action-button track-rewind-beat-preview-cta`,onClick:me(ue,[`stop`])},oe({default:W(()=>[f(S).isLimitLoading?H(``,!0):(F(),G(se,{key:0},[R.value?(F(),G(`span`,oT,y(`Free`),1)):L.value?(F(),G(`span`,sT,[B(y(`Free`)+` `,1),K(`s`,null,y(f(b)),1)])):f(x)?(F(),G(`span`,cT,[K(`s`,null,y(f(b)),1),B(` `+y(f(x)),1)])):(F(),G(`span`,lT,y(V.value.label),1))],64))]),_:2},[!f(S).isLimitLoading&&(z.value||re.value)?{name:`leading-icon`,fn:W(({class:e})=>[z.value?(F(),ie(_d,{key:0,size:16,class:v(e)},null,8,[`class`])):(F(),ie(lf,{key:1,size:16,class:v(e)},null,8,[`class`]))]),key:`0`}:void 0]),1032,[`color`,`is-loading`,`is-disabled`])):H(``,!0),q(_o,{"is-aria-menu":``,placement:`bottom-end`,size:`medium`,teleported:``,"teleported-to":D.value},{trigger:W(({isActive:e,setTriggerElement:t})=>[q(Ma,{ref:t,type:`button`,size:`compact`,shape:`circle`,color:e?`secondary`:`transparent`,"aria-label":`Actions`,onClick:n[1]||=me(()=>{},[`stop`])},{default:W(({class:e})=>[q(cf,{size:16,class:v(e)},null,8,[`class`])]),_:1},8,[`color`,`aria-label`])]),content:W(()=>[q(rf,{as:`a`,href:A.value,onClick:ce},{default:W(()=>[B(y(`View Details`),1)]),_:1},8,[`href`]),I.value?(F(),ie(rf,{key:0,onClick:J},{default:W(()=>[B(y(u.value?`Remove from Favorites`:`Add to Favorites`),1)]),_:1})):H(``,!0),e.beat.isPurchased?(F(),G(se,{key:1},[e.beat.audioUrl?(F(),ie(rf,{key:0,as:`a`,href:e.beat.audioUrl,download:``},{default:W(()=>[B(y(e.beat.hasStems?`Download WAV`:`Download`),1)]),_:1},8,[`href`])):H(``,!0),e.beat.hasStems&&e.beat.stemsUrl?(F(),ie(rf,{key:1,as:`a`,href:e.beat.stemsUrl,download:``},{default:W(()=>[B(y(`Download Stems`),1)]),_:1},8,[`href`])):H(``,!0),e.beat.licenseUrl?(F(),ie(rf,{key:2,as:`a`,href:e.beat.licenseUrl,download:``},{default:W(()=>[B(y(`View License`),1)]),_:1},8,[`href`])):H(``,!0)],64)):H(``,!0)]),_:1},8,[`teleported-to`])])]))}});const dT={},fT={class:`row-gap-16`},pT={class:`track-rewind-info-list`};function mT(e,t){return F(),G(`div`,fT,[t[2]||=ae(`<div class="ds-cell ds-cell-padding-block-8 ds-cell-padding-inline-8" style="background:var(--ds-color-surface-inactive-translucent);border-radius:var(--ds-border-radius-12);"><div class="ds-cell-left-detail"><div class="ds-skeleton ds-skeleton-shape-square ds-skeleton-height-48"></div></div><div class="ds-cell-content row-gap-8"><div class="ds-skeleton ds-skeleton-shape-pill ds-skeleton-height-16 ds-skeleton-width-large"></div><div class="ds-skeleton ds-skeleton-shape-pill ds-skeleton-height-14 ds-skeleton-width-medium"></div></div></div>`,1),K(`div`,null,[t[1]||=K(`div`,{class:`ds-skeleton ds-skeleton-shape-pill ds-skeleton-height-18 ds-skeleton-width-large`,style:{"margin-block":`var(--ds-space-16)`}},null,-1),K(`div`,pT,[(F(),G(se,null,pe(4,e=>K(`div`,{key:e,class:`track-rewind-info-list-item`,style:{"padding-block":`var(--ds-space-16)`}},[...t[0]||=[K(`div`,{class:`track-rewind-info-list-title ds-skeleton ds-skeleton-shape-pill ds-skeleton-height-16 ds-skeleton-width-small`},null,-1),K(`div`,{class:`track-rewind-info-list-description ds-skeleton ds-skeleton-shape-pill ds-skeleton-height-16 ds-skeleton-width-xsmall`},null,-1)]])),64))])])])}var hT=$a(dT,[[`render`,mT]]);const gT={style:{position:`relative`}},_T={class:`track-rewind-sound-preview-content`},vT={class:`track-rewind-sound-preview-name`},yT={class:`track-rewind-sound-preview-title track-rewind-sound-preview-title-text text-truncate typography-body-default-medium`},bT={key:0,class:`track-rewind-sound-preview-meta`},xT={class:`track-rewind-sound-preview-waveform`},ST={class:`track-rewind-sound-preview-type-info`},CT={key:1,class:`sounds-loop-waveform-skeleton`},wT={class:`track-rewind-sound-preview-actions`},TT={class:`sounds-claim-dropdown-menu-item`},ET={key:0,class:`sounds-credit-dropdown-gift-icon`},DT={class:`sounds-claim-dropdown-menu-item`},OT={key:0,class:`sounds-credit-dropdown-gift-icon`};var kT=V({__name:`TrackRewindSoundPreview`,props:{revisionId:{},sound:{},isPlaying:{type:Boolean},currentTime:{},containerElementForDropdownMenu:{},isLibraryReady:{type:Boolean}},emits:[`download`,`openInStudio`,`preview`],setup(e,{emit:t}){let n=e,r=t,i=ne(`$injector`),a=i.get(`Player`),o=i.get(`$state`),s=i.get(`Me`),c=i.get(`appActions`),{addSample:l,removeSample:u,soundsLibrarySampleIds:d}=Ao(i),{soundsClaimedSampleIds:p}=jo(i),{openAddToSoundsUserCollectionModal:m}=po(!1),h=U(()=>p.value.includes(n.sound.id)),g=U(()=>d.value.includes(n.sound.sampleId)),_=U(()=>n.sound.imageUrl?n.sound.imageUrl.includes(`/image/loop-packs-original/`)?n.sound.imageUrl:go(n.sound.imageUrl,mo,90):``),b=U(()=>n.sound.packSlug?`/sounds/pack/${encodeURIComponent(n.sound.packSlug)}`:null),x=U(()=>n.currentTime/n.sound.duration),S=U(()=>n.sound.waveform.maxValue),C=U(()=>n.containerElementForDropdownMenu??void 0),w=U(()=>!h.value&&!n.sound.isFree),T=U(()=>n.sound.features.loop?.tempo?qo(n.sound):Go(n.sound.duration));function E(){return n.sound.waveform.values}function D(){if(g.value)return;let e=Yw(n.sound);if(s.isAnonymous()){M(e),Qw();return}l(e,{category:`sounds`,target:`track_rewind`,triggeredFrom:`track_rewind`})}async function O(){g.value&&await u(Yw(n.sound),{category:`sounds`,triggeredFrom:`track_rewind`})}function k(e){if(n.isPlaying){a.goToPercent(e),a.play(null,{navigatingHistory:!0});return}r(`preview`,n.sound)}
88function A(){m(Yw(n.sound),`track_rewind`),$w()}function j(e){fa(),n.sound.packSlug&&Zw(e,()=>o.go(`sounds`,{path:`pack`,subpath:n.sound.packSlug}))}function M(e){document.getElementById(`authModal`)||N({action:`favoriteSounds`,callback:()=>{Y.setItem(`soundsSampleToFavorite`,JSON.stringify(e)),Y.setItem(`trackRewindModalRevisionId`,n.revisionId)},onCancel:()=>{Y.removeItem(`soundsSampleToFavorite`),Y.removeItem(`trackRewindModalRevisionId`)}})}function N({action:e,callback:t=()=>{},onCancel:n=()=>{}}){let r=o.current.name;if(!r)return;let i={toState:r,toParams:o.params},a=btoa(JSON.stringify({path:o.href(i.toState,i.toParams,{absolute:!0})}));c.checkAllowed(e,i,{onCancel:n,redirectState:a})||t()}return(t,n)=>(F(),G(`div`,{class:`track-rewind-sound-preview cursor-pointer`,onClick:n[3]||=t=>r(`preview`,e.sound)},[K(`div`,gT,[q(yo,{size:48,"icon-size":20,"image-url":e.sound.imageUrl?_.value:null},{default:W(()=>[q(bo,{variant:`overlay`,"playback-status":e.isPlaying?`playing`:`paused`,size:`compact`,class:`sounds-play-button`},null,8,[`playback-status`])]),_:1},8,[`image-url`])]),K(`div`,_T,[K(`div`,vT,[K(`div`,yT,[K(`span`,null,y(e.sound.name),1)]),e.sound.isFree?(F(),ie(Es,{key:0,size:`compact`,color:`contrast`,class:`track-rewind-sound-preview-badge`},{default:W(()=>[B(y(`Free`),1)]),_:1})):H(``,!0)]),S.value?(F(),G(`div`,bT,[e.sound.features.loop?(F(),ie(Uo,{key:0,class:`track-rewind-sound-preview-icon`,size:16})):e.sound.features.oneShot?(F(),ie(Wo,{key:1,class:`track-rewind-sound-preview-icon`,size:16})):H(``,!0),K(`div`,xT,[q(Ho,{"fixed-bar-count":E().length,"get-data":E,progress:x.value,onSetPosition:k},null,8,[`fixed-bar-count`,`progress`])]),K(`span`,ST,y(T.value),1)])):e.sound.status===`Empty`||e.sound.status===`Processing`?(F(),G(`div`,CT)):H(``,!0)]),K(`div`,wT,[h.value?(F(),ie(Ba,{key:0,placement:`top`,"is-label":!0},{trigger:W(({setTriggerElement:e})=>[K(`div`,{ref:e,class:`track-rewind-sound-preview-claimed-icon`},[q(Co,{size:16})],512)]),content:W(()=>[B(y(`Claimed`),1)]),_:1})):H(``,!0),e.isLibraryReady&&!g.value?(F(),ie(Ba,{key:1,placement:`top`,"is-label":!0,teleported:!0},{trigger:W(({setTriggerElement:e})=>[q(Ma,{ref:e,type:`button`,size:`compact`,shape:`circle`,color:`transparent`,"aria-label":`Add to Favorites`,class:`track-rewind-sound-preview-favorite-button`,onClick:me(D,[`stop`])},{default:W(({class:e})=>[q(Wa,{size:16,class:v(e)},null,8,[`class`])]),_:1},8,[`aria-label`])]),content:W(()=>[B(y(`Add to Favorites`),1)]),_:1})):e.isLibraryReady&&g.value?(F(),ie(Ba,{key:2,placement:`top`,"is-label":!0,teleported:!0},{trigger:W(({setTriggerElement:e})=>[q(Ma,{ref:e,type:`button`,size:`compact`,shape:`circle`,color:`transparent`,"aria-label":`Remove from Favorites`,class:`track-rewind-sound-preview-favorite-button`,onClick:me(O,[`stop`])},{default:W(({class:e})=>[q(Ga,{size:16,class:v(e)},null,8,[`class`])]),_:1},8,[`aria-label`])]),content:W(()=>[B(y(`Remove from Favorites`),1)]),_:1})):H(``,!0),q(_o,{"is-aria-menu":``,placement:`bottom-end`,size:`medium`,teleported:``,"teleported-to":C.value},{trigger:W(({isActive:e,setTriggerElement:t})=>[q(Ma,{ref:t,type:`button`,size:`compact`,shape:`circle`,color:e?`secondary`:`transparent`,"aria-label":`Actions`,onClick:n[0]||=me(()=>{},[`stop`])},{default:W(({class:e})=>[q(cf,{size:16,class:v(e)},null,8,[`class`])]),_:1},8,[`color`,`aria-label`])]),content:W(()=>[q(rf,{onClick:n[1]||=t=>r(`openInStudio`,e.sound)},{default:W(()=>[K(`div`,TT,[B(y(`Open in Studio`)+` `,1),w.value?(F(),G(`span`,ET,[q(wo,{size:16}),n[4]||=B(` 1 `,-1)])):H(``,!0)])]),_:1}),q(rf,{onClick:n[2]||=t=>r(`download`,e.sound)},{default:W(()=>[K(`div`,DT,[B(y(`Download`)+` `,1),w.value?(F(),G(`span`,OT,[q(wo,{size:16}),n[5]||=B(` 1 `,-1)])):H(``,!0)])]),_:1}),b.value?(F(),ie(rf,{key:0,as:`a`,href:b.value,onClick:j},{default:W(()=>[B(y(`View Pack`),1)]),_:1},8,[`href`])):H(``,!0),!f(s).isAnonymous()&&!e.sound.isUserUploaded?(F(),ie(rf,{key:1,onClick:A},{default:W(()=>[B(y(`Add to Collection`),1)]),_:1})):H(``,!0)]),_:1},8,[`teleported-to`])])]))}});const AT=`track-rewind-sounds-list`;var jT=V({__name:`TrackRewindModalSounds`,props:{sounds:{},revisionId:{},mode:{default:`preview`}},emits:[`seeAll`],setup(e,{emit:t}){let n=e,r=t,i=ne(`$injector`),a=i.get(`Me`),o=i.get(`Player`),s=i.get(`AppNotifications`),c=i.get(`appActions`),l=O(null),u=o.getAudio(),d=h({src:``,currentTime:0,paused:!0}),{addSample:f,soundsLibrarySampleIds:p}=Ao(i),{openSoundsGetMoreCreditsModal:m,soundsClaimedSampleIds:g,soundsCreditsInfo:_}=jo(i),b=O(a.isAnonymous()),x=U(()=>n.sounds.length>5),S=U(()=>n.mode===`full`?n.sounds:n.sounds.slice(0,5)),C=U(()=>n.sounds.map(Xw));I(async()=>{await T(),E(),u.addEventListener(`ended`,w),u.addEventListener(`pause`,w),u.addEventListener(`play`,w),u.addEventListener(`timeupdate`,w),w()}),N(()=>{u.removeEventListener(`ended`,w),u.removeEventListener(`pause`,w),u.removeEventListener(`play`,w),u.removeEventListener(`timeupdate`,w)});function w(){d.src=u.src,d.paused=u.paused,d.currentTime=u.currentTime}
88async function T(){if(a.isAnonymous()){b.value=!0;return}let e=await co({userId:a.id});p.value=e.ids,b.value=!0}function E(){let e=Y.getItem(`soundsSampleToFavorite`);if(!e||a.isAnonymous())return;let t=JSON.parse(e);if(p.value.includes(t.sampleId)){Y.removeItem(`soundsSampleToFavorite`);return}f(t,{category:`sounds`,target:`track_rewind`,triggeredFrom:`track_rewind`}).finally(()=>{Y.removeItem(`soundsSampleToFavorite`)})}function D(e){return!d.paused&&d.src===e.audioUrl}function k(e){return d.src===e.audioUrl?d.currentTime:0}function A(e){if(D(e)){o.pause();return}let t=Xw(e);o.playLoop(C.value,window.location.pathname,t)}async function j(e){if(!await P(e))return;let t=es({sampleId:e.sampleId,...g.value.includes(e.id)?{openAttribution:`blsounds_credits_claimed_sample`}:{}});window.open(t,`_blank`)}async function M(e){if((!a.isAnonymous()||c.checkAllowed(`download`))&&await P(e)){e.readyState=XMLHttpRequest.LOADING;try{let t=await oo(Yw(e)),n=[e.name.split(` `).join(`_`),e.instrumentId?.split(` `).join(`_`),...e.features.loop?.tempo?[`${e.features.loop.tempo}BPM`]:[],...e.features.loop?.key?[e.features.loop.key.split(` `).join(``)]:[],`BANDLAB`].join(`_`);xr(t,`${n}.${e.format||`wav`}`)}catch(e){te(e)}finally{e.readyState=XMLHttpRequest.DONE}}}async function P(e){return e.isFree?!0:await m(`blsounds`,e.id)?g.value.includes(e.id)?!0:ee(e.id):!1}async function ee(e){let t=[...g.value],n=_.value.creditsLeft;g.value.push(e),_.value.creditsLeft=Math.max(0,n-1);try{return _.value=await so({userId:a.id,sampleId:e}),!0}catch(e){return g.value=t,_.value.creditsLeft=n,te(e),!1}}function te(e){s.addNotification({content:e instanceof Error&&e.message?e.message:`Something went wrong, please try again later`,classList:`alert`,autoclose:5e3})}return(t,n)=>e.sounds.length?(F(),G(`div`,{key:0,ref_key:`soundsChartListRef`,ref:l},[q(nf,{"title-content-type":`body-title`,layout:`wrap`},{title:W(({titleClass:e})=>[K(`h3`,{class:v(e)},y(`Sounds`),3)]),"right-detail":W(()=>[e.mode===`preview`&&x.value?(F(),G(`button`,{key:0,type:`button`,class:`track-rewind-section-toggle`,"aria-controls":AT,onClick:n[0]||=e=>r(`seeAll`)},y(`See All`),1)):H(``,!0)]),_:1}),K(`div`,{id:AT,class:`track-rewind-sounds-list`},[(F(!0),G(se,null,pe(S.value,t=>(F(),ie(kT,{key:t.id,"revision-id":e.revisionId,sound:t,"is-library-ready":b.value,"is-playing":D(t),"current-time":k(t),"container-element-for-dropdown-menu":l.value,onDownload:M,onOpenInStudio:j,onPreview:A},null,8,[`revision-id`,`sound`,`is-library-ready`,`is-playing`,`current-time`,`container-element-for-dropdown-menu`]))),128))])],512)):H(``,!0)}});function MT(e,{post:t,revision:n=t?.revision,coverSize:r,triggeredFrom:i}){let a=O(),o=e.get(`$rootScope`).$new(),s=U(function(){return{name:`track`,params:{id:t.id}}});return I(function(){c()}),N(function(){o.$destroy()}),{trackRoute:s,trackCoverRef:a};function c(){let s=t?.track?.picture?.url??n?.song?.picture?.url,c=`ds-cover-size-${r}`,l=`${s}${`${r}x${r}`} 1x, ${s}${`${r*2}x${r*2}`} 2x`,u=e.get(`$compile`),d=angular.element(` 89 <div 90 player-audio="revision" 91 post="post" 92 triggered-from="{{ triggeredFrom }}" 93 class="show-player-button-on-hover status-{{ playStatus }}" 94 > 95 <img class="ds-cover ${c}" ng-srcset="${l}"> 96 <div class="player-audio-controls player-button-center"> 97 <player-audio-button class="player-button-24"></player-audio-button> 98 </div> 99 </div> 100 `);Object.assign(o,{post:t,revision:n,triggeredFrom:i}),u(d)(o),a.value?.replaceWith(d[0])}}function NT(e,t,...[n,r]){if(!t){e.setAttribute(`data-undefined-ds-dominant-color`,``);return}let i=e.style,[a,o,s]=yh(t);n?(i.setProperty(`--ds-dominant-color-base-color`,n),r<.625?e.setAttribute(`data-ds-dominant-color-lightness`,`dark`):e.setAttribute(`data-ds-dominant-color-lightness`,`light`)):(i.setProperty(`--ds-dominant-color-light`,`hsl(${a*360}, ${o*100}%, ${(s>=.8?.6:s)*100}%)`),i.setProperty(`--ds-dominant-color-dark`,`hsl(${a*360}, ${o*100}%, ${(s<=.2?.4:s)*100}%)`))}const PT={key:0,class:`ds-cell-left-detail`},FT={key:1,class:`ds-cell-left-detail`},IT={class:`ds-cell-content text-left`};var LT=V({__name:`TrackRewindTrackCell`,props:{post:{},revision:{}},setup(e){let t=e,n=ne(`$injector`),r=z(`cell`),i=U(()=>t.revision.post.isExplicit),a=U(()=>!!(t.revision.mixdown.file&&t.revision.mixdown.status===`Ready`)),{trackCoverRef:o}=MT(n,{post:t.post,revision:t.revision,coverSize:48,triggeredFrom:`rewind_page`}),s=`${t.revision.song.picture.url}48x48 1x, ${t.revision.song.picture.url}96x96 2x`,c=L(()=>{r.value&&(NT(r.value,t.revision.song.picture.color),c())});return(t,n)=>(F(),G(`div`,{ref_key:`cell`,ref:r,class:`ds-cell ds-cell-padding-inline-8 ds-cell-padding-block-8 track-rewind-track-cell`},[a.value?(F(),G(`div`,PT,[K(`div`,{ref_key:`trackCoverRef`,ref:o},null,512)])):(F(),G(`div`,FT,[K(`img`,{class:`ds-cover ds-cover-size-48`,srcset:s,alt:``})])),K(`div`,IT,[q(Do,{size:`medium`,"font-weight":`medium`,layout:`truncate-all`},{title:W(t=>[K(`span`,{class:v(t.class)},y(e.revision.song.name),3),i.value?(F(),ie(uf,{key:0,size:18,class:v(t.iconClass)},null,8,[`class`])):H(``,!0)]),_:1}),q(Oo,{as:`span`,size:`medium`,layout:`truncate-last`},{default:W(()=>[B(y(e.revision.creator.name),1)]),_:1})])],512))}}
100),RT=n({default:()=>BT});const zT=[`width`,`height`,`role`,`aria-hidden`],BT={__name:`arrow-left`,props:Ve,setup(e){return(e,t)=>(F(),G(`svg`,{width:e.size>0?e.size:e.width>0?e.width:e.height>0?e.height/24*24:void 0,height:e.size>0?e.size:e.width>0?e.width/24*24:e.height>0?e.height:void 0,viewBox:`0 0 24 24`,fill:`none`,role:e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?`img`:null,"aria-hidden":e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?null:`true`},[...t[0]||=[K(`path`,{fill:`currentColor`,d:`M8.8 4.8 1.58 12l7.2 7.2 1.42-1.4L5.4 13H22v-2H5.41l4.8-4.8z`},null,-1)]],8,zT))}},VT={class:`ds-modal ds-modal-size-small ds-modal-bump-z-index`},HT={class:`ds-modal-header`},UT={class:`ds-modal-title`},WT=[`aria-busy`],GT={key:1,class:`row-gap-16`},KT={class:`track-rewind-info-list`},qT={key:0,class:`track-rewind-info-list-item`},JT={class:`track-rewind-info-list-title-with-icon`},YT={class:`track-rewind-info-list-item`},XT={key:1,class:`track-rewind-info-list-item`},ZT={class:`track-rewind-info-list-item`},QT={key:0,class:`track-rewind-auto-pitch`},$T={class:`track-rewind-info-list`},eE={class:`track-rewind-auto-pitch-name`};var tE=V({__name:`TrackRewindModal`,props:{post:{},revision:{},revisionId:{},triggeredFrom:{}},emits:[`closeModal`],setup(e){let t=J(()=>import(`./Cg793J4d.js`).then(e=>e.n)),n=J(()=>import(`./Bunr-i-8.js`).then(e=>e.n)),r=J(()=>import(`./J2BTCGji.js`).then(e=>e.n)),i=ne(`$injector`);R(`Me`,i.get(`Me`)),R(`AppNotifications`,i.get(`AppNotifications`)),R(`$analytics`,i.get(`$analytics`));let a=i.get(`Revision`),o=O(!1),s=O(!1),c=O(null),l=O(e.revision??null),u=O(null),d=O(`overview`),p=U(()=>{let e=u.value?.setup?.mastering?.slug;return e?fn(e):null}),m=U(()=>p.value?.name??u.value?.setup?.mastering?.name??``);h();function h(){let t=l.value?.id??e.revisionId;if(!t){s.value=!0;return}let n=!1;o.value=!0,g(t).then(t=>(l.value={...t,post:{...t.post,id:e.post.id,caption:e.post.caption??null,state:e.post.state,isExplicit:e.post.isExplicit??t.post.isExplicit}},a.getBreakdown({id:t.id}).$promise)).then(e=>{u.value=e,n=!!(e.beats.length||e.sounds.length)}).catch(()=>{s.value=!0}).finally(()=>{o.value=!1,Zi({triggeredFrom:e.triggeredFrom,hasBeatsSounds:n})})}function g(e){return l.value?Promise.resolve(l.value):a.get({id:e}).$promise}function _(){d.value=`sounds`}function b(){d.value=`overview`}return(i,a)=>(F(),G(`section`,VT,[d.value===`sounds`?(F(),ie(f(r),{key:0,type:`button`,"aria-label":`Back`,onClick:b},{default:W(e=>[q(BT,{size:16,class:v(e.class)},null,8,[`class`])]),_:1},8,[`aria-label`])):H(``,!0),K(`header`,HT,[K(`h2`,UT,y(d.value===`sounds`?`Sounds`:`Behind the Track`),1)]),K(`section`,{class:`ds-modal-content`,"aria-busy":o.value},[o.value?(F(),ie(hT,{key:0})):l.value&&u.value&&d.value===`overview`?(F(),G(`div`,GT,[q(LT,{post:e.post,revision:l.value},null,8,[`post`,`revision`]),K(`div`,null,[q(nf,{"title-content-type":`body-title`,layout:`wrap`},{title:W(({titleClass:e})=>[K(`h3`,{class:v(e)},y(`Project Setup`),3)]),_:1}),K(`dl`,KT,[u.value.setup.mastering?(F(),G(`div`,qT,[K(`dt`,JT,[K(`span`,null,y(`Mastering`),1),u.value.setup.mastering.isPremium?(F(),ie(ko,{key:0,size:16,class:`color-membership`,"aria-label":`Membership Exclusive`},null,8,[`aria-label`])):H(``,!0)]),K(`dd`,null,[p.value?(F(),ie(P(p.value.icon),{key:0,size:24,style:{"flex-shrink":`0`}})):H(``,!0),K(`span`,null,y(m.value),1)])])):H(``,!0),K(`div`,YT,[K(`dt`,null,y(`Tempo`),1),K(`dd`,null,y(`${u.value.setup.bpm} BPM`),1)]),u.value.setup.key?(F(),G(`div`,XT,[K(`dt`,null,y(`Project key`),1),K(`dd`,null,y(u.value.setup.key),1)])):H(``,!0),K(`div`,ZT,[K(`dt`,null,y(`Time Signature`),1),K(`dd`,null,y(u.value.setup.timeSignature),1)])])]),u.value.autoPitches.length?(F(),G(`div`,QT,[q(nf,{"title-content-type":`body-title`,layout:`wrap`},{title:W(({titleClass:e})=>[K(`h3`,{class:v(e)},y(`AutoPitchâ¢`),3)]),_:1}),K(`dl`,$T,[(F(!0),G(se,null,pe(u.value.autoPitches,(e,t)=>(F(),G(`div`,{key:t,class:`track-rewind-info-list-item`},[K(`dt`,null,[(F(),ie(P(f(zw)[e.slug]??f(Bw)),{size:24})),K(`span`,eE,[K(`span`,null,y(e.name),1),e.isPremium?(F(),ie(ko,{key:0,size:16,class:`color-membership`,"aria-label":`Membership Exclusive`},null,8,[`aria-label`])):H(``,!0)])])]))),128))])])):H(``,!0),u.value.beats[0]?(F(),G(`div`,{key:1,ref_key:`beatsSectionRef`,ref:c},[q(nf,{"title-content-type":`body-title`,layout:`wrap`},{title:W(({titleClass:e})=>[K(`h3`,{class:v(e)},y(`Beats`),3)]),_:1}),q(uT,{beat:u.value.beats[0],"container-element-for-dropdown-menu":c.value},null,8,[`beat`,`container-element-for-dropdown-menu`])],512)):H(``,!0),q(jT,{sounds:u.value.sounds,"revision-id":l.value.id,onSeeAll:_},null,8,[`sounds`,`revision-id`])])):l.value&&u.value?(F(),ie(jT,{key:2,sounds:u.value.sounds,"revision-id":l.value.id,mode:`full`},null,8,[`sounds`,`revision-id`])):H(``,!0),s.value?(F(),ie(f(t),{key:3,"vertical-alignment":`center`},{"illustration-icon":W(e=>[q(f(n),{class:v(e.class),size:40},null,8,[`class`])]),title:W(()=>[B(y(`Something went wrong, please try again later`),1)]),_:1})):H(``,!0)],8,WT),q(Pa,{onClick:a[0]||=e=>i.$emit(`closeModal`)})]))}});const nE=[`media_feed`,`media_hashtag_feed`];function rE(e){let[,t]=e.split(`_`);return[t.substring(0,8),t.substring(8,12),t.substring(12,16),t.substring(16,20),t.substring(20,32)].join(`-`)}function iE({$injector:e,$state:t,post:n,revision:r=null,revisionId:i=null,triggeredFrom:a=Ee(t)}){let o=e?.get(`Player`),s=oE(o);X(tE,{post:n,revision:r,revisionId:i,triggeredFrom:a},{onClose:function(){aE({Player:o,triggeredFrom:a,initialPlayerState:s})&&sE(o)}})}function aE({Player:e,triggeredFrom:t,initialPlayerState:n}){let r=nE.includes(t);if(!e||!r)return!1;let i=oE(e);return i.songId!==n.songId||i.src!==n.src||i.currentTime!==n.currentTime||i.isPlaying!==n.isPlaying}function oE(e){if(!e)return{currentTime:0,isPlaying:!1,songId:``,src:``};let t=e.getAudio();return{currentTime:t.currentTime,isPlaying:e.isPlaying(),songId:e.getCurrentSong().id??``,src:t.src}}function sE(e){e.pause(),e.getCurrentSong().id=``}function cE({collections:e,results:t,AppNotifications:n,onFulfilled:r}){let i=[],a=[];if(e.forEach((e,n)=>{let r=t[n];r.status===`fulfilled`?i.push({collection:e,result:r}):r.status===`rejected`&&a.push({collection:e,result:r})}
100),n.removeNotification(`add-post-to-playlists-notification`),i.length&&(r(i),n.addNotification({title:i.length===1?`Post added to 1 playlist`:`Post added to ${i.length} playlists`,classList:`success`,autoclose:3e3})),a.length){let e={};a.forEach(({collection:t,result:n})=>{if(n.reason.status===409){let r=n.reason.data.message;r in e||(e[r]=[]),e[r].push(t.name)}});let t=new Intl.ListFormat(Di(),{style:`long`,type:`conjunction`});Object.entries(e).forEach(([e,r])=>{n.addNotification({title:e,content:t.format(r),classList:`alert`,autoclose:8e3})})}}function lE({Collection:e,AppNotifications:t,$analytics:n,$rootScope:r}){return function(i,a){t.addNotification({id:`add-post-to-playlists-notification`,title:`Updatingâ¦`,classList:`loading`});let o=i.map(t=>e.addPost({id:t.id,postId:a}).$promise);Promise.allSettled(o).then(e=>{cE({collections:i,results:e,AppNotifications:t,onFulfilled(e){e.forEach(({collection:e,result:t})=>{e.counters.items+=1,n.eventTrack(`Add to Collection`,{category:`Post`,label:t.value.type}),r.$broadcast(`$collection:changed`,{action:`add-post`,collection:e,post:t.value})})}})})}}function uE({Collection:e,AppNotifications:t,$analytics:n,$rootScope:r}){return function(i,a){t.addNotification({id:`add-post-to-playlists-notification`,title:`Updatingâ¦`,classList:`loading`});let o=i.map(t=>e.addRevision({id:t.id,revId:a}).$promise);Promise.allSettled(o).then(e=>{cE({collections:i,results:e,AppNotifications:t,onFulfilled(e){e.forEach(({collection:e,result:t})=>{e.counters.items+=1,n.eventTrack(`Add to Collection`,{category:`Post`,label:t.value.type}),r.$broadcast(`$collection:changed`,{action:`update`,collection:e})})}})})}}angular.module(`bandlab.collection`).controller(`CollectionsManageCtrl`,[`$analytics`,`$rootScope`,`$scope`,`appActions`,`AppNotifications`,`Collection`,`Player`,function(e,t,n,r,i,a,o){let s={Collection:a,AppNotifications:i,$analytics:e,$rootScope:t};n.openAddToCollectionModal=function(e){r.checkAllowed(`addToCollection`)&&Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./BFY7xlMI.js`)]).then(function([{createModal:t},{default:n}]){t(n,{addToCollectionFn:lE(s),itemId:e})})},n.getRevisionPostId=rE,n.openAddRevisionToCollectionModal=function(e){r.checkAllowed(`addToCollection`)&&Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./BFY7xlMI.js`)]).then(function([{createModal:t},{default:n}]){t(n,{addToCollectionFn:uE(s),itemId:e})})},n.removeFromCollection=function(e,n){a.removePost({id:e.id,postId:n}).$promise.then(function(){let r=ja(e.posts,e=>e.id===n);--e.counters.items,t.$broadcast(`$collection:changed`,{action:`update`,collection:e}),o.removeRevisionFromQueue(r[0].revision.id)})}}]),angular.module(`bandlab.collection`).component(`collectionCard`,{bindings:{collection:`=`},templateUrl:`https://www.bandlab.com/web-app/collection/partials/_collection-card-e3f8162ae.html`,controller:[`$element`,`$state`,`$stateParams`,`User`,function(e,t,n,r){let i=this;i.$onInit=a,i.getLikers=o,i.sendInsights=s;function a(){i.currentView=n.view===`list`?`list`:`feed`}function o(e){return Object.assign(e,{entity:`collections`,entityId:i.collection.id}),r.likersWithCursor(e).$promise}function s(n,r){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logPlaylistShare:i}){i(n,r,Ee(t,e))})}}],controllerAs:`vm`}),angular.module(`bandlab.collection`).component(`collectionTile`,{bindings:{collection:`<`,triggeredFrom:`<`},transclude:{actions:`?collectionTileActions`},templateUrl:`https://www.bandlab.com/web-app/collection/partials/_collection-tile-799f3ff28.html`,controllerAs:`vm`}),angular.module(`bandlab.collection`).component(`revisionListItem`,{bindings:{collection:`=`,engagementEvent:`=`,impressionEvent:`=`,playEvent:`=`,profileOpenEvent:`=`,navigatingHistory:`<`,post:`=`},templateUrl:`https://www.bandlab.com/web-app/collection/partials/_revision-list-item-edfd3b421.html`,controller:`PostCtrl`,controllerAs:`vm`}),angular.module(`bandlab.collection`).factory(`Collection`,[`$http`,`$resource`,function(e,t){var n=`https://www.bandlab.com/api/v1.3/collections`;return t(n,{},{addPost:{method:`POST`,params:{id:`@id`,postId:`@postId`},url:`${n}/:id/posts/:postId`},addRevision:{method:`POST`,params:{id:`@id`,revId:`@revId`},url:`${n}/:id/revisions/:revId`},delete:{method:`DELETE`,params:{id:`@id`},url:`${n}/:id`},fromUser:{method:`GET`,params:{userId:`@userId`,type:`playlist`},url:`https://www.bandlab.com/api/v1.3/users/:userId/collections`,preservePagination:!0}
100,get:{method:`GET`,params:{id:`@id`},url:`${n}/:id`,transformResponse:[...e.defaults.transformResponse,i]},liked:{method:`GET`,params:{id:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/likes/collections`,preservePagination:!0},removePost:{method:`DELETE`,params:{id:`@id`,postId:`@postId`},url:`${n}/:id/posts/:postId`},save:{method:`POST`,url:n,transformRequest:[angular.toJson]},update:{method:`PATCH`,params:{id:`@id`},url:`${n}/:id`,transformRequest:[r,angular.toJson],transformResponse:[...e.defaults.transformResponse,i]},updatePostOrder:{method:`PATCH`,params:{id:`@id`,postId:`@postId`},url:`${n}/:id/posts/:postId`}});function r({...e}){return delete e.picture,e}function i(e,t,n){return n===200&&e.posts.forEach(function(e){e.revision&&(e.revision.postId=e.id)}),e}}]),angular.module(`bandlab.comment`,[]).factory(`Comment`,[`$http`,`$resource`,function(e,t){var n=`https://www.bandlab.com/api/v1.3/`;return t(n,{},{delete:{url:`${n}:entity/:entityId/comments/:id`,method:`DELETE`},query:{url:`${n}:entity/:id/comments`,method:`GET`,preservePagination:!0},save:{url:`${n}:entity/:id/comments`,method:`POST`,transformResponse:[...e.defaults.transformResponse,function(e,t,n){return n===403&&e?.errorCode===201&&(e.action=`comment`),e}]},likersWithCursor:{url:`${n}:entity/:entityId/comments/:id/likes/users`,method:`GET`,params:{entityId:``,entity:`revisions`,limit:10},preservePagination:!0}})}]),angular.module(`bandlab.comment`).component(`comment`,{bindings:{comment:`<`,commentId:`<`,entity:`<`,entityId:`<`,entityPrefix:`<`,onDelete:`&`,onReplyTo:`&`,post:`<`,replyId:`<`,revision:`<`,readonly:`<`},require:`^comments`,templateUrl:`https://www.bandlab.com/web-app/comment/partials/_comment-cbc95bfae.html`,controllerAs:`vm`,controller:[`$analytics`,`$element`,`$scope`,`Comment`,`Player`,`Me`,function(e,t,n,r,i,a){let o=this;o.me=a,o.goToTimeAndPlay=s,o.getLikers=c,o.logCommentLike=l,o.$onInit=function(){let e=o.comment.id===(o.replyId||o.commentId);n.$applyAsync(),(o.comment.id===o.replyId||o.comment.id===o.commentId)&&setTimeout(function(){t[0].scrollIntoView({block:`center`,behavior:`smooth`})}),e&&(o.highlighted=!0,setTimeout(function(){n.$applyAsync(function(){o.highlighted=!1})},2e3))},n.$on(`$comment:highlight`,function(e,r){o.comment.id===r&&(setTimeout(function(){t[0].scrollIntoView({block:`center`,behavior:`smooth`})}),o.highlighted=!0,setTimeout(function(){n.$applyAsync(function(){o.highlighted=!1})},2e3))}
100),n.$on(`$comment:scrollIntoView`,function(e,n){n.id===o.comment.id&&t[0].scrollIntoView({block:`center`,behavior:`smooth`})});function s(t){i.goToTimeAndPlay(o.revision,t,o.post),e.eventTrack(`Time Marker Click`,{category:`Revision`,label:`Comment Timestamp Link`})}function c(e){return Object.assign(e,{entity:o.entity,entityId:o.entityId,id:o.comment.id}),r.likersWithCursor(e).$promise}function l(){import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:e})=>{e(`comment_actions`,{action:`like`})})}}]}),angular.module(`bandlab.comment`).directive(`commentArea`,[`appActions`,function(e){return{require:[`ngModel`,`^form`,`^commentInput`],link:function(t,n,r,i){var a=i[0],o=i[1],s=i[2];n.on(`focus`,function(t){e.checkAllowed(`comment`)||(t.preventDefault(),n[0].blur())}),n.bind(`keydown`,function(e){e.which===13&&!e.shiftKey&&(a.$valid&&!o.$submitted&&!t.suggestions?.[`0users`].length&&!t.suggestions?.[`1tags`].length&&(o.$setSubmitted(),s.postComment(o)),e.preventDefault())})}}}]),angular.module(`bandlab.comment`).component(`commentInput`,{bindings:{entity:`<`,entityId:`<`,parentComment:`<`,revision:`<`,commentsTrackingData:`<`},require:`^comments`,templateUrl:`https://www.bandlab.com/web-app/comment/partials/_comment-input-d4f5b8e49.html`,controller:[`$analytics`,`$element`,`$rootScope`,`$scope`,`AppNotifications`,`Comment`,`Me`,`Player`,function(e,t,n,r,i,a,o,s){let c=this,l=null;c.checkPlayerSong=f,c.me=o,c.postComment=p,c.removeTempTimeMarkers=m,c.$onInit=function(){c.entity=c.entity||`posts`,c.newComment={parentId:c.parentComment?.id},r.$on(`replyComment`,function(e,t){let n=t.parentId||t.id;n&&n===c.parentComment?.id&&u(t)})};function u(e){c.newComment.content=`@${e.creator.username} `,setTimeout(()=>{let e=t[0].querySelector(`textarea.comment-textarea`);e.focus(),e.setSelectionRange(c.newComment.content.length,c.newComment.content.length)})}function d(e){c.revision&&(m(),n.$broadcast(`$timeMarker:addTempTimeMarker`,{revisionId:c.revision.id,comment:{isTemporary:!0,createdOn:new Date().toISOString(),creator:o,timestamp:e}}))}function f(){l=c.revision&&s.isCurrentSong(c.revision.id)&&s.getCurrentTime(),d(l)}function p(t){if(n.$broadcast(`$comment:submit`,{id:c.entityId}),c.newComment.content.trim()===``){t.$setPristine();return}let o=new a(c.newComment);return l&&(o.timestamp=l),o.$save({entity:c.entity,id:c.entityId}).then(function(t){c.newComment.content=``,t.parentId=t.parentId||c.parentComment?.id,e.eventTrack(`Create Comment`,{category:c.commentsTrackingData.category,entityId:c.entityId,entityCreatorId:c.commentsTrackingData.creatorId,isReply:!!c.parentComment,recommendationAttribution:c.commentsTrackingData.recommendationAttribution,extra:{post_band_id:c.commentsTrackingData.postBandId,post_has_poll:c.commentsTrackingData.postHasPoll,post_type:c.commentsTrackingData.postType,post_visibility:c.commentsTrackingData.postVisibility,triggered_from:c.commentsTrackingData.triggeredFrom,trending_post_type:c.commentsTrackingData.trendingPostType}}),setTimeout(()=>r.$broadcast(`elastic:adjust`)),n.$broadcast(`$comment:changed`,{action:`create`,comment:t,entityId:c.entityId}),o.timestamp&&e.eventTrack(`Add Comment with Timestamp`,{category:`Revision`})}).catch(e=>{if(e?.data?.errorCode===201||e?.data?.errorCode===202)return;let t=Qe(e,`data.message`);i.addNotification({title:`Unable to post comment`,content:t,classList:`alert`,autoclose:5e3})}).finally(function(){t.$setPristine()})}function m(){n.$broadcast(`$timeMarker:removeTempTimeMarkers`)}}],controllerAs:`vm`}),angular.module(`bandlab.comment`).component(`commentPopover`,{bindings:{comment:`<`,revision:`<`},template:`<div class="popover-content"> 101 <comment comment="vm.comment" revision="vm.revision" readonly="true" entity-id="vm.revision.postId" entity="'posts'"></comment> 102 </div>`,controllerAs:`vm`}),angular.module(`bandlab.comment`).component(`commentReplies`,{bindings:{commentId:`<`,deleteComment:`=`,entity:`<`,entityId:`<`,entityPrefix:`<`,parentComment:`<`,readonly:`<`,replyId:`<`,replyTo:`=`,revision:`<`},require:`^comments`,templateUrl:`https://www.bandlab.com/web-app/comment/partials/_comment-replies-dd088e908.html`,controller:[`$element`,`$q`,`$rootScope`,`$scope`,`AppNotifications`,`Comment`,function(e,t,n,r,i,a){let o=this,s=t.resolve(),c=null,l=!1,u;o.entity=o.entity||`posts`,o.getMoreComments=d,o.hideComments=p,o.newComments=[],o.onDelete=m,o.onReplyTo=h,o.$onInit=function(){o.hasMore=!!o.parentComment.counters.replies,o.replyId&&o.parentComment.id===o.commentId&&(u=!0,d())}
102,r.$on(`$comment:changed`,function(e,{action:t,comment:n,entityId:r}){if(r===o.entityId&&n.parentId===o.parentComment.id){if(t===`create`){if(o.comments&&o.comments[0]&&o.comments[0].id===n.id)return;o.newComments?o.newComments.unshift(n):o.newComments=[n]}else if(t===`delete`){let e=o.comments?.findIndex(e=>e.id===n.id);e>-1?o.comments.splice(e,1):o.newComments.splice(o.newComments.findIndex(e=>e.id===n.id),1)}}});function d(){if(!l)return l=!0,s=s.then(()=>a.query({after:c,entity:o.entity,id:o.entityId,limit:50,repliesTo:o.parentComment.id}).$promise).then(function({paging:e,data:t}){o.newComments=o.newComments.filter(e=>!t.find(t=>t.id===e.id)),o.comments=o.comments&&o.comments.concat(t)||t,o.hasMore=!!e.cursors.after,c=e.cursors.after,l=!1,f(t)}).catch(function(e){o.comments=o.comments??[],o.hasMore=!1,l=!1}),s}function f(t){if(u){if((t||[]).find(e=>e.id===o.replyId)){u=!1;return}o.hasMore?(o.highlightViewMore=!0,setTimeout(function(){e[0].querySelector(`.comment-more-link`).scrollIntoView({block:`center`,behavior:`smooth`})}),setTimeout(function(){r.$applyAsync(function(){o.highlightViewMore=!1})},2e3)):(u=!1,i.addNotification({content:`Content not found or has been deleted`,classList:`alert`,autoclose:8e3}))}}function p(){o.comments=[],o.newComments=[],o.hasMore=!!o.parentComment.counters.replies,c=null,l=!1,n.$broadcast(`$comment:scrollIntoView`,o.parentComment)}function m(e){o.deleteComment({...e,parentId:o.parentComment?.id})}function h(e){o.replyTo({...e,parentId:o.parentComment?.id})}}],controllerAs:`vm`}),angular.module(`bandlab.comment`).component(`comments`,{bindings:{counter:`<`,commentId:`<`,entity:`<`,entityId:`<`,entityObj:`<`,entityPrefix:`<`,loadedComments:`<`,post:`<`,replyId:`<`,revision:`<`,readonly:`<`,hideComments:`<`,triggeredFrom:`<`},templateUrl:`https://www.bandlab.com/web-app/comment/partials/_comments-da1776d03.html`,controller:[`$analytics`,`$q`,`$rootScope`,`$scope`,`$state`,`AppNotifications`,`Comment`,`ConfirmModal`,`Me`,function(e,t,n,r,i,a,o,s,c){let l=this,u=t.resolve(),d;l.$onInit=f,l.deleteComment=_,l.getMoreComments=h,l.replyTo=v;function f(){l.me=c,l.counter=l.counter||0,l.entity=l.entity||`posts`,l.entityPrefix=l.entityPrefix||`post`,l.entityObj=l.entityObj||l.post,l.isLoadingComments=!1,d=l.post?.afterForComments,l.zeroCaseMessage=l.readonly&&!l.me.permissions.comment?`The post owner limited who can comment here`:`Be the first to comment!`,l.commentsTrackingData={category:l.entity===`albums`?`Album`:`Post`,creatorId:l.entityObj.creator.id,postBandId:l.post?.band?.id,postHasPoll:!!l.post?.poll,postType:l.post?.type.toLowerCase(),postVisibility:l.post?.state.toLowerCase(),triggeredFrom:l.triggeredFrom||Ee(i),trendingPostType:l.post?.trendingPostType,recommendationAttribution:l.post?.recommendationReason?.action===`Reacted`?`following_reacted`:null};let e=l.commentId&&!(l.loadedComments||[]).find(e=>e.id===l.commentId);l.loadedComments&&!e?(l.comments=l.hideComments?[]:l.loadedComments.map(function(e){return new o(e)}),l.hasMore=l.counter>l.comments.length+l.comments.reduce((e,t)=>e+(t.counters?.replies||0),0),p()):l.entity===`posts`&&!l.entityObj.isCommentingAllowed?l.comments=[]:(l.comments=null,l.isLoadingComments=!0,l.getMoreComments(!0).then(function(e){m(e)}).finally(function(){l.isLoadingComments=!1}))}function p(){l.revision&&n.$broadcast(`$comments:loaded`,{revision:l.revision,comments:l.comments})}function m(e){l.commentId&&!(e||[]).find(e=>e.id===l.commentId)&&!l.hasMore&&a.addNotification({content:`Content not found or has been deleted`,classList:`alert`,autoclose:8e3})}function h(e=!1){return u=u.then(()=>o.query(d?{entity:l.entity,id:l.entityId,limit:10,after:d}:{entity:l.entity,id:l.entityId,limit:10}).$promise).then(function({paging:t,data:n}){return l.loadedComments&&l.loadedComments[0]?.id===n[0]?.id?l.comments=n:((!l.comments||l.loadedComments&&l.comments.length<l.loadedComments.length)&&(l.comments=l.loadedComments?l.loadedComments.map(function(e){return new o(e)}):[]),l.comments=l.comments&&l.comments.concat(n)||n,l.loadedComments=l.comments),d=t.cursors.after,l.hasMore=d,p(),e&&l.comments[0]&&setTimeout(()=>{let e=document.getElementById(l.comments[0].id);e&&e.scrollIntoView()}),n}).catch(function(){l.comments=l.comments??[],l.hasMore=!1}),u}
102function g(e){e.parentId?l.comments.forEach(t=>{t.id===e.parentId&&t.counters.replies++}):l.comments.unshift(e),l.counter++,l.replyCommentId=null,p(),setTimeout(()=>{let t=document.getElementById(`comment-${e.id}`);t&&t.scrollIntoView({block:`nearest`,behavior:`smooth`})})}function _(t){new s({confirmLabel:`Delete`,contentScope:{title:`Delete this comment?`,message:`<p>You wonât be able to undo this action.</p>`},onConfirm:function(){return new o(t).$delete({entity:l.entity,entityId:l.entityId,id:t.id}).then(function(){t.parentId?(n.$broadcast(`$comment:changed`,{action:`delete`,comment:t,entityId:l.entityId}),l.comments.forEach(e=>{e.id===t.parentId&&e.counters.replies--})):l.comments.splice(l.comments.indexOf(t),1),l.counter--;let r=l.entity===`albums`?`Album`:`Post`;e.eventTrack(`Delete Comment`,{category:r,value:l.counter}),p()})}}).show()}function v(e){l.replyCommentId=e.parentId||e.id,e.entityId=l.entityId,n.$broadcast(`replyComment`,e),import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:e})=>{e(`comment_actions`,{action:`reply`})})}r.$on(`$comment:changed`,function(e,{action:t,comment:n,entityId:r}){if(t===`create`){if(r!==l.entityId||l.comments&&l.comments[0]&&l.comments[0].id===n.id)return;g(n)}})}],controllerAs:`vm`}),angular.module(`bandlab.common`,[]).directive(`walkthrough`,[`$injector`,function(e){return{scope:{steps:`<`,onEnded:`&`},link:function(t,n){let r=$(import(`./Ckwk3exJ.js`),n[0],t,{$injector:e},{scope:t,walkthroughId:n[0].id,steps:t.steps,onEnded:t.onEnded});t.$on(`$destroy`,async function(){await r,n.remove()})}}}]).directive(`badgeAi`,function(){return{restrict:`E`,replace:!0,template:`<span style="display: flex;"></span>`,link:function(e,t){$(import(`./CYMXazX-.js`).then(e=>e.n),t[0],e),e.$on(`$destroy`,function(){t.remove()})}}}),angular.module(`bandlab.common`).directive(`searchLocation`,[`$filter`,`$parse`,`Place`,function(e,t,n){let r=e(`location`);return{require:[`^form`,`ngModel`],link:function(e,i,a,o){let s=o[1],c=[];s.$viewChangeListeners.push(function(){let t=s.$viewValue;n.query({query:t}).$promise.then(function(t){c=t,e.placeSuggestions={places:t}})}),s.$formatters.push(function(e){return r(e)}),s.$overrideModelOptions({allowInvalid:!0}),s.$parsers.push(function(e){var t=e;for(let n=0;n<c.length;
102n++)if(c[n].name===e){t=c[n];break}return t}),s.$validators.validPlace=function(e){return!e||e.name},e.completeLocation=function(n,r=a.ngModel){let i=t(r).assign;i(e,n),s.$processModelValue(),e.placeSuggestions={}}}}}]),angular.module(`bandlab.common`).directive(`asyncModal`,[`$parse`,`appActions`,`Modal`,function(e,t,n){return{restrict:`A`,link:function(r,i,a){var o;function s(){if(!o){var t={class:a.asyncModalClass,id:a.asyncModalId||ze(),templateUrl:a.asyncModal,onDestroy:function(){o=null}};a.asyncModalOverlayClose===`false`&&(t.overlayClose=!1),a.asyncModalEscapeClose===`true`&&(t.escapeClose=!0),a.asyncModalParse&&(t.contentScope=e(a.asyncModalParse)(r)),o=new n(t),o.show()}}i.on(`click`,function(e){e.preventDefault(),(!a.asyncModalAction||t.checkAllowed(a.asyncModalAction))&&s()})}}}]).directive(`vueReportModal`,[`$parse`,`appActions`,function(e,t){return{restrict:`A`,link:function(n,r,i){function a(e){return Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./CWskUNkY.js`)]).then(function([{createModal:t},{default:n}]){t(n,e)})}r.on(`click`,function(r){r.preventDefault();let o={};i.vueReportModalProps&&(o=e(i.vueReportModalProps)(n)),(!i.vueReportModalAction||t.checkAllowed(i.vueReportModalAction))&&a({toReport:o?.toReport||{}})})}}}]).directive(`vueFeedbackModal`,[`$parse`,`appActions`,function(e,t){return{restrict:`A`,link:function(n,r,i){function a(e){return Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./CKtCfXPl.js`)]).then(function([{createModal:t},{default:n}]){t(n,e)})}r.on(`click`,function(r){r.preventDefault();let o={};i.vueFeedbackModalProps&&(o=e(i.vueFeedbackModalProps)(n)),(!i.vueFeedbackModalAction||t.checkAllowed(i.vueFeedbackModalAction))&&a({toReport:o?.toReport||{objectType:`General`}})})}}}]),angular.module(`bandlab.common`).directive(`asyncValid`,[`$q`,`$timeout`,`Validation`,function(e,t,n){return{require:`ngModel`,restrict:`A`,scope:{asyncValid:`=`},priority:100,link:function(r,i,a,o){if(!o)return;let s,c,l={},u,d=o.$render;o.$render=function(){angular.isString(o.$modelValue)&&angular.isUndefined(s)&&(s=o.$viewValue),d()},o.$asyncValidators.asyncValid=function(e){return c=e??``,f(c)},i.one(`blur`,function(){o.$isEmpty(o.$viewValue)&&o.$validate()});function f(i,a){return l.$$timeoutId&&t.cancel(l),r.asyncValid.skipUntilModified&&i===``&&o.$pristine||(o.$setValidity(`available`,!0),o.$setValidity(`valid`,!0),angular.isString(s)&&c===s)||i===``&&o.$untouched?e.resolve():u&&u.$$state.status===0&&!a?u:(l=(r.asyncValid.testStrength?e=>e():e=>t(e,500))(function(){return u=n.validate(r.asyncValid.entity,r.asyncValid.key,i).then(function(e){if(i!==c)return f(c,!0);r.asyncValid.testAvailability&&o.$setValidity(`available`,e.data.isAvailable),r.asyncValid.testValidity&&o.$setValidity(`valid`,e.data.isValid),r.asyncValid.testStrength&&o.$setValidity(`strong`,!e.data.includes(i)&&!r.asyncValid.disallowed.includes(i)),o.errorMessage=e.data.errorMessage?e.data.errorMessage:null}).catch(function(){r.asyncValid.bypassCatch||(o.$setValidity(`valid`,!1),o.errorMessage=null)}),u}),l)}}}}]),angular.module(`bandlab.common`).directive(`autofocus`,[`$stateParams`,function(e){return{restrict:`A`,link:function(t,n){if(bn||hn){n[0].removeAttribute(`autofocus`);return}if(e.focus&&e.focus===n.attr(`name`))return setTimeout(function(){n[0].focus()},100)}}}]),angular.module(`bandlab.common`).directive(`backToTop`,[`$analytics`,`$transitions`,function(e,t){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/common/partials/_back-to-top-9390452d3.html`,link:function(n,r){let i=document.scrollingElement||document.body,a=t.onExit({},s),o=0;window.addEventListener(`scroll`,c,{passive:!0}),n.$on(`backToTop`,s),r.on(`click`,function(){o=i.scrollTop||o,i.scrollTop=i.scrollTop===0?o:0,i.scrollTop>0&&(o=0),r.removeClass(`up`).removeClass(`down`),e.eventTrack(i.scrollTop?`Back to bottom`:`Back to top`,{category:`Navigation`,value:i.scrollTop})}),n.$on(`$destroy`,function(){window.removeEventListener(`scroll`,c,{passive:!0}),a()});function s(){r.removeClass(`up`).removeClass(`down`),o=0}function c(){i.scrollTop===0&&o===0?r.removeClass(`up`).removeClass(`down`):i.scrollTop===0&&o>0?r.removeClass(`up`).addClass(`down`):i.scrollTop>0&&(o=0,r.removeClass(`down`).addClass(`up`))}}}}]),angular.module(`bandlab.common`).directive(`birthdayForm`,function(){return{restrict:`E`,require:`^form`,replace:!0,template:`<div></div>`,scope:{ariaLabelledby:`@`,id:`@`,isDisabled:`<?`,isInvalid:`=`,name:`@`,modelValue:`=`,size:`@`,validationRules:`=`,required:`@?`},link:function(e,t){let n=h({ariaLabelledby:e.ariaLabelledby,id:e.id,name:e.name,modelValue:e.modelValue,isDisabled:e.isDisabled,size:e.size,validationRules:e.validationRules,required:e.required===``||e.required===!0||e.required===`true`,onValidationStatusChange:function(t){e.isInvalid=t,e.$applyAsync()},onModelValueChange:function(t){n.modelValue=t,e.modelValue=t,e.$a
102pplyAsync()}});$(import(`./DLHGEmoI.js`),t[0],e,{},n)}}}),angular.module(`bandlab.common`).directive(`createPost`,[`$injector`,`$rootScope`,function(e,t){return{restrict:`EA`,replace:!0,scope:{allowPoll:`<`,caption:`<`,entityType:`<`,entity:`<`,image:`<`,me:`<`,onPostCreate:`<`,text:`<`},link:function(n,r){$(import(`./DWuYwio7.js`),r[0],n,{$rootScope:t,$injector:e},{allowPoll:n.allowPoll,text:n.text,entity:n.entity,entityType:n.entityType,injectedCaption:n.caption,injectedImage:n.image,onPostCreate:n.onPostCreate})}}}]);function dE(e,{target:t=document.body}={}){if(typeof e!=`string`)throw TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);let n=document.createElement(`textarea`),r=document.activeElement;n.value=e,n.setAttribute(`readonly`,``),n.style.all=`unset`,n.style.contain=`strict`,n.style.position=`absolute`,n.style.left=`-9999px`,n.style.width=`2em`,n.style.height=`2em`,n.style.padding=`0`,n.style.border=`none`,n.style.outline=`none`,n.style.boxShadow=`none`,n.style.background=`transparent`,n.style.fontSize=`12pt`,n.style.whiteSpace=`pre`;let i=document.getSelection(),a=i.rangeCount>0&&i.getRangeAt(0);t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let o=!1;try{o=document.execCommand(`copy`)}catch{}return n.remove(),a&&(i.removeAllRanges(),i.addRange(a)),r&&r.focus(),o}angular.module(`bandlab.common`).directive(`clipboard`,[`AppNotifications`,function(e){return{restrict:`A`,link:function(t,n,r){n.on(`click`,()=>{dE(t.$eval(r.text)),`clipboardWithSuccessMessage`in r&&e.addNotification({title:`Copied to clipboard`,classList:`success`,autoclose:1e3})})}}}]),angular.module(`bandlab.common`).directive(`contextMenu`,[`$compile`,`$templateRequest`,function(e,t){return{replace:!0,restrict:`E`,link:function(n,r,i){var a=angular.element(document.querySelector(`main`)),o=angular.noop,s=r.parent(),c,l,u;let d=n.$eval(i.targetSelectors)||[];s.on(`contextmenu`,function(s){if(i.disabled||!(d.some(e=>document.querySelector(e)?.contains(s.target))||d.length===0))return;s.preventDefault(),s.stopPropagation(),t(i.template).then(e=>{setTimeout(function(){p(),f(s,e)})});function f(t,i){l=n.$new(),c=e(i)(l),c[0].style.display=`inline-block`,l.$digest(),a.append(c),za.element=c,za.openerElement=r;let s=window.innerHeight-16,d=c[0].clientHeight>s;if(d){c.css({maxHeight:`${s}px`,overflow:`auto`});let e=c[0].scrollHeight-c[0].clientHeight;c[0].scrollTop=e}var f=t.clientX,h=t.clientY,g=c[0].querySelectorAll(`.dropdown-cascading-item ul`);c.css({left:`${f}px`,top:`${h}px`,visibility:`hidden`});let _=c[0].getBoundingClientRect(),v=window.innerHeight-8;_.right>window.innerWidth&&(f-=_.right-window.innerWidth);let y=Math.max(_.bottom-v,0),b=Math.max(_.top-y,8);h+=b-_.top,c.css({left:`${f}px`,top:`${h}px`}),Ia(g,{positionFixed:d}),d&&(u=()=>Ia(g,{positionFixed:!0}),c[0].addEventListener(`scroll`,u,!0)),c.css({visibility:null}),o(),o=n.$on(`$destroy`,p),a.on(`click`,p),a.on(`keydown`,m)}function p(){za.element&&(za.element[0].style.display=`none`,za.openerElement.removeClass(`active`)),za.element=null,a.off(`click`,p),a.off(`keydown`,m),c&&(u&&=(c[0].removeEventListener(`scroll`,u,!0),null),c.remove(),l.$destroy(),c=null,l=null)}function m(e){(e.which===13||e.which===9||e.which===27)&&p()}})}}}]),angular.module(`bandlab.common`).directive(`draggableTile`,function(){let e=null,t=null,n=null;return{scope:{allowed:`=`,entity:`=`,updateOrder:`=fnUpdateOrder`,tile:`=`,tileId:`=`,tileList:`=`},link:function(r,i){let a=r.tileList,o=r.tile,s;if(!r.allowed)return;let c=i[0].closest(`.draggable-tile`);i[0].draggable=!0,i[0].addEventListener(`dragstart`,function(t){t.stopPropagation(),e=o,t.dataTransfer.setData(`text/plain`,``),t.dataTransfer.setDragImage&&(s=this.parentElement.cloneNode(!0),s.style.borderRadius=`2px`,s.style.padding=`4px`,s.style.transform=`translateX(-500px)`,s.style.width=`400px`,document.body.appendChild(s),t.dataTransfer.setDragImage(s,0,0)),c.addEventListener(`dragover`,l)}),i[0].addEventListener(`dragend`,function(){s&&document.body.removeChild(s);let i=a.indexOf(e);i!==n&&n!==null&&(a.splice(i,1),a.splice(n,0,e),r.updateOrder(r.tileId,n+1)),t=null,e=null,n=null,c.classList.remove(`is-dropped-above`),c.classList.remove(`is-dropped-below`),c.removeEventListener(`dragover`,l),r.$applyAsync()}),c.addEventListener(`dragover`,function(i){if(i.target.contains(this)||e===null||e===o)return;let s=u(c,i),l=d(),m=a.indexOf(o);t=o,n=!s&&!l?m+1:s&&l?m-1:m,f(m,l)?c.classList.add(`is-dropped-above`):c.classList.remove(`is-dropped-above`),p(m,l)?c.classList.add(`is-dropped-below`):c.classList.remove(`is-dropped-below`),r.$applyAsync()}),c.addEventListener(`dragleave`,function(){c.classList.remove(`is-dropped-above`),c.classList.remove(`is-dropped-below`),r.$applyAsync()});function l(e){e.preventDefault()}function u(e,t){let n=e.getBoundingClientRect();return n.top+n.height-t.y>n.height/2}function d(){return a.indexOf(e)<a.indexOf(o)}function f(e,r){return t===o&&(n<e||!r&&n===e)}function p(e,r){return t===o&&(n>e||r&&n===e)}}}}),angular.module(`bandlab.common`).directive(`dropdownMenu`,[`$animate`,`$compile`,`$parse`,`$rootScope`,`$templateRequest`,`$transitions`,`Me`,function(e,t,n,r,i,a,o){return{restrict:`A`,link:function(s,c,l){var u=angular.element(document.body),d=l.dropdownMenuContainer===`parent`&&c[0].parentElement||c[0].closest(`main`)||c[0].closest(`.title-bar`)||c[0].closest(`.view-overlay`)||c[0].closest(`.modal-overlay`)||document.body,f=c[0].closest(`.modal`)||document.body,p=angular.noop,m,h,g;c[0].closest(`.global-player`)&&(d=c[0].parentElement,l.dropdownMenuContainer=`parent`),i(l.dropdownMenu).then(function(e){m=e,c.on(`click`,_)});function _(i){i?.stopPropagation(),za.element&&za.element!==h?(za.element[0].style.display=`none`,za.openerElement.removeClass(`active`)):za.isVueDropdownVisible?.value&&(za.isVueDropdownVisible.value=!1,za.isVueDropdownVisible=null),setTimeout(function(){_()});function _(){if(h&&h[0].style.display!==`none`){x();return}x(),g=s.$new(),g.me=o,l.dropdownMenuParse&&Object.assign(g,n(l.dropdownMenuParse)(s)),l.dropdownCloseOnResize&&window.addEventListener(`resize`,x),h=t(m)(g);let r=v(h[0]);u.append(h),g.$digest(),c.addClass(`active`),p=a.onStart({},x),za.element=h,za.openerElement=c,La(c[0],h[0],l);let i=h[0].querySelectorAll(`.dropdown-cascading-item > ul`);Ia(i),setTimeout(function(){f.addEventListener(`click`,b),document.body.addEventListener(`ke
102ydown`,S)}),g.$on(`$dropdownMenu:close`,x),e.enter(h,d).then(function(){y(r)}),g.$digest()}function v(e){return[...e.querySelectorAll(`[autofocus]`)].filter(function(e){return e.autofocus=!1,e})}function y(e){e.forEach(function(e){e.focus()})}function b(e){e.target.classList.contains(`dropdown-cascading-item`)||setTimeout(function(){x(),l.dropdownOnClose&&n(l.dropdownOnClose)(s)()},0)}function x(...t){if((!dC.value||t[0]?.to)&&(za.element=null,p(),f.removeEventListener(`click`,b),document.body.removeEventListener(`keydown`,S),window.removeEventListener(`resize`,b),h)){let t=g;e.leave(h),c.removeClass(`active`),r.$applyAsync(function(){t.$destroy()}),g=null,h=null}}function S(e){e.which===27&&x()}}}}}]).directive(`dropdownCascadingItem`,function(){return{restrict:`C`,link:function(e,t){let n=t[0].closest(`.dropdown`);t.on(`mouseover`,function(){t.addClass(`visible`),n.addEventListener(`mouseover`,r)});function r(e){t[0].contains(e.target)||(t.removeClass(`visible`),n.removeEventListener(`mouseover`,r))}}}}),angular.module(`bandlab.common`).directive(`dsInfoMessage`,function(){return{restrict:`E`,transclude:{customSlot:`?dsInfoMessageCustomSlot`,customTitle:`?dsInfoMessageCustomTitle`,customMessage:`?dsInfoMessageCustomMessage`,cta:`?dsInfoMessageCta`},scope:{type:`@`,verticalAlignment:`@`,illustrationIcon:`@?`,title:`@?`,message:`@?`},link:function(e,t,n,r,i){t.attr(`style`,`display: contents;`),e.customSlotContent=i(()=>{},null,`customSlot`)?.children()[0],e.customTitleContent=i(()=>{},null,`customTitle`)?.children()[0],e.customMessageContent=i(()=>{},null,`customMessage`)?.children()[0],e.ctaContent=i(()=>{},null,`cta`)?.children()[0];let a=h({type:e.type,verticalAlignment:e.verticalAlignment,illustrationIcon:e.illustrationIcon,title:e.title,message:e.message,customSlotContent:e.customSlotContent,customTitleContent:e.customTitleContent,customMessageContent:e.customMessageContent,ctaContent:e.ctaContent});$(import(`./BfJ3-_FU.js`),t[0],e,{},a),e.$watch(function(e){a.type=e.type,a.verticalAlignment=e.verticalAlignment,a.illustrationIcon=e.illustrationIcon,a.title=e.title,a.message=e.message,a.customSlotContent=e.customSlotContent,a.customTitleContent=e.customTitleContent,a.customMessageContent=e.customMessageContent,a.ctaContent=e.ctaContent})}}}),angular.module(`bandlab.common`).directive(`dsZeroCase`,function(){return{restrict:`E`,replace:!0,transclude:{title:`?dsZeroCaseTitle`,message:`?dsZeroCaseMessage`,cta:`?dsZeroCaseCta`},scope:{illustrationIcon:`@`,title:`@?`,message:`@?`,verticalAlignment:`@?`},template:`<div></div>`,link:function(e,t,n,r,i){e.transcludeTitle=i(()=>{},null,`title`)?.children()[0],e.transcludeMessage=i(()=>{},null,`message`)?.children()[0],e.transcludeCta=i(()=>{},null,`cta`)?.children()[0];let a=h({verticalAlignment:e.verticalAlignment,illustrationIcon:e.illustrationIcon,title:e.title,message:e.message,transcludeTitle:e.transcludeTitle,transcludeMessage:e.transcludeMessage,transcludeCta:e.transcludeCta});$(import(`./Do83OLxa.js`),t[0],e,{},a),e.$watch(function(e){a.verticalAlignment=e.verticalAlignment,a.illustrationIcon=e.illustrationIcon,a.title=e.title,a.message=e.message,a.transcludeTitle=e.transcludeTitle,a.transcludeMessage=e.transcludeMessage,a.transcludeCta=e.transcludeCta})}}}),angular.module(`bandlab.common`).directive(`segmentedControl`,function(){return{restrict:`C`,link:function(e,t){let n=`--segmented-control-selected-item`,r=t[0],i=[],a,o=!1,s=new ResizeObserver(l),c=new ResizeObserver(u);function l(e){e.forEach(e=>{e.contentRect.width===0&&(r.classList.remove(`active`),o=!0)})}function u(e){e.forEach(e=>{r.style.setProperty(`${n}-width-for-${e.target.htmlFor}`,`${e.borderBoxSize.inlineSize||e.target.offsetWidth}px`),r.style.setProperty(`${n}-background-position-x-for-${e.target.htmlFor}`,`${e.target.offsetLeft}px`)})}function d(){o&&a&&(r.classList.add(`active`),o=!1),r.style.removeProperty(`${n}-background-color`),r.style.removeProperty(`${n}-border-color`),r.style.removeProperty(`${n}-box-shadow`),r.style.setProperty(`${n}-width`,`var(${n}-width-for-${a.htmlFor})`),r.style.setProperty(`${n}-background-position-x`,`var(${n}-background-position-x-for-${a.htmlFor})`),r.classList.contains(`active`)||requestAnimationFrame(()=>{r.classList.add(`active`),o=!1})}function f(e){a=e.target.nextElementSibling,d()}s.observe(r),e.$watch(()=>r.children.length,function(e){e&&(c.disconnect(),i=r.querySelectorAll(`input`),i.forEac
102h(e=>{c.observe(e.nextElementSibling),e.removeEventListener(`change`,f),e.addEventListener(`change`,f),e.checked&&(a=e.nextElementSibling,d())}),a||(r.style.setProperty(`${n}-background-color`,`transparent`),r.style.setProperty(`${n}-border-color`,`transparent`),r.style.setProperty(`${n}-box-shadow`,`none`)))}),e.$watch(function(){let e=Array.from(i??[]).find(e=>e.checked);e&&e.nextElementSibling!==a&&(a=e.nextElementSibling,d())}),e.$on(`$destroy`,function(){c.disconnect(),s.disconnect()})}}});const fE={click:{adEvent:`engagementEvent`,adType:`engagement`},comment:{adEvent:`commentEvent`,adType:`comment`},follow:{adEvent:`followEvent`,adType:`follow`},like:{adEvent:`likeEvent`,adType:`like`},play:{adEvent:`playEvent`,adType:`play`},profileOpen:{adEvent:`profileOpenEvent`,adType:`profileOpen`},shareOpen:{adEvent:`shareOpenEvent`,adType:`shareOpen`}};function pE(e){return{...fE[e]}}function mE(e){let t=`click`;return e.target.closest(`[engagement-observer-ignore]`)||(e.target.closest(`[engagement-observer-follow="true"]`)?t=`follow`:e.target.closest(`[engagement-observer-like="true"]`)?t=`like`:e.target.closest(`[engagement-observer-share-open]`)?t=`shareOpen`:e.target.closest(`[engagement-observer-play="true"]`)?t=`play`:e.target.closest(`[engagement-observer-click]`)?t=`click`:e.target.closest(`[engagement-observer-profile-open]`)&&(t=`profileOpen`)),t}function hE(e=()=>{},t={}){let n,r;ce(()=>{n.unobserve(r)});function i(i){r=i,n=_E(r,e,t),n.observe(r)}return{setElement:i}}function gE(e){let t=`${Ra()}px 0px 0px 0px`,n=e.closest(`[impression-observer-container]`);return n&&n.offsetTop>0&&(t=`-${n.offsetTop}px 0px 0px 0px`),t}function _E(e,t=()=>{},{duration:n=300,threshold:r=.5}={}){let i=!1,a=new IntersectionObserver(o,{root:null,rootMargin:gE(e),threshold:[0,r]});return a;function o(o){o[0].isIntersecting&&o[0].intersectionRatio>r?(i=!0,setTimeout(function(){i&&(i=!1,a.unobserve(e),t())},n)):i=!1}}function vE(e){let t;function n(n){t=n,t.addEventListener(`click`,r,{capture:!0});function r(t){e(mE(t))}}return{setElement:n}}const yE=[],bE=new Set;let xE=!1,SE=null;function CE({contentSessionId:e,data:t}){return{type:`post.impression`,version:1,id:ze(),sessionId:df.getInstance().getSessionId().toString(),timestamp:Date.now(),contentSessionId:e,data:t}}function wE({events:e}){return Un.post(`https://aws.bandlab.com/api/v1.3/events`,{json:{events:e},keepalive:!0})}function TE({contentSessionId:e,data:t}){if(!e)return;AE();let n=CE({contentSessionId:e,data:t});yE.push(n),yE.length>=30?DE():SE||=setTimeout(DE,3e4)}function EE(e){return bE.add(e),()=>bE.delete(e)}async function DE(){SE&&=(clearTimeout(SE),null),yE.length!==0&&await wE({events:yE.splice(0,yE.length)})}function OE(){return kE(),DE()}function kE(){[...bE].forEach(e=>e())}function AE(){xE||(xE=!0,document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&OE()}),window.addEventListener(`pagehide`,()=>{OE()}))}const jE=.35,ME=.9;function NE(e){let t=r;return ce(()=>{t()}),{setElement:n};function n(n){n&&({disconnect:t}=PE(n,e))}function r(){}}function PE(e,t){let n=0,r=0,i=`outside`,a=null,o=!1,s=null,c,l=new ResizeObserver(p);l.observe(e);let u=e.closest(`[impression-observer-container]`);u&&l.observe(u),f(),AE();let d=EE(v);return{disconnect:y};function f(){c?.disconnect(),c=new IntersectionObserver(m,{root:null,rootMargin:gE(e),threshold:[0,jE,ME]}),c.observe(e)}function p(){o||(s=performance.now())}function m(e){if(o)return;let t=e[e.length-1];if(!t)return;let n=t.intersectionRatio,r=`outside`;if(n>=ME?r=`full`:n>=jE&&(r=`partial`),r===i)return;let c=s!==null&&performance.now()-s<100;h(),i=r,a=r===`outside`?null:performance.now(),r===`outside`&&!c&&_()}function h(){if(a===null)return;let e=performance.now()-a;e<=0||(i===`partial`?n+=e:i===`full`&&(r+=e))}function g(){n=0,r=0}function _(){o||n+r<500||(o=!0,c?.unobserve(e),l.disconnect(),t(Math.round(n),Math.round(r)))}function v(){o||(h(),i=`outside`,a=null,_(),o||(g(),f()))}function y(){v(),c?.disconnect(),l.disconnect(),d()}}angular.module(`bandlab.common`).directive(`impressionObserver`,[`$parse`,function(e){return{restrict:`A`,link:function(t,n,r){let i=e(r.impressionObserver)(t),{duration:a,threshold:o}=e(r.impressionObserverSettings)(t)||{duration:300,threshold:.5},s=_E(n[0],i,{duration:a,threshold:o});s.observe(n[0]),t.$on(`$destroy`,function(){s.unobserve(n[0])})}}}]).directive(`postImpressionObserver`,[`$parse`,function(e){return{restrict:`A`,link:function(t,n,r){let i=e(r.postImpressionObserver)(t);if(typeof i!=`function`)return;let{disconnect:a}=PE(n[0],i);t.$on(`$destroy`,function(){a()})}}}]).directive(`engagementObserver`,[`$parse`,function(e){return{restrict:`A`,link:function(t,n,r){n[0].addEventListener(`click`,i,{capture:!0});function i(n){let i=mE(n);e(r.engagementObserver)(t)(i)}t.$on(`$destroy`,function(){n[0].removeEventListener(`click`,i,{capture:!0})})}}}]),angular.module(`bandlab.common`).directive(`iconSvg`,function(){return{restrict:`E`,template:FE,replace:!0,link:IE}});function FE(e,t){return t.size?`<svg width="${t.size}" height="${t.size}
102" viewBox="0 0 ${t.size} ${t.size}"></svg>`:`<svg width="${t.width}" height="${t.height}" viewBox="0 0 ${t.width} ${t.height}"></svg>`}function IE(e,t,n){let r=t[0].nodeName===`svg`?t[0]:t[0].firstChild,i;n.$observe(`name`,async function(){await o(),i=a()}),n.size?n.$observe(`size`,function(e){r.setAttribute(`width`,e),r.setAttribute(`height`,e),r.setAttribute(`viewBox`,`0 0 ${e} ${e}`)}):(n.$observe(`width`,function(e){r.setAttribute(`width`,e)}),n.$observe(`height`,function(e){r.setAttribute(`height`,e)}));function a(){return $(import(`./e-DNBLu2.js`).then(e=>e.n),r,e,{},{name:n.name,size:n.size?+n.size:0,height:n.size?0:+n.height})}async function o(){return(await i)?.unmount()}}angular.module(`bandlab.common`).directive(`infiniteScroll`,[`$q`,`$window`,function(e,t){return{link:function(n,r,i){let a=n.$eval(i.infiniteScroll),o=`requireUserScrollBeforeLoad`in i,s;s=`scrollableParent`in i?r[0].parentElement:`scrollableSelf`in i?r[0]:t;let c=e.resolve(),l,u=LE({isEnabled:o,scope:n,getScrollTop:_,getViewportHeight:v,isContentScrollable:y,lengthThreshold:100,scheduleScrollCheck:p});if(!angular.isFunction(a))return;let d=new MutationObserver(function(){if(o){u.schedulePostRenderCheck();return}p()});d.observe(r[0],{childList:!0}),s.addEventListener(`scroll`,f,{passive:!0}),n.$on(`$destroy`,function(){u.destroy(),d.disconnect(),s.removeEventListener(`scroll`,f,{passive:!0})});function f(e){u.onScroll(e),p()}function p(){l||=(requestAnimationFrame(h),!0)}function m(){return u.onLoadStarted(),a().catch(angular.noop).then(function(){if(o){u.schedulePostRenderCheck();return}s.dispatchEvent(new Event(`scroll`)),d.disconnect()})}function h(){let e=g(),t=c.$$state.status,n=o?u.shouldLoadMore({remaining:e,isRequestResolved:t===1}):t===1&&e<100||t===-1&&e===0;if(r[0].closest(`main.no-scroll`)){l=!1;return}n?c=c.then(()=>m()):u.resetThresholdIfNeeded(e),l=!1}function g(){return`scrollableParent`in i||`scrollableSelf`in i?s.scrollHeight-(s.scrollTop+s.clientHeight):document.documentElement.scrollHeight-(document.documentElement.clientHeight+window.scrollY)}function _(){return`scrollableParent`in i||`scrollableSelf`in i?s.scrollTop:window.scrollY}function v(){return`scrollableParent`in i||`scrollableSelf`in i?s.clientHeight:document.documentElement.clientHeight}function y(){return`scrollableParent`in i||`scrollableSelf`in i?s.scrollHeight>s.clientHeight:document.documentElement.scrollHeight>document.documentElement.clientHeight}}}}]);function LE({isEnabled:e,scope:t,getScrollTop:n,getViewportHeight:r,isContentScrollable:i,lengthThreshold:a,scheduleScrollCheck:o}){let s=!e,c=!1,l=n(),u=!1,d=!1,f=!1;return{destroy:_,onLoadStarted:h,onScroll:m,resetThresholdIfNeeded:g,schedulePostRenderCheck:x,shouldLoadMore:p};function p({remaining:t,isRequestResolved:n}){return!e||!n?!1:v()||y(t)}function m(e){b(e)&&(s=!0)}function h(){s=!e,c=!v()}function g(e){e>r()&&(c=!1)}function _(){u=!0}function v(){return e&&!f&&!i()}function y(e){return s&&e<a&&!c}function b(t){let r=n(),i=r>l;return l=r,e&&t.isTrusted&&i}function x(){d||(d=!0,t.$evalAsync(function(){requestAnimationFrame(function(){requestAnimationFrame(S)})}))}function S(){if(d=!1,!u){if(i()){f=!0,c=!1;return}f||o()}}}angular.module(`bandlab.common`).directive(`input`,function(){return{require:[`?ngModel`],restrict:`EA`,priority:100,link:{pre:function(e,t,n,r){r[0]&&(t.on(`focus`,function(){r[0].$focused=!0,e.$applyAsync()}),t.on(`blur`,function(){r[0].$focused=!1,e.$applyAsync()}))}}}}),angular.module(`bandlab.common`).directive(`inputNumber`,function(){return{require:`ngModel`,link:function(e,t,n,r){t.on(`keydown`,function(e){if(n.allowTabNavigation!==`true`||e.code!==`Tab`&&e.key!==`Tab`){if(e.code===`Enter`||e.code===`Space`)return t[0].blur();e.code!==`Backspace`&&e.code!==`Delete`&&!/^\d$/.test(e.key)&&!/^Arrow/.test(e.key)&&e.preventDefault()}}),t.bind(`blur`,function(){this.value=this.value.normalize(`NFKC`),this.value===``||isNaN(this.value)?(this.value=parseInt(n.min),r.$setViewValue(this.value),r.$render()):(this.value=Math.min(this.value,n.max),this.value=Math.max(this.value,n.min))}),r.$parsers.push(function(e){return e=String(e).normalize(`NFKC`),e=isNaN(e)?n.min:e,e=Math.max(e,n.min),e=Math.min(e,n.max),e})}}}),angular.module(`bandlab.common`).directive(`like`,[`$analytics`,`$http`,`$rootScope`,`$state`,`appActions`,`Me`,function(e,t,n,r,i,a){return{restrict:`E`,require:`ngModel`,link:function(o,s,c){var l;o.$on(`like`,function(e,t){if(t.id===c.resourceId&&t.commentId===c.commentId){let e=o.$eval(c.ngModel);
102e.counters.likes=t.count,e.isLiked=t.isLiked,a.id===c.postCreatorId&&(e.isLikedByPostCreator=t.isLiked),e.revision&&(e.revision.isLiked=t.isLiked)}}),o.toggleLike=function(){if(!i.checkAllowed(`like`)||l&&l.$$state.status===0)return;let u=o.$eval(c.ngModel);var d=u.isLiked?`delete`:`post`,f=!u.isLiked,p=c.likeEntity,m=c.resourceId,h=c.commentId,g=a.id,_=f?u.counters.likes+1:Math.max(u.counters.likes-1,0);l=t[d](`https://www.bandlab.com/api/v1.3/${p}s/${m}/${h?`comments/${h}/`:``}likes/users/${g}`).catch(function(){n.$broadcast(`like`,{count:f?_-1:_+1,id:m,isLiked:!f,commentId:h})}),n.$broadcast(`like`,{count:_,id:m,isLiked:f,commentId:h}),e.eventTrack(u.isLiked?`Like`:`Unlike`,{category:`Media`,label:og(p),entityId:m,entityCreatorId:u?.creator?.id,commentId:h,extra:{post_type:u.type?.toLowerCase()??u.post?.type?.toLowerCase()??(v(u)?`revision`:void 0),post_visibility:u.state?.toLowerCase()??u.post?.state.toLowerCase(),triggered_from:Ee(r,s),trending_post_type:u.trendingPostType??u.post?.trendingPostType,post_band_id:u.post?.band?.id}}),f&&c.likeEntity===`album`&&(import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:e})=>e(`album_like`,{album_id:c.resourceId})),import(`./BWvciV-z.js`).then(e=>e.t).then(({logEvent:e})=>e(`album_like`,{album_id:c.resourceId})));function v(e){return`volume`in e}}}}}]),angular.module(`bandlab.common`).directive(`loaderIndeterminate`,function(){return{restrict:`E`,replace:!0,templateNamespace:`svg`,template:function(e,t){return`<svg role="img" aria-label="Loadingâ¦" width="${t.size}" height="${t.size}" viewBox="0 0 24 24" fill="none" class="ds-loader-indeterminate"><path fill-rule="evenodd" clip-rule="evenodd" d="M21 12a9 9 0 0 0-9-9V1A11 11 0 1 1 1 12h2a9 9 0 1 0 18 0" fill="currentColor"></path></svg>`}}}).directive(`loaderInfiniteScroll`,function(){return{restrict:`E`,replace:!0,templateNamespace:`svg`,templateUrl:`https://www.bandlab.com/web-app/common/partials/_loader-no-content-1d8981ff8.html`}}).directive(`loaderNoContent`,function(){return{restrict:`E`,replace:!0,templateNamespace:`svg`,templateUrl:`https://www.bandlab.com/web-app/common/partials/_loader-no-content-1d8981ff8.html`}}).directive(`loaderWave`,function(){return{restrict:`E`,replace:!0,template:`<div class="loader loader-wave"><div></div><div></div><div></div><div></div><div></div></div>`}}),angular.module(`bandlab.common`).directive(`lockParentScroll`,function(){return{restrict:`A`,link:function(e,t){t.on(`wheel`,function(e){e.preventDefault(),t[0].scrollTop+=e.deltaY})}}}),angular.module(`bandlab.common`).directive(`logotypeBandlab`,[`$injector`,function(e){return RE(e,import(`./CY10s5IC.js`).then(e=>e.n),40,178)}]).directive(`logotypeBandlabCompact`,[`$injector`,function(e){return RE(e,import(`./C0V_cCBC.js`),32,126)}]).directive(`logotypeBandlabBeatsCompact`,[`$injector`,function(e){return RE(e,import(`./BaFYp7FG.js`),32,190)}]).directive(`logotypeBandlabDistributionCompact`,[`$injector`,function(e){return RE(e,import(`./COasbPVs.js`),32,252)}]).directive(`logotypeBandlabFanReachCompact`,[`$injector`,function(e){return RE(e,import(`./CHM1KPnE.js`),32,240)}]).directive(`logotypeBandlabForEducationCompact`,[`$injector`,function(e){return RE(e,import(`./BBxF_JV7.js`),32,274)}]).directive(`logotypeBandlabFxCompact`,[`$injector`,function(e){return RE(e,import(`./4yBz361-.js`),32,154)}]).directive(`logotypeBandlabMasteringCompact`,[`$injector`,function(e){return RE(e,import(`./BqYgdhHK.js`),32,238)}]).directive(`logotypeBandlabPagesCompact`,[`$injector`,function(e){return RE(e,import(`./pjS-aydu.js`),32,194)}]).directive(`logotypeBandlabSongStarterCompact`,[`$injector`,function(e){return RE(e,import(`./Bn5NcgDg.js`),32,256)}]).directive(`logotypeBandlabSoundsCompact`,[`$injector`,function(e){return RE(e,import(`./CCc3Kq1X.js`).then(e=>e.n),32,208)}]).directive(`logotypeBandlabSplitterCompact`,[`$injector`,function(e){return RE(e,import(`./DAT9_EMJ.js`),32,206)}]);function RE(e,t,n,r){return{restrict:`E`,replace:!0,template:function(e,t){let i=t.height,a=BE(t.height,n,r);return`<svg width=${a} height=${i} viewBox="0 0 ${a} ${i}"></svg>`},link:function(i,a,o){let s=h({monochrome:o.monochrome===`true`,height:+o.height});$(t,a[0],i,{$injector:e},s),o.$observe(`monochrome`,function(e){s.monochrome=e===`true`}),o.$observe(`height`,function(e){s.height=+e;let t=BE(e,n,r);a[0].setAttribute(`width`,t),a[0].setAttribute(`height`,e),a[0].setAttribute(`viewBox`,`0 0 ${t} ${e}`)})}}}function BE(e,t,n){return e/t*n}angular.module(`bandlab.common`).directive(`match`,function(){return{require:`ngModel`,restrict:`A`,scope:{match:`=`},link:function(e,t,n,r){e.$watch(function(){var t=r.$modelValue||r.$$invali
102dModelValue;return!t||e.match===t},function(e){r.$setValidity(`match`,e)})}}});let VE=0;const HE=we(()=>document.querySelector(`body > main`));function UE(){if(--VE)return;let e=HE(),t=Math.abs(parseFloat(e.style.top));e.classList.remove(`no-scroll`),e.style.top=``,window.scrollTo(0,t),document.body.style.overscrollBehaviorY=``}function WE(){let e=we(UE);if(VE++)return e;document.body.classList.contains(`scrolled`)&&document.body.classList.add(`was-scrolled`);let t=HE();return t.style.top=`-${window.scrollY}px`,t.classList.add(`no-scroll`),document.body.style.overscrollBehaviorY=`none`,e}angular.module(`bandlab.common`).directive(`photoCropper`,function(){return{replace:!0,restrict:`E`,template:`<div class="photo-cropper"><div class="photo-cropper-handle"></div></div>`,link:function(e,t,n){var r=t.parent(),i,a,o;n.$observe(`photoSrc`,function(e){if(e){var t=new Image;t.src=e,t.onload=function(){a=t.height,o=t.width,c()}}});function s(){var r,s;e.ratio===1?a<o?(r=Math.min(a,Math.ceil(t[0].getBoundingClientRect().height*i)),s=r*e.ratio):(s=Math.min(o,Math.ceil(t[0].getBoundingClientRect().width*i)),r=s*e.ratio):(r=Math.min(a,Math.ceil(t[0].getBoundingClientRect().height*i)),s=Math.min(o,Math.ceil(t[0].getBoundingClientRect().width*i))),e.$emit(`photoCropperInfo`,{src:n.photoSrc,x:Math.max(0,parseInt(parseInt(getComputedStyle(t[0]).left)*i)),y:Math.max(0,parseInt(parseInt(getComputedStyle(t[0]).top)*i)),height:r,width:s,zoom:i}),e.$applyAsync()}function c(){var c=Math.min(r[0].getBoundingClientRect().width,o),l=a*c/o,u,d,f,p,m,h;e.ratio=parseFloat(n.ratio),isNaN(e.ratio)&&(e.ratio=null),i=o/c,u=(e.minWidth||n.minWidth)/i,d=u/e.ratio,e.ratio<c/l?(p=l,f=l*e.ratio):e.ratio>c/l?(f=c,p=c/e.ratio):(p=Math.min(c,l),f=Math.min(c,l)),m=(c-f)/2,h=(l-p)/2,t.css(`min-height`,`${d}px`),t.css(`min-width`,`${u}px`),t.css(`left`,`${m}px`),t.css(`top`,`${h}px`),t.css(`height`,`${p}px`),t.css(`width`,`${f}px`);let g=o!==e.minWidth||a!==Math.round(e.minWidth/e.ratio);t.css(`visibility`,g?``:`hidden`),s()}(function(){var e,n,i,a,o,c,u,d;t.on(`mousedown touchstart`,function(e){e.stopPropagation(),f(e)});function f(s){WE(),t.addClass(`moving`);let f=r[0].getBoundingClientRect(),h=t[0].getBoundingClientRect();c=f.left-h.left,o=f.right-h.right,u=f.bottom-h.bottom,d=f.top-h.top,i=h.left-f.left,a=h.top-f.top,{screenX:n,screenY:e}=l(s),angular.element(window).on(`mousemove touchmove`,p),angular.element(window).on(`mouseup touchend`,m)}function p(r){let{screenX:s,screenY:f}=l(r),p=Math.min(o,Math.max(s-n,c)),m=Math.min(u,Math.max(f-e,d));t.css(`left`,`${i+p}px`),t.css(`top`,`${a+m}px`),r.preventDefault()}function m(){t.removeClass(`moving`),angular.element(window).off(`mousemove touchmove`,p),angular.element(window).off(`mouseup touchend`,m),s(),UE()}})(),(function(){var n,i,a,o,c=angular.element(t[0].querySelector(`.photo-cropper-handle`)),u,d,f,p;c.on(`mousedown touchstart`,function(e){e.stopPropagation(),m(e)});function m(s){WE(),{screenX:n,screenY:i}=l(s),p=parseInt(t.css(`min-width`)),f=parseInt(t.css(`min-height`));let c=r[0].getBoundingClientRect();u=c.height-parseInt(t.css(`top`)),d=c.width-parseInt(t.css(`left`)),e.ratio===1?(u=Math.min(u,d),d=Math.min(u,d)):(u=Math.min(u,d/e.ratio),d=Math.min(d,u*e.ratio)),t.addClass(`resizing`),t.css(`max-height`,`${u}px`),t.css(`max-width`,`${d}px`);let m=t[0].getBoundingClientRect();a=m.width,o=m.height,angular.element(window).on(`mousemove touchmove`,h),angular.element(window).on(`mouseup touchend`,g)}function h(r){r.preventDefault();let{screenX:s,screenY:c}=l(r),m=s-n,h=c-i,g=o+h,_=e.ratio?g*e.ratio:a+m;t.css(`width`,`${Math.max(p,Math.min(_,d))}px`),t.css(`height`,`${Math.max(f,Math.min(g,u))}px`)}function g(){t.removeClass(`resizing`),angular.element(window).off(`mousemove touchmove`,h),angular.element(window).off(`mouseup touchend`,g),s(),UE()}})();function l(e){return e.touches?e.touches[0]:e}}}}),angular.module(`bandlab.common`).directive(`pictureModal`,[`Modal`,function(e){return{restrict:`A`,scope:{picture:`=pictureModal`},link:function(t,n){n.on(`click`,function(){new e({template:`<div><img src="${t.picture}" alt="" width="600"></div>`}).show()})}}}]),angular.module(`bandlab.common`).directive(`pictureUpload`,[`$injector`,`$rootScope`,`authService`,`FileHelper`,`Identity`,`Me`,function(e,t,n,r,i,a){let o;return{restrict:`C`,controller:[`$scope`,function(e){e.maxHeight=6e3,e.maxWidth=6e3,e.maxImageSize=10}],link:function(n,i,s){var c=window.File&&window.FileReader&&window.FileList&&window.Blob,l=angular.element(i[0].querySelector(`.picture-upload-drop-area`));n.ratio=isNaN(s.ratio)?1:parseFloat(s.ratio),n.uploadButton=n.$eval(s.uploadButton)!==!1,n.minWidth=isNaN(s.minWidth)?120:parseInt(s.minWidth),n.minHeight=n.minWidth&&n.ratio?Math.ceil(n.minWidth/n.ratio):120;let{availableFeaturesSet:u}=qn(n,a,e=>{n.membership=e});n.availableFeaturesSet=u,n.openPaywall=function({productAttribution:e,productAttributionGroup:t}){ai({productAttribution:e,productAttributionGroup:t,useCheckoutModal:!0})},s.$observe(`hidePhotoCropper`,function(e){n.hidePhotoCropper=e===`true`}),s.$observe(`hidePictureUploadActions`,function(e){n.hidePictureUploadActions=e===`true`});function d(e){e.preventDefault(),e.stopPropagation(),l.addClass(`drag-over`)}function f(e){e.preventDefault(),e.stopPropagation(),l.removeClass(`drag-over`)}function p(e){e.stopPropagation(),e.preventDefault(),l.addClass(`drag-over`)}function m(e){let t=Qe(e,`dataTransfer.files`,[]);if(e.preventDefault(),e.stopPropagation(),l.removeClass(`drag-over`),t.length)return g(t[0])}function h(n,r){let i={id:n.id,pictureId:r.id,pictureUrl:r.url};switch(n.entity){case`bands`:case`classrooms`:return e.get(`Band`).update(i).$promise.then(function(e){return t.$broadcast(`$band:changed`,{action:`picture`,data:e})});
102case`bandBackgrounds`:return e.get(`Band`).update({id:n.id,backgroundPictureId:r.id,backgroundPictureColor:r.color}).$promise.then(function(e){return ea({bandId:n.id}),t.$broadcast(`$band:changed`,{action:`backgroundPicture`,data:e})});case`users`:{let r=e.get(`User`),o=e.get(`AppNotifications`);return n.action===`replace`?r.replaceProfilePicture({userId:i.id,pictureId:n.picture},{newPictureId:i.pictureId}).$promise.then(()=>{Sa(n.triggeredFrom,n.numPictures),t.$broadcast(`$user:changed`,{action:`profilePicture`,data:i})}).catch(()=>{o.addNotification({title:`Unable to upload the file`,classList:`alert`,autoclose:5e3})}):r.postProfilePicture({userId:i.id},{pictureId:i.pictureId}).$promise.then(()=>{Sa(n.triggeredFrom,n.numPictures),a.ftue.setPicture||(a.ftue.setPicture=!0),t.$broadcast(`$user:changed`,{action:`profilePicture`,data:i})}).catch(()=>{o.addNotification({title:`Unable to upload the file`,classList:`alert`,autoclose:5e3})})}case`userBackgrounds`:{let n=e.get(`User`),a=e.get(`AppNotifications`);return n.updateUserBackgroundPicture({userId:i.id,backgroundPictureId:r.id}).$promise.then(function(){xa(),t.$broadcast(`$user:changed`,{action:`backgroundPicture`,data:i})}).catch(()=>{a.addNotification({title:`Unable to upload the file`,classList:`alert`,autoclose:5e3})})}case`songs`:return e.get(`Song`).update(i).$promise.then(function(e){return t.$broadcast(`$song:changed`,{action:`picture`,data:e})})}switch(n.entity){case`communities`:return e.get(`Community`).update(i).$promise.then(function(e){return t.$broadcast(`$community:changed`,{action:`picture`,data:e})});case`collections`:return e.get(`Collection`).update(i).$promise;case`albums`:return e.get(`Album`).picture(i).$promise.then(function(e){t.$broadcast(`$albumPicture:changed`,{data:e})});case`themes`:{let i=e.get(`Album`),a=JSON.parse(n.albumTheme);return a.images[n.albumProperty]=r.url,n.albumProperty===`header`&&(a.isHeaderHidden=!1),i.updateTheme({id:n.id,...a}).$promise.then(function(){t.$broadcast(`$albumPicture:changed`,{data:{picture:r,property:n.albumProperty}})})}case`tracks`:return e.get(`Album`).pictureTrack(i).$promise.then(function(e){t.$broadcast(`$trackPicture:changed`,{data:e})});case`distroReleases`:return e.get(`Release`).picture({userId:a.id,releaseId:i.id,pictureId:i.pictureId}).$promise.then(function(e){Ki(!1),t.$broadcast(`$releasePicture:changed`,{data:r,res:e})}).catch(e=>{t.$broadcast(`$releasePicture:errored`,{err:e})})}}function g(e,{rotate:r=0}={}){return n.isLoading=!0,n.error=``,Rr(e).then(function(e){return Ir(e,n.maxImageSize)}).then(function(e){return Er(e,{minWidth:n.minWidth,minHeight:n.minHeight,maxWidth:n.maxWidth,maxHeight:n.maxHeight,rotate:r%360})}).then(function(e){n.setImageSrc(e.image.src),o=e.file,n.upscaled=!1,t.$broadcast(`$uploaderPicture:changed`,{result:e})}).catch(function(e){n.error=e.message,s.entity===`distroReleases`&&e.code&&(e.code===`IMAGE_FILE_TOO_SMALL`?t.$broadcast(`distroCoverArtSizeError`,`exceeded_minimum`):e.code===`IMAGE_FILE_TOO_BIG`&&t.$broadcast(`distroCoverArtSizeError`,`exceeded_maximum`))}).finally(function(){n.isLoading=!1,n.$applyAsync()})}n.selectFile=function(){pr({accept:`accept/*`}).then(function([e]){return g(e)})},n.rotateImage=function(e){g(o,{rotate:e})},n.removePicture=function(){n.imageSrc=``},n.setImageSrc=function(e){n.imageSrc=e},n.getDropDimensions=function(){return 140*n.ratio>320?{height:`${320/n.ratio}px`,width:`320px`}:140*n.ratio<140?{height:`${140/n.ratio}`,width:`140px`}:{height:`140px`,width:`${140*n.ratio}px`}},n.$on(`photoCropperInfo`,function(e,t){t.src===n.imageSrc&&(n.cropOps=t)}),n.upscaleImage=function(){var i=`https://storage.bandlab.com/v1.3/images/${s.entity}`;let c=e.get(`AppNotifications`);n.isLoading=!0,r.upload(o,i,{params:{x:n.cropOps?.x,y:n.cropOps?.y,width:n.cropOps?.width,height:n.cropOps?.height}}).then(function({data:r}){return s.id&&s.entity===`distroReleases`?e.get(`Release`).picture({releaseId:s.id,userId:a.id,pictureId:r.id,tryUpscale:!0}).$promise.then(function(e){n.imageSrc=e.upscaledPicture.url,n.upscaleAttemptsLeft=e.upscaleAttemptsLeft,n.upscaledPicture=e.upscaledPicture,n.distroCoverArtRes=e,n.upscaled=!0,Ki(!0),t.$broadcast(`pictureUpscaleSuccess`)}):Promise.resolve()}).catch(e=>{e.data.errorCode===429&&(n.upscaleAttemptsLeft=0,n.upscaled=!0),c.addNotification({title:e?.data?.message||`Something went wrong, please try again later`,autoclose:8e3,classList:`alert`})}).finally(function(){n.isLoading=!1})},n.updateUpscaledPicture=function(){n.removePicture(),t.$broadcast(`$releasePicture:changed`,{data:n.upscaledPicture,res:n.distroCoverArtRes}),t.$broadcast(`pictureUploadSuccess`,`close`)},n.uploadImage=function(){var e=`https://storage.bandlab.com/v1.3/images/${s.entity}`;n.isLoading=!0,r.upload(o,e,{params:{x:n.cropOps.x,y:n.cropOps.y,width:n.cropOps.width,height:n.cropOps.height}}).then(function({data:e}){return s.entity&&s.id?h(s,e):Promise.resolve()}).then(function(){n.removePicture(),t.$broadcast(`pictureUploadSuccess`,`close`)}).finally(function(){n.isLoading=!1})},c&&(l.on(`dragenter`,d),l.on(`dragleave`,f),l.on(`dragover`,p),l.on(`drop`,m)),n.file&&g(n.file)},templateUrl:`https://www.bandlab.com/web-app/common/partials/_picture-upload-e77470132.html`}}]),angular.module(`bandlab.common`).directive(`profilePopover`,[`$animate`,`$compile`,`$injector`,`$q`,`$rootScope`,`$templateRequest`,`$timeout`,function(e,t,n,r,i,a,o){return{restrict:`A`,scope:{profilePopoverData:`<`,profilePopoverType:`@`,profilePopoverCssClass:`@`,profilePopoverTriggeredFrom:`@`},link:function(s,c,l){if(bn||!s.profilePopoverType||c[0].closest(`.popover`))return;var u,d,f,p,m,h,g=s.profilePopoverType,_=C(g),v=angular.noop,y=Fa(O,400),b=ze();function x(n,r){u=document.getElementById(b),u&&u.remove(),p=i.$new(),p[g.toLowerCase()]=r,p.triggeredFrom=s.profilePopoverTriggeredFrom,u=angular.element(`<div class="popover popover-${g.toLowerCase()} ${s.profilePopoverCssClass||``} animate" id="${b}"><div class="popover-placeholder"></div>${_}</div>`),t(u)(p),u.on(`mouseleave`,E),u.on(`mouseover`,function(){y.cancel()}),window.addEventListener(`scroll`,D),T(function(){if(!u)return;angular.element(document.body).append(u),p.$digest();let t=u[0].querySelector(`.popover-content`),n=c[0].getBoundingClientRect(),r=-t.offsetHeight+n.top,i=t.offsetWidth+n.right;r>0?(u[0].classList.add(`above`),u[0].style.top=`${n.top-t.scrollHeight}px`):(u[0].classList.add(`below`),u[0].style.top=`${n.bottom}px`),i>window.innerWidth?(u[0].classList.add(`rtl`),u[0].style.left=`${n.right-t.scrollWidth+12}px`):(u[0].classList.add(`ltr`),u[0].style.left=`${n.left-12}px`),e.enter(u,document.body,document.body.lastChild)})}
102function S(){if(!h||m!==l.profilePopoverId){var e=n.get(g).get({id:l.profilePopoverId}).$promise;return e.then(function(e){m=l.profilePopoverId,h=e,g===`User`&&(v(),v=s.$on(`$user:relationChanged`,function(e,t){t.user.id===l.profilePopoverId&&(h=null,v())}))}),e}return r.resolve(h)}function C(e){switch(e){case`User`:return`<user-profile-popover user="::user" triggered-from="::triggeredFrom"></user-profile-popover>`;case`Comment`:return`<comment-popover comment="::comment.comment" revision="::comment.revision"></comment-popover>`}}function w(e){switch(e){case`User`:return a(`https://www.bandlab.com/web-app/user/partials/_user-tile-fb0f75f2c.html`);case`Comment`:return a(`https://www.bandlab.com/web-app/comment/partials/_comment-cbc95bfae.html`);default:return Promise.resolve()}}function T(e){setTimeout(function(){setTimeout(function(){setTimeout(function(){o(e)},0)},0)},0)}s.$on(`$destroy`,D),d=Fa(function(e){if(f=!1,y.cancel(),g===`Comment`){x(e,s.profilePopoverData);return}Promise.all([S(),w(g)]).then(function([t]){f||x(e,t)})},400,g===`Comment`?{leading:!0,trailing:!1}:null),c.on(`mouseover`,d),c.on(`mouseleave`,E);function E(){d.cancel(),f=!0,y()}function D(){d.cancel(),f=!0,O()}function O(){window.removeEventListener(`scroll`,D),u&&(e.leave(u).then(function(){p.$destroy()}),u=null,p.$applyAsync())}}}}]),angular.module(`bandlab.common`).directive(`progress`,function(){return{link:function(e,t,n){var r=e.$eval(n.progressOnStart),i=e.$eval(n.progressOnShiftMove),a=e.$eval(n.progressOnMove),o=e.$eval(n.progressOnEnd),s=n.progress!==`vertical`,c={},l=[],u,d;t[0].addEventListener(`mousedown`,g,!1),t[0].addEventListener(`touchstart`,_,!1);function f(n){let i=t[0].getBoundingClientRect();c={left:i.left,width:i.width,top:i.top,height:i.height},angular.isFunction(r)&&(s?(u=l[0]-c.left,r(u/c.width,u,n)):(u=l[1]-c.top,r(1-u/c.height,u,n)),e.$applyAsync())}function p(t,n){angular.isFunction(a)&&(s?(u=Math.max(t-c.left,0),u=Math.min(u,c.width),a(u/c.width,u,l[1]-n,l[0]-t,t)):(u=Math.max(n-c.top,0),u=Math.min(u,c.height),a(1-u/c.height,l[1]-n)),e.$applyAsync())}function m(t,n){angular.isFunction(i)&&(i(s?t-c.left:n-c.top),e.$applyAsync())}function h(){angular.isFunction(o)&&(s?(u=Math.max(l[0]-c.left,0),u=Math.min(u,c.width),o(u/c.width,u)):o(1-u/c.height),e.$applyAsync()),l=[]}function g(e){e.which===1&&(l=[e.clientX,e.clientY,e.shiftKey],f(e),document.addEventListener(`mousemove`,v,!1),document.addEventListener(`mouseup`,b,!0))}function _(e){e.which!==0||e.touches.length>1||(d=0,l=[e.touches[0].clientX,e.touches[0].clientY],f(e),document.addEventListener(`touchmove`,y,{passive:!1}),document.addEventListener(`touchend`,x,!1),document.addEventListener(`touchcancel`,x,!1))}function v(e){e.preventDefault(),e.shiftKey!==l[2]&&i&&(c.left+=e.clientX-l[0],c.top+=e.clientY-l[1],l=[e.clientX,e.clientY,e.shiftKey]),e.shiftKey&&i?m(e.clientX,e.clientY):p(e.clientX,e.clientY)}function y(e){s&&Math.abs(e.touches[0].clientY-l[1])>22||(d>10&&e.preventDefault(),d++,p(e.touches[0].clientX,e.touches[0].clientY))}function b(e){e.stopPropagation(),document.removeEventListener(`mousemove`,v),document.removeEventListener(`mouseup`,b,!0),h()}function x(){document.removeEventListener(`touchmove`,y),document.removeEventListener(`touchend`,x),h()}}}}),angular.module(`bandlab.common`).directive(`richText`,[`$analytics`,`$state`,`appActions`,`Player`,function(e,t,n,r){return{scope:{post:`=`,richText:`=`,revision:`=`,ignoreUrls:`<`},link:function(i,a,o){if(a.append(s(i.richText)),a.on(`click`,function(t){if(t.target.nodeName===`TIME`){var a=t.target.innerHTML.split(`:`),o=a[0]*60,s=parseInt(o,10)+parseInt(a[1],10);r.goToTimeAndPlay(i.revision,s,i.post),e.eventTrack(`Time Marker Click`,{category:`Revision`,label:i.richText===i.revision.description?`Description Link`:`Comment Body Link`})}else t.target.closest(`[hashtag]`)&&!n.checkAllowed(`search`)&&t.preventDefault()}),o.richText.charAt(0)===`:`&&o.richText.charAt(1)===`:`)return;i.$watch(`richText`,function(){a.empty(),a.append(s(i.richText))});function s(e){return Os(e).map(n).join(``);function n(e){let n=Ds(e.value);
102return`url`in e&&!i.ignoreUrls?`<a href=${e.url} target="_blank">${n}</a>`:`username`in e?`<a href="${t.href(`user.feed`,{username:e.username})}">${n}</a>`:`hashtag`in e?`<a hashtag href="${t.href(`search.results`,{q:e.hashtag,filter:`posts`,reveal:null})}">${n}</a>`:`timestamp`in e&&i.revision&&i.revision.id?`<time>${n}</time>`:n}}}}}]),angular.module(`bandlab.common`).directive(`scrollDivider`,function(){return{restrict:`A`,link:function(e,t){let n=document.createElement(`div`);n.className=`scroll-top-child`;let r=document.createElement(`div`);r.className=`scroll-bottom-child`;let i=t[0];i.appendChild(n),i.appendChild(r);let a=new IntersectionObserver(function(e){i.classList.toggle(`scroll-divider-top`,!e[0].isIntersecting)},{threshold:1}),o=new IntersectionObserver(function(e){i.classList.toggle(`scroll-divider-bottom`,!e[0].isIntersecting)},{threshold:1});a.observe(n),o.observe(r),e.$on(`$destroy`,function(){a.unobserve(n),o.unobserve(r)})}}}),angular.module(`bandlab.common`).directive(`scrollingTabNav`,function(){return{restrict:`A`,transclude:!0,templateUrl:`https://www.bandlab.com/web-app/common/partials/_scrolling-tab-nav-e5ca7bbde.html`,link:function(e,t,n){let r=t[0],i=t[0].children[0],a=i.children,o=t[0].children[1],s=t[0].children[2];e.scrollingTabNavClass=n.scrollingTabNavClass??`tab-nav`;let c=!1;function l(e){let t=[];for(let n=0;n<=e;n++)t.push(n/e);return t}let u={root:r,rootMargin:`0px`,threshold:l(10)},d=new Map,f=new IntersectionObserver(function(e){for(let t of e){let e=d.get(t.target);e.intersectionRatio=t.intersectionRatio}d.get(a[0]).intersectionRatio===1?o.classList.remove(`is-visible`):o.classList.add(`is-visible`),d.get(a[a.length-1]).intersectionRatio>.9?s.classList.remove(`is-visible`):s.classList.add(`is-visible`)},u);function p(){this.scrollIntoView({behavior:`smooth`,container:`nearest`,inline:`center`})}function m(e){let t=e.offsetLeft-parseInt(getComputedStyle(r).paddingLeft);c?c=!1:t-=parseInt(getComputedStyle(o).width),i.scrollTo({left:t,behavior:`smooth`})}e.scrollLeft=function(){let e=-1,t=-1;for(let n of d.values()){if(e+=1,n.intersectionRatio===0&&t>0){--e;break}if(n.intersectionRatio===1)break;t=n.intersectionRatio}e===1&&(c=!0),m(a[e-1])},e.scrollRight=function(){let e=-1,t=-1;for(let n of d.values()){if(e+=1,n.intersectionRatio===0&&t>0){--e;break}if(n.intersectionRatio===1)break;t=n.intersectionRatio}m(a[e+1])},e.$watch(()=>a.length,()=>{d.clear(),f.disconnect();for(let e of a)d.set(e,{intersectionRatio:-1}),f.observe(e),e.removeEventListener(`click`,p),e.addEventListener(`click`,p),e.classList.contains(`active`)&&m(e)})}}}),angular.module(`bandlab.common`).directive(`sideNav`,[`$compile`,`$state`,`$transitions`,`$window`,function(e,t,n,r){return{restrict:`A`,link:function(i,a){let o=n.onFinish({},u),s,c;function l(e){let t=a[0].querySelector(`.ds-side-nav [href="${e}"]`);t&&t.click(),setTimeout(()=>{p()},200)}function u(e){c.sideNavItemUrl=t.href(e.to(),e.params()),c.$applyAsync()}function d(){return[...a[0].querySelectorAll(`.ds-side-nav-item-link:not([exclude-from-side-nav-select])`),...a[0].querySelectorAll(`.ds-side-nav-subnav-item-link:not([exclude-from-side-nav-select])`)].map(function(e){return{value:e.getAttribute(`href`),label:e.innerText}})}function f(){s&&s.length&&(c.$destroy(),s.remove()),c=i.$new(!0),c.followLink=l,c.sideNavItemUrl=r.location.pathname+r.location.search,p(),s=angular.element(`<div class="side-nav-select"> 103 <div class="select select-height-40"> 104 <select ng-model="sideNavItemUrl" ng-change="followLink(sideNavItemUrl)"> 105 <option 106 ng-repeat="opt in options" 107 ng-disabled="!opt.value" 108 value="{{opt.value}}"> 109 {{opt.label}} 110 </option> 111 </select> 112 </div> 113 </div>`),a.parent().append(s),e(s)(c),c.$on(`$destroy`,function(){o()})}function p(){c.options=d()}setTimeout(f,100)}}}]),angular.module(`bandlab.common`).directive(`slugify`,function(){return{require:`ngModel`,restrict:`A`,link:function(e,t,n,r){r.$parsers.push(function(e){var t=e.replace(/[^a-z0-9]+/gi,`-`);return t!==e&&(r.$setViewValue(t),r.$render()),t})}}}),angular.module(`bandlab.common`).component(`stepsForm`,{bindings:{steps:`=`,stepNumber:`=`,goToStep:`&`,submitButtonDisabled:`=`,isSubmitting:`=`,hasValidationError:`=`,hasUploadingTrack:`=`,hasUploadError:`=`,hasRejectionError:`=`,pendingValidation:`=`,isTrial
113User:`=`},transclude:{trialBanner:`?distributionTrialBanner`,stepsContent:`?stepsFormStepContent`,coverArtExampleButton:`?coverArtExampleButton`,distributionReleaseBadge:`?distributionReleaseBadge`},templateUrl:`https://www.bandlab.com/web-app/common/partials/_steps-form-3ff37f304.html`,controller:[`$scope`,function(e){let t=this,n={back:`back`,next:`next`};t.$onInit=r;function r(){e.currentStep=t.stepNumber&&t.stepNumber>0?t.steps[t.stepNumber-1]:t.steps[0]}e.$watch(`vm.stepNumber`,function(){r()}),e.loadingButton=null,e.isBackButtonLoading=function(){return e.loadingButton===n.back},e.isNextButtonLoading=function(){return t.isSubmitting||e.loadingButton===n.next};function i(n,r){if(!(e.isBackButtonLoading()||e.isNextButtonLoading()))return e.loadingButton=r,Promise.resolve().then(function(){return t.goToStep()(n)}).finally(function(){e.loadingButton=null,e.$applyAsync()})}e.back=function(){return i(t.stepNumber-1,n.back)},e.next=function(){return i(t.stepNumber+1,n.next)}}],controllerAs:`vm`}),angular.module(`bandlab.common`).directive(`playStoreButton`,function(){return{replace:!0,restrict:`E`,template:`<div></div>`,scope:{link:`@?`},link:function(e,t){let n={href:e.link};$(import(`./C0xvO813.js`).then(e=>e.n),t[0],e,{},n)}}}).directive(`appStoreButton`,function(){return{replace:!0,restrict:`E`,template:`<div></div>`,scope:{link:`@?`},link:function(e,t){let n={href:e.link};$(import(`./COsHcaaC.js`).then(e=>e.n),t[0],e,{},n)}}}),angular.module(`bandlab.common`).directive(`switch`,function(){return{restrict:`E`,replace:!0,require:`ngModel`,scope:{label:`@`,switchOff:`<`,switchOn:`<`,switchDisabled:`<`},template:` 114 <span class="switch-container" ng-click="toggle()" ng-disabled="switchDisabled"> 115 <div class="switch {{ isChecked ? 'on' : '' }}"> 116 <input type="checkbox" class="visually-hidden" ng-model="isChecked" ng-disabled="switchDisabled"> 117 </div> 118 <span class="switch-label">{{ ::label }}</span> 119 </span> 120 `,link:function(e,t,n,r){r.$formatters.unshift(function(t){return e.isChecked=t===e.switchOn||t!==e.switchOff&&t===!0,t}),e.toggle=function(){n.disabled||(e.isChecked=!e.isChecked,e.isChecked&&e.switchOn?r.$setViewValue(e.switchOn):!e.isChecked&&e.switchOff?r.$setViewValue(e.switchOff):r.$setViewValue(e.isChecked))}}}}),angular.module(`bandlab.common`).directive(`tooltip`,[`$injector`,function(e){return{restrict:`E`,transclude:{tooltipTrigger:`tooltipTrigger`,tooltipContent:`tooltipContent`},scope:{isLabel:`=`,shouldOpen:`=`,open:`=?`,initiallyOpened:`=`,shouldCloseOnClick:`=`,tooltipId:`@`,tooltipClass:`=`,placement:`@`,offset:`=`,teleported:`=`,teleportedTo:`=`},link:function(t,n,r,i,a){n.attr(`style`,`display: contents;`),t.tooltipContent=a(()=>{},null,`tooltipContent`)[0],t.tooltipTrigger=a(()=>{},null,`tooltipTrigger`).children()[0];let o=h({isLabel:t.isLabel,shouldOpen:t.shouldOpen,open:t.open,"onUpdate:open":function(e){t.open=e,t.$applyAsync()},initiallyOpened:t.initiallyOpened,shouldCloseOnClick:t.shouldCloseOnClick,tooltipId:t.tooltipId,tooltipClass:t.tooltipClass,placement:t.placement,offset:t.offset,teleported:t.teleported,teleportedTo:t.teleportedTo,tooltipContent:t.tooltipContent,tooltipTrigger:t.tooltipTrigger});$(import(`./Ct-MMH7f.js`),n[0],t,{$injector:e},o),t.$watch(function(e){o.isLabel=e.isLabel,o.shouldOpen=e.shouldOpen,o.open=e.open,o.initiallyOpened=e.initiallyOpened,o.shouldCloseOnClick=e.shouldCloseOnClick,o.tooltipId=e.tooltipId,o.tooltipClass=e.tooltipClass,o.placement=e.placement,o.offset=e.offset,o.teleported=e.teleported,o.teleportedTo=e.teleportedTo})}}}]),angular.module(`bandlab.common`).directive(`checkbox`,function(){return{restrict:`E`,replace:!0,require:`ngModel`,scope:{label:`@`,isDisabled:`=?`,isPartial:`=?`,value:`=ngModel`},transclude:!0,template:` 121 <div class="checkbox-container"> 122 <div class="ds-checkbox" ng-class="{ 'is-disabled': isDisabled }"> 123 <input ng-attr-id="{{ ::checkboxId }}" type="checkbox" class="ds-checkbox-input" ng-model="value" ng-disabled="isDisabled"> 124 <icon-svg ng-if="!isPartial && value" name="checkmark-checkbox" size="16" class="ds-checkbox-svg"></icon-svg> 125 <icon-svg ng-if="isPartial && value" name="dash" size="16" class="ds-checkbox-svg"></icon-svg> 126 </div> 127 <label ng-attr-for="{{ ::checkboxId }}" class="checkbox-label"> 128 <ng-transclude>{{ ::label }}</ng-transclude> 129 </label> 130 </div> 131 `,link:function(e){e.checkboxId=ze()}}}),angular.module(`bandlab.common`).component(`textTruncate`,{bindings:{maxCharacters:`<`,maxWords:`<`,maxLines:`<`,text:`<`},transclude:!0,templateUrl:`https://www.bandlab.com/web-app/common/partials/_text-truncate-37911d695.html`,controllerAs:`vm`,controller:[`$filter`,function(e){let t=this;t.truncatedText=``,t.isTruncated=!0,t.$onInit=n,t.$onChanges=n;function n(){t.truncatedText=e(`textTruncate`)({content:t.text},t.maxCharacters,t.maxWords,t.maxLines)}}]}),angular.module(`bandlab.common`).directive(`fieldErrorUsername`,function(){return{restrict:`E`,scope:{form:`=`},replace:!0,templateUrl:`https://www.bandlab.com/web-app/common/partials/_field-error-username-b321a4736.html`}}),angular.module(`bandlab.common`).directive(`usernamize`,function(){return{require:`ngModel`,restrict:`A`,link:function(e,t,n,r){r.$parsers.push(function(e){var t=e.replace(/[^a-z0-9]+/gi,`_`).toLowerCase();return t!==e&&(r.$setViewValue(t),r.$render()),t})}}}),angular.module(`bandlab.common`).directive(`viewOverlay`,[`$state`,`$window`,function(e,t){return{restrict:`C`,link:function(n,r){n.closeOverlay=function(t){(t.target.classList.contains(`view-overlay`)||t.currentTarget.classList.contains(`ds-close-button`))&&r[0].classList.contains(`is-active`)&&e.go(`^`)};function i(t){[`INPUT`,`TEXTAREA`].indexOf(t.target.nodeName)!==-1&&t.target.type!==`file`||e.current.name.includes(`.tree`)||r.hasClass(`is-active`)&&t.keyCode===27&&e.go(`^`)}
131t.addEventListener(`keyup`,i),n.$on(`$destroy`,function(){t.removeEventListener(`keyup`,i)})}}}]),angular.module(`bandlab.common`).filter(`bigNumber`,function(){return wi}),angular.module(`bandlab.common`).filter(`domainName`,function(){return(e=``)=>{try{return new URL(e).hostname.replace(/^www\./,``)}catch{return e}}}),angular.module(`bandlab.common`).filter(`fullDate`,function(){return function(e,t){if(e)return xi(e,t)}}).filter(`mediumDate`,function(){return function(e){if(e)return vi(e)}}).filter(`dateOnly`,function(){return Ei}).filter(`dateWithYear`,function(){return function(e,t){if(e)return Ci(e,t)}}).filter(`shortMonthDate`,function(){return function(e){if(e)return yi(e)}}).filter(`timeOnly`,function(){return ki}).filter(`timeAgo`,function(){return Oi}).filter(`yearOnly`,function(){return hi}),angular.module(`bandlab.common`).filter(`localizeRole`,function(){return function(e){return{Admin:`Admin`,Owner:`Owner`,Member:`Member`,Collaborator:`Collaborator`}[e]}}),angular.module(`bandlab.common`).filter(`location`,function(){return e;function e(e){return Ti(e)}}),angular.module(`bandlab.common`).directive(`ngPluralizeHtml`,[`$interpolate`,`$locale`,function(e,t){var n=/{}/g,r=/^when(Minus)?(.+)$/;return{restrict:`EA`,link:function(i,a,o){var s=o.count,c=o.$attr.when&&a.attr(o.$attr.when),l=o.offset||0,u=i.$eval(c)||{},d={},f=`${e.startSymbol()}${s}-${l}${e.endSymbol()}`,p=angular.noop,m;angular.forEach(o,function(e,t){let n=r.exec(t);if(n){let e=`${n[1]?`-`:``}${n[2].toLowerCase()}`;u[e]=a.attr(o.$attr[t])}}),angular.forEach(u,function(t,r){d[r]=e(t.replace(n,f))}),i.$watch(s,function(e){let n=parseFloat(e),r=isNaN(n);if(!r&&!(n in u)&&(n=t.pluralCat(n-l)),n!==m&&!(r&&isNaN(m))){p();let e=d[n];angular.isUndefined(e)?(p=angular.noop,h()):p=i.$watch(e,h),m=n}});function h(e){a.html(e||``)}}}}]),angular.module(`bandlab.common`).filter(`textTruncate`,[`$state`,function(e){return function(t,n=250,r=50,i=4){let a=20,o=a*5;e.includes(`post`)&&(n=1e3,r=200,i*=2,a*=2,o*=2),e.includes(`fanReachFanCollector`)&&(a=0,o=0);let s=t.content||``,c=s.split(` 132`),l=s.split(` `);if(l.length<=r+a&&c.length<=i&&s.length<=n+o&&(t.truncate=!1),t.truncate===!1)return s;t.truncate=!0,l=l.slice(0,r),c=l.join(` `).split(` 133`),c=c.slice(0,i);let u=!!Intl.Segmenter,d=u?GE(c.join(` 134`),n):c.join(` 135`).substring(0,n).trim(),f=u?d:d.replace(/[\uD800-\uDBFF]([^\uD800-\uDBFF]*)$/,``);return`${f}${f.endsWith(`.`)?`..`:`...`}`}}]);function GE(e,t){return[...new Intl.Segmenter().segment(e)].map(({segment:e})=>e).slice(0,t).join(``)}KE.$inject=[`$rootScope`],qE.$inject=[`$rootScope`],ZE.$inject=[`$injector`,`$transitions`],YE.$inject=[`Modal`],XE.$inject=[`Modal`],JE.$inject=[`$animate`,`$compile`,`$q`,`$rootScope`,`$templateRequest`,`$timeout`,`$transitions`],angular.module(`bandlab.common`).directive(`zfClose`,KE).directive(`zfModal`,qE).directive(`modalGroup`,ZE).factory(`Modal`,JE).factory(`ConfirmModal`,YE).factory(`MessageModal`,XE);function KE(e){return{restrict:`A`,link:t};function t(t,n,r){var i=``,a;r.zfClose&&r.zfClose!==`allowDefault`?i=r.zfClose:(a=n[0].closest(`[zf-closable]`),a?i=a.getAttribute(`id`):n.remove()),n.on(`click`,function(t){e.$broadcast(i,`close`),r.zfClose!==`allowDefault`&&t.preventDefault()})}}function qE(e){return{restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/common/modal/modal-66f0f5604.html`,transclude:!0,scope:!0,replace:!0,link:t};function t(t,n,r){t.hideOverlay=function(){`overlayClose`in r&&e.$broadcast(r.id,`close`)},`escapeClose`in r&&(n.attr(`tabindex`,`0`),t.hideOverlayWithKey=t.hideOverlay)}}function JE(e,t,n,r,i,a,o){return function(s){var c=s.id||ze(),l=r.$new(),u=s.templateUrl?i(s.templateUrl):s.template,d=i(`https://www.bandlab.com/web-app/common/modal/modal-66f0f5604.html`),f=s.noStateChangeListeners?angular.noop:o.onEnter({},y),p=s.noStateChangeListeners?angular.noop:o.onBefore({from:`updateBrowser`},y),m=angular.noop,h;return Object.assign(l,s.contentScope),l.cancel=function(){y(),angular.isFunction(s.onCancel)&&s.onCancel()},l.confirm=function(e){y(),angular.isFunction(s.onConfirm)&&s.onConfirm(e)},l.$on(c,function(e,t){t===`close`&&l.cancel()}),{destroy:y,show:g};function g(){return angular.isFunction(s.onBeforeCreate)&&s.onBeforeCreate(),n.all([d,u]).then(function([,n]){h=v(n),t(h)(l),_(function(){m=WE(),angular.isFunction(s.onCreate)&&s.onCreate(h),e.enter(h,document.body,document.body.lastChild).then(function(){angular.isFunction(s.onAfterCreate)&&s.onAfterCreate(h),h[0].focus(),s.toFocusConfirm?h[0].querySelector(`.modal-confirm`)?.focus():h[0].querySelector(`.modal-cancel`)?h[0].querySelector(`.modal-cancel`).focus():h[0].querySelectorAll(`[autofocus]`).forEach(function(e){e.focus()})})})})}function _(e){setTimeout(function(){setTimeout(function(){setTimeout(function(){a(e)})})})}function v(e){if(!document.getElementById(c)){var t=`<zf-modal class="modal-overlay" id="${c}">${e}</zf-modal>`;return t=angular.element(t),s.overlayClose!==!1&&t.attr(`overlay-close`,!0),s.escapeClose!==!1&&t.attr(`escape-close`,!0),s.class&&s.class.split(` `).forEach(function(e){t.addClass(e)}),s.confirmLabel&&(t[0].querySelector(`.modal-confirm .ds-button-text`).innerHTML=s.confirmLabel),s.cancelLabel&&(t[0].querySelector(`.modal-cancel .ds-button-text`).innerHTML=s.cancelLabel),t}}function y({animation:t=!0}={}){angular.isFunction(s.onBeforeDestroy)&&s.onBeforeDestroy(),f(),p(),h&&a(function(){m(),angular.isFunction(s.onDestroy)&&s.onDestroy(),l.$destroy(),t||e.enabled(h,!1),e.leave(h)})}}}function YE(e){return function(t){return t.templateUrl=`https://www.bandlab.com/web-app/common/modal/confirm-modal-2aa86b48a.html`,t.escapeClose=!0,new e(t)}}function XE(e){return function(t){return t.templateUrl=`https://www.bandlab.com/web-app/common/modal/message-modal-07b25b351.html`,t.escapeClose=!0,new e(t)}}function ZE(e,t){return{restrict:`E`,replace:!0,link:function(n,r){let i=$(import(`./DB88MtGa.js`),r[0],n,{$injector:e,$scope:n});Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),i]).then(function([{modals:e},r]){if(!r)return;let i=t.onEnter({},function(){e.value=[]});n.$on(`$destroy`,function(){i()})})}}}r(((e,t)=>{(function(e){var n=e.module(`angular-bind-html-compile`,[]);n.directive(`bindHtmlCompile`,[`$compile`,function(e){return{restrict:`A`,link:function(t,n,r){t.$wat
135ch(function(){return t.$eval(r.bindHtmlCompile)},function(i){n.html(i&&i.toString());var a=t;r.bindHtmlScope&&(a=t.$eval(r.bindHtmlScope)),e(n.contents())(a)})}}}]),t!==void 0&&t.exports&&(t.exports=n.name)})(window.angular)}))(),QE.$inject=[`$rootScope`],$E.$inject=[`$sce`,`$timeout`],eD.$inject=[`$compile`,`$rootScope`],angular.module(`bandlab.common.notification`,[`angular-bind-html-compile`]).directive(`zfNotificationSet`,QE).directive(`zfNotification`,$E).factory(`NotificationFactory`,eD).factory(`AppNotifications`,[`NotificationFactory`,function(e){return new e({})}]).directive(`privacyBanner`,function(){return{restrict:`E`,template:`<div style="display: contents;"></div>`,scope:{withRecaptcha:`=?`},link:function(e,t){import(`./BWvciV-z.js`).then(e=>e.d).then(function({setupPrivacyConsent:n}){return n(t[0],e.withRecaptcha)}).then(function(){t.remove()})}}});function QE(e){return{restrict:`E`,template:` 136 <div class="notification-container"> 137 <zf-notification 138 ng-repeat="notification in vm.notifications track by notification.id" 139 autoclose="notification.autoclose" 140 class="animate notification" 141 class-list="notification.classList" 142 action="notification.action" 143 inner-scope="notification.innerScope" 144 icon="notification.icon" 145 image="notification.image" 146 on-dismiss="notification.onDismiss" 147 on-hide="notification.onHide" 148 max-visible-notifications="notification.maxVisibleNotifcations" 149 notif-id="notification.id" 150 data-title="notification.title"> 151 <notification-content bind-html-compile="notification.content"></notification-content> 152 <notification-action bind-html-compile="notification.action"></notification-action> 153 </zf-notification> 154 <project-uploader></project-uploader> 155 </div> 156 `,replace:!0,controllerAs:`vm`,controller:t,link:n};function t(){let e=this;e.notifications=[],e.addNotification=function(t){t.id?e.removeNotification(t.id):t.id=ze(),e.notifications.push(t),e.notifications.length>=t.maxVisibleNotifications&&e.notifications.splice(0,e.notifications.length-t.maxVisibleNotifications)},e.removeNotification=function(t){ja(e.notifications,{id:t})},e.clearAll=function(){e.notifications=[]}}function n(t,n,r,i){var a=e.$on(r.id,function(e,n,r){n===`clearall`?i.clearAll():n===`removenotification`?(i.removeNotification(r),t.$applyAsync()):(i.addNotification(r),t.$applyAsync())});t.$on(`$destroy`,a)}}function $E(e,t){return{restrict:`E`,template:` 157 <div class="ds-alert ds-alert-placement-overlay ds-alert-extended-false" ng-class="{ user: classList === 'user', [getPresetClass()]: true }"> 158 <div ng-if="image || getIcon()" class="ds-alert-left-detail"> 159 <div class="notification-image" ng-if="image"><img ng-srcset="{{ image }}"/></div> 160 <icon-svg 161 ng-if="getIcon()" 162 role="presentation" 163 ng-attr-name="{{ getIcon() }}" 164 ng-class="{ 'notification-icon-loading-spinner': classList.includes('loading') }" 165 class="ds-alert-left-detail-icon" 166 size="24" 167 ></icon-svg> 168 </div> 169 <div class="ds-alert-content notification-content"> 170 <div class="ds-alert-content-text notification-content-text"> 171 <h2 ng-bind-html="trustedTitle" ng-if="trustedTitle" class="typography-body-default-medium"></h2> 172 <p ng-transclude="content" class="typography-body-compact-regular"></p> 173 </div> 174 <div class="ds-alert-actions" ng-if="action" ng-transclude="action" ng-click="handleActionClick($event)"></div> 175 </div> 176 <div class="ds-alert-right-detail"> 177 <button type="button" aria-label="Close" class="angularjs-ds-alert-close-button" ng-click="hide(); onDismiss(); $event.stopPropagation()"><icon-svg name="x" size="16" class="ds-icon-action-icon"></icon-svg></button> 178 </div> 179 </div> 180 `,replace:!0,transclude:{action:`notificationAction`,content:`notificationContent`},require:`^zfNotificationSet`,scope:{action:`=?`,autoclose:`=?`,classList:`=?`,content:`=?`,icon:`=?`,image:`=?`,innerScope:`=?`,onDismiss:`=?`,onHide:`=?`,maxVisibleNotifications:`=?`,notifId:`=`,title:`=?`},link:n};function n(n,r,i,a){n.handleActionClick=function(e){e.currentTarget!==e.target&&(n.hide(),n.onDismiss?.())},n.hide=function(){a.removeNotification(n.notifId),n.onHide&&n.onHide()},i.title&&n.$watch(`title`,function(t){t&&(n.trustedTitle=e.trustAsHtml(t))}),n.$watch(`autoclose`,e=>{e&&s()}),n.getIcon=function(){let e=n.classList||``;return n.icon||e.includes(`warning`)&&`warning`||e.includes(`alert`)&&`error`||e.includes(`success`)&&`checkmark`||e.includes(`info`)&&`info`||e.includes(`loading`)&&`loading`},n.getPresetClass=function(){let e=n.classList||``;return e.includes(`warning`)&&`ds-alert-preset-warning`||e.includes(`alert`)&&`ds-alert-preset-error`||e.includes(`success`)&&`ds-alert-preset-success`||e.includes(`info`)&&`ds-alert-preset-info`||``};let o=!1;r.on(`mouseleave`,function(){o=!1}
180),r.on(`mouseenter`,function(){o=!0});function s(){t(function(){o?s():n.hide()},parseInt(n.autoclose))}}}function eD(e,t){return function(){var n=ze(),r=angular.element(`<zf-notification-set></zf-notification-set>`),i=t.$new();return r.attr(`id`,n),e(r)(i),angular.element(document.body).append(r),{addNotification:a,clearAll:o,destroy:s,escapeContent:c,removeNotification:l};function a(e){t.$broadcast(n,`addnotification`,e)}function o(){t.$broadcast(n,`clearall`)}function s(){o(),setTimeout(function(){i.$destroy(),r.remove()})}function c(e){return`<span ng-non-bindable>${Lw(String(e??``))}</span>`}function l(e){t.$broadcast(n,`removenotification`,e)}}}angular.module(`bandlab.common`).factory(`appActions`,[`$state`,`authService`,`Me`,function(e,t,n){let r=`addToCollection.bandJoinRequest.bandRequestInvite.beatsPromoCampaign.beatsPurchases.beatsFavorites.blockUser.boost.checkout.comment.favoriteSounds.follow.fork.joinCommunity.like.getMembership.reportContent.search.shareOnBandLab.submitToOpportunity.talkTo.upload.download.useDistribution.useFanReach.usePages.useSongStarter.useSplitter.getPromote.savePreset.votePoll`.split(`.`),i={bandInvite:()=>n?.permissions?.canInvite,bandRequestInvite:()=>n?.permissions?.canInvite,comment:()=>n?.permissions?.canComment,communityInvite:()=>n?.permissions?.canInvite,projectInvite:()=>n?.permissions?.canInvite,talkTo:()=>n?.permissions?.canCreateConversations};return{checkAllowed:a,checkStateCompatibility:o};function a(a,{toState:o=e.current.name,toParams:s=e.params}={},{title:c,description:u,onCancel:d,redirectState:f}={}){return r.indexOf(a)!==-1&&!l()?(t.setAfterAuthState({toState:o,toParams:s}),t.displayAuthModal({title:c,description:u,onCancel:d,redirectState:f}),!1):i[a]&&!i[a]()?(Me(n,`account_validation_settings`).then(e=>{let r=e.payload?.extra_requirements?.includes(`birthday`),i=e.payload?.extra_requirements?.includes(`age_limit`);r&&!n.birthday?t.displayUnvalidatedProfileError(a):r&&i&&n.age<e.payload.age_limit?t.displayUnderAgeLimitError(a):t.displayConfirmationEmailError(a)}),!1):!0}function o(e){if(angular.isFunction(e.isCompatible))return e.isCompatible()}}]),angular.module(`bandlab.common`).factory(`FileHelper`,[`$http`,`$rootScope`,function(e,t){return{upload:n};function n(n,r,i){var a=new FormData,o=angular.extend({transformRequest:angular.identity,headers:{"Content-Type":void 0}},i);return Array.isArray(n)?n.forEach(function(e){a.append(`file`,e)}):a.append(`file`,n),e.post(r,a,o).then(function(e){return t.$broadcast(`$file:uploadSuccess`,e.data),e}).catch(function(e){throw t.$broadcast(`$file:uploadFailed`),e})}}]),angular.module(`bandlab.common`).factory(`Page`,[`$state`,`$stateParams`,`$transitions`,function(e,t,n){let r=document.createElement(`meta`);r.name=`twitter:player`;let i=document.createElement(`meta`);i.name=`twitter:player:width`,i.content=`480`;let a=document.createElement(`meta`);a.name=`twitter:player:height`,a.content=`202`;let s={metadata:{},slug:`loading`},c={title:document.querySelector(`meta[property="og:title"]`)?.getAttribute(`content`)||document.title,description:document.querySelector(`meta[name="description"]`).getAttribute(`content`),image:document.querySelector(`meta[property="og:image"]`).getAttribute(`content`),type:document.querySelector(`meta[property="og:type"]`).getAttribute(`content`),twitterCard:document.querySelector(`meta[name="twitter:card"]`).getAttribute(`content`)};return n.onSuccess({},function(e){d(e.to(),e.params())}),{clearMetadata:l,setMetadata:u,update:d};function l(){s.metadata={}}function u(e){s.metadata=e}function d(t,n){t||=e.current,n||=e.params,t.abstract||(f(t),p(t),m(t,n))}function f(e){let t=`state-${s.slug}`;s.slug=e.name.replace(/\./g,`-`).toLowerCase(),document.body.classList.remove(t),document.body.classList.add(`state-${s.slug}`)}function p(e){if(Sg.removeEventListener(`change`,Cg),e.data?.forcedTheme)document.body.setAttribute(`data-theme`,e.data.forcedTheme);else{let e=Y.getItem(`appTheme`);switch(e){case`dark`:case`light`:document.body.setAttribute(`data-theme`,e);break;case`system`:Sg.matches?document.body.setAttribute(`data-theme`,`dark`):document.body.setAttribute(`data-theme`,`light`),Sg.addEventListener(`change`,Cg);break;default:document.body.setAttribute(`data-theme`,``)}}}function m(t,n){var r=h(t);let i=t.name.replace(/^userMusic\..*/,`user`).replace(/^user\..*/,`user`).replace(/^band\..*/,`band`),a=e.href(i,n,{absolute:!0});Tg(r.title);let s=document.querySelector(`.tab-bar-title`);s&&(s.textContent=r.tapBarTitle||r.title),Og(r.description),Ag(r.image,r.type),jg(a),r.player?(_(r),Mg(`player`)):(v(),Mg(r.twitterCard)),Pg(),r.hreflang&&Ng(a),o()&&document.querySelector(`meta[name="viewport"]`).setAttribute(`content`,`width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, viewport-fit=cover`)}function h(e){var n={...c},r=e.name.split(`.`)[0];switch(s.metadata.image&&(n.image=s.metadata.image),n.tapBarTitle=s.metadata.tapBarTitle||``,r){case`ai`:n.title=`BandLab AI Tools | Powerful Tools for Amplified Creation`,n.description=`No more creative block. Our AI music production tools are your creative co-pilot, making workflows seamless while helping you realize your unique vision.`,n.image=`https://www.bandlab.com/web-app/images/open-graph-ai-31c093ea60.jpg`;break;case`beats`:case`beatslanding`:n.title=`BandLab Beats | Craft Your Next Hit`,n.description=`Need high-quality, original beats to rap to or sing over? Explore BandLab Beats â a diverse selection of beats for sale, right within the mobile app.`,n.image=`https://www.bandlab.com/web-app/images/open-graph-beats-115d06a3e8.png`;break;case`boost`:n.title=`BandLab | Boost`;break;case`explore`:n.title=s.metadata.title||`Discover`,n.hreflang=!0;break;case`fanReachCreate`:n.title=`Create campaign`;break;case`promoteOverview`:n.title=`Campaign Details`;break;case`feed`:n.title=`Feed`;break;case`warning`:n.title=`Account Warning`;break;case`userAlbum`:case`band`:case`collection`:case`community`:case`post`:case`song`:case`track`:case`user`:case`userMusic`:case`userStreaks`:n.type=`object`,n.title=s.metadata.title,n.description=s.metadata.description?s.metadata.description:``,n.player=s.metadata.player||``;break;case`mixEditor`:n.title=`Studio`,s.metadata.title&&(n.title=`${s.metadata.title} - `.concat(n.title));break;case`landing`:n.hreflang=!0;break;case`login`:n.title=`BandLab | Log in`,n.hreflang=!0;break;case`signUp`:n.title=`Sign up for BandLab`,n.hreflang=!0;break;case`notifications`:n.title=`Notifications`;break;case`library`:n.title=`Library`;break;case`playbackhistory`:n.title=`Playback History`;break;case`dashboard`:switch(e.name){case`dashboard.distribution.list`:n.title=o()?`Distribution`:`Artist Services`;break;case`dashboard.distribution.earnings`:n.title=`My Earnings`;break;case`dashboard.fanReach.sent`:case`dashboard.fanReach.drafts`:n.title=o()?`Fan Reach`:`Artist Services`;break;case`dashboard.fanReach.myFans`:n.title=`Fans`;break;case`dashboard.fanReach.settings`:n.title=`Settings`;break;case`dashboard.promote.list`:n.title=o()?`Boost`:`Artist Services`;break;case`dashboard.pages`:n.title=o()&&(t.path===`bio`||t.path===`revision`)?``:`Pages`;break;default:n.title=`Artist Services`}break;case`dashboardPagesPreview`:n.title=o()?`Page Preview`:`Artist Services`;break;case`search`:n.title=t.q?`${t.q} | BandLab Search`:`Search in BandLab`;break;case`features`:n.title=`BandLab | FREE Online DAW & Award-Winning Features`,n.hreflang=!0;break;case`albums`:n.title=`BandLab | Introducing Albums`,n.description=`Albums are an excellent way to make a creative statement. Publish yours in three easy steps and make a name for yourself today!`,n.hreflang=!0;break;case`download`:case`unavailable`:n.title=`Download BandLab for your device`,n.description=`Get the BandLab app on your mobile phone.`;break;
180case`mastering`:n.title=`BandLab | FREE Instant Online Audio Mastering`,n.description=`Free Algorithmic Mastering by BandLab`,n.image=`https://www.bandlab.com/web-app/images/open-graph-mastering-5d917a6157.png`,n.hreflang=!0;break;case`quickUpload`:case`quickUpload2`:n.title=`BandLab | Upload`;break;case`report`:n.title=`Send Feedback`;break;case`reportEntity`:case`reportGeneral`:n.title=`Report`;break;case`distribution`:n.title=`BandLab | Distribution`,n.description=`Distribute your music to all major music platforms. Keep 100% of your earnings and rights.`,n.image=`https://www.bandlab.com/web-app/images/open-graph-distribution-91db0fa994.png`;break;case`songStarter`:n.title=`BandLab SongStarter | Generate royalty-free music`,n.description=`SongStarter is a free AI-powered idea generator that acts as your starting point to create new music â all in one easy-to-use interface.`;break;case`opportunities`:case`opportunitiesLandingPage`:n.title=`BandLab | Opportunities`,n.description=`Get your foot in the door by applying for opportunities that match your sound and goals.`;break;case`opportunitiesSubmission`:n.title=s.metadata.title||`BandLab | Opportunities`,n.description=s.metadata.description||`Get your foot in the door by applying for opportunities that match your sound and goals.`;break;case`fx`:n.title=`BandLab | Craft your unique sound with ease`,n.description=`Sound like your favorite artist with AutoPitch, give depth to your beats with Studio Reverb or dial in vintage tones with Valve Screamer.`;break;case`splitter`:n.title=`Splitter | Free Vocal Remover Tool`,n.description=`Want to remove vocals from a song or create a backing track? Try Splitter now, our free audio separation tool that splits your song into high-quality stems.`;break;case`sounds`:n.title=s.metadata.title||`BandLab Sounds: Royalty-Free Music, Loops & Samples`,n.description=s.metadata.description||`Create your next hit with 100,000+ royaltyâfree music samples including free vocal samples, dynamic drum samples, guitar loops, free drum kits, and more.`;break;case`industryConnect`:n.title=`Industry Connect`;break;case`getVerified`:n.title=`BandLab Verified`;break;case`playground`:n.title=s.slug??`Playground`;break;default:g(e,n)}return n}function g(e,t){switch(e.name){case`checkout.complete`:t.title=`Order Complete`;break;case`checkout.summary`:t.title=`Order summary`;break;case`checkout.payment`:t.title=`Checkout`;break;case`settings.profile`:t.title=`Profile`;break;case`settings.account`:t.title=`Account`;break;case`settings.membership`:t.title=`Membership`;break;case`settings.payments`:t.title=`Payments`;break;case`settings.linkedAccounts`:t.title=`Linked Accounts`;break;case`settings.notifications`:t.title=`Notifications`;break;case`settings.security`:t.title=`Security`;break;case`settings.privacy`:t.title=`Privacy`;break;case`settings.apps`:t.title=`Authorized OAuth Apps`;break;case`settings.language`:t.title=`Language`}}function _({player:e}){r.content=e,document.head.append(r),document.head.append(i),document.head.append(a)}function v(){r.remove(),i.remove(),a.remove()}}]),angular.module(`bandlab.common`).factory(`Place`,[`$resource`,function(e){return e(`https://www.bandlab.com/api/v1.3/places`,{},{query:{method:`GET`,isArray:!0,params:{type:`cities`}}})}]),angular.module(`bandlab.common`).factory(`Tag`,[`$http`,`Me`,function(e,t){return{getDefaultGenre:n,getGenres:r,getSkills:i,getPreferredGenres:o};function n(){return a().then(function({defaultGenreId:e,genres:t}){return t.find(t=>t.id===e)})}function r(){return a().then(function({genres:e}){return e.forEach(function(e){e.iconName={rock:`genre-rock`,pop:`genre-pop`,"hip-hop":`genre-hiphop`,"r-n-b":`genre-rnb`,electronic:`genre-electronic`,jazz:`genre-jazz`,folk:`genre-folk`,latin:`genre-latin`,funk:`genre-funk`,blues:`genre-blues`,classical:`genre-classical`,metal:`genre-metal`,reggae:`genre-reggae`,punk:`genre-punk`,country:`genre-country`,"christian-and-gospel":`genre-gospel`,"k-pop":`genre-kpop`,"progressive-rock":`genre-rock-progressive`,afro:`genre-afro`,house:`genre-house`,"dance-and-edm":`genre-edm`,trap:`genre-trap`,lofi:`genre-lofi`,dancehall:`genre-dancehall`,"baile-funk":`genre-baile-funk`,"desi-trap":`genre-desi-trap`,other:`genre-other`}[e.id]}),e})}function i(){return a().then(function({skills:e}){return e.forEach(function(e){e.iconName={guitarist:`headstock-guitar`,keyboardist:`audio-keys`,vocalist:`device-microphone`,songwriter
180:`artist-songwriter`,"bass-player":`headstock-bass`,"1-fan":`artist-fan`,drummer:`instrument-drum-rim`,"dj-beatmaker":`artist-beatmaker`,other:`genre-other`}[e.id]}),e})}function a(){return e({url:`https://www.bandlab.com/api/v1.3/labels`,method:`GET`,cache:!0}).then(function(e){return e.data})}function o(){return Promise.all([a(),e.get(`https://www.bandlab.com/api/v1.3/users/${t.id}/genres/preferred`,{cache:!0})]).then(function([{genres:e},{data:{data:t}}]){return t.flatMap(t=>e.find(e=>e.id===t)??[])}).catch(()=>[])}}]),angular.module(`bandlab.common`).factory(`Validation`,[`$http`,`Me`,function(e,t){return{validate:n};function n(n,r,i){var a={};return a[r]=i,n===`user`&&r===`password`?e.get(`https://accounts.bandlab.com/oauth/blacklists/passwords`,{cache:!0}):(t.isAnonymous()||(a.id=t.id),e({url:`https://www.bandlab.com/api/v1.3/validation/${n}`,method:`GET`,params:a}))}}]);function tD(e,{object:t,type:n,callback:r=()=>{},modalComponent:i=J(()=>import(`./WNeg95ee.js`))}){let a=e.get(`$analytics`),s=e.get(`Share`),c={object:t,type:n},l=s.getShareUrl(c);return{openShareModal:u};function u(){if(Sn&&o())return window.open(`intent:#Intent;action=android.intent.action.SEND;type=text/plain;S.android.intent.extra.TEXT=${l};end`,`_blank`);if(typeof navigator.share==`function`&&(bn||hn))return d(c);X(i,{url:l,shareData:c,callback:r}),f(c)}function d(e){return navigator.share({url:l}).then(function(){a.eventTrack(`Web Share API`,{category:`Share`,label:e.type})}).catch(()=>{})}function f(t){let n=e.get(`Me`),r=e.get(`$state`),i=n.id===t.object.id;t.type===`User`&&$i(Ee(r),i)}}function nD(e,{type:t,object:n}){let r=e.get(`Share`),i=e.get(`AppNotifications`),a=O(!1),o=O(l()),s=O(f()),c=O(d());return{copyEmbedCode:u,getEmbedCode:d,getEmbedDimensions:l,embedDimensions:o,isEmbedCodeCopied:a,embedCode:c,embedUrl:s};function l(){switch(t){case`Revision`:return{width:560,height:202};case`Album`:case`Collection`:return{width:560,height:353};default:return{width:560}}}function u(){a.value=!0,dE(c.value),i.addNotification({title:`Copied to clipboard`,classList:`success`,autoclose:1e3}),setTimeout(()=>{a.value=!1},3e3)}function d(){return`<iframe width="${o.value.width}" height="${o.value.height}" src="${s.value}" allowfullscreen></iframe>`}function f(){return{Album:`https://www.bandlab.com/embed/collection/?id=${n.id}`,Collection:`https://www.bandlab.com/embed/collection/?id=${n.id}`,Post:`https://www.bandlab.com/embed/shout/?id=${n.id}`,Track:`https://www.bandlab.com/embed/shout/?id=${n.id}`,Revision:r.getEmbedRevisionUrl({id:n.id})}[t]||``}}async function rD(e,t){let n=t.get(`Me`);if(await ke(n,`publish-to-share-popup`)!==`true`)return;let r=t.get(`$state`),i=Ee(r),a=J(()=>import(`./DhNbLjNC.js`));X(a,{revision:e}),ia(i)}function iD(e,{url:t}){let n=e.get(`Me`),{closeCreatePostModal:r,openCreatePostModal:i}=mf({$injector:e,entity:n,entityType:`user`,injectedCaption:t,injectedLink:t,onRemoveMedia:()=>r(),willResetPost:!1});i()}angular.module(`bandlab.common`).factory(`Share`,[`$analytics`,`$state`,function(e,t){return{getEmbedRevisionUrl:n,getShareUrl:r,withFacebook:a,withReddit:s,withTwitter:o};function n({id:e}){return`https://www.bandlab.com/embed/?id=${e}`}function r(e){if(e)switch(e.type){case`Album`:return t.href(`userAlbum`,{id:e.object.id,username:e.object.creator.username},{absolute:!0});case`Collection`:return t.href(`collection`,{id:e.object.id,username:e.object.creator.username},{absolute:!0});case`Community`:return t.href(`community`,{username:e.object.username},{absolute:!0});case`Post`:case`Track`:return e.object.albumId?t.href(`albumTracks`,{username:e.object.creator.username,id:e.object.albumId,trackId:e.object.id},{absolute:!0}):t.href(`post`,{id:e.object.id},{absolute:!0});case`Revision`:return t.href(`post`,{id:e.object.postId},{absolute:!0});case`fanReach`:return t.href(`fanReachFanCollector`,{username:e.object.username},{absolute:!0});case`User`:return t.href(`user`,{username:e.object.username},{absolute:!0});case`Band`:return t.href(`band`,{username:e.object.username},{absolute:!0})}return window.location.href}function i(t){e.eventTrack(`Share`,{category:`Social`,label:t})}function a(e){return import(`./U3odhO2M.js`).then(function({ui:t}){return t({display:`popup`,method:`share`,href:e})}).then(()=>i(`Facebook`)).catch(angular.noop)}function o(e,t=`BandLab`,n=``){let r=`https://x.com/intent/tweet?`;r+=`url=${encodeURIComponent(e)}`,r+=`&hashtags=${t}`,r+=`&text=${n}`,c(535,360,r),i(`Twitter`)}function s(e,t=``){let n=`https://www.reddit.com/submit?`;n+=`url=${encodeURIComponent(e)}`,n+=`&title=${t}`,c(600,400,n),i(`Reddit`)}
180function c(e,t,n){let r=window.screen.width/2-e/2,i=window.screen.height/2-t/2;window.open(n,``,`toolbar=0, status=0, width=${e}, height=${t}, left=${r}, top=${i}`)}}]).controller(`SNSShareCtrl`,[`$scope`,`Share`,function(e,t){e.shareOnFacebook=function(){t.withFacebook(e.shareUrl)},e.shareOnTwitter=function(){t.withTwitter(e.shareUrl)}}]).controller(`ShareCtrl`,[`$scope`,function(e){e.copiedShareUrl=function(){e.isShareUrlCopied=!0,setTimeout(()=>{e.isShareUrlCopied=!1,e.$applyAsync()},3e3)}}]).directive(`shareModal`,[`$injector`,function(e){return{restrict:`A`,scope:{shareModalCallback:`=`,shareModalObject:`=`,shareModalType:`=`},link:function(t,n){n.on(`click`,()=>{if(t.shareModalType===`User`){let n=J(()=>import(`./BkbgYkph.js`)),{openShareModal:r}=tD(e,{object:t.shareModalObject,type:`User`,modalComponent:n});r();return}if(t.shareModalType===`Band`||t.shareModalType===`Community`){let n=J(()=>import(`./WNeg95ee.js`)),{openShareModal:r}=tD(e,{object:t.shareModalObject,type:t.shareModalType,modalComponent:n});r();return}let n=J(()=>import(`./WNeg95ee.js`)),{openShareModal:r}=tD(e,{object:t.shareModalObject,type:t.shareModalType,callback:t.shareModalCallback,modalComponent:n});r()})}}}]);const aD={class:`modal create-post-modal`},oD={class:`modal-content-medium-640 create-post`},sD={class:`post-card-header`},cD=[`srcset`,`alt`],lD={class:`post-card-header-title user-badge-container`},uD={class:`post-card-header-subtitle`},dD={class:`create-text-post-form-content row-gap-16`},fD={key:1,class:`post-card-attachment-wrapper`},pD={class:`create-text-post-form-submit`};var mD=V({__name:`SharePostModal`,props:{caption:{default:``},post:{},triggeredFrom:{}},emits:[`closeModal`],setup(e,{emit:t}){let n=e,r=t,i=ne(`$injector`),a=i.get(`$compile`),o=i.get(`$rootScope`),s=i.get(`AppNotifications`),c=i.get(`ChatHelper`),l=i.get(`Me`),u=i.get(`Post`),{poll:d,isPollValid:p,addPoll:m}=pf(),{isSubmitting:g,handleSubmit:_}=Ja(),b=z(`attachmentRef`),x=o.$new(),S=h({...n.post,caption:n.caption,pending:!1});T(),N(()=>{x.$destroy()}),re(b,()=>b.value&&E(b.value));let C=_(({caption:e})=>u.createPost({caption:e,id:l.id,entity:`users`,link:S.link,poll:d.value}).$promise.then(function(e){o.$broadcast(`$post:repost`,e),s.addNotification({title:`Post shared to feed`,classList:`success`,autoclose:3e3}),r(`closeModal`)}).catch(function(e){throw e.status!==403&&s.addNotification({title:`Unable to create post`,content:Qe(e,`data.message`),classList:`alert`,autoclose:5e3}),e}));function T(){let e=S.link?.url;e&&!S.attachment&&(S.pending=!0,c.getLinkPreview(e).then(function([e]){e&&(S.link=e.object)}).finally(function(){S.pending=!1}))}function E(e){if(!e||!(e instanceof Element))return;Object.assign(x,{post:S});let t=angular.element(`<post-attachment class="create-post-attachment-preview" post="post"></post-attachment>`);a(t)(x),t[0]&&e.replaceWith(t[0])}return(t,n)=>(F(),G(`div`,aD,[K(`div`,oD,[q(Pa,{onClick:n[0]||=e=>t.$emit(`closeModal`)}),K(`header`,sD,[K(`div`,null,[de((F(),G(`a`,null,[K(`img`,{class:`post-card-avatar`,srcset:`${f(l).picture.url}48x48 1x, ${f(l).picture.url}96x96 2x`,alt:f(l).name,width:`48`,height:`48`},null,8,cD)])),[[f(Ts),{name:`user.feed`,params:{username:f(l).username}}]])]),K(`div`,null,[K(`div`,lD,[de((F(),G(`a`,null,[K(`strong`,null,y(f(l).name),1)])),[[f(Ts),{name:`user.feed`,params:{username:f(l).username}}]]),f(l).isVerified?(F(),ie(gd,{key:0,size:14})):H(``,!0)]),K(`div`,uD,[K(`span`,null,y(`Posting to Feed`),1)])])]),K(`form`,{class:`create-text-post-form`,name:`postForm`,novalidate:``,onSubmit:n[4]||=me((...e)=>f(C)&&f(C)(...e),[`prevent`])},[K(`div`,dD,[q(vf,{modelValue:S.caption,"onUpdate:modelValue":n[1]||=e=>S.caption=e,autofocus:``,required:!!f(d)},null,8,[`modelValue`,`required`]),f(d)?(F(),ie(yf,{key:0,poll:f(d),"onUpdate:poll":n[2]||=e=>w(d)?d.value=e:null},null,8,[`poll`])):H(``,!0),S.link?(F(),G(`div`,fD,[K(`div`,{ref_key:`attachmentRef`,ref:b},null,512)])):H(``,!0)]),K(`div`,pD,[q(Ma,{type:`button`,size:`medium`,color:`transparent`,shape:`circle`,"aria-label":`Add poll`,"is-disabled":!!f(d)||f(g),onClick:n[3]||=t=>f(m)(e.triggeredFrom)},{default:W(({class:e})=>[q(bf,{size:24,class:v(e)},null,8,[`class`])]),_:1},8,[`aria-label`,`is-disabled`]),q(Ue,{type:`submit`,size:`medium`,color:`primary`,"is-disabled":f(g)||S.pending||!f(p),style:{"margin-left":`auto`}},{default:W(()=>[B(y(`Post`),1)]),_:1},8,[`is-disabled`])])],32)])]))}});function hD(e,{caption:t=``,post:n={},triggeredFrom:r=``}){e.get(`appActions`).checkAllowed(`shareOnBandLab`)&&X(mD,{caption:t,post:n,triggeredFrom:r})}angular.module(`bandlab.common`).directive(`sharePostModal`,[`$injector`,`$state`,`Share`,function(e,t,n){return{restrict:`A`,scope:{sharePostModalObject:`=`,sharePostModalType:`=`},link:function(r,i){i.on(`click`,o);let a={};function o(){if(r.sharePostModalObject){let e=n.getShareUrl({object:r.sharePostModalObject,type:r.sharePostModalType});a.attachment={object:r.sharePostModalObject,type:r.sharePostModalType},a.link={url:e}}let o=Ee(t,i);Ji(a.attachment.object,`repost`,o),hD(e,{post:a,triggeredFrom:o})}}}}]),angular.module(`bandlab.community`,[]).directive(`communitiesFeedTabRightColumn`,[`$injector`,function(e){return{link:function(t,n){$(import(`./Dt2CdLP2.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`communityPageProfile`,[`$injector`,function(e){return{link:function(t,n){let r=h({community:t.community});
180t.$watch(()=>t.community,function(e){r.community={...e}},!0),$(import(`./_1aeHA53.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`communityPostCardJoinButton`,[`$injector`,function(e){return{scope:{post:`<`},link:function(t,n){$(import(`./BdGmhFY6.js`).then(e=>e.t),n[0],t,{$injector:e,scope:t},{post:t.post})}}}]),gD.$inject=[`$injector`,`$location`,`$q`,`$scope`,`$state`,`$stateParams`,`$timeout`,`Me`,`PlayerHistory`,`Post`,`theCommunity`];function gD(e,t,n,r,i,a,o,s,c,l,u){"ngInject";var d=null,f,p=!1,m=t.url();c.setCurrentPageContext({contentSource:`community`,loader:h,url:m}),r.loadMore=h,r.me=s,r.onPostCreate=_,a.postId&&fs({$injector:e,id:a.postId}),g().then(h),r.$on(`$post:delete`,function(e,t){ja(r.posts,function(e){return e.id===t.post.id}),r.pinned.length&&ja(r.pinned,function(e){return e.id===t.post.id})}),r.$on(`$user:relationChanged`,function(e,t){t.type===`block`&&(ja(r.posts,function(e){return e.creator.id===t.user.id}),r.pinned.length&&ja(r.pinned,function(e){return e.creator.id===t.user.id}))}),r.$on(`$post:pin`,function(e,{post:t}){MS(r.posts,{id:t.id})&&o(()=>i.reload(`community.feed`),1e3)}),r.$on(`$post:unpin`,function(e,{post:t}){MS(r.pinned,{id:t.id})&&o(()=>i.reload(`community.feed`),1e3)}),r.$on(`$post:attachmentResolved`,function(e,{resolvedPost:t}){if(i.current.name!==`community.feed`||t?.revision?.mixdown?.status!==`Ready`)return;let n=TC([...r.pinned||[],...r.posts||[]]);c.pushQueueSongs(n,m,!0)});function h(){return r.infiniteScrollEnded?n.resolve():(f=f.then(function(e){r.infiniteScrollEnded=p,r.posts=r.posts||[];let t=e.filter(e=>!e.isPinned),n=e.filter(e=>e.isPinned);r.posts=r.posts.concat(t),r.pinned=r.pinned||n;let i=TC([...n,...t]);return c.pushQueueSongs(i,m),g()}),f)}function g(){return p?n.resolve([]):(f=l.fromCommunity({after:d,communityId:u.id,limit:5}).$promise.then(function(e){return d=e.paging.cursors.after,p=!d,e.data}),f)}function _(e){r.posts.unshift(e)}}angular.module(`bandlab.community.routes`,[]).config([`$stateProvider`,function(e){e.state(`community`,{url:`/community/{username:[a-z][0-9a-z_]{1,19}}?{triggeredFrom:string}`,params:{rewriteTracking:function(){return e=>e.replace(/^\/community\/[a-z][0-9a-z_]{1,19}(($|\/).*)/g,`/community$1`)},triggeredFrom:{dynamic:!0,value:null}},abstract:!0,template:`<div ui-view="content"></div>`,resolve:{theCommunity:[`$stateParams`,`Community`,function(e,t){return t.get({id:e.username}).$promise}]},onEnter:[`Page`,`theCommunity`,function(e,t){e.setMetadata({title:`${t.name} | Communities on BandLab`,description:`${t.about?`${t.about} | `:``}${t.name} has ${t.counters.members} member${t.counters.members>1?`s`:``} on BandLab. Check it out today!`,image:`${t.picture.url}360x360`})}],onExit:[`Page`,function(e){e.clearMetadata()}],controller:[`$scope`,`$state`,`$stateParams`,`theCommunity`,function(e,t,n,r){e.community=r,e.$on(`$invite:changed`,function(){e.community.$get({id:e.community.id})}),e.$on(`$community:changed`,function(r,i){i.action===`update`&&n.username!==e.community.username&&t.go(t.current.name,Object.assign(t.params,{username:e.community.username,changed:!0}),{reload:!0})}),e.$on(`$community:left`,function(n,r){e.community.id===r.community.id&&setTimeout(()=>{t.go(`community.feed`,t.params,{reload:!0})},1e3)})}]}).state(`community.feed`,{url:`?postId`,params:{postId:{dynamic:!0,inherit:!1}},views:{content:{controller:gD,templateUrl:`https://www.bandlab.com/web-app/community/views/community-feed-7bbc263bf.html`}},redirectTo:function(e){let t=e.params();if(t.triggeredFrom)return e.injector().getAsync(`theCommunity`).then(function(n){return Bi({isCommunityMember:n.isMember,triggeredFrom:t.triggeredFrom}),{name:e.to(),params:{...t,triggeredFrom:null}}})}}).state(`community.feed.shout`,{url:`/shout?postId`,redirectTo:function(e){let{postId:t}=e.params();return{state:`post`,params:{id:Array.isArray(t)?t[0]:t}}}}).state(`community.edit`,{url:`/edit`,params:{rewriteTracking:function(){return e=>e.replace(/^\/community\/[a-z][0-9a-z_]{1,19}(($|\/).*)/g,`/community$1`)}},redirectTo:function(e){return{state:`community.edit.profile`,params:{username:e.params().username}}},resolve:{canEdit:[`$q`,`theCommunity`,function(e,t){return t.role===`Admin`||t.role===`Owner`?e.resolve(!0):e.reject({status:403})}]},views:{content:{templateUrl:`https://www.bandlab.com/web-app/community/views/manage/community-manage-layout-73e
180004576.html`,controller:[`$scope`,`Me`,function(e,t){e.me=t,e.userRole=e.community.role,e.setUserRole=function(t){e.userRole=t,e.community.role=t}}]}}}).state(`community.edit.profile`,{url:`/profile`,templateUrl:`https://www.bandlab.com/web-app/community/views/manage/community-edit-48d24f005.html`,controller:`CommunityEditCtrl`}).state(`community.edit.members`,{url:`/members`,templateUrl:`https://www.bandlab.com/web-app/community/views/manage/community-members-60d7e1c1c.html`}).state(`community.edit.privacy`,{url:`/privacy`,templateUrl:`https://www.bandlab.com/web-app/community/views/manage/community-privacy-ab9cccbf8.html`,controller:`CommunityEditCtrl`}).state(`community.edit.rules`,{url:`/rules`,template:`<div id="vue"></div>`,resolve:{canEditRules:[`$q`,`theCommunity`,function(e,t){return t.role===`Owner`?e.resolve(!0):e.reject({status:403})}]},controller:[`$element`,`$scope`,`$injector`,`theCommunity`,function(e,t,n,r){$(import(`./B7E5Efo9.js`),e[0].querySelector(`#vue`),t,{$injector:n,$scope:t},{community:r})}]}).state(`communityId`,{url:`/community/{id:[a-zA-Z0-9-_]+}`,redirectTo:function(e){return e.injector().get(`Community`).get({id:e.params().id}).$promise.then(function(e){return{state:`community.feed`,params:{username:e.username}}})}})}]),angular.module(`bandlab.community`).controller(`CommunityCreateCtrl`,[`$analytics`,`$rootScope`,`$scope`,`$state`,`AppNotifications`,`Community`,function(e,t,n,r,i,a){n.community=new a,n.community.type=`Public`,n.$on(`$file:uploadSuccess`,function(e,t){n.community.pictureId=t.id,n.community.picture=t,n.communityForm.$setDirty()}),n.addCommunity=function(){n.community.$save().then(function(n){t.$broadcast(`createCommunityModal`,`close`),t.$broadcast(`$community:changed`,{action:`create`,community:n}),e.eventTrack(`Create Community`,{category:`Community`}),i.addNotification({title:`Community created`,content:`Invite people and share just about anything with them.`,image:`${n.picture.url}48x48 1x, ${n.picture.url}96x96 2x`,action:` 181 <a class="notification-action-text-inline" href="${r.href(`community.edit.members`,{username:n.username})}">Invite Members</a> 182 `,autoclose:5e3})}).catch(function(e){n.communityForm.$setPristine(),e?.data?.errorCode!==202&&i.addNotification({title:`Unable to create community. Check your internet connection and try again.`,content:e.data.message,classList:`alert`,autoclose:8e3})})}}]),angular.module(`bandlab.community`).controller(`CommunityEditCtrl`,[`$analytics`,`$rootScope`,`$scope`,`$state`,`$timeout`,`AppNotifications`,`Community`,`theCommunity`,function(e,t,n,r,i,a,o,s){n.changeError=!1,n.community=angular.copy(s),n.$on(`$community:changed`,function(e,{action:t,data:r}){t===`picture`&&(Object.assign(s.picture,r.picture),Object.assign(n.community.picture,r.picture))}),n.updateCommunity=function(){n.changeError=!1,o.update({...c({name:n.community.name,username:n.community.username,about:n.community.about,type:n.community.type,commentCreateGroup:n.community.commentCreateGroup,postCreateRole:n.community.postCreateRole},s),id:s.id}).$promise.then(function(o){i(function(){Object.assign(s,o),t.$broadcast(`$community:changed`,{action:`update`,community:s})},1e3),n.communityForm.$setPristine(),a.addNotification({title:`Community profile updated`,action:`<a class="notification-action-text-inline" href="${r.href(`community.feed`,{username:o.username})}">Go to Community</a>`,classList:`success`,autoclose:8e3}),e.eventTrack(`Update Community`,{category:`Community`})}).catch(function(e){n.communityForm.$setPristine(),n.changeError=e||!0})};function c(e,t){return Object.entries(e).reduce((e,[n,r])=>(t[n]!==r&&(e[n]=r),e),{})}}]);function _D(e){let t=e.get(`CommunityActions`);return{cancelRequestToJoinCommunity:n};function n(e){return!e.invite||!e.id?Promise.resolve():t.cancelRequestToJoinCommunity(e.id,e.invite.id).then(function(){e.invite=null}).catch(function(t){return(t.status===401||t.status===404)&&(e.invite=null),Promise.reject(t)})}}angular.module(`bandlab.community`).controller(`CommunityJoinCtrl`,[`$injector`,`$scope`,function(e,t){let{cancelRequestToJoinCommunity:n}=_D(e);t.cancelRequestToJoinCommunity=n}]),angular.module(`bandlab.community`).controller(`CommunityLeaveCtrl`,[`$rootScope`,`$scope`,`$state`,`AppNotifications`,`CommunityActions`,function(e,t,n,r,i){t.deleteCommunity=a,t.leaveCommunity=o,t.userRole=t.community.role;function a({isLastMember:e=!1}={}){return i.deleteCommunity(t.community,e).then(function(){n.go(`library.communities`)}).catch(e=>s(e,`Cannot delete community`))}function o(){return t.userRole===`Owner`?X(J(()=>
182import(`./D56fJ6_J.js`)),{manageMembersRoute:{name:`community.edit.members`,params:{username:t.community.username}}}):t.community.counters.members===1?a({isLastMember:!0}):i.leaveCommunity(t.community).then(function(){e.$broadcast(`$community:left`,{community:t.community})}).catch(e=>s(e,`Cannot leave community`))}function s(e,t){e!==`Cancelled`&&r.addNotification({title:t,content:Qe(e,`data.message`)||Qe(e,`message`,`Unknown error`),autoclose:5e3,classList:`alert`})}}]),angular.module(`bandlab.community`).controller(`CommunityManageCtrl`,[`$scope`,`Invite`,`User`,function(e,t,n){e.$on(`$invite:changed`,function(){r()}),r();function r(){t.query({id:e.community.id,entity:`communities`,accepted:!1,limit:50}).$promise.then(function(t){e.pendingInvitedUser=[],e.pendingInvitedExternalUser=[],t.data.forEach(function(t){var r;t.user?(r=new n(t.user),r.invite=t,e.pendingInvitedUser.push(r)):(r=new n({email:t.email}),r.invite=t,e.pendingInvitedExternalUser.push(r))})})}}]),angular.module(`bandlab.community`).controller(`CommunityMembersCtrl`,[`$q`,`$scope`,`CommunityActions`,`Me`,`Role`,`User`,function(e,t,n,r,i,a){t.removeMember=m,t.updateRole=p,t.me=r;var o=20,s=null,c,l=!1;function u(){s=null,c=null,l=!1,t.members=null,t.infiniteScrollEnded=!1,d().then(t.loadMore)}function d(){return l?e.resolve([]):(c=f().then(function({paging:e,data:t}){return s=e.cursors.after,l=!s,t}),c)}t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(c=c.then(function(e){return t.infiniteScrollEnded=l,t.members=t.members||[],t.members=t.members.concat(e),d()}),c)};function f(){return a.fromCommunity({communityId:t.community.id,limit:o,after:s,accepted:!0}).$promise}function p(e,r){if(r===`Owner`){let r=MS(t.members,{role:`Owner`});return n.assignOwnership(t.community,e).then(function(){r.role=`Admin`,t.setUserRole(`Admin`)})}i.setUserRole({communityId:t.community.id,userId:e.id,role:r}).then(function(t){e.role=t.role})}function m(e){n.removeMember(t.community,e).then(function(){ja(t.members,function(t){return t.id===e.id}),--t.community.counters.members}).catch(u)}t.setUserRole=function(e){t.userRole=e,t.community.role=e},t.$on(`$invite:changed`,u),u()}]),angular.module(`bandlab.community`).controller(`CommunityNotificationsCtrl`,[`$scope`,`Me`,`Role`,function(e,t,n){e.setNotifications=r;function r(r=`All`){n.setNotifications({communityId:e.community.id,userId:t.id,settings:{activityNotifications:r,pushNotifications:r}}).then(({activityNotifications:t,pushNotifications:n})=>{e.community.activityNotifications=t,e.community.pushNotifications=n})}}]);const vD=Object.assign({inheritAttrs:!1},{__name:`SelectWithValidation`,props:{id:{type:String,default:null},modelValue:{type:[Number,String,Object,null],default:``},name:{type:String,required:!0},ariaDescribedby:{type:String,default:null},required:{type:Boolean,default:!1},validationRules:{type:Function,required:!0},validationOptions:{type:Object,default:()=>{}}},setup(e){let t=e,{computedAriaDescribedby:n,computedIsInvalid:r,errorMessage:i,errorMessageId:a,handleInputBlur:o,handleInputChange:s,handleInputInput:c,name:l,value:u}=Za({fieldAriaDescribedby:()=>t.ariaDescribedby,fieldId:()=>t.id??`select-${ze()}`,fieldName:()=>t.name,required:()=>t.required,validationOptions:{syncVModel:!0,...t.validationOptions},validationRules:t.validationRules});return(e,d)=>(F(),G(se,null,[q(Xo,j({id:t.id||null,modelValue:f(u),"onUpdate:modelValue":d[0]||=e=>w(u)?u.value=e:null,name:f(l),"aria-describedby":f(n)||null,"aria-invalid":f(r),required:t.required,size:t.size},e.$attrs,{onBlur:d[1]||=()=>f(o)(),onChange:d[2]||=e=>f(s)(e),onInput:d[3]||=e=>f(c)(e)}),oe({default:W(()=>[k(e.$slots,`default`)]),_:2},[e.$slots[`field-icon`]?{name:`field-icon`,fn:W(t=>[k(e.$slots,`field-icon`,C(A(t)))]),key:`0`}:void 0]),1040,[`id`,`modelValue`,`name`,`aria-describedby`,`aria-invalid`,`required`,`size`]),f(r)?(F(),ie(eo,{key:0},{default:W(()=>[q(Qa,{id:f(a)},{default:W(()=>[B(y(f(i)),1)]),_:1},8,[`id`])]),_:1})):H(``,!0)],64))}}),yD={class:`ds-modal ds-modal-size-medium ds-modal-form ds-modal-with-footer`},bD={class:`ds-modal-header`},xD={class:`ds-modal-title`},SD={class:`ds-modal-content row-gap-16`},CD={value:``},wD=[`value`],TD={key:0,class:`post-card-attachment-wrapper`},ED={class:`ds-modal-footer ds-modal-footer-one-button`};var DD=V({__name:`ShareWithCommunityModal`,props:{attachment:{}},emits:[`closeModal`],setup(e,{emit:t}){let n=t,r=e,i=ne(`$injector`),a=i.get(`$analytics`),o=i.get(`$compile`),s=i.get(`$rootScope`),c=i.get(`$state`),l=i.get(`AppNotifications`),u=i.get(`Community`),d=i.get(`ChatHelper`),p=i.get(`Me`),m=i.get(`Post`),g=i.get(`Share`),_=h({attachment:r.attachment,caption:``,link:g.getShareUrl(r.attachment)}),v=z(`attachmentRef`),b=O([]),{isSubmitting:x,handleSubmit:S}=Ja(),C=s.$new();w(),N(()=>{C.$destroy()}),re(v,()=>v.value&&T(v.value));function w(){u.fromUser({userId:p.id,limit:50}).$promise.then(function({data:e}){b.value=e})}function T(e){if(!e)return;Object.assign(C,{post:_});let t=angular.element(`<post-attachment class="create-post-attachment-preview" post="post"></post-attachment>`);o(t)(C),t[0]&&e.replaceWith(t[0])}let E=S(e=>d.getLinkPreview(_.link).then(function([t]){return m.createPost({id:e.community.id,entity:`communities`,caption:e.caption,link:t.object}).$promise.then(()=>{a.eventTrack(`Share with a Community`,{category:`Post`,label:`text`}),l.addNotification({title:`Post shared with ${e.community.name}`,classList:`success`,autoclose:3e3,action:` 183 <a class="notification-action-text-inline" href="${c.href(`community.feed`,{username:e.community.username})}">Go to Community</a> 184 `}),n(`closeModal`)})}));return(e,t)=>(F(),G(`div`,yD,[K(`form`,{name:`form`,novalidate:``,onSubmit:t[1]||=me((...e)=>f(E)&&f(E)(...e),[`prevent`])},[K(`header`,bD,[K(`h2`,xD,y(`Share with a Community`),1)]),K(`div`,SD,[q(Jo,null,{label:W(()=>[q(Yo,{for:`community-select`,"font-weight":`medium`},{default:W(()=>[B(y(`To:`),1)]),_:1})]),field:W(()=>[q(vD,{id:`community-select`,name:`community`,size:`medium`,"use-native-element":``,"validation-rules":e=>f(Ya)(e)?!0:`Required field`,required:``},{default:W(()=>[K(`option`,CD,y(`-- choose a community --`),1),(F(!0),G(se,null,pe(b.value,e=>(F(),G(`option`,{key:e.id,value:e},y(e.name),9,wD))),128))]),_:1},8,[`validation-rules`])]),_:1}),q(vf,{modelValue:_.caption,"onUpdate:modelValue":t[0]||=e=>_.caption=e,autofocus:``},null,8,[`modelValue`]),_.link?(F(),G(`div`,TD,[K(`div`,{ref_key:`attachmentRef`,ref:v},null,512)])):H(``,!0)]),K(`section`,ED,[q(Ue,{type:`submit`,color:`primary`,size:`medium`,"is-disabled":f(x)},{default:W(()=>[B(y(`Send`),1)]),_:1},8,[`is-disabled`])])],32),q(Pa,{onClick:t[2]||=t=>e.$emit(`closeModal`)})]))}});angular.module(`bandlab.community`).controller(`ShareWithCommunityCtrl`,[`$element`,`$scope`,`$state`,`appActions`,function(e,t,n,r){t.openShareWithCommunityModal=i;function i({attachment:t}){r.checkAllowed(`shareOnBandLab`)&&(X(DD,{attachment:t}),Ji(t.object,`community`,Ee(n,e)))}}]),angular.module(`bandlab.community`).component(`communityTile`,{bindings:{community:`=`},transclude:{actions:`?communityTileActions`},templateUrl:`https://www.bandlab.com/web-app/community/partials/_community-tile-f7633a477.html`,controllerAs:`vm`,controller:[`$state`,`User`,function(e,t){let n=this;n.getCommunityMembers=r,n.triggeredFrom=Ee(e);function r(e={}){return t.fromCommunity(Object.assign({communityId:n.community.id,accepted:!0},e)).$promise}}]}),angular.module(`bandlab.community`).factory(`Community`,[`$http`,`$resource`,function(e,t){var n=`https://www.bandlab.com/api/v1.3/communities`;return t(n,{},{delete:{method:`DELETE`,params:{id:`@id`},url:`${n}/:id`},deleteAllRules:{method:`DELETE`,params:{id:`@id`},url:`${n}/:id/rules`},fromUser:{method:`GET`,preservePagination:!0,params:{userId:``,limit:10},url:`https://www.bandlab.com/api/v1.3/users/:userId/communities`},get:{method:`GET`,params:{id:`@id`},url:`${n}/:id`},getActive:{method:`GET`,isArray:!0,params:{userId:``},url:`https://www.bandlab.com/api/v1.3/users/:userId/communities/active`},getRules:{method:`GET`,params:{id:`@id`},url:`${n}/:id/rules`},save:{method:`POST`,url:n,transformResponse:[...e.defaults.transformResponse,OD]},update:{method:`PATCH`,params:{id:`@id`},url:`${n}/:id`},updateRules:{method:`PUT`,params:{id:`@id`},url:`${n}/:id/rules`}})}]);function OD(e,t,n){return n===201&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCommunityCreate:e}){e()}),e}angular.module(`bandlab.community`).factory(`CommunityActions`,[`$analytics`,`$q`,`$rootScope`,`$state`,`$timeout`,`appActions`,`AppNotifications`,`authService`,`Community`,`ConfirmModal`,`Invite`,`Me`,`Role`,function(e,t,n,r,i,a,o,s,c,l,u,d,f){return{assignOwnership:m,cancelRequestToJoinCommunity:h,deleteCommunity:g,joinCommunity:_,leaveCommunity:b,refreshCommunity:p,removeMember:v,requestToJoinCommunity:y};function p(e){if(e.$get)setTimeout(()=>{e.$get({id:e.id})},1e3);else return i(()=>c.get({id:e.id}).$promise,1e3)}function m(e,n){return t(function(t,r){return new l({confirmLabel:`Transfer`,contentScope:{title:`Transfer ownership to ${n.name}?`,message:`<p>Your ownership rights will be given to the selected user.</p>`},onCancel:r,onConfirm:function(){f.setUserRole({communityId:e.id,userId:n.id,role:`Owner`}).then(function(e){n.role=e.role,t(n)}).catch(r)}}).show()})}function h(e,t){return u.remove({communifyId:e,id:t}).$promise}function g(r,i){return t(function(t,a){return new l({confirmLabel:`Delete`,contentScope:{title:`Delete Community`,message:` 185 <div class="text-left"> 186 ${i?`<p>Thereâs no one else in this community. If you leave, it will be deleted.</p>`:``} 187 <p>Deleting a community cannot be undone. By doing so:</p> 188 <ul> 189 <li>You will lose access to the existing community posts.</li> 190 <li>All community members will no longer be in the community.</li> 191 <li>All community members will lose access to the existing community posts.</li> 192 </ul> 193 <p>${`Are you sure you want to delete ${r.name}?`}</p> 194 </div> 195 `},onCancel:()=>a(`Cancelled`),onConfirm:function(){n.$broadcast(`$community:changed`,{action:`mark-deleted`,community:r}),c.delete({id:r.id}).$promise.then(s.refreshMe).then(function(){n.$broadcast(`$community:changed`,{action:`delete`,community:r}),e.eventTrack(`Delete Community`,{category:`Community`}),t(r)}).catch(e=>{n.$broadcast(`$community:changed`,{action:`unmark-deleted`,community:r}),a(e)})}}).show()})}function _(t){if(!a.checkAllowed(`joinCommunity`))return;let n=new u;return n.userIds=[d.id],n.$save({rel:`communities`,id:t.id}).then(function(){e.eventTrack(`Join Community`,{category:`Community`}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCommunityJoin:e}){e({triggeredFrom:Ee(r)})})}).finally(()=>p(t))}function v(e,n){return t(function(t,r){return new l({confirmLabel:`Remove`,contentScope:{title:`Remove Member`,message:`<p>Remove this member from the community?</p>`},onCancel:r,onConfirm:function(){f.removeUserRole({communityId:e.id,userId:n.id}
195).then(t).catch(r)}}).show()})}function y(t){if(!a.checkAllowed(`joinCommunity`))return;let n=new u;return n.userIds=[d.id],n.$save({rel:`communities`,id:t.id}).then(function(){e.eventTrack(`Request to join Community`,{category:`Community`}),o.addNotification({title:`Request sent`,content:`Youâll be notified once itâs approved.`,image:`${t.picture.url}48x48 1x, ${t.picture.url}96x96 2x`,classList:`community`,autoclose:5e3})}).finally(()=>p(t))}function b(r){return t(function(t,i){return new l({confirmLabel:`Leave`,contentScope:{title:`Leave this community?`,message:`<p>You can rejoin it anytime you want.</p>`},onCancel:()=>i(`Cancelled`),onConfirm:function(){n.$broadcast(`$community:changed`,{action:`mark-deleted`,community:r}),f.removeUserRole({communityId:r.id,userId:d.id}).then(function(){e.eventTrack(`Leave Community`,{category:`Community`}),p(r),t(r)}).catch(e=>{n.$broadcast(`$community:changed`,{action:`unmark-deleted`,community:r}),i(e)})}}).show()})}}]),angular.module(`bandlab.common`).controller(`ArtistsCtrl`,[`$scope`,function(e){e.user&&(e.inspiredBy=[...e.user.inspiredBy]),e.updateInspiration=function(t){e.user&&(e.user.inspiredBy=t),angular.isFunction(e.onSubmit)&&e.onSubmit()}}]),angular.module(`bandlab.user`).directive(`addArtistForm`,function(){return{restrict:`E`,replace:!0,transclude:{submit:`?addArtistFormSubmit`,zerocase:`?addArtistFormZeroCase`},scope:{inspiredBy:`=?`,onSubmit:`&?`},templateUrl:`https://www.bandlab.com/web-app/connect/partials/_add-artist-form-09d731c54.html`,controller:[`$rootScope`,`$scope`,function(e,t){let n=this;n.removeUser=r,n.updateInspiration=i,n.artists=t.inspiredBy?t.inspiredBy:[];function r(e){ja(n.artists,e)}function i(){t.onSubmit&&t.onSubmit({artists:n.artists}),e.$broadcast(`artists`,`close`)}}],controllerAs:`vm`}}),angular.module(`bandlab.user`).directive(`selectMultipleArtists`,[`$http`,`$timeout`,function(e,t){return{restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/connect/partials/_select-multiple-artists-b6e40bb1c.html`,scope:{artists:`=`},link:function(n,r){let i=0,a,o;n.inviteUser=``,n.suggestions={artists:[]};let s=Fa(function(r){if(angular.isUndefined(r)||r.length===0){n.suggestions={artists:[]};return}a=e.get(`https://www.bandlab.com/api/v1.3/artists?query=${r}&limit=24`,{retryNumber:3}).then(({data:e})=>(i=0,e.slice(0,5))).catch(function(){if(o===r&&r&&i<3)return t(function(){return s(o)},++i**2*1e3)}),a.then(e=>{if(o!==r&&r)return s(o);let t=n.artists.map(e=>e.id);n.suggestions.artists=Jm(e,e=>!t.includes(e.id))})},500);r[0].closest(`.modal`).addEventListener(`click`,function(e){!e.target.closest(`.select-multiple-users`)&&n.inviteUser&&n.$applyAsync()}),n.setUser=function(e){e.type=`user`,n.artists.push(e),n.inviteUser=``},n.handleKeys=function(e){(e.which===9&&n.inviteUser||e.which===13)&&e.preventDefault()},n.clearSuggestions=function(){n.suggestions={artists:[]}},n.$watch(`inviteUser`,function(){o=n.inviteUser,(!a||Qe(a,`$$state.status`)!==0)&&s(o)})}}}]),angular.module(`bandlab.web`).factory(`Contact`,[`$resource`,`$window`,`Me`,function(e,t,n){var r=`https://www.bandlab.com/api/v1.3/`;let i=e(r,{},{save:{method:`POST`,url:`${r}feedback`,headers:{"X-Client-Id":d.get(`X-Client-Id`),"X-Client-Version":d.get(`X-Client-Version`)},transformRequest:[a,angular.toJson]},report:{method:`POST`,url:`${r}report`,headers:{"X-Client-Id":d.get(`X-Client-Id`),"X-Client-Version":d.get(`X-Client-Version`)},transformRequest:[o,angular.toJson],interceptor:{request:function(e){return e.data.captchaResponse&&(e.headers[`bl-captcha-response`]=e.data.captchaResponse,delete e.data.captchaResponse),e}}}});return function(e){return new i({email:n.email||null,language:t.navigator.userLanguage||t.navigator.language,userAgent:t.navigator.userAgent,...e})};function a(e){return{name:n.name||null,type:`Feedback`,username:n.username||null,debugInfo:t.debugInfo,...e}}function o(e){return{reportType:`Other`,debugInfo:t.debugInfo,...e}}}]);const kD=new Set([`ConnectRequired`,`ReconnectRequired`]);function AD(e){return kD.has(e)}function jD(e){return e===`Payable`}angular.module(`bandlab.web`).config([`$stateProvider`,function(e){e.state(`dashboard`,{url:`/dashboard`,templateUrl:`https://www.bandlab.com/web-app/dashboard/dashboard-layout-93d0efc0a.html`,redirectTo:`dashboard.overview`,data:{hideNavBar:!0}}).state(`dashboard.overview`,{url:`/overview`,params:{rewriteSiteTabBarBack:`feed`},onEnter:[`Page`,function(e){e.setMetadata({tapBarTitle:`Services`})}],onExit:[`Page`,function(e){e.clearMetadata()}],template:`<div id="vue"></div>`,controller:[`$element`,`$http`,`$injector`,`$rootScope`,`$scope`,`$state`,`Me`,`Page`,function(e,t,n,r,i,a,o,s){$(import(`./DxBGGRtd.js`),e[0],i,{$http:t,$injector:n,$rootScope:r,$scope:i,$state:a,Me:o,Page:s},{})}]}).state(`dashboard.artistStats`,{url:`/artist-stats`,redirectTo:function(){return{state:`dashboard.overview`}}}).state(`dashboard.distribution`,{url:`/distribution?source`,templateUrl:`https://www.bandlab.com/web-app/dashboard/views/dashboard-distribution-6e4c510f8.html`,redirectTo:`dashboard.distribution.list`,resolve:{availableFeaturesSet:[`Me`,function(e){let{availableFeaturesSet:t}=Kn(e);return t}]},params:{rewriteSiteTabBarBack:`dashboard.overview`},onEnter:[`Page`,function(e){e.setMetadata({tapBarTitle:`Distribution`})}],controller:[`$scope`,`$state`,`Me`,`availableFeaturesSet`,function(e,t,n,r){e.distroTrialSubmissionHoldEnabled=!1,t.params.source===`distro_landing`&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroLpDashboardOpen:e}){e()}),qn(e,n,t=>
195{e.isTrialUser=t.isTrial}),ke(n,`distro_trial_submission_hold`).then(t=>{e.distroTrialSubmissionHoldEnabled=t===`true`}),e.availableFeaturesSet=r,e.openLibrary=i,e.distributionHelpCenter=[{title:`What is digital music distribution and how does it work?`,link:`https://help.bandlab.com/hc/en-us/articles/16970445724825-What-is-Distribution-`},{title:`Is digital distribution available during the BandLab Membership trial period?`,link:`https://help.bandlab.com/hc/en-us/articles/16970445724825#Can%20I%20release%20a%20song%20during%20the%20BandLab%20Membership%20trial%20period?`},{title:`How long does it take for my track to go live?`,link:`https://help.bandlab.com/hc/en-us/articles/16970445724825#How%20long%20does%20it%20take%20for%20my%20track%20to%20go%20live?`},{title:`When and how will I receive my earnings?`,link:`https://help.bandlab.com/hc/en-us/articles/16970445724825#When%20and%20how%20will%20I%20receive%20my%20royalties?`},{title:`How do I monitor my current releases?`,link:`https://help.bandlab.com/hc/en-us/articles/16970445724825#How%20do%20I%20monitor%20my%20current%20releases?`}],e.gettingUserPayoutMethodRequired=Ed(n.id).then(function(t){return e.hasPayoutMethod=!AD(t.status),e.$applyAsync(),t}),e.$on(`$distribution:payoutMethodUpdated`,(t,{hasPayoutMethod:n})=>{e.hasPayoutMethod=n,e.$applyAsync()}),Dd(n.id).then(function(t){e.earningsBalance=_i(t.balances.find(e=>e.currency===`USD`)?.balanceIncludingPendingPayment||0),e.$applyAsync()});function i(e=`distro_dashboard`){__({triggeredFrom:e})}}]}).state(`dashboard.distribution.earnings`,{url:`/earnings`,views:{list:{controller:[`$element`,`$injector`,`$scope`,`Release`,function(e,t,n,r){$(import(`./D9yozj5c.js`),e[0],n,{$injector:t,$scope:n,Release:r,openLibrary:n.openLibrary})}]}}}).state(`dashboard.distribution.aiArtworkGallery`,{url:`/ai-artwork-gallery`,views:{list:{controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./BceLujh-.js`),e[0],n,{$injector:t},{openLibrary:n.openLibrary})}]}}}).state(`dashboard.distribution.list`,{url:`/:category/?sortBy&releaseId&upc`,params:{category:`all`},views:{list:{templateUrl:`https://www.bandlab.com/web-app/distribution/views/releases-list-7663bf9ee.html`,controller:`DistributionReleasesCtrl`}}}).state(`dashboard.distribution.analytics`,{url:`/analytics?period`,params:{rewriteSiteTabBarBack:`dashboard.distribution`,period:{value:`30days`,squash:!0}},views:{list:{controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./6ki2U2dH.js`),e[0],n,{$injector:t,scope:n},{})}]}}}).state(`dashboard.fanReach`,{url:`/fan-reach`,templateUrl:`https://www.bandlab.com/web-app/dashboard/views/dashboard-fan-reach-e3299aee5.html`,resolve:{theFanReachStatus:[`Me`,`User`,function(e,t){return t.getFanReachStatus({userId:e.id}).$promise}]},params:{rewriteSiteTabBarBack:`dashboard.overview`},onEnter:[`Page`,function(e){e.setMetadata({tapBarTitle:`Fan Reach`})}],controller:[`$cacheFactory`,`$injector`,`$scope`,`$state`,`AppNotifications`,`Me`,`Modal`,`theFanReachStatus`,function(e,t,n,r,i,a,s,c){e.get(`FanReach`)?.removeAll(),n.state=r,n.fanReachNav=[{state:`dashboard.fanReach.sent`,stateName:`Sent`,iconName:`mail-sent`},{state:`dashboard.fanReach.drafts`,stateName:`Drafts`,iconName:`edit`},{state:`dashboard.fanReach.myFans`,stateName:`Fans`,iconName:`users`},{state:`dashboard.fanReach.settings`,stateName:`Settings`,iconName:`settings`}],n.state=r,n.status=c,n.bannerIconCampaignCounter=function(){return`${1-n.status.featureAccess.remainingCampaigns}/1`}(),n.isActivating=!1;let{availableFeaturesSet:l}=qn(n,a);n.availableFeaturesSet=l,n.openCampaignCreator=function(){if(!n.status.featureAccess.isActivated)new s({id:`fanreachActivateModal`,templateUrl:`https://www.bandlab.com/web-app/fanreach/partials/_fanreach-activate-modal-4fc6f06ca.html`,class:`artist-services-usps-modal-root`}).show();else if(!n.status.permissions.reachSubscribers)i.addNotification({title:`Unable to create campaign`,content:`You need to have at least one subscriber to access this feature`,classList:`alert`,autoclose:8e3});else if(o()){let e=r.href(`fanReachCreate`,{"#":`bl_openModalWebview`},{absolute:!0});window.open(e,`_blank`)}else r.go(`fanReachCreate`)},n.activateFanReach=function(){import(`./BmwiGc5z.js`).then(function({handleActivateFanReach:e}){e(a.id,t)})};let{startPurchaseFlow:u}=Oh(t,n,d);function d(e){n.membership=e&&e!==`Free`}
195n.getMembership=function(){o()?u(`fan_reach`,`artist_services`):ai({productAttribution:`fan_reach`,productAttributionGroup:`artist_services`})},n.$on(`$fanReach:statusToggled`,function(e,t){n.isActivating=t.isActivating}),n.$on(`$fanReach:statusChanged`,function(t,r){n.isActivating=!1,n.status={...r.response},e.get(`FanReach`)?.removeAll()})}],redirectTo:`dashboard.fanReach.sent`}).state(`dashboard.fanReach.myFans`,{url:`/my-fans`,params:{rewriteSiteTabBarBack:`dashboard.fanReach`},templateUrl:`https://www.bandlab.com/web-app/fanreach/views/fanreach-my-fans-b780ea617.html`,controller:`FanReachMyFansCtrl`}).state(`dashboard.fanReach.sent`,{url:`/sent-campaigns`,templateUrl:`https://www.bandlab.com/web-app/fanreach/views/fanreach-sent-campaigns-3ba5a9073.html`,controller:[`$scope`,`$state`,`AppNotifications`,`Me`,`Modal`,function(e,t,n,r,i){$(import(`./D3CKl6tW.js`),document.querySelector(`#fanReachSentEmailsVue`),e,{$scope:e,$state:t,AppNotifications:n,fanReachStatus:e.$parent.status,Me:r,showActivateModal:a},{}),e.$on(`handleCreateCampaign`,function(){e.$parent.openCampaignCreator()});function a(){new i({id:`fanreachActivateModal`,templateUrl:`https://www.bandlab.com/web-app/fanreach/partials/_fanreach-activate-modal-4fc6f06ca.html`,class:`artist-services-usps-modal-root`}).show()}}]}).state(`dashboard.fanReach.drafts`,{url:`/drafts`,template:`<div id="fanReachDraftEmailsVue" class="fanreach-drafts-layout"></div>`,controller:[`$scope`,`$state`,`AppNotifications`,`Me`,`Modal`,function(e,t,n,r,i){$(import(`./D5VImE94.js`),document.querySelector(`#fanReachDraftEmailsVue`),e,{$scope:e,$state:t,AppNotifications:n,fanReachStatus:e.$parent.status,Me:r,showActivateModal:a},{}),e.$on(`handleCreateCampaign`,function(){e.$parent.openCampaignCreator()});function a(){new i({id:`fanreachActivateModal`,templateUrl:`https://www.bandlab.com/web-app/fanreach/partials/_fanreach-activate-modal-4fc6f06ca.html`,class:`artist-services-usps-modal-root`}).show()}}]}).state(`dashboard.fanReach.settings`,{url:`/settings`,params:{rewriteSiteTabBarBack:`dashboard.fanReach`},templateUrl:`https://www.bandlab.com/web-app/fanreach/views/fanreach-settings-0173bf7c9.html`,controller:`FanReachSettingsCtrl`}).state(`dashboard.boostRedirect`,{url:`/promote`,redirectTo:`dashboard.promote`}).state(`dashboard.promote`,{url:`/boost`,params:{rewriteSiteTabBarBack:`dashboard.overview`},onEnter:[`Page`,function(e){e.setMetadata({tapBarTitle:`Boost`})}],templateUrl:`https://www.bandlab.com/web-app/dashboard/views/dashboard-promote-2f6805110.html`,controller:[`$scope`,`Me`,function(e,t){e.openPostPicker=function(){js(t)},e.promoteSideNav=[{state:`dashboard.promote.list({type: "boost-campaigns"})`,stateName:`Posts`,stateCategory:`boost-campaigns`,iconName:`zerocase-post`},{state:`dashboard.promote.list({type: "profile-campaigns"})`,stateName:`Profile`,stateCategory:`profile-campaigns`,iconName:`user`},{state:`dashboard.promote.list({type: "website-ad-campaigns"})`,stateName:`Website Ads`,stateCategory:`website-ad-campaigns`,iconName:`ad-web`}]}],redirectTo:`dashboard.promote.list`}).state(`dashboard.promote.list`,{url:`/campaigns/:type?postId`,params:{type:`boost-campaigns`,postId:{squash:!0,inherit:!1},rewriteSiteTabBarBack:`feed`},template:`<div id="promoteCampaignsPanel"></div>`,controller:[`$scope`,`$state`,`$stateParams`,`$injector`,`AppNotifications`,`Me`,function(e,t,n,r,i,a){t.transition?.from().name!==`promoteOverview`&&Ns.invalidate(),$(import(`./CMQd-4q7.js`),document.querySelector(`#promoteCampaignsPanel`),e,{$stateParams:n,$injector:r,AppNotifications:i,Me:a},{})}]}).state(`dashboard.pagesRoot`,{url:`/pages`,redirectTo:`dashboard.pages`}).state(`dashboard.pages`,{url:`/pages/:path/:subpath/:innerSubpath?theme&source`,params:{path:``,subpath:{squash:!0,value:null},innerSubpath:{squash:!0,value:null}},onEnter:[`$stateParams`,function(e){import(`./BWvciV-z.js`).then(e=>e.t).then(function({logEvent:t}){let n={triggered_from:e.source??`external_link`};e.source!==`pages`&&t(`pages_dashboard_open`,n)})}],onExit:[`Page`,function(e){e.clearMetadata()}],controller:[`$element`,`$injector`,`$scope`,`$state`,`$urlRouter`,function(e,t,n,r,i){i.listen(!1);let a=import(`./Cn2K7XLm.js`).then(function({mountDashboardPages:a}){return a(e[0],{$injector:t,$scope:n,$state:r,$urlRouter:i})});n.$on(`$destroy`,async function(){i.listen(!0),document.body.classList.forEach(function(e){e.startsWith(`dashboard-pages-`)&&document.body.classList.remove(e)}),(await a).unmount()})}]}
195).state(`dashboardPagesEPK`,{url:`/dashboard/pages/epk/:id?source`,useTopBarForm:!0,data:{hideNavBar:!0},reloadOnSearch:!1,params:{id:{value:null,squash:!0}},views:{"":{controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./Dq40xN84.js`),e[0],n,{$injector:t})}]},"tabBarForm@":{controller:[`$element`,`$injector`,`$scope`,`$state`,function(e,t,n,r){$(import(`./DPP82vRH.js`),e[0],n,{$injector:t,$scope:n,$state:r})}]},"topBarForm@":{controller:[`$element`,`$injector`,`$scope`,`$state`,function(e,t,n,r){$(import(`./CDlao--i.js`),e[0],n,{$injector:t,$scope:n,$state:r})}]}}}).state(`dashboardPagesPreview`,{url:`/dashboard/pages/:type/:id/preview?theme&source`,data:{hideNavBar:!0},params:{id:{value:null,squash:!0}},controller:[`$element`,`$injector`,`$rootScope`,`$scope`,function(e,t,n,r){let i=import(`./Cn2K7XLm.js`).then(function({mountDashboardPagesPreview:i}){return i(e[0],{$injector:t,$rootScope:n,$scope:r})});r.$on(`$destroy`,async function(){document.body.classList.forEach(function(e){e.startsWith(`dashboard-pages-preview-`)&&document.body.classList.remove(e)}),(await i).unmount()})}]}).state(`dashboard.pagesRevisionCreate`,{url:`/pages/revision/create/:id?source`,redirectTo:function(e){let t=e.injector().get(`Me`),n=e.params().id,r
195=e.params().source;return jv(t.id,n).then(function(e){return e.data.length>0?{state:`dashboard.pages`,params:{path:`revision`,subpath:e.data[0].id,source:r}}:Dv(t.id,n).then(e=>({state:`dashboard.pages`,params:{path:`revision`,subpath:e.id,source:r}}))})}})}]),angular.module(`bandlab.distribution`,[]);const MD=To(()=>({release:h({})}));angular.module(`bandlab.distribution`).controller(`DistributionCtrl`,[`$location`,`$q`,`$rootScope`,`$scope`,`$state`,`AppNotifications`,`ConfirmModal`,`Me`,`payoutMethodRequired`,`Player`,`PlayerHistory`,`ProjectUploader`,`Release`,`RevisionImporter`,`theArtistRoles`,`theAvailableReleaseDates`,`theContributorRoles`,`theGenres`,`theInstruments`,`thePrimaryArtist`,`theProductionRoles`,`theRelease`,`theReleaseSongs`,`theVersions`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C){Gn(()=>{let{release:e}=MD();Object.assign(e,x),re(e,e=>{r.release=e,r.$applyAsync()},{deep:!0,immediate:!0})},r),r.genres=_,r.versions=C,r.releaseSongs=S,r.isDistroEdit=i.includes(`distributionEdit`),r.soundTimeFormat=gi,r.instruments=v,r.productionRoles=b,r.contributorRoles=g,r.artistRoles=m,r.primaryArtist=y.artist,r.payoutMethodRequired=!jD(c.status),r.languages=u_(),r.Player=l,r.shouldUpscaleCoverArt={value:!1},r.Me=s,r.uploadedFileIds=[],r.distroTrialSubmissionHoldEnabled=!1,r.distroSplitsEnabled=!1,i.params.preFillId&&f.get({userId:s.id,releaseId:i.params.preFillId}).$promise.then(function(e){r.prefillSourceRelease=e,r.buildPrefillByRole=function(){return K_(r.prefillSourceRelease)}}),d.queue=[],r.trackUploadingQueue=d.queue;let{availableFeaturesSet:w}=qn(r,s,e=>{r.membership=e});r.availableFeaturesSet=w,r.isOpeningDistroAiCoverGenerator=!1,r.isOpeningDistroAiArtworkGallery=!1,!w.value.has(`distro`)&&!r.release.assets.some(e=>e.hasFreeDistributionSlot)&&_e(`distro_create_release`);let T=new Date;T.setDate(T.getDate()-1);function E(e){let t=new Date(e);return Cp(t)!==e&&t.setUTCDate(t.getUTCDate()+1),t}r.availableReleaseDates={end:Cp(new Date(h.end)),start:Cp(new Date(h.start)),yesterday:Cp(T)},r.release.hasScheduledReleaseDate&&r.release.releaseDate&&(r.release.userSelectedReleaseDate=Cp(new Date(r.release.releaseDate)));let D=e.url();u.setCurrentPageContext({loader:null,url:D,contentSource:Ee(i)}),u.pushQueueSongs([],D,!0);for(let e of r.releaseSongs){if(e.originalTitle=e.title,e.isExisting=!0,e.version&&!oe(e.version)){let t=e.version;e.version=pe(`Other`),e.otherVersion=t}for(let t of e.artists){let e=r.artistRoles.find(e=>e.id===t.role);e&&(t.type=e.id,t.typeName=e.name)}for(let t of e.instrumentPerformers){let e=r.instruments.find(e=>e.id===t.instrument);e&&(t.type=e.id,t.typeName=e.name)}for(let t of e.productionContributors){let e=r.productionRoles.find(e=>e.id===t.role);e&&(t.type=e.id,t.typeName=e.name)}for(let t of e.contributors){let e=r.contributorRoles.find(e=>e.id===t.type);e&&(t.type=e.id,t.typeName=e.name)}e.revision={id:e.audioId,mixdown:{duration:gi(e.duration),file:e.audioUrl,id:e.audioId},song:{id:e.audioId}}}r.openCoverArtExampleModal=function(){let e=J(()=>import(`./C1bjwo-P.js`));X(e),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroCoverArtExamples:e}){e()})};let O=!1;r.openDistroAiCoverGenerator=async function(){if(!r.isOpeningDistroAiCoverGenerator){r.isOpeningDistroAiCoverGenerator=!0;try{await D_({Release:f,userId:s.id,AppNotifications:a,hasRegeneratedAiCoverArt:O,onRegenerate:()=>{O=!0},onGenerate:k,onSelect:A})}catch(e){let t=await e.response?.json();a.addNotification({title:t?.message||`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})}finally{r.isOpeningDistroAiCoverGenerator=!1,r.$applyAsync()}}},r.openDistroAiArtworkGallery=function(){if(!r.isOpeningDistroAiArtworkGallery){r.isOpeningDistroAiArtworkGallery=!0;try{O_({hasRegeneratedAiCoverArt:O,onSelect:A})}finally{r.isOpeningDistroAiArtworkGallery=!1,r.$applyAsync()}}};async function k(e,t){let n=await k_({userId:s.id,releaseId:r.release.releaseId,remainingGenerations:t,selectedCoverArtStyle:e,AppNotifications:a});return n?(r.release.aiCoversGeneratedCount+=n.artworks.length,r.$applyAsync(),n):null}async function A(e,t){try{let{data:i,res:a}=await A_({Release:f,userId:s.id,releaseId:r.release.releaseId,selectedArtwork:e});n.$broadcast(`$releasePicture:changed`,{data:i,res:a}),t&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroCoverArtSelectionConfirm:e}){e(t)}),r.$applyAsync()}catch(e){throw n.$broadcast(`$releasePicture:errored`,{err:e}),e}}r.cancelUpload=function(){r.releaseSongs.pop();let e=d.queue[0];e?.complete?r.pollMixdownCancellable?.reject&&(r.pollMixdownCancellable.reject(`Cancelled`),r.pollMixdownCancellable=null):e.cancel(),r.trackUploadingQueue.length=0,r.$applyAsync()},r.$on(`topBarExit`,function(e,t){function n(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroReleaseDismiss:e,logDistroRating:t}){e(`Distro Release - Closed/Dismissed`),document.addEventListener(`ratingEvent`,n);function n(e){t(e.detail),document.removeEventListener(`ratingEvent`,n)}})}r.updateDistributionForm(r.currentStepNumber,!0).then(()=>
195{if(n(),i.params.redirect){let{name:e,params:{postId:t,username:n,category:r}={}}=JSON.parse(decodeURIComponent(i.params.redirect));return i.go(e,{id:t,username:n,category:r},{location:`replace`}).finally(()=>{i.stackSize=0})}return i.go(`dashboard.distribution`)}).finally(()=>{t?.()})}),r.$on(`topBarHelpCenterStepByStepGuide`,function(){he();let e=r.stepsList[r.currentStepNumber-1];r.currentStepNumber===1?window.open(`https://help.bandlab.com/hc/en-us/articles/52610209136537-Guidelines-for-a-successful-release-submission#Step%201%3A%20Release%20Details`,`_blank`):r.currentStepNumber===2?window.open(`https://help.bandlab.com/hc/en-us/articles/52610209136537-Guidelines-for-a-successful-release-submission#Step%202%3A%20Track%20Details`,`_blank`):r.currentStepNumber===3?window.open(`https://help.bandlab.com/hc/en-us/articles/52610209136537-Guidelines-for-a-successful-release-submission#Step%203%3A%20Cover%20Art`,`_blank`):e?.name===`Splits`&&r.distroSplitsEnabled?window.open(`https://help.bandlab.com/hc/en-us/articles/59257601767065`,`_blank`):[`Payment`,`Review`].includes(e?.name)&&window.open(`https://help.bandlab.com/hc/en-us/articles/52610209136537-Guidelines-for-a-successful-release-submission#Step%204%3A%20Payout%20Setup%20%26%20Review`,`_blank`)}),r.$on(`topBarHelpCenterOverallGuide`,function(){he(),window.open(`https://help.bandlab.com/hc/en-us/articles/16970445724825-What-is-digital-music-distribution-and-how-does-it-work`,`_blank`)}),r.currentStepNumber=1;let j=[{step:1,name:`Release Details`,title:`Tell us about your release`,description:`Share your artist name, genre, and more release details with us to help us find the best audience for your music. Learn more in our <a href="https://bnd.la/digital-distribution-help" target="_blank" class="ds-glyphs-link">Help Center</a>.`,errors:null},{step:2,name:`Tracks`,title:`Build Your Release`,description:` 196 To avoid copyright infringement, make sure you own 100% of the music you submit, or have the required licenses. 197 <br><br> 198 The track must not contain a sample of a major thirdâparty artist or a cover of a song. 199 <br><br> 200 Lastly, do not include featured artists or contributors when filling in your track title. 201 <div class="hide-for-medium-down"><br></div> 202 For more information, head to our <a href="https://bnd.la/digital-distribution-help" target="_blank" class="ds-glyphs-link">Help Center</a>. 203 `,errors:null},{step:3,name:`Cover Art`,title:`Add your cover art`,description:` 204 <div class="row-gap-12"> 205 <div> 206 Upload your own image or use AI artwork. 207 </div> 208 <ul class="row-gap-8 distro-unordered-list"> 209 <li> 210 <div class="typography-body-compact-medium">No Additional Text or Branding</div> 211 <div class="ds-glyphs-secondary">Avoid including URLs, email addresses, tags, logos, etc.</div> 212 </li> 213 <li> 214 <div class="typography-body-compact-medium">No Explicit Content</div> 215 <div class="ds-glyphs-secondary">Ensure your cover art does not contain nudity</div> 216 </li> 217 <li> 218 <div class="typography-body-compact-medium">No Copyrighted or Trademarked Material</div> 219 <div class="ds-glyphs-secondary">Donât use content you donât have rights to</div> 220 </li> 221 <li> 222 <div class="typography-body-compact-medium">HighâQuality Original Artwork</div> 223 <div class="ds-glyphs-secondary">Avoid blur or pixelated filters, even if used for style</div> 224 </li> 225 </ul> 226 </div> 227 `,errors:null}],M={"Release Details":`release-details`,Tracks:`tracks`,"Cover Art":`cover-art`,Payment:`payment`,Splits:`splits`,Review:`review`},N=!1,P=!1,F=!1;async function ee(){let e=await ke(s,`distro_splits_enabled`);r.distroSplitsEnabled=[`true`,`on`].includes(e),I();try{i.params.step?await V(i.params.step):await B()}finally{F=!0,r.isStepUrlResolved=!0,r.$applyAsync()}}async function te(){let e=r.release.splitConfig;try{r.release.splitConfig={assets:r.release.assets.map(e=>({audioId:e.audioId,collaborators:[]}))},await f.getSplitsConfig({userId:s.id,releaseId:r.release.releaseId}).$promise.then(e=>{for(let t of r.release.splitConfig.assets){let n=e.assets.find(e=>
227e.audioId===t.audioId);n?.participants&&(t.collaborators=n.participants.filter(e=>e.role!==`Uploader`))}r.$applyAsync()})}catch{r.release.splitConfig=e}}function I(){let e={step:4,name:`Payment`,title:`Connect Your Payout Method`,description:` 228 Set up a payout method to ensure we can deliver your funds. 229 <br><br> 230 For details on fees and the minimum payout amount, head to our <a href="https://bnd.la/digital-distribution-help" target="_blank" class="ds-glyphs-link">Help Center</a>.`},t={step:r.payoutMethodRequired?5:4,name:`Splits`,title:`Earning Splits`,description:`Split this release's earnings with up to 5 collaborators. Choose <strong>Release</strong> to apply one split to every track, or <strong>Tracks</strong> to set a different split for each one. Payouts begin once everyone accepts and connects a payout method.`},n={step:r.payoutMethodRequired&&r.distroSplitsEnabled?6:r.payoutMethodRequired||r.distroSplitsEnabled?5:4,name:`Review`,title:`Review your release details`,description:`Youâre almost there! Review the details youâve provided, and hit the âbackâ button to make edits if necessary.`};r.stepsList=r.payoutMethodRequired&&r.distroSplitsEnabled?[...j,e,t,n]:r.payoutMethodRequired?[...j,e,n]:r.distroSplitsEnabled?[...j,t,n]:[...j,n],r.$applyAsync()}I(),ee();function L(){return r.stepsList.find(e=>e.name===`Payment`)}function R(e){return r.stepsList[e-1]?.name===`Splits`}function ne(e){return r.stepsList.find(t=>M[t.name]===e)}async function z(e){if(i.params.step!==e){P=!0;try{await i.go(`.`,{step:e},{location:`replace`})}finally{P=!1}}}function B(e=r.currentStepNumber){let t=M[r.stepsList[e-1].name];return z(t)}async function V(e){let t=ne(e);if(!t)return B();N=!0;try{if(t.step<=r.currentStepNumber)r.currentStepNumber=t.step,r.$applyAsync();else for(;r.currentStepNumber<t.step;){let e=r.currentStepNumber+1;if(await r.updateDistributionForm(e),r.currentStepNumber!==e)break}await B()}finally{N=!1}}r.$watch(()=>i.params.step,function(e,t){!F||N||P||e===t||V(e)}),ke(s,`distro_trial_submission_hold`).then(e=>{r.distroTrialSubmissionHoldEnabled=e===`true`});function ie(e){let t=document.getElementById(`distroTrackDropdown`);for(let n of e)n.type===`childList`&&(t?document.body.classList.add(`has-distro-track-dropdown`):document.body.classList.remove(`has-distro-track-dropdown`))}let H=new MutationObserver(ie);H.observe(document.body,{childList:!0,subtree:!0}),r.$on(`$destroy`,function(){H.disconnect()});function ae(){r.hasValidationError=r.releaseSongs.length===0||r.releaseSongs.some(e=>e.isValid===!1||e.isDeleted===!0||e.pendingValidation===!0)}r.$watchCollection(`trackUploadingQueue`,function(e){d.isVisible=!1,r.hasUploadingTrack=!!e?.length;let t=e?.at(-1)?.file;t&&r.releaseSongs.push({title:t.name,copyrightYear:new Date().getFullYear(),language:``,explicitContent:``,artists:[{...r.release.artist,type:`Primary`}],contributors:[],instrumentPerformers:[],productionContributors:[],isrc:null,publisher:null,rightsOrg:null,mechanicalOrg:null,audioId:Date.now(),audioUrl:null,duration:null,revision:{id:null,mixdown:{duration:null,file:null,id:null},song:{id:null}},isValid:!0})}),r.$on(`$revision:changed`,function(e,i){r.pollMixdownCancellable=t.defer(),p.pollMixdown(i.revision,r.pollMixdownCancellable).catch(e=>{n.$broadcast(`$track:errored`,e)}).finally(()=>{r.pollMixdownCancellable=null});let a=r.releaseSongs.at(-1);a&&!a.audioUrl&&(a.hasBeenReleasedBefore||=!1,a.instrumentPerformers||=[],a.productionContributors||=[],a.revision.song={id:i.revision.id},a.revision.id=i.revision.id)}),r.$on(`$mixdown:changed`,function(e,t){let n=r.releaseSongs.at(-1);n&&!n.audioUrl&&(n.audioId=n.revision.id,n.audioUrl=t.mixdown.file,n.revision.mixdown.file=t.mixdown.file,n.revision.mixdown.duration=t.mixdown.duration,n.duration=t.mixdown.duration,r.trackUploadingQueue.length=0)}),r.$on(`$track:errored`,function(e,t){if(t!==`Cancelled`){t.shortMessage||=`Upload failed`;let e=r.releaseSongs.at(-1);e.uploadError=t,r.trackUploadingQueue.length=0,r.$applyAsync()}}),r.$watch(`form.$invalid`,function(e){r.hasValidationError=e}
230),r.$watchGroup([`form`,`release.errors`,`release.rejectedReasons`],function(){r.isDistroEdit&&r.form&&(ce({data:{errorData:r.release.errors}}),le(r.release.rejectedReasons))}),r.$watch(`release.rejectedReasons`,function(e){if(e){r.hasRejectionError=!1;for(let e of r.release.rejectedReasons.artist)if(e.level===`Error`&&!e.isAddressed){r.hasRejectionError=!0;break}}},!0),r.$watch(`release.coverArtViolations`,function(e){e&&(r.hasCoverArtViolationError=e.some(e=>e.level===`Error`),r.hasValidationError=r.hasCoverArtViolationError)},!0),r.$watch(`form.$pending`,function(e){r.pendingValidation=e,r.release.rejectedReasons&&Object.keys(r.release.rejectedReasons).forEach(e=>{if(r.release.rejectedReasons[e]&&r.form?.[e]&&e!==`assets`&&e!==`coverArt`&&e!==`release`&&e!==`artist`&&e!==`rightsConcerns`){for(let t of r.release.rejectedReasons[e])if(t.level===`Error`&&r.form[e].$dirty){t.isAddressed=!0;break}}r.$applyAsync()})}),r.$watch(`release.artist.name`,function(e,t){let{rejectedReasons:n}=r.release||{};if(t&&e!==t&&n){let e=n.artist.find(e=>e.code===`PrimaryArtist`);e&&(e.isAddressed=!0)}}),r.pictureInitialized=!1,r.$watch(`release.picture`,function(e){e&&!e.isDefault&&!r.hasCoverArtViolationError&&(r.hasValidationError=!1),r.pictureInitialized&&r.release.rejectedReasons?.coverArt?.[0]&&(r.release.rejectedReasons.coverArt[0].isAddressed=!0),r.pictureInitialized=!0},!0),r.$watch(`releaseSongs`,function(e){se(),ae(),ye(),r.hasUploadError=e.some(e=>e.uploadError),r.isFreeRelease=!w.value.has(`distro`)&&e.length===1&&e.some(e=>e.hasFreeDistributionSlot),r.freeDistributionSlotSource=r.isFreeRelease?e.find(e=>e.hasFreeDistributionSlot).freeDistributionSlotSource:null},!0),r.$watch(`currentStepNumber`,function(e){e===1&&r.form?r.hasValidationError=r.form.$invalid:e===2?(be(),ae(),ye()):e===3&&(I(),r.hasValidationError=xe()),!(!F||N||P)&&B(e)}),r.removeTrack=W,r.removeDeletedTrack=fe,r.openDeletedTrackInfoModal=q,r.moveTrackUp=ue,r.moveTrackDown=de,r.getTrackIndex=G,r.getVersionNameByOriginalId=pe,r.isVersionNameAnOption=me;function oe(e){return r.versions.find(t=>t.id===e)}function se(){function e(e){return[...e].sort((e,t)=>e.localeCompare(t)).map((e,t)=>({id:t,name:e}))}let t=new Set,n=new Set,i=new Set,a=new Set,o=new Set,s=new Set,c=new Set;r.releaseSongs.forEach(({contributors:e=[],artists:r=[],productionContributors:l=[],instrumentPerformers:u=[]})=>{e.forEach(({type:e,firstName:r,lastName:o})=>{e===`Composer`?(t.add(r),n.add(o)):e===`Lyricist`&&(i.add(r),a.add(o))}),r.forEach(e=>e.name&&o.add(e.name)),l.forEach(e=>e.name&&c.add(e.name)),u.forEach(e=>e.name&&s.add(e.name))}),r.historicalComposers={composerFirstName:e(t),composerLastName:e(n)},r.historicalLyricists={lyricistFirstName:e(i),lyricistLastName:e(a)},r.historicalArtists={artistsName:e(o)},r.historicalPerformers={instrumentPerformersName:e(s)},r.historicalProduction={productionContributorsName:e(c)}}function ce(e){function t(e,t){let n=r.form?.[e];n&&(n.$setValidity(`valid`,!t),n.errorMessage=t)}e.data.errorData&&(Object.keys(e.data.errorData).forEach(n=>{e.data.errorData[n]&&n===`artist`?r.release.artist.error=e.data.errorData.artist:e.data.errorData[n]&&n===`releaseDate`?t(`scheduledReleaseDate`,e.data.errorData[n]):e.data.errorData[n]&&n!==`assets`&&n!==`genre`&&t(n,e.data.errorData[n])}),r.$applyAsync())}function le(e){if(e){Object.keys(e).forEach(t=>{if(e[t]&&t===`artist`)for(let n of e[t])n.code===`PrimaryArtist`&&!n.isAddressed&&(r.release.artist.error={...r.release.artist.error,name:` `});else if(e[t]&&t!==`assets`&&t!==`coverArt`&&t!==`release`&&t!==`rightsConcerns`){for(let n of e[t])if(r.form[t]&&n.level===`Error`&&!n.isAddressed){r.form[t].$setValidity(`valid`,n.isAddressed);break}}});for(let e of r.release.rejectedReasons.assets){if(!e)break;for(let t of e.asset)if(t.level===`Error`){r.hasRejectionError=!0;let[e,n]=U(r.release);r.release.rejectedReasons.rightsConcerns=n,r.rightsConcernsMessage=`Possible copyright concern detected with ${e.join(`, `)}. If you own the content, please upload proof of ownership. If you donât own it or need assistance, please reach out to our Support team.`,r.form.releaseAttachments.$setValidity(`valid`,t.isAddressed);break}}r.$applyAsync()}}function U(e){return(e.rejectedReasons.assets||[]).reduce(([t,n],r,i)=>{let a=r.asset.filter(e=>e.code===`RightsConcerns`);return[t.concat(a.length>0?[e.assets[i].title]:[]),n.concat(a)]},[[],[]])}r.setRejectedReasonsAddressed=function(e){if(e)for(let t of e)t.isAddressed=!0};function W(e){new o({confirmLabel:`Remove`,toFocusConfirm:!0,contentScope:{title:`Remove the track?`,message:`You will lose all track information entered for the release`},onConfirm:()=>{r.releaseSongs=r.releaseSongs.filter(t=>t.audioId!==e.audioId),l.getCurrentSong().id===e.audioId&&l.pause(),e.hasFreeDistributionSlot&&!w.value.has(`distro`)&&a.addNotification({classList:`warning`,title:`Free release no longer available`,content:`You removed the eligible track â this release will be paid.`,autoclose:8e3})}}).show()}function G(e){return r.releaseSongs.findIndex(t=>t.audioId===e.audioId)}function ue(e){[r.releaseSongs[e-1],r.releaseSongs[e]]=[r.releaseSongs[e],r.releaseSongs[e-1]],K(r.releaseSongs[e-1].audioId)}function de(e){[r.releaseSongs[e],r.releaseSongs[e+1]]=[r.releaseSongs[e+1],r.releaseSongs[e]],K(r.releaseSongs[e+1].audioId)}function K(e){n.$broadcast(`distributionTrackReordered`,e)}function q(e){let t=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));X(t,{size:`small`,title:e.title||e.originalTitle,subtitle:e.isDeleted?`You cannot continue the release process with the deleted track. Recover it or select another track.`:e.uploadError.message||`Something went wrong, try uploading this track again.`})}function fe(e){r.releaseSongs=r.releaseSongs.filter(t=>t.revision.id!==e.revision.id),r.$applyAsync()}function pe(e){return(r.versions.find(t=>t.originalId===e)||r.versions.find(e=>e.originalId===`Other`)).name}function me(e){return r.versions.some(t=>t.originalId===e)}r.openTrackPickerInWizard=function(){let e=J(()=>import(`./CoH98KvG.js`));X(e,{releaseSongs:r.releaseSongs||[],onAddTracksInWizard:t=>{r.releaseSongs=m_({selectedTracks:t,addedTracks:r.releaseSongs,release:r.release,availableFeaturesSet:w}),Xn(e),r.$applyAsync()}})};function he(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroGuideSessionStart:e}){e()})}function ge(){let e=J(()=>import(`./DQUcANLm.js`));X(e,{userAgree:function(){return $g(a,s,f).then(function(e){if(e){let e={userId:s.id,releaseId:r.release.releaseId,state:`InReview`,useFreeSlot:r.isFreeRelease};return f.updateState(e).$promise.then(function(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroReleaseComplete:e}){e({releaseId:r.release.releaseId,numTracks:r.releaseSongs.length,hasScheduledReleaseDate:r.release.hasScheduledReleaseDate,type:r.isFreeRelease?`free_slot`:`paid`,triggeredFrom:r.isFreeRelease?`distro_free_revision`:null,grantedFrom:r.freeDistributionSlotSource,hasAiCover:r.release.hasAiCover})}),i.go(`distributionSuccess`,{redirect:i.params.redirect,releaseId:r.release.releaseId})})}}).catch(e=>{r.submitButtonDisabled=!1,r.isSubmitting=!1,a.addNotification({title:e?.data?.message??`Something went wrong, please try again later`,autoclose:8e3,classList:`warning`})})}})}function _e(e,t){ai({productAttribution:e,productAttributionGroup:`artist_services`,useCheckoutModal:!0,onCheckoutSuccess:t})}r.setFieldValid=function(e,t,n){e[t]&&(e[t].$setValidity(`valid`,!0),e[t].errorMessage=null),n&&n[t].forEach(e
230=>{e.isAddressed=!0})},r.validateReleaseDate=function(e){if(!e||isNaN(Date.parse(e)))return`Invalid date`;let t=new Date(h.start),n=new Date(h.end),r=E(e);return r<t||r>n?`Please select a date within 14 days to 3 months`:!0},r.validateOriginalReleaseDate=function(e){return e?isNaN(Date.parse(e))?`Invalid date`:e>r.availableReleaseDates.yesterday?`Original release date must be before the release date`:!0:!0},r.validateGenre=function(e){return e?!0:`Please select the genre`},r.validateLanguage=function(e){return e?!0:`Please select a language`},r.$on(`$releasePicture:changed`,function(e,{data:t,res:n}){r.release.picture=t,r.release.hasAiCover=n.hasAiCover,r.release.coverArtViolations=[...n.coverArtViolations],r.release.picture.isDefault=!1,import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroCoverArtUploadedDeclined:e}){for(let t of n.coverArtViolations)e(r.release.releaseId,s.id,t.level.toLowerCase())})}),r.$on(`$releasePicture:errored`,function(e,{err:t}){a.addNotification({title:t?.data?.message||`Something went wrong, please try again later`,autoclose:8e3,classList:`alert`}),r.release.picture.isDefault=!1}),r.$on(`distroCoverArtSizeError`,function(e,t){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroCoverArtWrongSize:e}){e(r.release.releaseId,s.id,t)})}),r.$on(`$uploaderPicture:changed`,function(e,{result:t}){r.shouldUpscaleCoverArt.value=t.image.height<1400||t.image.width<1400}),r.$on(`pictureUpscaleSuccess`,function(){r.shouldUpscaleCoverArt.value=!1});function ve(){if(r.isSubmitting=!1,r.membership.isTrial&&!r.distroTrialSubmissionHoldEnabled){r.submitButtonDisabled=!0,r.$applyAsync();return}r.$applyAsync(),ge()}function ye(){if(r.releaseSongs.length===1&&(r.releaseSongs[0].title=r.release.releaseTitle,r.releaseSongs[0].rejectedReasons))for(let e of r.releaseSongs[0].rejectedReasons.title)e.isAddressed=!0}function be(){let e=!!r.release.originalReleaseDate;r.releaseSongs.forEach(t=>{t.hasBeenReleasedBefore=e,!e&&t.explicitContent===`CLEAN`&&(t.explicitContent=null)})}function xe(){return r.release.picture.isDefault||!!r.release.rejectedReasons?.coverArt?.some(e=>!e.isAddressed)||!!r.release.coverArtViolations?.some(e=>e.level===`Error`)}async function Se(){r.submitButtonDisabled=!0,r.isSubmitting=!0;try{let e=jD((await Od(s.id))?.status);return e&&(r.submitButtonDisabled=!1),e}catch(e){let t=await e.response?.json?.()||{message:`Please try again`};return a.addNotification({title:`Something went wrong`,content:t.message,classList:`alert`,autoclose:8e3}),!1}finally{r.isSubmitting=!1,r.$applyAsync()}}r.enableSubmitButton=function(){r.submitButtonDisabled=!1,r.isSubmitting=!1},r.setLoading=function(){r.submitButtonDisabled=!0,r.isSubmitting=!0},r.updateDistributionForm=async function(e,t=!1){a.clearAll(),r.isCopyNotificationActive=!1,r.submitButtonDisabled=!1,r.currentStepNumber===4&&o();function n(){if(r.release?.splitConfig?.type===`release`){let e=[],t=r.release.splitConfig.assets[0].collaborators;for(let n of r.release.assets)e.push({audioId:n.audioId,collaborators:t});r.release.splitConfig.assets=e}else r.release.splitConfig.assets=r.release.splitConfig.assets.filter(e=>r.release.assets.some(t=>t.audioId===e.audioId));let e={userId:s.id,releaseId:r.release.releaseId,assets:r.release?.splitConfig.assets};return f.saveSplitConfig(e).$promise}function o(e=!1){be();let t=angular.copy(r.releaseSongs).filter(e=>e.audioUrl).map(e=>(e.version===pe(`Other`)&&e.otherVersion&&(e.version=e.otherVersion),{...e,title:e.title||e.originalTitle})),n={userId:s.id,releaseId:r.release.releaseId,assets:t,shouldValidate:e};return f.addSong(n).$promise.then(e=>{r.release.type=e.type,r.release.assets=[...e.assets]})}function c(e=!1){r.release.userSelectedReleaseDate?.length>10&&(r.release.hasScheduledReleaseDate=!1),r.release.hasScheduledReleaseDate?r.release.releaseDate=E(r.release.userSelectedReleaseDate):r.release.releaseDate=new Date;let t=angular.copy(r.release);t.originalReleaseDate||=null,delete t.version,delete t.hasBeenReleasedBefore;for(let e of t.assets)e.artists[0]=JSON.parse(JSON.stringify({...t.artist,type:`Primary`}));let n={userId:s.id,...t,shouldValidate:e,attachments:r.release.attachments.concat(r.uploadedFileIds)};return f.update(n).$promise.then(function(e){r.release.releaseId=e.releaseId??e.id;for(let t of r.releaseSongs)t.artists[0]=JSON.parse(JSON.stringify({...e.artist,type:`Primary`,typeName:r.artistRoles.find(e=>e.id===`Primary`)?.name}))})}function l(){r.releaseSongErrors=r.release.errors?.assets||null,r.releaseSongs.forEac
230h((e,t)=>{e.error=r.release.errors?r.release.errors.assets?.[t]:null}),r.$applyAsync()}function u(){r.releaseSongRejectedReasons=r.release.rejectedReasons?.assets||null,r.releaseSongs.forEach((e,t)=>{e.rejectedReasons=r.release.rejectedReasons?r.release.rejectedReasons.assets[t]:null}),r.$applyAsync()}if(r.currentStepNumber===1){try{await c(!t)}catch(e){if(e?.data?.errorData){r.release.errors=e.data.errorData,ce(e);return}a.addNotification({title:e?.data?.message||`Something went wrong, please try again later`,autoclose:8e3,classList:`warning`});return}l(),u()}if(r.currentStepNumber===3&&e===2&&(l(),u()),r.currentStepNumber===2)try{await o(!t&&e!==1);let n=await f.get({userId:s.id,releaseId:r.release.releaseId}).$promise;r.release.errors=n.errors,r.release.attachments=n.attachments,r.release.version=n.version}catch(e){if(e?.data?.errorData?.assets){r.releaseSongErrors=e.data.errorData.assets||[];for(let t=0;t<r.releaseSongs.length;t++)r.releaseSongs[t].error=e.data.errorData.assets[t];r.$applyAsync()}else a.addNotification({title:e?.data?.message??`Something went wrong, please try again later`,autoclose:8e3,classList:`warning`});return}if(r.stepsList[r.currentStepNumber-1]?.name===`Cover Art`&&e>r.currentStepNumber&&xe()){r.hasValidationError=!0,r.$applyAsync();return}if(!(N&&r.stepsList[r.currentStepNumber-1]?.name===`Payment`&&e>r.currentStepNumber&&!await Se())){if(r.distroSplitsEnabled){if(R(r.currentStepNumber)){if(w.value.has(`distro-earnings-splits`))try{r.release?.splitConfig&&await n(),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroSplitsCollaboratorSkipped:t}){if(r.stepsList[e-1]?.name===`Review`&&(!r.release?.splitConfig||!r.release?.splitConfig?.assets?.length))t(r.release.releaseId);else if(r.release?.splitConfig?.assets?.length>0){let n=r.release.splitConfig.assets.some(e=>e.collaborators.length>0);r.stepsList[e-1]?.name===`Review`&&!n&&t(r.release.releaseId)}})}catch(e){a.addNotification({title:e?.data?.message??`Something went wrong, please try again later`,autoclose:8e3,classList:`warning`});return}}else R(e)&&await te()}if(r.stepsList[e-1]?.name===`Review`&&r.membership.isTrial&&!r.distroTrialSubmissionHoldEnabled&&(r.submitButtonDisabled=!0),r.stepsList.find(t=>t.step===e)&&(r.currentStepNumber=e,r.$applyAsync()),L()&&r.currentStepNumber===4){await Se();return}if(r.stepsList[r.currentStepNumber-1]?.name===`Review`&&e>r.currentStepNumber){if(r.submitButtonDisabled=!0,r.isSubmitting=!0,r.isFreeRelease){ge(),r.submitButtonDisabled=!1,r.isSubmitting=!1;return}f.getAccess({userId:s.id}).$promise.then(()=>{if(!w.value.has(`distro`)){_e(`distro_submit_release`,ve),r.submitButtonDisabled=!1,r.isSubmitting=!1;return}r.stepsList.flatMap(e=>e.errors??[]).length?i.go(`dashboard.distribution.list`):(ge(),r.submitButtonDisabled=!1,r.isSubmitting=!1)}).catch(e=>{if(e?.status===-1)a.addNotification({title:`Check your internet connection and try again`,autoclose:5e3,classList:`alert`});else{let e=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));X(e,{size:`small`,title:`Membership request error`,contentVHtml:`<div class="row-gap-24"><p class="ds-modal-content-p">Submissions are only available with an active membership. Unfortunately, we are unable to process your request at the moment.</p><p class="ds-modal-content-p">Please try again or save as a draft.</p></div>`,actions:[{label:`Cancel`,color:`secondary`},{label:`Try again`,color:`primary`,onClick:()=>{r.updateDistributionForm(5)}}]})}r.submitButtonDisabled=!1,r.isSubmitting=!1})}return Promise.resolve()}},r.isCopyNotificationActive=!1,r.isCopyNotificationDeclined=!1,r.sourceTrack=null,r.replicationSnapshot=null,r.getSourceTrack=function(){return r.sourceTrack||r.releaseSongs[0]},r.setSourceTrack=function(e){r.sourceTrack=r.releaseSongs[e],a.addNotification({classList:`success`,title:`Source track updated`,autoclose:5e3})},r.pasteSourceTrack=function(e){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroMetadataPaste:e}){e({triggered_from:`track_action_menu`})});let t=r.releaseSongs?.[e];q_(r.getSourceTrack())&&(r.replicationSnapshot=[{audioId:t.audioId,snapshot:JSON.parse(JSON.stringify(t))}],r.releaseSongs[e]=J_(r.getSourceTrack(),t),r.releaseSongs[e].replicated=!0,n.$broadcast(`distro:replication:done`,{audioIds:[t.audio
230Id]}),a.clearAll(),a.addNotification({classList:`success`,title:`Metadata copied`,content:`Copied from [${r.getSourceTrack()?.title}] to [${r.releaseSongs[e].title}].`,action:` 231 <button class="ds-button ds-button-color-secondary ds-button-size-compact" ng-click="$parent.innerScope.undoReplication()"> 232 <span class="ds-button-text"> 233 Undo 234 </span> 235 </button> 236 `,innerScope:{undoReplication:r.undoReplication},autoclose:8e3}))},r.declineCopyNotification=function(){r.isCopyNotificationActive=!1,r.isCopyNotificationDeclined=!0,a.clearAll()},r.undoReplication=function(){if(r.replicationSnapshot?.length){for(let{audioId:e,snapshot:t}of r.replicationSnapshot){let n=r.releaseSongs.findIndex(t=>t.audioId===e);n!==-1&&(Object.assign(r.releaseSongs[n],t),r.releaseSongs[n].replicated=!1,r.$applyAsync())}r.replicationSnapshot=null,n.$broadcast(`distro:replication:undone`),a.clearAll(),a.addNotification({classList:`success`,title:`Undo successful`,autoclose:5e3})}},r.confirmReplicateMetadata=function(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroMetadataPaste:e}){e({triggered_from:`in_app_notification`})}),r.replicationSnapshot=r.releaseSongs.filter(e=>e.audioUrl).map(e=>({audioId:e.audioId,snapshot:JSON.parse(JSON.stringify(e))}));for(let e=0;e<r.releaseSongs.length;e++){let t=r.releaseSongs[e];!t.audioUrl||t.isExisting||t.replicated||(r.releaseSongs[e]=J_(r.getSourceTrack(),r.releaseSongs[e]),r.releaseSongs[e].replicated=!0)}n.$broadcast(`distro:replication:done`,{audioIds:r.releaseSongs.filter(e=>e.replicated).map(e=>e.audioId)}),r.isCopyNotificationActive=!1,a.clearAll(),a.addNotification({classList:`success`,title:`Metadata copied`,content:`Check all the fields and add info where needed.`,action:` 237 <button class="ds-button ds-button-color-secondary ds-button-size-compact" ng-click="$parent.innerScope.undoReplication()"> 238 <span class="ds-button-text"> 239 Undo 240 </span> 241 </button> 242 `,innerScope:{undoReplication:r.undoReplication},autoclose:8e3})},r.showReplicationNotification=function(){r.isCopyNotificationActive||r.isCopyNotificationDeclined||q_(r.getSourceTrack())&&(a.addNotification({title:`Apply to other tracks?`,content:`Use the available details from ${`[${r.getSourceTrack()?.title}]`} for the other tracks?`,action:` 243 <button class="ds-button ds-button-color-primary ds-button-size-compact" ng-click="$parent.innerScope.confirmReplicateMetadata()"> 244 <span class="ds-button-text"> 245 Yes 246 </span> 247 </button> 248 <button class="ds-button ds-button-color-secondary ds-button-size-compact" ng-click="$parent.innerScope.declineCopyNotification()"> 249 <span class="ds-button-text"> 250 No, thanks 251 </span> 252 </button> 253 `,onDismiss:()=>{r.isCopyNotificationActive=!1},innerScope:{confirmReplicateMetadata:r.confirmReplicateMetadata,declineCopyNotification:r.declineCopyNotification}}),r.isCopyNotificationActive=!0)}}]).directive(`pictureUploadPlaceholderFilepicker`,[`Modal`,function(e){return{link:function(t,n){n.on(`click`,function(){pr({accept:`image/*`,multiple:!1}).then(function([n]){n&&ND(e,{release:t.release,shouldUpscaleCoverArt:t.shouldUpscaleCoverArt,file:n})})})}}}]).directive(`pictureUploadPlaceholderDropzone`,[`Modal`,function(e){return{link:function(t,n){n.on(`dragenter`,r),n.on(`dragleave`,i),n.on(`dragover`,a),n.on(`drop`,o);function r(e){e.preventDefault(),e.stopPropagation(),n.addClass(`drag-over`)}function i(e){e.preventDefault(),e.stopPropagation(),n.removeClass(`drag-over`)}function a(e){e.stopPropagation(),e.preventDefault(),n.addClass(`drag-over`)}function o(n){n.preventDefault(),n.stopPropagation();let[r]=n.dataTransfer.files;ND(e,{release:t.release,shouldUpscaleCoverArt:t.shouldUpscaleCoverArt,file:r})}}}}]).directive(`distributionStep3AccordionWrapper`,[`$compile`,`$templateRequest`,`Me`,`Player`,function(e,t,n,r){return{link:function(i,a){let o=h({releaseSong:i.releaseSong,shouldExpand:!1,isUploading:!i.releaseSong.audioUrl||!1,uploadError:i.releaseSong.uploadError||!1,index:i.getTrackIndex(i.releaseSong),numOfTracks:i.releaseSongs.filter(e=>
253e.audioId).length,hasUploadingTrack:i.hasUploadingTrack,onShouldExpandUpdate:function(e){o.shouldExpand=e,e===!0&&i.releaseSong.audioId!==i.getSourceTrack()?.audioId&&!i.releaseSong.replicated&&!i.releaseSong.isExisting&&!i.releaseSong.uploadError&&i.showReplicationNotification()},onCancelUpload:function(){i.cancelUpload()},onErrorIconClick:function(){i.openDeletedTrackInfoModal(i.releaseSong)},onRemoveDeletedTrack:function(){i.removeDeletedTrack(i.releaseSong)},onRemoveTrack:function(){i.removeTrack(i.releaseSong)},onMoveTrackUp:function(e){i.moveTrackUp(e),i.$applyAsync()},onMoveTrackDown:function(e){i.moveTrackDown(e),i.$applyAsync()},onSetSourceTrack:function(){i.setSourceTrack(o.index)},onPasteSourceTrack:function(){i.pasteSourceTrack(o.index)}});if(t(`https://www.bandlab.com/web-app/distribution/partials/_distribution-step-3-accordion-panel-447dffc33.html`).then(function(t){i.$applyAsync(),$(import(`./CJMK2xpn.js`),a[0],i,{panel:e(t)(i),isDeleted:i.releaseSong.isDeleted||!1,Player:r,Me:n},o)}),i.getTrackIndex(i.releaseSong)===0&&i.buildPrefillByRole){let e=i.buildPrefillByRole();i.releaseSong.preFillData=e,e.Lyricist&&(i.releaseSong.language=e.Lyricist.language,i.releaseSong.explicitContent=e.Lyricist.explicitContent)}i.$watch(`releaseSong`,function(e){o.releaseSong={...e},i.$applyAsync()},!0),i.$watch(`releaseSongs`,function(e){o.numOfTracks=e.filter(e=>e.audioId).length,o.index=i.getTrackIndex(i.releaseSong),o.hasUploadingTrack=i.hasUploadingTrack},!0),i.$watch(`releaseSong.audioUrl`,function(e){o.isUploading=!e,o.shouldExpand=i.getTrackIndex(i.releaseSong)===0&&!i.releaseSong.isDeleted&&!!i.releaseSong.audioUrl&&!i.hasUploadingTrack}),i.$watch(`releaseSong.language`,function(e,t){if(e!==t&&e===`ZXX`){i.releaseSong.contributors=(i.releaseSong.contributors||[]).filter(e=>e.type!==`Lyricist`),i.releaseSong.explicitContent=null;let e=i.releaseSong.error;e&&(e.explicitContent=null,e.contributorTypes&&(e.contributorTypes.lyricist=null))}}),i.$watch(`releaseSong.uploadError`,function(e){o.uploadError=e}),i.$watch(`form.$invalid`,function(e){i.releaseSong.isValid=!e}),i.$watch(`form.$pending`,function(e){i.releaseSong.pendingValidation=!!e,i.releaseSong.rejectedReasons&&Object.keys(i.releaseSong.rejectedReasons).forEac
253h(e=>{for(let t of i.releaseSong.rejectedReasons[e])if(e===`title`&&i.form.songTitle){i.form[`songTitle-${i.releaseSong.audioId}`].$dirty&&(t.isAddressed=!0);break}else if(i.form[e]){i.form[`${e}-${i.releaseSong.audioId}`].$dirty&&(t.isAddressed=!0);break}})}),i.$watchGroup([`releaseSongErrors`,`form`,`releaseSongRejectedReasons`],function(){i.releaseSong.error&&Object.keys(i.releaseSong.error).forEach(e=>{if(e===`title`&&i.form[`songTitle-${i.releaseSong.audioId}`])i.form[`songTitle-${i.releaseSong.audioId}`].$setValidity(`valid`,!i.releaseSong.error.title),i.form[`songTitle-${i.releaseSong.audioId}`].errorMessage=i.releaseSong.error.title;else if(e===`artists`||e===`instrumentPerformers`||e===`productionContributors`)for(let t=0;t<i.releaseSong[e].length;t++)i.releaseSong.error[e]&&(i.releaseSong[e][t].error=i.releaseSong.error[e][t]);else if(e===`contributors`&&i.releaseSong.error.contributors){let e=i.releaseSong.error?.contributors?.filter(e=>e.type&&e.type!==`Composer`&&e.type!==`Lyricist`)||[],t=i.releaseSong.error?.contributors?.filter(e=>e.type===`Composer`)||[],n=i.releaseSong.error?.contributors?.filter(e=>e.type===`Lyricist`)||[],r=i.releaseSong.contributors.filter(e=>e.type!==`Composer`&&e.type!==`Lyricist`),a=i.releaseSong.contributors.filter(e=>e.type===`Composer`),o=i.releaseSong.contributors.filter(e=>e.type===`Lyricist`);e.forEach((e,t)=>{r[t]&&(r[t].error=e)}),t.forEach((e,t)=>{a[t]&&(a[t].error=e)}),n.forEach((e,t)=>{o[t]&&(o[t].error=e)})}else i.form[`otherVersion-${i.releaseSong.audioId}`]&&e===`version`&&i.releaseSong.version===i.getVersionNameByOriginalId(`Other`)?(i.form[`otherVersion-${i.releaseSong.audioId}`].$setValidity(`valid`,!i.releaseSong.error[e]),i.form[`otherVersion-${i.releaseSong.audioId}`].errorMessage=i.releaseSong.error[e]):i.form[`remixPolicyAck-${i.releaseSong.audioId}`]&&e===`acknowledgements`?(i.form[`remixPolicyAck-${i.releaseSong.audioId}`].$setValidity(`valid`,!i.releaseSong.error[e]?.remixPolicyAck?.acknowledged),i.form[`remixPolicyAck-${i.releaseSong.audioId}`].errorMessage=i.releaseSong.error[e]?.remixPolicyAck?.acknowledged):i.form[`${e}-${i.releaseSong.audioId}`]&&(i.form[`${e}-${i.releaseSong.audioId}`].$setValidity(`valid`,!i.releaseSong.error[e]),i.form[`${e}-${i.releaseSong.audioId}`].errorMessage=i.releaseSong.error[e])}),i.releaseSong.rejectedReasons&&Object.keys(i.releaseSong.rejectedReasons).forEac
253h(e=>{for(let t of i.releaseSong.rejectedReasons[e])if(e===`title`&&i.form.songTitle){i.form.songTitle.$setValidity(`valid`,t.isAddressed);break}else if(i.form[e]){i.form[e].$setValidity(`valid`,t.isAddressed);break}})});function s(){i.releaseSong.audioId!==i.getSourceTrack()?.audioId&&!i.releaseSong.replicated&&!i.releaseSong.isExisting&&!i.releaseSong.uploadError&&i.showReplicationNotification()}a[0].addEventListener(`focusin`,s,!0),i.$on(`distributionTrackReordered`,function(e,t){i.releaseSong.audioId===t&&(o.shouldExpand=!1)}),i.$on(`$destroy`,function(){a[0].removeEventListener(`focusin`,s,!0)})}}}]).directive(`distributionStep5AccordionWrapper`,[`$compile`,`$templateRequest`,`Me`,`Player`,function(e,t,n,r){return{link:function(i,a){let o=h({releaseSong:i.releaseSong,shouldExpand:!1,index:i.getTrackIndex(i.releaseSong),numOfTracks:i.releaseSongs.filter(e=>e.audioId).length,onShouldExpandUpdate:function(e){o.shouldExpand=e}});t(`https://www.bandlab.com/web-app/distribution/partials/_distribution-step-5-accordion-panel-8613cace3.html`).then(function(t){i.$applyAsync(),$(import(`./WWexwVXR.js`),a[0],i,{panel:e(t)(i),isDeleted:i.releaseSong.revision.isDeleted||!1,Player:r,Me:n,scope:i,pannelStatusChange:s},o)});function s(){i.releaseSong.shouldExpand=!i.releaseSong.shouldExpand,i.$applyAsync()}i.$watch(`releaseSong.shouldExpand`,function(e){o.shouldExpand=e}),i.$on(`distributionTrackReordered`,function(e,t){i.releaseSong.audioId===t&&(o.shouldExpand=!1)})}}}]).directive(`distributionReleaseSongDetails`,[`$injector`,function(e){return{link:function(t,n,r){let i=h({releaseSong:t.releaseSong,languages:t.languages,inWizard:t.$eval(r.inWizard)});$(import(`./CLrJ6MNQ.js`).then(e=>e.t),n[0],t,{scope:t,$injector:e},i),t.$watch(function(e){let{releaseSong:t,languages:n}=e;i.releaseSong=t,i.languages=n},!0)}}}]);function ND(e,t){new e({templateUrl:`https://www.bandlab.com/web-app/distribution/partials/_picture-upload-30bada242.html`,id:`pictureUploadSuccess`,contentScope:t}).show()}angular.module(`bandlab.distribution`).controller(`DistributionReleasesCtrl`,[`$scope`,`$state`,`$stateParams`,`Me`,`Release`,function(e,t,n,r,i){var a=null,o,s=!1;e.$on(`$distributionRelease:deleted`,(t,{releaseId:n})=>{e.releases=e.releases.filter(e=>e.id!==n)}),n.releaseId&&x_({releaseId:n.releaseId,onClose:()=>t.go(`dashboard.distribution.list`,{releaseId:``}),onPageDeleted:t=>{let n=e.releases?.find(e=>e.id===t);n&&(n.page=null)},onUpdateAcceptedCollaborators:(t,n)=>{if(n!==null){let r=e.releases?.find(e=>e.id===t);r.numberOfAcceptedCollaborators=n}},onUpdateState:(t,r)=>{if(r){let i=e.releases?.find(e=>e.id===t);n.category===`in-review`&&r===`Rejected`?(e.releases=e.releases?.filter(e=>e.id!==t),e.$applyAsync()):i.state=r}}});function c(){return s?Promise.resolve([]):(o=i.getList({after:a,limit:30,state:l(),sortBy:n.sortBy,userId:r.id,isSplitEnabled:!0}).$promise.then(function(e){return a=e.paging.cursors.after,s=!a,e.data}),o)}e.loadMore=function(){return e.infiniteScrollEnded?Promise.resolve([]):(o=o.then(function(t){return e.infiniteScrollEnded=s,e.releases||=[],e.releases=e.releases.concat(t),c()}),o)},c().then(e.loadMore);function l(){switch(n.category){case`draft`:return`Draft`;case`in-review`:return`InReview`;case`released`:return`Released`;case`paused`:return`Paused`;case`rejected`:return`Rejected`;default:return``}}}]),angular.module(`bandlab.distribution`).directive(`distributionDashboardToolbar`,[`$state`,function(e){return{link:function(t,n){$(import(`./C1xmVBpb.js`),n[0],t,{$state:e})}}}]),angular.module(`bandlab.distribution`).directive(`distributionSplits`,[`$injector`,function(e){return{scope:{},link:function(t,n){$(import(`./DNL9xAjV.js`),n[0],t,{$injector:e})}}}]),angular.module(`bandlab.distribution`).directive(`distributionTrialBanner`,function(){return{link:function(e,t){$(import(`./IZouqgHd.js`),t[0],e)}}}),angular.module(`bandlab.distribution`).directive(`distributionEditableRoleList`,[`$injector`,function(e){return{restrict:`E`,replace:!0,require:`^form`,template:`<div></div>`,scope:{primaryArtist:`=?`,hasArtistProfile:`<`,audioId:`<`,emptyListError:`=?`,label:`<`,hasPlatformLinks:`<`,hasSeparateNames:`<`,isRequired:`<`,prefillData:`<`,replicated:`<`,roles:`=?`,typeOptions:`<`,historicalInputs:`=?`},link:function(t,n,r,i){let a=null,o=h({audioId:t.audioId,emptyListError:t.emptyListError,hasArtistProfile:t.hasArtistProfile,hasPlatformLinks:t.hasPlatformLinks,hasSeparateNames:t.hasSeparateNames,historicalInputs:t.historicalInputs,isRequired:t.isRequired,label:t.label,prefillData:angular.copy(t.prefillData),replicated:t.replicated,roles:angular.copy(t.roles),roleItems:angular.copy(d()),typeOptions:t.typeOptions,onAddRole:s,onEditRole:c,onRemoveRole:l,onRegisterReplicationHandlers:e=>{a=e}});function s(e){return new Promise(n=>{t.$applyAsync(()=>{let{links:r,...i}=e;if(t.hasSeparateNames){t.roles.push({...i,type:og(t.label)}),f(),n();return}if(t.label===`instrumentPerformers`){t.roles.push({...i,instrument:e.type,role:e.type,typeName:u(e.type)}),f(),n();return}if(t.label===`primaryArtist`){t.primaryArtist={name:e.name??null,...t.hasPlatformLinks?{links:e.links}:{}},n();return}t.roles.push({...t.hasPlatformLinks?e:i,role:e.type,typeName:u(e.type),...t.hasPlatformLinks?{links:r}:{}}),f(),n()})})}function c({roleData:e,sourceIndex:n}){return new Promise(r=>{t.$applyAsync(()=>
253{if(t.label===`primaryArtist`){t.primaryArtist={...t.primaryArtist,name:e.name??null,...t.hasPlatformLinks?{links:e.links}:{}},delete t.primaryArtist.error,r();return}let i=t.roles[n];if(!i){r();return}t.hasSeparateNames?(i.firstName=e.firstName??null,i.lastName=e.lastName??null):i.name=e.name??null,t.typeOptions?.length>0&&(i.type=e.type??null,i.role=e.type??null,i.typeName=u(e.type),t.label===`instrumentPerformers`&&(i.instrument=e.type??null)),t.hasPlatformLinks&&(i.links=e.links),i.error={},r()})})}function l(e){return new Promise(n=>{t.$applyAsync(()=>{t.roles.splice(e,1),n()})})}function u(e){return t.typeOptions?.find(t=>t.id===e)?.name}function d(){if(t.label===`primaryArtist`)return[{role:t.primaryArtist,sourceIndex:0}];let e=(Array.isArray(t.roles)?t.roles:[]).map((e,t)=>({role:e,sourceIndex:t}));return t.label===`composer`||t.label===`lyricist`?e.filter(({role:e})=>e.type?.toLowerCase()===t.label):t.label===`contributors`?e.filter(({role:e})=>e.type?.toLowerCase()!==`composer`&&e.type?.toLowerCase()!==`lyricist`):e}function f(){t.emptyListError=null}function p(){let e=!!t.emptyListError||d().some(({role:e})=>b_(e));i.$setValidity(`editableRole-${t.label}`,!e)}function m(){o.roles=angular.copy(t.roles),o.roleItems=angular.copy(d()),p()}t.$watch(`historicalInputs`,function(){o.historicalInputs=t.historicalInputs}),t.$watch(`replicated`,function(){o.replicated=t.replicated}),t.$watch(`emptyListError`,function(){o.emptyListError=t.emptyListError,p()}),t.$watch(`prefillData`,function(){o.prefillData=angular.copy(t.prefillData)},!0),t.$watch(`primaryArtist`,m,!0),t.$watch(`roles`,m,!0),t.$on(`distro:replication:done`,function(e,t){g(t)&&a?.onDone()}),t.$on(`distro:replication:undone`,function(e,t){g(t)&&a?.onUndone()});function g(e){var n=e?.audioIds;return!Array.isArray(n)||n.includes(t.audioId)}$(import(`./ie4JDLNT.js`),n[0],t,{$injector:e},o)}}}]),angular.module(`bandlab.distribution`).directive(`distributionDatePicker`,function(){return{restrict:`E`,require:`^form`,scope:{inputId:`@`,name:`@`,size:`@`,ariaLabel:`@`,ariaDescribedby:`@`,isDisabled:`<?`,isRequired:`<?`,validationRules:`=`,modelValue:`=`,maxDate:`=`,minDate:`=`},link:function(e,t,n,r){e.ngModelController=r[e.name];let i=h({id:e.inputId,name:e.name,ariaLabel:e.ariaLabel,ariaDescribedby:e.ariaDescribedby,disabled:e.isDisabled,required:e.isRequired,validationRules:e.validationRules,size:e.size,modelValue:e.modelValue,errorMsg:e.ngModelController.$error,maxDate:e.maxDate,minDate:e.minDate,onValidationStatusChange:function(t){e.ngModelController.$setValidity(`valid`,t),e.$applyAsync()}});i[`onUpdate:modelValue`]=t=>{e.modelValue=t,e.ngModelController.$setDirty(),e.$applyAsync()},$(import(`./BPL4Twzl.js`),t[0],e,{},i),e.$watch(`ngModelController.errorMessage`,function(e){i.errorMsg=e}),e.$watch(`isDisabled`,function(e){i.disabled=e}),e.$watch(`maxDate`,function(e){i.maxDate=e}),e.$watch(`minDate`,function(e){i.minDate=e}),e.ngModelController&&(e.ngModelController.$render=()=>{i.modelValue=e.ngModelController.$viewValue})}}}),angular.module(`bandlab.distribution`).directive(`distributionCoverArtPreviewMedia`,[`$injector`,function(e){return{restrict:`E`,replace:!0,template:`<div></div>`,scope:{},link:function(t,n){$(import(`./C9D2sAeG.js`),n[0],t,{$injector:e})}}}]),angular.module(`bandlab.distribution`).directive(`distributionRelease`,[`$injector`,function(e){return{scope:{release:`=`},link:function(t,n){let r=h({release:t.release,onUpdateRelease(e){Object.assign(t.release,e),r.release={...t.release},t.$applyAsync()},onRemoveRelease(){Object.assign(t.release,null),r.release=null,t.$applyAsync()}});$(import(`./Bylz5uw1.js`),n[0],t,{$injector:e},r),t.$watch(`release`,function(e){r.release=e})}}}]),angular.module(`bandlab.distribution`).directive(`distributionReleaseAttachmentField`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,require:`^form`,scope:{initUrl:`@`,id:`@`,name:`@`,acceptedTypes:`@`,maxFileSizeInMb:`=`,maxNumberOfFiles:`=`,exceededMaxFilesErrorMessage:`@`,exceededMaxFileSizeErrorMessage:`@`,modelValue:`=ngModel`,onChange:`&ngChange`,size:`@`},link:function(t,n,r,i){t.ngModelController=i[t.name];let a=h({id:t.id,name:t.name,initUrl:t.initUrl,acceptedTypes:t.acceptedTypes,maxFileSizeInMb:t.maxFileSizeInMb,maxNumberOfFiles:t.maxNumberOfFiles,exceededMaxFilesErrorMessage:t.exceededMaxFilesErrorMessage,exceededMaxFileSizeErrorMessage:t.exceededMaxFileSizeErrorMessage,size:t.size,onUploadSuccess:e=>{t.modelValue.splice(0,t.modelValue.length,...e.map(e=>({fileId:e.id}))),t.$applyAsync()},onValidationStatusChange:e=>{t.ngModelController.$setValidity(`valid`,e),t.$applyAsync()},onRemoveAttachment:e=>{o(t.modelValue,e),t.$applyAsync()}});
253t.$watchCollection(`modelValue`,function(){t.onChange&&t.onChange()});function o(e,t,n=`fileId`){if(!Array.isArray(e))return!1;let r=e.findIndex(e=>e?.[n]===t);return r!==-1&&(e.splice(r,1),!0)}$(import(`./BOtvGijC.js`),n[0],t,{scope:t,$injector:e},a)}}}]),angular.module(`bandlab.distribution`).directive(`distributionReleaseOverviewDetails`,[`$injector`,function(e){return{scope:{genres:`=`},link:function(t,n){let r=Gn(()=>{let{release:e}=MD();return{release:e,genres:t.genres||[],inWizard:!0}},t);$(import(`./DeCELfgI.js`),n[0],t,{scope:t,$injector:e},r)}}}]),angular.module(`bandlab.distribution`).directive(`distributionFormAlert`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,scope:{level:`@`,title:`@`,message:`@`,isAddressed:`=`},link:function(t,n){let r=h({level:t.level,title:t.title,message:t.message,isAddressed:t.isAddressed});t.$watch(`isAddressed`,function(e){r.isAddressed=e}),$(import(`./Edgf4XuS.js`),n[0],t,{$injector:e,scope:t},r)}}}]),angular.module(`bandlab.distribution`).directive(`distributionFormStepPayment`,[`$injector`,`AppNotifications`,`Me`,function(e,t,n){return{restrict:`E`,link:async function(r,i){let a;try{let e=await Od(n.id);jD(e.status)&&(r.tipaltiAccount={gateway:`Tipalti`,payoutMethod:e.payoutMethod})}catch{r.tipaltiAccount=null}let o=h({onTipaltiSetupModalClose:function(){a&&clearInterval(a);let e=0,i=!1;a=setInterval(async function(){if(!i){try{r.setLoading(),r.$applyAsync(),i=!0;let e=await Od(n.id);jD(e.status)&&(o.account={gateway:`Tipalti`,payoutMethod:e.payoutMethod},clearInterval(a),r.enableSubmitButton(),r.$applyAsync(),t.addNotification({title:`Youâre all set!`,content:`You will receive the incoming payouts`,autoclose:8e3,classList:`success`}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroTipaltiError:e}){e({is_timeout:!1})}))}catch(e){let n=await e.response?.json?.()||{message:`Please try again`};t.addNotification({title:`Something went wrong`,content:n.message,classList:`alert`,autoclose:8e3})}finally{i=!1,e>=6&&(r.enableSubmitButton(),r.$applyAsync(),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroTipaltiError:e}){e({is_timeout:!0})}))}e++,e>=7&&clearInterval(a)}},1e3)},account:r.tipaltiAccount,skipCallbackRedirection:!0});$(import(`./DR-8WGLh.js`),i[0],r,{$injector:e},o),r.$on(`$destroy`,function(){clearInterval(a)})}}}]),angular.module(`bandlab.distribution`).component(`distributionTrackUploader`,{transclude:!0,template:`<div ng-click="vm.selectFile();" ng-transclude></div>`,controller:[`$analytics`,`$injector`,`$rootScope`,`ProjectUploader`,function(e,t,n,r){let i=this;i.selectFile=a;function a(){return pr({accept:Wr}).then(function(e){return o(e[0])})}function o(i){let a=t.get(`RevisionImporter`);return a.isAudioFileValid(i,{loader:!1}).then(([t,n])=>{if(!n)throw Error(`Invalid audio file`);if(n<=60){let e=Error(`This track is too short. Please upload a track longer than 60 seconds.`);throw e.shortMessage=`Track too short`,e}e.eventTrack(`Upload New Revision`,{category:`Revision`}),a.createRevisionFromUploadQueue(t,{duration:n})}).catch(e=>{let t={file:i};r.queue.push(t),setTimeout(()=>{n.$broadcast(`$track:errored`,e)})})}}],controllerAs:`vm`}),angular.module(`bandlab.distribution`).directive(`distributionWizardHelpCenterDropdown`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./CdyCqxLr.js`),n[0],t,{$injector:e,scope:t})}}}]),angular.module(`bandlab.distribution`).directive(`distributionRadioSelectCombobox`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div class="ds-form-element"></div>`,require:[`ngModel`,`^?form`],scope:{fieldId:`@`,fieldName:`@`,modelValue:`=ngModel`,options:`=`,placeholder:`@`,validationRules:`=validationRules`,isLocked:`=?`,externalErrorMessage:`=?`},link:function(t,n,r,i){let a=i[0],o=h({fieldId:t.fieldId,fieldName:t.fieldName,modelValue:t.modelValue,options:t.options||[],placeholder:t.placeholder,validationRules:t.validationRules,isLocked:t.isLocked,externalErrorMessage:t.externalErrorMessage,"onUpdate:modelValue":e=>{t.$applyAsync(()=>{a.$setViewValue(e),a.$render()})},onValidationStatusChange:e=>{t.$applyAsync(()=>{a.$setValidity(`vue`,e)})}});
253t.$watch(`modelValue`,e=>{o.modelValue=e}),t.$watch(`isLocked`,e=>{o.isLocked=e}),t.$watch(`externalErrorMessage`,e=>{o.externalErrorMessage=e}),$(import(`./CrDoI7l3.js`).then(e=>e.n),n[0],t,{scope:t,$injector:e},o)}}}]),angular.module(`bandlab.distribution`).factory(`Release`,[`$resource`,function(e){let t=`https://www.bandlab.com/api/v1.3/users`,n=`https://aws.bandlab.com/api/v1.3/users`;return e(t,{},{create:{method:`POST`,url:`${t}/:userId/distro/releases`,params:{userId:`@userId`}},get:{method:`GET`,url:`${t}/:userId/distro/releases/:releaseId`,params:{userId:`@userId`,releaseId:`@releaseId`}},delete:{method:`DELETE`,url:`${t}/:userId/distro/releases/:releaseId`,params:{userId:`@userId`,releaseId:`@releaseId`}},update:{method:`PUT`,url:`${t}/:userId/distro/releases/:releaseId`,params:{userId:`@userId`,releaseId:`@releaseId`}},updateState:{method:`PUT`,url:`${t}/:userId/distro/releases/:releaseId/state`,params:{userId:`@userId`,releaseId:`@releaseId`}},addSong:{method:`PUT`,url:`${t}/:userId/distro/releases/:releaseId/songs`,params:{userId:`@userId`,releaseId:`@releaseId`}},getList:{method:`GET`,url:`${t}/:userId/distro/releases`,params:{userId:`@userId`},preservePagination:!0},getSplitsConfig:{method:`GET`,url:`${n}/:userId/distro/releases/:releaseId/distribution-split-draft`,params:{userId:`@userId`,releaseId:`@releaseId`}},saveSplitConfig:{method:`PUT`,url:`${n}/:userId/distro/releases/:releaseId/distribution-split-draft`,params:{userId:`@userId`,releaseId:`@releaseId`}},picture:{method:`PUT`,url:`${t}/:userId/distro/releases/:releaseId/cover-art`,params:{userId:`@userId`,releaseId:`@releaseId`}},getAccess:{method:`GET`,url:`${t}/:userId/distro`,params:{userId:`@userId`}},getFormOptions:{method:`GET`,cache:!0,url:`${t}/:userId/distro/form-options`,params:{userId:`@userId`}}})}]),angular.module(`bandlab.editor`,[]);function PD(e){let t=Fa(r,1e3),n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener(`change`,t),S(()=>{n.removeEventListener(`change`,t)});function r(r){e(r),n.removeEventListener(`change`,t),n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),n.addEventListener(`change`,t)}}const FD=`Shift`,ID=`Space`,LD=`Delete`,RD=`Backspace`,zD=[{keybindings:[[`S`]],label:`Slice Region`,keywords:`crop cut`,tooltips:[`Slice at Playhead`]},{keybindings:[[`Q`]],label:`Quantize Note`,tooltips:[`Quantize Note`]},{keybindings:[[`â`],[`â`]],label:`Move Playhead / Note`},{keybindings:[[`â`],[`â`]],label:`Transpose Note by 1 Semitone`},{keybindings:[[FD,`â`],[`â`]],label:`Transpose Note by 12 Semitones`},{keybindings:[[RD],[LD]],label:`Delete`},{keybindings:[[`CMD`,`C`]],label:`Copy`},{keybindings:[[`CMD`,`V`]],label:`Paste`},{keybindings:[[`CMD`,`X`]],label:`Cut Region / Note`},{keybindings:[[`CMD`,`A`]],label:`Select All Regions / Note`},{keybindings:[[`CMD`,`Z`]],label:`Undo`},{keybindings:[[`CMD`,FD,`Z`]],label:`Redo`},{keybindings:[[`OPT`,`Drag`]],label:`Duplicate Region / Note`}],BD=[{keybindings:[[`A`]],label:`Toggle Automation`,tooltips:[`Show/Hide Automation`]},{keybindings:[[`C`]],label:`Toggle Cycle`,tooltips:[`Cycle`]},{keybindings:[[`V`]],label:`Toggle Velocity Mode`,tooltips:[`Edit Note Velocity`]},{keybindings:[[FD,`M`]],label:`Mute Track`,tooltips:[`Mute`]},{keybindings:[[FD,`S`]],label:`Solo Track`,tooltips:[`Solo`]},{keybindings:[[FD,`T`]],label:`Add Track`},{keybindings:[[FD,`D`]],label:`Duplicate Track`},{keybindings:[[FD,LD]],label:`Delete Track`}],VD=[{keybindings:[[`L`]],label:`Toggle BandLab Sounds Browser`},{keybindings:[[`CMD`,`-`]],label:`Zoom Out`},{keybindings:[[`CMD`,`+`]],label:`Zoom In`},{keybindings:[[`OPT`,`-`],[`+`]],label:`MIDI Editor Vertical Zoom`},{keybindings:[[`CMD`,`/`]],label:`Toggle Shortcuts Tab`}],HD=[{keybindings:[[ID]],label:`Play / Stop`,tooltips:[`Play`,`Stop`]},{keybindings:[[FD,ID]],tooltips:[`Pause`],label:`Pause / Play from Start of Track / Cycle`},{keybindings:[[`R`]],label:`Record / Stop Recording`,tooltips:[`Start Recording`,`Stop Recording`]},{keybindings:[[`Enter`],[`Return`]],label:`Set Playhead to Beginning of Project`}],UD=[{keybindings:[[`M`]],label:`Toggle Metronome`,tooltips:[`Disable Metronome`,`Enable Metronome`]},{keybindings:[[`G`]],label:`Toggle Snap to Grid`,tooltips:[`Snap to Grid`]},{keybindings:[[`CMD`,`Hold`]],label:`Disable Snap to Grid / Turn on Note Insert Mode`},{keybindings:[[FD,`A`]],label:`Arm Automation Recording`}],WD=[{keybindings:[[`CMD`,`S`]],label:`Save Revision`}],GD=[{keybindings:[[`â`],[`â`]],label:`Previous / Next Sounds Preview`},{keybindings:[[FD,`Click`]],label:`Add automation point to selection`},{keybindings:[[`CMD`,`Click`]],label:`Set start time in Sampler`},{keybindings:[[`CMD`,`Double click`]],label:`Set end time in Sampler`},{keybindings:[[FD,`Drag`]],label:`Fine tune Effect parameter`}];function KD(){return[{category:`Edit`,shortcuts:zD},{category:`Tools`,shortcuts:BD},{category:`View`,shortcuts:VD},{category:`Transport`,shortcuts:HD},{category:`Settings`,shortcuts:UD},{category:`Project`,shortcuts:WD}
253,{category:`Special`,shortcuts:GD}].map(({category:e,shortcuts:t})=>({category:e,shortcuts:t.map(t=>({...t,category:e,shortcutString:YD(t.keybindings)}))}))}const qD=KD(),JD={Edit:`Edit`,Tools:`Tools`,View:`View`,Transport:`Transport`,Settings:`Settings`,Project:`Project`,Special:`Special`};function YD(e){return Array.from(new Set(e.map(e=>e.map(e=>{switch(e){case RD:case LD:return`â«`;case`CMD`:return vn?`â`:`Ctrl`;case`OPT`:return vn?`â¥`:`Alt`;case`â`:return`Up`;case`â`:return`Down`;case`â`:return`Left`;case`â`:return`Right`;default:return e}}).join(` + `)))).join(` or `)}function XD(e,t=qD){if(!e)return;let n=t.flatMap(e=>e.shortcuts).find(t=>t.tooltips?.includes(e)||t.label===e||t.label.includes(e))?.shortcutString;return n?`${e} (${n})`:e}function ZD(e,t=qD){if(e)return t.flatMap(e=>e.shortcuts).find(t=>t.tooltips?.includes(e)||t.label===e||t.label.includes(e))?.shortcutString}const QD=we(function(){let e=document.createElement(`div`);e.style.visibility=`hidden`,e.style.overflowY=`scroll`,e.style.padding=`0`,e.style.border=`none`;let t=document.createElement(`div`);t.style.padding=`0`,t.style.border=`none`,document.body.appendChild(e),e.appendChild(t);let n=e.offsetWidth-t.offsetWidth;return e.parentNode.removeChild(e),n});var $D=n({accToAlt:()=>wc,altToAcc:()=>fc,coordToInterval:()=>_c,coordToNote:()=>vc,coordinates:()=>Sc,deprecate:()=>eO,distance:()=>Tc,interval:()=>dc,isNamedPitch:()=>yc,isPitch:()=>gc,note:()=>Ec,pitch:()=>hc,stepToLetter:()=>pc,tokenizeInterval:()=>xc,tokenizeNote:()=>mc,tonicIntervalsTransposer:()=>bc,transpose:()=>Cc});function eO(e,t,n){return function(...e){return n.apply(this,e)}}function tO(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}function nO(e,t){if(e!==t){var n=e!==void 0,r=e===null,i=e===e,a=Se(e),o=t!==void 0,s=t===null,c=t===t,l=Se(t);if(!s&&!l&&!a&&e>t||a&&o&&c&&!s&&!l||r&&o&&c||!n&&c||!i)return 1;if(!r&&!a&&!l&&e<t||l&&n&&i&&!r&&!a||s&&n&&i||!o&&i||!c)return-1}return 0}function rO(e,t,n){for(var r=-1,i=e.criteria,a=t.criteria,o=i.length,s=n.length;++r<o;){var c=nO(i[r],a[r]);if(c)return r>=s?c:c*(n[r]==`desc`?-1:1)}return e.index-t.index}function iO(e,t,n){t=t.length?$e(t,function(e){return Ye(e)?function(t){return Ze(t,e.length===1?e[0]:e)}:e}):[Ni];var r=-1;return t=$e(t,zn(Mi)),tO(Ym(e,function(e,n,i){return{criteria:$e(t,function(t){return t(e)}),index:++r,value:e}}),function(e,t){return rO(e,t,n)})}var aO=Fu(function(e,t){if(e==null)return[];var n=t.length;return n>1&&Pi(e,t[0],t[1])?t=[]:n>2&&Pi(t[0],t[1],t[2])&&(t=[t[0]]),iO(e,Mu(t,1),[])});const oO=Array.from({length:128},(e,t)=>128-(t+1)),sO=`fold`,cO=`scale`,lO=O(null),uO=O(!1);function dO(e,t){if(uO.value&&lO.value===`fold`&&!e){t(cO),lO.value=cO;return}t(e),lO.value=e}const fO=U(()=>{let e=wy.value.tonal||wy.value.label,t=Ty.value.tonal||Ty.value.label;return cx.get([e,t]).notes});let pO=mO;function mO(){}function hO(e){pO=e}function gO(){pO(),pO=mO}const _O=O([]),vO=O(_O.value);function yO(){let e=re(_O,()=>{let t=vO.value.concat(_O.value);t=Array.from(new Set(t)),vO.value=t,e()})}re([wy,lO,vy,Ty],()=>{vO.value=_O.value});const bO=U(()=>oO.filter(e=>{if(!lO.value)return!0;if(vO.value.length===0){if(lO.value===`fold`)return!0;if(lO.value===`scale`)return AO(Ec(Oc.fromMidi(e)).pc)}let t=vO.value.includes(e);if(lO.value===`fold`)return t;if(lO.value===`scale`)return t||AO(Ec(Oc.fromMidi(e)).pc)})),xO=U(()=>bO.value.slice().map(e=>{let t=Ec(Oc.fromMidi(e));return{...t,enharmonic:Oc.enharmonic(t.pc)}})),SO=U(()=>[...bO.value].reverse());re(bO,()=>{document.body.style.setProperty(`--midi-editor-piano-roll-row-count`,bO.value.length.toString())});function CO(){yy.value=hy,uO.value=!1,lO.value=null,_O.value=[],gO()}function wO(e){return U({get:()=>uO.value,set:t=>{pa(t),uO.value=t;let n=lO.value===sO;(n&&t&&_O.value.length===0||!n&&t)&&dO(cO,e),!n&&!t&&dO(null,e)}})}const TO=O(oO.reduce((e,t)=>(e[t]=!1,e),{})),EO=O(oO.reduce((e,t)=>(e[t]=!1,e),{}));function DO(e){return uO.value&&AO(e)}function OO(e){return uO.value&&jO(e)}function kO(e){let t=Oc.enharmonic(e),n=fO.value.map(e=>Oc.simplify(e)),r=n.indexOf(e);return r<0&&(r=n.indexOf(t)),{actual:fO.value[r],simplified:n[r]}}function AO(e){let t=kO(e).actual;return fO.value.includes(t)}function jO(e){return kO(e).actual===(wy.value.tonal||wy.value.label)}function MO(e,t){let n=SO.value.indexOf(e);return n=wt(n+t,0,bO.value.length-1),SO.value[n]}function NO(e){let t=aO(e,`midiNote`),n=t[t.length-1],r=t[0],i=SO.value.indexOf(n.midiNote);return{infDeltaMidiNote:-SO.value.indexOf(r.midiNote),supDeltaMidiNote:bO.value.length-1-i}}const PO=O(10),FO=O(16),IO=U({get:()=>lO.value?FO.value:PO.value,set:e=>{if(lO.value){FO.value=e,RO(`--midi-roll-key-simple-height`,e);return}LO(e)}});function LO(e){PO.value=e,RO(`--midi-roll-key-skeuomorphic-height`,e);let t=e*7,n=Math.floor(e*7/4),r=e*5,i=Math.floor(e*5/3),a={FtoB:[n,(t-n*2)/2],CtoE:[i,r-i*2]};RO(`--midi-editor-roll-piano-keys-white-ftob-1-height`,a.FtoB[0]),RO(`--midi-editor-roll-piano-keys-white-ftob-2-height`,a.FtoB[1]),RO(`--midi-editor-roll-piano-keys-white-ctoe-1-height`,a.CtoE[0]),RO(`--midi-editor-roll-piano-keys-white-ctoe-2-height`,a.CtoE[1])}function RO(e,t){document.documentElement.style.setProperty(e,`${t}px`)}const zO=O(null);let BO;function VO(e){clearTimeout(BO),IO.value=HO(e),BO=setTimeout(()=>{GO()},300)}function HO(e){return wt(IO.value+e,10,194)}function UO(e,t,n,r){let{y:i,height:a}=t.getBoundingClientRect(),o=e+((r?r.y:i+a/2)-i-22);
253if(!zO.value){let e;e=Math.floor(o/IO.value),e=wt(e,0,bO.value.length-1),zO.value={originRowIndex:e}}let s=zO.value.originRowIndex*IO.value,c=zO.value.originRowIndex*HO(n),l=s-e;return e+(c-e-l)}function WO(){LO(10),FO.value=16,GO()}function GO(){clearTimeout(BO),zO.value=null}function KO(e){return IO.value===10&&e<0||IO.value===194&&e>0}const qO={title:`Next`,hasCaret:!0},JO={escapeClose:!1,overlayClose:!1},YO=J(()=>import(`./CnSPfPb2.js`));function XO(){document.body.classList.remove(`studio-tutorial-mode`),dC.value=null,fC.value=-1,document.querySelectorAll(`.tutorial-active`).forEach(e=>e.classList.remove(`tutorial-active`))}function ZO(e,t=1500){let n=document.querySelector(e);return n?Promise.resolve(n):new Promise(n=>{let r=new MutationObserver(t=>{for(let i of t)i.type===`childList`&&i.addedNodes.length!==0&&i.addedNodes.forEach(t=>{if(t.nodeType!==Node.ELEMENT_NODE)return;let i=t,a=i.matches(e)?i:i.querySelector(e);a&&(n(a),r.disconnect())})});setTimeout(()=>{n(),r.disconnect()},t),r.observe(document.body,{childList:!0,subtree:!0})})}function QO(e,t){dC.value?(rk(),n()):(document.body.classList.add(`studio-tutorial-mode`),setTimeout(n,350));function n(){dC.value=e,fC.value=0,pC.stepAccentColorName=void 0,pC.stepHighlighterAccentColorName=void 0,Promise.resolve(e.onBeforeInitLesson(t)).then(n=>{if(n===`begin`&&(tk(pC.currentStep),ik(t,!0),X(YO,{params:t},JO),e.onAfterCreateLessonModal))return e.onAfterCreateLessonModal(t);n===`cancel`&&$O(t)})}}function $O(e,t){if(!dC.value)return;let n=Promise.resolve();t?.abort&&dC.value.onAbortLesson&&(n=dC.value.onAbortLesson(e,t)),!t?.abort&&dC.value.onBeforeLessonEnd&&(n=dC.value.onBeforeLessonEnd(e,t)),dC.value=null,fC.value=-1,n.then(()=>{rk(),ik(e,!1),setTimeout(()=>document.body.classList.remove(`studio-tutorial-mode`),350)})}function ek({delay:e}={}){if(!dC.value)return;let t=Math.min(fC.value+1,dC.value.steps.length),n=dC.value.steps[t];if(!n)throw Error(`Expected next step, but reached end of lesson`);setTimeout(()=>{(n.targetEl?ZO(n.targetEl.selector):Promise.resolve()).then(()=>{nk(pC.currentStep),tk(n),fC.value=t})},e||0)}function tk(e){if(e&&e.targetEl){let t=document.querySelector(e.targetEl.selector);t&&t.classList.add(`tutorial-active`)}}function nk(e){if(e&&e.targetEl){let t=document.querySelector(e.targetEl.selector);t&&t.classList.remove(`tutorial-active`)}}function rk(){document.querySelectorAll(`.tutorial-active`).forEach(e=>e.classList.remove(`tutorial-active`))}function ik(e,t){let n=e.$injector.get(`$rootScope`),r=e.$injector.get(`EditorState`);if(n.$applyAsync(()=>r.isInBackground=t),t){let e=n.$watch(()=>r.isInBackground,t=>{if(dC.value){if(t)return;r.isInBackground=!0;return}e()})}}function ak(){let e=Promise.resolve();function t(n){return e=e.then(()=>new Promise(e=>setTimeout(e,350))).then(n),{afterDelay:t}}return{afterDelay:t}}function ok(e,t){(e?document.getElementById(e):t?document.querySelector(t):null)?.click()}function sk(e,t){e.value=t,e.dispatchEvent(new Event(`input`,{bubbles:!0,cancelable:!0})),e.blur()}function ck(e){ak().afterDelay(()=>ok(`studio-menu-hamburger-button`)).afterDelay(()=>{let e=document.getElementById(`studio-menu-help-submenu`);e&&(e.style.visibility=`visible`)}).afterDelay(()=>e(`begin`))}function lk(){return new Promise(e=>ck(e))}function uk(){return ok(`studio-menu-hamburger-button`),Promise.resolve()}const dk={onBeforeInitLesson:lk,onBeforeLessonEnd:uk,steps:[{title:`Get Started`,content:`You can take the introduction tour at any time later, by going to the <strong>Help</strong> section under the menu top left of the screen.`,targetEl:{selector:`#studio-menu-start-tutorial-button`,direction:`right`},highlighter:{direction:`right`},hideProgress:!0,buttonForward:{title:`Got It`,hasCaret:!1,callback:$O}}]},fk=J(()=>import(`./CBtJlJxd.js`));function pk(e,t){return e.get(`EditorTrack`).addTrack(t)}async function mk(e,t){let n=e.get(`$rootScope`),r=e.get(`EditorPlayer`),i=e.get(`EditorRevision`);i.selectedTrack.volume=t,await r.current.setTrackVolume(i.selectedTrack,t),Q.start(`syncVolume`),n.$applyAsync()}function hk(e,t,n){let r=e.get(`$rootScope`);e.get(`EditorCycle`).set(t,n),r.$applyAsync()}async function gk(e,t){let n=e.get(`EditorPlayer`),r=e.get(`EditorState`);r.isCycling=t,await n.current.setCycleState(t)}function _k(e){let{$injector:t}=e;return new Promise(e=>{X(fk,{resolve:e,isEnd:!1},JO)}).then(n=>{if(n===`begin`){let e=t.get(`EditorRevision`),n=t.get(`EditorTimeline`);e.current.key=`D minor`,n.updateBpm(120)}return n===`maybe`&&(ra(0,`start`,!1),QO(dk,e)),t.get(`Identity`).setUsedStudio(),n})}function vk(e,t){let n=e.lastSeenStep+1;import(`./DvQD5s06.js`).then(e=>e.t).then(({logStudioGuidedOnboardingFinish:r})=>r(n,e.lastSeenName,t))}const yk=(e,t)=>(t?.analyticsData&&vk(t.analyticsData,!1),Promise.resolve()),bk=e=>{let{getDemoProjects:t,openTemplateInStudio:n}=e.scope;return new Promise(e=>{X(fk,{resolve:()=>{vk({lastSeenStep:xk().steps.length,lastSeenName:`save_project`},!0),e()},isEnd:!0,getDemoProjects:t,openTemplateInStudio:n},JO)})};function xk(){let e=[{title:`Add a Track`,videoURL:`https://strapi.bandlab.com/assets/1_New_Track_63c20d0eae.mp4`,content:`In order to add musical elements to your song, youâll need to add a track. Weâll show you how in the next step.`,buttonForward:{...qO,callback:({scope:e})=>{e.displayAddTrack(),ek({delay:350})}},analytics:{stepName:`add_tracks`}},{title:`Add a Drum Beat`,content:`For now, letâs start by adding a beat as a foundation for your song.`,targetEl:{selector:`#studio-add-track-modal-drum-machine-button`,direction:`right`},highlighter:{direction:`right`},buttonForward:{...qO,callback:function({$injector:e}){let t=e.get(`$rootScope`),n=e.get(`EditorRevision`),r=e.get(`EditorState`);ok(`studio-add-track-modal-drum-machine-button`),r.isAudioInputActive=!1;let i=t.$watch(()=>n.selectedTrack,t=>{t.type===`drum-machine`&&(i(),mk(e,.45).catch(()=>{}).finally(ek))})}},analytics:{stepName:`add_drum`}},{title:`Program Drums`,content:`Weâve set a drum pattern for you and enabled the preview for you to hear it in action!`,targetEl:{selector:`#studio-tutorial-welcome-beat-starter`,direction:`right`},highlighter:{direction:`right`},buttonForward:{...qO,callback:({$injector:e})=>{let t=e.get(`DrumMachine`);
253ok(`studio-tutorial-welcome-beat-starter`),t.toggle(),ek()}},analytics:{stepName:`program_drum`}},{title:`Program Drums`,content:`Weâve set a drum pattern for you and enabled the preview for you to hear it in action!`,targetEl:{selector:`#studio-tutorial-welcome-audio-input-panel`,direction:`top`},highlighter:{direction:`top`},buttonForward:{...qO,callback:({$injector:e})=>{e.get(`DrumMachine`).stop(),ek()}},analytics:{stepName:`hear_drum`}},{title:`Set Project Tempo`,content:`Great! Now that you have a drum beat, letâs set the âproject tempoâ to make the beat run faster or slower. <em>(bpm stands for Beats Per Minute)</em>`,targetEl:{selector:`#studio-toolbar-met-bpm-tsig`,direction:`bottom`},highlighter:{},buttonForward:{...qO,callback:({scope:e})=>{e.setProjectTempo(125),document.getElementById(`studio-toolbar-bpm`)?.classList.add(`tutorial-active`),ek()}},analytics:{stepName:`view_tempo`}},{title:`Set Project Tempo`,content:`Great! Now that you have a drum beat, letâs set the âproject tempoâ to make the beat run faster or slower. <em>(bpm stands for Beats Per Minute)</em>`,targetEl:{selector:`#studio-toolbar-met-bpm-tsig`,direction:`bottom`},highlighter:{},buttonForward:{...qO,callback:({scope:e})=>{e.hidePanel(),document.getElementById(`studio-toolbar-bpm`)?.classList.remove(`tutorial-active`),ek()}},analytics:{stepName:`set_tempo`}},{title:`Add Effects`,content:`This is a good time to spice up that drum beat. Weâre going to use an Effect from our wide range of <em>fx</em> <strong>Presets</strong> for that. Effect Presets help color the audio signal.`,videoURL:`https://strapi.bandlab.com/assets/2_Add_an_effect_42356a6a51.mp4`,targetEl:{selector:`#mix-editor-footer-preset-settings`,direction:`top`},highlighter:{direction:`top`},buttonForward:{...qO,callback:({scope:e})=>{e.displayPresetSettings(),ek()}},analytics:{stepName:`add_effects`}},{title:`Add a Preset`,content:`We have chosen a preset that makes the drums sound more natural by adding a bit of reverb.`,videoURL:`https://strapi.bandlab.com/assets/2_Add_an_effect_42356a6a51.mp4`,targetEl:{selector:`#studio-preset-selector-carousel`,direction:`right`},highlighter:{direction:`left`},buttonForward:{...qO,callback:({$injector:e,scope:t})=>{let n=e.get(`EffectsPreset`);t.selectPreset(n.getBySlug(`woodenRoom`)),ek()}},analytics:{stepName:`add_preset`}},{title:`BandLab Sounds`,content:`Time to add your second track. BandLab has a large collection of preâmade Sounds for you to choose from!`,targetEl:{selector:`#mix-editor-footer-loops`,direction:`top`},highlightOnEnter:!0,highlighter:{direction:`top`},buttonForward:{...qO,callback:({scope:e})=>{e.hidePanel(),e.displayTab(`Loops`),ok(`studio-tutorial-welcome-7`),ek()}},analytics:{stepName:`bl_sounds`}},{title:`BandLab Sounds`,content:`For now, weâve preselected a melody loop for you.`,targetEl:{selector:`#mix-editor-footer-loops`,direction:`top`},highlighter:{direction:`top`},buttonForward:{...qO,callback:({$injector:e,scope:t})=>{let n=e.get(`EditorImporter`),r=e.get(`EditorPlayback`),i=e.get(`EditorRevision`),a=`fab7fa20-07de-4f66-92cc-aee1f6906b3d`,o=en(i.current.metronome);Un.get(`https://static.bandlab.com/samples-original/${a}/${a}.wav`).blob().then(async t=>{let r=o*4,i=await pk(e,{type:`voice`,name:`Audio`});return n.importFile({time:r,track:i,file:t})}).then(()=>mk(e,.45)).then(()=>gk(e,!0)).then(()=>{hk(e,o*4,o*8),r.togglePlay()}).catch(()=>{}).finally(()=>{t.closeSideTab(),t.hidePanel(),ek({delay:300})})}},analytics:{stepName:`bl_sounds_selected`}},{title:`BandLab Sounds`,content:`For now, weâve preselected a melody loop for you.`,targetEl:{selector:`#mix-editor-footer-loops`,direction:`top`},highlighter:{direction:`top`},buttonForward:{...qO,callback:({$injector:e})=>{let t=e.get(`EditorPlayback`),n=e.get(`EditorRevision`),r=e.get(`EditorPlayer`),i=en(n.current.metronome);t.togglePlay(),r.setPlaybackPosition(0),hk(e,0,i*4),gk(e,!1).then(()=>ek())}},analytics:{stepName:`bl_sounds_hear`}},{title:`Add a MIDI Track`,videoURL:`https://strapi.bandlab.com/assets/3_Add_a_MIDI_cc3f8b3fb7.mp4`,content:`Time to add a bassline! Weâre going to use a MIDI track for this so we can play the notes on our keyboard or MIDI controller.`,buttonForward:{...qO,callback:()=>{ok(`mix-editor-add-track-button`),ek({delay:500})}},analytics:{stepName:`add_midi`}},{title:`Letâs add a MIDI bassline`,content:`Hit Next to add a <strong>Virtual Instrument</strong> track so we can start creating a bassline.`,targetEl:{selector:`#studio-add-track-flyout-midi-button`,direction:`right`},highlighter:{direction:`right`},buttonForward:{...qO,callback:async({$injector:e,scope:t})=>{ok(`mix-editor-add-track-button`),await t.addTrackAndDisplayPanel({type:`piano`,name:`Bassline`}),mk(e,.4).then(()=>ek())}},analytics:{stepName:`add_midi_bassline`}},{title:`Select Soundbank`,content:`This is where you select your bass sound. For now, we have preselected one for you from our <strong>Virtual Instruments</strong>.`,targetEl:{selector:`#studio-soundbank-flyout-button`,direction:`bottom`},highlighter:{},buttonForward:{...qO,callback:()=>{ak().afterDelay(async()=>{ok(`studio-soundbank-flyout-button`);let e=await ZO(`#studio-soundbank-flyout-search-input input`);e instanceof HTMLInputElement&&sk(e,`Bass Lead`)}).afterDelay(()=>{ok(null,`.studio-flyout-list-item`),ek()})}},analytics:{stepName:`select_soundbank`}},{title:`Select Soundbank`,content:`This is where you select your bass sound. For now, we have preselected one for you from our <strong>Virtual Instruments</strong>.`,targetEl:{selector:`#studio-soundbank-flyout-button`,direction:`bottom`},highlighter:{},buttonForward:{...qO,callback:({$injector:e,scope:t})=>{let n=e.get(`EditorImporter`),r=e.get(`EditorRevision`);Je.get(`https://strapi.bandlab.com/assets/studio_tutorial_welcome_bassline_62330fec8a.mid`).blob().then(e=>n.importFile({file:e,time:0,track:r.current.tracks[r.current.tracks.length-1]})).then(()=>{t.hidePanel();let e=r.current.tracks[r.current.tracks.length-1]?.regions[0];if(!e)throw ReferenceError(`Could not find newly imported region`);e.endPosition=en(r.current.metronome)*8,e.loopLength=en(r.current.metronome)*4,document.querySelector(`.mix-editor-region[data-id="${e.
253id}"]`)?.setAttribute(`id`,`studio-tutorial-welcome-10`)}).catch(()=>{}).finally(ek)}},analytics:{stepName:`select_soundbank_bass`}},{title:`Record MIDI`,content:`Hereâs an example of a bassline with MIDI notes.`,targetEl:{selector:`#studio-tutorial-welcome-10`,direction:`bottom`},highlighter:{},buttonForward:{...qO,callback:({$injector:e})=>{let t=e.get(`EditorRevision`);hk(e,0,en(t.current.metronome)*8),ek()}},analytics:{stepName:`record_midi`}},{title:`Arrange Song`,content:`If you want to hear all the parts of the song from start to end, weâll need to set the <strong>Cycle</strong> to the full 8 bars.`,videoURL:`https://strapi.bandlab.com/assets/4_Arrangement_76237738b1.mp4`,buttonForward:{...qO,callback:({$injector:e})=>{let t=e.get(`EditorPlayback`);gk(e,!0).then(()=>{t.togglePlay(),ek()})}},analytics:{stepName:`arrange_song`}},{title:`Cycle Enabled`,content:`<strong>Cycle</strong> allows you to listen to a section of your project in a continuous loop. This can be helpful for practicing, songwriting, and mixing.`,targetEl:{selector:`#mix-editor-cycle`,direction:`bottom`},highlighter:{direction:`bottom`},buttonForward:{...qO,callback:({$injector:e})=>{e.get(`EditorPlayback`).stop(),ek()}},analytics:{stepName:`cycle_enable`}},{title:`Mix your song`,content:`Now that we have a couple of tracks, we can adjust their volume to make them sound good together.`,videoURL:`https://strapi.bandlab.com/assets/5_Mixing_345fae84e2.mp4`,buttonForward:{...qO,callback:({$injector:e})=>{let t=e.get(`EditorRevision`),n=t.current.tracks[t.current.tracks.length-1];if(!n)throw ReferenceError(`Could not find lastTrack`);document.querySelector(`.mix-editor-track-header[data-id="${n.id}"]`)?.querySelector(`.mix-editor-slider-cursor`)?.setAttribute(`id`,`studio-tutorial-welcome-12`),ek()}},analytics:{stepName:`mix_song`}},{title:`Levels`,content:`Here you can adjust the track volume by dragging the slider. Keep an eye on the output meter, you want to avoid the output signal going in the red.`,targetEl:{selector:`#studio-tutorial-welcome-12`,direction:`right`},highlighter:{direction:`right`},buttonForward:{...qO,callback:({$injector:e})=>{let t=e.get(`EditorRevision`),n=t.current.tracks[t.current.tracks.length-1];if(!n)throw ReferenceError(`Could not find lastTrack`);document.querySelector(`.mix-editor-track-header[data-id="${n.id}"]`)?.querySelector(`.mix-editor-track-header-solo-mute`)?.setAttribute(`id`,`studio-tutorial-welcome-13`),ek()}},analytics:{stepName:`adjust_volume`}},{title:`Mute and Solo`,content:`Do you only want to hear certain tracks at a time? Use the <strong>Solo</strong> and <strong>Mute</strong> functions!`,targetEl:{selector:`#studio-tutorial-welcome-13`,direction:`right`},highlighter:{direction:`right`},buttonForward:{...qO,callback:()=>{sk(document.getElementById(`studio-project-name-input`),`My Song`),ek()}},analytics:{stepName:`mute_solo`}},{title:`Name Project`,content:`Time to give your Project a name!`,targetEl:{selector:`#studio-project-name-input`,direction:`bottom`},highlighter:{},buttonForward:{...qO,callback:()=>ek()},analytics:{stepName:`name_project`}},{title:`Save Project`,content:`Save your progress and come back to your project at any time. When youâre happy with the result, you can publish, master, and distribute it to digital platforms using BandLab Distribution.`,targetEl:{selector:`#studio-header-save-button`,direction:`bottom`},highlighter:{direction:`bottom`},buttonForward:{...qO,callback:({$injector:e,scope:t})=>{e.get(`Editor`).startSave({publish:!1}).finally(()=>{$O({$injector:e,scope:t})})}},analytics:{stepName:`save_project`}}];return{onAbortLesson:yk,onBeforeInitLesson:_k,onBeforeLessonEnd:bk,steps:e}}function Sk(e,t){let n=e.get(`EditorState`),r=e.get(`EditorRevision`),i=e.get(`EditorHistory`),a=e.get(`AppNotifications`),o=e.get(`EditorPlayer`),s=e.get(`EditorPlayback`),c=e.get(`$rootScope`),l=U(()=>n.currentActiveTab===`Mastering`),{requireStudioMembership:u,availableFeaturesSet:d}=Eo(e),{masteringDataPaywallReason:f,getMasteringAccessBlockedDetails:p,getResetMasteringUpdateData:m}=_u(d),g=null,_=[],v=O(null),y=O(null),x=O(!1),S=fu(),{highlightedParameters:C,parameterHighlightChanges:w,highlightParameters:T}=hu(),{referenceTracksBySongId:E,currentReferenceTrack:D,isReferenceMatchApplied:k,setReferenceTrack:A,removeReferenceTrack:j,matchToReference:M}=ku(U(()=>ne(r.current)),U(()=>P.value),{AppNotifications:a,progressQueue:S});re(()=>ne(r.current),(e,t)=>{if(E.clear(),g=null,!tt(t)){let t=E.get(`new`);t&&E.set(e,t)}});let N=h({});
253t.$watch(`revision.mastering`,e=>{v.value=e}),re(v,e=>{r.current.mastering=e}),re(l,()=>{if(y.value=l.value?v.value:null,l.value){if(v.value===null)z({bypass:!0});else{let{version:e,...t}=v.value;z({...t,bypass:!1})}}}),re(()=>n.isSaving,()=>{n.isSaving&&l.value&&V(r.current)&&a.addNotification({title:`Unapplied Mastering changes not saved`,classList:`warning`,autoclose:5e3})});let P=U(()=>l.value?y.value:v.value);re(l,()=>{l.value&&o.current.addMixOverride(`mastering`,e=>({...e,mastering:P.value})),b(()=>{o.current.removeMixOverride(`mastering`)})}),re(P,()=>{o.current.updateMasteringData&&o.current.updateMasteringData(P.value)});let F=[`lowFreqGain`,`midFreqGain`,`highFreqGain`].reduce((e,t)=>(e[t]=du({metadata:Su[t],uiValue:U(()=>!P.value||!vu(P.value)?bu[t]:P.value[t]??bu[t]),setUIAndGlobalValue:e=>z({[t]:e,bypass:!1,eqBypass:!1})}),e),{});return{applyMasteringDataToRevision:ie,eqBypass:U(()=>!P.value||!Cu(P.value)?bu.eqBypass:P.value.eqBypass),setEqBypass:e=>z({eqBypass:!e,bypass:!1}),eqControlModels:F,parameterHighlightChanges:w,hasUnappliedChanges:V,highlightedParameters:C,isSidetabOpen:l,masteringData:P,masteringDataCache:N,mixdownAndComputeInputGain:B,onAttemptCloseSideTab:H,selectPreset:e=>z({preset:e,bypass:!1}),updateMasteringData:z,onBeforeCloseSidetab:ee,referenceTrack:D,isReferenceMatchApplied:k,isReferenceMatching:x,selectAndMatchToReference:te,removeReferenceTrack:I,matchToReference:L};function ee(e){_.push(e)}async function te(){if(x.value)return;s.pausePlay();let{mixHandler:e}=o.current;if(await e.getMixDuration()<10){a.addNotification({id:`ref-mastering-len-warn`,title:`Please make sure your song is at least 10 seconds long`,classList:`warning`,autoclose:5e3});return}await A(ne(r.current))&&(await R(),s.startPlay()),t.$applyAsync()}function I(){s.pausePlay(),j(ne(r.current))}async function L(){if(x.value)return;s.pausePlay();let{mixHandler:e}=o.current;if(await e.getMixDuration()<10){a.addNotification({id:`ref-mastering-len-warn`,title:`Please make sure your song is at least 10 seconds long`,classList:`warning`,autoclose:5e3});return}await R(),s.startPlay(),t.$applyAsync()}async function R(){if(x.value)return;if(!P.value)throw Error(`Mastering data not found to start reference matching`);let{mixHandler:t}=o.current;x.value=!0;try{let n=!0;if(g){let e=await t.getChangeSet(g);(e.addedTracks.length>0||e.deletedTracks.length>0||e.modifiedTracks.length>0)&&(await t.forgetState(g),n=!1)}else n=!1;let i=await M({songId:ne(r.current),preset:P.value.preset,reuseExistingResult:n,renderOriginalWav:async t=>{let{blob:n}=await e.get(`EditorMixdown`).renderRevisionToWav(r.current,{$injector:e},{onProgress:t});return n}});if(!i){x.value=!1;return}a.addNotification({id:`mastering-reference-matching-complete`,title:`Reference matching complete`,classList:`success`,autoclose:5e3});let o=mu(P.value,i),s=iu(P.value,o);s&&await z({...s,bypass:!1},!1),T(o,{applyParameters:e=>z({...e,bypass:!1},!1),onComplete:async()=>{try{await z({...i,bypass:!1},!1),await ie(!0)}finally{x.value=!1}}}),n||(g=ze(),await t.rememberCurrentState(g))}catch{x.value=!1}}function ne(e){return e.song?.id||`new`}async function z(e,t=!0){let a=pn(e.preset??P.value?.preset??`cdMaster`),o=Tu(P.value?.version),s=e.inputGain??P.value?.inputGain,u=await yu({...N[a],...e,preset:a,version:o,inputGain:s});N[a]=u,Object.keys(N).forEach(e=>{N[e]&&(N[e]={...N[e],inputGain:u.inputGain})}),l.value?y.value=u:(aa(gu(u,n.songDuration,`studio`)),t&&(i.pushUndo(r.current),c.$applyAsync()),v.value=u)}async function B(){let t=e.get(`EditorLoader`),n=e.get(`AppNotifications`),r=e.get(`$rootScope`),i=t.pushTask(`postProcessAudio`,{rate:200});function a(e){i.realProgress=e}try{await e.get(`EditorPlayback`).pausePlay();let t=await o.current.computeMasteringInputGain(a);if(!angular.isNumber(t))throw Error(`Unexpected inputGain value: ${t}`);return z({inputGain:t,bypass:!1}),n.addNotification({title:`Input gain has been set to optimal level (${`${Au(t,1)}`} dB)`,classList:`success`,autoclose:5e3}),t}finally{t.finishTask(i),r.$applyAsync()}}function V(e){let t=(!e.mastering||`bypass`in e.mastering&&e.mastering.bypass)===(!y.value||y.value.bypass),n=e.mastering?.preset===y.value?.preset;if(!e.mastering)return!!y.value;if(!y.value)return!0;let r=`intensity`in e.mastering&&e.mastering.intensity===y.value.intensity,i=`inputGain`in e.mastering&&e.mastering.inputGain===y.value.inputGain,a=Cu(e.mastering)&&Cu(y.value)?e.mastering.eqBypass===y.value.eqBypass:!0,o=vu(e.mastering)&&vu(y.value)?e.mastering.lowFreqGain===y.value.lowFreqGain&&e.mastering.midFreqGain===y.value.midFreqGain&&e.mastering.highFreqGain===y.value.highFreqGain&&a:!0;return!t||!n||!r||!i||!o}async function ie(e=!0){let t=f(P.value);if(t){let e=xu(t,`studio_apply_button`);if(!await u(e,`mastering`)){if(!P.value)return;let e=p([P.value]).items;await su(e)===`reset`&&await z(m(P.value))}return}e&&i.pushUndo(r.current),r.current.mastering=P.value,P.value&&aa(gu(P.value,n.songDuration,`studio`))}
253function H(e,t){_.forEach(e=>e());function n(){t.closeSideTab()}function r(){ie(),t.closeSideTab(),t.$applyAsync()}if(!V(e)){n();return}let i=f(P.value);if(i){if(!P.value)return;let{promise:e,resolve:t}=Promise.withResolvers(),r=J(()=>import(`./D6gqpJhO.js`));X(r,{resolve:t},{onClose:()=>t(`cancel`)}),e.then(e=>{switch(e){case`discard-changes`:n();break;case`upgrade-membership`:{let e=xu(i,`studio_apply_button`);u(e,`mastering`)}}});return}X(Mo,{size:`small`,title:`Discard changes without applying?`,subtitle:`Your Mastering changes wonât be saved.`,actions:[{label:`Discard Changes`,color:`destructive-primary`,onClick:n},{label:`Apply Changes`,color:`primary`,onClick:r}]})}}const Ck=To(function(e,t){let n=new Set,r=!1,i,a=e.get(`$rootScope`),o=e.get(`editorEvents`),s=e.get(`EditorRevision`),c=e.get(`EditorAutomation`),l=e.get(`EditorState`),u=e.get(`EditorTrack`),d=e.get(`MidiEditorState`),f=e.get(`Soundbank`);document.body.addEventListener(`keydown`,m),document.body.addEventListener(`pointerdown`,v),window.addEventListener(`keyup`,h),window.addEventListener(`blur`,g);function p(){document.body.removeEventListener(`keydown`,m),document.body.removeEventListener(`pointerdown`,v),window.removeEventListener(`keyup`,h),window.removeEventListener(`blur`,g)}S(()=>{p()});function m(e){let t=e.target;if(!wk(t)||e.repeat||!e.code||n.has(e.code)&&xn||((e.code.includes(`Meta`)||e.code.includes(`Control`)||e.code.includes(`OS`))&&n.clear(),n.add(e.code),l.isInBackground||Us.size))return;var i=e.ctrlKey||e.metaKey;if(Tk(e.target)){let n=[`button`,`input`,`textarea`,`[tabindex="-1"]`,`[tabindex="0"]`,`[contenteditable="true"]`].some(e=>t.closest(e)),r=!!t.closest(`[data-allow-studio-shortcuts ]`);if(n&&!r){e.stopPropagation();return}}let p=_()&&n.size===1;if(p&&(r=!0,a.$broadcast(o.keyDown.snapPressed)),r&&!p&&(r=!1,a.$broadcast(o.keyDown.snapReleased)),!(f.isMusicalTypingActive()&&!i&&([8,13,32,37,38,39,40,46,77].indexOf(e.which)===-1||e.which===77&&f.getCurrent().input.kind===`bandlab-instrument`||e.which===77&&f.getCurrent().input.kind===`sampler`))){if(e.altKey)switch(e.code){case`Minus`:e.preventDefault(),d.hasFocus&&d.isPianoRoll&&a.$broadcast(o.keyDown.zoomOutPianoRollVertical);break;case`Equal`:e.preventDefault(),d.hasFocus&&d.isPianoRoll&&a.$broadcast(o.keyDown.zoomInPianoRollVertical)}else if(!i&&!e.shiftKey)switch(e.which){case 8:case 46:e.preventDefault(),f.isMusicalTypingActive()&&f.getCurrent().input.kind===`sampler`?a.$broadcast(`Sampler:deletePad`):l.isAutomationVisible?a.$broadcast(o.keyDown.deleteSelectedAutomationPoints):d.hasFocus||a.$broadcast(o.keyDown.delete);break;case 13:a.$broadcast(o.keyDown.goToBeginning);break;case 32:e.preventDefault(),a.$broadcast(o.keyDown.togglePlayStop);break;case 37:case 39:a.$broadcast(o.keyArrow,e);break;case 71:a.$broadcast(o.keyDown.toggleSnap);break;case 65:if(s.current.tracks.length===0||s.current.tracks.every(e=>u.isTrackCollapsed(s.current.id,e.id))||s.current.trackGroups.length>0&&s.current.trackGroups.every(e=>u.isGroupCollapsed(s.current.id,e.id)))return;c.toggleAutomationView();break;case 67:a.$broadcast(o.keyDown.toggleCycle);break;case 76:a.$broadcast(o.keyDown.toggleLoops);break;case 77:a.$broadcast(o.keyDown.toggleMetronome);break;case 82:a.$broadcast(o.keyDown.toggleRecord);break;case 83:a.$broadcast(o.keyDown.triggerSlice);break;case 86:a.$broadcast(o.keyDown.toggleVelocity);break;case 38:e.preventDefault(),l.currentActiveTab===`Loops`&&!d.hasFocus?a.$broadcast(o.keyDown.previousLoop):l.currentActiveTab===`Beats`&&!d.hasFocus&&a.$broadcast(o.keyDown.previousBeat);break;case 40:e.preventDefault(),l.currentActiveTab===`Loops`&&!d.hasFocus?a.$broadcast(o.keyDown.nextLoop):l.currentActiveTab===`Beats`&&!d.hasFocus&&a.$broadcast(o.keyDown.nextBeat)}else if(i&&!e.shiftKey){switch(String.fromCharCode(e.which).toLowerCase()){case`a`:d.hasFocus||a.$broadcast(o.keyDown.selectAllRegions),e.preventDefault();break;case`c`:d.hasFocus||a.$broadcast(o.keyDown.copy);break;case`x`:d.hasFocus||a.$broadcast(o.keyDown.cut);break;case`v`:d.hasFocus||a.$broadcast(o.keyDown.paste);break;case`s`:e.preventDefault(),a.$broadcast(o.keyDown.save);break;case`z`:e.preventDefault(),a.$broadcast(o.keyDown.undo)}switch(e.key){case`-`:e.preventDefault(),a.$broadcast(o.keyDown.zoomOut);break;case`=`:e.preventDefault(),a.$broadcast(o.keyDown.zoomIn);break;case`/`:e.preventDefault(),a.$broadcast(o.keyDown.toggleShortcuts)}}else if(i&&e.shiftKey)switch(String.fromCharCode(e.which).toLowerCase()){case`z`:e.preventDefault(),a.$broadcast(o.keyDown.redo)}
253else if(e.shiftKey){switch(String.fromCharCode(e.which).toLowerCase()){case`a`:e.preventDefault(),a.$broadcast(o.keyDown.recordAutomation);break;case`d`:e.preventDefault(),a.$broadcast(o.keyDown.duplicateTrack);break;case`m`:e.preventDefault(),a.$broadcast(o.keyDown.muteTrack);break;case`s`:e.preventDefault(),a.$broadcast(o.keyDown.soloTrack);break;case`t`:e.preventDefault(),a.$broadcast(o.keyDown.addTrack)}switch(e.which){case 8:case 46:e.preventDefault(),a.$broadcast(o.keyDown.deleteTrack);break;case 32:e.preventDefault(),a.$broadcast(o.keyDown.playFromStart)}}}}function h(e){t.$applyAsync(),r&&(r=!1,a.$broadcast(o.keyDown.snapReleased)),e.key===`Alt`&&xn&&e.preventDefault(),n.delete(e.code)}function g(){r&&(r=!1,a.$broadcast(o.keyDown.snapReleased)),n.clear()}function _(){return[...n].some(e=>e.includes(`Meta`)||e.includes(`Control`)&&xn||e.includes(`OS`))}function v(e){let t=e.target;if(!Tk(t))return;document.body.addEventListener(`pointerup`,n),clearTimeout(i),i=setTimeout(()=>{document.body.removeEventListener(`pointerup`,n)},500);function n(){if(!Tk(t))return;document.body.removeEventListener(`pointerup`,n);for(let e of[`button`,`input[type="checkbox"]`,`input[type="radio"]`]){let n=t.closest(e);if(wk(n)){n.blur();return}}let e=t.closest(`label`);e&&e.control&&e.control instanceof HTMLInputElement&&(e.control.type===`radio`||e.control.type===`checkbox`)&&setTimeout(()=>e.control?.blur())}}});function wk(e){return!!e&&e instanceof HTMLElement}function Tk(e){return!!e&&e instanceof Element}function Ek(){return Un.get(`https://matching-sounds.bandlab.cloud/v1/genres`,{kyCache:!0}).json()}function Dk(){return Un.get(`https://matching-sounds.bandlab.cloud/v1/instruments`,{kyCache:!0}).json()}function Ok({type:e,genre:t,instrument:n,key:r,file:i,bpm:a,excludeIds:o}){let s=new FormData;if(s.append(`type`,e),s.append(`genre`,t),e===`matching_sample`&&n&&r&&a&&o&&i){let e={bpm:a.toString(),exclude_ids:o,file:i,instrument:n,key:r};for(let[t,n]of Object.entries(e))n&&s.append(t,n)}return Un.post(`https://matching-sounds.bandlab.cloud/v1/task`,{body:s}).json()}function kk(e){return Un.get(`https://matching-sounds.bandlab.cloud/v1/task/${e}`).json()}function Ak(e){return Un.get(`https://matching-sounds.bandlab.cloud/v1/task/${e}/download`).json()}function jk(e){return Un.get(`https://matching-sounds.bandlab.cloud/v1/task/${e}/download`).json()}function Mk(e){return Un.delete(`https://matching-sounds.bandlab.cloud/v1/task/${e}`).json().catch(e=>{if(!(e instanceof qe&&e.response.status===304))throw e})}function Nk({seedSampleId:e,sampleIds:t,genre:n,bpm:r,instrument:i,key:a,excludeIds:o},s){return Un.get(`https://www.bandlab.com/api/v3.0/sounds/loops/matches`,{signal:s,searchParams:{seedSampleId:e,sampleIds:t,genre:n,bpm:r,instrument:i,key:a,excludeIds:o}}).json()}const Pk={browse:`browse`,packs:`packs`,samples:`samples`,"library.favorites.packs":`favorites_packs`,"library.favorites.samples":`favorites_samples`,"library.collections":`collections`,"library.uploads":`uploads`,"library.claimed":`claimed_samples`},Fk=To(()=>{let e=ne(`$injector`),t=e.get(`$analytics`),n=e.get(`AppNotifications`),r=e.get(`EditorPlayer`),{requireStudioMembership:i}=Eo(e),a=O(null),o=O(null),s=O(!1),c=O(!1),l=O(null),u=O(null),d=O(`browse`),f=U(()=>!!a.value||!!o.value||!!l.value||!!u.value);return re(d,(e,t)=>{C(e,t)}),{exitSelectedItem:p,explore:m,getAnalyticsTriggeredFrom:h,goToPackFromSample:g,isLoadingPack:s,isInSelectedItemState:f,isInSearchView:c,selectedCollection:a,selectedPack:o,selectedSampleForFindingSimilar:l,selectedFileForFindingSimilar:u,selectPack:v,selectCollection:y,selectSampleForFindingSimilar:b,findSimilarFromRegion:x,tab:d,toggleLibraryTab:S};function p(){a.value=null,o.value=null,l.value=null,u.value=null}function m(){t.eventTrack(`blsounds_interaction`,{platform:`firebase`,params:{category:`studio`,interaction_id:`explore`,triggered_from:h()}}),d.value=`packs`,p()}function h(e){return o.value?`pack`:a.value?`collection`:l.value?`find_similar`:Pk[e??d.value]}function g(e,n){if(t.eventTrack(`blsounds_action`,{platform:`firebase`,params:{action:`view_pack`,content_type:`sample`,category:`sounds`,content_id:e.sampleId,pack_slug:e.packSlug,is_user_content:!1,triggered_from:n||h()}}),!e.packSlug){_();return}p(),s.value=!0,lo({ids:[e.packSlug]}).then(t=>{t.packs[0]&&t.packs[0].id===e.packSlug?o.value=t.packs[0]:_()}).catch(()=>{_()}).finally(()=>{s.value=!1})}function _(){n.addNotification({title:`No Sounds Pack Found`,content:`This sample does not belong to any pack.`,classList:`alert`,autoclose:5e3})}function v(e){o.value=e}function y(e){a.value=e}async function b(e){await i(`find_similar`,`ai_tools`)&&(p(),l.value=e)}async function x(e){try{if(!await i(`find_similar`,`ai_tools`))return;let t=await r.current.renderCroppedRegionSampleToWav(e);p(),u.value={name:e.name||``,file:t}}catch{n.addNotification({content:`Unable to find similar sounds. Please try again.`,classList:`alert`,autoclose:5e3})}}function S(){p(),d.value.includes(`library`)?d.value=d.value.includes(`packs`)?`packs`:`samples`:d.value===`packs`?d.value=`library.favorites.packs`:d.value=`library.favorites.samples`}function C(e,n){if(e&&n){let r=e.includes(`library`)&&!n.includes(`library`)||!e.includes(`library`)&&n.includes(`library`)?`my_sounds`:e.includes(`favorites`)&&!n.includes(`favorites`)?`favorites`:h();t.eventTrack(`blsounds_interaction`,{platform:`firebase`,params:{category:`studio`,interaction_id:r,triggered_from:h(n)}})}}}),Ik=To(()=>({selectedSample:O(null)})),Lk=To(e=>{let t=e.get(`$analytics`),n=e.get(`AudioStretch`),r=e.get(`EditorRevision`),i=ne(`scope`),a=O(0),o=O(1),s=O(!1),{selectedSample:c}=Ik(),l=0,u=0,d=0,f=v,p=sr(),m=p.createGain(),{getAnalyticsTriggeredFrom:h,tab:g,selectedCollection:_}=Fk();function v(){}function y(){return!r.current?.metronome.pristine&&c.value?.features.loop&&c.value.features.loop.tempo/i.revision.metronome.bpm||1}function b(){cancelAnimationFrame(d),d=requestAnimationFrame(x)}function x(){s.value?(a.value=p.currentTime-l+u,d=requestAnimationFrame(x)):cancelAnimationFrame(d)}function S(e=1){o.value=e,m.gain.linearRampToValueAtTime(e,p.currentTime+.1)}function C(e,f=0,v,x=``){Ws.pause(),cancelAnimationFrame(d),Js.audioNode?.onended&&Js.audioNode.stop(),f||(a.value=0),c.value===e?s.value=f||v?!0:!s.value:(c.value=e,s.value=!0),s.value&&n.convertLoop(e,r.current,r.current?.metronome.pristine??!0).then(n=>{if(Js.audioNode?.onended&&!f&&!v&&Js.audioNode.stop(),(c.value!==e||!s.value)&&!f&&!v)return;Js.audioNode=sr().createBufferSource(),Js.audioNode.buffer=n,m.gain.setValueAtTime(o.value,p.currentTime),Js.audioNode.connect(m).connect(sr().destination),u=f,Js.audioNode.start(0,f),s.value=!0,l=p.currentTime,b();let r=i.$watch(`revision.metronome.bpm`,Fa((t,n)=>{t!==n&&(c.value=null,C(e,0),r())},100,{trailing:!0}));
253Js.audioNode.onended=()=>{if(`loop`in e.features&&c.value===e&&p.currentTime-l+u>=c.value.duration*y()){C(e,0,!0);return}c.value===e&&(s.value=!1),r()},t.eventTrack(`blsounds_action`,{platform:`firebase`,params:{action:`preview`,content_type:`sample`,category:`studio`,content_id:e.sampleId,pack_slug:e.packSlug,...g.value.includes(`collection`)&&_.value&&{collection_id:_.value.collectionId},is_user_content:g.value.includes(`library.uploads`),triggered_from:x||h()}})})}function w(){f(),f=i.$on(zc,function(){s.value&&c.value&&C(c.value,0,!1)})}return I(()=>{w()}),N(()=>{f()}),{handle:d,isPlaying:s,previewSample:C,scaleTempo:y,selectedSample:c,time:a,updateVolume:S}}),Rk=To(()=>{let e=O([]),t=O([]),n=O([]),r=O({}),i=O({}),a=O({});return o(),{characters:e,genres:t,instruments:n,characterNames:r,genreNames:i,instrumentNames:a};async function o(){let o=await ao();e.value=o.characters,t.value=o.genres,n.value=o.instruments,r.value=o.characters.reduce(function(e,t){return e[t.id]=t.name,e},{}),a.value=o.instruments.reduce(function(e,t){return e[t.id]=t.name,e},{}),i.value=o.genres.reduce(function(e,t){return e[t.id]=t.name,e},{})}});function zk(){let e=h({src:``,paused:!0});t(),Ws.addEventListener(`ended`,t),Ws.addEventListener(`pause`,t),Ws.addEventListener(`play`,t),N(function(){Ws.removeEventListener(`ended`,t),Ws.removeEventListener(`pause`,t),Ws.removeEventListener(`play`,t)}),R(`player`,e);function t(){e.src=Ws.src,e.paused=Ws.paused}}function Bk(e){let t=ne(`$injector`),n=t.get(`$analytics`),r=ne(`player`),i=ne(`scope`),{getAnalyticsTriggeredFrom:a}=Fk(),{isPlaying:o}=Lk(t),s=U(function(){return r.src===e.value?.audioUrl&&!r.paused}),c=[];function l(){c.forEach(e=>e())}function u(){let e=[Nc,zc];l(),c=e.map(e=>i.$on(e,()=>Ws.pause()))}return I(function(){u()}),N(function(){Ws.pause(),l()}),ee(function(){Ws.pause()}),{isPreviewingPack:s,previewPack:d};function d(e){e.audioUrl===Ws.src&&!Ws.paused?Ws.pause():(Js.audioNode?.onended&&(Js.audioNode.stop(),o.value=!1),Ws.src=e.audioUrl,Ws.play().catch(()=>{}),n.eventTrack(`blsounds_action`,{platform:`firebase`,params:{action:`preview`,content_type:`pack`,category:`studio`,content_id:e.id,triggered_from:a()}}))}}function Vk(){let e=ne(`$injector`),t=e.get(`editorEvents`),n=ne(`player`),r=ne(`scope`),{getAnalyticsTriggeredFrom:i}=Fk(),a=O({}),o=O([]),{handle:s,isPlaying:c,previewSample:l,selectedSample:u}=Lk(e),d,f;return I(function(){d=h(),f=g()}),le(()=>{d(),f(),d=h(),f=g()}),ee(()=>{d(),f()}),ce(function(){d(),f()}),L(function(){n.paused||_()}),{addToTrack:v,loopEls:a,loops:o,stopPreview:_};function p(e){o.value[e]&&(a.value[o.value[e].id]?.$el.scrollIntoView({block:`nearest`}),l(o.value[e],0,!1))}function m(){return u.value?o.value.findIndex(e=>e.audioUrl===u.value?.audioUrl):-1}function h(){return r.$on(t.keyDown.previousLoop,()=>{p(Math.min(Math.max(0,m()-1),o.value.length))})}function g(){return r.$on(t.keyDown.nextLoop,()=>{p(Math.min(Math.max(0,m()+1),o.value.length))})}function _(){c.value=!1,Js.audioNode?.onended&&Js.audioNode.stop(),cancelAnimationFrame(s)}function v(e,n,a){_(),r.$emit(t.importFile,{...Kk(e),triggeredFrom:i(),gesture:`double_tap`,fromFavorites:n,fromSearch:a})}}function Hk(){let{tab:e,selectedPack:t}=Fk(),n=e.value===`samples`&&!t.value,{characters:r,genres:i,instruments:a,characterNames:o,genreNames:s,instrumentNames:c}=Rk(),l=O(null),u=O({}),d=O({}),f=O({}),p=O({}),m=O(n?`random`:`recent`),h=O(!1),g=O(!1);return{after:l,availableLoopsPerFeature:u,availableLoopsPerCharacter:d,availableLoopsPerGenre:f,availableLoopsPerInstrument:p,characterNames:o,characters:r,currentSort:m,ended:h,getAnalyticsSortingOption:_,genreNames:s,genres:i,instrumentNames:c,instruments:a,isFiltersLoaded:g,lastScrollTop:O(null),setAvailableFilterCounts:v};function _(e){return{alphanumeric:`name`,recent:`newest`,popularity:`popular`}[e]??e}function v(e){`availableLoopsPerFeature`in e&&(u.value=e.availableLoopsPerFeature??{}),`availableLoopsPerCharacter`in e&&(d.value=e.availableLoopsPerCharacter??{}),`availableLoopsPerGenre`in e&&(f.value=e.availableLoopsPerGenre??{}),`availableLoopsPerInstrument`in e&&(p.value=e.availableLoopsPerInstrument??{}),g.value=!0}}const Uk={samples:`samples`,packs:`pack`,"library.favorites.samples":`my_sounds_favorites`,"library.collections":`my_s
253ounds_collection`},Wk={browse:`browse`,packs:`packs`,"library.favorites.packs":`my_sounds_favorites`};function Gk(e){let{getAnalyticsTriggeredFrom:t,tab:n}=Fk(),{addPack:r,addSample:i,removePack:a,removeSample:o,showUndoRemoveNotification:s}=Ao(e);async function c(e,r=``){await i(e,{category:r===`palette`?`palette`:`studio`,triggeredFrom:r||t()||``,target:r||Uk[n.value]})}async function l(e,r){if(await o(e,{category:`studio`,triggeredFrom:r||t()||``})&&n.value===`library.favorites.samples`&&!r){if(!await s(e.name,go(e.imageUrl||``,`216x216`,60)))return;await c(e)}}async function u(e){await r(e,{category:`studio`,triggeredFrom:t()||``,target:Wk[n.value]})}async function d(e){if(await a(e,{category:`studio`,triggeredFrom:t()||``})&&n.value===`library.favorites.packs`){if(!await s(e.name,go(e.imageUrl,`216x216`,60)))return;await u(e)}}return{addSampleToLibraryStudio:c,removeSampleFromLibraryStudio:l,addPackToLibraryStudio:u,removePackFromLibraryStudio:d}}function Kk(e){return{id:e.id,bpm:e.features?.loop?.tempo??null,duration:e.duration,key:e.features?.loop?.key??e.features?.oneShot?.key,name:e.name,original:e,src:e.audioUrl,type:`audio`}}function qk(e){let{createUserCollection:t,addSampleToUserCollection:n,openAddToUserCollectionModal:r,removeSampleFromUserCollection:i,deleteUserCollection:a,showUndoRemoveNotification:o}=fo(e),{getAnalyticsTriggeredFrom:s,selectCollection:c}=Fk();function l(e,n){return t(e,{category:`studio`,triggeredFrom:n})}function u(e,t,r=``){return n(e,t,{category:`studio`,triggeredFrom:r||s()||``})}function d(e,t=``){return r(e,l,(e,n)=>u(e,n,t))}async function f(e,t,n){if(await i(e,t.collectionId,{category:`studio`,triggeredFrom:`collection`})&&(e.isRemoved=!0,t.idsCount--,await o(e.name,n)))try{e.isRemoved=!1,t.idsCount++,await u(e,t.collectionId,`collection`)}catch{e.isRemoved=!0,t.idsCount--}}function p(e,t){a(e,{category:`studio`,triggeredFrom:t}).then(()=>{c(null)})}return{openAddToSoundsStudioUserCollectionModal:d,removeFromSoundsStudioUserCollection:f,createSoundsStudioUserCollection:l,deleteSoundsStudioUserCollection:p}}function Jk(e){let t=e.get(`$analytics`),n=e.get(`AudioStretch`),r=e.get(`EditorModel`),i=e.get(`EditorCycle`),a=e.get(`EditorDB`),o=e.get(`EditorRevision`),s=e.get(`EditorHistory`),c=e.get(`EditorHelper`),l=e.get(`EditorState`),u=e.get(`EditorTrack`),d=e.get(`EditorTimeline`),f=e.get(`EditorPlayer`),p=e.get(`MidiEditor`),{cancelTask:m,startTaskAndGetResult:h}=au(),g=O([]),_=O({}),v=O(null),y=O(0),b=O(0),x=O(``),S=O(``),C=O([]),w=O(null),T=O(),E=U(()=>({major:xy.value.filter(e=>e.scale===`major`),minor:xy.value.filter(e=>e.scale===`minor`)})),D=U(()=>!A.value),k=U(()=>!!o.current.key),A=U(()=>o.current.metronome.pristine&&!o.current.tracks.some(e=>e.regions.length)),j=Promise.withResolvers(),M=new AbortController;return{genres:g,instrumentNames:_,selectedGenre:v,originalBpm:y,paletteBpm:b,originalKey:x,paletteKey:S,paletteLoops:C,seedPaletteLoop:w,keys:T,isPaletteBpmLocked:D,isPaletteKeyLocked:k,cancelTask:ce,initGenresAndInstruments:N,openPaletteInNewProject:te,openPaletteInExistingProject:I,getMatchingSoundsMatchingSample:ae,getPaletteSeedSampleMatchingLoop:oe,setupPaletteInitialResult:L,setupRegion:H};async function N(){g.value=await Ek();let e=await Dk();_.value=e.reduce(function(e,t){return e[t.id]=t.name,e},{})}function P(e){let t=J(()=>import(`./CE_pLmrl.js`));return new Promise(n=>{X(t,{seedSample:e,onAddToProject:({revision:e,genre:t,paletteTracks:r,paletteSamples:i})=>{n({revision:e,genre:t,paletteTracks:r,paletteSamples:i})}},{escapeClose:!1,overlayClose:!1,onClose:()=>n(void 0)})})}async function F(e,n,r){await ee(e.paletteSamples),await s.withSingleUndo(async()=>{await r(),n.forEach(e=>{t.eventTrack(`Import sample from Loops API`,{category:`Mix Editor`,extra:{id:e.regions[0]?.sampleId,instrumentId:e.name.toLowerCase(),triggeredFrom:`palette`,importTarget:`track`}})}),t.eventTrack(`blsounds_palette_complete`,{platforms:[`amplitude`],params:{result:`success`,track_count:n.length,genre:e.genre}})})}async function ee(e){await Promise.all(e.map(async e=>{e.buffer&&!await a.getFile(e.id)&&await a.updateFile({sampleId:e.id,blob:await _r(e.buffer)})}))}function te({productOrigin:e,triggeredFrom:n,onRevisionChange:r}
253){l.isInBackground=!0;let a,s;return(e||n)&&t.eventTrack(`blsounds_palette_open`,{platforms:[`amplitude`],params:{product_origin:e,triggered_from:n}}),P().then(async e=>{if(!e)return;let{revision:t,genre:n}=e;await F(e,t.tracks,async()=>{t.tracks.flatMap(e=>e.regions).forEach(function(e){e.loopLength=e.endPosition,e.endPosition*=4}),a=t,s=n,t.metronome.pristine=!1,o.current=t,u.setSelected(t.tracks[0]),await f.updateSourcesInTracksAsync(),i.init(t.metronome),r(t)})}).catch(e=>{t.eventTrack(`blsounds_palette_complete`,{platforms:[`amplitude`],params:{result:`fail`,track_count:a?.tracks.length??0,genre:s}})}).finally(()=>{l.isInBackground=!1})}function I(e,{productOrigin:r,triggeredFrom:i=`sample_3_dot_menu`}={}){let a=0;t.eventTrack(`blsounds_palette_open`,{platforms:[`amplitude`],params:{...r?{product_origin:r}:{},triggered_from:i}});let s=o.current.metronome.pristine;return l.isInBackground=!0,P(e).then(async e=>{if(!e)return;let{revision:t,paletteTracks:r,paletteSamples:i}=e;r.length&&(a=r.length,await F(e,r,async()=>{if(s){let e=o.current.metronome.bpm,r=t.metronome.bpm;d.updateBpm(r),e!==r&&await Promise.all(o.current.tracks.flatMap(e=>e.regions).filter(c.isAudioRegion).map(t=>n.convertRegion(t,t.playbackRate*r/e,t.pitchShift,!0)))}r.forEach((e,t)=>{e.order=o.current.tracks.length+t,e.isSolo=l.hasSoloTrack}),o.current.tracks=c.refreshTracksOrder(o.current.tracks.concat(r)),o.current.samples.push(...i),!o.current.key&&t.key&&(o.current.key=t.key),await f.updateSourcesInTracksAsync(),u.setSelected(r[0])}))}).catch(e=>{t.eventTrack(`blsounds_palette_complete`,{platforms:[`amplitude`],params:{result:`fail`,track_count:a}})}).finally(()=>{l.isInBackground=!1})}async function L(e){if(!v.value)return;if(e){let t=Kk(e),{targetBpm:n,targetKey:r}=R({sourceBpm:t.bpm,sourceKey:t.key});ne(n,r),w.value=z(e,n,S.value),C.value=[];return}let t=await ie(v.value.id),{targetBpm:n,targetKey:r}=R({sourceBpm:t.bpm,sourceKey:t.key});ne(n,r),w.value=null,C.value=t.samples.map(e=>re(e,n,r))}function R({sourceBpm:e,sourceKey:t}){return{targetBpm:A.value?e??120:o.current.metronome.bpm,targetKey:o.current.key??t??`C major`}}function ne(e,t){b.value=e,y.value=e;let n=B(t);n&&(S.value=n.label.short,x.value=n.label.short,V(n.scale))}function z(e,t,r){let i=Kk(e),a=i.bpm??t,o=i.key??r;return{bpm:a,instrument:e.instrumentId,key:o,pitchShift:p.transposeKeys(o,r),timeStretch:n.clampPlaybackRate(t/a),uuid:e.id,payload:i}}function re(e,t,r){let i=e.payload.key??e.key;return{...e,timeStretch:e.payload.bpm?n.clampPlaybackRate(t/e.payload.bpm):e.timeStretch,pitchShift:i?p.transposeKeys(i,r):e.pitchShift}}function B(e){return xy.value.find(t=>e===t.label.short||e===t.label.enharmonic)??null}function V(e){T.value=E.value[e]}async function ie(e){let t=se(),n=await Promise.race([h({startTask:()=>Ok({type:`initial_stack`,genre:e}),getStatus:kk,downloadResult:Ak,cancelTask:Mk}),t]),r=n.samples.map(e=>e.uuid).sort().join(`,`),i=await Promise.race([le(r,n.samples),t]);return{bpm:n.bpm,key:n.key,samples:i}}function H(e,t,i,a,o){if(!i.payload.duration)return;let s=r.createRegion({endPosition:a,isPlayable:!0,name:o,sampleId:e.id,startPosition:0,trackId:t.id,bpm:b.value,playbackRate:i.timeStretch,pitchShift:i.pitchShift,loopLength:i.payload.duration/i.timeStretch<a?i.payload.duration/i.timeStretch:0});n.convertRegion(s),t.regions=[s]}async function ae({genre:e,instrument:t,key:n,file:r,bpm:i,excludeIds:a}){let o=se(),s=await Promise.race([h({startTask:()=>Ok({type:`matching_sample`,genre:e,instrument:t,key:n,file:r,bpm:i,excludeIds:a}),getStatus:kk,downloadResult:jk,cancelTask:Mk}),o]),c=await Promise.race([le(s.uuid,[s]),o]);if(!c[0])throw Error(`No palette loop found in finalSampleResult`);return re(c[0],b.value,S.value)}async function oe(e){let t=M.signal;try{let r=await Nk(e,t),{loops:[i]}=await io({ids:r.uuid,signal:t});if(!i)throw Error(`No matching loop found for uuid: ${r.uuid}`);return re({...r,payload:Kk(i),pitchShift:0,timeStretch:n.clampPlaybackRate(b.value/r.bpm)},b.value,S.value)}catch(e){throw t.aborted?new Lu(`Palette task cancelled`):e}}function se(){return j.promise.then(()=>{throw new Lu(`Palette task cancelled`)})}function ce(){m(),M.abort(),j.resolve()}function le(e,t){return io({ids:e}).then(e=>{let n=new Map(e.loops.map(e=>[e.id,e]));return t.map(e=>{let t=n.get(e.uuid);if(!t)throw Error(`No matching loop found for uuid: ${e.uuid}`);return{...e,payload:Kk(t)}})})}}function Yk(e){let t=e.get(`AppNotifications`),n=e.get(`EditorAutomation`),r=e.get(`EditorHelper`),i=e.get(`EditorRevision`),a=e.get(`EditorPlayer`),o=e.get(`EditorTimeline`),s=e.get(`EditorState`),c=cu(e);return{hasFreezingTrack:f,canToggleRecord:l,canRenderMix:u,canToggleFreeze:p,checkCanPasteClipboardRegionsToTrack:_,pasteRegionsFromClipboardToTrack:v,sliceRegions:m};function l(e,t,n){if(e.isRecording)return!0;let r=oc(t);return!(!n.tracks.length||r||f(n))}function u(e,t){let n=!e.songDuration||!t.tracks.length;return!(e.isSaving||e.isPreSaving||n||d(e,t))}function d(e,t){return e.isRecording||e.isPlaying||e.isMixing||f(t)}function f(e){return e.tracks.some(e=>i.trackFreezing.get(e))}function p(e,t,n){return!d(e,t)&&n.canEdit}async function m(e){await a.current.updateMix(!0);let{addedRegions:t}=await c.apply(async t=>{await t.setSelection(e);let n=await t.sliceSelection();if(!n.ok)throw n},{pushUndo:!0}),n=i.current.tracks.flatMap(e=>e.regions.filter(e=>t.find(t=>
253t.id===e.id)));i.selectedRegions=new Set(n)}function h(e,t){if(!e.length||s.crTime>=Z.SONG_DURATION_MAX)return 2;let n=e.map(e=>e.trackOrder),r=Math.min(...n),a=Math.max(...n);if(g(e,t.order,r))return 0;let o=a-r;return t.order+o>=i.current.tracks.length?1:3}function g(e,t,n){return e.some(e=>{let a=t-n+e.trackOrder,o=i.current.tracks.find(e=>e.order===a),s=i.current.tracks.find(t=>t.id===e.trackId);if(!o)return!0;if(o.id===s?.id)return!1;let c=r.isMidiRegion(e),l=o.soundbank&&!o.patterns||o.samplerKit,u=r.isAudioRegion(e),d=r.isAudioTrack(o),f=s?.patterns&&s.patterns.some(t=>t.sampleId===e.sampleId);return u&&!d||!u&&d||c&&!l||f&&!l})}function _(e){let n=i.current.tracks.find(t=>t.id===e);if(!n||!nc(Zs.value)||!Zs.value.length)return!1;let r=h(Zs.value,n);return r===0?t.addNotification({id:`paste-region-invalid-track`,title:`Unable to paste regions`,content:`The copied regions are not compatible with the selected tracks.`,classList:`alert`,autoclose:5e3}):r===1&&(i.current.tracks.length<Z.TRACKS_LIMIT?alert(`Please add extra track`):alert(`Please paste to other track`)),r===3}async function v(e){let t=i.current.tracks.find(t=>t.id===e);if(!t||!nc(Zs.value)||!Zs.value.length||h(Zs.value,t)!==3)return;let r=Zs.value.map(e=>e.startPosition),c=Math.min(...r),l=Zs.value.map(e=>e.trackOrder),u=Math.min(...l),d=[...Zs.value.reduce((e,n)=>{let r=t.order-u+n.trackOrder,a=i.current.tracks.find(e=>e.order===r);return a?(e.has(a)||e.set(a,[]),e.get(a).push(n),e):e},new Map).entries()].map(([e,t])=>[e,t.map(function(t){let n=structuredClone(t);n._trackId=n.trackId;let r=n.endPosition-n.startPosition;return n.id=ze(),n.trackId=e.id,n.startPosition=n.startPosition-c+s.crTime,n.endPosition=Math.min(n.startPosition+r,Z.SONG_DURATION_MAX),i.selectedRegions.add(n),n.startPosition<Z.SONG_DURATION_MAX&&(e.regions.push(n),o.moveRegions(e)),n})]);await n.checkConfirmation(`paste`,Zs.value)&&d.forEach(([e,t])=>{t.forEach(function(t){let r=t.effectSlugs,i=e.effects.map(e=>e.slug),a=r?r.length===i.length&&r.every((e,t)=>e===i[t]):t._trackId===t.trackId;n.deleteAutomationInRange(e,t.startPosition,t.endPosition),n.pasteAutomation(e,t,t.startPosition,a)})}),d.forEach(function([,e]){e.forEach(function(e){delete e._trackId,delete e.effectSlugs})}),await a.updateSourcesInTracksAsync()}}var Xk=`[object Object]`,Zk=Function.prototype,Qk=Object.prototype,$k=Zk.toString,eA=Qk.hasOwnProperty,tA=$k.call(Object);function nA(e){if(!xe(e)||be(e)!=Xk)return!1;var t=sl(e);if(t===null)return!0;var n=eA.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&$k.call(n)==tA}function rA(e){return nA(e)?void 0:e}function iA(e){return e!=null&&e.length?Mu(e,1):[]}function aA(e){return Nu(Pu(e,void 0,iA),e+``)}var oA=1,sA=2,cA=4,lA=aA(function(e,t){var n={};if(e==null)return n;var r=!1;t=$e(t,function(t){return t=Xe(t,e),r||=t.length>1,t}),al(e,tl(e),n),r&&(n=ol(n,oA|sA|cA,rA));for(var i=t.length;i--;)ka(n,t[i]);return n}),uA=Object.prototype.hasOwnProperty,dA=Lx(function(e,t,n){uA.call(e,n)?e[n].push(t):rl(e,n,[t])});const fA=`RevisionRegionTakes`,pA=`region_takes.json`;function mA(){return{onSaveRevision:e,loadTakes:t};async function e(e,t){let n={};try{e.tracks.forEach(e=>e.regions.forEach(t=>{n[t.id]||(n[t.id]=[]);let r=t.takeList,i=rc(e)||cc(e);r&&!i&&n[t.id].push(...r.map(e=>{let t=e.pitchTimeCorrection?JSON.stringify(JSON.parse(e.pitchTimeCorrection)):``;return{sampleId:e.sampleId,sampleOffset:At(e.sampleOffset),pitchTimeCorrection:t}}))}))}catch{}let r=JSON.stringify(n);await bp.updateFile(`${t}/${pA}`,new Blob([r],{type:`application/json`}))}async function t(e){await n();let t=e.id;try{let n=await bp.readFile(`${t}/${pA}`).then(e=>e?.text());if(!n)return;let r=JSON.parse(n);e.tracks.forEach(t=>t.regions.map(n=>{let i=r?.[n.id],a=rc(t)||cc(t);if(!i||a)return;let o=[];i.forEach(t=>{let n=t.pitchTimeCorrection;n&&=JSON.stringify(JSON.parse(n)),o.push({...t,pitchTimeCorrection:n||``}),!e.samples?.some(e=>e.id===t.sampleId)&&e.samples?.push({id:t.sampleId,isMidi:!1})}),n.takeList=o}))}catch{}}async function n(){let e=Y.getItem(fA);if(!e)return;let t=JSON.parse(e);await Promise.all(Object.entries(t).map(async([e,t])=>{let n=JSON.stringify(t);await bp.updateFile(`${e}/${pA}`,new Blob([n],{type:`application/json`}))})),Y.removeItem(fA)}}const hA=(function(){return function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N){let P=`another_tab_open`,F=`just_opened`,ee=mA(),te=null;return{init:R,displaySavingSuccess:U,getDemoProjects:I,loadSongStarterRevisionIntoStudio:L,loadRevision:K,updateProjectName:G,reconcileFreezeState:q,startSave:re};function I(){return[{id:`30bcb350-8dcb-47bd-87e9-ff1a8fe820d7`,name:`Toxic`,genre:`Electronic`,revisionId:`890a7e81-c3f9-ec11-b47a-281878315d59`,picture:`https://bl-prod-images.azureedge.net/v1.0/templates/c36d453c-172d-45ab-9e24-e250d4452d89/`},{id:`7b293a1f-ea57-4eae-95fd-0f02cd1a048e`,name:`Baby Where U At`,genre:`Hip Hop`,revisionId:`f5b62f38-f1e9-ec11-b656-281878319acf`,picture:`https://bl-prod-images.azureedge.net/v1.0/templates/5c84f49f-2956-46fb-bf63-db936865c991/`},{id:`4bffe9b3-091f-4662-b4d2-19994d7a0e63`,name:`High and Dry`,genre:`Pop`,revisionId:`46791f2c-00ea-ec11-b656-281878319acf`,picture:`https://bl-prod-images.azureedge.net/v1.0/templates/0f2a2736-1dee-4a5d-a82a-62e7660e8efd/`}]}async function L(e){let n=await S.cleanRevision(e);b.current=n;let i=[...new Set(n.tracks.flatMap(e=>e.regions.map(e=>
253e.sampleId)).filter(Boolean))];await cu(t).retrieveNewSamplesFromVirtualFileSystem(i),await y.updateSourcesInTracksAsync(),l.init(n.metronome),x.hasRevisionChanges=!0,r.$applyAsync()}async function R(r){var s=r.song.id&&h.pushTask(`loadSample`);let c=!1,p=!1;if(b.current=r,await y.init(),await ee.loadTakes(b.current),`BroadcastChannel`in window&&!await H(r.id)){let e=await d.getSnapshot(r.id);e&&await ae()&&(b.current=oe(e,r.samples),x.hasRevisionChanges=!0,c=!0)}return u.requestTrackMixdown(r),C.cleanCollapseData(b.current.id,b.current.tracks,b.current.trackGroups),u.loadAllSamples(b.current,y.current).then(function(){p=b.current.samples.some(e=>e.error),p&&f.notifyMissingSamples();let e=b.current.tracks.flatMap(e=>e.regions);return t();function t(){let t=dA(e.filter(e=>f.isTransposableMidiRegion(e)&&e.pitchShift!==0),`pitchShift`);return Object.entries(t).reduce((e,[t,n])=>e.then(()=>E.transposeRegions(b.current,parseFloat(t),new Set(n))),n.resolve())}}).then(function(){return zl(t,r).catch(function(){return i.go(`unavailable`,{reload:!0})})}).then(function(){if(i.params.remoteSample)return Je.get(i.params.remoteSample).then(async e=>{let t=e.headers.get(`content-disposition`),n=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(t);if(n!==null&&n[1]){let t=n[1].replace(/['"]/g,``).replace(/\.[^/.]+$/,``);return{file:await e.blob(),name:t}}return{file:await e.blob()}}).then(({file:e,name:t=``})=>m.importFile({file:e,name:t,time:0})).catch(angular.noop);if(i.params.beatId)return wd(i.params.beatId).then(e=>{if(i.params.source===`beatsStems`)return m.importFile({type:`beats-batch-import`,samples:Object.entries(e.stemsSamples).map(([e,t])=>({sampleId:e,name:t})),duration:e.duration,time:0});if(i.params.source===`beatsSample`)return m.importFile({type:`beats-import`,sampleId:e.sampleId,name:e.name,duration:e.duration,time:0})}).catch(()=>{o.addNotification({content:`Unable to import file. Please check that your file is not corrupted.`,classList:`alert`,autoclose:8e3})});if(i.params.sampleId||i.params.userSoundsSampleId)return io({ids:i.params.sampleId||i.params.userSoundsSampleId,isUploads:!i.params.sampleId,userId:w.id}).then(async e=>{if(e.loops.length>0){if(await Ne(w),!i.params.userSoundsSampleId&&!e.loops[0].isFree&&i.params.open_attribution!==`blsounds_credits_claimed_sample`){let{requireStudioMembership:e}=Eo(t);if(!await e(`blsounds_claims`,`blsounds`))return}let n=Kk(e.loops[0]);return b.current.key=n.key,b.current.metronome.bpm=n.bpm||120,m.importFile({...n,collectionSlug:i.params.sampleCollectionSlug,triggeredFrom:i.params.triggered_from||`deeplink`,gesture:``,fromFavorites:!1,fromSearch:!1})}}).catch(angular.noop)}).then(()=>y.current.prepareMix()).then(([e])=>(e.length&&e.some(e=>e.some(e=>e.error))&&f.notifyMissingSamples(),y.current.updateMix())).then(async()=>{let{mixHandler:n}=y.current;if(await q(b.current),c&&p){let t=await n.getCurrentMix();e.eventTrack(`studio_session_snapshot_restore_failed`,{platforms:[`amplitude`]}),Sentry.onLoad(()=>{Sentry.captureException(`Snapshot restoration with missing samples`,{extra:{samples:b.current.samples,mixData:t}})})}if(a.source===`drum-machine`){await z(a.soundbank);return}if([`sampler`,`voice`,`guitar-bass`,`guitar-electric`,`looper`].includes(a.source)){await C.addTrack({type:a.source}),f.displayInstrument();return}if(a.soundbank){await ne(a.soundbank);return}if(a.samplePack){await C.addTrack({});return}if(a.samplerKit){await C.addTrack({type:bt}),f.displayInstrument(),await aS;let e=iS(),n=e.find(e=>e.id===a.samplerKit)??e[0];if(n.features.multipadSampler)return j.setSampler(b.current.tracks[0]).then(function(){return hS(t,n.features.multipadSampler,j.getSampler())})}if(b.current.tracks[0]&&C.setSelected(b.current.tracks[0]),tt(a.fxBlend)){if(!x.availableFeaturesSet.has(`fx-blend`))return;let e=+a.fxBlend;if(isNaN(e)||e<0||e>1)return;let t=b.selectedTrack;if(!sc(t)){let e=await C.addTrack({type:St});if(!e)return;t=e}t.fxMix=e,y.current.setTrackFxMix(t,e)}}).then(async function(){if(!a.aiFxGenerate||!sc(b.selectedTrack)||(Y.openPresetFlyout=!0,f.displayPresetSettings(),await new Promise(e=>setTimeout(e,1500)),!sc(b.selectedTrack)))return;let e=document.getElementById(`effect-preset-selector-ai-generate-preset-button`);e?.classList.add(`active`);let t=J(()=>import(`./aRQIBCxc.js`).then(e=>e.n));X(t,{track:b.selectedTrack,onClose:async()=>{await new Promise(e=>setTimeout(e,1500)),e?.classList.remove(`active`)}},{id:`ai-generate-preset-modal`,overlayClose:!1})}).then(function(){let e=bl(),t=[];for(let[n,r]of e.entries()){let e=vl(n),i=pl(e),a=ml(i),o=hl(e).toLowerCase(),s=r.includes(`/`),c=s&&r.replace(a,``).replace(`/`,``),l=s&&`${c} ${o}`;t.push({label:{long:r,short:a,enharmonic:l},key:{long:r.split(` `)[0],short:a.split(` `)[0],enharmonic:c},scale:o.toLowerCase()})}xy.value=t}
253).finally(function(){h.finishTask(s),x.isInBackground=!1,x.hasSoloTrack=u.checkAnySolo(),u.updateSongDuration(),T.init(),b.current.metronome.pristine=!b.current.id,l.init(b.current.metronome)})}async function ne(e=rt){let t=(await N.getList()).find(t=>t.slug===e);if(!t)return;let n=await N.getJSON(t),{supportLevel:r}=await y.current.checkSoundbankSupport(n),i={InTrack:n,Legacy:e}[r]||`studio-grand-v2-v4`;await C.addTrack({soundbank:i,name:`Instrument`}),f.displayInstrument({toggle:!1})}async function z(e=`808-kit`){let t=N.getBanks().find(t=>t.slug===e);e=t&&[`drum-kit`,`drum-pads`].includes(t.instrumentSlug)?e:`808-kit`,await C.addTrack({type:dn,name:`Drum Machine`,beatStarter:0,pushUndo:!1,soundbank:e}),f.displayInstrument({toggle:!1})}function re({publish:t=!1,pristine:r=!1,showSuccess:a=!0,rewriteUrl:o=!0,triggeredFrom:s=`quick_save`,saveType:l=`manual`}){return!t&&!r&&!c.isAllowed(`save`)||t&&!c.isAllowed(`publish`)||r&&!c.isAllowed(`savePristine`)?n.reject({message:Xr}):(e.eventTrack(`Start Saving`,{category:`Mix Editor`,label:t?`Long Save`:`Quick Save`}),(t?V({triggeredFrom:s,saveType:l}):ie({triggeredFrom:s,saveType:l})).catch(W).then(async function(e){return await ee.onSaveRevision(b.current,e.id),C.onSaveRevision(b.current.id,e.id),B(e,t),await de(e),i.is(`mixEditor`)&&(a&&U(e),o)?i.go(`.`,{id:e.id},{location:`replace`,inherit:!1}).then(()=>e):e}).finally(()=>{x.isPreSaving=!1,x.isSaving=!1}))}function B(t,n){return e.eventTrack(`End Saving`,{category:`Mix Editor`,label:n?`Long Save`:`Quick Save`}),t}function V({isPublic:e=!0,triggeredFrom:r,saveType:i=`manual`}){let a=x.hasRevisionChanges;return se({hasRevisionChanges:a}).then(function(e){return n(function(t,n){let r=ul(e.song),i=new D({overlayClose:!1,templateUrl:a?`https://www.bandlab.com/web-app/song/partials/_revision-new-0ae91012f.html`:`https://www.bandlab.com/web-app/song/partials/_revision-publish-e889bd989.html`,contentScope:{editorState:x,revision:e,resolve:function(e){Object.assign(b.current.song,e.song),t(e),i.destroy()}},onCancel:function(){e.song=r,n({message:yr,hasRevisionChanges:a})}});i.show()})}).then(t=>a?le(t,e,r,i):ue(t)).then(n=>(a&&e&&rD(n,t),n))}function ie({triggeredFrom:e,saveType:t}){return se({hasRevisionChanges:!0}).then(function(n){return le(n,!1,e,t)})}function H(e){if(te&&te.id===e)return te.check;if(b.releaseLock(),!e||!(`BroadcastChannel`in window))return n.resolve(!1);let t=n.defer(),r=new BroadcastChannel(e);te={id:e,check:t.promise};let i=setTimeout(()=>{t.resolve(!1)},100);return b.releaseLock=()=>{r.close(),clearTimeout(i),te=null,t.resolve(!1)},r.onmessage=function(e){e.data===P&&(alert($r),t.resolve(!0),r.close(),clearTimeout(i)),e.data===F&&r.postMessage(P)},r.postMessage(F),t.promise}function ae(){let t=n.defer();t.promise.then(t=>{if(t){e.eventTrack(`Restore Snapshot`,{category:`Mix Editor`}),e.eventTrack(`studio_session_snapshot_restore`,{platforms:[`amplitude`]});return}d.removeSnapshot(b.current.id),e.eventTrack(`Decline Snapshot`,{category:`Mix Editor`}),e.eventTrack(`studio_session_snapshot_discard`,{platforms:[`amplitude`]})});let r=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));X(r,{bumpZIndex:!0,size:`small`,title:`Restore last session?`,subtitle:`You have unsaved changes for this revision`,actions:[{label:`Cancel`,color:`secondary`,onClick:i},{label:`Restore`,color:`destructive-primary`,onClick:()=>{t.resolve(!0)}}]},{escapeClose:!1,overlayClose:!1,onClose:i});function i(){t.resolve(null)}return t.promise}function oe(e,t=[]){return e.revision.samples=e.revision.samples.map(e=>{let n=t.find(t=>t.id===e.id)||{};return{...e,...n}}),e.revision.song=new M(e.revision.song),e.revision}async function se({hasRevisionChanges:e}){let{audioEngineNode:{MixHandler:t},mixHandler:r}=y.current;function i(t){let r=f.getIdsOfMissingSamples(),i=t.tracks.filter(e=>e.canEdit).filter(e=>e.regions.some(t=>!f.isRegionPlayable(t,e)&&!r.has(t.sampleId))),a=n.defer();if(!i.length)return n.resolve();let o=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));return x.isInBackground=!0,X(o,{title:`Some Work Will Be Lost`,contentVHtml:`<p class="text-left">Weâve found some regions that are incompatible with the track they are in (e.g. MIDI region in an audio track). 254Incompatible regions in the following tracks will be deleted if they are not moved before saving:</p><ul class="text-left">${s()}</ul>`,size:`small`,actions:[{label:`Move Regions`,color:`secondary`,onClick:()=>{a.reject(Error(gr))}},{label:`Save Now`,color:`destructive-primary`,onClick:()=>{p.pushUndo(b.current),t.tracks.filter(e=>
254e.canEdit).forEach(e=>{e.regions=e.regions.filter(t=>f.isRegionPlayable(t,e))}),a.resolve()}}]},{onClose:()=>{x.isInBackground=!1,a.reject({message:yr,hasRevisionChanges:e})}}),a.promise;function s(){return i.map(e=>`<li>${e.name}</li>`).join(``)}}function a(e){e.tracks.flatMap(e=>e.regions).some(e=>e.takeList&&e.takeList.length>1)&&x.availableFeaturesSet.has(`comping`)&&o.addNotification({title:`Unused Takes`,content:`You have audio regions with unused takes. These takes will be lost when you log out.`,classList:`warning`,autoclose:8e3})}function s(){return y.current.resetPreviousMixData(),y.current.prepareMix().then(function(){return y.current.updateMix()}).then(function(e){if(e?.ok===!1){let t=Error(e.msg);return t.name=`SetMixError`,Sentry.onLoad(function(){Sentry.captureException(t)}),Promise.reject(t)}})}var c;x.isPreSaving=!0,await i(b.current),await y.current.removeDuplicateSamples(),await s();let l=await r.getCurrentMix(),u=await t.getMixRequirements(l),d=await r.getPlaceholderList(),m=new Set([...u.audioSamples,...u.midiSamples]),h=d.filter(e=>{if(!m.has(e))return!1;let t=b.current.samples.find(t=>t.id===e),n=(b.current.samplerKits?.samples||[]).find(t=>t.id===e);return!(tt(t?.creatorId)||n?.file)});if(h.length)throw Sentry.addBreadcrumb({message:`Placeholder samples introduced in session`,category:`editor.save`,data:{count:h.length}}),Error(`Placeholder samples introduced in session`);return n.resolve().then(function(){return o.clearAll(),a(b.current),c=ul(b.current),S.sanitize(c)}).then(function(){return e&&(c.description=``),!1}).then(function(){return y.current.validateRevision(c).then(function(e){if(!e.ok){let t=Error(e.msg);t.name=`ValidateRevisionError`,Sentry.onLoad(function(){Sentry.captureException(t,{attachments:[{data:JSON.stringify(c),filename:`savedRevision.json`,contentType:`application/json`}]})})}}),c.song.id?M.get({id:c.song.id}).$promise.then(function(e){return e.name=c.song.name,e.description=c.song.description,c.song=e,c}):c})}function ce(e){var t=g.get(e);return _.exportScoreToMid(t.id).then(function(e){return{blob:e,id:t.id,score:t}})}async function le(t,r,i,a){let{audioEngineNode:o}=y.current,s=performance.now();x.isSaving=!0,x.hasRevisionChanges=!1,t.mastering&&delete t.mastering.drySampleId,t.post=t.post||{},t.post.state=t.availabilitySetting||`Private`,delete t.availabilitySetting,Sentry.onLoad(function(){Sentry.addBreadcrumb({message:`Save Revision: start`,category:`editor.save`})}),Sentry.onLoad(function(){Sentry.addBreadcrumb({message:`Save Revision: upload samples`,category:`editor.save`})});let c=await Dl(o.MixHandler,t),l=await o.MixHandler.createMixDataFromRevision(JSON.stringify(c)),u=(await Zl(o,l.mix)).map(async function(e){e.blob&&(await A.upload({blob:e.blob,sampleId:e.id,sampleType:`samples`}),d.deleteFile(e.id),yp.remove(e.id))});return n.all(u).then(async function(){let n={};t.tracks.forEach(function(r){r.regions.forEach(function(i){if(!ec[i.sampleId]){e.eventTrack(`Missing sample`,{category:`Debug`,label:`${i.sampleId} in ${t.song.id} (${w.id})`});let a=f.isRegionPlayable(i,r);e.eventTrack(`Looking up missing sample`,{category:`Debug`,label:`${i.sampleId} (${a})`}),Sentry.onLoad(()=>{Sentry.addBreadcrumb({message:`Missing sample`,category:`editor.save`,data:{songId:t.song.id,userId:w.id,sampleId:i.sampleId,hasSample:a||!1,track:{soundbank:r.soundbank,patterns:r.patterns,samplerKit:r.samplerKit}}})}),a&&!n[i.sampleId]?(Sentry.onLoad(()=>{Sentry.addBreadcrumb({message:`Looking up missing sample`,category:`editor.save`})}),n[i.sampleId]=c(i).then(function(e){return A.upload({blob:e,sampleId:i.sampleId,sampleType:`samples`})}).catch(function(t){return e.eventTrack(`Error while re-uploading missing sample`,{category:`Debug`,label:`${i.sampleId} (${t.message})`}),Promise.reject(t)})):a||(n[i.sampleId]=Promise.reject(Error(`Missing sample during saving`)))}})}),await Promise.all(Object.values(n)),Sentry.onLoad(function(){Sentry.addBreadcrumb({message:`Save Revision: post revision`,category:`editor.save`})}),t.song.id&&t.song.canEdit&&await M.update({id:t.song.id,name:t.song.name,description:t.song.description,isForkable:x.isPracticeProject?!0:t.song.isForkable,pictureId:t.song.pictureId}).$promise;let r=t.tracks.map(e=>{let t=e.regions.map(e=>{let t=wl(e.pitchTimeCorrection);return{...e,pitchTimeCorrection:t}});return{...e,regions:t}}),o=[`on_exit`,`on_minimise`,`critical_action`,`periodic`].includes(a)?`auto-saved`:null,s={...t,tracks:r,saveType:a,description:o};return k.save({revision:s,triggeredFrom:i,autokeyUsedCount:b.autokeyUsedCount}).$promise;function c(e){if(f.isAudioRegion(e)){let t=b.current.samples.find(t=>
254t.id===e.sampleId);return _r(t.buffer).catch(function(){return y.current.readSample(e.sampleId).then(function(e){return new Blob([e],{type:`audio/wav`})})})}return f.isMidiRegion(e)?ce(e.sampleId).then(function({blob:e}){return e}):Promise.reject()}}).then(e=>e).then(function(n){t.id||e.eventTrack(`Create Project`,{category:`Song`,label:n.song.isForkable?`Forkable`:`Non-forkable`}),d.removeSnapshot(t.id),b.autokeyUsedCount=0;let r=t.tracks.filter(e=>e.samplerKit&&!e.samplerKit.id);return n.tracks.filter(e=>e.samplerKit&&!e.samplerKit.id).length>r.length&&e.eventTrack(`Sampler kit with missing ID after save`,{category:`Debug`,label:n.id}),import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:e})=>{e(`revision_save_success`,{time:(performance.now()-s)/1e3}),n.tracks.some(e=>e.auxSends[0].sendLevel!==0)&&e(`studio_aux_reverb_revision_save`)}),n})}function U(e,t=0){let n={0:{title:e.isPublic?`Revision published`:`Project saved`,showViewRevisionButton:!0},1:{title:`All changes have been saved`,showViewRevisionButton:!1},2:{title:`Project saved`,showViewRevisionButton:!0},3:{title:`All changes have been saved`,showViewRevisionButton:!1}},r=n[t]||n[0],{title:i,action:a}={title:r.title,action:r.showViewRevisionButton?`<a ui-sref="track({ 255 id: $parent.innerScope.revision.postId 256 })" 257 class="notification-action-text-inline"> 258 View Revision 259 </a>`:void 0};o.addNotification({title:i,action:a,image:`${e.song.picture.url}48x48 1x, ${e.song.picture.url}96x96 2x`,innerScope:{revision:e},autoclose:1e4})}function W(e){switch(Qe(e,`status`,0),x.hasRevisionChanges=!0,e.message||e.statusText){case yr:x.hasRevisionChanges=e.hasRevisionChanges;break;case ri:o.addNotification({title:Gr,content:ri,classList:`alert`});break;case gr:case`Unauthorized`:break;default:if(e?.status===-1){d.addSnapshot(b.current),o.addNotification({title:`Your work cannot be saved.`,content:`Check your internet connection and try again`,classList:`alert`});break}if(t(),e?.data?.errorCode===202)break;o.addNotification({title:Gr,content:dr,classList:`alert`,action:`<a class="ds-button ds-button-color-secondary ds-button-size-compact" href="https://help.bandlab.com/hc/en-us/articles/115002945193-Why-aren-t-my-projects-and-revisions-syncing-saving-" target="_blank"><span class="ds-button-text">Read More</span></a>`})}return h.flushQueue(),n.reject(e);function t(){let{fingerprint:t,message:n}=r(e);Sentry.onLoad(function(){Sentry.captureException(n,{extra:{error:e,original:b.current},fingerprint:t,tags:{issue:`cannot-save-revision`}})})}function r(e){let t=Qe(e,`config.url`,``),n=Qe(e,`status`,0);switch(!0){case t.includes(`/revisions`):return{fingerprint:[`save`,`revision`,n],message:`Error ${n} on save revision ${Qe(e,`data.modelState[0]`,``)}`};case t.includes(`/songs`):return{fingerprint:[`save`,`song`,n],message:`Error ${n} on save revision ${Qe(e,`data.message`,``)}`};default:return{fingerprint:[`{{ default }}`],message:e&&(e.message||e.status||e.name)}}}}function G(t,n){if(t.song.name!==n){if(e.eventTrack(`Edit name of revision`,{category:`Mix Editor`}),!t.song.id||!t.song.canEdit){O.setMetadata({title:t.song.name}),O.update();return}return x.isSaving=!0,M.update({id:t.song.id,name:t.song.name}).$promise.then(function(){x.isSaving=!1,O.setMetadata({title:t.song.name}),O.update()})}}function ue(e){return x.isSaving=!0,e.song.id&&e.song.canEdit?M.update({id:e.song.id,name:e.song.name,isForkable:e.song.isForkable,pictureId:e.song.pictureId}).$promise.then(function(){return t()}):t();function t(){return new k({description:e.description,genres:e.genres,id:e.id}).$update()}}async function de(e){b.current.canPublish=e.canPublish,b.current.createdOn=e.createdOn,b.current.creator=e.creator,b.current.description=e.description,b.current.genres=e.genres,b.current.id=e.id,b.current.isFork=e.isFork,b.current.mixdown=e.mixdown,b.current.modifiedOn=e.modifiedOn,b.current.parentId=e.parentId,b.current.postId=e.postId,Object.assign(b.current.song,lA(e.song,`name`)),i.is(`mixEditor`)&&await H(e.id)}async function K({newProject:e=!1,id:t,template:n}){try{n||(x.isRevisionLoadedFromTemplateBrowser=!1);let r=h.pushTask(`postProcessAudio`);i.go(`.`,{id:n?null:t??null},{location:`replace`});let a;if(e)a=v.createRevision({song:new M({bandId:null,canEdit:!0,isForkable:!1,name:`New Project`})});else{if(a=await k.get({id:n?n.revisionId:t,edit:!0}).$promise,n){let e=n.name??a.song?.name;a.creator=void 0,a.id=void 0,a.createdOn=void 0,a.modifiedOn=void 0,a.post=void 0,a.postId=void 0,a=v.createRevision({...a,canEdit:!0,song:new M({canEdit:!0,name:e})})}a=await S.cleanRevision(a)}
259b.current=a,await H(a.id),l.init(a.metronome),await ee.loadTakes(a),C.cleanCollapseData(a.id,a.tracks,a.trackGroups),t&&(await u.requestTrackMixdown(b.current),await u.loadAllSamples(b.current,y.current)),await y.current.updateMix(),await q(b.current),hx.value=null,Zs.value=null,p.clear();let o=new Set([...b.selectedRegions].map(e=>e.id)),s=C.refreshSelections(b.current,{selectedTrackId:b.selectedTrack?.id,selectedRegionIds:new Set(o)});C.setSelected(s),x.hasSoloTrack=u.checkAnySolo(),x.hasRevisionChanges=!1,y.updateSourcesInTracks(),h.finishTask(r)}catch(e){if(Du(e,o))return;throw e}}async function q(e){let t=await y.current.mixHandler.getIdsOfFrozenTracks(),n=new Set(t);for(let t of e.tracks)C.reconcileFrozenStateFromEngine(t,n.has(t.id))}}})();hA.$inject=`$analytics.$injector.$q.$rootScope.$state.$stateParams.AppNotifications.ConfirmModal.EditorAllowActions.EditorCycle.EditorData.EditorDB.EditorHelper.EditorHistory.EditorImporter.EditorLoader.EditorMidiSamples.EditorMidiScore.EditorModel.EditorPlayer.EditorRevision.EditorState.EditorTimeline.EditorTrack.Me.Metronome.MidiEditor.Modal.Page.Revision.Sample.SharedMidiSynth.Song.Soundbank`.split(`.`),angular.module(`bandlab.editor`).factory(`Editor`,hA);const gA=To(e=>{let t=O({}),n=null,r=e.get(`EditorRevision`),i=e.get(`$rootScope`).$watchCollection(c,e=>{a(e)});return S(()=>{n?.abort(),i()}),{studioRevisionSoundsPackMap:t};async function a(e){if(n?.abort(),!e.length)return;let r=o(e);if(!r.length)return;let i=new AbortController;n=i;try{let e=(await Promise.all(cC(r,500).map(e=>ro({sampleIds:e,signal:i.signal})))).flat();if(i.signal.aborted)return;Object.assign(t.value,s(r,e))}catch{i.signal.aborted}finally{n===i&&(n=null)}}function o(e){return e.filter(e=>!(e in t.value))}function s(e,t){return t.reduce((e,t)=>(e[t.sampleId]=t,e),Object.fromEntries(e.map(e=>[e,null])))}function c(){return[...new Set([...(r.current.samples??[]).map(e=>e.id),...r.current.tracks.flatMap(e=>(e.samplerKit?.kit.layers??[]).map(e=>e.sampleId))])]}});function _A(){let e=D({canSetPattern:!1,menu:[]});return{state:T(e),update:t,setSelectedRegionsDrumMachinePattern:n};async function t(t,n,r){let i=[...new Set(r.map(e=>e.trackId))],a=i.reduce((e,t)=>{let r=n.tracks.find(e=>e.id===t);return r&&oc(r)&&e.push(r),e},[]);if(i.length===0||i.length!==a.length){e.canSetPattern=!1,e.menu=[];return}e.canSetPattern=await t.canSetPattern();let o=new Map,s=a.map(async e=>{let n=null;try{if(n=await t.getPatternEditor(e.id),n){let t=await n.getEmptyStatusForAllPatterns();o.set(e.id,t)}}catch{return}finally{n?.delete()}});await Promise.all(s);let c=Array.from({length:8},(e,t)=>t).reduce((e,t)=>(Array.from(o.values()).some(e=>e[t])||e.push({label:String.fromCharCode(97+t).toUpperCase(),value:t}),e),[]);e.menu=c}async function n(e,t,n){await e.setSelection(t),await e.setPatternForSelection(n),await e.clearSelection()}}angular.module(`bandlab.editor`).directive(`mixEditor`,[`$analytics`,`$injector`,`$q`,`$rootScope`,`$state`,`AppNotifications`,`DrumMachine`,`Editor`,`EditorAllowActions`,`EditorAutomation`,`EditorData`,`EditorDB`,`editorEvents`,`EditorHelper`,`EditorHistory`,`EditorImporter`,`EditorLoader`,`EditorMidiSamples`,`EditorPlayback`,`EditorPlayer`,`EditorReset`,`EditorRevision`,`EditorScrollState`,`EditorState`,`EditorTimeline`,`EditorTrack`,`Identity`,`Me`,`MidiDevice`,`MidiEditor`,`MidiEditorState`,`MidiMapping`,`Page`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,h,g,_,v,y,b,x,C,w,T,E,D,O,k,A,j,M,N,P){return{replace:!0,restrict:`E`,scope:{},templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-3093b0488.html`,controller:[`$scope`,function(F){Object.defineProperty(F,"revision",{configurable:!0,enumerable:!0,get:()=>C.current});let ee=we(function(e={}){return import(`./DvQD5s06.js`).then(e=>e.t).then(function({logMixEditorOpen:t}
259){let n=window.location.search,r=new URLSearchParams(n).get(`~campaign`);t({open_attribution:i.params.open_attribution??e.open_attribution??(F.revision.id?`existing_project`:`new_project`),triggered_from:i.params.triggered_from??e.triggered_from,campaign:i.params.campaign??r})})});document.addEventListener(`ratingEvent`,I);function te(){if(F.revision.song.author.type===`Band`&&!F.revision.canPublish){F.isBandPublishTooltipActive=!0,setTimeout(function(){F.isBandPublishTooltipActive=!1,F.$applyAsync()},1e4);return}F.revision.isFork&&(F.isForkPublishTooltipActive=!0,setTimeout(function(){F.isForkPublishTooltipActive=!1,F.$applyAsync()},1e4))}function I(e){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logStudioRating:t}){t(e.detail)})}async function L(){if(!C.selectedRegions.size)return F.canMergeRegions=!1,F.canSliceRegions=!1,!1;let{mixHandler:e}=b.current;return await se(),F.canMergeRegions=await e.canMerge(),F.canSliceRegions=await e.canSlice(),F.$applyAsync(),!0}let R=!1;document.addEventListener(`visibilitychange`,le);var ne=n.defer();Gn(()=>{Ck(t,F),PD(function(){Q.start(`onDprChange`,!1,null,!1,!1),F.$apply()}),S(()=>{b.current.destroy().catch(e=>void 0)})},F),F.user=k,F.state=T,F.midiEditorState=M,T.scale=on[35],M.scale=on[57],F.trackColors=dt,F.colorNameToDSColor=OS,F.addTrack=de,F.displaySongStarter=ue,F.displayAddTrack=q,F.save=ce,F.showCampaignModal=ve,F.toggleSnap=Te,F.toggleArm=ye,F.toggleAutomationRecording=be,F.toggleFollowPlayhead=xe,F.toggleOverdubbing=Se,F.toggleQuantization=()=>Ce(!Z.QUANTIZATION),F.zoomIn=Ee,F.zoomOut=De,F.initZoomTimer=Oe,F.notifyTrackLimit=D.notifyTrackLimit,F.shouldNotifyTrackLimit=D.shouldNotifyTrackLimit;let{canToggleFreeze:z,canToggleRecord:re,canRenderMix:B,hasFreezingTrack:V}=Yk(t);F.isFreezingTrack=e=>C.trackFreezing.get(e),F.canToggleFreeze=e=>z(T,C.current,e),F.hasFreezingTrack=()=>V(C.current),F.canToggleRecord=()=>re(T,C.selectedTrack,C.current),F.canRenderMix=()=>B(T,C.current),F.canHistoryMove=e=>!(T.isRecording||e===`undo`&&!h.state.hasUndo()||e===`redo`&&!h.state.hasRedo()||F.hasFreezingTrack()),F.displayInstrument=p.displayInstrument,F.displayAudioEditor=p.displayAudioEditor,F.displayMidiEditor=p.displayMidiEditor,F.displayPresetSettings=p.displayPresetSettings,F.getTrack=()=>C.selectedTrack,F.hasSelectedNotes=j.hasSelectedNotes,F.hidePanel=p.hidePanel,F.isTrackTransposable=()=>p.isTrackTransposable(M.track),F.refreshRollLayout=j.refreshRollLayout,F.resizeRollHeight=j.resizeRollHeight,F.storeRollHeight=j.storeRollHeight,F.actionTooltip=Le(XD),F.actionShortcut=Le(ZD),F.toRaw=m,F.blurInput=e=>{(e.which===13||e.which===27)&&e.currentTarget.blur()},F.updateMirror=e=>{setTimeout(function(){e.target.parentElement.previousElementSibling.textContent=e.target.value})};let{requireStudioMembership:ie}=Eo(t);F.requireStudioMembership=ie,F.toggleAutomationView=function(){l.toggleAutomationView()},F.toggleRegionAudioStretch=function(){T.isRegionAudioStretchEnabled=!T.isRegionAudioStretchEnabled,T.isRegionAudioStretchEnabled&&ga(`stretch`)};let H=angular.noop,ae=angular.noop,{sliceRegions:oe}=Yk(t);async function se(){let e=[...C.selectedRegions].map(e=>e.id),{mixHandler:t}=b.current;await t.setSelection(e)}F.$on(f.keyDown.triggerSlice,()=>F.triggerSlice()),F.triggerSlice=async function(){import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`slice`));let e=[...C.selectedRegions].map(e=>e.id);try{await oe(e)}catch{}finally{F.$applyAsync()}},Z.IS_LEGACY_KEYBOARD=Y.isLegacyKeyboard===`true`,isNaN(Y.countInDuration)||(Z.COUNT_IN_DURATION=parseInt(Y.countInDuration)),Y.preferSharps||(Z.PREFER_SHARPS=Y.preferSharps===`true`),F.savePreferSharps=e=>{Z.PREFER_SHARPS=e,Y.preferSharps=Z.PREFER_SHARPS},F.getPreferSharps=()=>Z.PREFER_SHARPS,F.studioMasteringState=Gn(()=>Sk(t,F),F),n.race([s.init(F.revision),ne.promise]).then(async function(){let e=Pe(`ftue_demo_project`),n=e.value?.value===`true`&&!!e.value?.payload?.id,r=i.params.tutorial===`true`||i.params.tutorial===!0,a=!r&&n&&!k.ftue.usedStudio;if(T.isUnderViewPackFromAudioRegionExperiment&&Gn(()=>{gA(t)},F),Q.start(`updateArrangementView`,!1,{sortTrackIds:!0}
259,!1,!0),i.params.id&&te(),Y.followPlayhead&&(Z.FOLLOW_PLAYHEAD=JSON.parse(Y.followPlayhead)),Y.overdubbing&&(Z.OVERDUBBING=JSON.parse(Y.overdubbing)),Y.quantization&&await Ce(JSON.parse(Y.quantization)),Y.snapToGrid?T.isSnapping=Y.snapToGrid===`true`:Y.snapToGrid=T.isSnapping,i.params.source)ee({triggered_from:`deeplink`,open_attribution:i.params.source});else if(i.params.samplerKit)ee({triggered_from:`deeplink`,open_attribution:`samplerKit`});else if(i.params.samplePack||i.params.sampleId||i.params.userSoundsSampleId)ee({triggered_from:`sounds`,open_attribution:`sounds`});else if(i.params.preset||i.params.effect||i.params.open_effects_library){let e=i.params.preset?`effect-preset`:i.params.effect?`effect`:`open_effects_library`;ee({triggered_from:`deeplink`,open_attribution:e})}F.revision.tracks.length===0&&i.params.songstarter?(F.displaySongStarter(),ee({open_attribution:`songstarter`})):F.revision.tracks.length===0&&i.params.palette?(K({productOrigin:``,triggeredFrom:`deeplink`}),ee({triggered_from:`deeplink`,open_attribution:`palette`})):F.revision.tracks.length===0&&!i.params.sampleId&&i.params.source!==`soundLibrary`?i.params.campaign?(F.showCampaignModal(i.params.campaign),ee({campaign:i.params.campaign,triggered_from:`deeplink`})):a?fe(e):!k.ftue.usedStudio||r?F.initWelcomeTutorial():F.displayAddTrack({pushUndo:!1}):i.params.splitter?ee({triggered_from:`splitter`,open_attribution:`splitter`}):ee(),F.revision.tracks[0]&&(i.params.preset||i.params.effect||i.params.open_effects_library)&&p.displayPresetSettings({toggle:!1});let o=Eo(t).availableFeaturesSet.value.has(`fx-blend`);F.revision.tracks.forEach(function(e){let t=e.automation.volume.length&&`volume`||e.automation.pan.length&&`pan`||o&&e.automation.fxMix.length&&`fxMix`||l.getAutomatableParameters(e.effects).find(function(e){return e.automation.length});C.trackAutomationParameters.set(e,t||`volume`)}),A.init(),N.pruneMappings(),N.updateMappings();let{drumMachineRegionActions:s}=Gn(()=>({drumMachineRegionActions:_A()}),F);F.drumMachineRegionActions=s,F.$watch(()=>Array.from(C.selectedRegions,({id:e})=>e).sort().join(`,`),async()=>{H(),ae();let e=[...C.selectedRegions],t=await L(),{mixHandler:n}=b.current;await s.update(n,C.current,e),F.$applyAsync(),t&&(e.some(e=>{let t=C.current.tracks.find(t=>t.id===e.trackId);return oc(t)})&&(ae=F.$on(`mixUpdate`,async()=>{await se(),await s.update(n,C.current,e),F.$applyAsync()})),H=F.$watch(()=>T.crTime,async()=>{T.isPlaying||T.isRecording||(await se(),F.canSliceRegions=await n.canSlice(),F.$applyAsync())}))})}).catch(function(e){e.message!==`Action canceled`&&(Sentry.onLoad(function(){Sentry.captureException(e||`Unable to initialize Studio. Please re-open it.`,{error:e,extra:{revision:C.current}})}),alert(Mr))}),E.broadcastScale({state:T}),E.broadcastScale({state:M}),F.$on(f.importFile,function(t,n){c.isAllowed(`import`)&&(g.importFile(n),n.file&&e.eventTrack(`Import File`,{category:`Mix Editor`,label:n.file.type}))}),F.$on(f.keyDown.addTrack,function(){let e=document.getElementById(`mix-editor-add-track-button`);e&&e.click()}),F.$on(f.keyDown.zoomInPianoRollVertical,()=>F.zoomPianoRollVertical(1)),F.$on(f.keyDown.zoomOutPianoRollVertical,()=>F.zoomPianoRollVertical(-1)),F.zoomPianoRollVertical=function(e,t){if(KO(e))return;let n=UO(w.notesTop,w.notesEl,e,t);w.notesTop=n,Q.start(`scroll:notesTop`,!1,w.notesTop,!0,!1),F.$apply(()=>VO(e,w.notesEl,w.notesTop)),w.notesTop=n,Q.start(`scroll:notesTop`,!1,w.notesTop,!0,!1)},F.$on(f.keyDown.zoomIn,function(){let e=M.hasFocus?M:T;F.initZoomTimer({state:e}),F.zoomIn({state:e})}),F.$on(f.keyDown.zoomOut,function(){let e=M.hasFocus?M:T;F.initZoomTimer({state:e}),F.zoomOut({state:e})}),F.$on(f.keyDown.save,function(){F.save({publish:!1,triggeredFrom:`keyboard_shortcut`})}),F.$on(f.keyDown.selectAllRegions,function(){C.selectedRegions=new Set(u.getRegions())}),F.$on(f.keyDown.snapReleased,function(){F.$apply(()=>{T.isSnapping=!T.isSnapping})}),F.$on(f.keyDown.snapPressed,function(){F.$apply(()=>{T.isSnapping=!T.isSnapping})}),F.$on(f.keyDown.toggleLoops,function(){F.toggleTab(`Loops`)}),F.$on(f.keyDown.toggleSnap,function(){Te()}),F.$on(f.keyDown.recordAutomation,function(){F.toggleAutomationRecording()}),F.$on(Nc,function(){y.startPlayAnimationFrame(),F.$applyAsync()}),F.$on(zc,function(){y.stopPlayAnimationFrame(),F.$applyAsync()}),F.$on($c,function(){r.$broadcast(Fc,{fromTime:y.startPositions.record}),F.$applyAsync()}),F.$on(Mc,function(){F.$applyAsync()}),F.$on(f.finishEditingSession,L),F.$on(`$destroy`,function(){d.removeSnapshot(F.revision.id),CO(),WO(),XO(),Ay(),x.reset(),ne.reject(Error(yr)),document.removeEventListener(`ratingEvent`,I),document.removeEventListener(`visibilitychange`,le)}),F.$watch(()=>
259{if(_y.value=C.current.key,vy.value=C.selectedTrack?.id,!C.selectedTrack||!C.selectedTrack.regions||C.selectedTrack.regions.some(e=>!v.get(e.sampleId))||C.selectedTrack.type===`drum-machine`){_O.value=[];return}let e=C.selectedTrack.regions.flatMap(e=>v.get(e.sampleId).notes.map(e=>e.midiNote));_O.value=Array.from(new Set(e)).sort((e,t)=>e-t)}),F.initWelcomeTutorial=function(){let e={addTrackAndDisplayPanel:async function({type:e,name:t}={}){await de({},e,t)},closeSideTab:function(){r.$broadcast(`MixEditor:closeSideTab`)},displayAddTrack:q,displayPresetSettings:function(){p.displayPresetSettings(),F.$applyAsync()},displayTab:F.displayTab,hidePanel:p.hidePanel,setProjectTempo:function(e){E.updateBpm(e),F.$applyAsync()},getDemoProjects:s.getDemoProjects,openTemplateInStudio:ge,selectPreset:D.selectPreset};QO(xk(),{$injector:t,scope:e})};function ce(e={}){let t={publish:!1,pristine:!1,showSuccess:!0,rewriteUrl:!0,triggeredFrom:void 0,saveType:`manual`,showFullLoader:!1,...e};if(T.isPreviewingRevision){if(t.publish){r.$broadcast(`MixEditor:askPublishOlderRevision`);return}let{promise:e,resolve:n,reject:i}=Promise.withResolvers();return r.$broadcast(`MixEditor:askRestoreOlderRevision`,{resolve:n,reject:i,saveOptions:t}),e}t.publish&&(Ws.pause(),o.stop(),y.pausePlay());let n;return t.showFullLoader&&(n=_.pushTask(`uploadMeta`,{rate:100})),s.startSave(t).then(async function(e){return n&&(n.realProgress=1,await new Promise(e=>setTimeout(e,2e3)),_.finishTask(n)),r.$broadcast(`MixEditor:savedRevision`,e),P.setMetadata({title:F.revision.song.name}),P.update(),e})}function le(){document.visibilityState===`hidden`&&U().catch(angular.noop)}async function U(){if(W())try{if(!await he()||!W())return;R=!0,await ce({showSuccess:!1,rewriteUrl:!0,triggeredFrom:`auto_save`,saveType:`on_minimise`})}finally{R=!1}}function W(){return T.hasRevisionChanges&&!T.isPreviewingRevision&&!T.isPreSaving&&!T.isRecording&&!T.isSaving&&!R}async function G(e){try{let t=await D.addTrackAfter(e,C.selectedTrack?.id);return t.type===`guitar-bass`||t.type===`guitar-electric`?p.displayPresetSettings({toggle:!1}):p.displayInstrument({toggle:!1}),F.$applyAsync(()=>{setTimeout(()=>D.scrollTrackIntoView(t.id))}),t}catch{}}function ue(){let e=J(()=>import(`./Bfe_86x8.js`).then(e=>e.n));T.isInBackground=!0;async function t(e){try{await s.loadSongStarterRevisionIntoStudio(e)}catch{a.addNotification({title:`Something went wrong, please try again later`,content:`Failed to save and open project. Please try again.`,classList:`warning`,autoclose:5e3})}finally{F.$applyAsync()}}X(e,{isModal:!0,loadSongStarterRevision:t},{overlayClose:!1,onClose:()=>{T.isInBackground=!1}})}async function de(e,t,n){e=t===`piano`?angular.extend(e,{name:n,soundbank:rt,type:`piano`}):t===`drum-machine`?angular.extend(e,{name:n,soundbank:`808-kit`,type:dn}):angular.extend(e,{name:n,type:t}),await G(e),F.$applyAsync(),ee({open_attribution:{"drum-machine":`drum_machine`,"guitar-bass":`bass`,"guitar-electric":`guitar`,piano:`midi_instrument`,sampler:`sampler`,voice:`voice`}[t]})}function K({productOrigin:e,triggeredFrom:n}={}){let{openPaletteInNewProject:r}=Jk(t);k.ftue.usedStudio||O.setUsedStudio(),r({productOrigin:e,triggeredFrom:n,onRevisionChange(){F.$applyAsync()}})}function q(t={}){let r=J(()=>import(`./CdmB079P.js`));var i=angular.noop,a=n.defer();return T.isInBackground=!0,X(r,{addTrack:async function(e,n){o(),await de(t,e,n)},openPaletteModal:function(){ee({open_attribution:`palette`}),K({productOrigin:`mix_editor`,triggeredFrom:`new_track_menu`})},openSongStarterModal:function(){ee({open_attribution:`songstarter`}),e.eventTrack(`songstarter_open`,{platform:`firebase`,params:{triggered_from:`new_track_menu`}}),ue()},browseBeats:function(){F.displayTab(`Beats`),F.$applyAsync()},browseLoops:function(){F.displayTab(`Loops`),F.$applyAsync(),Fi({triggeredFrom:`new_track_menu`,productOrigin:`mix_editor`}),ee({open_attribution:`loops`})},importFile:function(){return document.querySelector(`.mix-editor-track-placeholder`).click(),ee({open_attribution:`import`}),new Promise(e=>{i=F.$on(f.importFile,function(){e(),o()})})}},{escapeClose:!0,overlayClose:!0,onClose:function(){T.isInBackgroun
259d=!1,i(),a.resolve()},onDismiss:function(){ee({open_attribution:`dismiss_modal`})}}),a.promise;function o(){M.isVisible=!1,a.resolve()}}function fe(t){let n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));T.isInBackground=!0,X(n,{title:`Welcome to Studio`,subtitle:`A powerful tool for your creativity`,size:`small`,actions:[{label:`Start with Blank Project`,color:`secondary`,onClick:()=>Promise.resolve().then(()=>r({openDemo:!1}))},{label:`Open Demo`,color:`primary`,onClick:()=>Promise.resolve().then(()=>r({openDemo:!0}))}]},{escapeClose:!1,overlayClose:!1,onClose:function(){T.isInBackground=!1},onDismiss:function(){Promise.resolve().then(()=>r({openDemo:!1}))}});function r({openDemo:n}){e.eventTrack(`studio_demo_modal_action`,{platform:`firebase`,params:{action:n?`open_demo`:`open_blank_project`}}),k.ftue.usedStudio||O.setUsedStudio();let r=n?pe(t):``;return r?ge({revisionId:r}):F.displayAddTrack({pushUndo:!1})}}function pe(e){let t=e.value?.payload;return typeof t?.id==`string`?t.id.trim():``}F.showAskSaveModal=async function(e,t){if(c.shouldAskToSave()&&me()){if(await he()){if(T.isPreviewingRevision){let n=await ce({publish:!1,showSuccess:!1,rewriteUrl:!1,saveType:`manual`,showFullLoader:t===`full-loader`});return n&&s.displaySavingSuccess(n,2),e()}let n=await ce({publish:!1,showSuccess:!1,rewriteUrl:!1,triggeredFrom:`auto_save`,saveType:`on_exit`,showFullLoader:t===`full-loader`});return s.displaySavingSuccess(n,2),e()}p.show2StepSaveModal({saveFn:()=>{ce({publish:!1,showSuccess:!1,rewriteUrl:!1}).then(t=>{if(!t){e();return}s.displaySavingSuccess(t),setTimeout(e,2e3)}).catch(angular.noop)},onDiscard:e});return}return e()};function me(){return C.current.tracks.some(e=>e.regions.length)}function he(){return ke(k,`studio_auto_save_enabled`).then(e=>e===`true`).catch(()=>!1)}F.openTemplateInStudio=ge;function ge(e,t){return F.showAskSaveModal(async()=>{let{logSongTemplateLoad:n,logSongTemplateFirstModify:r}=await import(`./DvQD5s06.js`).then(e=>e.t);p.hidePanel(),F.closeSideTab();try{d.removeSnapshot(C.current.id),await s.loadRevision({newProject:!1,id:e.revisionId,template:e}),Q.start(`updateArrangementView`,!1,{sortTrackIds:!0},!1,!0),T.isRevisionLoadedFromTemplateBrowser=!0,b.setPlaybackPosition(0);let i=F.$watch(()=>T.hasRevisionChanges,()=>{T.hasRevisionChanges&&(i(),r())});P.setMetadata({title:F.revision.song.name}),P.update(),n(),t?.()}catch{}},`full-loader`)}F.openPaletteInStudio=_e;async function _e(){await y.pausePlay(),F.$applyAsync(),p.hidePanel(),F.closeSideTab();let{openPaletteInExistingProject:e}=Jk(t);return e(void 0,{productOrigin:`mix_editor`,triggeredFrom:`browse_tab`})}function ve(e){if(e===`ai_tools`){T.isInBackground=!0;let e=J(()=>import(`./DqmT6JEI.js`));X(e,{title:`Find AI tools in the region menu`,content:`Select an audio or MIDI region, and tap the 3-dot icon to access AI tools like Voice Cleaner, Audio-to-MIDI, Splitter, and Voice Changer.`,videoURL:`https://strapi.bandlab.com/assets/ai_tools_aa37083462.mp4`},{escapeClose:!0,overlayClose:!0,onClose:()=>{T.isInBackground=!1,q()}})}}function ye(){T.isArming=!T.isArming,T.isArming||(C.armedTracks[2]=null)}function be(){T.isRecordingAutomation=!T.isRecordingAutomation}function xe(){Z.FOLLOW_PLAYHEAD=!Z.FOLLOW_PLAYHEAD,Y.followPlayhead=Z.FOLLOW_PLAYHEAD}function Se(){Z.OVERDUBBING=!Z.OVERDUBBING,Y.overdubbing=Z.OVERDUBBING}function Ce(e){return Z.QUANTIZATION=e,Y.quantization=Z.QUANTIZATION,b.current.setQuantization(Z.QUANTIZATION?M.quantizationValue:null)}function Te(){let e=!T.isSnapping;T.isSnapping=e,Y.snapToGrid=e}function Ee({state:e=T,scale:t,...n}={}){let r=e===T?`zoomIn`:`midiRollZoomIn`;if(!c.isAllowed(r))return;var i=on.findIndex(t=>t>e.scale);if(t)e.scale=t;else if(on[i])e.scale=on[i];else return;let a=e===T?M:T;M.isLocked&&a.scale!==e.scale&&(a.scale=e.scale),E.broadcastScale({state:e,...n})}function De({state:e=T,scale:t,...n}={}){let r=e===T?`zoomOut`:`midiRollZoomOut`;if(!c.isAllowed(r))return;var i=on.findIndex(t=>t>=e.scale)-1;if(t)e.scale=t;else if(on[i])e.scale=on[i];else return;let a=e===T?M:T;M.isLocked&&a.scale!==e.scale&&(a.scale=e.scale),E.broadcastScale({state:e,...n})}function Oe({state:e=T}={}){let t=e===T?f.startZoom:f.startZoomMIDI,n=e===T?f.stopZoom:f.stopZo
259omMIDI,i=e===T?`scale:applyZoomTimeline`:`scale:applyZoomNotesTimeline`,a=e===T?M:T;if(!T.isZooming&&(T.isZooming=!0,r.$broadcast(t),M.isLocked)){let e=a===T?f.startZoom:f.startZoomMIDI;r.$broadcast(e)}clearTimeout(T.zoomTimer),T.zoomTimer=setTimeout(()=>{if(r.$broadcast(n),Q.start(i),M.isLocked){let e=a===T?`scale:applyZoomTimeline`:`scale:applyZoomNotesTimeline`;Q.start(e)}T.isZooming=!1},250)}Ae();function Ae(){let e=QD();document.documentElement.style.setProperty(`--audio-input-scrollbar-size`,`${e}px`)}}]}}]),angular.module(`bandlab.editor`).directive(`allowAction`,[`EditorAllowActions`,function(e){return{restrict:`A`,priority:-100,compile:function(t,n){return e.isAllowed(n.allowAction)||t.addClass(`disabled`).attr(`disabled`,`disabled`),function(t,n,r){t.$watch(()=>e.isAllowed(r.allowAction),function(e){e?n.removeClass(`disabled`).removeAttr(`disabled`):n.addClass(`disabled`).attr(`disabled`,`disabled`)})}}}}]),angular.module(`bandlab.editor`).directive(`mixEditorAreaSelection`,[`EditorRevision`,`EditorScroll`,`EditorScrollState`,`EditorState`,`EditorTrack`,function(e,t,n,r,i){return{restrict:`A`,link:function(a,o){var s,c,l,u,d,f,p,m;function h(e,t){d=e,f=t,p=e,m=t}function g(e,t){p=e,m=t}function _(){var e=Math.min(d,p),t=Math.min(f,m),n=Math.max(d,p),r=Math.max(f,m);s.css({left:`${e}px`,top:`${t}px`,right:`calc(100% - ${n}px)`,bottom:`calc(100% - ${r}px)`})}function v(e){for(let t of a.revision.tracks)for(let n of t.regions)if(n.id===e)return n}function y(e){return Array.from(document.querySelectorAll(`.mix-editor-region`)).flatMap(function(t){let r=v(t.getAttribute(`data-id`));if(!r)return[];let i=t.getBoundingClientRect();return{model:r,topLeft:{x:t.offsetLeft,y:i.top-e+n.tracksTop},bottomRight:{x:t.offsetLeft+i.width,y:i.top-e+i.height+n.tracksTop}}})}function b(e){return!(e.bottomRight.y<Math.min(f,m)||Math.max(f,m)<e.topLeft.y)&&!(e.topLeft.x>Math.max(d,p)||Math.min(d,p)>e.bottomRight.x)}function x(){e.selectedRegions.clear(),u.filter(b).filter(e=>e.model.canEdit).forEach(function(t){e.selectedRegions.add(t.model)})}function S(e,t){let r=o[0].scrollHeight,i=o[0].clientWidth,a=n.SCROLL_STEP,s=o[0].parentElement.getBoundingClientRect();if(s.top>t)return m=Math.max(m-a,0),{up:!0};if(s.top+s.height<=t)return m=Math.min(m+a,r),{down:!0};if(s.left>e)return p=Math.max(p-a,0),{left:!0};if(s.left+s.width-37<=e)return p=Math.min(p+a,i),{right:!0}}function C(e){var n=o[0].getBoundingClientRect(),i=o[0].parentElement.scrollLeft,s=o[0].scrollTop,u=o[0].clientHeight+n.top,h=o[0].clientWidth,v,y,b;e.target===o[0]?g(e.offsetX,e.offsetY+o[0].scrollTop):(y=n.left>e.pageX&&i===0?0:Math.min(e.pageX-n.left,h),b=n.top>e.pageY&&s===0?0:Math.min(e.pageY,u)-n.top+s,g(y,b)),Math.max(Math.abs(f-m),Math.abs(d-p))>5&&(r.isAreaSelecting=!0),r.isAreaSelecting&&(_(),x(),a.$digest(),o[0].setPointerCapture(e.pointerId),l(),clearInterval(c),c=setInterval(function(){v=S(e.clientX,e.clientY),t.manualScroll(v),_()},30))}function w(){if(e.selectedRegions.size){let t=f>m?0:e.selectedRegions.size-1,n=Array.from(e.selectedRegions)[t];i.setSelected(e.current.tracks.find(e=>e.id===n.trackId)),a.$digest()}r.isAreaSelecting=!1,s.remove(),o.removeClass(`selecting`),clearInterval(c),o.off(`pointermove`,C),window.removeEventListener(`pointerup`,w),d=0,f=0,p=0,m=0}o.on(`pointerdown`,function(e){let{top:t,left:r}=o[0].getBoundingClientRect();e.which!==1||e.ctrlKey||e.target.closest(`.mix-editor-region`)||e.target.closest(`.mix-editor-automation`)||(s&&s.remove(),s=angular.element(`<div class="mix-editor-area-selection"><div>`),o.prepend(s),o.addClass(`selecting`),h(e.clientX-r,e.clientY+n.tracksEl.scrollTop-t),u=y(t),o.on(`pointermove`,C),window.addEventListener(`pointerup`,w),l=we(function(){document.addEventListener(`mouseup`,function(e){e.stopPropagation()},{capture:!0,once:!0})}))})}}}]),angular.module(`bandlab.audio`).directive(`mixEditorArpeggiatorControls`,[`$injector`,`EditorPlayer`,`EditorState`,function(e,t,n){return{restrict:`E`,replace:!0,template:`<div style="display: contents"></div>`,link:function(r,i){let a=h({onUpdateArpeggiatorSettings:function(e){let n={...r.getTrack()};t.current.updateArpeggiatorSettings(e,n.id)}});r.$watch(function(e){let{getTrack:t}=e;a.track={...t()},a.isAudioInputVisible=n.isAudioInputVisible}),$(import(`./DkLH0KFR.js`),i[0],r,{$injector:e,scope:r},a)}}}]);var vA=4294967294,yA=Math.floor,bA=Math.min;function xA(e,t,n,r){var i=0,a=e==null?0:e.length;if(a===0)return 0;t=n(t);for(var o=t!==t,s=t===null,c=Se(t),l=t===void 0;i<a;){var u=yA((i+a)/2),d=n(e[u]),f=d!==void 0,p=d===null,m=d===d,h=Se(d);if(o)var g=r||m;else g=l?m&&(r||f):s?m&&f&&(r||!p):c?m&&f&&!p&&(r||!h):p||h?!1:r?d<=t:d<t;g?i=u+1:a=u}return bA(a,vA)}function SA(e,t,n){return xA(e,t,Mi(n,2))}function CA(e){let t=O(document.createElement(`div`));t.value.classList.add(`mix-editor-area-selection`);let n=O(!1),r=document.querySelector(`.mix-editor-ruler`),i=document.querySelector(`.mix-editor-tracks`),a=0,o=h({x0:0,y0:0,x1:0,y1:0}),s=U(()=>{let{x0:e,x1:t,y0:n,y1:r}=o;return{left:Math.min(e,t),top:Math.min(n,r),right:Math.max(e,t),bottom:Math.max(n,r)}});re(s,e=>{t.value.style.left=`${e.left}px`,t.value.style.top=`${e.top}px`,t.value.style.right=`calc(100% - ${e.right}px)`,t.value.style.bottom=`calc(100% - ${e.bottom}px)`});function c(e,t){d(e.offsetX,e.offsetY),a=t}function l(t){e.classList.add(`selecting`),n.value=!0;let{top:o,bottom:s}=e.getBoundingClientRect(),c;c=Math.max(0,a,t.offsetX),c=Math.min(c,a+(i.clientWidth-17));let l=o-r.getBoundingClientRect().bottom,u=l<0?Math.abs(l):0,d=i.getBoundingClientRect().bottom-s,p=d<0?Math.abs(d):0,m;m=Math.min(t.offsetY,e.clientHeight-p-(p>0?17:0)),m=Math.max(m,0,u),f(c,m)}function u(){e.classList.remove(`selecting`),n.value=!1,o.x1=0,o.y0=0,o.x1=0,o.y1=0}return{areaEl:t,areaCoordinates:s,isAreaSelecting:n,onPointerDown:c,onPointerUp:u,onPointerMove:l};function d(e,t){o.x0=e,o.y0=t,o.x1=e,o.y1=t}function f(e,t){o.x1=e,o.y1=t}}angular.module(`bandlab.editor`).filter(`pathString`,[`EditorAutomation`,function(e){return function(t){let n;if(t)return t.automation.length===0?n=[{position:0,value:t.value},{position:Z.SONG_DURATION_MAX,value:t.value}]:(n=t.automation.slice(),n.unshift({position:-10,value:n[0].value}),n.push({position:Z.SONG_DURATION_MAX+10,value:n[n.length-1].value})),n.map(function(n){return`${e.convertTimeToX(n.position)},${e.convertValueToY(n.value,t.height,t.meta)}`}).join(` `)}}]).directive(`mixEditorAutomation`,[`$document`,`EditorAutomation`,`editorEvents`,`EditorHelper`,`EditorHistory`,`EditorPlayer`,`EditorRevision`,`EditorScrollState`,`EditorState`,`EditorTrack`,function(e,t,n,r,i,a,o,s,c,l){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-automation-2724dbfea.html`,link:function(u,d){let f={x:0,y:0},p=[],m=[],h,g=null,_,v,y=[],b=!1;var x=t.MARKER_AREA,S,C,w;let T=E();
259function E(e=o.trackAutomationParameters.get(u.track)){let t={pan:ln,sendLevel:st,volume:lt,fxMix:an};if(Iu(e)){if(e.metadata.type!==`float`)throw Error(`Automation metadata must be numeric`);return e.metadata}return t[e??`volume`]}u.selectionMark={value:0},u.isReadoutAtEndOfTrack=e=>{let{timelineLeft:t}=s,n=s.timelineEl.getBoundingClientRect().width+t-12-80,r=c.scalePx*Z.SONG_DURATION_MAX-80;return e>n||e>r};let D=null,O;d[0].addEventListener(`contextmenu`,e=>{D=e.offsetX,O=he(e),t.currentTrackId.value=u.track.id,O&&!u.selectedPoints.includes(O)&&(u.selectedPoints=e.shiftKey?[...u.selectedPoints,O]:[O],u.$applyAsync())}),u.hasPointsInClipboard=function(){if(!Ys(Zs.value))return!1;let{automation:e,trackId:t}=Zs.value.data;return e.length>0&&t===u.track.id},u.$on(n.keyDown.copy,function(){c.isAutomationVisible&&t.currentTrackId.value===u.track.id&&u.copySelectedPoints()}),u.$on(n.keyDown.paste,function(){c.isAutomationVisible&&t.currentTrackId.value===u.track.id&&u.hasPointsInClipboard()&&u.pasteSelectedPoints(!0)}),u.copySelectedPoints=function(){Zs.value={type:`automation`,data:{automation:ul(u.selectedPoints),trackId:u.track.id}}},u.pasteSelectedPoints=function(e=!1){let n=Zs.value;if(!Ys(n))return;i.pushUndo(u.revision);let a=n.data.automation.map(e=>e.position).sort((e,t)=>e-t)[0],o;if(D&&!e){if(o=t.convertXtoTime(D)-a,D=null,c.isSnapping){let e=a+o,t=r.snapToGrid(e,c.snapDuration,{padding:10/c.scalePx});o+=t-e}}else o=c.crTime-a;let s=n.data.automation.map(e=>({position:e.position+o,value:e.value})),l=A();t.pasteSelection(l,s),u.selectedPoints=s,be()},u.getAutomationData=function(){let e=o.trackAutomationParameters.get(u.track),t=A(e);T=E(e);let n;return Iu(e)?(w=e.param,C=e.effect,n=C.params[w]):n=e===`sendLevel`?u.track.auxSends[0].sendLevel:e===`fxMix`?u.track.fxMix:e===`pan`?u.track.pan:u.track.volume,{automation:t,track:u.track,height:d[0].clientHeight,meta:T,value:n}},u.getMarkerMidId=()=>`marker-mid: url(#markerCircle-${u.track.id});`,u.resetAutomation=function(){if(i.pushUndo(u.revision),T.name===`pan`)u.track.automation.pan=[];else if(T.name===`volume`)u.track.automation.volume=[];else if(T.name===`fxMix`)u.track.automation.fxMix=[];else{let e=o.trackAutomationParameters.get(u.track);Iu(e)&&ja(e.automation,Boolean)}L(),be()},u.$watch(function(){return o.trackAutomationParameters.get(u.track)},function(e){Iu(e)?(w=e.param,C=e.effect):(w=void 0,C=void 0),T=E(e),u.selectedPoints=[]}),u.deleteSelectedPoints=()=>ye(u.selectedPoints),u.$on(n.keyDown.undo,L),u.$on(n.keyDown.redo,L),u.$on(`Automation:ClearSelectedPoints`,L),u.$on(n.keyDown.deleteSelectedAutomationPoints,u.deleteSelectedPoints),re(t.currentTrackId,e=>{u.track.id!==e&&(L(),u.$applyAsync())}),u.enterEditMode=()=>{let e=O&&u.selectedPoints.includes(O)?O:u.selectedPoints[0];e&&(u.editInput={point:e,value:Yt(e.value,T)},te(),u.$applyAsync(),requestAnimationFrame(function(){d[0].querySelector(`.studio-automation-tooltip-input`)?.focus()}))},u.exitEditMode=()=>{u.editInput=void 0,u.$applyAsync()},u.commitEditInput=()=>{let e=u.editInput;if(!e)return;let t=e.value===Yt(e.point.value,T)?e.point.value:k(e.value);!Number.isNaN(t)&&u.selectedPoints.some(e=>e.value!==t)&&(i.pushUndo(u.revision),u.selectedPoints.forEach(e=>{e.value=t}),be(),te(),u.selectionMark={value:t,posX:e.posX,posY:e.posY}),u.exitEditMode()};function k(e){let t=parseFloat(e);if(Number.isNaN(t))return NaN;let n=Vt(t,T.step??0),r=T===lt?nn(n):Mt(n,T);return wt(r,T.min,T.max)}function A(e=o.trackAutomationParameters.get(u.track)){if(Iu(e))return e.automation;switch(e??`volume`){case`sendLevel`:return u.track.automation.sendLevel||u.track.auxSends[0].automation||[];case`fxMix`:return u.track.automation.fxMix||[];case`pan`:return u.track.automation.pan||[];case`volume`:return u.track.automation.volume||[]}}let j=d[0].getElementsByTagName(`polyline`)[0],M=d[0].querySelector(`.hover-dot`),N=!1,P=!1,F=!1;u.selectedPoints=[],u.selectedPointsCoordinates=[],u.$watch(`selectedPoints`,ee,!0);function ee(){u.selectedPointsCoordinates=t.convertToCoordinates(u.selectedPoints,d[0].clientHeight,T)}Q.add(`scroll:timelineLeft`,I),u.$on(`$destroy`,()=>{Q.remove(`scroll:timelineLeft`,I)});function te(){let e=u.editInput;if(!e)return;let[n]=t.convertToCoordinates([e.point],d[0].clientHeight,T);n&&(e.posX=n.posX,e.posY=n.posY)}function I(){ee(),u.selectionMark={value:0},te(),M.style.visibility=`hidden`}function L(){u.selectedPoints=[],I()}let{areaEl:R,isAreaSelecting:ne,areaCoordinates:z,onPointerDown:B,onPointerMove:V,onPointerUp:ie}=CA(d[0]);d.on(`pointerenter`,H),d.on(`pointerdown`,U);function H(){d.on(`pointermove`,q),d.on(`pointerleave`,ae)}function ae(){M.style.visibility=`hidden`,d.off(`pointermove`,q),d.off(`pointerleave`,ae),u.$digest()}u.getCursor=()=>ne.value?`crosshair`:`auto`;let oe,se,ce,le;function U(n){let r=n;if(r.button===2||vn&&r.ctrlKey&&r.button===0||r.target.closest(`.studio-automation-tooltip-editing`))return;if(t.currentTrackId.value=u.track.id,clearTimeout(v),S=d[0].getBoundingClientRect(),_=he(r),_){if(v){me(r),v=void 0;return}i(),q(null,_)}else{if(v){fe(r),v=void 0;return}J(r),i(),B(r,s.timelineLeft-12)}W(r),d[0].setPointerCapture(r.pointerId),e.on(`pointermove`,de),e.on(`pointerup`,ue),d.off(`pointermove`,q),F=!!_;function i(){v=setTimeout(function(){v=void 0},500)}}function W(e){g=ul(u.revision),y=[...A()],h=_?{..._}:void 0,oe=ul(A()),f={y:e.pageY,x:Math.max(e.clientX-S.left,x/2)},b=e.shiftKey,G()}function G({updateCollapseOrigin:e=!0}={}){p=ul(u.selectedPoints.map(e=>({value:T===lt?zt(e.value/lt.range,1):Ut(e.value,T),position:e.position}))),e&&(m=u.selectedPoints.map(e=>({position:e.position,value:e.value}))),_&&(se=_e(_,u.selectedPoints));let t=p.map(e=>e.position);le=Z.SONG_DURATION_MAX-Math.max(...t),ce=-Math.min(...t)}function ue(t){let n=t,r=_&&h&&(h.position!==_.position||h.value!==_.value);r&&(g&&=(i.pushUndo(g),null)),pe(n.shiftKey),P=!1,F=!1,ne.value&&(ie(),d[0].removeChild(R.value)),u.$apply(),e.off(`pointermove`,de),e.off(`pointerup`,ue),d.on(`pointermove`,q),r&&be()}function de(e){let n=e;if(!_){d.prepend(R.value),V(n),ge(n),u.$digest();return}let i=_;u.selectedPoints.includes(_)||(n.shiftKey?u.selectedPoints.push(_):u.selectedPoints=[_],G()),P=!0;let a=n.shiftKey;a!==b&&(f={y:n.pageY,x:Math.max(n.clientX-S.left,x/2)},G({updateCollapseOrigin:!1}),b=a);let o=a?.2:1,s=(Math.max(n.clientX-S.left,x/2)-f.x)*o,l=(f.y-n.pageY)*o,{position:h}=p[se],g=t.convertXtoTime(s);
259if(c.isSnapping){let e=h+g,t=r.snapToGrid(e,c.snapDuration,{padding:5/c.scalePx});g+=t-e}u.selectedPoints.forEach((e,t)=>{let n=_e(e,oe),{value:r,position:a}=p[t],o=wt(r+l/d[0].clientHeight,0,1),s=T===lt?Et(o*lt.range,lt.range):Ft(qt(o,T),T),c=Mt(s,T),u=a+wt(g,ce,le);oe[n]={position:u,value:c},e.position=u,e.value=c,t===se&&(i.position=u,i.value=c)}),K(u.selectedPoints,m,oe,y),u.$digest(),q(null,i),be({sanitize:!1})}function K(e,t,n,r){let i=e.map(e=>e.position),a=t.map(e=>e.position),o=e.map(e=>_e(e,n)).sort((e,t)=>e-t),s=o.reduce((e,t,n,r)=>(n===0||t!==r[n-1]+1?e.push([t]):e[e.length-1].push(t),e),[]),c=new Set;s.forEach(e=>{let t=e[0],s=n[t].position,l=[{initPos:a[i.indexOf(s)],currPos:s,currIndex:t}];if(e.length>1){let t=e[e.length-1],r=n[t].position,o=a[i.indexOf(r)];l.push({initPos:o,currPos:r,currIndex:t})}r.forEach((e,t)=>{o.includes(t)||l.reduce((n,r)=>n||d(e,t,r.initPos,r.currPos,r.currIndex),!1)&&c.add(t)})});let l=r.filter((e,t)=>!c.has(t)),u=A();u.splice(0,u.length,...l);function d(e,t,n,r,i){let a=At(e.position);return n=At(n),r=At(r),a>n&&a<r||a<n&&a>r||a===n&&t>i&&a<r||a===n&&t<i&&a>r}}function q(e,n){let i=e;n||=i?he(i):void 0;var a=u.selectionMark||{};if(u.selectionMark=n?{...t.convertToCoordinates([n],d[0].clientHeight,T)[0],value:n.value}:{value:0},(u.selectionMark.posX!==a.posX||u.selectionMark.posY!==a.posY)&&u.$digest(),!i){M.style.visibility=`hidden`;return}let o=i.clientX+s.timelineLeft-281-12,l=t.convertXtoTime(o),f=c.isSnapping?r.snapToGrid(l,c.snapDuration,{padding:5/c.scalePx})*c.scalePx:o,p=t.getPolylineYFromX(j,f);if(n){M.style.visibility=`hidden`,N=!1;return}if(i.offsetY<p+x*2&&i.offsetY>p-x*2&&!(ne.value||P)){M.setAttribute(`cx`,`${f}`),M.setAttribute(`cy`,`${p}`),M.style.visibility=`visible`,N=!0;return}M.style.visibility=`hidden`,N=!1}function fe(e){_=ve({posX:e.offsetX,posY:e.offsetY-x/2},!0),e.shiftKey&&(u.selectedPoints.push(_),u.$digest())}function J(e){if(N){_=ve({posX:e.offsetX,posY:Math.min(e.offsetY,d[0].clientHeight-x)}),u.$digest();return}u.selectedPoints.length>0&&!e.shiftKey&&(u.selectedPoints=[],u.$digest())}function pe(e){if(!_||ne.value||P)return;if(!e){u.selectedPoints=[_],u.$digest();return}let t=u.selectedPoints.indexOf(_);t>=0?u.selectedPoints.splice(t,1):u.selectedPoints.push(_),u.$digest()}function me(e){e.shiftKey||ye([he(e)])}function he(e){let n=A();var r=jS(t.convertToCoordinates(n,d[0].clientHeight,T),function(t){return(e.offsetX-t.posX)**2+(e.offsetY-t.posY)**2<x*x});return A()[r]}function ge(e){let{left:n,top:r,right:i,bottom:a}=z.value,o=A();e.shiftKey||(u.selectedPoints=[]),t.convertToCoordinates(o,d[0].clientHeight,T).forEach((e,t)=>{e.posX>=n&&e.posX<=i&&e.posY>=r&&e.posY<=a&&u.selectedPoints.push(o[t])})}function _e(e,t){let n=t||A(),r=-1;for(let[t,i]of n.entries())if(i.value===e.value&&i.position===e.position){r=t;break}return r}function ve(e,n=!1){i.pushUndo(u.revision);let a=t.convertXtoTime(e.posX),o=c.isSnapping?r.snapToGrid(a,c.snapDuration,{padding:10/c.scalePx}):a,s=A(),l;if(n){let t=wt((d[0].clientHeight-e.posY)/d[0].clientHeight,0,1);l=T===lt?Et(t*lt.range,lt.range):Ft(qt(t,T),T),l=Mt(l,T)}else l=t.getAutomatedValue(T,s.length?s:[{value:u.getAutomationData().value,position:o}],o);let f={position:o,value:l},p=SA(s,f,`position`);return s.splice(p,0,f),s.sort((e,t)=>e.position-t.position),be(),M.style.visibility=`hidden`,s[p]}function ye(e){if(!e||e.length===0||F)return;let t=A();i.pushUndo(u.revision),ja(t,e=>u.selectedPoints.includes(e)),u.selectedPoints=[],u.selectionMark={value:0},u.$applyAsync(),M.style.visibility=`hidden`,N=!1,be()}async function be({sanitize:e=!0}={}){if(T.name===`pan`){let t=u.track.automation.pan;e&&xe(t),a.current.setTrackPanAutomation(u.track,t)}else if(T.name===`volume`){let t=u.track.automation.volume;e&&xe(t),a.current.setTrackVolumeAutomation(u.track,t)}else if(T.name===`fxMix`){u.track.isFrozen&&await l.unfreezeTrack(u.track);let t=u.track.automation.fxMix;e&&xe(t),a.current.setTrackFxMixAutomation(u.track,t)}else{u.track.isFrozen&&await l.unfreezeTrack(u.track);let t=o.trackAutomationParameters.get(u.track);if(Iu(t)){let n=t.automation;e&&xe(n),await a.current.setTrackEffectAutomation(u.track,t.index,t.param,n)}}Q.start(`syncVolume`)}
259function xe(e){e.forEach(e=>{e.position=At(e.position)}),e.sort((e,t)=>e.position-t.position);let t=new Set;for(let n=e.length-1;n>=0;n--){let{position:r,value:i}=e[n],a=`${r}-${i}`;t.has(a)?e.splice(n,1):t.add(a)}for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t],i=At(n.position+ad(1,o.current.metronome.bpm));r.position<i&&(r.position=i)}}}}}]),angular.module(`bandlab.editor`).directive(`mixEditorAutoMix`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div class="mix-editor-auto-mix"></div>`,link:function(t,n){$(import(`./CSDk7fsk.js`),n[0],t,{$injector:e,scope:t})}}}]);function wA(e,t){let n=O(d());re(n,()=>{u(),t()},{deep:!0});function r(e,t){e??=`new`;let r=i(e),a=t.map(e=>e.id),o=Array.from(r).filter(e=>a.includes(e));o.length!==r.size&&n.value.set(e,new Set(o))}function i(e){return e??=`new`,n.value.has(e)||n.value.set(e,new Set),n.value.get(e)}function a(e,t){e??=`new`,i(e).add(t)}function o(e,t){return e??=`new`,i(e).has(t)}function s(e,t){if(e??=`new`,o(e,t)){l(e,t);return}a(e,t)}function c(e,t){e??=`new`,n.value.set(t,n.value.get(e)||new Set),e===`new`&&n.value.delete(`new`),u()}return{cleanEntries:r,isTrackPropertySet:o,getEntriesWithProperty:i,unsetTrackProperty:l,setTrackProperty:a,toggleTrackProperty:s,onSaveRevision:c};function l(e,t){e??=`new`,i(e).delete(t)}function u(){let t=Array.from(n.value.entries()).slice(0,100).filter(e=>e[1].size>0).map(([e,t])=>[e,Array.from(t)]);Y.setItem(e,JSON.stringify(t))}function d(){let t=Y.getItem(e);if(!t)return new Map;let n=JSON.parse(t).map(([e,t])=>[e,new Set(t)]);return new Map(n)}}function TA(e){return{cleanTrackGroupsData:t,getGroupData:n,listAvailableGroups:a,addTrackToGroupAtIndex:c,createGroupFromTrack:r,createGroupFromTracks:i,mergeGroups:l,moveTrackInGroup:u,ungroup:d,updateGroupColor:s,updateGroupName:o};function t(e){e.trackGroups=e.trackGroups.filter(t=>e.tracks.find(e=>t.id===e.trackGroupId)),e.tracks=e.tracks.map(t=>{let n=e.trackGroups.find(e=>e.id===t.trackGroupId);return t.trackGroupId&&!n&&(t.trackGroupId=void 0),t})}function n(e,t){let n=e.trackGroups.find(e=>e.id===t);return n?{...n,trackIds:e.tracks.filter(e=>e.trackGroupId===n.id).map(e=>e.id)}:null}function r(t,n,r=`Group`,i=`Blue`){e();let a={id:ze(),name:r,colorName:i};return t.push(a),n.trackGroupId=a.id,a}function i(e,t,n=`Group`,r=`Blue`){let i={id:ze(),name:n,colorName:r};return e.push(i),t.forEach(e=>{e.trackGroupId=i.id}),i}function a(e,t){return t?e.trackGroups.filter(r=>{let i=n(e,r.id);return i&&r.id!==t&&i.trackIds.length>0}):e.trackGroups}function o(t,n,r){let i=t.find(e=>e.id===n);i&&(e(),i.name=r)}function s(e,t,n){let r=e.find(e=>e.id===t);r&&(r.colorName=n)}function c(t,r,i,a,o=!1){let s=n(t,r);if(i.trackGroupId===r||!s)return;let{trackIds:c}=s;a=a<0?c.length:Math.min(c.length,a);let{tracks:l}=t,u=l.findIndex(e=>e.id===i.id),d=a===c.length?l.findIndex(e=>e.id===c[c.length-1])+1:l.findIndex(e=>e.id===c[a]);if(d-=+(u<d),o&&e(),u!==d){let[e]=l.splice(u,1);l.splice(d,0,e)}i.trackGroupId=r}function l(t,r,i,a){let o=n(t,r),s=n(t,i);if(r===i||!o||!s)return;a=a<0?o.trackIds.length:Math.min(o.trackIds.length,a),e();let{tracks:c}=t,l=c.findIndex(e=>e.id===s.trackIds[0]),u=c.splice(l,s.trackIds.length),d=a===o.trackIds.length?c.findIndex(e=>e.id===o.trackIds[o.trackIds.length-1])+1:c.findIndex(e=>e.id===o.trackIds[a]);c.splice(d,0,...u),u.forEach(e=>{e.trackGroupId=o.id})}function u(t,r,i,a,o=!1){let s=n(t,r);if(!s||(i=wt(i,0,s.trackIds.length-1),a=wt(a,0,s.trackIds.length),i===a))return;o&&e();let{tracks:c}=t,l=c.findIndex(e=>e.id===s.trackIds[i]),[u]=c.splice(l,1),d=a===s.trackIds.length?c.findIndex(e=>e.id===s.trackIds[s.trackIds.length-1])+1:c.findIndex(e=>e.id===s.trackIds[a]);c.splice(d,0,u)}function d(t=[],n){let r=t.findIndex(e=>e.id===n);r<0||(e(),t.splice(r,1))}}function EA(e){let{getEntriesWithProperty:t,cleanEntries:n,isTrackPropertySet:r,setTrackProperty:i,unsetTrackProperty:a,toggleTrackProperty:o,onSaveRevision:s}=wA(`RevisionCollapsedTracksCache`,()=>{Q.start(`updateArrangementView`,!1,{cleanCollapseData:!1,cleanTrackGroups:!1},!1,!1)}),{getEntriesWithProperty:c,cleanEntries:l,isTrackPropertySet:u,setTrackProperty:d,unsetTrackProperty:f,toggleTrackProperty:p,onSaveRevision:m}=wA(`RevisionCollapsedGroupsCache`,()=>{Q.start(`updateArrangementView`,!1,{cleanCollapseData:!1,cleanTrackGroups:!1},!1,!1)});function h(e,t){s(e,t),m(e,t)}let g=TA(e);function _(e,t,r){l(e,r),n(e,t)}let{TRACK_HEIGHT:v,TRACK_COLLAPSED_HEIGHT:y,TAKE_LANE_HEIGHT:b,TRACK_GROUP_HEADER_HEIGHT:x}=DA();function S(e,t){return t.reduce((t,n)=>(t+=E(e,n),t),0)}
259function C(e,t,n){let r=0;for(let i of t){if(i.kind===`track`&&i.item.id===n)break;switch(i.kind){case`trackGroup`:r+=x;break;case`track`:r+=O(e,i.item.id,i.takeLaneSequence)}}return r}return{onSaveRevision:h,cleanCollapseData:_,collapseTrack:i,isTrackCollapsed:r,toggleCollapseTrack:o,uncollapseTrack:a,collapseGroup:d,isGroupCollapsed:u,toggleCollapseGroup:p,uncollapseGroup:f,...g,toggleCollapseAllTracksInGroup:T,getGridHeight:S,getTracksSequence:w,getTrackYPosition:C};function w(e){let{id:t,tracks:n}=e,i=n.reduce((i,a)=>{let o=g.getGroupData(e,a.trackGroupId);if(o){if(o.trackIds[0]!==a.id)return i;let e=c(t).has(o.id),s=o.trackIds.map(e=>n.find(t=>t.id===e)),l=s.reduce((e,n)=>{let i=[];return n._showTakeLanes&&!r(t,n.id)&&(i=OA(n).map(e=>({kind:`takeLane`,item:{id:e.id,index:e.index,track:n}}))),e.push({kind:`track`,item:n,takeLaneSequence:i}),e},[]);i.push({kind:`trackGroup`,item:{id:o.id,name:o.name,colorName:o.colorName,tracks:s,isCollapsed:e},trackSequence:l})}else{let e=[];a._showTakeLanes&&!r(t,a.id)&&(e=OA(a).map(e=>({kind:`takeLane`,item:{id:e.id,index:e.index,track:a}}))),i.push({kind:`track`,item:a,takeLaneSequence:e})}return i},[]),a=i.reduce((e,t)=>(t.kind===`trackGroup`&&(e.push(t),t.item.isCollapsed||e.push(...t.trackSequence)),t.kind===`track`&&e.push(t),e),[]);return{trackIdsSorted:i.flatMap(e=>e.kind===`trackGroup`?e.item.tracks.map(e=>e.id):e.kind===`track`?[e.item.id]:[]),tracksSequence:a,trackHeadersSequence:i}}function T(e,t){let n=!r(e.id,t.id),o=g.getGroupData(e,t.trackGroupId);o&&(n?o.trackIds.forEach(t=>i(e.id,t)):o.trackIds.forEach(t=>a(e.id,t)))}function E(e,t){let{kind:n,item:r}=t;switch(!0){case n===`trackGroup`:return D(e,r.isCollapsed,t.trackSequence);case n===`track`:return O(e,r.id,t.takeLaneSequence);default:throw Error(`Unknown item kind: ${n}`)}}function D(e,t,n){let r=x;return t||(r+=n.reduce((t,n)=>(t+=E(e,n),t),0)),r}function O(e,n,r){let i=r.length*b;return t(e).has(n)?y:v+i}}function DA(){let e=window.getComputedStyle(document.body);return{TRACK_HEIGHT:parseInt(e.getPropertyValue(`--mix-editor-track-height`)),TRACK_COLLAPSED_HEIGHT:parseInt(e.getPropertyValue(`--mix-editor-track-collapsed-height`)),TAKE_LANE_HEIGHT:parseInt(e.getPropertyValue(`--mix-editor-take-lane-height`)),TRACK_GROUP_HEADER_HEIGHT:parseInt(e.getPropertyValue(`--mix-editor-track-group-header-height`))}}function OA(e){let t=[];if(e.regions.every(e=>!e.takeList||e.takeList.length<=1))return[];for(let n of e.regions)n.takeList&&n.takeList?.forEach((n,r)=>{if(!t[r]){let n=`${e.id}-${r}`;t[r]={id:n,index:r,track:e}}});return t}function kA(e,t,{EditorHelper:n}){let r=[];for(let i of e.regions)if(n.isAudioRegion(i)){if(!i.takeList?.length){if(t!==0)continue;r.push({region:i,sampleId:i.sampleId,sampleOffset:i.sampleOffset,pitchTimeCorrection:i.pitchTimeCorrection||``});continue}i.takeList?.forEach((e,n)=>{n===t&&r.push({...e,region:i})})}return r}function AA(e,t){let n=e.get(`AppNotifications`),r=e.get(`EditorRevision`),i=e.get(`EditorTrack`),a=e.get(`Me`),{availableFeaturesSet:o}=Kn(a),{TRACK_HEIGHT:s,TRACK_COLLAPSED_HEIGHT:c,TRACK_GROUP_HEADER_HEIGHT:l}=DA(),u=h({draggingItem:null,targetItem:null,dropPosition:null,errorMsg:null});function d(){u.targetItem={kind:`placeholder`},u.dropPosition=`top`,document.body.classList.remove(`is-disallowed`)}function f(e,t){e.dataTransfer.effectAllowed=`move`,u.draggingItem=t,qs({type:`track`,value:{type:t.kind}}),window.addEventListener(`dragover`,T)}function p(e,t,n){if(!u.draggingItem)return;if(e.dataTransfer.dropEffect=`move`,n.kind===`placeholder`||!u.draggingItem){document.body.classList.remove(`is-disallowed`);return}let r=e.offsetY<E(t,n.kind,n.item.id)/2?`top`:`bottom`;u.errorMsg=D(t,u.draggingItem,n,r),u.targetItem=u.errorMsg?null:n,u.dropPosition=u.errorMsg?null:r,document.body.classList.toggle(`is-disallowed`,!!u.errorMsg)}function m(){if(!u.draggingItem){g();return}let e=u.draggingItem.kind===`track`?u.draggingItem.item:null,t=e?r.current.tracks.findIndex(t=>t.id===e.id):-1,a=e?.trackGroupId;if(!u.targetItem){u.errorMsg&&n.addNotification({id:`drag-edit-track`,title:u.errorMsg,action:`<a href="https://www.bandlab.com/membership" target="_blank" class="notification-action-text-inline">Learn more about Membership</a>`,autoclose:5e3}),g();return}if(u.targetItem.kind===`placeholder`){O(u.draggingItem),o(),g();return}if(u.draggingItem.kind===`trackGroup`&&N(u.draggingItem,u.targetItem),u.draggingItem.kind===`track`){let e=i.getGroupData(r.current,u.draggingItem.item.trackGroupId);e?k(u.draggingItem,u.targetItem,e):A(u.draggingItem,u.targetItem)}o(),g();function o(){e&&(r.current.tracks.findIndex(t=>t.id===e.id)!==t||e.trackGroupId!==a)&&Gi(`move_by_drag`)}}function g(){document.body.classList.remove(`is-disallowed`),window.removeEventListener(`dragover`,T),qs({})}function _(){u.draggingItem=null,u.targetItem=null,u.dropPosition=null,u.errorMsg=null}function v(e){return u.draggingItem?u.draggingItem.kind===`track`?u.draggingItem.item.id===e:u.draggingItem.kind===`trackGroup`&&u.draggingItem.item.tracks.find(t=>
259t.id===e):!1}function y(e){return e===u.draggingItem?.item.id}function b(e,t){return u.targetItem?e===`placeholder`?u.targetItem.kind===e:u.targetItem.kind===e&&u.targetItem.item.id===t:!1}function x(e,t){return b(e,t)&&u.dropPosition===`top`}function S(e,t){return b(e,t)&&u.dropPosition===`bottom`}function C(e,t){let n=i.isGroupCollapsed(e,t);return b(`trackGroup`,t)&&n&&u.dropPosition===`bottom`}function w(){return u.targetItem?.kind===`placeholder`&&u.dropPosition===`top`}return{isDraggingItem:y,isDropTarget:b,isTrackBeingDragged:v,shouldShowDropBottom:S,shouldShowDropTop:x,shouldShowDropToMerge:C,shouldShowDropTopOnPlaceholder:w,onDragOverOnPlaceholder:d,onDragEndOnItem:m,onDragOverOnItem:p,onDragStartOnItem:f,resetDragState:_};function T(e){e.preventDefault()}function E(e,t,n){return(t===`trackGroup`?l:i.isTrackCollapsed(e,n)?c:s)/2}function D(e,t,n,r){if(o.value.has(`group-tracks`))return null;let{kind:a,item:s}=t,{kind:c,item:l}=n;return[c===`trackGroup`&&r===`bottom`&&i.isGroupCollapsed(e,l.id),a===`trackGroup`&&c===`track`&&!!l.trackGroupId,a===`track`&&!!s.trackGroupId&&c===`track`&&!!l.trackGroupId&&s.trackGroupId!==l.trackGroupId,a===`track`&&!s.trackGroupId&&c===`track`&&!!l.trackGroupId].some(Boolean)?`Group editing is a membership feature`:null}function O(e){let{tracks:n}=r.current;if(e.kind===`trackGroup`){let r=e,i=n.findIndex(e=>e.id===r.item.tracks[0].id);t();let a=n.splice(i,r.item.tracks.length);n.push(...a)}if(e.kind===`track`){let r=e,i=n.findIndex(e=>e.id===r.item.id),a=r.item.trackGroupId;t(),r.item.trackGroupId=void 0;let[o]=n.splice(i,1);n.push(o),Ca(n,r.item.id,a,!1)}}function k(e,t,n){t.kind===`trackGroup`&&M(!0,e,t);let a=t,o=i.getGroupData(r.current,a.item.trackGroupId);if(t.kind===`track`&&o){let{id:t,trackIds:s}=o,c=s.indexOf(a.item.id)+(u.dropPosition===`top`?0:1);if(n.id!==o.id){i.addTrackToGroupAtIndex(r.current,t,e.item,c,!0);let{tracks:a}=r.current;Ca(a,e.item.id,n.id,!0);return}let l=s.indexOf(e.item.id);if(l===c)return;i.moveTrackInGroup(r.current,t,l,c,!0)}t.kind===`track`&&!o&&j(!0,e,a)}function A(e,t){t.kind===`trackGroup`&&M(!1,e,t);let n=t,a=i.getGroupData(r.current,n.item.trackGroupId);if(t.kind===`track`&&a){let t=a.trackIds.indexOf(n.item.id)+(u.dropPosition===`top`?0:1);i.addTrackToGroupAtIndex(r.current,a.id,e.item,t,!0),Gi(`add_track_to_group`)}t.kind===`track`&&!a&&j(!1,e,n)}function j(e,n,i){let a=n.item.trackGroupId,o=r.current.tracks.findIndex(e=>e.id===n.item.id),s=ee(o,r.current.tracks.findIndex(e=>e.id===i.item.id),u.dropPosition);(o!==s||e)&&(t(),n.item.trackGroupId=void 0,F(s,o),Ca(r.current.tracks,n.item.id,a,!1))}function M(e,n,a){let{id:o,tracks:s}=r.current,c=r.selectedTrack?.id,l=i.isGroupCollapsed(o,a.item.id);if(u.dropPosition===`bottom`&&l){i.addTrackToGroupAtIndex(r.current,a.item.id,n.item,-1,!0),n.item.id===c&&te([n.item]),Gi(`add_track_to_group`);return}let d=s.findIndex(e=>e.id===n.item.id),f=s.findIndex(e=>e.id===a.item.tracks[0].id),p=f-+(d<f);if(e){let e=n.item.trackGroupId;t(),n.item.trackGroupId=void 0;let{tracks:i}=r.current;Ca(i,n.item.id,e,!1)}else{if(p===d)return;t()}F(p,d)}function N(e,t){if(t.kind===`trackGroup`){let n=t,a=i.isGroupCollapsed(r.current.id,n.item.id);if(u.dropPosition===`bottom`&&a){let t=e.item.tracks.length;i.mergeGroups(r.current,n.item.id,e.item.id,-1),e.item.tracks.find(e=>e.id===r.selectedTrack?.id)&&te(e.item.tracks),Li(t);return}P(`top`,e,n.item.tracks[0].id)}let n=t,a=i.getGroupData(r.current,n.item.trackGroupId);if(t.kind===`track`&&a){let t=e.item.tracks.length,o=a.trackIds.indexOf(n.item.id)+(u.dropPosition===`top`?0:1);i.mergeGroups(r.current,a.id,e.item.id,o),Li(t)}t.kind===`track`&&!a&&P(u.dropPosition,e,n.item.id)}function P(e,n,i){let{tracks:a}=r.current,o=a.findIndex(e=>e.id===n.item.tracks[0].id),s=a.findIndex(e=>e.id===i),c=ee(o,s,e);if(c===o)return;t();let l=a.splice(o,n.item.tracks.length);c=ee(o,s,e),a.splice(c,0,...l)}function F(e,t){let[n]=r.current.tracks.splice(t,1);r.current.tracks.splice(e,0,n)}function ee(e,t,n){return t+(n===`top`?0:1)-+(e<t)}function te(e){let t=[...r.selectedRegions].filter(t=>!e.find(e=>e.id===t.trackId));r.selectedRegions=new Set(t),i.setSelected(null)}}angular.module(`bandlab.editor`).directive(`mixEditorBody`,[`$injector`,`EditorHelper`,`EditorHistory`,`EditorPlayback`,`EditorRevision`,`EditorScroll`,`EditorState`,`EditorTrack`,`MidiKeyboardHandler`,function(e,t,n,r,i,a,o,s,c){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-body-c80ce5de3.html`,link:function(t,r){r[0].querySelector(`.mix-editor-track-header-placeholder`).addEventListener(`dragover`,v);let{isDraggingItem:a,isDropTarget:s,isTrackBeingDragged:c,shouldShowDropBottom:l,shouldShowDropTop:u,shouldShowDropToMerge:d,shouldShowDropTopOnPlaceholder:f,onDragOverOnPlaceholder:p,onDragEndOnItem:m,onDragOverOnItem:h,onDragStartOnItem:g,resetDragState:_}=AA(e,function(){n.pushUndo(i.current),o.hasRevisionChanges=!0});t.isDraggingItem=a,t.isDropTarget=s,t.isTrackBeingDragged=c,t.shouldShowDropTop=u,t.shouldShowDropBottom=l,t.shouldShowDropToMerge=d,t.shouldShowDropTopOnPlaceholder=f,t.onDragEndOnItem=m,t.onDragOverOnItem=h,t.onDragStartOnItem=g,t.resetDragState=_,t.getTrackHeaderOrGroupWrapperClass=e=>{let n=``;if(e.kind===`trackGroup`){let r=i.current.trackGroups.find(t=>
259t.id===e.item.id)?.colorName??e.item.colorName,a=e.item.tracks.every(e=>e.isMuted);n=`track-header-group-wrapper-${t.colorNameToDSColor(r)} ${a?`is-muted`:``} ${e.item.isCollapsed?`collapsed`:``}`}return e.kind===`track`&&(n=`mix-editor-track-header-wrapper`),n};function v(){let e=t.trackHeadersSequence[t.trackHeadersSequence.length-1];e&&(e.kind===`trackGroup`||t.isTrackCollapsed(e.id))&&(p(),t.$applyAsync())}},controller:[`$scope`,function(e){e.toggleCollapseTrack=(t,n)=>{let r=s.isTrackCollapsed(e.revision.id,n.id)?`expand_track`:`collapse_track`;if(t.altKey&&n.trackGroupId){s.toggleCollapseAllTracksInGroup(e.revision,n),e.$applyAsync(),import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActions:t})=>{s.getGroupData(e.revision,n.trackGroupId).trackIds.forEach(()=>t(r))});return}if(t.altKey&&!n.trackGroupId){s.toggleCollapseAllTracksAndGroups(`track`,n.id),e.$applyAsync(),import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActions:e})=>{i.current.tracks.filter(e=>!e.trackGroupId).forEach(()=>e(r))});return}import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActions:e})=>e(r)),s.toggleCollapseTrack(e.revision.id,n.id),e.$applyAsync()},e.isGroupCollapsed=t=>s.isGroupCollapsed(e.revision.id,t),e.isTrackCollapsed=t=>s.isTrackCollapsed(e.revision.id,t),e.getTrackYPosition=t=>s.getTrackYPosition(e.revision.id,e.tracksSequence,t),e.trackHeadersSequence=[],e.tracksSequence=[],Q.add(`updateArrangementView`,n),e.$on(`$destroy`,()=>{Q.remove(`updateArrangementView`,n)}),e.$watch(`revision.id`,()=>{Q.start(`updateArrangementView`,!1,{cleanCollapseData:!0},!1,!0)}),e.$watch(()=>e.revision.tracks.map(e=>e.id),()=>{Q.start(`updateArrangementView`,!1,{cleanCollapseData:!0,cleanTrackGroups:!0,sortTrackIds:!0},!1,!0)},!0),e.$watch(()=>e.revision.tracks.flatMap(e=>Math.max(...e.regions.map(e=>e.takeList?.length??0))),()=>{Q.start(`updateArrangementView`,!1,{},!1,!0)},!0),e.$watch(()=>e.revision.trackGroups.map(t=>{let n=e.revision.tracks.filter(e=>e.trackGroupId===t.id).map(e=>e.id);return[t.id,...n].join(`-`)}).join(`-`),()=>{Q.start(`updateArrangementView`,!1,{cleanCollapseData:!0,cleanTrackGroups:!0,sortTrackIds:!0},!1,!0)});function n({cleanTrackGroups:t=!1,cleanCollapseData:n=!1,sortTrackIds:r=!1}={}){t&&s.cleanTrackGroupsData(e.revision),n&&s.cleanCollapseData(e.revision.id,e.revision.tracks,e.revision.trackGroups),l(r)}function l(n=!1){let r=s.getTracksSequence(e.revision);e.trackHeadersSequence=r.trackHeadersSequence,e.tracksSequence=r.tracksSequence,n&&(e.revision.tracks=r.trackIdsSorted.map(e=>i.current.tracks.find(t=>t.id===e)).filter(e=>!!e),e.revision.tracks=t.applyTracksOrder(e.revision.tracks));let a=s.getGridHeight(i.current.id,r.trackHeadersSequence);document.body.style.setProperty(`--mix-editor-arrangement-view-grid-height`,`${a}px`),Q.start(`anticipateScrollLayoutShift:tracksTop`),e.$applyAsync()}e.selectTrack=function(e,t){if(!o.isMovingRegions&&(!t||t.target.classList.contains(`mix-editor-track`)||t.target.classList.contains(`mix-editor-track-inner`)||t.target.classList.contains(`mix-editor-take-lane`)||t.target.classList.contains(`mix-editor-region`)||t.target.closest(`.mix-editor-track-header`))&&!(t&&[`track-header-collapse-button`,`mix-editor-track-header-record`].some(e=>t.target.classList.contains(e)))){if(!o.isRecording&&e.id!==i.selectedTrack?.id){if(s.setSelected(e),t&&t.shiftKey)return;i.selectedRegions.forEach(t=>{[t.trackId,t._trackId].includes(e.id)||i.selectedRegions.delete(t)})}c.releaseAll()}};let u=null;e.fireAutoscroll=function(t,n){let{top:r,height:i}=document.querySelector(`.mix-editor-block-headers`).getBoundingClientRect(),{clientY:o}=n;e.endAutoscroll(),u=setInterval(function(){let e=s(o);a.manualScroll(e)},30);function s(e){if(r>e)return{up:!0};if(r+i<=e)return{down:!0}}},e.endAutoscroll=()=>clearInterval(u),e.openCompingInfoModal=()=>{o.isInBackground=!0,r.pausePlay(),X(J(()=>import(`./y1ACc9Iq.js`)),{},{onClose:()=>{o.isInBackground=!1}})}}]}}]),angular.module(`bandlab.editor`).directive(`mixEditorCollaborators`,[`Chat`,function(e){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-collaborators-677d128aa.html`,controller:[`$scope`,function(t){t.$wat
259ch(`revision.song.id`,function(n){t.projectConversationId=null,n&&e.getOneConversation(n).then(function(e){n===t.revision.song.id&&(t.projectConversationId=e.id)})})}]}}]).directive(`mixEditorCollaboratorsZeroCase`,function(){return{restrict:`E`,replace:!0,template:`<div></div>`,link:function(e,t){$(import(`./VTresHAF.js`),t[0],e,{user:e.user,showRealtimeModal:e.showRealtimeModal})}}}),angular.module(`bandlab.editor`).directive(`mixEditorCycleSelection`,function(){return{restrict:`E`,replace:!0,scope:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-cycle-selection-2e8d1305e.html`,controller:[`$scope`,`EditorCycle`,`editorEvents`,`EditorHelper`,`EditorScrollState`,`EditorState`,function(e,t,n,r,i,a){var o,s,c={start:0,end:0},l;Q.add(`scale:timeline`,function(t){if(!t)return;c.start=n(c.start),c.end=n(c.end),e.$applyAsync();function n(e){return e*t.scalePx/t.oldScalePx}}),e.$on(n.cycleChanged,function(){c.start=t.get().startTime*a.scalePx,c.end=t.get().endTime*a.scalePx,e.$applyAsync()});function u(){return!a.isTimeRuler&&a.isSnapping}function d(){c.start=l,c.end=l,l=null}e.createCycleStart=function(e){e=e+i.timelineLeft-281-12;var t=a.snapDuration*a.scalePx;u()&&(e=r.snapToGrid(e,t,{padding:t/2})),l=e,s={start:e,end:e},o=we(d),p()},e.backupPosition=function(){s={start:c.start,end:c.end},l=null},e.getCycleStart=function(){return Math.min(c.end,c.start)},e.getCycleDuration=function(){return Math.abs(c.end-c.start)},e.setCycleStart=function(e){var t=Math.max(s.start-e,0),n=a.snapDuration*a.scalePx;t=Math.min(t,i.timelineEl.scrollWidth-12),a.isCycling=!0,u()&&(t=r.snapToGrid(t,n,{padding:n/2})),c.start=t,p()},e.setCycleEnd=function(e,t){if(l!==null){if(Math.abs(e)<=30)return;o()}var n=Math.min(s.end-e,i.timelineEl.scrollWidth-12),d=a.snapDuration*a.scalePx;n=Math.max(n,0),a.isCycling=!0,u()&&t!==!0&&(n=r.snapToGrid(n,d,{padding:d/2})),c.end=n,p()},e.moveCycle=function(t){var n=c.start,r=c.end;e.setCycleStart(t),e.setCycleEnd(t,!1),n-r!==c.start-c.end&&(t>0?c.end=c.start+(r-n):t<0&&(c.start=c.end-(r-n))),m()},e.createCycleEnd=function(e){h(),f(e)}
259,e.setCycle=function(e){if(h(),!e){t.toggle();return}f()};function f(){var e,n;c.start>c.end&&(e=c.start,c.start=c.end,c.end=e),e=c.start/a.scalePx,n=c.end/a.scalePx,t.set(e,n)}function p(){document.body.classList.add(`is-resizing`)}function m(){document.body.classList.add(`is-moving`)}function h(){document.body.classList.remove(`is-resizing`),document.body.classList.remove(`is-moving`)}}]}}),angular.module(`bandlab.editor`).directive(`mixEditorFooter`,[`$injector`,`editorEvents`,`EditorModel`,`EditorState`,`MidiEditorState`,function(e,t,n,r,i){return{restrict:`E`,replace:!0,template:`<footer class="mix-editor-footer"></footer>`,link:function(a,o){$(import(`./Bt2qPtjp.js`),o[0],a,{$injector:e,scope:a,editorEvents:t,EditorModel:n,EditorState:r,MidiEditorState:i})}}}]),angular.module(`bandlab.editor`).directive(`mixEditorGrid`,[`EditorGrid`,function(e){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-grid-28675dbff.html`,link:function(t){var n=document.getElementById(`mix-editor-grid-pattern`);t.$watchGroup([`state.snapSetting`,`state.isTimeRuler`],r),Q.add(`scale:timeline`,r);function r(){e.updateRulerGrid({pattern:n})}}}}]),angular.module(`bandlab.editor`).directive(`mixEditorHeader`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-header-a41c91a75.html`,controller:[`$scope`,`Editor`,function(e,t){e.updateProjectName=t.updateProjectName,e.getLastEdited=()=>e.revision.modifiedOn?Oi(e.revision.modifiedOn):e.revision.createdOn?Oi(e.revision.createdOn):`Never`}]}}),angular.module(`bandlab.editor`).directive(`mixEditorHeadersActionBar`,[`$injector`,`EditorState`,`EditorTrack`,function(e,t,n){return{restrict:`E`,replace:!0,template:`<div class="mix-editor-headers-actionbar"></div>
259`,link:function(r,i){$(import(`./CoDqSxKN.js`),i[0],r,{$injector:e,scope:r,EditorState:t,EditorTrack:n})}}}]),angular.module(`bandlab.editor`).directive(`mixEditorIncompatibleBanner`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div id="mix-editor-incompatible-banner"></div>`,link:function(t,n){$(import(`./CZ7S6kG8.js`).then(e=>e.t),n[0],t,{$injector:e,scope:t},{teleportLocation:`#mix-editor-incompatible-banner`})}}}]);function jA(e){return{displayZendeskWebWidget:n};function t(){return e.isAnonymous()?Promise.resolve():new Promise(e=>{window.zE(`messenger`,`loginUser`,function(t){Un.get(`https://accounts.bandlab.com/oauth/zendesk/messaging-token`).json().then(function(e){t(e.jwt)},e)},function(){e()})})}function n(e){return window.zESettings={webWidget:{contactForm:{suppress:!0}}},Re(`https://static.zdassets.com/ekr/snippet.js?key=4b42234b-3029-4412-b79e-42cc18704d33`,document.head,{id:`ze-snippet`}).then(function(){return t()}).then(function(){let{zE:t}=window;t(`messenger:set`,`conversationFields`,[{id:`55075253557785`,value:e}]),t(`messenger:set`,`conversationTags`,[e.toLowerCase().replace(/\s+/g,`_`)]),t(`messenger:on`,`close`,we(()=>t(`messenger`,`hide`))),t(`messenger`,`show`),t(`messenger`,`open`)})}}angular.module(`bandlab.editor`).directive(`mixEditorMenu`,[`$rootScope`,`$state`,`Editor`,`EditorDB`,`editorEvents`,`EditorHelper`,`EditorPlayer`,`EditorRevision`,`EditorScrollState`,`EditorState`,`EditorTimeline`,`Katnip`,`Me`,`MidiEditorState`,`Page`,`Song`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-menu-9efef2e47.html`,link:function(d){d.editorSettings=Z,d.snapSettings=Gt,d.libraryLink=``,d.recentProjects=[],d.demoProjects=n.getDemoProjects(),d.showZendeskHelpBot=!1,d.isLatencyTooltipEnabled=!1,d.isLatencyTooltipOpen=!1;let g=[],{displayZendeskWebWidget:_}=jA(f);ke(f,`studio_ai_assistant_enabled`).then(e=>{d.showZendeskHelpBot=e!==`true`}).catch(()=>{d.showZendeskHelpBot=!0}).finally(()=>{d.$applyAsync()}),d.disableLoadProject=function(){return l.isPlaying||l.isRecording||l.isSaving},d.$watch(()=>d.revision.song?.id,v),y();function v(){let e=d.revision.song?.id;d.recentProjects=g.filter(t=>t.id!==e)}function y(){return d.libraryLink=t.href(`library.projects.songs`,{category:`recent`}),h.fromUserWithCursor({id:f.id,limit:6}).$promise.then(e=>{g=e.data,v()}).catch(()=>{d.libraryLink=``,g=[],v()})}d.displayZendesk=function(){_(`Studio Bot`)},d.$on(`$destroy`,function(){window.zE&&zE(`messenger`,`hide`),document.removeEventListener(`fullscreenchange`,x)}),d.openLatencyTest=function(){w(),X(J(()=>import(`./BsFd29QM.js`)),{setIsInBackground:function(e){l.isInBackground=e}},{onDismiss:function(){import(`./DvQD5s06.js`).then(e=>e.t).then(({logLatencyTestActions:e})=>e(`cancel`))}})},d.openMetronomeSettings=function(){let t=document.getElementById(`studioToolbarMetronomeSettingsButton`);t&&!t.hasAttribute(`disabled`)&&(e.$broadcast(`$dropdownMenu:close`),setTimeout(()=>{t.focus(),t.click()}))},d.onHamburgerClick=function(){d.isLatencyTooltipOpen&&w()},d.openTuner=a.openTuner,d.showShortcuts=function(){e.$broadcast(i.keyDown.toggleShortcuts)},d.askSaveLoadNewProject=function(){d.showAskSaveModal(()=>{b(null)},`compact-loader`)},d.askSaveLoadProject=function(e){d.showAskSaveModal(()=>{b(e)},`full-loader`)};async function b(t=null){a.hidePanel(),d.closeSideTab();try{r.removeSnapshot(s.current.id),await n.loadRevision({newProject:t===null,id:t?(await h.get({id:t.id}).$promise).revision.id:null}),o.setPlaybackPosition(0),e.$applyAsync(()=>{e.$applyAsync(()=>{Q.start(`syncVolume`)})}),y(),t||d.displayAddTrack({pushUndo:!1}),m.setMetadata({title:d.revision.song.name}),m.update()}catch{}}d.startTutorial=function(){document.body.click(),t.go(`.`,{id:null,tutorial:!0},{reload:!0,inherit:!1})},document.addEventListener(`fullscreenchange`,x),d.toggleFullScreenMode=function(){var e=document.documentElement;d.isFullScreen?document.exitFullscreen():e.requestFullscreen()},d.toggleLock=function(){p.isLocked=!p.isLocked,p.isLocked&&(p.scale=l.scale,u.broadcastScale({state:p}),c.notesLeft=c.timelineLeft)},d.toggleLegacyKeyboardShortcuts=a.toggleLegacyKeyboardShortcuts,d.setCountIn=function(e){Z.COUNT_IN_DURATION=e,Y.countInDuration=Z.COUNT_IN_DURATION,o.current.setCountIn(Z.COUNT_IN_DURATION)};function x(){d.isFullScreen=document.fullscreenElement,d.$applyAsync()}S();function S(){if(Y.getItem(`studioLatencyTestTooltipSeenV1`)===`true`)return;d.$watch(`isLatencyTooltipOpen`,(e,t)=>{t&&!e&&d.isLatencyTooltipEnabled&&w()});let e=d.$watch(()=>a.isAudioTrack(s.selectedTrack),t=>{t&&(dC.value||(e(),C()))})}function C(){Y.getItem(`studioLatencyTestTooltipSeenV1`)!==`true`&&(d.isLatencyTooltipEnabled=!0,d.isLatencyTooltipOpen=!0,Y.setItem(`studioLatencyTestTooltipSeenV1`,`true`),d.$applyAsync())}function w(){d.isLatencyTooltipOpen=!1,d.isLatencyTooltipEnabled=!1,Y.setItem(`studioLatencyTestTooltipSeenV1`,`true`),d.$applyAsync()}}}}]),angular.module(`bandlab.editor`).directive(`metronomeSettings`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div class="mix-editor-metronome-settings row-gap-10"></div>`,link:function(t,n){$(import(`./BLnHNwC5.js`),n[0],t,{$injector:e},{setRevisionBpm:t.setRevisionBpm})},controller:[`$scope`,function(e){e.backupBPM()}]}}]),angular.module(`bandlab.editor`).directive(`mixEditorOutVolumeMeter`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./CgV_Xwh9.js`),n[0],t,{$injector:e,scope:t})}}}]);const MA=we(()=>{let e=window.getComputedStyle(document.body);return{REGION_BORDER_WIDTH:t(`--studio-region-selected-border-width`),FADE_HANDLER_HITBOX_SCALE:t(`--studio-region-fade-handler-hitbox-scale`)};function t(t){let n=e.getPropertyValue(t);if(n===``)throw Error(`CSS property not defined: ${t}`);return parseInt(n)}});function NA(e,t,{fadeHandlerSize:n}={fadeHandlerSize:10}){let{$injector:r,$scope:i,editorEvents:a,EditorGrid:o,EditorHistory:s,EditorRevision:c,EditorState:l,EditorPlayer:u,getScalePx:d,getSnapDuration:f}=t,p=cu(r),m=MA(),h=[];return{isRegionCorrupted:g,getRegionFadeHandlerOffset:_,resizingLeft:Ou(b,20),resizingRight:Ou(x,20),resizingRightLoopIcon:Ou(C,20),resizingRightLoopHandle:Ou(S,20),resizingFirstLoop:Ou(w,20),stretchLeft:Ou(T,20),stretchRight:Ou(E,20),startEditingSession:v,finishEditingSession:y};function g(){return e().hasSample===!1}function _(e,t){let r=null,i=t*e;return i<n+m.REGION_BORDER_WIDTH?(r=(.5*m.FADE_HANDLER_HITBOX_SCALE+.5)*n,r-=n+m.REGION_BORDER_WIDTH-i,-r):r}async function v(){c.selectedRegions.has(e())||(c.selectedRegions.clear(),c.selectedRegions.add(e())),await u.current.updateMix(!0);let t=Array.from(c.selectedRegions).map(e=>e.id);s.pushUndo(c.current),await u.current.mixHandler.setSelection(t),await u.current.setSnapDuration(f(),c.current.metronome.bpm,o.snapValues),await u.current.mixHandler.startEditingSession();function n(){u.current.setSnapDuration(f(),c.current.metronome.bpm,o.snapValues)}h.push(i.$on(a.keyDown.snapPressed,n)),h.push(i.$on(a.keyDown.snapReleased,n))}async function y(){await p.apply(e=>e.finishEditingSession()),l.isResizingLeft=!1,l.isResizingRight=!1,l.isResizingLoop=!1,l.isRegionAudioStretching=!1,await u.current.setSnapDuration(null,c.current.metronome.bpm,o.snapValues),i.$applyAsync(),h.forEach(e
259=>e()),h.length=0,i.$emit(a.finishEditingSession)}async function b(t){l.isResizingLeft=!0,await p.apply(n=>n.resizeSelection(-t/d(),e().id,!0,!1),{retrieveNewSamples:!1,addSnapshot:!1,broadcastMixUpdate:!1}),i.$applyAsync()}async function x(t){l.isResizingRight=!0,await p.apply(n=>n.resizeSelection(-t/d(),e().id,!1,!1),{retrieveNewSamples:!1,addSnapshot:!1,broadcastMixUpdate:!1}),i.$applyAsync()}async function S(t){l.isResizingLoop=!0,await p.apply(n=>n.resizeSelection(-t/d(),e().id,!1,!1),{retrieveNewSamples:!1,addSnapshot:!1,broadcastMixUpdate:!1}),i.$applyAsync()}async function C(t){l.isResizingLoop=!0,await p.apply(n=>n.resizeSelection(-t/d(),e().id,!1,!0),{retrieveNewSamples:!1,addSnapshot:!1,broadcastMixUpdate:!1}),i.$applyAsync()}async function w(t){l.isResizingRight=!0,await p.apply(n=>n.adjustLoopLength(-t/d(),e().id),{retrieveNewSamples:!1,addSnapshot:!1,broadcastMixUpdate:!1}),i.$applyAsync()}async function T(t){i.canStretchRegion()&&(l.isRegionAudioStretching=!0,await p.apply(n=>n.stretchSelection(-t/d(),e().id,!0,!1),{retrieveNewSamples:!1,addSnapshot:!1,broadcastMixUpdate:!1}),i.$applyAsync())}async function E(t){i.canStretchRegion()&&(l.isRegionAudioStretching=!0,await p.apply(n=>n.stretchSelection(-t/d(),e().id,!1,!1),{retrieveNewSamples:!1,addSnapshot:!1,broadcastMixUpdate:!1}),i.$applyAsync())}}angular.module(`bandlab.editor`).directive(`mixEditorPanel`,[`EditorHelper`,`EditorRevision`,`EditorScrollState`,`EditorState`,`EditorView`,`MidiEditor`,`MidiEditorState`,function(e,t,n,r,i,a,o){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-panel-dce33e03d.html`,link:function(s){s.$on(`MixEditorPanel:AdjustRegionWidth`,(e,t)=>s.adjustRegionWidth(t)),s.$watch(()=>!!r.currentActiveTab,()=>{if((r.isVisible||o.isVisible)&&s.getTrack().regions)for(let t of s.getTrack().regions){let r=n.notesLeft,a={left:t.startPosition*o.scalePx,width:e.getTotalDuration(t)*o.scalePx};if(i.isRegionVisible(a,r)){s.adjustRegionWidth(t);break}}}),s.adjustRegionWidth=function(n){let i=e.getTotalDuration(n),c=document.querySelector(`.mix-editor-panel-track`);if(!c)return;let l=r.currentActiveTab?c.getBoundingClientRect().width-400:c.getBoundingClientRect().width,u=i*o.scale>l?s.zoomOut:s.zoomIn,d=on.map(e=>({regionWidth:f(i,e),scale:e}));u({state:o,scale:(d.filter(({regionWidth:e})=>e<=l).pop()||d[0]).scale}),setTimeout(()=>a.scrollToRegion(n));function f(e,n){return e*n*4*t.current.metronome.bpm/120}},s.viewMode=lO.value,s.getNoteHeight=a.getNoteHeight,s.getViewMode=()=>s.viewMode,hO(re(lO,()=>{s.viewMode=lO.value,a.focusedScrollToNotesY(),s.$digest()})),s.$on(`$destroy`,()=>{gO()})}}}]).directive(`audioEditorHeader`,[`$injector`,`AudioStretch`,`EditorHelper`,`EditorHistory`,`EditorPlayer`,`EditorRevision`,`EditorTimeline`,function(e,t,n,r,i,a,o){return{replace:!0,restrict:`E`,controller:[`$scope`,`$element`,function(s,c){s.hasRegionsLoading=!1,s.getSelectedRegions=f;let l=a.selectedTrack;if(!sc(l))throw Error(`No selected track for audio editor header`);let u=h({pitchShiftRegion:v,stretchRegion:y,reverseRegion:b,resetChanges:C,track:{id:l.id,name:l.name,color:OS(l.colorName),type:l.type,isFrozen:l.isFrozen},isTrackEmpty:!l.regions.length,canRenderMix:s.canRenderMix(),isResettable:S(),pitchShift:p(),playbackRate:m(),isReverseDisabled:_(),isDisabledExcludingReverse:g()});s.$watch(d),d();function d(){let e=a.selectedTrack;if(!sc(e))throw Error(`No selected track for audio editor header`);u.track.id=e.id,u.track.name=e.name,u.track.color=OS(e.colorName),u.track.type=e.type,u.track.isFrozen=e.isFrozen,u.isTrackEmpty=!e.regions.length,u.canRenderMix=s.canRenderMix(),u.isResettable=S(),u.pitchShift=p(),u.playbackRate=m(),u.isReverseDisabled=_(),u.isDisabledExcludingReverse=g()}$(import(`./BxL8pVa2.js`),c[0],s,{$injector:e,scope:s},u);function f(){let e=Array.from(a.selectedRegions);return e.some(e=>!n.isAudioRegion(e))?[]:e}function p(){let e=f();return e[0]&&[...new Set(e.map(e=>e.pitchShift))].length===1?e[0].pitchShift:null}function m(e=!1){let t=f();if(t[0]&&[...new Set(t.map(e=>e.playbackRate))].length===1){let n=t[0].playbackRate;return e?n.toFixed(2):Math.abs(n).toFixed(2)}return null}function g(){return s.hasRegionsLoading||f().length!==1}function _(){return s.hasRegionsLoading||f().length===0}
259function v(e){r.pushUndo(a.current),f().forEach(n=>{let r=n.pitchShift+Math.floor(e);r!==n.pitchShift&&(t.convertRegion(n,n.playbackRate,r),s.$applyAsync())})}function y(e){r.pushUndo(a.current),f().forEach(n=>{let r=wt(Math.abs(n.playbackRate)+e,rn,10)*Math.sign(n.playbackRate);r!==n.playbackRate&&(t.convertRegion(n,r),o.moveRegions(a.selectedTrack),s.$applyAsync())})}function b(){import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`reverse`)),r.pushUndo(a.current),r.startToIgnorePushUndo(),i.current.reverseRegions(a.selectedRegions).finally(()=>{s.$applyAsync(),r.stopToIgnorePushUndo()})}function x(){let e=f();return e[0]&&[...new Set(e.map(e=>e.gain))].length===1?e[0].gain:null}function S(){return f().length>0&&(m(!0)!==`1.00`&&m()!==``||p()!==0&&p()!==null||x()!==1&&x()!==null)}function C(){s.hasRegionsLoading=!0,d();let t=f().map(e=>e.id);r.pushUndo(a.current),i.current.resetRegionsProperties(e,t).then(e=>{e||(r.undo(a.current),a.redoStack.pop())}).catch(e=>{r.undo(a.current),a.redoStack.pop()}).finally(()=>{s.hasRegionsLoading=!1,s.$applyAsync()})}}]}}]).directive(`audioEditor`,[`$injector`,`EditorAllowActions`,`EditorHelper`,`EditorHistory`,`EditorRevision`,`EditorScroll`,`EditorState`,`MidiEditorState`,function(e,t,n,r,i,a,o,s){let{checkCanPasteClipboardRegionsToTrack:c,pasteRegionsFromClipboardToTrack:l}=Yk(e);return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_audio-editor-234ee3bcb.html`,link:function(e){Q.add(`scale:notesTimeline`,u),e.$on(`$destroy`,function(){Q.remove(`scale:notesTimeline`,u)});function u(e){e&&a.focusedNotesRescale(e)}e.getTrack=function(){return i.selectedTrack},e.clipboard=Zs,e.pasteRegionsFromClipboardToTrack=async function(){if(!t.isAllowed(`paste`))return;import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`paste`));let e=i.selectedTrack.id;if(c(e)){i.selectedRegions.clear(),r.pushUndo(i.current);try{await l(e)}catch{r.undo(i.current),i.redoStack.pop()}}},e.$watch(function(){return o.isVisible?i.selectedTrack:null},function(e){if(e?.type===`drum-machine`){n.hidePanel();return}if(e?.soundbank||e?.samplerKit){s.track=e,n.displayMidiEditor();return}s.track=e})}}}]).directive(`audioEditorRegion`,[`$injector`,`$rootScope`,`EditorCycle`,`editorEvents`,`EditorGrid`,`EditorHelper`,`EditorHistory`,`EditorMidiSamples`,`EditorPlayer`,`EditorRevision`,`EditorScrollState`,`EditorState`,`EditorTimeline`,`EditorView`,`EditorWaveform`,`MidiEditorState`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){let g=null;return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_audio-editor-region-0cf561065.html`,link:function(e,t){let n=we(k),i,o,f=t[0].querySelector(`canvas`),g=f.getContext(`2d`);f.height=m.getWaveformHeightDpr(`audio`),f.width=zo(screen.width),e.isSelected=function(){return l.selectedRegions.has(e.region)},e.isResizingLeft=function(){return e.isSelected()&&d.isResizingLeft};let _=e.$watch(function(){return o=E(),o&&(`buffer`in o&&o.buffer&&a.isAudioBuffer(o.buffer)||o.error||`notes`in o&&o.notes)},T),v,y,b;function x(t,n){g.canvas.style.width&&!d.isZooming&&(g.canvas.style.width=``),t||=u.notesLeft;let r=p.isRegionVisible({left:e.region.startPosition*h.scalePx,width:a.getTotalDuration(e.region)*h.scalePx},t);if((!r||!r.canvasWidth||!o)&&(r={canvasLeft:0,canvasWidth:0}),d.isZooming&&tt(b)&&tt(v)&&tt(y)&&e.getTrack().type!==`drum-machine`){if(b<=h.scalePx&&(g.canvas.style.left=`${v*h.scalePx}px`,g.canvas.style.width=`${y*h.scalePx}px`),b>h.scalePx){let e=r.canvasLeft/h.scalePx*b,t=r.canvasWidth/h.scalePx*b;if(t*Math.round(window.devicePixelRatio)>32e3)return;S({canvasLeft:e,canvasWidth:t},b),g.canvas.style.left=`${r.canvasLeft}px`,g.canvas.style.width=`${r.canvasWidth}px`}i=r;return}r&&(r.canvasWidth||i&&i.canvasWidth)&&o&&((n||!i||r.canvasWidth!==i.canvasWidth||r.canvasLeft!==i.canvasLeft)&&(f.style.left=`${r.canvasLeft}px`,S(r,h.scalePx)),i=r)}function S(t,n){if(!o)throw Error(`Unexpected missing sample`);let r=m.getWaveformHeightDpr(`audio`),i=a.getRegionColor(e.getTrack(),e.region),s=m.getCacheKey(e.region,i,e.getTrack(),r,n);m.drawFromBuffers(g,t.canvasLeft,t.canvasLeft+t.canvasWidth,n*a.getFirstLoopDuration(e.region),n*a.getExtraLoop
259Duration(e.region),e.region.canEdit?n*e.region.sampleOffset:n*e.region.startPosition,!1,r,D,a.getRegionColor(e.getTrack(),e.region),e.isResizingLeft(),s,e.getTrack().type,!1),m.trimCache({arrangementScalePx:d.scalePx,audioEditorScalePx:n},l.current)}function C(){x()}function w(){return x(null,!0)}function T(){if(!o||!(`notes`in o&&o.notes)&&!(`buffer`in o&&o.buffer)&&!o.error)return!1;e.region.hasSample=!o.error,e.region.isPlayable=a.isRegionPlayable(e.region,e.getTrack())||!e.region.canEdit,`buffer`in o&&a.isAudioBuffer(o.buffer)&&n(),_()}function E(){let t=e.region.canEdit||s.get(e.region.sampleId)?e.region.sampleId:e.getTrack().sampleId;if(t)return s.get(t)||MS(e.revision.samples,{id:t})}function D(){let t=m.getWaveformHeightDpr(`audio`);if(!o||!(`buffer`in o&&o.buffer))throw Error(`Unexpected missing sample buffer`);return m.cacheWaveform(o.buffer,o.id,h.scalePx,t,a.getRegionColor(e.getTrack(),e.region),e.region.gain,e.region.playbackRate)}function O(){o=E(),Q.remove(`scroll:notesLeft`,C),Q.remove(`scale:notesTimeline`,w);let t=e.$watch(function(){return o=E(),o&&(`buffer`in o&&o.buffer&&a.isAudioBuffer(o.buffer)||o.error||`notes`in o&&o.notes)},function(e){e?(w(),Q.add(`scroll:notesLeft`,C),Q.add(`scale:notesTimeline`,w),t()):Bo(g)})}e.onDblClick=function(){c.setPlaybackPosition(e.region.startPosition),e.adjustRegionWidth(e.region)};function k(){Q.add(`scroll:notesLeft`,C),Q.add(`scale:notesTimeline`,w),Q.add(`scale:applyZoomNotesTimeline`,w),Q.add(`onDprChange`,t),e.$on(r.startZoomMIDI,()=>{Q.remove(`scroll:notesLeft`,C),b=h.scalePx,i&&(v=i.canvasLeft/h.scalePx,y=i.canvasWidth/h.scalePx)}),e.$on(r.stopZoomMIDI,()=>{Q.add(`scroll:notesLeft`,C),b=null,v=null,y=null}),x();function t(){f.height=m.getWaveformHeightDpr(`audio`),w()}e.$watch(`region`,function(e,t){switch(!0){case e.isProcessing!==t.isProcessing:case e.sampleId!==t.sampleId:O();break;case e.bpm!==t.bpm:case e.endPosition!==t.endPosition:case e.sampleOffset!==t.sampleOffset:case e.loopLength!==t.loopLength:case e.gain!==t.gain:case e.playbackRate!==t.playbackRate:case d.isRegionAudioStretchEnabled&&e.startPosition!==t.startPosition:w()}},!0),e.$watch(()=>e.isResizingLeft(),w),e.$watch(()=>a.getRegionColor(e.getTrack(),e.region),w),e.$on(`$destroy`,function(){Q.remove(`scroll:notesLeft`,C),Q.remove(`scale:notesTimeline`,w),Q.remove(`scale:applyZoomNotesTimeline`,w),Q.remove(`onDprChange`,t)})}},controller:[`$scope`,function(s){let u=angular.noop,p=NA(()=>s.region,{$injector:e,$scope:s,EditorGrid:i,EditorHistory:o,EditorPlayer:c,EditorRevision:l,EditorState:d,editorEvents:r,getScalePx:()=>h.scalePx,getSnapDuration:()=>d.isSnapping?h.snapDuration:null},{fadeHandlerSize:12});Object.assign(s,p),s.getFadeHandlerOffsetL=function(){return s.getRegionFadeHandlerOffset(h.scalePx,s.region.fadeIn)},s.getFadeHandlerOffsetR=function(){return s.getRegionFadeHandlerOffset(h.scalePx,s.region.fadeOut)},s.isOnlySelectedRegion=function(){return l.selectedRegions.size===1&&l.selectedRegions.has(s.region)},s.getFirstLoopWidth=function(){return a.getFirstLoopWidth(s.region,h.scalePx)},s.getExtraLoopDuration=function(){return a.getExtraLoopDuration(s.region)},s.getTotalDuration=function(){return a.getTotalDuration(s.region)},s.getRightHandleType=function(){return s.canStretchRegion()?`stretch`:s.getExtraLoopDuration()>0||s.getTrack().type===`drum-machine`?`loop`:`trim`},s.canStretchRegion=function(){return d.isRegionAudioStretchEnabled&&(s.getTrack().type===`guitar-electric`||s.getTrack().type===`guitar-bass`||s.getTrack().type===`voice`)},s.backupFadeIn=function(){import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`fades`)),g=s.region.fadeIn||0,s.isFadingIn=!0,u=we(function(){o.pushUndo(l.current)})},s.moveFadeIn=function(e){if(g===null)return;u();let t=g-e/h.scalePx,n=s.region.startPosition+t,r=a.snapToGrid(n,h.snapDuration,{padding:5/h.scalePx},h)-n;s.region.fadeIn=wt(d.isSnapping?t+r:t,0,s.getTotalDuration()-(s.region.fadeOut||0)),s.$applyAsync()},s.updateFadeIn=function(){s.isFadingIn=!1,f.fixRegionFades({regions:[s.region]}),c.updateSourcesInTracks()},s.backupFadeOut=function(){import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`fades`)),g=s.region.fadeOut||0,s.isFadingOut=!0,u=we(function(){o.pushUndo(l.current)})},s.moveFadeOut=function(e){if(g===null)return;u();
259let t=g+e/h.scalePx,n=s.region.endPosition-t,r=a.snapToGrid(n,h.snapDuration,{padding:5/h.scalePx},h)-n;s.region.fadeOut=wt(d.isSnapping?t-r:t,0,s.getTotalDuration()-(s.region.fadeIn||0)),s.$applyAsync()},s.updateFadeOut=function(){s.isFadingOut=!1,f.fixRegionFades({regions:[s.region]}),c.updateSourcesInTracks()},s.setCycleToSelection=function(){let e=s.region.startPosition,t=s.region.endPosition;Array.from(l.selectedRegions).forEach(function(n){n.startPosition<e&&(e=n.startPosition),n.endPosition>t&&(t=n.endPosition)}),n.set(e,t)},s.downloadRegionAsFile=function(){f.downloadRegionAsFile(s.region,s.getTrack()),import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`export_region_wav`))},s.uploadRegionToMySounds=function(){s.displayTab(`Loops`),t.$broadcast(`MixEditor:toggleMySounds:Uploads`,s.region)},s.analyzeTempo=function(){f.openAnalyzeTempo(s.region)},s.selectTake=function(e){o.pushUndo(s.revision),s.region.sampleId=e}}]}}]).directive(`audioEditorKeyEvents`,[`$rootScope`,`editorEvents`,`MidiEditorState`,function(e,t,n){return{restrict:`A`,link:function(r){document.addEventListener(`keydown`,i),r.$on(`$destroy`,function(){document.removeEventListener(`keydown`,i)});function i(i){if(!n.hasFocus)return;let a=i.ctrlKey||i.metaKey;if(!a&&!i.shiftKey)switch(i.code){case`Backspace`:case`Delete`:e.$broadcast(t.keyDown.delete)}else if(a&&!i.shiftKey)switch(i.key){case`a`:e.$broadcast(t.keyDown.selectAllRegions),i.preventDefault();break;case`c`:e.$broadcast(t.keyDown.copy);break;case`x`:e.$broadcast(t.keyDown.cut);break;case`v`:e.$broadcast(t.keyDown.paste)}r.$applyAsync()}}}}]),angular.module(`bandlab.editor`).directive(`mixEditorPlayhead`,[`EditorCycle`,`editorEvents`,`EditorPlayer`,`EditorScroll`,`EditorScrollState`,`EditorState`,`EditorView`,`MidiEditor`,`MidiEditorState`,function(e,t,n,r,i,a,o,s,c){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-playhead-d59875996.html`,link:function(l,u){var d;let f=new IntersectionObserver(_);f.observe(u[0]),Q.add(`playing`,g),Q.add(`syncPlayhead`,g),l.$on(`$destroy`,function(){Q.remove(`playing`,g),Q.remove(`syncPlayhead`,g),f&&f.disconnect()}),l.$on(t.keyArrow,function(e,t){if(!(a.isPlaying||c.hasFocus&&s.hasSelectedNotes())){var n=Math.floor(a.crTime/a.snapDuration)*a.snapDuration,r=n+a.snapDuration;n=At(n)===At(a.crTime)?n-a.snapDuration:n,r=At(r)===At(a.crTime)?r+a.snapDuration:r,m(t.which===37?Math.max(n,0):Math.min(r,Z.SONG_DURATION_MAX)),h(t.which),l.$digest(t.which)}}),l.$on(Nc,()=>{Z.FOLLOW_PLAYHEAD&&p()}),l.$on(t.keyDown.paste,()=>p()),l.$on(Zc,()=>{u[0].style.pointerEvents=`none`,setTimeout(()=>{u[0].style.pointerEvents=null},200)});function p(){o.isVisible(u[0])||r.scrollToX({time:a.currentActiveTab?a.crTime+200/a.scalePx:a.crTime,scalePx:a.scalePx})}u.on(`contextmenu`,function(e){e.preventDefault(),e.stopImmediatePropagation()}),l.goToBeginning=function(){m(0)},l.$on(t.keyDown.goToBeginning,function(){a.isPlaying||l.goToBeginning()});function m(e){n.setPlaybackPosition(e),Q.start(`syncVolume`),g(),o.isVisible(u[0])||r.scrollToX({time:e,scalePx:a.scalePx})}function h(e){var t=a.crTime,n=i.timelineEl.scrollLeft+i.timelineEl.clientWidth-a.scalePx*t,o=i.timelineEl.clientWidth-n,s=i.timelineEl.clientWidth/6,l=(i.timelineEl.scrollLeft+i.timelineEl.clientWidth/2)/a.scalePx;if(e===39&&n-s<0&&n>0?r.scrollToX({time:l+a.snapDuration,scalePx:a.scalePx}):e===37&&o-s<0&&o<i.timelineEl.clientWidth&&o>0&&r.scrollToX({time:l-a.snapDuration,scalePx:a.scalePx}),c.isVisible){let e=i.notesTimelineEl.getBoundingClientRect().width/2;i.notesLeft=a.crTime*c.scalePx-e,Q.start(`scroll:notesLeft`,!1,i.notesLeft,!0,!1)}}function g(){var e=Math.round(a.crTime*a.scalePx-7);d!==e&&(u[0].style.transform=`translateX(${e}px)`),d=e}function _(t){t[0].intersectionRatio!==0||!a.isPlaying||!a.isFollowingPlayhead||a.crTime<0||!Z.FOLLOW_PLAYHEAD||(i.timelineLeft>a.scalePx*a.crTime?r.scrollToX({time:e.get().startTime,scalePx:a.scalePx}):r.scrollToX({direction:`right`}))}}}}]),angular.module(`bandlab.editor`).directive(`mixEditorRecordingRegion`,[`$rootScope`,`EditorCycle`,`editorEvents`,`EditorPlayback`,`EditorState`,function(e,t,n,r,i){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-recording-region-1b1eeb7cf.html`,link:function(a,o){Q.add(`playing`,c),o.css(`background-color`,a.track.color),o.css(`left`,`${Math.round(r.
259startPositions.record*i.scalePx)}px`),o.css(`width`,`0px`),a.cycleCount=+!a.isCompingAvailable;let s=e.$on(n.endOfCycle,function(){a.cycleCount=t.get().cycleCount+ +!a.isCompingAvailable,a.$applyAsync()});a.$on(`$destroy`,function(){s(),Q.remove(`playing`,c)});function c(){o[0].style.width=`${(i.crTime-r.startPositions.record)*i.scalePx}px`}}}}]),angular.module(`bandlab.editor`).directive(`mixEditorRecordTakePlaceholder`,[`$rootScope`,`EditorCycle`,`editorEvents`,`EditorPlayback`,`EditorState`,function(e,t,n,r,i){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-record-take-placeholder-b7ecca9d2.html`,link:function(a,o){let{endTime:s}=t.get();o.css(`display`,`none`);let c=e.$on(n.endOfCycle,function(){o.css(`left`,`${Math.round(r.startPositions.record*i.scalePx)}px`),o.css(`width`,`${(s-r.startPositions.record)*i.scalePx}px`),o.css(`display`,`block`)});a.$on(`$destroy`,function(){c()})}}}]);var PA=n({allInstrumentIds:()=>JA,compareInstrumentIds:()=>tj,drumSeparationInstrumentIds:()=>XA,getSplitterDropdownMenuLabel:()=>ij,getSplitterOptionDescription:()=>aj,getSplitterOptionLabel:()=>rj,instrumentIdsFromSplitType:()=>$A,requiresMembership:()=>ej,splitterInstrumentDetails:()=>QA,stemEquivalenceMap:()=>ZA,vocalSeparationInstrumentIds:()=>YA,withPreferredOrder:()=>nj});const FA=J(()=>import(`./BndWmEc2.js`).then(e=>e.n)),IA=J(()=>import(`./C2Gf00FW.js`)),LA=J(()=>import(`./BLATjnbF.js`).then(e=>e.n)),RA=J(()=>import(`./BiA-00m_.js`).then(e=>e.n)),zA=J(()=>import(`./DZV5w6je.js`).then(e=>e.n)),BA=J(()=>import(`./DOp2tTc6.js`).then(e=>e.n)),VA=J(()=>import(`./BCEcvIgJ.js`)),HA=J(()=>import(`./Ck_CCKfU.js`).then(e=>e.n)),UA=J(()=>import(`./C3Fmiumh.js`)),WA=J(()=>import(`./BhQR6iRL.js`)),GA=J(()=>import(`./C3MiRIyE.js`)),KA=J(()=>import(`./CjrF9OK2.js`)),qA=J(()=>import(`./hfSyMXL0.js`)),JA=[`vocals`,`lead_vocals`,`backing_vocals`,`drums`,`bass`,`guitar`,`piano`,`strings`,`kick`,`snare`,`cymbal_hihat`,`toms`,`other_drums`,`other`],YA=[`lead_vocals`,`backing_vocals`,`other`],XA=[`cymbal_hihat`,`kick`,`snare`,`toms`,`other_drums`,`other`],ZA={drums:[`snare`,`kick`,`cymbal_hihat`,`toms`,`other_drums`],vocals:[`lead_vocals`,`backing_vocals`]},QA={vocals:{name:`Vocals`,color:{name:`Red`,hex:`#F12C18`},studioColor:dt.find(e=>e.name===`Red`),icon:FA},lead_vocals:{name:`Lead`,color:{name:`Red`,hex:`#F12C18`},studioColor:dt.find(e=>e.name===`Red`),icon:FA},backing_vocals:{name:`Backing`,color:{name:`Red`,hex:`#F12C18`},studioColor:dt.find(e=>e.name===`Red`),icon:IA},drums:{name:`Drums`,color:{name:`Green`,hex:`#00C37D`},studioColor:dt.find(e=>e.name===`Green`),icon:RA},bass:{name:`Bass`,color:{name:`Violet`,hex:`#B400FF`},studioColor:dt.find(e=>e.name===`Violet`),icon:LA},guitar:{name:`Guitar`,color:{name:`Orange`,hex:`#FF690D`},studioColor:dt.find(e=>e.name===`Orange`),icon:zA},piano:{name:`Piano`,color:{name:`Cyan`,hex:`#00C6D1`},studioColor:dt.find(e=>e.name===`Cyan`),icon:BA},strings:{name:`Strings`,color:{name:`Pink`,hex:`#F443C2`},studioColor:dt.find(e=>e.name===`Yellow`),icon:VA},snare:{name:`Snare`,color:{name:`Green`,hex:`#00C37D`},studioColor:dt.find(e=>e.name===`Green`),icon:KA},toms:{name:`Toms`,color:{name:`Green`,hex:`#00C37D`},studioColor:dt.find(e=>e.name===`Green`),icon:qA},cymbal_hihat:{name:`Cymbals`,color:{name:`Green`,hex:`#00C37D`},studioColor:dt.find(e=>e.name===`Green`),icon:UA},kick:{name:`Kick`,color:{name:`Green`,hex:`#00C37D`},studioColor:dt.find(e=>e.name===`Green`),icon:WA},other_drums:{name:`Other Drums`,color:{name:`Green`,hex:`#00C37D`},studioColor:dt.find(e=>e.name===`Green`),icon:GA},other:{name:`Others`,color:{name:`Blue`,hex:`#2F93F6`},studioColor:dt.find(e=>e.name===`Blue`),icon:HA}};function $A(e){return e===`vocals_drums_bass_others`?[`vocals`,`drums`,`bass`,`other`]:e===`vocals_drums_bass_guitar_others`?[`vocals`,`drums`,`bass`,`guitar`,`other`]:[`vocals`,`drums`,`bass`,`other`]}function ej(e){return e.includes(`guitar`)||e.includes(`piano`)||e.includes(`strings`)||tj(e,XA)===`EXACT`||tj(e,YA)===`EXACT`}function tj(e,t){let n=e.every(e=>t.includes(e));return n&&e.length!==t.length?`SUPERSET`:n&&e.length===t.length?`EXACT`:e.every(e=>t.includes(e)?!0:ZA[e]?.every(e=>t.includes(e)))?`SATISIFY_WITH_MERGE`:`SUBSET`}function nj(e){return e.sort((e,t)=>
259JA.indexOf(e)-JA.indexOf(t))}function rj(e){if(tj(e,[`vocals`,`drums`,`bass`,`other`])===`EXACT`)return(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} track`,other:`${e} tracks`}[t.select(e)]})(4);if(tj(e,[`vocals`,`other`])===`EXACT`)return`2 tracks`;if(tj(e,YA)===`EXACT`)return`3 tracks`;if(tj(e,XA)===`EXACT`)return`6 tracks â Individual Drums`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`other`])===`EXACT`)return`5 Tracks â with Guitar`;if(tj(e,[`vocals`,`drums`,`bass`,`piano`,`other`])===`EXACT`)return`5 tracks â with Piano`;if(tj(e,[`vocals`,`drums`,`bass`,`strings`,`other`])===`EXACT`)return`5 tracks â with Strings`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`piano`,`other`])===`EXACT`)return`6 tracks`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`piano`,`strings`,`other`])===`EXACT`)return`7 tracks`;throw Error(`Unexpected instrumentIds`)}function ij(e){if(tj(e,[`vocals`,`other`])===`EXACT`)return`${(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} track`,other:`${e} tracks`}[t.select(e)]})(2)} â ${aj(e)}`;if(tj(e,YA)===`EXACT`)return`${(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} track`,other:`${e} tracks`}[t.select(e)]})(3)} â ${aj(e)}`;if(tj(e,[`vocals`,`drums`,`bass`,`other`])===`EXACT`)return`${(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} track`,other:`${e} tracks`}[t.select(e)]})(4)} â ${aj(e)}`;if(tj(e,XA)===`EXACT`)return`${(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} track`,other:`${e} tracks`}[t.select(e)]})(6)} â ${aj(e)}`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`other`])===`EXACT`||tj(e,[`vocals`,`drums`,`bass`,`piano`,`other`])===`EXACT`||tj(e,[`vocals`,`drums`,`bass`,`strings`,`other`])===`EXACT`)return`${(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} track`,other:`${e} tracks`}[t.select(e)]})(5)} â ${aj(e)}`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`piano`,`other`])===`EXACT`)return`${(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} track`,other:`${e} tracks`}[t.select(e)]})(6)} â ${aj(e)}`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`piano`,`strings`,`other`])===`EXACT`)return`${(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} track`,other:`${e} tracks`}[t.select(e)]})(7)} â ${aj(e)}`;throw Error(`Unexpected instrumentIds`)}function aj(e){if(tj(e,[`vocals`,`other`])===`EXACT`)return`Vocals, Others`;if(tj(e,YA)===`EXACT`)return`Lead Vocals, Backing Vocals, Others`;if(tj(e,[`vocals`,`drums`,`bass`,`other`])===`EXACT`)return`Vocals, Drums, Bass, Others`;if(tj(e,XA)===`EXACT`)return`Kick, Snare, Cymbals, Toms, Other Drums, Others`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`other`])===`EXACT`)return`Vocals, Drums, Bass, Guitar, Others`;if(tj(e,[`vocals`,`drums`,`bass`,`piano`,`other`])===`EXACT`)return`Vocals, Drums, Bass, Piano, Others`;if(tj(e,[`vocals`,`drums`,`bass`,`strings`,`other`])===`EXACT`)return`Vocals, Drums, Bass, Strings, Others`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`piano`,`other`])===`EXACT`)return`Vocals, Drums, Bass, Guitar, Piano, Others`;if(tj(e,[`vocals`,`drums`,`bass`,`guitar`,`piano`,`strings`,`other`])===`EXACT`)return`Vocals, Drums, Bass, Guitar, Piano, Strings, Others`;throw Error(`Unexpected instrumentIds`)}function oj(e){if(e=e.filter(e=>iM.some(t=>tj(e.playbackInstrumentIds,t)===`EXACT`)),e.every(e=>e.playbackInstrumentIds))return e;let t=e.map(e=>{if(e.playbackInstrumentIds)return e;if(!e.playbackSplitType&&!e.splitType)return null;let t=$A(e.playbackSplitType??e.splitType);return{...e,playbackInstrumentIds:t}}).filter(e=>!!e);return xj(t),t}function sj(e){return Object.keys(e.sampleIdMap)}const cj=O(!1),lj=O([]),uj=O(null);function dj(){let e=Y.getItem(`recentSplitterSongs`);if(!e)return[];try{let t=JSON.parse(e)??[];return t=t.map((e,t)=>({...e,lastUpdate:e.lastUpdate??Date.now()-t})),t.sort((e,t)=>t.lastUpdate-e.lastUpdate),oj(t)}catch{return[]}}async function fj(e,t,n,r,i){if(!e){JM.value=!1,uj.value=null;return}cj.value=!0;let{playbackInstrumentIds:a,filename:o,sampleIdMap:s,analysis:c,settings:l={}}=e;try{let r=await pj(s);vN(r);let u=await PN(r,a,i);if(!u)throw Error(`failed to get playback stems`);yN(u),await bN(u,i),CN(u,c,t,n,e.playbackInstrumentIds,l.instruments),YM.value=o,xN(u),JM.value=!0,await kN(e.settings,n);let d={...e,lastUpdate:Date.now()};uj.value=d,xj([d,...dj().filter(t=>t.id!==e.id)]),cj.value=!1}catch{await bj(e),cj.value=!1,r.addNotification({content:`Failed to load the track. Please import it again.`,classList:`alert`,autoclose:5e3})}}async function pj(e){return await Promise.all(Object.entries(e).map(async([e,t])=>{let n=e,r=await vp.readFile(t);if(!r)throw Error(`Could not find sample ${t} in virtual FS`);let{wavArrayBuffer:i,wav:a,audioBuffer:o}=await fN(await r.arrayBuffer());
259return{instrumentId:n,sampleId:t,audioBuffer:o,wavArrayBuffer:i,wav:a}}))}async function mj(){let e=dj();if(e.length)for(let t of e){if((await Promise.all(Object.values(t.sampleIdMap).map(e=>vp.exists(e)))).every(e=>e))return t;await bj(t)}}async function hj(e,t,n,r){await gj(),await _j();let i=dj();try{if(i.length===10){let e=i[i.length-1];await bj(e),i=dj()}}catch{}try{let a=n.reduce((e,t)=>(e[t.instrumentId]=t.sampleId,e),{}),o={id:ze(),filename:e,sampleIdMap:a,analysis:r,lastUpdate:Date.now(),playbackInstrumentIds:t};return xj([o,...i]),await Promise.all(n.map(e=>vp.updateFile(e.sampleId,new Blob([e.wavArrayBuffer])))),o}catch{}}async function gj(){let e=dj();for(let t of e)(await Promise.all(Object.values(t.sampleIdMap).map(e=>vp.readFile(e)))).every(e=>(e?.size??0)>0)||await bj(t)}async function _j(){let e=dj().flatMap(e=>Object.values(e.sampleIdMap)),t=(await vp.getHandlesInDirectory(`/`)).filter(t=>!e.includes(t.name));await Promise.all(t.map(e=>vp.remove(e.name)))}function vj(e,t,n){xj(dj().filter(t=>t.id!==e.id));let r=!1;t.addNotification({title:`â${e.filename}â removed from recent songs`,classList:`alert`,autoclose:5e3,action:`<button class="ds-button ds-button-color-primary ds-button-size-compact" ng-click="$parent.innerScope.undo()" ><span class="ds-button-text">Undo</span></button>`,innerScope:{undo:()=>{r=!0,xj([e,...dj()]),n()}},onHide:()=>{r||Object.values(e.sampleIdMap).map(e=>vp.remove(e))}})}function yj(e,t){let n=dj();xj([]);let r=!1;e.addNotification({title:`All recently imported songs removed`,classList:`alert`,autoclose:5e3,action:`<button class="ds-button ds-button-color-primary ds-button-size-compact" ng-click="$parent.innerScope.undo()" ><span class="ds-button-text">Undo</span></button>`,innerScope:{undo:()=>{r=!0,xj(n),t()}},onHide:()=>{r||vp.removeAll()}})}async function bj(e){let t=dj();await Promise.all(Object.values(e.sampleIdMap).map(e=>vp.remove(e))),xj(t.filter(t=>t.id!==e.id))}function xj(e){lj.value=[...e].sort((e,t)=>t.lastUpdate-e.lastUpdate),Y.setItem(`recentSplitterSongs`,JSON.stringify(e))}function Sj(){if(!uj.value||!bM.value)return;let e=Math.min(AM.value,jM.value),t=Math.max(AM.value,jM.value);uj.value.settings={playbackRate:NM.value,pitchOffset:Math.round(IM.value),isCycleEnabled:kM.value,cycleStart:e,cycleEnd:t,instruments:bM.value.tracks.reduce((e,t)=>{let n=t.name;return e[n]={isMuted:t.isMuted,isSolo:t.isSolo,volume:t.volume},e},{})};let n=dj(),r=uj.value;xj(n.map(e=>e.id===r.id?r:e))}const Cj=Fa(Sj,100),wj=O([{quote:`âWow! Really impressed by the professional quality stems I get from Splitter. Vocals are crisp and clear and now I can fix up my old jams.â`,user:{username:`@mr_tuna_music`,image:`https://www.bandlab.com/web-app/images/splitter/testimonials/mrtunamusic-3f70ee09c3.png`,url:`https://www.instagram.com/mr_tuna_music/`}},{quote:`âSplitter is truly AMAZING and so easy to use. I'm excited to use versions of my songs I created on Splitter in my live shows⦠they came out so dope!â`,user:{username:`@oliviakingmusic`,image:`https://www.bandlab.com/web-app/images/splitter/testimonials/oliviakingmusic-7170d7f6df.png`,url:`https://www.instagram.com/oliviakingmusic/`}},{quote:`âJamming and practicing to your favorite tunes has never been easier!â`,user:{username:`@rubenwan`,image:`https://www.bandlab.com/web-app/images/splitter/testimonials/rubenwan-537f949c8a.png`,url:`https://www.instagram.com/rubenwan/`}},{quote:`âSplitter is such a valuable tool. Being able to dissect tunes allows the user to learn individual parts but more importantly have a catalyst for inspiration and creativity. Oh, and itâs free!â`,user:{username:`@ianhitsdrums`,image:`https://www.bandlab.com/web-app/images/splitter/testimonials/ianhitsdrums-f7b544fada.png`,url:`https://www.instagram.com/ianhitsdrums/`}},{quote:`âThe splitter feature is such a great addition to BandLab because it makes creating backing tracks so much more simple and convenient!â`,user:{username:`@_devilishbri`,image:`https://www.bandlab.com/web-app/images/splitter/testimonials/d3vilishbri-850259cfa4.png`,url:`https://www.instagram.com/_devilishbri/`}}
259,{quote:`âIf I'm preparing for a live performance, it's so convenient to use Splitter and take layers away to leave room for a new performance!â`,user:{username:`@taetro`,image:`https://www.bandlab.com/web-app/images/splitter/testimonials/taetro-231e4e3e72.png`,url:`https://www.instagram.com/taetro/`}},{quote:`âSplitter is an extremely intelligent tool that is creating the way of the future for independent creativesâ`,user:{username:`@justus.west`,image:`https://www.bandlab.com/web-app/images/splitter/testimonials/justus-2012ef190b.west.png`,url:`https://www.instagram.com/justus.west/`}}]);function Tj(){return[{title:`What is Splitter?`,description:`A vocal remover, song key finder, drum remover, and so much more.`,ctaLink:`https://blog.bandlab.com/splitter`,ctaText:`Find Out More`,imageAlt:`what is bandlab splitter app`,imageSrc:`https://www.bandlab.com/web-app/images/splitter/blog-meet-splitter-c95fa3ee24.jpg`},{title:`How to use Splitter`,description:`Master our AI audio splitting tool with this handy guide.`,ctaLink:`https://blog.bandlab.com/splitter-tutorial`,ctaText:`Read More`,imageAlt:`bandlab splitter stem isolation guide`,imageSrc:`https://www.bandlab.com/web-app/images/splitter/blog-how-to-use-40c5c91497.jpg`},{title:`How to remove vocals from a song`,description:`Here's how to make a backing track out of any song using Splitter.`,ctaLink:`https://blog.bandlab.com/removing-vocals-with-splitter`,ctaText:`Discover More`,imageAlt:`bandlab splitter vocal remover`,imageSrc:`https://www.bandlab.com/web-app/images/splitter/blog-remove-vocals-c730a3f949.jpg`}]}const Ej=[{id:`workflowVideo0`,title:`bandlab splitter solo stem feature`,url:`https://player.vimeo.com/video/807445982?controls=0&autoplay=true&loop=true&muted=true&autopause=false`,ref:null,player:null,thumbnail:`https://www.bandlab.com/web-app/images/splitter/splitter-workflow-solo-8f9aa549ee.png`},{id:`workflowVideo1`,title:`bandlab splitter song key finder and changer`,url:`https://player.vimeo.com/video/807408135?controls=0&autoplay=true&loop=true&muted=true&autopause=false`,ref:null,player:null,thumbnail:`https://www.bandlab.com/web-app/images/splitter/splitter-workflow-key-4a25379c34.png`},{id:`workflowVideo2`,title:`bandlab splitter tempo changer`,url:`https://player.vimeo.com/video/807408162?controls=0&autoplay=true&loop=true&muted=true&autopause=false`,ref:null,player:null,thumbnail:`https://www.bandlab.com/web-app/images/splitter/splitter-workflow-bpm-468da3118d.png`}],Dj=[{question:`Is Splitter 100% free?`,answer:[`Splitterâs basic stem separation features are completely free on both web and mobile. 260 261However, you can access faster separation speeds and an additional guitar stem track split when you upgrade to BandLab Membership.`]},{question:`Can I download the stems that Iâve separated with Splitter?`,answer:[`Yes, tracks that youâve separated can be exported and saved to your device.`]},{question:`Whatâs the difference between the mobile and web versions?`,answer:[`On both mobile and web, you can enjoy Splitterâs full suite of features including speed and key adjustment, looping, downloading stems and exporting stems to BandLab Studio. On web, stems are downloaded in .wav format for the highest audio quality, while on mobile, stems are downloaded in .m4a format to optimize for file size. On web, you can also convert your stems to MIDI, and open them in Studio or another DAW. MIDI conversion is currently not available on mobile.`]},{question:`Where can I find Splitter in the BandLab app?`,answer:[`To locate Splitter, tap on the + button in the BandLab app to open the Create tab. You can find Splitter under the Tools section.`]},{question:`What file formats are supported?`,answer:[`Splitter supports most audio files on both web and mobile, including but not limited to .mp3, .m4a, .wav, and .flac. You can even upload video formats such as .mp4 files, and Splitter will extract the audio for you.`]},{question:`Are there any file size limits?`,answer:[`The maximum file size per song is 100\xA0MB, and the maximum length per song is 15 minutes. Please note that larger files will take longer to process.`]},{question:`Do I need an internet connection to use Splitter?`,answer:[`You can use Splitter with either mobile data or Wi-Fi â anything that connects you to the internet!`]},{question:`What instruments can Splitter separate?`,answer:[`You can separate your imported audio into four stems: vocals, drums, bass, and others for free. As a BandLab Member, you get additional guitar and piano splits, making it a total of six instruments.`]},{question:`How can I use Splitter as a vocal remover?`,answer:[`Splitter can isolate and remove the vocals from any song of your choice, so you can practice singing over it. <a href="https://blog.bandlab.com/removing-vocals-with-splitter" target="_blank">Here is a detailed guide on how to do so.</a>`]}],Oj={headerTitle:`Splitter â the ultimate practice tool`,headerDescription:`Hone your music skills with our free audio separation tool that splits any song into highâquality stems. Adjust speed and pitch, loop and more. Import any song and try it below!`,headerDescriptionUnauthorised:`Hone your music skills with our free audio separation tool that splits any song into highâquality stems. Adjust speed and pitch, loop and more. Try it below!`,appleStoreRating:`4.7`,appleStoreRatingTotal:`495K Ratings`,playStoreRating:`4.5`,playStoreRatingTotal:`819K Ratings`,upload:{defaultTitle:`Import a Song`,defaultDescription:`Select any media file up to 15 minutes`,defaultDescriptionMini:`Select any media file up to 15 minutes`,uploadingTitle:`Importingâ¦`,processingTitle:`Separatingâ¦`,processingTitle2:`Finishing upâ¦`,dragoverTitle:`Drop`,cancel:`Cancel`},introSectionTitle:`Try Splitter for free in the BandLab app`,introSectionDescription:`Isolate vocals or instruments, change the key or speed, loop each track and more â all in the palm of your hand.`,introSectionVideoTitle:`how to use bandlab splitter introduction video`,introSectionVideoId:`fC10TCfITkM`,uspTitle1:`Free`,uspDescription1:`Separate tracks into vocals, drums, bass and other instruments for free.`,uspTitle2:`AI-powered stem separator`,uspDescription2:`Use Splitter to isolate vocals and instruments with excellent sound quality.`,uspTitle3:`Seamless workflow`,uspDescription3:`Easily export your stems and continue your creative journey with no disruptions.`,previewDemoDescription:`This is an audio demo only. Log in to BandLab to import your own song.`,previewDemoDescriptionGuitar:`Guitar separation is available with BandLab Membership.`,previewDemoAudioDemoOnly:`This is an audio demo only.`,previewDemoLoginToImport:`Log in to import your song.`,previewDemoImportSong:`Import your own song.`,previewDemoDescriptionCta:`Try for free.`,importButton:`Import a new song`,importButtonUnauthorised:`Import your own song`,openInStudio:`Open in Studio`,workflowHeader:`Practice on the go with Splitter on mobile`,workflowTitle1:`Solo any track for better focus`,workflowDescription1:`Want to practice just the bass part? Solo the bass track and adjust the volume to your preferred level.`,workflowTitle2:`Change the key to
261suit your range`,workflowDescription2:`Splitter detects your key automatically. Not only that â you have the option to set the key to your liking.`,workflowTitle3:`Practice at your own speed`,workflowDescription3:`Alter the playback speed of any track. Slow down (or speed up!) that vocal or instrumental to match your desired pace.`,workflowCtaButton:`Try Splitter now`,multiPlatformTitle:`Use Splitter on any device`,multiPlatformDescription:`Get the same great Splitter experience on both web and mobile`,testimonialsHeader:`Discover how BandLab creators are using Splitter`,blogPostsHeader:`All you need to know about Splitter`,miniPanelHeader:`Try Splitter`,miniPanelDescription:`Scan the QR code with your phone camera to access Splitter on the BandLab app.`,backToTop:`Back to top`,musicBy:`Music By`,downloadSplitterQRCode:`Download Splitter QR Code`,splitCancelledByOtherDevice:`Separation was cancelled from another device.`,splittingOnOtherDeviceTitle:`You are already splitting a song on another device.`,splittingOnOtherDeviceSubtitle:`Start a new separation here and cancel the other one?`,splitterKeepSeparatingOnOther:`Keep separating on other device`,splitterStartNewSeparation:`Start new separation`,splittingOnOtherDeviceError:`You are already processing a song elsewhere. Please wait and try again later.`,splittingOnOtherTabError:`You are already separating a song in another tab. Only one song can be processed at a time.`,splitterBannerMemberTitle2:`You have unlimited splits and the fastest speeds with Membership!`,splitterBannerMemberText2:`Members get full access to Splitter and are placed at the front of the queue.`,splitterBannerMemberBusyTitle:`Splitter is busier than usual!`,splitterBannerMemberBusyText:`You are already receiving the highest priority speeds with Membership.`,splitterBannerSplittingTitle:`Get unlimited splits and faster speeds`,splitterBannerUnlockFeaturesTitle:`Unlock extra Splitter features`,splitterBannerUnlockFeaturesSubtitle2:`Get unlimited splits, faster speeds, isolate guitar/piano tracks, access Splitter in Studio and more.`,splitterPaywallCtaMonthlyTrial:(e=>{let t=new Intl.PluralRules(`en`);return{one:`Try Free for ${e} Day`,other:`Try Free for ${e} Days`}[t.select(e)]})(3),splitterPaywallCtaAnnualTrial:(e=>{let t=new Intl.PluralRules(`en`);return{one:`Try Free for ${e} Day`,other:`Try Free for ${e} Days`}[t.select(e)]})(7),split:`Split`,splitterChooseOptionText:`Select the number of tracks to split`,splitterChangeTrackConfigTitle:`Change track configuration?`,splitterChangeTrackConfigSubtitle:`Your song will be reâsplit`,splitterChangeTrackConfiguration:`Change track configuration`,splitterLimitCancelWillCountTitle:`Cancel split?`,splitterLimitCancelWillCountDailySubtitle:`If your stems have already started separating, this will count towards your free daily splits.`};async function kj(e,t,n,r,i,a){try{let o=Date.now(),s=new FormData;r&&s.append(`daily_limits_enabled`,`true`),s.append(`file`,t),s.append(`stems`,n.join(`,`)),s.append(`out_format`,`m4a`);let c=angular.extend({transformRequest:angular.identity,headers:{"Content-Type":void 0}},{uploadEventHandlers:{progress:e=>{let t=Date.now()-o,n=e.loaded,r=e.total,a=n/t,s=(r-n)/a/1e3;i(n/r,s)}},timeout:a}),{result:{approx_waiting_time_in_seconds:l,separation_id:u}}=(await e.post(`https://source-separation.bandlab.io/v4/separation`,s,c)).data;return{approxWaitTimeSeconds:l,separationId:u}}catch(e){throw e.status===429?`splitter_limit_reached`:e}}function Aj(){return Un.get(`https://source-separation.bandlab.io/v1/separation/status`).then(e=>e.json()).then(({result:{progress:e,result:t,status:n,msg:r,separation_id:i}})=>({progress:e,result:t,status:n,msg:r,separationId:i})).catch(e=>{throw e})}function jj(){return Promise.all([Un.get(`https://source-separation.bandlab.io/v1/separation`).then(e=>e.blob()),import(`./DI9eyZvR.js`).then(t=>e(t.default)).then(function({default:e}){return new e})]).then(([e,t])=>t.loadAsync(e))}function Mj(){return Un.delete(`https://source-separation.bandlab.io/v1/separation`,{keepalive:!0})}async function Nj(){let{result:{level:e}}=await(await Un.get(`https://source-separation.bandlab.io/v1/load`)).json();return e}async function Pj(){let{result:{approx_waiting_time_in_seconds:e}}=await(await Un.get(`https://source-separation.bandlab.io/v1/separation/prediction`)).json();return e}async function Fj(){let{result:{current_requests:e,max_requests:t}}=await(await Un.get(`https://source-separation.bandlab.io/v1/daily_limits`)).json();return{currentRequests:e,maxRequests:t}}function Ij(e){let t=0;return{eof:o,read:n,readInt32:r,readInt16:i,readInt8:a,readVarInt:s};function n(n){let r=e.substr(t,n);return t+=n,r}function r(){let n=(e.charCodeAt(t)<<24)+(e.charCodeAt(t+1)<<16)+(e.charCodeAt(t+2)<<8)+e.charCodeAt(t+3);return t+=4,n}function i(){let n=(e.charCodeAt(t)<<8)+e.charCodeAt(t+1);return t+=2,n}function a(n){let r=e.charCodeAt(t);return n&&r>127&&(r-=256),t+=1,r}function o(){return t>=e.length}function s(){let e=0,t=a();for(;t&128;)e+=t&127,e<<=7,t=a();return e+t}}function Lj(e){let t,n=Ij(e),r=p(n),i=[],a,o,s,c;if(r.id!==`MThd`||r.length!==6)throw`Bad .mid file - header not found`;let l=Ij(r.data),u=l.readInt16(),d=l.readInt16(),f=l.readInt16();if(f&32768)throw`Expressing time division in SMTPE frames is not supported yet`;for(a=0;a<d;a++){if(i[a]=[],o=p(n),o.id!==`MTrk`)throw`Unexpected chunk - expected MTrk, got ${o.id}`;for(s=Ij(o.data);!s.eof();)c=m(s),i[a].push(c)}return{header:{formatType:u,trackCount:d,ticksPerBeat:f},tracks:i};function p(e){let t=e.read(4),n=e.readInt32();return{id:t,length:n,data:e.read(n)}}function m(e){let n={deltaTime:e.readVarInt()},r=e.readInt8(),i,a,o,s;if((r&240)==240)switch(r){case 255:switch(n.type=`meta`,n.subtype=e.readInt8(),i=e.readVarInt(),n.subtype){case 2:case 7:case 4:case 5:case
2616:case 127:case 1:case 3:return n.text=e.read(i),n;case 0:if(i!==2)throw`Expected length for sequenceNumber event is 2, got ${i}`;return n.number=e.readInt16(),n;case 32:if(i!==1)throw`Expected length for midiChannelPrefix event is 1, got ${i}`;return n.channel=e.readInt8(),n;case 47:if(i!==0)throw`Expected length for endOfTrack event is 0, got ${i}`;return n;case 81:if(i!==3)throw`Expected length for setTempo event is 3, got ${i}`;return n.microsecondsPerBeat=(e.readInt8()<<16)+(e.readInt8()<<8)+e.readInt8(),n;case 84:if(i!==5)throw`Expected length for smpteOffset event is 5, got ${i}`;return a=e.readInt8(),n.frameRate={0:24,32:25,64:29,96:30}[a&96],n.hour=a&31,n.min=e.readInt8(),n.sec=e.readInt8(),n.frame=e.readInt8(),n.subframe=e.readInt8(),n;case 88:if(i!==4)throw`Expected length for timeSignature event is 4, got ${i}`;return n.numerator=e.readInt8(),n.denominator=2**e.readInt8(),n.metronome=e.readInt8(),n.thirtyseconds=e.readInt8(),n;case 89:if(i!==2)throw`Expected length for keySignature event is 2, got ${i}`;return n.key=e.readInt8(!0),n.scale=e.readInt8(),n;default:return n.subtype=`unknown`,n.data=e.read(i),n}case 240:return n.type=`sysEx`,i=e.readVarInt(),n.data=e.read(i),n;case 247:return n.type=`dividedSysEx`,i=e.readVarInt(),n.data=e.read(i),n;case 248:return n.type=`midiClockTiming`,n;case 250:return n.type=`midiClockStart`,n;case 251:return n.type=`midiClockContinue`,n;case 252:return n.type=`midiClockStop`,n;case 254:return n.type=`activeSensing`,n;default:throw`Unrecognised MIDI event type byte: ${r}`}switch(r&128?(o=e.readInt8(),t=r):(o=r,r=t),n.subtype=r&240,n.channel=r&15,n.type=`channel`,n.subtype){case 128:return n.noteNumber=o,n.velocity=e.readInt8(),n;case 144:return n.noteNumber=o,n.velocity=e.readInt8(),n.subtype=n.velocity===0?128:144,n;case 160:return n.noteNumber=o,n.amount=e.readInt8(),n;case 176:return n.controllerType=o,n.value=e.readInt8(),n;case 192:return n.programNumber=o,n;case 208:return n.amount=o,n;case 224:return n.value=o+(e.readInt8()<<7),n;default:throw`Unrecognised MIDI channel event type: ${s}`}}}function Rj(e,t,n){return Math.round(e/t*n)||0}function zj(e,t){return t=Object.assign({deterministic:!1,duration:!0,noteName:!0,PPQ:ed},t),e.tracks.flatMap(n);function n(n){return n=i(n),n=Bj(n),t.duration&&(n=n.map(r)),t.deterministic&&(n=n.sort(Vj)),n.length===0?[]:[n];function r(n){return n.time=Rj(n.time,e.header.ticksPerBeat,t.PPQ),n.duration=Rj(n.duration,e.header.ticksPerBeat,t.PPQ),n}function i(e){let n=0,r=[],i=new Map,a=t.noteName;for(let t of e){n+=t.deltaTime;let e=t.subtype;if(e===144){let e=t.noteNumber,o={time:n,midiNote:e,velocity:t.velocity/127};a&&(o.noteName=nd(e));let s=i.get(e);s?s.push(o):i.set(e,[o]),r.push(o)}else if(e===128){let e=i.get(t.noteNumber);if(e){let t=e.shift();t&&(t.duration=n-t.time)}}else t.controllerType===64?r.push({eventName:`sustain`,time:n,value:t.value}):e===224&&r.push({time:n,eventName:`pitchBend`,value:t.value})}return r}}}function Bj(e){let t=[],n=0;for(;n<e.length;){let r=e[n].time,i=n+1;for(;i<e.length&&e[i].time===r;)i++;if(i-n===1){t.push(e[n]),n=i;continue}let a=new Map;for(let t=n;t<i;t++){let n=e[t];if(n.midiNote===void 0||typeof n.duration!=`number`)continue;let r=a.get(n.midiNote);(r===void 0||n.duration>r)&&a.set(n.midiNote,n.duration)}for(let r=n;r<i;r++){let n=e[r];if(n.midiNote!==void 0&&typeof n.duration==`number`){let e=a.get(n.midiNote);if(e!==void 0&&n.duration<e)continue}t.push(n)}n=i}return t}function Vj(e,t){let n=e.time-t.time,r=e.midiNote&&t.midiNote&&e.midiNote-t.midiNote,i=t.duration-e.duration,a=t.velocity-e.velocity;return n||r||i||a}function Hj(e){return Object.keys(e).reduce(function(t,n){return t.push(e[n]),t},[])}function Uj(e){let t={},n={},r=null,i=null,a=null,o=e.tracks;for(let e=0;e<o.length;e++){let s=o[e],c,l,u=!1;for(let e of s)switch(e.subtype){case 144:u=!0;break;case 3:l=e;break;case 192:c||=e;break;case 81:r===null&&(r=6e7/e.microsecondsPerBeat);break;case 89:i===null&&(i=cd(e.key,e.scale));break;case 88:a=[e.numerator,e.denominator]}u&&(l&&(n[e]=l.text.replace(/\u0000/g,``)),c?t[e]=c.channel===9?128:c.programNumber:s[0]&&s[0].channel===9&&(t[e]=128))}return{bpm:r,instruments:Hj(t),keySignature:i,timeSignature:a,trackNames:Hj(n)}}var Wj=n({parse:()=>Gj});function Gj(e,t){let n=Lj(e);return n.header.formatType===0&&(n.tracks=Kj(n.tracks[0])),{parts:zj(n,t),transport:Uj(n)}}function Kj(e){let t=0;return Hj(e.reduce(n,{}));function n(e,n){let r=n.channel||0;e[r]=e[r]||[];let i=e[r][e[r].length-1];
261return e[r].push(n),t+=n.deltaTime,n.absoluteTime=t,n.deltaTime=i?n.absoluteTime-i.absoluteTime:n.absoluteTime,e}}function qj({events:e=[]}={}){let t=[];for(let t of e)f(t);return{addEvent:n,addNoteOff:i,addNoteOn:r,addPitchBend:o,addSustain:a,setInstrument:s,setKeySignature:c,setName:d,setTempo:u,setTimeSignature:l,toBytes:g};function n(e){f(e)}function r(e,t,n=0,r=90){p(144,e,od(t),n,r)}function i(e,t,n=0,r=0){p(128,e,od(t),n,r)}function a(e,t,n=0){p(176,e,64,n,t)}function o(e,t,n=0){p(224,e,t&127,n,t>>7)}function s(e,t,n=0){p(192,e,t,n)}function c(e,t=0){let[n,r]=rd(e);n!==null&&r!==null&&m(89,[n,r],t)}function l(e,t,n=0){m(88,[e,Math.log2(t),24,8],n)}function u(e,t=0){m(81,id(e),t)}function d(e,t=0){m(3,e,t)}function f(e){if(e.appendTo){e.appendTo(t);return}let n=e.toBytes();for(let e=0;e<n.length;e++)t.push(n[e])}function p(e,n,r,i,a=null){if(e<128||e>224)throw Error(`Trying to set an unknown event: ${e}`);if(n<0||n>15)throw Error(`Channel is out of bounds.`);h(i),t.push(e|n&15,r),a!==null&&t.push(a)}function m(e,n,r){if(!e)throw Error(`Type for meta-event not specified.`);if(h(r),t.push(255,e),Array.isArray(n)){t.push(n.length);for(let e of n)t.push(e)}else if(typeof n==`number`)t.push(1,n);else if(n!==null){t.push(n.length);for(let e=0;e<n.length;e++)t.push(n.charCodeAt(e))}else t.push(0)}function h(e){if(e>=0&&e<128){t.push(e&127);return}let n=dd(e);for(let e=0;e<n.length;e++)t.push(n[e])}function g(){let e=t.length+Qu.length,n=ld(e.toString(16),4);return Zu.concat(n,t,Qu)}}function Jj({ticks:e=ed,tracks:t=[]}={}){if(typeof e!=`number`)throw TypeError(`Ticks per beat must be a number!`);if(e<=0||e>=32768||e%1!=0)throw Error(`Ticks per beat must be an integer between 1 and 32767!`);return{addTrack:n,toBytes:r};function n(e=qj()){return t.push(e),e}function r(){return[td,$u,t.length>1?`\0�`:`\0\0`,ud(ld(t.length.toString(16),2)),String.fromCharCode(e/256,e%256),t.map(e=>ud(e.toBytes())).join(``)].join(``)}}var Yj=n({generate:()=>Xj});function Xj(e){let t=Jj();return e.parts.forEach(n),t.toBytes();function n(n,r){let i=t.addTrack();e.transport.bpm&&i.setTempo(e.transport.bpm),e.transport.instruments&&e.transport.instruments[r]!==void 0&&(i.setInstrument(e.transport.instruments[r]===128?9:0,Math.max(e.transport.instruments[r]===128?0:e.transport.instruments[r],0)),e.transport.instruments[r]===128&&(n=n.map(function(e){return Object.assign({},e,{channel:9})}))),e.transport.keySignature&&i.setKeySignature(e.transport.keySignature),e.transport.timeSignature&&i.setTimeSignature(e.transport.timeSignature[0],e.transport.timeSignature[1]),e.transport.trackNames&&e.transport.trackNames[r]&&i.setName(e.transport.trackNames[r]);let a=[];for(let e of n)eM(e,a);a.sort($j);let o=Qj(a),s=0;for(let e=0;e<o.length;e++){let t=o[e],n=Math.max(e===0?t.time:t.time-s,0);s=t.time,Zj(i,t,n)}}}function Zj(e,t,n){let r=t.channel||0,i=t.name;i===`NoteOn`?e.addNoteOn(r,t.midiNote,n,t.velocity*127):i===`NoteOff`?e.addNoteOff(r,t.midiNote,n,t.velocity*127):i===`Sustain`?e.addSustain(r,t.value,n):i===`PitchBend`&&e.addPitchBend(r,t.value,n)}function Qj(e){let t=new Set,n=[],r=new Map,i=[],a,o=!1,s=0,c=[],l=[],u=0,d=0;for(let f=0;f<e.length;f++){let p=e[f];if(!o||p.time!==a){o=!0,a=p.time;let n=f+1;for(;n<e.length&&e[n].time===a;)n++;if(s=n-f,u=0,d=0,s>1){t.clear(),c.length=0,l.length=0;for(let t=f;t<n;t++){let n=e[t];n.name===`NoteOn`?c.push(n):n.name===`NoteOff`&&l.push(n)}}}if(s===1){typeof p.midiNote==`number`?n[p.midiNote]=p:r.set(p.midiNote,p),i.push(p);continue}let m=p;if(i.length){let e=typeof m.midiNote==`number`?n[m.midiNote]:r.get(m.midiNote);if(e){let n=e.name===`NoteOn`,r=e.name===`NoteOff`;if(n||r){let e=n?l:c,r=n?d:u;for(;r<e.length&&t.has(e[r]);)r++;r<e.length&&(m=e[r]),n?d=r:u=r}}}t.add(m),typeof m.midiNote==`number`?n[m.midiNote]=m:r.set(m.midiNote,m),i.push(m)}return i}function $j(e,t){return e.time-t.time}function eM(e,t){e.midiNote===void 0?e.eventName===`sustain`?t.push({channel:e.channel,time:e.time,name:`Sustain`,value:e.value}):e.eventName===`pitchBend`&&t.push({channel:e.channel,time:e.time,name:`PitchBend`,value:e.value}):t.push({channel:e.channel,duration:e.duration,midiNote:e.midiNote,name:`NoteOn`,time:e.time,velocity:e.velocity},{channel:e.channel,duration:e.duration,midiNote:e.midiNote,name:`NoteOff`,t
261ime:e.time+e.duration})}var tM=n({PITCH_MAX:()=>uM,PITCH_MIN:()=>lM,PITCH_STEP_COUNT:()=>hM,PLAYBACK_RATE_MAX:()=>fM,PLAYBACK_RATE_MIN:()=>dM,PLAYBACK_RATE_STEP_COUNT:()=>mM,PLAYBACK_RATE_STEP_SIZE:()=>pM,SPLITTER_DEFAULT_BPM:()=>120,SPLITTER_TASKS:()=>gN,applySplitterSettings:()=>kN,cachePlaybackStems:()=>yN,cacheSourceStems:()=>vN,cancelUpload:()=>aN,exportSplitterMidiResults:()=>RN,getPlaybackStemsFromSourceStems:()=>PN,getSplitterMidiDefaultSoundbank:()=>LN,initSplitterPlayerIfNeeded:()=>AN,isSplitted:()=>JM,isSplitterCycleEnabled:()=>kM,isSplitterHighLoad:()=>VM,isSplitting:()=>qM,loadSplitterLimits:()=>zN,mergeStems:()=>NN,newSplitterRevision:()=>CN,onSplitterPitchChange:()=>TN,onSplitterTempoChange:()=>EN,putStemsInVirtualFS:()=>bN,selectFiles:()=>HM,selectedSplitterInstruments:()=>QM,setSplitInstruments:()=>jN,setSplitterCycleEnabled:()=>ON,setSplitterCycleRange:()=>DN,splitterAllTheTimeDemoUrl:()=>gM,splitterAnalysedBpm:()=>DM,splitterAnalysedKey:()=>OM,splitterAudioToMidi:()=>IN,splitterCurrentTrackName:()=>YM,splitterCyclePercentA:()=>AM,splitterCyclePercentB:()=>jM,splitterImportFile:()=>oN,splitterLimits:()=>PM,splitterMidiStemsCache:()=>CM,splitterOptions:()=>rM,splitterPendingUploadFile:()=>ZM,splitterPitchOffset:()=>IM,splitterPlaybackRate:()=>MM,splitterPlaybackStemsCache:()=>SM,splitterPlayer:()=>wM,splitterPrecisePlaybackRate:()=>FM,splitterProgressQueue:()=>KM,splitterRevision:()=>bM,splitterRoundedPlaybackRate:()=>NM,splitterScaledSongDuration:()=>EM,splitterSongDuration:()=>TM,splitterSourceStemsCache:()=>xM,splitterTimeRemainingStr:()=>BM,splitterUploadingTrackName:()=>XM,startFileSplitting:()=>WM,startStudioFileSplitting:()=>GM,stemAudioDataFromArrayBuffer:()=>fN,trackTypeMap:()=>SN,updateEditorRevision:()=>wN,updateSplitterSongDuration:()=>xN,validSplitterOptions:()=>iM});const nM=De(`splitter_strings_enabled`),rM=U(()=>{let e=[[`vocals`,`other`],[`vocals`,`drums`,`bass`,`other`],YA,[`vocals`,`drums`,`bass`,`strings`,`other`],[`vocals`,`drums`,`bass`,`piano`,`other`],[`vocals`,`drums`,`bass`,`guitar`,`other`],[`vocals`,`drums`,`bass`,`guitar`,`piano`,`other`],XA,[`vocals`,`drums`,`bass`,`guitar`,`piano`,`strings`,`other`]];return e.forEach(e=>{if(!iM.some(t=>tj(e,t)===`EXACT`))throw Error(`Display options must be valid playback options ${e}`)}),nM.value||(e=e.filter(e=>!e.includes(`strings`))),e}),iM=[[`vocals`,`other`],YA,[`vocals`,`drums`,`bass`,`other`],[`vocals`,`drums`,`bass`,`guitar`,`other`],[`vocals`,`drums`,`bass`,`piano`,`other`],[`vocals`,`drums`,`bass`,`strings`,`other`],[`vocals`,`drums`,`bass`,`guitar`,`piano`,`other`],[`vocals`,`drums`,`bass`,`guitar`,`piano`,`strings`,`other`],XA],aM=[`vocals`,`drums`,`bass`,`piano`,`guitar`,`strings`,`other`],oM=[`vocals`,`drums`,`bass`,`piano`,`guitar`,`other`],sM=[`vocals`,`other`],cM=120,[lM,uM]=[-12,12],[dM,fM]=[.1,2],pM=.05,mM=(fM-dM)/pM,hM=uM-lM,gM={vocals:`https://www.bandlab.com/web-app/common/static/splitter-hyper-pop-demo-vocals-bd53fd95de.m4a`,drums:`https://www.bandlab.com/web-app/common/static/splitter-hyper-pop-demo-drums-5ae7cf96ef.m4a`,bass:`https://www.bandlab.com/web-app/common/static/splitter-hyper-pop-demo-bass-bfaa5145f8.m4a`,guitar:`https://www.bandlab.com/web-app/common/static/splitter-hyper-pop-demo-guitar-3694396746.m4a`,other:`https://www.bandlab.com/web-app/common/static/splitter-hyper-pop-demo-other-86eb94c7a6.m4a`};let _M=!1,vM=Promise.resolve(!0),yM=!1;const bM=h({value:null}),xM=O([]),SM=O([]),CM=O([]),wM=O(null),TM=O(0),EM=U(()=>TM.value/FM.value),DM=O(null),OM=O(null),kM=O(!1),AM=O(0),jM=O(100),MM=O(1),NM=U(()=>Math.round(MM.value/pM)*pM),PM=O(void 0),FM=U(()=>{let e=DM.value||120,t=NM.value;return Math.round(e*t)/e}),IM=O(0);let LM=null,RM=null;const zM=O(null),BM=U(()=>{let e=Math.ceil((zM.value??0)/60);return RM===null?``:e>1?`About ${e} minutes remaining`:`Less than a minute remaining`}),VM=O(!1);async function HM(e,t,n){let[r]=await pr({accept:Wr,multiple:!1});oN(r,null,n,e,t)}function UM(e){return new Promise((t,n)=>{let r=document.createElement(`audio`);r.src=URL.createObjectURL(e),r.onloadedmetadata=()=>{t(r.duration)},r.onerror=e=>{if(angular.isString(e)){n(e);return}n(e.target?.error)}})}async function WM(e,t,n,r,i,a){let o=ZM.value;if(!o)throw Error(`No file to split`);let s=e.get(`AppNotifications`),c=e.get(`$rootScope`),l=e.get(`EditorRevision`),u=e.get(`EditorModel`),d=e.get(`$q`),f=await iN(s),p=await UM(o),m=d.defer(),h=c.$on(`Splitter:cancel`,function(){m.reject(`canceled`),n.onCancelSplit(t.currentTask.value?.id??`unknown`,p)});lN(s,i).catch(console.error),ZM.value=null;try{Sentry.onLoad(()=>{Sentry.addBreadcrumb({message:`Splitter: start file upload`})});let a=r;t.pushTask(gN.preparing),t.finishTask(gN.preparing.id),t.pushTask(gN.uploading),t.pushTask(gN.separating),t.pushTask(gN.finishing),RM=await Pj(),n.onUploadStart(p,{name:o.name,fileExtension:Fr(o)},r,`splitter_tool`);let s=await rN(sN(o,e,a,m,t,e=>{mN=e}),m);n.onUploadFinish(),n.onSeparationStart(),await zN(i);let[c]=await rN(Promise.all([dN(o),uN(t,s,e=>{hN=e})]),m);n.onSeparationFinish(),Sentry.onLoad(()=>{Sentry.addBreadcrumb({message:`Splitter: separation result ready`})}),n.onDownloadStart();let{playbackStems:d,sourceStems:f}=await rN(pN(t,r,e,m),m);if(n.onDownloadFinish(),PM.value===void 0)throw Error(`Splitter limits not loaded`);n.onComplete(`splitter_tool`,PM.value),await bN(d,e),CN(d,c,u,l,r),kN(void 0,l),YM.value=o.name;let h=await hj(o.name,r,f,c);return h&&(uj.value=h),Sentry.onLoad(()=>{Sentry.addBreadcrumb({message:`Splitter: separation result loaded for playback`})}),!0}catch(l){let u=l;if(zN(i),u===`canceled`){Mj();return}if(u===`other_device_cancel_separation`){s.addNotification({content:Oj.splitCancelledByOtherDevice,classList:`alert`,autoclose:5e3}),n.onError(Oj.splittingOnOtherDeviceError,t.currentTask?.value?.id??`unknown`);return}if(u===`splitter_limit_reached`){c.$emit(`splitter_limit_reached`);return}if(u.status===402){s.addNotification({content:u.data?.result??`Get Membership to unlock this feature`,classList:`alert`,autoclose:5e3});return}if(u.status===409){X(Mo,{size:`medium`,title:Oj.splittingOnOtherDeviceTitle,subtitle:Oj.splittingOnOtherDeviceSubtitle,actions:[{label:Oj.splitterKeepSeparatingOnOther,color:`secondary`},{label:Oj.splitterStartNewSeparation,color:`primary`,onClick:async function(){await Mj(),ZM.value=o,WM(e,t,n,r,i,a)}}]}),n.onError(Oj.splittingOnOtherDeviceError,t.currentTask?.value?.id??`unknown`);return}s.addNotification({content:u.message||`Unable to import file. Please check that your file is not corrupted.`,classList:`alert`,autoclose:5e3}),u.message&&Sentry.onLoad(()=>{Sentry.captureMessage(`Splitter: file split failed`,{extra:{err:u,message:u.message,name:u.name,stack:u.stack},level:`error`})});let d=typeof u==`string`?u:u.message??`unknown`;n.onError(d,t.currentTask.value?.id??`unknown`)}finally{f(),n.reset(),yM=!0,setTimeout(function(){t.reset(),yM=!1},1e3),h()}}async function GM(e,t,n,r){let i=fu(),a=n.get(`$q`),o=n.get(`EditorPlayer`),s=n.get(`EditorState`),c=n.get(`AppNotifications`),l=await iN(c),u=a.defer();
261s.isInBackground=!0;let d,f=J(()=>import(`./obTIvXa5.js`));X(f,{onCancel(){X(Mo,{size:`small`,title:`Stop processing?`,subtitle:`All progress will be lost`,actions:[{label:`Cancel`,color:`secondary`},{label:`Confirm`,color:`destructive-primary`,onClick:()=>{u.reject(`canceled`),r.onCancelSplit(i.currentTask.value?.id??`unknown`,d),Mj()}}]},{id:`splitter_cancel_modal`})},latestTask:i.latestTask,progress:i.progress,timeRemainingStr:BM,title:`Splitter`},{overlayClose:!1,escapeClose:!1,onClose:()=>{s.isInBackground=!1}}),i.pushTask(gN.preparing),i.pushTask(gN.uploading),i.pushTask(gN.separating),i.pushTask(gN.finishing);try{let a=await o.current.renderCroppedRegionSampleToWav(e),s=new Blob([a],{type:`audio/wav`});if(s.size>104857600)throw Error(`Your file is too large, the maximum is 100 MB.`);d=await UM(s),i.finishTask(gN.preparing.id),r.onUploadStart(d,{name:e.name??``,fileExtension:`wav`},t,`splitter_studio`);let c=await rN(sN(s,n,t,u,i,e=>{mN=e}),u);r.onUploadFinish(),r.onSeparationStart(),await rN(uN(i,c,e=>{hN=e}),u),r.onSeparationFinish(),r.onDownloadStart();let{playbackStems:l}=await rN(pN(i,t,n,u),u);return r.onDownloadFinish(),r.onComplete(`splitter_studio`,null),l}catch(o){let s=o;if(s===`canceled`)return;if(s===`other_device_cancel_separation`){c.addNotification({content:Oj.splitCancelledByOtherDevice,classList:`alert`,autoclose:5e3}),r.onError(Oj.splittingOnOtherDeviceError,i.currentTask.value?.id??`unknown`);return}if(s.status===402){c.addNotification({content:s.data?.result??`Get Membership to unlock this feature`,classList:`alert`,autoclose:5e3});return}let l=a.defer(),u=s.status===409,d=!1;if(u)return X(Mo,{size:`medium`,title:Oj.splittingOnOtherDeviceTitle,subtitle:Oj.splittingOnOtherDeviceSubtitle,actions:[{label:Oj.splitterKeepSeparatingOnOther,color:`secondary`},{label:Oj.splitterStartNewSeparation,color:`primary`,onClick:async function(){d=!0,await Mj();let i=await GM(e,t,n,r);l.resolve(i)}}]},{onClose:()=>!d&&l.resolve(void 0)}),r.onError(Oj.splittingOnOtherDeviceError,i.currentTask.value?.id??`unknown`),l.promise;let f=s.message||`Unable to import file. Please check that your file is not corrupted.`;c.addNotification({content:f,classList:`alert`,autoclose:5e3})}finally{Zn(`splitter_cancel_modal`),l(),r.reset(),setTimeout(function(){Xn(f),_N(i)},1e3)}}const KM=fu(),qM=U(()=>KM.isActive.value),JM=O(!1),YM=O(null),XM=O(null),ZM=O(null),QM=O([`vocals`,`drums`,`bass`,`other`]),$M=`another_separation_attempt`,eN=`separation_attempt`;function tN(e){qM.value&&(e.returnValue=!0,e.preventDefault())}function nN(){qM.value&&Mj()}re(qM,()=>{if(qM.value){window.addEventListener(`beforeunload`,tN),window.addEventListener(`pagehide`,nN);return}window.removeEventListener(`beforeunload`,tN),window.removeEventListener(`pagehide`,nN)});function rN(e,t){return Promise.race([e,t.promise])}function iN(e){let t=new BroadcastChannel(`splitter`);function n(){t.close()}return new Promise((r,i)=>{t.onmessage=n=>{n.data===$M&&(e.addNotification({content:Oj.splittingOnOtherTabError,classList:`alert`,autoclose:5e3}),t.close(),i()),n.data===eN&&t.postMessage($M)},t.postMessage(eN),setTimeout(()=>{r(n)},100)})}function aN(e){let t=e.get(`$rootScope`);return!_M&&!yM?(_M=!0,vM=new Promise(e=>{let n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));X(n,{title:Oj.splitterLimitCancelWillCountTitle,subtitle:Oj.splitterLimitCancelWillCountDailySubtitle,size:`medium`,actions:[{label:`Yes, cancel split`,color:`destructive-primary`,onClick:()=>{t.$emit(`Splitter:cancel`),e(!1)}},{label:`No, continue splitting`,color:`secondary`}]},{onClose:()=>{_M=!1,e(!0)}})}),vM):Promise.resolve(!0)}async function oN(e,t,n,r,i){let a=r.get(`AppNotifications`),o=e;if(t?.type===`drop`){if(t.dataTransfer?.files.length!==1){a.addNotification({content:`You can upload only one file at a time.`,autoclose:5e3});return}if(!t.dataTransfer.files[0])return;o=t.dataTransfer.files[0]}let s=await fr(o);if(!qM.value)try{await Rr(s,Qr),i.onImportStart();let e=await ti(s,900);XM.value=s.name;let t=await UM(s);i.onImportFinish();let r=Fr(s);if(Sentry.onLoad(()=>{Sentry.addBreadcrumb({message:`Splitter: start file import`,data:{audioDuration:t,fileExtension:r}})}),s.size>104857600)throw Error(`Your file is too large, the maximum is 100 MB.`);ZM.value=e,QM.value=n?nM.value?aM:oM:sM}catch(e){let t=e;i.reset();let n=t.message||`Unable to import file. Please check that your file is not corrupted.`;a.addNotification({content:a.escapeContent(n),action:`<button type="button" class="notification-action-text-inline" ng-click="$parent.innerScope.expandFileFormatFaq()">Learn More</button>`,classList:`alert`,autoclose:5e3,innerScope:{expandFileFormatFaq:()=>{let e=[...document.querySelectorAll(`.accordion-segment-header-title`)].find(e=>e.textContent===`What file formats are supported?`);e?.scrollIntoView({block:`center`,behavior:`smooth`}),e?.click()}}})}}async function sN(e,t,n,r,i,a){let o=t.get(`$http`),s=t.get(`$q`).defer();r.promise.catch(()=>s.resolve());try{let{approxWaitTimeSeconds:t,separationId:r}=await kj(o,e,n,!!PM.value,(e,t)=>{a(e),zM.value=t+(RM??0)},s.promise);
261return RM=t,zM.value=RM,LM=Date.now()/1e3,r}finally{i.finishTask(gN.uploading.id)}}function cN(e){if(e?.id!==`separating`)return;LM||=Date.now()/1e3,RM||=300;let t=LM+RM-Date.now()/1e3;zM.value=t}re([KM.progress,KM.currentTask],()=>{KM.currentTask.value&&cN(KM.currentTask.value)});async function lN(e,t){let n=await Nj();VM.value=n>=7,VM.value&&!t&&e.addNotification({title:`Servers are extremely busy`,content:`Lots of people are using Splitter right now!`,classList:`warning`,autoclose:5e3})}function uN(e,t,n){return new Promise((e,r)=>{let i=setInterval(async()=>{await Aj().then(({result:a,status:o,msg:s,separationId:c,progress:l})=>{n(l),t!==c&&(clearInterval(i),r(`other_device_cancel_separation`)),o===`Failed`&&(clearInterval(i),r(Error(s??`Server error with code: ${a}`))),a===1&&(clearInterval(i),e())}).catch(e=>{if((e instanceof qe?e.response.status:e.status)===404){clearInterval(i),r(`other_device_cancel_separation`);return}clearInterval(i),r(e)})},1e3)}).finally(()=>{e.finishTask(gN.separating.id)})}async function dN(e){try{let t=await Ur(e);return await Hl(t)}catch{return{keySignature:null,bpm:null}}}async function fN(e){let t=await sr().decodeAudioData(e),n=await _r(t);return{audioBuffer:t,wavArrayBuffer:await n.arrayBuffer(),wav:n}}async function pN(e,t,n,r){zM.value=59;let i=await rN(jj(),r),a=[];i.forEach((e,t)=>{let n=JA.find(t=>e.split(`.`)[0]===t);if(!n)return;async function r(){let{audioBuffer:e,wavArrayBuffer:r,wav:i}=await fN(await t.async(`arraybuffer`));return{instrumentId:n,sampleId:ze(),audioBuffer:e,wavArrayBuffer:r,wav:i}}a.push(r())});let o=await rN(Promise.all(a),r);if(!await vM)throw`canceled`;vN(o);let s=await PN(o,t,n);if(!s)throw Error(`requested 5 tracks but received 4`);return yN(s),xN(s),e.finishTask(gN.finishing.id),JM.value=!0,Sentry.onLoad(()=>{Sentry.addBreadcrumb({message:`Splitter: separation finished`})}),{playbackStems:s,sourceStems:o}}let mN=0,hN=0;const gN={preparing:{id:`preparing`,title:`Preparingâ¦`,rate:1e3},uploading:{id:`uploading`,title:`Uploadingâ¦`,getRealProgress:()=>mN},separating:{id:`separating`,title:`Separatingâ¦`,weight:2,getRealProgress:()=>hN},finishing:{id:`finishing`,title:`Finishing upâ¦`,rate:1e3}};function _N(e){e.reset(),mN=0,hN=0,LM=null,RM=null,zM.value=null}function vN(e){xM.value=e}function yN(e){SM.value=e}async function bN(e,t){return wM.value||await AN(t),Promise.all(e.map(e=>{if(!e.wavArrayBuffer)throw Error(`Stem not ready yet.`);return wM.value?.writeSample(e.sampleId,e.wavArrayBuffer)}))}function xN(e){TM.value=e[0]?.audioBuffer?.duration??0}const SN={guitar:xt,bass:it};function CN(e,t,n,r,i,a={}){let o=nj(i).map((t,r)=>{let i=a[t]??{},o=n.createTrack({name:t,color:QA[t].studioColor.hex,colorName:QA[t].studioColor.name,order:r,type:SN[t]??`voice`,...i}),s=e.find(e=>e.instrumentId===t);if(s){let{audioBuffer:e,sampleId:r}=s;o.regions=[n.createRegion({endPosition:e.duration,name:QA[t].name,trackId:o.id,sampleId:r})]}return o}),s=n.createRevision({tracks:o});s.metronome.bpm=t.bpm||120,s.key=t.keySignature,DM.value=t.bpm,OM.value=t.keySignature,bM.value=s,wN(r)}function wN(e){bM.value&&(e.current=bM.value)}function TN(e,t,n){if(!bM.value||(bM.value.tracks.forEach(e=>{e.regions.forEach(n=>{e.name!==`drums`&&(n.pitchShift=t??n.pitchShift)})}),!wM.value))return;let r=Sl(bM.value.key??``);r=fl(r,t-e),bM.value.key=ml(r)||null,wN(n)}function EN(e,t){if(!bM.value)return;bM.value.tracks.forEach(e=>{e.regions.forEach(e=>{let t=e.playbackRate/FM.value;e.playbackRate=FM.value??e.playbackRate,e.endPosition=e.startPosition+(e.endPosition-e.startPosition)*t})});let n=DM.value||120;bM.value.metronome.bpm=Math.round(n*e),wN(t)}async function DN(e,t,n,r){if(!wM.value)return;AM.value=e,jM.value=t;function i(e,t){return 15360*e*t/60}let a=e<t?[e,t]:[t,e],o=wM.value.transport,s=i(a[0]/100*n,r),c=i(a[1]/100*n,r);await Promise.all([o.setCycleStartTime(s,!1),o.setCycleEndTime(c,!1)])}async function ON(e){wM.value&&(kM.value=e,await wM.value.transport.setCycleState(e))}async function kN(e,t){MM.value=e?.playbackRate??1,EN(MM.value,t),await DN(e?.cycleStart??0,e?.cycleEnd??100,EM.value,bM.value.metronome.bpm),await ON(e?.isCycleEnabled??!1),IM.value=e?.pitchOffset??0,TN(0,e?.pitchOffset??0,t);let n=e?.instruments??{};
261bM.value?.tracks.forEach(e=>{let t=n[e.name]??{};e.volume=t.volume??1,e.isMuted=t.isMuted??!1,e.isSolo=t.isSolo??!1}),wN(t)}async function AN(e){wM.value||=await wu(e)}async function jN(e,t,n,r,i,a){if(!uj.value)throw Error(`No song currently selected`);if(!bM.value)throw Error(`splitterRevision not initialized yet`);let o=t.get(`EditorModel`),s=t.get(`EditorRevision`),c=await PN(xM.value,e,t),l=[...uj.value.playbackInstrumentIds];if(!c){if(!await MN(n,i,e,r,t,a))return;i.onSwitchSplitOption(l,e,!0);return}let{analysis:u,settings:d}=uj.value;yN(c),await bN(c,t),CN(c,u,o,s,e,d?.instruments),await kN(d,s),uj.value={...uj.value,playbackInstrumentIds:e},Cj(),i.onSwitchSplitOption(l,e,!1)}function MN(e,t,n,r,i,a){return new Promise(o=>{X(Mo,{size:`medium`,title:Oj.splitterChangeTrackConfigTitle,subtitle:Oj.splitterChangeTrackConfigSubtitle,actions:[{label:`Cancel`,color:`secondary`,onClick:()=>o(!1)},{label:Oj.splitterChangeTrackConfiguration,color:`primary`,onClick:async()=>{try{if(!uj.value)throw Error(`No song currently selected`);if(!bM.value)throw Error(`splitterRevision not initialized yet`);let s=xM.value;e.pushTask(gN.preparing),e.pushTask(gN.uploading),e.pushTask(gN.separating),e.pushTask(gN.finishing);let{blob:c}=await NN(s,i),l=c;l.name=uj.value.filename,ZM.value=l;let u=uj.value;await WM(i,e,t,n,r,a)&&(await kN(u.settings,i.get(`EditorRevision`)),Cj(),await bj(u),o(!0))}catch{}finally{o(!1)}}}]},{onClose:()=>o(!1)})})}async function NN(e,t){let n=t.get(`EditorModel`),r=e.map((e,t)=>{let r=n.createTrack({name:e.instrumentId,order:t}),{audioBuffer:i,sampleId:a}=e;return r.regions=[n.createRegion({endPosition:i.duration,trackId:r.id,sampleId:a})],r}),i=n.createRevision({tracks:r});return await bN(e,t),await kl(i,{$injector:t})}async function PN(e,t,n){let r=e.map(e=>e.instrumentId),i=tj(t,r);if(i===`EXACT`)return e;if(i===`SUBSET`)return!1;if(i===`SATISIFY_WITH_MERGE`||i===`SUPERSET`){let i=[],a=[],o=t.filter(e=>e!==`other`);for(let t of o){if(r.includes(t)){let n=e.find(e=>e.instrumentId===t);n&&(i.push(n),a.push(t));continue}let o=ZA[t];if(!o)return!1;await FN(o,t,e,a,n,i)}return await FN(r.filter(e=>!a.includes(e)),`other`,e,a,n,i),i}throw Error(`unexpected comparison result`)}async function FN(e,t,n,r,i,a){let{arrayBuffer:o}=await NN(n.filter(t=>e.includes(t.instrumentId)),i);r.push(t,...e);let s=await fN(o);a.push({instrumentId:t,sampleId:ze(),...s})}async function IN(e,t,n,r,i){let{startAudioToMidi:a,startDrumsToMidi:o}=await import(`./COAyi-Xe.js`).then(e=>e.t),s={};e.forEach(e=>{s[e.instrumentId]=0});let c=e.map(async e=>{let c=XA.includes(e.instrumentId)||e.instrumentId===`drums`?o:a;function l(t){s[e.instrumentId]=t;let n=0,r=0;for(let[e,t]of Object.entries(s)){let i=e===`drums`?.1:1;r+=t*i,n+=i}i(r/n)}try{let r=e.instrumentId===`drums`?0:t.pitchOffset,i=await c(e.wav,t.outputBpm,t.playbackRate,r,900,n,l),{midiFile:a}=i;if(!Gj(await ur(a)).parts.length)throw`INSTRUMENT_NOT_DETECTED`;return{...i,instrumentId:e.instrumentId}}catch(t){if(delete s[e.instrumentId],t instanceof Lu)return;if(t===`INSTRUMENT_NOT_DETECTED`){r.addNotification({title:`Failed to detect instrument`,content:`${og(e.instrumentId)} track could not be converted to midi.`,classList:`warning`,autoclose:5e3});return}if(t===`NETWORK_ERROR`){r.addNotification({title:`Network Error`,content:`Check your internet connection and try again`,classList:`alert`,autoclose:5e3});return}return Sentry.onLoad(()=>{Sentry.captureException(`Splitter Audio to Midi Failed`,{extra:{err:t,instrumentId:e.instrumentId}})}),null}});return(await Promise.all(c)).filter(e=>!!e)}function LN(e,t){return{vocals:rt,lead_vocals:rt,backing_vocals:rt,bass:Wt,guitar:ct,piano:rt,strings:rt,drums:t,kick:t,snare:t,cymbal_hihat:t,toms:t,other_drums:t,other:rt}[e]}async function RN(e,t){let{data:{soundbankToProgramChange:n}}=await t.get(`$http`).get(`https://www.bandlab.com/api/v4.3/soundbanks`,{cache:!0});await Promise.all(e.map(async e=>{if(!e)return;let{midiFile:t,suggestedDrumKitSlug:r}=e,i=Gj(await ur(t)),a=LN(e.instrumentId,r),o=n[a??``];(o===void 0||o===-1)&&(o=128),i.transport.instruments=[o];let s=await Xj(i),c=new Blob([Sr(s)],{type:`audio/midi`});xr(c,`${Ko(YM.value)}_${e.instrumentId}.midi`)}))}async function zN(e){if(e)return PM.value=null,PM.value;let{maxRequests:t,currentRequests:n}=await Fj();return PM.value={max:t,remaining:t-n},PM.value}let BN=null,VN=null;function HN(){return BN??=Un.get(`https://harmonizer.bandlab.cloud/v1/models`,{kyCache:!0}).json().then(e=>{if(e.length===0)throw Error(`Harmonizer returned an empty voice catalog`);return e}).catch(e=>{throw BN=null,e}),BN}function UN(){return VN??=Un.get(`https://harmonizer.bandlab.cloud/v1/preset
261s`,{kyCache:!0}).json().then(e=>e.map(e=>({id:e.id,name:e.name,tracks:Array.isArray(e.tracks)?e.tracks.map(e=>({modelId:e.model_id,interval:e.interval_semitone,pan:e.pan,volume:e.volume,offsetMs:e.offset_ms})):[]}))).catch(e=>{throw VN=null,e}),VN}async function WN({audio:t,fileName:n,voiceId:r,interval:i,isPreview:a,signal:o,onStatus:s}){let c=new FormData;c.append(`audio`,t,n),c.append(`voice_id`,r),c.append(`pitch_shift`,i.toString()),c.append(`output_format`,`wav`);let{taskId:l}=await Un.post(`https://harmonizer.bandlab.cloud/v1/task`,{body:c,searchParams:{is_preview:a.toString()},signal:o}).json();for(;;){let e=await Un.get(`https://harmonizer.bandlab.cloud/v1/task/${l}`,{signal:o}).json();if(s?.(e.status),e.status===`Completed`)break;if(e.status===`Failed`)throw new fd(e.error);if(e.status!==`Created`&&e.status!==`Processing`)throw Error(`Unexpected Harmonizer task status: ${e.status}`);await GN(1e3,o)}let u=await Un.get(`https://harmonizer.bandlab.cloud/v1/task/${l}/download`,{signal:o}).blob(),{default:d}=await import(`./DI9eyZvR.js`).then(t=>e(t.default)),f=await d.loadAsync(u),p=Object.values(f.files).find(e=>!e.dir&&e.name.toLowerCase().endsWith(`.wav`));if(!p)throw Error(`Harmonizer returned an empty result archive`);return p.async(`blob`)}function GN(e,t){return t?.aborted?Promise.reject(t.reason??new DOMException(`Aborted`,`AbortError`)):new Promise((n,r)=>{function i(){clearTimeout(a),r(t?.reason??new DOMException(`Aborted`,`AbortError`))}let a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e);t?.addEventListener(`abort`,i,{once:!0})})}const KN={[-12]:{color:`#B400FF`,label:`Octave Down`,trackColorName:`Violet`},[-5]:{color:`#FF690D`,label:`Fourth Down`,trackColorName:`Orange`},0:{color:`#F12C18`,label:`Unison`,trackColorName:`Red`},7:{color:`#2F93F6`,label:`Fifth Up`,trackColorName:`Blue`},12:{color:`#00C6D1`,label:`Octave Up`,trackColorName:`Cyan`}};function qN(e){return{openHarmonizerAndGenerateTracks:t};async function t(e,t){if(t.length===0)return Promise.reject(Error(`No region selected for Harmonizer`));let a=t.slice().sort((e,t)=>e.startPosition-t.startPosition),o,s=await r(a,c);for(;;)try{await i(e,s,c());return}catch(e){if(!(e instanceof YN))throw e;s=await r(a,c)}function c(){return o??=n(e,a),o}}function n(t,n){let r=e.get(`EditorMixdown`),i=e.get(`EditorRevision`),a={...t,volume:1,pan:0,automation:{...t.automation,volume:[],pan:[]}},o=new Map,s=new Map,c,l,u=new Promise((e,t)=>{c=e,l=t});u.catch(()=>{});let d=!1,f=null,p=new Set;async function m(t){if(!p.has(t.id)){p.add(t.id);try{let{blob:n}=await r.renderRegionToWav(t,{track:a},{$injector:e,revision:i.current});s.set(t.id,n);let l=await v(n),u=await cr(await l.arrayBuffer());o.set(t.id,!0),d||(d=!0,c({blob:l,buffer:u,region:t}))}catch(e){o.set(t.id,!1),f=e}}}let h=(async()=>{for(let e of n)if(await m(e),d)return;l(f??new fd({errorCode:101,message:`Oops! Not quite a human voice. Try using another one.`}))})(),g;function _(){return g??=(async()=>{await h,await Promise.all(n.map(e=>m(e)))})(),g}return{previewReady:u,completeChecks:_,getValidRegions:()=>n.filter(e=>o.get(e.id)),getSourceBlob:e=>s.get(e)};async function v(e){try{return await Ll(e,5,-40)}catch{try{return await Ll(e,5,-70)}catch{throw new fd({errorCode:101,message:`Oops! Not quite a human voice. Try using another one.`})}}}}function r(t,n){let r=e.get(`$analytics`),i=e.get(`AppNotifications`),a=e.get(`EditorState`),o=e.get(`EditorRevision`),s=J(()=>import(`./BsjT3v7N.js`));if(r.eventTrack(`harmonizer_open`,{platform:`firebase`}),o.current.tracks.length+1>Z.TRACKS_LIMIT)return i.addNotification({title:`Harmonizer failed`,content:`Track limit reached. Please remove some tracks and try again.`,classList:`warning`,autoclose:8e3}),Promise.reject(new Lu(`Harmonizer cannot be opened because track limit would be exceeded`));if(t.some(e=>e.endPosition-e.startPosition>=300))return i.addNotification({title:`Harmonizer failed`,content:`Harmonizer can only be applied when all selected regions in the track are under 5 minutes`,classList:`warning`,autoclose:8e3}
261),Promise.reject(new Lu(`A selected region is too long for Harmonizer`));let c=n();return a.isInBackground=!0,new Promise((e,t)=>{X(s,{previewSource:c.previewReady,onApply:e,onFail:()=>{i.addNotification({title:`No vocals found.`,content:`If your track is mixed, try using Splitter first.`,classList:`warning`,autoclose:8e3}),t(new Lu(`Harmonizer audio silence`))}},{overlayClose:!1,onDismiss:()=>t(new Lu(`Harmonizer dismissed`))})}).finally(()=>{a.isInBackground=!1})}function i(t,n,r){let i=e.get(`$analytics`),a=e.get(`AppNotifications`),o=e.get(`EditorDB`),s=e.get(`EditorHelper`),c=e.get(`EditorModel`),l=e.get(`EditorRevision`),u=e.get(`EditorState`),d=e.get(`EditorTrack`),f=J(()=>import(`./BEmUs_6B.js`)),p=O(`Created`),m=new Map,h=[],g=new AbortController,_=!1,v=!1,y=`run`;return new Promise((e,b)=>{u.isInBackground=!0,X(f,{title:`Harmonizer`,status:p,states:uu,retryFn:S},{overlayClose:!1,onDismiss:()=>{g.abort(),v||(v=!0,b(new Lu(`Harmonizer generation cancelled`)))}}),x();async function x(){if(_||v)return;_=!0,p.value=`Created`;let t=new AbortController;g=t;let i=Date.now();O();try{await r.completeChecks(),D(t.signal),h=r.getValidRegions(),E(n.slots.length),await C(t.signal),p.value=`Processing`;let a=await w(t.signal);D(t.signal),E(n.slots.length),await T(a,t.signal),k(`success`,i),v=!0,e()}catch(e){if(e instanceof Lu||t.signal.aborted){v||(v=!0,k(`cancelled`,i),b(e));return}t.abort(),p.value=`Failed`;let n=j(e);k(`fail`,i,n),A(e,n),y=n===`track_limit`?`reconfigure`:`run`}finally{_=!1}}function S(){if(y===`reconfigure`){g.abort(),v||(v=!0,b(new YN));return}x()}async function C(e){for(let t of h){if(D(e),m.has(t.id))continue;let n=r.getSourceBlob(t.id);if(!n)throw Error(`Harmonizer source audio is unavailable`);let i=await ni(n);if(D(e),i>=300)throw new JN(`region_too_long`);m.set(t.id,n)}}function w(e){let t=ii(2);return Promise.all(n.slots.map(async n=>({slot:n,regionResults:await Promise.all(h.map(r=>t(async()=>{D(e);let t=m.get(r.id);if(!t)throw Error(`Harmonizer source audio is unavailable`);let i=await WN({audio:t,fileName:`${r.sampleId}-harmonizer.wav`,voiceId:n.voice.id,interval:n.interval,isPreview:!1,signal:e,onStatus:t=>{!e.aborted&&t===`Processing`&&(p.value=`Processing`)}});D(e);let a=await cr(await i.arrayBuffer());return D(e),{region:r,blob:i,buffer:a}})))})))}async function T(e,n){let r=[],i=[],a=e.map(({slot:e,regionResults:t})=>{let n=ze(),a=KN[e.interval],o=a.trackColorName,l=s.colorNameToColorHex(o),u=t.map(({region:t,blob:o,buffer:s})=>{let l={id:ze(),buffer:s,isMidi:!1};r.push(l),i.push({blob:o,sampleId:l.id});let u=e.offsetMs/1e3;return c.createRegion({name:`${e.voice.name}: ${a.label}`,sampleId:l.id,sampleOffset:-u,startPosition:t.startPosition,endPosition:Math.min(t.startPosition+Math.max(0,s.duration+u),Z.SONG_DURATION_MAX),trackId:n})});return c.createTrack({id:n,name:`${e.voice.name}: ${a.label}`,type:St,color:l,colorName:o,pan:e.pan,volume:e.volume,regions:u})});try{await Promise.all(i.map(e=>o.updateFile(e))),D(n),l.current.samples??=[],l.current.samples.push(...r);let e=await d.addTracksAfter(a,t.id,n);if(!e||e.length!==a.length)throw new JN(`track_limit`);l.selectedRegions=new Set(e.flatMap(e=>e.regions))}catch(e){let t=new Set(r.map(e=>e.id));throw l.current.samples=l.current.samples?.filter(e=>!t.has(e.id))??[],await Promise.allSettled(r.map(e=>o.deleteFile(e.id))),e}}function E(e){if(l.current.tracks.length+e>Z.TRACKS_LIMIT)throw new JN(`track_limit`)}function D(e){if(e.aborted)throw new Lu(`Harmonizer generation cancelled`)}function O(){i.eventTrack(`harmonizer_generate_start`,{platform:`firebase`,platforms:[`amplitude`]})}function k(e,t,r){i.eventTrack(`harmonizer_generate_complete`,{platform:`firebase`,platforms:[`amplitude`],params:{result:e,processing_time_ms:Date.now()-t,sample_duration:h.reduce((e,t)=>e+(t.endPosition-t.startPosition),0),applied_to:h.length>1?`regions`:`region`,voice_count:n.slots.length,voices:n.slots.map(e=>`${e.voice.id}:${e.interval.toString()}`),...tt(r)&&{error_code:r}}})}function A(e,t){let n={title:`Harmonizer failed`,content:e instanceof fd&&e.message?e.message:`Something went wrong, please try again later`,classList:`warning`,autoclose:8e3};t===`no_voice_detected`?(n.title=`No vocals found.`,n.content=`If your track is mixed, try using Splitter first.`):t===`region_too_long`?n.content=`Harmonizer can only be applied when all selected regi
261ons in the track are under 5 minutes`:t===`track_limit`&&(n.title=`Track limit reached`,n.content=`Track limit reached. Please remove some tracks and try again.`),a.addNotification(n)}function j(e){return e instanceof JN?e.code:e instanceof fd?e.errorCode===101?`no_voice_detected`:`${e.errorCode}`:e instanceof qe?`${e.response.status}`:`other`}}).finally(()=>{Xn(f),u.isInBackground=!1})}}var JN=class extends Error{code;constructor(e,t){super(e,t),this.code=e,this.name=`HarmonizerGenerationError`}},YN=class extends Error{constructor(){super(`Harmonizer reconfigure requested`),this.name=`HarmonizerReconfigureRequestedError`}};const XN=De(`harmonizer_enabled`);angular.module(`bandlab.editor`).directive(`mixEditorRegion`,[`$analytics`,`$injector`,`$rootScope`,`AppNotifications`,`AudioStretch`,`DrumMachine`,`DrumMachineState`,`EditorCycle`,`EditorDB`,`editorEvents`,`EditorGrid`,`EditorHelper`,`EditorHistory`,`EditorMidiSamples`,`EditorMixdown`,`EditorModel`,`EditorPlayback`,`EditorPlayer`,`EditorRevision`,`EditorScrollState`,`EditorState`,`EditorTimeline`,`EditorTrack`,`EditorView`,`EditorWaveform`,`MidiEditorState`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T){let E=null;return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-region-3d1930687.html`,link:function(i,a){let o=a[0].querySelector(`canvas`).getContext(`2d`),s=we(z),u,m,g,E=a.find(`input`)[0];E?.addEventListener(`blur`,ne),o.canvas.height=w.getWaveformHeightDpr(null,i.isTrackCollapsed(i.track.id)),o.canvas.width=1,g=i.$watch(function(){return m=D(),m&&(`buffer`in m&&m.buffer&&d.isAudioBuffer(m.buffer)||m.error||`notes`in m&&m.notes)},ee),i.getGhostRegionLabelLeft=function(){return!!u&&u.canvasLeft};function D(){let e=i.region.canEdit||p.get(i.region.sampleId)?i.region.sampleId:i.track.sampleId;if(e)return p.get(e)||i.revision.samples?.find(t=>t.id===e)}i.isCompingAvailable=()=>!d.isMidiRegion(i.region),i.splitterOptions=rM.value.map(e=>({label:ij(e),value:e})),i.layerTrackInstruments=Yu,i.onClickSplitterOption=async function(a,o){let{requireStudioMembership:s}=Eo(t),{makeSplitterAnalytics:l}=await import(`./s2qIzB-9.js`).then(e=>e.t),u=l(e);if(!await s(`splitter_studio_region_action`,`splitter`,{onPaymentSuccess:()=>u.onPaymentSuccess(o,`splitter_studio_web`)}))return;if(v.current.tracks.length+o.length>Z.TRACKS_LIMIT){r.addNotification({title:`Track limit reached`,content:`Please remove some tracks and try using Splitter again.`,classList:`warning`,autoclose:5e3});return}let{startStudioFileSplitting:d,trackTypeMap:p}=await Promise.resolve().then(()=>tM),{splitterInstrumentDetails:m,allInstrumentIds:g}=await Promise.resolve().then(()=>PA),_=await d(a,o,t,u);if(!_)return;let y=_.sort((e,t)=>g.indexOf(t.instrumentId)-g.indexOf(e.instrumentId)),C=v.current.tracks.find(e=>e.id===a.trackId);if(!C)throw Error(`Splitter: original track not found`);let w=v.current.trackGroups.find(e=>e.id===C?.trackGroupId);w||(w={id:ze(),colorName:C.colorName,name:`${a.name} (Splitter)`},v.current.trackGroups.push(w)),await f.withSingleUndo(async()=>{await Promise.all(y.map(({audioBuffer:e,instrumentId:t})=>{let{name:n,studioColor:{name:r,hex:i}}=m[t],o=S.duplicateTrack({...C,name:`${n} - ${a.name}`,color:i,colorName:r,type:p[t]??`voice`,trackGroupId:w.id,isMuted:!1,isSolo:!1}),s={id:ze(),isMidi:!1,buffer:e};v.current.samples.push(s);let l=h.createRegion({sampleOffset:0,sampleId:s.id,name:o.name,playbackRate:a.playbackRate,startPosition:a.startPosition,endPosition:a.endPosition,fadeIn:a.fadeIn,fadeOut:a.fadeOut,gain:a.gain,automation:a.automation,loopLength:a.loopLength,pitchShift:a.pitchShift,trackId:o.id});_r(e).then(e=>{c.updateFile({sampleId:s.id,blob:e})}),o.regions=[l]}))});let T=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));b.isInBackground=!0,X(T,{size:`small`,title:`Delete the original region?`,subtitle:`Stems were successfully split.`,actions:[{label:`Keep Region`,color:`secondary`},{label:`Delete Region`,color:`destructive-primary`,onClick:()=>{if(f.pushUndo(v.current),C.regions.filter(e=>e.id!==a.id).length===0){S.deleteTrack(C),i.$applyAsync();return}x.deleteRegionsFromTracks([i.track],[i.region]),i.$applyAsync()}}]},{onClose:()=>
261{b.isInBackground=!1}}),n.$applyAsync()};let O=null,k=null,A=null;function j(e,t){o.canvas.style.width&&!b.isZooming&&(o.canvas.style.width=``),e||=y.timelineLeft;let n=i.region.startPosition*b.scalePx,r=d.getTotalDuration(i.region)*b.scalePx,a=C.isRegionVisible({left:n,width:r},e);if(!a&&u&&(a={canvasLeft:0,canvasWidth:0}),b.isZooming&&tt(A)&&tt(O)&&tt(k)&&i.track.type!==`drum-machine`){if(A.scalePx<=b.scalePx&&(o.canvas.style.left=`${O*b.scalePx}px`,o.canvas.style.width=`${k*b.scalePx}px`),a&&A.scalePx>b.scalePx){let e=a.canvasLeft/b.scalePx*A.scalePx,t=a.canvasWidth/b.scalePx*A.scalePx;if(t*Math.round(window.devicePixelRatio)>32e3)return;M({canvasLeft:e,canvasWidth:t},A.scalePx),o.canvas.style.left=`${a.canvasLeft}px`,o.canvas.style.width=`${a.canvasWidth}px`}u=a;return}m&&!m.error&&a&&(a.canvasWidth||!u||u.canvasWidth)&&((t||!u||a.canvasWidth!==u.canvasWidth||a.canvasLeft!==u.canvasLeft)&&(o.canvas.style.left=`${a.canvasLeft}px`,M(a,b.scalePx)),u=a)}function M(e,t){if(!m)return;let n=w.getWaveformHeightDpr(null,i.isTrackCollapsed(i.track.id)),r=d.getRegionColor(i.track,i.region),a=w.getCacheKey(i.region,r,i.track,n,t);w.drawFromBuffers(o,e.canvasLeft,e.canvasLeft+e.canvasWidth,t*d.getFirstLoopDuration(i.region),t*d.getExtraLoopDuration(i.region),i.region.canEdit?t*i.region.sampleOffset:t*i.region.startPosition,p.has(m.id),n,F,d.getRegionColor(i.track,i.region),i.isResizingLeft(),a,i.track.type,i.isTrackCollapsed(i.track.id)),w.trimCache({arrangementScalePx:t,audioEditorScalePx:T.scalePx},v.current)}function N(){j()}function P(){return j(null,!0)}function F(){if(m&&p.has(m.id)){let e=i.track.patterns?.findIndex(e=>e.sampleId===i.region.sampleId);return i.track.type===`drum-machine`&&e!==void 0&&e!==-1?L(e):I()}return te()}function ee(){if(!m||!(`notes`in m&&m.notes)&&!(`buffer`in m&&m.buffer)&&!m.error)return!1;i.region.hasSample=!m.error,i.region.isPlayable=d.isRegionPlayable(i.region,i.track)||!i.region.canEdit,i.region.isProcessing=!1,(`buffer`in m&&d.isAudioBuffer(m.buffer)||p.has(m.id))&&s(),i.track.patterns&&i.track.patterns.some(e=>e.sampleId===m.id)&&(s(),m.error&&(Q.remove(`scroll:timelineLeft`,N),Q.remove(`scale:timeline`,P))),g()}function te(){if(!m||!(`buffer`in m)||!m?.buffer)throw Error(`Unexpected missing sample buffer`);let e=i.isTrackCollapsed(i.track.id),t=w.getWaveformHeightDpr(null,e);return w.cacheWaveform(m.buffer,m.id,b.scalePx,t,d.getRegionColor(i.track,i.region),i.region.gain,i.region.playbackRate)}function I(){let e=i.isTrackCollapsed(i.track.id),t=w.getWaveformHeightDpr(null,e);return w.cacheScore(p.get(i.region.sampleId)?.notes??[],i.region.sampleOffset,b.scalePx,t,d.getRegionColor(i.track,i.region),i.revision.metronome.bpm)}function L(e){return w.cachePattern(e,b.scalePx,d.getRegionColor(i.track,i.region),d.getFirstLoopDuration(i.region))}function R(){if(m=D(),Q.remove(`scroll:timelineLeft`,N),Q.remove(`scale:timeline`,P),m&&p.has(m.id)){i.region.hasSample=!m.error,i.region.isPlayable=d.isRegionPlayable(i.region,i.track),i.region.isProcessing=!1,P(),Q.add(`scroll:timelineLeft`,N),Q.add(`scale:timeline`,P);return}g=i.$watch(function(){return m=D(),m&&(`buffer`in m&&m.buffer&&d.isAudioBuffer(m.buffer)||m.error||`notes`in m&&m.notes)},function(e){e?(i.region.hasSample=!!m&&!m.error,i.region.isPlayable=d.isRegionPlayable(i.region,i.track),i.region.isProcessing=!1,m?.error&&i.track.patterns&&i.track.patterns.some(e=>e.sampleId===m?.id)?(Bo(o),Q.remove(`scroll:timelineLeft`,N),Q.remove(`scale:timeline`,P)):(P(),Q.add(`scroll:timelineLeft`,N),Q.add(`scale:timeline`,P)),g()):Bo(o)})}async function ne(){await _.current.updateMix()}function z(){Q.add(`scroll:timelineLeft`,N),Q.add(`scale:timeline`,P),Q.add(`scale:applyZoomTimeline`,P),Q.add(`onDprChange`,e),i.$on(l.startZoom,()=>{Q.remove(`scroll:timelineLeft`,N),A={scalePx:b.scalePx,scale:b.scale},u&&(O=u.canvasLeft/b.scalePx,k=u.canvasWidth/b.scalePx)}),i.$on(l.stopZoom,()=>{Q.add(`scroll:timelineLeft`,N),A=null,O=null,k=null}),i.setSelectedRegionsDrumMachinePattern=async e=>{let r=[...v.selectedRegions].map(e=>e.id),a=cu(t);await _.current.mixHandler.clearSelection(),await a.apply(async t=>{let{setSelectedRegionsDrumMachinePattern:n}=i.drumMachineRegionActions;await n(t,r,e)},{pushUndo:!0,retrieveNewSamples:!1}),n.$applyAsync(),ga(`switch_pattern`)},i.$watch(()=>i.isTrackCollapsed(i.track.id),e=>{o.canvas.height=w.getWaveformHeightDpr(null,e),P()});function e(){let e=i.isTrackCollapsed(i.track.id);o.canvas.height=w.getWaveformHeightDpr(null,e),P()}i.$watch(`region`,function(e,t){switch(!0){case e.isProcessing!==t.isProcessing:case e.sampleId!==t.sampleId:R();break;case e.bpm!==t.bpm:case e.endPosition!==t.endPosition:case e.sampleOffset!==t.sampleOffset:case e.loopLength!==t.loopLength:case e.gain!==t.gain:case e.playbackRate!==t.playbackRate:case e.startPosition!==t.startPosition:P()}},!0),i.$watch(()=>i.isResizingLeft(),()=>{P()}),i.$watch(()=>d.getRegionColor(i.track,i.region),P),i.$on(`$destroy`,function(){E?.removeEventListener(`blur`,ne),Q.remove(`scroll:timelineLeft`,N),Q.remove(`scale:timeline`,P),Q.remove(`scale:applyZoomTimeline`,P),Q.remove(`onDprChange`,e)}),i.canReversePlaybackRate=function(){return!d.isAudioTrack(i.track)||!(m&&`buffer`in m&&m.buffer)?!1:i.region.sampleOffset<m.buffer.duration}
261,i.renameRegion=function(){a.find(`input`)[0]?.focus()},i.reversePlaybackRate=function(){ga(`reverse`),f.pushUndo(v.current),_.current.reverseRegions(Array.from(v.selectedRegions)).then(function(){i.$applyAsync()})},j()}},controller:[`$scope`,function(e){let c=angular.noop;e.isInArrangementView=!0,e.isHarmonizerEnabled=()=>XN.value,e.isSelected=function(){return v.selectedRegions.has(e.region)},e.isResizingLeft=function(){return e.isSelected()&&b.isResizingLeft},e.openEditor=function(){(!e.region.hasSample||e.region.isPlayable)&&(v.selectedRegions=new Set([e.region]),S.setSelected(e.track),b.isPlaying||_.setPlaybackPosition(e.region.startPosition),cc(e.track)||rc(e.track)?(ga(`edit`),oc(e.track)?(a.selectPatternOfRegion(e.track,e.region),d.displayInstrument({toggle:!1})):d.displayMidiEditor({toggle:!1})):d.displayAudioEditor({toggle:!1}),setTimeout(()=>{e.$apply(()=>{n.$broadcast(`MixEditorPanel:AdjustRegionWidth`,e.region)})},200))},oc(e.track)&&e.$watch(function(){return[e.region.isProcessing,e.region.sampleId]},function([,t],[,n]){if(e.track.id===v.selectedTrack?.id&&oc(e.track)&&e.track.patterns.find(t=>t.sampleId===e.region.sampleId)){let r=e.track.patterns[o.selectedPatternIndex];(r?.sampleId===t||r?.sampleId===n)&&a.selectPatternOfRegion(e.track,e.region)}},!0);let y=NA(()=>e.region,{$injector:t,$scope:e,EditorGrid:u,EditorHistory:f,EditorPlayer:_,EditorRevision:v,EditorState:b,editorEvents:l,getScalePx:()=>b.scalePx,getSnapDuration:()=>b.isSnapping?b.snapDuration:null},{fadeHandlerSize:8});if(Object.assign(e,y),e.getFadeHandlerOffsetL=function(){return e.getRegionFadeHandlerOffset(b.scalePx,e.region.fadeIn)},e.getFadeHandlerOffsetR=function(){return e.getRegionFadeHandlerOffset(b.scalePx,e.region.fadeOut)},e.isOnlySelectedRegion=function(){return v.selectedRegions.size===1&&v.selectedRegions.has(e.region)},e.getFirstLoopWidth=function(){return d.getFirstLoopWidth(e.region)},e.getExtraLoopDuration=function(){return d.getExtraLoopDuration(e.region)},e.getTotalDuration=function(){return d.getTotalDuration(e.region)},e.getRightHandleType=function(){return e.canStretchRegion()?`stretch`:e.getExtraLoopDuration()>0||e.track.type===`drum-machine`?`loop`:`trim`},e.canResizeFirstLoop=function(){return e.track.type!==dn},e.canShowRegionFade=function(){return e.track.type===`guitar-bass`||e.track.type===`guitar-electric`||e.track.type===`voice`},e.canStretchRegion=function(){return b.isRegionAudioStretchEnabled&&(e.track.type===`guitar-electric`||e.track.type===`guitar-bass`||e.track.type===`voice`)},e.backupFadeIn=function(){ga(`fades`),E=e.region.fadeIn||0,e.isFadingIn=!0,c=we(()=>{f.pushUndo(v.current)})},e.moveFadeIn=function(t){if(E===null)return;c();let n=E-t/b.scalePx,r=e.region.startPosition+n,i=d.snapToGrid(r,b.snapDuration,{padding:5/b.scalePx})-r;e.region.fadeIn=wt(b.isSnapping?n+i:n,0,e.getTotalDuration()-(e.region.fadeOut||0)),e.$applyAsync()},e.updateFadeIn=function(){e.isFadingIn=!1,x.fixRegionFades({regions:[e.region]}),_.updateSourcesInTracks()},e.backupFadeOut=function(){ga(`fades`),E=e.region.fadeOut||0,e.isFadingOut=!0,c=we(function(){f.pushUndo(v.current)})},e.moveFadeOut=function(t){if(E===null)return;c();let n=E+t/b.scalePx,r=e.region.endPosition-n,i=d.snapToGrid(r,b.snapDuration,{padding:5/b.scalePx})-r;e.region.fadeOut=wt(b.isSnapping?n-i:n,0,e.getTotalDuration()-(e.region.fadeIn||0)),e.$applyAsync()},e.updateFadeOut=function(){e.isFadingOut=!1,x.fixRegionFades({regions:[e.region]}),_.updateSourcesInTracks()},e.downloadRegionAsFile=function(){x.downloadRegionAsFile(e.region,e.track),import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`export_region_wav`))},e.uploadRegionToMySounds=function(){e.displayTab(`Loops`),n.$broadcast(`MixEditor:toggleMySounds:Uploads`,e.region)},e.canViewSoundsPack=()=>!1,e.viewSoundsPack=angular.noop,b.isUnderViewPackFromAudioRegionExperiment){let{studioRevisionSoundsPackMap:n}=Gn(()=>gA(t),e);function r(){return e.region.sampleId?n.value[e.region.sampleId]:null}e.canViewSoundsPack=function(){return d.isAudioRegion(e.region)&&!!r()},e.viewSoundsPack=function(){if(v.selectedRegions.size>1)return;let t=r();if(!t)return;let n=Gn(()=>Fk(),e);e.displayTab(`Loops`),n.goToPackFromSample(t,`studio_region_context_menu`),ga(`view_pack`)}}e.setCycleToSelection=function(){let t=e.region.startPosition,n=e.region.endPosition;
261Array.from(v.selectedRegions).forEach(function(e){e.startPosition<t&&(t=e.startPosition),e.endPosition>n&&(n=e.endPosition)}),s.set(t,n)},e.canAudioStretch=()=>d.isAudioRegion(e.region),e.audioStretchPitchShift=function(t){ga(`stretch`),f.pushUndo(v.current),Array.from(v.selectedRegions).filter(d.isAudioRegion).map(function(n){let r=Math.max(Math.min(n.pitchShift+t,12),-12);i.convertRegion(n,n.playbackRate,r),e.$applyAsync()})},e.audioStretchPlaybackRate=function(t){ga(`stretch`),f.pushUndo(v.current),Array.from(v.selectedRegions).filter(d.isAudioRegion).map(function(n){let r=n.playbackRate+t*Math.sign(n.playbackRate);i.convertRegion(n,r),x.moveRegions(v.current.tracks.find(e=>e.regions.includes(n))),e.$applyAsync()})},e.launchAudioStretch=function(){i.preview(e.region)},e.analyzeTempo=function(){x.openAnalyzeTempo(e.region)},e.isAudioRegionInVoiceTrack=()=>d.isAudioRegion(e.region)&&e.track.type===`voice`,e.isAudioRegion=()=>d.isAudioRegion(e.region),e.canAiComposeRegion=()=>d.isMidiRegion(e.region)&&e.track.type!==`drum-machine`&&e.track.type!==`sampler`&&v.current.metronome.signature.notesCount===4&&v.current.metronome.signature.noteValue===4,e.recomposeRegion=async function(n){let{requireMembership:r,recomposeMidiRegion:i}=ou(t);await g.pausePlay(),f.pushUndo(v.current),f.startToIgnorePushUndo(),e.midiEditorState.isVisible=!1;try{if(!await r(`smart_tools_recompose`))return;await i(e.region,n)}catch{}finally{_.updateSourcesInTracks(),f.stopToIgnorePushUndo()}},e.aiComposeExtendRegion=async function(n,r){let{requireMembership:i,extendMidiRegion:a}=ou(t);await g.pausePlay(),f.pushUndo(v.current),f.startToIgnorePushUndo(),e.midiEditorState.isVisible=!1;try{if(!await i(`smart_tools_extend`))return;await a(e.region,n,r)}catch{}finally{_.updateSourcesInTracks(),f.stopToIgnorePushUndo()}},e.aiComposeLayerRegion=async function(n,i){let{requireMembership:a,generateMidiLayeringTrackFromMidiRegion:o}=ou(t);await g.pausePlay(),f.pushUndo(v.current),f.startToIgnorePushUndo();try{if(!await a(`smart_tools_layer`))return;let t=await o(e.region,i);await S.addTrack({...t,order:n.order,trackGroupId:b.availableFeaturesSet.has(`group-tracks`)?n.trackGroupId:null}),v.selectedRegions=new Set(t.regions);let s=Yu[i];r.addNotification({title:`${t.name??s.name} generated`,content:`Your new ${s.name.toLowerCase()} track has been added.`,classList:`success`,autoclose:5e3})}catch{}finally{e.$applyAsync(),_.updateSourcesInTracks(),f.stopToIgnorePushUndo()}},e.voiceClean=function(n){ga(`voice_cleaner`),g.pausePlay();let{requireMembership:i,showVocalEnhanceSettings:a,voiceCleanAudioRegion:o}=ou(t);i(`voice_cleaner`).then(e=>{e&&a(n).then(e=>{s(e)})});function s(t){b.isInBackground=!0,f.pushUndo(v.current),f.startToIgnorePushUndo(),e.$applyAsync(),o(Array.from(v.selectedRegions),t).then(()=>{_.updateSourcesInTracks(),r.addNotification({title:`Voice Cleaner applied`,content:`Vocals cleaned and enhanced.`,classList:`success`,autoclose:5e3})}).catch(e=>{}).finally(()=>{e.$applyAsync(),f.stopToIgnorePushUndo(),b.isInBackground=!1})}},e.convertAudioToMidi=function(n){ga(`audio_to_midi`),g.pausePlay();let{requireMembership:i,generateMidiRegionFromAudio:a}=ou(t);i(`audio_to_midi`).then(e=>{e&&o()});function o(){if(n.type===`guitar-bass`||n.type===`guitar-electric`){s(`Instrumental`);return}s(null)}function s(t){f.pushUndo(v.current),f.startToIgnorePushUndo(),e.$applyAsync(),a({region:e.region,selectedAudioType:t,audioRegionTrackType:n.type}).then(async({region:e,suggestedAudioType:t,suggestedSoundbankSlug:i})=>{let a={[xt]:ct,[it]:Wt},o=h.createTrack({order:n.order,soundbank:i||a[n.type]||`studio-grand-v2-v4`,name:`Audio-to-MIDI`,regions:[e],id:e.trackId});await S.addTrack(o),v.selectedRegions=new Set([e]),_.setPlaybackPosition(e.startPosition),r.addNotification({title:`AudioâtoâMIDI applied`,...t&&{content:`${Xu[t]} detected and converted to MIDI.`},classList:`success`,autoclose:5e3})}).finally(()=>{e.$applyAsync(),_.updateSourcesInTracksAsync(),f.stopToIgnorePushUndo()})}},e.aiVoiceChange=function(){ga(`voice_changer`);let{requireMembership:n,previewVoiceChangerAndGenerateRegions:i}=ou(t);g.pausePlay(),n(`voice_changer`).then(t=>{if(t)return f.pushUndo(v.current),f.startToIgnorePushUndo(),i(e.region).then(()=>{_.updateSourcesInTracks(),r.addNotification({title:`Voice Changer applied`,content:`Your vocals have been transformed.`,classList:`success`,autoclose:5e3})}).catch(e=>{}).finally(()=>{e.$applyAsync(),f.stopToIgnorePushUndo()})})},e.aiHarmonize=async function(n){try{let{requireStudioMembership:i}=Eo(t);if(!await i(`harmonizer`,`effects`))return;g.pausePlay();let a=Array.from(v.selectedRegions).filter(e=>e.trackId===n.id),o=a.some(t=>
261t.id===e.region.id)?a:[e.region],{openHarmonizerAndGenerateTracks:s}=qN(t);await s(n,o),r.addNotification({title:`Harmonizer`,classList:`success`,autoclose:5e3})}catch(e){e instanceof Lu}finally{e.$applyAsync()}},e.isEditable=function(){return p.has(e.region.sampleId)},e.downloadMidFile=function(){return m.renderRegionToMidi(e.region,v.current).then(function({blob:t}){xr(t,`${e.region.name||e.track.name}.mid`)})},e.selectTake=function(t){f.pushUndo(e.revision),e.region.sampleId=t}}]}}]),angular.module(`bandlab.editor`).directive(`mixEditorRuler`,[`EditorGrid`,`EditorHelper`,`EditorPlayer`,`EditorScroll`,`EditorScrollState`,`EditorState`,`MidiEditorState`,function(e,t,n,r,i,a,o){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-ruler-604eb88c7.html`,link:function(t,n){let r=n[0].querySelector(`.studio-ruler-graduation-container`),o=n[0].querySelector(`.mix-editor-ruler-record-mark`);t.$watch(`state.isTimeRuler`,s),t.$on(Fc,c),Q.add(`scale:timeline`,s),Q.add(`scroll:timelineLeft`,s);function s(){e.updateGridLabel({element:r,state:a,leftBounds:i.timelineLeft-12,viewportWidth:i.timelineEl.getBoundingClientRect().width})}function c(e,t){let n=`translateX(${(t.fromTime*a.scalePx).toFixed(0)}px)`;o.style.transform=n}},controller:[`$scope`,function(e){let s,c=angular.noop;e.startMovingPlayhead=function(e,t){a.isDraggingPlayhead=!0,a.isInBackground=!0,l(t-12)},e.finishMovingPlayhead=function(){clearInterval(s),a.isInBackground=!1,a.isDraggingPlayhead=!1};function l(e,r=!1){e=Math.max(0,e),e=a.isTimeRuler||r?e:t.snapToGrid(e,a.snapDuration*a.scalePx,{}),e=Math.min(e/a.scalePx,Z.SONG_DURATION_MAX),n.setPlaybackPosition(e),Q.start(`syncVolume`)}e.setCurrentTime=function(t,n,o,c,u){clearInterval(s);let d=p(u);if(d)s=setInterval(()=>{r.manualScroll(d),n=d.left?Math.max(m(a.crTime)-i.SCROLL_STEP,0):Math.min(m(a.crTime)+i.SCROLL_STEP,m(Z.SONG_DURATION_MAX)),l(n,!0),e.$digest(),e.$applyAsync()},30);else{let e=f(u);n-=12,n=n===e?n:e,l(n)}function f(e){let{left:t,width:n}=i.tracksEl.getBoundingClientRect();return e=Math.max(e-t,0),e=Math.min(e,n),e}function p(e){let{timelineLeft:t,timelineEl:n,RULER_TOP_BUTTONS_WIDTH:r}=i,{left:o,width:s}=n.getBoundingClientRect(),c=a.containerWidth+r+12-n.clientWidth,l=t>0,u=t<c;return e<o+20&&l?{left:!0}:e>o+s-32&&u?{right:!0}:null}function m(e){return a.scalePx*e}},e.$watch(()=>o.isDraggingPlayhead,t=>{if(!t){c();return}o.isVisible&&!o.isLocked&&(c=e.$watch(`state.crTime`,u))});function u(){let t=i.timelineEl.getBoundingClientRect().width/2;i.timelineLeft=a.crTime*a.scalePx-t,Q.start(`scroll:timelineLeft`,!1,i.timelineLeft,!0,!1),e.$applyAsync()}}]}}]);function ZN(e){var t=e.touches&&e.touches.length?e.touches:[e],n=e.changedTouches&&e.changedTouches[0]||t[0];return{x:n.clientX,y:n.clientY}}angular.module(`bandlab.editor`).directive(`mixEditorScrollable`,[`EditorScrollState`,`EditorState`,`MidiEditorState`,function(e,t,n){return{restrict:`A`,link:function(r,i,a){var o=r.$eval(a.listeners)||{},s=r.$eval(a.emitters)||{};function c(e){return e.ctrlKey&&e.deltaY!==0&&e.deltaX===0}i[0].addEventListener(`wheel`,function(a){if(za.element)return;h(a);let o=Math.sign(a.deltaY)*Math.ceil(Math.abs(a.deltaY/15));if(c(a)||a.ctrlKey||a.metaKey){(xn||vn)&&(i[0].classList.contains(`mix-editor-tracks`)?(r.initZoomTimer({state:t}),f(a,a.pageX-269+e.timelineLeft,t,o)):i[0].classList.contains(`mix-editor-panel-track`)&&(r.initZoomTimer({state:n}),f(a,a.pageX-269+e.notesLeft,n,o)));return}if(a.altKey){i[0].classList.contains(`midi-editor-container`)&&n.isPianoRoll&&!t.isVisible&&(a.preventDefault(),r.zoomPianoRollVertical(-o,a));return}if(a.shiftKey){a.preventDefault(),d({deltaX:a.deltaY||a.deltaX,deltaY:0});return}(a.deltaX!==0||a.deltaY!==0)&&(a.preventDefault(),d(a))}),i[0].addEventListener(`touchstart`,function(e){if(t.isDraggingRegions)return;let n=ZN(e);i[0].addEventListener(`touchmove`,r),i[0].addEventListener(`touchend`,a);function r(e){let t=ZN(e),r=n.x-t.x,i=n.y-t.y;e.preventDefault(),d({deltaX:r,deltaY:i}),n=t}function a(){i[0].removeEventListener(`touchmove`,r),i[0].removeEventListener(`touchend`,a)}}),o.notesTop&&Q.add(`scroll:notesTop`,l),o.notesLeft&&Q.add(`scroll:notesLeft`,u),o.timelineLeft&&Q.add(`scroll:timelineLeft`,u),o.tracksTop&&Q.add(`scroll:tracksTo
261p`,l),i[0].classList.contains(`mix-editor-tracks`)&&(e.timelineEl=i[0]),i[0].classList.contains(`mix-editor-block-tracks`)&&(e.tracksEl=i[0]),i[0].classList.contains(`mix-editor-panel-track`)&&(e.notesTimelineEl=i[0]),i[0].classList.contains(`midi-editor-container`)&&(e.notesEl=i[0]),r.$on(`$destroy`,function(){Q.remove(`scroll:notesLeft`,u),Q.remove(`scroll:notesTop`,l),Q.remove(`scroll:timelineLeft`,u),Q.remove(`scroll:tracksTop`,l)});function l(e){i[0].scrollTop=e}function u(e){i[0].scrollLeft=e}function d({deltaX:t=0,deltaY:n=0}){s.notesTop&&(e.notesTop+=n),s.timelineLeft&&(e.timelineLeft+=t),s.tracksTop&&(e.tracksTop+=n),s.notesLeft&&(e.notesLeft+=t)}function f(e,t,n,i){let a=Zt(on,n.scale);i>0?r.zoomOut({scale:on[a-i]??1,state:n,time:t/n.scalePx}):r.zoomIn({scale:on[a-i]??640,state:n,time:t/n.scalePx}),r.$apply(),e.preventDefault()}let p,m={deltaX:0};function h(e){let r;i[0].classList.contains(`mix-editor-tracks`)?r=t.isFollowingPlayhead:i[0].classList.contains(`midi-editor-container`)&&(r=n.isFollowingPlayhead),r&&(clearTimeout(p),m.deltaX+=Math.abs(e.deltaX),m.deltaX>20&&(i[0].classList.contains(`mix-editor-tracks`)?t.isFollowingPlayhead=!1:i[0].classList.contains(`midi-editor-container`)&&(n.isFollowingPlayhead=!1),m.deltaX=0),p=setTimeout(()=>m.deltaX=0,500))}}}}]),angular.module(`bandlab.editor`).directive(`mixEditorScrollbarHorizontal`,[`EditorScroll`,`EditorScrollState`,`EditorState`,function(e,t,n){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-scrollbar-horizontal-8d7bf8820.html`,link:function(r,i){let a=i[0].querySelector(`.mix-editor-scrollbar-horizontal`),o=0,s=new ResizeObserver(function([e]){o=e.contentRect.width,c()});s.observe(i[0]),Q.add(`scroll:timelineLeft`,c),Q.add(`scale:timeline`,c),i[0].addEventListener(`mousedown`,function(t){var n=a.getBoundingClientRect(),r=t.clientX;r<n.left?e.scrollToX({direction:`left`}):r>n.right&&e.scrollToX({direction:`right`})},{capture:!0}),r.$on(`$destroy`,function(){s.disconnect()}),c(),r.state=n,r.$watch(`state.songDuration`,function(){c()});function c(){var e={clientWidth:o,scrollWidth:r.state.scalePx*Math.min(Math.max(180,r.state.songDuration+30),Z.SONG_DURATION_MAX),scrollLeft:t.timelineLeft},n=Math.round(Math.min(e.clientWidth/e.scrollWidth*e.clientWidth,e.clientWidth)),i=Math.max(n,40),s=Math.round(e.scrollLeft/(e.scrollWidth-e.clientWidth)*(e.clientWidth-i));r.barScale=n/i,r.scrollPercent=e.scrollLeft/(e.scrollWidth-e.clientWidth),a.style.width=`${i}px`,a.style.transform=`translateX(${s}px)`}},controller:[`EditorScroll`,`$scope`,function(e,r){var i,a;r.backupPositionX=function(e,o,s){n.isFollowingPlayhead=!1,i=s.target.closest(`.mix-editor-scrollbar-horizontal`)?r.scrollPercent-(r.scrollPercent-e)*r.barScale:e,a=t.timelineLeft},r.scrollX=function(t){e.scrollToX({clickPosition:i,offsetPosition:a,percent:t,scrollWidth:Math.min(Math.max(180,n.songDuration+30),Z.SONG_DURATION_MAX)*n.scalePx})}}]}}]).directive(`mixEditorScrollbarVertical`,[`EditorScroll`,`EditorScrollState`,function(e,t){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-scrollbar-vertical-daf9cb4e8.html`,link:function(n,r){let i=r[0].querySelector(`.mix-editor-scrollbar-vertical`),a=new ResizeObserver(o);a.observe(r[0]),r[0].addEventListener(`mousedown`,function(t){var n=i.getBoundingClientRect(),r=t.clientY;r<n.top?e.scrollToY({direction:`up`}):r>n.bottom&&e.scrollToY({direction:`down`})},{capture:!0}),n.$on(`$destroy`,function(){a.disconnect()}),n.$watch(`revision.tracks.length`,o),Q.add(`scroll:tracksTop`,o);function o(){var e={clientHeight:t.tracksEl.clientHeight,scrollHeight:t.tracksEl.scrollHeight,scrollTop:t.tracksEl.scrollTop},n=Math.round(e.clientHeight/e.scrollHeight*e.clientHeight),a=Math.round(e.scrollTop/(e.scrollHeight-e.clientHeight)*(e.clientHeight-n));i.style.height=`${n}px`,i.style.transform=`translateY(${a}px)`,r[0].classList.toggle(`hidden`,e.clientHeight>=e.scrollHeight),document.body.style.setProperty(`--mix-editor-tracks-height`,`${t.tracksEl.scrollHeight}px`)}},controller:[`EditorScroll`,`$scope`,function(e,n){var r,i;n.backupPositionY=function(e){r=1-e,i=t.tracksTop},n.scrollY=function(t){e.scrollToY({clickPosition:r,offsetPosition:i,percent:1-t})}}]}}]),angular.module(`bandlab.editor`).directive(`beatsLibrary`,[`$injector`,`EditorState`,`Me`,function(e,t,n){return{replace:!0,restrict:`E`,link:function(r,i){ke(n,`beats_entry_point_in_studio`).then(function(n){n===`true`&&$(import(`./CqKdDe6Z.js`).then(e=>e.t),i[0],r,{$injector:e,scope:r,EditorState:t})})}}}]).directive(`loopsLibrary`,[`$analytics`,`$http`,`$injector`,`$rootScope`,`$state`,`AppNotifications`,`AudioStretch`,`editorEvents`,`EditorRevision`,`EditorState`,`Me`,`ProjectUploader`,`User`,`UserHelper`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p){return{replace:!0,restrict:`E`,link:function(m,h){$(import(`./C5cEsNz_.js`).then(e=>e.t),h[0],m,{$analytics:e,$http:t,$injector:n,$rootScope:r,$state:i,scope:m,AppNotifications:a,AudioStretch:o,editorEvents:s,EditorRevision:c,EditorState:l,Me:u,ProjectUploader:d,User:f,UserHelper:p,openPaletteInStudio:m.openPaletteInStudio,openPackDemoInStudio:function(t){t.revisionId&&m.openTemplateInStudio({name:t.name,revisionId:t.revisionId}
261,function(){c.current.samples.forEach(n=>{e.eventTrack(`Import sample from Loops API`,{category:`Mix Editor`,extra:{id:n.id,packSlug:t.id}})})})}})}}}]).directive(`studioRevisionHistorySidebar`,[`$rootScope`,`Editor`,`EditorRevision`,`EditorState`,`Post`,function(e,t,n,r,i){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(a,o){let s=h({applyAsyncAndSyncVolume:()=>{e.$applyAsync(()=>{e.$applyAsync(()=>{Q.start(`syncVolume`)})})},closeSideTab:()=>{a.closeSideTab(),a.$applyAsync()},getRevisionHistory:async()=>(await i.fromSong({songId:a.revision.song.id}).$promise).data.filter(e=>e.type===`Revision`),loadRevision:t.loadRevision});a.$on(`$destroy`,function(){r.currentActiveTab===`RevisionHistory`&&a.closeSideTab()}),$(import(`./DzlAHhRq.js`),o[0],a,{$rootScope:e,scope:a,Editor:t,EditorRevision:n,EditorState:r,Post:i},s)}}}]).directive(`studioMasteringSidebar`,[`$injector`,`$rootScope`,`EditorRevision`,`EditorState`,function(e,t,n,r){return{replace:!0,restrict:`E`,template:`<div style="height: 100%"></div>`,link:function(i,a){let o=h({revision:p(n,`current`),isPlaying:p(r,`isPlaying`),onCloseSideTab:()=>{i.studioMasteringState.onAttemptCloseSideTab(n.current,i)},applyMasteringData:()=>{i.studioMasteringState.applyMasteringDataToRevision(),i.studioMasteringState.onAttemptCloseSideTab(n.current,i)}});$(import(`./DJ-bj2-Y.js`),a[0],i,{$rootScope:t,scope:i,$injector:e,studioMasteringState:i.studioMasteringState},o),i.$on(`$destroy`,function(){r.currentActiveTab===`Mastering`&&i.closeSideTab()})}}}]).directive(`studioLyricsSidebar`,[`EditorRevision`,`EditorState`,function(e,t){return{replace:!0,restrict:`E`,template:`<div class="lyric-editor"></div>`,link:function(n,r){let i=h({lyricsContent:o(),updateLyricsContent:s}),a=n.$watch(o,function(e){i.lyricsContent=e});n.$on(`$destroy`,function(){a()}),$(import(`./D7k6S13_.js`),r[0],n,{},i);function o(){return e.current.lyrics?.content||``}function s(r){e.current.lyrics||(e.current.lyrics={content:``}),e.current.lyrics.content!==r&&(e.current.lyrics.content=r,t.hasRevisionChanges=!0,i.lyricsContent=r,n.$applyAsync())}}}}]).directive(`mixEditorSidetabs`,[`$state`,`EditorState`,`MidiMappable`,`MidiMapping`,function(e,t,n,r){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-sidetabs-9049a6a68.html`,link:function(i){i.closeSideTab=a,i.displayTab=o,i.toggleTab=s,i.mappings=r.getMappings(),i.clearMappings=r.clearMappings,i.startMapping=function(){document.body.classList.add(`is-mapping`)},i.stopMapping=function(){document.body.classList.remove(`is-mapping`)},i.$on(`MixEditor:closeSideTab`,a),i.$on(`MixEditor:displayTab`,function(e,t){i.displayTab(t)}),i.$on(`$destroy`,function(){i.stopMapping()}),(e.params.source===`soundLibrary`||e.params.sampleId||e.params.userSoundsSampleId||e.params.samplePack)&&(Fi({triggeredFrom:`deeplink`,productOrigin:`mix_editor`}),o(`Loops`));function a(){t.currentActiveTab=null,i.stopMapping(),i.$applyAsync()}function o(e){t.currentActiveTab=e,i.stopMapping(),e===`MIDI`&&(n.target=null,i.startMapping())}function s(e){t.currentActiveTab===e?a():o(e)}}}}]),angular.module(`bandlab.audio`).directive(`mixEditorSmartChordsControls`,[`$injector`,function(e){return{restrict:`E`,replace:!0,template:`<div style="display: contents"></div>`,link:function(t,n){let r=h({});t.$watch(function(e){let{getTrack:t}=e;r.track={...t()}}),$(import(`./BxqNIaq4.js`),n[0],t,{$injector:e,scope:t},r)}}}]);const QN={class:`ds-modal ds-modal-size-small ds-modal-with-footer`},$N={class:`ds-modal-header`},eP={class:`ds-modal-title`},tP={class:`ds-modal-content`},nP=[`innerHTML`],rP={class:`ds-modal-footer ds-modal-footer-two-buttons`};var iP=V({__name:`AskTranspositionConfirmationModal`,props:{tonic:{},cancelFn:{type:Function},updateKeyFn:{type:Function},transposeRevisionFn:{type:Function}},emits:[`closeModal`],setup(e){return(t,n)=>(F(),G(`section`,QN,[K(`header`,$N,[K(`h2`,eP,y(`Transposition`),1)]),K(`section`,tP,[K(`p`,{class:`ds-modal-content-p`,innerHTML:`Would you like to adjust existing regions to <strong>${e.tonic}</strong>?`}
261,null,8,nP)]),K(`section`,rP,[q(Ue,{type:`button`,size:`medium`,color:`secondary`,onClick:n[0]||=n=>{e.updateKeyFn(),t.$emit(`closeModal`)}},{default:W(()=>[B(y(`Donât Adjust`),1)]),_:1}),q(Ue,{type:`button`,size:`medium`,color:`primary`,onClick:n[1]||=n=>{e.transposeRevisionFn(),t.$emit(`closeModal`)}},{default:W(()=>[B(y(`Adjust`),1)]),_:1})]),q(Pa,{onClick:n[2]||=n=>{e.cancelFn(),t.$emit(`closeModal`)}})]))}});angular.module(`bandlab.editor`).directive(`mixEditorToolbar`,[`$q`,`$rootScope`,`AudioStretch`,`EditorAllowActions`,`EditorCycle`,`EditorData`,`editorEvents`,`EditorHelper`,`EditorHistory`,`EditorLoader`,`EditorPlayback`,`EditorPlayer`,`EditorRevision`,`EditorState`,`EditorTimeline`,`EditorTrack`,`Metronome`,`MidiEditor`,`MidiEditorState`,`MidiMapping`,`Modal`,`Revision`,`RevisionImporter`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-toolbar-71ac43f1a.html`,controller:[`$scope`,function(C){var w;C.changeTimeSignatureValue=function(e){C.revision.metronome.signature.noteValue!==e&&(c.pushUndo(C.revision),C.revision.metronome.signature.noteValue=e,C.revision.metronome.signature.pristine=!1,d.current.updateTimeSignature())},C.changeTimeSignatureCount=function(e){C.revision.metronome.signature.notesCount!==e&&(c.pushUndo(C.revision),C.revision.metronome.signature.notesCount=e,C.revision.metronome.signature.pristine=!1,d.current.updateTimeSignature())},C.$watch(`revision.metronome`,function(e){p.scalePx=Po(p.scale*2,e.bpm),v.scalePx=Po(v.scale*2,e.bpm),p.containerWidth=Z.SONG_DURATION_MAX*p.scalePx,v.containerWidth=Z.SONG_DURATION_MAX*v.scalePx,document.body.style.setProperty(`--mix-editor-track-width`,`${p.containerWidth}px`),document.body.style.setProperty(`--midi-editor-track-width`,`${v.containerWidth}px`),Q.start(`scale:notesTimeline`,!1),Q.start(`scale:timeline`,!1)},!0),C.optsNoteValue=ht,C.optsNotesCount=ot;async function T(e){if(!C.canHistoryMove(e))return;p.isAutomationVisible&&t.$broadcast(`Automation:ClearSelectedPoints`),c[e](C.revision),await d.updateSourcesInTracksAsync();let n=[...f.selectedRegions].map(e=>e.id),r=h.refreshSelections(f.current,{selectedTrackId:f.selectedTrack?.id,selectedRegionIds:new Set(n)});h.setSelected(r),y.pruneMappings(),y.updateMappings(),p.hasSoloTrack=a.checkAnySolo(),lO.value&&yO(),Q.start(`syncVolume`)}C.undo=function(){T(`undo`)},C.$on(o.keyDown.undo,function(){C.$apply(function(){C.undo()})}),C.redo=function(){T(`redo`)},C.$on(o.keyDown.redo,function(){C.$apply(function(){C.redo()})}),C.$on(o.keyDown.play,function(){C.togglePlay()}),C.$on(o.keyDown.togglePlayStop,function(){p.isPlaying?C.stop():C.togglePlay()}),C.$on(o.keyDown.playFromStart,()=>u.playFromStart());let E=Fa(function(){c.pushUndo(f.current)},1e3,{leading:!0,trailing:!1});C.$on(`MidiMapping:MASTER_PLAYBACK`,function(e,{toggle:t,value:n}){E(),(t||n&&!p.isPlaying||!n&&p.isPlaying)&&C.togglePlay()}),C.$on(`MidiMapping:MASTER_VOLUME`,function(e,{volume:t,toggle:n,min:r,max:i}={}){E(),n&&(t=C.revision.volume>r?r:i),C.revision.volume=t,C.setRevisionVolume(t),Q.start(`syncVolume`)}),C.togglePlay=()=>{C.hasFreezingTrack()||u.togglePlay()},C.toggleMetronome=function(){p.isMetronomeEnabled=!p.isMetronomeEnabled,g.update()},C.$on(o.keyDown.toggleMetronome,function(){C.toggleMetronome()}),C.backupBPM=function(){C.tempBpm=C.revision.metronome.bpm,f.current.tracks.flatMap(e=>e.regions).forEach(function(e){e.bpm=C.revision.metronome.bpm}),p.isPlaying&&C.togglePlay()},C.setTempBpm=function(e,t){C.tempBpm=Math.min(240,Math.max(C.revision.metronome.bpm+parseInt(t*.3),40))},C.$watch(`revision.metronome.bpm`,function(e){C.tempBpm=e}),C.commitBpmChanges=function(){C.setRevisionBpm(C.tempBpm)},C.setRevisionBpm=function(e){setTimeout(function(){if(e===f.current.metronome.bpm||s.hasUneditableTrack())return;let t=f.current.tracks.flatMap(e=>e.regions);if(w)return;let n=C.revision.metronome.bpm;p.hasRevisionChanges=!0,c.pushUndo(f.current),m.updateBpm(e),C.$applyAsync(),!s.areMidiRegions(t)&&(w=!0,m.openAskToStretchRevisionModal(n,e).finally(()=>{w=!1,C.$applyAsync()}))})},C.setRevisionVolume=function(e){d.current.setMasterVolume(e)},C.setRevisionKey=function(t,r=()=>{}){if(f.current.key?.toLowerCase()===t?.toLowerCase())return;let i=!t||!f.current.key||_.transposeKeys(f.current.key,t)===0||!a()||s.hasUneditableTrack();p.hasRevisionChanges=!0,i?(c.pushUndo(f.current),f.current.key=t,C.$applyAsync()):o();function a(){return f.current.tracks.flatMap(function(e){return s.isTrackTransposable(e)?e.regions:[]}).length}
261function o(){p.isInBackground=!0,c.pushUndo(f.current),X(iP,{tonic:t,cancelFn:r,transposeRevisionFn:()=>{p.isPlaying&&C.togglePlay();var r=l.pushTask(`postProcessAudio`);return e.all([_.transposeRevision(f.current,t),n.convertRevision(f.current,t)]).then(function(){f.current.key=t,l.finishTask(r)})},updateKeyFn:()=>f.current.key=t},{onClose:()=>{p.isInBackground=!1,C.$applyAsync()}})}},C.toggleCycle=i.toggle,C.$on(o.keyDown.toggleCycle,function(){r.isAllowed(`cycle`)&&C.toggleCycle()}),C.toggleRecord=()=>{C.canToggleRecord()&&u.toggleRecord()},C.stop=()=>{u.stop()},C.jumpBack=()=>{d.jumpBack()},C.$on(o.keyDown.toggleRecord,function(){C.toggleRecord()}),C.$on(`MidiMapping:MASTER_RECORD`,function(e,{toggle:t,value:n}){(t||n&&!p.isRecording&&!p.isWaitingCountIn||!n&&(p.isRecording||p.isWaitingCountIn))&&C.toggleRecord()}),C.downloadEveryTrack=function(){return O().then(S.downloadStems)},C.downloadMixdown=function(){return O().then(function(e){x.get({id:e.id,edit:!0}).$promise.then(function(e){S.downloadMixdown(e)})})},C.showRealtimeModal=D;function D(){return(f.current.song.id?Promise.resolve():C.save({publish:!1,pristine:!0,triggeredFrom:`on_invite`})).then(e);function e(){new b({templateUrl:`https://www.bandlab.com/web-app/song/partials/_song-invite-collaborators-9a397df37.html`,contentScope:{song:C.revision.song,user:C.user}}).show()}}function O(){let t=p.hasRevisionChanges||!f.current.song.id,n=l.pushTask(`uploadMeta`),r=l.pushTask(`createMixdown`);return e.resolve(t?C.save({pristine:!0,publish:!1,showSuccess:!1,rewriteUrl:!1}):f.current).then(function(r){return l.finishTask(n),r.isFork||!t&&f.current.mixdown.status===`Ready`?e.resolve(r):S.pollMixdown(r)}).then(function(e){return l.finishTask(r),e}).catch(function(t){return l.flushQueue(),e.reject(t)})}}]}}]).directive(`studioNotificationCenter`,[`$injector`,function(e){return{replace:!0,restrict:`E`,template:`<div class="studio-notification-center-opener"></div>`,link:function(t,n){$(import(`./Cs2G29ar.js`),n[0],t,{$injector:e})}}}]).directive(`projectKeySelector`,[`EditorRevision`,`EditorState`,function(e,t){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(n,r){let i=h({setIsInBackground:e=>t.isInBackground=e,setRevisionKey:n.setRevisionKey,revisionKey:e.current.key});n.$watch(()=>e.current.key,()=>{i.revisionKey=e.current.key}),$(import(`./Bm1JqBZq.js`),r[0],n,{},i)}}}]).directive(`musicalTypingToggleButton`,[`$injector`,`EditorState`,`Soundbank`,function(e,t,n){return{replace:!0,restrict:`E`,link:function(r,i){$(import(`./BjI9am1z.js`).then(e=>e.n),i[0],r,{$injector:e,scope:r,EditorState:t,Soundbank:n})}}}]),angular.module(`bandlab.editor`).directive(`mixEditorToolbarBeatsDisplay`,[`$filter`,`EditorState`,function(e,t){return{replace:!0,restrict:`E`,template:`<div class="mix-editor-toolbar-beats-display" ng-class="{ recording: state.isRecording }" ng-bind-html="state.crTime | timeToBeats: revision.metronome"></div>`,link:function(n,r){var i=e(`timeToBeats`),a;function o(){var e=i(t.crTime,n.revision.metronome);a!==e&&(r[0].innerHTML=e),a=e}Q.add(`playing`,o),n.$on(`$destroy`,function(){Q.remove(`playing`,o)})}}}]).filter(`timeToBeats`,function(){return function(e,t){var n=e/en(t)+1,r=(n-Math.floor(n))*t.signature.notesCount+1;return n=`${Math.floor(Math.max(n,0))}`.padStart(3,0),r=Math.floor(r),` 262 <span class="bars">${n}<span class="unit">bar</span></span> 263 <span class="beats">${r}<span class="unit">beat</span></span> 264 `}}),angular.module(`bandlab.editor`).directive(`mixEditorToolbarMasteringButton`,[`$injector`,`EditorRevision`,`EditorState`,function(e,t,n){return{replace:!0,restrict:`E`,template:`<div style="margin-left: auto;"></div>`,link:function(r,i){function a(){if(n.currentActiveTab===`Mastering`){r.studioMasteringState.onAttemptCloseSideTab(t.current,r);return}r.toggleTab(`Mastering`),r.$applyAsync(),wa({attribution:`studio`})}let o=h({editorState:n,studioMasteringState:r.studioMasteringState,onToggleMasteringSidetab:a});$(import(`./CJ4ldMds.js`),i[0],r,{$injector:e,scope:r},o)}}}]),angular.module(`bandlab.editor`).directive(`mixEditorToolbarTimeDisplay`,[`$f
264ilter`,`EditorState`,function(e,t){return{replace:!0,restrict:`E`,template:`<span class="mix-editor-toolbar-time-display" ng-class="{ recording: state.isRecording }" ng-bind="state.crTime | soundTime: true: true"></span>`,link:function(n,r){var i=e(`soundTime`),a;function o(){var e=i(t.crTime,!0,!0);a!==e&&(r[0].firstChild.nodeValue=e),a=e}Q.add(`playing`,o),n.$on(`$destroy`,function(){Q.remove(`playing`,o)})}}}]),angular.module(`bandlab.editor`).directive(`mixEditorTrack`,[`$compile`,`$injector`,`$rootScope`,`DrumMachine`,`DrumMachineState`,`EditorAutomation`,`EditorHelper`,`EditorPlayer`,`EditorRevision`,`EditorState`,`EditorTimeline`,`EditorTrack`,function(e,t,n,r,i,a,o,s,c,l,u,d){return{replace:!0,transclude:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-track-da9db340b.html`,link:function(t,a){let f=a[0].querySelector(`.mix-editor-track-inner`);t.$on($c,m),f.addEventListener(`mouseup`,h,!1),f.addEventListener(`touchstart`,g,!1);let p;f.addEventListener(`contextmenu`,e=>{p=e.offsetX}),t.$watch(()=>t.isTrackBeingDragged(t.track.id),e=>t.trackDragged=e);function m(n,r){if(!l.isRecording||!d.isArmed(t.track)||d.isArmedForAutomationOnly(t.track))return;let i=Object.assign(t.$new(!0),r,{state:t.state,track:t.track,isCompingAvailable:o.isAudioTrack(t.track)}),s=e(`<mix-editor-recording-region></mix-editor-recording-region>`)(i);a.append(s);let c=e(`<mix-editor-record-take-placeholder></mix-editor-record-take-placeholder>`)(i);a.append(c);let u=t.$on(Mc,function(){s.remove(),c.remove(),i.$destroy(),u()})}async function h(e){if(!(e.which!==1||e.target!==f||l.isPlaying||l.isAreaSelecting||l.isMovingRegions)){if(t.canCreateMidiRegion()){e.detail===1&&(_(e.clientX),n.$broadcast(Zc)),e.detail===2&&await t.createMidiRegion(e.offsetX),t.$digest(),t.$applyAsync();return}_(e.clientX),t.$applyAsync()}}function g(e){e.which!==0||e.touches.length>1||l.isPlaying||_(e.touches[0].clientX)}t.canCreateMidiRegion=function(){return!uc(t.track)&&(!oc(t.track)||!r.isSelectedPatternEmpty())},t.createMidiRegion=async function(e=p){if(!t.canCreateMidiRegion()||!e)return;let r=en(c.current.metronome),a=Math.floor(e/l.scalePx/r)*r,d;d=t.track.type===`drum-machine`?await u.createDrumMachineRegion(c.selectedTrack,i.selectedPatternIndex,a):u.createEmptyRegion(t.track,{time:a,endTime:a+r}),s.setPlaybackPosition(a),Q.start(`syncVolume`),t.track.type===`drum-machine`?o.displayInstrument({toggle:!1}):(o.displayMidiEditor({toggle:!1}),setTimeout(()=>{t.$apply(()=>{n.$broadcast(`MixEditorPanel:AdjustRegionWidth`,d)})},200)),await s.updateSourcesInTracksAsync()};function _(e){e-=a[0].getBoundingClientRect().left,e=l.isTimeRuler?e:o.snapToGrid(e,l.snapDuration*l.scalePx,{}),e=Math.min(e/l.scalePx,Z.SONG_DURATION_MAX),s.setPlaybackPosition(e),Q.start(`syncVolume`)}},controller:[`$scope`,function(e){let{requireStudioMembership:n}=Eo(t);e.toggleShowTakeLanes=async()=>{await n(`studio_comping`,`studio`)&&(c.current.tracks.forEach(t=>{if(t.id===e.track.id){t._showTakeLanes=!(t._showTakeLanes&&!d.isTrackCollapsed(e.revision.id,e.track.id)),t._showTakeLanes&&d.isTrackCollapsed(e.revision.id,e.track.id)&&d.uncollapseTrack(e.revision.id,e.track.id);return}t._showTakeLanes=!1}),c.current.tracks.some(e=>e._showTakeLanes)&&a.setAutomationVisible(!1),Q.start(`updateArrangementView`,!1,{},!1,!0))},e.isShowingTakeLanes=()=>e.track._showTakeLanes&&!d.isTrackCollapsed(e.revision.id,e.track.id),e.clipboard=Zs,e.isSelected=()=>c.selectedTrack===e.track,e.isSelectedTrack=function(){return c.selectedTrack?.id===e.track.id}}]}}]).directive(`mixEditorTakeLane`,[`$injector`,`EditorHelper`,`EditorState`,function(e,t,n){return{replace:!0,restrict:`E`,link:function(r,i){let a=h({takeLane:{...r.takeLane},takeList:kA(r.track,r.takeLane.index,{EditorHelper:t}),scalePx:n.scalePx});r.$watch(()=>{a.takeLane={...r.takeLane},a.takeList=kA(r.track,r.takeLane.index,{EditorHelper:t}),a.scalePx=n.scalePx,a.hasSoloTrack=n.hasSoloTrack}),$(import(`./BjonLhyl.js`),i[0],r,{$injector:e},a)}}}]).directive(`trackGroupRegionsCombined`,[`EditorRevision`,`EditorState`,`EditorTrack`,function(e,t,n){return{restrict:`E`,replace:!0,template:`<div 265 class="track-group-regions studio-accent-color-{{ _getDSGroupColor() }}" 266 ng-class="{ 267 'is-muted': isGroupMuted(), 268 }" 269 ></div>`,link:function(r,i){r._getDSGroupColor=()=>{let t=e.current.trackGroups.find(e=>e.id===r.trackGroupId)?.colorName||`blue`;return r.colorNameToDSColor(t)};let a=h({regionsInGroup:s(),isCollapsed:o(),scalePx:t.scalePx});r.$watch(s,e=>
269a.regionsInGroup=e,!0),r.$watchGroup([o,`state.scalePx`],([e,t])=>{a.isCollapsed=e,a.scalePx=t}),r.isGroupMuted=()=>{let n=e.current.tracks.filter(e=>e.trackGroupId===r.trackGroupId);return n.every(e=>e.isMuted)||!n.some(e=>e.isSolo)&&t.hasSoloTrack};function o(){return n.isGroupCollapsed(e.current.id,r.trackGroupId)}function s(){return o()?e.current.tracks.filter(e=>e.trackGroupId===r.trackGroupId).flatMap(e=>e.regions).map(e=>[e.startPosition,e.endPosition]).sort((e,t)=>e[0]-t[0]):[]}$(import(`./Dmgrs6t6.js`),i[0],r,{},a)}}}]),angular.module(`bandlab.editor`).directive(`mixEditorTrackDropFile`,[`$compile`,`$injector`,`editorEvents`,`EditorHelper`,`EditorState`,`EditorTimeline`,function(e,t,n,r,i,a){return{restrict:`A`,link:function(o,s){let c=angular.element(` 270 <div class="mix-editor-region-ghost"> 271 <div class="mix-editor-region-audio-to-midi-label"> 272 <icon-svg 273 ng-if="!state.availableFeaturesSet.has('audio-to-midi')" 274 name="product-membership" 275 aria-label="Membership Exclusive" 276 class="color-membership" 277 size="12" 278 ></icon-svg> 279 Drop audio here to convert to MIDI 280 </div> 281 </div> 282 `),l=Gn(()=>HS(t),o),u=e(c)(o),d=angular.element(s[0].querySelector(`.mix-editor-track-inner`));s.bind(`drop`,function(e){if(VS(e)){l.handleDropTrack(e);return}var t=e.dataTransfer.files,r={time:p(e.offsetX)/i.scalePx,track:o.track};if(f(),e.preventDefault(),e.stopPropagation(),oc(o.track)&&$s.type===`drum_machine_pattern`&&$s.value.trackId===o.track.id){a.createDrumMachineRegion(o.track,$s.value.patternIndex,r.time);return}if(t.length){o.$emit(n.importFile,Object.assign(r,{file:t[0],type:t[0].type}));return}o.$emit(n.importFile,Object.assign(r,$s.value))}),s.bind(`dragover`,function(e){if(e.preventDefault(),e.stopPropagation(),VS(e)){l.handleDragOverTrack(e,{track:o.track});return}let{value:t}=$s;if(t.type===`track`){u.css(`visibility`,`hidden`),o.$applyAsync();return}let n=o.track.patterns;if($s.type===`drum_machine_pattern`){o.track.id===t.trackId?e.dataTransfer.dropEffect=`copy`:s(n?`not-supported-track`:`not-drum-machine`),u.css(`visibility`,`visible`),u.css(`left`,`${p(e.offsetX)}px`);return}let i=r.isAudioTrack(o.track);if(Qs($s)){i||s(`not-audio`),u.css(`visibility`,`visible`),u.css(`left`,`${p(e.offsetX)}px`);return}let a=r.isVirtualInstrumentTrack(o.track);if(!Ks($s)&&e.dataTransfer.items[0]){let t=e.dataTransfer.items[0].type,r=Zr.mid.includes(t),{mid:a,...o}=Zr,c=Object.values(o).flat().includes(t),l=t.includes(`video`);(r&&i||c&&!i||l&&!i||n)&&s(`not-supported-track`)}else!i&&t.type===`audio`&&!a?s(`not-supported-track`):a&&t.type===`audio`?u.addClass(`is-audio-to-midi-ghost`):e.dataTransfer.types.includes(`Files`)&&o.track.patterns?s(`not-supported-track`):t.type===`audio`&&!o.track.soundbank&&(e.dataTransfer.dropEffect=`copy`);u.css(`visibility`,`visible`),u.css(`left`,`${p(e.offsetX)}px`);function s(t){u.addClass(`disallow ${t}`),e.dataTransfer.dropEffect=`none`}}),s.bind(`dragenter`,function(e){if(e.preventDefault(),e.stopPropagation(),window.removeEventListener(`dragend`,f),window.addEventListener(`dragend`,f),!VS(e)&&(s.addClass(`dropping`),!e.target.classList.contains(`mix-editor-region`))){d.append(u),u.removeClass(`disallow not-audio not-midi not-drum-machine not-supported-track is-audio-to-midi-ghost`);let t=$s.value.duration;$s.value.bpm&&$s.value.bpm!==o.revision.metronome.bpm&&(t=t*$s.value.bpm/o.revision.metronome.bpm),u.css({left:`${p(e.offsetX)}px`,width:`${t*i.scalePx}px`})}}),s.bind(`dragleave`,function(e){if(VS(e)){l.handleDragLeaveTrack(e);return}e.target.classList.contains(`mix-editor-region`)||e.target.classList.contains(`mix-editor-track-inner`)||f()});function f(){s.removeClass(`dropping`),u.remove(),u.removeClass(`disallow`),u.css(`width`,null),window.removeEventListener(`dragend`,f)}function p(e){var t=Math.floor(e/i.scalePx/i.snapDuration)*i.snapDuration*i.scalePx;return i.isSnapping?t:e}}}}]),angular.module(`bandlab.editor`).directive(`mixEditorTrackGrid`,[`EditorGrid`,`EditorState`,function(e,t){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-track-grid-57bb17a58.html`,link:function(n){var r=document.getElementById(`mix-editor-track-grid-pattern`),i=document.getElementById(`mix-editor-track-highlight-pattern`);n.$watchGroup([`state.snapSetting`,`state.isTimeRuler`,`state.isTripletGrid`],a),Q.add(`scale:timeline`,a);function a(){(t.snapSetting.value===1||t.snapSetting.value===0)&&t.isTripletGrid&&(t.isTripletGrid=!1),e.updateTrackGrid({gridPattern:r,highlightPattern:i})}}}}]);const aP={class:`mix-editor-take-lane-header`},oP={class:`take-lane-header-index`};var sP=V({__name:`MixEditorTakeLaneHeader`,props:{takeLane:{}},setup(e){return(t,n)=>(F(),G(`div`,aP,[K(`span`,oP,y(e.takeLane.index+1),1)]))}});angular.module(`bandlab.editor`).directive(`mixEditorTrackHeaderInstrument`,[`$injector`,function(e){return{restrict:`C`,link:function(t,n){$(import(`./BNz1DZbC.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`volumeSlider`,[`$injector`,function(e){return{restrict:`E`,replace:!0,template:`<div></div>`,link:function(t,n){$(import(`./DiUycfRf.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`panKnob`,[`$injector`,function(e){return{restrict:`E`,replace:!0,template:`<div></div>`,link:function(t,n){$(import(`./D0dOQGmk.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`mixEditorTrackHeaderGroup`,[`$timeout`,`EditorRevision`,`EditorTrack`,`Me`,function(e,t,n,r){return{restrict:`E`,transclude:!0,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-track-header-group-2099b8f6b.html`,link:function(i,a){let{availableFeaturesSet:o}=qn(i,r);function s(){return i.$parent.e.item}i.getGroupFromScope=s,i.isGroupMuted=()=>h().every(e=>e.isMuted),i.isGroupSoloed=()=>h().every(e=>e.isSolo),i.isNoSoloInGroup=()=>h().every(e=>!e.isSolo),i.toggleMuteAllTracksInGroup=()=>n.toggleMuteTracks(h()),i.toggleSoloAllTracksInGroup=e=>{if(e.altKey){n.toggleExclusiveSoloTracks(h());return}n.toggleSoloTracks(h())},hn||(a.on(`pointerdown`,l),a.on(`dragend`,p),angular.element(a[0].querySelector(`.track-header-group-header`)).on(`dragover`,f)),i.moveGroup=e=>n.moveGroup(s(),e);function c(e){i.fireAutoscroll(a[0],e)}function l(e){(e.target===a[0]||e.target===a[0].querySelector(`.mix-editor-track-header-inner`)||e.target===a[0].querySelector(`.mix-editor-track-header-name`))&&(a[0].draggable=!0,a.on(`dragstart`,d),document.addEventListener(`dragover`,c,{passive:!1}),document.addEventListener(`pointerup`,u))}function u(){i.resetDragState(),i.endAutoscroll(),a[0].draggable=!1,document.removeEventListener(`dragover`,c),document.removeEventListener(`pointerup`,u)}function d(e){e.target!==a[0].querySelector(`.mix-editor-track-header-name input`)&&(a.off(`dragstart`,d),i.onDragStartOnItem(e,{kind:`trackGroup`,item:s()}),i.$applyAsync())}function f(e){i.onDragOverOnItem(e,i.revision.id,{kind:`trackGroup`,item:s()}),i.$applyAsync()}function p(){i.onDragEndOnItem(),u(),e(function(){Q.start(`anticipateScrollLayoutShift:tracksTo
282p`)})}i.toggleCollapseGroup=e=>{let{id:r,tracks:a}=s(),o=a.map(e=>e.id);if(e.altKey){n.toggleCollapseAllTracksAndGroups(`trackGroup`,r);return}n.toggleCollapseGroup(i.revision.id,r),n.isGroupCollapsed(i.revision.id,r)&&(t.selectedRegions=new Set([...t.selectedRegions].filter(e=>!o.includes(e.trackId))),o.includes(t.selectedTrack?.id)&&n.setSelected(null))},i.$watch(()=>i.revision.trackGroups.find(e=>e.id===s().id),e=>{let t=e||s();i.groupColor=i.colorNameToDSColor(t.colorName),i.colorName=t.colorName,i.name=t.name},!0);let m;i.focusNameInput=()=>{o.value.has(`group-tracks`)&&(a[0].querySelector(`.mix-editor-track-header-name input`).focus(),a[0].querySelector(`.mix-editor-track-header-name input`).select())},i.onNameFocus=()=>{m=i.name},i.onNameBlur=()=>{if(!o.value.has(`group-tracks`)){i.name=m;return}let e=i.name||m;e!==m&&n.updateGroupName(i.revision.trackGroups,s().id,e)},i.setGroupColor=e=>n.updateGroupColor(i.revision.trackGroups,s().id,e),i.ungroup=()=>{n.ungroup(i.revision.trackGroups,s().id),import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActions:e})=>e(`ungroup`))},i.applyGroupColorToTracks=()=>{h().forEach(e=>{let{hex:t}=i.trackColors.find(e=>e.name===i.colorName);e.color=t,e.colorName=i.colorName})};function h(){let e=s().tracks.map(e=>e.id);return t.current.tracks.filter(t=>e.includes(t.id))}}}}]).directive(`mixEditorTrackHeader`,[`$analytics`,`$injector`,`$rootScope`,`$timeout`,`EditorAutomation`,`editorEvents`,`EditorHelper`,`EditorHistory`,`EditorMixdown`,`EditorPlayer`,`EditorRevision`,`EditorState`,`EditorTimeline`,`EditorTrack`,`EffectsPreset`,`Me`,`Soundbank`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g){return{replace:!0,transclude:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-track-header-ec6f38970.html`,link:function(e,c){let{availableFeaturesSet:l}=qn(e,h),m=Gn(()=>HS(t),e),g;e.toggleShowTakeLanes=async()=>{let{requireStudioMembership:n}=Eo(t);await n(`studio_comping`,`studio`)&&(u.current.tracks.forEach(t=>{if(t.id===e.track.id){t._showTakeLanes=!e.isShowingTakeLanes(),t._showTakeLanes&&p.isTrackCollapsed(e.revision.id,e.track.id)&&p.uncollapseTrack(e.revision.id,e.track.id);return}t._showTakeLanes=!1}),u.current.tracks.some(e=>e._showTakeLanes)&&i.setAutomationVisible(!1),Q.start(`updateArrangementView`,!1,{},!1,!0))},e.hasDeleteTakesOption=()=>o.isAudioTrack(e.track)&&e.track.regions.some(e=>e.takeList&&e.takeList.length>1)&&l.value.has(`comping`),e.hasShowTakeLanesOption=()=>e.track.regions.some(e=>e.takeList&&e.takeList.length>1),e.deleteTakes=async()=>{await f.deleteTakesForTrack(e.track.id),n.$applyAsync(),import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActions:e})=>{e(`remove_all_takes`)})},e.isShowingTakeLanes=()=>e.track._showTakeLanes&&!p.isTrackCollapsed(e.revision.id,e.track.id),e.createGroupFromTrack=async()=>{let{requireStudioMembership:n}=Eo(t);await n(`studio_group_tracks`,`studio`)&&(p.createGroupFromTrack(e.revision.trackGroups,e.track,`Group`,e.track.colorName),import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActions:e})=>{e(`create_group_from_track`)}))},e.addTrackToGroup=t=>{let n=e.track.trackGroupId;p.addTrackToGroupAtIndex(e.revision,t.id,e.track,-1,!0),import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActionsMoveTrackFromGroup:t})=>{t(u.current.tracks,e.track.id,n,!0)})},e.listAvailableGroups=()=>p.listAvailableGroups(e.revision,e.track.trackGroupId),e.setTrackColor=t=>{e.track.colorName!==t.name&&(e.track.color=t.hex,e.track.colorName=t.name,import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActions:e})=>
282e(`color_adjust`)))},e.formatTrackIndex=()=>`${e.revision.tracks.findIndex(t=>t.id===e.track.id)+1}`.padStart(2,`0`),hn||(c.on(`mousedown`,_),c.on(`dragover`,y),c.on(`dragend`,x),c.on(`drop`,e=>m.handleDropTrack(e)),c.on(`dragleave`,e=>m.handleDragLeaveTrack(e)));function _(e){(e.target===c[0]||e.target===c[0].querySelector(`.mix-editor-track-header-inner`)||e.target===c[0].querySelector(`.mix-editor-track-header-name`)||e.target===c[0].querySelector(`.mix-editor-track-header-index`))&&(c[0].draggable=!0,c.on(`dragstart`,v),document.addEventListener(`dragover`,b,{passive:!1}),document.addEventListener(`mouseup`,S))}function v(t){t.target!==c[0].querySelector(`.mix-editor-track-header-name input`)&&(c.off(`dragstart`,v),e.onDragStartOnItem(t,{kind:`track`,item:e.track}),e.$applyAsync())}function y(t){m.handleDragOverTrack(t,{track:e.track}),e.onDragOverOnItem(t,e.revision.id,{kind:`track`,item:e.track}),e.$applyAsync()}function b(t){e.fireAutoscroll(c[0],t)}function x(){e.onDragEndOnItem(),S(),r(function(){Q.start(`anticipateScrollLayoutShift:tracksTop`)})}function S(){e.resetDragState(),e.endAutoscroll(),c[0].draggable=!1,document.removeEventListener(`dragover`,b),document.removeEventListener(`mouseup`,S)}e.selectFile=function(){return pr({accept:`audio/*`}).then(function(t){e.$emit(a.importFile,{file:t[0],track:e.track})})},e.focusTrackName=function(){c[0].querySelector(`.mix-editor-track-header-name input`).focus(),c[0].querySelector(`.mix-editor-track-header-name input`).select()},e.onTrackNameFocus=function(){g=e.track.name},e.onTrackNameChange=function(){let t=e.track.name||g;t!==g&&(e.track.name=g,s.pushUndo(u.current),d.hasRevisionChanges=!0,import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMixerActions:e})=>{e(`rename_track`)})),e.track.name=t}},controller:[`$scope`,function(t){t.duplicateTrack=function(){p.duplicateTrack(t.track),Q.start(`anticipateScrollLayoutShift:tracksTop`)},t.displayPresetSettings=()=>o.displayPresetSettings({toggle:!1}),t.isArmed=()=>p.isArmed(t.track),t.toggleSolo=(e={})=>{if(e.altKey){p.toggleExclusiveSolo(t.track);return}p.toggleSolo(t.track)},t.toggleMute=()=>p.toggleMute(t.track),t.openAudioInput=()=>o.displayInstrument({toggle:!1}),t.$on(a.keyDown.soloTrack,function(){t.isSelected()&&t.toggleSolo()}),t.$on(a.keyDown.muteTrack,function(){t.isSelected()&&t.toggleMute()});let n=Fa(function(){s.pushUndo(u.current)},1e3,{leading:!0,trailing:!1});t.$on(`MidiMapping:TRACK_MUTE`,function(e,{trackId:r,value:i,toggle:a}){r===t.track.id&&(n(),a?p.toggleMute(t.track):i?p.mute(t.track):p.unmute(t.track),t.$applyAsync())}),t.$on(`MidiMapping:TRACK_SOLO`,function(e,{trackId:r,value:i,toggle:a}){r===t.track.id&&(n(),a?p.toggleSolo(t.track):i?p.solo(t.track):p.unsolo(t.track),t.$applyAsync())}),t.current=g.getCurrent(),t.hasPreset=()=>{let e=t.getTrack();return m.getTrackPresetDisplay(e).displayKind!==`fallback`||e.preset===`custom`},t.getTrackPresetDisplay=()=>m.getTrackPresetDisplay(t.getTrack()),t.getTrackPresetDisplayNonOneVersionNumber=()=>{let e=m.getTrackPresetDisplay(t.getTrack());if(e&&e.version!==1)return e.version},t.presetIsDifferentFromTrackEffectChain=()=>{let e=m.getTrackPresetDisplay(t.getTrack());return`isDifferentFromTrackEffectChain`in e&&e.isDifferentFromTrackEffectChain},t.getTrack=function(){return t.track},t.setTrackVolume=function(e){l.current.setTrackVolume(t.track,e)},t.$on(`MidiMapping:TRACK_VOLUME`,function(e,{trackId:r,volume:i,toggle:a,min:o,max:s,crTime:c}){r===t.track.id&&(n(),a?t.track.volume=t.track.volume>o?o:s:t.track.volume=i,t.setTrackVolume(t.track.volume),Q.start(`syncVolume`),d.isRecording&&d.isRecordingAutomation&&Ct(t.track.automation.volume,c,t.track.volume))}),t.setTrackPan=function(e){l.current.setTrackPan(t.track,e)},t.$on(`MidiMapping:TRACK_PAN`,function(e,{pan:r,trackId:i,toggle:a,min:o,max:s,crTime:c}){i===t.track.id&&(n(),a?t.track.pan=t.track.pan>o?o:s:t.track.pan=r,t.setTrackPan(t.track.pan),Q.start(`syncVolume`),d.isRecording&&d.isRecordingAutomation&&Ct(t.track.automation.pan,c,t.track.pan))}),t.$on(`MidiMapping:TRACK_FXMIX`,function(e,{fxMix:r,trackId:i,toggle:a,min:o,max:s,crTime:c}){i===t.track.id&&(n(),a?t.track.fxMix=t.track.fxMix>o?o:s:t.track.fxMix=r,l.current.setTrackFxMix(t.track,t.track.fxMix),Q.start(`syncVolume`),d.isRecording&&d.isRecordingAutomation&&Ct(t.track.automation.fxMix,c,t.track.fxMix))}),t.hasTrackAutomation=function(){return t.track.automation.volume.length>0||t.track.automation.pan.length>0||t.track.automation.fxMix.length>0||i.getAutomatableParameters(t.track.effects).some(function(e){return e.automation.length})},t.isSelected=function(){return u.selectedTrack===t.track},t.downloadTrackAsWav=function(){return d.isPlaying&&t.togglePlay(),p.downloadTrackMixdown(t.track)},t.downloadTrackAsMid=function(){return c.renderTrackToMidi(t.track,u.current).then(function({blob:e}){xr(e,`${t.track.name||`MIDI Track`}.mid`)})},t.toggleFreeze=function(t){t.isFrozen?(e.eventTrack(`Unfreeze Track`,{category:`Mix Editor`}),p.unfreezeTrack(t,!0)):(e.eventTrack(`Freeze Track`,{category:`Mix Editor`}),p.freezeTrack(t,!0))}}]}}]).directive(`mixEditorTakeLaneHeader`,function(){return{replace:!0,restrict:`E`,link:function(e,t){$(sP,t[0],e,{},{id:e.takeLane.id,takeLane:e.takeLane})}}}).directive(`mixEditorAutomationMenu`,[`$injector`,`$rootScope`,`EditorAutomation`,`EditorRevision`,function(e,t,n,r){return{replace:!0,restrict:`E`,template:`<div class="mix-editor-track-header-automation"></div>`,link:function(i,a){let o=h({setAutomationParameter:e=>{r.trackAutomationParameters.set(i.track,e),t.$applyAsync()},automatableParameters:n.getAutomatableParameters(i.track.effects),selectedParam:s(),trackAutomation:i.track.automation,availableFeaturesSet:Eo(e).availableFeaturesSet,trackColor:OS(i.track.colorName)});i.$watchGroup([`track.automation`,s],()=>{o.selectedParam=s(),o.trackAutomation=i.track.automation}),i.$watch(`track.colorName`,()=>{o.trackColor=OS(i.track.colorName)}),i.$watch(()=>n.getAutomatableParameters(i.track.effects),()=>{o.automatableParameters=n.getAutomatableParameters(i.track.effects)},!0);function s(){let e=r.trackAutomationParameters.get(i.track);return[`pan`,`sendLevel`,`volume`,`fxMix`].includes(e)?{pan:ln,sendLevel:st,volume:lt,fxMix:an}[e]:e||lt}$(import(`./D2TWJfW5.js`),a[0],i,{$injector:e},o)}}}]),angular.module(`bandlab.editor`).directive(`mixEditorTrackPlaceholder`,[`editorEvents`,`EditorRevision`,`EditorScrollState`,`EditorState`,`EditorTrack`,function(e,t,n,r,i){return{replace:!0,restrict:`E`,template:[`<div class="mix-editor-track-placeholder" ng-class="{ hidden: getPlaceholderHidden(), 'mix-editor-track': dropping, 'mix-editor-track-drop-top': shouldShowDropTopOnPlaceholder() }" ng-click="onClickPlaceholder()">`,`<icon-svg ng-if="!dropping" name="note-plus" size="28"></icon-svg>`,`<span ng-if="!dropping">Drop a loop or an audio/MIDI/video file</span>`,`</div>`].join(``),link:function(a,o){var s=angular.element(`<div class="mix-editor-region-ghost"></div>`);a.dropping=!1;function c(e){if(e+n.timelineEl.clientWidth-12>r.containerWidth){let t=e+n.timelineEl.clientWidth-r.containerWidth;e-=t-12}o[0].style.transform=`translate3d(${e}px, 0, 0)`}
282function l(t,i,o){a.$emit(e.importFile,{file:t,time:(n.timelineEl.scrollLeft+i)/r.scalePx,multiple:o})}a.getPlaceholderHidden=i.isAddTrackDisabled,a.onClickPlaceholder=function(){if(i.shouldNotifyTrackLimit()){i.notifyTrackLimit();return}return pr({accept:`audio/*`,multiple:!0}).then(function(e){e.forEach(t=>l(t,0,e.length>1))})},Q.add(`scroll:timelineLeft`,c),o.bind(`mousedown`,function(e){e.stopPropagation()});function u(e){a.dropping=e;let t;a.dropping?(document.body.style.setProperty(`--mix-editor-track-placeholder-visible`,`1`),document.querySelector(`.mix-editor-track-header-placeholder`).classList.add(`dropping`),document.querySelector(`.mix-editor-playhead`).style.pointerEvents=`none`,document.querySelector(`.mix-editor-auto-mix`)?.classList.add(`below-placeholder`),document.querySelector(`.mix-editor-auto-mix-track-spacer`)?.classList.add(`below-placeholder`),t=n.timelineLeft-Math.min(12,n.timelineLeft)):(document.body.style.setProperty(`--mix-editor-track-placeholder-visible`,`0`),document.querySelector(`.mix-editor-track-header-placeholder`).classList.remove(`dropping`),document.querySelector(`.mix-editor-playhead`).style.pointerEvents=`unset`,document.querySelector(`.mix-editor-auto-mix`)?.classList.remove(`below-placeholder`),document.querySelector(`.mix-editor-auto-mix-track-spacer`)?.classList.remove(`below-placeholder`),t=n.timelineLeft),document.querySelector(`.mix-editor-auto-mix`)&&Q.start(`anticipateScrollLayoutShift:tracksTop`),a.$applyAsync(()=>{c(t)})}o.on(`drop`,function(o){if(f(),o.preventDefault(),o.stopPropagation(),i.shouldNotifyTrackLimit()){i.notifyTrackLimit();return}let s=d(o.offsetX)+Math.min(12,n.timelineLeft);if(o.dataTransfer.files.length){Array.from(o.dataTransfer.files,e=>l(e,s,o.dataTransfer.files.length>1));return}let c=r.scalePx;Ks($s)&&$s.value.bpm&&t.current.metronome.pristine&&!r.songDuration&&(c=Po(r.scale*2,$s.value.bpm)),a.$emit(e.importFile,Object.assign({time:p(n.timelineEl.scrollLeft+s)/c},$s.value))}),o.on(`dragover`,function(e){if(e.preventDefault(),e.stopPropagation(),VS(e)||$s.type===`drum_machine_pattern`||Xs($s)){e.dataTransfer.dropEffect=`none`;return}s.css(`visibility`,`visible`),s.css(`left`,`${d(e.offsetX)}px`)}),o.on(`dragenter`,e=>{if(e.preventDefault(),e.stopPropagation(),!(VS(e)||$s.type===`drum_machine_pattern`||Xs($s))&&(u(!0),window.removeEventListener(`dragend`,f),window.addEventListener(`dragend`,f),!e.target.classList.contains(`mix-editor-region-ghost`))){o.append(s),s.removeClass(`disallow not-audio not-midi not-drum-machine`);let t=$s.value.duration;$s.value.bpm&&$s.value.bpm!==a.revision.metronome.bpm&&(t=t*$s.value.bpm/a.revision.metronome.bpm),s.css({left:`${d(e.offsetX)}px`,width:`${t*r.scalePx}px`})}}),o.on(`dragleave`,e=>{e.target.classList.contains(`mix-editor-region-ghost`)||f()});function d(e){let t=n.timelineLeft-Math.min(12,n.timelineLeft);return p(t+e)-t}function f(){u(!1),s.remove(),s.removeClass(`disallow`),s.css(`width`,null),window.removeEventListener(`dragend`,f)}function p(e){var t=Math.floor(e/r.scalePx/r.snapDuration)*r.snapDuration*r.scalePx;return r.isSnapping?t:e}}}}]);function cP(e,t,n){for(var r=-1,i=e.length;++r<i;){var a=e[r],o=t(a);if(o!=null&&(s===void 0?o===o&&!Se(o):n(o,s)))var s=o,c=a}return c}function lP(e,t){return e<t}function uP(e){return e&&e.length?cP(e,Ni,lP):void 0}angular.module(`bandlab.editor`).directive(`mixEditorTracks`,[`$injector`,`$rootScope`,`AppNotifications`,`DrumMachine`,`EditorAllowActions`,`EditorAutomation`,`editorEvents`,`EditorHelper`,`EditorHistory`,`EditorPlayer`,`EditorRevision`,`EditorScroll`,`EditorScrollState`,`EditorState`,`EditorTimeline`,`EditorTrack`,`EditorView`,`EffectsPreset`,`Katnip`,`MidiEditor`,`MidiEditorState`,`Soundbank`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let{checkCanPasteClipboardRegionsToTrack:S,pasteRegionsFromClipboardToTrack:C}=Yk(e);function w(e){return u.selectedRegions.has(e)}return{restrict:`A`,link:function(t,i){let o=i[0].closest(`.mix-editor-panel-track`)?b:p,_=i[0].parentElement,v={x:0,y:0},y=0,S,C,T,E,D=angular.noop,O=null;
282function k(){let e=c.cloneRevision(u.current);O=e,D=we(()=>{c.pushUndo(e)})}function A(){for(let[e,t]of Us.entries()){let n=!!e._trackId&&e._trackId!==t.trackId,r=At(e.startPosition)!==At(t.startPosition);if(n||r)return!0}return!1}function j(e){let n=aO(Array.from(u.selectedRegions),`startPosition`);if(!n[0])throw Error(`No regions selected`);let r=u.current.tracks.reduce(function(e,t){return e[t.id]=t,e},{}),i=n.reduce(function(e,t){return e[t.id]=t.startPosition,e},{}),s=Math.max(...n.map(e=>e.endPosition));n.forEach(function(e){let t=r[e.trackId];t&&(e.automation=a.getAutomationInRange(t,e.startPosition,e.endPosition))});let c=uP(Object.values(i)),l=MS(t.revision.tracks,{id:n[0].trackId}),d=I(t.revision);return{altKey:e.altKey,firstPosition:c,firstTrack:l,lastPosition:s,originalSelectedRegions:ul(n),possibleOffsets:N(t.revision,d),scalePx:o.scalePx,selectedRegions:n,startPositions:i,tracksById:r}}function M(e,t){let n=_.getBoundingClientRect();if(n.top>t)return{up:!0};if(n.top+n.height-20<=t&&n.top+n.height>t)return{down:!0};if(n.left>e)return{left:!0};if(n.left+n.width-37<e)return{right:!0}}function N(e,n){let r=L(e,n),i=R(e,n),a=F(t.revision,n),o=ee(t.revision);return Array.from(Array(i-r+1),(e,t)=>r+t).filter(e=>P(o,a,e))}function P(e,t,n){return n<0?t=t.slice(Math.abs(n),t.length):n>0&&(t=Array(n).fill(!1).concat(t)),t.every((t,n)=>!t||t===e[n])}function F(e,t){return e.tracks.map(e=>t.includes(e))}function ee(e){return e.tracks.map(e=>!!e.canEdit)}function te(e,t,n){return e.tracks.indexOf(t)-e.tracks.indexOf(n)}function I(e){return e.tracks.filter(function(e){return Qm(e.regions,w)})}function L(e,t){let n=e.tracks[0],r=t[0];if(!n)throw Error(`Expected at least one track`);if(!r)throw Error(`Expected at least one track with selected regions`);return te(e,n,r)}function R(e,t){let n=e.tracks[e.tracks.length-1],r=t[t.length-1];if(!n)throw Error(`Expected at least one track`);if(!r)throw Error(`Expected at least one track with selected regions`);return te(e,n,r)}function ne(e,t,n){let r=new Set(t);e.forEach(function(t,i){let a=ja(t.regions,function(e){return r.has(e)&&r.delete(e)}),o=e[i+n];a.length&&o&&(o.regions=o.regions.concat(a),a.forEach(function(e){e._trackId=o.id}))})}function z(e,t){e.tracks.forEach(function(e){t.has(e.id)&&m.moveRegions(e)})}function re(e,t){let n=0;t.selectedRegions.forEach(function(r,i){n=m.moveRegion(r,i,{...t,delta:e,firstRegionSnapped:n},o)})}function B(e){if(e.preventDefault(),e.stopPropagation(),!S||!T)return;S.dragged||(p.isMovingRegions=!0,u.selectedRegions.clear(),S.selectedRegions.forEach(function(t){let n=ul(t);Us.set(n,e.altKey?n:t),n._id=n.id,n.id=ze(),n.isMoving=!0,S?.tracksById[t.trackId]?.regions.push(n),u.selectedRegions.add(n),t===T&&(T.isMoving=!1,T=n)}),S=j(e),qs({type:`region`,value:T})),S.dragged=!0;let{x:n,y:r}=ZN(e),i=n+_.scrollLeft,a=document.elementsFromPoint(n,r).map(e=>e.closest(`.mix-editor-track`)||e.closest(`.audio-editor-track`)).find(Boolean);if(a&&C){let e=MS(t.revision.tracks,{id:a.getAttribute(`data-id`)}),n=te(t.revision,e,C);n-y&&S.possibleOffsets.includes(n)&&(ne(t.revision.tracks,S.selectedRegions,n-y),y=n),re(i-v.x,S),U()}let o=Us.size===1&&G(T),s=e.target instanceof Element&&e.target.closest(`.mix-editor-audio-input`),c=e.target instanceof Element&&e.target.closest(`.audio-input`);if(o||s)document.body.classList.toggle(`is-disallowed`,!1);else{let e=[...Us.keys()].some(e=>!V(e));document.body.classList.toggle(`is-disallowed`,!a||e)}t.$digest(),t.$applyAsync(),clearInterval(E),!c&&(E=setInterval(function(){let e=M(n,r);d.manualScroll(e),t.$digest(),t.$applyAsync()},30))}function V(e){if(!S||!e._trackId)return!0;let t=S.tracksById[e.trackId],n=S.tracksById[e._trackId];return!t||!n?!1:t.patterns&&n.patterns&&t.id===n.id?!0:H(e,n)?!1:s.isAudioRegion(e)&&s.isAudioTrack(n)||s.isMidiRegion(e)&&(s.isVirtualInstrumentTrack(n)||s.isSamplerTrack(n))?!0:!!(s.isVirtualInstrumentTrack(t)&&n.samplerKit||s.isVirtualInstrumentTrack(t)&&s.isVirtualInstrumentTrack(n)||t.samplerKit&&n.samplerKit||t.samplerKit&&s.isVirtualInstrumentTrack(n))}function ie(){if(!S)throw Error(`initialPositions uninitialized`);if(!T)throw Error(`targetModel uninitialized`);let e=S.tracksById[T._trackId||T.trackId];if(!e)throw Error(`Could not find track`);let t=T.sampleId,n=oc(e)&&!!e.patterns.find(e=>e.sampleId===t);if(Us.size>1||!n)return;let i=Us.get(T);(!S.dragged||At(i?.startPosition)===At(T.startPosition))&&(r.selectPatternOfRegion(e,T),s.displayInstrument({toggle:!1}))}function H(e,t){return t&&s.isVirtualInstrumentTrack(t)&&s.isAudioRegion(e)}function ae(r,i,a){let{requireMembership:o,generateMidiRegionFromAudio:s}=ou(e);o(`audio_to_midi`).then(e=>{e&&d()});function d(){if(i.type===`guitar-bass`||i.type===`guitar-electric`){f(`Instrumental`);return}f(null)}function f(e){if(!T)throw Error(`targetModel uninitialized`);c.pushUndo(u.current),c.startToIgnorePushUndo();let o=m.createRegionPlaceholder(a,{duration:T.endPosition-T.startPosition,name:T.name},T.startPosition);o.isProcessing=!0,t.$applyAsync(),s({region:r,selectedAudioType:e,audioRegionTrackType:i.type,newTrackId:a.id,newPositions:T}).then(({region:e,suggestedAudioType:t,suggestedSoundbankSlug:r})=>{if(h.setSelected(a),r){let e=x.getPropertyValue(r,`instrumentSlug`);e&&(a.soundbank=r,a.type=e,x.setFromSoundbank(r,e))}a.regions.push(e),u.selectedRegions=new Set([e]),l.setPlaybackPosition(e.startPosition),n.addNotification({title:`AudioâtoâMIDI applied`,...t&&{content:`${Xu[t]} detected and converted to MIDI.`},classList:`success`,autoclose:5e3})}).catch(()=>
282{c.undo(u.current),c.clearRedo()}).finally(()=>{ja(a.regions,o),t.$applyAsync(),l.updateSourcesInTracksAsync(),c.stopToIgnorePushUndo()})}}function oe(e){qs({}),le(),clearInterval(E),ie(),p.isMovingRegions=!1,document.body.classList.remove(`is-disallowed`),t.$applyAsync();let r=S;if(!T||!r||!e.target||!(e.target instanceof Element)){se();return}let i=[...Us.keys()];if(e.target.closest(`.sampler-pad`)||e.target.closest(`.mix-editor-sampler-editor`)||e.target.closest(`.loops-library-main`)){u.current.tracks.forEach(function(e){e.regions=e.regions.filter(function(e){return!Us.has(e)||!e.isMoving})});return}if(i.some(e=>G(e))){if(Us.size!==1){se(),n.addNotification({title:`One Region at a Time`,content:`Please drag and drop only one region for AudioâtoâMIDI conversion.`,classList:`warning`,autoclose:8e3});return}let e=r.tracksById[T.trackId],t=r.tracksById[T._trackId??``];if(!e)throw Error(`Could not find previous track`);let i=Us.get(T);if(!i)throw Error(`Could not find original moving region`);if(se(),!t)throw Error(`AudioToMidi requires target track`);ae(i,e,t);return}if(i.some(e=>!V(e))){se();return}if(!r.dragged){u.selectedRegions.add(T),T.isMoving=!1;return}let o=r.altKey;if((o||A())&&D(),i.forEach(e=>{if(!o){let t=Us.get(e);if(!t)throw Error(`Could not find original moving region`);e.id=t.id}e.trackId=e._trackId||e.trackId,e.isMoving=!1,delete e._id,delete e._trackId}),!o){let e=[...Us.values()];u.current.tracks.forEach(t=>{t.regions=t.regions.filter(t=>!e.includes(t))})}p.isDraggingRegions=!1,Us.clear(),a.checkConfirmation(o?`copy`:`move`,r.selectedRegions,r).then(function(n){if(!n)return;let{x:i}=ZN(e);v.x<i&&(r.selectedRegions.reverse(),r.originalSelectedRegions.reverse()),r.selectedRegions.forEach(function(e,n){let i=r.originalSelectedRegions[n],o=MS(t.revision.tracks,{id:i.trackId}),s=MS(t.revision.tracks,{id:e.trackId});r.altKey||a.deleteAutomationInRange(o,i.startPosition,i.endPosition),a.deleteAutomationInRange(s,e.startPosition,e.endPosition),a.pasteAutomation(s,e,e.startPosition,o===s)})});let s=new Set([...r.selectedRegions,...r.originalSelectedRegions].map(e=>e.trackId));z(t.revision,s),l.updateSourcesInTracks(),document.body.classList.remove(`is-disallowed`);let c=MS(t.revision.tracks,{id:T.trackId});!p.isRecording&&c?.id!==u.selectedTrack?.id&&h.setSelected(c)}function se(){O&&=(c.restore(u.current,{state:O}),null),p.isMovingRegions=!1,Us.clear(),l.updateSourcesInTracks(),document.body.classList.remove(`is-disallowed`)}function ce(e){if(le(),window.getSelection()?.removeAllRanges(),y=0,Us.clear(),!e.target.classList.contains(`mix-editor-take-region`)){if(T=t.revision.tracks.flatMap(e=>e.regions).find(t=>e.target instanceof Element&&t.id===e.target?.getAttribute(`data-id`)),!T){u.selectedRegions.clear();return}if(e.stopPropagation(),!e.shiftKey&&!w(T)&&u.selectedRegions.clear(),e.which===3){let e=u.current.tracks.find(e=>e.id===T?.trackId);if(!e)throw Error(`Track not found`);h.setSelected(e),u.selectedRegions.add(T),t.$digest(),t.$applyAsync();return}if(e.which===1||e.which===0){k();let n=ZN(e);v={x:n.x+_.scrollLeft,y:n.y},C=MS(t.revision.tracks,{id:T.trackId}),t.revision.tracks=s.refreshTracksOrder(t.revision.tracks),u.selectedRegions.add(T),p.isDraggingRegions=!0,T.isMoving=!0,U(),t.$digest(),t.$applyAsync(),S=j(e),document.addEventListener(`mousemove`,B,{passive:!1}),document.addEventListener(`mouseup`,oe,{passive:!1}),document.addEventListener(`touchmove`,B,{passive:!1}),document.addEventListener(`touchend`,oe,{passive:!1})}}}function le(){document.removeEventListener(`mousemove`,B),document.removeEventListener(`mouseup`,oe),document.removeEventListener(`touchmove`,B),document.removeEventListener(`touchend`,oe)}function U(){let e=T?._trackId||T?.trackId;if(!tt(e))return;let n=t.getTrackYPosition(e);document.body.style.setProperty(`--mix-editor-track-moving-y`,`${n}px`)}function W(){g.init(i[0].getBoundingClientRect()),Q.start(`scroll:timelineLeft`,!1,f.timelineLeft,!0,!1)}if(i.on(`mousedown touchstart`,ce),i.on(`dragover drop`,function(e){e.preventDefault(),e.stopPropagation()}),i[0].matches(`.audio-editor-track`))return;Q.add(`scale:timeline`,function(e){e&&d.focusedRescale(e)}),window.addEventListener(`resize`,W),t.$on(`$destroy`,function(){window.removeEventListener(`resize`,W)}),g.init(i[0].getBoundingClientRect()),t.isGhostRegion=function(e){return Us.has(e)}
282,t.isClickedRegion=function(e){return e===T},t.isAudioToMidiGhostRegion=G;function G(e){return S?!!e._trackId&&Us.has(e)&&!!H(e,S.tracksById[e._trackId]):!1}},controller:[`$element`,`$scope`,`EditorMidiSamples`,function(n,r,d){r.countSelectedRegions=function(){return u.selectedRegions.size},r.hasCorruptedSelectedRegions=function(){return x().some(e=>e.hasSample===!1)},r.canDenoiseAllSelectedRegions=function(){return x().every(e=>s.isAudioRegion(e))},r.isOnlyTrackRegionsSelected=function(e){return x().every(t=>e.regions.find(e=>e.id===t.id))},r.denoiseSelectedRegions=async function(){if(r.hasCorruptedSelectedRegions())return;import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`denoise`));let t=x();try{c.pushUndo(u.current),t.forEach(e=>{e.isProcessing=!0});let n=Array.from(u.selectedRegions,e=>e.id);await l.current.denoiseRegions(e,n),Ui()}catch{c.undo(u.current),u.redoStack.pop()}finally{t.forEach(e=>{e.isProcessing=!1}),r.$applyAsync()}},r.canNormalizeRegions=function(){if(r.hasCorruptedSelectedRegions())return Promise.resolve(!1);let e=Array.from(u.selectedRegions,e=>e.id);return l.current.canNormalizeRegions(e)},r.normalizeRegions=async function(){if(r.hasCorruptedSelectedRegions())return;import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`normalize`));let{requireStudioMembership:t}=Eo(e);if(!await t(`studio_normalize_region`,`studio`))return;let n=Array.from(u.selectedRegions,e=>e.id);await l.current.normalizeRegions(e,n),r.$applyAsync(),Ea()},r.findSimilarFromRegion=function(e){let t=Gn(()=>Fk(),r);p.currentActiveTab!==`Loops`&&r.displayTab(`Loops`),t.findSimilarFromRegion(e)},r.copySelectedRegions=function(){import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`copy`)),f()};function f(){let e=r.revision.tracks.flatMap(function(e){return e.regions.filter(w).map(function(t){return Object.assign({},t,{automation:a.getAutomationInRange(e,t.startPosition,t.endPosition),trackOrder:e.order,effectSlugs:e.effects.map(e=>e.slug)})})});e.length>0&&(Zs.value=e)}r.cutSelectedRegions=async function(){c.pushUndo(r.revision),f(),await g(`cut`)},r.deleteSelectedRegions=async function(){import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`delete`)),c.pushUndo(u.current);try{await g(`erase`)}catch{c.undo(u.current),u.redoStack.pop()}},r.pasteRegionsFromClipboardToTrack=async function(e){if(i.isAllowed(`paste`)&&(import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`paste`)),S(e))){u.selectedRegions.clear(),c.pushUndo(u.current);try{await C(e)}catch{c.undo(u.current),u.redoStack.pop()}}};async function g(e){u.selectedRegions.forEach(function(e){e.automation=a.getAutomationInRange(MS(u.current.tracks,{id:e.trackId}),e.startPosition,e.endPosition)}),await a.checkConfirmation(e,Array.from(u.selectedRegions)).then(function(e){e?r.revision.tracks.forEach(function(e){ja(e.regions,w).forEach(function(t){a.deleteAutomationInRange(e,t.startPosition,t.endPosition)})}):r.revision.tracks.forEach(function(e){ja(e.regions,w)}),l.updateSourcesInTracks(),u.selectedRegions.clear(),r.$applyAsync()})}if(r.mergeSelectedRegions=async function(){u.selectedRegions.size&&(import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`merge`)),c.pushUndo(u.current),await l.current.mergeRegions(Array.from(u.selectedRegions,e=>e.id)),r.$applyAsync())},r.deleteTakes=async function(){await m.deleteTakesForSelection(),t.$applyAsync(),ga(`remove_takes`)},r.moveTrack=(e,t)=>{h.moveTrack(e,t),Gi(`move_up_down`)},r.deleteTrack=function(e){e&&i.isAllowed(`deleteTrack`)&&(h.deleteTrack(e),u.current.tracks.length||(b.isVisible=b.hasFocus=!1),Q.start(`anticipateScrollLayoutShift:tracksTop`))},r.armTrack=function(e){s.isBandLabInstrumentTrack(e)&&s.isBandLabInstrumentTrack(u.armedTracks[1])||e!==u.armedTracks[1]&&(e===u.armedTracks[2]?u.armedTracks[2]=null:(u.armedTracks[2]=e,e.channel=u.armedTracks[1]?.channel===1?2:1))},r.transposeRegions=function(e){import(`./DvQD5s06.js`).then(e=>e.t).then(({logRegionActions:e})=>e(`transpose`)),y.transposeRegions(u.current,e,u.selectedRegions)},r.canTransposeRegions=function(){let e=Array.from(u.selectedRegions);return e.filter(function(e){return d.has(e.sampleId)&&t(e.trackId)}).length===e.length&&e.length>0;function t(e){let t=u.current.tracks.find(t=>
282t.id===e);return s.isTrackTransposable(t)}},r.quantizeRegions=function(e){y.quantizeNotesInRegion(e,Array.from(u.selectedRegions))},r.canQuantizeRegions=function(){let e=Array.from(u.selectedRegions);return e.filter(function(e){return d.has(e.sampleId)&&t(e.trackId)}).length===e.length&&e.length>0;function t(e){return u.current.tracks.find(t=>t.id===e)?.type!==dn}},n[0].matches(`.audio-editor-track`))return;r.$on(o.keyDown.delete,function(){p.isAutomationVisible||r.deleteSelectedRegions(`erase`)}),r.$on(o.keyDown.copy,function(){p.isAutomationVisible||r.copySelectedRegions()}),r.$on(o.keyDown.cut,function(){r.cutSelectedRegions()}),r.$on(o.keyDown.paste,function(){!p.isAutomationVisible&&u.selectedTrack?.id&&r.pasteRegionsFromClipboardToTrack(u.selectedTrack.id)}),r.$on(o.keyDown.deleteTrack,function(){let e=u.selectedTrack;e&&r.$apply(()=>{r.deleteTrack(e)})}),r.$on(o.keyDown.duplicateTrack,function(){let e=u.selectedTrack;e&&(h.duplicateTrack(e),Q.start(`anticipateScrollLayoutShift:tracksTop`))});function x(){return[...u.selectedRegions]}r.$on(Vc,function(e,t){let n=t.track??u.selectedTrack;c.pushUndo(u.current),n.preset=t.preset||`custom`,n.effects=t.effects,l.current.setTrackEffects(n,n.effects),p.hasRevisionChanges=!0,!n.effects.length&&!t.presetId&&(n.preset=`none`),n.preset===`none`?n.effectsData={}:(t.preset||t.presetId)&&(n.effectsData={presetId:t.presetId,originalPresetId:t.preset||t.presetId,link:t.presetLink},_.getBySlug(t.preset)||(n.effectsData.displayName=t.displayName));let r=u.trackAutomationParameters.get(n),i=a.getAutomatableParameters(n.effects),o=r&&typeof r!=`string`&&`effect`in r?i.find(e=>e.effect.id===r.effect.id&&e.param===r.param)??`volume`:`volume`;u.trackAutomationParameters.set(n,o)});function T(e){if(e.paramSlug===`bypass`)return;let{effectOrder:t,paramSlug:n}=e,r=u.selectedTrack;if(!r)return;let i=r.effects[t];if(!i)return;let o=a.getAutomatableParameters(r.effects).find(({effect:e,param:t})=>e.id===i.id&&t===n);o&&u.trackAutomationParameters.set(r,o)}r.$on(Pc,function(e,t){if(!u.selectedTrack)return;c.pushUndo(u.current),u.selectedTrack.preset=`custom`,r.$applyAsync();let n=u.selectedTrack.effects[t.effectOrder];if(!n)throw Error(`effectOrder out of bounds`);if(l.current.setTrackEffectParameter(u.selectedTrack,t.effectOrder,t.paramSlug,t.value),t.paramSlug!==`bypass`&&v.metadata[n.slug]?.params[t.paramSlug]?.automatable&&p.isRecording&&p.isRecordingAutomation){if(!n.automation||!angular.isNumber(t.value))return;Ct(n.automation[t.paramSlug]??[],p.crTime,t.value)}t.paramSlug!==`bypass`&&n.bypass&&(n.bypass=!1),T(t)});let E=Fa(function(){c.pushUndo(u.current)},1e3,{leading:!0,trailing:!1});
282r.$on(`MidiMapping:TRACK_EFFECT_PARAMETER`,function(e,{trackId:t,effectIndex:n,effectParameter:i,value:a,toggle:o,min:s,max:c,crTime:d}){r.$applyAsync();try{let e=u.current.tracks.find(e=>e.id===t);if(!e||!e.effects[n])return;let r=v.metadata[e.effects[n].slug]?.params[i];if(!r)return;E(),e.preset=`custom`;let f=o?e.effects[n].params[i]>Ft(qt(s,r),r)?Ft(qt(s,r),r):Ft(qt(c,r),r):Ft(qt(a,r),r);if(e.effects[n].params[i]=Mt(f,r),l.current.setTrackEffectParameter(e,n,i,e.effects[n].params[i]),p.isRecording&&p.isRecordingAutomation){if(!e.effects[n].automation)return;Ct(e.effects[n].automation[i]??[],d,e.effects[n].params[i])}Q.start(`syncVolume`)}catch{}}),r.$on(`MidiMapping:TRACK_EFFECT_BYPASS`,function(e,{trackId:t,effectIndex:n,value:i,toggle:a}){r.$applyAsync();try{let e=u.current.tracks.find(e=>e.id===t);if(!e||!e.effects[n])return;a&&(i=!e.effects[n].bypass),c.pushUndo(u.current),e.preset=`custom`,l.current.setTrackEffectParameter(e,n,`bypass`,i),e.effects[n].bypass=i}catch{}}),r.$on(Gc,function(){let e=u.selectedTrack;e&&cc(e)&&(p.isAudioInputActive=!0)})}]}}]),angular.module(`bandlab.editor`).directive(`moveHandler`,[`EditorScroll`,`EditorScrollState`,function(e,t){return{restrict:`A`,link:function(n,r,i){var a=n.$eval(i.onMoveEnd),o=n.$eval(i.onMoveStart),s=n.$eval(i.onMove),c=angular.noop,l,u,d,f,p,m,h=30,g=311,_=30,v=t.notesTimelineEl.contains&&t.notesTimelineEl.contains(r[0]),y=v?e.manualNotesScroll:e.manualScroll,b=v?t.notesTimelineEl:t.timelineEl;r.on(`pointerdown`,function(e){e.which!==3&&(e.stopPropagation(),e.preventDefault(),u=ZN(e).x,l=0,m=document.documentElement.clientWidth,d=u-(b.scrollWidth-b.scrollLeft-b.clientWidth),f=u+b.scrollLeft,r[0].setPointerCapture(e.pointerId),r.on(`pointermove`,x),angular.element(window).on(`pointerup`,S),c=n.$on(`$destroy`,S),angular.isFunction(o)&&(o(u),n.$digest()))});function x(e){var r,i=e.pageX>m-h,a=e.pageX<g;r=ZN(e).x;function o(){u=Math.min(u+t.SCROLL_STEP,f),y({left:!0})}function c(){u=Math.max(u-t.SCROLL_STEP,d),y({right:!0})}l=u-r,clearInterval(p),(a||i)&&(p=setInterval(function(){a?o():c(),s(u-r),n.$digest()},_)),angular.isFunction(s)&&(s(l),n.$digest())}function S(){c(),r.off(`pointermove`,x),angular.element(window).off(`pointerup`,S),clearInterval(p),angular.isFunction(a)&&n.$applyAsync(function(){a(l)})}}}}]),dP.$inject=[`$analytics`,`$injector`,`$scope`,`$state`,`$transitions`,`$transition$`,`Editor`,`EditorAllowActions`,`EditorDB`,`EditorHelper`,`EditorPlayback`,`EditorRevision`,`EditorState`,`Me`,`revision`];function dP(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){"ngInject";d.current=m,n.editorState=f,qn(n,p,e=>{f.hasMembership=e.plan!==`Free`}),window.addEventListener(`beforeunload`,h),window.addEventListener(`pagehide`,g),this.uiCanExit=function(e){return f.isSaving||f.isPreSaving?S(e):s.shouldAskToSave()?f.isPreviewingRevision?x(e):_().then(t=>t?v({showSuccessAfterExit:!0,saveType:`on_exit`,triggeredFrom:`auto_save`,saveSuccessVariant:1}):b(e)):(T(),e)};function h(e){(f.hasRevisionChanges||f.isPreSaving||f.isSaving||f.isRecording)&&(e.returnValue=!0),f.isRecording&&u.toggleRecord()}function g(){c.removeSnapshot(d.current.id)}function _(){return ke(p,`studio_auto_save_enabled`).then(e=>e===`true`).catch(()=>!1)}async function v({showSuccessAfterExit:t=!1,saveType:n=`manual`,saveSuccessVariant:r=0,triggeredFrom:a=`on_exit`}={}){e.eventTrack(`Leave`,{category:`Mix Editor`,label:`save`});let s=await o.startSave({showSuccess:!1,rewriteUrl:!1,triggeredFrom:a,saveType:n});await new Promise(e=>setTimeout(e,500));let c=i.onSuccess({from:`mixEditor`},function(){T(),c()});return t&&o.displaySavingSuccess(s,r),y(s)}function y(e){return r.target(`track`,{id:e.postId})}function b(e){return new Promise(n=>{dC.value&&$O({$injector:t},{abort:!0}),l.show2StepSaveModal({onDiscard:()=>{C(n,e)},saveFn:()=>{v().then(n)},cancelFn:()=>w(n)})})}function x(e){let t=J(()=>import(`./CfetAQTW.js`)),{promise:n,resolve:r}=Promise.withResolvers();return X(t,{isRestoring:!1,resolve:async({save:t})=>{if(t){r(await v({showSuccessAfterExit:!0,saveType:`manual`,saveSuccessVariant:3}));return}C(r,e)},reject:()=>w(r)},{escapeClose:!1,overlayClose:!1}),n}function S(e){let t=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));return new Promise(n=>{X(t,{title:`Saving is in progressâ¦`,subtitle:`If you leave without saving, all your changes will be lost.`,size:`small`,actions:[{label:`Leave`,color:`secondary`,onClick:()=>C(n,e)},{label:`Stay`,color:`primary`,onClick:()=>w(n)}]},{escapeClose:!1,overlayClose:!1,onDismiss:()=>w(n)})})}function C(t,n){e.eventTrack(`Leave`,{category:`Mix Editor`,label:`leave`}),T(),t(n)}function w(t){e.eventTrack(`Leave`,{category:`Mix Editor`,label:`cancel`}),t(!1)}function T(){d.releaseLock(),c.removeSnapshot(d.current.id),window.removeEventListener(`beforeunload`,h),window.removeEventListener(`pagehide`,g)}}const fP=Wn(function(e){let t=O([]);return{getFavoriteEffectIdsRef:r,getFavoriteEffectIds:i,toggleFavoriteEffect:n};function n(n){t.value.includes(n)?(t.value=t.value.filter(e=>e!==n),Un.delete(`https://www.bandlab.com/api/v1.3/users/${e.id}/favorite-effect-ids/${n}`).catch(()=>{i()})):(t.value.unshift(n),Un.post(`https://www.bandlab.com/api/v1.3/users/${e.id}/favorite-effect-ids/${n}`).catch(()=>{i()}),ta(n))}function r(){return t}async function i(){return await Un.get(`https://www.bandlab.com/api/v1.3/users/${e.id}/favorite-effect-ids`).json().then(function(e){let n=e.data.map(({id:e})=>e);t.value=n}
282).catch(()=>[])}}),pP={DefaultPlacement:{timeoutMs:5e3,cappingMin:5,enabledNetworks:[]}};function mP(e){d.set(`vastAdCapped`,`true`,{expires:e/1440,domain:`bandlab.com`})}function hP(){return d.get(`vastAdCapped`)!==`true`}async function gP(e,t,n){if(!hP())return;let r=await vP(e,t),i=await yP(r);if(i||n.fallbackTagUrl)try{return await _P(),{...n,...r,vastXml:i}}catch{}}function _P(){return Re(`https://imasdk.googleapis.com/js/sdkloader/ima3.js`)}function vP(e,t){return import(`./BWvciV-z.js`).then(e=>e.t).then(function({getAmplitudeFeatureVariant:t}){return t(e,`ad_placements_config`)}).then(function(e){return bP(e.payload?e.payload.DefaultPlacement:pP.DefaultPlacement,t)})}function yP(e){return e.enabledNetworks?.includes(`Bandlab`)?ms(e.placement).catch(()=>null):Promise.resolve()}function bP(e,t){return{...e,countdown:5,placement:t}}angular.module(`bandlab.editor.routes`,[`ui.router`]).config([`$stateProvider`,function(e){let t=`{id:new|[a-zA-Z0-9-_]+}.assignmentId.solutionId.classname.access.projectId.bandId.tutorial.ftueDemo.splitter.fileName.preserveSettings.forkRevisionId.samplerKit.source.soundbank.responseTime.targetNotes.slug.mix.algorithm.isCustomScale.remoteSample.
282samplePack.sampleId.sampleCollectionSlug.userSoundsSampleId.fxBlend.preset.effect.category.open_effects_library.open_attribution.triggered_from.aiFxGenerate.beatId.campaign.palette.songstarter`.split(`.`).join(`&`);e.state(`mixEditor`,{url:`/studio?${t}`,data:{forcedTheme:`dark`,hideGlobalPlayer:!0,hideNavBar:!0},isCompatible:ar,params:{rewriteTracking:{dynamic:!0,value:[`$stateParams`,function(e){return()=>`/mix-editor${e.id?`/revision`:``}`}]},open_attribution:{dynamic:!0,value:null,squash:!0},triggered_from:{dynamic:!0,value:null,squash:!0}},template:`<mix-editor ng-class="{ 'is-audio-stretching': editorState.isRegionAudioStretching, 'is-resizing-loop': editorState.isResizingLoop, 'is-resizing-right': editorState.isResizingRight, 'is-resizing-left': editorState.isResizingLeft }"></mix-editor>`,reloadOnSearch:!1,resolve:Object.assign({getExposedVersionOfAutoPitch:[`$injector`,`Me`,function(e,t){"ngInject";let n=e.get(`Katnip`);return Promise.all([import(`./BWvciV-z.js`).then(e=>e.t),n]).then(function([{getAmplitudeFeatureVariant:e}]){return e(t,`autopitch_version_exposed`)}).then(function(e){return tc.value=Da(e.payload.version,tc.maxValue)?tc.maxValue:e.payload.version,e}).catch(()=>{})}],getExposedVersionOfMastering:[`Me`,function(e){"ngInject";return import(`./CWicAUmS.js`).then(e=>e.i).then(function({loadExposedVersion:t}){return t(e)})}],isPracticeProject:[`$stateParams`,function(e){"ngInject";return!1}],studioVastAd:[`Me`,`availableFeaturesSet`,function(e,t){"ngInject";return import(`./BWvciV-z.js`).then(e=>e.t).then(function({getAmplitudeFeatureFlag:t}){return t(e,`studio_web_ad`)}).then(function(n){return gP(e,`Studio`,{fallbackTagUrl:!t.value.has(`ad-free-experience`)&&n===`true`&&`https://pubads.g.doubleclick.net/gampad/ads?iu=/21758830223/bandlab/preroll&description_url=[placeholder]&tfcd=0&npa=0&sz=1x1%7C1080x1920&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=`})})}],availableFeaturesSet:[`Me`,`EditorState`,function(e,t){"ngInject";let{availableFeaturesSet:n}=Kn(e);return t.availableFeaturesSet=n,n}],isStudioAudioStretchModalDisabled:[`Me`,`EditorState`,function(e,t){"ngInject";return import(`./BWvciV-z.js`).then(e=>e.t).then(function({getAmplitudeFeatureFlag:t}){return t(e,`studio_audio_stretch_modal_disabled`)}).then(function(e){return t.isStudioAudioStretchModalDisabled=e===`true`,e===`true`})}],isUnderStudioAudioStretchModalFromRegionRemovalExperiment:[`Me`,`EditorState`,function(e,t){"ngInject";return import(`./BWvciV-z.js`).then(e=>e.t).then(function({getAmplitudeFeatureFlag:t}){return t(e,`studio_audio_stretch_modal_from_region_removal`)}).then(function(e){return t.isUnderStudioAudioStretchModalFromRegionRemovalExperiment=e===`true`,e===`true`})}],isUnderViewPackFromAudioRegionExperiment:[`Me`,`EditorState`,function(e,t){"ngInject";return import(`./BWvciV-z.js`).then(e=>e.t).then(function({getAmplitudeFeatureFlag:t}){return t(e,`blsounds_view_pack_from_audio_region`)}).then(function(e){return t.isUnderViewPackFromAudioRegionExperiment=e===`true`,e===`true`})}],refreshFtue:[`authService`,function(e){"ngInject";return e.refreshFtue()}]},{},{templates:[`$templateRequest`,`$q`,function(e,t){"ngInject";return t.all([e(`https://www.bandlab.com/web-app/audio/partials/_audio-input-preset-settings-f71b32b49.html`),e(`https://www.bandlab.com/web-app/audio/partials/_audio-input-7f42ae87e.html`),e(`https://www.bandlab.com/web-app/audio/partials/_drum-machine-7d2052a10.html`),e(`https://www.bandlab.com/web-app/audio/partials/_virtual-drum-pads-9d869dd66.html`),e(`https://www.bandlab.com/web-app/audio/partials/_virtual-piano-b44e5751c.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-automation-2724dbfea.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-body-c80ce5de3.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-cycle-selection-2e8d1305e.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-grid-28675dbff.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-header-a41c91a75.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-loader-c190ae83a.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-menu-9efef2e47.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-playhead-d59875996.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-recording-region-1b1eeb7cf.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-region-3d1930687.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-ruler-604eb88c7.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-scrollbar-horizontal-8d7bf8820.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-scrollbar-vertical-daf9cb4e8.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-sidetabs-9049a6a68.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-toolbar-71ac43f1a.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-track-header-ec6f38970.html`),e(`https://www.bandlab.com/web-app/editor/partials/_mix-editor-track-da9db340b.html`),e(`https://www.bandlab.com/web-app/midi/partials/_midi-editor-grid-23ff58f21.html`),e(`https://www.bandlab.com/web-app/midi/partials/_midi-editor-header-974f1f05c.html`),e(`https://www.bandlab.com/web-app/midi/partials/_midi-editor-region-note-7babc0f28.html`),e(`https://www.bandlab.com/web-app/midi/partials/_midi-editor-region-e345ecc31.html`),e(`https://www.bandlab.com/web-app/midi/partials/_midi-editor-ruler-fb16fdf3b.html`),e(`https://www.bandlab.com/web-app/midi/partials/_midi-editor-track-grid-2d3ec864b.html`),e(`https://www.bandlab.com/web-app/midi/partials/_midi-editor-d723cf77a.html`),e(`https://www.bandlab.com/web-app/song/partials/_revision-new-0ae91012f.html`)]).catch(function(){})}],theProject:[`$stateParams`,`Song`,function(e,t){"ngInject";return e.projectId?t.get({id:e.projectId}).$promise:{}}],revision:[`$injector`,`$q`,`$state`,`$stateParams`,`$transition$`,`AppNotifications`,`EditorDB`,`EditorHelper`,`EditorLoader`,`EditorMidiSamples`,`EditorMidiScore`,`EditorModel`,`EditorTimeline`,`EffectsPreset`,`EditorReset`,`EditorState`,`EditorTrack`,`availableFeaturesSet`,`Me`,`Revision`,`studioVastAd`,`Sample`,`Song`,`Soundbank`,`isPracticeProject`,`theProject`,`getExposedVersionOfAutoPitch`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E){"ngInject";let D=fP(v);function O(){return x.getOptions().then(function(e){Z.SONG_DURATION_MAX=e.maxSongDuration,h.availableFeaturesSet.has(`32-track-studio`)?Z.TRACKS_LIMIT=32:Z.TRACKS_LIMIT=e.maxTracks})}let k=e.get(`Katnip`);m.resetBeforeInitialization();let A=c.pushTask(`loadSample`);
282return b&&!r.tutorial&&v.ftue.usedStudio&&!r.sampleId&&!r.songstarter&&!r.palette&&c.pushAd(b),oS(e),t.all([Promise.all([C.init(),k,p.getUserPresets()]).then(j),p.getPresets(),p.getExclusivePresets(),p.getTrendingPresets(),p.getArtistPresets(),p.getFavoritePresetIds(),D.getFavoriteEffectIds(),cS(e),O()]).then(function([e]){return f.cleanRevision(e).catch(e=>(Du(e,a),n.go(`unavailable`,{reload:!0})))}).then(function(e){return p.populateUnownedUserPresetsFromRevision(e),e.canEdit?e:t.reject({status:403})}).finally(function(){c.finishTask(A)});async function j(){let e=await(async function(){return r.id})(),t=await(async function(){return r.bandId})();if(r.projectId)return y.get({id:T.revision.id,edit:!0}).$promise;if(e&&e!==`new`)return y.get({id:e,edit:!0}).$promise;if(r.splitter){let{splitterRevision:e,splitterPlaybackStemsCache:n,splitterAnalysedBpm:i,splitterAnalysedKey:a,SPLITTER_DEFAULT_BPM:c,splitterSongDuration:f,splitterMidiStemsCache:p,getSplitterMidiDefaultSoundbank:m,splitterPrecisePlaybackRate:v}=await Promise.resolve().then(()=>tM),{allInstrumentIds:y,splitterInstrumentDetails:b}=await Promise.resolve().then(()=>PA);if(e.value){let x=ul(e.value);x.tracks.forEach(e=>{e.name=`${b[e.name].name} - ${r.fileName}`,e.isMuted=!1,e.isSolo=!1,e.volume=1});let C=r.preserveSettings===`true`;C||(a.value&&(x.key=a.value),i.value&&(x.metronome.bpm=i.value),x.tracks.flatMap(e=>e.regions).forEach(e=>{e.playbackRate=1,e.endPosition=f.value,e.pitchShift=0})),x.tracks.forEach(e=>{e.regions.forEach(t=>{t.name=e.name})}),i.value||(x.metronome.bpm=c),_.value.has(`group-tracks`)&&g.createGroupFromTracks(x.trackGroups,x.tracks,`${r.fileName}`);let w=n.value[0].audioBuffer.duration;await Promise.all(n.value.map(e=>{let t=new Blob([e.wavArrayBuffer],{type:`audio/wav`});return o.updateFile({blob:t,sampleId:e.sampleId})}));let T=n.value.map(e=>({id:e.sampleId,buffer:e.audioBuffer}));if(p.value.length){x.tracks=x.tracks.map(e=>({...e,isMuted:!0}));let e=p.value.sort((e,t)=>y.indexOf(e.instrumentId)-y.indexOf(t.instrumentId)),t=await Promise.all(e.map(async e=>{let{instrumentId:t,midiFile:n,suggestedDrumKitSlug:i}=e,a=ze(),s=m(t,i)??`studio-grand-v2-v4`,c=d.createTrack({name:`${b[t].name} - ${r.fileName}`,color:b[t].studioColor.hex,colorName:b[t].studioColor.colorName,type:_t,soundbank:s}),f=await u.importMidToScore(n,a);if(!f.length)return c;c.regions=[d.createRegion({endPosition:C?w/v.value:w,isPlayable:!0,name:c.name,trackId:c.id,sampleId:a})];let[p]=f;return p.originalBpm=x.metronome.bpm,l.set(p.id,p),await o.updateFile({blob:p,sampleId:p.id}),c}));x.tracks.push(...t),t.length>1&&_.value.has(`group-tracks`)&&g.createGroupFromTracks(x.trackGroups,t,`${r.fileName} (MIDI)`)}return s.applyTracksOrder(x.tracks),h.hasRevisionChanges=!0,d.createRevision({...x,samples:T,song:new S({bandId:t,canEdit:!0,isForkable:!1,name:r.fileName})})}}let n=d.createRevision({song:new S({bandId:t,canEdit:!0,isForkable:!1,name:w?`New Personal Project`:`New Project`,...T})});if(r.source===`autopitch`){let e=tc.value,t=_.value.has(`autopitch`)&&r.isCustomScale===`true`&&Da(e,`v0.3`);n.tracks[0]=d.createTrack({type:`voice`,autoPitch:{...Ol,...t?{scale:`scale_custom`,tonic:`tonic_undefined`}:{},targetNotes:Wl(r.targetNotes),responseTime:ql(r.responseTime),slug:Bl({slug:r.slug,category:r.category,hasMembership:_.value.has(`autopitch`),autoPitchGroups:k.effectsJson.autoPitchGroups}),mix:Rl({hasMembership:_.value.has(`autopitch`),mix:r.mix}),algorithm:Xl({hasMembership:_.value.has(`autopitch`),algorithm:r.algorithm}),version:e}}),s.displayInstrument()}if(r.open_effects_library&&(n.tracks[0]||(n.tracks[0]=d.createTrack({type:`voice`})),Y.openEffectFlyout=!0),r.preset){let e=p.getUserPresetsSync().find(e=>e.id===r.preset)||p.getBySlug(r.preset);if(!e)return a.addNotification({title:`Content not found or has been deleted`,classList:`alert`,autoclose:8e3}),n;let t=ul(e);n.tracks[0]||(n.tracks[0]=d.createTrack({type:`voice`})),r.preset===`none`&&(Y.openPresetFlyout=!0),n.tracks[0].preset=t.slug||`custom`,n.tracks[0].effectsData={displayName:t.name||t.displayName,originalPresetId:t.slug||t.id,presetId:t.id},n.tracks[0].effects=t.effects}else if(r.effect){let e=k.metadata[r.effect];if(!e)return a.addNotification({title:`Content not found or has been deleted`,classList:`alert`,autoclose:8e3}),n;n.tracks[0]||(n.tracks[0]=d.createTrack({type:`voice`})),n.tracks[0].effects=Cn(e),n.tracks[0].preset=`custom`}return n}}]}),onEnter:[`$rootScope`,`$state`,`$stateParams`,`$transition$`,`Page`,`ProjectUploader`,`Revision`,`revision`,`Song`,function(e,t,n,r,i,a,o,s,c){if(i.setMetadata({title:s.song.name}),ww(),a.isVisible=!1,n.forkRevisionId)return Promise.all([o.get({id:n.forkRevisionId}).$promise,c.fork({revisionId:n.forkRevisionId}).$promise]).then(function([e,n]){return import(`./DvQD5s06.js`).then(e=>e.t).then(function({logRevisionFork:n}
282){n(e.id,e.postId,e.creator.id,null,t)}),t.target(`mixEditor`,{id:n.revision.id,forkRevisionId:null},{inherit:!1,reload:!0})}).catch(function(){return t.target(`mixEditor`,{forkRevisionId:null},{inherit:!1,reload:!0})})}],onExit:[`$rootScope`,`$transition$`,`EditorDB`,`Page`,function(e,t,n,r){r.clearMetadata(),t.to().name!==`mixEditor`&&n.deleteFiles()}],controller:dP})}]),angular.module(`bandlab.editor`).factory(`AudioStretch`,[`$injector`,`$rootScope`,`AppNotifications`,`EditorHelper`,`EditorHistory`,`EditorPlayer`,`EditorRevision`,`MidiEditor`,`Modal`,`Sample`,function(e,t,n,r,i,a,o,s,c,l){return{clampPlaybackRate:u,convertAudioBuffer:p,convertLoop:m,convertRegion:h,convertRevision:g,preview:_};function u(e,t=10){return Math.min(Math.max(e,rn),Math.min(t,10))}function d(e){return Math.min(Math.max(e,-12),12)}function f(e,t,n){e.sampleOffset=At(e.sampleOffset*t),e.takeList?.forEach(e=>{e.sampleOffset=At(e.sampleOffset*t)}),e.loopLength*=t,e.fadeIn*=t,e.fadeOut*=t,n?(e.startPosition*=t,e.endPosition*=t):e.endPosition=e.startPosition+(e.endPosition-e.startPosition)*t}function p(e,t,n){return import(`./CLDANAL4.js`).then(function({default:r}){let i=new Worker(`https://www.bandlab.com/web-app/common/workers/AudioStretchWorker-136322088a.js`),a=new r;return a.init(sr()),a.convertAsync(e,Math.abs(t),n,i).finally(function(){a.destroy()}).finally(function(){i.terminate()})}).then(function(e){return t<0?v(e):e})}function m(e,t,n){var r=n||!e.features?.loop?.tempo?1:u(o.current.metronome.bpm/e.features?.loop?.tempo),i=0;return(e.features?.loop?.key||e.features?.oneShot?.key)&&t.key&&(i=s.transposeKeys(e.features?.loop?.key||e.features?.oneShot?.key,t.key)),l.getBuffer(e.audioUrl).then(cr).then(function(e){return p(e,r,i)})}function h(e,t=e.playbackRate,n=e.pitchShift,r=!1){n=d(n),t=u(Math.abs(t))*Math.sign(t);let i=Math.abs(e.playbackRate/t);return e.playbackRate=t,e.pitchShift=n,f(e,i,r),e.endPosition=Math.min(e.endPosition,Z.SONG_DURATION_MAX),a.updateSourcesInTracks(),e}function g(e,t){var n=s.transposeKeys(e.key,t);return Promise.all(e.tracks.flatMap(function(e){return e.regions=e.regions.filter(function(e){return e.endPosition-e.startPosition>=kt}),e.regions}
282).filter(r.isAudioRegion).map(function(e){let t=(e.pitchShift+n+12)%12;return t>6&&(t-=12),h(e,e.playbackRate,t)}))}async function _(r){let{default:a}=await import(`./CYGCSnwv.js`),{logEvent:s}=await import(`./DHI6ZMoS.js`).then(e=>e.t);s(`audiostretch_open`);var l=new a,f=r.playbackRate,p=r.pitchShift,m=r.playbackRate,g=r.pitchShift,_=(r.endPosition-r.startPosition)/kt,y={playbackRate:Math.abs(r.playbackRate),pitchShift:r.pitchShift},b={logEventOnFirebase:s,player:l,region:r,regionCopy:y,jumpBackwards:function(){l.back(),s(`audiostretch_jump_backwards`)},jumpForwards:function(){l.forward(),s(`audiostretch_jump_forward`)},togglePlayback:function(){if(l.paused()){l.play(),s(`audiostretch_play`);return}l.pause(),s(`audiostretch_pause`)},reset:function(){b.setPlaybackRate(1),b.setPitchShift(0),y.playbackRate!==1&&s(`audiostretch_change_speed`),y.pitchShift!==0&&s(`audiostretch_change_pitch`)},adjustPlaybackRate:function(e,t){y.playbackRate=m+t*.01,y.playbackRate=u(y.playbackRate,_),l.setPlaybackRate(y.playbackRate)},logAudiostretchChangeSpeed:function(){s(`audiostretch_change_speed`)},adjustPitchShift:function(e,t){y.pitchShift=d(g+t*.01),l.setPitchShift(y.pitchShift)},logAudiostretchChangePitch:function(){s(`audiostretch_change_pitch`)},startAdjusting:function(){m=y.playbackRate,g=y.pitchShift},setPlaybackRate:function(e,t){t&&(e=t>0?Math.ceil(y.playbackRate*100/5+t*.51)*5/100:Math.floor(y.playbackRate*100/5+t*.51)*5/100),y.playbackRate=u(e,_),l.setPlaybackRate(y.playbackRate),s(`audiostretch_change_speed`)},setPitchShift:function(e,t){t&&(e=t>0?Math.floor(y.pitchShift)+t:Math.ceil(y.pitchShift)+t),y.pitchShift=d(e),l.setPitchShift(y.pitchShift),s(`audiostretch_change_pitch`)}};new c({templateUrl:`https://www.bandlab.com/web-app/editor/partials/_audiostretch-preview-e33214054.html`,contentScope:b,onCreate:function(e){setTimeout(function(){let t=o.current.samples.find(e=>e.id===r.sampleId),n=getComputedStyle(e[0]),i=n.getPropertyValue(`--ds-color-glyphs-primary`),a=n.getPropertyValue(`--ds-color-glyphs-secondary`),s=n.getPropertyValue(`--ds-color-border-neutral`),c=n.getPropertyValue(`--ds-color-border-intense`),u=n.getPropertyValue(`--ds-color-tint-red-base`);l.init({waveformDiv:`waveformDiv`,overviewDiv:`overviewDiv`,backgroundColor:`rgba(0, 0, 0, 0)`,waveColor:a,midlineColor:s,playheadColor:u,loopLabelFont:`20px 'Lucida Console', Monaco, monospace`,loopMarkerColor:s,loopLabelColor:s,tickMarkColor:c,timeLabelColor:i,timeLabelFont:`14px 'BandLab Sans', 'Lucida Console', Monaco, monospace`},sr()),r.playbackRate<0?l.setAudioBuffer(v(t.buffer)):l.setAudioBuffer(t.buffer),l.setPlaybackRate(y.playbackRate),l.setPitchShift(y.pitchShift),l.estimateCPULoad()},100)},onConfirm:function(){if(s(`audiostretch_session_apply`),Math.abs(f)===y.playbackRate&&p===y.pitchShift)return;i.pushUndo(o.current);let a=Math.abs(f)/y.playbackRate,c=r.startPosition+(r.endPosition-r.startPosition)*a>Z.SONG_DURATION_MAX;h(r,y.playbackRate*Math.sign(f),y.pitchShift),c&&n.addNotification({title:`Track duration has been exceeded.`,content:`Region has been truncated`,autoclose:5e3});let l=o.current.tracks.find(e=>e.regions.includes(r));e.get(`EditorTimeline`).moveRegions(l),t.$applyAsync()},onCancel:function(){s(`audiostretch_session_end`)},onDestroy:function(){l.pause(),l.destroy()},overlayClose:!1}).show()}function v(e){let t=sr().createBuffer(e.numberOfChannels,e.length,e.sampleRate);for(let n=0;n<e.numberOfChannels;n++)t.copyToChannel(e.getChannelData(n),n,0),t.getChannelData(n).reverse();return t}}]),angular.module(`bandlab.editor`).factory(`EditorAllowActions`,[`EditorRevision`,`EditorState`,`MidiEditorState`,`Soundbank`,function(e,t,n,r){function i(a){switch(a){case`armTrack`:case`changeBPM`:case`cycle`:case`cycleSelect`:case`import`:case`paste`:return!t.isRecording;case`deleteTrack`:return!t.isRecording&&e.current.tracks.length;case`analyze`:return!t.isPlaying;case`publish`:return(i(`save`)&&t.songDuration||e.current.id)&&e.current.canPublish;case`save`:return i(`savePristine`)&&t.hasRevisionChanges;case`savePristine`:return!t.isSaving&&!t.isPreSaving&&!t.isRecording;case`movePlayHead`:return!t.isRecording;case`midiRollZoomOut`:return!t.isRecording&&n.scale>1;case`midiRollZoomIn`:return!t.isRecording&&n.scale<640;case`zoomOut`:return!t.isRecording&&t.scale>1;case`zoomIn`:return!t.isRecording&&t.scale<640;case`analyseAudioInput`:return r.getCurrent().input.kind===mt;default:return!0}}function a(){return i(`save`)||t.isWaitingCountIn}return{isAllowed:i,shouldAskToSave:a}}]);function xP(e,t){return e&&e.length?Fw(e,Mi(t,2)):[]}const SP=(function(){return function(e,t,n,r){var i=6;return{MARKER_AREA:i,checkConfirmation:g,convertToCoordinates:c,convertTimeToX:o,convertValueToY:a,convertXtoTime:s,currentTrackId:O(null),deleteAutomationInRange:p,getMomentValue:u,getAutomatableParameters:_,getAutomatedValue:d,getAutomationInRange:f,getPolylineYFromX:v,pasteAutomation:h,pasteSelection:m,toggleAutomationView:y,setAutomationVisible:b};function a(e,t,n){if(n.display){let r=Ut(e,n);return t-i-(t-i*2)*r}var r=e-n.min,a=t-i,o=(t-i*2)*r/(n.max-n.min);return n.scale===`log`?a-zt(o,t-i*2):a-o}function o(e){return e*n.scalePx}function s(e){return e/n.scalePx}
282function c(e,t,n){return Xm(e,function(e){return{posX:o(e.position),posY:a(e.value,t,n)}})}function l([...e]){return e.unshift({position:0,value:e[0].value}),e.push({position:Z.SONG_DURATION_MAX,value:e[e.length-1].value}),e}function u(e,t,n){return t&&t.length?d(e,t):n}function d(e,t,r=n.crTime){var i=e.max-e.min,a=l(t),o=jS(a,function(e){return e.position>0&&e.position<=Z.SONG_DURATION_MAX&&e.position>=r});let s={...a[o-1]},c={...a[o]};if(e.name===`volume`&&e.scale===`log`)return s.value=zt(s.value,i),c.value=zt(c.value,i),Et(u(s,c)*(r-s.position)+s.value,i);if(e.scale===`log`){s.value=Ut(s.value,e),c.value=Ut(c.value,e);let t=u(s,c)*(r-s.position)+s.value;return qt(t,e)}return u(s,c)*(r-s.position)+s.value;function u(e,t){return(t.value-e.value)/(t.position-e.position)}}function f(e,t,n){return{pan:r(e.automation.pan??[]),volume:r(e.automation.volume??[]),fxMix:r(e.automation.fxMix??[]),effects:e.effects.map(function(e){return Object.entries(e.automation||{}).reduce(function(e,[t,n]){return e[t]=r(n),e},{})})};function r(e){return e.filter(function(e){return e.position>=t&&e.position<=n}).map(function(e){return{...e,position:e.position-t}})}}function p(e,t,n){[e.automation.pan??[],e.automation.volume??[],e.automation.fxMix??[],...e.effects.map(function(e){return Object.values(e.automation||{})}).flat(1)].forEach(function(e){ja(e,function(e){return e.position>=t&&e.position<=n})})}function m(e,t){let n=t[0],r=t[t.length-1];if(!n||!r)return;let i=n.position,a=r.position,o=-1;ja(e,function(e,t){return o<0&&(o=t),e.position>i&&e.position<a}),e.splice(o,0,...t),e.sort((e,t)=>e.position-t.position)}function h(t,n,r,i){let a=t.automation.pan??(t.automation.pan=[]),o=t.automation.volume??(t.automation.volume=[]),s=t.automation.fxMix??(t.automation.fxMix=[]);c(n.automation.pan,a),c(n.automation.volume,o),c(n.automation.fxMix,s),i&&t.effects.forEach(function(e,t){let r=n.automation.effects?.[t];r&&Object.keys(e.automation).forEach(function(t){let n=r[t],i=e.automation[t];n&&i&&c(n,i)})});function c(t,n){t.forEach(function({...e}){e.position+=r,n.push(e)}),n.sort(function(e,t){return e.position-t.position});let i=xP(n,`position`);i.length!==n.length&&e.eventTrack(`Duplicate times in pasteAutomation`,{category:`Debug`,label:`${i.length} !== ${n.length}`})}}function g(e,t,r){if(e===`move`&&r){let e=aO(Array.from(t),`startPosition`),n=e[0];if(!n)return Promise.resolve();let i=uP(e.map(e=>e.startPosition));if(angular.isUndefined(i))return Promise.resolve();let a=n.trackId,o=r.firstPosition,s=r.firstTrack.id;if(At(i)===At(o)&&a===s)return Promise.resolve()}if(!t.some(function(e){return[e.automation.pan,e.automation.volume,e.automation.fxMix,...e.automation.effects.map(function(e){return Object.values(e||{}).map(function(e){return e})})].flat(2).length>0}))return Promise.resolve();let i={title:``,subtitle:``,labelA:``,labelB:``};switch(e){case`paste`:case`copy`:i.title=`Duplicate Automation`,i.subtitle=`Do you want to <strong>duplicate</strong> the automation data for the selected region(s)?`,i.labelA=`Donât Duplicate`,i.labelB=`Duplicate`;break;case`move`:i.title=`Move automation`,i.subtitle=`Do you want to <strong>move</strong> the automation data for the selected region(s)?`,i.labelA=`Donât move`,i.labelB=`Move`;break;case`cut`:case`erase`:i.title=`Delete Automation`,i.subtitle=`Do you want to <strong>delete</strong> the automation data for the selected region(s)?`,i.labelA=`Donât Delete`,i.labelB=`Delete`}let{title:a,subtitle:o,labelA:s,labelB:c}=i;return new Promise(function(e){let t=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n)),r=!1;n.isInBackground=!0,X(t,{size:`small`,title:a,subtitleVHtml:o,actions:[{label:s,color:`secondary`,onClick:()=>{}},{label:c,color:`primary`,onClick:()=>{r=!0}}]},{escapeClose:!1,overlayClose:!1,onClose:()=>{n.isInBackground=!1,e(r)}})})}function _(e){let t={};return e.reduce(function(e,n,i){let a=r.metadata[n.slug],o=r.effectsJson.effectsUI.effects[n.slug];if(!a||!o)return e;let s=a,c=o,{name:l,params:u}=s,{paramList:d}=c;return t[l]=(t[l]??0)+1,e.concat(d.reduce(function(e,r){let a=u[r];if(!a||a.type!==`float`)return e;let o=t[l]??0,c=n.automation[r];return!a.automatable&&!c?.length?e:(c??=n.automation[r]=[],e.concat({i
282d:`${i}-${n.slug}-${r}`,index:i,param:r,effect:n,name:`${l} ${o>1?`(${o})`:``} - ${a.name}`,metadata:a,automation:c,isMembershipOnly:s.isMembershipOnly??!1}))},[]))},[])}function v(e,t){let n=e.points,r=n.getItem(0);for(let e=1;e<n.numberOfItems;e++){let i=n.getItem(e);if(i.x>=t){let e=(i.y-r.y)/(i.x-r.x),n=r.y-e*r.x;return e*t+n}r=i}return r.y}function y(){b(!n.isAutomationVisible)}function b(e){n.isAutomationVisible=e,e?(t.current.tracks.forEach(e=>{e._showTakeLanes=!1}),Q.start(`updateArrangementView`,!1,{},!1,!0)):n.isRecordingAutomation=!1}}})();SP.$inject=[`$analytics`,`EditorRevision`,`EditorState`,`Katnip`],angular.module(`bandlab.editor`).factory(`EditorAutomation`,SP);const CP=(function(){return function(e,t,n,r){let i=0,a=2,o=0;return t.$on(n.endOfCycle,function(){o++}),{init:c,get:s,set:l,resetCycleCount:d,syncCycleToEngine:f,toggle:u};function s(){return{startTime:i,endTime:a,cycleCount:o}}function c(e){l(0,en(e))}async function l(t,n){i=At(t),a=At(n);let o=e.get(`EditorPlayer`).current;await o.setCycleState?.(r.isCycling),await o.setCycle?.(i,a,r.isSnapping,Z.SONG_DURATION_MAX),await f()}async function u(){r.isCycling=!r.isCycling,await e.get(`EditorPlayer`).current.setCycleState?.(r.isCycling),await e.get(`EditorPlayer`).current.setCycle?.(i,a,!1,Z.SONG_DURATION_MAX),await f()}function d(){o=0}async function f(){let o=e.get(`EditorPlayer`).current.transport;if(!o)return;let s=await o.getCycleStartTime();i=await o.ticksToSecs(s);let c=await o.getCycleEndTime();a=await o.ticksToSecs(c),r.isCycling=await o.getCycleState(),t.$broadcast(n.cycleChanged)}}})();CP.$inject=[`$injector`,`$rootScope`,`editorEvents`,`EditorState`],angular.module(`bandlab.editor`).factory(`EditorCycle`,CP);const wP=(function(){return function(e,t,n,r,i,a,o,s,c,l,u){return{checkAnySolo:d,getRegions:f,loadAllSamples:m,requestTrackMixdown:h,updateSongDuration:p};function d(e=s.current.tracks){return Qm(e,{isSolo:!0})}function f(){return s.current.tracks.filter(e=>e.canEdit).flatMap(e=>e.regions)}function p(){c.songDuration=Ot(s.current)}function m(e,n){return t.all(e.samples.map(function(s){let c=i.pushTask(`loadSample`);return r.getFile(s.id).then(async function(e){if(e)return e;let t=await yp.readFile(s.id);return t?{sampleId:s.id,blob:t}:null}).then(function(r){if(r){let i=r.blob;return i instanceof Blob?s.isMidi?i.arrayBuffer().then(async t=>{let[,r]=await Promise.all([n.writeSample(s.id,t,`mid`),o.convertMidiToScore(i,s.id)]),c=r[0];if(c){a.set(s.id,c);return}if(g(s.id,e.tracks)){a.set(s.id,{id:s.id,notes:[],pitchShift:0});return}throw Error(`Error converting .mid file to score while restoring snapshot`)}):e.tracks.filter(e=>rc(e)).find(e=>e.samplerKit.sampleIds.includes(s.id))?i.arrayBuffer().then(async e=>{await n.writeSample(s.id,e,`wav`)}):i.arrayBuffer().then(l):(a.set(i.id,i),t.resolve())}return s.isMidi&&s.file?Je.get(s.file).blob().then(function(t){return ec[s.id]=!0,o.importMidToScore(t,s.id,g(s.id,e.tracks))}):s.file?u.getBuffer(s.file).then(l).then(function(){ec[s.id]=!0}):u.getJSON(`samples/${s.id}?format=m4a`).then(({value:e})=>u.getBuffer(e)).then(l)}).catch(d).finally(function(){i.finishTask(c)});function l(e){return cr(e).then(function(e){return s.buffer=e,s})}function d(){return s.error=!0,s}}))}function h(r){let i=r.tracks.filter(e=>!e.canEdit).filter(e=>e.regions.length);if(!i.length)return t.resolve();let a=i.map(o);return t.all(a);function o(t){let i=`https://www.bandlab.com/api/v1.3/revisions/${r.id}/tracks/${t.id}/download-options/aac-44100-16bit-192kbps`;return e.post(i).then(function(){return l.pollOnDemand(i,()=>n.id!==r.id)}).then(function({data:{url:e}}){let n=r.samples.find(e=>e.id===t.sampleId);n.file=e})}}function g(e,t){return t.filter(e=>oc(e)).find(t=>t.patterns.find(t=>e===t.sampleId))?.id}}})();wP.$inject=[`$http`,`$q`,`$stateParams`,`EditorDB`,`EditorLoader`,`EditorMidiSamples`,`EditorMidiScore`,`EditorRevision`,`EditorState`,`RevisionImporter`,`Sample`],angular.module(`bandlab.editor`).factory(`EditorData`,wP);const TP=(function(){return function(e,t,n,r){let i=we(c),a=`snapshot.json`,o=new Set;
282return{addSnapshot:m,disableSnapshotForRevision:e=>o.add(e),enableSnapshotForRevision:e=>o.delete(e),deleteFile:f,deleteFiles:p,getFile:l,getSnapshot:g,removeSnapshot:h,updateFile:d};function s(t){return e.eventTrack(`IndexedDB error`,{category:`Mix Editor`,label:[Qe(t,`target.error.code`),Qe(t,`target.error.message`),Qe(t,`target.error.name`)].join(` `)}),n.reject(t)}function c(){let e=n(function(e,t){let n=indexedDB.open(Dt,2);n.onerror=t,n.onblocked=t,n.onsuccess=function(){e(n.result)},n.onupgradeneeded=function(){let e=n.result;e.objectStoreNames.contains(`audioFilesStore`)&&e.deleteObjectStore(Xt),e.createObjectStore(Xt,{keyPath:`sampleId`,autoIncrement:!1})}}),t=r(()=>n.reject(Error(`Could not create IndexedDB instance`)),3e4);return n.race([e,t]).catch(s)}function l(e){return n.when(i()).then(function(t){let r=t.transaction([Xt],`readonly`),i=r.objectStore(Xt).get(e),a=n(function(e,t){i.onerror=t,i.onsuccess=function(){e(i.result)}});return n.all([_(r),a]).then(function(){return a})}).catch(function(e){s(e)})}function u(){return n.when(i()).then(function(e){let t=e.transaction([Xt],`readonly`),n=t.objectStore(Xt).getAll(),r=new Promise(function(e,t){n.onerror=t,n.onsuccess=function(){e(n.result)}});return Promise.all([_(t),r]).then(function(){return r})}).catch(function(e){return s(e),[]})}function d(e){return n.when(i()).then(function(t){let r=t.transaction([Xt],`readwrite`),i=r.objectStore(Xt).put(e),a=n(function(e,t){i.onerror=t,i.onsuccess=e});return n.all([_(r),a])}).catch(s)}function f(e){return n.when(i()).then(function(t){let r=t.transaction([Xt],`readwrite`),i=r.objectStore(Xt).delete(e),a=n(function(e,t){i.onerror=t,i.onsuccess=e});return n.all([_(r),a])}).catch(s)}function p(){return u().then(function(e){let t=e.map(function(e){return f(e.sampleId)});return n.all(t)})}async function m(e){if(o.has(e.id))return;let n=t.get(`EditorPlayer`),r=t.get(`EditorTimeline`),{audioEngineNode:i,mixHandler:s}=n.current,c=JSON.parse(JSON.stringify(e));await r.sanitize(c);let l=await s.getPlaceholderList(),u=await Dl(i.MixHandler,c),d=await i.MixHandler.createMixDataFromRevision(JSON.stringify(u)),f=await i.MixHandler.getMixRequirements(d.mix),p=f.audioSamples.filter(e=>!l.includes(e)),m=f.midiSamples.filter(e=>!l.includes(e));c.samples=[...p.map(t=>{let{buffer:n,...r}=e.samples.find(e=>e.id===t)||{};return{id:t,isMidi:!1,...r}}),...m.map(t=>{let{buffer:n,...r}=e.samples.find(e=>e.id===t)||{};return{id:t,isMidi:!0,...r}})];let h=new Blob([JSON.stringify({revision:c,createdAt:Date.now()})],{type:`application/json`});await bp.updateFile(`${e.id||`new`}/${a}`,h)}async function h(e){e||=`new`;let t=`${e}/`;try{let n=`${t}${a}`;await bp.remove(n),(await bp.getHandlesInDirectory(e)).length===0&&await bp.remove(t)}catch{}}async function g(e){e||=`new`;let t=`${e}/${a}`,n=await bp.readFile(t);if(!n)return null;try{let t=await n.text(),r=JSON.parse(t);return Date.now()-r.createdAt>=2592e6?(h(e),null):r}catch(e){return Sentry.onLoad(()=>{Sentry.captureException(e)}),null}}function _(e){return n(function(t,n){e.onabort=n,e.oncomplete=t,e.onerror=n})}}})();TP.$inject=[`$analytics`,`$injector`,`$q`,`$timeout`],angular.module(`bandlab.editor`).factory(`EditorDB`,TP),angular.module(`bandlab.editor`).constant(`editorEvents`,{cycleChanged:`MixEditor:cycleChanged`,endOfCycle:`MixEditor:endOfCycle`,finishEditingSession:`MixEditor:finishEditingSession`,importFile:`MixEditor:importFile`,keyArrow:`MixEditor:keyArrow`,keyDown:{addTrack:`MixEditor:addTrack`,copy:`MixEditor:copy`,cut:`MixEditor:cut`,delete:`MixEditor:delete`,deleteTrack:`MixEditor:deleteTrack`,deleteSelectedAutomationPoints:`MixEditor:deleteSelectedAutomationPoints`,duplicateTrack:`MixEditor:duplicateTrack`,goToBeginning:`MixEditor:goToBeginning`,nextBeat:`MixEditor:nextBeat`,nextLoop:`MixEditor:nextLoop`,muteTrack:`MixEditor:muteTrack`,paste:`MixEditor:paste`,play:`MixEditor:play`,playFromStart:`MixEditor:playFromStart`,previousBeat:`MixEditor:previousBeat`,previousLoop:`MixEditor:previousLoop`,recordAutomation:`MixEditor:recordAutomation`,redo:`MixEditor:redo`,save:`MixEditor:save`,selectAllRegions:`MixEditor:selectAllRegions`,snapPressed:`MixEditor:snapPressed`,snapReleased:`MixEditor:snapReleased`,soloTrack:`MixEditor:soloTrack`,toggleCycle:`MixEditor:toggleCycle`,toggleLoops:`MixEditor:toggleLoops`,toggleMetronome:`MixEditor:toggleMetronome`,togglePlayStop:`MixEditor:togglePlayStop`,toggleRecord:`MixEditor:toggleRecord`,toggleShortcuts:`MixEditor:toggleShortcuts`,toggleSnap:`MixEditor:toggleSnap`,toggleVelocity:`MixEditor:toggleVelocity`,triggerSlice
282:`MixEditor:triggerSlice`,undo:`MixEditor:undo`,zoomIn:`MixEditor:zoomIn`,zoomOut:`MixEditor:zoomOut`,zoomInPianoRollVertical:`MixEditor:zoomInPianoRollVertical`,zoomOutPianoRollVertical:`MixEditor:zoomOutPianoRollVertical`},startZoom:`MixEditor:startZoomTimeline`,startZoomMIDI:`MixEditor:startZoomNotesTimeline`,stopZoom:`MixEditor:stopZoomTimeline`,stopZoomMIDI:`MixEditor:stopZoomNotesTimeline`});const EP=(function(){return function(e,t,n){return{snapValues:[`To2Bar`,`To1Bar`,`To2nd`,`To2ndT`,`To4th`,`To4thT`,`To8th`,`To8thT`,`To16th`,`To16thT`,`To32nd`,`To32ndT`],updateGridLabel:f,updateRulerGrid:a,updateTrackGrid:r};function r({gridPattern:e,highlightPattern:r,state:a=n,height:u}){var d=o(a),f=s(a),p,m;if(n.isTimeRuler){let e=h(a);d=c(e.primary,a),f=c(e.secondary,a)}if(a.snapSetting.value===0)p=f,p>=16&&(p/=2),m=p,m>=16&&(m/=2);else if(a.snapSetting.value===1)f=d;else{let{notesCount:e,noteValue:n}=t.current.metronome.signature,r=a.snapSetting.value*n;f*=r,f*e>d&&(d=f*e),a.isTripletGrid&&(d=f*2,f=d/3)}i(r,a),a.snapDuration=l(e,d,f,p,m,u,a.isTripletGrid)/a.scalePx}function i(e,r){let i=t.current.metronome.signature.notesCount/t.current.metronome.signature.noteValue;var a;for(n.isTimeRuler?a=c(h(r).primary,r):(a=o(r),(i in Nt)&&r.scale>=10&&(a*=yt[i][r.scale]));a<=25;)a*=2;let s=a;for(;s<50;)s+=a;for(e.setAttribute(`width`,s*2);e.lastChild;)e.removeChild(e.lastChild);d(e,`#00000024`,s)}function a({pattern:e,state:t=n}){var r,i,a,u;if(n.isTimeRuler){let e=h(t);r=c(e.primary,t),i=c(e.secondary,t)}else r=o(t),i=s(t);return t.snapSetting.value===0&&(a=i,a>=16&&(a/=2),u=a,u>=16&&(u/=2)),l(e,r,i,a,u,void 0,t.isTripletGrid)}function o(e){return en(t.current.metronome)*e.scalePx}function s(e){return Pt(t.current.metronome)*e.scalePx}function c(e,t){return e*t.scalePx}function l(e,t,n,r,i,a,o){for(var s,c,l;t<=25;)t*=2;for(;n<=4;)n*=2;for(c=t;c<50;)c+=t;for(!o&&c>t&&(t/=2),n&&c>t?(e.classList.add(`is-ignore-second`),n=0):e.classList.remove(`is-ignore-second`),e.setAttribute(`width`,c);e.lastChild;)e.removeChild(e.lastChild);for(s=t,u(e,0,0,a),l=0;t*l<c;l++)u(e,t*l,30,a);if(n>=8)for(s=n,l=0;n*l<c;l++)u(e,n*l,30,a,r>=16?`second`:``);if(r>=16)for(s=r,l=0;r*l<c;l++)u(e,r*l,30,a);if(i>=32)for(s=i,l=0;i*l<c;l++)u(e,i*l,30,a);return s}function u(e,t,n,r=3240,i){if(!e.querySelector(`[x="${t}"]`)){var a=document.createElementNS(`http://www.w3.org/2000/svg`,`rect`);i&&a.classList.add(i),a.setAttribute(`width`,.5),a.setAttribute(`height`,r),a.setAttribute(`fill`,`var(--graduation-fill)`),a.setAttribute(`x`,t),a.setAttribute(`y`,n),e.appendChild(a)}}function d(e,t,n){var r=document.createElementNS(`http://www.w3.org/2000/svg`,`rect`);r.setAttribute(`width`,n),r.setAttribute(`height`,3240),r.setAttribute(`fill`,t),r.setAttribute(`x`,0),e.appendChild(r)}function f({element:e,state:t,leftBounds:r,viewportWidth:i}){let{array:a,interval:o}=n.isTimeRuler?m(t):p(t),s=r+i;e.innerHTML=a.reduce(function(e,t,n){return n*o<r-100||n*o>s+100?e:e.concat(`<span style="left: ${Math.round(o*n)}px">${t}</span>`)},``)}function p(e){for(var n=t.current.metronome,r=1,i=s(e),a=o(e),c=i>50,l=1,u=[],d,f,p,m;a<=25;)a*=2,r*=2;for(d=a,f=r;d<50;)d+=a,r+=f;for(p=d,c&&(p=i);l<=Z.SONG_DURATION_MAX/en(n);){for(u.push(`${l}`),m=2;c&&m<=n.signature.notesCount;)u.push(`${l}.${m}`),m++;l+=r}return{array:u,interval:p}}function m(t){for(var n=h(t),r=1,i=0,a=n.primary<=.2,o=e(`soundTime`),s=[];r*n.primary*t.scalePx<50;)r++;for(;i<Z.SONG_DURATION_MAX;)s.push(o(i,a)),i+=r*n.primary;return{array:s,interval:n.primary*t.scalePx*r}}function h(e){return vt.find(function(t){return e.scale>=t.scaleMin&&e.scale<=t.scaleMax})}}})();EP.$inject=[`$filter`,`EditorRevision`,`EditorState`],angular.module(`bandlab.editor`).factory(`EditorGrid`,EP);const DP=(function(){return function(e,t,n,r,i,a,o){return{applyTracksOrder:c,areMidiRegions:v,colorNameToColorHex:M,displayAudioEditor:R,displayInstrument:te,displayMidiEditor:L,displayPresetSettings:I,getExtraLoopDuration:p,getExtraLoopWidth:m,getFirstLoopDuration:l,getFirstLoopWidth:u,getIdsOfMissingSamples:d,getIdsOfMissingSamplesSaved:f,getRegionColor:h,getRegionBackgroun
282dColor:g,getTotalDuration:_,hasUneditableTrack:T,hidePanel:ne,isAudioBuffer:w,isAudioRegion:S,isAudioTrack:F,isBandLabInstrumentTrack:N,isMidiRegion:y,isMIDIEditorTrack:b,isRegionPlayable:C,isSamplerTrack:ee,isSoundbankTransposable:D,isTimeSignatureValid:z,isTrackTransposable:E,isTransposableMidiRegion:x,isVirtualInstrumentTrack:P,notifyMissingSamples:s,openTuner:re,refreshTracksOrder:j,show2StepSaveModal:B,snapToEndRegion:A,snapToGrid:O,snapToPlayhead:k,toggleLegacyKeyboardShortcuts:ie};function s(){e.addNotification({id:kr,title:kr,content:Dr,classList:`alert`,autoclose:5e3})}function c(e){return e.map((e,t)=>(e.order=t,e))}function l(e){return e.loopLength?Math.min(e.endPosition-e.startPosition,e.loopLength):e.endPosition-e.startPosition}function u(e,t=r.scalePx){return l(e)*t}function d(){let e=n.current.tracks.flatMap(e=>e.regions).filter(({sampleId:e})=>{let r=n.current.samples.find(t=>t.id===e)??t.get(e);return!r||r.error}).map(e=>e.sampleId);return new Set(e)}function f(){let e=n.current.tracks.flatMap(e=>e.regions).filter(({sampleId:e})=>{let t=n.current.samples.find(t=>t.id===e);return t&&t.error}).map(e=>e.sampleId);return new Set(e)}function p(e){return e.loopLength?Math.max(e.endPosition-e.startPosition-e.loopLength,0):0}function m(e){return p(e)*r.scalePx}function h(e,t){return e.isMuted||r.hasSoloTrack&&!e.isSolo?nt(`#ffffff`,.2):e.isFrozen?nt(`#ffffff`,1):!t.isPlayable&&t.hasSample||t.isProcessing||!t.canEdit?sn:e.color}function g(e,t,n=null){let i=e.isMuted||r.hasSoloTrack&&!e.isSolo;if(n===`midi`){let n=e.isFrozen||i?`#ffffff`:h(e,t);return nt(n,.06)}return i?nt(`#ffffff`,.2):e.isFrozen?nt(`#ffffff`,.5):nt(h(e,t),.5)}function _(e){return l(e)+p(e)}function v(e){return e.every(y)}function y(e){return MS(n.current.samples,{id:e.sampleId})?.isMidi===!0||t.has(e.sampleId)}function b(e){return!e.patterns&&!!(cc(e)||ee(e))}function x(e){let t=n.current.tracks.flatMap(e=>e.patterns||[]).map(e=>e.sampleId);return y(e)&&!t.includes(e.sampleId)}function S(e){return!!MS(n.current.samples,{id:e.sampleId})&&!t.has(e.sampleId)}function C(e,r){var i;return r.patterns&&r.patterns.length?(i=t.get(e.sampleId),i&&Qm(r.patterns,{sampleId:i.id})):r.soundbank||r.samplerKit?t.has(e.sampleId):(i=MS(n.current.samples,{id:e.sampleId}),!!(i&&i.buffer&&w(i.buffer)))}function w(e){return e&&e.constructor===AudioBuffer}function T(e=n.current){return Qm(e.tracks,{canEdit:!1})}function E(e){return!e.samplerKit&&(!e.soundbank||D(e.soundbank))}function D(e){return o.getPropertyValue(e,`category`)!==`kit`&&e!==`general-midi-drums-v4`}function O(e,t,n,i=r){let a=Math.round(e/t)*t;return n=angular.extend({padding:5,force:!1,delta:!1},n),Math.abs(e-a)<=n.padding&&r.isSnapping||i.snapSetting.value!==0&&r.isSnapping||n.force?n.delta?a-e:a:n.delta?1/0:e}function k(e,t){return Math.abs(e-r.crTime)*t<=5}function A(e,t,n){let i=t.regions.filter(t=>t.id!==e.id).map(({endPosition:t})=>({snappingEdge:t,distance:Math.abs(t-e.startPosition)})).filter(({distance:e})=>e<5/n).sort((e,t)=>e.distance-t.distance)[0]?.snappingEdge||0;return i&&r.isSnapping?i-e.startPosition:0}function j(e){return e.slice().sort(function(e,t){return e.order-t.order}).map(function(e,t){return e.order=t,e})}function M(e){let t=dt.find(t=>t.name===e);return t&&t.hex||dt[0].hex}function N(e){return e&&(e.soundbank||e.samplerKit)&&e.type!==`drum-machine`}function P(e){return!!(e&&e.soundbank&&!e.patterns)}function F(e){return!!e&&new Set([`guitar-bass`,`guitar-electric`,`looper`,`voice`]).has(e.type)}function ee(e){return e&&[`sampler`].includes(e.type)}function te({toggle:e=!0}={}){if(r.isAudioInputVisible&&e){r.isAudioInputActive=!1,r.isAudioInputVisible=!1;return}ne(),r.isAudioInputActive=!0,r.isAudioInputVisible=!0}function I({toggle:e=!0}={}){if(r.isPresetSettingsVisible&&e){r.isPresetSettingsVisible=!1,r.isAudioInputActive=!1;return}ne(),r.isPresetSettingsVisible=!0}function L({toggle:e=!0}={}){if(a.isVisible&&e){a.isVisible=!1;return}ne(),a.isVisible=!0,a.track=n.selectedTrack}function R({toggle:e=!0}={}){if(r.isVisible&&e){r.isVisible=!1;return}ne(),r.isAudioInputActive=!1,r.isVisible=!0}function ne(){r.isAudioInputActive=!1,r.isAudioInputVisible=!1,r.isPresetSettingsVisible=!1,a.isVisible=!1,r.isVisible=!1}function z([e,t]=[]){return ot.includes(e)&&ht.includes(t)}function re(){let e=J(()=>import(`./CthqNx7Q.js`));
282r.isInBackground=!0,X(e,{inputDevice:i},{onClose:function(){r.isInBackground=!1}})}function B({onCancel:e=()=>{},onDiscard:t,saveFn:n}){r.isInBackground=!0;let i=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));X(i,{title:`Save changes?`,subtitle:`Do you want to save all changes before leaving Studio?`,size:`small`,actions:[{label:`Discard`,color:`destructive-primary`,onClick:()=>{V(t,()=>{r.isInBackground=!1})}},{label:`Save`,color:`primary`,onClick:()=>n()}]},{escapeClose:!1,overlayClose:!1,onDismiss:function(){r.isInBackground=!1,e()}})}function V(e,t){let n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));X(n,{title:`Discard all changes?`,subtitle:`All your changes will be lost.`,size:`small`,actions:[{label:`Discard Changes`,color:`destructive-primary`,onClick:()=>{t(),e()}},{label:`Cancel`,color:`secondary`,onClick:t}]},{onClose:t})}function ie(){Z.IS_LEGACY_KEYBOARD=!Z.IS_LEGACY_KEYBOARD,Y.isLegacyKeyboard=Z.IS_LEGACY_KEYBOARD}}})();DP.$inject=[`AppNotifications`,`EditorMidiSamples`,`EditorRevision`,`EditorState`,`InputDevice`,`MidiEditorState`,`Soundbank`],angular.module(`bandlab.editor`).factory(`EditorHelper`,DP);function OP(e,t,n){(n!==void 0&&!Fe(e[t],n)||n===void 0&&!(t in e))&&rl(e,t,n)}function kP(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}function AP(e){return al(e,nl(e))}function jP(e,t,n,r,i,a,o){var s=kP(e,n),c=kP(t,n),l=o.get(c);if(l){OP(e,n,l);return}var u=a?a(s,c,n+``,e,t,o):void 0,d=u===void 0;if(d){var f=Ye(c),p=!f&&Ln(c),m=!f&&!p&&In(c);u=c,f||p||m?Ye(s)?u=s:pu(s)?u=eu(s):p?(d=!1,u=ll(c,!0)):m?(d=!1,u=il(c,!0)):u=[]:nA(c)||Nn(c)?(u=s,Nn(s)?u=AP(s):(!ye(s)||Ie(s))&&(u=cl(c))):d=!1}d&&(o.set(c,u),i(u,c,r,a,o),o.delete(c)),OP(e,n,u)}function MP(e,t,n,r,i){e!==t&&Ai(t,function(a,o){if(i||=new jn,ye(a))jP(e,t,o,n,MP,r,i);else{var s=r?r(kP(e,o),a,o+``,e,t,i):void 0;s===void 0&&(s=a),OP(e,o,s)}},nl)}function NP(e){return Fu(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(a=e.length>3&&typeof a==`function`?(i--,a):void 0,o&&Pi(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var s=n[r];s&&e(t,s,r,a)}return t})}var PP=NP(function(e,t,n){MP(e,t,n)});const FP=(function(){return function(e,t,n,r){let i=0;return{clear:a,clearRedo:o,pushUndo:l,redo:f,rewritePlaceholder:_,startToIgnorePushUndo:h,withSingleUndo:m,state:{hasUndo:s,hasRedo:c},stopToIgnorePushUndo:g,cloneRevision:p,restore:u,undo:d};function a(){n.undoStack=[],n.redoStack=[]}function o(){n.redoStack.pop()}function s(){return n.undoStack.length>0}function c(){return n.redoStack.length>0}function l(e){i>0||(n.redoStack=[],n.undoStack.push({state:p(e)}),r.hasRevisionChanges=!0,n.undoStack=n.undoStack.slice(-20))}function u(i,a){return r.hasRevisionChanges=!0,i.mastering=a.state.mastering,PP(i.metronome,a.state.metronome),setTimeout(function(){i.metronome.pristine=a.state.metronome.pristine,i.metronome.signature.pristine=a.state.metronome.signature.pristine}),i.key=a.state.key,i.volume=a.state.volume,i.trackGroups=a.state.trackGroups,i.tracks.length===a.state.tracks.length?(i.tracks.sort((e,t)=>o(e)-o(t)),jw(i.tracks,function(e){var r=MS(a.state.tracks,{id:e.id});e.automation=r.automation,e.autoPitch=r.autoPitch,e.auxSends=r.auxSends,e.effects=r.effects,e.effectsData={...e.effectsData||{},originalPresetId:r?.effectsData?.originalPresetId,aiPresetDisplayOverride:r?.effectsData?.aiPresetDisplayOverride},e.trackGroupId=r.trackGroupId,e.isFrozen=r.isFrozen,e.type=r.type,e.name=r.name,e.pan=r.pan,e.patterns=r.patterns,e.preset=r.preset,e.regions=r.regions,e.soundbank=r.soundbank,e.volume=r.volume,e.fxMix=r.fxMix,t.current.setTrackEffects(e,e.effects);let{effect:{slug:i=``}={}}=n.trackAutomationParameters.get(e)||{};if(e.effects.find(e=>e.slug===i)){let t=n.trackAutomationParameters.get(e);t.automation=e.effects[t.index].automation[t.param]}else{let t=n.trackAutomationParameters.get(e),r=[`volume`,`pan`,`fxMix`].includes(t)?t:`volume`;n.trackAutomationParameters.set(e,r)}r.samplerKit&&(e.samplerKit={...r.samplerKit})}),i.tracks=e.applyTracksOrder(i.tracks),i):(i.tracks=Jm(i.tracks,function(e){return Qm(a.state.tracks,{id:e.id})}),i.tracks=Jm(a.state.tracks,function(e){return!Qm(i.tracks,{id:e.id})}).concat(i.tracks),i.tracks.sort((e,t)=>
282o(e)-o(t)),i.tracks.forEach(e=>{let t=a.state.tracks.find(t=>t.id===e.id);t&&(e.regions=e.regions.filter(e=>t.regions.some(t=>t.id===e.id)))}),a.state.tracks.forEach(e=>{let t=i.tracks.find(t=>t.id===e.id);t&&(t.regions=e.regions.filter(e=>!t.regions.some(t=>t.id===e.id)).concat(t.regions))}),t.updateSourcesInTracks(),i.tracks=e.applyTracksOrder(i.tracks),Q.start(`anticipateScrollLayoutShift:tracksTop`),i);function o(e){return a.state.tracks.findIndex(t=>t.id===e.id)}}function d(e){if(s()){var t=n.undoStack.pop();return n.redoStack.push({state:p(e)}),u(e,t)}}function f(e){if(c()){var t=n.redoStack.pop();return n.undoStack.push({state:p(e)}),u(e,t)}}function p(e){var t=ul(e);return t.samples=null,jw(t.tracks,function(e){jw(e.regions,function(e){e.isMoving=!1})}),t}function m(e){return l(n.current),h(),Promise.resolve(e()).finally(g)}function h(){i++}function g(){i--}function _(e,t,r){[...n.undoStack,...n.redoStack,{state:r}].flatMap(({state:e})=>e.tracks).flatMap(({regions:e})=>e).filter(t=>t.sampleId===e).forEach(function(e){e.sampleId=t.id,e.isProcessing=!1,e.isPlayable=!0})}}})();FP.$inject=[`EditorHelper`,`EditorPlayer`,`EditorRevision`,`EditorState`],angular.module(`bandlab.editor`).factory(`EditorHistory`,FP);const IP=(function(){return function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){return{importFile:w,askKeyUpdateConfirmation:N};function y(e){return`type`in e&&e.type===`audio`}function b(e){return`type`in e&&e.type===`sampler_pad`}function x(e){return`type`in e&&e.type===`url`}function S(e){return`type`in e&&e.type===`beats-import`}function C(e){return`type`in e&&e.type===`beats-batch-import`}function w(e){return f.selectedRegions.clear(),c.pushUndo(f.current),c.startToIgnorePushUndo(),t().then(d.updateSourcesInTracksAsync).catch(function(e){e?.message!==`Track couldnât be added`&&i.addNotification({content:i.escapeContent(e.message||`Unable to import file. Please check that your file is not corrupted.`),classList:`alert`,autoclose:8e3})}).finally(c.stopToIgnorePushUndo);function t(){switch(!0){case y(e):return D(e);case S(e):return k(e);case C(e):return A(e);case b(e):return j(e);case x(e):return M(e);case!(`file`in e)||!e.file:return n.resolve()}return n.resolve(zr(e.file)).then(function(t){return Zr.mid.includes(t.type)?T({track:e.track,time:e.time||0},t):E(e,t)})}}function T(e,t){if(`track`in e&&e.track){if(s.isAudioTrack(e.track)){let e=Qr.readable;return i.addNotification({title:`Unable to import file`,content:`Supported file formats: ${e}`,classList:`alert`,autoclose:8e3}),Promise.resolve()}if(e.track.patterns)return i.addNotification({title:`Unable to import file`,content:`Files cannot be imported to drum machine tracks`,classList:`alert`,autoclose:8e3}),Promise.resolve()}return l.importMidToScore(t).then(async function(t){function n(e){let t=v.getPropertyValue(e.soundbankSlug,`slug`)||`studio-grand-v2-v4`;return{name:e.name||v.getPropertyValue(e.soundbankSlug,`name`),soundbank:t}}let i=e.track;for(let[a,c]of t.entries()){if(a===0)i||=await h.addTrack(n(c));else{let e=f.current.tracks.indexOf(i),t=e<0?null:f.current.tracks[e+1];i=t&&s.isMIDIEditorTrack(t)?t:await h.addTrack({...n(c),order:e<0?void 0:e})}if(!i)break;if(c.originalBpm&&f.current.metronome.pristine&&(m.updateBpm(c.originalBpm),r.$digest()),c.keySignature&&!f.current.key&&(f.current.key=c.keySignature),c.timeSignature&&s.isTimeSignatureValid(c.timeSignature)&&f.current.metronome.signature.pristine){let[e,t]=c.timeSignature;f.current.metronome.signature.notesCount=e,f.current.metronome.signature.noteValue=t,f.current.metronome.signature.pristine=!1}if(o.updateFile({blob:c,sampleId:c.id}),c.keySignature&&f.current.key&&s.isTrackTransposable(i)){let t=await g.transposeScoreKey(c.id,c.keySignature,f.current.key,i.soundbank);m.createRegionFromMidiScore(t,i,e.time);continue}m.createRegionFromMidiScore(c,i,e.time)}})}function E(e,t){return`track`in e&&e.track&&!s.isAudioTrack(e.track)?(i.addNotification({title:`Unable to import file`,content:`Supported file formats: .mid`,classList:`alert`,autoclose:8e3}),Promise.resolve()):ti(t).then(function(e){let t=Ur(e),n=t.then(Hl);return Promise.all([t,n])}).then(async function([t,n]){try{e.track=e.track||await h.addTrack({name:t.name||e.name})}catch{return}if(n.keySignature&&!f.current.key&&(f.current.key=n.keySignature),n.bpm&&f.current.metronome.pristine&&!p.songDuration&&m.updateBpm(n.bpm),n.timeSig&&s.isTimeSignatureValid([n.timeSig.beats,n.timeSig.beatUnit])&&f.current.metronome.signature.pristine){let{beats:e,beatUnit:t}=n.timeSig;f.current.metronome.signature.notesCount=e,f.current.metronome.signature.noteValue=t,f.current.metronome.signature.pristine=!1}let r=`multiple`in e&&e.multiple?void 0:n.endPosition,i=`multiple`in e&&e.multiple?0:n.sampleOffset;return m.createRegionFromAudioFile(t,e.track,e.time,r,i)})}async function D(i){let{claimSample:o,openSoundsGetMoreCreditsModal:c,preloadSoundsCredits:l}=jo(t);if(await l(),!i.original.isUserUploaded&&!i.original.isFree&&!await c(`studio`,i.original.id))return;try{!i.original.isFree&&!i.original.isUserUploaded&&o(i.id,{fromFavorites:i.fromFavorites,productOrigin:`mix_editor`,
282sample:i.original,triggeredFrom:i.triggeredFrom}),i.track=i.track||await h.addTrack({name:i.name})}catch(e){return n.reject(e)}Js.audioNode?.onended&&Js.audioNode.stop(),Ws.pause();let u=0;i.key&&(!f.current.key&&await N(i.key)&&(f.current.key=i.key),u=g.transposeKeys(i.key,f.current.key??i.key)),i.bpm&&f.current.metronome.pristine&&!p.songDuration&&m.updateBpm(i.bpm);let d=i.bpm?a.clampPlaybackRate(f.current.metronome.bpm/i.bpm):1,_=m.createRegionPlaceholder(i.track,{duration:Math.max(i.duration/d,kt),name:i.name,pitchShift:u,playbackRate:d},`time`in i&&i.time?i.time:0);e.eventTrack(`Import sample from Loops API`,{category:`Mix Editor`,extra:{...i.original,collectionSlug:`collectionSlug`in i?i.collectionSlug:void 0,gesture:i.gesture,triggeredFrom:i.triggeredFrom,importTarget:`track`,fromFavorites:i.fromFavorites,fromSearch:i.fromSearch}});async function v(e){m.updateRegionPlaceholder(_.sampleId,e),_.isProcessing=!0,await a.convertRegion(_),_.isProcessing=!1}async function y(e){await O(_,e.buffer,i),ja(i.track.regions,_)}return(i.original.isUserUploaded?m.createSampleFromPremiumAudioLoopUrl(i):m.createSampleFromAudioLoopURL(i)).then(function(e){return s.isVirtualInstrumentTrack(i.track)?y(e):v(e)}).catch(function(e){return ja(i.track.regions,_),n.reject(e)}).finally(function(){r.$applyAsync()})}async function O(e,n,r){let{requireMembership:a,generateMidiRegionFromAudio:o}=ou(t);if(!await a(`audio_to_midi`))return;let s=await _r(n),c=await o({region:e,newTrackId:r.track.id,regionSampleBlob:s}).catch(()=>{});if(!c)return;let{region:l,suggestedAudioType:u,suggestedSoundbankSlug:p}=c;if(p){let e=v.getPropertyValue(p,`instrumentSlug`);e&&(r.track.soundbank=p,r.track.type=e,v.setFromSoundbank(p,e))}r.track.regions.push(l),f.selectedRegions=new Set([l]),await d.updateSourcesInTracksAsync(),i.addNotification({title:`AudioâtoâMIDI applied`,...u&&{content:`${Xu[u]} detected and converted to MIDI.`},classList:`success`,autoclose:5e3})}async function k(e){let t,i;try{if(t=await h.addTrack({name:e.name}),!t)return;i=m.createRegionPlaceholder(t,{duration:Math.max(e.duration,kt),name:e.name,pitchShift:0,playbackRate:1},e.time);let{value:n}=await _.getJSON(`samples/${e.sampleId}?format=m4a`),r=await _.getBuffer(n),a=Object.assign(await cr(r),{id:e.sampleId,name:e.name});m.updateRegionPlaceholder(i.sampleId,{id:e.sampleId,isMidi:!1,buffer:a})}catch(e){return t&&i&&ja(t.regions,i),n.reject(e)}finally{r.$applyAsync()}}async function A(e){let t=[];try{t=e.samples.map(({sampleId:t,name:n},r)=>{let i=u.createTrack({name:n,order:r});return{sampleId:t,name:n,track:i,placeholder:m.createRegionPlaceholder(i,{duration:Math.max(e.duration,kt),name:n,pitchShift:0,playbackRate:1},e.time)}
282}),f.current.tracks.push(...t.map(({track:e})=>e)),r.$applyAsync(),await Promise.all(t.map(async({sampleId:e,name:t,placeholder:n})=>{let{value:r}=await _.getJSON(`samples/${e}?format=m4a`),i=await _.getBuffer(r),a=Object.assign(await cr(i),{id:e,name:t});m.updateRegionPlaceholder(n.sampleId,{id:e,isMidi:!1,buffer:a})})),o.addSnapshot(f.current)}catch(e){return t.forEach(({track:e,placeholder:t})=>ja(e.regions,t)),n.reject(e)}finally{r.$applyAsync()}}function j(e){let{index:n,time:r}=e,i=`track`in e?e.track:null;return yS(t,n).then(async function(e){try{i||=await h.addTrack({})}catch{return}return m.createRegionFromAudioFile(e,i,r)})}async function M(e){try{e.track=e.track||await h.addTrack({name:e.name})}catch(e){return n.reject(e)}let t=m.createRegionPlaceholder(e.track,{duration:Math.max(e.duration/1,kt),name:e.name,pitchShift:0,playbackRate:1},e.time||0);return import(`./DvQD5s06.js`).then(e=>e.t).then(function({logChatStudioAudioImport:e}){e()}),e.original={audioUrl:e.url},m.createSampleFromPremiumAudioLoopUrl(e).then(function(e){return m.updateRegionPlaceholder(t.sampleId,e),t.isProcessing=!0,a.convertRegion(t)}).then(function(){t.isProcessing=!1}).catch(function(r){return ja(e.track.regions,t),n.reject(r)}).finally(function(){r.$applyAsync()})}function N(e){return new Promise(function(t){let n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));p.isInBackground=!0,X(n,{size:`small`,title:`Set Project Key to ${e}?`,subtitle:`Regions will be transposed when possible.`,actions:[{label:`Donât Set`,color:`secondary`,onClick:()=>t(!1)},{label:`Set`,color:`primary`,onClick:()=>t(!0)}]},{escapeClose:!1,overlayClose:!1,onClose:()=>{t(!1),p.isInBackground=!1}})})}}})();IP.$inject=[`$analytics`,`$injector`,`$q`,`$rootScope`,`AppNotifications`,`AudioStretch`,`EditorDB`,`EditorHelper`,`EditorHistory`,`EditorMidiScore`,`EditorModel`,`EditorPlayer`,`EditorRevision`,`EditorState`,`EditorTimeline`,`EditorTrack`,`MidiEditor`,`Sample`,`Soundbank`],angular.module(`bandlab.editor`).factory(`EditorImporter`,IP),angular.module(`bandlab.editor`).factory(`EditorLoader`,[`$rootScope`,`EditorRevision`,`EditorState`,`Modal`,function(e,t,n,r){var i={loadSample:{title:`Loadingâ¦`,label:`Preparing audioâ¦`},postProcessAudio:{title:`Loadingâ¦`,label:`Processing audioâ¦`},uploadMeta:{title:`Savingâ¦`,label:`Updating song metadataâ¦`},createMixdown:{title:`Savingâ¦`,label:`Creating mixdownâ¦`},uploadMixdown:{title:`Savingâ¦`,label:`Syncing mixdownâ¦`},export:{title:`Exporting audioâ¦`,label:`Save Audio As File`,onCancel:function(){p(),t.mixingTasks=[],n.isMixing=!1}},masterTrack:{title:`Mastering`,label:`Enhancing your mixdown to distribution qualityâ¦`,rate:1e3,onCancel:function(){e.$broadcast(`Mastering:cancel`)}}},a=0,o=[],s=!1,c={destroy:angular.noop,show:angular.noop};let l=[];return{getAdsQueue:u,getDone:f,getQueue:d,finishTask:_,flushAdsQueue:h,flushQueue:p,pushAd:m,pushTask:g};function u(){return l}function d(){return o}function f(){return a}function p(){o.splice(0,o.length),a=0,c.destroy(),s=!1}function m(e){l.push({...e,height:640,width:360})}function h(){l.splice(0,l.length)}function g(e,t){var n=Object.assign({},i[e],t);return s||=(c=new r({templateUrl:`https://www.bandlab.com/web-app/editor/partials/_mix-editor-loader-c190ae83a.html`,overlayClose:!1,noStateChangeListeners:!0}),c.show(),!0),o.push(n),n}function _(e){o.indexOf(e)!==-1&&(o.splice(o.indexOf(e),1),a++)}}]).controller(`EditorLoaderCtrl`,[`$interval`,`$rootScope`,`$scope`,`$timeout`,`EditorLoader`,function(e,t,n,r,i){var a;n.adsQueue=i.getAdsQueue(),n.currentAd=null,n.flushAdsQueue=i.flushAdsQueue,n.queue=i.getQueue(),n.progress=0,n.$watch(`adsQueue.length`,function(){n.currentAd=n.adsQueue[0]}),n.$watch(`queue.length`,function(t){t?(n.title=n.queue[0].title,n.label=n.queue[0].label,n.onCancel=n.queue[0].onCancel):n.currentAd&&(n.title=`Studio is ready`,n.label=n.currentAd.countdown?Go(n.currentAd.countdown):`\xA0`),e.cancel(a),a=e(function(){var e=c(),r=l(),i=Math.min(n.progress+1,r,98);n.progress=n.queue[0]?.realProgress===void 0?Math.min(Math.max(e,i),100):s(),(e===100||t===0)&&!n.adsQueue.length&&o()},n.queue[0]&&n.queue[0].rate||500)});function o(){i.flushQueue(),e.cancel(a),n.progress=100,r(function(){n.progress=0},1e3)}function s(){let e=(n.queue[0]?.realProgress??0)/n.queue.length;return Math.round((i.getDone()+e)/(i.getDone()+n.queue.length)*100)||0}function c(){return Math.round(i.getDone()/(i.getDone()+n.queue.length)*100)||0}function l(){return Math.round((i.getDone()+1)/(i.getDone()+n.queue.length)*100)||0}let u=t.$on(`adsManager:allAdsCompleted`,function(){n.isAdCompleted=!0,i.flushAdsQueue()}),d=t.$on(`adsManager:adError`,function(){n.isAdCompleted=!0,i.flushAdsQueue()}),f=t.$on(`adsManager:adStarted`,function(){n.currentAd&&p(n.currentAd.countdown)});n.$on(`$destroy`,function(){u(),d(),f(),i.flushAdsQueue()}),n.$watch(`isAdCompleted`,function(e){e&&(n.title=`Studio is ready`,n.label=`\xA0`)});function p(e){let t=e-1;r(function(){n.isAdCompleted=t===0,n.queue.length===0&&(n.isAdCompleted?(n.title=`Studio is ready`,n.label=`\xA0`):n.label=Go(t)),n.currentAd.countdown&&(n.currentAd.countdown=t),t>0&&p(t)},1e3)}}]),angular.module(`bandlab.editor`).factory(`EditorMidiSamples`,function(){return new Map}).factory(`EditorMidiScore`,[`EditorDB`,`EditorMidiSamples`,`EditorRevision`,function(e,t,n){return{convertMidiToScore:o,createScore:r,editScore:i,updateMidiRegionWithScore:a,exportScoreToMid:f,flattenNotes:m,getExactDuration:c,getMidiExcerptScore:h,getNotesTime:u,getRoundedDuration:l,importMidToScore:s};function r(){var e={id:ze(),key:n.current.key,notes:[],pitchShift:0};return t.set(e.id,e),e}function i(n,r,{pitchShift:i=0}={}){var a=ze(),o={...n};return o.id=a,o.notes=p(r),o.pitchShift=i,e.updateFile({blob:o,sampleId:a}),t.set(a,o),o}function a(e,t){if(e._midiTakes){let n=e.sampleId,r=e._midiTakes.findIndex(e=>e===n);e._midiTakes.splice(r,1,t.id)}
282e.sampleId=t.id}async function o(e,t,n){let{parse:r}=await Promise.resolve().then(()=>Wj),{parts:i}=r(await ur(e));return i.map(e=>({id:t||ze(),notes:p(e).map(function(e){return e.id=ze(),e}),length,pitchShift:0,trackId:n}))}function s(e,n,r){return Promise.all([Promise.resolve().then(()=>Wj),Ql(e)]).then(function([{parse:e},[t,n,r]]){let i=t.tracks.map(function(i,a){return ur(n[a]).then(function(n){let{parts:a}=e(n);return[t,r,i,a]})});return Promise.all(i)}).then(async function(a){return r&&n&&await Tl(n,e),a.length?a.map(o):(t.set(n,{id:n,pitchShift:0,notes:[],trackId:r}),[]);function o([{tempoBPM:e,timeSig:{beats:a,beatUnit:o},tracks:[{length:s}]},c,{program:l,soundbankSlug:u,name:d},[f]]){let m={id:n||ze(),keySignature:c,name:d,notes:f.map(function(e){return e.id=ze(),e}),length:s,originalBpm:Math.round(e),pitchShift:0,programChange:l,soundbankSlug:u,timeSignature:a&&o?[a,o]:void 0,trackId:r};t.set(m.id,m);let h=p(m.notes);return m.notes.length===h.length?(m.notes=h,m):i(m,h)}})}function c(e,n){var r=t.get(e);return gt(r.notes.map(e=>ad(e.time+e.duration,n)))}function l(e,t,n){var r=c(e,n),i=en({bpm:n,signature:t});return i*Math.ceil(r/i)}function u(e,n){return aO(t.get(e).notes.map(function(e){return Object.assign({},e,{duration:ad(e.duration,n),time:ad(e.time,n)})}),`time`)}function d(e){return Promise.resolve().then(()=>Yj).then(function({generate:t}){return t({parts:[e],transport:{bpm:n.current.metronome.bpm,timeSignature:[n.current.metronome.signature.notesCount,n.current.metronome.signature.noteValue],keySignature:n.current.key}})}).then(function(e){return new Blob([Sr(e)],{type:`audio/midi`})}).catch(function(t){return Sentry.onLoad(function(){Sentry.captureException(t,{extra:{notes:e,metronome:n.current.metronome}})}),Promise.reject(t)})}function f(e){return d(t.get(e).notes)}function p(e){let t=e.filter(function(e){let t=e.midiNote>=0&&e.midiNote<=127||e.eventName===`sustain`||e.eventName===`pitchBend`;return t||Sentry.onLoad(function(){Sentry.captureException(`Out of range MIDI note`,{extra:e})}),t});return t=aO(t,e=>-e.duration),t=aO(t,e=>e.time),t}function m(e,t){let r=n.current.metronome.bpm,i=t.endPosition-t.startPosition,a=sd(t.sampleOffset,r),o=sd(i,r),s=t.loopLength?sd(t.loopLength,r):o;return aO(e.flatMap(function(e){let t=sd(e.time,r);return t>=a&&t-a<s?c(e,t):[]}),`time`);function c(e,n){for(var c=t.loopLength?i/t.loopLength:1,l=n-a,u=[],d=0;d<c&&l<o;)u.push({...e,time:ad(l,r),inLoop:d}),d++,l=n+s*d-a;return u}}function h(e,t,r,i){return Vl(e,t,sd(r,n.current.metronome.bpm),sd(i,n.current.metronome.bpm)).then(e=>s(e,t))}}]),LP.$inject=[`EditorState`],angular.module(`bandlab.editor`).factory(`EditorMixdown`,LP);function LP(e){return{renderRegionToMidi:i,renderRegionToWav:t,renderRevisionToWav:r,renderTrackToMidi:a,renderTrackToWav:n};async function t(...t){try{return e.isMixing=!0,await Ul(...t)}finally{e.isMixing=!1}}async function n(...t){try{return e.isMixing=!0,await jl(...t)}finally{e.isMixing=!1}}async function r(...t){try{return e.isMixing=!0,await kl(...t)}finally{e.isMixing=!1}}async function i(...t){try{return e.isMixing=!0,await Cl(...t)}finally{e.isMixing=!1}}async function a(...t){try{return e.isMixing=!0,await Al(...t)}finally{e.isMixing=!1}}}var RP=Object.prototype,zP=RP.hasOwnProperty,BP=Fu(function(e,t){e=Object(e);var n=-1,r=t.length,i=r>2?t[2]:void 0;for(i&&Pi(t[0],t[1],i)&&(r=1);++n<r;)for(var a=t[n],o=nl(a),s=-1,c=o.length;++s<c;){var l=o[s],u=e[l];(u===void 0||Fe(u,RP[l])&&!zP.call(e,l))&&(e[l]=a[l])}return e});VP.$inject=[`EditorHelper`,`Me`,`Revision`,`Soundbank`],angular.module(`bandlab.editor`).factory(`EditorModel`,VP);function VP(e,t,n,r){let i=Math.round(Math.random()*100);return{createRegion:a,createRevision:o,createTrack:s,fromRegionData:d,fromSamplerKitData:f,fromTrackData:u,getTrackType:l};function a(e){let t=BP({},e,{automation:{pan:[],volume:[],fxMix:[],sendLevel:[]},canEdit:!0,fadeIn:0,fadeOut:0,gain:1,id:ze(),loopLength:0,name:`Region`,playbackRate:1,pitchShift:0,sampleId:Be,sampleOffset:0,startPosition:0,endPosition:0,trackId:Be});return t.name=mr(t.name??``,40).trim(),t}function o(e){return new n(BP({},e,{canEdit:!0,canPublish:!0,creator:t,genres:[{id:`other`,name:`Other`}],id:null,key:null,lyrics:null,mastering:null,metronome:{bpm:120,pristine:!0,signature:{notesCount:4,noteValue:4,pristine:!0}},pan:0,parentId:null,samples:[],song:null,title:`New Revision`,tracks:[],trackGroups:[],volume:1,auxChannels:pt()}
282))}function s(e){let t=BP({},e,{automation:{volume:[],pan:[],sendLevel:[],fxMix:[]},canEdit:!0,channel:1,effects:[],id:ze(),isMuted:!1,isSolo:!1,name:`Track`,order:0,pan:0,patterns:null,preset:jt.slug,regions:[],soundbank:null,trackGroupId:null,volume:1,fxMix:an.default,auxSends:Qt(),protected:[]}),n=c();return BP(t,{color:n.hex,colorName:n.name,type:l(t)}),t.type===`drum-machine`&&!t.patterns&&(t.patterns=[]),t.name=mr(t.name,128).trim(),t}function c(){return dt[++i%dt.length]}function l(t){return t.patterns?dn:t.samplerKit?bt:t.soundbank?r.getPropertyValue(t.soundbank,`instrumentSlug`):e.isAudioTrack(t)?t.type:St}function u(e){let{id:t,name:n,order:r,canEdit:i,isMuted:a,isSolo:o,isFrozen:c,preset:l,autoPitch:u,aux:p,pan:m,volume:h,fxMix:g,regions:_,trackSampleId:v,loopPack:y,instrumentData:b,samplerKit:x,patterns:S}=e,C=[{id:p.destinationId,automation:[],sendLevel:p.sendLevel}],w={volume:h.automationCurve,pan:m.automationCurve,fxMix:g.automationCurve,sendLevel:[]},T=y===``?null:y,E;b&&(E=b.soundbank[0]===`{`?JSON.parse(b.soundbank):b.soundbank);let D;x&&(D=f(x));let O;return S&&(O=S.map(e=>({notes:e.noteRows,sampleId:e.sampleId}))),s({id:t,name:n,order:r,canEdit:i,isMuted:a,isSolo:o,isFrozen:c,preset:l,autoPitch:u,auxSends:C,automation:w,effects:[],pan:m.value,volume:h.value,fxMix:g.value,regions:_.map(e=>d(e)),loopPack:T,soundbank:E,samplerKit:D,patterns:O,sampleId:v})}function d(e){let{id:t,trackId:n,name:r,startPosition:i,endPosition:o,loopLength:s,fadeIn:c,fadeOut:l,gain:u,playbackRate:d,pitchShift:f,activeTake:p,takes:m}=e,h=m[p];if(!h)throw Error(`fromRegionData: active take index is invalid`);let g={id:t,trackId:n,name:r,startPosition:i,endPosition:o,loopLength:s,fadeIn:c,fadeOut:l,gain:u,playbackRate:d,pitchShift:f},_={sampleId:h.sampleId,sampleOffset:h.sampleOffset,pitchTimeCorrection:h.pitchTimeCorrection,takeList:m},v={automation:{pan:[],volume:[],fxMix:[],sendLevel:[]},canEdit:!0};return a({...g,..._,...v})}function f(e){let t={...e,kit:JSON.parse(e.kit)};return t.kit.layers=t.kit.layers||[],t}}const HP={class:`ds-modal ds-modal-size-small ds-modal-with-footer`},UP={class:`ds-modal-header`},WP={class:`ds-modal-title`},GP={class:`ds-modal-content`},KP={class:`ds-modal-content-p`},qP={class:`ds-modal-footer ds-modal-footer-one-button`},JP={__name:`MixEditorWarnEndOfTrackModal`,emits:[`closeModal`],setup(e,{emit:t}){let n=t;return(e,t)=>(F(),G(`section`,HP,[K(`header`,UP,[K(`h2`,WP,y(`Track length limit reached`),1)]),K(`section`,GP,[K(`p`,KP,y(`Move the playhead back to record or play`),1)]),K(`section`,qP,[q(Ue,{type:`button`,size:`medium`,color:`primary`,onClick:t[0]||=e=>n(`closeModal`)},{default:W(()=>[B(y(`OK`),1)]),_:1})]),q(Pa,{onClick:t[1]||=e=>n(`closeModal`)})]))}},YP=(function(){return function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=cu(t),y={record:0,play:0},b=Promise.resolve(),x,S=()=>{};return{pausePlay:P,startPlay:N,startPlayAnimationFrame:ee,startPositions:y,stop:D,stopPlayAnimationFrame:te,playFromStart:C,togglePlay:w,toggleRecord:T};function C(){if(!p.isPlaying){let e=p.isCycling?a.get().startTime:0;c.setPlaybackPosition(e)}w()}function w(){if(Math.ceil(p.crTime)>=Z.SONG_DURATION_MAX){F();return}if(p.isFollowingPlayhead=!0,_.isFollowingPlayhead=!0,!p.isPlaying){N();return}if(p.isRecording){A({resetPlayPositionAfterStop:!1});return}P()}function T(){if(p.isRecording){A({continuePlayback:!0,resetPlayPositionAfterStop:!1});return}return O()}function E(e){let t=r.$on(Mc,function(){t(),e()})}async function D(){p.isRecording?await A():p.isPlaying&&(await P(),await c.jumpBack()),await M(),c.ensurePlayheadVisible()}async function O(){if(!u.selectedTrack?.id||!u.armedTracks[1]&&!u.armedTracks[2]){i.addNotification({title:Jr,content:Ar,autoclose:8e3});return}if(!u.selectedTrack.id)return;if(oc(u.selectedTrack)){i.addNotification({title:vr,content:jr,autoclose:8e3});return}if(Math.ceil(p.crTime)>=Z.SONG_DURATION_MAX){F();return}let e=ul(u.current);if(S=we(()=>s.pushUndo(e)),p.isFollowingPlayhead=!0,_.isFollowingPlayhead=!0,await c.current.setCountIn(Z.COUNT_IN_DURATION),p.isCycling){let e=a.get();y.record=y.play=e.startTime}else{let e=await c.current.transport.getPlayPositionTicks(),t=await c.current.transport.ticksToSecs(e);y.record=y.play=t}p.isRecordingAutomation&&s.startToIgnorePushUndo();try{let e=o.isBandLabInstrumentTrack(u.armedTracks[1])&&u.armedTracks[1]||o.isBandLabInstrumentTrack(u.armedTracks[2])&&u.armedTracks[2];if(e&&l.setSelected(e),b=c.current.startRecording(y.record),x=!0,h.isRegionVisible({left:p.crTime*p.scalePx,width:1},f.timelineLeft))return;d.scrollToX({scalePx:p.scalePx,time:y.record})}catch{k()}}function k(e,{resetPlayPositionAfterStop:t=!0}={}){t&&E(function(){c.setPlaybackPosition(y.record)}),P(),p.isRecordingAutomation&&s.stopToIgnorePushUndo()}async function A({continuePlayback:e=!1,resetPlayPositionAfterStop:t=!0}={}){let r=n.defer();if(p.isPlaying&&await c.current.getIsCountingIn()){k(Error(yr));return}t&&E(async function(){await c.jumpBack(),r.resolve()}),x&&=(b=b.then(e=>e()),!1),j(),e||P(),await r.promise}async function j(){u.selectedRegions.clear(),S();try{let e=await b;e.flat().some(e=>e.endPosition-e.startPosition<.025)&&i.addNotification({title:lr,content:Lr.replace(`{$1}`,String(kt)),autoclose:5e3});let t=e.map(e=>e.filter(tt)),n=!1,{returnVal:r}=await v.apply(async e=>{(await e.finishEditingSession()).msg!==`No editing session to finish, editInProgress already false`&&Sentry.onLoad(()=>{Sentry.captureException(Error(`Editing session was not finished in completeRecord()`))});let r=new Set;for(let e of t){let t=e[0];if(!t)continue;let i=u.current.tracks.find(e=>e.id===t.trackId);if(o.isAudioTrack(i))for(let t of e)n=(await c.current.addRegion({...t,name:i?.name}
282,!0))?.takeAccretionFailed||n,r.add(t.id);else await c.current.addRegion({...t,name:i?.name}),r.add(t.id)}return r});p.availableFeaturesSet.has(`comping`)&&n&&i.addNotification({title:`Can't record new takes over regions that are looped, stretched, or pitch-shifted.`,classList:`warning`,autoclose:8e3}),u.selectedRegions=new Set(u.current.tracks.flatMap(e=>e.regions).filter(e=>r.has(e.id)));for(let e of t){let t=e[0];if(!t)continue;let n=u.current.tracks.find(e=>e.id===t.trackId);if(o.isAudioTrack(n))continue;if(!n)throw Error(`Missing track for recorded region`);let r=n.regions.find(e=>e.id===t.id);if(!r)throw Error(`Missing recorded region, change set must have failed to apply`);for(let t=1;t<e.length;t++){let n=e[t];if(!n)continue;let i=n.takes[n.activeTake]?.sampleId;i&&(await v.retrieveNewSamplesFromVirtualFileSystem([i]),m.addTakeToRegion(i,r))}}}finally{lO.value&&yO(),r.$applyAsync()}p.isRecordingAutomation&&s.stopToIgnorePushUndo(),e.eventTrack(`End Recording`,{category:`Mix Editor`,label:[u.armedTracks[1]?.type,u.armedTracks[2]?.type].filter(Boolean).join(` + `)})}async function M(){await c.syncCrTimeToEngineTime(),p.crTime>=Z.SONG_DURATION_MAX&&(p.isRecording?A():P(),p.crTime=Z.SONG_DURATION_MAX)}async function N(){p.crTime>=Z.SONG_DURATION_MAX||(g.update(),await c.current.playSong())}async function P(){await c.pausePlaying()}function F(){p.isInBackground=!0,X(JP,{},{escapeClose:!0,overlayClose:!0,onClose:()=>{p.isInBackground=!1}})}function ee(){Q.add(`playing`,M),Q.start(`playing`,!0,p)}function te(){Q.stop(`playing`),Q.remove(`playing`,M)}}})();YP.$inject=[`$analytics`,`$injector`,`$q`,`$rootScope`,`AppNotifications`,`EditorCycle`,`EditorHelper`,`EditorHistory`,`EditorPlayer`,`EditorTrack`,`EditorRevision`,`EditorScroll`,`EditorScrollState`,`EditorState`,`EditorTimeline`,`EditorView`,`Metronome`,`MidiEditorState`],angular.module(`bandlab.editor`).factory(`EditorPlayback`,YP);const XP=(function(){return function(e,t,n,r,i,a,o,s,c,l,u,d){let f=Promise.resolve();var p={current:{},init:m,jumpBack:g,pausePlaying:h,setPlaybackPosition:_,syncCrTimeToEngineTime:v,updateSourcesInTracks:y,updateSourcesInTracksAsync:b,ensurePlayheadVisible:x};return p;function m(){return f=pd().then(i=>wu(e,{transportListener:{onCycleWrapped:function(e){return t.$broadcast(o.endOfCycle,e),Promise.resolve()},onPlayStateChanged:async function(e){await v(),u.isPlaying=e,t.$broadcast(e?Nc:zc)},onRecordStateChanged:async function(e){r.resetCycleCount(),await v(),u.isRecording=e,t.$broadcast(e?$c:Mc)},onMaxLengthReached:function(){return n.addNotification({id:`regions_over_minutes`,title:`The region was extended as much as possible â up to ${Z.SONG_DURATION_MAX/60} minutes.`,autoclose:5e3}),Promise.resolve()}},engineService:i})).then(function(e){p.current=e}),f}function h(){return f.then(function(){p.current.stopMix()})}async function g(){await p.current.transport.back(),await v(),x(),Q.start(`syncPlayhead`),Q.start(`syncVolume`)}async function _(e){let t=At(e);await p.current.setPlayPosition?.(t),await v(),Q.start(`syncPlayhead`),Q.start(`syncVolume`)}async function v(){let e=await p.current.transport.getPlayPositionTicks();u.crTime=await p.current.transport.ticksToSecs(e)}function y(){p.current.updateMix(),i.updateSongDuration(),u.songDuration&&a.addSnapshot(s.current)}async function b(){await p.current.updateMix(),i.updateSongDuration(),u.songDuration&&a.addSnapshot(s.current)}function x(){!d.isRegionVisible({left:u.crTime*u.scalePx,width:1},l.timelineLeft)&&Z.FOLLOW_PLAYHEAD&&c.scrollToX({time:u.crTime,scalePx:u.scalePx})}}})();XP.$inject=[`$injector`,`$rootScope`,`AppNotifications`,`EditorCycle`,`EditorData`,`EditorDB`,`editorEvents`,`EditorRevision`,`EditorScroll`,`EditorScrollState`,`EditorState`,`EditorView`],angular.module(`bandlab.editor`).factory(`EditorPlayer`,XP),angular.module(`bandlab.editor`).factory(`EditorReset`,[`$rootScope`,`EditorHistory`,`EditorLoader`,`EditorMidiSamples`,`EditorPlayback`,`EditorRevision`,`EditorScroll`,`EditorState`,`EditorWaveform`,`InputDevice`,`MidiDevice`,`MidiEditor`,`MidiEditorState`,`Soundbank`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p){return{reset:m,resetBeforeInitialization:g};function m(){l.reset(),p.reset(),n.flushQueue(),i.pausePlay(),i.stopPlayAnimationFrame(),t.clear(),c.deleteUnusedCache(),f.isVisible=null,Zs.value=null,a.selectedRegions.clear(),a.selectedTrack=null,a.trackFreezing.clear(),u.unplug(),d.deleteMidiEditors(),hx.value=null,Q.reset([`playing`,`scroll:notesTop`,`scroll:timelineLeft`,`scroll:tracksTo
282p`,`scale:timeline`]),s.reset(),o.reset(),h()}function h(){for(var t in e.$$listeners)/MixEditor/.test(t)&&delete e.$$listeners[t]}function g(){r.clear(),s.hasRevisionChanges=null}}]);const ZP=(function(){return function(){let e={autokeyUsedCount:0,armedTracks:{1:null,2:null},current:{metronome:{bpm:120,signature:{notesCount:4,noteValue:4}},key:null,tracks:[],song:{}},lastTrack:{[it]:null,[xt]:null,[ut]:null,[bt]:null,[St]:null},mixingTasks:[],redoStack:[],releaseLock:()=>{},selectedRegions:new Set,selectedTrack:null,trackEffectsWithActiveRealtimeVisualization:new WeakMap,trackAutomationParameters:new WeakMap,trackFreezing:h(new Map),trackMonitoring:h(new WeakMap),undoStack:[]};return D(e)}})();angular.module(`bandlab.editor`).factory(`EditorRevision`,ZP);const QP=(function(){return function(e,t){let n=window.getComputedStyle(document.body),r=parseInt(n.getPropertyValue(`--mix-editor-ruler-buttons-group-width`)),i=parseInt(n.getPropertyValue(`--midi-editor-ruler-buttons-group-width`));return new Proxy({notesLeft:0,notesTop:0,timelineLeft:0,tracksTop:0,notesEl:{},notesTimelineEl:{},timelineEl:{},tracksEl:{},RULER_TOP_BUTTONS_WIDTH:r,RULER_BOTTOM_BUTTONS_WIDTH:i,SCROLL_STEP:30},{set:function(n,a,o){if(n[a]===o)return!0;if(a===`notesLeft`||a===`notesTop`||a===`timelineLeft`||a===`tracksTop`){if(!angular.isNumber(o))throw TypeError(`Expected value to be number`);switch(a){case`notesLeft`:if(!(n.notesTimelineEl instanceof HTMLElement))return!0;o=Math.max(o,0),o=Math.min(o,t.containerWidth+i+12-n.notesTimelineEl.clientWidth),o!==n.notesTimelineEl.scrollLeft&&(Q.start(`scroll:notesLeft`,!1,o,!0),t.isLocked&&!t.isZooming&&(Q.start(`scroll:timelineLeft`,!1,o,!0),n.timelineLeft=o));break;case`notesTop`:if(!(n.notesEl instanceof HTMLElement))return!0;o=Math.max(o,0),o=Math.min(o,n.notesEl.scrollHeight-n.notesEl.clientHeight),o!==n.notesEl.scrollTop&&Q.start(`scroll:notesTop`,!1,o,!0);break;case`timelineLeft`:if(!(n.timelineEl instanceof HTMLElement))return!0;o=Math.max(o,0),o=Math.min(o,e.containerWidth+r+12-n.timelineEl.clientWidth),o!==n.timelineEl.scrollLeft&&(Q.start(`scroll:timelineLeft`,!1,o,!0),t.isLocked&&!t.isZooming&&(Q.start(`scroll:notesLeft`,!1,o,!0),n.notesLeft=o));break;case`tracksTop`:if(!(n.tracksEl instanceof HTMLElement))return!0;o=Math.max(o,0),o=Math.min(o,n.tracksEl.scrollHeight-n.tracksEl.clientHeight),o!==n.tracksEl.scrollTop&&Q.start(`scroll:tracksTop`,!1,o,!0)}return n[a]=o,!0}if(a===`notesEl`||a===`notesTimelineEl`||a===`timelineEl`||a===`tracksEl`){if(!(o instanceof HTMLElement))throw TypeError(`Expected value to be HTMLElement`);return n[a]=o,!0}if(a===`RULER_TOP_BUTTONS_WIDTH`||a===`RULER_BOTTOM_BUTTONS_WIDTH`||a===`SCROLL_STEP`)return!0;throw Error(`Setter not implemented for ${a}`)}})}})();QP.$inject=[`EditorState`,`MidiEditorState`];const $P=(function(){return function(e){return Q.add(`anticipateScrollLayoutShift:tracksTop`,function(){e.tracksEl instanceof HTMLElement&&(Q.start(`scroll:tracksTop`,!1,e.tracksEl.scrollTop,!0,!1),e.tracksEl.scrollTop!==e.tracksTop&&(e.tracksTop=e.tracksEl.scrollTop))}),{focusedNotesRescale:m,focusedRescale:p,manualScroll:i,manualNotesScroll:a,reset:t,scrollNotesToX:s,scrollNotesToY:u,scrollToBottom:n,scrollToX:o,scrollToY:l,scrollIntoView:r};function t(){e.notesLeft=0,e.notesTop=0,e.timelineLeft=0,e.tracksTop=0,e.notesEl=document.createElement(`div`),e.timelineEl=document.createElement(`div`),e.tracksEl=document.createElement(`div`)}function n(){e.tracksTop=1/0}function r({top:t,bottom:n}){if(!(e.tracksEl instanceof HTMLElement))return;let{clientHeight:r,scrollTop:i}=e.tracksEl,a=i+r;if(!(t>=i&&n<=a)){if(t<i){e.tracksTop=t;return}n>a&&(e.tracksTop=n-r)}}function i({left:t,right:n,up:r,down:i}={}){let a=e.SCROLL_STEP;t||n?e.timelineLeft+=t?-a:a:(r||i)&&(e.tracksTop+=r?-a:a)}function a({left:t,right:n,up:r,down:i}={}){let a=e.SCROLL_STEP;t||n?e.notesLeft+=t?-a:a:(r||i)&&(e.notesTop+=r?-a:a)}function o(t){e.timelineEl instanceof HTMLElement&&(e.timelineLeft=c(e.timelineLeft,e.timelineEl,t)||e.timelineLeft)}function s(t){e.notesTimelineEl instanceof HTMLElement&&(e.notesLeft=c(e.notesLeft,e.notesTimelineEl,t)||e.notesLeft)}
282function c(e,t,n){if(`time`in n&&tt(n.time)&&tt(n.scalePx))return Math.round(n.time*n.scalePx)-Math.round(t.clientWidth/2);if(`direction`in n&&n.direction===`left`)return e-t.clientWidth;if(`direction`in n&&n.direction===`right`)return e+t.clientWidth;if(`percent`in n&&tt(n.percent)&&tt(n.clickPosition)&&tt(n.offsetPosition)){let e=n.scrollWidth||t.scrollWidth;return Math.min((n.percent-n.clickPosition)*e+n.offsetPosition,e-t.clientWidth)}}function l(t){e.tracksEl instanceof HTMLElement&&(e.tracksTop=d(e.tracksTop,e.tracksEl,t)||e.tracksTop)}function u(t){e.notesEl instanceof HTMLElement&&(e.notesTop=d(e.notesTop,e.notesEl,t)||e.notesTop)}function d(e,t,n){if(`direction`in n&&n.direction===`up`)return e-t.clientHeight;if(`direction`in n&&n.direction===`down`)return e+t.clientHeight;if(`percent`in n&&tt(n.percent)&&tt(n.clickPosition)&&tt(n.offsetPosition))return(n.percent-n.clickPosition)*t.scrollHeight+n.offsetPosition}function f(e){let{clientWidth:t,scrollLeft:n,time:r,oldScalePx:i,scalePx:a}=e,o=n+t,s=r*(i||a);if(s>=n&&s<=o){let e=r*(i||a)-n;return r*a-e}let c=t/2;return(n+c)/(i||a)*a-c}function p(t){e.timelineEl instanceof HTMLElement&&(e.timelineLeft=f({clientWidth:e.timelineEl.clientWidth,scrollLeft:e.timelineLeft,...t}),Q.start(`scroll:timelineLeft`,!1,e.timelineLeft,!0,!1))}function m(t){e.notesTimelineEl instanceof HTMLElement&&(e.notesLeft=f({clientWidth:e.notesTimelineEl.clientWidth,scrollLeft:e.notesLeft,...t}),Q.start(`scroll:notesLeft`,!1,e.notesLeft,!0,!1))}}})();$P.$inject=[`EditorScrollState`],angular.module(`bandlab.editor`).factory(`EditorScrollState`,QP).factory(`EditorScroll`,$P);const eF=(function(){return function(){return h({availableFeaturesSet:new Set,crTime:0,containerWidth:0,currentActiveTab:null,hasMembership:!1,hasRevisionChanges:void 0,hasRevisionHistory:!1,hasSoloTrack:!1,isStudioAudioStretchModalDisabled:!1,isUnderStudioAudioStretchModalFromRegionRemovalExperiment:!1,isUnderViewPackFromAudioRegionExperiment:!1,isAreaSelecting:!1,isArming:!1,isAudioInputActive:!1,isAudioInputVisible:!1,isAutomationVisible:!1,isBeatsDisplayed:!1,isCycling:!1,isDraggingRegions:!1,isFollowingPlayhead:!1,isInBackground:!0,isLiveInstrumentControlsMinimised:!1,isMetronomeEnabled:!1,isMixing:!1,isMovingRegions:!1,isPlaying:!1,isPreSaving:!1,isPreviewingRevision:!1,isPresetSettingsVisible:!1,isRecording:!1,isRecordingAutomation:!1,isRegionAudioStretchEnabled:!1,isRegionAudioStretching:!1,isResizingLeft:!1,isResizingRight:!1,isResizingLoop:!1,isRevisionLoadedFromTemplateBrowser:!1,isSaving:!1,isSnapping:!0,isTimeRuler:!1,isTripletGrid:!1,isVisible:!1,isWaitingCountIn:!1,isZooming:!1,scale:on[35],scalePx:on[35]*4,snapDuration:0,snapSetting:Gt[0],songDuration:0,reset:function(){let{hasMembership:e,hasRevisionChanges:t,isStudioAudioStretchModalDisabled:n,isUnderStudioAudioStretchModalFromRegionRemovalExperiment:r,isUnderViewPackFromAudioRegionExperiment:i,isSnapping:a}=this;Object.entries(this).forEach(([e,t])=>{typeof t==`boolean`&&(this[e]=!1)}),this.hasMembership=e,this.isStudioAudioStretchModalDisabled=n,this.isUnderStudioAudioStretchModalFromRegionRemovalExperiment=r,this.isUnderViewPackFromAudioRegionExperiment=i,this.isSnapping=a,this.crTime=0,this.isInBackground=!0,this.hasRevisionChanges=t}})}})();angular.module(`bandlab.editor`).factory(`EditorState`,eF);function tF(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}function nF(e,t,n){var r=Ye(e)?wn:tF,i=arguments.length<3;return r(e,Mi(t,4),n,i,ji)}const rF=(function(){return function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w){let T=cu(t);return{addTakeToRegion:ye,broadcastScale:E,cleanRevision:D,createDrumMachineRegion:Te,createEmptyRegion:De,createRegionFromAudioBuffer:ve,createRegionFromAudioFile:he,createRegionFromMidiScore:Ee,createRegionPlaceholder:Oe,createSampleFromAudioLoopURL:ge,createSampleFromPremiumAudioLoopUrl:_e,deleteRegionsFromTracks:Y,deleteTakeForRegion:xe,deleteTakesForSelection:Se,deleteTakesForTrack:Ce,downloadRegionAsFile:je,fixDuplicateIds:q,fixEffectParameters:de,fixMissingEffectParameters:K,fixOverlappingRegions:le,fixRegionFades:U,moveRegion:fe,moveRegions:pe,openAnalyzeTempo:Ne,openAskToStretchRevisionModal:Pe,sanitize:O,setTakeForRegion:be,updateRegionPlaceholder:ke,updateBpm:Me,warnTruncatedRegions:Ae};function E({state:e=y,time:t=y.crTime}={}){let n=e===y?`scale:timeline`:`scale:notesTimeline`,r=e.scalePx;e.scalePx=Po(e.scale*2,v.current.metronome.bpm),e.containerWidth=Z.SONG_DURATION_MAX*e.scalePx;let i=e===y?C:y;if(C.isLocked&&i.scalePx!==e.scalePx){C.isZooming=!0;let n=i===y?`scale:timeline`:`scale:notesTimeline`;i.scalePx=e.scalePx,i.containerWidth=e.containerWidth,Q.start(n,!1,{oldScalePx:r,t
282ime:t,scalePx:e.scalePx},!0,!1),setTimeout(function(){C.isZooming=!1})}Q.start(n,!1,{oldScalePx:r,time:t,scalePx:e.scalePx},!0,!1),document.body.style.setProperty(`--mix-editor-track-width`,`${y.containerWidth}px`),document.body.style.setProperty(`--midi-editor-track-width`,`${C.containerWidth}px`)}async function D(e){let t=new Set;q(e),await F(e);for(let n of e.tracks){if(n.canEdit||t.add(n.sampleId),le(n),n.regions.forEach(function(r){r.endPosition>Z.SONG_DURATION_MAX&&(r.endPosition=Z.SONG_DURATION_MAX),r.pitchTimeCorrection=r.pitchTimeCorrection?JSON.stringify(r.pitchTimeCorrection):``,(r.takeList||[]).forEach(e=>{e.pitchTimeCorrection=e.pitchTimeCorrection?JSON.stringify(e.pitchTimeCorrection):``}),r.playbackRate=r.playbackRate||1,r.pitchShift=r.pitchShift||0,r.gain=r.gain===null?1:r.gain,r.bpm=e.metronome.bpm||120,r.canEdit=n.canEdit,r.canEdit&&t.add(r.sampleId)}),n.colorName=n.colorName===`Pink`?`Orange`:n.colorName||dt[0].name,n.color=u.colorNameToColorHex(n.colorName),n.automation??={},n.automation.fxMix??=[],n.automation.pan??=[],n.automation.volume??=[],n.fxMix=n.fxMix??an.default,n.preset=b.getBySlug(n.preset)||!n.canEdit?n.preset:n.effects&&(n.effects.length||n?.effectsData?.originalPresetId)?`custom`:jt.slug,n.effects=n.effects&&(n.effects.length||n.preset===`custom`||!n.canEdit)?n.effects:ul(b.getBySlug(n.preset).effects),n.effects.forEach(function(e){e.id=ze(),K(e)}),de(n),n?.soundbank===``&&(n.soundbank=null),n.soundbank&&!w.getPropertyValue(n.soundbank,`slug`)&&(n.soundbank=rt),n.type===`drum-machine`&&n.patterns.forEach(({sampleId:e})=>t.add(e)),n.type=g.getTrackType(n),ee(n,e),n.auxSends=n.auxSends.length?n.auxSends:Qt(),n.autoPitch?.targetNotes.length===0&&(n.autoPitch.targetNotes=El),n.autoPitch){n.autoPitch.version??=`0.0`,Pl(n);let{audioEngineWorkletNode:e}=await pd(),t=await Yl(e,n.autoPitch);n.autoPitch=await Kl(t)??t}n.channel=1,n.protected&&n.protected.includes(`spatialAudio`)&&(n.protected=[])}return e.samples=e.samples.filter(e=>t.has(e.id)),e.auxChannels=e.auxChannels.length?e.auxChannels:pt(),await x,e.auxChannels.forEach(function(e){e.preset=b.getBySlug(e.preset)?e.preset:$t,e.effects=e.effects&&e.effects.length?e.effects:ul(b.getBySlug(e.preset).effects)}),e}async function O(e){A(e),j(e),q(e),L(e);for(let t of e.tracks)k(t),t.regions.forEach(me),le(t),ce(t),oe(t),se(t),W(t),await G(t),U(t),ue(t),de(t),P(t),M(t),te(t),I(t,e),N(t),Pl(t),ee(t,e)}function k(e){e.regions=Jm(e.regions,e=>!e.isMoving||!e._id)}function A(e){e.metronome.bpm=Math.round(e.metronome.bpm)}function j(t){(t.metronome.bpm<40||t.metronome.bpm>240)&&e.eventTrack(`Out-of-range BPM value`,{category:`Debug`,label:t.song?.id??t.creator?.id}),t.metronome.bpm=wt(t.metronome.bpm,40,240)}function M(e){e.pan=wt(e.pan,-1,1)}function N(e){e.volume=wt(e.volume,0,2)}function P(e){e.automation&&={...e.automation,pan:aO(xP(Xm(e.automation.pan,function({value:e,position:t}){return{position:wt(t,0,Z.SONG_DURATION_MAX),value:wt(e,-1,1)}}),`position`),`position`),volume:aO(xP(Xm(e.automation.volume,function({value:e,position:t}){return{position:wt(t,0,Z.SONG_DURATION_MAX),value:wt(e,0,2)}}),`position`),`position`)}}async function F(e){if(!e.mastering)return;let{sanitizeMasteringData:t}=await import(`./CWicAUmS.js`).then(e=>e.i);e.mastering=await t(e.mastering)}function ee(t,n){t.type===`drum-machine`&&!t.soundbank&&(t.soundbank=`808-kit`,e.eventTrack(`Soundbank missing for Drum Machine track`,{category:`Debug`,label:n.song?.id??n.creator?.id}))}function te(e){e.soundbank===``&&(e.soundbank=null)}function I(t,n){u.isAudioTrack(t)&&t.soundbank&&(t.soundbank=null,e.eventTrack(`Soundbank prop exists on non-MIDI track`,{category:`Debug`,label:n.song?.id??n.creator?.id}))}function L(t){t.tracks.length>32&&(t.tracks=t.tracks.slice(0,32),e.eventTrack(`Number of tracks exceeded`,{category:`Debug`,label:t.song?.id??t.creator?.id}))}function R(e,t,n){var r=ul(e),i=e.endPosition,a=(t-e.startPosition)/e.loopLength;if(r.id=ze(),e.loopLength){let o=t-e.startPosition-Math.floor(a)*e.loopLength;e.sampleOffset=At(e.sampleOffset+o),e.takeList?.forEach(e=>{e.sampleOffset=At(e.sampleOffset+o)}),ne(e,e.startPosition+Math.ceil(a)*e.loopLength),e.startPosition=t,r.startPosition=e.endPosition,e.endPosition>i?e.endPosition=i:n.push(r)}else{let n=t-e.startPosition;
282e.sampleOffset=At(e.sampleOffset+n),e.takeList?.forEach(e=>{e.sampleOffset=At(e.sampleOffset+n)}),e.startPosition=t}}function ne(e,t){e.endPosition=t}function z(e,t){t.splice(t.indexOf(e),1)}function re(e,t,n,r,i){var a=ul(e),o=ul(e),s;if(a.id=ze(),o.id=ze(),e.fadeOut=0,a.fadeIn=0,o.fadeIn=0,a.isProcessing=!1,o.isProcessing=!1,e.loopLength){s=(t-e.startPosition)/e.loopLength,ne(a,e.startPosition+Math.ceil(s)*e.loopLength),s=(n-e.startPosition)/e.loopLength,a.startPosition=n;let c=n-e.startPosition-Math.floor(s)*e.loopLength;a.sampleOffset=i.patterns?0:At(a.sampleOffset+c),a.takeList?.forEach(e=>{e.sampleOffset=At(e.sampleOffset+c)}),ne(a,e.startPosition+Math.ceil(s)*e.loopLength),a.endPosition>a.startPosition&&r.push(a),o.startPosition=a.endPosition,o.endPosition>o.startPosition?(a.fadeOut=0,r.push(o)):a.endPosition=e.endPosition,ne(e,t)}else R(a,n),ne(e,t),r.push(a);U({regions:r})}function B(e,t){return At(t.startPosition)<At(e.endPosition)&&At(t.endPosition)>At(e.endPosition)}function V(e,t){return t.startPosition<e.startPosition&&t.endPosition>e.startPosition}function ie(e,t){return t.startPosition<e.startPosition&&t.endPosition>e.endPosition}function H(e,t){return t.startPosition>=e.startPosition&&t.endPosition<=e.endPosition}function ae(e,t,n){var r=e[0],i=e[1];H(r,i)?z(e[1],t):ie(r,i)?re(i,r.startPosition,r.endPosition,t,n):B(r,i)?R(i,r.endPosition,t):V(r,i)&&ne(i,r.startPosition)}function oe(e){e.regions=Jm(e.regions,function(e){return e.endPosition-e.startPosition>=kt})}function se(e){e.regions.forEach(function(e){Math.abs(e.sampleOffset)<5e-4&&(e.sampleOffset=0)})}function ce(e){e.canEdit&&(e.regions=Jm(e.regions,function(e){return p.has(e.sampleId)?!0:v.current.samples.some(t=>t.id===e.sampleId)}))}function le(e,t=e.regions){let n=0;for(;t[n];){for(let r of t.slice(n+1))ae([t[n],r],e.regions,e);n++}}function U(e){jw(e.regions,function(e){let r=t(Math.max(0,e.fadeIn??0)),i=t(Math.max(0,e.fadeOut??0)),a=r+i,o=t(e.endPosition)-t(e.startPosition);a>o&&(r=Math.round(r/a*o),i=Math.round(i/a*o)),e.fadeIn=n(Math.min(r,o)),e.fadeOut=n(Math.min(i,o));let s=1e-4;e.fadeIn<s&&(e.fadeIn=0),e.fadeOut<s&&(e.fadeOut=0)});function t(e){return Math.round(e*ft)}function n(e){return e/ft}}function W(e){jw(e.regions,function(e){e.loopLength<.001&&(e.loopLength=0)})}async function G(t){if(!cc(t)||oc(t))return;let n=t.type,r=lc(t.soundbank)?t.soundbank.instrumentSlug:(await w.getJSON({slug:t.soundbank})).instrumentSlug;n!==r&&(t.type=r,e.eventTrack(`Incorrect track type for virtual instrument track`,{category:`Debug`,label:`${n} ${r}`}))}function ue(e){jw(e.regions,function(e){delete e._midiTakes})}function de(e){e.effects=Xm(e.effects,function(t){return t.params=nF(t.params,function(n,r,i){let a=x.metadata[t.slug].params[i];return a?(a.type===`float`?(r=parseFloat(r),r=isNaN(r)?a.default:r,r=Math.max(Math.min(r,a.max),a.min)):a.type===`enum`&&(r=Qe(MS(a.values,{slug:r}),`slug`,a.default)),n[i]=r,t.params[i]!==n[i]&&Sentry.onLoad(function(){Sentry.captureException(`Found incorrect value for effect parameter`,{extra:{expected:n[i],found:t.params[i],parameter:i,track:e}})}),n):n},{}),K(t),t})}function K(e){e.automation??={},Object.entries(x.metadata[e.slug].params).forEach(function([t,n]){n.visible&&!(t in e.params)&&(e.params[t]=n.default),n.automatable&&!(t in e.automation)&&(e.automation[t]=[])})}function q(e){let t=new Set,n=new Set;e.tracks=e.tracks.map(function({...r}){return t.has(r.id)&&(Sentry.onLoad(function(){Sentry.captureException(`Found duplicate track ID`,{extra:{revision:e}})}),r.id=ze()),r.regions=r.regions.map(function({...t}){return n.has(t.id)&&(Sentry.onLoad(function(){Sentry.captureException(`Found duplicate region ID`,{extra:{revision:e}})}),t.id=ze()),t.trackId=r.id,n.add(t.id),t}),t.add(r.id),r})}function fe(e,t,n,r){let{delta:i,firstPosition:a,firstRegionSnapped:o,firstTrack:s,lastPosition:c,scalePx:l,startPositions:d}=n,f=e.endPosition-e.startPosition,p=d[e.id],m=Math.max(p+i/l,p-a);m=Math.min(m,p+Z.SONG_DURATION_MAX-c);let h=u.snapToEndRegion({id:e.id,startPosition:m},s,l);return t===0?u.snapToPlayhead(m,l)?(o=y.crTime-m,m=y.crTime):h===0?(h=u.snapToGri
282d(m,r.snapDuration,{padding:5/l},r),o=h-m,m=h,m>Z.SONG_DURATION_MAX-f&&(m-=o,o=0)):(o=h,m+=h):m+=o,e.startPosition=Math.min(m,Z.SONG_DURATION_MAX-f),e.endPosition=Math.min(m+f,Z.SONG_DURATION_MAX),o}function pe(e){le(e,e.regions.slice().sort(function(e){return v.selectedRegions.has(e)?-1:1})),oe(e),U(e)}function me(e){e.endPosition=At(e.endPosition),e.loopLength=At(e.loopLength),e.sampleOffset=At(e.sampleOffset),e.takeList?.forEach(e=>{e.sampleOffset=At(e.sampleOffset)}),e.startPosition=At(e.startPosition),e.fadeIn=At(e.fadeIn??0),e.fadeOut=At(e.fadeOut??0)}function he(e,t,n=y.crTime,r,i){var a=ze();return e.arrayBuffer().then(cr).then(async function(o){let s=await _.current.findDuplicateSample(e,a),c=Object.assign(o,{id:s||a,name:e.name});var u=ve(t,c,n,n+(r??c.duration),i);return s||l.updateFile({blob:e,sampleId:a}),{region:u,audioBuffer:c}}).catch(function(){throw Error(`Unable to process audio for ${e.name}`)})}function ge(e){return fetch(e.original.audioUrl,{cache:`no-cache`}).catch(function(e){return e.message=`Check your internet connection and try again`,Promise.reject(e)}).then(function(e){return e.arrayBuffer()}).then(cr).then(function(t){return ec[e.id]=!0,{buffer:t,id:e.id,isMidi:!1}})}function _e(e){let t=ze();return fetch(e.original.audioUrl,{cache:`no-cache`}).then(function(e){return Promise.all([e.clone().arrayBuffer(),e.clone().blob()])}).then(function([e,n]){return l.updateFile({blob:n,sampleId:t}),cr(e)}).then(function(e){return{buffer:e,id:t,isMidi:!1}})}function ve(e,t,n,r,i=0){var a=r||n+t.duration,o={id:t.id||ze(),isMidi:!1,buffer:t},s=g.createRegion({endPosition:a,isPlayable:!e.soundbank,name:t.name,sampleId:o.id,sampleOffset:i,startPosition:n,trackId:e.id});return s.endPosition>Z.SONG_DURATION_MAX&&(s.endPosition=Z.SONG_DURATION_MAX,Ae()),d.pushUndo(v.current),v.current.samples.push(o),v.selectedRegions.add(s),e.regions.push(s),pe(e),l.addSnapshot(v.current),s}function ye(e,t){t._midiTakes=t._midiTakes||[t.sampleId],t._midiTakes=t._midiTakes.concat(e),t.sampleId=e}async function be(e,t){await _.current.updateMix(!0),await T.apply(async n=>{(await n.setTakeForRegion(e,t)).ok},{pushUndo:!0})}async function xe(e,t){await _.current.updateMix(!0),await T.apply(n=>n.deleteTake(e,t),{pushUndo:!0})}async function Se(){await _.current.updateMix(!0),await T.apply(async e=>{await e.setSelection([...v.selectedRegions].map(e=>e.id)),await e.removeAllTakesForSelection()},{pushUndo:!0})}async function Ce(e){await _.current.updateMix(!0),await T.apply(t=>t.removeAllTakesForTrack(e),{pushUndo:!0})}function Y(e,t){jw(e,function(e){e.regions=lu(e.regions,t)})}async function Te(e,n,i,s){let c=o._patterns[n];if(a.isPatternEmpty(c)){r.addNotification({id:`drum-machine-pattern-empty`,title:wr,classList:`warning`,autoclose:5e3});return}ga(`insert_pattern`),v.selectedRegions.clear(),d.pushUndo(v.current);let l=await _.current.addDrumMachineRegion(t,e.id,n,i,s);return l.endPosition>Z.SONG_DURATION_MAX&&(l.endPosition=Z.SONG_DURATION_MAX,Ae()),v.selectedRegions.add(l),l}function Ee(e,t,n=0,r){d.pushUndo(v.current);var i=v.current.metronome,a=e.length?ad(e.length,i.bpm):m.getRoundedDuration(e.id,i.signature,i.bpm),o=r||n+a,s=g.createRegion({endPosition:o,isPlayable:u.isRegionPlayable({sampleId:e.id},t),name:t.name,sampleId:e.id,startPosition:n,trackId:t.id});return s.endPosition>Z.SONG_DURATION_MAX&&(s.endPosition=Z.SONG_DURATION_MAX,Ae()),v.selectedRegions.add(s),t.regions.push(s),pe(t),Z.QUANTIZATION&&t.type!==`drum-machine`&&S.quantizeNotesInRegion(16,[s]),l.addSnapshot(v.current),s}function De(e,t={}){d.pushUndo(v.current);var n=v.current.metronome,r=m.createScore(),i=t.time??y.crTime,a=t.endTime??Math.min(i+en(n)*4,Z.SONG_DURATION_MAX),o=g.createRegion({endPosition:a,isPlayable:u.isRegionPlayable({sampleId:r.id},e),name:e.name,sampleId:r.id,startPosition:i,trackId:e.id,...t});return v.selectedRegions=new Set([o]),e.regions.push(o),pe(e),l.addSnapshot(v.current),o}function Oe(e,t,n,r,i){d.pushUndo(v.current);var a=r||n+t.duration,o=g.createRegion({endPosition:a,fadeIn:t.fadeIn,fadeOut:t.fadeOut,isPlayable:!1,isProcessing:!0,loopLength:i,name:t.name,pitchShift:t.pitchShift,playbackRate:t.playbackRate,sampleId:ze(),startPosition:n,trackId:e.id});return o.endPosition>Z.SONG_DURATION_MAX&&(o.endPosition=Z.SONG_DURATION_MAX,Ae()),v.selectedRegions.add(o),e.regi
282ons.push(o),pe(e),o}function ke(e,t){v.current.samples.push(t),d.rewritePlaceholder(e,t,v.current)}function Ae(){r.addNotification({title:`The region was extended as much as possible â up to ${Z.SONG_DURATION_MAX/60} minutes.`,autoclose:5e3})}function je(e,n){let r=f.pushTask(`export`),i=h.renderRegionToWav(e,{track:n},{$injector:t,revision:v.current}).then(function({blob:t}){v.mixingTasks.includes(i)&&xr(t,`${e.name||n.name}.wav`)}).finally(function(){f.finishTask(r)});v.mixingTasks.push(i)}function Me(e){let t=v.current.metronome.bpm;v.current.metronome.bpm=e;var n=t/e;e!==t&&(y.crTime=Math.min(y.crTime*t/e,Z.SONG_DURATION_MAX),v.current.metronome.pristine=!1,v.current.tracks.flatMap(e=>[e.automation.pan,e.automation.volume,e.automation.fxMix,e.effects.map(e=>Object.values(e.automation))]).flat(3).forEach(function(e){e.position*=n}),v.current.tracks.flatMap(e=>e.regions).filter(u.isMidiRegion).filter(function(t){return t.bpm!==e}).forEach(function(t){t.sampleOffset*=n,t.startPosition*=n,t.startPosition=Math.min(t.startPosition,Z.SONG_DURATION_MAX),t.loopLength*=n,t.endPosition*=n,t.endPosition>Z.SONG_DURATION_MAX&&(t.endPosition=Z.SONG_DURATION_MAX,Ae()),t.bpm=e}),v.current.tracks.flatMap(e=>e.regions).filter(u.isAudioRegion).forEach(function(t){t.bpm=e}),_.updateSourcesInTracksAsync().then(s.syncCycleToEngine))}function Ne(n){let r=v.current.metronome.bpm,i=J(()=>import(`./DI4sr-yZ.js`));y.isInBackground=!0,X(i,{bpm:r,renderRegionToWav:e=>h.renderRegionToWav(e,null,{$injector:t,revision:v.current}),region:n,setProjectTempo:function(e){y.hasRevisionChanges=!0,d.pushUndo(v.current),Me(e);let t=v.current.tracks.flatMap(e=>e.regions);if(u.areMidiRegions(t))return Pe(r,e)},logAnalyzeTempo:function(t){e.eventTrack(`Analyze Tempo`,{category:`Mix Editor`,label:`Region`,value:t})}},{escapeClose:!1,overlayClose:!1,onClose:()=>{y.isInBackground=!1}})}function Pe(e,t){if(y.isStudioAudioStretchModalDisabled)return Fe(e,t,{pushUndo:!0});let n=we(()=>(import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:e})=>{e(`me_bpm_change_audiostretch_modal`,{action:`adjust`})}),Fe(e,t,{pushUndo:!0})));return new Promise(r=>{let i=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));y.isInBackground=!0,X(i,{size:`small`,title:`Audio stretching`,subtitleVHtml:`Would you like to adjust existing audio regions from ${e} BPM to <strong>${t} BPM</strong>?`,actions:[{label:`Donât Adjust`,color:`secondary`,onClick:()=>{import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:e})=>{e(`me_bpm_change_audiostretch_modal`,{action:`do_not_adjust`})})}},{label:`Adjust`,color:`primary`,onClick:n}]},{onClose:function(){y.isInBackground=!1,r()}})})}function Fe(e,t,{pushUndo:a=!1}={}){a&&d.pushUndo(v.current);let o=f.pushTask(`postProcessAudio`);return n.all(v.current.tracks.flatMap(e=>e.regions).filter(u.isAudioRegion).map(function(n){let r=n.playbackRate*t/e;return i.convertRegion(n,r,n.pitchShift,!0)})).then(function(e){let t=Jm(e,function(e){return e.endPosition-e.startPosition<kt});t.length&&(Y(v.current.tracks,t),r.addNotification({title:`Regions less than ${kt*1e3} ms will be deleted.`,autoclose:5e3}));let n=Jm(e,function(e){return e.endPosition>Z.SONG_DURATION_MAX});n.length&&(jw(n,function(e){e.endPosition=Z.SONG_DURATION_MAX}),Ae())}).finally(function(){v.current.tracks.forEach(pe),f.finishTask(o),c.updateSongDuration()})}}})();rF.$inject=[`$analytics`,`$injector`,`$q`,`AppNotifications`,`AudioStretch`,`DrumMachine`,`DrumMachineState`,`EditorCycle`,`EditorData`,`EditorDB`,`EditorHelper`,`EditorHistory`,`EditorLoader`,`EditorMidiSamples`,`EditorMidiScore`,`EditorMixdown`,`EditorModel`,`EditorPlayer`,`EditorRevision`,`EditorState`,`EffectsPreset`,`Katnip`,`MidiEditor`,`MidiEditorState`,`Soundbank`],angular.module(`bandlab.editor`).factory(`EditorTimeline`,rF);const iF=(function(){return function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S={},{requireStudioMembership:C}=Eo(t),w=cu(t),T=EA(function(){l.pushUndo(m.current),g.hasRevisionChanges=!0});return qn(r,v,(e,{availableFeaturesSet:t})=>{t.value.has(`32-track-studio`)&&(Z.TRACKS_LIMIT=32)}),{addTrack:M,addTrackAfter:N,addTracksAfter:P,deleteTrack:I,refreshSelections:E,toggleCollapseAllTracksAndGroups:j,downloadTrackMixdown:_e,duplicateTrack:L,freezeTrack:K,isAddTrackDisabled:ne,isArmed:he,isArmedForAutomationOnly:ge,moveGroup:k,moveTrack:O,scrollTrackIntoView:ee,selectPreset:ye,setEffectChainBypass:ve,setSelected:R,reconcileFrozenStateFromEngine:de,setTrackSoundbank:me,shouldNotifyTrackLimit:z,notifyTrackLimit:re,toggleMute:B,toggleMuteTracks:H,toggleExclusiveSolo:se,toggleExclusiveSoloTracks:ce,toggleSolo:oe,toggleSoloTracks:ae,unfreezeTrack:q,mute:V,unmute:ie,solo:le,unsolo:U,...T};function E(e,t){let{selectedTrackId:n,selectedRegionIds:r}=t,i=e.tracks.map(e=>e.regions).flat().filter(e=>r.has(e.id));return m.selectedRegions=new Set(i),m.armedTracks[1]&&(m.armedTracks[1]=e.tracks.find(e=>e.id===m.armedTracks[1]?.id)??null),m.armedTracks[2]&&(m.armedTracks[2]=e.tracks.find(e=>e.id===m.armedTracks[2]?.id)??null),D(e,n)}function D(e,t){let n=e.tracks[0]??null;if(!t)return n;let r=e.tracks.find(e=>e.id===t);if(!r)return n;let i=T.getGroupData(e,r.trackGroupId);return i&&T.isGroupCollapsed(e.id,i.id)?n:r}function O(e,t){let n=T.getGroupData(m.current,e.trackGroupId);if(n){let r=n.trackIds.findIndex(t=>t===e.id),i=r+t+(t<0?0:1);T.moveTrackInGroup(m.current,n.id,r,i,!0);return}let r=m.current.tracks.findIndex(t=>t.id===e.id);r<0||A(r,t)}function k(e,t){let{tracks:n}=m.current,r=n.findIndex(t=>t.id===e.tracks[0].id),i=n.findIndex(t=>t.id===e.tracks[e.tracks.length-1].id),a=t<0?r:i,o=wt(a+t,0,n.length-1);if(a===o)return;if(t<0)return A(r,t);let s=n[o];s.trackGroupId?A(o,-1):O(s,-1)}function A(e,t){let n=wt(e+t,0,m.current.tracks.length-1),r=T.getGroupData(m.current,m.current.tracks[n].trackGroupId),i=r?m.current.tracks.findIndex(e=>e.id===r.trackIds[0]):n;if(e===i)return;l.pushUndo(m.current),g.hasRevisionChanges=!0;let[a]=m.current.tracks.splice(e,1);m.current.tracks.splice(i,0,a),m.current.tracks=c.applyTracksOrder(m.current.tracks)}function j(e,t){let n=e===`track`?T.isTrackCollapsed(m.current.id,t):T.isGroupCollapsed(m.current.id,t);if(m.current.tracks.filter(e=>
282!e.trackGroupId).forEach(e=>{if(n)return T.uncollapseTrack(m.current.id,e.id);T.collapseTrack(m.current.id,e.id)}),m.current.trackGroups.forEach(e=>{if(n)return T.uncollapseGroup(m.current.id,e.id);T.collapseGroup(m.current.id,e.id)}),m.selectedTrack?.trackGroupId){let e=m.selectedTrack.id,t=[...m.selectedRegions].filter(t=>t.trackId!==e);m.selectedRegions=new Set(t),R(null)}}async function M(e){if(z()){re();return}switch(e.type){case`piano`:e.soundbank=e.soundbank||`studio-grand-v2-v4`;break;case dn:e.soundbank=e.soundbank||`808-kit`}e.order=e.order===null||angular.isUndefined(e.order)?m.current.tracks.length:wt(e.order,0,m.current.tracks.length),(e.pushUndo??!0)&&l.pushUndo(m.current),e.type&&(It.find(t=>t.slug===e.type)||delete e.type),e.soundbank&&(lc(e.soundbank)||x.getBanks().find(t=>t.slug===e.soundbank)||delete e.soundbank);let t=f.createTrack(e);if(t.type===`sampler`&&(t.samplerKit={...Kt,id:ze()}),m.current.tracks.push(t),m.current.tracks=c.refreshTracksOrder(m.current.tracks),await p.updateSourcesInTracksAsync(),e.type===`drum-machine`&&(da(),await te(t,e.beatStarter??null)),uc(t)||rc(t)){let e=m.lastTrack[t.type];e&&m.trackMonitoring.get(e)&&m.trackMonitoring.set(t,!0)}return R(t),t}async function N(e,t){let n=m.current.tracks.find(e=>e.id===t)?.order,r=await M({...e,order:n});if(!r)return;let i=m.current.tracks.find(e=>e.id===t)?.trackGroupId,a=T.getGroupData(m.current,i);if(t&&a){if(g.availableFeaturesSet.has(`group-tracks`)){let e=a.trackIds.indexOf(t)+1;T.addTrackToGroupAtIndex(m.current,a.id,r,e)}else{let e=a.trackIds[a.trackIds.length-1];if(!tt(e))return ee(r.id),r;m.current.tracks.splice(m.current.tracks.findIndex(e=>e.id===r.id),1),m.current.tracks.splice(m.current.tracks.findIndex(t=>t.id===e)+1,0,r),c.applyTracksOrder(m.current.tracks)}}return await p.updateSourcesInTracksAsync(),r}async function P(e,t,n){if(F(n),e.length===0)return[];if(m.current.tracks.length+e.length>Z.TRACKS_LIMIT){re();return}let r=m.current.tracks.slice(),i=r.find(e=>e.id===t),a=l.cloneRevision(m.current);try{m.current.tracks.push(...e);let o=T.getGroupData(m.current,i?.trackGroupId);if(i&&o&&g.availableFeaturesSet.has(`group-tracks`)){let t=o.trackIds.indexOf(i.id)+1;e.forEach(e=>{T.addTrackToGroupAtIndex(m.current,o.id,e,t++)})}else{let n=o?.trackIds[o.trackIds.length-1]??t,i=n?m.current.tracks.findIndex(e=>e.id===n)+1:r.length;m.current.tracks.splice(-e.length,e.length),m.current.tracks.splice(i,0,...e)}return m.current.tracks=c.applyTracksOrder(m.current.tracks),await p.updateSourcesInTracksAsync(),F(n),l.pushUndo(a),R(e[e.length-1]),e}catch(e){throw m.current.tracks=c.applyTracksOrder(r),await p.updateSourcesInTracksAsync().catch(()=>{}),e}}function F(e){if(e?.aborted)throw e.reason??new DOMException(`Aborted`,`AbortError`)}function ee(e,t=DA().TRACK_HEIGHT){let{tracksSequence:n}=T.getTracksSequence(m.current),r=T.getTrackYPosition(m.current.id,n,e);h.scrollIntoView({top:r,bottom:r+t})}async function te(e,t){try{if(t){await n(t,e);return}let{PatternEditor:r}=p.current.audioEngineNode,i=await r.getBeatStarterTemplateInfo(),a=J(()=>import(`./B72NpO5C.js`));g.isInBackground=!0,X(a,{setBeatStarterTemplate:t=>n(t,e),setEmptyTemplate:()=>n(-1,e),templates:i},{escapeClose:!1,overlayClose:!1,onClose:()=>{g.isInBackground=!1}})}catch(e){Sentry.onLoad(()=>{Sentry.captureException(`Error setting beat starter for drum machine track`,{extra:{err:e}})})}async function n(e,t){import(`./DvQD5s06.js`).then(e=>e.t).then(({logStudioDrumMachinePatternSelect:t})=>{t(e<0?`empty`:e===0?`default`:`non_default`)});let n=en(m.current.metronome)*4;if(e>=0){await w.apply(async function(n){let r=await n.getPatternEditor(t.id);if(!r)throw Error(`Pattern editor not found for the track`);if(!(await r.setBeatStarterTemplate(e)).ok)throw Error(`Error setting beat starter`)}),l.pushUndo(m.current);let{addedRegions:r}=await w.apply(async function(e){let r=await e.addDrumMachineRegion(t.id,0,0,n);if(!r.ok)throw Error(r.msg)}),{addedRegions:i}=await w.apply(async function(e){let r=await e.addDrumMachineRegion(t.id,1,n,n+n);if(!r.ok)throw Error(r.msg)});
282m.selectedRegions.clear(),[...r,...i].forEach(e=>m.selectedRegions.add(e)),s.updateSongDuration()}r.$applyAsync()}}function I(t){let n=m.current.tracks.indexOf(t);if(n!==-1){if(rc(t)&&b.clearSampler(t.id),l.pushUndo(m.current),m.current.tracks.splice(n,1),p.updateSourcesInTracks(),c.refreshTracksOrder(m.current.tracks),t===m.armedTracks[1]?m.armedTracks[1]=null:t===m.armedTracks[2]&&(m.armedTracks[2]=null),t===m.selectedTrack){if(m.selectedRegions.clear(),m.current.tracks.length){let e=Math.min(n,m.current.tracks.length-1);R(m.current.tracks[e])}else R(null)}e.eventTrack(`Delete Track`,{category:`Mix Editor`}),g.hasSoloTrack=s.checkAnySolo(),y.deleteMidiEditor(t.id)}}function L(t){if(!g.availableFeaturesSet.has(`group-tracks`)&&t.trackGroupId){i.addNotification({id:`dup-track-in-group`,title:`Group editing is a membership feature`,action:`<a href="https://www.bandlab.com/membership" target="_blank" class="notification-action-text-inline">Learn more about Membership</a>`,autoclose:5e3});return}if(z()){re();return}l.pushUndo(m.current);var n=ul(t);n.id=ze(),n.isFrozen=!1,n._showTakeLanes=!1;let r=Sx(t.id);Cx(n.id,r);let a=$S(t.id);tC(n.id,a);let o=Dy(t.id);if(Oy(n.id,o),jw(n.regions,function(e){e.id=ze(),e.trackId=n.id}),jw(n.effects,function(e){e.id=ze(),delete e.$$hashKey}),t.trackGroupId){m.current.tracks.push(n);let e=T.getGroupData(m.current,t.trackGroupId);T.moveTrackInGroup(m.current,n.trackGroupId,e.trackIds.indexOf(n.id),e.trackIds.indexOf(t.id)+1,!1)}else{let e=m.current.tracks.findIndex(e=>e.id===t.id);e<0?m.current.tracks.push(n):m.current.tracks.splice(e+1,0,n),c.applyTracksOrder(m.current.tracks),c.refreshTracksOrder(m.current.tracks)}return m.trackMonitoring.set(n,m.trackMonitoring.get(t)),p.updateSourcesInTracks(),e.eventTrack(`Duplicate Track`,{category:`Mix Editor`}),T.isTrackCollapsed(m.current.id,t.id)&&T.collapseTrack(m.current.id,n.id),n}function R(e){let t=m.selectedTrack;if((!e||e.canEdit===!1)&&(x.setFromAudioType(`voice`),m.selectedTrack=null,m.armedTracks[1]=null,m.armedTracks[2]=null),t&&c.isBandLabInstrumentTrack(t)&&y.deleteMidiEditor(t?.id),e&&e.canEdit!==!1){if(oc(e)){m.selectedTrack=e,x.setFromSoundbank(e.soundbank,e.type),b.stopNotes(),p.current.armMidiTrack(e),m.armedTracks[1]=null,m.armedTracks[2]=null,o.patterns!==e.patterns&&a.selectTrack(e);return}m.selectedTrack=e,m.armedTracks[2]===e&&(m.armedTracks[2]=m.armedTracks[1]),m.armedTracks[1]=e,c.isBandLabInstrumentTrack(m.armedTracks[1])&&c.isBandLabInstrumentTrack(m.armedTracks[2])&&(m.armedTracks[2]=null),pe(e)}}function ne(){return m.current.tracks.length>=Z.TRACKS_LIMIT&&g.availableFeaturesSet.has(`32-track-studio`)}function z(){return m.current.tracks.length>=Z.TRACKS_LIMIT}function re(){if(g.availableFeaturesSet.has(`32-track-studio`))return fe();C(`studio_32_tracks`,`studio`)}function B(t){t.isMuted=!t.isMuted,p.current.setTrackMuted(t,t.isMuted),e.eventTrack(`Toggle Mute`,{category:`Mix Editor`,label:t.isMuted}),g.hasRevisionChanges=!0}function V(e){e.isMuted=!0,p.current.setTrackMuted(e,e.isMuted)}function ie(e){e.isMuted=!1,p.current.setTrackMuted(e,e.isMuted)}function H(t){let n=!t.every(e=>e.isMuted);t.forEach(t=>{t.isMuted=n,p.current.setTrackMuted(t,t.isMuted),e.eventTrack(`Toggle Mute`,{category:`Mix Editor`,label:t.isMuted})}),g.hasRevisionChanges=!0}function ae(t){let n=!t.every(e=>e.isSolo);t.forEach(t=>{t.isSolo=n,W(t),p.current.setTrackSolo(t,t.isSolo),e.eventTrack(`Toggle Solo`,{category:`Mix Editor`,label:t.isSolo})}),g.hasSoloTrack=s.checkAnySolo(),g.hasRevisionChanges=!0}function oe(t){t.isSolo=!t.isSolo,g.hasSoloTrack=s.checkAnySolo(),W(t),p.current.setTrackSolo(t,t.isSolo),e.eventTrack(`Toggle Solo`,{category:`Mix Editor`,label:t.isSolo}),g.hasRevisionChanges=!0}function se(e){let t=m.current.tracks.filter(t=>t.id!==e.id&&t.isSolo);e.isSolo&&t.length>0||oe(e),t.forEach(e=>U(e)),g.hasRevisionChanges=!0}function ce(e){let t=e.every(e=>e.isSolo),n=e.map(e=>e.id),r=m.current.tracks.filter(e=>!n.includes(e.id)&&e.isSolo);t||e.forEach(le),t&&!r.length&&e.forEach(U),r.forEach(U),g.hasRevisionChanges=!0}function le(e){e.isSolo=!0,g.hasSoloTrack=s.checkAnySolo(),W(e),p.current.setTrackSolo(e,e.isSolo)}function U(e){e.isSolo=!1,g.hasSoloTrack=s.checkAnySolo(),p.current.setTrackSolo(e,e.isSolo)}function W(e){e.isMuted=e.isMuted&&e.isSolo?!e.isMuted:e.isMuted,p.current.setTrackMuted(e,e.isMuted)}function G(e){ue(e),S[e.id]=r.$watch(function(){return{effects:e.effects,soundbank:e.soundbank,regions:e.regions.map(function({startPosition:e,endPosition:t,loopLength:n,pitchShift:r,sampleId:i}){return{startPosition:e,endPosition:t,loopLength:n,pitchShift:r,sampleId:i}})}},function(t,n){if(t!==n)return q(e)},!0)}function ue(e){S[e.id]?.(),delete S[e.id]}function de(e,t){t?G(e):ue(e),e.isFrozen=t,m.trackFreezing.delete(e),r.$applyAsync()}function K(e,t=!1){let{ListenerBase:r,updateMix:a}=p.current,o=n.defer();m.trackFreezing.set(e,o),G(e);let s=a().then(async()=>{let n=$l(r,e=>{});await w.apply(async t=>{let r=await t.freezeTrack(e.id,n);if(!r.ok)throw r}
282,{pushUndo:t,retrieveNewSamples:!1,addSnapshot:!1})});return n.race([s,o.promise]).then(function(){m.trackFreezing.delete(e)}).catch(function(t){if(q(e),t!==`Action canceled`&&t!==`Mixdown doesnât contain any sounds!`){Sentry.onLoad(function(){Sentry.captureException(t)});let e=t instanceof Error&&t.message||String(t);i.addNotification({title:qr,content:e,classList:`alert`,autoclose:8e3})}})}function q(e,t=!1){let n=m.trackFreezing.get(e);return n&&n.reject(yr),w.apply(async t=>{let n=await t.unfreezeTrack(e.id);if(!n.ok)throw n;m.trackFreezing.delete(e),ue(e)},{pushUndo:t,retrieveNewSamples:!1,addSnapshot:!1}).finally(()=>{r.$applyAsync()})}function fe(){i.addNotification({id:Vr,title:Vr,content:Pr.replace(`{$1}`,String(Z.TRACKS_LIMIT)),classList:`alert`,autoclose:5e3})}function pe(e){(ic(e)||rc(e))&&p.current.armMidiTrack(e),e.soundbank?(x.setFromSoundbank(e.soundbank,e.type),b.stopNotes()):e.samplerKit?(x.setSampler(),b.setSampler(e),b.stopNotes(),g.isRecording||p.current.setMonitoring(e,m.trackMonitoring.get(e))):(x.setFromAudioType(e.type),g.isRecording||p.current.setMonitoring(e,m.trackMonitoring.get(e)))}async function me(e,t){let n=await x.getJSON(t),{supportLevel:r,isNotInvalid:i}=await p.current.checkSoundbankSupport(n);if(e===m.selectedTrack){switch(r){case`InTrack`:x.setFromSoundbank(n,e.type),e.soundbank=n;break;case`Legacy`:x.setFromSoundbank(t.slug,e.type),e.soundbank=t.slug;break;default:throw Error(`Unable to set track soundbank, soundbank is either invalid or not supported: ${i.msg}`)}e.type=f.getTrackType(e),await p.updateSourcesInTracksAsync()}}function he(e){return m.armedTracks[1]?.id===e.id&&1||m.armedTracks[2]?.id===e.id&&2}function ge(e){return g.isRecordingAutomation&&!e.soundbank}function _e(r){let a=u.pushTask(`export`),o=d.renderTrackToWav(r,null,{$injector:t,revision:m.current}).then(function(t){m.mixingTasks.includes(o)&&(xr(t.blob,`${m.current.song.name} - ${r.name}.wav`),e.eventTrack(`Export Track`,{category:`Mix Editor`,label:`wav`}))}).catch(function(e){return i.addNotification({title:hr,content:e.message,classList:`alert`,autoclose:5e3}),n.reject(e)}).finally(function(){u.finishTask(a)});return m.mixingTasks.push(o),o}function ve(e){m.selectedTrack&&(m.selectedTrack.effects.every(t=>t.bypass===e)||(l.pushUndo(m.current),m.selectedTrack.effects.forEach(t=>{t.bypass=e}),m.selectedTrack.preset=`custom`,r.$applyAsync(),p.current.setTrackEffectsBypass(m.selectedTrack,e)))}function ye(t,{fromCarousel:n=!1,shouldAskConfirmation:i=!0,analyticsExtra:a={}}={}){if(!m.selectedTrack)return;let o=m.selectedTrack.preset===`custom`,s=!tt(m.selectedTrack?.effectsData?.originalPresetId);i&&t.slug!==`custom`&&o&&s?l():u(),n?import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:e})=>e(`fx_preset_carousel_clicks`)):e.eventTrack(`Select FX Preset`,{category:`Mix Editor`,label:`${m.selectedTrack.type} - ${t.name}`,extra:{preset_id:t.id||t.slug,track_type:m.selectedTrack.type,...a}}),r.$applyAsync();function l(){let e=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n)),n=t.name||t.displayName;g.isInBackground=!0,X(e,{size:`small`,title:`You Have Unsaved Effects`,subtitleVHtml:t.slug===`none`?`Would you like to save them before deleting the current effects chain?`:`Would you like to save them before applying ${`<strong>${n}</strong>`}?`,actions:[{label:`No`,color:`secondary`,onClick:function(){u(),r.$applyAsync()}},{label:`Yes`,color:`primary`,onClick:function(){c.displayPresetSettings({toggle:!1}),En.value=t}}]},{onClose:function(){g.isInBackground=!1}})}function u(){m.selectedTrack&&(t=ul(t),m.lastTrack[x.getCurrent().input.slug]=m.selectedTrack,r.$broadcast(Vc,{displayName:t.name||t.displayName,preset:t.slug,presetId:t.id,presetLink:t.link,effects:t.effects.map(function(e){return e.id=ze(),_.fixMissingEffectParameters(e),e})}))}}}})();iF.$inject=[`$analytics`,`$injector`,`$q`,`$rootScope`,`AppNotifications`,`DrumMachine`,`DrumMachineState`,`EditorData`,`EditorHelper`,`EditorHistory`,`EditorLoader`,`EditorMixdown`,`EditorModel`,`EditorPlayer`,`EditorRevision`,`EditorScroll`,`EditorState`,`EditorTimeline`,`Me`,`MidiEditor`,`SharedMidiSynth`,`Soundbank`],angular.module(`bandlab.editor`).factory(`EditorTrack`,iF),angular.module(`bandlab.editor`).factory(`EditorView`,aF);function aF(){let e;return{init:r,isRegionVisible:n,isVisible:t};function t(t){if(!e)throw Error(`EditorView.tracksRect not initialized`);let n=t.getBoundingClientRect();return n.right>e.left&&n.left<e.right&&n.left<=window.innerWidth}function n(e,t){let n=t-12,r=window.innerWidth,i=n+r,a=e.left+e.width;if(a<=n||e.left>=i)return!1;let o=Math.max(0,n-e.left);return{canvasLeft:o,canvasWidth:a>i?r:e.width-o}}function r(t){e=t}}function oF(e,t){return e>t}function sF(e,t){return e&&e.length?cP(e,Mi(t,2),oF):void 0}function cF(e,t){return e&&e.length?cP(e,Mi(t,2),lP):void 0}lF.$inject=[`EditorHelper`,`EditorTrack`],angular.module(`bandlab.editor`).factory(`EditorWaveform`,lF);function lF(e,t){let n=k(),r=new Map,i=new Map,a=window.getComputedStyle(document.body),o=parseInt(a.getPropertyValue(`--mix-editor-waveform-height`)),s=parseInt(a.getPropertyValue(`--mix-editor-take-waveform-height`)),c=parseInt(a.getPropertyValue(`--mix-editor-waveform-collapsed-height`)),l=parseInt(a.getPropertyValue(`--audio-editor-waveform-height`));return{cachePattern:x,cacheScore:v,cacheWaveform:g,deleteUnusedCache:j,drawFromBuffers:C,getCacheKey:E,getWaveformHeightDpr:u,trimCache:Fa(M,250)};function u(e=null,t=!1){return e===`take`?s*d():e===`audio`?l*d():t?c*d():o*d()}function d(){return Math.round(window.devicePixelRatio)}function f(e,t,n,r,i){let a=d(),o=cF(e,`midiNote`),s=sF(e,`midiNote`),c=sd(t,r),l=2,u=4,f=new Path2D,p=new Path2D,m=0,h;l*=a,u*=a;let g=o?o.midiNote-1:0,_=s?s.midiNote+1:0;for(;y(l,u)<0;)u=Math.max(u-.1,1),l-=.1;let v=y(l,u);return b(),{lower:p,upper:f,width:Math.max(1,Math.ceil(m*n))};function y(e,t){return(i-(_-g)*(e+t))/2}function b(){for(h=0;h<e.length;h++){let a=e[h].midiNote,o=ad(e[h].duration,r),s=t+ad(e[h].time-c,r);e[h].time<c||(Number.isInteger(a)&&f.rect(Math.round(s*n),2*Math.round((i-2-v-(a-g)*(l+u))/2),2*Math.round(Math.max(o*n,4)/2),2*Math.round(u/2)),m=isNaN(s+o)?m:Math.max(m,s+o))}}}function p(e,t){let n=2560/t,r=Math.floor(e.length/n);return n===1||r===e.length?e:r>e.length?Io(e,r):Ro(e,r)}function m(e,t,n){return r.has(n)||r.set(n,No(e,2560)),p(r.get(n),t)}function h(e,t,n,r){let i=new Path2D,a=new Path2D,o=Math.round(r/2),s,c,l;
282for(i.moveTo(0,o),a.moveTo(0,o-1),s=0;s<e.length;s++)c=s*t,l=Math.round(e[s]*n*r/2),i.lineTo(c,o+l),a.lineTo(c,o-1-l);return c=s*t,i.lineTo(c,o),a.lineTo(c,o-1),{lower:i,upper:a}}function g(e,t,n,r,i,a=1,o=1){let s=n*d(),c=1*d(),l=Math.floor(e.duration*s/Math.abs(o)),u=[];return y(h(m(e,n/Math.abs(o),t),c,a,r),l,u,r,i),o<0?_(u):u}function _(e){return e.map(function(e){let t=document.createElement(`canvas`);t.width=e.width,t.height=e.height;let n=t.getContext(`2d`);if(!n)throw Error(`Failed to get canvas context`);return n.scale(-1,1),n.drawImage(e,-e.width,0),t}).reverse()}function v(e,t,n,r,i,a){n*=d();let o=[],s=f(e,t,n,a,r);return y(s,s.width,o,r,i),o}function y(e,t,n,r,i){let a=0;for(;t>0;)n.push(b(e,a,t,i,r)),t-=Math.min(t,Ht),a-=n[n.length-1].width}function b(e,t,n,r,i){let a=document.createElement(`canvas`),o=a.getContext(`2d`);if(a.width=Math.min(n,Ht),a.height=i,!o)throw Error(`Failed to get canvas context`);return S(o,e,t,r),a}function x(e,t,n,r){let i=d(),a=u();t*=i;let o=14*i,s=16*i,c=5*i,l=[],f=r*t,p=[new Path2D(`M0 2.4C0 1.075 1.099 0 2.455 0h22.09C25.902 0 27 1.075 27 2.4v19.2c0 1.325-1.099 2.4-2.454 2.4H2.454C1.099 24 0 22.925 0 21.6V2.4Zm24.546 0H2.454v19.2h22.09V2.4Z`),new Path2D(`M4.91 14.4V12h2.454v2.4H4.909ZM4.91 19.2v-2.4h2.454v2.4H4.909ZM9.818 14.4V12h2.455v2.4H9.818ZM9.818 19.2v-2.4h2.455v2.4H9.818ZM14.727 14.4V12h2.455v2.4h-2.455ZM14.727 19.2v-2.4h2.455v2.4h-2.455ZM19.636 14.4V12h2.455v2.4h-2.455ZM19.636 19.2v-2.4h2.455v2.4h-2.455ZM12.273 6h9.818v2.4h-9.818V6Z`),new Path2D(`M9.818 7.2c0 1.325-1.099 2.4-2.454 2.4-1.356 0-2.455-1.075-2.455-2.4s1.099-2.4 2.455-2.4c1.355 0 2.454 1.075 2.454 2.4Z`)];for(;f>0;)l.push(m(n,r*t)),f-=Math.min(f,Ht);return l;function m(t,n){let r=document.createElement(`canvas`),l=r.getContext(`2d`);if(!l)throw Error(`Failed to get canvas context`);if(r.width=Math.max(1,Math.round(Math.min(f,Ht))),r.height=a,l.lineWidth=1,l.fillStyle=t,n<64*i){l.textAlign=`center`,l.textBaseline=`middle`;let t=r.width/2,a=r.height/2;l.font=`500 ${o}px BandLab Sans`,n>=24*i&&l.fillText(String.fromCharCode(97+e).toUpperCase(),t,a)}else{l.translate(n/2-s,a/2-14*i),l.scale(i,i);for(let e of p)l.fill(e,`evenodd`);l.resetTransform(),l.translate(n/2-s,a/2-14*i),l.translate(c,-7*i),l.font=`500 ${o}px BandLab Sans`,l.fillText(String.fromCharCode(97+e).toUpperCase(),32*i,30*i)}return r}}function S(e,t,n,r){e.translate(n,0),e.fillStyle=r,e.fill(t.lower),e.fill(t.upper)}function C(e,t,n,r,i,a,o,s,c,l,u,f,p,m){let h=d();t*=h,n*=h,r*=h,a*=h,a=p===`drum-machine`?0:a;let g=D(f,c),_=[],v=i>0,y=O(g,Math.floor(t%r+a),Math.floor(a+r)),b=0,x=0,S;if(!y.length)return;for(e.canvas.width=n-t,!o&&!m&&w(e,l,s),S=0;S<y.length;S++)m?b+=y[S].to-y[S].from:b=A(e,y[S],b,s);for(v&&(_.push(T(b,s)),x=b),y=O(g,a,a+r);b<n-t;){for(S=0;S<y.length;S++)m?b+=y[S].to-y[S].from:b=A(e,y[S],b,s);v&&_.push(T(b,s))}let C=-t;e.strokeStyle=l;let E=3*h;for(e.setLineDash([E,E]);u&&C<n-t;){let t=-a;if(t>0){let n=T(C+t,s);e.stroke(n)}for(S=0;S<y.length;S++)C+=y[S].to-y[S].from}e.setLineDash([]),v&&(e.fillStyle=`rgba(0, 0, 0, .2)`,e.fillRect(t>=r?0:x,0,n-t,s),e.strokeStyle=`rgba(255, 255, 255, 1)`,_.pop(),_.forEach(t=>e.stroke(t)))}function w(e,t,n){e.fillStyle=t,e.fillRect(0,Math.round(n/2)-1,Ht,1)}function T(e,t){let n=new Path2D;return n.rect(e+.5,0,.5,t),n}function E(e,t,n,r,i){let a=n.type===`voice`?0:e.sampleOffset,o=e.loopLength?Math.min(e.endPosition-e.startPosition,e.loopLength):e.endPosition-e.startPosition;return JSON.stringify({trackType:n.type,sampleId:e.sampleId,scalePx:i,height:r,color:t,gain:e.gain,sampleOffset:e.canEdit?a:e.startPosition,playbackRate:e.playbackRate,loopLength:n.type===`drum-machine`?e.loopLength:null,firstLoopDuration:n.type===`drum-machine`?o:null,DPR:d()})}function D(e,t){if(i.has(e))return i.get(e);let n=t();return i.set(e,n),i.get(e)}function O(e,t,r){let i=0,a=0,o=[],s,c;if(t<0){let e=Math.min(0,r)-t,i={from:0,to:e,buffer:n};o.push(i),a+=e}for(c=0;c<e.length;c++){s=e[c];let n=Math.max(0,t-i),l=Math.min(r-i,s.width),u=l-n;if(u<0){i+=s.width;continue}let d={from:n,to:l,buffer:s};o.push(d),a+=u,i+=s.width}return a<r-t&&o.push({from:0,to:r-t-a,buffer:n}
282),o}function k(){let e=document.createElement(`canvas`);return e.width=1,e.height=1,e}function A(e,t,n,r){return e.drawImage(t.buffer,t.from,0,t.to-t.from,r,n,0,t.to-t.from,r),n+(t.to-t.from)}function j(){i.clear(),r.clear()}function M(n,r){let a=r.tracks.flatMap(i=>i.regions.flatMap(a=>{let o=t.isTrackCollapsed(r.id,i.id),s=u(null,o),c=u(`audio`),l=u(`take`,o);return[E(a,e.getRegionColor(i,a),i,s,n.arrangementScalePx),...a.takeList?a.takeList.flatMap(t=>{let r=e.getRegionColor(i,a),o=nt(`#ffffff`,.2);return[E({...a,...t},r,i,l,n.arrangementScalePx),E({...a,...t},o,i,l,n.arrangementScalePx)]}):[],E(a,e.getRegionColor(i,a),i,c,n.audioEditorScalePx)]})),o=new Set(a);for(let e of i.keys())o.has(e)||(window.waveformLoggingEnabled,i.delete(e))}}angular.module(`bandlab.common`).component(`emojiPicker`,{bindings:{direction:`<`,teleported:`<`},controllerAs:`vm`,controller:[`$scope`,`$element`,function(e,t){let n=this,r=angular.element(t[0].closest(`.textarea-emoji-wrapper,.conversation-input-textarea-wrapper`)).find(`textarea`);n.$onInit=function(){!r||!to?(e.$destroy(),t.remove()):$(import(`./Fs4Eb2N6.js`).then(e=>e.t),t[0],e,{},{direction:n.direction,inputRef:r[0],teleported:n.teleported,onEmojiSelection:i})};function i(){r.triggerHandler(`change`)}}]}),angular.module(`bandlab.error.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`0`,{url:`/0`,templateUrl:`https://www.bandlab.com/web-app/error/views/0-10ad2127f.html`,params:{error:null},controller:[`$scope`,`$stateParams`,function(e,t){e.error=t.error}]}).state(`403`,{url:`/403`,templateUrl:`https://www.bandlab.com/web-app/error/views/403-330d1aeb5.html`,onEnter:function(){document.querySelector(`meta[name="prerender-status-code"]`).setAttribute(`content`,`403`)},onExit:function(){document.querySelector(`meta[name="prerender-status-code"]`).setAttribute(`content`,`200`)}}).state(`404`,{url:`/404`,template:`<div></div>`,onEnter:function(){document.querySelector(`meta[name="prerender-status-code"]`).setAttribute(`content`,`404`)},onExit:function(){document.querySelector(`meta[name="prerender-status-code"]`).setAttribute(`content`,`200`)},controller:[`$element`,`$scope`,`$transition$`,function(e,t,n){$(import(`./D9MB-wnH.js`),e[0],t,{},n.options().custom)}]}).state(`500`,{url:`/500`,templateUrl:`https://www.bandlab.com/web-app/error/views/500-2e65de769.html`,onEnter:function(){document.querySelector(`meta[name="prerender-status-code"]`).setAttribute(`content`,`500`)},onExit:function(){document.querySelector(`meta[name="prerender-status-code"]`).setAttribute(`content`,`200`)}}).state(`updateBrowser`,{url:`/update-browser`,templateUrl:`https://www.bandlab.com/web-app/error/views/update-browser-f263b2cf8.html`}).state(`projectFull`,{url:`/project-full`,templateUrl:`https://www.bandlab.com/web-app/error/views/project-full-50da7394a.html`}).state(`unavailable`,{url:`/unavailable?url`,templateUrl:`https://www.bandlab.com/web-app/error/views/unavailable-955855f58.html`,controller:[`$scope`,`$stateParams`,function(e,t){if(e.isAndroid=Sn,e.isiOs=gn,e.isMobileOrTablet=bn||hn,!t.url)return;let n=decodeURIComponent(t.url);e.downloadUrl=ts(n)}]})}]),angular.module(`bandlab.explore`,[]).directive(`discoverSidebar`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{preferredGenres:`=?`},link:function(t,n){$(import(`./D9CMN3_b.js`),n[0],t,{$injector:e,scope:t},{preferredGenres:t.preferredGenres})}}}]).directive(`discoverTabNav`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{preferredGenres:`=?`},link:function(t,n){$(import(`./CrulfDwu.js`),n[0],t,{$injector:e,scope:t},{preferredGenres:t.preferredGenres})}}}]),angular.module(`bandlab.explore.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`explore`,{url:`/explore`,redirectTo:`discover`}).state(`explore.home`,{url:`/home`,redirectTo:`discover`}).state(`explore.genre`,{url:`/{genre:[a-z0-9-]{3,30}}?sort`,redirectTo:`discover`}).state(`explore.channel`,{url:`/channels/{channel:[a-z0-9-]{3,30}}`,redirectTo:`discover`}).state(`discover`,{url:`/discover`,data:{hideGlobalPlayer:!0},resolve:{preferredGenres:[`Tag`,function(e){return e.getPreferredGenres()}]},redirectTo:function(e){if(!e.injector().get(`Me`).isAnonymous())return{state:`discover.hotNow`}},onEnter:[`$state$`,`$transition$`,function(e,t){let n=t.from().name;!n.includes(`discover`)&&n!==``&&!n.includes(`oauth`)&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logFeedTabOpen:t}){t(e.name)}
282)}],templateUrl:`https://www.bandlab.com/web-app/explore/views/discover-layout-eb6b5d4e3.html`,controller:[`$scope`,`preferredGenres`,function(e,t){e.preferredGenres=t}]}).state(`discover.hotNow`,{url:`/hot-now`,views:{content:{template:`<div id="vue"></div>`,controller:[`$element`,`$injector`,`$scope`,`Me`,`Post`,function(e,t,n,r,i){$(import(`./uQwNOZOB.js`),e[0],n,{$injector:t,$scope:n},{getPosts:(e,t)=>i.fromMedia({userId:r.id,after:e,limit:t}).$promise})}]}}}).state(`discover.genre`,{url:`/genres/{genreId:[a-z0-9-]{3,30}}`,views:{content:{template:`<div id="vue"></div>`,controller:[`$element`,`$injector`,`$scope`,`$stateParams`,`Me`,`Post`,function(e,t,n,r,i,a){$(import(`./uQwNOZOB.js`),e[0],n,{$injector:t,$scope:n},{getPosts:(e,t)=>a.fromForYou({userId:i.id,genres:r.genreId,timeRange:`day`,after:e,limit:t}).$promise})}]}}})}]),angular.module(`bandlab.fanreach`,[]),angular.module(`bandlab.fanreach.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`fanReachCreate`,{url:`/fan-reach/campaign?draftId&trackId`,params:{draftId:{value:null,squash:!0},trackId:{value:null,squash:!0}},useTopBarForm:!0,data:{hideNavBar:!0},views:{"":{templateUrl:`https://www.bandlab.com/web-app/fanreach/views/fanreach-creation-7a8dda509.html`,controller:[`$cacheFactory`,`$injector`,`$rootScope`,`$scope`,`$state`,`$stateParams`,`$timeout`,`Album`,`AppNotifications`,`Me`,`Modal`,`Post`,`User`,function(e,t,n,r,i,a,s,c,l,u,d,f,p){let{availableFeaturesSet:m,isMembershipReady:h}=qn(r,u);r.availableFeaturesSet=m,r.isMembershipReady=h;let{startPurchaseFlow:g}=Oh(t,r);_();function _(){a.draftId?(p.getFanReachDraftEmail({userId:u.id,draftId:a.draftId}).$promise.then(function(e){r.campaign=e,e.trackId?(r.campaign.type=`Track`,f.get({id:e.trackId}).$promise.then(function(e){r.track=e})):e.albumId?(r.campaign.type=`Album`,c.get({id:e.albumId}).$promise.then(function(e){r.album=e})):r.campaign.type=`Text`}).catch(function(e){e.status===404?i.go(`404`):i.go(`0`)}),r.isNewCampaign=!1):a.trackId?(f.get({id:a.trackId}).$promise.then(function(e){r.campaign={albumId:``,message:``,subject:``,trackId:a.trackId,type:`Track`},r.track=e,r.fanreachCampaignForm.$setDirty()}),r.isNewCampaign=!0):(r.campaign={subject:``,message:``,type:``,trackId:``,albumId:``},r.isNewCampaign=!0,r.canProceedToStep2=!1),r.sendingCampaign=!1}r.getMembership=function(){o()?g(`fan_reach`,`artist_services`):ai({productAttribution:`fan_reach`,productAttributionGroup:`artist_services`})},r.removeAttachment=v;function v(e){e===`Track`?(r.track={id:``},r.campaign={...r.campaign,trackId:``}):e===`Album`&&(r.album={id:``},r.campaign={...r.campaign,albumId:``}),r.canProceedToStep2=!1}r.openLibrary=y;function y(){r.campaign.type===`Track`?Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),Promise.resolve().then(()=>JR)]).then(function([{createModal:e},{default:t}]){let n=O(null),i=O([]);e(t,{itemList:i,loadMore:async function(){let{data:e,paging:t}=await f.getTracksFromUser({userId:u.id,limit:30,after:n.value}).$promise;i.value.push(...e),n.value=t.cursors.after},onContinueWithSingleSelection:function(e,t){r.track=e,r.campaign.trackId=r.track.id,r.canProceedToStep2=!0,r.fanreachCampaignForm.$setDirty(),r.$applyAsync(),t()},pagingAfter:n,selectionType:`single`})}):Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./CbsUnM6J.js`)]).then(function([{createModal:e},{default:t}]){let n=O(null),i=O([]);e(t,{itemList:i,loadMore:async function(){let{data:e,paging:t}=await c.fromUser({userId:u.id,limit:30,after:n.value}).$promise,r=e.map(e=>({...e,isDisabledInPicker:e.state!==`Released`}));i.value.push(...r),n.value=t.cursors.after},onContinueWithSingleSelection:function(e,t){r.album=e,r.campaign.albumId=r.album.id,r.canProceedToStep2=!0,r.fanreachCampaignForm.$setDirty(),r.$applyAsync(),t()},pagingAfter:n,selectionType:`single`})})}r.back=b,r.next=x;function b(){i.go(`fanReachCreate.campaignType`)}function x(){i.go(`fanReachCreate.editor`),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logFanReachCampaignCreate:e}){e(r.campaign)})}r.$on(`tabBarBack`,b),r.$watch(`campaign.type`,function(e){switch(e){case`Track`:r.campaignMessagePlaceholder=`Tell your fans about your track.`;break;case`Album`:r.campaignMessagePlaceholder=`Tell your fans about your album.`;break;case`Text`:r.campaignMessagePlaceholder=`Write anything from a quick Hello to an exciting personal update.`;break;default:r.campaignMessagePlaceholder=`Enter campaign message`}i.current.name===`fanReachCreate.campaignType`&&(e===`Track`?(r.campaign={...r.campaign,trackId:r.track?r.track.id:``,albumId:``},r.campaign.trackId===``?(r.canProceedToStep2=!1,r.fanreachCampaignForm.$setPristine()):(r.canProceedToStep2=!0,r.fanreachCampaignForm.$setDirty())):e===`Album`?(r.campaign={...r.campaign,albumId:r.album?r.album.id:``,trackId:``},r.campaign.albumId===``?(r.canProceedToStep2=!1,r.fanreachCampaignForm.$setPristine()):(r.canProceedToStep2=!0,r.fanreachCampaignForm.$setDirty())):e===`Text`&&(r.campaign={...r.campaign,trackId:``,albumId:``},r.canProceedToStep2=!0,r.fanreachCampaignForm.$setPristine()))},!0),r.createNewCampaign=function(){r.fanreachCampaignForm.$dirty?(l.addNotification({id:`fanReachCampaignSave`,title:`Your draft is being saved`,classList:`loading`,autoclose:8e3}),p.updateFanReachDraftEmail({userId:u.id,draftId:r.campaign.draftId},r.campaign).$promise.then(function(){l.addNotification({id:`fanReachCampaignSave`,title:`Your draft has been saved`,classList:`success`,autoclose:8e3}),i.go(`fanReachCreate.campaignType`,{draftId:null})}).catch(function(){l.addNotification({id:`fanReachCampaignSave`,title:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})):i.go(`fanReachCreate.campaignType`,{draftId:null})},r.sendCampaign=S,r.isWebview=o(),r.exitFromFooter=function(){n.$broadcast(`topBarExit`)};function S(){r.sendingCampaign=!0,p.sendFanReachEmail({userId:u.id},r.campaign).$promise.then(function(){e.get(`FanReach`)?.removeAll(),s(()=>{i.go(`dashboard.fanReach.sent`,o()?{"#":`bl_closeWebView`}:{});let e=r.campaign.trackId?`Track Update`:r.campaign.albumId?`Album Update`:`Fan Update`;l.addNotification({title:`Your ${e} was sent`,classList:`success`,autoclose:8e3}),import(`./DvQD5s06.js`).then(e=>
282e.t).then(function({logFanReachCampaignSend:e}){e(r.campaign)})},3e3)}).catch(function(e){s(()=>{r.sendingCampaign=!1;let t=e.data.errorCode;if(t===22||t===120){let e=J(()=>import(`./C9NRjjLY.js`));import(`./BUIA2SYS.js`).then(e=>e.t).then(function({createModal:n}){n(e,{emailUnconfirmed:t===120})})}else l.addNotification({title:e.data.message,classList:`alert`,autoclose:8e3})},3e3)})}r.$on(`topBarExit`,C);function C(){if(r.fanreachCampaignForm.$dirty){let e=new d({template:` 283 <div class="ds-modal ds-modal-size-small ds-modal-with-footer"> 284 <header class="ds-modal-header"> 285 <h2 class="ds-modal-title"> 286 Save changes? 287 </h2> 288 </header> 289 <div class="ds-modal-content"> 290 <div class="ds-modal-content-p"> 291 Any unsaved changes will be lost once you leave this page 292 </div> 293 </div> 294 <div class="ds-modal-footer ds-modal-footer-two-buttons"> 295 <button type="button" ng-click="discard()" class="modal-cancel ds-button ds-button-color-secondary ds-button-size-medium"> 296 <span class="ds-button-text">Leave</span> 297 </button> 298 <button ng-disabled="saving" type="button" ng-click="save()" class="modal-confirm ds-button ds-button-color-destructive-primary ds-button-size-medium"> 299 <span class="ds-button-text">Save</span> 300 </button> 301 </div> 302 <button 303 type="button" 304 class="angularjs-ds-modal-close-button" 305 aria-label="Close" 306 zf-close 307 > 308 <icon-svg size="20" name="x"></icon-svg> 309 </button> 310 </div> 311 `,toFocusConfirm:!0,contentScope:{saving:!1,discard:function(){i.go(`dashboard.fanReach.drafts`,o()?{"#":`bl_closeWebView`}:{}),e.destroy()},save:function(){let t;t=r.isNewCampaign?p.createFanReachDraftEmail({userId:u.id},r.campaign).$promise:p.updateFanReachDraftEmail({userId:u.id,draftId:r.campaign.draftId},r.campaign).$promise,l.addNotification({id:`fanReachCampaignSave`,title:`Your draft is being saved`,classList:`loading`,autoclose:8e3}),this.saving=!0,t.then(()=>{this.saving=!1,l.addNotification({id:`fanReachCampaignSave`,title:`Your draft has been saved`,classList:`success`,autoclose:8e3}),i.go(`dashboard.fanReach.drafts`,o()?{"#":`bl_closeWebView`}:{}),e.destroy()}).catch(()=>{this.saving=!1,l.addNotification({id:`fanReachCampaignSave`,title:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})}},onCancel:function(){e.destroy()}});e.show()}else i.go(`dashboard.fanReach.drafts`,o()?{"#":`bl_closeWebView`}:{})}}]},"topBarForm@":{templateUrl:`https://www.bandlab.com/web-app/fanreach/partials/_fanreach-creation-top-bar-b79e1b2f6.html`,controller:[`$rootScope`,`$scope`,function(e,t){t.exitPage=function(){e.$broadcast(`topBarExit`)}}]},"tabBarForm@":{templateUrl:`https://www.bandlab.com/web-app/fanreach/partials/_fanreach-creation-tab-bar-7df91f77c.html`,controller:[`$rootScope`,`$scope`,function(e,t){t.goBack=function(){e.$broadcast(`tabBarBack`)},t.exitPage=function(){e.$broadcast(`topBarExit`)}}]}},redirectTo:function(e){let t=e.injector().get(`Me`);return e.injector().get(`User`).getFanReachStatus({userId:t.id}).$promise.then(function(t){return t.featureAccess.isActivated&&t.permissions.reachSubscribers?e.params().draftId||e.params().trackId?{state:`fanReachCreate.editor`,params:{draftId:e.params().draftId,trackId:e.params().trackId}}:{state:`fanReachCreate.campaignType`}:{state:`dashboard.fanReach`,params:o()?{"#":`bl_closeWebView`}:{}}})}}).state(`fanReachCreate.campaignType`,{url:`/step-1`,useTopBarForm:!0,views:{"":{templateUrl:`https://www.bandlab.com/web-app/fanreach/views/fanreach-creation-campaign-type-85c3418a7.html`}},redirectTo:function(e){let t=e.injector().get(`Me`);return e.injector().get(`User`).getFanReachStatus({userId:t.id}).$promise.then(function(t){if(!(t.featureAccess.isActivated&&t.permissions.reachSubscribers))return{state:`dashboard.fanReach`,params:o()?{"#":`bl_closeWebView`}:{}};if(e.params().draftId||e.params().trackId)return{state:`fanReachCreate.editor`,params:{draftId:e.params().draftId,trackId:e.params().trackId}}})}}).state(`fanReachCreate.editor`,{url:`/step-2`,useTopBarForm:!0,views:{"":{templateUrl:`https://www.bandlab.com/web-app/fanreach/views/fanreach-creation-editor-396340dda.html`}},redirectTo:function(e){let t=e.injector().get(`Me`);return e.injector().get(`User`).getFanReachStatus({userId:t.id}).$promise.then(function(t){if(!(t.featureAccess.isActivated&&t.permissions.reachSubscribers))return{state:`dashboard.fanReach`,params:o()?{"#":`bl_closeWebView`}:{}};if(e.from().name!==`fanReachCreate.campaignType`&&!e.params().draftId&&!e.params().trackId)return{state:`fanReachCreate.campaignType`}})}}).state(`fanReachFanCollector`,{url:`/{username:[a-z0-9][a-z0-9_]{2,19}}/subscribe`,templateUrl:`https://www.bandlab.com/web-app/fanreach/views/fanreach-fan-collector-00f3455aa.html`,resolve:{theUser:[`$stateParams`,`User`,function(e,t){return t.get({id:e.username}).$promise}],theFan:[`theUser`,`Me`,`User`,function(e,t,n){return t.isAnonymous()?{isFan:!1}:n.getFanReachSubscriptionState({userId:e.id,meId:t.id}).$promise}],fanReachEnabled:[`theUser`,`User`,function(e,t){return t.getFanReachStatusUnauthorized({userId:e.id}).$promise}],redirectToUserProfile:[`fanReachEnabled`,`$state`,`$stateParams`,function(e,t,n){if(!e.isActivated)return t.go(`user.feed`,{username:n.username})}]},onEnter:[`Page`,`theUser`,function(e,t){e.setMetadata({title:`${t.name} | Fan Reach`,image:`${t.picture.url}360x360`})}],onExit:[`Page`,function(e){e.clearMetadata()}],controller:[`$scope`,`$state`,`AppNotifications`,`theFan`,`User`,`theUser`,`Me`,`Share`,function(e,t,n,r,i,a,o,s){e.isAnonymous=o.isAnonymous(),Ob
311ject.assign(a,{fanReach:{isFan:r.isFan,subscribing:!1}}),e.user=a,e.subscriberEmail=``,e.shareWithTwitter=function(){s.withTwitter(c())},e.shareWithFacebook=function(){s.withFacebook(c())},e.subscribe=l;function c(){return t.href(`fanReachFanCollector`,{username:e.user.username},{absolute:!0})}function l(){Object.assign(e.user,{fanReach:{subscribing:!0}}),i.subscribeViaLink({userId:e.user.id,email:e.subscriberEmail}).$promise.then(()=>{Object.assign(e.user,{fanReach:{isFan:!0}})}).catch(()=>{Object.assign(e.user,{fanReach:{subscribing:!1}}),n.addNotification({title:`Something went wrong, please try again later`,classList:`warning`,autoclose:8e3})})}}]})}]),angular.module(`bandlab.fanreach`).controller(`FanReachActivateModalCtrl`,[`$injector`,`$rootScope`,`$scope`,`$state`,`Me`,function(e,t,n,r,i){n.modalActivateFanReach=function(){n.isActivating=!0,import(`./BmwiGc5z.js`).then(function({handleActivateFanReach:a}){a(i.id,e,{onSuccess:function(){r.go(`dashboard.fanReach.sent`),t.$broadcast(`fanreachActivateModal`,`close`)},onError:function(){n.isActivating=!1},onErrorEmail:function(){t.$broadcast(`fanreachActivateModal`,`close`)}})})}}]),angular.module(`bandlab.fanreach`).controller(`FanReachMyFansCtrl`,[`$q`,`$scope`,`$state`,`ConfirmModal`,`Me`,`Modal`,`User`,function(e,t,n,r,i,a,s){t.$parent.status.featureAccess.isActivated===!1&&new a({id:`fanreachActivateModal`,templateUrl:`https://www.bandlab.com/web-app/fanreach/partials/_fanreach-activate-modal-4fc6f06ca.html`,class:`artist-services-usps-modal-root`}).show(),s.getFanReachSubscriberCount({id:i.id}).$promise.then(function(e){t.stats=e}),t.view={sortDesc:!0};var c=50,l=null,u,d=!1;function f(){if(d)return e.resolve([]);var n={limit:c,after:l};return u=s.getFanReachSubscribers(Object.assign(n,{meId:i.id,sort:`subscribedOn`,sortOrder:t.view.sortDesc?`desc`:`asc`,status:`available`})).$promise,u=u.then(function(e){return l=e.paging.cursors.after,d=!l,e.data=e.data.map(e=>(e.formattedSubscribedOn=Si(e.subscribedOn),e)),e.data}),u}t.loadMoreSubscribers=function(){return t.subscribersInfiniteScrollEnded?e.resolve():(u=u.then(function(e){return t.subscribersInfiniteScrollEnded=d,t.subscribers=t.subscribers||[],t.subscribers=t.subscribers.concat(e),f()}),u)},f().then(t.loadMoreSubscribers),t.removeSubscriber=p,t.toggleSubscribersSorting=m,t.subscribeLink=n.href(`fanReachFanCollector`,{username:i.username},{absolute:!0}),t.isWebview=o(),t.me=i;function p(e){return new r({confirmLabel:`Remove`,contentScope:{title:`Removing fan`,message:`You are about to remove ${e.email} from your mailing list. Are you sure you want to continue?`},onConfirm:function(){s.deleteFanReachSubscribers({meId:i.id},{ids:[e.id]}).$promise.then(function(){ja(t.subscribers,e),t.stats.delta.subscribers--,t.stats.total.subscribers--})}}).show()}function m(){t.view.sortDesc=!t.view.sortDesc,h(),f().then(t.loadMoreSubscribers)}function h(){delete t.subscribers,l=null,d=!1,t.subscribersInfiniteScrollEnded=!1}}]),angular.module(`bandlab.fanreach`).controller(`FanReachSettingsCtrl`,[`$injector`,`$rootScope`,`$scope`,`AppNotifications`,`Me`,`User`,function(e,t,n,r,i,a){n.status={...n.$parent.status,featureAccess:{...n.$parent.status.featureAccess,isActivated:n.$parent.status.featureAccess.isActivated}},n.toggleActivation=o;function o(){let o=n.status.featureAccess.isActivated;o?import(`./BmwiGc5z.js`).then(function({handleActivateFanReach:t}){t(i.id,e)}):a.deactivateFanReach({userId:i.id}).$promise.then(function(e){import(`./BWvciV-z.js`).then(e=>e.t).then(function({setUserProperty:e}){e(`fan_reach_activated`,!1)}),t.$broadcast(`$fanReach:statusChanged`,{action:`deactivate`,response:e}),r.addNotification({title:`Fan Reach has been deactivated`,classList:`success`,autoclose:8e3})}).catch(function(){n.status.featureAccess.isActivated=!o,r.addNotification({title:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})}n.$on(`$fanReach:statusToggled`,function(e,t){n.status.featureAccess.isActivated=t.isActivating}),n.$on(`$fanReach:statusChanged`,function(e,t){n.status={...t.response,featureAccess:{...t.response.featureAccess,isActivated:t.response.featureAccess.isActivated}}}),s();function s(){a.getFanReachIntroMessage({userId:i.id}).$promise.then(function(e){n.introMessage=e,n.savingIntroMessage=!1}
311).catch(function(){r.addNotification({content:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})}n.updateIntroMessage=c,n.disableIntroMessage=l,n.previewIntroMessage=u;function c(e){let t=n.introMessage.isEnabled;n.savingIntroMessage=!0,a.updateFanReachIntroMessage({userId:i.id},n.introMessage).$promise.then(function(){n.savingIntroMessage=!1,r.addNotification({title:t?`Welcome Message saved`:`Welcome Message disabled`,classList:`success`,autoclose:8e3}),e.$setPristine()}).catch(function(e){n.savingIntroMessage=!1,r.addNotification({content:e.data.message||`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})}function l(e){n.introMessage.isEnabled===!1&&c(e)}function u(){let e=J(()=>import(`./DrLC_awg.js`));import(`./BUIA2SYS.js`).then(e=>e.t).then(function({createModal:t}){t(e,{subject:n.introMessage.subject,message:n.introMessage.message})})}}]),angular.module(`bandlab.global`,[]).directive(`siteTopBarCreateButton`,[`$injector`,function(e){return{restrict:`E`,replace:!0,link:function(t,n){$(import(`./Bdz3jhiu.js`),n[0],t,{$injector:e})}}}]).directive(`openMicCard`,function(){return{restrict:`E`,replace:!0,link:function(e,t){$(import(`./C3jQtVXX.js`),t[0],e)}}}).directive(`openMicCardMobile`,function(){return{restrict:`E`,replace:!0,link:function(e,t){$(import(`./CcvJi2sE.js`),t[0],e)}}}).directive(`feedTabSelectorMobile`,[`$injector`,function(e){return{restrict:`E`,replace:!0,link:function(t,n){$(import(`./qQ4naS26.js`),n[0],t,{$injector:e})}}}]),angular.module(`bandlab.global`).controller(`FeedCtrl`,[`$injector`,`$location`,`$q`,`$rootScope`,`$scope`,`$state`,`$stateParams`,`$timeout`,`Me`,`PlayerHistory`,`Post`,function(e,t,n,r,i,a,o,s,c,l,u){let d=a.current.name;var f=10,p=null,m,h=!1,g=!1,_=t.url(),v=new Map,y=new Map;i.ads=new Map,i.loadMore=T,i.onPostCreate=E,i.isLoadingMore=!1,i.playlistQueue=[],i.user=c,i.state=a,i.nativeAdClientPlacement=is,i.getAdjustedIndex=b,l.setCurrentPageContext({contentSource:Ee(a),loader:T,url:_}),Y.setItem(`lastSelectedFeed`,d),o.postId&&!a.current.name.endsWith(`.shout`)&&fs({$injector:e,id:o.postId}),S(0),d===`feed.following`||d===`feed.trending`||d===`feed.communities`?ke(c,`vom_placement_enabled`).then(function(e){r.isOpenMicEnabled=e===`true`}):r.isOpenMicEnabled=!1,i.loadMore().then(function(){if(a.current.name===`feed.trending`){let e=Array.from(i.ads.keys()).filter(e=>e<10).length;i.ads.has(10-e)?i.ads.get(10-e).adCreative.post.isTenthPostForEaster=!0:i.posts[9-e]&&(i.posts[9-e].isTenthPostForEaster=!0)}import(`./DNnIhUw8.js`).then(e=>e.t).then(function({logCustomEvent:e}){e(`feed_load_complete`)})}),i.$on(`$revision:changed`,function(e,t){t.action===`unpublish`?ja(i.posts,function(e){return e.revision&&e.revision.id===t.revision.id}):t.action===`create`&&t.revision.isPublic&&u.get({id:t.revision.postId}).$promise.then(function(e){i.posts.unshift(e)})}),i.$on(`$post:delete`,function(e,t){ja(i.posts,function(e){return e.id===t.post.id})}),i.$on(`$post:created`,function(e,t){E(t)}),i.$on(`$user:relationChanged`,function(e,t){t.type===`block`&&ja(i.posts,function(e){return e.creator.id===t.user.id})}),i.$on(`$post:attachmentResolved`,function(e,{resolvedPost:t}){let n=a.includes(`feed`),r=t?.revision?.mixdown?.status===`Ready`;(!n||r)&&k(i.posts||[])}),i.$on(`$destroy`,function(){s(OE,0)}),i.$watch(function(){return i.ads.values().next().value},function(e){e&&(i.validAd=e)});function b(e){let t=0;return i.ads.forEach(function(n,r){r<=e&&t++}),e+t}function x(){return a.current.name===`feed.trending`?is.feedTrending:a.current.name===`feed.following`?is.feedFollowing:a.current.name===`feed.communities`?is.feedCommunities:null}function S(e=0){let t=x();if(!t||v.has(e))return Promise.resolve();if(y.has(e))return y.get(e);let n=ds(t,f).then(function({ads:n}){n?.forEach(function(e){e.adCreative?.post&&t===is.feedTrending&&(e.adCreative.post.trendingPostType=5)}),v.set(e,n||[])}).catch(function(){v.set(e,[])}).finally(function(){y.delete(e)});return y.set(e,n),n}function C(e=0){let t=v.get(e);return t?(t.forEach(function(t,n){i.ads.set(t.position+e-n,t)}),v.delete(e),i.$applyAsync(),!0):!1}function w(){if(g)return n.resolve([]);let e;switch(d){case`feed.trending`:e=u.fromTrending({after:p,limit:f,genres:c.genres?.map(e=>e.id).join(`,`)||`all`,userId:c.id,"api-variants":`profile_status_enabled`}).$promise;break;case`feed.communities`:e=u.fromCommunities({after:p,limit:f}).$promise;break;default:e=u.fromFollowees({after:p,limit:f,userId:c.id,"api-variants":`profile_status_enabled`}).$promise}return m=e.then(function(e){return p=e.paging.cursors.after,g=!p,e.data}),m}function T(){if(i.infiniteScrollEnded||g)return i.infiniteScrollEnded=!0,n.resolve();if(h)return m;let e=(i.posts||[]).length;return S(e),h=!0,i.isLoadingMore=!0,m=w().then(function(t){i.posts=i.posts||[],i.posts=xP(i.posts.concat(t),`id`),i.infiniteScrollEnded=g,C(e)||S(e).then(function(){C(e),k(i.posts)}),i.posts.length>e&&O(e)}).finally(function(){h=!1,i.isLoadingMore=!1}),m}function E(e){e.canChangePinState=!1,a.is(`feed.following`)&&i.posts.unshift(e)}function D({posts:e,offset:t=0}){return e.flatMap((e,n)=>{let r=i.ads.get(n+t),a=wC(e);
311return r?[wC(r.adCreative.post),a].filter(Boolean):a?[a]:[]})}function O(e){let t=D({posts:i.posts.slice(e),offset:e});i.playlistQueue=[...i.playlistQueue,...t],l.pushQueueSongs(t,_)}function k(e){let t=D({posts:e});i.playlistQueue=t,l.pushQueueSongs(t,_,!0)}}]),angular.module(`bandlab.global`).component(`feedFiltersVertical`,{controller:[`$scope`,`$element`,`$injector`,function(e,t,n){$(import(`./V_JnY0ke.js`),t[0],e,{$injector:n,$scope:e})}]});const uF=[{label:`Create`,items:[{state:`features`,href:null,shouldOpenInNewTab:!1,title:`Studio`,description:`Record, mix, and collaborate on your music projects wherever you are`,iconName:`product-studio`,iconColor:`var(--ds-color-tint-red-base)`},{state:`soundsroot`,href:null,shouldOpenInNewTab:!1,title:`Sounds`,description:`Get unlimited access to the latest royalty-free artist packs and samples`,iconName:`product-sounds`,iconColor:`var(--ds-color-tint-red-base)`},{state:`beats({ path: "trending" })`,href:null,shouldOpenInNewTab:!1,title:`Beats`,description:`Professionally crafted Beats specifically for your tracks`,iconName:`product-beats`,iconColor:`var(--ds-color-tint-red-base)`,isNew:!0},{state:`mastering`,href:null,shouldOpenInNewTab:!1,title:`Mastering`,description:`Sound your best with free, Grammy-winner designed mastering presets`,iconName:`product-mastering`,iconColor:`var(--ds-color-tint-red-base)`},{state:`songStarter`,href:null,shouldOpenInNewTab:!1,title:`SongStarter`,description:`Generate royalty-free song ideas with our AI-powered feature`,iconName:`product-songstarter`,iconColor:`var(--ds-color-tint-red-base)`,isAi:!0},{state:`fx`,href:null,shouldOpenInNewTab:!1,title:`Effects`,description:`Craft your unique sound with a diverse set of effects and presets`,iconName:`product-fx`,iconColor:`var(--ds-color-tint-red-base)`},{state:`splitter`,href:null,shouldOpenInNewTab:!1,title:`Splitter`,description:`Isolate vocals and instruments from any song`,iconName:`product-splitter`,iconColor:`var(--ds-color-tint-red-base)`,isAi:!0}]},{label:`Grow`,items:[{state:`boost`,href:null,shouldOpenInNewTab:!1,title:`Boost`,description:`Reach out to millions of BandLab users by boosting your music or posts`,iconName:`product-boost`,iconColor:`var(--ds-color-tint-purple-base)`},{state:`fanReach`,href:null,shouldOpenInNewTab:!1,title:`Fan Reach`,description:`Connect with your fans by sending them a personal message`,iconName:`product-fanreach`,iconColor:`var(--ds-color-tint-purple-base)`},{state:`opportunitiesLandingPage`,href:null,shouldOpenInNewTab:!1,title:`Opportunities`,description:`Submit your music to land gigs, features, record deals and more`,iconName:`product-opportunities`,iconColor:`var(--ds-color-tint-purple-base)`},{state:`industryConnect`,href:null,shouldOpenInNewTab:!1,title:`Industry Connect`,description:`Share your professional status for opportunities, representation, record deals and collaborations`,iconName:`creator-connect`,iconColor:`var(--ds-color-tint-purple-base)`},{state:`pages`,href:null,shouldOpenInNewTab:!1,title:`Pages`,description:`Easily create shareable pages that put your talent and creativity front and center`,iconName:`product-pages`,iconColor:`var(--ds-color-tint-purple-base)`}]},{label:`Earn`,items:[{state:`distribution`,href:null,shouldOpenInNewTab:!1,title:`Distribution`,description:`Release your music on global music streaming platforms beyond BandLab`,iconName:`product-distribution`,iconColor:`var(--ds-color-tint-green-base)`},{state:null,href:`https://licensing.bandlab.com/`,shouldOpenInNewTab:!1,title:`Licensing`,description:`Start earning money from your music today.`,iconName:`document-dollar`,iconColor:`var(--ds-color-tint-green-base)`,isNew:!0}]},{label:`Subscriptions`,items:[{state:`membership`,href:null,shouldOpenInNewTab:!1,title:`Membership`,description:null,iconName:`product-membership`,iconColor:`var(--ds-color-tint-yellow-base)`,isNew:!0}]},{label:`Other Products`,items:[{state:null,href:`https://edu.bandlab.com/`,shouldOpenInNewTab:!0,title:`BandLab for Education`,description:null,iconName:`product-education`,iconColor:`var(--ds-color-glyphs-secondary)`},{state:null,href:`https://www.cakewalk.com/`,shouldOpenInNewTab:!0,title:`Cakewalk`,description:null,iconName:`product-cakewalk`,iconColor:`var(--ds-color-glyphs-secondary)`},{state:null,href:`https://blog.bandlab.com/what-is-audiostretch-and-how-do-i-use-it/`,shouldOpenInNewTab:!0,title:`AudioStretch`,description:null,iconName:`product-audiostretch`,iconColor:`var(--ds-color-glyphs-secondary)`}]}],dF=[`getMembershipPage`,`membershipOnboarding`],fF=[`feed`,`dashboard`,`user`,`explore`,`quickUpload`,`library`,`notifications`],pF={beats_top_button:`beats_mem_top_button_removal`};function mF(e){return pF[hF(e)]}function hF(e){switch(!0){case e.includes(`beats`):return`beats_top_button`;case e.includes(`dashboard`):return`artist_services_top_button`;case e.includes(`discover`):return`discover_top_button`;case e.includes(`feed`):return`feed_top_button`;case e.includes(`library`):return`library_top_button`;case e.includes(`quickUpload`):return`create_top_button`;case e.includes(`sounds`):return`blsounds_top_button`;case e.includes(`user`):return`profile_top_button`;default:return`other_top_button`}}async function gF(e,t){let n=mF(t);if(!n)return!1;let r=await ke(e,n);return mF(t)===n&&[`true`,`on`].includes(r)}angular.module(`bandlab.global`).directive(`flyout`,[`$animate`,`Me`,function(e,t){return{restrict:`E`,replace:!0,scope:{},templateUrl:`https://www.bandlab.com/web-app/global/partials/_flyout-9da457ed2.html`,link:function(n,r){r.remove(),n.me=t,n.$on(`siteTopBar:openFlyout`,a),n.$on(`siteTopBar:closeFlyout`,i);function i(){e.leave(r[0],{removeClass:`visible`}),r.off(`click`,o),n.$digest(),document.body.classList.remove(`flyout-visible`)}function a(){e.enter(r[0],document.body,document.body.lastChild),r.on(`click`,o),setTimeout(()=>{r.addClass(`visible`),document.body.classList.add(`flyout-visible`)})}function o(e){(e.target.closest(`a`)||e.target.closest(`button`))&&i()}}
311,controller:[`$analytics`,`$scope`,`$state`,`$transitions`,function(e,n,r,i){let{getUserMembership:a}=qn(n,t,e=>{n.hasMembership=e.plan!==`Free`});n.isLandingPages=function(){return r.is(`albums`)||r.is(`ai`)||r.is(`beats`)||r.is(`beatslanding`)||r.is(`boost`)||r.is(`features`)||r.is(`fanReach`)||r.is(`fx`)||r.is(`landing`)||r.is(`mastering`)||r.is(`membership`)||r.is(`membershipPricing`)||r.is(`songStarter`)||r.is(`pages`)||r.is(`promoteIt`)||r.is(`opportunitiesLandingPage`)||r.is(`distribution`)||r.is(`sony360ra`)||r.is(`splitter`)||r.is(`products.aiTools`)||r.is(`products.mastering`)||r.is(`products.marketingDiceVocalist`)||r.is(`products.marketingDiceBeatMaker`)||r.is(`products.vocalTools`)||r.is(`products.voiceCleaner`)||r.includes(`sounds`)},n.hasProductLogoState=function(){return r.is(`mastering`)||r.is(`beats`)||r.is(`distribution`)||r.is(`songStarter`)||r.is(`fanReach`)||r.is(`fx`)||r.is(`membership`)||r.is(`pages`)||r.is(`splitter`)||r.includes(`sounds`)},n.logOpenEvent=function(t,n){e.eventTrack(t,{platform:`firebase`,params:{triggered_from:n}})};let o=n.$watch(()=>t.isUser(),()=>{n.productsMenu.find(e=>e.label===`Create`).items.find(e=>e.title===`Studio`).state=t.isUser()?`mixEditor`:`features`,t.isUser()&&(a(t.id).then(()=>n.isMembershipReady=!0),s(),o())});i.onSuccess({},function(){t.isUser()&&s()});function s(){return gF(t,r).then(e=>{n.isMembershipTouchpointHidden=e,n.$applyAsync()})}n.productsMenu=uF,n.shouldDisplayMembershipTouchpoint=function(){return!n.hasMembership&&n.isMembershipReady&&!n.isMembershipTouchpointHidden},n.handleMembershipTouchpointClick=function(){ai({productAttribution:hF(r),productAttributionGroup:`top_button`})}}]}}]),angular.module(`bandlab.global`).component(`siteFooter`,{controller:[`$element`,`$scope`,function(e,t){$(import(`./BdsgV779.js`).then(e=>e.t),e[0],t)}]}),angular.module(`bandlab.global`).component(`siteFooterCard`,{templateUrl:`https://www.bandlab.com/web-app/global/partials/_site-footer-card-8458a29f7.html`}),angular.module(`bandlab.global`).component(`siteNavBar`,{templateUrl:`https://www.bandlab.com/web-app/global/partials/_site-nav-bar-1e8bf51e8.html`,controller:[`$scope`,`$transitions`,`$state`,`Me`,function(e,t,n,r){this.isMediaTabDefaultEnabled=!1,this.isMediaTabDefaultResolved=!1,this.state=i(n.current.name||n.transition?.to().name),e.$watch(()=>r.id,t=>{if(!t){s({isEnabled:!1,isResolved:!1});return}if(!r.isUser()){s({isEnabled:!1,isResolved:!0});return}let n=t;ap(r).then(e=>{r.id===n&&s({isEnabled:e,isResolved:!0})}).finally(()=>{e.$applyAsync()})}),t.onBefore({},e=>{a(e.to().name,e.params().username)}),this.shouldShowNavBar=function(){return this.isMediaTabDefaultResolved&&!o()&&!r.isAnonymous()&&!n.$current.data?.hideNavBar},this.isStateActive=function(e){return n.includes(e)};function i(e=``){return e.split(`.`)[0]}let a=(e,t)=>{let n=i(e);this.state=n===`user`&&t===r.username?`profile`:n},s=({isEnabled:e,isResolved:t})=>{this.isMediaTabDefaultEnabled=e,this.isMediaTabDefaultResolved=t}}],controllerAs:`vm`}).directive(`siteNavBarSpy`,function(){return{controller:[`$scope`,function(e){document.body.classList.add(`nav-bar-visible`),e.$on(`$destroy`,function(){document.body.classList.remove(`nav-bar-visible`)})}]}});const _F={trending:{name:`feed.trending`,label:`Trending`,icon:_(Sf),isVisible:!0},following:{name:`feed.following`,label:`Following`,icon:_(Cf),isVisible:!0},communities:{name:`feed.communities`,label:`Communities`,icon:_(xf),isVisible:!0}},vF=[_F.following.name,_F.communities.name,_F.trending.name],yF=Object.values(_F).map(e=>e.name);function bF(e){return typeof e==`string`&&yF.includes(e)}async function xF(e){let t=Object.values(_F);if(!e?.isUser())return t;let[n,r]=await Promise.all([ke(e,`hide_trending_following_on`).then(e=>e===`true`),ke(e,`media_tab_default`).then(e=>e===`true`)]),i=t;return r&&(i=t.map(e=>e.name===_F.trending.name?{...e,label:`For You`}:e)),n?vF.map(e=>{let t=i.find(({name:t})=>t===e)??_F.trending;return t.name===_F.trending.name?{...t,isVisible:!1}:t}):i}angular.module(`bandlab.global`).component(`siteTabBar`,{templateUrl:`https://www.bandlab.com/web-app/global/partials/_site-tab-bar-34e527cb3.html`,controller:[`$rootScope`,`$scope`,`$state`,`Me`,`StreaksService`,function(e,t,n,r,i){n.stackSize=0;let{getUserMembership:a}=qn(t,r,e=>{t.hasMembership=e.plan!==`Free`,t.billingInterval=e.billingInterval});
311this.me=r,this.openFlyout=()=>e.$broadcast(`siteTopBar:openFlyout`),this.state=n,this.isMediaTabDefaultEnabled=!1;let o=null,s=()=>this.isMediaTabDefaultEnabled?`discover`:`feed`;function c(){return i.state.data}function l(){return Number(c()?.streakCounter)||0}this.isCurrentProfileStreaksEnrolled=function(){return c()?.enrolled===!0},this.getCurrentStreakCounter=l,this.goBack=function(){let e=s();if(r.isAnonymous())e=`explore`;else if(n.includes(`dashboard.pages`))return n.params.path===`revision`||n.params.path===`bio`?n.params.source===`user_profile`&&n.params.path===`bio`?n.go(`user.feed`,{username:r.username}):n.go(`dashboard.pages`,{source:`pages`},{reload:!0,inherit:!1}):n.go(`dashboard.overview`);else if(n.includes(`dashboard.overview`))return n.params.rewriteSiteTabBarBack===`dashboard.overview`?n.go(`dashboard.overview`,{},{reload:!0,inherit:!1}):n.go(s());else if(n.params.rewriteSiteTabBarBack)return n.go(n.params.rewriteSiteTabBarBack);return n.stackSize?window.history.back():n.go(e)},this.exitPage=function(){e.$broadcast(`topBarExit`)},this.isMainPageState=function(){return n.includes(`sounds`)||n.includes(`beats`)||this.isLandingPageState()},this.isLandingPageState=function(){return n.is(`mastering`)||n.is(`ai`)||n.is(`beatslanding`)||n.is(`boost`)||n.is(`landing`)||n.is(`fanReach`)||n.is(`features`)||n.is(`fx`)||n.is(`albums`)||n.is(`signUp`)||n.is(`distribution`)||n.is(`download`)||n.is(`membership`)||n.is(`membershipPricing`)||n.is(`songStarter`)||n.is(`pages`)||n.is(`promoteIt`)||n.is(`opportunitiesLandingPage`)||n.is(`sony360ra`)||n.is(`splitter`)||n.is(`playgroundLandingPage`)||n.is(`products.aiTools`)||n.is(`products.mastering`)||n.is(`products.marketingDiceVocalist`)||n.is(`products.marketingDiceBeatMaker`)||n.is(`products.vocalTools`)||n.is(`products.voiceCleaner`)},this.isOnlyShowingSearchBar=function(){return document.body.classList.contains(`sounds-searchResults`)||document.body.classList.contains(`beats-searchResults`)},this.isFormPageState=function(){return n.current.useTopBarForm},this.isFeedTabState=function(){return yF.includes(n.current.name)},this.hasProductLogoState=function(){return n.is(`mastering`)||n.is(`distribution`)||n.is(`songStarter`)||n.is(`fanReach`)||n.is(`fx`)||n.is(`getMembershipPage`)||n.is(`membership`)||n.is(`pages`)||n.is(`splitter`)},this.handleMembershipTouchpointClick=function(){ai({productAttribution:hF(n),productAttributionGroup:`top_button`})},this.shouldDisplayMembershipTouchpoint=function(){return!t.hasMembership&&t.isMembershipReady&&!this.isLandingPageState()&&!n.includes(`settings`)&&!n.includes(`search.results`)&&!n.includes(`unavailable`)&&!n.includes(`industryConnect`)&&!n.current.useTopBarForm&&!dF.some(e=>n.includes(e))},this.shouldDisplayMembershipAnimationTouchpoint=function(){return t.membershipButtonAnimationPath&&this.shouldDisplayMembershipTouchpoint()&&fF.some(e=>n.includes(e))},t.$watch(`vm.me.id`,function(){if(!r.isUser()){this.isMediaTabDefaultEnabled=!1,t.membershipButtonAnimationPath=!1;return}let e=r.id;o||=i.subscribe(()=>{t.$applyAsync()}),Me(r,`get_button_animation`).then(function(e){t.membershipButtonAnimationPath=e.value===`true`&&e.payload}),a(r.id).then(()=>t.isMembershipReady=!0),ap(r).then(n=>{r.id===e&&(this.isMediaTabDefaultEnabled=n,t.$applyAsync())})}.bind(this)),e.$on(`$user:viewProfile`,(e,t)=>{this.user=t,this.showFanReachTooltip=!Y.getItem(`fanReachTooltipClosed`)}),t.$on(`$destroy`,function(){typeof o==`function`&&o()}),e.$on(`$band:viewProfile`,(e,t)=>{this.band=t}),e.$on(`$track:project`,(e,{trackPost:t,trackRevision:n,project:r,isPrivatelyShared:i})=>{this.trackPost=t,this.trackRevision=n,this.project=r,this.isPrivatelyShared=i}),(function(e){let t=e.pushState;e.pushState=function(){return d(),t.apply(e,arguments)}})(window.history),window.addEventListener(`popstate`,u);function u(){n.stackSize--}function d(){n.stackSize++}}],controllerAs:`vm`}),angular.module(`bandlab.global`).component(`siteTopBar`,{template:` 312 <nav class="top-bar" role="navigation" ng-include="'https://www.bandlab.com/web-app/global/partials/_site-top-bar-anonymous-c992f9b4d.html'" ng-if="vm.me.isAnonymous() && !vm.state.is('getMembershipPage')"></nav> 313 <nav class="top-bar" role="navigation" ng-include="'https://www.bandlab.com/web-app/global/partials/_site-top-bar-product-2b3c78a10.html'" ng-if="!vm.me.isAnonymous() && (vm.hasProductLogoState() || vm.isLandingPages()) && !vm.state.includes('sounds')"></nav> 314 <nav class="top-bar" role="navigation" ng-include="'https://www.bandlab.com/web-app/global/partials/_site-top-bar-beats-5864049cd.html'" ng-if="!vm.me.isAnonymous() && vm.state.includes('beats')"></nav> 315 <nav class="top-bar" role="navigation" ng-include="'https://www.bandlab.com/web-app/global/partials/_site-top-bar-form-e2dc2c6d9.html'" ng-if="(!vm.me.isAnonymous() && vm.hasTopBarFormState()) || vm.state.is('getMembershipPage')"></nav> 316 <nav class="top-bar" role="navigation" ng-include="'https://www.bandlab.com/web-app/global/partials/_site-top-bar-sounds-5b78ae6e2.html'" ng-if="!vm.me.isAnonymous() && vm.state.includes('sounds')"></nav> 317 <nav class="top-bar" role="navigation" ng-include="'https://www.bandlab.com/web-app/global/partials/_site-top-bar-782759519.html'" ng-if="!vm.me.isAnonymous() && !vm.hasProductLogoState() && !vm.hasTopBarFormState() && !vm.isLandingPages() && !vm.state.includes('sounds') && !vm.state.includes('beats')"></nav>
318 `,controller:[`$analytics`,`$q`,`$scope`,`$state`,`$transitions`,`ChatCache`,`FloatingChat`,`Identity`,`Me`,`User`,function(e,t,n,r,i,a,s,c,l,u){var d=this;d.cache=a,d.me=l,d.state=r,d.isMediaTabDefaultEnabled=!1;let{getUserMembership:f}=qn(n,l,e=>{n.hasMembership=e.plan!==`Free`,n.billingInterval=e.billingInterval});d.hasProductLogoState=function(){return r.is(`mastering`)||r.is(`distribution`)||r.is(`fanReach`)||r.is(`fx`)||r.is(`membership`)||r.is(`pages`)||r.is(`songStarter`)||r.is(`splitter`)},d.isLandingPages=function(){return r.is(`albums`)||r.is(`ai`)||r.is(`beatslanding`)||r.is(`boost`)||r.is(`download`)||r.is(`fanReach`)||r.is(`features`)||r.is(`fx`)||r.is(`landing`)||r.is(`mastering`)||r.is(`membership`)||r.is(`membershipPricing`)||r.is(`songStarter`)||r.is(`promoteIt`)||r.is(`opportunitiesLandingPage`)||r.is(`distribution`)||r.is(`sony360ra`)||r.is(`splitter`)||r.is(`pages`)||r.is(`playgroundLandingPage`)||r.is(`products.aiTools`)||r.is(`products.mastering`)||r.is(`products.marketingDiceVocalist`)||r.is(`products.marketingDiceBeatMaker`)||r.is(`products.vocalTools`)||r.is(`products.voiceCleaner`)||r.includes(`sounds`)},d.hasTopBarFormState=function(){return r.current.useTopBarForm},d.handleMembershipTouchpointClick=function(){ai({productAttribution:hF(r),productAttributionGroup:`top_button`})},d.openConversation=function(e){r.includes(`chat`)?r.go(`chat.conversation`,{id:e.id}):(e.isMinimized=!1,s.activeConversations=[e])},d.shouldDisplayMembershipTouchpoint=function(){return n.isMembershipReady&&!n.isMembershipTouchpointHidden&&!n.hasMembership&&!dF.some(e=>r.includes(e))},d.shouldDisplayMembershipAnimationTouchpoint=function(){return d.membershipButtonAnimationPath&&d.shouldDisplayMembershipTouchpoint()&&fF.some(e=>r.includes(e))},i.onFinish({},function(){document.body.classList.remove(`scrolled`),document.body.classList.add(`top-bar-no-transition`),setTimeout(()=>{document.body.classList.remove(`top-bar-no-transition`)})}),i.onSuccess({},function(){l.isUser()&&p()}),i.onSuccess({},Vg(m,6e4));function p(){return gF(l,r).then(e=>{n.isMembershipTouchpointHidden=e,n.$applyAsync()})}function m(){l.isUser()&&t.all([c.counters({id:l.id}).$promise,c.getWarning({id:l.id}).$promise,Me(l,`get_button_animation`),Ge(`member tab`),Ge(`notification tab`),f(l.id)]).then(function([e,t,r,i,a]){let s=(n.hasMembership?i.filter(e=>!e.viewed).length:0)+a.filter(e=>!e.viewed).length;d.me.counters={...d.me.counters,...t,...e.counters,unreadContentCardNotifications:s},d.membershipButtonAnimationPath=r.value===`true`&&r.payload,Dg(o()?0:Qe(l,`counters.unreadInviteNotifications`,0)+Qe(l,`counters.unreadYouNotifications`,0))})}n.$on(`membershipWarning:viewed`,function(){m()}),n.$on(`profilePictureModal:updated`,function(){h()}),n.$on(`$user:changed`,function(e,{action:t}){t===`profilePicture`&&h()});function h(){return u.get({id:l.id}).$promise.then(function(e){d.me.picture.url=e.picture.url})}let g=n.$watch(`vm.me.id`,function(){if(n.productsMenu.find(e=>e.label===`Create`).items.find(e=>e.title===`Studio`).state=l.isUser()?`mixEditor`:`features`,!l.isUser()){d.isMediaTabDefaultEnabled=!1;return}let e=l.id;f(l.id).then(()=>{n.isMembershipReady=!0,n.$applyAsync()}),ap(l).then(t=>{l.id===e&&(d.isMediaTabDefaultEnabled=t,n.$applyAsync())}),p(),g()});n.logOpenEvent=function(t,n){e.eventTrack(t,{platform:`firebase`,params:{triggered_from:n}})},n.productsMenu=uF}],controllerAs:`vm`}),angular.module(`bandlab.global`).directive(`siteTopBarMembershipAnimatedButton`,[`$injector`,`$state`,function(e,t){return{restrict:`E`,scope:{animationPath:`&`,onClick:`&`},link:function(n,r){let i=h({animationPath:n.animationPath,onClick:n.onClick});$(import(`./D9s7GBZ8.js`),r[0],n,{$injector:e,$state:t,scope:n},i),n.$watch(n.animationPath,function(e){i.animationPath=e}),n.$watch(n.onClick,function(e){i.onClick=e})}}}]),angular.module(`bandlab.global`).directive(`siteTopBarSoundsSearchForm`,function(){return{restrict:`E`,template:`<div></div>`,link:function(e,t){$(import(`./BjLBAICw.js`),t[0],e)}}}).directive(`siteTabBarSoundsSearchForm`,function(){return{restrict:`E`,template:`<div></div>`,link:function(e,t){$(import(`./z3qKF6v5.js`),t[0],e)}}}),angular.module(`bandlab.global`).directive(`soundsCreditsPopover`,[`$injector`,function(e){return{restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./CH-E4UTY.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`soundsCreditsFlyoutButton`,[`$injector`,function(e){return{restrict:`E`,template:`<div></div>`,link:function(t,n){$(import(`./CH-E4UTY.js`),n[0],t,{$injector:e,scope:t})}}}]),angular.module(`bandlab.global`).directive(`siteTopBarBeatsSearchForm`,function(){return{restrict:`E`,template:`<div></div>`,link:function(e,t){$(import(`./CJoSfMbT.js`),t[0],e)}}}).directive(`siteTabBarBeatsSearchForm`,function(){return{restrict:`E`,template:`<div></div>`,link:function(e,t){$(import(`./Dhm_hAvQ.js`),t[0],e)}}}),angular.module(`bandlab.global.redirects`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`bandId`,{url:`/bands/{id:[a-zA-Z0-9-_]+}`,redirectTo:function(e){return e.injector().get(`Band`).get({id:e.params().id}).$promise.then(function(e){return{state:`band.feed`,params:{username:e.username}}})}}).state(`postId`,{url:`/posts/{id:[a-zA-Z0-9-_]+}`,redirectTo:function(e){return{state:`post`,params:{id:e.params().id}}}}).state(`oldRevisionId`,{url:`/revision/{id:[a-zA-Z0-9-_]+}`,redirectTo:t}).state(`revisionId`,{url:`/revisions/{id:[a-zA-Z0-9-_]+}`,redirectTo:t}).state(`songId`,{url:`/songs/{id:[a-zA-Z0-9-_]+}`,redirectTo:function(e){let t=e.injector().get(`$state`);return e.injector().get(`Song`).get({id:e.params().id}).$promise.then(function(e){return t.target(`track`,{id:e.revision.postId,revId:e.revision.id},{song:e})})}}).state(`userId`,{url:`/users/{id:[a-zA-Z0-9-_]+}`,params:{triggeredFrom:null},redirectTo:function(e){return e.injector().get(`User`).get({id:e.params().id}).$promise.then(function(t){return{state:`user.feed`,params:{username:t.username,triggeredFrom:e.params().triggeredFrom}}})}}).state(`oldContest`,{url:`/contests/:id`,redirectTo:`contests`}).state(`deleteAccount`,{url:`/delete-account`,redirectTo:`settings.deactivate`}).state(`getStartedSongbookDrops`,{url:`/get-started/songbook/drops`,redirectTo:`unavailable`}).state(`getStartedBeats`,{url:`/get-started/beats`,redirectTo:`unavailable`}).state(`redirectDeals`,{url:`/deals`,redirectTo:function(){window.location.href=`https://deals.bandlab.com/`}});function t(e){return e.injector().get(`Revision`).get({id:e.params().id}).$promise.then(function(e){return{state:`track`,params:{id:e.postId}}})}}]);function SF(e,t=150,n=2){let r=[`#f12c18`,`#ff690d`,`#ffaf13`,`#b400ff`,`#2f93f6`,`#00c6d1`,`#00c37d`],i=!1,a=null,o=[],s=0;return{removeConfetti:d,startConfetti:l,stopConfetti:u};
318function c(e,t,n){return e.color=r[Math.random()*r.length|0],e.x=Math.random()*t,e.y=Math.random()*n-n,e.diameter=Math.random()*10+5,e.tilt=Math.random()*10-10,e.tiltAngleIncrement=Math.random()*.07+.05,e.tiltAngle=0,e}function l(){let n=e.getContext(`2d`),r=n.canvas.width,s=n.canvas.height;for(;o.length<t;)o.push(c({},r,s));i=!0,a===null&&(function e(){n.clearRect(0,0,r,s),o.length===0?a=null:(p(),f(n),a=requestAnimationFrame(e))})()}function u(){i=!1}function d(){u(),o=[]}function f(e){let t,n;for(let r=0;r<o.length;r++)t=o[r],e.beginPath(),e.lineWidth=t.diameter,e.strokeStyle=t.color,n=t.x+t.tilt,e.moveTo(n+t.diameter/2,t.y),e.lineTo(n,t.y+t.tilt+t.diameter/2),e.stroke()}function p(){let r=e.innerWidth,a=e.innerHeight,l;s+=.01;for(let e=0;e<o.length;e++)l=o[e],!i&&l.y<-15?l.y=a+100:(l.tiltAngle+=l.tiltAngleIncrement,l.x+=Math.sin(s),l.y+=(Math.cos(s)+l.diameter+n)*.5,l.tilt=Math.sin(l.tiltAngle)*15),(l.x>r+20||l.x<-20||l.y>a)&&(i&&o.length<=t?c(l,r,a):(o.splice(e,1),e--))}}function CF(){return angular.element(document.body).injector().get(`authService`).refreshMe().then(function(e){let t=(e.about||``).length>0,n=e.genres.length>0,r=e.inspiredBy.length>0,i=!e.picture.isDefault,a=e.skills.length>0;return{hasAbout:t,hasGenres:n,hasInspiredBy:r,hasProfilePicture:i,hasSkills:a,allRequirementsMet:t&&n&&r&&i&&a}})}angular.module(`bandlab.global.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`closeWebview`,{url:`/_`}).state(`landing`,{url:`/`,template:`<div id="vue"></div>`,data:{hideNavBar:!0},controller:[`$analytics`,`$element`,`$injector`,`$scope`,`$state`,`$rootScope`,`appActions`,`AppNotifications`,`authService`,`Me`,`Player`,`RevisionImporter`,function(e,t,n,r,i,a,o,s,c,l,u,d){$(import(`./B4zVTE-D.js`),t[0].querySelector(`#vue`),r,{$analytics:e,$injector:n,$rootScope:a,appActions:o,AppNotifications:s,authService:c,Me:l,scope:r,state:i,Player:u,RevisionImporter:d})}]}).state(`feed`,{url:`/feed`,templateUrl:`https://www.bandlab.com/web-app/global/views/feed-layout-40ebd5781.html`,redirectTo:function(e){let t=e.injector().get(`Me`);if(!t.isAnonymous())return Promise.resolve(t).then(async function(e){let t=(await xF(e)).filter(e=>e.isVisible).map(e=>e.name),n=t[0],r=Y.getItem(`lastSelectedFeed`);return{state:t.includes(r)?r:n}})},controller:[`Me`,`$scope`,function(e,t){ke(e,`as_shortcuts_on_feed`).then(e=>{t.shouldDisplayServicesPanel=e===`true`})}]}).state(`feed.communities`,{url:`/communities?postId`,params:{postId:{dynamic:!0,inherit:!1}},views:{feed:{templateUrl:`https://www.bandlab.com/web-app/global/views/feed-posts-2282c0443.html`,controller:`FeedCtrl`}}}).state(`feed.video`,{url:`/video?postId`,redirectTo:function(e){return e.params().postId?{state:`post`,params:{id:e.params().postId}}:`discover`}}).state(`feed.following`,{url:`/following?postId`,params:{postId:{dynamic:!0,inherit:!1}},views:{feed:{templateUrl:`https://www.bandlab.com/web-app/global/views/feed-posts-2282c0443.html`,controller:`FeedCtrl`}}}).state(`feed.trending`,{url:`/trending?postId`,params:{postId:{dynamic:!0,inherit:!1}},views:{feed:{templateUrl:`https://www.bandlab.com/web-app/global/views/feed-posts-2282c0443.html`,controller:`FeedCtrl`}}}).state(`feed.forYou`,{url:`/for-you?postId`,redirectTo:function(e){return e.params().postId?{state:`post`,params:{id:e.params().postId}}:`discover`}}).state(`feed.following.shout`,{url:`/shout?postId`,params:{rewriteTracking:function(){return e=>e.replace(/\?postId=.*/g,``)}},redirectTo:function(e){return{state:`post`,params:{id:e.params().postId}}}}).state(`feed.trending.shout`,{url:`/shout?postId`,params:{rewriteTracking:function(){return e=>e.replace(/\?postId=.*/g,``)}},redirectTo:function(e){return{state:`post`,params:{id:e.params().postId}}}}).state(`feed.forYou.shout`,{url:`/shout?postId`,params:{rewriteTracking:function(){return e=>e.replace(/\?postId=.*/g,``)}},redirectTo:function(e){return{state:`post`,params:{id:e.params().postId}}}}).state(`feed.communities.shout`,{url:`/shout?postId`,params:{rewriteTracking:function(){return e=>e.replace(/\?postId=.*/g,``)}},redirectTo:function(e){return{state:`post`,params:{id:e.params().postId}}}}).state(`onboarding`,{url:`/onboarding?force`,reloadOnSearch:!1,redirectTo:function(e){let t=e.injector().get(`Me`);if(t.isOnboarded&&!e.params().force)return dp(t).then(e=>({state:e,params:{}}))}
318,controller:[`$analytics`,`authService`,`completeProfile`,`Me`,function(e,t,n,r){e.pageTrack(`/onboarding/complete-profile`);let i=!r.isEmailConfirmed;n.start().then(function(){i||n.stop()}).then(function(){if(!i)return t.redirectAfterAuth()})}]}).state(`download`,{url:`/download`,template:`<div id="vue"></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controller:[`$document`,`$location`,`$element`,`$injector`,`$scope`,`$state`,`authService`,`Me`,function(e,t,n,r,i,a,o,s){$(import(`./BTEM32Kx.js`),n[0].querySelector(`#vue`),i,{$injector:r,authService:o,Me:s,state:a}),setTimeout(function(){let n=t.hash();if(n){let t=angular.element(document.getElementById(n));e.scrollToElementAnimated(t,40)}})}]}).state(`features`,{url:`/creation-features`,template:`<div id="vue"></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controller:[`$element`,`$injector`,`$scope`,`$state`,`Me`,`authService`,function(e,t,n,r,i,a){$(import(`./Dc_tbA-Z.js`),e[0].querySelector(`#vue`),n,{$injector:t,authService:a,Me:i,scope:n,state:r})}]}).state(`albumsRedirect`,{url:`/albums`,redirectTo:`albums`}).state(`albums`,{url:`/features/albums`,templateUrl:`https://www.bandlab.com/web-app/global/views/features-albums-bc78cb455.html`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0}}).state(`warning`,{url:`/community-guidelines/warnings/{id}`,template:`<div id="vue"></div>`,resolve:{theWarning:[`$http`,`$state`,`$stateParams`,`Me`,function(e,t,n,r){return e.get(`https://www.bandlab.com/api/v1.3/users/${r.id}/warnings/${n.id}`).then(function(i){return e.patch(`https://www.bandlab.com/api/v1.3/users/${r.id}/warnings/${n.id}`,{ViewedOn:new Date().toISOString()}).then(function(){if(i.data.violationId)return t.go(`violation`,{violationId:i.data.violationId,warningId:n.id}),null;if(i.data.type===`ProfileAdCampaignDisabled`){if(o()){let e=t.href(`me.boostProfile`,{},{absolute:!0});window.open(e,`_blank`)}return t.go(`me.boostProfile`)}if(i.data.type===`MembershipGracePeriodStart`){let e={id:i.data.id,reason:i.data.reasons&&i.data.reasons[0]||null};return t.go(`membershipWarning`,e),null}return i})})}]},controller:[`$element`,`$scope`,`$injector`,`theWarning`,function(e,t,n,r){$(import(`./CnSnqEkg.js`),e[0].querySelector(`#vue`),t,{$injector:n,theWarning:r},{})}]}).state(`violation`,{url:`/community-guidelines/policy-violations/{violationId}?warningId`,template:`<div id="vue"></div>`,resolve:{theViolation:[`$http`,`$stateParams`,`Me`,function(e,t,n){return Promise.all([e.get(`https://aws.bandlab.com/api/v1.3/users/${n.id}/violations/${t.violationId}`),e.get(`https://www.bandlab.com/api/v1.3/users/${n.id}/warnings/${t.warningId}`)]).then(function([e,t]){let n={...t.data};return delete n.reasons,delete n.subPolicies,delete n.policy,delete n.type,delete n.flaggedContent,delete n.enforcementActions,{data:{...n,...e.data}}})}]},controller:[`$element`,`$scope`,`$injector`,`theViolation`,function(e,t,n,r){$(import(`./BRYy_Nb5.js`),e[0].querySelector(`#vue`),t,{$injector:n,theViolation:r})}]}).state(`membershipWarning`,{url:`/billing-issue/{id}?reason`,controller:[`$element`,`$injector`,`$scope`,`$stateParams`,`Me`,function(e,t,n,r,i){let a=h({id:r.id,reason:r.reason});$(import(`./ChHNfbHm.js`),e[0],n,{$injector:t,Me:i},a)}]}).state(`nda`,{url:`/nda?success`,templateUrl:`https://www.bandlab.com/web-app/global/views/nda-1c09ef515.html`,resolve:{script:function(){return Re(`//na3.docusign.net/clickapi/sdk/latest/docusign-click.js`)}},controller:[`$scope`,`$state`,`$stateParams`,function(e,t,n){e.changeSuccess=!!n.success,e.onSubmit=function(){window.location.href=`https://na3.docusign.net/clickapi/v1/accounts/3778278b-24ac-40c6-9746-eefee6b00aca/clickwraps/f5539f41-f0c9-44ed-947e-3487b53286a9/view?client_user_id=${e.user.email} ${new Intl.DateTimeFormat(`en-US`).format(e.user.date)}&return_url=${t.href(`.`,{success:!0},{absolute:!0})}`}}]}).state(`getVerified`,{url:`/get-verified?redirectUrl`,data:{hideNavBar:!0},params:{redirectUrl:null},template:`<div ui-view class="adaptive-content get-verified-layout"></div>`,resolve:{hasVerifiedMembershipFeature:[`Me`,function(e){let{availableFeaturesSet:t}=Kn(e);return t.value.has(`bandlab-verified`)}]},redirectTo:function(e){return e.injector().getAsync(`hasVerifiedMembershipFeature`).then(function(e){return e?`getVerified.submission`:`getVerified.paywall`})}}).state(`getVerified.submission`,{templateUrl:`https://www.bandlab.com/web-app/global/views/get-verified-f8ede206a.html`,resolve:{theSubmission:[`AppNotifications`,`Me`,function(e,t){return Un.get(`https://www.bandlab.com/api/v1.3/users/${t.id}/verified/submission`).json().catch(function(t){return t.response&&t.response.status!==404&&e.addNotification({title:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3}),{status:null}})}],theRequirements:CF},redirectTo:function(e){return e.injector().getAsync(`hasVerifiedMembershipFeature`).then(function(t){return t?e.injector().getAsync(`theRequirements`).then(function(e){return e.allRequirementsMet?!0:`getVerified.requirements`}):`getVerified.paywall`})},controller:[`$element`,`$scope`,`$state`,`AppNotifications`,`Me`,`theSubmission`,function(e,t,n,r,i,a){t.goBack=l,t.isSubmitting=!1,t.me=i,t.submission=a,t.user={artistName:i.name,category:`artist`,legalName:``,userName:i.username},t.onSubmit=u;let s=e[0].querySelector(`canvas`);s.width=window.innerWidth,s.height=window.innerHeight;let{startConfetti:c}=SF(e[0].querySelector(`canvas`),70);c(),import(`./DvQD5s06.js`).then(e=>e.t).then(({logBandlabVerifiedOpen:e})=>e());function l(){if(o())n.go(`.`,{"#":`bl_closeWebView`});else if(n.params.redirectUrl)try{let e=JSON.parse(decodeURIComponent(n.params.redirectUrl)),t=e.name,r={...e.params};if((n.params.redirectTarget||`self`)===`blank`){let e=n.href(t,r,{absolute:!0});window.open(e,`_blank`)}n.go(t,r,{location:`replace`})}catch{n.go(`feed`)}else n.go(`feed`)}function u(e){t.isSubmitting=!0,Un.post(`https://www.bandlab.com/api/v1.3/users/${i.id}/verified/submission`,{json:t.user}).catch(async function(t){e.$setPristine(),e.$setDirty();let n=t.response?await t.response.json():t;return r.addNotification({title:`Something went wrong, please try again later`,content:n.message,classList:`alert`}),Promise.reject(t)}).finally(function(){n.reload(),t.isSubmitting=!1})}}]}).state(`getVerified.requirements`,{url:`/requirements`,useTopBarForm:!0,resolve:{theRequirements:CF},redirectTo:function(e){return e.injector().getAsync(`hasVerifiedMembershipFeature`).then(function(t){return t?e.injector().getAsync(`theRequirements`).then(function(e){return!e.allRequirementsMet||`getVerified.submission`}):`getVerified.paywall`})}
318,views:{"topBarForm@":{templateUrl:`https://www.bandlab.com/web-app/payment/partials/_artist-services-requirements-form-top-bar-31f91a27d.html`,controller:[`$scope`,`$state`,function(e,t){e.goBack=function(){if(o())t.go(`.`,{"#":`bl_closeWebView`});else if(t.params.redirectUrl)try{let e=JSON.parse(decodeURIComponent(t.params.redirectUrl)),n=e.name,r={...e.params};if((t.params.redirectTarget||`self`)===`blank`){let e=t.href(n,r,{absolute:!0});window.open(e,`_blank`)}t.go(n,r,{location:`replace`})}catch{t.go(`feed`)}else t.go(`feed`)}}]},"tabBarForm@":{templateUrl:`https://www.bandlab.com/web-app/payment/partials/_artist-services-requirements-form-tab-bar-2a6236602.html`,controller:[`$scope`,`$state`,function(e,t){e.goBack=function(){if(o())t.go(`.`,{"#":`bl_closeWebView`});else if(t.params.redirectUrl)try{let e=JSON.parse(decodeURIComponent(t.params.redirectUrl)),n=e.name,r={...e.params};if((t.params.redirectTarget||`self`)===`blank`){let e=t.href(n,r,{absolute:!0});window.open(e,`_blank`)}t.go(n,r,{location:`replace`})}catch{t.go(`feed`)}else t.go(`feed`)}}]},"":{controller:[`$element`,`$injector`,`$scope`,`theRequirements`,function(e,t,n,r){$(import(`./2LuL0ujL.js`),e[0],n,{$injector:t},{requirements:r})}]}}}).state(`getVerified.paywall`,{url:`/paywall`,useTopBarForm:!0,redirectTo:function(e){return e.injector().getAsync(`hasVerifiedMembershipFeature`).then(function(e){return!e||`getVerified.submission`})}
318,views:{"topBarForm@":{templateUrl:`https://www.bandlab.com/web-app/payment/partials/_artist-services-requirements-form-top-bar-31f91a27d.html`,controller:[`$scope`,`$state`,function(e,t){e.goBack=function(){if(o())t.go(`.`,{"#":`bl_closeWebView`});else if(t.params.redirectUrl)try{let e=JSON.parse(decodeURIComponent(t.params.redirectUrl)),n=e.name,r={...e.params};if((t.params.redirectTarget||`self`)===`blank`){let e=t.href(n,r,{absolute:!0});window.open(e,`_blank`)}t.go(n,r,{location:`replace`})}catch{t.go(`feed`)}else t.go(`feed`)}}]},"tabBarForm@":{templateUrl:`https://www.bandlab.com/web-app/payment/partials/_artist-services-requirements-form-tab-bar-2a6236602.html`,controller:[`$scope`,`$state`,function(e,t){e.goBack=function(){if(o())t.go(`.`,{"#":`bl_closeWebView`});else if(t.params.redirectUrl)try{let e=JSON.parse(decodeURIComponent(t.params.redirectUrl)),n=e.name,r={...e.params};if((t.params.redirectTarget||`self`)===`blank`){let e=t.href(n,r,{absolute:!0});window.open(e,`_blank`)}t.go(n,r,{location:`replace`})}catch{t.go(`feed`)}else t.go(`feed`)}}]},"":{controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./C45kVbEA.js`),e[0],n,{$injector:t,$scope:n})}]}}}).state(`industryConnect`,{url:`/industry-connect`,template:`<div id="vue"></div>`,controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./C7F7l3FT.js`),e[0].querySelector(`#vue`),n,{$injector:t,scope:n})}]})}]).run([`$document`,`$interval`,`$transitions`,`Me`,`User`,function(e,t,n,r,i){let a=null,o=null;function s(){r.isAnonymous()||i.sendActivityHeartbeat({source:o})}function c(){a&&=(t.cancel(a),null)}function l(e){e===o&&a||(o=e,c(),s(),a=t(s,3e5))}e[0].addEventListener(`visibilitychange`,function(){e[0].hidden?c():o&&l(o)}),n.onSuccess({},function(e){r.isAnonymous()||l(e.to().name===`mixEditor`?`studio`:`general`)})}]),angular.module(`bandlab.library`,[]);var wF=n({getLibraryTracksFeatureFlag:()=>TF});const TF=we(function(e){return import(`./BWvciV-z.js`).then(e=>e.t).then(function({getAmplitudeFeatureFlag:t}){return t(e,`library-tracks`)}).then(function(e){return e===`on`})});angular.module(`bandlab.library.routes`,[`ui.router`]).config([`$stateProvider`,function(e){let t=[`recent`,`my-projects`,`collaborations`,`bands`,`deleted`];e.state(`library`,{url:`/library`,redirectTo:`library.projects.songs`,templateUrl:`https://www.bandlab.com/web-app/library/views/library-layout-3732a50a6.html`,resolve:{theUser:[`Me`,function(e){return e}]},controller:[`$scope`,`Me`,function(e,t){e.isOwnProfile=!0,e.me=t,e.nativeAdClientPlacement=is,Promise.resolve().then(()=>wF).then(function({getLibraryTracksFeatureFlag:e}){return e(t)}).then(function(t){e.libraryTracksEnabled=t})}]}).state(`library.projects`,{url:`/projects`,redirectTo:`library.projects.songs`,templateUrl:`https://www.bandlab.com/web-app/library/views/library-projects-8ed549abd.html`,controller:[`$scope`,`Band`,`Me`,function(e,t,n){function r(e=[],t=null){return i(t).then(function(t){return e=e.concat(t.data),t.paging.cursors.after?r(e,t.paging.cursors.after):e})}function i(e){return t.fromUser({userId:n.id,after:e,limit:50}).$promise}r().then(function(t){e.bands=t.sort((e,t)=>e.name.localeCompare(t.name))}),e.category=`recent`,e.$on(`$band:changed`,function(t,n){n.action===`create`&&e.bands.unshift(n.band)})}]}).state(`library.projects.likes`,{url:`/likes`,onEnter:function(){document.body.classList.add(`library-filtered`)},onExit:function(){document.body.classList.remove(`library-filtered`)},views:{list:{templateUrl:`https://www.bandlab.com/web-app/library/views/library-liked-posts-45c7c457e.html`,controller:`LikedMusicCtrl`}}}).state(`library.projects.songs`,{url:`/:category?filter&search`,params:{category:`recent`,rewriteTracking:[`$stateParams`,function(e){return n=>t.indexOf(e.category)===-1?`/library/projects/band`:n}],search:{dynamic:!0}},resolve:{theBand:[`$q`,`$stateParams`,`Band`,function(e,n,r){return t.indexOf(n.category)===-1?r.get({id:n.category.toLowerCase()}).$promise:e.resolve()}]},onEnter:[`$stateParams`,function(e){switch(e.category){case`recent`:break;case`my-projects`:document.body.classList.add(`library-filtered`);break;case`collaborations`:document.body.classList.add(`library-filtered`);break;case`bands`:document.body.classList.add(`library-filtered`);break;case`deleted`:document.body.classList.add(`library-filtered`);break;default:document.body.classList.add(`library-filtered`)}}],onExit:function(){document.body.classList.remove(`library-filtered`)},views:{header:{templateUrl:function(e){if(e.category!==`deleted`)return`https://www.bandlab.com/web-app/library/views/library-projects-header-88ea2cf18.html`},controller:[`$scope`,`$stateParams`,`theBand`,function(e,n,r){e.band=r,e.openTransferProjectMod
318al=i,e.hasTransferCta=function(){return!t.includes(n.category)};function i(){let e=J(()=>import(`./DwNew3rS.js`));X(e,{band:r})}}]},list:{templateUrl:function(e){return e.category===`deleted`?`https://www.bandlab.com/web-app/account/settings/views/deleted-projects-edit-6669bbcd7.html`:`https://www.bandlab.com/web-app/project/views/projects-list-0fa48edf0.html`},controller:`ProjectsCtrl`}}}).state(`library.tracks`,{url:`/tracks`,redirectTo:`library.tracks.self`,templateUrl:`https://www.bandlab.com/web-app/library/views/library-tracks-3b4254267.html`}).state(`library.tracks.likes`,{url:`/likes`,redirectTo:function(e){let t=e.injector().get(`Me`);return TF(t).then(function(e){if(!e)return`404`})},views:{list:{templateUrl:`https://www.bandlab.com/web-app/library/views/library-liked-posts-45c7c457e.html`,controller:`LikedMusicCtrl`}}}).state(`library.tracks.playbackhistory`,{url:`/playback-history`,redirectTo:function(e){let t=e.injector().get(`Me`);return TF(t).then(function(e){if(!e)return`404`})},views:{list:{templateUrl:`https://www.bandlab.com/web-app/playbackhistory/views/playback-history-e53f8b9a9.html`,controller:`PlaybackHistoryCtrl`}}}).state(`library.tracks.self`,{url:`/:category?filter&search`,params:{category:`recent`,search:{dynamic:!0}},redirectTo:function(e){let t=e.injector().get(`Me`);return TF(t).then(function(e){if(!e)return`404`})},views:{header:{templateUrl:`https://www.bandlab.com/web-app/library/views/library-tracks-header-a1d9bc971.html`},list:{templateUrl:`https://www.bandlab.com/web-app/track/views/tracks-list-13d7b182a.html`,controller:`TracksCtrl`}}}).state(`library.collections`,{url:`/collections?filter&likes&search`,params:{rewriteTracking:[`$stateParams`,function(e){return()=>`/library/collections${e.likes?`/likes`:``}`}],search:{dynamic:!0}},onEnter:[`$stateParams`,function(e){e.likes&&document.body.classList.add(`library-filtered`)}],onExit:function(){document.body.classList.remove(`library-filtered`)},templateUrl:`https://www.bandlab.com/web-app/library/views/library-collections-b7700a16c.html`,controller:`UserCollectionsCtrl`}).state(`library.albums`,{url:`/albums?filter&purchased&likes&search`,params:{search:{dynamic:!0}},onEnter:[`$stateParams`,function(e){(e.likes||e.purchased)&&document.body.classList.add(`library-filtered`)}],onExit:function(){document.body.classList.remove(`library-filtered`)},templateUrl:`https://www.bandlab.com/web-app/library/views/library-albums-42a3cd725.html`,controller:`UserAlbumsCtrl`}).state(`library.bands`,{url:`/bands?role&search`,params:{rewriteTracking:[`$stateParams`,function(e){return()=>`/library/bands${e.role?`/${e.role}`:``}`}],search:{dynamic:!0}},templateUrl:`https://www.bandlab.com/web-app/library/views/library-bands-a32cbf04b.html`,controller:`UserBandsCtrl`}).state(`library.communities`,{url:`/communities?role&search`,params:{search:{dynamic:!0}},templateUrl:`https://www.bandlab.com/web-app/library/views/library-communities-096dd3cfd.html`,controller:`UserCommunitiesCtrl`})}]),angular.module(`bandlab.library`).controller(`LikedMusicCtrl`,[`$location`,`$q`,`$scope`,`Me`,`PlayerHistory`,`Post`,function(e,t,n,r,i,a){var o=null,s,c=!1,l=e.url();n.user=r,n.loadMore=d,i.setCurrentPageContext({loader:d,url:l});function u(){return c?t.resolve([]):(s=a.liked({userId:n.user.id,types:`revision`,after:o,limit:5}).$promise.then(function(e){return o=e.paging.cursors.after,c=!o,e.data}),s)}function d(){return n.infiniteScrollEnded?t.resolve():(s=s.then(function(e){return n.infiniteScrollEnded=c,n.posts=n.posts||[],n.posts=n.posts.concat(e),i.pushQueueSongs(e,l),u()}),s)}u().then(n.loadMore)}]),angular.module(`bandlab.web`).component(`librarySearch`,{bindings:{refresh:`&`},template:` 319 <div class="search-form search-form-40"> 320 <input 321 type="search" 322 enterkeyhint="search" 323 class="search-form-input" 324 ng-model="search" 325 placeholder="Search"> 326 <span class="search-form-submit"> 327 <icon-svg name="search" size="16" class="search-form-submit-icon"></icon-svg> 328 </span> 329 <button class="search-form-clear" type="button" ng-click="search = ''" ng-show="search && !vm.loading" aria-label="Clear"> 330 <icon-svg ng-show="search && !vm.loading" name="x" size="16" class="search-form-clear-icon"></icon-svg> 331 </button> 332 <icon-svg ng-if="vm.loading" name="loading" size="16" class="search-form-loader"></icon-svg> 333 </div> 334 `,controller:[`$state`,`$scope`,function(e,t){let n=this;t.search=e.params.search,t.$watch(`search`,function(e,t){n.loading=e!==t,r()});let r=Fa(function(){if(angular.isUndefined(t.search)||t.search===e.params.search){n.loading=!1;return}e.go(`.`,{search:t.search}).then(function(){return n.refresh({search:t.search})}).then(function(){n.loading=!1})},500)}],controllerAs:`vm`}),angular.module(`bandlab.membership`,[]),angular.module(`bandlab.editor`).directive(`midiEditor`,[`EditorHelper`,`EditorHistory`,`EditorRevision`,`EditorScroll`,`EditorScrollState`,`EditorState`,`EditorTrack`,`MidiEditor`,`MidiEditorState`,`Soundbank`,function(e,t,n,r,i,a,o,s,c,l){return{replace:!0,restrict:`E`,scope:{actionShortcut:`=`,getViewMode:`=`,getPreferSharps:`=`,savePreferSharps:`=`},templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-d723cf77a.html`,link:function(e){t(),Q.add(`scale:notesTimeline`,t),e.$on(`$destroy`,function(){Q.remove(`scale:notesTimeline`,t)});function t(e){e&&r.focusedNotesRescale(e)}},controller:[`$scope`,function(r){r.state=a,r.midiEditorState=c,r.copyNotes=s.copyNotes,r.cutNotes=s.cutNotes,r.deleteNotes=s.deleteNotes,r.getNoteHeight=s.getNoteHeight,r.getNotePositionY=s.getNotePositionY,r.pasteNotes=s.pasteNotes,r.quantizeNotes=s.quantizeNotes,r.selectNotesOfSamePitch=s.selectNotesOfSamePitch,r.snapSettings=Gt,r.transposeNotes=s.transposeNotes,r.copyNotesToNewTrack=function(e){t.pushUndo(n.current);var r=o.duplicateTrack(c.track);s.copyNotesToTrack(c.track,r,e),o.setSelected(r)},r.$on(Yc,s.copyNotes),r.$on(Wc,s.cutNotes),r.$on(qc,s.deleteNotes),r.$on(Bc,s.pasteNotes),r.$on(el,()=>s.quantizeNotes()),r.$on(jc,s.selectAllNotes),r.$on(Hc,()=>f(-1)),r.$on(Kc,()=>f(1)),r.$on(Xc,()=>f(-12,!0)),r.$on(Uc,()=>f(12,!0)),r.$on(Lc,()=>u(-1)),r.$on(Rc,()=>u(1));function u(t){let n=s.getSelectedNotes();if(!n.length)return;let{snapDuration:r}=c,i=t*r,a=-cF(n,`time`).time,o=s.getShortestNoteToRegionEndDuration();t<0&&i<a||t>0&&i>o||(n.forEach(t=>
334{t.time=e.snapToGrid(t.time+i,r,{padding:r/2},c)}),s.updateRegions(),d())}function d(){let{scalePx:e,track:t,selectedNotesByRegion:n}=c,r=[...Object.entries(n)].reduce((e,[n,r])=>{let i=t.regions.find(e=>e.id===n);if(!i)return e;let a=r.map(e=>({...e,time:i.startPosition+e.time}));return e.push(...a),e},[]);if(!r.length)return;let a=cF(r,`time`),o=sF(r,e=>e.time+e.duration),l=a.time*e,u=(o.time+o.duration)*e-l,d=i.notesTimelineEl.getBoundingClientRect().width-12-17;i.notesLeft=u>d?l:l-(d-u)/2;let f=sF(r,`midiNote`).midiNote;i.notesTop=s.getNoteScrollPositionY(f)-i.notesEl.clientHeight/2}c.isPianoRoll=p(),s.scrollToNotes();function f(e,t=!1){let n=s.getSelectedNotes();if(!n.length)return;let r=lO.value&&!t,i=r?NO(n):s.getSelectedNotesBoundaries(n);e=Math.max(e,i.infDeltaMidiNote),e=Math.min(e,i.supDeltaMidiNote),n.forEach(function(t){if(r){t.midiNote=MO(t.midiNote,e);return}t.midiNote+=e}),s.previewSoloNote(n[0]),s.updateRegions(),t&&yO(),d()}function p(){if(c.track.samplerKit)return!1;if(!c.track.soundbank)return!0;let e=l.getPropertyValue(c.track.soundbank,`instrumentSlug`);return e!==`drum-pads`&&e!==`drum-kit`&&e!==`special-effects`}r.$watchGroup([()=>c.isVisible?n.selectedTrack:{},()=>n.selectedTrack?.soundbank],function([t,n],[r,i]){if(t.type===`drum-machine`){e.hidePanel();return}if(!t.soundbank&&!t.samplerKit){e.displayAudioEditor();return}c.addedNotesByRegion={},c.notesByRegion={},c.removedNotesByRegion={},c.selectedNotesByRegion={},c.track=t,(t.id!==r.id||n!==i)&&(c.isPianoRoll=p(),s.scrollToNotes())})}]}}]),angular.module(`bandlab.editor`).directive(`midiEditorAreaSelection`,[`EditorScrollState`,`MidiEditor`,`MidiEditorState`,`SharedMidiSynth`,function(e,t,n,r){return{replace:!0,restrict:`A`,link:function(i,a){let o=document.body.querySelector(`.mix-editor-panel-track`);a.on(`pointerdown`,s);function s(s){if(s.preventDefault(),n.isDrawing||n.isDrawingWithShortcut||s.target!==a[0]&&!s.target.classList.contains(`midi-editor-region`)||s.which===3)return;let u=o.getBoundingClientRect().toJSON();u.top+=70,u.height-=70;let d={x:s.x+e.notesLeft,y:s.y+e.notesTop};t.unselectNotes(),r.stopNotes();let f=document.createElement(`div`);f.classList.add(`midi-editor-area-selection`),l(f),a[0].appendChild(f),a[0].setPointerCapture(s.pointerId),i.$broadcast(Qc,{}),angular.element(window).on(`pointerup`,m),a.on(`pointermove`,p);function p(n){n.preventDefault(),t.autoscroll({x:n.clientX,y:n.clientY},u);let r=n.x+e.notesLeft,a=n.y+e.notesTop,o=c(d,{x:r,y:a},u);l(f,o),i.$broadcast(Qc,o)}function m(){f.remove(),angular.element(window).off(`pointerup`,m),a.off(`pointermove`,p)}}function c(r,i,a){let o=293+t.getMidiRollLabelsWidth(),s=e.notesEl.scrollHeight-22-17-1,c=r.y<i.y?Math.min(s,s-(r.y-a.top)):Math.min(s,r.y-a.top),l=r.x<i.x?n.containerWidth-(r.x-o):r.x-o;return{left:Math.max(Math.min(r.x,i.x)-o,0),top:Math.max(Math.min(r.y,i.y)-a.top,0),width:Math.min(Math.abs(i.x-r.x),l),height:Math.min(Math.abs(i.y-r.y),c)}}function l(e,{left:t=0,top:n=0,width:r=0,height:i=0}={}){requestAnimationFrame(function(){e.style.left=`${t}px`,e.style.top=`${n}px`,e.style.width=`${r}px`,e.style.height=`${i}px`})}}}}]),angular.module(`bandlab.editor`).directive(`midiEditorFocus`,[`MidiEditorState`,function(e){return{restrict:`A`,link:function(t,n){n[0].addEventListener(`pointerdown`,r,{capture:!0}),t.$on(`$destroy`,function(){e.hasFocus=!1,n[0].removeEventListener(`pointerdown`,r,{capture:!0}),document.removeEventListener(`pointerdown`,i,{capture:!0})});function r(){e.hasFocus||(e.hasFocus=!0,document.addEventListener(`pointerdown`,i,{capture:!0}))}function i(t){t.target.closest(`[midi-editor-focus]`)||t.target.closest(`.audio-editor-region`)||t.target.closest(`.dropdown`)||(e.hasFocus=!1,document.removeEventListener(`pointerdown`,i,{capture:!0}))}}}}]),angular.module(`bandlab.editor`).directive(`midiEditorGrid`,[`EditorGrid`,`MidiEditorState`,function(e,t){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-grid-23ff58f21.html`,link:function(n){var r=document.getElementById(`midi-editor-grid-pattern`);n.$watchGroup([`midiEditorState.snapSetting`,`state.isTimeRuler`],i),Q.add(`scale:notesTimeline`,i),n.$on(`$destroy`,function(){Q.remove(`scale:notesTimeline`,i)});function i(){e.updateRulerGrid({pattern:r,state:t})}}}}]).directive(`midiEditorGridVue`,function(){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(e,t){$(import(`./sQeglgX6.js`),t[0],e)}}});function EF(e,t){for(var n,r=-1,i=e.length;++r<i;){var a=t(e[r]);a!==void 0&&(n=n===void 0?a:n+a)}return n}function DF(e,t){return e&&e.length?EF(e,Mi(t,2)):0}angular.module(`bandlab.editor`).directive(`midiEditorHeader`,[`MidiEditorState`,function(e){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-header-974f1f05c.html`,compile:function(e){let t=jy.map(function(e){return`<span class="midi-editor-drums-label" title="${e.name}" data-midi-code="${e.midi}" ng-class="{ active: isActive(${e.midi}), mapped: isMapped(${e.midi}) }"><icon-svg size="24" name="instrument-drum-${e.icon}"></icon-svg></span>`}).reverse().join(``),n=zy.map(function(e){return`<span class="midi-editor-pad-label {{ getColor(${e.midi}) }}" data-midi-code="${e.midi}" ng-class="{ active: isActive(${e.midi}), mapped: isMapped(${e.midi}) }">${e.shortcut}</span>`}).reverse().join(``);e[0].querySelector(`.midi-editor-drums`).innerHTML=t,e[0].querySelector(`.midi-editor-pads`).innerHTML=n},controller:[`$scope`,`editorEvents`,`EditorHistory`,`MidiEditor`,`SharedMidiSynth`,`Soundbank`,function(t,n,r,i,a,o){let s=a.getSampler();t.press=i.previewNote,t.release=i.stopPreviewNote,t.$on(`MidiMessage:noteEvent`,function(){t.$digest()}
334),t.$on(n.keyDown.toggleVelocity,function(){t.toggleVelocity(),t.$apply()}),t.isActive=function(e){return!!a.current[e]||!!i.activePreviewNotes[e]},t.isMapped=function(t){return e.track?.soundbank?o.isNoteMapped(t):s.pads[Ux(t)]?.id},t.getColor=function(e){let t=Ux(e);return Bx[s.pads[t]?.color]},t.toggleVelocity=function(){e.isVelocity=!0,e.isDrawing=!1,e.isDrawingWithShortcut=!1},t.getVelocity=function(){let t=Object.keys(e.editingNotesByRegion).length===0?e.selectedNotesByRegion:e.editingNotesByRegion,n=e.track.regions.flatMap(function(e){return t[e.id]}).filter(e=>!!e);return n.length?DF(n,`velocity`)/n.length:0},t.updateVelocity=function(){i.finishEditVelocity(),r.withSingleUndo(()=>{i.updateRegions()}),t.$applyAsync()};let c=bO.value.map(e=>t.$watch(()=>t.isActive(e),()=>{TO.value[e]=t.isActive(e)})),l=bO.value.map(e=>t.$watch(()=>t.isMapped(e),()=>{EO.value[e]=t.isMapped(e)}));t.$on(`$destroy`,()=>{c.forEach(e=>e()),l.forEach(e=>e())})}]}}]).directive(`midiEditorHeaderVue`,[`EditorPlayer`,`MidiEditor`,`MidiEditorState`,function(e,t,n){return{replace:!0,restrict:`E`,template:`<div class="midi-editor-header-menu"></div>`,link:function(r,i){let a=h({hasSelectedNotes:r.hasSelectedNotes(),isPianoRoll:n.isPianoRoll,isTrackTransposable:r.isTrackTransposable(),humanizeNotes:t.humanizeNotes,quantizeNotes:t.quantizeNotes,quantizationValue:n.quantizationValue,setLegato:t.setLegato,selectQuantizationValue:async t=>{n.quantizationValue=t,await e.current.setQuantization(Z.QUANTIZATION?n.quantizationValue:null),r.$digest()},transposeNotes:t.transposeNotes});r.$watchGroup([()=>t.hasSelectedNotes(),()=>r.isTrackTransposable(),`midiEditorState.isPianoRoll`,`midiEditorState.quantizationValue`],()=>{a.hasSelectedNotes=r.hasSelectedNotes(),a.isPianoRoll=n.isPianoRoll,a.isTrackTransposable=r.isTrackTransposable(),a.quantizationValue=n.quantizationValue}),$(import(`./D9CLxnvN.js`),i[0],r,{scope:r,MidiEditor:t,MidiEditorState:n},a)}}}]).directive(`midiEditorHeaderPianoRoll`,[`EditorPlayer`,`EditorScrollState`,`MidiEditor`,function(e,t,n){return{replace:!0,restrict:`E`,template:`<div></div>`,link:function(r,i){$(import(`./-w_IZNAA.js`),i[0],r,{scope:r,EditorScrollState:t,EditorPlayer:e,MidiEditor:n})}}}]),angular.module(`bandlab.editor`).directive(`midiEditorTrackGrid`,[`EditorGrid`,`MidiEditorState`,function(e,t){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-track-grid-2d3ec864b.html`,link:function(n){let r=document.getElementById(`midi-editor-track-grid-pattern`),i=document.getElementById(`midi-editor-track-highlight-pattern`);n.$watchGroup([`midiEditorState.snapSetting`,`state.isTimeRuler`,`midiEditorState.isTripletGrid`],a),Q.add(`scale:notesTimeline`,a),n.$on(`$destroy`,function(){Q.remove(`scale:notesTimeline`,a)});function a(){(t.snapSetting.value===1||t.snapSetting.value===0)&&t.isTripletGrid&&(t.isTripletGrid=!1),e.updateTrackGrid({gridPattern:r,highlightPattern:i,state:t,height:24638})}}}}]),angular.module(`bandlab.editor`).directive(`midiEditorKeyEvents`,[`$rootScope`,`MidiEditorState`,function(e,t){return{restrict:`A`,link:function(n){function r(r){if(t.hasFocus){var i=r.ctrlKey||r.metaKey;if(!i&&!r.shiftKey){switch(r.code){case`ArrowLeft`:n.$broadcast(Lc);break;case`ArrowRight`:n.$broadcast(Rc);break;case`ArrowUp`:n.$broadcast(Kc);break;case`ArrowDown`:n.$broadcast(Hc);break;case`Backspace`:case`Delete`:n.$broadcast(qc)}r.key===`q`&&n.$broadcast(el)}else if(i&&!r.shiftKey)switch(r.key){case`a`:n.$broadcast(jc),r.preventDefault();break;case`c`:n.$broadcast(Yc);break;case`x`:n.$broadcast(Wc);break;case`v`:n.$broadcast(Bc)}else if(!i&&r.shiftKey)switch(r.key){case`ArrowUp`:n.$broadcast(Uc);break;case`ArrowDown`:n.$broadcast(Xc)}e.$applyAsync()}}document.addEventListener(`keydown`,r),n.$on(`$destroy`,function(){document.removeEventListener(`keydown`,r)})}}}]),angular.module(`bandlab.editor`).directive(`midiEditorNoteLeft`,[`EditorHelper`,`EditorScrollState`,`MidiEditor`,`MidiEditorState`,function(e,t,n,r){return{restrict:`A`,link:function(i,a){var o;a.on(`pointerdown`,s);function s(e){if(e.preventDefault(),!n.selectNoteOnMousedown(i,e))return;let s=t.notesTimelineEl.getBoundingClientRect().toJSON();s.top+=70,s.height-=70;var u=n.getSelectedNotes(),d=aO(u,function(e){return e.time+e.duration}),f=aO(u,`duration`)[0],p=d[0];o={x:e.x+t.notesLeft,notes:ul(u),time:i.note.time,duration:i.note.duration,midiEditorRect:s,maxDeltaTime:f.duration-r.MIDI_
334NOTE_DURATION_MIN,minDeltaTime:-p.time},a[0].setPointerCapture(e.pointerId),angular.element(window).on(`pointerup`,l),a.on(`pointermove`,c),document.body.classList.add(`is-resizing`),r.isResizing=!0,i.$apply()}function c(e){e.preventDefault();let a=e.x+t.notesLeft,s=u(i.region,a-o.x);Object.values(r.selectedNotesByRegion).flat().forEach(function(e,t){e.duration=o.notes[t].duration-s,e.time=o.notes[t].time+s,r.noteDuration[r.track.id]=e.duration}),n.autoscroll({x:e.clientX,y:e.clientY},o.midiEditorRect),i.$apply()}function l(){angular.element(window).off(`pointerup`,l),a.off(`pointermove`,c),document.body.classList.remove(`is-resizing`),n.updateRegions(),r.isResizing=!1,i.$apply()}function u(t,n){var i=n/r.scalePx,a=t.startPosition-t.sampleOffset+o.time+i,s=e.snapToGrid(a,r.snapDuration,{padding:5/r.scalePx},r);return i+=s-a,i=Math.max(i,o.minDeltaTime),i=Math.min(i,o.maxDeltaTime),i}}}}]),angular.module(`bandlab.editor`).directive(`midiEditorNoteMove`,[`EditorHelper`,`EditorHistory`,`EditorScrollState`,`MidiEditor`,`MidiEditorState`,function(e,t,n,r,i){return{restrict:`A`,link:function(a,o){let s=document.body.querySelector(`.mix-editor-panel-track`);o[0].draggable=!1,o.on(`pointerdown`,c);function c(c){if(c.preventDefault(),!r.selectNoteOnMousedown(a,c))return;let l=r.getSelectedNotes(),u=cF(l,`time`),d=0,f=s.getBoundingClientRect().toJSON();f.top+=70,f.height-=70;let p={dragged:!1,infDeltaTime:-u.time,noteIndex:i.selectedNotesByRegion[a.region.id].indexOf(a.note),notes:ul(l),supDeltaTime:r.getShortestNoteToRegionEndDuration(),velocityMean:DF(l,`velocity`)/l.length,time:-a.note.time,x:c.x+n.notesLeft,y:c.y+n.notesTop,...lO.value?NO(l):r.getSelectedNotesBoundaries(l)};o[0].setPointerCapture(c.pointerId),angular.element(window).on(`pointerup`,g),i.isVelocity?(o.on(`pointermove`,m),document.body.classList.add(`is-velocitying`)):(o.on(`pointermove`,h),document.body.classList.add(`is-moving`));function m(e){e.preventDefault();let t=e.y+n.notesTop,i=(p.y-t)/100,o=wt(p.velocityMean+i,.01,1);r.editSelectionVelocity(o),a.$applyAsync(),p.dragged=!0}function h(e){e.preventDefault();let t=e.x+n.notesLeft,o=e.y+n.notesTop,s=_(t-p.x),c=v(o-p.y);!p.dragged&&e.altKey&&(i.addedNotesByRegion=ul(i.selectedNotesByRegion),Object.values(i.addedNotesByRegion).flat().forEach(function(e){e.id=ze()}),i.selectedNotesByRegion={...i.addedNotesByRegion},Object.keys(i.addedNotesByRegion).forEach(function(e){[].push.apply(i.notesByRegion[e],i.addedNotesByRegion[e])})),Object.values(i.selectedNotesByRegion).flat().forEach(function(e,t){if(e.time=p.notes[t].time+s,lO.value){e.midiNote=MO(p.notes[t].midiNote,c);return}e.midiNote=p.notes[t].midiNote+c}),d!==c&&(r.previewSoloNote(i.selectedNotesByRegion[a.region.id][p.noteIndex]||a.note),d=c),r.autoscroll({x:e.clientX,y:e.clientY},f),a.$applyAsync(),p.dragged=!0}function g(){angular.element(window).off(`pointerup`,g),o.off(`pointermove`,m),o.off(`pointermove`,h),document.body.classList.remove(`is-moving`),document.body.classList.remove(`is-velocitying`),p.dragged&&(i.isVelocity&&r.finishEditVelocity(),t.withSingleUndo(()=>{r.updateRegions()}),a.$applyAsync())}function _(t){var n=t/i.scalePx;let r=a.region.startPosition-p.time+n,o=e.snapToGrid(r,i.snapDuration,{padding:i.snapDuration/2},i);return n+=o-r,n=Math.min(n,p.supDeltaTime),n=Math.max(n,p.infDeltaTime),n}function v(e){var t=-Math.floor(e/r.getNoteHeight());return t=Math.max(t,p.infDeltaMidiNote),t=Math.min(t,p.supDeltaMidiNote),t}}}}}]),angular.module(`bandlab.editor`).directive(`midiEditorNoteRight`,[`EditorHelper`,`EditorScrollState`,`MidiEditor`,`MidiEditorState`,function(e,t,n,r){return{restrict:`A`,link:function(i,a){var o;a.on(`pointerdown`,s);function s(e){if(e.preventDefault(),!n.selectNoteOnMousedown(i,e))return;let s=t.notesTimelineEl.getBoundingClientRect().toJSON();s.top+=70,s.height-=70;var u=n.getSelectedNotes(),d=aO(u,`duration`)[0];o={x:e.x+t.notesLeft,notes:ul(u),duration:i.note.duration,midiEditorRect:s,maxDeltaDuration:n.getShortestNoteToRegionEndDuration(),minDeltaDuration:-d.duration+r.MIDI_NOTE_DURATION_MIN},a[0].setPointerCapture(e.pointerId),a.on(`pointermove`,c),angular.element(window).on(`pointerup`,l),document.body.classList.add(`is-resizing`),r.isResizing=!0,i.$apply()}function c(e){e.preventDefault();let a=e.x+t.notesLeft,s=u(o.duration,a-o.x);
334Object.values(r.selectedNotesByRegion).flat().forEach(function(e,t){e.duration=o.notes[t].duration+s,r.noteDuration[r.track.id]=e.duration}),n.autoscroll({x:e.clientX,y:e.clientY},o.midiEditorRect),i.$apply()}function l(){a.off(`pointermove`,c),angular.element(window).off(`pointerup`,l),document.body.classList.remove(`is-resizing`),n.updateRegions(),r.isResizing=!1,i.$apply()}function u(t,n){var a=n/r.scalePx,s=t+a,c=i.region.startPosition-i.region.sampleOffset+i.note.time+s,l=e.snapToGrid(c,r.snapDuration,{padding:5/r.scalePx},r)-(i.region.startPosition-i.region.sampleOffset+i.note.time);return a+=l-s,a=Math.max(a,o.minDeltaDuration),a=Math.min(a,o.maxDeltaDuration),a}}}}]),angular.module(`bandlab.editor`).directive(`midiEditorPencil`,[`editorEvents`,`EditorHelper`,`EditorHistory`,`EditorMidiSamples`,`EditorRevision`,`EditorState`,`EditorTimeline`,`MidiEditor`,`MidiEditorState`,function(e,t,n,r,i,a,o,s,c){return{replace:!0,restrict:`A`,link:function(l,u){var d,f,p;l.$on(e.keyDown.snapReleased,function(){c.isDrawingWithShortcut=!1,l.$apply()}),l.$on(e.keyDown.snapPressed,function(){c.isDrawingWithShortcut=!0,l.$apply()}),l.$watch(function(){return c.isDrawing||c.isDrawingWithShortcut},function(e){e?(b(),u[0].classList.add(`is-drawing`)):(u[0].classList.remove(`is-drawing`),u[0].style.cursor=``)});let m={};u.on(`dblclick`,function(e){e.clientX===Math.floor(m.clientX)&&e.clientY===Math.floor(m.clientY)&&(e.preventDefault(),h(e)&&g(e))}),u.on(`pointerdown`,function(e){e.preventDefault(),m=e,h(e)&&(c.isDrawing||c.isDrawingWithShortcut)&&(g(e),u[0].setPointerCapture(e.pointerId),angular.element(window).on(`pointerup`,y),u.on(`pointermove`,_),document.body.classList.add(`is-moving`))});function h(e){return c.track&&!e.target.classList.contains(`midi-editor-note`)&&e.which!==3&&(e.target===u[0]||e.target.classList.contains(`midi-editor-region`))}function g(e){let a=c.noteDuration[c.track.id]||c.snapDuration;var l=u[0].parentElement,m=l.getBoundingClientRect(),h=en(i.current.metronome);let g,_=s.getHighestNoteInRoll(),v=Math.floor((e.y-m.top+l.scrollTop-22)/s.getNoteHeight());if(g=c.isPianoRoll&&lO.value?bO.value[v]:_-1-v,f={id:ze(),midiNote:g,duration:a,velocity:Tt},f.time=(e.x-m.left+-4)/c.scalePx,f.time=Math.max(f.time,0),s.previewSoloNote(f),d=w(),d){n.withSingleUndo(()=>{C(),p=x(d,f,e)});return}if(d=E(),d){n.withSingleUndo(()=>{C();let t=d.startPosition+d.loopLength*Math.floor((f.time-d.startPosition)/d.loopLength);d=o.createEmptyRegion(c.track,{startPosition:t,endPosition:Math.min(t+d.loopLength,d.endPosition,S(f.time)),sampleId:d.sampleId}),p=x(d,f,e)});return}if(d=T(),d){let t=Math.min(Math.ceil(f.time/h)*h,S(f.time));d.endPosition=t,p=x(d,f,e);return}let y=Math.floor(f.time/h)*h,b=Math.min(y+h,S(f.time));n.withSingleUndo(()=>{d=o.createEmptyRegion(c.track,{startPosition:y,endPosition:b}),p=x(d,f,e)});function C(){r.has(d.sampleId)||(d=s.replaceInvalidMidiRegion(d).region)}function w(){return MS(c.track.regions,function(e){return e.startPosition<=f.time&&e.startPosition+t.getFirstLoopDuration(e)>f.time})}function T(){return cF(c.track.regions.filter(function(e){let t=2*h;return r.has(e.sampleId)&&!e.loopLength&&e.startPosition<=f.time&&e.endPosition+t>f.time}),e=>f.time-e.endPosition)}function E(){return MS(c.track.regions,function(e){return e.loopLength&&e.startPosition+t.getFirstLoopDuration(e)<f.time&&e.startPosition+e.loopLength+t.getExtraLoopDuration(e)>f.time})}}function _(e){e.preventDefault();let n=c.selectedNotesByRegion[d.id][0],r=v(n,p.duration,e.x-p.x),i=t.getFirstLoopDuration(d)-n.time;n.duration=wt(p.duration+r,c.MIDI_NOTE_DURATION_MIN,i),c.noteDuration[c.track.id]=n.duration,l.$apply()}function v(e,n,r){let i=r/c.scalePx,a=n+i,o=t.snapToGrid(e.time+a,c.snapDuration,{padding:5/c.scalePx},c)-e.time;return i+=o-a,i}function y(){angular.element(window).off(`pointerup`,y),u.off(`pointermove`,_),document.body.classList.remove(`is-moving`);let e=c.selectedNotesByRegion[d.id][0];e&&e.duration!==p.duration&&s.updateRegions()}function b(){u[0].style.cursor=`url(https://www.bandlab.com/web-app/images/mix-editor/pencil-999b05b2f4.svg) 2 0, auto`}
334function x(e,n,r){return a.isSnapping&&(n.time=t.snapToGrid(n.time-c.snapDuration/2,c.snapDuration,{padding:c.snapDuration/2},c)),n.time=Math.min(n.time,d.endPosition-n.duration),n.time=Math.max(n.time,d.startPosition),n.time-=e.startPosition,s.unselectNotes(),c.selectedNotesByRegion[e.id]=[n],c.addedNotesByRegion[e.id]=[n],c.notesByRegion[e.id]=c.notesByRegion[e.id]||[],c.notesByRegion[e.id].push(n),s.updateRegions(),{duration:n.duration,x:r.x}}function S(e){return c.track.regions.map(e=>e.startPosition).sort((e,t)=>e-t).find(t=>t>e)||1/0}}}}]),angular.module(`bandlab.editor`).directive(`midiEditorPlayhead`,[`EditorCycle`,`EditorScroll`,`EditorScrollState`,`EditorState`,`MidiEditorState`,function(e,t,n,r,i){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-playhead-1fea35a81.html`,link:function(a,o){let s=new IntersectionObserver(d);s.observe(o[0]);let c;Q.add(`playing`,u),Q.add(`syncPlayhead`,u),a.$on(`$destroy`,function(){Q.remove(`playing`,u),Q.remove(`syncPlayhead`,u),s&&s.disconnect()}),a.$on(Nc,()=>{Z.FOLLOW_PLAYHEAD&&l()});function l(){let{clientWidth:e}=n.notesTimelineEl,{notesLeft:a}=n,o=a+e;(i.scalePx*r.crTime>o||i.scalePx*r.crTime<a)&&t.scrollNotesToX({time:r.crTime,scalePx:i.scalePx})}function u(){var e=Math.round(r.crTime*i.scalePx-7);c!==e&&(o[0].style.transform=`translateX(${e}px)`),c=e}function d(a){a[0].intersectionRatio!==0||!r.isPlaying||!i.isFollowingPlayhead||r.crTime<0||!Z.FOLLOW_PLAYHEAD||i.isLocked||(n.notesLeft>i.scalePx*r.crTime?t.scrollNotesToX({time:e.get().startTime,scalePx:i.scalePx}):t.scrollNotesToX({direction:`right`}))}}}}]);var OF=Fu(function(e,t){var n=Aa(t);return pu(n)&&(n=void 0),pu(e)?ju(e,Mu(t,1,pu,!0),Mi(n,2)):[]});angular.module(`bandlab.editor`).directive(`midiEditorRegion`,[`EditorHelper`,`EditorState`,`MidiEditor`,`MidiEditorState`,function(e,t,n,r){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-region-e345ecc31.html`,link:function(i){i.$on(Qc,a),i.getRegionStyle=function(){return{"box-shadow":` 335 inset ${(i.region.endPosition-i.region.startPosition)*r.scalePx}px 0px 0px 0px ${e.getRegionBackgroundColor(r.track,i.region,`midi`)}, 336 inset -${Math.round(e.getExtraLoopWidth(i.region)/t.scalePx*r.scalePx)}px 0px 0px 0px rgba(0, 0, 0, .3) 337 `,left:`${i.region.startPosition*r.scalePx}px`,width:`${(i.region.endPosition-i.region.startPosition)*r.scalePx}px`}},i.getFirstLoopWidth=function(){return e.getFirstLoopWidth(i.region,r.scalePx)},i.isLoopVisible=function(){return e.getExtraLoopWidth(i.region)>0},i.getNoteUniqueIndex=function(e){return`${e.midiNote}-${e.time}-${e.id}`};function a(e,t){var a=o(t,i.notes),s=OF(a,r.selectedNotesByRegion[i.region.id],`id`);s.length>0&&n.previewSoloNote(s[0]),r.selectedNotesByRegion[i.region.id]=a,i.$applyAsync()}function o(e,t){var a=n.getNoteHeight(),o=n.getHighestNoteInRoll(),s={startTime:e.left/r.scalePx,endTime:(e.left+e.width)/r.scalePx};let c=Math.floor(e.top/a),l=Math.floor((e.top+e.height)/a);return r.isPianoRoll&&lO.value?(s.noteHigh=bO.value[c],s.noteLow=bO.value[l]):(s.noteHigh=o-1-c,s.noteLow=o-1-l),Jm(t,function(e){var t=i.region.startPosition+e.time+e.duration>s.startTime&&i.region.startPosition+e.time<s.endTime&&(!i.region.loopLength||i.region.loopLength&&e.time<i.region.loopLength),n=e.midiNote<=s.noteHigh&&e.midiNote>=s.noteLow;return t&&n})}},controller:[`$scope`,`EditorMidiSamples`,function(e,t){e.notes=[],e.$watchGroup([()=>t.get(e.region.sampleId)?.notes,`region.startPosition`,`region.endPosition`,`region.loopLength`,`region.sampleOffset`,()=>r.track.soundbank],i);function i(){e.notes=n.renderRegionNotes(e.region),r.notesByRegion[e.region.id]=e.notes,r.selectedNotesByRegion[e.region.id]=(r.selectedNotesByRegion[e.region.id]||[]).map(function(t){return MS(e.notes,{id:t.id})}).filter(e=>!!e)}}]}}]),angular.module(`bandlab.editor`).directive(`midiEditorRegionNote`,[`MidiEditor`,`MidiEditorState`,function(e,t){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-region-note-7babc0f28.html`,link:function(n,r){let i={};r.on(`dblclick`,function(r){r.clientX===Math.floor(i.clientX)&&r.clientY===Math.floor(i.clientY)&&(r.preventDefault(),!t.isDrawing&&!t.isDrawingWithShortcut&&e.deleteNotes(),n.$digest())}),r.on(`pointerdown`,function(r){r.button!==2&&(r.preventDefault(),i=r,!t.isResizing&&(t.isDrawing||t.isDrawingWithShortcut?e.deleteNotes():e.previewSoloNote(n.note)))}),n.noteName=n.note.noteName,n.$watch(()=>n.note.midiNote,a),n.$watch(()=>Z.PREFER_SHARPS,a);function a(){n.getNote().duration*t.scalePx>
33725&&t.isPianoRoll&&n.getViewMode()&&(n.noteName=gl(n.note.midiNote,!0,Z.PREFER_SHARPS))}},controller:[`$scope`,`MidiEditorState`,function(e,t){e.isSelected=function(){return t.selectedNotesByRegion[e.region.id]=t.selectedNotesByRegion[e.region.id]||[],t.selectedNotesByRegion[e.region.id].indexOf(e.note)>-1},e.getNote=function(){return t.mapOriginalNoteToEditing.get(e.note)??e.note}}]}}]),angular.module(`bandlab.editor`).directive(`midiEditorRuler`,[`EditorGrid`,`EditorHelper`,`EditorPlayer`,`EditorScroll`,`EditorScrollState`,`EditorState`,`MidiEditorState`,function(e,t,n,r,i,a,o){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-ruler-fb16fdf3b.html`,link:function(t,n){let r=n[0].querySelector(`.studio-ruler-graduation-container`);t.$watch(`state.isTimeRuler`,a),Q.add(`scale:notesTimeline`,a),Q.add(`scroll:notesLeft`,a),t.$on(`$destroy`,function(){Q.remove(`scale:notesTimeline`,a),Q.remove(`scroll:notesLeft`,a)});function a(){e.updateGridLabel({element:r,state:o,leftBounds:i.notesLeft-12,viewportWidth:i.notesTimelineEl.getBoundingClientRect().width}),n[0].style.width=`${o.containerWidth}px`}},controller:[`$scope`,function(e){let s,c=angular.noop;e.startMovingPlayhead=function(e,t){o.isDraggingPlayhead=!0,a.isInBackground=!0,l(t-12)},e.finishMovingPlayhead=function(){clearInterval(s),a.isInBackground=!1,o.isDraggingPlayhead=!1};function l(e,r=!1){let{snapDuration:i,scalePx:s}=o;e=Math.max(0,e),e=a.isTimeRuler||r?e:t.snapToGrid(e,i*s,{}),e=Math.min(e/s,Z.SONG_DURATION_MAX),n.setPlaybackPosition(e),Q.start(`syncVolume`)}e.setCurrentTime=function(t,n,c,d,f){clearInterval(s);let p=u(f);if(p)s=setInterval(()=>{r.manualNotesScroll(p),n=p.left?Math.max(h(a.crTime)-i.SCROLL_STEP,0):Math.min(h(a.crTime)+i.SCROLL_STEP,h(Z.SONG_DURATION_MAX)),l(n,!0),e.$digest(),e.$applyAsync()},30);else{let e=m(f);n-=12,n=n===e?n:e,l(n)}function m(e){let{left:t,width:n}=i.notesEl.getBoundingClientRect();return e=Math.max(e-t,0),e=Math.min(e,n),e}function h(e){return o.scalePx*e}};function u(e){let{notesLeft:t,notesTimelineEl:n,RULER_BOTTOM_BUTTONS_WIDTH:r}=i,{left:a,width:s}=n.getBoundingClientRect(),c=o.containerWidth+r+12-n.clientWidth,l=t>0,u=t<c;return e<a+20&&l?{left:!0}:e>a+s-32&&u?{right:!0}:null}e.$watch(()=>a.isDraggingPlayhead,t=>{if(!t){c();return}o.isLocked||(c=e.$watch(`state.crTime`,d))});function d(){let t=i.notesTimelineEl.getBoundingClientRect().width/2;i.notesLeft=a.crTime*o.scalePx-t,Q.start(`scroll:notesLeft`,!1,i.notesLeft,!0,!1),e.$applyAsync()}}]}}]),angular.module(`bandlab.editor`).directive(`midiEditorRulerRegion`,[`$injector`,`EditorGrid`,`EditorHelper`,`EditorHistory`,`EditorPlayer`,`EditorRevision`,`EditorState`,`EditorTimeline`,`MidiEditorState`,function(e,t,n,r,i,a,o,s,c){return{restrict:`A`,link:function(e){e.getRegionStyle=function(){return{"background-color":n.getRegionBackgroundColor(c.track,e.region),"box-shadow":` 338 inset -${Math.round(n.getExtraLoopWidth(e.region)/o.scalePx*c.scalePx)+20}px 0px 0px -20px rgba(0, 0, 0, .3)
339 `,left:`${e.region.startPosition*c.scalePx+12}px`,width:`${(e.region.endPosition-e.region.startPosition)*c.scalePx}px`}}},controller:[`$scope`,`editorEvents`,function(l,u){let d={};l.backupRegion=function(){r.pushUndo(a.current),a.selectedRegions=new Set([l.region]),d={duration:l.region.endPosition-l.region.startPosition,endPosition:l.region.endPosition,firstPosition:l.region.startPosition,firstTrack:c.track,lastPosition:l.region.startPosition,loopLength:l.region.loopLength,sampleOffset:l.region.sampleOffset,scalePx:c.scalePx,startPosition:l.region.startPosition,startPositions:{[l.region.id]:l.region.startPosition}},l.$applyAsync()};let f=NA(()=>l.region,{$injector:e,$scope:l,EditorGrid:t,EditorHistory:r,EditorPlayer:i,EditorRevision:a,EditorState:o,editorEvents:u,getScalePx:()=>c.scalePx,getSnapDuration:()=>o.isSnapping?c.snapDuration:null});Object.assign(l,f),l.moveRegion=function(e){s.moveRegion(l.region,0,{...d,delta:-e,firstRegionSnapped:0},c),l.$apply()},l.getRightHandleType=function(){return l.getExtraLoopDuration()>0?`loop`:`trim`},l.updateTrack=function(){s.moveRegions(d.firstTrack)},l.getExtraLoopDuration=function(){return n.getExtraLoopDuration(l.region)},l.getFirstLoopDuration=function(){return n.getFirstLoopDuration(l.region)},l.getTotalDuration=function(){return n.getTotalDuration(l.region)}}]}}]),angular.module(`bandlab.editor`).directive(`midiEditorScrollbarHorizontal`,[`EditorScroll`,`EditorScrollState`,`EditorState`,`MidiEditorState`,function(e,t,n,r){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-scrollbar-horizontal-801a29252.html`,link:function(i,a){let o=a[0].querySelector(`.midi-editor-scrollbar-horizontal`),s=new ResizeObserver(c);s.observe(a[0]),Q.add(`scale:notesTimeline`,c),Q.add(`scroll:notesLeft`,c),setTimeout(function(){c()}),a[0].addEventListener(`mousedown`,function(t){let n=o.getBoundingClientRect(),r=t.clientX;r<n.left?e.scrollNotesToX({direction:`left`}):r>n.right&&e.scrollNotesToX({direction:`right`})},{capture:!0}),i.$on(`$destroy`,function(){s.disconnect(),Q.remove(`scale:notesTimeline`,c),Q.remove(`scroll:notesLeft`,c)});function c(){let{clientWidth:e,scrollLeft:a}=t.notesTimelineEl,s=r.scalePx*Math.min(Math.max(180,n.songDuration+30),Z.SONG_DURATION_MAX),c=Math.round(e/s*e),l=Math.max(c,40),u=Math.round(a/(s-e)*(e-l));i.barScale=c/l,i.scrollPercent=a/(s-e),o.style.width=`${l}px`,o.style.transform=`translateX(${u}px)`}},controller:[`EditorScroll`,`$scope`,function(e,i){var a,o;i.backupPositionX=function(e,n,r){a=r.target.closest(`.midi-editor-scrollbar-horizontal`)?i.scrollPercent-(i.scrollPercent-e)*i.barScale:e,o=t.notesLeft},i.scrollX=function(t){e.scrollNotesToX({clickPosition:a,offsetPosition:o,percent:t,scrollWidth:Math.min(Math.max(180,n.songDuration+30),Z.SONG_DURATION_MAX)*r.scalePx})}}]}}]),angular.module(`bandlab.editor`).directive(`midiEditorScrollbarVertical`,[`EditorScroll`,`EditorScrollState`,function(e,t){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/midi/partials/_midi-editor-scrollbar-vertical-8be6cdc6a.html`,link:function(n,r){let i=r[0].querySelector(`.midi-editor-scrollbar-vertical`),a=new ResizeObserver(o);a.observe(r[0]),Q.add(`scroll:notesTop`,o),r[0].addEventListener(`mousedown`,function(t){var n=i.getBoundingClientRect(),r=t.clientY;r<n.top?e.scrollNotesToY({direction:`up`}):r>n.bottom&&e.scrollNotesToY({direction:`down`})},{capture:!0}),n.$on(`$destroy`,function(){a.disconnect(),Q.remove(`scroll:notesTop`,o)}),n.$watch(()=>t.notesEl.clientHeight,o);function o(){let{clientHeight:e,scrollHeight:n,scrollTop:a}=t.notesEl,o=e-22,s=Math.round(o/n*o),c=Math.round(a/(n-o)*(o-s));i.style.height=`${s}px`,i.style.transform=`translateY(${c}px)`,r[0].classList.toggle(`hidden`,e>=n)}},controller:[`EditorScroll`,`$scope`,function(e,n){var r,i;n.backupPositionY=function(e){r=1-e,i=t.notesTop},n.scrollY=function(t){e.scrollNotesToY({clickPosition:r,offsetPosition:i,percent:1-t})}}]}}]);const kF=(function(){return function(){return D({_patterns:[],isActive:!1,kit:[],matrix:[],patterns:[],corruptedPatternIndices:new Set,patternLengthInBars:1,selectedPattern:{}
339,selectedPatternIndex:-1,swingAmount:0,velocityMode:!1})}})();angular.module(`bandlab.editor`).value(`DrumMachineState`,kF()).factory(`DrumMachine`,[`$rootScope`,`DrumMachineState`,`EditorDB`,`editorEvents`,`EditorMidiSamples`,`EditorPlayer`,`EditorRevision`,`EditorState`,function(e,t,n,r,i,a,o,s){var c=qy(),l=16,u;let{queue:d,enqueue:f,useInstance:p,usedInstances:m}=Nl(e=>a.current.getPatternEditor(e.id));return e.$on(`DrumMachine:updateTrackPatterns`,function(e,{trackId:t}){o.selectedTrack&&t===o.selectedTrack.id&&p(o.selectedTrack,async function(e){await ie(e)})}),{clearPattern:y,copyPattern:te,getAvailableKit:w,getCurrentKit:E,getPatternDurationInSeconds:g,getSupportedNotes:T,isPatternEmpty:v,isSelectedPatternEmpty:_,pastePattern:I,previewNote:D,selectPatternByIndex:ee,selectPatternOfRegion:h,selectTrack:F,setRegionDrumMachinePattern:z,setSelectedPatternLengthInBars:L,setSwingAmount:R,setVelocityMode:ne,stop:O,swapDrum:C,toggle:k,touchDown:b,touchMove:x,touchUp:S};function h(e,t){let n=e.patterns.findIndex(e=>e.sampleId===t.sampleId);ee(Math.max(n,0))}function g(e){let n=t._patterns[e]?.length;return ad(n,o.current.metronome.bpm)}function _(){let e=t._patterns[t.selectedPatternIndex];return v(e)}function v(e){return!e||e.cellStates.every(e=>e.every(e=>e<0))}function y(){p(o.selectedTrack,async function(e){await B(e,async()=>await e.clearSelectedPattern())})}function b(e,t){p(o.selectedTrack,async function(n){let r=N(t);await B(n,()=>n.touchDown(e,r))})}function x(e,t){p(o.selectedTrack,async function(n){let r=N(t);await B(n,()=>n.touchMove(e,r))})}function S(e,t){p(o.selectedTrack,async function(n){let r=N(t);await B(n,()=>n.touchUp(e,r))})}function C(e,t){p(o.selectedTrack,async function(n){await B(n,async()=>await n.setNoteForRow(e,t))})}function w(e){return new Promise(function(t){p(o.selectedTrack,async function(n){t((await n.getAvailableNotesForRow(e)).map(e=>c[e]))})})}function T(){return new Promise(e=>{p(o.selectedTrack,async t=>{e((await t.getSupportedNotes()).map(e=>c[e]))})})}function E(){return t.kit}function D(e){p(o.selectedTrack,function(t){t.previewMidi(e.midi)})}function O(){f(async function(){for(let[e,t]of m)await(await t).stop(),m.delete(e);M()})}function k(){p(o.selectedTrack,async function(e){await e.toggle()?j():M()})}function A(n){p(n,async function(r){let i=await r.patternPlayheadPosTick(),a=N(1),s=Math.floor(i/a),c=s+1===l*t.patternLengthInBars?0:s+1,d=(s+1)*a,f=ad(d-i,o.current.metronome.bpm)*1e3;u=setTimeout(()=>{t.isActive&&(e.$broadcast(`DrumMachine:beat`,c),A(n))},f)})}function j(){t.isActive=!0,clearTimeout(u),e.$broadcast(`DrumMachine:beat`,0),A(o.selectedTrack),s.isPlaying&&e.$broadcast(r.keyDown.play),e.$applyAsync()}function M(){t.isActive=!1,clearTimeout(u),e.$broadcast(`DrumMachine:beat`,-1),e.$applyAsync()}function N(e){var t=o.current.metronome,n=e/4/t.bpm*60;return sd(n,t.bpm)}function P(e){let t=p(e,async function(t){await t.stop(),await t.delete(),m.delete(e.id)});return M(),t}async function F(e){if(t.patterns===e.patterns)return;let n=t.isActive;await P(e),t.patterns=e.patterns,await p(e,async function(e){n&&(await e.start(),j()),await ie(e)})}function ee(n){p(o.selectedTrack,async function(r){await r.selectPatternByIndex(n);let[i]=await Promise.all([await r.getSelectedPattern(),t.isActive?r.start():r.stop()]);d.length>2||(t.selectedPatternIndex=n,t.selectedPattern={sampleId:t.patterns[n]?.sampleId||``,notes:i.noteRows},t.kit=i.noteRows.map(e=>c[e]),t.matrix=i.cellStates,t.patternLengthInBars=i.cellStates[0].length/l,e.$applyAsync())})}function te(){p(o.selectedTrack,async function(e){await e.copySelectedPattern(),Zs.value={pattern:!await e.isClipboardEmpty()}})}function I(){p(o.selectedTrack,async function(e){await B(e,async()=>await e.pasteIntoSelectedPattern())})}function L(n){t.patternLengthInBars!==n&&p(o.selectedTrack,async function(t){await B(t,async()=>await t.setSelectedPatternLengthInBars(n)),e.$applyAsync()})}function R(n){t.swingAmount!==n&&p(o.selectedTrack,async function(r){await B(r,async()=>await r.setSwingAmount(n)),t.swingAmount=n,e.$applyAsync()})}function ne(n){p(o.selectedTrack,async function(r){await r.setVelocityMode(n),t.velocityMode=n,e.$applyAsync()})}function z(e,n){let{sampleId:r}=t.patterns[n];e.sampleId=r;let{beatsPerBar:i,stepsPerBeat:a,stepCount:s}=t._patterns[n],c=s/a/i,l=en({bpm:o.current.metronome.bpm,signature:{noteValue:4,notesCount:4}});e.loopLength/l!==c&&(e.loopLength=l*c)}function re(e,n){let r=t.patterns.findIndex(e=>e.sampleId===n);o.selectedTrack.regions.filter(t=>
339t.sampleId===e).forEach(e=>z(e,r)),Array.isArray(Zs.value)&&Zs.value.filter(t=>t.sampleId===e).forEach(e=>z(e,r))}async function B(e,r){let i=ze();await a.current.rememberCurrentState(i),await r();let s=await a.current.getChangeSet(i);a.current.forgetState(i);let c=s.modifiedTracks[0];c&&await a.current.updatePreviousMixData();let l=c&&c.patterns?c.patterns.map(e=>e.sampleId):[];t._patterns=await e.getAllPatterns(),await l.reduce(async(t,n,r)=>(await t,V(n,r,e)),Promise.resolve()),n.addSnapshot(o.current),await H(e)}async function V(e,r,s){let c=t._patterns[r],l=t.patterns[r],u=await s.isPatternCorrupted(r);i.has(e)||u||(await a.current.readSample(e,`mid`).then(t=>{let r=new Blob([t],{type:`audio/midi`});n.updateFile({blob:r,sampleId:e})}),i.set(e,{id:e,name:`Drum Machine`,notes:c.score,trackId:o.selectedTrack.id}),t.patterns[r]={sampleId:e,notes:c.noteRows},l&&re(l.sampleId,e),t.selectedPatternIndex===r&&await ie(s))}async function ie(e){t.patterns=o.selectedTrack.patterns,t._patterns=await e.getAllPatterns(),t.swingAmount=await e.getSwingAmount(),t.velocityMode=await e.getVelocityMode(),await H(e),ee(await e.getSelectedPatternIndex())}async function H(e){let n=new Set,r=[...Array(8).keys()].map(t=>e.isPatternCorrupted(t).then(e=>{e&&n.add(t)}));await Promise.all(r),t.corruptedPatternIndices=n}}]);const AF=To(function(e){let t=e.get(`$rootScope`),n=e.get(`AppNotifications`),r=Le(a);return{getMidiDevices:i,state:h({status:`ok`,midiDevicesList:[],pluggedDevice:null})};function i(){return r().then(s)}function a(){return`requestMIDIAccess`in navigator?navigator.requestMIDIAccess().then(function(e){return e.onstatechange=o,e}):Promise.reject(Error(`This browser does not support Web MIDI.`))}function o(e){e.port&&e.port.constructor!==window.MIDIOutput&&(n.addNotification({title:`${e.port.name}${e.port.manufacturer?` ⢠${e.port.manufacturer}`:``}`,content:e.port.state===`connected`?`Status: Connected`:`Status: Disconnected`,autoclose:5e3}),i().then(function(e){t.$broadcast(Ic,e)}))}function s({inputs:e}){let t=[];return e.forEach(function(e){t.push(e)}),t}});angular.module(`bandlab.editor`).factory(`MidiDevice`,[`$injector`,`$rootScope`,`EditorRevision`,`EditorState`,`MidiMapping`,`SharedMidiSynth`,`Soundbank`,function(e,t,n,r,i,a,o){let s=Le(function(e){import(`./DvQD5s06.js`).then(e=>e.t).then(({logMeMidiDeviceConnect:t})=>t({device_name:e}))}),{getMidiDevices:c,state:l}=Gn(()=>AF(e),t);return t.$on(`MidiMapping:INSTRUMENT`,function(e,n){var r=n[0]&240,i=n[2]?n[2]/127:null;switch(r){case 144:a.noteOn(n[1],i);break;case 128:a.noteOff(n[1],i)}t.$broadcast(`MidiMessage:noteEvent`,n[1])}),t.$on(Ic,function(e,t){t.length?_(t.find(e=>e.id===l.pluggedDevice?.id)||t[0]):g(),l.midiDevicesList=t}),{init:u,plug:_,unplug:g};function u(){return c().then(function(e){l.midiDevicesList=e,_(e[0])}).catch(function(){l.status=`requestMIDIAccess`in navigator?`access_denied`:`not_supported`,l.midiDevicesList=[]})}function d(e){return i.getCallbacks().reduce((t,n)=>n(e)||t,!1)}function f(e){if(document.body.classList.contains(`is-mapping`)){i.addMapping(e.data,e.currentTarget),t.$applyAsync();return}d(e)&&t.$applyAsync()}function p(e){if(document.body.classList.contains(`is-mapping`)){i.addMapping(e.data,e.currentTarget),t.$applyAsync();return}var n=e.data[0]&240,r=e.data[2]?e.data[2]/127:null;if(jF(e.data)&&(n=128),d(e)){t.$applyAsync(),t.$broadcast(`MidiMessage:noteEvent`);return}let{input:s,soundbank:c}=o.getCurrent();switch(n){case 144:if(wx(c?.userInterfaces,s?.slug)){kx(e.data[1],function(e){a.noteOn(e,r),t.$broadcast(`MidiMessage:noteEvent`,e)},function(e){a.notesOn(e.map(e=>[e,r])),e.forEach(e=>{t.$broadcast(`MidiMessage:noteEvent`,e)})},function(e){a.notesOff(e.map(e=>[e,r])),t.$broadcast(`MidiMessage:noteEvent`)});break}a.noteOn(e.data[1],r),t.$broadcast(`MidiMessage:noteEvent`,e.data[1]);break;case 128:if(mx.value&&mx.value?.root===e.data[1]){Ax(mx.value?.root,function(e){a.notesOff(e.map(e=>[e,r])),t.$broadcast(`MidiMessage:noteEvent`)});break}a.noteOff(e.data[1],r),t.$broadcast(`MidiMessage:noteEvent`);break;case 176:m(e);break;case 224:a.setPitchBend(e.data)}}function m(e){switch(e.data[1]){case 64:case 11:a.setSustain(e.data[2]),t.$applyAsync();break;case 10:y(e.data),t.$applyAsync();break;case 7:v(e.data),t.$applyAsync()}}function h(e){e.onmidimessage=f}function g(e=l.midiDevicesList){e.forEach(function(e){e.onmidimessage=null}),l.pluggedDevice=null}function _(e,t=l.midiDevicesList){l.pluggedDevice&&g(),l.pluggedDevice=e,l.pluggedDevice&&(l.pluggedDevice.onmidimessage=null,setTimeout(function(){l.pluggedDevice&&(l.pluggedDevice.onmidimessage=p)},1e3),s(e.name)),t.filter(e=>e!==l.pluggedDevice).forEach(h)}function v([,,e=64]){n.selectedTrack&&t.$broadcast(`MidiMapping:TRACK_VOLUME`,{trackId:n.selectedTrack.id,volume:e*2/127,crTime:r.crTime})}function y([,,e=64]){n.selectedTrack&&t.$broadcast(`MidiMapping:TRACK_PAN`,{pan:e*2/127-1,trackId:n.selectedTrack.id,crTime:r.crTime})}}]).factory(`MidiMapping`,[`$filter`,`$rootScope`,`EditorRevision`,`EditorState`,`Katnip`,`MidiMappable`,function(e,t,n,r,i,a){let o=[{event:`CONTROL_CHANGE`,matcher:function(e,t,{channel:n,deviceId:r,identifier:i}){let a=e[0]&240,o=e[0]&15;return t.id===r&&o===n&&a===176&&i===e[1]},extend:function(e){return{value:e[2]}}},{event:`NOTE_ON_OFF`,matcher:function(e,t,{channel:n,deviceId:r,noteNumber:i}){let a=e[0]&240,o=e[0]&15;return t.id===r&&o===n&&(a===144||a===128)&&e[1]===i},extend:function(e){return{adsr:e[2]}}},{event:`PROGRAM_CHANGE`,matcher:function(e,t,{channel:n,deviceId:r,identifier:i}){let a=e[0]&240,o=e[0]&15;return t.id===r&&o===n&&a===192&&i===e[1]},extend:function(e){return{value:e[2]}}},{event:`PITCH_BEND`,matcher:function(e,t,{channel:n,deviceId:r,identifier:i}){let a=e[0]&240,o=e[0]&15;return t.id===r&&o===n&&a===224&&i===e[1]},extend:function(e){return{value:e[2]}}}],s=[{target:`MASTER_VOLUME`,callback:function(e,{min:n,max:r,value:i}){let a=e[0]&240;if(a===128||jF(e))return;let o;o=angular.isUndefined(n)||angular.isUndefined(r)?i*2/127:(r-n)*i/127+n,t.$broadcast(`MidiMapping:MASTER_VOLUME`,{min:n,max:r,toggle:a===144,volume:o})}},{target:`MASTER_PLAYBACK`,callback:function(e,{value:n}){let r=e[0]&240;r===128||jF(e)||t.$broadcast(`MidiMapping:MASTER_PLAYBACK`,{toggle:r===144,value:n>64})}},{target:`MASTER_RECORD`,callback:function(e,{value:n}){let r=e[0]&240;r===128||jF(e)||t.$broadcast(`MidiMapping:MASTER_RECORD`,{toggle:r===144,value:n>64})}},{target:`TRACK_SOLO`,callback:function(e,{trackId:n,value:r}){let i=e[0]&240;i===128||jF(e)||t.$broadcast(`MidiMapping:TRACK_SOLO`,{toggle:i===144,trackId:n,value:r>64})}},{target:`TRACK_MUTE`,callback:function(e,{trackId:n,value:r}){let i=e[0]&240;i===128||jF(e)||t.$broadcast(`MidiMapping:TRACK_MUTE`,{toggle:i===144,trackId:n,value:r>64})}},{target:`TRACK_PAN`,callback:function(e,{min:n,max:i,trackId:a,value:o}){let s=e[0]&240;if(s===128||jF(e))return;let c;c=angular.isUndefined(n)||angular.isUndefined(i)?o*2/127-1:(i-n)*o/127+n,t.$broadcast(`MidiMapping:TRACK_PAN`,{min:n,max:i,toggle:s===144,pan:c,trackId:a,crTime:r.crTime})}},{target:`TRACK_VOLUME`,callback:function(e,{min:n,max:i,trackId:a,value:o}){let s=e[0]&240;if(s===128||jF(e))return;let c;c=angular.isUndefined(n)||angular.isUndefined(i)?o*2/127:(i-n)*o/127+n,t.$broadcast(`MidiMapping:TRACK_VOLUME`,{min:n,max:i,toggle:s===144,trackId:a,volume:c,crTime:r.crTime})}},{target:`TRACK_FXMIX`,callback:function(e,{min:n,max:i,trackId:a,value:o}){let s=e[0]&240;if(s===128||jF(e))return;let c;c=angular.isUndefined(n)||angular.isUndefined(i)?o/127*(an.max-an.min)+an.min:(i-n)*o/127+n,t.$broadcast(`MidiMapping:TRACK_FXMIX`,{min:n,max:i,toggle:s===144,trackId:a,fxMix:c,crTime:r.crTime})}},{target:`INSTRUMENT`,callback:function(e,{noteNumber:n,adsr:r,min:i,max:a}){angular.isUndefined(i)||angular.isUndefined(a)?r/=127:r=(a-i)*r/127+i,t.$broadcast(`MidiMapping:INSTRUMENT`,[e[0],n,r])}},{target:`OCTAVE_DOWN`,callback:function(e,{value:n}){let r=e[0]&240;r===128||jF(e)||t.$broadcast(`MidiMapping:OCTAVE_DOWN`,{toggle:r===144,value:n>64})}},{target:`OCTAVE_UP`,callback:function(e,{value:n}){let r=e[0]&240;r===128||jF(e)||t.$broadcast(`MidiMapping:OCTAVE_UP`,{toggle:r===144,value:n>64})}},{target:`TRACK_EFFECT_PARAMETER`,callback:function(e,{effectId:n,effectIndex:i,effectParameter:a,min:o,max:s,trackId:c,value:l}){let u=e[0]&240;u===128||jF(e)||(angular.isUndefined(o)||angular.isUndefined(s)?l/=127:l=(s-o)*l/127+o,t.$broadcast(`MidiMapping:TRACK_
339EFFECT_PARAMETER`,{effectId:n,effectIndex:i,effectParameter:a,min:o,max:s,toggle:u===144,trackId:c,value:l,crTime:r.crTime}))}},{target:`TRACK_EFFECT_BYPASS`,callback:function(e,{effectId:n,effectIndex:r,effectSlug:i,trackId:a,value:o}){let s=e[0]&240;s===128||jF(e)||t.$broadcast(`MidiMapping:TRACK_EFFECT_BYPASS`,{effectId:n,effectIndex:r,effectSlug:i,toggle:s===144,trackId:a,value:o<64})}}],c=h([]);if(Y.mappings)try{[].push.apply(c,JSON.parse(Y.mappings))}catch{}let l=c.map(function([e,t]){return x(e,t)});return{addMapping:f,clearMappings:E,getCallbacks:S,getDefault:v,getMappingLabel:T,getMappings:w,getMetadata:_,getUnit:g,mapControl:x,pruneMappings:d,removeMapping:p,updateMappings:u,getLimit:y,setLimit:b};function u(){l=c.map(function([e,t]){return x(e,t)}),Y.mappings=JSON.stringify(c.map(function([e,{...t}]){return delete t.effectId,[e,t]}))}function d(){ja(c,function([,e]){if(e.trackId){let t=n.current.tracks.find(t=>t.id===e.trackId);if(!t)return!0;if(e.effectId?e.effectIndex=t.effects.findIndex(t=>t.id===e.effectId):Number.isInteger(e.effectIndex)&&(e.effectId=t.effects[e.effectIndex]?.id),Number.isInteger(e.effectIndex)||e.effectParameter){if((e.target===`TRACK_EFFECT_BYPASS`?t.effects[e.effectIndex]:t.effects[e.effectIndex]?.params?.[e.effectParameter]??!1)===!1)return!0;if(e.effectSlug)return t.effects[e.effectIndex]?.slug!==e.effectSlug}}})}function f(e,t,n=a){if(!n.target)return;let r=m(e);r&&(r.deviceName=t.name,r.deviceId=t.id,n={...n,noteNumber:n.noteNumber},!c.find(e=>angular.equals(e[0],r)&&angular.equals(lA(e[1],[`min`,`max`]),n))&&(n.min=v(n,`min`),n.max=v(n,`max`),n.target===`MASTER_PLAYBACK`?ja(c,e=>angular.equals(e[0],r)&&e[1].target===`MASTER_RECORD`):n.target===`MASTER_RECORD`?ja(c,e=>angular.equals(e[0],r)&&e[1].target===`MASTER_PLAYBACK`):ja(c,e=>angular.equals(e[1],n)),c.push([r,n]),u()))}function p(e){ja(c,t=>angular.equals(t,e)),u()}function m(e){let t=e[0]&240,n=e[0]&15;switch(t){case 176:return{event:`CONTROL_CHANGE`,channel:n,identifier:e[1]};case 192:return{event:`PROGRAM_CHANGE`,channel:n,identifier:e[1]};case 144:return{event:`NOTE_ON_OFF`,channel:n,noteNumber:e[1]};case 224:return{event:`PITCH_BEND`,channel:n,identifier:e[1]}}}function g({target:e,effectIndex:t,effectParameter:r,trackId:a}){if(e===`MASTER_VOLUME`||e===`TRACK_VOLUME`)return`dB`;if(e===`TRACK_FXMIX`)return an.displayUnit;if(e===`TRACK_EFFECT_PARAMETER`){let e=n.current.tracks.find(e=>e.id===a).effects[t]?.slug;return i.metadata[e]?.params?.[r]?.displayUnit||i.metadata[e]?.params?.[r]?.unit}return``}function _({target:e,effectIndex:t,effectParameter:r,trackId:a}){if(e===`MASTER_VOLUME`||e===`TRACK_VOLUME`)return lt;if(e===`TRACK_PAN`)return ln;if(e===`TRACK_FXMIX`)return an;if(e===`TRACK_EFFECT_PARAMETER`){let e=n.current.tracks.find(e=>e.id===a)?.effects?.[t]?.slug;return i.metadata[e]?.params?.[r]}if(e===`INSTRUMENT`)return{min:0,max:127,step:1}}function v({target:e,effectIndex:t,effectParameter:r,trackId:a},o){if(e===`MASTER_VOLUME`||e===`TRACK_VOLUME`)return lt[o];if(e===`TRACK_PAN`)return ln[o];if(e===`TRACK_FXMIX`)return an[o];if(e===`TRACK_EFFECT_PARAMETER`){let e=n.current.tracks.find(e=>e.id===a)?.effects?.[t]?.slug,s=i.metadata[e]?.params?.[r];return Ut(s[o],s)}if(e===`INSTRUMENT`)return{min:0,max:127}[o]}function y({target:e,effectIndex:t,effectParameter:r,trackId:a},o){if(e===`MASTER_VOLUME`||e===`TRACK_VOLUME`)return o=un(o),o.toFixed(1);if(e===`TRACK_PAN`)return Ft(o,ln);if(e===`TRACK_FXMIX`)return Ft(o,an);if(e===`TRACK_EFFECT_PARAMETER`){let e=n.current.tracks.find(e=>e.id===a).effects[t].slug,s=i.metadata[e].params[r];return Ft(qt(o,s),s)}return o}function b({target:e,effectIndex:t,effectParameter:r,trackId:a},o){if(e===`MASTER_VOLUME`||e===`TRACK_VOLUME`)return 10**(o/20);if(e===`TRACK_PAN`)return Mt(o,ln);if(e===`TRACK_FXMIX`)return Mt(o,an);if(e===`TRACK_EFFECT_PARAMETER`){let e=n.current.tracks.find(e=>e.id===a).effects[t].slug,s=i.metadata[e].params[r];return Ut(Mt(o,s),s)}return o}function x({event:e,...t},{target:n,...r}){let{matcher:i,extend:a}=o.find(t=>t.event===e),{callback:c}=s.find(e=>e.target===n);return function(e){return i(e.data,e.currentTarget,t)?(c(e.data,{...a(e.data),...r}),!0):!1}}function S(){return l}function C(e){let{target:t,trackId:n,noteNumber:r,effectParameter:i,effectSlug:a,effectIndex:o}=e;return c.find(function([,e]){return e.target===t&&e.trackId===n&&e.noteNumber===r&&e.effectIndex===o&&e.effectParameter===i&&e.effectSlug===a})}function w(){return c}function T(t){let n=C(t);if(!n)return``;let r=e(`midiMappableReadableEvent`);return`${n[0].channel} - ${r(n[0])}${n[0].identifier??``}`}function E(){c.length=0,u()}}]).constant(`MidiMappable`,h({effectIndex:null,effectParameter:null,noteNumber:null,target:null,trackId:null})).directive(`mixEditorMappable`,[`$filter`,`MidiMappable`,`MidiMapping`,function(e,t,n){return{restrict:`E`,replace:!0,template:function(e,t){return` 340 <div class="mix-editor-mappable" 341 ng-click="selectMappable('${t.mappableTarget}', preset.id || track.id, ${t.mappableNoteNumber}, effectIndex, property, effect.slug, effectId)" 342 ng-class="{ selected: isMappableSelected('${t.mappableTarget}', preset.id || track.id, ${t.mappableNoteNumber}, effectIndex, property, effect.slug, effectId) }"> 343 <div class="mix-editor-mappable-mapped">{{ getMappingLabel('${t.mappableTarget}', preset.id || track.id, ${t.mappableNoteNumber}, effectIndex, property, effect.slug, effectId) }}</div> 344 </div> 345 `},link:function(r){let i=e(`midiMappableReadableEvent`);r.selectMappable=function(e,n,r,i=!1,a,o,s){t.target=e,t.trackId=n,t.noteNumber=r,t.effectIndex=i,t.effectParameter=a,t.effectSlug=o,t.effectId=s},r.isMappableSelected=function(e,n,r,i=!1,a,o,s){return t.target===e&&t.trackId===n&&t.noteNumber===r&&(t.effectId&&s?t.effectId===s:t.effectIndex===i)&&t.effectParameter===a&&t.effectSlug===o},r.getMappingLabel=function(e,t,r,a=!1,o,s){let c=n.getMappings().find(function([,{target:n,trackId:i,noteNumber:c,effectIndex:l,effectParameter:u,effectSlug:d}]){return n===e&&i===t&&c===r&&l===a&&u===o&&d===s});return c?`${c[0].channel} - ${i(c[0])}${c[0].identifier??``}`:``}}}}]).filter(`midiMappableReadableTarget`,[`EditorRevision`,`Katnip`,`MidiMapping`,function(e,t,n){return function({target:r,trackId:i,effectIndex:a,effectParameter:o,effectSlug:s}){if(r===`TRACK_EFFECT_PARAMETER`){let r=e.current.tracks.find(e=>
345e.id===i)?.effects[a]?.slug,s=t.metadata[r]?.params[o]?.display?.name;if(!s){n.pruneMappings();return}return s}if(r===`TRACK_EFFECT_BYPASS`&&e.current.tracks.find(e=>e.id===i)?.effects[a]?.slug!==s){n.pruneMappings();return}return{CONTROL_CHANGE:`CC`,PROGRAM_CHANGE:`PC`,NOTE_ON_OFF:`NOTE`,PITCH_BEND:`PITCH BEND`,MASTER_RECORD:`Recording`,MASTER_PLAYBACK:`Playback`,MASTER_VOLUME:`Volume`,OCTAVE_DOWN:`Octave down`,OCTAVE_UP:`Octave up`,TRACK_EFFECT_BYPASS:`Bypass`,TRACK_SOLO:`Solo track`,TRACK_MUTE:`Mute track`,TRACK_PAN:`Track panning`,TRACK_FXMIX:`Fx blend`,TRACK_VOLUME:`Track volume`,INSTRUMENT:`Instrument note`}[r]||r}}]).filter(`midiMappableReadableEvent`,function(){return function({event:e,noteNumber:t}){return{CONTROL_CHANGE:`CC`,PROGRAM_CHANGE:`PC`,NOTE_ON_OFF:nd(t),PITCH_BEND:`PB`}[e]||e}}).filter(`midiMappableReadableTrackId`,[`EditorRevision`,`MidiMapping`,function(e,t){return function({trackId:n}){let r=e.current.tracks.find(e=>e.id===n);if(!r){t.pruneMappings();return}return r.name}}]).directive(`midiMappingRange`,[`MidiMapping`,function(e){return{require:[`ngModel`],scope:{midiMappingTarget:`=`,midiMappingLimit:`@`,ngModel:`=`},link:function(t,n,r,[i]){i.$formatters.push(function(n=e.getDefault(t.midiMappingTarget,t.midiMappingLimit)){if(setTimeout(function(){e.updateMappings()}),n=e.getLimit(t.midiMappingTarget,n),angular.isDefined(n))return s(n,e.getMetadata(t.midiMappingTarget).step)}),i.$parsers.push(function(n){if(isNaN(n)&&n!==-1/0||n===``)return n=e.getDefault(t.midiMappingTarget,t.midiMappingLimit),o(n),a(e.getLimit(t.midiMappingTarget,n)),n;setTimeout(function(){e.updateMappings()});let r=wt(e.setLimit(t.midiMappingTarget,parseFloat(n)),t.midiMappingLimit===`min`?e.getDefault(t.midiMappingTarget,`min`):Math.max(e.getDefault(t.midiMappingTarget,`min`),t.midiMappingTarget.min),t.midiMappingLimit===`max`?e.getDefault(t.midiMappingTarget,`max`):Math.min(e.getDefault(t.midiMappingTarget,`max`),t.midiMappingTarget.max));if(!isNaN(r))return a(e.getLimit(t.midiMappingTarget,r)),r});function a(n){i.$viewValue=s(n,e.getMetadata(t.midiMappingTarget).step),i.$render()}function o(e){i.$modelValue=e,t.ngModel=e}function s(e,t){return t?Math.round(Math.ceil(e/t)*t*1e3)/1e3:e}}}}]).directive(`midiMappingRow`,function(){return{replace:!0,restrict:`E`,scope:{mapping:`=`},templateUrl:`https://www.bandlab.com/web-app/editor/partials/_midi-mapping-row-f5e729240.html`,controller:[`$scope`,`MidiMapping`,function(e,t){var n;e.getUnit=t.getUnit,e.removeMapping=t.removeMapping,e.minRangeStart=function(){n=e.mapping[1].min},e.minRangeMove=function(r,i){let a=t.getDefault(e.mapping[1],`min`),o=n+i/300;e.mapping[1].min=wt(o,a,e.mapping[1].max)},e.maxRangeStart=function(){n=e.mapping[1].max},e.maxRangeMove=function(r,i){let a=t.getDefault(e.mapping[1],`max`),o=n+i/300;e.mapping[1].max=wt(o,e.mapping[1].min,a)}}]}});function jF(e){let t=e[0]&240,n=e[2];return t===144&&n===0}angular.module(`bandlab.editor`).value(`MidiEditorState`,D({addedNotesByRegion:{},clipboard:null,hasFocus:!1,height:338,isDrawing:!1,isDrawingWithShortcut:!1,isFollowingPlayhead:!0,isPianoRoll:!0,isResizing:!1,isTripletGrid:!1,isVelocity:!1,isVisible:!1,notesByRegion:{},noteDuration:{},originalHeight:338,previewNote:O(!0),quantizationValue:16,removedNotesByRegion:{},selectedNotesByRegion:{},snapSetting:Gt[0],editingNotesByRegion:{},mapEditingNoteToOriginal:new Map,mapOriginalNoteToEditing:new Map,track:{},MIDI_NOTE_DURATION_MIN:.001,MIDI_NOTE_UI_HEIGHT_LARGE:32,MIDI_ROLL_LABEL_WIDTH:parseInt(window.getComputedStyle(document.body).getPropertyValue(`--midi-editor-roll-labels-width`)),MIDI_ROLL_PIANO_KEYS_WIDTH:parseInt(window.getComputedStyle(document.body).getPropertyValue(`--midi-editor-roll-piano-keys-width`))})).factory(`MidiEditor`,[`$q`,`$rootScope`,`$timeout`,`EditorData`,`EditorHelper`,`EditorHistory`,`EditorMidiSamples`,`EditorMidiScore`,`EditorModel`,`EditorPlayer`,`EditorRevision`,`EditorScrollState`,`EditorState`,`MidiEditorState`,`Soundbank`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){let h=null,g={},_=new Map;return{activePreviewNotes:g,autoscroll:T,beforeFocusedScrollToNotesY:H,copyNotes:ne,copyNotesToTrack:z,cutNotes:R,deleteNotes:ie,focu
345sedScrollToNotesY:ae,getHighestNoteInRoll:F,getNoteHeight:ee,getNoteScrollPositionY:U,getNotePositionY:P,getMidiRollLabelsWidth:te,getSelectedNotes:S,getSelectedNotesBoundaries:w,getShortestNoteToRegionEndDuration:C,hasSelectedNotes:x,humanizeNotes:Ce,pasteNotes:B,previewNote:ue,previewSoloNote:q,quantizeNotes:D,quantizeNotesInRegion:E,refreshRollLayout:xe,deleteMidiEditor:y,deleteMidiEditors:b,renderRegionNotes:Se,resizeRollHeight:be,replaceInvalidMidiRegion:re,scrollToNotes:W,scrollToRegion:G,selectAllNotes:de,selectNoteOnMousedown:J,selectNotesOfSamePitch:pe,selectNotesOfSamePitchByMidi:me,setLegato:we,setRandomVelocity:Y,stopPreviewNote:K,storeRollHeight:ye,transposeKeys:cn,transposeNotes:N,transposeRegions:k,transposeRevision:O,transposeScoreKey:A,unselectNotes:V,unselectNotesOfSamePitchByMidi:he,updateRegions:ve,editSelectionVelocity:Te,finishEditVelocity:Ee};async function v(e,t=Array.from({length:128},(e,t)=>t)){if(_.has(e))return _.get(e);let n=await l.current.getMidiEditor(e,t);return n&&_.set(e,n),n}async function y(e){if(!_.has(e))return;let t=_.get(e);_.delete(e),await t.stopAllNotes(),t.delete()}async function b(){for(let e of _.keys())await y(e)}function x(){return Object.values(p.selectedNotesByRegion).flat().length>0}function S(){return Object.values(p.selectedNotesByRegion).flat()}function C(){let e=Object.entries(p.selectedNotesByRegion).map(function([e,t]){if(!t.length)return;let n=[].concat(t).sort(function(e,t){return e.time+e.duration-(t.time+t.duration)}).pop(),r=MS(p.track.regions,{id:e});return r&&i.getFirstLoopDuration(r)-(n.time+n.duration)}).filter(tt);return Math.min(...e)}function w(e){var t=aO(e,`midiNote`),n=t[t.length-1];return{infDeltaMidiNote:-t[0].midiNote,supDeltaMidiNote:F()-1-n.midiNote}}function T(e,t){var n=d.SCROLL_STEP;switch(!0){case e.x>t.right-37:d.notesLeft+=n;break;case e.x<t.left:d.notesLeft-=n;break;case e.y<t.top:d.notesTop-=n;break;case e.y>t.bottom:d.notesTop+=n}}function E(e,t){Number.isInteger(e)||(e=1/p.snapSetting.value);var n=e===1/0?p.snapDuration:Pt(u.current.metronome)*u.current.metronome.signature.notesCount/e;a.pushUndo(u.current),t.forEach(function(e){let t=Se(e);var r=o.get(e.sampleId),a=Xm(r.notes,function(r){var a=MS(t,{id:r.id}),o,s;return a?(o=e.startPosition+a.time-e.sampleOffset,s=i.snapToGrid(o+e.sampleOffset,n,{force:!0,padding:n/2},p),a.time+=s-o,{...r,time:sd(Math.max(a.time,0),u.current.metronome.bpm)}):r});r=s.editScore(r,a),s.updateMidiRegionWithScore(e,r),l.updateSourcesInTracks()})}function D(e=p.quantizationValue){Number.isInteger(e)||(e=1/p.snapSetting.value);var t=e===1/0?p.snapDuration:Pt(u.current.metronome)*u.current.metronome.signature.notesCount/e;a.pushUndo(u.current),p.track.regions.filter(function(e){return p.selectedNotesByRegion[e.id].length>0}).forEach(function(e){var n=o.get(e.sampleId),r=Xm(n.notes,function(n){var r=MS(p.selectedNotesByRegion[e.id],{id:n.id}),a,o;return r?(a=e.startPosition+r.time-e.sampleOffset,o=i.snapToGrid(a+e.sampleOffset,t,{force:!0,padding:t/2},p),r.time+=o-a,{...n,time:sd(Math.max(r.time,0),u.current.metronome.bpm)}):n});n=s.editScore(n,r),s.updateMidiRegionWithScore(e,n),l.updateSourcesInTracks()})}function O(t,n){var r=cn(t.key,n);nF(t.tracks,function(t,n){return e.resolve(t).then(function(){return n.soundbank?m.getBank(n.soundbank):Promise.resolve()}).then(function(){if(!i.isTrackTransposable(n))return{};let t=dA(n.regions.filter(function(e){return o.has(e.sampleId)}),`sampleId`);return Object.entries(t).reduce(function(t,[i,a]){return e.resolve(t).then(function(){let e=o.get(i),t=(e.pitchShift+r+12)%12;return t>6&&(t-=12),j(i,-e.pitchShift+t,n.soundbank,{scorePitchShift:t})}).then(function(e){jw(a,function(t){s.updateMidiRegionWithScore(t,e),l.updateSourcesInTracks()})})},{})})},{})}function k(t,n,r){a.pushUndo(u.current),nF(t.tracks,function(t,i){return e.resolve(t).then(function(){let t=dA(i.regions.filter(function(e){return o.has(e.sampleId)&&r.has(e)}),`sampleId`);return Object.entries(t).reduce(function(t,[r,a]){return e.resolve(t).then(function(){return j(r,n,i.soundbank)}).then(function(e){jw(a,function(t){s.updateMidiRegionWithScore(t,e),t.pitchShift=0,l.updateSourcesInTracks()})})},{})})},{})}function A(e,t,n,r){return j(e,cn(t,n),r)}function j(e,t,n,{scorePitchShift:r}={}){var i=o.get(e);return M(i,Xm(i.notes,function(e){return Object.assign({},e,`midiNote`in e?{midiNote:e.midiNote+t}:{})}),t,n,{scorePitchShift:r})}function M(t,n,r,a,{scorePitchShift:o}={}){return i.isSoundbankTransposable(a)?e.resolve().then(function(){return s.editScore(t,n,{pitchShift:o})}).finally(()=>{lO.value&&yO()}):e.resolve(t)}function N(e){a.pushUndo(u.current),p.track.regions.filter(function(e){return p.selectedNotesByRegion[e.id].length>0}
345).forEach(function(t){var n=o.get(t.sampleId),r=Xm(n.notes,function(n){var r=MS(p.selectedNotesByRegion[t.id],{id:n.id}),i;return r?(i=r.midiNote+e,i=Math.min(127,i),i=Math.max(0,i),Math.abs(e)===12&&i!==r.midiNote+e?n:{...n,midiNote:i}):n});n=s.editScore(n,r),s.updateMidiRegionWithScore(t,n),l.updateSourcesInTracks()}),lO.value&&yO()}function P(e){return p.isPianoRoll&&lO.value?`${SO.value.indexOf(e)*ee()}px`:`${e*ee()}px`}function F(){return p.isPianoRoll?128:p.track.samplerKit?Ry.length:jy.length}function ee(){return p.isPianoRoll?IO.value:p.MIDI_NOTE_UI_HEIGHT_LARGE}function te(){return p.isPianoRoll?p.MIDI_ROLL_PIANO_KEYS_WIDTH:p.MIDI_ROLL_LABEL_WIDTH}function I(e){return p.track.samplerKit?zy[e].midi:jy[e].midi}function L(e){return[...Ry].sort((e,t)=>e.midi-t.midi)[e].midi}function R(){ne(),ie()}function ne(){var e;if(p.clipboard=aO(Object.values(p.selectedNotesByRegion).flat().map(t),`time`),!p.clipboard.length)return;e=p.clipboard[0].time,p.clipboard=Xm(p.clipboard,n);function t({...e}){return e.id=null,p.isPianoRoll||(e.midiNote=I(e.midiNote)),e}function n(t){return t.time-=e,t}}function z(e,t,n){var r=e.regions.map(function(e){var t=o.get(e.sampleId),n=Jm(t.notes,function(t){return MS(p.selectedNotesByRegion[e.id],{id:t.id})});return n.length?s.editScore(t,n):!1});t.regions=Jm(t.regions,function(e,t){return r[t]?(e.sampleId=r[t].id,!0):!1}),u.selectedRegions=new Set(t.regions),n&&e.regions.forEach(function(e){var t,n=o.get(e.sampleId),r=Jm(n.notes,function(t){return!MS(p.selectedNotesByRegion[e.id],{id:t.id})});if(r.length===n.notes.length)return!1;t=s.editScore(n,r),s.updateMidiRegionWithScore(e,t)})}function re(e,t=p.track){let{id:n,name:r,startPosition:i,endPosition:a,loopLength:l}=e,u=t.regions.findIndex(e=>e.id===n);u>=0&&t.regions.splice(u,1);let d=s.createScore();o.set(d.id,d);let f=c.createRegion({endPosition:a,isPlayable:!0,name:r??``,sampleId:d.id,startPosition:i,trackId:p.track.id,loopLength:l});return t.regions.push(f),{region:f,score:d}}function B(){if(p.clipboard.length){var e=f.crTime,t=MS(p.track.regions,function(t){return t.startPosition<=e&&t.startPosition+i.getFirstLoopDuration(t)>e}),n,r,c;if(t){if(a.pushUndo(u.current),c=o.get(t.sampleId),!c){let e=re(t);t=e.region,c=e.score}n=e-(t.startPosition-t.sampleOffset),r=Xm(p.clipboard,function(e){return{...e,id:ze(),duration:sd(e.duration,u.current.metronome.bpm),time:sd(e.time+n,u.current.metronome.bpm)}}),c=s.editScore(c,c.notes.concat(r)),s.updateMidiRegionWithScore(t,c),p.selectedNotesByRegion[t.id]=r,l.updateSourcesInTracks(),f.hasRevisionChanges=!0}}}function V(){Object.keys(p.selectedNotesByRegion).forEach(function(e){p.selectedNotesByRegion[e]=[]})}function ie(){a.withSingleUndo(()=>{p.removedNotesByRegion={...p.selectedNotesByRegion},ve(),V()})}function H(e){let t=d.notesTop-22,n={oldMode:lO.value,noViewNotesTop:c()};if(_O.value.length===0){h=null;return}let r=ce();if(!r){h=null;return}let i=r.some(e=>e.inLoop),a=r.some(e=>!e.inLoop);i&&a&&(r=r.filter(e=>!e.inLoop));let o=r.sort((e,t)=>t.midiNote-e.midiNote)[0],s=o.notePosY-t;h={...n,highestVisibleNote:o,noteDistToNotesTop:s};function c(){return e===`fold`?d.notesTop:lO.value===`fold`&&h?h.noViewNotesTop:null}}function ae(){if(_O.value.length===0){oe();return}if(!h){W();return}if(h.noViewNotesTop!==null&&h.oldMode===`fold`){se(h.noViewNotesTop),h.noViewNotesTop=null;return}let{highestVisibleNote:e,noteDistToNotesTop:t}=h,n=d.notesTop-22,r=le()[e.midiNote],i=r-n,a=r<=d.notesTop?-Math.abs(i)-t:i-t;se(d.notesTop+a)}function oe(){let e=60;if(lO.value===`scale`){let t=`${wy.value.tonal||wy.value.label}4`;e=[...xO.value].find(e=>t===e.name||t===`${e.enharmonic}${e.oct}`).midi}se(le()[e]+22-d.notesEl.clientHeight/2+ee()/2)}function se(e){d.notesTop=e,Q.start(`scroll:notesTop`,!1,d.notesTop),setTimeout(()=>{d.notesTop=e,Q.start(`scroll:notesTop`,!1,d.notesTop)})}function ce(){let{flattenNotes:e,getNotesTime:t}=s,n=d.notesLeft-12,r=d.notesTop-22,i=n+d.notesTimelineEl.getBoundingClientRect().width,a=r+d.notesEl.clientHeight,o=p.track.regions.filter(e=>{let t=e.startPosition*p.scalePx,r=e.endPosition*p.scalePx;return t<=i&&r>=n||r>=n&&t<=i});if(o.length===0)return null;
345let c=le(),l=o.flatMap(o=>e(t(o.sampleId,u.current.metronome.bpm),o).map(e=>(e.notePosX=(e.time+o.startPosition)*p.scalePx,e.notePosY=c[e.midiNote],e)).filter(({notePosX:e,notePosY:t})=>e>n&&e<=i&&t>r&&t<=a));return l.length===0?null:l}function le(){let e=ee();return[...bO.value].reduce((t,n,r)=>(t[n]=r*e,t),{})}function U(e){return(lO.value?bO.value.indexOf(e):F()-e)*ee()}function W(e,{always:t}={}){e||=cF(p.track.regions.filter(e=>u.selectedRegions.has(e)&&o.has(e.sampleId)),`startPosition`);let n=e?Se(e):[],r=n.toSorted((e,t)=>e.midiNote-t.midiNote)[0]?.midiNote??0,i=n.toSorted((e,t)=>e.time-t.time)[0]?.time??0,a;a=p.isPianoRoll?U(r?Math.floor(r/12)*12:m.getPropertyValue(p.track.soundbank,`defaultOctave`))-d.notesEl.clientHeight:r?(F()-r)*p.MIDI_NOTE_UI_HEIGHT_LARGE-d.notesEl.clientHeight:0;let s=e?(e.startPosition+i)*p.scalePx:d.notesLeft;(t||s<d.notesLeft||s>d.notesLeft+d.notesTimelineEl.clientWidth)&&(d.notesLeft=s);let c=U(r),l=d.notesTop<=c&&c<=d.notesEl.clientHeight+d.notesTop;l||(d.notesTop=a),Q.start(`scroll:notesTop`,!1,d.notesTop),Q.start(`scroll:notesLeft`,!1,d.notesLeft),setTimeout(function(){l||(d.notesTop=a),Q.start(`scroll:notesTop`,!1,d.notesTop),Q.start(`scroll:notesLeft`,!1,d.notesLeft)})}function G(e){d.notesLeft=e?e.startPosition*p.scalePx:d.notesLeft,setTimeout(function(){Q.start(`scroll:notesLeft`,!1,d.notesLeft)})}async function ue(e,n=1){if(!p.previewNote.value)return;let r=u.selectedTrack.id,i=await v(r);i&&(await i.startNoteAtRowWithVelocity(e,Math.round(n*127)),g[e]=!0,t.$broadcast(`MidiMessage:noteEvent`))}function de(){p.selectedNotesByRegion=nF(p.track.regions,function(e,t){return e[t.id]=Jm(p.notesByRegion[t.id],{inLoop:0}),e},{})}async function K(e){let n=u.selectedTrack.id,r=await v(n);r&&(await r.stopNoteAtRow(e),g[e]=!1,t.$broadcast(`MidiMessage:noteEvent`))}async function q(e){let t=u.selectedTrack.id;var r=p.isPianoRoll?e.midiNote:I(e.midiNote);await fe(t),ue(r,e.velocity),n(function(){K(r)},Math.min(e.duration*1e3,2e3*en(u.current.metronome)))}async function fe(e){if(!e)return;let t=await v(e);t&&(await t.stopAllNotes(),Object.keys(g).forEach(e=>delete g[e]))}function J(e,t){var n=p.selectedNotesByRegion[e.region.id];if(n.indexOf(e.note)<0&&!t.shiftKey)V(),p.selectedNotesByRegion[e.region.id]=[e.note],e.$apply();else if(n.indexOf(e.note)<0&&t.shiftKey)n.push(e.note),e.$digest();else if(n.indexOf(e.note)>=0&&t.shiftKey&&t.which!==3)return p.selectedNotesByRegion[e.region.id]=Jm(n,function(t){return t!==e.note}),e.$digest(),!1;return t.which!==3}function pe(){let e=new Set(Object.values(p.selectedNotesByRegion).flat().map(e=>e.midiNote));p.track.regions.forEach(function(t){if(p.selectedNotesByRegion[t.id].length){var n=[];p.notesByRegion[t.id].forEach(function(t){e.has(t.midiNote)&&t.inLoop===0&&n.push(t)}),p.selectedNotesByRegion[t.id]=n}})}function me(e){p.track.regions.forEach(t=>{let n=p.notesByRegion[t.id];if(n.length===0)return;let r=n.filter(t=>t.midiNote===e&&t.inLoop===0);p.selectedNotesByRegion[t.id]=[...r,...p.selectedNotesByRegion[t.id]]})}function he(e){p.track.regions.forEach(t=>{let n=p.notesByRegion[t.id];if(n.length===0)return;let r=n.filter(t=>t.midiNote===e&&t.inLoop===0);p.selectedNotesByRegion[t.id]=p.selectedNotesByRegion[t.id].filter(e=>!r.includes(e))})}function ge(e,t,n,r){var i=o.get(e.sampleId),c;return a.pushUndo(u.current),c=Xm(i.notes,function(n){var r=MS(t,{id:n.id});return r?_e(e,r):n}),n&&(c=c.concat(Xm(n,function(t){return _e(e,t)}))),r&&(c=c.filter(function(e){return r.every(function(t){return e.id!==t.id})})),s.editScore(i,c)}function _e(e,t){return{id:t.id,duration:sd(t.duration,u.current.metronome.bpm),time:sd(t.time+e.sampleOffset,u.current.metronome.bpm),midiNote:p.isPianoRoll?t.midiNote:p.track.samplerKit?L(t.midiNote):I(t.midiNote),velocity:t.velocity}}function ve(){p.track.regions.filter(function(e){var t=p.selectedNotesByRegion[e.id];return t&&t.length>0}).forEach(function(e){var t=ge(e,p.selectedNotesByRegion[e.id],p.addedNotesByRegion[e.id],p.removedNotesByRegion[e.id]);p.addedNotesByRegion[e.id]=[],p.removedNotesByRegion[e.id]=[],s.updateMidiRegionWithScore(e,t),l.updateSourcesInTracks()}),f.hasRevisionChanges=!0,r.updateSongDuration()}function ye(){p.originalHeight=p.height}function be(e,t){p.height=p.originalHeight+t,p.height=Math.max(p.height,0),p.height=Math.min(p.height,window.innerHeight-282),document.body.style.setProperty(`--mix-editor-panel-height`,`${p.height}px`)}function xe(){setTimeout(function(){d.notesTop=d.notesEl.scrollTop,d.tracksTop=d.tracksEl.scrollTop})}function Se(e){return s.flattenNotes(s.getNotesTime(e.sampleId,u.current.metronome.bpm),e).filter(function(e){return angular.isDefined(e.midiNote)&&(p.isPianoRoll||jy.some(t=>t.midi===e.midiNote))}).map(function(e){return!p.isPianoRoll&&!p.track.samplerKit?e.midiNote=jy.findIndex(t=>t.midi===e.midiNote):!p.isPianoRoll&&p.track.samplerKit&&(e.midiNote=[...Ry].sort((e,t)=>
345e.midi-t.midi).findIndex(t=>t.midi===e.midiNote)),e})}function Ce(){a.withSingleUndo(()=>{p.track.regions.filter(function(e){return p.selectedNotesByRegion[e.id].length>0}).forEach(function(e){jw(p.selectedNotesByRegion[e.id],function(t){t.time=Math.random()*.02+(t.time-.01),t.time=Math.min(e.endPosition-e.startPosition,t.time),t.time=Math.max(0,t.time)})}),ve()})}function we(){a.withSingleUndo(()=>{p.track.regions.filter(function(e){return p.selectedNotesByRegion[e.id].length>0}).forEach(function(e){jw(p.selectedNotesByRegion[e.id],function(t){t.duration=n()-t.time;function n(){let n=MS(p.notesByRegion[e.id],e=>e.time>t.time+t.duration);return n?n.time:e.endPosition-e.startPosition}})}),ve()})}function Y(){a.withSingleUndo(()=>{jw(S(),function(e){e.velocity=Math.random()*(.95-.5)+.5}),ve()})}function Te(e,t=!1){if(Object.keys(p.editingNotesByRegion).length===0||t){p.editingNotesByRegion=ul(p.selectedNotesByRegion);let e=Object.values(p.editingNotesByRegion).flat(),t=Object.values(p.selectedNotesByRegion).flat();for(let n=0;n<e.length;n++){let r=e[n],i=t[n];p.mapEditingNoteToOriginal.set(r,i),p.mapOriginalNoteToEditing.set(i,r)}}let n=Object.values(p.editingNotesByRegion).flat(),r=Object.values(p.selectedNotesByRegion).flat();if(t){n.forEach(function(t){t.velocity=Math.max(.01,Math.min(1,e))});return}let i=DF(r,`velocity`)/r.length,a=e,o=0,s=0;for(let e of r){let t=e.velocity-i;o=Math.min(o,t),s=Math.max(s,t)}let c=s-o<1e-4,l=+!c;c||(l=Math.min(l,(1-a)/s),l=Math.min(l,(.01-a)/o)),n.forEach(function(e){let t=p.mapEditingNoteToOriginal.get(e),n=l*(t.velocity-i);e.velocity=Math.max(.01,Math.min(1,a+n))})}function Ee(){let e=Object.values(p.editingNotesByRegion).flat();if(e.length){for(let t of e){let e=p.mapEditingNoteToOriginal.get(t);e.velocity=t.velocity}p.editingNotesByRegion={},p.mapEditingNoteToOriginal.clear(),p.mapOriginalNoteToEditing.clear()}}}]),angular.module(`bandlab.editor`).factory(`MidiKeyboardHandler`,[`$document`,`$rootScope`,`SharedMidiSynth`,`Soundbank`,function(e,t,n,r){var i=[],a=[],o;return{changeKeymap:s,disable:_,enable:g,octaveDown:u,octaveUp:l,press:d,release:f,releaseAll:p,updatePianoKeyMap:c};function s(e){e!==o&&(o=e,ky.octave=3,i=tb(e,ky.octave))}function c(e=[]){o===`piano`&&(i=ib(e))}function l(){ky.octave<8&&(ky.octave++,n.stopNotes())}function u(){ky.octave>-1&&(ky.octave--,n.stopNotes())}function d(e){if(!a[e]){if(a[e]=!0,[`creators-kit`,`drums`,`pads`].includes(o))o===`creators-kit`&&t.$broadcast(`SamplerPad:press`),n.noteOn(e,Tt);else{let{input:i,soundbank:a}=r.getCurrent();switch(e){case`sustain`:n.setSustain(127);break;case 300:u();break;case 200:l();break;default:if(wx(a?.userInterfaces,i?.slug)){kx(e,function(e){n.noteOn(e,n.getFixedVelocity()),t.$broadcast(`MidiMessage:noteEvent`,e)},function(e){n.notesOn(e.map(e=>[e,n.getFixedVelocity()])),e.forEach(e=>{t.$broadcast(`MidiMessage:noteEvent`,e)})},function(e){n.notesOff(e.map(e=>[e,0])),t.$broadcast(`MidiMessage:noteEvent`)});break}n.noteOn(e,n.getFixedVelocity())}}t.$broadcast(`MidiMessage:noteEvent`,e)}}function f(e){mx.value&&mx.value?.root===e?Ax(mx.value?.root,function(e){n.notesOff(e.map(e=>[e,0])),t.$broadcast(`MidiMessage:noteEvent`)}):n.noteOff(e),e===`sustain`&&n.setSustain(0),a[e]=!1,t.$broadcast(`MidiMessage:noteEvent`)}function p(){a=[],n.setSustain(0),n.stopNotes(),t.$applyAsync()}function m(e){e.ctrlKey||e.metaKey||e.repeat||e.target.nodeName===`INPUT`&&![`checkbox`,`radio`].includes(e.target.type)||e.target.nodeName===`TEXTAREA`||e.target.getAttribute(`contenteditable`)===`true`||e.code in i&&(e.preventDefault(),d(i[e.code]))}function h(e){e.code in i&&f(i[e.code])}function g(){_(),e.on(`keydown`,m),e.on(`keyup`,h),window.addEventListener(`blur`,p)}function _(){p(),e.off(`keydown`,m),e.off(`keyup`,h),window.removeEventListener(`blur`,p)}}]);const MF=(function(){return function(e,t,n){return r;function r(){let r=h({}),i=h({updateSamplerState:()=>Promise.resolve(),loading:!1,pads:[],pad:{},recordingPad:{}});var a=Tt,o=0;return{clearSampler:g,getFixedVelocity:c,getSampler:s,isSustaining:u,noteOff:p,noteOn:d,notesOff:m,notesOn:f,setFixedVelocity:l,setSustain:b,setPitchBend:y,setSampler:_,stopNotes:v,current:r};function s(){return i}function c(){return a}function l(e){a=e}function u(){return o>64}function d(e,t){r[e]=!0,n.current.sendNoteOn(e,t)}function f(e){e.forEach(([e])=>{r[e]=!0}),n.current.sendNotesOn(e)}function p(e,t){r[e]=null,n.current.sendNoteOff(e,t)}function m(e){e.forEach(([e])=>{r[e]=null}),n.current.sendNotesOff(e)}function g(e){i.track?.id===e&&(i.clearAllPads=()=>Promise.resolve(),i.clipboard=null,i.duplicatePad=()=>
345Promise.resolve(),i.addSnapshotAfterSamplerKitEdit=()=>{},i.getEmptyPad=()=>-1,i.loadSamplerKit=()=>Promise.resolve(),i.movePad=()=>Promise.resolve(),i.startRecording=()=>Promise.resolve(),i.stopRecording=()=>Promise.resolve(),i.swapPads=()=>Promise.resolve(),i.track=null,i.pads.length&&i.pads.forEach(e=>{e.samplerPad?.delete()}),i.pads=[],i.pad={},i.recordingPad={},i.updateSamplerState=()=>Promise.resolve())}function _(r){return i.loading=!0,n.current.prepareMix().then(function([e]){return e.length&&e.some(e=>e.some(e=>e.error))&&t.notifyMissingSamples(),n.current.updateMix()}).then(function(){let{initializing:t,updateSamplerState:n,clipboard:a,clearAllPads:o,duplicatePad:s,addSnapshotAfterSamplerKitEdit:c,getEmptyPad:l,loadSamplerKit:u,movePad:d,getMultipadSamplerForTrack:f,pads:p,recordingPad:m,selectedPad:h,startRecording:g,stopRecording:_,swapPads:v}=ES(e,r,i.pads.indexOf(i.pad));return i.updateSamplerState=n,i.clearAllPads=o,i.clipboard=a,i.duplicatePad=s,i.addSnapshotAfterSamplerKitEdit=c,i.getEmptyPad=l,i.loadSamplerKit=u,i.movePad=d,i.getMultipadSamplerForTrack=f,i.pad=h,i.pads=p,i.recordingPad=m,i.startRecording=g,i.stopRecording=_,i.swapPads=v,i.track=r,t}).finally(()=>{i.loading=!1})}function v(){Object.keys(r).filter(function(e){return r[e]}).forEach(function(e){n.current.sendNoteOff(parseInt(e)),r[e]=null})}function y([e,t,r]){n.current.sendMidiEvent([e,t,r])}function b(e){o!==e&&(o=e,n.current.setSustain(e))}}}})();MF.$inject=[`$injector`,`EditorHelper`,`EditorPlayer`],angular.module(`bandlab.editor`).factory(`MidiSynth`,MF),angular.module(`bandlab.editor`).factory(`SharedMidiSynth`,[`MidiSynth`,function(e){return new e}]),angular.module(`bandlab.notification`,[]).config([`$stateProvider`,function(e){e.state(`notifications`,{url:`/notifications`,redirectTo:`notifications.activities`,templateUrl:`https://www.bandlab.com/web-app/notification/views/notifications-layout-042153d7e.html`,controller:[`$scope`,`Me`,function(e,t){let{hasMembership:n}=qn(e,t);e.hasMembership=n,e.me=t,Promise.all([Ge(`member tab`),Ge(`notification tab`)]).then(function([t,n]){e.membersHubCardUnviewedCount=t.filter(e=>e.viewed===!1).length,e.fromBandlabCardUnviewedCount=n.filter(e=>e.viewed===!1).length})}]}).state(`notifications.activities`,{url:`/activities`,templateUrl:`https://www.bandlab.com/web-app/notification/views/notifications-activities-236ebf98c.html`,controller:`NotificationsActivitiesCtrl`}).state(`notifications.membershubRedirect`,{url:`/membershub`,redirectTo:`notifications.membershub`}).state(`notifications.membershub`,{url:`/members-hub`,template:`<div></div>`,controller:[`$element`,`$scope`,function(e,t){$(import(`./B911uTpk.js`),e[0],t,{},{})}]}).state(`notifications.frombandlab`,{url:`/from-bandlab`,template:`<div></div>`,controller:[`$element`,`$scope`,function(e,t){$(import(`./2JGGKlj5.js`),e[0],t,{},{})}]}).state(`notifications.invites`,{url:`/invites?id`,reloadOnSearch:!1,templateUrl:`https://www.bandlab.com/web-app/notification/views/notifications-invites-c341a025a.html`,controller:`NotificationsInvitesCtrl`}).state(`notifications.requests`,{url:`/requests`,templateUrl:`https://www.bandlab.com/web-app/notification/views/follow-requests-15ee13618.html`,controller:`FollowRequestsCtrl`})}]),angular.module(`bandlab.notification`).controller(`FollowRequestsCtrl`,[`$q`,`$scope`,`Me`,`User`,`UserHelper`,function(e,t,n,r,i){var a=null,o,s=!1;t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(o=o.then(function(e){return t.infiniteScrollEnded=s,t.users=t.users||[],t.users=t.users.concat(e),c()}),o)},c().then(t.loadMore),t.toggleFollow=function(e){i.toggleFollowUser(e)},t.updateRequest=function(e,t){t===`accept`?r.followRequest({id:n.id,followerId:e.id,isApproved:!0}).$promise.then(function(){e.followAccepted=!0}):r.unfollow({id:n.id,followerId:e.id}).$promise.then(function(){e.followDeclined=!0})};function c(){return s?e.resolve([]):(o=r.relation({id:n.id,rel:`followers`,limit:20,after:a,isApproved:!1}).$promise.then(function({data:e,paging:t}){return a=t.cursors.after,s=!a,e}),o)}}]),angular.module(`bandlab.notification`).controller(`InviteCtrl`,[`$rootScope`,`$timeout`,`AppNotifications`,`authService`,`Invite`,function(e,t,n,r,i){var a=this;a.acceptInvite=o,a.declineInvite=s;function o(a){return i.update({id:a.id}).$promise.then(function(){return a.accepted=!0,t(function(){e.$broadcast(`$invite:changed`,{invite:a}),r.refreshMe()},1e3),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logBandJoin:e,logBandRequestAccept:t,logCommunityJoin:n,logCollabRequestAccept:r}){a.type===`RequestToBand`?t({bandId:a.band.id}):a.type===`InviteToBand`?e({bandId:a.band.id}
345):a.type===`InviteToSong`?r():a.community&&n()}),a}).catch(function(e){var t=`Unable to accept invite`,r;switch(e.data.errorCode){case 64:a.band||a.bandId?(t=`This band is currently full`,r=a.isUserRequest?`To add a new member, remove someone first.`:`Try again once a member leaves, or message the owner/admin for help.`):r=`Youâve reached the max number of members. Band can only have 50 members.`;break;default:r=Qe(e,`data.message`)}return n.addNotification({title:t,content:r,classList:`alert`,autoclose:5e3}),a})}function s(n){i.remove({id:n.id}).$promise.then(function(){n.declined=!0,t(function(){e.$broadcast(`$invite:changed`,{invite:n}),r.refreshMe()},1e3),n.type===`InviteToSong`&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCollabRequestDecline:e}){e()})})}}]);const NF={class:`typography-body-compact-regular`},PF={key:0,class:`typography-body-compact-regular`},FF={class:`report`},IF={href:`https://help.bandlab.com/hc/en-us/articles/49712037716377-Payment-FAQ`,class:`settings-inline-option`,target:`_blank`};var LF=V({__name:`NotificationMembershipPaymentInfoModal`,props:{status:{default:`GracePeriod`},paymentProvider:{default:``}},emits:[`closeModal`],setup(e,{emit:t}){let n=t,r=e,i=U(()=>{switch(r.paymentProvider){case`GooglePlayStore`:return`Android`;case`AppleAppStore`:return`iOS`;default:return null}}),a=U(()=>r.status===`OnHold`?`error`:`warning`),o=U(()=>
345r.status===`OnHold`?`Subscription Paused`:`Subscription Payment Issue`),s=U(()=>r.status===`OnHold`?`We were unable to renew your subscription due to a payment issue. Your access to BandLab Membership subscription is currently paused. Please update your payment information to restore access.`:`Your subscription renewal was unsuccessful. To maintain access to all Membership features, please update your payment information.`);I(()=>{Ri({GracePeriod:`Grace`,OnHold:`OnHold`}[r.status])});function c(){n(`closeModal`),Promise.all([import(`./BUIA2SYS.js`).then(e=>e.t),import(`./CKtCfXPl.js`)]).then(function([{createModal:e},{default:t}]){e(t,{toReport:{objectType:`General`}})})}return(t,r)=>(F(),ie(wf,{type:a.value,onCloseModal:r[0]||=e=>n(`closeModal`)},{"illustration-icon":W(t=>[e.status===`OnHold`?(F(),ie(Df,{key:0,size:40,class:v(t.class)},null,8,[`class`])):(F(),ie(Ef,{key:1,size:40,class:v(t.class)},null,8,[`class`]))]),title:W(()=>[B(y(o.value),1)]),"custom-message":W(()=>[K(`p`,NF,y(s.value),1),i.value?(F(),G(`p`,PF,y(`But it looks like you have bought Membership on another ${i.value} device. Youâll need to manage your payment methods from that platform.`),1)):H(``,!0)]),footer:W(()=>[q(Tf,{class:`notification-membership-payment-info-modal-footer`,style:{width:`100%`}},{default:W(()=>[K(`article`,FF,[K(`div`,null,[K(`a`,IF,y(`FAQ`),1),K(`a`,{class:`settings-inline-option`,onClick:c},y(`Report a Problem`),1)])])]),_:1})]),_:1},8,[`type`]))}}),RF=n({default:()=>zF}),zF=LF;angular.module(`bandlab.notification`).controller(`NotificationsActivitiesCtrl`,[`$http`,`$q`,`$rootScope`,`$scope`,`Identity`,`Me`,`Notification`,function(e,t,n,r,i,a,o){var s=null,c,l=!1;r.isPrivate=a.isPrivate,d(),f();function u(e=[]){return l?t.resolve(e):(c=o.me({after:s,limit:20}).$promise.then(function(t){let n=[...e,...t.data];return s=t.paging.cursors.after,l=!s,n.length<20&&s?u(n):n}),c)}r.loadMore=function(){return r.infiniteScrollEnded?t.resolve():(c=c.then(function(e){return r.infiniteScrollEnded=l,r.activities=r.activities||[],r.activities=r.activities.concat(e),u()}),c)},u().then(r.loadMore).then(function(){r.activities.every(e=>!e.unread)||new o({unread:!1,lastReadOn:new Date().toISOString()}).$dismiss().then(function(){a.counters={...a.counters,unreadYouNotifications:0}})});function d(){e.get(`https://www.bandlab.com/api/v1.3/users/${a.id}/followers/count`).then(function({data:e}){r.followRequestCount=e.count})}function f(){i.getWarning({id:a.id}).$promise.then(function({userWarnings:e}){r.userWarnings=e,r.$applyAsync()})}r.handleClickMembershipWarning=function(e){let t={AndroidPaymentIssues:`GooglePlayStore`,ApplePaymentIssues:`AppleAppStore`,PaddlePaymentIssues:`Paddle`}[e.reasons[0]];e.viewedOn||Un.patch(`https://www.bandlab.com/api/v1.3/users/${a.id}/warnings/${e.id}`,{json:{ViewedOn:new Date().toISOString()}}).json().then(()=>{n.$broadcast(`membershipWarning:viewed`)}),X(zF,{paymentProvider:t,status:`GracePeriod`})},r.$on(`membershipWarning:viewed`,function(){f()})}]),angular.module(`bandlab.notification`).controller(`NotificationsDropdownCtrl`,[`$http`,`$rootScope`,`$scope`,`Identity`,`Invite`,`Me`,`Notification`,`Page`,function(e,t,n,r,i,a,o,s){n.isPrivate=a.isPrivate,c(),l(),o.me({limit:10}).$promise.then(function({data:e}){if(n.activities=e,n.activities.length===0?i.query({id:a.id,entity:`users`,types:`band;community;song`,limit:10}).$promise.then(function(e){n.invites=e.data}):n.invites=[],!(n.activities.every(e=>!e.unread)&&n.invites?.length===0))return new o({unread:!1,lastReadOn:new Date().toISOString()}).$dismiss()}).then(function(){a.counters={...a.counters,unreadYouNotifications:0},s.update()}),Promise.all([Ge(`notification tab`),Ge(`member tab`)]).then(function([e,t]){n.unviewedFromBandlabCards=e.filter(e=>!e.viewed),n.unviewedMembersHubCards=t.filter(e=>!e.viewed)});function c(){e.get(`https://www.bandlab.com/api/v1.3/users/${a.id}/followers/count`).then(function({data:e}){n.followRequestCount=e.count})}function l(){r.getWarning({id:a.id}).$promise.then(function({userWarnings:e}){n.userWarnings=e})}n.handleClickMembershipWarning=function(e){let n={AndroidPaymentIssues:`GooglePlayStore`,ApplePaymentIssues:`AppleAppStore`,PaddlePaymentIssues:`Paddle`}[e.reasons[0]];e.viewedOn||Un.patch(`https://www.bandlab.com/api/v1.3/users/${a.id}/warnings/${e.id}`,{json:{ViewedOn:new Date().toISOString()}}).json().then(()=>{t.$broadcast(`membershipWarning:viewed`)}),X(zF,{paymentProvider:n,status:`GracePeriod`})}}]),angular.module(`bandlab.notification`).controller(`NotificationsInvitesCtrl`,[`$q`,`$scope`,`$state`,`$stateParams`,`Invite`,`Me`,`Notification`,function(e,t,n,r,i,a,o){var s=null,c,l=!1;function u(){return l?e.resolve([]):(c=i.query({id:a.id,entity:`users`,types:`band;community;song`,after:s,limit:20}).$promise.then(function(e){return s=e.paging.cursors.after,l=!s,e.data}),c)}t.$on(`$user:relationChanged`,function(e,{type:n,user:r}){n===`block`&&(t.invites=t.invites.filter(function(e){return e.sender.id!==r.id}),t.invites.length<20&&!l&&t.loadMore())}),t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(c=c.then(function(e){return t.infiniteScrollEnded=l,t.invites=t.invites||[],t.invites=t.invites.concat(e),u()}),c)},u().then(t.loadMore).then(function(){n.includes(`notifications`)&&r.id&&i.get({id:r.id}).$promise.then(function(e){return i.update({id:e.id}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logBandJoin:t,logBandRequestAccept:n,logCommunityJoin:r}){e.type===`RequestToBand`?n({bandId:e.band.id}):e.type===`InviteToBand`?t({bandId:e.band.id}):e.community&&r()}),e}).then(function(e){var r=MS(t.invites,{id:e.id});r?r.accepted=!0:t.invites.unshift(e),n.go(`.`,{},{inherit:!1})}).catch(function(){n.go(`.`,{},{inherit:!1})})}).then(function(){t.invites.length!==0&&new o({type:`invites`,lastReadOn:new Date().toISOString()}).$dismiss().then(function(){a.counters={...a.counters,unreadInviteNotifications:0,bandInvites:0}})})}]),angular.module(`bandlab.notification`).component(`invitationCard`,{bindings:{band:`=`,inviteId:`<`},templateUrl:`https://www.bandlab.com/web-app/notification/partials/_invitation-card-35d1086e2.html`,controller:[`Invite`,function(e){let t=this;
345t.$onInit=function(){t.inviteId&&e.get({id:t.inviteId}).$promise.then(function(e){t.invite=e})}}],controllerAs:`vm`}),angular.module(`bandlab.notification`).component(`notificationActivityTile`,{bindings:{activity:`<`},templateUrl:`https://www.bandlab.com/web-app/notification/partials/_notification-activity-tile-708d7af78.html`,controller:[`$injector`,`$location`,`$rootScope`,`Me`,function(e,t,n,r){var i=this;i.$onInit=a,i.openObject=c,i.me=r;function a(){i.iconAvatar=o(i.activity),i.previewAction=s(i.activity)}function o(e){switch(e.object.type){case`TrackAiVideo`:return e.object.metadata.success===`true`?`generate-ai`:`info`;default:return null}}function s(t){switch(t.object.type){case`TrackAiVideo`:return()=>ff(e,t);default:return null}}function c(r,i){if(!r.target.closest(`a`)){if(i.object.type===`TrackAiVideo`)return ff(e,i);t.url(i.url),i.object.type===`Post`&&i.object.nestedEntityId?n.$broadcast(`$comment:highlight`,i.object.nestedEntityId):i.object.type===`Reply`&&i.object.subNestedEntityId&&n.$broadcast(`$comment:highlight`,i.object.subNestedEntityId)}}}],controllerAs:`vm`}),angular.module(`bandlab.notification`).component(`notificationInviteTile`,{bindings:{invite:`<`},templateUrl:`https://www.bandlab.com/web-app/notification/partials/_notification-invite-tile-2dacee4db.html`,controller:`InviteCtrl`,controllerAs:`vm`}),angular.module(`bandlab.notification`).directive(`notificationMembersHubTile`,[`$state`,function(e){return{replace:!0,restrict:`E`,scope:{unviewedCards:`<`},template:`<div></div>`,link:function(t,n){$(import(`./DW0TVmz0.js`),n[0],t,{$state:e},{unviewedCards:t.unviewedCards})}}}]),angular.module(`bandlab.notification`).directive(`notificationFromBandlabTile`,[`$state`,function(e){return{replace:!0,restrict:`E`,scope:{unviewedCards:`<`},template:`<div></div>`,link:function(t,n){$(import(`./Hn40bY7c.js`),n[0],t,{$state:e},{unviewedCards:t.unviewedCards})}}}]),angular.module(`bandlab.notification`).factory(`Notification`,[`$http`,`$resource`,`$state`,`Me`,function(e,t,n,r){var i=`https://www.bandlab.com/api/v1.3/users/${r.id}/notifications`;function a(e,t,r){return r===200&&e.data.forEach(function(e){e.url=o(e),e.message=`${e.message.replace(/<from>(.*)<\/from>/,`<a href="${n.href(`user.feed`,{username:e.from.username})}"><span>$1</span></a>`).replace(/<object>(.*)<\/object>/,`<a href="${e.url}"><span>$1</span></a>`)}`}),e}function o(e){switch(e.object.type){case`Album`:return n.href(`albumId`,{id:e.object.id,commentId:e.object.nestedEntityId});case`AlbumReply`:return n.href(`albumId`,{id:e.object.id,commentId:e.object.nestedEntityId,replyId:e.object.subNestedEntityId});case`Collection`:case`Playlist`:return n.href(`collectionId`,{id:e.object.id});case`Community`:return n.href(`communityId`,{id:e.object.id});case`Band`:return n.href(`bandId`,{id:e.object.id});case`Post`:return n.href(`post`,{id:e.object.id,commentId:e.object.nestedEntityId,replyId:null});case`Song`:return n.href(`songId`,{id:e.object.id});case`Reply`:return n.href(`post`,{id:e.object.id,commentId:e.object.nestedEntityId,replyId:e.object.subNestedEntityId});case`Revision`:return n.href(`revisionId`,{id:e.object.id});case`User`:return e.object.id===r.id?n.href(`userId`,{id:e.from.id}):n.href(`userId`,{id:e.object.id});case`TrackAiVideo`:return n.href(`track`,{id:e.object.nestedEntityId});default:return n.href(`userId`,{id:e.from.id})}}return t(i,{},{me:{method:`GET`,cache:!1,params:{limit:10},preservePagination:!0,url:i,transformResponse:[...e.defaults.transformResponse,a]},dismiss:{method:`PATCH`,params:{type:`@type`},url:`${i}/:type`}})}]),angular.module(`bandlab.opportunities`,[]),angular.module(`bandlab.opportunities.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`opportunitiesTerms`,{url:`/opportunities/promoters/terms-and-conditions?success`,templateUrl:`https://www.bandlab.com/web-app/opportunities/views/opportunities-terms-and-conditions-937623861.html`,resolve:{script:function(){return Re(`//na3.docusign.net/clickapi/sdk/latest/docusign-click.js`)}},controller:[`$scope`,`$state`,`$stateParams`,function(e,t,n){e.changeSuccess=!!n.success,e.onSubmit=function(){window.location.href=`https://na3.docusign.net/clickapi/v1/accounts/3778278b-24ac-40c6-9746-eefee6b00aca/clickwraps/f8f8a254-8c17-447e-8d4a-9373bceb02c5/view?client_user_id=${e.user.email} ${new Intl.DateTimeFormat(`en-US`).format(e.user.date)}&return_url=${t.href(`.`,{success:!0},{absolute:!0})}`}}]}).state(`opportunitiesLandingPage`,{url:`/opportunities`,template:`<div></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controller:[`$element`,`$injector`,`$scope`,`$state`,`authService`,`Me`,function(e,t,n,r,i,a){$(import(`./ouucUGi2.js`),e[0].querySelector(`div`),n,{$injector:t,authService:i,state:r,Me:a},{})}]}).state(`opportunities`,{url:`/opportunities`,abstract:!0,templateUrl:`https://www.bandlab.com/web-app/opportunities/views/opportunities-layout-cb131c9d0.html`,controller:`OpportunitiesCtrl`}).state(`opportunities.list`,{url:`/list?types&q&genres&sort`,templateUrl:`https://www.bandlab.com/web-app/opportunities/views/opportunities-list-41f9678a6.html`,controller:`OpportunitiesListCtrl`}).state(`opportunitiesSubmission`,{url:`/opportunities/campaign/{id:[0-9-_]+}?content_id`,resolve:{selectedCampaign:[`$state`,`$stateParams`,`Opportunities`,function(e,t,n){let{id:r}=t;return n.getById({opportunityId:r}).$promise.then(Ah).catch(()=>e.go(`404`))}]},redirectTo:function(e){if(o()&&!e.params().content_id)return{state:`opportunitiesSubmission`,params:{id:e.params().id,content_id:e.params().id}}},onEnter:[`Page`,`selectedCampaign`,function(e,t){let n=document.createElement(`div`);n.innerHTML=t.description||t.instructions;let r=n.querySelector(`p`)||n,i=t.picture?.startsWith(`//`)?`https:${t.picture}`:t.picture;e.setMetadata({title:`${t.name} | BandLab Opportunities`,description:r.innerText,image:i})}],onExit:[`Page`,function(e){e.clearMetadata()}],templateUrl:`https://www.bandlab.com/web-app/opportunities/views/opportunities-submission-423b5d391.html`,controller:`OpportunitySelectionCtrl`})}]);const BF={exclusive:{label:`BandLab Platform`,variants:[`exclusive`]},live:{label:`Live`,variants:[`festival`,`showcase`,`gig`,`venue`,`tour_slot`]},publication:{label:`Publication`,variants:[`publication`]},radioplay:{label:`Radio Play`,variants:[`radio_play`,`college_radio_play`]},licensing:{label:`Licensing`,variants:[`licensing`]},conference:{label:`Conference`,variants:[`conference`]},recordlabel:{label:`Record Label`,variants:[`record_label`]},professionalservices:{label:`Professional Services`,variants:[`professional_services`]},other:{label:`Other`,variants:[`other`,`award_shows`,`contest_giveaway`,`songwriting_competition`,`tv_performance`,`video_play`,`talent_pool`]}},VF={alternative:{label:`Alternative`},ambient:{label:`Ambient`},americana:{label:`Americana`},bluegrass:{label:`Bluegrass`},blues:{label:`Blues`},bollywoodtollywood:{label:`Bollywood/Tollywood`},celtic:{label:`Celtic`}
345,childrens:{label:`Childrens`},christianrock:{label:`Christian Rock`},christiangospel:{label:`Christian/Gospel`},classical:{label:`Classical`},comedy:{label:`Comedy`},country:{label:`Country`},dj:{label:`DJ`},dance:{label:`Dance`},dubstep:{label:`Dubstep`},edm:{label:`EDM`},electronica:{label:`Electronica`},experimental:{label:`Experimental`},folk:{label:`Folk`},funk:{label:`Funk`},grime:{label:`Grime`},hiphop:{label:`Hip Hop`},holiday:{label:`Holiday`},house:{label:`House`},indie:{label:`Indie`},instrumental:{label:`Instrumental`},jam:{label:`Jam`},jazz:{label:`Jazz`},latin:{label:`Latin`},metal:{label:`Metal`},other:{label:`Other`},pop:{label:`Pop`},punk:{label:`Punk`},rnbsoul:{label:`R&B & Soul`},rap:{label:`Rap`},reggae:{label:`Reggae`},rock:{label:`Rock`},rockabilly:{label:`Rockabilly`},singersongwriter:{label:`Singer Songwriter`},ska:{label:`Ska`},spiritual:{label:`Spiritual`},spokenword:{label:`Spoken Word`},world:{label:`World`}};function HF(e,t){return[].concat(e).some(e=>e===t)}angular.module(`bandlab.opportunities`).factory(`ListCache`,function(){return{save:e,get:t,invalidate:n};function e(e){Y.setItem(`listParams`,JSON.stringify(e))}function t(){return JSON.parse(Y.getItem(`listParams`))}function n(){Y.removeItem(`listParams`)}}).controller(`OpportunitiesCtrl`,[`$scope`,`$state`,`$stateParams`,`$timeout`,`Me`,function(e,t,n,r,i){e.loading=!1,e.search=``,e.searchIsActive=!1,e.typeIsActive=!0,e.genreIsActive=!!n.genres,e.isAnonymous=i.isAnonymous(),e.isTypesChecked=!1,e.isGenresChecked=!1;let{availableFeaturesSet:a,membership:o}=qn(e,i);e.availableFeaturesSet=a,e.isTrial=o.isTrial,e.search=n.q,e.opTypes=Object.keys(BF).map(e=>({label:BF[e].label,checked:HF(n.types,e)})),e.opGenres=Object.keys(VF).map(e=>({label:VF[e].label,checked:HF(n.genres,e)})),e.resetFilter=function(t){switch(t){case`types`:c(e.opTypes);break;case`genres`:c(e.opGenres);break;default:c(e.opTypes),c(e.opGenres),e.search=``}},e.setLoadingState=function(t){e.loading=t,t||(e.searchIsActive=t)};let s=Fa(function(){d()},500);e.$watch(`search`,function(t,n){t!==n&&(e.searchIsActive=!0,s())},!0),e.$watch(`typeIsActive`,function(){l(`types`,e.typeIsActive)}),e.$watch(`genreIsActive`,function(){l(`genres`,e.genreIsActive)}),e.$watch(`opTypes`,function(){e.isTypesChecked=e.opTypes.filter(e=>e.checked).length,d()},!0),e.$watch(`opGenres`,function(){e.isGenresChecked=e.opGenres.filter(e=>e.checked).length,d()},!0);function c(e){e.forEach(e=>{e.checked=!1})}function l(e,t){r(()=>{let n=document.querySelector(`.opportunities-slide-${e}`).scrollHeight;document.querySelector(`.opportunities-slide-${e}-container`).style.height=`${t?n:0}px`})}function u(e,t){return t.filter(e=>e.checked).map(t=>Object.keys(e).filter(n=>e[n].label===t.label)[0])}function d(){let n=u(BF,e.opTypes),r=u(VF,e.opGenres);return t.go(`opportunities.list`,{types:n.length?n:null,genres:r.length?r:null,q:e.search?e.search:null},{location:`replace`})}}]).controller(`OpportunitiesListCtrl`,[`$scope`,`$stateParams`,`$timeout`,`$transition$`,`$window`,`ListCache`,`Me`,`Opportunities`,`User`,function(e,t,n,r,i,a,s,c,l){e.hasWebviewCookie=o,e.submittedList=[];let u={...t};(function(){u.types=t.types&&[].concat(t.types).flatMap(h),Object.keys(u).map(e=>!u[e]&&delete u[e])})();function d(){return l.getSubmissionsList({userId:s.id}).$promise}function f(t){let n=e.submittedList.findIndex(e=>e.opportunityId===t.id);return n===-1?t:{...t,submitted:!0,submittedAt:new Date(e.submittedList[n].submittedOn).toLocaleDateString(`en`,{month:`long`,day:`numeric`})}}function p(){return{search:t.q,types:t.types&&[].concat(t.types).join(`;`),genres:t.genres&&[].concat(t.genres).join(`;`),sort:{submission_ends_at:`endingsoon`,event_start_on:`eventdate`,offered_at:`recentlyadded`}[t.sort]}}function m(){return c.getList(p()).$promise.catch(()=>[])}function h(e){let t=Object.keys(BF).filter(t=>t===e)[0];return t?BF[t].variants:``}e.parseOpportunityTypeLabel=Ph,e.cacheParams=function(){a.save({queryParams:u,hash:i.pageYOffset})},r.from().name!==`opportunitiesSubmission`&&a.invalidate(),e.setLoadingState(!0),Promise.allSettled([s.isAnonymous()?[]:d(),m()]).then(([t,n=[]])=>{e.$applyAsync(),e.setLoadingState(!1),e.submittedList=t.value&&[...t.value]||[],e.opportunities=n.value.map(f)}).finally(()=>
345{if(a.get()){let e=a.get();if(e.queryParams.page&&(u.page=e.queryParams.page),Vn(u,e.queryParams)){n(function(){i.scrollTo({top:e.hash,behavior:`smooth`})}),a.invalidate();return}delete u.page,a.invalidate()}})}]).controller(`OpportunitySelectionCtrl`,[`$http`,`$injector`,`$scope`,`$state`,`$stateParams`,`appActions`,`AppNotifications`,`ListCache`,`Me`,`selectedCampaign`,`User`,function(e,t,n,r,i,a,s,c,l,u,d){let{id:f}=i,{startPurchaseFlow:p}=Oh(t,n);n.campaignId=f,n.isMobile=bn,n.isAnonymous=l.isAnonymous(),n.campaign=u,n.isCollapsable=_(n.campaign);let{getUserMembership:m,availableFeaturesSet:h}=Kn(l);n.availableFeaturesSet=h,(async function(){n.pageInit=!0,l.isAnonymous()||await Promise.all([m(l.id),d.getOpportunitiesStatus({userId:l.id}),g(n.campaign)]).then(([e,t])=>{n.membership=e,n.opportunitiesStatus=t}),n.isMembershipServiceDown=!n.membership&&!l.isAnonymous(),n.isTrial=n.membership?.isTrial,n.trialSubmissionRemaining=n.isTrial&&h.value.has(`opportunities`)?n.opportunitiesStatus.featureAccess?.remainingSubmissions:null,n.shouldLoadTrialSubmissionsAlert=!l.isAnonymous()&&n.isTrial&&h.value.has(`opportunities`),n.pageInit=!1,n.$applyAsync()})(),n.parseOpportunityTypeLabel=Ph,n.goToFilteredList=function(e){let t=``;switch(e){case`Contest/Giveaway`:t=`contest_giveaway`;break;case`Talent Pool/Auditions`:t=`talent_pool`;break;default:t=e.toLowerCase().replaceAll(` `,`_`)}let n=Object.keys(BF).find(e=>BF[e].variants.includes(t));return r.go(`opportunities.list`,{types:[n]})};function g(e){return d.checkSubmissionState({userId:l.id,opportunityId:e.id}).$promise.then(({isSubmitted:t})=>{n.campaign={...e,submitted:t}}).catch(()=>{n.campaign=e})}function _(e={}){let{instructions:t=``,aboutPromoter:n}=e;return t.concat(n).replace(/<[^>]*>/g,``).split(` `).length>70}function v(){c.invalidate()}function y(){Promise.all([import(`./BWvciV-z.js`).then(e=>e.t),import(`./DNnIhUw8.js`).then(e=>e.t),import(`./DHI6ZMoS.js`).then(e=>e.t)]).then(([{logEvent:e},{logCustomEvent:t},{logEvent:r}])=>{e(`opportunities_submit_success`,{opportunity_id:f,opportunity_name:n.campaign.name}),t(`opportunities_submit_success`,{opportunity_id:f,opportunity_name:n.campaign.name}),r(`opportunities_submit_success`,{opportunity_id:f,opportunity_name:n.campaign.name})})}n.onTrialSubmissionsAlertMounted=function(){n.isTrialSubmissionsAlertMounted=!0},n.expandAccordion=function(e){e.preventDefault(),n.isExpanded=!0},n.subscribe=function(){if(n.isMembershipServiceDown){s.addNotification({title:`Membership service is down. Please try again later`,classList:`warning`,autoclose:5e3});return}if(o()){p(`opportunities`,`artist_services`,i.content_id);return}a.checkAllowed(`submitToOpportunity`,{toState:`opportunitiesSubmission`,toParams:i},{title:`Sign up to subscribe`})&&n.showPaywallModal()},n.submitTriggered=function(t){t.preventDefault(),n.sendingSubmission=!0;function r(){return e.get(`https://www.bandlab.com/api/v1.3/users/${l.id}`).then(({data:e})=>e).catch(()=>{})}function i(e){return[{title:`Profile picture`,isFilled:!e.picture.isDefault},{title:`About`,isFilled:e.about?.length>0},{title:`Links`,isFilled:e.links&&Object.keys(e.links).length>0},{title:`Inspired by`,isFilled:e.inspiredBy&&e.inspiredBy.length>0},{title:`Talents`,isFilled:e.skills&&e.skills.length>0},{title:`Favorite genres`,isFilled:e.genres&&e.genres.length>0}]}function a(e){return e.every(e=>e.isFilled===!0)}n.submitSubmission=function(e,t){n.sendingSubmission=!0,d.submitOpportunity({id:l.id,opportunityId:f,topStreamedSongLink:e,topViewedMusicVideoLink:t}).$promise.then(()=>{v(),n.campaign.submitted=!0,n.openSubmissionModal(),y()}).catch(e=>{kh(s,e)}).finally(()=>{n.sendingSubmission=!1})},n.retrievingUserInfo=!0,r().then(e=>{if(e.isPrivate){s.addNotification({title:`Your Account is Private`,classList:`alert`,autoclose:5e3});return}let t=i(e);a(t)?n.openSupportingLinksModal():Promise.all([import(`./BtGWGV6-.js`),import(`./BUIA2SYS.js`).then(e=>e.t)]).then(function([{default:e},{createModal:n}]){n(e,{requirements:t})})}).finally(function(){n.retrievingUserInfo=!1,n.sendingSubmission=!1})},n.openSupportingLinksModal=function(){Promise.all([import(`./c7WH0dIk.js`),import(`./BUIA2SYS.js`).then(e=>e.t)]).then(function([{default:e},{createModal:t}]){t(e,{submitOpportunity:(e,t)=>{n.submitSubmission(e,t)}})})},n.openSubmissionModal=function(){Promise.all([import(`./BdN2EDWU.js`),import(`./BUIA2SYS.js`).then(e=>e.t)]).then(function([{default:e},{createModal:t}]){t(e,{campaign:n.campaign||{}})})},n.showPaywallModal=function(){ai({contentId:f,productAttribution:`opportunities`,productAttributionGroup:`artist_services`})}}]).directive(`opportunitiesTrialSubmissionsAlertWrapper`,[`$injector`,`Me`,`User`,function(e,t,n){return{scope:{onMounted:`=`},link:function(r,i){n.getOpportunitiesStatus({userId:t.id}).$promise.then(t=>{let n=h({noOfSubmissionsRemaining:t.featureAccess.remainingSubmissions,maxTrialSubmissions:t.featureAccess.maxTrialSubmissions});$(import(`./DnOhSSgr.js`).then(function(e){return r.$applyAsync(),e}),i[0],r,{scope:r,$injector:e},n).then(function(e){e&&angular.isFunction(r.onMounted)&&r.onMounted()})}).catch(()=>{})}}}]).directive(`opportunitiesEducateAlertWrapper`,[`$injector`,function(e){return{scope:{isSubmissionPage:`=`},link:function(t,n){let r=h({isSubmissionPage:t.isSubmissionPage});$(import(`./CbUScngY.js`).then(function(e){return t.$applyAsync(),e}),n[0],t,{scope:t,$injector:e},r)}}}]),angular.module(`bandlab.opportunities`).controller(`SubmissionPageThemeCtrl`,jh),angular.module(`bandlab.opportunities`).component(`opportunitiesCarou
345sel`,{controller:[`$scope`,`$element`,function(e,t){let n=this;n.$onInit=function(){$(import(`./C8xv4z-D.js`),t[0],e)}}]}),angular.module(`bandlab.opportunities`).directive(`opportunitiesFilters`,function(){return{replace:!0,templateUrl:`https://www.bandlab.com/web-app/opportunities/partials/_opportunities-filters-f6f0e9fd6.html`}}),angular.module(`bandlab.opportunities`).component(`suggestedOpportunities`,{bindings:{id:`=`},controller:[`$scope`,`$element`,`$injector`,function(e,t,n){let r=this;r.$onInit=function(){$(import(`./Cr09R4hD.js`),t[0],e,{$injector:n},{id:r.id})}}]}),angular.module(`bandlab.opportunities`).filter(`dateRange`,function(){let e=new Intl.DateTimeFormat(`en-US`,{day:`numeric`,month:`long`,year:`numeric`,timeZone:`UTC`});return function(t){let n=Date.parse(t.eventStartsOn),r=Date.parse(t.eventEndsOn||t.eventStartsOn);return n&&r?e.formatRange(new Date(n),new Date(r)):``}}),angular.module(`bandlab.opportunities`).filter(`daysLeftToSubmit`,function(){return Nh}),angular.module(`bandlab.opportunities`).filter(`setLocationString`,function(){return function(e){if(angular.isString(e))return e||`Online`;if(e?.city){let t=e.city;return e?.state&&(t=`${t}, ${e.state}`),e?.country&&(t=`${t}, ${e.country}`),t}return`Online`}}),angular.module(`bandlab.opportunities`).factory(`Opportunities`,[`$resource`,function(e){var t=`https://www.bandlab.com/api/v1.3/opportunities`;return e(t,{},{getList:{method:`GET`,params:{search:`@search`,genres:`@genres`,types:`@types`,sort:`@sort`},isArray:!0,url:t},getById:{method:`GET`,params:{opportunityId:`@opportunityId`},url:`${t}/:opportunityId`}})}]),angular.module(`bandlab.pages`,[]),angular.module(`bandlab.pages`).component(`trackHighlightTile`,{bindings:{currentTime:`<`,post:`<`,revision:`<`},templateUrl:`https://www.bandlab.com/web-app/pages/partials/_track-highlight-tile-7c74c6006.html`,controller:[`$element`,function(e){let t=this;t.$onInit=n;function n(){t.revision.post=t.post,NT(e[0],t.revision.song.picture.color)}}],controllerAs:`vm`}),angular.module(`bandlab.payment`,[]);function UF(e){let t=e.get(`AppNotifications`),n=e.get(`Me`),r=O(!1),{membership:i}=Kn(n);return{isCheckoutLoading:r,createMembershipCheckoutIntent:a,goToMembershipCheckout:s,openMembershipCheckoutModal:o};async function a(e,t,n,r,a,o,s,c,u,d,f){let p=l(e);if(p===`stripe`)return Td(`membership`,p,{billingInterval:t,plan:e,isTrial:!1,marketingSource:s,productAttribution:n,productAttributionGroup:r,platformSource:c,promoCampaign:u&&u!==`none`?u:void 0,promoCode:a,referrerId:o,purchaselyParams:f}).then(function(e){return{...e,paymentIntentProvider:p}});let m=$n[e],h=a&&[`blaffiliate`,`blaffiliate_annual`,`blaffiliate_month`].includes(a);a=h?a:a?.replace(/[^a-z0-9]+/gi,``)??null;let g=!a||h,_,v,y;if(d!==void 0)y=d&&i.isTrialAllowed&&!nr(i),_=t===`Year`&&y,v=t===`Month`&&y&&!_;else{let e=await ci(n),r=await li(e,i);_=r.hasAnnualTrial,v=r.hasMonthlyTrial,y=t===`Year`?_:t===`Month`&&m!==`premium`&&v}let b;if(g&&u)b=u===`none`?void 0:u;else if(g&&!u){let e=await oi();e&&await si(e)&&(b=fi(e,{tier:m,hasAnnualTrial:_,hasMonthlyTrial:v})?.billingIntervals?.find(e=>e.value===t)?.promoCode)}return Td(`membership`,p,{plan:e,billingInterval:t,isTrial:y,marketingSource:s,productAttribution:n,productAttributionGroup:r,promoCampaign:b,promoCode:a,referrerId:o,platformSource:c,purchaselyParams:f}).then(function(e){return{...e,paymentIntentProvider:p}})}function o(n,o,s,u,d,f,p,m,h,g,_,v,y,b){if(i.billingIssue===`OnHold`)return c(),Promise.reject(Error(`You already have an existing membership subscription on ${i.paymentProvider} that is on hold due to payment issues.`));if(l(n)===`stripe`)return new Promise(t=>{let r=e.get(`$state`),i=encodeURIComponent(JSON.stringify({name:r.current.name,params:r.params}));r.go(`checkout`,{plan:$n[n],frequency:rr[o],product:`membership`,productAttribution:s,productAttributionGroup:u,promoCode:p,redirectUrl:y??i,redirectCancelUrl:b??y??i,source:m,triggeredFrom:h,referrerId:g}),t(null)});r.value=!0;let x=J(()=>import(`./DqthGvaN.js`).then(e=>e.n));return v?new Promise(e=>{X(x,{onCancel:f,onSuccess:d,onPaymentSuccess:_,checkoutProps:{frequency:rr[o],plan:$n[n],product:`membership-plan-change`,productAttribution:s,productAttributionGroup:u,source:m,triggeredFrom:h}},{escapeClose:!1}),e(null)}):a(n,o,s,u,p,g,m).then(e=>{let{id:t,paymentIntentProvider:n}=e;return X(x,{onCancel:f,onSuccess:d,onPaymentSuccess:_,checkoutProps:{paymentIntentId:t,paymentIntentProvider:n,productAttribution:s,productAttributionGroup:u,product:`membership`,source:m,triggeredFrom:h}},{escapeClose:!1})}).catch(e=>{throw import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCheckoutPaymentError:t}){t(Qn(n,o),`${`payment_intent_creation_fail_http_${e.errorCode}`}: ${e.message||e.error?.message||(typeof e==`string`?e:JSON.stringify(e))}`,`checkout_open`,``,s)}),t.addNotification({title:e.message,classList:`alert`,autoclose:8e3}),e}).finally(()=>{r.value=!1})}function s(n,o,s,u,d,f,p,m,h,g,_,v){return i.billingIssue===`OnHold`?(c(),Promise.reject(Error(`You already have an existing membership subscription on ${i.paymentProvider} that is on hold due to payment issues.`))):_?new Promise(t=>{let r=e.get(`$state`),i=o?{Month:`monthly`,Year:`yearly`,Day:`daily`}[o]:void 0;r.go(`checkout`,{plan:n.toLowerCase(),frequency:i,product:`membership`,productAttribution:s,productAttributionGroup:u,redirectUrl:f,redirectCancelUrl:p,source:m,triggeredFrom:h,referrerId:g,action:_,skipMembershipOnboarding:v}),t(null)}):l(n)===`stripe`?new Promise(t=>{e.get(`$state`).go(`checkout`,{plan:$n[n],frequency:o?rr[o]:void 0,product:`membership`,productAttribution:s,productAttributionGroup:u,promoCode:d,redirectUrl:f,redirectCancelUrl:p,source:m,triggeredFrom:h,referrerId:g,skipMembershipOnboarding:v}),t(null)}
345):(r.value=!0,a(n,o??`Year`,s,u,d,g,m).then(({id:t,paymentIntentProvider:n,productId:r})=>{e.get(`$state`).go(`checkout`,{paymentIntentId:t,paymentIntentProvider:n,productId:r,product:`membership`,productAttribution:s,productAttributionGroup:u,redirectUrl:f,redirectCancelUrl:p,source:m,triggeredFrom:h,referrerId:g})}).catch(e=>{throw import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCheckoutPaymentError:t}){t(Qn(n,o),`${`payment_intent_creation_fail_http_${e.errorCode}`}: ${e.message||e.error?.message||(typeof e==`string`?e:JSON.stringify(e))}`,`checkout_open`,``,s)}),t.addNotification({title:e.message,classList:`alert`,autoclose:8e3}),e}).finally(()=>{r.value=!1}))}function c(){let e=J(()=>Promise.resolve().then(()=>RF));X(e,{paymentProvider:i.paymentProvider,status:i.billingIssue})}function l(e){return e===`AdFree`?`stripe`:`paddle-billing`}}function WF(e){return We({product_id:e.productId,content_id:e.contentId,product_attribution:e.productAttribution,product_attribution_group:e.productAttributionGroup,source:e.source,platform_source:e.platformSource,triggered_from:e.triggeredFrom,triggered_from_component:e.triggeredFromComponent,purchasely_screen_id:e.purchaselyParams?.screenId,purchasely_abtest_id:e.purchaselyParams?.abTestId,purchasely_abtest_variant_id:e.purchaselyParams?.abTestVariantId,purchasely_campaign_id:e.purchaselyParams?.campaignId,purchasely_audience_id:e.purchaselyParams?.audienceId,purchasely_flow_id:e.purchaselyParams?.flowId})}function GF(e){let t={screenId:e.purchaselyScreenId||void 0,abTestId:e.purchaselyAbTestId||void 0,abTestVariantId:e.purchaselyAbTestVariantId||void 0,campaignId:e.purchaselyCampaignId||void 0,audienceId:e.purchaselyAudienceId||void 0,flowId:e.purchaselyFlowId||void 0};return Object.values(t).some(Boolean)?t:void 0}function KF(e){return{productAttribution:e.productAttribution??(e.source?`deeplink`:`home`),productAttributionGroup:e.productAttributionGroup??(e.source?`marketing`:`misc`)}}function qF(e,t){import(`./BWvciV-z.js`).then(e=>e.t).then(function({logEvent:n}){n(e,t)}),import(`./DHI6ZMoS.js`).then(e=>e.t).then(function({logEvent:n}){n(e,t)}),import(`./DNnIhUw8.js`).then(e=>e.t).then(function({logCustomEvent:n}){n(e,t)}),fbq(`track`,`Purchase`,{contents:{id:t.product_id,quantity:1}}),gtag(`event`,`conversion`,{...t,name:e,send_to:`AW-876226372`}),(window.rdt||(()=>{}))(`track`,`Purchase`,{products:[{id:t.product_id}]})}function JF(e,{isTrial:t,branchAlias:n}={}){import(`./DQhIDnCU.js`).then(e=>e.t).then(function({logEvent:r}){r(t?`START_TRIAL`:`PURCHASE`,e,null,n)}),qF(`payments_membership_activation`,e)}const YF={AdFree:{Day:`Daily Ad-free Membership Purchase`,Month:`Monthly Ad-free Membership Purchase`,Year:`Annual Ad-free Membership Purchase`},Basic:{Day:`Daily Pro Membership Purchase`,Month:`Monthly Pro Membership Purchase`,Year:`Annual Pro Membership Purchase`},Premium:{Day:`Daily Max Membership Purchase`,Month:`Monthly Max Membership Purchase`,Year:`Annual Max Membership Purchase`}};function XF(e,t){return e===`Free`?void 0:YF[e][t]}angular.module(`bandlab.payment`).controller(`CheckoutCtrl`,[`$element`,`$injector`,`$scope`,`$state`,`$stateParams`,`$transitions`,`AppNotifications`,function(e,t,n,r,i,a,s){if(r.current.name===`checkout.stripe`)return;let c=[`checkout.summary`,`checkout.payment`,`checkout.complete`],l=o(),u=GF(i),d=di({$state:r,isWebview:l}),f=i.productAttribution,p=i.productAttributionGroup;if(i.product===`membership`&&({productAttribution:f,productAttributionGroup:p}=KF(i)),i.product===`membership`&&!(i.paymentIntentId||i.action)){let{createMembershipCheckoutIntent:e}=UF(t),n=er[i.plan]||`Basic`,a=tr[i.frequency]||`Year`,o=i.trial===`true`||i.trial!==`false`&&void 0;e(n,a,f,p,i.promoCode,i.referrerId,i.source,i.platformSource,i.promoCampaign,o,u).then(function({id:e,paymentIntentId:t,paymentIntentProvider:n,productId:i}){let a=t||e;Object.assign(g,{paymentIntentId:a,paymentIntentProvider:n}),r.go(`checkout.summary`,{paymentIntentId:a,paymentIntentProvider:n,productId:i})}).catch(function(e){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCheckoutPaymentError:t}){t(Qn(n,a),`${`payment_intent_creation_fail_http_${e.errorCode}`}: ${e.message||e.error?.message||(typeof e==`string`?e:JSON.stringify(e))}`,`checkout_open`,``,f)}),s.addNotification({autoclose:8e3,title:`Unable to proceed with payment`,content:e.message,classList:`alert`}),l?setTimeout(v,8e3):v()})}function m(e){let t=c.indexOf(e);return i.variant===`express`&&t===0?1:t}
345let g=h({initStep:m(r.current.name),onCancel:v,onChangeStep:y,onSuccess:b,contentId:i.contentId,product:i.product===`booster`?`boost`:i.product,productAttribution:f,productAttributionGroup:p,promoCode:i.promoCode,platformSource:i.platformSource,purchaselyParams:u,showWebviewTopbar:i.showWebviewTopbar===`true`,source:i.source,triggeredFrom:i.triggeredFrom,triggeredFromComponent:i.triggeredFromComponent,variant:i.variant,paymentIntentId:i.paymentIntentId,paymentIntentProvider:i.paymentIntentProvider,...i.product===`membership-plan-change`||i.action===`plan-change`?{plan:i.plan,frequency:i.frequency}:{}}),_=a.onSuccess({},function(e){g.initStep=m(e.to().name)});$(import(`./DFmil6KT.js`).then(e=>e.t),e[0],n,{$injector:t},g),n.$on(`$destroy`,function(){_()});function v(){d(i.redirectCancelUrl)}function y(e){r.go(c[e])}function b(){d(i.redirectUrl)}}]),angular.module(`bandlab.payment`).component(`adMaterials`,{bindings:{placement:`=`},templateUrl:`https://www.bandlab.com/web-app/payment/partials/_ad-materials-f2aff5157.html`,controller:[`$element`,`$scope`,function(e,t){let n=this;n.$onInit=function(){e[0].style.display=`none`,as(n.placement).then(function({ads:r}){if(r.length===0)return e.remove();e[0].style.display=``,n.ads=r,t.$applyAsync()})}}],controllerAs:`vm`}),angular.module(`bandlab.payment`).directive(`boostPostButton`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{buttonSize:`@`,post:`=`,triggeredFrom:`<`},link:function(t,n){$(import(`./BGCWUhM2.js`),n[0],t,{$injector:e},{buttonSize:t.buttonSize,post:t.post,triggeredFrom:t.triggeredFrom})}}}]),angular.module(`bandlab.payment`).directive(`googleAdMaterial`,[`$injector`,`Me`,function(e,t){return{restrict:`E`,replace:!0,scope:{sizes:`=`,targeting:`=`},link:function(n,r){if(r[0].offsetParent===null){r.remove();return}let{availableFeaturesSet:i}=qn(n,t);if(r.addClass(`google-ad-material-container`),bn||i.value.has(`ad-free-experience`)){r.remove();return}$(import(`./C2ACSUmD.js`),r[0],n,{$injector:e},{sizes:n.sizes,targeting:n.targeting})}}}]),angular.module(`bandlab.payment`).directive(`tipaltiAccount`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{account:`=`},link:function(t,n){$(import(`./DR-8WGLh.js`),n[0],t,{$injector:e},{account:t.account})}}}]),angular.module(`bandlab.payment`).directive(`tipaltiAccountRequiredAlert`,[`$injector`,`$state`,`Me`,function(e,t,n){return{restrict:`E`,replace:!0,link:function(r,i){$(import(`./CGUuj4_j.js`),i[0],r,{$injector:e,$state:t,Me:n},{})}}}]);const ZF={class:`tipalti-modal`},QF={class:`tipalti-modal-header`},$F={class:`tipalti-modal-title`},eI=[`src`],tI=J(()=>import(`./EgrCc4pB.js`).then(e=>e.n)),nI={__name:`TipaltiSetupModal`,props:{redirectUrl:{type:String,default:null},redirectName:{type:String,default:`settings.payments`},redirectParams:{type:Object,default:null},skipCallbackRedirection:{type:Boolean,default:!1}},emits:[`closeModal`],setup(e,{expose:t}){let n=e,r=ne(`$injector`),i=r.get(`Me`),a=r.get(`$state`),o=O(null),s=O(null),c=O(!1),l=O(null);u(),re(s,()=>{s.value&&(s.value.onload=d)}),t({container:o,iframe:s,isReady:c,tipaltiUrl:l});function u(){let e=null;(n.redirectName||n.redirectUrl)&&!n.skipCallbackRedirection&&(e=a.href(`updateTipaltiAccount`,{redirect:encodeURIComponent(JSON.stringify({name:n.redirectName,params:n.redirectParams}))},{absolute:!0})),import(`./BT0X5vPC.js`).then(e=>e.t).then(function({getTipaltiFrameUrl:t}){return e?t(i.id,encodeURIComponent(e)):t(i.id)}).then(function({url:e}){l.value=e})}function d(){c.value=!0}return(e,t)=>(F(),G(`aside`,ZF,[K(`header`,QF,[K(`h2`,$F,y(`Connect Tipalti`),1),q(Pa,{onClick:t[0]||=t=>e.$emit(`closeModal`)})]),K(`div`,{ref_key:`container`,ref:o,class:`tipalti-container`},[de(q(f(tI),null,null,512),[[ge,!c.value]]),de(K(`iframe`,{ref_key:`iframe`,ref:s,src:l.value,title:`Tipalti Setup`},null,8,eI),[[ge,c.value]])],512)]))}};function rI(e,t){let n=!!(window.ApplePaySession&&window.ApplePaySession.canMakePayments());if(e.variant!==`express`||n||!o())return null;let r=t.href(`checkout.summary`,{...e,variant:`one-page`},{absolute:!0});return window.open(r,`_blank`),{state:`closeWebview`,params:{"#":`bl_closeWebView`}}}angular.module(`bandlab.payment.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`connectTipaltiAccount`,{url:`/tipalti/connect?redirect`,template:`<div></div>`,controller:[`Me`,`$state`,function(e,t){if(!o()){if(Yn.value)r();else{let e=re(Yn,()=>{Yn.value&&(e(),r())})}return}let n=t.href(`updateTipaltiAccount`,t.params.redirect?{redirect:t.params.redirect}:{"#":`bl_closeWebView`},{absolute:!0});import(`./BT0X5vPC.js`).then(e=>e.t).then(function({getTipaltiFrameUrl:t}){return t(e.id,encodeURIComponent(n))}).then(function({url:e}){window.location.replace(e)});function r(){let{name:e,params:n}=t.params.redirect?JSON.parse(decodeURIComponent(t.params.redirect)):{name:`settings.payments`,success:!0};X(nI,{redirectName:e,redirectParams:n,onCloseModal:()=>t.go(e,n)},{escapeClose:!1})}}]}).state(`updateTipaltiAccount`,{url:`/tipalti/callback?redirect`,controller:[`$state`,`AppNotifications`,`Me`,function(e,t,n){return import(`./BT0X5vPC.js`).then(e=>e.t).then(({updateTipaltiPayeeDetails:e})=>e(n.id)).then(function(){t.addNotification({title:`Youâre all set!`,content:`You will receive the incoming payouts`,autoclose:8e3,classList:`success`})}).catch(async function(e){let n=await e.response.json();t.addNotification({title:`Tipalti account not connected`,content:n.message,classList:`alert`,autoclose:8e3})}).finally(function(){if(e.params.redirect){let t=JSON.parse(decodeURIComponent(e.params.redirect));e.go(t.name,t.params,{location:`replace`})}})}]}).state(`mobileRefundRequest`,{url:`/refund-request`,redirectTo:`unavailable`}).state(`checkout`,{url:`/checkout?`+`product.promoCampaign.promoCode.redirectUrl.redirectCancelUrl.redirectTarget.showWebviewTopbar.variant.plan.frequency.referrerId.trial.action.skipMembershipOnboarding.productAttribution.productAttributionGroup.platformSource.source.contentId.triggeredFrom.triggeredFromComponent.purchaselyScreenId.purchaselyAbTestId.purchaselyAbTestVariantId.purchaselyCampaignId.purchaselyAudienceId.purchaselyFlowId.paymentIntentId.paymentIntentProvider.productId`.split(`.`).join(`&`),params:{step:{value:null,dynamic:!0,squash:!0},redirectUrl:{value:o()?JSON.stringify({name:`settings.membership`,params:{"#":`bl_closeWebView`}}):null},redirectCancelUrl:{value:o()?JSON.stringify({name:`settings.membership`,params:{"#":`bl_closeWebView`}}):null}},redirectTo:`checkout.summary`,controller:`CheckoutCtrl`,data:{hideNavBar:!0}}).state(`checkout.summary`,{url:`/summary`,template:`<div></div>`,redirectTo:function(e){let t=e.params();return rI(t,e.router.stateService)||(t.product===`membership`&&t.action===`plan-change`?{state:`checkout.summary`,params:{...t,product:`membership-plan-change`,action:null}}:t.product===`membership`&&t.plan?.toLowerCase()===`adfree`?{state:`checkout.stripe`,params:t}:!0)},data:{hideGlobalPlayer:!0}}).state(`checkout.payment`,{url:`/payment`,redirectTo:function(e){return e.params().product===`membership`&&e.params().action===`plan-change`?{state:`checkout.payment`,params:{...e.params(),product:`membership-plan-change`,action:null}}:!0},template:`<div></div>`}).state(`checkout.complete`,{url:`/complete`,template:`<div></div>`,redirectTo:function(e){let{product:t,skipMembershipOnboarding:n,redirectUrl:r,redirectTarget:i,variant:a}=e.params(),s=[`membership`,`membership-plan-change`].includes(t),c=n===`true`;if(s&&a===`express`&&!c&&o()){let t=e.router.stateService.href(`membershipOnboarding`,{redirectUrl:r,redirectTarget:i},{absolute:!0});return window.open(t,`_blank`),{state:`settings.membership`,params:{"#":`bl_closeWebView`}}}return s&&!c?{state:`membershipOnboarding`,params:{redirectUrl:r,redirectTarget:i}}:!0}}).state(`checkout.stripe`,{url:`/stripe`,data:{forcedTheme:`light`},redirectTo:function(e){if(e.params().product!==`membership`||e.params().plan?.toLowerCase()!==`adfree`)return{state:`settings.membership`,params:o()?{"#":`bl_closeWebView`}:{}}},controller:[`$element`,`$injector`,`$scope`,`$state`,`$stateParams`,function(e,t,n,r,i){let a=o(),s=t.get(`Me`),c=t.get(`AppNotifications`),{refreshMembership:l,clearMembershipOtherTabs:u}=Kn(s),d=GF(i),{productAttribution:f,productAttributionGroup:p}=KF(i),m=tr[i.frequency]||`Month`,h=Qn(`AdFree`,m),g=di({$state:r,isWebview:a}),_={productId:h,contentId:i.contentId,productAttribution:f,productAttributionGroup:p,source:i.source,platformSource:i.platformSource,purchaselyParams:d};$(import(`./D7G2qDL4.js`),e[0],n,{$injector:t},{billingInterval:m,productAttribution:f,productAttributionGroup:p,promoCampaign:i.promoCampaign,promoCode:i.promoCode,referrerId:i.referrerId,source:i.source,platformSource:i.platformSource,purchaselyParams:d,onLoaded:()=>b(),onComplete:(e,t)=>
345v(e,t),onError:e=>y(e,`stripe_checkout_error`,`checkout_open`)});function v(e,t){if(o()){let e=r.params;r.go(`.`,{...e,"#":`bl_hideToolbar`})}return kd(`membership`,`stripe`,e,{stripeCheckoutSessionId:t}).then(function(){JF(WF(_),{branchAlias:XF(`AdFree`,m)}),l(),u(),g(i.redirectUrl)}).catch(function(e){y(e,`payment_confirmation_fail_http_${e.errorCode}`,`service_activation`)})}function y(e,t,n){let r=e.message||e.error?.message||(typeof e==`string`?e:JSON.stringify(e));import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCheckoutPaymentError:e}){e(h,`${t}: ${r}`,n,i.contentId,f)}),c.addNotification({autoclose:8e3,title:`Unable to proceed with payment`,content:r,classList:`alert`}),g(i.redirectCancelUrl)}function b(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCheckoutOpen:e}){e(WF({..._,triggeredFrom:i.triggeredFrom,triggeredFromComponent:i.triggeredFromComponent}))})}}]}).state(`getMembership`,{url:`/get-membership?${[`affiliateId`,`referrerId`,`source`,`productAttribution`,`productAttributionGroup`,`redirectUrl`,`contentId`,`persistWebview`].join(`&`)}`,redirectTo:function(e){let t=e.params();return!t.affiliateId||{name:`getMembership`,params:{...t,affiliateId:null,productAttribution:`affiliate`,source:t.affiliateId}}},controller:[`$state`,`$stateParams`,`$transitions`,`Me`,function(e,t,n,r){let i=t.redirectUrl;e.go(`user.feed`,{username:r.username,redirectedFromGetMembership:!0},{location:`replace`});let a=n.onSuccess({entering:`user.feed`},async function(){a();let n=t.productAttribution===`affiliate`,o=t.referrerId?`referral`:t.productAttribution,s=await ke(r,`mem_paywall_close_redirect`)===`true`,c=n||t.referrerId?`marketing`:t.productAttributionGroup;ai({contentId:t.contentId,productAttribution:o,productAttributionGroup:c,referrerId:t.referrerId,source:t.source,...s?{redirectUrl:i,redirectCancelUrl:i}:{}},{onClose:function(){s&&i?pi(i,{onStateRedirect:function(t,n){return e.go(t,n)},onAbsoluteRedirect:function(e){window.location.href=e},onFallback:()=>{e.go(`user.feed`,{username:r.username,redirectedFromGetMembership:!1})}}):e.go(`user.feed`,{username:r.username,redirectedFromGetMembership:!1})}})})}]}).state(`getMembershipPage`,{url:`/membership/get-membership?${[`affiliateId`,`referrerId`,`redirectUrl`,`source`,`productAttribution`,`productAttributionGroup`,`contentId`,`persistWebview`].join(`&`)}`,useTopBarForm:!0,data:{forcedTheme:`dark`,hideGlobalPlayer:!0,hideNavBar:!0},redirectTo:function(e){let t=e.params();return!t.affiliateId||{name:`getMembershipPage`,params:{...t,affiliateId:null,productAttribution:`affiliate`,source:t.affiliateId}}},views:{"":{controller:[`$element`,`$injector`,`$scope`,`$stateParams`,`Me`,function(e,t,n,r,i){let a=r.productAttribution===`affiliate`,o=r.referrerId?`referral`:r.productAttribution,s=a||r.referrerId?`marketing`:r.productAttributionGroup,c=h({contentId:r.contentId,productAttribution:o,productAttributionGroup:s,referrerId:r.referrerId,source:r.source,triggeredFrom:r.triggeredFrom});$(import(`./bR8U-YgT.js`),e[0],n,{$injector:t},c),ke(i,`mem_paywall_close_redirect`).then(function(e){e===`true`&&(c.redirectUrl=r.redirectUrl,c.redirectCancelUrl=r.redirectUrl)})}]},"topBarForm@":{templateUrl:`https://www.bandlab.com/web-app/payment/partials/_paywall-form-top-bar-da53b7bc6.html`},"tabBarForm@":{templateUrl:`https://www.bandlab.com/web-app/payment/partials/_paywall-form-tab-bar-4be31ea03.html`}}}).state(`membershipFeatures`,{url:`/membership-features?redirectUrl&settings&theme`,useTopBarForm:!0,data:{forcedTheme:`dark`,hideGlobalPlayer:!0,hideNavBar:!0},redirectTo:`membershipFeatures.creation`,views:{"":{controller:[`$element`,`$injector`,`$location`,`$scope`,`$state`,`$stateParams`,`$transitions`,`appActions`,`authService`,function(e,t,n,r,i,a,s,c,l){let u=n.hash();if(o()&&u!==`bl_themeDark`)return i.go(i.current,{...a,"#":`bl_themeDark`},{location:`replace`,reload:!0});let d=h({stateName:i.current.name});$(import(`./C5QsDIMV.js`),e[0],r,{$injector:t,$scope:r,appActions:c,authService:l},d);let f=s.onSuccess({},function(e){d.stateName=e.to().name});r.$on(`$destroy`,function(){f()})}]},"topBarForm@":{templateUrl:`https://www.bandlab.com/web-app/membership/partials/_membership-onboarding-form-top-bar-c5190e092.html`,controller:[`$scope`,`$state`,function(e,t){e.exitPage=function(){t.go(`settings.membership`)}}]},"tabBarForm@":{templateUrl:`https://www.bandlab.com/web-app/membership/partials/_membership-onboarding-form-top-bar-c5190e092.html`,controller:[`$scope`,`$state`,function(e,t){e.exitPage=function(){t.go(`settings.membership`)}}]}}}).state(`membershipFeatures.creation`,{url:`/creation`,useTopBarForm:!0}).state(`membershipFeatures.artistServices`,{url:`/artist-services`,useTopBarForm:!0}).state(`membershipFeatures.platformPerks`,{url:`/platform-perks`,useTopBarForm:!0}).state(`membershipFeatures.other`,{url:`/other`,useTopBarForm:!0}).state(`membershipOnboarding`,{url:`/membership-onboarding?redirectUrl&redirectTarget&settings`,useTopBarForm:!0,data:{forcedTheme:`dark`,hideGlobalPlayer:!0,hideNavBar:!0},redirectTo:`membershipOnboarding.welcome`,views:{"":{controller:[`$element`,`$injector`,`$location`,`$scope`,`$state`,`$stateParams`,`$transitions`,function(e,t,n,r,i,a,s){let c=n.hash()||``,l=o(),u=Th(d.get(`X-Client-Version`),`11.25.1`,1125e4);if(l){let e=!c.includes(`bl_themeDark`),t=u&&!c.includes(`bl_hideToolbar`);if(e||t){let n=c?c.split(`&`):[];return e&&n.push(`bl_themeDark`),t&&n.push(`bl_hideToolbar`),i.go(i.current,{...a,"#":n.join(`&`)},{location:`replace`,reload:!0})}}let f=h({stateName:i.current.name,isSkippable:!l||u,onChangeStep:m,onComplete:g});$(import(`./CBfHjK97.js`).then(e=>e.t),e[0],r,{$injector:t},f);let p=s.onSuccess({},function(e){f.stateName=e.to().name});r.$on(`$destroy`,function(){p()});function m(e){i.go(e,{...a,"#":n.hash()})}function g(){let e=i.params.redirectTarget||(o()?`blank`:`self`);pi(i.params.redirectUrl,{onStateRedirect(t,n){let r={...n,...o()?{"#":`bl_closeWebView`}:{}};e===`blank`&&window.open(i.href(t,r,{absolute:!0}),`_blank`),i.go(t,r,{location:`replace`})},onAbsoluteRedirect(t){o()?(i.go(`.`,{"#":`bl_closeWebView`},{location:`replace`}),window.open(t,`_blank`)):window.open(t,e===`blank`?`_blank`:`_self`)},onFallback(){o()?i.go(`.`,{"#":`bl_closeWebView`},{location:`replace`}):i.go(`settings.membership`)}})}}]},"topBarForm@":{templateUrl:`https://www.bandlab.com/web-app/membership/partials/_membership-onboarding-form-top-bar-c5190e092.html`,controller:[`$scope`,`$state`,function(e,t){e.exitPage=function(){t.go(`settings.membership`)}}]},"tabBarForm@":{templateUrl:`https://www.bandlab.com/web-app/membership/partials/_membership-onboarding-form-tab-bar-9c3312db3.html`,controller:[`$scope`,`$state`,function(e,t){e.exitPage=function(){t.go(`settings.membership`)}}]}}}).state(`membershipOnboarding.welcome`,{url:`/welcome`,useTopBarForm:!0,params:{rewriteTracking:()=>()=>`/membership-onboarding/welcome`}}).state(`membershipOnboarding.autoPitch`,{url:`/auto-pitch`,useTopBarForm:!0,params:{rewriteTracking:()=>()=>`/membership-onboarding/auto-pitch`}}).state(`membershipOnboarding.voiceCleaner`,{url:`/voice-cleaner`,useTopBarForm:!0,params:{rewriteTracking:()=>()=>`/membership-onboarding/voice-cleaner`}}).state(`membershipOnboarding.mastering`,{url:`/mastering`,useTopBarForm:!0,params:{rewriteTracking:()=>()=>`/membership-onboarding/mastering`}}).state(`membershipOnboarding.distribution`,{url:`/distribution`,useTopBarForm:!0,params:{rewriteTracking:()=>()=>`/membership-onboarding/distribution`}}).state(`membershipOnboarding.opportunities`,{url:`/opportunities`,useTopBarForm:!0,params:{rewriteTracking:()=>()=>`/membership-onboarding/opportunities`}}).state(`membershipOnboarding.profile`,{url:`/profile`,useTopBarForm:!0,params:{rewriteTracking:()=>()=>`/membership-onboarding/profile`}}).state(`membershipOnboarding.membershipFeatures`,{url:`/membership-features`,useTopBarForm:!0,params:{rewriteTracking:()=>()=>`/membership-onboarding/membership-features`}}).state(`membershipOnboarding.fallback`,{url:`/:outdatedSteps`,redirectTo:`membershipOnboarding.welcome`}).state(`membershipPricing`,{url:`/membership-pricing`,data:{forcedTheme:`dark`,hideNavBar:!0,skipOnboarding:!0},controller:[`$element`,`$injector`,`$scope`,function(e,t,n){import(`./COkZ4zJ3.js`).then(e=>e.t).then(async({getStrapiLandingPage:r})=>{let i=await r(`djisd6pa3u430nxvkh1zcmsp`);
345$(import(`./DMbk5rGy.js`),e[0],n,{$injector:t,strapi:i},{})})}]}).state(`membershipReferral`,{url:`/membership-referral?settings`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0},views:{"":{controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./DlGgNFQQ.js`),e[0],n,{$injector:t})}]},"topBarForm@":{templateUrl:`https://www.bandlab.com/web-app/membership/partials/_membership-onboarding-form-top-bar-c5190e092.html`,controller:[`$scope`,`$state`,function(e,t){e.exitPage=function(){t.go(`settings.membership`)}}]},"tabBarForm@":{templateUrl:`https://www.bandlab.com/web-app/membership/partials/_membership-onboarding-form-top-bar-c5190e092.html`,controller:[`$scope`,`$state`,function(e,t){e.exitPage=function(){t.go(`settings.membership`)}}]}}}).state(`membershipChangePlan`,{url:`/manage-membership/change-plan?redirectUrl`,template:`<div></div>`,controller:[`$element`,`$injector`,`$scope`,`$stateParams`,function(e,t,n,r){$(import(`./B5QJXMS6.js`).then(e=>e.n),e[0],n,{$injector:t,$stateParams:r},{redirectUrl:r.redirectUrl})}]}).state(`aiTokens`,{url:`/ai-tokens?${[`redirectUrl`,`success`,`triggeredFrom`,`triggeredFromComponent`,`platformSource`].join(`&`)}`,data:{forcedTheme:`dark`,hideGlobalPlayer:!0,hideNavBar:!0},redirectTo:`aiTokens.balance`,views:{"":{controller:[`$element`,`$injector`,`$scope`,`$state`,`$stateParams`,`$transitions`,function(e,t,n,r,i,a){let o=h({initState:r.current.name,redirectUrl:i.redirectUrl,triggeredFrom:i.triggeredFrom,triggeredFromComponent:i.triggeredFromComponent,platformSource:i.platformSource,onChangeState:c,onClose:l});$(import(`./C34i9diM.js`).then(e=>e.n),e[0],n,{$injector:t,$scope:n},o);let s=a.onSuccess({},function(e){o.initState=e.to().name});n.$on(`$destroy`,function(){s()});function c(e){r.go(e)}function l(){let{redirectUrl:e}=i;return u(e)}function u(e){try{let t=decodeURIComponent(e);if(t.startsWith(`http`)){let e=mi(t);if(e){window.location.href=e;return}r.go(`404`);return}let n=JSON.parse(t);r.go(n.name,n.params,{location:`replace`})}catch{r.go(`404`)}}}]}}}).state(`aiTokens.balance`,{url:`/balance`,template:`<div></div>`}).state(`aiTokens.packages`,{url:`/packages`,template:`<div></div>`}).state(`aiTokens.action`,{url:`/action`,template:`<div></div>`})}]),angular.module(`bandlab.playbackhistory`,[]),angular.module(`bandlab.playbackhistory`).controller(`PlaybackHistoryCtrl`,[`$location`,`$q`,`$scope`,`Me`,`Player`,`PlayerHistory`,`Post`,`User`,function(e,t,n,r,i,a,o,s){var c=null,l,u=!1,d=e.url();n.me=r,n.infiniteScrollEnded=!1,n.loadMore=p,a.setCurrentPageContext({contentSource:`playback_history`,loader:p,url:d}),o.fromRecommendations({userId:r.id,limit:3}).$promise.then(function({data:e}){n.relatedTracks=e}),n.$on(`$playbackhistory:remove`,function(e,t){for(let e of n.playbackHistory.slice())ja(e,e=>e===t.item),e.length===0&&ja(n.playbackHistory,t=>t===e);i.removeRevisionFromQueue(t.item.post.revisionId,t.item.post.id)});function f(){return u?t.resolve([]):(l=s.postsPlaybackHistory({after:c,id:r.id,limit:50}).$promise.then(function(e){return c=e.paging.cursors.after,u=!c,e.data}),l)}function p(){return n.infiniteScrollEnded?t.resolve():(l=l.then(function(e){if(n.infiniteScrollEnded=u,e.length)return n.playbackHistory=n.playbackHistory||[],e.forEach(e=>{if(n.playbackHistory.length>0){let t=new Date(e.playedOn),r=new Date(n.playbackHistory[n.playbackHistory.length-1][0].playedOn);t.getFullYear()===r.getFullYear()&&t.getMonth()===r.getMonth()&&t.getDate()===r.getDate()?n.playbackHistory[n.playbackHistory.length-1].push(e):n.playbackHistory.push([e])}else n.playbackHistory.push([e])}),a.pushQueueSongs(e.map(e=>e.post),d),f()}),l)}f().then(n.loadMore)}]),angular.module(`bandlab.playbackhistory`).controller(`PlaybackHistoryRemoveCtrl`,[`$rootScope`,`$scope`,`Me`,`User`,function(e,t,n,r){t.removeFromHistory=function(t){r.removeFromPostsPlaybackHistory({userId:n.id,postId:t.post.id}).$promise.then(function(){e.$broadcast(`$playbackhistory:remove`,{item:t})})}}]),angular.module(`bandlab.playbackhistory.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`playbackhistory`,{url:`/playback-history`,onEnter:[`Page`,function(e){e.setMetadata({tapBarTitle:`Playback History`})}],onExit:[`Page`,function(e){e.clearMetadata()}],controller:`PlaybackHistoryCtrl`,templateUrl:`https://www.bandlab.com/web-app/playbackhistory/views/playback-history-layout-5f2dec8ab.html`})}]),angular.module(`bandlab.player`,[]),angular.module(`bandlab.player`).controller(`PlayerQueueCtrl`,[`$scope`,`AppNotifications`,`Player`,`PlayerHistory`,function(e,t,n,r){e.playNext=function(i,a=e.getContentSource()){let o=a;r.playNext(i,o),n.getCurrentSong().id?t.addNotification({title:`Track will play next`,classList:`success`,autoclose:4e3}):n.next(),Ke(`playback_queue_play_next`)},e.getContentSource=function({collection:e}={}){return e?e.type===`Playlist`?`playlist`:`album`:r.getCurrentPageContext().contentSource||`other`}}]);const iI=`$player:counter`,aI=`$playerEnded`,oI=`$playerPausePlay`,sI=`$playerStartPlay`,cI=`$playerUpdateTime`,lI=`$playerRequestingSource`,uI=`$playerSeekedTime`,dI=`$playerSeekingTime`,fI=`$playerSongChanged`,pI={currentSessions:new Map,trackedSessionIds:new Set},mI={currentSessions:new Map,trackedSessionIds:new Set},hI=To((e,t)=>{let n={videoPlayer:{...pI},trackPlayer:{...mI}};async function r(r,i=!1){if(e.isAnonymous())return;let{trackPost:o,playDetails:s}=n.trackPlayer.currentSessions.get(r.id)||{};if(!(r.song&&(r.song.isSounds||r.song.isBeats))&&o&&s&&!n.trackPlayer.trackedSessionIds.has(o.id)&&s.actualPlayedDuration&&o.creator){n.trackPlayer.trackedSessionIds.add(o.id);let e=o.revision.trackPreview;i&&e&&(s={...s,duration:e.duration,isPreview:!0});let r=t.getDiscoverPlayTrackingContext(o.feedSessionId);await a({postId:o.id,trackTrackingParams:{postCreatorId:o.creator.id,sessionId:r.sessionId,genreId:Qe(o,`revision.genres[0].id`),caption:o.caption,trendingPostType:
345o.trendingPostType,isFork:o.revision.isFork,hasLyrics:!!o.revision.lyrics,...s}}),r.trackAcceptedPlay(o.id)}}async function i(r){if(e.isAnonymous()||!r)return;let{videoPost:i,playDetails:a}=n.videoPlayer.currentSessions.get(r.id)||{};if(i&&a&&!n.videoPlayer.trackedSessionIds.has(i.id)&&a.actualPlayedDuration){n.videoPlayer.trackedSessionIds.add(i.id);let e=t.getDiscoverPlayTrackingContext(i.feedSessionId);await o({postId:i.id,videoTrackingParams:{postCreatorId:i.creator.id,sessionId:e.sessionId,caption:i.caption,trendingPostType:i.trendingPostType,...a}}),e.trackAcceptedPlay(i.id)}}function a({postId:t,trackTrackingParams:n}){return Un.post(`https://www.bandlab.com/api/v1.3/users/${e.id}/track-posts/${t}/plays`,{json:n})}function o({postId:t,videoTrackingParams:n}){return Un.post(`https://www.bandlab.com/api/v1.3/users/${e.id}/video-posts/${t}/plays`,{json:n})}function s(e){if(!e.trackPost)return;let t=e.trackPost.id,r=n.trackPlayer.currentSessions.get(t)||{};e.playDetails&&(r.playDetails=e.playDetails),r.trackPost=e.trackPost,n.trackPlayer.currentSessions.set(t,r)}function c(e){if(!e.videoPost)return;let t=e.videoPost.id,r=n.videoPlayer.currentSessions.get(t)||{};e.playDetails&&(r.playDetails=e.playDetails),r.videoPost=e.videoPost,n.videoPlayer.currentSessions.set(t,r)}function l(){n.trackPlayer={currentSessions:n.trackPlayer.currentSessions,trackedSessionIds:new Set}}function u(e){n.trackPlayer.currentSessions.delete(e),n.trackPlayer.trackedSessionIds.delete(e)}function d(e){e?.id&&(n.videoPlayer.currentSessions.delete(e.id),n.videoPlayer.trackedSessionIds.delete(e.id))}return{updateVideoPlayData:c,updateTrackPlayData:s,triggerVideoCTA:i,triggerTrackCTA:r,resetTrackPlayData:l,endVideoPlaySessionFor:d,endTrackPlaySessionFor:u}});function gI(){let e=O(0),t=O(0),n=O(0),r=O(0),i=O(!1),a=O(!1);function o(t){n.value+=t-e.value}function s({prevTime:o,isSeeking:s,lastPlayedPosition:c,willResetPlayDataOnNextCTA:l,playStartedPosition:u,actualPlayedDuration:d,...f}){Object.keys(f).length,angular.isNumber(o)&&(e.value=o),typeof s==`boolean`&&(i.value=s),angular.isNumber(c)&&(t.value=c),typeof l==`boolean`&&(a.value=l),angular.isNumber(u)&&(r.value=u),angular.isNumber(d)&&(n.value=d)}function c(){return{lastPlayedPosition:t.value,actualPlayedDuration:n.value,playStartedPosition:r.value}}return{addActualPlayDuration:o,getPlayTrackerValues:c,setValues:s,isSeeking:()=>i.value,willResetPlayDataOnNextCTA:()=>a.value}}angular.module(`bandlab.player`).directive(`globalPlayer`,[`$state`,`Player`,`PlayerHistory`,function(e,t,n){return{restrict:`E`,replace:!0,scope:{},templateUrl:`https://www.bandlab.com/web-app/player/partials/_global-player-0a184af5e.html`,link:function(t){angular.element(document.body).on(`keydown`,function(n){if(([`INPUT`,`TEXTAREA`].indexOf(n.target.nodeName)===-1||n.target.type===`file`)&&document.body.classList.contains(`player-visible`)&&e.includes(`sounds`)&&document.activeElement.nodeName!==`BUTTON`&&!document.body.classList.contains(`sounds-sample-details-editor-visible`))switch(n.which){case 32:n.preventDefault(),document.activeElement.blur(),t.togglePlay()}})},controller:[`$scope`,`$state`,`$transitions`,`$analytics`,`Me`,`AppNotifications`,`StreaksService`,`User`,function(e,r,i,a,o,s,c,l){var u=t.getAudio();e.me=o,e.nowPlayingStatus=null;let d=gI(),f=Gn(()=>hI(o,c),e),p;e.$watch(`me.id`,function(){o.isAnonymous()||(e.$applyAsync(),e.$applyAsync(async()=>{await Ne(o)}),l.getNowPlayingStatus({userId:e.me.id}).$promise.then(function(t){e.$applyAsync(function(){e.nowPlayingStatus=t.playingNowAccessGroup})}))}),e.prevState=``,e.prevProgress=0,e.LOOP_STATES={DONT_REPEAT:`dont-repeat`,REPEAT_ONE:`repeat-one`,REPEAT_ALL:`repeat-all`},e.playerHistory=n,e.revision=t.getCurrentSong(),e.status=``,e.loop=e.LOOP_STATES.DONT_REPEAT,e.getSoundsMixEditorLink=function(){let{sampleId:t,samplePack:n,userSoundsSampleId:r}=e.revision.song;return es(t?{sampleId:t}:n?{samplePack:n}:{userSoundsSampleId:r})},e.$on(oI,m),e.$on(lI,m),e.$on(cI,m),e.$on(aI,m),e.$on(dI,m),e.$on(uI,m),e.$on(fI,m),e.$on(sI,h),i.onSuccess({to:e=>e.data?.hideGlobalPlayer},t.pause),i.onSuccess({from:e=>e.data?.hideGlobalPlayer},h);function m({name:t},{type:n=t}={}){switch(n){case oI:e.status=`loaded`,h(),v();break;case lI:f.resetTrackPlayData(),d.setValues({lastPlayedPosition:0,actualPlayedDuration:0,prevTime:0,playStartedPosition:0}),e.prevProgress=0,e.status=`loading`,_();break;case cI:e.status=`loaded`,e.currentTime=u.currentTime,e.duration=u.duration||1,e.progress=u.currentTime/e.duration*100,e.prevState===`$playerSeekingTime`&&e.prevProgress===0&&d.setValues({playStartedPosition:u.currentTime}),e.prevState===`$playerUpdateTime`&&(d.setValues({isSeeking:!1}),d.addActualPlayDuration(e.prevProgress),d.setValues({prevTime:e.prevProgress}));break;case dI:case uI:d.setValues({prevTime:u.currentTime,isSeeking:!0}),e.currentTime=u.currentTime;break;case aI:e.currentTime=u.duration||1,f.triggerTrackCTA(p);break;case fI:f.triggerTrackCTA(p)}e.prevProgress=u.currentTime,e.prevState=n}e.$on(`$revision:changed`,function(r,i){var a=t.getCurrentSong();i.revision.id===a.id&&Object.assign(a,i.revision),i.action===`master`&&(n.removeRevision(i.revision.id),i.revision.id===a.id&&(t.pause(),a.id=``,e.hideQueue()))}),e.playPrevious=function(){n.hasPrevious()&&u.currentTime<3?(t.prev(),v(),f.triggerTrackCTA(p)):t.goToPercent(0),a.eventTrack(`Play Previous`,{category:`Player`,label:`global_player`})},e.playNext=function(){v(),f.triggerTrackCTA(p),t.next(),a.eventTrack(`Play Next`,{category:`Player`,label:`global_player`})},e.isSocialDisabled=function(){return r.includes(`album.create.tracks`)},e.isPlaying=function(){return!u.paused},e.toggleLoop=function(){switch(e.loop){case e.LOOP_STATES.DONT_REPEAT:default:e.loop=e.LOOP_STATES.REPEAT_ALL,t.setOneTrackLoop(!1),n.setRepeat(!0);break;case e.LOOP_STATES.REPEAT_ALL:e.loop=e.LOOP_STATES.REPEAT_ONE,t.setOneTrackLoop(!0),n.setRepeat(!1);break;case e.LOOP_STATES.REPEAT_ONE:e.loop=e.LOOP_STATES.DONT_REPEAT,t.setOneTrackLoop(!1),n.setRepeat(!1)}},e.toggleQueue=function(){e.queue=!e.queue,e.queue&&(a.eventTrack(`Open Queue`,{category:`Player`,label:`global_player`}),s.clearAll())},e.hideQueue=function(){e.queue=!1},e.togglePlay=function(){u.paused?(t.play(null,{navigatingHistory:!0}),a.eventTrack(`Play`,{category:`Player`,label:`global_player`})):(t.pause(),a.eventTrack(`Pause`,{category:`Player`,label:`global_player`}))},e.toggleNowPlayingStatus=function(){let t=e.nowPlayingStatus,n=t===`Everyone`?`Nobody`:`Everyone`;e.nowPlayingStatus=n,l.updateNowPlayingStatus({userId:e.me.id},{playingNowAccessGroup:n}).$promise.then(()=>{n===`Nobody`?(s.addNotification({title:`Sharing turned off`,classList:`success`,autoclose:5e3}),g(`off`)):(s.addNotification({title:`Sharing what youâre listening to now`,classList:`success`,autoclose:5e3}),g(`on`))}).catch(n=>{e.nowPlayingStatus=t})};function h(){let e=t.getCurrentSong().id!==``&&!r.current.data?.hideGlobalPlayer;document.body.classList.toggle(`player-visible`,e)}function g(e){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logNowPlayingToggleUpdate:t}){t(e)})}function _(){p=uo(e.revision.post)?e.revision:e.revision.post}function v(){d.addActualPlayDuration(u.currentTime),d.setValues({prevTime:u.currentTime,lastPlayedPosition:u.currentTime}),f.updateTrackPlayData({trackPost:p,playDetails:{duration:e.duration,...d.getPlayTrackerValues()}})}}]}}]),angular.module(`bandlab.player`).directive(`globalPlayerProgress`,[`$filter`,`Player`,function(e,t){return{restrict:`E`,replace:!0,link:function(t,n){function r(e){e||=window.event;var t=(e.target||e.srcElement).getBoundingClientRect();return e.clientX-t.left}var i=angular.element(n[0].querySelector(`.global-player-progress-go`));function a(a){var o=Math.max(0,a.offsetX||r(a));i.css(`left`,`${o}px`),i.text(e(`soundTime`)(o/n[0].getBoundingClientRect().width*(t.duration||1)))}n.on(`mouseenter`,function(){n.on(`mousemove`,a)}),n.on(`mouseleave`,function(){n.off(`mousemove`,a)})},controller:[`$scope`,function(e){e.setProgressTime=function(e){t.goToPercent(e)}}],templateUrl:`https://www.bandlab.com/web-app/player/partials/_global-player-progress-18fc72536.html`}}]),angular.module(`bandlab.player`).directive(`globalPlayerQueue`,[`$transitions`,`PlayerHistory`,function(e,t){return{restrict:`E`,replace:!0,scope:{hideQueue:`&`},link:function(n,r){let i=r[0].children[1];setTimeout(function(){document.body.addEventListener(`mousedown`,a);let e=t.getIndex()-1;if(e>=1){let t=i.children[e];i.scrollTo({top:t.offsetTop})}}),e.onSuccess({},function(){o()}),n.$on(`$destroy`,function(){document.body.removeEventListener(`mousedown`,a)});function a(e){e.target.closest(`.global-player`)||e.target.closest(`.modal-overlay`)||(o(),document.body.removeEventListener(`mousedown`,a))}function o(){n.hideQueue(),n.$applyAsync()}},controller:[`$scope`,`PlayerHistory`,function(e,t){e.playerHistory=t}
345],templateUrl:`https://www.bandlab.com/web-app/player/partials/_global-player-queue-c4515b997.html`}}]),angular.module(`bandlab.player`).directive(`globalPlayerQueueItemDragHandler`,[`PlayerHistory`,function(e){let t=null,n=null,r=null;return{restrict:`A`,link:function(i,a){let o=a[0].parentElement,s=a[0];s.draggable=!0,s.addEventListener(`dragstart`,function(e){e.stopPropagation(),t=i.$index,e.dataTransfer.setData(`text/plain`,``),e.dataTransfer.effectAllowed=`move`,o.style.opacity=`30%`,o.addEventListener(`dragover`,c)}),s.addEventListener(`dragend`,function(){t!==n&&n!==null&&e.reorderStack(t,n),o.style.removeProperty(`opacity`),r!==null&&(r.classList.remove(`is-dropped-above`),r.classList.remove(`is-dropped-below`)),o.removeEventListener(`dragover`,c),t=null,n=null,r=null,i.$applyAsync()}),o.addEventListener(`dragover`,function(e){if(e.preventDefault(),e.target.contains(o)||t===null||t===i.$index)return;e.dataTransfer.dropEffect=`move`;let a=l(o,e),s=u();r=o,n=!a&&!s?i.$index+1:a&&s?i.$index-1:i.$index,d(i.$index,s)?o.classList.add(`is-dropped-above`):o.classList.remove(`is-dropped-above`),f(i.$index,s)?o.classList.add(`is-dropped-below`):o.classList.remove(`is-dropped-below`)}),o.addEventListener(`dragleave`,function(){o.classList.remove(`is-dropped-above`),o.classList.remove(`is-dropped-below`)});function c(e){e.preventDefault()}function l(e,t){let n=e.getBoundingClientRect();return n.top+n.height-t.y>n.height/2}function u(){return t<i.$index}function d(e,t){return r===o&&(n<e||!t&&n===e)}function f(e,t){return r===o&&(n>e||t&&n===e)}}}}]),angular.module(`bandlab.player`).directive(`globalPlayerVolume`,[`Player`,function(e){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/player/partials/_global-player-volume-02284c3c8.html`,controller:[`$scope`,function(t){var n;t.volume=e.getVolume(),t.storeVolume=function(e){n=t.volume,t.setVolume(e),Y.setItem(`globalPlayerVolume`,t.volume)},t.setVolume=function(n){t.volume=e.setVolume(n),t.isMuted=t.volume===0},t.mute=function(){t.isMuted?(t.volume=e.setVolume(n),t.isMuted=!1):(n=t.volume,t.volume=e.setVolume(0),t.isMuted=!0)}}]}}]),angular.module(`bandlab.player`).directive(`playCounter`,[`$filter`,function(e){return{restrict:`E`,require:`ngModel`,link:function(t,n,r,i){var a=0;if(t.counter=`0`,!i||angular.isUndefined(r.id))return;i.$render=function(){a=i.$viewValue||0,t.counter=e(`bigNumber`)(a),t.altText=(t=>{let n=t=>e(`bigNumber`)(t),r=new Intl.PluralRules(`en`);return{one:`${n(t)} Play`,other:`${n(t)} Plays`}[r.select(t)]})(a)};let o=t.$on(iI,function(n,i){i.id===r.id&&(a++,t.counter=e(`bigNumber`)(a),t.altText=(t=>{let n=t=>e(`bigNumber`)(t),r=new Intl.PluralRules(`en`);return{one:`${n(t)} Play`,other:`${n(t)} Plays`}[r.select(t)]})(a),o())})}}}]),angular.module(`bandlab.player`).directive(`playerAudio`,[`$analytics`,`$state`,`Player`,`PlayerHistory`,function(e,t,n,r){return{restrict:`A`,priority:50,link:function(i,a,o){var s=i.$eval(o.playerAudio),c=i.$eval(o.collection),l=i.$eval(o.navigatingHistory),u=i.$eval(o.post),d,f=angular.noop,p=angular.noop,m=angular.noop;let h=g();function g(){return i.$eval(o.playerStackIndex)??null}function _(){p(),f(),m()}function v({name:e},t){let n=!!s&&(h===null&&t?.id===s.id||h!==null&&h===t?.playerStackIndex&&t?.id===s.id);switch(e){case cI:n?(t.isPaused||(i.playStatus=`playing`),i.currentTime=t.timePassed):(i.playStatus=`stopped`,_());return;case oI:n?i.playStatus=`paused`:(i.currentTime=0,i.playStatus=`stopped`,_());return;case aI:n&&(i.currentTime=0,i.playStatus=`stopped`,_());return;case lI:i.playStatus=n?`loading`:`stopped`;return;case sI:n&&y()}}function y(){p=i.$on(cI,v),f=i.$on(oI,v),m=i.$on(aI,v)}if(i.$on(lI,v),i.$on(sI,v),!s){a.remove(),_(),i.isPlaying=function(){return!1};return}if(i.isPlaying=function(){return h===null?n.isPlayingSong(s.id):n.isPlayingSong(s.id,h)},i.isPlaying())y();else{let e=s.id===n.getCurrentSong().id&&(h===r.getIndex()||h===null);e&&y(),i.playStatus=e?`paused`:`stopped`,i.currentTime=0}function b(t){let r=i.$eval(o.playerAudio);r&&(n.isPlayingSong(r.id,h)?(n.pause(),e.eventTrack(`Pause`,{category:`Revision`.type,label:o.eventLabel?o.eventLabel:``})):(n.pause(),n.play(r,t,u),e.eventTrack(`Play`,{category:`Revision`,label:o.eventLabel?o.eventLabel:``})))}d=a[0].querySelector(`[player-audio-button-toggle]`)?angular.element(a[0].querySelector(`[player-audio-button-toggle]`)):a,d.on(`click`,function(e){e.target.hasAttribute(`href`)||i.$apply(function(){b({collection:c,contentSource:o.contentSource,contextId:o.contextId,element:a,navigatingHistory:l,playerStackIndex:h,triggeredFrom:o.triggeredFrom||Ee(t,a)})})}),a.on(`click`,function(e){e.target.hasAttribute(`player-audio-button-play`)&&s.id!==n.getCurrentSong().id&&d[0].click()})}}}]).directive(`playerAudioButton`,function(){return{restrict:`E`,template:`<div><div>`,link:function(e,t){$(import(`./BkU3ZBIr.js`).then(e=>e.t),t[0],e)}}}).directive(`playerDropdownMenu`,[`$injector`,function(e){return{restrict:`E`,scope:{post:`=`,playerStackIndex:`=`},template:`<div></div>`,link:function(t,n){$(import(`./Bs_X9Lz4.js`),n[0],t,{$injector:e,scope:t},{post:t.post,playerStackIndex:t.playerStackIndex})}}}]),angular.module(`bandlab.player`).directive(`playerAudioCollectionToggle`,[`$state`,`Player`,function(e,t){return{restrict:`A`,priority:50,link:function(n,r,i){var a=n.$eval(i.playerAudioCollectionToggle);let o=n.$eval(i.playerAudioAlbum);n.getCollectionStatus=function(){return t.getCollectionStatus(a.id)},r.on(`click`,function(){n.getCollectionStatus()===`playing`?t.pause():t.playCollection(a,Ee(e,r),e,r,{isAlbum:o})})}}}]),angular.module(`bandlab.common`).directive(`waveformBars`,[`$http`,`$timeout`,`Player`,function(e,t,n){return{restrict:`E`,replace:!0,scope:{barWidth:`=`,revisionId:`@`,waveformUrl:`@`},template:`<canvas class="waveform-bars" progress progress-on-start="setProgressTime" progress-on-move="setProgressTime"></canvas>`,link:function(r,i){var a=i,o=a[0].getContext(`2d`),s={progress:angular.noop,request:angular.noop},c=0,l=0,u=[],d=!1,f,p=`https://www.bandlab.com/web-app/common/static/waveform-d03919afd2.json`;r.$on(sI,v);let m={colorProgressSoFar:getComputedStyle(a[0]).getPropertyValue(`--ds-dominant-color-glyphs-primary`)||getComputedStyle(a[0]).getPropertyValue(`--ds-color-glyphs-primary`),colorProgressBackward:getComputedStyle(a[0]).getPropertyValue(`--ds-dominant-color-glyphs-secondary`)||getComputedStyle(a[0]).getPropertyValue(`--ds-color-glyphs-secondary`),colorProgressForward:getComputedStyle(a[0]).getPropertyValue(`--ds-dominant-color-glyphs-tertiary`)||getComputedStyle(a[0]).getPropertyValue(`--ds-color-glyphs-tertiary`),colorNotPlayedYet:getComputedStyle(a[0]).getPropertyValue(`--ds-dominant-color-glyphs-disabled`)||getComputedStyle(a[0]).getPropertyValue(`--ds-color-glyphs-disabled`)};function h(){i.remove(),r.$destroy()}function g(){return r.$on(lI,v)}function _(){return r.$on(cI,v)}function v({name:e},{type:t=e,...n}={}){switch(t){case sI:n.id===r.revisionId?(s={progress:_(),request:g()},i.on(`mousemove`,y),i.on(`mouseleave`,b),d=!0):d&&=(s.progress(),s.request(),l=0,i.off(`mousemove`,y),i.off(`mouseleave`,b),Lo(o,u,0,0,r.barWidth,1,`bottom`,m),!1);return;case lI:l=0,Lo(o,u,0,0,r.barWidth,1,`bottom`,m);return;case cI:n.id===r.revisionId&&(l=n.timePassed/n.duration,Lo(o,u,l,c,r.barWidth,1,`bottom`,m))}}function y(e){c=(e.offsetX||e.pageX-(a[0].getBoundingClientRect().left+document.body.scrollLeft))/e.target.width,Lo(o,u,l,c,r.barWidth,1,`bottom`,m)}function b(){c=null,Lo(o,u,l,c,r.barWidth,1,`bottom`,m)}function x(){let{clientWidth:e,clientHeight:t}=i[0];a.attr(`width`,e),a.attr(`height`,t);let n=Math.floor(o.canvas.width/(r.barWidth+1));n>1&&(u=Fo(f,n),Lo(o,u,l,0,r.barWidth,1,`bottom`,m))}function S(){return C(r.waveformUrl).then(function(e){f=e,x()})}function C(t){return e({url:t,cache:!0}).then(function(e){return e.data})}
345return(r.waveformUrl?C(r.waveformUrl):Promise.reject()).catch(function(){return C(p)}).then(function(e){f=e,x();var a=Fa(x,300);window.addEventListener(`resize`,a),r.$on(`$mixdown:changed`,()=>r.$applyAsync(()=>t(S))),r.$on(`$destroy`,function(){window.removeEventListener(`resize`,a)}),r.revisionId===n.getCurrentSong().id&&(s.progress=_(),i.on(`mousemove`,y),i.on(`mouseleave`,b))}).catch(h)},controller:[`$scope`,function(e){function t(t){var r=e.$on(cI,function(){n.getCurrentSong().id===e.revisionId&&(r(),n.goToPercent(t))})}e.setProgressTime=function(r){n.getCurrentSong().id===e.revisionId?n.goToPercent(r):t(r)}}]}}]);const _I=Wn(function(){let e=E(null);function t(t){e.value&&e.value(),e.value=t}function n(){e.value?.(),e.value=null}return{registerPlayback:t,stopCurrentPlayback:n}});angular.module(`bandlab.player`).factory(`Player`,[`$analytics`,`$http`,`$q`,`$rootScope`,`$state`,`Album`,`Collection`,`Me`,`PlayerHistory`,`VideoTile`,function(e,t,n,r,i,a,o,s,c,l){let u=ne(),d={id:``},f=new Map,p=angular.noop,m=`other`,h=`other`;var g={},_=n.resolve(),v=n.resolve(!0);let y=`track_stream_quality_threshold_hit`,b=.6,{registerPlayback:x}=_I();return{fastBackward:T,fastForward:E,getAudio:N,getCollectionStatus:te,getCurrentCollection:I,getCurrentSong:D,getCurrentTime:k,getVolume:M,goToPercent:O,goToTime:A,goToTimeAndPlay:j,isPlaying:P,isPlayingSong:ee,isCurrentSong:F,next:ce,pause:le,pauseOtherTabs:J,play:ie,playCollection:q,playBeat:pe,playBeatsList:me,playLoop:he,playLoopPack:_e,populateSamplesInQueue:ge,prev:se,removeRevisionFromQueue:ve,setOneTrackLoop:R,setVolume:L};function S(){f.has(d.id)||f.set(d.id,{logPostPlay:we(()=>C(`post_play`,{playlist_id:g.id})),logTrackStreamQualityThresholdHit:we(()=>C(y,{threshold_percentage:b*100,threshold_time:Math.round(u.duration*b),total_track_duration:Math.round(u.duration)})),listeningTime:0,songDuration:u.duration});let e=f.get(d.id),t=u.currentTime,n=Date.now()/1e3;Math.abs(t-e.currentTime-(n-e.timestamp))<.1?e.listeningTime+=t-e.currentTime:e.listeningTime=0,e.listeningTime>=3&&e.logPostPlay(),!d.id.includes(`preview`)&&e.listeningTime>=e.songDuration*.6&&e.logTrackStreamQualityThresholdHit(),e.currentTime=t,e.timestamp=n}function C(e,t={}){let n={content_source:ye(m),genre:d.genres?.[0].id??null,player_can_edit:d.post?.revision?.canEdit??(w(d)?d.canEdit:`no_revision`),post_band_id:d.post?.band?.id,post_creator_user_id:d.post?.revision?.creator.id??d.creator?.id,post_id:d.post.id??d.postId,post_type:d.post?.type?.toLowerCase()??d.type?.toLowerCase()??(w(d)?`revision`:void 0),post_visibility:d.post?.state?.toLowerCase()??d.state?.toLowerCase(),triggered_from:h,trending_post_type:d.post?.trendingPostType,...t};n.trending_post_type===void 0&&delete n.trending_post_type,n.post_visibility!==`private`&&(s.isAnonymous()||Promise.all([import(`./BWvciV-z.js`).then(e=>e.t),import(`./DNnIhUw8.js`).then(e=>e.t),import(`./DHI6ZMoS.js`).then(e=>e.t)]).then(function([{logEvent:t},{logCustomEvent:r},{logEvent:i}]){t(e,n),i(e,n),e===y&&r(e,n)}))}function w(e){return`volume`in e}function T(){return u.readyState>=3&&(u.currentTime-=5,W(),!0)}function E(){return u.readyState>=3&&(u.currentTime+=5,W(),!0)}function D(){return d}function O(e){if(u.readyState>=3){A(e*u.duration);return}p(),p=r.$on(sI,()=>{p(),A(e*u.duration)})}function k(){return u.readyState>=3?u.currentTime:null}function A(e){return r.$broadcast(dI),u.readyState>=3?(u.currentTime=Math.min(e,u.duration-.1),W(),r.$broadcast(uI),!0):(p(),p=r.$on(sI,()=>{p(),u.currentTime=Math.min(e,u.duration-.1),W()}),r.$broadcast(uI),!0)}function j(e=null,t,n){A(t),ie(e,{navigatingHistory:!0},n)}function M(){return u.volume}function N(){return u}function P(){return!u.paused}function F(e){return d.id===e}function ee(e,t=null){return t===null?!u.paused&&d.id===e:!u.paused&&d.id===e&&c.getIndex()===t}function te(e){if(g.id===e){if(_.$$state.status===0||_.$$state.status===-1)return`loading`;if(!u.paused)return`playing`}return`paused`}function I(){return g}function L(e){return u.volume=Math.max(Math.min(1,e),0),u.volume}function R(e){u.loop=e}function ne(){let e=new Audio;return e.addEventListener(`error`,K),e.addEventListener(`ended`,G),e.addEventListener(`pause`,le),e.addEventListener(`seeking`,ue),e.addEventListener(`seeked`,de),e.addEventListener(`timeupdate`,W),window.addEventListener(`storage`,function(e){e.key===`playing`&&le()}),e.volume=Number(Y.getItem(`globalPlayerVolume`))||1,e}function z(e=null){x(le),l.current&&l.current.pause(),ww(),J(),v=v.then(()=>u.play()).then(()=>{W(),r.$broadcast(sI,{id:d.id,playerStackIndex:e}),`mediaSession`in navigator&&(navigator.mediaSession.metadata=new Media
345Metadata({title:d?.song?.name??`BandLab`,artist:d?.song?.author?.name??d?.revision?.creator?.name,album:g.name,artwork:[{src:`${d?.song?.picture?.url}/640x640`,sizes:`640x640`,type:`image/jpeg`}]}),navigator.mediaSession.setActionHandler(`previoustrack`,se),navigator.mediaSession.setActionHandler(`nexttrack`,ce),navigator.mediaSession.setActionHandler(`seekbackward`,T),navigator.mediaSession.setActionHandler(`seekforward`,E),navigator.mediaSession.setActionHandler(`seekto`,function({seekTime:e}){A(e)}))}).catch(()=>{})}function re(){d.canEdit=!1,d.mixdown=null,d.post=null,d.revision={},d.track=null,d.state=``,d.isExplicit=!1,d.isPublic=!1,d.creator=null,d.samplesCount=null,d.features=null,d.id=null,d.trackPreview=null}function B(){return i.includes(`feed`)||i.includes(`user.feed`)||i.includes(`band.feed`)||i.includes(`community.feed`)}function V({post:e={},revision:t=null}){return e?.attachment?.type===`Beat`||e?.linkEntity?.type===`Beat`||e?.attachment?.object?.type===`Beat`||e?.track?.isBeats===!0||e?.track?.source===`beats`||e?.track?.sample?.source===`beats`||t?.song?.isBeats===!0}function ie(e,{collection:t=!1,contentSource:a,contextId:o=null,element:s,navigatingHistory:l=!1,playerStackIndex:f=null,triggeredFrom:p=`other`},v={}){d.id&&e&&!F(e.id)&&r.$broadcast(fI,{id:d.id});let y=n.resolve();h=p;let b=v?.id||v?.postId?v:e,x=!1,S=!t&&!l&&f===null&&B()&&V({post:v,revision:e});if(e&&d.id!==e.id){d.id!==e.id&&(re(),d.post=v,d.revision=v.revision,d.state=e.state,Object.assign(d,e)),r.$broadcast(lI,{id:e.id,playerStackIndex:function(){return f===null?l?c.getIndex():null:f}()});let t=e.track?.sample.audioUrl??e.mixdown?.file;u.src!==t&&(u.src=t),z(function(){return f===null?l?c.getIndex():null:f}()),e.track?ae(d):e.isPublic&&v.type===`Track`?ae(v):e.isPublic&&oe(e,v)}else z(function(){return f===null?l?c.getIndex():null:f}());if(a===`sounds`||a===`beats`){re();let e=c.getStack()[c.getIndex()];u.src=e.audioUrl,Object.assign(d,e),r.$broadcast(lI,{}),z()}if(S)g={},x=c.forcePushQueueSongs([b],b,{contentSource:`beats`,id:b?.postId??b?.id??b?.revision?.id});else if(t){let e=t.type===`Playlist`,n=g;g=t,_=y,x=c.forcePushQueueSongs(t.posts,b,{contentSource:ye(e?`playlist`:`album`),id:t.id}),!e&&n.id!==g.id&&fe(i,s)}else l||(g={},x=o?c.forcePushQueueSongs(null,b,{id:o,...a?{contentSource:ye(a)}:{}}):c.forcePushQueueSongs(null,b));return m=ye(a||c.getCurrentPlayerContext().contentSource||`other`),f===null?e&&!l&&!x&&c.setRevision(e):c.setIndex(f),v.playEvent&&v.placement&&os(v.playEvent,fE.play.adType,v.placement),y}function H(e){return[202,204].includes(e.status)}function ae(e){t.post(`https://www.bandlab.com/api/v1.3/posts/${e.id}/plays`).then(function(t){H(t)&&r.$broadcast(iI,{id:e.id})})}function oe(e,n){return t.post(`https://www.bandlab.com/api/v1.3/posts/${n.creator?.id.replaceAll(`-`,``)}_${n.id.replaceAll(`-`,``)}/plays`).then(function(t){H(t)&&r.$broadcast(iI,{id:e.id})})}function se(){let e=c.previous();if(U(),!e)return;let{contentSource:t,...n}=e;return n&&ie(n.revision,{navigatingHistory:!0,contentSource:t},n)}function ce(e={}){let t=c.next();if(U(),!t)return;let{contentSource:n,...r}=t;return r&&ie(r.revision,{...e,contentSource:n??e.contentSource,navigatingHistory:!0},r)}function le(){u.src!==``&&(u.pause(),r.$broadcast(oI,{id:d.id,playerStackIndex:c.getIndex()}),r.$applyAsync(),p())}function U(){u.paused||(u.pause(),u.currentTime=0,u.load(),p())}function W(){u.readyState<1||(r.$broadcast(cI,{id:d.id,timePassed:u.currentTime,duration:u.duration,isPaused:u.paused,playerStackIndex:c.getIndex()}),r.$applyAsync(),!(d.song.isSounds||d.song.isBeats)&&S(d.id))}async function G(){await v,r.$broadcast(cI,{id:d.id,timePassed:u.currentTime,duration:u.duration,playerStackIndex:c.getIndex()}),e.eventTrack(`Played till end`,{category:`Player`,label:d.id}),r.$broadcast(aI,{id:d.id,playerStackIndex:c.getIndex()}),U(),c.hasNext()&&!d.song.isSounds&&!d.song.isBeats&&ce({triggeredFrom:`auto_play`}),r.$applyAsync()}function ue(){r.$broadcast(dI)}function de(){r.$broadcast(uI)}function K(){U(),u.src=``}function q(t,r,i,s,{isAlbum:l}={}
345){if(g.id&&g.id===t.id){z();return}let u=g;g=t,_=d().then(f);function d(){return t.posts?n.resolve(t):l?a.get({id:t.id}).$promise:o.get({id:t.id}).$promise}function f(t){return c.forcePushQueueSongs(t.posts,null,{contentSource:ye(l?`album`:`playlist`),id:t.id}),m=c.getCurrentPlayerContext().contentSource,l?l&&u.id!==g.id&&fe(i,s):e.eventTrack(`Collection`,{category:`Play`}),ce({triggeredFrom:r,contentSource:ye(m)})}}function fe(e,t){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logAlbumPlay:n}){n(e,t)})}function J(){Y.playing=Date.now()}function pe(e){Object.assign(d,ul(e)),d.song={audioUrl:e.audioUrl,isBeats:!0,name:e.name,picture:e.picture.s||e.picture.url};let t=B()?{contentSource:`beats`,id:`feed_beats_${e.id}`}:{contentSource:`beats`};return c.forcePushQueueSongs([e],e,t),ie(null,{contentSource:`beats`,navigatingHistory:!0})}function me(e,t,n){let r=e.beats.map(e=>({...e,song:{audioUrl:e.audioUrl,isBeats:!0,name:e.name,picture:e.picture.s},contentSource:`beats`}));return c.forcePushQueueSongs(r,t,{contentSource:`beats`,url:n,id:e.id}),ie(null,{contentSource:`beats`,navigatingHistory:!0})}function he(e,t,n){let r=e.map(e=>({...e,song:{isSounds:!0,name:e.name,picture:e.imageUrl?go(e.imageUrl,mo,60):e.image,...e.isUserUploaded?{userSoundsSampleId:e.id}:{sampleId:e.id}},contentSource:`sounds`}));return c.forcePushQueueSongs(r,n,{contentSource:`sounds`,url:t}),ie(null,{contentSource:`sounds`,navigatingHistory:!0})}function ge(e,t){let n=e.map(e=>({...e,song:{isSounds:!0,name:e.name,picture:e.imageUrl?go(e.imageUrl,mo,60):e.image,...e.isUserUploaded?{userSoundsSampleId:e.id}:{sampleId:e.id}},contentSource:`sounds`}));c.forcePushQueueSongs(n,c.getStack()[c.getIndex()],{contentSource:`sounds`,url:t})}function _e(e){Object.assign(d,e),d.song={isSounds:!0,name:e.name,picture:go(e.imageUrl,mo,60),samplePack:e.id},c.forcePushQueueSongs([d],d,{contentSource:`sounds`}),ie(null,{contentSource:`sounds`})}function ve(e,t=e){F(t)||c.removeRevision(e)}function ye(e){return h.startsWith(`explore_`)||h.startsWith(`user_profile_music_tab_`)?h:e}}]);var vI=Math.floor,yI=Math.random;function bI(e,t){return e+vI(yI()*(t-e+1))}function xI(e,t){var n=-1,r=e.length,i=r-1;for(t=t===void 0?r:t;++n<t;){var a=bI(n,i),o=e[a];e[a]=e[n],e[n]=o}return e.length=t,e}function SI(e){return xI(eu(e))}function CI(e,t){return $e(t,function(t){return e[t]})}function wI(e){return e==null?[]:CI(e,Pn(e))}function TI(e){return xI(wI(e))}function EI(e){return(Ye(e)?SI:TI)(e)}angular.module(`bandlab.player`).factory(`PlayerHistory`,function(){var e=-1,t={},n=Promise.resolve(),r={},i={},a=!1,o=[],s=[],c=!1;return{getCurrentPageContext:function(){return r},getCurrentPlayerContext:function(){return t},setCurrentPageContext:function(e={}){r.url!==e.url&&this.removeQueueContext(r.url),r=e},forcePushQueueSongs:function(n,a=null,l=r){let u=l.id??l.url;if(!n&&!i[u])return!1;c=!1,t=l.id?l:r,OF(n,s,`id`).length&&(e=-1);let p=o[e];n&&(i[u]=n.slice());let m=0;return a&&(m=DC({tracks:i[u],selectedItem:a})),s=i[u].slice(),o=s.slice(),a&&m!==-1?f(m):d(p),a?m!==-1:!1},pushQueueSongs:function(n=[],r,a=!1){let l=n.filter(e=>e?.revision?.mixdown?.status===`Ready`),u=i[r]||[],d=a?EC(l):EC(l,u);if(r in i&&!a?i[r].push(...d):i[r]=d,t.url===r||t.id===r){if(a){let t=o[e];if(s=d,o=c?EI(d):d,!o.length){e=-1;return}if(!t){e=Math.min(e,o.length-1);return}let n=DC({tracks:o,selectedItem:t});e=n===-1?Math.min(e,o.length-1):n;return}s.push(...d),c?o.push(...EI(d)):o.push(...d)}},removeQueueContext(e){[t.url,t.id].includes(e)||delete i[e]},getStack:function(){return o},playNext:function(t,n){let r=t.revision?{contentSource:n,...t}:{creator:t.creator,type:`Revision`,id:t.postId,revision:t,contentSource:n};o.splice(e+1,0,r),s.splice(e+1,0,r)},getIndex:function(){return e},setIndex:f,setRevision:d,setRepeat:function(e){a=e},isShuffled:function(){return c},toggleShuffle:function(){c=!c,c?l():u()},removeItemByIndex:function(t){if(t!==e){if(c){let[e]=o.splice(t,1),n=s.findIndex(t=>t.id===e.id||t.id===e.postId);s.splice(n,1)}else o.splice(t,1),s.splice(t,1);t<e&&--e}},removeRevision:function(e){ja(o,function(t){return t.revisionId===e||t.revision.id===e}),ja(s,function(t){return t.revisionId===e||t.revision.id===e})},removeSong:function(t){let n=o[e],r={revision:{song:{id:t}}};ja(o,r),ja(s,r),d(n)},reorderStack:function(t,n){let[r]=o.splice(t,1);o.splice(n,0,r),c||(s.splice(t,1),s.splice(n,0,r)),t<e&&n>=e?--e:t>e&&n<=e?e+=1:t===e&&(e=n)},previous:function(){return e=e===0&&a?o.length-1:e-1,p(),o[e]},hasPrevious:function(){return a||!!o[e-1]},next:function(){return e=e===o.length-1&&a?0:e+1,p(),o[e]},hasNext:function(){return a||!!o[e+1]}};function l(){o=o.slice(0,e+1).concat(EI(o.slice(e+1))),c=!0}
345function u(){let t=o[e];o=s.slice(),d(t),c=!1}function d(t){if(!t){e=-1;return}let n=t.revision?t.revision.id:t.id;e=jS(o,e=>n===e.revision.id),p()}function f(t){e=t,p()}function p(){n=n.then(function(){if(t.loader&&e>=o.length-2)return t.loader().catch(()=>{})})}});function DI({scope:e,steps:t,onHighlightedElementChanged:n,onEnded:r}){let i=O(0),a=O(!1),o=O(!1),s=U(()=>t[i.value]),c=U(()=>i.value+1),l=O(null),u,d,f=Fa(n,300);return N(()=>{u&&u(),d&&d()}),ZO(s.value.highlightedElementSelector).then(e=>{if(!e){m();return}l.value=e,g(l.value),d=h(l.value)}),{highlightedElement:l,isEnded:a,isHighlightLayerVisible:o,step:s,currentStepNo:c,next:p,end:m};async function p(){if(u(),o.value=!1,i.value<t.length-1){d();let e=await ZO(t[i.value+1].highlightedElementSelector);if(!e){m();return}l.value=e,i.value++,g(l.value),d=h(l.value)}else m()}function m(){e.$destroy(),r()}function h(e){let t=new ResizeObserver(()=>{f()});return t.observe(e),()=>{t.disconnect()}}function g(e){if(o.value=!0,e.getBoundingClientRect().top>=0&&e.getBoundingClientRect().bottom<=window.innerHeight){u=WE(),n();return}let t;addEventListener(`scroll`,r),e.scrollIntoView({block:`center`,behavior:`smooth`});function r(){clearTimeout(t),t=setTimeout(function(){u=WE(),n(),removeEventListener(`scroll`,r)},200)}}}angular.module(`bandlab.post`,[]).directive(`postPageMobile`,[`$injector`,function(e){return{scope:{post:`<`},link:function(t,n){$(import(`./DmXzGhCk.js`).then(e=>e.n),n[0],t,{$injector:e},{post:t.post,commentId:e.get(`$stateParams`).commentId,replyId:e.get(`$stateParams`).replyId,isDirectRoute:!0,triggeredFrom:e.get(`$stateParams`).triggeredFromAttribution})}}}]).directive(`postExplicitBadge`,function(){return{scope:{size:`<?`},link:function(e,t){$(import(`./BIrjlK-F.js`).then(e=>e.t),t[0],e,{},{size:e.size})}}}).directive(`postPrivateBadge`,function(){return{scope:{withTooltip:`=`},link:function(e,t){$(import(`./B3uCobxR.js`),t[0],e,{},{withTooltip:e.withTooltip})}}}).directive(`postUnlistedBadge`,function(){return{link:function(e,t){$(import(`./zoIbLF6A.js`),t[0],e)}}}).directive(`postCardCaption`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{maxLines:`<`,hasShowLess:`<`,post:`=`,revision:`=`},link:function(t,n){let r=h({maxLines:t.maxLines,hasShowLess:t.hasShowLess,post:t.post,revision:t.revision}),i=t.$watch(`post.caption`,function(){r.post={...t.post}});t.$on(`$destroy`,function(){i()}),$(import(`./B4UVK1BZ.js`).then(e=>e.t),n[0],t,{$injector:e},r)}}}]).directive(`postCardHeaderAvatar`,function(){return{scope:{post:`<`,isBoosted:`<`,triggeredFrom:`<`,isFeedAttachment:`<`},link:function(e,t){let n=h({post:e.post,isBoosted:e.isBoosted,triggeredFrom:e.triggeredFrom,isFeedAttachment:e.isFeedAttachment});e.$watch(`post.creator.picture.url`,()=>{n.post={...e.post}}),$(import(`./CUfmxmqo.js`).then(e=>e.t),t[0],e,{},n)}}}).directive(`postCardHeaderContent`,[`$injector`,function(e){return{scope:{post:`<`,isBoosted:`<`,triggeredFrom:`<`,extendedBoostSubtitle:`<`,highlightedBy:`<`},link:function(t,n){let r=h({post:t.post,isBoosted:t.isBoosted,triggeredFrom:t.triggeredFrom,extendedBoostSubtitle:t.extendedBoostSubtitle,highlightedBy:t.highlightedBy});$(import(`./IVBzZgUi.js`).then(e=>e.t),n[0],t,{$injector:e},r)}}}]).directive(`repostCardHeaderContent`,function(){return{scope:{post:`<`,isBoosted:`<`,triggeredFrom:`<`,extendedBoostSubtitle:`<`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_repost-card-header-content-08d3ddfdd.html`}}).directive(`postCardFollowButton`,[`$injector`,function(e){return{scope:{post:`<`,isBoosted:`<`},link:function(t,n){let r=h({post:t.post,isBoosted:t.isBoosted});$(import(`./BJkMgTkF.js`).then(e=>e.t),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`postRelatedAlbum`,function(){return{scope:{album:`=`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-related-album-a4c5a5970.html`}}).directive(`postRelatedBand`,function(){return{scope:{band:`=`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-related-band-f08d6699c.html`,controller:[`$element`,`$scope`,`$state`,`User`,function(e,t,n,r){t.triggeredFrom=Ee(n,e),t.getMembers=function(e){return r.fromBand(Object.assign(e,{bandId:t.band.id,accepted:!0})).$promise}}]}}).directive(`postRelatedRecommended`,function(){return{scope:{posts:`=`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-related-recommended-737c6bb69.html`}}).directive(`postRelatedCollaborators`,function(){return{scope:{collaborators:`=`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-related-collaborators-e037310b3.html`}}).directive(`postsFromSameCreator`,function(){return{scope:{posts:`<`,contextId:`<`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_posts-from-same-creator-203f524fb.html`,controllerAs:`vm`}}
345).directive(`postCardReactionsButton`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{post:`<`,shouldDisplayCounter:`<`,triggeredFrom:`<`,isTrackLayout:`<`},link:function(t,n){let r=h({post:t.post,triggeredFrom:t.triggeredFrom,isTrackLayout:t.isTrackLayout,shouldDisplayCounter:t.shouldDisplayCounter}),i=[`post`,`triggeredFrom`,`isTrackLayout`,`shouldDisplayCounter`],a=t.$watchGroup(i.map(e=>()=>t[e]),e=>{i.forEach((t,n)=>{r[t]=e[n]})});t.$on(`$destroy`,a),$(import(`./CMsRMI-Y.js`),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`postCardReactionsPreview`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{getReactors:`=`,reactionsMap:`=`,reactionsCount:`=`,initiatorReaction:`=`,likersEntityType:`=`,likersEntityId:`=`,postCreatorId:`<`},link:function(t,n){let r=h({getReactors:t.getReactors,reactionsMap:t.reactionsMap,reactionsCount:t.reactionsCount,initiatorReaction:t.initiatorReaction,likersEntityType:t.likersEntityType,likersEntityId:t.likersEntityId,postCreatorId:t.postCreatorId}),i=t.$watchGroup([()=>t.reactionsMap,()=>t.reactionsCount,()=>t.initiatorReaction],function(){r.reactionsMap=t.reactionsMap,r.reactionsCount=t.reactionsCount,r.initiatorReaction=t.initiatorReaction});t.$on(`$destroy`,function(){i()}),$(import(`./D45l60Fg.js`).then(e=>e.n),n[0],t,{$injector:e,scope:t},r)}}}]).directive(`trendingVideosCarousel`,[`$injector`,function(e){return{restrict:`E`,replace:!0,link:function(t,n){$(import(`./CIe92v_f.js`),n[0],t,{$injector:e,scope:t})}}}]).directive(`postCardRecommendationPrompt`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{post:`<`},link:function(t,n){let r=h({post:t.post});$(import(`./XbQsPkAG.js`),n[0],t,{$injector:e},r)}}}]).directive(`postPoll`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{post:`<`},link:function(t,n){let r=h({post:t.post});$(import(`./Dg1IwOLc.js`).then(e=>e.n),n[0],t,{$injector:e,$scope:t},r)}}}]).directive(`postPollEdit`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{poll:`=`,isReadOnly:`<`},link:function(t,n){let r=h({poll:t.poll,isReadOnly:t.isReadOnly,onPollRemoved:()=>{t.poll=null,t.$applyAsync()}});$(import(`./CBHxkNYt.js`).then(e=>e.n),n[0],t,{$injector:e},r)}}}]),angular.module(`bandlab.post`).controller(`PostCtrl`,[`Me`,function(e){var t=this;t.$onInit=n,t.me=e;function n(){t.post.revision&&(t.post.revision.postId=t.post.id,t.post.revision.isExplicit=t.post.isExplicit)}t.onEngagement=i,t.onImpression=a;function r(e,n){os(e,n,t.post.placement)}function i(e){if(!t.engagementEvent)return;let{adEvent:n,adType:a}=pE(e);if(a!==fE.play.adType){if(!t[n])return i(`click`);r(t[n],a)}}function a(){t.impressionEvent&&os(t.impressionEvent,`impression`,t.post.placement)}}]),angular.module(`bandlab.post`).controller(`PostEditCtrl`,[`$analytics`,`$rootScope`,`$scope`,`$state`,`AppNotifications`,`ChatHelper`,`ConfirmModal`,`Me`,`Post`,function(e,t,n,r,i,a,o,s,c){n.post=new c(n.post),a.resetMessageAttachmentsCache(),n.$watch(`post.caption`,function(e,t){n.post.backgroundId&&n.post.caption.split(/\n/).reduce((e,t)=>t.length>25?e+Math.ceil(t.length/25):e+1,0)>7&&(n.post.caption=t)}),n.editPost=function(){c.update({id:n.post.id,caption:n.post.caption.trim(),link:n.post.link}).$promise.then(function(r){e.eventTrack(`Edit Post`,{category:`Post`,label:og(r.type)}),l(r),t.$broadcast(`editPostModal`,`close`),t.$broadcast(`$post:edit`,{post:n.post})}).catch(e=>{e.status!==403&&i.addNotification({title:`Unable to edit post`,content:Qe(e,`data.message`),classList:`alert`,autoclose:5e3}),n.postForm.$setPristine()})};function l(e){let t=u(e);[n.post,n.$parent?.post].forEach(e=>{e&&Object.assign(e,t)})}function u({caption:e,type:t,link:n,linkEntity:r,attachment:i}){let a=!!n;return{caption:e,type:t,link:n||null,linkEntity:a&&r||null,attachment:a&&i||null}}function d(e){let t=r.current.name.includes(`band.feed`)&&`bands`||r.current.name.includes(`community.feed`)&&`communities`||`users`;return{type:t,id:t===`bands`&&e.band.id||t===`communities`&&e.community.id||e.creator.id}}n.pinPost=function(){return c.get({id:n.post.id}).$promise.then(function(e){let{type:r,id:a}=d(e);return c[{bands:`fromBand`,communities:`fromCommunity`}[r]||`fromUser`]({[{bands:`bandId`,communities:`communityId`}[r]||`userId`]:a,limit:1}).$promise.then(function({data:[{isPinned:e}]=[{}]}={}){return e?new o({confirmLabel:`Pin`,contentScope:{title:`Pin to Top`,message:`<p>This will replace any previously pinned post.</p>`},onConfirm:s}).show():s();function s(){return c.pinPost({entityType:r,entityId:a,id:n.post.id}).$promise.then(function(){n.$parent.post.isPinned=!0,t.$broadcast(`$post:pin`,{post:n.post}),i.addNotification({content:`Post pinned`,autoclose:5e3})}).catch(function(){i.addNotification({content:`Something went wrong, please try again later`,classList:`alert`,autoclose:5e3})})}})})},n.unpinPost=function(){return c.get({id:n.post.id}).$promise.then(function(e){let{type:r,id:a}=d(e);return c.unpinPost({entityType:r,entityId:a,id:n.post.id}).$promise.then(function(){n.$parent.post.isPinned=!1,t.$broadcast(`$post:unpin`,{post:n.post}),i.addNotification({content:`Post unpinned`,autoclose:5e3})})}).catch(function(){i.addNotification({content:`Something went wrong, please try again later`,classList:`alert`,autoclose:5e3})})},n.deletePost=function(n){return new o({confirmLabel:`Delete`,contentScope:{title:`Delete this post?`,message:`<p>You wonât be able to undo this action.</p>`},onConfirm:function(){return c.delete({id:n.id}).$promise.then(function(){e.eventTrack(`Delete Post`,{category:`Post`,label:og(n.type)}),t.$broadcast(`$post:delete`,{post:n})})}}).show()},n.hideCreatorFromTrending=function(e){return new o({confirmLabel:`Hide`,contentScope:{title:`Hide this post?`,message:`<p>${`You will see less posts from ${`@${e.creator.username}`} from now on.`}</p>`},onConfirm:()=>n(e.creator.id)}).show();function n(n){c.hideCreatorFromTrending({userId:s.id,creatorId:n}
345).$promise.then(()=>{i.addNotification({title:`You will see less posts like this from now on.`,classList:`success`,autoclose:5e3}),t.$broadcast(`$post:delete`,{post:e})}).catch(()=>{i.addNotification({content:`Something went wrong, please try again later`,classList:`alert`,autoclose:5e3})})}}}]),angular.module(`bandlab.post`).controller(`PostTrackEditCtrl`,[`$rootScope`,`$scope`,`ConfirmModal`,`Player`,`Post`,function(e,t,n,r,i){let a=t.post;t.post=new i({...t.post,track:{...t.post.track}}),t.makeTrackPostPrivate=function(){new n({confirmLabel:`Make Private`,toFocusConfirm:!0,contentScope:{title:`Make track private`,message:`<p>Making your track private will prevent this post from appearing on public feeds.</p>`},onConfirm:function(){return i.update({id:t.post.id},{state:`Private`}).$promise.then(function(){a.state=`Private`,e.$broadcast(`$revision:changed`,{action:`unpublish`,revision:{id:a.id}}),r.removeRevisionFromQueue(a.id)})}}).show()}}]),angular.module(`bandlab.post`).directive(`draggablePostTile`,[`Collection`,`Me`,`Player`,`PlayerHistory`,function(e,t,n,r){let i=null,a=null,o=null;return{link:function(s,c){let l=s.vm.collection,u=s.vm.post,d;if(l.creator.id!==t.id)return;let f=c[0].closest(`revision-list-item`)||c[0].closest(`album-track-tile`);c[0].draggable=!0,c[0].addEventListener(`dragstart`,function(e){if(e.stopPropagation(),i=u,e.dataTransfer.setData(`text/plain`,``),e.dataTransfer.setDragImage){d=this.parentElement.cloneNode(!0);let t=d.querySelector(`.post-tile-action`);t&&t.remove();let n=d.querySelector(`.player-audio-controls`);n&&n.remove(),d.style.borderRadius=`2px`,d.style.padding=`4px`,d.style.transform=`translateX(-500px)`,d.style.width=`400px`,document.body.appendChild(d),e.dataTransfer.setDragImage(d,0,0)}f.addEventListener(`dragover`,p)}),c[0].addEventListener(`dragend`,function(){d&&document.body.removeChild(d);let t=l.posts.indexOf(i);t!==o&&o!==null&&(l.posts.splice(t,1),l.posts.splice(o,0,i),e.updatePostOrder({id:l.id,postId:i.id,order:o}),n.getCurrentCollection().id&&n.getCurrentCollection().id===l.id&&r.forcePushQueueSongs(l.posts)),a=null,i=null,o=null,s.isDroppedAbove=!1,s.isDroppedBelow=!1,f.removeEventListener(`dragover`,p),s.$applyAsync()}),f.addEventListener(`dragover`,function(e){if(e.target.contains(this)||i===null||i===u)return;let t=m(f,e),n=h(),r=l.posts.indexOf(u);a=u,o=!t&&!n?r+1:t&&n?r-1:r,s.isDroppedAbove=g(r,n),s.isDroppedBelow=_(r,n),s.$applyAsync()}),f.addEventListener(`dragleave`,function(){s.isDroppedAbove=!1,s.isDroppedBelow=!1,s.$applyAsync()});function p(e){e.preventDefault()}function m(e,t){let n=e.getBoundingClientRect();return n.top+n.height-t.y>n.height/2}function h(){return l.posts.indexOf(i)<l.posts.indexOf(u)}function g(e,t){return a===u&&(o<e||!t&&o===e)}function _(e,t){return a===u&&(o>e||t&&o===e)}}}}]),angular.module(`bandlab.post`).directive(`hashtagLimit`,[`$injector`,function(e){return{restrict:`A`,require:`ngModel`,link:function(t,n,r,i){if(!i)return;let a=e.get(`AppNotifications`),o=_f({input:n[0],AppNotifications:a});i.$validators.hashtagLimit=function(e){return!e||!gf(e)};let s=t.$watch(()=>i.$modelValue,e=>{e&&gf(e)&&(hf(a),s())});t.$on(`$destroy`,()=>{o.destroy(),s()})}}}]),angular.module(`bandlab.post`).component(`openGraphCard`,{bindings:{link:`<`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_open-graph-card-698e52dbc.html`,controllerAs:`vm`}),angular.module(`bandlab.post`).component(`postAttachment`,{bindings:{canRemoveLink:`<`,post:`<`,feedDefaultArrangement:`<`,triggeredFrom:`<`,isAttachment:`<`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-attachment-7a32c7a7e.html`,controller:[`$element`,`$scope`,`$state`,`Album`,`ChatHelper`,function(e,t,n,r,i){let a=this,o=[`Post`,`Revision`],s=[`Post`,`Revision`,`Album`,`Collection`,`User`,`Band`,`Community`];t.displayCustomAttachment=ee,t.removeLink=re,t.shouldShowGenericLinkPreview=z,a.$onInit=l,a.sendInsights=ie;let c=Fa(e=>{i.getMessageAttachments(e).then(async function([n]){if(!n){g(e);return}n.object=M(await n.object);let r=n?.object?.type===`Revision`,i=r?N(`Revision`,n.object):A(n);a.post.attachment=k(i),a.resolvedInternalAttachmentUrl=e,r&&t.$emit(`$post:attachmentResolved`,{post:a.post,resolvedPost:a.post.attachment?.object?.post})}).finally(function(){a.pendingInternalAttachmentUrl===e&&(a.isPendingInternalUrl=!1,a.pendingInternalAttachmentUrl=null)})},1e3,{leading:!0});function l(){u(),d(),f(),p()}function u(){a.disableRichPreview=O(),a.disableRichPreview&&(a.isPendingInternalUrl=!1)}function d(){t.$on(`$post:delete`,function(e,{post:t}){let n=t?.id;if(!n||a.post?.attachment?.type!==`Post`)return;let r=a.post?.attachment?.object;if(!r)return;let i=r.id===n,o=r.post?.id===n;(i||o)&&_(`Post`,a.post?.link?.url||null)})}function f(){!a.post.link&&a.post.type===`Link`&&a.post.attachment?.type===`Link`&&(a.post.link=a.post.attachment.object||null,a.post.attachment=null);let e=j(a.post.linkEntity)||A(a.post.attachment);if(e){a.post.attachment=k(e);return}if(O()){m();return}h(a.post.link?.url)}function p(){a.post?.canEdit&&t.$watch(`vm.post.link.url`,e=>{e&&!O()&&h(e)})}function m(){a.post?.type===`Link`&&(a.post?.attachment||h(a.post?.link?.url))}function h(e){if(e&&i.isInternalUrl(e)){if(a.resolvedInternalAttachmentUrl===e&&a.post?.attachment){a.isPendingInternalUrl=!1;return}a.isPendingInternalUrl=!0,a.pendingInternalAttachmentUrl=e,c(e)}}function g(e){let t=v(e);if(t)return _(t,e);B()}function _(e,t){a.post.attachment=k(P(e,null)),a.resolvedInternalAttachmentUrl=t}function v(e){let t=b(e);return t?y(t):null}function y(e){return[[`Post`,x],[`Collection`,S],[`Band`,C],[`Community`,w],[`User`,T]].find(([,t])=>t(e))?.[0]||null}function b(e){try{return new URL(e,window.location.origin).pathname.toLowerCase()}catch{return null}}function x(e){let[t]=E(e);return t===`post`||t===`posts`||t===`track`}function S(e){let t=E(e);return t.length>=3&&t[1]===`collections`}function C(e){let[t]=E(e);return t===`band`}function w(e){let[t]=E(e);return t===`community`}function T(e){let[t,n,r]=E(e);return!/^[a-z0-9][a-z0-9_]{2,19}$/.test(t||``)||t===`band`||t===`song`?!1:!n||n===`bands`&&!r}
345function E(e){return e.split(`/`).filter(Boolean)}function D(){return Number(a.post?.__attachmentDepth||0)}function O(){return D()>=1}function k(e){if(!e?.object||!o.includes(e.type))return e;let t=e.type===`Post`?e.object:e.object.post;return t&&(t.__attachmentDepth=D()+1),e}function A(e){return N(e?.type,M(e?.object))||e}function j(e){switch(e?.type){case`User`:break;case`Band`:break;case`Community`:return N(`Community`,e.community);case`Playlist`:case`Collection`:{let t=e.type===`Playlist`?`Collection`:e.type,n=e.playlist||e.collection||e.object;return n?N(t,n):void 0}case`Album`:return Array.isArray(e.album?.posts)&&(e.album.posts=e.album.posts.map(t=>r.trackPostToPost(t,e.album))),N(`Album`,e.album);case`RevisionPost`:return N(`Revision`,e.revisionPost);case`Beat`:return N(`Beat`,e.beat||e.object)}}function M(e){return e?.$$state?.status===1&&e?.$$state?.value?e.$$state.value:e}function N(e,t){switch(e){case`Track`:return N(`Revision`,t?.post?.revision?t.post:t);case`Revision`:return t?t?.revision?F(`Revision`,t):t?.post?.revision?F(`Revision`,t.post):F(`Revision`,{...t.post,creator:t.creator,revision:t}):F(`Revision`,null);case`Album`:return t?.type?F(`Album`,t,r.albumToPost(t)):P(`Album`,null);case`Beat`:return F(`Beat`,t);case`Community`:case`Collection`:return t?.id?P(e,t):P(e,null);case`User`:case`Band`:return t?P(e,t):void 0}}function P(e,t){return{object:t,type:e}}function F(e,t,n=t){return t?P(e,{...t,post:{...n,attachment:{object:t,type:e}}}):P(e,null)}function ee({type:e}){return te(e)?I(e):!L(e)&&R(e)}function te(e){return a.disableRichPreview&&o.includes(e)}function I(e){return!!(e===a.post?.attachment?.type&&!a.post?.attachment?.object&&s.includes(e)||e===a.post?.attachment?.type&&e===`Post`&&ne(a.post?.attachment?.object))}function L(e){return!(!a.isAttachment||e!==`Album`)}function R(e){let t=a.post?.attachment?.type,n=!!a.post?.attachment?.object,r=!!a.post?.attachment?.url,o=s.includes(e),c=i.isSupportedAttachmentType(e);return e===t&&(n||o||c&&r)}function ne(e){let t=e?.attachment;return t?s.includes(t.type)&&!t.object:!1}function z(){if(!a.post?.link||a.isPendingInternalUrl)return!1;let e=a.post?.attachment?.type;return!e||!ee({type:e})}function re(){a.post.attachment=null,a.post.link=null,a.post.pending=null,V()}function B(){a.post.attachment=null,V()}function V(){a.resolvedInternalAttachmentUrl=null,a.pendingInternalAttachmentUrl=null,a.isPendingInternalUrl=!1}function ie(t,r){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logPlaylistShare:i}){a.post.attachment.type===`Collection`&&i(t,r,Ee(n,e))})}}],controllerAs:`vm`}).component(`postAttachmentLoader`,{bindings:{canRemoveLink:`<`,removeLink:`&`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-attachment-loader-6083c46f6.html`,controllerAs:`vm`}),OI.$inject=[`$element`,`$scope`,`$state`,`Me`,`Tag`,`UserHelper`];function OI(e,t,n,r,i,a){"ngInject";var o=this;o.$onInit=l,o.me=r,o.videoAdPlacement=n.is(`feed.trending`)?is.videoQueueFeed:``,o.openPostDetailsModal=null,o.onEngagement=p,o.onImpression=f,o.onPostImpression=o.isBoosted?null:m,i.getGenres().then(function(e){t.genres=e,s(e)}),t.$on(`$user:relationChanged`,function(e,{user:t,type:n}){t.username===o.post.creator.username&&[`follow`,`unfollow`].includes(n)&&(o.post.creator.followingState=t.followingState,o.post.creator.isFollower=t.isFollower)}),t.$on(`$band:relationChanged`,function(e,{band:t}){t.id===o.post.band?.id&&(o.post.band.followingState=t.followingState)}
345),t.$on(`$albumTrack:changed`,function(e,n){n.id===o.post.id&&(o.post.caption=n.caption,o.post.revision.song.name=n.track.name,o.post.revision.song.picture=n.track.picture,o.post.track.picture=n.track.picture,o.post.track.name=n.track.name,o.post.state=n.state,o.post.isExplicit=n.isExplicit,o.post.revision.genres=t.genres.filter(e=>e.id===n.track.genreId))});function s(e){let t=o.post.revision?.genres?.[0];if(!o.post.track||!t?.id||t.name)return;let n=e.find(e=>e.id===t.id);n&&(o.post.revision.genres=[n])}t.$on(`$post:reactionChanged`,function(e,{post:n}){n.id===o.post.id&&(o.post.initiatorReaction=n.initiatorReaction,o.post.counters.reactions=n.counters.reactions,o.post.reactions=n.reactions,t.$applyAsync())}),t.$on(`$post:displaySensitive`,function(e,{postId:n}){n===o.post.id&&(o.post.isSensitive=!1,t.$applyAsync())}),t.$on(`$poll:updated`,function(e,{postId:t,poll:n}){t===o.post.id&&(o.post.poll=n)}),t.$on(`$comment:updateCounter`,function(e,{id:t,nextCommentsCounter:n}){t===o.post.id&&(o.post.counters.comments=n)});function c(){t.$on(`$comment:submit`,function(e,{id:t}){t===o.post.id&&p(`comment`)})}function l(){o.maxLines=3,(n.includes(`feed`)||n.includes(`user.feed`)||n.includes(`post`))&&(o.maxLines=15),o.post.revision&&(o.post.revision.postId=o.post.id,o.post.revision.isExplicit=o.post.isExplicit),o.engagementEvent&&c(),a.usersCache.has(o.post.creator.id)&&
345(o.post.creator=a.usersCache.get(o.post.creator.id)),o.triggeredFrom??=Ee(n,e),o.displayComments=!angular.isDefined(o.displayComments)||o.displayComments,o.communityVariant=u(),o.postMaxCharacters=r.isBetaUser?2500:250,o.hideSingleUrlCaption=d(),o.openPostDetailsModal=ss({isCommunityModal:o.communityVariant,overrideLoadMoreVideos:n.includes(`feed.communities`)||n.includes(`feed.following`),...o})}function u(){return n.includes(`feed.communities`)||n.includes(`community.feed`)}function d(){if(!o.post.link||o.post.attachment||o.verticalVideoPost||!o.post.caption)return!1;let e=o.post.caption.trim();return/^https?:\/\/[^\s]+$/.test(e)}function f(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logPostImpression:e,logFeedThirdPostView:t,logFeedTenthPostView:r}){e(o.post,o.triggeredFrom),o.index===2?t(n,o.post):o.index===9&&r(n,o.post)}),o.impressionEvent&&import(`./Da6vHxCQ.js`).then(e=>e.t).then(function({logEvent:e}){e(o.impressionEvent,`impression`,o.adEventSource)})}function p(e){if(!o.engagementEvent)return;let{adEvent:t,adType:n}=pE(e);if(!o[t])return p(`click`);h(o[t],n)}function m(e,t){angular.isUndefined(o.index)||o.index===null||o.post&&o.post?.feedSessionId&&TE({contentSessionId:o.post.feedSessionId,data:{postId:o.post.id,postType:o.post.type.toLowerCase(),postCreatorUserId:o.post.creator.id,postVisibility:o.post.state.toLowerCase(),triggeredFrom:o.triggeredFrom,position:o.index,partialDurationMs:e,fullDurationMs:t}})}function h(e,t){import(`./Da6vHxCQ.js`).then(e=>e.t).then(function({logEvent:n}){n(e,t,o.adEventSource)})}}angular.module(`bandlab.post`).component(`postCard`,{bindings:{adEventSource:`=`,canHidePost:`<`,commentId:`<`,compactReactionsLayout:`<`,displayComments:`<`,feedDefaultArrangement:`<`,engagementEvent:`=`,commentEvent:`=`,followEvent:`=`,likeEvent:`=`,playEvent:`=`,profileOpenEvent:`=`,shareOpenEvent:`=`,impressionEvent:`=`,isAttachment:`=`,isBoosted:`=`,isLast:`<`,index:`<`,post:`=`,replyId:`<`,triggeredFrom:`<`,verticalVideoPost:`<`,shouldDisplayCommentsModal:`<`,highlightedBy:`<`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-card-84088197c.html`,controller:OI,controllerAs:`vm`}).controller(`PostShareCtrl`,[`$element`,`$scope`,`$state`,`Share`,function(e,t,n,r){t.getOrigin=()=>Ee(n,e),t.getShareUrl=r.getShareUrl,t.sendInsights=function(e,n,r=t.getOrigin()){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logPostShare:t}){t(e,n,r)})}}]),angular.module(`bandlab.post`).component(`postTileSocial`,{bindings:{isBoosted:`<`,post:`=`,revision:`=`,triggeredFrom:`<`,dropdownPostActions:`<`,compactReactionsLayout:`<`,verticalVideoPost:`<`,shouldDisplayCommentsModal:`<`,createPostCommentsModal:`<`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-tile-social-376961978.html`,controller:[`$scope`,`Me`,`User`,function(e,t,n){let r=this;e.$on(`views`,(e,t)=>{let{id:i,views:a}=t;if(r.post.video&&r.post.video.id===i)return r.post.video.counters.views=a,n.videoViews({videoId:i}).$promise}),r.me=t,r.getReactors=i;function i(e,i=10,a){return Object.assign(e,{entity:`posts`,postCompositeId:r.post.postCompositeId,userId:t.id,limit:i,after:a}),n.reactionsWithCursor(e).$promise}}],controllerAs:`vm`}),angular.module(`bandlab.post`).component(`postAttachmentSocial`,{bindings:{post:`=`},templateUrl:`https://www.bandlab.com/web-app/post/partials/_post-attachment-social-21ffc9974.html`,controllerAs:`vm`}),angular.module(`bandlab.post`).directive(`textPostInput`,[`ChatHelper`,function(e){return{restrict:`A`,require:`ngModel`,link:function(t,n,r,i){let a=new Set;i.$viewChangeListeners.push(Fa(()=>{let n=i.$viewValue;if(t.post.link||!o())return;t.post.pending=!0;let r=Array.from(a).reduce(function(e,t){return e.replaceAll(t,``)},n);e.getLinkPreview(r).then(function([e]){n===t.post.caption&&(t.post.link=e&&!a.has(e.value)&&e.object||null,e&&a.add(e.value))}).finally(function(){delete t.post.pending})},1e3,{leading:!0}));function o(){return![`Image`,`Video`].includes(t.post.type)}}}}]),angular.module(`bandlab.post.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`postNew`,{url:`/post/new?caption&link`,template:``,controller:[`$stateParams`,`ChatHelper`,`Me`,`Post`,function(e,t,n,r){Promise.all([import(`./C3m-9g
345sr.js`).then(e=>e.t),import(`./BUIA2SYS.js`).then(e=>e.t),e.link?t.getExternalUrl(e.link).then(([e])=>e).catch(()=>({})):{}]).then(function([{default:t},{createModal:i},{object:a}]){let o=O(!1),s=O({canEdit:!0,caption:e.caption??``,...a?{link:a}:{},type:a?`Link`:`Text`});i(t,{allowBackground:!1,allowMedia:!1,entity:n,entityType:`user`,isSubmitting:o,post:s,onSubmit:()=>{c()}});function c(){o.value=!0,r.createPost({caption:s.value.caption,entity:`users`,id:n.id,link:s.value.link}).$promise.then(function(e){let t=e.link&&e.link.url.includes(`airbit.com`)?{airbit_share:!0}:{},n=s.link?`link`:`text`;return Promise.all([import(`./DvQD5s06.js`).then(e=>e.t).then(function({logPostCreate:r}){return r({...t,destination:`feed`,post_id:e.id,post_type:n})})])}).finally(function(){o.value=!1,window.close()})}})}]}).state(`post`,{url:`/post/{id:[a-zA-Z0-9-_]+}?{commentId:int}&{replyId:int}&{from:string}&{triggeredFromAttribution:string}`,params:{rewriteTracking:function(){return()=>`/post`}},templateUrl:`https://www.bandlab.com/web-app/post/views/post-layout-7d03c5a21.html`,redirectTo:function(e){return e.injector().getAsync(`thePost`).then(function(t){if(t.type===`Revision`||t.type===`Track`)return{state:`track`,params:{id:t.id,revId:t.revision.id,commentId:e.params().commentId,replyId:e.params().replyId,from:e.params().from}}})},resolve:{thePost:[`$stateParams`,`Post`,`User`,function(e,t,n){return t.get({id:e.id}).$promise.then(function(e){return`followingState`in e.creator?e:n.get({id:e.creator.id}).$promise.then(function(t){return e.creator=t,e})})}]},onEnter:[`Page`,`thePost`,function(e,t){let n=t.creator.picture.url,r=t.creator.name;t.isPostedAsBand&&(n=t.band.picture.url,r=t.band.name),e.setMetadata({image:`${n}0x360`,title:`${`A post by ${r} | BandLab`}`,description:`${t.caption?`${t.caption} | `:``}${`Listen to music from ${r} and follow their creative process on BandLab.`}`}),e.update()}],onExit:[`Page`,function(e){e.clearMetadata()}],controller:[`$location`,`$scope`,`$state`,`PlayerHistory`,`Post`,`thePost`,`Me`,function(e,t,n,r,i,a,o){let s=e.url(),c=null;t.me=o,t.post=a,t.postsFromSameCreatorContext=ze(),l(),t.$on(`$destroy`,()=>r.removeQueueContext(s)),t.$on(`$post:delete`,function(e,t){a.id===t.post.id&&n.go(`user.feed`,{username:o.username})}),t.$on(`$post:attachmentResolved`,function(e,{post:n,resolvedPost:r}){n?.id===t.post.id&&r?.revision?.mixdown?.status===`Ready`&&l()}),(a.isPostedAsBand?i.fromBand({bandId:a.band.id,limit:4,types:`revision`}).$promise:i.getTracksFromUser({userId:a.creator.id,limit:4}).$promise).then(function({data:e}){t.postsFromSameCreator=e.filter(e=>e.id!==t.post.id).slice(0,3),r.pushQueueSongs(t.postsFromSameCreator,t.postsFromSameCreatorContext,!0),t.$on(`$destroy`,()=>r.removeQueueContext(t.postsFromSameCreatorContext))});function l(){let e=wC(t.post),i=e?.revision?.id??null;e?.revision?.mixdown?.status===`Ready`&&(i&&i===c||(e.revision.postId??=e.id,e.revision.isExplicit??=e.isExplicit,r.setCurrentPageContext({contentSource:Ee(n),loader:null,url:s}),r.pushQueueSongs([e],s,!0),c=i))}}]}).state(`post.boost`,{url:`/boost`,redirectTo:function(e){if(e.injector().get(`appActions`).checkAllowed(`boost`))return e.injector().getAsync(`thePost`).then(function(e){if(!e.canEdit)return`post`})}}).state(`post.boost.history`,{url:`/history`}).state(`post.boost.history.recent`,{url:`/recent`}).state(`post.shout`,{url:`/shout`,redirectTo:function(e){return{state:`post`,params:{id:e.params().id}}}})}]),angular.module(`bandlab.post`).factory(`Post`,[`$cacheFactory`,`$http`,`$resource`,`$rootScope`,function(e,t,n,r){var i=`https://www.bandlab.com/api/v1.3/posts`,a=e(`TracksCache`);return n(i,{},{delete:{method:`DELETE`,params:{id:`@id`},url:`${i}/:id`},explore:{method:`GET`,preservePagination:!0},exploreGenreTrending:{method:`GET`,preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/genres/:genres/posts/trending`,transformResponse:[...t.defaults.transformResponse,o]},exploreTrendingVideos:{method:`GET`,isArray:!0,url:`https://www.bandlab.com/api/v1.3/explore/trending-videos/posts`},fromRecommendations:{method:`GET`,preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/recommendations/posts`,transformResponse:[...t.defaults.transformResponse,o
345],interceptor:{request:function(e){return e.url=e.url.replace(`users/00000000-0000-0000-0000-000000000000/`,``),e}}},fromForYou:{method:`GET`,preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/feeds/for-you/posts`,transformResponse:[...t.defaults.transformResponse,s,o]},fromMedia:{method:`GET`,preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/feeds/media/posts`,transformResponse:[...t.defaults.transformResponse,s,function(e,t,n){return n===200&&e.data.forEach(function(e){c(e),u(e,t,n)}),e}]},fromTrending:{method:`GET`,preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/feeds/trending/posts`,transformResponse:[...t.defaults.transformResponse,s]},fromTrendingVideos:{method:`GET`,preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/feeds/trending/videos/posts`,transformResponse:[...t.defaults.transformResponse,s]},fromCommunities:{method:`GET`,preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/experiment/feeds/communities/posts`},fromBand:{method:`GET`,params:{bandId:`@bandId`,types:`revision;image;video;text;link`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/bands/:bandId/posts`,transformResponse:[...t.defaults.transformResponse,o]},fromCommunity:{method:`GET`,params:{communityId:`@communityId`,types:`revision;image;video;text;link`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/communities/:communityId/posts`},fromFollowees:{method:`GET`,params:{userId:`@userId`,types:`revision;image;video;text;link`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/feeds/following/posts`,transformResponse:[...t.defaults.transformResponse,s]},fromRevisionForks:{method:`GET`,params:{revisionId:`@revisionId`,types:`revision`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/revisions/:revisionId/forks/posts`},fromSong:{method:`GET`,params:{songId:`@songId`,limit:50},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/songs/:songId/posts`},fromUser:{method:`GET`,params:{userId:`@userId`,types:`revision;image;video;text;link`,excludePinned:`@excludePinned`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/posts`,transformResponse:[...t.defaults.transformResponse,s]},get:{method:`GET`,params:{id:`@id`,sharedKey:`@sharedKey`},url:`${i}/:id`,transformResponse:[...t.defaults.transformResponse,u]},getPostAlbums:{method:`GET`,isArray:!0,params:{id:`@id`},url:`${i}/:id/albums`},liked:{method:`GET`,params:{id:`@userId`,limit:5,types:`revision;image;video;text;link`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/likes/posts`},postReaction:{method:`POST`,params:{userId:`@userId`,postCompositeId:`@postCompositeId`},url:`https://www.bandlab.com/api/v1.3/posts/:postCompositeId/reactions/users/:userId`},updateReaction:{method:`PATCH`,params:{userId:`@userId`,postCompositeId:`@postCompositeId`},url:`https://www.bandlab.com/api/v1.3/posts/:postCompositeId/reactions/users/:userId`},deleteReaction:{method:`DELETE`,params:{userId:`@userId`,postCompositeId:`@postCompositeId`},url:`https://www.bandlab.com/api/v1.3/posts/:postCompositeId/reactions/users/:userId`},update:{method:`PATCH`,params:{id:`@id`},url:`${i}/:id`},createPost:{method:`POST`,params:{id:`@id`,entity:`@entity`},url:`https://www.bandlab.com/api/v1.3/:entity/:id/posts`,interceptor:{response:function(e){return r.$broadcast(`$post:createSuccess`,e.resource),e.resource}}},pinPost:{method:`POST`,params:{id:`@id`,entityType:`@entityType`,entityId:`@entityId`},url:`https://www.bandlab.com/api/v1.3/:entityType/:entityId/pins/posts/:id`},unpinPost:{method:`DELETE`,params:{id:`@id`,entityType:`@entityType`,entityId:`@entityId`},url:`https://www.bandlab.com/api/v1.3/:entityType/:entityId/pins/posts/:id`},getNewPrivateLink:{method:`POST`,params:{id:`@id`},url:`${i}/:id/sharings`},getPrivateLink:{method:`GET`,params:{id:`@id`},url:`${i}/:id/sharings`},getTracksFromUser:{method:`GET`,params:{userId:`@userId`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/track-posts`,transformResponse:[...t.defaults.transformResponse,l]},getTracksFromUserSorted:{method:`GET`,params:{userId:`@userId`,sort:`@sort`},cache:a,preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/track-posts`,transformResponse:[...t.defaults.transformResponse,l]},getLibraryTracksFromUser:{method:`GET`,params:{userId:`@userId`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:userId/library/track-posts`,transformResponse:[...t.defaults.transformResponse,l]},hideCreatorFromTrending:{method:`PUT`,params:{userId:`@userId`,creatorId:`@creatorId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/feeds/trending/hidden-creators/:creatorId`},updatePollVote:{method:`PUT`,params:{postId:`@postId`,optionId:`@optionId`},url:`https://aws.bandlab.com/api/v1.3/posts/:postId/poll/options/:optionId/votes`},removePollVote:{method:`DELETE`,params:{postId:`@id`,optionId:`@optionId`},url:`https://aws.bandlab.com/api/v1.3/posts/:postId/poll/options/:optionId/votes`}});function o(e,t,n){return n===200&&e.data.forEach(c),e}function s(e,t,n){if(n!==200)return e;let r=e?.paging?.feedSessionId;return!r||!Array.isArray(e?.data)||e.data.forEach(function(e){e.feedSessionId=r}),e}function c(e){e.revision&&(e.revision.postId=e.id)}
345function l(e,t,n){return n===200&&e.data.forEach(e=>u(e,t,n)),e}function u(e,t,n){return n===200&&ls(e),e}}]),angular.module(`bandlab.promote`,[]);const kI={dailyBudget:null,duration:null,headline:null,id:null,imageId:null,imageUrl:null,status:null,tagline:null},AI=To((e,t)=>{let n=e.get(`Me`),r=e.get(`$stateParams`),i=h(Object.assign({},kI)),a=t||r.postId,o=r.pageId,s=O(!1),c=O(!1);function l(){Object.assign(i,kI)}function u(){return d().then(g)}function d(){return i.id?_():m()}function f(e,{fromDraft:t=!1}={}){t&&e.status===`Draft`&&(e.id=null),Object.assign(i,e)}async function p(e){try{c.value=!0;let{id:t,url:n}=await xs();return await _s({url:n,image:e}),await bs(t),{imageId:t}}finally{c.value=!1}}function m(){return s.value=!0,(o?Cs(n.id,o,{...i}):ys(n.id,a,{...i})).then(({id:e})=>{f({id:e})}).finally(()=>{s.value=!1})}function g(){return s.value=!0,vs(n.id,i.id).then(({id:e,headline:t,tagline:n,dailyBudget:r,duration:i,imageUrl:a,imageId:o,status:s})=>{f({id:e,headline:t,tagline:n,dailyBudget:r,duration:i,imageUrl:a,imageId:o,status:s})}).finally(()=>{s.value=!1})}function _(){return s.value=!0,gs(n.id,a,i.id,{...i}).finally(()=>{s.value=!1})}return{isCampaignDataLoading:s,isCampaignImageUploading:c,promoteCampaign:i,resetPromoteCampaign:l,savePromoteCampaign:u,submitPromoteCampaign:d,updatePromoteCampaignData:f,uploadImage:p}});angular.module(`bandlab.promote.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`boostWithCredits`,{url:`/boost-with-credits?budget&duration&postId`,template:` 346 <div class="content-main"> 347 <loader-wave></loader-wave> 348 </div> 349 `,controller:[`$state`,`$stateParams`,`AppNotifications`,function(e,t,n){let{budget:r,duration:i,postId:a}=t,o=encodeURIComponent(JSON.stringify({name:`.`,params:{"#":`bl_closeWebView`}}));return Td(`boost`,`paddle`,{applyCredits:!0,postId:a,budget:r,duration:i}).then(function({paymentIntentId:t,productId:n}){e.go(`checkout`,{paymentIntentId:t,productId:n,product:`boost`,redirectUrl:o})}).catch(function(e){n.addNotification({classList:`alert`,title:`Something went wrong, please try again later`,content:e.message||`Something went wrong with our servers. Please try again.`})})}]}).state(`boostSubscription`,{url:`/boost-subscription?budget`,template:` 350 <div class="content-main"> 351 <loader-wave></loader-wave> 352 </div> 353 `,controller:[`$state`,`$stateParams`,`AppNotifications`,`Me`,function(e,t,n,r){let i=encodeURIComponent(JSON.stringify({name:`user.feed`,params:{username:r.username}}));return Td(`boost-profile`,`paddle`,{budgetInCents:t.budget,billingInterval:`weekly`}).then(function({id:t}){e.go(`checkout`,{paymentIntentId:t,product:`boost-profile`,redirectUrl:i,redirectCancelUrl:i})}).catch(function(e){n.addNotification({autoclose:8e3,title:`Unable to proceed with payment`,content:e.message,classList:`alert`}),o()?setTimeout(a,8e3):a()});function a(){try{let{name:t,params:n}=JSON.parse(decodeURIComponent(i)),r=e.href(t,n,{absolute:!0});window.open(r,`_blank`)}catch{e.go(`.`,{"#":`bl_closeWebView`})}}}]}).state(`promoteWizard`,{url:`/boost/create?postId&campaignId&pageId&redirect&budget&duration`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0},resolve:{campaignDraft:[`$stateParams`,`Me`,function(e,t){let{campaignId:n}=e;return n?vs(t.id,n):null}],boostRemoteConfig:[`activatedFlow`,`Me`,function(e,t){return e===`boost`?Bs(t):null}],estimates:[`campaignDraft`,`activatedFlow`,function(e,t){return e||t===`promote`?Ss():null}],thePost:[`$state`,`$stateParams`,`Post`,function(e,t,n){let{postId:r}=t;return n.get({id:r}).$promise.catch(()=>e.go(`404`))}],postPromoteCampaignsList:[`$stateParams`,`Me`,function(e,t){let{postId:n}=e;return hs(t.id,n)}],postValidationErrors:[`thePost`,function(e){return Ps(e.revision)}],canEdit:[`thePost`,`Me`,function(e,t){return e.creator?.id===t.id}],activatedFlow:[`$state`,function(e){return e.transition?.to().name.split(`.`)[1]}],activeBoostCampaign:[`$stateParams`,function(e){let{postId:t}=e;return us(`bandlab_post`,t).catch(()=>null)}],activeWebCampaign:[`postPromoteCampaignsList`,function(e){return e?.campaignCount?.musicWeb}]},views:{"":{template:`<div id="vue"></div>`,controller:[`$compile`,`$element`,`$injector`,`$rootScope`,`$scope`,`$state`,`$stateParams`,`activeBoostCampaign`,`activatedFlow`,`activeWebCampaign`,`boostRemoteConfig`,`campaignDraft`,`estimates`,`postValidationErrors`,`thePost`,`Me`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){$(import(`./DxFtyPW4.js`),t[0].querySelector(`#vue`),i,{$compile:e,$injector:n,$rootScope:r,$stateParams:o,activatedFlow:c,activeBoostCampaign:s,activeWebCampaign:l,boostRemoteConfig:u,campaignDraft:d,estimates:f,postValidationErrors:p,thePost:m,Me
353:h},{}),i.$on(`topBarExit`,function(){let{redirect:e}=o;return e?g(e):a.go(`user.feed`,{username:h.username})});function g(e){let t=JSON.parse(decodeURIComponent(e));a.go(t.name,t.params,{location:`replace`})}}]},"topBarForm@":{templateUrl:`https://www.bandlab.com/web-app/promote/partials/_promote-form-top-bar-a089b3ef4.html`,controller:[`$rootScope`,`$scope`,function(e,t){t.exitPage=function(){e.$broadcast(`topBarExit`)}}]},"tabBarForm@":{templateUrl:`https://www.bandlab.com/web-app/promote/partials/_promote-form-tab-bar-67582e885.html`,controller:[`$rootScope`,`$scope`,function(e,t){t.exitPage=function(){e.$broadcast(`topBarExit`)}}]}}}).state(`promoteWizard.boost`,{url:`/post-boost`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0}}).state(`promoteWizard.promote`,{url:`/web-ad`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0},redirectTo:function(e){return Promise.all([e.injector().getAsync(`canEdit`),e.injector().getAsync(`postValidationErrors`)]).then(([t,n])=>{if(!t)return e.injector().get(`AppNotifications`).addNotification({classList:`alert`,title:`Only the creator can submit`,autoclose:5e3}),{state:`dashboard.promote.list`,params:{}};if(n)return{state:`promoteWizard`,params:{...e.params()}}})}}).state(`promoteWizard.promote.edit`,{url:`/edit`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0},redirectTo:`promoteWizard.edit`}).state(`promoteWizard.edit`,{url:`/edit`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0},onEnter:WE,onExit:UE,views:{"overlay@":{template:`<div></div>`,controller:[`$compile`,`$element`,`$rootScope`,`$scope`,`$state`,`$injector`,`thePost`,function(e,t,n,r,i,a,o){let{promoteCampaign:s}=AI(a);if(s.headline===null||s.tagline===null)return i.go(`promoteWizard`);r.visible=!0;let c=i.transition,l=c?.from?.()?.name,u=c.params(`from`);function d(){r.visible&&=!1}function f(e){e.target.closest(`.wizard-edit-modal`)||d()}function p(e){e.keyCode===27&&d()}function m(){document.body.removeEventListener(`mousedown`,f),document.body.removeEventListener(`keydown`,p)}document.body.addEventListener(`mousedown`,f),document.body.addEventListener(`keydown`,p),r.$on(`$destroy`,m);let g=h({visible:r.visible,revision:o.revision.song,handleAfterLeave:function(){return l?i.go(l,u,{location:`replace`}):i.go(`^`)},hideEditPanel:d});r.$watch(`visible`,e=>{g.visible=e},{immediate:!0}),$(import(`./CiSlelJY.js`),t[0],r,{$injector:a,$compile:e,$rootScope:n},g)}]}}}).state(`promoteOverview`,{url:`/boost/stats?campaignId`,template:`<div id="vue"></div>`,controller:[`$element`,`$scope`,`$state`,`$stateParams`,`$injector`,`Me`,function(e,t,n,r,i,a){n.transition?.from().name!==`dashboard.promote.list`&&Ns.invalidate(),$(import(`./CbBUG2Mh.js`),e[0].querySelector(`#vue`),t,{$stateParams:r,$injector:i,Me:a},{})}]})}]),angular.module(`bandlab.product.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`products`,{url:`/products`,redirectTo:`membership`}).state(`boost`,{url:`/boost`,template:`<div id="vue"></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},resolve:{StrapiLandingPage:function(){return import(`./COkZ4zJ3.js`).then(e=>e.t).then(({getStrapiLandingPage:e})=>e(`eqlo7ycs4ucasfxpxwzx1j91`,{ctaSlot:[`top`]}))}},controller:[`$element`,`$scope`,`$injector`,`appActions`,`AppNotifications`,`authService`,`Me`,`Revision`,`Song`,function(e,t,n,r,i,a,o,s,c){$(import(`./CimQU6nF.js`),e[0],t,{authService:a,$injector:n,Me:o,scope:t}),t.getPromote=function(){r.checkAllowed(`getPromote`,{toState:`getPromote`})&&Xg(o).then(function(){t.openLibraryModal()}).catch(()=>{})};function l(e){let t=`https://zire.com/onboarding/review-release?revision_id=${e.id}`;window.open(t,`_blank`)}async function u(e){return await c.get({id:e.id}).$promise.then(e=>s.get({id:e.revision.id}).$promise)}t.$on(`$revision:changed`,function(e,{revision:t}){Zn(`boostProjectPickerModal`),l(t)}),t.openLibraryModal=function(){let e=J(()=>import(`./DyTNN1m0.js`)),t=O(null),n=O([]);X(e,{itemList:n,loadMore:async function(){let{data:e,paging:r}=await c.fromUserWithCursor({id:o.id,authorId:o.id,limit:30,after:t.value}).$promise;n.value.push(...e.map(e=>({...e,isDisabledInPicker:!e.isPublic}))),t.value=r.cursors.after},onContinueWithSingleSelection:async function(e){let t=await u(e);Yg(t,i)&&l(t)},pagingAfter:t,selectionType:`single`},{id:`boostProjectPickerModal`})}}]}).state(`beats`,{url:`/beats/:path/:subpath?price&sort&genres&bpm&keys`,params:{subpath:{squash:!0,value:null}},template:`<div id="vue"></div>`,data:{forcedTheme:`dark`,hideNavBar:!0},controller:[`appActions`,`authService`,`$analytics`,`$element`,`$injector`,`$rootScope`,`$scope`,`$state`,`$urlRouter`,`Me`,`Player`,`Share`,`Tag`,function(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=import(`./lIdnnqqp.js`).then(({mountBeats:e})=>e).then(function(o){return c.listen(!1),o(r[0].querySelector(`#vue`),{$analytics:n,$injector:i,$rootScope:a,appActions:e,authService:t,state:s,Me:l,Player:u,Share:d,Tag:f,$urlRouter:c})});o.$on(`$destroy`,async function(){(await p).unmount(),c.listen(!0),document.body.classList.forEach(function(e){e.startsWith(`beats-`)&&document.body.classList.remove(e)})})}]}).state(`products.cakewalk`,{url:`/cakewalk`,redirectTo:function(){location.href=`https://www.cakewalk.com`}}).state(`audiostretch`,{url:`/audiostretch`,redirectTo:function(){window.location.href=`https://blog.bandlab.com/what-is-audiostretch-and-how-do-i-use-it/`}}).state(`palette`,{url:`/palette`,redirectTo:`ai`}).state(`soundsroot`,{url:`/sounds`,redirectTo:`sounds`}).state(`sounds`,{url:`/sounds/:path/:subpath/:innerSubpath?id&characters&instruments&genres&packId&query&bpm&keys&features&sort&direction`,params:{path:`browse`,subpath:{squash:!0,value:null},innerSubpath:{squash:!0,value:null}},template:`<div id="vue"></div>`,data:{forcedTheme:`dark`,hideNavBar:!0}
353,controller:[`$analytics`,`$element`,`$compile`,`$http`,`$injector`,`$rootScope`,`$scope`,`$state`,`$urlRouter`,`appActions`,`AppNotifications`,`authService`,`Me`,`Page`,`Player`,`ProjectUploader`,`Share`,`User`,`UserHelper`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){f.isAnonymous()&&(s.params.path===`browse`||s.params.path===`home`)&&document.body.classList.add(`sounds-home`);let y=Promise.all([import(`./Bt0F8rjB.js`).then(e=>e.D).then(({mountSounds:e})=>e)]).then(function([y]){return c.listen(!1),y(t[0].querySelector(`#vue`),{$analytics:e,$compile:n,$http:r,$injector:i,$rootScope:a,appActions:l,AppNotifications:u,authService:d,Me:f,showPaywallModal:x,showSharePackModal:b,Page:p,Player:m,ProjectUploader:h,Share:g,scope:o,state:s,$urlRouter:c,User:_,UserHelper:v})});o.$on(`$destroy`,function(){y.then(e=>e.unmount()),c.listen(!0),document.body.classList.forEach(function(e){e.startsWith(`sounds-`)&&document.body.classList.remove(e)})});function b(e,t,n){let r=J(()=>import(`./BSiczBUT.js`));X(r,{title:e,imageUrl:go(t,ho,80),shareUrl:window.location.href,sharePack:n})}function x(e,t,n){ai({productAttribution:e,productAttributionGroup:`blsounds`,useCheckoutModal:!0,onCheckoutSuccess:()=>n(),onCheckoutCancel:()=>t()},{onClose:()=>t()})}}]}).state(`contests`,{url:`/contests`,redirectTo:`landing`}).state(`distribution`,{url:`/distribution`,template:`<div id="vue"></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},resolve:{StrapiLandingPage:function(){return import(`./COkZ4zJ3.js`).then(e=>e.t).then(({getStrapiLandingPage:e})=>e(`nbcr3lo4a9xj9i5crrmx6fto`))}},controller:[`$element`,`$scope`,`authService`,`Me`,function(e,t,n,r){$(import(`./8CDTKfJS.js`),e[0],t,{authService:n,Me:r,$scope:t})}]}).state(`effects`,{url:`/effects`,redirectTo:`fx`}).state(`fanReach`,{url:`/fan-reach`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controller:[`$element`,`$injector`,`$scope`,`authService`,`appActions`,`Me`,`$state`,function(e,t,n,r,i,a,o){$(import(`./CeOm9oAg.js`),e[0],n,{$injector:t,$scope:n,authService:r,appActions:i,Me:a,$state:o},{})}]}).state(`fx`,{url:`/fx`,template:`<div id="vue"></div>`,data:{forcedTheme:`dark`,hideNavBar:!0,skipOnboarding:!0},resolve:{vueComponent:()=>import(`./BSG2cb9O.js`)},controller:[`$compile`,`$element`,`$injector`,`$rootScope`,`$scope`,`$state`,`authService`,`Me`,`vueComponent`,function(e,t,n,r,i,a,o,s,c){$(c.default,t[0].querySelector(`#vue`),i,{authService:o,$compile:e,$injector:n,$rootScope:r,scope:i,$state:a,Me:s})}]}).state(`splitter`,{url:`/splitter/:state`,isCompatible:()=>ar(!1),params:{state:{squash:!0,value:null}},template:`<div id="vue"></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controller:[`$element`,`$injector`,`$rootScope`,`$scope`,`authService`,`Me`,`Modal`,`Player`,function(e,t,n,r,i,a,o,s){$(import(`./ix3Hh_a4.js`),e[0].querySelector(`#vue`),r,{$injector:t,authService:i,$rootScope:n,scope:r,Me:a,Modal:o,Player:s},{openSplitterPaywallModal:c});function c(e,t,n){ai({productAttribution:e,productAttributionGroup:`splitter`,useCheckoutModal:!0,onCheckoutSuccess:t,onPaymentSuccess:n})}}]}).state(`promoteIt`,{url:`/promote-your-track`,template:`<div id="vue"></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controllerAs:`vm`,controller:[`$element`,`$injector`,`$scope`,`appActions`,`AppNotifications`,`authService`,`Me`,`Modal`,`Revision`,`Song`,function(e,t,n,r,i,a,o,s,c,l){$(import(`./DrT1SY3G.js`),e[0].querySelector(`#vue`),n,{$injector:t,authService:a,Me:o,Modal:s,scope:n},{}).then(function(e){if(!e)return;n.getPromote=function(){r.checkAllowed(`getPromote`,{toState:`getPromote`})&&Xg(o).then(function(){n.openLibraryModal()}).catch(()=>{})};function t(e){let t=`https://zire.com/onboarding/review-release?revision_id=${e.id}`;window.open(t,`_blank`)}async function a(e){return await l.get({id:e.id}).$promise.then(e=>c.get({id:e.revision.id}).$promise)}n.$on(`$revision:changed`,function(e,{revision:n}){Zn(`promoteItProjectPickerModal`),t(n)}),n.openLibraryModal=function(){let e=J(()=>import(`./DyTNN1m0.js`)),n=O(null),r=O([]);X(e,{itemList:r,loadMore:async function(){let{data:e,paging:t}=await l.fromUserWithCursor({id:o.id,authorId:o.id,limit:30,after:n.value}).$promise;r.value.push(...e.map(e=>({...e,isDisabledInPicker:!e.isPublic}))),n.value=t.cursors.after},onContinueWithSingleSelection:async function(e){let n=await a(e);Yg(n,i)&&t(n)},pagingAfter:n,selectionType:`single`},{id:`promoteItProjectPickerModal`})}})}]}).state(`careers`,{url:`/careers`,resolve:{redirect:function(){window.location.href=`https://bandlabtechnologies.com/careers/`}}}).state(`membership`,{url:`/membership?__pw_iic&at`,data:{forcedTheme:`dark`,hideNavBar:!0,skipOnboarding:!0},resolve:{PaddleBilling:function(){return import(`./BK9lgqcs.js`).then(e=>e.n).then(async function({loadPaddleBilling:e}){return await e()})}},controller:[`$element`,`$injector`,`$scope`,`appActions`,`authService`,`Me`,function(e,t,n,r,i,a){let{membership:o}=qn(n,a);Promise.all([ci(),import(`./Cv4m8E18.js`)]).then(async function([s,c]){let{hasAnnualTrialScreen:l,hasMonthlyTrialScreen:u}
353=await ui(s,o),d=l&&o.isTrialAllowed&&!a.isAnonymous(),f=u&&o.isTrialAllowed&&!d;$(c.default,e[0],n,{$injector:t,$scope:n,appActions:r,authService:i,membership:o},{activePaywallPlacement:s,hasAnnualTrial:d,hasMonthlyTrial:f})})}]}).state(`membershipReddit`,{url:`/membership-reddit`,data:{forcedTheme:`dark`,hideNavBar:!0,hideModalDownloadAppsSmall:!0},controller:[`$element`,`$injector`,`$scope`,`appActions`,`authService`,`Me`,function(e,t,n,r,i,a){let{membership:o}=qn(n,a);ci(`membershipRedditLandingPage`).then(async function(a){let{hasMonthlyTrialScreen:s}=await ui(a,o),c=s&&o.isTrialAllowed;$(import(`./Cv4m8E18.js`),e[0],n,{$injector:t,$scope:n,appActions:r,authService:i,membership:o},{activePaywallPlacement:a,hasMonthlyTrial:c,isMembershipReddit:!0,productAttributionGroup:`reddit_landing_page`,promoCode:`Karma79`})})}]}).state(`pages`,{url:`/pages`,template:`<div id="vue"></div>`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controller:[`$element`,`$injector`,`$scope`,`appActions`,`authService`,`Me`,function(e,t,n,r,i,a){$(import(`./DNw1f_d7.js`),e[0].querySelector(`#vue`),n,{$injector:t,appActions:r,authService:i,Me:a},{})}]}).state(`products.mastering`,{url:`/mastering`,data:{hideNavBar:!0,skipOnboarding:!0},controller:[`authService`,`$element`,`$injector`,`$scope`,`Me`,function(e,t,n,r,i){$(import(`./DV_yWw0E.js`),t[0],r,{authService:e,$injector:n,Me:i,$scope:r})}]}).state(`products.aiTools`,{url:`/ai-tools`,data:{forcedTheme:`light`,hideNavBar:!0,skipOnboarding:!0},controller:[`authService`,`$element`,`$scope`,`Me`,function(e,t,n,r){$(import(`./CmwDO1VG.js`),t[0],n,{authService:e,Me:r,$scope:n})}]}).state(`products.voiceCleaner`,{url:`/voice-cleaner`,data:{hideNavBar:!0,skipOnboarding:!0},controller:[`authService`,`$element`,`$scope`,`Me`,function(e,t,n,r){$(import(`./lcgRDSBj.js`),t[0],n,{authService:e,Me:r,$scope:n})}]}).state(`products.vocalTools`,{url:`/vocal-tools`,data:{hideNavBar:!0,skipOnboarding:!0},controller:[`authService`,`$element`,`$scope`,`Me`,function(e,t,n,r){$(import(`./BtvtS2zU.js`),t[0],n,{authService:e,Me:r,$scope:n})}]}).state(`products.voiceCleanerFreeWeekend`,{url:`/voice-cleaner-free-weekend`,redirectTo:`products.voiceCleaner`}).state(`products.marketingDiceVocalist`,{url:`/vocalist`,data:{hideNavBar:!0,skipOnboarding:!0},controller:[`authService`,`$element`,`$scope`,`Me`,function(e,t,n,r){$(import(`./Rjd8azoZ.js`),t[0],n,{authService:e,Me:r,$scope:n})}]}).state(`products.marketingDiceBeatMaker`,{url:`/beatmaker`,data:{hideNavBar:!0,skipOnboarding:!0},controller:[`authService`,`$element`,`$scope`,`Me`,function(e,t,n,r){$(import(`./BlW7yk2_.js`),t[0],n,{authService:e,Me:r,$scope:n})}]}).state(`ai`,{url:`/ai`,data:{forcedTheme:`dark`,hideNavBar:!0,skipOnboarding:!0},controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./DZDhZLPE.js`),e[0],n,{$injector:t})}]}).state(`musicQuiz`,{url:`/games/music_quiz`,data:{hideNavBar:!0,forcedTheme:`dark`},isCompatible:()=>{if(!o())return`404`},controller:[`$element`,`$scope`,function(e,t){this.uiCanExit=function(e){return r().then(t=>t?e:!1)},history.pushState({page:`music-quiz-in-prog`},``,window.location.href),window.addEventListener(`popstate`,n),t.$on(`$destroy`,function(){window.removeEventListener(`popstate`,n)});function n(){r().then(e=>{if(e){history.back();return}history.pushState({page:`music-quiz-in-prog`},``,window.location.href)})}function r(){let{promise:e,resolve:t}=Promise.withResolvers(),n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));return X(n,{title:`Are you sure you want to leave?`,content:``,size:`small`,actions:[{label:`Leave`,color:`secondary`,onClick:()=>t(!0)},{label:`Stay`,color:`primary`,onClick:()=>t(!1)}]},{onClose:()=>t(!1),overlayClose:!1,escapeClose:!1}),e}$(import(`./CVSB2NOh.js`),e[0],t,{})}]}).state(`voiceTrainerOnboarding`,{url:`/voice-trainer-onboarding`,data:{forcedTheme:`dark`},controller:[`$element`,`$scope`,function(e,t){$(import(`./CapeV9If.js`),e[0],t,{},{})}]}).state(`sandbox`,{url:`/sandbox`,data:{forcedTheme:`dark`,hideNavBar:!0,skipOnboarding:!0},redirectTo:function(e){let t=e.injector().get(`Me`);return import(`./BWvciV-z.js`).then(e=>e.t).then(({getAmplitudeFeatureFlag:e})=>e(t,`sandbox`)).then(function(e){if(e!==`true`)return`feed`})}
353,resolve:{strapi:function(){return import(`./COkZ4zJ3.js`).then(e=>e.t).then(({getStrapiSandbox:e})=>e())}},controller:[`$element`,`$injector`,`$scope`,`strapi`,function(e,t,n,r){$(import(`./OGWXUk8s.js`),e[0],n,{$injector:t,strapi:r.data})}]}).state(`sony360raRedirect`,{url:`/sony360ra`,redirectTo:`sony360ra`}).state(`sony360ra`,{url:`/360ra`,data:{hideNavBar:!0,skipOnboarding:!0},controller:[`authService`,`$element`,`$scope`,`Me`,function(e,t,n,r){$(import(`./tohY9IVi.js`),t[0],n,{authService:e,$scope:n,Me:r})}]})}]),angular.module(`bandlab.easterEgg`,[]).directive(`easterEgg`,[`$injector`,function(e){return{replace:!0,restrict:`E`,scope:{location:`@`},template:`<div style="display: contents;"></div>`,link:function(t,n){$(import(`./Bsd3XFBJ.js`).then(e=>e.n),n[0],t,{$injector:e},{location:t.location})}}}]),angular.module(`bandlab.project`,[]),angular.module(`bandlab.project`).controller(`ProjectsCtrl`,[`$q`,`$scope`,`$stateParams`,`$timeout`,`Song`,`theBand`,`theUser`,function(e,t,n,r,i,a,o){var s=null,c,l=!1;t.isMobile=bn,a?(t.band=a,t.category=`band`):t.category=n.category;function u(){t.category===`collaborations`&&(t.triggeredFrom=`user_library_collaborations`)}function d(r=n.search){if(l)return e.resolve([]);var a={limit:30,after:s,isFork:{forked:!0}[n.filter],isPublic:{public:!0,private:!1}[n.filter],search:r};return c=t.category===`recent`?i.fromUserWithCursor(Object.assign(a,{id:o.id})).$promise:t.category===`my-projects`?i.fromUserWithCursor(Object.assign(a,{id:o.id,authorId:o.id})).$promise:t.category===`collaborations`?i.fromUserWithCursor(Object.assign(a,{id:o.id,collaboration:!0})).$promise:t.category===`bands`?i.fromUserWithCursor(Object.assign(a,{id:o.id,author:`band`})).$promise:t.category===`deleted`?i.fromUserWithCursor(Object.assign(a,{id:o.id,status:`deleted`})).$promise:i.fromBandWithCursor(Object.assign(a,{id:t.band.id})).$promise,c=c.then(function(e){return s=e.paging.cursors.after,l=!s,e.data}),c}t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(c=c.then(function(e){return t.infiniteScrollEnded=l,t.projects=t.projects||[],t.projects=t.projects.concat(e),d()}),c)},d().then(t.loadMore),u(),t.refreshSearch=function(e){return s=null,l=!1,d(e).then(function(){return c=c.then(function(e){return t.infiniteScrollEnded=l,t.projects=e,d()}),c}).then(t.loadMore)},t.$on(`$song:changed`,function(e,n){if([`mark-deleted`,`unmark-deleted`].includes(n.action)){let e=MS(t.projects,{id:n.song.id});e&&(e.isDeleting=n.action===`mark-deleted`||null);return}if(n.action===`move`&&t.category===`recent`){let e=jS(t.projects,{id:n.song.id});ja(t.projects,{id:n.song.id}),r(function(){t.projects.splice(e,0,n.song)},500);return}if(n.action===`move`&&t.category===`band`&&f(n.song),n.action===`delete`||n.action===`leave`||n.action===`move`||n.action===`restore`){ja(t.projects,{id:n.song.id}),t.projects.length<30&&t.loadMore();return}if(n.action===`update`){let e=MS(t.projects,{id:n.song.id});e&&Object.assign(e,n.song);return}n.action===`create`&&f(n.song)}),t.$on(`$revision:changed`,function(e,t){t.action===`create`&&f(t.revision.song)});function f(e){MS(t.projects,{id:e.id})||(t.category===`recent`||t.category===`my-projects`||t.category===`band`&&e.author.id===t.band.id)&&r(function(){return i.get({id:e.id}).$promise},1e3).then(function(e){t.projects.unshift(e)})}}]),angular.module(`bandlab.project`).component(`projectAuthor`,{bindings:{revision:`<`,song:`<`,triggeredFrom:`<`},templateUrl:`https://www.bandlab.com/web-app/project/partials/_project-author-8c5c36f08.html`,controller:[`$element`,`$state`,`User`,function(e,t,n){var r=this;r.$onInit=i,r.getCollaborators=a,r.hasWebviewCookie=o;function i(){r.triggeredFrom??=Ee(t,e)}function a(e={}){return n.getCollaborators(Object.assign({songId:r.song.id,includeOwner:!0},e)).$promise}}],controllerAs:`vm`}),angular.module(`bandlab.project`).component(`projectsCard`,{templateUrl:`https://www.bandlab.com/web-app/project/partials/_projects-card-f914d3175.html`,controller:[`$element`,`$scope`,`$timeout`,`Me`,`Song`,function(e,t,n,r,i){let a=this;i.fromUserWithCursor({id:r.id,limit:3,sort:`recent`}).$promise.then(({data:t})=>{t.length||e.remove(),a.songs=t}),t.$on(`$song:changed`,function(e,t){if([`mark-deleted`,`unmark-deleted`].includes(t.action)){let e=MS(a.songs,{id:t.song.id});e&&(e.isDeleting=t.action===`mark-deleted`||null);return}if(t.action===`move`){let e=jS(a.songs,{id:t.song.id});ja(a.songs,{id:t.song.id}),n(function(){a.songs.splice(e,0,t.song)},500);return}(t.action===`delete`||t.action===`leave`)&&n(()=>{i.fromUserWithCursor({id:r.id,limit:3,sort:`recent`}).$promise.then(({data:e})=>{a.songs=e})},1500)})}],controllerAs:`vm`}),angular.module(`bandlab.project`).directive(`projectsDropzone`,[`$q`,`$stateParams`,`AppNotifications`,`RevisionImporter`,function(e,t,n,r){return{restrict:`A`,replace:!0,link:function(i,a,o){let s=a.parent();s.on(`dragenter`,c),a.on(`dragleave`,l),a.on(`drop`,function(e){e.preventDefault(),e.stopPropagation(),u(e.dataTransfer.files),i.isDragging=!1,i.$applyAsync()}),a.on(`dragover`,function(e){e.preventDefault(),e.stopPropagation(),i.isDragging=!0,e.dataTransfer.dropEffect=`copy`,i.$applyAsync()}),i.$on(`$destroy`,function(){s.off(`dragenter`,c)});function c(e){Array.from(e.dataTransfer.items).some(e=>e.type.includes(`audio`))&&(i.isDragging=!0,i.$applyAsync())}function l(){i.isDragging=!1,i.$applyAsync()}function u(t){return e.all(Array.from(t).map(f)).then(function(e){let t=e.filter(([,e])=>e),r=e.filter(([,e])=>!e);r.length&&n.addNotification({title:`Unable to import file. Please check that your file is not corrupted.`,content:`${r.map(([e,,t])=>`<div style="margin: 4px 0">${n.escapeContent(e.name)}
353<br>${n.escapeContent(t.message)}</div>`).join(``)}`,classList:`alert`}),t.map(function([e,t]){return d(e,t)})})}function d(e,n){if(o.importAs===`track`)return r.createTrackFromUploadQueue(e,n);let a=MS(i.bands,{username:t.category});return r.createRevisionFromUploadQueue(e,{bandId:a?a.id:null,duration:n})}function f(e){return fr(e).then(function(e){return r.isAudioFileValid(e,{loader:!1})}).then(function([e,t]){return[e,t]}).catch(t=>[e,null,t])}}}}]);const jI={class:`ds-modal ds-modal-size-small ds-modal-with-footer`},MI={class:`ds-modal-header`},NI={class:`ds-modal-title`},PI={class:`ds-modal-content`,style:{textAlign:`left`}},FI={key:0,class:`ds-modal-content-p`},II={key:1,class:`ds-modal-content-p`},LI={class:`ds-modal-footer ds-modal-footer-two-buttons`};var RI=V({__name:`ProjectCopyrightModal`,props:{song:{}},emits:[`closeModal`],setup(e){let t=ne(`$injector`).get(`Me`),n=e;function r(){return n.song.author.id===t.id||n.song.collaborators.some(e=>t.id===e.id&&e.role===`Owner`)}return(t,n)=>(F(),G(`section`,jI,[K(`header`,MI,[K(`h2`,NI,y(`Copyright Notice`),1)]),K(`section`,PI,[r()?(F(),G(`p`,FI,y(`Your project â${e.song.name}â has been disabled at the request of the copyright owner. Only you can see this project. 354 355Please check your BandLab registered email to submit an appeal.`),1)):(F(),G(`p`,II,y(`Your collaboration project, â${e.song.name}â, has been disabled at the request of the copyright owner. Only the project owner can submit an appeal.`),1))]),K(`section`,LI,[q(Ue,{as:`a`,size:`medium`,color:`secondary`,href:`https://blog.bandlab.com/learn-about-copyright/`,target:`_blank`},{default:W(()=>[B(y(`Learn More`),1)]),_:1}),q(Ue,{type:`button`,size:`medium`,color:`primary`,onClick:n[0]||=e=>t.$emit(`closeModal`)},{default:W(()=>[B(y(`Got It`),1)]),_:1})]),q(Pa,{onClick:n[1]||=e=>t.$emit(`closeModal`)})]))}});angular.module(`bandlab.project`).component(`projectTile`,{bindings:{song:`<`,triggeredFrom:`<`},templateUrl:`https://www.bandlab.com/web-app/project/partials/_project-tile-4412836ec.html`,controller:[`User`,`Me`,function(e,t){let n=this;n.getCanDuplicate=function(){let e=n.song,r=e.author.id===t.id&&e.author.type===`User`&&e.counters.collaborators===0;return e.canEdit&&r&&!e.isFork},n.getCollaborators=r,n.displayDMCAModal=i;function r(t={}){return e.getCollaborators(Object.assign({songId:n.song.id,includeOwner:!0},t)).$promise}function i(){X(RI,{song:n.song})}}],controllerAs:`vm`}),angular.module(`bandlab.project`).value(`ProjectUploader`,{queue:[],isMinimized:!1,isVisible:!1}).directive(`projectUploader`,[`$analytics`,`$window`,`ProjectUploader`,function(e,t,n){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/project/partials/_project-uploader-85cf17642.html`,link:function(r){t.addEventListener(`beforeunload`,i),t.addEventListener(`pagehide`,a),r.projectUploader=n,r.getPercentageUploaded=function(){let e=n.queue.filter(function(e){return!e.failed}),t=e.reduce(function(e,t){return e+(t.total||t.file.size)},0);return t===0?`100`:(e.reduce(function(e,t){return e+t.loaded},0)/t*100).toFixed(0)},r.hasSoundsSamples=function(){return n.queue.some(function(e){return e.isSounds})},r.hasError=function(){return n.queue.some(function(e){return e.failed})},r.hasRetryableError=function(){return n.queue.some(function(e){return e.failed&&!e.isOnlyCancellable})},r.hasCancellableError=function(){return n.queue.some(function(e){return e.failed&&e.isOnlyCancellable})},r.retryAll=function(){n.queue.forEach(function(e){e.failed&&!e.isOnlyCancellable&&e.retry()})},r.cancelAll=function(){let t,r;[...n.queue].forEach(function(e){e.progress<1&&!e.complete?(e.cancel({isBatch:!0}),r++):t++}),e.eventTrack(`blsounds_my_sounds_batch_upload_cancel`,{platform:`firebase`,params:{num_files_uploaded:t,num_files_not_uploaded:r}})},r.closeProjectUploader=function(){n.queue.filter(function(e){return!e.failed&&e.loaded!==e.total}).map(function(e){e.cancel()}),n.queue=[],n.isVisible=!1},r.$watch(`projectUploader.queue.length`,function(e){e&&(n.isVisible=!0,n.isMinimized=!1),+e==0&&(n.isVisible=!1)});function i(e){r.getPercentageUploaded()!==`100`&&(e.returnValue=!0)}function a(){r.getPercentageUploaded()!==`100`&&r.cancelAll()}}}}]),angular.module(`bandlab.report.routes`,[`ui.router`]).config([`$stateProvider`,function(e){t.$inject=[`$transition$`,`$q`,`Album`,`Band`,`Collection`,`Community`,`Post`,`User`,`Song`];function t(e,t,n,r,i,a,o,s,c){let{type:l,id:u,subObjectId:d,objectId:f,objectCreatorId:p,creatorId:m,chat:h,sharedKey:g}=e.params();return _(l,u)().then(function(e){return{creator:e,objectId:l===`comments`?f:u,objectType:v(l),isChat:h===`true`,subObjectId:l===`comments`?u:d,objectCreatorId:p}});function _(){if(m||p){let e=m||p;return()=>s.get({id:e}).$promise}return{albums:()=>n.get({id:u}).$promise.then(({creator:e})=>e),bands:()=>r.get({id:u}).$promise.then(({creator:e})=>e),collections:()=>i.get({id:u}).$promise.then(({creator:e})=>e),communities:()=>a.get({id:u}).$promise.then(({creator:e})=>e),posts:()=>o.get({id:u,sharedKey:g}).$promise.then(({creator:e})=>e),songs:()=>c.get({id:u}).$promise.then(({revision:e})=>e.creator),users:()=>s.get({id:u}).$promise}[l]||(()=>t.resolve(null))}function v(e){return{albums:`Album`,bands:`Band`,chatmessage:`ChatMessage`,vomchatmessage:`VomChatMessage`,collections:`Collection`,comments:`Comment`,communities:`Community`,posts:`Post`,projects:`Project`,revisions:`Revision`,songs:`Song`,users:`User`}[e]||e}}e.state(`reportEntity`,{url:`/report/:type/:id?step&reason&subObjectId&objectId&objectCreatorId&creatorId&chat&sharedKey`,params:{step:{dynamic:!0}},template:`<div></div>`,controller:[`$injector`,`$scope`,`$element`,`theEntity`,function(e,t,n,r){$(import(`./C48zbnkV.js`),n[0],t,{$injector:e},{toReport:r})}],resolve:{theEntity:t},redirectTo:function(e){return e.injector().getAsync(`theEntity`).then(function(t){let n=e.injector().get(`Me`);if(t.creator?.id===n.id)return`404`})}}).state(`reportGeneral`,{url:`/report/:type?step&reason`,params:{step:{dynamic:!0}},template:`<div></div>`,controller:[`$injector`,`$scope`,`$element`,`theEntity`,function(e,t,n,r){$(import(`./DyGXhRUg.js`),n[0],t,{$injector:e},{toReport:r})}],resolve:{theEntity:t}}).state(`report`,{url:`/report?step&reason`,template:`<div></div>`,controller:[`$injector`,`$scope`,`$element`,`theEntity`,function(e,t,n,r){$(import(`./DyGXhRUg.js`),n[0],t,{$injector:e},{toReport:r})}],resolve:{theEntity:t}})}]),angular.module(`bandlab.search`,[]);let zI=``,BI=we(HI);const VI=Fa(e=>BI(e),3e3);
355function HI(e){VI.cancel(),!(e.length<3||e===zI)&&(zI=e,import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSearchPerform:t}){t(e)}))}angular.module(`bandlab.search`).controller(`SearchCtrl`,[`$element`,`$filter`,`$scope`,`$state`,`$stateParams`,`$transitions`,`Search`,`SearchHistory`,function(e,t,n,r,i,a,o,s){var c=!1,l;let u=Fa(e=>g(e),500),d=a.onSuccess({},function(){n.search=i.q,d(),h(n.search)});n.logSearchPerform=HI,n.suggestions=m(),n.goToResults=function(e){r.go(`search.results`,{q:e,reveal:null}),HI(e),BI=we(HI)},n.goToSuggestion=function(e,t){r.go(`user.feed`,{username:e.username,triggeredFrom:t?`search`:`search_panel_history`}),t&&p(n.suggestions[`1users`].indexOf(e),t)},e.on(`click`,function(e){e.target.closest(`[ui-sref]`)&&n.search&&p(f(e),n.search)});function f(t){return Array.from(e[0].querySelectorAll(`[ui-sref]`)).findIndex(e=>e.contains(t.target))}function p(e,t){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSearchClickthrough:t}){t(`user_profile_open`,e)}),HI(t),BI=we(HI)}function m(){return{"0history":t(`limitTo`)(s.get(),5),"1users":[]}}function h(e){if(angular.isUndefined(e)||e.length===0){n.suggestions=m();return}e.length<3?(BI=we(HI),VI.cancel()):VI(n.search),!c&&u(e)}function g(e){n.suggestions[`0history`]=[],l=e,c=!0,o.users({query:e,limit:8}).then(function({data:e}){n.search===l&&(n.suggestions[`1users`]=t(`limitTo`)(e,8))}).finally(function(){c=!1,n.search&&n.search!==l&&g(n.search)})}n.$watch(`search`,h)}]),angular.module(`bandlab.search`).controller(`SearchResultsCtrl`,[`$analytics`,`$element`,`$location`,`$q`,`$scope`,`$stateParams`,`hiddenTag`,`PlayerHistory`,`Search`,function(e,t,n,r,i,a,o,s,c){var l=a.q,u=12,d=null,f=!1,p,m=n.url();if(i.loadMore=v,i.$parent.query=a.q,i.filter=a.filter,i.isHiddenTag=o,i.isHiddenResults=!a.reveal,!l||l.length===0){i.results=[],i.infiniteScrollEnded=!0;return}e.eventTrack(`Search in ${i.filter}`,{category:`Search`,label:l}),t.on(`click`,function(e){if(e.target.hasAttribute(`href`)){let t=g(e);if(!t.length)return;import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSearchClickthrough:e}){e(...t)})}});function h(e,n){return Array.from(t[0].querySelectorAll(e)).findIndex(e=>e.contains(n.target))}function g(e){switch(!0){case!!e.target.closest(`user-tile`):return[`user_profile_open`,h(`user-tile`,e)];case!!e.target.closest(`band-tile`):return[`band`,h(`band-tile`,e)];case!!e.target.closest(`post-card`):return[`hashtag_post`,h(`post-card`,e)];case!!e.target.closest(`project-tile`):return[`project`,h(`project-tile`,e)];case!!e.target.closest(`album-tile`):return[`album_open`,h(`album-tile`,e)];case!!e.target.closest(`collection-tile`):return[`playlist_open`,h(`collection-tile`,e)];case!!e.target.closest(`community-tile`):return[`community`,h(`community-tile`,e)];default:return[]}}if(i.filter===`top`){s.setCurrentPageContext({loader:null,url:m}),r.all([c.users({limit:3,query:l}).then(function({data:e}){i.users=e}),c.bands({limit:3,query:l}).then(function({data:e}){i.bands=e}),c.projects({limit:3,query:l}).then(function({data:e}){i.projects=e}),c.collections({limit:3,query:l}).then(function({data:e}){i.collections=e}),c.posts({limit:10,tag:l.replace(`#`,``)}).then(function({data:e}){i.posts=e,s.pushQueueSongs(e,m)}),c.albums({limit:3,query:l}).then(function({data:e}){i.albums=e}),c.communities({limit:3,query:l}).then(function({data:e}){i.communities=e})]).then(function(){i.infiniteScrollEnded=!0,i.results={length:i.users.length+i.bands.length+i.projects.length+i.collections.length+i.posts.length+i.albums.length+i.communities.length}});return}import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSearchCategoryOpen:e}){e({collections:`playlists`,posts:`hashtag_posts`}[i.filter]??i.filter)}),i.filter===`posts`&&s.setCurrentPageContext({loader:v,url:m});function _(){return f?r.resolve({data:[]}):(p=c[i.filter]({after:d,limit:u,query:i.filter===`posts`?null:l,tag:i.filter===`posts`?l.replace(`#`,``):null}),p.then(function(e){d=e.paging.cursors.after,f=!d}),p)}function v(){return i.infiniteScrollEnded?r.resolve():(p=p.then(function({data:e}){i.infiniteScrollEnded=f,i.results=i.results||[];let t=i.results.length;return i.results=i.results.concat(e),s.pushQueueSongs(i.results.slice(t),m),_()}),p)}_().then(i.loadMore),i.$on(`$song:changed`,function(e,t){t.action===`delete`&&(ja(i.results,{id:t.song.id}),i.results.length<u&&i.loadMore())})}]),angular.module(`bandlab.search`).directive(`blSuggestions`,[`$animate`,`$compile`,`$templateRequest`,`$transitions`,`SearchHistory`,function(e,t,n,r,i){return{restrict:`A`,scope:{chooseSuggestionCallback:`&blChooseSuggestionCallback`,blurOnSelect:`=blBlurOnSelect`,history:`=blHistory`,linkNavigation:`<?blLinkNavigation`,search:`=ngModel`,suggestions:`=blSuggestions`},link:function(a,o,s){var c=s.blSuggestionsContainer===`parent`&&o[0].parentElement||o[0].closest(`main`)||o[0].closest(`.view-overlay`)||o[0].closest(`.modal-overlay`)||document.body,l,u,d=!!o[0].closest(`.view-overlay`),f=o[0].closest(`.view-overlay`)?null:`down`,p,m;a.isActive=function(e){return a.active===e},a.setActive=function(e,t){a.active=e,m=t},a.chooseSuggestion=function(e,t){a.blurOnSelect?o[0].blur():o[0].focus(),a.history&&i.push(e),!(a.linkNavigation&&t.type===`click`)&&(t.preventDefault(),t.stopPropagation(),a.chooseSuggestionCallback({suggestion:e}),a.active=null)},a.clearHistory=function(e){e.stopPropagation(),i.clear(),a.suggestions[`0history`]=[]},a.$watchCollection(`suggestions`,function(e){e&&e[m]&&(a.active=e[m][0],l&&(l[0].scrollTop=0))}),a.i18n={history:`History`,users:`Users`},o.on(`keydown mousedown focus`,function(e){var t,n,r;u||=h(),u.then(_),t=Object.values(a.suggestions||{}).some(function(e=[]){return e.length}),l&&t&&document.activeElement===o[0]&&(m||=Object.keys(a.suggestions).sort()[0],e.which===40||e.which===38?(e.preventDefault(),n=a.suggestions[m].indexOf(a.active),n=e.which===40?n+1:n-1,a.active=a.suggestions[m][n],angular.isUndefined(a.active)&&(m=b(m,e.which===38),r=e.which===40?0:a.suggestions[m].length-1,a.active=a.suggestions[m][r]),setTimeout(function(){let e=l[0].querySelector(`.mentions-suggestion.active`);e&&e.scrollIntoView({block:`nearest`})})):e.which===13||e.which===9?(a.active&&(a.chooseSuggestion(a.active,e),a.$apply()),y()):e.which===27?(y(),e.preventDefault()):a.active=null,a.$applyAsync())});function h(){return n(s.blTemplate).then(function(n){l=t(`<div class="bl-suggestions-positioner">${n}</div>`)(a),_(),e.enter(l,c,c.lastChild),window.addEventListener(`resize`,_),window.addEventListener(`mousedown`,v,{capture:!0}),p=r.onStart({},g),a.$on(`$destroy`,g),d&&window.addEventListener(`wheel`,_)})}function g(){p(),window.removeEventListener(`mousedown`,v,{capture:!0}),window.removeEventListener(`resize`,_),window.removeEventListener(`wheel`,_),l&&e.leave(l).then(function(){u=null,l=null})}function _(){let e=o[0].getBoundingClientRect();f||=e.bottom>window.innerHeight-200?`up`:`down`,s.blSuggestionsContainer===`parent`?(l[0].style.left=0,l[0].style.top=`100%`):(l[0].style.left=`${e.left}px`,f===`down`?l[0].style.top=`${e.bottom+window.scrollY}px`:l[0].style.bottom=`${window.innerHeight-e.top+window.scrollY}px`)}function v(e){!l[0].contains(e.target)&&!o[0].contains(e.target)&&g()}function y(){a.active=null,m=null,jw(a.suggestions,function(e,t){a.suggestions[t]=[]}),g()}function b(e,t){var n=e.charAt(0),r=Object.keys(a.suggestions).sort(),i=t?r[n-1]:r[+n+1];return i||=t?r[r.length-1]:r[0],a.suggestions[i].length>0?i:b(i,t)}}}}]).filter(`highlight`,[`$sce`,function(e){return function(t,n){if(!t)return;let r=``,i=0;return n&&=n.replace(/[^\w\s]/gi,``).trim(),n&&t.replace(new RegExp(n,`gi`),function(e,n){r+=`${Lw(t.slice(i,n))}<mark>${Lw(e)}</mark>`,i=n+e.length}),r+=Lw(t.slice(i)),e.trustAsHtml(r)}}]),angular.module(`bandlab.search`).directive(`miniSearch`,[`$state`,function(e){return{restrict:`A`,require:`?ngModel`,controller:[`$scope`,function(t){t.goToResults=function(t){if(e.includes(`library`))e.go(`.`,{search:t},{reload:!0});else if(angular.isDefined(t)&&t!==``){if(e.go(`search.results`,{q:t}),t.length<3)return;import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSearchPerform:e}){e(t)})}}}],link:function(e,t){e.toggleInput=r,e.clearSearchBar=i;function n(e){if(e.relatedTarget&&(e.relatedTarget.closest(`.tab-bar-search`)||e.relatedTarget.closest(`.search-form`)))return;let r=e.relatedTarget&&e.relatedTarget.closest(`.search-dropdown`)?500:0;t[0].querySelector(`input[type="search"]`).removeEventListener(`blur`,n),setTimeout(function(){t.removeClass(`active`),document.activeElement.blur()},r)}function r(e){if(t.hasClass(`active`))t.removeClass(`active`),document.activeElement.blur();else{e.preventDefault(),t.addClass(`active`);let r=t[0].querySelector(`input[type="search"]`);r.focus(),r.removeEventListener(`blur`,n),r.addEventListener(`blur`,n)}}function i(){let n=t[0].querySelector(`input[type="search"]`);e.vm.search=``,n.focus()}}}}]),angular.module(`bandlab.search`).directive(`searchSuggestions`,[`$rootScope`,`Search`,function(e,t){return{restrict:`A`,require:`ngModel`,link:function(e,n,r,i){var a,o,s=!1,c;function l(){e.suggestions={"0users":[],"1tags":[]}}function u(n,r){var i;s=!0,i=r===`users`?t.suggestedUsers({query:n,limit:15}):t.tags({query:n,limit:15}),i.then(function({data:t}){c||(e.suggestions=r===`users`?{"0users":t,"1tags":[]}:{"0users":[],"1tags":t})}).finally(function(){s=!1,o!==``&&o!==n&&!c&&u(o,r)})}i.$formatters.push(function(e){return e===``&&l(),e}),i.$viewChangeListeners.push(function(){if(a=i.$viewValue.substring(0,n[0].selectionStart),a=a.replace(/\n/g,` `),/\s$/.test(a))return l();a=a.split(` `),a=a[a.length-1],o=a.substring(1),a.charAt(0)===`@`&&o.length&&!c?s||u(o,`users`):a.charAt(0)===`#`&&o.length&&!c?s||u(o,`tags`):l(),c=!1}),e.completeMention=function(e){var t=e.username?e.username:e.name,r=i.$viewValue,a=r.substring(0,n[0].selectionStart-o.length),s=r.substring(n[0].selectionStart,r.length),u;l(),c=!0,i.$setViewValue(`${a+t} ${s}`),i.$render(),u=a.length+t.length+1,n[0].setSelectionRange(u,u)}}}}]),angular.module(`bandlab.search.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`search`,{url:`/search`,redirectTo:`search.results`,templateUrl:`https://www.bandlab.com/web-app/search/views/search-layout-9ba0b0c8a.html`,controller:[`$scope`,function(e){e.sideNavItems=[{displayName:`Top`,filter:`top`,iconName:`fire`,state:`search.results({ filter: "top" })`},{displayName:`Users`,filter:`users`,iconName:`user`,state:`search.results({ filter: "users" })`},{displayName:`Communities`,filter:`communities`,iconName:`community`,state:`search.results({ filter: "communities" })`},{displayName:`Bands`,filter:`bands`,iconName:`band`,state:`search.results({ filter: "bands" })`},{displayName:`Tags`,filter:`posts`,iconName:`hashtag`,state:`search.results({ filter: "posts" })`},{displayName:`Projects`,filter:`projects`,iconName:`note`,state:`search.results({ filter: "projects" })`},{displayName:`Albums`,filter:`albums`,iconName:`product-albums`,state:`search.results({ filter: "albums" })`},{displayName:`Playlists`,filter:`collections`,iconName:`list-note`,state:`search.results({ filter: "collections" })`}]}]}).state(`search.results`,{url:`/:filter?q&{reveal:bool}&triggeredFrom`,params:{filter:`top`,q:`bandlab`,rewriteTracking:[`$stateParams`,function(e){return()=>`/search/${e.filter}`}]},templateUrl:`https://www.bandlab.com/web-app/search/views/search-results-ce0735395.html`,controller:`SearchResultsCtrl`,resolve:{hiddenTag:[`$http`,`$stateParams`,function(e,t){return e.get(`https://www.bandlab.com/api/v2.0/options`,{cache:!0}).then(({data:{hiddenTags:e=[]}})=>{let n={"@":`a`,4:`a`,Ã:`b`,8:`b`,"¢":`c`,"©":`c`,"<":`c`,"(":`c`,"[":`c`,")":`d`,3:`e`,"â¬":`e`,Æ:`f`,6:`g`,9:`g`,1:`i`,"|":`i`,"!":`i`,"]":`j`,0:`o`,"°":`o`,5:`s`,$:`s`,"§":`s`,7:`t`,"+":`t`,"â ":`t`,µ:`u`,v:`u`,"Â¥":`y`},r=[...t.q].map(e=>n[e]??e).join(``);return e.tags.includes(r.toLowerCase().replace(`#`,``))}).catch(angular.noop)}]}}).state(`search.results.shout`,{url:`/shout?postId`,redirectTo:function(e){return{state:`post`,params:{id:e.params().postId}}}})}]),angular.module(`bandlab.search`).factory(`Search`,[`$http`,`$q`,function(e,t){let n=`https://www.bandlab.com/api/v1.3/search`;return{albums:i,all:a,bands:o,collaborators:l,collections:s,communities:c,posts:u,projects:d,suggestedUsers:f,tags:p,users:m};function r(t,n,r={}){return e({url:t,params:{limit:10,...n},cache:!0,preservePagination:!0,headers:r}).then(function(e){return e.data})}function i(e){return r(`${n}/albums`,e)}function a(e){return r(n,e)}function o(e){return r(`${n}/bands`,e)}function s(e){return r(`${n}/collections`,e)}function c(e){return r(`${n}/communities`,e)}function l(e,t){return r(`${n}/collaborators`,e,t)}function u({types:e=`image;link;revision;text;video`,...t}={}){return r(`https://www.bandlab.com/api/v1.3/posts`,{types:e,...t}).then(function(e){return e.data.forEach(t),e;function t(e){e.revision&&(e.revision.postId=e.id)}})}function d(e){return r(`${n}/songs`,e)}function f(e){return r(`https://www.bandlab.com/api/v1.3/mentions/suggestions`,e)}function p(e){return r(`${n}/tags`,e)}function m(e){return r(`${n}/users`,e)}}]),angular.module(`bandlab.search`).factory(`SearchHistory`,function(){var e;try{e=JSON.parse(Y.history)}catch{e=[]}return{clear:function(){Y.removeItem(`history`),e=[]},get:function(){return e},push:function(t){e.some(e=>e.id===t.id)||(e.unshift(t),Y.history=JSON.stringify(e))}}}),`serviceWorker`in navigator&&window.addEventListener(`load`,function(){navigator.serviceWorker.register(`/service-worker.js?v=1790153483214`).catch(()=>{})}),angular.module(`bandlab.shout`,[]),angular.module(`bandlab.shout`).directive(`backgroundCaptionTile`,function(){return{restrict:`E`,replace:!0,scope:{post:`=`},templateUrl:`https://www.bandlab.com/web-app/shout/partials/_background-caption-tile-065e765f3.html`}}),angular.module(`bandlab.shout`).directive(`imageTile`,function(){return{restrict:`E`,replace:!0,scope:{image:`=`,post:`=`,isSe
355nsitive:`<`},templateUrl:`https://www.bandlab.com/web-app/shout/partials/_image-tile-a9e0464ff.html`,controllerAs:`vm`,controller:[`$element`,`$injector`,`$scope`,`$state`,`$stateParams`,`Me`,function(e,t,n,r,i,a){let o=this;o.loadingState=!0,o.isModal=e[0].closest(`.ds-modal, .modal`)||!!i.postId||r.includes(`post`),o.openPostModal=()=>fs({$injector:t,id:n.post.id}),o.sensitiveOnClick=()=>{if(a.birthday){n.isSensitive=!n.isSensitive,n.$applyAsync();return}X(wf,{type:`info`,illustrationIcon:_(Df),title:`Birthday required to see this content`,message:`Please update your birthday in Account Settings.`,actions:[{label:`Add Birthday`,color:`primary`,onClick:()=>{r.go(`settings.account`)}}]})},o.expandImage=function(){let e=J(()=>import(`./D5DLElwB.js`)),t={post:n.post};X(e,t)},o.cropImage=we(function(e){let{width:t,height:n}=e.target;t/n>16/9&&(o.isDesktopMaxLandscape=!0,o.isMobileMaxLandscape=!0),t/n<1&&(o.isDesktopMaxPortrait=!0),t/n<5/6&&(o.isMobileMaxPortrait=!0),o.loadingState=!1})}]}}),angular.module(`bandlab.shout`).factory(`VideoTile`,function(){var e={current:null};return window.addEventListener(`storage`,function(t){t.key===`playing`&&e.current&&e.current.pause()}),e}).directive(`videoTile`,[`$injector`,function(e){return{restrict:`E`,replace:!0,scope:{file:`=?`,post:`=?`,video:`=?`,thumbnail:`=?`,shouldOpenVerticalVideoPlayer:`<`,verticalVideoPlayerScrollable:`<`,isSensitive:`<`},template:`<div style="display: contents;"></div>`,link:function(t,n){let r=h({file:t.file,post:t.post,thumbnail:t.thumbnail,video:t.video,isSensitive:t.isSensitive});t.$watch(function(){Object.assign(r,{file:t.file,post:t.post,thumbnail:t.thumbnail,video:t.video,shouldOpenVerticalVideoPlayer:t.shouldOpenVerticalVideoPlayer,verticalVideoPlayerScrollable:t.verticalVideoPlayerScrollable})}),$(import(`./BJR9IhqK.js`),n[0],t,{$injector:e,scope:t},r)}}}]),angular.module(`bandlab.song`,[]),angular.module(`bandlab.song`).controller(`ProjectCollaboratorsCtrl`,[`$scope`,`ConfirmModal`,`Invite`,`User`,function(e,t,n,r){function i(){r.getCollaborators({songId:e.song.id,accepted:!0,limit:50}).$promise.then(function({data:t}){e.collaborators=t})}function a(){n.query({id:e.song.id,entity:`songs`,accepted:!1,limit:50}).$promise.then(function(t){e.pendingInvitedUser=[],e.pendingInvitedExternalUser=[],t.data.forEach(function(t){var n;t.user?(n=new r(t.user),n.invite=t,e.pendingInvitedUser.push(n)):(n=new r({email:t.email}),n.invite=t,e.pendingInvitedExternalUser.push(n))})})}e.removeCollaborator=function(n){new t({confirmLabel:`Remove`,contentScope:{title:`Remove this collaborator?`,message:`<p>${`${n.name} will lose access to the existing project.`}</p>`},onConfirm:function(){e.song.$leave({id:e.song.id,userId:n.id}).then(function(){e.collaborators=e.collaborators.filter(function(e){return e!==n})})}}).show()},e.$on(`$invite:changed`,function(){i(),a()}),i(),a()}]),angular.module(`bandlab.song`).controller(`ProjectEditCtrl`,[`$analytics`,`$injector`,`$rootScope`,`$scope`,`$state`,`AppNotifications`,`Band`,`ConfirmModal`,`Me`,`Modal`,`PlayerHistory`,`Song`,function(e,t,n,r,i,a,o,s,c,l,u,f){r.songBackup=r.song,r.song=new f(r.song),r.changeError=!1,r.goBack=function(){if(!i.stackSize){i.go(`songId`,{id:r.song.id});return}window.history.back()},r.getBands=function(){return o.fromUser({userId:c.id,limit:50}).$promise.then(e=>{r.bands=e.data})},r.$on(`$file:uploadSuccess`,function(e,t){r.song.picture={...t}}),r.$on(`$song:changed`,function(e,{action:t,data:n}){t===`picture`&&Object.assign(r.song.picture,n.picture)}),r.createBandFirst=function(){let e=r.$on(`$band:changed`,function(e,t){t.action===`create`&&r.bands.unshift(t.band)});return new l({id:`createBandModal`,templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-create-e79262035.html`,onConfirm:()=>e()}).show()},r.moveProject=function(){var t={id:r.song.id,bandId:r.songForm.bandId.$modelValue};let a=new s({confirmLabel:`Move`,contentScope:{title:`Move this project?`,message:`<p>The project will be permanently moved to the selected band. Only admins of the band will be able to delete the project</p>`},onConfirm:function(){r.moveError=!1,r.movePending=!0,r.moveSuccess=!1,f.update(t).$promise.then(function(t){r.movePending=!1,Object.assign(r.song,t),e.eventTrack(`Move Song`,{category:`Song`}),n.$broadcast(`$song:changed`,{action:`move`,song:r.song}),i.current.name===`library.projects.songs`?(n.$broadcast(`moveProjectMod
355al`,`close`),a.destroy()):(r.moveSuccess=!0,i.go(`library.projects.songs`,{category:t.author.username}))}).catch(function(){r.songForm.$setPristine(),r.moveError=!0,r.movePending=!1})},onDestroy:function(){r.songForm.$setPristine()}});a.show()},r.updateSong=function(){var t={description:r.song.description||``,id:r.song.id,isForkable:r.song.isForkable,name:r.song.name,slug:r.song.slug};f.update(t).$promise.then(function(t){Object.assign(r.songBackup,t),r.song=t,r.songForm.$setPristine(),a.addNotification({title:`Project settings updated`,action:`<a class="notification-action-text-inline" href="${i.href(`songId`,{id:r.song.id})}">Go to Project</a>`,classList:`success`,autoclose:8e3}),n.$broadcast(`$song:changed`,{action:`update`,id:r.song.id,song:r.song}),n.$broadcast(`renameProjectModal`,`close`),e.eventTrack(`Update Song`,{category:`Song`})}).catch(function(e){r.changeError=e?.data?.errorCode??!0,r.songForm.$setPristine()})},r.duplicateSong=async function(){let e={description:r.song.description??``,isForkable:r.song.isForkable,name:r.song.name};r.song.picture.id&&(e.pictureId=r.song.picture.id);let t=await Un.post(`https://www.bandlab.com/api/v1.3/projects/${r.song.id}/duplicates`,{json:e}).json();import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDuplicateSong:e}){e({original_project_id:r.song.id,project_id:t.id,triggered_from:`user_library`})}),i.go(`songId`,{id:t.id})};function p(){return n.$broadcast(`$song:changed`,{action:`mark-deleted`,song:r.song}),new f(r.song).$delete().then(function(){u.removeSong(r.song.id),n.$broadcast(`$song:changed`,{action:`delete`,song:r.song}),e.eventTrack(`Delete Song`,{category:`Song`}),i.includes(`track`)&&i.go(`library`)}).catch(e=>{n.$broadcast(`$song:changed`,{action:`unmark-deleted`,song:r.song}),a.addNotification({title:`Unable to delete project`,content:Qe(e,`data.message`)||Qe(e,`message`,`Unknown error`),autoclose:5e3,classList:`alert`})})}r.confirmDeleteProject=async function(){let e=``;{let n=t.get(`Release`),i=!1;try{let{data:e}=await n.getList({userId:c.id,limit:1,songId:r.song.id}).$promise;i=e.length>0}catch{}e=r.song.bandId&&!i?`All band members will lose access. You can restore your project within the next 30 days.`:r.song.bandId&&i?`All band members will lose access. Also it may affect your release. You can restore your project within the next 30 days.`:i?`It may affect your release. You can restore your project within the next 30 days`:`You can restore your project within the next 30 days.`}let n=J(()=>import(`./-dYmKZLi.js`).then(e=>e.n));import(`./BUIA2SYS.js`).then(e=>e.t).then(function({createModal:t}){t(n,{size:`small`,title:`Delete ${r.song.name}?`,subtitle:e,actions:[{label:`Cancel`,color:`secondary`},{label:`Delete`,color:`destructive-primary`,onClick:p}]})})};function m(){r.song.$leave({id:r.song.id,userId:c.id}).then(function(){n.$broadcast(`$song:changed`,{action:`leave`,song:r.song}),e.eventTrack(`Leave Song`,{category:`Song`})})}r.confirmLeaveProject=function(){new s({confirmLabel:`Leave`,contentScope:{title:`Leave this collaboration?`,message:`<p>You will lose access to the existing project.</p>`},onConfirm:function(){m()}}).show()},r.restoreProject=function(e){return n.$broadcast(`$song:changed`,{action:`mark-deleted`,song:e}),f.update({id:e.id,status:`Active`}).$promise.then(function(e){n.$broadcast(`$song:changed`,{action:`restore`,song:e}),d.get(`webview`)!==`true`&&a.addNotification({title:`Project restored`,content:`Your project has been restored to your Library.`,image:`${e.picture.url}48x48 1x, ${e.picture.url}96x96 2x`,action:` 356 <a class="notification-action-text-inline" href="${i.href(`${e.author.type.toLowerCase()}Song`,{username:e.author.username,slug:e.slug})}">Go to Project</a> 357 `,autoclose:5e3})}).catch(t=>{n.$broadcast(`$song:changed`,{action:`unmark-deleted`,song:e}),a.addNotification({title:`Cannot restore project`,content:Qe(t,`data.message`)||Qe(t,`message`,`Unknown error`),autoclose:5e3,classList:`alert`})})}}]),angular.module(`bandlab.song`).controller(`RevisionDownloadCtrl`,[`$analytics`,`$http`,`$scope`,`EditorLoader`,`RevisionImporter`,function(e,t,n,r,i){n.isLoading=!1,n.isDone=!1,n.openDownloadModal=i.downloadMixdown,n.openDownloadStemsModal=i.downloadStems,n.downloadMixdown=function(a,o){if(n.isLoading)return;let s=n.$on(`$destroy`,function(){s(),s=null});n.isLoading=!0;let c=`https://www.bandlab.com/api/v1.3/revisions/${a.id}/mixdown/download-options/${o.id}`,l=performance.now();return t.post(c).then(function(e){return e.data.url?e:i.pollOnDemand(c,()=>!s)}).then(function({data:{id:t,url:r}}){e.eventTrack(`Download Mixdown`,{category:`Revision`,label:t}),a.mastering&&!a.mastering.bypass&&Promise.all([import(`./DvQD5s06.js`).then(e=>e.t),import(`./CmMd3ZU6.js`).then(e=>e.u)]).then(function([{logMasteringDownload:e},{getAnalyticsNameFromSlug:t}]){e({mastering_preset:t(a.mastering.preset),file_type:`mixdown`,intensity:a.mastering.intensity,input_gain_db:Math.round(a.mastering.inputGain*100)/100,...vu(a.mastering)?{eq_low:a.mastering.lowFreqGain,eq_mid:a.mastering.midFreqGain,eq_high:a.mastering.highFreqGain}:{}})}),Hr(r),import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:e})=>{e(`download_success`,{format:o.id,time:(performance.now()-l)/1e3})}),n.isLoading=!1,n.isDone=!0,setTimeout(function(){n.isDone=!1,n.$applyAsync()},3e3)}).catch(function(){r.flushQueue()})}}]),angular.module(`bandlab.song`).controller(`RevisionEditCtrl`,[`$injector`,`$rootScope`,`$scope`,`ConfirmModal`,`Me`,`Post`,`Revision`,function(e,t,n,r,i,a,o){var s=n.$parent.revision;n.me=i,n.revision=new o({description:s.description,genres:s.genres,id:s.id,isPublic:s.isPublic,song:s.song});function c(){return a.get({id:s.postId}).$promise.then(function(e){n.revision.isExplicit??=e.isExplicit,n.revision.availabilitySetting??=e.state,n.revision.availabilitySetting===`Private`&&n.canBePrivate===!1&&(n.revision.availabilitySetting=`Public`)})}let l=c();n.editRevision=function(e){return delete n.errorMessage,(l??=c()).then(function(){return f(e)},function(t){l=null,u(e,t)})};function u(e,t){n.errorMessage=Qe(t,`data.message`,`Please try again`),e.$setPristine()}function f(e){let t=n.revision.availabilitySetting!==`Private`&&n.canBePrivate===!1;if(n.revision.genres[0]&&n.revision.genres[0].id===`other`&&t&&!d.get(`modalGenreWarnSeen`)){let t=new Date(Date.now()+31536e6);return d.put(`modalGenreWarnSeen`,`true`,{expires:t}),new r({cancelLabel:`Change Genre`,confirmLabel:`Continue`,contentScope:{title:`Want to be discovered?`,message:`<p>Your revision wonât be discoverable unless you select a different genre.</p>`},onCancel:function(){n.revisionForm.$setPristine()},onConfirm:function(){return p(e)}}).show()}return p(e)}function p(r){let i=n.revision.availabilitySetting,c=n.revision.isExplicit;return a.update({id:s.postId,isExplicit:c,state:i}).$promise.then(function(e){return n.revision.post=e,o.update({description:n.revision.description,genres:n.revision.genres,id:n.revision.id}).$promise.then(function(t){return Object.assign(t.post,e),t.isPublic=e.revision.isPublic,t})}).then(function(r){return Object.assign(r.song,s.song,r.song),Object.assign(s,r),t.$broadcast(`$revision:changed`,{action:`edit`,revision:s}),t.$broadcast(`editRevisionModal`,`close`),n.resolve?.(n.revision),i===`Public`&&rD(r,e),r}).catch(function(e){u(r,e)})}}]),angular.module(`bandlab.song`).controller(`RevisionForksCtrl`,[`$q`,`$scope`,`Post`,function(e,t,n){var r=null,i,a=!1;if(t.revision.counters.forks===0){t.infiniteScrollEnded=!0,t.posts=[];return}function o(){return a?e.resolve([]):(i=n.fromRevisionForks({revisionId:t.revision.id,after:r,limit:10}).$promise.then(function(e){return r=e.paging.cursors.after,a=!r,e.data}),i)}t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(i=i.then(function(e){return t.infiniteScrollEnded=a,t.posts=t.posts||[],t.posts=t.posts.concat(e),o()}),i)},o().then(t.loadMore)}]),angular.module(`bandlab.song`).controller(`RevisionInviteLinkCtrl`,[`$http`,`$scope`,function(e,t){e.get(`https://www.bandlab.com/api/v1.3/songs/${t.song.id}/invite-link`).then(function({data:{inviteLink:e}}){t.link=$o(e)})}]),angular.module(`bandlab.song`).controller(`RevisionMasterCtrl`,[`$scope`,`$state`,`RevisionImporter`,function(e,t,n){e.masterRevision=async r=>{if(bn||hn){window.location.href=Zo(window.location.href,r.id);return}let i=await n.masterRevision(r,e);i&&t.go(`track`,{id:i.postId,revId:i.id})}}]),angular.module(`bandlab.song`).controller(`RevisionMetadataFormCtrl`,[`$scope`,`ConfirmModal`,`Me`,function(e,t,n){e.me=n,e.revision.availabilitySetting=e.canBePrivate?`Private`:`Public`,e.$watch(`revision.song.isForkable`,function(t){t&&(e.dis
357playAdvancedSettings=!0,e.revision.availabilitySetting=`Public`)}),e.$on(`$file:uploadSuccess`,function(t,n){e.revision.song.pictureId=n.id,e.revision.song.picture=n,e.revisionForm.$setDirty()}),e.setRevisionData=function(){if(e.revision.isExplicit&&(e.revision.post={isExplicit:!0}),e.revision.genres[0]&&e.revision.genres[0].id===`other`&&e.revision.availabilitySetting!==`Private`&&!d.get(`modalGenreWarnSeen`)){let n=new Date(Date.now()+31536e6);return d.put(`modalGenreWarnSeen`,`true`,{expires:n}),new t({cancelLabel:`Change Genre`,confirmLabel:`Continue`,contentScope:{title:`Want to be discovered?`,message:`<p>Your revision wonât be discoverable unless you select a different genre.</p>`},onCancel:function(){e.revisionForm.$setPristine()},onConfirm:function(){r()}}).show()}r()};function r(){e.resolve(e.revision),e.revisionForm.$setPristine()}}]),angular.module(`bandlab.song`).controller(`RevisionSharePrivateCtrl`,[`$analytics`,`$scope`,`$state`,`Modal`,`Post`,function(e,t,n,r,i){t.displayPrivateLink=function(t){i.getPrivateLink({id:t.id}).$promise.then(function(a){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSharePrivateLinkOpen:e}){e()}),e.eventTrack(`Get Private Link`,{category:`Revision`});var o={shareUrl:n.href(`revisionSharedKey`,{postId:t.id,sharedKey:a.sharedKey},{absolute:!0})};return new r({contentScope:{modalData:o,renewLink:function(){i.getNewPrivateLink({id:t.id}).$promise.then(function(r){e.eventTrack(`Get New Private Link`,{category:`Revision`}),o.shareUrl=n.href(`revisionSharedKey`,{postId:t.id,sharedKey:r.sharedKey},{absolute:!0})})}},templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-private-share-8e1e10b34.html`}).show()})}}]),angular.module(`bandlab.song`).controller(`RevisionUnpublishCtrl`,[`$rootScope`,`$scope`,`ConfirmModal`,`Post`,function(e,t,n,r){t.unpublishRevision=function(t){new n({confirmLabel:`Make Private`,toFocusConfirm:!0,contentScope:{title:`Make track private`,message:`<p>Making this track private will stop the active boost campaign and prevent this post from appearing on public feeds.</p>`},onConfirm:function(){return r.update({id:t.postId,state:`Private`}).$promise.then(function(n){t.isPublic=!1,t.post=n,e.$broadcast(`$revision:changed`,{action:`unpublish`,revision:t})})}}).show()}}]),angular.module(`bandlab.song`).controller(`SongRevisionsFeedCtrl`,[`$location`,`$scope`,`$state`,`$timeout`,`Band`,`Me`,`PlayerHistory`,`Post`,`theSong`,`User`,function(e,t,n,r,i,a,o,s,c,l){let u=e.url(),d=[];o.setCurrentPageContext({loader:y,url:u}),t.song=c,t.getCollaborators=_,t.exitSongTree=p,t.canPublish=f,t.openPermissionsModal=x,r(function(){t.visible=!0}),v(y),t.isRevisionEligibleForDistro=function(e){return e_(e)&&Gg(e)&&!e.song.isFork&&e.song.counters.collaborators===0&&e.song.author.type!==`Band`},t.getCanDuplicate=function(){let e=c,t=e.author.id===a.id&&e.author.type===`User`&&e.counters.collaborators===0;return e.canEdit&&t&&!e.isFork};function f(e){return e?e.canPublish&&!e.isPublic:!1}function p(){return n.stackSize?window.history.back():n.go(`^`)}function m(e){e.target.closest(`.project-history`)||e.target.closest(`.modal-overlay`)||!t.visible||(t.visible=!1,r(function(){n.go(`^`)},300))}function h(e){e.keyCode===27&&t.visible&&(t.visible=!1,r(function(){n.go(`^`)},300))}t.$on(`$destroy`,g);function g(){document.body.removeEventListener(`keydown`,h),document.body.removeEventListener(`mousedown`,m)}document.body.addEventListener(`mousedown`,m),document.body.addEventListener(`keydown`,h);function _(e={}){return l.getCollaborators(Object.assign({songId:c.id,includeOwner:!0},e)).$promise}c.author.type===`User`?l.get({id:c.author.id}).$promise.then(function(e){t.projectAuthor=e}):i.get({id:c.author.id}).$promise.then(function(e){return t.projectAuthor=e,l.fromBand({bandId:c.author.id}).$promise}).then(function({data:e}){t.bandOwner=e.find(e=>e.role===`Owner`)});function v(e){return e().then(function({paging:e,data:t}){let n=t.map(function(e){return e.revision.postId=e.id,e.revision.post=e,e});return d=d.concat(n),o.pushQueueSongs(n,u),e.cursors.after?v(()=>y(e.cursors)):b(d)})}function y({after:e}={}){return s.fromSong({songId:t.song.id,after:e}).$promise}function b(e){t.latest=e.shift(),t.originalRevisionMetadata=t.latest.revision.song.original,t.posts=e}function x(){let e=J(()=>import(`./CnIiHQrF.js`));X(e)}}]).directive(`revisionDistroEntryPoint`,function(){return{restrict:`E`,scope:{revision:`=`},templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-distro-entry-point-509aeba5c.html`,controller:`Art
357istServicesCtrl`}}),angular.module(`bandlab.song`).component(`fork`,{bindings:{name:`<`,revisionId:`<`},transclude:!0,template:`<div ng-click="vm.displayForkModal()" ng-transclude></div>`,controller:[`$element`,`$rootScope`,`$state`,`appActions`,`Modal`,`Revision`,`Song`,function(e,t,n,r,i,a,o){var s=this;s.displayForkModal=c;function c(){r.checkAllowed(`fork`)&&(l(s.revisionId),new i({id:`songForkModal`,templateUrl:`https://www.bandlab.com/web-app/song/partials/_song-fork-555e35a79.html`,contentScope:{vm:s}}).show())}function l(r){o.fork({revisionId:r}).$promise.then(function(i){s.forkedSong=i,s.forkResult=`success`,t.$broadcast(`$song:changed`,{action:`create`,song:i}),Promise.all([a.get({id:r}).$promise,import(`./DvQD5s06.js`).then(e=>e.t)]).then(function([t,{logRevisionFork:i}]){i(r,t.postId,t.creator.id,e,n)})}).catch(function(){s.forkResult=`error`})}}],controllerAs:`vm`}),angular.module(`bandlab.song`).directive(`projectFormName`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/song/partials/_project-form-name-ecd3dbdd4.html`}}).directive(`revisionFormAvailability`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-form-availability-6f69690c1.html`}}).directive(`revisionFormDescription`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-form-description-c82c4b548.html`}}).directive(`revisionFormFork`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-form-fork-c78aabb12.html`}}).directive(`revisionFormExplicit`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-form-explicit-50236fb9d.html`}}).directive(`revisionFormGenre`,function(){return{restrict:`E`,replace:!0,scope:{revision:`=`},templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-form-genre-a154fb9ae.html`,controller:[`$scope`,`Tag`,function(e,t){t.getDefaultGenre().then(function(t){e.revision.genres=e.revision.genres||[],e.revision.genres[0]||(e.revision.genres[0]=t),e.genre=e.revision.genres[0]}),t.getGenres().then(function(t){e.genres=t})}]}}).directive(`revisionFormListing`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-form-listing-e24956cf2.html`}}).directive(`revisionFormKey`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-form-key-aebea3e5f.html`,controller:[`$scope`,function(e){e.revision.key=e.revision.key||null;let t=bl(),n=[];for(let[e,r]of t.entries()){if(r===`-`){n.push({value:null,label:r});continue}if(r.includes(`/`)){let t=vl(e),i=pl(t),a=ml(i);n.push({value:a,label:r});continue}n.push({value:r,label:r})}e.keys=n}]}}).directive(`revisionFormBpm`,function(){return{restrict:`E`,replace:!0,templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-form-bpm-69a238e97.html`,controller:[`$scope`,function(e){e.revision.metronome.bpm=e.revision.metronome.bpm||120}]}}),angular.module(`bandlab.song`).component(`revisionImporter`,{bindings:{bandId:`<`,importAs:`@`},transclude:!0,template:`<div ng-click="vm.selectFile();" ng-transclude></div>`,controller:[`$analytics`,`$injector`,`$state`,`$timeout`,function(e,t,n,r){let i=this;i.selectFile=a;function a(){return pr({accept:Wr}).then(function(e){return fr(e[0])}).then(function(e){return o(e)})}function o(a){let o=t.get(`RevisionImporter`);return i.importAs===`track`?o.createTrackFromFile(a):(e.eventTrack(`Upload New Revision`,{category:`Revision`}),o.createRevisionFromFile(a,{bandId:[`recent`,`my-projects`,`collaborations`,`bands`].includes(i.bandId)?null:i.bandId}).then(e=>r(()=>{n.go(`track`,{id:e.postId})},1e3)))}}],controllerAs:`vm`}),angular.module(`bandlab.song`).component(`revisionMobileInspiredBy`,{bindings:{originalRevisionMetadata:`<`,canMessageOriginalAuthor:`<`,shareWithOriginalAuthor:`&`},templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-mobile-inspired-by-4b58b6102.html`,controllerAs:`vm`}),angular.module(`bandlab.song`).component(`revisionPlayerAudio`,{bindings:{barWidth:`<`,post:`<`,revision:`<`},templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-player-audio-b43729b32.html`,controllerAs:`vm`,controller:[`$anal
357ytics`,`Revision`,function(e,t){this.$onInit=function(){this.revision.isRecentlyUpdated=(Date.now()-new Date(this.revision.createdOn))/1e3/60/10<1},this.reprocessMixdown=function(n){return e.eventTrack(`Reprocess Mixdown`,{category:`Revision`}),t.reprocessMixdown({revisionId:n}).$promise.then(()=>{this.revision.isRecentlyUpdated=!0})}}]});async function UI({post:e,$injector:t,$scope:n}){return!t.get(`Me`).isAnonymous()&&GI({post:e,viewerState:await WI({$injector:t,$scope:n})})}async function WI({$injector:e,$scope:t}){if(e.get(`Me`).isAnonymous())return{isRewindEnabled:!1,viewerIsIncognitoEnabled:!1};let[n,r]=await Promise.all([JI({$injector:e,$scope:t}),YI({$injector:e,$scope:t})]);return{isRewindEnabled:n,viewerIsIncognitoEnabled:r}}function GI({post:e,viewerState:t}){return t.isRewindEnabled&&!t.viewerIsIncognitoEnabled&&XI(e)&&!ZI(e)}function KI(e){return e.type===`Revision`}function qI(e){return e.type===`Video`}async function JI({$injector:e}){let t=e.get(`Me`);return await ke(t,`rewind_on`)===`true`}function YI({$injector:e,$scope:t}){let n=e.get(`Me`),r=e.get(`Settings`),{availableFeaturesSet:i}=qn(t,n);return QI({Settings:r,hasProfileViewsFeature:i.value.has(`profile-views`)})}function XI(e){return qI(e)?!!e.video.videoTrackPost?.revisionId:!(`revision`in e)||!e.revision?!1:e.revision.id!==e.revision.postId}function ZI(e){if(qI(e))return e.video.videoTrackPost?.creator?.isIncognitoEnabled===!0;let t=e.revision?.creator;if(!t)return!1;let n=t.isIncognitoEnabled===!0,r=e.creator?.isIncognitoEnabled===!0;return e.creator?.id===t.id?n||r:n}async function QI({Settings:e,hasProfileViewsFeature:t}){if(!t)return!1;try{let{isIncognitoEnabled:t}=await e.getPrivacySettings({service:`profile-views`}).$promise;return t}catch{return!1}}angular.module(`bandlab.song`).component(`revisionTile`,{bindings:{post:`<`,revision:`<`},templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-tile-27850a3b2.html`,controller:[`$element`,`$injector`,`$scope`,`$state`,`Me`,function(e,t,n,r,i){let a=this;a.$onInit=o,a.me=i,n.$on(`$albumTrack:changed`,function(t,n){NT(e[0],n.track.picture.color)});function o(){a.revision.post=a.post,a.shouldShowBaseTrackRewind=!1,UI({post:a.post,$injector:t,$scope:n}).then(e=>{a.shouldShowBaseTrackRewind=e,n.$applyAsync()}),NT(e[0],a.revision.song.picture.color);let{canMessageOriginalAuthor:i,shareWithOriginalAuthor:o}=cs(t);a.canMessageOriginalAuthor=()=>i(a.revision,a.revision.song.original),a.shareWithOriginalAuthor=()=>o(a.revision,a.revision.song.original.conversationId),a.hasForkCount=()=>a.revision.counters.forks>0,a.canForkRevision=()=>a.post.revision.song.isForkable&&!a.post.revision.canEdit&&!a.post.revision.song.isFork,a.shouldShowForkZeroCase=()=>a.post.revision.song.isForkable&&!a.hasForkCount()&&!a.post.revision.song.isFork&&!a.post.revision.canEdit,a.hasForkInfo=()=>a.revision.song.isFork&&a.revision.song.original?.name||a.hasForkCount()||a.canForkRevision(),a.hasRewind=()=>!a.hasForkInfo()&&!a.canMessageOriginalAuthor()&&a.shouldShowBaseTrackRewind,a.openTrackRewindModal=()=>iE({$injector:t,$state:r,post:a.post,revision:a.revision}),a.hasFooter=()=>a.hasForkInfo()||a.hasRewind()}}],controllerAs:`vm`}).directive(`colorTheme`,function(){return{scope:{colorTheme:`=`},link:function(e,t){let n=e.colorTheme;NT(t[0],n?.color,n?.adjustedColor,n?.adjustedColorLValue)}}}),angular.module(`bandlab.song`).component(`songLink`,{bindings:{song:`<`,post:`<`,revision:`<`},transclude:!0,template:`<a ui-state="vm.uiState" ui-state-params="vm.uiStateParams" ui-sref-opts="{ inherit: false }" ng-transclude></a>`,controller:function(){let e=this;e.$onInit=t,e.$onChanges=t;function t(){e.post?(e.uiState=`track`,e.uiStateParams={id:e.post.id}):e.revision?(e.uiState=`track`,e.uiStateParams={id:e.revision.postId,revId:e.revision.id}):e.song&&(e.uiState=`songId`,e.uiStateParams={id:e.song.id})}},controllerAs:`vm`}),angular.module(`bandlab.song`).component(`timeMarkers`,{bindings:{post:`<`,revision:`<`},templateUrl:`https://www.bandlab.com/web-app/song/partials/_time-markers-135e76f2d.html`,controllerAs:`vm`,controller:[`$anal
357ytics`,`$element`,`$scope`,`Player`,function(e,t,n,r){let i=this,a=t[0].closest(`revision-player-audio`),o=t[0].parentNode.querySelector(`canvas`);i.tempComment=null,i.comments=[],i.markers=[],i.goToTimeAndPlay=function(t){r.goToTimeAndPlay(i.revision,t.time,i.post),e.eventTrack(`Time Marker Click`,{category:`Revision`,label:`Waveform Marker`})};function s({timestamp:e=0,comment:t}){let n=i.revision.mixdown.duration,r=e>=n?0:e,a=r/n;if(r)return{comment:{...t,truncate:!1},revision:i.revision,time:r,left:Math.floor(a*(o.clientWidth-8)/9)*9}}let c=Fa(()=>{i.markers=i.comments.concat(i.tempComment).filter(Boolean).map(e=>s({timestamp:e.timestamp,comment:e})).filter(Boolean).sort((e,t)=>e.left-t.left).filter((e,t,n)=>t===n.findIndex(t=>t.left===e.left)),i.markers.length?a.classList.add(`has-time-markers`):a.classList.remove(`has-time-markers`),n.$applyAsync()},100);n.$on(`$comments:loaded`,(e,{revision:t,comments:n})=>{t.id===i.revision.id&&(i.comments=n,c())}),n.$on(`$timeMarker:addTempTimeMarker`,(e,{revisionId:t,comment:n})=>{i.revision.id===t&&(i.tempComment=n,c())}),n.$on(`$timeMarker:removeTempTimeMarkers`,()=>{i.tempComment&&(i.tempComment=null,c())}),window.addEventListener(`resize`,c),n.$on(`$destroy`,()=>{window.removeEventListener(`resize`,c)})}]}),angular.module(`bandlab.song`).directive(`trackLyrics`,[`$injector`,function(e){return{restrict:`E`,scope:{canEdit:`<`,lyrics:`<`,revisionId:`<`,onUpdated:`&`},link:function(t,n){let r=h({canEdit:t.canEdit,lyrics:t.lyrics,revisionId:t.revisionId,onUpdated(e,n){t.onUpdated({revision:e,lyrics:n}),t.$applyAsync()}});t.$watch(`canEdit`,e=>{r.canEdit=e}),t.$watch(`lyrics`,e=>{r.lyrics=e}),t.$watch(`revisionId`,e=>{r.revisionId=e}),$(import(`./B05_Rqna.js`),n[0],t,{$injector:e},r)}}}]),angular.module(`bandlab.song`).factory(`Revision`,[`$analytics`,`$http`,`$resource`,`$state`,function(e,t,n,r){let i=`https://www.bandlab.com/api/v1.3/revisions`,a=[],o=[],s=[];function c(e){let t=[`auxChannels`,`description`,`genres`,`key`,`lyrics`,`mastering`,`metronome`,`post`,`samples`,`sampleId`,`song`,`tracks`,`trackGroups`,`volume`,`saveType`].reduce(function(t,n){return t[n]=angular.copy(e.revision[n]),t},{});t.parentId=e.revision.id,t.auxChannels.forEach(function(e){delete e.effects});let n=new Set;return t.tracks.forEach(function(e){delete e.color,delete e.sampleId,e.protected===null&&(e.protected=[]),e.regions.forEach(function(e){delete e.sampleStartPosition,e.startPosition=Math.max(e.startPosition,0),n.add(e.sampleId)}),e.autoPitch?.version===`0.0`&&(e.autoPitch.version=null)}),t.samples=t.samples.filter(function(e){return n.has(e.id)}).map(function({...e}){return delete e.buffer,e}),a.push(t),t}function l(t,n,i){let c=a.pop(),l=o.pop(),u=s.pop();return i===201?(import(`./BWvciV-z.js`).then(e=>e.t).then(function({incrementProperty:e}){r.is(`mastering`)&&e(`used mastering`)}),e.eventTrack(`Create Revision`,{extra:{song:t.song,revision:t,cleanedRevision:c,createdFrom:r.is(`mixEditor`)?`me`:r.is(`mastering`)?`mastering`:r.is(`songStarter`)?`songstarter`:r.is(`track`)?`track_page`:`quick_upload`,triggeredFrom:l,autokeyUsedCount:u}})):i>=400&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logRevisionCreateFailure:e}){e()}),t}return n(i,{},{get:{method:`GET`,params:{id:`@id`,edit:!1},url:`${i}/:id`},getTrackVideoPosts:{method:`GET`,preservePagination:!0,url:`${i}/:id/track-videos/posts`},getBreakdown:{method:`GET`,url:`https://www.bandlab.com/api/v1.3/revisions/:id/studio-breakdown`},save:{method:`POST`,interceptor:{request:function(e){return o.push(e.data.triggeredFrom),delete e.data.triggeredFrom,s.push(e.data.autokeyUsedCount),delete e.data.autokeyUsedCount,e}},transformRequest:[c,angular.toJson],transformResponse:[...t.defaults.transformResponse,l]},update:{method:`PATCH`,params:{id:`@id`},url:`${i}/:id`},reprocessMixdown:{method:`POST`,url:`https://www.bandlab.com/api/v1.3/revisions/:revisionId/mixdown/reprocess`,params:{revisionId:`@revisionId`}}})}]);const $I=[`aria-pressed`],eL={key:0,class:`segmented-control-item-text`};var tL=V({__name:`SegmentedControlButton`,props:{modelValue:{type:[Array,Number,Object,String,Boolean,null]},value:{type:[Array,Number,Object,String,Boolean,null]}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=ne(Of);function a(){r(`update:modelValue`,n.value)}return(t,r)=>(F(),G(`button`,{ref:e=>f(i)(n.value,e),"aria-pressed":e.modelValue===n.value,type:`button`,onClick:a},[k(t.$slots,`icon`,{class:`segmented-control-item-icon`}),t.$slots.default?(F(),G(`span`,eL,[k(t.$slots,`default`)])):H(``,!0),k(t.$slots,`label`,{class:`segmented-control-item-text`}),k(t.$slots,`right-detail`)],8,$I))}}),nL=n({default:()=>rL}),rL=tL;const iL={class:`ds-modal ds-modal-size-medium`},aL={class:`ds-modal-header`},oL={class:`ds-modal-title`},sL={class:`ds-modal-content`},cL={class:`stem-title`},lL={class:`stem-track-length`},uL={class:`stem-region-container`},dL={class:`stem-track-end`},fL=[`title`,`disabled`,`onClick`];var pL=V({__name:`DownloadStemsModal`,props:{revision:{},download:{type:Function}},emits:[`closeModal`],setup(e){let t=e,n=[{value:`aac-44100-16bit-192kbps`,label:`M4A`},{value:`wav-44100-16bit`,label:`WAV`}
357],r=O(n[0].value);function i(e,n){let r=t.revision.mixdownDuration,{startPosition:i,endPosition:a}=n;return{"background-color":e.color,left:`${i/r*100}%`,width:`${(Math.min(a,r)-i)/r*100}%`}}function a(e,t){return`${`${t+1}`.padStart(2,`0`)}_${e}`}return(t,o)=>(F(),G(`section`,iL,[K(`header`,aL,[K(`h2`,oL,y(`Download Stems`),1)]),K(`section`,sL,[q(kf,{modelValue:r.value,"onUpdate:modelValue":o[1]||=e=>r.value=e,size:`large`,class:`segmented-control-with-equal-item-width`,style:{"margin-bottom":`16px`}},{default:W(()=>[(F(),G(se,null,pe(n,e=>q(rL,{key:e.value,modelValue:r.value,"onUpdate:modelValue":o[0]||=e=>r.value=e,value:e.value},{default:W(()=>[B(y(e.label),1)]),_:2},1032,[`modelValue`,`value`])),64))]),_:1},8,[`modelValue`]),(F(!0),G(se,null,pe(e.revision.tracks,(t,n)=>(F(),G(`div`,{key:t.id,class:`stem-tracks`},[K(`div`,cL,y(a(t.name,n)),1),K(`div`,{class:`stem-track`,style:x({"--accent-color":t.color})},[K(`div`,lL,[K(`div`,uL,[(F(!0),G(se,null,pe(t.regions,e=>(F(),G(`div`,{key:e.id,class:`stem-region`,style:x(i(t,e))},null,4))),128))])]),K(`div`,dL,[t.isDownloading?H(``,!0):(F(),G(`button`,{key:0,type:`button`,class:`stem-download-button`,title:`Download`,disabled:t.isLoading,onClick:n=>e.download(t,r.value)},[t.isLoading?(F(),ie(He,{key:0,class:`ds-button-loading-icon`,size:16})):(F(),ie(xo,{key:1,size:16}))],8,fL))])],4)]))),128))]),q(Pa,{onClick:o[2]||=e=>t.$emit(`closeModal`)})]))}});angular.module(`bandlab.song`).factory(`RevisionImporter`,[`$analytics`,`$filter`,`$http`,`$injector`,`$q`,`$rootScope`,`$state`,`$timeout`,`$transitions`,`AppNotifications`,`EditorLoader`,`EditorModel`,`EditorState`,`FileHelper`,`Me`,`Modal`,`Player`,`Post`,`ProjectUploader`,`Revision`,`Sample`,`Song`,`Soundbank`,`User`,function(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,v,y,b,x,S,C,w,T){var E=!1;return{createRevisionFromFile:D,createRevisionFromMasteringUploader:ee,createRevisionFromUploadQueue:O,createUnsavedRevisionFromSongStarter:te,createSavedRevisionFromSongStarter:L,createUnsavedRevisionFromSongStarterV2:R,createSavedRevisionFromSongStarterV2:ne,createTrackFromFile:j,createTrackFromUploadQueue:M,downloadMixdown:B,downloadStems:ie,isAudioFileValid:F,getMetadataFromFile:re,masterRevision:z,pollMixdown:A,pollOnDemand:V,AppNotifications:u,Sample:S,$q:a,$timeout:c};function D(e,r={}){var i=`Public`;return E?a.reject(Xr):F(e).then(function([e,a]){var o=ze(),s,c;return E=!0,c=N({name:n(`limitTo`)(e.name.replace(/\.[^/.]+$/,``),100),duration:a,sampleId:o,bandId:r.bandId,metronome:r.metronome}),P(c).then(function(t){return i=t.availabilitySetting,s=d.pushTask(`uploadMeta`),S.upload({blob:e,sampleId:o,sampleType:`samples`}).then(function(){return t})}).then(function(e){return e.post=e.post||{},e.post.state=i,e}).then(function(e){return e.song.id&&e.song.canEdit?C.update({id:e.song.id,name:e.song.name,isForkable:e.song.isForkable}).$promise.then(function(){return t.eventTrack(`Create Project`,{category:`Projects`}),x.save({revision:e}).$promise}):x.save({revision:e}).$promise}).then(function(e){return k(e)}).then(function(e){return d.finishTask(s),e}).finally(function(){E=!1})}).catch(function(e){return d.flushQueue(),e.message===`Action canceled`?a.reject(yr):(e?.data?.errorCode!==202&&u.addNotification({content:u.escapeContent(e.message||`Unable to import file. Please check that your file is not corrupted.`),classList:`alert`,autoclose:8e3}),a.reject(Or))})}function O(e,{duration:r,bandId:i}){var a=ze(),s=N({name:n(`limitTo`)(e.name.replace(/\.[^/.]+$/,``),100),duration:r,sampleId:a,bandId:i}),c={createdAt:performance.now(),name:e.name,file:e,progress:0,loaded:0,complete:!1,cancel:function(){ja(b.queue,c),c.upload.cancel()},upload:l(),retry:function(){c.upload=l(),c.failed=!1},index:b.queue.length};b.queue.push(c);function l(){let n=S.upload({blob:e,sampleId:a,sampleType:`samples`},1,u),r=n.cancel;return Object.assign(n.then(function(){return x.save({revision:s}).$promise}).then(function(e){return t.eventTrack(`Create Project`,{category:`Projects`}),e}).then(k).then(function(e){return c.complete=!0,c.revision=e,c}).catch(function(e){c.failed=!0,o.$broadcast(`$track:errored`,e)}),{cancel:()=>r()})}function u(e){c.total=e.total,c.loaded=e.loaded,c.progress=e.loaded/e.total}}function k(e){return o.$broadcast(`$revision:changed`,{action:`create`,revision:e}),e}function A(e,t=a.defer()){let n=o.$on(`Mastering:cancel`,function(){t.reject()}),r=c(()=>
357{if(t.promise.$$state.status===0)return i()},2e4);return a.race([r,t.promise]).finally(()=>{n(),c.cancel(r)});function i(){return x.get({id:e.id}).$promise.then(function(e){return e.mixdown.status===`Ready`?(o.$broadcast(`$mixdown:changed`,{mixdown:e.mixdown}),e):c(i,5e3)})}}function j(e){return F(e).then(function([e,t]){let i={createdAt:performance.now(),name:n(`limitTo`)(e.name.replace(/\.[^/.]+$/,``),100),file:e,progress:0,loaded:0,complete:!1,cancel:function(){ja(b.queue,i),i.upload.cancel()},upload:s(),retry:function(){i.upload=s(),i.failed=!1},index:b.queue.length};b.queue.push(i);function s(){let s=a.defer();return Object.assign(br(e).then(function(e){let r=T.createTrackPost({userId:h.id,state:`Private`,track:{name:n(`limitTo`)(e.name.replace(/\.[^/.]+$/,``),100),genreId:`other`,sample:{audioFormat:ei(e.type),duration:t}}});return s.promise.then(()=>r.$cancelRequest()),Promise.all([r.$promise,e])}).then(function([e,t]){let{"Content-Type":n}=Object.fromEntries(new URLSearchParams(e.track.sample.uploadUrl));return i.post=e,r({method:`PUT`,url:e.track.sample.uploadUrl,data:t,headers:{"Content-Type":n},uploadEventHandlers:{progress:function(e){i.total=e.total,i.loaded=e.loaded,i.progress=e.loaded/e.total}},timeout:s.promise})}).then(function(){i.complete=!0,o.$broadcast(`$track:uploaded`,{post:i.post}),o.$applyAsync()}).catch(e=>{i.failed=!0}),{progress:{},cancel:c});function c(){s.resolve(),i.post&&y.delete({id:i.post.id})}}}).catch(function(e){return d.flushQueue(),e.message===`Action canceled`?a.reject(yr):(e?.data?.errorCode!==202&&u.addNotification({content:`Ensure that the file format is MP3, M4A or WAV, and that it isnât corrupted.`,classList:`alert`,autoclose:8e3}),a.reject(Or))})}function M(e,t){let i={createdAt:performance.now(),name:n(`limitTo`)(e.name.replace(/\.[^/.]+$/,``),100),file:e,progress:0,loaded:0,complete:!1,cancel:function(){ja(b.queue,i),i.upload.cancel()},upload:s(),retry:function(){i.upload=s(),i.failed=!1},index:b.queue.length};b.queue.push(i);function s(){let s=a.defer();return Object.assign(br(e).then(function(e){let r=T.createTrackPost({userId:h.id,state:`Private`,track:{name:n(`limitTo`)(e.name.replace(/\.[^/.]+$/,``),100),genreId:`other`,sample:{audioFormat:ei(e.type),duration:t}}});return s.promise.then(()=>r.$cancelRequest()),Promise.all([r.$promise,e])}).then(function([e,t]){let{"Content-Type":n}=Object.fromEntries(new URLSearchParams(e.track.sample.uploadUrl));return i.post=e,r({method:`PUT`,url:e.track.sample.uploadUrl,data:t,headers:{"Content-Type":n},uploadEventHandlers:{progress:function(e){i.total=e.total,i.loaded=e.loaded,i.progress=e.loaded/e.total}},timeout:s.promise})}).then(function(){i.complete=!0,o.$broadcast(`$track:uploaded`,{post:i.post})}).catch(e=>{i.failed=!0}),{progress:{},cancel:c});function c(){s.resolve(),i.post&&y.delete({id:i.post.id})}}}function N(e){var t,n,r,i=f.createTrack({name:`Imported Track`});return t=f.createRegion({endPosition:e.duration,name:e.name,sampleId:e.sampleId,trackId:i.id}),i.regions=[t],r=new C({bandId:e.bandId||``,canEdit:!0,isForkable:!1,name:e.name}),n=f.createRevision({post:{state:`Private`},song:r,tracks:[i]}),n}function P(e){return a(function(t,n){var r=new g({templateUrl:`https://www.bandlab.com/web-app/song/partials/_revision-new-0ae91012f.html`,overlayClose:!1,contentScope:{canBePrivate:!0,revision:e,resolve:function(e){t(e),r.destroy()}},onCancel:function(){n({message:yr})}});r.show()})}function F(e,{loader:t=!0}={}){let n=t&&d.pushTask(`loadSample`);return S.getOptions().then(function({maxSongDuration:t}){return ti(e,t)}).then(function(e){return Tr(e).then(function(t){return[e,t.duration]})}).finally(function(){return c(function(){d.finishTask(n)},1e3)})}async function ee({presetSlug:e,intensity:r,isBypass:i,name:a,blob:o,duration:s,inputGain:c,lowFreqGain:l,midFreqGain:u,highFreqGain:d,eqBypass:p}){let m=n(`limitTo`)(a.replace(/\.[^/.]+$/,``),100),h=ze(),g=f.createTrack({name:`Imported Track`});g.regions=[f.createRegion({endPosition:s,name:m,sampleId:h,trackId:g.id})];let{makeMasteringData:_,getMasteringClientVersion:v}=await import(`./CWicAUmS.js`).then(e=>e.i),y=await _({preset:e,intensity:r,version:v(),inputGain:c,bypass:i,lowFreqGain:l,midFreqGain:u,highFreqGain:d,eqBy
357pass:p}),w=f.createRevision({mastering:y,song:new C({bandId:``,isForkable:!1,name:m}),tracks:[g]}),T={createdAt:performance.now(),name:m,file:o,preset:mn[e]?.name,progress:0,loaded:0,complete:!1,upload:E(),cancel:function(){ja(b.queue,T),T.upload.cancel()},retry:function(){T.upload=E(),T.failed=!1}};b.queue.push(T);function E(){let e=S.upload({blob:o,sampleId:h,sampleType:`samples`},1,D),n=e.cancel;return Object.assign(e.then(function(){return x.save({revision:w}).$promise}).then(function(e){return t.eventTrack(`Create Project`,{category:`Projects`}),t.eventTrack(`Save revision`,{category:`Mastering`}),k(e)}).then(function(e){return T.complete=!0,T.revision=e,T}).catch(function(e){T.failed=!0}),{cancel:()=>n()})}function D(e){T.total=e.total,T.loaded=e.loaded,T.progress=e.loaded/e.total}}async function te({mixData:e,tracks:t,songName:n,cacheSamples:r=!0}){await w.init(),await Promise.all(e.tracks.map(e=>e.soundbank?w.getBank(e.soundbank):Promise.resolve()));let{revision:i,samples:a}=await Ml(e,ze());return i.tracks=i.tracks.map((e,n)=>(e.auxSends[0].automation=[],{...f.createTrack(e),colorName:t?.[n].colorName})),r&&await I(a),f.createRevision({...i,song:new C({bandId:``,canEdit:!0,isForkable:!1,name:n}),id:null})}function I(e){return Promise.all(e.map(async({id:e,blob:t})=>{await yp.updateFile(e,t)}))}async function L(e){let[n,r]=await Promise.all([te({...e,cacheSamples:!1}),Fl(e.mixData.tracks)]),{songName:i}=e,a=r.reduce((e,t)=>e+t.blob.size,0);try{await I(r)}
357catch{}return new Promise((e,o)=>{let s={createdAt:performance.now(),name:i,progress:0,loaded:0,complete:!1,total:a,upload:c(),cancel:function(){ja(b.queue,s),s.upload.cancel()},retry:function(){s.upload=c(),s.failed=!1}};b.queue.push(s);function c(){let i=r.filter(e=>!ec[e.id]).map(e=>{let t=0;return S.upload({blob:e.blob,sampleId:e.id,sampleType:`samples`},1,({loaded:e})=>{s.loaded+=e-t,t=e,s.progress=s.loaded/a})});function c(){i.forEach(e=>{e.cancel()}),e(null)}return Object.assign(Promise.all(i).then(function(){return x.save({revision:n}).$promise}).then(function(e){return t.eventTrack(`Create Project`,{category:`Projects`}),t.eventTrack(`Save revision`,{category:`SongStarter`}),e.samples.filter(e=>e.name!==`regions-mix`&&!e.file).map(e=>e.id).every(e=>r.some(t=>t.id===e))||Sentry.onLoad(()=>{Sentry.captureException(`SongStarter: Samples not uploaded`,{extra:{revisionId:e.id}})}),k(e)}).then(function(t){return s.progress=1,s.loaded=a,s.complete=!0,s.revision=t,e(t),s}).catch(function(e){s.failed=!0,o(e)}),{cancel:()=>c()})}})}async function R({title:e,imageBlob:t,audioBuffer:n,cacheSamples:r=!0}){let a=i.get(`EditorPlayer`),{data:{url:o,id:s}}=await m.upload(t,`https://storage.bandlab.com/v1.3/images`,{x:0,y:0,height:1171,width:1171}),c=await _r(n),{bpm:l,timeSig:u}=await Il(c),d=ze(),p=f.createTrack({name:e});p.regions=[f.createRegion({endPosition:n.duration,name:e,sampleId:d,trackId:p.id})];let h=f.createRevision({title:e,tracks:[p],song:new C({isForkable:!1,canEdit:!0,name:e,pictureId:s,pictureUrl:o}),metronome:{bpm:l,pristine:!0,signature:{notesCount:u.beats,noteValue:u.beatUnit,pristine:!0}}});r&&await I([{id:d,blob:c}]);let g=await c.arrayBuffer();return a.current.writeSample&&await a.current.writeSample(d,g,`wav`),{revision:h,sampleId:d,wavBlob:c}}async function ne(e){let{revision:t,sampleId:n,wavBlob:r}=await R({...e,cacheSamples:!1});try{await I([{id:n,blob:r}])}catch{}return new Promise((i,a)=>{let o={createdAt:performance.now(),name:e.title,progress:0,loaded:0,complete:!1,file:r,upload:c(),cancel:function(){ja(b.queue,o),o.upload.cancel()},retry:function(){o.upload=c(),o.failed=!1}};b.queue.push(o);function s(e){o.total=e.total,o.loaded=e.loaded,o.progress=e.loaded/e.total}function c(){let e=S.upload({blob:r,sampleId:n,sampleType:`samples`},1,s);function c(){e.cancel(),i(null)}return Object.assign(e.then(()=>x.save({revision:t}).$promise).then(e=>(o.complete=!0,o.revision=e,i(o.revision),o)).catch(e=>{o.failed=!0,a(e)}),{cancel:()=>c()})}})}async function z(e,n){var r=angular.noop,c=angular.noop,f=a.defer();let p=d.pushTask(`masterTrack`),{useMasteringState:m}=await import(`./CWicAUmS.js`).then(e=>e.p),{getMasteringApplyAnalyticsData:g,loadExposedVersion:y,handleSanitizeMasteringDataError:b}=await import(`./CWicAUmS.js`).then(e=>e.i),{rootMasteringPresetSlugs:S}=await import(`./CmMd3ZU6.js`).then(e=>e.u),{logMasteringApply:C}=await import(`./DvQD5s06.js`).then(e=>e.t),w=Gn(()=>m(i),n);c=l.onStart({},function(){f.reject(`cancelled`)}),r=o.$on(`Mastering:cancel`,function(){f.reject(`cancelled`)});async function T(){await y(h);try{await w.loadRevision(e.id)}catch(e){if(b(e,u))return;throw e}d.finishTask(p),o.$applyAsync();let n=a.defer();function r({attribution:e,onCancelPaywallFlow:t,onConfirmMembership:n}){ai({productAttribution:e,productAttributionGroup:`mastering`,useCheckoutModal:!0,onCheckoutSuccess:()=>{n()},onCheckoutCancel:()=>{t()}},{onClose:()=>{t()}})}v.pause();let i=J(()=>import(`./DJupnBNR.js`));return X(i,{displayPresetSlugs:S,masteringState:_(w),openPaywall:r,applyMasteringData:async function(r){e.mastering=r,C(g(r,e.mixdown.duration,s.current.name===`track.tree`?`revision_history_edit_mastering_modal`:`track_page_edit_mastering_modal`));let c=d.pushTask(`uploadMixdown`),l=e.mastering&&!e.mastering.bypass;t.eventTrack(`Update Mastering`,{category:`Revision`,label:l?`${og(e.mastering.preset)} mastering`:`No mastering`});try{let t=await x.get({id:e.id,edit:!0}).$promise;t.mastering=r;let i=await a.race([x.save({revision:t,triggeredFrom:`mastering`}).$promise,f.promise]);i.isRecentlyUpdated=!0,o.$broadcast(`$revision:changed`,{action:`master`,revision:i}),n.resolve(i)}finally{Xn(i),d.finishTask(c)}}},{onDismiss:()=>n.reject(`cancelled`),overlayClose:!1}),n.promise}return a.race([T(),f.promise]).catch(function(e){e!==`cancelled`&&u.addNotification({title:navigator.onLine?`Something went wrong, please try again later`:`Check your internet connection and try again`,content:e?.data?.message||e?.message||`Please try again, or refer to our Help Center article for a solution.`,classList:`alert`,autoclose:5e3})}).finally(function(){d.finishTask(p),c(),r()})}function re(t){return import(`./B0tJZyJh.js`).then(t=>e(t.default)).then(function({default:e}){return new Promise(function(n){e.read(t,{onSuccess:function({tags:{covr:e,picture:t,title:r}={}}={}){let i=e?.data||t;n({coverArt:i&&new Blob([new Uint8Array(i.data)],{type:i.format}),title:r})},onError:function(e){n()}})})}).catch(function(e){})}function B(e){new g({templateUrl:`https://www.bandlab.com/web-app/song/partials/_download-mixdown-modal-e7900a489.html`,contentScope:{revision:e,files:[{...Kr,size:bi(e.mixdown.duration*44100*16*2/8)},{...Nr,size:bi(e.mixdown.duration*32e4/8)},{...Br,size:bi(e.mixdown.duration*192e3/8)},{...Yr,size:bi(e.mixdown.duration*128e3/8)}]}}).show()}function V(e,t){return t()?Promise.reject():c(angular.noop,5e3).then(function(){return r.get(e)}).then(function(e){return e.data.url?e:Promise.reject()}).catch(function(){return c(()=>V(e,t),5e3)})}function ie(e){x.get({id:e.id,edit:!0}).$promise.then(function(n){let i=!1;
357p.isInBackground=!0,X(pL,{revision:{mixdownDuration:n.mixdown.duration,tracks:n.tracks},download:a},{onClose:()=>{i=!0,p.isInBackground=!1}});function a(n,a){t.eventTrack(`Download Stem`,{category:`Revision`,label:`Format M4A`}),n.isLoading=!0;let o=`https://www.bandlab.com/api/v1.3/revisions/${e.id}/tracks/${n.id}/download-options/${a}`;return r.post(o).then(function(){return V(o,()=>i)}).then(function({data:{url:e}}){Hr(e),c(function(){n.isLoading=!1},3e3)})}}),t.eventTrack(`Download Stems`,{category:`Revision`})}}]),angular.module(`bandlab.web`).factory(`RevisionSocket`,[`$rootScope`,`Revision`,function(e,t){let n;return{disconnect:r,join:a};function r(){clearTimeout(n)}function i(r){n=setTimeout(()=>{t.get({id:r}).$promise.then(function(t){if(t.mixdown.status===`Ready`){e.$broadcast(`$mixdown:changed`,t);return}return i(r)})},5e3)}function a({revisionId:e}){i(e)}}]),angular.module(`bandlab.song`).factory(`Song`,[`$http`,`$injector`,`$resource`,function(e,t,n){var r=`https://www.bandlab.com/api/v1.3/songs`;return n(r,{},{delete:{method:`DELETE`,params:{id:`@id`},url:`${r}/:id`},fork:{method:`POST`,url:`${r}/forks`},forkToBand:{method:`POST`,params:{revisionId:`@revisionId`,bandId:`@bandId`},url:`https://www.bandlab.com/api/v1.3/revisions/:revisionId/forks/bands/:bandId`},fromBandWithCursor:{method:`GET`,params:{id:`@id`,limit:50},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/bands/:id/songs`,transformResponse:[...e.defaults.transformResponse,i]},fromUserWithCursor:{method:`GET`,params:{id:`@id`,authorId:`@authorId`,limit:50,status:null,search:`@search`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/users/:id/songs`,transformResponse:[...e.defaults.transformResponse,i]},getDistroProjects:{method:`GET`,params:{id:`@id`,limit:50},preservePagination:!0,url:`https://aws.bandlab.com/api/v1.3/users/:id/distro/projects`,transformResponse:[...e.defaults.transformResponse,i]},getBySlug:{method:`GET`,params:{entity:`@entity`,username:`@username`,slug:`@slug`},url:`https://www.bandlab.com/api/v1.3/:entity/:username/songs/:slug`},get:{method:`GET`,params:{id:`@id`},url:`${r}/:id`},getByRevision:{method:`GET`,params:{revId:`@revId`},url:`${r}?revisionId=:revId`},leave:{method:`DELETE`,params:{id:`@id`,userId:`@userId`},url:`${r}/:id/collaborators/:userId`},update:{method:`PATCH`,params:{id:`@id`},url:`${r}/:id`}});function i(e,n,r){let i=t.get(`Song`);return r===200&&(e.data=e.data.map(function(e){return new i(e)})),e}}]);var mL=n({default:()=>gL});const hL=[`width`,`height`,`role`,`aria-hidden`],gL={__name:`product-distribution`,props:Ve,setup(e){return(e,t)=>(F(),G(`svg`,{width:e.size>0?e.size:e.width>0?e.width:e.height>0?e.height/24*24:void 0,height:e.size>0?e.size:e.width>0?e.width/24*24:e.height>0?e.height:void 0,viewBox:`0 0 24 24`,fill:`none`,role:e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?`img`:null,"aria-hidden":e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?null:`true`},[...t[0]||=[K(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M17 1a1 1 0 0 0-1 1v5.17A3 3 0 1 0 18 10V3h4V1zm-1 9a1 1 0 1 0-2 0 1 1 0 0 0 2 0`,"clip-rule":`evenodd`},null,-1),K(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M11 3a10 10 0 1 0 10 10h-2q0 1.04-.25 2H9.08A26 26 0 0 1 9 13c0-2.4.33-4.55.83-6.05q.39-1.13.79-1.62.2-.24.3-.3l.06-.03H11zm-7.75 8a8 8 0 0 0 0 4h3.82a28 28 0 0 1 0-4zm.82-2H7.3a17 17 0 0 1 .95-3.51A8 8 0 0 0 4.07 9m3.23 8H4.07a8 8 0 0 0 4.18 3.51l-.32-.83Q7.54 18.5 7.3 17m3.7 4a8 8 0 0 0 6.93-4h-8.6q.2 1.16.5 2.05.39 1.13.79 1.62.2.24.3.3l.06.03z`,"clip-rule":`evenodd`},null,-1)]],8,hL))}};var _L=n({default:()=>yL});const vL=[`width`,`height`,`role`,`aria-hidden`],yL={__name:`earnings`,props:Ve,setup(e){return(e,t)=>(F(),G(`svg`,{width:e.size>0?e.size:e.width>0?e.width:e.height>0?e.height/24*24:void 0,height:e.size>0?e.size:e.width>0?e.width/24*24:e.height>0?e.height:void 0,viewBox:`0 0 24 24`,fill:`none`,role:e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?`img`:null,"aria-hidden":e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?null:`true`},[...t[0]||=[K(`path`,{fill:`currentColor`,d:`M15.59 6.19A6 6 0 0 0 13 5.1V4h-2v1.03q-1.16.13-1.96.78A2.8 2.8 0 0 0 8 8c0 1.3.9 2.05 1.69 2.42s1.67.52 2.2.57c.43.05 1.05.2 1.53.44.52.27.58.48.58.57 0 .3-.32 1-1.6 1a4.3 4.3 0 0 1-2.81-.81L8.4 13.8c.78.56 1.59.92 2.59 1.08V16h2v-1.04c1.76-.22 3-1.43 3-2.96 0-1.25-.94-1.98-1.67-2.35a7 7 0 0 0-2.22-.64 5 5 0 0 1-1.56-.39C10.1 8.4 10 8.19 10 8q0-.38.3-.64c.23-.18.63-.36 1.3-.36a4.3 4.3 0 0 1 2.81.81z`},null,-1),K(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M3 10a9 9 0 1 1 18 0 9 9 0 0 1-18 0m9-7a7 7 0 1 0 0 14 7 7 0 0 0 0-14`,"clip-rule":`evenodd`},null,-1),K(`path`,{fill:`currentColor`,d:`M4 21v2h16v-2z`},null,-1)]],8,vL))}};var bL=n({default:()=>SL});const xL=[`width`,`height`,`role`,`aria-hidden`],SL={__name:`list-note`,props:Ve,setup(e){return(e,t)=>(F(),G(`svg`,{width:e.size>
3570?e.size:e.width>0?e.width:e.height>0?e.height/24*24:void 0,height:e.size>0?e.size:e.width>0?e.width/24*24:e.height>0?e.height:void 0,viewBox:`0 0 24 24`,fill:`none`,role:e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?`img`:null,"aria-hidden":e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?null:`true`},[...t[0]||=[K(`path`,{fill:`currentColor`,d:`M2 7h15V5H2z`},null,-1),K(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M18 13h5v2h-3v5a3 3 0 1 1-2-2.83zm-1 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2`,"clip-rule":`evenodd`},null,-1),K(`path`,{fill:`currentColor`,d:`M17 12H2v-2h15zM2 17h10v-2H2z`},null,-1)]],8,xL))}};var CL=n({default:()=>TL});const wL=[`width`,`height`,`role`,`aria-hidden`],TL={__name:`releases`,props:Ve,setup(e){return(e,t)=>(F(),G(`svg`,{width:e.size>0?e.size:e.width>0?e.width:e.height>0?e.height/24*24:void 0,height:e.size>0?e.size:e.width>0?e.width/24*24:e.height>0?e.height:void 0,viewBox:`0 0 24 24`,fill:`none`,role:e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?`img`:null,"aria-hidden":e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?null:`true`},[...t[0]||=[K(`path`,{fill:`currentColor`,d:`M3 12a9 9 0 0 1 9-9V1a11 11 0 1 0 11 11h-2a9 9 0 1 1-18 0`},null,-1),K(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M12 9a3 3 0 0 1 1 .17V4.5a1 1 0 0 1 1-1h5v2h-4v7h-.04A3 3 0 1 1 12 9m-1 3a1 1 0 1 1 2 0 1 1 0 0 1-2 0`,"clip-rule":`evenodd`},null,-1),K(`path`,{fill:`currentColor`,d:`M12 17a5 5 0 0 1-5-5H5a7 7 0 1 0 14 0h-2a5 5 0 0 1-5 5`},null,-1)]],8,wL))}},EL=[16,20,24,28,32,36,40,44,48,56,64,72,80,88,96],DL=[`circle`,`square`],OL=[`neutral`,`green`,`cyan`,`blue`,`purple`,`red`,`orange`,`yellow`];var kL=n({default:()=>AL});const AL={__name:`Tile`,props:{as:{type:String,default:`span`},size:{type:Number,required:!0,validator:e=>EL.includes(e)},shape:{type:String,required:!0,validator:e=>DL.includes(e)},transparent:{type:Boolean,default:!1},color:{type:String,required:!0,validator:e=>OL.includes(e)}},setup(e){let t=e;return(e,n)=>(F(),ie(P(t.as),{role:e.$attrs[`aria-label`]||e.$attrs[`aria-labelledby`]?`img`:`presentation`,class:v([`ds-tile`,[`ds-tile-shape-${t.shape}`,`ds-tile-size-${t.size}`,`ds-tile-color-${t.color}${t.transparent?`-transparent`:``}`]])},{default:W(()=>[k(e.$slots,`default`,{class:`ds-tile-icon`})]),_:3},8,[`role`,`class`]))}},jL={class:`ds-modal ds-modal-size-small ds-modal-with-footer`,style:{overflow:`hidden`}},ML={class:`ds-modal-header`,style:{"padding-bottom":`var(--ds-space-4)`}},NL={class:`ds-modal-title`},PL={class:`ds-modal-content row-gap-16`},FL={class:`ds-glyphs-secondary typography-body-compact-regular`},IL={class:`row-gap-4`},LL={class:`ds-cell-left-detail`},RL={class:`ds-cell-content`},zL={class:`typography-body-compact-medium`},BL={class:`typography-footnote-regular ds-glyphs-secondary`},VL={class:`ds-modal-footer ds-modal-footer-one-button`};var HL=V({__name:`DistroEntryPointModal`,props:{triggeredFrom:{type:String,required:!0}},emits:[`closeModal`],setup(e,{emit:t}){let n=e,r=O(!1),i=[{icon:yL,title:`Pocket 100% earnings`,description:`Collect all the earnings from your music streams and easily set up automated monthly payouts.`},{icon:SL,title:`Release to 20+ top music platforms`,description:`Distribute to global leaders like Spotify, Apple Music, TikTok, TIDAL and more.`},{icon:TL,title:`Pick single or multitrack releases`,description:`Distribute a single, EP, or album on any device, and start racking up global streams.`},{icon:cf,title:`Schedule releases, track stats, manage earnings, and more`,description:`Everything you need to distribute and promote your music.`}];function a(){r.value=!0,__({triggeredFrom:n.triggeredFrom,shouldRedirect:!0,paywallProductAttribution:`distro_modal_post_revision`}).finally(()=>{r.value=!1})}let o=t;return(e,t)=>(F(),G(`section`,jL,[t[1]||=K(`img`,{class:`show-for-light-theme`,srcset:` 358 https://www.bandlab.com/web-app/images/distribution/distro-entry-point-modal-light-cc1aa1b72b.png 1x, 359 https://www.bandlab.com/web-app/images/distribution/[email protected] 2x 360 `,alt:``},null,-1),t[2]||=K(`img`,{class:`show-for-dark-theme`,srcset:` 361 https://www.bandlab.com/web-app/images/distribution/distro-entry-point-modal-dark-0d954e19a6.png 1x, 362 https://www.bandlab.com/web-app/images/distribution/[email protected] 2x 363 `,alt:``},null,-1),K(`header`,ML,[K(`p`,NL,y(`Your track is ready for the world`),1)]),K(`section`,PL,[K(`p`,FL,y(`Distribute your music to all major platforms withâ¯BandLabâ¯Distribution`),1),K(`div`,IL,[(F(),G(se,null,pe(i,(e,t)=>K(`div`,{key:t,class:`ds-cell ds-cell-padding-block-8`,style:{"text-align":`left`,"align-items":`start`}},[K(`header`,LL,[q(AL,{size:40,shape:`square`,color:`neutral`},{default:W(t=>[(F(),ie(P(e.icon),{size:20,class:v(t.class)},null,8,[`class`]))]),_:2}
363,1024)]),K(`div`,RL,[K(`div`,zL,y(e.title),1),K(`div`,BL,y(e.description),1)])])),64))])]),K(`section`,VL,[q(Ue,{type:`button`,class:`distro-entry-point-modal-cta-btn`,color:`primary`,size:`medium`,"is-loading":r.value,onClick:a},oe({_:2},[r.value?void 0:{name:`leading-icon`,fn:W(e=>[q(gL,{class:v(e.class),size:20},null,8,[`class`])]),key:`0`},r.value?void 0:{name:`label`,fn:W(()=>[B(y(`Try Distribution`),1)]),key:`1`}]),1032,[`is-loading`])]),q(Na,{class:`distribution-modal-close-btn`,size:`compact`,color:`overlay`,onClick:t[0]||=e=>o(`closeModal`)})]))}});angular.module(`bandlab.song.routes`,[`ui.router`]).config([`$stateProvider`,function(e){t.$inject=[`$state$`,`$transition$`,`Revision`,`Song`],r.$inject=[`Page`,`Share`,`theSong`],o.$inject=[`Page`];function t(e,t,n,r){let i=t.params(),a=i.revId;return a?n.get({id:a}).$promise.then(function(e){return{id:e.postId,revId:e.id}}):r.getBySlug({entity:e.name===`bandSong`?`bands`:`users`,username:i.username,slug:i.slug}).$promise.then(function(e){return{id:e.revision.postId,revId:e.revision.id}})}function n(e,t,n){e.setMetadata({tapBarTitle:`Track`,title:`${n.song.name} ${`by ${n.song.author.name}`} | BandLab`,description:`${n.description?`${n.description} | `:``}${`Listen to music from ${n.song.author.name} and follow their creative process on BandLab.`}`,image:`${n.song.picture.url}360x360`,player:t.getEmbedRevisionUrl(n)})}function r(e,t,n){e.setMetadata({title:`${n.name} ${`by ${n.author.name}`} | BandLab`,description:`${n.description?`${n.description} | `:``}${`Listen to music from ${n.author.name} and follow their creative process on BandLab.`}`,image:`${n.picture.url}360x360`,player:t.getEmbedRevisionUrl(n.revision)})}function i(e,t){e.setMetadata({tapBarTitle:`Track`,title:`${t.track.name} ${`by ${t.creator.name}`} | BandLab`,description:`${t.caption?`${t.caption} | `:``}${`Listen to music from ${t.creator.name} and follow their creative process on BandLab.`}`,image:`${t.track.picture.url}360x360`})}function a(e,t){e.setMetadata({tapBarTitle:`Track`,title:`${t.revision.song.name} ${`by ${t.revision.creator.name}`} | BandLab`,description:`${t.caption?`${t.caption} | `:``}${`Listen to music from ${t.creator.name} and follow their creative process on BandLab.`}`,image:`${t.revision.song.picture.url}360x360`})}function o(e){e.clearMetadata()}function s(e,t){t.exitPage=function(){t.isExitButtonLoading=!0,e.$broadcast(`topBarExit`,function(){t.isExitButtonLoading=!1,t.$applyAsync()})}}e.state(`revisionSharedKey`,{url:`/revisions/:postId?sharedKey`,redirectTo:function(e){let t=e.params();return{state:`track`,params:{id:t.postId,sharedKey:t.sharedKey}}}}).state(`userSong`,{url:`/{username:[a-z0-9][a-z0-9_]{2,19}}/{slug:[a-z0-9-]{1,128}}?revId&{commentId:int}&{replyId:int}`,resolve:{theParams:t},redirectTo:UL}).state(`userSong.boost`,{url:`/boost`,redirectTo:function(e){return e.injector().getAsync(`theParams`).then(function(e){return{state:`track.boost`,params:e}})}}).state(`distributionEdit`,{url:`/distribution/edit?releaseId&source&step`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0},params:{step:{dynamic:!0}},views:{"":{controller:`DistributionCtrl`,templateUrl:`https://www.bandlab.com/web-app/distribution/views/creation-3423f8869.html`},"tabBarForm@":{controller:[`$rootScope`,`$scope`,function(e,t){s(e,t)}],templateUrl:`https://www.bandlab.com/web-app/distribution/partials/_distribution-form-tab-bar-3092e6e74.html`},"topBarForm@":{controller:[`$rootScope`,`$scope`,function(e,t){s(e,t)}],templateUrl:`https://www.bandlab.com/web-app/distribution/partials/_distribution-form-top-bar-0641ee694.html`}},resolve:{theRelease:[`$stateParams`,`Me`,`Release`,function(e,t,n){return n.get({userId:t.id,releaseId:e.releaseId}).$promise}],theReleaseSongs:[`Revision`,`theRelease`,async function(e,t){let n=t.assets,r=[];for(let i of n)i.artists=i.artists.map(e=>({...e,type:e.role})),r.push({...i,artists:i.artists.length?i.artists:[JSON.parse(JSON.stringify({...t.artist,type:`Primary`}))],hasBeenReleasedBefore:i.hasBeenReleasedBefore||!1,explicitContent:i.explicitContent,duration:i.duration===0?(await e.get({id:i.audioId}).$promise).mixdown.duration:i.duration});return r}],theAvailableReleaseDates:[`Release`,`Me`,function(e,t){return r_(e,t)}],theGenres:[`Release`,`Me`,function(e,t){return i_(e,t)}],theVersions:[`Release`,`Me`,function(e,t){return a_(e,t)}],theInstruments:[`Release`,`Me`,function(e,t){return o_(e,t)}],theProductionRoles:[`Release`,`Me`,function(e,t){return s_(e,t)}],theContributorRoles:[`Release`,`Me`,function(e,t){return c_(e,t)}],theArtistRoles:[`Release`,`Me`,function(e,t){return l_(e,t)}],thePrimaryArtist:[`User`,`Me`,function(e,t){return e.getArtistProfiles({userId:t.id}).$promise}],Payments:function(){return import(`./BT0X5vPC.js`).then(e=>e.t)},payoutMethodRequired:[`Me`,`Payments`,async function(e,t){try{return await t.getUserDistroPaymentMethodRequired(e.id)}catch{return{status:`ConnectRequired`,paymentMethod:null}}}]},onEnter:[`Player`,`$stateParams`,function(e,t){M_(e),t.source&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroReleaseResume:e}){e(t.source)})}],onExit:[`Player`,function(e){M_(e)}],redirectTo:N_}).state(`distributionCreateEmpty`,{url:`/distribution/create?triggeredFrom`,redirectTo:function(e){__({triggeredFrom:e.params().triggeredFrom,isRouteRedirect:!0})}}).state(`distributionChangeRequest`,{url:`/distribution/change-request?releaseId`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0},views:{"":{controller:[`$element`,`$scope`,`$injector`,`$state`,function(e,t,n,r){$(import(`./CJS7hf-s.js`),e[0],t,{$injector:n,$scope:t,$state:r})}],template:`<div></div>`},"tabBarForm@":{controller:[`$rootScope`,`$scope`,function(e,t){t.exitPage=function(){e.$broadcast(`topBarExit`)}}],templateUrl:`https://www.bandlab.com/web-app/distribution/partials/_distribution-form-tab-bar-3092e6e74.html`},"topBarForm@":{controller:[`$rootScope`,`$scope`,function(e,t){t.exitPage=function(){e.$broadcast(`topBarExit`)}}],templateUrl:`https://www.bandlab.com/web-app/distribution/partials/_distribution-request-changes-form-top-bar-ddbbf1525.html`}}}).state(`distributionCreate`,{url:`/distribution/create?releaseId&preFillId&redirect&step`,useTopBarForm:!0,data:{hideGlobalPlayer:!0,hideNavBar:!0},params:{step:{dynamic:!0}},views:{"":{controller:`DistributionCtrl`,templateUrl:`https://www.bandlab.com/web-app/distribution/views/creation-3423f8869.html`},"tabBarForm@":{controller:[`$rootScope`,`$scope`,function(e,t){s(e,t)}],templateUrl:`https://www.bandlab.com/web-app/distribution/partials/_distribution-form-tab-bar-3092e6e74.html`},"topBarForm@":{controller:[`$rootScope`,`$scope`,function(e,t){s(e,t)}],templateUrl:`https://www.bandlab.com/web-app/distribution/partials/_distribution-form-top-bar-0641ee694.html`}},resolve:{theRelease:[`$stateParams`,`Me`,`Release`,function(e,t,n){return n.get({userId:t.id,releaseId:e.releaseId}).$promise.then(e=>e.assets.length===1?V_(e):e)}],theReleaseSongs:[`theRelease`,function(e){let t=e.assets,n=[];for(let r of t){for(let e of r.artists)e.type=e.role;n.push({...r,artists:r.artists.length?r.artists:[JSON.parse(JSON.stringify({...e.artist,type:`Primary`}))],hasBeenReleasedBefore:r.hasBeenReleasedBefore||!1})}return n}],theAvailableReleaseDates:[`Release`,`Me`,function(e,t){return r_(e,t)}],theGenres:[`Release`,`Me`,function(e,t){return i_(e,t)}],theVersions:[`Release`,`Me`,function(e,t){return a_(e,t)}],theInstruments:[`Release`,`Me`,function(e,t){return o_(e,t)}],theProductionRoles:[`Release`,`Me`,function(e,t){return s_(e,t)}],theContributorRoles:[`Release`,`Me`,function(e,t){return c_(e,t)}],theArtistRoles:[`Release`,`Me`,function(e,t){return l_(e,t)}],thePrimaryArtist:[`User`,`Me`,function(e,t){return e.getArtistProfiles({userId:t.id}).$promise}],Payments:function(){return import(`./BT0X5vPC.js`).then(e=>e.t)},payoutMethodRequired:[`Me`,`Payments`,async function(e,t){try{return await t.getUserDistroPaymentMethodRequired(e.id)}catch{return{status:`ConnectRequired`,paymentMethod:null}}}]},onEnter:[`Player`,function(e){M_(e)}],onExit:[`Player`,function(e){M_(e)}],redirectTo:N_}).state(`distributionSuccess`,{url:`/distribution/success?redirect&releaseId`,templateUrl:`https://www.bandlab.com/web-app/distribution/views/creation-success-27a8823ca.html`,controller:[`$scope`,`$state`,function(e,t){e.stateParams=t.params,e.$on(`topBarExit`,function(){t.go(`dashboard.distribution`)}),e.openLibrary=function(){__({triggeredFrom:`distro_success_page`})},e.goToDistributionAfterSuccess=function(){import(`./DvQD5s06.js`).then(e=>e.t).then(function({logDistroReleaseDismiss:e,logDistroRating:n}){return document.addEventListener(`ratingEvent`,r),e(`Distro Release - Completed`),t.go(`dashboard.distribution`);function r(e){n(e.detail),document.removeEventListener(`ratingEvent`,r)}})},$(import(`./B1Wz8870.js`),document.querySelector(`#releaseSuccessVue`),e,{},{})}],onEnter:[`Player`,function(e){e.pause()}]}).state(`bandSong`,{url:`/band/{username:[a-z][0-9a-z_]{1,19}}/{slug:[a-z0-9-]{1,128}}?revId&{commentId:int}&{replyId:int}`,resolve:{theParams:t},redirectTo:UL}).state(`userSong.tree`,{url:`/tree`,redirectTo:WL}).state(`bandSong.tree`,{url:`/tree`,redirectTo:WL}).state(`song`,{url:`/song/{songId:[a-zA-Z0-9-_]+}`,params:{rewriteTracking:function(){return e=>e.replace(/^\/song\/[a-fA-F0-9-]*(($|\/).*)/g,`/project$1`)}},redirectTo:function(e){return{state:`song.edit.profile`,params:{songId:e.params().songId}}},template:`<div class="grid-block" ui-view="content"></div>`,resolve:{theSong:[`$transition$`,`Song`,function(e,t){return t.get({id:e.params().songId}).$promise}]},onEnter:r,onExit:o,controller:[`$scope`,`theSong`,function(e,t){e.song=t,e.$on(`$song:changed`,function(t,n){n.action===`update`&&e.song.$get({id:e.song.id})}),e.$on(`$revision:changed`,function(){e.song.$get({id:e.song.id})})}]}).state(`song.edit`,{url:`/edit`,redirectTo:function(e){return{state:`song.edit.profile`,params:{songId:e.params().songId}}},resolve:{canEdit:[`$q`,`theSong`,function(e,t){return e(function(e,n){t.canEdit?e(!0):n({status:403})})}]},views:{content:{templateUrl:`https://www.bandlab.com/web-app/song/views/song-edit-layout-50d0622c2.html`}}}).state(`song.edit.profile`,{url:`?focus`,templateUrl:`https://www.bandlab.com/web-app/song/views/song-edit-profile-5bc1070ab.html`,controller:`ProjectEditCtrl`}).state(`song.edit.collaborators`,{url:`/collaborators`,templateUrl:`https://www.bandlab.com/web-app/song/views/song-edit-collaborators-90971317c.html`,controller:`ProjectCollaboratorsCtrl`}).state(`song.duplicate`,{url:`/duplicate?focus`,resolve:{canEdit:[`$q`,`theSong`,function(e,t){return e(function(e,n){t.canEdit?e(!0):n({status:403})})}]},views:{content:{templateUrl:`https://www.bandlab.com/web-app/song/views/song-duplicate-a650cabaf.html`,controller:`ProjectEditCtrl`}}}).state(`joinProject`,{url:`/join/:code`,params:{rewriteTracking:function(){return()=>`/join`}},controller:[`$http`,`$state`,`$stateParams`,`Me`,function(e,t,n,r){return e.put(`https://www.bandlab.com/api/v1.3/users/${r.id}/invites/${n.code}`).then(function({data:e}){return t.go(`mixEditor`,{id:e.song.latestRevisionId})}).catch(function(e){return e.data.errorCode===68?t.go(`projectFull`):t.go(`404`,{},{custom:e.data})})}]}).state(`track`,{url:`/track/:id?revId&{commentId:int}&{replyId:int}&sharedKey`,templateUrl:`https://www.bandlab.com/web-app/song/views/track-layout-3525f07e5.html`,reloadOnSearch:!1,params:{triggeredFrom:{dynamic:!0,value:null},triggeredFromUiComponent:{dynamic:!0,value:null}},onEnter:[`Page`,`Share`,`thePost`,`theRevision`,function(e,t,r,o){return o?n(e,t,o):r.type===`Track`?i(e,r):a(e,r)}],onExit:o,resolve:{theAlbums:[`Post`,`thePost`,function(e,t){if(t.type!==`Revision`&&t.type===`Track`)return e.getPostAlbums({id:t.id}).$promise}],theBand:[`Band`,`theSong`,function(e,t){if(t?.author.type===`Band`)return e.get({id:t.author.id}).$promise}],theCreator:[`thePost`,`User`,function(e,t){return t.get({id:e.creator.id}).$promise}],thePost:[`$stateParams`,`Post`,function(e,t){let n=e.sharedKey;return t.get({id:e.id,sharedKey:n}).$promise.then(function(e){return e.revision&&(e.revision.postId=e.id),e})}],theRevision:[`Revision`,`thePost`,function(e,t){if(t.type===`Revision`&&(t.revision.isPublic||t.revision.canEdit))return e.get({id:t.revision.id}).$promise;if(t.type===`Track`&&t.revisionId)return e.get({id:t.revisionId}).$promise}],theSong:[`$transition$`,`Song`,`theRevision`,function(e,t,n){let{song:r}=e.options();if(r)return r;if(n)return t.get({id:n.song.id}).$promise}]},controller:[`$injector`,`$location`,`$rootScope`,`$scope`,`$state`,`$stateParams`,`Me`,`authService`,`RevisionSocket`,`Tag`,`PlayerHistory`,`Post`,`User`,`theAlbums`,`theBand`,`theCreator`,`thePost`,`theRevision`,`theS
363ong`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){if(o.isAnonymous()&&!navigator.userAgent.includes(`Prerender`)){let e=i.href(i.current.name,i.params,{absolute:!0});s.setAfterAuthState({toState:i.current.name,toParams:i.params}),s.displayAuthModal({title:`Access restricted`,description:`You must be logged in to access this page. Log in or sign up to continue.`,overlayClose:!1,escapeClose:!1,redirectState:btoa(JSON.stringify({path:e}))})}r.logSocialLinkVisit=E,r.getReactors=D,r.me=o,r.post=g,r.isPrivatelyShared=!!a.sharedKey,r.revision=_,r.getCollaborators=C,r.getSocialLinksCount=w,r.prependProtocol=Oe,r.song=v,r.creator=h,r.shouldShowTrackRewind=!1,r.data=GL({albums:p,band:m,revision:_,revisionPost:g.type===`Revision`?g:null,song:v,trackPost:g.type===`Track`?g:null}),a.triggeredFrom&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logTrackPageOpen:e}){e({triggeredFrom:a.triggeredFrom,triggeredFromUiComponent:a.triggeredFromUiComponent})}),x();let y=t.url();u.setCurrentPageContext({loader:null,url:y,contentSource:Ee(i)}),u.pushQueueSongs([g],y,!0);let b;_&&_.genres?b=_.genres.length>0?_.genres[0].id:`other`:g.type===`Track`&&(b=g.track.genreId?g.track.genreId:`other`),b&&!g.canEdit&&d.exploreGenreTrending({genres:b,limit:20,forkable:!1,timerange:`week`}).$promise.then(function({data:e}){let t=EI(e);u.pushQueueSongs(t,y,!1)}),Is({Me:o,post:r.data.innerPost.value}).then(e=>{r.boostTeaserActive=e}),UI({post:g,$injector:e,$scope:r}).then(e=>{r.shouldShowTrackRewind=!T()&&e,r.$applyAsync()}),r.hideBoostTeaser=function(){Rs({Me:o,id:r.data.innerPost.value.id}),r.boostTeaserActive=!1},n.$broadcast(`$track:project`,{trackPost:r.data.innerPost.value,trackRevision:r.data.innerRevision.value,project:r.data.project.value,isPrivatelyShared:r.isPrivatelyShared}),r.data.isMixdownReady.value===!1&&(c.join({revisionId:r.data.revisionId.value}),r.$on(`$destroy`,c.disconnect)),r.$on(`$mixdown:changed`,function(e,t){Object.assign(r.data.innerRevision.value.mixdown,t.mixdown),r.data.innerRevision.value.canMaster=t.canMaster}),r.reorderedLinks=S(r.creator);async function x(){if(!_)return;let{availableFeaturesSet:e}=qn(r,o),t=Date.now()-new Date(_.createdOn)<1728e5;Gg(_)&&!e.value.has(`distro`)&&await B_(o,`distroPostRevisionModal`,`distro_modal_post_revision`)&&t&&_.isPublic&&(X(HL,{triggeredFrom:`distro_modal_post_revision`}),z_(o,`distroPostRevisionModal`,`distro_modal_post_revision`))}function S(e){if(e.links){let t=[`instagram`,`airbit`,`tikTok`,`spotify`,`youTube`,`soundCloud`,`website`],n={};for(let r of t)r in e.links&&(n[r]=e.links[r]);return n}return{}}function C({limit:e,offset:t}={}){return f.getCollaborators({songId:_.song.id,accepted:!0,limit:e,offset:t,includeOwner:!0}).$promise}function w(){return r.creator.links?Object.keys(r.creator.links).length:0}r.updateLyrics=function(e,t){r.revision&&Object.assign(r.revision,e),r.data.lyrics.value=t};function T(){let e=g.creator?.id===o.id,t=_?.canEdit===!0,n=m?.isMember===!0&&v?.author.type===`Band`&&v.author.id===m.id;return e||t||n}function E(e){o.id!==r.creator.id&&(e=e.toLowerCase(),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSocialLinkVisit:t}){t({destination:e,triggeredFrom:Ee(i),userId:r.creator.id})}))}function D(e,t=10,n){return Object.assign(e,{entity:`posts`,postCompositeId:r.data.postCompositeId.value,userId:o.id,limit:t,after:n}),f.reactionsWithCursor(e).$promise}if(r.$on(`$post:reactionChanged`,function(e,{post:t}){t.id===r.post.id&&(r.post.initiatorReaction=t.initiatorReaction,r.post.counters.reactions=t.counters.reactions,r.post.reactions=t.reactions)}),r.$on(`$albumTrack:changed`,function(e,t){r.data.trackPost.caption=t.caption,r.data.postState.value=t.state,r.data.innerPost.value.track.genreId=t.track.genreId,r.data.genres.value[0].id=t.track.genreId,l.getGenres().then(e=>{let n=e.find(e=>e.id===t.track.genreId);r.data.genres.value[0].name=n.name})}),r.$on(`$song:changed`,function(e,t){t.action===`update`&&(r.data.title.value=t.song.name)}),r.$on(`$revision:changed`,function(e,t){r.data.postState.value=t.revision.post.state,t.action===`master`&&(c.disconnect(),c.join({revisionId:r.data.revisionId.value}))}),r.$on(`$comment:updateCounter`,function(e,t){t.id===r.data.innerPost.value.id&&(r.data.innerPost.value.counters.comments=t.nextCommentsCounter)}),d.fromRecommendations({userId:o.id,limit:4,genres:r.data.genres.value?.[0].id??`other`}).$promise.then(function({data:e}){r.relatedPosts=e.filter(e=>e.id!==r.post.id).slice(0,3)}),_){let{shareWithOriginalAuthor:t,canMessageOriginalAuthor:n}=cs(e);r.shareWithOriginalAuthor=()=>t(r.revision,r.revision.song.original.conversationId),r.canMessageOriginalAuthor=()=>n(r.revision,r.revision.song.original)}}],redirectTo:function(e){let{id:t,revId:n,...r}=e.params();if(t.includes(`_`)||!n)return e.injector().getAsync(`theRevision`).then(t=>{if(t)return{to:e.to().name,params:{...r,id:t.post.id,revId:t.id}}})}}).state(`track.boost`,{url:`/boost`,redirectTo:function(e){if(e.injector().get(`appActions`).checkAllowed(`boost`))return e.injector().getAsync(`thePost`).then(function(e){if(!(e.canEdit||e.permissions.edit))return`post`})}}).state(`track.boost.history`,{url:`/history`}).state(`track.boost.history.recent`,{url:`/recent`}).state(`track.tree`,{url:`/tree`,reloadOnSearch:!1,onEnter:WE,onExit:UE,views:{"overlay@":{templateUrl:`https://www.bandlab.com/web-app/song/views/song-tree-view-1889e7e98.html`,controller:`SongRevisionsFeedCtrl`}}})}]);function UL(e){return e.injector().getAsync(`theParams`).then(function(t){let{commentId:n,replyId:r}=e.params();return{state:`track`,params:{...t,commentId:n,replyId:r}}})}function WL(e){return e.injector().getAsync(`theParams`).then(function(e){return{state:`track.tree`,params:e}})}function GL({albums:e,band:t,revision:n,revisionPost:r,song:i,trackPost:a}){let o=h(e),s=h(t),c=h(n),l=h(r),u=h(i),d=h(a),f=U(function(){if(s)return s}),p=U(function(){if(l)return l.isCommentingAllowed;if(d)return d.isCommentingAllowed}),m=U(function(){return l?l.canEdit&&l.revision.mixdown.status===`Ready`:!1}),g=U(function(){return l?l.canEdit:d?d.permissions.edit:!1}),_=U(function(){return l?l.revision.canPublish:d?d.permissions.edit:c?c.canPublish:!1}
363),v=U(function(){return l?l.creator:d?d.creator:null}),y=U(function(){return l?l.creator.name:d?d.creator.name:``}),b=U(function(){return l?l.creator.username:d?d.creator.username:``}),x=U(function(){return l?l.creator.picture.url:d?d.creator.picture.url:``}),S=U(function(){if(u)return u.collaborators}),C=U(function(){if(l)return l.counters.comments;if(d)return d.counters.comments}),w=U(function(){if(l)return l.revision.song.picture.url;if(d)return d.track.picture.url}),T=U(function(){return l?l.revision.song.picture:d?d.track.picture:null}),E=U(function(){return l?l.createdOn:d?d.createdOn:``}),D=U(function(){if(d)return d.caption;if(c)return c.description}),O=U(function(){if(c)return c.counters.forks}),k=U(function(){return c?c.genres:l?l.revision.genres:d?d.revision.genres:[]}),A=U(function(){if(o)return o}),j=U(function(){if(l)return l;if(d)return d}),M=U(function(){if(c)return c;if(l)return l.revision;if(d)return d.revision;if(u)return u.revision}),N=U(function(){return l?l.isExplicit:d?d.isExplicit:!1}),P=U(function(){return l?l.revision.isFork:c?c.isFork:!1}),F=U(function(){return l?l.revision.song.isForkable:c?c.song.isForkable:!1}),ee=U(function(){if(c)return c.mixdown.status===`Ready`;if(l)return l.revision.mixdown.status===`Ready`;if(d)return d.track.sample.status===`Ready`}),te=U(function(){return c?c.post.state===`Private`:l?l.state===`Private`:d?d.state===`Private`:!1}),I=U(function(){return c?c.post.state===`Public`:l?l.state===`Public`:d?d.state===`Public`:!1}),L=U(function(){return c?c.post.state===`Unlisted`:l?l.state===`Unlisted`:d?d.state===`Unlisted`:!1}),R=U({get:function(){if(l)return l.revision.lyrics?.content;if(c)return c.lyrics?.content},set:function(e){let t={content:e};l&&(l.revision.lyrics=t),c&&(c.lyrics=t),d&&(d.revision.lyrics=t)}}),ne=U(function(){return c?c.mixdown.duration:l?l.revision.mixdown.duration:d?d.track.sample.duration:0}),z=U(function(){return l?l.revision.counters.plays:d?d.counters.plays:0}),re=U(function(){if(l)return l.postCompositeId;if(d)return d.id}),B=U({get:function(){if(c)return c.post.state;if(l)return l.state;if(d)return d.state},set:function(e){c&&(c.post.state=e),l&&(l.state=e),d&&(d.state=e)}}),V=U(function(){if(u)return u;if(l)return l.revision.song;if(c)return c.song}),ie=U(function(){return d?d.counters.reactions:l?l.counters.reactions:0}),H=U(function(){if(c&&l)return{...c,post:{...l}};if(c&&d)return{...c,post:{...d}};if(d)return{...d.revision,post:{...d}}});return{canComment:p,canDownload:m,canEdit:g,canPublish:_,commentCount:C,coverArt:w,coverColorData:T,creationDate:E,creator:v,creatorName:y,creatorProfilePicture:x,creatorUsername:b,description:D,forkCount:O,genres:k,innerAlbums:A,innerBand:f,innerCollaborators:S,innerPost:j,innerRevision:M,isExplicit:N,isFork:P,isForkable:F,isMixdownReady:ee,
363isPrivate:te,isPublic:I,isUnlisted:L,lyrics:R,mixdownDuration:ne,playCount:z,postCompositeId:re,postState:B,project:V,reactionCount:ie,revisionId:U(function(){if(l)return l.revision.id;if(d)return d.revisionId;if(c)return c.id}),revisionWithFullPost:H,title:U({get:function(){return d?d.track.name:c?c.song.name:l?l.revision.song.name:u?u.name:``},set:function(e){d&&(d.track.name=e),c&&(c.song.name=e),l&&(l.revision.song.name=e),u&&(u.name=e)}}),trackPost:d}}angular.module(`bandlab.track`,[]).directive(`trackRelatedVideos`,[`$injector`,function(e){return{scope:{revisionId:`<`},link:function(t,n){$(import(`./C_ZhkqZx.js`),n[0],t,{$injector:e,scope:t},{revisionId:t.revisionId})}}}]).directive(`trackComments`,[`$injector`,function(e){return{scope:{commentId:`<`,post:`<`,replyId:`<`,revision:`<`,canPublish:`<`},link:function(t,n){$(import(`./BYkgIB8M.js`),n[0],t,{$injector:e,scope:t},{commentId:t.commentId,post:t.post,replyId:t.replyId,revision:t.revision,canPublish:t.canPublish})}}}]).directive(`trackRewind`,[`$injector`,function(e){return{scope:{post:`<`,revision:`<`},link:function(t,n){$(import(`./m4rnBtJx.js`),n[0],t,{$injector:e,scope:t},{post:t.post,revision:t.revision})}}}]),angular.module(`bandlab.track`).controller(`TracksCtrl`,[`$location`,`$q`,`$scope`,`$stateParams`,`Me`,`PlayerHistory`,`Post`,function(e,t,n,r,i,a,o){var s=null,c,l=!1,u=e.url();a.setCurrentPageContext({loader:n.loadMore,url:u});function d(e=r.search){if(l)return t.resolve([]);var n={limit:30,after:s,state:{public:`Public`,private:`Private`,unlisted:`Unlisted`}[r.filter],search:e};return c=o.getLibraryTracksFromUser(Object.assign(n,{userId:i.id})).$promise,c=c.then(function(e){return s=e.paging.cursors.after,l=!s,e.data}),c}n.loadMore=function(){return n.infiniteScrollEnded?t.resolve():(c=c.then(function(e){return n.infiniteScrollEnded=l,n.tracks=n.tracks||[],n.tracks=n.tracks.concat(e),a.pushQueueSongs(e,u),d()}),c)},d().then(n.loadMore),n.refreshSearch=function(e){return s=null,l=!1,d(e).then(function(){return c=c.then(function(e){return n.infiniteScrollEnded=l,n.tracks=e,d()}),c}).then(n.loadMore)},n.$on(`$albumTrack:changed`,function(e,t){let r=MS(n.tracks,{id:t.id});r&&Object.assign(r,t)}),n.$on(`$track:uploaded`,function(e,t){let r=ls(t.post);n.tracks.unshift(r)})}]),angular.module(`bandlab.track`).controller(`TrackStateCtrl`,[`$rootScope`,`$scope`,`Album`,`ConfirmModal`,function(e,t,n,r){t.unpublishTrack=function(t){new r({confirmLabel:`Make Private`,contentScope:{title:`Make revision private`,message:`<p>Making your revision private will prevent this post from appearing on public feeds.</p>`},onConfirm:function(){return n.updatePost({id:t.id,state:`Private`}).$promise.then(function(){t.state=`Private`,e.$broadcast(`$albumTrack:changed`,t)})}}).show()},t.getRevisionPostId=rE,t.publishTrack=function(t){new r({confirmLabel:`Publish Track`,contentScope:{title:`Publish Track`,message:`<p>This Track will appear in public feeds.</p>`},onConfirm:function(){return n.updatePost({id:t.id,state:`Public`}).$promise.then(function(){t.state=`Public`,e.$broadcast(`$albumTrack:changed`,t)})}}).show()}}]),angular.module(`bandlab.track`).component(`trackTile`,{bindings:{track:`<`},templateUrl:`https://www.bandlab.com/web-app/track/partials/_track-tile-7daf51e3a.html`,controllerAs:`vm`}),angular.module(`bandlab.user`).controller(`BlockUserCtrl`,[`$rootScope`,`$scope`,`appActions`,`Me`,`User`,function(e,t,n,r,i){t.blockUser=a,t.unblockUser=e=>o(e,`unblock`);function a(e){if(!n.checkAllowed(`blockUser`))return;let t=J(()=>import(`./BsWD-0Cf.js`));import(`./BUIA2SYS.js`).then(e=>e.t).then(function({createModal:n}){n(t,{user:e,onConfirm:()=>o(e,`block`)})})}function o(t,n){(n===`block`?i.block({meId:r.id,userId:t.id}).$promise:i.unblock({meId:r.id,userId:t.id}).$promise).then(function(){t.isBlocked=!0,t.isFollower=!1,setTimeout(()=>{i.get({id:t.id}).$promise.then(r=>{Object.assign(t,r),e.$broadcast(`$user:relationChanged`,{type:n,user:t}),e.$broadcast(`$conversation:leave`,{id:t.conversationId})})},1e3)})}}]),angular.module(`bandlab.user`).controller(`FollowUserCtrl`,[`$scope`,`UserHelper`,function(e,t){e.toggleFollowUser=t.toggleFollowUser}]);function KL(e){let t=e.get(`Invite`);return{acceptInvite:n,revokeInvite:r};function n(e,n){t.update({id:e}).$promise.then(function(){a(),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logBandJoin:e,logBandRequestAccept:t,logCommunityJoin:r}){n.type===`RequestToBand`?t({bandId:n.band.id}):n.type===`InviteToBand`?e({bandId:n.band.id}):n.community&&r()})}).catch(e=>i(n,e))}
363function r(e,n){t.remove({id:e}).$promise.then(function(){a()}).catch(e=>i(n,e))}function i(t,n){let r=e.get(`AppNotifications`);if(n&&n.data&&n.data.message){let e=`Unable to accept invite`,i;switch(n.data.errorCode){case 64:t.band||t.bandId?(e=`This band is currently full`,i=t.isUserRequest?`To add a new member, remove someone first.`:`Try again once a member leaves, or message the owner/admin for help.`):i=`Youâve reached the max number of members. Band can only have 50 members.`;break;default:i=Qe(n,`data.message`)}r.addNotification({title:e,content:i,classList:`alert`,autoclose:5e3})}a()}function a(){e.get(`$rootScope`).$broadcast(`$invite:changed`)}}angular.module(`bandlab.user`).controller(`InviteRequestsCtrl`,[`$injector`,`$scope`,function(e,t){let{acceptInvite:n,revokeInvite:r}=KL(e);t.acceptInvite=function(e,t,r){e.preventDefault(),n(t,r)},t.revokeInvite=function(e,t,n){e.preventDefault(),r(t,n)}}]),angular.module(`bandlab.user`).controller(`InviteUserCtrl`,[`$q`,`$rootScope`,`$scope`,`Invite`,`User`,function(e,t,n,r,i){let a,o;if(n.band)a=`bands`,o=n.band.id;else if(n.school)a=`schools`,o=n.school.id;else if(n.song)a=`songs`,o=n.song.id;else if(n.community)a=`communities`,o=n.community.id;else throw Error(`Entity missing for invite user`);n.sendInvite=l,n.$on(`$invite:changed`,s),n.$watchCollection(`users`,c),s();function s(){r.query({id:o,entity:a,accepted:!1,limit:50}).$promise.then(function(e){n.pendingInvitedUser=[],n.pendingInvitedExternalUser=[],e.data.forEach(function(e){if(e.user){let t=new i(e.user);t.invite=e,n.pendingInvitedUser.push(t)}else{let t=new i({email:e.email});t.invite=e,n.pendingInvitedExternalUser.push(t)}})})}function c(t){if(!t)return;let r=document.createElement(`input`);r.type=`email`,n.areEmailsValid=t.filter(e=>e.type===`email`).reduce((e,t)=>(r.value=t.email,t.hasValidEmail=r.checkValidity(),e&&t.hasValidEmail),!0);let a=t.filter(e=>e.type===`user`).reduce(function(t,n){let r=new i({id:n.username});return e.all([t,r.$get()]).then(function([e]){return n.isValid=!0,Object.assign(n,r),e&&!0}).catch(function(){return n.isValid=!1,!1})},e.resolve(!0));n.areUsernamesValid=!1,e.resolve(a).then(function(e){n.areUsernamesValid=e})}function l(){let e=[],i=[];delete n.inviteSent,n.users.forEach(function(t){t.type===`email`&&!MS(n.pendingInvitedExternalUser,{email:t.email})?i.push(t.email):t.type===`user`&&!MS(n.pendingInvitedUser,{id:t.id})&&e.push(t.id)});let c=new r({id:o,emails:i,userIds:e,message:n.inviteMessage});c.$save({rel:a}).then(function(){n.inviteSent=!0,n.inviteMessage=``,n.users=[],t.$broadcast(`$invite:changed`,{invite:c}),n.community&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logCommunityInvitationSend:e}){e()})}).catch(function(e){n.inviteSent=!1,n.errorMessage=e.data.message}).finally(function(){n.formInviteUser.$setPristine(),s()})}}]),angular.module(`bandlab.user`).controller(`SubscribeToFanReachCtrl`,[`$scope`,`AppNotifications`,`Me`,`User`,function(e,t,n,r){e.toggleFanReachSubscription=function(e){let i;i=e.fanReach.isFan?r.unsubscribeFromFanReach({userId:e.id,meId:n.id}).$promise:r.subscribeToFanReach({userId:e.id,meId:n.id}).$promise,i.then(function(){Object.assign(e,{fanReach:{permissions:{...e.fanReach.permissions},isFan:!e.fanReach.isFan}}),e.fanReach.isFan&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logFanReachSubscribe:t}){t(e)}),t.addNotification({title:e.fanReach.isFan?`You've subscribed as a fan!`:`You're not a subscribed fan any more!`,content:e.fanReach.isFan?null:`Subscribe again any time to get email updates from this creator.`,icon:e.fanReach.isFan?`mail-sent`:`mail-x`,autoclose:8e3}),Y.setItem(`fanReachTooltipClosed`,!0)}).catch(function(e){import(`./CkP7hq0S.js`).then(e=>e.r).then(function({CODE_NO_EMAIL:n,CODE_UNCONFIRMED_EMAIL:r}){let i=e.data.errorCode;if(i===n||i===r){let e=J(()=>import(`./C9NRjjLY.js`));import(`./BUIA2SYS.js`).then(e=>e.t).then(function({createModal:t}){t(e,{emailUnconfirmed:i===r})})}else i===409?t.addNotification({title:e.data.message,classList:`alert`,autoclose:8e3}):t.addNotification({title:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})})},e.subscribeViaEmail=function(e){let i=r.subscribeToFanReach({userId:e.id,meId:n.id}).$promise;Object.assign(e,{fanReach:{isFan:!1,subscribing:!0}}),i.then(function(){Object.assign(e,{fanReach:{isFan:!0,subscribing:!1}}),import(`./DvQD5s06.js`).then(e=>e.t).then(function({logFanReachSubscribe:t}){t(e)})}).catch(function(n){import(`./CkP7hq0S.js`).then(e=>e.r).then(function({CODE_NO_EMAIL:e,CODE_UNCONFIRMED_EMAIL:r}){let i=n.data.errorCode;if(i===e||i===r){let e=J(()=>import(`./C9NRjjLY.js`));import(`./BUIA2SYS.js`).then(e=>e.t).then(function({createModal:t}){t(e,{emailUnconfirmed:i===r})})}else t.addNotification({title:n.data.message,classList:`alert`,autoclose:8e3})}),Object.assign(e,{fanReach:{isFan:!1,subscribing:!1}})})}}]),angular.module(`bandlab.user`).controller(`SubscribeToUserPostsCtrl`,[`$scope`,`AppNotifications`,`Me`,`User`,function(e,t,n,r){e.toggleSubscribe=function(e){r.followRequest({id:e.id,followerId:n.id,isSubscriber:!e.isSubscriber}).$promise.then(function(n){Object.assign(e,{isSubscriber:n.isSubscriber}),t.addNotification({title:n.isSubscriber?`Weâll notify you when this user posts s
363omething`:`We wonât notify you when this user posts something`,icon:n.isSubscriber?`bell-check`:`bell-slash`,classList:n.isSubscriber?`success`:``,autoclose:8e3})}).catch(function(){t.addNotification({title:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})}}]),angular.module(`bandlab.user`).controller(`UserAlbumsCtrl`,[`$q`,`$scope`,`$state`,`$stateParams`,`Album`,`AppNotifications`,`theUser`,function(e,t,n,r,i,a,o){var s=null,c,l=!1;if(t.isVisitorProfileRestricted)return;function u(t=r.search){if(l)return e.resolve([]);let a={userId:o.id,after:s,limit:20,search:t};if(r.likes)c=i.liked(a).$promise;else if(r.purchased)c=i.purchased(a).$promise;else{let e=n.current.name===`user.albums`||n.current.name===`userMusic.albums`?`Released`:r.filter?r.filter===`released`?`Released`:`Draft`:!1;c=i.fromUser(e?{...a,state:e}:a).$promise}return c=c.then(function(e){return s=e.paging.cursors.after,l=!s,e.data}),c}t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(c=c.then(function(e){return t.infiniteScrollEnded=l,t.albums=t.albums||[],t.albums=t.albums.concat(e.map(e=>(e.creator||=o,e))),u()}),c)},u().then(t.loadMore).catch(function(e){e?.data?.errorCode===403&&(t.infiniteScrollEnded=!0,n.reload(),a.addNotification({content:e.data.message,classList:`alert`,autoclose:5e3}))}),t.refreshSearch=function(e){return s=null,l=!1,u(e).then(function(){return c=c.then(function(e){return t.infiniteScrollEnded=l,t.albums=e.map(e=>(e.creator||=o,e)),u()}),c}).then(t.loadMore)},t.$on(`$album:changed`,function(e,n){if([`mark-deleted`,`unmark-deleted`].includes(n.action)){let e=MS(t.albums,{id:n.album.id});e&&(e.isDeleting=n.action===`mark-deleted`||null);return}if(n.action===`deleted`){ja(t.albums,{id:n.album.id}),t.albums&&t.albums.length<20&&t.loadMore();return}n.action===`create`&&t.albums.unshift(n.album)})}]);const qL={class:`ds-modal ds-modal-size-small ds-modal-without-header ds-modal-with-footer band-create-onboard-modal`},JL={class:`ds-modal-content`},YL={key:0,class:`band-create-onboard-slide`},XL=[`src`],ZL={class:`band-create-onboard-slide-title`},QL={class:`band-create-onboard-slide-desc`},$L={class:`band-step-pagination-control`},eR=[`aria-current`,`aria-label`],tR={class:`ds-modal-footer ds-modal-footer-one-button`};var nR=V({__name:`BandCreateOnboardModal`,emits:[`closeModal`],setup(e,{emit:t}){let n=t,r=ne(`$injector`).get(`Modal`),i=O(0),a=[{title:`Make music together.`,description:`Collaborate with bandmates on the go â spark fresh ideas, create and edit songs, share feedback, and more.`,picture:`https://www.bandlab.com/web-app/images/band/band-create-onboarding-1-c7bdd09d67.png`},{title:`Publish as a collective.`,description:`Publish songs as a group, share updates on a dedicated page, and invite like-minded artists to join your band.`,picture:`https://www.bandlab.com/web-app/images/band/band-create-onboarding-2-2b06b2b8f7.png`},{title:`Start a one-man band.`,description:`Have a few solo acts? Start a band to distinguish your different artist identities.`,picture:`https://www.bandlab.com/web-app/images/band/band-create-onboarding-3-8cff1a377c.png`}];function o(){i.value===a.length-1&&(n(`closeModal`),new r({id:`createBandModal`,templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-create-e79262035.html`,contentScope:{hasOnboarding:!0}}).show()),i.value++}return(e,t)=>(F(),G(`section`,qL,[K(`section`,JL,[(F(),G(se,null,pe(a,(e,t)=>(F(),G(se,{key:t},[i.value===t?(F(),G(`div`,YL,[K(`img`,{src:e.picture,alt:``,class:`band-create-onboard-slide-image`,width:`224`,height:`224`},null,8,XL),K(`h3`,ZL,y(e.title),1),K(`p`,QL,y(e.description),1),K(`div`,$L,[(F(!0),G(se,null,pe(a.length,(e,t)=>(F(),G(`span`,{key:t,class:`band-step-pagination-control-static-item`,"aria-current":i.value===t?`step`:void 0,"aria-label":`Step ${t+1} / ${a.length}`},null,8,eR))),128))])])):H(``,!0)],64))),64))]),K(`section`,tR,[q(Ue,{type:`button`,class:`ds-button-full-width`,size:`large`,color:`primary`,onClick:o},{default:W(()=>[B(y(`Next`),1)]),_:1})]),q(Pa,{onClick:t[0]||=t=>e.$emit(`closeModal`)})]))}});angular.module(`bandlab.user`).controller(`UserBandsCtrl`,[`$q`,`$scope`,`$state`,`$stateParams`,`AppNotifications`,`Band`,`Me`,`Mod
363al`,`theUser`,function(e,t,n,r,i,a,o,s,c){var l=null,u,d=!1;function f(t=r.search){return d?e.resolve([]):(u=a.fromUser({userId:c.id,after:l,limit:20,role:r.role,search:t}).$promise.then(function(e){return l=e.paging.cursors.after,d=!l,e.data}),u)}t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(u=u.then(function(e){return t.infiniteScrollEnded=d,t.bands=t.bands||[],t.bands=t.bands.concat(e),f()}),u)},t.openBandCreateModal=function(){t.bands.length===0?(_a(),X(nR)):new s({id:`createBandModal`,templateUrl:`https://www.bandlab.com/web-app/band/partials/_band-create-e79262035.html`}).show()},f().then(t.loadMore).catch(function(e){e?.data?.errorCode===403&&(t.infiniteScrollEnded=!0,n.reload(),i.addNotification({content:e.data.message,classList:`alert`,autoclose:5e3}))}),t.refreshSearch=function(e){return l=null,d=!1,f(e).then(function(){return u=u.then(function(n){return t.state.params.search=e,t.infiniteScrollEnded=d,t.bands=n,f()}),u}).then(t.loadMore)},t.$on(`$band:changed`,function(e,n){if([`mark-deleted`,`unmark-deleted`].includes(n.action)){let e=MS(t.bands,{id:n.band.id});e&&(e.isDeleting=n.action===`mark-deleted`||null);return}if(n.action===`delete`){ja(t.bands,{id:n.band.id}),t.bands.length<20&&t.loadMore();return}n.action===`create`&&t.bands.unshift(n.band)}),t.$on(`$band:left`,function(e,n){o.id===c.id?ja(t.bands,n.band):(n.band.isMember=!1,ja(n.band.members,{id:o.id}))})}]),angular.module(`bandlab.user`).controller(`UserCollectionsCtrl`,[`$q`,`$scope`,`$state`,`$stateParams`,`AppNotifications`,`Collection`,`theUser`,function(e,t,n,r,i,a,o){var s=null,c,l=!1;if(t.isVisitorProfileRestricted)return;function u(t=r.search){if(l)return e.resolve([]);let i={userId:o.id,after:s,limit:20,includePrivate:!r.likes&&r.filter!==`public`&&!n.is(`userMusic.collections`),search:t};return c=r.likes?a.liked(i).$promise:a.fromUser(i).$promise,c=c.then(function(e){return s=e.paging.cursors.after,l=!s,e.data}),c}t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(c=c.then(function(e){return t.infiniteScrollEnded=l,t.collections=t.collections||[],t.collections=t.collections.concat(e),u()}),c)},u().then(t.loadMore).catch(function(e){e?.data?.errorCode===403&&(t.infiniteScrollEnded=!0,n.reload(),i.addNotification({content:e.data.message,classList:`alert`,autoclose:5e3}))}),t.refreshSearch=function(e){return s=null,l=!1,u(e).then(function(){return c=c.then(function(e){return t.infiniteScrollEnded=l,t.collections=e,u()}),c}).then(t.loadMore)},t.$on(`$collection:changed`,function(e,n){if([`mark-deleted`,`unmark-deleted`].includes(n.action)){let e=MS(t.collections,{id:n.collection.id});e&&(e.isDeleting=n.action===`mark-deleted`||null);return}if(n.action===`delete`){ja(t.collections,{id:n.collection.id}),t.collections&&t.collections.length<20&&t.loadMore();return}n.action===`create`&&t.collections.unshift(n.collection)})}]),angular.module(`bandlab.user`).controller(`UserCommunitiesCtrl`,[`$q`,`$scope`,`$stateParams`,`Community`,`Me`,`theUser`,function(e,t,n,r,i,a){var o=null,s,c=!1;function l(t=n.search){return c?e.resolve([]):(s=r.fromUser({userId:a.id,after:o,limit:20,role:n.role,search:t}).$promise,s=s.then(function(e){return o=e.paging.cursors.after,c=!o,e.data}),s)}t.loadMore=function(){return t.infiniteScrollEnded?e.resolve():(s=s.then(function(e){return t.infiniteScrollEnded=c,t.communities=t.communities||[],t.communities=t.communities.concat(e),l()}),s)},l().then(t.loadMore),t.refreshSearch=function(e){return o=null,c=!1,l(e).then(function(){return s=s.then(function(e){return t.infiniteScrollEnded=c,t.communities=e,l()}),s}).then(t.loadMore)},t.$on(`$community:changed`,function(e,n){if([`mark-deleted`,`unmark-deleted`].includes(n.action)){let e=MS(t.communities,{id:n.community.id});e&&(e.isDeleting=n.action===`mark-deleted`||null);return}if(n.action===`delete`){ja(t.communities,{id:n.community.id}),t.communities.length<20&&t.loadMore();return}n.action===`create`&&t.communities.unshift(n.community)}),t.$on(`$community:left`,function(e,n){i.id===a.id?ja(t.communities,n.community):(n.community.isMember=!1,ja(n.community.members,{id:i.id}))})}]);const rR={},iR={viewBox:`0 0 311 148`,fill:`none`};function aR(e,t){return F(),G(`svg`,iR,[...t[0]||=[ae(`<g clip-path="url(#clip0_45033_296)"><path d="m0 14.91 14.14 90.75L2.02 137.3l270.1 10.55h18.69L311 .14z" fill="var(--bandlab-brand-color-purple)"></path><path d="M39.38 39.79c0-4.35 0-6.53.84-8.2a8 8 0 0 1 3.4-3.4c1.66-.84 3.84-.84 8.2-.84h208.37c4.35 0 6.53 0 8.19.85a8 8 0 0 1 3.4 3.4c.85 1.66.85 3.84.85 8.19v108.07H39.38z" fill="var(--ds-color-surface-inactive-screen)"></path><ellipse cx="74.3625" cy="62.3375" rx="19.4375" ry="19.4375" fill="var(--bandlab-brand-color-purple)" fill-opacity="0.2"></ellipse><rect x="105.463" y="44.8438" width="87.4687" height="15.55" rx="4" fill="var(--bandlab-brand-color-purple)" fill-opacity="0.2"></rect>
363<g filter="url(#filter0_d_45033_296)"><path d="M109.18 67.78c1.5 0 2.57.82 2.57 2.18 0 .75-.35 1.33-.97 1.63a2 2 0 0 1 1.46 2c0 1.47-1.11 2.35-2.85 2.35h-2.97v-8.16zm-1.39 6.96h1.54c.9 0 1.5-.43 1.5-1.22 0-.76-.6-1.21-1.5-1.21h-1.53zm0-3.59h1.3c.76 0 1.3-.4 1.3-1.1s-.54-1.08-1.3-1.08h-1.3z" fill="var(--bandlab-brand-color-purple)"></path><path d="M116.36 70.09a2.96 2.96 0 0 1 3.05 3c0 1.68-1.3 3-3.05 3a2.96 2.96 0 0 1-3.04-3c0-1.68 1.3-3 3.04-3m-1.7 3c0 .98.75 1.76 1.7 1.76.96 0 1.7-.78 1.7-1.76s-.74-1.76-1.7-1.76c-.95 0-1.7.78-1.7 1.76" fill="var(--bandlab-brand-color-purple)"></path><path d="M123.43 70.09a2.96 2.96 0 0 1 3.04 3c0 1.68-1.3 3-3.04 3a2.96 2.96 0 0 1-3.05-3c0-1.68 1.3-3 3.05-3m-1.7 3c0 .98.74 1.76 1.7 1.76.95 0 1.7-.78 1.7-1.76s-.75-1.76-1.7-1.76c-.96 0-1.7.78-1.7 1.76" fill="var(--bandlab-brand-color-purple)"></path><path d="M128.33 74.05c.2.53.63.88 1.14.88.42 0 .77-.2.77-.6 0-.3-.2-.47-.65-.61l-.69-.23q-1.47-.46-1.46-1.65c0-1.07.9-1.75 1.98-1.75.93 0 1.71.5 2.07 1.3l-1.08.58c-.21-.46-.56-.76-1-.76-.38 0-.68.2-.68.52q0 .42.64.62l.67.22c1.08.35 1.51.91 1.51 1.67 0 1.17-.98 1.84-2.1 1.84a2.3 2.3 0 0 1-2.21-1.45z" fill="var(--bandlab-brand-color-purple)"></path><path d="M134.33 68.54v1.69h1.52v1.14h-1.52v2.57c0 .63.28.9.89.9.21 0 .46-.05.63-.17v1.2q-.33.2-1.03.21c-1.14 0-1.83-.7-1.83-1.9v-2.8h-.85v-1.15h.85v-1.7z" fill="var(--bandlab-brand-color-purple)"></path><path d="M142.16 74.6a2.8 2.8 0 0 1-2.57 1.48 2.87 2.87 0 0 1-2.98-3c0-1.7 1.25-3 2.9-3 1.67 0 2.85 1.3 2.85 3l-.01.41h-4.4c.06.83.8 1.45 1.65 1.45.74 0 1.13-.36 1.46-.86zm-4.2-2.08h3.06a1.5 1.5 0 0 0-1.53-1.32c-.8 0-1.44.66-1.53 1.31" fill="var(--bandlab-brand-color-purple)"></path><path d="M148.02 75.13c-.42.58-1.14.95-1.94.95-1.57 0-2.78-1.3-2.78-3 0-1.67 1.21-3 2.78-3 .8 0 1.52.35 1.94.93v-3.23h1.34v8.16h-1.34zm-3.37-2.04c0 .99.75 1.77 1.71 1.77.97 0 1.72-.78 1.72-1.77 0-1-.75-1.78-1.72-1.78-.96 0-1.71.79-1.71 1.78" fill="var(--bandlab-brand-color-purple)"></path></g><rect x="54.925" y="93.4375" width="202.15" height="15.55" rx="4" fill="var(--bandlab-brand-color-purple)" fill-opacity="0.2"></rect><rect x="54.925" y="116.763" width="87.4687" height="15.55" rx="4" fill="var(--bandlab-brand-color-purple)" fill-opacity="0.2"></rect></g><defs><filter id="filter0_d_45033_296" x="86.4188" y="47.78" width="82.9425" height="48.3037" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset></feOffset><feGaussianBlur stdDeviation="10"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0.705882 0 0 0 0 0 0 0 0 0 1 0 0 0 0.25 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_45033_296"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_45033_296" result="shape"></feBlend></filter><clipPath id="clip0_45033_296"><rect width="311" height="147.725" fill="var(--ds-color-surface-inactive-screen)" transform="translate(0 0.137512)"></rect></clipPath></defs>`,2)]])}var oR=$a(rR,[[`render`,aR]]),sR=n({default:()=>mR});const cR={class:`ds-modal ds-modal-size-small ds-modal-with-footer`},lR={class:`ds-modal-header`},uR={class:`ds-modal-title`},dR={class:`ds-modal-content row-gap-16`},fR={class:`ds-modal-content-p`},pR={class:`ds-modal-footer ds-modal-footer-two-buttons`},mR={__name:`CreatePostBoostModal`,props:{triggeredFrom:{type:String,required:!0}},emits:[`closeModal`],setup(e,{emit:t}){let n=J(()=>import(`./Dammhpdy.js`).then(e=>e.T)),r=e,i=t,a=ne(`$injector`).get(`Me`);function o(){d.set(`skipBoostExplainerModal`,`true`,{expires:365,domain:`bandlab.com`}),s()}function s(){Fs(a,`Please make your account public to boost posts`).then(function(){X(n,{boostMode:!0,triggeredFrom:r.triggeredFrom}),i(`closeModal`)}).catch(()=>{})}return(e,t)=>(F(),G(`section`,cR,[K(`header`,lR,[K(`h2`,uR,y(`Supercharge your posts on BandLab`),1)]),K(`section`,dR,[q(oR),K(`p`,fR,y(`Promote your content to prominent spots around BandLab like the Trending feed, and get more fans and engagement on your content from our 100M-strong community.`),1)]),K(`section`,pR,[q(Ue,{color:`secondary`,size:`medium`,type:`button`,onClick:o},{default:W(()=>[B(y(`Donât show again`),1)]),_:1}),q(Ue,{color:`primary`,size:`medium`,type:`button`,onClick:s},{default:W(()=>[B(y(`Select a Post`),1)]),_:1})]),q(Pa,{onClick:t[0]||=t=>e.$emit(`closeModal`)})]))}};var hR=n({default:()=>gR});const gR={__name:`SkillIcon`,props:{skillId:{type:String,required:!0},size:{type:Number,default:16}},setup(e){let t={guitarist:Af,keyboardist:Ru,vocalist:jf,songwriter
363:Mf,"bass-player":zu,"1-fan":Nf,drummer:Pf,"dj-beatmaker":Ff,other:If};return(n,r)=>(F(),ie(P(t[e.skillId]),{size:e.size},null,8,[`size`]))}},_R={__name:`GenreIcon`,props:{genreId:{type:String,required:!0},size:{type:Number,default:16}},setup(e){let t={rock:Uu,pop:Hu,"hip-hop":Bu,"r-n-b":Vu,electronic:Ku,jazz:Ju,folk:Lf,latin:Rf,funk:zf,blues:Bf,classical:Vf,metal:Wu,reggae:Hf,punk:Uf,country:Wf,"christian-and-gospel":Gf,"k-pop":Kf,"progressive-rock":qf,afro:Jf,house:qu,"dance-and-edm":Yf,trap:Xf,lofi:Gu,dancehall:Zf,"baile-funk":Qf,"desi-trap":$f,other:If};return(n,r)=>(F(),ie(P(t[e.genreId]),{size:e.size},null,8,[`size`]))}},vR={class:`ds-modal ds-modal-size-large`},yR={class:`ds-modal-header`},bR={class:`ds-modal-title`},xR={class:`ds-modal-content profile-card-about-modal-content`},SR={class:`typography-title-body`},CR={class:`typography-body-compact-regular profile-card-about-modal-subtitle`},wR={key:0,style:{"margin-top":`var(--ds-space-12)`}},TR={key:0,class:`typography-body-compact-medium`},ER={key:1,class:`typography-body-compact-regular`},DR={key:0},OR={id:`user-about-modal-inspired-by-title`,class:`typography-title-body`},kR={role:`list`,class:`profile-card-meta-item-container`,"aria-labelledby":`user-about-modal-inspired-by-title`},AR=[`src`],jR={key:1},MR={id:`user-about-modal-skills-title`,class:`typography-title-body`},NR={role:`list`,class:`profile-card-meta-item-container`,"aria-labelledby":`user-about-modal-skills-title`},PR={key:2},FR={id:`user-about-modal-genres-title`,class:`typography-title-body`},IR={role:`list`,class:`profile-card-meta-item-container`,"aria-labelledby":`user-about-modal-genres-title`},LR={__name:`UserAboutModal`,props:{user:{type:Object,required:!0}},emits:[`closeModal`],setup(e,{emit:t}){let n=t;function r(e){e.target.src=`https://bl-prod-images.azureedge.net/v1.3/users/default/s`,e.target.onerror=null}return(t,i)=>(F(),G(`section`,vR,[K(`header`,yR,[K(`h2`,bR,y(`About`),1)]),K(`div`,xR,[K(`article`,null,[K(`h3`,SR,y(e.user.name),1),de((F(),G(`a`,CR,[B(` @`+y(e.user.username),1)])),[[f(Ts),{name:`user.feed`,params:{username:e.user.username}}]]),e.user.place?.country||e.user.about?(F(),G(`div`,wR,[e.user.place?.country?(F(),G(`p`,TR,y(f(Ti)(e.user.place)),1)):H(``,!0),e.user.about?(F(),G(`p`,ER,y(e.user.about),1)):H(``,!0)])):H(``,!0)]),e.user.inspiredBy?.length?(F(),G(`article`,DR,[K(`h3`,OR,y(`Inspired by`),1),K(`ul`,kR,[(F(!0),G(se,null,pe(e.user.inspiredBy,e=>(F(),G(`li`,{key:e.id,class:`profile-card-meta-item`},[K(`img`,{src:e.picture?.xs||`https://bl-prod-images.azureedge.net/v1.3/users/default/s`,alt:``,class:`inspired-by-artist-tag-img profile-card-meta-image`,onError:r},null,40,AR),K(`span`,null,y(e.name),1)]))),128))])])):H(``,!0),e.user.skills?.length?(F(),G(`article`,jR,[K(`h3`,MR,y(`Talents`),1),K(`ul`,NR,[(F(!0),G(se,null,pe(e.user.skills,e=>(F(),G(`li`,{key:e.id,class:`profile-card-meta-item`},[q(gR,{"skill-id":e.id},null,8,[`skill-id`]),K(`span`,null,y(e.name),1)]))),128))])])):H(``,!0),e.user.genres?.length?(F(),G(`article`,PR,[K(`h3`,FR,y(`My Genres`),1),K(`ul`,IR,[(F(!0),G(se,null,pe(e.user.genres,e=>(F(),G(`li`,{key:e.id,class:`profile-card-meta-item`},[q(_R,{"genre-id":e.id},null,8,[`genre-id`]),K(`span`,null,y(e.name),1)]))),128))])])):H(``,!0)]),q(Pa,{onClick:i[0]||=e=>n(`closeModal`)})]))}};function RR(e,{campaignId:t,subscriptionCancelCallback:n}={}){let r=J(()=>import(`./Ci2Cg7im.js`));return X(r,{campaignId:t,insightsOnly:!0,cancelSubscription:n,onSuccess:t=>zR(e,t)})}async function zR(e,t){let n=await Vs(e),r=J(()=>import(`./DnIYkWoO.js`));if(e.isPrivate){let e=J(()=>import(`./CMX0AnjN.js`).then(e=>e.t));return X(e,{onConfirm:i,description:`Please make your account public to promote your profile`})}return i();function i(){X(r,{remoteConfig:n,triggeredFrom:t})}}angular.module(`bandlab.user`).controller(`UserCtrl`,[`$rootScope`,`$scope`,`$state`,`Me`,`User`,function(e,t,n,r,i){let a=this;a.$onInit=p,a.$onDestroy=m,a.openBoostExplainerModal=u,a.openAboutModal=d,a.isBlockedOrBlockedByMe=v,a.isProfileBoostButtonLoading=!0,a.isPrivateAndHidden=y,a.logSocialLinkVisit=_,a.me=r,a.getUserTotalFollowings=je,a.initBoostProfileOTP=g,a.isBoostProfileCampaignActive=!1,a.profileViewersLinkIsLoading=!0,a.streaksEnabled=!1,a.isOnline=!1,a.isInStudio=!1;let o=e.$on(`$user:relationChanged`,function(e,t){a.user.id===t.user.id&&Object.assign(a.user,t.user)}),s=e.$on(`profilePictureModal:updated`,function(){f()}),c=e.$on(`$user:privacyUpdated`,function(){i.get({id:a.user.id}).$promise.then(function(e){a.user.isPrivate=e.isPrivate})}
363),l=e.$on(`$user:changed`,function(e,{action:t,data:n}){t===`profilePicture`&&n?.id===a.user.id&&f().then(()=>{a.isOwnProfile&&(a.me.picture.isDefault=a.user.picture.isDefault)})});function u(){let e=`user_profile`;import(`./CK8KnKct.js`).then(e=>e.r).then(function({Cookies:t}){t.get(`skipBoostExplainerModal`)?X(Ms,{boostMode:!0,triggeredFrom:e}):X(mR,{triggeredFrom:e})})}function d(){X(LR,{user:a.user})}function f(){return i.get({id:a.user.id}).$promise.then(function(e){a.user.counters.profilePictures=e.counters.profilePictures,a.user.picture.url=e.picture.url,a.user.picture.isDefault=e.picture.isDefault})}function p(){a.isOwnProfile=r.id===a.user.id,a.tikTok=Oe(a.user.links?.tikTok),a.website=Oe(a.user.links?.website),!a.isOwnProfile&&!a.me.isAnonymous()&&i.getFanReachSubscriptionState({userId:a.user.id,meId:a.me.id}).$promise.then(function(e){a.user.fanReach=e}),!a.isOwnProfile&&!v()&&!y()&&!r.isAnonymous()&&i.getMutualConnectionsPreview({userId:a.user.id,limit:3}).$promise.then(function(e){a.mutualConnections=e}),a.isInStudio=a.activityStatus===`Studio`,a.isOnline=a.activityStatus===`Studio`||a.activityStatus===`Online`,a.user.activityStatus=a.activityStatus,Promise.all([ke(r,`boost_post_cta_in_user_profile`),qn(t,r),Dm(r)]).then(function([e,{availableFeaturesSet:n},r]){return a.boostPostProfilePlacement=e===`true`,a.availableFeaturesSet=n,a.streaksEnabled=r,t.$applyAsync(),a.isOwnProfile&&!a.boostPostProfilePlacement&&h(),Promise.resolve()}).finally(function(){a.profileViewersLinkIsLoading=!1})}function m(){o(),s(),c(),l()}function h(){ps(`bandlab_profile`,a.me.id).then(e=>{a.isBoostProfileCampaignActive=e.campaignStatus===`live`}).catch(()=>({})).finally(()=>{a.isProfileBoostButtonLoading=!1,t.$applyAsync()})}function g(){return a.isBoostProfileCampaignActive?RR(r):zR(r,`user_profile`)}function _(e){r.id!==a.user.id&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSocialLinkVisit:t}){t({destination:e,triggeredFrom:Ee(n),userId:a.user.id})})}function v(){return a.user.isBlockingMe||a.user.isBlocked}function y(){return a.user.isPrivate&&a.user.followingState!==`Following`&&!a.isOwnProfile}}]),angular.module(`bandlab.user`).controller(`UserMusicCtrl`,[`$injector`,`$q`,`$scope`,`$state`,`Album`,`AppNotifications`,`Collection`,`Me`,`Post`,`theUser`,function(e,t,n,r,i,a,o,s,c,l){if(n.albums=[],n.collections=[],n.isLoading=!0,n.posts=[],n.me=s,n.user=l,n.isVisitorProfileRestricted){n.isLoading=!1;return}function u(){return i.fromUser({userId:l.id,limit:3,state:`Released`}).$promise.then(e=>{n.albums=e.data}).catch(p)}function d(){return o.fromUser({userId:l.id,limit:3,includePrivate:!1}).$promise.then(e=>{n.collections=e.data}).catch(p)}function f(){return c.getTracksFromUserSorted({userId:l.id,limit:10,sort:`popular`}).$promise.then(e=>{n.posts=e.data}).catch(p)}function p(e){e?.data?.errorCode===403&&(r.reload(),a.addNotification({content:e.data.message,classList:`alert`,autoclose:5e3}))}function m(){t.all([u(),d(),f()]).catch(e=>{}).finally(()=>{(n.albums.length>0||n.collections.length>0)&&(n.posts=n.posts.slice(0,3)),n.isLoading=!1})}n.$on(`$album:changed`,function(e,t){t.action===`deleted`?n.albums=n.albums.filter(e=>e.id!==t.album.id):t.action===`create`&&n.albums.unshift(t.album)}),n.$on(`$albumTrack:changed`,function(e,t){let r=n.posts.find(e=>e.revision.id===t.id);r&&(r.caption=t.caption,r.track=t.track,r.revision.track=t.track,r.isExplicit=t.isExplicit,r.state=t.state)}),n.$on(`$revision:changed`,function(e,t){t.action===`unpublish`?n.posts=n.posts.filter(e=>e.revision.id!==t.revision.id):t.action===`create`&&t.revision.isPublic&&c.get({id:t.revision.postId}).$promise.then(e=>{n.posts.unshift(e)})}),n.openBoostPostModal=function(t){Ls(e,t,`user_profile_tracks`)},m()}]),angular.module(`bandlab.user`).controller(`UserTracksCtrl`,[`$injector`,`$location`,`$q`,`$scope`,`$state`,`$stateParams`,`AppNotifications`,`Me`,`PlayerHistory`,`Post`,function(e,t,n,r,i,a,o,s,c,l){var u=null,d,f=!1,p=t.url();if(r.isVisitorProfileRestricted)return;r.logUserProfileTracksSort=g,r.loadMore=h,r.me=s,r.state=i,r.tracksSort=a.sort||`popular`,c.setCurrentPageContext({loader:h,url:p}),r.$on(`$albumTrack:changed`,function(e,t){let n=r.posts.find(e=>e.revision.id===t.id);n.caption=t.caption,n.track=t.track,n.revision.track=t.track,n.isExplicit=t.isExplicit,n.state=t.state});function m(){return f?n.resolve([]):(d=l.getTracksFromUserSorted({userId:r.user.id,after:u,limit:20,sort:a.sort}).$promise.then(function(e){return u=e.paging.cursors.after,f=!u,e.data}).catch(function(e){e?.data?.errorCode===403&&(r.infiniteScrollEnded=!0,i.reload(),o.addNotification({content:e.data.message,classList:`alert`,autoclose:5e3}))}),d)}function h(){return r.infiniteScrollEnded?n.resolve():(d=d.then(function(e){return r.infiniteScrollEnded=f,r.posts=r.posts||[],r.posts=r.posts.concat(e),c.pushQueueSongs(e,p),m()}),d)}function g(e){import(`./DHI6ZMoS.js`).then(e=>e.t).then(({logEvent:t})=>{t(`user_profile_tracks_sort`,{type:e})})}r.openBoostPostModal=function(t){Ls(e,t,`user_profile_tracks`)},m().then(r.loadMore),r.$on(`$revision:changed`,function(e,t){t.action===`unpublish`?ja(r.posts,function(e){return e.revision&&e.revision.id===t.revision.id}):t.action===`create`&&t.revision.isPublic&&l.get({id:t.revision.postId}).$promise.then(function(e){r.posts.unshift(e)})})}]),angular.module(`bandlab.user`).component(`boostedUserCard`,{bindings:{ad:`=`,adEventSource:`@`,size:`@`,engagementEvent:`=`,profileOpenEvent:`=`,followEvent:`=`,impressionEvent:`=`},templateUrl:[`$attrs`,function(e){return e.size===`compact`?`https://www.bandlab.com/web-app/user/partials/_boosted-user-card-compact-9cc51afb3.html`:`https://www.bandlab.com/web-app/user/partials/_boosted-user-card-8e3744f33.html`}],controller:[`Me`,function(e){let t=this;t.me=e,t.onEngagement=i,t.onImpression=a,t.$onInit=n;function n(){t.user=t.ad.adCreative.user,t.cardTitle=t.user.place?.city?`Meet ${t.user.name} from ${t.user.place.city}!`:`Meet ${t.user.name}!`,t.shouldShowTags=t.user.skills.some(e=>e.id!==`other`)||t.user.genres.some(e=>e.id!==`other`)||t.user.inspiredBy.length>0}function r(e,n){import(`./Da6vHxCQ.js`).then(e=>e.t).then(function({logEvent:r}){r(e,n,t.adEventSource)})}function i(e){let{adEvent:n,adType:a}=pE(e);if(!t[n])return i(`click`);r(t[n],a)}function a(){import(`./Da6vHxCQ.js`).then(e=>e.t).then(function({logEvent:e}){e(t.impressionEvent,`impression`,t.adEventSource)})}}],controllerAs:`vm`}).directive(`boostedUserTalents`,function(){return{replace:!0,restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/user/partials/_boosted-user-talents-1c2b9145e.html`,scope:{limit:`<`,user:`<`},controller:[`$scope`,`$q`,`Tag`,function(e,t,n){let r=ul(e.user);t.all([n.getSkills(),n.getGenres()]).then(function([t,n]){let{pickedSkills:r,pickedGenres:a,pickedArtists:o}=i({skills:t,genres:n});e.pickedSkills=r,e.pickedGenres=a,e.pickedArtists=o,e.$applyAsync()});function i({skills:t,genres:n}){let i=[],s=[],c=[];a(`other`);let l=r.skills.length+r.genres.length+r.inspiredBy.length;function u({list:e,sources:t,target:n,count:r}){for(let i=0;i<r&&e.length>0;i++)t?(n.push({name:e[i].name,iconName:o(t,e[i].id)}),e.shift()):n.push(e.shift())}for(;i.length+s.length+c.length<Math.min(e.limit,l);)i.length+s.length+c.length<Math.min(e.limit,l)&&r.skills.length>0&&u({list:r.skills,sources:t,count:1,target:i}),i.length+s.length+c.length<Math.min(e.limit,l)&&r.genres.length>0&&u({list:r.genres,sources:n,count:1,target:s}),i.length+s.length+c.length<Math.min(e.limit,l)&&r.inspiredBy.length>0&&u({list:r.inspiredBy,count:1,target:c});return{pickedSkills:i,pickedGenres:s,pickedArtists:c}}function a(e){r.skills=r.skills.filter(t=>t.id!==e),r.genres=r.genres.filter(t=>t.id!==e)}function o(e,t){return e.find(e=>e.id===t)?.iconName}}]}}).directive(`boostedUserCardPopover`,function(){return{link:function(e,t){$(import(`./EDDl3EOJ.js`),t[0],e)}}}),angular.module(`bandlab.user`).directive(`likers`,[`$compile`,`Comment`,`Me`,`User`,function(e,t,n,r){return{restrict:`A`,link:function(i,a,o){let s=angular.element(`<div class="tooltip tooltip-users" ${o.usersModalList?`users-modal`:``} users-modal-list="${o.usersModalList}" users-modal-title="Likes" ng-click="$event.stopPropagation()"><span class="tooltip-text">Loadingâ¦</span></div>`),c=null;e(s)(i),a.on(`mouseenter`,p),a.on(`mouseleave`,m),i.$on(`like`,function(e,t){t.id===o.likersEntityId&&t.commentId===o.likersCommentId&&(c=t.isLiked,s&&l(t.isLiked,t.count))});function l(){return(o.likersCommentId?t.likersWithCursor({entity:`${o.likersEntityType}`,entityId:o.likersEntityId,id:o.likersCommentId,limit:11},{cache:!0}).$promise:r.likersWithCursor({entity:o.likersEntityType,entityId:o.likersEntityId,limit:11},{cache:!0}).$promise).then(function({data:e}){let t=e.some(function(e){return e.id===n.id});return c===!0&&!t?e.unshift(n):c===!1&&(e=e.filter(function(e){return e.id!==n.id})),f(e.slice(0,10))}).catch(function(){s.remove()})}function u(){a[0].getBoundingClientRect().top-s[0].getBoundingClientRect().height<40||d(s[0])?s.removeClass(`above`).addClass(`below`):s.addClass(`above`).removeClass(`below`)}function d(e){let t=e.parentElement;for(;t;){let n=getComputedStyle(t).overflowY;if((n===`scroll`||n===`auto`)&&t.scrollHeight>t.clientHeight){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();if(n.top>r.top)return!0}t=t.parentElement}return!1}function f(e){if(e.length){var t=`<span class="popover-placeholder"></span>`,n=parseInt(o.likersCount);s.empty(),e.forEach(function(e){t+=`<span class="tooltip-text">${e.name}</span>`}),n>10&&(t+=`<span class="tooltip-text tooltip-info">${`+${n-10} More`}</span>`),s.append(t),u()}}function p(){o.likersCount&&parseInt(o.likersCount)!==0&&o.likersEntityType&&o.likersEntityId&&(a.css(`position`,`relative`),a.css(`padding-top`,o.likersPadding||`8px`),a.css(`margin-top`,o.likersPadding?`-${o.likersPadding}`:`-8px`),a.append(s),s.addClass(`active`),u(),l())}function m(){s&&s.removeClass(`active`)}}}}]),angular.module(`bandlab.user`).directive(`selectMultipleUsers`,[`$q`,`Search`,function(e,t){return{restrict:`E`,templateUrl:`https://www.bandlab.com/web-app/user/partials/_select-multiple-users-5670bcf60.html`,scope:{users:`=`,placeholder:`@`,suggestedUsers:`<`,allowEmails:`<`,allowUsers:`<`,pendingExternalUsers:`<`,pendingUsers:`<`,excludeBand:`<`,excludeCommunity:`<`,excludeSong:`<`},link:function(n,r){let i=r[0].querySelector(`input`),a,o;n.allowEmails=n.allowEmails!==!1,n.allowUsers=n.allowUsers!==!1,n.placeholder=n.placeholder||n.allowEmails&&n.allowUsers&&`Username or email`||n.allowEmails&&`Email`||n.allowUsers&&`Username`||``,n.inviteUser=``,n.suggestions={"0users":[]},n.users=n.users||[],n.pendingExternalUsers=n.pendingExternalUsers||[],n.pendingUsers=n.pendingUsers||[];function s(r){if(angular.isUndefined(r)||r.length===0){n.suggestions[`0users`]=[];return}if(n.suggestedUsers){let t=r.trim().replace(/\s+/,` `).toLowerCase();a=e.resolve(n.suggestedUsers.filter(e=>e.name.toLowerCase().includes(t)||e.username.toLowerCase().includes(t)))}else a=t.users({excludeBand:Qe(n,`excludeBand.id`),excludeCommunity:Qe(n,`excludeCommunity.id`),excludeSong:Qe(n,`excludeSong.id`),query:r,limit:15}).then(({data:e})=>e);a.then(e=>{if(o!==r&&r)return s(o);n.suggestions[`0users`]=e.filter(e=>!(n.users.find(t=>
363t.id===e.id)||n.pendingUsers.find(t=>t.id===e.id)))})}function c(){if(!n.allowEmails){n.inviteUser=n.inviteUser.replace(/[,]+$/,`,`).replace(/[;]+$/,`;`);return}let e=new Set(n.inviteUser.split(/[;,]/).map(e=>e.trim()).filter(Boolean));if(!/[;,]$/.test(n.inviteUser)&&e.size<2)return;let t=Array.from(e).flatMap(e=>e.indexOf(`@`)>0?{type:`email`,email:e}:n.allowUsers?{type:`user`,username:e.replace(`@`,``)}:[]).filter(e=>e.email?!(n.users.find(t=>t.email===e.email)||n.pendingExternalUsers.find(t=>t.email===e.email)):!(n.users.find(t=>t.username===e.username)||n.pendingUsers.find(t=>t.username===e.username)));n.users=n.users.concat(t),n.inviteUser=!t.length&&(n.inviteUser.endsWith(`,`)||n.inviteUser.endsWith(`;`))?n.inviteUser.slice(0,-1):``}r[0].closest(`.modal`).addEventListener(`click`,function(e){!e.target.closest(`.select-multiple-users`)&&n.inviteUser&&(n.inviteUser+=`;`,c(),n.$applyAsync())}),n.setUser=function(e){e.type=`user`,n.users.push(e),n.inviteUser=``},n.handleKeys=function(e){e.which===8&&!n.inviteUser?n.users.pop():(e.which===9&&n.inviteUser||e.which===13)&&(e.preventDefault(),setTimeout(function(){n.inviteUser&&(n.inviteUser+=`;`,c())}))},n.removeUser=function(e){ja(n.users,e),i.focus()},n.clearSuggestions=function(){n.suggestions={"0users":[]}},n.$watch(`inviteUser`,function(){if(n.users.length>=10){n.inviteUser=``;return}o=n.inviteUser,c(),(!a||Qe(a,`$$state.status`)!==0)&&s(o)})}}}]),angular.module(`bandlab.user`).component(`suggestedUsersCard`,{templateUrl:`https://www.bandlab.com/web-app/user/partials/_suggested-users-card-d9afbec02.html`,controllerAs:`vm`,controller:[`$element`,`$q`,`$scope`,`Me`,`User`,function(e,t,n,r,i){let a=this,o=is.feedPeopleToFollow,s=t.resolve();a.nativeAdClientPlacement=is,a.$onInit=c,a.refreshWhoToFollow=c;async function c(){a.isLoading=!0;let{ads:t}=r.isAnonymous()?{ads:[]}:await as(o),i=await u();if(!i.length&&!t.length)return e.remove();a.users=Array.from({length:5}).map((e,n)=>{let r=t.find(e=>e.position===n);return r?l(r):i.shift()}).filter(Boolean),a.isLoading=!1,n.$applyAsync()}function l(e){let{adEngagementEvent:t,adImpressionEvent:n,adProfileOpenEvent:r,adFollowEvent:i,adCreative:a}=e;return{...a.user,engagementEvent:t,impressionEvent:n,followEvent:i,profileOpenEvent:r,isBoosted:a.isBoosted}}function u(){return s.$$state.status===0?t.reject(`Request already pending.`):(s=(r.isAnonymous()?i.getRecommendations:i.suggested)({limit:5}).$promise.then(function(e){return e.length?e:i.getRecommendations({limit:5}).$promise}),s)}}]}),angular.module(`bandlab.user`).component(`userCard`,{bindings:{user:`=`,withShareCta:`<`,hasBioPage:`<`,hasPublicBioPage:`<`,hasSocialLinks:`<`,nowPlayingTrack:`<`,activityStatus:`<`},templateUrl:`https://www.bandlab.com/web-app/user/partials/_user-card-4e0d761df.html`,controller:`UserCtrl`,controllerAs:`vm`}),angular.module(`bandlab.user`).directive(`userTabs`,[`$injector`,function(e){return{link:function(t,n){let r=h({hasHighlights:!!t.highlights,username:t.user.name});$(import(`./DHjnXW10.js`),n[0],t,{$injector:e},r)}}}]),angular.module(`bandlab.user`).directive(`userFollow`,[`$state`,`Me`,`UserHelper`,function(e,t,n){return{restrict:`A`,scope:{user:`=userFollow`},link:function(r,i,a){let o=i[0].classList.contains(`follow-back-button`);if(!r.user||r.user.id===t.id){i.remove();return}r.$watch(`user.followingState`,function(){i.toggleClass(`ds-button-color-primary`,r.user.followingState!==`Following`&&r.user.followingState!==`ApprovalPending`),i.toggleClass(`ds-button-color-secondary`,r.user.followingState===`Following`||r.user.followingState===`ApprovalPending`),s()});function s(){i[0].classList.contains(`follow-icon`)?r.user.isFollower||r.user.followingState===`Following`?i[0].innerHTML=`<svg class="ds-button-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 364 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M21 9a5 5 0 1 0-10 0 5 5 0 0 0 10 0m-5-3a3 3 0 1 1 0 6 3 3 0 0 1 0-6"></path> 365 <path fill="currentColor" d="M9.2 10.2 4 15.42l-3.7-3.7 1.4-1.42L4 12.6l3.8-3.8zm13.05 10.46A8.8 8.8 0 0 0 16 18c-2.4 0-4.9 1.07-6.24 2.65l-1.52-1.3C10.02 17.26 13.1 16 16 16c2.86 0 5.98 1.31 7.75 3.34z"></path> 366 </svg>`:r.user.followingState===`ApprovalPending`?i[0].innerHTML=`<svg class="ds-button-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true">
367 <path fill="currentColor" d="M13 6v5h4v2h-6V6z"></path> 368 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M12 1a11 11 0 1 1 0 22 11 11 0 0 1 0-22m9 11a9 9 0 1 0-18 0 9 9 0 0 0 18 0" fill="currentColor"></path> 369 </svg>`:i[0].innerHTML=`<svg class="ds-button-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 370 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M21 9a5 5 0 1 0-10 0 5 5 0 0 0 10 0m-5-3a3 3 0 1 1 0 6 3 3 0 0 1 0-6M6 13v3H4v-3H1v-2h3V8h2v3h3v2zm16.25 7.66A8.8 8.8 0 0 0 16 18c-2.4 0-4.9 1.07-6.24 2.65l-1.52-1.3C10.02 17.26 13.1 16 16 16c2.86 0 5.98 1.31 7.75 3.34z"></path> 371 </svg>`:i[0].classList.contains(`follow-icon-text`)?o&&r.user.followingMeState===`Following`&&r.user.followingState===`None`?i[0].innerHTML=`<svg class="ds-button-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 372 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M21 9a5 5 0 1 0-10 0 5 5 0 0 0 10 0m-5-3a3 3 0 1 1 0 6 3 3 0 0 1 0-6M6 13v3H4v-3H1v-2h3V8h2v3h3v2zm16.25 7.66A8.8 8.8 0 0 0 16 18c-2.4 0-4.9 1.07-6.24 2.65l-1.52-1.3C10.02 17.26 13.1 16 16 16c2.86 0 5.98 1.31 7.75 3.34z"></path> 373 </svg><span class="ds-button-text">Follow Back</span>`:r.user.followingState===`ApprovalPending`?i[0].innerHTML=`<svg class="ds-button-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 374 <path fill="currentColor" d="M13 6v5h4v2h-6V6z"></path> 375 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M12 1a11 11 0 1 1 0 22 11 11 0 0 1 0-22m9 11a9 9 0 1 0-18 0 9 9 0 0 0 18 0" fill="currentColor"></path> 376 </svg><span class="ds-button-text">Pending</span>`:r.user.isFollower||r.user.followingState===`Following`?i[0].innerHTML=`<svg class="ds-button-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 377 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M21 9a5 5 0 1 0-10 0 5 5 0 0 0 10 0m-5-3a3 3 0 1 1 0 6 3 3 0 0 1 0-6"></path> 378 <path fill="currentColor" d="M9.2 10.2 4 15.42l-3.7-3.7 1.4-1.42L4 12.6l3.8-3.8zm13.05 10.46A8.8 8.8 0 0 0 16 18c-2.4 0-4.9 1.07-6.24 2.65l-1.52-1.3C10.02 17.26 13.1 16 16 16c2.86 0 5.98 1.31 7.75 3.34z"></path> 379 </svg>`:i[0].innerHTML=`<svg class="ds-button-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 380 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M21 9a5 5 0 1 0-10 0 5 5 0 0 0 10 0m-5-3a3 3 0 1 1 0 6 3 3 0 0 1 0-6M6 13v3H4v-3H1v-2h3V8h2v3h3v2zm16.25 7.66A8.8 8.8 0 0 0 16 18c-2.4 0-4.9 1.07-6.24 2.65l-1.52-1.3C10.02 17.26 13.1 16 16 16c2.86 0 5.98 1.31 7.75 3.34z"></path> 381 </svg><span class="ds-button-text">Follow</span>`:r.user.isFollower||r.user.followingState===`Following`?i[0].innerHTML=`<span class="ds-button-text">Following</span>`:r.user.followingState===`ApprovalPending`?i[0].innerHTML=`<span class="ds-button-text">Pending</span>`:o&&r.user.followingMeState===`Following`?i[0].innerHTML=`<span class="ds-button-text">Follow Back</span>`:i[0].innerHTML=`<span class="ds-button-text">Follow</span>`}i.on(`click`,()=>{n.toggleFollowUser(r.user,a.eventLabel||Ee(e,i))})}}}]),angular.module(`bandlab.user`).component(`userProfilePopover`,{bindings:{user:`<`,triggeredFrom:`<`},template:` 382 <div class="popover-content"> 383 <user-tile user="vm.user" class="collapse" triggered-from="vm.triggeredFrom"> 384 <user-tile-actions></user-tile-actions> 385 </user-tile> 386 </div> 387 `,controllerAs:`vm`}),angular.module(`bandlab.user`).directive(`usersModal`,[`$q`,`Me`,`Modal`,function(e,t,n){return{restrict:`A`,scope:{usersFn:`=usersModalList`,userRole:`=usersModalRole`,title:`@usersModalTitle`,zeroCaseTitle:`@usersModalZeroCaseTitle`,zeroCaseMessage:`@usersModalZeroCaseMessage`,triggeredFrom:`<usersModalTriggeredFrom`},link:function(r,i){var a,o,s,c,l;i.on(`click`,d),c=function(){return s?e.resolve([]):(o=r.usersFn({limit:a,after:l}).then(function({paging:e,data:t}){return l=e.cursors?.after,s=!l,t}),o)};function u(){return r.status.infiniteScrollEnded?e.resolve():(o=o.then(function(e){return r.status.infiniteScrollEnded=s,r.users.push.apply(r.users,e),c()}),o)}function d(e){e.stopPropagation(),a=15,l=null,o=null,s=!1,r.users=[],r.loadMore=u,r.status={infiniteScrollEnded:null},new n({id:`usersModal`,templateUrl:`https://www.bandlab.com/web-app/user/partials/_users-modal-bc67bc88d.html`,contentScope:{title:r.title,users:r.users,loadMore:r.loadMore,me:t,status:r.status,userRole:r.userRole,zeroCaseTitle:r.zeroCaseTitle,zeroCaseMessage:r.zeroCaseMessage,triggeredFrom:r.triggeredFrom}}).show(),c().then(u)}}}}]),angular.module(`bandlab.user`).component(`userTile`,{bindings:{user:`=`,triggeredFrom:`<`},transclude:{actions:`?userTileActions`},templateUrl:`https://www.bandlab.com/web-app/user/partials/_user-tile-fb0f75f2c.html`,controller:[`Me`,function(e){let t=this;t.$onInit=n,t.getUserTotalFollowings=je;function n(){t.isOwnProfile=e.id===t.user.id}}],controllerAs:`vm`}),angular.module(`bandlab.user`).component(`userTileSmall`,Object.assign({bindings:{user:`=`,triggeredFrom:`<`},transclude:{actions:`?userTileSmallActions`},templateUrl:`https://www.bandlab.com/web-app/user/partials/_user-tile-small-a61b5b2dc.html`,controllerAs:`vm`},{})),angular.module(`bandlab.user`).factory(`Invite`,[`$http`,`$resource`,`$state`,function(e,t,n){var r=`https://www.bandlab.com/api/v1.3/invites`;return t(r,{},{query:{method:`GET`,params:{id:`@id`,entity:`users`},transformResponse:[...e.defaults.transformResponse,i],preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/:entity/:id/invites`},get:{method:`GET`,params:{id:`@id`},url:`${r}/:id`},remove:{method:`DELETE`,params:{id:`@id`},url:`${r}/:id`},save:{method:`POST`,isArray:!0,params:{id:`@id`,rel:`@rel`},url:`https://www.bandlab.com/api/v1.3/:rel/:id/invites`,transformResponse:[...e.defaults.transformResponse,function(e,t,n){return n===403&&e?.errorCode===201&&(e.action=`invite`),e}]},update:{method:`PUT`,params:{id:`@id`},url:`${r}/:id`}});function i(e,t,r){return r===200&&(e.data=e.data.map(function(e){let t=e.text;return t?(t.includes(`<user>`)&&(t=t.replace(`<user>`,`<a href="${n.href(`user.feed`,{username:e.sender.username})}"><span>`).replace(`</user>`,`</span></a>`)),t.includes(`<band>`)&&(t=t.replace(`<band>`,`<a href="${n.href(`band.feed`,{username:e.band.username})}"><span>`).replace(`</band>`,`</span></a>`)),t.includes(`<community>`)&&(t=t.replace(`<community>`,`<a href="${n.href(`community.feed`,{username:e.community.username,triggeredFrom:`notification`})}"><span>`).replace(`</community>`,`</span></a>`)),t.includes(`<song>`)&&(t=t.replace(`<song>`,`<span>`).replace(`</song>`,`</span>`)),e.text=t,e):e})),e}}]),angular.module(`bandlab.user`).factory(`Role`,[`$http`,function(e){return{removeUserRole:t,setNotifications:r,setUserRole:n};function t({userId:t,...n}){return e({url:`https://www.bandlab.com/api/v1.3/${i(n)}/members/${t}`,method:`DELETE`}).then(e=>e.data)}function n({role:t,userId:n,...r}){return e({url:`https://www.bandlab.com/api/v1.3/${i(r)}/members/${n}`,method:`PATCH`,data:{role:t}}).then(e=>e.data)}function r({userId:t,settings:n={},...r}){return e({url:`https://www.bandlab.com/api/v1.3/${i(r)}/members/${t}`,method:`PATCH`,data:n}).then(e=>e.data)}function i({bandId:e,communityId:t,schoolId:n}){if(e)return`bands/${e}`;if(t)return`communities/${t}`;if(n)return`schools/${n}`}}]),angular.module(`bandlab.user`).factory(`User`,[`$cacheFactory`,`$http`,`$resource`,`$timeout`,function(e,t,n,r){var i=`https://www.bandlab.com/api/v1.3/users`,a=e(`FanReach`),o=e(`blockedId`);return n(i,{},{block:{method:`POST`,params:{meId:`@meId`,userId:`@userId`},url:`${i}/:meId/blocks/users/:userId`,interceptor:{response:function(e){return o.remove(e.config.url),e}}},addGearToUser:{method:`POST`,params:{userId:`@userId`,gearId:`@gearId`},url:`https://aws.bandlab.com/api/v1.3/users/:userId/gear/:gearId`},blockedId:{method:`GET`,params:{meId:`@meId`,userId:`@userId`},cache:o,url:`${i}/:meId/blocks/users/:userId`},blocked:{method:`GET`,preservePagination:!0,params:{id:`@id`,limit:20},url:`${i}/:id/blocks/users`,transformResponse:t.defaults.transformResponse.concat(function(e,t,n){return n===200&&e.data.forEach(function(e){e.isBlocked=!0}),e})},checkSubmissionState:{method:`GET`,params:{userId:`@userId`,opportunityId:`@opportunityId`},url:`${i}
387/:userId/opportunities/:opportunityId/submissions`},createFanReachDraftEmail:{method:`POST`,params:{userId:`@userId`},url:`${i}/:userId/fan-reach/email-drafts`},createTrackPost:{method:`POST`,params:{userId:`@userId`},url:`${i}/:userId/track-posts`,cancellable:!0},deactivateFanReach:{method:`DELETE`,params:{userId:`@userId`},url:`${i}/:userId/fan-reach/activations`},deleteFanReachSubscribers:{method:`DELETE`,params:{meId:`@meId`},hasBody:!0,url:`${i}/:meId/fan-reach/subscribers`},deleteProfilePicture:{method:`DELETE`,params:{userId:`@userId`,pictureId:`@pictureId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/profile-pictures/:pictureId`},deleteUserGear:{method:`DELETE`,params:{gearId:`@gearId`,userId:`@userId`},url:`https://aws.bandlab.com/api/v1.3/users/:userId/gear/:gearId`},follow:{method:`POST`,params:{id:`@id`},url:`${i}/:id/followers`},followRequest:{method:`PATCH`,params:{id:`@id`,followerId:`@followerId`},url:`${i}/:id/followers/:followerId`},fromBand:{method:`GET`,params:{bandId:``,limit:50},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/bands/:bandId/members`},fromCommunity:{method:`GET`,params:{communityId:``,limit:10},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/communities/:communityId/members`},get:{method:`GET`,params:{id:`@id`},url:`${i}/:id`},getArtistProfiles:{method:`GET`,params:{userId:`@userId`},url:`${i}/:userId/distro/artist-profiles`},getBoostSubscription:{method:`GET`,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/boost-profile/subscriptions`},getWithAnalytics:{method:`GET`,params:{id:`@id`},url:`${i}/:id`,headers:{"X-Analytics":!0}},getCollaborators:{method:`GET`,params:{includeOwner:!1,songId:``,limit:10},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/songs/:songId/collaborators`},getFanReachDraftEmail:{method:`GET`,params:{userId:`@userId`,draftId:`@draftId`},url:`${i}/:userId/fan-reach/email-drafts/:draftId`},getFanReachIntroMessage:{method:`GET`,params:{userId:`@userId`},url:`${i}/:userId/fan-reach/intro-message`},getFanReachStatus:{method:`GET`,cache:a,params:{userId:`@userId`},url:`${i}/:userId/fan-reach`},getFanReachStatusUnauthorized:{method:`GET`,params:{userId:`@userId`},url:`${i}/:userId/fan-reach/activation-status`},getFanReachSubscriberCount:{method:`GET`,params:{id:`@id`},url:`${i}/:id/artist-stats/fan-reach/30-days`},getFanReachSubscribers:{method:`GET`,params:{meId:`@meId`},preservePagination:!0,url:`${i}/:meId/fan-reach/subscribers`},getFanReachSubscriptionState:{method:`GET`,params:{userId:`@userId`,meId:`@meId`},url:`${i}/:userId/fan-reach/fans/:meId`},getGearCatalog:{method:`GET`,preservePagination:!0,params:{after:`@after`,limit:`@limit`,query:`@query`},url:`https://aws.bandlab.com/api/v1.3/gears`},getHasGearStatus:{method:`GET`,params:{userId:`@userId`},url:`https://aws.bandlab.com/api/v1.3/users/:userId/gear-stats`},getHighlightedTracks:{method:`GET`,params:{userId:`@userId`},url:`${i}/:userId/highlighted-tracks`,transformResponse:[...t.defaults.transformResponse,function(e,t,n){return n===200&&e.data.forEach(function(e){s(e,t,n)}),e}]},getOnboardingArtistRecommendations:{method:`GET`,params:{userId:`@userId`,limit:`@limit`},url:`${i}/:userId/onboarding/recommendations/artists`},getMutualConnectionsList:{method:`GET`,preservePagination:!0,params:{after:`@after`,limit:`@limit`,userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/mutual-connections`},getMutualConnectionsPreview:{method:`GET`,params:{limit:`@limit`,userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/mutual-connections/preview`},getNowPlayingTrack:{method:`GET`,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/playing-now`},getNowPlayingStatus:{method:`GET`,params:{userId:`@userId`},url:`https://aws.bandlab.com/api/v1.3/users/:userId/playing-now/setting`},getOpportunitiesStatus:{method:`GET`,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/opportunities`},getProfilePictures:{method:`GET`,isArray:!0,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/profile-pictures`},getProfileViewsNoMembership:{method:`GET`,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/profile-views/counter/default`},getProfileViewsWithMembership:{method:`GET`,params:{timeframe:`@timeframe`,userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/profile-views/counter`},getProfileViewsUsers:{method:`GET`,preservePagination:!0,params:{after:`@after`,limit:`@limit`,timeframe:`@timeframe`,userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/profile-views/viewers`},getRecentActivity:{method:`GET`,isArray:!0,params:{userId:`@userId`},url:`${i}/:userId/recent-activity`},getSubmissionsList:{method:`GET`,isArray:!0,params:{userId:`@userId`},url:`${i}/:userId/opportunities/submissions`},getRecommendations:{method:`GET`,isArray:!0,params:{limit:20,skills:`all`,sort:`random`},interceptor:{request:function(e){return e.headers={"X-Ad-Service":`none`},e}},url:`https://www.bandlab.com/api/v1.3/recommendations/users`},getUserGear:{method:`GET`,preservePagination:!0,params:{after:`@after`,userId:`@userId`},url:`https://aws.bandlab.com/api/v1.3/users/:userId/gear`},getUserStatus:{method:`GET`,params:{userId:`@userId`},url:`https://aws.bandlab.com/api/v1.3/users/:userId/activity-status`},likersWithCursor:{method:`GET`,params:{entityId:``,entity:`revisions`,limit:10},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/:entity/:entityId/likes/users`},postProfilePicture:{method:`POST`,url:`https://www.bandlab.com/api/v1.3/users/:userId/profile-pictures`},reactionsWithCursor:{method:`GET`,headers:{"x-reactions-enabled":!0},params:{userId:`@userId`,entity:`posts`,postCompositeId:`@postCompositeId`,limit:`@limit`,after:`@after`},preservePagination:!0,url:`https://www.bandlab.com/api/v1.3/:entity/:postCompositeId/reactions/users`},postsPlaybackHistory:{method:`GET`,params:{id:`@id`,limit:50},preservePagination:!0,url:`${i}/:id/posts-playback-history`,transformResponse:[...t.defaults.transformResponse,function(e,t,n){return n===200&&e.data.forEach(function(e){s(e.post,t,n)}),e}]},relation:{method:`GET`,params:{id:`@id`,limit:10},preservePagination:!0,url:`${i}/:id/:rel`},removeFromPostsPlaybackHistory:{method:`DELETE`,params:{userId:`@userId`,postId:`@postId`},preservePagination:!0,url:`${i}/:userId/playback-history/posts/:postId`},replaceProfilePicture:{method:`PUT`,params:{userId:`@userId`,pictureId:`@pictureId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/profile-pictures/:pictureId`,data:{newPictureId:`@newPictureId`}},sendFanReachEmail:{method:`POST`,params:{userId:`@userId`},url:`${i}/:userId/fan-reach/emails`},setProfilePictureAsMain:{method:`PUT`,params:{userId:`@userId`,pictureId:`@pictureId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/profile-pictures/:pictureId/main`,interceptor:{response:function(e){return r(()=>e,1e3)}}},stopBoostSubscription:{method:`DELETE`,params:{userId:`@userId`},url:`https://www.bandlab.com/api/v1.3/users/:userId/boost-profile/subscriptions`},submitOpportunity:{method:`POST`,params:{id:`@id`,opportunityId:`@opportunityId`,topStreamedSongLink:`@topStreamedSongLink`,topViewedMusicVideoLink:`@topViewedMusicVideoLink`},url:`${i}
387/:id/opportunities/:opportunityId/submissions`},subscribeToFanReach:{method:`POST`,params:{userId:`@userId`,meId:`@meId`},url:`${i}/:userId/fan-reach/fans/:meId`},subscribeViaLink:{method:`POST`,params:{userId:`@userId`},url:`${i}/:userId/fan-reach/subscribe-link/subscribers`,data:{email:`@email`}},suggested:{method:`GET`,isArray:!0,params:{limit:20},interceptor:{request:function(e){return e.headers={"X-Ad-Service":`none`},e}},url:`${i}/suggested`},unblock:{method:`DELETE`,params:{meId:`@meId`,userId:`@userId`},url:`${i}/:meId/blocks/users/:userId`,interceptor:{response:function(e){return o.remove(e.config.url),e}}},unfollow:{method:`DELETE`,params:{id:`@id`,followerId:`@followerId`},url:`${i}/:id/followers/:followerId`},unsubscribeFromFanReach:{method:`DELETE`,params:{userId:`@userId`,meId:`@meId`},url:`${i}/:userId/fan-reach/fans/:meId`},updateFanReachDraftEmail:{method:`PUT`,params:{userId:`@userId`,draftId:`@draftId`},url:`${i}/:userId/fan-reach/email-drafts/:draftId`},updateFanReachIntroMessage:{method:`PUT`,params:{userId:`@userId`},url:`${i}/:userId/fan-reach/intro-message`},updateHighlightedTracks:{method:`PUT`,params:{userId:`@userId`},url:`${i}/:userId/highlighted-tracks`},updateNowPlayingStatus:{method:`PUT`,params:{userId:`@userId`},url:`https://aws.bandlab.com/api/v1.3/users/:userId/playing-now/setting`,data:{playingNowAccessGroup:`@playingNowAccessGroup`}},updateUserBackgroundPicture:{method:`PUT`,params:{userId:`@userId`},url:`${i}/:userId/background-pictures`},videoViews:{method:`POST`,params:{videoId:`@videoId`},url:`https://www.bandlab.com/api/v1.3/videos/:videoId/views`},sendActivityHeartbeat:{method:`POST`,url:`https://aws.bandlab.com/api/v1.3/users/me/activity-status/heartbeat`}});function s(e,t,n){return n===200&&ls(e),e}}]),angular.module(`bandlab.user`).factory(`UserHelper`,[`$analytics`,`$q`,`$rootScope`,`$timeout`,`appActions`,`AppNotifications`,`authService`,`ConfirmModal`,`Me`,`User`,function(e,t,n,r,i,a,o,s,c,l){let u=new WeakMap,d=new Map;return{usersCache:d,toggleFollowUser:p};function f(e){return new Promise(function(t,n){if(e.followingState===`ApprovalPending`)return new s({confirmLabel:`Remove`,contentScope:{title:`Remove your follow request?`},onCancel:function(){n()},onConfirm:function(){t()}}).show();t()})}function p(n,s=``,d,p={}){if(!i.checkAllowed(`follow`))return t.reject();if(u.has(n))return u.get(n);var g=n.isFollower||n.followingState===`ApprovalPending`||n.followingState===`Following`?`unfollow`:`follow`;return f(n).then(function(){m(n);let i=l[g]({id:n.id,followerId:c.id}).$promise.then(()=>(r(()=>{o.refreshMe()},1500),e.eventTrack(g===`follow`?`Follow`:`Unfollow`,{category:`User`,extra:{following_user_id:n.id,triggered_from:s,recommendation_attribution:d,followed_profile_status:n.activityStatus===`Online`||n.activityStatus===`Studio`}}),h(n,g,p))).catch(e=>(h(n,g,p),e.status===403&&g===`follow`&&e.data?.errorCode!==202&&a.addNotification({content:`Following is not allowed for this user.`,action:`<a target="_blank" href="https://help.bandlab.com/hc/en-us/articles/48011056320537-Why-can-t-I-follow-any-more-users" class="notification-action-text-inline">Learn More</a>`,classList:`alert`}),t.reject(e))).finally(function(){u.delete(n)});return u.set(n,i),i}).catch(()=>{})}function m(e){e.isFollower||e.followingState!==`None`?(e.followingState=`None`,e.isFollower=!1):(e.followingState=e.isPrivate?`ApprovalPending`:`Following`,e.isFollower=!e.isPrivate),e.followingState!==`ApprovalPending`&&e.counters&&(e.counters.followers+=e.isFollower||e.followingState===`Following`?1:-1)}function h(e,t,i){return r(()=>{},1e3).then(function(){return l.get({id:e.id}).$promise}).then(r=>{r.isBoosted=e.isBoosted,Object.assign(e,r),d.set(e.id,r),n.$broadcast(`$user:relationChanged`,{type:t,user:e,...i})})}}]);const BR={class:`ds-modal-title`},VR={class:`ds-modal-subtitle ds-glyphs-secondary`},HR=[`srcset`],UR={class:`library-item-picker-item-label-text-content`},WR={class:`ds-meta-container ds-meta-container-size-medium ds-meta-container-layout-truncate-last`},GR={class:`ds-meta-item`},KR=[`datetime`];var qR=V({__name:`TrackPostPickerModal`,props:M({allowNoSelection:{type:Boolean},hasReceivedFirstResponseFromServer:{type:[Boolean,null],default:null},isContinueButtonLoading:{type:Boolean},itemList:{},loadMore:{},modelValueProperty:{},pagingAfter:{},selectionLimit:{},selectionType:{},sortOptions:{},continueButtonText:{default:`Continue`},restrictionText:{},subtitle:{},title:{default:`Select Track`},zerocaseMessage:{},zerocaseTitle:{default:`No tracks here yet`}},{"selected-item":{},"selected-itemModifiers":{},"selected-items":{default:()=>[]},"selected-itemsModifiers":{},sort:{default:null},sortModifiers:{}}),emits:M([`closeModal`,`continueWithNoSelection`,`continueWithSingleSelection`,`continueWithMultipleSelection`],[`update:selected-item`,`update:selected-items`,`update:sort`]),setup(e,{emit:t}){let n=J(()=>import(`./BIrjlK-F.js`).then(e=>e.t)),r=J(()=>import(`./Cg793J4d.js`).then(e=>e.n)),i=J(()=>import(`./Bunr-i-8.js`).then(e=>e.n)),a=e,o=ue(e,`selected-item`),s=ue(e,`selected-items`),c=ue(e,`sort`),l=t;return(e,t)=>(F(),ie(ep,{"selected-item":o.value,"onUpdate:selectedItem":t[0]||=e=>o.value=e,"selected-items":s.value,"onUpdate:selectedItems":t[1]||=e=>s.value=e,sort:c.value,"onUpdate:sort":t[2]||=e=>c.value=e,"allow-no-selection":a.allowNoSelection,"has-received-first-response-from-server":a.hasReceivedFirstResponseFromServer,"is-continue-button-loading":a.isContinueButtonLoading,"item-list":a.itemList,"load-more":a.loadM
387ore,"model-value-property":a.modelValueProperty,"paging-after":a.pagingAfter,"selection-limit":a.selectionLimit,"selection-type":a.selectionType,"sort-options":a.sortOptions,onCloseModal:t[3]||=e=>l(`closeModal`),onContinueWithNoSelection:t[4]||=(...e)=>l(`continueWithNoSelection`,...e),onContinueWithSingleSelection:t[5]||=(...e)=>l(`continueWithSingleSelection`,...e),onContinueWithMultipleSelection:t[6]||=(...e)=>l(`continueWithMultipleSelection`,...e)},oe({title:W(()=>[K(`h2`,BR,[e.$slots.title?k(e.$slots,`title`,{},void 0,void 0,0):(F(),G(se,{key:1},[B(y(a.title),1)],64))])]),"item-label-content":W(t=>[K(`img`,{class:`ds-cover ds-cover-size-40`,srcset:`${t.item.track.picture.url}40x40 1x, ${t.item.track.picture.url}80x80 2x`,alt:``},null,8,HR),K(`div`,UR,[q(Do,{size:`medium`,"font-weight":`medium`,layout:`truncate-all`},{title:W(e=>[K(`span`,{class:v(e.class)},y(t.item.track.name),3),t.item.isExplicit?(F(),ie(f(n),{key:0,size:16,class:v(e.iconClass)},null,8,[`class`])):H(``,!0)]),_:2},1024),k(e.$slots,`item-label-metadata`,{item:t.item},()=>[K(`div`,WR,[K(`span`,GR,y(f(gi)(t.item.track.sample?.duration)),1),K(`time`,{class:`ds-meta-item`,datetime:t.item.createdOn},y(f(Ci)(t.item.createdOn)),9,KR)])])])]),zerocase:W(()=>[q(f(r),{"vertical-alignment":`center`},oe({"illustration-icon":W(e=>[q(f(i),{size:40,class:v(e.class)},null,8,[`class`])]),_:2},[e.$slots[`zerocase-title`]?{name:`title`,fn:W(()=>[k(e.$slots,`zerocase-title`)]),key:`0`}:{name:`title`,fn:W(()=>[B(y(a.zerocaseTitle),1)]),key:`1`},e.$slots[`zerocase-message`]?{name:`message`,fn:W(()=>[k(e.$slots,`zerocase-message`)]),key:`2`}:a.zerocaseMessage?{name:`message`,fn:W(()=>[B(y(a.zerocaseMessage),1)]),key:`3`}:void 0,e.$slots[`zerocase-cta`]?{name:`cta`,fn:W(()=>[k(e.$slots,`zerocase-cta`)]),key:`4`}:void 0]),1024)]),"continue-button-text":W(t=>[k(e.$slots,`continue-button-text`,C(A(t)),()=>[B(y(a.continueButtonText),1)])]),_:2},[e.$slots.subtitle?{name:`subtitle`,fn:W(()=>[k(e.$slots,`subtitle`)]),key:`0`}:a.subtitle?{name:`subtitle`,fn:W(()=>[K(`p`,VR,y(a.subtitle),1)]),key:`1`}:void 0,e.$slots[`custom-content`]?{name:`custom-content`,fn:W(()=>[k(e.$slots,`custom-content`)]),key:`2`}:void 0,e.$slots[`restriction-text`]||a.restrictionText?{name:`restriction-text`,fn:W(t=>[e.$slots[`restriction-text`]?k(e.$slots,`restriction-text`,{class:v(t.class)},void 0,void 0,0):(F(),G(`p`,{key:1,class:v(t.class)},y(a.restrictionText),3))]),key:`3`}:void 0]),1032,[`selected-item`,`selected-items`,`sort`,`allow-no-selection`,`has-received-first-response-from-server`,`is-continue-button-loading`,`item-list`,`load-more`,`model-value-property`,`paging-after`,`selection-limit`,`selection-type`,`sort-options`]))}}),JR=n({default:()=>YR}),YR=qR;const XR=[`id`,`value`],ZR=[`for`],QR=[`srcset`],$R={class:`library-item-picker-item-label-text-content`},ez={class:`ds-meta-container ds-meta-container-size-medium ds-meta-container-layout-truncate-last`},tz={class:`ds-meta-item`},nz={class:`ds-meta-item`},rz={class:`ds-meta-item`},iz={class:`ds-meta-container ds-meta-container-size-medium ds-meta-container-layout-truncate-last`},az={class:`ds-meta-item`},oz={class:`ds-meta-item`},sz={class:`ds-meta-item`};var cz=V({__name:`UserArtistHighlightsModal`,props:{fetchingArtistHighlights:{type:Object,required:!0},preselectedTracks:{type:Array,default:()=>[]}},emits:[`closeModal`],setup(e,{emit:t}){let n=J(()=>import(`./Cvolf9Pl.js`)),r=ne(`$injector`),i=r.get(`$rootScope`),a=r.get(`AppNotifications`),o=r.get(`Me`),s=r.get(`Post`),c=r.get(`User`),l=O(!1),u=O(!1),d=O(null),p=O(null),m=O([]),h=O([]),g=O([]),_=O([]),b=[{id:`Popular`,displayName:`Popular`},{id:`Recent`,displayName:`Recent`}],x=O(b[0]),S=U(()=>x.value.id===`Popular`?l.value:u.value),C=U(()=>x.value.id===`Popular`?d.value:p.value),w=U(()=>x.value.id===`Popular`?m.value:h.value),T=U(function(){return _.value.map(function(e){return g.value.find(t=>t.id===e)||w.value.find(t=>t.id===e)})}),E=t,D=e;function k(e){let t={after:e,limit:20,sort:x.value.id};return s.getTracksFromUser(Object.assign(t,{userId:o.id})).$promise.catch(function(){a.addNotification({title:`Something went wrong, please try again later`,classList:`alert`,autoclose:8e3})})}async function A(){if(x.value.id===`Popular`){let{data:e,paging:t}=await k(d.value);l.value=!0,m.value.push(...e),d.value=t.cursors.after;return}let{data:e,paging:t}
387=await k(p.value);u.value=!0,h.value.push(...e),p.value=t.cursors.after}function j(){c.updateHighlightedTracks({userId:o.id},{highlightedTracks:[]}).$promise.then(()=>{Xi(),i.$broadcast(`userArtistHighlights:updated`),E(`closeModal`),a.addNotification({title:`If no tracks are selected, your top 3 popular songs will be featured automatically.`,autoclose:8e3})})}function M(){E(`closeModal`),X(n,{selectedTopTracks:T.value})}return D.preselectedTracks.length?(g.value=D.preselectedTracks,_.value=D.preselectedTracks.map(e=>e.id).slice(0,3)):Promise.resolve(D.fetchingArtistHighlights).then(({data:e})=>{g.value=e,_.value=e.map(e=>e.id)}),(e,t)=>(F(),ie(YR,{"selected-items":_.value,"onUpdate:selectedItems":t[1]||=e=>_.value=e,sort:x.value,"onUpdate:sort":t[2]||=e=>x.value=e,"allow-no-selection":``,"item-list":w.value,"has-received-first-response-from-server":S.value,"load-more":A,"model-value-property":`id`,"paging-after":C.value,"selection-limit":3,"selection-type":`multiple`,"sort-options":b,onContinueWithNoSelection:j,onContinueWithMultipleSelection:M,onCloseModal:t[3]||=e=>E(`closeModal`)},oe({title:W(()=>[B(y(`Add Tracks`)+` (`+y(`${_.value.length}/3`)+`) `,1)]),"item-label-metadata":W(e=>[K(`div`,iz,[K(`span`,az,[q(tp,{size:12,"aria-label":`Plays`,class:`ds-meta-item-icon`},null,8,[`aria-label`]),B(y(e.item.counters.plays),1)]),K(`span`,oz,[q(ns,{size:12,"aria-label":`Likes`,class:`ds-meta-item-icon`},null,8,[`aria-label`]),B(y(e.item.counters.likes),1)]),K(`span`,sz,y(f(gi)(e.item.track.sample.duration)),1)])]),_:2},[T.value.length>0?{name:`custom-content`,fn:W(()=>[(F(!0),G(se,null,pe(T.value,(e,n)=>(F(),G(`div`,{key:n},[de(K(`input`,{id:`user-artist-highlights-modal-selected-track-${n}`,"onUpdate:modelValue":t[0]||=e=>_.value=e,value:e.id,type:`checkbox`,class:`library-item-picker-item-checkbox-input`},null,8,XR),[[he,_.value]]),K(`label`,{for:`user-artist-highlights-modal-selected-track-${n}`,class:`library-item-picker-item-label`},[K(`img`,{class:`ds-cover ds-cover-size-40`,srcset:`${e.track.picture.url}40x40 1x, ${e.track.picture.url}80x80 2x`,alt:``},null,8,QR),K(`div`,$R,[q(Do,{size:`medium`,"font-weight":`medium`,layout:`truncate-all`},{title:W(t=>[K(`span`,{class:v(t.class)},y(e.track.name),3),e.isExplicit?(F(),ie(uf,{key:0,size:16,class:v(t.iconClass)},null,8,[`class`])):H(``,!0)]),_:2},1024),K(`div`,ez,[K(`span`,tz,[q(tp,{size:12,"aria-label":`Plays`,class:`ds-meta-item-icon`},null,8,[`aria-label`]),B(y(e.counters.plays),1)]),K(`span`,nz,[q(ns,{size:12,"aria-label":`Likes`,class:`ds-meta-item-icon`},null,8,[`aria-label`]),B(y(e.counters.likes),1)]),K(`span`,rz,y(f(gi)(e.track.sample.duration)),1)])])],8,ZR)]))),128)),t[4]||=K(`hr`,{class:`library-item-picker-divider`},null,-1)]),key:`0`}:void 0]),1032,[`selected-items`,`sort`,`item-list`,`has-received-first-response-from-server`,`paging-after`]))}}),lz=n({default:()=>uz}),uz=cz;function dz(e){return e.isLoaded&&e.error?`error`:e.isLoaded?`ready`:`loading`}function fz(e){if(pz(e.me,e.state))return Promise.resolve(null);let t=e.$state?.current?.name||`unknown`,n=typeof e.$state?.params?.username==`string`?e.$state.params.username:``,r=`${t}:${n}`,i=e.suffix?`${r}:${e.suffix}`:r,a=n!==``&&n===e.me?.username;return e.streaksService.ensureSyncedForContext({dedupeKey:i,ensureEnrollment:a&&Fm.has(t),contextMeta:{stateName:t,username:n}})}function pz(e,t){return e?.isAnonymous?.()?!0:t?t.isLoaded&&t.hasServerData&&t.error===null&&!t.data.enrolled:!1}hz.$inject=[`Page`],mz.$inject=[`$filter`,`Page`,`theUser`],angular.module(`bandlab.user.routes`,[`ui.router`]).config([`$stateProvider`,function(e){e.state(`me`,{url:`/me`,redirectTo:`me.feed`}).state(`me.boostProfile`,{url:`/boost-profile`,onEnter:[`$state`,`$transitions`,`AppNotifications`,`Me`,function(e,t,n,r){e.go(`user.feed`,{username:r.username}),new Promise(e=>{let n=t.onSuccess({entering:`user.feed`},function(){e(n)})}).then(e=>{e(),i()});function i(){import(`./Da6vHxCQ.js`).then(e=>e.t).then(({getCampaignReportV3:e})=>{e(`bandlab_profile`,r.id).then(e=>{e.campaignStatus===`live`?RR(r):zR(r,`user.feed`)}).catch(e=>{e.response?.status===404?zR(r,`user.feed`):n.addNotification({title:navigator.onLine?`Something went wrong, please try again later`:`Check your internet connection and try again`,classList:`alert`,autoclose:8e3})})})}}]}).state(`me.boostProfileHistory`,{url:`/boost-profile/history/recent`,onEnter:[`$state`,`$transitions`,`Me`,function(e,t,n){e.go(`user.feed`,{username:n.username}),new Promise(e=>{let n=t.onSuccess({entering:`user.feed`},function(){e(n)})}).then(e=>{e(),r()});function r(){import(`./Da6vHxCQ.js`).then(e=>e.t).then(({getCampaignReportV3:e})=>{e(`bandlab_profile`,n.id).then(e=>{e.campaignStatus!==`live`&&RR(n)}).catch(()=>({}))})}}]}).state(`me.tracks`,{url:`/tracks`,redirectTo:function(e){let t=e.injector().get(`Me`);if(!t.isAnonymous())return{state:`user.tracks`,params:{username:t.username}}}}).state(`me.feed`,{redirectTo:function(e){let t=e.injector().get(`Me`);if(!t.isAnonymous())return{state:`user.feed`,params:{username:t.username,...e.params()}}}}).state(`userMe`,{url:`/users/me?createPost`,redirectTo:function(e){let t=e.injector().get(`Me`);if(!t.isAnonymous())return{state:`user.feed`,params:{username:t.username,...e.params()}}}}).state(`user`,{url:`/{username:[a-z0-9][a-z0-9_]{2,19}}`,abstract:!0,params:{rewriteTracking:[`$stateParams`,`Me`,function(e,t){return n=>{let r=t.isAnonymous()&&bn;return n.replace(/^\/[a-z0-9][a-z0-9_]{2,19}(($|\/).*)/g,`/${e.username===t.username?`me`:`user`}${r?`/promo`:``}$1`)}}],redirectedFromGetMembership:{value:!1,dynamic:!0}},templateUrl:`https://www.bandlab.com/web-app/user/views/user-layout-bcfa60ac1.html`,resolve:{theUser:[`$stateParams`,`User`,function(e,t){return t.getWithAnalytics({id:e.username}).$promise}],theHighlights:[`$http`,`Post`,`theUser`,function(e,t,n){if(new Set([`efe4c2c5-8af2-41c6-b9f5-01d91682db85`,`0a73e050-0ee2-46c4-9b25-e34e93a5e998`,`d0314a9b-1fa0-44e7-982a-1ebc6e8a329c`,`3b4d7839-4ee8-4a96-a16c-4e6ad3d75871`]).has(n.id))return e.get(`https://api.airtable.com/v0/appQ3lBtRj02t850e/artists`,{headers:{Authorization:`Bearer patQSfWbNsaG0SmBE.e2903f188d4e443446c031be7408f7c74fbaf4ffd08680d413d6c88d26996a65`}}).then(function({data:{records:e}}){let r=e.find(e=>e.fields.user_id===n.id);if(r)return t.get({id:r.fields.post_id}).$promise.then(function(e){return[e]})})}],nowPlayingTrack:[`User`,`theUser`,function(e,t){return e.getNowPlayingTrack({userId:t.id}).$promise.then(function(e){return e&&e.post?e:`no_activity`}).catch(function(){return null})}],activityStatus:[`User`,`theUser`,function(e,t){return t.isBlocked||t.isBlockingMe||t.isPrivate?null:e.getUserStatus({userId:t.id}).$promise.then(function({activityStatus:e}){return e}).catch(function(){return null})}]},onEnter:mz,onExit:hz,controller:[`$rootScope`,`$scope`,`$state`,`$transitions`,`Me`,`StreaksService`,`appActions`,`theUser`,`theHighlights`,`nowPlayingTrack`,`activityStatus`,`User`,function(e,t,n,r,i,a,o,s,c,l,u,d){t.isOwnProfile=s.id===i.id,t.isVisitorProfileRestricted=gz(i),t.me=i,t.user=s,t.highlights=c,t.activityStatus=u,t.isPrivateHidden=!t.isOwnProfile&&s.isPrivate&&s.followingState!==`Following`,t.logSocialLinkVisit=g,t.prependProtocol=Oe,t.nowPlayingTrack=l,t.recentActivityIsLoading=!1,h();
387function f(e){(c||[]).forEach(function(t){t.creator?.id===s.id&&(t.creator.picture.url=e)})}let p=e.$on(`$user:changed`,function(e,{action:t,data:n}){t===`profilePicture`&&n?.id===s.id&&f(n.pictureUrl)}),m=e.$on(`profilePictureModal:updated`,function(){c?.length&&d.get({id:s.id}).$promise.then(function(e){f(e.picture.url)})});t.$on(`$destroy`,p),t.$on(`$destroy`,m),(function(){if(!t.isOwnProfile||i.isAnonymous())return;if(!n.params.redirectedFromGetMembership)return o();let e=r.onSuccess({},t=>{let n=t.to();n.params?.redirectedFromGetMembership||(e(),n.name===`user.feed`&&o())});t.$on(`$destroy`,e);function o(){fz({streaksService:a,$state:n,me:i}).then(()=>a.flushDeferredResetNotification()).catch(()=>{})}})(),t.isVisitorProfileRestricted&&vz(t,n,o),t.isVisitorProfileRestricted||(t.recentActivityIsLoading=!0,d.getRecentActivity({userId:s.id}).$promise.then(function(e){t.$applyAsync(()=>{t.recentActivity=(e||[]).slice(0,3)})}).finally(function(){t.$applyAsync(()=>{t.recentActivityIsLoading=!1})})),t.hasSocialLinks=function(){return t.user.links&&Object.keys(t.user.links).length>0},t.$on(`$user:relationChanged`,function(n,r){t.user.id===r.user.id&&(Object.assign(t.user,r.user),t.isPrivateHidden=t.user.isPrivate&&t.user.followingState!==`Following`,e.$broadcast(`$user:viewProfile`,t.user))}),e.$broadcast(`$user:viewProfile`,t.user),t.$on(`$band:changed`,function(){t.user.$get({id:t.user.id})});function h(){Promise.resolve().then(()=>Y_).then(function({getPublicUserPageBio:e,getUserPageBio:n}){return e(s.username).then(()=>{t.hasPublicBioPage=!0}).catch(()=>{t.hasPublicBioPage=!1}).finally(()=>{if(i.id!==s.id)t.hasBioPage=t.hasPublicBioPage;else return n(i.id).then(()=>{t.hasBioPage=!0}).catch(()=>{t.hasBioPage=!1}).finally(()=>{t.$applyAsync()})})})}function g(e){i.id!==s.id&&import(`./DvQD5s06.js`).then(e=>e.t).then(function({logSocialLinkVisit:t}){t({destination:e,triggeredFrom:Ee(n),userId:s.id})})}import(`./BWvciV-z.js`).then(e=>e.t).then(async function({getAmplitudeFeatureFlag:e}){let n=await e(i,`soundcloud-social-link`),r=await e(i,`tiktok-social-link`);n!==`true`&&(delete t.user?.links.soundCloud,delete t.user?.links.soundCloudV2),r!==`true`&&(delete t.user?.links.tikTok,delete t.user?.links.tikTokV2)})}]}).state(`user.feed`,{url:`?postId`,params:{createPost:null,triggeredFrom:null,postId:{dynamic:!0,inherit:!1}},views:{content:{templateUrl:`https://www.bandlab.com/web-app/user/views/user-feed-c27ba4e80.html`,controller:[`$location`,`$q`,`$rootScope`,`$scope`,`$state`,`$timeout`,`$transitions`,`AppNotifications`,`Me`,`PlayerHistory`,`Post`,`theUser`,`User`,`nowPlayingTrack`,`activityStatus`,`$injector`,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){var g=null,_,v=!1,y=!1,b=e.url();let x=i.params.postId;r.loadMore=O,r.me=c,r.openArtistHighlightsModal=P,r.isLoadingMore=!1,r.getAdjustedIndex=w,l.setCurrentPageContext({contentSource:`user_profile`,loader:O,url:b}),x&&fs({$injector:h,id:x});let S=o.onSuccess({from:`user.feed`,to:`user.feed`},function(e){let t=e.params(`to`),n=e.params(`from`);t.postId&&t.postId!==n.postId&&Jn.value.length===0&&fs({$injector:h,id:t.postId})});r.$on(`$destroy`,()=>{S(),a(OE,0)});let C=m===`Online`||m===`Studio`;if(Hi(C),i.params.triggeredFrom){let e=E(p);Wi(d,i.params.triggeredFrom,c.id===d.id,e,C)}function w(e){return e+(r.pinned?.length||0)}function T(){return f.getHighlightedTracks({userId:d.id}).$promise.then(function(e){return r.artistHighlights=e.data,r.topPopularTracksQueueContext=ze(),l.pushQueueSongs(r.artistHighlights,r.topPopularTracksQueueContext,!0),r.$on(`$destroy`,()=>l.removeQueueContext(r.topPopularTracksQueueContext)),e})}function E(e){if(e===`no_activity`)return`no_activity`;if(e===null)return`timeout`;let t=e.isCurrentlyPlaying;return t===!0?`now_playing`:t===!1?`last_played`:`timeout`}T();function D(){return y?t.resolve([]):(_=u.fromUser({userId:r.user.id,after:g,limit:5}).$promise.then(function(e){return g=e.paging.cursors.after,y=!g,e.data}).catch(function(e){e?.data?.errorCode===403&&(r.infiniteScrollEnded=!0,i.reload(),s.addNotification({content:e.data.message,classList:`alert`,autoclose:5e3}))}),_)}function O(){return r.infiniteScrollEnded||y?(r.infiniteScrollEnded=!0,t.resolve()):v?_:(v=!0,r.isLoadingMore=!0,_=D().then(function(e){r.infiniteScrollEnded=y,r.posts=r.posts||[];let t=e.filter(e=>!e.isPinned),n=e.filter(e=>e.isPinned);r.posts=r.posts.concat(t),r.pinned=r.pinned||n;let i=TC([...n,...t]);l.pushQueueSongs(i,b)}).finally(function(){v=!1,r.isLoadingMore=!1}),_)}O();let k=T();r.$on(`$revision:changed`,function(e,t){t.action===`unpublish`?r.pinned.length&&ja(r.pinned,function(e){return e.revision&&e.revision.id===t.revision.id}):t.action===`create`&&t.revision.isPublic&&u.get({id:t.revision.postId}).$promise.then(function(e){r.posts.unshift(e)})}),r.$on(`$post:created`,function(e,t){r.posts.unshift(t)}),r.$on(`$post:attachmentResolved`,function(e,{resolvedPost:t}
387){if(i.current.name!==`user.feed`||t?.revision?.mixdown?.status!==`Ready`)return;let n=TC([...r.pinned||[],...r.posts||[]]);l.pushQueueSongs(n,b,!0)}),r.$on(`$post:pin`,function(e,{post:t}){MS(r.posts,{id:t.id})&&a(()=>i.reload(`user.feed`),1e3)}),r.$on(`$post:repost`,function(e,t){d.id===c.id&&a(()=>i.reload(`user.feed`),1e3).then(async()=>{let{openBoostPostOfferModal:e}=await import(`./Dammhpdy.js`).then(e=>e.n);e(t)})}),r.$on(`$post:unpin`,function(e,{post:t}){MS(r.pinned,{id:t.id})&&a(()=>i.reload(`user.feed`),1e3)}),r.$on(`$post:delete`,function(e,t){ja(r.posts,function(e){return e.id===t.post.id}),r.pinned.length&&ja(r.pinned,function(e){return e.id===t.post.id})});function A(e){[...r.posts||[],...r.pinned||[]].forEach(function(t){t.creator.id===d.id&&(t.creator.picture.url=e)})}function j(){return f.get({id:d.id}).$promise.then(function(e){A(e.picture.url)})}let M=n.$on(`$user:changed`,function(e,{action:t,data:n}){t===`profilePicture`&&n.id===d.id&&j()}),N=n.$on(`profilePictureModal:updated`,function(){j()});r.$on(`$destroy`,M),r.$on(`$destroy`,N),r.$on(`$albumTrack:changed`,function(e,t){let n=r.artistHighlights.find(e=>e.revision.id===t.id);n.caption=t.caption,n.track=t.track,n.revision.track=t.track,n.isExplicit=t.isExplicit,n.state=t.state}),n.$on(`userArtistHighlights:updated`,function(){k=T()});function P(){sa(),l.forcePushQueueSongs([]),X(uz,{fetchingArtistHighlights:k})}}]}}}).state(`user.feed.shout`,{url:`/shout?postId`,redirectTo:function(e){return{state:`post`,params:{id:e.params().postId}}}}).state(`user.tracks`,{url:`/tracks`,redirectTo:`user.musicOverview`}).state(`user.videos`,{url:`/videos`,views:{content:{template:`<div id="vue"></div>`,controller:[`$element`,`$scope`,`$injector`,`theUser`,function(e,t,n,r){$(import(`./hSuEldM9.js`),e[0].querySelector(`#vue`),t,{$injector:n,theUser:r},{})}]}}}).state(`user.gear`,{url:`/gear`,views:{content:{template:`<div id="vue"></div>`,controller:[`$element`,`$injector`,`$scope`,`theUser`,function(e,t,n,r){$(import(`./C3uRsBDH.js`),e[0],n,{$injector:t,theUser:r},{})}]}}}).state(`user.bands`,{url:`/bands`,views:{content:{templateUrl:`https://www.bandlab.com/web-app/user/views/user-bands-162941d4a.html`,controller:`UserBandsCtrl`}}}).state(`user.collections`,{url:`/collections`,redirectTo:`user.musicOverview`}).state(`user.albums`,{url:`/albums`,redirectTo:`user.musicOverview`}).state(`user.musicOverview`,{url:`/music-overview`,views:{content:{templateUrl:`https://www.bandlab.com/web-app/user/views/user-music-dd402f1c9.html`,controller:`UserMusicCtrl`}}}).state(`user.likedPosts`,{url:`/likes/posts`,resolve:{canAccess:[`$q`,`Me`,`theUser`,function(e,t,n){return e(function(e,r){t.id===n.id?e(!0):r({status:403})})}]},views:{content:{templateUrl:`https://www.bandlab.com/web-app/user/views/user-likes-posts-2ee80867b.html`,controller:[`$location`,`$q`,`$scope`,`PlayerHistory`,`Post`,function(e,t,n,r,i){var a=null,o,s=!1,c=e.url();n.loadMore=u,r.setCurrentPageContext({loader:u,url:c});function l(){return s?t.resolve([]):(o=i.liked({userId:n.user.id,after:a,limit:5}).$promise.then(function(e){return a=e.paging.cursors.after,s=!a,e.data}),o)}function u(){return n.infiniteScrollEnded?t.resolve():(o=o.then(function(e){return n.infiniteScrollEnded=s,n.posts=n.posts||[],n.posts=n.posts.concat(e),r.pushQueueSongs(e,c),l()}),o)}l().then(n.loadMore)}]}}}).state(`user.likedPosts.shout`,{url:`/shout?postId`,redirectTo:function(e){return{state:`post`,params:{id:e.params().postId}}}}).state(`profileViewers`,{url:`/profile-viewers`,redirectTo:`profileViewers.overview`}).state(`profileViewers.overview`,{url:`/overview`,template:`<div id="vue"></div>`,controllerAs:`vm`,controller:[`$element`,`$http`,`$injector`,`$scope`,`$state`,`Me`,function(e,t,n,r,i,a){$(import(`./C4giefJu.js`),e[0].querySelector(`#vue`),r,{$http:t,$injector:n,$state:i,Me:a},{})}]}).state(`profileViewers.allViewers`,{url:`/allviewers`,template:`<div id="vue"></div>`,resolve:{availableFeaturesSet:[`Me`,function(e){let{availableFeaturesSet:t}=Kn(e);return t}]},redirectTo:function(e){return Promise.all([e.injector().getAsync(`availableFeaturesSet`)]).then(([e])=>{if(!e.value.has(`profile-views`))return`404`})},controllerAs:`vm`,controller:[`$element`,`$scope`,`$http`,`$injector`,`$state`,`Me`,function(e,t,n,r,i,a){$(import(`./VjpiqcH0.js`),e[0].querySelector(`#vue`),t,{$http:n,$injector:r,$state:i,Me:a},{})}]}).state(`userMusic`,{url:`/{username:[a-z0-9][a-z0-9_]{2,19}}/music`,abstract:!0,templateUrl:`https://www.bandlab.com/web-app/user/views/user-music-layout-969739852.html`,resolve:{theUser:[`$stateParams`,`User`,function(e,t){return t.getWithAnalytics({id:e.username}).$promise}]},onEnter:mz,onExit:hz,controller:[`$scope`,`$state`,`Me`,`appActions`,`theUser`,function(e,t,n,r,i){e.user=i,e.isVisitorProfileRestricted=gz(n),e.isVisitorProfileRestricted&&vz(e,t,r)}]}).state(`userMusic.tracks`,{url:`/tracks?sort`,views:{content:{templateUrl:`https://www.bandlab.com/web-app/user/views/user-tracks-53e79ecb6.html`,controller:`UserTracksCtrl`}}}).state(`userMusic.albums`,{url:`/albums`,views:{content:{templateUrl:`https://www.bandlab.com/web-app/user/views/user-albums-9a453f351.html`,controller:`UserAlbumsCtrl`}}}).state(`userMusic.collections`,{url:`/collections`,views:{content:{templateUrl:`https://www.bandlab.com/web-app/user/views/user-collections-c3240d5d1.html`,controller:`UserCollectionsCtrl`}}}).state(`userStreaks`,{url:`/{username:[a-z0-9][a-z0-9_]{2,19}}`,abstract:!0,templateUrl:`https://www.bandlab.com/web-app/user/views/user-streaks-layout-d73a4ecb4.html`,resolve:{theUser:[`$stateParams`,`User`,function(e,t){return t.getWithAnalytics({id:e.username}).$promise}]},onEnter:mz,onExit:hz,controller:[`$rootScope`,`$scope`,`theUser`,function(e,t,n){t.user=n,e.$broadcast(`$user:viewProfile`,t.user)}]}).state(`userStreaks.dashboard`,{url:`/streaks`,redirectTo:async function(e){let t=e.injector().get(`Me`),{username:n}=e.params();if(n!==t.username)return{state:`feed.trending`};if(!await Dm(t))return{state:`user.feed`,params:{username:t.username}}},onEnter:[`StreaksService`,function(e){e.trackDashboardViewed()}],views:{content:{template:`<div id="vue"></div>`,controller:[`$element`,`$injector`,`$scope`,function(e,t,n){$(import(`./DHsehOfX.js`),e[0].querySelector(`#vue`),n,{$injector:t,scope:n},{})}]}}}).state(`userPages`,{url:`/{username:[a-z0-9][a-z0-9_]{2,19}}/pages`,controller:[`$stateParams`,function(e){let t=h({bioPage:null});Promise.resolve().then(()=>Y_).then(({getPublicUserPageBio:t})=>t(e.username)).then(e=>{t.bioPage=e})}]})}]);function mz(e,t,n){let r=e(`bigNumber`),i=n.isPrivate?``:`${(e=>{let t=e=>r(e),n=new Intl.PluralRules(`en`);return{one:`${t(e)} Follower`,other:`${t(e)} Followers`}[n.select(e)]})(n.counters.followers)}, ${(e=>{let t=new Intl.PluralRules(`en`);return{one:`${e} Following`,other:`${e} Following`}[t.select(e)]})(je(n))} - `;t.setMetadata({title:`${n.name} (@${n.username}) ⢠BandLab - Make Music Online`,description:`${i}${n.about||`Listen to music from ${n.name} and follow their creative process on BandLab.`}`,image:`${n.picture.url}360x360`,tapBarTitle:n.name})}function hz(e){e.clearMetadata()}function gz(e){return e.isAnonymous()&&!navigator.userAgent.includes(`Prerender`)}function _z(e){let t=e.href(e.current.name,e.params,{absolute:!0});return btoa(JSON.stringify({path:t}))}function vz(e,t,n){e.isVisitorProfileRestricted&&n.checkAllowed(`follow`,{toState:t.current.name,toParams:t.params},{title:`Access restricted`,description:`You must be logged in to access this page. Log in or sign up to continue.`,redirectState:_z(t)})}window.Sentry={onLoad:()=>{}},Math.random()<=.1&&!navigator.userAgent.includes(`PlayStation`)&&window.location.protocol!==`file:`&&Te.get(`allowSentry`).then(function(){return Re(`https://js.sentry-cdn.com/b0afa098ef574589a68db1157c1baba4.min.js`)}).then(function(){Sentry.forceLoad(),Sentry.onLoad(function(){Sentry.init({environment:`production`,release:`10.2.78`,denyUrls:[/i18n\/pixel\//,/ima3\.js/,/ads\/pixel\.js/,/googletagmanager/,/pagead\//,/recaptcha\//],ignoreErrors:[/.ru\//,/\$templateRequest:tpload/,/\[object Event\]/,/^No error$/,/__show__deepen/,/__tcfapiCall/,/_avast_submit/,/AbortError: The operation was aborted/,/Access is denied/,/anonymous function: captureException/,/Application offline/,/Blocked a frame with origin/,/can't redefine non-configurable property "userAgent"/,/change_ua/,/console is not defined/,/Context has stopped/,/cordova/,/DataCloneError/,/dynamically imported module/,/Error: AccessDeny/,/event is not defined/,/Failed to fetch/,/feedConf/,/Firebase Installation/,/ibFindAllVideos/,/Illegal invocation/,/Importing a module script failed/,/Importing a module script is canceled/,/Load failed/,/myGloFrameList/,/MyIPhoneApp/,/NetworkError/,/NotAllowedError/,/Resource blocked by content blocker/,/promise rejection/,/QuotaExceededError/,/safari-extension/,/SCDynimacBridge/,/Script error/,/SecurityError/,/ServiceWorker/,/SystemJS/,/snapchat.com/,/Unexpected end of script/,/Unexpected number/,/Unexpected token/,/UnhandledRejection/,/vid_mate_check is not defined/,/win\.document\.body/,/window\._sharedData\.entry_data/,/window\.regainData/,/window\.webkit\.messageHandlers/,/zaloJSV2/,/ztePageScrollModule/]})})});export{UN as $,G_ as $a,Ty as $i,OO as $n,lw as $r,XM as $t,bI as A,Xv as Aa,xS as Ai,Vk as An,Tp as Ao,Ww as Ar,DN as At,qF as B,P_ as Ba,px as Bi,ZO as Bn,_w as Br,rM as Bt,KI as C,$v as Ca,rS as Ci,QA as Cn,Mp as Co,rE as Cr,TN as Ct,DI as D,Yv as Da,lS as Di,Jk as Dn,Op as Do,NT as Dr,QM as Dt,AI as E,Ev as Ea,iS as Ei,dA as En,Ep as Eo,RT as Er,HM as Et,sI as F,L_ as Fa,Jx as Fi,Lk as Fn,zw as Fr,AM as Ft,SF as G,b_ as Ga,xy as Gi,xO as Gn,bw as Gr,wM as Gt,zF as H,R_ as Ha,xx as Hi,sO as Hn,Cw as Hr,IM as Ht,nI as I,j_ as Ia,Xx as Ii,Ik as In,Lw as Ir,jM as It,hF as J,n_ as Ja,wy as Ji,MO as Jn,xw as Jr,bM as Jt,xF as K,d_ as Ka,hy as Ki,TO as Kn,vw as Kr,FM as Kt,WF as L,l_ as La,Kx as Li,Fk as Ln,yw as Lr,oN as Lt,gI as M,_v as Ma,$x as Mi,Gk as Mn,ap as Mo,Kw as Mr,DM as Mt,hI as N,I_ as Na,vS as Ni,Hk as Nn,Uw as Nr,IN as Nt,EI as O,Fv as Oa,_S as Oi,Kk as On,Sp as Oo,MT as Or,jN as Ot,iI as P,F_ as Pa,fS as Pi,qk as Pn,Bw as Pr,YM as Pt,KN as Q,C_ as Qa,by as Qi,DO as Qn,ow as Qr,BM as Qt,XF as R,y_ as Ra,gS as Ri,$O as Rn,hw as Rr,PM as Rt,WI as S,Qv as Sa,CS as Si,ej as Sn,Bp as So,lE as Sr,CN as St,GI as T,Tv as Ta,uS as Ti,gA as Tn,Dp as To,BT as Tr,bN as Tt,AF as U,i_ as Ua,Mx as Ui,lO as Un,Sw as Ur,MM as Ut,UF as V,E_ as Va,hx as Vi,IO as Vn,ww as Vr,ZM as Vt,CF as W,u_ as Wa,Px as Wi,bO as Wn,Dw as Wr,SM as Wt,mP as X,w_ as Xa,my as Xi,_O as Xn,aw as Xr,EM as Xt,xP as Y,__ as Ya,yy as Yi,jO as Yn,iw as Yr,NM as Yt,fP as Z,x_ as Za,py as Zi,dO as Zn,uw as Zr,TM as Zt,_L as _,Cv as _a,KS as _i,uj as _n,eh as _o,TE as _r,JM as _t,RR as a,Vv as aa,IC as ai,Tj as an,Tg as ao,MD as ar,fM as at,rL as b,Gv as ba,Bx as bi,aj as bn,Gm as bo,hE as br,qM as bt,hR as c,Dv as ca,NC as ci,_j as cn,xg as co,_D as cr,pM as ct,nR as d,Sv as da,pC as di,cj as dn,Eh as do,nD as dr,kN as dt,ky as ea,cw as ei,WM as en,Vg as eo,yO as er,HN as et,KL as f,Nv as fa,uC as fi,fj as fn,Nh as fo,tD as fr,yN as ft,bL as g,Bv as ga,eC as gi,yj as gn,$m as go,OE as gr,AN as gt,CL as h,Av as ha,iC as hi,Cj as hn,Oh as ho,NE as hr,RN as ht,YR as i,Hv as ia,fw as ii,Dj as in,Eg as io,JD as ir,hM as it,_I as j,bv as ja,dS as ji,Bk as jn,wp as jo,qw as jr,gM as
387jt,wI as k,Iv as ka,qx as ki,zk as kn,xp as ko,Gw as kr,ON as kt,gR as l,Mv as la,dC as li,sj as ln,gg as lo,hD as lr,cM as lt,AL as m,zv as ma,nC as mi,vj as mn,Dh as mo,UE as mr,aN as mt,dz as n,oy as na,pw as ni,xN as nn,Ag as no,XD as nr,uM as nt,zR as o,vv as oa,PC as oi,wj as on,jg as oo,AD as or,dM as ot,kL as p,kv as pa,cC as pi,lj as pn,Ph as po,WE as pr,vN as pt,bF as q,z_ as qa,gy as qi,EO as qn,Ew as qr,KM as qt,lz as r,Lv as ra,dw as ri,Oj as rn,kg as ro,KD as rr,lM as rt,_R as s,xv as sa,MC as si,Ej as sn,Sg as so,vD as sr,mM as st,fz as t,sy as ta,sw as ti,fN as tn,Og as to,wO as tr,WN as tt,sR as u,Ov as ua,fC as ui,mj as un,mg as uo,iD as ur,gN as ut,gL as v,Pv as va,HS as vi,tj as vn,nh as vo,pE as vr,kM as vt,qI as w,Rv as wa,yS as wi,jA as wn,Np as wo,iE as wr,EN as wt,nL as x,Zv as xa,TS as xi,rj as xn,wm as xo,dE as xr,zN as xt,mL as y,jv as ya,OS as yi,XA as yn,Um as yo,vE as yr,VM as yt,JF as z,v_ as za,ux as zi,QO as zn,gw as zr,CM as zt}; 388//# sourceMappingURL=DtE8pO39.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.