10
__coverage__['build/widget-base/widget-base.js'] = {"path":"build/widget-base/widget-base.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,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":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],"10":[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,0],"22":[0,0],"23":[0,0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,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]},"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,"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},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":23},"end":{"line":1,"column":42}}},"2":{"name":"(anonymous_2)","line":24,"loc":{"start":{"line":24,"column":29},"end":{"line":24,"column":43}}},"3":{"name":"(anonymous_3)","line":56,"loc":{"start":{"line":56,"column":15},"end":{"line":56,"column":26}}},"4":{"name":"Widget","line":87,"loc":{"start":{"line":87,"column":0},"end":{"line":87,"column":24}}},"5":{"name":"(anonymous_5)","line":323,"loc":{"start":{"line":323,"column":22},"end":{"line":323,"column":33}}},"6":{"name":"(anonymous_6)","line":342,"loc":{"start":{"line":342,"column":19},"end":{"line":342,"column":34}}},"7":{"name":"(anonymous_7)","line":377,"loc":{"start":{"line":377,"column":18},"end":{"line":377,"column":30}}},"8":{"name":"(anonymous_8)","line":389,"loc":{"start":{"line":389,"column":17},"end":{"line":389,"column":34}}},"9":{"name":"(anonymous_9)","line":423,"loc":{"start":{"line":423,"column":19},"end":{"line":423,"column":32}}},"10":{"name":"(anonymous_10)","line":435,"loc":{"start":{"line":435,"column":16},"end":{"line":435,"column":27}}},"11":{"name":"(anonymous_11)","line":470,"loc":{"start":{"line":470,"column":13},"end":{"line":470,"column":39}}},"12":{"name":"(anonymous_12)","line":482,"loc":{"start":{"line":482,"column":18},"end":{"line":482,"column":29}}},"13":{"name":"(anonymous_13)","line":538,"loc":{"start":{"line":538,"column":12},"end":{"line":538,"column":33}}},"14":{"name":"(anonymous_14)","line":577,"loc":{"start":{"line":577,"column":19},"end":{"line":577,"column":31}}},"15":{"name":"(anonymous_15)","line":595,"loc":{"start":{"line":595,"column":14},"end":{"line":595,"column":25}}},"16":{"name":"(anonymous_16)","line":648,"loc":{"start":{"line":648,"column":10},"end":{"line":648,"column":21}}},"17":{"name":"(anonymous_17)","line":657,"loc":{"start":{"line":657,"column":10},"end":{"line":657,"column":21}}},"18":{"name":"(anonymous_18)","line":667,"loc":{"start":{"line":667,"column":11},"end":{"line":667,"column":23}}},"19":{"name":"(anonymous_19)","line":677,"loc":{"start":{"line":677,"column":10},"end":{"line":677,"column":22}}},"20":{"name":"(anonymous_20)","line":686,"loc":{"start":{"line":686,"column":12},"end":{"line":686,"column":23}}},"21":{"name":"(anonymous_21)","line":695,"loc":{"start":{"line":695,"column":13},"end":{"line":695,"column":24}}},"22":{"name":"(anonymous_22)","line":704,"loc":{"start":{"line":704,"column":16},"end":{"line":704,"column":33}}},"23":{"name":"(anonymous_23)","line":720,"loc":{"start":{"line":720,"column":16},"end":{"line":720,"column":37}}},"24":{"name":"(anonymous_24)","line":762,"loc":{"start":{"line":762,"column":12},"end":{"line":762,"column":27}}},"25":{"name":"(anonymous_25)","line":774,"loc":{"start":{"line":774,"column":12},"end":{"line":774,"column":27}}},"26":{"name":"(anonymous_26)","line":787,"loc":{"start":{"line":787,"column":17},"end":{"line":787,"column":32}}},"27":{"name":"(anonymous_27)","line":804,"loc":{"start":{"line":804,"column":14},"end":{"line":804,"column":55}}},"28":{"name":"(anonymous_28)","line":831,"loc":{"start":{"line":831,"column":15},"end":{"line":831,"column":26}}},"29":{"name":"(anonymous_29)","line":842,"loc":{"start":{"line":842,"column":27},"end":{"line":842,"column":38}}},"30":{"name":"(anonymous_30)","line":867,"loc":{"start":{"line":867,"column":30},"end":{"line":867,"column":42}}},"31":{"name":"(anonymous_31)","line":887,"loc":{"start":{"line":887,"column":13},"end":{"line":887,"column":24}}},"32":{"name":"(anonymous_32)","line":896,"loc":{"start":{"line":896,"column":16},"end":{"line":896,"column":38}}},"33":{"name":"(anonymous_33)","line":906,"loc":{"start":{"line":906,"column":15},"end":{"line":906,"column":26}}},"34":{"name":"(anonymous_34)","line":935,"loc":{"start":{"line":935,"column":17},"end":{"line":935,"column":39}}},"35":{"name":"(anonymous_35)","line":968,"loc":{"start":{"line":968,"column":13},"end":{"line":968,"column":24}}},"36":{"name":"(anonymous_36)","line":979,"loc":{"start":{"line":979,"column":18},"end":{"line":979,"column":32}}},"37":{"name":"(anonymous_37)","line":991,"loc":{"start":{"line":991,"column":17},"end":{"line":991,"column":31}}},"38":{"name":"(anonymous_38)","line":1001,"loc":{"start":{"line":1001,"column":15},"end":{"line":1001,"column":40}}},"39":{"name":"(anonymous_39)","line":1012,"loc":{"start":{"line":1012,"column":19},"end":{"line":1012,"column":33}}},"40":{"name":"(anonymous_40)","line":1023,"loc":{"start":{"line":1023,"column":20},"end":{"line":1023,"column":34}}},"41":{"name":"(anonymous_41)","line":1036,"loc":{"start":{"line":1036,"column":19},"end":{"line":1036,"column":38}}},"42":{"name":"(anonymous_42)","line":1056,"loc":{"start":{"line":1056,"column":20},"end":{"line":1056,"column":36}}},"43":{"name":"(anonymous_43)","line":1073,"loc":{"start":{"line":1073,"column":21},"end":{"line":1073,"column":36}}},"44":{"name":"(anonymous_44)","line":1086,"loc":{"start":{"line":1086,"column":17},"end":{"line":1086,"column":32}}},"45":{"name":"(anonymous_45)","line":1111,"loc":{"start":{"line":1111,"column":14},"end":{"line":1111,"column":25}}},"46":{"name":"(anonymous_46)","line":1155,"loc":{"start":{"line":1155,"column":12},"end":{"line":1155,"column":23}}},"47":{"name":"(anonymous_47)","line":1164,"loc":{"start":{"line":1164,"column":21},"end":{"line":1164,"column":41}}},"48":{"name":"(anonymous_48)","line":1175,"loc":{"start":{"line":1175,"column":18},"end":{"line":1175,"column":34}}},"49":{"name":"(anonymous_49)","line":1191,"loc":{"start":{"line":1191,"column":18},"end":{"line":1191,"column":34}}},"50":{"name":"(anonymous_50)","line":1204,"loc":{"start":{"line":1204,"column":17},"end":{"line":1204,"column":29}}},"51":{"name":"(anonymous_51)","line":1219,"loc":{"start":{"line":1219,"column":17},"end":{"line":1219,"column":35}}},"52":{"name":"(anonymous_52)","line":1231,"loc":{"start":{"line":1231,"column":16},"end":{"line":1231,"column":30}}},"53":{"name":"(anonymous_53)","line":1243,"loc":{"start":{"line":1243,"column":17},"end":{"line":1243,"column":28}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1274,"column":3}},"2":{"start":{"line":16,"column":0},"end":{"line":68,"column":20}},"3":{"start":{"line":25,"column":8},"end":{"line":25,"column":68}},"4":{"start":{"line":87,"column":0},"end":{"line":112,"column":1}},"5":{"start":{"line":90,"column":4},"end":{"line":93,"column":41}},"6":{"start":{"line":95,"column":4},"end":{"line":95,"column":22}},"7":{"start":{"line":96,"column":4},"end":{"line":96,"column":96}},"8":{"start":{"line":99,"column":4},"end":{"line":99,"column":26}},"9":{"start":{"line":101,"column":4},"end":{"line":101,"column":55}},"10":{"start":{"line":103,"column":4},"end":{"line":103,"column":32}},"11":{"start":{"line":105,"column":4},"end":{"line":111,"column":5}},"12":{"start":{"line":107,"column":8},"end":{"line":109,"column":9}},"13":{"start":{"line":108,"column":12},"end":{"line":108,"column":32}},"14":{"start":{"line":110,"column":8},"end":{"line":110,"column":34}},"15":{"start":{"line":125,"column":0},"end":{"line":125,"column":23}},"16":{"start":{"line":136,"column":0},"end":{"line":136,"column":26}},"17":{"start":{"line":146,"column":0},"end":{"line":146,"column":21}},"18":{"start":{"line":157,"column":0},"end":{"line":160,"column":2}},"19":{"start":{"line":171,"column":0},"end":{"line":174,"column":2}},"20":{"start":{"line":184,"column":0},"end":{"line":188,"column":2}},"21":{"start":{"line":197,"column":0},"end":{"line":201,"column":2}},"22":{"start":{"line":214,"column":0},"end":{"line":217,"column":2}},"23":{"start":{"line":227,"column":0},"end":{"line":230,"column":2}},"24":{"start":{"line":239,"column":0},"end":{"line":241,"column":2}},"25":{"start":{"line":249,"column":0},"end":{"line":251,"column":2}},"26":{"start":{"line":260,"column":0},"end":{"line":262,"column":2}},"27":{"start":{"line":271,"column":0},"end":{"line":273,"column":2}},"28":{"start":{"line":281,"column":0},"end":{"line":285,"column":2}},"29":{"start":{"line":294,"column":0},"end":{"line":297,"column":2}},"30":{"start":{"line":308,"column":0},"end":{"line":308,"column":61}},"31":{"start":{"line":323,"column":0},"end":{"line":326,"column":2}},"32":{"start":{"line":325,"column":4},"end":{"line":325,"column":103}},"33":{"start":{"line":328,"column":0},"end":{"line":328,"column":42}},"34":{"start":{"line":342,"column":0},"end":{"line":355,"column":2}},"35":{"start":{"line":343,"column":4},"end":{"line":344,"column":45}},"36":{"start":{"line":346,"column":4},"end":{"line":346,"column":26}},"37":{"start":{"line":347,"column":4},"end":{"line":352,"column":5}},"38":{"start":{"line":348,"column":8},"end":{"line":348,"column":55}},"39":{"start":{"line":349,"column":8},"end":{"line":351,"column":9}},"40":{"start":{"line":350,"column":12},"end":{"line":350,"column":53}},"41":{"start":{"line":354,"column":4},"end":{"line":354,"column":26}},"42":{"start":{"line":357,"column":0},"end":{"line":1258,"column":3}},"43":{"start":{"line":378,"column":8},"end":{"line":378,"column":105}},"44":{"start":{"line":391,"column":8},"end":{"line":391,"column":40}},"45":{"start":{"line":393,"column":8},"end":{"line":395,"column":9}},"46":{"start":{"line":394,"column":12},"end":{"line":394,"column":43}},"47":{"start":{"line":409,"column":8},"end":{"line":411,"column":9}},"48":{"start":{"line":410,"column":12},"end":{"line":410,"column":38}},"49":{"start":{"line":424,"column":8},"end":{"line":424,"column":30}},"50":{"start":{"line":437,"column":8},"end":{"line":438,"column":19}},"51":{"start":{"line":440,"column":8},"end":{"line":448,"column":9}},"52":{"start":{"line":441,"column":12},"end":{"line":441,"column":47}},"53":{"start":{"line":443,"column":12},"end":{"line":445,"column":13}},"54":{"start":{"line":444,"column":16},"end":{"line":444,"column":42}},"55":{"start":{"line":447,"column":12},"end":{"line":447,"column":31}},"56":{"start":{"line":471,"column":8},"end":{"line":471,"column":48}},"57":{"start":{"line":472,"column":8},"end":{"line":472,"column":53}},"58":{"start":{"line":484,"column":8},"end":{"line":487,"column":17}},"59":{"start":{"line":489,"column":8},"end":{"line":489,"column":64}},"60":{"start":{"line":491,"column":8},"end":{"line":493,"column":9}},"61":{"start":{"line":492,"column":12},"end":{"line":492,"column":36}},"62":{"start":{"line":495,"column":8},"end":{"line":495,"column":36}},"63":{"start":{"line":497,"column":8},"end":{"line":502,"column":9}},"64":{"start":{"line":498,"column":12},"end":{"line":500,"column":13}},"65":{"start":{"line":499,"column":16},"end":{"line":499,"column":35}},"66":{"start":{"line":501,"column":12},"end":{"line":501,"column":36}},"67":{"start":{"line":504,"column":8},"end":{"line":509,"column":9}},"68":{"start":{"line":505,"column":12},"end":{"line":507,"column":13}},"69":{"start":{"line":506,"column":16},"end":{"line":506,"column":36}},"70":{"start":{"line":508,"column":12},"end":{"line":508,"column":37}},"71":{"start":{"line":540,"column":8},"end":{"line":565,"column":9}},"72":{"start":{"line":557,"column":12},"end":{"line":562,"column":15}},"73":{"start":{"line":564,"column":12},"end":{"line":564,"column":88}},"74":{"start":{"line":566,"column":8},"end":{"line":566,"column":20}},"75":{"start":{"line":578,"column":8},"end":{"line":578,"column":40}},"76":{"start":{"line":580,"column":8},"end":{"line":580,"column":24}},"77":{"start":{"line":581,"column":8},"end":{"line":581,"column":34}},"78":{"start":{"line":583,"column":8},"end":{"line":583,"column":40}},"79":{"start":{"line":597,"column":8},"end":{"line":597,"column":26}},"80":{"start":{"line":599,"column":8},"end":{"line":599,"column":27}},"81":{"start":{"line":600,"column":8},"end":{"line":600,"column":26}},"82":{"start":{"line":602,"column":8},"end":{"line":602,"column":25}},"83":{"start":{"line":603,"column":8},"end":{"line":603,"column":24}},"84":{"start":{"line":605,"column":8},"end":{"line":605,"column":25}},"85":{"start":{"line":606,"column":8},"end":{"line":606,"column":24}},"86":{"start":{"line":649,"column":8},"end":{"line":649,"column":40}},"87":{"start":{"line":658,"column":8},"end":{"line":658,"column":39}},"88":{"start":{"line":668,"column":8},"end":{"line":668,"column":40}},"89":{"start":{"line":678,"column":8},"end":{"line":678,"column":41}},"90":{"start":{"line":687,"column":8},"end":{"line":687,"column":41}},"91":{"start":{"line":696,"column":8},"end":{"line":696,"column":40}},"92":{"start":{"line":705,"column":8},"end":{"line":705,"column":92}},"93":{"start":{"line":724,"column":8},"end":{"line":730,"column":128}},"94":{"start":{"line":733,"column":8},"end":{"line":735,"column":9}},"95":{"start":{"line":734,"column":12},"end":{"line":734,"column":40}},"96":{"start":{"line":737,"column":8},"end":{"line":743,"column":9}},"97":{"start":{"line":739,"column":12},"end":{"line":741,"column":13}},"98":{"start":{"line":740,"column":16},"end":{"line":740,"column":48}},"99":{"start":{"line":742,"column":12},"end":{"line":742,"column":48}},"100":{"start":{"line":745,"column":8},"end":{"line":745,"column":78}},"101":{"start":{"line":747,"column":8},"end":{"line":751,"column":9}},"102":{"start":{"line":748,"column":12},"end":{"line":748,"column":48}},"103":{"start":{"line":749,"column":15},"end":{"line":751,"column":9}},"104":{"start":{"line":750,"column":12},"end":{"line":750,"column":50}},"105":{"start":{"line":763,"column":8},"end":{"line":763,"column":78}},"106":{"start":{"line":775,"column":8},"end":{"line":775,"column":130}},"107":{"start":{"line":788,"column":8},"end":{"line":788,"column":42}},"108":{"start":{"line":806,"column":8},"end":{"line":806,"column":30}},"109":{"start":{"line":808,"column":8},"end":{"line":816,"column":9}},"110":{"start":{"line":809,"column":12},"end":{"line":809,"column":41}},"111":{"start":{"line":811,"column":12},"end":{"line":815,"column":13}},"112":{"start":{"line":812,"column":16},"end":{"line":812,"column":44}},"113":{"start":{"line":814,"column":16},"end":{"line":814,"column":44}},"114":{"start":{"line":818,"column":8},"end":{"line":820,"column":9}},"115":{"start":{"line":819,"column":12},"end":{"line":819,"column":41}},"116":{"start":{"line":822,"column":8},"end":{"line":822,"column":20}},"117":{"start":{"line":832,"column":8},"end":{"line":832,"column":36}},"118":{"start":{"line":833,"column":8},"end":{"line":833,"column":42}},"119":{"start":{"line":843,"column":8},"end":{"line":846,"column":14}},"120":{"start":{"line":848,"column":8},"end":{"line":848,"column":52}},"121":{"start":{"line":851,"column":8},"end":{"line":854,"column":9}},"122":{"start":{"line":852,"column":12},"end":{"line":852,"column":28}},"123":{"start":{"line":853,"column":12},"end":{"line":853,"column":88}},"124":{"start":{"line":857,"column":8},"end":{"line":857,"column":67}},"125":{"start":{"line":869,"column":8},"end":{"line":872,"column":55}},"126":{"start":{"line":874,"column":8},"end":{"line":875,"column":43}},"127":{"start":{"line":877,"column":8},"end":{"line":878,"column":42}},"128":{"start":{"line":888,"column":8},"end":{"line":888,"column":46}},"129":{"start":{"line":889,"column":8},"end":{"line":889,"column":24}},"130":{"start":{"line":897,"column":8},"end":{"line":897,"column":37}},"131":{"start":{"line":907,"column":8},"end":{"line":908,"column":44}},"132":{"start":{"line":911,"column":8},"end":{"line":916,"column":9}},"133":{"start":{"line":912,"column":12},"end":{"line":912,"column":92}},"134":{"start":{"line":913,"column":12},"end":{"line":915,"column":14}},"135":{"start":{"line":918,"column":8},"end":{"line":918,"column":58}},"136":{"start":{"line":919,"column":8},"end":{"line":919,"column":38}},"137":{"start":{"line":926,"column":8},"end":{"line":928,"column":9}},"138":{"start":{"line":927,"column":12},"end":{"line":927,"column":88}},"139":{"start":{"line":937,"column":8},"end":{"line":940,"column":46}},"140":{"start":{"line":942,"column":8},"end":{"line":955,"column":9}},"141":{"start":{"line":944,"column":12},"end":{"line":944,"column":51}},"142":{"start":{"line":946,"column":12},"end":{"line":949,"column":13}},"143":{"start":{"line":947,"column":16},"end":{"line":947,"column":44}},"144":{"start":{"line":948,"column":16},"end":{"line":948,"column":39}},"145":{"start":{"line":951,"column":12},"end":{"line":954,"column":13}},"146":{"start":{"line":952,"column":16},"end":{"line":952,"column":37}},"147":{"start":{"line":953,"column":16},"end":{"line":953,"column":41}},"148":{"start":{"line":957,"column":8},"end":{"line":959,"column":9}},"149":{"start":{"line":958,"column":12},"end":{"line":958,"column":33}},"150":{"start":{"line":969,"column":8},"end":{"line":969,"column":46}},"151":{"start":{"line":980,"column":8},"end":{"line":980,"column":36}},"152":{"start":{"line":981,"column":8},"end":{"line":981,"column":60}},"153":{"start":{"line":992,"column":8},"end":{"line":992,"column":35}},"154":{"start":{"line":1002,"column":8},"end":{"line":1002,"column":96}},"155":{"start":{"line":1013,"column":8},"end":{"line":1013,"column":76}},"156":{"start":{"line":1024,"column":8},"end":{"line":1024,"column":77}},"157":{"start":{"line":1037,"column":9},"end":{"line":1037,"column":50}},"158":{"start":{"line":1038,"column":9},"end":{"line":1038,"column":66}},"159":{"start":{"line":1040,"column":9},"end":{"line":1046,"column":10}},"160":{"start":{"line":1041,"column":12},"end":{"line":1045,"column":13}},"161":{"start":{"line":1042,"column":16},"end":{"line":1042,"column":36}},"162":{"start":{"line":1044,"column":16},"end":{"line":1044,"column":35}},"163":{"start":{"line":1057,"column":8},"end":{"line":1057,"column":49}},"164":{"start":{"line":1059,"column":8},"end":{"line":1063,"column":9}},"165":{"start":{"line":1060,"column":12},"end":{"line":1060,"column":46}},"166":{"start":{"line":1062,"column":12},"end":{"line":1062,"column":51}},"167":{"start":{"line":1074,"column":8},"end":{"line":1076,"column":9}},"168":{"start":{"line":1075,"column":12},"end":{"line":1075,"column":34}},"169":{"start":{"line":1087,"column":8},"end":{"line":1088,"column":42}},"170":{"start":{"line":1090,"column":8},"end":{"line":1095,"column":9}},"171":{"start":{"line":1091,"column":12},"end":{"line":1091,"column":43}},"172":{"start":{"line":1092,"column":12},"end":{"line":1092,"column":56}},"173":{"start":{"line":1094,"column":12},"end":{"line":1094,"column":34}},"174":{"start":{"line":1097,"column":8},"end":{"line":1102,"column":9}},"175":{"start":{"line":1098,"column":12},"end":{"line":1098,"column":36}},"176":{"start":{"line":1099,"column":12},"end":{"line":1099,"column":49}},"177":{"start":{"line":1101,"column":12},"end":{"line":1101,"column":36}},"178":{"start":{"line":1113,"column":8},"end":{"line":1113,"column":52}},"179":{"start":{"line":1156,"column":8},"end":{"line":1156,"column":24}},"180":{"start":{"line":1165,"column":8},"end":{"line":1165,"column":60}},"181":{"start":{"line":1176,"column":8},"end":{"line":1177,"column":29}},"182":{"start":{"line":1179,"column":8},"end":{"line":1181,"column":9}},"183":{"start":{"line":1180,"column":12},"end":{"line":1180,"column":59}},"184":{"start":{"line":1192,"column":8},"end":{"line":1192,"column":38}},"185":{"start":{"line":1193,"column":8},"end":{"line":1196,"column":9}},"186":{"start":{"line":1194,"column":12},"end":{"line":1194,"column":28}},"187":{"start":{"line":1195,"column":12},"end":{"line":1195,"column":63}},"188":{"start":{"line":1205,"column":8},"end":{"line":1207,"column":9}},"189":{"start":{"line":1206,"column":12},"end":{"line":1206,"column":70}},"190":{"start":{"line":1220,"column":8},"end":{"line":1220,"column":51}},"191":{"start":{"line":1232,"column":8},"end":{"line":1232,"column":38}},"192":{"start":{"line":1244,"column":8},"end":{"line":1244,"column":33}},"193":{"start":{"line":1260,"column":0},"end":{"line":1260,"column":18}}},"branchMap":{"1":{"line":96,"type":"binary-expr","locations":[{"start":{"line":96,"column":24},"end":{"line":96,"column":46}},{"start":{"line":96,"column":50},"end":{"line":96,"column":95}}]},"2":{"line":99,"type":"binary-expr","locations":[{"start":{"line":99,"column":13},"end":{"line":99,"column":19}},{"start":{"line":99,"column":23},"end":{"line":99,"column":25}}]},"3":{"line":105,"type":"if","locations":[{"start":{"line":105,"column":4},"end":{"line":105,"column":4}},{"start":{"line":105,"column":4},"end":{"line":105,"column":4}}]},"4":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":107,"column":8}},{"start":{"line":107,"column":8},"end":{"line":107,"column":8}}]},"5":{"line":347,"type":"if","locations":[{"start":{"line":347,"column":4},"end":{"line":347,"column":4}},{"start":{"line":347,"column":4},"end":{"line":347,"column":4}}]},"6":{"line":349,"type":"if","locations":[{"start":{"line":349,"column":8},"end":{"line":349,"column":8}},{"start":{"line":349,"column":8},"end":{"line":349,"column":8}}]},"7":{"line":354,"type":"binary-expr","locations":[{"start":{"line":354,"column":11},"end":{"line":354,"column":17}},{"start":{"line":354,"column":21},"end":{"line":354,"column":25}}]},"8":{"line":393,"type":"if","locations":[{"start":{"line":393,"column":8},"end":{"line":393,"column":8}},{"start":{"line":393,"column":8},"end":{"line":393,"column":8}}]},"9":{"line":409,"type":"if","locations":[{"start":{"line":409,"column":8},"end":{"line":409,"column":8}},{"start":{"line":409,"column":8},"end":{"line":409,"column":8}}]},"10":{"line":440,"type":"if","locations":[{"start":{"line":440,"column":8},"end":{"line":440,"column":8}},{"start":{"line":440,"column":8},"end":{"line":440,"column":8}}]},"11":{"line":443,"type":"if","locations":[{"start":{"line":443,"column":12},"end":{"line":443,"column":12}},{"start":{"line":443,"column":12},"end":{"line":443,"column":12}}]},"12":{"line":489,"type":"binary-expr","locations":[{"start":{"line":489,"column":15},"end":{"line":489,"column":26}},{"start":{"line":489,"column":30},"end":{"line":489,"column":63}}]},"13":{"line":491,"type":"if","locations":[{"start":{"line":491,"column":8},"end":{"line":491,"column":8}},{"start":{"line":491,"column":8},"end":{"line":491,"column":8}}]},"14":{"line":497,"type":"if","locations":[{"start":{"line":497,"column":8},"end":{"line":497,"column":8}},{"start":{"line":497,"column":8},"end":{"line":497,"column":8}}]},"15":{"line":498,"type":"if","locations":[{"start":{"line":498,"column":12},"end":{"line":498,"column":12}},{"start":{"line":498,"column":12},"end":{"line":498,"column":12}}]},"16":{"line":504,"type":"if","locations":[{"start":{"line":504,"column":8},"end":{"line":504,"column":8}},{"start":{"line":504,"column":8},"end":{"line":504,"column":8}}]},"17":{"line":505,"type":"if","locations":[{"start":{"line":505,"column":12},"end":{"line":505,"column":12}},{"start":{"line":505,"column":12},"end":{"line":505,"column":12}}]},"18":{"line":540,"type":"if","locations":[{"start":{"line":540,"column":8},"end":{"line":540,"column":8}},{"start":{"line":540,"column":8},"end":{"line":540,"column":8}}]},"19":{"line":540,"type":"binary-expr","locations":[{"start":{"line":540,"column":12},"end":{"line":540,"column":32}},{"start":{"line":540,"column":36},"end":{"line":540,"column":55}}]},"20":{"line":564,"type":"cond-expr","locations":[{"start":{"line":564,"column":58},"end":{"line":564,"column":78}},{"start":{"line":564,"column":81},"end":{"line":564,"column":85}}]},"21":{"line":730,"type":"binary-expr","locations":[{"start":{"line":730,"column":19},"end":{"line":730,"column":26}},{"start":{"line":730,"column":30},"end":{"line":730,"column":57}},{"start":{"line":730,"column":62},"end":{"line":730,"column":93}},{"start":{"line":730,"column":97},"end":{"line":730,"column":127}}]},"22":{"line":733,"type":"if","locations":[{"start":{"line":733,"column":8},"end":{"line":733,"column":8}},{"start":{"line":733,"column":8},"end":{"line":733,"column":8}}]},"23":{"line":733,"type":"binary-expr","locations":[{"start":{"line":733,"column":12},"end":{"line":733,"column":19}},{"start":{"line":733,"column":23},"end":{"line":733,"column":53}},{"start":{"line":733,"column":57},"end":{"line":733,"column":79}}]},"24":{"line":737,"type":"if","locations":[{"start":{"line":737,"column":8},"end":{"line":737,"column":8}},{"start":{"line":737,"column":8},"end":{"line":737,"column":8}}]},"25":{"line":737,"type":"binary-expr","locations":[{"start":{"line":737,"column":12},"end":{"line":737,"column":63}},{"start":{"line":737,"column":67},"end":{"line":737,"column":101}}]},"26":{"line":739,"type":"if","locations":[{"start":{"line":739,"column":12},"end":{"line":739,"column":12}},{"start":{"line":739,"column":12},"end":{"line":739,"column":12}}]},"27":{"line":745,"type":"binary-expr","locations":[{"start":{"line":745,"column":21},"end":{"line":745,"column":31}},{"start":{"line":745,"column":36},"end":{"line":745,"column":49}},{"start":{"line":745,"column":53},"end":{"line":745,"column":76}}]},"28":{"line":747,"type":"if","locations":[{"start":{"line":747,"column":8},"end":{"line":747,"column":8}},{"start":{"line":747,"column":8},"end":{"line":747,"column":8}}]},"29":{"line":749,"type":"if","locations":[{"start":{"line":749,"column":15},"end":{"line":749,"column":15}},{"start":{"line":749,"column":15},"end":{"line":749,"column":15}}]},"30":{"line":775,"type":"cond-expr","locations":[{"start":{"line":775,"column":50},"end":{"line":775,"column":72}},{"start":{"line":775,"column":75},"end":{"line":775,"column":129}}]},"31":{"line":788,"type":"binary-expr","locations":[{"start":{"line":788,"column":15},"end":{"line":788,"column":33}},{"start":{"line":788,"column":37},"end":{"line":788,"column":41}}]},"32":{"line":808,"type":"if","locations":[{"start":{"line":808,"column":8},"end":{"line":808,"column":8}},{"start":{"line":808,"column":8},"end":{"line":808,"column":8}}]},"33":{"line":811,"type":"if","locations":[{"start":{"line":811,"column":12},"end":{"line":811,"column":12}},{"start":{"line":811,"column":12},"end":{"line":811,"column":12}}]},"34":{"line":818,"type":"if","locations":[{"start":{"line":818,"column":8},"end":{"line":818,"column":8}},{"start":{"line":818,"column":8},"end":{"line":818,"column":8}}]},"35":{"line":819,"type":"binary-expr","locations":[{"start":{"line":819,"column":25},"end":{"line":819,"column":27}},{"start":{"line":819,"column":31},"end":{"line":819,"column":39}}]},"36":{"line":853,"type":"binary-expr","locations":[{"start":{"line":853,"column":33},"end":{"line":853,"column":46}},{"start":{"line":853,"column":50},"end":{"line":853,"column":86}}]},"37":{"line":911,"type":"if","locations":[{"start":{"line":911,"column":8},"end":{"line":911,"column":8}},{"start":{"line":911,"column":8},"end":{"line":911,"column":8}}]},"38":{"line":926,"type":"if","locations":[{"start":{"line":926,"column":8},"end":{"line":926,"column":8}},{"start":{"line":926,"column":8},"end":{"line":926,"column":8}}]},"39":{"line":942,"type":"if","locations":[{"start":{"line":942,"column":8},"end":{"line":942,"column":8}},{"start":{"line":942,"column":8},"end":{"line":942,"column":8}}]},"40":{"line":946,"type":"if","locations":[{"start":{"line":946,"column":12},"end":{"line":946,"column":12}},{"start":{"line":946,"column":12},"end":{"line":946,"column":12}}]},"41":{"line":951,"type":"if","locations":[{"start":{"line":951,"column":12},"end":{"line":951,"column":12}},{"start":{"line":951,"column":12},"end":{"line":951,"column":12}}]},"42":{"line":957,"type":"if","locations":[{"start":{"line":957,"column":8},"end":{"line":957,"column":8}},{"start":{"line":957,"column":8},"end":{"line":957,"column":8}}]},"43":{"line":957,"type":"binary-expr","locations":[{"start":{"line":957,"column":12},"end":{"line":957,"column":18}},{"start":{"line":957,"column":22},"end":{"line":957,"column":33}}]},"44":{"line":981,"type":"binary-expr","locations":[{"start":{"line":981,"column":24},"end":{"line":981,"column":41}},{"start":{"line":981,"column":45},"end":{"line":981,"column":57}}]},"45":{"line":1002,"type":"cond-expr","locations":[{"start":{"line":1002,"column":69},"end":{"line":1002,"column":88}},{"start":{"line":1002,"column":91},"end":{"line":1002,"column":94}}]},"46":{"line":1040,"type":"if","locations":[{"start":{"line":1040,"column":9},"end":{"line":1040,"column":9}},{"start":{"line":1040,"column":9},"end":{"line":1040,"column":9}}]},"47":{"line":1041,"type":"if","locations":[{"start":{"line":1041,"column":12},"end":{"line":1041,"column":12}},{"start":{"line":1041,"column":12},"end":{"line":1041,"column":12}}]},"48":{"line":1059,"type":"if","locations":[{"start":{"line":1059,"column":8},"end":{"line":1059,"column":8}},{"start":{"line":1059,"column":8},"end":{"line":1059,"column":8}}]},"49":{"line":1074,"type":"if","locations":[{"start":{"line":1074,"column":8},"end":{"line":1074,"column":8}},{"start":{"line":1074,"column":8},"end":{"line":1074,"column":8}}]},"50":{"line":1090,"type":"if","locations":[{"start":{"line":1090,"column":8},"end":{"line":1090,"column":8}},{"start":{"line":1090,"column":8},"end":{"line":1090,"column":8}}]},"51":{"line":1090,"type":"binary-expr","locations":[{"start":{"line":1090,"column":12},"end":{"line":1090,"column":24}},{"start":{"line":1090,"column":29},"end":{"line":1090,"column":52}}]},"52":{"line":1097,"type":"if","locations":[{"start":{"line":1097,"column":8},"end":{"line":1097,"column":8}},{"start":{"line":1097,"column":8},"end":{"line":1097,"column":8}}]},"53":{"line":1165,"type":"binary-expr","locations":[{"start":{"line":1165,"column":16},"end":{"line":1165,"column":36}},{"start":{"line":1165,"column":40},"end":{"line":1165,"column":58}}]},"54":{"line":1205,"type":"if","locations":[{"start":{"line":1205,"column":8},"end":{"line":1205,"column":8}},{"start":{"line":1205,"column":8},"end":{"line":1205,"column":8}}]}},"code":["(function () { YUI.add('widget-base', function (Y, NAME) {","","/**"," * Provides the base Widget class, with HTML Parser support"," *"," * @module widget"," * @main widget"," */","","/**"," * Provides the base Widget class"," *"," * @module widget"," * @submodule widget-base"," */","var L = Y.Lang,"," Node = Y.Node,",""," ClassNameManager = Y.ClassNameManager,",""," _getClassName = ClassNameManager.getClassName,"," _getWidgetClassName,",""," _toInitialCap = Y.cached(function(str) {"," return str.substring(0, 1).toUpperCase() + str.substring(1);"," }),",""," // K-Weight, IE GC optimizations"," CONTENT = \"content\","," VISIBLE = \"visible\","," HIDDEN = \"hidden\","," DISABLED = \"disabled\","," FOCUSED = \"focused\","," WIDTH = \"width\","," HEIGHT = \"height\","," BOUNDING_BOX = \"boundingBox\","," CONTENT_BOX = \"contentBox\","," PARENT_NODE = \"parentNode\","," OWNER_DOCUMENT = \"ownerDocument\","," AUTO = \"auto\","," SRC_NODE = \"srcNode\","," BODY = \"body\","," TAB_INDEX = \"tabIndex\","," ID = \"id\","," RENDER = \"render\","," RENDERED = \"rendered\","," DESTROYED = \"destroyed\","," STRINGS = \"strings\","," DIV = \"<div></div>\","," CHANGE = \"Change\","," LOADING = \"loading\",",""," _UISET = \"_uiSet\",",""," EMPTY_STR = \"\","," EMPTY_FN = function() {},",""," TRUE = true,"," FALSE = false,",""," UI,"," ATTRS = {},"," UI_ATTRS = [VISIBLE, DISABLED, HEIGHT, WIDTH, FOCUSED, TAB_INDEX],",""," WEBKIT = Y.UA.webkit,",""," // Widget nodeid-to-instance map."," _instances = {};","","/**"," * A base class for widgets, providing:"," * <ul>"," * <li>The render lifecycle method, in addition to the init and destroy"," * lifecycle methods provide by Base</li>"," * <li>Abstract methods to support consistent MVC structure across"," * widgets: renderer, renderUI, bindUI, syncUI</li>"," * <li>Support for common widget attributes, such as boundingBox, contentBox, visible,"," * disabled, focused, strings</li>"," * </ul>"," *"," * @param config {Object} Object literal specifying widget configuration properties."," *"," * @class Widget"," * @constructor"," * @extends Base"," */","function Widget(config) {",""," // kweight"," var widget = this,"," parentNode,"," render,"," constructor = widget.constructor;",""," widget._strs = {};"," widget._cssPrefix = constructor.CSS_PREFIX || _getClassName(constructor.NAME.toLowerCase());",""," // We need a config for HTML_PARSER to work."," config = config || {};",""," Widget.superclass.constructor.call(widget, config);",""," render = widget.get(RENDER);",""," if (render) {"," // Render could be a node or boolean"," if (render !== TRUE) {"," parentNode = render;"," }"," widget.render(parentNode);"," }","}","","/**"," * Static property provides a string to identify the class."," * <p>"," * Currently used to apply class identifiers to the bounding box"," * and to classify events fired by the widget."," * </p>"," *"," * @property NAME"," * @type String"," * @static"," */","Widget.NAME = \"widget\";","","/**"," * Constant used to identify state changes originating from"," * the DOM (as opposed to the JavaScript model)."," *"," * @property UI_SRC"," * @type String"," * @static"," * @final"," */","UI = Widget.UI_SRC = \"ui\";","","/**"," * Static property used to define the default attribute"," * configuration for the Widget."," *"," * @property ATTRS"," * @type Object"," * @static"," */","Widget.ATTRS = ATTRS;","","// Trying to optimize kweight by setting up attrs this way saves about 0.4K min'd","","/**"," * @attribute id"," * @writeOnce"," * @default Generated using guid()"," * @type String"," */","","ATTRS[ID] = {"," valueFn: \"_guid\","," writeOnce: TRUE","};","","/**"," * Flag indicating whether or not this Widget"," * has been through the render lifecycle phase."," *"," * @attribute rendered"," * @readOnly"," * @default false"," * @type boolean"," */","ATTRS[RENDERED] = {"," value:FALSE,"," readOnly: TRUE","};","","/**"," * @attribute boundingBox"," * @description The outermost DOM node for the Widget, used for sizing and positioning"," * of a Widget as well as a containing element for any decorator elements used"," * for skinning."," * @type String | Node"," * @writeOnce"," */","ATTRS[BOUNDING_BOX] = {"," value:null,"," setter: \"_setBB\","," writeOnce: TRUE","};","","/**"," * @attribute contentBox"," * @description A DOM node that is a direct descendant of a Widget's bounding box that"," * houses its content."," * @type String | Node"," * @writeOnce"," */","ATTRS[CONTENT_BOX] = {"," valueFn:\"_defaultCB\","," setter: \"_setCB\","," writeOnce: TRUE","};","","/**"," * @attribute tabIndex"," * @description Number (between -32767 to 32767) indicating the widget's"," * position in the default tab flow. The value is used to set the"," * \"tabIndex\" attribute on the widget's bounding box. Negative values allow"," * the widget to receive DOM focus programmatically (by calling the focus"," * method), while being removed from the default tab flow. A value of"," * null removes the \"tabIndex\" attribute from the widget's bounding box."," * @type Number"," * @default null"," */","ATTRS[TAB_INDEX] = {"," value: null,"," validator: \"_validTabIndex\"","};","","/**"," * @attribute focused"," * @description Boolean indicating if the Widget, or one of its descendants,"," * has focus."," * @readOnly"," * @default false"," * @type boolean"," */","ATTRS[FOCUSED] = {"," value: FALSE,"," readOnly:TRUE","};","","/**"," * @attribute disabled"," * @description Boolean indicating if the Widget should be disabled. The disabled implementation"," * is left to the specific classes extending widget."," * @default false"," * @type boolean"," */","ATTRS[DISABLED] = {"," value: FALSE","};","","/**"," * @attribute visible"," * @description Boolean indicating whether or not the Widget is visible."," * @default TRUE"," * @type boolean"," */","ATTRS[VISIBLE] = {"," value: TRUE","};","","/**"," * @attribute height"," * @description String with units, or number, representing the height of the Widget. If a number is provided,"," * the default unit, defined by the Widgets DEF_UNIT, property is used."," * @default EMPTY_STR"," * @type {String | Number}"," */","ATTRS[HEIGHT] = {"," value: EMPTY_STR","};","","/**"," * @attribute width"," * @description String with units, or number, representing the width of the Widget. If a number is provided,"," * the default unit, defined by the Widgets DEF_UNIT, property is used."," * @default EMPTY_STR"," * @type {String | Number}"," */","ATTRS[WIDTH] = {"," value: EMPTY_STR","};","","/**"," * @attribute strings"," * @description Collection of strings used to label elements of the Widget's UI."," * @default null"," * @type Object"," */","ATTRS[STRINGS] = {"," value: {},"," setter: \"_strSetter\","," getter: \"_strGetter\"","};","","/**"," * Whether or not to render the widget automatically after init, and optionally, to which parent node."," *"," * @attribute render"," * @type boolean | Node"," * @writeOnce"," */","ATTRS[RENDER] = {"," value:FALSE,"," writeOnce:TRUE","};","","/**"," * The css prefix which the static Widget.getClassName method should use when constructing class names"," *"," * @property CSS_PREFIX"," * @type String"," * @default Widget.NAME.toLowerCase()"," * @private"," * @static"," */","Widget.CSS_PREFIX = _getClassName(Widget.NAME.toLowerCase());","","/**"," * Generate a standard prefixed classname for the Widget, prefixed by the default prefix defined"," * by the <code>Y.config.classNamePrefix</code> attribute used by <code>ClassNameManager</code> and"," * <code>Widget.NAME.toLowerCase()</code> (e.g. \"yui-widget-xxxxx-yyyyy\", based on default values for"," * the prefix and widget class name)."," * <p>"," * The instance based version of this method can be used to generate standard prefixed classnames,"," * based on the instances NAME, as opposed to Widget.NAME. This method should be used when you"," * need to use a constant class name across different types instances."," * </p>"," * @method getClassName"," * @param {String*} args* 0..n strings which should be concatenated, using the default separator defined by ClassNameManager, to create the class name"," */","Widget.getClassName = function() {"," // arguments needs to be array'fied to concat"," return _getClassName.apply(ClassNameManager, [Widget.CSS_PREFIX].concat(Y.Array(arguments), true));","};","","_getWidgetClassName = Widget.getClassName;","","/**"," * Returns the widget instance whose bounding box contains, or is, the given node."," * <p>"," * In the case of nested widgets, the nearest bounding box ancestor is used to"," * return the widget instance."," * </p>"," * @method getByNode"," * @static"," * @param node {Node | String} The node for which to return a Widget instance. If a selector"," * string is passed in, which selects more than one node, the first node found is used."," * @return {Widget} Widget instance, or null if not found."," */","Widget.getByNode = function(node) {"," var widget,"," widgetMarker = _getWidgetClassName();",""," node = Node.one(node);"," if (node) {"," node = node.ancestor(\".\" + widgetMarker, true);"," if (node) {"," widget = _instances[Y.stamp(node, true)];"," }"," }",""," return widget || null;","};","","Y.extend(Widget, Y.Base, {",""," /**"," * Returns a class name prefixed with the the value of the"," * <code>YUI.config.classNamePrefix</code> attribute + the instances <code>NAME</code> property."," * Uses <code>YUI.config.classNameDelimiter</code> attribute to delimit the provided strings."," * e.g."," * <code>"," * <pre>"," * // returns \"yui-slider-foo-bar\", for a slider instance"," * var scn = slider.getClassName('foo','bar');"," *"," * // returns \"yui-overlay-foo-bar\", for an overlay instance"," * var ocn = overlay.getClassName('foo','bar');"," * </pre>"," * </code>"," *"," * @method getClassName"," * @param {String}+ One or more classname bits to be joined and prefixed"," */"," getClassName: function () {"," return _getClassName.apply(ClassNameManager, [this._cssPrefix].concat(Y.Array(arguments), true));"," },",""," /**"," * Initializer lifecycle implementation for the Widget class. Registers the"," * widget instance, and runs through the Widget's HTML_PARSER definition."," *"," * @method initializer"," * @protected"," * @param config {Object} Configuration object literal for the widget"," */"," initializer: function(config) {",""," var bb = this.get(BOUNDING_BOX);",""," if (bb instanceof Node) {"," this._mapInstance(Y.stamp(bb));"," }",""," /**"," * Notification event, which widget implementations can fire, when"," * they change the content of the widget. This event has no default"," * behavior and cannot be prevented, so the \"on\" or \"after\""," * moments are effectively equivalent (with on listeners being invoked before"," * after listeners)."," *"," * @event widget:contentUpdate"," * @preventable false"," * @param {EventFacade} e The Event Facade"," */",""," if (this._applyParser) {"," this._applyParser(config);"," }"," },",""," /**"," * Utility method used to add an entry to the boundingBox id to instance map."," *"," * This method can be used to populate the instance with lazily created boundingBox Node references."," *"," * @method _mapInstance"," * @param {String} The boundingBox id"," * @protected"," */"," _mapInstance : function(id) {"," _instances[id] = this;"," },",""," /**"," * Destructor lifecycle implementation for the Widget class. Purges events attached"," * to the bounding box and content box, removes them from the DOM and removes"," * the Widget from the list of registered widgets."," *"," * @method destructor"," * @protected"," */"," destructor: function() {",""," var boundingBox = this.get(BOUNDING_BOX),"," bbGuid;",""," if (boundingBox instanceof Node) {"," bbGuid = Y.stamp(boundingBox,true);",""," if (bbGuid in _instances) {"," delete _instances[bbGuid];"," }",""," this._destroyBox();"," }"," },",""," /**"," * <p>"," * Destroy lifecycle method. Fires the destroy"," * event, prior to invoking destructors for the"," * class hierarchy."," *"," * Overrides Base's implementation, to support arguments to destroy"," * </p>"," * <p>"," * Subscribers to the destroy"," * event can invoke preventDefault on the event object, to prevent destruction"," * from proceeding."," * </p>"," * @method destroy"," * @param destroyAllNodes {Boolean} If true, all nodes contained within the Widget are"," * removed and destroyed. Defaults to false due to potentially high run-time cost."," * @return {Widget} A reference to this object"," * @chainable"," */"," destroy: function(destroyAllNodes) {"," this._destroyAllNodes = destroyAllNodes;"," return Widget.superclass.destroy.apply(this);"," },",""," /**"," * Removes and destroys the widgets rendered boundingBox, contentBox,"," * and detaches bound UI events."," *"," * @method _destroyBox"," * @protected"," */"," _destroyBox : function() {",""," var boundingBox = this.get(BOUNDING_BOX),"," contentBox = this.get(CONTENT_BOX),"," deep = this._destroyAllNodes,"," same;",""," same = boundingBox && boundingBox.compareTo(contentBox);",""," if (this.UI_EVENTS) {"," this._destroyUIEvents();"," }",""," this._unbindUI(boundingBox);",""," if (contentBox) {"," if (deep) {"," contentBox.empty();"," }"," contentBox.remove(TRUE);"," }",""," if (!same) {"," if (deep) {"," boundingBox.empty();"," }"," boundingBox.remove(TRUE);"," }"," },",""," /**"," * Establishes the initial DOM for the widget. Invoking this"," * method will lead to the creating of all DOM elements for"," * the widget (or the manipulation of existing DOM elements"," * for the progressive enhancement use case)."," * <p>"," * This method should only be invoked once for an initialized"," * widget."," * </p>"," * <p>"," * It delegates to the widget specific renderer method to do"," * the actual work."," * </p>"," *"," * @method render"," * @chainable"," * @final"," * @param parentNode {Object | String} Optional. The Node under which the"," * Widget is to be rendered. This can be a Node instance or a CSS selector string."," * <p>"," * If the selector string returns more than one Node, the first node will be used"," * as the parentNode. NOTE: This argument is required if both the boundingBox and contentBox"," * are not currently in the document. If it's not provided, the Widget will be rendered"," * to the body of the current document in this case."," * </p>"," */"," render: function(parentNode) {",""," if (!this.get(DESTROYED) && !this.get(RENDERED)) {"," /**"," * Lifecycle event for the render phase, fired prior to rendering the UI"," * for the widget (prior to invoking the widget's renderer method)."," * <p>"," * Subscribers to the \"on\" moment of this event, will be notified"," * before the widget is rendered."," * </p>"," * <p>"," * Subscribers to the \"after\" moment of this event, will be notified"," * after rendering is complete."," * </p>"," *"," * @event render"," * @preventable _defRenderFn"," * @param {EventFacade} e The Event Facade"," */"," this.publish(RENDER, {"," queuable:FALSE,"," fireOnce:TRUE,"," defaultTargetOnly:TRUE,"," defaultFn: this._defRenderFn"," });",""," this.fire(RENDER, {parentNode: (parentNode) ? Node.one(parentNode) : null});"," }"," return this;"," },",""," /**"," * Default render handler"," *"," * @method _defRenderFn"," * @protected"," * @param {EventFacade} e The Event object"," * @param {Node} parentNode The parent node to render to, if passed in to the <code>render</code> method"," */"," _defRenderFn : function(e) {"," this._parentNode = e.parentNode;",""," this.renderer();"," this._set(RENDERED, TRUE);",""," this._removeLoadingClassNames();"," },",""," /**"," * Creates DOM (or manipulates DOM for progressive enhancement)"," * This method is invoked by render() and is not chained"," * automatically for the class hierarchy (unlike initializer, destructor)"," * so it should be chained manually for subclasses if required."," *"," * @method renderer"," * @protected"," */"," renderer: function() {"," // kweight"," var widget = this;",""," widget._renderUI();"," widget.renderUI();",""," widget._bindUI();"," widget.bindUI();",""," widget._syncUI();"," widget.syncUI();"," },",""," /**"," * Configures/Sets up listeners to bind Widget State to UI/DOM"," *"," * This method is not called by framework and is not chained"," * automatically for the class hierarchy."," *"," * @method bindUI"," * @protected"," */"," bindUI: EMPTY_FN,",""," /**"," * Adds nodes to the DOM"," *"," * This method is not called by framework and is not chained"," * automatically for the class hierarchy."," *"," * @method renderUI"," * @protected"," */"," renderUI: EMPTY_FN,",""," /**"," * Refreshes the rendered UI, based on Widget State"," *"," * This method is not called by framework and is not chained"," * automatically for the class hierarchy."," *"," * @method syncUI"," * @protected"," *"," */"," syncUI: EMPTY_FN,",""," /**"," * @method hide"," * @description Hides the Widget by setting the \"visible\" attribute to \"false\"."," * @chainable"," */"," hide: function() {"," return this.set(VISIBLE, FALSE);"," },",""," /**"," * @method show"," * @description Shows the Widget by setting the \"visible\" attribute to \"true\"."," * @chainable"," */"," show: function() {"," return this.set(VISIBLE, TRUE);"," },",""," /**"," * @method focus"," * @description Causes the Widget to receive the focus by setting the \"focused\""," * attribute to \"true\"."," * @chainable"," */"," focus: function () {"," return this._set(FOCUSED, TRUE);"," },",""," /**"," * @method blur"," * @description Causes the Widget to lose focus by setting the \"focused\" attribute"," * to \"false\""," * @chainable"," */"," blur: function () {"," return this._set(FOCUSED, FALSE);"," },",""," /**"," * @method enable"," * @description Set the Widget's \"disabled\" attribute to \"false\"."," * @chainable"," */"," enable: function() {"," return this.set(DISABLED, FALSE);"," },",""," /**"," * @method disable"," * @description Set the Widget's \"disabled\" attribute to \"true\"."," * @chainable"," */"," disable: function() {"," return this.set(DISABLED, TRUE);"," },",""," /**"," * @method _uiSizeCB"," * @protected"," * @param {boolean} expand"," */"," _uiSizeCB : function(expand) {"," this.get(CONTENT_BOX).toggleClass(_getWidgetClassName(CONTENT, \"expanded\"), expand);"," },",""," /**"," * Helper method to collect the boundingBox and contentBox and append to the provided parentNode, if not"," * already a child. The owner document of the boundingBox, or the owner document of the contentBox will be used"," * as the document into which the Widget is rendered if a parentNode is node is not provided. If both the boundingBox and"," * the contentBox are not currently in the document, and no parentNode is provided, the widget will be rendered"," * to the current document's body."," *"," * @method _renderBox"," * @private"," * @param {Node} parentNode The parentNode to render the widget to. If not provided, and both the boundingBox and"," * the contentBox are not currently in the document, the widget will be rendered to the current document's body."," */"," _renderBox: function(parentNode) {",""," // TODO: Performance Optimization [ More effective algo to reduce Node refs, compares, replaces? ]",""," var widget = this, // kweight"," contentBox = widget.get(CONTENT_BOX),"," boundingBox = widget.get(BOUNDING_BOX),"," srcNode = widget.get(SRC_NODE),"," defParentNode = widget.DEF_PARENT_NODE,",""," doc = (srcNode && srcNode.get(OWNER_DOCUMENT)) || boundingBox.get(OWNER_DOCUMENT) || contentBox.get(OWNER_DOCUMENT);",""," // If srcNode (assume it's always in doc), have contentBox take its place (widget render responsible for re-use of srcNode contents)"," if (srcNode && !srcNode.compareTo(contentBox) && !contentBox.inDoc(doc)) {"," srcNode.replace(contentBox);"," }",""," if (!boundingBox.compareTo(contentBox.get(PARENT_NODE)) && !boundingBox.compareTo(contentBox)) {"," // If contentBox box is already in the document, have boundingBox box take it's place"," if (contentBox.inDoc(doc)) {"," contentBox.replace(boundingBox);"," }"," boundingBox.appendChild(contentBox);"," }",""," parentNode = parentNode || (defParentNode && Node.one(defParentNode));",""," if (parentNode) {"," parentNode.appendChild(boundingBox);"," } else if (!boundingBox.inDoc(doc)) {"," Node.one(BODY).insert(boundingBox, 0);"," }"," },",""," /**"," * Setter for the boundingBox attribute"," *"," * @method _setBB"," * @private"," * @param Node/String"," * @return Node"," */"," _setBB: function(node) {"," return this._setBox(this.get(ID), node, this.BOUNDING_TEMPLATE, true);"," },",""," /**"," * Setter for the contentBox attribute"," *"," * @method _setCB"," * @private"," * @param {Node|String} node"," * @return Node"," */"," _setCB: function(node) {"," return (this.CONTENT_TEMPLATE === null) ? this.get(BOUNDING_BOX) : this._setBox(null, node, this.CONTENT_TEMPLATE, false);"," },",""," /**"," * Returns the default value for the contentBox attribute."," *"," * For the Widget class, this will be the srcNode if provided, otherwise null (resulting in"," * a new contentBox node instance being created)"," *"," * @method _defaultCB"," * @protected"," */"," _defaultCB : function(node) {"," return this.get(SRC_NODE) || null;"," },",""," /**"," * Helper method to set the bounding/content box, or create it from"," * the provided template if not found."," *"," * @method _setBox"," * @private"," *"," * @param {String} id The node's id attribute"," * @param {Node|String} node The node reference"," * @param {String} template HTML string template for the node"," * @param {boolean} true if this is the boundingBox, false if it's the contentBox"," * @return {Node} The node"," */"," _setBox : function(id, node, template, isBounding) {",""," node = Node.one(node);",""," if (!node) {"," node = Node.create(template);",""," if (isBounding) {"," this._bbFromTemplate = true;"," } else {"," this._cbFromTemplate = true;"," }"," }",""," if (!node.get(ID)) {"," node.set(ID, id || Y.guid());"," }",""," return node;"," },",""," /**"," * Initializes the UI state for the Widget's bounding/content boxes."," *"," * @method _renderUI"," * @protected"," */"," _renderUI: function() {"," this._renderBoxClassNames();"," this._renderBox(this._parentNode);"," },",""," /**"," * Applies standard class names to the boundingBox and contentBox"," *"," * @method _renderBoxClassNames"," * @protected"," */"," _renderBoxClassNames : function() {"," var classes = this._getClasses(),"," cl,"," boundingBox = this.get(BOUNDING_BOX),"," i;",""," boundingBox.addClass(_getWidgetClassName());",""," // Start from Widget Sub Class"," for (i = classes.length-3; i >= 0; i--) {"," cl = classes[i];"," boundingBox.addClass(cl.CSS_PREFIX || _getClassName(cl.NAME.toLowerCase()));"," }",""," // Use instance based name for content box"," this.get(CONTENT_BOX).addClass(this.getClassName(CONTENT));"," },",""," /**"," * Removes class names representative of the widget's loading state from"," * the boundingBox."," *"," * @method _removeLoadingClassNames"," * @protected"," */"," _removeLoadingClassNames: function () {",""," var boundingBox = this.get(BOUNDING_BOX),"," contentBox = this.get(CONTENT_BOX),"," instClass = this.getClassName(LOADING),"," widgetClass = _getWidgetClassName(LOADING);",""," boundingBox.removeClass(widgetClass)"," .removeClass(instClass);",""," contentBox.removeClass(widgetClass)"," .removeClass(instClass);"," },",""," /**"," * Sets up DOM and CustomEvent listeners for the widget."," *"," * @method _bindUI"," * @protected"," */"," _bindUI: function() {"," this._bindAttrUI(this._UI_ATTRS.BIND);"," this._bindDOM();"," },",""," /**"," * @method _unbindUI"," * @protected"," */"," _unbindUI : function(boundingBox) {"," this._unbindDOM(boundingBox);"," },",""," /**"," * Sets up DOM listeners, on elements rendered by the widget."," *"," * @method _bindDOM"," * @protected"," */"," _bindDOM : function() {"," var oDocument = this.get(BOUNDING_BOX).get(OWNER_DOCUMENT),"," focusHandle = Widget._hDocFocus;",""," // Shared listener across all Widgets."," if (!focusHandle) {"," focusHandle = Widget._hDocFocus = oDocument.on(\"focus\", this._onDocFocus, this);"," focusHandle.listeners = {"," count: 0"," };"," }",""," focusHandle.listeners[Y.stamp(this, true)] = true;"," focusHandle.listeners.count++;",""," //\tFix for Webkit:"," //\tDocument doesn't receive focus in Webkit when the user mouses"," //\tdown on it, so the \"focused\" attribute won't get set to the"," //\tcorrect value. Keeping this instance based for now, potential better performance."," // Otherwise we'll end up looking up widgets from the DOM on every mousedown."," if (WEBKIT){"," this._hDocMouseDown = oDocument.on(\"mousedown\", this._onDocMouseDown, this);"," }"," },",""," /**"," * @method _unbindDOM"," * @protected"," */"," _unbindDOM : function(boundingBox) {",""," var focusHandle = Widget._hDocFocus,"," yuid = Y.stamp(this, true),"," focusListeners,"," mouseHandle = this._hDocMouseDown;",""," if (focusHandle) {",""," focusListeners = focusHandle.listeners;",""," if (focusListeners[yuid]) {"," delete focusListeners[yuid];"," focusListeners.count--;"," }",""," if (focusListeners.count === 0) {"," focusHandle.detach();"," Widget._hDocFocus = null;"," }"," }",""," if (WEBKIT && mouseHandle) {"," mouseHandle.detach();"," }"," },",""," /**"," * Updates the widget UI to reflect the attribute state."," *"," * @method _syncUI"," * @protected"," */"," _syncUI: function() {"," this._syncAttrUI(this._UI_ATTRS.SYNC);"," },",""," /**"," * Sets the height on the widget's bounding box element"," *"," * @method _uiSetHeight"," * @protected"," * @param {String | Number} val"," */"," _uiSetHeight: function(val) {"," this._uiSetDim(HEIGHT, val);"," this._uiSizeCB((val !== EMPTY_STR && val !== AUTO));"," },",""," /**"," * Sets the width on the widget's bounding box element"," *"," * @method _uiSetWidth"," * @protected"," * @param {String | Number} val"," */"," _uiSetWidth: function(val) {"," this._uiSetDim(WIDTH, val);"," },",""," /**"," * @method _uiSetDim"," * @private"," * @param {String} dim The dimension - \"width\" or \"height\""," * @param {Number | String} val The value to set"," */"," _uiSetDim: function(dimension, val) {"," this.get(BOUNDING_BOX).setStyle(dimension, L.isNumber(val) ? val + this.DEF_UNIT : val);"," },",""," /**"," * Sets the visible state for the UI"," *"," * @method _uiSetVisible"," * @protected"," * @param {boolean} val"," */"," _uiSetVisible: function(val) {"," this.get(BOUNDING_BOX).toggleClass(this.getClassName(HIDDEN), !val);"," },",""," /**"," * Sets the disabled state for the UI"," *"," * @method _uiSetDisabled"," * @protected"," * @param {boolean} val"," */"," _uiSetDisabled: function(val) {"," this.get(BOUNDING_BOX).toggleClass(this.getClassName(DISABLED), val);"," },",""," /**"," * Sets the focused state for the UI"," *"," * @method _uiSetFocused"," * @protected"," * @param {boolean} val"," * @param {string} src String representing the source that triggered an update to"," * the UI."," */"," _uiSetFocused: function(val, src) {"," var boundingBox = this.get(BOUNDING_BOX);"," boundingBox.toggleClass(this.getClassName(FOCUSED), val);",""," if (src !== UI) {"," if (val) {"," boundingBox.focus();"," } else {"," boundingBox.blur();"," }"," }"," },",""," /**"," * Set the tabIndex on the widget's rendered UI"," *"," * @method _uiSetTabIndex"," * @protected"," * @param Number"," */"," _uiSetTabIndex: function(index) {"," var boundingBox = this.get(BOUNDING_BOX);",""," if (L.isNumber(index)) {"," boundingBox.set(TAB_INDEX, index);"," } else {"," boundingBox.removeAttribute(TAB_INDEX);"," }"," },",""," /**"," * @method _onDocMouseDown"," * @description \"mousedown\" event handler for the owner document of the"," * widget's bounding box."," * @protected"," * @param {EventFacade} evt The event facade for the DOM focus event"," */"," _onDocMouseDown: function (evt) {"," if (this._domFocus) {"," this._onDocFocus(evt);"," }"," },",""," /**"," * DOM focus event handler, used to sync the state of the Widget with the DOM"," *"," * @method _onDocFocus"," * @protected"," * @param {EventFacade} evt The event facade for the DOM focus event"," */"," _onDocFocus: function (evt) {"," var widget = Widget.getByNode(evt.target),"," activeWidget = Widget._active;",""," if (activeWidget && (activeWidget !== widget)) {"," activeWidget._domFocus = false;"," activeWidget._set(FOCUSED, false, {src:UI});",""," Widget._active = null;"," }",""," if (widget) {"," widget._domFocus = true;"," widget._set(FOCUSED, true, {src:UI});",""," Widget._active = widget;"," }"," },",""," /**"," * Generic toString implementation for all widgets."," *"," * @method toString"," * @return {String} The default string value for the widget [ displays the NAME of the instance, and the unique id ]"," */"," toString: function() {"," // Using deprecated name prop for kweight squeeze."," return this.name + \"[\" + this.get(ID) + \"]\";"," },",""," /**"," * Default unit to use for dimension values"," *"," * @property DEF_UNIT"," * @type String"," */"," DEF_UNIT : \"px\",",""," /**"," * Default node to render the bounding box to. If not set,"," * will default to the current document body."," *"," * @property DEF_PARENT_NODE"," * @type String | Node"," */"," DEF_PARENT_NODE : null,",""," /**"," * Property defining the markup template for content box. If your Widget doesn't"," * need the dual boundingBox/contentBox structure, set CONTENT_TEMPLATE to null,"," * and contentBox and boundingBox will both point to the same Node."," *"," * @property CONTENT_TEMPLATE"," * @type String"," */"," CONTENT_TEMPLATE : DIV,",""," /**"," * Property defining the markup template for bounding box."," *"," * @property BOUNDING_TEMPLATE"," * @type String"," */"," BOUNDING_TEMPLATE : DIV,",""," /**"," * @method _guid"," * @protected"," */"," _guid : function() {"," return Y.guid();"," },",""," /**"," * @method _validTabIndex"," * @protected"," * @param {Number} tabIndex"," */"," _validTabIndex : function (tabIndex) {"," return (L.isNumber(tabIndex) || L.isNull(tabIndex));"," },",""," /**"," * Binds after listeners for the list of attributes provided"," *"," * @method _bindAttrUI"," * @private"," * @param {Array} attrs"," */"," _bindAttrUI : function(attrs) {"," var i,"," l = attrs.length;",""," for (i = 0; i < l; i++) {"," this.after(attrs[i] + CHANGE, this._setAttrUI);"," }"," },",""," /**"," * Invokes the _uiSet=ATTR NAME> method for the list of attributes provided"," *"," * @method _syncAttrUI"," * @private"," * @param {Array} attrs"," */"," _syncAttrUI : function(attrs) {"," var i, l = attrs.length, attr;"," for (i = 0; i < l; i++) {"," attr = attrs[i];"," this[_UISET + _toInitialCap(attr)](this.get(attr));"," }"," },",""," /**"," * @method _setAttrUI"," * @private"," * @param {EventFacade} e"," */"," _setAttrUI : function(e) {"," if (e.target === this) {"," this[_UISET + _toInitialCap(e.attrName)](e.newVal, e.src);"," }"," },",""," /**"," * The default setter for the strings attribute. Merges partial sets"," * into the full string set, to allow users to partial sets of strings"," *"," * @method _strSetter"," * @protected"," * @param {Object} strings"," * @return {String} The full set of strings to set"," */"," _strSetter : function(strings) {"," return Y.merge(this.get(STRINGS), strings);"," },",""," /**"," * Helper method to get a specific string value"," *"," * @deprecated Used by deprecated WidgetLocale implementations."," * @method getString"," * @param {String} key"," * @return {String} The string"," */"," getString : function(key) {"," return this.get(STRINGS)[key];"," },",""," /**"," * Helper method to get the complete set of strings for the widget"," *"," * @deprecated Used by deprecated WidgetLocale implementations."," * @method getStrings"," * @param {String} key"," * @return {String} The strings"," */"," getStrings : function() {"," return this.get(STRINGS);"," },",""," /**"," * The lists of UI attributes to bind and sync for widget's _bindUI and _syncUI implementations"," *"," * @property _UI_ATTRS"," * @type Object"," * @private"," */"," _UI_ATTRS : {"," BIND: UI_ATTRS,"," SYNC: UI_ATTRS"," }","});","","Y.Widget = Widget;","","","}, '3.10.3', {"," \"requires\": ["," \"attribute\","," \"base-base\","," \"base-pluginhost\","," \"classnamemanager\","," \"event-focus\","," \"node-base\","," \"node-style\""," ],"," \"skinnable\": true","});","","}());"]};