10 __coverage__['build/event-valuechange/event-valuechange.js'] = {"path":"build/event-valuechange/event-valuechange.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},"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,0],"11":[0,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],"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]},"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},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":29},"end":{"line":1,"column":48}}},"2":{"name":"(anonymous_2)","line":83,"loc":{"start":{"line":83,"column":11},"end":{"line":83,"column":36}}},"3":{"name":"(anonymous_3)","line":122,"loc":{"start":{"line":122,"column":44},"end":{"line":122,"column":64}}},"4":{"name":"(anonymous_4)","line":166,"loc":{"start":{"line":166,"column":21},"end":{"line":166,"column":47}}},"5":{"name":"(anonymous_5)","line":179,"loc":{"start":{"line":179,"column":36},"end":{"line":179,"column":48}}},"6":{"name":"(anonymous_6)","line":203,"loc":{"start":{"line":203,"column":19},"end":{"line":203,"column":54}}},"7":{"name":"(anonymous_7)","line":241,"loc":{"start":{"line":241,"column":38},"end":{"line":241,"column":50}}},"8":{"name":"(anonymous_8)","line":259,"loc":{"start":{"line":259,"column":18},"end":{"line":259,"column":44}}},"9":{"name":"(anonymous_9)","line":289,"loc":{"start":{"line":289,"column":18},"end":{"line":289,"column":34}}},"10":{"name":"(anonymous_10)","line":309,"loc":{"start":{"line":309,"column":17},"end":{"line":309,"column":33}}},"11":{"name":"(anonymous_11)","line":329,"loc":{"start":{"line":329,"column":13},"end":{"line":329,"column":36}}},"12":{"name":"(anonymous_12)","line":342,"loc":{"start":{"line":342,"column":14},"end":{"line":342,"column":37}}},"13":{"name":"(anonymous_13)","line":368,"loc":{"start":{"line":368,"column":16},"end":{"line":368,"column":39}}},"14":{"name":"(anonymous_14)","line":381,"loc":{"start":{"line":381,"column":14},"end":{"line":381,"column":37}}},"15":{"name":"(anonymous_15)","line":401,"loc":{"start":{"line":401,"column":18},"end":{"line":401,"column":41}}},"16":{"name":"(anonymous_16)","line":423,"loc":{"start":{"line":423,"column":18},"end":{"line":423,"column":57}}},"17":{"name":"(anonymous_17)","line":444,"loc":{"start":{"line":444,"column":36},"end":{"line":444,"column":48}}},"18":{"name":"(anonymous_18)","line":453,"loc":{"start":{"line":453,"column":41},"end":{"line":453,"column":58}}},"19":{"name":"(anonymous_19)","line":494,"loc":{"start":{"line":494,"column":20},"end":{"line":494,"column":60}}},"20":{"name":"(anonymous_20)","line":500,"loc":{"start":{"line":500,"column":41},"end":{"line":500,"column":58}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":554,"column":63}},"2":{"start":{"line":34,"column":0},"end":{"line":507,"column":2}},"3":{"start":{"line":84,"column":8},"end":{"line":88,"column":75}},"4":{"start":{"line":90,"column":8},"end":{"line":93,"column":9}},"5":{"start":{"line":91,"column":12},"end":{"line":91,"column":34}},"6":{"start":{"line":92,"column":12},"end":{"line":92,"column":19}},"7":{"start":{"line":95,"column":8},"end":{"line":95,"column":33}},"8":{"start":{"line":96,"column":8},"end":{"line":96,"column":36}},"9":{"start":{"line":98,"column":8},"end":{"line":109,"column":9}},"10":{"start":{"line":100,"column":12},"end":{"line":100,"column":39}},"11":{"start":{"line":101,"column":15},"end":{"line":109,"column":9}},"12":{"start":{"line":103,"column":12},"end":{"line":103,"column":35}},"13":{"start":{"line":104,"column":15},"end":{"line":109,"column":9}},"14":{"start":{"line":107,"column":12},"end":{"line":107,"column":68}},"15":{"start":{"line":108,"column":12},"end":{"line":108,"column":65}},"16":{"start":{"line":111,"column":8},"end":{"line":154,"column":9}},"17":{"start":{"line":112,"column":12},"end":{"line":112,"column":36}},"18":{"start":{"line":114,"column":12},"end":{"line":120,"column":14}},"19":{"start":{"line":122,"column":12},"end":{"line":151,"column":15}},"20":{"start":{"line":123,"column":16},"end":{"line":124,"column":31}},"21":{"start":{"line":127,"column":16},"end":{"line":131,"column":17}},"22":{"start":{"line":128,"column":20},"end":{"line":128,"column":42}},"23":{"start":{"line":129,"column":23},"end":{"line":131,"column":17}},"24":{"start":{"line":130,"column":20},"end":{"line":130,"column":42}},"25":{"start":{"line":133,"column":16},"end":{"line":133,"column":74}},"26":{"start":{"line":139,"column":16},"end":{"line":145,"column":17}},"27":{"start":{"line":140,"column":20},"end":{"line":140,"column":41}},"28":{"start":{"line":142,"column":20},"end":{"line":144,"column":21}},"29":{"start":{"line":143,"column":24},"end":{"line":143,"column":45}},"30":{"start":{"line":148,"column":16},"end":{"line":150,"column":17}},"31":{"start":{"line":149,"column":20},"end":{"line":149,"column":32}},"32":{"start":{"line":153,"column":12},"end":{"line":153,"column":37}},"33":{"start":{"line":169,"column":8},"end":{"line":171,"column":9}},"34":{"start":{"line":170,"column":12},"end":{"line":170,"column":19}},"35":{"start":{"line":173,"column":8},"end":{"line":173,"column":44}},"36":{"start":{"line":175,"column":8},"end":{"line":175,"column":30}},"37":{"start":{"line":179,"column":8},"end":{"line":181,"column":23}},"38":{"start":{"line":180,"column":12},"end":{"line":180,"column":44}},"39":{"start":{"line":204,"column":8},"end":{"line":204,"column":31}},"40":{"start":{"line":206,"column":8},"end":{"line":208,"column":9}},"41":{"start":{"line":207,"column":12},"end":{"line":207,"column":19}},"42":{"start":{"line":210,"column":8},"end":{"line":210,"column":40}},"43":{"start":{"line":212,"column":8},"end":{"line":220,"column":9}},"44":{"start":{"line":213,"column":12},"end":{"line":217,"column":14}},"45":{"start":{"line":219,"column":12},"end":{"line":219,"column":43}},"46":{"start":{"line":222,"column":8},"end":{"line":222,"column":52}},"47":{"start":{"line":226,"column":8},"end":{"line":233,"column":9}},"48":{"start":{"line":227,"column":12},"end":{"line":232,"column":13}},"49":{"start":{"line":228,"column":16},"end":{"line":228,"column":48}},"50":{"start":{"line":230,"column":16},"end":{"line":230,"column":63}},"51":{"start":{"line":231,"column":16},"end":{"line":231,"column":23}},"52":{"start":{"line":239,"column":8},"end":{"line":239,"column":55}},"53":{"start":{"line":241,"column":8},"end":{"line":243,"column":29}},"54":{"start":{"line":242,"column":12},"end":{"line":242,"column":36}},"55":{"start":{"line":246,"column":8},"end":{"line":246,"column":43}},"56":{"start":{"line":262,"column":8},"end":{"line":264,"column":9}},"57":{"start":{"line":263,"column":12},"end":{"line":263,"column":19}},"58":{"start":{"line":266,"column":8},"end":{"line":266,"column":50}},"59":{"start":{"line":268,"column":8},"end":{"line":268,"column":39}},"60":{"start":{"line":269,"column":8},"end":{"line":269,"column":31}},"61":{"start":{"line":271,"column":8},"end":{"line":271,"column":30}},"62":{"start":{"line":273,"column":8},"end":{"line":277,"column":9}},"63":{"start":{"line":274,"column":12},"end":{"line":274,"column":75}},"64":{"start":{"line":276,"column":12},"end":{"line":276,"column":34}},"65":{"start":{"line":290,"column":8},"end":{"line":290,"column":50}},"66":{"start":{"line":292,"column":8},"end":{"line":292,"column":37}},"67":{"start":{"line":293,"column":8},"end":{"line":293,"column":30}},"68":{"start":{"line":311,"column":8},"end":{"line":311,"column":33}},"69":{"start":{"line":312,"column":8},"end":{"line":313,"column":46}},"70":{"start":{"line":330,"column":8},"end":{"line":330,"column":51}},"71":{"start":{"line":343,"column":8},"end":{"line":344,"column":48}},"72":{"start":{"line":346,"column":8},"end":{"line":352,"column":9}},"73":{"start":{"line":347,"column":12},"end":{"line":350,"column":14}},"74":{"start":{"line":351,"column":12},"end":{"line":351,"column":43}},"75":{"start":{"line":354,"column":8},"end":{"line":354,"column":91}},"76":{"start":{"line":356,"column":8},"end":{"line":356,"column":49}},"77":{"start":{"line":369,"column":8},"end":{"line":369,"column":60}},"78":{"start":{"line":384,"column":8},"end":{"line":389,"column":9}},"79":{"start":{"line":385,"column":12},"end":{"line":388,"column":15}},"80":{"start":{"line":402,"column":8},"end":{"line":402,"column":60}},"81":{"start":{"line":424,"column":8},"end":{"line":424,"column":75}},"82":{"start":{"line":426,"column":8},"end":{"line":432,"column":10}},"83":{"start":{"line":436,"column":8},"end":{"line":436,"column":50}},"84":{"start":{"line":438,"column":8},"end":{"line":481,"column":9}},"85":{"start":{"line":440,"column":12},"end":{"line":440,"column":42}},"86":{"start":{"line":444,"column":12},"end":{"line":449,"column":14}},"87":{"start":{"line":445,"column":16},"end":{"line":445,"column":81}},"88":{"start":{"line":446,"column":16},"end":{"line":446,"column":105}},"89":{"start":{"line":448,"column":16},"end":{"line":448,"column":56}},"90":{"start":{"line":453,"column":12},"end":{"line":461,"column":15}},"91":{"start":{"line":454,"column":16},"end":{"line":460,"column":17}},"92":{"start":{"line":455,"column":20},"end":{"line":459,"column":23}},"93":{"start":{"line":463,"column":12},"end":{"line":464,"column":26}},"94":{"start":{"line":466,"column":12},"end":{"line":466,"column":46}},"95":{"start":{"line":468,"column":12},"end":{"line":470,"column":13}},"96":{"start":{"line":469,"column":16},"end":{"line":469,"column":23}},"97":{"start":{"line":472,"column":12},"end":{"line":478,"column":13}},"98":{"start":{"line":473,"column":16},"end":{"line":477,"column":19}},"99":{"start":{"line":480,"column":12},"end":{"line":480,"column":73}},"100":{"start":{"line":495,"column":8},"end":{"line":495,"column":49}},"101":{"start":{"line":497,"column":8},"end":{"line":497,"column":56}},"102":{"start":{"line":499,"column":8},"end":{"line":505,"column":9}},"103":{"start":{"line":500,"column":12},"end":{"line":502,"column":15}},"104":{"start":{"line":501,"column":16},"end":{"line":501,"column":49}},"105":{"start":{"line":504,"column":12},"end":{"line":504,"column":44}},"106":{"start":{"line":536,"column":0},"end":{"line":546,"column":2}},"107":{"start":{"line":548,"column":0},"end":{"line":548,"column":38}},"108":{"start":{"line":549,"column":0},"end":{"line":549,"column":38}},"109":{"start":{"line":551,"column":0},"end":{"line":551,"column":19}}},"branchMap":{"1":{"line":86,"type":"binary-expr","locations":[{"start":{"line":86,"column":23},"end":{"line":86,"column":33}},{"start":{"line":86,"column":37},"end":{"line":86,"column":57}}]},"2":{"line":90,"type":"if","locations":[{"start":{"line":90,"column":8},"end":{"line":90,"column":8}},{"start":{"line":90,"column":8},"end":{"line":90,"column":8}}]},"3":{"line":90,"type":"binary-expr","locations":[{"start":{"line":90,"column":14},"end":{"line":90,"column":21}},{"start":{"line":90,"column":25},"end":{"line":90,"column":31}}]},"4":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":8},"end":{"line":98,"column":8}},{"start":{"line":98,"column":8},"end":{"line":98,"column":8}}]},"5":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":15},"end":{"line":101,"column":15}},{"start":{"line":101,"column":15},"end":{"line":101,"column":15}}]},"6":{"line":101,"type":"binary-expr","locations":[{"start":{"line":101,"column":19},"end":{"line":101,"column":39}},{"start":{"line":101,"column":43},"end":{"line":101,"column":66}}]},"7":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":15},"end":{"line":104,"column":15}},{"start":{"line":104,"column":15},"end":{"line":104,"column":15}}]},"8":{"line":108,"type":"binary-expr","locations":[{"start":{"line":108,"column":21},"end":{"line":108,"column":41}},{"start":{"line":108,"column":45},"end":{"line":108,"column":64}}]},"9":{"line":111,"type":"if","locations":[{"start":{"line":111,"column":8},"end":{"line":111,"column":8}},{"start":{"line":111,"column":8},"end":{"line":111,"column":8}}]},"10":{"line":116,"type":"binary-expr","locations":[{"start":{"line":116,"column":32},"end":{"line":116,"column":37}},{"start":{"line":116,"column":41},"end":{"line":116,"column":60}},{"start":{"line":116,"column":65},"end":{"line":116,"column":69}}]},"11":{"line":119,"type":"binary-expr","locations":[{"start":{"line":119,"column":32},"end":{"line":119,"column":37}},{"start":{"line":119,"column":41},"end":{"line":119,"column":53}},{"start":{"line":119,"column":58},"end":{"line":119,"column":62}}]},"12":{"line":127,"type":"if","locations":[{"start":{"line":127,"column":16},"end":{"line":127,"column":16}},{"start":{"line":127,"column":16},"end":{"line":127,"column":16}}]},"13":{"line":129,"type":"if","locations":[{"start":{"line":129,"column":23},"end":{"line":129,"column":23}},{"start":{"line":129,"column":23},"end":{"line":129,"column":23}}]},"14":{"line":133,"type":"cond-expr","locations":[{"start":{"line":133,"column":50},"end":{"line":133,"column":69}},{"start":{"line":133,"column":72},"end":{"line":133,"column":73}}]},"15":{"line":133,"type":"binary-expr","locations":[{"start":{"line":133,"column":29},"end":{"line":133,"column":32}},{"start":{"line":133,"column":36},"end":{"line":133,"column":47}}]},"16":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":16},"end":{"line":139,"column":16}},{"start":{"line":139,"column":16},"end":{"line":139,"column":16}}]},"17":{"line":142,"type":"if","locations":[{"start":{"line":142,"column":20},"end":{"line":142,"column":20}},{"start":{"line":142,"column":20},"end":{"line":142,"column":20}}]},"18":{"line":148,"type":"if","locations":[{"start":{"line":148,"column":16},"end":{"line":148,"column":16}},{"start":{"line":148,"column":16},"end":{"line":148,"column":16}}]},"19":{"line":169,"type":"if","locations":[{"start":{"line":169,"column":8},"end":{"line":169,"column":8}},{"start":{"line":169,"column":8},"end":{"line":169,"column":8}}]},"20":{"line":206,"type":"if","locations":[{"start":{"line":206,"column":8},"end":{"line":206,"column":8}},{"start":{"line":206,"column":8},"end":{"line":206,"column":8}}]},"21":{"line":206,"type":"binary-expr","locations":[{"start":{"line":206,"column":12},"end":{"line":206,"column":47}},{"start":{"line":206,"column":51},"end":{"line":206,"column":87}}]},"22":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":8},"end":{"line":212,"column":8}},{"start":{"line":212,"column":8},"end":{"line":212,"column":8}}]},"23":{"line":216,"type":"cond-expr","locations":[{"start":{"line":216,"column":42},"end":{"line":216,"column":69}},{"start":{"line":216,"column":72},"end":{"line":216,"column":87}}]},"24":{"line":222,"type":"binary-expr","locations":[{"start":{"line":222,"column":8},"end":{"line":222,"column":24}},{"start":{"line":222,"column":29},"end":{"line":222,"column":50}}]},"25":{"line":226,"type":"if","locations":[{"start":{"line":226,"column":8},"end":{"line":226,"column":8}},{"start":{"line":226,"column":8},"end":{"line":226,"column":8}}]},"26":{"line":227,"type":"if","locations":[{"start":{"line":227,"column":12},"end":{"line":227,"column":12}},{"start":{"line":227,"column":12},"end":{"line":227,"column":12}}]},"27":{"line":262,"type":"if","locations":[{"start":{"line":262,"column":8},"end":{"line":262,"column":8}},{"start":{"line":262,"column":8},"end":{"line":262,"column":8}}]},"28":{"line":266,"type":"binary-expr","locations":[{"start":{"line":266,"column":21},"end":{"line":266,"column":43}},{"start":{"line":266,"column":47},"end":{"line":266,"column":49}}]},"29":{"line":273,"type":"if","locations":[{"start":{"line":273,"column":8},"end":{"line":273,"column":8}},{"start":{"line":273,"column":8},"end":{"line":273,"column":8}}]},"30":{"line":274,"type":"binary-expr","locations":[{"start":{"line":274,"column":12},"end":{"line":274,"column":28}},{"start":{"line":274,"column":32},"end":{"line":274,"column":74}}]},"31":{"line":290,"type":"binary-expr","locations":[{"start":{"line":290,"column":21},"end":{"line":290,"column":43}},{"start":{"line":290,"column":47},"end":{"line":290,"column":49}}]},"32":{"line":312,"type":"binary-expr","locations":[{"start":{"line":312,"column":15},"end":{"line":312,"column":49}},{"start":{"line":313,"column":15},"end":{"line":313,"column":45}}]},"33":{"line":346,"type":"if","locations":[{"start":{"line":346,"column":8},"end":{"line":346,"column":8}},{"start":{"line":346,"column":8},"end":{"line":346,"column":8}}]},"34":{"line":354,"type":"cond-expr","locations":[{"start":{"line":354,"column":45},"end":{"line":354,"column":72}},{"start":{"line":354,"column":75},"end":{"line":354,"column":90}}]},"35":{"line":384,"type":"if","locations":[{"start":{"line":384,"column":8},"end":{"line":384,"column":8}},{"start":{"line":384,"column":8},"end":{"line":384,"column":8}}]},"36":{"line":384,"type":"binary-expr","locations":[{"start":{"line":384,"column":12},"end":{"line":384,"column":30}},{"start":{"line":384,"column":34},"end":{"line":384,"column":52}}]},"37":{"line":438,"type":"if","locations":[{"start":{"line":438,"column":8},"end":{"line":438,"column":8}},{"start":{"line":438,"column":8},"end":{"line":438,"column":8}}]},"38":{"line":454,"type":"if","locations":[{"start":{"line":454,"column":16},"end":{"line":454,"column":16}},{"start":{"line":454,"column":16},"end":{"line":454,"column":16}}]},"39":{"line":458,"type":"cond-expr","locations":[{"start":{"line":458,"column":50},"end":{"line":458,"column":78}},{"start":{"line":458,"column":81},"end":{"line":458,"column":97}}]},"40":{"line":468,"type":"if","locations":[{"start":{"line":468,"column":12},"end":{"line":468,"column":12}},{"start":{"line":468,"column":12},"end":{"line":468,"column":12}}]},"41":{"line":468,"type":"binary-expr","locations":[{"start":{"line":468,"column":16},"end":{"line":468,"column":51}},{"start":{"line":468,"column":55},"end":{"line":468,"column":66}}]},"42":{"line":472,"type":"if","locations":[{"start":{"line":472,"column":12},"end":{"line":472,"column":12}},{"start":{"line":472,"column":12},"end":{"line":472,"column":12}}]},"43":{"line":476,"type":"cond-expr","locations":[{"start":{"line":476,"column":46},"end":{"line":476,"column":73}},{"start":{"line":476,"column":76},"end":{"line":476,"column":91}}]},"44":{"line":497,"type":"binary-expr","locations":[{"start":{"line":497,"column":8},"end":{"line":497,"column":25}},{"start":{"line":497,"column":29},"end":{"line":497,"column":55}}]},"45":{"line":499,"type":"if","locations":[{"start":{"line":499,"column":8},"end":{"line":499,"column":8}},{"start":{"line":499,"column":8},"end":{"line":499,"column":8}}]}},"code":["(function () { YUI.add('event-valuechange', function (Y, NAME) {","","/**","Adds a synthetic `valuechange` event that fires when the `value` property of an","`<input>`, `<textarea>`, `<select>`, or `[contenteditable=\"true\"]` node changes","as a result of a keystroke, mouse operation, or input method editor (IME)","input event.","","Usage:",""," YUI().use('event-valuechange', function (Y) {"," Y.one('#my-input').on('valuechange', function (e) {"," });"," });","","@module event-valuechange","**/","","/**","Provides the implementation for the synthetic `valuechange` event. This class","isn't meant to be used directly, but is public to make monkeypatching possible.","","Usage:",""," YUI().use('event-valuechange', function (Y) {"," Y.one('#my-input').on('valuechange', function (e) {"," });"," });","","@class ValueChange","@static","*/","","var DATA_KEY = '_valuechange',"," VALUE = 'value',"," NODE_NAME = 'nodeName',",""," config, // defined at the end of this file","","// Just a simple namespace to make methods overridable.","VC = {"," // -- Static Constants -----------------------------------------------------",""," /**"," Interval (in milliseconds) at which to poll for changes to the value of an"," element with one or more `valuechange` subscribers when the user is likely"," to be interacting with it.",""," @property POLL_INTERVAL"," @type Number"," @default 50"," @static"," **/"," POLL_INTERVAL: 50,",""," /**"," Timeout (in milliseconds) after which to stop polling when there hasn't been"," any new activity (keypresses, mouse clicks, etc.) on an element.",""," @property TIMEOUT"," @type Number"," @default 10000"," @static"," **/"," TIMEOUT: 10000,",""," // -- Protected Static Methods ---------------------------------------------",""," /**"," Called at an interval to poll for changes to the value of the specified"," node.",""," @method _poll"," @param {Node} node Node to poll.",""," @param {Object} options Options object."," @param {EventFacade} [options.e] Event facade of the event that"," initiated the polling.",""," @protected"," @static"," **/"," _poll: function (node, options) {"," var domNode = node._node, // performance cheat; getValue() is a big hit when polling"," event = options.e,"," vcData = node._data && node._data[DATA_KEY], // another perf cheat"," stopped = 0,"," facade, prevVal, newVal, nodeName, selectedOption, stopElement;",""," if (!(domNode && vcData)) {"," VC._stopPolling(node);"," return;"," }",""," prevVal = vcData.prevVal;"," nodeName = vcData.nodeName;",""," if (vcData.isEditable) {"," // Use innerHTML for performance"," newVal = domNode.innerHTML;"," } else if (nodeName === 'input' || nodeName === 'textarea') {"," // Use value property for performance"," newVal = domNode.value;"," } else if (nodeName === 'select') {"," // Back-compatibility with IE6 <select> element values."," // Huge performance cheat to get past node.get('value')."," selectedOption = domNode.options[domNode.selectedIndex];"," newVal = selectedOption.value || selectedOption.text;"," }",""," if (newVal !== prevVal) {"," vcData.prevVal = newVal;",""," facade = {"," _event : event,"," currentTarget: (event && event.currentTarget) || node,"," newVal : newVal,"," prevVal : prevVal,"," target : (event && event.target) || node"," };",""," Y.Object.some(vcData.notifiers, function (notifier) {"," var evt = notifier.handle.evt,"," newStopped;",""," // support e.stopPropagation()"," if (stopped !== 1) {"," notifier.fire(facade);"," } else if (evt.el === stopElement) {"," notifier.fire(facade);"," }",""," newStopped = evt && evt._facade ? evt._facade.stopped : 0;",""," // need to consider the condition in which there are two"," // listeners on the same element:"," // listener 1 calls e.stopPropagation()"," // listener 2 calls e.stopImmediatePropagation()"," if (newStopped > stopped) {"," stopped = newStopped;",""," if (stopped === 1) {"," stopElement = evt.el;"," }"," }",""," // support e.stopImmediatePropagation()"," if (stopped === 2) {"," return true;"," }"," });",""," VC._refreshTimeout(node);"," }"," },",""," /**"," Restarts the inactivity timeout for the specified node.",""," @method _refreshTimeout"," @param {Node} node Node to refresh."," @param {SyntheticEvent.Notifier} notifier"," @protected"," @static"," **/"," _refreshTimeout: function (node, notifier) {"," // The node may have been destroyed, so check that it still exists"," // before trying to get its data. Otherwise an error will occur."," if (!node._node) {"," return;"," }",""," var vcData = node.getData(DATA_KEY);",""," VC._stopTimeout(node); // avoid dupes",""," // If we don't see any changes within the timeout period (10 seconds by"," // default), stop polling."," vcData.timeout = setTimeout(function () {"," VC._stopPolling(node, notifier);"," }, VC.TIMEOUT);",""," },",""," /**"," Begins polling for changes to the `value` property of the specified node. If"," polling is already underway for the specified node, it will not be restarted"," unless the `force` option is `true`",""," @method _startPolling"," @param {Node} node Node to watch."," @param {SyntheticEvent.Notifier} notifier",""," @param {Object} options Options object."," @param {EventFacade} [options.e] Event facade of the event that"," initiated the polling."," @param {Boolean} [options.force=false] If `true`, polling will be"," restarted even if we're already polling this node.",""," @protected"," @static"," **/"," _startPolling: function (node, notifier, options) {"," var vcData, isEditable;",""," if (!node.test('input,textarea,select') && !(isEditable = VC._isEditable(node))) {"," return;"," }",""," vcData = node.getData(DATA_KEY);",""," if (!vcData) {"," vcData = {"," nodeName : node.get(NODE_NAME).toLowerCase(),"," isEditable : isEditable,"," prevVal : isEditable ? node.getDOMNode().innerHTML : node.get(VALUE)"," };",""," node.setData(DATA_KEY, vcData);"," }",""," vcData.notifiers || (vcData.notifiers = {});",""," // Don't bother continuing if we're already polling this node, unless"," // `options.force` is true."," if (vcData.interval) {"," if (options.force) {"," VC._stopPolling(node, notifier); // restart polling, but avoid dupe polls"," } else {"," vcData.notifiers[Y.stamp(notifier)] = notifier;"," return;"," }"," }",""," // Poll for changes to the node's value. We can't rely on keyboard"," // events for this, since the value may change due to a mouse-initiated"," // paste event, an IME input event, or for some other reason that"," // doesn't trigger a key event."," vcData.notifiers[Y.stamp(notifier)] = notifier;",""," vcData.interval = setInterval(function () {"," VC._poll(node, options);"," }, VC.POLL_INTERVAL);","",""," VC._refreshTimeout(node, notifier);"," },",""," /**"," Stops polling for changes to the specified node's `value` attribute.",""," @method _stopPolling"," @param {Node} node Node to stop polling on."," @param {SyntheticEvent.Notifier} [notifier] Notifier to remove from the"," node. If not specified, all notifiers will be removed."," @protected"," @static"," **/"," _stopPolling: function (node, notifier) {"," // The node may have been destroyed, so check that it still exists"," // before trying to get its data. Otherwise an error will occur."," if (!node._node) {"," return;"," }",""," var vcData = node.getData(DATA_KEY) || {};",""," clearInterval(vcData.interval);"," delete vcData.interval;",""," VC._stopTimeout(node);",""," if (notifier) {"," vcData.notifiers && delete vcData.notifiers[Y.stamp(notifier)];"," } else {"," vcData.notifiers = {};"," }",""," },",""," /**"," Clears the inactivity timeout for the specified node, if any.",""," @method _stopTimeout"," @param {Node} node"," @protected"," @static"," **/"," _stopTimeout: function (node) {"," var vcData = node.getData(DATA_KEY) || {};",""," clearTimeout(vcData.timeout);"," delete vcData.timeout;"," },",""," /**"," Check to see if a node has editable content or not.",""," TODO: Add additional checks to get it to work for child nodes"," that inherit \"contenteditable\" from parent nodes. This may be"," too computationally intensive to be placed inside of the `_poll`"," loop, however.",""," @method _isEditable"," @param {Node} node"," @protected"," @static"," **/"," _isEditable: function (node) {"," // Performance cheat because this is used inside `_poll`"," var domNode = node._node;"," return domNode.contentEditable === 'true' ||"," domNode.contentEditable === '';"," },","","",""," // -- Protected Static Event Handlers --------------------------------------",""," /**"," Stops polling when a node's blur event fires.",""," @method _onBlur"," @param {EventFacade} e"," @param {SyntheticEvent.Notifier} notifier"," @protected"," @static"," **/"," _onBlur: function (e, notifier) {"," VC._stopPolling(e.currentTarget, notifier);"," },",""," /**"," Resets a node's history and starts polling when a focus event occurs.",""," @method _onFocus"," @param {EventFacade} e"," @param {SyntheticEvent.Notifier} notifier"," @protected"," @static"," **/"," _onFocus: function (e, notifier) {"," var node = e.currentTarget,"," vcData = node.getData(DATA_KEY);",""," if (!vcData) {"," vcData = {"," isEditable : VC._isEditable(node),"," nodeName : node.get(NODE_NAME).toLowerCase()"," };"," node.setData(DATA_KEY, vcData);"," }",""," vcData.prevVal = vcData.isEditable ? node.getDOMNode().innerHTML : node.get(VALUE);",""," VC._startPolling(node, notifier, {e: e});"," },",""," /**"," Starts polling when a node receives a keyDown event.",""," @method _onKeyDown"," @param {EventFacade} e"," @param {SyntheticEvent.Notifier} notifier"," @protected"," @static"," **/"," _onKeyDown: function (e, notifier) {"," VC._startPolling(e.currentTarget, notifier, {e: e});"," },",""," /**"," Starts polling when an IME-related keyUp event occurs on a node.",""," @method _onKeyUp"," @param {EventFacade} e"," @param {SyntheticEvent.Notifier} notifier"," @protected"," @static"," **/"," _onKeyUp: function (e, notifier) {"," // These charCodes indicate that an IME has started. We'll restart"," // polling and give the IME up to 10 seconds (by default) to finish."," if (e.charCode === 229 || e.charCode === 197) {"," VC._startPolling(e.currentTarget, notifier, {"," e : e,"," force: true"," });"," }"," },",""," /**"," Starts polling when a node receives a mouseDown event.",""," @method _onMouseDown"," @param {EventFacade} e"," @param {SyntheticEvent.Notifier} notifier"," @protected"," @static"," **/"," _onMouseDown: function (e, notifier) {"," VC._startPolling(e.currentTarget, notifier, {e: e});"," },",""," /**"," Called when the `valuechange` event receives a new subscriber.",""," Child nodes that aren't initially available when this subscription is"," called will still fire the `valuechange` event after their data is"," collected when the delegated `focus` event is captured. This includes"," elements that haven't been inserted into the DOM yet, as well as"," elements that aren't initially `contenteditable`.",""," @method _onSubscribe"," @param {Node} node"," @param {Subscription} sub"," @param {SyntheticEvent.Notifier} notifier"," @param {Function|String} [filter] Filter function or selector string. Only"," provided for delegate subscriptions."," @protected"," @static"," **/"," _onSubscribe: function (node, sub, notifier, filter) {"," var _valuechange, callbacks, isEditable, inputNodes, editableNodes;",""," callbacks = {"," blur : VC._onBlur,"," focus : VC._onFocus,"," keydown : VC._onKeyDown,"," keyup : VC._onKeyUp,"," mousedown: VC._onMouseDown"," };",""," // Store a utility object on the notifier to hold stuff that needs to be"," // passed around to trigger event handlers, polling handlers, etc."," _valuechange = notifier._valuechange = {};",""," if (filter) {"," // If a filter is provided, then this is a delegated subscription."," _valuechange.delegated = true;",""," // Add a function to the notifier that we can use to find all"," // nodes that pass the delegate filter."," _valuechange.getNodes = function () {"," inputNodes = node.all('input,textarea,select').filter(filter);"," editableNodes = node.all('[contenteditable=\"true\"],[contenteditable=\"\"]').filter(filter);",""," return inputNodes.concat(editableNodes);"," };",""," // Store the initial values for each descendant of the container"," // node that passes the delegate filter."," _valuechange.getNodes().each(function (child) {"," if (!child.getData(DATA_KEY)) {"," child.setData(DATA_KEY, {"," nodeName : child.get(NODE_NAME).toLowerCase(),"," isEditable : VC._isEditable(child),"," prevVal : isEditable ? child.getDOMNode().innerHTML : child.get(VALUE)"," });"," }"," });",""," notifier._handles = Y.delegate(callbacks, node, filter, null,"," notifier);"," } else {"," isEditable = VC._isEditable(node);"," // This is a normal (non-delegated) event subscription."," if (!node.test('input,textarea,select') && !isEditable) {"," return;"," }",""," if (!node.getData(DATA_KEY)) {"," node.setData(DATA_KEY, {"," nodeName : node.get(NODE_NAME).toLowerCase(),"," isEditable : isEditable,"," prevVal : isEditable ? node.getDOMNode().innerHTML : node.get(VALUE)"," });"," }",""," notifier._handles = node.on(callbacks, null, null, notifier);"," }"," },",""," /**"," Called when the `valuechange` event loses a subscriber.",""," @method _onUnsubscribe"," @param {Node} node"," @param {Subscription} subscription"," @param {SyntheticEvent.Notifier} notifier"," @protected"," @static"," **/"," _onUnsubscribe: function (node, subscription, notifier) {"," var _valuechange = notifier._valuechange;",""," notifier._handles && notifier._handles.detach();",""," if (_valuechange.delegated) {"," _valuechange.getNodes().each(function (child) {"," VC._stopPolling(child, notifier);"," });"," } else {"," VC._stopPolling(node, notifier);"," }"," }","};","","/**","Synthetic event that fires when the `value` property of an `<input>`,","`<textarea>`, `<select>`, or `[contenteditable=\"true\"]` node changes as a","result of a user-initiated keystroke, mouse operation, or input method","editor (IME) input event.","","Unlike the `onchange` event, this event fires when the value actually changes","and not when the element loses focus. This event also reports IME and","multi-stroke input more reliably than `oninput` or the various key events across","browsers.","","For performance reasons, only focused nodes are monitored for changes, so","programmatic value changes on nodes that don't have focus won't be detected.","","@example",""," YUI().use('event-valuechange', function (Y) {"," Y.one('#my-input').on('valuechange', function (e) {"," });"," });","","@event valuechange","@param {String} prevVal Previous value prior to the latest change.","@param {String} newVal New value after the latest change.","@for YUI","**/","","config = {"," detach: VC._onUnsubscribe,"," on : VC._onSubscribe,",""," delegate : VC._onSubscribe,"," detachDelegate: VC._onUnsubscribe,",""," publishConfig: {"," emitFacade: true"," }","};","","Y.Event.define('valuechange', config);","Y.Event.define('valueChange', config); // deprecated, but supported for backcompat","","Y.ValueChange = VC;","","","}, '3.13.0', {\"requires\": [\"event-focus\", \"event-synthetic\"]});","","}());"]};