if (!dojo._hasResource["dijit.Declaration"]) { // _hasResource checks added by // build. Do not use // _hasResource directly in your // code. dojo._hasResource["dijit.Declaration"] = true; dojo.provide("dijit.Declaration"); dojo.require("dijit._Widget"); dojo.require("dijit._Templated"); dojo.declare("dijit.Declaration", dijit._Widget, { // summary: // The Declaration widget allows a user to declare new widget // classes directly from a snippet of markup. _noScript : true, widgetClass : "", replaceVars : true, defaults : null, mixins : [], buildRendering : function() { var src = this.srcNodeRef.parentNode .removeChild(this.srcNodeRef); var preambles = dojo.query( "> script[type='dojo/method'][event='preamble']", src).orphan(); var scripts = dojo.query("> script[type^='dojo/']", src) .orphan(); var srcType = src.nodeName; var propList = this.defaults || {}; // map array of strings like [ "dijit.form.Button" ] to // array of mixin objects // (note that dojo.map(this.mixins, dojo.getObject) doesn't // work because it passes // a bogus third argument to getObject(), confusing it) this.mixins = this.mixins.length ? dojo.map(this.mixins, function(name) { return dojo.getObject(name); }) : [dijit._Widget, dijit._Templated]; if (preambles.length) { // we only support one preamble. So be it. propList.preamble = dojo.parser ._functionFromScript(preambles[0]); } var parsedScripts = dojo.map(scripts, function(s) { var evt = s.getAttribute("event") || "postscript"; return { event : evt, func : dojo.parser._functionFromScript(s) }; }); // do the connects for each