define("dijit/Declaration", [ "dojo/_base/array", // array.forEach array.map "dojo/_base/connect", // connect.connect "dojo/_base/declare", // declare "dojo/_base/lang", // lang.getObject "dojo/parser", // parser._functionFromScript "dojo/query", // query "./_Widget", "./_TemplatedMixin", "./_WidgetsInTemplateMixin", "dojo/NodeList-dom" ], function(array, connect, declare, lang, parser, query, _Widget, _TemplatedMixin, _WidgetsInTemplateMixin){ // module: // dijit/Declaration return declare("dijit.Declaration", _Widget, { // summary: // The Declaration widget allows a developer to declare new widget // classes directly from a snippet of markup. // _noScript: [private] Boolean // Flag to parser to leave alone the script tags contained inside of me _noScript: true, // stopParser: [private] Boolean // Flag to parser to not try and parse widgets declared inside of me stopParser: true, // widgetClass: [const] String // Name of class being declared, ex: "acme.myWidget" widgetClass: "", // propList: [const] Object // Set of attributes for this widget along with default values, ex: // {delay: 100, title: "hello world"} defaults: null, // mixins: [const] String[] // List containing the prototype for this widget, and also any mixins, // ex: ["dijit._Widget", "dijit._Container"] mixins: [], buildRendering: function(){ var src = this.srcNodeRef.parentNode.removeChild(this.srcNodeRef), methods = query("> script[type^='dojo/method']", src).orphan(), connects = query("> script[type^='dojo/connect']", src).orphan(), srcType = src.nodeName; var propList = this.defaults || {}; // For all methods defined like