10 __coverage__['build/event-synthetic/event-synthetic.js'] = {"path":"build/event-synthetic/event-synthetic.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0,0],"10":[0,0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":27},"end":{"line":1,"column":46}}},"2":{"name":"(anonymous_2)","line":17,"loc":{"start":{"line":17,"column":15},"end":{"line":17,"column":27}}},"3":{"name":"Notifier","line":36,"loc":{"start":{"line":36,"column":0},"end":{"line":36,"column":38}}},"4":{"name":"(anonymous_4)","line":65,"loc":{"start":{"line":65,"column":26},"end":{"line":65,"column":39}}},"5":{"name":"SynthRegistry","line":131,"loc":{"start":{"line":131,"column":0},"end":{"line":131,"column":38}}},"6":{"name":"(anonymous_6)","line":154,"loc":{"start":{"line":154,"column":14},"end":{"line":154,"column":32}}},"7":{"name":"(anonymous_7)","line":166,"loc":{"start":{"line":166,"column":16},"end":{"line":166,"column":31}}},"8":{"name":"(anonymous_8)","line":199,"loc":{"start":{"line":199,"column":16},"end":{"line":199,"column":28}}},"9":{"name":"SyntheticEvent","line":223,"loc":{"start":{"line":223,"column":0},"end":{"line":223,"column":26}}},"10":{"name":"(anonymous_10)","line":246,"loc":{"start":{"line":246,"column":17},"end":{"line":246,"column":47}}},"11":{"name":"(anonymous_11)","line":273,"loc":{"start":{"line":273,"column":16},"end":{"line":273,"column":31}}},"12":{"name":"(anonymous_12)","line":302,"loc":{"start":{"line":302,"column":15},"end":{"line":302,"column":27}}},"13":{"name":"(anonymous_13)","line":457,"loc":{"start":{"line":457,"column":13},"end":{"line":457,"column":39}}},"14":{"name":"(anonymous_14)","line":471,"loc":{"start":{"line":471,"column":43},"end":{"line":471,"column":55}}},"15":{"name":"(anonymous_15)","line":478,"loc":{"start":{"line":478,"column":32},"end":{"line":478,"column":48}}},"16":{"name":"(anonymous_16)","line":526,"loc":{"start":{"line":526,"column":20},"end":{"line":526,"column":65}}},"17":{"name":"(anonymous_17)","line":578,"loc":{"start":{"line":578,"column":24},"end":{"line":578,"column":46}}},"18":{"name":"(anonymous_18)","line":592,"loc":{"start":{"line":592,"column":17},"end":{"line":592,"column":33}}},"19":{"name":"(anonymous_19)","line":634,"loc":{"start":{"line":634,"column":17},"end":{"line":634,"column":54}}},"20":{"name":"(anonymous_20)","line":680,"loc":{"start":{"line":680,"column":18},"end":{"line":680,"column":39}}},"21":{"name":"(anonymous_21)","line":798,"loc":{"start":{"line":798,"column":17},"end":{"line":798,"column":48}}},"22":{"name":"(anonymous_22)","line":810,"loc":{"start":{"line":810,"column":19},"end":{"line":810,"column":31}}},"23":{"name":"(anonymous_23)","line":821,"loc":{"start":{"line":821,"column":20},"end":{"line":821,"column":32}}},"24":{"name":"(anonymous_24)","line":825,"loc":{"start":{"line":825,"column":26},"end":{"line":825,"column":38}}},"25":{"name":"(anonymous_25)","line":829,"loc":{"start":{"line":829,"column":24},"end":{"line":829,"column":36}}},"26":{"name":"(anonymous_26)","line":836,"loc":{"start":{"line":836,"column":36},"end":{"line":836,"column":49}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":845,"column":66}},"2":{"start":{"line":9,"column":0},"end":{"line":17,"column":30}},"3":{"start":{"line":36,"column":0},"end":{"line":39,"column":1}},"4":{"start":{"line":37,"column":4},"end":{"line":37,"column":29}},"5":{"start":{"line":38,"column":4},"end":{"line":38,"column":33}},"6":{"start":{"line":65,"column":0},"end":{"line":116,"column":2}},"7":{"start":{"line":67,"column":4},"end":{"line":74,"column":12}},"8":{"start":{"line":76,"column":4},"end":{"line":96,"column":5}},"9":{"start":{"line":77,"column":8},"end":{"line":86,"column":9}},"10":{"start":{"line":78,"column":12},"end":{"line":78,"column":36}},"11":{"start":{"line":80,"column":12},"end":{"line":85,"column":13}},"12":{"start":{"line":81,"column":16},"end":{"line":81,"column":38}},"13":{"start":{"line":82,"column":16},"end":{"line":82,"column":32}},"14":{"start":{"line":84,"column":16},"end":{"line":84,"column":36}},"15":{"start":{"line":88,"column":8},"end":{"line":88,"column":32}},"16":{"start":{"line":89,"column":8},"end":{"line":89,"column":37}},"17":{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},"18":{"start":{"line":92,"column":12},"end":{"line":92,"column":38}},"19":{"start":{"line":94,"column":11},"end":{"line":96,"column":5}},"20":{"start":{"line":95,"column":8},"end":{"line":95,"column":21}},"21":{"start":{"line":98,"column":4},"end":{"line":98,"column":60}},"22":{"start":{"line":99,"column":4},"end":{"line":99,"column":34}},"23":{"start":{"line":103,"column":4},"end":{"line":105,"column":5}},"24":{"start":{"line":104,"column":8},"end":{"line":104,"column":39}},"25":{"start":{"line":107,"column":4},"end":{"line":109,"column":5}},"26":{"start":{"line":108,"column":8},"end":{"line":108,"column":37}},"27":{"start":{"line":111,"column":4},"end":{"line":111,"column":26}},"28":{"start":{"line":115,"column":4},"end":{"line":115,"column":15}},"29":{"start":{"line":131,"column":0},"end":{"line":136,"column":1}},"30":{"start":{"line":132,"column":4},"end":{"line":132,"column":22}},"31":{"start":{"line":133,"column":4},"end":{"line":133,"column":22}},"32":{"start":{"line":134,"column":4},"end":{"line":134,"column":23}},"33":{"start":{"line":135,"column":4},"end":{"line":135,"column":24}},"34":{"start":{"line":138,"column":0},"end":{"line":207,"column":2}},"35":{"start":{"line":155,"column":8},"end":{"line":155,"column":35}},"36":{"start":{"line":156,"column":8},"end":{"line":156,"column":34}},"37":{"start":{"line":167,"column":8},"end":{"line":169,"column":14}},"38":{"start":{"line":171,"column":8},"end":{"line":176,"column":9}},"39":{"start":{"line":172,"column":12},"end":{"line":175,"column":13}},"40":{"start":{"line":173,"column":16},"end":{"line":173,"column":37}},"41":{"start":{"line":174,"column":16},"end":{"line":174,"column":22}},"42":{"start":{"line":179,"column":8},"end":{"line":184,"column":9}},"43":{"start":{"line":180,"column":12},"end":{"line":180,"column":36}},"44":{"start":{"line":181,"column":12},"end":{"line":183,"column":13}},"45":{"start":{"line":182,"column":16},"end":{"line":182,"column":43}},"46":{"start":{"line":200,"column":8},"end":{"line":201,"column":31}},"47":{"start":{"line":203,"column":8},"end":{"line":205,"column":9}},"48":{"start":{"line":204,"column":12},"end":{"line":204,"column":32}},"49":{"start":{"line":223,"column":0},"end":{"line":225,"column":1}},"50":{"start":{"line":224,"column":4},"end":{"line":224,"column":38}},"51":{"start":{"line":227,"column":0},"end":{"line":685,"column":9}},"52":{"start":{"line":247,"column":8},"end":{"line":250,"column":34}},"53":{"start":{"line":252,"column":8},"end":{"line":259,"column":9}},"54":{"start":{"line":253,"column":12},"end":{"line":255,"column":13}},"55":{"start":{"line":254,"column":16},"end":{"line":254,"column":43}},"56":{"start":{"line":256,"column":12},"end":{"line":258,"column":13}},"57":{"start":{"line":257,"column":16},"end":{"line":257,"column":63}},"58":{"start":{"line":261,"column":8},"end":{"line":261,"column":47}},"59":{"start":{"line":274,"column":8},"end":{"line":290,"column":9}},"60":{"start":{"line":275,"column":12},"end":{"line":276,"column":68}},"61":{"start":{"line":278,"column":12},"end":{"line":278,"column":35}},"62":{"start":{"line":280,"column":12},"end":{"line":282,"column":13}},"63":{"start":{"line":281,"column":16},"end":{"line":281,"column":38}},"64":{"start":{"line":284,"column":12},"end":{"line":284,"column":68}},"65":{"start":{"line":285,"column":12},"end":{"line":285,"column":42}},"66":{"start":{"line":287,"column":12},"end":{"line":287,"column":26}},"67":{"start":{"line":288,"column":12},"end":{"line":288,"column":28}},"68":{"start":{"line":289,"column":12},"end":{"line":289,"column":31}},"69":{"start":{"line":303,"column":12},"end":{"line":303,"column":73}},"70":{"start":{"line":306,"column":12},"end":{"line":308,"column":37}},"71":{"start":{"line":309,"column":12},"end":{"line":309,"column":39}},"72":{"start":{"line":458,"column":12},"end":{"line":463,"column":30}},"73":{"start":{"line":466,"column":12},"end":{"line":468,"column":57}},"74":{"start":{"line":470,"column":12},"end":{"line":476,"column":13}},"75":{"start":{"line":471,"column":16},"end":{"line":473,"column":29}},"76":{"start":{"line":472,"column":20},"end":{"line":472,"column":74}},"77":{"start":{"line":475,"column":16},"end":{"line":475,"column":30}},"78":{"start":{"line":478,"column":12},"end":{"line":498,"column":21}},"79":{"start":{"line":479,"column":16},"end":{"line":480,"column":27}},"80":{"start":{"line":482,"column":16},"end":{"line":482,"column":35}},"81":{"start":{"line":484,"column":16},"end":{"line":497,"column":17}},"82":{"start":{"line":485,"column":20},"end":{"line":487,"column":21}},"83":{"start":{"line":486,"column":24},"end":{"line":486,"column":57}},"84":{"start":{"line":490,"column":20},"end":{"line":490,"column":65}},"85":{"start":{"line":492,"column":20},"end":{"line":496,"column":21}},"86":{"start":{"line":495,"column":24},"end":{"line":495,"column":92}},"87":{"start":{"line":500,"column":12},"end":{"line":502,"column":43}},"88":{"start":{"line":527,"column":12},"end":{"line":531,"column":40}},"89":{"start":{"line":533,"column":12},"end":{"line":533,"column":30}},"90":{"start":{"line":534,"column":12},"end":{"line":534,"column":32}},"91":{"start":{"line":535,"column":12},"end":{"line":537,"column":13}},"92":{"start":{"line":536,"column":16},"end":{"line":536,"column":48}},"93":{"start":{"line":539,"column":12},"end":{"line":548,"column":21}},"94":{"start":{"line":550,"column":12},"end":{"line":550,"column":39}},"95":{"start":{"line":552,"column":12},"end":{"line":552,"column":38}},"96":{"start":{"line":555,"column":12},"end":{"line":555,"column":54}},"97":{"start":{"line":557,"column":12},"end":{"line":557,"column":26}},"98":{"start":{"line":579,"column":12},"end":{"line":579,"column":31}},"99":{"start":{"line":595,"column":12},"end":{"line":598,"column":41}},"100":{"start":{"line":601,"column":12},"end":{"line":601,"column":30}},"101":{"start":{"line":603,"column":12},"end":{"line":615,"column":13}},"102":{"start":{"line":604,"column":16},"end":{"line":604,"column":37}},"103":{"start":{"line":606,"column":16},"end":{"line":614,"column":17}},"104":{"start":{"line":607,"column":20},"end":{"line":607,"column":55}},"105":{"start":{"line":609,"column":20},"end":{"line":613,"column":21}},"106":{"start":{"line":610,"column":24},"end":{"line":612,"column":25}},"107":{"start":{"line":611,"column":28},"end":{"line":611,"column":48}},"108":{"start":{"line":635,"column":12},"end":{"line":637,"column":43}},"109":{"start":{"line":639,"column":12},"end":{"line":656,"column":13}},"110":{"start":{"line":640,"column":16},"end":{"line":640,"column":46}},"111":{"start":{"line":642,"column":16},"end":{"line":644,"column":17}},"112":{"start":{"line":643,"column":20},"end":{"line":643,"column":43}},"113":{"start":{"line":646,"column":16},"end":{"line":655,"column":17}},"114":{"start":{"line":647,"column":20},"end":{"line":647,"column":43}},"115":{"start":{"line":648,"column":20},"end":{"line":654,"column":21}},"116":{"start":{"line":649,"column":24},"end":{"line":653,"column":25}},"117":{"start":{"line":650,"column":28},"end":{"line":650,"column":42}},"118":{"start":{"line":652,"column":28},"end":{"line":652,"column":56}},"119":{"start":{"line":658,"column":12},"end":{"line":658,"column":45}},"120":{"start":{"line":682,"column":12},"end":{"line":682,"column":50}},"121":{"start":{"line":687,"column":0},"end":{"line":687,"column":34}},"122":{"start":{"line":798,"column":0},"end":{"line":842,"column":2}},"123":{"start":{"line":799,"column":4},"end":{"line":799,"column":30}},"124":{"start":{"line":801,"column":4},"end":{"line":806,"column":5}},"125":{"start":{"line":802,"column":8},"end":{"line":802,"column":24}},"126":{"start":{"line":803,"column":8},"end":{"line":803,"column":23}},"127":{"start":{"line":804,"column":11},"end":{"line":806,"column":5}},"128":{"start":{"line":805,"column":8},"end":{"line":805,"column":51}},"129":{"start":{"line":808,"column":4},"end":{"line":839,"column":5}},"130":{"start":{"line":809,"column":8},"end":{"line":834,"column":9}},"131":{"start":{"line":810,"column":12},"end":{"line":812,"column":14}},"132":{"start":{"line":811,"column":16},"end":{"line":811,"column":54}},"133":{"start":{"line":813,"column":12},"end":{"line":813,"column":53}},"134":{"start":{"line":814,"column":12},"end":{"line":814,"column":31}},"135":{"start":{"line":816,"column":12},"end":{"line":816,"column":30}},"136":{"start":{"line":818,"column":12},"end":{"line":832,"column":14}},"137":{"start":{"line":822,"column":20},"end":{"line":822,"column":57}},"138":{"start":{"line":826,"column":20},"end":{"line":826,"column":63}},"139":{"start":{"line":830,"column":20},"end":{"line":830,"column":61}},"140":{"start":{"line":835,"column":11},"end":{"line":839,"column":5}},"141":{"start":{"line":836,"column":8},"end":{"line":838,"column":11}},"142":{"start":{"line":837,"column":12},"end":{"line":837,"column":37}},"143":{"start":{"line":841,"column":4},"end":{"line":841,"column":17}}},"branchMap":{"1":{"line":73,"type":"binary-expr","locations":[{"start":{"line":73,"column":19},"end":{"line":73,"column":20}},{"start":{"line":73,"column":24},"end":{"line":73,"column":26}}]},"2":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":4},"end":{"line":76,"column":4}},{"start":{"line":76,"column":4},"end":{"line":76,"column":4}}]},"3":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":8},"end":{"line":77,"column":8}},{"start":{"line":77,"column":8},"end":{"line":77,"column":8}}]},"4":{"line":77,"type":"binary-expr","locations":[{"start":{"line":77,"column":12},"end":{"line":77,"column":14}},{"start":{"line":77,"column":18},"end":{"line":77,"column":35}}]},"5":{"line":80,"type":"if","locations":[{"start":{"line":80,"column":12},"end":{"line":80,"column":12}},{"start":{"line":80,"column":12},"end":{"line":80,"column":12}}]},"6":{"line":80,"type":"binary-expr","locations":[{"start":{"line":80,"column":16},"end":{"line":80,"column":27}},{"start":{"line":80,"column":31},"end":{"line":80,"column":48}}]},"7":{"line":91,"type":"if","locations":[{"start":{"line":91,"column":8},"end":{"line":91,"column":8}},{"start":{"line":91,"column":8},"end":{"line":91,"column":8}}]},"8":{"line":94,"type":"if","locations":[{"start":{"line":94,"column":11},"end":{"line":94,"column":11}},{"start":{"line":94,"column":11},"end":{"line":94,"column":11}}]},"9":{"line":94,"type":"binary-expr","locations":[{"start":{"line":94,"column":15},"end":{"line":94,"column":23}},{"start":{"line":94,"column":27},"end":{"line":94,"column":38}},{"start":{"line":94,"column":42},"end":{"line":94,"column":57}}]},"10":{"line":98,"type":"binary-expr","locations":[{"start":{"line":98,"column":18},"end":{"line":98,"column":25}},{"start":{"line":98,"column":29},"end":{"line":98,"column":48}},{"start":{"line":98,"column":52},"end":{"line":98,"column":59}}]},"11":{"line":103,"type":"if","locations":[{"start":{"line":103,"column":4},"end":{"line":103,"column":4}},{"start":{"line":103,"column":4},"end":{"line":103,"column":4}}]},"12":{"line":103,"type":"binary-expr","locations":[{"start":{"line":103,"column":8},"end":{"line":103,"column":19}},{"start":{"line":103,"column":23},"end":{"line":103,"column":37}}]},"13":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":4},"end":{"line":107,"column":4}},{"start":{"line":107,"column":4},"end":{"line":107,"column":4}}]},"14":{"line":107,"type":"binary-expr","locations":[{"start":{"line":107,"column":8},"end":{"line":107,"column":17}},{"start":{"line":107,"column":21},"end":{"line":107,"column":33}}]},"15":{"line":172,"type":"if","locations":[{"start":{"line":172,"column":12},"end":{"line":172,"column":12}},{"start":{"line":172,"column":12},"end":{"line":172,"column":12}}]},"16":{"line":179,"type":"if","locations":[{"start":{"line":179,"column":8},"end":{"line":179,"column":8}},{"start":{"line":179,"column":8},"end":{"line":179,"column":8}}]},"17":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":12},"end":{"line":181,"column":12}},{"start":{"line":181,"column":12},"end":{"line":181,"column":12}}]},"18":{"line":252,"type":"if","locations":[{"start":{"line":252,"column":8},"end":{"line":252,"column":8}},{"start":{"line":252,"column":8},"end":{"line":252,"column":8}}]},"19":{"line":253,"type":"if","locations":[{"start":{"line":253,"column":12},"end":{"line":253,"column":12}},{"start":{"line":253,"column":12},"end":{"line":253,"column":12}}]},"20":{"line":256,"type":"if","locations":[{"start":{"line":256,"column":12},"end":{"line":256,"column":12}},{"start":{"line":256,"column":12},"end":{"line":256,"column":12}}]},"21":{"line":261,"type":"binary-expr","locations":[{"start":{"line":261,"column":16},"end":{"line":261,"column":22}},{"start":{"line":261,"column":26},"end":{"line":261,"column":37}},{"start":{"line":261,"column":42},"end":{"line":261,"column":46}}]},"22":{"line":274,"type":"if","locations":[{"start":{"line":274,"column":8},"end":{"line":274,"column":8}},{"start":{"line":274,"column":8},"end":{"line":274,"column":8}}]},"23":{"line":274,"type":"binary-expr","locations":[{"start":{"line":274,"column":12},"end":{"line":274,"column":15}},{"start":{"line":274,"column":19},"end":{"line":274,"column":25}}]},"24":{"line":276,"type":"cond-expr","locations":[{"start":{"line":276,"column":40},"end":{"line":276,"column":56}},{"start":{"line":276,"column":59},"end":{"line":276,"column":67}}]},"25":{"line":280,"type":"if","locations":[{"start":{"line":280,"column":12},"end":{"line":280,"column":12}},{"start":{"line":280,"column":12},"end":{"line":280,"column":12}}]},"26":{"line":303,"type":"binary-expr","locations":[{"start":{"line":303,"column":25},"end":{"line":303,"column":43}},{"start":{"line":303,"column":48},"end":{"line":303,"column":71}}]},"27":{"line":306,"type":"cond-expr","locations":[{"start":{"line":307,"column":32},"end":{"line":307,"column":49}},{"start":{"line":308,"column":32},"end":{"line":308,"column":36}}]},"28":{"line":462,"type":"cond-expr","locations":[{"start":{"line":462,"column":38},"end":{"line":462,"column":48}},{"start":{"line":462,"column":51},"end":{"line":462,"column":55}}]},"29":{"line":466,"type":"cond-expr","locations":[{"start":{"line":467,"column":16},"end":{"line":467,"column":31}},{"start":{"line":468,"column":16},"end":{"line":468,"column":56}}]},"30":{"line":468,"type":"binary-expr","locations":[{"start":{"line":468,"column":24},"end":{"line":468,"column":32}},{"start":{"line":468,"column":36},"end":{"line":468,"column":55}}]},"31":{"line":470,"type":"if","locations":[{"start":{"line":470,"column":12},"end":{"line":470,"column":12}},{"start":{"line":470,"column":12},"end":{"line":470,"column":12}}]},"32":{"line":470,"type":"binary-expr","locations":[{"start":{"line":470,"column":16},"end":{"line":470,"column":29}},{"start":{"line":470,"column":33},"end":{"line":470,"column":51}}]},"33":{"line":484,"type":"if","locations":[{"start":{"line":484,"column":16},"end":{"line":484,"column":16}},{"start":{"line":484,"column":16},"end":{"line":484,"column":16}}]},"34":{"line":485,"type":"if","locations":[{"start":{"line":485,"column":20},"end":{"line":485,"column":20}},{"start":{"line":485,"column":20},"end":{"line":485,"column":20}}]},"35":{"line":492,"type":"if","locations":[{"start":{"line":492,"column":20},"end":{"line":492,"column":20}},{"start":{"line":492,"column":20},"end":{"line":492,"column":20}}]},"36":{"line":492,"type":"binary-expr","locations":[{"start":{"line":492,"column":24},"end":{"line":492,"column":41}},{"start":{"line":493,"column":24},"end":{"line":493,"column":61}}]},"37":{"line":500,"type":"cond-expr","locations":[{"start":{"line":501,"column":16},"end":{"line":501,"column":26}},{"start":{"line":502,"column":16},"end":{"line":502,"column":42}}]},"38":{"line":535,"type":"if","locations":[{"start":{"line":535,"column":12},"end":{"line":535,"column":12}},{"start":{"line":535,"column":12},"end":{"line":535,"column":12}}]},"39":{"line":596,"type":"cond-expr","locations":[{"start":{"line":597,"column":28},"end":{"line":597,"column":41}},{"start":{"line":597,"column":44},"end":{"line":597,"column":59}}]},"40":{"line":606,"type":"if","locations":[{"start":{"line":606,"column":16},"end":{"line":606,"column":16}},{"start":{"line":606,"column":16},"end":{"line":606,"column":16}}]},"41":{"line":609,"type":"if","locations":[{"start":{"line":609,"column":20},"end":{"line":609,"column":20}},{"start":{"line":609,"column":20},"end":{"line":609,"column":20}}]},"42":{"line":639,"type":"if","locations":[{"start":{"line":639,"column":12},"end":{"line":639,"column":12}},{"start":{"line":639,"column":12},"end":{"line":639,"column":12}}]},"43":{"line":642,"type":"if","locations":[{"start":{"line":642,"column":16},"end":{"line":642,"column":16}},{"start":{"line":642,"column":16},"end":{"line":642,"column":16}}]},"44":{"line":648,"type":"if","locations":[{"start":{"line":648,"column":20},"end":{"line":648,"column":20}},{"start":{"line":648,"column":20},"end":{"line":648,"column":20}}]},"45":{"line":649,"type":"if","locations":[{"start":{"line":649,"column":24},"end":{"line":649,"column":24}},{"start":{"line":649,"column":24},"end":{"line":649,"column":24}}]},"46":{"line":658,"type":"binary-expr","locations":[{"start":{"line":658,"column":19},"end":{"line":658,"column":33}},{"start":{"line":658,"column":37},"end":{"line":658,"column":44}}]},"47":{"line":682,"type":"binary-expr","locations":[{"start":{"line":682,"column":19},"end":{"line":682,"column":27}},{"start":{"line":682,"column":31},"end":{"line":682,"column":49}}]},"48":{"line":801,"type":"if","locations":[{"start":{"line":801,"column":4},"end":{"line":801,"column":4}},{"start":{"line":801,"column":4},"end":{"line":801,"column":4}}]},"49":{"line":801,"type":"binary-expr","locations":[{"start":{"line":801,"column":8},"end":{"line":801,"column":12}},{"start":{"line":801,"column":16},"end":{"line":801,"column":25}}]},"50":{"line":804,"type":"if","locations":[{"start":{"line":804,"column":11},"end":{"line":804,"column":11}},{"start":{"line":804,"column":11},"end":{"line":804,"column":11}}]},"51":{"line":808,"type":"if","locations":[{"start":{"line":808,"column":4},"end":{"line":808,"column":4}},{"start":{"line":808,"column":4},"end":{"line":808,"column":4}}]},"52":{"line":809,"type":"if","locations":[{"start":{"line":809,"column":8},"end":{"line":809,"column":8}},{"start":{"line":809,"column":8},"end":{"line":809,"column":8}}]},"53":{"line":809,"type":"binary-expr","locations":[{"start":{"line":809,"column":12},"end":{"line":809,"column":17}},{"start":{"line":809,"column":21},"end":{"line":809,"column":54}}]},"54":{"line":835,"type":"if","locations":[{"start":{"line":835,"column":11},"end":{"line":835,"column":11}},{"start":{"line":835,"column":11},"end":{"line":835,"column":11}}]},"55":{"line":835,"type":"binary-expr","locations":[{"start":{"line":835,"column":15},"end":{"line":835,"column":29}},{"start":{"line":835,"column":33},"end":{"line":835,"column":46}}]}},"code":["(function () { YUI.add('event-synthetic', function (Y, NAME) {","","/**"," * Define new DOM events that can be subscribed to from Nodes."," *"," * @module event"," * @submodule event-synthetic"," */","var CustomEvent = Y.CustomEvent,"," DOMMap = Y.Env.evt.dom_map,"," toArray = Y.Array,"," YLang = Y.Lang,"," isObject = YLang.isObject,"," isString = YLang.isString,"," isArray = YLang.isArray,"," query = Y.Selector.query,"," noop = function () {};","","/**"," * <p>The triggering mechanism used by SyntheticEvents.</p>"," *"," * <p>Implementers should not instantiate these directly. Use the Notifier"," * provided to the event's implemented <code>on(node, sub, notifier)</code> or"," * <code>delegate(node, sub, notifier, filter)</code> methods.</p>"," *"," * @class SyntheticEvent.Notifier"," * @constructor"," * @param handle {EventHandle} the detach handle for the subscription to an"," * internal custom event used to execute the callback passed to"," * on(..) or delegate(..)"," * @param emitFacade {Boolean} take steps to ensure the first arg received by"," * the subscription callback is an event facade"," * @private"," * @since 3.2.0"," */","function Notifier(handle, emitFacade) {"," this.handle = handle;"," this.emitFacade = emitFacade;","}","","/**"," * <p>Executes the subscription callback, passing the firing arguments as the"," * first parameters to that callback. For events that are configured with"," * emitFacade=true, it is common practice to pass the triggering DOMEventFacade"," * as the first parameter. Barring a proper DOMEventFacade or EventFacade"," * (from a CustomEvent), a new EventFacade will be generated. In that case, if"," * fire() is called with a simple object, it will be mixed into the facade."," * Otherwise, the facade will be prepended to the callback parameters.</p>"," *"," * <p>For notifiers provided to delegate logic, the first argument should be an"," * object with a "currentTarget" property to identify what object to"," * default as 'this' in the callback. Typically this is gleaned from the"," * DOMEventFacade or EventFacade, but if configured with emitFacade=false, an"," * object must be provided. In that case, the object will be removed from the"," * callback parameters.</p>"," *"," * <p>Additional arguments passed during event subscription will be"," * automatically added after those passed to fire().</p>"," *"," * @method fire"," * @param e {EventFacade|DOMEventFacade|Object|any} (see description)"," * @param arg* {any} additional arguments received by all subscriptions"," * @private"," */","Notifier.prototype.fire = function (e) {"," // first arg to delegate notifier should be an object with currentTarget"," var args = toArray(arguments, 0, true),"," handle = this.handle,"," ce = handle.evt,"," sub = handle.sub,"," thisObj = sub.context,"," delegate = sub.filter,"," event = e || {},"," ret;",""," if (this.emitFacade) {"," if (!e || !e.preventDefault) {"," event = ce._getFacade();",""," if (isObject(e) && !e.preventDefault) {"," Y.mix(event, e, true);"," args[0] = event;"," } else {"," args.unshift(event);"," }"," }",""," event.type = ce.type;"," event.details = args.slice();",""," if (delegate) {"," event.container = ce.host;"," }"," } else if (delegate && isObject(e) && e.currentTarget) {"," args.shift();"," }",""," sub.context = thisObj || event.currentTarget || ce.host;"," ret = ce.fire.apply(ce, args);",""," // have to handle preventedFn and stoppedFn manually because"," // Notifier CustomEvents are forced to emitFacade=false"," if (e.prevented && ce.preventedFn) {"," ce.preventedFn.apply(ce, args);"," }",""," if (e.stopped && ce.stoppedFn) {"," ce.stoppedFn.apply(ce, args);"," }",""," sub.context = thisObj; // reset for future firing",""," // to capture callbacks that return false to stopPropagation."," // Useful for delegate implementations"," return ret;","};","","/**"," * Manager object for synthetic event subscriptions to aggregate multiple synths on the"," * same node without colliding with actual DOM subscription entries in the global map of"," * DOM subscriptions. Also facilitates proper cleanup on page unload."," *"," * @class SynthRegistry"," * @constructor"," * @param el {HTMLElement} the DOM element"," * @param yuid {String} the yuid stamp for the element"," * @param key {String} the generated id token used to identify an event type +"," * element in the global DOM subscription map."," * @private"," */","function SynthRegistry(el, yuid, key) {"," this.handles = [];"," this.el = el;"," this.key = key;"," this.domkey = yuid;","}","","SynthRegistry.prototype = {"," constructor: SynthRegistry,",""," // A few object properties to fake the CustomEvent interface for page"," // unload cleanup. DON'T TOUCH!"," type : '_synth',"," fn : noop,"," capture : false,",""," /**"," * Adds a subscription from the Notifier registry."," *"," * @method register"," * @param handle {EventHandle} the subscription"," * @since 3.4.0"," */"," register: function (handle) {"," handle.evt.registry = this;"," this.handles.push(handle);"," },",""," /**"," * Removes the subscription from the Notifier registry."," *"," * @method _unregisterSub"," * @param sub {Subscription} the subscription"," * @since 3.4.0"," */"," unregister: function (sub) {"," var handles = this.handles,"," events = DOMMap[this.domkey],"," i;",""," for (i = handles.length - 1; i >= 0; --i) {"," if (handles[i].sub === sub) {"," handles.splice(i, 1);"," break;"," }"," }",""," // Clean up left over objects when there are no more subscribers."," if (!handles.length) {"," delete events[this.key];"," if (!Y.Object.size(events)) {"," delete DOMMap[this.domkey];"," }"," }"," },",""," /**"," * Used by the event system's unload cleanup process. When navigating"," * away from the page, the event system iterates the global map of element"," * subscriptions and detaches everything using detachAll(). Normally,"," * the map is populated with custom events, so this object needs to"," * at least support the detachAll method to duck type its way to"," * cleanliness."," *"," * @method detachAll"," * @private"," * @since 3.4.0"," */"," detachAll : function () {"," var handles = this.handles,"," i = handles.length;",""," while (--i >= 0) {"," handles[i].detach();"," }"," }","};","","/**"," * <p>Wrapper class for the integration of new events into the YUI event"," * infrastructure. Don't instantiate this object directly, use"," * <code>Y.Event.define(type, config)</code>. See that method for details.</p>"," *"," * <p>Properties that MAY or SHOULD be specified in the configuration are noted"," * below and in the description of <code>Y.Event.define</code>.</p>"," *"," * @class SyntheticEvent"," * @constructor"," * @param cfg {Object} Implementation pieces and configuration"," * @since 3.1.0"," * @in event-synthetic"," */","function SyntheticEvent() {"," this._init.apply(this, arguments);","}","","Y.mix(SyntheticEvent, {"," Notifier: Notifier,"," SynthRegistry: SynthRegistry,",""," /**"," * Returns the array of subscription handles for a node for the given event"," * type. Passing true as the third argument will create a registry entry"," * in the event system's DOM map to host the array if one doesn't yet exist."," *"," * @method getRegistry"," * @param node {Node} the node"," * @param type {String} the event"," * @param create {Boolean} create a registration entry to host a new array"," * if one doesn't exist."," * @return {Array}"," * @static"," * @protected"," * @since 3.2.0"," */"," getRegistry: function (node, type, create) {"," var el = node._node,"," yuid = Y.stamp(el),"," key = 'event:' + yuid + type + '_synth',"," events = DOMMap[yuid];",""," if (create) {"," if (!events) {"," events = DOMMap[yuid] = {};"," }"," if (!events[key]) {"," events[key] = new SynthRegistry(el, yuid, key);"," }"," }",""," return (events && events[key]) || null;"," },",""," /**"," * Alternate <code>_delete()</code> method for the CustomEvent object"," * created to manage SyntheticEvent subscriptions."," *"," * @method _deleteSub"," * @param sub {Subscription} the subscription to clean up"," * @private"," * @since 3.2.0"," */"," _deleteSub: function (sub) {"," if (sub && sub.fn) {"," var synth = this.eventDef,"," method = (sub.filter) ? 'detachDelegate' : 'detach';",""," this._subscribers = [];",""," if (CustomEvent.keepDeprecatedSubs) {"," this.subscribers = {};"," }",""," synth[method](sub.node, sub, this.notifier, sub.filter);"," this.registry.unregister(sub);",""," delete sub.fn;"," delete sub.node;"," delete sub.context;"," }"," },",""," prototype: {"," constructor: SyntheticEvent,",""," /**"," * Construction logic for the event."," *"," * @method _init"," * @protected"," */"," _init: function () {"," var config = this.publishConfig || (this.publishConfig = {});",""," // The notification mechanism handles facade creation"," this.emitFacade = ('emitFacade' in config) ?"," config.emitFacade :"," true;"," config.emitFacade = false;"," },",""," /**"," * <p>Implementers MAY provide this method definition.</p>"," *"," * <p>Implement this function if the event supports a different"," * subscription signature. This function is used by both"," * <code>on()</code> and <code>delegate()</code>. The second parameter"," * indicates that the event is being subscribed via"," * <code>delegate()</code>.</p>"," *"," * <p>Implementations must remove extra arguments from the args list"," * before returning. The required args for <code>on()</code>"," * subscriptions are</p>"," * <pre><code>[type, callback, target, context, argN...]</code></pre>"," *"," * <p>The required args for <code>delegate()</code>"," * subscriptions are</p>"," *"," * <pre><code>[type, callback, target, filter, context, argN...]</code></pre>"," *"," * <p>The return value from this function will be stored on the"," * subscription in the '_extra' property for reference elsewhere.</p>"," *"," * @method processArgs"," * @param args {Array} parmeters passed to Y.on(..) or Y.delegate(..)"," * @param delegate {Boolean} true if the subscription is from Y.delegate"," * @return {any}"," */"," processArgs: noop,",""," /**"," * <p>Implementers MAY override this property.</p>"," *"," * <p>Whether to prevent multiple subscriptions to this event that are"," * classified as being the same. By default, this means the subscribed"," * callback is the same function. See the <code>subMatch</code>"," * method. Setting this to true will impact performance for high volume"," * events.</p>"," *"," * @property preventDups"," * @type {Boolean}"," * @default false"," */"," //preventDups : false,",""," /**"," * <p>Implementers SHOULD provide this method definition.</p>"," *"," * Implementation logic for subscriptions done via <code>node.on(type,"," * fn)</code> or <code>Y.on(type, fn, target)</code>. This"," * function should set up the monitor(s) that will eventually fire the"," * event. Typically this involves subscribing to at least one DOM"," * event. It is recommended to store detach handles from any DOM"," * subscriptions to make for easy cleanup in the <code>detach</code>"," * method. Typically these handles are added to the <code>sub</code>"," * object. Also for SyntheticEvents that leverage a single DOM"," * subscription under the hood, it is recommended to pass the DOM event"," * object to <code>notifier.fire(e)</code>. (The event name on the"," * object will be updated)."," *"," * @method on"," * @param node {Node} the node the subscription is being applied to"," * @param sub {Subscription} the object to track this subscription"," * @param notifier {SyntheticEvent.Notifier} call notifier.fire(..) to"," * trigger the execution of the subscribers"," */"," on: noop,",""," /**"," * <p>Implementers SHOULD provide this method definition.</p>"," *"," * <p>Implementation logic for detaching subscriptions done via"," * <code>node.on(type, fn)</code>. This function should clean up any"," * subscriptions made in the <code>on()</code> phase.</p>"," *"," * @method detach"," * @param node {Node} the node the subscription was applied to"," * @param sub {Subscription} the object tracking this subscription"," * @param notifier {SyntheticEvent.Notifier} the Notifier used to"," * trigger the execution of the subscribers"," */"," detach: noop,",""," /**"," * <p>Implementers SHOULD provide this method definition.</p>"," *"," * <p>Implementation logic for subscriptions done via"," * <code>node.delegate(type, fn, filter)</code> or"," * <code>Y.delegate(type, fn, container, filter)</code>. Like with"," * <code>on()</code> above, this function should monitor the environment"," * for the event being fired, and trigger subscription execution by"," * calling <code>notifier.fire(e)</code>.</p>"," *"," * <p>This function receives a fourth argument, which is the filter"," * used to identify which Node's are of interest to the subscription."," * The filter will be either a boolean function that accepts a target"," * Node for each hierarchy level as the event bubbles, or a selector"," * string. To translate selector strings into filter functions, use"," * <code>Y.delegate.compileFilter(filter)</code>.</p>"," *"," * @method delegate"," * @param node {Node} the node the subscription is being applied to"," * @param sub {Subscription} the object to track this subscription"," * @param notifier {SyntheticEvent.Notifier} call notifier.fire(..) to"," * trigger the execution of the subscribers"," * @param filter {String|Function} Selector string or function that"," * accepts an event object and returns null, a Node, or an"," * array of Nodes matching the criteria for processing."," * @since 3.2.0"," */"," delegate : noop,",""," /**"," * <p>Implementers SHOULD provide this method definition.</p>"," *"," * <p>Implementation logic for detaching subscriptions done via"," * <code>node.delegate(type, fn, filter)</code> or"," * <code>Y.delegate(type, fn, container, filter)</code>. This function"," * should clean up any subscriptions made in the"," * <code>delegate()</code> phase.</p>"," *"," * @method detachDelegate"," * @param node {Node} the node the subscription was applied to"," * @param sub {Subscription} the object tracking this subscription"," * @param notifier {SyntheticEvent.Notifier} the Notifier used to"," * trigger the execution of the subscribers"," * @param filter {String|Function} Selector string or function that"," * accepts an event object and returns null, a Node, or an"," * array of Nodes matching the criteria for processing."," * @since 3.2.0"," */"," detachDelegate : noop,",""," /**"," * Sets up the boilerplate for detaching the event and facilitating the"," * execution of subscriber callbacks."," *"," * @method _on"," * @param args {Array} array of arguments passed to"," * <code>Y.on(...)</code> or <code>Y.delegate(...)</code>"," * @param delegate {Boolean} true if called from"," * <code>Y.delegate(...)</code>"," * @return {EventHandle} the detach handle for this subscription"," * @private"," * since 3.2.0"," */"," _on: function (args, delegate) {"," var handles = [],"," originalArgs = args.slice(),"," extra = this.processArgs(args, delegate),"," selector = args[2],"," method = delegate ? 'delegate' : 'on',"," nodes, handle;",""," // Can't just use Y.all because it doesn't support window (yet?)"," nodes = (isString(selector)) ?"," query(selector) :"," toArray(selector || Y.one(Y.config.win));",""," if (!nodes.length && isString(selector)) {"," handle = Y.on('available', function () {"," Y.mix(handle, Y[method].apply(Y, originalArgs), true);"," }, selector);",""," return handle;"," }",""," Y.Array.each(nodes, function (node) {"," var subArgs = args.slice(),"," filter;",""," node = Y.one(node);",""," if (node) {"," if (delegate) {"," filter = subArgs.splice(3, 1)[0];"," }",""," // (type, fn, el, thisObj, ...) => (fn, thisObj, ...)"," subArgs.splice(0, 4, subArgs[1], subArgs[3]);",""," if (!this.preventDups ||"," !this.getSubs(node, args, null, true))"," {"," handles.push(this._subscribe(node, method, subArgs, extra, filter));"," }"," }"," }, this);",""," return (handles.length === 1) ?"," handles[0] :"," new Y.EventHandle(handles);"," },",""," /**"," * Creates a new Notifier object for use by this event's"," * <code>on(...)</code> or <code>delegate(...)</code> implementation"," * and register the custom event proxy in the DOM system for cleanup."," *"," * @method _subscribe"," * @param node {Node} the Node hosting the event"," * @param method {String} \"on\" or \"delegate\""," * @param args {Array} the subscription arguments passed to either"," * <code>Y.on(...)</code> or <code>Y.delegate(...)</code>"," * after running through <code>processArgs(args)</code> to"," * normalize the argument signature"," * @param extra {any} Extra data parsed from"," * <code>processArgs(args)</code>"," * @param filter {String|Function} the selector string or function"," * filter passed to <code>Y.delegate(...)</code> (not"," * present when called from <code>Y.on(...)</code>)"," * @return {EventHandle}"," * @private"," * @since 3.2.0"," */"," _subscribe: function (node, method, args, extra, filter) {"," var dispatcher = new Y.CustomEvent(this.type, this.publishConfig),"," handle = dispatcher.on.apply(dispatcher, args),"," notifier = new Notifier(handle, this.emitFacade),"," registry = SyntheticEvent.getRegistry(node, this.type, true),"," sub = handle.sub;",""," sub.node = node;"," sub.filter = filter;"," if (extra) {"," this.applyArgExtras(extra, sub);"," }",""," Y.mix(dispatcher, {"," eventDef : this,"," notifier : notifier,"," host : node, // I forget what this is for"," currentTarget: node, // for generating facades"," target : node, // for generating facades"," el : node._node, // For category detach",""," _delete : SyntheticEvent._deleteSub"," }, true);",""," handle.notifier = notifier;",""," registry.register(handle);",""," // Call the implementation's \"on\" or \"delegate\" method"," this[method](node, sub, notifier, filter);",""," return handle;"," },",""," /**"," * <p>Implementers MAY provide this method definition.</p>"," *"," * <p>Implement this function if you want extra data extracted during"," * processArgs to be propagated to subscriptions on a per-node basis."," * That is to say, if you call <code>Y.on('xyz', fn, xtra, 'div')</code>"," * the data returned from processArgs will be shared"," * across the subscription objects for all the divs. If you want each"," * subscription to receive unique information, do that processing"," * here.</p>"," *"," * <p>The default implementation adds the data extracted by processArgs"," * to the subscription object as <code>sub._extra</code>.</p>"," *"," * @method applyArgExtras"," * @param extra {any} Any extra data extracted from processArgs"," * @param sub {Subscription} the individual subscription"," */"," applyArgExtras: function (extra, sub) {"," sub._extra = extra;"," },",""," /**"," * Removes the subscription(s) from the internal subscription dispatch"," * mechanism. See <code>SyntheticEvent._deleteSub</code>."," *"," * @method _detach"," * @param args {Array} The arguments passed to"," * <code>node.detach(...)</code>"," * @private"," * @since 3.2.0"," */"," _detach: function (args) {"," // Can't use Y.all because it doesn't support window (yet?)"," // TODO: Does Y.all support window now?"," var target = args[2],"," els = (isString(target)) ?"," query(target) : toArray(target),"," node, i, len, handles, j;",""," // (type, fn, el, context, filter?) => (type, fn, context, filter?)"," args.splice(2, 1);",""," for (i = 0, len = els.length; i < len; ++i) {"," node = Y.one(els[i]);",""," if (node) {"," handles = this.getSubs(node, args);",""," if (handles) {"," for (j = handles.length - 1; j >= 0; --j) {"," handles[j].detach();"," }"," }"," }"," }"," },",""," /**"," * Returns the detach handles of subscriptions on a node that satisfy a"," * search/filter function. By default, the filter used is the"," * <code>subMatch</code> method."," *"," * @method getSubs"," * @param node {Node} the node hosting the event"," * @param args {Array} the array of original subscription args passed"," * to <code>Y.on(...)</code> (before"," * <code>processArgs</code>"," * @param filter {Function} function used to identify a subscription"," * for inclusion in the returned array"," * @param first {Boolean} stop after the first match (used to check for"," * duplicate subscriptions)"," * @return {EventHandle[]} detach handles for the matching subscriptions"," */"," getSubs: function (node, args, filter, first) {"," var registry = SyntheticEvent.getRegistry(node, this.type),"," handles = [],"," allHandles, i, len, handle;",""," if (registry) {"," allHandles = registry.handles;",""," if (!filter) {"," filter = this.subMatch;"," }",""," for (i = 0, len = allHandles.length; i < len; ++i) {"," handle = allHandles[i];"," if (filter.call(this, handle.sub, args)) {"," if (first) {"," return handle;"," } else {"," handles.push(allHandles[i]);"," }"," }"," }"," }",""," return handles.length && handles;"," },",""," /**"," * <p>Implementers MAY override this to define what constitutes a"," * "same" subscription. Override implementations should"," * consider the lack of a comparator as a match, so calling"," * <code>getSubs()</code> with no arguments will return all subs.</p>"," *"," * <p>Compares a set of subscription arguments against a Subscription"," * object to determine if they match. The default implementation"," * compares the callback function against the second argument passed to"," * <code>Y.on(...)</code> or <code>node.detach(...)</code> etc.</p>"," *"," * @method subMatch"," * @param sub {Subscription} the existing subscription"," * @param args {Array} the calling arguments passed to"," * <code>Y.on(...)</code> etc."," * @return {Boolean} true if the sub can be described by the args"," * present"," * @since 3.2.0"," */"," subMatch: function (sub, args) {"," // Default detach cares only about the callback matching"," return !args[1] || sub.fn === args[1];"," }"," }","}, true);","","Y.SyntheticEvent = SyntheticEvent;","","/**"," * <p>Defines a new event in the DOM event system. Implementers are"," * responsible for monitoring for a scenario whereby the event is fired. A"," * notifier object is provided to the functions identified below. When the"," * criteria defining the event are met, call notifier.fire( [args] ); to"," * execute event subscribers.</p>"," *"," * <p>The first parameter is the name of the event. The second parameter is a"," * configuration object which define the behavior of the event system when the"," * new event is subscribed to or detached from. The methods that should be"," * defined in this configuration object are <code>on</code>,"," * <code>detach</code>, <code>delegate</code>, and <code>detachDelegate</code>."," * You are free to define any other methods or properties needed to define your"," * event. Be aware, however, that since the object is used to subclass"," * SyntheticEvent, you should avoid method names used by SyntheticEvent unless"," * your intention is to override the default behavior.</p>"," *"," * <p>This is a list of properties and methods that you can or should specify"," * in the configuration object:</p>"," *"," * <dl>"," * <dt><code>on</code></dt>"," * <dd><code>function (node, subscription, notifier)</code> The"," * implementation logic for subscription. Any special setup you need to"," * do to create the environment for the event being fired--E.g. native"," * DOM event subscriptions. Store subscription related objects and"," * state on the <code>subscription</code> object. When the"," * criteria have been met to fire the synthetic event, call"," * <code>notifier.fire(e)</code>. See Notifier's <code>fire()</code>"," * method for details about what to pass as parameters.</dd>"," *"," * <dt><code>detach</code></dt>"," * <dd><code>function (node, subscription, notifier)</code> The"," * implementation logic for cleaning up a detached subscription. E.g."," * detach any DOM subscriptions added in <code>on</code>.</dd>"," *"," * <dt><code>delegate</code></dt>"," * <dd><code>function (node, subscription, notifier, filter)</code> The"," * implementation logic for subscription via <code>Y.delegate</code> or"," * <code>node.delegate</code>. The filter is typically either a selector"," * string or a function. You can use"," * <code>Y.delegate.compileFilter(selectorString)</code> to create a"," * filter function from a selector string if needed. The filter function"," * expects an event object as input and should output either null, a"," * matching Node, or an array of matching Nodes. Otherwise, this acts"," * like <code>on</code> DOM event subscriptions. Store subscription"," * related objects and information on the <code>subscription</code>"," * object. When the criteria have been met to fire the synthetic event,"," * call <code>notifier.fire(e)</code> as noted above.</dd>"," *"," * <dt><code>detachDelegate</code></dt>"," * <dd><code>function (node, subscription, notifier)</code> The"," * implementation logic for cleaning up a detached delegate subscription."," * E.g. detach any DOM delegate subscriptions added in"," * <code>delegate</code>.</dd>"," *"," * <dt><code>publishConfig</code></dt>"," * <dd>(Object) The configuration object that will be used to instantiate"," * the underlying CustomEvent. See Notifier's <code>fire</code> method"," * for details.</dd>"," *"," * <dt><code>processArgs</code></dt"," * <dd>"," * <p><code>function (argArray, fromDelegate)</code> Optional method"," * to extract any additional arguments from the subscription"," * signature. Using this allows <code>on</code> or"," * <code>delegate</code> signatures like"," * <code>node.on("hover", overCallback,"," * outCallback)</code>.</p>"," * <p>When processing an atypical argument signature, make sure the"," * args array is returned to the normal signature before returning"," * from the function. For example, in the "hover" example"," * above, the <code>outCallback</code> needs to be <code>splice</code>d"," * out of the array. The expected signature of the args array for"," * <code>on()</code> subscriptions is:</p>"," * <pre>"," * <code>[type, callback, target, contextOverride, argN...]</code>"," * </pre>"," * <p>And for <code>delegate()</code>:</p>"," * <pre>"," * <code>[type, callback, target, filter, contextOverride, argN...]</code>"," * </pre>"," * <p>where <code>target</code> is the node the event is being"," * subscribed for. You can see these signatures documented for"," * <code>Y.on()</code> and <code>Y.delegate()</code> respectively.</p>"," * <p>Whatever gets returned from the function will be stored on the"," * <code>subscription</code> object under"," * <code>subscription._extra</code>.</p></dd>"," * <dt><code>subMatch</code></dt>"," * <dd>"," * <p><code>function (sub, args)</code> Compares a set of"," * subscription arguments against a Subscription object to determine"," * if they match. The default implementation compares the callback"," * function against the second argument passed to"," * <code>Y.on(...)</code> or <code>node.detach(...)</code> etc.</p>"," * </dd>"," * </dl>"," *"," * @method define"," * @param type {String} the name of the event"," * @param config {Object} the prototype definition for the new event (see above)"," * @param force {Boolean} override an existing event (use with caution)"," * @return {SyntheticEvent} the subclass implementation instance created to"," * handle event subscriptions of this type"," * @static"," * @for Event"," * @since 3.1.0"," * @in event-synthetic"," */","Y.Event.define = function (type, config, force) {"," var eventDef, Impl, synth;",""," if (type && type.type) {"," eventDef = type;"," force = config;"," } else if (config) {"," eventDef = Y.merge({ type: type }, config);"," }",""," if (eventDef) {"," if (force || !Y.Node.DOM_EVENTS[eventDef.type]) {"," Impl = function () {"," SyntheticEvent.apply(this, arguments);"," };"," Y.extend(Impl, SyntheticEvent, eventDef);"," synth = new Impl();",""," type = synth.type;",""," Y.Node.DOM_EVENTS[type] = Y.Env.evt.plugins[type] = {"," eventDef: synth,",""," on: function () {"," return synth._on(toArray(arguments));"," },",""," delegate: function () {"," return synth._on(toArray(arguments), true);"," },",""," detach: function () {"," return synth._detach(toArray(arguments));"," }"," };",""," }"," } else if (isString(type) || isArray(type)) {"," Y.Array.each(toArray(type), function (t) {"," Y.Node.DOM_EVENTS[t] = 1;"," });"," }",""," return synth;","};","","","}, '3.13.0', {\"requires\": [\"node-base\", \"event-custom-complex\"]});","","}());"]};