1
0
mirror of https://tt-rss.org/git/tt-rss.git synced 2024-07-02 12:50:52 +02:00
ttrss/lib/dojo/parser.js

8 lines
6.7 KiB
JavaScript
Raw Normal View History

/*
2011-11-08 17:40:44 +01:00
Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
2012-08-14 16:59:10 +02:00
//>>built
define("dojo/parser",["./_base/kernel","./_base/lang","./_base/array","./_base/html","./_base/window","./_base/url","./_base/json","./aspect","./date/stamp","./query","./on","./ready"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){new Date("X");var _c={"dom-attributes-explicit":document.createElement("div").attributes.length<40};function _d(_e){return _c[_e];};_1.parser=new function(){var _f={};function _10(_11){var map={};for(var _12 in _11){if(_12.charAt(0)=="_"){continue;}map[_12.toLowerCase()]=_12;}return map;};_8.after(_2,"extend",function(){_f={};},true);var _13={};this._functionFromScript=function(_14,_15){var _16="";var _17="";var _18=(_14.getAttribute(_15+"args")||_14.getAttribute("args"));if(_18){_3.forEach(_18.split(/\s*,\s*/),function(_19,idx){_16+="var "+_19+" = arguments["+idx+"]; ";});}var _1a=_14.getAttribute("with");if(_1a&&_1a.length){_3.forEach(_1a.split(/\s*,\s*/),function(_1b){_16+="with("+_1b+"){";_17+="}";});}return new Function(_16+_14.innerHTML+_17);};this.instantiate=function(_1c,_1d,_1e){var _1f=[],_1d=_1d||{};_1e=_1e||{};var _20=(_1e.scope||_1._scopeName)+"Type",_21="data-"+(_1e.scope||_1._scopeName)+"-",_22=_21+"type",_23=_21+"props",_24=_21+"attach-point",_25=_21+"attach-event",_26=_21+"id";var _27={};_3.forEach([_23,_22,_20,_26,"jsId",_24,_25,"dojoAttachPoint","dojoAttachEvent","class","style"],function(_28){_27[_28.toLowerCase()]=_28.replace(_1e.scope,"dojo");});_3.forEach(_1c,function(obj){if(!obj){return;}var _29=obj.node||obj,_2a=_20 in _1d?_1d[_20]:obj.node?obj.type:(_29.getAttribute(_22)||_29.getAttribute(_20)),_2b=_13[_2a]||(_13[_2a]=_2.getObject(_2a)),_2c=_2b&&_2b.prototype;if(!_2b){throw new Error("Could not load class '"+_2a);}var _2d={};if(_1e.defaults){_2.mixin(_2d,_1e.defaults);}if(obj.inherited){_2.mixin(_2d,obj.inherited);}var _2e;if(_d("dom-attributes-explicit")){_2e=_29.attributes;}else{var _2f=/^input$|^img$/i.test(_29.nodeName)?_29:_29.cloneNode(false),_30=_2f.outerHTML.replace(/=[^\s"']+|="[^"]*"|='[^']*'/g,"").replace(/^\s*<[a-zA-Z0-9]*/,"").replace(/>.*$/,"");_2e=_3.map(_30.split(/\s+/),function(_31){var _32=_31.toLowerCase();return {name:_31,value:(_29.nodeName=="LI"&&_31=="value")||_32=="enctype"?_29.getAttribute(_32):_29.getAttributeNode(_32).value,specified:true};});}var i=0,_33;while(_33=_2e[i++]){if(!_33||!_33.specified){continue;}var _34=_33.name,_35=_34.toLowerCase(),_36=_33.value;if(_35 in _27){switch(_27[_35]){case "data-dojo-props":var _37=_36;break;case "data-dojo-id":case "jsId":var _38=_36;break;case "data-dojo-attach-point":case "dojoAttachPoint":_2d.dojoAttachPoint=_36;break;case "data-dojo-attach-event":case "dojoAttachEvent":_2d.dojoAttachEvent=_36;break;case "class":_2d["class"]=_29.className;break;case "style":_2d["style"]=_29.style&&_29.style.cssText;break;}}else{if(!(_34 in _2c)){var map=(_f[_2a]||(_f[_2a]=_10(_2c)));_34=map[_35]||_34;}if(_34 in _2c){switch(typeof _2c[_34]){case "string":_2d[_34]=_36;break;case "number":_2d[_34]=_36.length?Number(_36):NaN;break;case "boolean":_2d[_34]=_36.toLowerCase()!="false";break;case "function":if(_36===""||_36.search(/[^\w\.]+/i)!=-1){_2d[_34]=new Function(_36);}else{_2d[_34]=_2.getObject(_36,false)||new Function(_36);}break;default:var _39=_2c[_34];_2d[_34]=(_39&&"length" in _39)?(_36?_36.split(/\s*,\s*/):[]):(_39 instanceof Date)?(_36==""?new Date(""):_36=="now"?new Date():_9.fromISOString(_36)):(_39 instanceof _1._Url)?(_1.baseUrl+_36):_7.fromJson(_36);}}else{_2d[_34]=_36;}}}if(_37){try{_37=_7.fromJson.call(_1e.propsThis,"{"+_37+"}");_2.mixin(_2d,_37);}catch(e){throw new Error(e.toString()+" in data-dojo-props='"+_37+"'");}}_2.mixin(_2d,_1d);var _3a=obj.node?obj.scripts:(_2b&&(_2b._noScript||_2c._noScript)?[]:_a("> script[type^='dojo/']",_29));var _3b=[],_3c=[],_3d=[],on=[];if(_3a){for(i=0;i<_3a.length;i++){var _3e=_3a[i];_29.removeChild(_3e);var _3f=(_3e.getAttribute(_21+"event")||_3e.getAttribute("event")),_40=_3e.getAttribute(_21+"prop"),_2a=_3e.getAttribute("type"),nf=this._functionFromScript(_3e,_21);if(_3f){if(_2a=="dojo/connect"){_3b.push({event:_3f,func:nf});}else{if(_2a=="dojo/on"){on.push({event:_