]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/parser.js
2 Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
3 Available via Academic Free License >= 2.1 OR the modified BSD license.
4 see: http://dojotoolkit.org/license for details
8 define("dojo/parser",["require","./_base/kernel","./_base/lang","./_base/array","./_base/config","./_base/html","./_base/window","./_base/url","./_base/json","./aspect","./date/stamp","./Deferred","./has","./query","./on","./ready"],function(_1
,_2
,_3
,_4
,_5
,_6
,_7
,_8
,_9
,_a
,_b
,_c
,_d
,_e
,_f
,_10
){new Date("X");var _11
=0;_a
.after(_3
,"extend",function(){_11
++;},true);function _12(_13
){var map
=_13
._nameCaseMap
,_14
=_13
.prototype;if(!map
||map
._extendCnt
<_11
){map
=_13
._nameCaseMap
={};for(var _15
in _14
){if(_15
.charAt(0)==="_"){continue;}map
[_15
.toLowerCase()]=_15
;}map
._extendCnt
=_11
;}return map
;};var _16
={};function _17(_18
){var ts
=_18
.join();if(!_16
[ts
]){var _19
=[];for(var i
=0,l
=_18
.length
;i
<l
;i
++){var t
=_18
[i
];_19
[_19
.length
]=(_16
[t
]=_16
[t
]||(_3
.getObject(t
)||(~t
.indexOf("/")&&_1(t
))));}var _1a
=_19
.shift();_16
[ts
]=_19
.length
?(_1a
.createSubclass
?_1a
.createSubclass(_19
):_1a
.extend
.apply(_1a
,_19
)):_1a
;}return _16
[ts
];};var _1b
={_clearCache:function(){_11
++;_16
={};},_functionFromScript:function(_1c
,_1d
){var _1e
="",_1f
="",_20
=(_1c
.getAttribute(_1d
+"args")||_1c
.getAttribute("args")),_21
=_1c
.getAttribute("with");var _22
=(_20
||"").split(/\s*,\s*/);if(_21
&&_21
.length
){_4
.forEach(_21
.split(/\s*,\s*/),function(_23
){_1e
+="with("+_23
+"){";_1f
+="}";});}return new Function(_22
,_1e
+_1c
.innerHTML
+_1f
);},instantiate:function(_24
,_25
,_26
){_25
=_25
||{};_26
=_26
||{};var _27
=(_26
.scope
||_2
._scopeName
)+"Type",_28
="data-"+(_26
.scope
||_2
._scopeName
)+"-",_29
=_28
+"type",_2a
=_28
+"mixins";var _2b
=[];_4
.forEach(_24
,function(_2c
){var _2d
=_27
in _25
?_25
[_27
]:_2c
.getAttribute(_29
)||_2c
.getAttribute(_27
);if(_2d
){var _2e
=_2c
.getAttribute(_2a
),_2f
=_2e
?[_2d
].concat(_2e
.split(/\s*,\s*/)):[_2d
];_2b
.push({node
:_2c
,types
:_2f
});}});return this._instantiate(_2b
,_25
,_26
);},_instantiate:function(_30
,_31
,_32
){var _33
=_4
.map(_30
,function(obj
){var _34
=obj
.ctor
||_17(obj
.types
);if(!_34
){throw new Error("Unable to resolve constructor for: '"+obj
.types
.join()+"'");}return this.construct(_34
,obj
.node
,_31
,_32
,obj
.scripts
,obj
.inherited
);},this);if(!_31
._started
&&!_32
.noStart
){_4
.forEach(_33
,function(_35
){if(typeof _35
.startup
==="function"&&!_35
._started
){_35
.startup();}});}return _33
;},construct:function(_36
,_37
,_38
,_39
,_3a
,_3b
){var _3c
=_36
&&_36
.prototype;_39
=_39
||{};var _3d
={};if(_39
.defaults
){_3
.mixin(_3d
,_39
.defaults
);}if(_3b
){_3
.mixin(_3d
,_3b
);}var _3e
;if(_d("dom-attributes-explicit")){_3e
=_37
.attributes
;}else{if(_d("dom-attributes-specified-flag")){_3e
=_4
.filter(_37
.attributes
,function(a
){return a
.specified
;});}else{var _3f
=/^input$|^img$/i.test(_37
.nodeName
)?_37
:_37
.cloneNode(false),_40
=_3f
.outerHTML
.replace(/=[^\s"']+|="[^"]*"|='[^']*'/g,"").replace(/^\s*<[a-zA-Z0-9]*\s*/,"").replace(/\s*>.*$/,"");_3e
=_4
.map(_40
.split(/\s+/),function(_41
){var _42
=_41
.toLowerCase();return {name
:_41
,value
:(_37
.nodeName
=="LI"&&_41
=="value")||_42
=="enctype"?_37
.getAttribute(_42
):_37
.getAttributeNode(_42
).value
};});}}var _43
=_39
.scope
||_2
._scopeName
,_44
="data-"+_43
+"-",_45
={};if(_43
!=="dojo"){_45
[_44
+"props"]="data-dojo-props";_45
[_44
+"type"]="data-dojo-type";_45
[_44
+"mixins"]="data-dojo-mixins";_45
[_43
+"type"]="dojoType";_45
[_44
+"id"]="data-dojo-id";}var i
=0,_46
,_47
=[],_48
,_49
;while(_46
=_3e
[i
++]){var _4a
=_46
.name
,_4b
=_4a
.toLowerCase(),_4c
=_46
.value
;switch(_45
[_4b
]||_4b
){case "data-dojo-type":case "dojotype":case "data-dojo-mixins":break;case "data-dojo-props":_49
=_4c
;break;case "data-dojo-id":case "jsid":_48
=_4c
;break;case "data-dojo-attach-point":case "dojoattachpoint":_3d
.dojoAttachPoint
=_4c
;break;case "data-dojo-attach-event":case "dojoattachevent":_3d
.dojoAttachEvent
=_4c
;break;case "class":_3d
["class"]=_37
.className
;break;case "style":_3d
["style"]=_37
.style
&&_37
.style
.cssText
;break;default:if(!(_4a
in _3c
)){var map
=_12(_36
);_4a
=map
[_4b
]||_4a
;}if(_4a
in _3c
){switch(typeof _3c
[_4a
]){case "string":_3d
[_4a
]=_4c
;break;case "number":_3d
[_4a
]=_4c
.length
?Number(_4c
):NaN
;break;case "boolean":_3d
[_4a
]=_4c
.toLowerCase()!="false";break;case "function":if(_4c
===""||_4c
.search(/[^\w\.]+/i)!=-1){_3d
[_4a
]=new Function(_4c
);}else{_3d
[_4a
]=_3
.getObject(_4c
,false)||new Function(_4c
);}_47
.push(_4a
);break;default:var _4d
=_3c
[_4a
];_3d
[_4a
]=(_4d
&&"length" in _4d
)?(_4c
?_4c
.split(/\s*,\s*/):[]):(_4d
instanceof Date
)?(_4c
==""?new Date(""):_4c
=="now"?new Date():_b
.fromISOString(_4c
)):(_4d
instanceof _8
)?(_2
.baseUrl
+_4c
):_9
.fromJson(_4c
);}}else{_3d
[_4a
]=_4c
;}}}for(var j
=0;j
<_47
.length
;j
++){var _4e
=_47
[j
].toLowerCase();_37
.removeAttribute(_4e
);_37
[_4e
]=null;}if(_49
){try{_49
=_9
.fromJson
.call(_39
.propsThis
,"{"+_49
+"}");_3
.mixin(_3d
,_49
);}catch(e
){throw new Error(e
.toString()+" in data-dojo-props='"+_49
+"'");}}_3
.mixin(_3d
,_38
);if(!_3a
){_3a
=(_36
&&(_36
._noScript
||_3c
._noScript
)?[]:_e("> script[type^='dojo/']",_37
));}var _4f
=[],_50
=[],_51
=[],ons
=[];if(_3a
){for(i
=0;i
<_3a
.length
;i
++){var _52
=_3a
[i
];_37
.removeChild(_52
);var _53
=(_52
.getAttribute(_44
+"event")||_52
.getAttribute("event")),_54
=_52
.getAttribute(_44
+"prop"),_55
=_52
.getAttribute(_44
+"method"),_56
=_52
.getAttribute(_44
+"advice"),_57
=_52
.getAttribute("type"),nf
=this._functionFromScript(_52
,_44
);if(_53
){if(_57
=="dojo/connect"){_4f
.push({method
:_53
,func
:nf
});}else{if(_57
=="dojo/on"){ons
.push({event
:_53
,func
:nf
});}else{_3d
[_53
]=nf
;}}}else{if(_57
=="dojo/aspect"){_4f
.push({method
:_55
,advice
:_56
,func
:nf
});}else{if(_57
=="dojo/watch"){_51
.push({prop
:_54
,func
:nf
});}else{_50
.push(nf
);}}}}}var _58
=_36
.markupFactory
||_3c
.markupFactory
;var _59
=_58
?_58(_3d
,_37
,_36
):new _36(_3d
,_37
);if(_48
){_3
.setObject(_48
,_59
);}for(i
=0;i
<_4f
.length
;i
++){_a
[_4f
[i
].advice
||"after"](_59
,_4f
[i
].method
,_3
.hitch(_59
,_4f
[i
].func
),true);}for(i
=0;i
<_50
.length
;i
++){_50
[i
].call(_59
);}for(i
=0;i
<_51
.length
;i
++){_59
.watch(_51
[i
].prop
,_51
[i
].func
);}for(i
=0;i
<ons
.length
;i
++){_f(_59
,ons
[i
].event
,ons
[i
].func
);}return _59
;},scan:function(_5a
,_5b
){var _5c
=[],_5d
=[],_5e
={};var _5f
=(_5b
.scope
||_2
._scopeName
)+"Type",_60
="data-"+(_5b
.scope
||_2
._scopeName
)+"-",_61
=_60
+"type",_62
=_60
+"textdir",_63
=_60
+"mixins";var _64
=_5a
.firstChild
;var _65
=_5b
.inherited
;if(!_65
){function _66(_67
,_68
){return (_67
.getAttribute
&&_67
.getAttribute(_68
))||(_67
.parentNode
&&_66(_67
.parentNode
,_68
));};_65
={dir
:_66(_5a
,"dir"),lang
:_66(_5a
,"lang"),textDir
:_66(_5a
,_62
)};for(var key
in _65
){if(!_65
[key
]){delete _65
[key
];}}}var _69
={inherited
:_65
};var _6a
;var _6b
;function _6c(_6d
){if(!_6d
.inherited
){_6d
.inherited
={};var _6e
=_6d
.node
,_6f
=_6c(_6d
.parent
);var _70
={dir
:_6e
.getAttribute("dir")||_6f
.dir
,lang
:_6e
.getAttribute("lang")||_6f
.lang
,textDir
:_6e
.getAttribute(_62
)||_6f
.textDir
};for(var key
in _70
){if(_70
[key
]){_6d
.inherited
[key
]=_70
[key
];}}}return _6d
.inherited
;};while(true){if(!_64
){if(!_69
||!_69
.node
){break;}_64
=_69
.node
.nextSibling
;_6b
=false;_69
=_69
.parent
;_6a
=_69
.scripts
;continue;}if(_64
.nodeType
!=1){_64
=_64
.nextSibling
;continue;}if(_6a
&&_64
.nodeName
.toLowerCase()=="script"){_71
=_64
.getAttribute("type");if(_71
&&/^dojo
\/\w/i.test(_71
)){_6a
.push(_64
);}_64
=_64
.nextSibling
;continue;}if(_6b
){_64
=_64
.nextSibling
;continue;}var _71
=_64
.getAttribute(_61
)||_64
.getAttribute(_5f
);var _72
=_64
.firstChild
;if(!_71
&&(!_72
||(_72
.nodeType
==3&&!_72
.nextSibling
))){_64
=_64
.nextSibling
;continue;}var _73
;var _74
=null;if(_71
){var _75
=_64
.getAttribute(_63
),_76
=_75
?[_71
].concat(_75
.split(/\s*,\s*/)):[_71
];try{_74
=_17(_76
);}catch(e
){}if(!_74
){_4
.forEach(_76
,function(t
){if(~t
.indexOf("/")&&!_5e
[t
]){_5e
[t
]=true;_5d
[_5d
.length
]=t
;}});}var _77
=_74
&&!_74
.prototype._noScript
?[]:null;_73
={types
:_76
,ctor
:_74
,parent
:_69
,node
:_64
,scripts
:_77
};_73
.inherited
=_6c(_73
);_5c
.push(_73
);}else{_73
={node
:_64
,scripts
:_6a
,parent
:_69
};}_64
=_72
;_6a
=_77
;_6b
=_74
&&_74
.prototype.stopParser
&&!(_5b
.template
);_69
=_73
;}var d
=new _c();if(_5d
.length
){if(_d("dojo-debug-messages")){console
.warn("WARNING: Modules being Auto-Required: "+_5d
.join(", "));}_1(_5d
,function(){d
.resolve(_4
.filter(_5c
,function(_78
){if(!_78
.ctor
){try{_78
.ctor
=_17(_78
.types
);}catch(e
){}}var _79
=_78
.parent
;while(_79
&&!_79
.types
){_79
=_79
.parent
;}var _7a
=_78
.ctor
&&_78
.ctor
.prototype;_78
.instantiateChildren
=!(_7a
&&_7a
.stopParser
&&!(_5b
.template
));_78
.instantiate
=!_79
||(_79
.instantiate
&&_79
.instantiateChildren
);return _78
.instantiate
;}));});}else{d
.resolve(_5c
);}return d
.promise
;},_require:function(_7b
){var _7c
=_9
.fromJson("{"+_7b
.innerHTML
+"}"),_7d
=[],_7e
=[],d
=new _c();for(var _7f
in _7c
){_7d
.push(_7f
);_7e
.push(_7c
[_7f
]);}_1(_7e
,function(){for(var i
=0;i
<_7d
.length
;i
++){_3
.setObject(_7d
[i
],arguments
[i
]);}d
.resolve(arguments
);});return d
.promise
;},_scanAmd:function(_80
){var _81
=new _c(),_82
=_81
.promise
;_81
.resolve(true);var _83
=this;_e("script[type='dojo/require']",_80
).forEach(function(_84
){_82
=_82
.then(function(){return _83
._require(_84
);});_84
.parentNode
.removeChild(_84
);});return _82
;},parse:function(_85
,_86
){var _87
;if(!_86
&&_85
&&_85
.rootNode
){_86
=_85
;_87
=_86
.rootNode
;}else{if(_85
&&_3
.isObject(_85
)&&!("nodeType" in _85
)){_86
=_85
;}else{_87
=_85
;}}_87
=_87
?_6
.byId(_87
):_7
.body();_86
=_86
||{};var _88
=_86
.template
?{template
:true}:{},_89
=[],_8a
=this;var p
=this._scanAmd(_87
,_86
).then(function(){return _8a
.scan(_87
,_86
);}).then(function(_8b
){return _89
=_89
.concat(_8a
._instantiate(_8b
,_88
,_86
));}).otherwise(function(e
){console
.error("dojo/parser::parse() error",e
);throw e
;});_3
.mixin(_89
,p
);return _89
;}};if(1){_2
.parser
=_1b
;}if(_5
.parseOnLoad
){_10(100,_1b
,"parse");}return _1b
;});