{"version":3,"sources":["AX6UIMenu.js"],"names":["_jqmin","require","_AX6UICore2","_AX6Info","_AX6Util","_AX6Mustache","tmpl","menu","columnKeys","items","label","menubar","state","appEventAttach","that","active","opt","_jqmin2","default","document","body","this","instanceId","on","clickItem","bind","popup","self","cfg","e","data","_AX6Info2","eventKeys","ESC","$activeMenu","theme","icons","close","off","forEach","html","n","divide","opts","item","onStateChanged","config","call","path","onLoad","removed","splice","depth","$target","setValue","extend","iconWidth","acceleratorWidth","$this","offset","scrollTop","childOpt","_items","_activeMenu","length","_AX6Mustache2","render","append","width","outerWidth","height","remove","queue","push","Number","getAttribute","index","find","removeClass","addClass","attr","position","left","outerHeight","menuBodyPadding","top","align","element","target","direction","parent","Function","console","log","substring","replace","get","itemClickAndClose","_AX6Util2","findParentNode","onClick","getError","check","value","$document","name","$window","type","checked","l","each","param","AX6UIMenu","window","wh","ww","h","w","t","css","_classCallCheck","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","animateTime","openTimer","closeTimer","menuBar","undefined","init","getOption","clientX","initOnce","initialized","clientY","pageY","updateTheme","object","filteringItem","filter","arr","popupEventAttachTimer","concat","clearTimeout","setTimeout","el","eType","openedIndex","opened","clickParentMenu","popUpChildMenu","collectItem","i","checkItems","isString"],"mappings":"2/BAAAA,OAAAC,QAAA,gDACAC,YAAAD,QAAA,kEACAE,SAAAF,QAAA,wDACAG,SAAAH,QAAA,wDACAI,aAAAJ,QAAA,oEAGIK,MAPJC,KAOW,SAPXC,GASI,MAAA,mKARJA,EAAAC,MAQI,s0CAyB4ED,EAAWE,MAzBvF,whBAkEDF,EAAAC,MAlEC,mGAyCFE,QA3CS,SA2CDH,GAkCN,MAAA,uHAKKA,EAAAC,MALL,myBAuBAD,EAAAE,MAvBA,gGA0BgBE,EAAlBH,MA1BE,qDAiCAI,eAAiBC,SAAjBC,EAAAC,GACDD,IAtCC,EAAAE,QAAAC,SAAOC,SAASC,MAwClBN,IAAO,iBAAPO,KAAAC,YACAC,GAAO,iBAAPF,KAAAC,WAAAE,UAAAC,KAAAJ,KAAAL,KAEIU,EAAAA,QAAAA,SAAAA,QACAC,IAAAA,mBAAJN,KAAAC,YAAiBM,GAAAA,mBAAjBP,KAAAC,WAAA,SAAAO,GACIC,EAAOd,OAAXe,UAAAb,QAAAc,UAAAC,KACEC,KAAAA,UAGGC,IAAAA,kBAAqBP,KAAIO,YACzBP,GAAL,kBAAWP,KAAAC,WAAA,SAAAO,GACTO,KAAOC,aAlCP,EAAApB,QAAAC,SAAOC,SAASC,MAAMkB,IAAI,iBAAmBjB,KAAKC,aAuCpDb,EAAAA,QAAAA,SAAM8B,QAAQD,IAAA,mBAAKjB,KAAAC,aACjB,EAAAL,QAAAC,SAAMsB,QAAQC,IAAEC,kBAAQrB,KAAAC,cAGpBmB,eAAeD,SAAUG,EAAA7B,GAY/BgB,OAXQc,GAAAA,EADuBC,eAEvBC,EAAAA,eAFuBC,KAAAjC,EAAAA,GAAzBO,KAAAwB,gBAKDxB,KAAAwB,eAAAE,KAAAjC,EAAAA,GAIFO,KAAAT,MAAAE,EAAAF,MACF+B,EAdD,KAxBA7B,EAAO,MAwCFc,GAELE,OAAA,SAAgBkB,GAjChB,OAkCAlB,KAAKmB,QACH5B,KAAA4B,OAAYrB,KAAIpB,EAAAA,GAGlBM,EAAA,MAtCO,GAyCPoC,OAAU,SAAVA,EAAqBC,EAAX1C,EAAV2C,EAAAJ,GACAE,IAAAA,EAAQX,KAAQX,EAAAP,KAAAyB,OACZO,EAAFrC,EADFkB,OAAAA,EAmKMoB,OA9JJxB,EAAAK,MAAWD,EAAAA,OADGN,EAAAO,MAEdL,EAAAF,KAFFQ,MAAAnB,QAAAC,QAAAqC,UAAA3B,EAAAQ,OAnCEoB,UAAWxC,EAAIwC,WAAa5B,EAAI4B,UAwClCtB,iBAAelB,EAAAyC,kBAAa7B,EAAA6B,kBAC1BhD,EAEEuC,QAAO,SAAAP,GACPiB,EAAAA,MAAAA,EAAAA,QAHFjB,EAIEkB,YAAAA,EACAC,EAAAA,OACAC,EAAAA,SAAAA,EAAAA,KANFd,MAOEe,KAAAA,EACAC,OAAAA,EAtCI/C,IAAKA,MA4CTyB,EAAA,YAAA,IAnCJX,EAAKF,EAAIpB,WAAWC,OAASA,EAwCvBqB,EAAA,UAAIgC,EAtCVhC,EAAK,SAAWkB,GAAQ,OAwChBU,EAAAA,aAAQ,WACRC,OAAAA,KAAAA,EAASD,WAAAjD,QAATY,KAAAO,EAAApB,WAAAC,OAAAuD,OAAA,GAEAH,GAAAA,EAAAA,QAAAA,SAAWI,cAAA/C,QAAAgD,OAAA5D,KAAAC,KAAAwC,KAAA1B,KAAAO,EAAApB,YAAAsB,KACT,EAAAb,QAAAC,SAAAC,SAAAC,MAAW+C,OAAAjC,GAGTkC,KAAAA,MAAOV,OAAMW,GACbC,QAAAA,SAAAA,GAJS7B,EAAAY,QADFkB,WAAAlD,KAAAmD,MAAXC,MA7BNpB,QAAWnB,EAwCL2B,KAAAA,QAAAA,QAAAA,UAAW/B,KAIXH,EAAAA,GAAK6C,YAAaE,yBAA2B,WAC3CjC,IAAAA,EAAEY,KAAFsB,aAAA,wBACDC,EAFDvD,KAAAsD,aAAA,wBAGD3B,EAAA3B,KAAAsD,aAAA,uBACFjB,OAAAA,EACFC,OAAAA,EAvCCC,OAAAA,EAyCFR,OAAAA,EACAwB,OAAAA,EACA5B,OAAAA,EAEA,MAAAW,QAAA,IAAAP,IACAQ,EAAAA,EAAAY,MAAApB,GAAAtB,KAAAF,EAAApB,WAAAC,OAAAmE,GAAAhD,EAAApB,WAAAC,QACAoD,EAAAlC,EAAA6C,MAAApB,GAAAC,SACAwB,KAAA,0BAAAC,YAAA,UACAf,EAAAA,QAAAA,SAAAA,MAAcgB,SAAd,SAtCMhB,EAAYiB,KAAK,kCAAoCJ,IAyC7Db,EAAAiB,KAAA,gCAAAJ,GAEMxB,GAAauB,EAAAA,OAAa,GAG5Bb,GADAd,GAAO,EAAA/B,QAAAC,SAAKyD,OAFdhB,SApCMC,EAA6B,SAAhBhC,EAAIqD,UAAsB,EAAAhE,QAAAC,SAAOC,UAAUyC,YAAc,EAyCxEZ,GACFc,WACDoB,KAAAvB,EAAAuB,KACGpB,IAAUA,EAAOE,IAGnBI,MAAAV,EAAOW,aACRC,OAAAZ,EAAAyB,eAxCOD,KAAMvB,EAAOuB,KAAOxB,EAAMW,aAAezC,EAAIwD,gBA2CvDC,IAAA1B,EAAA0B,IAAAzD,EAAAwD,gBAAA,EAAAxB,GAGEf,EAAeE,QAAAA,QAAfQ,QAAA,EAAgCvC,EAAA6C,GAC9BlC,EAD8BoB,KAAApB,EAAAkC,EAAAC,EAAAY,OAAAtB,GAAA,EAAAJ,IAI5BrB,EAAKqB,MAAMG,OAAOuB,OAAPtB,GAAA,GAAAb,QAAA,SAAAE,GACPA,EAAAY,QAAAkB,aASTnB,EAAA,KA5CCwB,EAAQ,KA8CVU,EAAMvC,KACNE,EAAOF,KACLpB,EAAM,KACNlB,EAFgB,KAGhB8E,EAASrD,KAHX4B,EAAA,KAxCEC,EAAc,OAiDhB/C,EAAAO,GAAA,WAAA,yBAAA,WACAd,IAAAA,EAAAY,KAAAsD,aAAA,wBACAvB,EAAA/B,KAAAsD,aAAA,wBA3CIb,OAAAA,EA4CJzC,KAAAsD,aAAA,yBAIInD,EAAAA,EAAYgD,MAAZhD,GAAAA,KAAYI,EAAApB,WAAkBC,OAAAmE,GAAAhD,EAAApB,WAAAC,QACjBmB,GAAWkB,EAA5BkB,OAAA,IAzCI,EAAA/C,QAAAC,SAAOG,MAAMyD,YAAY,WA4C7B,GAAA1B,IAKIoC,EAAJC,WAAYvD,EAAA6C,SAAA,aAAAjD,EAAA2D,WACV5C,eAAIE,KAAe1B,KAAA,MACnBuB,KAAQvB,KACNZ,MAAKuC,EACL0C,OAAI,SAAA1C,GACF,IAAAA,EAAQ2C,OAAA,EAEV,IACEC,OAAQC,SAAI,GAAA,4BAAyB7C,EAAO8C,UAAA,GAAAC,QAA5C,MAAA,YAAA,MAAAhD,KAAApB,GAGAiB,MAAOf,KAPL,CAnCDC,EAAK,UA8CVlB,MAAA,WAII0E,MAAAvC,KAAIO,KAAAA,EAAWxB,GACbmB,OAAAF,KAAA1B,MACEM,KAAAN,KACDZ,MAHYA,EAIb8E,QAAArD,EAAS8D,IAAA,KAGLlE,EAAA,KACEW,EAAAA,KACD,KACFzB,EAAA,KACDP,EAAA,KACD2C,EAAA,KAZYJ,EAAf,KAeAM,MA3CF9B,UAAY,SAAUR,EAAKa,GA8C3B,IAAAF,EAAKC,KAAIqE,EAAAA,KAAAA,OACPtE,OAAAA,EAAK6C,OAAAA,EAOF,GALCgB,EAAAU,UAAAhF,QAAAiF,eAAarE,EAAKF,OAAIpB,SAAWC,GACjC,GAAA+E,EAAAb,aAAgB,wBACd,OAAA,IAHJ,CAsBRa,QAvBM,IAAAxE,IAAAA,QASD4B,EAAA,SAAAI,GACF,IAAAA,EAAA,OAAA,EA5CC,IA8CErB,OAAKyE,SAAS,GAAA,eAAApD,EAAA8C,UAAA,GAAAC,QAAA,MAAA,KAAAnE,EAAApB,WAAAC,MAAA,KAAA,MAAAsC,KAAA/B,EAAAP,OAAAmB,EAAAnB,OAEdkB,MAAKU,GACNuD,QAAAC,IAAA9D,UAAAb,QAAAmF,SAAA,UAAA,MAAA,kBAjDD,QAJJzD,EAyDK,MAVA,CAYJ4C,EAAAb,aAAA,yBAED,OAAAtD,KAEAuB,EAAA0D,QAxEF,SAAA7F,GA0EM6E,IAAQhC,GACR3B,SAAJ,SAAA4E,GAAuBlF,KAAKyB,SAA5ByD,GAEEC,MAAY,SAAAD,GACN3E,IAAIqD,EAAJ5D,KAAgBoF,KACjBC,EAAAA,QAHP,SAAAjE,GAIMP,EAAAA,OAJN,UAIkBiD,EAAAA,MAJlBwB,MAAAlE,EAAA6D,MAAAG,MAAAA,IAKMvE,EAAAA,MAAYmC,SALlB,KAQEY,KAAWrD,SAAIqD,IAGXnD,EAAKT,KAAYsF,OAAArD,EAAAjC,KAAAsF,MAAA5D,KAAA1B,KAAAA,KAAAuF,SACnBC,EAAS,MADX9D,KAGKH,EAAA0D,MAAA1E,EAAAnB,OAEJmB,EAAAqE,mBACFtE,EAAA6C,MAAAjC,QAAA,SAAAE,GA7COA,EAAEY,QAAQwB,KAAK,0BAA0BiC,KAAK,WA+ClD,IAAJlE,EAAgBH,EAAAX,KAAAF,EAAApB,WAAAC,OAAAY,KAAAsD,aAAA,yBACd/B,EAAA0D,QACD,EAAArF,QAAAC,SAAAG,MAAAwD,KAAA,uBAAAG,KAAA,oBAAApC,EAAA0D,MAAAM,SAED1E,EAAgB,UAMXP,EAALyE,SACKzE,EAALyE,QAAArD,KAAAH,EAAAA,EAAA5B,EAAA+F,QACIpF,EAAJU,QAGAO,EAAAhB,EAAApB,WAAAC,QAAA,GAAAmC,EAAAhB,EAAApB,WAAAC,OAAAuD,SAAApC,EAAAqE,mBAAAtE,EAAAU,aApCFV,EAAAU,QAFE,OA4CFmD,EAAA,KA7CE5C,EAAO,KACAvB,MA+CH2F,MA7CQ,SAAU9E,EAAaJ,GACnC,IAAiBF,EAAMP,KAAKyB,OACxB4D,GAAU,EAAAzF,QAAAC,SAAO+F,QA4CrBT,GAAA,EAAAvF,QAAAC,SAAAC,UA1CE+F,EAAsB,SAAhBtF,EAAIqD,SAAuByB,EAAQpC,SAAWkC,EAAUlC,SAC9D6C,EAAKT,EAAQtC,QACbgD,EAAIlF,EAAYiD,cA4ClBkC,EAAAnF,EAAAmC,aAAoBwC,EAAA/E,EAAAoD,KAzClBoC,EAAIxF,EAAKuD,IA4CTJ,EAAArD,EAAAqD,UAAA,QA0BEG,OAnEAyB,EAAIQ,EAAIF,IAERN,EADE/E,EAAK,WACHA,EAAK,WAAWoD,KAAOmC,EAAIzF,EAAIwD,gBAG/B+B,EAAKE,GAITC,EAAIF,EAAIF,IACVI,EAAIJ,EAAKE,GAGXlF,EAAYqF,KAAKrC,KAAM2B,EAAGxB,IAAKiC,EAAGrC,SAAUA,IAE5C/C,EAAc,KACdJ,EAAO,KACP4E,EAAU,KACVF,EAAY,KACZU,EAAK,KAmBeC,EAAA,KAjBpBC,EAAI,KA0CFC,EAAA,KACElF,EAAAA,KACAqB,EAAAA,KACAC,EAAAA,KACA2B,MAOE1E,sBApCN,SAAAsG,EAAYlE,GAAQ0E,gBAAAnG,KAAA2F,GAAA,IAAAS,EAAAC,2BAAArG,MAAA2F,EAAAW,WAAAC,OAAAC,eAAAb,IAAAjE,KAAA1B,OAAA,OAiEnBoG,EAAA3E,QAvCGX,MAAO,UAyCXqB,UAAA,GAvCIC,iBAAkB,IAClB2B,gBAAiB,EACjBzB,QAASuB,KAAM,EAAGG,IAAK,GACvBJ,SAAU,QACV6C,YAAa,IACbrH,SACAwF,mBAAmB,EAqCrBzF,YACAE,MAAO,QACPD,MAAK2F,UAGLnF,QAAAC,QAAAqC,QAAYT,EAAL2E,EAAYxE,OAAnBH,GAMA2E,EAAAM,UAAA,KAIFN,EAAAO,WAAA,KAhCEP,EAAKjD,SAqCLiD,EAAAQ,WA7BAR,EAAK7G,WAAQsH,OAES,IAAXpF,GAAwB2E,EAAKU,OAhEtBV,uFAuElBpG,KAAKwB,eAAiBxB,KAAKyB,OAAOD,sBAC3BxB,KAAKyB,OAAOD,eA+BnBxB,KAAA+E,QAAW/E,KAAXyB,OAAAsD,eAAiBxE,KAAMkB,OAAKA,QAC5BzB,KAAA4B,OAAMmF,KAAYtF,OAAAG,cACd5B,KAAAyB,OAASG,OAELiC,eAAMrD,KAAEwG,KADN,MAEFhD,KAAAA,KACAjB,MAAAA,SA1BR/C,KAAKiH,8CAoCE,GAAAjH,KAAAkH,YAAA,OAAAlH,KACDL,KAAAA,aAAM,gCAYJkE,EAAAA,GACAG,IAAOA,EAFLhE,KAAAyB,OAGFsB,GACAjC,MAAAA,SAAON,EAAWD,IAJhBC,GAxBFqD,KAAMrD,EAAEwG,QA+BVhD,IAAgB,SAAR1B,EAAAA,SAAQ9B,EAAA2G,QAAA3G,EAAA4G,MACdrE,MAAIxC,EAAI+B,MACRxB,MAAIP,EAAI+B,QAGV3C,MAAM,EA7BNa,EAAEwD,KAAO,EAgCPzD,EAAA+B,SADF/B,EAGQ+B,OAAAuB,OAAArD,EAAAqD,MAAAtD,EAAA+B,OAAAuB,MACFtD,EAAJ+B,OAAA0B,MAAAxD,EAAAwD,KAAAzD,EAAA+B,OAAA0B,MAEDrE,EAAAC,QAAAC,QAAAqC,QAAA,EAAA1B,EAAAb,GA/CP,IAkDE0H,OAAAA,EAlDF,QAsBQ7G,EAAI,OAIR8G,OAAU,SAAU9G,EAAGb,GAgCvBP,GACFmI,KAAAA,EAAAA,KACEnI,IAAJoB,EAAYpB,IA9BJ2D,MAAOvC,EAAEuC,OAASxC,EAAIwC,MAgC1BpD,MAAI6H,EAAR1G,OAAgBP,EAAAO,OAGZ2B,EAAOvB,SACDE,EAAEhC,OAASgC,OAAEhC,EAAMuD,MAARpC,EAAoB+B,OAAAuB,MAC/BzE,EAAAA,OAAQmI,MAAAA,EAAAA,KAAgBnI,EAAAA,OAA1B4E,MAGAyD,EAAAA,QAAAA,QAASrG,QAAT,EAAAZ,EAAAb,GAEH,IACD,OAAO8H,EADN,QAIJjH,EAAA,QASE,IAFuCA,EAErCJ,OAFqCJ,MAjC1B,SAAUc,GAgCpBA,IAAK4G,EAAAA,MAAAA,GA1BXL,EA8BC1H,EAAAoH,OAAA,IAAAvG,EAAAwG,QAAA,SAAA,SAAAtF,KAAA1B,KAAAQ,EAAAb,IA9BemB,OAiChB,IAAA1B,KAAAuI,OAAApH,EAAAnB,OACDmI,OAAAA,EA2BI,OAzDH5H,EAAIP,MAAQA,EAERO,EAAI6H,SACND,EAAgB,SAAU9E,GACxB,IAAIgF,KAoCN,OAnCEhF,EAAOvB,QAAQ,SAAAE,GACTA,EAAEhC,OAASgC,EAAEhC,MAAMuD,OAAS,IAC9BvB,EAAEhC,MAAQmI,EAAcnG,EAAEhC,QAExBO,EAAI6H,OAAO9F,KAAKN,IA6BtBd,EAAAA,KAAJc,KAEEqG,GAEI5D,EAAAA,MAAMrD,EADJ+G,EAAAnI,IAIF0B,EAAAA,SACAsD,eAAAA,KAAaA,MAAAA,GALX/D,OAAJqB,KAAA1B,KAAAL,EAAAP,EAAA,GAnBEY,KAAK0H,uBAAuBE,aAAa5H,KAAK0H,uBA4BhD1H,KAAA0H,sBAAIG,WAAA,WACFrI,eAAAkC,KAAA1B,MAAA,EAAAL,IACDS,KAFDJ,MAGQ,MAGPQ,EAAA,KACFR,oCAID8H,EAIEvF,GA3BJ,IAAIjC,EAAON,KAAMO,EAAMP,KAAKyB,OA6B1BsF,GA3BAO,OAAU,SAAU9G,EAAGb,GA6BrBa,GACEqD,KAAIkE,EAAAA,KACJ/D,IAAAxD,EAAAwD,IACDjB,MAAAvC,EAAAuC,OAAAxC,EAAAwC,MA3BCjC,MAAON,EAAEM,OAASP,EAAIO,MA6BxBR,UAAKsG,EAAQzC,WAAY5D,EAAA6D,WAEzB9D,EAAAA,QAAAA,QAAKsG,QAAQoB,EAAbrI,EAA2B4D,GAE3BvB,IACAA,OAAAA,EADAA,QAIExB,EAAA,KACAb,EAAIY,QAKNF,EAAA,SAA0BjB,EAAMmE,EAAOhD,GACvCf,IAAAA,GAAAA,EAAAA,QAAAA,SAAekC,GAChBY,EAAAN,EAAAM,SA3BCW,EAASjB,EAAQ8B,cA6BnBK,EAAAA,OAAAA,EAAAb,aAAA,yBACA3D,EAAA,SAAAY,EAAAqD,UAAA,EAAAhE,QAAAC,SAAAC,UAAAyC,YAAA,EAEAD,GAAAA,EAAAA,OAAA/B,EAAAnB,MAAAmE,GAAAhD,EAAApB,WAAAC,QAAAmB,EAAAnB,MAAAmE,GAAAhD,EAAApB,WAAAC,OAAAuD,OAAA,CAEAY,GAAAA,EAAQqD,QAARoB,aAAAzE,EArCF,MAsCc,SAAZhB,GAAAjC,EAAAU,SAtCF,EAyCEV,EACEgC,QAASN,OAAAA,KAAQM,0BADnBmB,YAAA,SAAAnD,EAEE2C,QAASjB,QAAQ8B,EAFnBxD,EAGEiD,QAAQF,YAAcC,EAExBtB,EAAQ5C,KAAJ,wBAAgCmB,QAClCyB,EAAI1B,SAAKyE,SAERxE,EAAA+B,SACF/B,EAAA+B,OAAAuB,OAAAvB,EAAAuB,MAAAtD,EAAA+B,OAAAuB,MAVHtD,EAAA+B,OAAA0B,MAAA1B,EAAA0B,KAAAzD,EAAA+B,OAAA0B,MAaArE,EACEP,EAAAA,OADFsC,KAAA1B,MAAA6D,KAAAvB,EAAAuB,KAAAG,IAAA1B,EAAA0B,IAAAf,EAAAV,GAAA5C,GAzBIU,OAAMqB,KAAKpB,EAAMX,EAAKY,EAAInB,MAAMmE,GAAOhD,EAAIpB,WAAWC,OAAQ,EAAG,QAAU+E,EAAOb,aAAa,yBA6BnG9D,eAAIkC,KAAepB,GAAA,MAGnBG,EAAA,KACEM,EAAAA,KACAoB,EAAAA,KACAC,EAAAA,KAHSa,EAAX,KAvBEM,EAAQ,KA6BVnE,EAAM8B,MAEFE,EAAe,SAAf+C,EAAAxE,EAAAoI,GACA,IAAA/F,GAAA,EAAApC,QAAAC,SAAYsE,GAGR1C,GAFAO,EAAWZ,SACXG,EADuBuC,cAEvBrC,OAAQlB,EAFe+C,aAAA,0BAGlB3D,SAAAA,EAAAA,WAAAA,EAAAA,QAAAA,SAAAA,UAAAA,aAHkBY,EAAzBnB,OAAAmB,EAAAnB,MAAAmE,GAAAhD,EAAApB,WAAAC,QAAA,GAAAmB,EAAAnB,MAAAmE,GAAAhD,EAAApB,WAAAC,OAAAuD,QAKDrC,EAAAyE,SARHzE,EAUKyE,QAAArD,KAAAnB,EAAAnB,MAAAmE,GAAAhD,EAAAnB,MAAAmE,KAKP9C,KA5BErB,EAAQmB,EAAInB,MA8BdyB,OAAAA,EA+DgC,YA7DjB,IAAV+F,IAAUjH,MAEbsI,EAAAA,MAAQtI,EAAAmB,OAAAP,EAAAO,MAFKL,EAAfF,KAIAD,MAAKsG,QAAAA,QAAQzC,UAAYtD,EAAAA,OA5BvBsB,UAAWxC,EAAIwC,WAAa5B,EAAI4B,UA8BlCC,iBAAAzC,EAAAyC,kBAAA7B,EAAA6B,kBAGEhD,EAAA8B,QAAIiD,SAAAA,GACF/C,EAAAD,MAAIgD,EAAOb,QACTlC,EAAA,YAAA,EACDA,EAAAD,OAHHC,EAAA,SAAAA,EAAAD,KAAAO,MAKIyC,KAAJ/C,EACE8G,OAAAA,EACAC,IAAAA,MAKJ7H,EAAAA,YAAa6D,IAIP1D,EAAAF,EAAApB,WAAAC,OAAAA,EAEHyB,GAJD,EAAAjB,QAAAC,SAAA+C,cAAA/C,QAAAgD,OAAA5D,KAAAK,QAAAoC,KAAA1B,KAAAO,EAAApB,YAAAsB,IAvBFH,EAAKsG,SA8BHzC,QAAAA,EAAAA,QAAAA,SAAA2D,GACDG,QAVD,GAYAH,EAAAA,QAAA3D,OAAAhD,KAAAN,GAGAzB,EAAAA,QAAQ+E,OAARjE,GAAA,QAAA,SAAAM,GACAK,IAAAA,EAAAA,OAAcb,KA5BZ,IAAImE,EAASU,UAAAhF,QAAEiF,eAAetE,EAAE2D,OAAQ,SAAUA,GA8BpD,GAAAA,EAAAb,aAAA,wBACD,OAAA,IA1BOa,IACF+D,EAAgB/D,GAChBgE,EAAehE,EAAQxE,EAAK,UAG9BwE,EAAS,OA4BX7D,EAAAsG,QAAWzC,OAAXjE,GAAA,YAAA,SAAAM,GAAA,IAAiBD,EAAMqG,QAAKnF,OAA5B,OAAA,EACA,IAAInB,EAAKsG,UAAAA,QAAAA,eAAgBA,EAALzC,OAApB,SAAyCA,GACvC7D,GAAAA,EAAKsG,aAAL,wBACAtG,OAAKsG,IAtBDzC,GAAQgE,EAAehE,EAAQxE,EAAK,aAExCwE,EAAS,OA4BV2D,EAFD,KAGAnI,EAAA,KAxBAc,EAAO,KA0BPe,EAAAA,KACElB,EAD8B,KAAhCN,qCAQF,IAAAM,EAAAN,KAAAA,KAAAyB,OAHE,OAlBInB,EAAKsG,SAAWtG,EAAKsG,QAAQzC,SAC/B7D,EAAKsG,QAAQzC,OAAOX,KAAK,0BAA0BC,YAAY,SAC/DnD,EAAKsG,QAAQqB,QAAS,EACtB3H,EAAKsG,QAAQoB,YAAc,MAyB7BxI,eAAM4I,KAAcpI,MAAA,GAElBA,KAAAmD,MAAOkF,QAAK,SAAAjH,GACVA,EAAAY,QAAI5C,WAGAY,KAAAmD,SAED3B,eAAAE,KAAA1B,KAAA,MACFM,KAAAN,KACDT,MAAA,UApBGS,6CASP,IAAIsI,MACgB,SAAdF,EAAwBhJ,GAE5B,IADA,IAAIiJ,EAAIjJ,EAAMuD,OACP0F,KACDjJ,EAAMiJ,GAAGpD,OAAS7F,EAAMiJ,GAAGpD,MAAMM,UAC9B+C,EAqBA3C,EArBiB0C,GAAGpD,MAAMG,OAEzBP,UAAAhF,QAAE0I,SAASD,EAAWlJ,EAAMiJ,GAAGpD,MAAMG,SAAQkD,EAAWlJ,EAAMiJ,GAAGpD,MAAMG,OAASkD,EAAWlJ,EAAMiJ,GAAGpD,MAAMG,QAC9GkD,EAAWlJ,EAAMiJ,GAAGpD,MAAMG,MAAMhC,KAAKhE,EAAMiJ,GAAGpD,MAAMC,QAHhBoD,EAAWlJ,EAAMiJ,GAAGpD,MAAMG,MAAQhG,EAAMiJ,GAAGpD,MAAMC,OAMrF9F,EAAMiJ,GAAGjJ,OAASA,EAAMiJ,GAAGjJ,MAAMuD,OAAS,GAAGyF,EAAYhJ,EAAMiJ,GAAGjJ,OAI1EgJ,CAAYpI,KAAKyB,OAAOrC,OAExB,IACE,OAAOkJ,EADT,QAIEA,EAAa,+BAKJ3C","file":"AX6UIMenu.js","sourcesContent":["import jQuery from \"jqmin\";\nimport AX6UICore from \"./AX6UICore.js\";\nimport info from \"./AX6Info\";\nimport U from \"./AX6Util\";\nimport mustache from \"./AX6Mustache\";\n/* ~~~~~~~~~~~~~~~~~~ end of import  ~~~~~~~~~~~~~~~~~~~~ */\n\nlet tmpl = {\n  menu(columnKeys) {\n    return `\n        <div data-ax6ui-menu=\"\" class=\"{{theme}}\" {{#width}}style=\"width:{{width}}px;\"{{/width}}>\n            <div class=\"ax-menu-body\">\n                {{#${columnKeys.items}}}\n                    {{^@isMenu}}\n                        {{#divide}}\n                        <div class=\"ax-menu-item-divide\" data-menu-item-index=\"{{@i}}\"></div>\n                        {{/divide}}\n                        {{#html}}\n                        <div class=\"ax-menu-item-html\" data-menu-item-index=\"{{@i}}\">{{{@html}}}</div>\n                        {{/html}}\n                    {{/@isMenu}}\n                    {{#@isMenu}}\n                    <div class=\"ax-menu-item\" data-menu-item-depth=\"{{@depth}}\" data-menu-item-index=\"{{@i}}\" data-menu-item-path=\"{{@path}}.{{@i}}\">\n                        <span class=\"ax-menu-item-cell ax-menu-item-checkbox\">\n                            {{#check}}\n                            <span class=\"item-checkbox-wrap useCheckBox\" {{#checked}}data-item-checked=\"true\"{{/checked}}></span>\n                            {{/check}}\n                            {{^check}}\n                            <span class=\"item-checkbox-wrap\"></span>\n                            {{/check}}\n                        </span>\n                        {{#icon}}\n                        <span class=\"ax-menu-item-cell ax-menu-item-icon\" style=\"width:{{cfg.iconWidth}}px;\">{{{.}}}</span>\n                        {{/icon}}\n                        <span class=\"ax-menu-item-cell ax-menu-item-label\">{{{${columnKeys.label}}}}</span>\n                        {{#accelerator}}\n                        <span class=\"ax-menu-item-cell ax-menu-item-accelerator\" style=\"width:{{cfg.acceleratorWidth}}px;\"><span class=\"item-wrap\">{{.}}</span></span>\n                        {{/accelerator}}\n                        {{#@hasChild}}\n                        <span class=\"ax-menu-item-cell ax-menu-item-handle\">{{{cfg.icons.arrow}}}</span>\n                        {{/@hasChild}}\n                    </div>\n                    {{/@isMenu}}\n\n                {{/${columnKeys.items}}}\n            </div>\n            <div class=\"ax-menu-arrow\"></div>\n        </div>\n        `;\n  },\n  menubar(columnKeys) {\n    return `\n        <div data-ax6ui-menubar=\"\" class=\"{{theme}}\">\n            <div class=\"ax-menu-body\">\n                {{#${columnKeys.items}}}\n                    {{^@isMenu}}\n                        {{#divide}}\n                        <div class=\"ax-menu-item-divide\" data-menu-item-index=\"{{@i}}\"></div>\n                        {{/divide}}\n                        {{#html}}\n                        <div class=\"ax-menu-item-html\" data-menu-item-index=\"{{@i}}\">{{{@html}}}</div>\n                        {{/html}}\n                    {{/@isMenu}}\n                    {{#@isMenu}}\n                    <div class=\"ax-menu-item\" data-menu-item-index=\"{{@i}}\">\n                        {{#icon}}\n                        <span class=\"ax-menu-item-cell ax-menu-item-icon\" style=\"width:{{cfg.iconWidth}}px;\">{{{.}}}</span>\n                        {{/icon}}\n                        <span class=\"ax-menu-item-cell ax-menu-item-label\">{{{${columnKeys.label}}}}</span>\n                    </div>\n                    {{/@isMenu}}\n                {{/${columnKeys.items}}}\n            </div>\n        </div>\n        `;\n  }\n};\n\nconst appEventAttach = function (active, opt) {\n  if (active) {\n    jQuery(document.body)\n      .off(\"click.ax5menu-\" + this.instanceId)\n      .on(\"click.ax5menu-\" + this.instanceId, clickItem.bind(this, opt));\n\n    jQuery(window)\n      .off(\"keydown.ax5menu-\" + this.instanceId)\n      .on(\"keydown.ax5menu-\" + this.instanceId, function (e) {\n        if (e.which == info.eventKeys.ESC) {\n          self.close();\n        }\n      })\n      .off(\"resize.ax5menu-\" + this.instanceId)\n      .on(\"resize.ax5menu-\" + this.instanceId, function (e) {\n        self.close();\n      });\n  }\n  else {\n    jQuery(document.body).off(\"click.ax5menu-\" + this.instanceId);\n    jQuery(window).off(\"keydown.ax5menu-\" + this.instanceId);\n    jQuery(window).off(\"resize.ax5menu-\" + this.instanceId);\n  }\n};\nconst onStateChanged = function (opts, that) {\n  if (opts && opts.onStateChanged) {\n    opts.onStateChanged.call(that, that);\n  }\n  else if (this.onStateChanged) {\n    this.onStateChanged.call(that, that);\n  }\n\n  this.state = that.state;\n  opts = null;\n  that = null;\n  return true;\n};\nconst onLoad = function (that) {\n  if (this.onLoad) {\n    this.onLoad.call(that, that);\n  }\n\n  that = null;\n  return true;\n};\nconst popup = function (opt, items, depth, path) {\n  let self = this, cfg = this.config;\n  let data = opt,\n    $activeMenu,\n    removed;\n\n  data.theme = opt.theme || cfg.theme;\n  data.cfg = {\n    icons: jQuery.extend({}, cfg.icons),\n    iconWidth: opt.iconWidth || cfg.iconWidth,\n    acceleratorWidth: opt.acceleratorWidth || cfg.acceleratorWidth\n  };\n\n  items.forEach(n => {\n    if (n.html || n.divide) {\n      n['@isMenu'] = false;\n      if (n.html) {\n        n['@html'] = n.html.call({\n          item: n,\n          config: cfg,\n          opt: opt\n        });\n      }\n    }\n    else {\n      n['@isMenu'] = true;\n    }\n  });\n\n  data[cfg.columnKeys.items] = items;\n  data['@depth'] = depth;\n  data['@path'] = path || \"root\";\n  data['@hasChild'] = function () {\n    return this[cfg.columnKeys.items] && this[cfg.columnKeys.items].length > 0;\n  };\n  $activeMenu = jQuery(mustache.render(tmpl.menu.call(this, cfg.columnKeys), data));\n  jQuery(document.body).append($activeMenu);\n\n  // remove queue\n  removed = this.queue.splice(depth);\n  removed.forEach(n => {\n    n.$target.remove();\n  });\n\n  this.queue.push({\n    '$target': $activeMenu,\n    'data': jQuery.extend({}, data)\n  });\n\n  $activeMenu.on('mouseover', '[data-menu-item-index]', function () {\n    let depth = this.getAttribute(\"data-menu-item-depth\"),\n      index = this.getAttribute(\"data-menu-item-index\"),\n      path = this.getAttribute(\"data-menu-item-path\"),\n      $this,\n      offset,\n      scrollTop,\n      childOpt,\n      _items,\n      _activeMenu;\n\n    if (depth != null && typeof depth != \"undefined\") {\n      _items = self.queue[depth].data[cfg.columnKeys.items][index][cfg.columnKeys.items];\n      _activeMenu = self.queue[depth].$target;\n      _activeMenu.find('[data-menu-item-index]').removeClass(\"hover\");\n      jQuery(this).addClass(\"hover\");\n\n      if (_activeMenu.attr(\"data-selected-menu-item-index\") != index) {\n        _activeMenu.attr(\"data-selected-menu-item-index\", index);\n\n        if (_items && _items.length > 0) {\n\n          $this = jQuery(this);\n          offset = $this.offset();\n          scrollTop = (cfg.position == \"fixed\" ? jQuery(document).scrollTop() : 0);\n          childOpt = {\n            '@parent': {\n              left: offset.left,\n              top: offset.top,\n              width: $this.outerWidth(),\n              height: $this.outerHeight()\n            },\n            left: offset.left + $this.outerWidth() - cfg.menuBodyPadding,\n            top: offset.top - cfg.menuBodyPadding - 1 - scrollTop\n          };\n\n          childOpt = jQuery.extend(true, opt, childOpt);\n          popup.call(self, childOpt, _items, (Number(depth) + 1), path);\n        }\n        else {\n          self.queue.splice(Number(depth) + 1).forEach(function (n) {\n            n.$target.remove();\n          });\n        }\n      }\n    }\n\n    depth = null;\n    index = null;\n    path = null;\n    $this = null;\n    offset = null;\n    scrollTop = null;\n    childOpt = null;\n    _items = null;\n    _activeMenu = null;\n  });\n\n  // mouse out\n  $activeMenu.on('mouseout', '[data-menu-item-index]', function () {\n    let depth = this.getAttribute(\"data-menu-item-depth\"),\n      index = this.getAttribute(\"data-menu-item-index\"),\n      path = this.getAttribute(\"data-menu-item-path\"),\n      _items;\n\n    if (path) {\n      _items = self.queue[depth].data[cfg.columnKeys.items][index][cfg.columnKeys.items];\n    }\n    if (_items && _items.length > 0) {\n\n    } else {\n      jQuery(this).removeClass(\"hover\");\n    }\n  });\n\n  // is Root\n  if (depth == 0) {\n    if (data.direction) $activeMenu.addClass(\"direction-\" + data.direction);\n    onStateChanged.call(this, null, {\n      self: this,\n      items: items,\n      parent: (function (path) {\n        if (!path) return false;\n        try {\n          return (Function(\"\", \"return this.config.items[\" + path.substring(5).replace(/\\./g, '].items[') + \"];\")).call(self);\n        }\n        catch (e) {\n\n        }\n      })(data['@path']),\n      state: \"popup\"\n    });\n  }\n\n  align.call(this, $activeMenu, data);\n  onLoad.call(this, {\n    self: this,\n    items: items,\n    element: $activeMenu.get(0)\n  });\n\n  data = null;\n  $activeMenu = null;\n  removed = null;\n  opt = null;\n  items = null;\n  depth = null;\n  path = null;\n\n  return this;\n};\nconst clickItem = function (opt, e) {\n  let self = this, cfg = this.config;\n  let target, item;\n\n  target = U.findParentNode(e.target, function (target) {\n    if (target.getAttribute(\"data-menu-item-index\")) {\n      return true;\n    }\n  });\n  if (target) {\n    if (typeof opt === \"undefined\") opt = {};\n    item = (function (path) {\n      if (!path) return false;\n      try {\n        return (Function(\"\", \"return this[\" + path.substring(5).replace(/\\./g, '].' + cfg.columnKeys.items + '[') + \"];\")).call(opt.items || cfg.items);\n      }\n      catch (e) {\n        console.log(info.getError(\"ax5menu\", \"501\", \"menuItemClick\"));\n      }\n      finally {\n        item = null;\n      }\n    })(target.getAttribute(\"data-menu-item-path\"));\n\n    if (!item) return this;\n\n    if (item.check) {\n      (function (items) {\n        let setValue = {\n          'checkbox': function (value) {\n            this.checked = !value;\n          },\n          'radio': function (value) {\n            var name = this.name;\n            items.forEach(function (n) {\n              if (n.check && n.check.type === 'radio' && n.check.name == name) {\n                n.check.checked = false;\n              }\n            });\n            this.checked = !value;\n          }\n        };\n        if (setValue[this.type]) setValue[this.type].call(this, this.checked);\n        setValue = null;\n      }).call(item.check, cfg.items);\n\n      if (!cfg.itemClickAndClose) {\n        self.queue.forEach(n => {\n          n.$target.find('[data-menu-item-index]').each(function () {\n            let item = n.data[cfg.columnKeys.items][this.getAttribute(\"data-menu-item-index\")];\n            if (item.check) {\n              jQuery(this).find(\".item-checkbox-wrap\").attr(\"data-item-checked\", item.check.checked);\n            }\n            item = null;\n          });\n        });\n      }\n    }\n\n    if (self.onClick) {\n      if (self.onClick.call(item, item, opt.param)) {\n        self.close();\n      }\n    }\n    if ((!item[cfg.columnKeys.items] || item[cfg.columnKeys.items].length == 0) && cfg.itemClickAndClose) self.close();\n  }\n  else {\n    self.close();\n  }\n\n  target = null;\n  item = null;\n  return this;\n};\nconst align = function ($activeMenu, data) {\n  let self = this, cfg = this.config;\n  let $window = jQuery(window),\n    $document = jQuery(document),\n    wh = (cfg.position == \"fixed\") ? $window.height() : $document.height(),\n    ww = $window.width(),\n    h = $activeMenu.outerHeight(),\n    w = $activeMenu.outerWidth(),\n    l = data.left,\n    t = data.top,\n    position = cfg.position || \"fixed\";\n\n  if (l + w > ww) {\n    if (data['@parent']) {\n      l = data['@parent'].left - w + cfg.menuBodyPadding;\n    }\n    else {\n      l = ww - w;\n    }\n  }\n\n  if (t + h > wh) {\n    t = wh - h;\n  }\n\n  $activeMenu.css({left: l, top: t, position: position});\n\n  $activeMenu = null;\n  data = null;\n  $window = null;\n  $document = null;\n  wh = null;\n  ww = null;\n  h = null;\n  w = null;\n  l = null;\n  t = null;\n  position = null;\n  return this;\n};\n/* ~~~~~~~~~~~~~~~~~~ end of private  ~~~~~~~~~~~~~~~~~~~~ */\n\n/**\n * @class\n */\nclass AX6UIMenu extends AX6UICore {\n  /**\n   * @constructor\n   * @param config\n   */\n  constructor(config) {\n    super();\n\n    /**\n     * @member {JSON}\n     * @param config\n     * @param [config.theme]\n     * @param [config.iconWidth=22]\n     * @param [config.acceleratorWidth=100]\n     * @param [config.menuBodyPadding=5]\n     * @param [config.offset]\n     * @param [config.offset.left=0]\n     * @param [config.offset.top=0]\n     * @param [config.position=\"fixed\"]\n     * @param [config.animateTime=250]\n     * @param [config.items]\n     * @param [config.itemClickAndClose=true]\n     * @param [config.columnKeys]\n     * @param [config.columnKeys.label='label']\n     * @param [config.columnKeys.items='items']\n     * @param [config.onStateChanged]\n     * @param [config.onClick]\n     * @param [config.onLoad]\n     *\n     */\n    this.config = {\n      theme: \"default\",\n      iconWidth: 22,\n      acceleratorWidth: 100,\n      menuBodyPadding: 5,\n      offset: {left: 0, top: 0},\n      position: \"fixed\",\n      animateTime: 250,\n      items: [],\n      itemClickAndClose: true,\n      columnKeys: {\n        label: 'label',\n        items: 'items'\n      }\n    };\n    jQuery.extend(true, this.config, config);\n\n    // 멤버 변수 초기화\n    /**\n     * @member\n     */\n    this.openTimer = null;\n    /**\n     * @member\n     */\n    this.closeTimer = null;\n    /**\n     * @member {Array}\n     */\n    this.queue = [];\n    /**\n     * @member {Object}\n     */\n    this.menuBar = {};\n    /**\n     * @member\n     */\n    this.state = undefined;\n\n    if (typeof config !== \"undefined\") this.init();\n  }\n\n  /**\n   * @method\n   */\n  init() {\n    this.onStateChanged = this.config.onStateChanged;\n    delete this.config.onStateChanged;\n    this.onClick = this.config.onClick;\n    delete this.config.onClick;\n    this.onLoad = this.config.onLoad;\n    delete this.config.onLoad;\n\n    onStateChanged.call(this, null, {\n      self: this,\n      state: \"init\"\n    });\n    // init 호출 여부\n    this.initOnce();\n  }\n\n  /**\n   * @method\n   */\n  initOnce() {\n    if (this.initialized) return this;\n    this.initialized = true;\n  }\n\n  /**\n   * @method\n   * @param {Event|Object} e - Event or Object\n   * @param {Object} [opt]\n   * @param {String} [opt.theme]\n   * @param {Function} [opt.filter]\n   * @returns {AX6UIMenu}\n   */\n  popup(e, opt) {\n    let self = this, cfg = this.config;\n    const getOption = {\n        'event': function (e, opt) {\n          e = {\n            left: e.clientX,\n            top: (cfg.position == \"fixed\") ? e.clientY : e.pageY,\n            width: cfg.width,\n            theme: cfg.theme\n          };\n\n          e.left -= 5;\n          e.top -= 5;\n\n          if (cfg.offset) {\n            if (cfg.offset.left) e.left += cfg.offset.left;\n            if (cfg.offset.top) e.top += cfg.offset.top;\n          }\n          opt = jQuery.extend(true, e, opt);\n\n          try {\n            return opt;\n          }\n          finally {\n            e = null;\n            //opt = null;\n          }\n        },\n        'object': function (e, opt) {\n          e = {\n            left: e.left,\n            top: e.top,\n            width: e.width || cfg.width,\n            theme: e.theme || cfg.theme\n          };\n\n          if (cfg.offset) {\n            if (cfg.offset.left) e.left += cfg.offset.left;\n            if (cfg.offset.top) e.top += cfg.offset.top;\n          }\n\n          opt = jQuery.extend(true, e, opt);\n\n          try {\n            return opt;\n          }\n          finally {\n            e = null;\n            //opt = null;\n          }\n        }\n      },\n      updateTheme = function (theme) {\n        if (theme) cfg.theme = theme;\n      };\n\n    if (!e) return this;\n    opt = getOption[((typeof e.clientX == \"undefined\") ? \"object\" : \"event\")].call(this, e, opt);\n    updateTheme(opt.theme);\n\n    let items = [].concat(cfg.items),\n      filteringItem;\n    opt.items = items;\n\n    if (opt.filter) {\n      filteringItem = function (_items) {\n        let arr = [];\n        _items.forEach(n => {\n          if (n.items && n.items.length > 0) {\n            n.items = filteringItem(n.items);\n          }\n          if (opt.filter.call(n)) {\n            arr.push(n);\n          }\n        });\n        return arr;\n      };\n      opt.items = items = filteringItem(items);\n    }\n\n    if (items.length) {\n      appEventAttach.call(this, false);\n      popup.call(this, opt, items, 0); // 0 is seq of queue\n\n      if (this.popupEventAttachTimer) clearTimeout(this.popupEventAttachTimer);\n      this.popupEventAttachTimer = setTimeout((function () {\n        appEventAttach.call(this, true, opt); // 이벤트 연결\n      }).bind(this), 500);\n    }\n\n    e = null;\n    return this;\n  }\n\n  /**\n   * @method\n   * @param {Element|jQueryObject} el\n   * @returns {AX6UIMenu}\n   */\n  attach(el, opt) {\n    let self = this, cfg = this.config;\n    const getOption = {\n      'object': function (e, opt) {\n        e = {\n          left: e.left,\n          top: e.top,\n          width: e.width || cfg.width,\n          theme: e.theme || cfg.theme,\n          direction: e.direction || cfg.direction\n        };\n        opt = jQuery.extend(true, opt, e);\n\n        try {\n          return opt;\n        }\n        finally {\n          e = null;\n          opt = null;\n        }\n      }\n    };\n\n    const popUpChildMenu = function (target, opt, eType) {\n      let $target = jQuery(target),\n        offset = $target.offset(),\n        height = $target.outerHeight(),\n        index = Number(target.getAttribute(\"data-menu-item-index\")),\n        scrollTop = (cfg.position == \"fixed\") ? jQuery(document).scrollTop() : 0;\n\n      if (cfg.items && cfg.items[index][cfg.columnKeys.items] && cfg.items[index][cfg.columnKeys.items].length) {\n\n        if (self.menuBar.openedIndex == index) {\n          if (eType == \"click\") self.close();\n          return false;\n        }\n\n        self.menuBar.target.find('[data-menu-item-index]').removeClass(\"hover\");\n        self.menuBar.opened = true;\n        self.menuBar.openedIndex = index;\n\n        $target.attr(\"data-menu-item-opened\", \"true\");\n        $target.addClass(\"hover\");\n\n        if (cfg.offset) {\n          if (cfg.offset.left) offset.left += cfg.offset.left;\n          if (cfg.offset.top) offset.top += cfg.offset.top;\n        }\n\n        opt = getOption[\"object\"].call(this, {left: offset.left, top: offset.top + height - scrollTop}, opt);\n\n        popup.call(self, opt, cfg.items[index][cfg.columnKeys.items], 0, 'root.' + target.getAttribute(\"data-menu-item-index\")); // 0 is seq of queue\n        appEventAttach.call(self, true, {}); // 이벤트 연결\n      }\n\n      target = null;\n      opt = null;\n      $target = null;\n      offset = null;\n      height = null;\n      index = null;\n      scrollTop = null;\n    };\n    const clickParentMenu = function (target, opt, eType) {\n      let $target = jQuery(target),\n        offset = $target.offset(),\n        height = $target.outerHeight(),\n        index = Number(target.getAttribute(\"data-menu-item-index\")),\n        scrollTop = (cfg.position == \"fixed\") ? jQuery(document).scrollTop() : 0;\n      if (cfg.items && (!cfg.items[index][cfg.columnKeys.items] || cfg.items[index][cfg.columnKeys.items].length == 0)) {\n        if (self.onClick) {\n          self.onClick.call(cfg.items[index], cfg.items[index]);\n        }\n      }\n    };\n\n    let data = {},\n      items = cfg.items,\n      $activeMenu;\n\n    if (typeof opt === \"undefined\") opt = {};\n\n    data.theme = opt.theme || cfg.theme;\n    data.cfg = {\n      icons: jQuery.extend({}, cfg.icons),\n      iconWidth: opt.iconWidth || cfg.iconWidth,\n      acceleratorWidth: opt.acceleratorWidth || cfg.acceleratorWidth\n    };\n\n    items.forEach(n => {\n      if (n.html || n.divide) {\n        n['@isMenu'] = false;\n        if (n.html) {\n          n['@html'] = n.html.call({\n            item: n,\n            config: cfg,\n            opt: opt\n          });\n        }\n      }\n      else {\n        n['@isMenu'] = true;\n      }\n    });\n\n    data[cfg.columnKeys.items] = items;\n\n    $activeMenu = jQuery(mustache.render(tmpl.menubar.call(this, cfg.columnKeys), data));\n\n    self.menuBar = {\n      target: jQuery(el),\n      opened: false\n    };\n    self.menuBar.target.html($activeMenu);\n\n    // click, mouseover\n    self.menuBar.target.on(\"click\", function (e) {\n      if (!e) return this;\n      let target = U.findParentNode(e.target, function (target) {\n        if (target.getAttribute(\"data-menu-item-index\")) {\n          return true;\n        }\n      });\n      if (target) {\n        clickParentMenu(target, opt, \"click\");\n        popUpChildMenu(target, opt, \"click\");\n      }\n\n      target = null;\n    });\n    self.menuBar.target.on(\"mouseover\", function (e) {\n      if (!self.menuBar.opened) return false;\n      let target = U.findParentNode(e.target, function (target) {\n        if (target.getAttribute(\"data-menu-item-index\")) {\n          return true;\n        }\n      });\n      if (target) popUpChildMenu(target, opt, \"mouseover\");\n\n      target = null;\n    });\n\n    el = null;\n    opt = null;\n    data = null;\n    items = null;\n    $activeMenu = null;\n\n    return this;\n  }\n\n  /**\n   * @method\n   * @returns {AX6UIMenu}\n   */\n  close() {\n    let self = this, cfg = this.config;\n    if (self.menuBar && self.menuBar.target) {\n      self.menuBar.target.find('[data-menu-item-index]').removeClass(\"hover\");\n      self.menuBar.opened = false;\n      self.menuBar.openedIndex = null;\n    }\n\n    appEventAttach.call(this, false); // 이벤트 제거\n\n    this.queue.forEach(n => {\n      n.$target.remove();\n    });\n    this.queue = [];\n\n    onStateChanged.call(this, null, {\n      self: this,\n      state: \"close\"\n    });\n\n    return this;\n  };\n\n  /**\n   * @method\n   * @returns {Object} statusCheckItem\n   */\n  getCheckValue() {\n\n    let checkItems = {};\n    const collectItem = function (items) {\n      let i = items.length;\n      while (i--) {\n        if (items[i].check && items[i].check.checked) {\n          if (!checkItems[items[i].check.name]) checkItems[items[i].check.name] = items[i].check.value;\n          else {\n            if (U.isString(checkItems[items[i].check.name])) checkItems[items[i].check.name] = [checkItems[items[i].check.name]];\n            checkItems[items[i].check.name].push(items[i].check.value);\n          }\n        }\n        if (items[i].items && items[i].items.length > 0) collectItem(items[i].items);\n      }\n    };\n\n    collectItem(this.config.items);\n\n    try {\n      return checkItems;\n    }\n    finally {\n      checkItems = null;\n    }\n  }\n}\n\nexport default AX6UIMenu;"]}