diff options
Diffstat (limited to 'lib/dojo')
245 files changed, 10452 insertions, 6611 deletions
diff --git a/lib/dojo/AdapterRegistry.js b/lib/dojo/AdapterRegistry.js index bb6a60f41..1d688a3b1 100644 --- a/lib/dojo/AdapterRegistry.js +++ b/lib/dojo/AdapterRegistry.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo.AdapterRegistry"]){ //_hasResource checks added by b dojo._hasResource["dojo.AdapterRegistry"] = true; dojo.provide("dojo.AdapterRegistry"); + dojo.AdapterRegistry = function(/*Boolean?*/ returnWrappers){ // summary: // A registry to make contextual calling/searching easier. @@ -40,11 +41,11 @@ dojo.AdapterRegistry = function(/*Boolean?*/ returnWrappers){ this.pairs = []; this.returnWrappers = returnWrappers || false; // Boolean -} +}; dojo.extend(dojo.AdapterRegistry, { register: function(/*String*/ name, /*Function*/ check, /*Function*/ wrap, /*Boolean?*/ directReturn, /*Boolean?*/ override){ - // summary: + // summary: // register a check function to determine if the wrap function or // object gets selected // name: diff --git a/lib/dojo/DeferredList.js b/lib/dojo/DeferredList.js index a8156aba2..afe6638a1 100644 --- a/lib/dojo/DeferredList.js +++ b/lib/dojo/DeferredList.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,6 +8,8 @@ if(!dojo._hasResource["dojo.DeferredList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.DeferredList"] = true; dojo.provide("dojo.DeferredList"); + + dojo.DeferredList = function(/*Array*/ list, /*Boolean?*/ fireOnOneCallback, /*Boolean?*/ fireOnOneErrback, /*Boolean?*/ consumeErrors, /*Function?*/ canceller){ // summary: // Provides event handling for a group of Deferred objects. @@ -65,7 +67,7 @@ dojo.DeferredList = function(/*Array*/ list, /*Boolean?*/ fireOnOneCallback, /*B dojo.DeferredList.prototype = new dojo.Deferred(); dojo.DeferredList.prototype.gatherResults= function(deferredList){ - // summary: + // summary: // Gathers the results of the deferreds for packaging // as the parameters to the Deferred Lists' callback diff --git a/lib/dojo/LICENSE b/lib/dojo/LICENSE index 4c93ded6b..aa6b39f8c 100644 --- a/lib/dojo/LICENSE +++ b/lib/dojo/LICENSE @@ -13,7 +13,7 @@ The text of the AFL and BSD licenses is reproduced below. The "New" BSD License: ********************** -Copyright (c) 2005-2010, The Dojo Foundation +Copyright (c) 2005-2011, The Dojo Foundation All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/lib/dojo/NodeList-data.js b/lib/dojo/NodeList-data.js new file mode 100644 index 000000000..0126448d2 --- /dev/null +++ b/lib/dojo/NodeList-data.js @@ -0,0 +1,175 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.NodeList-data"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.NodeList-data"] = true; +dojo.provide("dojo.NodeList-data"); + +(function(d){ + +/*===== + dojo.NodeList.prototype.data = function(key, value){ + // summary: stash or get some arbitrary data on/from these nodes. + // + // description: + // Stash or get some arbirtrary data on/from these nodes. This private _data function is + // exposed publicly on `dojo.NodeList`, eg: as the result of a `dojo.query` call. + // DIFFERS from jQuery.data in that when used as a getter, the entire list is ALWAYS + // returned. EVEN WHEN THE LIST IS length == 1. + // + // A single-node version of this function is provided as `dojo._nodeData`, which follows + // the same signature, though expects a String ID or DomNode reference in the first + // position, before key/value arguments. + // + // node: String|DomNode + // The node to associate data with + // + // key: Object?|String? + // If an object, act as a setter and iterate over said object setting data items as defined. + // If a string, and `value` present, set the data for defined `key` to `value` + // If a string, and `value` absent, act as a getter, returning the data associated with said `key` + // + // value: Anything? + // The value to set for said `key`, provided `key` is a string (and not an object) + // + // example: + // Set a key `bar` to some data, then retrieve it. + // | dojo.query(".foo").data("bar", "touched"); + // | var touched = dojo.query(".foo").data("bar"); + // | if(touched[0] == "touched"){ alert('win'); } + // + // example: + // Get all the data items for a given node. + // | var list = dojo.query(".foo").data(); + // | var first = list[0]; + // + // example: + // Set the data to a complex hash. Overwrites existing keys with new value + // | dojo.query(".foo").data({ bar:"baz", foo:"bar" }); + // Then get some random key: + // | dojo.query(".foo").data("foo"); // returns [`bar`] + // + // returns: Object|Anything|Nothing + // When used as a setter via `dojo.NodeList`, a NodeList instance is returned + // for further chaning. When used as a getter via `dojo.NodeList` an ARRAY + // of items is returned. The items in the array correspond to the elements + // in the original list. This is true even when the list length is 1, eg: + // when looking up a node by ID (#foo) + }; + + dojo.NodeList.prototype.removeData = function(key){ + // summary: Remove the data associated with these nodes. + // key: String? + // If ommitted, clean all data for this node. + // If passed, remove the data item found at `key` + }; + + dojo._nodeDataCache = { + // summary: An alias to the private dataCache for NodeList-data. NEVER USE THIS! + // This private is only exposed for the benefit of unit testing, and is + // removed during the build process. + }; + +=====*/ + + var dataCache = {}, x = 0, dataattr = "data-dojo-dataid", nl = d.NodeList, + dopid = function(node){ + // summary: Return a uniqueish ID for the passed node reference + var pid = d.attr(node, dataattr); + if(!pid){ + pid = "pid" + (x++); + d.attr(node, dataattr, pid); + } + return pid; + } + ; + + + var dodata = d._nodeData = function(node, key, value){ + + var pid = dopid(node), r; + if(!dataCache[pid]){ dataCache[pid] = {}; } + + // API discrepency: calling with only a node returns the whole object. $.data throws + if(arguments.length == 1){ r = dataCache[pid]; } + if(typeof key == "string"){ + // either getter or setter, based on `value` presence + if(arguments.length > 2){ + dataCache[pid][key] = value; + }else{ + r = dataCache[pid][key]; + } + }else{ + // must be a setter, mix `value` into data hash + // API discrepency: using object as setter works here + r = d._mixin(dataCache[pid], key); + } + + return r; // Object|Anything|Nothing + }; + + var removeData = d._removeNodeData = function(node, key){ + // summary: Remove some data from this node + // node: String|DomNode + // The node reference to remove data from + // key: String? + // If omitted, remove all data in this dataset. + // If passed, remove only the passed `key` in the associated dataset + var pid = dopid(node); + if(dataCache[pid]){ + if(key){ + delete dataCache[pid][key]; + }else{ + delete dataCache[pid]; + } + } + }; + + d._gcNodeData = function(){ + // summary: super expensive: GC all data in the data for nodes that no longer exist in the dom. + // description: + // super expensive: GC all data in the data for nodes that no longer exist in the dom. + // MUCH safer to do this yourself, manually, on a per-node basis (via `NodeList.removeData()`) + // provided as a stop-gap for exceptionally large/complex applications with constantly changing + // content regions (eg: a dijit.layout.ContentPane with replacing data) + // There is NO automatic GC going on. If you dojo.destroy() a node, you should _removeNodeData + // prior to destruction. + var livePids = dojo.query("[" + dataattr + "]").map(dopid); + for(var i in dataCache){ + if(dojo.indexOf(livePids, i) < 0){ delete dataCache[i]; } + } + }; + + // make nodeData and removeNodeData public on dojo.NodeList: + d.extend(nl, { + data: nl._adaptWithCondition(dodata, function(a){ + return a.length === 0 || a.length == 1 && (typeof a[0] == "string"); + }), + removeData: nl._adaptAsForEach(removeData) + }); + +// TODO: this is the basic implemetation of adaptWithCondtionAndWhenMappedConsiderLength, for lack of a better API name +// it conflicts with the the `dojo.NodeList` way: always always return an arrayLike thinger. Consider for 2.0: +// +// nl.prototype.data = function(key, value){ +// var a = arguments, r; +// if(a.length === 0 || a.length == 1 && (typeof a[0] == "string")){ +// r = this.map(function(node){ +// return d._data(node, key); +// }); +// if(r.length == 1){ r = r[0]; } // the offending line, and the diff on adaptWithCondition +// }else{ +// r = this.forEach(function(node){ +// d._data(node, key, value); +// }); +// } +// return r; // dojo.NodeList|Array|SingleItem +// }; + +})(dojo); + +} diff --git a/lib/dojo/NodeList-fx.js b/lib/dojo/NodeList-fx.js index de2cc3255..b9ec76647 100644 --- a/lib/dojo/NodeList-fx.js +++ b/lib/dojo/NodeList-fx.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,6 +10,7 @@ dojo._hasResource["dojo.NodeList-fx"] = true; dojo.provide("dojo.NodeList-fx"); dojo.require("dojo.fx"); + /*===== dojo["NodeList-fx"] = { // summary: Adds dojo.fx animation support to dojo.query() @@ -25,7 +26,7 @@ dojo.extend(dojo.NodeList, { dojo.mixin(tmpArgs, args); return obj[method](tmpArgs); }) - ); + ); return args.auto ? a.play() && this : a; // dojo.Animation|dojo.NodeList }, @@ -34,7 +35,7 @@ dojo.extend(dojo.NodeList, { // wipe in all elements of this NodeList via `dojo.fx.wipeIn` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -58,7 +59,7 @@ dojo.extend(dojo.NodeList, { // wipe out all elements of this NodeList via `dojo.fx.wipeOut` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -77,7 +78,7 @@ dojo.extend(dojo.NodeList, { // slide all elements of the node list to the specified place via `dojo.fx.slideTo` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -100,7 +101,7 @@ dojo.extend(dojo.NodeList, { // fade in all elements of this NodeList via `dojo.fadeIn` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -119,7 +120,7 @@ dojo.extend(dojo.NodeList, { // fade out all elements of this NodeList via `dojo.fadeOut` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -155,14 +156,14 @@ dojo.extend(dojo.NodeList, { // example: // | dojo.query(".zork").animateProperty({ // | duration: 500, - // | properties: { + // | properties: { // | color: { start: "black", end: "white" }, - // | left: { end: 300 } - // | } + // | left: { end: 300 } + // | } // | }).play(); // // example: - // | dojo.query(".grue").animateProperty({ + // | dojo.query(".grue").animateProperty({ // | auto:true, // | properties: { // | height:240 @@ -171,9 +172,9 @@ dojo.extend(dojo.NodeList, { return this._anim(dojo, "animateProperty", args); // dojo.Animation|dojo.NodeList }, - anim: function( /*Object*/ properties, - /*Integer?*/ duration, - /*Function?*/ easing, + anim: function( /*Object*/ properties, + /*Integer?*/ duration, + /*Function?*/ easing, /*Function?*/ onEnd, /*Integer?*/ delay){ // summary: @@ -181,8 +182,8 @@ dojo.extend(dojo.NodeList, { // The returned animation object will already be playing when it // is returned. See the docs for `dojo.anim` for full details. // properties: Object - // the properties to animate. does NOT support the `auto` parameter like other - // NodeList-fx methods. + // the properties to animate. does NOT support the `auto` parameter like other + // NodeList-fx methods. // duration: Integer? // Optional. The time to run the animations for // easing: Function? @@ -207,7 +208,7 @@ dojo.extend(dojo.NodeList, { easing: easing }); }) - ); + ); if(onEnd){ dojo.connect(canim, "onEnd", onEnd); } diff --git a/lib/dojo/NodeList-html.js b/lib/dojo/NodeList-html.js index e8e0ac220..bc8da9d86 100644 --- a/lib/dojo/NodeList-html.js +++ b/lib/dojo/NodeList-html.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,6 +10,7 @@ dojo._hasResource["dojo.NodeList-html"] = true; dojo.provide("dojo.NodeList-html"); dojo.require("dojo.html"); + /*===== dojo["NodeList-html"] = { // summary: Adds a chainable html method to dojo.query() / Nodelist instances for setting/replacing node content @@ -21,15 +22,15 @@ dojo.extend(dojo.NodeList, { // summary: // see `dojo.html.set()`. Set the content of all elements of this NodeList // - // description: - // Based around `dojo.html.set()`, set the content of the Elements in a + // description: + // Based around `dojo.html.set()`, set the content of the Elements in a // NodeList to the given content (string/node/nodelist), with optional arguments // to further tune the set content behavior. // // example: // | dojo.query(".thingList").html("<li dojoType='dojo.dnd.Moveable'>1</li><li dojoType='dojo.dnd.Moveable'>2</li><li dojoType='dojo.dnd.Moveable'>3</li>", - // | { - // | parseContent: true, + // | { + // | parseContent: true, // | onBegin: function(){ // | this.content = this.content.replace(/([0-9])/g, this.id + ": $1"); // | this.inherited("onBegin", arguments); @@ -38,7 +39,7 @@ dojo.extend(dojo.NodeList, { var dhs = new dojo.html._ContentSetter(params || {}); this.forEach(function(elm){ - dhs.node = elm; + dhs.node = elm; dhs.set(content); dhs.tearDown(); }); diff --git a/lib/dojo/NodeList-manipulate.js b/lib/dojo/NodeList-manipulate.js index 171540faf..8a4603843 100644 --- a/lib/dojo/NodeList-manipulate.js +++ b/lib/dojo/NodeList-manipulate.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo.NodeList-manipulate"]){ //_hasResource checks added dojo._hasResource["dojo.NodeList-manipulate"] = true; dojo.provide("dojo.NodeList-manipulate"); + /*===== dojo["NodeList-manipulate"] = { // summary: Adds a chainable methods to dojo.query() / Nodelist instances for manipulating HTML @@ -51,7 +52,7 @@ dojo["NodeList-manipulate"] = { } function makeWrapNode(/*DOMNode||String*/html, /*DOMNode*/refNode){ - // summary: + // summary: // convert HTML into nodes if it is not already a node. if(typeof html == "string"){ html = dojo._toDom(html, (refNode && refNode.ownerDocument)); @@ -655,25 +656,25 @@ dojo["NodeList-manipulate"] = { // example: // assume a DOM created by this markup: // | <div class="container"> - // | <div class="spacer">___</div> + // | <div class="spacer">___</div> // | <div class="red">Red One</div> - // | <div class="spacer">___</div> + // | <div class="spacer">___</div> // | <div class="blue">Blue One</div> - // | <div class="spacer">___</div> + // | <div class="spacer">___</div> // | <div class="red">Red Two</div> - // | <div class="spacer">___</div> + // | <div class="spacer">___</div> // | <div class="blue">Blue Two</div> // | </div> // Running this code: // | dojo.query(".red").replaceAll(".blue"); // Results in this DOM structure: // | <div class="container"> - // | <div class="spacer">___</div> - // | <div class="spacer">___</div> + // | <div class="spacer">___</div> + // | <div class="spacer">___</div> // | <div class="red">Red One</div> // | <div class="red">Red Two</div> - // | <div class="spacer">___</div> - // | <div class="spacer">___</div> + // | <div class="spacer">___</div> + // | <div class="spacer">___</div> // | <div class="red">Red One</div> // | <div class="red">Red Two</div> // | </div> diff --git a/lib/dojo/NodeList-traverse.js b/lib/dojo/NodeList-traverse.js index b5314eed6..b6167ad0e 100644 --- a/lib/dojo/NodeList-traverse.js +++ b/lib/dojo/NodeList-traverse.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo.NodeList-traverse"]){ //_hasResource checks added by dojo._hasResource["dojo.NodeList-traverse"] = true; dojo.provide("dojo.NodeList-traverse"); + /*===== dojo["NodeList-traverse"] = { // summary: Adds a chainable methods to dojo.query() / Nodelist instances for traversing the DOM @@ -28,18 +29,7 @@ dojo.extend(dojo.NodeList, { ary = ary.concat(items); } } - return ary; - }, - - _filterQueryResult: function(nodeList, query){ - // summmary: - // Replacement for dojo._filterQueryResult that does a full - // query. Slower, but allows for more types of queries. - var filter = dojo.filter(nodeList, function(node){ - return dojo.query(query, node.parentNode).indexOf(node) != -1; - }); - var result = this._wrap(filter); - return result; + return ary; }, _getUniqueAsNodeList: function(nodes){ @@ -65,7 +55,7 @@ dojo.extend(dojo.NodeList, { // gets unique element nodes, filters them further // with an optional query and then calls _stash to track parent NodeList. var ary = this._getUniqueAsNodeList(nodes); - ary = (query ? this._filterQueryResult(ary, query) : ary); + ary = (query ? dojo._filterQueryResult(ary, query) : ary); return ary._stash(this); //dojo.NodeList }, @@ -73,7 +63,7 @@ dojo.extend(dojo.NodeList, { // summary: // cycles over all the nodes and calls a callback // to collect nodes for a possible inclusion in a result. - // The callback will get two args: callback(node, ary), + // The callback will get two args: callback(node, ary), // where ary is the array being used to collect the nodes. return this._getUniqueNodeListWithParent(this._buildArrayFromCallback(callback), query); //dojo.NodeList }, @@ -109,7 +99,7 @@ dojo.extend(dojo.NodeList, { }); //dojo.NodeList }, - closest: function(/*String*/query){ + closest: function(/*String*/query, /*String|DOMNode?*/ root){ // summary: // Returns closest parent that matches query, including current node in this // dojo.NodeList if it matches the query. @@ -118,6 +108,8 @@ dojo.extend(dojo.NodeList, { // original dojo.NodeList. // query: // a CSS selector. + // root: + // If specified, query is relative to "root" rather than document body. // returns: // dojo.NodeList, the closest parent that matches the query, including the current // node in this dojo.NodeList if it matches the query. @@ -133,13 +125,12 @@ dojo.extend(dojo.NodeList, { // Running this code: // | dojo.query(".red").closest(".container"); // returns the div with class "container". - var self = this; - return this._getRelatedUniqueNodes(query, function(node, ary){ + return this._getRelatedUniqueNodes(null, function(node, ary){ do{ - if(self._filterQueryResult([node], query).length){ + if(dojo._filterQueryResult([node], query, root).length){ return node; } - }while((node = node.parentNode) && node.nodeType == 1); + }while(node != root && (node = node.parentNode) && node.nodeType == 1); return null; //To make rhino strict checking happy. }); //dojo.NodeList }, @@ -461,7 +452,7 @@ dojo.extend(dojo.NodeList, { // | </div> // Running this code: // | dojo.query(".blue").last(); - // returns the last div with class "blue", + // returns the last div with class "blue", return this._wrap((this.length ? [this[this.length - 1]] : []), this); //dojo.NodeList }, diff --git a/lib/dojo/OpenAjax.js b/lib/dojo/OpenAjax.js index c777f3ea8..f99af1a13 100644 --- a/lib/dojo/OpenAjax.js +++ b/lib/dojo/OpenAjax.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,18 +9,18 @@ * OpenAjax.js * * Reference implementation of the OpenAjax Hub, as specified by OpenAjax Alliance. - * Specification is under development at: + * Specification is under development at: * * http://www.openajax.org/member/wiki/OpenAjax_Hub_Specification * * Copyright 2006-2007 OpenAjax Alliance * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy - * of the License at http://www.apache.org/licenses/LICENSE-2.0 . Unless - * required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 . Unless + * required by applicable law or agreed to in writing, software distributed + * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * ******************************************************************************/ @@ -51,7 +51,7 @@ if(!window["OpenAjax"]){ prefix: prefix, namespaceURI: nsURL, version: version, - extraData: extra + extraData: extra }; this.publish(ooh+"registerLibrary", libs[prefix]); } @@ -82,7 +82,7 @@ if(!window["OpenAjax"]){ this._publish(this._subscriptions, path, 0, name, message); this._pubDepth--; if((this._cleanup.length > 0) && (this._pubDepth == 0)){ - for(var i = 0; i < this._cleanup.length; i++){ + for(var i = 0; i < this._cleanup.length; i++){ this.unsubscribe(this._cleanup[i].hdl); } delete(this._cleanup); @@ -100,12 +100,12 @@ if(!window["OpenAjax"]){ var token = path[index]; if(index == path.length){ tree.s.push(sub); - }else{ + }else{ if(typeof tree.c == "undefined"){ tree.c = {}; } if(typeof tree.c[token] == "undefined"){ - tree.c[token] = { c: {}, s: [] }; + tree.c[token] = { c: {}, s: [] }; this._subscribe(tree.c[token], path, index + 1, sub); }else{ this._subscribe( tree.c[token], path, index + 1, sub); @@ -120,7 +120,7 @@ if(!window["OpenAjax"]){ node = tree; }else{ this._publish(tree.c[path[index]], path, index + 1, name, msg); - this._publish(tree.c["*"], path, index + 1, name, msg); + this._publish(tree.c["*"], path, index + 1, name, msg); node = tree.c["**"]; } if(typeof node != "undefined"){ @@ -140,7 +140,7 @@ if(!window["OpenAjax"]){ // get a function object fcb = sc[fcb]; } - if((!fcb) || + if((!fcb) || (fcb.call(sc, name, msg, d))) { cb.call(sc, name, msg, d); } @@ -156,24 +156,24 @@ if(!window["OpenAjax"]){ var childNode = tree.c[path[index]]; this._unsubscribe(childNode, path, index + 1, sid); if(childNode.s.length == 0) { - for(var x in childNode.c) - return; - delete tree.c[path[index]]; + for(var x in childNode.c) + return; + delete tree.c[path[index]]; } return; } else { var callbacks = tree.s; var max = callbacks.length; - for(var i = 0; i < max; i++) + for(var i = 0; i < max; i++) if(sid == callbacks[i].sid) { if(this._pubDepth > 0) { - callbacks[i].cb = null; - this._cleanup.push(callbacks[i]); + callbacks[i].cb = null; + this._cleanup.push(callbacks[i]); } else callbacks.splice(i, 1); - return; + return; } } } diff --git a/lib/dojo/Stateful.js b/lib/dojo/Stateful.js index e4f406309..147001962 100644 --- a/lib/dojo/Stateful.js +++ b/lib/dojo/Stateful.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo.Stateful"]){ //_hasResource checks added by build. D dojo._hasResource["dojo.Stateful"] = true; dojo.provide("dojo.Stateful"); + dojo.declare("dojo.Stateful", null, { // summary: // Base class for objects that provide named properties with optional getter/setter @@ -33,7 +34,7 @@ dojo.declare("dojo.Stateful", null, { // description: // Get a named property on a Stateful object. The property may // potentially be retrieved via a getter method in subclasses. In the base class - // this just retrieves the object's property. + // this just retrieves the object's property. // For example: // | stateful = new dojo.Stateful({foo: 3}); // | stateful.get("foo") // returns 3 @@ -45,11 +46,11 @@ dojo.declare("dojo.Stateful", null, { // summary: // Set a property on a Stateful instance // name: - // The property to set. + // The property to set. // value: // The value to set in the property. // description: - // Sets named properties on a stateful object and notifies any watchers of + // Sets named properties on a stateful object and notifies any watchers of // the property. A programmatic setter may be defined in subclasses. // For example: // | stateful = new dojo.Stateful(); @@ -66,7 +67,7 @@ dojo.declare("dojo.Stateful", null, { // This is equivalent to calling set(foo, "Howdy") and set(bar, 3) if(typeof name === "object"){ for(var x in name){ - this.set(x, name[x]); + this.set(x, name[x]); } return this; } @@ -81,17 +82,17 @@ dojo.declare("dojo.Stateful", null, { // summary: // Watches a property for changes // name: - // Indicates the property to watch. This is optional (the callback may be the + // Indicates the property to watch. This is optional (the callback may be the // only parameter), and if omitted, all the properties will be watched // returns: - // An object handle for the watch. The unwatch method of this object + // An object handle for the watch. The unwatch method of this object // can be used to discontinue watching this property: // | var watchHandle = obj.watch("foo", callback); // | watchHandle.unwatch(); // callback won't be called now // callback: // The function to execute when the property changes. This will be called after // the property has been changed. The callback will be called with the |this| - // set to the instance, the first argument as the name of the property, the + // set to the instance, the first argument as the name of the property, the // second argument as the old value and the third argument as the new value. var callbacks = this._watchCallbacks; @@ -99,15 +100,18 @@ dojo.declare("dojo.Stateful", null, { var self = this; callbacks = this._watchCallbacks = function(name, oldValue, value, ignoreCatchall){ var notify = function(propertyCallbacks){ - for(var i = 0, l = propertyCallbacks && propertyCallbacks.length; i < l; i++){ - try{ - propertyCallbacks[i].call(self, name, oldValue, value); - }catch(e){ - console.error(e); + if(propertyCallbacks){ + propertyCallbacks = propertyCallbacks.slice(); + for(var i = 0, l = propertyCallbacks.length; i < l; i++){ + try{ + propertyCallbacks[i].call(self, name, oldValue, value); + }catch(e){ + console.error(e); + } } } }; - notify(callbacks[name]); + notify(callbacks['_' + name]); if(!ignoreCatchall){ notify(callbacks["*"]); // the catch-all } @@ -116,6 +120,9 @@ dojo.declare("dojo.Stateful", null, { if(!callback && typeof name === "function"){ callback = name; name = "*"; + }else{ + // prepend with dash to prevent name conflicts with function (like "name" property) + name = '_' + name; } var propertyCallbacks = callbacks[name]; if(typeof propertyCallbacks !== "object"){ diff --git a/lib/dojo/_base.js b/lib/dojo/_base.js index c77266788..78fc6064a 100644 --- a/lib/dojo/_base.js +++ b/lib/dojo/_base.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -15,6 +15,8 @@ dojo.require("dojo._base.connect"); dojo.require("dojo._base.Deferred"); dojo.require("dojo._base.json"); dojo.require("dojo._base.Color"); -dojo.requireIf(dojo.isBrowser, "dojo._base.browser"); +dojo.require("dojo._base.browser"); + + } diff --git a/lib/dojo/_base/Color.js b/lib/dojo/_base/Color.js index 5f5c5af9b..4707fa582 100644 --- a/lib/dojo/_base/Color.js +++ b/lib/dojo/_base/Color.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -11,6 +11,7 @@ dojo.provide("dojo._base.Color"); dojo.require("dojo._base.array"); dojo.require("dojo._base.lang"); + (function(){ var d = dojo; @@ -199,7 +200,7 @@ dojo.require("dojo._base.lang"); // Builds a `dojo.Color` from a 3 or 4 element array, mapping each // element in sequence to the rgb(a) values of the color. // example: - // | var myColor = dojo.colorFromArray([237,237,237,0.5]); // grey, 50% alpha + // | var myColor = dojo.colorFromArray([237,237,237,0.5]); // grey, 50% alpha // returns: // A dojo.Color object. If obj is passed, it will be the return value. var t = obj || new d.Color(); diff --git a/lib/dojo/_base/Deferred.js b/lib/dojo/_base/Deferred.js index 3193024ab..c5992c966 100644 --- a/lib/dojo/_base/Deferred.js +++ b/lib/dojo/_base/Deferred.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,42 +10,43 @@ dojo._hasResource["dojo._base.Deferred"] = true; dojo.provide("dojo._base.Deferred"); dojo.require("dojo._base.lang"); + (function(){ - var mutator = function(){}; + var mutator = function(){}; var freeze = Object.freeze || function(){}; // A deferred provides an API for creating and resolving a promise. dojo.Deferred = function(/*Function?*/canceller){ // summary: // Deferreds provide a generic means for encapsulating an asynchronous - // operation and notifying users of the completion and result of the operation. + // operation and notifying users of the completion and result of the operation. // description: // The dojo.Deferred API is based on the concept of promises that provide a // generic interface into the eventual completion of an asynchronous action. - // The motivation for promises fundamentally is about creating a - // separation of concerns that allows one to achieve the same type of - // call patterns and logical data flow in asynchronous code as can be - // achieved in synchronous code. Promises allows one - // to be able to call a function purely with arguments needed for - // execution, without conflating the call with concerns of whether it is - // sync or async. One shouldn't need to alter a call's arguments if the - // implementation switches from sync to async (or vice versa). By having - // async functions return promises, the concerns of making the call are - // separated from the concerns of asynchronous interaction (which are + // The motivation for promises fundamentally is about creating a + // separation of concerns that allows one to achieve the same type of + // call patterns and logical data flow in asynchronous code as can be + // achieved in synchronous code. Promises allows one + // to be able to call a function purely with arguments needed for + // execution, without conflating the call with concerns of whether it is + // sync or async. One shouldn't need to alter a call's arguments if the + // implementation switches from sync to async (or vice versa). By having + // async functions return promises, the concerns of making the call are + // separated from the concerns of asynchronous interaction (which are // handled by the promise). - // - // The dojo.Deferred is a type of promise that provides methods for fulfilling the - // promise with a successful result or an error. The most important method for - // working with Dojo's promises is the then() method, which follows the + // + // The dojo.Deferred is a type of promise that provides methods for fulfilling the + // promise with a successful result or an error. The most important method for + // working with Dojo's promises is the then() method, which follows the // CommonJS proposed promise API. An example of using a Dojo promise: - // + // // | var resultingPromise = someAsyncOperation.then(function(result){ // | ... handle result ... // | }, // | function(error){ // | ... handle error ... // | }); - // - // The .then() call returns a new promise that represents the result of the + // + // The .then() call returns a new promise that represents the result of the // execution of the callback. The callbacks will never affect the original promises value. // // The dojo.Deferred instances also provide the following functions for backwards compatibility: @@ -55,7 +56,7 @@ dojo.require("dojo._base.lang"); // * callback(result) // * errback(result) // - // Callbacks are allowed to return promisesthemselves, so + // Callbacks are allowed to return promises themselves, so // you can build complicated sequences of events with ease. // // The creator of the Deferred may specify a canceller. The canceller @@ -115,7 +116,7 @@ dojo.require("dojo._base.lang"); // | renderDataitem(data[x]); // | } // | d.callback(true); - // | }catch(e){ + // | }catch(e){ // | d.errback(new Error("rendering failed")); // | } // | return d; @@ -129,7 +130,7 @@ dojo.require("dojo._base.lang"); // | // again, so we could chain adding callbacks or save the // | // deferred for later should we need to be notified again. // example: - // In this example, renderLotsOfData is syncrhonous and so both + // In this example, renderLotsOfData is synchronous and so both // versions are pretty artificial. Putting the data display on a // timeout helps show why Deferreds rock: // @@ -142,7 +143,7 @@ dojo.require("dojo._base.lang"); // | renderDataitem(data[x]); // | } // | d.callback(true); - // | }catch(e){ + // | }catch(e){ // | d.errback(new Error("rendering failed")); // | } // | }, 100); @@ -157,11 +158,11 @@ dojo.require("dojo._base.lang"); // Note that the caller doesn't have to change his code at all to // handle the asynchronous case. var result, finished, isError, head, nextListener; - var promise = this.promise = {}; + var promise = (this.promise = {}); function complete(value){ if(finished){ - throw new Error("This deferred has already been resolved"); + throw new Error("This deferred has already been resolved"); } result = value; finished = true; @@ -172,7 +173,7 @@ dojo.require("dojo._base.lang"); while(!mutated && nextListener){ var listener = nextListener; nextListener = nextListener.next; - if(mutated = (listener.progress == mutator)){ // assignment and check + if((mutated = (listener.progress == mutator))){ // assignment and check finished = false; } var func = (isError ? listener.error : listener.resolved); @@ -184,6 +185,9 @@ dojo.require("dojo._base.lang"); continue; } var unchanged = mutated && newResult === undefined; + if(mutated && !unchanged){ + isError = newResult instanceof Error; + } listener.deferred[unchanged && isError ? "reject" : "resolve"](unchanged ? result : newResult); } catch (e) { @@ -196,7 +200,7 @@ dojo.require("dojo._base.lang"); listener.deferred.resolve(result); } } - } + } } // calling resolve will resolve the promise this.resolve = this.callback = function(value){ @@ -211,7 +215,7 @@ dojo.require("dojo._base.lang"); // calling error will indicate that the promise failed this.reject = this.errback = function(error){ // summary: - // Fulfills the Deferred instance as an error with the provided error + // Fulfills the Deferred instance as an error with the provided error isError = true; this.fired = 1; complete(error); @@ -228,7 +232,7 @@ dojo.require("dojo._base.lang"); while(listener){ var progress = listener.progress; progress && progress(update); - listener = listener.next; + listener = listener.next; } }; this.addCallbacks = function(/*Function?*/callback, /*Function?*/errback){ @@ -237,35 +241,35 @@ dojo.require("dojo._base.lang"); }; // provide the implementation of the promise this.then = promise.then = function(/*Function?*/resolvedCallback, /*Function?*/errorCallback, /*Function?*/progressCallback){ - // summary - // Adds a fulfilledHandler, errorHandler, and progressHandler to be called for - // completion of a promise. The fulfilledHandler is called when the promise - // is fulfilled. The errorHandler is called when a promise fails. The - // progressHandler is called for progress events. All arguments are optional - // and non-function values are ignored. The progressHandler is not only an - // optional argument, but progress events are purely optional. Promise + // summary: + // Adds a fulfilledHandler, errorHandler, and progressHandler to be called for + // completion of a promise. The fulfilledHandler is called when the promise + // is fulfilled. The errorHandler is called when a promise fails. The + // progressHandler is called for progress events. All arguments are optional + // and non-function values are ignored. The progressHandler is not only an + // optional argument, but progress events are purely optional. Promise // providers are not required to ever create progress events. - // - // This function will return a new promise that is fulfilled when the given - // fulfilledHandler or errorHandler callback is finished. This allows promise - // operations to be chained together. The value returned from the callback - // handler is the fulfillment value for the returned promise. If the callback + // + // This function will return a new promise that is fulfilled when the given + // fulfilledHandler or errorHandler callback is finished. This allows promise + // operations to be chained together. The value returned from the callback + // handler is the fulfillment value for the returned promise. If the callback // throws an error, the returned promise will be moved to failed state. - // + // // example: // An example of using a CommonJS compliant promise: // | asyncComputeTheAnswerToEverything(). // | then(addTwo). // | then(printResult, onError); - // | >44 - // + // | >44 + // var returnDeferred = progressCallback == mutator ? this : new dojo.Deferred(promise.cancel); var listener = { - resolved: resolvedCallback, - error: errorCallback, - progress: progressCallback, + resolved: resolvedCallback, + error: errorCallback, + progress: progressCallback, deferred: returnDeferred - }; + }; if(nextListener){ head = head.next = listener; } @@ -291,7 +295,7 @@ dojo.require("dojo._base.lang"); deferred.reject(error); } } - } + }; freeze(promise); }; dojo.extend(dojo.Deferred, { @@ -312,7 +316,7 @@ dojo.require("dojo._base.lang"); })(); dojo.when = function(promiseOrValue, /*Function?*/callback, /*Function?*/errback, /*Function?*/progressHandler){ // summary: - // This provides normalization between normal synchronous values and + // This provides normalization between normal synchronous values and // asynchronous promises, so you can interact with them in a common way // example: // | function printFirstAndList(items){ diff --git a/lib/dojo/_base/NodeList.js b/lib/dojo/_base/NodeList.js index 12b631a4b..8cdc1c0f7 100644 --- a/lib/dojo/_base/NodeList.js +++ b/lib/dojo/_base/NodeList.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,6 +10,9 @@ dojo._hasResource["dojo._base.NodeList"] = true; dojo.provide("dojo._base.NodeList"); dojo.require("dojo._base.lang"); dojo.require("dojo._base.array"); +dojo.require("dojo._base.connect"); +dojo.require("dojo._base.html"); + (function(){ @@ -248,7 +251,7 @@ dojo.require("dojo._base.array"); }); // add forEach actions - d.forEach(["connect", "addClass", "removeClass", "toggleClass", "empty", "removeAttr"], function(name){ + d.forEach(["connect", "addClass", "removeClass", "replaceClass", "toggleClass", "empty", "removeAttr"], function(name){ nlp[name] = adaptAsForEach(d[name]); }); @@ -306,7 +309,7 @@ dojo.require("dojo._base.array"); _cloneNode: function(/*DOMNode*/ node){ // summary: - // private utiltity to clone a node. Not very interesting in the vanilla + // private utility to clone a node. Not very interesting in the vanilla // dojo.NodeList case, but delegates could do interesting things like // clone event handlers if that is derivable from the node. return node.cloneNode(true); @@ -400,7 +403,7 @@ dojo.require("dojo._base.array"); if(this._parent){ return this._parent; }else{ - //Just return empy list. + //Just return empty list. return new this._NodeListCtor(); } }, @@ -468,12 +471,12 @@ dojo.require("dojo._base.array"); indexOf: function(value, fromIndex){ // summary: - // see dojo.indexOf(). The primary difference is that the acted-on + // see dojo.indexOf(). The primary difference is that the acted-on // array is implicitly this NodeList // value: Object: // The value to search for. // fromIndex: Integer?: - // The loction to start searching from. Optional. Defaults to 0. + // The location to start searching from. Optional. Defaults to 0. // description: // For more details on the behavior of indexOf, see Mozilla's // (indexOf @@ -494,7 +497,7 @@ dojo.require("dojo._base.array"); // value: Object // The value to search for. // fromIndex: Integer? - // The loction to start searching from. Optional. Defaults to 0. + // The location to start searching from. Optional. Defaults to 0. // returns: // Positive Integer or 0 for a match, -1 of not found. return d.lastIndexOf(this, value, fromIndex); // Integer @@ -572,12 +575,12 @@ dojo.require("dojo._base.array"); forEach: function(callback, thisObj){ // summary: - // see `dojo.forEach()`. The primary difference is that the acted-on + // see `dojo.forEach()`. The primary difference is that the acted-on // array is implicitly this NodeList. If you want the option to break out // of the forEach loop, use every() or some() instead. d.forEach(this, callback, thisObj); // non-standard return to allow easier chaining - return this; // dojo.NodeList + return this; // dojo.NodeList }, /*===== @@ -594,7 +597,7 @@ dojo.require("dojo._base.array"); // summary: // Returns border-box objects (x/y/w/h) of all elements in a node list // as an Array (*not* a NodeList). Acts like `dojo.position`, though - // assumes the node passed is each node in this list. + // assumes the node passed is each node in this list. return d.map(this, d.position); // Array }, @@ -617,7 +620,7 @@ dojo.require("dojo._base.array"); // Disable a group of buttons: // | dojo.query("button.group").attr("disabled", true); // example: - // innerHTML can be assigned or retreived as well: + // innerHTML can be assigned or retrieved as well: // | // get the innerHTML (as an array) for each list item // | var ih = dojo.query("li.replaceable").attr("innerHTML"); return; // dojo.NodeList @@ -682,7 +685,7 @@ dojo.require("dojo._base.array"); // if 2 arguments are passed (methodName, objOrFunc), objOrFunc should // reference a function or be the name of the function in the global // namespace to attach. If 3 arguments are provided - // (methodName, objOrFunc, funcName), objOrFunc must be the scope to + // (methodName, objOrFunc, funcName), objOrFunc must be the scope to // locate the bound function in // funcName: String? // optional. A string naming the function in objOrFunc to bind to the @@ -728,7 +731,7 @@ dojo.require("dojo._base.array"); // by queryOrNode. Returns the original NodeList. See: `dojo.place` // queryOrNode: // may be a string representing any valid CSS3 selector or a DOM node. - // In the selector case, only the first matching element will be used + // In the selector case, only the first matching element will be used // for relative positioning. // position: // can be one of: @@ -743,18 +746,15 @@ dojo.require("dojo._base.array"); return this.forEach(function(node){ d.place(node, item, position); }); // dojo.NodeList }, - orphan: function(/*String?*/ simpleFilter){ + orphan: function(/*String?*/ filter){ // summary: - // removes elements in this list that match the simple filter + // removes elements in this list that match the filter // from their parents and returns them as a new NodeList. - // simpleFilter: - // single-expression CSS rule. For example, ".thinger" or - // "#someId[attrName='value']" but not "div > span". In short, - // anything which does not invoke a descent to evaluate but - // can instead be used to test a single node is acceptable. + // filter: + // CSS selector like ".foo" or "div > span" // returns: - // `dojo.NodeList` containing the orpahned elements - return (simpleFilter ? d._filterQueryResult(this, simpleFilter) : this).forEach(orphan); // dojo.NodeList + // `dojo.NodeList` containing the orphaned elements + return (filter ? d._filterQueryResult(this, filter) : this).forEach(orphan); // dojo.NodeList }, adopt: function(/*String||Array||DomNode*/ queryOrListOrNode, /*String?*/ position){ @@ -781,7 +781,7 @@ dojo.require("dojo._base.array"); // FIXME: do we need this? query: function(/*String*/ queryStr){ // summary: - // Returns a new list whose memebers match the passed query, + // Returns a new list whose members match the passed query, // assuming elements of the current NodeList as the root for // each search. // example: @@ -792,9 +792,9 @@ dojo.require("dojo._base.array"); // | </p> // | </div> // | <div id="bar"> - // | <p>great commedians may not be funny <span>in person</span></p> + // | <p>great comedians may not be funny <span>in person</span></p> // | </div> - // If we are presented with the following defintion for a NodeList: + // If we are presented with the following definition for a NodeList: // | var l = new dojo.NodeList(dojo.byId("foo"), dojo.byId("bar")); // it's possible to find all span elements under paragraphs // contained by these elements with this sub-query: @@ -809,18 +809,14 @@ dojo.require("dojo._base.array"); return this._wrap(apc.apply([], ret), this); // dojo.NodeList }, - filter: function(/*String|Function*/ simpleFilter){ + filter: function(/*String|Function*/ filter){ // summary: // "masks" the built-in javascript filter() method (supported // in Dojo via `dojo.filter`) to support passing a simple // string filter in addition to supporting filtering function // objects. - // simpleFilter: - // If a string, a single-expression CSS rule. For example, - // ".thinger" or "#someId[attrName='value']" but not "div > - // span". In short, anything which does not invoke a descent - // to evaluate but can instead be used to test a single node - // is acceptable. + // filter: + // If a string, a CSS rule like ".thinger" or "div > span". // example: // "regular" JS filter syntax as exposed in dojo.filter: // | dojo.query("*").filter(function(item){ @@ -832,7 +828,7 @@ dojo.require("dojo._base.array"); // | dojo.query("*").filter("p").styles("backgroundColor", "yellow"); var a = arguments, items = this, start = 0; - if(typeof simpleFilter == "string"){ // inline'd type check + if(typeof filter == "string"){ // inline'd type check items = d._filterQueryResult(this, a[0]); if(a.length == 1){ // if we only got a string query, pass back the filtered results @@ -880,10 +876,10 @@ dojo.require("dojo._base.array"); // | "before" // | "after" // | "replace" (replaces nodes in this NodeList with new content) - // | "only" (removes other children of the nodes so new content is hte only child) + // | "only" (removes other children of the nodes so new content is the only child) // or an offset in the childNodes property // example: - // appends content to the end if the position is ommitted + // appends content to the end if the position is omitted // | dojo.query("h3 > p").addContent("hey there!"); // example: // add something to the front of each element that has a @@ -914,7 +910,7 @@ dojo.require("dojo._base.array"); // text: "Send" // }); content = this._normalize(content, this[0]); - for(var i = 0, node; node = this[i]; i++){ + for(var i = 0, node; (node = this[i]); i++){ this._place(content, node, position, i > 0); } return this; //dojo.NodeList @@ -943,11 +939,11 @@ dojo.require("dojo._base.array"); // index: Integer... // One or more 0-based indices of items in the current // NodeList. A negative index will start at the end of the - // list and go backwards. + // list and go backwards. // // example: // Shorten the list to the first, second, and third elements - // | dojo.query("a").at(0, 1, 2).forEach(fn); + // | dojo.query("a").at(0, 1, 2).forEach(fn); // // example: // Retrieve the first and last elements of a unordered list: @@ -957,13 +953,13 @@ dojo.require("dojo._base.array"); // Do something for the first element only, but end() out back to // the original list and continue chaining: // | dojo.query("a").at(0).onclick(fn).end().forEach(function(n){ - // | console.log(n); // all anchors on the page. - // | }) + // | console.log(n); // all anchors on the page. + // | }) // // returns: // dojo.NodeList var t = new this._NodeListCtor(); - d.forEach(arguments, function(i){ + d.forEach(arguments, function(i){ if(i < 0){ i = this.length + i } if(this[i]){ t.push(this[i]); } }, this); @@ -973,7 +969,8 @@ dojo.require("dojo._base.array"); }); nl.events = [ - // summary: list of all DOM events used in NodeList + // summary: + // list of all DOM events used in NodeList "blur", "focus", "change", "click", "error", "keydown", "keypress", "keyup", "load", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseout", "mouseover", "mouseup", "submit" @@ -986,7 +983,7 @@ dojo.require("dojo._base.array"); var _oe = "on" + evt; nlp[_oe] = function(a, b){ return this.connect(_oe, a, b); - } + }; // FIXME: should these events trigger publishes? /* return (a ? this.connect(_oe, a, b) : diff --git a/lib/dojo/_base/_loader/bootstrap.js b/lib/dojo/_base/_loader/bootstrap.js index 3ef3012a2..a1f99276a 100644 --- a/lib/dojo/_base/_loader/bootstrap.js +++ b/lib/dojo/_base/_loader/bootstrap.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -76,7 +76,7 @@ djConfig = { // of calling `dojo.registerModulePath("foo", "../../bar");`. Multiple // modules may be configured via `djConfig.modulePaths`. modulePaths: {}, - // afterOnLoad: Boolean + // afterOnLoad: Boolean // Indicates Dojo was added to the page after the page load. In this case // Dojo will not wait for the page DOMContentLoad/load events and fire // its dojo.addOnLoad callbacks after making sure all outstanding @@ -103,7 +103,7 @@ djConfig = { // dojoBlankHtmlUrl: String // Used by some modules to configure an empty iframe. Used by dojo.io.iframe and // dojo.back, and dijit popup support in IE where an iframe is needed to make sure native - // controls do not bleed through the popups. Normally this configuration variable + // controls do not bleed through the popups. Normally this configuration variable // does not need to be set, except when using cross-domain/CDN Dojo builds. // Save dojo/resources/blank.html to your domain and set `djConfig.dojoBlankHtmlUrl` // to the path on your domain your copy of blank.html. @@ -149,7 +149,7 @@ djConfig = { "groupEnd", "info", "profile", "profileEnd", "time", "timeEnd", "trace", "warn", "log" ]; - var i=0, tn; + var i = 0, tn; while((tn=cn[i++])){ if(!console[tn]){ (function(){ @@ -209,9 +209,13 @@ dojo.global = { debugAtAllCosts: false }; - if(typeof djConfig != "undefined"){ - for(var opt in djConfig){ - d.config[opt] = djConfig[opt]; + // FIXME: 2.0, drop djConfig support. Use dojoConfig exclusively for global config. + var cfg = typeof djConfig != "undefined" ? djConfig : + typeof dojoConfig != "undefined" ? dojoConfig : null; + + if(cfg){ + for(var c in cfg){ + d.config[c] = cfg[c]; } } @@ -223,7 +227,7 @@ dojo.global = { =====*/ dojo.locale = d.config.locale; - var rev = "$Rev: 22487 $".match(/\d+/); + var rev = "$Rev: 24595 $".match(/\d+/); /*===== dojo.version = function(){ @@ -247,7 +251,7 @@ dojo.global = { } =====*/ dojo.version = { - major: 1, minor: 5, patch: 0, flag: "", + major: 1, minor: 6, patch: 1, flag: "", revision: rev ? +rev[0] : NaN, toString: function(){ with(d.version){ @@ -323,7 +327,7 @@ dojo.global = { // | constructor: function(properties){ // | // property configuration: // | dojo.mixin(this, properties); - // | + // | // | console.log(this.quip); // | // ... // | }, @@ -344,7 +348,7 @@ dojo.global = { // | name: "Carl Brutanananadilewski" // | } // | ); - // | + // | // | // will print "Carl Brutanananadilewski" // | console.log(flattened.name); // | // will print "true" @@ -419,10 +423,7 @@ dojo.global = { // determine if an object supports a given method // description: // useful for longer api chains where you have to test each object in - // the chain. Useful only for object and method detection. - // Not useful for testing generic properties on an object. - // In particular, dojo.exists("foo.bar") when foo.bar = "" - // will return false. Use ("bar" in foo) to test for those cases. + // the chain. Useful for object and method detection. // name: // Path to an object, in the form "A.B.C". // obj: @@ -441,7 +442,7 @@ dojo.global = { // | // search from a particular scope // | dojo.exists("bar", foo); // true // | dojo.exists("bar.baz", foo); // false - return !!d.getObject(name, false, obj); // Boolean + return d.getObject(name, false, obj) !== undefined; // Boolean } dojo["eval"] = function(/*String*/ scriptFragment){ diff --git a/lib/dojo/_base/_loader/hostenv_browser.js b/lib/dojo/_base/_loader/hostenv_browser.js index 7d92d70e3..b31bd77dc 100644 --- a/lib/dojo/_base/_loader/hostenv_browser.js +++ b/lib/dojo/_base/_loader/hostenv_browser.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -26,9 +26,9 @@ dojo.isIE = { dojo.isSafari = { // example: // | if(dojo.isSafari){ ... } - // example: + // example: // Detect iPhone: - // | if(dojo.isSafari && navigator.userAgent.indexOf("iPhone") != -1){ + // | if(dojo.isSafari && navigator.userAgent.indexOf("iPhone") != -1){ // | // we are iPhone. Note, iPod touch reports "iPod" above and fails this test. // | } }; @@ -71,7 +71,6 @@ dojo = { // True if the client runs on Mac } =====*/ - if(typeof window != 'undefined'){ dojo.isBrowser = true; dojo._name = "browser"; @@ -98,7 +97,7 @@ if(typeof window != 'undefined'){ d.config.baseUrl = src.substring(0, m.index); } // and find out if we need to modify our behavior - var cfg = scripts[i].getAttribute("djConfig"); + var cfg = (scripts[i].getAttribute("djConfig") || scripts[i].getAttribute("data-dojo-config")); if(cfg){ var cfgo = eval("({ "+cfg+" })"); for(var x in cfgo){ @@ -172,7 +171,7 @@ if(typeof window != 'undefined'){ d._XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']; d._xhrObj = function(){ - // summary: + // summary: // does the work of portably generating a new XMLHTTPRequest object. var http, last_e; if(!dojo.isIE || !dojo.config.ieForceActiveXXhr){ @@ -205,10 +204,11 @@ if(typeof window != 'undefined'){ var stat = http.status || 0, lp = location.protocol; return (stat >= 200 && stat < 300) || // Boolean - stat == 304 || // allow any 2XX response code - stat == 1223 || // get it out of the cache + stat == 304 || // allow any 2XX response code + stat == 1223 || // get it out of the cache + // Internet Explorer mangled the status code // Internet Explorer mangled the status code OR we're Titanium/browser chrome/chrome extension requesting a local file - (!stat && (lp == "file:" || lp == "chrome:" || lp == "chrome-extension:" || lp == "app:") ); + (!stat && (lp == "file:" || lp == "chrome:" || lp == "chrome-extension:" || lp == "app:")); } //See if base tag is in use. @@ -303,7 +303,7 @@ if(typeof window != 'undefined'){ d.addOnWindowUnload = function(/*Object?|Function?*/obj, /*String|Function?*/functionName){ // summary: // registers a function to be triggered when window.onunload - // fires. + // fires. // description: // The first time that addOnWindowUnload is called Dojo // will register a page listener to trigger your unload @@ -334,7 +334,7 @@ if(typeof window != 'undefined'){ // description: // The first time that addOnUnload is called Dojo will // register a page listener to trigger your unload handler - // with. + // with. // // In a browser enviroment, the functions will be triggered // during the window.onbeforeunload event. Be careful of doing @@ -347,7 +347,7 @@ if(typeof window != 'undefined'){ // // Further note that calling dojo.addOnUnload will prevent // browsers from using a "fast back" cache to make page - // loading via back button instantaneous. + // loading via back button instantaneous. // example: // | dojo.addOnUnload(functionPointer) // | dojo.addOnUnload(object, "functionName") @@ -384,7 +384,7 @@ if(typeof window != 'undefined'){ } } - if(!dojo.config.afterOnLoad){ + if(!dojo.config.afterOnLoad){ if(document.addEventListener){ //Standards. Hooray! Assumption here that if standards based, //it knows about DOMContentLoaded. It is OK if it does not, the fall through @@ -401,10 +401,10 @@ if(typeof window != 'undefined'){ if(!dojo.config.skipIeDomLoaded && self === self.top){ dojo._scrollIntervalId = setInterval(function (){ try{ - //When dojo is loaded into an iframe in an IE HTML Application + //When dojo is loaded into an iframe in an IE HTML Application //(HTA), such as in a selenium test, javascript in the iframe //can't see anything outside of it, so self===self.top is true, - //but the iframe is not the top window and doScroll will be + //but the iframe is not the top window and doScroll will be //available before document.body is set. Test document.body //before trying the doScroll trick if(document.body){ @@ -467,8 +467,11 @@ if(dojo.config.isDebug){ } if(dojo.config.debugAtAllCosts){ - dojo.config.useXDomain = true; - dojo.require("dojo._base._loader.loader_xd"); + // this breaks the new AMD based module loader. The XDomain won't be necessary + // anyway if you switch to the asynchronous loader + //dojo.config.useXDomain = true; + //dojo.require("dojo._base._loader.loader_xd"); dojo.require("dojo._base._loader.loader_debug"); dojo.require("dojo.i18n"); } + diff --git a/lib/dojo/_base/_loader/hostenv_ff_ext.js b/lib/dojo/_base/_loader/hostenv_ff_ext.js index 94a0a8046..ca47a4c1c 100644 --- a/lib/dojo/_base/_loader/hostenv_ff_ext.js +++ b/lib/dojo/_base/_loader/hostenv_ff_ext.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -241,7 +241,7 @@ if(typeof window != 'undefined'){ return oc; }; - // FIXME: + // FIXME: // don't really like the current arguments and order to // _inContext, so don't make it public until it's right! dojo._inContext = function(g, d, f){ @@ -302,7 +302,7 @@ if(typeof window != 'undefined'){ // Dojo's to fire once..but we might care if pages navigate. We'll // probably need an extension-specific API if(!dojo.config.afterOnLoad){ - window.addEventListener("DOMContentLoaded",function(e){ + window.addEventListener("DOMContentLoaded",function(e){ dojo._loadInit(e); // console.log("DOM content loaded", e); }, false); diff --git a/lib/dojo/_base/_loader/hostenv_rhino.js b/lib/dojo/_base/_loader/hostenv_rhino.js index ee9ad8b43..e3aa78524 100644 --- a/lib/dojo/_base/_loader/hostenv_rhino.js +++ b/lib/dojo/_base/_loader/hostenv_rhino.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -58,6 +58,9 @@ dojo._isLocalUrl = function(/*String*/ uri) { // see comments in spidermonkey loadUri dojo._loadUri = function(uri, cb){ + if(dojo._loadedUrls[uri]){ + return true; // Boolean + } try{ var local; try{ @@ -67,29 +70,32 @@ dojo._loadUri = function(uri, cb){ return false; } + dojo._loadedUrls[uri] = true; //FIXME: Use Rhino 1.6 native readFile/readUrl if available? if(cb){ var contents = (local ? readText : readUri)(uri, "UTF-8"); // patch up the input to eval until https://bugzilla.mozilla.org/show_bug.cgi?id=471005 is fixed. if(!eval("'\u200f'").length){ - contents = String(contents).replace(/[\u200E\u200F\u202A-\u202E]/g, function(match){ - return "\\u" + match.charCodeAt(0).toString(16); + contents = String(contents).replace(/[\u200E\u200F\u202A-\u202E]/g, function(match){ + return "\\u" + match.charCodeAt(0).toString(16); }) } - - cb(eval('('+contents+')')); + contents = /^define\(/.test(contents) ? contents : '('+contents+')'; + cb(eval(contents)); }else{ load(uri); } + dojo._loadedUrls.push(uri); return true; }catch(e){ + dojo._loadedUrls[uri] = false; console.debug("rhino load('" + uri + "') failed. Exception: " + e); return false; } } -dojo.exit = function(exitcode){ +dojo.exit = function(exitcode){ quit(exitcode); } @@ -157,7 +163,7 @@ dojo._getText = function(/*URI*/ uri, /*Boolean*/ fail_ok){ dojo.doc = typeof document != "undefined" ? document : null; dojo.body = function(){ - return document.body; + return document.body; } // Supply setTimeout/clearTimeout implementations if they aren't already there diff --git a/lib/dojo/_base/_loader/hostenv_spidermonkey.js b/lib/dojo/_base/_loader/hostenv_spidermonkey.js index 17b21f5f0..a3d2dfc6f 100644 --- a/lib/dojo/_base/_loader/hostenv_spidermonkey.js +++ b/lib/dojo/_base/_loader/hostenv_spidermonkey.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -19,13 +19,13 @@ dojo._name = 'spidermonkey'; /*===== dojo.isSpidermonkey = { - // summary: Detect spidermonkey + // summary: Detect spidermonkey }; =====*/ dojo.isSpidermonkey = true; -dojo.exit = function(exitcode){ - quit(exitcode); +dojo.exit = function(exitcode){ + quit(exitcode); } if(typeof print == "function"){ @@ -37,15 +37,15 @@ if(typeof line2pc == 'undefined'){ } dojo._spidermonkeyCurrentFile = function(depth){ - // + // // This is a hack that determines the current script file by parsing a // generated stack trace (relying on the non-standard "stack" member variable // of the SpiderMonkey Error object). - // + // // If param depth is passed in, it'll return the script file which is that far down // the stack, but that does require that you know how deep your stack is when you are // calling. - // + // var s = ''; try{ throw Error("whatever"); @@ -54,23 +54,23 @@ dojo._spidermonkeyCurrentFile = function(depth){ } // lines are like: bu_getCurrentScriptURI_spidermonkey("ScriptLoader.js")@burst/Runtime.js:101 var matches = s.match(/[^@]*\.js/gi); - if(!matches){ + if(!matches){ throw Error("could not parse stack string: '" + s + "'"); } var fname = (typeof depth != 'undefined' && depth) ? matches[depth + 1] : matches[matches.length - 1]; - if(!fname){ + if(!fname){ throw Error("could not find file name in stack string '" + s + "'"); } //print("SpiderMonkeyRuntime got fname '" + fname + "' from stack string '" + s + "'"); return fname; } -// print(dojo._spidermonkeyCurrentFile(0)); +// print(dojo._spidermonkeyCurrentFile(0)); dojo._loadUri = function(uri){ // spidermonkey load() evaluates the contents into the global scope (which // is what we want). - // TODO: sigh, load() does not return a useful value. + // TODO: sigh, load() does not return a useful value. // Perhaps it is returning the value of the last thing evaluated? var ok = load(uri); // console.log("spidermonkey load(", uri, ") returned ", ok); diff --git a/lib/dojo/_base/_loader/loader.js b/lib/dojo/_base/_loader/loader.js index 9206de888..73df544fa 100644 --- a/lib/dojo/_base/_loader/loader.js +++ b/lib/dojo/_base/_loader/loader.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -11,9 +11,8 @@ dojo._hasResource["dojo.foo"] = true; * loader.js - A bootstrap module. Runs before the hostenv_*.js file. Contains * all of the package loading methods. */ - (function(){ - var d = dojo; + var d = dojo, currentModule; d.mixin(d, { _loadedModules: {}, @@ -45,11 +44,11 @@ dojo._hasResource["dojo.foo"] = true; _loadedUrls: [], - //WARNING: + //WARNING: // This variable is referenced by packages outside of bootstrap: // FloatingPane.js and undo/browser.js _postLoad: false, - + //Egad! Lots of test files push on this directly instead of using dojo.addOnLoad. _loaders: [], _unloaders: [], @@ -68,21 +67,24 @@ dojo._hasResource["dojo.foo"] = true; // not caught by us, so the caller will see it. We return a true // value if and only if the script is found. // - // relpath: + // relpath: // A relative path to a script (no leading '/', and typically ending // in '.js'). - // module: + // module: // A module whose existance to check for after loading a path. Can be // used to determine success or failure of the load. - // cb: + // cb: // a callback function to pass the result of evaluating the script var uri = ((relpath.charAt(0) == '/' || relpath.match(/^\w+:/)) ? "" : d.baseUrl) + relpath; try{ + currentModule = module; return !module ? d._loadUri(uri, cb) : d._loadUriAndCheck(uri, module, cb); // Boolean }catch(e){ console.error(e); return false; // Boolean + }finally{ + currentModule = null; } } @@ -95,7 +97,7 @@ dojo._hasResource["dojo.foo"] = true; // it succeeded. Returns false if the URI reading failed. Throws if // the evaluation throws. // uri: a uri which points at the script to be loaded - // cb: + // cb: // a callback function to process the result of evaluating the script // as an expression, typically used by the resource bundle loader to // load JSON-style resources @@ -109,7 +111,8 @@ dojo._hasResource["dojo.foo"] = true; d._loadedUrls[uri] = true; d._loadedUrls.push(uri); if(cb){ - contents = '('+contents+')'; + //conditional to support script-inject i18n bundle format + contents = /^define\(/.test(contents) ? contents : '('+contents+')'; }else{ //Only do the scoping if no callback. If a callback is specified, //it is most likely the i18n bundle stuff. @@ -121,16 +124,16 @@ dojo._hasResource["dojo.foo"] = true; } // Check to see if we need to call _callLoaded() due to an addOnLoad() that arrived while we were busy downloading if(--d._inFlightCount == 0 && d._postLoad && d._loaders.length){ - // We shouldn't be allowed to get here but Firefox allows an event - // (mouse, keybd, async xhrGet) to interrupt a synchronous xhrGet. + // We shouldn't be allowed to get here but Firefox allows an event + // (mouse, keybd, async xhrGet) to interrupt a synchronous xhrGet. // If the current script block contains multiple require() statements, then after each // require() returns, inFlightCount == 0, but we want to hold the _callLoaded() until // all require()s are done since the out-of-sequence addOnLoad() presumably needs them all. // setTimeout allows the next require() to start (if needed), and then we check this again. - setTimeout(function(){ - // If inFlightCount > 0, then multiple require()s are running sequentially and + setTimeout(function(){ + // If inFlightCount > 0, then multiple require()s are running sequentially and // the next require() started after setTimeout() was executed but before we got here. - if(d._inFlightCount == 0){ + if(d._inFlightCount == 0){ d._callLoaded(); } }, 0); @@ -153,10 +156,10 @@ dojo._hasResource["dojo.foo"] = true; dojo.loaded = function(){ // summary: // signal fired when initial environment and package loading is - // complete. You should use dojo.addOnLoad() instead of doing a + // complete. You should use dojo.addOnLoad() instead of doing a // direct dojo.connect() to this method in order to handle // initialization tasks that require the environment to be - // initialized. In a browser host, declarative widgets will + // initialized. In a browser host, declarative widgets will // be constructed when this function finishes runing. d._loadNotifying = true; d._postLoad = true; @@ -183,8 +186,8 @@ dojo._hasResource["dojo.foo"] = true; dojo.unloaded = function(){ // summary: // signal fired by impending environment destruction. You should use - // dojo.addOnUnload() instead of doing a direct dojo.connect() to this - // method to perform page/application cleanup methods. See + // dojo.addOnUnload() instead of doing a direct dojo.connect() to this + // method to perform page/application cleanup methods. See // dojo.addOnUnload for more info. var mll = d._unloaders; while(mll.length){ @@ -203,13 +206,13 @@ dojo._hasResource["dojo.foo"] = true; dojo.ready = dojo.addOnLoad = function(/*Object*/obj, /*String|Function?*/functionName){ // summary: - // Registers a function to be triggered after the DOM and dojo.require() calls + // Registers a function to be triggered after the DOM and dojo.require() calls // have finished loading. // // description: // Registers a function to be triggered after the DOM has finished - // loading and `dojo.require` modules have loaded. Widgets declared in markup - // have been instantiated if `djConfig.parseOnLoad` is true when this fires. + // loading and `dojo.require` modules have loaded. Widgets declared in markup + // have been instantiated if `djConfig.parseOnLoad` is true when this fires. // // Images and CSS files may or may not have finished downloading when // the specified function is called. (Note that widgets' CSS and HTML @@ -252,7 +255,7 @@ dojo._hasResource["dojo.foo"] = true; dojo._modulesLoaded = function(){ if(d._postLoad){ return; } - if(d._inFlightCount > 0){ + if(d._inFlightCount > 0){ console.warn("files still in flight!"); return; } @@ -284,8 +287,8 @@ dojo._hasResource["dojo.foo"] = true; var syms = modulename.split("."); for(var i = syms.length; i>0; i--){ var parentModule = syms.slice(0, i).join("."); - if(i == 1 && !d._moduleHasPrefix(parentModule)){ - // Support default module directory (sibling of dojo) for top-level modules + if(i == 1 && !d._moduleHasPrefix(parentModule)){ + // Support default module directory (sibling of dojo) for top-level modules syms[0] = "../" + syms[0]; }else{ var parentModulePath = d._getModulePrefix(parentModule); @@ -320,87 +323,95 @@ dojo._hasResource["dojo.foo"] = true; dojo._loadModule = dojo.require = function(/*String*/moduleName, /*Boolean?*/omitModuleCheck){ // summary: // loads a Javascript module from the appropriate URI - // moduleName: + // + // moduleName: String // module name to load, using periods for separators, // e.g. "dojo.date.locale". Module paths are de-referenced by dojo's // internal mapping of locations to names and are disambiguated by // longest prefix. See `dojo.registerModulePath()` for details on // registering new modules. - // omitModuleCheck: + // + // omitModuleCheck: Boolean? // if `true`, omitModuleCheck skips the step of ensuring that the // loaded file actually defines the symbol it is referenced by. // For example if it called as `dojo.require("a.b.c")` and the // file located at `a/b/c.js` does not define an object `a.b.c`, // and exception will be throws whereas no exception is raised // when called as `dojo.require("a.b.c", true)` + // // description: // Modules are loaded via dojo.require by using one of two loaders: the normal loader // and the xdomain loader. The xdomain loader is used when dojo was built with a // custom build that specified loader=xdomain and the module lives on a modulePath // that is a whole URL, with protocol and a domain. The versions of Dojo that are on // the Google and AOL CDNs use the xdomain loader. - // + // // If the module is loaded via the xdomain loader, it is an asynchronous load, since // the module is added via a dynamically created script tag. This - // means that dojo.require() can return before the module has loaded. However, this + // means that dojo.require() can return before the module has loaded. However, this // should only happen in the case where you do dojo.require calls in the top-level // HTML page, or if you purposely avoid the loader checking for dojo.require // dependencies in your module by using a syntax like dojo["require"] to load the module. - // + // // Sometimes it is useful to not have the loader detect the dojo.require calls in the // module so that you can dynamically load the modules as a result of an action on the // page, instead of right at module load time. - // + // // Also, for script blocks in an HTML page, the loader does not pre-process them, so // it does not know to download the modules before the dojo.require calls occur. - // + // // So, in those two cases, when you want on-the-fly module loading or for script blocks // in the HTML page, special care must be taken if the dojo.required code is loaded // asynchronously. To make sure you can execute code that depends on the dojo.required // modules, be sure to add the code that depends on the modules in a dojo.addOnLoad() // callback. dojo.addOnLoad waits for all outstanding modules to finish loading before - // executing. Example: - // - // | <script type="text/javascript"> - // | dojo.require("foo"); - // | dojo.require("bar"); - // | dojo.addOnLoad(function(){ - // | //you can now safely do something with foo and bar - // | }); - // | </script> - // + // executing. + // // This type of syntax works with both xdomain and normal loaders, so it is good // practice to always use this idiom for on-the-fly code loading and in HTML script // blocks. If at some point you change loaders and where the code is loaded from, // it will all still work. - // + // // More on how dojo.require // `dojo.require("A.B")` first checks to see if symbol A.B is // defined. If it is, it is simply returned (nothing to do). - // + // // If it is not defined, it will look for `A/B.js` in the script root // directory. - // - // `dojo.require` throws an excpetion if it cannot find a file + // + // `dojo.require` throws an exception if it cannot find a file // to load, or if the symbol `A.B` is not defined after loading. - // + // // It returns the object `A.B`, but note the caveats above about on-the-fly loading and // HTML script blocks when the xdomain loader is loading a module. - // + // // `dojo.require()` does nothing about importing symbols into // the current namespace. It is presumed that the caller will - // take care of that. For example, to import all symbols into a - // local block, you might write: - // + // take care of that. + // + // example: + // To use dojo.require in conjunction with dojo.ready: + // + // | dojo.require("foo"); + // | dojo.require("bar"); + // | dojo.addOnLoad(function(){ + // | //you can now safely do something with foo and bar + // | }); + // + // example: + // For example, to import all symbols into a local block, you might write: + // // | with (dojo.require("A.B")) { // | ... // | } - // + // // And to import just the leaf symbol to a local variable: - // + // // | var B = dojo.require("A.B"); // | ... - // returns: the required namespace object + // + // returns: + // the required namespace object omitModuleCheck = d._global_omit_module_check || omitModuleCheck; //Check if it is already loaded. @@ -411,10 +422,8 @@ dojo._hasResource["dojo.foo"] = true; // convert periods to slashes var relpath = d._getModuleSymbols(moduleName).join("/") + '.js'; - var modArg = !omitModuleCheck ? moduleName : null; var ok = d._loadPath(relpath, modArg); - if(!ok && !omitModuleCheck){ throw new Error("Could not load '" + moduleName + "'; last tried '" + relpath + "'"); } @@ -425,7 +434,7 @@ dojo._hasResource["dojo.foo"] = true; // pass in false so we can give better error module = d._loadedModules[moduleName]; if(!module){ - throw new Error("symbol '" + moduleName + "' is not defined after loading '" + relpath + "'"); + throw new Error("symbol '" + moduleName + "' is not defined after loading '" + relpath + "'"); } } @@ -446,14 +455,14 @@ dojo._hasResource["dojo.foo"] = true; // the file name. For example, `js/dojo/foo.js` must have // `dojo.provide("dojo.foo");` before any calls to // `dojo.require()` are made. - // + // // For backwards compatibility reasons, in addition to registering // the resource, `dojo.provide()` also ensures that the javascript // object for the module exists. For example, // `dojo.provide("dojox.data.FlickrStore")`, in addition to // registering that `FlickrStore.js` is a resource for the // `dojox.data` module, will ensure that the `dojox.data` - // javascript object exists, so that calls like + // javascript object exists, so that calls like // `dojo.data.foo = function(){ ... }` don't fail. // // In the case of a build where multiple javascript source files @@ -462,11 +471,11 @@ dojo._hasResource["dojo.foo"] = true; // note that it includes multiple resources. // // resourceName: String - // A dot-sperated string identifying a resource. + // A dot-sperated string identifying a resource. // // example: // Safely create a `my` object, and make dojo.require("my.CustomModule") work - // | dojo.provide("my.CustomModule"); + // | dojo.provide("my.CustomModule"); //Make sure we have a string. resourceName = resourceName + ""; @@ -523,7 +532,7 @@ dojo._hasResource["dojo.foo"] = true; if(condition === true){ // FIXME: why do we support chained require()'s here? does the build system? var args = []; - for(var i = 1; i < arguments.length; i++){ + for(var i = 1; i < arguments.length; i++){ args.push(arguments[i]); } d.require.apply(d, args); @@ -533,13 +542,13 @@ dojo._hasResource["dojo.foo"] = true; dojo.requireAfterIf = d.requireIf; dojo.registerModulePath = function(/*String*/module, /*String*/prefix){ - // summary: + // summary: // Maps a module name to a path - // description: + // description: // An unregistered module is given the default path of ../[module], // relative to Dojo root. For example, module acme is mapped to // ../acme. If you want to use a different module name, use - // dojo.registerModulePath. + // dojo.registerModulePath. // example: // If your dojo.js is located at this location in the web root: // | /myapp/js/dojo/dojo/dojo.js @@ -552,7 +561,7 @@ dojo._hasResource["dojo.foo"] = true; // At which point you can then use dojo.require() to load the // modules (assuming they provide() the same things which are // required). The full code might be: - // | <script type="text/javascript" + // | <script type="text/javascript" // | src="/myapp/js/dojo/dojo/dojo.js"></script> // | <script type="text/javascript"> // | dojo.registerModulePath("foo", "../../foo"); @@ -561,8 +570,8 @@ dojo._hasResource["dojo.foo"] = true; // | dojo.require("foo.thud.xyzzy"); // | </script> d._modulePrefixes[module] = { name: module, value: prefix }; - } - + }; + dojo.requireLocalization = function(/*String*/moduleName, /*String*/bundleName, /*String?*/locale, /*String?*/availableFlatLocales){ // summary: // Declares translated resources and loads them if necessary, in the @@ -573,7 +582,7 @@ dojo._hasResource["dojo.foo"] = true; // description: // Load translated resource bundles provided underneath the "nls" // directory within a package. Translated resources may be located in - // different packages throughout the source tree. + // different packages throughout the source tree. // // Each directory is named for a locale as specified by RFC 3066, // (http://www.ietf.org/rfc/rfc3066.txt), normalized in lowercase. @@ -588,21 +597,21 @@ dojo._hasResource["dojo.foo"] = true; // preload the bundles to avoid data redundancy and the multiple // network hits normally required to load these resources. // - // moduleName: + // moduleName: // name of the package containing the "nls" directory in which the // bundle is found // - // bundleName: + // bundleName: // bundle name, i.e. the filename without the '.js' suffix. Using "nls" as a // a bundle name is not supported, since "nls" is the name of the folder // that holds bundles. Using "nls" as the bundle name will cause problems // with the custom build. // - // locale: + // locale: // the locale to load (optional) By default, the browser's user // locale as defined by dojo.locale // - // availableFlatLocales: + // availableFlatLocales: // A comma-separated list of the available, flattened locales for this // bundle. This argument should only be set by the build process. // @@ -644,11 +653,11 @@ dojo._hasResource["dojo.foo"] = true; ire = new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"); dojo._Url = function(/*dojo._Url|String...*/){ - // summary: + // summary: // Constructor to create an object representing a URL. // It is marked as private, since we might consider removing // or simplifying it. - // description: + // description: // Each argument is evaluated in order relative to the next until // a canonical uri is produced. To get an absolute Uri relative to // the current document use: @@ -715,7 +724,7 @@ dojo._hasResource["dojo.foo"] = true; } uri = []; - if(relobj.scheme){ + if(relobj.scheme){ uri.push(relobj.scheme, ":"); } if(relobj.authority){ @@ -755,7 +764,7 @@ dojo._hasResource["dojo.foo"] = true; dojo._Url.prototype.toString = function(){ return this.uri; }; dojo.moduleUrl = function(/*String*/module, /*dojo._Url||String*/url){ - // summary: + // summary: // Returns a `dojo._Url` object relative to a module. // example: // | var pngPath = dojo.moduleUrl("acme","images/small.png"); @@ -763,10 +772,10 @@ dojo._hasResource["dojo.foo"] = true; // | // create an image and set it's source to pngPath's value: // | var img = document.createElement("img"); // | // NOTE: we assign the string representation of the url object - // | img.src = pngPath.toString(); + // | img.src = pngPath.toString(); // | // add our image to the document // | dojo.body().appendChild(img); - // example: + // example: // you may de-reference as far as you like down the package // hierarchy. This is sometimes handy to avoid lenghty relative // urls or for building portable sub-packages. In this example, @@ -777,9 +786,9 @@ dojo._hasResource["dojo.foo"] = true; // | // somewhere in a configuration block // | dojo.registerModulePath("acme.widget", "../../acme/widget"); // | dojo.registerModulePath("acme.util", "../../util"); - // | + // | // | // ... - // | + // | // | // code in a module using acme resources // | var tmpltPath = dojo.moduleUrl("acme.widget","templates/template.html"); // | var dataPath = dojo.moduleUrl("acme.util","resources/data.json"); @@ -798,7 +807,10 @@ dojo._hasResource["dojo.foo"] = true; } return new d._Url(loc, url); // dojo._Url - } + }; + + + })(); } diff --git a/lib/dojo/_base/_loader/loader_debug.js b/lib/dojo/_base/_loader/loader_debug.js index fa26d8efb..f2043e4de 100644 --- a/lib/dojo/_base/_loader/loader_debug.js +++ b/lib/dojo/_base/_loader/loader_debug.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ diff --git a/lib/dojo/_base/_loader/loader_xd.js b/lib/dojo/_base/_loader/loader_xd.js index c60b86b05..e59f814c0 100644 --- a/lib/dojo/_base/_loader/loader_xd.js +++ b/lib/dojo/_base/_loader/loader_xd.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -170,23 +170,27 @@ dojo._xdIsXDomainPath = function(/*string*/relpath) { var colonIndex = relpath.indexOf(":"); var slashIndex = relpath.indexOf("/"); - if(colonIndex > 0 && colonIndex < slashIndex){ + if(colonIndex > 0 && colonIndex < slashIndex || relpath.indexOf("//") === 0){ return true; }else{ //Is the base script URI-based URL a cross domain URL? //If so, then the relpath will be evaluated relative to //baseUrl, and therefore qualify as xdomain. //Only treat it as xdomain if the page does not have a - //host (file:// url) or if the baseUrl does not match the - //current window's domain. + //host (file:// url), if the baseUrl does not match the + //current window's domain, or if the baseUrl starts with //. + //If baseUrl starts with // then it probably means that xdomain + //is wanted since it is such a specific path request. This is not completely robust, + //but something more robust would require normalizing the protocol on baseUrl and on the location + //to see if they differ. However, that requires more code, and // as a start path is unusual. var url = dojo.baseUrl; colonIndex = url.indexOf(":"); slashIndex = url.indexOf("/"); - if(colonIndex > 0 && colonIndex < slashIndex && (!location.host || url.indexOf("http://" + location.host) != 0)){ + if(url.indexOf("//") === 0 || (colonIndex > 0 && colonIndex < slashIndex && (!location.host || url.indexOf("http://" + location.host) != 0))){ return true; } } - return false; + return false; } dojo._loadPath = function(/*String*/relpath, /*String?*/module, /*Function?*/cb){ @@ -218,8 +222,8 @@ dojo._loadUri = function(/*String*/uri, /*Function?*/cb, /*boolean*/currentIsXDo } //Add the module (resource) to the list of modules. - //Only do this work if we have a modlue name. Otherwise, - //it is a non-xd i18n bundle, which can load immediately and does not + //Only do this work if we have a modlue name. Otherwise, + //it is a non-xd i18n bundle, which can load immediately and does not //need to be tracked. Also, don't track dojo.i18n, since it is a prerequisite //and will be loaded correctly if we load it right away: it has no dependencies. if(dojo._isXDomain && module && module != "dojo.i18n"){ @@ -386,7 +390,7 @@ dojo._xdResourceLoaded = function(/*Object*/res){ } //Now update the inflight status for any provided resources in this loaded resource. - //Do this at the very end (in a *separate* for loop) to avoid shutting down the + //Do this at the very end (in a *separate* for loop) to avoid shutting down the //inflight timer check too soon. for(i = 0; i < provideList.length; i++){ dojo._xdInFlight[provideList[i]] = false; @@ -490,7 +494,7 @@ dojo.xdRequireLocalization = function(/*String*/moduleName, /*String*/bundleName // Replace dojo.requireLocalization with a wrapper dojo._xdRealRequireLocalization = dojo.requireLocalization; dojo.requireLocalization = function(/*String*/moduleName, /*String*/bundleName, /*String?*/locale, /*String*/availableFlatLocales){ - // summary: loads a bundle intelligently based on whether the module is + // summary: loads a bundle intelligently based on whether the module is // local or xd. Overrides the local-case implementation. var modulePath = dojo.moduleUrl(moduleName).toString(); @@ -525,7 +529,7 @@ dojo._xdUnpackDependency = function(/*Array*/dep){ case "platformRequire": var modMap = dep[1]; var common = modMap["common"]||[]; - newDeps = (modMap[dojo.hostenv.name_]) ? common.concat(modMap[dojo.hostenv.name_]||[]) : common.concat(modMap["default"]||[]); + newDeps = (modMap[dojo.hostenv.name_]) ? common.concat(modMap[dojo.hostenv.name_]||[]) : common.concat(modMap["default"]||[]); //Flatten the array of arrays into a one-level deep array. //Each result could be an array of 3 elements (the 3 arguments to dojo.require). //We only need the first one. @@ -562,7 +566,7 @@ dojo._xdUnpackDependency = function(/*Array*/dep){ } dojo._xdWalkReqs = function(){ - //summary: Internal xd loader function. + //summary: Internal xd loader function. //Walks the requires and evaluates module resource contents in //the right order. var reqChain = null; @@ -578,7 +582,7 @@ dojo._xdWalkReqs = function(){ } dojo._xdEvalReqs = function(/*Array*/reqChain){ - //summary: Internal xd loader function. + //summary: Internal xd loader function. //Does a depth first, breadth second search and eval of required modules. while(reqChain.length > 0){ var req = reqChain[reqChain.length - 1]; @@ -673,7 +677,7 @@ dojo._xdWatchInFlight = function(){ dojo._xdDebugQueue.push({resourceName: content.resourceName, resourcePath: content.resourcePath}); }else{ //Evaluate the resource to bring it into being. - //Pass in scope args to allow multiple versions of modules in a page. + //Pass in scope args to allow multiple versions of modules in a page. content.apply(dojo.global, dojo._scopeArgs); } } @@ -685,7 +689,7 @@ dojo._xdWatchInFlight = function(){ for(i = 0; i < dojo._xdContents.length; i++){ var current = dojo._xdContents[i]; if(current.content && !current.isDefined){ - //Pass in scope args to allow multiple versions of modules in a page. + //Pass in scope args to allow multiple versions of modules in a page. current.content.apply(dojo.global, dojo._scopeArgs); } } @@ -712,10 +716,10 @@ dojo._xdNotifyLoaded = function(){ } } - dojo._inFlightCount = 0; + dojo._inFlightCount = 0; - //Only trigger call loaded if dj_load_init has run. - if(dojo._initFired && !dojo._loadNotifying){ + //Only trigger call loaded if dj_load_init has run. + if(dojo._initFired && !dojo._loadNotifying){ dojo._callLoaded(); } } diff --git a/lib/dojo/_base/array.js b/lib/dojo/_base/array.js index 26fa1900d..57cea4229 100644 --- a/lib/dojo/_base/array.js +++ b/lib/dojo/_base/array.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -7,13 +7,14 @@ if(!dojo._hasResource["dojo._base.array"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.array"] = true; -dojo.require("dojo._base.lang"); dojo.provide("dojo._base.array"); +dojo.require("dojo._base.lang"); + (function(){ var _getParts = function(arr, obj, cb){ - return [ - (typeof arr == "string") ? arr.split("") : arr, + return [ + (typeof arr == "string") ? arr.split("") : arr, obj || dojo.global, // FIXME: cache the anonymous functions we create here? (typeof cb == "string") ? new Function("item", "index", "array", cb) : cb @@ -32,7 +33,7 @@ dojo.provide("dojo._base.array"); }; dojo.mixin(dojo, { - indexOf: function( /*Array*/ array, + indexOf: function( /*Array*/ array, /*Object*/ value, /*Integer?*/ fromIndex, /*Boolean?*/ findLast){ @@ -41,7 +42,7 @@ dojo.provide("dojo._base.array"); // passed array. If the value is not found, -1 is returned. // description: // This method corresponds to the JavaScript 1.6 Array.indexOf method, with one difference: when - // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript + // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript // 1.6's indexOf skips the holes in the sparse array. // For details on this method, see: // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/indexOf @@ -66,7 +67,7 @@ dojo.provide("dojo._base.array"); // array. If the value is not found, -1 is returned. // description: // This method corresponds to the JavaScript 1.6 Array.lastIndexOf method, with one difference: when - // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript + // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript // 1.6's lastIndexOf skips the holes in the sparse array. // For details on this method, see: // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/lastIndexOf @@ -85,7 +86,7 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.forEach() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.forEach() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to // the callback function with a value of undefined. JavaScript 1.6's forEach skips the holes in the sparse array. // For more details, see: @@ -108,21 +109,21 @@ dojo.provide("dojo._base.array"); // | ); // example: // | // use a scoped object member as the callback - // | + // | // | var obj = { - // | prefix: "logged via obj.callback:", + // | prefix: "logged via obj.callback:", // | callback: function(item){ // | console.log(this.prefix, item); // | } // | }; - // | + // | // | // specifying the scope function executes the callback in that scope // | dojo.forEach( // | [ "thinger", "blah", "howdy", 10 ], // | obj.callback, // | obj // | ); - // | + // | // | // alternately, we can accomplish the same thing with dojo.hitch() // | dojo.forEach( // | [ "thinger", "blah", "howdy", 10 ], @@ -135,7 +136,7 @@ dojo.provide("dojo._base.array"); // FIXME: there are several ways of handilng thisObject. Is // dojo.global always the default context? var _p = _getParts(arr, thisObject, callback); arr = _p[0]; - for(var i=0,l=arr.length; i<l; ++i){ + for(var i=0,l=arr.length; i<l; ++i){ _p[2].call(_p[1], arr[i], i, arr); } }, @@ -152,7 +153,7 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.every() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.every() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to // the callback function with a value of undefined. JavaScript 1.6's every skips the holes in the sparse array. // For more details, see: @@ -161,7 +162,7 @@ dojo.provide("dojo._base.array"); // | // returns false // | dojo.every([1, 2, 3, 4], function(item){ return item>1; }); // example: - // | // returns true + // | // returns true // | dojo.every([1, 2, 3, 4], function(item){ return item>0; }); return everyOrSome(true, arr, callback, thisObject); // Boolean }, @@ -178,7 +179,7 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.some() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.some() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to // the callback function with a value of undefined. JavaScript 1.6's some skips the holes in the sparse array. // For more details, see: @@ -205,7 +206,7 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.map() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.map() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to // the callback function with a value of undefined. JavaScript 1.6's map skips the holes in the sparse array. // For more details, see: @@ -236,9 +237,9 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.filter() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.filter() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to - // the callback function with a value of undefined. JavaScript 1.6's filter skips the holes in the sparse array. + // the callback function with a value of undefined. JavaScript 1.6's filter skips the holes in the sparse array. // For more details, see: // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter // example: diff --git a/lib/dojo/_base/browser.js b/lib/dojo/_base/browser.js index 496fe46b3..209330f0d 100644 --- a/lib/dojo/_base/browser.js +++ b/lib/dojo/_base/browser.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,7 +8,6 @@ if(!dojo._hasResource["dojo._base.browser"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.browser"] = true; dojo.provide("dojo._base.browser"); - dojo.require("dojo._base.window"); dojo.require("dojo._base.connect"); dojo.require("dojo._base.event"); @@ -18,12 +17,12 @@ dojo.require("dojo._base.query"); dojo.require("dojo._base.xhr"); dojo.require("dojo._base.fx"); -//Need this to be the last code segment in base, so do not place any -//dojo.requireIf calls in this file. Otherwise, due to how the build system -//puts all requireIf dependencies after the current file, the require calls -//could be called before all of base is defined. -dojo.forEach(dojo.config.require, function(i){ - dojo["require"](i); -}); + //Need this to be the last code segment in base, so do not place any + //dojo/requireIf calls in this file/ Otherwise, due to how the build system + //puts all requireIf dependencies after the current file, the require calls + //could be called before all of base is defined/ + dojo.forEach(dojo.config.require, function(i){ + dojo["require"](i); + }); } diff --git a/lib/dojo/_base/connect.js b/lib/dojo/_base/connect.js index f37af65b2..7e8006221 100644 --- a/lib/dojo/_base/connect.js +++ b/lib/dojo/_base/connect.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,27 +10,28 @@ dojo._hasResource["dojo._base.connect"] = true; dojo.provide("dojo._base.connect"); dojo.require("dojo._base.lang"); + // this file courtesy of the TurboAjax Group, licensed under a Dojo CLA // low-level delegation machinery dojo._listener = { // create a dispatcher function getDispatcher: function(){ - // following comments pulled out-of-line to prevent cloning them + // following comments pulled out-of-line to prevent cloning them // in the returned function. - // - indices (i) that are really in the array of listeners (ls) will + // - indices (i) that are really in the array of listeners (ls) will // not be in Array.prototype. This is the 'sparse array' trick - // that keeps us safe from libs that take liberties with built-in + // that keeps us safe from libs that take liberties with built-in // objects // - listener is invoked with current scope (this) return function(){ - var ap=Array.prototype, c=arguments.callee, ls=c._listeners, t=c.target; + var ap = Array.prototype, c = arguments.callee, ls = c._listeners, t = c.target, // return value comes from original target function - var r = t && t.apply(this, arguments); + r = t && t.apply(this, arguments), // make local copy of listener array so it is immutable during processing - var i, lls; - lls = [].concat(ls); - + i, lls = [].concat(ls) + ; + // invoke listeners after target function for(i in lls){ if(!(i in ap)){ @@ -44,12 +45,12 @@ dojo._listener = { // add a listener to an object add: function(/*Object*/ source, /*String*/ method, /*Function*/ listener){ // Whenever 'method' is invoked, 'listener' will have the same scope. - // Trying to supporting a context object for the listener led to - // complexity. + // Trying to supporting a context object for the listener led to + // complexity. // Non trivial to provide 'once' functionality here // because listener could be the result of a dojo.hitch call, // in which case two references to the same hitch target would not - // be equivalent. + // be equivalent. source = source || dojo.global; // The source method is either null, a dispatcher, or some other function var f = source[method]; @@ -59,15 +60,15 @@ dojo._listener = { // original target function is special d.target = f; // dispatcher holds a list of listeners - d._listeners = []; + d._listeners = []; // redirect source to dispatcher f = source[method] = d; } - // The contract is that a handle is returned that can - // identify this listener for disconnect. + // The contract is that a handle is returned that can + // identify this listener for disconnect. // - // The type of the handle is private. Here is it implemented as Integer. - // DOM event code has this same contract but handle is Function + // The type of the handle is private. Here is it implemented as Integer. + // DOM event code has this same contract but handle is Function // in non-IE browsers. // // We could have separate lists of before and after listeners. @@ -89,9 +90,9 @@ dojo._listener = { // and dontFix argument here to help the autodocs. Actual DOM aware code is in // event.js. -dojo.connect = function(/*Object|null*/ obj, - /*String*/ event, - /*Object|null*/ context, +dojo.connect = function(/*Object|null*/ obj, + /*String*/ event, + /*Object|null*/ context, /*String|Function*/ method, /*Boolean?*/ dontFix){ // summary: @@ -126,37 +127,37 @@ dojo.connect = function(/*Object|null*/ obj, // arguments may simply be omitted such that fewer than 4 arguments // may be required to set up a connection See the examples for details. // - // The return value is a handle that is needed to + // The return value is a handle that is needed to // remove this connection with `dojo.disconnect`. // - // obj: - // The source object for the event function. + // obj: + // The source object for the event function. // Defaults to `dojo.global` if null. - // If obj is a DOM node, the connection is delegated + // If obj is a DOM node, the connection is delegated // to the DOM event manager (unless dontFix is true). // // event: - // String name of the event function in obj. + // String name of the event function in obj. // I.e. identifies a property `obj[event]`. // - // context: + // context: // The object that method will receive as "this". // // If context is null and method is a function, then method // inherits the context of event. - // - // If method is a string then context must be the source + // + // If method is a string then context must be the source // object object for method (context[method]). If context is null, // dojo.global is used. // // method: - // A function reference, or name of a function in context. - // The function identified by method fires after event does. + // A function reference, or name of a function in context. + // The function identified by method fires after event does. // method receives the same arguments as the event. // See context argument comments for information on method's scope. // // dontFix: - // If obj is a DOM node, set dontFix to true to prevent delegation + // If obj is a DOM node, set dontFix to true to prevent delegation // of this connection to the DOM event manager. // // example: @@ -206,9 +207,9 @@ dojo.connect = function(/*Object|null*/ obj, // used by non-browser hostenvs. always overriden by event.js dojo._connect = function(obj, event, context, method){ - var l=dojo._listener, h=l.add(obj, event, dojo.hitch(context, method)); + var l=dojo._listener, h=l.add(obj, event, dojo.hitch(context, method)); return [obj, event, h, l]; // Handle -} +}; dojo.disconnect = function(/*Handle*/ handle){ // summary: @@ -222,11 +223,11 @@ dojo.disconnect = function(/*Handle*/ handle){ // let's not keep this reference delete handle[0]; } -} +}; dojo._disconnect = function(obj, event, handle, listener){ listener.remove(obj, event, handle); -} +}; // topic publish/subscribe @@ -244,15 +245,15 @@ dojo.subscribe = function(/*String*/ topic, /*Object|null*/ context, /*String|Fu // is invoked when topic is published. // example: // | dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); }); - // | dojo.publish("alerts", [ "read this", "hello world" ]); + // | dojo.publish("alerts", [ "read this", "hello world" ]); // support for 2 argument invocation (omitting context) depends on hitch return [topic, dojo._listener.add(dojo._topics, topic, dojo.hitch(context, method))]; /*Handle*/ -} +}; dojo.unsubscribe = function(/*Handle*/ handle){ // summary: - // Remove a topic listener. + // Remove a topic listener. // handle: // The handle returned from a call to subscribe. // example: @@ -262,7 +263,7 @@ dojo.unsubscribe = function(/*Handle*/ handle){ if(handle){ dojo._listener.remove(dojo._topics, handle[0], handle[1]); } -} +}; dojo.publish = function(/*String*/ topic, /*Array*/ args){ // summary: @@ -270,11 +271,11 @@ dojo.publish = function(/*String*/ topic, /*Array*/ args){ // topic: // The name of the topic to publish. // args: - // An array of arguments. The arguments will be applied + // An array of arguments. The arguments will be applied // to each topic subscriber (as first class parameters, via apply). // example: // | dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); }; - // | dojo.publish("alerts", [ "read this", "hello world" ]); + // | dojo.publish("alerts", [ "read this", "hello world" ]); // Note that args is an array, which is more efficient vs variable length // argument list. Ideally, var args would be implemented via Array @@ -283,10 +284,10 @@ dojo.publish = function(/*String*/ topic, /*Array*/ args){ if(f){ f.apply(this, args||[]); } -} +}; -dojo.connectPublisher = function( /*String*/ topic, - /*Object|null*/ obj, +dojo.connectPublisher = function( /*String*/ topic, + /*Object|null*/ obj, /*String*/ event){ // summary: // Ensure that every time obj.event() is called, a message is published @@ -295,11 +296,11 @@ dojo.connectPublisher = function( /*String*/ topic, // the topic. // topic: // The name of the topic to publish. - // obj: + // obj: // The source object for the event function. Defaults to dojo.global // if null. // event: - // The name of the event function in obj. + // The name of the event function in obj. // I.e. identifies a property obj[event]. // example: // | dojo.connectPublisher("/ajax/start", dojo, "xhrGet"); diff --git a/lib/dojo/_base/declare.js b/lib/dojo/_base/declare.js index 8e46b12c0..437914870 100644 --- a/lib/dojo/_base/declare.js +++ b/lib/dojo/_base/declare.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,18 +8,18 @@ if(!dojo._hasResource["dojo._base.declare"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.declare"] = true; dojo.provide("dojo._base.declare"); - dojo.require("dojo._base.lang"); dojo.require("dojo._base.array"); + (function(){ var d = dojo, mix = d._mixin, op = Object.prototype, opts = op.toString, xtor = new Function, counter = 0, cname = "constructor"; - function err(msg){ throw new Error("declare: " + msg); } + function err(msg, cls){ throw new Error("declare" + (cls ? " " + cls : "") + ": " + msg); } // C3 Method Resolution Order (see http://www.python.org/download/releases/2.3/mro/) - function c3mro(bases){ + function c3mro(bases, className){ var result = [], roots = [{cls: 0, refs: []}], nameMap = {}, clsCount = 1, l = bases.length, i = 0, j, lin, base, top, proto, rec, name, refs; @@ -27,9 +27,9 @@ dojo.require("dojo._base.array"); for(; i < l; ++i){ base = bases[i]; if(!base){ - err("mixin #" + i + " is unknown. Did you use dojo.require to pull it in?"); + err("mixin #" + i + " is unknown. Did you use dojo.require to pull it in?", className); }else if(opts.call(base) != "[object Function]"){ - err("mixin #" + i + " is not a callable constructor."); + err("mixin #" + i + " is not a callable constructor.", className); } lin = base._meta ? base._meta.bases : [base]; top = 0; @@ -82,7 +82,7 @@ dojo.require("dojo._base.array"); } } if(clsCount){ - err("can't build consistent linearization"); + err("can't build consistent linearization", className); } // calculate the superclass offset @@ -109,7 +109,7 @@ dojo.require("dojo._base.array"); caller = args.callee; name = name || caller.nom; if(!name){ - err("can't deduce a name to call inherited()"); + err("can't deduce a name to call inherited()", this.declaredClass); } meta = this.constructor._meta; @@ -127,7 +127,7 @@ dojo.require("dojo._base.array"); // error detection chains = meta.chains; if(chains && typeof chains[name] == "string"){ - err("calling chained method with inherited: " + name); + err("calling chained method with inherited: " + name, this.declaredClass); } // find caller do{ @@ -168,7 +168,7 @@ dojo.require("dojo._base.array"); // error detection chains = meta.chains; if(!chains || chains.constructor !== "manual"){ - err("calling chained constructor with inherited"); + err("calling chained constructor with inherited", this.declaredClass); } // find caller while(base = bases[++pos]){ // intentional assignment @@ -464,7 +464,7 @@ dojo.require("dojo._base.array"); // build a prototype if(opts.call(superclass) == "[object Array]"){ // C3 MRO - bases = c3mro(superclass); + bases = c3mro(superclass, className); t = bases[0]; mixins = bases.length - t; superclass = bases[mixins]; @@ -475,10 +475,10 @@ dojo.require("dojo._base.array"); t = superclass._meta; bases = bases.concat(t ? t.bases : superclass); }else{ - err("base class is not a callable constructor."); + err("base class is not a callable constructor.", className); } }else if(superclass !== null){ - err("unknown base class. Did you use dojo.require to pull it in?") + err("unknown base class. Did you use dojo.require to pull it in?", className); } } if(superclass){ diff --git a/lib/dojo/_base/event.js b/lib/dojo/_base/event.js index 5268c6cff..65239bf50 100644 --- a/lib/dojo/_base/event.js +++ b/lib/dojo/_base/event.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,27 +10,26 @@ dojo._hasResource["dojo._base.event"] = true; dojo.provide("dojo._base.event"); dojo.require("dojo._base.connect"); + // this file courtesy of the TurboAjax Group, licensed under a Dojo CLA (function(){ // DOM event listener machinery var del = (dojo._event_listener = { add: function(/*DOMNode*/ node, /*String*/ name, /*Function*/ fp){ - if(!node){return;} + if(!node){return;} name = del._normalizeEventName(name); fp = del._fixCallback(name, fp); - var oname = name; if( - !dojo.isIE && + !dojo.isIE && (name == "mouseenter" || name == "mouseleave") ){ var ofp = fp; - //oname = name; name = (name == "mouseenter") ? "mouseover" : "mouseout"; fp = function(e){ if(!dojo.isDescendant(e.relatedTarget, node)){ // e.type = oname; // FIXME: doesn't take? SJM: event.type is generally immutable. - return ofp.call(this, e); + return ofp.call(this, e); } } } @@ -71,7 +70,7 @@ dojo.require("dojo._base.connect"); }, _fixEvent: function(evt, sender){ // _fixCallback only attaches us to keypress. - // Switch on evt.type anyway because we might + // Switch on evt.type anyway because we might // be called directly from dojo.fixEvent. switch(evt.type){ case "keypress": @@ -81,26 +80,26 @@ dojo.require("dojo._base.connect"); return evt; }, _setKeyChar: function(evt){ - evt.keyChar = evt.charCode ? String.fromCharCode(evt.charCode) : ''; + evt.keyChar = evt.charCode >= 32 ? String.fromCharCode(evt.charCode) : ''; evt.charOrCode = evt.keyChar || evt.keyCode; }, // For IE and Safari: some ctrl-key combinations (mostly w/punctuation) do not emit a char code in IE // we map those virtual key codes to ascii here // not valid for all (non-US) keyboards, so maybe we shouldn't bother - _punctMap: { - 106:42, - 111:47, - 186:59, - 187:43, - 188:44, - 189:45, - 190:46, - 191:47, - 192:96, - 219:91, - 220:92, - 221:93, - 222:39 + _punctMap: { + 106:42, + 111:47, + 186:59, + 187:43, + 188:44, + 189:45, + 190:46, + 191:47, + 192:96, + 219:91, + 220:92, + 221:93, + 222:39 } }); @@ -115,7 +114,7 @@ dojo.require("dojo._base.connect"); // sender: DOMNode // node to treat as "currentTarget" return del._fixEvent(evt, sender); - } + }; dojo.stopEvent = function(/*Event*/ evt){ // summary: @@ -126,7 +125,7 @@ dojo.require("dojo._base.connect"); evt.preventDefault(); evt.stopPropagation(); // NOTE: below, this method is overridden for IE - } + }; // the default listener to use on dontFix nodes, overriden for IE var node_listener = dojo._listener; @@ -141,16 +140,16 @@ dojo.require("dojo._base.connect"); // create a listener var h = l.add(obj, event, dojo.hitch(context, method)); // formerly, the disconnect package contained "l" directly, but if client code - // leaks the disconnect package (by connecting it to a node), referencing "l" + // leaks the disconnect package (by connecting it to a node), referencing "l" // compounds the problem. // instead we return a listener id, which requires custom _disconnect below. // return disconnect package return [ obj, event, h, lid ]; - } + }; dojo._disconnect = function(obj, event, handle, listener){ ([dojo._listener, del, node_listener][listener]).remove(obj, event, handle); - } + }; // Constants @@ -280,7 +279,7 @@ dojo.require("dojo._base.connect"); }; =====*/ - if(dojo.isIE){ + if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){ dojo.mouseButtons = { LEFT: 1, MIDDLE: 4, @@ -305,7 +304,7 @@ dojo.require("dojo._base.connect"); } // IE event normalization - if(dojo.isIE){ + if(dojo.isIE){ var _trySetKeyCode = function(e, code){ try{ // squelch errors when keyCode is read-only @@ -314,7 +313,7 @@ dojo.require("dojo._base.connect"); }catch(e){ return 0; } - } + }; // by default, use the standard listener var iel = dojo._listener; @@ -323,7 +322,7 @@ dojo.require("dojo._base.connect"); if(!dojo.config._allow_leaks){ // custom listener that handles leak protection for DOM events node_listener = iel = dojo._ie_listener = { - // support handler indirection: event handler functions are + // support handler indirection: event handler functions are // referenced here. Event dispatchers hold only indices. handlers: [], // add a listener to an object @@ -376,7 +375,7 @@ dojo.require("dojo._base.connect"); }, remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){ event = del._normalizeEventName(event); - iel.remove(node, event, handle); + iel.remove(node, event, handle); if(event=="onkeypress"){ var kd = node.onkeydown; if(--kd._stealthKeydownRefs <= 0){ @@ -402,11 +401,11 @@ dojo.require("dojo._base.connect"); // node to treat as "currentTarget" if(!evt){ var w = sender && (sender.ownerDocument || sender.document || sender).parentWindow || window; - evt = w.event; + evt = w.event; } if(!evt){return(evt);} - evt.target = evt.srcElement; - evt.currentTarget = (sender || evt.srcElement); + evt.target = evt.srcElement; + evt.currentTarget = (sender || evt.srcElement); evt.layerX = evt.offsetX; evt.layerY = evt.offsetY; // FIXME: scroll position query is duped from dojo.html to @@ -419,14 +418,16 @@ dojo.require("dojo._base.connect"); var offset = dojo._getIeDocumentElementOffset(); evt.pageX = evt.clientX + dojo._fixIeBiDiScrollLeft(docBody.scrollLeft || 0) - offset.x; evt.pageY = evt.clientY + (docBody.scrollTop || 0) - offset.y; - if(evt.type == "mouseover"){ + if(evt.type == "mouseover"){ evt.relatedTarget = evt.fromElement; } - if(evt.type == "mouseout"){ + if(evt.type == "mouseout"){ evt.relatedTarget = evt.toElement; } - evt.stopPropagation = del._stopPropagation; - evt.preventDefault = del._preventDefault; + if (dojo.isIE < 9 || dojo.isQuirks) { + evt.stopPropagation = del._stopPropagation; + evt.preventDefault = del._preventDefault; + } return del._fixKeys(evt); }, _fixKeys: function(evt){ @@ -460,38 +461,41 @@ dojo.require("dojo._base.connect"); var k=evt.keyCode; // These are Windows Virtual Key Codes // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp - var unprintable = k!=13 && k!=32 && k!=27 && (k<48||k>90) && (k<96||k>111) && (k<186||k>192) && (k<219||k>222); + var unprintable = (k!=13 || (dojo.isIE >= 9 && !dojo.isQuirks)) && k!=32 && k!=27 && (k<48||k>90) && (k<96||k>111) && (k<186||k>192) && (k<219||k>222); + // synthesize keypress for most unprintables and CTRL-keys if(unprintable||evt.ctrlKey){ var c = unprintable ? 0 : k; if(evt.ctrlKey){ if(k==3 || k==13){ - return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively - }else if(c>95 && c<106){ + return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively + }else if(c>95 && c<106){ c -= 48; // map CTRL-[numpad 0-9] to ASCII - }else if((!evt.shiftKey)&&(c>=65&&c<=90)){ + }else if((!evt.shiftKey)&&(c>=65&&c<=90)){ c += 32; // map CTRL-[A-Z] to lowercase - }else{ + }else{ c = del._punctMap[c] || c; // map other problematic CTRL combinations to ASCII } } // simulate a keypress event var faux = del._synthesizeEvent(evt, {type: 'keypress', faux: true, charCode: c}); kp.call(evt.currentTarget, faux); - evt.cancelBubble = faux.cancelBubble; + if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){ + evt.cancelBubble = faux.cancelBubble; + } evt.returnValue = faux.returnValue; _trySetKeyCode(evt, faux.keyCode); } }, // Called in Event scope _stopPropagation: function(){ - this.cancelBubble = true; + this.cancelBubble = true; }, _preventDefault: function(){ // Setting keyCode to 0 is the only way to prevent certain keypresses (namely // ctrl-combinations that correspond to menu accelerator keys). // Otoh, it prevents upstream listeners from getting this information - // Try to split the difference here by clobbering keyCode only for ctrl + // Try to split the difference here by clobbering keyCode only for ctrl // combinations. If you still need to access the key upstream, bubbledKeyCode is // provided as a workaround. this.bubbledKeyCode = this.keyCode; @@ -501,23 +505,23 @@ dojo.require("dojo._base.connect"); }); // override stopEvent for IE - dojo.stopEvent = function(evt){ + dojo.stopEvent = (dojo.isIE < 9 || dojo.isQuirks) ? function(evt){ evt = evt || window.event; del._stopPropagation.call(evt); del._preventDefault.call(evt); - } + } : dojo.stopEvent; } del._synthesizeEvent = function(evt, props){ var faux = dojo.mixin({}, evt, props); del._setKeyChar(faux); - // FIXME: would prefer to use dojo.hitch: dojo.hitch(evt, evt.preventDefault); + // FIXME: would prefer to use dojo.hitch: dojo.hitch(evt, evt.preventDefault); // but it throws an error when preventDefault is invoked on Safari // does Event.preventDefault not support "apply" on Safari? - faux.preventDefault = function(){ evt.preventDefault(); }; - faux.stopPropagation = function(){ evt.stopPropagation(); }; + faux.preventDefault = function(){ evt.preventDefault(); }; + faux.stopPropagation = function(){ evt.stopPropagation(); }; return faux; - } + }; // Opera event normalization if(dojo.isOpera){ @@ -568,12 +572,12 @@ dojo.require("dojo._base.connect"); var c = unprintable ? 0 : k; if(evt.ctrlKey){ if(k==3 || k==13){ - return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively - }else if(c>95 && c<106){ + return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively + }else if(c>95 && c<106){ c -= 48; // map CTRL-[numpad 0-9] to ASCII - }else if(!evt.shiftKey && c>=65 && c<=90){ + }else if(!evt.shiftKey && c>=65 && c<=90){ c += 32; // map CTRL-[A-Z] to lowercase - }else{ + }else{ c = del._punctMap[c] || c; // map other problematic CTRL combinations to ASCII } } @@ -630,16 +634,16 @@ if(dojo.isIE){ } } return r; - } + }; dojo._getIeDispatcher = function(){ // ensure the returned function closes over nothing ("new Function" apparently doesn't close) return new Function(dojo._scopeName + "._ieDispatcher(arguments, this)"); // function - } + }; // keep this out of the closure to reduce RAM allocation dojo._event_listener._fixCallback = function(fp){ var f = dojo._event_listener._fixEvent; return function(e){ return fp.call(this, f(e, this)); }; - } + }; } } diff --git a/lib/dojo/_base/fx.js b/lib/dojo/_base/fx.js index 21243c1c9..860e0e18b 100644 --- a/lib/dojo/_base/fx.js +++ b/lib/dojo/_base/fx.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -13,6 +13,7 @@ dojo.require("dojo._base.connect"); dojo.require("dojo._base.lang"); dojo.require("dojo._base.html"); + /* Animation loosely package based on Dan Pupius' work, contributed under CLA: http://pupius.co.uk/js/Toolkit.Drawing.js diff --git a/lib/dojo/_base/html.js b/lib/dojo/_base/html.js index be5fd2aaa..8661b2b12 100644 --- a/lib/dojo/_base/html.js +++ b/lib/dojo/_base/html.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -7,8 +7,9 @@ if(!dojo._hasResource["dojo._base.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.html"] = true; -dojo.require("dojo._base.lang"); dojo.provide("dojo._base.html"); +dojo.require("dojo._base.lang"); + // FIXME: need to add unit tests for all the semi-public methods @@ -53,13 +54,13 @@ dojo.byId = function(id, doc){ // | } =====*/ -if(dojo.isIE || dojo.isOpera){ +if(dojo.isIE){ dojo.byId = function(id, doc){ if(typeof id != "string"){ return id; } var _d = doc || dojo.doc, te = _d.getElementById(id); - // attributes.id.value is better than just id in case the + // attributes.id.value is better than just id in case the // user has a name=id inside a form if(te && (te.attributes.id.value == id || te.id == id)){ return te; @@ -80,8 +81,9 @@ if(dojo.isIE || dojo.isOpera){ }; }else{ dojo.byId = function(id, doc){ - // inline'd type check - return (typeof id == "string") ? (doc || dojo.doc).getElementById(id) : id; // DomNode + // inline'd type check. + // be sure to return null per documentation, to match IE branch. + return ((typeof id == "string") ? (doc || dojo.doc).getElementById(id) : id) || null; // DomNode }; } /*===== @@ -164,16 +166,16 @@ if(dojo.isIE || dojo.isOpera){ }; dojo.setSelectable = function(/*DomNode|String*/node, /*Boolean*/selectable){ - // summary: + // summary: // Enable or disable selection on a node // node: // id or reference to node // selectable: - // state to put the node in. false indicates unselectable, true + // state to put the node in. false indicates unselectable, true // allows selection. // example: // Make the node id="bar" unselectable - // | dojo.setSelectable("bar"); + // | dojo.setSelectable("bar"); // example: // Make the node id="bar" selectable // | dojo.setSelectable("bar", true); @@ -256,7 +258,7 @@ if(dojo.isIE || dojo.isOpera){ refNode = byId(refNode); if(typeof node == "string"){ // inline'd type check - node = node.charAt(0) == "<" ? d._toDom(node, refNode.ownerDocument) : byId(node); + node = /^\s*</.test(node) ? d._toDom(node, refNode.ownerDocument) : byId(node); } if(typeof position == "number"){ // inline'd type check var cn = refNode.childNodes; @@ -291,7 +293,7 @@ if(dojo.isIE || dojo.isOpera){ } } return node; // DomNode - } + }; // Box functions will assume this model. // On IE/Opera, BORDER_BOX will be set if the primary document is in quirks mode. @@ -303,7 +305,7 @@ if(dojo.isIE || dojo.isOpera){ dojo.boxModel = "content-box"; // We punt per-node box mode testing completely. - // If anybody cares, we can provide an additional (optional) unit + // If anybody cares, we can provide an additional (optional) unit // that overrides existing code to include per-node box sensitivity. // Opera documentation claims that Opera 9 uses border-box in BackCompat mode. @@ -323,10 +325,10 @@ if(dojo.isIE || dojo.isOpera){ // getComputedStyle drives most of the style code. // Wherever possible, reuse the returned object. // - // API functions below that need to access computed styles accept an + // API functions below that need to access computed styles accept an // optional computedStyle parameter. // If this parameter is omitted, the functions will call getComputedStyle themselves. - // This way, calling code can access computedStyle once, and then pass the reference to + // This way, calling code can access computedStyle once, and then pass the reference to // multiple API functions. /*===== @@ -365,7 +367,7 @@ if(dojo.isIE || dojo.isOpera){ // Although we normally eschew argument validation at this // level, here we test argument 'node' for (duck)type, // by testing nodeType, ecause 'document' is the 'parentNode' of 'body' - // it is frequently sent to this function even + // it is frequently sent to this function even // though it is not Element. var gcs; if(d.isWebKit){ @@ -426,7 +428,7 @@ if(dojo.isIE || dojo.isOpera){ runtimeStyle.left = rsLeft; } return avalue; - } + }; } var px = d._toPixelValue; @@ -454,7 +456,7 @@ if(dojo.isIE || dojo.isOpera){ }; dojo._getOpacity = - d.isIE ? function(node){ + d.isIE < 9 ? function(node){ try{ return af(node).Opacity / 100; // Number }catch(e){ @@ -481,7 +483,7 @@ if(dojo.isIE || dojo.isOpera){ =====*/ dojo._setOpacity = - d.isIE ? function(/*DomNode*/node, /*Number*/opacity){ + d.isIE < 9 ? function(/*DomNode*/node, /*Number*/opacity){ var ov = opacity * 100, opaque = opacity == 1; node.style.zoom = opaque ? "" : 1; @@ -553,7 +555,7 @@ if(dojo.isIE || dojo.isOpera){ // Also when getting values, use specific style names, // like "borderBottomWidth" instead of "border" since compound values like // "border" are not necessarily reflected as expected. - // If you want to get node dimensions, use `dojo.marginBox()`, + // If you want to get node dimensions, use `dojo.marginBox()`, // `dojo.contentBox()` or `dojo.position()`. // node: // id or reference to node to get/set style for @@ -622,7 +624,7 @@ if(dojo.isIE || dojo.isOpera){ return s; } return (args == 1) ? s : _toStyleValue(n, style, s[style] || n.style[style]); /* CSS2Properties||String||Number */ - } + }; // ============================= // Box Functions @@ -635,13 +637,13 @@ if(dojo.isIE || dojo.isOpera){ // description: // Returns an object with `w`, `h`, `l`, `t` properties: // | l/t = left/top padding (respectively) - // | w = the total of the left and right padding + // | w = the total of the left and right padding // | h = the total of the top and bottom padding // If 'node' has position, l/t forms the origin for child nodes. // The w/h are used for calculating boxes. // Normally application code will not need to invoke this // directly, and will use the ...box... functions instead. - var + var s = computedStyle||gcs(n), l = px(n, s.paddingLeft), t = px(n, s.paddingTop); @@ -651,7 +653,7 @@ if(dojo.isIE || dojo.isOpera){ w: l+px(n, s.paddingRight), h: t+px(n, s.paddingBottom) }; - } + }; dojo._getBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){ // summary: @@ -665,7 +667,7 @@ if(dojo.isIE || dojo.isOpera){ // The w/h are used for calculating boxes. // Normally application code will not need to invoke this // directly, and will use the ...box... functions instead. - var + var ne = "none", s = computedStyle||gcs(n), bl = (s.borderLeftStyle != ne ? px(n, s.borderLeftWidth) : 0), @@ -676,7 +678,7 @@ if(dojo.isIE || dojo.isOpera){ w: bl + (s.borderRightStyle!=ne ? px(n, s.borderRightWidth) : 0), h: bt + (s.borderBottomStyle!=ne ? px(n, s.borderBottomWidth) : 0) }; - } + }; dojo._getPadBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){ // summary: @@ -690,7 +692,7 @@ if(dojo.isIE || dojo.isOpera){ // The w/h are used for calculating boxes. // Normally application code will not need to invoke this // directly, and will use the ...box... functions instead. - var + var s = computedStyle||gcs(n), p = d._getPadExtents(n, s), b = d._getBorderExtents(n, s); @@ -700,7 +702,7 @@ if(dojo.isIE || dojo.isOpera){ w: p.w + b.w, h: p.h + b.h }; - } + }; dojo._getMarginExtents = function(n, computedStyle){ // summary: @@ -714,7 +716,7 @@ if(dojo.isIE || dojo.isOpera){ // The w/h are used for calculating boxes. // Normally application code will not need to invoke this // directly, and will use the ...box... functions instead. - var + var s = computedStyle||gcs(n), l = px(n, s.marginLeft), t = px(n, s.marginTop), @@ -722,9 +724,9 @@ if(dojo.isIE || dojo.isOpera){ b = px(n, s.marginBottom); if(d.isWebKit && (s.position != "absolute")){ // FIXME: Safari's version of the computed right margin - // is the space between our right edge and the right edge + // is the space between our right edge and the right edge // of our offsetParent. - // What we are looking for is the actual margin value as + // What we are looking for is the actual margin value as // determined by CSS. // Hack solution is to assume left/right margins are the same. r = l; @@ -735,7 +737,7 @@ if(dojo.isIE || dojo.isOpera){ w: l+r, h: t+b }; - } + }; // Box getters work in any box context because offsetWidth/clientWidth // are invariant wrt box context @@ -743,10 +745,10 @@ if(dojo.isIE || dojo.isOpera){ // They do *not* work for display: inline objects that have padding styles // because the user agent ignores padding (it's bogus styling in any case) // - // Be careful with IMGs because they are inline or block depending on + // Be careful with IMGs because they are inline or block depending on // browser and browser mode. - // Although it would be easier to read, there are not separate versions of + // Although it would be easier to read, there are not separate versions of // _getMarginBox for each browser because: // 1. the branching is not expensive // 2. factoring the shared code wastes cycles (function call overhead) @@ -790,9 +792,23 @@ if(dojo.isIE || dojo.isOpera){ l: l, t: t, w: node.offsetWidth + me.w, - h: node.offsetHeight + me.h + h: node.offsetHeight + me.h }; } + + dojo._getMarginSize = function(/*DomNode*/node, /*Object*/computedStyle){ + // summary: + // returns an object that encodes the width and height of + // the node's margin box + node = byId(node); + var me = d._getMarginExtents(node, computedStyle || gcs(node)); + + var size = node.getBoundingClientRect(); + return { + w: (size.right - size.left) + me.w, + h: (size.bottom - size.top) + me.h + } + } dojo._getContentBox = function(node, computedStyle){ // summary: @@ -821,7 +837,7 @@ if(dojo.isIE || dojo.isOpera){ w: w - pe.w - be.w, h: h - pe.h - be.h }; - } + }; dojo._getBorderBox = function(node, computedStyle){ var s = computedStyle || gcs(node), @@ -834,7 +850,7 @@ if(dojo.isIE || dojo.isOpera){ w: cb.w + pe.w, h: cb.h + pe.h }; - } + }; // Box setters depend on box context because interpretation of width/height styles // vary wrt box context. @@ -845,12 +861,12 @@ if(dojo.isIE || dojo.isOpera){ // Beware of display: inline objects that have padding styles // because the user agent ignores padding (it's a bogus setup anyway) // - // Be careful with IMGs because they are inline or block depending on + // Be careful with IMGs because they are inline or block depending on // browser and browser mode. // // Elements other than DIV may have special quirks, like built-in // margins or padding, or values not detectable via computedStyle. - // In particular, margins on TABLE do not seems to appear + // In particular, margins on TABLE do not seems to appear // at all in computedStyle on Mozilla. dojo._setBox = function(/*DomNode*/node, /*Number?*/l, /*Number?*/t, /*Number?*/w, /*Number?*/h, /*String?*/u){ @@ -876,14 +892,14 @@ if(dojo.isIE || dojo.isOpera){ if(!isNaN(t)){ s.top = t + u; } if(w >= 0){ s.width = w + u; } if(h >= 0){ s.height = h + u; } - } + }; dojo._isButtonTag = function(/*DomNode*/node) { // summary: // True if the node is BUTTON or INPUT.type="button". return node.tagName == "BUTTON" || node.tagName=="INPUT" && (node.getAttribute("type")||'').toUpperCase() == "BUTTON"; // boolean - } + }; dojo._usesBorderBox = function(/*DomNode*/node){ // summary: @@ -898,7 +914,7 @@ if(dojo.isIE || dojo.isOpera){ var n = node.tagName; return d.boxModel=="border-box" || n=="TABLE" || d._isButtonTag(node); // boolean - } + }; dojo._setContentSize = function(/*DomNode*/node, /*Number*/widthPx, /*Number*/heightPx, /*Object*/computedStyle){ // summary: @@ -910,7 +926,7 @@ if(dojo.isIE || dojo.isOpera){ if(heightPx >= 0){ heightPx += pb.h; } } d._setBox(node, NaN, NaN, widthPx, heightPx); - } + }; dojo._setMarginBox = function(/*DomNode*/node, /*Number?*/leftPx, /*Number?*/topPx, /*Number?*/widthPx, /*Number?*/heightPx, @@ -942,7 +958,7 @@ if(dojo.isIE || dojo.isOpera){ if(widthPx >= 0){ widthPx = Math.max(widthPx - pb.w - mb.w, 0); } if(heightPx >= 0){ heightPx = Math.max(heightPx - pb.h - mb.h, 0); } d._setBox(node, leftPx, topPx, widthPx, heightPx); - } + }; var _nilExtents = { l:0, t:0, w:0, h:0 }; @@ -977,7 +993,7 @@ if(dojo.isIE || dojo.isOpera){ var n = byId(node), s = gcs(n), b = box; return !b ? d._getMarginBox(n, s) : d._setMarginBox(n, b.l, b.t, b.w, b.h, s); // Object - } + }; dojo.contentBox = function(/*DomNode|String*/node, /*Object?*/box){ // summary: @@ -1002,14 +1018,14 @@ if(dojo.isIE || dojo.isOpera){ // All properties are optional if passed. var n = byId(node), s = gcs(n), b = box; return !b ? d._getContentBox(n, s) : d._setContentSize(n, b.w, b.h, s); // Object - } + }; // ============================= - // Positioning + // Positioning // ============================= var _sumAncestorProperties = function(node, prop){ - if(!(node = (node||0).parentNode)){return 0} + if(!(node = (node||0).parentNode)){return 0;} var val, retVal = 0, _b = d.body(); while(node && node.style){ if(gcs(node).position == "fixed"){ @@ -1025,19 +1041,19 @@ if(dojo.isIE || dojo.isOpera){ node = node.parentNode; } return retVal; // integer - } + }; dojo._docScroll = function(){ var n = d.global; - return "pageXOffset" in n? { x:n.pageXOffset, y:n.pageYOffset } : - (n=d.doc.documentElement, n.clientHeight? { x:d._fixIeBiDiScrollLeft(n.scrollLeft), y:n.scrollTop } : - (n=d.body(), { x:n.scrollLeft||0, y:n.scrollTop||0 })); + return "pageXOffset" in n + ? { x:n.pageXOffset, y:n.pageYOffset } + : (n = d.isQuirks? d.doc.body : d.doc.documentElement, { x:d._fixIeBiDiScrollLeft(n.scrollLeft || 0), y:n.scrollTop || 0 }); }; dojo._isBodyLtr = function(){ return "_bodyLtr" in d? d._bodyLtr : - d._bodyLtr = (d.body().dir || d.doc.documentElement.dir || "ltr").toLowerCase() == "ltr"; // Boolean - } + d._bodyLtr = (d.body().dir || d.doc.documentElement.dir || "ltr").toLowerCase() == "ltr"; // Boolean + }; dojo._getIeDocumentElementOffset = function(){ // summary: @@ -1058,7 +1074,7 @@ if(dojo.isIE || dojo.isOpera){ //NOTE: assumes we're being called in an IE browser - var de = d.doc.documentElement; // only deal with HTML element here, _abs handles body/quirks + var de = d.doc.documentElement; // only deal with HTML element here, _abs handles body/quirks if(d.isIE < 8){ var r = de.getBoundingClientRect(); // works well for IE6+ @@ -1083,18 +1099,22 @@ if(dojo.isIE || dojo.isOpera){ }; dojo._fixIeBiDiScrollLeft = function(/*Integer*/ scrollLeft){ - // In RTL direction, scrollLeft should be a negative value, but IE < 8 + // In RTL direction, scrollLeft should be a negative value, but IE // returns a positive one. All codes using documentElement.scrollLeft // must call this function to fix this error, otherwise the position // will offset to right when there is a horizontal scrollbar. - var dd = d.doc; - if(d.isIE < 8 && !d._isBodyLtr()){ - var de = d.isQuirks ? dd.body : dd.documentElement; - return scrollLeft + de.clientWidth - de.scrollWidth; // Integer + var ie = d.isIE; + if(ie && !d._isBodyLtr()){ + var qk = d.isQuirks, + de = qk ? d.doc.body : d.doc.documentElement; + if(ie == 6 && !qk && d.global.frameElement && de.scrollHeight > de.clientHeight){ + scrollLeft += de.clientLeft; // workaround ie6+strict+rtl+iframe+vertical-scrollbar bug where clientWidth is too small by clientLeft pixels + } + return (ie < 8 || qk) ? (scrollLeft + de.clientWidth - de.scrollWidth) : -scrollLeft; // Integer } return scrollLeft; // Integer - } + }; // FIXME: need a setter for coords or a moveTo!! dojo._abs = dojo.position = function(/*DomNode*/node, /*Boolean?*/includeScroll){ @@ -1112,10 +1132,9 @@ if(dojo.isIE || dojo.isOpera){ // Uses the border-box model (inclusive of border and padding but // not margin). Does not act as a setter. - var db = d.body(), dh = db.parentNode, ret; node = byId(node); - if(node["getBoundingClientRect"]){ - // IE6+, FF3+, super-modern WebKit, and Opera 9.6+ all take this branch + var db = d.body(), + dh = db.parentNode, ret = node.getBoundingClientRect(); ret = { x: ret.left, y: ret.top, w: ret.right - ret.left, h: ret.bottom - ret.top }; if(d.isIE){ @@ -1132,60 +1151,7 @@ if(dojo.isIE || dojo.isOpera){ ret.x -= px(dh, cs.marginLeft) + px(dh, cs.borderLeftWidth); ret.y -= px(dh, cs.marginTop) + px(dh, cs.borderTopWidth); } - }else{ - // FF2 and older WebKit - ret = { - x: 0, - y: 0, - w: node.offsetWidth, - h: node.offsetHeight - }; - if(node["offsetParent"]){ - ret.x -= _sumAncestorProperties(node, "scrollLeft"); - ret.y -= _sumAncestorProperties(node, "scrollTop"); - - var curnode = node; - do{ - var n = curnode.offsetLeft, - t = curnode.offsetTop; - ret.x += isNaN(n) ? 0 : n; - ret.y += isNaN(t) ? 0 : t; - - cs = gcs(curnode); - if(curnode != node){ - if(d.isMoz){ - // tried left+right with differently sized left/right borders - // it really is 2xleft border in FF, not left+right, even in RTL! - ret.x += 2 * px(curnode,cs.borderLeftWidth); - ret.y += 2 * px(curnode,cs.borderTopWidth); - }else{ - ret.x += px(curnode, cs.borderLeftWidth); - ret.y += px(curnode, cs.borderTopWidth); - } - } - // static children in a static div in FF2 are affected by the div's border as well - // but offsetParent will skip this div! - if(d.isMoz && cs.position=="static"){ - var parent=curnode.parentNode; - while(parent!=curnode.offsetParent){ - var pcs=gcs(parent); - if(pcs.position=="static"){ - ret.x += px(curnode,pcs.borderLeftWidth); - ret.y += px(curnode,pcs.borderTopWidth); - } - parent=parent.parentNode; - } - } - curnode = curnode.offsetParent; - }while((curnode != dh) && curnode); - }else if(node.x && node.y){ - ret.x += isNaN(node.x) ? 0 : node.x; - ret.y += isNaN(node.y) ? 0 : node.y; - } - } - // account for document scrolling - // if offsetParent is used, ret value already includes scroll position - // so we may have to actually remove that value if !includeScroll + // account for document scrolling if(includeScroll){ var scroll = d._docScroll(); ret.x += scroll.x; @@ -1193,7 +1159,7 @@ if(dojo.isIE || dojo.isOpera){ } return ret; // Object - } + }; dojo.coords = function(/*DomNode|String*/node, /*Boolean?*/includeScroll){ // summary: @@ -1215,7 +1181,7 @@ if(dojo.isIE || dojo.isOpera){ mb.x = abs.x; mb.y = abs.y; return mb; - } + }; // ============================= // Element attribute Functions @@ -1277,7 +1243,7 @@ if(dojo.isIE || dojo.isOpera){ // given element, and false otherwise var lc = name.toLowerCase(); return _forcePropNames[_propNames[lc] || name] || _hasAttr(byId(node), _attrNames[lc] || name); // Boolean - } + }; var _evtHdlrMap = {}, _ctr = 0, _attrId = dojo._scopeName + "attrid", @@ -1447,7 +1413,7 @@ if(dojo.isIE || dojo.isOpera){ // node's attribute // we need _hasAttr() here to guard against IE returning a default value return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null; // Anything - } + }; dojo.removeAttr = function(/*DomNode|String*/ node, /*String*/ name){ // summary: @@ -1457,7 +1423,7 @@ if(dojo.isIE || dojo.isOpera){ // name: // the name of the attribute to remove byId(node).removeAttribute(_fixAttrName(name)); - } + }; dojo.getNodeProp = function(/*DomNode|String*/ node, /*String*/ name){ // summary: @@ -1476,7 +1442,7 @@ if(dojo.isIE || dojo.isOpera){ // node's attribute var attrName = _attrNames[lc] || name; return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null; // Anything - } + }; dojo.create = function(tag, attrs, refNode, pos){ // summary: @@ -1491,7 +1457,7 @@ if(dojo.isIE || dojo.isOpera){ // Attributes are set by passing the optional object through `dojo.attr`. // See `dojo.attr` for noted caveats and nuances, and API if applicable. //| - // Placement is done via `dojo.place`, assuming the new node to be the action + // Placement is done via `dojo.place`, assuming the new node to be the action // node, passing along the optional reference node and position. // // tag: String|DomNode @@ -1529,7 +1495,7 @@ if(dojo.isIE || dojo.isOpera){ // | var n = dojo.create("div", null, dojo.body()); // // example: - // Create an UL, and populate it with LI's. Place the list as the first-child of a + // Create an UL, and populate it with LI's. Place the list as the first-child of a // node with id="someId": // | var ul = dojo.create("ul", null, "someId", "first"); // | var items = ["one", "two", "three", "four"]; @@ -1559,7 +1525,7 @@ if(dojo.isIE || dojo.isOpera){ if(attrs){ d.attr(tag, attrs); } if(refNode){ d.place(tag, refNode, pos); } return tag; // DomNode - } + }; /*===== dojo.empty = function(node){ @@ -1627,11 +1593,13 @@ if(dojo.isIE || dojo.isOpera){ // generate start/end tag strings to use // for the injection for each special tag wrap case. for(var param in tagWrap){ - var tw = tagWrap[param]; - tw.pre = param == "option" ? '<select multiple="multiple">' : "<" + tw.join("><") + ">"; - tw.post = "</" + tw.reverse().join("></") + ">"; - // the last line is destructive: it reverses the array, - // but we don't care at this point + if(tagWrap.hasOwnProperty(param)){ + var tw = tagWrap[param]; + tw.pre = param == "option" ? '<select multiple="multiple">' : "<" + tw.join("><") + ">"; + tw.post = "</" + tw.reverse().join("></") + ">"; + // the last line is destructive: it reverses the array, + // but we don't care at this point + } } d._toDom = function(frag, doc){ @@ -1674,7 +1642,7 @@ if(dojo.isIE || dojo.isOpera){ df.appendChild(fc); } return df; // DOMNode - } + }; // ============================= // (CSS) Class Functions @@ -1700,6 +1668,7 @@ if(dojo.isIE || dojo.isOpera){ }; var spaces = /\s+/, a1 = [""], + fakeNode = {}, str2array = function(s){ if(typeof s == "string" || s instanceof String){ if(s.indexOf(" ") < 0){ @@ -1805,6 +1774,39 @@ if(dojo.isIE || dojo.isOpera){ if(node[_className] != cls){ node[_className] = cls; } }; + dojo.replaceClass = function(/*DomNode|String*/node, /*String|Array*/addClassStr, /*String|Array?*/removeClassStr){ + // summary: + // Replaces one or more classes on a node if not present. + // Operates more quickly than calling dojo.removeClass and dojo.addClass + // node: + // String ID or DomNode reference to remove the class from. + // addClassStr: + // A String class name to add, or several space-separated class names, + // or an array of class names. + // removeClassStr: + // A String class name to remove, or several space-separated class names, + // or an array of class names. + // + // example: + // | dojo.replaceClass("someNode", "add1 add2", "remove1 remove2"); + // + // example: + // Replace all classes with addMe + // | dojo.replaceClass("someNode", "addMe"); + // + // example: + // Available in `dojo.NodeList()` for multiple toggles + // | dojo.query(".findMe").replaceClass("addMe", "removeMe"); + + node = byId(node); + fakeNode.className = node.className; + dojo.removeClass(fakeNode, removeClassStr); + dojo.addClass(fakeNode, addClassStr); + if(node.className !== fakeNode.className){ + node.className = fakeNode.className; + } + }; + dojo.toggleClass = function(/*DomNode|String*/node, /*String|Array*/classStr, /*Boolean?*/condition){ // summary: // Adds a class to node if not present, or removes if present. diff --git a/lib/dojo/_base/json.js b/lib/dojo/_base/json.js index 4d50400c9..4267c225e 100644 --- a/lib/dojo/_base/json.js +++ b/lib/dojo/_base/json.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo._base.json"]){ //_hasResource checks added by build. dojo._hasResource["dojo._base.json"] = true; dojo.provide("dojo._base.json"); + dojo.fromJson = function(/*String*/ json){ // summary: // Parses a [JSON](http://json.org) string to return a JavaScript object. @@ -16,12 +17,12 @@ dojo.fromJson = function(/*String*/ json){ // Throws for invalid JSON strings, but it does not use a strict JSON parser. It // delegates to eval(). The content passed to this method must therefore come // from a trusted source. - // json: + // json: // a string literal of a JSON item, for instance: // `'{ "foo": [ "bar", 1, { "baz": "thud" } ] }'` return eval("(" + json + ")"); // Object -} +}; dojo._escapeString = function(/*String*/str){ //summary: @@ -31,7 +32,7 @@ dojo._escapeString = function(/*String*/str){ return ('"' + str.replace(/(["\\])/g, '\\$1') + '"'). replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n"). replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r"); // string -} +}; dojo.toJsonIndentStr = "\t"; dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _indentStr){ @@ -75,8 +76,8 @@ dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _ind if(it === null){ return "null"; } - if(dojo.isString(it)){ - return dojo._escapeString(it); + if(dojo.isString(it)){ + return dojo._escapeString(it); } // recurse var recurse = arguments.callee; @@ -149,6 +150,6 @@ dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _ind output.push(newLine + nextIndent + keyStr + ":" + sep + val); } return "{" + output.join("," + sep) + newLine + _indentStr + "}"; // String -} +}; } diff --git a/lib/dojo/_base/lang.js b/lib/dojo/_base/lang.js index 0e9c7c2f9..9061de01e 100644 --- a/lib/dojo/_base/lang.js +++ b/lib/dojo/_base/lang.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo._base.lang"]){ //_hasResource checks added by build. dojo._hasResource["dojo._base.lang"] = true; dojo.provide("dojo._base.lang"); + (function(){ var d = dojo, opts = Object.prototype.toString; @@ -18,14 +19,14 @@ dojo.provide("dojo._base.lang"); // summary: // Return true if it is a String return (typeof it == "string" || it instanceof String); // Boolean - } + }; dojo.isArray = function(/*anything*/ it){ // summary: // Return true if it is an Array. // Does not work on Arrays created in other windows. return it && (it instanceof Array || typeof it == "array"); // Boolean - } + }; dojo.isFunction = function(/*anything*/ it){ // summary: @@ -39,7 +40,7 @@ dojo.provide("dojo._base.lang"); // or null) return it !== undefined && (it === null || typeof it == "object" || d.isArray(it) || d.isFunction(it)); // Boolean - } + }; dojo.isArrayLike = function(/*anything*/ it){ // summary: @@ -58,14 +59,14 @@ dojo.provide("dojo._base.lang"); !d.isString(it) && !d.isFunction(it) && !(it.tagName && it.tagName.toLowerCase() == 'form') && (d.isArray(it) || isFinite(it.length)); - } + }; dojo.isAlien = function(/*anything*/ it){ // summary: // Returns true if it is a built-in function or some other kind of // oddball that *should* report as a function but doesn't return it && !d.isFunction(it) && /\{\s*\[native code\]\s*\}/.test(String(it)); // Boolean - } + }; dojo.extend = function(/*Object*/ constructor, /*Object...*/ props){ // summary: @@ -76,7 +77,7 @@ dojo.provide("dojo._base.lang"); d._mixin(constructor.prototype, arguments[i]); } return constructor; // Object - } + }; dojo._hitchArgs = function(scope, method /*,...*/){ var pre = d._toArray(arguments, 2); @@ -88,8 +89,8 @@ dojo.provide("dojo._base.lang"); var f = named ? (scope||d.global)[method] : method; // invoke with collected args return f && f.apply(scope || this, pre.concat(args)); // mixed - } // Function - } + }; // Function + }; dojo.hitch = function(/*Object*/scope, /*Function|String*/method /*,...*/){ // summary: @@ -97,7 +98,7 @@ dojo.provide("dojo._base.lang"); // This allows for easy use of object member functions // in callbacks and other places in which the "this" keyword may // otherwise not reference the expected scope. - // Any number of default positional arguments may be passed as parameters + // Any number of default positional arguments may be passed as parameters // beyond "method". // Each of these values will be used to "placehold" (similar to curry) // for the hitched function. @@ -137,7 +138,7 @@ dojo.provide("dojo._base.lang"); return function(){ return scope[method].apply(scope, arguments || []); }; // Function } return !scope ? method : function(){ return method.apply(scope, arguments || []); }; // Function - } + }; /*===== dojo.delegate = function(obj, props){ @@ -181,7 +182,7 @@ dojo.provide("dojo._base.lang"); d._mixin(tmp, props); } return tmp; // Object - } + }; })(); /*===== @@ -230,7 +231,7 @@ dojo.provide("dojo._base.lang"); // | dojo.hitch(null, funcName, ...); var arr = [ null ]; return d.hitch.apply(d, arr.concat(d._toArray(arguments))); // Function - } + }; var extraNames = d._extraNames, extraLen = extraNames.length, empty = {}; @@ -250,6 +251,10 @@ dojo.provide("dojo._base.lang"); // Date return new Date(o.getTime()); // Date } + if(o instanceof RegExp){ + // RegExp + return new RegExp(o); // RegExp + } var r, i, l, s, name; if(d.isArray(o)){ // array @@ -288,7 +293,7 @@ dojo.provide("dojo._base.lang"); } } return r; // Object - } + }; /*===== dojo.trim = function(str){ @@ -317,7 +322,7 @@ dojo.provide("dojo._base.lang"); dojo.replace = function(tmpl, map, pattern){ // summary: // Performs parameterized substitutions on a string. Throws an - // exception if any parameter is unmatched. + // exception if any parameter is unmatched. // tmpl: String // String to be used as a template. // map: Object|Function diff --git a/lib/dojo/_base/query-sizzle.js b/lib/dojo/_base/query-sizzle.js index 5d160ec55..aad4e824d 100644 --- a/lib/dojo/_base/query-sizzle.js +++ b/lib/dojo/_base/query-sizzle.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -20,11 +20,7 @@ dojo._hasResource["dojo._base.query"] = true; * Finally, dojo.provide/require added. */ -//This file gets copied to dojo/_base/query.js, so set the provide accordingly. -if(typeof dojo != "undefined"){ - dojo.provide("dojo._base.query"); - dojo.require("dojo._base.NodeList"); - +var startDojoMappings= function(dojo) { //Start Dojo mappings. dojo.query = function(/*String*/ query, /*String|DOMNode?*/ root, /*Function?*/listCtor){ listCtor = listCtor || dojo.NodeList; @@ -45,16 +41,16 @@ if(typeof dojo != "undefined"){ } return dojo.Sizzle(query, root, new listCtor()); - } + }; dojo._filterQueryResult = function(nodeList, simpleFilter){ return dojo.Sizzle.filter(simpleFilter, nodeList); - } -} + }; +}; //Main Sizzle code follows... //ns argument, added for dojo, used at the end of the file. -;(function(ns){ +var defineSizzle= function(ns){ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|[^[\]]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g, done = 0, @@ -862,8 +858,20 @@ var contains = document.compareDocumentPosition ? function(a, b){ // EXPOSE -(ns || window).Sizzle = Sizzle; +ns.Sizzle = Sizzle; -})(typeof dojo == "undefined" ? null : dojo); +}; + +if (this["dojo"]) { + var defined= 0; + if (!defined) { + // must be in a built version that stripped out the define above + dojo.provide("dojo._base.query"); + dojo.require("dojo._base.NodeList"); + defineSizzle(dojo); + } // else must be in a source version (or a build that likes define) +} else { + defineSizzle(window); +} } diff --git a/lib/dojo/_base/query.js b/lib/dojo/_base/query.js index 7b9878e47..59411952f 100644 --- a/lib/dojo/_base/query.js +++ b/lib/dojo/_base/query.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -7,12 +7,7 @@ if(!dojo._hasResource["dojo._base.query"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.query"] = true; -if(typeof dojo != "undefined"){ - dojo.provide("dojo._base.query"); - dojo.require("dojo._base.NodeList"); - dojo.require("dojo._base.lang"); - -} +(function(){ /* dojo.query() architectural overview: @@ -46,7 +41,7 @@ if(typeof dojo != "undefined"){ 5.) matched nodes are pruned to ensure they are unique (if necessary) */ -;(function(d){ +var defineQuery= function(d){ // define everything in a closure for compressability reasons. "d" is an // alias to "dojo" (or the toolkit alias object, e.g., "acme"). @@ -54,7 +49,7 @@ if(typeof dojo != "undefined"){ // Toolkit aliases //////////////////////////////////////////////////////////////////////// - // if you are extracing dojo.query for use in your own system, you will + // if you are extracting dojo.query for use in your own system, you will // need to provide these methods and properties. No other porting should be // necessary, save for configuring the system to use a class other than // dojo.NodeList as the return instance instantiator @@ -65,7 +60,7 @@ if(typeof dojo != "undefined"){ // d.isOpera; // float // d.isWebKit; // float // d.doc ; // document element - var qlc = d._NodeListCtor = d.NodeList; + var qlc = (d._NodeListCtor = d.NodeList); var getDoc = function(){ return d.doc; }; // NOTE(alex): the spec is idiotic. CSS queries should ALWAYS be case-sensitive, but nooooooo @@ -96,7 +91,7 @@ if(typeof dojo != "undefined"){ //////////////////////////////////////////////////////////////////////// var getQueryParts = function(query){ - // summary: + // summary: // state machine for query tokenization // description: // instead of using a brittle and slow regex-based CSS parser, @@ -105,16 +100,16 @@ if(typeof dojo != "undefined"){ // the same query run multiple times or under different root nodes // does not re-parse the selector expression but instead uses the // cached data structure. The state machine implemented here - // terminates on the last " " (space) charachter and returns an + // terminates on the last " " (space) character and returns an // ordered array of query component structures (or "parts"). Each // part represents an operator or a simple CSS filtering // expression. The structure for parts is documented in the code // below. - // NOTE: + // NOTE: // this code is designed to run fast and compress well. Sacrifices - // to readibility and maintainability have been made. Your best + // to readability and maintainability have been made. Your best // bet when hacking the tokenizer is to put The Donnas on *really* // loud (may we recommend their "Spend The Night" release?) and // just assume you're gonna make mistakes. Keep the unit tests @@ -130,7 +125,7 @@ if(typeof dojo != "undefined"){ } var ts = function(/*Integer*/ s, /*Integer*/ e){ - // trim and slice. + // trim and slice. // take an index to start a string slice from and an end position // and return a trimmed copy of that sub-string @@ -138,12 +133,12 @@ if(typeof dojo != "undefined"){ } // the overall data graph of the full query, as represented by queryPart objects - var queryParts = []; + var queryParts = []; // state keeping vars - var inBrackets = -1, inParens = -1, inMatchFor = -1, - inPseudo = -1, inClass = -1, inId = -1, inTag = -1, + var inBrackets = -1, inParens = -1, inMatchFor = -1, + inPseudo = -1, inClass = -1, inId = -1, inTag = -1, lc = "", cc = "", pStart; // iteration vars @@ -152,7 +147,7 @@ if(typeof dojo != "undefined"){ currentPart = null, // data structure representing the entire clause _cp = null; // the current pseudo or attr matcher - // several temporary variables are assigned to this structure durring a + // several temporary variables are assigned to this structure during a // potential sub-expression match: // attr: // a string representing the current full attribute match in a @@ -207,9 +202,9 @@ if(typeof dojo != "undefined"){ // needs to do any iteration. Many simple selectors don't, and // we can avoid significant construction-time work by advising // the system to skip them - currentPart.loops = ( - currentPart.pseudos.length || - currentPart.attrs.length || + currentPart.loops = ( + currentPart.pseudos.length || + currentPart.attrs.length || currentPart.classes.length ); currentPart.oquery = currentPart.query = ts(pStart, x); // save the full expression as a string @@ -239,9 +234,9 @@ if(typeof dojo != "undefined"){ currentPart.infixOper = queryParts.pop(); currentPart.query = currentPart.infixOper.query + " " + currentPart.query; /* - console.debug( "swapping out the infix", - currentPart.infixOper, - "and attaching it to", + console.debug( "swapping out the infix", + currentPart.infixOper, + "and attaching it to", currentPart); */ } @@ -250,15 +245,15 @@ if(typeof dojo != "undefined"){ currentPart = null; } - // iterate over the query, charachter by charachter, building up a + // iterate over the query, character by character, building up a // list of query part objects for(; lc=cc, cc=query.charAt(x), x < ql; x++){ // cc: the current character in the match - // lc: the last charachter (if any) + // lc: the last character (if any) // someone is trying to escape something, so don't try to match any // fragments. We assume we're inside a literal. - if(lc == "\\"){ continue; } + if(lc == "\\"){ continue; } if(!currentPart){ // a part was just ended or none has yet been created // NOTE: I hate all this alloc, but it's shorter than writing tons of if's pStart = x; @@ -301,7 +296,7 @@ if(typeof dojo != "undefined"){ // the beginning of a match, which should be a tag name. This // might fault a little later on, but we detect that and this // iteration will still be fine. - inTag = x; + inTag = x; } if(inBrackets >= 0){ @@ -309,7 +304,7 @@ if(typeof dojo != "undefined"){ if(cc == "]"){ // if we're in a [...] clause and we end, do assignment if(!_cp.attr){ // no attribute match was previously begun, so we - // assume this is an attribute existance match in the + // assume this is an attribute existence match in the // form of [someAttributeName] _cp.attr = ts(inBrackets+1, x); }else{ @@ -320,19 +315,19 @@ if(typeof dojo != "undefined"){ var cmf = _cp.matchFor; if(cmf){ // try to strip quotes from the matchFor value. We want - // [attrName=howdy] to match the same + // [attrName=howdy] to match the same // as [attrName = 'howdy' ] if( (cmf.charAt(0) == '"') || (cmf.charAt(0) == "'") ){ _cp.matchFor = cmf.slice(1, -1); } } - // end the attribute by adding it to the list of attributes. + // end the attribute by adding it to the list of attributes. currentPart.attrs.push(_cp); _cp = null; // necessary? inBrackets = inMatchFor = -1; }else if(cc == "="){ // if the last char was an operator prefix, make sure we - // record it along with the "=" operator. + // record it along with the "=" operator. var addToCc = ("|~^$*".indexOf(lc) >=0 ) ? lc : ""; _cp.type = addToCc+cc; _cp.attr = ts(inBrackets+1, x-addToCc.length); @@ -341,7 +336,7 @@ if(typeof dojo != "undefined"){ // now look for other clause parts }else if(inParens >= 0){ // if we're in a parenthetical expression, we need to figure - // out if it's attached to a pseduo-selector rule like + // out if it's attached to a pseudo-selector rule like // :nth-child(1) if(cc == ")"){ if(inPseudo >= 0){ @@ -362,7 +357,7 @@ if(typeof dojo != "undefined"){ endAll(); inPseudo = x; }else if(cc == "["){ - // start of an attribute match. + // start of an attribute match. endAll(); inBrackets = x; // provide a new structure for the attribute match to fill-in @@ -376,15 +371,15 @@ if(typeof dojo != "undefined"){ // expression if we're already inside a pseudo-selector match if(inPseudo >= 0){ // provide a new structure for the pseudo match to fill-in - _cp = { - name: ts(inPseudo+1, x), + _cp = { + name: ts(inPseudo+1, x), value: null } currentPart.pseudos.push(_cp); } inParens = x; }else if( - (cc == " ") && + (cc == " ") && // if it's a space char and the last char is too, consume the // current one without doing more work (lc != cc) @@ -404,7 +399,7 @@ if(typeof dojo != "undefined"){ // the basic building block of the yes/no chaining system. agree(f1, // f2) generates a new function which returns the boolean results of // both of the passed functions to a single logical-anded result. If - // either are not possed, the other is used exclusively. + // either are not passed, the other is used exclusively. if(!first){ return second; } if(!second){ return first; } @@ -456,7 +451,7 @@ if(typeof dojo != "undefined"){ } }, "$=": function(attr, value){ - // E[foo$="bar"] + // E[foo$="bar"] // an E element whose "foo" attribute value ends exactly // with the string "bar" var tval = " "+value; @@ -466,7 +461,7 @@ if(typeof dojo != "undefined"){ } }, "~=": function(attr, value){ - // E[foo~="bar"] + // E[foo~="bar"] // an E element whose "foo" attribute value is a list of // space-separated values, one of which is exactly equal // to "bar" @@ -532,7 +527,7 @@ if(typeof dojo != "undefined"){ if(!tret){ return -1; } var l = tret.length; - // we calcuate the parent length as a cheap way to invalidate the + // we calculate the parent length as a cheap way to invalidate the // cache. It's not 100% accurate, but it's much more honest than what // other libraries do if( cl == l && ci >= 0 && cl >= 0 ){ @@ -544,11 +539,11 @@ if(typeof dojo != "undefined"){ root["_l"] = l; ci = -1; for(var te = root["firstElementChild"]||root["firstChild"]; te; te = te[_ns]){ - if(_simpleNodeTest(te)){ + if(_simpleNodeTest(te)){ te["_i"] = ++i; - if(node === te){ + if(node === te){ // NOTE: - // shortcuting the return at this step in indexing works + // shortcutting the return at this step in indexing works // very well for benchmarking but we avoid it here since // it leads to potential O(n^2) behavior in sequential // getNodexIndex operations on a previously un-indexed @@ -579,7 +574,7 @@ if(typeof dojo != "undefined"){ "first-child": function(){ return _lookLeft; }, "last-child": function(){ return _lookRight; }, "only-child": function(name, condition){ - return function(node){ + return function(node){ if(!_lookLeft(node)){ return false; } if(!_lookRight(node)){ return false; } return true; @@ -610,7 +605,7 @@ if(typeof dojo != "undefined"){ }, "not": function(name, condition){ var p = getQueryParts(condition)[0]; - var ignores = { el: 1 }; + var ignores = { el: 1 }; if(p.tag != "*"){ ignores.tag = 1; } @@ -670,7 +665,7 @@ if(typeof dojo != "undefined"){ } }; - var defaultGetter = (d.isIE) ? function(cond){ + var defaultGetter = (d.isIE < 9 || (dojo.isIE && dojo.isQuirks)) ? function(cond){ var clc = cond.toLowerCase(); if(clc == "class"){ cond = "className"; } return function(elem){ @@ -684,7 +679,7 @@ if(typeof dojo != "undefined"){ var getSimpleFilterFunc = function(query, ignores){ // generates a node tester function based on the passed query part. The - // query part is one of the structures generatd by the query parser + // query part is one of the structures generated by the query parser // when it creates the query AST. The "ignores" object specifies which // (if any) tests to skip, allowing the system to avoid duplicating // work where it may have already been taken into account by other @@ -715,7 +710,7 @@ if(typeof dojo != "undefined"){ if(isWildcard){ cname = cname.substr(0, cname.length-1); } - // I dislike the regex thing, even if memozied in a cache, but it's VERY short + // I dislike the regex thing, even if memoized in a cache, but it's VERY short var re = new RegExp("(?:^|\\s)" + cname + (isWildcard ? ".*" : "") + "(?:\\s|$)"); */ var re = new RegExp("(?:^|\\s)" + cname + "(?:\\s|$)"); @@ -753,7 +748,7 @@ if(typeof dojo != "undefined"){ if(!("id" in ignores)){ if(query.id){ - ff = agree(ff, function(elem){ + ff = agree(ff, function(elem){ return (!!elem && (elem.id == query.id)); }); } @@ -761,7 +756,7 @@ if(typeof dojo != "undefined"){ if(!ff){ if(!("default" in ignores)){ - ff = yesman; + ff = yesman; } } return ff; @@ -812,7 +807,7 @@ if(typeof dojo != "undefined"){ _simpleNodeTest(te) && (!bag || _isUnique(te, bag)) && (filterFunc(te, x)) - ){ + ){ ret.push(te); } } @@ -854,7 +849,7 @@ if(typeof dojo != "undefined"){ // filters them. The search may be specialized by infix operators // (">", "~", or "+") else it will default to searching all // descendants (the " " selector). Once a group of children is - // founde, a test function is applied to weed out the ones we + // found, a test function is applied to weed out the ones we // don't want. Many common cases can be fast-pathed. We spend a // lot of cycles to create a dispatcher that doesn't do more work // than necessary at any point since, unlike this function, the @@ -907,7 +902,7 @@ if(typeof dojo != "undefined"){ var filterFunc = getSimpleFilterFunc(query, { el: 1 }); var qt = query.tag; var wildcardTag = ("*" == qt); - var ecs = getDoc()["getElementsByClassName"]; + var ecs = getDoc()["getElementsByClassName"]; if(!oper){ // if there's no infix operator, then it's a descendant query. ID @@ -917,8 +912,8 @@ if(typeof dojo != "undefined"){ // testing shows that the overhead of yesman() is acceptable // and can save us some bytes vs. re-defining the function // everywhere. - filterFunc = (!query.loops && wildcardTag) ? - yesman : + filterFunc = (!query.loops && wildcardTag) ? + yesman : getSimpleFilterFunc(query, { el: 1, id: 1 }); retFunc = function(root, arr){ @@ -933,9 +928,9 @@ if(typeof dojo != "undefined"){ } } }else if( - ecs && + ecs && // isAlien check. Workaround for Prototype.js being totally evil/dumb. - /\{\s*\[native code\]\s*\}/.test(String(ecs)) && + /\{\s*\[native code\]\s*\}/.test(String(ecs)) && query.classes.length && !cssCaseBug ){ @@ -1101,8 +1096,8 @@ if(typeof dojo != "undefined"){ // We need te detect the right "internal" webkit version to make this work. var wk = "WebKit/"; var is525 = ( - d.isWebKit && - (nua.indexOf(wk) > 0) && + d.isWebKit && + (nua.indexOf(wk) > 0) && (parseFloat(nua.split(wk)[1]) > 528) ); @@ -1113,7 +1108,7 @@ if(typeof dojo != "undefined"){ var qsa = "querySelectorAll"; var qsaAvail = ( - !!getDoc()[qsa] && + !!getDoc()[qsa] && // see #5832 (!d.isSafari || (d.isSafari > 3.1) || is525 ) ); @@ -1142,7 +1137,7 @@ if(typeof dojo != "undefined"){ var domCached = _queryFuncCacheDOM[query]; if(domCached){ return domCached; } - // TODO: + // TODO: // today we're caching DOM and QSA branches separately so we // recalc useQSA every time. If we had a way to tag root+query // efficiently, we'd be in good shape to do a global cache. @@ -1156,11 +1151,11 @@ if(typeof dojo != "undefined"){ forceDOM = true; } - var useQSA = ( + var useQSA = ( qsaAvail && (!forceDOM) && // as per CSS 3, we can't currently start w/ combinator: // http://www.w3.org/TR/css3-selectors/#w3cselgrammar - (specials.indexOf(qcz) == -1) && + (specials.indexOf(qcz) == -1) && // IE's QSA impl sucks on pseudos (!d.isIE || (query.indexOf(":") == -1)) && @@ -1173,11 +1168,11 @@ if(typeof dojo != "undefined"){ // elements, even though according to spec, selected options should // match :checked. So go nonQSA for it: // http://bugs.dojotoolkit.org/ticket/5179 - (query.indexOf(":contains") == -1) && (query.indexOf(":checked") == -1) && + (query.indexOf(":contains") == -1) && (query.indexOf(":checked") == -1) && (query.indexOf("|=") == -1) // some browsers don't grok it ); - // TODO: + // TODO: // if we've got a descendant query (e.g., "> .thinger" instead of // just ".thinger") in a QSA-able doc, but are passed a child as a // root, it should be possible to give the item a synthetic ID and @@ -1186,7 +1181,7 @@ if(typeof dojo != "undefined"){ if(useQSA){ - var tq = (specials.indexOf(query.charAt(query.length-1)) >= 0) ? + var tq = (specials.indexOf(query.charAt(query.length-1)) >= 0) ? (query + " *") : query; return _queryFuncCacheQSA[query] = function(root){ try{ @@ -1213,9 +1208,9 @@ if(typeof dojo != "undefined"){ }else{ // DOM branch var parts = query.split(/\s*,\s*/); - return _queryFuncCacheDOM[query] = ((parts.length < 2) ? + return _queryFuncCacheDOM[query] = ((parts.length < 2) ? // if not a compound query (e.g., ".foo, .bar"), cache and return a dispatcher - getStepQueryFunc(query) : + getStepQueryFunc(query) : // if it *is* a complex query, break it up into its // constituent parts and return a dispatcher that will // merge the parts when run @@ -1245,7 +1240,7 @@ if(typeof dojo != "undefined"){ }else{ return node.uniqueID; } - } : + } : function(node){ return (node._uid || (node._uid = ++_zipIdx)); }; @@ -1254,7 +1249,7 @@ if(typeof dojo != "undefined"){ // to flatten a list of unique items, but rather just tell if the item in // question is already in the bag. Normally we'd just use hash lookup to do // this for us but IE's DOM is busted so we can't really count on that. On - // the upside, it gives us a built in unique ID function. + // the upside, it gives us a built in unique ID function. var _isUnique = function(node, bag){ if(!bag){ return 1; } var id = _nodeUID(node); @@ -1266,7 +1261,7 @@ if(typeof dojo != "undefined"){ // returning a list of "uniques", hopefully in doucment order var _zipIdxName = "_zipIdx"; var _zip = function(arr){ - if(arr && arr.nozip){ + if(arr && arr.nozip){ return (qlc._wrap) ? qlc._wrap(arr) : arr; } // var ret = new d._NodeListCtor(); @@ -1285,7 +1280,7 @@ if(typeof dojo != "undefined"){ var szidx = _zipIdx+""; arr[0].setAttribute(_zipIdxName, szidx); for(var x = 1, te; te = arr[x]; x++){ - if(arr[x].getAttribute(_zipIdxName) != szidx){ + if(arr[x].getAttribute(_zipIdxName) != szidx){ ret.push(te); } te.setAttribute(_zipIdxName, szidx); @@ -1293,7 +1288,7 @@ if(typeof dojo != "undefined"){ }else if(d.isIE && arr.commentStrip){ try{ for(var x = 1, te; te = arr[x]; x++){ - if(_isElement(te)){ + if(_isElement(te)){ ret.push(te); } } @@ -1301,7 +1296,7 @@ if(typeof dojo != "undefined"){ }else{ if(arr[0]){ arr[0][_zipIdxName] = _zipIdx; } for(var x = 1, te; te = arr[x]; x++){ - if(arr[x][_zipIdxName] != _zipIdx){ + if(arr[x][_zipIdxName] != _zipIdx){ ret.push(te); } te[_zipIdxName] = _zipIdx; @@ -1331,11 +1326,11 @@ if(typeof dojo != "undefined"){ // * class selectors (e.g., `.foo`) // * node type selectors like `span` // * ` ` descendant selectors - // * `>` child element selectors + // * `>` child element selectors // * `#foo` style ID selectors // * `*` universal selector - // * `~`, the immediately preceeded-by sibling selector - // * `+`, the preceeded-by sibling selector + // * `~`, the preceded-by sibling selector + // * `+`, the immediately preceded-by sibling selector // * attribute queries: // | * `[foo]` attribute presence selector // | * `[foo='bar']` attribute value exact match @@ -1356,14 +1351,14 @@ if(typeof dojo != "undefined"){ // palette of selectors and when combined with functions for // manipulation presented by dojo.NodeList, many types of DOM // manipulation operations become very straightforward. - // + // // Unsupported Selectors: // ---------------------- // // While dojo.query handles many CSS3 selectors, some fall outside of - // what's resaonable for a programmatic node querying engine to + // what's reasonable for a programmatic node querying engine to // handle. Currently unsupported selectors include: - // + // // * namespace-differentiated selectors of any form // * all `::` pseduo-element selectors // * certain pseduo-selectors which don't get a lot of day-to-day use: @@ -1372,10 +1367,10 @@ if(typeof dojo != "undefined"){ // | * `:root`, `:active`, `:hover`, `:visisted`, `:link`, // `:enabled`, `:disabled` // * `:*-of-type` pseudo selectors - // + // // dojo.query and XML Documents: // ----------------------------- - // + // // `dojo.query` (as of dojo 1.2) supports searching XML documents // in a case-sensitive manner. If an HTML document is served with // a doctype that forces case-sensitivity (e.g., XHTML 1.1 @@ -1485,12 +1480,12 @@ if(typeof dojo != "undefined"){ // NOTE: // Opera in XHTML mode doesn't detect case-sensitivity correctly // and it's not clear that there's any way to test for it - caseSensitive = (root.contentType && root.contentType=="application/xml") || + caseSensitive = (root.contentType && root.contentType=="application/xml") || (d.isOpera && (root.doctype || od.toString() == "[object XMLDocument]")) || - (!!od) && + (!!od) && (d.isIE ? od.xml : (root.xmlVersion||od.xmlVersion)); - // NOTE: + // NOTE: // adding "true" as the 2nd argument to getQueryFunc is useful for // testing the DOM branch without worrying about the // behavior/performance of the QSA branch. @@ -1507,16 +1502,98 @@ if(typeof dojo != "undefined"){ // FIXME: need to add infrastructure for post-filtering pseudos, ala :last d.query.pseudos = pseudos; - // one-off function for filtering a NodeList based on a simple selector - d._filterQueryResult = function(nodeList, simpleFilter){ - var tmpNodeList = new d._NodeListCtor(); - var filterFunc = getSimpleFilterFunc(getQueryParts(simpleFilter)[0]); + // function for filtering a NodeList based on a selector, optimized for simple selectors + d._filterQueryResult = function(/*NodeList*/ nodeList, /*String*/ filter, /*String|DOMNode?*/ root){ + var tmpNodeList = new d._NodeListCtor(), + parts = getQueryParts(filter), + filterFunc = + (parts.length == 1 && !/[^\w#\.]/.test(filter)) ? + getSimpleFilterFunc(parts[0]) : + function(node) { + return dojo.query(filter, root).indexOf(node) != -1; + }; for(var x = 0, te; te = nodeList[x]; x++){ if(filterFunc(te)){ tmpNodeList.push(te); } } return tmpNodeList; } -})(this["queryPortability"]||this["acme"]||dojo); +};//end defineQuery + +var defineAcme= function(){ + // a self-sufficient query impl + acme = { + trim: function(/*String*/ str){ + // summary: + // trims whitespaces from both sides of the string + str = str.replace(/^\s+/, ''); + for(var i = str.length - 1; i >= 0; i--){ + if(/\S/.test(str.charAt(i))){ + str = str.substring(0, i + 1); + break; + } + } + return str; // String + }, + forEach: function(/*String*/ arr, /*Function*/ callback, /*Object?*/ thisObject){ + // summary: + // an iterator function that passes items, indexes, + // and the array to a callback + if(!arr || !arr.length){ return; } + for(var i=0,l=arr.length; i<l; ++i){ + callback.call(thisObject||window, arr[i], i, arr); + } + }, + byId: function(id, doc){ + // summary: + // a function that return an element by ID, but also + // accepts nodes safely + if(typeof id == "string"){ + return (doc||document).getElementById(id); // DomNode + }else{ + return id; // DomNode + } + }, + // the default document to search + doc: document, + // the constructor for node list objects returned from query() + NodeList: Array + }; + + // define acme.isIE, acme.isSafari, acme.isOpera, etc. + var n = navigator; + var dua = n.userAgent; + var dav = n.appVersion; + var tv = parseFloat(dav); + acme.isOpera = (dua.indexOf("Opera") >= 0) ? tv: undefined; + acme.isKhtml = (dav.indexOf("Konqueror") >= 0) ? tv : undefined; + acme.isWebKit = parseFloat(dua.split("WebKit/")[1]) || undefined; + acme.isChrome = parseFloat(dua.split("Chrome/")[1]) || undefined; + var index = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0); + if(index && !acme.isChrome){ + acme.isSafari = parseFloat(dav.split("Version/")[1]); + if(!acme.isSafari || parseFloat(dav.substr(index + 7)) <= 419.3){ + acme.isSafari = 2; + } + } + if(document.all && !acme.isOpera){ + acme.isIE = parseFloat(dav.split("MSIE ")[1]) || undefined; + } + + Array._wrap = function(arr){ return arr; }; + return acme; +}; + + //prefers queryPortability, then acme, then dojo + if(this["dojo"]){ + dojo.provide("dojo._base.query"); + dojo.require("dojo._base.NodeList"); + dojo.require("dojo._base.lang"); + defineQuery(this["queryPortability"]||this["acme"]||dojo); + }else{ + defineQuery(this["queryPortability"]||this["acme"]||defineAcme()); + } + +})(); /* */ diff --git a/lib/dojo/_base/window.js b/lib/dojo/_base/window.js index 5c6e2e952..143bad610 100644 --- a/lib/dojo/_base/window.js +++ b/lib/dojo/_base/window.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo._base.window"]){ //_hasResource checks added by buil dojo._hasResource["dojo._base.window"] = true; dojo.provide("dojo._base.window"); + /*===== dojo.doc = { // summary: @@ -34,7 +35,7 @@ dojo.body = function(){ // Note: document.body is not defined for a strict xhtml document // Would like to memoize this, but dojo.doc can change vi dojo.withDoc(). return dojo.doc.body || dojo.doc.getElementsByTagName("body")[0]; // Node -} +}; dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocument){ // summary: @@ -47,9 +48,9 @@ dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocu dojo.doc = globalDocument; }; -dojo.withGlobal = function( /*Object*/globalObject, - /*Function*/callback, - /*Object?*/thisObject, +dojo.withGlobal = function( /*Object*/globalObject, + /*Function*/callback, + /*Object?*/thisObject, /*Array?*/cbArguments){ // summary: // Invoke callback with globalObject as dojo.global and @@ -68,11 +69,11 @@ dojo.withGlobal = function( /*Object*/globalObject, }finally{ dojo.global = oldGlob; } -} +}; -dojo.withDoc = function( /*DocumentElement*/documentObject, - /*Function*/callback, - /*Object?*/thisObject, +dojo.withDoc = function( /*DocumentElement*/documentObject, + /*Function*/callback, + /*Object?*/thisObject, /*Array?*/cbArguments){ // summary: // Invoke callback with documentObject as dojo.doc. @@ -103,6 +104,5 @@ dojo.withDoc = function( /*DocumentElement*/documentObject, dojo.isQuirks = oldQ; } }; - } diff --git a/lib/dojo/_base/xhr.js b/lib/dojo/_base/xhr.js index 818f8e418..58f1fdb62 100644 --- a/lib/dojo/_base/xhr.js +++ b/lib/dojo/_base/xhr.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -13,6 +13,7 @@ dojo.require("dojo._base.json"); dojo.require("dojo._base.lang"); dojo.require("dojo._base.query"); + (function(){ var _d = dojo, cfg = _d.config; @@ -53,7 +54,7 @@ dojo.require("dojo._base.query"); var type = (item.type||"").toLowerCase(); if(_in && type && !item.disabled){ if(type == "radio" || type == "checkbox"){ - if(item.checked){ ret = item.value } + if(item.checked){ ret = item.value; } }else if(item.multiple){ ret = []; _d.query("option", item).forEach(function(opt){ @@ -67,7 +68,7 @@ dojo.require("dojo._base.query"); } } return ret; // Object - } + }; dojo.formToObject = function(/*DOMNode||String*/ formNode){ // summary: @@ -94,7 +95,7 @@ dojo.require("dojo._base.query"); // yields this object structure as the result of a call to // formToObject(): // - // | { + // | { // | blah: "blah", // | multi: [ // | "thud", @@ -115,7 +116,7 @@ dojo.require("dojo._base.query"); } }); return ret; // Object - } + }; dojo.objectToQuery = function(/*Object*/ map){ // summary: @@ -124,7 +125,7 @@ dojo.require("dojo._base.query"); // example: // this object: // - // | { + // | { // | blah: "blah", // | multi: [ // | "thud", @@ -133,7 +134,7 @@ dojo.require("dojo._base.query"); // | }; // // yields the following query string: - // + // // | "blah=blah&multi=thud&multi=thonk" // FIXME: need to implement encodeAscii!! @@ -154,21 +155,21 @@ dojo.require("dojo._base.query"); } } return pairs.join("&"); // String - } + }; dojo.formToQuery = function(/*DOMNode||String*/ formNode){ // summary: // Returns a URL-encoded string representing the form passed as either a // node or string ID identifying the form to serialize return _d.objectToQuery(_d.formToObject(formNode)); // String - } + }; dojo.formToJson = function(/*DOMNode||String*/ formNode, /*Boolean?*/prettyPrint){ // summary: // Create a serialized JSON string from a form node or string // ID identifying the form to serialize return _d.toJson(_d.formToObject(formNode), prettyPrint); // String - } + }; dojo.queryToObject = function(/*String*/ str){ // summary: @@ -179,7 +180,7 @@ dojo.require("dojo._base.query"); // This string: // // | "foo=bar&foo=baz&thinger=%20spaces%20=blah&zonk=blarg&" - // + // // results in this object structure: // // | { @@ -187,7 +188,7 @@ dojo.require("dojo._base.query"); // | thinger: " spaces =blah", // | zonk: "blarg" // | } - // + // // Note that spaces and other urlencoded entities are correctly // handled. @@ -212,7 +213,7 @@ dojo.require("dojo._base.query"); } }); return ret; // Object - } + }; // need to block async callbacks from snatching this thread as the result // of an async callback might call another sync XHR, this hangs khtml forever @@ -222,7 +223,7 @@ dojo.require("dojo._base.query"); // MOW: remove dojo._contentHandlers alias in 2.0 var handlers = _d._contentHandlers = dojo.contentHandlers = { - // summary: + // summary: // A map of availble XHR transport handle types. Name matches the // `handleAs` attribute passed to XHR calls. // @@ -230,41 +231,41 @@ dojo.require("dojo._base.query"); // A map of availble XHR transport handle types. Name matches the // `handleAs` attribute passed to XHR calls. Each contentHandler is // called, passing the xhr object for manipulation. The return value - // from the contentHandler will be passed to the `load` or `handle` - // functions defined in the original xhr call. - // + // from the contentHandler will be passed to the `load` or `handle` + // functions defined in the original xhr call. + // // example: // Creating a custom content-handler: // | dojo.contentHandlers.makeCaps = function(xhr){ // | return xhr.responseText.toUpperCase(); // | } // | // and later: - // | dojo.xhrGet({ + // | dojo.xhrGet({ // | url:"foo.txt", // | handleAs:"makeCaps", // | load: function(data){ /* data is a toUpper version of foo.txt */ } // | }); - text: function(xhr){ + text: function(xhr){ // summary: A contentHandler which simply returns the plaintext response data - return xhr.responseText; + return xhr.responseText; }, json: function(xhr){ // summary: A contentHandler which returns a JavaScript object created from the response data return _d.fromJson(xhr.responseText || null); }, - "json-comment-filtered": function(xhr){ - // summary: A contentHandler which expects comment-filtered JSON. - // description: - // A contentHandler which expects comment-filtered JSON. + "json-comment-filtered": function(xhr){ + // summary: A contentHandler which expects comment-filtered JSON. + // description: + // A contentHandler which expects comment-filtered JSON. // the json-comment-filtered option was implemented to prevent // "JavaScript Hijacking", but it is less secure than standard JSON. Use // standard JSON instead. JSON prefixing can be used to subvert hijacking. - // + // // Will throw a notice suggesting to use application/json mimetype, as // json-commenting can introduce security issues. To decrease the chances of hijacking, - // use the standard `json` contentHandler, and prefix your "JSON" with: {}&& - // + // use the standard `json` contentHandler, and prefix your "JSON" with: {}&& + // // use djConfig.useCommentedJson = true to turn off the notice if(!dojo.config.useCommentedJson){ console.warn("Consider using the standard mimetype:application/json." @@ -282,7 +283,7 @@ dojo.require("dojo._base.query"); } return _d.fromJson(value.substring(cStartIdx+2, cEndIdx)); }, - javascript: function(xhr){ + javascript: function(xhr){ // summary: A contentHandler which evaluates the response data, expecting it to be valid JavaScript // FIXME: try Moz and IE specific eval variants? @@ -294,7 +295,7 @@ dojo.require("dojo._base.query"); if(_d.isIE && (!result || !result.documentElement)){ //WARNING: this branch used by the xml handling in dojo.io.iframe, //so be sure to test dojo.io.iframe if making changes below. - var ms = function(n){ return "MSXML" + n + ".DOMDocument"; } + var ms = function(n){ return "MSXML" + n + ".DOMDocument"; }; var dp = ["Microsoft.XMLDOM", ms(6), ms(4), ms(3), ms(2)]; _d.some(dp, function(p){ try{ @@ -309,7 +310,7 @@ dojo.require("dojo._base.query"); return result; // DOMDocument }, "json-comment-optional": function(xhr){ - // summary: A contentHandler which checks the presence of comment-filtered JSON and + // summary: A contentHandler which checks the presence of comment-filtered JSON and // alternates between the `json` and `json-comment-filtered` contentHandlers. if(xhr.responseText && /^[^{\[]*\/\*/.test(xhr.responseText)){ return handlers["json-comment-filtered"](xhr); @@ -341,7 +342,7 @@ dojo.require("dojo._base.query"); // handleAs: String? // Acceptable values depend on the type of IO // transport (see specific IO calls for more information). - // rawBody: String? + // rawBody: String? // Sets the raw body for an HTTP request. If this is used, then the content // property is ignored. This is mostly useful for HTTP methods that have // a body to their requests, like PUT or POST. This property can be used instead @@ -486,7 +487,7 @@ dojo.require("dojo._base.query"); /*Function*/canceller, /*Function*/okHandler, /*Function*/errHandler){ - // summary: + // summary: // sets up the Deferred and ioArgs property on the Deferred so it // can be used in an io call. // args: @@ -502,19 +503,19 @@ dojo.require("dojo._base.query"); // object returned from this function. // errHandler: // The first error callback to be registered with Deferred. It has the opportunity - // to do cleanup on an error. It will receive two arguments: error (the + // to do cleanup on an error. It will receive two arguments: error (the // Error object) and dfd, the Deferred object returned from this function. var ioArgs = {args: args, url: args.url}; //Get values from form if requestd. var formObject = null; - if(args.form){ + if(args.form){ var form = _d.byId(args.form); - //IE requires going through getAttributeNode instead of just getAttribute in some form cases, + //IE requires going through getAttributeNode instead of just getAttribute in some form cases, //so use it for all. See #2844 var actnNode = form.getAttributeNode("action"); - ioArgs.url = ioArgs.url || (actnNode ? actnNode.value : null); + ioArgs.url = ioArgs.url || (actnNode ? actnNode.value : null); formObject = _d.formToObject(form); } @@ -587,7 +588,7 @@ dojo.require("dojo._base.query"); // FIXME: need to wire up the xhr object's abort method to something // analagous in the Deferred return d; - } + }; var _deferredCancel = function(/*Deferred*/dfd){ // summary: canceller function for dojo._ioSetArgs call. @@ -604,13 +605,13 @@ dojo.require("dojo._base.query"); err.dojoType="cancel"; } return err; - } + }; var _deferredOk = function(/*Deferred*/dfd){ // summary: okHandler function for dojo._ioSetArgs call. var ret = handlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr); return ret === undefined ? null : ret; - } + }; var _deferError = function(/*Error*/error, /*Deferred*/dfd){ // summary: errHandler function for dojo._ioSetArgs call. @@ -618,7 +619,7 @@ dojo.require("dojo._base.query"); console.error(error); } return error; - } + }; // avoid setting a timer per request. It degrades performance on IE // something fierece if we don't use unified loops. @@ -642,7 +643,7 @@ dojo.require("dojo._base.query"); }; var _watchInFlight = function(){ - //summary: + //summary: // internal method that checks each inflight XMLHttpRequest to see // if it has completed or if the timeout situation applies. @@ -657,7 +658,7 @@ dojo.require("dojo._base.query"); var dfd = tif.dfd; var func = function(){ if(!dfd || dfd.canceled || !tif.validCheck(dfd)){ - _inFlight.splice(i--, 1); + _inFlight.splice(i--, 1); _pubCount -= 1; }else if(tif.ioCheck(dfd)){ _inFlight.splice(i--, 1); @@ -695,7 +696,7 @@ dojo.require("dojo._base.query"); _inFlightIntvl = null; return; } - } + }; dojo._ioCancelAll = function(){ //summary: Cancels all pending IO requests, regardless of IO type @@ -707,7 +708,7 @@ dojo.require("dojo._base.query"); }catch(e){/*squelch*/} }); }catch(e){/*squelch*/} - } + }; //Automatically call cancel all io calls on unload //in IE for trac issue #2357. @@ -730,10 +731,10 @@ dojo.require("dojo._base.query"); _pubCount += 1; _d.publish("/dojo/io/send", [dfd]); } - } + }; _d._ioWatch = function(dfd, validCheck, ioCheck, resHandle){ - // summary: + // summary: // Watches the io request represented by dfd to see if it completes. // dfd: Deferred // The Deferred object to watch. @@ -763,16 +764,16 @@ dojo.require("dojo._base.query"); if(args.sync){ _watchInFlight(); } - } + }; var _defaultContentType = "application/x-www-form-urlencoded"; var _validCheck = function(/*Deferred*/dfd){ return dfd.ioArgs.xhr.readyState; //boolean - } + }; var _ioCheck = function(/*Deferred*/dfd){ return 4 == dfd.ioArgs.xhr.readyState; //boolean - } + }; var _resHandle = function(/*Deferred*/dfd){ var xhr = dfd.ioArgs.xhr; if(_d._isDocumentOk(xhr)){ @@ -783,7 +784,7 @@ dojo.require("dojo._base.query"); err.responseText = xhr.responseText; dfd.errback(err); } - } + }; dojo._ioAddQueryToUrl = function(/*dojo.__IoCallbackArgs*/ioArgs){ //summary: Adds query params discovered by the io deferred construction to the URL. @@ -791,8 +792,8 @@ dojo.require("dojo._base.query"); if(ioArgs.query.length){ ioArgs.url += (ioArgs.url.indexOf("?") == -1 ? "?" : "&") + ioArgs.query; ioArgs.query = null; - } - } + } + }; /*===== dojo.declare("dojo.__XhrArgs", dojo.__IoArgs, { @@ -893,13 +894,13 @@ dojo.require("dojo._base.query"); _d._ioWatch(dfd, _validCheck, _ioCheck, _resHandle); xhr = null; return dfd; // dojo.Deferred - } + }; dojo.xhrGet = function(/*dojo.__XhrArgs*/ args){ - // summary: + // summary: // Sends an HTTP GET request to the server. return _d.xhr("GET", args); // dojo.Deferred - } + }; dojo.rawXhrPost = dojo.xhrPost = function(/*dojo.__XhrArgs*/ args){ // summary: @@ -908,7 +909,7 @@ dojo.require("dojo._base.query"); // postData: // String. Send raw data in the body of the POST request. return _d.xhr("POST", args, true); // dojo.Deferred - } + }; dojo.rawXhrPut = dojo.xhrPut = function(/*dojo.__XhrArgs*/ args){ // summary: @@ -917,13 +918,13 @@ dojo.require("dojo._base.query"); // putData: // String. Send raw data in the body of the PUT request. return _d.xhr("PUT", args, true); // dojo.Deferred - } + }; dojo.xhrDelete = function(/*dojo.__XhrArgs*/ args){ // summary: // Sends an HTTP DELETE request to the server. return _d.xhr("DELETE", args); //dojo.Deferred - } + }; /* dojo.wrapForm = function(formNode){ diff --git a/lib/dojo/_firebug/firebug.js b/lib/dojo/_firebug/firebug.js index d1f112f69..c78b50fa6 100644 --- a/lib/dojo/_firebug/firebug.js +++ b/lib/dojo/_firebug/firebug.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,13 +8,14 @@ if(!dojo._hasResource["dojo._firebug.firebug"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._firebug.firebug"] = true; dojo.provide("dojo._firebug.firebug"); + dojo.deprecated = function(/*String*/ behaviour, /*String?*/ extra, /*String?*/ removal){ - // summary: + // summary: // Log a debug message to indicate that a behavior has been // deprecated. // extra: Text to append to the message. - // removal: + // removal: // Text to indicate when in the future the behavior will be removed. var message = "DEPRECATED: " + behaviour; if(extra){ message += " " + extra; } @@ -24,16 +25,16 @@ dojo.deprecated = function(/*String*/ behaviour, /*String?*/ extra, /*String?*/ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ // summary: Marks code as experimental. - // description: + // description: // This can be used to mark a function, file, or module as // experimental. Experimental code is not ready to be used, and the // APIs are subject to change without notice. Experimental code may be // completed deleted without going through the normal deprecation // process. - // moduleName: + // moduleName: // The name of a module, or the name of a module file or a specific // function - // extra: + // extra: // some additional message for the user // example: // | dojo.experimental("dojo.data.Result"); @@ -49,10 +50,10 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ // description: // Opens a console for logging, debugging, and error messages. // Contains partial functionality to Firebug. See function list below. - // NOTE: + // NOTE: // Firebug is a Firefox extension created by Joe Hewitt (see license). You do not need Dojo to run Firebug. // Firebug Lite is included in Dojo by permission from Joe Hewitt - // If you are new to Firebug, or used to the Dojo 0.4 dojo.debug, you can learn Firebug + // If you are new to Firebug, or used to the Dojo 0.4 dojo.debug, you can learn Firebug // functionality by reading the function comments below or visiting http://www.getfirebug.com/docs.html // NOTE: // To test Firebug Lite in Firefox: @@ -80,13 +81,13 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ var calls = ["log", "info", "debug", "warn", "error"]; for(var i=0;i<calls.length;i++){ var m = calls[i]; - var n = "_"+calls[i] + var n = "_"+calls[i]; console[n] = console[m]; console[m] = (function(){ var type = n; return function(){ console[type](Array.prototype.slice.call(arguments).join(" ")); - } + }; })(); } // clear the console on load. This is more than a convenience - too many logs crashes it. @@ -96,8 +97,8 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ if( !dojo.isFF && // Firefox has Firebug - (!dojo.isChrome || dojo.isChrome < 3) && - (!dojo.isSafari || dojo.isSafari < 4) && // Safari 4 has a console + !dojo.isChrome && // Chrome 3+ has a console + !dojo.isSafari && // Safari 4 has a console !isNewIE && // Has the new IE console !window.firebug && // Testing for mozilla firebug lite (typeof console != "undefined" && !console.firebug) && //A console that is not firebug's @@ -108,17 +109,17 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ // don't build firebug in iframes try{ - if(window != window.parent){ + if(window != window.parent){ // but if we've got a parent logger, connect to it if(window.parent["console"]){ window.console = window.parent.console; } - return; + return; } }catch(e){/*squelch*/} // *************************************************************************** - // Placing these variables before the functions that use them to avoid a + // Placing these variables before the functions that use them to avoid a // shrinksafe bug where variable renaming does not happen correctly otherwise. // most of the objects in this script are run anonomously @@ -155,38 +156,38 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ window.console = { _connects: [], log: function(){ - // summary: + // summary: // Sends arguments to console. logFormatted(arguments, ""); }, debug: function(){ - // summary: + // summary: // Sends arguments to console. Missing finctionality to show script line of trace. logFormatted(arguments, "debug"); }, info: function(){ - // summary: + // summary: // Sends arguments to console, highlighted with (I) icon. logFormatted(arguments, "info"); }, warn: function(){ - // summary: + // summary: // Sends warning arguments to console, highlighted with (!) icon and blue style. logFormatted(arguments, "warning"); }, error: function(){ - // summary: + // summary: // Sends error arguments (object) to console, highlighted with (X) icon and yellow style // NEW: error object now displays in object inspector logFormatted(arguments, "error"); }, assert: function(truth, message){ - // summary: + // summary: // Tests for true. Throws exception if false. if(!truth){ var args = []; @@ -207,7 +208,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ }, dirxml: function(node){ - // summary: + // summary: // var html = []; appendNode(node, html); @@ -215,20 +216,20 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ }, group: function(){ - // summary: - // collects log messages into a group, starting with this call and ending with + // summary: + // collects log messages into a group, starting with this call and ending with // groupEnd(). Missing collapse functionality logRow(arguments, "group", pushGroup); }, groupEnd: function(){ - // summary: + // summary: // Closes group. See above logRow(arguments, "", popGroup); }, time: function(name){ - // summary: + // summary: // Starts timers assigned to name given in argument. Timer stops and displays on timeEnd(title); // example: // | console.time("load"); @@ -239,7 +240,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ }, timeEnd: function(name){ - // summary: + // summary: // See above. if(name in timeMap){ var delta = (new Date()).getTime() - timeMap[name]; @@ -249,7 +250,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ }, count: function(name){ - // summary: + // summary: // Not supported if(!countMap[name]) countMap[name] = 0; countMap[name]++; @@ -264,20 +265,20 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ var func = f.toString(); var args=[]; for (var a = 0; a < f.arguments.length; a++) { - args.push(f.arguments[a]) + args.push(f.arguments[a]); } if(f.arguments.length){ - console.dir({"function":func, "arguments":args}); + console.dir({"function":func, "arguments":args}); }else{ console.dir({"function":func}); } f = f.caller; - } + } }, profile: function(){ - // summary: + // summary: // Not supported this.warn(["profile() not supported."]); }, @@ -285,24 +286,24 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ profileEnd: function(){ }, clear: function(){ - // summary: + // summary: // Clears message console. Do not call this directly if(consoleBody){ while(consoleBody.childNodes.length){ - dojo.destroy(consoleBody.firstChild); + dojo.destroy(consoleBody.firstChild); } } dojo.forEach(this._connects,dojo.disconnect); }, - open: function(){ - // summary: + open: function(){ + // summary: // Opens message console. Do not call this directly - toggleConsole(true); + toggleConsole(true); }, close: function(){ - // summary: + // summary: // Closes message console. Do not call this directly if(frameVisible){ toggleConsole(); @@ -343,7 +344,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ setTimeout(function(){ _inspectionClickConnection = dojo.connect(document, "click", function(evt){ document.body.style.cursor = ""; - _inspectionEnabled = !_inspectionEnabled; + _inspectionEnabled = !_inspectionEnabled; dojo.disconnect(_inspectionClickConnection); // console._restoreBorder(); }); @@ -357,7 +358,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ console._restoreBorder(); }, openConsole:function(){ - // summary: + // summary: // Closes object inspector and opens message console. Do not call this directly consoleBody.style.display = "block"; consoleDomInspector.style.display = "none"; @@ -383,7 +384,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ } } } - } + }; // *************************************************************************** @@ -448,7 +449,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ } - window.onFirebugResize = function(){ + window.onFirebugResize = function(){ //resize the height of the console log body layout(getViewport().h); @@ -520,12 +521,12 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ } consoleFrame.className += " firebug"; consoleFrame.style.height = containerHeight; - consoleFrame.style.display = (frameVisible ? "block" : "none"); + consoleFrame.style.display = (frameVisible ? "block" : "none"); var buildLink = function(label, title, method, _class){ return '<li class="'+_class+'"><a href="javascript:void(0);" onclick="console.'+ method +'(); return false;" title="'+title+'">'+label+'</a></li>'; }; - consoleFrame.innerHTML = + consoleFrame.innerHTML = '<div id="firebugToolbar">' + ' <ul id="fireBugTabs" class="tabs">' @@ -598,8 +599,8 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ function layout(h){ var tHeight = 25; //consoleToolbar.offsetHeight; // tab style not ready on load - throws off layout - var height = h ? - h - (tHeight + commandLine.offsetHeight +25 + (h*.01)) + "px" : + var height = h ? + h - (tHeight + commandLine.offsetHeight +25 + (h*.01)) + "px" : (consoleFrame.offsetHeight - tHeight - commandLine.offsetHeight) + "px"; consoleBody.style.top = tHeight + "px"; @@ -610,7 +611,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ consoleDomInspector.style.top = tHeight + "px"; commandLine.style.bottom = 0; - dojo.addOnWindowUnload(clearFrame) + dojo.addOnWindowUnload(clearFrame); } function logRow(message, className, handler){ @@ -755,7 +756,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ function parseFormat(format){ var parts = []; - var reg = /((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/; + var reg = /((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/; var appenderMap = {s: appendText, d: appendInteger, i: appendInteger, f: appendFloat}; for(var m = reg.exec(format); m; m = reg.exec(format)){ @@ -900,7 +901,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ appendNode(child, html); } - html.push('</div><div class="objectBox-element"></<span class="nodeTag">', + html.push('</div><div class="objectBox-element"></<span class="nodeTag">', node.nodeName.toLowerCase(), '></span></div>'); }else{ html.push('/></div>'); @@ -933,7 +934,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ if(document.all){ event.cancelBubble = true; }else{ - event.stopPropagation(); + event.stopPropagation(); } } @@ -942,7 +943,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ var fileName = lastSlash == -1 ? href : href.substr(lastSlash+1); var html = [ - '<span class="errorMessage">', msg, '</span>', + '<span class="errorMessage">', msg, '</span>', '<div class="objectBox-sourceLink">', fileName, ' (line ', lineNo, ')</div>' ]; @@ -965,7 +966,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ toggleConsole(); }else if( (ekc == keys.NUMPAD_ENTER || ekc == 76) && - event.shiftKey && + event.shiftKey && (event.metaKey || event.ctrlKey) ){ focusCommandLine(); @@ -1072,7 +1073,7 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ function objectLength(o){ var cnt = 0; for(var nm in o){ - cnt++ + cnt++; } return cnt; } @@ -1222,5 +1223,4 @@ dojo.experimental = function(/* String */ moduleName, /* String? */ extra){ })(); - } diff --git a/lib/dojo/back.js b/lib/dojo/back.js index 5e2998c97..0bb4817b4 100644 --- a/lib/dojo/back.js +++ b/lib/dojo/back.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.back"]){ //_hasResource checks added by build. Do no dojo._hasResource["dojo.back"] = true; dojo.provide("dojo.back"); +dojo.getObject("back", true, dojo); + /*===== dojo.back = { // summary: Browser history management resources @@ -16,29 +18,23 @@ dojo.back = { =====*/ -(function(){ - var back = dojo.back; +(function(){ + var back = dojo.back, // everyone deals with encoding the hash slightly differently - function getHash(){ + getHash= back.getHash= function(){ var h = window.location.hash; if(h.charAt(0) == "#"){ h = h.substring(1); } - return dojo.isMozilla ? h : decodeURIComponent(h); - } + return dojo.isMozilla ? h : decodeURIComponent(h); + }, - function setHash(h){ + setHash= back.setHash= function(h){ if(!h){ h = ""; } window.location.hash = encodeURIComponent(h); historyCounter = history.length; - } - - // if we're in the test for these methods, expose them on dojo.back. ok'd with alex. - if(dojo.exists("tests.back-hash")){ - back.getHash = getHash; - back.setHash = setHash; - } - + }; + var initialHref = (typeof(window) !== "undefined") ? window.location.href : ""; var initialHash = (typeof(window) !== "undefined") ? getHash() : ""; var initialState = null; @@ -150,18 +146,11 @@ dojo.back = { return; } } - - if(dojo.isSafari && dojo.isSafari < 3){ - var hisLen = history.length; - if(hisLen > historyCounter) handleForwardButton(); - else if(hisLen < historyCounter) handleBackButton(); - historyCounter = hisLen; - } } }; back.init = function(){ - //summary: Initializes the undo stack. This must be called from a <script> + //summary: Initializes the undo stack. This must be called from a <script> // block that lives inside the <body> tag to prevent bugs on IE. // description: // Only call this method before the page's DOM is finished loading. Otherwise @@ -179,7 +168,7 @@ dojo.back = { }; back.setInitialState = function(/*Object*/args){ - //summary: + //summary: // Sets the state object and back callback for the very first page // that is loaded. //description: @@ -213,14 +202,14 @@ dojo.back = { =====*/ back.addToHistory = function(/*dojo.__backArgs*/ args){ - // summary: - // adds a state object (args) to the history list. + // summary: + // adds a state object (args) to the history list. // description: // To support getting back button notifications, the object // argument should implement a function called either "back", // "backButton", or "handle". The string "back" will be passed as // the first and only argument to this callback. - // + // // To support getting forward button notifications, the object // argument should implement a function called either "forward", // "forwardButton", or "handle". The string "forward" will be @@ -247,7 +236,7 @@ dojo.back = { // | }); // BROWSER NOTES: - // Safari 1.2: + // Safari 1.2: // back button "works" fine, however it's not possible to actually // DETECT that you've moved backwards by inspecting window.location. // Unless there is some other means of locating. @@ -261,10 +250,10 @@ dojo.back = { // previous hash value, but to the last full page load. This suggests // that the iframe is the correct way to capture the back button in // these cases. - // Don't test this page using local disk for MSIE. MSIE will not create - // a history list for iframe_history.html if served from a file: URL. - // The XML served back from the XHR tests will also not be properly - // created if served from local disk. Serve the test pages from a web + // Don't test this page using local disk for MSIE. MSIE will not create + // a history list for iframe_history.html if served from a file: URL. + // The XML served back from the XHR tests will also not be properly + // created if served from local disk. Serve the test pages from a web // server to test in that browser. // IE 6.0: // same behavior as IE 5.5 SP2 @@ -276,7 +265,7 @@ dojo.back = { //If addToHistory is called, then that means we prune the //forward stack -- the user went back, then wanted to //start a new forward path. - forwardStack = []; + forwardStack = []; var hash = null; var url = null; @@ -310,9 +299,9 @@ dojo.back = { } changingUrl = true; - setTimeout(function() { - setHash(hash); - changingUrl = false; + setTimeout(function() { + setHash(hash); + changingUrl = false; }, 1); bookmarkAnchor.href = hash; @@ -380,10 +369,10 @@ dojo.back = { }; back._iframeLoaded = function(evt, ifrLoc){ - //summary: + //summary: // private method. Do not call this directly. var query = getUrlQuery(ifrLoc.href); - if(query == null){ + if(query == null){ // alert("iframeLoaded"); // we hit the end of the history, so we should go back if(historyStack.length == 1){ diff --git a/lib/dojo/behavior.js b/lib/dojo/behavior.js index 15f1f23a3..8b058892f 100644 --- a/lib/dojo/behavior.js +++ b/lib/dojo/behavior.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,23 +9,24 @@ if(!dojo._hasResource["dojo.behavior"]){ //_hasResource checks added by build. D dojo._hasResource["dojo.behavior"] = true; dojo.provide("dojo.behavior"); + dojo.behavior = new function(){ - // summary: + // summary: // Utility for unobtrusive/progressive event binding, DOM traversal, // and manipulation. // // description: - // - // A very simple, lightweight mechanism for applying code to - // existing documents, based around `dojo.query` (CSS3 selectors) for node selection, + // + // A very simple, lightweight mechanism for applying code to + // existing documents, based around `dojo.query` (CSS3 selectors) for node selection, // and a simple two-command API: `dojo.behavior.add()` and `dojo.behavior.apply()`; - // - // Behaviors apply to a given page, and are registered following the syntax + // + // Behaviors apply to a given page, and are registered following the syntax // options described by `dojo.behavior.add` to match nodes to actions, or "behaviors". - // + // // Added behaviors are applied to the current DOM when .apply() is called, - // matching only new nodes found since .apply() was last called. - // + // matching only new nodes found since .apply() was last called. + // function arrIn(obj, name){ if(!obj[name]){ obj[name] = []; } return obj[name]; @@ -51,7 +52,7 @@ dojo.behavior = new function(){ this.add = function(/* Object */behaviorObj){ // summary: // Add the specified behavior to the list of behaviors, ignoring existing - // matches. + // matches. // // description: // Add the specified behavior to the list of behaviors which will @@ -59,26 +60,26 @@ dojo.behavior = new function(){ // an already existing behavior do not replace the previous rules, // but are instead additive. New nodes which match the rule will // have all add()-ed behaviors applied to them when matched. - // + // // The "found" method is a generalized handler that's called as soon // as the node matches the selector. Rules for values that follow also // apply to the "found" key. - // - // The "on*" handlers are attached with `dojo.connect()`, using the + // + // The "on*" handlers are attached with `dojo.connect()`, using the // matching node - // + // // If the value corresponding to the ID key is a function and not a // list, it's treated as though it was the value of "found". // - // dojo.behavior.add() can be called any number of times before + // dojo.behavior.add() can be called any number of times before // the DOM is ready. `dojo.behavior.apply()` is called automatically // by `dojo.addOnLoad`, though can be called to re-apply previously added // behaviors anytime the DOM changes. // // There are a variety of formats permitted in the behaviorObject - // + // // example: - // Simple list of properties. "found" is special. "Found" is assumed if + // Simple list of properties. "found" is special. "Found" is assumed if // no property object for a given selector, and property is a function. // // | dojo.behavior.add({ @@ -95,7 +96,7 @@ dojo.behavior = new function(){ // | } // | }); // - // example: + // example: // If property is a string, a dojo.publish will be issued on the channel: // // | dojo.behavior.add({ @@ -106,15 +107,15 @@ dojo.behavior = new function(){ // | } // | }); // | dojo.subscribe("/got/newAnchor", function(node){ - // | // handle node finding when dojo.behavior.apply() is called, + // | // handle node finding when dojo.behavior.apply() is called, // | // provided a newly matched node is found. // | }); // // example: - // Scoping can be accomplished by passing an object as a property to + // Scoping can be accomplished by passing an object as a property to // a connection handle (on*): - // - // | dojo.behavior.add({ + // + // | dojo.behavior.add({ // | "#id": { // | // like calling dojo.hitch(foo,"bar"). execute foo.bar() in scope of foo // | "onmouseenter": { targetObj: foo, targetFunc: "bar" }, @@ -122,7 +123,7 @@ dojo.behavior = new function(){ // | } // | }); // - // example: + // example: // Bahaviors match on CSS3 Selectors, powered by dojo.query. Example selectors: // // | dojo.behavior.add({ @@ -130,31 +131,31 @@ dojo.behavior = new function(){ // | "#id4 > *": function(element){ // | // ... // | }, - // | + // | // | // match the first child node that's an element // | "#id4 > :first-child": { ... }, - // | + // | // | // match the last child node that's an element // | "#id4 > :last-child": { ... }, - // | + // | // | // all elements of type tagname // | "tagname": { // | // ... // | }, - // | + // | // | "tagname1 tagname2 tagname3": { // | // ... // | }, - // | + // | // | ".classname": { // | // ... // | }, - // | + // | // | "tagname.classname": { // | // ... // | } // | }); - // + // var tmpObj = {}; forIn(behaviorObj, this, function(behavior, name){ @@ -171,7 +172,7 @@ dojo.behavior = new function(){ arrIn(cversion, ruleName).push(rule); }); }); - } + }; var _applyToNode = function(node, action, ruleSetName){ if(dojo.isString(action)){ @@ -189,33 +190,33 @@ dojo.behavior = new function(){ dojo.connect(node, ruleSetName, action); } } - } + }; this.apply = function(){ // summary: // Applies all currently registered behaviors to the document. - // + // // description: // Applies all currently registered behaviors to the document, // taking care to ensure that only incremental updates are made - // since the last time add() or apply() were called. - // + // since the last time add() or apply() were called. + // // If new matching nodes have been added, all rules in a behavior will be // applied to that node. For previously matched nodes, only // behaviors which have been added since the last call to apply() // will be added to the nodes. // - // apply() is called once automatically by `dojo.addOnLoad`, so + // apply() is called once automatically by `dojo.addOnLoad`, so // registering behaviors with `dojo.behavior.add` before the DOM is // ready is acceptable, provided the dojo.behavior module is ready. - // - // Calling appy() manually after manipulating the DOM is required + // + // Calling appy() manually after manipulating the DOM is required // to rescan the DOM and apply newly .add()ed behaviors, or to match - // nodes that match existing behaviors when those nodes are added to + // nodes that match existing behaviors when those nodes are added to // the DOM. - // + // forIn(this._behaviors, function(tBehavior, id){ - dojo.query(id).forEach( + dojo.query(id).forEach( function(elem){ var runFrom = 0; var bid = "_dj_behavior_"+tBehavior.id; @@ -242,8 +243,8 @@ dojo.behavior = new function(){ } ); }); - } -} + }; +}; dojo.addOnLoad(dojo.behavior, "apply"); diff --git a/lib/dojo/build.txt b/lib/dojo/build.txt index bc58b776f..6f15de0c4 100644 --- a/lib/dojo/build.txt +++ b/lib/dojo/build.txt @@ -12,7 +12,6 @@ dojo.js: ./../../release/dojo/_base/Deferred.js ./../../release/dojo/_base/json.js ./../../release/dojo/_base/Color.js -./../../release/dojo/_base.js ./../../release/dojo/_base/window.js ./../../release/dojo/_base/event.js ./../../release/dojo/_base/html.js @@ -21,6 +20,7 @@ dojo.js: ./../../release/dojo/_base/xhr.js ./../../release/dojo/_base/fx.js ./../../release/dojo/_base/browser.js +./../../release/dojo/_base.js ./jslib/dojoGuardEnd.jsfrag tt-rss-layer.js: @@ -39,6 +39,8 @@ tt-rss-layer.js: ./../../release/dijit/_base/typematic.js ./../../release/dijit/_base/wai.js ./../../release/dijit/_base.js +./../../release/dojo/Stateful.js +./../../release/dijit/_WidgetBase.js ./../../release/dijit/_Widget.js ./../../release/dojo/string.js ./../../release/dojo/cache.js @@ -65,6 +67,7 @@ tt-rss-layer.js: ./../../release/dijit/form/_FormMixin.js ./../../release/dijit/_DialogMixin.js ./../../release/dijit/DialogUnderlay.js +./../../release/dijit/layout/_ContentPaneResizeMixin.js ./../../release/dojo/html.js ./../../release/dijit/layout/ContentPane.js ./../../release/dijit/TooltipDialog.js @@ -112,10 +115,10 @@ tt-rss-layer.js: ./../../release/dojo/DeferredList.js ./../../release/dijit/tree/TreeStoreModel.js ./../../release/dijit/tree/ForestStoreModel.js -./../../release/dijit/Tree.js ./../../release/dojo/dnd/Container.js ./../../release/dijit/tree/_dndContainer.js ./../../release/dijit/tree/_dndSelector.js +./../../release/dijit/Tree.js ./../../release/dojo/dnd/Avatar.js ./../../release/dojo/dnd/Manager.js ./../../release/dijit/tree/dndSource.js diff --git a/lib/dojo/cache.js b/lib/dojo/cache.js index da237c767..887a7f2e5 100644 --- a/lib/dojo/cache.js +++ b/lib/dojo/cache.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,14 +9,14 @@ if(!dojo._hasResource["dojo.cache"]){ //_hasResource checks added by build. Do n dojo._hasResource["dojo.cache"] = true; dojo.provide("dojo.cache"); + /*===== -dojo.cache = { +dojo.cache = { // summary: // A way to cache string content that is fetchable via `dojo.moduleUrl`. }; =====*/ -(function(){ var cache = {}; dojo.cache = function(/*String||Object*/module, /*String*/url, /*String||Object?*/value){ // summary: @@ -55,7 +55,7 @@ dojo.cache = { // | var text = dojo["cache"]("my.module", "template.html"); // example: // To ask dojo.cache to fetch content and store it in the cache, and sanitize the input - // (the dojo["cache"] style of call is used to avoid an issue with the build system + // (the dojo["cache"] style of call is used to avoid an issue with the build system // erroneously trying to intern this example. To get the build system to intern your // dojo.cache calls, use the "dojo.cache" style of call): // | //If template.html contains "<html><body><h1>Hello</h1></body></html>", the @@ -105,7 +105,7 @@ dojo.cache = { }; dojo.cache._sanitize = function(/*String*/val){ - // summary: + // summary: // Strips <?xml ...?> declarations so that external SVG and XML // documents can be added to a document without worry. Also, if the string // is an HTML document, only the part inside the body tag is returned. @@ -122,6 +122,5 @@ dojo.cache = { } return val; //String }; -})(); } diff --git a/lib/dojo/cldr/monetary.js b/lib/dojo/cldr/monetary.js index 0380055c4..498e437ab 100644 --- a/lib/dojo/cldr/monetary.js +++ b/lib/dojo/cldr/monetary.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.cldr.monetary"]){ //_hasResource checks added by bui dojo._hasResource["dojo.cldr.monetary"] = true; dojo.provide("dojo.cldr.monetary"); +dojo.getObject("cldr.monetary", true, dojo); + dojo.cldr.monetary.getData = function(/*String*/code){ // summary: A mapping of currency code to currency-specific formatting information. Returns a unique object with properties: places, round. // code: an [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code diff --git a/lib/dojo/cldr/nls/ar/buddhist.js b/lib/dojo/cldr/nls/ar/buddhist.js new file mode 100644 index 000000000..68708e9af --- /dev/null +++ b/lib/dojo/cldr/nls/ar/buddhist.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"م","eraNames":["التقويم البوذي"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"dayPeriods-format-wide-am":"ص","dateFormatItem-y":"y G","timeFormat-full":"zzzz h:mm:ss a","dateFormatItem-Ed":"E، d","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["التقويم البوذي"],"dateFormatItem-yyyyMM":"MM/y G","dateFormatItem-yyyyMMMM":"MMMM، y G","dateFormat-long":"d MMMM، y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"dd/MM/y G","dateFormatItem-yMd":"d/M/y G","dateFormatItem-yMMMM":"MMMM y G","dateFormatItem-ms":"mm:ss","quarters-standAlone-narrow":["١","٢","٣","٤"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","timeFormat-long":"z h:mm:ss a","timeFormat-short":"h:mm a","dateFormatItem-MMMMd":"d MMMM","days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMMM y G","dateFormat-short":"d/M/y G","dateFormatItem-yMMMEd":"EEE، d MMMM y G","dateFormat-full":"EEEE، d MMMM، y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE، d/M/y G","months-format-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-d":"d","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"eraNarrow":["التقويم البوذي"],"days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-yQQQ":"y QQQ","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ar/gregorian.js b/lib/dojo/cldr/nls/ar/gregorian.js index c25f80231..a3d0e9ddd 100644 --- a/lib/dojo/cldr/nls/ar/gregorian.js +++ b/lib/dojo/cldr/nls/ar/gregorian.js @@ -1 +1 @@ -({"dateFormatItem-yM":"M/yyyy","field-dayperiod":"ص/م","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"م","field-minute":"الدقائق","eraNames":["قبل الميلاد","ميلادي"],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"أمس","field-weekday":"اليوم","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"field-era":"العصر","field-hour":"الساعات","dayPeriods-format-wide-am":"ص","quarters-standAlone-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-y":"y","timeFormat-full":"zzzz h:mm:ss a","months-standAlone-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"اليوم","field-day-relative+1":"غدًا","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["ق.م","م"],"field-day-relative+2":"بعد الغد","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-yyyyMMMM":"MMMM، y","dateFormat-long":"d MMMM، y","timeFormat-medium":"h:mm:ss a","field-zone":"التوقيت","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"dd/MM/yyyy","quarters-standAlone-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-yMMMM":"MMMM y","dateFormatItem-ms":"mm:ss","field-year":"السنة","quarters-standAlone-narrow":["١","٢","٣","٤"],"field-week":"الأسبوع","months-standAlone-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["١","٢","٣","٤"],"dateFormatItem-yyQ":"Q yy","timeFormat-long":"z h:mm:ss a","months-format-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"timeFormat-short":"h:mm a","field-month":"الشهر","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormatItem-M":"L","days-format-narrow":["ح","ن","ث","ر","خ","ج","س"],"field-second":"الثواني","field-day":"يوم","months-format-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"days-standAlone-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE، d MMMM y","dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE، d/M/yyyy","months-format-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-d":"d","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"eraNarrow":["ق.م","م"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"dateFormatItem-yM":"M/yyyy","field-dayperiod":"ص/م","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"م","field-minute":"الدقائق","eraNames":["قبل الميلاد","ميلادي"],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"أمس","field-weekday":"اليوم","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"field-era":"العصر","field-hour":"الساعات","dayPeriods-format-wide-am":"ص","quarters-standAlone-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-y":"y","timeFormat-full":"zzzz h:mm:ss a","months-standAlone-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-Ed":"E، d","dateFormatItem-yMMM":"MMM y","field-day-relative+0":"اليوم","field-day-relative+1":"غدًا","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["ق.م","م"],"field-day-relative+2":"بعد الغد","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-yyyyMMMM":"MMMM، y","dateFormat-long":"d MMMM، y","timeFormat-medium":"h:mm:ss a","field-zone":"التوقيت","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"dd/MM/yyyy","quarters-standAlone-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-yMMMM":"MMMM y","dateFormatItem-ms":"mm:ss","field-year":"السنة","quarters-standAlone-narrow":["١","٢","٣","٤"],"field-week":"الأسبوع","months-standAlone-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["١","٢","٣","٤"],"dateFormatItem-yyQ":"Q yy","timeFormat-long":"z h:mm:ss a","months-format-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"timeFormat-short":"h:mm a","field-month":"الشهر","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormatItem-M":"L","days-format-narrow":["ح","ن","ث","ر","خ","ج","س"],"field-second":"الثواني","field-day":"يوم","months-format-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"days-standAlone-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE، d MMMM y","dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE، d/M/yyyy","months-format-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-d":"d","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"eraNarrow":["ق.م","م"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ar/number.js b/lib/dojo/cldr/nls/ar/number.js index 543ccb3e1..e9a48164a 100644 --- a/lib/dojo/cldr/nls/ar/number.js +++ b/lib/dojo/cldr/nls/ar/number.js @@ -1 +1 @@ -({"group":"٬","percentSign":"٪","exponential":"اس","list":"؛","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":"٫","nan":"ليس رقم","nativeZeroDigit":"٠","perMille":"؉","decimalFormat":"#,##0.###;#,##0.###-","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":"٬","percentSign":"٪","exponential":"اس","list":"؛","infinity":"∞","minusSign":"-","decimal":"٫","nan":"ليس رقم","perMille":"؉","decimalFormat":"#,##0.###;#,##0.###-","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nativeZeroDigit":"0","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ca/number.js b/lib/dojo/cldr/nls/ca/number.js index da4300c27..4f0befd38 100644 --- a/lib/dojo/cldr/nls/ca/number.js +++ b/lib/dojo/cldr/nls/ca/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/cs/gregorian.js b/lib/dojo/cldr/nls/cs/gregorian.js index 3b9752ce9..d7abc9b5e 100644 --- a/lib/dojo/cldr/nls/cs/gregorian.js +++ b/lib/dojo/cldr/nls/cs/gregorian.js @@ -1 +1 @@ -({"dayPeriods-format-wide-pm":"odp.","eraNames":["př.Kr.","po Kr."],"field-day-relative+-1":"Včera","field-day-relative+-2":"Předevčírem","days-standAlone-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"months-standAlone-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"dayPeriods-format-wide-am":"dop.","quarters-standAlone-abbr":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],"field-day-relative+0":"Dnes","field-day-relative+1":"Zítra","days-standAlone-narrow":["N","P","Ú","S","Č","P","S"],"eraAbbr":["př.Kr.","po Kr."],"field-day-relative+2":"Pozítří","dateFormat-long":"d. MMMM y","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"months-standAlone-wide":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"timeFormat-long":"H:mm:ss z","months-format-abbr":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","quarters-format-abbr":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-abbr":["ne","po","út","st","čt","pá","so"],"days-format-narrow":["N","P","Ú","S","Č","P","S"],"months-format-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"days-standAlone-abbr":["ne","po","út","st","čt","pá","so"],"dateFormat-short":"d.M.yy","dateFormat-full":"EEEE, d. MMMM y","months-format-wide":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"quarters-format-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"eraNarrow":["př.Kr.","po Kr."],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Day of the Week","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","field-era":"Era","dateFormatItem-yM":"y-M","field-year":"Year","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","field-hour":"Hour","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-M":"L","field-minute":"Minute","field-dayperiod":"Dayperiod","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","field-day":"Day","field-zone":"Zone","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateFormatItem-MMM":"LLL","field-month":"Month","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","field-second":"Second","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","field-week":"Week","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"dateFormatItem-yM":"M.y","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"odp.","eraNames":["př.Kr.","po Kr."],"dateFormatItem-MMMEd":"E, d. MMM","field-day-relative+-1":"Včera","dateFormatItem-yQQQ":"QQQ y","field-day-relative+-2":"Předevčírem","days-standAlone-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"months-standAlone-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"dayPeriods-format-wide-am":"dop.","quarters-standAlone-abbr":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"timeFormat-full":"H:mm:ss zzzz","dateFormatItem-yyyy":"y","months-standAlone-abbr":["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],"dateFormatItem-yMMM":"LLL y","field-day-relative+0":"Dnes","field-day-relative+1":"Zítra","days-standAlone-narrow":["N","P","Ú","S","Č","P","S"],"eraAbbr":["př.Kr.","po Kr."],"field-day-relative+2":"Pozítří","dateFormatItem-yyyyMMMM":"LLLL y","dateFormat-long":"d. MMMM y","timeFormat-medium":"H:mm:ss","dateFormatItem-EEEd":"EEE, d.","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yMd":"d.M.y","quarters-standAlone-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"months-standAlone-wide":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H:mm:ss z","months-format-abbr":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","quarters-format-abbr":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-abbr":["ne","po","út","st","čt","pá","so"],"days-format-narrow":["N","P","Ú","S","Č","P","S"],"dateFormatItem-MEd":"E, d.M","months-format-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"days-standAlone-abbr":["ne","po","út","st","čt","pá","so"],"dateFormat-short":"d.M.yy","dateFormatItem-yyyyM":"M.yyyy","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M","dateFormatItem-yMEd":"EEE, d.M.y","months-format-wide":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"dateFormatItem-d":"d.","quarters-format-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"eraNarrow":["př.Kr.","po Kr."],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Day of the Week","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","field-era":"Era","field-year":"Year","dateTimeFormats-appendItem-Era":"{0} {1}","field-hour":"Hour","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-M":"L","field-minute":"Minute","field-dayperiod":"Dayperiod","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","field-day":"Day","field-zone":"Zone","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateFormatItem-MMM":"LLL","field-month":"Month","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","field-second":"Second","dateTimeFormats-appendItem-Timezone":"{0} {1}","field-week":"Week","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/cs/number.js b/lib/dojo/cldr/nls/cs/number.js index f9a71abd6..9dcfdd4d9 100644 --- a/lib/dojo/cldr/nls/cs/number.js +++ b/lib/dojo/cldr/nls/cs/number.js @@ -1 +1 @@ -({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/da/buddhist.js b/lib/dojo/cldr/nls/da/buddhist.js new file mode 100644 index 000000000..d6d4ca3a7 --- /dev/null +++ b/lib/dojo/cldr/nls/da/buddhist.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"e.m.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MMM":"MMM","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dayPeriods-format-wide-am":"f.m.","dateFormatItem-y":"y G","timeFormat-full":"HH.mm.ss zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yMd":"d/M/y G","dateFormatItem-ms":"mm.ss","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q. 'kvartal' y G","timeFormat-long":"HH.mm.ss z","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"timeFormat-short":"HH.mm","dateFormatItem-H":"HH","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-M":"M","dateFormatItem-MEd":"E. d/M","dateFormatItem-hm":"h.mm a","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE. d. MMM y G","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE. d/M/y G","months-format-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d.","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/da/gregorian.js b/lib/dojo/cldr/nls/da/gregorian.js index 08e431184..1dffad552 100644 --- a/lib/dojo/cldr/nls/da/gregorian.js +++ b/lib/dojo/cldr/nls/da/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"ugedag","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE. d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d. MMM y","months-format-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"dayPeriods-format-wide-pm":"e.m.","dateFormat-full":"EEEE 'den' d. MMMM y","dateFormatItem-Md":"d/M","field-era":"æra","dateFormatItem-yM":"M/y","months-standAlone-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"timeFormat-short":"HH.mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH.mm.ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-hour":"time","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q. 'kvartal' yy","timeFormat-full":"HH.mm.ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","dateFormatItem-H":"HH","field-day-relative+3":"i overovermorgen","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"M","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"dagtid","days-standAlone-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"i går","field-day-relative+-2":"i forgårs","field-day-relative+-3":"i forforgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E. d/M","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"zone","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h.mm a","days-format-abbr":["søn","man","tir","ons","tor","fre","lør"],"eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"måned","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"MMM","dayPeriods-format-wide-am":"f.m.","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormat-short":"dd/MM/yy","field-second":"sekund","dateFormatItem-yMMMEd":"EEE. d. MMM y","field-week":"uge","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file +({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"ugedag","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE. d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d. MMM y","months-format-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"dayPeriods-format-wide-pm":"e.m.","dateFormat-full":"EEEE 'den' d. MMMM y","dateFormatItem-Md":"d/M","field-era":"æra","dateFormatItem-yM":"M/y","months-standAlone-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"timeFormat-short":"HH.mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH.mm.ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-hour":"time","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q. 'kvartal' yy","timeFormat-full":"HH.mm.ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","dateFormatItem-H":"HH","field-day-relative+3":"i overovermorgen","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"M","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"dagtid","days-standAlone-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"i går","field-day-relative+-2":"i forgårs","field-day-relative+-3":"i forforgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E. d/M","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"zone","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h.mm a","days-format-abbr":["søn","man","tir","ons","tor","fre","lør"],"eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"måned","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"MMM","dayPeriods-format-wide-am":"f.m.","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormat-short":"dd/MM/yy","field-second":"sekund","dateFormatItem-yMMMEd":"EEE. d. MMM y","dateFormatItem-Ed":"E d.","field-week":"uge","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/da/islamic.js b/lib/dojo/cldr/nls/da/islamic.js new file mode 100644 index 000000000..a6bda975d --- /dev/null +++ b/lib/dojo/cldr/nls/da/islamic.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"EEE. d. MMM y G","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"e.m.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MMM":"MMM","dayPeriods-format-wide-am":"f.m.","timeFormat-full":"HH.mm.ss zzzz","dateFormatItem-yyyy":"y G","dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormat-long":"d. MMMM y G","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-ms":"mm.ss","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormatItem-yyyyMEd":"EEE. d/M/y G","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q. 'kvartal' y G","timeFormat-long":"HH.mm.ss z","timeFormat-short":"HH.mm","dateFormatItem-H":"HH","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-M":"M","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E. d/M","dateFormatItem-hm":"h.mm a","dateFormat-short":"d/M/y G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"EEE. d. MMM y","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d/M","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE. d/M/y","dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d.","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["AH"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["AH"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["AH"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/da/number.js b/lib/dojo/cldr/nls/da/number.js index 2f5fc8e30..a0aa79acc 100644 --- a/lib/dojo/cldr/nls/da/number.js +++ b/lib/dojo/cldr/nls/da/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/de/buddhist.js b/lib/dojo/cldr/nls/de/buddhist.js new file mode 100644 index 000000000..c1dc677bc --- /dev/null +++ b/lib/dojo/cldr/nls/de/buddhist.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M.y G","dateFormatItem-yyMMdd":"dd.MM.y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"nachm.","dateFormatItem-MMMEd":"E, d. MMM","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMdd":"dd.MM.","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dayPeriods-format-wide-am":"vorm.","dateFormatItem-y":"y G","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d. MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d.MM.","dateFormatItem-yyMM":"MM.y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-ms":"mm:ss","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-H":"HH 'Uhr'","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-MMMMdd":"dd. MMMM","dateFormatItem-M":"L","dateFormatItem-MEd":"E, d.M.","dateFormat-short":"d.M.yyyy","dateFormatItem-yMMMEd":"EEE, d. MMM y G","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"EEE, d.M.y G","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dateFormatItem-d":"d","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateTimeFormats-appendItem-Era":"{0} {1}","timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/de/gregorian.js b/lib/dojo/cldr/nls/de/gregorian.js index 0a2720a81..4a1395dd5 100644 --- a/lib/dojo/cldr/nls/de/gregorian.js +++ b/lib/dojo/cldr/nls/de/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Wochentag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d.M.y","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["v. Chr.","n. Chr."],"dayPeriods-format-wide-earlyMorning":"morgens","dayPeriods-format-wide-morning":"vormittags","dateFormat-long":"d. MMMM y","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dayPeriods-format-wide-evening":"abends","dateFormatItem-EEEd":"d. EEE","dayPeriods-format-wide-pm":"nachm.","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yyMMdd":"dd.MM.yy","dayPeriods-format-wide-noon":"Mittag","field-era":"Epoche","dateFormatItem-yM":"M.y","months-standAlone-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jahr","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Stunde","dateFormatItem-MMdd":"dd.MM.","months-format-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"heute","field-day-relative+1":"morgen","field-day-relative+2":"übermorgen","dateFormatItem-H":"HH","field-day-relative+3":"überübermorgen","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"dateFormatItem-M":"L","days-standAlone-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","eraAbbr":["v. Chr.","n. Chr."],"field-minute":"Minute","field-dayperiod":"Tageshälfte","days-standAlone-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dayPeriods-format-wide-night":"nachts","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"gestern","field-day-relative+-2":"vorgestern","field-day-relative+-3":"vorvorgestern","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E, d.M.","field-day":"Tag","days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"eraNames":["v. Chr.","n. Chr."],"days-format-narrow":["S","M","D","M","D","F","S"],"field-month":"Monat","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"vorm.","dateFormatItem-MMMMdd":"dd. MMMM","dateFormat-short":"dd.MM.yy","dateFormatItem-MMd":"d.MM.","dayPeriods-format-wide-afternoon":"nachmittags","field-second":"Sekunde","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormatItem-Ed":"E d.","field-week":"Woche","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Wochentag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d.M.y","dateFormatItem-MMMEd":"E, d. MMM","eraNarrow":["v. Chr.","n. Chr."],"dayPeriods-format-wide-earlyMorning":"morgens","dayPeriods-format-wide-morning":"vormittags","dateFormat-long":"d. MMMM y","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dayPeriods-format-wide-evening":"abends","dayPeriods-format-wide-pm":"nachm.","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yyMMdd":"dd.MM.yy","dayPeriods-format-wide-noon":"Mittag","field-era":"Epoche","dateFormatItem-yM":"M.y","months-standAlone-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jahr","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Stunde","dateFormatItem-MMdd":"dd.MM.","months-format-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"heute","field-day-relative+1":"morgen","field-day-relative+2":"übermorgen","dateFormatItem-H":"HH 'Uhr'","field-day-relative+3":"überübermorgen","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"dateFormatItem-M":"L","days-standAlone-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","eraAbbr":["v. Chr.","n. Chr."],"field-minute":"Minute","field-dayperiod":"Tageshälfte","days-standAlone-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dayPeriods-format-wide-night":"nachts","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"gestern","field-day-relative+-2":"vorgestern","field-day-relative+-3":"vorvorgestern","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E, d.M.","field-day":"Tag","days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"eraNames":["v. Chr.","n. Chr."],"days-format-narrow":["S","M","D","M","D","F","S"],"field-month":"Monat","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"vorm.","dateFormatItem-MMMMdd":"dd. MMMM","dateFormat-short":"dd.MM.yy","dateFormatItem-MMd":"d.MM.","dayPeriods-format-wide-afternoon":"nachmittags","field-second":"Sekunde","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormatItem-Ed":"E, d.","field-week":"Woche","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/de/islamic.js b/lib/dojo/cldr/nls/de/islamic.js new file mode 100644 index 000000000..1f3b7a879 --- /dev/null +++ b/lib/dojo/cldr/nls/de/islamic.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M.y","dateFormatItem-yyyyMMMEd":"EEE, d. MMM y G","dateFormatItem-yyMMdd":"dd.MM.y G","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"nachm.","eraNames":["AH"],"dateFormatItem-MMMEd":"E, d. MMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMdd":"dd.MM.","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-am":"vorm.","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-Ed":"E d.","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","D","M","D","F","S"],"eraAbbr":["AH"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormat-long":"d. MMMM y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d.MM.","dateFormatItem-yyMM":"MM.y G","dateFormat-medium":"d. MMM y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-yyQQQQ":"QQQQ y G","dateFormatItem-ms":"mm:ss","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMEd":"EEE, d.M.y G","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-H":"HH 'Uhr'","dateFormatItem-MMMMdd":"dd. MMMM","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dateFormatItem-M":"L","dateFormatItem-MEd":"E, d.M.","dateFormatItem-yyyyQQQ":"QQQ y G","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormat-full":"EEEE d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE, d.M.y","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"eraNarrow":["AH"],"days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateTimeFormats-appendItem-Era":"{0} {1}","timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/de/number.js b/lib/dojo/cldr/nls/de/number.js index 90861a091..5fbf57bf2 100644 --- a/lib/dojo/cldr/nls/de/number.js +++ b/lib/dojo/cldr/nls/de/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/el/buddhist.js b/lib/dojo/cldr/nls/el/buddhist.js new file mode 100644 index 000000000..4715b4650 --- /dev/null +++ b/lib/dojo/cldr/nls/el/buddhist.js @@ -0,0 +1 @@ +({"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"dateFormat-medium":"d MMM, y G","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"EEE, d/M/yyyy","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-Md":"d/M","months-standAlone-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"months-standAlone-wide":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"dateFormatItem-EEEd":"EEE d","days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dayPeriods-format-wide-pm":"μ.μ.","dayPeriods-format-wide-am":"π.μ.","timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM, y G","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE, d MMM y","months-format-wide":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"dateFormatItem-yM":"M/yyyy","timeFormat-short":"h:mm a","months-format-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"timeFormat-long":"h:mm:ss a z","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-yMMM":"LLL y","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormat-full":"EEEE, d MMMM, y G","dateFormatItem-MMMd":"d MMM","days-format-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/el/gregorian.js b/lib/dojo/cldr/nls/el/gregorian.js index 047e5d54d..87644f661 100644 --- a/lib/dojo/cldr/nls/el/gregorian.js +++ b/lib/dojo/cldr/nls/el/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"field-weekday":"Ημέρα εβδομάδας","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["π.Χ.","μ.Χ."],"dateFormat-long":"d MMMM y","months-format-wide":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"μ.μ.","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d/M","field-era":"Περίοδος","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"timeFormat-short":"h:mm a","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"timeFormat-long":"h:mm:ss a z","field-year":"Έτος","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"y Q","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Ώρα","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"h:mm:ss a zzzz","field-day-relative+0":"Σήμερα","field-day-relative+1":"Αύριο","field-day-relative+2":"Μεθαύριο","dateFormatItem-H":"HH","field-day-relative+3":"Σε τρεις ημέρες από τώρα","months-standAlone-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"quarters-standAlone-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Τ1","Τ2","Τ3","Τ4"],"eraAbbr":["π.Χ.","μ.Χ."],"field-minute":"Λεπτό","field-dayperiod":"π.μ./μ.μ.","days-standAlone-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Χθες","field-day-relative+-2":"Προχθές","field-day-relative+-3":"Πριν από τρεις ημέρες","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMMMM":"LLLL y","field-day":"Ημέρα","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"field-zone":"Ζώνη","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"eraNames":["π.Χ.","μ.Χ."],"days-format-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"field-month":"Μήνας","days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH:mm","dayPeriods-format-wide-am":"π.μ.","dateFormatItem-MMMMEd":"E, d MMMM","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"d/M/yy","field-second":"Δευτερόλεπτο","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormatItem-Ed":"E d","field-week":"Εβδομάδα","dateFormat-medium":"d MMM y","dateFormatItem-mmss":"mm:ss","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"months-format-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"field-weekday":"Ημέρα εβδομάδας","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["π.Χ.","μ.Χ."],"dateFormat-long":"d MMMM y","months-format-wide":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"μ.μ.","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d/M","field-era":"Περίοδος","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"timeFormat-short":"h:mm a","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"timeFormat-long":"h:mm:ss a z","field-year":"Έτος","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"y Q","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Ώρα","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"h:mm:ss a zzzz","field-day-relative+0":"Σήμερα","field-day-relative+1":"Αύριο","field-day-relative+2":"Μεθαύριο","dateFormatItem-H":"HH","field-day-relative+3":"Σε τρεις ημέρες από τώρα","months-standAlone-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"quarters-standAlone-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"LLL yy","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Τ1","Τ2","Τ3","Τ4"],"eraAbbr":["π.Χ.","μ.Χ."],"field-minute":"Λεπτό","field-dayperiod":"π.μ./μ.μ.","days-standAlone-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Χθες","field-day-relative+-2":"Προχθές","field-day-relative+-3":"Πριν από τρεις ημέρες","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","field-day":"Ημέρα","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"field-zone":"Ζώνη","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"eraNames":["π.Χ.","μ.Χ."],"days-format-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"field-month":"Μήνας","days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH:mm","dayPeriods-format-wide-am":"π.μ.","dateFormatItem-MMMMEd":"E, d MMMM","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"d/M/yy","field-second":"Δευτερόλεπτο","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormatItem-Ed":"E d","field-week":"Εβδομάδα","dateFormat-medium":"d MMM y","dateFormatItem-mmss":"mm:ss","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/el/hebrew.js b/lib/dojo/cldr/nls/el/hebrew.js new file mode 100644 index 000000000..840b1d154 --- /dev/null +++ b/lib/dojo/cldr/nls/el/hebrew.js @@ -0,0 +1 @@ +({"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"dateFormat-medium":"d MMM y","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"EEE, d/M/yyyy","eraNarrow":["π.μ."],"timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-Md":"d/M","dateFormatItem-EEEd":"EEE d","eraNames":["π.μ."],"days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dayPeriods-format-wide-pm":"μ.μ.","dayPeriods-format-wide-am":"π.μ.","timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM y","dateFormat-short":"d/M/yy","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormatItem-yM":"M/yyyy","timeFormat-short":"h:mm a","eraAbbr":["π.μ."],"timeFormat-long":"h:mm:ss a z","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-yMMM":"LLL y","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormat-full":"EEEE, d MMMM y","dateFormatItem-MMMd":"d MMM","days-format-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"months-format-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","months-standAlone-narrow-leap":"Adar II","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","months-format-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr-leap":"Adar II","months-format-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"months-standAlone-wide-leap":"Adar II","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"months-format-narrow-leap":"Adar II","days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","months-standAlone-abbr-leap":"Adar II","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","months-format-wide-leap":"Adar II"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/el/number.js b/lib/dojo/cldr/nls/el/number.js index ff419fb45..75198a1d8 100644 --- a/lib/dojo/cldr/nls/el/number.js +++ b/lib/dojo/cldr/nls/el/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","currencyFormat":"#,##0.00 ¤","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","decimalFormat":"#,##0.###","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","currencyFormat":"#,##0.00 ¤","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","decimalFormat":"#,##0.###","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-au/currency.js b/lib/dojo/cldr/nls/en-au/currency.js index 94324942e..aad096762 100644 --- a/lib/dojo/cldr/nls/en-au/currency.js +++ b/lib/dojo/cldr/nls/en-au/currency.js @@ -1 +1 @@ -({"AUD_symbol":"$","USD_symbol":"US$","HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan Renminbi","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file +({"AUD_symbol":"$","USD_symbol":"US$","HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-au/number.js b/lib/dojo/cldr/nls/en-au/number.js index 748ea804a..70e56f471 100644 --- a/lib/dojo/cldr/nls/en-au/number.js +++ b/lib/dojo/cldr/nls/en-au/number.js @@ -1 +1 @@ -({"currencyFormat":"¤#,##0.00","group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"currencyFormat":"¤#,##0.00","group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","decimalFormat-short":"000T","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-ca/currency.js b/lib/dojo/cldr/nls/en-ca/currency.js index 4e950ec5b..a0a0b2446 100644 --- a/lib/dojo/cldr/nls/en-ca/currency.js +++ b/lib/dojo/cldr/nls/en-ca/currency.js @@ -1 +1 @@ -({"CAD_symbol":"$","USD_symbol":"US$","HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan Renminbi","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file +({"CAD_symbol":"$","USD_symbol":"US$","HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-gb/buddhist.js b/lib/dojo/cldr/nls/en-gb/buddhist.js new file mode 100644 index 000000000..9e4575c4f --- /dev/null +++ b/lib/dojo/cldr/nls/en-gb/buddhist.js @@ -0,0 +1 @@ +({"dateFormat-medium":"d MMM y G","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"EEE, d/M/y G","dateFormatItem-yyMMM":"MMM y G","dateFormatItem-y":"y","dateFormatItem-Md":"d/M","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-yyyyMMMM":"MMMM y G","dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d MMMM y G","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"EEE, MMM d, y","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-yM":"M/y","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-yQ":"Q y","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormat-full":"EEEE, d MMMM y G","dateFormatItem-yyyyMd":"d/M/y G","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-Hm":"HH:mm","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-hm":"h:mm a","dateFormatItem-EEEd":"d EEE","dateFormatItem-M":"L","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-ms":"mm:ss","dateFormatItem-d":"d","timeFormat-short":"h:mm a","timeFormat-long":"h:mm:ss a z","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-MMM":"LLL","dateFormatItem-MMMd":"MMM d","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-gb/islamic.js b/lib/dojo/cldr/nls/en-gb/islamic.js new file mode 100644 index 000000000..8774cbb03 --- /dev/null +++ b/lib/dojo/cldr/nls/en-gb/islamic.js @@ -0,0 +1 @@ +({"dateFormat-medium":"d MMM y G","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-MMdd":"dd/MM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-yyyyMMM":"MMM y G","eraNarrow":["AH"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-yyMMM":"MMM y G","dateFormatItem-Md":"d/M","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"eraNames":["AH"],"days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-yyyyMEd":"EEE, d/M/y G","dateFormatItem-yyyyMMMM":"MMMM y G","dateFormatItem-MMMMd":"d MMMM","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d MMMM y G","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"EEE, MMM d, y","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yM":"M/y","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"eraAbbr":["AH"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-yQ":"Q y","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormatItem-yyyyMd":"d/M/y G","dateFormat-full":"EEEE, d MMMM y G","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-yyyyMMMEd":"EEE, MMM d, y G","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-MMM":"LLL","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-yyyy":"y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-EEEd":"d EEE","dateFormatItem-Hm":"HH:mm","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-ms":"mm:ss","dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","timeFormat-short":"h:mm a","dateFormatItem-M":"L","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-hm":"h:mm a","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-d":"d","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-gb/number.js b/lib/dojo/cldr/nls/en-gb/number.js index 748ea804a..70e56f471 100644 --- a/lib/dojo/cldr/nls/en-gb/number.js +++ b/lib/dojo/cldr/nls/en-gb/number.js @@ -1 +1 @@ -({"currencyFormat":"¤#,##0.00","group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"currencyFormat":"¤#,##0.00","group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","decimalFormat-short":"000T","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en/buddhist.js b/lib/dojo/cldr/nls/en/buddhist.js new file mode 100644 index 000000000..2e3ea93fc --- /dev/null +++ b/lib/dojo/cldr/nls/en/buddhist.js @@ -0,0 +1 @@ +({"dateFormat-medium":"MMM d, y G","dateFormatItem-MMMEd":"E, MMM d","dateFormatItem-MEd":"E, M/d","dateFormatItem-yMEd":"EEE, M/d/y G","dateFormatItem-Hm":"HH:mm","dateFormatItem-y":"y G","timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-hm":"h:mm a","dateFormatItem-Md":"M/d","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-EEEd":"d EEE","dateFormatItem-M":"L","days-standAlone-narrow":["S","M","T","W","T","F","S"],"dateFormatItem-yQQQ":"QQQ y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hms":"HH:mm:ss","dateFormat-long":"MMMM d, y G","dateFormatItem-ms":"mm:ss","dateFormat-short":"M/d/yy G","dateFormatItem-yMMMEd":"EEE, MMM d, y G","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-d":"d","dateFormatItem-yM":"M/y G","timeFormat-short":"h:mm a","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"timeFormat-long":"h:mm:ss a z","days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQ":"Q y G","dateFormatItem-MMM":"LLL","dateFormatItem-yMMM":"MMM y G","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormat-full":"EEEE, MMMM d, y G","dateFormatItem-MMMd":"MMM d","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en/currency.js b/lib/dojo/cldr/nls/en/currency.js index e9729d96a..4f780c154 100644 --- a/lib/dojo/cldr/nls/en/currency.js +++ b/lib/dojo/cldr/nls/en/currency.js @@ -1 +1 @@ -({"HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan Renminbi","USD_symbol":"$","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file +({"HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan","USD_symbol":"$","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en/islamic.js b/lib/dojo/cldr/nls/en/islamic.js new file mode 100644 index 000000000..5d8f34bd8 --- /dev/null +++ b/lib/dojo/cldr/nls/en/islamic.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"EEE, MMM d, y G","dateFormatItem-yQ":"Q y","eraNames":["AH"],"dateFormatItem-MMMEd":"E, MMM d","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-full":"h:mm:ss a zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["S","M","T","W","T","F","S"],"eraAbbr":["AH"],"dateFormat-long":"MMMM d, y G","timeFormat-medium":"h:mm:ss a","dateFormatItem-EEEd":"d EEE","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"MMM d, y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-ms":"mm:ss","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMEd":"EEE, M/d/y G","dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"timeFormat-short":"h:mm a","days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"L","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E, M/d","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateFormat-short":"M/d/yy G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"EEE, MMM d, y","dateFormat-full":"EEEE, MMMM d, y G","dateFormatItem-Md":"M/d","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE, M/d/y","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"eraNarrow":["AH"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en/number.js b/lib/dojo/cldr/nls/en/number.js index 92b2e32bf..9c2a23153 100644 --- a/lib/dojo/cldr/nls/en/number.js +++ b/lib/dojo/cldr/nls/en/number.js @@ -1 +1 @@ -({"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-short":"000T","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/es/buddhist.js b/lib/dojo/cldr/nls/es/buddhist.js new file mode 100644 index 000000000..eadddb3e7 --- /dev/null +++ b/lib/dojo/cldr/nls/es/buddhist.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M/y G","dateFormatItem-yQ":"Q y G","dayPeriods-format-wide-pm":"p.m.","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y G","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"dayPeriods-format-wide-am":"a.m.","dateFormatItem-y":"y G","dateFormatItem-MMMdd":"dd-MMM","dateFormatItem-yMMM":"MMM y G","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-yyyyMM":"MM/y G","dateFormat-long":"d 'de' MMMM 'de' y G","dateFormatItem-EEEd":"EEE d","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/MM","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"dd/MM/y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM-y G","dateFormatItem-yyQQQQ":"QQQQ 'de' y G","dateFormatItem-yMd":"d/M/y G","dateFormatItem-yMMMM":"MMMM 'de' y G","dateFormatItem-ms":"mm:ss","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"dateFormatItem-MMMMd":"d 'de' MMMM","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-M":"L","dateFormatItem-yMMMd":"d MMM y G","dateFormatItem-MEd":"E, d/M","dateFormatItem-hm":"hh:mm a","dateFormat-short":"dd/MM/y G","dateFormatItem-yMMMEd":"EEE, d MMM y G","dateFormat-full":"EEEE d 'de' MMMM 'de' y G","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE d/M/y G","months-format-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"dateFormatItem-d":"d","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-h":"hh a","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateTimeFormats-appendItem-Era":"{0} {1}","timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/es/islamic.js b/lib/dojo/cldr/nls/es/islamic.js new file mode 100644 index 000000000..906accde0 --- /dev/null +++ b/lib/dojo/cldr/nls/es/islamic.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M/y","dateFormatItem-yyyyMMMEd":"EEE, d MMM y G","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"p.m.","eraNames":["AH"],"dateFormatItem-MMMEd":"E d MMM","dateFormatItem-hms":"hh:mm:ss a","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-MMM":"LLL","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dayPeriods-format-wide-am":"a.m.","dateFormatItem-MMMdd":"dd-MMM","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["D","L","M","M","J","V","S"],"eraAbbr":["AH"],"dateFormatItem-yyyyMMMM":"MMMM 'de' y G","dateFormat-long":"d 'de' MMMM 'de' y G","dateFormatItem-EEEd":"EEE d","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d/MM","dateFormatItem-yyMM":"MM/y G","dateFormat-medium":"dd/MM/y G","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyMMM":"MMM-y G","dateFormatItem-yyQQQQ":"QQQQ 'de' y G","dateFormatItem-ms":"mm:ss","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMEd":"EEE d/M/y G","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q y G","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateFormatItem-MMMMd":"d 'de' MMMM","quarters-format-abbr":["T1","T2","T3","T4"],"days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-M":"L","dateFormatItem-MEd":"E, d/M","dateFormatItem-yyyyQQQ":"QQQ y G","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"hh:mm a","dateFormat-short":"dd/MM/y G","dateFormatItem-yyyyM":"M/y G","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormat-full":"EEEE d 'de' MMMM 'de' y G","dateFormatItem-Md":"d/M","dateFormatItem-yyyyQ":"Q y G","dateFormatItem-yMEd":"EEE d/M/y","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateFormatItem-yyyyMMM":"MMM y G","dateFormatItem-d":"d","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"eraNarrow":["AH"],"days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-h":"hh a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateTimeFormats-appendItem-Era":"{0} {1}","timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/es/number.js b/lib/dojo/cldr/nls/es/number.js index be433d85a..4a31948c4 100644 --- a/lib/dojo/cldr/nls/es/number.js +++ b/lib/dojo/cldr/nls/es/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fi/buddhist.js b/lib/dojo/cldr/nls/fi/buddhist.js new file mode 100644 index 000000000..2598108a3 --- /dev/null +++ b/lib/dojo/cldr/nls/fi/buddhist.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"L.y G","dateFormatItem-yMMMMccccd":"cccc, d. MMMM y G","dateFormatItem-yQ":"Q/y G","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y G","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"ap.","dateFormatItem-y":"y G","timeFormat-full":"H.mm.ss zzzz","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"dateFormatItem-Ed":"ccc d.","dateFormatItem-yMMM":"LLLL y G","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormatItem-yyyyMEEEd":"EEE d.M.y G","dateFormatItem-yyMM":"M.y G","dateFormat-medium":"d.M.y G","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-yyMMM":"LLLL y G","dateFormatItem-ms":"mm.ss","dateFormatItem-yyyyQQQQ":"QQQQ y G","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q/y G","timeFormat-long":"H.mm.ss z","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-H":"H","timeFormat-short":"H.mm","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-M":"L","dateFormatItem-MEd":"E d.M.","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"EEE d. MMM y G","dateFormat-full":"cccc d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"EEE d.M.y G","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dayPeriods-format-abbr-am":"ap.","dateFormatItem-d":"d","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fi/gregorian.js b/lib/dojo/cldr/nls/fi/gregorian.js index db2ffc7c1..c9ca4b9b3 100644 --- a/lib/dojo/cldr/nls/fi/gregorian.js +++ b/lib/dojo/cldr/nls/fi/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"field-weekday":"viikonpäivä","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["eKr.","jKr."],"dateFormat-long":"d. MMMM y","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-EEEd":"EEE d.","dayPeriods-format-wide-pm":"ip.","dateFormat-full":"EEEE d. MMMM y","dateFormatItem-Md":"d.M.","dayPeriods-standAlone-wide-pm":"ip.","dayPeriods-format-abbr-am":"ap.","field-era":"aikakausi","dateFormatItem-yM":"L.yyyy","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"timeFormat-short":"H.mm","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"timeFormat-long":"H.mm.ss z","field-year":"vuosi","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q/yyyy","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"tunti","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-yyQ":"Q/yy","timeFormat-full":"H.mm.ss zzzz","dateFormatItem-yyyyMEEEd":"EEE d.M.yyyy","field-day-relative+0":"tänään","field-day-relative+1":"huomenna","field-day-relative+2":"ylihuomenna","dateFormatItem-H":"H","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-M":"L","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-yyMMM":"LLLL yy","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"eraAbbr":["eKr.","jKr."],"field-minute":"minuutti","field-dayperiod":"ap./ip.","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"eilen","field-day-relative+-2":"toissapäivänä","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M.","field-day":"päivä","dateFormatItem-yMMMMccccd":"cccc, d. MMMM y","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"field-zone":"aikavyöhyke","dateFormatItem-y":"y","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"dateFormatItem-yyMM":"M/yy","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","days-format-abbr":["su","ma","ti","ke","to","pe","la"],"eraNames":["ennen Kristuksen syntymää","jälkeen Kristuksen syntymän"],"days-format-narrow":["S","M","T","K","T","P","L"],"field-month":"kuukausi","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"ap.","dayPeriods-standAlone-wide-am":"ap.","dateFormat-short":"d.M.yyyy","field-second":"sekunti","dateFormatItem-yMMMEd":"EEE d. MMM y","field-week":"viikko","dateFormat-medium":"d.M.yyyy","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-hms":"h.mm.ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file +({"months-format-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"field-weekday":"viikonpäivä","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["eKr.","jKr."],"dateFormat-long":"d. MMMM y","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dayPeriods-format-wide-pm":"ip.","dateFormat-full":"cccc d. MMMM y","dateFormatItem-Md":"d.M.","dayPeriods-standAlone-wide-pm":"ip.","dayPeriods-format-abbr-am":"ap.","field-era":"aikakausi","dateFormatItem-yM":"L.yyyy","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"timeFormat-short":"H.mm","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"timeFormat-long":"H.mm.ss z","field-year":"vuosi","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q/yyyy","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"tunti","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-yyQ":"Q/yy","timeFormat-full":"H.mm.ss zzzz","dateFormatItem-yyyyMEEEd":"EEE d.M.yyyy","field-day-relative+0":"tänään","field-day-relative+1":"huomenna","field-day-relative+2":"ylihuomenna","dateFormatItem-H":"H","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-M":"L","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-yyMMM":"LLLL yy","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"eraAbbr":["eKr.","jKr."],"field-minute":"minuutti","field-dayperiod":"ap./ip.","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"eilen","field-day-relative+-2":"toissapäivänä","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M.","field-day":"päivä","dateFormatItem-yMMMMccccd":"cccc, d. MMMM y","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"field-zone":"aikavyöhyke","dateFormatItem-y":"y","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"dateFormatItem-yyMM":"M/yy","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","days-format-abbr":["su","ma","ti","ke","to","pe","la"],"eraNames":["ennen Kristuksen syntymää","jälkeen Kristuksen syntymän"],"days-format-narrow":["S","M","T","K","T","P","L"],"field-month":"kuukausi","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"ap.","dayPeriods-standAlone-wide-am":"ap.","dateFormat-short":"d.M.yyyy","field-second":"sekunti","dateFormatItem-yMMMEd":"EEE d. MMM y","dateFormatItem-Ed":"ccc d.","field-week":"viikko","dateFormat-medium":"d.M.yyyy","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-hms":"h.mm.ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fi/hebrew.js b/lib/dojo/cldr/nls/fi/hebrew.js new file mode 100644 index 000000000..77443f061 --- /dev/null +++ b/lib/dojo/cldr/nls/fi/hebrew.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"L.yyyy","dateFormatItem-yQ":"Q/yyyy","months-standAlone-abbr-leap":"adár II","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"months-standAlone-narrow":["T","H","K","T","S","A","A","N","I","S","T","A","E"],"dayPeriods-format-wide-am":"ap.","timeFormat-full":"H.mm.ss zzzz","months-standAlone-narrow-leap":"A","months-standAlone-abbr":["tišrí","hešván","kislév","tevét","ševát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl"],"dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormat-long":"d. MMMM y","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-ms":"mm.ss","months-standAlone-wide":["tišríkuu","hešvánkuu","kislévkuu","tevétkuu","ševátkuu","adárkuu I","adárkuu","nisánkuu","ijjárkuu","sivánkuu","tammúzkuu","abkuu","elúlkuu"],"dateFormatItem-MMMd":"d. MMM","timeFormat-long":"H.mm.ss z","months-format-abbr":["tišríkuuta","hešvánkuuta","kislévkuuta","tevétkuuta","ševátkuuta","adárkuuta I","adárkuuta","nisánkuuta","ijjárkuuta","sivánkuuta","tammúzkuuta","abkuuta","elúlkuuta"],"timeFormat-short":"H.mm","dateFormatItem-H":"H","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-MEd":"E d.M.","months-format-narrow":["T","H","K","T","S","A","A","N","I","S","T","A","E"],"dateFormatItem-hm":"h.mm a","months-standAlone-wide-leap":"adárkuu II","dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.yyyy","dateFormatItem-yMMMEd":"EEE d. MMM y","dateFormat-full":"cccc d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"EEE d.M.yyyy","months-format-wide":["tišríkuuta","hešvánkuuta","kislévkuuta","tevétkuuta","ševátkuuta","adárkuuta I","adárkuuta","nisánkuuta","ijjárkuuta","sivánkuuta","tammúzkuuta","abkuuta","elúlkuuta"],"dayPeriods-format-abbr-am":"ap.","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"months-format-wide-leap":"adárkuuta II","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["AM"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr-leap":"Adar II","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"months-format-narrow-leap":"Adar II","eraAbbr":["AM"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","eraNames":["AM"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fi/islamic.js b/lib/dojo/cldr/nls/fi/islamic.js new file mode 100644 index 000000000..33eff8f87 --- /dev/null +++ b/lib/dojo/cldr/nls/fi/islamic.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"L.yyyy","dateFormatItem-yyyyMMMEd":"EEE d. MMM y G","dateFormatItem-yQ":"Q/yyyy","dayPeriods-format-wide-pm":"ip.","dateFormatItem-MMMEd":"E d. MMM","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-MMM":"LLL","dateFormatItem-Gy":"y G","dayPeriods-format-wide-am":"ap.","dateFormatItem-y":"y G","timeFormat-full":"H.mm.ss zzzz","dateFormatItem-yyyy":"y G","months-standAlone-abbr":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dateFormatItem-Ed":"ccc d.","dateFormatItem-yMMM":"LLL y","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-yyyyMMMMccccd":"cccc, d. MMMM y G","dateFormatItem-yyyyMM":"M.y G","dateFormatItem-yyyyMMMM":"LLLL y G","dateFormat-long":"d. MMMM y G","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","dateFormat-medium":"d.M.y G","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-ms":"mm.ss","dateFormatItem-yyyyQQQQ":"QQQQ y G","months-standAlone-wide":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dateFormatItem-yyyyMEd":"EEE d.M.y G","dateFormatItem-MMMd":"d. MMM","timeFormat-long":"H.mm.ss z","months-format-abbr":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"timeFormat-short":"H.mm","dateFormatItem-H":"H","quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"days-format-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-M":"L","dateFormatItem-yyyyQQQ":"QQQ y G","dateFormatItem-MEd":"E d.M.","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","dateFormat-short":"d.M.y G","dateFormatItem-yyyyM":"M.y G","dateFormatItem-yMMMEd":"EEE d. MMM y","dateFormat-full":"cccc d. MMMM y G","dateFormatItem-Md":"d.M.","dateFormatItem-yyyyQ":"Q/y G","dateFormatItem-yMEd":"EEE d.M.yyyy","months-format-wide":["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","džumada-l-ula","džumada-l-akhira","radžab","ša’ban","ramadan","šawwal","dhu-l-qa’da","dhu-l-hiddža"],"dayPeriods-format-abbr-am":"ap.","dateFormatItem-yyyyMMM":"LLLL y G","dateFormatItem-d":"d","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["AH"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["AH"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","eraNames":["AH"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fi/number.js b/lib/dojo/cldr/nls/fi/number.js index aa0fee6ef..1713de48a 100644 --- a/lib/dojo/cldr/nls/fi/number.js +++ b/lib/dojo/cldr/nls/fi/number.js @@ -1 +1 @@ -({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fr-ch/gregorian.js b/lib/dojo/cldr/nls/fr-ch/gregorian.js new file mode 100644 index 000000000..9c5c08432 --- /dev/null +++ b/lib/dojo/cldr/nls/fr-ch/gregorian.js @@ -0,0 +1 @@ +({"timeFormat-full":"HH.mm:ss 'h' zzzz","dateFormat-full":"EEEE, d MMMM y","dateFormat-short":"dd.MM.yy","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"jour de la semaine","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["av. J.-C.","ap. J.-C."],"dayPeriods-format-wide-morning":"matin","dateFormatItem-MMMdd":"dd MMM","dateFormat-long":"d MMMM y","months-format-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"dayPeriods-format-wide-pm":"PM","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"midi","field-era":"ère","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"année","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'T'Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"heure","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"dateFormatItem-yyQ":"'T'Q yy","field-day-relative+0":"aujourd’hui","field-day-relative+1":"demain","field-day-relative+2":"après-demain","field-day-relative+3":"après-après-demain","months-standAlone-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-yyMMMEEEd":"EEE d MMM yy","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["av. J.-C.","ap. J.-C."],"field-minute":"minute","field-dayperiod":"cadran","days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dayPeriods-format-wide-night":"soir","dateFormatItem-yyMMMd":"d MMM yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["T1","T2","T3","T4"],"field-day-relative+-1":"hier","field-day-relative+-2":"avant-hier","field-day-relative+-3":"avant-avant-hier","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"jour","days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"field-zone":"fuseau horaire","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"eraNames":["avant Jésus-Christ","après Jésus-Christ"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mois","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"EEE d MMMM","dateFormatItem-MMd":"d/MM","dayPeriods-format-wide-afternoon":"après-midi","field-second":"seconde","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormatItem-Ed":"E d","field-week":"semaine","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fr-ch/number.js b/lib/dojo/cldr/nls/fr-ch/number.js new file mode 100644 index 000000000..8d9a79e56 --- /dev/null +++ b/lib/dojo/cldr/nls/fr-ch/number.js @@ -0,0 +1 @@ +({"currencyFormat":"¤ #,##0.00;¤-#,##0.00","group":"'","decimal":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fr/gregorian.js b/lib/dojo/cldr/nls/fr/gregorian.js index 052b03393..0d0983d49 100644 --- a/lib/dojo/cldr/nls/fr/gregorian.js +++ b/lib/dojo/cldr/nls/fr/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"jour de la semaine","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["av. J.-C.","ap. J.-C."],"dayPeriods-format-wide-morning":"matin","dateFormatItem-MMMdd":"dd MMM","dateFormat-long":"d MMMM y","months-format-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"midi","field-era":"ère","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"année","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'T'Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"heure","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"dateFormatItem-yyQ":"'T'Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"aujourd’hui","field-day-relative+1":"demain","field-day-relative+2":"après-demain","field-day-relative+3":"après-après-demain","months-standAlone-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-yyMMMEEEd":"EEE d MMM yy","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["av. J.-C.","ap. J.-C."],"field-minute":"minute","field-dayperiod":"cadran","days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dayPeriods-format-wide-night":"soir","dateFormatItem-yyMMMd":"d MMM yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["T1","T2","T3","T4"],"field-day-relative+-1":"hier","field-day-relative+-2":"avant-hier","field-day-relative+-3":"avant-avant-hier","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"jour","days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"field-zone":"fuseau horaire","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"eraNames":["avant Jésus-Christ","après Jésus-Christ"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mois","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"EEE d MMMM","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","dayPeriods-format-wide-afternoon":"après-midi","field-second":"seconde","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"semaine","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"jour de la semaine","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["av. J.-C.","ap. J.-C."],"dayPeriods-format-wide-morning":"matin","dateFormatItem-MMMdd":"dd MMM","dateFormat-long":"d MMMM y","months-format-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"midi","field-era":"ère","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"année","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'T'Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"heure","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"dateFormatItem-yyQ":"'T'Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"aujourd’hui","field-day-relative+1":"demain","field-day-relative+2":"après-demain","field-day-relative+3":"après-après-demain","months-standAlone-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-yyMMMEEEd":"EEE d MMM yy","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["av. J.-C.","ap. J.-C."],"field-minute":"minute","field-dayperiod":"cadran","days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dayPeriods-format-wide-night":"soir","dateFormatItem-yyMMMd":"d MMM yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["T1","T2","T3","T4"],"field-day-relative+-1":"hier","field-day-relative+-2":"avant-hier","field-day-relative+-3":"avant-avant-hier","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"jour","days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"field-zone":"fuseau horaire","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"eraNames":["avant Jésus-Christ","après Jésus-Christ"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mois","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"EEE d MMMM","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","dayPeriods-format-wide-afternoon":"après-midi","field-second":"seconde","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormatItem-Ed":"E d","field-week":"semaine","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fr/number.js b/lib/dojo/cldr/nls/fr/number.js index f9a71abd6..9dcfdd4d9 100644 --- a/lib/dojo/cldr/nls/fr/number.js +++ b/lib/dojo/cldr/nls/fr/number.js @@ -1 +1 @@ -({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/he/number.js b/lib/dojo/cldr/nls/he/number.js index 23e6fa4e2..565c899fe 100644 --- a/lib/dojo/cldr/nls/he/number.js +++ b/lib/dojo/cldr/nls/he/number.js @@ -1 +1 @@ -({"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/hu/gregorian.js b/lib/dojo/cldr/nls/hu/gregorian.js index 0418bd716..a8cc39a09 100644 --- a/lib/dojo/cldr/nls/hu/gregorian.js +++ b/lib/dojo/cldr/nls/hu/gregorian.js @@ -1 +1 @@ -({"field-dayperiod":"napszak","dayPeriods-format-wide-pm":"du.","field-minute":"perc","eraNames":["időszámításunk előtt","időszámításunk szerint"],"field-day-relative+-1":"tegnap","field-weekday":"hét napja","field-day-relative+-2":"tegnapelőtt","dateFormatItem-MMdd":"MM.dd.","field-day-relative+-3":"három nappal ezelőtt","days-standAlone-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"field-era":"éra","field-hour":"óra","dayPeriods-format-wide-am":"de.","quarters-standAlone-abbr":["N1","N2","N3","N4"],"timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"field-day-relative+0":"ma","field-day-relative+1":"holnap","days-standAlone-narrow":["V","H","K","Sz","Cs","P","Sz"],"eraAbbr":["i. e.","i. sz."],"field-day-relative+2":"holnapután","field-day-relative+3":"három nap múlva","dateFormatItem-yyyyMM":"yyyy.MM","dateFormatItem-yyyyMMMM":"y. MMMM","dateFormat-long":"y. MMMM d.","timeFormat-medium":"H:mm:ss","field-zone":"zóna","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy.MM.dd.","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"field-year":"év","field-week":"hét","months-standAlone-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-MMMd":"MMM d.","dateFormatItem-yyQ":"yy/Q","timeFormat-long":"H:mm:ss z","months-format-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"hónap","dateFormatItem-MMMMd":"MMMM d.","quarters-format-abbr":["N1","N2","N3","N4"],"days-format-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-mmss":"mm:ss","dateFormatItem-M":"L","days-format-narrow":["V","H","K","Sz","Cs","P","Sz"],"field-second":"másodperc","field-day":"nap","dateFormatItem-MEd":"M. d., E","months-format-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"days-standAlone-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormat-short":"yyyy.MM.dd.","dateFormat-full":"y. MMMM d., EEEE","dateFormatItem-Md":"M. d.","months-format-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-d":"d","quarters-format-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"days-format-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"eraNarrow":["i. e.","i. sz."],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"field-dayperiod":"napszak","dayPeriods-format-wide-pm":"du.","field-minute":"perc","eraNames":["időszámításunk előtt","időszámításunk szerint"],"dateFormatItem-MMMEd":"MMM d., E","field-day-relative+-1":"tegnap","field-weekday":"hét napja","field-day-relative+-2":"tegnapelőtt","dateFormatItem-MMdd":"MM.dd.","field-day-relative+-3":"három nappal ezelőtt","days-standAlone-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"field-era":"éra","field-hour":"óra","dayPeriods-format-wide-am":"de.","quarters-standAlone-abbr":["N1","N2","N3","N4"],"timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"dateFormatItem-Ed":"d., E","field-day-relative+0":"ma","field-day-relative+1":"holnap","days-standAlone-narrow":["V","H","K","Sz","Cs","P","Sz"],"eraAbbr":["i. e.","i. sz."],"field-day-relative+2":"holnapután","field-day-relative+3":"három nap múlva","dateFormatItem-yyyyMM":"yyyy.MM","dateFormatItem-yyyyMMMM":"y. MMMM","dateFormat-long":"y. MMMM d.","timeFormat-medium":"H:mm:ss","field-zone":"zóna","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy.MM.dd.","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"field-year":"év","field-week":"hét","months-standAlone-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-MMMd":"MMM d.","dateFormatItem-yyQ":"yy/Q","timeFormat-long":"H:mm:ss z","months-format-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"hónap","dateFormatItem-MMMMd":"MMMM d.","quarters-format-abbr":["N1","N2","N3","N4"],"days-format-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-mmss":"mm:ss","dateFormatItem-M":"L","days-format-narrow":["V","H","K","Sz","Cs","P","Sz"],"field-second":"másodperc","field-day":"nap","dateFormatItem-MEd":"M. d., E","months-format-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"days-standAlone-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormat-short":"yyyy.MM.dd.","dateFormatItem-yMMMEd":"y. MMM d., E","dateFormat-full":"y. MMMM d., EEEE","dateFormatItem-Md":"M. d.","dateFormatItem-yMEd":"yyyy.MM.dd., E","months-format-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-d":"d","quarters-format-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"days-format-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"eraNarrow":["i. e.","i. sz."],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/hu/number.js b/lib/dojo/cldr/nls/hu/number.js index 472a2c86d..8ce153f8a 100644 --- a/lib/dojo/cldr/nls/hu/number.js +++ b/lib/dojo/cldr/nls/hu/number.js @@ -1 +1 @@ -({"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/it/gregorian.js b/lib/dojo/cldr/nls/it/gregorian.js index dbd7207e2..118b60b45 100644 --- a/lib/dojo/cldr/nls/it/gregorian.js +++ b/lib/dojo/cldr/nls/it/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"field-weekday":"giorno della settimana","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d/M/y","dateFormatItem-MMMEd":"EEE d MMM","eraNarrow":["aC","dC"],"dateFormat-long":"dd MMMM y","months-format-wide":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"dayPeriods-format-wide-pm":"p.","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"anno","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q-yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"oggi","field-day-relative+1":"domani","field-day-relative+2":"dopodomani","field-day-relative+3":"tra tre giorni","months-standAlone-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["aC","dC"],"field-minute":"minuto","field-dayperiod":"periodo del giorno","days-standAlone-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ieri","dateFormatItem-h":"hh a","field-day-relative+-2":"l'altro ieri","field-day-relative+-3":"tre giorni fa","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"giorno","days-format-wide":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"field-zone":"zona","dateFormatItem-y":"y","months-standAlone-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mer","gio","ven","sab"],"eraNames":["a.C.","d.C"],"days-format-narrow":["D","L","M","M","G","V","S"],"field-month":"mese","days-standAlone-narrow":["D","L","M","M","G","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"m.","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"dd/MM/yy","field-second":"secondo","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"settimana","dateFormat-medium":"dd/MMM/y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file +({"months-format-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"field-weekday":"giorno della settimana","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d/M/y","dateFormatItem-MMMEd":"EEE d MMM","eraNarrow":["aC","dC"],"dateFormat-long":"dd MMMM y","months-format-wide":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"dayPeriods-format-wide-pm":"p.","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"anno","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q-yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"oggi","field-day-relative+1":"domani","field-day-relative+2":"dopodomani","field-day-relative+3":"tra tre giorni","months-standAlone-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["aC","dC"],"field-minute":"minuto","field-dayperiod":"periodo del giorno","days-standAlone-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ieri","dateFormatItem-h":"hh a","field-day-relative+-2":"l'altro ieri","field-day-relative+-3":"tre giorni fa","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"giorno","days-format-wide":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"field-zone":"zona","dateFormatItem-y":"y","months-standAlone-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mer","gio","ven","sab"],"eraNames":["a.C.","d.C"],"days-format-narrow":["D","L","M","M","G","V","S"],"field-month":"mese","days-standAlone-narrow":["D","L","M","M","G","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"m.","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"dd/MM/yy","field-second":"secondo","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormatItem-Ed":"E d","field-week":"settimana","dateFormat-medium":"dd/MMM/y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/it/number.js b/lib/dojo/cldr/nls/it/number.js index d878fb383..4fc6202a5 100644 --- a/lib/dojo/cldr/nls/it/number.js +++ b/lib/dojo/cldr/nls/it/number.js @@ -1 +1 @@ -({"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":",","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file +({"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":",","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ja/gregorian.js b/lib/dojo/cldr/nls/ja/gregorian.js index 412613187..faea6fc9b 100644 --- a/lib/dojo/cldr/nls/ja/gregorian.js +++ b/lib/dojo/cldr/nls/ja/gregorian.js @@ -1 +1 @@ -({"field-weekday":"曜日","dateFormatItem-yQQQ":"yQQQ","dateFormatItem-yMEd":"y/M/d(EEE)","dateFormatItem-MMMEd":"M月d日(E)","eraNarrow":["BC","AD"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"午後","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMd":"y/M/d","field-era":"時代","dateFormatItem-yM":"y/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"H:mm","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"timeFormat-long":"H:mm:ss z","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y/Q","field-hour":"時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy/Q","timeFormat-full":"H時mm分ss秒 zzzz","field-day-relative+0":"今日","field-day-relative+1":"明日","field-day-relative+2":"明後日","dateFormatItem-H":"H時","field-day-relative+3":"3日後","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"dateFormatItem-M":"L","days-standAlone-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-yyMMM":"y年M月","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","eraAbbr":["BC","AD"],"field-minute":"分","field-dayperiod":"午前/午後","days-standAlone-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨日","dateFormatItem-h":"ah","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"一昨日","field-day-relative+-3":"3日前","dateFormatItem-MMMd":"M月d日","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"field-zone":"タイムゾーン","dateFormatItem-yyyyMM":"yyyy/MM","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"ah:mm","dateFormatItem-GGGGyMd":"GGGGy年M月d日","days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-yMMMd":"y年M月d日","eraNames":["紀元前","西暦"],"days-format-narrow":["日","月","火","水","木","金","土"],"field-month":"月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"午前","dateFormat-short":"yy/MM/dd","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日(EEE)","dateFormatItem-Ed":"d日(EEE)","field-week":"週","dateFormat-medium":"yyyy/MM/dd","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file +({"field-weekday":"曜日","dateFormatItem-yQQQ":"yQQQ","dateFormatItem-yMEd":"y/M/d(EEE)","dateFormatItem-MMMEd":"M月d日(E)","eraNarrow":["BC","AD"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"午後","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMd":"y/M/d","field-era":"時代","dateFormatItem-yM":"y/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"H:mm","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"timeFormat-long":"H:mm:ss z","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y/Q","field-hour":"時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy/Q","timeFormat-full":"H時mm分ss秒 zzzz","field-day-relative+0":"今日","field-day-relative+1":"明日","field-day-relative+2":"明後日","dateFormatItem-H":"H時","field-day-relative+3":"3日後","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"dateFormatItem-M":"M月","days-standAlone-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-yyMMM":"y年M月","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","eraAbbr":["BC","AD"],"field-minute":"分","field-dayperiod":"午前/午後","days-standAlone-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨日","dateFormatItem-h":"ah時","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"一昨日","field-day-relative+-3":"3日前","dateFormatItem-MMMd":"M月d日","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"field-zone":"タイムゾーン","dateFormatItem-yyyyMM":"yyyy/MM","dateFormatItem-y":"y年","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"ah:mm","dateFormatItem-GGGGyMd":"GGGGy年M月d日","days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-yMMMd":"y年M月d日","eraNames":["紀元前","西暦"],"days-format-narrow":["日","月","火","水","木","金","土"],"field-month":"月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"午前","dateFormat-short":"yy/MM/dd","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日(EEE)","dateFormatItem-Ed":"d日(EEE)","field-week":"週","dateFormat-medium":"yyyy/MM/dd","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ja/number.js b/lib/dojo/cldr/nls/ja/number.js index 90d87b946..dbde35c64 100644 --- a/lib/dojo/cldr/nls/ja/number.js +++ b/lib/dojo/cldr/nls/ja/number.js @@ -1 +1 @@ -({"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file +({"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ko/gregorian.js b/lib/dojo/cldr/nls/ko/gregorian.js index b10bdbf17..8f52d1c6f 100644 --- a/lib/dojo/cldr/nls/ko/gregorian.js +++ b/lib/dojo/cldr/nls/ko/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"field-weekday":"요일","dateFormatItem-yQQQ":"y년 QQQ","dateFormatItem-yMEd":"yyyy. M. d. EEE","dateFormatItem-MMMEd":"MMM d일 (E)","eraNarrow":["기원전","서기"],"dateFormat-long":"y년 M월 d일","months-format-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d일 EEE","dayPeriods-format-wide-pm":"오후","dateFormat-full":"y년 M월 d일 EEEE","dateFormatItem-Md":"M. d.","field-era":"연호","dateFormatItem-yM":"yyyy. M.","months-standAlone-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"timeFormat-short":"a h:mm","quarters-format-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"timeFormat-long":"a h시 m분 s초 z","field-year":"년","dateFormatItem-yMMM":"y년 MMM","dateFormatItem-yQ":"y년 Q분기","field-hour":"시","dateFormatItem-MMdd":"MM. dd","months-format-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyQ":"yy년 Q분기","timeFormat-full":"a h시 m분 s초 zzzz","field-day-relative+0":"오늘","field-day-relative+1":"내일","field-day-relative+2":"모레","field-day-relative+3":"3일후","months-standAlone-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"quarters-format-abbr":["1분기","2분기","3분기","4분기"],"quarters-standAlone-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"dateFormatItem-yyMMM":"yy년 MMM","timeFormat-medium":"a h:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1분기","2분기","3분기","4분기"],"eraAbbr":["기원전","서기"],"field-minute":"분","field-dayperiod":"오전/오후","days-standAlone-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"어제","dateFormatItem-h":"a h","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"그저께","field-day-relative+-3":"그끄제","dateFormatItem-MMMd":"MMM d일","dateFormatItem-MEd":"M. d. (E)","dateTimeFormat-full":"{1} {0}","field-day":"일","days-format-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"field-zone":"시간대","dateFormatItem-yyyyMM":"yyyy. MM","dateFormatItem-y":"y","months-standAlone-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyMM":"YY. M.","dateFormatItem-hm":"a h:mm","days-format-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-yMMMd":"y년 MMM d일","eraNames":["서력기원전","서력기원"],"days-format-narrow":["일","월","화","수","목","금","토"],"field-month":"월","days-standAlone-narrow":["일","월","화","수","목","금","토"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"오전","dateFormat-short":"yy. M. d.","field-second":"초","dateFormatItem-yMMMEd":"y년 MMM d일 EEE","dateFormatItem-Ed":"d일 (E)","field-week":"주","dateFormat-medium":"yyyy. M. d.","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H시 m분 s초","dateFormatItem-hms":"a h:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file +({"months-format-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"field-weekday":"요일","dateFormatItem-yQQQ":"y년 QQQ","dateFormatItem-yMEd":"yyyy. M. d. EEE","dateFormatItem-MMMEd":"MMM d일 (E)","eraNarrow":["기원전","서기"],"dateFormat-long":"y년 M월 d일","months-format-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d일 EEE","dayPeriods-format-wide-pm":"오후","dateFormat-full":"y년 M월 d일 EEEE","dateFormatItem-Md":"M. d.","field-era":"연호","dateFormatItem-yM":"yyyy. M.","months-standAlone-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"timeFormat-short":"a h:mm","quarters-format-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"timeFormat-long":"a h시 m분 s초 z","field-year":"년","dateFormatItem-yMMM":"y년 MMM","dateFormatItem-yQ":"y년 Q분기","field-hour":"시","dateFormatItem-MMdd":"MM. dd","months-format-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyQ":"yy년 Q분기","timeFormat-full":"a h시 m분 s초 zzzz","field-day-relative+0":"오늘","field-day-relative+1":"내일","field-day-relative+2":"모레","dateFormatItem-H":"H시","field-day-relative+3":"3일후","months-standAlone-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"quarters-format-abbr":["1분기","2분기","3분기","4분기"],"quarters-standAlone-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"M월","days-standAlone-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"dateFormatItem-yyMMM":"yy년 MMM","timeFormat-medium":"a h:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1분기","2분기","3분기","4분기"],"eraAbbr":["기원전","서기"],"field-minute":"분","field-dayperiod":"오전/오후","days-standAlone-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-d":"d일","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"어제","dateFormatItem-h":"a h시","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"그저께","field-day-relative+-3":"그끄제","dateFormatItem-MMMd":"MMM d일","dateFormatItem-MEd":"M. d. (E)","dateTimeFormat-full":"{1} {0}","field-day":"일","days-format-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"field-zone":"시간대","dateFormatItem-yyyyMM":"yyyy. MM","dateFormatItem-y":"y년","months-standAlone-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyMM":"YY. M.","dateFormatItem-hm":"a h:mm","days-format-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-yMMMd":"y년 MMM d일","eraNames":["서력기원전","서력기원"],"days-format-narrow":["일","월","화","수","목","금","토"],"field-month":"월","days-standAlone-narrow":["일","월","화","수","목","금","토"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"오전","dateFormat-short":"yy. M. d.","field-second":"초","dateFormatItem-yMMMEd":"y년 MMM d일 EEE","dateFormatItem-Ed":"d일 (E)","field-week":"주","dateFormat-medium":"yyyy. M. d.","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H시 m분 s초","dateFormatItem-hms":"a h:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ko/number.js b/lib/dojo/cldr/nls/ko/number.js index b155b913d..70be2f666 100644 --- a/lib/dojo/cldr/nls/ko/number.js +++ b/lib/dojo/cldr/nls/ko/number.js @@ -1 +1 @@ -({"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nb/gregorian.js b/lib/dojo/cldr/nls/nb/gregorian.js index 008dd84dd..409a7cc48 100644 --- a/lib/dojo/cldr/nls/nb/gregorian.js +++ b/lib/dojo/cldr/nls/nb/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"ukedag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d. MMMM y","months-format-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d. MMMM y","dateFormatItem-Md":"d.M.","field-era":"tidsalder","dateFormatItem-yM":"M y","months-standAlone-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH:mm:ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"time","dateFormatItem-MMdd":"dd.MM","months-format-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","field-day-relative+3":"i overovermorgen","months-standAlone-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"L","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minutt","field-dayperiod":"AM/PM","days-standAlone-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"i går","field-day-relative+-2":"i forgårs","field-day-relative+-3":"i forforgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"sone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"måned","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yy","field-second":"sekund","dateFormatItem-yMMMEd":"EEE d. MMM y","field-week":"uke","dateFormat-medium":"d. MMM y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file +({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"ukedag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d. MMMM y","months-format-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"dateFormatItem-EEEd":"EEE d.","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d. MMMM y","dateFormatItem-Md":"d.M.","field-era":"tidsalder","dateFormatItem-yM":"M y","months-standAlone-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH:mm:ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"time","dateFormatItem-MMdd":"dd.MM","months-format-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","field-day-relative+3":"i overovermorgen","months-standAlone-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"L","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minutt","field-dayperiod":"AM/PM","days-standAlone-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"i går","field-day-relative+-2":"i forgårs","field-day-relative+-3":"i forforgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"sone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"måned","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yy","field-second":"sekund","dateFormatItem-yMMMEd":"EEE d. MMM y","field-week":"uke","dateFormat-medium":"d. MMM y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nb/number.js b/lib/dojo/cldr/nls/nb/number.js index 2904b4ba2..058217994 100644 --- a/lib/dojo/cldr/nls/nb/number.js +++ b/lib/dojo/cldr/nls/nb/number.js @@ -1 +1 @@ -({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nl/gregorian.js b/lib/dojo/cldr/nls/nl/gregorian.js index 32eb4aa0b..9e3ba2c1c 100644 --- a/lib/dojo/cldr/nls/nl/gregorian.js +++ b/lib/dojo/cldr/nls/nl/gregorian.js @@ -1 +1 @@ -({"dateFormatItem-yM":"M-y","field-dayperiod":"AM/PM","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"PM","field-minute":"Minuut","eraNames":["Voor Christus","na Christus"],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"gisteren","field-weekday":"Dag van de week","dateFormatItem-yQQQ":"QQQ y","field-day-relative+-2":"eergisteren","dateFormatItem-MMdd":"dd-MM","field-day-relative+-3":"eereergisteren","days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-era":"Tijdperk","field-hour":"Uur","dayPeriods-format-wide-am":"AM","quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-y":"y","timeFormat-full":"HH:mm:ss zzzz","months-standAlone-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"vandaag","field-day-relative+1":"morgen","days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"eraAbbr":["v. Chr.","n. Chr."],"field-day-relative+2":"overmorgen","field-day-relative+3":"overovermorgen","dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"d MMMM y","timeFormat-medium":"HH:mm:ss","field-zone":"Zone","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d-MM","dateFormat-medium":"d MMM y","dateFormatItem-yyMM":"MM-yy","dateFormatItem-yyMMM":"MMM yy","dateFormatItem-yyQQQQ":"QQQQ yy","quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormatItem-ms":"mm:ss","field-year":"Jaar","field-week":"Week","months-standAlone-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dateFormatItem-MMMd":"d-MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"HH:mm:ss z","months-format-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"timeFormat-short":"HH:mm","field-month":"Maand","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-M":"L","days-format-narrow":["Z","M","D","W","D","V","Z"],"field-second":"Seconde","field-day":"Dag","dateFormatItem-MEd":"E d-M","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormat-short":"dd-MM-yy","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d-M","dateFormatItem-yMEd":"EEE d-M-y","months-format-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dateFormatItem-d":"d","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"eraNarrow":["v. Chr.","n. Chr."],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Dag van de week","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d-M-y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["v. Chr.","n. Chr."],"dateFormat-long":"d MMMM y","months-format-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d-M","field-era":"Tijdperk","dateFormatItem-yM":"M-y","months-standAlone-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jaar","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Uur","dateFormatItem-MMdd":"dd-MM","months-format-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"vandaag","field-day-relative+1":"morgen","field-day-relative+2":"overmorgen","field-day-relative+3":"overovermorgen","months-standAlone-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormatItem-M":"L","days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["v. Chr.","n. Chr."],"field-minute":"Minuut","field-dayperiod":"AM/PM","days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"gisteren","field-day-relative+-2":"eergisteren","field-day-relative+-3":"eereergisteren","dateFormatItem-MMMd":"d-MMM","dateFormatItem-MEd":"E d-M","field-day":"Dag","days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM-yy","days-format-abbr":["zo","ma","di","wo","do","vr","za"],"eraNames":["Voor Christus","na Christus"],"days-format-narrow":["Z","M","D","W","D","V","Z"],"field-month":"Maand","days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd-MM-yy","dateFormatItem-MMd":"d-MM","field-second":"Seconde","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormatItem-Ed":"E d","field-week":"Week","dateFormat-medium":"d MMM y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nl/number.js b/lib/dojo/cldr/nls/nl/number.js index 6e47a0a58..3edd9e714 100644 --- a/lib/dojo/cldr/nls/nl/number.js +++ b/lib/dojo/cldr/nls/nl/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/number.js b/lib/dojo/cldr/nls/number.js index 8f762162f..ee347cd0b 100644 --- a/lib/dojo/cldr/nls/number.js +++ b/lib/dojo/cldr/nls/number.js @@ -1 +1 @@ -({"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file +({"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pl/gregorian.js b/lib/dojo/cldr/nls/pl/gregorian.js index 661278f71..ca45fcf4e 100644 --- a/lib/dojo/cldr/nls/pl/gregorian.js +++ b/lib/dojo/cldr/nls/pl/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"field-weekday":"Dzień tygodnia","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d-M-y","dateFormatItem-MMMEd":"d MMM E","eraNarrow":["p.n.e.","n.e."],"dayPeriods-format-wide-earlyMorning":"nad ranem","dayPeriods-format-wide-morning":"rano","dateFormat-long":"d MMMM y","months-format-wide":["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],"dayPeriods-format-wide-evening":"wieczorem","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d-M","dayPeriods-format-wide-noon":"w południe","field-era":"Era","dateFormatItem-yM":"M-y","months-standAlone-wide":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"timeFormat-short":"HH:mm","quarters-format-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"timeFormat-long":"HH:mm:ss z","field-year":"Rok","dateFormatItem-yQ":"yyyy Q","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Godzina","dateFormatItem-MMdd":"dd-MM","months-format-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Dzisiaj","field-day-relative+1":"Jutro","field-day-relative+2":"Pojutrze","field-day-relative+3":"Za trzy dni","months-standAlone-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"dateFormatItem-M":"L","days-standAlone-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1 kw.","2 kw.","3 kw.","4 kw."],"eraAbbr":["p.n.e.","n.e."],"field-minute":"Minuta","field-dayperiod":"Dayperiod","days-standAlone-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dayPeriods-format-wide-night":"w nocy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Wczoraj","dateFormatItem-h":"hh a","field-day-relative+-2":"Przedwczoraj","field-day-relative+-3":"Trzy dni temu","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d-M","dayPeriods-format-wide-lateMorning":"przed południem","dateFormatItem-yMMMM":"LLLL y","field-day":"Dzień","days-format-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"field-zone":"Strefa","dateFormatItem-yyyyMM":"yyyy-MM","dateFormatItem-y":"y","months-standAlone-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"eraNames":["p.n.e.","n.e."],"days-format-narrow":["N","P","W","Ś","C","P","S"],"field-month":"Miesiąc","days-standAlone-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd-MM-yyyy","dayPeriods-format-wide-afternoon":"po południu","field-second":"Sekunda","dateFormatItem-yMMMEd":"EEE, d MMM y","field-week":"Tydzień","dateFormat-medium":"dd-MM-yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yMMM":"y MMM","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file +({"months-format-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"field-weekday":"Dzień tygodnia","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d.MM.yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["p.n.e.","n.e."],"dayPeriods-format-wide-earlyMorning":"nad ranem","dayPeriods-format-wide-morning":"rano","dateFormat-long":"d MMMM y","months-format-wide":["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],"dayPeriods-format-wide-evening":"wieczorem","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d.MM","dayPeriods-format-wide-noon":"w południe","field-era":"Era","dateFormatItem-yM":"MM.yyyy","months-standAlone-wide":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"timeFormat-short":"HH:mm","quarters-format-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"timeFormat-long":"HH:mm:ss z","field-year":"Rok","dateFormatItem-yQ":"yyyy Q","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Godzina","dateFormatItem-MMdd":"d.MM","months-format-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Dzisiaj","field-day-relative+1":"Jutro","field-day-relative+2":"Pojutrze","field-day-relative+3":"Za trzy dni","months-standAlone-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"dateFormatItem-M":"L","days-standAlone-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1 kw.","2 kw.","3 kw.","4 kw."],"eraAbbr":["p.n.e.","n.e."],"field-minute":"Minuta","field-dayperiod":"Dayperiod","days-standAlone-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dayPeriods-format-wide-night":"w nocy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Wczoraj","dateFormatItem-h":"hh a","field-day-relative+-2":"Przedwczoraj","field-day-relative+-3":"Trzy dni temu","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d.MM","dayPeriods-format-wide-lateMorning":"przed południem","dateFormatItem-yMMMM":"LLLL y","field-day":"Dzień","days-format-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"field-zone":"Strefa","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"dateFormatItem-hm":"hh:mm a","days-format-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"eraNames":["p.n.e.","n.e."],"days-format-narrow":["N","P","W","Ś","C","P","S"],"field-month":"Miesiąc","days-standAlone-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yyyy","dayPeriods-format-wide-afternoon":"po południu","field-second":"Sekunda","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormatItem-Ed":"E, d","field-week":"Tydzień","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yMMM":"y MMM","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pl/number.js b/lib/dojo/cldr/nls/pl/number.js index ad7c86955..66776161f 100644 --- a/lib/dojo/cldr/nls/pl/number.js +++ b/lib/dojo/cldr/nls/pl/number.js @@ -1 +1 @@ -({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pt-pt/gregorian.js b/lib/dojo/cldr/nls/pt-pt/gregorian.js index 010820010..ce4e079af 100644 --- a/lib/dojo/cldr/nls/pt-pt/gregorian.js +++ b/lib/dojo/cldr/nls/pt-pt/gregorian.js @@ -1 +1 @@ -({"quarters-standAlone-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"quarters-format-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-wide-am":"a.m.","dateFormat-medium":"d 'de' MMM 'de' yyyy","quarters-standAlone-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-abbr-pm":"p.m.","dateFormatItem-hm":"h:mm","months-standAlone-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"dayPeriods-standAlone-abbr-am":"a.m.","dayPeriods-format-wide-pm":"Depois do meio-dia","months-standAlone-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"dateFormatItem-yQQQ":"QQQ 'de' y","dayPeriods-format-wide-am":"Antes do meio-dia","dayPeriods-format-abbr-pm":"p.m.","dateFormatItem-yyQ":"QQQ 'de' yy","dayPeriods-format-abbr-am":"a.m.","months-format-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"days-standAlone-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"months-format-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"days-standAlone-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"days-format-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-yQ":"QQQ 'de' yyyy","dateFormatItem-hms":"h:mm:ss","quarters-format-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-wide-pm":"p.m.","days-format-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Dia da semana","dateFormatItem-yMEd":"EEE, dd/MM/yyyy","dateFormatItem-MMMEd":"EEE, d 'de' MMM","eraNarrow":["a.C.","d.C."],"dayPeriods-format-wide-morning":"manhã","dateFormat-long":"d 'de' MMMM 'de' y","dateFormatItem-EEEd":"EEE, d","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"meio-dia","field-era":"Era","dateFormatItem-yM":"MM/yyyy","timeFormat-short":"HH:mm","timeFormat-long":"HH'h'mm'min'ss's' z","field-year":"Ano","dateFormatItem-yMMM":"MMM 'de' y","field-hour":"Hora","dateFormatItem-MMdd":"dd/MM","timeFormat-full":"HH'h'mm'min'ss's' zzzz","field-day-relative+0":"Hoje","field-day-relative+1":"Amanhã","field-day-relative+2":"Depois de amanhã","field-day-relative+3":"Daqui a três dias","dateFormatItem-HHmmss":"HH'h'mm'min'ss's'","dateFormatItem-M":"L","dateFormatItem-yyyyMMM":"MMM 'de' y","dateFormatItem-yyMMMEEEd":"EEE, d 'de' MMM 'de' yy","dateFormatItem-yyMMM":"MMM 'de' yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH'h'mm","eraAbbr":["a.C.","d.C."],"field-minute":"Minuto","field-dayperiod":"Período do dia","dayPeriods-format-wide-night":"noite","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm'min'ss's'","field-day-relative+-1":"Ontem","field-day-relative+-2":"Anteontem","field-day-relative+-3":"Há três dias","dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-MEd":"EEE, dd/MM","field-day":"Dia","field-zone":"Fuso","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","eraNames":["Antes de Cristo","Ano do Senhor"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"field-month":"Mês","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH'h'mm","dateFormat-short":"dd/MM/yy","dayPeriods-format-wide-afternoon":"tarde","field-second":"Segundo","dateFormatItem-yMMMEd":"EEE, d 'de' MMM 'de' y","field-week":"Semana","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss"})
\ No newline at end of file +({"quarters-standAlone-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"quarters-format-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-wide-am":"a.m.","dateFormat-medium":"d 'de' MMM 'de' yyyy","quarters-standAlone-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dateFormatItem-Hm":"HH:mm","dayPeriods-standAlone-abbr-pm":"p.m.","dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-hm":"h:mm a","months-standAlone-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"dayPeriods-standAlone-abbr-am":"a.m.","dayPeriods-format-wide-pm":"Depois do meio-dia","months-standAlone-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"dateFormatItem-yQQQ":"QQQ 'de' y","dayPeriods-format-wide-am":"Antes do meio-dia","dateFormatItem-Hms":"HH:mm:ss","dayPeriods-format-abbr-pm":"p.m.","dateFormatItem-yyQ":"QQQ 'de' yy","dateFormatItem-ms":"mm:ss","dayPeriods-format-abbr-am":"a.m.","months-format-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"days-standAlone-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-HHmm":"HH:mm","months-format-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"days-standAlone-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"days-format-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQ":"QQQ 'de' yyyy","quarters-format-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-wide-pm":"p.m.","days-format-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Dia da semana","dateFormatItem-yMEd":"EEE, dd/MM/yyyy","dateFormatItem-MMMEd":"EEE, d 'de' MMM","eraNarrow":["a.C.","d.C."],"dayPeriods-format-wide-morning":"manhã","dateFormat-long":"d 'de' MMMM 'de' y","dateFormatItem-EEEd":"EEE, d","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"meio-dia","field-era":"Era","dateFormatItem-yM":"MM/yyyy","timeFormat-short":"HH:mm","timeFormat-long":"HH'h'mm'min'ss's' z","field-year":"Ano","dateFormatItem-yMMM":"MMM 'de' y","field-hour":"Hora","dateFormatItem-MMdd":"dd/MM","timeFormat-full":"HH'h'mm'min'ss's' zzzz","field-day-relative+0":"Hoje","field-day-relative+1":"Amanhã","field-day-relative+2":"Depois de amanhã","field-day-relative+3":"Daqui a três dias","dateFormatItem-M":"L","dateFormatItem-yyyyMMM":"MMM 'de' y","dateFormatItem-yyMMMEEEd":"EEE, d 'de' MMM 'de' yy","dateFormatItem-yyMMM":"MMM 'de' yy","timeFormat-medium":"HH:mm:ss","eraAbbr":["a.C.","d.C."],"field-minute":"Minuto","field-dayperiod":"Período do dia","dayPeriods-format-wide-night":"noite","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy","dateFormatItem-d":"d","field-day-relative+-1":"Ontem","field-day-relative+-2":"Anteontem","field-day-relative+-3":"Há três dias","dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-MEd":"EEE, dd/MM","field-day":"Dia","field-zone":"Fuso","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","eraNames":["Antes de Cristo","Ano do Senhor"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"field-month":"Mês","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-MMM":"LLL","dateFormat-short":"dd/MM/yy","dayPeriods-format-wide-afternoon":"tarde","field-second":"Segundo","dateFormatItem-yMMMEd":"EEE, d 'de' MMM 'de' y","field-week":"Semana","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pt-pt/number.js b/lib/dojo/cldr/nls/pt-pt/number.js index e06fd94c1..3dc20dbe4 100644 --- a/lib/dojo/cldr/nls/pt-pt/number.js +++ b/lib/dojo/cldr/nls/pt-pt/number.js @@ -1 +1 @@ -({"currencyFormat":"#,##0.00 ¤","group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"currencyFormat":"#,##0.00 ¤","group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pt/number.js b/lib/dojo/cldr/nls/pt/number.js index f10fcfa2f..8323386bb 100644 --- a/lib/dojo/cldr/nls/pt/number.js +++ b/lib/dojo/cldr/nls/pt/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ro/buddhist.js b/lib/dojo/cldr/nls/ro/buddhist.js new file mode 100644 index 000000000..7f27100b5 --- /dev/null +++ b/lib/dojo/cldr/nls/ro/buddhist.js @@ -0,0 +1 @@ +({"quarters-format-abbr":["trim. I","trim. II","trim. III","trim. IV"],"dateFormat-medium":"d MMM y G","dateFormatItem-MMMEd":"E, d MMM","dateFormatItem-MEd":"E, d MMM","dateFormatItem-yMEd":"EEE, d/M/yyyy","eraNarrow":["e.b."],"dateTimeFormat-medium":"{1}, {0}","dateFormatItem-Md":"d.M","months-standAlone-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"dateFormatItem-EEEd":"EEE d","eraNames":["era budistă"],"days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateTimeFormat-long":"{1}, {0}","dateFormatItem-yQQQ":"QQQ y","quarters-standAlone-narrow":["T1","T2","T3","T4"],"dateFormat-long":"d MMMM y G","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE, d MMM y","dateTimeFormat-short":"{1}, {0}","months-format-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"dateTimeFormat-full":"{1}, {0}","dateFormatItem-yM":"M.yyyy","months-format-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"eraAbbr":["e.b."],"days-format-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"dateFormatItem-yQ":"'trimestrul' Q y","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"dateFormat-full":"EEEE, d MMMM, y G","dateFormatItem-MMMd":"d MMM","days-format-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateTimeFormats-appendItem-Era":"{0} {1}","timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ro/currency.js b/lib/dojo/cldr/nls/ro/currency.js new file mode 100644 index 000000000..63a82a5ea --- /dev/null +++ b/lib/dojo/cldr/nls/ro/currency.js @@ -0,0 +1 @@ +({"HKD_displayName":"dolar Hong Kong","CHF_displayName":"franc elvețian","CAD_displayName":"dolar canadian","CNY_displayName":"yuan renminbi chinezesc","AUD_displayName":"dolar australian","JPY_displayName":"yen japonez","USD_displayName":"dolar american","GBP_displayName":"liră sterlină","EUR_displayName":"euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ro/gregorian.js b/lib/dojo/cldr/nls/ro/gregorian.js new file mode 100644 index 000000000..a5f14eda5 --- /dev/null +++ b/lib/dojo/cldr/nls/ro/gregorian.js @@ -0,0 +1 @@ +({"months-format-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"quarters-standAlone-narrow":["T1","T2","T3","T4"],"field-weekday":"zi a săptămânii","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["î.Hr.","d.Hr."],"dateFormat-long":"d MMMM y","months-format-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"dateTimeFormat-medium":"{1}, {0}","dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d.M","field-era":"eră","dateFormatItem-yM":"M.yyyy","months-standAlone-wide":["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],"timeFormat-short":"HH:mm","quarters-format-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"timeFormat-long":"HH:mm:ss z","field-year":"an","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'trimestrul' Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"oră","dateFormatItem-MMdd":"dd.MM","months-format-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"azi","field-day-relative+1":"mâine","field-day-relative+2":"poimâine","field-day-relative+3":"răspoimâine","months-standAlone-abbr":["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],"quarters-format-abbr":["trim. I","trim. II","trim. III","trim. IV"],"quarters-standAlone-wide":["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],"dateFormatItem-M":"L","days-standAlone-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["trim. I","trim. II","trim. III","trim. IV"],"eraAbbr":["î.Hr.","d.Hr."],"field-minute":"minut","field-dayperiod":"perioada zilei","days-standAlone-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["T1","T2","T3","T4"],"field-day-relative+-1":"ieri","dateTimeFormat-long":"{1}, {0}","field-day-relative+-2":"alaltăieri","field-day-relative+-3":"răsalaltăieri","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d MMM","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yMMMM":"MMMM y","field-day":"zi","days-format-wide":["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"],"field-zone":"zonă","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["I","F","M","A","M","I","I","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","days-format-abbr":["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],"eraNames":["înainte de Hristos","după Hristos"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"lună","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"E, d MMMM","dateFormat-short":"dd.MM.yyyy","field-second":"secundă","dateFormatItem-yMMMEd":"EEE, d MMM y","field-week":"săptămână","dateFormat-medium":"dd.MM.yyyy","dateTimeFormat-short":"{1}, {0}","dateFormatItem-MMMEEEd":"EEE, d MMM","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ro/number.js b/lib/dojo/cldr/nls/ro/number.js new file mode 100644 index 000000000..4f0befd38 --- /dev/null +++ b/lib/dojo/cldr/nls/ro/number.js @@ -0,0 +1 @@ +({"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ru/gregorian.js b/lib/dojo/cldr/nls/ru/gregorian.js index 8eadf9d28..7d91ce88e 100644 --- a/lib/dojo/cldr/nls/ru/gregorian.js +++ b/lib/dojo/cldr/nls/ru/gregorian.js @@ -1 +1 @@ -({"dateFormatItem-yM":"M.y","field-dayperiod":"AM/PM","field-minute":"Минута","eraNames":["до н.э.","н.э."],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"Вчера","field-weekday":"День недели","dateFormatItem-yQQQ":"y QQQ","field-day-relative+-2":"Позавчера","dateFormatItem-MMdd":"dd.MM","days-standAlone-wide":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"field-era":"Эра","field-hour":"Час","quarters-standAlone-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"dateFormatItem-yyMMMEEEd":"EEE, d MMM yy","dateFormatItem-y":"y","timeFormat-full":"H:mm:ss zzzz","dateFormatItem-yyyy":"y","months-standAlone-abbr":["янв.","февр.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"LLL y","field-day-relative+0":"Сегодня","dateFormatItem-yyyyLLLL":"LLLL y","field-day-relative+1":"Завтра","days-standAlone-narrow":["В","П","В","С","Ч","П","С"],"eraAbbr":["до н.э.","н.э."],"field-day-relative+2":"Послезавтра","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-yyyyMMMM":"LLLL y","dateFormat-long":"d MMMM y 'г'.","timeFormat-medium":"H:mm:ss","field-zone":"Часовой пояс","dateFormatItem-Hm":"H:mm","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-yyMM":"MM.yy","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyMMM":"LLL yy","quarters-standAlone-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyQQQQ":"QQQQ y 'г'.","field-year":"Год","months-standAlone-wide":["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],"field-week":"Неделя","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H:mm:ss z","months-format-abbr":["янв.","февр.","марта","апр.","мая","июня","июля","авг.","сент.","окт.","нояб.","дек."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"Месяц","quarters-format-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"days-format-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dateFormatItem-M":"L","days-format-narrow":["В","П","В","С","Ч","П","С"],"field-second":"Секунда","field-day":"День","dateFormatItem-MEd":"E, d.M","months-format-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"days-standAlone-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dateFormat-short":"dd.MM.yy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y 'г'.","dateFormatItem-Md":"d.M","dateFormatItem-yMEd":"EEE, d.M.y","months-format-wide":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"dateFormatItem-d":"d","quarters-format-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"days-format-wide":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"eraNarrow":["до н.э.","н.э."],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"dateFormatItem-yM":"M.y","field-dayperiod":"AM/PM","field-minute":"Минута","eraNames":["до н.э.","н.э."],"dateFormatItem-MMMEd":"ccc, d MMM","field-day-relative+-1":"Вчера","field-weekday":"День недели","dateFormatItem-yQQQ":"y QQQ","field-day-relative+-2":"Позавчера","dateFormatItem-MMdd":"dd.MM","days-standAlone-wide":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"field-era":"Эра","field-hour":"Час","quarters-standAlone-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"dateFormatItem-yyMMMEEEd":"EEE, d MMM yy","dateFormatItem-y":"y","timeFormat-full":"H:mm:ss zzzz","dateFormatItem-yyyy":"y","months-standAlone-abbr":["янв.","февр.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],"dateFormatItem-Ed":"E, d","dateFormatItem-yMMM":"LLL y","field-day-relative+0":"Сегодня","dateFormatItem-yyyyLLLL":"LLLL y","field-day-relative+1":"Завтра","days-standAlone-narrow":["В","П","В","С","Ч","П","С"],"eraAbbr":["до н.э.","н.э."],"field-day-relative+2":"Послезавтра","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-yyyyMMMM":"LLLL y","dateFormat-long":"d MMMM y 'г'.","timeFormat-medium":"H:mm:ss","field-zone":"Часовой пояс","dateFormatItem-Hm":"H:mm","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-yyMM":"MM.yy","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyMMM":"LLL yy","quarters-standAlone-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyQQQQ":"QQQQ y 'г'.","field-year":"Год","months-standAlone-wide":["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],"field-week":"Неделя","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H:mm:ss z","months-format-abbr":["янв.","февр.","марта","апр.","мая","июня","июля","авг.","сент.","окт.","нояб.","дек."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"Месяц","quarters-format-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"days-format-abbr":["вс","пн","вт","ср","чт","пт","сб"],"dateFormatItem-M":"L","days-format-narrow":["В","П","В","С","Ч","П","С"],"field-second":"Секунда","field-day":"День","dateFormatItem-MEd":"E, d.M","months-format-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"days-standAlone-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dateFormat-short":"dd.MM.yy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y 'г'.","dateFormatItem-Md":"d.M","dateFormatItem-yMEd":"EEE, d.M.y","months-format-wide":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"dateFormatItem-d":"d","quarters-format-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"days-format-wide":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"eraNarrow":["до н.э.","н.э."],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ru/number.js b/lib/dojo/cldr/nls/ru/number.js index 55fbdf8ca..be45af22b 100644 --- a/lib/dojo/cldr/nls/ru/number.js +++ b/lib/dojo/cldr/nls/ru/number.js @@ -1 +1 @@ -({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sk/number.js b/lib/dojo/cldr/nls/sk/number.js index f4095fdc6..8d495cd0f 100644 --- a/lib/dojo/cldr/nls/sk/number.js +++ b/lib/dojo/cldr/nls/sk/number.js @@ -1 +1 @@ -({"currencyFormat":"#,##0.00 ¤","group":" ","decimal":",","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","percentFormat":"#,##0%","decimalFormat":"#,##0.###","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file +({"currencyFormat":"#,##0.00 ¤","group":" ","decimal":",","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","percentFormat":"#,##0%","decimalFormat":"#,##0.###","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sl/gregorian.js b/lib/dojo/cldr/nls/sl/gregorian.js index 15bc1846e..52562be1a 100644 --- a/lib/dojo/cldr/nls/sl/gregorian.js +++ b/lib/dojo/cldr/nls/sl/gregorian.js @@ -1 +1 @@ -({"field-dayperiod":"Čas dneva","dayPeriods-format-wide-pm":"pop.","field-minute":"Minuta","eraNames":["pred našim štetjem","naše štetje"],"field-day-relative+-1":"Včeraj","field-weekday":"Dan v tednu","field-day-relative+-2":"Predvčerajšnjim","field-day-relative+-3":"Pred tremi dnevi","days-standAlone-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"months-standAlone-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"field-era":"Doba","field-hour":"Ura","dayPeriods-format-wide-am":"dop.","dateFormatItem-y":"y","timeFormat-full":"HH:mm:ss zzzz","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"field-day-relative+0":"Danes","field-day-relative+1":"Jutri","days-standAlone-narrow":["n","p","t","s","č","p","s"],"eraAbbr":["pr. n. št.","po Kr."],"field-day-relative+2":"Pojutrišnjem","field-day-relative+3":"Čez tri dni","dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"dd. MMMM y","timeFormat-medium":"HH:mm:ss","field-zone":"Območje","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d. MMM. yyyy","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"dateFormatItem-ms":"mm:ss","field-year":"Leto","months-standAlone-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"field-week":"Teden","dateFormatItem-yyQ":"Q/yy","timeFormat-long":"HH:mm:ss z","months-format-abbr":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"timeFormat-short":"HH:mm","field-month":"Mesec","dateFormatItem-MMMMd":"d. MMMM","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormatItem-MMMMdd":"dd. MMMM","dateFormatItem-mmss":"mm:ss","days-format-narrow":["n","p","t","s","č","p","s"],"field-second":"Sekunda","field-day":"Dan","months-format-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"days-standAlone-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormat-short":"d. MM. yy","dateFormatItem-yyyyM":"M/yyyy","dateFormat-full":"EEEE, dd. MMMM y","dateFormatItem-Md":"d. M.","months-format-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"quarters-format-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"days-format-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"eraNarrow":["pr. n. št.","po Kr."],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-M":"L","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"dateFormatItem-d":"d","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file +({"field-dayperiod":"Čas dneva","dayPeriods-format-wide-pm":"pop.","field-minute":"Minuta","eraNames":["pred našim štetjem","naše štetje"],"dateFormatItem-MMMEd":"E., d. MMM","field-day-relative+-1":"Včeraj","field-weekday":"Dan v tednu","field-day-relative+-2":"Predvčerajšnjim","field-day-relative+-3":"Pred tremi dnevi","days-standAlone-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"months-standAlone-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"field-era":"Doba","field-hour":"Ura","dayPeriods-format-wide-am":"dop.","dateFormatItem-y":"y","timeFormat-full":"HH:mm:ss zzzz","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"dateFormatItem-Ed":"E., d.","dateFormatItem-yMMM":"MMM y","field-day-relative+0":"Danes","field-day-relative+1":"Jutri","days-standAlone-narrow":["n","p","t","s","č","p","s"],"eraAbbr":["pr. n. št.","po Kr."],"field-day-relative+2":"Pojutrišnjem","field-day-relative+3":"Čez tri dni","dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"dd. MMMM y","timeFormat-medium":"HH:mm:ss","field-zone":"Območje","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d. MMM yyyy","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"dateFormatItem-ms":"mm:ss","field-year":"Leto","field-week":"Teden","months-standAlone-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q/yy","timeFormat-long":"HH:mm:ss z","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","avg.","sep.","okt.","nov.","dec."],"timeFormat-short":"HH:mm","field-month":"Mesec","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormatItem-mmss":"mm:ss","days-format-narrow":["n","p","t","s","č","p","s"],"field-second":"Sekunda","field-day":"Dan","dateFormatItem-MEd":"E., d. MM.","months-format-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"days-standAlone-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormat-short":"d. MM. yy","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-yMMMEd":"E., d. MMM y","dateFormat-full":"EEEE, dd. MMMM y","dateFormatItem-Md":"d. M.","dateFormatItem-yMEd":"E., d. M. y","months-format-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"quarters-format-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"days-format-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"eraNarrow":["pr. n. št.","po Kr."],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-M":"L","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"dateFormatItem-d":"d","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sl/number.js b/lib/dojo/cldr/nls/sl/number.js index cc627888e..2d85e97a1 100644 --- a/lib/dojo/cldr/nls/sl/number.js +++ b/lib/dojo/cldr/nls/sl/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sv/gregorian.js b/lib/dojo/cldr/nls/sv/gregorian.js index b92d4fe93..757dfade2 100644 --- a/lib/dojo/cldr/nls/sv/gregorian.js +++ b/lib/dojo/cldr/nls/sv/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"veckodag","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, yyyy-MM-dd","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d MMMM y","months-format-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"em","dateFormat-full":"EEEE'en' 'den' d:'e' MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-MMMMEEEd":"EEE d MMMM","field-era":"era","dateFormatItem-yM":"yyyy-MM","months-standAlone-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"timeFormat-long":"HH:mm:ss z","field-year":"år","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"yyyy Q","field-hour":"timme","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgon","field-day-relative+2":"i övermorgon","field-day-relative+3":"i överövermorgon","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"dateFormatItem-M":"L","days-standAlone-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-MMMMd":"d:'e' MMMM","dateFormatItem-yyMMM":"MMM -yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"fm/em","days-standAlone-abbr":["sön","mån","tis","ons","tors","fre","lör"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"i går","field-day-relative+-2":"i förrgår","field-day-relative+-3":"i förrförrgår","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","field-day":"dag","days-format-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"field-zone":"tidszon","dateFormatItem-yyyyMM":"yyyy-MM","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"h:mm a","days-format-abbr":["sön","mån","tis","ons","tors","fre","lör"],"eraNames":["före Kristus","efter Kristus"],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"månad","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"fm","dateFormatItem-MMMMEd":"E d:'e' MMMM","dateFormat-short":"yyyy-MM-dd","dateFormatItem-MMd":"d/M","field-second":"sekund","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"vecka","dateFormat-medium":"d MMM y","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file +({"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"veckodag","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, yyyy-MM-dd","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d MMMM y","months-format-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"em","dateFormat-full":"EEEE'en' 'den' d:'e' MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-MMMMEEEd":"EEE d MMMM","field-era":"era","dateFormatItem-yM":"yyyy-MM","months-standAlone-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"timeFormat-long":"HH:mm:ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"yyyy Q","field-hour":"timme","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgon","field-day-relative+2":"i övermorgon","field-day-relative+3":"i överövermorgon","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"dateFormatItem-M":"L","days-standAlone-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-MMMMd":"d:'e' MMMM","dateFormatItem-yyMMM":"MMM -yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"fm/em","days-standAlone-abbr":["sön","mån","tis","ons","tors","fre","lör"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"i går","field-day-relative+-2":"i förrgår","field-day-relative+-3":"i förrförrgår","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","field-day":"dag","days-format-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"field-zone":"tidszon","dateFormatItem-yyyyMM":"yyyy-MM","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"h:mm a","days-format-abbr":["sön","mån","tis","ons","tors","fre","lör"],"eraNames":["före Kristus","efter Kristus"],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"månad","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"fm","dateFormatItem-MMMMEd":"E d:'e' MMMM","dateFormat-short":"yyyy-MM-dd","dateFormatItem-MMd":"d/M","field-second":"sekund","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"vecka","dateFormat-medium":"d MMM y","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sv/number.js b/lib/dojo/cldr/nls/sv/number.js index de83eac0d..eedc15d2e 100644 --- a/lib/dojo/cldr/nls/sv/number.js +++ b/lib/dojo/cldr/nls/sv/number.js @@ -1 +1 @@ -({"group":" ","percentSign":"%","exponential":"×10^","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"−","decimal":",","nan":"¤¤¤","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":" ","percentSign":"%","exponential":"×10^","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"−","decimal":",","nan":"¤¤¤","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/th/number.js b/lib/dojo/cldr/nls/th/number.js index 9d4a2504c..393dd6cbd 100644 --- a/lib/dojo/cldr/nls/th/number.js +++ b/lib/dojo/cldr/nls/th/number.js @@ -1 +1 @@ -({"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;¤-#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;¤-#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/tr/number.js b/lib/dojo/cldr/nls/tr/number.js index 0be46063b..7a3e4ea80 100644 --- a/lib/dojo/cldr/nls/tr/number.js +++ b/lib/dojo/cldr/nls/tr/number.js @@ -1 +1 @@ -({"group":".","percentSign":"%","exponential":"E","percentFormat":"% #,##0","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file +({"group":".","percentSign":"%","exponential":"E","percentFormat":"% #,##0","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-hant/buddhist.js b/lib/dojo/cldr/nls/zh-hant/buddhist.js new file mode 100644 index 000000000..5e8a565ad --- /dev/null +++ b/lib/dojo/cldr/nls/zh-hant/buddhist.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"Gy/M","dateFormatItem-yQ":"Gy年QQQ","dayPeriods-format-wide-pm":"下午","dateFormatItem-MMMEd":"MMMd日E","dateTimeFormat-full":"{1}{0}","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"Gy年QQQ","dateFormatItem-MMdd":"MM/dd","dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-y":"Gy年","timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-yyyy":"y年","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"Gy年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-yyyyMMMM":"y年MMMM","dateFormat-long":"Gy年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-EEEd":"d EEE","dateFormatItem-Hm":"H:mm","dateFormatItem-yyMM":"Gyy/MM","dateFormat-medium":"Gy/M/d","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyMMM":"Gyy年MMM","dateFormatItem-yMd":"Gy/M/d","dateFormatItem-ms":"mm:ss","dateTimeFormat-long":"{1}{0}","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-MMMd":"MMMd日","dateFormatItem-yyQ":"Gyy年第Q季度","timeFormat-long":"zah時mm分ss秒","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-H":"H時","timeFormat-short":"ah:mm","quarters-format-abbr":["1季","2季","3季","4季"],"dateFormatItem-MMMMdd":"MMMMdd日","days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-M":"M月","dateFormatItem-yMMMd":"Gy年MMMd日","dateFormatItem-MEd":"M/d(E)","dateFormatItem-hm":"ah:mm","dateFormat-short":"Gy/M/d","dateFormatItem-yyyyM":"y年M月","dateFormatItem-yMMMEd":"Gy年M月d日EEE","dateFormat-full":"Gy年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"Gy/M/d(EEE)","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-d":"d日","quarters-format-wide":["第1季","第2季","第3季","第4季"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah時","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-hant/currency.js b/lib/dojo/cldr/nls/zh-hant/currency.js new file mode 100644 index 000000000..289e9bb5f --- /dev/null +++ b/lib/dojo/cldr/nls/zh-hant/currency.js @@ -0,0 +1 @@ +({"HKD_displayName":"港幣","CHF_displayName":"瑞士法郎","CAD_displayName":"加幣","CNY_displayName":"人民幣","USD_symbol":"$","AUD_displayName":"澳幣","JPY_displayName":"日圓","CNY_symbol":"¥","GBP_displayName":"英鎊","EUR_displayName":"歐元","USD_displayName":"美元","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-hant/gregorian.js b/lib/dojo/cldr/nls/zh-hant/gregorian.js new file mode 100644 index 000000000..a32d30434 --- /dev/null +++ b/lib/dojo/cldr/nls/zh-hant/gregorian.js @@ -0,0 +1 @@ +({"field-weekday":"週天","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"yyyy/M/d(EEE)","dateFormatItem-MMMEd":"MMMd日E","eraNarrow":["西元前","西元"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","field-era":"年代","dateFormatItem-yM":"yyyy/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第1季","第2季","第3季","第4季"],"timeFormat-long":"zah時mm分ss秒","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y年QQQ","field-hour":"小時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah時mm分ss秒","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"後天","dateFormatItem-H":"H時","field-day-relative+3":"大後天","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"quarters-format-abbr":["1季","2季","3季","4季"],"quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"dateFormatItem-M":"M月","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1季","2季","3季","4季"],"eraAbbr":["西元前","西元"],"field-minute":"分鐘","field-dayperiod":"上午/下午","days-standAlone-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah時","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","field-day-relative+-3":"大前天","dateFormatItem-MMMd":"MMMd日","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"區域","dateFormatItem-y":"y年","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-yMMMd":"y年MMMd日","eraNames":["西元前","西元"],"days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dateFormat-short":"yy/M/d","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日EEE","dateFormatItem-Ed":"d日(E)","field-week":"週","dateFormat-medium":"yyyy/M/d","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","months-format-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormatItem-yyyyMMMM":"y年MMMM","dayPeriods-format-wide-night":"晚上","dayPeriods-format-wide-midDay":"中午","dayPeriods-format-wide-weeHours":"凌晨","dayPeriods-format-wide-afternoon":"下午","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-hant/islamic.js b/lib/dojo/cldr/nls/zh-hant/islamic.js new file mode 100644 index 000000000..e46d2179d --- /dev/null +++ b/lib/dojo/cldr/nls/zh-hant/islamic.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"yyyy/M","dateFormatItem-yQ":"y年QQQ","dayPeriods-format-wide-pm":"下午","dateFormatItem-MMMEd":"MMMd日E","dateTimeFormat-full":"{1}{0}","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-MMdd":"MM/dd","dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-y":"y年","timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-yyyy":"Gy年","dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormat-long":"Gy年M月d日","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"Gy/M/d","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-ms":"mm:ss","dateTimeFormat-long":"{1}{0}","dateFormatItem-yyyyMd":"Gy/M/d","dateFormatItem-yyyyMMMd":"Gy年M月d日","dateFormatItem-MMMd":"MMMd日","timeFormat-long":"zah時mm分ss秒","timeFormat-short":"ah:mm","dateFormatItem-H":"H時","quarters-format-abbr":["1季","2季","3季","4季"],"days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormatItem-MMMMdd":"MMMMdd日","dateFormatItem-M":"M月","dateFormatItem-MEd":"M/d(E)","dateFormatItem-hm":"ah:mm","dateFormat-short":"Gy/M/d","dateFormatItem-yyyyM":"Gy/M","dateFormatItem-yMMMEd":"y年M月d日EEE","dateFormat-full":"Gy年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yyyyQ":"Gy年QQQ","dateFormatItem-yMEd":"yyyy/M/d(EEE)","dateFormatItem-yyyyMMM":"Gy年M月","dateFormatItem-d":"d日","quarters-format-wide":["第1季","第2季","第3季","第4季"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-h":"ah時","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"eraNarrow":["AH"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"days-standAlone-wide":["1","2","3","4","5","6","7"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["AH"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["AH"],"days-format-narrow":["1","2","3","4","5","6","7"],"dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-hant/number.js b/lib/dojo/cldr/nls/zh-hant/number.js new file mode 100644 index 000000000..159717470 --- /dev/null +++ b/lib/dojo/cldr/nls/zh-hant/number.js @@ -0,0 +1 @@ +({"currencyFormat":"¤#,##0.00","decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-hk/currency.js b/lib/dojo/cldr/nls/zh-hk/currency.js new file mode 100644 index 000000000..aab119f0a --- /dev/null +++ b/lib/dojo/cldr/nls/zh-hk/currency.js @@ -0,0 +1 @@ +({"HKD_displayName":"港幣","HKD_symbol":"HK$","CAD_displayName":"加幣","CNY_displayName":"人民幣","USD_symbol":"$","AUD_displayName":"澳幣","JPY_displayName":"日圓","GBP_displayName":"英鎊","EUR_displayName":"歐元","CHF_displayName":"瑞士法郎","USD_displayName":"美元","CNY_symbol":"¥","CAD_symbol":"CA$","GBP_symbol":"£","JPY_symbol":"JP¥","AUD_symbol":"AU$","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-hk/gregorian.js b/lib/dojo/cldr/nls/zh-hk/gregorian.js new file mode 100644 index 000000000..fe3a9a00d --- /dev/null +++ b/lib/dojo/cldr/nls/zh-hk/gregorian.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"yyyy/M","field-minute":"分鐘","eraNames":["西元前","西元"],"field-weekday":"週天","dateFormatItem-MMdd":"MM/dd","field-day-relative+-3":"大前天","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-short":"{1} {0}","field-era":"年代","field-hour":"小時","dateTimeFormat-medium":"{1} {0}","quarters-standAlone-abbr":["第1季","第2季","第3季","第4季"],"timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","eraAbbr":["西元前","西元"],"field-day-relative+2":"後天","field-day-relative+3":"大後天","dateFormat-long":"y年M月d日","timeFormat-medium":"ah:mm:ss","field-zone":"區域","dateFormat-medium":"yyyy/M/d","quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"field-week":"週","timeFormat-long":"zah時mm分ss秒","dateFormatItem-H":"H時","quarters-format-abbr":["第1季","第2季","第3季","第4季"],"field-second":"秒","dateFormatItem-MEd":"M/d(E)","dateFormat-short":"yy/M/d","dateFormatItem-yMMMEd":"y年M月d日EEE","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"yyyy/M/d(EEE)","quarters-format-wide":["第1季","第2季","第3季","第4季"],"eraNarrow":["西元前","西元"],"dateFormatItem-h":"ah時","months-format-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-MMMEd":"MMMd日E","dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dayPeriods-format-wide-pm":"下午","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"timeFormat-short":"ah:mm","field-year":"年","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","field-day-relative+0":"今天","field-day-relative+1":"明天","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-M":"M月","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","dateFormatItem-Hm":"H:mm","field-dayperiod":"上午/下午","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-y":"y年","dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yMMMd":"y年MMMd日","days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dayPeriods-format-wide-afternoon":"下午","dateFormatItem-yyyyM":"y年M月","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-hk/number.js b/lib/dojo/cldr/nls/zh-hk/number.js new file mode 100644 index 000000000..159717470 --- /dev/null +++ b/lib/dojo/cldr/nls/zh-hk/number.js @@ -0,0 +1 @@ +({"currencyFormat":"¤#,##0.00","decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-tw/currency.js b/lib/dojo/cldr/nls/zh-tw/currency.js index a57f458d1..4622f4a29 100644 --- a/lib/dojo/cldr/nls/zh-tw/currency.js +++ b/lib/dojo/cldr/nls/zh-tw/currency.js @@ -1 +1 @@ -({"BRE_displayName":"巴西克魯賽羅 (1990-1993)","DEM_displayName":"德國馬克","KGS_symbol":"som","CUP_displayName":"古巴披索","HUF_symbol":"Ft","BDT_symbol":"Tk","LSL_symbol":"M","VEF_symbol":"BsF","MDL_displayName":"摩杜雲列伊","DOP_displayName":"多明尼加披索","MTL_symbol":"Lm","NGN_displayName":"奈及利亞奈拉","KZT_displayName":"卡扎克斯坦坦吉","BGL_symbol":"lev","LTT_displayName":"立陶宛特羅","LAK_displayName":"寮國基普","LKR_displayName":"斯里蘭卡盧布","AOR_displayName":"安哥拉新寬扎 Reajustado (1995-1999)","XEU_displayName":"歐洲貨幣單位 XEU","SYP_symbol":"LS","USS_displayName":"美元 (同一天)","MNT_displayName":"蒙古圖格里克","AMD_symbol":"dram","MOP_displayName":"澳門元","TJR_displayName":"塔吉克斯坦盧布","LUC_displayName":"盧森堡可兌換法郎","LUL_displayName":"盧森堡金融法郎","MRO_symbol":"UM","AON_displayName":"安哥拉新寬扎 (1990-2000)","BEF_displayName":"比利時法郎","IEP_displayName":"愛爾蘭鎊","SBD_displayName":"索羅門群島元","GRD_displayName":"希臘德拉克馬","AZM_displayName":"阿塞拜彊馬特納","MTP_displayName":"馬爾他鎊","UGX_symbol":"U Sh","ARS_symbol":"Arg$","LVR_displayName":"拉脫維亞盧布","GNF_displayName":"幾內亞法郎","GIP_displayName":"直布羅陀鎊","SRG_displayName":"蘇里南盾","BAD_displayName":"波士尼亞-黑塞哥維那第納爾","FJD_displayName":"斐濟元","BAM_displayName":"波士尼亞-黑塞哥維那可轉換馬克","XBB_displayName":"歐洲貨幣單位 XBB","CDF_displayName":"剛果法郎","HRD_displayName":"克羅地亞第納爾","EQE_displayName":"埃奎維勒","BZD_displayName":"伯利茲元","MLF_displayName":"馬里法郎","VEB_symbol":"Be","EGP_displayName":"埃及鎊","MVR_displayName":"馬爾地夫海島盧非亞","KWD_symbol":"KD","TRL_symbol":"TL","ALL_symbol":"lek","SDP_displayName":"蘇丹鎊","NPR_displayName":"尼泊爾盧布","PHP_displayName":"菲律賓披索","DJF_symbol":"DF","WST_displayName":"西薩摩亞塔拉","JPY_displayName":"日圓","TMM_displayName":"土庫曼馬納特","STD_symbol":"Db","BGN_displayName":"保加利亞新列弗","KYD_displayName":"開曼群島美元","VUV_displayName":"萬那杜萬杜","IRR_displayName":"伊朗里亞爾","DJF_displayName":"吉布地法郎","BTN_symbol":"Nu","XDR_displayName":"特殊提款權","ECS_displayName":"厄瓜多蘇克雷","LSM_displayName":"馬洛蒂","MNT_symbol":"Tug","NLG_displayName":"荷蘭盾","MWK_displayName":"馬拉維克瓦查","IRR_symbol":"RI","OMR_symbol":"RO","JMD_symbol":"J$","PES_displayName":"秘魯太陽幣","SRG_symbol":"Sf","LYD_displayName":"利比亞第納爾","BRR_displayName":"巴西克魯賽羅","ETB_symbol":"Br","KMF_symbol":"CF","DKK_symbol":"DKr","XXX_displayName":"XXX","IDR_displayName":"印尼 - 盧布","DZD_symbol":"DA","TZS_symbol":"T Sh","SGD_symbol":"SGD","KGS_displayName":"吉爾吉斯索馬","BRN_displayName":"巴西克如爾達農瓦","AFN_symbol":"Af","ISK_displayName":"冰島克朗","LUF_displayName":"盧森堡法郎","MXN_symbol":"MEX$","GYD_symbol":"G$","TOP_symbol":"T$","SVC_displayName":"薩爾瓦多科郎","ZMK_displayName":"尚比亞克瓦查","TOP_displayName":"東加潘加","ITL_displayName":"義大利里拉","USN_displayName":"美元 (第二天)","KWD_displayName":"科威特第納爾","GEL_symbol":"lari","KMF_displayName":"科摩羅法郎","COP_symbol":"Col$","MYR_displayName":"馬來西亞 - 林吉特","XFU_displayName":"法國 UIC 法郎","GMD_displayName":"甘比亞達拉西","LVL_displayName":"拉脫維亞拉特銀幣","AUD_displayName":"澳幣","XPF_displayName":"CFP 法郎","LBP_displayName":"黎巴嫩鎊","SKK_symbol":"Sk","BYB_displayName":"白俄羅斯新盧布 (1994-1999)","MKD_displayName":"馬其頓第納爾","GWP_displayName":"幾內亞披索披索","CNY_displayName":"人民幣","HNL_symbol":"L","BOB_symbol":"Bs","JOD_displayName":"約旦第納爾","OMR_displayName":"阿曼里奧","BOV_displayName":"玻利維亞幕多","XPT_displayName":"白金","AUD_symbol":"AU$","NOK_displayName":"挪威克羅納","SCR_displayName":"塞舌爾群島盧布","XBA_displayName":"歐洲綜合單位","CSK_displayName":"捷克斯洛伐克硬克朗","PLZ_displayName":"波蘭茲羅提 (1950-1995)","UAK_displayName":"烏克蘭卡本瓦那茲","MGF_displayName":"馬達加斯加法郎","GNS_displayName":"幾內亞西里","YUN_displayName":"南斯拉夫 可轉換第納爾","UYU_symbol":"Ur$","GYD_displayName":"圭亞那元","QAR_displayName":"卡達爾里亞爾","BZD_symbol":"BZ$","JOD_symbol":"JD","ALL_displayName":"阿爾巴尼亞列克","BBD_displayName":"巴貝多元","RON_displayName":"羅馬尼亞列伊","XCD_symbol":"EC$","AMD_displayName":"亞美尼亞德拉姆","CYP_displayName":"賽浦路斯鎊","GBP_symbol":"£","SEK_displayName":"瑞典克羅納","MZN_symbol":"MTn","MMK_displayName":"緬甸元","ZAR_displayName":"南非蘭特","ECV_displayName":"厄瓜多爾由里達瓦康斯坦 (UVC)","LYD_symbol":"LD","VUV_symbol":"VT","AWG_displayName":"阿魯巴盾","CVE_symbol":"CVEsc","STD_displayName":"聖多美島和普林西比島多布拉","CAD_displayName":"加幣","ADP_displayName":"安道爾陪士特","MRO_displayName":"茅利塔尼亞烏吉亞","LSL_displayName":"賴索托羅蒂","TND_displayName":"突尼西亞第納爾","USD_symbol":"$","BMD_symbol":"Ber$","BAM_symbol":"KM","BRC_displayName":"巴西克魯賽羅 (1986-1989)","BMD_displayName":"百慕達幣","BRL_displayName":"巴西里拉","JMD_displayName":"牙買加元","SOS_displayName":"索馬利亞先令","SAR_displayName":"沙烏地里雅","PEI_displayName":"祕魯因蒂","ESP_displayName":"西班牙陪士特","HKD_displayName":"港幣","ESP_symbol":"₧","BWP_displayName":"波札那 - 普拉","TTD_displayName":"千里達及托巴哥元","BSD_displayName":"巴哈馬元","BIF_displayName":"蒲隆地法郎","FRF_displayName":"法國法郎","DKK_displayName":"丹麥克羅納","AED_displayName":"阿拉伯聯合大公國迪爾汗","GHS_symbol":"GH¢","AOK_displayName":"安哥拉寬扎(1977-1990)","ATS_displayName":"奧地利先令","PEN_displayName":"秘魯新太陽幣","CRC_displayName":"哥斯大黎加科郎","PAB_displayName":"巴拿馬巴波亞","CHE_displayName":"WIR 歐元","GQE_displayName":"赤道幾內亞埃奎勒","DZD_displayName":"阿爾及利亞第納爾","EEK_displayName":"愛沙尼亞克朗","YDD_displayName":"葉門第納爾","GHC_displayName":"迦納仙蔕","YER_symbol":"YRl","PLN_symbol":"Zl","NPR_symbol":"Nrs","MXP_displayName":"墨西哥銀披索 (1861-1992)","XAG_displayName":"XAG","XFO_displayName":"法國金法郎","GWE_displayName":"葡屬幾內亞埃斯庫多","BOB_displayName":"玻利維亞貨幣單位","CAD_symbol":"CA$","ZWD_displayName":"辛巴威元","SRD_displayName":"蘇利南元","ZRN_displayName":"薩伊新扎伊爾","XAU_displayName":"黃金","GTQ_symbol":"Q","KRW_symbol":"KRW","BOP_displayName":"玻利維亞披索","LBP_symbol":"LL","XBD_displayName":"歐洲會計單位(XBD)","TZS_displayName":"坦尚尼亞先令","XPF_symbol":"CFPF","TTD_symbol":"TT$","LRD_displayName":"賴比瑞亞元","KRW_displayName":"韓國圜","SHP_displayName":"聖赫勒拿鎊","NAD_symbol":"N$","MZE_displayName":"莫桑比克埃斯庫多","SDD_displayName":"蘇丹第納爾","HRK_displayName":"克羅地亞庫納","FKP_displayName":"福克蘭群島鎊","COP_displayName":"哥倫比亞披索","YUD_displayName":"南斯拉夫第納爾硬幣","YUM_displayName":"南斯拉夫挪威亞第納爾","BYR_symbol":"Rbl","THB_displayName":"泰銖","MGA_displayName":"馬達加斯加艾瑞爾","TWD_displayName":"新臺幣","UGS_displayName":"烏干達先令 (1966-1987)","SBD_symbol":"SI$","ZAL_displayName":"南非 - 蘭特 (金融)","GEL_displayName":"喬治拉里","ILP_displayName":"以色列鎊","MKD_symbol":"MDen","KES_displayName":"肯尼亞先令","CZK_displayName":"捷克克朗","UGX_displayName":"烏干達先令","KZT_symbol":"T","BGL_displayName":"保加利亞硬列弗","ARP_displayName":"阿根廷披索(1983-1985)","BBD_symbol":"BDS$","MYR_symbol":"RM","RUR_displayName":"俄羅斯盧布 (1991-1998)","ERN_displayName":"厄立特里亞納克法","BEF_symbol":"BF","CLF_displayName":"卡林油達佛曼跎","BRB_displayName":"巴西克魯薩多農瓦(1967-1986)","IDR_symbol":"Rp","IEP_symbol":"IR£","BHD_displayName":"巴林第納爾","SYP_displayName":"敘利亞鎊","BIF_symbol":"Fbu","SZL_displayName":"史瓦濟蘭里朗吉尼","INR_displayName":"印度盧布","PTE_displayName":"葡萄牙埃斯庫多","KPW_displayName":"北朝鮮幣","XOF_displayName":"西非法郎 BCEAO","DOP_symbol":"RD$","MXN_displayName":"墨西哥 - 披索","RWF_displayName":"盧安達法郎","ETB_displayName":"衣索比亞比爾","LTL_displayName":"立陶宛里塔","SZL_symbol":"E","QAR_symbol":"QR","SOS_symbol":"Sh.","BND_displayName":"汶萊元","SUR_displayName":"蘇聯盧布","AOA_displayName":"安哥拉寬扎","FJD_symbol":"F$","CVE_displayName":"維德角埃斯庫多","XTS_displayName":"XTS","CLP_displayName":"智利披索","HUF_displayName":"匈牙利 - 福林","LKR_symbol":"SL Re","SCR_symbol":"SR","TJS_displayName":"塔吉克索莫尼","MWK_symbol":"MK","GBP_displayName":"英鎊","TPE_displayName":"帝汶埃斯庫多","GNF_symbol":"GF","SGD_displayName":"新加坡幣","SLL_displayName":"獅子山利昂","MZM_symbol":"Mt","PHP_symbol":"Php","CYP_symbol":"£C","XAF_displayName":"西非法郎 BEAC","MTL_displayName":"馬爾他里拉","KHR_displayName":"柬埔寨瑞爾","ZRZ_displayName":"扎伊爾扎伊爾","KES_symbol":"K Sh","PKR_symbol":"Pra","IQD_symbol":"ID","BEC_displayName":"比利時法郎 (可轉換)","BEL_displayName":"比利時法郎 (金融)","AZN_displayName":"亞塞拜然蒙納特","FIM_displayName":"芬蘭馬克","PKR_displayName":"巴基斯坦盧布","UYP_displayName":"烏拉圭披索 (1975-1993)","ANG_symbol":"NA f.","CHW_displayName":"WIR 法郎","PLN_displayName":"波蘭茲羅提","RON_symbol":"0≤lei|1≤leu|1","BTN_displayName":"不丹那特倫","UAH_displayName":"烏克蘭格里夫那","YER_displayName":"也門里亞爾","UYU_displayName":"烏拉圭披索","CRC_symbol":"C","PGK_displayName":"巴布亞紐幾內亞基那","XBC_displayName":"歐洲會計單位(XBC)","EUR_displayName":"歐元","MUR_displayName":"模里西斯盧布","BYR_displayName":"白俄羅斯盧布","SEK_symbol":"SKr","BHD_symbol":"BD","IQD_displayName":"伊拉克第納爾","VEB_displayName":"委內瑞拉博利瓦","CLP_symbol":"Ch$","MZM_displayName":"莫三比克梅蒂卡爾","NZD_symbol":"$NZ","CHF_symbol":"Fr.","SIT_displayName":"斯洛維尼亞托勒","NOK_symbol":"NKr","XCD_displayName":"格瑞那達元","RUB_displayName":"俄羅斯盧布","BUK_displayName":"緬甸元 BUK","ILS_displayName":"以色列新謝克爾","KHR_symbol":"CR","NAD_displayName":"納米比亞元","HNL_displayName":"洪都拉斯倫皮拉","GTQ_displayName":"瓜地馬拉格查爾","EUR_symbol":"€","NZD_displayName":"紐西蘭幣","ARA_displayName":"阿根廷奧斯特納爾","ARS_displayName":"阿根廷披索","ANG_displayName":"荷屬安地列斯盾","MOP_symbol":"MOP","ZWD_symbol":"Z$","ITL_symbol":"₤","ZAR_symbol":"R","CHF_displayName":"瑞士法郎","USD_displayName":"美元","CNY_symbol":"¥","HKD_symbol":"HK$","JPY_symbol":"JP¥"})
\ No newline at end of file +({"USD_symbol":"$","EUR_displayName":"歐元","HKD_displayName":"港幣","CAD_displayName":"加幣","JPY_displayName":"日圓","GBP_displayName":"英鎊","AUD_displayName":"澳幣","CNY_displayName":"人民幣","CHF_displayName":"瑞士法郎","USD_displayName":"美元","CNY_symbol":"¥","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-tw/gregorian.js b/lib/dojo/cldr/nls/zh-tw/gregorian.js index 78165cb92..be7dfc659 100644 --- a/lib/dojo/cldr/nls/zh-tw/gregorian.js +++ b/lib/dojo/cldr/nls/zh-tw/gregorian.js @@ -1 +1 @@ -({"dateFormatItem-yM":"yyyy/M","field-minute":"分鐘","eraNames":["西元前","西元"],"field-weekday":"週天","dateFormatItem-MMdd":"MM/dd","field-day-relative+-3":"大前天","field-relative-day":"大後天","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"field-era":"年代","field-hour":"小時","quarters-standAlone-abbr":["第1季","第2季","第3季","第4季"],"timeFormat-full":"zzzzah時mm分ss秒","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","eraAbbr":["西元前","西元"],"field-day-relative+2":"後天","field-day-relative+3":"大後天","timeFormat-medium":"ah:mm:ss","field-zone":"區域","dateFormatItem-yyMM":"yy-MM","dateFormat-medium":"yyyy/M/d","quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"dateFormatItem-yMMMM":"y年M月","dateFormatItem-HHmmss":"H:mm:ss","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-week":"週","dateFormatItem-HHmm":"H:mm","timeFormat-long":"zah時mm分ss秒","dateFormatItem-H":"H時","quarters-format-abbr":["第1季","第2季","第3季","第4季"],"days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"field-second":"秒","dateFormatItem-MEd":"M/d(E)","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"days-standAlone-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormat-short":"yy/M/d","dateFormatItem-yMMMEd":"y年M月d日EEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"yyyy/M/d(EEE)","dateTimeAvailableFormats":["d日(E)","H:mm","H:mm:ss","M-d(E)","MM/dd","M/d","yyyy/M","yyyy/M/d(EEE)","yyyy年M月","yyyy年M月","yyyy/MM","MMMMdd日","MMMd日","MM-dd","M-d","d日","mm:ss","mm:ss","yyyy年","yyyy-M","yyyy年M月d日,E","yyyy年MMM","yyyy年MMMd日EEE","yyyy年MMMM","yyyy年QQQ","y年QQQ","yy-MM","yy年MMM","yy年第Q季度","yyyy年","yyyy年M月","yyyy年MMMM"],"quarters-format-wide":["第1季","第2季","第3季","第4季"],"eraNarrow":["西元前","西元"],"dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-MMMEd":"MMMd日E","dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","timeFormat-short":"ah:mm","field-year":"年","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","field-day-relative+0":"今天","field-day-relative+1":"明天","dateFormatItem-M":"L","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","dateFormatItem-Hm":"H:mm","field-dayperiod":"上午/下午","dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-y":"y年","dateFormatItem-hm":"ah:mm","dateFormatItem-yMMMd":"y年MMMd日","days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dayPeriods-format-wide-afternoon":"下午","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file +({"quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"quarters-format-abbr":["第1季","第2季","第3季","第4季"],"dateFormat-medium":"yyyy/M/d","field-second":"秒","quarters-standAlone-abbr":["第1季","第2季","第3季","第4季"],"dateFormatItem-MMdd":"MM/dd","dateFormatItem-MEd":"M/d(E)","dateFormatItem-yMEd":"yyyy/M/d(EEE)","field-week":"週","dateFormatItem-H":"H時","eraNarrow":["西元前","西元"],"field-day-relative+-3":"大前天","timeFormat-full":"zzzzah時mm分ss秒","dateFormatItem-Md":"M/d","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"eraNames":["西元前","西元"],"field-minute":"分鐘","field-hour":"小時","field-day-relative+2":"後天","field-day-relative+3":"大後天","dateFormat-short":"yy/M/d","dateFormatItem-yMMMEd":"y年M月d日EEE","field-era":"年代","dateFormatItem-yM":"yyyy/M","timeFormat-long":"zah時mm分ss秒","eraAbbr":["西元前","西元"],"dateFormatItem-h":"ah時","dateFormatItem-yMMM":"y年M月","quarters-format-wide":["第1季","第2季","第3季","第4季"],"field-weekday":"週天","field-zone":"區域","dateFormatItem-Ed":"d日(E)","months-format-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-MMMEd":"MMMd日E","dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"timeFormat-short":"ah:mm","field-year":"年","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","field-day-relative+0":"今天","field-day-relative+1":"明天","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"dateFormatItem-M":"M月","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","field-dayperiod":"上午/下午","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-y":"y年","dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yMMMd":"y年MMMd日","days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dayPeriods-format-wide-afternoon":"下午","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh/gregorian.js b/lib/dojo/cldr/nls/zh/gregorian.js index 4c5993f43..9509b4364 100644 --- a/lib/dojo/cldr/nls/zh/gregorian.js +++ b/lib/dojo/cldr/nls/zh/gregorian.js @@ -1 +1 @@ -({"months-format-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-weekday":"周天","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"y年M月d日,E","dateFormatItem-MMMEd":"MMMd日E","eraNarrow":["公元前","公元"],"dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M-d","field-era":"时期","dateFormatItem-yM":"yyyy-M","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第1季度","第2季度","第3季度","第4季度"],"timeFormat-long":"zah时mm分ss秒","field-year":"年","dateFormatItem-yMMM":"y年MMM","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","field-hour":"小时","dateFormatItem-MMdd":"MM-dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah时mm分ss秒","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"后天","dateFormatItem-H":"H时","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"quarters-format-abbr":["1季","2季","3季","4季"],"quarters-standAlone-wide":["第1季度","第2季度","第3季度","第4季度"],"dateFormatItem-M":"L","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1季","2季","3季","4季"],"eraAbbr":["公元前","公元"],"field-minute":"分钟","field-dayperiod":"上午/下午","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateFormatItem-MEd":"M-dE","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"区域","dateFormatItem-y":"y年","months-standAlone-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yMMMd":"y年MMMd日","eraNames":["公元前","公元"],"days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dateFormat-short":"yy-M-d","dayPeriods-format-wide-afternoon":"下午","field-second":"秒钟","dateFormatItem-yMMMEd":"y年MMMd日EEE","dateFormatItem-Ed":"d日E","field-week":"周","dateFormat-medium":"yyyy-M-d","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file +({"months-format-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-weekday":"周天","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"y年M月d日,E","dateFormatItem-MMMEd":"MMMd日E","eraNarrow":["公元前","公元"],"dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M-d","field-era":"时期","dateFormatItem-yM":"yyyy-M","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第1季度","第2季度","第3季度","第4季度"],"timeFormat-long":"zah时mm分ss秒","field-year":"年","dateFormatItem-yMMM":"y年MMM","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","field-hour":"小时","dateFormatItem-MMdd":"MM-dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah时mm分ss秒","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"后天","dateFormatItem-H":"H时","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"quarters-format-abbr":["1季","2季","3季","4季"],"quarters-standAlone-wide":["第1季度","第2季度","第3季度","第4季度"],"dateFormatItem-M":"M月","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1季","2季","3季","4季"],"eraAbbr":["公元前","公元"],"field-minute":"分钟","field-dayperiod":"上午/下午","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah时","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateFormatItem-MEd":"M-dE","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"区域","dateFormatItem-y":"y年","months-standAlone-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yMMMd":"y年MMMd日","eraNames":["公元前","公元"],"days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dateFormat-short":"yy-M-d","dayPeriods-format-wide-afternoon":"下午","field-second":"秒钟","dateFormatItem-yMMMEd":"y年MMMd日EEE","dateFormatItem-Ed":"d日E","field-week":"周","dateFormat-medium":"yyyy-M-d","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh/number.js b/lib/dojo/cldr/nls/zh/number.js index 90d87b946..dbde35c64 100644 --- a/lib/dojo/cldr/nls/zh/number.js +++ b/lib/dojo/cldr/nls/zh/number.js @@ -1 +1 @@ -({"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file +({"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"})
\ No newline at end of file diff --git a/lib/dojo/cldr/supplemental.js b/lib/dojo/cldr/supplemental.js index f887e3a99..4ceef4f78 100644 --- a/lib/dojo/cldr/supplemental.js +++ b/lib/dojo/cldr/supplemental.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,9 +8,10 @@ if(!dojo._hasResource["dojo.cldr.supplemental"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.cldr.supplemental"] = true; dojo.provide("dojo.cldr.supplemental"); - dojo.require("dojo.i18n"); +dojo.getObject("cldr.supplemental", true, dojo); + dojo.cldr.supplemental.getFirstDayOfWeek = function(/*String?*/locale){ // summary: Returns a zero-based index for first day of the week // description: @@ -20,11 +21,11 @@ dojo.cldr.supplemental.getFirstDayOfWeek = function(/*String?*/locale){ // from http://www.unicode.org/cldr/data/common/supplemental/supplementalData.xml:supplementalData/weekData/firstDay var firstDay = {/*default is 1=Monday*/ mv:5, - af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6, - ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,tn:6,ye:6, - ar:0,as:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,ie:0, - il:0,'in':0,is:0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mn:0,mo:0,mp:0, - mt:0,nz:0,ph:0,pk:0,sg:0,sy:0,th:0,tt:0,tw:0,um:0,us:0,uz:0, + ae:6,af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6, + ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,sy:6,tn:6,ye:6, + ar:0,as:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0, + il:0,'in':0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mn:0,mo:0,mp:0, + mt:0,nz:0,ph:0,pk:0,sg:0,th:0,tt:0,tw:0,um:0,us:0,uz:0, vi:0,zw:0 // variant. do not use? gb:0, }; @@ -49,7 +50,7 @@ dojo.cldr.supplemental._region = function(/*String?*/locale){ region = tags[2]; } return region; -} +}; dojo.cldr.supplemental.getWeekend = function(/*String?*/locale){ // summary: Returns a hash containing the start and end days of the weekend diff --git a/lib/dojo/colors.js b/lib/dojo/colors.js index 1f41dc3c7..dfb8f89e6 100644 --- a/lib/dojo/colors.js +++ b/lib/dojo/colors.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.colors"]){ //_hasResource checks added by build. Do dojo._hasResource["dojo.colors"] = true; dojo.provide("dojo.colors"); +dojo.getObject("colors", true, dojo); + //TODO: this module appears to break naming conventions /*===== @@ -55,9 +57,9 @@ dojo.colors = { var H = ((parseFloat(c[0]) % 360) + 360) % 360 / 360, S = parseFloat(c[1]) / 100, L = parseFloat(c[2]) / 100, - // calculate rgb according to the algorithm - // recommended by the CSS3 Color Module - m2 = L <= 0.5 ? L * (S + 1) : L + S - L * S, + // calculate rgb according to the algorithm + // recommended by the CSS3 Color Module + m2 = L <= 0.5 ? L * (S + 1) : L + S - L * S, m1 = 2 * L - m2; a = [ hue2rgb(m1, m2, H + 1 / 3) * 256, diff --git a/lib/dojo/cookie.js b/lib/dojo/cookie.js index 67d2cdc6a..32d2718d9 100644 --- a/lib/dojo/cookie.js +++ b/lib/dojo/cookie.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,9 +8,9 @@ if(!dojo._hasResource["dojo.cookie"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.cookie"] = true; dojo.provide("dojo.cookie"); - dojo.require("dojo.regexp"); + /*===== dojo.__cookieProps = function(){ // expires: Date|String|Number? @@ -33,7 +33,7 @@ dojo.__cookieProps = function(){ dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/props){ - // summary: + // summary: // Get or set a cookie. // description: // If one argument is passed, returns the value of the cookie @@ -42,17 +42,17 @@ dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/ // Name of the cookie // value: // Value for the cookie - // props: + // props: // Properties for the cookie // example: // set a cookie with the JSON-serialized contents of an object which // will expire 5 days from now: // | dojo.cookie("configObj", dojo.toJson(config), { expires: 5 }); - // + // // example: // de-serialize a cookie back into a JavaScript object: // | var config = dojo.fromJson(dojo.cookie("configObj")); - // + // // example: // delete a cookie: // | dojo.cookie("configObj", null, {expires: -1}); @@ -64,7 +64,7 @@ dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/ props = props || {}; // FIXME: expires=0 seems to disappear right away, not on close? (FF3) Change docs? var exp = props.expires; - if(typeof exp == "number"){ + if(typeof exp == "number"){ var d = new Date(); d.setTime(d.getTime() + exp*24*60*60*1000); exp = props.expires = d; @@ -85,7 +85,7 @@ dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/ dojo.cookie.isSupported = function(){ // summary: // Use to determine if the current browser supports cookies or not. - // + // // Returns true if user allows cookies. // Returns false if user doesn't allow cookies. diff --git a/lib/dojo/currency.js b/lib/dojo/currency.js index 53833344d..8ae564618 100644 --- a/lib/dojo/currency.js +++ b/lib/dojo/currency.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,12 +8,13 @@ if(!dojo._hasResource["dojo.currency"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.currency"] = true; dojo.provide("dojo.currency"); - dojo.require("dojo.number"); dojo.require("dojo.i18n"); -dojo.requireLocalization("dojo.cldr", "currency", null, "ROOT,ar,ca,cs,da,de,el,en,en-au,en-ca,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.requireLocalization("dojo.cldr", "currency", null, "ROOT,ar,ca,cs,da,de,el,en,en-au,en-ca,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,ro,ru,sk,sl,sv,th,tr,zh,zh-hant,zh-hk,zh-tw"); dojo.require("dojo.cldr.monetary"); +dojo.getObject("currency", true, dojo); + /*===== dojo.currency = { // summary: localized formatting and parsing routines for currencies @@ -47,7 +48,7 @@ dojo.currency._mixInDefaults = function(options){ // Mixin with provided options return dojo.mixin(data, options); -} +}; /*===== dojo.declare("dojo.currency.__FormatOptions", [dojo.number.__FormatOptions], { @@ -82,7 +83,7 @@ dojo.currency.format = function(/*Number*/value, /*dojo.currency.__FormatOptions // the number to be formatted. return dojo.number.format(value, dojo.currency._mixInDefaults(options)); -} +}; dojo.currency.regexp = function(/*dojo.number.__RegexpOptions?*/options){ // @@ -93,7 +94,7 @@ dojo.currency.regexp = function(/*dojo.number.__RegexpOptions?*/options){ // Returns regular expression with positive and negative match, group and decimal separators // Note: the options.places default, the number of decimal places to accept, is defined by the currency type. return dojo.number.regexp(dojo.currency._mixInDefaults(options)); // String -} +}; /*===== dojo.declare("dojo.currency.__ParseOptions", [dojo.number.__ParseOptions], { @@ -134,6 +135,6 @@ dojo.currency.parse = function(/*String*/expression, /*dojo.currency.__ParseOpti // expression: A string representation of a currency value return dojo.number.parse(expression, dojo.currency._mixInDefaults(options)); -} +}; } diff --git a/lib/dojo/data/ItemFileReadStore.js b/lib/dojo/data/ItemFileReadStore.js index 1faed3c7d..9d175ca2c 100644 --- a/lib/dojo/data/ItemFileReadStore.js +++ b/lib/dojo/data/ItemFileReadStore.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,11 +8,11 @@ if(!dojo._hasResource["dojo.data.ItemFileReadStore"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.data.ItemFileReadStore"] = true; dojo.provide("dojo.data.ItemFileReadStore"); - dojo.require("dojo.data.util.filter"); dojo.require("dojo.data.util.simpleFetch"); dojo.require("dojo.date.stamp"); + dojo.declare("dojo.data.ItemFileReadStore", null,{ // summary: // The ItemFileReadStore implements the dojo.data.api.Read API and reads @@ -22,7 +22,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // { name:'Fozzie Bear', wears:['hat', 'tie']}, // { name:'Miss Piggy', pets:'Foo-Foo'} // ]} - // Note that it can also contain an 'identifer' property that specified which attribute on the items + // Note that it can also contain an 'identifer' property that specified which attribute on the items // in the array of items that acts as the unique identifier for that item. // constructor: function(/* Object */ keywordParameters){ @@ -37,7 +37,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // ... // typeN: function || object // } - // Where if it is a function, it is assumed to be an object constructor that takes the + // Where if it is a function, it is assumed to be an object constructor that takes the // value of _value as the initialization parameters. If it is an object, then it is assumed // to be an object of general form: // { @@ -103,7 +103,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //all item handles will become invalid and a new fetch must be issued. clearOnClose: false, - //Parameter to allow specifying if preventCache should be passed to the xhrGet call or not when loading data from a url. + //Parameter to allow specifying if preventCache should be passed to the xhrGet call or not when loading data from a url. //Note this does not mean the store calls the server on each fetch, only that the data load has preventCache set as an option. //Added for tracker: #6072 urlPreventCache: false, @@ -111,19 +111,19 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //Parameter for specifying that it is OK for the xhrGet call to fail silently. failOk: false, - //Parameter to indicate to process data from the url as hierarchical - //(data items can contain other data items in js form). Default is true - //for backwards compatibility. False means only root items are processed - //as items, all child objects outside of type-mapped objects and those in + //Parameter to indicate to process data from the url as hierarchical + //(data items can contain other data items in js form). Default is true + //for backwards compatibility. False means only root items are processed + //as items, all child objects outside of type-mapped objects and those in //specific reference format, are left straight JS data objects. hierarchical: true, _assertIsItem: function(/* item */ item){ // summary: // This function tests whether the item passed in is indeed an item in the store. - // item: + // item: // The item to test for being contained by the store. - if(!this.isItem(item)){ + if(!this.isItem(item)){ throw new Error("dojo.data.ItemFileReadStore: Invalid item argument."); } }, @@ -131,25 +131,25 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ _assertIsAttribute: function(/* attribute-name-string */ attribute){ // summary: // This function tests whether the item passed in is indeed a valid 'attribute' like type for the store. - // attribute: + // attribute: // The attribute to test for being contained by the store. - if(typeof attribute !== "string"){ + if(typeof attribute !== "string"){ throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument."); } }, - getValue: function( /* item */ item, - /* attribute-name-string */ attribute, + getValue: function( /* item */ item, + /* attribute-name-string */ attribute, /* value? */ defaultValue){ - // summary: + // summary: // See dojo.data.api.Read.getValue() var values = this.getValues(item, attribute); return (values.length > 0)?values[0]:defaultValue; // mixed }, - getValues: function(/* item */ item, + getValues: function(/* item */ item, /* attribute-name-string */ attribute){ - // summary: + // summary: // See dojo.data.api.Read.getValues() this._assertIsItem(item); @@ -159,7 +159,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, getAttributes: function(/* item */ item){ - // summary: + // summary: // See dojo.data.api.Read.getAttributes() this._assertIsItem(item); var attributes = []; @@ -174,17 +174,17 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ hasAttribute: function( /* item */ item, /* attribute-name-string */ attribute){ - // summary: + // summary: // See dojo.data.api.Read.hasAttribute() this._assertIsItem(item); this._assertIsAttribute(attribute); return (attribute in item); }, - containsValue: function(/* item */ item, - /* attribute-name-string */ attribute, + containsValue: function(/* item */ item, + /* attribute-name-string */ attribute, /* anything */ value){ - // summary: + // summary: // See dojo.data.api.Read.containsValue() var regexp = undefined; if(typeof value === "string"){ @@ -193,22 +193,22 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ return this._containsValue(item, attribute, value, regexp); //boolean. }, - _containsValue: function( /* item */ item, - /* attribute-name-string */ attribute, + _containsValue: function( /* item */ item, + /* attribute-name-string */ attribute, /* anything */ value, /* RegExp?*/ regexp){ - // summary: + // summary: // Internal function for looking at the values contained by the item. - // description: - // Internal function for looking at the values contained by the item. This + // description: + // Internal function for looking at the values contained by the item. This // function allows for denoting if the comparison should be case sensitive for // strings or not (for handling filtering cases where string case should not matter) - // + // // item: // The data item to examine for attribute values. // attribute: // The attribute to inspect. - // value: + // value: // The value to match. // regexp: // Optional regular expression generated off value if value was of string type to handle wildcarding. @@ -225,7 +225,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, isItem: function(/* anything */ something){ - // summary: + // summary: // See dojo.data.api.Read.isItem() if(something && something[this._storeRefPropName] === this){ if(this._arrayOfAllItems[something[this._itemNumPropName]] === something){ @@ -236,25 +236,25 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, isItemLoaded: function(/* anything */ something){ - // summary: + // summary: // See dojo.data.api.Read.isItemLoaded() return this.isItem(something); //boolean }, loadItem: function(/* object */ keywordArgs){ - // summary: + // summary: // See dojo.data.api.Read.loadItem() this._assertIsItem(keywordArgs.item); }, getFeatures: function(){ - // summary: + // summary: // See dojo.data.api.Read.getFeatures() return this._features; //Object }, getLabel: function(/* item */ item){ - // summary: + // summary: // See dojo.data.api.Read.getLabel() if(this._labelAttr && this.isItem(item)){ return this.getValue(item,this._labelAttr); //String @@ -263,7 +263,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, getLabelAttributes: function(/* item */ item){ - // summary: + // summary: // See dojo.data.api.Read.getLabelAttributes() if(this._labelAttr){ return [this._labelAttr]; //array @@ -271,10 +271,10 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ return null; //null }, - _fetchItems: function( /* Object */ keywordArgs, - /* Function */ findCallback, + _fetchItems: function( /* Object */ keywordArgs, + /* Function */ findCallback, /* Function */ errorCallback){ - // summary: + // summary: // See dojo.data.util.simpleFetch.fetch() var self = this, filter = function(requestArgs, arrayOfItems){ @@ -314,8 +314,8 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ } findCallback(items, requestArgs); }else{ - // We want a copy to pass back in case the parent wishes to sort the array. - // We shouldn't allow resort of the internal list, so that multiple callers + // We want a copy to pass back in case the parent wishes to sort the array. + // We shouldn't allow resort of the internal list, so that multiple callers // can get lists and sort without affecting each other. We also need to // filter out any null values that have been left as a result of deleteItem() // calls in ItemFileWriteStore. @@ -335,11 +335,11 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //Do a check on the JsonFileUrl and crosscheck it. //If it doesn't match the cross-check, it needs to be updated //This allows for either url or _jsonFileUrl to he changed to - //reset the store load location. Done this way for backwards + //reset the store load location. Done this way for backwards //compatibility. People use _jsonFileUrl (even though officially //private. if(this._jsonFileUrl !== this._ccUrl){ - dojo.deprecated("dojo.data.ItemFileReadStore: ", + dojo.deprecated("dojo.data.ItemFileReadStore: ", "To change the url, set the url property of the store," + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); this._ccUrl = this._jsonFileUrl; @@ -350,21 +350,21 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ } //See if there was any forced reset of data. - if(this.data != null && this._jsonData == null){ + if(this.data != null){ this._jsonData = this.data; this.data = null; } if(this._jsonFileUrl){ //If fetches come in before the loading has finished, but while - //a load is in progress, we have to defer the fetching to be + //a load is in progress, we have to defer the fetching to be //invoked in the callback. if(this._loadInProgress){ this._queuedFetches.push({args: keywordArgs, filter: filter}); }else{ this._loadInProgress = true; var getArgs = { - url: self._jsonFileUrl, + url: self._jsonFileUrl, handleAs: "json-comment-optional", preventCache: this.urlPreventCache, failOk: this.failOk @@ -424,7 +424,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, _handleQueuedFetches: function(){ - // summary: + // summary: // Internal function to execute delayed request in the store. //Execute any deferred fetches now. if(this._queuedFetches.length > 0){ @@ -433,7 +433,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ delayedQuery = fData.args, delayedFilter = fData.filter; if(delayedFilter){ - delayedFilter(delayedQuery, this._getItemsArray(delayedQuery.queryOptions)); + delayedFilter(delayedQuery, this._getItemsArray(delayedQuery.queryOptions)); }else{ this.fetchItemByIdentity(delayedQuery); } @@ -443,31 +443,31 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, _getItemsArray: function(/*object?*/queryOptions){ - // summary: + // summary: // Internal function to determine which list of items to search over. // queryOptions: The query options parameter, if any. if(queryOptions && queryOptions.deep){ - return this._arrayOfAllItems; + return this._arrayOfAllItems; } return this._arrayOfTopLevelItems; }, close: function(/*dojo.data.api.Request || keywordArgs || null */ request){ - // summary: + // summary: // See dojo.data.api.Read.close() - if(this.clearOnClose && - this._loadFinished && + if(this.clearOnClose && + this._loadFinished && !this._loadInProgress){ //Reset all internalsback to default state. This will force a reload - //on next fetch. This also checks that the data or url param was set + //on next fetch. This also checks that the data or url param was set //so that the store knows it can get data. Without one of those being set, //the next fetch will trigger an error. - if(((this._jsonFileUrl == "" || this._jsonFileUrl == null) && + if(((this._jsonFileUrl == "" || this._jsonFileUrl == null) && (this.url == "" || this.url == null) ) && this.data == null){ console.debug("dojo.data.ItemFileReadStore: WARNING! Data reload " + - " information has not been provided." + + " information has not been provided." + " Please set 'url' or 'data' to the appropriate value before" + " the next fetch"); } @@ -505,7 +505,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // | false == valueIsAnItem("Kermit"); // | false == valueIsAnItem(42); // | false == valueIsAnItem(new Date()); - // | false == valueIsAnItem({_type:'Date', _value:'May 14, 1802'}); + // | false == valueIsAnItem({_type:'Date', _value:'1802-05-14'}); // | false == valueIsAnItem({_reference:'Kermit'}); // | true == valueIsAnItem({name:'Kermit', color:'green'}); // | true == valueIsAnItem({iggy:'pop'}); @@ -516,8 +516,8 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ (!dojo.isArray(aValue) || addingArrays) && (!dojo.isFunction(aValue)) && (aValue.constructor == Object || dojo.isArray(aValue)) && - (typeof aValue._reference === "undefined") && - (typeof aValue._type === "undefined") && + (typeof aValue._reference === "undefined") && + (typeof aValue._type === "undefined") && (typeof aValue._value === "undefined") && self.hierarchical ); @@ -567,13 +567,13 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ item[this._rootItemPropName]=true; } - // Step 2: Walk through all the attribute values of all the items, + // Step 2: Walk through all the attribute values of all the items, // and replace single values with arrays. For example, we change this: // { name:'Miss Piggy', pets:'Foo-Foo'} // into this: // { name:['Miss Piggy'], pets:['Foo-Foo']} - // - // We also store the attribute names so we can validate our store + // + // We also store the attribute names so we can validate our store // reference and item id special properties for the O(1) isItem var allAttributeNames = {}, key; @@ -607,9 +607,9 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ this._reverseRefMap += "_"; } - // Step 4: Some data files specify an optional 'identifier', which is - // the name of an attribute that holds the identity of each item. - // If this data file specified an identifier attribute, then build a + // Step 4: Some data files specify an optional 'identifier', which is + // the name of an attribute that holds the identity of each item. + // If this data file specified an identifier attribute, then build a // hash table of items keyed by the identity of the items. var arrayOfValues; @@ -621,7 +621,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ item = this._arrayOfAllItems[i]; arrayOfValues = item[identifier]; var identity = arrayOfValues[0]; - if(!this._itemsByIdentity[identity]){ + if(!Object.hasOwnProperty.call(this._itemsByIdentity, identity)){ this._itemsByIdentity[identity] = item; }else{ if(this._jsonFileUrl){ @@ -635,7 +635,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ this._features['dojo.data.api.Identity'] = Number; } - // Step 5: Walk through all the items, and set each item's properties + // Step 5: Walk through all the items, and set each item's properties // for _storeRefPropName and _itemNumPropName, so that store.isItem() will return true. for(i = 0; i < this._arrayOfAllItems.length; ++i){ item = this._arrayOfAllItems[i]; @@ -649,13 +649,13 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // We replace item-references with pointers to items. For example, we change: // { name:['Kermit'], friends:[{_reference:{name:'Miss Piggy'}}] } // into this: - // { name:['Kermit'], friends:[miss_piggy] } + // { name:['Kermit'], friends:[miss_piggy] } // (where miss_piggy is the object representing the 'Miss Piggy' item). // // We replace type/value pairs with typed-literals. For example, we change: - // { name:['Nelson Mandela'], born:[{_type:'Date', _value:'July 18, 1918'}] } + // { name:['Nelson Mandela'], born:[{_type:'Date', _value:'1918-07-18'}] } // into this: - // { name:['Kermit'], born:(new Date('July 18, 1918')) } + // { name:['Kermit'], born:(new Date(1918, 6, 18)) } // // We also generate the associate map for all items for the O(1) isItem function. for(i = 0; i < this._arrayOfAllItems.length; ++i){ @@ -668,7 +668,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ if(("_type" in value) && ("_value" in value)){ var type = value._type; // examples: 'Date', 'Color', or 'ComplexNumber' var mappingObj = this._datatypeMap[type]; // examples: Date, dojo.Color, foo.math.ComplexNumber, {type: dojo.Color, deserialize(value){ return new dojo.Color(value)}} - if(!mappingObj){ + if(!mappingObj){ throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '" + type + "'"); }else if(dojo.isFunction(mappingObj)){ arrayOfValues[j] = new mappingObj(value._value); @@ -691,12 +691,12 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ var candidateItem = this._arrayOfAllItems[k], found = true; for(var refKey in referenceDescription){ - if(candidateItem[refKey] != referenceDescription[refKey]){ - found = false; + if(candidateItem[refKey] != referenceDescription[refKey]){ + found = false; } } - if(found){ - arrayOfValues[j] = candidateItem; + if(found){ + arrayOfValues[j] = candidateItem; } } } @@ -707,7 +707,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ } } }else if(this.isItem(value)){ - //It's a child item (not one referenced through _reference). + //It's a child item (not one referenced through _reference). //We need to treat this as a referenced item, so it can be cleaned up //in a write store easily. if(this.referenceIntegrity){ @@ -736,7 +736,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, getIdentity: function(/* item */ item){ - // summary: + // summary: // See dojo.data.api.Identity.getIdentity() var identifier = this._features['dojo.data.api.Identity']; if(identifier === Number){ @@ -751,7 +751,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, fetchItemByIdentity: function(/* Object */ keywordArgs){ - // summary: + // summary: // See dojo.data.api.Identity.fetchItemByIdentity() // Hasn't loaded yet, we have to trigger the load. @@ -762,11 +762,11 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //Do a check on the JsonFileUrl and crosscheck it. //If it doesn't match the cross-check, it needs to be updated //This allows for either url or _jsonFileUrl to he changed to - //reset the store load location. Done this way for backwards + //reset the store load location. Done this way for backwards //compatibility. People use _jsonFileUrl (even though officially //private. if(this._jsonFileUrl !== this._ccUrl){ - dojo.deprecated("dojo.data.ItemFileReadStore: ", + dojo.deprecated("dojo.data.ItemFileReadStore: ", "To change the url, set the url property of the store," + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); this._ccUrl = this._jsonFileUrl; @@ -789,7 +789,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }else{ this._loadInProgress = true; var getArgs = { - url: self._jsonFileUrl, + url: self._jsonFileUrl, handleAs: "json-comment-optional", preventCache: this.urlPreventCache, failOk: this.failOk @@ -832,7 +832,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ scope = keywordArgs.scope?keywordArgs.scope:dojo.global; keywordArgs.onItem.call(scope, item); } - } + } }else{ // Already loaded. We can just look it up and call back. item = this._getItemByIdentity(keywordArgs.identity); @@ -847,9 +847,10 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // summary: // Internal function to look an item up by its identity map. var item = null; - if(this._itemsByIdentity){ + if(this._itemsByIdentity && + Object.hasOwnProperty.call(this._itemsByIdentity, identity)){ item = this._itemsByIdentity[identity]; - }else{ + }else if (Object.hasOwnProperty.call(this._arrayOfAllItems, identity)){ item = this._arrayOfAllItems[identity]; } if(item === undefined){ @@ -859,15 +860,15 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, getIdentityAttributes: function(/* item */ item){ - // summary: - // See dojo.data.api.Identity.getIdentifierAttributes() + // summary: + // See dojo.data.api.Identity.getIdentityAttributes() var identifier = this._features['dojo.data.api.Identity']; if(identifier === Number){ // If (identifier === Number) it means getIdentity() just returns // an integer item-number for each item. The dojo.data.api.Identity - // spec says we need to return null if the identity is not composed - // of attributes + // spec says we need to return null if the identity is not composed + // of attributes return null; // null }else{ return [identifier]; // Array @@ -875,18 +876,18 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, _forceLoad: function(){ - // summary: + // summary: // Internal function to force a load of the store if it hasn't occurred yet. This is required - // for specific functions to work properly. + // for specific functions to work properly. var self = this; //Do a check on the JsonFileUrl and crosscheck it. //If it doesn't match the cross-check, it needs to be updated //This allows for either url or _jsonFileUrl to he changed to - //reset the store load location. Done this way for backwards + //reset the store load location. Done this way for backwards //compatibility. People use _jsonFileUrl (even though officially //private. if(this._jsonFileUrl !== this._ccUrl){ - dojo.deprecated("dojo.data.ItemFileReadStore: ", + dojo.deprecated("dojo.data.ItemFileReadStore: ", "To change the url, set the url property of the store," + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); this._ccUrl = this._jsonFileUrl; @@ -897,14 +898,14 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ } //See if there was any forced reset of data. - if(this.data != null && this._jsonData == null){ + if(this.data != null){ this._jsonData = this.data; this.data = null; } if(this._jsonFileUrl){ var getArgs = { - url: this._jsonFileUrl, + url: this._jsonFileUrl, handleAs: "json-comment-optional", preventCache: this.urlPreventCache, failOk: this.failOk, @@ -913,7 +914,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ var getHandler = dojo.xhrGet(getArgs); getHandler.addCallback(function(data){ try{ - //Check to be sure there wasn't another load going on concurrently + //Check to be sure there wasn't another load going on concurrently //So we don't clobber data that comes in on it. If there is a load going on //then do not save this data. It will potentially clobber current data. //We mainly wanted to sync/wait here. @@ -926,7 +927,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //Okay, we hit an error state we can't recover from. A forced load occurred //while an async load was occurring. Since we cannot block at this point, the best //that can be managed is to throw an error. - throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress."); + throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress."); } }catch(e){ console.log(e); @@ -940,7 +941,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ self._getItemsFromLoadedData(self._jsonData); self._jsonData = null; self._loadFinished = true; - } + } } }); //Mix in the simple fetch implementation to this class. diff --git a/lib/dojo/data/ItemFileWriteStore.js b/lib/dojo/data/ItemFileWriteStore.js index 8782dce05..2c0f3b326 100644 --- a/lib/dojo/data/ItemFileWriteStore.js +++ b/lib/dojo/data/ItemFileWriteStore.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,6 +10,7 @@ dojo._hasResource["dojo.data.ItemFileWriteStore"] = true; dojo.provide("dojo.data.ItemFileWriteStore"); dojo.require("dojo.data.ItemFileReadStore"); + dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { constructor: function(/* object */ keywordParameters){ // keywordParameters: {typeMap: object) @@ -20,7 +21,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // ... // typeN: function || object // } - // Where if it is a function, it is assumed to be an object constructor that takes the + // Where if it is a function, it is assumed to be an object constructor that takes the // value of _value as the initialization parameters. It is serialized assuming object.toString() // serialization. If it is an object, then it is assumed // to be an object of general form: @@ -36,8 +37,8 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // For keeping track of changes so that we can implement isDirty and revert this._pending = { - _newItems:{}, - _modifiedItems:{}, + _newItems:{}, + _modifiedItems:{}, _deletedItems:{} }; @@ -100,8 +101,8 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { } } - // make sure this identity is not already in use by another item, if identifiers were - // defined in the file. Otherwise it would be the item count, + // make sure this identity is not already in use by another item, if identifiers were + // defined in the file. Otherwise it would be the item count, // which should always be unique in this case. if(this._itemsByIdentity){ this._assert(typeof this._itemsByIdentity[newIdentity] === "undefined"); @@ -110,7 +111,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { this._assert(typeof this._pending._deletedItems[newIdentity] === "undefined"); var newItem = {}; - newItem[this._storeRefPropName] = this; + newItem[this._storeRefPropName] = this; newItem[this._itemNumPropName] = this._arrayOfAllItems.length; if(this._itemsByIdentity){ this._itemsByIdentity[newIdentity] = newItem; @@ -163,14 +164,14 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // Bummer, the user is trying to do something like // newItem({_S:"foo"}). Unfortunately, our superclass, // ItemFileReadStore, is already using _S in each of our items - // to hold private info. To avoid a naming collision, we - // need to move all our private info to some other property + // to hold private info. To avoid a naming collision, we + // need to move all our private info to some other property // of all the items/objects. So, we need to iterate over all - // the items and do something like: + // the items and do something like: // item.__S = item._S; // item._S = undefined; - // But first we have to make sure the new "__S" variable is - // not in use, which means we have to iterate over all the + // But first we have to make sure the new "__S" variable is + // not in use, which means we have to iterate over all the // items checking for that. throw new Error("encountered bug in ItemFileWriteStore.newItem"); } @@ -207,17 +208,17 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { this._assertIsItem(item); // Remove this item from the _arrayOfAllItems, but leave a null value in place - // of the item, so as not to change the length of the array, so that in newItem() + // of the item, so as not to change the length of the array, so that in newItem() // we can still safely do: newIdentity = this._arrayOfAllItems.length; var indexInArrayOfAllItems = item[this._itemNumPropName]; var identity = this.getIdentity(item); //If we have reference integrity on, we need to do reference cleanup for the deleted item if(this.referenceIntegrity){ - //First scan all the attributes of this items for references and clean them up in the map + //First scan all the attributes of this items for references and clean them up in the map //As this item is going away, no need to track its references anymore. - //Get the attributes list before we generate the backup so it + //Get the attributes list before we generate the backup so it //doesn't pollute the attributes list. var attributes = this.getAttributes(item); @@ -263,7 +264,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { return !(this.isItem(possibleItem) && this.getIdentity(possibleItem) == identity); }, this); //Remove the note of the reference to the item and set the values on the modified attribute. - this._removeReferenceFromMap(item, containingItem, attribute); + this._removeReferenceFromMap(item, containingItem, attribute); if(newValues.length < oldValues.length){ this._setValueOrValues(containingItem, attribute, newValues, true); } @@ -325,11 +326,11 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { var identity = this.getIdentity(item); if(!this._pending._modifiedItems[identity]){ - // Before we actually change the item, we make a copy of it to - // record the original state, so that we'll be able to revert if + // Before we actually change the item, we make a copy of it to + // record the original state, so that we'll be able to revert if // the revert method gets called. If the item has already been // modified then there's no need to do this now, since we already - // have a record of the original state. + // have a record of the original state. var copyOfItemState = {}; for(var key in item){ if((key === this._storeRefPropName) || (key === this._itemNumPropName) || (key === this._rootItemPropName)){ @@ -350,7 +351,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { if(dojo.isArray(newValueOrValues) && newValueOrValues.length === 0){ // If we were passed an empty array as the value, that counts - // as "unsetting" the attribute, so we need to remove this + // as "unsetting" the attribute, so we need to remove this // attribute from the item. success = delete item[attribute]; newValueOrValues = undefined; // used in the onSet Notification call below @@ -374,7 +375,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // Unfortunately, it's not safe to just do this: // newValueArray = newValues; // Instead, we need to copy the array, which slice() does very nicely. - // This is so that our internal data structure won't + // This is so that our internal data structure won't // get corrupted if the user mucks with the values array *after* // calling setValues(). newValueArray = newValueOrValues.slice(0, newValueOrValues.length); @@ -382,7 +383,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { newValueArray = [newValueOrValues]; } - //We need to handle reference integrity if this is on. + //We need to handle reference integrity if this is on. //In the case of set, we need to see if references were added or removed //and update the reference tracking map accordingly. if(this.referenceIntegrity){ @@ -409,7 +410,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { if(map[id.toString()]){ delete map[id.toString()]; }else{ - this._addReferenceToMap(possibleItem, item, attribute); + this._addReferenceToMap(possibleItem, item, attribute); } } }, this); @@ -439,7 +440,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // Now we make the dojo.data.api.Notification call if(callOnSet){ - this.onSet(item, attribute, oldValueOrValues, newValueOrValues); + this.onSet(item, attribute, oldValueOrValues, newValueOrValues); } return success; // boolean }, @@ -474,7 +475,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // Method to remove an reference map entry for an item and attribute. // description: // Method to remove an reference map entry for an item and attribute. This will - // also perform cleanup on the map such that if there are no more references at all to + // also perform cleanup on the map such that if there are no more references at all to // the item, its reference object and entry are removed. // // refItem: @@ -531,7 +532,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { _flatten: function(/* anything */ value){ if(this.isItem(value)){ var item = value; - // Given an item, return an serializable object that provides a + // Given an item, return an serializable object that provides a // reference to the item. // For example, given kermit: // var kermit = store.newItem({id:2, name:"Kermit"}); @@ -562,7 +563,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { }, _getNewFileContentString: function(){ - // summary: + // summary: // Generate a string that can be saved to a file. // The result should look similar to: // http://trac.dojotoolkit.org/browser/dojo/trunk/tests/data/countries.json @@ -603,7 +604,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { }, _isEmpty: function(something){ - // summary: + // summary: // Function to determine if an array or object has no properties or values. // something: // The array or object to examine. @@ -632,7 +633,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { var self = this; var saveCompleteCallback = function(){ self._pending = { - _newItems:{}, + _newItems:{}, _modifiedItems:{}, _deletedItems:{} }; @@ -681,7 +682,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { modifiedItem = this._arrayOfAllItems[identity]; } - // Restore the original item into a full-fledged item again, we want to try to + // Restore the original item into a full-fledged item again, we want to try to // keep the same object instance as if we don't it, causes bugs like #9022. copyOfItemState[this._storeRefPropName] = this; for(key in modifiedItem){ @@ -722,7 +723,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { } this._addReferenceToMap(refItem, deletedItem, reference.attr); }, this); - delete deletedItem["backupRefs_" + this._reverseRefMap]; + delete deletedItem["backupRefs_" + this._reverseRefMap]; } } @@ -741,8 +742,8 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { } this._pending = { - _newItems:{}, - _modifiedItems:{}, + _newItems:{}, + _modifiedItems:{}, _deletedItems:{} }; return true; // boolean @@ -753,13 +754,13 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { if(item){ // return true if the item is dirty var identity = this.getIdentity(item); - return new Boolean(this._pending._newItems[identity] || + return new Boolean(this._pending._newItems[identity] || this._pending._modifiedItems[identity] || this._pending._deletedItems[identity]).valueOf(); // boolean }else{ // return true if the store is dirty -- which means return true // if there are any new items, dirty items, or modified items - if(!this._isEmpty(this._pending._newItems) || + if(!this._isEmpty(this._pending._newItems) || !this._isEmpty(this._pending._modifiedItems) || !this._isEmpty(this._pending._deletedItems)){ return true; @@ -770,28 +771,28 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { /* dojo.data.api.Notification */ - onSet: function(/* item */ item, - /*attribute-name-string*/ attribute, + onSet: function(/* item */ item, + /*attribute-name-string*/ attribute, /*object | array*/ oldValue, /*object | array*/ newValue){ // summary: See dojo.data.api.Notification.onSet() - // No need to do anything. This method is here just so that the + // No need to do anything. This method is here just so that the // client code can connect observers to it. }, onNew: function(/* item */ newItem, /*object?*/ parentInfo){ // summary: See dojo.data.api.Notification.onNew() - // No need to do anything. This method is here just so that the - // client code can connect observers to it. + // No need to do anything. This method is here just so that the + // client code can connect observers to it. }, onDelete: function(/* item */ deletedItem){ // summary: See dojo.data.api.Notification.onDelete() - // No need to do anything. This method is here just so that the - // client code can connect observers to it. + // No need to do anything. This method is here just so that the + // client code can connect observers to it. }, close: function(/* object? */ request){ diff --git a/lib/dojo/data/ObjectStore.js b/lib/dojo/data/ObjectStore.js new file mode 100644 index 000000000..8ccc4f853 --- /dev/null +++ b/lib/dojo/data/ObjectStore.js @@ -0,0 +1,487 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.data.ObjectStore"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.data.ObjectStore"] = true; +dojo.provide("dojo.data.ObjectStore"); +dojo.require("dojo.regexp"); + + + +dojo.declare("dojo.data.ObjectStore", null,{ + objectStore: null, + constructor: function(options){ + // summary: + // A Dojo Data implementation that wraps Dojo object stores for backwards + // compatibility. + // options: + // The configuration information to pass into the data store. + // options.objectStore: + // The object store to use as the source provider for this data store + dojo.mixin(this, options); + }, + labelProperty: "label", + + getValue: function(/*Object*/ item, /*String*/property, /*value?*/defaultValue){ + // summary: + // Gets the value of an item's 'property' + // + // item: + // The item to get the value from + // property: + // property to look up value for + // defaultValue: + // the default value + + return typeof item.get === "function" ? item.get(property) : + property in item ? + item[property] : defaultValue; + }, + getValues: function(item, property){ + // summary: + // Gets the value of an item's 'property' and returns + // it. If this value is an array it is just returned, + // if not, the value is added to an array and that is returned. + // + // item: /* object */ + // property: /* string */ + // property to look up value for + + var val = this.getValue(item,property); + return val instanceof Array ? val : val === undefined ? [] : [val]; + }, + + getAttributes: function(item){ + // summary: + // Gets the available attributes of an item's 'property' and returns + // it as an array. + // + // item: /* object */ + + var res = []; + for(var i in item){ + if(item.hasOwnProperty(i) && !(i.charAt(0) == '_' && i.charAt(1) == '_')){ + res.push(i); + } + } + return res; + }, + + hasAttribute: function(item,attribute){ + // summary: + // Checks to see if item has attribute + // + // item: /* object */ + // attribute: /* string */ + return attribute in item; + }, + + containsValue: function(item, attribute, value){ + // summary: + // Checks to see if 'item' has 'value' at 'attribute' + // + // item: /* object */ + // attribute: /* string */ + // value: /* anything */ + return dojo.indexOf(this.getValues(item,attribute),value) > -1; + }, + + + isItem: function(item){ + // summary: + // Checks to see if the argument is an item + // + // item: /* object */ + // attribute: /* string */ + + // we have no way of determining if it belongs, we just have object returned from + // service queries + return (typeof item == 'object') && item && !(item instanceof Date); + }, + + isItemLoaded: function(item){ + // summary: + // Checks to see if the item is loaded. + // + // item: /* object */ + + return item && typeof item.load !== "function"; + }, + + loadItem: function(args){ + // summary: + // Loads an item and calls the callback handler. Note, that this will call the callback + // handler even if the item is loaded. Consequently, you can use loadItem to ensure + // that an item is loaded is situations when the item may or may not be loaded yet. + // If you access a value directly through property access, you can use this to load + // a lazy value as well (doesn't need to be an item). + // + // example: + // store.loadItem({ + // item: item, // this item may or may not be loaded + // onItem: function(item){ + // // do something with the item + // } + // }); + + var item; + if(typeof args.item.load === "function"){ + dojo.when(args.item.load(), function(result){ + item = result; // in synchronous mode this can allow loadItem to return the value + var func = result instanceof Error ? args.onError : args.onItem; + if(func){ + func.call(args.scope, result); + } + }); + }else if(args.onItem){ + // even if it is already loaded, we will use call the callback, this makes it easier to + // use when it is not known if the item is loaded (you can always safely call loadItem). + args.onItem.call(args.scope, args.item); + } + return item; + }, + close: function(request){ + return request && request.abort && request.abort(); + }, + fetch: function(args){ + // summary: + // See dojo.data.api.Read.fetch + // + + args = args || {}; + var self = this; + var scope = args.scope || self; + var query = args.query; + if(typeof query == "object"){ // can be null, but that is ignore by for-in + query = dojo.delegate(query); // don't modify the original + for(var i in query){ + // find any strings and convert them to regular expressions for wildcard support + var required = query[i]; + if(typeof required == "string"){ + query[i] = RegExp("^" + dojo.regexp.escapeString(required, "*?").replace(/\*/g, '.*').replace(/\?/g, '.') + "$", args.queryOptions && args.queryOptions.ignoreCase ? "mi" : "m"); + query[i].toString = (function(original){ + return function(){ + return original; + } + })(required); + } + } + } + + var results = this.objectStore.query(query, args); + dojo.when(results.total, function(totalCount){ + dojo.when(results, function(results){ + if(args.onBegin){ + args.onBegin.call(scope, totalCount || results.length, args); + } + if(args.onItem){ + for(var i=0; i<results.length;i++){ + args.onItem.call(scope, results[i], args); + } + } + if(args.onComplete){ + args.onComplete.call(scope, args.onItem ? null : results, args); + } + return results; + }, errorHandler); + }, errorHandler); + function errorHandler(error){ + if(args.onError){ + args.onError.call(scope, error, args); + } + } + args.abort = function(){ + // abort the request + if(results.cancel){ + results.cancel(); + } + }; + args.store = this; + return args; + }, + getFeatures: function(){ + // summary: + // return the store feature set + + return { + "dojo.data.api.Read": !!this.objectStore.get, + "dojo.data.api.Identity": true, + "dojo.data.api.Write": !!this.objectStore.put, + "dojo.data.api.Notification": true + }; + }, + + getLabel: function(/* item */ item){ + // summary: + // See dojo.data.api.Read.getLabel() + if(this.isItem(item)){ + return this.getValue(item,this.labelProperty); //String + } + return undefined; //undefined + }, + + getLabelAttributes: function(/* item */ item){ + // summary: + // See dojo.data.api.Read.getLabelAttributes() + return [this.labelProperty]; //array + }, + + //Identity API Support + + + getIdentity: function(item){ + return item.getId ? item.getId() : item[this.objectStore.idProperty || "id"]; + }, + + getIdentityAttributes: function(item){ + // summary: + // returns the attributes which are used to make up the + // identity of an item. Basically returns this.objectStore.idProperty + + return [this.objectStore.idProperty]; + }, + + fetchItemByIdentity: function(args){ + // summary: + // fetch an item by its identity, by looking in our index of what we have loaded + var item; + dojo.when(this.objectStore.get(args.identity), + function(result){ + item = result; + args.onItem.call(args.scope, result); + }, + function(error){ + args.onError.call(args.scope, error); + } + ); + return item; + }, + + newItem: function(data, parentInfo){ + // summary: + // adds a new item to the store at the specified point. + // Takes two parameters, data, and options. + // + // data: /* object */ + // The data to be added in as an item. + if(parentInfo){ + // get the previous value or any empty array + var values = this.getValue(parentInfo.parent,parentInfo.attribute,[]); + // set the new value + values = values.concat([data]); + data.__parent = values; + this.setValue(parentInfo.parent, parentInfo.attribute, values); + } + this._dirtyObjects.push({object:data, save: true}); + this.onNew(data); + return data; + }, + deleteItem: function(item){ + // summary: + // deletes item and any references to that item from the store. + // + // item: + // item to delete + // + + // If the desire is to delete only one reference, unsetAttribute or + // setValue is the way to go. + this.changing(item, true); + + this.onDelete(item); + }, + setValue: function(item, attribute, value){ + // summary: + // sets 'attribute' on 'item' to 'value' + + var old = item[attribute]; + this.changing(item); + item[attribute]=value; + this.onSet(item,attribute,old,value); + }, + setValues: function(item, attribute, values){ + // summary: + // sets 'attribute' on 'item' to 'value' value + // must be an array. + + + if(!dojo.isArray(values)){ + throw new Error("setValues expects to be passed an Array object as its value"); + } + this.setValue(item,attribute,values); + }, + + unsetAttribute: function(item, attribute){ + // summary: + // unsets 'attribute' on 'item' + + this.changing(item); + var old = item[attribute]; + delete item[attribute]; + this.onSet(item,attribute,old,undefined); + }, + + _dirtyObjects: [], + + changing: function(object,_deleting){ + // summary: + // adds an object to the list of dirty objects. This object + // contains a reference to the object itself as well as a + // cloned and trimmed version of old object for use with + // revert. + object.__isDirty = true; + //if an object is already in the list of dirty objects, don't add it again + //or it will overwrite the premodification data set. + for(var i=0; i<this._dirtyObjects.length; i++){ + var dirty = this._dirtyObjects[i]; + if(object==dirty.object){ + if(_deleting){ + // we are deleting, no object is an indicator of deletiong + dirty.object = false; + if(!this._saveNotNeeded){ + dirty.save = true; + } + } + return; + } + } + var old = object instanceof Array ? [] : {}; + for(i in object){ + if(object.hasOwnProperty(i)){ + old[i] = object[i]; + } + } + this._dirtyObjects.push({object: !_deleting && object, old: old, save: !this._saveNotNeeded}); + }, + + save: function(kwArgs){ + // summary: + // Saves the dirty data using object store provider. See dojo.data.api.Write for API. + // + // kwArgs.global: + // This will cause the save to commit the dirty data for all + // ObjectStores as a single transaction. + // + // kwArgs.revertOnError + // This will cause the changes to be reverted if there is an + // error on the save. By default a revert is executed unless + // a value of false is provide for this parameter. + + kwArgs = kwArgs || {}; + var result, actions = []; + var alreadyRecorded = {}; + var savingObjects = []; + var self; + var dirtyObjects = this._dirtyObjects; + var left = dirtyObjects.length;// this is how many changes are remaining to be received from the server + try{ + dojo.connect(kwArgs,"onError",function(){ + if(kwArgs.revertOnError !== false){ + var postCommitDirtyObjects = dirtyObjects; + dirtyObjects = savingObjects; + var numDirty = 0; // make sure this does't do anything if it is called again + jr.revert(); // revert if there was an error + self._dirtyObjects = postCommitDirtyObjects; + } + else{ + self._dirtyObjects = dirtyObject.concat(savingObjects); + } + }); + if(this.objectStore.transaction){ + var transaction = this.objectStore.transaction(); + } + for(var i = 0; i < dirtyObjects.length; i++){ + var dirty = dirtyObjects[i]; + var object = dirty.object; + var old = dirty.old; + delete object.__isDirty; + if(object){ + result = this.objectStore.put(object, {overwrite: !!old}); + } + else{ + result = this.objectStore.remove(this.getIdentity(old)); + } + savingObjects.push(dirty); + dirtyObjects.splice(i--,1); + dojo.when(result, function(value){ + if(!(--left)){ + if(kwArgs.onComplete){ + kwArgs.onComplete.call(kwArgs.scope, actions); + } + } + },function(value){ + + // on an error we want to revert, first we want to separate any changes that were made since the commit + left = -1; // first make sure that success isn't called + kwArgs.onError.call(kwArgs.scope, value); + }); + + } + if(transaction){ + transaction.commit(); + } + }catch(e){ + kwArgs.onError.call(kwArgs.scope, value); + } + + + }, + + revert: function(kwArgs){ + // summary + // returns any modified data to its original state prior to a save(); + // + var dirtyObjects = this._dirtyObjects; + for(var i = dirtyObjects.length; i > 0;){ + i--; + var dirty = dirtyObjects[i]; + var object = dirty.object; + var old = dirty.old; + if(object && old){ + // changed + for(var j in old){ + if(old.hasOwnProperty(j) && object[j] !== old[j]){ + this.onSet(object, j, object[j], old[j]); + object[j] = old[j]; + } + } + for(j in object){ + if(!old.hasOwnProperty(j)){ + this.onSet(object, j, object[j]); + delete object[j]; + } + } + }else if(!old){ + // was an addition, remove it + this.onDelete(object); + }else{ + // was a deletion, we will add it back + this.onNew(old); + } + delete (object || old).__isDirty; + dirtyObjects.splice(i, 1); + } + + + }, + isDirty: function(item){ + // summary + // returns true if the item is marked as dirty or true if there are any dirty items + if(!item){ + return !!this._dirtyObjects.length; + } + return item.__isDirty; + }, + //Notifcation Support + + onSet: function(){}, + onNew: function(){}, + onDelete: function(){} + } +); + +} diff --git a/lib/dojo/data/api/Identity.js b/lib/dojo/data/api/Identity.js index 7a1caeb53..9d99f3d64 100644 --- a/lib/dojo/data/api/Identity.js +++ b/lib/dojo/data/api/Identity.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,6 +10,7 @@ dojo._hasResource["dojo.data.api.Identity"] = true; dojo.provide("dojo.data.api.Identity"); dojo.require("dojo.data.api.Read"); + dojo.declare("dojo.data.api.Identity", dojo.data.api.Read, { // summary: // This is an abstract API that data provider implementations conform to. @@ -17,7 +18,7 @@ dojo.declare("dojo.data.api.Identity", dojo.data.api.Read, { // methods unimplemented. getFeatures: function(){ - // summary: + // summary: // See dojo.data.api.Read.getFeatures() return { 'dojo.data.api.Read': true, @@ -45,16 +46,16 @@ dojo.declare("dojo.data.api.Identity", dojo.data.api.Read, { getIdentityAttributes: function(/* item */ item){ // summary: - // Returns an array of attribute names that are used to generate the identity. + // Returns an array of attribute names that are used to generate the identity. // For most stores, this is a single attribute, but for some complex stores // such as RDB backed stores that use compound (multi-attribute) identifiers // it can be more than one. If the identity is not composed of attributes // on the item, it will return null. This function is intended to identify // the attributes that comprise the identity so that so that during a render - // of all attributes, the UI can hide the the identity information if it + // of all attributes, the UI can hide the the identity information if it // chooses. // item: - // The item from the store from which to obtain the array of public attributes that + // The item from the store from which to obtain the array of public attributes that // compose the identifier, if any. // example: // | var itemId = store.getIdentity(kermit); @@ -67,14 +68,14 @@ dojo.declare("dojo.data.api.Identity", dojo.data.api.Read, { fetchItemByIdentity: function(/* object */ keywordArgs){ // summary: - // Given the identity of an item, this method returns the item that has - // that identity through the onItem callback. Conforming implementations - // should return null if there is no item with the given identity. - // Implementations of fetchItemByIdentity() may sometimes return an item - // from a local cache and may sometimes fetch an item from a remote server, + // Given the identity of an item, this method returns the item that has + // that identity through the onItem callback. Conforming implementations + // should return null if there is no item with the given identity. + // Implementations of fetchItemByIdentity() may sometimes return an item + // from a local cache and may sometimes fetch an item from a remote server, // // keywordArgs: - // An anonymous object that defines the item to locate and callbacks to invoke when the + // An anonymous object that defines the item to locate and callbacks to invoke when the // item has been located and load has completed. The format of the object is as follows: // { // identity: string|object, @@ -84,9 +85,9 @@ dojo.declare("dojo.data.api.Identity", dojo.data.api.Read, { // } // The *identity* parameter. // The identity parameter is the identity of the item you wish to locate and load - // This attribute is required. It should be a string or an object that toString() + // This attribute is required. It should be a string or an object that toString() // can be called on. - // + // // The *onItem* parameter. // Function(item) // The onItem parameter is the callback to invoke when the item has been loaded. It takes only one @@ -98,12 +99,12 @@ dojo.declare("dojo.data.api.Identity", dojo.data.api.Read, { // parameter, the error object // // The *scope* parameter. - // If a scope object is provided, all of the callback functions (onItem, + // If a scope object is provided, all of the callback functions (onItem, // onError, etc) will be invoked in the context of the scope object. // In the body of the callback function, the value of the "this" // keyword will be the scope object. If no scope object is provided, // the callback functions will be called in the context of dojo.global. - // For example, onItem.call(scope, item, request) vs. + // For example, onItem.call(scope, item, request) vs. // onItem.call(dojo.global, item, request) if(!this.isItemLoaded(keywordArgs.item)){ throw new Error('Unimplemented API: dojo.data.api.Identity.fetchItemByIdentity'); diff --git a/lib/dojo/data/api/Notification.js b/lib/dojo/data/api/Notification.js index b1abad797..33daa3010 100644 --- a/lib/dojo/data/api/Notification.js +++ b/lib/dojo/data/api/Notification.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,6 +10,7 @@ dojo._hasResource["dojo.data.api.Notification"] = true; dojo.provide("dojo.data.api.Notification"); dojo.require("dojo.data.api.Read"); + dojo.declare("dojo.data.api.Notification", dojo.data.api.Read, { // summary: // This is an abstract API that data provider implementations conform to. @@ -18,12 +19,12 @@ dojo.declare("dojo.data.api.Notification", dojo.data.api.Read, { // // description: // This API defines a set of APIs that all datastores that conform to the - // Notifications API must implement. In general, most stores will implement + // Notifications API must implement. In general, most stores will implement // these APIs as no-op functions for users who wish to monitor them to be able - // to connect to then via dojo.connect(). For non-users of dojo.connect, + // to connect to then via dojo.connect(). For non-users of dojo.connect, // they should be able to just replace the function on the store to obtain // notifications. Both read-only and read-write stores may implement - // this feature. In the case of a read-only store, this feature makes sense if + // this feature. In the case of a read-only store, this feature makes sense if // the store itself does internal polling to a back-end server and periodically updates // its cache of items (deletes, adds, and updates). // @@ -36,7 +37,7 @@ dojo.declare("dojo.data.api.Notification", dojo.data.api.Read, { // | dojo.connect(store, "onSet", onSet); getFeatures: function(){ - // summary: + // summary: // See dojo.data.api.Read.getFeatures() return { 'dojo.data.api.Read': true, @@ -44,16 +45,16 @@ dojo.declare("dojo.data.api.Notification", dojo.data.api.Read, { }; }, - onSet: function(/* item */ item, - /* attribute-name-string */ attribute, + onSet: function(/* item */ item, + /* attribute-name-string */ attribute, /* object | array */ oldValue, /* object | array */ newValue){ // summary: - // This function is called any time an item is modified via setValue, setValues, unsetAttribute, etc. + // This function is called any time an item is modified via setValue, setValues, unsetAttribute, etc. // description: - // This function is called any time an item is modified via setValue, setValues, unsetAttribute, etc. - // Its purpose is to provide a hook point for those who wish to monitor actions on items in the store - // in a simple manner. The general expected usage is to dojo.connect() to the store's + // This function is called any time an item is modified via setValue, setValues, unsetAttribute, etc. + // Its purpose is to provide a hook point for those who wish to monitor actions on items in the store + // in a simple manner. The general expected usage is to dojo.connect() to the store's // implementation and be called after the store function is called. // // item: @@ -62,11 +63,11 @@ dojo.declare("dojo.data.api.Notification", dojo.data.api.Read, { // The attribute being changed represented as a string name. // oldValue: // The old value of the attribute. In the case of single value calls, such as setValue, unsetAttribute, etc, - // this value will be generally be an atomic value of some sort (string, int, etc, object). In the case of + // this value will be generally be an atomic value of some sort (string, int, etc, object). In the case of // multi-valued attributes, it will be an array. // newValue: - // The new value of the attribute. In the case of single value calls, such as setValue, this value will be - // generally be an atomic value of some sort (string, int, etc, object). In the case of multi-valued attributes, + // The new value of the attribute. In the case of single value calls, such as setValue, this value will be + // generally be an atomic value of some sort (string, int, etc, object). In the case of multi-valued attributes, // it will be an array. In the case of unsetAttribute, the new value will be 'undefined'. // // returns: @@ -93,12 +94,12 @@ dojo.declare("dojo.data.api.Notification", dojo.data.api.Read, { // { // item: someItem, //The parent item // attribute: "attribute-name-string", //The attribute the new item was assigned to. - // oldValue: something //Whatever was the previous value for the attribute. + // oldValue: something //Whatever was the previous value for the attribute. // //If it is a single-value attribute only, then this value will be a single value. // //If it was a multi-valued attribute, then this will be an array of all the values minues the new one. // newValue: something //The new value of the attribute. In the case of single value calls, such as setValue, this value will be // //generally be an atomic value of some sort (string, int, etc, object). In the case of multi-valued attributes, - // //it will be an array. + // //it will be an array. // } // // returns: diff --git a/lib/dojo/data/api/Read.js b/lib/dojo/data/api/Read.js index 0a84aa5f9..ff8518cd4 100644 --- a/lib/dojo/data/api/Read.js +++ b/lib/dojo/data/api/Read.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,26 +10,27 @@ dojo._hasResource["dojo.data.api.Read"] = true; dojo.provide("dojo.data.api.Read"); dojo.require("dojo.data.api.Request"); + dojo.declare("dojo.data.api.Read", null, { // summary: - // This is an abstract API that data provider implementations conform to. + // This is an abstract API that data provider implementations conform to. // This file defines methods signatures and intentionally leaves all the - // methods unimplemented. For more information on the dojo.data APIs, + // methods unimplemented. For more information on the dojo.data APIs, // please visit: http://www.dojotoolkit.org/node/98 - getValue: function( /* item */ item, - /* attribute-name-string */ attribute, + getValue: function( /* item */ item, + /* attribute-name-string */ attribute, /* value? */ defaultValue){ // summary: // Returns a single attribute value. // Returns defaultValue if and only if *item* does not have a value for *attribute*. // Returns null if and only if null was explicitly set as the attribute value. // Returns undefined if and only if the item does not have a value for the - // given attribute (which is the same as saying the item does not have the attribute). + // given attribute (which is the same as saying the item does not have the attribute). // description: // Saying that an "item x does not have a value for an attribute y" - // is identical to saying that an "item x does not have attribute y". - // It is an oxymoron to say "that attribute is present but has no values" + // is identical to saying that an "item x does not have attribute y". + // It is an oxymoron to say "that attribute is present but has no values" // or "the item has that attribute but does not have any attribute values". // If store.hasAttribute(item, attribute) returns false, then // store.getValue(item, attribute) will return undefined. @@ -112,7 +113,7 @@ dojo.declare("dojo.data.api.Read", null, { }, containsValue: function(/* item */ item, - /* attribute-name-string */ attribute, + /* attribute-name-string */ attribute, /* anything */ value){ // summary: // Returns true if the given *value* is one of the values that getValues() @@ -135,8 +136,8 @@ dojo.declare("dojo.data.api.Read", null, { isItem: function(/* anything */ something){ // summary: - // Returns true if *something* is an item and came from the store instance. - // Returns false if *something* is a literal, an item from another store instance, + // Returns true if *something* is an item and came from the store instance. + // Returns false if *something* is a literal, an item from another store instance, // or is any object other than an item. // // something: @@ -173,9 +174,9 @@ dojo.declare("dojo.data.api.Read", null, { // isItemLoaded() returns true before loadItem() is even called, // then loadItem() need not do any work at all and will not even invoke // the callback handlers. So, before invoking this method, check that - // the item has not already been loaded. + // the item has not already been loaded. // keywordArgs: - // An anonymous object that defines the item to load and callbacks to invoke when the + // An anonymous object that defines the item to load and callbacks to invoke when the // load has completed. The format of the object is as follows: // { // item: object, @@ -198,12 +199,12 @@ dojo.declare("dojo.data.api.Read", null, { // parameter, the error object // // The *scope* parameter. - // If a scope object is provided, all of the callback functions (onItem, + // If a scope object is provided, all of the callback functions (onItem, // onError, etc) will be invoked in the context of the scope object. // In the body of the callback function, the value of the "this" // keyword will be the scope object. If no scope object is provided, // the callback functions will be called in the context of dojo.global(). - // For example, onItem.call(scope, item, request) vs. + // For example, onItem.call(scope, item, request) vs. // onItem.call(dojo.global(), item, request) if(!this.isItemLoaded(keywordArgs.item)){ throw new Error('Unimplemented API: dojo.data.api.Read.loadItem'); @@ -214,25 +215,25 @@ dojo.declare("dojo.data.api.Read", null, { // summary: // Given a query and set of defined options, such as a start and count of items to return, // this method executes the query and makes the results available as data items. - // The format and expectations of stores is that they operate in a generally asynchronous + // The format and expectations of stores is that they operate in a generally asynchronous // manner, therefore callbacks are always used to return items located by the fetch parameters. // // description: // A Request object will always be returned and is returned immediately. - // The basic request is nothing more than the keyword args passed to fetch and - // an additional function attached, abort(). The returned request object may then be used - // to cancel a fetch. All data items returns are passed through the callbacks defined in the + // The basic request is nothing more than the keyword args passed to fetch and + // an additional function attached, abort(). The returned request object may then be used + // to cancel a fetch. All data items returns are passed through the callbacks defined in the // fetch parameters and are not present on the 'request' object. // // This does not mean that custom stores can not add methods and properties to the request object - // returned, only that the API does not require it. For more info about the Request API, + // returned, only that the API does not require it. For more info about the Request API, // see dojo.data.api.Request // // keywordArgs: - // The keywordArgs parameter may either be an instance of + // The keywordArgs parameter may either be an instance of // conforming to dojo.data.api.Request or may be a simple anonymous object // that may contain any of the following: - // { + // { // query: query-object or query-string, // queryOptions: object, // onBegin: Function, @@ -245,10 +246,10 @@ dojo.declare("dojo.data.api.Read", null, { // sort: array // } // All implementations should accept keywordArgs objects with any of - // the 9 standard properties: query, onBegin, onItem, onComplete, onError - // scope, sort, start, and count. Some implementations may accept additional - // properties in the keywordArgs object as valid parameters, such as - // {includeOutliers:true}. + // the 9 standard properties: query, onBegin, onItem, onComplete, onError + // scope, sort, start, and count. Some implementations may accept additional + // properties in the keywordArgs object as valid parameters, such as + // {includeOutliers:true}. // // The *query* parameter. // The query may be optional in some data store implementations. @@ -256,28 +257,28 @@ dojo.declare("dojo.data.api.Read", null, { // of the query itself -- each different data store implementation // may have its own notion of what a query should look like. // However, as of dojo 0.9, 1.0, and 1.1, all the provided datastores in dojo.data - // and dojox.data support an object structure query, where the object is a set of + // and dojox.data support an object structure query, where the object is a set of // name/value parameters such as { attrFoo: valueBar, attrFoo1: valueBar1}. Most of the - // dijit widgets, such as ComboBox assume this to be the case when working with a datastore - // when they dynamically update the query. Therefore, for maximum compatibility with dijit + // dijit widgets, such as ComboBox assume this to be the case when working with a datastore + // when they dynamically update the query. Therefore, for maximum compatibility with dijit // widgets the recommended query parameter is a key/value object. That does not mean that the - // the datastore may not take alternative query forms, such as a simple string, a Date, a number, - // or a mix of such. Ultimately, The dojo.data.api.Read API is agnostic about what the query - // format. - // Further note: In general for query objects that accept strings as attribute - // value matches, the store should also support basic filtering capability, such as * + // the datastore may not take alternative query forms, such as a simple string, a Date, a number, + // or a mix of such. Ultimately, The dojo.data.api.Read API is agnostic about what the query + // format. + // Further note: In general for query objects that accept strings as attribute + // value matches, the store should also support basic filtering capability, such as * // (match any character) and ? (match single character). An example query that is a query object - // would be like: { attrFoo: "value*"}. Which generally means match all items where they have + // would be like: { attrFoo: "value*"}. Which generally means match all items where they have // an attribute named attrFoo, with a value that starts with 'value'. // // The *queryOptions* parameter // The queryOptions parameter is an optional parameter used to specify optiosn that may modify // the query in some fashion, such as doing a case insensitive search, or doing a deep search - // where all items in a hierarchical representation of data are scanned instead of just the root + // where all items in a hierarchical representation of data are scanned instead of just the root // items. It currently defines two options that all datastores should attempt to honor if possible: // { // ignoreCase: boolean, //Whether or not the query should match case sensitively or not. Default behaviour is false. - // deep: boolean //Whether or not a fetch should do a deep search of items and all child + // deep: boolean //Whether or not a fetch should do a deep search of items and all child // //items instead of just root-level items in a datastore. Default is false. // } // @@ -287,14 +288,14 @@ dojo.declare("dojo.data.api.Read", null, { // will be called just once, before the first onItem callback is called. // The onBegin callback function will be passed two arguments, the // the total number of items identified and the Request object. If the total number is - // unknown, then size will be -1. Note that size is not necessarily the size of the - // collection of items returned from the query, as the request may have specified to return only a + // unknown, then size will be -1. Note that size is not necessarily the size of the + // collection of items returned from the query, as the request may have specified to return only a // subset of the total set of items through the use of the start and count parameters. // // The *onItem* parameter. // function(item, request); // If an onItem callback function is provided, the callback function - // will be called as each item in the result is received. The callback + // will be called as each item in the result is received. The callback // function will be passed two arguments: the item itself, and the // Request object. // @@ -304,12 +305,12 @@ dojo.declare("dojo.data.api.Read", null, { // If an onComplete callback function is provided, the callback function // will be called just once, after the last onItem callback is called. // Note that if the onItem callback is not present, then onComplete will be passed - // an array containing all items which matched the query and the request object. - // If the onItem callback is present, then onComplete is called as: + // an array containing all items which matched the query and the request object. + // If the onItem callback is present, then onComplete is called as: // onComplete(null, request). // // The *onError* parameter. - // function(errorData, request); + // function(errorData, request); // If an onError callback function is provided, the callback function // will be called if there is any sort of error while attempting to // execute the query. @@ -317,29 +318,29 @@ dojo.declare("dojo.data.api.Read", null, { // an Error object and the Request object. // // The *scope* parameter. - // If a scope object is provided, all of the callback functions (onItem, + // If a scope object is provided, all of the callback functions (onItem, // onComplete, onError, etc) will be invoked in the context of the scope // object. In the body of the callback function, the value of the "this" // keyword will be the scope object. If no scope object is provided, - // the callback functions will be called in the context of dojo.global(). - // For example, onItem.call(scope, item, request) vs. + // the callback functions will be called in the context of dojo.global(). + // For example, onItem.call(scope, item, request) vs. // onItem.call(dojo.global(), item, request) // // The *start* parameter. - // If a start parameter is specified, this is a indication to the datastore to + // If a start parameter is specified, this is a indication to the datastore to // only start returning items once the start number of items have been located and // skipped. When this parameter is paired withh 'count', the store should be able - // to page across queries with millions of hits by only returning subsets of the + // to page across queries with millions of hits by only returning subsets of the // hits for each query // // The *count* parameter. - // If a count parameter is specified, this is a indication to the datastore to - // only return up to that many items. This allows a fetch call that may have - // millions of item matches to be paired down to something reasonable. + // If a count parameter is specified, this is a indication to the datastore to + // only return up to that many items. This allows a fetch call that may have + // millions of item matches to be paired down to something reasonable. // // The *sort* parameter. - // If a sort parameter is specified, this is a indication to the datastore to - // sort the items in some manner before returning the items. The array is an array of + // If a sort parameter is specified, this is a indication to the datastore to + // sort the items in some manner before returning the items. The array is an array of // javascript objects that must conform to the following format to be applied to the // fetching of items: // { @@ -347,18 +348,18 @@ dojo.declare("dojo.data.api.Read", null, { // descending: true|false; // Optional. Default is false. // } // Note that when comparing attributes, if an item contains no value for the attribute - // (undefined), then it the default ascending sort logic should push it to the bottom + // (undefined), then it the default ascending sort logic should push it to the bottom // of the list. In the descending order case, it such items should appear at the top of the list. - // + // // returns: // The fetch() method will return a javascript object conforming to the API // defined in dojo.data.api.Request. In general, it will be the keywordArgs // object returned with the required functions in Request.js attached. // Its general purpose is to provide a convenient way for a caller to abort an - // ongoing fetch. - // + // ongoing fetch. + // // The Request object may also have additional properties when it is returned - // such as request.store property, which is a pointer to the datastore object that + // such as request.store property, which is a pointer to the datastore object that // fetch() is a method of. // // exceptions: @@ -373,7 +374,7 @@ dojo.declare("dojo.data.api.Read", null, { // | var request = store.fetch(onComplete: showEverything); // example: // Fetch only 10 books that match the query 'all books', starting at the fifth book found during the search. - // This demonstrates how paging can be done for specific queries. + // This demonstrates how paging can be done for specific queries. // | var request = store.fetch({query:"all books", start: 4, count: 10, onComplete: showBooks}); // example: // Fetch all items that match the query, calling 'callback' each time an item is located. @@ -412,21 +413,21 @@ dojo.declare("dojo.data.api.Read", null, { // and then when the user presses the "Next Page" button... // | fetchArgs.start += 20; // | store.fetch(fetchArgs); // get the next 20 items - var request = null; + var request = null; throw new Error('Unimplemented API: dojo.data.api.Read.fetch'); return request; // an object conforming to the dojo.data.api.Request API }, getFeatures: function(){ // summary: - // The getFeatures() method returns an simple keyword values object - // that specifies what interface features the datastore implements. - // A simple CsvStore may be read-only, and the only feature it + // The getFeatures() method returns an simple keyword values object + // that specifies what interface features the datastore implements. + // A simple CsvStore may be read-only, and the only feature it // implements will be the 'dojo.data.api.Read' interface, so the // getFeatures() method will return an object like this one: // {'dojo.data.api.Read': true}. // A more sophisticated datastore might implement a variety of - // interface features, like 'dojo.data.api.Read', 'dojo.data.api.Write', + // interface features, like 'dojo.data.api.Read', 'dojo.data.api.Write', // 'dojo.data.api.Identity', and 'dojo.data.api.Attribution'. return { 'dojo.data.api.Read': true @@ -435,14 +436,14 @@ dojo.declare("dojo.data.api.Read", null, { close: function(/*dojo.data.api.Request || keywordArgs || null */ request){ // summary: - // The close() method is intended for instructing the store to 'close' out + // The close() method is intended for instructing the store to 'close' out // any information associated with a particular request. // // description: - // The close() method is intended for instructing the store to 'close' out + // The close() method is intended for instructing the store to 'close' out // any information associated with a particular request. In general, this API - // expects to recieve as a parameter a request object returned from a fetch. - // It will then close out anything associated with that request, such as + // expects to recieve as a parameter a request object returned from a fetch. + // It will then close out anything associated with that request, such as // clearing any internal datastore caches and closing any 'open' connections. // For some store implementations, this call may be a no-op. // @@ -450,7 +451,7 @@ dojo.declare("dojo.data.api.Read", null, { // An instance of a request for the store to use to identify what to close out. // If no request is passed, then the store should clear all internal caches (if any) // and close out all 'open' connections. It does not render the store unusable from - // there on, it merely cleans out any current data and resets the store to initial + // there on, it merely cleans out any current data and resets the store to initial // state. // // example: @@ -463,7 +464,7 @@ dojo.declare("dojo.data.api.Read", null, { getLabel: function(/* item */ item){ // summary: // Method to inspect the item and return a user-readable 'label' for the item - // that provides a general/adequate description of what the item is. + // that provides a general/adequate description of what the item is. // // description: // Method to inspect the item and return a user-readable 'label' for the item @@ -471,17 +472,17 @@ dojo.declare("dojo.data.api.Read", null, { // most labels will be a specific attribute value or collection of the attribute // values that combine to label the item in some manner. For example for an item // that represents a person it may return the label as: "firstname lastlame" where - // the firstname and lastname are attributes on the item. If the store is unable + // the firstname and lastname are attributes on the item. If the store is unable // to determine an adequate human readable label, it should return undefined. Users that wish - // to customize how a store instance labels items should replace the getLabel() function on - // their instance of the store, or extend the store and replace the function in + // to customize how a store instance labels items should replace the getLabel() function on + // their instance of the store, or extend the store and replace the function in // the extension class. // // item: // The item to return the label for. // - // returns: - // A user-readable string representing the item or undefined if no user-readable label can + // returns: + // A user-readable string representing the item or undefined if no user-readable label can // be generated. throw new Error('Unimplemented API: dojo.data.api.Read.getLabel'); return undefined; @@ -489,21 +490,21 @@ dojo.declare("dojo.data.api.Read", null, { getLabelAttributes: function(/* item */ item){ // summary: - // Method to inspect the item and return an array of what attributes of the item were used + // Method to inspect the item and return an array of what attributes of the item were used // to generate its label, if any. // // description: - // Method to inspect the item and return an array of what attributes of the item were used + // Method to inspect the item and return an array of what attributes of the item were used // to generate its label, if any. This function is to assist UI developers in knowing what // attributes can be ignored out of the attributes an item has when displaying it, in cases - // where the UI is using the label as an overall identifer should they wish to hide + // where the UI is using the label as an overall identifer should they wish to hide // redundant information. // // item: // The item to return the list of label attributes for. // - // returns: - // An array of attribute names that were used to generate the label, or null if public attributes + // returns: + // An array of attribute names that were used to generate the label, or null if public attributes // were not used to generate the label. throw new Error('Unimplemented API: dojo.data.api.Read.getLabelAttributes'); return null; diff --git a/lib/dojo/data/api/Request.js b/lib/dojo/data/api/Request.js index d613c7b11..5c94cb5e0 100644 --- a/lib/dojo/data/api/Request.js +++ b/lib/dojo/data/api/Request.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,16 +9,17 @@ if(!dojo._hasResource["dojo.data.api.Request"]){ //_hasResource checks added by dojo._hasResource["dojo.data.api.Request"] = true; dojo.provide("dojo.data.api.Request"); + dojo.declare("dojo.data.api.Request", null, { // summary: // This class defines out the semantics of what a 'Request' object looks like // when returned from a fetch() method. In general, a request object is - // nothing more than the original keywordArgs from fetch with an abort function - // attached to it to allow users to abort a particular request if they so choose. + // nothing more than the original keywordArgs from fetch with an abort function + // attached to it to allow users to abort a particular request if they so choose. // No other functions are required on a general Request object return. That does not // inhibit other store implementations from adding extentions to it, of course. // - // This is an abstract API that data provider implementations conform to. + // This is an abstract API that data provider implementations conform to. // This file defines methods signatures and intentionally leaves all the // methods unimplemented. // @@ -26,10 +27,10 @@ dojo.declare("dojo.data.api.Request", null, { abort: function(){ // summary: - // This function is a hook point for stores to provide as a way for + // This function is a hook point for stores to provide as a way for // a fetch to be halted mid-processing. // description: - // This function is a hook point for stores to provide as a way for + // This function is a hook point for stores to provide as a way for // a fetch to be halted mid-processing. For more details on the fetch() api, // please see dojo.data.api.Read.fetch(). throw new Error('Unimplemented API: dojo.data.api.Request.abort'); diff --git a/lib/dojo/data/api/Write.js b/lib/dojo/data/api/Write.js index 3fd0b1af0..08779180b 100644 --- a/lib/dojo/data/api/Write.js +++ b/lib/dojo/data/api/Write.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,14 +10,15 @@ dojo._hasResource["dojo.data.api.Write"] = true; dojo.provide("dojo.data.api.Write"); dojo.require("dojo.data.api.Read"); + dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { // summary: - // This is an abstract API that data provider implementations conform to. + // This is an abstract API that data provider implementations conform to. // This file defines function signatures and intentionally leaves all the // functionss unimplemented. getFeatures: function(){ - // summary: + // summary: // See dojo.data.api.Read.getFeatures() return { 'dojo.data.api.Read': true, @@ -31,16 +32,16 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { // item based on the *keywordArgs* provided. In general, the attribute // names in the keywords become the attributes in the new item and as for // the attribute values in keywordArgs, they become the values of the attributes - // in the new item. In addition, for stores that support hierarchical item + // in the new item. In addition, for stores that support hierarchical item // creation, an optional second parameter is accepted that defines what item is the parent // of the new item and what attribute of that item should the new item be assigned to. // In general, this will assume that the attribute targetted is multi-valued and a new item - // is appended onto the list of values for that attribute. + // is appended onto the list of values for that attribute. // // keywordArgs: // A javascript object defining the initial content of the item as a set of JavaScript 'property name: value' pairs. // parentInfo: - // An optional javascript object defining what item is the parent of this item (in a hierarchical store. Not all stores do hierarchical items), + // An optional javascript object defining what item is the parent of this item (in a hierarchical store. Not all stores do hierarchical items), // and what attribute of that parent to assign the new item to. If this is present, and the attribute specified // is a multi-valued attribute, it will append this item into the array of values for that attribute. The structure // of the object is as follows: @@ -51,7 +52,7 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { // // exceptions: // Throws an exception if *keywordArgs* is a string or a number or - // anything other than a simple anonymous object. + // anything other than a simple anonymous object. // Throws an exception if the item in parentInfo is not an item from the store // or if the attribute isn't an attribute name string. // example: @@ -66,11 +67,11 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { // summary: // Deletes an item from the store. // - // item: + // item: // The item to delete. // // exceptions: - // Throws an exception if the argument *item* is not an item + // Throws an exception if the argument *item* is not an item // (if store.isItem(item) returns false). // example: // | var success = store.deleteItem(kermit); @@ -78,7 +79,7 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { return false; // boolean }, - setValue: function( /* item */ item, + setValue: function( /* item */ item, /* string */ attribute, /* almost anything */ value){ // summary: @@ -103,7 +104,7 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { }, setValues: function(/* item */ item, - /* string */ attribute, + /* string */ attribute, /* array */ values){ // summary: // Adds each value in the *values* array as a value of the given @@ -130,7 +131,7 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { return false; // boolean }, - unsetAttribute: function( /* item */ item, + unsetAttribute: function( /* item */ item, /* string */ attribute){ // summary: // Deletes all the values of an attribute on an item. @@ -154,9 +155,9 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { // summary: // Saves to the server all the changes that have been made locally. // The save operation may take some time and is generally performed - // in an asynchronous fashion. The outcome of the save action is + // in an asynchronous fashion. The outcome of the save action is // is passed into the set of supported callbacks for the save. - // + // // keywordArgs: // { // onComplete: function @@ -172,7 +173,7 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { // are generally passed to the onComplete. // // The *onError* parameter. - // function(errorData); + // function(errorData); // // If an onError callback function is provided, the callback function // will be called if there is any sort of error while attempting to @@ -184,12 +185,12 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { // onComplete, onError, etc) will be invoked in the context of the scope // object. In the body of the callback function, the value of the "this" // keyword will be the scope object. If no scope object is provided, - // the callback functions will be called in the context of dojo.global. - // For example, onComplete.call(scope) vs. + // the callback functions will be called in the context of dojo.global. + // For example, onComplete.call(scope) vs. // onComplete.call(dojo.global) // // returns: - // Nothing. Since the saves are generally asynchronous, there is + // Nothing. Since the saves are generally asynchronous, there is // no need to return anything. All results are passed via callbacks. // example: // | store.save({onComplete: onSave}); @@ -211,8 +212,8 @@ dojo.declare("dojo.data.api.Write", dojo.data.api.Read, { isDirty: function(/* item? */ item){ // summary: - // Given an item, isDirty() returns true if the item has been modified - // since the last save(). If isDirty() is called with no *item* argument, + // Given an item, isDirty() returns true if the item has been modified + // since the last save(). If isDirty() is called with no *item* argument, // then this function returns true if any item has been modified since // the last save(). // diff --git a/lib/dojo/data/util/filter.js b/lib/dojo/data/util/filter.js index d23e63ade..909cc49bc 100644 --- a/lib/dojo/data/util/filter.js +++ b/lib/dojo/data/util/filter.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,12 +9,14 @@ if(!dojo._hasResource["dojo.data.util.filter"]){ //_hasResource checks added by dojo._hasResource["dojo.data.util.filter"] = true; dojo.provide("dojo.data.util.filter"); +dojo.getObject("data.util.filter", true, dojo); + dojo.data.util.filter.patternToRegExp = function(/*String*/pattern, /*boolean?*/ ignoreCase){ - // summary: + // summary: // Helper function to convert a simple pattern to a regular expression for matching. // description: // Returns a regular expression object that conforms to the defined conversion rules. - // For example: + // For example: // ca* -> /^ca.*$/ // *ca* -> /^.*ca.*$/ // *c\*a* -> /^.*c\*a.*$/ @@ -26,7 +28,7 @@ dojo.data.util.filter.patternToRegExp = function(/*String*/pattern, /*boolean?*/ // * Means match anything, so ca* means match anything starting with ca // ? Means match single character. So, b?b will match to bob and bab, and so on. // \ is an escape character. So for example, \* means do not treat * as a match, but literal character *. - // To use a \ as a character in the string, it must be escaped. So in the pattern it should be + // To use a \ as a character in the string, it must be escaped. So in the pattern it should be // represented by \\ to be treated as an ordinary \ character instead of an escape. // // ignoreCase: diff --git a/lib/dojo/data/util/simpleFetch.js b/lib/dojo/data/util/simpleFetch.js index 0bfb19ec3..b3f859b48 100644 --- a/lib/dojo/data/util/simpleFetch.js +++ b/lib/dojo/data/util/simpleFetch.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,30 +10,32 @@ dojo._hasResource["dojo.data.util.simpleFetch"] = true; dojo.provide("dojo.data.util.simpleFetch"); dojo.require("dojo.data.util.sorter"); +dojo.getObject("data.util.simpleFetch", true, dojo); + dojo.data.util.simpleFetch.fetch = function(/* Object? */ request){ // summary: // The simpleFetch mixin is designed to serve as a set of function(s) that can - // be mixed into other datastore implementations to accelerate their development. - // The simpleFetch mixin should work well for any datastore that can respond to a _fetchItems() + // be mixed into other datastore implementations to accelerate their development. + // The simpleFetch mixin should work well for any datastore that can respond to a _fetchItems() // call by returning an array of all the found items that matched the query. The simpleFetch mixin // is not designed to work for datastores that respond to a fetch() call by incrementally // loading items, or sequentially loading partial batches of the result - // set. For datastores that mixin simpleFetch, simpleFetch + // set. For datastores that mixin simpleFetch, simpleFetch // implements a fetch method that automatically handles eight of the fetch() // arguments -- onBegin, onItem, onComplete, onError, start, count, sort and scope // The class mixing in simpleFetch should not implement fetch(), - // but should instead implement a _fetchItems() method. The _fetchItems() - // method takes three arguments, the keywordArgs object that was passed + // but should instead implement a _fetchItems() method. The _fetchItems() + // method takes three arguments, the keywordArgs object that was passed // to fetch(), a callback function to be called when the result array is // available, and an error callback to be called if something goes wrong. // The _fetchItems() method should ignore any keywordArgs parameters for - // start, count, onBegin, onItem, onComplete, onError, sort, and scope. + // start, count, onBegin, onItem, onComplete, onError, sort, and scope. // The _fetchItems() method needs to correctly handle any other keywordArgs - // parameters, including the query parameter and any optional parameters - // (such as includeChildren). The _fetchItems() method should create an array of - // result items and pass it to the fetchHandler along with the original request object - // -- or, the _fetchItems() method may, if it wants to, create an new request object - // with other specifics about the request that are specific to the datastore and pass + // parameters, including the query parameter and any optional parameters + // (such as includeChildren). The _fetchItems() method should create an array of + // result items and pass it to the fetchHandler along with the original request object + // -- or, the _fetchItems() method may, if it wants to, create an new request object + // with other specifics about the request that are specific to the datastore and pass // that as the request object to the handler. // // For more information on this specific function, see dojo.data.api.Read.fetch() diff --git a/lib/dojo/data/util/sorter.js b/lib/dojo/data/util/sorter.js index c0261c848..539d3ca02 100644 --- a/lib/dojo/data/util/sorter.js +++ b/lib/dojo/data/util/sorter.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,11 +9,13 @@ if(!dojo._hasResource["dojo.data.util.sorter"]){ //_hasResource checks added by dojo._hasResource["dojo.data.util.sorter"] = true; dojo.provide("dojo.data.util.sorter"); -dojo.data.util.sorter.basicComparator = function( /*anything*/ a, +dojo.getObject("data.util.sorter", true, dojo); + +dojo.data.util.sorter.basicComparator = function( /*anything*/ a, /*anything*/ b){ - // summary: + // summary: // Basic comparision function that compares if an item is greater or less than another item - // description: + // description: // returns 1 if a > b, -1 if a < b, 0 if equal. // 'null' values (null, undefined) are treated as larger values so that they're pushed to the end of the list. // And compared to each other, null is equivalent to undefined. @@ -30,18 +32,18 @@ dojo.data.util.sorter.basicComparator = function( /*anything*/ a, b = undefined; } if(a == b){ - r = 0; + r = 0; }else if(a > b || a == null){ - r = 1; + r = 1; } return r; //int {-1,0,1} }; dojo.data.util.sorter.createSortFunction = function( /* attributes array */sortSpec, /*dojo.data.core.Read*/ store){ - // summary: + // summary: // Helper function to generate the sorting function based off the list of sort attributes. - // description: + // description: // The sort function creation will look for a property on the store called 'comparatorMap'. If it exists // it will look in the mapping for comparisons function for the attributes. If one is found, it will // use it instead of the basic comparator, which is typically used for strings, ints, booleans, and dates. @@ -83,7 +85,7 @@ dojo.data.util.sorter.createSortFunction = function( /* attributes array */sortS } comp = map[attr] || bc; } - sortFunctions.push(createSortFunction(attr, + sortFunctions.push(createSortFunction(attr, dir, comp, store)); } } @@ -95,7 +97,7 @@ dojo.data.util.sorter.createSortFunction = function( /* attributes array */sortS return ret;//int } } - return 0; //int + return 0; //int }; // Function }; diff --git a/lib/dojo/date.js b/lib/dojo/date.js index d4fe218d3..e961b5a86 100644 --- a/lib/dojo/date.js +++ b/lib/dojo/date.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.date"]){ //_hasResource checks added by build. Do no dojo._hasResource["dojo.date"] = true; dojo.provide("dojo.date"); +dojo.getObject("date", true, dojo); + /*===== dojo.date = { // summary: Date manipulation utilities @@ -22,7 +24,7 @@ dojo.date.getDaysInMonth = function(/*Date*/dateObject){ var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; if(month == 1 && dojo.date.isLeapYear(dateObject)){ return 29; } // Number return days[month]; // Number -} +}; dojo.date.isLeapYear = function(/*Date*/dateObject){ // summary: @@ -36,7 +38,7 @@ dojo.date.isLeapYear = function(/*Date*/dateObject){ var year = dateObject.getFullYear(); return !(year%400) || (!(year%4) && !!(year%100)); // Boolean -} +}; // FIXME: This is not localized dojo.date.getTimezoneName = function(/*Date*/dateObject){ @@ -61,7 +63,7 @@ dojo.date.getTimezoneName = function(/*Date*/dateObject){ }else{ // If at first you don't succeed ... // If IE knows about the TZ, it appears before the year - // Capital letters or slash before a 4-digit year + // Capital letters or slash before a 4-digit year // at the end of string var pat = /([A-Z\/]+) \d{4}$/; if((match = str.match(pat))){ @@ -70,7 +72,7 @@ dojo.date.getTimezoneName = function(/*Date*/dateObject){ // Some browsers (e.g. Safari) glue the TZ on the end // of toLocaleString instead of putting it in toString str = dateObject.toLocaleString(); - // Capital letters or slash -- end of string, + // Capital letters or slash -- end of string, // after space pat = / ([A-Z\/]+)$/; if((match = str.match(pat))){ @@ -81,7 +83,7 @@ dojo.date.getTimezoneName = function(/*Date*/dateObject){ // Make sure it doesn't somehow end up return AM or PM return (tz == 'AM' || tz == 'PM') ? '' : tz; // String -} +}; // Utility methods to do arithmetic calculations with Dates diff --git a/lib/dojo/date/locale.js b/lib/dojo/date/locale.js index c66da2331..9b6b4fa62 100644 --- a/lib/dojo/date/locale.js +++ b/lib/dojo/date/locale.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,18 +8,20 @@ if(!dojo._hasResource["dojo.date.locale"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.date.locale"] = true; dojo.provide("dojo.date.locale"); - -// Localization methods for Date. Honor local customs using locale-dependent dojo.cldr data. - dojo.require("dojo.date"); dojo.require("dojo.cldr.supplemental"); dojo.require("dojo.regexp"); dojo.require("dojo.string"); dojo.require("dojo.i18n"); +dojo.requireLocalization("dojo.cldr", "gregorian", null, "ROOT,ar,ca,cs,da,de,el,en,en-au,en-ca,en-gb,es,fi,fr,fr-ch,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-hant,zh-hk,zh-tw"); + +dojo.getObject("date.locale", true, dojo); + +// Localization methods for Date. Honor local customs using locale-dependent dojo.cldr data. + // Load the bundles containing localization information for // names and formats -dojo.requireLocalization("dojo.cldr", "gregorian", null, "ROOT,ar,ca,cs,da,de,el,en,en-au,en-ca,en-gb,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh,zh-tw"); //NOTE: Everything in this module assumes Gregorian calendars. // Other calendars will be implemented in separate modules. @@ -91,7 +93,7 @@ dojo.requireLocalization("dojo.cldr", "gregorian", null, "ROOT,ar,ca,cs,da,de,el break; case 'a': var timePeriod = (dateObject.getHours() < 12) ? 'am' : 'pm'; - s = bundle['dayPeriods-format-wide-' + timePeriod]; + s = options[timePeriod] || bundle['dayPeriods-format-wide-' + timePeriod]; break; case 'h': case 'H': @@ -292,20 +294,23 @@ dojo.date.locale.parse = function(/*String*/value, /*dojo.date.locale.__FormatOp // formatting lengths may be chosen, with "full" used by default. // Custom patterns may be used or registered with translations using // the dojo.date.locale.addCustomFormats method. - // + // // Formatting patterns are implemented using [the syntax described at // unicode.org](http://www.unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns) - // When two digit years are used, a century is chosen according to a sliding + // When two digit years are used, a century is chosen according to a sliding // window of 80 years before and 20 years after present year, for both `yy` and `yyyy` patterns. // year < 100CE requires strict mode. // // value: // A string representation of a date - var info = dojo.date.locale._parseInfo(options), + // remove non-printing bidi control chars from input and pattern + var controlChars = /[\u200E\u200F\u202A\u202E]/g, + info = dojo.date.locale._parseInfo(options), tokens = info.tokens, bundle = info.bundle, - re = new RegExp("^" + info.regexp + "$", info.strict ? "" : "i"), - match = re.exec(value); + re = new RegExp("^" + info.regexp.replace(controlChars, "") + "$", + info.strict ? "" : "i"), + match = re.exec(value && value.replace(controlChars, "")); if(!match){ return null; } // null @@ -444,7 +449,7 @@ dojo.date.locale.parse = function(/*String*/value, /*dojo.date.locale.__FormatOp result[3] = 0; //12am -> 0 } - //TODO: implement a getWeekday() method in order to test + //TODO: implement a getWeekday() method in order to test //validity of input strings containing 'EEE' or 'EEEE'... var dateObject = new Date(result[0], result[1], result[2], result[3], result[4], result[5], result[6]); // Date @@ -484,7 +489,7 @@ function _processPattern(pattern, applyPattern, applyLiteral, applyAll){ applyLiteral = applyLiteral || identity; applyAll = applyAll || identity; - //split on single quotes (which escape literals in date format strings) + //split on single quotes (which escape literals in date format strings) //but preserve escaped single quotes (e.g., o''clock) var chunks = pattern.match(/(''|[^'])+/g), literal = pattern.charAt(0) == "'"; @@ -520,31 +525,31 @@ function _buildDateTimeRE(tokens, bundle, options, pattern){ s = '\\d{2,4}'; break; case 'M': - s = (l>2) ? '\\S+?' : p2+'[1-9]|1[0-2]'; + s = (l>2) ? '\\S+?' : '1[0-2]|'+p2+'[1-9]'; break; case 'D': - s = p2+'[1-9]|'+p3+'[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6]'; + s = '[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|'+p3+'[1-9][0-9]|'+p2+'[1-9]'; break; case 'd': s = '3[01]|[12]\\d|'+p2+'[1-9]'; break; case 'w': - s = p2+'[1-9]|[1-4][0-9]|5[0-3]'; + s = '[1-4][0-9]|5[0-3]|'+p2+'[1-9]'; break; case 'E': s = '\\S+'; break; case 'h': //hour (1-12) - s = p2+'[1-9]|1[0-2]'; + s = '1[0-2]|'+p2+'[1-9]'; break; case 'k': //hour (0-11) - s = p2+'\\d|1[01]'; + s = '1[01]|'+p2+'\\d'; break; case 'H': //hour (0-23) - s = p2+'\\d|1\\d|2[0-3]'; + s = '1\\d|2[0-3]|'+p2+'\\d'; break; case 'K': //hour (1-24) - s = p2+'[1-9]|1\\d|2[0-4]'; + s = '1\\d|2[0-4]|'+p2+'[1-9]'; break; case 'm': case 's': @@ -556,10 +561,8 @@ function _buildDateTimeRE(tokens, bundle, options, pattern){ case 'a': var am = options.am || bundle['dayPeriods-format-wide-am'], pm = options.pm || bundle['dayPeriods-format-wide-pm']; - if(options.strict){ - s = am + '|' + pm; - }else{ - s = am + '|' + pm; + s = am + '|' + pm; + if(!options.strict){ if(am != am.toLowerCase()){ s += '|' + am.toLowerCase(); } if(pm != pm.toLowerCase()){ s += '|' + pm.toLowerCase(); } if(s.indexOf('.') != -1){ s += '|' + s.replace(/\./g, ""); } diff --git a/lib/dojo/date/stamp.js b/lib/dojo/date/stamp.js index 968bc40fd..04b68a06a 100644 --- a/lib/dojo/date/stamp.js +++ b/lib/dojo/date/stamp.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.date.stamp"]){ //_hasResource checks added by build. dojo._hasResource["dojo.date.stamp"] = true; dojo.provide("dojo.date.stamp"); +dojo.getObject("date.stamp", true, dojo); + // Methods to convert dates to or from a wire (string) format using well-known conventions dojo.date.stamp.fromISOString = function(/*String*/formattedString, /*Number?*/defaultTime){ @@ -87,7 +89,7 @@ dojo.date.stamp.fromISOString = function(/*String*/formattedString, /*Number?*/d } return result; // Date or null -} +}; /*===== dojo.date.stamp.__Options = function(){ @@ -137,12 +139,12 @@ dojo.date.stamp.toISOString = function(/*Date*/dateObject, /*dojo.date.stamp.__O }else if(options.selector != "time"){ var timezoneOffset = dateObject.getTimezoneOffset(); var absOffset = Math.abs(timezoneOffset); - time += (timezoneOffset > 0 ? "-" : "+") + + time += (timezoneOffset > 0 ? "-" : "+") + _(Math.floor(absOffset/60)) + ":" + _(absOffset%60); } formattedDate.push(time); } return formattedDate.join('T'); // String -} +}; } diff --git a/lib/dojo/dnd/Avatar.js b/lib/dojo/dnd/Avatar.js index effd253f3..8f43801b3 100644 --- a/lib/dojo/dnd/Avatar.js +++ b/lib/dojo/dnd/Avatar.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,9 +8,9 @@ if(!dojo._hasResource["dojo.dnd.Avatar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.Avatar"] = true; dojo.provide("dojo.dnd.Avatar"); - dojo.require("dojo.dnd.common"); + dojo.declare("dojo.dnd.Avatar", null, { // summary: // Object that represents transferred DnD items visually @@ -93,7 +93,7 @@ dojo.declare("dojo.dnd.Avatar", null, { var icon = dojo.byId("a11yIcon"); var text = '+'; // assume canDrop && copy if (this.manager.canDropFlag && !this.manager.copy) { - text = '< '; // canDrop && move + text = '< '; // canDrop && move }else if (!this.manager.canDropFlag && !this.manager.copy) { text = "o"; //!canDrop && move }else if(!this.manager.canDropFlag){ diff --git a/lib/dojo/dnd/Container.js b/lib/dojo/dnd/Container.js index 6efc6f6fb..58f34eb6b 100644 --- a/lib/dojo/dnd/Container.js +++ b/lib/dojo/dnd/Container.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,10 +8,10 @@ if(!dojo._hasResource["dojo.dnd.Container"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.Container"] = true; dojo.provide("dojo.dnd.Container"); - dojo.require("dojo.dnd.common"); dojo.require("dojo.parser"); + /* Container states: "" - normal state @@ -63,7 +63,7 @@ dojo.dnd.Item = function(){ dojo.declare("dojo.dnd.Container", null, { // summary: - // a Container object, which knows when mouse hovers over it, + // a Container object, which knows when mouse hovers over it, // and over which element it hovers // object attributes (for markup) @@ -140,7 +140,7 @@ dojo.declare("dojo.dnd.Container", null, { }, forInItems: function(/*Function*/ f, /*Object?*/ o){ // summary: - // iterates over a data map skipping members that + // iterates over a data map skipping members that // are present in the empty object (IE and/or 3rd-party libraries). o = o || dojo.global; var m = this.map, e = dojo.dnd._empty; @@ -327,8 +327,7 @@ dojo.declare("dojo.dnd.Container", null, { var prefix = "dojoDnd" + type; var state = type.toLowerCase() + "State"; //dojo.replaceClass(this.node, prefix + newState, prefix + this[state]); - dojo.removeClass(this.node, prefix + this[state]); - dojo.addClass(this.node, prefix + newState); + dojo.replaceClass(this.node, prefix + newState, prefix + this[state]); this[state] = newState; }, _addItemClass: function(node, type){ @@ -375,7 +374,7 @@ dojo.declare("dojo.dnd.Container", null, { dojo.dnd._createNode = function(tag){ // summary: - // returns a function, which creates an element of given tag + // returns a function, which creates an element of given tag // (SPAN by default) and sets its innerHTML to given text // tag: String // a tag name or empty for SPAN diff --git a/lib/dojo/dnd/Manager.js b/lib/dojo/dnd/Manager.js index 70754f93f..38611fbd4 100644 --- a/lib/dojo/dnd/Manager.js +++ b/lib/dojo/dnd/Manager.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,11 +8,11 @@ if(!dojo._hasResource["dojo.dnd.Manager"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.Manager"] = true; dojo.provide("dojo.dnd.Manager"); - dojo.require("dojo.dnd.common"); dojo.require("dojo.dnd.autoscroll"); dojo.require("dojo.dnd.Avatar"); + dojo.declare("dojo.dnd.Manager", null, { // summary: // the manager of DnD operations (usually a singleton) @@ -84,7 +84,7 @@ dojo.declare("dojo.dnd.Manager", null, { dojo.connect(dojo.body(), "onselectstart", dojo.stopEvent) ]; var c = "dojoDnd" + (copy ? "Copy" : "Move"); - dojo.addClass(dojo.body(), c); + dojo.addClass(dojo.body(), c); }, canDrop: function(flag){ // summary: @@ -98,8 +98,7 @@ dojo.declare("dojo.dnd.Manager", null, { stopDrag: function(){ // summary: // stop the DnD in progress - dojo.removeClass(dojo.body(), "dojoDndCopy"); - dojo.removeClass(dojo.body(), "dojoDndMove"); + dojo.removeClass(dojo.body(), ["dojoDndCopy", "dojoDndMove"]); dojo.forEach(this.events, dojo.disconnect); this.events = []; this.avatar.destroy(); @@ -132,7 +131,7 @@ dojo.declare("dojo.dnd.Manager", null, { s.left = (e.pageX + this.OFFSET_X) + "px"; s.top = (e.pageY + this.OFFSET_Y) + "px"; var copy = Boolean(this.source.copyState(dojo.isCopyKey(e))); - if(this.copy != copy){ + if(this.copy != copy){ this._setCopyStatus(copy); } } @@ -166,7 +165,7 @@ dojo.declare("dojo.dnd.Manager", null, { switch(e.keyCode){ case dojo.keys.CTRL: var copy = Boolean(this.source.copyState(true)); - if(this.copy != copy){ + if(this.copy != copy){ this._setCopyStatus(copy); } break; @@ -184,7 +183,7 @@ dojo.declare("dojo.dnd.Manager", null, { // keyboard event if(this.avatar && e.keyCode == dojo.keys.CTRL){ var copy = Boolean(this.source.copyState(false)); - if(this.copy != copy){ + if(this.copy != copy){ this._setCopyStatus(copy); } } @@ -199,8 +198,9 @@ dojo.declare("dojo.dnd.Manager", null, { this.copy = copy; this.source._markDndStatus(this.copy); this.updateAvatar(); - dojo.removeClass(dojo.body(), "dojoDnd" + (this.copy ? "Move" : "Copy")); - dojo.addClass(dojo.body(), "dojoDnd" + (this.copy ? "Copy" : "Move")); + dojo.replaceClass(dojo.body(), + "dojoDnd" + (this.copy ? "Copy" : "Move"), + "dojoDnd" + (this.copy ? "Move" : "Copy")); } }); diff --git a/lib/dojo/dnd/Moveable.js b/lib/dojo/dnd/Moveable.js index 324196582..705b8cf62 100644 --- a/lib/dojo/dnd/Moveable.js +++ b/lib/dojo/dnd/Moveable.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,9 +8,9 @@ if(!dojo._hasResource["dojo.dnd.Moveable"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.Moveable"] = true; dojo.provide("dojo.dnd.Moveable"); - dojo.require("dojo.dnd.Mover"); + /*===== dojo.declare("dojo.dnd.__MoveableArgs", [], { // handle: Node||String @@ -54,6 +54,7 @@ dojo.declare("dojo.dnd.Moveable", null, { this.mover = params.mover ? params.mover : dojo.dnd.Mover; this.events = [ dojo.connect(this.handle, "onmousedown", this, "onMouseDown"), + dojo.connect(this.handle, "ontouchstart", this, "onMouseDown"), // cancel text selection and text dragging dojo.connect(this.handle, "ondragstart", this, "onSelectStart"), dojo.connect(this.handle, "onselectstart", this, "onSelectStart") @@ -76,17 +77,20 @@ dojo.declare("dojo.dnd.Moveable", null, { // mouse event processors onMouseDown: function(e){ // summary: - // event processor for onmousedown, creates a Mover for the node + // event processor for onmousedown/ontouchstart, creates a Mover for the node // e: Event - // mouse event + // mouse/touch event if(this.skip && dojo.dnd.isFormElement(e)){ return; } if(this.delay){ this.events.push( dojo.connect(this.handle, "onmousemove", this, "onMouseMove"), - dojo.connect(this.handle, "onmouseup", this, "onMouseUp") + dojo.connect(this.handle, "ontouchmove", this, "onMouseMove"), + dojo.connect(this.handle, "onmouseup", this, "onMouseUp"), + dojo.connect(this.handle, "ontouchend", this, "onMouseUp") ); - this._lastX = e.pageX; - this._lastY = e.pageY; + var pos = e.touches ? e.touches[0] : e; + this._lastX = pos.pageX; + this._lastY = pos.pageY; }else{ this.onDragDetected(e); } @@ -94,10 +98,11 @@ dojo.declare("dojo.dnd.Moveable", null, { }, onMouseMove: function(e){ // summary: - // event processor for onmousemove, used only for delayed drags + // event processor for onmousemove/ontouchmove, used only for delayed drags // e: Event - // mouse event - if(Math.abs(e.pageX - this._lastX) > this.delay || Math.abs(e.pageY - this._lastY) > this.delay){ + // mouse/touch event + var pos = e.touches ? e.touches[0] : e; + if(Math.abs(pos.pageX - this._lastX) > this.delay || Math.abs(pos.pageY - this._lastY) > this.delay){ this.onMouseUp(e); this.onDragDetected(e); } @@ -134,8 +139,8 @@ dojo.declare("dojo.dnd.Moveable", null, { // summary: // called before every move operation dojo.publish("/dnd/move/start", [mover]); - dojo.addClass(dojo.body(), "dojoMove"); - dojo.addClass(this.node, "dojoMoveItem"); + dojo.addClass(dojo.body(), "dojoMove"); + dojo.addClass(this.node, "dojoMoveItem"); }, onMoveStop: function(/* dojo.dnd.Mover */ mover){ // summary: diff --git a/lib/dojo/dnd/Mover.js b/lib/dojo/dnd/Mover.js index cdb995c08..a8c161c80 100644 --- a/lib/dojo/dnd/Mover.js +++ b/lib/dojo/dnd/Mover.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,14 +8,14 @@ if(!dojo._hasResource["dojo.dnd.Mover"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.Mover"] = true; dojo.provide("dojo.dnd.Mover"); - dojo.require("dojo.dnd.common"); dojo.require("dojo.dnd.autoscroll"); + dojo.declare("dojo.dnd.Mover", null, { constructor: function(node, e, host){ // summary: - // an object, which makes a node follow the mouse. + // an object which makes a node follow the mouse, or touch-drag on touch devices. // Used as a default mover, and as a base class for custom movers. // node: Node // a node (or node's id) to be moved @@ -26,17 +26,27 @@ dojo.declare("dojo.dnd.Mover", null, { // object which implements the functionality of the move, // and defines proper events (onMoveStart and onMoveStop) this.node = dojo.byId(node); - this.marginBox = {l: e.pageX, t: e.pageY}; + var pos = e.touches ? e.touches[0] : e; + this.marginBox = {l: pos.pageX, t: pos.pageY}; this.mouseButton = e.button; - var h = this.host = host, d = node.ownerDocument, - firstEvent = dojo.connect(d, "onmousemove", this, "onFirstMove"); + var h = (this.host = host), d = node.ownerDocument; this.events = [ + // At the start of a drag, onFirstMove is called, and then the following two + // connects are disconnected + dojo.connect(d, "onmousemove", this, "onFirstMove"), + dojo.connect(d, "ontouchmove", this, "onFirstMove"), + + // These are called continually during the drag dojo.connect(d, "onmousemove", this, "onMouseMove"), + dojo.connect(d, "ontouchmove", this, "onMouseMove"), + + // And these are called at the end of the drag dojo.connect(d, "onmouseup", this, "onMouseUp"), + dojo.connect(d, "ontouchend", this, "onMouseUp"), + // cancel text selection and text dragging dojo.connect(d, "ondragstart", dojo.stopEvent), - dojo.connect(d.body, "onselectstart", dojo.stopEvent), - firstEvent + dojo.connect(d.body, "onselectstart", dojo.stopEvent) ]; // notify that the move has started if(h && h.onMoveStart){ @@ -46,17 +56,18 @@ dojo.declare("dojo.dnd.Mover", null, { // mouse event processors onMouseMove: function(e){ // summary: - // event processor for onmousemove + // event processor for onmousemove/ontouchmove // e: Event - // mouse event + // mouse/touch event dojo.dnd.autoScroll(e); - var m = this.marginBox; - this.host.onMove(this, {l: m.l + e.pageX, t: m.t + e.pageY}, e); + var m = this.marginBox, + pos = e.touches ? e.touches[0] : e; + this.host.onMove(this, {l: m.l + pos.pageX, t: m.t + pos.pageY}, e); dojo.stopEvent(e); }, onMouseUp: function(e){ - if(dojo.isWebKit && dojo.isMac && this.mouseButton == 2 ? - e.button == 0 : this.mouseButton == e.button){ + if(dojo.isWebKit && dojo.isMac && this.mouseButton == 2 ? + e.button == 0 : this.mouseButton == e.button){ // TODO Should condition be met for touch devices, too? this.destroy(); } dojo.stopEvent(e); @@ -64,7 +75,7 @@ dojo.declare("dojo.dnd.Mover", null, { // utilities onFirstMove: function(e){ // summary: - // makes the node absolute; it is meant to be called only once. + // makes the node absolute; it is meant to be called only once. // relative and absolutely positioned nodes are assumed to use pixel units var s = this.node.style, l, t, h = this.host; switch(s.position){ @@ -84,7 +95,7 @@ dojo.declare("dojo.dnd.Mover", null, { // space into account - so we need to subtract the combined // padding and margin. We use getComputedStyle and // _getMarginBox/_getContentBox to avoid the extra lookup of - // the computed style. + // the computed style. var b = dojo.doc.body; var bs = dojo.getComputedStyle(b); var bm = dojo._getMarginBox(b, bs); @@ -98,7 +109,10 @@ dojo.declare("dojo.dnd.Mover", null, { if(h && h.onFirstMove){ h.onFirstMove(this, e); } - dojo.disconnect(this.events.pop()); + + // Disconnect onmousemove and ontouchmove events that call this function + dojo.disconnect(this.events.shift()); + dojo.disconnect(this.events.shift()); }, destroy: function(){ // summary: diff --git a/lib/dojo/dnd/Selector.js b/lib/dojo/dnd/Selector.js index 9f13b75a0..20569daae 100644 --- a/lib/dojo/dnd/Selector.js +++ b/lib/dojo/dnd/Selector.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,10 +8,10 @@ if(!dojo._hasResource["dojo.dnd.Selector"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.Selector"] = true; dojo.provide("dojo.dnd.Selector"); - dojo.require("dojo.dnd.common"); dojo.require("dojo.dnd.Container"); + /* Container item states: "" - an item is not selected diff --git a/lib/dojo/dnd/Source.js b/lib/dojo/dnd/Source.js index 8e5c55dbc..30a61becd 100644 --- a/lib/dojo/dnd/Source.js +++ b/lib/dojo/dnd/Source.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,10 +8,10 @@ if(!dojo._hasResource["dojo.dnd.Source"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.Source"] = true; dojo.provide("dojo.dnd.Source"); - dojo.require("dojo.dnd.Selector"); dojo.require("dojo.dnd.Manager"); + /* Container property: "Horizontal"- if this is the horizontal container @@ -89,11 +89,11 @@ dojo.declare("dojo.dnd.Source", dojo.dnd.Selector, { generateText: true, constructor: function(/*DOMNode|String*/node, /*dojo.dnd.__SourceArgs?*/params){ - // summary: + // summary: // a constructor of the Source // node: // node or node's id to build the source on - // params: + // params: // any property of this class may be configured via the params // object which is mixed-in to the `dojo.dnd.Source` instance dojo.mixin(this, dojo.mixin({}, params)); diff --git a/lib/dojo/dnd/TimedMoveable.js b/lib/dojo/dnd/TimedMoveable.js index 25a101e20..bd8e7d253 100644 --- a/lib/dojo/dnd/TimedMoveable.js +++ b/lib/dojo/dnd/TimedMoveable.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,9 +8,9 @@ if(!dojo._hasResource["dojo.dnd.TimedMoveable"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.TimedMoveable"] = true; dojo.provide("dojo.dnd.TimedMoveable"); - dojo.require("dojo.dnd.Moveable"); + /*===== dojo.declare("dojo.dnd.__TimedMoveableArgs", [dojo.dnd.__MoveableArgs], { // timeout: Number @@ -27,7 +27,7 @@ dojo.declare("dojo.dnd.__TimedMoveableArgs", [dojo.dnd.__MoveableArgs], { dojo.declare("dojo.dnd.TimedMoveable", dojo.dnd.Moveable, { // summary: // A specialized version of Moveable to support an FPS throttling. - // This class puts an upper restriction on FPS, which may reduce + // This class puts an upper restriction on FPS, which may reduce // the CPU load. The additional parameter "timeout" regulates // the delay before actually moving the moveable object. diff --git a/lib/dojo/dnd/autoscroll.js b/lib/dojo/dnd/autoscroll.js index 40daf66a1..d2c99cf30 100644 --- a/lib/dojo/dnd/autoscroll.js +++ b/lib/dojo/dnd/autoscroll.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,26 +8,11 @@ if(!dojo._hasResource["dojo.dnd.autoscroll"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.autoscroll"] = true; dojo.provide("dojo.dnd.autoscroll"); +dojo.require("dojo.window"); -dojo.dnd.getViewport = function(){ - // summary: - // Returns a viewport size (visible part of the window) - - // TODO: remove this when getViewport() moved to dojo core, see #7028 +dojo.getObject("dnd", true, dojo); - // FIXME: need more docs!! - var d = dojo.doc, dd = d.documentElement, w = window, b = dojo.body(); - if(dojo.isMozilla){ - return {w: dd.clientWidth, h: w.innerHeight}; // Object - }else if(!dojo.isOpera && w.innerWidth){ - return {w: w.innerWidth, h: w.innerHeight}; // Object - }else if (!dojo.isOpera && dd && dd.clientWidth){ - return {w: dd.clientWidth, h: dd.clientHeight}; // Object - }else if (b.clientWidth){ - return {w: b.clientWidth, h: b.clientHeight}; // Object - } - return null; // Object -}; +dojo.dnd.getViewport = dojo.window.getBox; dojo.dnd.V_TRIGGER_AUTOSCROLL = 32; dojo.dnd.H_TRIGGER_AUTOSCROLL = 32; @@ -43,7 +28,7 @@ dojo.dnd.autoScroll = function(e){ // onmousemove event // FIXME: needs more docs! - var v = dojo.dnd.getViewport(), dx = 0, dy = 0; + var v = dojo.window.getBox(), dx = 0, dy = 0; if(e.clientX < dojo.dnd.H_TRIGGER_AUTOSCROLL){ dx = -dojo.dnd.H_AUTOSCROLL_VALUE; }else if(e.clientX > v.w - dojo.dnd.H_TRIGGER_AUTOSCROLL){ @@ -74,14 +59,15 @@ dojo.dnd.autoScrollNodes = function(e){ if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){ var b = dojo._getContentBox(n, s), t = dojo.position(n, true); //console.log(b.l, b.t, t.x, t.y, n.scrollLeft, n.scrollTop); - var w = Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL, b.w / 2), + var w = Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL, b.w / 2), h = Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL, b.h / 2), rx = e.pageX - t.x, ry = e.pageY - t.y, dx = 0, dy = 0; if(dojo.isWebKit || dojo.isOpera){ - // FIXME: this code should not be here, it should be taken into account + // FIXME: this code should not be here, it should be taken into account // either by the event fixing code, or the dojo.position() // FIXME: this code doesn't work on Opera 9.5 Beta - rx += dojo.body().scrollLeft, ry += dojo.body().scrollTop; + rx += dojo.body().scrollLeft; + ry += dojo.body().scrollTop; } if(rx > 0 && rx < b.w){ if(rx < w){ diff --git a/lib/dojo/dnd/common.js b/lib/dojo/dnd/common.js index e49552919..f69aa5a5a 100644 --- a/lib/dojo/dnd/common.js +++ b/lib/dojo/dnd/common.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.dnd.common"]){ //_hasResource checks added by build. dojo._hasResource["dojo.dnd.common"] = true; dojo.provide("dojo.dnd.common"); +dojo.getObject("dnd", true, dojo); + dojo.dnd.getCopyKeyState = dojo.isCopyKey; dojo.dnd._uniqueId = 0; diff --git a/lib/dojo/dnd/move.js b/lib/dojo/dnd/move.js index f2abc1b41..6a737bd3a 100644 --- a/lib/dojo/dnd/move.js +++ b/lib/dojo/dnd/move.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,10 +8,10 @@ if(!dojo._hasResource["dojo.dnd.move"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.dnd.move"] = true; dojo.provide("dojo.dnd.move"); - dojo.require("dojo.dnd.Mover"); dojo.require("dojo.dnd.Moveable"); + /*===== dojo.declare("dojo.dnd.move.__constrainedMoveableArgs", [dojo.dnd.__MoveableArgs], { // constraints: Function @@ -55,7 +55,7 @@ dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, { c.r = c.l + c.w; c.b = c.t + c.h; if(this.within){ - var mb = dojo.marginBox(mover.node); + var mb = dojo._getMarginSize(mover.node); c.r -= mb.w; c.b -= mb.h; } @@ -65,8 +65,12 @@ dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, { // called during every move notification; // should actually move the node; can be overwritten. var c = this.constraintBox, s = mover.node.style; - s.left = (leftTop.l < c.l ? c.l : c.r < leftTop.l ? c.r : leftTop.l) + "px"; - s.top = (leftTop.t < c.t ? c.t : c.b < leftTop.t ? c.b : leftTop.t) + "px"; + this.onMoving(mover, leftTop); + leftTop.l = leftTop.l < c.l ? c.l : c.r < leftTop.l ? c.r : leftTop.l; + leftTop.t = leftTop.t < c.t ? c.t : c.b < leftTop.t ? c.b : leftTop.t; + s.left = leftTop.l + "px"; + s.top = leftTop.t + "px"; + this.onMoved(mover, leftTop); } }); @@ -128,8 +132,8 @@ dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constraine // an optional object with parameters var area = params && params.area; this.constraints = function(){ - var n = this.node.parentNode, - s = dojo.getComputedStyle(n), + var n = this.node.parentNode, + s = dojo.getComputedStyle(n), mb = dojo._getMarginBox(n, s); if(area == "margin"){ return mb; // Object @@ -151,100 +155,6 @@ dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constraine } }); -// WARNING: below are obsolete objects, instead of custom movers use custom moveables (above) - -dojo.dnd.move.constrainedMover = function(fun, within){ - // summary: - // returns a constrained version of dojo.dnd.Mover - // description: - // this function produces n object, which will put a constraint on - // the margin box of dragged object in absolute coordinates - // fun: Function - // called on drag, and returns a constraint box - // within: Boolean - // if true, constraints the whole dragged object withtin the rectangle, - // otherwise the constraint is applied to the left-top corner - - dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead"); - var mover = function(node, e, notifier){ - dojo.dnd.Mover.call(this, node, e, notifier); - }; - dojo.extend(mover, dojo.dnd.Mover.prototype); - dojo.extend(mover, { - onMouseMove: function(e){ - // summary: event processor for onmousemove - // e: Event: mouse event - dojo.dnd.autoScroll(e); - var m = this.marginBox, c = this.constraintBox, - l = m.l + e.pageX, t = m.t + e.pageY; - l = l < c.l ? c.l : c.r < l ? c.r : l; - t = t < c.t ? c.t : c.b < t ? c.b : t; - this.host.onMove(this, {l: l, t: t}); - }, - onFirstMove: function(){ - // summary: called once to initialize things; it is meant to be called only once - dojo.dnd.Mover.prototype.onFirstMove.call(this); - var c = this.constraintBox = fun.call(this); - c.r = c.l + c.w; - c.b = c.t + c.h; - if(within){ - var mb = dojo.marginBox(this.node); - c.r -= mb.w; - c.b -= mb.h; - } - } - }); - return mover; // Object -}; - -dojo.dnd.move.boxConstrainedMover = function(box, within){ - // summary: - // a specialization of dojo.dnd.constrainedMover, which constrains to the specified box - // box: Object - // a constraint box (l, t, w, h) - // within: Boolean - // if true, constraints the whole dragged object withtin the rectangle, - // otherwise the constraint is applied to the left-top corner - - dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead"); - return dojo.dnd.move.constrainedMover(function(){ return box; }, within); // Object -}; - -dojo.dnd.move.parentConstrainedMover = function(area, within){ - // summary: - // a specialization of dojo.dnd.constrainedMover, which constrains to the parent node - // area: String - // "margin" to constrain within the parent's margin box, "border" for the border box, - // "padding" for the padding box, and "content" for the content box; "content" is the default value. - // within: Boolean - // if true, constraints the whole dragged object within the rectangle, - // otherwise the constraint is applied to the left-top corner - - dojo.deprecated("dojo.dnd.move.parentConstrainedMover, use dojo.dnd.move.parentConstrainedMoveable instead"); - var fun = function(){ - var n = this.node.parentNode, - s = dojo.getComputedStyle(n), - mb = dojo._getMarginBox(n, s); - if(area == "margin"){ - return mb; // Object - } - var t = dojo._getMarginExtents(n, s); - mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; - if(area == "border"){ - return mb; // Object - } - t = dojo._getBorderExtents(n, s); - mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; - if(area == "padding"){ - return mb; // Object - } - t = dojo._getPadExtents(n, s); - mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; - return mb; // Object - }; - return dojo.dnd.move.constrainedMover(fun, within); // Object -}; - // patching functions one level up for compatibility dojo.dnd.constrainedMover = dojo.dnd.move.constrainedMover; diff --git a/lib/dojo/dojo.js b/lib/dojo/dojo.js index 665870c62..ef2f2fb77 100644 --- a/lib/dojo/dojo.js +++ b/lib/dojo/dojo.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -11,4 +11,4 @@ http://dojotoolkit.org */ -(function(){var _1=null;if((_1||(typeof djConfig!="undefined"&&djConfig.scopeMap))&&(typeof window!="undefined")){var _2="",_3="",_4="",_5={},_6={};_1=_1||djConfig.scopeMap;for(var i=0;i<_1.length;i++){var _7=_1[i];_2+="var "+_7[0]+" = {}; "+_7[1]+" = "+_7[0]+";"+_7[1]+"._scopeName = '"+_7[1]+"';";_3+=(i==0?"":",")+_7[0];_4+=(i==0?"":",")+_7[1];_5[_7[0]]=_7[1];_6[_7[1]]=_7[0];}eval(_2+"dojo._scopeArgs = ["+_4+"];");dojo._scopePrefixArgs=_3;dojo._scopePrefix="(function("+_3+"){";dojo._scopeSuffix="})("+_4+")";dojo._scopeMap=_5;dojo._scopeMapRev=_6;}(function(){if(typeof this["loadFirebugConsole"]=="function"){this["loadFirebugConsole"]();}else{this.console=this.console||{};var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var i=0,tn;while((tn=cn[i++])){if(!console[tn]){(function(){var _8=tn+"";console[_8]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(_8+":");console["log"](a.join(" "));}:function(){};console[_8]._fake=true;})();}}}if(typeof dojo=="undefined"){dojo={_scopeName:"dojo",_scopePrefix:"",_scopePrefixArgs:"",_scopeSuffix:"",_scopeMap:{},_scopeMapRev:{}};}var d=dojo;if(typeof dijit=="undefined"){dijit={_scopeName:"dijit"};}if(typeof dojox=="undefined"){dojox={_scopeName:"dojox"};}if(!d._scopeArgs){d._scopeArgs=[dojo,dijit,dojox];}d.global=this;d.config={isDebug:false,debugAtAllCosts:false};if(typeof djConfig!="undefined"){for(var _9 in djConfig){d.config[_9]=djConfig[_9];}}dojo.locale=d.config.locale;var _a="$Rev: 22487 $".match(/\d+/);dojo.version={major:1,minor:5,patch:0,flag:"",revision:_a?+_a[0]:NaN,toString:function(){with(d.version){return major+"."+minor+"."+patch+flag+" ("+revision+")";}}};if(typeof OpenAjax!="undefined"){OpenAjax.hub.registerLibrary(dojo._scopeName,"http://dojotoolkit.org",d.version.toString());}var _b,_c,_d={};for(var i in {toString:1}){_b=[];break;}dojo._extraNames=_b=_b||["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"];_c=_b.length;dojo._mixin=function(_e,_f){var _10,s,i;for(_10 in _f){s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&&(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}if(_c&&_f){for(i=0;i<_c;++i){_10=_b[i];s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&&(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}}return _e;};dojo.mixin=function(obj,_11){if(!obj){obj={};}for(var i=1,l=arguments.length;i<l;i++){d._mixin(obj,arguments[i]);}return obj;};dojo._getProp=function(_12,_13,_14){var obj=_14||d.global;for(var i=0,p;obj&&(p=_12[i]);i++){if(i==0&&d._scopeMap[p]){p=d._scopeMap[p];}obj=(p in obj?obj[p]:(_13?obj[p]={}:undefined));}return obj;};dojo.setObject=function(_15,_16,_17){var _18=_15.split("."),p=_18.pop(),obj=d._getProp(_18,true,_17);return obj&&p?(obj[p]=_16):undefined;};dojo.getObject=function(_19,_1a,_1b){return d._getProp(_19.split("."),_1a,_1b);};dojo.exists=function(_1c,obj){return !!d.getObject(_1c,false,obj);};dojo["eval"]=function(_1d){return d.global.eval?d.global.eval(_1d):eval(_1d);};d.deprecated=d.experimental=function(){};})();(function(){var d=dojo;d.mixin(d,{_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_1e){var mp=d._modulePrefixes;return !!(mp[_1e]&&mp[_1e].value);},_getModulePrefix:function(_1f){var mp=d._modulePrefixes;if(d._moduleHasPrefix(_1f)){return mp[_1f].value;}return _1f;},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false});dojo._loadPath=function(_20,_21,cb){var uri=((_20.charAt(0)=="/"||_20.match(/^\w+:/))?"":d.baseUrl)+_20;try{return !_21?d._loadUri(uri,cb):d._loadUriAndCheck(uri,_21,cb);}catch(e){console.error(e);return false;}};dojo._loadUri=function(uri,cb){if(d._loadedUrls[uri]){return true;}d._inFlightCount++;var _22=d._getText(uri,true);if(_22){d._loadedUrls[uri]=true;d._loadedUrls.push(uri);if(cb){_22="("+_22+")";}else{_22=d._scopePrefix+_22+d._scopeSuffix;}if(!d.isIE){_22+="\r\n//@ sourceURL="+uri;}var _23=d["eval"](_22);if(cb){cb(_23);}}if(--d._inFlightCount==0&&d._postLoad&&d._loaders.length){setTimeout(function(){if(d._inFlightCount==0){d._callLoaded();}},0);}return !!_22;};dojo._loadUriAndCheck=function(uri,_24,cb){var ok=false;try{ok=d._loadUri(uri,cb);}catch(e){console.error("failed loading "+uri+" with error: "+e);}return !!(ok&&d._loadedModules[_24]);};dojo.loaded=function(){d._loadNotifying=true;d._postLoad=true;var mll=d._loaders;d._loaders=[];for(var x=0;x<mll.length;x++){mll[x]();}d._loadNotifying=false;if(d._postLoad&&d._inFlightCount==0&&mll.length){d._callLoaded();}};dojo.unloaded=function(){var mll=d._unloaders;while(mll.length){(mll.pop())();}};d._onto=function(arr,obj,fn){if(!fn){arr.push(obj);}else{if(fn){var _25=(typeof fn=="string")?obj[fn]:fn;arr.push(function(){_25.call(obj);});}}};dojo.ready=dojo.addOnLoad=function(obj,_26){d._onto(d._loaders,obj,_26);if(d._postLoad&&d._inFlightCount==0&&!d._loadNotifying){d._callLoaded();}};var dca=d.config.addOnLoad;if(dca){d.addOnLoad[(dca instanceof Array?"apply":"call")](d,dca);}dojo._modulesLoaded=function(){if(d._postLoad){return;}if(d._inFlightCount>0){console.warn("files still in flight!");return;}d._callLoaded();};dojo._callLoaded=function(){if(typeof setTimeout=="object"||(d.config.useXDomain&&d.isOpera)){setTimeout(d.isAIR?function(){d.loaded();}:d._scopeName+".loaded();",0);}else{d.loaded();}};dojo._getModuleSymbols=function(_27){var _28=_27.split(".");for(var i=_28.length;i>0;i--){var _29=_28.slice(0,i).join(".");if(i==1&&!d._moduleHasPrefix(_29)){_28[0]="../"+_28[0];}else{var _2a=d._getModulePrefix(_29);if(_2a!=_29){_28.splice(0,i,_2a);break;}}}return _28;};dojo._global_omit_module_check=false;dojo.loadInit=function(_2b){_2b();};dojo._loadModule=dojo.require=function(_2c,_2d){_2d=d._global_omit_module_check||_2d;var _2e=d._loadedModules[_2c];if(_2e){return _2e;}var _2f=d._getModuleSymbols(_2c).join("/")+".js";var _30=!_2d?_2c:null;var ok=d._loadPath(_2f,_30);if(!ok&&!_2d){throw new Error("Could not load '"+_2c+"'; last tried '"+_2f+"'");}if(!_2d&&!d._isXDomain){_2e=d._loadedModules[_2c];if(!_2e){throw new Error("symbol '"+_2c+"' is not defined after loading '"+_2f+"'");}}return _2e;};dojo.provide=function(_31){_31=_31+"";return (d._loadedModules[_31]=d.getObject(_31,true));};dojo.platformRequire=function(_32){var _33=_32.common||[];var _34=_33.concat(_32[d._name]||_32["default"]||[]);for(var x=0;x<_34.length;x++){var _35=_34[x];if(_35.constructor==Array){d._loadModule.apply(d,_35);}else{d._loadModule(_35);}}};dojo.requireIf=function(_36,_37){if(_36===true){var _38=[];for(var i=1;i<arguments.length;i++){_38.push(arguments[i]);}d.require.apply(d,_38);}};dojo.requireAfterIf=d.requireIf;dojo.registerModulePath=function(_39,_3a){d._modulePrefixes[_39]={name:_39,value:_3a};};dojo.requireLocalization=function(_3b,_3c,_3d,_3e){d.require("dojo.i18n");d.i18n._requireLocalization.apply(d.hostenv,arguments);};var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");dojo._Url=function(){var n=null,_3f=arguments,uri=[_3f[0]];for(var i=1;i<_3f.length;i++){if(!_3f[i]){continue;}var _40=new d._Url(_3f[i]+""),_41=new d._Url(uri[0]+"");if(_40.path==""&&!_40.scheme&&!_40.authority&&!_40.query){if(_40.fragment!=n){_41.fragment=_40.fragment;}_40=_41;}else{if(!_40.scheme){_40.scheme=_41.scheme;if(!_40.authority){_40.authority=_41.authority;if(_40.path.charAt(0)!="/"){var _42=_41.path.substring(0,_41.path.lastIndexOf("/")+1)+_40.path;var _43=_42.split("/");for(var j=0;j<_43.length;j++){if(_43[j]=="."){if(j==_43.length-1){_43[j]="";}else{_43.splice(j,1);j--;}}else{if(j>0&&!(j==1&&_43[0]=="")&&_43[j]==".."&&_43[j-1]!=".."){if(j==(_43.length-1)){_43.splice(j,1);_43[j-1]="";}else{_43.splice(j-1,2);j-=2;}}}}_40.path=_43.join("/");}}}}uri=[];if(_40.scheme){uri.push(_40.scheme,":");}if(_40.authority){uri.push("//",_40.authority);}uri.push(_40.path);if(_40.query){uri.push("?",_40.query);}if(_40.fragment){uri.push("#",_40.fragment);}}this.uri=uri.join("");var r=this.uri.match(ore);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n;}};dojo._Url.prototype.toString=function(){return this.uri;};dojo.moduleUrl=function(_44,url){var loc=d._getModuleSymbols(_44).join("/");if(!loc){return null;}if(loc.lastIndexOf("/")!=loc.length-1){loc+="/";}var _45=loc.indexOf(":");if(loc.charAt(0)!="/"&&(_45==-1||_45>loc.indexOf("/"))){loc=d.baseUrl+loc;}return new d._Url(loc,url);};})();if(typeof window!="undefined"){dojo.isBrowser=true;dojo._name="browser";(function(){var d=dojo;if(document&&document.getElementsByTagName){var _46=document.getElementsByTagName("script");var _47=/dojo(\.xd)?\.js(\W|$)/i;for(var i=0;i<_46.length;i++){var src=_46[i].getAttribute("src");if(!src){continue;}var m=src.match(_47);if(m){if(!d.config.baseUrl){d.config.baseUrl=src.substring(0,m.index);}var cfg=_46[i].getAttribute("djConfig");if(cfg){var _48=eval("({ "+cfg+" })");for(var x in _48){dojo.config[x]=_48[x];}}break;}}}d.baseUrl=d.config.baseUrl;var n=navigator;var dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);if(dua.indexOf("Opera")>=0){d.isOpera=tv;}if(dua.indexOf("AdobeAIR")>=0){d.isAIR=1;}d.isKhtml=(dav.indexOf("Konqueror")>=0)?tv:0;d.isWebKit=parseFloat(dua.split("WebKit/")[1])||undefined;d.isChrome=parseFloat(dua.split("Chrome/")[1])||undefined;d.isMac=dav.indexOf("Macintosh")>=0;var _49=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_49&&!dojo.isChrome){d.isSafari=parseFloat(dav.split("Version/")[1]);if(!d.isSafari||parseFloat(dav.substr(_49+7))<=419.3){d.isSafari=2;}}if(dua.indexOf("Gecko")>=0&&!d.isKhtml&&!d.isWebKit){d.isMozilla=d.isMoz=tv;}if(d.isMoz){d.isFF=parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined;}if(document.all&&!d.isOpera){d.isIE=parseFloat(dav.split("MSIE ")[1])||undefined;var _4a=document.documentMode;if(_4a&&_4a!=5&&Math.floor(d.isIE)!=_4a){d.isIE=_4a;}}if(dojo.isIE&&window.location.protocol==="file:"){dojo.config.ieForceActiveXXhr=true;}d.isQuirks=document.compatMode=="BackCompat";d.locale=dojo.config.locale||(d.isIE?n.userLanguage:n.language).toLowerCase();d._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];d._xhrObj=function(){var _4b,_4c;if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){try{_4b=new XMLHttpRequest();}catch(e){}}if(!_4b){for(var i=0;i<3;++i){var _4d=d._XMLHTTP_PROGIDS[i];try{_4b=new ActiveXObject(_4d);}catch(e){_4c=e;}if(_4b){d._XMLHTTP_PROGIDS=[_4d];break;}}}if(!_4b){throw new Error("XMLHTTP not available: "+_4c);}return _4b;};d._isDocumentOk=function(_4e){var _4f=_4e.status||0,lp=location.protocol;return (_4f>=200&&_4f<300)||_4f==304||_4f==1223||(!_4f&&(lp=="file:"||lp=="chrome:"||lp=="chrome-extension:"||lp=="app:"));};var _50=window.location+"";var _51=document.getElementsByTagName("base");var _52=(_51&&_51.length>0);d._getText=function(uri,_53){var _54=d._xhrObj();if(!_52&&dojo._Url){uri=(new dojo._Url(_50,uri)).toString();}if(d.config.cacheBust){uri+="";uri+=(uri.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,"");}_54.open("GET",uri,false);try{_54.send(null);if(!d._isDocumentOk(_54)){var err=Error("Unable to load "+uri+" status:"+_54.status);err.status=_54.status;err.responseText=_54.responseText;throw err;}}catch(e){if(_53){return null;}throw e;}return _54.responseText;};var _55=window;var _56=function(_57,fp){var _58=_55.attachEvent||_55.addEventListener;_57=_55.attachEvent?_57:_57.substring(2);_58(_57,function(){fp.apply(_55,arguments);},false);};d._windowUnloaders=[];d.windowUnloaded=function(){var mll=d._windowUnloaders;while(mll.length){(mll.pop())();}d=null;};var _59=0;d.addOnWindowUnload=function(obj,_5a){d._onto(d._windowUnloaders,obj,_5a);if(!_59){_59=1;_56("onunload",d.windowUnloaded);}};var _5b=0;d.addOnUnload=function(obj,_5c){d._onto(d._unloaders,obj,_5c);if(!_5b){_5b=1;_56("onbeforeunload",dojo.unloaded);}};})();dojo._initFired=false;dojo._loadInit=function(e){if(dojo._scrollIntervalId){clearInterval(dojo._scrollIntervalId);dojo._scrollIntervalId=0;}if(!dojo._initFired){dojo._initFired=true;if(!dojo.config.afterOnLoad&&window.detachEvent){window.detachEvent("onload",dojo._loadInit);}if(dojo._inFlightCount==0){dojo._modulesLoaded();}}};if(!dojo.config.afterOnLoad){if(document.addEventListener){document.addEventListener("DOMContentLoaded",dojo._loadInit,false);window.addEventListener("load",dojo._loadInit,false);}else{if(window.attachEvent){window.attachEvent("onload",dojo._loadInit);if(!dojo.config.skipIeDomLoaded&&self===self.top){dojo._scrollIntervalId=setInterval(function(){try{if(document.body){document.documentElement.doScroll("left");dojo._loadInit();}}catch(e){}},30);}}}}if(dojo.isIE){try{(function(){document.namespaces.add("v","urn:schemas-microsoft-com:vml");var _5d=["*","group","roundrect","oval","shape","rect","imagedata","path","textpath","text"],i=0,l=1,s=document.createStyleSheet();if(dojo.isIE>=8){i=1;l=_5d.length;}for(;i<l;++i){s.addRule("v\\:"+_5d[i],"behavior:url(#default#VML); display:inline-block");}})();}catch(e){}}}(function(){var mp=dojo.config["modulePaths"];if(mp){for(var _5e in mp){dojo.registerModulePath(_5e,mp[_5e]);}}})();if(dojo.config.isDebug){dojo.require("dojo._firebug.firebug");}if(dojo.config.debugAtAllCosts){dojo.config.useXDomain=true;dojo.require("dojo._base._loader.loader_xd");dojo.require("dojo._base._loader.loader_debug");dojo.require("dojo.i18n");}if(!dojo._hasResource["dojo._base.lang"]){dojo._hasResource["dojo._base.lang"]=true;dojo.provide("dojo._base.lang");(function(){var d=dojo,_5f=Object.prototype.toString;dojo.isString=function(it){return (typeof it=="string"||it instanceof String);};dojo.isArray=function(it){return it&&(it instanceof Array||typeof it=="array");};dojo.isFunction=function(it){return _5f.call(it)==="[object Function]";};dojo.isObject=function(it){return it!==undefined&&(it===null||typeof it=="object"||d.isArray(it)||d.isFunction(it));};dojo.isArrayLike=function(it){return it&&it!==undefined&&!d.isString(it)&&!d.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(d.isArray(it)||isFinite(it.length));};dojo.isAlien=function(it){return it&&!d.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));};dojo.extend=function(_60,_61){for(var i=1,l=arguments.length;i<l;i++){d._mixin(_60.prototype,arguments[i]);}return _60;};dojo._hitchArgs=function(_62,_63){var pre=d._toArray(arguments,2);var _64=d.isString(_63);return function(){var _65=d._toArray(arguments);var f=_64?(_62||d.global)[_63]:_63;return f&&f.apply(_62||this,pre.concat(_65));};};dojo.hitch=function(_66,_67){if(arguments.length>2){return d._hitchArgs.apply(d,arguments);}if(!_67){_67=_66;_66=null;}if(d.isString(_67)){_66=_66||d.global;if(!_66[_67]){throw (["dojo.hitch: scope[\"",_67,"\"] is null (scope=\"",_66,"\")"].join(""));}return function(){return _66[_67].apply(_66,arguments||[]);};}return !_66?_67:function(){return _67.apply(_66,arguments||[]);};};dojo.delegate=dojo._delegate=(function(){function TMP(){};return function(obj,_68){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_68){d._mixin(tmp,_68);}return tmp;};})();var _69=function(obj,_6a,_6b){return (_6b||[]).concat(Array.prototype.slice.call(obj,_6a||0));};var _6c=function(obj,_6d,_6e){var arr=_6e||[];for(var x=_6d||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};dojo._toArray=d.isIE?function(obj){return ((obj.item)?_6c:_69).apply(this,arguments);}:_69;dojo.partial=function(_6f){var arr=[null];return d.hitch.apply(d,arr.concat(d._toArray(arguments)));};var _70=d._extraNames,_71=_70.length,_72={};dojo.clone=function(o){if(!o||typeof o!="object"||d.isFunction(o)){return o;}if(o.nodeType&&"cloneNode" in o){return o.cloneNode(true);}if(o instanceof Date){return new Date(o.getTime());}var r,i,l,s,_73;if(d.isArray(o)){r=[];for(i=0,l=o.length;i<l;++i){if(i in o){r.push(d.clone(o[i]));}}}else{r=o.constructor?new o.constructor():{};}for(_73 in o){s=o[_73];if(!(_73 in r)||(r[_73]!==s&&(!(_73 in _72)||_72[_73]!==s))){r[_73]=d.clone(s);}}if(_71){for(i=0;i<_71;++i){_73=_70[i];s=o[_73];if(!(_73 in r)||(r[_73]!==s&&(!(_73 in _72)||_72[_73]!==s))){r[_73]=s;}}}return r;};dojo.trim=String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};var _74=/\{([^\}]+)\}/g;dojo.replace=function(_75,map,_76){return _75.replace(_76||_74,d.isFunction(map)?map:function(_77,k){return d.getObject(k,false,map);});};})();}if(!dojo._hasResource["dojo._base.array"]){dojo._hasResource["dojo._base.array"]=true;dojo.provide("dojo._base.array");(function(){var _78=function(arr,obj,cb){return [(typeof arr=="string")?arr.split(""):arr,obj||dojo.global,(typeof cb=="string")?new Function("item","index","array",cb):cb];};var _79=function(_7a,arr,_7b,_7c){var _7d=_78(arr,_7c,_7b);arr=_7d[0];for(var i=0,l=arr.length;i<l;++i){var _7e=!!_7d[2].call(_7d[1],arr[i],i,arr);if(_7a^_7e){return _7e;}}return _7a;};dojo.mixin(dojo,{indexOf:function(_7f,_80,_81,_82){var _83=1,end=_7f.length||0,i=0;if(_82){i=end-1;_83=end=-1;}if(_81!=undefined){i=_81;}if((_82&&i>end)||i<end){for(;i!=end;i+=_83){if(_7f[i]==_80){return i;}}}return -1;},lastIndexOf:function(_84,_85,_86){return dojo.indexOf(_84,_85,_86,true);},forEach:function(arr,_87,_88){if(!arr||!arr.length){return;}var _89=_78(arr,_88,_87);arr=_89[0];for(var i=0,l=arr.length;i<l;++i){_89[2].call(_89[1],arr[i],i,arr);}},every:function(arr,_8a,_8b){return _79(true,arr,_8a,_8b);},some:function(arr,_8c,_8d){return _79(false,arr,_8c,_8d);},map:function(arr,_8e,_8f){var _90=_78(arr,_8f,_8e);arr=_90[0];var _91=(arguments[3]?(new arguments[3]()):[]);for(var i=0,l=arr.length;i<l;++i){_91.push(_90[2].call(_90[1],arr[i],i,arr));}return _91;},filter:function(arr,_92,_93){var _94=_78(arr,_93,_92);arr=_94[0];var _95=[];for(var i=0,l=arr.length;i<l;++i){if(_94[2].call(_94[1],arr[i],i,arr)){_95.push(arr[i]);}}return _95;}});})();}if(!dojo._hasResource["dojo._base.declare"]){dojo._hasResource["dojo._base.declare"]=true;dojo.provide("dojo._base.declare");(function(){var d=dojo,mix=d._mixin,op=Object.prototype,_96=op.toString,_97=new Function,_98=0,_99="constructor";function err(msg){throw new Error("declare: "+msg);};function _9a(_9b){var _9c=[],_9d=[{cls:0,refs:[]}],_9e={},_9f=1,l=_9b.length,i=0,j,lin,_a0,top,_a1,rec,_a2,_a3;for(;i<l;++i){_a0=_9b[i];if(!_a0){err("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?");}else{if(_96.call(_a0)!="[object Function]"){err("mixin #"+i+" is not a callable constructor.");}}lin=_a0._meta?_a0._meta.bases:[_a0];top=0;for(j=lin.length-1;j>=0;--j){_a1=lin[j].prototype;if(!_a1.hasOwnProperty("declaredClass")){_a1.declaredClass="uniqName_"+(_98++);}_a2=_a1.declaredClass;if(!_9e.hasOwnProperty(_a2)){_9e[_a2]={count:0,refs:[],cls:lin[j]};++_9f;}rec=_9e[_a2];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_9d[0].refs.push(top);}while(_9d.length){top=_9d.pop();_9c.push(top.cls);--_9f;while(_a3=top.refs,_a3.length==1){top=_a3[0];if(!top||--top.count){top=0;break;}_9c.push(top.cls);--_9f;}if(top){for(i=0,l=_a3.length;i<l;++i){top=_a3[i];if(!--top.count){_9d.push(top);}}}}if(_9f){err("can't build consistent linearization");}_a0=_9b[0];_9c[0]=_a0?_a0._meta&&_a0===_9c[_9c.length-_a0._meta.bases.length]?_a0._meta.bases.length:1:0;return _9c;};function _a4(_a5,a,f){var _a6,_a7,_a8,_a9,_aa,_ab,_ac,opf,pos,_ad=this._inherited=this._inherited||{};if(typeof _a5=="string"){_a6=_a5;_a5=a;a=f;}f=0;_a9=_a5.callee;_a6=_a6||_a9.nom;if(!_a6){err("can't deduce a name to call inherited()");}_aa=this.constructor._meta;_a8=_aa.bases;pos=_ad.p;if(_a6!=_99){if(_ad.c!==_a9){pos=0;_ab=_a8[0];_aa=_ab._meta;if(_aa.hidden[_a6]!==_a9){_a7=_aa.chains;if(_a7&&typeof _a7[_a6]=="string"){err("calling chained method with inherited: "+_a6);}do{_aa=_ab._meta;_ac=_ab.prototype;if(_aa&&(_ac[_a6]===_a9&&_ac.hasOwnProperty(_a6)||_aa.hidden[_a6]===_a9)){break;}}while(_ab=_a8[++pos]);pos=_ab?pos:-1;}}_ab=_a8[++pos];if(_ab){_ac=_ab.prototype;if(_ab._meta&&_ac.hasOwnProperty(_a6)){f=_ac[_a6];}else{opf=op[_a6];do{_ac=_ab.prototype;f=_ac[_a6];if(f&&(_ab._meta?_ac.hasOwnProperty(_a6):f!==opf)){break;}}while(_ab=_a8[++pos]);}}f=_ab&&f||op[_a6];}else{if(_ad.c!==_a9){pos=0;_aa=_a8[0]._meta;if(_aa&&_aa.ctor!==_a9){_a7=_aa.chains;if(!_a7||_a7.constructor!=="manual"){err("calling chained constructor with inherited");}while(_ab=_a8[++pos]){_aa=_ab._meta;if(_aa&&_aa.ctor===_a9){break;}}pos=_ab?pos:-1;}}while(_ab=_a8[++pos]){_aa=_ab._meta;f=_aa?_aa.ctor:_ab;if(f){break;}}f=_ab&&f;}_ad.c=f;_ad.p=pos;if(f){return a===true?f:f.apply(this,a||_a5);}};function _ae(_af,_b0){if(typeof _af=="string"){return this.inherited(_af,_b0,true);}return this.inherited(_af,true);};function _b1(cls){var _b2=this.constructor._meta.bases;for(var i=0,l=_b2.length;i<l;++i){if(_b2[i]===cls){return true;}}return this instanceof cls;};function _b3(_b4,_b5){var _b6,i=0,l=d._extraNames.length;for(_b6 in _b5){if(_b6!=_99&&_b5.hasOwnProperty(_b6)){_b4[_b6]=_b5[_b6];}}for(;i<l;++i){_b6=d._extraNames[i];if(_b6!=_99&&_b5.hasOwnProperty(_b6)){_b4[_b6]=_b5[_b6];}}};function _b7(_b8,_b9){var _ba,t,i=0,l=d._extraNames.length;for(_ba in _b9){t=_b9[_ba];if((t!==op[_ba]||!(_ba in op))&&_ba!=_99){if(_96.call(t)=="[object Function]"){t.nom=_ba;}_b8[_ba]=t;}}for(;i<l;++i){_ba=d._extraNames[i];t=_b9[_ba];if((t!==op[_ba]||!(_ba in op))&&_ba!=_99){if(_96.call(t)=="[object Function]"){t.nom=_ba;}_b8[_ba]=t;}}return _b8;};function _bb(_bc){_b7(this.prototype,_bc);return this;};function _bd(_be,_bf){return function(){var a=arguments,_c0=a,a0=a[0],f,i,m,l=_be.length,_c1;if(!(this instanceof a.callee)){return _c2(a);}if(_bf&&(a0&&a0.preamble||this.preamble)){_c1=new Array(_be.length);_c1[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_be[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_c1[i]=a;}}for(i=l-1;i>=0;--i){f=_be[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_c1?_c1[i]:a);}}f=this.postscript;if(f){f.apply(this,_c0);}};};function _c3(_c4,_c5){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _c2(a);}if(_c5){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(_c4){_c4.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _c6(_c7){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _c2(a);}for(;f=_c7[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _c8(_c9,_ca,_cb){return function(){var b,m,f,i=0,_cc=1;if(_cb){i=_ca.length-1;_cc=-1;}for(;b=_ca[i];i+=_cc){m=b._meta;f=(m?m.hidden:b.prototype)[_c9];if(f){f.apply(this,arguments);}}};};function _cd(_ce){_97.prototype=_ce.prototype;var t=new _97;_97.prototype=null;return t;};function _c2(_cf){var _d0=_cf.callee,t=_cd(_d0);_d0.apply(t,_cf);return t;};d.declare=function(_d1,_d2,_d3){if(typeof _d1!="string"){_d3=_d2;_d2=_d1;_d1="";}_d3=_d3||{};var _d4,i,t,_d5,_d6,_d7,_d8,_d9=1,_da=_d2;if(_96.call(_d2)=="[object Array]"){_d7=_9a(_d2);t=_d7[0];_d9=_d7.length-t;_d2=_d7[_d9];}else{_d7=[0];if(_d2){if(_96.call(_d2)=="[object Function]"){t=_d2._meta;_d7=_d7.concat(t?t.bases:_d2);}else{err("base class is not a callable constructor.");}}else{if(_d2!==null){err("unknown base class. Did you use dojo.require to pull it in?");}}}if(_d2){for(i=_d9-1;;--i){_d4=_cd(_d2);if(!i){break;}t=_d7[i];(t._meta?_b3:mix)(_d4,t.prototype);_d5=new Function;_d5.superclass=_d2;_d5.prototype=_d4;_d2=_d4.constructor=_d5;}}else{_d4={};}_b7(_d4,_d3);t=_d3.constructor;if(t!==op.constructor){t.nom=_99;_d4.constructor=t;}for(i=_d9-1;i;--i){t=_d7[i]._meta;if(t&&t.chains){_d8=mix(_d8||{},t.chains);}}if(_d4["-chains-"]){_d8=mix(_d8||{},_d4["-chains-"]);}t=!_d8||!_d8.hasOwnProperty(_99);_d7[0]=_d5=(_d8&&_d8.constructor==="manual")?_c6(_d7):(_d7.length==1?_c3(_d3.constructor,t):_bd(_d7,t));_d5._meta={bases:_d7,hidden:_d3,chains:_d8,parents:_da,ctor:_d3.constructor};_d5.superclass=_d2&&_d2.prototype;_d5.extend=_bb;_d5.prototype=_d4;_d4.constructor=_d5;_d4.getInherited=_ae;_d4.inherited=_a4;_d4.isInstanceOf=_b1;if(_d1){_d4.declaredClass=_d1;d.setObject(_d1,_d5);}if(_d8){for(_d6 in _d8){if(_d4[_d6]&&typeof _d8[_d6]=="string"&&_d6!=_99){t=_d4[_d6]=_c8(_d6,_d7,_d8[_d6]==="after");t.nom=_d6;}}}return _d5;};d.safeMixin=_b7;})();}if(!dojo._hasResource["dojo._base.connect"]){dojo._hasResource["dojo._base.connect"]=true;dojo.provide("dojo._base.connect");dojo._listener={getDispatcher:function(){return function(){var ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target;var r=t&&t.apply(this,arguments);var i,lls;lls=[].concat(ls);for(i in lls){if(!(i in ap)){lls[i].apply(this,arguments);}}return r;};},add:function(_db,_dc,_dd){_db=_db||dojo.global;var f=_db[_dc];if(!f||!f._listeners){var d=dojo._listener.getDispatcher();d.target=f;d._listeners=[];f=_db[_dc]=d;}return f._listeners.push(_dd);},remove:function(_de,_df,_e0){var f=(_de||dojo.global)[_df];if(f&&f._listeners&&_e0--){delete f._listeners[_e0];}}};dojo.connect=function(obj,_e1,_e2,_e3,_e4){var a=arguments,_e5=[],i=0;_e5.push(dojo.isString(a[0])?null:a[i++],a[i++]);var a1=a[i+1];_e5.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){_e5.push(a[i]);}return dojo._connect.apply(this,_e5);};dojo._connect=function(obj,_e6,_e7,_e8){var l=dojo._listener,h=l.add(obj,_e6,dojo.hitch(_e7,_e8));return [obj,_e6,h,l];};dojo.disconnect=function(_e9){if(_e9&&_e9[0]!==undefined){dojo._disconnect.apply(this,_e9);delete _e9[0];}};dojo._disconnect=function(obj,_ea,_eb,_ec){_ec.remove(obj,_ea,_eb);};dojo._topics={};dojo.subscribe=function(_ed,_ee,_ef){return [_ed,dojo._listener.add(dojo._topics,_ed,dojo.hitch(_ee,_ef))];};dojo.unsubscribe=function(_f0){if(_f0){dojo._listener.remove(dojo._topics,_f0[0],_f0[1]);}};dojo.publish=function(_f1,_f2){var f=dojo._topics[_f1];if(f){f.apply(this,_f2||[]);}};dojo.connectPublisher=function(_f3,obj,_f4){var pf=function(){dojo.publish(_f3,arguments);};return _f4?dojo.connect(obj,_f4,pf):dojo.connect(obj,pf);};}if(!dojo._hasResource["dojo._base.Deferred"]){dojo._hasResource["dojo._base.Deferred"]=true;dojo.provide("dojo._base.Deferred");(function(){var _f5=function(){};var _f6=Object.freeze||function(){};dojo.Deferred=function(_f7){var _f8,_f9,_fa,_fb,_fc;var _fd=this.promise={};function _fe(_ff){if(_f9){throw new Error("This deferred has already been resolved");}_f8=_ff;_f9=true;_100();};function _100(){var _101;while(!_101&&_fc){var _102=_fc;_fc=_fc.next;if(_101=(_102.progress==_f5)){_f9=false;}var func=(_fa?_102.error:_102.resolved);if(func){try{var _103=func(_f8);if(_103&&typeof _103.then==="function"){_103.then(dojo.hitch(_102.deferred,"resolve"),dojo.hitch(_102.deferred,"reject"));continue;}var _104=_101&&_103===undefined;_102.deferred[_104&&_fa?"reject":"resolve"](_104?_f8:_103);}catch(e){_102.deferred.reject(e);}}else{if(_fa){_102.deferred.reject(_f8);}else{_102.deferred.resolve(_f8);}}}};this.resolve=this.callback=function(_105){this.fired=0;this.results=[_105,null];_fe(_105);};this.reject=this.errback=function(_106){_fa=true;this.fired=1;_fe(_106);this.results=[null,_106];if(!_106||_106.log!==false){(dojo.config.deferredOnError||function(x){console.error(x);})(_106);}};this.progress=function(_107){var _108=_fc;while(_108){var _109=_108.progress;_109&&_109(_107);_108=_108.next;}};this.addCallbacks=function(_10a,_10b){this.then(_10a,_10b,_f5);return this;};this.then=_fd.then=function(_10c,_10d,_10e){var _10f=_10e==_f5?this:new dojo.Deferred(_fd.cancel);var _110={resolved:_10c,error:_10d,progress:_10e,deferred:_10f};if(_fc){_fb=_fb.next=_110;}else{_fc=_fb=_110;}if(_f9){_100();}return _10f.promise;};var _111=this;this.cancel=_fd.cancel=function(){if(!_f9){var _112=_f7&&_f7(_111);if(!_f9){if(!(_112 instanceof Error)){_112=new Error(_112);}_112.log=false;_111.reject(_112);}}};_f6(_fd);};dojo.extend(dojo.Deferred,{addCallback:function(_113){return this.addCallbacks(dojo.hitch.apply(dojo,arguments));},addErrback:function(_114){return this.addCallbacks(null,dojo.hitch.apply(dojo,arguments));},addBoth:function(_115){var _116=dojo.hitch.apply(dojo,arguments);return this.addCallbacks(_116,_116);},fired:-1});})();dojo.when=function(_117,_118,_119,_11a){if(_117&&typeof _117.then==="function"){return _117.then(_118,_119,_11a);}return _118(_117);};}if(!dojo._hasResource["dojo._base.json"]){dojo._hasResource["dojo._base.json"]=true;dojo.provide("dojo._base.json");dojo.fromJson=function(json){return eval("("+json+")");};dojo._escapeString=function(str){return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_11b,_11c){if(it===undefined){return "undefined";}var _11d=typeof it;if(_11d=="number"||_11d=="boolean"){return it+"";}if(it===null){return "null";}if(dojo.isString(it)){return dojo._escapeString(it);}var _11e=arguments.callee;var _11f;_11c=_11c||"";var _120=_11b?_11c+dojo.toJsonIndentStr:"";var tf=it.__json__||it.json;if(dojo.isFunction(tf)){_11f=tf.call(it);if(it!==_11f){return _11e(_11f,_11b,_120);}}if(it.nodeType&&it.cloneNode){throw new Error("Can't serialize DOM nodes");}var sep=_11b?" ":"";var _121=_11b?"\n":"";if(dojo.isArray(it)){var res=dojo.map(it,function(obj){var val=_11e(obj,_11b,_120);if(typeof val!="string"){val="undefined";}return _121+_120+val;});return "["+res.join(","+sep)+_121+_11c+"]";}if(_11d=="function"){return null;}var _122=[],key;for(key in it){var _123,val;if(typeof key=="number"){_123="\""+key+"\"";}else{if(typeof key=="string"){_123=dojo._escapeString(key);}else{continue;}}val=_11e(it[key],_11b,_120);if(typeof val!="string"){continue;}_122.push(_121+_120+_123+":"+sep+val);}return "{"+_122.join(","+sep)+_121+_11c+"}";};}if(!dojo._hasResource["dojo._base.Color"]){dojo._hasResource["dojo._base.Color"]=true;dojo.provide("dojo._base.Color");(function(){var d=dojo;dojo.Color=function(_124){if(_124){this.setColor(_124);}};dojo.Color.named={black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255],transparent:d.config.transparentColor||[255,255,255]};dojo.extend(dojo.Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_125){if(d.isString(_125)){d.colorFromString(_125,this);}else{if(d.isArray(_125)){d.colorFromArray(_125,this);}else{this._set(_125.r,_125.g,_125.b,_125.a);if(!(_125 instanceof d.Color)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=d.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s;},this);return "#"+arr.join("");},toCss:function(_126){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_126?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});dojo.blendColors=function(_127,end,_128,obj){var t=obj||new d.Color();d.forEach(["r","g","b","a"],function(x){t[x]=_127[x]+(end[x]-_127[x])*_128;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};dojo.colorFromRgb=function(_129,obj){var m=_129.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&dojo.colorFromArray(m[1].split(/\s*,\s*/),obj);};dojo.colorFromHex=function(_12a,obj){var t=obj||new d.Color(),bits=(_12a.length==4)?4:8,mask=(1<<bits)-1;_12a=Number("0x"+_12a.substr(1));if(isNaN(_12a)){return null;}d.forEach(["b","g","r"],function(x){var c=_12a&mask;_12a>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};dojo.colorFromArray=function(a,obj){var t=obj||new d.Color();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};dojo.colorFromString=function(str,obj){var a=d.Color.named[str];return a&&d.colorFromArray(a,obj)||d.colorFromRgb(str,obj)||d.colorFromHex(str,obj);};})();}if(!dojo._hasResource["dojo._base"]){dojo._hasResource["dojo._base"]=true;dojo.provide("dojo._base");}if(!dojo._hasResource["dojo._base.window"]){dojo._hasResource["dojo._base.window"]=true;dojo.provide("dojo._base.window");dojo.doc=window["document"]||null;dojo.body=function(){return dojo.doc.body||dojo.doc.getElementsByTagName("body")[0];};dojo.setContext=function(_12b,_12c){dojo.global=_12b;dojo.doc=_12c;};dojo.withGlobal=function(_12d,_12e,_12f,_130){var _131=dojo.global;try{dojo.global=_12d;return dojo.withDoc.call(null,_12d.document,_12e,_12f,_130);}finally{dojo.global=_131;}};dojo.withDoc=function(_132,_133,_134,_135){var _136=dojo.doc,_137=dojo._bodyLtr,oldQ=dojo.isQuirks;try{dojo.doc=_132;delete dojo._bodyLtr;dojo.isQuirks=dojo.doc.compatMode=="BackCompat";if(_134&&typeof _133=="string"){_133=_134[_133];}return _133.apply(_134,_135||[]);}finally{dojo.doc=_136;delete dojo._bodyLtr;if(_137!==undefined){dojo._bodyLtr=_137;}dojo.isQuirks=oldQ;}};}if(!dojo._hasResource["dojo._base.event"]){dojo._hasResource["dojo._base.event"]=true;dojo.provide("dojo._base.event");(function(){var del=(dojo._event_listener={add:function(node,name,fp){if(!node){return;}name=del._normalizeEventName(name);fp=del._fixCallback(name,fp);var _138=name;if(!dojo.isIE&&(name=="mouseenter"||name=="mouseleave")){var ofp=fp;name=(name=="mouseenter")?"mouseover":"mouseout";fp=function(e){if(!dojo.isDescendant(e.relatedTarget,node)){return ofp.call(this,e);}};}node.addEventListener(name,fp,false);return fp;},remove:function(node,_139,_13a){if(node){_139=del._normalizeEventName(_139);if(!dojo.isIE&&(_139=="mouseenter"||_139=="mouseleave")){_139=(_139=="mouseenter")?"mouseover":"mouseout";}node.removeEventListener(_139,_13a,false);}},_normalizeEventName:function(name){return name.slice(0,2)=="on"?name.slice(2):name;},_fixCallback:function(name,fp){return name!="keypress"?fp:function(e){return fp.call(this,del._fixEvent(e,this));};},_fixEvent:function(evt,_13b){switch(evt.type){case "keypress":del._setKeyChar(evt);break;}return evt;},_setKeyChar:function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39}});dojo.fixEvent=function(evt,_13c){return del._fixEvent(evt,_13c);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var _13d=dojo._listener;dojo._connect=function(obj,_13e,_13f,_140,_141){var _142=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener);var lid=_142?(_141?2:1):0,l=[dojo._listener,del,_13d][lid];var h=l.add(obj,_13e,dojo.hitch(_13f,_140));return [obj,_13e,h,lid];};dojo._disconnect=function(obj,_143,_144,_145){([dojo._listener,del,_13d][_145]).remove(obj,_143,_144);};dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:dojo.isSafari?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,copyKey:dojo.isMac&&!dojo.isAIR?(dojo.isSafari?91:224):17};var _146=dojo.isMac?"metaKey":"ctrlKey";dojo.isCopyKey=function(e){return e[_146];};if(dojo.isIE){dojo.mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_147){return e.button&_147;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{dojo.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_148){return e.button==_148;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}if(dojo.isIE){var _149=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var iel=dojo._listener;var _14a=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners");if(!dojo.config._allow_leaks){_13d=iel=dojo._ie_listener={handlers:[],add:function(_14b,_14c,_14d){_14b=_14b||dojo.global;var f=_14b[_14c];if(!f||!f[_14a]){var d=dojo._getIeDispatcher();d.target=f&&(ieh.push(f)-1);d[_14a]=[];f=_14b[_14c]=d;}return f[_14a].push(ieh.push(_14d)-1);},remove:function(_14e,_14f,_150){var f=(_14e||dojo.global)[_14f],l=f&&f[_14a];if(f&&l&&_150--){delete ieh[l[_150]];delete l[_150];}}};var ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_151,fp){if(!node){return;}_151=del._normalizeEventName(_151);if(_151=="onkeypress"){var kd=node.onkeydown;if(!kd||!kd[_14a]||!kd._stealthKeydownHandle){var h=del.add(node,"onkeydown",del._stealthKeyDown);kd=node.onkeydown;kd._stealthKeydownHandle=h;kd._stealthKeydownRefs=1;}else{kd._stealthKeydownRefs++;}}return iel.add(node,_151,del._fixCallback(fp));},remove:function(node,_152,_153){_152=del._normalizeEventName(_152);iel.remove(node,_152,_153);if(_152=="onkeypress"){var kd=node.onkeydown;if(--kd._stealthKeydownRefs<=0){iel.remove(node,"onkeydown",kd._stealthKeydownHandle);delete kd._stealthKeydownHandle;}}},_normalizeEventName:function(_154){return _154.slice(0,2)!="on"?"on"+_154:_154;},_nop:function(){},_fixEvent:function(evt,_155){if(!evt){var w=_155&&(_155.ownerDocument||_155.document||_155).parentWindow||window;evt=w.event;}if(!evt){return (evt);}evt.target=evt.srcElement;evt.currentTarget=(_155||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var se=evt.srcElement,doc=(se&&se.ownerDocument)||document;var _156=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;var _157=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_156.scrollLeft||0)-_157.x;evt.pageY=evt.clientY+(_156.scrollTop||0)-_157.y;if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}evt.stopPropagation=del._stopPropagation;evt.preventDefault=del._preventDefault;return del._fixKeys(evt);},_fixKeys:function(evt){switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;del._setKeyChar(evt);break;}return evt;},_stealthKeyDown:function(evt){var kp=evt.currentTarget.onkeypress;if(!kp||!kp[_14a]){return;}var k=evt.keyCode;var _158=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_158||evt.ctrlKey){var c=_158?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});kp.call(evt.currentTarget,faux);evt.cancelBubble=faux.cancelBubble;evt.returnValue=faux.returnValue;_149(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_149(this,0);}this.returnValue=false;}});dojo.stopEvent=function(evt){evt=evt||window.event;del._stopPropagation.call(evt);del._preventDefault.call(evt);};}del._synthesizeEvent=function(evt,_159){var faux=dojo.mixin({},evt,_159);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_15a){switch(evt.type){case "keypress":var c=evt.which;if(c==3){c=99;}c=c<41&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return del._synthesizeEvent(evt,{charCode:c});}return evt;}});}if(dojo.isWebKit){del._add=del.add;del._remove=del.remove;dojo.mixin(del,{add:function(node,_15b,fp){if(!node){return;}var _15c=del._add(node,_15b,fp);if(del._normalizeEventName(_15b)=="keypress"){_15c._stealthKeyDownHandle=del._add(node,"keydown",function(evt){var k=evt.keyCode;var _15d=k!=13&&k!=32&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_15d||evt.ctrlKey){var c=_15d?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if(!evt.shiftKey&&c>=65&&c<=90){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});fp.call(evt.currentTarget,faux);}});}return _15c;},remove:function(node,_15e,_15f){if(node){if(_15f._stealthKeyDownHandle){del._remove(node,"keydown",_15f._stealthKeyDownHandle);}del._remove(node,_15e,_15f);}},_fixEvent:function(evt,_160){switch(evt.type){case "keypress":if(evt.faux){return evt;}var c=evt.charCode;c=c>=32?c:0;return del._synthesizeEvent(evt,{charCode:c,faux:true});}return evt;}});}})();if(dojo.isIE){dojo._ieDispatcher=function(args,_161){var ap=Array.prototype,h=dojo._ie_listener.handlers,c=args.callee,ls=c[dojo._ieListenersName],t=h[c.target];var r=t&&t.apply(_161,args);var lls=[].concat(ls);for(var i in lls){var f=h[lls[i]];if(!(i in ap)&&f){f.apply(_161,args);}}return r;};dojo._getIeDispatcher=function(){return new Function(dojo._scopeName+"._ieDispatcher(arguments, this)");};dojo._event_listener._fixCallback=function(fp){var f=dojo._event_listener._fixEvent;return function(e){return fp.call(this,f(e,this));};};}}if(!dojo._hasResource["dojo._base.html"]){dojo._hasResource["dojo._base.html"]=true;dojo.provide("dojo._base.html");try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}if(dojo.isIE||dojo.isOpera){dojo.byId=function(id,doc){if(typeof id!="string"){return id;}var _162=doc||dojo.doc,te=_162.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_162.all[id];if(!eles||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{dojo.byId=function(id,doc){return (typeof id=="string")?(doc||dojo.doc).getElementById(id):id;};}(function(){var d=dojo;var byId=d.byId;var _163=null,_164;d.addOnWindowUnload(function(){_163=null;});dojo._destroyElement=dojo.destroy=function(node){node=byId(node);try{var doc=node.ownerDocument;if(!_163||_164!=doc){_163=doc.createElement("div");_164=doc;}_163.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_163.innerHTML="";}catch(e){}};dojo.isDescendant=function(node,_165){try{node=byId(node);_165=byId(_165);while(node){if(node==_165){return true;}node=node.parentNode;}}catch(e){}return false;};dojo.setSelectable=function(node,_166){node=byId(node);if(d.isMozilla){node.style.MozUserSelect=_166?"":"none";}else{if(d.isKhtml||d.isWebKit){node.style.KhtmlUserSelect=_166?"auto":"none";}else{if(d.isIE){var v=(node.unselectable=_166?"":"on");d.query("*",node).forEach("item.unselectable = '"+v+"'");}}}};var _167=function(node,ref){var _168=ref.parentNode;if(_168){_168.insertBefore(node,ref);}};var _169=function(node,ref){var _16a=ref.parentNode;if(_16a){if(_16a.lastChild==ref){_16a.appendChild(node);}else{_16a.insertBefore(node,ref.nextSibling);}}};dojo.place=function(node,_16b,_16c){_16b=byId(_16b);if(typeof node=="string"){node=node.charAt(0)=="<"?d._toDom(node,_16b.ownerDocument):byId(node);}if(typeof _16c=="number"){var cn=_16b.childNodes;if(!cn.length||cn.length<=_16c){_16b.appendChild(node);}else{_167(node,cn[_16c<0?0:_16c]);}}else{switch(_16c){case "before":_167(node,_16b);break;case "after":_169(node,_16b);break;case "replace":_16b.parentNode.replaceChild(node,_16b);break;case "only":d.empty(_16b);_16b.appendChild(node);break;case "first":if(_16b.firstChild){_167(node,_16b.firstChild);break;}default:_16b.appendChild(node);}}return node;};dojo.boxModel="content-box";if(d.isIE){d.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}var gcs;if(d.isWebKit){gcs=function(node){var s;if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(d.isIE){gcs=function(node){return node.nodeType==1?node.currentStyle:{};};}else{gcs=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}dojo.getComputedStyle=gcs;if(!d.isIE){d._toPixelValue=function(_16d,_16e){return parseFloat(_16e)||0;};}else{d._toPixelValue=function(_16f,_170){if(!_170){return 0;}if(_170=="medium"){return 4;}if(_170.slice&&_170.slice(-2)=="px"){return parseFloat(_170);}with(_16f){var _171=style.left;var _172=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_170;_170=style.pixelLeft;}catch(e){_170=0;}style.left=_171;runtimeStyle.left=_172;}return _170;};}var px=d._toPixelValue;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};dojo._getOpacity=d.isIE?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return gcs(node).opacity;};dojo._setOpacity=d.isIE?function(node,_173){var ov=_173*100,_174=_173==1;node.style.zoom=_174?"":1;if(!af(node)){if(_174){return _173;}node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_174;if(node.nodeName.toLowerCase()=="tr"){d.query("> td",node).forEach(function(i){d._setOpacity(i,_173);});}return _173;}:function(node,_175){return node.style.opacity=_175;};var _176={left:true,top:true};var _177=/margin|padding|width|height|max|min|offset/;var _178=function(node,type,_179){type=type.toLowerCase();if(d.isIE){if(_179=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_179){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _176)){_176[type]=_177.test(type);}return _176[type]?px(node,_179):_179;};var _17a=d.isIE?"styleFloat":"cssFloat",_17b={"cssFloat":_17a,"styleFloat":_17a,"float":_17a};dojo.style=function(node,_17c,_17d){var n=byId(node),args=arguments.length,op=(_17c=="opacity");_17c=_17b[_17c]||_17c;if(args==3){return op?d._setOpacity(n,_17d):n.style[_17c]=_17d;}if(args==2&&op){return d._getOpacity(n);}var s=gcs(n);if(args==2&&typeof _17c!="string"){for(var x in _17c){d.style(node,x,_17c[x]);}return s;}return (args==1)?s:_178(n,_17c,s[_17c]||n.style[_17c]);};dojo._getPadExtents=function(n,_17e){var s=_17e||gcs(n),l=px(n,s.paddingLeft),t=px(n,s.paddingTop);return {l:l,t:t,w:l+px(n,s.paddingRight),h:t+px(n,s.paddingBottom)};};dojo._getBorderExtents=function(n,_17f){var ne="none",s=_17f||gcs(n),bl=(s.borderLeftStyle!=ne?px(n,s.borderLeftWidth):0),bt=(s.borderTopStyle!=ne?px(n,s.borderTopWidth):0);return {l:bl,t:bt,w:bl+(s.borderRightStyle!=ne?px(n,s.borderRightWidth):0),h:bt+(s.borderBottomStyle!=ne?px(n,s.borderBottomWidth):0)};};dojo._getPadBorderExtents=function(n,_180){var s=_180||gcs(n),p=d._getPadExtents(n,s),b=d._getBorderExtents(n,s);return {l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h};};dojo._getMarginExtents=function(n,_181){var s=_181||gcs(n),l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom);if(d.isWebKit&&(s.position!="absolute")){r=l;}return {l:l,t:t,w:l+r,h:t+b};};dojo._getMarginBox=function(node,_182){var s=_182||gcs(node),me=d._getMarginExtents(node,s);var l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode;if(d.isMoz){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{if(p&&p.style){var pcs=gcs(p);if(pcs.overflow!="visible"){var be=d._getBorderExtents(p,pcs);l+=be.l,t+=be.t;}}}}else{if(d.isOpera||(d.isIE>7&&!d.isQuirks)){if(p){be=d._getBorderExtents(p);l-=be.l;t-=be.t;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};dojo._getContentBox=function(node,_183){var s=_183||gcs(node),pe=d._getPadExtents(node,s),be=d._getBorderExtents(node,s),w=node.clientWidth,h;if(!w){w=node.offsetWidth,h=node.offsetHeight;}else{h=node.clientHeight,be.w=be.h=0;}if(d.isOpera){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};dojo._getBorderBox=function(node,_184){var s=_184||gcs(node),pe=d._getPadExtents(node,s),cb=d._getContentBox(node,s);return {l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h};};dojo._setBox=function(node,l,t,w,h,u){u=u||"px";var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};dojo._isButtonTag=function(node){return node.tagName=="BUTTON"||node.tagName=="INPUT"&&(node.getAttribute("type")||"").toUpperCase()=="BUTTON";};dojo._usesBorderBox=function(node){var n=node.tagName;return d.boxModel=="border-box"||n=="TABLE"||d._isButtonTag(node);};dojo._setContentSize=function(node,_185,_186,_187){if(d._usesBorderBox(node)){var pb=d._getPadBorderExtents(node,_187);if(_185>=0){_185+=pb.w;}if(_186>=0){_186+=pb.h;}}d._setBox(node,NaN,NaN,_185,_186);};dojo._setMarginBox=function(node,_188,_189,_18a,_18b,_18c){var s=_18c||gcs(node),bb=d._usesBorderBox(node),pb=bb?_18d:d._getPadBorderExtents(node,s);if(d.isWebKit){if(d._isButtonTag(node)){var ns=node.style;if(_18a>=0&&!ns.width){ns.width="4px";}if(_18b>=0&&!ns.height){ns.height="4px";}}}var mb=d._getMarginExtents(node,s);if(_18a>=0){_18a=Math.max(_18a-pb.w-mb.w,0);}if(_18b>=0){_18b=Math.max(_18b-pb.h-mb.h,0);}d._setBox(node,_188,_189,_18a,_18b);};var _18d={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getMarginBox(n,s):d._setMarginBox(n,b.l,b.t,b.w,b.h,s);};dojo.contentBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s);};var _18e=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var val,_18f=0,_190=d.body();while(node&&node.style){if(gcs(node).position=="fixed"){return 0;}val=node[prop];if(val){_18f+=val-0;if(node==_190){break;}}node=node.parentNode;}return _18f;};dojo._docScroll=function(){var n=d.global;return "pageXOffset" in n?{x:n.pageXOffset,y:n.pageYOffset}:(n=d.doc.documentElement,n.clientHeight?{x:d._fixIeBiDiScrollLeft(n.scrollLeft),y:n.scrollTop}:(n=d.body(),{x:n.scrollLeft||0,y:n.scrollTop||0}));};dojo._isBodyLtr=function(){return "_bodyLtr" in d?d._bodyLtr:d._bodyLtr=(d.body().dir||d.doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};dojo._getIeDocumentElementOffset=function(){var de=d.doc.documentElement;if(d.isIE<8){var r=de.getBoundingClientRect();var l=r.left,t=r.top;if(d.isIE<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};dojo._fixIeBiDiScrollLeft=function(_191){var dd=d.doc;if(d.isIE<8&&!d._isBodyLtr()){var de=d.isQuirks?dd.body:dd.documentElement;return _191+de.clientWidth-de.scrollWidth;}return _191;};dojo._abs=dojo.position=function(node,_192){var db=d.body(),dh=db.parentNode,ret;node=byId(node);if(node["getBoundingClientRect"]){ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(d.isIE){var _193=d._getIeDocumentElementOffset();ret.x-=_193.x+(d.isQuirks?db.clientLeft+db.offsetLeft:0);ret.y-=_193.y+(d.isQuirks?db.clientTop+db.offsetTop:0);}else{if(d.isFF==3){var cs=gcs(dh);ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth);}}}else{ret={x:0,y:0,w:node.offsetWidth,h:node.offsetHeight};if(node["offsetParent"]){ret.x-=_18e(node,"scrollLeft");ret.y-=_18e(node,"scrollTop");var _194=node;do{var n=_194.offsetLeft,t=_194.offsetTop;ret.x+=isNaN(n)?0:n;ret.y+=isNaN(t)?0:t;cs=gcs(_194);if(_194!=node){if(d.isMoz){ret.x+=2*px(_194,cs.borderLeftWidth);ret.y+=2*px(_194,cs.borderTopWidth);}else{ret.x+=px(_194,cs.borderLeftWidth);ret.y+=px(_194,cs.borderTopWidth);}}if(d.isMoz&&cs.position=="static"){var _195=_194.parentNode;while(_195!=_194.offsetParent){var pcs=gcs(_195);if(pcs.position=="static"){ret.x+=px(_194,pcs.borderLeftWidth);ret.y+=px(_194,pcs.borderTopWidth);}_195=_195.parentNode;}}_194=_194.offsetParent;}while((_194!=dh)&&_194);}else{if(node.x&&node.y){ret.x+=isNaN(node.x)?0:node.x;ret.y+=isNaN(node.y)?0:node.y;}}}if(_192){var _196=d._docScroll();ret.x+=_196.x;ret.y+=_196.y;}return ret;};dojo.coords=function(node,_197){var n=byId(node),s=gcs(n),mb=d._getMarginBox(n,s);var abs=d.position(n,_197);mb.x=abs.x;mb.y=abs.y;return mb;};var _198={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"},_199={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"},_19a={innerHTML:1,className:1,htmlFor:d.isIE,value:1};var _19b=function(name){return _199[name.toLowerCase()]||name;};var _19c=function(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};dojo.hasAttr=function(node,name){var lc=name.toLowerCase();return _19a[_198[lc]||name]||_19c(byId(node),_199[lc]||name);};var _19d={},_19e=0,_19f=dojo._scopeName+"attrid",_1a0={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};dojo.attr=function(node,name,_1a1){node=byId(node);var args=arguments.length,prop;if(args==2&&typeof name!="string"){for(var x in name){d.attr(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_1a2=_198[lc]||name,_1a3=_19a[_1a2],_1a4=_199[lc]||name;if(args==3){do{if(_1a2=="style"&&typeof _1a1!="string"){d.style(node,_1a1);break;}if(_1a2=="innerHTML"){if(d.isIE&&node.tagName.toLowerCase() in _1a0){d.empty(node);node.appendChild(d._toDom(_1a1,node.ownerDocument));}else{node[_1a2]=_1a1;}break;}if(d.isFunction(_1a1)){var _1a5=d.attr(node,_19f);if(!_1a5){_1a5=_19e++;d.attr(node,_19f,_1a5);}if(!_19d[_1a5]){_19d[_1a5]={};}var h=_19d[_1a5][_1a2];if(h){d.disconnect(h);}else{try{delete node[_1a2];}catch(e){}}_19d[_1a5][_1a2]=d.connect(node,_1a2,_1a1);break;}if(_1a3||typeof _1a1=="boolean"){node[_1a2]=_1a1;break;}node.setAttribute(_1a4,_1a1);}while(false);return node;}_1a1=node[_1a2];if(_1a3&&typeof _1a1!="undefined"){return _1a1;}if(_1a2!="href"&&(typeof _1a1=="boolean"||d.isFunction(_1a1))){return _1a1;}return _19c(node,_1a4)?node.getAttribute(_1a4):null;};dojo.removeAttr=function(node,name){byId(node).removeAttribute(_19b(name));};dojo.getNodeProp=function(node,name){node=byId(node);var lc=name.toLowerCase(),_1a6=_198[lc]||name;if((_1a6 in node)&&_1a6!="href"){return node[_1a6];}var _1a7=_199[lc]||name;return _19c(node,_1a7)?node.getAttribute(_1a7):null;};dojo.create=function(tag,_1a8,_1a9,pos){var doc=d.doc;if(_1a9){_1a9=byId(_1a9);doc=_1a9.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_1a8){d.attr(tag,_1a8);}if(_1a9){d.place(tag,_1a9,pos);}return tag;};d.empty=d.isIE?function(node){node=byId(node);for(var c;c=node.lastChild;){d.destroy(c);}}:function(node){byId(node).innerHTML="";};var _1aa={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_1ab=/<\s*([\w\:]+)/,_1ac={},_1ad=0,_1ae="__"+d._scopeName+"ToDomId";for(var _1af in _1aa){var tw=_1aa[_1af];tw.pre=_1af=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}d._toDom=function(frag,doc){doc=doc||d.doc;var _1b0=doc[_1ae];if(!_1b0){doc[_1ae]=_1b0=++_1ad+"";_1ac[_1b0]=doc.createElement("div");}frag+="";var _1b1=frag.match(_1ab),tag=_1b1?_1b1[1].toLowerCase():"",_1b2=_1ac[_1b0],wrap,i,fc,df;if(_1b1&&_1aa[tag]){wrap=_1aa[tag];_1b2.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_1b2=_1b2.firstChild;}}else{_1b2.innerHTML=frag;}if(_1b2.childNodes.length==1){return _1b2.removeChild(_1b2.firstChild);}df=doc.createDocumentFragment();while(fc=_1b2.firstChild){df.appendChild(fc);}return df;};var _1b3="className";dojo.hasClass=function(node,_1b4){return ((" "+byId(node)[_1b3]+" ").indexOf(" "+_1b4+" ")>=0);};var _1b5=/\s+/,a1=[""],_1b6=function(s){if(typeof s=="string"||s instanceof String){if(s.indexOf(" ")<0){a1[0]=s;return a1;}else{return s.split(_1b5);}}return s||"";};dojo.addClass=function(node,_1b7){node=byId(node);_1b7=_1b6(_1b7);var cls=node[_1b3],_1b8;cls=cls?" "+cls+" ":" ";_1b8=cls.length;for(var i=0,len=_1b7.length,c;i<len;++i){c=_1b7[i];if(c&&cls.indexOf(" "+c+" ")<0){cls+=c+" ";}}if(_1b8<cls.length){node[_1b3]=cls.substr(1,cls.length-2);}};dojo.removeClass=function(node,_1b9){node=byId(node);var cls;if(_1b9!==undefined){_1b9=_1b6(_1b9);cls=" "+node[_1b3]+" ";for(var i=0,len=_1b9.length;i<len;++i){cls=cls.replace(" "+_1b9[i]+" "," ");}cls=d.trim(cls);}else{cls="";}if(node[_1b3]!=cls){node[_1b3]=cls;}};dojo.toggleClass=function(node,_1ba,_1bb){if(_1bb===undefined){_1bb=!d.hasClass(node,_1ba);}d[_1bb?"addClass":"removeClass"](node,_1ba);};})();}if(!dojo._hasResource["dojo._base.NodeList"]){dojo._hasResource["dojo._base.NodeList"]=true;dojo.provide("dojo._base.NodeList");(function(){var d=dojo;var ap=Array.prototype,aps=ap.slice,apc=ap.concat;var tnl=function(a,_1bc,_1bd){if(!a.sort){a=aps.call(a,0);}var ctor=_1bd||this._NodeListCtor||d._NodeListCtor;a.constructor=ctor;dojo._mixin(a,ctor.prototype);a._NodeListCtor=ctor;return _1bc?a._stash(_1bc):a;};var _1be=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||d.global;return function(node){a[0]=node;return f.apply(o,a);};};var _1bf=function(f,o){return function(){this.forEach(_1be(f,arguments,o));return this;};};var _1c0=function(f,o){return function(){return this.map(_1be(f,arguments,o));};};var _1c1=function(f,o){return function(){return this.filter(_1be(f,arguments,o));};};var _1c2=function(f,g,o){return function(){var a=arguments,body=_1be(f,a,o);if(g.call(o||d.global,a)){return this.map(body);}this.forEach(body);return this;};};var _1c3=function(a){return a.length==1&&(typeof a[0]=="string");};var _1c4=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};dojo.NodeList=function(){return tnl(Array.apply(null,arguments));};d._NodeListCtor=d.NodeList;var nl=d.NodeList,nlp=nl.prototype;nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_1c0;nl._adaptAsForEach=_1bf;nl._adaptAsFilter=_1c1;nl._adaptWithCondition=_1c2;d.forEach(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name=="slice"?this:null);};});d.forEach(["indexOf","lastIndexOf","every","some"],function(name){var f=d[name];nlp[name]=function(){return f.apply(d,[this].concat(aps.call(arguments,0)));};});d.forEach(["attr","style"],function(name){nlp[name]=_1c2(d[name],_1c3);});d.forEach(["connect","addClass","removeClass","toggleClass","empty","removeAttr"],function(name){nlp[name]=_1bf(d[name]);});dojo.extend(dojo.NodeList,{_normalize:function(_1c5,_1c6){var _1c7=_1c5.parse===true?true:false;if(typeof _1c5.template=="string"){var _1c8=_1c5.templateFunc||(dojo.string&&dojo.string.substitute);_1c5=_1c8?_1c8(_1c5.template,_1c5):_1c5;}var type=(typeof _1c5);if(type=="string"||type=="number"){_1c5=dojo._toDom(_1c5,(_1c6&&_1c6.ownerDocument));if(_1c5.nodeType==11){_1c5=dojo._toArray(_1c5.childNodes);}else{_1c5=[_1c5];}}else{if(!dojo.isArrayLike(_1c5)){_1c5=[_1c5];}else{if(!dojo.isArray(_1c5)){_1c5=dojo._toArray(_1c5);}}}if(_1c7){_1c5._runParse=true;}return _1c5;},_cloneNode:function(node){return node.cloneNode(true);},_place:function(ary,_1c9,_1ca,_1cb){if(_1c9.nodeType!=1&&_1ca=="only"){return;}var _1cc=_1c9,_1cd;var _1ce=ary.length;for(var i=_1ce-1;i>=0;i--){var node=(_1cb?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_1cd){_1cd=_1cc.ownerDocument.createElement("div");}_1cd.appendChild(node);dojo.parser.parse(_1cd);node=_1cd.firstChild;while(_1cd.firstChild){_1cd.removeChild(_1cd.firstChild);}}if(i==_1ce-1){dojo.place(node,_1cc,_1ca);}else{_1cc.parentNode.insertBefore(node,_1cc);}_1cc=node;}},_stash:function(_1cf){this._parent=_1cf;return this;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor();}},concat:function(item){var t=d.isArray(this)?this:aps.call(this,0),m=d.map(arguments,function(a){return a&&!d.isArray(a)&&(typeof NodeList!="undefined"&&a.constructor===NodeList||a.constructor===this._NodeListCtor)?aps.call(a,0):a;});return this._wrap(apc.apply(t,m),this);},map:function(func,obj){return this._wrap(d.map(this,func,obj),this);},forEach:function(_1d0,_1d1){d.forEach(this,_1d0,_1d1);return this;},coords:_1c0(d.coords),position:_1c0(d.position),place:function(_1d2,_1d3){var item=d.query(_1d2)[0];return this.forEach(function(node){d.place(node,item,_1d3);});},orphan:function(_1d4){return (_1d4?d._filterQueryResult(this,_1d4):this).forEach(_1c4);},adopt:function(_1d5,_1d6){return d.query(_1d5).place(this[0],_1d6)._stash(this);},query:function(_1d7){if(!_1d7){return this;}var ret=this.map(function(node){return d.query(_1d7,node).filter(function(_1d8){return _1d8!==undefined;});});return this._wrap(apc.apply([],ret),this);},filter:function(_1d9){var a=arguments,_1da=this,_1db=0;if(typeof _1d9=="string"){_1da=d._filterQueryResult(this,a[0]);if(a.length==1){return _1da._stash(this);}_1db=1;}return this._wrap(d.filter(_1da,a[_1db],a[_1db+1]),this);},addContent:function(_1dc,_1dd){_1dc=this._normalize(_1dc,this[0]);for(var i=0,node;node=this[i];i++){this._place(_1dc,node,_1dd,i>0);}return this;},instantiate:function(_1de,_1df){var c=d.isFunction(_1de)?_1de:d.getObject(_1de);_1df=_1df||{};return this.forEach(function(node){new c(_1df,node);});},at:function(){var t=new this._NodeListCtor();d.forEach(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});nl.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];d.forEach(nl.events,function(evt){var _1e0="on"+evt;nlp[_1e0]=function(a,b){return this.connect(_1e0,a,b);};});})();}if(!dojo._hasResource["dojo._base.query"]){dojo._hasResource["dojo._base.query"]=true;if(typeof dojo!="undefined"){dojo.provide("dojo._base.query");}(function(d){var trim=d.trim;var each=d.forEach;var qlc=d._NodeListCtor=d.NodeList;var _1e1=function(){return d.doc;};var _1e2=((d.isWebKit||d.isMozilla)&&((_1e1().compatMode)=="BackCompat"));var _1e3=!!_1e1().firstChild["children"]?"children":"childNodes";var _1e4=">~+";var _1e5=false;var _1e6=function(){return true;};var _1e7=function(_1e8){if(_1e4.indexOf(_1e8.slice(-1))>=0){_1e8+=" * ";}else{_1e8+=" ";}var ts=function(s,e){return trim(_1e8.slice(s,e));};var _1e9=[];var _1ea=-1,_1eb=-1,_1ec=-1,_1ed=-1,_1ee=-1,inId=-1,_1ef=-1,lc="",cc="",_1f0;var x=0,ql=_1e8.length,_1f1=null,_1f2=null;var _1f3=function(){if(_1ef>=0){var tv=(_1ef==x)?null:ts(_1ef,x);_1f1[(_1e4.indexOf(tv)<0)?"tag":"oper"]=tv;_1ef=-1;}};var _1f4=function(){if(inId>=0){_1f1.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _1f5=function(){if(_1ee>=0){_1f1.classes.push(ts(_1ee+1,x).replace(/\\/g,""));_1ee=-1;}};var _1f6=function(){_1f4();_1f3();_1f5();};var _1f7=function(){_1f6();if(_1ed>=0){_1f1.pseudos.push({name:ts(_1ed+1,x)});}_1f1.loops=(_1f1.pseudos.length||_1f1.attrs.length||_1f1.classes.length);_1f1.oquery=_1f1.query=ts(_1f0,x);_1f1.otag=_1f1.tag=(_1f1["oper"])?null:(_1f1.tag||"*");if(_1f1.tag){_1f1.tag=_1f1.tag.toUpperCase();}if(_1e9.length&&(_1e9[_1e9.length-1].oper)){_1f1.infixOper=_1e9.pop();_1f1.query=_1f1.infixOper.query+" "+_1f1.query;}_1e9.push(_1f1);_1f1=null;};for(;lc=cc,cc=_1e8.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_1f1){_1f0=x;_1f1={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return (_1e5)?this.otag:this.tag;}};_1ef=x;}if(_1ea>=0){if(cc=="]"){if(!_1f2.attr){_1f2.attr=ts(_1ea+1,x);}else{_1f2.matchFor=ts((_1ec||_1ea+1),x);}var cmf=_1f2.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_1f2.matchFor=cmf.slice(1,-1);}}_1f1.attrs.push(_1f2);_1f2=null;_1ea=_1ec=-1;}else{if(cc=="="){var _1f8=("|~^$*".indexOf(lc)>=0)?lc:"";_1f2.type=_1f8+cc;_1f2.attr=ts(_1ea+1,x-_1f8.length);_1ec=x+1;}}}else{if(_1eb>=0){if(cc==")"){if(_1ed>=0){_1f2.value=ts(_1eb+1,x);}_1ed=_1eb=-1;}}else{if(cc=="#"){_1f6();inId=x+1;}else{if(cc=="."){_1f6();_1ee=x;}else{if(cc==":"){_1f6();_1ed=x;}else{if(cc=="["){_1f6();_1ea=x;_1f2={};}else{if(cc=="("){if(_1ed>=0){_1f2={name:ts(_1ed+1,x),value:null};_1f1.pseudos.push(_1f2);}_1eb=x;}else{if((cc==" ")&&(lc!=cc)){_1f7();}}}}}}}}}return _1e9;};var _1f9=function(_1fa,_1fb){if(!_1fa){return _1fb;}if(!_1fb){return _1fa;}return function(){return _1fa.apply(window,arguments)&&_1fb.apply(window,arguments);};};var _1fc=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _1fd=function(n){return (1==n.nodeType);};var _1fe="";var _1ff=function(elem,attr){if(!elem){return _1fe;}if(attr=="class"){return elem.className||_1fe;}if(attr=="for"){return elem.htmlFor||_1fe;}if(attr=="style"){return elem.style.cssText||_1fe;}return (_1e5?elem.getAttribute(attr):elem.getAttribute(attr,2))||_1fe;};var _200={"*=":function(attr,_201){return function(elem){return (_1ff(elem,attr).indexOf(_201)>=0);};},"^=":function(attr,_202){return function(elem){return (_1ff(elem,attr).indexOf(_202)==0);};},"$=":function(attr,_203){var tval=" "+_203;return function(elem){var ea=" "+_1ff(elem,attr);return (ea.lastIndexOf(_203)==(ea.length-_203.length));};},"~=":function(attr,_204){var tval=" "+_204+" ";return function(elem){var ea=" "+_1ff(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_205){var _206=" "+_205+"-";return function(elem){var ea=" "+_1ff(elem,attr);return ((ea==_205)||(ea.indexOf(_206)==0));};},"=":function(attr,_207){return function(elem){return (_1ff(elem,attr)==_207);};}};var _208=(typeof _1e1().firstChild.nextElementSibling=="undefined");var _209=!_208?"nextElementSibling":"nextSibling";var _20a=!_208?"previousElementSibling":"previousSibling";var _20b=(_208?_1fd:_1e6);var _20c=function(node){while(node=node[_20a]){if(_20b(node)){return false;}}return true;};var _20d=function(node){while(node=node[_209]){if(_20b(node)){return false;}}return true;};var _20e=function(node){var root=node.parentNode;var i=0,tret=root[_1e3],ci=(node["_i"]||-1),cl=(root["_l"]||-1);if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}root["_l"]=l;ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_209]){if(_20b(te)){te["_i"]=++i;if(node===te){ci=i;}}}return ci;};var _20f=function(elem){return !((_20e(elem))%2);};var _210=function(elem){return ((_20e(elem))%2);};var _211={"checked":function(name,_212){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"first-child":function(){return _20c;},"last-child":function(){return _20d;},"only-child":function(name,_213){return function(node){if(!_20c(node)){return false;}if(!_20d(node)){return false;}return true;};},"empty":function(name,_214){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_215){var cz=_215.charAt(0);if(cz=="\""||cz=="'"){_215=_215.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_215)>=0);};},"not":function(name,_216){var p=_1e7(_216)[0];var _217={el:1};if(p.tag!="*"){_217.tag=1;}if(!p.classes.length){_217.classes=1;}var ntf=_218(p,_217);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_219){var pi=parseInt;if(_219=="odd"){return _210;}else{if(_219=="even"){return _20f;}}if(_219.indexOf("n")!=-1){var _21a=_219.split("n",2);var pred=_21a[0]?((_21a[0]=="-")?-1:pi(_21a[0])):1;var idx=_21a[1]?pi(_21a[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_20e(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_219=idx;}}var _21b=pi(_219);return function(elem){return (_20e(elem)==_21b);};}};var _21c=(d.isIE)?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_1e5?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _218=function(_21d,_21e){if(!_21d){return _1e6;}_21e=_21e||{};var ff=null;if(!("el" in _21e)){ff=_1f9(ff,_1fd);}if(!("tag" in _21e)){if(_21d.tag!="*"){ff=_1f9(ff,function(elem){return (elem&&(elem.tagName==_21d.getTag()));});}}if(!("classes" in _21e)){each(_21d.classes,function(_21f,idx,arr){var re=new RegExp("(?:^|\\s)"+_21f+"(?:\\s|$)");ff=_1f9(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _21e)){each(_21d.pseudos,function(_220){var pn=_220.name;if(_211[pn]){ff=_1f9(ff,_211[pn](pn,_220.value));}});}if(!("attrs" in _21e)){each(_21d.attrs,function(attr){var _221;var a=attr.attr;if(attr.type&&_200[attr.type]){_221=_200[attr.type](a,attr.matchFor);}else{if(a.length){_221=_21c(a);}}if(_221){ff=_1f9(ff,_221);}});}if(!("id" in _21e)){if(_21d.id){ff=_1f9(ff,function(elem){return (!!elem&&(elem.id==_21d.id));});}}if(!ff){if(!("default" in _21e)){ff=_1e6;}}return ff;};var _222=function(_223){return function(node,ret,bag){while(node=node[_209]){if(_208&&(!_1fd(node))){continue;}if((!bag||_224(node,bag))&&_223(node)){ret.push(node);}break;}return ret;};};var _225=function(_226){return function(root,ret,bag){var te=root[_209];while(te){if(_20b(te)){if(bag&&!_224(te,bag)){break;}if(_226(te)){ret.push(te);}}te=te[_209];}return ret;};};var _227=function(_228){_228=_228||_1e6;return function(root,ret,bag){var te,x=0,tret=root[_1e3];while(te=tret[x++]){if(_20b(te)&&(!bag||_224(te,bag))&&(_228(te,x))){ret.push(te);}}return ret;};};var _229=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _22a={};var _22b=function(_22c){var _22d=_22a[_22c.query];if(_22d){return _22d;}var io=_22c.infixOper;var oper=(io?io.oper:"");var _22e=_218(_22c,{el:1});var qt=_22c.tag;var _22f=("*"==qt);var ecs=_1e1()["getElementsByClassName"];if(!oper){if(_22c.id){_22e=(!_22c.loops&&_22f)?_1e6:_218(_22c,{el:1,id:1});_22d=function(root,arr){var te=d.byId(_22c.id,(root.ownerDocument||root));if(!te||!_22e(te)){return;}if(9==root.nodeType){return _1fc(te,arr);}else{if(_229(te,root)){return _1fc(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_22c.classes.length&&!_1e2){_22e=_218(_22c,{el:1,classes:1,id:1});var _230=_22c.classes.join(" ");_22d=function(root,arr,bag){var ret=_1fc(0,arr),te,x=0;var tret=root.getElementsByClassName(_230);while((te=tret[x++])){if(_22e(te,root)&&_224(te,bag)){ret.push(te);}}return ret;};}else{if(!_22f&&!_22c.loops){_22d=function(root,arr,bag){var ret=_1fc(0,arr),te,x=0;var tret=root.getElementsByTagName(_22c.getTag());while((te=tret[x++])){if(_224(te,bag)){ret.push(te);}}return ret;};}else{_22e=_218(_22c,{el:1,tag:1,id:1});_22d=function(root,arr,bag){var ret=_1fc(0,arr),te,x=0;var tret=root.getElementsByTagName(_22c.getTag());while((te=tret[x++])){if(_22e(te,root)&&_224(te,bag)){ret.push(te);}}return ret;};}}}}else{var _231={el:1};if(_22f){_231.tag=1;}_22e=_218(_22c,_231);if("+"==oper){_22d=_222(_22e);}else{if("~"==oper){_22d=_225(_22e);}else{if(">"==oper){_22d=_227(_22e);}}}}return _22a[_22c.query]=_22d;};var _232=function(root,_233){var _234=_1fc(root),qp,x,te,qpl=_233.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_233[i];x=_234.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_22b(qp);for(var j=0;(te=_234[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_234=ret;}return ret;};var _235={},_236={};var _237=function(_238){var _239=_1e7(trim(_238));if(_239.length==1){var tef=_22b(_239[0]);return function(root){var r=tef(root,new qlc());if(r){r.nozip=true;}return r;};}return function(root){return _232(root,_239);};};var nua=navigator.userAgent;var wk="WebKit/";var _23a=(d.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528));var _23b=d.isIE?"commentStrip":"nozip";var qsa="querySelectorAll";var _23c=(!!_1e1()[qsa]&&(!d.isSafari||(d.isSafari>3.1)||_23a));var _23d=/n\+\d|([^ ])?([>~+])([^ =])?/g;var _23e=function(_23f,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_23f;};var _240=function(_241,_242){_241=_241.replace(_23d,_23e);if(_23c){var _243=_236[_241];if(_243&&!_242){return _243;}}var _244=_235[_241];if(_244){return _244;}var qcz=_241.charAt(0);var _245=(-1==_241.indexOf(" "));if((_241.indexOf("#")>=0)&&(_245)){_242=true;}var _246=(_23c&&(!_242)&&(_1e4.indexOf(qcz)==-1)&&(!d.isIE||(_241.indexOf(":")==-1))&&(!(_1e2&&(_241.indexOf(".")>=0)))&&(_241.indexOf(":contains")==-1)&&(_241.indexOf(":checked")==-1)&&(_241.indexOf("|=")==-1));if(_246){var tq=(_1e4.indexOf(_241.charAt(_241.length-1))>=0)?(_241+" *"):_241;return _236[_241]=function(root){try{if(!((9==root.nodeType)||_245)){throw "";}var r=root[qsa](tq);r[_23b]=true;return r;}catch(e){return _240(_241,true)(root);}};}else{var _247=_241.split(/\s*,\s*/);return _235[_241]=((_247.length<2)?_237(_241):function(root){var _248=0,ret=[],tp;while((tp=_247[_248++])){ret=ret.concat(_237(tp)(root));}return ret;});}};var _249=0;var _24a=d.isIE?function(node){if(_1e5){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_249)||_249);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_249));};var _224=function(node,bag){if(!bag){return 1;}var id=_24a(node);if(!bag[id]){return bag[id]=1;}return 0;};var _24b="_zipIdx";var _24c=function(arr){if(arr&&arr.nozip){return (qlc._wrap)?qlc._wrap(arr):arr;}var ret=new qlc();if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_249++;if(d.isIE&&_1e5){var _24d=_249+"";arr[0].setAttribute(_24b,_24d);for(var x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_24b)!=_24d){ret.push(te);}te.setAttribute(_24b,_24d);}}else{if(d.isIE&&arr.commentStrip){try{for(var x=1,te;te=arr[x];x++){if(_1fd(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_24b]=_249;}for(var x=1,te;te=arr[x];x++){if(arr[x][_24b]!=_249){ret.push(te);}te[_24b]=_249;}}}return ret;};d.query=function(_24e,root){qlc=d._NodeListCtor;if(!_24e){return new qlc();}if(_24e.constructor==qlc){return _24e;}if(typeof _24e!="string"){return new qlc(_24e);}if(typeof root=="string"){root=d.byId(root);if(!root){return new qlc();}}root=root||_1e1();var od=root.ownerDocument||root.documentElement;_1e5=(root.contentType&&root.contentType=="application/xml")||(d.isOpera&&(root.doctype||od.toString()=="[object XMLDocument]"))||(!!od)&&(d.isIE?od.xml:(root.xmlVersion||od.xmlVersion));var r=_240(_24e)(root);if(r&&r.nozip&&!qlc._wrap){return r;}return _24c(r);};d.query.pseudos=_211;d._filterQueryResult=function(_24f,_250){var _251=new d._NodeListCtor();var _252=_218(_1e7(_250)[0]);for(var x=0,te;te=_24f[x];x++){if(_252(te)){_251.push(te);}}return _251;};})(this["queryPortability"]||this["acme"]||dojo);}if(!dojo._hasResource["dojo._base.xhr"]){dojo._hasResource["dojo._base.xhr"]=true;dojo.provide("dojo._base.xhr");(function(){var _253=dojo,cfg=_253.config;function _254(obj,name,_255){if(_255===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_255];}else{if(_253.isArray(val)){val.push(_255);}else{obj[name]=_255;}}};dojo.fieldToObject=function(_256){var ret=null;var item=_253.byId(_256);if(item){var _257=item.name;var type=(item.type||"").toLowerCase();if(_257&&type&&!item.disabled){if(type=="radio"||type=="checkbox"){if(item.checked){ret=item.value;}}else{if(item.multiple){ret=[];_253.query("option",item).forEach(function(opt){if(opt.selected){ret.push(opt.value);}});}else{ret=item.value;}}}}return ret;};dojo.formToObject=function(_258){var ret={};var _259="file|submit|image|reset|button|";_253.forEach(dojo.byId(_258).elements,function(item){var _25a=item.name;var type=(item.type||"").toLowerCase();if(_25a&&type&&_259.indexOf(type)==-1&&!item.disabled){_254(ret,_25a,_253.fieldToObject(item));if(type=="image"){ret[_25a+".x"]=ret[_25a+".y"]=ret[_25a].x=ret[_25a].y=0;}}});return ret;};dojo.objectToQuery=function(map){var enc=encodeURIComponent;var _25b=[];var _25c={};for(var name in map){var _25d=map[name];if(_25d!=_25c[name]){var _25e=enc(name)+"=";if(_253.isArray(_25d)){for(var i=0;i<_25d.length;i++){_25b.push(_25e+enc(_25d[i]));}}else{_25b.push(_25e+enc(_25d));}}}return _25b.join("&");};dojo.formToQuery=function(_25f){return _253.objectToQuery(_253.formToObject(_25f));};dojo.formToJson=function(_260,_261){return _253.toJson(_253.formToObject(_260),_261);};dojo.queryToObject=function(str){var ret={};var qp=str.split("&");var dec=decodeURIComponent;_253.forEach(qp,function(item){if(item.length){var _262=item.split("=");var name=dec(_262.shift());var val=dec(_262.join("="));if(typeof ret[name]=="string"){ret[name]=[ret[name]];}if(_253.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}});return ret;};dojo._blockAsync=false;var _263=_253._contentHandlers=dojo.contentHandlers={text:function(xhr){return xhr.responseText;},json:function(xhr){return _253.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!dojo.config.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _264=xhr.responseText;var _265=_264.indexOf("/*");var _266=_264.lastIndexOf("*/");if(_265==-1||_266==-1){throw new Error("JSON was not comment filtered");}return _253.fromJson(_264.substring(_265+2,_266));},javascript:function(xhr){return _253.eval(xhr.responseText);},xml:function(xhr){var _267=xhr.responseXML;if(_253.isIE&&(!_267||!_267.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_253.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_267=dom;}catch(e){return false;}return true;});}return _267;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _263["json-comment-filtered"](xhr);}else{return _263["json"](xhr);}}};dojo._ioSetArgs=function(args,_268,_269,_26a){var _26b={args:args,url:args.url};var _26c=null;if(args.form){var form=_253.byId(args.form);var _26d=form.getAttributeNode("action");_26b.url=_26b.url||(_26d?_26d.value:null);_26c=_253.formToObject(form);}var _26e=[{}];if(_26c){_26e.push(_26c);}if(args.content){_26e.push(args.content);}if(args.preventCache){_26e.push({"dojo.preventCache":new Date().valueOf()});}_26b.query=_253.objectToQuery(_253.mixin.apply(null,_26e));_26b.handleAs=args.handleAs||"text";var d=new _253.Deferred(_268);d.addCallbacks(_269,function(_26f){return _26a(_26f,d);});var ld=args.load;if(ld&&_253.isFunction(ld)){d.addCallback(function(_270){return ld.call(args,_270,_26b);});}var err=args.error;if(err&&_253.isFunction(err)){d.addErrback(function(_271){return err.call(args,_271,_26b);});}var _272=args.handle;if(_272&&_253.isFunction(_272)){d.addBoth(function(_273){return _272.call(args,_273,_26b);});}if(cfg.ioPublish&&_253.publish&&_26b.args.ioPublish!==false){d.addCallbacks(function(res){_253.publish("/dojo/io/load",[d,res]);return res;},function(res){_253.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){_253.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_26b;return d;};var _274=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _275=typeof xhr.abort;if(_275=="function"||_275=="object"||_275=="unknown"){xhr.abort();}var err=dfd.ioArgs.error;if(!err){err=new Error("xhr cancelled");err.dojoType="cancel";}return err;};var _276=function(dfd){var ret=_263[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _277=function(_278,dfd){if(!dfd.ioArgs.args.failOk){console.error(_278);}return _278;};var _279=null;var _27a=[];var _27b=0;var _27c=function(dfd){if(_27b<=0){_27b=0;if(cfg.ioPublish&&_253.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){_253.publish("/dojo/io/stop");}}};var _27d=function(){var now=(new Date()).getTime();if(!_253._blockAsync){for(var i=0,tif;i<_27a.length&&(tif=_27a[i]);i++){var dfd=tif.dfd;var func=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_27a.splice(i--,1);_27b-=1;}else{if(tif.ioCheck(dfd)){_27a.splice(i--,1);tif.resHandle(dfd);_27b-=1;}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_27a.splice(i--,1);var err=new Error("timeout exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();_27b-=1;}}}}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(e){dfd.errback(e);}}}}_27c(dfd);if(!_27a.length){clearInterval(_279);_279=null;return;}};dojo._ioCancelAll=function(){try{_253.forEach(_27a,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(_253.isIE){_253.addOnWindowUnload(_253._ioCancelAll);}_253._ioNotifyStart=function(dfd){if(cfg.ioPublish&&_253.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_27b){_253.publish("/dojo/io/start");}_27b+=1;_253.publish("/dojo/io/send",[dfd]);}};_253._ioWatch=function(dfd,_27e,_27f,_280){var args=dfd.ioArgs.args;if(args.timeout){dfd.startTime=(new Date()).getTime();}_27a.push({dfd:dfd,validCheck:_27e,ioCheck:_27f,resHandle:_280});if(!_279){_279=setInterval(_27d,50);}if(args.sync){_27d();}};var _281="application/x-www-form-urlencoded";var _282=function(dfd){return dfd.ioArgs.xhr.readyState;};var _283=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _284=function(dfd){var xhr=dfd.ioArgs.xhr;if(_253._isDocumentOk(xhr)){dfd.callback(dfd);}else{var err=new Error("Unable to load "+dfd.ioArgs.url+" status:"+xhr.status);err.status=xhr.status;err.responseText=xhr.responseText;dfd.errback(err);}};dojo._ioAddQueryToUrl=function(_285){if(_285.query.length){_285.url+=(_285.url.indexOf("?")==-1?"?":"&")+_285.query;_285.query=null;}};dojo.xhr=function(_286,args,_287){var dfd=_253._ioSetArgs(args,_274,_276,_277);var _288=dfd.ioArgs;var xhr=_288.xhr=_253._xhrObj(_288.args);if(!xhr){dfd.cancel();return dfd;}if("postData" in args){_288.query=args.postData;}else{if("putData" in args){_288.query=args.putData;}else{if("rawBody" in args){_288.query=args.rawBody;}else{if((arguments.length>2&&!_287)||"POST|PUT".indexOf(_286.toUpperCase())==-1){_253._ioAddQueryToUrl(_288);}}}}xhr.open(_286,_288.url,args.sync!==true,args.user||undefined,args.password||undefined);if(args.headers){for(var hdr in args.headers){if(hdr.toLowerCase()==="content-type"&&!args.contentType){args.contentType=args.headers[hdr];}else{if(args.headers[hdr]){xhr.setRequestHeader(hdr,args.headers[hdr]);}}}}xhr.setRequestHeader("Content-Type",args.contentType||_281);if(!args.headers||!("X-Requested-With" in args.headers)){xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");}_253._ioNotifyStart(dfd);if(dojo.config.debugAtAllCosts){xhr.send(_288.query);}else{try{xhr.send(_288.query);}catch(e){_288.error=e;dfd.cancel();}}_253._ioWatch(dfd,_282,_283,_284);xhr=null;return dfd;};dojo.xhrGet=function(args){return _253.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return _253.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return _253.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return _253.xhr("DELETE",args);};})();}if(!dojo._hasResource["dojo._base.fx"]){dojo._hasResource["dojo._base.fx"]=true;dojo.provide("dojo._base.fx");(function(){var d=dojo;var _289=d._mixin;dojo._Line=function(_28a,end){this.start=_28a;this.end=end;};dojo._Line.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};dojo.Animation=function(args){_289(this,args);if(d.isArray(this.curve)){this.curve=new d._Line(this.curve[0],this.curve[1]);}};d._Animation=d.Animation;d.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _28b=this._percent,_28c=this.easing;return _28c?_28c(_28b):_28b;},_fire:function(evt,args){var a=args||[];if(this[evt]){if(d.config.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_28d,_28e){var _28f=this;if(_28f._delayTimer){_28f._clearTimer();}if(_28e){_28f._stopTimer();_28f._active=_28f._paused=false;_28f._percent=0;}else{if(_28f._active&&!_28f._paused){return _28f;}}_28f._fire("beforeBegin",[_28f.node]);var de=_28d||_28f.delay,_290=dojo.hitch(_28f,"_play",_28e);if(de>0){_28f._delayTimer=setTimeout(_290,de);return _28f;}_290();return _28f;},_play:function(_291){var _292=this;if(_292._delayTimer){_292._clearTimer();}_292._startTime=new Date().valueOf();if(_292._paused){_292._startTime-=_292.duration*_292._percent;}_292._active=true;_292._paused=false;var _293=_292.curve.getValue(_292._getStep());if(!_292._percent){if(!_292._startRepeatCount){_292._startRepeatCount=_292.repeat;}_292._fire("onBegin",[_293]);}_292._fire("onPlay",[_293]);_292._cycle();return _292;},pause:function(){var _294=this;if(_294._delayTimer){_294._clearTimer();}_294._stopTimer();if(!_294._active){return _294;}_294._paused=true;_294._fire("onPause",[_294.curve.getValue(_294._getStep())]);return _294;},gotoPercent:function(_295,_296){var _297=this;_297._stopTimer();_297._active=_297._paused=true;_297._percent=_295;if(_296){_297.play();}return _297;},stop:function(_298){var _299=this;if(_299._delayTimer){_299._clearTimer();}if(!_299._timer){return _299;}_299._stopTimer();if(_298){_299._percent=1;}_299._fire("onStop",[_299.curve.getValue(_299._getStep())]);_299._active=_299._paused=false;return _299;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _29a=this;if(_29a._active){var curr=new Date().valueOf();var step=(curr-_29a._startTime)/(_29a.duration);if(step>=1){step=1;}_29a._percent=step;if(_29a.easing){step=_29a.easing(step);}_29a._fire("onAnimate",[_29a.curve.getValue(step)]);if(_29a._percent<1){_29a._startTimer();}else{_29a._active=false;if(_29a.repeat>0){_29a.repeat--;_29a.play(null,true);}else{if(_29a.repeat==-1){_29a.play(null,true);}else{if(_29a._startRepeatCount){_29a.repeat=_29a._startRepeatCount;_29a._startRepeatCount=0;}}}_29a._percent=0;_29a._fire("onEnd",[_29a.node]);!_29a.repeat&&_29a._stopTimer();}}return _29a;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_29b=null,_29c={run:function(){}};d.extend(d.Animation,{_startTimer:function(){if(!this._timer){this._timer=d.connect(_29c,"run",this,"_cycle");ctr++;}if(!_29b){_29b=setInterval(d.hitch(_29c,"run"),this.rate);}},_stopTimer:function(){if(this._timer){d.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_29b);_29b=null;ctr=0;}}});var _29d=d.isIE?function(node){var ns=node.style;if(!ns.width.length&&d.style(node,"width")=="auto"){ns.width="auto";}}:function(){};dojo._fade=function(args){args.node=d.byId(args.node);var _29e=_289({properties:{}},args),_29f=(_29e.properties.opacity={});_29f.start=!("start" in _29e)?function(){return +d.style(_29e.node,"opacity")||0;}:_29e.start;_29f.end=_29e.end;var anim=d.animateProperty(_29e);d.connect(anim,"beforeBegin",d.partial(_29d,_29e.node));return anim;};dojo.fadeIn=function(args){return d._fade(_289({end:1},args));};dojo.fadeOut=function(args){return d._fade(_289({end:0},args));};dojo._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _2a0=function(_2a1){this._properties=_2a1;for(var p in _2a1){var prop=_2a1[p];if(prop.start instanceof d.Color){prop.tempColor=new d.Color();}}};_2a0.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_2a2=prop.start;if(_2a2 instanceof d.Color){ret[p]=d.blendColors(_2a2,prop.end,r,prop.tempColor).toCss();}else{if(!d.isArray(_2a2)){ret[p]=((prop.end-_2a2)*r)+_2a2+(p!="opacity"?prop.units||"px":0);}}}return ret;};dojo.animateProperty=function(args){var n=args.node=d.byId(args.node);if(!args.easing){args.easing=d._defaultEasing;}var anim=new d.Animation(args);d.connect(anim,"beforeBegin",anim,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var prop=this.properties[p];if(d.isFunction(prop)){prop=prop(n);}prop=pm[p]=_289({},(d.isObject(prop)?prop:{end:prop}));if(d.isFunction(prop.start)){prop.start=prop.start(n);}if(d.isFunction(prop.end)){prop.end=prop.end(n);}var _2a3=(p.toLowerCase().indexOf("color")>=0);function _2a4(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=d.style(node,p);return (p=="opacity")?+v:(_2a3?v:parseFloat(v));};if(!("end" in prop)){prop.end=_2a4(n,p);}else{if(!("start" in prop)){prop.start=_2a4(n,p);}}if(_2a3){prop.start=new d.Color(prop.start);prop.end=new d.Color(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _2a0(pm);});d.connect(anim,"onAnimate",d.hitch(d,"style",anim.node));return anim;};dojo.anim=function(node,_2a5,_2a6,_2a7,_2a8,_2a9){return d.animateProperty({node:node,duration:_2a6||d.Animation.prototype.duration,properties:_2a5,easing:_2a7,onEnd:_2a8}).play(_2a9||0);};})();}if(!dojo._hasResource["dojo._base.browser"]){dojo._hasResource["dojo._base.browser"]=true;dojo.provide("dojo._base.browser");dojo.forEach(dojo.config.require,function(i){dojo["require"](i);});}if(dojo.isBrowser&&(document.readyState==="complete"||dojo.config.afterOnLoad)){window.setTimeout(dojo._loadInit,100);}})(); +(function(){var _1=null;if((_1||(typeof djConfig!="undefined"&&djConfig.scopeMap))&&(typeof window!="undefined")){var _2="",_3="",_4="",_5={},_6={};_1=_1||djConfig.scopeMap;for(var i=0;i<_1.length;i++){var _7=_1[i];_2+="var "+_7[0]+" = {}; "+_7[1]+" = "+_7[0]+";"+_7[1]+"._scopeName = '"+_7[1]+"';";_3+=(i==0?"":",")+_7[0];_4+=(i==0?"":",")+_7[1];_5[_7[0]]=_7[1];_6[_7[1]]=_7[0];}eval(_2+"dojo._scopeArgs = ["+_4+"];");dojo._scopePrefixArgs=_3;dojo._scopePrefix="(function("+_3+"){";dojo._scopeSuffix="})("+_4+")";dojo._scopeMap=_5;dojo._scopeMapRev=_6;}(function(){if(typeof this["loadFirebugConsole"]=="function"){this["loadFirebugConsole"]();}else{this.console=this.console||{};var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var i=0,tn;while((tn=cn[i++])){if(!console[tn]){(function(){var _8=tn+"";console[_8]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(_8+":");console["log"](a.join(" "));}:function(){};console[_8]._fake=true;})();}}}if(typeof dojo=="undefined"){dojo={_scopeName:"dojo",_scopePrefix:"",_scopePrefixArgs:"",_scopeSuffix:"",_scopeMap:{},_scopeMapRev:{}};}var d=dojo;if(typeof dijit=="undefined"){dijit={_scopeName:"dijit"};}if(typeof dojox=="undefined"){dojox={_scopeName:"dojox"};}if(!d._scopeArgs){d._scopeArgs=[dojo,dijit,dojox];}d.global=this;d.config={isDebug:false,debugAtAllCosts:false};var _9=typeof djConfig!="undefined"?djConfig:typeof dojoConfig!="undefined"?dojoConfig:null;if(_9){for(var c in _9){d.config[c]=_9[c];}}dojo.locale=d.config.locale;var _a="$Rev: 24595 $".match(/\d+/);dojo.version={major:1,minor:6,patch:1,flag:"",revision:_a?+_a[0]:NaN,toString:function(){with(d.version){return major+"."+minor+"."+patch+flag+" ("+revision+")";}}};if(typeof OpenAjax!="undefined"){OpenAjax.hub.registerLibrary(dojo._scopeName,"http://dojotoolkit.org",d.version.toString());}var _b,_c,_d={};for(var i in {toString:1}){_b=[];break;}dojo._extraNames=_b=_b||["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"];_c=_b.length;dojo._mixin=function(_e,_f){var _10,s,i;for(_10 in _f){s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&&(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}if(_c&&_f){for(i=0;i<_c;++i){_10=_b[i];s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&&(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}}return _e;};dojo.mixin=function(obj,_11){if(!obj){obj={};}for(var i=1,l=arguments.length;i<l;i++){d._mixin(obj,arguments[i]);}return obj;};dojo._getProp=function(_12,_13,_14){var obj=_14||d.global;for(var i=0,p;obj&&(p=_12[i]);i++){if(i==0&&d._scopeMap[p]){p=d._scopeMap[p];}obj=(p in obj?obj[p]:(_13?obj[p]={}:undefined));}return obj;};dojo.setObject=function(_15,_16,_17){var _18=_15.split("."),p=_18.pop(),obj=d._getProp(_18,true,_17);return obj&&p?(obj[p]=_16):undefined;};dojo.getObject=function(_19,_1a,_1b){return d._getProp(_19.split("."),_1a,_1b);};dojo.exists=function(_1c,obj){return d.getObject(_1c,false,obj)!==undefined;};dojo["eval"]=function(_1d){return d.global.eval?d.global.eval(_1d):eval(_1d);};d.deprecated=d.experimental=function(){};})();(function(){var d=dojo,_1e;d.mixin(d,{_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_1f){var mp=d._modulePrefixes;return !!(mp[_1f]&&mp[_1f].value);},_getModulePrefix:function(_20){var mp=d._modulePrefixes;if(d._moduleHasPrefix(_20)){return mp[_20].value;}return _20;},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false});dojo._loadPath=function(_21,_22,cb){var uri=((_21.charAt(0)=="/"||_21.match(/^\w+:/))?"":d.baseUrl)+_21;try{_1e=_22;return !_22?d._loadUri(uri,cb):d._loadUriAndCheck(uri,_22,cb);}catch(e){console.error(e);return false;}finally{_1e=null;}};dojo._loadUri=function(uri,cb){if(d._loadedUrls[uri]){return true;}d._inFlightCount++;var _23=d._getText(uri,true);if(_23){d._loadedUrls[uri]=true;d._loadedUrls.push(uri);if(cb){_23=/^define\(/.test(_23)?_23:"("+_23+")";}else{_23=d._scopePrefix+_23+d._scopeSuffix;}if(!d.isIE){_23+="\r\n//@ sourceURL="+uri;}var _24=d["eval"](_23);if(cb){cb(_24);}}if(--d._inFlightCount==0&&d._postLoad&&d._loaders.length){setTimeout(function(){if(d._inFlightCount==0){d._callLoaded();}},0);}return !!_23;};dojo._loadUriAndCheck=function(uri,_25,cb){var ok=false;try{ok=d._loadUri(uri,cb);}catch(e){console.error("failed loading "+uri+" with error: "+e);}return !!(ok&&d._loadedModules[_25]);};dojo.loaded=function(){d._loadNotifying=true;d._postLoad=true;var mll=d._loaders;d._loaders=[];for(var x=0;x<mll.length;x++){mll[x]();}d._loadNotifying=false;if(d._postLoad&&d._inFlightCount==0&&mll.length){d._callLoaded();}};dojo.unloaded=function(){var mll=d._unloaders;while(mll.length){(mll.pop())();}};d._onto=function(arr,obj,fn){if(!fn){arr.push(obj);}else{if(fn){var _26=(typeof fn=="string")?obj[fn]:fn;arr.push(function(){_26.call(obj);});}}};dojo.ready=dojo.addOnLoad=function(obj,_27){d._onto(d._loaders,obj,_27);if(d._postLoad&&d._inFlightCount==0&&!d._loadNotifying){d._callLoaded();}};var dca=d.config.addOnLoad;if(dca){d.addOnLoad[(dca instanceof Array?"apply":"call")](d,dca);}dojo._modulesLoaded=function(){if(d._postLoad){return;}if(d._inFlightCount>0){console.warn("files still in flight!");return;}d._callLoaded();};dojo._callLoaded=function(){if(typeof setTimeout=="object"||(d.config.useXDomain&&d.isOpera)){setTimeout(d.isAIR?function(){d.loaded();}:d._scopeName+".loaded();",0);}else{d.loaded();}};dojo._getModuleSymbols=function(_28){var _29=_28.split(".");for(var i=_29.length;i>0;i--){var _2a=_29.slice(0,i).join(".");if(i==1&&!d._moduleHasPrefix(_2a)){_29[0]="../"+_29[0];}else{var _2b=d._getModulePrefix(_2a);if(_2b!=_2a){_29.splice(0,i,_2b);break;}}}return _29;};dojo._global_omit_module_check=false;dojo.loadInit=function(_2c){_2c();};dojo._loadModule=dojo.require=function(_2d,_2e){_2e=d._global_omit_module_check||_2e;var _2f=d._loadedModules[_2d];if(_2f){return _2f;}var _30=d._getModuleSymbols(_2d).join("/")+".js";var _31=!_2e?_2d:null;var ok=d._loadPath(_30,_31);if(!ok&&!_2e){throw new Error("Could not load '"+_2d+"'; last tried '"+_30+"'");}if(!_2e&&!d._isXDomain){_2f=d._loadedModules[_2d];if(!_2f){throw new Error("symbol '"+_2d+"' is not defined after loading '"+_30+"'");}}return _2f;};dojo.provide=function(_32){_32=_32+"";return (d._loadedModules[_32]=d.getObject(_32,true));};dojo.platformRequire=function(_33){var _34=_33.common||[];var _35=_34.concat(_33[d._name]||_33["default"]||[]);for(var x=0;x<_35.length;x++){var _36=_35[x];if(_36.constructor==Array){d._loadModule.apply(d,_36);}else{d._loadModule(_36);}}};dojo.requireIf=function(_37,_38){if(_37===true){var _39=[];for(var i=1;i<arguments.length;i++){_39.push(arguments[i]);}d.require.apply(d,_39);}};dojo.requireAfterIf=d.requireIf;dojo.registerModulePath=function(_3a,_3b){d._modulePrefixes[_3a]={name:_3a,value:_3b};};dojo.requireLocalization=function(_3c,_3d,_3e,_3f){d.require("dojo.i18n");d.i18n._requireLocalization.apply(d.hostenv,arguments);};var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");dojo._Url=function(){var n=null,_40=arguments,uri=[_40[0]];for(var i=1;i<_40.length;i++){if(!_40[i]){continue;}var _41=new d._Url(_40[i]+""),_42=new d._Url(uri[0]+"");if(_41.path==""&&!_41.scheme&&!_41.authority&&!_41.query){if(_41.fragment!=n){_42.fragment=_41.fragment;}_41=_42;}else{if(!_41.scheme){_41.scheme=_42.scheme;if(!_41.authority){_41.authority=_42.authority;if(_41.path.charAt(0)!="/"){var _43=_42.path.substring(0,_42.path.lastIndexOf("/")+1)+_41.path;var _44=_43.split("/");for(var j=0;j<_44.length;j++){if(_44[j]=="."){if(j==_44.length-1){_44[j]="";}else{_44.splice(j,1);j--;}}else{if(j>0&&!(j==1&&_44[0]=="")&&_44[j]==".."&&_44[j-1]!=".."){if(j==(_44.length-1)){_44.splice(j,1);_44[j-1]="";}else{_44.splice(j-1,2);j-=2;}}}}_41.path=_44.join("/");}}}}uri=[];if(_41.scheme){uri.push(_41.scheme,":");}if(_41.authority){uri.push("//",_41.authority);}uri.push(_41.path);if(_41.query){uri.push("?",_41.query);}if(_41.fragment){uri.push("#",_41.fragment);}}this.uri=uri.join("");var r=this.uri.match(ore);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n;}};dojo._Url.prototype.toString=function(){return this.uri;};dojo.moduleUrl=function(_45,url){var loc=d._getModuleSymbols(_45).join("/");if(!loc){return null;}if(loc.lastIndexOf("/")!=loc.length-1){loc+="/";}var _46=loc.indexOf(":");if(loc.charAt(0)!="/"&&(_46==-1||_46>loc.indexOf("/"))){loc=d.baseUrl+loc;}return new d._Url(loc,url);};})();if(typeof window!="undefined"){dojo.isBrowser=true;dojo._name="browser";(function(){var d=dojo;if(document&&document.getElementsByTagName){var _47=document.getElementsByTagName("script");var _48=/dojo(\.xd)?\.js(\W|$)/i;for(var i=0;i<_47.length;i++){var src=_47[i].getAttribute("src");if(!src){continue;}var m=src.match(_48);if(m){if(!d.config.baseUrl){d.config.baseUrl=src.substring(0,m.index);}var cfg=(_47[i].getAttribute("djConfig")||_47[i].getAttribute("data-dojo-config"));if(cfg){var _49=eval("({ "+cfg+" })");for(var x in _49){dojo.config[x]=_49[x];}}break;}}}d.baseUrl=d.config.baseUrl;var n=navigator;var dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);if(dua.indexOf("Opera")>=0){d.isOpera=tv;}if(dua.indexOf("AdobeAIR")>=0){d.isAIR=1;}d.isKhtml=(dav.indexOf("Konqueror")>=0)?tv:0;d.isWebKit=parseFloat(dua.split("WebKit/")[1])||undefined;d.isChrome=parseFloat(dua.split("Chrome/")[1])||undefined;d.isMac=dav.indexOf("Macintosh")>=0;var _4a=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_4a&&!dojo.isChrome){d.isSafari=parseFloat(dav.split("Version/")[1]);if(!d.isSafari||parseFloat(dav.substr(_4a+7))<=419.3){d.isSafari=2;}}if(dua.indexOf("Gecko")>=0&&!d.isKhtml&&!d.isWebKit){d.isMozilla=d.isMoz=tv;}if(d.isMoz){d.isFF=parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined;}if(document.all&&!d.isOpera){d.isIE=parseFloat(dav.split("MSIE ")[1])||undefined;var _4b=document.documentMode;if(_4b&&_4b!=5&&Math.floor(d.isIE)!=_4b){d.isIE=_4b;}}if(dojo.isIE&&window.location.protocol==="file:"){dojo.config.ieForceActiveXXhr=true;}d.isQuirks=document.compatMode=="BackCompat";d.locale=dojo.config.locale||(d.isIE?n.userLanguage:n.language).toLowerCase();d._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];d._xhrObj=function(){var _4c,_4d;if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){try{_4c=new XMLHttpRequest();}catch(e){}}if(!_4c){for(var i=0;i<3;++i){var _4e=d._XMLHTTP_PROGIDS[i];try{_4c=new ActiveXObject(_4e);}catch(e){_4d=e;}if(_4c){d._XMLHTTP_PROGIDS=[_4e];break;}}}if(!_4c){throw new Error("XMLHTTP not available: "+_4d);}return _4c;};d._isDocumentOk=function(_4f){var _50=_4f.status||0,lp=location.protocol;return (_50>=200&&_50<300)||_50==304||_50==1223||(!_50&&(lp=="file:"||lp=="chrome:"||lp=="chrome-extension:"||lp=="app:"));};var _51=window.location+"";var _52=document.getElementsByTagName("base");var _53=(_52&&_52.length>0);d._getText=function(uri,_54){var _55=d._xhrObj();if(!_53&&dojo._Url){uri=(new dojo._Url(_51,uri)).toString();}if(d.config.cacheBust){uri+="";uri+=(uri.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,"");}_55.open("GET",uri,false);try{_55.send(null);if(!d._isDocumentOk(_55)){var err=Error("Unable to load "+uri+" status:"+_55.status);err.status=_55.status;err.responseText=_55.responseText;throw err;}}catch(e){if(_54){return null;}throw e;}return _55.responseText;};var _56=window;var _57=function(_58,fp){var _59=_56.attachEvent||_56.addEventListener;_58=_56.attachEvent?_58:_58.substring(2);_59(_58,function(){fp.apply(_56,arguments);},false);};d._windowUnloaders=[];d.windowUnloaded=function(){var mll=d._windowUnloaders;while(mll.length){(mll.pop())();}d=null;};var _5a=0;d.addOnWindowUnload=function(obj,_5b){d._onto(d._windowUnloaders,obj,_5b);if(!_5a){_5a=1;_57("onunload",d.windowUnloaded);}};var _5c=0;d.addOnUnload=function(obj,_5d){d._onto(d._unloaders,obj,_5d);if(!_5c){_5c=1;_57("onbeforeunload",dojo.unloaded);}};})();dojo._initFired=false;dojo._loadInit=function(e){if(dojo._scrollIntervalId){clearInterval(dojo._scrollIntervalId);dojo._scrollIntervalId=0;}if(!dojo._initFired){dojo._initFired=true;if(!dojo.config.afterOnLoad&&window.detachEvent){window.detachEvent("onload",dojo._loadInit);}if(dojo._inFlightCount==0){dojo._modulesLoaded();}}};if(!dojo.config.afterOnLoad){if(document.addEventListener){document.addEventListener("DOMContentLoaded",dojo._loadInit,false);window.addEventListener("load",dojo._loadInit,false);}else{if(window.attachEvent){window.attachEvent("onload",dojo._loadInit);if(!dojo.config.skipIeDomLoaded&&self===self.top){dojo._scrollIntervalId=setInterval(function(){try{if(document.body){document.documentElement.doScroll("left");dojo._loadInit();}}catch(e){}},30);}}}}if(dojo.isIE){try{(function(){document.namespaces.add("v","urn:schemas-microsoft-com:vml");var _5e=["*","group","roundrect","oval","shape","rect","imagedata","path","textpath","text"],i=0,l=1,s=document.createStyleSheet();if(dojo.isIE>=8){i=1;l=_5e.length;}for(;i<l;++i){s.addRule("v\\:"+_5e[i],"behavior:url(#default#VML); display:inline-block");}})();}catch(e){}}}(function(){var mp=dojo.config["modulePaths"];if(mp){for(var _5f in mp){dojo.registerModulePath(_5f,mp[_5f]);}}})();if(dojo.config.isDebug){dojo.require("dojo._firebug.firebug");}if(dojo.config.debugAtAllCosts){dojo.require("dojo._base._loader.loader_debug");dojo.require("dojo.i18n");}if(!dojo._hasResource["dojo._base.lang"]){dojo._hasResource["dojo._base.lang"]=true;dojo.provide("dojo._base.lang");(function(){var d=dojo,_60=Object.prototype.toString;dojo.isString=function(it){return (typeof it=="string"||it instanceof String);};dojo.isArray=function(it){return it&&(it instanceof Array||typeof it=="array");};dojo.isFunction=function(it){return _60.call(it)==="[object Function]";};dojo.isObject=function(it){return it!==undefined&&(it===null||typeof it=="object"||d.isArray(it)||d.isFunction(it));};dojo.isArrayLike=function(it){return it&&it!==undefined&&!d.isString(it)&&!d.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(d.isArray(it)||isFinite(it.length));};dojo.isAlien=function(it){return it&&!d.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));};dojo.extend=function(_61,_62){for(var i=1,l=arguments.length;i<l;i++){d._mixin(_61.prototype,arguments[i]);}return _61;};dojo._hitchArgs=function(_63,_64){var pre=d._toArray(arguments,2);var _65=d.isString(_64);return function(){var _66=d._toArray(arguments);var f=_65?(_63||d.global)[_64]:_64;return f&&f.apply(_63||this,pre.concat(_66));};};dojo.hitch=function(_67,_68){if(arguments.length>2){return d._hitchArgs.apply(d,arguments);}if(!_68){_68=_67;_67=null;}if(d.isString(_68)){_67=_67||d.global;if(!_67[_68]){throw (["dojo.hitch: scope[\"",_68,"\"] is null (scope=\"",_67,"\")"].join(""));}return function(){return _67[_68].apply(_67,arguments||[]);};}return !_67?_68:function(){return _68.apply(_67,arguments||[]);};};dojo.delegate=dojo._delegate=(function(){function TMP(){};return function(obj,_69){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_69){d._mixin(tmp,_69);}return tmp;};})();var _6a=function(obj,_6b,_6c){return (_6c||[]).concat(Array.prototype.slice.call(obj,_6b||0));};var _6d=function(obj,_6e,_6f){var arr=_6f||[];for(var x=_6e||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};dojo._toArray=d.isIE?function(obj){return ((obj.item)?_6d:_6a).apply(this,arguments);}:_6a;dojo.partial=function(_70){var arr=[null];return d.hitch.apply(d,arr.concat(d._toArray(arguments)));};var _71=d._extraNames,_72=_71.length,_73={};dojo.clone=function(o){if(!o||typeof o!="object"||d.isFunction(o)){return o;}if(o.nodeType&&"cloneNode" in o){return o.cloneNode(true);}if(o instanceof Date){return new Date(o.getTime());}if(o instanceof RegExp){return new RegExp(o);}var r,i,l,s,_74;if(d.isArray(o)){r=[];for(i=0,l=o.length;i<l;++i){if(i in o){r.push(d.clone(o[i]));}}}else{r=o.constructor?new o.constructor():{};}for(_74 in o){s=o[_74];if(!(_74 in r)||(r[_74]!==s&&(!(_74 in _73)||_73[_74]!==s))){r[_74]=d.clone(s);}}if(_72){for(i=0;i<_72;++i){_74=_71[i];s=o[_74];if(!(_74 in r)||(r[_74]!==s&&(!(_74 in _73)||_73[_74]!==s))){r[_74]=s;}}}return r;};dojo.trim=String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};var _75=/\{([^\}]+)\}/g;dojo.replace=function(_76,map,_77){return _76.replace(_77||_75,d.isFunction(map)?map:function(_78,k){return d.getObject(k,false,map);});};})();}if(!dojo._hasResource["dojo._base.array"]){dojo._hasResource["dojo._base.array"]=true;dojo.provide("dojo._base.array");(function(){var _79=function(arr,obj,cb){return [(typeof arr=="string")?arr.split(""):arr,obj||dojo.global,(typeof cb=="string")?new Function("item","index","array",cb):cb];};var _7a=function(_7b,arr,_7c,_7d){var _7e=_79(arr,_7d,_7c);arr=_7e[0];for(var i=0,l=arr.length;i<l;++i){var _7f=!!_7e[2].call(_7e[1],arr[i],i,arr);if(_7b^_7f){return _7f;}}return _7b;};dojo.mixin(dojo,{indexOf:function(_80,_81,_82,_83){var _84=1,end=_80.length||0,i=0;if(_83){i=end-1;_84=end=-1;}if(_82!=undefined){i=_82;}if((_83&&i>end)||i<end){for(;i!=end;i+=_84){if(_80[i]==_81){return i;}}}return -1;},lastIndexOf:function(_85,_86,_87){return dojo.indexOf(_85,_86,_87,true);},forEach:function(arr,_88,_89){if(!arr||!arr.length){return;}var _8a=_79(arr,_89,_88);arr=_8a[0];for(var i=0,l=arr.length;i<l;++i){_8a[2].call(_8a[1],arr[i],i,arr);}},every:function(arr,_8b,_8c){return _7a(true,arr,_8b,_8c);},some:function(arr,_8d,_8e){return _7a(false,arr,_8d,_8e);},map:function(arr,_8f,_90){var _91=_79(arr,_90,_8f);arr=_91[0];var _92=(arguments[3]?(new arguments[3]()):[]);for(var i=0,l=arr.length;i<l;++i){_92.push(_91[2].call(_91[1],arr[i],i,arr));}return _92;},filter:function(arr,_93,_94){var _95=_79(arr,_94,_93);arr=_95[0];var _96=[];for(var i=0,l=arr.length;i<l;++i){if(_95[2].call(_95[1],arr[i],i,arr)){_96.push(arr[i]);}}return _96;}});})();}if(!dojo._hasResource["dojo._base.declare"]){dojo._hasResource["dojo._base.declare"]=true;dojo.provide("dojo._base.declare");(function(){var d=dojo,mix=d._mixin,op=Object.prototype,_97=op.toString,_98=new Function,_99=0,_9a="constructor";function err(msg,cls){throw new Error("declare"+(cls?" "+cls:"")+": "+msg);};function _9b(_9c,_9d){var _9e=[],_9f=[{cls:0,refs:[]}],_a0={},_a1=1,l=_9c.length,i=0,j,lin,_a2,top,_a3,rec,_a4,_a5;for(;i<l;++i){_a2=_9c[i];if(!_a2){err("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?",_9d);}else{if(_97.call(_a2)!="[object Function]"){err("mixin #"+i+" is not a callable constructor.",_9d);}}lin=_a2._meta?_a2._meta.bases:[_a2];top=0;for(j=lin.length-1;j>=0;--j){_a3=lin[j].prototype;if(!_a3.hasOwnProperty("declaredClass")){_a3.declaredClass="uniqName_"+(_99++);}_a4=_a3.declaredClass;if(!_a0.hasOwnProperty(_a4)){_a0[_a4]={count:0,refs:[],cls:lin[j]};++_a1;}rec=_a0[_a4];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_9f[0].refs.push(top);}while(_9f.length){top=_9f.pop();_9e.push(top.cls);--_a1;while(_a5=top.refs,_a5.length==1){top=_a5[0];if(!top||--top.count){top=0;break;}_9e.push(top.cls);--_a1;}if(top){for(i=0,l=_a5.length;i<l;++i){top=_a5[i];if(!--top.count){_9f.push(top);}}}}if(_a1){err("can't build consistent linearization",_9d);}_a2=_9c[0];_9e[0]=_a2?_a2._meta&&_a2===_9e[_9e.length-_a2._meta.bases.length]?_a2._meta.bases.length:1:0;return _9e;};function _a6(_a7,a,f){var _a8,_a9,_aa,_ab,_ac,_ad,_ae,opf,pos,_af=this._inherited=this._inherited||{};if(typeof _a7=="string"){_a8=_a7;_a7=a;a=f;}f=0;_ab=_a7.callee;_a8=_a8||_ab.nom;if(!_a8){err("can't deduce a name to call inherited()",this.declaredClass);}_ac=this.constructor._meta;_aa=_ac.bases;pos=_af.p;if(_a8!=_9a){if(_af.c!==_ab){pos=0;_ad=_aa[0];_ac=_ad._meta;if(_ac.hidden[_a8]!==_ab){_a9=_ac.chains;if(_a9&&typeof _a9[_a8]=="string"){err("calling chained method with inherited: "+_a8,this.declaredClass);}do{_ac=_ad._meta;_ae=_ad.prototype;if(_ac&&(_ae[_a8]===_ab&&_ae.hasOwnProperty(_a8)||_ac.hidden[_a8]===_ab)){break;}}while(_ad=_aa[++pos]);pos=_ad?pos:-1;}}_ad=_aa[++pos];if(_ad){_ae=_ad.prototype;if(_ad._meta&&_ae.hasOwnProperty(_a8)){f=_ae[_a8];}else{opf=op[_a8];do{_ae=_ad.prototype;f=_ae[_a8];if(f&&(_ad._meta?_ae.hasOwnProperty(_a8):f!==opf)){break;}}while(_ad=_aa[++pos]);}}f=_ad&&f||op[_a8];}else{if(_af.c!==_ab){pos=0;_ac=_aa[0]._meta;if(_ac&&_ac.ctor!==_ab){_a9=_ac.chains;if(!_a9||_a9.constructor!=="manual"){err("calling chained constructor with inherited",this.declaredClass);}while(_ad=_aa[++pos]){_ac=_ad._meta;if(_ac&&_ac.ctor===_ab){break;}}pos=_ad?pos:-1;}}while(_ad=_aa[++pos]){_ac=_ad._meta;f=_ac?_ac.ctor:_ad;if(f){break;}}f=_ad&&f;}_af.c=f;_af.p=pos;if(f){return a===true?f:f.apply(this,a||_a7);}};function _b0(_b1,_b2){if(typeof _b1=="string"){return this.inherited(_b1,_b2,true);}return this.inherited(_b1,true);};function _b3(cls){var _b4=this.constructor._meta.bases;for(var i=0,l=_b4.length;i<l;++i){if(_b4[i]===cls){return true;}}return this instanceof cls;};function _b5(_b6,_b7){var _b8,i=0,l=d._extraNames.length;for(_b8 in _b7){if(_b8!=_9a&&_b7.hasOwnProperty(_b8)){_b6[_b8]=_b7[_b8];}}for(;i<l;++i){_b8=d._extraNames[i];if(_b8!=_9a&&_b7.hasOwnProperty(_b8)){_b6[_b8]=_b7[_b8];}}};function _b9(_ba,_bb){var _bc,t,i=0,l=d._extraNames.length;for(_bc in _bb){t=_bb[_bc];if((t!==op[_bc]||!(_bc in op))&&_bc!=_9a){if(_97.call(t)=="[object Function]"){t.nom=_bc;}_ba[_bc]=t;}}for(;i<l;++i){_bc=d._extraNames[i];t=_bb[_bc];if((t!==op[_bc]||!(_bc in op))&&_bc!=_9a){if(_97.call(t)=="[object Function]"){t.nom=_bc;}_ba[_bc]=t;}}return _ba;};function _bd(_be){_b9(this.prototype,_be);return this;};function _bf(_c0,_c1){return function(){var a=arguments,_c2=a,a0=a[0],f,i,m,l=_c0.length,_c3;if(!(this instanceof a.callee)){return _c4(a);}if(_c1&&(a0&&a0.preamble||this.preamble)){_c3=new Array(_c0.length);_c3[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_c0[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_c3[i]=a;}}for(i=l-1;i>=0;--i){f=_c0[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_c3?_c3[i]:a);}}f=this.postscript;if(f){f.apply(this,_c2);}};};function _c5(_c6,_c7){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _c4(a);}if(_c7){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(_c6){_c6.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _c8(_c9){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _c4(a);}for(;f=_c9[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _ca(_cb,_cc,_cd){return function(){var b,m,f,i=0,_ce=1;if(_cd){i=_cc.length-1;_ce=-1;}for(;b=_cc[i];i+=_ce){m=b._meta;f=(m?m.hidden:b.prototype)[_cb];if(f){f.apply(this,arguments);}}};};function _cf(_d0){_98.prototype=_d0.prototype;var t=new _98;_98.prototype=null;return t;};function _c4(_d1){var _d2=_d1.callee,t=_cf(_d2);_d2.apply(t,_d1);return t;};d.declare=function(_d3,_d4,_d5){if(typeof _d3!="string"){_d5=_d4;_d4=_d3;_d3="";}_d5=_d5||{};var _d6,i,t,_d7,_d8,_d9,_da,_db=1,_dc=_d4;if(_97.call(_d4)=="[object Array]"){_d9=_9b(_d4,_d3);t=_d9[0];_db=_d9.length-t;_d4=_d9[_db];}else{_d9=[0];if(_d4){if(_97.call(_d4)=="[object Function]"){t=_d4._meta;_d9=_d9.concat(t?t.bases:_d4);}else{err("base class is not a callable constructor.",_d3);}}else{if(_d4!==null){err("unknown base class. Did you use dojo.require to pull it in?",_d3);}}}if(_d4){for(i=_db-1;;--i){_d6=_cf(_d4);if(!i){break;}t=_d9[i];(t._meta?_b5:mix)(_d6,t.prototype);_d7=new Function;_d7.superclass=_d4;_d7.prototype=_d6;_d4=_d6.constructor=_d7;}}else{_d6={};}_b9(_d6,_d5);t=_d5.constructor;if(t!==op.constructor){t.nom=_9a;_d6.constructor=t;}for(i=_db-1;i;--i){t=_d9[i]._meta;if(t&&t.chains){_da=mix(_da||{},t.chains);}}if(_d6["-chains-"]){_da=mix(_da||{},_d6["-chains-"]);}t=!_da||!_da.hasOwnProperty(_9a);_d9[0]=_d7=(_da&&_da.constructor==="manual")?_c8(_d9):(_d9.length==1?_c5(_d5.constructor,t):_bf(_d9,t));_d7._meta={bases:_d9,hidden:_d5,chains:_da,parents:_dc,ctor:_d5.constructor};_d7.superclass=_d4&&_d4.prototype;_d7.extend=_bd;_d7.prototype=_d6;_d6.constructor=_d7;_d6.getInherited=_b0;_d6.inherited=_a6;_d6.isInstanceOf=_b3;if(_d3){_d6.declaredClass=_d3;d.setObject(_d3,_d7);}if(_da){for(_d8 in _da){if(_d6[_d8]&&typeof _da[_d8]=="string"&&_d8!=_9a){t=_d6[_d8]=_ca(_d8,_d9,_da[_d8]==="after");t.nom=_d8;}}}return _d7;};d.safeMixin=_b9;})();}if(!dojo._hasResource["dojo._base.connect"]){dojo._hasResource["dojo._base.connect"]=true;dojo.provide("dojo._base.connect");dojo._listener={getDispatcher:function(){return function(){var ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target,r=t&&t.apply(this,arguments),i,lls=[].concat(ls);for(i in lls){if(!(i in ap)){lls[i].apply(this,arguments);}}return r;};},add:function(_dd,_de,_df){_dd=_dd||dojo.global;var f=_dd[_de];if(!f||!f._listeners){var d=dojo._listener.getDispatcher();d.target=f;d._listeners=[];f=_dd[_de]=d;}return f._listeners.push(_df);},remove:function(_e0,_e1,_e2){var f=(_e0||dojo.global)[_e1];if(f&&f._listeners&&_e2--){delete f._listeners[_e2];}}};dojo.connect=function(obj,_e3,_e4,_e5,_e6){var a=arguments,_e7=[],i=0;_e7.push(dojo.isString(a[0])?null:a[i++],a[i++]);var a1=a[i+1];_e7.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){_e7.push(a[i]);}return dojo._connect.apply(this,_e7);};dojo._connect=function(obj,_e8,_e9,_ea){var l=dojo._listener,h=l.add(obj,_e8,dojo.hitch(_e9,_ea));return [obj,_e8,h,l];};dojo.disconnect=function(_eb){if(_eb&&_eb[0]!==undefined){dojo._disconnect.apply(this,_eb);delete _eb[0];}};dojo._disconnect=function(obj,_ec,_ed,_ee){_ee.remove(obj,_ec,_ed);};dojo._topics={};dojo.subscribe=function(_ef,_f0,_f1){return [_ef,dojo._listener.add(dojo._topics,_ef,dojo.hitch(_f0,_f1))];};dojo.unsubscribe=function(_f2){if(_f2){dojo._listener.remove(dojo._topics,_f2[0],_f2[1]);}};dojo.publish=function(_f3,_f4){var f=dojo._topics[_f3];if(f){f.apply(this,_f4||[]);}};dojo.connectPublisher=function(_f5,obj,_f6){var pf=function(){dojo.publish(_f5,arguments);};return _f6?dojo.connect(obj,_f6,pf):dojo.connect(obj,pf);};}if(!dojo._hasResource["dojo._base.Deferred"]){dojo._hasResource["dojo._base.Deferred"]=true;dojo.provide("dojo._base.Deferred");(function(){var _f7=function(){};var _f8=Object.freeze||function(){};dojo.Deferred=function(_f9){var _fa,_fb,_fc,_fd,_fe;var _ff=(this.promise={});function _100(_101){if(_fb){throw new Error("This deferred has already been resolved");}_fa=_101;_fb=true;_102();};function _102(){var _103;while(!_103&&_fe){var _104=_fe;_fe=_fe.next;if((_103=(_104.progress==_f7))){_fb=false;}var func=(_fc?_104.error:_104.resolved);if(func){try{var _105=func(_fa);if(_105&&typeof _105.then==="function"){_105.then(dojo.hitch(_104.deferred,"resolve"),dojo.hitch(_104.deferred,"reject"));continue;}var _106=_103&&_105===undefined;if(_103&&!_106){_fc=_105 instanceof Error;}_104.deferred[_106&&_fc?"reject":"resolve"](_106?_fa:_105);}catch(e){_104.deferred.reject(e);}}else{if(_fc){_104.deferred.reject(_fa);}else{_104.deferred.resolve(_fa);}}}};this.resolve=this.callback=function(_107){this.fired=0;this.results=[_107,null];_100(_107);};this.reject=this.errback=function(_108){_fc=true;this.fired=1;_100(_108);this.results=[null,_108];if(!_108||_108.log!==false){(dojo.config.deferredOnError||function(x){console.error(x);})(_108);}};this.progress=function(_109){var _10a=_fe;while(_10a){var _10b=_10a.progress;_10b&&_10b(_109);_10a=_10a.next;}};this.addCallbacks=function(_10c,_10d){this.then(_10c,_10d,_f7);return this;};this.then=_ff.then=function(_10e,_10f,_110){var _111=_110==_f7?this:new dojo.Deferred(_ff.cancel);var _112={resolved:_10e,error:_10f,progress:_110,deferred:_111};if(_fe){_fd=_fd.next=_112;}else{_fe=_fd=_112;}if(_fb){_102();}return _111.promise;};var _113=this;this.cancel=_ff.cancel=function(){if(!_fb){var _114=_f9&&_f9(_113);if(!_fb){if(!(_114 instanceof Error)){_114=new Error(_114);}_114.log=false;_113.reject(_114);}}};_f8(_ff);};dojo.extend(dojo.Deferred,{addCallback:function(_115){return this.addCallbacks(dojo.hitch.apply(dojo,arguments));},addErrback:function(_116){return this.addCallbacks(null,dojo.hitch.apply(dojo,arguments));},addBoth:function(_117){var _118=dojo.hitch.apply(dojo,arguments);return this.addCallbacks(_118,_118);},fired:-1});})();dojo.when=function(_119,_11a,_11b,_11c){if(_119&&typeof _119.then==="function"){return _119.then(_11a,_11b,_11c);}return _11a(_119);};}if(!dojo._hasResource["dojo._base.json"]){dojo._hasResource["dojo._base.json"]=true;dojo.provide("dojo._base.json");dojo.fromJson=function(json){return eval("("+json+")");};dojo._escapeString=function(str){return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_11d,_11e){if(it===undefined){return "undefined";}var _11f=typeof it;if(_11f=="number"||_11f=="boolean"){return it+"";}if(it===null){return "null";}if(dojo.isString(it)){return dojo._escapeString(it);}var _120=arguments.callee;var _121;_11e=_11e||"";var _122=_11d?_11e+dojo.toJsonIndentStr:"";var tf=it.__json__||it.json;if(dojo.isFunction(tf)){_121=tf.call(it);if(it!==_121){return _120(_121,_11d,_122);}}if(it.nodeType&&it.cloneNode){throw new Error("Can't serialize DOM nodes");}var sep=_11d?" ":"";var _123=_11d?"\n":"";if(dojo.isArray(it)){var res=dojo.map(it,function(obj){var val=_120(obj,_11d,_122);if(typeof val!="string"){val="undefined";}return _123+_122+val;});return "["+res.join(","+sep)+_123+_11e+"]";}if(_11f=="function"){return null;}var _124=[],key;for(key in it){var _125,val;if(typeof key=="number"){_125="\""+key+"\"";}else{if(typeof key=="string"){_125=dojo._escapeString(key);}else{continue;}}val=_120(it[key],_11d,_122);if(typeof val!="string"){continue;}_124.push(_123+_122+_125+":"+sep+val);}return "{"+_124.join(","+sep)+_123+_11e+"}";};}if(!dojo._hasResource["dojo._base.Color"]){dojo._hasResource["dojo._base.Color"]=true;dojo.provide("dojo._base.Color");(function(){var d=dojo;dojo.Color=function(_126){if(_126){this.setColor(_126);}};dojo.Color.named={black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255],transparent:d.config.transparentColor||[255,255,255]};dojo.extend(dojo.Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_127){if(d.isString(_127)){d.colorFromString(_127,this);}else{if(d.isArray(_127)){d.colorFromArray(_127,this);}else{this._set(_127.r,_127.g,_127.b,_127.a);if(!(_127 instanceof d.Color)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=d.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s;},this);return "#"+arr.join("");},toCss:function(_128){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_128?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});dojo.blendColors=function(_129,end,_12a,obj){var t=obj||new d.Color();d.forEach(["r","g","b","a"],function(x){t[x]=_129[x]+(end[x]-_129[x])*_12a;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};dojo.colorFromRgb=function(_12b,obj){var m=_12b.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&dojo.colorFromArray(m[1].split(/\s*,\s*/),obj);};dojo.colorFromHex=function(_12c,obj){var t=obj||new d.Color(),bits=(_12c.length==4)?4:8,mask=(1<<bits)-1;_12c=Number("0x"+_12c.substr(1));if(isNaN(_12c)){return null;}d.forEach(["b","g","r"],function(x){var c=_12c&mask;_12c>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};dojo.colorFromArray=function(a,obj){var t=obj||new d.Color();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};dojo.colorFromString=function(str,obj){var a=d.Color.named[str];return a&&d.colorFromArray(a,obj)||d.colorFromRgb(str,obj)||d.colorFromHex(str,obj);};})();}if(!dojo._hasResource["dojo._base.window"]){dojo._hasResource["dojo._base.window"]=true;dojo.provide("dojo._base.window");dojo.doc=window["document"]||null;dojo.body=function(){return dojo.doc.body||dojo.doc.getElementsByTagName("body")[0];};dojo.setContext=function(_12d,_12e){dojo.global=_12d;dojo.doc=_12e;};dojo.withGlobal=function(_12f,_130,_131,_132){var _133=dojo.global;try{dojo.global=_12f;return dojo.withDoc.call(null,_12f.document,_130,_131,_132);}finally{dojo.global=_133;}};dojo.withDoc=function(_134,_135,_136,_137){var _138=dojo.doc,_139=dojo._bodyLtr,oldQ=dojo.isQuirks;try{dojo.doc=_134;delete dojo._bodyLtr;dojo.isQuirks=dojo.doc.compatMode=="BackCompat";if(_136&&typeof _135=="string"){_135=_136[_135];}return _135.apply(_136,_137||[]);}finally{dojo.doc=_138;delete dojo._bodyLtr;if(_139!==undefined){dojo._bodyLtr=_139;}dojo.isQuirks=oldQ;}};}if(!dojo._hasResource["dojo._base.event"]){dojo._hasResource["dojo._base.event"]=true;dojo.provide("dojo._base.event");(function(){var del=(dojo._event_listener={add:function(node,name,fp){if(!node){return;}name=del._normalizeEventName(name);fp=del._fixCallback(name,fp);if(!dojo.isIE&&(name=="mouseenter"||name=="mouseleave")){var ofp=fp;name=(name=="mouseenter")?"mouseover":"mouseout";fp=function(e){if(!dojo.isDescendant(e.relatedTarget,node)){return ofp.call(this,e);}};}node.addEventListener(name,fp,false);return fp;},remove:function(node,_13a,_13b){if(node){_13a=del._normalizeEventName(_13a);if(!dojo.isIE&&(_13a=="mouseenter"||_13a=="mouseleave")){_13a=(_13a=="mouseenter")?"mouseover":"mouseout";}node.removeEventListener(_13a,_13b,false);}},_normalizeEventName:function(name){return name.slice(0,2)=="on"?name.slice(2):name;},_fixCallback:function(name,fp){return name!="keypress"?fp:function(e){return fp.call(this,del._fixEvent(e,this));};},_fixEvent:function(evt,_13c){switch(evt.type){case "keypress":del._setKeyChar(evt);break;}return evt;},_setKeyChar:function(evt){evt.keyChar=evt.charCode>=32?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39}});dojo.fixEvent=function(evt,_13d){return del._fixEvent(evt,_13d);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var _13e=dojo._listener;dojo._connect=function(obj,_13f,_140,_141,_142){var _143=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener);var lid=_143?(_142?2:1):0,l=[dojo._listener,del,_13e][lid];var h=l.add(obj,_13f,dojo.hitch(_140,_141));return [obj,_13f,h,lid];};dojo._disconnect=function(obj,_144,_145,_146){([dojo._listener,del,_13e][_146]).remove(obj,_144,_145);};dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:dojo.isSafari?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,copyKey:dojo.isMac&&!dojo.isAIR?(dojo.isSafari?91:224):17};var _147=dojo.isMac?"metaKey":"ctrlKey";dojo.isCopyKey=function(e){return e[_147];};if(dojo.isIE<9||(dojo.isIE&&dojo.isQuirks)){dojo.mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_148){return e.button&_148;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{dojo.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_149){return e.button==_149;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}if(dojo.isIE){var _14a=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var iel=dojo._listener;var _14b=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners");if(!dojo.config._allow_leaks){_13e=iel=dojo._ie_listener={handlers:[],add:function(_14c,_14d,_14e){_14c=_14c||dojo.global;var f=_14c[_14d];if(!f||!f[_14b]){var d=dojo._getIeDispatcher();d.target=f&&(ieh.push(f)-1);d[_14b]=[];f=_14c[_14d]=d;}return f[_14b].push(ieh.push(_14e)-1);},remove:function(_14f,_150,_151){var f=(_14f||dojo.global)[_150],l=f&&f[_14b];if(f&&l&&_151--){delete ieh[l[_151]];delete l[_151];}}};var ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_152,fp){if(!node){return;}_152=del._normalizeEventName(_152);if(_152=="onkeypress"){var kd=node.onkeydown;if(!kd||!kd[_14b]||!kd._stealthKeydownHandle){var h=del.add(node,"onkeydown",del._stealthKeyDown);kd=node.onkeydown;kd._stealthKeydownHandle=h;kd._stealthKeydownRefs=1;}else{kd._stealthKeydownRefs++;}}return iel.add(node,_152,del._fixCallback(fp));},remove:function(node,_153,_154){_153=del._normalizeEventName(_153);iel.remove(node,_153,_154);if(_153=="onkeypress"){var kd=node.onkeydown;if(--kd._stealthKeydownRefs<=0){iel.remove(node,"onkeydown",kd._stealthKeydownHandle);delete kd._stealthKeydownHandle;}}},_normalizeEventName:function(_155){return _155.slice(0,2)!="on"?"on"+_155:_155;},_nop:function(){},_fixEvent:function(evt,_156){if(!evt){var w=_156&&(_156.ownerDocument||_156.document||_156).parentWindow||window;evt=w.event;}if(!evt){return (evt);}evt.target=evt.srcElement;evt.currentTarget=(_156||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var se=evt.srcElement,doc=(se&&se.ownerDocument)||document;var _157=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;var _158=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_157.scrollLeft||0)-_158.x;evt.pageY=evt.clientY+(_157.scrollTop||0)-_158.y;if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}if(dojo.isIE<9||dojo.isQuirks){evt.stopPropagation=del._stopPropagation;evt.preventDefault=del._preventDefault;}return del._fixKeys(evt);},_fixKeys:function(evt){switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;del._setKeyChar(evt);break;}return evt;},_stealthKeyDown:function(evt){var kp=evt.currentTarget.onkeypress;if(!kp||!kp[_14b]){return;}var k=evt.keyCode;var _159=(k!=13||(dojo.isIE>=9&&!dojo.isQuirks))&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_159||evt.ctrlKey){var c=_159?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});kp.call(evt.currentTarget,faux);if(dojo.isIE<9||(dojo.isIE&&dojo.isQuirks)){evt.cancelBubble=faux.cancelBubble;}evt.returnValue=faux.returnValue;_14a(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_14a(this,0);}this.returnValue=false;}});dojo.stopEvent=(dojo.isIE<9||dojo.isQuirks)?function(evt){evt=evt||window.event;del._stopPropagation.call(evt);del._preventDefault.call(evt);}:dojo.stopEvent;}del._synthesizeEvent=function(evt,_15a){var faux=dojo.mixin({},evt,_15a);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_15b){switch(evt.type){case "keypress":var c=evt.which;if(c==3){c=99;}c=c<41&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return del._synthesizeEvent(evt,{charCode:c});}return evt;}});}if(dojo.isWebKit){del._add=del.add;del._remove=del.remove;dojo.mixin(del,{add:function(node,_15c,fp){if(!node){return;}var _15d=del._add(node,_15c,fp);if(del._normalizeEventName(_15c)=="keypress"){_15d._stealthKeyDownHandle=del._add(node,"keydown",function(evt){var k=evt.keyCode;var _15e=k!=13&&k!=32&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_15e||evt.ctrlKey){var c=_15e?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if(!evt.shiftKey&&c>=65&&c<=90){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});fp.call(evt.currentTarget,faux);}});}return _15d;},remove:function(node,_15f,_160){if(node){if(_160._stealthKeyDownHandle){del._remove(node,"keydown",_160._stealthKeyDownHandle);}del._remove(node,_15f,_160);}},_fixEvent:function(evt,_161){switch(evt.type){case "keypress":if(evt.faux){return evt;}var c=evt.charCode;c=c>=32?c:0;return del._synthesizeEvent(evt,{charCode:c,faux:true});}return evt;}});}})();if(dojo.isIE){dojo._ieDispatcher=function(args,_162){var ap=Array.prototype,h=dojo._ie_listener.handlers,c=args.callee,ls=c[dojo._ieListenersName],t=h[c.target];var r=t&&t.apply(_162,args);var lls=[].concat(ls);for(var i in lls){var f=h[lls[i]];if(!(i in ap)&&f){f.apply(_162,args);}}return r;};dojo._getIeDispatcher=function(){return new Function(dojo._scopeName+"._ieDispatcher(arguments, this)");};dojo._event_listener._fixCallback=function(fp){var f=dojo._event_listener._fixEvent;return function(e){return fp.call(this,f(e,this));};};}}if(!dojo._hasResource["dojo._base.html"]){dojo._hasResource["dojo._base.html"]=true;dojo.provide("dojo._base.html");try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}if(dojo.isIE){dojo.byId=function(id,doc){if(typeof id!="string"){return id;}var _163=doc||dojo.doc,te=_163.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_163.all[id];if(!eles||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{dojo.byId=function(id,doc){return ((typeof id=="string")?(doc||dojo.doc).getElementById(id):id)||null;};}(function(){var d=dojo;var byId=d.byId;var _164=null,_165;d.addOnWindowUnload(function(){_164=null;});dojo._destroyElement=dojo.destroy=function(node){node=byId(node);try{var doc=node.ownerDocument;if(!_164||_165!=doc){_164=doc.createElement("div");_165=doc;}_164.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_164.innerHTML="";}catch(e){}};dojo.isDescendant=function(node,_166){try{node=byId(node);_166=byId(_166);while(node){if(node==_166){return true;}node=node.parentNode;}}catch(e){}return false;};dojo.setSelectable=function(node,_167){node=byId(node);if(d.isMozilla){node.style.MozUserSelect=_167?"":"none";}else{if(d.isKhtml||d.isWebKit){node.style.KhtmlUserSelect=_167?"auto":"none";}else{if(d.isIE){var v=(node.unselectable=_167?"":"on");d.query("*",node).forEach("item.unselectable = '"+v+"'");}}}};var _168=function(node,ref){var _169=ref.parentNode;if(_169){_169.insertBefore(node,ref);}};var _16a=function(node,ref){var _16b=ref.parentNode;if(_16b){if(_16b.lastChild==ref){_16b.appendChild(node);}else{_16b.insertBefore(node,ref.nextSibling);}}};dojo.place=function(node,_16c,_16d){_16c=byId(_16c);if(typeof node=="string"){node=/^\s*</.test(node)?d._toDom(node,_16c.ownerDocument):byId(node);}if(typeof _16d=="number"){var cn=_16c.childNodes;if(!cn.length||cn.length<=_16d){_16c.appendChild(node);}else{_168(node,cn[_16d<0?0:_16d]);}}else{switch(_16d){case "before":_168(node,_16c);break;case "after":_16a(node,_16c);break;case "replace":_16c.parentNode.replaceChild(node,_16c);break;case "only":d.empty(_16c);_16c.appendChild(node);break;case "first":if(_16c.firstChild){_168(node,_16c.firstChild);break;}default:_16c.appendChild(node);}}return node;};dojo.boxModel="content-box";if(d.isIE){d.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}var gcs;if(d.isWebKit){gcs=function(node){var s;if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(d.isIE){gcs=function(node){return node.nodeType==1?node.currentStyle:{};};}else{gcs=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}dojo.getComputedStyle=gcs;if(!d.isIE){d._toPixelValue=function(_16e,_16f){return parseFloat(_16f)||0;};}else{d._toPixelValue=function(_170,_171){if(!_171){return 0;}if(_171=="medium"){return 4;}if(_171.slice&&_171.slice(-2)=="px"){return parseFloat(_171);}with(_170){var _172=style.left;var _173=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_171;_171=style.pixelLeft;}catch(e){_171=0;}style.left=_172;runtimeStyle.left=_173;}return _171;};}var px=d._toPixelValue;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};dojo._getOpacity=d.isIE<9?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return gcs(node).opacity;};dojo._setOpacity=d.isIE<9?function(node,_174){var ov=_174*100,_175=_174==1;node.style.zoom=_175?"":1;if(!af(node)){if(_175){return _174;}node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_175;if(node.nodeName.toLowerCase()=="tr"){d.query("> td",node).forEach(function(i){d._setOpacity(i,_174);});}return _174;}:function(node,_176){return node.style.opacity=_176;};var _177={left:true,top:true};var _178=/margin|padding|width|height|max|min|offset/;var _179=function(node,type,_17a){type=type.toLowerCase();if(d.isIE){if(_17a=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_17a){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _177)){_177[type]=_178.test(type);}return _177[type]?px(node,_17a):_17a;};var _17b=d.isIE?"styleFloat":"cssFloat",_17c={"cssFloat":_17b,"styleFloat":_17b,"float":_17b};dojo.style=function(node,_17d,_17e){var n=byId(node),args=arguments.length,op=(_17d=="opacity");_17d=_17c[_17d]||_17d;if(args==3){return op?d._setOpacity(n,_17e):n.style[_17d]=_17e;}if(args==2&&op){return d._getOpacity(n);}var s=gcs(n);if(args==2&&typeof _17d!="string"){for(var x in _17d){d.style(node,x,_17d[x]);}return s;}return (args==1)?s:_179(n,_17d,s[_17d]||n.style[_17d]);};dojo._getPadExtents=function(n,_17f){var s=_17f||gcs(n),l=px(n,s.paddingLeft),t=px(n,s.paddingTop);return {l:l,t:t,w:l+px(n,s.paddingRight),h:t+px(n,s.paddingBottom)};};dojo._getBorderExtents=function(n,_180){var ne="none",s=_180||gcs(n),bl=(s.borderLeftStyle!=ne?px(n,s.borderLeftWidth):0),bt=(s.borderTopStyle!=ne?px(n,s.borderTopWidth):0);return {l:bl,t:bt,w:bl+(s.borderRightStyle!=ne?px(n,s.borderRightWidth):0),h:bt+(s.borderBottomStyle!=ne?px(n,s.borderBottomWidth):0)};};dojo._getPadBorderExtents=function(n,_181){var s=_181||gcs(n),p=d._getPadExtents(n,s),b=d._getBorderExtents(n,s);return {l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h};};dojo._getMarginExtents=function(n,_182){var s=_182||gcs(n),l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom);if(d.isWebKit&&(s.position!="absolute")){r=l;}return {l:l,t:t,w:l+r,h:t+b};};dojo._getMarginBox=function(node,_183){var s=_183||gcs(node),me=d._getMarginExtents(node,s);var l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode;if(d.isMoz){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{if(p&&p.style){var pcs=gcs(p);if(pcs.overflow!="visible"){var be=d._getBorderExtents(p,pcs);l+=be.l,t+=be.t;}}}}else{if(d.isOpera||(d.isIE>7&&!d.isQuirks)){if(p){be=d._getBorderExtents(p);l-=be.l;t-=be.t;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};dojo._getMarginSize=function(node,_184){node=byId(node);var me=d._getMarginExtents(node,_184||gcs(node));var size=node.getBoundingClientRect();return {w:(size.right-size.left)+me.w,h:(size.bottom-size.top)+me.h};};dojo._getContentBox=function(node,_185){var s=_185||gcs(node),pe=d._getPadExtents(node,s),be=d._getBorderExtents(node,s),w=node.clientWidth,h;if(!w){w=node.offsetWidth,h=node.offsetHeight;}else{h=node.clientHeight,be.w=be.h=0;}if(d.isOpera){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};dojo._getBorderBox=function(node,_186){var s=_186||gcs(node),pe=d._getPadExtents(node,s),cb=d._getContentBox(node,s);return {l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h};};dojo._setBox=function(node,l,t,w,h,u){u=u||"px";var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};dojo._isButtonTag=function(node){return node.tagName=="BUTTON"||node.tagName=="INPUT"&&(node.getAttribute("type")||"").toUpperCase()=="BUTTON";};dojo._usesBorderBox=function(node){var n=node.tagName;return d.boxModel=="border-box"||n=="TABLE"||d._isButtonTag(node);};dojo._setContentSize=function(node,_187,_188,_189){if(d._usesBorderBox(node)){var pb=d._getPadBorderExtents(node,_189);if(_187>=0){_187+=pb.w;}if(_188>=0){_188+=pb.h;}}d._setBox(node,NaN,NaN,_187,_188);};dojo._setMarginBox=function(node,_18a,_18b,_18c,_18d,_18e){var s=_18e||gcs(node),bb=d._usesBorderBox(node),pb=bb?_18f:d._getPadBorderExtents(node,s);if(d.isWebKit){if(d._isButtonTag(node)){var ns=node.style;if(_18c>=0&&!ns.width){ns.width="4px";}if(_18d>=0&&!ns.height){ns.height="4px";}}}var mb=d._getMarginExtents(node,s);if(_18c>=0){_18c=Math.max(_18c-pb.w-mb.w,0);}if(_18d>=0){_18d=Math.max(_18d-pb.h-mb.h,0);}d._setBox(node,_18a,_18b,_18c,_18d);};var _18f={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getMarginBox(n,s):d._setMarginBox(n,b.l,b.t,b.w,b.h,s);};dojo.contentBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s);};var _190=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var val,_191=0,_192=d.body();while(node&&node.style){if(gcs(node).position=="fixed"){return 0;}val=node[prop];if(val){_191+=val-0;if(node==_192){break;}}node=node.parentNode;}return _191;};dojo._docScroll=function(){var n=d.global;return "pageXOffset" in n?{x:n.pageXOffset,y:n.pageYOffset}:(n=d.isQuirks?d.doc.body:d.doc.documentElement,{x:d._fixIeBiDiScrollLeft(n.scrollLeft||0),y:n.scrollTop||0});};dojo._isBodyLtr=function(){return "_bodyLtr" in d?d._bodyLtr:d._bodyLtr=(d.body().dir||d.doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};dojo._getIeDocumentElementOffset=function(){var de=d.doc.documentElement;if(d.isIE<8){var r=de.getBoundingClientRect();var l=r.left,t=r.top;if(d.isIE<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};dojo._fixIeBiDiScrollLeft=function(_193){var ie=d.isIE;if(ie&&!d._isBodyLtr()){var qk=d.isQuirks,de=qk?d.doc.body:d.doc.documentElement;if(ie==6&&!qk&&d.global.frameElement&&de.scrollHeight>de.clientHeight){_193+=de.clientLeft;}return (ie<8||qk)?(_193+de.clientWidth-de.scrollWidth):-_193;}return _193;};dojo._abs=dojo.position=function(node,_194){node=byId(node);var db=d.body(),dh=db.parentNode,ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(d.isIE){var _195=d._getIeDocumentElementOffset();ret.x-=_195.x+(d.isQuirks?db.clientLeft+db.offsetLeft:0);ret.y-=_195.y+(d.isQuirks?db.clientTop+db.offsetTop:0);}else{if(d.isFF==3){var cs=gcs(dh);ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth);}}if(_194){var _196=d._docScroll();ret.x+=_196.x;ret.y+=_196.y;}return ret;};dojo.coords=function(node,_197){var n=byId(node),s=gcs(n),mb=d._getMarginBox(n,s);var abs=d.position(n,_197);mb.x=abs.x;mb.y=abs.y;return mb;};var _198={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"},_199={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"},_19a={innerHTML:1,className:1,htmlFor:d.isIE,value:1};var _19b=function(name){return _199[name.toLowerCase()]||name;};var _19c=function(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};dojo.hasAttr=function(node,name){var lc=name.toLowerCase();return _19a[_198[lc]||name]||_19c(byId(node),_199[lc]||name);};var _19d={},_19e=0,_19f=dojo._scopeName+"attrid",_1a0={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};dojo.attr=function(node,name,_1a1){node=byId(node);var args=arguments.length,prop;if(args==2&&typeof name!="string"){for(var x in name){d.attr(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_1a2=_198[lc]||name,_1a3=_19a[_1a2],_1a4=_199[lc]||name;if(args==3){do{if(_1a2=="style"&&typeof _1a1!="string"){d.style(node,_1a1);break;}if(_1a2=="innerHTML"){if(d.isIE&&node.tagName.toLowerCase() in _1a0){d.empty(node);node.appendChild(d._toDom(_1a1,node.ownerDocument));}else{node[_1a2]=_1a1;}break;}if(d.isFunction(_1a1)){var _1a5=d.attr(node,_19f);if(!_1a5){_1a5=_19e++;d.attr(node,_19f,_1a5);}if(!_19d[_1a5]){_19d[_1a5]={};}var h=_19d[_1a5][_1a2];if(h){d.disconnect(h);}else{try{delete node[_1a2];}catch(e){}}_19d[_1a5][_1a2]=d.connect(node,_1a2,_1a1);break;}if(_1a3||typeof _1a1=="boolean"){node[_1a2]=_1a1;break;}node.setAttribute(_1a4,_1a1);}while(false);return node;}_1a1=node[_1a2];if(_1a3&&typeof _1a1!="undefined"){return _1a1;}if(_1a2!="href"&&(typeof _1a1=="boolean"||d.isFunction(_1a1))){return _1a1;}return _19c(node,_1a4)?node.getAttribute(_1a4):null;};dojo.removeAttr=function(node,name){byId(node).removeAttribute(_19b(name));};dojo.getNodeProp=function(node,name){node=byId(node);var lc=name.toLowerCase(),_1a6=_198[lc]||name;if((_1a6 in node)&&_1a6!="href"){return node[_1a6];}var _1a7=_199[lc]||name;return _19c(node,_1a7)?node.getAttribute(_1a7):null;};dojo.create=function(tag,_1a8,_1a9,pos){var doc=d.doc;if(_1a9){_1a9=byId(_1a9);doc=_1a9.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_1a8){d.attr(tag,_1a8);}if(_1a9){d.place(tag,_1a9,pos);}return tag;};d.empty=d.isIE?function(node){node=byId(node);for(var c;c=node.lastChild;){d.destroy(c);}}:function(node){byId(node).innerHTML="";};var _1aa={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_1ab=/<\s*([\w\:]+)/,_1ac={},_1ad=0,_1ae="__"+d._scopeName+"ToDomId";for(var _1af in _1aa){if(_1aa.hasOwnProperty(_1af)){var tw=_1aa[_1af];tw.pre=_1af=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}}d._toDom=function(frag,doc){doc=doc||d.doc;var _1b0=doc[_1ae];if(!_1b0){doc[_1ae]=_1b0=++_1ad+"";_1ac[_1b0]=doc.createElement("div");}frag+="";var _1b1=frag.match(_1ab),tag=_1b1?_1b1[1].toLowerCase():"",_1b2=_1ac[_1b0],wrap,i,fc,df;if(_1b1&&_1aa[tag]){wrap=_1aa[tag];_1b2.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_1b2=_1b2.firstChild;}}else{_1b2.innerHTML=frag;}if(_1b2.childNodes.length==1){return _1b2.removeChild(_1b2.firstChild);}df=doc.createDocumentFragment();while(fc=_1b2.firstChild){df.appendChild(fc);}return df;};var _1b3="className";dojo.hasClass=function(node,_1b4){return ((" "+byId(node)[_1b3]+" ").indexOf(" "+_1b4+" ")>=0);};var _1b5=/\s+/,a1=[""],_1b6={},_1b7=function(s){if(typeof s=="string"||s instanceof String){if(s.indexOf(" ")<0){a1[0]=s;return a1;}else{return s.split(_1b5);}}return s||"";};dojo.addClass=function(node,_1b8){node=byId(node);_1b8=_1b7(_1b8);var cls=node[_1b3],_1b9;cls=cls?" "+cls+" ":" ";_1b9=cls.length;for(var i=0,len=_1b8.length,c;i<len;++i){c=_1b8[i];if(c&&cls.indexOf(" "+c+" ")<0){cls+=c+" ";}}if(_1b9<cls.length){node[_1b3]=cls.substr(1,cls.length-2);}};dojo.removeClass=function(node,_1ba){node=byId(node);var cls;if(_1ba!==undefined){_1ba=_1b7(_1ba);cls=" "+node[_1b3]+" ";for(var i=0,len=_1ba.length;i<len;++i){cls=cls.replace(" "+_1ba[i]+" "," ");}cls=d.trim(cls);}else{cls="";}if(node[_1b3]!=cls){node[_1b3]=cls;}};dojo.replaceClass=function(node,_1bb,_1bc){node=byId(node);_1b6.className=node.className;dojo.removeClass(_1b6,_1bc);dojo.addClass(_1b6,_1bb);if(node.className!==_1b6.className){node.className=_1b6.className;}};dojo.toggleClass=function(node,_1bd,_1be){if(_1be===undefined){_1be=!d.hasClass(node,_1bd);}d[_1be?"addClass":"removeClass"](node,_1bd);};})();}if(!dojo._hasResource["dojo._base.NodeList"]){dojo._hasResource["dojo._base.NodeList"]=true;dojo.provide("dojo._base.NodeList");(function(){var d=dojo;var ap=Array.prototype,aps=ap.slice,apc=ap.concat;var tnl=function(a,_1bf,_1c0){if(!a.sort){a=aps.call(a,0);}var ctor=_1c0||this._NodeListCtor||d._NodeListCtor;a.constructor=ctor;dojo._mixin(a,ctor.prototype);a._NodeListCtor=ctor;return _1bf?a._stash(_1bf):a;};var _1c1=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||d.global;return function(node){a[0]=node;return f.apply(o,a);};};var _1c2=function(f,o){return function(){this.forEach(_1c1(f,arguments,o));return this;};};var _1c3=function(f,o){return function(){return this.map(_1c1(f,arguments,o));};};var _1c4=function(f,o){return function(){return this.filter(_1c1(f,arguments,o));};};var _1c5=function(f,g,o){return function(){var a=arguments,body=_1c1(f,a,o);if(g.call(o||d.global,a)){return this.map(body);}this.forEach(body);return this;};};var _1c6=function(a){return a.length==1&&(typeof a[0]=="string");};var _1c7=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};dojo.NodeList=function(){return tnl(Array.apply(null,arguments));};d._NodeListCtor=d.NodeList;var nl=d.NodeList,nlp=nl.prototype;nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_1c3;nl._adaptAsForEach=_1c2;nl._adaptAsFilter=_1c4;nl._adaptWithCondition=_1c5;d.forEach(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name=="slice"?this:null);};});d.forEach(["indexOf","lastIndexOf","every","some"],function(name){var f=d[name];nlp[name]=function(){return f.apply(d,[this].concat(aps.call(arguments,0)));};});d.forEach(["attr","style"],function(name){nlp[name]=_1c5(d[name],_1c6);});d.forEach(["connect","addClass","removeClass","replaceClass","toggleClass","empty","removeAttr"],function(name){nlp[name]=_1c2(d[name]);});dojo.extend(dojo.NodeList,{_normalize:function(_1c8,_1c9){var _1ca=_1c8.parse===true?true:false;if(typeof _1c8.template=="string"){var _1cb=_1c8.templateFunc||(dojo.string&&dojo.string.substitute);_1c8=_1cb?_1cb(_1c8.template,_1c8):_1c8;}var type=(typeof _1c8);if(type=="string"||type=="number"){_1c8=dojo._toDom(_1c8,(_1c9&&_1c9.ownerDocument));if(_1c8.nodeType==11){_1c8=dojo._toArray(_1c8.childNodes);}else{_1c8=[_1c8];}}else{if(!dojo.isArrayLike(_1c8)){_1c8=[_1c8];}else{if(!dojo.isArray(_1c8)){_1c8=dojo._toArray(_1c8);}}}if(_1ca){_1c8._runParse=true;}return _1c8;},_cloneNode:function(node){return node.cloneNode(true);},_place:function(ary,_1cc,_1cd,_1ce){if(_1cc.nodeType!=1&&_1cd=="only"){return;}var _1cf=_1cc,_1d0;var _1d1=ary.length;for(var i=_1d1-1;i>=0;i--){var node=(_1ce?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_1d0){_1d0=_1cf.ownerDocument.createElement("div");}_1d0.appendChild(node);dojo.parser.parse(_1d0);node=_1d0.firstChild;while(_1d0.firstChild){_1d0.removeChild(_1d0.firstChild);}}if(i==_1d1-1){dojo.place(node,_1cf,_1cd);}else{_1cf.parentNode.insertBefore(node,_1cf);}_1cf=node;}},_stash:function(_1d2){this._parent=_1d2;return this;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor();}},concat:function(item){var t=d.isArray(this)?this:aps.call(this,0),m=d.map(arguments,function(a){return a&&!d.isArray(a)&&(typeof NodeList!="undefined"&&a.constructor===NodeList||a.constructor===this._NodeListCtor)?aps.call(a,0):a;});return this._wrap(apc.apply(t,m),this);},map:function(func,obj){return this._wrap(d.map(this,func,obj),this);},forEach:function(_1d3,_1d4){d.forEach(this,_1d3,_1d4);return this;},coords:_1c3(d.coords),position:_1c3(d.position),place:function(_1d5,_1d6){var item=d.query(_1d5)[0];return this.forEach(function(node){d.place(node,item,_1d6);});},orphan:function(_1d7){return (_1d7?d._filterQueryResult(this,_1d7):this).forEach(_1c7);},adopt:function(_1d8,_1d9){return d.query(_1d8).place(this[0],_1d9)._stash(this);},query:function(_1da){if(!_1da){return this;}var ret=this.map(function(node){return d.query(_1da,node).filter(function(_1db){return _1db!==undefined;});});return this._wrap(apc.apply([],ret),this);},filter:function(_1dc){var a=arguments,_1dd=this,_1de=0;if(typeof _1dc=="string"){_1dd=d._filterQueryResult(this,a[0]);if(a.length==1){return _1dd._stash(this);}_1de=1;}return this._wrap(d.filter(_1dd,a[_1de],a[_1de+1]),this);},addContent:function(_1df,_1e0){_1df=this._normalize(_1df,this[0]);for(var i=0,node;(node=this[i]);i++){this._place(_1df,node,_1e0,i>0);}return this;},instantiate:function(_1e1,_1e2){var c=d.isFunction(_1e1)?_1e1:d.getObject(_1e1);_1e2=_1e2||{};return this.forEach(function(node){new c(_1e2,node);});},at:function(){var t=new this._NodeListCtor();d.forEach(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});nl.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];d.forEach(nl.events,function(evt){var _1e3="on"+evt;nlp[_1e3]=function(a,b){return this.connect(_1e3,a,b);};});})();}if(!dojo._hasResource["dojo._base.query"]){dojo._hasResource["dojo._base.query"]=true;(function(){var _1e4=function(d){var trim=d.trim;var each=d.forEach;var qlc=(d._NodeListCtor=d.NodeList);var _1e5=function(){return d.doc;};var _1e6=((d.isWebKit||d.isMozilla)&&((_1e5().compatMode)=="BackCompat"));var _1e7=!!_1e5().firstChild["children"]?"children":"childNodes";var _1e8=">~+";var _1e9=false;var _1ea=function(){return true;};var _1eb=function(_1ec){if(_1e8.indexOf(_1ec.slice(-1))>=0){_1ec+=" * ";}else{_1ec+=" ";}var ts=function(s,e){return trim(_1ec.slice(s,e));};var _1ed=[];var _1ee=-1,_1ef=-1,_1f0=-1,_1f1=-1,_1f2=-1,inId=-1,_1f3=-1,lc="",cc="",_1f4;var x=0,ql=_1ec.length,_1f5=null,_1f6=null;var _1f7=function(){if(_1f3>=0){var tv=(_1f3==x)?null:ts(_1f3,x);_1f5[(_1e8.indexOf(tv)<0)?"tag":"oper"]=tv;_1f3=-1;}};var _1f8=function(){if(inId>=0){_1f5.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _1f9=function(){if(_1f2>=0){_1f5.classes.push(ts(_1f2+1,x).replace(/\\/g,""));_1f2=-1;}};var _1fa=function(){_1f8();_1f7();_1f9();};var _1fb=function(){_1fa();if(_1f1>=0){_1f5.pseudos.push({name:ts(_1f1+1,x)});}_1f5.loops=(_1f5.pseudos.length||_1f5.attrs.length||_1f5.classes.length);_1f5.oquery=_1f5.query=ts(_1f4,x);_1f5.otag=_1f5.tag=(_1f5["oper"])?null:(_1f5.tag||"*");if(_1f5.tag){_1f5.tag=_1f5.tag.toUpperCase();}if(_1ed.length&&(_1ed[_1ed.length-1].oper)){_1f5.infixOper=_1ed.pop();_1f5.query=_1f5.infixOper.query+" "+_1f5.query;}_1ed.push(_1f5);_1f5=null;};for(;lc=cc,cc=_1ec.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_1f5){_1f4=x;_1f5={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return (_1e9)?this.otag:this.tag;}};_1f3=x;}if(_1ee>=0){if(cc=="]"){if(!_1f6.attr){_1f6.attr=ts(_1ee+1,x);}else{_1f6.matchFor=ts((_1f0||_1ee+1),x);}var cmf=_1f6.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_1f6.matchFor=cmf.slice(1,-1);}}_1f5.attrs.push(_1f6);_1f6=null;_1ee=_1f0=-1;}else{if(cc=="="){var _1fc=("|~^$*".indexOf(lc)>=0)?lc:"";_1f6.type=_1fc+cc;_1f6.attr=ts(_1ee+1,x-_1fc.length);_1f0=x+1;}}}else{if(_1ef>=0){if(cc==")"){if(_1f1>=0){_1f6.value=ts(_1ef+1,x);}_1f1=_1ef=-1;}}else{if(cc=="#"){_1fa();inId=x+1;}else{if(cc=="."){_1fa();_1f2=x;}else{if(cc==":"){_1fa();_1f1=x;}else{if(cc=="["){_1fa();_1ee=x;_1f6={};}else{if(cc=="("){if(_1f1>=0){_1f6={name:ts(_1f1+1,x),value:null};_1f5.pseudos.push(_1f6);}_1ef=x;}else{if((cc==" ")&&(lc!=cc)){_1fb();}}}}}}}}}return _1ed;};var _1fd=function(_1fe,_1ff){if(!_1fe){return _1ff;}if(!_1ff){return _1fe;}return function(){return _1fe.apply(window,arguments)&&_1ff.apply(window,arguments);};};var _200=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _201=function(n){return (1==n.nodeType);};var _202="";var _203=function(elem,attr){if(!elem){return _202;}if(attr=="class"){return elem.className||_202;}if(attr=="for"){return elem.htmlFor||_202;}if(attr=="style"){return elem.style.cssText||_202;}return (_1e9?elem.getAttribute(attr):elem.getAttribute(attr,2))||_202;};var _204={"*=":function(attr,_205){return function(elem){return (_203(elem,attr).indexOf(_205)>=0);};},"^=":function(attr,_206){return function(elem){return (_203(elem,attr).indexOf(_206)==0);};},"$=":function(attr,_207){var tval=" "+_207;return function(elem){var ea=" "+_203(elem,attr);return (ea.lastIndexOf(_207)==(ea.length-_207.length));};},"~=":function(attr,_208){var tval=" "+_208+" ";return function(elem){var ea=" "+_203(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_209){var _20a=" "+_209+"-";return function(elem){var ea=" "+_203(elem,attr);return ((ea==_209)||(ea.indexOf(_20a)==0));};},"=":function(attr,_20b){return function(elem){return (_203(elem,attr)==_20b);};}};var _20c=(typeof _1e5().firstChild.nextElementSibling=="undefined");var _20d=!_20c?"nextElementSibling":"nextSibling";var _20e=!_20c?"previousElementSibling":"previousSibling";var _20f=(_20c?_201:_1ea);var _210=function(node){while(node=node[_20e]){if(_20f(node)){return false;}}return true;};var _211=function(node){while(node=node[_20d]){if(_20f(node)){return false;}}return true;};var _212=function(node){var root=node.parentNode;var i=0,tret=root[_1e7],ci=(node["_i"]||-1),cl=(root["_l"]||-1);if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}root["_l"]=l;ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_20d]){if(_20f(te)){te["_i"]=++i;if(node===te){ci=i;}}}return ci;};var _213=function(elem){return !((_212(elem))%2);};var _214=function(elem){return ((_212(elem))%2);};var _215={"checked":function(name,_216){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"first-child":function(){return _210;},"last-child":function(){return _211;},"only-child":function(name,_217){return function(node){if(!_210(node)){return false;}if(!_211(node)){return false;}return true;};},"empty":function(name,_218){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_219){var cz=_219.charAt(0);if(cz=="\""||cz=="'"){_219=_219.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_219)>=0);};},"not":function(name,_21a){var p=_1eb(_21a)[0];var _21b={el:1};if(p.tag!="*"){_21b.tag=1;}if(!p.classes.length){_21b.classes=1;}var ntf=_21c(p,_21b);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_21d){var pi=parseInt;if(_21d=="odd"){return _214;}else{if(_21d=="even"){return _213;}}if(_21d.indexOf("n")!=-1){var _21e=_21d.split("n",2);var pred=_21e[0]?((_21e[0]=="-")?-1:pi(_21e[0])):1;var idx=_21e[1]?pi(_21e[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_212(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_21d=idx;}}var _21f=pi(_21d);return function(elem){return (_212(elem)==_21f);};}};var _220=(d.isIE<9||(dojo.isIE&&dojo.isQuirks))?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_1e9?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _21c=function(_221,_222){if(!_221){return _1ea;}_222=_222||{};var ff=null;if(!("el" in _222)){ff=_1fd(ff,_201);}if(!("tag" in _222)){if(_221.tag!="*"){ff=_1fd(ff,function(elem){return (elem&&(elem.tagName==_221.getTag()));});}}if(!("classes" in _222)){each(_221.classes,function(_223,idx,arr){var re=new RegExp("(?:^|\\s)"+_223+"(?:\\s|$)");ff=_1fd(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _222)){each(_221.pseudos,function(_224){var pn=_224.name;if(_215[pn]){ff=_1fd(ff,_215[pn](pn,_224.value));}});}if(!("attrs" in _222)){each(_221.attrs,function(attr){var _225;var a=attr.attr;if(attr.type&&_204[attr.type]){_225=_204[attr.type](a,attr.matchFor);}else{if(a.length){_225=_220(a);}}if(_225){ff=_1fd(ff,_225);}});}if(!("id" in _222)){if(_221.id){ff=_1fd(ff,function(elem){return (!!elem&&(elem.id==_221.id));});}}if(!ff){if(!("default" in _222)){ff=_1ea;}}return ff;};var _226=function(_227){return function(node,ret,bag){while(node=node[_20d]){if(_20c&&(!_201(node))){continue;}if((!bag||_228(node,bag))&&_227(node)){ret.push(node);}break;}return ret;};};var _229=function(_22a){return function(root,ret,bag){var te=root[_20d];while(te){if(_20f(te)){if(bag&&!_228(te,bag)){break;}if(_22a(te)){ret.push(te);}}te=te[_20d];}return ret;};};var _22b=function(_22c){_22c=_22c||_1ea;return function(root,ret,bag){var te,x=0,tret=root[_1e7];while(te=tret[x++]){if(_20f(te)&&(!bag||_228(te,bag))&&(_22c(te,x))){ret.push(te);}}return ret;};};var _22d=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _22e={};var _22f=function(_230){var _231=_22e[_230.query];if(_231){return _231;}var io=_230.infixOper;var oper=(io?io.oper:"");var _232=_21c(_230,{el:1});var qt=_230.tag;var _233=("*"==qt);var ecs=_1e5()["getElementsByClassName"];if(!oper){if(_230.id){_232=(!_230.loops&&_233)?_1ea:_21c(_230,{el:1,id:1});_231=function(root,arr){var te=d.byId(_230.id,(root.ownerDocument||root));if(!te||!_232(te)){return;}if(9==root.nodeType){return _200(te,arr);}else{if(_22d(te,root)){return _200(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_230.classes.length&&!_1e6){_232=_21c(_230,{el:1,classes:1,id:1});var _234=_230.classes.join(" ");_231=function(root,arr,bag){var ret=_200(0,arr),te,x=0;var tret=root.getElementsByClassName(_234);while((te=tret[x++])){if(_232(te,root)&&_228(te,bag)){ret.push(te);}}return ret;};}else{if(!_233&&!_230.loops){_231=function(root,arr,bag){var ret=_200(0,arr),te,x=0;var tret=root.getElementsByTagName(_230.getTag());while((te=tret[x++])){if(_228(te,bag)){ret.push(te);}}return ret;};}else{_232=_21c(_230,{el:1,tag:1,id:1});_231=function(root,arr,bag){var ret=_200(0,arr),te,x=0;var tret=root.getElementsByTagName(_230.getTag());while((te=tret[x++])){if(_232(te,root)&&_228(te,bag)){ret.push(te);}}return ret;};}}}}else{var _235={el:1};if(_233){_235.tag=1;}_232=_21c(_230,_235);if("+"==oper){_231=_226(_232);}else{if("~"==oper){_231=_229(_232);}else{if(">"==oper){_231=_22b(_232);}}}}return _22e[_230.query]=_231;};var _236=function(root,_237){var _238=_200(root),qp,x,te,qpl=_237.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_237[i];x=_238.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_22f(qp);for(var j=0;(te=_238[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_238=ret;}return ret;};var _239={},_23a={};var _23b=function(_23c){var _23d=_1eb(trim(_23c));if(_23d.length==1){var tef=_22f(_23d[0]);return function(root){var r=tef(root,new qlc());if(r){r.nozip=true;}return r;};}return function(root){return _236(root,_23d);};};var nua=navigator.userAgent;var wk="WebKit/";var _23e=(d.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528));var _23f=d.isIE?"commentStrip":"nozip";var qsa="querySelectorAll";var _240=(!!_1e5()[qsa]&&(!d.isSafari||(d.isSafari>3.1)||_23e));var _241=/n\+\d|([^ ])?([>~+])([^ =])?/g;var _242=function(_243,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_243;};var _244=function(_245,_246){_245=_245.replace(_241,_242);if(_240){var _247=_23a[_245];if(_247&&!_246){return _247;}}var _248=_239[_245];if(_248){return _248;}var qcz=_245.charAt(0);var _249=(-1==_245.indexOf(" "));if((_245.indexOf("#")>=0)&&(_249)){_246=true;}var _24a=(_240&&(!_246)&&(_1e8.indexOf(qcz)==-1)&&(!d.isIE||(_245.indexOf(":")==-1))&&(!(_1e6&&(_245.indexOf(".")>=0)))&&(_245.indexOf(":contains")==-1)&&(_245.indexOf(":checked")==-1)&&(_245.indexOf("|=")==-1));if(_24a){var tq=(_1e8.indexOf(_245.charAt(_245.length-1))>=0)?(_245+" *"):_245;return _23a[_245]=function(root){try{if(!((9==root.nodeType)||_249)){throw "";}var r=root[qsa](tq);r[_23f]=true;return r;}catch(e){return _244(_245,true)(root);}};}else{var _24b=_245.split(/\s*,\s*/);return _239[_245]=((_24b.length<2)?_23b(_245):function(root){var _24c=0,ret=[],tp;while((tp=_24b[_24c++])){ret=ret.concat(_23b(tp)(root));}return ret;});}};var _24d=0;var _24e=d.isIE?function(node){if(_1e9){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_24d)||_24d);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_24d));};var _228=function(node,bag){if(!bag){return 1;}var id=_24e(node);if(!bag[id]){return bag[id]=1;}return 0;};var _24f="_zipIdx";var _250=function(arr){if(arr&&arr.nozip){return (qlc._wrap)?qlc._wrap(arr):arr;}var ret=new qlc();if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_24d++;if(d.isIE&&_1e9){var _251=_24d+"";arr[0].setAttribute(_24f,_251);for(var x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_24f)!=_251){ret.push(te);}te.setAttribute(_24f,_251);}}else{if(d.isIE&&arr.commentStrip){try{for(var x=1,te;te=arr[x];x++){if(_201(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_24f]=_24d;}for(var x=1,te;te=arr[x];x++){if(arr[x][_24f]!=_24d){ret.push(te);}te[_24f]=_24d;}}}return ret;};d.query=function(_252,root){qlc=d._NodeListCtor;if(!_252){return new qlc();}if(_252.constructor==qlc){return _252;}if(typeof _252!="string"){return new qlc(_252);}if(typeof root=="string"){root=d.byId(root);if(!root){return new qlc();}}root=root||_1e5();var od=root.ownerDocument||root.documentElement;_1e9=(root.contentType&&root.contentType=="application/xml")||(d.isOpera&&(root.doctype||od.toString()=="[object XMLDocument]"))||(!!od)&&(d.isIE?od.xml:(root.xmlVersion||od.xmlVersion));var r=_244(_252)(root);if(r&&r.nozip&&!qlc._wrap){return r;}return _250(r);};d.query.pseudos=_215;d._filterQueryResult=function(_253,_254,root){var _255=new d._NodeListCtor(),_256=_1eb(_254),_257=(_256.length==1&&!/[^\w#\.]/.test(_254))?_21c(_256[0]):function(node){return dojo.query(_254,root).indexOf(node)!=-1;};for(var x=0,te;te=_253[x];x++){if(_257(te)){_255.push(te);}}return _255;};};var _258=function(){acme={trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;},forEach:function(arr,_259,_25a){if(!arr||!arr.length){return;}for(var i=0,l=arr.length;i<l;++i){_259.call(_25a||window,arr[i],i,arr);}},byId:function(id,doc){if(typeof id=="string"){return (doc||document).getElementById(id);}else{return id;}},doc:document,NodeList:Array};var n=navigator;var dua=n.userAgent;var dav=n.appVersion;var tv=parseFloat(dav);acme.isOpera=(dua.indexOf("Opera")>=0)?tv:undefined;acme.isKhtml=(dav.indexOf("Konqueror")>=0)?tv:undefined;acme.isWebKit=parseFloat(dua.split("WebKit/")[1])||undefined;acme.isChrome=parseFloat(dua.split("Chrome/")[1])||undefined;var _25b=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_25b&&!acme.isChrome){acme.isSafari=parseFloat(dav.split("Version/")[1]);if(!acme.isSafari||parseFloat(dav.substr(_25b+7))<=419.3){acme.isSafari=2;}}if(document.all&&!acme.isOpera){acme.isIE=parseFloat(dav.split("MSIE ")[1])||undefined;}Array._wrap=function(arr){return arr;};return acme;};if(this["dojo"]){dojo.provide("dojo._base.query");_1e4(this["queryPortability"]||this["acme"]||dojo);}else{_1e4(this["queryPortability"]||this["acme"]||_258());}})();}if(!dojo._hasResource["dojo._base.xhr"]){dojo._hasResource["dojo._base.xhr"]=true;dojo.provide("dojo._base.xhr");(function(){var _25c=dojo,cfg=_25c.config;function _25d(obj,name,_25e){if(_25e===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_25e];}else{if(_25c.isArray(val)){val.push(_25e);}else{obj[name]=_25e;}}};dojo.fieldToObject=function(_25f){var ret=null;var item=_25c.byId(_25f);if(item){var _260=item.name;var type=(item.type||"").toLowerCase();if(_260&&type&&!item.disabled){if(type=="radio"||type=="checkbox"){if(item.checked){ret=item.value;}}else{if(item.multiple){ret=[];_25c.query("option",item).forEach(function(opt){if(opt.selected){ret.push(opt.value);}});}else{ret=item.value;}}}}return ret;};dojo.formToObject=function(_261){var ret={};var _262="file|submit|image|reset|button|";_25c.forEach(dojo.byId(_261).elements,function(item){var _263=item.name;var type=(item.type||"").toLowerCase();if(_263&&type&&_262.indexOf(type)==-1&&!item.disabled){_25d(ret,_263,_25c.fieldToObject(item));if(type=="image"){ret[_263+".x"]=ret[_263+".y"]=ret[_263].x=ret[_263].y=0;}}});return ret;};dojo.objectToQuery=function(map){var enc=encodeURIComponent;var _264=[];var _265={};for(var name in map){var _266=map[name];if(_266!=_265[name]){var _267=enc(name)+"=";if(_25c.isArray(_266)){for(var i=0;i<_266.length;i++){_264.push(_267+enc(_266[i]));}}else{_264.push(_267+enc(_266));}}}return _264.join("&");};dojo.formToQuery=function(_268){return _25c.objectToQuery(_25c.formToObject(_268));};dojo.formToJson=function(_269,_26a){return _25c.toJson(_25c.formToObject(_269),_26a);};dojo.queryToObject=function(str){var ret={};var qp=str.split("&");var dec=decodeURIComponent;_25c.forEach(qp,function(item){if(item.length){var _26b=item.split("=");var name=dec(_26b.shift());var val=dec(_26b.join("="));if(typeof ret[name]=="string"){ret[name]=[ret[name]];}if(_25c.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}});return ret;};dojo._blockAsync=false;var _26c=_25c._contentHandlers=dojo.contentHandlers={text:function(xhr){return xhr.responseText;},json:function(xhr){return _25c.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!dojo.config.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _26d=xhr.responseText;var _26e=_26d.indexOf("/*");var _26f=_26d.lastIndexOf("*/");if(_26e==-1||_26f==-1){throw new Error("JSON was not comment filtered");}return _25c.fromJson(_26d.substring(_26e+2,_26f));},javascript:function(xhr){return _25c.eval(xhr.responseText);},xml:function(xhr){var _270=xhr.responseXML;if(_25c.isIE&&(!_270||!_270.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_25c.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_270=dom;}catch(e){return false;}return true;});}return _270;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _26c["json-comment-filtered"](xhr);}else{return _26c["json"](xhr);}}};dojo._ioSetArgs=function(args,_271,_272,_273){var _274={args:args,url:args.url};var _275=null;if(args.form){var form=_25c.byId(args.form);var _276=form.getAttributeNode("action");_274.url=_274.url||(_276?_276.value:null);_275=_25c.formToObject(form);}var _277=[{}];if(_275){_277.push(_275);}if(args.content){_277.push(args.content);}if(args.preventCache){_277.push({"dojo.preventCache":new Date().valueOf()});}_274.query=_25c.objectToQuery(_25c.mixin.apply(null,_277));_274.handleAs=args.handleAs||"text";var d=new _25c.Deferred(_271);d.addCallbacks(_272,function(_278){return _273(_278,d);});var ld=args.load;if(ld&&_25c.isFunction(ld)){d.addCallback(function(_279){return ld.call(args,_279,_274);});}var err=args.error;if(err&&_25c.isFunction(err)){d.addErrback(function(_27a){return err.call(args,_27a,_274);});}var _27b=args.handle;if(_27b&&_25c.isFunction(_27b)){d.addBoth(function(_27c){return _27b.call(args,_27c,_274);});}if(cfg.ioPublish&&_25c.publish&&_274.args.ioPublish!==false){d.addCallbacks(function(res){_25c.publish("/dojo/io/load",[d,res]);return res;},function(res){_25c.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){_25c.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_274;return d;};var _27d=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _27e=typeof xhr.abort;if(_27e=="function"||_27e=="object"||_27e=="unknown"){xhr.abort();}var err=dfd.ioArgs.error;if(!err){err=new Error("xhr cancelled");err.dojoType="cancel";}return err;};var _27f=function(dfd){var ret=_26c[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _280=function(_281,dfd){if(!dfd.ioArgs.args.failOk){console.error(_281);}return _281;};var _282=null;var _283=[];var _284=0;var _285=function(dfd){if(_284<=0){_284=0;if(cfg.ioPublish&&_25c.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){_25c.publish("/dojo/io/stop");}}};var _286=function(){var now=(new Date()).getTime();if(!_25c._blockAsync){for(var i=0,tif;i<_283.length&&(tif=_283[i]);i++){var dfd=tif.dfd;var func=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_283.splice(i--,1);_284-=1;}else{if(tif.ioCheck(dfd)){_283.splice(i--,1);tif.resHandle(dfd);_284-=1;}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_283.splice(i--,1);var err=new Error("timeout exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();_284-=1;}}}}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(e){dfd.errback(e);}}}}_285(dfd);if(!_283.length){clearInterval(_282);_282=null;return;}};dojo._ioCancelAll=function(){try{_25c.forEach(_283,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(_25c.isIE){_25c.addOnWindowUnload(_25c._ioCancelAll);}_25c._ioNotifyStart=function(dfd){if(cfg.ioPublish&&_25c.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_284){_25c.publish("/dojo/io/start");}_284+=1;_25c.publish("/dojo/io/send",[dfd]);}};_25c._ioWatch=function(dfd,_287,_288,_289){var args=dfd.ioArgs.args;if(args.timeout){dfd.startTime=(new Date()).getTime();}_283.push({dfd:dfd,validCheck:_287,ioCheck:_288,resHandle:_289});if(!_282){_282=setInterval(_286,50);}if(args.sync){_286();}};var _28a="application/x-www-form-urlencoded";var _28b=function(dfd){return dfd.ioArgs.xhr.readyState;};var _28c=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _28d=function(dfd){var xhr=dfd.ioArgs.xhr;if(_25c._isDocumentOk(xhr)){dfd.callback(dfd);}else{var err=new Error("Unable to load "+dfd.ioArgs.url+" status:"+xhr.status);err.status=xhr.status;err.responseText=xhr.responseText;dfd.errback(err);}};dojo._ioAddQueryToUrl=function(_28e){if(_28e.query.length){_28e.url+=(_28e.url.indexOf("?")==-1?"?":"&")+_28e.query;_28e.query=null;}};dojo.xhr=function(_28f,args,_290){var dfd=_25c._ioSetArgs(args,_27d,_27f,_280);var _291=dfd.ioArgs;var xhr=_291.xhr=_25c._xhrObj(_291.args);if(!xhr){dfd.cancel();return dfd;}if("postData" in args){_291.query=args.postData;}else{if("putData" in args){_291.query=args.putData;}else{if("rawBody" in args){_291.query=args.rawBody;}else{if((arguments.length>2&&!_290)||"POST|PUT".indexOf(_28f.toUpperCase())==-1){_25c._ioAddQueryToUrl(_291);}}}}xhr.open(_28f,_291.url,args.sync!==true,args.user||undefined,args.password||undefined);if(args.headers){for(var hdr in args.headers){if(hdr.toLowerCase()==="content-type"&&!args.contentType){args.contentType=args.headers[hdr];}else{if(args.headers[hdr]){xhr.setRequestHeader(hdr,args.headers[hdr]);}}}}xhr.setRequestHeader("Content-Type",args.contentType||_28a);if(!args.headers||!("X-Requested-With" in args.headers)){xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");}_25c._ioNotifyStart(dfd);if(dojo.config.debugAtAllCosts){xhr.send(_291.query);}else{try{xhr.send(_291.query);}catch(e){_291.error=e;dfd.cancel();}}_25c._ioWatch(dfd,_28b,_28c,_28d);xhr=null;return dfd;};dojo.xhrGet=function(args){return _25c.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return _25c.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return _25c.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return _25c.xhr("DELETE",args);};})();}if(!dojo._hasResource["dojo._base.fx"]){dojo._hasResource["dojo._base.fx"]=true;dojo.provide("dojo._base.fx");(function(){var d=dojo;var _292=d._mixin;dojo._Line=function(_293,end){this.start=_293;this.end=end;};dojo._Line.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};dojo.Animation=function(args){_292(this,args);if(d.isArray(this.curve)){this.curve=new d._Line(this.curve[0],this.curve[1]);}};d._Animation=d.Animation;d.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _294=this._percent,_295=this.easing;return _295?_295(_294):_294;},_fire:function(evt,args){var a=args||[];if(this[evt]){if(d.config.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_296,_297){var _298=this;if(_298._delayTimer){_298._clearTimer();}if(_297){_298._stopTimer();_298._active=_298._paused=false;_298._percent=0;}else{if(_298._active&&!_298._paused){return _298;}}_298._fire("beforeBegin",[_298.node]);var de=_296||_298.delay,_299=dojo.hitch(_298,"_play",_297);if(de>0){_298._delayTimer=setTimeout(_299,de);return _298;}_299();return _298;},_play:function(_29a){var _29b=this;if(_29b._delayTimer){_29b._clearTimer();}_29b._startTime=new Date().valueOf();if(_29b._paused){_29b._startTime-=_29b.duration*_29b._percent;}_29b._active=true;_29b._paused=false;var _29c=_29b.curve.getValue(_29b._getStep());if(!_29b._percent){if(!_29b._startRepeatCount){_29b._startRepeatCount=_29b.repeat;}_29b._fire("onBegin",[_29c]);}_29b._fire("onPlay",[_29c]);_29b._cycle();return _29b;},pause:function(){var _29d=this;if(_29d._delayTimer){_29d._clearTimer();}_29d._stopTimer();if(!_29d._active){return _29d;}_29d._paused=true;_29d._fire("onPause",[_29d.curve.getValue(_29d._getStep())]);return _29d;},gotoPercent:function(_29e,_29f){var _2a0=this;_2a0._stopTimer();_2a0._active=_2a0._paused=true;_2a0._percent=_29e;if(_29f){_2a0.play();}return _2a0;},stop:function(_2a1){var _2a2=this;if(_2a2._delayTimer){_2a2._clearTimer();}if(!_2a2._timer){return _2a2;}_2a2._stopTimer();if(_2a1){_2a2._percent=1;}_2a2._fire("onStop",[_2a2.curve.getValue(_2a2._getStep())]);_2a2._active=_2a2._paused=false;return _2a2;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _2a3=this;if(_2a3._active){var curr=new Date().valueOf();var step=(curr-_2a3._startTime)/(_2a3.duration);if(step>=1){step=1;}_2a3._percent=step;if(_2a3.easing){step=_2a3.easing(step);}_2a3._fire("onAnimate",[_2a3.curve.getValue(step)]);if(_2a3._percent<1){_2a3._startTimer();}else{_2a3._active=false;if(_2a3.repeat>0){_2a3.repeat--;_2a3.play(null,true);}else{if(_2a3.repeat==-1){_2a3.play(null,true);}else{if(_2a3._startRepeatCount){_2a3.repeat=_2a3._startRepeatCount;_2a3._startRepeatCount=0;}}}_2a3._percent=0;_2a3._fire("onEnd",[_2a3.node]);!_2a3.repeat&&_2a3._stopTimer();}}return _2a3;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_2a4=null,_2a5={run:function(){}};d.extend(d.Animation,{_startTimer:function(){if(!this._timer){this._timer=d.connect(_2a5,"run",this,"_cycle");ctr++;}if(!_2a4){_2a4=setInterval(d.hitch(_2a5,"run"),this.rate);}},_stopTimer:function(){if(this._timer){d.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_2a4);_2a4=null;ctr=0;}}});var _2a6=d.isIE?function(node){var ns=node.style;if(!ns.width.length&&d.style(node,"width")=="auto"){ns.width="auto";}}:function(){};dojo._fade=function(args){args.node=d.byId(args.node);var _2a7=_292({properties:{}},args),_2a8=(_2a7.properties.opacity={});_2a8.start=!("start" in _2a7)?function(){return +d.style(_2a7.node,"opacity")||0;}:_2a7.start;_2a8.end=_2a7.end;var anim=d.animateProperty(_2a7);d.connect(anim,"beforeBegin",d.partial(_2a6,_2a7.node));return anim;};dojo.fadeIn=function(args){return d._fade(_292({end:1},args));};dojo.fadeOut=function(args){return d._fade(_292({end:0},args));};dojo._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _2a9=function(_2aa){this._properties=_2aa;for(var p in _2aa){var prop=_2aa[p];if(prop.start instanceof d.Color){prop.tempColor=new d.Color();}}};_2a9.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_2ab=prop.start;if(_2ab instanceof d.Color){ret[p]=d.blendColors(_2ab,prop.end,r,prop.tempColor).toCss();}else{if(!d.isArray(_2ab)){ret[p]=((prop.end-_2ab)*r)+_2ab+(p!="opacity"?prop.units||"px":0);}}}return ret;};dojo.animateProperty=function(args){var n=args.node=d.byId(args.node);if(!args.easing){args.easing=d._defaultEasing;}var anim=new d.Animation(args);d.connect(anim,"beforeBegin",anim,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var prop=this.properties[p];if(d.isFunction(prop)){prop=prop(n);}prop=pm[p]=_292({},(d.isObject(prop)?prop:{end:prop}));if(d.isFunction(prop.start)){prop.start=prop.start(n);}if(d.isFunction(prop.end)){prop.end=prop.end(n);}var _2ac=(p.toLowerCase().indexOf("color")>=0);function _2ad(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=d.style(node,p);return (p=="opacity")?+v:(_2ac?v:parseFloat(v));};if(!("end" in prop)){prop.end=_2ad(n,p);}else{if(!("start" in prop)){prop.start=_2ad(n,p);}}if(_2ac){prop.start=new d.Color(prop.start);prop.end=new d.Color(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _2a9(pm);});d.connect(anim,"onAnimate",d.hitch(d,"style",anim.node));return anim;};dojo.anim=function(node,_2ae,_2af,_2b0,_2b1,_2b2){return d.animateProperty({node:node,duration:_2af||d.Animation.prototype.duration,properties:_2ae,easing:_2b0,onEnd:_2b1}).play(_2b2||0);};})();}if(!dojo._hasResource["dojo._base.browser"]){dojo._hasResource["dojo._base.browser"]=true;dojo.provide("dojo._base.browser");dojo.forEach(dojo.config.require,function(i){dojo["require"](i);});}if(!dojo._hasResource["dojo._base"]){dojo._hasResource["dojo._base"]=true;dojo.provide("dojo._base");}if(dojo.isBrowser&&(document.readyState==="complete"||dojo.config.afterOnLoad)){window.setTimeout(dojo._loadInit,100);}})(); diff --git a/lib/dojo/dojo.js.uncompressed.js b/lib/dojo/dojo.js.uncompressed.js index 07593d88e..af7051aaf 100644 --- a/lib/dojo/dojo.js.uncompressed.js +++ b/lib/dojo/dojo.js.uncompressed.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -122,7 +122,7 @@ djConfig = { // of calling `dojo.registerModulePath("foo", "../../bar");`. Multiple // modules may be configured via `djConfig.modulePaths`. modulePaths: {}, - // afterOnLoad: Boolean + // afterOnLoad: Boolean // Indicates Dojo was added to the page after the page load. In this case // Dojo will not wait for the page DOMContentLoad/load events and fire // its dojo.addOnLoad callbacks after making sure all outstanding @@ -149,7 +149,7 @@ djConfig = { // dojoBlankHtmlUrl: String // Used by some modules to configure an empty iframe. Used by dojo.io.iframe and // dojo.back, and dijit popup support in IE where an iframe is needed to make sure native - // controls do not bleed through the popups. Normally this configuration variable + // controls do not bleed through the popups. Normally this configuration variable // does not need to be set, except when using cross-domain/CDN Dojo builds. // Save dojo/resources/blank.html to your domain and set `djConfig.dojoBlankHtmlUrl` // to the path on your domain your copy of blank.html. @@ -195,7 +195,7 @@ djConfig = { "groupEnd", "info", "profile", "profileEnd", "time", "timeEnd", "trace", "warn", "log" ]; - var i=0, tn; + var i = 0, tn; while((tn=cn[i++])){ if(!console[tn]){ (function(){ @@ -255,9 +255,13 @@ dojo.global = { debugAtAllCosts: false }; - if(typeof djConfig != "undefined"){ - for(var opt in djConfig){ - d.config[opt] = djConfig[opt]; + // FIXME: 2.0, drop djConfig support. Use dojoConfig exclusively for global config. + var cfg = typeof djConfig != "undefined" ? djConfig : + typeof dojoConfig != "undefined" ? dojoConfig : null; + + if(cfg){ + for(var c in cfg){ + d.config[c] = cfg[c]; } } @@ -269,7 +273,7 @@ dojo.global = { =====*/ dojo.locale = d.config.locale; - var rev = "$Rev: 22487 $".match(/\d+/); + var rev = "$Rev: 24595 $".match(/\d+/); /*===== dojo.version = function(){ @@ -293,7 +297,7 @@ dojo.global = { } =====*/ dojo.version = { - major: 1, minor: 5, patch: 0, flag: "", + major: 1, minor: 6, patch: 1, flag: "", revision: rev ? +rev[0] : NaN, toString: function(){ with(d.version){ @@ -369,7 +373,7 @@ dojo.global = { // | constructor: function(properties){ // | // property configuration: // | dojo.mixin(this, properties); - // | + // | // | console.log(this.quip); // | // ... // | }, @@ -390,7 +394,7 @@ dojo.global = { // | name: "Carl Brutanananadilewski" // | } // | ); - // | + // | // | // will print "Carl Brutanananadilewski" // | console.log(flattened.name); // | // will print "true" @@ -465,10 +469,7 @@ dojo.global = { // determine if an object supports a given method // description: // useful for longer api chains where you have to test each object in - // the chain. Useful only for object and method detection. - // Not useful for testing generic properties on an object. - // In particular, dojo.exists("foo.bar") when foo.bar = "" - // will return false. Use ("bar" in foo) to test for those cases. + // the chain. Useful for object and method detection. // name: // Path to an object, in the form "A.B.C". // obj: @@ -487,7 +488,7 @@ dojo.global = { // | // search from a particular scope // | dojo.exists("bar", foo); // true // | dojo.exists("bar.baz", foo); // false - return !!d.getObject(name, false, obj); // Boolean + return d.getObject(name, false, obj) !== undefined; // Boolean } dojo["eval"] = function(/*String*/ scriptFragment){ @@ -553,9 +554,8 @@ dojo.global = { * loader.js - A bootstrap module. Runs before the hostenv_*.js file. Contains * all of the package loading methods. */ - (function(){ - var d = dojo; + var d = dojo, currentModule; d.mixin(d, { _loadedModules: {}, @@ -587,11 +587,11 @@ dojo.global = { _loadedUrls: [], - //WARNING: + //WARNING: // This variable is referenced by packages outside of bootstrap: // FloatingPane.js and undo/browser.js _postLoad: false, - + //Egad! Lots of test files push on this directly instead of using dojo.addOnLoad. _loaders: [], _unloaders: [], @@ -610,21 +610,24 @@ dojo.global = { // not caught by us, so the caller will see it. We return a true // value if and only if the script is found. // - // relpath: + // relpath: // A relative path to a script (no leading '/', and typically ending // in '.js'). - // module: + // module: // A module whose existance to check for after loading a path. Can be // used to determine success or failure of the load. - // cb: + // cb: // a callback function to pass the result of evaluating the script var uri = ((relpath.charAt(0) == '/' || relpath.match(/^\w+:/)) ? "" : d.baseUrl) + relpath; try{ + currentModule = module; return !module ? d._loadUri(uri, cb) : d._loadUriAndCheck(uri, module, cb); // Boolean }catch(e){ console.error(e); return false; // Boolean + }finally{ + currentModule = null; } } @@ -637,7 +640,7 @@ dojo.global = { // it succeeded. Returns false if the URI reading failed. Throws if // the evaluation throws. // uri: a uri which points at the script to be loaded - // cb: + // cb: // a callback function to process the result of evaluating the script // as an expression, typically used by the resource bundle loader to // load JSON-style resources @@ -651,7 +654,8 @@ dojo.global = { d._loadedUrls[uri] = true; d._loadedUrls.push(uri); if(cb){ - contents = '('+contents+')'; + //conditional to support script-inject i18n bundle format + contents = /^define\(/.test(contents) ? contents : '('+contents+')'; }else{ //Only do the scoping if no callback. If a callback is specified, //it is most likely the i18n bundle stuff. @@ -663,16 +667,16 @@ dojo.global = { } // Check to see if we need to call _callLoaded() due to an addOnLoad() that arrived while we were busy downloading if(--d._inFlightCount == 0 && d._postLoad && d._loaders.length){ - // We shouldn't be allowed to get here but Firefox allows an event - // (mouse, keybd, async xhrGet) to interrupt a synchronous xhrGet. + // We shouldn't be allowed to get here but Firefox allows an event + // (mouse, keybd, async xhrGet) to interrupt a synchronous xhrGet. // If the current script block contains multiple require() statements, then after each // require() returns, inFlightCount == 0, but we want to hold the _callLoaded() until // all require()s are done since the out-of-sequence addOnLoad() presumably needs them all. // setTimeout allows the next require() to start (if needed), and then we check this again. - setTimeout(function(){ - // If inFlightCount > 0, then multiple require()s are running sequentially and + setTimeout(function(){ + // If inFlightCount > 0, then multiple require()s are running sequentially and // the next require() started after setTimeout() was executed but before we got here. - if(d._inFlightCount == 0){ + if(d._inFlightCount == 0){ d._callLoaded(); } }, 0); @@ -695,10 +699,10 @@ dojo.global = { dojo.loaded = function(){ // summary: // signal fired when initial environment and package loading is - // complete. You should use dojo.addOnLoad() instead of doing a + // complete. You should use dojo.addOnLoad() instead of doing a // direct dojo.connect() to this method in order to handle // initialization tasks that require the environment to be - // initialized. In a browser host, declarative widgets will + // initialized. In a browser host, declarative widgets will // be constructed when this function finishes runing. d._loadNotifying = true; d._postLoad = true; @@ -725,8 +729,8 @@ dojo.global = { dojo.unloaded = function(){ // summary: // signal fired by impending environment destruction. You should use - // dojo.addOnUnload() instead of doing a direct dojo.connect() to this - // method to perform page/application cleanup methods. See + // dojo.addOnUnload() instead of doing a direct dojo.connect() to this + // method to perform page/application cleanup methods. See // dojo.addOnUnload for more info. var mll = d._unloaders; while(mll.length){ @@ -745,13 +749,13 @@ dojo.global = { dojo.ready = dojo.addOnLoad = function(/*Object*/obj, /*String|Function?*/functionName){ // summary: - // Registers a function to be triggered after the DOM and dojo.require() calls + // Registers a function to be triggered after the DOM and dojo.require() calls // have finished loading. // // description: // Registers a function to be triggered after the DOM has finished - // loading and `dojo.require` modules have loaded. Widgets declared in markup - // have been instantiated if `djConfig.parseOnLoad` is true when this fires. + // loading and `dojo.require` modules have loaded. Widgets declared in markup + // have been instantiated if `djConfig.parseOnLoad` is true when this fires. // // Images and CSS files may or may not have finished downloading when // the specified function is called. (Note that widgets' CSS and HTML @@ -794,7 +798,7 @@ dojo.global = { dojo._modulesLoaded = function(){ if(d._postLoad){ return; } - if(d._inFlightCount > 0){ + if(d._inFlightCount > 0){ console.warn("files still in flight!"); return; } @@ -826,8 +830,8 @@ dojo.global = { var syms = modulename.split("."); for(var i = syms.length; i>0; i--){ var parentModule = syms.slice(0, i).join("."); - if(i == 1 && !d._moduleHasPrefix(parentModule)){ - // Support default module directory (sibling of dojo) for top-level modules + if(i == 1 && !d._moduleHasPrefix(parentModule)){ + // Support default module directory (sibling of dojo) for top-level modules syms[0] = "../" + syms[0]; }else{ var parentModulePath = d._getModulePrefix(parentModule); @@ -862,87 +866,95 @@ dojo.global = { dojo._loadModule = dojo.require = function(/*String*/moduleName, /*Boolean?*/omitModuleCheck){ // summary: // loads a Javascript module from the appropriate URI - // moduleName: + // + // moduleName: String // module name to load, using periods for separators, // e.g. "dojo.date.locale". Module paths are de-referenced by dojo's // internal mapping of locations to names and are disambiguated by // longest prefix. See `dojo.registerModulePath()` for details on // registering new modules. - // omitModuleCheck: + // + // omitModuleCheck: Boolean? // if `true`, omitModuleCheck skips the step of ensuring that the // loaded file actually defines the symbol it is referenced by. // For example if it called as `dojo.require("a.b.c")` and the // file located at `a/b/c.js` does not define an object `a.b.c`, // and exception will be throws whereas no exception is raised // when called as `dojo.require("a.b.c", true)` + // // description: // Modules are loaded via dojo.require by using one of two loaders: the normal loader // and the xdomain loader. The xdomain loader is used when dojo was built with a // custom build that specified loader=xdomain and the module lives on a modulePath // that is a whole URL, with protocol and a domain. The versions of Dojo that are on // the Google and AOL CDNs use the xdomain loader. - // + // // If the module is loaded via the xdomain loader, it is an asynchronous load, since // the module is added via a dynamically created script tag. This - // means that dojo.require() can return before the module has loaded. However, this + // means that dojo.require() can return before the module has loaded. However, this // should only happen in the case where you do dojo.require calls in the top-level // HTML page, or if you purposely avoid the loader checking for dojo.require // dependencies in your module by using a syntax like dojo["require"] to load the module. - // + // // Sometimes it is useful to not have the loader detect the dojo.require calls in the // module so that you can dynamically load the modules as a result of an action on the // page, instead of right at module load time. - // + // // Also, for script blocks in an HTML page, the loader does not pre-process them, so // it does not know to download the modules before the dojo.require calls occur. - // + // // So, in those two cases, when you want on-the-fly module loading or for script blocks // in the HTML page, special care must be taken if the dojo.required code is loaded // asynchronously. To make sure you can execute code that depends on the dojo.required // modules, be sure to add the code that depends on the modules in a dojo.addOnLoad() // callback. dojo.addOnLoad waits for all outstanding modules to finish loading before - // executing. Example: - // - // | <script type="text/javascript"> - // | dojo.require("foo"); - // | dojo.require("bar"); - // | dojo.addOnLoad(function(){ - // | //you can now safely do something with foo and bar - // | }); - // | </script> - // + // executing. + // // This type of syntax works with both xdomain and normal loaders, so it is good // practice to always use this idiom for on-the-fly code loading and in HTML script // blocks. If at some point you change loaders and where the code is loaded from, // it will all still work. - // + // // More on how dojo.require // `dojo.require("A.B")` first checks to see if symbol A.B is // defined. If it is, it is simply returned (nothing to do). - // + // // If it is not defined, it will look for `A/B.js` in the script root // directory. - // - // `dojo.require` throws an excpetion if it cannot find a file + // + // `dojo.require` throws an exception if it cannot find a file // to load, or if the symbol `A.B` is not defined after loading. - // + // // It returns the object `A.B`, but note the caveats above about on-the-fly loading and // HTML script blocks when the xdomain loader is loading a module. - // + // // `dojo.require()` does nothing about importing symbols into // the current namespace. It is presumed that the caller will - // take care of that. For example, to import all symbols into a - // local block, you might write: - // + // take care of that. + // + // example: + // To use dojo.require in conjunction with dojo.ready: + // + // | dojo.require("foo"); + // | dojo.require("bar"); + // | dojo.addOnLoad(function(){ + // | //you can now safely do something with foo and bar + // | }); + // + // example: + // For example, to import all symbols into a local block, you might write: + // // | with (dojo.require("A.B")) { // | ... // | } - // + // // And to import just the leaf symbol to a local variable: - // + // // | var B = dojo.require("A.B"); // | ... - // returns: the required namespace object + // + // returns: + // the required namespace object omitModuleCheck = d._global_omit_module_check || omitModuleCheck; //Check if it is already loaded. @@ -953,10 +965,8 @@ dojo.global = { // convert periods to slashes var relpath = d._getModuleSymbols(moduleName).join("/") + '.js'; - var modArg = !omitModuleCheck ? moduleName : null; var ok = d._loadPath(relpath, modArg); - if(!ok && !omitModuleCheck){ throw new Error("Could not load '" + moduleName + "'; last tried '" + relpath + "'"); } @@ -967,7 +977,7 @@ dojo.global = { // pass in false so we can give better error module = d._loadedModules[moduleName]; if(!module){ - throw new Error("symbol '" + moduleName + "' is not defined after loading '" + relpath + "'"); + throw new Error("symbol '" + moduleName + "' is not defined after loading '" + relpath + "'"); } } @@ -988,14 +998,14 @@ dojo.global = { // the file name. For example, `js/dojo/foo.js` must have // `dojo.provide("dojo.foo");` before any calls to // `dojo.require()` are made. - // + // // For backwards compatibility reasons, in addition to registering // the resource, `dojo.provide()` also ensures that the javascript // object for the module exists. For example, // `dojo.provide("dojox.data.FlickrStore")`, in addition to // registering that `FlickrStore.js` is a resource for the // `dojox.data` module, will ensure that the `dojox.data` - // javascript object exists, so that calls like + // javascript object exists, so that calls like // `dojo.data.foo = function(){ ... }` don't fail. // // In the case of a build where multiple javascript source files @@ -1004,11 +1014,11 @@ dojo.global = { // note that it includes multiple resources. // // resourceName: String - // A dot-sperated string identifying a resource. + // A dot-sperated string identifying a resource. // // example: // Safely create a `my` object, and make dojo.require("my.CustomModule") work - // | dojo.provide("my.CustomModule"); + // | dojo.provide("my.CustomModule"); //Make sure we have a string. resourceName = resourceName + ""; @@ -1065,7 +1075,7 @@ dojo.global = { if(condition === true){ // FIXME: why do we support chained require()'s here? does the build system? var args = []; - for(var i = 1; i < arguments.length; i++){ + for(var i = 1; i < arguments.length; i++){ args.push(arguments[i]); } d.require.apply(d, args); @@ -1075,13 +1085,13 @@ dojo.global = { dojo.requireAfterIf = d.requireIf; dojo.registerModulePath = function(/*String*/module, /*String*/prefix){ - // summary: + // summary: // Maps a module name to a path - // description: + // description: // An unregistered module is given the default path of ../[module], // relative to Dojo root. For example, module acme is mapped to // ../acme. If you want to use a different module name, use - // dojo.registerModulePath. + // dojo.registerModulePath. // example: // If your dojo.js is located at this location in the web root: // | /myapp/js/dojo/dojo/dojo.js @@ -1094,7 +1104,7 @@ dojo.global = { // At which point you can then use dojo.require() to load the // modules (assuming they provide() the same things which are // required). The full code might be: - // | <script type="text/javascript" + // | <script type="text/javascript" // | src="/myapp/js/dojo/dojo/dojo.js"></script> // | <script type="text/javascript"> // | dojo.registerModulePath("foo", "../../foo"); @@ -1103,8 +1113,8 @@ dojo.global = { // | dojo.require("foo.thud.xyzzy"); // | </script> d._modulePrefixes[module] = { name: module, value: prefix }; - } - + }; + dojo.requireLocalization = function(/*String*/moduleName, /*String*/bundleName, /*String?*/locale, /*String?*/availableFlatLocales){ // summary: // Declares translated resources and loads them if necessary, in the @@ -1115,7 +1125,7 @@ dojo.global = { // description: // Load translated resource bundles provided underneath the "nls" // directory within a package. Translated resources may be located in - // different packages throughout the source tree. + // different packages throughout the source tree. // // Each directory is named for a locale as specified by RFC 3066, // (http://www.ietf.org/rfc/rfc3066.txt), normalized in lowercase. @@ -1130,21 +1140,21 @@ dojo.global = { // preload the bundles to avoid data redundancy and the multiple // network hits normally required to load these resources. // - // moduleName: + // moduleName: // name of the package containing the "nls" directory in which the // bundle is found // - // bundleName: + // bundleName: // bundle name, i.e. the filename without the '.js' suffix. Using "nls" as a // a bundle name is not supported, since "nls" is the name of the folder // that holds bundles. Using "nls" as the bundle name will cause problems // with the custom build. // - // locale: + // locale: // the locale to load (optional) By default, the browser's user // locale as defined by dojo.locale // - // availableFlatLocales: + // availableFlatLocales: // A comma-separated list of the available, flattened locales for this // bundle. This argument should only be set by the build process. // @@ -1186,11 +1196,11 @@ dojo.global = { ire = new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"); dojo._Url = function(/*dojo._Url|String...*/){ - // summary: + // summary: // Constructor to create an object representing a URL. // It is marked as private, since we might consider removing // or simplifying it. - // description: + // description: // Each argument is evaluated in order relative to the next until // a canonical uri is produced. To get an absolute Uri relative to // the current document use: @@ -1257,7 +1267,7 @@ dojo.global = { } uri = []; - if(relobj.scheme){ + if(relobj.scheme){ uri.push(relobj.scheme, ":"); } if(relobj.authority){ @@ -1297,7 +1307,7 @@ dojo.global = { dojo._Url.prototype.toString = function(){ return this.uri; }; dojo.moduleUrl = function(/*String*/module, /*dojo._Url||String*/url){ - // summary: + // summary: // Returns a `dojo._Url` object relative to a module. // example: // | var pngPath = dojo.moduleUrl("acme","images/small.png"); @@ -1305,10 +1315,10 @@ dojo.global = { // | // create an image and set it's source to pngPath's value: // | var img = document.createElement("img"); // | // NOTE: we assign the string representation of the url object - // | img.src = pngPath.toString(); + // | img.src = pngPath.toString(); // | // add our image to the document // | dojo.body().appendChild(img); - // example: + // example: // you may de-reference as far as you like down the package // hierarchy. This is sometimes handy to avoid lenghty relative // urls or for building portable sub-packages. In this example, @@ -1319,9 +1329,9 @@ dojo.global = { // | // somewhere in a configuration block // | dojo.registerModulePath("acme.widget", "../../acme/widget"); // | dojo.registerModulePath("acme.util", "../../util"); - // | + // | // | // ... - // | + // | // | // code in a module using acme resources // | var tmpltPath = dojo.moduleUrl("acme.widget","templates/template.html"); // | var dataPath = dojo.moduleUrl("acme.util","resources/data.json"); @@ -1340,7 +1350,10 @@ dojo.global = { } return new d._Url(loc, url); // dojo._Url - } + }; + + + })(); /*===== @@ -1364,9 +1377,9 @@ dojo.isIE = { dojo.isSafari = { // example: // | if(dojo.isSafari){ ... } - // example: + // example: // Detect iPhone: - // | if(dojo.isSafari && navigator.userAgent.indexOf("iPhone") != -1){ + // | if(dojo.isSafari && navigator.userAgent.indexOf("iPhone") != -1){ // | // we are iPhone. Note, iPod touch reports "iPod" above and fails this test. // | } }; @@ -1409,7 +1422,6 @@ dojo = { // True if the client runs on Mac } =====*/ - if(typeof window != 'undefined'){ dojo.isBrowser = true; dojo._name = "browser"; @@ -1436,7 +1448,7 @@ if(typeof window != 'undefined'){ d.config.baseUrl = src.substring(0, m.index); } // and find out if we need to modify our behavior - var cfg = scripts[i].getAttribute("djConfig"); + var cfg = (scripts[i].getAttribute("djConfig") || scripts[i].getAttribute("data-dojo-config")); if(cfg){ var cfgo = eval("({ "+cfg+" })"); for(var x in cfgo){ @@ -1510,7 +1522,7 @@ if(typeof window != 'undefined'){ d._XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']; d._xhrObj = function(){ - // summary: + // summary: // does the work of portably generating a new XMLHTTPRequest object. var http, last_e; if(!dojo.isIE || !dojo.config.ieForceActiveXXhr){ @@ -1543,10 +1555,11 @@ if(typeof window != 'undefined'){ var stat = http.status || 0, lp = location.protocol; return (stat >= 200 && stat < 300) || // Boolean - stat == 304 || // allow any 2XX response code - stat == 1223 || // get it out of the cache + stat == 304 || // allow any 2XX response code + stat == 1223 || // get it out of the cache + // Internet Explorer mangled the status code // Internet Explorer mangled the status code OR we're Titanium/browser chrome/chrome extension requesting a local file - (!stat && (lp == "file:" || lp == "chrome:" || lp == "chrome-extension:" || lp == "app:") ); + (!stat && (lp == "file:" || lp == "chrome:" || lp == "chrome-extension:" || lp == "app:")); } //See if base tag is in use. @@ -1641,7 +1654,7 @@ if(typeof window != 'undefined'){ d.addOnWindowUnload = function(/*Object?|Function?*/obj, /*String|Function?*/functionName){ // summary: // registers a function to be triggered when window.onunload - // fires. + // fires. // description: // The first time that addOnWindowUnload is called Dojo // will register a page listener to trigger your unload @@ -1672,7 +1685,7 @@ if(typeof window != 'undefined'){ // description: // The first time that addOnUnload is called Dojo will // register a page listener to trigger your unload handler - // with. + // with. // // In a browser enviroment, the functions will be triggered // during the window.onbeforeunload event. Be careful of doing @@ -1685,7 +1698,7 @@ if(typeof window != 'undefined'){ // // Further note that calling dojo.addOnUnload will prevent // browsers from using a "fast back" cache to make page - // loading via back button instantaneous. + // loading via back button instantaneous. // example: // | dojo.addOnUnload(functionPointer) // | dojo.addOnUnload(object, "functionName") @@ -1722,7 +1735,7 @@ if(typeof window != 'undefined'){ } } - if(!dojo.config.afterOnLoad){ + if(!dojo.config.afterOnLoad){ if(document.addEventListener){ //Standards. Hooray! Assumption here that if standards based, //it knows about DOMContentLoaded. It is OK if it does not, the fall through @@ -1739,10 +1752,10 @@ if(typeof window != 'undefined'){ if(!dojo.config.skipIeDomLoaded && self === self.top){ dojo._scrollIntervalId = setInterval(function (){ try{ - //When dojo is loaded into an iframe in an IE HTML Application + //When dojo is loaded into an iframe in an IE HTML Application //(HTA), such as in a selenium test, javascript in the iframe //can't see anything outside of it, so self===self.top is true, - //but the iframe is not the top window and doScroll will be + //but the iframe is not the top window and doScroll will be //available before document.body is set. Test document.body //before trying the doScroll trick if(document.body){ @@ -1805,16 +1818,20 @@ if(dojo.config.isDebug){ } if(dojo.config.debugAtAllCosts){ - dojo.config.useXDomain = true; - dojo.require("dojo._base._loader.loader_xd"); + // this breaks the new AMD based module loader. The XDomain won't be necessary + // anyway if you switch to the asynchronous loader + //dojo.config.useXDomain = true; + //dojo.require("dojo._base._loader.loader_xd"); dojo.require("dojo._base._loader.loader_debug"); dojo.require("dojo.i18n"); } + if(!dojo._hasResource["dojo._base.lang"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.lang"] = true; dojo.provide("dojo._base.lang"); + (function(){ var d = dojo, opts = Object.prototype.toString; @@ -1824,14 +1841,14 @@ dojo.provide("dojo._base.lang"); // summary: // Return true if it is a String return (typeof it == "string" || it instanceof String); // Boolean - } + }; dojo.isArray = function(/*anything*/ it){ // summary: // Return true if it is an Array. // Does not work on Arrays created in other windows. return it && (it instanceof Array || typeof it == "array"); // Boolean - } + }; dojo.isFunction = function(/*anything*/ it){ // summary: @@ -1845,7 +1862,7 @@ dojo.provide("dojo._base.lang"); // or null) return it !== undefined && (it === null || typeof it == "object" || d.isArray(it) || d.isFunction(it)); // Boolean - } + }; dojo.isArrayLike = function(/*anything*/ it){ // summary: @@ -1864,14 +1881,14 @@ dojo.provide("dojo._base.lang"); !d.isString(it) && !d.isFunction(it) && !(it.tagName && it.tagName.toLowerCase() == 'form') && (d.isArray(it) || isFinite(it.length)); - } + }; dojo.isAlien = function(/*anything*/ it){ // summary: // Returns true if it is a built-in function or some other kind of // oddball that *should* report as a function but doesn't return it && !d.isFunction(it) && /\{\s*\[native code\]\s*\}/.test(String(it)); // Boolean - } + }; dojo.extend = function(/*Object*/ constructor, /*Object...*/ props){ // summary: @@ -1882,7 +1899,7 @@ dojo.provide("dojo._base.lang"); d._mixin(constructor.prototype, arguments[i]); } return constructor; // Object - } + }; dojo._hitchArgs = function(scope, method /*,...*/){ var pre = d._toArray(arguments, 2); @@ -1894,8 +1911,8 @@ dojo.provide("dojo._base.lang"); var f = named ? (scope||d.global)[method] : method; // invoke with collected args return f && f.apply(scope || this, pre.concat(args)); // mixed - } // Function - } + }; // Function + }; dojo.hitch = function(/*Object*/scope, /*Function|String*/method /*,...*/){ // summary: @@ -1903,7 +1920,7 @@ dojo.provide("dojo._base.lang"); // This allows for easy use of object member functions // in callbacks and other places in which the "this" keyword may // otherwise not reference the expected scope. - // Any number of default positional arguments may be passed as parameters + // Any number of default positional arguments may be passed as parameters // beyond "method". // Each of these values will be used to "placehold" (similar to curry) // for the hitched function. @@ -1943,7 +1960,7 @@ dojo.provide("dojo._base.lang"); return function(){ return scope[method].apply(scope, arguments || []); }; // Function } return !scope ? method : function(){ return method.apply(scope, arguments || []); }; // Function - } + }; /*===== dojo.delegate = function(obj, props){ @@ -1987,7 +2004,7 @@ dojo.provide("dojo._base.lang"); d._mixin(tmp, props); } return tmp; // Object - } + }; })(); /*===== @@ -2036,7 +2053,7 @@ dojo.provide("dojo._base.lang"); // | dojo.hitch(null, funcName, ...); var arr = [ null ]; return d.hitch.apply(d, arr.concat(d._toArray(arguments))); // Function - } + }; var extraNames = d._extraNames, extraLen = extraNames.length, empty = {}; @@ -2056,6 +2073,10 @@ dojo.provide("dojo._base.lang"); // Date return new Date(o.getTime()); // Date } + if(o instanceof RegExp){ + // RegExp + return new RegExp(o); // RegExp + } var r, i, l, s, name; if(d.isArray(o)){ // array @@ -2094,7 +2115,7 @@ dojo.provide("dojo._base.lang"); } } return r; // Object - } + }; /*===== dojo.trim = function(str){ @@ -2123,7 +2144,7 @@ dojo.provide("dojo._base.lang"); dojo.replace = function(tmpl, map, pattern){ // summary: // Performs parameterized substitutions on a string. Throws an - // exception if any parameter is unmatched. + // exception if any parameter is unmatched. // tmpl: String // String to be used as a template. // map: Object|Function @@ -2199,13 +2220,14 @@ dojo.provide("dojo._base.lang"); if(!dojo._hasResource["dojo._base.array"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.array"] = true; - dojo.provide("dojo._base.array"); + + (function(){ var _getParts = function(arr, obj, cb){ - return [ - (typeof arr == "string") ? arr.split("") : arr, + return [ + (typeof arr == "string") ? arr.split("") : arr, obj || dojo.global, // FIXME: cache the anonymous functions we create here? (typeof cb == "string") ? new Function("item", "index", "array", cb) : cb @@ -2224,7 +2246,7 @@ dojo.provide("dojo._base.array"); }; dojo.mixin(dojo, { - indexOf: function( /*Array*/ array, + indexOf: function( /*Array*/ array, /*Object*/ value, /*Integer?*/ fromIndex, /*Boolean?*/ findLast){ @@ -2233,7 +2255,7 @@ dojo.provide("dojo._base.array"); // passed array. If the value is not found, -1 is returned. // description: // This method corresponds to the JavaScript 1.6 Array.indexOf method, with one difference: when - // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript + // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript // 1.6's indexOf skips the holes in the sparse array. // For details on this method, see: // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/indexOf @@ -2258,7 +2280,7 @@ dojo.provide("dojo._base.array"); // array. If the value is not found, -1 is returned. // description: // This method corresponds to the JavaScript 1.6 Array.lastIndexOf method, with one difference: when - // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript + // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript // 1.6's lastIndexOf skips the holes in the sparse array. // For details on this method, see: // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/lastIndexOf @@ -2277,7 +2299,7 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.forEach() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.forEach() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to // the callback function with a value of undefined. JavaScript 1.6's forEach skips the holes in the sparse array. // For more details, see: @@ -2300,21 +2322,21 @@ dojo.provide("dojo._base.array"); // | ); // example: // | // use a scoped object member as the callback - // | + // | // | var obj = { - // | prefix: "logged via obj.callback:", + // | prefix: "logged via obj.callback:", // | callback: function(item){ // | console.log(this.prefix, item); // | } // | }; - // | + // | // | // specifying the scope function executes the callback in that scope // | dojo.forEach( // | [ "thinger", "blah", "howdy", 10 ], // | obj.callback, // | obj // | ); - // | + // | // | // alternately, we can accomplish the same thing with dojo.hitch() // | dojo.forEach( // | [ "thinger", "blah", "howdy", 10 ], @@ -2327,7 +2349,7 @@ dojo.provide("dojo._base.array"); // FIXME: there are several ways of handilng thisObject. Is // dojo.global always the default context? var _p = _getParts(arr, thisObject, callback); arr = _p[0]; - for(var i=0,l=arr.length; i<l; ++i){ + for(var i=0,l=arr.length; i<l; ++i){ _p[2].call(_p[1], arr[i], i, arr); } }, @@ -2344,7 +2366,7 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.every() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.every() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to // the callback function with a value of undefined. JavaScript 1.6's every skips the holes in the sparse array. // For more details, see: @@ -2353,7 +2375,7 @@ dojo.provide("dojo._base.array"); // | // returns false // | dojo.every([1, 2, 3, 4], function(item){ return item>1; }); // example: - // | // returns true + // | // returns true // | dojo.every([1, 2, 3, 4], function(item){ return item>0; }); return everyOrSome(true, arr, callback, thisObject); // Boolean }, @@ -2370,7 +2392,7 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.some() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.some() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to // the callback function with a value of undefined. JavaScript 1.6's some skips the holes in the sparse array. // For more details, see: @@ -2397,7 +2419,7 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.map() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.map() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to // the callback function with a value of undefined. JavaScript 1.6's map skips the holes in the sparse array. // For more details, see: @@ -2428,9 +2450,9 @@ dojo.provide("dojo._base.array"); // thisObject: // may be used to scope the call to callback // description: - // This function corresponds to the JavaScript 1.6 Array.filter() method, with one difference: when + // This function corresponds to the JavaScript 1.6 Array.filter() method, with one difference: when // run over sparse arrays, this implemenation passes the "holes" in the sparse array to - // the callback function with a value of undefined. JavaScript 1.6's filter skips the holes in the sparse array. + // the callback function with a value of undefined. JavaScript 1.6's filter skips the holes in the sparse array. // For more details, see: // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter // example: @@ -2464,10 +2486,10 @@ dojo.provide("dojo._base.declare"); var d = dojo, mix = d._mixin, op = Object.prototype, opts = op.toString, xtor = new Function, counter = 0, cname = "constructor"; - function err(msg){ throw new Error("declare: " + msg); } + function err(msg, cls){ throw new Error("declare" + (cls ? " " + cls : "") + ": " + msg); } // C3 Method Resolution Order (see http://www.python.org/download/releases/2.3/mro/) - function c3mro(bases){ + function c3mro(bases, className){ var result = [], roots = [{cls: 0, refs: []}], nameMap = {}, clsCount = 1, l = bases.length, i = 0, j, lin, base, top, proto, rec, name, refs; @@ -2475,9 +2497,9 @@ dojo.provide("dojo._base.declare"); for(; i < l; ++i){ base = bases[i]; if(!base){ - err("mixin #" + i + " is unknown. Did you use dojo.require to pull it in?"); + err("mixin #" + i + " is unknown. Did you use dojo.require to pull it in?", className); }else if(opts.call(base) != "[object Function]"){ - err("mixin #" + i + " is not a callable constructor."); + err("mixin #" + i + " is not a callable constructor.", className); } lin = base._meta ? base._meta.bases : [base]; top = 0; @@ -2530,7 +2552,7 @@ dojo.provide("dojo._base.declare"); } } if(clsCount){ - err("can't build consistent linearization"); + err("can't build consistent linearization", className); } // calculate the superclass offset @@ -2557,7 +2579,7 @@ dojo.provide("dojo._base.declare"); caller = args.callee; name = name || caller.nom; if(!name){ - err("can't deduce a name to call inherited()"); + err("can't deduce a name to call inherited()", this.declaredClass); } meta = this.constructor._meta; @@ -2575,7 +2597,7 @@ dojo.provide("dojo._base.declare"); // error detection chains = meta.chains; if(chains && typeof chains[name] == "string"){ - err("calling chained method with inherited: " + name); + err("calling chained method with inherited: " + name, this.declaredClass); } // find caller do{ @@ -2616,7 +2638,7 @@ dojo.provide("dojo._base.declare"); // error detection chains = meta.chains; if(!chains || chains.constructor !== "manual"){ - err("calling chained constructor with inherited"); + err("calling chained constructor with inherited", this.declaredClass); } // find caller while(base = bases[++pos]){ // intentional assignment @@ -2912,7 +2934,7 @@ dojo.provide("dojo._base.declare"); // build a prototype if(opts.call(superclass) == "[object Array]"){ // C3 MRO - bases = c3mro(superclass); + bases = c3mro(superclass, className); t = bases[0]; mixins = bases.length - t; superclass = bases[mixins]; @@ -2923,10 +2945,10 @@ dojo.provide("dojo._base.declare"); t = superclass._meta; bases = bases.concat(t ? t.bases : superclass); }else{ - err("base class is not a callable constructor."); + err("base class is not a callable constructor.", className); } }else if(superclass !== null){ - err("unknown base class. Did you use dojo.require to pull it in?") + err("unknown base class. Did you use dojo.require to pull it in?", className); } } if(superclass){ @@ -3500,27 +3522,28 @@ dojo._hasResource["dojo._base.connect"] = true; dojo.provide("dojo._base.connect"); + // this file courtesy of the TurboAjax Group, licensed under a Dojo CLA // low-level delegation machinery dojo._listener = { // create a dispatcher function getDispatcher: function(){ - // following comments pulled out-of-line to prevent cloning them + // following comments pulled out-of-line to prevent cloning them // in the returned function. - // - indices (i) that are really in the array of listeners (ls) will + // - indices (i) that are really in the array of listeners (ls) will // not be in Array.prototype. This is the 'sparse array' trick - // that keeps us safe from libs that take liberties with built-in + // that keeps us safe from libs that take liberties with built-in // objects // - listener is invoked with current scope (this) return function(){ - var ap=Array.prototype, c=arguments.callee, ls=c._listeners, t=c.target; + var ap = Array.prototype, c = arguments.callee, ls = c._listeners, t = c.target, // return value comes from original target function - var r = t && t.apply(this, arguments); + r = t && t.apply(this, arguments), // make local copy of listener array so it is immutable during processing - var i, lls; - lls = [].concat(ls); - + i, lls = [].concat(ls) + ; + // invoke listeners after target function for(i in lls){ if(!(i in ap)){ @@ -3534,12 +3557,12 @@ dojo._listener = { // add a listener to an object add: function(/*Object*/ source, /*String*/ method, /*Function*/ listener){ // Whenever 'method' is invoked, 'listener' will have the same scope. - // Trying to supporting a context object for the listener led to - // complexity. + // Trying to supporting a context object for the listener led to + // complexity. // Non trivial to provide 'once' functionality here // because listener could be the result of a dojo.hitch call, // in which case two references to the same hitch target would not - // be equivalent. + // be equivalent. source = source || dojo.global; // The source method is either null, a dispatcher, or some other function var f = source[method]; @@ -3549,15 +3572,15 @@ dojo._listener = { // original target function is special d.target = f; // dispatcher holds a list of listeners - d._listeners = []; + d._listeners = []; // redirect source to dispatcher f = source[method] = d; } - // The contract is that a handle is returned that can - // identify this listener for disconnect. + // The contract is that a handle is returned that can + // identify this listener for disconnect. // - // The type of the handle is private. Here is it implemented as Integer. - // DOM event code has this same contract but handle is Function + // The type of the handle is private. Here is it implemented as Integer. + // DOM event code has this same contract but handle is Function // in non-IE browsers. // // We could have separate lists of before and after listeners. @@ -3579,9 +3602,9 @@ dojo._listener = { // and dontFix argument here to help the autodocs. Actual DOM aware code is in // event.js. -dojo.connect = function(/*Object|null*/ obj, - /*String*/ event, - /*Object|null*/ context, +dojo.connect = function(/*Object|null*/ obj, + /*String*/ event, + /*Object|null*/ context, /*String|Function*/ method, /*Boolean?*/ dontFix){ // summary: @@ -3616,37 +3639,37 @@ dojo.connect = function(/*Object|null*/ obj, // arguments may simply be omitted such that fewer than 4 arguments // may be required to set up a connection See the examples for details. // - // The return value is a handle that is needed to + // The return value is a handle that is needed to // remove this connection with `dojo.disconnect`. // - // obj: - // The source object for the event function. + // obj: + // The source object for the event function. // Defaults to `dojo.global` if null. - // If obj is a DOM node, the connection is delegated + // If obj is a DOM node, the connection is delegated // to the DOM event manager (unless dontFix is true). // // event: - // String name of the event function in obj. + // String name of the event function in obj. // I.e. identifies a property `obj[event]`. // - // context: + // context: // The object that method will receive as "this". // // If context is null and method is a function, then method // inherits the context of event. - // - // If method is a string then context must be the source + // + // If method is a string then context must be the source // object object for method (context[method]). If context is null, // dojo.global is used. // // method: - // A function reference, or name of a function in context. - // The function identified by method fires after event does. + // A function reference, or name of a function in context. + // The function identified by method fires after event does. // method receives the same arguments as the event. // See context argument comments for information on method's scope. // // dontFix: - // If obj is a DOM node, set dontFix to true to prevent delegation + // If obj is a DOM node, set dontFix to true to prevent delegation // of this connection to the DOM event manager. // // example: @@ -3696,9 +3719,9 @@ dojo.connect = function(/*Object|null*/ obj, // used by non-browser hostenvs. always overriden by event.js dojo._connect = function(obj, event, context, method){ - var l=dojo._listener, h=l.add(obj, event, dojo.hitch(context, method)); + var l=dojo._listener, h=l.add(obj, event, dojo.hitch(context, method)); return [obj, event, h, l]; // Handle -} +}; dojo.disconnect = function(/*Handle*/ handle){ // summary: @@ -3712,11 +3735,11 @@ dojo.disconnect = function(/*Handle*/ handle){ // let's not keep this reference delete handle[0]; } -} +}; dojo._disconnect = function(obj, event, handle, listener){ listener.remove(obj, event, handle); -} +}; // topic publish/subscribe @@ -3734,15 +3757,15 @@ dojo.subscribe = function(/*String*/ topic, /*Object|null*/ context, /*String|Fu // is invoked when topic is published. // example: // | dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); }); - // | dojo.publish("alerts", [ "read this", "hello world" ]); + // | dojo.publish("alerts", [ "read this", "hello world" ]); // support for 2 argument invocation (omitting context) depends on hitch return [topic, dojo._listener.add(dojo._topics, topic, dojo.hitch(context, method))]; /*Handle*/ -} +}; dojo.unsubscribe = function(/*Handle*/ handle){ // summary: - // Remove a topic listener. + // Remove a topic listener. // handle: // The handle returned from a call to subscribe. // example: @@ -3752,7 +3775,7 @@ dojo.unsubscribe = function(/*Handle*/ handle){ if(handle){ dojo._listener.remove(dojo._topics, handle[0], handle[1]); } -} +}; dojo.publish = function(/*String*/ topic, /*Array*/ args){ // summary: @@ -3760,11 +3783,11 @@ dojo.publish = function(/*String*/ topic, /*Array*/ args){ // topic: // The name of the topic to publish. // args: - // An array of arguments. The arguments will be applied + // An array of arguments. The arguments will be applied // to each topic subscriber (as first class parameters, via apply). // example: // | dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); }; - // | dojo.publish("alerts", [ "read this", "hello world" ]); + // | dojo.publish("alerts", [ "read this", "hello world" ]); // Note that args is an array, which is more efficient vs variable length // argument list. Ideally, var args would be implemented via Array @@ -3773,10 +3796,10 @@ dojo.publish = function(/*String*/ topic, /*Array*/ args){ if(f){ f.apply(this, args||[]); } -} +}; -dojo.connectPublisher = function( /*String*/ topic, - /*Object|null*/ obj, +dojo.connectPublisher = function( /*String*/ topic, + /*Object|null*/ obj, /*String*/ event){ // summary: // Ensure that every time obj.event() is called, a message is published @@ -3785,11 +3808,11 @@ dojo.connectPublisher = function( /*String*/ topic, // the topic. // topic: // The name of the topic to publish. - // obj: + // obj: // The source object for the event function. Defaults to dojo.global // if null. // event: - // The name of the event function in obj. + // The name of the event function in obj. // I.e. identifies a property obj[event]. // example: // | dojo.connectPublisher("/ajax/start", dojo, "xhrGet"); @@ -3804,42 +3827,43 @@ dojo._hasResource["dojo._base.Deferred"] = true; dojo.provide("dojo._base.Deferred"); + (function(){ - var mutator = function(){}; + var mutator = function(){}; var freeze = Object.freeze || function(){}; // A deferred provides an API for creating and resolving a promise. dojo.Deferred = function(/*Function?*/canceller){ // summary: // Deferreds provide a generic means for encapsulating an asynchronous - // operation and notifying users of the completion and result of the operation. + // operation and notifying users of the completion and result of the operation. // description: // The dojo.Deferred API is based on the concept of promises that provide a // generic interface into the eventual completion of an asynchronous action. - // The motivation for promises fundamentally is about creating a - // separation of concerns that allows one to achieve the same type of - // call patterns and logical data flow in asynchronous code as can be - // achieved in synchronous code. Promises allows one - // to be able to call a function purely with arguments needed for - // execution, without conflating the call with concerns of whether it is - // sync or async. One shouldn't need to alter a call's arguments if the - // implementation switches from sync to async (or vice versa). By having - // async functions return promises, the concerns of making the call are - // separated from the concerns of asynchronous interaction (which are + // The motivation for promises fundamentally is about creating a + // separation of concerns that allows one to achieve the same type of + // call patterns and logical data flow in asynchronous code as can be + // achieved in synchronous code. Promises allows one + // to be able to call a function purely with arguments needed for + // execution, without conflating the call with concerns of whether it is + // sync or async. One shouldn't need to alter a call's arguments if the + // implementation switches from sync to async (or vice versa). By having + // async functions return promises, the concerns of making the call are + // separated from the concerns of asynchronous interaction (which are // handled by the promise). - // - // The dojo.Deferred is a type of promise that provides methods for fulfilling the - // promise with a successful result or an error. The most important method for - // working with Dojo's promises is the then() method, which follows the + // + // The dojo.Deferred is a type of promise that provides methods for fulfilling the + // promise with a successful result or an error. The most important method for + // working with Dojo's promises is the then() method, which follows the // CommonJS proposed promise API. An example of using a Dojo promise: - // + // // | var resultingPromise = someAsyncOperation.then(function(result){ // | ... handle result ... // | }, // | function(error){ // | ... handle error ... // | }); - // - // The .then() call returns a new promise that represents the result of the + // + // The .then() call returns a new promise that represents the result of the // execution of the callback. The callbacks will never affect the original promises value. // // The dojo.Deferred instances also provide the following functions for backwards compatibility: @@ -3849,7 +3873,7 @@ dojo.provide("dojo._base.Deferred"); // * callback(result) // * errback(result) // - // Callbacks are allowed to return promisesthemselves, so + // Callbacks are allowed to return promises themselves, so // you can build complicated sequences of events with ease. // // The creator of the Deferred may specify a canceller. The canceller @@ -3909,7 +3933,7 @@ dojo.provide("dojo._base.Deferred"); // | renderDataitem(data[x]); // | } // | d.callback(true); - // | }catch(e){ + // | }catch(e){ // | d.errback(new Error("rendering failed")); // | } // | return d; @@ -3923,7 +3947,7 @@ dojo.provide("dojo._base.Deferred"); // | // again, so we could chain adding callbacks or save the // | // deferred for later should we need to be notified again. // example: - // In this example, renderLotsOfData is syncrhonous and so both + // In this example, renderLotsOfData is synchronous and so both // versions are pretty artificial. Putting the data display on a // timeout helps show why Deferreds rock: // @@ -3936,7 +3960,7 @@ dojo.provide("dojo._base.Deferred"); // | renderDataitem(data[x]); // | } // | d.callback(true); - // | }catch(e){ + // | }catch(e){ // | d.errback(new Error("rendering failed")); // | } // | }, 100); @@ -3951,11 +3975,11 @@ dojo.provide("dojo._base.Deferred"); // Note that the caller doesn't have to change his code at all to // handle the asynchronous case. var result, finished, isError, head, nextListener; - var promise = this.promise = {}; + var promise = (this.promise = {}); function complete(value){ if(finished){ - throw new Error("This deferred has already been resolved"); + throw new Error("This deferred has already been resolved"); } result = value; finished = true; @@ -3966,7 +3990,7 @@ dojo.provide("dojo._base.Deferred"); while(!mutated && nextListener){ var listener = nextListener; nextListener = nextListener.next; - if(mutated = (listener.progress == mutator)){ // assignment and check + if((mutated = (listener.progress == mutator))){ // assignment and check finished = false; } var func = (isError ? listener.error : listener.resolved); @@ -3978,6 +4002,9 @@ dojo.provide("dojo._base.Deferred"); continue; } var unchanged = mutated && newResult === undefined; + if(mutated && !unchanged){ + isError = newResult instanceof Error; + } listener.deferred[unchanged && isError ? "reject" : "resolve"](unchanged ? result : newResult); } catch (e) { @@ -3990,7 +4017,7 @@ dojo.provide("dojo._base.Deferred"); listener.deferred.resolve(result); } } - } + } } // calling resolve will resolve the promise this.resolve = this.callback = function(value){ @@ -4005,7 +4032,7 @@ dojo.provide("dojo._base.Deferred"); // calling error will indicate that the promise failed this.reject = this.errback = function(error){ // summary: - // Fulfills the Deferred instance as an error with the provided error + // Fulfills the Deferred instance as an error with the provided error isError = true; this.fired = 1; complete(error); @@ -4022,7 +4049,7 @@ dojo.provide("dojo._base.Deferred"); while(listener){ var progress = listener.progress; progress && progress(update); - listener = listener.next; + listener = listener.next; } }; this.addCallbacks = function(/*Function?*/callback, /*Function?*/errback){ @@ -4031,35 +4058,35 @@ dojo.provide("dojo._base.Deferred"); }; // provide the implementation of the promise this.then = promise.then = function(/*Function?*/resolvedCallback, /*Function?*/errorCallback, /*Function?*/progressCallback){ - // summary - // Adds a fulfilledHandler, errorHandler, and progressHandler to be called for - // completion of a promise. The fulfilledHandler is called when the promise - // is fulfilled. The errorHandler is called when a promise fails. The - // progressHandler is called for progress events. All arguments are optional - // and non-function values are ignored. The progressHandler is not only an - // optional argument, but progress events are purely optional. Promise + // summary: + // Adds a fulfilledHandler, errorHandler, and progressHandler to be called for + // completion of a promise. The fulfilledHandler is called when the promise + // is fulfilled. The errorHandler is called when a promise fails. The + // progressHandler is called for progress events. All arguments are optional + // and non-function values are ignored. The progressHandler is not only an + // optional argument, but progress events are purely optional. Promise // providers are not required to ever create progress events. - // - // This function will return a new promise that is fulfilled when the given - // fulfilledHandler or errorHandler callback is finished. This allows promise - // operations to be chained together. The value returned from the callback - // handler is the fulfillment value for the returned promise. If the callback + // + // This function will return a new promise that is fulfilled when the given + // fulfilledHandler or errorHandler callback is finished. This allows promise + // operations to be chained together. The value returned from the callback + // handler is the fulfillment value for the returned promise. If the callback // throws an error, the returned promise will be moved to failed state. - // + // // example: // An example of using a CommonJS compliant promise: // | asyncComputeTheAnswerToEverything(). // | then(addTwo). // | then(printResult, onError); - // | >44 - // + // | >44 + // var returnDeferred = progressCallback == mutator ? this : new dojo.Deferred(promise.cancel); var listener = { - resolved: resolvedCallback, - error: errorCallback, - progress: progressCallback, + resolved: resolvedCallback, + error: errorCallback, + progress: progressCallback, deferred: returnDeferred - }; + }; if(nextListener){ head = head.next = listener; } @@ -4085,7 +4112,7 @@ dojo.provide("dojo._base.Deferred"); deferred.reject(error); } } - } + }; freeze(promise); }; dojo.extend(dojo.Deferred, { @@ -4106,7 +4133,7 @@ dojo.provide("dojo._base.Deferred"); })(); dojo.when = function(promiseOrValue, /*Function?*/callback, /*Function?*/errback, /*Function?*/progressHandler){ // summary: - // This provides normalization between normal synchronous values and + // This provides normalization between normal synchronous values and // asynchronous promises, so you can interact with them in a common way // example: // | function printFirstAndList(items){ @@ -4139,6 +4166,7 @@ if(!dojo._hasResource["dojo._base.json"]){ //_hasResource checks added by build. dojo._hasResource["dojo._base.json"] = true; dojo.provide("dojo._base.json"); + dojo.fromJson = function(/*String*/ json){ // summary: // Parses a [JSON](http://json.org) string to return a JavaScript object. @@ -4146,12 +4174,12 @@ dojo.fromJson = function(/*String*/ json){ // Throws for invalid JSON strings, but it does not use a strict JSON parser. It // delegates to eval(). The content passed to this method must therefore come // from a trusted source. - // json: + // json: // a string literal of a JSON item, for instance: // `'{ "foo": [ "bar", 1, { "baz": "thud" } ] }'` return eval("(" + json + ")"); // Object -} +}; dojo._escapeString = function(/*String*/str){ //summary: @@ -4161,7 +4189,7 @@ dojo._escapeString = function(/*String*/str){ return ('"' + str.replace(/(["\\])/g, '\\$1') + '"'). replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n"). replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r"); // string -} +}; dojo.toJsonIndentStr = "\t"; dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _indentStr){ @@ -4205,8 +4233,8 @@ dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _ind if(it === null){ return "null"; } - if(dojo.isString(it)){ - return dojo._escapeString(it); + if(dojo.isString(it)){ + return dojo._escapeString(it); } // recurse var recurse = arguments.callee; @@ -4279,7 +4307,7 @@ dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _ind output.push(newLine + nextIndent + keyStr + ":" + sep + val); } return "{" + output.join("," + sep) + newLine + _indentStr + "}"; // String -} +}; } @@ -4289,6 +4317,7 @@ dojo.provide("dojo._base.Color"); + (function(){ var d = dojo; @@ -4477,7 +4506,7 @@ dojo.provide("dojo._base.Color"); // Builds a `dojo.Color` from a 3 or 4 element array, mapping each // element in sequence to the rgb(a) values of the color. // example: - // | var myColor = dojo.colorFromArray([237,237,237,0.5]); // grey, 50% alpha + // | var myColor = dojo.colorFromArray([237,237,237,0.5]); // grey, 50% alpha // returns: // A dojo.Color object. If obj is passed, it will be the return value. var t = obj || new d.Color(); @@ -4504,24 +4533,11 @@ dojo.provide("dojo._base.Color"); } -if(!dojo._hasResource["dojo._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojo._base"] = true; -dojo.provide("dojo._base"); - - - - - - - - - -} - if(!dojo._hasResource["dojo._base.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.window"] = true; dojo.provide("dojo._base.window"); + /*===== dojo.doc = { // summary: @@ -4547,7 +4563,7 @@ dojo.body = function(){ // Note: document.body is not defined for a strict xhtml document // Would like to memoize this, but dojo.doc can change vi dojo.withDoc(). return dojo.doc.body || dojo.doc.getElementsByTagName("body")[0]; // Node -} +}; dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocument){ // summary: @@ -4560,9 +4576,9 @@ dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocu dojo.doc = globalDocument; }; -dojo.withGlobal = function( /*Object*/globalObject, - /*Function*/callback, - /*Object?*/thisObject, +dojo.withGlobal = function( /*Object*/globalObject, + /*Function*/callback, + /*Object?*/thisObject, /*Array?*/cbArguments){ // summary: // Invoke callback with globalObject as dojo.global and @@ -4581,11 +4597,11 @@ dojo.withGlobal = function( /*Object*/globalObject, }finally{ dojo.global = oldGlob; } -} +}; -dojo.withDoc = function( /*DocumentElement*/documentObject, - /*Function*/callback, - /*Object?*/thisObject, +dojo.withDoc = function( /*DocumentElement*/documentObject, + /*Function*/callback, + /*Object?*/thisObject, /*Array?*/cbArguments){ // summary: // Invoke callback with documentObject as dojo.doc. @@ -4616,7 +4632,6 @@ dojo.withDoc = function( /*DocumentElement*/documentObject, dojo.isQuirks = oldQ; } }; - } @@ -4625,27 +4640,26 @@ dojo._hasResource["dojo._base.event"] = true; dojo.provide("dojo._base.event"); + // this file courtesy of the TurboAjax Group, licensed under a Dojo CLA (function(){ // DOM event listener machinery var del = (dojo._event_listener = { add: function(/*DOMNode*/ node, /*String*/ name, /*Function*/ fp){ - if(!node){return;} + if(!node){return;} name = del._normalizeEventName(name); fp = del._fixCallback(name, fp); - var oname = name; if( - !dojo.isIE && + !dojo.isIE && (name == "mouseenter" || name == "mouseleave") ){ var ofp = fp; - //oname = name; name = (name == "mouseenter") ? "mouseover" : "mouseout"; fp = function(e){ if(!dojo.isDescendant(e.relatedTarget, node)){ // e.type = oname; // FIXME: doesn't take? SJM: event.type is generally immutable. - return ofp.call(this, e); + return ofp.call(this, e); } } } @@ -4686,7 +4700,7 @@ dojo.provide("dojo._base.event"); }, _fixEvent: function(evt, sender){ // _fixCallback only attaches us to keypress. - // Switch on evt.type anyway because we might + // Switch on evt.type anyway because we might // be called directly from dojo.fixEvent. switch(evt.type){ case "keypress": @@ -4696,26 +4710,26 @@ dojo.provide("dojo._base.event"); return evt; }, _setKeyChar: function(evt){ - evt.keyChar = evt.charCode ? String.fromCharCode(evt.charCode) : ''; + evt.keyChar = evt.charCode >= 32 ? String.fromCharCode(evt.charCode) : ''; evt.charOrCode = evt.keyChar || evt.keyCode; }, // For IE and Safari: some ctrl-key combinations (mostly w/punctuation) do not emit a char code in IE // we map those virtual key codes to ascii here // not valid for all (non-US) keyboards, so maybe we shouldn't bother - _punctMap: { - 106:42, - 111:47, - 186:59, - 187:43, - 188:44, - 189:45, - 190:46, - 191:47, - 192:96, - 219:91, - 220:92, - 221:93, - 222:39 + _punctMap: { + 106:42, + 111:47, + 186:59, + 187:43, + 188:44, + 189:45, + 190:46, + 191:47, + 192:96, + 219:91, + 220:92, + 221:93, + 222:39 } }); @@ -4730,7 +4744,7 @@ dojo.provide("dojo._base.event"); // sender: DOMNode // node to treat as "currentTarget" return del._fixEvent(evt, sender); - } + }; dojo.stopEvent = function(/*Event*/ evt){ // summary: @@ -4741,7 +4755,7 @@ dojo.provide("dojo._base.event"); evt.preventDefault(); evt.stopPropagation(); // NOTE: below, this method is overridden for IE - } + }; // the default listener to use on dontFix nodes, overriden for IE var node_listener = dojo._listener; @@ -4756,16 +4770,16 @@ dojo.provide("dojo._base.event"); // create a listener var h = l.add(obj, event, dojo.hitch(context, method)); // formerly, the disconnect package contained "l" directly, but if client code - // leaks the disconnect package (by connecting it to a node), referencing "l" + // leaks the disconnect package (by connecting it to a node), referencing "l" // compounds the problem. // instead we return a listener id, which requires custom _disconnect below. // return disconnect package return [ obj, event, h, lid ]; - } + }; dojo._disconnect = function(obj, event, handle, listener){ ([dojo._listener, del, node_listener][listener]).remove(obj, event, handle); - } + }; // Constants @@ -4895,7 +4909,7 @@ dojo.provide("dojo._base.event"); }; =====*/ - if(dojo.isIE){ + if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){ dojo.mouseButtons = { LEFT: 1, MIDDLE: 4, @@ -4920,7 +4934,7 @@ dojo.provide("dojo._base.event"); } // IE event normalization - if(dojo.isIE){ + if(dojo.isIE){ var _trySetKeyCode = function(e, code){ try{ // squelch errors when keyCode is read-only @@ -4929,7 +4943,7 @@ dojo.provide("dojo._base.event"); }catch(e){ return 0; } - } + }; // by default, use the standard listener var iel = dojo._listener; @@ -4938,7 +4952,7 @@ dojo.provide("dojo._base.event"); if(!dojo.config._allow_leaks){ // custom listener that handles leak protection for DOM events node_listener = iel = dojo._ie_listener = { - // support handler indirection: event handler functions are + // support handler indirection: event handler functions are // referenced here. Event dispatchers hold only indices. handlers: [], // add a listener to an object @@ -4991,7 +5005,7 @@ dojo.provide("dojo._base.event"); }, remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){ event = del._normalizeEventName(event); - iel.remove(node, event, handle); + iel.remove(node, event, handle); if(event=="onkeypress"){ var kd = node.onkeydown; if(--kd._stealthKeydownRefs <= 0){ @@ -5017,11 +5031,11 @@ dojo.provide("dojo._base.event"); // node to treat as "currentTarget" if(!evt){ var w = sender && (sender.ownerDocument || sender.document || sender).parentWindow || window; - evt = w.event; + evt = w.event; } if(!evt){return(evt);} - evt.target = evt.srcElement; - evt.currentTarget = (sender || evt.srcElement); + evt.target = evt.srcElement; + evt.currentTarget = (sender || evt.srcElement); evt.layerX = evt.offsetX; evt.layerY = evt.offsetY; // FIXME: scroll position query is duped from dojo.html to @@ -5034,14 +5048,16 @@ dojo.provide("dojo._base.event"); var offset = dojo._getIeDocumentElementOffset(); evt.pageX = evt.clientX + dojo._fixIeBiDiScrollLeft(docBody.scrollLeft || 0) - offset.x; evt.pageY = evt.clientY + (docBody.scrollTop || 0) - offset.y; - if(evt.type == "mouseover"){ + if(evt.type == "mouseover"){ evt.relatedTarget = evt.fromElement; } - if(evt.type == "mouseout"){ + if(evt.type == "mouseout"){ evt.relatedTarget = evt.toElement; } - evt.stopPropagation = del._stopPropagation; - evt.preventDefault = del._preventDefault; + if (dojo.isIE < 9 || dojo.isQuirks) { + evt.stopPropagation = del._stopPropagation; + evt.preventDefault = del._preventDefault; + } return del._fixKeys(evt); }, _fixKeys: function(evt){ @@ -5075,38 +5091,41 @@ dojo.provide("dojo._base.event"); var k=evt.keyCode; // These are Windows Virtual Key Codes // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp - var unprintable = k!=13 && k!=32 && k!=27 && (k<48||k>90) && (k<96||k>111) && (k<186||k>192) && (k<219||k>222); + var unprintable = (k!=13 || (dojo.isIE >= 9 && !dojo.isQuirks)) && k!=32 && k!=27 && (k<48||k>90) && (k<96||k>111) && (k<186||k>192) && (k<219||k>222); + // synthesize keypress for most unprintables and CTRL-keys if(unprintable||evt.ctrlKey){ var c = unprintable ? 0 : k; if(evt.ctrlKey){ if(k==3 || k==13){ - return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively - }else if(c>95 && c<106){ + return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively + }else if(c>95 && c<106){ c -= 48; // map CTRL-[numpad 0-9] to ASCII - }else if((!evt.shiftKey)&&(c>=65&&c<=90)){ + }else if((!evt.shiftKey)&&(c>=65&&c<=90)){ c += 32; // map CTRL-[A-Z] to lowercase - }else{ + }else{ c = del._punctMap[c] || c; // map other problematic CTRL combinations to ASCII } } // simulate a keypress event var faux = del._synthesizeEvent(evt, {type: 'keypress', faux: true, charCode: c}); kp.call(evt.currentTarget, faux); - evt.cancelBubble = faux.cancelBubble; + if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){ + evt.cancelBubble = faux.cancelBubble; + } evt.returnValue = faux.returnValue; _trySetKeyCode(evt, faux.keyCode); } }, // Called in Event scope _stopPropagation: function(){ - this.cancelBubble = true; + this.cancelBubble = true; }, _preventDefault: function(){ // Setting keyCode to 0 is the only way to prevent certain keypresses (namely // ctrl-combinations that correspond to menu accelerator keys). // Otoh, it prevents upstream listeners from getting this information - // Try to split the difference here by clobbering keyCode only for ctrl + // Try to split the difference here by clobbering keyCode only for ctrl // combinations. If you still need to access the key upstream, bubbledKeyCode is // provided as a workaround. this.bubbledKeyCode = this.keyCode; @@ -5116,23 +5135,23 @@ dojo.provide("dojo._base.event"); }); // override stopEvent for IE - dojo.stopEvent = function(evt){ + dojo.stopEvent = (dojo.isIE < 9 || dojo.isQuirks) ? function(evt){ evt = evt || window.event; del._stopPropagation.call(evt); del._preventDefault.call(evt); - } + } : dojo.stopEvent; } del._synthesizeEvent = function(evt, props){ var faux = dojo.mixin({}, evt, props); del._setKeyChar(faux); - // FIXME: would prefer to use dojo.hitch: dojo.hitch(evt, evt.preventDefault); + // FIXME: would prefer to use dojo.hitch: dojo.hitch(evt, evt.preventDefault); // but it throws an error when preventDefault is invoked on Safari // does Event.preventDefault not support "apply" on Safari? - faux.preventDefault = function(){ evt.preventDefault(); }; - faux.stopPropagation = function(){ evt.stopPropagation(); }; + faux.preventDefault = function(){ evt.preventDefault(); }; + faux.stopPropagation = function(){ evt.stopPropagation(); }; return faux; - } + }; // Opera event normalization if(dojo.isOpera){ @@ -5183,12 +5202,12 @@ dojo.provide("dojo._base.event"); var c = unprintable ? 0 : k; if(evt.ctrlKey){ if(k==3 || k==13){ - return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively - }else if(c>95 && c<106){ + return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively + }else if(c>95 && c<106){ c -= 48; // map CTRL-[numpad 0-9] to ASCII - }else if(!evt.shiftKey && c>=65 && c<=90){ + }else if(!evt.shiftKey && c>=65 && c<=90){ c += 32; // map CTRL-[A-Z] to lowercase - }else{ + }else{ c = del._punctMap[c] || c; // map other problematic CTRL combinations to ASCII } } @@ -5245,25 +5264,26 @@ if(dojo.isIE){ } } return r; - } + }; dojo._getIeDispatcher = function(){ // ensure the returned function closes over nothing ("new Function" apparently doesn't close) return new Function(dojo._scopeName + "._ieDispatcher(arguments, this)"); // function - } + }; // keep this out of the closure to reduce RAM allocation dojo._event_listener._fixCallback = function(fp){ var f = dojo._event_listener._fixEvent; return function(e){ return fp.call(this, f(e, this)); }; - } + }; } } if(!dojo._hasResource["dojo._base.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.html"] = true; - dojo.provide("dojo._base.html"); + + // FIXME: need to add unit tests for all the semi-public methods try{ @@ -5307,13 +5327,13 @@ dojo.byId = function(id, doc){ // | } =====*/ -if(dojo.isIE || dojo.isOpera){ +if(dojo.isIE){ dojo.byId = function(id, doc){ if(typeof id != "string"){ return id; } var _d = doc || dojo.doc, te = _d.getElementById(id); - // attributes.id.value is better than just id in case the + // attributes.id.value is better than just id in case the // user has a name=id inside a form if(te && (te.attributes.id.value == id || te.id == id)){ return te; @@ -5334,8 +5354,9 @@ if(dojo.isIE || dojo.isOpera){ }; }else{ dojo.byId = function(id, doc){ - // inline'd type check - return (typeof id == "string") ? (doc || dojo.doc).getElementById(id) : id; // DomNode + // inline'd type check. + // be sure to return null per documentation, to match IE branch. + return ((typeof id == "string") ? (doc || dojo.doc).getElementById(id) : id) || null; // DomNode }; } /*===== @@ -5418,16 +5439,16 @@ if(dojo.isIE || dojo.isOpera){ }; dojo.setSelectable = function(/*DomNode|String*/node, /*Boolean*/selectable){ - // summary: + // summary: // Enable or disable selection on a node // node: // id or reference to node // selectable: - // state to put the node in. false indicates unselectable, true + // state to put the node in. false indicates unselectable, true // allows selection. // example: // Make the node id="bar" unselectable - // | dojo.setSelectable("bar"); + // | dojo.setSelectable("bar"); // example: // Make the node id="bar" selectable // | dojo.setSelectable("bar", true); @@ -5510,7 +5531,7 @@ if(dojo.isIE || dojo.isOpera){ refNode = byId(refNode); if(typeof node == "string"){ // inline'd type check - node = node.charAt(0) == "<" ? d._toDom(node, refNode.ownerDocument) : byId(node); + node = /^\s*</.test(node) ? d._toDom(node, refNode.ownerDocument) : byId(node); } if(typeof position == "number"){ // inline'd type check var cn = refNode.childNodes; @@ -5545,7 +5566,7 @@ if(dojo.isIE || dojo.isOpera){ } } return node; // DomNode - } + }; // Box functions will assume this model. // On IE/Opera, BORDER_BOX will be set if the primary document is in quirks mode. @@ -5557,7 +5578,7 @@ if(dojo.isIE || dojo.isOpera){ dojo.boxModel = "content-box"; // We punt per-node box mode testing completely. - // If anybody cares, we can provide an additional (optional) unit + // If anybody cares, we can provide an additional (optional) unit // that overrides existing code to include per-node box sensitivity. // Opera documentation claims that Opera 9 uses border-box in BackCompat mode. @@ -5577,10 +5598,10 @@ if(dojo.isIE || dojo.isOpera){ // getComputedStyle drives most of the style code. // Wherever possible, reuse the returned object. // - // API functions below that need to access computed styles accept an + // API functions below that need to access computed styles accept an // optional computedStyle parameter. // If this parameter is omitted, the functions will call getComputedStyle themselves. - // This way, calling code can access computedStyle once, and then pass the reference to + // This way, calling code can access computedStyle once, and then pass the reference to // multiple API functions. /*===== @@ -5619,7 +5640,7 @@ if(dojo.isIE || dojo.isOpera){ // Although we normally eschew argument validation at this // level, here we test argument 'node' for (duck)type, // by testing nodeType, ecause 'document' is the 'parentNode' of 'body' - // it is frequently sent to this function even + // it is frequently sent to this function even // though it is not Element. var gcs; if(d.isWebKit){ @@ -5680,7 +5701,7 @@ if(dojo.isIE || dojo.isOpera){ runtimeStyle.left = rsLeft; } return avalue; - } + }; } var px = d._toPixelValue; @@ -5708,7 +5729,7 @@ if(dojo.isIE || dojo.isOpera){ }; dojo._getOpacity = - d.isIE ? function(node){ + d.isIE < 9 ? function(node){ try{ return af(node).Opacity / 100; // Number }catch(e){ @@ -5735,7 +5756,7 @@ if(dojo.isIE || dojo.isOpera){ =====*/ dojo._setOpacity = - d.isIE ? function(/*DomNode*/node, /*Number*/opacity){ + d.isIE < 9 ? function(/*DomNode*/node, /*Number*/opacity){ var ov = opacity * 100, opaque = opacity == 1; node.style.zoom = opaque ? "" : 1; @@ -5807,7 +5828,7 @@ if(dojo.isIE || dojo.isOpera){ // Also when getting values, use specific style names, // like "borderBottomWidth" instead of "border" since compound values like // "border" are not necessarily reflected as expected. - // If you want to get node dimensions, use `dojo.marginBox()`, + // If you want to get node dimensions, use `dojo.marginBox()`, // `dojo.contentBox()` or `dojo.position()`. // node: // id or reference to node to get/set style for @@ -5876,7 +5897,7 @@ if(dojo.isIE || dojo.isOpera){ return s; } return (args == 1) ? s : _toStyleValue(n, style, s[style] || n.style[style]); /* CSS2Properties||String||Number */ - } + }; // ============================= // Box Functions @@ -5889,13 +5910,13 @@ if(dojo.isIE || dojo.isOpera){ // description: // Returns an object with `w`, `h`, `l`, `t` properties: // | l/t = left/top padding (respectively) - // | w = the total of the left and right padding + // | w = the total of the left and right padding // | h = the total of the top and bottom padding // If 'node' has position, l/t forms the origin for child nodes. // The w/h are used for calculating boxes. // Normally application code will not need to invoke this // directly, and will use the ...box... functions instead. - var + var s = computedStyle||gcs(n), l = px(n, s.paddingLeft), t = px(n, s.paddingTop); @@ -5905,7 +5926,7 @@ if(dojo.isIE || dojo.isOpera){ w: l+px(n, s.paddingRight), h: t+px(n, s.paddingBottom) }; - } + }; dojo._getBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){ // summary: @@ -5919,7 +5940,7 @@ if(dojo.isIE || dojo.isOpera){ // The w/h are used for calculating boxes. // Normally application code will not need to invoke this // directly, and will use the ...box... functions instead. - var + var ne = "none", s = computedStyle||gcs(n), bl = (s.borderLeftStyle != ne ? px(n, s.borderLeftWidth) : 0), @@ -5930,7 +5951,7 @@ if(dojo.isIE || dojo.isOpera){ w: bl + (s.borderRightStyle!=ne ? px(n, s.borderRightWidth) : 0), h: bt + (s.borderBottomStyle!=ne ? px(n, s.borderBottomWidth) : 0) }; - } + }; dojo._getPadBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){ // summary: @@ -5944,7 +5965,7 @@ if(dojo.isIE || dojo.isOpera){ // The w/h are used for calculating boxes. // Normally application code will not need to invoke this // directly, and will use the ...box... functions instead. - var + var s = computedStyle||gcs(n), p = d._getPadExtents(n, s), b = d._getBorderExtents(n, s); @@ -5954,7 +5975,7 @@ if(dojo.isIE || dojo.isOpera){ w: p.w + b.w, h: p.h + b.h }; - } + }; dojo._getMarginExtents = function(n, computedStyle){ // summary: @@ -5968,7 +5989,7 @@ if(dojo.isIE || dojo.isOpera){ // The w/h are used for calculating boxes. // Normally application code will not need to invoke this // directly, and will use the ...box... functions instead. - var + var s = computedStyle||gcs(n), l = px(n, s.marginLeft), t = px(n, s.marginTop), @@ -5976,9 +5997,9 @@ if(dojo.isIE || dojo.isOpera){ b = px(n, s.marginBottom); if(d.isWebKit && (s.position != "absolute")){ // FIXME: Safari's version of the computed right margin - // is the space between our right edge and the right edge + // is the space between our right edge and the right edge // of our offsetParent. - // What we are looking for is the actual margin value as + // What we are looking for is the actual margin value as // determined by CSS. // Hack solution is to assume left/right margins are the same. r = l; @@ -5989,7 +6010,7 @@ if(dojo.isIE || dojo.isOpera){ w: l+r, h: t+b }; - } + }; // Box getters work in any box context because offsetWidth/clientWidth // are invariant wrt box context @@ -5997,10 +6018,10 @@ if(dojo.isIE || dojo.isOpera){ // They do *not* work for display: inline objects that have padding styles // because the user agent ignores padding (it's bogus styling in any case) // - // Be careful with IMGs because they are inline or block depending on + // Be careful with IMGs because they are inline or block depending on // browser and browser mode. - // Although it would be easier to read, there are not separate versions of + // Although it would be easier to read, there are not separate versions of // _getMarginBox for each browser because: // 1. the branching is not expensive // 2. factoring the shared code wastes cycles (function call overhead) @@ -6044,9 +6065,23 @@ if(dojo.isIE || dojo.isOpera){ l: l, t: t, w: node.offsetWidth + me.w, - h: node.offsetHeight + me.h + h: node.offsetHeight + me.h }; } + + dojo._getMarginSize = function(/*DomNode*/node, /*Object*/computedStyle){ + // summary: + // returns an object that encodes the width and height of + // the node's margin box + node = byId(node); + var me = d._getMarginExtents(node, computedStyle || gcs(node)); + + var size = node.getBoundingClientRect(); + return { + w: (size.right - size.left) + me.w, + h: (size.bottom - size.top) + me.h + } + } dojo._getContentBox = function(node, computedStyle){ // summary: @@ -6075,7 +6110,7 @@ if(dojo.isIE || dojo.isOpera){ w: w - pe.w - be.w, h: h - pe.h - be.h }; - } + }; dojo._getBorderBox = function(node, computedStyle){ var s = computedStyle || gcs(node), @@ -6088,7 +6123,7 @@ if(dojo.isIE || dojo.isOpera){ w: cb.w + pe.w, h: cb.h + pe.h }; - } + }; // Box setters depend on box context because interpretation of width/height styles // vary wrt box context. @@ -6099,12 +6134,12 @@ if(dojo.isIE || dojo.isOpera){ // Beware of display: inline objects that have padding styles // because the user agent ignores padding (it's a bogus setup anyway) // - // Be careful with IMGs because they are inline or block depending on + // Be careful with IMGs because they are inline or block depending on // browser and browser mode. // // Elements other than DIV may have special quirks, like built-in // margins or padding, or values not detectable via computedStyle. - // In particular, margins on TABLE do not seems to appear + // In particular, margins on TABLE do not seems to appear // at all in computedStyle on Mozilla. dojo._setBox = function(/*DomNode*/node, /*Number?*/l, /*Number?*/t, /*Number?*/w, /*Number?*/h, /*String?*/u){ @@ -6130,14 +6165,14 @@ if(dojo.isIE || dojo.isOpera){ if(!isNaN(t)){ s.top = t + u; } if(w >= 0){ s.width = w + u; } if(h >= 0){ s.height = h + u; } - } + }; dojo._isButtonTag = function(/*DomNode*/node) { // summary: // True if the node is BUTTON or INPUT.type="button". return node.tagName == "BUTTON" || node.tagName=="INPUT" && (node.getAttribute("type")||'').toUpperCase() == "BUTTON"; // boolean - } + }; dojo._usesBorderBox = function(/*DomNode*/node){ // summary: @@ -6152,7 +6187,7 @@ if(dojo.isIE || dojo.isOpera){ var n = node.tagName; return d.boxModel=="border-box" || n=="TABLE" || d._isButtonTag(node); // boolean - } + }; dojo._setContentSize = function(/*DomNode*/node, /*Number*/widthPx, /*Number*/heightPx, /*Object*/computedStyle){ // summary: @@ -6164,7 +6199,7 @@ if(dojo.isIE || dojo.isOpera){ if(heightPx >= 0){ heightPx += pb.h; } } d._setBox(node, NaN, NaN, widthPx, heightPx); - } + }; dojo._setMarginBox = function(/*DomNode*/node, /*Number?*/leftPx, /*Number?*/topPx, /*Number?*/widthPx, /*Number?*/heightPx, @@ -6196,7 +6231,7 @@ if(dojo.isIE || dojo.isOpera){ if(widthPx >= 0){ widthPx = Math.max(widthPx - pb.w - mb.w, 0); } if(heightPx >= 0){ heightPx = Math.max(heightPx - pb.h - mb.h, 0); } d._setBox(node, leftPx, topPx, widthPx, heightPx); - } + }; var _nilExtents = { l:0, t:0, w:0, h:0 }; @@ -6231,7 +6266,7 @@ if(dojo.isIE || dojo.isOpera){ var n = byId(node), s = gcs(n), b = box; return !b ? d._getMarginBox(n, s) : d._setMarginBox(n, b.l, b.t, b.w, b.h, s); // Object - } + }; dojo.contentBox = function(/*DomNode|String*/node, /*Object?*/box){ // summary: @@ -6256,14 +6291,14 @@ if(dojo.isIE || dojo.isOpera){ // All properties are optional if passed. var n = byId(node), s = gcs(n), b = box; return !b ? d._getContentBox(n, s) : d._setContentSize(n, b.w, b.h, s); // Object - } + }; // ============================= - // Positioning + // Positioning // ============================= var _sumAncestorProperties = function(node, prop){ - if(!(node = (node||0).parentNode)){return 0} + if(!(node = (node||0).parentNode)){return 0;} var val, retVal = 0, _b = d.body(); while(node && node.style){ if(gcs(node).position == "fixed"){ @@ -6279,19 +6314,19 @@ if(dojo.isIE || dojo.isOpera){ node = node.parentNode; } return retVal; // integer - } + }; dojo._docScroll = function(){ var n = d.global; - return "pageXOffset" in n? { x:n.pageXOffset, y:n.pageYOffset } : - (n=d.doc.documentElement, n.clientHeight? { x:d._fixIeBiDiScrollLeft(n.scrollLeft), y:n.scrollTop } : - (n=d.body(), { x:n.scrollLeft||0, y:n.scrollTop||0 })); + return "pageXOffset" in n + ? { x:n.pageXOffset, y:n.pageYOffset } + : (n = d.isQuirks? d.doc.body : d.doc.documentElement, { x:d._fixIeBiDiScrollLeft(n.scrollLeft || 0), y:n.scrollTop || 0 }); }; dojo._isBodyLtr = function(){ return "_bodyLtr" in d? d._bodyLtr : - d._bodyLtr = (d.body().dir || d.doc.documentElement.dir || "ltr").toLowerCase() == "ltr"; // Boolean - } + d._bodyLtr = (d.body().dir || d.doc.documentElement.dir || "ltr").toLowerCase() == "ltr"; // Boolean + }; dojo._getIeDocumentElementOffset = function(){ // summary: @@ -6312,7 +6347,7 @@ if(dojo.isIE || dojo.isOpera){ //NOTE: assumes we're being called in an IE browser - var de = d.doc.documentElement; // only deal with HTML element here, _abs handles body/quirks + var de = d.doc.documentElement; // only deal with HTML element here, _abs handles body/quirks if(d.isIE < 8){ var r = de.getBoundingClientRect(); // works well for IE6+ @@ -6337,18 +6372,22 @@ if(dojo.isIE || dojo.isOpera){ }; dojo._fixIeBiDiScrollLeft = function(/*Integer*/ scrollLeft){ - // In RTL direction, scrollLeft should be a negative value, but IE < 8 + // In RTL direction, scrollLeft should be a negative value, but IE // returns a positive one. All codes using documentElement.scrollLeft // must call this function to fix this error, otherwise the position // will offset to right when there is a horizontal scrollbar. - var dd = d.doc; - if(d.isIE < 8 && !d._isBodyLtr()){ - var de = d.isQuirks ? dd.body : dd.documentElement; - return scrollLeft + de.clientWidth - de.scrollWidth; // Integer + var ie = d.isIE; + if(ie && !d._isBodyLtr()){ + var qk = d.isQuirks, + de = qk ? d.doc.body : d.doc.documentElement; + if(ie == 6 && !qk && d.global.frameElement && de.scrollHeight > de.clientHeight){ + scrollLeft += de.clientLeft; // workaround ie6+strict+rtl+iframe+vertical-scrollbar bug where clientWidth is too small by clientLeft pixels + } + return (ie < 8 || qk) ? (scrollLeft + de.clientWidth - de.scrollWidth) : -scrollLeft; // Integer } return scrollLeft; // Integer - } + }; // FIXME: need a setter for coords or a moveTo!! dojo._abs = dojo.position = function(/*DomNode*/node, /*Boolean?*/includeScroll){ @@ -6366,10 +6405,9 @@ if(dojo.isIE || dojo.isOpera){ // Uses the border-box model (inclusive of border and padding but // not margin). Does not act as a setter. - var db = d.body(), dh = db.parentNode, ret; node = byId(node); - if(node["getBoundingClientRect"]){ - // IE6+, FF3+, super-modern WebKit, and Opera 9.6+ all take this branch + var db = d.body(), + dh = db.parentNode, ret = node.getBoundingClientRect(); ret = { x: ret.left, y: ret.top, w: ret.right - ret.left, h: ret.bottom - ret.top }; if(d.isIE){ @@ -6386,60 +6424,7 @@ if(dojo.isIE || dojo.isOpera){ ret.x -= px(dh, cs.marginLeft) + px(dh, cs.borderLeftWidth); ret.y -= px(dh, cs.marginTop) + px(dh, cs.borderTopWidth); } - }else{ - // FF2 and older WebKit - ret = { - x: 0, - y: 0, - w: node.offsetWidth, - h: node.offsetHeight - }; - if(node["offsetParent"]){ - ret.x -= _sumAncestorProperties(node, "scrollLeft"); - ret.y -= _sumAncestorProperties(node, "scrollTop"); - - var curnode = node; - do{ - var n = curnode.offsetLeft, - t = curnode.offsetTop; - ret.x += isNaN(n) ? 0 : n; - ret.y += isNaN(t) ? 0 : t; - - cs = gcs(curnode); - if(curnode != node){ - if(d.isMoz){ - // tried left+right with differently sized left/right borders - // it really is 2xleft border in FF, not left+right, even in RTL! - ret.x += 2 * px(curnode,cs.borderLeftWidth); - ret.y += 2 * px(curnode,cs.borderTopWidth); - }else{ - ret.x += px(curnode, cs.borderLeftWidth); - ret.y += px(curnode, cs.borderTopWidth); - } - } - // static children in a static div in FF2 are affected by the div's border as well - // but offsetParent will skip this div! - if(d.isMoz && cs.position=="static"){ - var parent=curnode.parentNode; - while(parent!=curnode.offsetParent){ - var pcs=gcs(parent); - if(pcs.position=="static"){ - ret.x += px(curnode,pcs.borderLeftWidth); - ret.y += px(curnode,pcs.borderTopWidth); - } - parent=parent.parentNode; - } - } - curnode = curnode.offsetParent; - }while((curnode != dh) && curnode); - }else if(node.x && node.y){ - ret.x += isNaN(node.x) ? 0 : node.x; - ret.y += isNaN(node.y) ? 0 : node.y; - } - } - // account for document scrolling - // if offsetParent is used, ret value already includes scroll position - // so we may have to actually remove that value if !includeScroll + // account for document scrolling if(includeScroll){ var scroll = d._docScroll(); ret.x += scroll.x; @@ -6447,7 +6432,7 @@ if(dojo.isIE || dojo.isOpera){ } return ret; // Object - } + }; dojo.coords = function(/*DomNode|String*/node, /*Boolean?*/includeScroll){ // summary: @@ -6469,7 +6454,7 @@ if(dojo.isIE || dojo.isOpera){ mb.x = abs.x; mb.y = abs.y; return mb; - } + }; // ============================= // Element attribute Functions @@ -6531,7 +6516,7 @@ if(dojo.isIE || dojo.isOpera){ // given element, and false otherwise var lc = name.toLowerCase(); return _forcePropNames[_propNames[lc] || name] || _hasAttr(byId(node), _attrNames[lc] || name); // Boolean - } + }; var _evtHdlrMap = {}, _ctr = 0, _attrId = dojo._scopeName + "attrid", @@ -6701,7 +6686,7 @@ if(dojo.isIE || dojo.isOpera){ // node's attribute // we need _hasAttr() here to guard against IE returning a default value return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null; // Anything - } + }; dojo.removeAttr = function(/*DomNode|String*/ node, /*String*/ name){ // summary: @@ -6711,7 +6696,7 @@ if(dojo.isIE || dojo.isOpera){ // name: // the name of the attribute to remove byId(node).removeAttribute(_fixAttrName(name)); - } + }; dojo.getNodeProp = function(/*DomNode|String*/ node, /*String*/ name){ // summary: @@ -6730,7 +6715,7 @@ if(dojo.isIE || dojo.isOpera){ // node's attribute var attrName = _attrNames[lc] || name; return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null; // Anything - } + }; dojo.create = function(tag, attrs, refNode, pos){ // summary: @@ -6745,7 +6730,7 @@ if(dojo.isIE || dojo.isOpera){ // Attributes are set by passing the optional object through `dojo.attr`. // See `dojo.attr` for noted caveats and nuances, and API if applicable. //| - // Placement is done via `dojo.place`, assuming the new node to be the action + // Placement is done via `dojo.place`, assuming the new node to be the action // node, passing along the optional reference node and position. // // tag: String|DomNode @@ -6783,7 +6768,7 @@ if(dojo.isIE || dojo.isOpera){ // | var n = dojo.create("div", null, dojo.body()); // // example: - // Create an UL, and populate it with LI's. Place the list as the first-child of a + // Create an UL, and populate it with LI's. Place the list as the first-child of a // node with id="someId": // | var ul = dojo.create("ul", null, "someId", "first"); // | var items = ["one", "two", "three", "four"]; @@ -6813,7 +6798,7 @@ if(dojo.isIE || dojo.isOpera){ if(attrs){ d.attr(tag, attrs); } if(refNode){ d.place(tag, refNode, pos); } return tag; // DomNode - } + }; /*===== dojo.empty = function(node){ @@ -6881,11 +6866,13 @@ if(dojo.isIE || dojo.isOpera){ // generate start/end tag strings to use // for the injection for each special tag wrap case. for(var param in tagWrap){ - var tw = tagWrap[param]; - tw.pre = param == "option" ? '<select multiple="multiple">' : "<" + tw.join("><") + ">"; - tw.post = "</" + tw.reverse().join("></") + ">"; - // the last line is destructive: it reverses the array, - // but we don't care at this point + if(tagWrap.hasOwnProperty(param)){ + var tw = tagWrap[param]; + tw.pre = param == "option" ? '<select multiple="multiple">' : "<" + tw.join("><") + ">"; + tw.post = "</" + tw.reverse().join("></") + ">"; + // the last line is destructive: it reverses the array, + // but we don't care at this point + } } d._toDom = function(frag, doc){ @@ -6928,7 +6915,7 @@ if(dojo.isIE || dojo.isOpera){ df.appendChild(fc); } return df; // DOMNode - } + }; // ============================= // (CSS) Class Functions @@ -6954,6 +6941,7 @@ if(dojo.isIE || dojo.isOpera){ }; var spaces = /\s+/, a1 = [""], + fakeNode = {}, str2array = function(s){ if(typeof s == "string" || s instanceof String){ if(s.indexOf(" ") < 0){ @@ -7059,6 +7047,39 @@ if(dojo.isIE || dojo.isOpera){ if(node[_className] != cls){ node[_className] = cls; } }; + dojo.replaceClass = function(/*DomNode|String*/node, /*String|Array*/addClassStr, /*String|Array?*/removeClassStr){ + // summary: + // Replaces one or more classes on a node if not present. + // Operates more quickly than calling dojo.removeClass and dojo.addClass + // node: + // String ID or DomNode reference to remove the class from. + // addClassStr: + // A String class name to add, or several space-separated class names, + // or an array of class names. + // removeClassStr: + // A String class name to remove, or several space-separated class names, + // or an array of class names. + // + // example: + // | dojo.replaceClass("someNode", "add1 add2", "remove1 remove2"); + // + // example: + // Replace all classes with addMe + // | dojo.replaceClass("someNode", "addMe"); + // + // example: + // Available in `dojo.NodeList()` for multiple toggles + // | dojo.query(".findMe").replaceClass("addMe", "removeMe"); + + node = byId(node); + fakeNode.className = node.className; + dojo.removeClass(fakeNode, removeClassStr); + dojo.addClass(fakeNode, addClassStr); + if(node.className !== fakeNode.className){ + node.className = fakeNode.className; + } + }; + dojo.toggleClass = function(/*DomNode|String*/node, /*String|Array*/classStr, /*Boolean?*/condition){ // summary: // Adds a class to node if not present, or removes if present. @@ -7093,6 +7114,9 @@ dojo.provide("dojo._base.NodeList"); + + + (function(){ var d = dojo; @@ -7330,7 +7354,7 @@ dojo.provide("dojo._base.NodeList"); }); // add forEach actions - d.forEach(["connect", "addClass", "removeClass", "toggleClass", "empty", "removeAttr"], function(name){ + d.forEach(["connect", "addClass", "removeClass", "replaceClass", "toggleClass", "empty", "removeAttr"], function(name){ nlp[name] = adaptAsForEach(d[name]); }); @@ -7388,7 +7412,7 @@ dojo.provide("dojo._base.NodeList"); _cloneNode: function(/*DOMNode*/ node){ // summary: - // private utiltity to clone a node. Not very interesting in the vanilla + // private utility to clone a node. Not very interesting in the vanilla // dojo.NodeList case, but delegates could do interesting things like // clone event handlers if that is derivable from the node. return node.cloneNode(true); @@ -7482,7 +7506,7 @@ dojo.provide("dojo._base.NodeList"); if(this._parent){ return this._parent; }else{ - //Just return empy list. + //Just return empty list. return new this._NodeListCtor(); } }, @@ -7550,12 +7574,12 @@ dojo.provide("dojo._base.NodeList"); indexOf: function(value, fromIndex){ // summary: - // see dojo.indexOf(). The primary difference is that the acted-on + // see dojo.indexOf(). The primary difference is that the acted-on // array is implicitly this NodeList // value: Object: // The value to search for. // fromIndex: Integer?: - // The loction to start searching from. Optional. Defaults to 0. + // The location to start searching from. Optional. Defaults to 0. // description: // For more details on the behavior of indexOf, see Mozilla's // (indexOf @@ -7576,7 +7600,7 @@ dojo.provide("dojo._base.NodeList"); // value: Object // The value to search for. // fromIndex: Integer? - // The loction to start searching from. Optional. Defaults to 0. + // The location to start searching from. Optional. Defaults to 0. // returns: // Positive Integer or 0 for a match, -1 of not found. return d.lastIndexOf(this, value, fromIndex); // Integer @@ -7654,12 +7678,12 @@ dojo.provide("dojo._base.NodeList"); forEach: function(callback, thisObj){ // summary: - // see `dojo.forEach()`. The primary difference is that the acted-on + // see `dojo.forEach()`. The primary difference is that the acted-on // array is implicitly this NodeList. If you want the option to break out // of the forEach loop, use every() or some() instead. d.forEach(this, callback, thisObj); // non-standard return to allow easier chaining - return this; // dojo.NodeList + return this; // dojo.NodeList }, /*===== @@ -7676,7 +7700,7 @@ dojo.provide("dojo._base.NodeList"); // summary: // Returns border-box objects (x/y/w/h) of all elements in a node list // as an Array (*not* a NodeList). Acts like `dojo.position`, though - // assumes the node passed is each node in this list. + // assumes the node passed is each node in this list. return d.map(this, d.position); // Array }, @@ -7699,7 +7723,7 @@ dojo.provide("dojo._base.NodeList"); // Disable a group of buttons: // | dojo.query("button.group").attr("disabled", true); // example: - // innerHTML can be assigned or retreived as well: + // innerHTML can be assigned or retrieved as well: // | // get the innerHTML (as an array) for each list item // | var ih = dojo.query("li.replaceable").attr("innerHTML"); return; // dojo.NodeList @@ -7764,7 +7788,7 @@ dojo.provide("dojo._base.NodeList"); // if 2 arguments are passed (methodName, objOrFunc), objOrFunc should // reference a function or be the name of the function in the global // namespace to attach. If 3 arguments are provided - // (methodName, objOrFunc, funcName), objOrFunc must be the scope to + // (methodName, objOrFunc, funcName), objOrFunc must be the scope to // locate the bound function in // funcName: String? // optional. A string naming the function in objOrFunc to bind to the @@ -7810,7 +7834,7 @@ dojo.provide("dojo._base.NodeList"); // by queryOrNode. Returns the original NodeList. See: `dojo.place` // queryOrNode: // may be a string representing any valid CSS3 selector or a DOM node. - // In the selector case, only the first matching element will be used + // In the selector case, only the first matching element will be used // for relative positioning. // position: // can be one of: @@ -7825,18 +7849,15 @@ dojo.provide("dojo._base.NodeList"); return this.forEach(function(node){ d.place(node, item, position); }); // dojo.NodeList }, - orphan: function(/*String?*/ simpleFilter){ + orphan: function(/*String?*/ filter){ // summary: - // removes elements in this list that match the simple filter + // removes elements in this list that match the filter // from their parents and returns them as a new NodeList. - // simpleFilter: - // single-expression CSS rule. For example, ".thinger" or - // "#someId[attrName='value']" but not "div > span". In short, - // anything which does not invoke a descent to evaluate but - // can instead be used to test a single node is acceptable. + // filter: + // CSS selector like ".foo" or "div > span" // returns: - // `dojo.NodeList` containing the orpahned elements - return (simpleFilter ? d._filterQueryResult(this, simpleFilter) : this).forEach(orphan); // dojo.NodeList + // `dojo.NodeList` containing the orphaned elements + return (filter ? d._filterQueryResult(this, filter) : this).forEach(orphan); // dojo.NodeList }, adopt: function(/*String||Array||DomNode*/ queryOrListOrNode, /*String?*/ position){ @@ -7863,7 +7884,7 @@ dojo.provide("dojo._base.NodeList"); // FIXME: do we need this? query: function(/*String*/ queryStr){ // summary: - // Returns a new list whose memebers match the passed query, + // Returns a new list whose members match the passed query, // assuming elements of the current NodeList as the root for // each search. // example: @@ -7874,9 +7895,9 @@ dojo.provide("dojo._base.NodeList"); // | </p> // | </div> // | <div id="bar"> - // | <p>great commedians may not be funny <span>in person</span></p> + // | <p>great comedians may not be funny <span>in person</span></p> // | </div> - // If we are presented with the following defintion for a NodeList: + // If we are presented with the following definition for a NodeList: // | var l = new dojo.NodeList(dojo.byId("foo"), dojo.byId("bar")); // it's possible to find all span elements under paragraphs // contained by these elements with this sub-query: @@ -7891,18 +7912,14 @@ dojo.provide("dojo._base.NodeList"); return this._wrap(apc.apply([], ret), this); // dojo.NodeList }, - filter: function(/*String|Function*/ simpleFilter){ + filter: function(/*String|Function*/ filter){ // summary: // "masks" the built-in javascript filter() method (supported // in Dojo via `dojo.filter`) to support passing a simple // string filter in addition to supporting filtering function // objects. - // simpleFilter: - // If a string, a single-expression CSS rule. For example, - // ".thinger" or "#someId[attrName='value']" but not "div > - // span". In short, anything which does not invoke a descent - // to evaluate but can instead be used to test a single node - // is acceptable. + // filter: + // If a string, a CSS rule like ".thinger" or "div > span". // example: // "regular" JS filter syntax as exposed in dojo.filter: // | dojo.query("*").filter(function(item){ @@ -7914,7 +7931,7 @@ dojo.provide("dojo._base.NodeList"); // | dojo.query("*").filter("p").styles("backgroundColor", "yellow"); var a = arguments, items = this, start = 0; - if(typeof simpleFilter == "string"){ // inline'd type check + if(typeof filter == "string"){ // inline'd type check items = d._filterQueryResult(this, a[0]); if(a.length == 1){ // if we only got a string query, pass back the filtered results @@ -7962,10 +7979,10 @@ dojo.provide("dojo._base.NodeList"); // | "before" // | "after" // | "replace" (replaces nodes in this NodeList with new content) - // | "only" (removes other children of the nodes so new content is hte only child) + // | "only" (removes other children of the nodes so new content is the only child) // or an offset in the childNodes property // example: - // appends content to the end if the position is ommitted + // appends content to the end if the position is omitted // | dojo.query("h3 > p").addContent("hey there!"); // example: // add something to the front of each element that has a @@ -7996,7 +8013,7 @@ dojo.provide("dojo._base.NodeList"); // text: "Send" // }); content = this._normalize(content, this[0]); - for(var i = 0, node; node = this[i]; i++){ + for(var i = 0, node; (node = this[i]); i++){ this._place(content, node, position, i > 0); } return this; //dojo.NodeList @@ -8025,11 +8042,11 @@ dojo.provide("dojo._base.NodeList"); // index: Integer... // One or more 0-based indices of items in the current // NodeList. A negative index will start at the end of the - // list and go backwards. + // list and go backwards. // // example: // Shorten the list to the first, second, and third elements - // | dojo.query("a").at(0, 1, 2).forEach(fn); + // | dojo.query("a").at(0, 1, 2).forEach(fn); // // example: // Retrieve the first and last elements of a unordered list: @@ -8039,13 +8056,13 @@ dojo.provide("dojo._base.NodeList"); // Do something for the first element only, but end() out back to // the original list and continue chaining: // | dojo.query("a").at(0).onclick(fn).end().forEach(function(n){ - // | console.log(n); // all anchors on the page. - // | }) + // | console.log(n); // all anchors on the page. + // | }) // // returns: // dojo.NodeList var t = new this._NodeListCtor(); - d.forEach(arguments, function(i){ + d.forEach(arguments, function(i){ if(i < 0){ i = this.length + i } if(this[i]){ t.push(this[i]); } }, this); @@ -8055,7 +8072,8 @@ dojo.provide("dojo._base.NodeList"); }); nl.events = [ - // summary: list of all DOM events used in NodeList + // summary: + // list of all DOM events used in NodeList "blur", "focus", "change", "click", "error", "keydown", "keypress", "keyup", "load", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseout", "mouseover", "mouseup", "submit" @@ -8068,7 +8086,7 @@ dojo.provide("dojo._base.NodeList"); var _oe = "on" + evt; nlp[_oe] = function(a, b){ return this.connect(_oe, a, b); - } + }; // FIXME: should these events trigger publishes? /* return (a ? this.connect(_oe, a, b) : @@ -8099,12 +8117,7 @@ dojo.provide("dojo._base.NodeList"); if(!dojo._hasResource["dojo._base.query"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.query"] = true; -if(typeof dojo != "undefined"){ - dojo.provide("dojo._base.query"); - - - -} +(function(){ /* dojo.query() architectural overview: @@ -8138,7 +8151,7 @@ if(typeof dojo != "undefined"){ 5.) matched nodes are pruned to ensure they are unique (if necessary) */ -;(function(d){ +var defineQuery= function(d){ // define everything in a closure for compressability reasons. "d" is an // alias to "dojo" (or the toolkit alias object, e.g., "acme"). @@ -8146,7 +8159,7 @@ if(typeof dojo != "undefined"){ // Toolkit aliases //////////////////////////////////////////////////////////////////////// - // if you are extracing dojo.query for use in your own system, you will + // if you are extracting dojo.query for use in your own system, you will // need to provide these methods and properties. No other porting should be // necessary, save for configuring the system to use a class other than // dojo.NodeList as the return instance instantiator @@ -8157,7 +8170,7 @@ if(typeof dojo != "undefined"){ // d.isOpera; // float // d.isWebKit; // float // d.doc ; // document element - var qlc = d._NodeListCtor = d.NodeList; + var qlc = (d._NodeListCtor = d.NodeList); var getDoc = function(){ return d.doc; }; // NOTE(alex): the spec is idiotic. CSS queries should ALWAYS be case-sensitive, but nooooooo @@ -8188,7 +8201,7 @@ if(typeof dojo != "undefined"){ //////////////////////////////////////////////////////////////////////// var getQueryParts = function(query){ - // summary: + // summary: // state machine for query tokenization // description: // instead of using a brittle and slow regex-based CSS parser, @@ -8197,16 +8210,16 @@ if(typeof dojo != "undefined"){ // the same query run multiple times or under different root nodes // does not re-parse the selector expression but instead uses the // cached data structure. The state machine implemented here - // terminates on the last " " (space) charachter and returns an + // terminates on the last " " (space) character and returns an // ordered array of query component structures (or "parts"). Each // part represents an operator or a simple CSS filtering // expression. The structure for parts is documented in the code // below. - // NOTE: + // NOTE: // this code is designed to run fast and compress well. Sacrifices - // to readibility and maintainability have been made. Your best + // to readability and maintainability have been made. Your best // bet when hacking the tokenizer is to put The Donnas on *really* // loud (may we recommend their "Spend The Night" release?) and // just assume you're gonna make mistakes. Keep the unit tests @@ -8222,7 +8235,7 @@ if(typeof dojo != "undefined"){ } var ts = function(/*Integer*/ s, /*Integer*/ e){ - // trim and slice. + // trim and slice. // take an index to start a string slice from and an end position // and return a trimmed copy of that sub-string @@ -8230,12 +8243,12 @@ if(typeof dojo != "undefined"){ } // the overall data graph of the full query, as represented by queryPart objects - var queryParts = []; + var queryParts = []; // state keeping vars - var inBrackets = -1, inParens = -1, inMatchFor = -1, - inPseudo = -1, inClass = -1, inId = -1, inTag = -1, + var inBrackets = -1, inParens = -1, inMatchFor = -1, + inPseudo = -1, inClass = -1, inId = -1, inTag = -1, lc = "", cc = "", pStart; // iteration vars @@ -8244,7 +8257,7 @@ if(typeof dojo != "undefined"){ currentPart = null, // data structure representing the entire clause _cp = null; // the current pseudo or attr matcher - // several temporary variables are assigned to this structure durring a + // several temporary variables are assigned to this structure during a // potential sub-expression match: // attr: // a string representing the current full attribute match in a @@ -8299,9 +8312,9 @@ if(typeof dojo != "undefined"){ // needs to do any iteration. Many simple selectors don't, and // we can avoid significant construction-time work by advising // the system to skip them - currentPart.loops = ( - currentPart.pseudos.length || - currentPart.attrs.length || + currentPart.loops = ( + currentPart.pseudos.length || + currentPart.attrs.length || currentPart.classes.length ); currentPart.oquery = currentPart.query = ts(pStart, x); // save the full expression as a string @@ -8331,9 +8344,9 @@ if(typeof dojo != "undefined"){ currentPart.infixOper = queryParts.pop(); currentPart.query = currentPart.infixOper.query + " " + currentPart.query; /* - console.debug( "swapping out the infix", - currentPart.infixOper, - "and attaching it to", + console.debug( "swapping out the infix", + currentPart.infixOper, + "and attaching it to", currentPart); */ } @@ -8342,15 +8355,15 @@ if(typeof dojo != "undefined"){ currentPart = null; } - // iterate over the query, charachter by charachter, building up a + // iterate over the query, character by character, building up a // list of query part objects for(; lc=cc, cc=query.charAt(x), x < ql; x++){ // cc: the current character in the match - // lc: the last charachter (if any) + // lc: the last character (if any) // someone is trying to escape something, so don't try to match any // fragments. We assume we're inside a literal. - if(lc == "\\"){ continue; } + if(lc == "\\"){ continue; } if(!currentPart){ // a part was just ended or none has yet been created // NOTE: I hate all this alloc, but it's shorter than writing tons of if's pStart = x; @@ -8393,7 +8406,7 @@ if(typeof dojo != "undefined"){ // the beginning of a match, which should be a tag name. This // might fault a little later on, but we detect that and this // iteration will still be fine. - inTag = x; + inTag = x; } if(inBrackets >= 0){ @@ -8401,7 +8414,7 @@ if(typeof dojo != "undefined"){ if(cc == "]"){ // if we're in a [...] clause and we end, do assignment if(!_cp.attr){ // no attribute match was previously begun, so we - // assume this is an attribute existance match in the + // assume this is an attribute existence match in the // form of [someAttributeName] _cp.attr = ts(inBrackets+1, x); }else{ @@ -8412,19 +8425,19 @@ if(typeof dojo != "undefined"){ var cmf = _cp.matchFor; if(cmf){ // try to strip quotes from the matchFor value. We want - // [attrName=howdy] to match the same + // [attrName=howdy] to match the same // as [attrName = 'howdy' ] if( (cmf.charAt(0) == '"') || (cmf.charAt(0) == "'") ){ _cp.matchFor = cmf.slice(1, -1); } } - // end the attribute by adding it to the list of attributes. + // end the attribute by adding it to the list of attributes. currentPart.attrs.push(_cp); _cp = null; // necessary? inBrackets = inMatchFor = -1; }else if(cc == "="){ // if the last char was an operator prefix, make sure we - // record it along with the "=" operator. + // record it along with the "=" operator. var addToCc = ("|~^$*".indexOf(lc) >=0 ) ? lc : ""; _cp.type = addToCc+cc; _cp.attr = ts(inBrackets+1, x-addToCc.length); @@ -8433,7 +8446,7 @@ if(typeof dojo != "undefined"){ // now look for other clause parts }else if(inParens >= 0){ // if we're in a parenthetical expression, we need to figure - // out if it's attached to a pseduo-selector rule like + // out if it's attached to a pseudo-selector rule like // :nth-child(1) if(cc == ")"){ if(inPseudo >= 0){ @@ -8454,7 +8467,7 @@ if(typeof dojo != "undefined"){ endAll(); inPseudo = x; }else if(cc == "["){ - // start of an attribute match. + // start of an attribute match. endAll(); inBrackets = x; // provide a new structure for the attribute match to fill-in @@ -8468,15 +8481,15 @@ if(typeof dojo != "undefined"){ // expression if we're already inside a pseudo-selector match if(inPseudo >= 0){ // provide a new structure for the pseudo match to fill-in - _cp = { - name: ts(inPseudo+1, x), + _cp = { + name: ts(inPseudo+1, x), value: null } currentPart.pseudos.push(_cp); } inParens = x; }else if( - (cc == " ") && + (cc == " ") && // if it's a space char and the last char is too, consume the // current one without doing more work (lc != cc) @@ -8496,7 +8509,7 @@ if(typeof dojo != "undefined"){ // the basic building block of the yes/no chaining system. agree(f1, // f2) generates a new function which returns the boolean results of // both of the passed functions to a single logical-anded result. If - // either are not possed, the other is used exclusively. + // either are not passed, the other is used exclusively. if(!first){ return second; } if(!second){ return first; } @@ -8548,7 +8561,7 @@ if(typeof dojo != "undefined"){ } }, "$=": function(attr, value){ - // E[foo$="bar"] + // E[foo$="bar"] // an E element whose "foo" attribute value ends exactly // with the string "bar" var tval = " "+value; @@ -8558,7 +8571,7 @@ if(typeof dojo != "undefined"){ } }, "~=": function(attr, value){ - // E[foo~="bar"] + // E[foo~="bar"] // an E element whose "foo" attribute value is a list of // space-separated values, one of which is exactly equal // to "bar" @@ -8624,7 +8637,7 @@ if(typeof dojo != "undefined"){ if(!tret){ return -1; } var l = tret.length; - // we calcuate the parent length as a cheap way to invalidate the + // we calculate the parent length as a cheap way to invalidate the // cache. It's not 100% accurate, but it's much more honest than what // other libraries do if( cl == l && ci >= 0 && cl >= 0 ){ @@ -8636,11 +8649,11 @@ if(typeof dojo != "undefined"){ root["_l"] = l; ci = -1; for(var te = root["firstElementChild"]||root["firstChild"]; te; te = te[_ns]){ - if(_simpleNodeTest(te)){ + if(_simpleNodeTest(te)){ te["_i"] = ++i; - if(node === te){ + if(node === te){ // NOTE: - // shortcuting the return at this step in indexing works + // shortcutting the return at this step in indexing works // very well for benchmarking but we avoid it here since // it leads to potential O(n^2) behavior in sequential // getNodexIndex operations on a previously un-indexed @@ -8671,7 +8684,7 @@ if(typeof dojo != "undefined"){ "first-child": function(){ return _lookLeft; }, "last-child": function(){ return _lookRight; }, "only-child": function(name, condition){ - return function(node){ + return function(node){ if(!_lookLeft(node)){ return false; } if(!_lookRight(node)){ return false; } return true; @@ -8702,7 +8715,7 @@ if(typeof dojo != "undefined"){ }, "not": function(name, condition){ var p = getQueryParts(condition)[0]; - var ignores = { el: 1 }; + var ignores = { el: 1 }; if(p.tag != "*"){ ignores.tag = 1; } @@ -8762,7 +8775,7 @@ if(typeof dojo != "undefined"){ } }; - var defaultGetter = (d.isIE) ? function(cond){ + var defaultGetter = (d.isIE < 9 || (dojo.isIE && dojo.isQuirks)) ? function(cond){ var clc = cond.toLowerCase(); if(clc == "class"){ cond = "className"; } return function(elem){ @@ -8776,7 +8789,7 @@ if(typeof dojo != "undefined"){ var getSimpleFilterFunc = function(query, ignores){ // generates a node tester function based on the passed query part. The - // query part is one of the structures generatd by the query parser + // query part is one of the structures generated by the query parser // when it creates the query AST. The "ignores" object specifies which // (if any) tests to skip, allowing the system to avoid duplicating // work where it may have already been taken into account by other @@ -8807,7 +8820,7 @@ if(typeof dojo != "undefined"){ if(isWildcard){ cname = cname.substr(0, cname.length-1); } - // I dislike the regex thing, even if memozied in a cache, but it's VERY short + // I dislike the regex thing, even if memoized in a cache, but it's VERY short var re = new RegExp("(?:^|\\s)" + cname + (isWildcard ? ".*" : "") + "(?:\\s|$)"); */ var re = new RegExp("(?:^|\\s)" + cname + "(?:\\s|$)"); @@ -8845,7 +8858,7 @@ if(typeof dojo != "undefined"){ if(!("id" in ignores)){ if(query.id){ - ff = agree(ff, function(elem){ + ff = agree(ff, function(elem){ return (!!elem && (elem.id == query.id)); }); } @@ -8853,7 +8866,7 @@ if(typeof dojo != "undefined"){ if(!ff){ if(!("default" in ignores)){ - ff = yesman; + ff = yesman; } } return ff; @@ -8904,7 +8917,7 @@ if(typeof dojo != "undefined"){ _simpleNodeTest(te) && (!bag || _isUnique(te, bag)) && (filterFunc(te, x)) - ){ + ){ ret.push(te); } } @@ -8946,7 +8959,7 @@ if(typeof dojo != "undefined"){ // filters them. The search may be specialized by infix operators // (">", "~", or "+") else it will default to searching all // descendants (the " " selector). Once a group of children is - // founde, a test function is applied to weed out the ones we + // found, a test function is applied to weed out the ones we // don't want. Many common cases can be fast-pathed. We spend a // lot of cycles to create a dispatcher that doesn't do more work // than necessary at any point since, unlike this function, the @@ -8999,7 +9012,7 @@ if(typeof dojo != "undefined"){ var filterFunc = getSimpleFilterFunc(query, { el: 1 }); var qt = query.tag; var wildcardTag = ("*" == qt); - var ecs = getDoc()["getElementsByClassName"]; + var ecs = getDoc()["getElementsByClassName"]; if(!oper){ // if there's no infix operator, then it's a descendant query. ID @@ -9009,8 +9022,8 @@ if(typeof dojo != "undefined"){ // testing shows that the overhead of yesman() is acceptable // and can save us some bytes vs. re-defining the function // everywhere. - filterFunc = (!query.loops && wildcardTag) ? - yesman : + filterFunc = (!query.loops && wildcardTag) ? + yesman : getSimpleFilterFunc(query, { el: 1, id: 1 }); retFunc = function(root, arr){ @@ -9025,9 +9038,9 @@ if(typeof dojo != "undefined"){ } } }else if( - ecs && + ecs && // isAlien check. Workaround for Prototype.js being totally evil/dumb. - /\{\s*\[native code\]\s*\}/.test(String(ecs)) && + /\{\s*\[native code\]\s*\}/.test(String(ecs)) && query.classes.length && !cssCaseBug ){ @@ -9193,8 +9206,8 @@ if(typeof dojo != "undefined"){ // We need te detect the right "internal" webkit version to make this work. var wk = "WebKit/"; var is525 = ( - d.isWebKit && - (nua.indexOf(wk) > 0) && + d.isWebKit && + (nua.indexOf(wk) > 0) && (parseFloat(nua.split(wk)[1]) > 528) ); @@ -9205,7 +9218,7 @@ if(typeof dojo != "undefined"){ var qsa = "querySelectorAll"; var qsaAvail = ( - !!getDoc()[qsa] && + !!getDoc()[qsa] && // see #5832 (!d.isSafari || (d.isSafari > 3.1) || is525 ) ); @@ -9234,7 +9247,7 @@ if(typeof dojo != "undefined"){ var domCached = _queryFuncCacheDOM[query]; if(domCached){ return domCached; } - // TODO: + // TODO: // today we're caching DOM and QSA branches separately so we // recalc useQSA every time. If we had a way to tag root+query // efficiently, we'd be in good shape to do a global cache. @@ -9248,11 +9261,11 @@ if(typeof dojo != "undefined"){ forceDOM = true; } - var useQSA = ( + var useQSA = ( qsaAvail && (!forceDOM) && // as per CSS 3, we can't currently start w/ combinator: // http://www.w3.org/TR/css3-selectors/#w3cselgrammar - (specials.indexOf(qcz) == -1) && + (specials.indexOf(qcz) == -1) && // IE's QSA impl sucks on pseudos (!d.isIE || (query.indexOf(":") == -1)) && @@ -9265,11 +9278,11 @@ if(typeof dojo != "undefined"){ // elements, even though according to spec, selected options should // match :checked. So go nonQSA for it: // http://bugs.dojotoolkit.org/ticket/5179 - (query.indexOf(":contains") == -1) && (query.indexOf(":checked") == -1) && + (query.indexOf(":contains") == -1) && (query.indexOf(":checked") == -1) && (query.indexOf("|=") == -1) // some browsers don't grok it ); - // TODO: + // TODO: // if we've got a descendant query (e.g., "> .thinger" instead of // just ".thinger") in a QSA-able doc, but are passed a child as a // root, it should be possible to give the item a synthetic ID and @@ -9278,7 +9291,7 @@ if(typeof dojo != "undefined"){ if(useQSA){ - var tq = (specials.indexOf(query.charAt(query.length-1)) >= 0) ? + var tq = (specials.indexOf(query.charAt(query.length-1)) >= 0) ? (query + " *") : query; return _queryFuncCacheQSA[query] = function(root){ try{ @@ -9305,9 +9318,9 @@ if(typeof dojo != "undefined"){ }else{ // DOM branch var parts = query.split(/\s*,\s*/); - return _queryFuncCacheDOM[query] = ((parts.length < 2) ? + return _queryFuncCacheDOM[query] = ((parts.length < 2) ? // if not a compound query (e.g., ".foo, .bar"), cache and return a dispatcher - getStepQueryFunc(query) : + getStepQueryFunc(query) : // if it *is* a complex query, break it up into its // constituent parts and return a dispatcher that will // merge the parts when run @@ -9337,7 +9350,7 @@ if(typeof dojo != "undefined"){ }else{ return node.uniqueID; } - } : + } : function(node){ return (node._uid || (node._uid = ++_zipIdx)); }; @@ -9346,7 +9359,7 @@ if(typeof dojo != "undefined"){ // to flatten a list of unique items, but rather just tell if the item in // question is already in the bag. Normally we'd just use hash lookup to do // this for us but IE's DOM is busted so we can't really count on that. On - // the upside, it gives us a built in unique ID function. + // the upside, it gives us a built in unique ID function. var _isUnique = function(node, bag){ if(!bag){ return 1; } var id = _nodeUID(node); @@ -9358,7 +9371,7 @@ if(typeof dojo != "undefined"){ // returning a list of "uniques", hopefully in doucment order var _zipIdxName = "_zipIdx"; var _zip = function(arr){ - if(arr && arr.nozip){ + if(arr && arr.nozip){ return (qlc._wrap) ? qlc._wrap(arr) : arr; } // var ret = new d._NodeListCtor(); @@ -9377,7 +9390,7 @@ if(typeof dojo != "undefined"){ var szidx = _zipIdx+""; arr[0].setAttribute(_zipIdxName, szidx); for(var x = 1, te; te = arr[x]; x++){ - if(arr[x].getAttribute(_zipIdxName) != szidx){ + if(arr[x].getAttribute(_zipIdxName) != szidx){ ret.push(te); } te.setAttribute(_zipIdxName, szidx); @@ -9385,7 +9398,7 @@ if(typeof dojo != "undefined"){ }else if(d.isIE && arr.commentStrip){ try{ for(var x = 1, te; te = arr[x]; x++){ - if(_isElement(te)){ + if(_isElement(te)){ ret.push(te); } } @@ -9393,7 +9406,7 @@ if(typeof dojo != "undefined"){ }else{ if(arr[0]){ arr[0][_zipIdxName] = _zipIdx; } for(var x = 1, te; te = arr[x]; x++){ - if(arr[x][_zipIdxName] != _zipIdx){ + if(arr[x][_zipIdxName] != _zipIdx){ ret.push(te); } te[_zipIdxName] = _zipIdx; @@ -9423,11 +9436,11 @@ if(typeof dojo != "undefined"){ // * class selectors (e.g., `.foo`) // * node type selectors like `span` // * ` ` descendant selectors - // * `>` child element selectors + // * `>` child element selectors // * `#foo` style ID selectors // * `*` universal selector - // * `~`, the immediately preceeded-by sibling selector - // * `+`, the preceeded-by sibling selector + // * `~`, the preceded-by sibling selector + // * `+`, the immediately preceded-by sibling selector // * attribute queries: // | * `[foo]` attribute presence selector // | * `[foo='bar']` attribute value exact match @@ -9448,14 +9461,14 @@ if(typeof dojo != "undefined"){ // palette of selectors and when combined with functions for // manipulation presented by dojo.NodeList, many types of DOM // manipulation operations become very straightforward. - // + // // Unsupported Selectors: // ---------------------- // // While dojo.query handles many CSS3 selectors, some fall outside of - // what's resaonable for a programmatic node querying engine to + // what's reasonable for a programmatic node querying engine to // handle. Currently unsupported selectors include: - // + // // * namespace-differentiated selectors of any form // * all `::` pseduo-element selectors // * certain pseduo-selectors which don't get a lot of day-to-day use: @@ -9464,10 +9477,10 @@ if(typeof dojo != "undefined"){ // | * `:root`, `:active`, `:hover`, `:visisted`, `:link`, // `:enabled`, `:disabled` // * `:*-of-type` pseudo selectors - // + // // dojo.query and XML Documents: // ----------------------------- - // + // // `dojo.query` (as of dojo 1.2) supports searching XML documents // in a case-sensitive manner. If an HTML document is served with // a doctype that forces case-sensitivity (e.g., XHTML 1.1 @@ -9577,12 +9590,12 @@ if(typeof dojo != "undefined"){ // NOTE: // Opera in XHTML mode doesn't detect case-sensitivity correctly // and it's not clear that there's any way to test for it - caseSensitive = (root.contentType && root.contentType=="application/xml") || + caseSensitive = (root.contentType && root.contentType=="application/xml") || (d.isOpera && (root.doctype || od.toString() == "[object XMLDocument]")) || - (!!od) && + (!!od) && (d.isIE ? od.xml : (root.xmlVersion||od.xmlVersion)); - // NOTE: + // NOTE: // adding "true" as the 2nd argument to getQueryFunc is useful for // testing the DOM branch without worrying about the // behavior/performance of the QSA branch. @@ -9599,16 +9612,98 @@ if(typeof dojo != "undefined"){ // FIXME: need to add infrastructure for post-filtering pseudos, ala :last d.query.pseudos = pseudos; - // one-off function for filtering a NodeList based on a simple selector - d._filterQueryResult = function(nodeList, simpleFilter){ - var tmpNodeList = new d._NodeListCtor(); - var filterFunc = getSimpleFilterFunc(getQueryParts(simpleFilter)[0]); + // function for filtering a NodeList based on a selector, optimized for simple selectors + d._filterQueryResult = function(/*NodeList*/ nodeList, /*String*/ filter, /*String|DOMNode?*/ root){ + var tmpNodeList = new d._NodeListCtor(), + parts = getQueryParts(filter), + filterFunc = + (parts.length == 1 && !/[^\w#\.]/.test(filter)) ? + getSimpleFilterFunc(parts[0]) : + function(node) { + return dojo.query(filter, root).indexOf(node) != -1; + }; for(var x = 0, te; te = nodeList[x]; x++){ if(filterFunc(te)){ tmpNodeList.push(te); } } return tmpNodeList; } -})(this["queryPortability"]||this["acme"]||dojo); +};//end defineQuery + +var defineAcme= function(){ + // a self-sufficient query impl + acme = { + trim: function(/*String*/ str){ + // summary: + // trims whitespaces from both sides of the string + str = str.replace(/^\s+/, ''); + for(var i = str.length - 1; i >= 0; i--){ + if(/\S/.test(str.charAt(i))){ + str = str.substring(0, i + 1); + break; + } + } + return str; // String + }, + forEach: function(/*String*/ arr, /*Function*/ callback, /*Object?*/ thisObject){ + // summary: + // an iterator function that passes items, indexes, + // and the array to a callback + if(!arr || !arr.length){ return; } + for(var i=0,l=arr.length; i<l; ++i){ + callback.call(thisObject||window, arr[i], i, arr); + } + }, + byId: function(id, doc){ + // summary: + // a function that return an element by ID, but also + // accepts nodes safely + if(typeof id == "string"){ + return (doc||document).getElementById(id); // DomNode + }else{ + return id; // DomNode + } + }, + // the default document to search + doc: document, + // the constructor for node list objects returned from query() + NodeList: Array + }; + + // define acme.isIE, acme.isSafari, acme.isOpera, etc. + var n = navigator; + var dua = n.userAgent; + var dav = n.appVersion; + var tv = parseFloat(dav); + acme.isOpera = (dua.indexOf("Opera") >= 0) ? tv: undefined; + acme.isKhtml = (dav.indexOf("Konqueror") >= 0) ? tv : undefined; + acme.isWebKit = parseFloat(dua.split("WebKit/")[1]) || undefined; + acme.isChrome = parseFloat(dua.split("Chrome/")[1]) || undefined; + var index = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0); + if(index && !acme.isChrome){ + acme.isSafari = parseFloat(dav.split("Version/")[1]); + if(!acme.isSafari || parseFloat(dav.substr(index + 7)) <= 419.3){ + acme.isSafari = 2; + } + } + if(document.all && !acme.isOpera){ + acme.isIE = parseFloat(dav.split("MSIE ")[1]) || undefined; + } + + Array._wrap = function(arr){ return arr; }; + return acme; +}; + + //prefers queryPortability, then acme, then dojo + if(this["dojo"]){ + dojo.provide("dojo._base.query"); + + + defineQuery(this["queryPortability"]||this["acme"]||dojo); + }else{ + defineQuery(this["queryPortability"]||this["acme"]||defineAcme()); + } + +})(); /* */ @@ -9623,6 +9718,7 @@ dojo.provide("dojo._base.xhr"); + (function(){ var _d = dojo, cfg = _d.config; @@ -9663,7 +9759,7 @@ dojo.provide("dojo._base.xhr"); var type = (item.type||"").toLowerCase(); if(_in && type && !item.disabled){ if(type == "radio" || type == "checkbox"){ - if(item.checked){ ret = item.value } + if(item.checked){ ret = item.value; } }else if(item.multiple){ ret = []; _d.query("option", item).forEach(function(opt){ @@ -9677,7 +9773,7 @@ dojo.provide("dojo._base.xhr"); } } return ret; // Object - } + }; dojo.formToObject = function(/*DOMNode||String*/ formNode){ // summary: @@ -9704,7 +9800,7 @@ dojo.provide("dojo._base.xhr"); // yields this object structure as the result of a call to // formToObject(): // - // | { + // | { // | blah: "blah", // | multi: [ // | "thud", @@ -9725,7 +9821,7 @@ dojo.provide("dojo._base.xhr"); } }); return ret; // Object - } + }; dojo.objectToQuery = function(/*Object*/ map){ // summary: @@ -9734,7 +9830,7 @@ dojo.provide("dojo._base.xhr"); // example: // this object: // - // | { + // | { // | blah: "blah", // | multi: [ // | "thud", @@ -9743,7 +9839,7 @@ dojo.provide("dojo._base.xhr"); // | }; // // yields the following query string: - // + // // | "blah=blah&multi=thud&multi=thonk" // FIXME: need to implement encodeAscii!! @@ -9764,21 +9860,21 @@ dojo.provide("dojo._base.xhr"); } } return pairs.join("&"); // String - } + }; dojo.formToQuery = function(/*DOMNode||String*/ formNode){ // summary: // Returns a URL-encoded string representing the form passed as either a // node or string ID identifying the form to serialize return _d.objectToQuery(_d.formToObject(formNode)); // String - } + }; dojo.formToJson = function(/*DOMNode||String*/ formNode, /*Boolean?*/prettyPrint){ // summary: // Create a serialized JSON string from a form node or string // ID identifying the form to serialize return _d.toJson(_d.formToObject(formNode), prettyPrint); // String - } + }; dojo.queryToObject = function(/*String*/ str){ // summary: @@ -9789,7 +9885,7 @@ dojo.provide("dojo._base.xhr"); // This string: // // | "foo=bar&foo=baz&thinger=%20spaces%20=blah&zonk=blarg&" - // + // // results in this object structure: // // | { @@ -9797,7 +9893,7 @@ dojo.provide("dojo._base.xhr"); // | thinger: " spaces =blah", // | zonk: "blarg" // | } - // + // // Note that spaces and other urlencoded entities are correctly // handled. @@ -9822,7 +9918,7 @@ dojo.provide("dojo._base.xhr"); } }); return ret; // Object - } + }; // need to block async callbacks from snatching this thread as the result // of an async callback might call another sync XHR, this hangs khtml forever @@ -9832,7 +9928,7 @@ dojo.provide("dojo._base.xhr"); // MOW: remove dojo._contentHandlers alias in 2.0 var handlers = _d._contentHandlers = dojo.contentHandlers = { - // summary: + // summary: // A map of availble XHR transport handle types. Name matches the // `handleAs` attribute passed to XHR calls. // @@ -9840,41 +9936,41 @@ dojo.provide("dojo._base.xhr"); // A map of availble XHR transport handle types. Name matches the // `handleAs` attribute passed to XHR calls. Each contentHandler is // called, passing the xhr object for manipulation. The return value - // from the contentHandler will be passed to the `load` or `handle` - // functions defined in the original xhr call. - // + // from the contentHandler will be passed to the `load` or `handle` + // functions defined in the original xhr call. + // // example: // Creating a custom content-handler: // | dojo.contentHandlers.makeCaps = function(xhr){ // | return xhr.responseText.toUpperCase(); // | } // | // and later: - // | dojo.xhrGet({ + // | dojo.xhrGet({ // | url:"foo.txt", // | handleAs:"makeCaps", // | load: function(data){ /* data is a toUpper version of foo.txt */ } // | }); - text: function(xhr){ + text: function(xhr){ // summary: A contentHandler which simply returns the plaintext response data - return xhr.responseText; + return xhr.responseText; }, json: function(xhr){ // summary: A contentHandler which returns a JavaScript object created from the response data return _d.fromJson(xhr.responseText || null); }, - "json-comment-filtered": function(xhr){ - // summary: A contentHandler which expects comment-filtered JSON. - // description: - // A contentHandler which expects comment-filtered JSON. + "json-comment-filtered": function(xhr){ + // summary: A contentHandler which expects comment-filtered JSON. + // description: + // A contentHandler which expects comment-filtered JSON. // the json-comment-filtered option was implemented to prevent // "JavaScript Hijacking", but it is less secure than standard JSON. Use // standard JSON instead. JSON prefixing can be used to subvert hijacking. - // + // // Will throw a notice suggesting to use application/json mimetype, as // json-commenting can introduce security issues. To decrease the chances of hijacking, - // use the standard `json` contentHandler, and prefix your "JSON" with: {}&& - // + // use the standard `json` contentHandler, and prefix your "JSON" with: {}&& + // // use djConfig.useCommentedJson = true to turn off the notice if(!dojo.config.useCommentedJson){ console.warn("Consider using the standard mimetype:application/json." @@ -9892,7 +9988,7 @@ dojo.provide("dojo._base.xhr"); } return _d.fromJson(value.substring(cStartIdx+2, cEndIdx)); }, - javascript: function(xhr){ + javascript: function(xhr){ // summary: A contentHandler which evaluates the response data, expecting it to be valid JavaScript // FIXME: try Moz and IE specific eval variants? @@ -9904,7 +10000,7 @@ dojo.provide("dojo._base.xhr"); if(_d.isIE && (!result || !result.documentElement)){ //WARNING: this branch used by the xml handling in dojo.io.iframe, //so be sure to test dojo.io.iframe if making changes below. - var ms = function(n){ return "MSXML" + n + ".DOMDocument"; } + var ms = function(n){ return "MSXML" + n + ".DOMDocument"; }; var dp = ["Microsoft.XMLDOM", ms(6), ms(4), ms(3), ms(2)]; _d.some(dp, function(p){ try{ @@ -9919,7 +10015,7 @@ dojo.provide("dojo._base.xhr"); return result; // DOMDocument }, "json-comment-optional": function(xhr){ - // summary: A contentHandler which checks the presence of comment-filtered JSON and + // summary: A contentHandler which checks the presence of comment-filtered JSON and // alternates between the `json` and `json-comment-filtered` contentHandlers. if(xhr.responseText && /^[^{\[]*\/\*/.test(xhr.responseText)){ return handlers["json-comment-filtered"](xhr); @@ -9951,7 +10047,7 @@ dojo.provide("dojo._base.xhr"); // handleAs: String? // Acceptable values depend on the type of IO // transport (see specific IO calls for more information). - // rawBody: String? + // rawBody: String? // Sets the raw body for an HTTP request. If this is used, then the content // property is ignored. This is mostly useful for HTTP methods that have // a body to their requests, like PUT or POST. This property can be used instead @@ -10096,7 +10192,7 @@ dojo.provide("dojo._base.xhr"); /*Function*/canceller, /*Function*/okHandler, /*Function*/errHandler){ - // summary: + // summary: // sets up the Deferred and ioArgs property on the Deferred so it // can be used in an io call. // args: @@ -10112,19 +10208,19 @@ dojo.provide("dojo._base.xhr"); // object returned from this function. // errHandler: // The first error callback to be registered with Deferred. It has the opportunity - // to do cleanup on an error. It will receive two arguments: error (the + // to do cleanup on an error. It will receive two arguments: error (the // Error object) and dfd, the Deferred object returned from this function. var ioArgs = {args: args, url: args.url}; //Get values from form if requestd. var formObject = null; - if(args.form){ + if(args.form){ var form = _d.byId(args.form); - //IE requires going through getAttributeNode instead of just getAttribute in some form cases, + //IE requires going through getAttributeNode instead of just getAttribute in some form cases, //so use it for all. See #2844 var actnNode = form.getAttributeNode("action"); - ioArgs.url = ioArgs.url || (actnNode ? actnNode.value : null); + ioArgs.url = ioArgs.url || (actnNode ? actnNode.value : null); formObject = _d.formToObject(form); } @@ -10197,7 +10293,7 @@ dojo.provide("dojo._base.xhr"); // FIXME: need to wire up the xhr object's abort method to something // analagous in the Deferred return d; - } + }; var _deferredCancel = function(/*Deferred*/dfd){ // summary: canceller function for dojo._ioSetArgs call. @@ -10214,13 +10310,13 @@ dojo.provide("dojo._base.xhr"); err.dojoType="cancel"; } return err; - } + }; var _deferredOk = function(/*Deferred*/dfd){ // summary: okHandler function for dojo._ioSetArgs call. var ret = handlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr); return ret === undefined ? null : ret; - } + }; var _deferError = function(/*Error*/error, /*Deferred*/dfd){ // summary: errHandler function for dojo._ioSetArgs call. @@ -10228,7 +10324,7 @@ dojo.provide("dojo._base.xhr"); console.error(error); } return error; - } + }; // avoid setting a timer per request. It degrades performance on IE // something fierece if we don't use unified loops. @@ -10252,7 +10348,7 @@ dojo.provide("dojo._base.xhr"); }; var _watchInFlight = function(){ - //summary: + //summary: // internal method that checks each inflight XMLHttpRequest to see // if it has completed or if the timeout situation applies. @@ -10267,7 +10363,7 @@ dojo.provide("dojo._base.xhr"); var dfd = tif.dfd; var func = function(){ if(!dfd || dfd.canceled || !tif.validCheck(dfd)){ - _inFlight.splice(i--, 1); + _inFlight.splice(i--, 1); _pubCount -= 1; }else if(tif.ioCheck(dfd)){ _inFlight.splice(i--, 1); @@ -10305,7 +10401,7 @@ dojo.provide("dojo._base.xhr"); _inFlightIntvl = null; return; } - } + }; dojo._ioCancelAll = function(){ //summary: Cancels all pending IO requests, regardless of IO type @@ -10317,7 +10413,7 @@ dojo.provide("dojo._base.xhr"); }catch(e){/*squelch*/} }); }catch(e){/*squelch*/} - } + }; //Automatically call cancel all io calls on unload //in IE for trac issue #2357. @@ -10340,10 +10436,10 @@ dojo.provide("dojo._base.xhr"); _pubCount += 1; _d.publish("/dojo/io/send", [dfd]); } - } + }; _d._ioWatch = function(dfd, validCheck, ioCheck, resHandle){ - // summary: + // summary: // Watches the io request represented by dfd to see if it completes. // dfd: Deferred // The Deferred object to watch. @@ -10373,16 +10469,16 @@ dojo.provide("dojo._base.xhr"); if(args.sync){ _watchInFlight(); } - } + }; var _defaultContentType = "application/x-www-form-urlencoded"; var _validCheck = function(/*Deferred*/dfd){ return dfd.ioArgs.xhr.readyState; //boolean - } + }; var _ioCheck = function(/*Deferred*/dfd){ return 4 == dfd.ioArgs.xhr.readyState; //boolean - } + }; var _resHandle = function(/*Deferred*/dfd){ var xhr = dfd.ioArgs.xhr; if(_d._isDocumentOk(xhr)){ @@ -10393,7 +10489,7 @@ dojo.provide("dojo._base.xhr"); err.responseText = xhr.responseText; dfd.errback(err); } - } + }; dojo._ioAddQueryToUrl = function(/*dojo.__IoCallbackArgs*/ioArgs){ //summary: Adds query params discovered by the io deferred construction to the URL. @@ -10401,8 +10497,8 @@ dojo.provide("dojo._base.xhr"); if(ioArgs.query.length){ ioArgs.url += (ioArgs.url.indexOf("?") == -1 ? "?" : "&") + ioArgs.query; ioArgs.query = null; - } - } + } + }; /*===== dojo.declare("dojo.__XhrArgs", dojo.__IoArgs, { @@ -10503,13 +10599,13 @@ dojo.provide("dojo._base.xhr"); _d._ioWatch(dfd, _validCheck, _ioCheck, _resHandle); xhr = null; return dfd; // dojo.Deferred - } + }; dojo.xhrGet = function(/*dojo.__XhrArgs*/ args){ - // summary: + // summary: // Sends an HTTP GET request to the server. return _d.xhr("GET", args); // dojo.Deferred - } + }; dojo.rawXhrPost = dojo.xhrPost = function(/*dojo.__XhrArgs*/ args){ // summary: @@ -10518,7 +10614,7 @@ dojo.provide("dojo._base.xhr"); // postData: // String. Send raw data in the body of the POST request. return _d.xhr("POST", args, true); // dojo.Deferred - } + }; dojo.rawXhrPut = dojo.xhrPut = function(/*dojo.__XhrArgs*/ args){ // summary: @@ -10527,13 +10623,13 @@ dojo.provide("dojo._base.xhr"); // putData: // String. Send raw data in the body of the PUT request. return _d.xhr("PUT", args, true); // dojo.Deferred - } + }; dojo.xhrDelete = function(/*dojo.__XhrArgs*/ args){ // summary: // Sends an HTTP DELETE request to the server. return _d.xhr("DELETE", args); //dojo.Deferred - } + }; /* dojo.wrapForm = function(formNode){ @@ -10558,6 +10654,7 @@ dojo.provide("dojo._base.fx"); + /* Animation loosely package based on Dan Pupius' work, contributed under CLA: http://pupius.co.uk/js/Toolkit.Drawing.js @@ -11225,14 +11322,29 @@ dojo.provide("dojo._base.browser"); + //Need this to be the last code segment in base, so do not place any + //dojo/requireIf calls in this file/ Otherwise, due to how the build system + //puts all requireIf dependencies after the current file, the require calls + //could be called before all of base is defined/ + dojo.forEach(dojo.config.require, function(i){ + dojo["require"](i); + }); + +} + +if(!dojo._hasResource["dojo._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base"] = true; +dojo.provide("dojo._base"); + + + + + + + + + -//Need this to be the last code segment in base, so do not place any -//dojo.requireIf calls in this file. Otherwise, due to how the build system -//puts all requireIf dependencies after the current file, the require calls -//could be called before all of base is defined. -dojo.forEach(dojo.config.require, function(i){ - dojo["require"](i); -}); } diff --git a/lib/dojo/fx.js b/lib/dojo/fx.js index 5c70d5b9e..60782accb 100644 --- a/lib/dojo/fx.js +++ b/lib/dojo/fx.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,7 +8,9 @@ if(!dojo._hasResource["dojo.fx"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.fx"] = true; dojo.provide("dojo.fx"); -dojo.require("dojo.fx.Toggler"); // FIXME: remove this back-compat require in 2.0 +dojo.require("dojo.fx.Toggler"); + + /*===== dojo.fx = { // summary: Effects library on top of Base animations @@ -16,7 +18,7 @@ dojo.fx = { =====*/ (function(){ - var d = dojo, + var d = dojo, _baseObj = { _fire: function(evt, args){ if(this[evt]){ @@ -135,14 +137,14 @@ dojo.fx = { d.extend(_chain, _baseObj); dojo.fx.chain = function(/*dojo.Animation[]*/ animations){ - // summary: + // summary: // Chain a list of `dojo.Animation`s to run in sequence // // description: // Return a `dojo.Animation` which will play all passed // `dojo.Animation` instances in sequence, firing its own // synthesized events simulating a single animation. (eg: - // onEnd of this animation means the end of the chain, + // onEnd of this animation means the end of the chain, // not the individual animations within) // // example: @@ -170,7 +172,7 @@ dojo.fx = { this._pseudoAnimation = new d.Animation({curve: [0, 1], duration: this.duration}); var self = this; - d.forEach(["beforeBegin", "onBegin", "onPlay", "onAnimate", "onPause", "onStop", "onEnd"], + d.forEach(["beforeBegin", "onBegin", "onPlay", "onAnimate", "onPause", "onStop", "onEnd"], function(evt){ self._connects.push(d.connect(self._pseudoAnimation, evt, function(){ self._fire(evt, arguments); } @@ -228,11 +230,11 @@ dojo.fx = { d.extend(_combine, _baseObj); dojo.fx.combine = function(/*dojo.Animation[]*/ animations){ - // summary: + // summary: // Combine a list of `dojo.Animation`s to run in parallel // // description: - // Combine an array of `dojo.Animation`s to run in parallel, + // Combine an array of `dojo.Animation`s to run in parallel, // providing a new `dojo.Animation` instance encompasing each // animation, firing standard animation events. // @@ -303,17 +305,17 @@ dojo.fx = { } }, args)); - d.connect(anim, "onEnd", function(){ + d.connect(anim, "onEnd", function(){ s.height = "auto"; s.overflow = o; }); return anim; // dojo.Animation - } + }; dojo.fx.wipeOut = function(/*Object*/ args){ // summary: - // Shrink a node to nothing and hide it. + // Shrink a node to nothing and hide it. // // description: // Returns an animation that will shrink node defined in "args" @@ -322,7 +324,7 @@ dojo.fx = { // args: Object // A hash-map of standard `dojo.Animation` constructor properties // (such as easing: node: duration: and so on) - // + // // example: // | dojo.fx.wipeOut({ node:"someId" }).play() @@ -348,14 +350,14 @@ dojo.fx = { }); return anim; // dojo.Animation - } + }; dojo.fx.slideTo = function(/*Object*/ args){ // summary: // Slide a node to a new top/left position // // description: - // Returns an animation that will slide "node" + // Returns an animation that will slide "node" // defined in args Object from its current position to // the position defined by (args.left, args.top). // @@ -367,7 +369,7 @@ dojo.fx = { // example: // | dojo.fx.slideTo({ node: node, left:"40", top:"50", units:"px" }).play() - var node = args.node = d.byId(args.node), + var node = args.node = d.byId(args.node), top = null, left = null; var init = (function(n){ @@ -397,7 +399,7 @@ dojo.fx = { d.connect(anim, "beforeBegin", anim, init); return anim; // dojo.Animation - } + }; })(); diff --git a/lib/dojo/fx/Toggler.js b/lib/dojo/fx/Toggler.js index ddc3e225d..dc4693d8e 100644 --- a/lib/dojo/fx/Toggler.js +++ b/lib/dojo/fx/Toggler.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo.fx.Toggler"]){ //_hasResource checks added by build. dojo._hasResource["dojo.fx.Toggler"] = true; dojo.provide("dojo.fx.Toggler"); + dojo.declare("dojo.fx.Toggler", null, { // summary: // A simple `dojo.Animation` toggler API. @@ -16,16 +17,16 @@ dojo.declare("dojo.fx.Toggler", null, { // description: // class constructor for an animation toggler. It accepts a packed // set of arguments about what type of animation to use in each - // direction, duration, etc. All available members are mixed into - // these animations from the constructor (for example, `node`, - // `showDuration`, `hideDuration`). + // direction, duration, etc. All available members are mixed into + // these animations from the constructor (for example, `node`, + // `showDuration`, `hideDuration`). // // example: // | var t = new dojo.fx.Toggler({ // | node: "nodeId", // | showDuration: 500, // | // hideDuration will default to "200" - // | showFunc: dojo.fx.wipeIn, + // | showFunc: dojo.fx.wipeIn, // | // hideFunc will default to "fadeOut" // | }); // | t.show(100); // delay showing for 100ms @@ -40,7 +41,7 @@ dojo.declare("dojo.fx.Toggler", null, { // The function that returns the `dojo.Animation` to show the node showFunc: dojo.fadeIn, - // hideFunc: Function + // hideFunc: Function // The function that returns the `dojo.Animation` to hide the node hideFunc: dojo.fadeOut, @@ -56,7 +57,7 @@ dojo.declare("dojo.fx.Toggler", null, { // time show/hide are called if we're stopped somewhere in the // middle. // FIXME: also would be nice to specify individual showArgs/hideArgs mixed into - // each animation individually. + // each animation individually. // FIXME: also would be nice to have events from the animations exposed/bridged /*===== diff --git a/lib/dojo/fx/easing.js b/lib/dojo/fx/easing.js index 0ce6efbff..c26af8971 100644 --- a/lib/dojo/fx/easing.js +++ b/lib/dojo/fx/easing.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,11 +9,13 @@ if(!dojo._hasResource["dojo.fx.easing"]){ //_hasResource checks added by build. dojo._hasResource["dojo.fx.easing"] = true; dojo.provide("dojo.fx.easing"); +dojo.getObject("fx.easing", true, dojo); + dojo.fx.easing = { - // summary: - // Collection of easing functions to use beyond the default + // summary: + // Collection of easing functions to use beyond the default // `dojo._defaultEasing` function. - // + // // description: // // Easing functions are used to manipulate the iteration through @@ -21,22 +23,22 @@ dojo.fx.easing = { // and the easing function progresses through that Line determing // how quickly (or slowly) it should go. Or more accurately: modify // the value of the _Line based on the percentage of animation completed. - // + // // All functions follow a simple naming convention of "ease type" + "when". // If the name of the function ends in Out, the easing described appears // towards the end of the animation. "In" means during the beginning, // and InOut means both ranges of the Animation will applied, both - // beginning and end. + // beginning and end. // - // One does not call the easing function directly, it must be passed to + // One does not call the easing function directly, it must be passed to // the `easing` property of an animation. // // example: // | dojo.require("dojo.fx.easing"); // | var anim = dojo.fadeOut({ - // | node: 'node', + // | node: 'node', // | duration: 2000, - // | // note there is no () + // | // note there is no () // | easing: dojo.fx.easing.quadIn // | }).play(); // @@ -151,24 +153,24 @@ dojo.fx.easing = { }, backIn: function(/* Decimal? */n){ - // summary: - // An easing function that starts away from the target, + // summary: + // An easing function that starts away from the target, // and quickly accelerates towards the end value. - // - // Use caution when the easing will cause values to become + // + // Use caution when the easing will cause values to become // negative as some properties cannot be set to negative values. var s = 1.70158; return Math.pow(n, 2) * ((s + 1) * n - s); }, backOut: function(/* Decimal? */n){ - // summary: - // An easing function that pops past the range briefly, and slowly comes back. + // summary: + // An easing function that pops past the range briefly, and slowly comes back. // // description: - // An easing function that pops past the range briefly, and slowly comes back. + // An easing function that pops past the range briefly, and slowly comes back. // - // Use caution when the easing will cause values to become negative as some + // Use caution when the easing will cause values to become negative as some // properties cannot be set to negative values. n = n - 1; @@ -177,12 +179,12 @@ dojo.fx.easing = { }, backInOut: function(/* Decimal? */n){ - // summary: + // summary: // An easing function combining the effects of `backIn` and `backOut` // // description: // An easing function combining the effects of `backIn` and `backOut`. - // Use caution when the easing will cause values to become negative + // Use caution when the easing will cause values to become negative // as some properties cannot be set to negative values. var s = 1.70158 * 1.525; n = n * 2; @@ -192,13 +194,13 @@ dojo.fx.easing = { }, elasticIn: function(/* Decimal? */n){ - // summary: + // summary: // An easing function the elastically snaps from the start value // // description: // An easing function the elastically snaps from the start value - // - // Use caution when the elasticity will cause values to become negative + // + // Use caution when the elasticity will cause values to become negative // as some properties cannot be set to negative values. if(n == 0 || n == 1){ return n; } var p = .3; @@ -208,7 +210,7 @@ dojo.fx.easing = { }, elasticOut: function(/* Decimal? */n){ - // summary: + // summary: // An easing function that elasticly snaps around the target value, // near the end of the Animation // @@ -216,7 +218,7 @@ dojo.fx.easing = { // An easing function that elasticly snaps around the target value, // near the end of the Animation // - // Use caution when the elasticity will cause values to become + // Use caution when the elasticity will cause values to become // negative as some properties cannot be set to negative values. if(n==0 || n == 1){ return n; } var p = .3; @@ -225,7 +227,7 @@ dojo.fx.easing = { }, elasticInOut: function(/* Decimal? */n){ - // summary: + // summary: // An easing function that elasticly snaps around the value, near // the beginning and end of the Animation. // @@ -233,7 +235,7 @@ dojo.fx.easing = { // An easing function that elasticly snaps around the value, near // the beginning and end of the Animation. // - // Use caution when the elasticity will cause values to become + // Use caution when the elasticity will cause values to become // negative as some properties cannot be set to negative values. if(n == 0) return 0; n = n * 2; @@ -249,7 +251,7 @@ dojo.fx.easing = { }, bounceIn: function(/* Decimal? */n){ - // summary: + // summary: // An easing function that 'bounces' near the beginning of an Animation return (1 - dojo.fx.easing.bounceOut(1 - n)); // Decimal }, @@ -259,7 +261,7 @@ dojo.fx.easing = { // An easing function that 'bounces' near the end of an Animation var s = 7.5625; var p = 2.75; - var l; + var l; if(n < (1 / p)){ l = s * Math.pow(n, 2); }else if(n < (2 / p)){ @@ -276,7 +278,7 @@ dojo.fx.easing = { }, bounceInOut: function(/* Decimal? */n){ - // summary: + // summary: // An easing function that 'bounces' at the beginning and end of the Animation if(n < 0.5){ return dojo.fx.easing.bounceIn(n * 2) / 2; } return (dojo.fx.easing.bounceOut(n * 2 - 1) / 2) + 0.5; // Decimal diff --git a/lib/dojo/gears.js b/lib/dojo/gears.js index aca6c5a4f..d5595b191 100644 --- a/lib/dojo/gears.js +++ b/lib/dojo/gears.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,8 +9,10 @@ if(!dojo._hasResource["dojo.gears"]){ //_hasResource checks added by build. Do n dojo._hasResource["dojo.gears"] = true; dojo.provide("dojo.gears"); +dojo.getObject("gears", true, dojo); + dojo.gears._gearsObject = function(){ - // summary: + // summary: // factory method to get a Google Gears plugin instance to // expose in the browser runtime environment, if present var factory; diff --git a/lib/dojo/hash.js b/lib/dojo/hash.js index 6ef74b521..e7f6a400f 100644 --- a/lib/dojo/hash.js +++ b/lib/dojo/hash.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,6 +8,8 @@ if(!dojo._hasResource["dojo.hash"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.hash"] = true; dojo.provide("dojo.hash"); + + //TODOC: where does this go? // summary: // Methods for monitoring and updating the hash in the browser URL. @@ -27,11 +29,11 @@ dojo.provide("dojo.hash"); // Handles getting and setting of location.hash. // - If no arguments are passed, acts as a getter. // - If a string is passed, acts as a setter. - // hash: - // String: the hash is set - #string. + // hash: + // the hash is set - #string. // replace: - // Boolean: If true, updates the hash value in the current history - // state instead of creating a new history state. + // If true, updates the hash value in the current history + // state instead of creating a new history state. // returns: // when used as a getter, returns the current hash string. // when used as a setter, returns the new hash string. @@ -50,17 +52,16 @@ dojo.provide("dojo.hash"); location.href = "#" + hash; } return hash; // String - } + }; // Global vars - var _recentHash = null, - _ieUriMonitor = null, + var _recentHash, _ieUriMonitor, _connect, _pollFrequency = dojo.config.hashPollFrequency || 100; //Internal functions function _getSegment(str, delimiter){ var i = str.indexOf(delimiter); - return (i >= 0) ? str.substring(i+1) : ""; + return (i >= 0) ? str.substring(i+1) : ""; } function _getHash(){ @@ -92,12 +93,12 @@ dojo.provide("dojo.hash"); return; } location.replace("#"+hash); - _pollLocation(); + !_connect && _pollLocation(); } function IEUriMonitor(){ // summary: - // Determine if the browser's URI has changed or if the user has pressed the + // Determine if the browser's URI has changed or if the user has pressed the // back or forward button. If so, call _dispatchEvent. // // description: @@ -147,6 +148,13 @@ dojo.provide("dojo.hash"); var ifr = document.createElement("iframe"), IFRAME_ID = "dojo-hash-iframe", ifrSrc = dojo.config.dojoBlankHtmlUrl || dojo.moduleUrl("dojo", "resources/blank.html"); + + if(dojo.config.useXDomain && !dojo.config.dojoBlankHtmlUrl){ + console.warn("dojo.hash: When using cross-domain Dojo builds," + + " please save dojo/resources/blank.html to your domain and set djConfig.dojoBlankHtmlUrl" + + " to the path on your domain to blank.html"); + } + ifr.id = IFRAME_ID; ifr.src = ifrSrc + "?" + _getHash(); ifr.style.display = "none"; @@ -165,7 +173,7 @@ dojo.provide("dojo.hash"); this.isTransitioning = function(){ return transitioning; - } + }; this.pollLocation = function(){ if(!ifrOffline) { @@ -216,13 +224,13 @@ dojo.provide("dojo.hash"); } } setTimeout(dojo.hitch(this,this.pollLocation), _pollFrequency); - } + }; resetState(); // initialize state (transition to s1) setTimeout(dojo.hitch(this,this.pollLocation), _pollFrequency); } dojo.addOnLoad(function(){ if("onhashchange" in dojo.global && (!dojo.isIE || (dojo.isIE >= 8 && document.compatMode != "BackCompat"))){ //need this IE browser test because "onhashchange" exists in IE8 in IE7 mode - dojo.connect(dojo.global,"onhashchange",_dispatchEvent); + _connect = dojo.connect(dojo.global,"onhashchange",_dispatchEvent); }else{ if(document.addEventListener){ // Non-IE _recentHash = _getHash(); @@ -230,7 +238,7 @@ dojo.provide("dojo.hash"); }else if(document.attachEvent){ // IE7- //Use hidden iframe in versions of IE that don't have onhashchange event _ieUriMonitor = new IEUriMonitor(); - } + } // else non-supported browser, do nothing. } }); diff --git a/lib/dojo/html.js b/lib/dojo/html.js index ec5c4986e..f88f899cc 100644 --- a/lib/dojo/html.js +++ b/lib/dojo/html.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,25 +8,26 @@ if(!dojo._hasResource["dojo.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.html"] = true; dojo.provide("dojo.html"); +dojo.require("dojo.parser"); -// the parser might be needed.. -dojo.require("dojo.parser"); +dojo.getObject("html", true, dojo); +// the parser might be needed.. (function(){ // private scope, sort of a namespace // idCounter is incremented with each instantiation to allow asignment of a unique id for tracking, logging purposes - var idCounter = 0, + var idCounter = 0, d = dojo; dojo.html._secureForInnerHtml = function(/*String*/ cont){ // summary: // removes !DOCTYPE and title elements from the html string. - // + // // khtml is picky about dom faults, you can't attach a style or <title> node as child of body // must go into head, so we need to cut out those tags // cont: // An html string for insertion into the dom - // + // return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig, ""); // String }; @@ -46,7 +47,7 @@ dojo.require("dojo.parser"); // node: // the parent element // content: - // the content to be set on the parent element. + // the content to be set on the parent element. // This can be an html string, a node reference or a NodeList, dojo.NodeList, Array or other enumerable list of nodes // always empty @@ -72,7 +73,7 @@ dojo.require("dojo.parser"); }; // we wrap up the content-setting operation in a object - dojo.declare("dojo.html._ContentSetter", null, + dojo.declare("dojo.html._ContentSetter", null, { // node: DomNode|String // An node which will be the parent element that we set content into @@ -83,11 +84,11 @@ dojo.require("dojo.parser"); content: "", // id: String? - // Usually only used internally, and auto-generated with each instance + // Usually only used internally, and auto-generated with each instance id: "", // cleanContent: Boolean - // Should the content be treated as a full html document, + // Should the content be treated as a full html document, // and the real content stripped of <html>, <body> wrapper before injection cleanContent: false, @@ -98,6 +99,17 @@ dojo.require("dojo.parser"); // parseContent: Boolean // Should the node by passed to the parser after the new content is set parseContent: false, + + // parserScope: String + // Flag passed to parser. Root for attribute names to search for. If scopeName is dojo, + // will search for data-dojo-type (or dojoType). For backwards compatibility + // reasons defaults to dojo._scopeName (which is "dojo" except when + // multi-version support is used, when it will be something like dojo16, dojo20, etc.) + parserScope: dojo._scopeName, + + // startup: Boolean + // Start the child widgets after parsing them. Only obeyed if parseContent is true. + startup: true, // lifecyle methods constructor: function(/* Object */params, /* String|DomNode */node){ @@ -115,14 +127,14 @@ dojo.require("dojo.parser"); if(!this.id){ this.id = [ "Setter", - (node) ? node.id || node.tagName : "", + (node) ? node.id || node.tagName : "", idCounter++ ].join("_"); } }, set: function(/* String|DomNode|NodeList? */ cont, /* Object? */ params){ // summary: - // front-end to the set-content sequence + // front-end to the set-content sequence // cont: // An html string, node or enumerable list of nodes for insertion into the dom // If not provided, the object's content property will be used @@ -142,9 +154,9 @@ dojo.require("dojo.parser"); }, setContent: function(){ // summary: - // sets the content on the node + // sets the content on the node - var node = this.node; + var node = this.node; if(!node) { // can't proceed throw new Error(this.declaredClass + ": setContent given no node"); @@ -156,7 +168,7 @@ dojo.require("dojo.parser"); // like for instance if domNode is a UL and we try append a DIV // FIXME: need to allow the user to provide a content error message string - var errMess = this.onContentError(e); + var errMess = this.onContentError(e); try{ node.innerHTML = errMess; }catch(e){ @@ -172,7 +184,7 @@ dojo.require("dojo.parser"); // cleanly empty out existing content // destroy any widgets from a previous run - // NOTE: if you dont want this you'll need to empty + // NOTE: if you dont want this you'll need to empty // the parseResults array property yourself to avoid bad things happenning if(this.parseResults && this.parseResults.length) { dojo.forEach(this.parseResults, function(w) { @@ -182,17 +194,17 @@ dojo.require("dojo.parser"); }); delete this.parseResults; } - // this is fast, but if you know its already empty or safe, you could + // this is fast, but if you know its already empty or safe, you could // override empty to skip this step dojo.html._emptyNode(this.node); }, onBegin: function(){ // summary - // Called after instantiation, but before set(); - // It allows modification of any of the object properties + // Called after instantiation, but before set(); + // It allows modification of any of the object properties // - including the node and content provided - before the set operation actually takes place - // This default implementation checks for cleanContent and extractContent flags to + // This default implementation checks for cleanContent and extractContent flags to // optionally pre-process html string content var cont = this.content; @@ -230,21 +242,21 @@ dojo.require("dojo.parser"); // summary // manually reset the Setter instance if its being re-used for example for another set() // description - // tearDown() is not called automatically. + // tearDown() is not called automatically. // In normal use, the Setter instance properties are simply allowed to fall out of scope // but the tearDown method can be called to explicitly reset this instance. - delete this.parseResults; - delete this.node; - delete this.content; + delete this.parseResults; + delete this.node; + delete this.content; }, onContentError: function(err){ - return "Error occured setting content: " + err; + return "Error occured setting content: " + err; }, _mixin: function(params){ // mix properties/methods into the instance - // TODO: the intention with tearDown is to put the Setter's state + // TODO: the intention with tearDown is to put the Setter's state // back to that of the original constructor (vs. deleting/resetting everything regardless of ctor params) // so we could do something here to move the original properties aside for later restoration var empty = {}, key; @@ -252,21 +264,28 @@ dojo.require("dojo.parser"); if(key in empty){ continue; } // TODO: here's our opportunity to mask the properties we dont consider configurable/overridable // .. but history shows we'll almost always guess wrong - this[key] = params[key]; + this[key] = params[key]; } }, _parse: function(){ - // summary: + // summary: // runs the dojo parser over the node contents, storing any results in this.parseResults // Any errors resulting from parsing are passed to _onError for handling var rootNode = this.node; try{ // store the results (widgets, whatever) for potential retrieval + var inherited = {}; + dojo.forEach(["dir", "lang", "textDir"], function(name){ + if(this[name]){ + inherited[name] = this[name]; + } + }, this); this.parseResults = dojo.parser.parse({ rootNode: rootNode, - dir: this.dir, - lang: this.lang + noStart: !this.startup, + inherited: inherited, + scope: this.parserScope }); }catch(e){ this._onError('Content', e, "Error parsing in _ContentSetter#"+this.id); @@ -299,29 +318,29 @@ dojo.require("dojo.parser"); // node: // the parent element that will receive the content // cont: - // the content to be set on the parent element. + // the content to be set on the parent element. // This can be an html string, a node reference or a NodeList, dojo.NodeList, Array or other enumerable list of nodes - // params: + // params: // Optional flags/properties to configure the content-setting. See dojo.html._ContentSetter // example: // A safe string/node/nodelist content replacement/injection with hooks for extension - // Example Usage: - // dojo.html.set(node, "some string"); - // dojo.html.set(node, contentNode, {options}); - // dojo.html.set(node, myNode.childNodes, {options}); + // Example Usage: + // dojo.html.set(node, "some string"); + // dojo.html.set(node, contentNode, {options}); + // dojo.html.set(node, myNode.childNodes, {options}); if(undefined == cont){ console.warn("dojo.html.set: no cont argument provided, using empty string"); cont = ""; - } + } if(!params){ // simple and fast return dojo.html._setNodeContent(node, cont, true); - }else{ + }else{ // more options but slower // note the arguments are reversed in order, to match the convention for instantiation via the parser - var op = new dojo.html._ContentSetter(dojo.mixin( - params, - { content: cont, node: node } + var op = new dojo.html._ContentSetter(dojo.mixin( + params, + { content: cont, node: node } )); return op.set(); } diff --git a/lib/dojo/i18n.js b/lib/dojo/i18n.js index d06a8f25e..893490fe0 100644 --- a/lib/dojo/i18n.js +++ b/lib/dojo/i18n.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,13 +9,16 @@ if(!dojo._hasResource["dojo.i18n"]){ //_hasResource checks added by build. Do no dojo._hasResource["dojo.i18n"] = true; dojo.provide("dojo.i18n"); +dojo.getObject("i18n", true, dojo); + /*===== dojo.i18n = { // summary: Utility classes to enable loading of resources for internationalization (i18n) }; =====*/ -dojo.i18n.getLocalization = function(/*String*/packageName, /*String*/bundleName, /*String?*/locale){ +// when using a real AMD loader, dojo.i18n.getLocalization is already defined by dojo/lib/backCompat +dojo.i18n.getLocalization = dojo.i18n.getLocalization || function(/*String*/packageName, /*String*/bundleName, /*String?*/locale){ // summary: // Returns an Object containing the localization for a given resource // bundle in a package, matching the specified locale. @@ -43,7 +46,7 @@ dojo.i18n.getLocalization = function(/*String*/packageName, /*String*/bundleName // look for nearest locale match var elements = locale.split('-'); var module = [packageName,"nls",bundleName].join('.'); - var bundle = dojo._loadedModules[module]; + var bundle = dojo._loadedModules[module]; if(bundle){ var localization; for(var i = elements.length; i > 0; i--){ @@ -93,7 +96,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle var targetLocale = dojo.i18n.normalizeLocale(locale); var bundlePackage = [moduleName, "nls", bundleName].join("."); - // NOTE: + // NOTE: // When loading these resources, the packaging does not match what is // on disk. This is an implementation detail, as this is just a // private data structure to hold the loaded resources. e.g. @@ -103,7 +106,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle // in memory it is more logical and efficient to store in a different // order. Locales cannot use dashes, since the resulting path will // not evaluate as valid JS, so we translate them to underscores. - + //Find the best-match locale to load if we have available flat locales. var bestLocale = ""; if(availableFlatLocales){ @@ -120,7 +123,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle } if(!bestLocale){ bestLocale = "ROOT"; - } + } } //See if the desired locale is already loaded. @@ -152,6 +155,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle module.push(bundleName); var filespec = module.join("/") + '.js'; loaded = dojo._loadPath(filespec, null, function(hash){ + hash = hash.root || hash; // Use singleton with prototype to point to parent bundle, then mix-in result from loadPath var clazz = function(){}; clazz.prototype = parent; @@ -166,7 +170,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle }else{ bundle[jsLoc] = parent; } - + if(availableFlatLocales){ //Stop the locale path searching if we know the availableFlatLocales, since //the first call to this function will load the only bundle that is needed. @@ -184,8 +188,8 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle (function(){ // If other locales are used, dojo.requireLocalization should load them as - // well, by default. - // + // well, by default. + // // Override dojo.requireLocalization to do load the default bundle, then // iterate through the extraLocale list and load those translations as // well, unless a particular locale was requested. diff --git a/lib/dojo/io/iframe.js b/lib/dojo/io/iframe.js index 5b2af45a1..aa8ddf290 100644 --- a/lib/dojo/io/iframe.js +++ b/lib/dojo/io/iframe.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.io.iframe"]){ //_hasResource checks added by build. dojo._hasResource["dojo.io.iframe"] = true; dojo.provide("dojo.io.iframe"); +dojo.getObject("io", true, dojo); + /*===== dojo.declare("dojo.io.iframe.__ioArgs", dojo.__IoArgs, { constructor: function(){ @@ -49,7 +51,7 @@ dojo.declare("dojo.io.iframe.__ioArgs", dojo.__IoArgs, { =====*/ dojo.io.iframe = { - // summary: + // summary: // Sends an Ajax I/O call using and Iframe (for instance, to upload files) create: function(/*String*/fname, /*String*/onloadstr, /*String?*/uri){ @@ -79,30 +81,12 @@ dojo.io.iframe = { } turi = (dojo.config["dojoBlankHtmlUrl"]||dojo.moduleUrl("dojo", "resources/blank.html")); } - var ifrstr = dojo.isIE ? '<iframe name="'+fname+'" src="'+turi+'" onload="'+onloadstr+'">' : 'iframe'; - cframe = dojo.doc.createElement(ifrstr); - with(cframe){ - name = fname; - setAttribute("name", fname); - id = fname; - } - dojo.body().appendChild(cframe); - window[fname] = cframe; - - with(cframe.style){ - if(!(dojo.isSafari < 3)){ - //We can't change the src in Safari 2.0.3 if absolute position. Bizarro. - position = "absolute"; - } - left = top = "1px"; - height = width = "1px"; - visibility = "hidden"; - } + var cframe = dojo.place( + '<iframe id="'+fname+'" name="'+fname+'" src="'+turi+'" onload="'+onloadstr+ + '" style="position: absolute; left: 1px; top: 1px; height: 1px; width: 1px; visibility: hidden">', + dojo.body()); - if(!dojo.isIE){ - this.setSrc(cframe, turi, true); - cframe.onload = new Function(onloadstr); - } + window[fname] = cframe; return cframe; }, @@ -122,11 +106,8 @@ dojo.io.iframe = { }else{ // Fun with DOM 0 incompatibilities! var idoc; - //WebKit > 521 corresponds with Safari 3, which started with 522 WebKit version. - if(dojo.isIE || dojo.isWebKit > 521){ + if(dojo.isIE || dojo.isWebKit){ idoc = iframe.contentWindow.document; - }else if(dojo.isSafari){ - idoc = iframe.document; }else{ // if(d.isMozilla){ idoc = iframe.contentWindow; } @@ -142,8 +123,8 @@ dojo.io.iframe = { idoc.location.replace(src); } } - }catch(e){ - console.log("dojo.io.iframe.setSrc: ", e); + }catch(e){ + console.log("dojo.io.iframe.setSrc: ", e); } }, @@ -152,7 +133,7 @@ dojo.io.iframe = { var doc = iframeNode.contentDocument || // W3 ( ( - (iframeNode.name) && (iframeNode.document) && + (iframeNode.name) && (iframeNode.document) && (dojo.doc.getElementsByTagName("iframe")[iframeNode.name].contentWindow) && (dojo.doc.getElementsByTagName("iframe")[iframeNode.name].contentWindow.document) ) @@ -165,7 +146,7 @@ dojo.io.iframe = { }, send: function(/*dojo.io.iframe.__ioArgs*/args){ - //summary: + //summary: // Function that sends the request to the server. // This transport can only process one send() request at a time, so if send() is called //multiple times, it will queue up the calls and only process one at a time. @@ -195,8 +176,8 @@ dojo.io.iframe = { if(handleAs != "html"){ if(handleAs == "xml"){ // FF, Saf 3+ and Opera all seem to be fine with ifd being xml. We have to - // do it manually for IE. Refs #6334. - if(dojo.isIE){ + // do it manually for IE6-8. Refs #6334. + if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){ dojo.query("a", dii._frame.contentWindow.document.documentElement).orphan(); var xmlText=(dii._frame.contentWindow.document).documentElement.innerText; xmlText=xmlText.replace(/>\s+</g, "><"); @@ -218,7 +199,7 @@ dojo.io.iframe = { }catch(e){ value = e; }finally{ - ioArgs._callNext(); + ioArgs._callNext(); } return value; }, @@ -238,7 +219,7 @@ dojo.io.iframe = { dojo.io.iframe._currentDfd = null; dojo.io.iframe._fireNextRequest(); } - } + }; this._dfdQueue.push(dfd); this._fireNextRequest(); @@ -297,16 +278,7 @@ dojo.io.iframe = { // if we have things in content, we need to add them to the form // before submission var pHandler = function(name, value) { - var tn; - if(dojo.isIE){ - tn = dojo.doc.createElement("<input type='hidden' name='"+name+"'>"); - }else{ - tn = dojo.doc.createElement("input"); - tn.type = "hidden"; - tn.name = name; - } - tn.value = value; - fn.appendChild(tn); + dojo.create("input", {type: "hidden", name: name, value: value}, fn); ioArgs._contentToClean.push(name); }; for(var x in content){ @@ -325,7 +297,7 @@ dojo.io.iframe = { } } } - //IE requires going through getAttributeNode instead of just getAttribute in some form cases, + //IE requires going through getAttributeNode instead of just getAttribute in some form cases, //so use it for all. See #2844 var actnNode = fn.getAttributeNode("action"); var mthdNode = fn.getAttributeNode("method"); @@ -406,6 +378,6 @@ dojo.io.iframe = { ioArgs._finished = true; } -} +}; } diff --git a/lib/dojo/io/script.js b/lib/dojo/io/script.js index 9730c977d..a44e9f2ee 100644 --- a/lib/dojo/io/script.js +++ b/lib/dojo/io/script.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.io.script"]){ //_hasResource checks added by build. dojo._hasResource["dojo.io.script"] = true; dojo.provide("dojo.io.script"); +dojo.getObject("io", true, dojo); + /*===== dojo.declare("dojo.io.script.__ioArgs", dojo.__IoArgs, { constructor: function(){ @@ -24,13 +26,13 @@ dojo.declare("dojo.io.script.__ioArgs", dojo.__IoArgs, { // legacy code. See notes for jsonp property. // jsonp: String // The URL parameter name that indicates the JSONP callback string. - // For instance, when using Yahoo JSONP calls it is normally, - // jsonp: "callback". For AOL JSONP calls it is normally + // For instance, when using Yahoo JSONP calls it is normally, + // jsonp: "callback". For AOL JSONP calls it is normally // jsonp: "c". // checkString: String - // A string of JavaScript that when evaluated like so: + // A string of JavaScript that when evaluated like so: // "typeof(" + checkString + ") != 'undefined'" - // being true means that the script fetched has been loaded. + // being true means that the script fetched has been loaded. // Do not use this if doing a JSONP type of call (use callbackParamName instead). // frameDoc: Document // The Document object for a child iframe. If this is passed in, the script @@ -43,7 +45,7 @@ dojo.declare("dojo.io.script.__ioArgs", dojo.__IoArgs, { } }); =====*/ -;(function(){ +(function(){ var loadEvent = dojo.isIE ? "onreadystatechange" : "load", readyRegExp = /complete|loaded/; @@ -105,7 +107,7 @@ dojo.declare("dojo.io.script.__ioArgs", dojo.__IoArgs, { }, _makeScriptDeferred: function(/*Object*/args){ - //summary: + //summary: // sets up a Deferred object for an IO request. var dfd = dojo._ioSetArgs(args, this._deferredCancel, this._deferredOk, this._deferredError); @@ -152,7 +154,7 @@ dojo.declare("dojo.io.script.__ioArgs", dojo.__IoArgs, { //DO NOT use "this" and expect it to be dojo.io.script. var ioArgs = dfd.ioArgs; - //Add script to list of things that can be removed. + //Add script to list of things that can be removed. if(ioArgs.canDelete){ dojo.io.script._addDeadScript(ioArgs); } @@ -247,14 +249,14 @@ dojo.declare("dojo.io.script.__ioArgs", dojo.__IoArgs, { }, _jsonpCallback: function(/*JSON Object*/json){ - //summary: + //summary: // generic handler for jsonp callback. A pointer to this function // is used for all jsonp callbacks. NOTE: the "this" in this // function will be the Deferred object that represents the script // request. this.ioArgs.json = json; } - } + }; })(); } diff --git a/lib/dojo/jaxer.js b/lib/dojo/jaxer.js index fdc492f1c..2ac115e18 100644 --- a/lib/dojo/jaxer.js +++ b/lib/dojo/jaxer.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo.jaxer"]){ //_hasResource checks added by build. Do n dojo._hasResource["dojo.jaxer"] = true; dojo.provide("dojo.jaxer"); + if(typeof print == "function"){ console.debug = Jaxer.Log.debug; console.warn = Jaxer.Log.warn; diff --git a/lib/dojo/lib/backCompat.js b/lib/dojo/lib/backCompat.js new file mode 100644 index 000000000..101f4e520 --- /dev/null +++ b/lib/dojo/lib/backCompat.js @@ -0,0 +1,283 @@ +/* + 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 +*/ + + +// AMD module id = dojo/lib/backCompat +// +// This module defines those dojo properties/methods that are defined by +// dojo/_base/_loader/loader and are still needed when loading with and +// AMD loader (when loading with an AMD loader, dojo/_base/_loader/loader +// is never loaded). +// +// note: this module is relevant only when loading dojo with an AMD loader; +// it is never evaluated otherwise. + +define(["require", "dojo/_base/_loader/bootstrap"], function(require, dojo){ + // the following dojo properties do not exist in the AMD-loaded version of dojo 1.x: + var names= [ + "_moduleHasPrefix", + "_loadPath", + "_loadUri", + "_loadUriAndCheck", + "loaded", + "_callLoaded", + "_getModuleSymbols", + "_loadModule", + "require", + "provide", + "platformRequire", + "requireIf", + "requireAfterIf", + "registerModulePath" + ], i, name; + for(i = 0; i<names.length;){ + name = names[i++]; + dojo[name] = (function(name) { + return function(){ + console.warn("dojo." + name + " not available when using an AMD loader."); + }; + })(name); + } + + // define dojo.addOnLoad in terms of the DOMContentLoaded detection available from the AMD loaders + // (requirejs and bdBuild). Note that the behavior of this feature is slightly different compared to the dojo + // v1.x sync loader. There, the onload queue is fired upon detecting both DOMContentLoaded *and* all + // demanded modules have arrived. It is impossible to simulate this behavior with requirejs since it does + // not publish its internal status (it is possible with bdLoad). + // TODO: consider taking ownership of this API back from the loader. + // TODO: consider requesting requirejs publish more enough internal state to determine if all demanded + // modules have been defined. + var + argsToArray = function(args) { + var result = [], i; + for(i = 0; i<args.length;){ + result.push(args[i++]); + } + return result; + }, + + simpleHitch = function(context, callback){ + if(callback){ + return (typeof callback=="string") ? + function(){context[callback]();} : + function(){callback.call(context);}; + }else{ + return context; + } + }; + dojo.ready = dojo.addOnLoad = function(context, callback){ + require.ready(callback ? simpleHitch(context, callback) : context); + }; + dojo.addOnLoad(function() { + dojo.postLoad = dojo.config.afterOnLoad = true; + }); + var dca = dojo.config.addOnLoad; + if(dca){ + dojo.addOnLoad[(dca instanceof Array ? "apply" : "call")](dojo, dca); + } + + // TODO: in the dojo 1.x sync loader the array dojo._loaders holds the queue of callbacks to be executed + // upon DOMContentLoaded. This queue is manipulated directly by dojo/uacss, dojo/parser, dijit/_base/wia + // and others (at least in dojox). This is also impossible to simulate universally across all AMD loaders. + // The following will at least accept client code accessing dojo._loaders , dojo._loaders.unshift, and + // dojo._loaders.splice--which is all that exists in the current dojo/dijit code stacks. + var + loaders = dojo._loaders = [], + runLoaders = function(){ + var temp= loaders.slice(0); + Array.prototype.splice.apply(loaders, [0, loaders.length]); + while(temp.length){ + temp.shift().call(); + }; + }; + loaders.unshift = function() { + Array.prototype.unshift.apply(loaders, argsToArray(arguments)); + require.ready(runLoaders); + }; + loaders.splice = function() { + Array.prototype.splice.apply(loaders, argsToArray(arguments)); + require.ready(runLoaders); + }; + + //TODO: put unload handling in a separate module + var unloaders = dojo._unloaders = []; + dojo.unloaded = function(){ + while(unloaders.length){ + unloaders.pop().call(); + } + }; + + //TODO: kill this low-value function when it is exorcised from dojo + dojo._onto = function(arr, obj, fn){ + arr.push(fn ? simpleHitch(obj, fn) : obj); + }; + + //TODO: kill this when the bootstrap is rewritten to not include DOMContentLoaded detection + // (it should probably be just a module) for now, just sink the detection; leverage the + // AMD loaders to handle DOMContentLoaded detection + dojo._modulesLoaded = function(){}; + + //TODO: kill this when we understand its purpose relative to AMD + dojo.loadInit = function(init){ + init(); + }; + + var amdModuleName= function(moduleName){ + return moduleName.replace(/\./g, "/"); + }; + + dojo.getL10nName = function(moduleName, bundleName, locale){ + locale = locale ? locale.toLowerCase() : dojo.locale; + moduleName = "i18n!" + amdModuleName(moduleName); + return (/root/i.test(locale)) ? + (moduleName + "/nls/" + bundleName) : + (moduleName + "/nls/" + locale + "/" + bundleName); + }; + + dojo.requireLocalization = function(moduleName, bundleName, locale){ + // NOTE: locales other than the locale specified in dojo.locale need to be specifically + // declared as a module dependency when using AMD. + if(require.vendor!="altoviso.com"){ + locale = !locale || locale.toLowerCase() === dojo.locale ? "root" : locale; + } + return require(dojo.getL10nName(moduleName, bundleName, locale)); + }; + + dojo.i18n= { + getLocalization: dojo.requireLocalization, + normalizeLocale: function(locale){ + var result = locale ? locale.toLowerCase() : dojo.locale; + if(result == "root"){ + result = "ROOT"; + } + return result; + } + }; + + //TODO: dojo._Url seems rarely used and long to be part of the boostrap; consider moving + //note: this routine cut and paste from dojo/_base/_loader/loader + var + ore = new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"), + ire = new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"); + dojo._Url = function(){ + var n = null, + _a = arguments, + uri = [_a[0]]; + // resolve uri components relative to each other + for(var i = 1; i<_a.length; i++){ + if(!_a[i]){ continue; } + + // Safari doesn't support this.constructor so we have to be explicit + // FIXME: Tracked (and fixed) in Webkit bug 3537. + // http://bugs.webkit.org/show_bug.cgi?id=3537 + var relobj = new dojo._Url(_a[i]+""), + uriobj = new dojo._Url(uri[0]+""); + + if( + relobj.path == "" && + !relobj.scheme && + !relobj.authority && + !relobj.query + ){ + if(relobj.fragment != n){ + uriobj.fragment = relobj.fragment; + } + relobj = uriobj; + }else if(!relobj.scheme){ + relobj.scheme = uriobj.scheme; + + if(!relobj.authority){ + relobj.authority = uriobj.authority; + + if(relobj.path.charAt(0) != "/"){ + var path = uriobj.path.substring(0, + uriobj.path.lastIndexOf("/") + 1) + relobj.path; + + var segs = path.split("/"); + for(var j = 0; j < segs.length; j++){ + if(segs[j] == "."){ + // flatten "./" references + if(j == segs.length - 1){ + segs[j] = ""; + }else{ + segs.splice(j, 1); + j--; + } + }else if(j > 0 && !(j == 1 && segs[0] == "") && + segs[j] == ".." && segs[j-1] != ".."){ + // flatten "../" references + if(j == (segs.length - 1)){ + segs.splice(j, 1); + segs[j - 1] = ""; + }else{ + segs.splice(j - 1, 2); + j -= 2; + } + } + } + relobj.path = segs.join("/"); + } + } + } + + uri = []; + if(relobj.scheme){ + uri.push(relobj.scheme, ":"); + } + if(relobj.authority){ + uri.push("//", relobj.authority); + } + uri.push(relobj.path); + if(relobj.query){ + uri.push("?", relobj.query); + } + if(relobj.fragment){ + uri.push("#", relobj.fragment); + } + } + + this.uri = uri.join(""); + + // break the uri into its main components + var r = this.uri.match(ore); + + this.scheme = r[2] || (r[1] ? "" : n); + this.authority = r[4] || (r[3] ? "" : n); + this.path = r[5]; // can never be undefined + this.query = r[7] || (r[6] ? "" : n); + this.fragment = r[9] || (r[8] ? "" : n); + + if(this.authority != n){ + // server based naming authority + r = this.authority.match(ire); + + this.user = r[3] || n; + this.password = r[4] || n; + this.host = r[6] || r[7]; // ipv6 || ipv4 + this.port = r[9] || n; + } + }; + + dojo._Url.prototype.toString = function(){ return this.uri; }; + + dojo.moduleUrl = function(module, url){ + if(!module){ + //TODO: don't understand why this would ever be so, but that's the logic in loader + return null; + } + module = amdModuleName(module) + (url ? ("/" + url) : ""); + var + type= "", + match= module.match(/(.+)(\.[^\/]*)$/); + if (match) { + module= match[1]; + type= match[2]; + } + return new dojo._Url(require.nameToUrl(module, type)); // dojo._Url + }; + + return dojo; +}); diff --git a/lib/dojo/lib/kernel.js b/lib/dojo/lib/kernel.js new file mode 100644 index 000000000..94a3fefae --- /dev/null +++ b/lib/dojo/lib/kernel.js @@ -0,0 +1,26 @@ +/* + 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 +*/ + + +// AMD module id = dojo/lib/kernel +// +// This module ensures the dojo object is initialized by... +// +// * dojo/_base/_loader/bootstrap +// * dojo/lib/backCompat +// * dojo/_base/_loader/hostenv_browser +// +// This is roughly equivalent to the work that dojo.js does by injecting +// bootstrap, loader, and hostenv_browser. +// +// note: this module is relevant only when loading dojo with an AMD loader; +// it is never evaluated otherwise. + +// for now, we publish dojo into the global namespace because so many tests and apps expect it. +define(["dojo/_base/_loader/hostenv_browser"], function(dojo_){ + dojo= dojo_; + return dojo_; +}); diff --git a/lib/dojo/lib/main-browser.js b/lib/dojo/lib/main-browser.js new file mode 100644 index 000000000..cb5cc2a43 --- /dev/null +++ b/lib/dojo/lib/main-browser.js @@ -0,0 +1,61 @@ +/* + 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 +*/ + + +// AMD module id = dojo +// +// This is a package main module for the dojo package implemented so that the *absolute minimal* +// changes are made to the dojo 1.x code. It is by no means optimal and should/will be replaced with +// a less naive design--particularly as dojo v2.0 evolves. +// +// There are a few key design weaknesses in this implementation: +// +// * generally, v1.x bootstrap, tests, and apps assume dojo is global +// +// * the v1.x dojo/_base modules assume dojo is defined before they are defined +// and their factory functions go about populating dojo--which is really part of defining +// dojo. This leads to the appearance of a circular dependency and is a somewhat obtuse +// design since the dojo object must be delivered to them under a different module +// name (dojo/lib/kernel). +// +// * bootstrap modules tend to incorporate unrelated features (e.g., hostenv_browser includes +// DOMContentLoad detection, thereby making it impossible to build out this feature if a +// particular app does not need it). +// +// * The back compatibility layer requires/contains some non-optimal code that needs to be improved. +// +// As 1.7 and 2.0 evolve, these items will be addressed with more robust implementation. +// +// The boot sequence is as follows: +// +// dojo (this module) depends on... +// dojo/lib/kernel which depends on... +// dojo/_base/_loader/hostenv_browser which depends on... +// dojo/lib/backCompat which depends on... +// dojo/_base/_loader/bootstrap which depends on nothing +// +// This module further depends on the fairly ordinary modules in dojo/_base; each of these +// modules depends on dojo/lib/kernel (at least) which provide the dojo object for them to augment. + +define("dojo", [ + "dojo/lib/kernel", + "dojo/_base/lang", + "dojo/_base/array", + "dojo/_base/declare", + "dojo/_base/connect", + "dojo/_base/Deferred", + "dojo/_base/json", + "dojo/_base/Color", + "dojo/_base/window", + "dojo/_base/event", + "dojo/_base/html", + "dojo/_base/NodeList", + "dojo/_base/query", + "dojo/_base/xhr", + "dojo/_base/fx" +], function(dojo){ + return dojo; +}); diff --git a/lib/dojo/lib/plugins/i18n.js b/lib/dojo/lib/plugins/i18n.js new file mode 100644 index 000000000..93a57f76b --- /dev/null +++ b/lib/dojo/lib/plugins/i18n.js @@ -0,0 +1,94 @@ +/* + 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 +*/ + + +// +// dojo i18n! plugin +// +// We choose to include our own plugin in hopes of leveraging functionality already contained in dojo +// and thereby reducing the size of the plugin compared to various loader implementations. Naturally, this +// allows AMD loaders to be used without their plugins. + +// CAUTION, this module may return improper results if the AMD loader does not support toAbsMid and client +// code passes relative plugin resource module ids. In that case, you should consider using the i18n! plugin +// that comes with your loader. + +define(["dojo"], function(dojo) { + var + nlsRe= + // regexp for reconstructing the master bundle name from parts of the regexp match + // nlsRe.exec("foo/bar/baz/nls/en-ca/foo") gives: + // ["foo/bar/baz/nls/en-ca/foo", "foo/bar/baz/nls/", "/", "/", "en-ca", "foo"] + // nlsRe.exec("foo/bar/baz/nls/foo") gives: + // ["foo/bar/baz/nls/foo", "foo/bar/baz/nls/", "/", "/", "foo", ""] + // so, if match[5] is blank, it means this is the top bundle definition. + // courtesy of http://requirejs.org + /(^.*(^|\/)nls(\/|$))([^\/]*)\/?([^\/]*)/, + + getAvailableLocales= function( + root, + locale, + bundlePath, + bundleName + ){ + // return a vector of module ids containing all available locales with respect to the target locale + // For example, assuming: + // * the root bundle indicates specific bundles for "fr" and "fr-ca", + // * bundlePath is "myPackage/nls" + // * bundleName is "myBundle" + // Then a locale argument of "fr-ca" would return + // ["myPackage/nls/myBundle", "myPackage/nls/fr/myBundle", "myPackage/nls/fr-ca/myBundle"] + // Notice that bundles are returned least-specific to most-specific, starting with the root. + + for(var result= [bundlePath + bundleName], localeParts= locale.split("-"), current= "", i= 0; i<localeParts.length; i++){ + current+= localeParts[i]; + if(root[current]){ + result.push(bundlePath + current + "/" + bundleName); + } + } + return result; + }, + + cache= {}; + + return { + load: function(id, require, load){ + // note: id may be relative + var + match= nlsRe.exec(id), + bundlePath= (require.toAbsMid && require.toAbsMid(match[1])) || match[1], + bundleName= match[5] || match[4], + bundlePathAndName= bundlePath + bundleName, + locale= (match[5] && match[4]) || dojo.locale, + target= bundlePathAndName + "/" + locale; + + // if we've already resolved this request, just return it + if (cache[target]) { + load(cache[target]); + return; + } + + // get the root bundle which instructs which other bundles are required to contruct the localized bundle + require([bundlePathAndName], function(root){ + var + current= cache[bundlePathAndName + "/"]= dojo.clone(root.root), + availableLocales= getAvailableLocales(root, locale, bundlePath, bundleName); + require(availableLocales, function(){ + for (var i= 1; i<availableLocales.length; i++){ + cache[bundlePathAndName + "/" + availableLocales[i]]= current= dojo.mixin(dojo.clone(current), arguments[i]); + } + // target may not have been resolve (e.g., maybe only "fr" exists when "fr-ca" was requested) + cache[target]= current; + load(current); + }); + }); + }, + + cache: function(mid, value){ + cache[mid]= value; + } + }; +}); diff --git a/lib/dojo/lib/plugins/text.js b/lib/dojo/lib/plugins/text.js new file mode 100644 index 000000000..75894a32a --- /dev/null +++ b/lib/dojo/lib/plugins/text.js @@ -0,0 +1,70 @@ +/* + 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 +*/ + + +// +// dojo text! plugin +// +// We choose to include our own plugin in hopes of leveraging functionality already contained in dojo +// and thereby reducing the size of the plugin compared to various loader implementations. Naturally, this +// allows AMD loaders to be used without their plugins. + +// CAUTION, this module may return improper results if the AMD loader does not support toAbsMid and client +// code passes relative plugin resource module ids. In that case, you should consider using the text! plugin +// that comes with your loader. + +define(["dojo", "dojo/cache"], function(dojo){ + var + cached= {}, + + cache= function(cacheId, url, value){ + cached[cacheId]= value; + dojo.cache({toString:function(){return url;}}, value); + }, + + strip= function(text){ + //note: this function courtesy of James Burke (https://github.com/jrburke/requirejs) + //Strips <?xml ...?> declarations so that external SVG and XML + //documents can be added to a document without worry. Also, if the string + //is an HTML document, only the part inside the body tag is returned. + if(text){ + text= text.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, ""); + var matches= text.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im); + if(matches){ + text= matches[1]; + } + }else{ + text = ""; + } + return text; + }; + + return { + load:function(id, require, load){ + var match, cacheId, url, parts= id.split("!"); + if(require.toAbsMid){ + match= parts[0].match(/(.+)(\.[^\/]*)$/); + cacheId= match ? require.toAbsMid(match[1]) + match[2] : require.toAbsMid(parts[0]); + if(cacheId in cached){ + load(parts[1]=="strip" ? strip(cached[cacheId]) : cached[cacheId]); + return; + } + } + url= require.toUrl(parts[0]); + dojo.xhrGet({ + url:url, + load:function(text){ + cacheId && cache(cacheId, url, text); + load(parts[1]=="strip" ? strip(text) : text); + } + }); + }, + + cache:function(cacheId, mid, type, value) { + cache(cacheId, require.nameToUrl(mid) + type, value); + } + }; +}); diff --git a/lib/dojo/nls/fi/colors.js b/lib/dojo/nls/fi/colors.js index 454e644e4..17cdf1684 100644 --- a/lib/dojo/nls/fi/colors.js +++ b/lib/dojo/nls/fi/colors.js @@ -1 +1 @@ -({"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"})
\ No newline at end of file +({"lightsteelblue":"vaalea teräksensininen","orangered":"oranssinpunainen","midnightblue":"yönsininen","cadetblue":"meren vihreä","seashell":"simpukankuori","slategrey":"savenharmaa","coral":"koralli","darkturquoise":"tumma turkoosi","antiquewhite":"antiikinvalkoinen","mediumspringgreen":"keskivaalea keväänvihreä","salmon":"lohenpunainen","darkgrey":"tummanharmaa","ivory":"norsunluu","greenyellow":"vihreänkeltainen","mistyrose":"utuinen ruusu","lightsalmon":"vaalea lohenpunainen","silver":"hopea","dimgrey":"himmeänharmaa","orange":"oranssi","white":"valkoinen","navajowhite":"navajonvalkoinen","royalblue":"syvänsininen","deeppink":"syvä vaaleanpunainen","lime":"vaaleanvihreä","oldlace":"vanha pitsi","chartreuse":"kellanvihreä","darkcyan":"tumma turkoosi","yellow":"keltainen","linen":"pellavanvaalea","olive":"oliivinvihreä","gold":"kulta","lawngreen":"ruohonvihreä","lightyellow":"vaaleankeltainen","tan":"kellanruskea","darkviolet":"tummanvioletti","lightslategrey":"vaaleanharmaa","grey":"harmaa","darkkhaki":"tumma khaki","green":"vihreä","deepskyblue":"tumma taivaansininen","aqua":"sinivihreä","sienna":"siena","mintcream":"minttukreemi","rosybrown":"punertavanruskea","mediumslateblue":"keskivaalea siniharmaa","magenta":"magenta","lightseagreen":"vaalea merenvihreä","cyan":"syaani","olivedrab":"oliivinruskea","darkgoldenrod":"tumma kultapiisku","slateblue":"savensininen","mediumaquamarine":"keskivaalea vedenvihreä","lavender":"laventeli","mediumseagreen":"keskivaalea merenvihreä","maroon":"kastanjanruskea","darkslategray":"tummanharmaa","mediumturquoise":"keskivaalea turkoosi","ghostwhite":"lakananvalkoinen","darkblue":"tummansininen","mediumvioletred":"keskivaalea lila","brown":"ruskea","lightgray":"vaaleanharmaa","sandybrown":"hiekanruskea","pink":"vaaleanpunainen","firebrick":"poltetun tiilen punainen","indigo":"indigo","snow":"lumivalkoinen","darkorchid":"tumma orkidea","turquoise":"turkoosi","chocolate":"suklaanruskea","springgreen":"keväänvihreä","moccasin":"nahanruskea","navy":"laivastonsininen","lemonchiffon":"sitruunankeltainen","teal":"sinivihreä","floralwhite":"kukanvalkoinen","cornflowerblue":"syvänsininen","paleturquoise":"haalea turkoosi","purple":"violetti","gainsboro":"gainsboro","plum":"luumunpunainen","red":"punainen","blue":"sininen","forestgreen":"metsänvihreä","darkgreen":"tummanvihreä","honeydew":"hunajameloninvihreä","darkseagreen":"tumma merenvihreä","lightcoral":"vaalea koralli","palevioletred":"haalea lila","mediumpurple":"keskivaalea violetti","saddlebrown":"satulanruskea","darkmagenta":"tumma magenta","thistle":"ohdake","whitesmoke":"savunvalkea","wheat":"vehnänkeltainen","violet":"violetti","lightskyblue":"vaalea taivaansininen","goldenrod":"kullanruskea","mediumblue":"keskisininen","skyblue":"taivaansininen","crimson":"karmiininpunainen","darksalmon":"tumma lohenpunainen","darkred":"tummanpunainen","darkslategrey":"tummanharmaa","peru":"peru","lightgrey":"vaaleanharmaa","lightgoldenrodyellow":"vaalea kultapiiskunkeltainen","blanchedalmond":"kuorittu manteli","aliceblue":"vaaleanharmaansininen","bisque":"vaaleanruskea","slategray":"savenharmaa","palegoldenrod":"haalea kultapiisku","darkorange":"tummanoranssi","aquamarine":"vedenvihreä","lightgreen":"vaaleanvihreä","burlywood":"puunruskea","dodgerblue":"Dodger-sininen","darkgray":"tummanharmaa","lightcyan":"vaalea syaani","powderblue":"harmaansininen","blueviolet":"sinivioletti","orchid":"orkidea","dimgray":"himmeänharmaa","beige":"vaaleanruskea","fuchsia":"purppura","lavenderblush":"laventelinpunainen","hotpink":"pinkki","steelblue":"teräksensininen","tomato":"tomaatinpunainen","lightpink":"vaaleanpunainen","limegreen":"limetinvihreä","indianred":"kirkkaanpunainen","papayawhip":"papaijavaahto","lightslategray":"vaaleanharmaa","gray":"harmaa","mediumorchid":"keskivaalea orkidea","cornsilk":"maissinkeltainen","black":"musta","seagreen":"merenvihreä","darkslateblue":"tumma siniharmaa","khaki":"khaki","lightblue":"vaaleansininen","palegreen":"haalea vihreä","azure":"taivaansininen","peachpuff":"persikka","darkolivegreen":"tummanoliivinvihreä","yellowgreen":"kellanvihreä"})
\ No newline at end of file diff --git a/lib/dojo/nls/kk/colors.js b/lib/dojo/nls/kk/colors.js new file mode 100644 index 000000000..19b90679d --- /dev/null +++ b/lib/dojo/nls/kk/colors.js @@ -0,0 +1 @@ +({"lightsteelblue":"ашық сұрғылт көк","orangered":"қызғылт сары қызыл","midnightblue":"түн ортасы көк","cadetblue":"кадет көк","seashell":"теңіз қабыршағы","slategrey":"көкшіл сұры","coral":"коралл","darkturquoise":"күңгірт көгілдір","antiquewhite":"ақ антик","mediumspringgreen":"орташа ашық жасыл","salmon":"сомон","darkgrey":"қою сұры","ivory":"піл сүйег","greenyellow":"жасыл-сары","mistyrose":"көмескі қызғылт","lightsalmon":"ашық сарғыш қызғылт","silver":"күміс түстес","dimgrey":"күңгірт сұры","orange":"қызғылт сары","white":"ақ","navajowhite":"навахо ақ","royalblue":"патша көк","deeppink":"қою қызғылт","lime":"әк","oldlace":"ескі бау","chartreuse":"жасылдау-сары","darkcyan":"күңгірт циан","yellow":"сары","linen":"зығыр","olive":"зәйтүнді","gold":"сары түсті","lawngreen":"көгал жасыл","lightyellow":"ашық сары","tan":"сарғыш қоңыр","darkviolet":"күңгірт күлгін","lightslategrey":"ашық көкшіл сұры","grey":"сұры","darkkhaki":"қою хаки","green":"жасыл","deepskyblue":"қою аспан көк","aqua":"су түсі","sienna":"сиенна","mintcream":"жалбыз майы","rosybrown":"қызғылт қоңыр","mediumslateblue":"орташа көкшіл сұры","magenta":"фуксин","lightseagreen":"ашық теңіз толқыны","cyan":"циан","olivedrab":"жасылдау сары","darkgoldenrod":"қара алтын","slateblue":"грифель көк","mediumaquamarine":"орташа жасылдау көк","lavender":"бозғылт ақшыл көк","mediumseagreen":"орташа теңіз толқыны","maroon":"сарғылт","darkslategray":"күңгірт көкшіл сұры","mediumturquoise":"орташа көгілдір","ghostwhite":"елесті ақ","darkblue":"күңгірт көк","mediumvioletred":"орташа ақшыл көк-қызыл","brown":"қоңыр","lightgray":"ашық сұры","sandybrown":"құмды қоңыр","pink":"қызғылт","firebrick":"қызыл кірпіш","indigo":"индиго","snow":"қар","darkorchid":"күңгірт орсель","turquoise":"көгілдір","chocolate":"шоколад","springgreen":"көктем жасыл","moccasin":"мокасин","navy":"қара-көк","lemonchiffon":"лимон шиффон","teal":"шүрегей","floralwhite":"гүлді ақ","cornflowerblue":"көктікен көк","paleturquoise":"бозғылт көгілдір","purple":"күлгін","gainsboro":"gainsboro","plum":"алхоры","red":"қызыл","blue":"көк","forestgreen":"шөпті жасыл","darkgreen":"қою жасыл","honeydew":"балдай","darkseagreen":"қою теңіз толқыны","lightcoral":"ашық коралл","palevioletred":"бозғылт ақшыл көк-қызыл","mediumpurple":"орташа күлгін","saddlebrown":"тоқым қоңыр","darkmagenta":"қою күлгін","thistle":"артишок","whitesmoke":"ақ түтін","wheat":"бидай","violet":"күлгін","lightskyblue":"ашық аспан көк","goldenrod":"алтын","mediumblue":"орташа көк","skyblue":"аспан көк","crimson":"таңқұрай","darksalmon":"қою сарылау қызғылт","darkred":"күңгірт қызыл","darkslategrey":"күңгірт көкшіл сұры","peru":"перу","lightgrey":"ашық сұры","lightgoldenrodyellow":"ашық сары түсті сары","blanchedalmond":"ағартылған бадам","aliceblue":"бозғылт көк","bisque":"бисквит","slategray":"көкшіл сұры","palegoldenrod":"бозғылт алтын","darkorange":"қою қызғылт сары","aquamarine":"жасылдау-көк","lightgreen":"ақшыл жасыл","burlywood":"ағаш тамыры","dodgerblue":"көк доджер","darkgray":"қою сұры","lightcyan":"ашық көгілдір","powderblue":"жасылдау көк","blueviolet":"көк-ақшыл көк","orchid":"орхидея","dimgray":"күңгірт сұры","beige":"сарғыш","fuchsia":"фуксия","lavenderblush":"күңгірт ақшыл қызыл","hotpink":"ашық қызғылт","steelblue":"көкшіл сұрғылт","tomato":"қызанақ","lightpink":"ақшыл қызғылт","limegreen":"әк жасыл","indianred":"үнділік қызыл","papayawhip":"папайя қамшысы","lightslategray":"ашық көкшіл сұры","gray":"сұры","mediumorchid":"орташа ақшыл","cornsilk":"жібек","black":"қара","seagreen":"теңіз толқыны","darkslateblue":"күңгірт грифель көк","khaki":"хаки","lightblue":"ақшыл көк","palegreen":"бозғылт жасыл","azure":"көкшіл","peachpuff":"шабдалы","darkolivegreen":"қою қоңырлау жасыл","yellowgreen":"сарғыш жасыл"})
\ No newline at end of file diff --git a/lib/dojo/nls/pl/colors.js b/lib/dojo/nls/pl/colors.js index 852268c42..2fa71bd1b 100644 --- a/lib/dojo/nls/pl/colors.js +++ b/lib/dojo/nls/pl/colors.js @@ -1 +1 @@ -({"lightsteelblue":"jasny stalowoniebieski","orangered":"pomarańczowoczerwony","midnightblue":"ciemnogranatowy","cadetblue":"niebieskoszary","seashell":"muszla","slategrey":"łupkowy szary","coral":"koralowy","darkturquoise":"ciemnoturkusowy","antiquewhite":"biel antyczna","mediumspringgreen":"średnia wiosenna zieleń","salmon":"łososiowy","darkgrey":"ciemnoszary","ivory":"kość słoniowa","greenyellow":"zielonożółty","mistyrose":"bladoróżany","lightsalmon":"jasnołososiowy","silver":"srebrny","dimgrey":"przytłumiony szary","orange":"pomarańczowy","white":"biały","navajowhite":"piaskowy","royalblue":"błękit królewski","deeppink":"głęboki różowy","lime":"limetkowy","oldlace":"bladopomarańczowy","chartreuse":"jaskrawozielony","darkcyan":"ciemny cyjan","yellow":"żółty","linen":"lniany","olive":"oliwkowy","gold":"złoty","lawngreen":"trawiasty","lightyellow":"jasnożółty","tan":"kawowy","darkviolet":"ciemnofioletowy","lightslategrey":"jasny łupkowy szary","grey":"szary","darkkhaki":"ciemny khaki","green":"zielony","deepskyblue":"intensywny błękit nieba","aqua":"wodny","sienna":"siena","mintcream":"jasnomiętowy","rosybrown":"różowobrązowy","mediumslateblue":"średni łupkowy niebieski","magenta":"magenta","lightseagreen":"jasna morska zieleń","cyan":"cyjan","olivedrab":"oliwkowa zieleń","darkgoldenrod":"ciemnogliniany","slateblue":"łupkowy niebieski","mediumaquamarine":"średnia akwamaryna","lavender":"lawendowy","mediumseagreen":"średnia morska zieleń","maroon":"bordowy","darkslategray":"ciemny łupkowy szary","mediumturquoise":"średni turkusowy","ghostwhite":"bladobiały","darkblue":"ciemnoniebieski","mediumvioletred":"średni fioletowoczerwony","brown":"brązowy","lightgray":"jasnoszary","sandybrown":"piaskowy brąz","pink":"różowy","firebrick":"ceglasty","indigo":"indygo","snow":"śnieżny","darkorchid":"ciemna orchidea","turquoise":"turkusowy","chocolate":"czekoladowy","springgreen":"wiosenna zieleń","moccasin":"mokasynowy","navy":"granatowy","lemonchiffon":"cytrynowy","teal":"cyrankowy","floralwhite":"kwiatowa biel","cornflowerblue":"chabrowy","paleturquoise":"bladoturkusowy","purple":"purpurowy","gainsboro":"bladoszary","plum":"śliwkowy","red":"czerwony","blue":"niebieski","forestgreen":"leśna zieleń","darkgreen":"ciemnozielony","honeydew":"melon","darkseagreen":"ciemna morska zieleń","lightcoral":"jasnokoralowy","palevioletred":"blady fioletowoczerwony","mediumpurple":"średnia purpura","saddlebrown":"skórzany brązowy","darkmagenta":"ciemna magenta","thistle":"bladofioletowy","whitesmoke":"przydymiony biały","wheat":"pszeniczny","violet":"fioletowy","lightskyblue":"jasny błękit nieba","goldenrod":"gliniany","mediumblue":"średni niebieski","skyblue":"błękit nieba","crimson":"karmazynowy","darksalmon":"ciemnołososiowy","darkred":"ciemnoczerwony","darkslategrey":"ciemny łupkowy szary","peru":"jasnobrązowy","lightgrey":"jasnoszary","lightgoldenrodyellow":"jasnogliniana żółć","blanchedalmond":"migdałowy","aliceblue":"bladoniebieski","bisque":"biszkoptowy","slategray":"łupkowy szary","palegoldenrod":"bladogliniany","darkorange":"ciemnopomarańczowy","aquamarine":"akwamaryna","lightgreen":"jasnozielony","burlywood":"kolor drewna","dodgerblue":"błękit Dodgers","darkgray":"ciemnoszary","lightcyan":"jasny cyjan","powderblue":"pudrowy niebieski","blueviolet":"niebieskofioletowy","orchid":"orchidea","dimgray":"przytłumiony szary","beige":"beżowy","fuchsia":"fuksja","lavenderblush":"lawendoworóżowy","hotpink":"intensywny różowy","steelblue":"stalowy niebieski","tomato":"pomidorowy","lightpink":"jasnoróżowy","limegreen":"limetkowozielony","indianred":"kasztanowy","papayawhip":"papaja","lightslategray":"jasny łupkowy szary","gray":"szary","mediumorchid":"średnia orchidea","cornsilk":"kukurydziany","black":"czarny","seagreen":"morska zieleń","darkslateblue":"ciemny łupkowy niebieski","khaki":"khaki","lightblue":"jasnoniebieski","palegreen":"bladozielony","azure":"lazur","peachpuff":"brzoskwiniowy","darkolivegreen":"ciemnooliwkowy","yellowgreen":"żółtozielony"})
\ No newline at end of file +({"lightsteelblue":"jasnostalowoniebieski","orangered":"pomarańczowoczerwony","midnightblue":"granatowoczarny","cadetblue":"niebieskoszary","seashell":"matowoliliowy","slategrey":"mysi","coral":"koralowy","darkturquoise":"mlecznoturkusowy","antiquewhite":"biel antyczna","mediumspringgreen":"średnia wiosenna zieleń","salmon":"łososiowy","darkgrey":"ciemnoszary","ivory":"kość słoniowa","greenyellow":"zielonożółty","mistyrose":"bladoróżany","lightsalmon":"jasnołososiowy","silver":"srebrny","dimgrey":"przyciemniony szary","orange":"pomarańczowy","white":"biały","navajowhite":"piaskowy","royalblue":"królewski błękit","deeppink":"głęboki różowy","lime":"limonkowy","oldlace":"bladopomarańczowy","chartreuse":"żółtooliwkowy","darkcyan":"ciemnoniebieskozielony","yellow":"żółty","linen":"lniany","olive":"oliwkowy","gold":"złoty","lawngreen":"trawiasty","lightyellow":"jasnożółty","tan":"śniady","darkviolet":"ciemnofiołkowy","lightslategrey":"jasny mysi","grey":"szary","darkkhaki":"ciemny khaki","green":"zielony","deepskyblue":"intensywny błękit nieba","aqua":"morski","sienna":"siena","mintcream":"jasnomiętowy","rosybrown":"różowobrązowy","mediumslateblue":"średni gołębi","magenta":"amarantowy","lightseagreen":"jasna zieleń morska","cyan":"niebieskozielony","olivedrab":"oliwkowa zieleń","darkgoldenrod":"ciemne stare złoto","slateblue":"gołębi","mediumaquamarine":"średnia akwamaryna","lavender":"lawendowy","mediumseagreen":"średnia zieleń morska","maroon":"kasztanowy","darkslategray":"ciemny mysi","mediumturquoise":"średni turkusowy","ghostwhite":"bladobiały","darkblue":"ciemnoniebieski","mediumvioletred":"średni fiołkowowoczerwony","brown":"brązowy","lightgray":"jasnoszary","sandybrown":"piaskowy brąz","pink":"różowy","firebrick":"ceglasty","indigo":"indygo","snow":"śnieżny","darkorchid":"ciemna orchidea","turquoise":"turkusowy","chocolate":"czekoladowy","springgreen":"wiosenna zieleń","moccasin":"mokasynowy","navy":"granatowy","lemonchiffon":"cytrynowy","teal":"zielonomodry","floralwhite":"kwiatowa biel","cornflowerblue":"chabrowy","paleturquoise":"bladoturkusowy","purple":"fioletowy","gainsboro":"bladoszary","plum":"śliwkowy","red":"czerwony","blue":"niebieski","forestgreen":"leśna zieleń","darkgreen":"ciemnozielony","honeydew":"miodowy","darkseagreen":"ciemna zieleń morska","lightcoral":"jasnokoralowy","palevioletred":"blady fiołkowoczerwony","mediumpurple":"średni fioletowy","saddlebrown":"brąz skórzany","darkmagenta":"ciemnoamarantowy","thistle":"bladofioletowy","whitesmoke":"przydymiony biały","wheat":"pszeniczny","violet":"fiołkowy","lightskyblue":"jasny błękit nieba","goldenrod":"stare złoto","mediumblue":"ciemnochabrowy","skyblue":"błękit nieba","crimson":"karmazynowy","darksalmon":"ciemnołososiowy","darkred":"ciemnoczerwony","darkslategrey":"ciemny mysi","peru":"jasnobrązowy","lightgrey":"jasnoszary","lightgoldenrodyellow":"jasnożółte stare złoto","blanchedalmond":"migdałowy","aliceblue":"bladoniebieski","bisque":"biszkoptowy","slategray":"mysi","palegoldenrod":"blade stare złoto","darkorange":"ciemnopomarańczowy","aquamarine":"akwamaryna","lightgreen":"jasnozielony","burlywood":"kolor drewna","dodgerblue":"błękit Dodgers","darkgray":"ciemnoszary","lightcyan":"jasnoniebieskozielony","powderblue":"jasnobladobłękitny","blueviolet":"błękitnofiołkowy","orchid":"orchidea","dimgray":"przyciemniony szary","beige":"beżowy","fuchsia":"fuksjowy","lavenderblush":"lawendowocielisty","hotpink":"odblaskoworóżowy","steelblue":"stalowoniebieski","tomato":"pomidorowy","lightpink":"jasnoróżowy","limegreen":"zielony limonkowy","indianred":"kasztanowy","papayawhip":"papaja","lightslategray":"jasny mysi","gray":"szary","mediumorchid":"średnia orchidea","cornsilk":"kukurydziany","black":"czarny","seagreen":"zieleń morska","darkslateblue":"ciemny gołębi","khaki":"khaki","lightblue":"jasnoniebieski","palegreen":"bladozielony","azure":"lazurowy","peachpuff":"brzoskwiniowy","darkolivegreen":"ciemnooliwkowy","yellowgreen":"żółtozielony"})
\ No newline at end of file diff --git a/lib/dojo/nls/pt-pt/colors.js b/lib/dojo/nls/pt-pt/colors.js index e01afd2c1..5038b537e 100644 --- a/lib/dojo/nls/pt-pt/colors.js +++ b/lib/dojo/nls/pt-pt/colors.js @@ -1 +1 @@ -({"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadete","seashell":"concha","slategrey":"cinzento ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","salmon":"salmão","darkgrey":"cinzento escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa pálido","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinzento escuro","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul real","deeppink":"rosa profundo","lime":"lima","oldlace":"renda antiga","chartreuse":"amarelo esverdeado","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"azeitona","gold":"dourado","lawngreen":"verde relva","lightyellow":"amarelo claro","tan":"castanho claro","darkviolet":"violeta escuro","lightslategrey":"cinzento ardósia claro","grey":"cinzento","darkkhaki":"caqui escuro","green":"verde","deepskyblue":"azul céu profundo","aqua":"verde-água","sienna":"castanho-avermelhado","mintcream":"creme de menta","rosybrown":"castanho rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"azeitona claro","darkgoldenrod":"ouro velho escuro","slateblue":"azul ardósia","mediumaquamarine":"verde-azulado médio","lavender":"alfazema","mediumseagreen":"verde marinho médio","maroon":"bordeaux","darkslategray":"cinzento ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco sombreado","darkblue":"azul escuro","mediumvioletred":"violeta avermelhado médio","brown":"castanho","lightgray":"cinzento claro","sandybrown":"castanho areia","pink":"rosa","firebrick":"tijolo fogo","indigo":"índigo","snow":"branco-neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"mocassim","navy":"azul marinho","lemonchiffon":"limão chiffon","teal":"verde-azulado","floralwhite":"branco floral","cornflowerblue":"azul-violáceo","paleturquoise":"turquesa pálido","purple":"roxo","gainsboro":"cinzento azulado claro","plum":"cor-de-ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"mel","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"violeta avermelhado pálido","mediumpurple":"roxo médio","saddlebrown":"castanho sela","darkmagenta":"magenta escuro","thistle":"cardo","whitesmoke":"fumo branco","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"ouro velho","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinzento ardósia escuro","peru":"peru","lightgrey":"cinzento claro","lightgoldenrodyellow":"ouro velho amarelado claro","blanchedalmond":"amêndoa claro","aliceblue":"azul alice","bisque":"rosa-velho","slategray":"cinzento ardósia","palegoldenrod":"ouro velho pálido","darkorange":"laranja escuro","aquamarine":"verde-azulado","lightgreen":"verde claro","burlywood":"castanho pinho","dodgerblue":"azul furtivo","darkgray":"cinzento escuro","lightcyan":"ciano claro","powderblue":"azul de esmalte","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinzento escuro","beige":"bege","fuchsia":"fúcsia","lavenderblush":"alfazema rosado","hotpink":"rosa forte","steelblue":"azul-aço","tomato":"vermelho tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"almagre","papayawhip":"creme de papaia","lightslategray":"cinzento ardósia claro","gray":"cinzento","mediumorchid":"orquídea médio","cornsilk":"branco seda","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"azul-celeste","peachpuff":"pêssego","darkolivegreen":"verde-azeitona escuro","yellowgreen":"verde amarelado"})
\ No newline at end of file +({"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadete","seashell":"concha","slategrey":"cinzento ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","salmon":"salmão","darkgrey":"cinzento escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa pálido","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinzento esbatido","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul real","deeppink":"rosa profundo","lime":"lima","oldlace":"renda antiga","chartreuse":"amarelo esverdeado","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"azeitona","gold":"dourado","lawngreen":"verde relva","lightyellow":"amarelo claro","tan":"castanho claro","darkviolet":"violeta escuro","lightslategrey":"cinzento ardósia claro","grey":"cinzento","darkkhaki":"caqui escuro","green":"verde","deepskyblue":"azul céu profundo","aqua":"verde-água","sienna":"castanho-avermelhado","mintcream":"creme de menta","rosybrown":"castanho rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"azeitona claro","darkgoldenrod":"ouro velho escuro","slateblue":"azul ardósia","mediumaquamarine":"verde-azulado médio","lavender":"alfazema","mediumseagreen":"verde marinho médio","maroon":"bordeaux","darkslategray":"cinzento ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco sombreado","darkblue":"azul escuro","mediumvioletred":"violeta avermelhado médio","brown":"castanho","lightgray":"cinzento claro","sandybrown":"castanho areia","pink":"rosa","firebrick":"tijolo fogo","indigo":"índigo","snow":"branco-neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"mocassim","navy":"azul marinho","lemonchiffon":"limão chiffon","teal":"verde-azulado","floralwhite":"branco floral","cornflowerblue":"azul-violáceo","paleturquoise":"turquesa pálido","purple":"roxo","gainsboro":"cinzento azulado claro","plum":"cor-de-ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"mel","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"violeta avermelhado pálido","mediumpurple":"roxo médio","saddlebrown":"castanho sela","darkmagenta":"magenta escuro","thistle":"cardo","whitesmoke":"fumo branco","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"ouro velho","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinzento ardósia escuro","peru":"peru","lightgrey":"cinzento claro","lightgoldenrodyellow":"ouro velho amarelado claro","blanchedalmond":"amêndoa claro","aliceblue":"azul alice","bisque":"rosa-velho","slategray":"cinzento ardósia","palegoldenrod":"ouro velho pálido","darkorange":"laranja escuro","aquamarine":"verde-azulado","lightgreen":"verde claro","burlywood":"castanho pinho","dodgerblue":"azul furtivo","darkgray":"cinzento escuro","lightcyan":"ciano claro","powderblue":"azul de esmalte","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinzento esbatido","beige":"bege","fuchsia":"fúcsia","lavenderblush":"alfazema rosado","hotpink":"rosa forte","steelblue":"azul-aço","tomato":"vermelho tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"almagre","papayawhip":"creme de papaia","lightslategray":"cinzento ardósia claro","gray":"cinzento","mediumorchid":"orquídea médio","cornsilk":"branco seda","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"azul-celeste","peachpuff":"pêssego","darkolivegreen":"verde-azeitona escuro","yellowgreen":"verde amarelado"})
\ No newline at end of file diff --git a/lib/dojo/nls/pt/colors.js b/lib/dojo/nls/pt/colors.js index 897efc3c1..0695a0ff6 100644 --- a/lib/dojo/nls/pt/colors.js +++ b/lib/dojo/nls/pt/colors.js @@ -1 +1 @@ -({"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza-ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde-primavera médio","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza-ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul-céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul-ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul-ardósia","mediumaquamarine":"água-marinha médio","lavender":"lavanda","mediumseagreen":"verde-marinho médio","maroon":"marrom","darkslategray":"cinza-ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho-violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho-violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul-céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul-céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza-ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza-ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água-marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul-talco","blueviolet":"azul-violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul-aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza-ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde-marinho","darkslateblue":"azul-ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul-celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"})
\ No newline at end of file +({"lightsteelblue":"azul aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul ardósia","mediumaquamarine":"água marinha médio","lavender":"lavanda","mediumseagreen":"verde marinho médio","maroon":"castanho","darkslategray":"cinza ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul talco","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"})
\ No newline at end of file diff --git a/lib/dojo/nls/sl/colors.js b/lib/dojo/nls/sl/colors.js index e009ce9f7..15d3ac7ba 100644 --- a/lib/dojo/nls/sl/colors.js +++ b/lib/dojo/nls/sl/colors.js @@ -1 +1 @@ -({"lightsteelblue":"svetlo jeklena modra","orangered":"oranžno-rdeča","midnightblue":"polnočno modra","cadetblue":"zelenkasto modra","seashell":"morska školjka","slategrey":"skrilasto siva","coral":"koralna","darkturquoise":"temno turkizna","antiquewhite":"antično bela","mediumspringgreen":"srednje pomladno zelena","salmon":"lososova","darkgrey":"temno siva","ivory":"slonokoščena","greenyellow":"zeleno-rumena","mistyrose":"megleno rožnata","lightsalmon":"svetlo lososova","silver":"srebrna","dimgrey":"umazano siva","orange":"oranžna","white":"bela","navajowhite":"navajsko bela","royalblue":"kraljevsko modra","deeppink":"temno roza","lime":"rumeno zelena","oldlace":"stara čipka","chartreuse":"svetlo rumena zelena","darkcyan":"temno cijan","yellow":"rumena","linen":"lanena","olive":"olivna","gold":"zlata","lawngreen":"travnato zelena","lightyellow":"svetlo rumena","tan":"kožno rjava","darkviolet":"temno vijolična","lightslategrey":"svetlo skrilasto siva","grey":"siva","darkkhaki":"temno rumenkasto rjava","green":"zelena","deepskyblue":"temno nebesno modra","aqua":"akva","sienna":"siena","mintcream":"mentolno smetanasta","rosybrown":"rožnato rjava","mediumslateblue":"srednje skrilasto modra","magenta":"magenta","lightseagreen":"svetlo morsko zelena","cyan":"cijan","olivedrab":"olivno sivo rjava","darkgoldenrod":"temno zlata rozga","slateblue":"skrilasto modra","mediumaquamarine":"srednje akvamarin","lavender":"sivka","mediumseagreen":"srednje morsko zelena","maroon":"kostanjeva","darkslategray":"temno skrilasto siva","mediumturquoise":"srednje turkizna","ghostwhite":"prosojno bela","darkblue":"temno modra","mediumvioletred":"srednje vijolično-rdeča","brown":"rjava","lightgray":"svetlo siva","sandybrown":"peščeno rjava","pink":"roza","firebrick":"opečnata","indigo":"indigo","snow":"snežena","darkorchid":"temno orhidejna","turquoise":"turkizna","chocolate":"čokoladna","springgreen":"pomladno zelena","moccasin":"mokasinasta","navy":"mornarsko modra","lemonchiffon":"limonina","teal":"zeleno modra","floralwhite":"cvetno bela","cornflowerblue":"plavično modra","paleturquoise":"bledo turkizna","purple":"škrlatna","gainsboro":"pepelnato siva","plum":"slivova","red":"rdeča","blue":"modra","forestgreen":"gozdno zelena","darkgreen":"temno zelena","honeydew":"medena rosa","darkseagreen":"temno morsko zelena","lightcoral":"svetlo koralna","palevioletred":"bledo vijolično-rdeča","mediumpurple":"srednje škrlatna","saddlebrown":"sedlasto rjava","darkmagenta":"temno magenta","thistle":"osatna","whitesmoke":"umazano bela","wheat":"žitna","violet":"vijolična","lightskyblue":"svetlo nebesno modra","goldenrod":"zlata rozga","mediumblue":"srednje modra","skyblue":"nebesno modra","crimson":"karminasta","darksalmon":"temno lososova","darkred":"temno rdeča","darkslategrey":"temno skrilasto siva","peru":"perujska","lightgrey":"svetlo siva","lightgoldenrodyellow":"svetlo rumena zlata rozga","blanchedalmond":"mandljeva","aliceblue":"alice modra","bisque":"porcelanasta","slategray":"skrilasto siva","palegoldenrod":"bleda zlata rozga","darkorange":"temno oranžna","aquamarine":"akvamarin","lightgreen":"svetlo zelena","burlywood":"grčav les","dodgerblue":"koruzno modra","darkgray":"temno siva","lightcyan":"svetlo cijan","powderblue":"smodniško modra","blueviolet":"modro vijolična","orchid":"orhidejna","dimgray":"umazano siva","beige":"bež","fuchsia":"fuksija","lavenderblush":"bleščeča sivka","hotpink":"živo roza","steelblue":"jekleno modra","tomato":"paradižnikova","lightpink":"svetlo roza","limegreen":"citronsko zelena","indianred":"indijansko rdeča","papayawhip":"papaja","lightslategray":"svetlo skrilasto siva","gray":"siva","mediumorchid":"srednje orhidejna","cornsilk":"koruzni laski","black":"črna","seagreen":"morsko zelena","darkslateblue":"temno skrilasto modra","khaki":"rumenkasto rjava","lightblue":"svetlo modra","palegreen":"bledo zelena","azure":"azurna","peachpuff":"breskova","darkolivegreen":"temno olivno zelena","yellowgreen":"rumeno zelena"})
\ No newline at end of file +({"lightsteelblue":"svetlo kovinsko modra","orangered":"oranžno-rdeča","midnightblue":"polnočno modra","cadetblue":"kadetsko modra","seashell":"morska lupina","slategrey":"skrilasto siva","coral":"koralna","darkturquoise":"temno turkizna","antiquewhite":"antično bela","mediumspringgreen":"srednje pomladno zelena","salmon":"lososova","darkgrey":"temno siva","ivory":"slonokoščena","greenyellow":"zeleno-rumena","mistyrose":"megleno rožnata","lightsalmon":"svetlo lososova","silver":"srebrna","dimgrey":"pepelnato siva","orange":"oranžna","white":"bela","navajowhite":"navajo bela","royalblue":"kraljevsko modra","deeppink":"temno rožnata","lime":"limetasta","oldlace":"stara čipka","chartreuse":"chartreuse","darkcyan":"temno cijan","yellow":"rumena","linen":"lanena","olive":"olivna","gold":"zlata","lawngreen":"travniško zelena","lightyellow":"svetlo rumena","tan":"rumeno-rjava","darkviolet":"temno vijolična","lightslategrey":"svetlo skrilasto siva","grey":"siva","darkkhaki":"temno kaki","green":"zelena","deepskyblue":"temno nebeško modra","aqua":"akva","sienna":"sienna","mintcream":"metina krema","rosybrown":"rožnato rjava","mediumslateblue":"srednje skrilasto modra","magenta":"magenta","lightseagreen":"svetlo morsko zelena","cyan":"cijan","olivedrab":"umazano olivna","darkgoldenrod":"temna zlata rozga","slateblue":"skrilasto modra","mediumaquamarine":"srednji akvamarin","lavender":"sivka","mediumseagreen":"srednje morsko zelena","maroon":"kostanjeva","darkslategray":"temno skrilasto siva","mediumturquoise":"srednje turkizna","ghostwhite":"senčnato bela","darkblue":"temno modra","mediumvioletred":"srednje vijolično rdeča","brown":"rjava","lightgray":"svetlo siva","sandybrown":"peščeno rjava","pink":"rožnata","firebrick":"opečnata","indigo":"indigo","snow":"snežena","darkorchid":"temno orhidejasta","turquoise":"turkizna","chocolate":"čokoladna","springgreen":"pomladno zelena","moccasin":"mokasinasta","navy":"mornarska","lemonchiffon":"limonast šifon","teal":"modrozelena","floralwhite":"cvetno bela","cornflowerblue":"plavičasto modra","paleturquoise":"bledo turkizna","purple":"škrlatna","gainsboro":"gainsboro","plum":"slivova","red":"rdeča","blue":"modra","forestgreen":"gozdno zelena","darkgreen":"temno zelena","honeydew":"medena rosa","darkseagreen":"temno morsko zelena","lightcoral":"svetlo koralna","palevioletred":"bledo vijolično-rdeča","mediumpurple":"srednje škrlatna","saddlebrown":"sedlasto rjava","darkmagenta":"temna magenta","thistle":"osatna","whitesmoke":"megleno bela","wheat":"pšenična","violet":"vijolična","lightskyblue":"svetlo nebeško modra","goldenrod":"zlata rozga","mediumblue":"srednje modra","skyblue":"nebeško modra","crimson":"karminasta","darksalmon":"temno lososova","darkred":"temno rdeča","darkslategrey":"temno skrilasto siva","peru":"perujska","lightgrey":"svetlo siva","lightgoldenrodyellow":"svetlo rumena zlata rozga","blanchedalmond":"obledelo mandljeva","aliceblue":"alice blue modra","bisque":"porcelanasta","slategray":"skrilasto siva","palegoldenrod":"bleda zlata rozga","darkorange":"temno oranžna","aquamarine":"akvamarin","lightgreen":"svetlo zelena","burlywood":"peščeno sivo-rjava","dodgerblue":"dodgersko modra","darkgray":"temno siva","lightcyan":"svetlo cijan","powderblue":"kobaltovo modra","blueviolet":"modro vijolična","orchid":"orhidejasta","dimgray":"pepelnato siva","beige":"bež","fuchsia":"fuksija","lavenderblush":"rožnato sivka","hotpink":"kričeče rožnata","steelblue":"kovinsko modra","tomato":"paradižnikova","lightpink":"svetlo rožnata","limegreen":"apneno zelena","indianred":"indijansko rdeča","papayawhip":"papaja","lightslategray":"svetlo skrilasto siva","gray":"siva","mediumorchid":"srednje orhidejasta","cornsilk":"koruzna","black":"črna","seagreen":"morsko zelena","darkslateblue":"temno skrilasto modra","khaki":"kaki","lightblue":"svetlo modra","palegreen":"bledo zelena","azure":"azurno modra","peachpuff":"breskova","darkolivegreen":"temna olivno zelena","yellowgreen":"rumeno-zelena"})
\ No newline at end of file diff --git a/lib/dojo/nls/tt-rss-layer_ROOT.js b/lib/dojo/nls/tt-rss-layer_ROOT.js index 1b351daf4..5cd71420f 100644 --- a/lib/dojo/nls/tt-rss-layer_ROOT.js +++ b/lib/dojo/nls/tt-rss-layer_ROOT.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_ROOT");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ROOT");dojo.nls.colors.ROOT={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ROOT");dijit.nls.loading.ROOT={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ROOT");dijit.nls.common.ROOT={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ROOT");dijit.form.nls.validate.ROOT={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ROOT");dijit.form.nls.ComboBox.ROOT={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ROOT");dojo.cldr.nls.number.ROOT={"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_ROOT");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ROOT");dojo.nls.colors.ROOT={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ROOT");dijit.nls.loading.ROOT={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ROOT");dijit.nls.common.ROOT={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ROOT");dijit.form.nls.validate.ROOT={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ROOT");dijit.form.nls.ComboBox.ROOT={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ROOT");dojo.cldr.nls.number.ROOT={"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_ar.js b/lib/dojo/nls/tt-rss-layer_ar.js index 6a19c6d6a..464e31646 100644 --- a/lib/dojo/nls/tt-rss-layer_ar.js +++ b/lib/dojo/nls/tt-rss-layer_ar.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_ar");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ar");dojo.nls.colors.ar={"lightsteelblue":"أزرق معدني فاتح","orangered":"أحمر مائل للبرتقالي","midnightblue":"أزرق بحري","cadetblue":"أزرق ملون بالرمادي","seashell":"أبيض مائل للأصفر فاتح","slategrey":"رمادي اردوازي","coral":"مرجاني","darkturquoise":"تركواز داكن","antiquewhite":"أبيض عتيق","mediumspringgreen":"أخضر ربيعي متوسط","salmon":"برتقالي وردي شاحب","darkgrey":"رمادي داكن","ivory":"عاجي","greenyellow":"أخضر مائل للأصفر","mistyrose":"وردي","lightsalmon":"فضي فاتح","silver":"فضي","dimgrey":"رمادي شاحب","orange":"برتقالي","white":"أبيض","navajowhite":"أبيض ملاحي","royalblue":"أزرق ملكي","deeppink":"أحمر وردي غامق","lime":"ليموني","oldlace":"برتقالي مائل للأصفر شاحب","chartreuse":"أخضر مائل للصفرة","darkcyan":"أزرق سماوي داكن","yellow":"أصفر","linen":"كتاني","olive":"أخضر زيتوني داكن","gold":"ذهبي","lawngreen":"أخضر بلون العشب","lightyellow":"أصفر فاتح","tan":"خمري","darkviolet":"بنفسجي داكن","lightslategrey":"رمادي اردوازي فاتح","grey":"رمادي","darkkhaki":"كاكي داكن","green":"أخضر","deepskyblue":"أزرق سماوي غامق","aqua":"أزرق مائي","sienna":"بني محروق","mintcream":"أصفر شاحب مائل للأخضر الزرعي","rosybrown":"بني وردي","mediumslateblue":"أزرق اردوازي متوسط","magenta":"أحمر قرمزي","lightseagreen":"أخضر مائل للأزرق فاتح","cyan":"أزرق سماوي","olivedrab":"أسود فاتح","darkgoldenrod":"أصفر ذهبي داكن","slateblue":"أزرق اردوازي","mediumaquamarine":"أزرق مائل للأخضر (زبرجد) متوسط","lavender":"أرجواني شاحب","mediumseagreen":"أخضر مائل للأزرق متوسط","maroon":"أحمر داكن","darkslategray":"رمادي اردوازي داكن","mediumturquoise":"تركواز متوسط","ghostwhite":"أبيض شفاف","darkblue":"أزرق داكن","mediumvioletred":"أحمر-بنفسجي متوسط","brown":"بني","lightgray":"رمادي فاتح","sandybrown":"بني مائل للصفرة","pink":"وردي","firebrick":"أصفر زاهي","indigo":"نيلي","snow":"أبيض ثلجي","darkorchid":"أرجواني داكن","turquoise":"تركواز","chocolate":"بني غامق","springgreen":"أخضر ربيعي","moccasin":"نحاسي أحمر","navy":"أزرق داكن","lemonchiffon":"أصفر شفاف","teal":"بترولي","floralwhite":"أبيض زهري","cornflowerblue":"أزرق عنبري","paleturquoise":"تركواز شاحب","purple":"ارجواني","gainsboro":"رمادي مائل للأزرق فاتح","plum":"أرجواني داكن","red":"أحمر","blue":"أزرق","forestgreen":"أخضر بلون أشجار الغابات","darkgreen":"أخضر داكن","honeydew":"أبيض مائل للأخضر","darkseagreen":"أخضر مائل للأزرق داكن","lightcoral":"مرجاني فاتح","palevioletred":"أحمر-بنفسجي شاحب","mediumpurple":"قرمزي متوسط","saddlebrown":"بني فاتح","darkmagenta":"قرمزي داكن","thistle":"ارجواني شاحب","whitesmoke":"دخان أبيض","wheat":"أخضر قمحي","violet":"بنفسجي","lightskyblue":"أزرق سماوي فاتح","goldenrod":"أصفر ذهبي","mediumblue":"أزرق متوسط","skyblue":"أزرق سماوي","crimson":"قرمزي","darksalmon":"فضي داكن","darkred":"أحمر داكن","darkslategrey":"رمادي اردوازي داكن","peru":"بني جملي","lightgrey":"رمادي فاتح","lightgoldenrodyellow":"أصفر ذهبي فاتح","blanchedalmond":"أخضر مائل للبياض","aliceblue":"أزرق فاتح","bisque":"أصفر برتقالي الى رمادي مصفر","slategray":"رمادي اردوازي","palegoldenrod":"أصفر ذهبي شاحب","darkorange":"برتقالي داكن","aquamarine":"أزرق مائل للأخضر (زبرجد)","lightgreen":"أخضر فاتح","burlywood":"خشبي","dodgerblue":"أزرق عنبري","darkgray":"رمادي داكن","lightcyan":"سماوي فاتح","powderblue":"أزرق مائل للأصفر","blueviolet":"أزرق-بنفسجي","orchid":"أرجواني فاتح","dimgray":"رمادي شاحب","beige":"بيج","fuchsia":"فوشيا","lavenderblush":"أحمر أرجواني","hotpink":"أحمر وردي زاهي","steelblue":"أزرق معدني","tomato":"أحمر مائل للأصفر","lightpink":"وردي فاتح","limegreen":"أخضر ليموني","indianred":"أحمر هندي","papayawhip":"خوخي فاتح","lightslategray":"رمادي اردوازي فاتح","gray":"رمادي","mediumorchid":"أرجواني متوسط","cornsilk":"حريري","black":"أسود","seagreen":"أخضر مائل للأزرق","darkslateblue":"أزرق اردوازي داكن","khaki":"كاكي","lightblue":"أزرق فاتح","palegreen":"أخضر شاحب","azure":"أزرق سماوي","peachpuff":"خوخي مائل للأصفر","darkolivegreen":"أخضر زيتوني داكن","yellowgreen":"أخضر مائل للأصفر"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ar");dijit.nls.loading.ar={"loadingState":"جاري التحميل...","errorState":"عفوا، حدث خطأ"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ar");dijit.nls.common.ar={"buttonOk":"حسنا","buttonCancel":"الغاء","buttonSave":"حفظ","itemClose":"اغلاق"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ar");dijit.form.nls.validate.ar={"rangeMessage":"هذه القيمة ليس بالمدى الصحيح.","invalidMessage":"القيمة التي تم ادخالها غير صحيحة.","missingMessage":"يجب ادخال هذه القيمة."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ar");dijit.form.nls.ComboBox.ar={"previousMessage":"الاختيارات السابقة","nextMessage":"مزيد من الاختيارات"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ar");dojo.cldr.nls.number.ar={"group":"٬","percentSign":"٪","exponential":"اس","list":"؛","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":"٫","nan":"ليس رقم","nativeZeroDigit":"٠","perMille":"؉","decimalFormat":"#,##0.###;#,##0.###-","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_ar");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ar");dojo.nls.colors.ar={"lightsteelblue":"أزرق معدني فاتح","orangered":"أحمر مائل للبرتقالي","midnightblue":"أزرق بحري","cadetblue":"أزرق ملون بالرمادي","seashell":"أبيض مائل للأصفر فاتح","slategrey":"رمادي اردوازي","coral":"مرجاني","darkturquoise":"تركواز داكن","antiquewhite":"أبيض عتيق","mediumspringgreen":"أخضر ربيعي متوسط","salmon":"برتقالي وردي شاحب","darkgrey":"رمادي داكن","ivory":"عاجي","greenyellow":"أخضر مائل للأصفر","mistyrose":"وردي","lightsalmon":"فضي فاتح","silver":"فضي","dimgrey":"رمادي شاحب","orange":"برتقالي","white":"أبيض","navajowhite":"أبيض ملاحي","royalblue":"أزرق ملكي","deeppink":"أحمر وردي غامق","lime":"ليموني","oldlace":"برتقالي مائل للأصفر شاحب","chartreuse":"أخضر مائل للصفرة","darkcyan":"أزرق سماوي داكن","yellow":"أصفر","linen":"كتاني","olive":"أخضر زيتوني داكن","gold":"ذهبي","lawngreen":"أخضر بلون العشب","lightyellow":"أصفر فاتح","tan":"خمري","darkviolet":"بنفسجي داكن","lightslategrey":"رمادي اردوازي فاتح","grey":"رمادي","darkkhaki":"كاكي داكن","green":"أخضر","deepskyblue":"أزرق سماوي غامق","aqua":"أزرق مائي","sienna":"بني محروق","mintcream":"أصفر شاحب مائل للأخضر الزرعي","rosybrown":"بني وردي","mediumslateblue":"أزرق اردوازي متوسط","magenta":"أحمر قرمزي","lightseagreen":"أخضر مائل للأزرق فاتح","cyan":"أزرق سماوي","olivedrab":"أسود فاتح","darkgoldenrod":"أصفر ذهبي داكن","slateblue":"أزرق اردوازي","mediumaquamarine":"أزرق مائل للأخضر (زبرجد) متوسط","lavender":"أرجواني شاحب","mediumseagreen":"أخضر مائل للأزرق متوسط","maroon":"أحمر داكن","darkslategray":"رمادي اردوازي داكن","mediumturquoise":"تركواز متوسط","ghostwhite":"أبيض شفاف","darkblue":"أزرق داكن","mediumvioletred":"أحمر-بنفسجي متوسط","brown":"بني","lightgray":"رمادي فاتح","sandybrown":"بني مائل للصفرة","pink":"وردي","firebrick":"أصفر زاهي","indigo":"نيلي","snow":"أبيض ثلجي","darkorchid":"أرجواني داكن","turquoise":"تركواز","chocolate":"بني غامق","springgreen":"أخضر ربيعي","moccasin":"نحاسي أحمر","navy":"أزرق داكن","lemonchiffon":"أصفر شفاف","teal":"بترولي","floralwhite":"أبيض زهري","cornflowerblue":"أزرق عنبري","paleturquoise":"تركواز شاحب","purple":"ارجواني","gainsboro":"رمادي مائل للأزرق فاتح","plum":"أرجواني داكن","red":"أحمر","blue":"أزرق","forestgreen":"أخضر بلون أشجار الغابات","darkgreen":"أخضر داكن","honeydew":"أبيض مائل للأخضر","darkseagreen":"أخضر مائل للأزرق داكن","lightcoral":"مرجاني فاتح","palevioletred":"أحمر-بنفسجي شاحب","mediumpurple":"قرمزي متوسط","saddlebrown":"بني فاتح","darkmagenta":"قرمزي داكن","thistle":"ارجواني شاحب","whitesmoke":"دخان أبيض","wheat":"أخضر قمحي","violet":"بنفسجي","lightskyblue":"أزرق سماوي فاتح","goldenrod":"أصفر ذهبي","mediumblue":"أزرق متوسط","skyblue":"أزرق سماوي","crimson":"قرمزي","darksalmon":"فضي داكن","darkred":"أحمر داكن","darkslategrey":"رمادي اردوازي داكن","peru":"بني جملي","lightgrey":"رمادي فاتح","lightgoldenrodyellow":"أصفر ذهبي فاتح","blanchedalmond":"أخضر مائل للبياض","aliceblue":"أزرق فاتح","bisque":"أصفر برتقالي الى رمادي مصفر","slategray":"رمادي اردوازي","palegoldenrod":"أصفر ذهبي شاحب","darkorange":"برتقالي داكن","aquamarine":"أزرق مائل للأخضر (زبرجد)","lightgreen":"أخضر فاتح","burlywood":"خشبي","dodgerblue":"أزرق عنبري","darkgray":"رمادي داكن","lightcyan":"سماوي فاتح","powderblue":"أزرق مائل للأصفر","blueviolet":"أزرق-بنفسجي","orchid":"أرجواني فاتح","dimgray":"رمادي شاحب","beige":"بيج","fuchsia":"فوشيا","lavenderblush":"أحمر أرجواني","hotpink":"أحمر وردي زاهي","steelblue":"أزرق معدني","tomato":"أحمر مائل للأصفر","lightpink":"وردي فاتح","limegreen":"أخضر ليموني","indianred":"أحمر هندي","papayawhip":"خوخي فاتح","lightslategray":"رمادي اردوازي فاتح","gray":"رمادي","mediumorchid":"أرجواني متوسط","cornsilk":"حريري","black":"أسود","seagreen":"أخضر مائل للأزرق","darkslateblue":"أزرق اردوازي داكن","khaki":"كاكي","lightblue":"أزرق فاتح","palegreen":"أخضر شاحب","azure":"أزرق سماوي","peachpuff":"خوخي مائل للأصفر","darkolivegreen":"أخضر زيتوني داكن","yellowgreen":"أخضر مائل للأصفر"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ar");dijit.nls.loading.ar={"loadingState":"جاري التحميل...","errorState":"عفوا، حدث خطأ"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ar");dijit.nls.common.ar={"buttonOk":"حسنا","buttonCancel":"الغاء","buttonSave":"حفظ","itemClose":"اغلاق"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ar");dijit.form.nls.validate.ar={"rangeMessage":"هذه القيمة ليس بالمدى الصحيح.","invalidMessage":"القيمة التي تم ادخالها غير صحيحة.","missingMessage":"يجب ادخال هذه القيمة."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ar");dijit.form.nls.ComboBox.ar={"previousMessage":"الاختيارات السابقة","nextMessage":"مزيد من الاختيارات"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ar");dojo.cldr.nls.number.ar={"group":"٬","percentSign":"٪","exponential":"اس","list":"؛","infinity":"∞","minusSign":"-","decimal":"٫","nan":"ليس رقم","perMille":"؉","decimalFormat":"#,##0.###;#,##0.###-","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nativeZeroDigit":"0","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_ca.js b/lib/dojo/nls/tt-rss-layer_ca.js index 0f56ef882..4cc759041 100644 --- a/lib/dojo/nls/tt-rss-layer_ca.js +++ b/lib/dojo/nls/tt-rss-layer_ca.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_ca");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ca");dojo.nls.colors.ca={"lightsteelblue":"blau acer clar","orangered":"taronja vermellós","midnightblue":"blau mitjanit","cadetblue":"blau marí","seashell":"petxina marina","slategrey":"gris pissarra","coral":"corall","darkturquoise":"turquesa fosc","antiquewhite":"blanc antic","mediumspringgreen":"verd primavera mitjà","salmon":"salmó","darkgrey":"gris fosc","ivory":"marbre","greenyellow":"verd grogós","mistyrose":"rosa dens","lightsalmon":"salmó clar","silver":"argent","dimgrey":"gris fosc","orange":"taronja","white":"blanc","navajowhite":"blanc Navajo","royalblue":"blau marí intens","deeppink":"rosa profund","lime":"verd llimona","oldlace":"rosa cremós","chartreuse":"Llimona pàl·lid","darkcyan":"cian fosc","yellow":"groc","linen":"lli","olive":"oliva","gold":"daurat","lawngreen":"verd gespa","lightyellow":"groc clar","tan":"tan","darkviolet":"violeta fosc","lightslategrey":"gris pissarra clar","grey":"gris","darkkhaki":"caqui fosc","green":"verd","deepskyblue":"blau cel profund","aqua":"aigua","sienna":"siena","mintcream":"menta pàl·lid","rosybrown":"marró rosat","mediumslateblue":"blau pissarra mitjà","magenta":"magenta","lightseagreen":"verd marí clar","cyan":"cian","olivedrab":"gris oliva","darkgoldenrod":"ocre fosc","slateblue":"blau pissarra","mediumaquamarine":"aiguamarina mitjana","lavender":"lavanda","mediumseagreen":"verd marí mitjà","maroon":"marró vermellós","darkslategray":"gris pissarra fosc","mediumturquoise":"turquesa mitjana","ghostwhite":"blanc fantasma","darkblue":"blau fosc","mediumvioletred":"vermell violeta mitjà","brown":"marró","lightgray":"gris clar","sandybrown":"marró arenós","pink":"rosa","firebrick":"maó refractari","indigo":"índigo","snow":"neu","darkorchid":"orquídia fosc","turquoise":"turquesa","chocolate":"xocolata","springgreen":"verd de primavera","moccasin":"mocassí","navy":"blau marí","lemonchiffon":"groc brisa","teal":"verd blavós","floralwhite":"blanc floral","cornflowerblue":"blau blauet","paleturquoise":"turquesa pàl·lid","purple":"porpra","gainsboro":"gainsboro","plum":"pruna","red":"vermell","blue":"blau","forestgreen":"verd bosc","darkgreen":"verd fosc","honeydew":"rosada de mel","darkseagreen":"verd marí fosc","lightcoral":"corall clar","palevioletred":"vermell porpra pàl·lid","mediumpurple":"porpra mitjana","saddlebrown":"marró mitjà","darkmagenta":"magenta fosc","thistle":"card","whitesmoke":"blanc fumat","wheat":"blat","violet":"violeta","lightskyblue":"blau cel clar","goldenrod":"ocre","mediumblue":"blau mitjà","skyblue":"blau cel","crimson":"carmesí","darksalmon":"salmó fosc","darkred":"vermell fosc","darkslategrey":"gris pissarra fosc","peru":"Perú","lightgrey":"gris clar","lightgoldenrodyellow":"groc ocre clar","blanchedalmond":"ametlla pàl·lid","aliceblue":"blau cian clar","bisque":"crema","slategray":"gris pissarra","palegoldenrod":"ocre pàl·lid","darkorange":"taronja fosc","aquamarine":"aiguamarina","lightgreen":"verd clar","burlywood":"marró arenós","dodgerblue":"blau Dodger","darkgray":"gris fosc","lightcyan":"cian clar","powderblue":"blau grisós","blueviolet":"blau violeta","orchid":"orquídia","dimgray":"gris fosc","beige":"beix","fuchsia":"fúcsia","lavenderblush":"lavanda vermellosa","hotpink":"rosa fúcsia","steelblue":"blau acer","tomato":"tomàquet","lightpink":"rosa clar","limegreen":"verd llimona verda","indianred":"vermell indi","papayawhip":"préssec pastel","lightslategray":"gris pissarra clar","gray":"gris","mediumorchid":"orquídia mitjana","cornsilk":"cru","black":"negre","seagreen":"verd marí","darkslateblue":"blau pissarra fosc","khaki":"caqui","lightblue":"blau clar","palegreen":"verd pàl·lid","azure":"atzur","peachpuff":"préssec","darkolivegreen":"verd oliva fosc","yellowgreen":"verd grogós"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ca");dijit.nls.loading.ca={"loadingState":"S'està carregant...","errorState":"Ens sap greu. S'ha produït un error."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ca");dijit.nls.common.ca={"buttonOk":"D'acord","buttonCancel":"Cancel·la","buttonSave":"Desa","itemClose":"Tanca"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ca");dijit.form.nls.validate.ca={"rangeMessage":"Aquest valor és fora de l'interval","invalidMessage":"El valor introduït no és vàlid","missingMessage":"Aquest valor és necessari"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ca");dijit.form.nls.ComboBox.ca={"previousMessage":"Opcions anteriors","nextMessage":"Més opcions"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ca");dojo.cldr.nls.number.ca={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_ca");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ca");dojo.nls.colors.ca={"lightsteelblue":"blau acer clar","orangered":"taronja vermellós","midnightblue":"blau mitjanit","cadetblue":"blau marí","seashell":"petxina marina","slategrey":"gris pissarra","coral":"corall","darkturquoise":"turquesa fosc","antiquewhite":"blanc antic","mediumspringgreen":"verd primavera mitjà","salmon":"salmó","darkgrey":"gris fosc","ivory":"marbre","greenyellow":"verd grogós","mistyrose":"rosa dens","lightsalmon":"salmó clar","silver":"argent","dimgrey":"gris fosc","orange":"taronja","white":"blanc","navajowhite":"blanc Navajo","royalblue":"blau marí intens","deeppink":"rosa profund","lime":"verd llimona","oldlace":"rosa cremós","chartreuse":"Llimona pàl·lid","darkcyan":"cian fosc","yellow":"groc","linen":"lli","olive":"oliva","gold":"daurat","lawngreen":"verd gespa","lightyellow":"groc clar","tan":"tan","darkviolet":"violeta fosc","lightslategrey":"gris pissarra clar","grey":"gris","darkkhaki":"caqui fosc","green":"verd","deepskyblue":"blau cel profund","aqua":"aigua","sienna":"siena","mintcream":"menta pàl·lid","rosybrown":"marró rosat","mediumslateblue":"blau pissarra mitjà","magenta":"magenta","lightseagreen":"verd marí clar","cyan":"cian","olivedrab":"gris oliva","darkgoldenrod":"ocre fosc","slateblue":"blau pissarra","mediumaquamarine":"aiguamarina mitjana","lavender":"lavanda","mediumseagreen":"verd marí mitjà","maroon":"marró vermellós","darkslategray":"gris pissarra fosc","mediumturquoise":"turquesa mitjana","ghostwhite":"blanc fantasma","darkblue":"blau fosc","mediumvioletred":"vermell violeta mitjà","brown":"marró","lightgray":"gris clar","sandybrown":"marró arenós","pink":"rosa","firebrick":"maó refractari","indigo":"índigo","snow":"neu","darkorchid":"orquídia fosc","turquoise":"turquesa","chocolate":"xocolata","springgreen":"verd de primavera","moccasin":"mocassí","navy":"blau marí","lemonchiffon":"groc brisa","teal":"verd blavós","floralwhite":"blanc floral","cornflowerblue":"blau blauet","paleturquoise":"turquesa pàl·lid","purple":"porpra","gainsboro":"gainsboro","plum":"pruna","red":"vermell","blue":"blau","forestgreen":"verd bosc","darkgreen":"verd fosc","honeydew":"rosada de mel","darkseagreen":"verd marí fosc","lightcoral":"corall clar","palevioletred":"vermell porpra pàl·lid","mediumpurple":"porpra mitjana","saddlebrown":"marró mitjà","darkmagenta":"magenta fosc","thistle":"card","whitesmoke":"blanc fumat","wheat":"blat","violet":"violeta","lightskyblue":"blau cel clar","goldenrod":"ocre","mediumblue":"blau mitjà","skyblue":"blau cel","crimson":"carmesí","darksalmon":"salmó fosc","darkred":"vermell fosc","darkslategrey":"gris pissarra fosc","peru":"Perú","lightgrey":"gris clar","lightgoldenrodyellow":"groc ocre clar","blanchedalmond":"ametlla pàl·lid","aliceblue":"blau cian clar","bisque":"crema","slategray":"gris pissarra","palegoldenrod":"ocre pàl·lid","darkorange":"taronja fosc","aquamarine":"aiguamarina","lightgreen":"verd clar","burlywood":"marró arenós","dodgerblue":"blau Dodger","darkgray":"gris fosc","lightcyan":"cian clar","powderblue":"blau grisós","blueviolet":"blau violeta","orchid":"orquídia","dimgray":"gris fosc","beige":"beix","fuchsia":"fúcsia","lavenderblush":"lavanda vermellosa","hotpink":"rosa fúcsia","steelblue":"blau acer","tomato":"tomàquet","lightpink":"rosa clar","limegreen":"verd llimona verda","indianred":"vermell indi","papayawhip":"préssec pastel","lightslategray":"gris pissarra clar","gray":"gris","mediumorchid":"orquídia mitjana","cornsilk":"cru","black":"negre","seagreen":"verd marí","darkslateblue":"blau pissarra fosc","khaki":"caqui","lightblue":"blau clar","palegreen":"verd pàl·lid","azure":"atzur","peachpuff":"préssec","darkolivegreen":"verd oliva fosc","yellowgreen":"verd grogós"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ca");dijit.nls.loading.ca={"loadingState":"S'està carregant...","errorState":"Ens sap greu. S'ha produït un error."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ca");dijit.nls.common.ca={"buttonOk":"D'acord","buttonCancel":"Cancel·la","buttonSave":"Desa","itemClose":"Tanca"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ca");dijit.form.nls.validate.ca={"rangeMessage":"Aquest valor és fora de l'interval","invalidMessage":"El valor introduït no és vàlid","missingMessage":"Aquest valor és necessari"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ca");dijit.form.nls.ComboBox.ca={"previousMessage":"Opcions anteriors","nextMessage":"Més opcions"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ca");dojo.cldr.nls.number.ca={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_cs.js b/lib/dojo/nls/tt-rss-layer_cs.js index 93ed7c8f1..8c008a467 100644 --- a/lib/dojo/nls/tt-rss-layer_cs.js +++ b/lib/dojo/nls/tt-rss-layer_cs.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_cs");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.cs");dojo.nls.colors.cs={"lightsteelblue":"světlá ocelová modrá","orangered":"oranžovočervená","midnightblue":"temně modrá","cadetblue":"šedomodrá","seashell":"lasturová","slategrey":"břidlicová šedá","coral":"korálová červená","darkturquoise":"tmavě tyrkysová","antiquewhite":"krémově bílá","mediumspringgreen":"střední jarní zelená","salmon":"lososová","darkgrey":"tmavě šedá","ivory":"slonovinová","greenyellow":"zelenožlutá","mistyrose":"růžovobílá","lightsalmon":"světle lososová","silver":"stříbrná","dimgrey":"kouřově šedá","orange":"oranžová","white":"bílá","navajowhite":"světle krémová","royalblue":"královská modrá","deeppink":"sytě růžová","lime":"limetková","oldlace":"světle béžová","chartreuse":"chartreuska","darkcyan":"tmavě azurová","yellow":"žlutá","linen":"bledě šedobéžová","olive":"olivová","gold":"zlatá","lawngreen":"jasně zelená","lightyellow":"bledě žlutá","tan":"šedobéžová","darkviolet":"tmavě fialová","lightslategrey":"světlá břidlicová šedá","grey":"šedá","darkkhaki":"pískově hnědá","green":"zelená","deepskyblue":"sytá nebeská modrá","aqua":"azurová","sienna":"siena","mintcream":"mentolová","rosybrown":"růžovohnědá","mediumslateblue":"střední břidlicová modrá","magenta":"purpurová","lightseagreen":"světlá mořská zelená","cyan":"azurová","olivedrab":"khaki","darkgoldenrod":"tmavě béžová","slateblue":"břidlicová modrá","mediumaquamarine":"střední akvamarínová","lavender":"levandulová","mediumseagreen":"střední mořská zelená","maroon":"kaštanová","darkslategray":"tmavá břidlicová šedá","mediumturquoise":"středně tyrkysová","ghostwhite":"modravě bílá","darkblue":"tmavě modrá","mediumvioletred":"středně fialovočervená","brown":"červenohnědá","lightgray":"světle šedá","sandybrown":"oranžovohnědá","pink":"růžová","firebrick":"cihlová","indigo":"indigově modrá","snow":"sněhobílá","darkorchid":"tmavě orchidejová","turquoise":"tyrkysová","chocolate":"hnědobéžová","springgreen":"jarní zelená","moccasin":"bledě krémová","navy":"námořnická modrá","lemonchiffon":"světle citrónová","teal":"šedozelená","floralwhite":"květinově bílá","cornflowerblue":"chrpově modrá","paleturquoise":"bledě tyrkysová","purple":"nachová","gainsboro":"bledě šedá","plum":"švestková","red":"červená","blue":"modrá","forestgreen":"lesní zelená","darkgreen":"tmavě zelená","honeydew":"nazelenalá","darkseagreen":"tmavá mořská zelená","lightcoral":"světle korálová","palevioletred":"bledě fialovočervená","mediumpurple":"středně nachová","saddlebrown":"hnědá","darkmagenta":"tmavě purpurová","thistle":"bodláková","whitesmoke":"kouřově bílá","wheat":"zlatohnědá","violet":"fialová","lightskyblue":"světlá nebeská modrá","goldenrod":"béžová","mediumblue":"středně modrá","skyblue":"nebeská modrá","crimson":"karmínová","darksalmon":"tmavě lososová","darkred":"tmavě červená","darkslategrey":"tmavá břidlicová šedá","peru":"karamelová","lightgrey":"světle šedá","lightgoldenrodyellow":"světle žlutá","blanchedalmond":"mandlová","aliceblue":"modravá","bisque":"bledě oranžová","slategray":"břidlicová šedá","palegoldenrod":"bledě písková","darkorange":"tmavě oranžová","aquamarine":"akvamarínová","lightgreen":"světle zelená","burlywood":"krémová","dodgerblue":"jasně modrá","darkgray":"tmavě šedá","lightcyan":"světle azurová","powderblue":"bledě modrá","blueviolet":"modrofialová","orchid":"orchidejová","dimgray":"kouřově šedá","beige":"bledě béžová","fuchsia":"fuchsiová","lavenderblush":"levandulová růžová","hotpink":"jasně růžová","steelblue":"ocelová modrá","tomato":"tomatová","lightpink":"světle růžová","limegreen":"limetkově zelená","indianred":"indiánská červená","papayawhip":"papájová","lightslategray":"světlá břidlicová šedá","gray":"šedá","mediumorchid":"středně orchidejová","cornsilk":"režná","black":"černá","seagreen":"mořská zelená","darkslateblue":"tmavá břidlicová modrá","khaki":"písková","lightblue":"světle modrá","palegreen":"bledě zelená","azure":"bledě azurová","peachpuff":"broskvová","darkolivegreen":"tmavě olivová","yellowgreen":"žlutozelená"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.cs");dijit.nls.loading.cs={"loadingState":"Probíhá načítání...","errorState":"Omlouváme se, došlo k chybě"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.cs");dijit.nls.common.cs={"buttonOk":"OK","buttonCancel":"Storno","buttonSave":"Uložit","itemClose":"Zavřít"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.cs");dijit.form.nls.validate.cs={"rangeMessage":"Tato hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota není platná.","missingMessage":"Tato hodnota je vyžadována."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.cs");dijit.form.nls.ComboBox.cs={"previousMessage":"Předchozí volby","nextMessage":"Další volby"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.cs");dojo.cldr.nls.number.cs={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_cs");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.cs");dojo.nls.colors.cs={"lightsteelblue":"světlá ocelová modrá","orangered":"oranžovočervená","midnightblue":"temně modrá","cadetblue":"šedomodrá","seashell":"lasturová","slategrey":"břidlicová šedá","coral":"korálová červená","darkturquoise":"tmavě tyrkysová","antiquewhite":"krémově bílá","mediumspringgreen":"střední jarní zelená","salmon":"lososová","darkgrey":"tmavě šedá","ivory":"slonovinová","greenyellow":"zelenožlutá","mistyrose":"růžovobílá","lightsalmon":"světle lososová","silver":"stříbrná","dimgrey":"kouřově šedá","orange":"oranžová","white":"bílá","navajowhite":"světle krémová","royalblue":"královská modrá","deeppink":"sytě růžová","lime":"limetková","oldlace":"světle béžová","chartreuse":"chartreuska","darkcyan":"tmavě azurová","yellow":"žlutá","linen":"bledě šedobéžová","olive":"olivová","gold":"zlatá","lawngreen":"jasně zelená","lightyellow":"bledě žlutá","tan":"šedobéžová","darkviolet":"tmavě fialová","lightslategrey":"světlá břidlicová šedá","grey":"šedá","darkkhaki":"pískově hnědá","green":"zelená","deepskyblue":"sytá nebeská modrá","aqua":"azurová","sienna":"siena","mintcream":"mentolová","rosybrown":"růžovohnědá","mediumslateblue":"střední břidlicová modrá","magenta":"purpurová","lightseagreen":"světlá mořská zelená","cyan":"azurová","olivedrab":"khaki","darkgoldenrod":"tmavě béžová","slateblue":"břidlicová modrá","mediumaquamarine":"střední akvamarínová","lavender":"levandulová","mediumseagreen":"střední mořská zelená","maroon":"kaštanová","darkslategray":"tmavá břidlicová šedá","mediumturquoise":"středně tyrkysová","ghostwhite":"modravě bílá","darkblue":"tmavě modrá","mediumvioletred":"středně fialovočervená","brown":"červenohnědá","lightgray":"světle šedá","sandybrown":"oranžovohnědá","pink":"růžová","firebrick":"cihlová","indigo":"indigově modrá","snow":"sněhobílá","darkorchid":"tmavě orchidejová","turquoise":"tyrkysová","chocolate":"hnědobéžová","springgreen":"jarní zelená","moccasin":"bledě krémová","navy":"námořnická modrá","lemonchiffon":"světle citrónová","teal":"šedozelená","floralwhite":"květinově bílá","cornflowerblue":"chrpově modrá","paleturquoise":"bledě tyrkysová","purple":"nachová","gainsboro":"bledě šedá","plum":"švestková","red":"červená","blue":"modrá","forestgreen":"lesní zelená","darkgreen":"tmavě zelená","honeydew":"nazelenalá","darkseagreen":"tmavá mořská zelená","lightcoral":"světle korálová","palevioletred":"bledě fialovočervená","mediumpurple":"středně nachová","saddlebrown":"hnědá","darkmagenta":"tmavě purpurová","thistle":"bodláková","whitesmoke":"kouřově bílá","wheat":"zlatohnědá","violet":"fialová","lightskyblue":"světlá nebeská modrá","goldenrod":"béžová","mediumblue":"středně modrá","skyblue":"nebeská modrá","crimson":"karmínová","darksalmon":"tmavě lososová","darkred":"tmavě červená","darkslategrey":"tmavá břidlicová šedá","peru":"karamelová","lightgrey":"světle šedá","lightgoldenrodyellow":"světle žlutá","blanchedalmond":"mandlová","aliceblue":"modravá","bisque":"bledě oranžová","slategray":"břidlicová šedá","palegoldenrod":"bledě písková","darkorange":"tmavě oranžová","aquamarine":"akvamarínová","lightgreen":"světle zelená","burlywood":"krémová","dodgerblue":"jasně modrá","darkgray":"tmavě šedá","lightcyan":"světle azurová","powderblue":"bledě modrá","blueviolet":"modrofialová","orchid":"orchidejová","dimgray":"kouřově šedá","beige":"bledě béžová","fuchsia":"fuchsiová","lavenderblush":"levandulová růžová","hotpink":"jasně růžová","steelblue":"ocelová modrá","tomato":"tomatová","lightpink":"světle růžová","limegreen":"limetkově zelená","indianred":"indiánská červená","papayawhip":"papájová","lightslategray":"světlá břidlicová šedá","gray":"šedá","mediumorchid":"středně orchidejová","cornsilk":"režná","black":"černá","seagreen":"mořská zelená","darkslateblue":"tmavá břidlicová modrá","khaki":"písková","lightblue":"světle modrá","palegreen":"bledě zelená","azure":"bledě azurová","peachpuff":"broskvová","darkolivegreen":"tmavě olivová","yellowgreen":"žlutozelená"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.cs");dijit.nls.loading.cs={"loadingState":"Probíhá načítání...","errorState":"Omlouváme se, došlo k chybě"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.cs");dijit.nls.common.cs={"buttonOk":"OK","buttonCancel":"Storno","buttonSave":"Uložit","itemClose":"Zavřít"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.cs");dijit.form.nls.validate.cs={"rangeMessage":"Tato hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota není platná.","missingMessage":"Tato hodnota je vyžadována."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.cs");dijit.form.nls.ComboBox.cs={"previousMessage":"Předchozí volby","nextMessage":"Další volby"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.cs");dojo.cldr.nls.number.cs={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_da.js b/lib/dojo/nls/tt-rss-layer_da.js index 7f8be8c68..365eb98da 100644 --- a/lib/dojo/nls/tt-rss-layer_da.js +++ b/lib/dojo/nls/tt-rss-layer_da.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_da");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.da");dojo.nls.colors.da={"lightsteelblue":"lys stålblå","orangered":"orangerød","midnightblue":"midnatsblå","cadetblue":"kadetblå","seashell":"muslingeskal","slategrey":"skifergrå","coral":"koralrød","darkturquoise":"mørk turkis","antiquewhite":"antikhvid","mediumspringgreen":"mellemforårsgrøn","salmon":"laksefarvet","darkgrey":"mørkegrå","ivory":"elfenben","greenyellow":"grøngul","mistyrose":"blegrosa","lightsalmon":"lys laksefarvet","silver":"sølv","dimgrey":"svag grå","orange":"orange","white":"hvid","navajowhite":"navajo-hvid","royalblue":"kongeblå","deeppink":"dyb pink","lime":"lime","oldlace":"kniplingshvid","chartreuse":"chartreuse","darkcyan":"mørk cyan","yellow":"gul","linen":"lærred","olive":"olivengrøn","gold":"guld","lawngreen":"græsgrøn","lightyellow":"lysegul","tan":"tan","darkviolet":"mørkelilla","lightslategrey":"lys skifergrå","grey":"grå","darkkhaki":"mørk khaki","green":"grøn","deepskyblue":"dyb himmelblå","aqua":"akvablå","sienna":"sienna","mintcream":"pebermyntecreme","rosybrown":"rosabrun","mediumslateblue":"mellemskiferblå","magenta":"magenta","lightseagreen":"lys havgrøn","cyan":"cyan","olivedrab":"brungrøn","darkgoldenrod":"mørk gyldenris","slateblue":"skiferblå","mediumaquamarine":"mellem akvamarin","lavender":"lysviolet","mediumseagreen":"mellemhavgrøn","maroon":"rødbrun","darkslategray":"mørk skifergrå","mediumturquoise":"mellemturkis","ghostwhite":"spøgelseshvid","darkblue":"mørkeblå","mediumvioletred":"mellemviolet","brown":"brun","lightgray":"lysegrå","sandybrown":"sandbrun","pink":"pink","firebrick":"chamottesten","indigo":"indigo","snow":"sne","darkorchid":"mørk orkide","turquoise":"turkis","chocolate":"rust","springgreen":"forårsgrøn","moccasin":"fruesko","navy":"marineblå","lemonchiffon":"citronfromage","teal":"blågrøn","floralwhite":"blomsterhvid","cornflowerblue":"kornblomstblå","paleturquoise":"bleg turkis","purple":"lilla","gainsboro":"gainsboro","plum":"blomme","red":"rød","blue":"blå","forestgreen":"skovgrøn","darkgreen":"mørkegrøn","honeydew":"honningdug","darkseagreen":"mørk havgrøn","lightcoral":"lys koralrød","palevioletred":"blegviolet","mediumpurple":"mellemlilla","saddlebrown":"saddelbrun","darkmagenta":"mørk magenta","thistle":"tidsel","whitesmoke":"hvid røg","wheat":"korngul","violet":"lilla","lightskyblue":"lys himmelblå","goldenrod":"gyldenris","mediumblue":"mellemblå","skyblue":"himmelblå","crimson":"blodrød","darksalmon":"mørk laksefarvet","darkred":"mørkerød","darkslategrey":"mørk skifergrå","peru":"peru","lightgrey":"lysegrå","lightgoldenrodyellow":"lys gyldenrisgul","blanchedalmond":"blanceret mandel","aliceblue":"babyblå","bisque":"gulgrå","slategray":"skifergrå","palegoldenrod":"bleg gyldenris","darkorange":"mørk orange","aquamarine":"akvamarin","lightgreen":"lysegrøn","burlywood":"tobak","dodgerblue":"dodgerblå","darkgray":"mørkegrå","lightcyan":"lys cyan","powderblue":"pudderblå","blueviolet":"blåviolet","orchid":"orkide","dimgray":"svag grå","beige":"beige","fuchsia":"lyslilla","lavenderblush":"lavendelrød","hotpink":"mørk rosa","steelblue":"metalblå","tomato":"tomat","lightpink":"lys pink","limegreen":"limegrøn","indianred":"lys rødbrun","papayawhip":"papaya","lightslategray":"lys skifergrå","gray":"grå","mediumorchid":"mellem orkide","cornsilk":"majs","black":"sort","seagreen":"havgrøn","darkslateblue":"mørk skiferblå","khaki":"khaki","lightblue":"lyseblå","palegreen":"bleggrøn","azure":"azurblå","peachpuff":"fersken","darkolivegreen":"mørk olivengrøn","yellowgreen":"gulgrøn"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.da");dijit.nls.loading.da={"loadingState":"Indlæser...","errorState":"Der er opstået en fejl"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.da");dijit.nls.common.da={"buttonOk":"OK","buttonCancel":"Annullér","buttonSave":"Gem","itemClose":"Luk"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.da");dijit.form.nls.validate.da={"rangeMessage":"Værdien er uden for intervallet.","invalidMessage":"Den angivne værdi er ugyldig.","missingMessage":"Værdien er påkrævet."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.da");dijit.form.nls.ComboBox.da={"previousMessage":"Forrige valg","nextMessage":"Flere valg"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.da");dojo.cldr.nls.number.da={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_da");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.da");dojo.nls.colors.da={"lightsteelblue":"lys stålblå","orangered":"orangerød","midnightblue":"midnatsblå","cadetblue":"kadetblå","seashell":"muslingeskal","slategrey":"skifergrå","coral":"koralrød","darkturquoise":"mørk turkis","antiquewhite":"antikhvid","mediumspringgreen":"mellemforårsgrøn","salmon":"laksefarvet","darkgrey":"mørkegrå","ivory":"elfenben","greenyellow":"grøngul","mistyrose":"blegrosa","lightsalmon":"lys laksefarvet","silver":"sølv","dimgrey":"svag grå","orange":"orange","white":"hvid","navajowhite":"navajo-hvid","royalblue":"kongeblå","deeppink":"dyb pink","lime":"lime","oldlace":"kniplingshvid","chartreuse":"chartreuse","darkcyan":"mørk cyan","yellow":"gul","linen":"lærred","olive":"olivengrøn","gold":"guld","lawngreen":"græsgrøn","lightyellow":"lysegul","tan":"tan","darkviolet":"mørkelilla","lightslategrey":"lys skifergrå","grey":"grå","darkkhaki":"mørk khaki","green":"grøn","deepskyblue":"dyb himmelblå","aqua":"akvablå","sienna":"sienna","mintcream":"pebermyntecreme","rosybrown":"rosabrun","mediumslateblue":"mellemskiferblå","magenta":"magenta","lightseagreen":"lys havgrøn","cyan":"cyan","olivedrab":"brungrøn","darkgoldenrod":"mørk gyldenris","slateblue":"skiferblå","mediumaquamarine":"mellem akvamarin","lavender":"lysviolet","mediumseagreen":"mellemhavgrøn","maroon":"rødbrun","darkslategray":"mørk skifergrå","mediumturquoise":"mellemturkis","ghostwhite":"spøgelseshvid","darkblue":"mørkeblå","mediumvioletred":"mellemviolet","brown":"brun","lightgray":"lysegrå","sandybrown":"sandbrun","pink":"pink","firebrick":"chamottesten","indigo":"indigo","snow":"sne","darkorchid":"mørk orkide","turquoise":"turkis","chocolate":"rust","springgreen":"forårsgrøn","moccasin":"fruesko","navy":"marineblå","lemonchiffon":"citronfromage","teal":"blågrøn","floralwhite":"blomsterhvid","cornflowerblue":"kornblomstblå","paleturquoise":"bleg turkis","purple":"lilla","gainsboro":"gainsboro","plum":"blomme","red":"rød","blue":"blå","forestgreen":"skovgrøn","darkgreen":"mørkegrøn","honeydew":"honningdug","darkseagreen":"mørk havgrøn","lightcoral":"lys koralrød","palevioletred":"blegviolet","mediumpurple":"mellemlilla","saddlebrown":"saddelbrun","darkmagenta":"mørk magenta","thistle":"tidsel","whitesmoke":"hvid røg","wheat":"korngul","violet":"lilla","lightskyblue":"lys himmelblå","goldenrod":"gyldenris","mediumblue":"mellemblå","skyblue":"himmelblå","crimson":"blodrød","darksalmon":"mørk laksefarvet","darkred":"mørkerød","darkslategrey":"mørk skifergrå","peru":"peru","lightgrey":"lysegrå","lightgoldenrodyellow":"lys gyldenrisgul","blanchedalmond":"blanceret mandel","aliceblue":"babyblå","bisque":"gulgrå","slategray":"skifergrå","palegoldenrod":"bleg gyldenris","darkorange":"mørk orange","aquamarine":"akvamarin","lightgreen":"lysegrøn","burlywood":"tobak","dodgerblue":"dodgerblå","darkgray":"mørkegrå","lightcyan":"lys cyan","powderblue":"pudderblå","blueviolet":"blåviolet","orchid":"orkide","dimgray":"svag grå","beige":"beige","fuchsia":"lyslilla","lavenderblush":"lavendelrød","hotpink":"mørk rosa","steelblue":"metalblå","tomato":"tomat","lightpink":"lys pink","limegreen":"limegrøn","indianred":"lys rødbrun","papayawhip":"papaya","lightslategray":"lys skifergrå","gray":"grå","mediumorchid":"mellem orkide","cornsilk":"majs","black":"sort","seagreen":"havgrøn","darkslateblue":"mørk skiferblå","khaki":"khaki","lightblue":"lyseblå","palegreen":"bleggrøn","azure":"azurblå","peachpuff":"fersken","darkolivegreen":"mørk olivengrøn","yellowgreen":"gulgrøn"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.da");dijit.nls.loading.da={"loadingState":"Indlæser...","errorState":"Der er opstået en fejl"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.da");dijit.nls.common.da={"buttonOk":"OK","buttonCancel":"Annullér","buttonSave":"Gem","itemClose":"Luk"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.da");dijit.form.nls.validate.da={"rangeMessage":"Værdien er uden for intervallet.","invalidMessage":"Den angivne værdi er ikke gyldig.","missingMessage":"Værdien er påkrævet."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.da");dijit.form.nls.ComboBox.da={"previousMessage":"Forrige valg","nextMessage":"Flere valg"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.da");dojo.cldr.nls.number.da={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_de-de.js b/lib/dojo/nls/tt-rss-layer_de-de.js index e5bb92237..f43af10d1 100644 --- a/lib/dojo/nls/tt-rss-layer_de-de.js +++ b/lib/dojo/nls/tt-rss-layer_de-de.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_de-de");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.de_de");dojo.nls.colors.de_de={"lightsteelblue":"Helles Stahlblau","orangered":"Orangerot","midnightblue":"Mitternachtblau","cadetblue":"Kadettenblau","seashell":"Muschelweiß","slategrey":"Schiefergrau","coral":"Koralle","darkturquoise":"Dunkeltürkis","antiquewhite":"Antikweiß","mediumspringgreen":"Mittelfrühlingsgrün","salmon":"Lachs","darkgrey":"Dunkelgrau","ivory":"Elfenbein","greenyellow":"Grüngelb","mistyrose":"Blassrose","lightsalmon":"Helllachs","silver":"Silbergrau","dimgrey":"Blassgrau","orange":"Orange","white":"Weiß","navajowhite":"Navajo-weiß","royalblue":"Königsblau","deeppink":"Tiefrosa","lime":"Limone","oldlace":"Alte Spitze","chartreuse":"Helles Gelbgrün","darkcyan":"Dunkelzyan","yellow":"Gelb","linen":"Leinen","olive":"Oliv","gold":"Gold","lawngreen":"Grasgrün","lightyellow":"Hellgelb","tan":"Hautfarben","darkviolet":"Dunkelviolett","lightslategrey":"Helles Schiefergrau","grey":"Grau","darkkhaki":"Dunkelkhaki","green":"Grün","deepskyblue":"Dunkles Himmelblau","aqua":"Wasserblau","sienna":"Sienna","mintcream":"Mintcreme","rosybrown":"Rosigbraun","mediumslateblue":"Mittelschieferblau ","magenta":"Magenta","lightseagreen":"Helles Meergrün","cyan":"Zyan","olivedrab":"Olivgrau","darkgoldenrod":"Dunkelgoldgelb","slateblue":"Schieferblau","mediumaquamarine":"Mittelaquamarin","lavender":"Lavendelblau","mediumseagreen":"Mittelmeeresgrün","maroon":"Kastanienbraun","darkslategray":"Dunkelschiefergrau","mediumturquoise":"Mitteltürkis ","ghostwhite":"Geisterweiß","darkblue":"Dunkelblau","mediumvioletred":"Mittelviolettrot ","brown":"Braun","lightgray":"Hellgrau","sandybrown":"Sandbraun","pink":"Rosa","firebrick":"Schamottestein","indigo":"Indigoblau","snow":"Schneeweiß","darkorchid":"Dunkelorchidee","turquoise":"Türkis","chocolate":"Schokoladenbraun","springgreen":"Frühlingsgrün","moccasin":"Mokassin","navy":"Marineblau","lemonchiffon":"Zitronenchiffon","teal":"Smaragdgrün","floralwhite":"Blütenweiß","cornflowerblue":"Kornblumenblau","paleturquoise":"Blasstürkis","purple":"Purpurrot","gainsboro":"Gainsboro","plum":"Pflaume","red":"Rot","blue":"Blau","forestgreen":"Forstgrün","darkgreen":"Dunkelgrün","honeydew":"Honigtau","darkseagreen":"Dunkles Meergrün","lightcoral":"Hellkoralle","palevioletred":"Blassviolettrot ","mediumpurple":"Mittelpurpur","saddlebrown":"Sattelbraun","darkmagenta":"Dunkelmagenta","thistle":"Distel","whitesmoke":"Rauchweiß","wheat":"Weizen","violet":"Violett","lightskyblue":"Helles Himmelblau","goldenrod":"Goldgelb","mediumblue":"Mittelblau","skyblue":"Himmelblau","crimson":"Karmesinrot","darksalmon":"Dunkellachs","darkred":"Dunkelrot","darkslategrey":"Dunkelschiefergrau","peru":"Peru","lightgrey":"Hellgrau","lightgoldenrodyellow":"Hellgoldgelb","blanchedalmond":"Mandelweiß","aliceblue":"Alice-blau","bisque":"Bisquit","slategray":"Schiefergrau","palegoldenrod":"Blassgoldgelb","darkorange":"Dunkelorange","aquamarine":"Aquamarin","lightgreen":"Hellgrün","burlywood":"Burlywood","dodgerblue":"Dodger-blau","darkgray":"Dunkelgrau","lightcyan":"Hellzyan","powderblue":"Pulverblau","blueviolet":"Blauviolett","orchid":"Orchidee","dimgray":"Blassgrau","beige":"Beige","fuchsia":"Fuchsia","lavenderblush":"Lavendelhauch","hotpink":"Knallrosa","steelblue":"Stahlblau","tomato":"Tomatenrot","lightpink":"Hellrosa","limegreen":"Limonengrün","indianred":"Indischrot","papayawhip":"Papayacreme","lightslategray":"Helles Schiefergrau","gray":"Grau","mediumorchid":"Mittelorchidee","cornsilk":"Kornseide","black":"Schwarz","seagreen":"Meeresgrün","darkslateblue":"Dunkelschieferblau","khaki":"Khaki","lightblue":"Hellblau","palegreen":"Blassgrün","azure":"Azur","peachpuff":"Pfirsich","darkolivegreen":"Dunkelolivgrün","yellowgreen":"Gelbgrün"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.de_de");dijit.nls.loading.de_de={"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.de_de");dijit.nls.common.de_de={"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.de_de");dijit.form.nls.validate.de_de={"rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. ","invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.de_de");dijit.form.nls.ComboBox.de_de={"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.de_de");dojo.cldr.nls.number.de_de={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_de-de");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.de_de");dojo.nls.colors.de_de={"lightsteelblue":"Helles Stahlblau","orangered":"Orangerot","midnightblue":"Mitternachtblau","cadetblue":"Kadettenblau","seashell":"Muschelweiß","slategrey":"Schiefergrau","coral":"Koralle","darkturquoise":"Dunkeltürkis","antiquewhite":"Antikweiß","mediumspringgreen":"Mittelfrühlingsgrün","salmon":"Lachs","darkgrey":"Dunkelgrau","ivory":"Elfenbein","greenyellow":"Grüngelb","mistyrose":"Blassrose","lightsalmon":"Helllachs","silver":"Silbergrau","dimgrey":"Blassgrau","orange":"Orange","white":"Weiß","navajowhite":"Navajo-weiß","royalblue":"Königsblau","deeppink":"Tiefrosa","lime":"Limone","oldlace":"Alte Spitze","chartreuse":"Helles Gelbgrün","darkcyan":"Dunkelzyan","yellow":"Gelb","linen":"Leinen","olive":"Oliv","gold":"Gold","lawngreen":"Grasgrün","lightyellow":"Hellgelb","tan":"Hautfarben","darkviolet":"Dunkelviolett","lightslategrey":"Helles Schiefergrau","grey":"Grau","darkkhaki":"Dunkelkhaki","green":"Grün","deepskyblue":"Dunkles Himmelblau","aqua":"Wasserblau","sienna":"Sienna","mintcream":"Mintcreme","rosybrown":"Rosigbraun","mediumslateblue":"Mittelschieferblau ","magenta":"Magenta","lightseagreen":"Helles Meergrün","cyan":"Zyan","olivedrab":"Olivgrau","darkgoldenrod":"Dunkelgoldgelb","slateblue":"Schieferblau","mediumaquamarine":"Mittelaquamarin","lavender":"Lavendelblau","mediumseagreen":"Mittelmeeresgrün","maroon":"Kastanienbraun","darkslategray":"Dunkelschiefergrau","mediumturquoise":"Mitteltürkis ","ghostwhite":"Geisterweiß","darkblue":"Dunkelblau","mediumvioletred":"Mittelviolettrot ","brown":"Braun","lightgray":"Hellgrau","sandybrown":"Sandbraun","pink":"Rosa","firebrick":"Schamottestein","indigo":"Indigoblau","snow":"Schneeweiß","darkorchid":"Dunkelorchidee","turquoise":"Türkis","chocolate":"Schokoladenbraun","springgreen":"Frühlingsgrün","moccasin":"Mokassin","navy":"Marineblau","lemonchiffon":"Zitronenchiffon","teal":"Smaragdgrün","floralwhite":"Blütenweiß","cornflowerblue":"Kornblumenblau","paleturquoise":"Blasstürkis","purple":"Purpurrot","gainsboro":"Gainsboro","plum":"Pflaume","red":"Rot","blue":"Blau","forestgreen":"Forstgrün","darkgreen":"Dunkelgrün","honeydew":"Honigtau","darkseagreen":"Dunkles Meergrün","lightcoral":"Hellkoralle","palevioletred":"Blassviolettrot ","mediumpurple":"Mittelpurpur","saddlebrown":"Sattelbraun","darkmagenta":"Dunkelmagenta","thistle":"Distel","whitesmoke":"Rauchweiß","wheat":"Weizen","violet":"Violett","lightskyblue":"Helles Himmelblau","goldenrod":"Goldgelb","mediumblue":"Mittelblau","skyblue":"Himmelblau","crimson":"Karmesinrot","darksalmon":"Dunkellachs","darkred":"Dunkelrot","darkslategrey":"Dunkelschiefergrau","peru":"Peru","lightgrey":"Hellgrau","lightgoldenrodyellow":"Hellgoldgelb","blanchedalmond":"Mandelweiß","aliceblue":"Alice-blau","bisque":"Bisquit","slategray":"Schiefergrau","palegoldenrod":"Blassgoldgelb","darkorange":"Dunkelorange","aquamarine":"Aquamarin","lightgreen":"Hellgrün","burlywood":"Burlywood","dodgerblue":"Dodger-blau","darkgray":"Dunkelgrau","lightcyan":"Hellzyan","powderblue":"Pulverblau","blueviolet":"Blauviolett","orchid":"Orchidee","dimgray":"Blassgrau","beige":"Beige","fuchsia":"Fuchsia","lavenderblush":"Lavendelhauch","hotpink":"Knallrosa","steelblue":"Stahlblau","tomato":"Tomatenrot","lightpink":"Hellrosa","limegreen":"Limonengrün","indianred":"Indischrot","papayawhip":"Papayacreme","lightslategray":"Helles Schiefergrau","gray":"Grau","mediumorchid":"Mittelorchidee","cornsilk":"Kornseide","black":"Schwarz","seagreen":"Meeresgrün","darkslateblue":"Dunkelschieferblau","khaki":"Khaki","lightblue":"Hellblau","palegreen":"Blassgrün","azure":"Azur","peachpuff":"Pfirsich","darkolivegreen":"Dunkelolivgrün","yellowgreen":"Gelbgrün"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.de_de");dijit.nls.loading.de_de={"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.de_de");dijit.nls.common.de_de={"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.de_de");dijit.form.nls.validate.de_de={"rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. ","invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.de_de");dijit.form.nls.ComboBox.de_de={"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.de_de");dojo.cldr.nls.number.de_de={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_de.js b/lib/dojo/nls/tt-rss-layer_de.js index 5500fc19b..9d0939e4a 100644 --- a/lib/dojo/nls/tt-rss-layer_de.js +++ b/lib/dojo/nls/tt-rss-layer_de.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_de");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.de");dojo.nls.colors.de={"lightsteelblue":"Helles Stahlblau","orangered":"Orangerot","midnightblue":"Mitternachtblau","cadetblue":"Kadettenblau","seashell":"Muschelweiß","slategrey":"Schiefergrau","coral":"Koralle","darkturquoise":"Dunkeltürkis","antiquewhite":"Antikweiß","mediumspringgreen":"Mittelfrühlingsgrün","salmon":"Lachs","darkgrey":"Dunkelgrau","ivory":"Elfenbein","greenyellow":"Grüngelb","mistyrose":"Blassrose","lightsalmon":"Helllachs","silver":"Silbergrau","dimgrey":"Blassgrau","orange":"Orange","white":"Weiß","navajowhite":"Navajo-weiß","royalblue":"Königsblau","deeppink":"Tiefrosa","lime":"Limone","oldlace":"Alte Spitze","chartreuse":"Helles Gelbgrün","darkcyan":"Dunkelzyan","yellow":"Gelb","linen":"Leinen","olive":"Oliv","gold":"Gold","lawngreen":"Grasgrün","lightyellow":"Hellgelb","tan":"Hautfarben","darkviolet":"Dunkelviolett","lightslategrey":"Helles Schiefergrau","grey":"Grau","darkkhaki":"Dunkelkhaki","green":"Grün","deepskyblue":"Dunkles Himmelblau","aqua":"Wasserblau","sienna":"Sienna","mintcream":"Mintcreme","rosybrown":"Rosigbraun","mediumslateblue":"Mittelschieferblau ","magenta":"Magenta","lightseagreen":"Helles Meergrün","cyan":"Zyan","olivedrab":"Olivgrau","darkgoldenrod":"Dunkelgoldgelb","slateblue":"Schieferblau","mediumaquamarine":"Mittelaquamarin","lavender":"Lavendelblau","mediumseagreen":"Mittelmeeresgrün","maroon":"Kastanienbraun","darkslategray":"Dunkelschiefergrau","mediumturquoise":"Mitteltürkis ","ghostwhite":"Geisterweiß","darkblue":"Dunkelblau","mediumvioletred":"Mittelviolettrot ","brown":"Braun","lightgray":"Hellgrau","sandybrown":"Sandbraun","pink":"Rosa","firebrick":"Schamottestein","indigo":"Indigoblau","snow":"Schneeweiß","darkorchid":"Dunkelorchidee","turquoise":"Türkis","chocolate":"Schokoladenbraun","springgreen":"Frühlingsgrün","moccasin":"Mokassin","navy":"Marineblau","lemonchiffon":"Zitronenchiffon","teal":"Smaragdgrün","floralwhite":"Blütenweiß","cornflowerblue":"Kornblumenblau","paleturquoise":"Blasstürkis","purple":"Purpurrot","gainsboro":"Gainsboro","plum":"Pflaume","red":"Rot","blue":"Blau","forestgreen":"Forstgrün","darkgreen":"Dunkelgrün","honeydew":"Honigtau","darkseagreen":"Dunkles Meergrün","lightcoral":"Hellkoralle","palevioletred":"Blassviolettrot ","mediumpurple":"Mittelpurpur","saddlebrown":"Sattelbraun","darkmagenta":"Dunkelmagenta","thistle":"Distel","whitesmoke":"Rauchweiß","wheat":"Weizen","violet":"Violett","lightskyblue":"Helles Himmelblau","goldenrod":"Goldgelb","mediumblue":"Mittelblau","skyblue":"Himmelblau","crimson":"Karmesinrot","darksalmon":"Dunkellachs","darkred":"Dunkelrot","darkslategrey":"Dunkelschiefergrau","peru":"Peru","lightgrey":"Hellgrau","lightgoldenrodyellow":"Hellgoldgelb","blanchedalmond":"Mandelweiß","aliceblue":"Alice-blau","bisque":"Bisquit","slategray":"Schiefergrau","palegoldenrod":"Blassgoldgelb","darkorange":"Dunkelorange","aquamarine":"Aquamarin","lightgreen":"Hellgrün","burlywood":"Burlywood","dodgerblue":"Dodger-blau","darkgray":"Dunkelgrau","lightcyan":"Hellzyan","powderblue":"Pulverblau","blueviolet":"Blauviolett","orchid":"Orchidee","dimgray":"Blassgrau","beige":"Beige","fuchsia":"Fuchsia","lavenderblush":"Lavendelhauch","hotpink":"Knallrosa","steelblue":"Stahlblau","tomato":"Tomatenrot","lightpink":"Hellrosa","limegreen":"Limonengrün","indianred":"Indischrot","papayawhip":"Papayacreme","lightslategray":"Helles Schiefergrau","gray":"Grau","mediumorchid":"Mittelorchidee","cornsilk":"Kornseide","black":"Schwarz","seagreen":"Meeresgrün","darkslateblue":"Dunkelschieferblau","khaki":"Khaki","lightblue":"Hellblau","palegreen":"Blassgrün","azure":"Azur","peachpuff":"Pfirsich","darkolivegreen":"Dunkelolivgrün","yellowgreen":"Gelbgrün"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.de");dijit.nls.loading.de={"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.de");dijit.nls.common.de={"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.de");dijit.form.nls.validate.de={"rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. ","invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.de");dijit.form.nls.ComboBox.de={"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.de");dojo.cldr.nls.number.de={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_de");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.de");dojo.nls.colors.de={"lightsteelblue":"Helles Stahlblau","orangered":"Orangerot","midnightblue":"Mitternachtblau","cadetblue":"Kadettenblau","seashell":"Muschelweiß","slategrey":"Schiefergrau","coral":"Koralle","darkturquoise":"Dunkeltürkis","antiquewhite":"Antikweiß","mediumspringgreen":"Mittelfrühlingsgrün","salmon":"Lachs","darkgrey":"Dunkelgrau","ivory":"Elfenbein","greenyellow":"Grüngelb","mistyrose":"Blassrose","lightsalmon":"Helllachs","silver":"Silbergrau","dimgrey":"Blassgrau","orange":"Orange","white":"Weiß","navajowhite":"Navajo-weiß","royalblue":"Königsblau","deeppink":"Tiefrosa","lime":"Limone","oldlace":"Alte Spitze","chartreuse":"Helles Gelbgrün","darkcyan":"Dunkelzyan","yellow":"Gelb","linen":"Leinen","olive":"Oliv","gold":"Gold","lawngreen":"Grasgrün","lightyellow":"Hellgelb","tan":"Hautfarben","darkviolet":"Dunkelviolett","lightslategrey":"Helles Schiefergrau","grey":"Grau","darkkhaki":"Dunkelkhaki","green":"Grün","deepskyblue":"Dunkles Himmelblau","aqua":"Wasserblau","sienna":"Sienna","mintcream":"Mintcreme","rosybrown":"Rosigbraun","mediumslateblue":"Mittelschieferblau ","magenta":"Magenta","lightseagreen":"Helles Meergrün","cyan":"Zyan","olivedrab":"Olivgrau","darkgoldenrod":"Dunkelgoldgelb","slateblue":"Schieferblau","mediumaquamarine":"Mittelaquamarin","lavender":"Lavendelblau","mediumseagreen":"Mittelmeeresgrün","maroon":"Kastanienbraun","darkslategray":"Dunkelschiefergrau","mediumturquoise":"Mitteltürkis ","ghostwhite":"Geisterweiß","darkblue":"Dunkelblau","mediumvioletred":"Mittelviolettrot ","brown":"Braun","lightgray":"Hellgrau","sandybrown":"Sandbraun","pink":"Rosa","firebrick":"Schamottestein","indigo":"Indigoblau","snow":"Schneeweiß","darkorchid":"Dunkelorchidee","turquoise":"Türkis","chocolate":"Schokoladenbraun","springgreen":"Frühlingsgrün","moccasin":"Mokassin","navy":"Marineblau","lemonchiffon":"Zitronenchiffon","teal":"Smaragdgrün","floralwhite":"Blütenweiß","cornflowerblue":"Kornblumenblau","paleturquoise":"Blasstürkis","purple":"Purpurrot","gainsboro":"Gainsboro","plum":"Pflaume","red":"Rot","blue":"Blau","forestgreen":"Forstgrün","darkgreen":"Dunkelgrün","honeydew":"Honigtau","darkseagreen":"Dunkles Meergrün","lightcoral":"Hellkoralle","palevioletred":"Blassviolettrot ","mediumpurple":"Mittelpurpur","saddlebrown":"Sattelbraun","darkmagenta":"Dunkelmagenta","thistle":"Distel","whitesmoke":"Rauchweiß","wheat":"Weizen","violet":"Violett","lightskyblue":"Helles Himmelblau","goldenrod":"Goldgelb","mediumblue":"Mittelblau","skyblue":"Himmelblau","crimson":"Karmesinrot","darksalmon":"Dunkellachs","darkred":"Dunkelrot","darkslategrey":"Dunkelschiefergrau","peru":"Peru","lightgrey":"Hellgrau","lightgoldenrodyellow":"Hellgoldgelb","blanchedalmond":"Mandelweiß","aliceblue":"Alice-blau","bisque":"Bisquit","slategray":"Schiefergrau","palegoldenrod":"Blassgoldgelb","darkorange":"Dunkelorange","aquamarine":"Aquamarin","lightgreen":"Hellgrün","burlywood":"Burlywood","dodgerblue":"Dodger-blau","darkgray":"Dunkelgrau","lightcyan":"Hellzyan","powderblue":"Pulverblau","blueviolet":"Blauviolett","orchid":"Orchidee","dimgray":"Blassgrau","beige":"Beige","fuchsia":"Fuchsia","lavenderblush":"Lavendelhauch","hotpink":"Knallrosa","steelblue":"Stahlblau","tomato":"Tomatenrot","lightpink":"Hellrosa","limegreen":"Limonengrün","indianred":"Indischrot","papayawhip":"Papayacreme","lightslategray":"Helles Schiefergrau","gray":"Grau","mediumorchid":"Mittelorchidee","cornsilk":"Kornseide","black":"Schwarz","seagreen":"Meeresgrün","darkslateblue":"Dunkelschieferblau","khaki":"Khaki","lightblue":"Hellblau","palegreen":"Blassgrün","azure":"Azur","peachpuff":"Pfirsich","darkolivegreen":"Dunkelolivgrün","yellowgreen":"Gelbgrün"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.de");dijit.nls.loading.de={"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.de");dijit.nls.common.de={"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.de");dijit.form.nls.validate.de={"rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. ","invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.de");dijit.form.nls.ComboBox.de={"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.de");dojo.cldr.nls.number.de={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_el.js b/lib/dojo/nls/tt-rss-layer_el.js index 0a4594e3c..379759746 100644 --- a/lib/dojo/nls/tt-rss-layer_el.js +++ b/lib/dojo/nls/tt-rss-layer_el.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_el");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.el");dojo.nls.colors.el={"lightsteelblue":"ανοιχτό μπλε ατσαλιού","orangered":"πορτοκαλοκόκκινο","midnightblue":"πολύ σκούρο μπλε","cadetblue":"μπλε του στρατού","seashell":"κοχύλι","slategrey":"μεταλλικό γκρι","coral":"κοραλί","darkturquoise":"σκούρο τυρκουάζ","antiquewhite":"ξεθωριασμένο λευκό","mediumspringgreen":"μεσαίο πράσινο της άνοιξης","salmon":"σομόν","darkgrey":"σκούρο γκρι","ivory":"ιβουάρ","greenyellow":"πρασινοκίτρινο","mistyrose":"τριανταφυλλί","lightsalmon":"ανοιχτό σομόν","silver":"ασημί","dimgrey":"αχνό γκρι","orange":"πορτοκαλί","white":"λευκό","navajowhite":"άσπρο Ναβάχο","royalblue":"έντονο μπλε","deeppink":"βαθύ ροζ","lime":"λαχανί","oldlace":"εκρού","chartreuse":"φωτεινό κιτρινοπράσινο","darkcyan":"σκούρο κυανό","yellow":"κίτρινο","linen":"σπαγγί","olive":"πράσινο λαδί","gold":"χρυσαφί","lawngreen":"σκούρο πράσινο","lightyellow":"ανοιχτό κίτρινο","tan":"ώχρα","darkviolet":"σκούρο βιολετί","lightslategrey":"ανοιχτό μεταλλικό γκρι","grey":"γκρι","darkkhaki":"σκούρο χακί","green":"πράσινο","deepskyblue":"βαθύ μπλε το ουρανού","aqua":"γαλάζιο","sienna":"καφεκίτρινο","mintcream":"βεραμάν","rosybrown":"καστανό","mediumslateblue":"μεσαίο μεταλλικό μπλε","magenta":"ματζέντα","lightseagreen":"ανοιχτό πράσινο της θάλασσας","cyan":"κυανό","olivedrab":"λαδί","darkgoldenrod":"σκούρο χρυσοκίτρινο","slateblue":"μεταλλικό μπλε","mediumaquamarine":"μεσαίο γαλαζοπράσινο","lavender":"λίλα","mediumseagreen":"μεσαίο πράσινο της θάλασσας","maroon":"βυσσινί","darkslategray":"σκούρο μεταλλικό γκρι","mediumturquoise":"μεσαίο τυρκουάζ","ghostwhite":"άσπρο","darkblue":"σκούρο μπλε","mediumvioletred":"μεσαίο κόκκινο βιολετί","brown":"καφέ","lightgray":"ανοιχτό γκρι","sandybrown":"μπεζ της άμμου","pink":"ροζ","firebrick":"κεραμιδί","indigo":"λουλακί","snow":"χιονί","darkorchid":"σκούρα ορχιδέα","turquoise":"τυρκουάζ","chocolate":"σοκολατί","springgreen":"πράσινο της άνοιξης","moccasin":"μόκα","navy":"μπλε του ναυτικού","lemonchiffon":"λεμονί","teal":"πετρόλ","floralwhite":"λευκό των ανθών","cornflowerblue":"μεσαίο μπλε","paleturquoise":"αχνό τυρκουάζ","purple":"μωβ","gainsboro":"γκρι σιέλ","plum":"δαμασκηνί","red":"κόκκινο","blue":"μπλε","forestgreen":"πράσινο του δάσους","darkgreen":"σκούρο πράσινο","honeydew":"μελί","darkseagreen":"σκούρο πράσινο της θάλασσας","lightcoral":"ανοιχτό κοραλί","palevioletred":"αχνό κόκκινο βιολετί","mediumpurple":"μεσαίο μωβ","saddlebrown":"βαθύ καφέ","darkmagenta":"σκούρο ματζέντα","thistle":"μωβ βιολετί","whitesmoke":"λευκός καπνός","wheat":"σταρένιο","violet":"βιολετί","lightskyblue":"ανοιχτό μπλε το ουρανού","goldenrod":"χρυσοκίτρινο","mediumblue":"μεσαίο μπλε","skyblue":"μπλε του ουρανού","crimson":"βαθύ κόκκινο","darksalmon":"σκούρο σομόν","darkred":"σκούρο κόκκινο","darkslategrey":"σκούρο μεταλλικό γκρι","peru":"περού","lightgrey":"ανοιχτό γκρι","lightgoldenrodyellow":"ανοιχτό χρυσοκίτρινο","blanchedalmond":"ζαχαρί","aliceblue":"σιέλ","bisque":"σκούρο κρεμ","slategray":"μεταλλικό γκρι","palegoldenrod":"αχνό χρυσοκίτρινο","darkorange":"σκούρο πορτοκαλί","aquamarine":"γαλαζοπράσινο","lightgreen":"ανοιχτό πράσινο","burlywood":"καφέ του ξύλου","dodgerblue":"σκούρο ελεκτρίκ","darkgray":"σκούρο γκρι","lightcyan":"ανοιχτό κυανό","powderblue":"αχνό μπλε","blueviolet":"βιολετί","orchid":"ορχιδέα","dimgray":"αχνό γκρι","beige":"μπεζ","fuchsia":"φούξια","lavenderblush":"μωβ λεβάντας","hotpink":"έντονο ροζ","steelblue":"μπλε ατσαλιού","tomato":"κόκκινο της ντομάτας","lightpink":"ανοιχτό ροζ","limegreen":"πράσινο λαχανί","indianred":"ινδικό κόκκινο","papayawhip":"αχνό ροζ","lightslategray":"ανοιχτό μεταλλικό γκρι","gray":"γκρι","mediumorchid":"μεσαία ορχιδέα","cornsilk":"ασημί του καλαμποκιού","black":"μαύρο","seagreen":"πράσινο της θάλασσας","darkslateblue":"σκούρο μεταλλικό μπλε","khaki":"χακί","lightblue":"ανοιχτό μπλε","palegreen":"αχνό πράσινο","azure":"μπλε του ουρανού","peachpuff":"ροδακινί","darkolivegreen":"σκούρο πράσινο λαδί","yellowgreen":"κιτρινοπράσινο"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.el");dijit.nls.loading.el={"loadingState":"Φόρτωση...","errorState":"Σας ζητούμε συγνώμη, παρουσιάστηκε σφάλμα"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.el");dijit.nls.common.el={"buttonOk":"ΟΚ","buttonCancel":"Ακύρωση","buttonSave":"Αποθήκευση","itemClose":"Κλείσιμο"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.el");dijit.form.nls.validate.el={"rangeMessage":"Η τιμή αυτή δεν ανήκει στο εύρος έγκυρων τιμών.","invalidMessage":"Η τιμή που καταχωρήσατε δεν είναι έγκυρη.","missingMessage":"Η τιμή αυτή πρέπει απαραίτητα να καθοριστεί."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.el");dijit.form.nls.ComboBox.el={"previousMessage":"Προηγούμενες επιλογές","nextMessage":"Περισσότερες επιλογές"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.el");dojo.cldr.nls.number.el={"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","currencyFormat":"#,##0.00 ¤","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","decimalFormat":"#,##0.###","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_el");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.el");dojo.nls.colors.el={"lightsteelblue":"ανοιχτό μπλε ατσαλιού","orangered":"πορτοκαλοκόκκινο","midnightblue":"πολύ σκούρο μπλε","cadetblue":"μπλε του στρατού","seashell":"κοχύλι","slategrey":"μεταλλικό γκρι","coral":"κοραλί","darkturquoise":"σκούρο τυρκουάζ","antiquewhite":"ξεθωριασμένο λευκό","mediumspringgreen":"μεσαίο πράσινο της άνοιξης","salmon":"σομόν","darkgrey":"σκούρο γκρι","ivory":"ιβουάρ","greenyellow":"πρασινοκίτρινο","mistyrose":"τριανταφυλλί","lightsalmon":"ανοιχτό σομόν","silver":"ασημί","dimgrey":"αχνό γκρι","orange":"πορτοκαλί","white":"λευκό","navajowhite":"άσπρο Ναβάχο","royalblue":"έντονο μπλε","deeppink":"βαθύ ροζ","lime":"λαχανί","oldlace":"εκρού","chartreuse":"φωτεινό κιτρινοπράσινο","darkcyan":"σκούρο κυανό","yellow":"κίτρινο","linen":"σπαγγί","olive":"πράσινο λαδί","gold":"χρυσαφί","lawngreen":"σκούρο πράσινο","lightyellow":"ανοιχτό κίτρινο","tan":"ώχρα","darkviolet":"σκούρο βιολετί","lightslategrey":"ανοιχτό μεταλλικό γκρι","grey":"γκρι","darkkhaki":"σκούρο χακί","green":"πράσινο","deepskyblue":"βαθύ μπλε το ουρανού","aqua":"γαλάζιο","sienna":"καφεκίτρινο","mintcream":"βεραμάν","rosybrown":"καστανό","mediumslateblue":"μεσαίο μεταλλικό μπλε","magenta":"ματζέντα","lightseagreen":"ανοιχτό πράσινο της θάλασσας","cyan":"κυανό","olivedrab":"λαδί","darkgoldenrod":"σκούρο χρυσοκίτρινο","slateblue":"μεταλλικό μπλε","mediumaquamarine":"μεσαίο γαλαζοπράσινο","lavender":"λίλα","mediumseagreen":"μεσαίο πράσινο της θάλασσας","maroon":"βυσσινί","darkslategray":"σκούρο μεταλλικό γκρι","mediumturquoise":"μεσαίο τυρκουάζ","ghostwhite":"άσπρο","darkblue":"σκούρο μπλε","mediumvioletred":"μεσαίο κόκκινο βιολετί","brown":"καφέ","lightgray":"ανοιχτό γκρι","sandybrown":"μπεζ της άμμου","pink":"ροζ","firebrick":"κεραμιδί","indigo":"λουλακί","snow":"χιονί","darkorchid":"σκούρα ορχιδέα","turquoise":"τυρκουάζ","chocolate":"σοκολατί","springgreen":"πράσινο της άνοιξης","moccasin":"μόκα","navy":"μπλε του ναυτικού","lemonchiffon":"λεμονί","teal":"πετρόλ","floralwhite":"λευκό των ανθών","cornflowerblue":"μεσαίο μπλε","paleturquoise":"αχνό τυρκουάζ","purple":"μωβ","gainsboro":"γκρι σιέλ","plum":"δαμασκηνί","red":"κόκκινο","blue":"μπλε","forestgreen":"πράσινο του δάσους","darkgreen":"σκούρο πράσινο","honeydew":"μελί","darkseagreen":"σκούρο πράσινο της θάλασσας","lightcoral":"ανοιχτό κοραλί","palevioletred":"αχνό κόκκινο βιολετί","mediumpurple":"μεσαίο μωβ","saddlebrown":"βαθύ καφέ","darkmagenta":"σκούρο ματζέντα","thistle":"μωβ βιολετί","whitesmoke":"λευκός καπνός","wheat":"σταρένιο","violet":"βιολετί","lightskyblue":"ανοιχτό μπλε το ουρανού","goldenrod":"χρυσοκίτρινο","mediumblue":"μεσαίο μπλε","skyblue":"μπλε του ουρανού","crimson":"βαθύ κόκκινο","darksalmon":"σκούρο σομόν","darkred":"σκούρο κόκκινο","darkslategrey":"σκούρο μεταλλικό γκρι","peru":"περού","lightgrey":"ανοιχτό γκρι","lightgoldenrodyellow":"ανοιχτό χρυσοκίτρινο","blanchedalmond":"ζαχαρί","aliceblue":"σιέλ","bisque":"σκούρο κρεμ","slategray":"μεταλλικό γκρι","palegoldenrod":"αχνό χρυσοκίτρινο","darkorange":"σκούρο πορτοκαλί","aquamarine":"γαλαζοπράσινο","lightgreen":"ανοιχτό πράσινο","burlywood":"καφέ του ξύλου","dodgerblue":"σκούρο ελεκτρίκ","darkgray":"σκούρο γκρι","lightcyan":"ανοιχτό κυανό","powderblue":"αχνό μπλε","blueviolet":"βιολετί","orchid":"ορχιδέα","dimgray":"αχνό γκρι","beige":"μπεζ","fuchsia":"φούξια","lavenderblush":"μωβ λεβάντας","hotpink":"έντονο ροζ","steelblue":"μπλε ατσαλιού","tomato":"κόκκινο της ντομάτας","lightpink":"ανοιχτό ροζ","limegreen":"πράσινο λαχανί","indianred":"ινδικό κόκκινο","papayawhip":"αχνό ροζ","lightslategray":"ανοιχτό μεταλλικό γκρι","gray":"γκρι","mediumorchid":"μεσαία ορχιδέα","cornsilk":"ασημί του καλαμποκιού","black":"μαύρο","seagreen":"πράσινο της θάλασσας","darkslateblue":"σκούρο μεταλλικό μπλε","khaki":"χακί","lightblue":"ανοιχτό μπλε","palegreen":"αχνό πράσινο","azure":"μπλε του ουρανού","peachpuff":"ροδακινί","darkolivegreen":"σκούρο πράσινο λαδί","yellowgreen":"κιτρινοπράσινο"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.el");dijit.nls.loading.el={"loadingState":"Φόρτωση...","errorState":"Σας ζητούμε συγνώμη, παρουσιάστηκε σφάλμα"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.el");dijit.nls.common.el={"buttonOk":"ΟΚ","buttonCancel":"Ακύρωση","buttonSave":"Αποθήκευση","itemClose":"Κλείσιμο"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.el");dijit.form.nls.validate.el={"rangeMessage":"Η τιμή αυτή δεν ανήκει στο εύρος έγκυρων τιμών.","invalidMessage":"Η τιμή που καταχωρήσατε δεν είναι έγκυρη.","missingMessage":"Η τιμή αυτή πρέπει απαραίτητα να καθοριστεί."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.el");dijit.form.nls.ComboBox.el={"previousMessage":"Προηγούμενες επιλογές","nextMessage":"Περισσότερες επιλογές"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.el");dojo.cldr.nls.number.el={"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","currencyFormat":"#,##0.00 ¤","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","decimalFormat":"#,##0.###","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_en-gb.js b/lib/dojo/nls/tt-rss-layer_en-gb.js index 382f40413..729bd63b5 100644 --- a/lib/dojo/nls/tt-rss-layer_en-gb.js +++ b/lib/dojo/nls/tt-rss-layer_en-gb.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_en-gb");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en_gb");dojo.nls.colors.en_gb={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en_gb");dijit.nls.loading.en_gb={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_gb");dijit.nls.common.en_gb={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en_gb");dijit.form.nls.validate.en_gb={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en_gb");dijit.form.nls.ComboBox.en_gb={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en_gb");dojo.cldr.nls.number.en_gb={"currencyFormat":"¤#,##0.00","group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_en-gb");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en_gb");dojo.nls.colors.en_gb={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en_gb");dijit.nls.loading.en_gb={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_gb");dijit.nls.common.en_gb={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en_gb");dijit.form.nls.validate.en_gb={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en_gb");dijit.form.nls.ComboBox.en_gb={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en_gb");dojo.cldr.nls.number.en_gb={"currencyFormat":"¤#,##0.00","group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","decimalFormat-short":"000T","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_en-us.js b/lib/dojo/nls/tt-rss-layer_en-us.js index af4f269ee..d8be077fe 100644 --- a/lib/dojo/nls/tt-rss-layer_en-us.js +++ b/lib/dojo/nls/tt-rss-layer_en-us.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_en-us");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en_us");dojo.nls.colors.en_us={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en_us");dijit.nls.loading.en_us={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_us");dijit.nls.common.en_us={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en_us");dijit.form.nls.validate.en_us={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en_us");dijit.form.nls.ComboBox.en_us={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en_us");dojo.cldr.nls.number.en_us={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_en-us");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en_us");dojo.nls.colors.en_us={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en_us");dijit.nls.loading.en_us={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_us");dijit.nls.common.en_us={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en_us");dijit.form.nls.validate.en_us={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en_us");dijit.form.nls.ComboBox.en_us={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en_us");dojo.cldr.nls.number.en_us={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-short":"000T","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_en.js b/lib/dojo/nls/tt-rss-layer_en.js index b1eac5b9d..2cb4b5732 100644 --- a/lib/dojo/nls/tt-rss-layer_en.js +++ b/lib/dojo/nls/tt-rss-layer_en.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_en");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en");dojo.nls.colors.en={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en");dijit.nls.loading.en={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en");dijit.nls.common.en={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en");dijit.form.nls.validate.en={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en");dijit.form.nls.ComboBox.en={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en");dojo.cldr.nls.number.en={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_en");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en");dojo.nls.colors.en={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en");dijit.nls.loading.en={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en");dijit.nls.common.en={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en");dijit.form.nls.validate.en={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en");dijit.form.nls.ComboBox.en={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en");dojo.cldr.nls.number.en={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","decimalFormat-short":"000T","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_es-es.js b/lib/dojo/nls/tt-rss-layer_es-es.js index 971c82e96..832d1fbba 100644 --- a/lib/dojo/nls/tt-rss-layer_es-es.js +++ b/lib/dojo/nls/tt-rss-layer_es-es.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_es-es");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.es_es");dojo.nls.colors.es_es={"lightsteelblue":"azul acero claro","orangered":"rojo anaranjado","midnightblue":"azul medianoche","cadetblue":"azul cadete","seashell":"blanco marfil","slategrey":"gris pizarra","coral":"coral","darkturquoise":"turquesa oscuro","antiquewhite":"blanco antiguo","mediumspringgreen":"verde primavera medio","salmon":"salmón","darkgrey":"gris oscuro","ivory":"marfil","greenyellow":"amarillo verdoso","mistyrose":"rosa difuminado","lightsalmon":"salmón claro","silver":"plateado","dimgrey":"gris marengo","orange":"naranja","white":"blanco","navajowhite":"blanco navajo","royalblue":"azul real","deeppink":"rosa fuerte","lime":"lima","oldlace":"encaje antiguo","chartreuse":"verde pálido 2","darkcyan":"cian oscuro","yellow":"amarillo","linen":"blanco arena","olive":"verde oliva","gold":"oro","lawngreen":"verde césped","lightyellow":"amarillo claro","tan":"canela","darkviolet":"violeta oscuro","lightslategrey":"gris pizarra claro","grey":"gris","darkkhaki":"caqui oscuro","green":"verde","deepskyblue":"azul cielo fuerte","aqua":"aguamarina","sienna":"siena","mintcream":"crema menta","rosybrown":"marrón rosáceo","mediumslateblue":"azul pizarra medio","magenta":"magenta","lightseagreen":"verde mar claro","cyan":"cian","olivedrab":"verde oliva pardusco","darkgoldenrod":"ocre oscuro","slateblue":"azul pizarra","mediumaquamarine":"aguamarina medio","lavender":"lavanda","mediumseagreen":"verde mar medio","maroon":"granate","darkslategray":"gris pizarra oscuro","mediumturquoise":"turquesa medio","ghostwhite":"blanco ligero","darkblue":"azul oscuro","mediumvioletred":"rojo violáceo medio","brown":"marrón","lightgray":"gris claro","sandybrown":"marrón arcilla","pink":"rosa","firebrick":"teja","indigo":"añil","snow":"nieve","darkorchid":"orquídea oscuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde fuerte","moccasin":"arena","navy":"azul marino","lemonchiffon":"amarillo pastel","teal":"verde azulado","floralwhite":"blanco manteca","cornflowerblue":"azul aciano","paleturquoise":"turquesa pálido","purple":"púrpura","gainsboro":"azul gainsboro","plum":"ciruela","red":"rojo","blue":"azul","forestgreen":"verde pino","darkgreen":"verde oscuro","honeydew":"flor de rocío","darkseagreen":"verde mar oscuro","lightcoral":"coral claro","palevioletred":"rojo violáceo pálido","mediumpurple":"púrpura medio","saddlebrown":"cuero","darkmagenta":"magenta oscuro","thistle":"cardo","whitesmoke":"blanco ahumado","wheat":"trigo","violet":"violeta","lightskyblue":"azul cielo claro","goldenrod":"ocre","mediumblue":"azul medio","skyblue":"azul cielo","crimson":"carmesí","darksalmon":"salmón oscuro","darkred":"rojo oscuro","darkslategrey":"gris pizarra oscuro","peru":"perú","lightgrey":"gris claro","lightgoldenrodyellow":"ocre claro","blanchedalmond":"almendra pálido","aliceblue":"blanco azulado","bisque":"miel","slategray":"gris pizarra","palegoldenrod":"ocre pálido","darkorange":"naranja oscuro","aquamarine":"aguamarina 2","lightgreen":"verde claro","burlywood":"madera","dodgerblue":"azul fuerte","darkgray":"gris oscuro","lightcyan":"cian claro","powderblue":"azul suave","blueviolet":"azul violáceo","orchid":"orquídea","dimgray":"gris marengo","beige":"beige","fuchsia":"fucsia","lavenderblush":"lavanda rosácea","hotpink":"rosa oscuro","steelblue":"azul acero","tomato":"tomate","lightpink":"rosa claro","limegreen":"lima limón","indianred":"rojo teja","papayawhip":"papaya claro","lightslategray":"gris pizarra claro","gray":"gris","mediumorchid":"orquídea medio","cornsilk":"crudo","black":"negro","seagreen":"verde mar","darkslateblue":"azul pizarra oscuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"blanco cielo","peachpuff":"melocotón","darkolivegreen":"verde oliva oscuro","yellowgreen":"verde amarillento"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.es_es");dijit.nls.loading.es_es={"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.es_es");dijit.nls.common.es_es={"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.es_es");dijit.form.nls.validate.es_es={"rangeMessage":"Este valor está fuera del intervalo.","invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.es_es");dijit.form.nls.ComboBox.es_es={"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.es_es");dojo.cldr.nls.number.es_es={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_es-es");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.es_es");dojo.nls.colors.es_es={"lightsteelblue":"azul acero claro","orangered":"rojo anaranjado","midnightblue":"azul medianoche","cadetblue":"azul cadete","seashell":"blanco marfil","slategrey":"gris pizarra","coral":"coral","darkturquoise":"turquesa oscuro","antiquewhite":"blanco antiguo","mediumspringgreen":"verde primavera medio","salmon":"salmón","darkgrey":"gris oscuro","ivory":"marfil","greenyellow":"amarillo verdoso","mistyrose":"rosa difuminado","lightsalmon":"salmón claro","silver":"plateado","dimgrey":"gris marengo","orange":"naranja","white":"blanco","navajowhite":"blanco navajo","royalblue":"azul real","deeppink":"rosa fuerte","lime":"lima","oldlace":"encaje antiguo","chartreuse":"verde pálido 2","darkcyan":"cian oscuro","yellow":"amarillo","linen":"blanco arena","olive":"verde oliva","gold":"oro","lawngreen":"verde césped","lightyellow":"amarillo claro","tan":"canela","darkviolet":"violeta oscuro","lightslategrey":"gris pizarra claro","grey":"gris","darkkhaki":"caqui oscuro","green":"verde","deepskyblue":"azul cielo fuerte","aqua":"aguamarina","sienna":"siena","mintcream":"crema menta","rosybrown":"marrón rosáceo","mediumslateblue":"azul pizarra medio","magenta":"magenta","lightseagreen":"verde mar claro","cyan":"cian","olivedrab":"verde oliva pardusco","darkgoldenrod":"ocre oscuro","slateblue":"azul pizarra","mediumaquamarine":"aguamarina medio","lavender":"lavanda","mediumseagreen":"verde mar medio","maroon":"granate","darkslategray":"gris pizarra oscuro","mediumturquoise":"turquesa medio","ghostwhite":"blanco ligero","darkblue":"azul oscuro","mediumvioletred":"rojo violáceo medio","brown":"marrón","lightgray":"gris claro","sandybrown":"marrón arcilla","pink":"rosa","firebrick":"teja","indigo":"añil","snow":"nieve","darkorchid":"orquídea oscuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde fuerte","moccasin":"arena","navy":"azul marino","lemonchiffon":"amarillo pastel","teal":"verde azulado","floralwhite":"blanco manteca","cornflowerblue":"azul aciano","paleturquoise":"turquesa pálido","purple":"púrpura","gainsboro":"azul gainsboro","plum":"ciruela","red":"rojo","blue":"azul","forestgreen":"verde pino","darkgreen":"verde oscuro","honeydew":"flor de rocío","darkseagreen":"verde mar oscuro","lightcoral":"coral claro","palevioletred":"rojo violáceo pálido","mediumpurple":"púrpura medio","saddlebrown":"cuero","darkmagenta":"magenta oscuro","thistle":"cardo","whitesmoke":"blanco ahumado","wheat":"trigo","violet":"violeta","lightskyblue":"azul cielo claro","goldenrod":"ocre","mediumblue":"azul medio","skyblue":"azul cielo","crimson":"carmesí","darksalmon":"salmón oscuro","darkred":"rojo oscuro","darkslategrey":"gris pizarra oscuro","peru":"perú","lightgrey":"gris claro","lightgoldenrodyellow":"ocre claro","blanchedalmond":"almendra pálido","aliceblue":"blanco azulado","bisque":"miel","slategray":"gris pizarra","palegoldenrod":"ocre pálido","darkorange":"naranja oscuro","aquamarine":"aguamarina 2","lightgreen":"verde claro","burlywood":"madera","dodgerblue":"azul fuerte","darkgray":"gris oscuro","lightcyan":"cian claro","powderblue":"azul suave","blueviolet":"azul violáceo","orchid":"orquídea","dimgray":"gris marengo","beige":"beige","fuchsia":"fucsia","lavenderblush":"lavanda rosácea","hotpink":"rosa oscuro","steelblue":"azul acero","tomato":"tomate","lightpink":"rosa claro","limegreen":"lima limón","indianred":"rojo teja","papayawhip":"papaya claro","lightslategray":"gris pizarra claro","gray":"gris","mediumorchid":"orquídea medio","cornsilk":"crudo","black":"negro","seagreen":"verde mar","darkslateblue":"azul pizarra oscuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"blanco cielo","peachpuff":"melocotón","darkolivegreen":"verde oliva oscuro","yellowgreen":"verde amarillento"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.es_es");dijit.nls.loading.es_es={"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.es_es");dijit.nls.common.es_es={"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.es_es");dijit.form.nls.validate.es_es={"rangeMessage":"Este valor está fuera del intervalo.","invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.es_es");dijit.form.nls.ComboBox.es_es={"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.es_es");dojo.cldr.nls.number.es_es={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_es.js b/lib/dojo/nls/tt-rss-layer_es.js index d9c37c058..daec5d53d 100644 --- a/lib/dojo/nls/tt-rss-layer_es.js +++ b/lib/dojo/nls/tt-rss-layer_es.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_es");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.es");dojo.nls.colors.es={"lightsteelblue":"azul acero claro","orangered":"rojo anaranjado","midnightblue":"azul medianoche","cadetblue":"azul cadete","seashell":"blanco marfil","slategrey":"gris pizarra","coral":"coral","darkturquoise":"turquesa oscuro","antiquewhite":"blanco antiguo","mediumspringgreen":"verde primavera medio","salmon":"salmón","darkgrey":"gris oscuro","ivory":"marfil","greenyellow":"amarillo verdoso","mistyrose":"rosa difuminado","lightsalmon":"salmón claro","silver":"plateado","dimgrey":"gris marengo","orange":"naranja","white":"blanco","navajowhite":"blanco navajo","royalblue":"azul real","deeppink":"rosa fuerte","lime":"lima","oldlace":"encaje antiguo","chartreuse":"verde pálido 2","darkcyan":"cian oscuro","yellow":"amarillo","linen":"blanco arena","olive":"verde oliva","gold":"oro","lawngreen":"verde césped","lightyellow":"amarillo claro","tan":"canela","darkviolet":"violeta oscuro","lightslategrey":"gris pizarra claro","grey":"gris","darkkhaki":"caqui oscuro","green":"verde","deepskyblue":"azul cielo fuerte","aqua":"aguamarina","sienna":"siena","mintcream":"crema menta","rosybrown":"marrón rosáceo","mediumslateblue":"azul pizarra medio","magenta":"magenta","lightseagreen":"verde mar claro","cyan":"cian","olivedrab":"verde oliva pardusco","darkgoldenrod":"ocre oscuro","slateblue":"azul pizarra","mediumaquamarine":"aguamarina medio","lavender":"lavanda","mediumseagreen":"verde mar medio","maroon":"granate","darkslategray":"gris pizarra oscuro","mediumturquoise":"turquesa medio","ghostwhite":"blanco ligero","darkblue":"azul oscuro","mediumvioletred":"rojo violáceo medio","brown":"marrón","lightgray":"gris claro","sandybrown":"marrón arcilla","pink":"rosa","firebrick":"teja","indigo":"añil","snow":"nieve","darkorchid":"orquídea oscuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde fuerte","moccasin":"arena","navy":"azul marino","lemonchiffon":"amarillo pastel","teal":"verde azulado","floralwhite":"blanco manteca","cornflowerblue":"azul aciano","paleturquoise":"turquesa pálido","purple":"púrpura","gainsboro":"azul gainsboro","plum":"ciruela","red":"rojo","blue":"azul","forestgreen":"verde pino","darkgreen":"verde oscuro","honeydew":"flor de rocío","darkseagreen":"verde mar oscuro","lightcoral":"coral claro","palevioletred":"rojo violáceo pálido","mediumpurple":"púrpura medio","saddlebrown":"cuero","darkmagenta":"magenta oscuro","thistle":"cardo","whitesmoke":"blanco ahumado","wheat":"trigo","violet":"violeta","lightskyblue":"azul cielo claro","goldenrod":"ocre","mediumblue":"azul medio","skyblue":"azul cielo","crimson":"carmesí","darksalmon":"salmón oscuro","darkred":"rojo oscuro","darkslategrey":"gris pizarra oscuro","peru":"perú","lightgrey":"gris claro","lightgoldenrodyellow":"ocre claro","blanchedalmond":"almendra pálido","aliceblue":"blanco azulado","bisque":"miel","slategray":"gris pizarra","palegoldenrod":"ocre pálido","darkorange":"naranja oscuro","aquamarine":"aguamarina 2","lightgreen":"verde claro","burlywood":"madera","dodgerblue":"azul fuerte","darkgray":"gris oscuro","lightcyan":"cian claro","powderblue":"azul suave","blueviolet":"azul violáceo","orchid":"orquídea","dimgray":"gris marengo","beige":"beige","fuchsia":"fucsia","lavenderblush":"lavanda rosácea","hotpink":"rosa oscuro","steelblue":"azul acero","tomato":"tomate","lightpink":"rosa claro","limegreen":"lima limón","indianred":"rojo teja","papayawhip":"papaya claro","lightslategray":"gris pizarra claro","gray":"gris","mediumorchid":"orquídea medio","cornsilk":"crudo","black":"negro","seagreen":"verde mar","darkslateblue":"azul pizarra oscuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"blanco cielo","peachpuff":"melocotón","darkolivegreen":"verde oliva oscuro","yellowgreen":"verde amarillento"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.es");dijit.nls.loading.es={"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.es");dijit.nls.common.es={"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.es");dijit.form.nls.validate.es={"rangeMessage":"Este valor está fuera del intervalo.","invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.es");dijit.form.nls.ComboBox.es={"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.es");dojo.cldr.nls.number.es={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_es");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.es");dojo.nls.colors.es={"lightsteelblue":"azul acero claro","orangered":"rojo anaranjado","midnightblue":"azul medianoche","cadetblue":"azul cadete","seashell":"blanco marfil","slategrey":"gris pizarra","coral":"coral","darkturquoise":"turquesa oscuro","antiquewhite":"blanco antiguo","mediumspringgreen":"verde primavera medio","salmon":"salmón","darkgrey":"gris oscuro","ivory":"marfil","greenyellow":"amarillo verdoso","mistyrose":"rosa difuminado","lightsalmon":"salmón claro","silver":"plateado","dimgrey":"gris marengo","orange":"naranja","white":"blanco","navajowhite":"blanco navajo","royalblue":"azul real","deeppink":"rosa fuerte","lime":"lima","oldlace":"encaje antiguo","chartreuse":"verde pálido 2","darkcyan":"cian oscuro","yellow":"amarillo","linen":"blanco arena","olive":"verde oliva","gold":"oro","lawngreen":"verde césped","lightyellow":"amarillo claro","tan":"canela","darkviolet":"violeta oscuro","lightslategrey":"gris pizarra claro","grey":"gris","darkkhaki":"caqui oscuro","green":"verde","deepskyblue":"azul cielo fuerte","aqua":"aguamarina","sienna":"siena","mintcream":"crema menta","rosybrown":"marrón rosáceo","mediumslateblue":"azul pizarra medio","magenta":"magenta","lightseagreen":"verde mar claro","cyan":"cian","olivedrab":"verde oliva pardusco","darkgoldenrod":"ocre oscuro","slateblue":"azul pizarra","mediumaquamarine":"aguamarina medio","lavender":"lavanda","mediumseagreen":"verde mar medio","maroon":"granate","darkslategray":"gris pizarra oscuro","mediumturquoise":"turquesa medio","ghostwhite":"blanco ligero","darkblue":"azul oscuro","mediumvioletred":"rojo violáceo medio","brown":"marrón","lightgray":"gris claro","sandybrown":"marrón arcilla","pink":"rosa","firebrick":"teja","indigo":"añil","snow":"nieve","darkorchid":"orquídea oscuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde fuerte","moccasin":"arena","navy":"azul marino","lemonchiffon":"amarillo pastel","teal":"verde azulado","floralwhite":"blanco manteca","cornflowerblue":"azul aciano","paleturquoise":"turquesa pálido","purple":"púrpura","gainsboro":"azul gainsboro","plum":"ciruela","red":"rojo","blue":"azul","forestgreen":"verde pino","darkgreen":"verde oscuro","honeydew":"flor de rocío","darkseagreen":"verde mar oscuro","lightcoral":"coral claro","palevioletred":"rojo violáceo pálido","mediumpurple":"púrpura medio","saddlebrown":"cuero","darkmagenta":"magenta oscuro","thistle":"cardo","whitesmoke":"blanco ahumado","wheat":"trigo","violet":"violeta","lightskyblue":"azul cielo claro","goldenrod":"ocre","mediumblue":"azul medio","skyblue":"azul cielo","crimson":"carmesí","darksalmon":"salmón oscuro","darkred":"rojo oscuro","darkslategrey":"gris pizarra oscuro","peru":"perú","lightgrey":"gris claro","lightgoldenrodyellow":"ocre claro","blanchedalmond":"almendra pálido","aliceblue":"blanco azulado","bisque":"miel","slategray":"gris pizarra","palegoldenrod":"ocre pálido","darkorange":"naranja oscuro","aquamarine":"aguamarina 2","lightgreen":"verde claro","burlywood":"madera","dodgerblue":"azul fuerte","darkgray":"gris oscuro","lightcyan":"cian claro","powderblue":"azul suave","blueviolet":"azul violáceo","orchid":"orquídea","dimgray":"gris marengo","beige":"beige","fuchsia":"fucsia","lavenderblush":"lavanda rosácea","hotpink":"rosa oscuro","steelblue":"azul acero","tomato":"tomate","lightpink":"rosa claro","limegreen":"lima limón","indianred":"rojo teja","papayawhip":"papaya claro","lightslategray":"gris pizarra claro","gray":"gris","mediumorchid":"orquídea medio","cornsilk":"crudo","black":"negro","seagreen":"verde mar","darkslateblue":"azul pizarra oscuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"blanco cielo","peachpuff":"melocotón","darkolivegreen":"verde oliva oscuro","yellowgreen":"verde amarillento"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.es");dijit.nls.loading.es={"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.es");dijit.nls.common.es={"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.es");dijit.form.nls.validate.es={"rangeMessage":"Este valor está fuera del intervalo.","invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.es");dijit.form.nls.ComboBox.es={"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.es");dojo.cldr.nls.number.es={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_fi-fi.js b/lib/dojo/nls/tt-rss-layer_fi-fi.js index 0a78dd3c9..29f0b1a40 100644 --- a/lib/dojo/nls/tt-rss-layer_fi-fi.js +++ b/lib/dojo/nls/tt-rss-layer_fi-fi.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_fi-fi");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fi_fi");dojo.nls.colors.fi_fi={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fi_fi");dijit.nls.loading.fi_fi={"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fi_fi");dijit.nls.common.fi_fi={"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fi_fi");dijit.form.nls.validate.fi_fi={"rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella.","invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fi_fi");dijit.form.nls.ComboBox.fi_fi={"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fi_fi");dojo.cldr.nls.number.fi_fi={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_fi-fi");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fi_fi");dojo.nls.colors.fi_fi={"lightsteelblue":"vaalea teräksensininen","orangered":"oranssinpunainen","midnightblue":"yönsininen","cadetblue":"meren vihreä","seashell":"simpukankuori","slategrey":"savenharmaa","coral":"koralli","darkturquoise":"tumma turkoosi","antiquewhite":"antiikinvalkoinen","mediumspringgreen":"keskivaalea keväänvihreä","salmon":"lohenpunainen","darkgrey":"tummanharmaa","ivory":"norsunluu","greenyellow":"vihreänkeltainen","mistyrose":"utuinen ruusu","lightsalmon":"vaalea lohenpunainen","silver":"hopea","dimgrey":"himmeänharmaa","orange":"oranssi","white":"valkoinen","navajowhite":"navajonvalkoinen","royalblue":"syvänsininen","deeppink":"syvä vaaleanpunainen","lime":"vaaleanvihreä","oldlace":"vanha pitsi","chartreuse":"kellanvihreä","darkcyan":"tumma turkoosi","yellow":"keltainen","linen":"pellavanvaalea","olive":"oliivinvihreä","gold":"kulta","lawngreen":"ruohonvihreä","lightyellow":"vaaleankeltainen","tan":"kellanruskea","darkviolet":"tummanvioletti","lightslategrey":"vaaleanharmaa","grey":"harmaa","darkkhaki":"tumma khaki","green":"vihreä","deepskyblue":"tumma taivaansininen","aqua":"sinivihreä","sienna":"siena","mintcream":"minttukreemi","rosybrown":"punertavanruskea","mediumslateblue":"keskivaalea siniharmaa","magenta":"magenta","lightseagreen":"vaalea merenvihreä","cyan":"syaani","olivedrab":"oliivinruskea","darkgoldenrod":"tumma kultapiisku","slateblue":"savensininen","mediumaquamarine":"keskivaalea vedenvihreä","lavender":"laventeli","mediumseagreen":"keskivaalea merenvihreä","maroon":"kastanjanruskea","darkslategray":"tummanharmaa","mediumturquoise":"keskivaalea turkoosi","ghostwhite":"lakananvalkoinen","darkblue":"tummansininen","mediumvioletred":"keskivaalea lila","brown":"ruskea","lightgray":"vaaleanharmaa","sandybrown":"hiekanruskea","pink":"vaaleanpunainen","firebrick":"poltetun tiilen punainen","indigo":"indigo","snow":"lumivalkoinen","darkorchid":"tumma orkidea","turquoise":"turkoosi","chocolate":"suklaanruskea","springgreen":"keväänvihreä","moccasin":"nahanruskea","navy":"laivastonsininen","lemonchiffon":"sitruunankeltainen","teal":"sinivihreä","floralwhite":"kukanvalkoinen","cornflowerblue":"syvänsininen","paleturquoise":"haalea turkoosi","purple":"violetti","gainsboro":"gainsboro","plum":"luumunpunainen","red":"punainen","blue":"sininen","forestgreen":"metsänvihreä","darkgreen":"tummanvihreä","honeydew":"hunajameloninvihreä","darkseagreen":"tumma merenvihreä","lightcoral":"vaalea koralli","palevioletred":"haalea lila","mediumpurple":"keskivaalea violetti","saddlebrown":"satulanruskea","darkmagenta":"tumma magenta","thistle":"ohdake","whitesmoke":"savunvalkea","wheat":"vehnänkeltainen","violet":"violetti","lightskyblue":"vaalea taivaansininen","goldenrod":"kullanruskea","mediumblue":"keskisininen","skyblue":"taivaansininen","crimson":"karmiininpunainen","darksalmon":"tumma lohenpunainen","darkred":"tummanpunainen","darkslategrey":"tummanharmaa","peru":"peru","lightgrey":"vaaleanharmaa","lightgoldenrodyellow":"vaalea kultapiiskunkeltainen","blanchedalmond":"kuorittu manteli","aliceblue":"vaaleanharmaansininen","bisque":"vaaleanruskea","slategray":"savenharmaa","palegoldenrod":"haalea kultapiisku","darkorange":"tummanoranssi","aquamarine":"vedenvihreä","lightgreen":"vaaleanvihreä","burlywood":"puunruskea","dodgerblue":"Dodger-sininen","darkgray":"tummanharmaa","lightcyan":"vaalea syaani","powderblue":"harmaansininen","blueviolet":"sinivioletti","orchid":"orkidea","dimgray":"himmeänharmaa","beige":"vaaleanruskea","fuchsia":"purppura","lavenderblush":"laventelinpunainen","hotpink":"pinkki","steelblue":"teräksensininen","tomato":"tomaatinpunainen","lightpink":"vaaleanpunainen","limegreen":"limetinvihreä","indianred":"kirkkaanpunainen","papayawhip":"papaijavaahto","lightslategray":"vaaleanharmaa","gray":"harmaa","mediumorchid":"keskivaalea orkidea","cornsilk":"maissinkeltainen","black":"musta","seagreen":"merenvihreä","darkslateblue":"tumma siniharmaa","khaki":"khaki","lightblue":"vaaleansininen","palegreen":"haalea vihreä","azure":"taivaansininen","peachpuff":"persikka","darkolivegreen":"tummanoliivinvihreä","yellowgreen":"kellanvihreä"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fi_fi");dijit.nls.loading.fi_fi={"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fi_fi");dijit.nls.common.fi_fi={"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fi_fi");dijit.form.nls.validate.fi_fi={"rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella.","invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fi_fi");dijit.form.nls.ComboBox.fi_fi={"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fi_fi");dojo.cldr.nls.number.fi_fi={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_fi.js b/lib/dojo/nls/tt-rss-layer_fi.js index 3932b9873..86fc0bcb7 100644 --- a/lib/dojo/nls/tt-rss-layer_fi.js +++ b/lib/dojo/nls/tt-rss-layer_fi.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_fi");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fi");dojo.nls.colors.fi={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fi");dijit.nls.loading.fi={"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fi");dijit.nls.common.fi={"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fi");dijit.form.nls.validate.fi={"rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella.","invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fi");dijit.form.nls.ComboBox.fi={"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fi");dojo.cldr.nls.number.fi={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_fi");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fi");dojo.nls.colors.fi={"lightsteelblue":"vaalea teräksensininen","orangered":"oranssinpunainen","midnightblue":"yönsininen","cadetblue":"meren vihreä","seashell":"simpukankuori","slategrey":"savenharmaa","coral":"koralli","darkturquoise":"tumma turkoosi","antiquewhite":"antiikinvalkoinen","mediumspringgreen":"keskivaalea keväänvihreä","salmon":"lohenpunainen","darkgrey":"tummanharmaa","ivory":"norsunluu","greenyellow":"vihreänkeltainen","mistyrose":"utuinen ruusu","lightsalmon":"vaalea lohenpunainen","silver":"hopea","dimgrey":"himmeänharmaa","orange":"oranssi","white":"valkoinen","navajowhite":"navajonvalkoinen","royalblue":"syvänsininen","deeppink":"syvä vaaleanpunainen","lime":"vaaleanvihreä","oldlace":"vanha pitsi","chartreuse":"kellanvihreä","darkcyan":"tumma turkoosi","yellow":"keltainen","linen":"pellavanvaalea","olive":"oliivinvihreä","gold":"kulta","lawngreen":"ruohonvihreä","lightyellow":"vaaleankeltainen","tan":"kellanruskea","darkviolet":"tummanvioletti","lightslategrey":"vaaleanharmaa","grey":"harmaa","darkkhaki":"tumma khaki","green":"vihreä","deepskyblue":"tumma taivaansininen","aqua":"sinivihreä","sienna":"siena","mintcream":"minttukreemi","rosybrown":"punertavanruskea","mediumslateblue":"keskivaalea siniharmaa","magenta":"magenta","lightseagreen":"vaalea merenvihreä","cyan":"syaani","olivedrab":"oliivinruskea","darkgoldenrod":"tumma kultapiisku","slateblue":"savensininen","mediumaquamarine":"keskivaalea vedenvihreä","lavender":"laventeli","mediumseagreen":"keskivaalea merenvihreä","maroon":"kastanjanruskea","darkslategray":"tummanharmaa","mediumturquoise":"keskivaalea turkoosi","ghostwhite":"lakananvalkoinen","darkblue":"tummansininen","mediumvioletred":"keskivaalea lila","brown":"ruskea","lightgray":"vaaleanharmaa","sandybrown":"hiekanruskea","pink":"vaaleanpunainen","firebrick":"poltetun tiilen punainen","indigo":"indigo","snow":"lumivalkoinen","darkorchid":"tumma orkidea","turquoise":"turkoosi","chocolate":"suklaanruskea","springgreen":"keväänvihreä","moccasin":"nahanruskea","navy":"laivastonsininen","lemonchiffon":"sitruunankeltainen","teal":"sinivihreä","floralwhite":"kukanvalkoinen","cornflowerblue":"syvänsininen","paleturquoise":"haalea turkoosi","purple":"violetti","gainsboro":"gainsboro","plum":"luumunpunainen","red":"punainen","blue":"sininen","forestgreen":"metsänvihreä","darkgreen":"tummanvihreä","honeydew":"hunajameloninvihreä","darkseagreen":"tumma merenvihreä","lightcoral":"vaalea koralli","palevioletred":"haalea lila","mediumpurple":"keskivaalea violetti","saddlebrown":"satulanruskea","darkmagenta":"tumma magenta","thistle":"ohdake","whitesmoke":"savunvalkea","wheat":"vehnänkeltainen","violet":"violetti","lightskyblue":"vaalea taivaansininen","goldenrod":"kullanruskea","mediumblue":"keskisininen","skyblue":"taivaansininen","crimson":"karmiininpunainen","darksalmon":"tumma lohenpunainen","darkred":"tummanpunainen","darkslategrey":"tummanharmaa","peru":"peru","lightgrey":"vaaleanharmaa","lightgoldenrodyellow":"vaalea kultapiiskunkeltainen","blanchedalmond":"kuorittu manteli","aliceblue":"vaaleanharmaansininen","bisque":"vaaleanruskea","slategray":"savenharmaa","palegoldenrod":"haalea kultapiisku","darkorange":"tummanoranssi","aquamarine":"vedenvihreä","lightgreen":"vaaleanvihreä","burlywood":"puunruskea","dodgerblue":"Dodger-sininen","darkgray":"tummanharmaa","lightcyan":"vaalea syaani","powderblue":"harmaansininen","blueviolet":"sinivioletti","orchid":"orkidea","dimgray":"himmeänharmaa","beige":"vaaleanruskea","fuchsia":"purppura","lavenderblush":"laventelinpunainen","hotpink":"pinkki","steelblue":"teräksensininen","tomato":"tomaatinpunainen","lightpink":"vaaleanpunainen","limegreen":"limetinvihreä","indianred":"kirkkaanpunainen","papayawhip":"papaijavaahto","lightslategray":"vaaleanharmaa","gray":"harmaa","mediumorchid":"keskivaalea orkidea","cornsilk":"maissinkeltainen","black":"musta","seagreen":"merenvihreä","darkslateblue":"tumma siniharmaa","khaki":"khaki","lightblue":"vaaleansininen","palegreen":"haalea vihreä","azure":"taivaansininen","peachpuff":"persikka","darkolivegreen":"tummanoliivinvihreä","yellowgreen":"kellanvihreä"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fi");dijit.nls.loading.fi={"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fi");dijit.nls.common.fi={"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fi");dijit.form.nls.validate.fi={"rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella.","invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fi");dijit.form.nls.ComboBox.fi={"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fi");dojo.cldr.nls.number.fi={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_fr-fr.js b/lib/dojo/nls/tt-rss-layer_fr-fr.js index e46a35a24..1fba0709c 100644 --- a/lib/dojo/nls/tt-rss-layer_fr-fr.js +++ b/lib/dojo/nls/tt-rss-layer_fr-fr.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_fr-fr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fr_fr");dojo.nls.colors.fr_fr={"lightsteelblue":"bleu acier clair","orangered":"rouge orangé","midnightblue":"bleu nuit","cadetblue":"bleu pétrole","seashell":"coquillage","slategrey":"gris ardoise","coral":"corail","darkturquoise":"turquoise foncé","antiquewhite":"blanc antique","mediumspringgreen":"vert printemps moyen","salmon":"saumon","darkgrey":"gris foncé","ivory":"ivoire","greenyellow":"vert-jaune","mistyrose":"rose pâle","lightsalmon":"saumon clair","silver":"argent","dimgrey":"gris soutenu","orange":"orange","white":"blanc","navajowhite":"chair","royalblue":"bleu roi","deeppink":"rose soutenu","lime":"vert citron","oldlace":"blanc cassé","chartreuse":"vert vif","darkcyan":"cyan foncé","yellow":"jaune","linen":"écru","olive":"olive","gold":"or","lawngreen":"vert prairie","lightyellow":"jaune clair","tan":"grège","darkviolet":"violet foncé","lightslategrey":"gris ardoise clair","grey":"gris","darkkhaki":"kaki foncé","green":"vert","deepskyblue":"bleu ciel soutenu","aqua":"bleu-vert","sienna":"terre de sienne","mintcream":"crème de menthe","rosybrown":"vieux rose","mediumslateblue":"bleu ardoise moyen","magenta":"magenta","lightseagreen":"vert d'eau clair","cyan":"cyan","olivedrab":"brun verdâtre","darkgoldenrod":"jaune paille foncé","slateblue":"bleu ardoise","mediumaquamarine":"aigue-marine moyen","lavender":"lavande","mediumseagreen":"vert d'eau moyen","maroon":"marron","darkslategray":"gris ardoise foncé","mediumturquoise":"turquoise moyen","ghostwhite":"blanc laiteux","darkblue":"bleu foncé","mediumvioletred":"rouge violacé moyen","brown":"brun","lightgray":"gris clair","sandybrown":"sable","pink":"rose","firebrick":"rouge brique","indigo":"indigo","snow":"neige","darkorchid":"lilas foncé","turquoise":"turquoise","chocolate":"chocolat","springgreen":"vert printemps","moccasin":"chamois","navy":"bleu marine","lemonchiffon":"mousse de citron","teal":"sarcelle","floralwhite":"lys","cornflowerblue":"bleuet","paleturquoise":"turquoise pâle","purple":"pourpre","gainsboro":"gris souris","plum":"prune","red":"rouge","blue":"bleu","forestgreen":"vert sapin","darkgreen":"vert foncé","honeydew":"opalin","darkseagreen":"vert d'eau foncé","lightcoral":"corail clair","palevioletred":"rouge violacé pâle","mediumpurple":"pourpre moyen","saddlebrown":"brun cuir","darkmagenta":"magenta foncé","thistle":"chardon","whitesmoke":"blanc cendré","wheat":"blé","violet":"violet","lightskyblue":"bleu ciel clair","goldenrod":"jaune paille","mediumblue":"bleu moyen","skyblue":"bleu ciel","crimson":"cramoisi","darksalmon":"saumon foncé","darkred":"rouge foncé","darkslategrey":"gris ardoise foncé","peru":"caramel","lightgrey":"gris clair","lightgoldenrodyellow":"jaune paille clair","blanchedalmond":"coquille d'oeuf","aliceblue":"bleu gris","bisque":"beige rosé","slategray":"gris ardoise","palegoldenrod":"jaune paille pâle","darkorange":"orange foncé","aquamarine":"aigue-marine","lightgreen":"vert clair","burlywood":"bois précieux","dodgerblue":"bleu France","darkgray":"gris foncé","lightcyan":"cyan clair","powderblue":"bleu de smalt","blueviolet":"bleu-violet","orchid":"lilas","dimgray":"gris soutenu","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavandin","hotpink":"rose intense","steelblue":"bleu acier","tomato":"tomate","lightpink":"rose clair","limegreen":"citron vert","indianred":"rose indien","papayawhip":"crème de papaye","lightslategray":"gris ardoise clair","gray":"gris","mediumorchid":"lilas moyen","cornsilk":"vanille","black":"noir","seagreen":"vert d'eau","darkslateblue":"bleu ardoise foncé","khaki":"kaki","lightblue":"bleu clair","palegreen":"vert pâle","azure":"bleu azur","peachpuff":"pêche","darkolivegreen":"olive foncé","yellowgreen":"vert jaunâtre"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fr_fr");dijit.nls.loading.fr_fr={"loadingState":"Chargement...","errorState":"Une erreur est survenue"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fr_fr");dijit.nls.common.fr_fr={"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Sauvegarder","itemClose":"Fermer"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fr_fr");dijit.form.nls.validate.fr_fr={"rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée.","invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fr_fr");dijit.form.nls.ComboBox.fr_fr={"previousMessage":"Choix précédents","nextMessage":"Plus de choix"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fr_fr");dojo.cldr.nls.number.fr_fr={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_fr-fr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fr_fr");dojo.nls.colors.fr_fr={"lightsteelblue":"bleu acier clair","orangered":"rouge orangé","midnightblue":"bleu nuit","cadetblue":"bleu pétrole","seashell":"coquillage","slategrey":"gris ardoise","coral":"corail","darkturquoise":"turquoise foncé","antiquewhite":"blanc antique","mediumspringgreen":"vert printemps moyen","salmon":"saumon","darkgrey":"gris foncé","ivory":"ivoire","greenyellow":"vert-jaune","mistyrose":"rose pâle","lightsalmon":"saumon clair","silver":"argent","dimgrey":"gris soutenu","orange":"orange","white":"blanc","navajowhite":"chair","royalblue":"bleu roi","deeppink":"rose soutenu","lime":"vert citron","oldlace":"blanc cassé","chartreuse":"vert vif","darkcyan":"cyan foncé","yellow":"jaune","linen":"écru","olive":"olive","gold":"or","lawngreen":"vert prairie","lightyellow":"jaune clair","tan":"grège","darkviolet":"violet foncé","lightslategrey":"gris ardoise clair","grey":"gris","darkkhaki":"kaki foncé","green":"vert","deepskyblue":"bleu ciel soutenu","aqua":"bleu-vert","sienna":"terre de sienne","mintcream":"crème de menthe","rosybrown":"vieux rose","mediumslateblue":"bleu ardoise moyen","magenta":"magenta","lightseagreen":"vert d'eau clair","cyan":"cyan","olivedrab":"brun verdâtre","darkgoldenrod":"jaune paille foncé","slateblue":"bleu ardoise","mediumaquamarine":"aigue-marine moyen","lavender":"lavande","mediumseagreen":"vert d'eau moyen","maroon":"marron","darkslategray":"gris ardoise foncé","mediumturquoise":"turquoise moyen","ghostwhite":"blanc laiteux","darkblue":"bleu foncé","mediumvioletred":"rouge violacé moyen","brown":"brun","lightgray":"gris clair","sandybrown":"sable","pink":"rose","firebrick":"rouge brique","indigo":"indigo","snow":"neige","darkorchid":"lilas foncé","turquoise":"turquoise","chocolate":"chocolat","springgreen":"vert printemps","moccasin":"chamois","navy":"bleu marine","lemonchiffon":"mousse de citron","teal":"sarcelle","floralwhite":"lys","cornflowerblue":"bleuet","paleturquoise":"turquoise pâle","purple":"pourpre","gainsboro":"gris souris","plum":"prune","red":"rouge","blue":"bleu","forestgreen":"vert sapin","darkgreen":"vert foncé","honeydew":"opalin","darkseagreen":"vert d'eau foncé","lightcoral":"corail clair","palevioletred":"rouge violacé pâle","mediumpurple":"pourpre moyen","saddlebrown":"brun cuir","darkmagenta":"magenta foncé","thistle":"chardon","whitesmoke":"blanc cendré","wheat":"blé","violet":"violet","lightskyblue":"bleu ciel clair","goldenrod":"jaune paille","mediumblue":"bleu moyen","skyblue":"bleu ciel","crimson":"cramoisi","darksalmon":"saumon foncé","darkred":"rouge foncé","darkslategrey":"gris ardoise foncé","peru":"caramel","lightgrey":"gris clair","lightgoldenrodyellow":"jaune paille clair","blanchedalmond":"coquille d'oeuf","aliceblue":"bleu gris","bisque":"beige rosé","slategray":"gris ardoise","palegoldenrod":"jaune paille pâle","darkorange":"orange foncé","aquamarine":"aigue-marine","lightgreen":"vert clair","burlywood":"bois précieux","dodgerblue":"bleu France","darkgray":"gris foncé","lightcyan":"cyan clair","powderblue":"bleu de smalt","blueviolet":"bleu-violet","orchid":"lilas","dimgray":"gris soutenu","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavandin","hotpink":"rose intense","steelblue":"bleu acier","tomato":"tomate","lightpink":"rose clair","limegreen":"citron vert","indianred":"rose indien","papayawhip":"crème de papaye","lightslategray":"gris ardoise clair","gray":"gris","mediumorchid":"lilas moyen","cornsilk":"vanille","black":"noir","seagreen":"vert d'eau","darkslateblue":"bleu ardoise foncé","khaki":"kaki","lightblue":"bleu clair","palegreen":"vert pâle","azure":"bleu azur","peachpuff":"pêche","darkolivegreen":"olive foncé","yellowgreen":"vert jaunâtre"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fr_fr");dijit.nls.loading.fr_fr={"loadingState":"Chargement...","errorState":"Une erreur est survenue"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fr_fr");dijit.nls.common.fr_fr={"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Sauvegarder","itemClose":"Fermer"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fr_fr");dijit.form.nls.validate.fr_fr={"rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée.","invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fr_fr");dijit.form.nls.ComboBox.fr_fr={"previousMessage":"Choix précédents","nextMessage":"Plus de choix"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fr_fr");dojo.cldr.nls.number.fr_fr={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_fr.js b/lib/dojo/nls/tt-rss-layer_fr.js index 8595a42d0..7d5f281e2 100644 --- a/lib/dojo/nls/tt-rss-layer_fr.js +++ b/lib/dojo/nls/tt-rss-layer_fr.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_fr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fr");dojo.nls.colors.fr={"lightsteelblue":"bleu acier clair","orangered":"rouge orangé","midnightblue":"bleu nuit","cadetblue":"bleu pétrole","seashell":"coquillage","slategrey":"gris ardoise","coral":"corail","darkturquoise":"turquoise foncé","antiquewhite":"blanc antique","mediumspringgreen":"vert printemps moyen","salmon":"saumon","darkgrey":"gris foncé","ivory":"ivoire","greenyellow":"vert-jaune","mistyrose":"rose pâle","lightsalmon":"saumon clair","silver":"argent","dimgrey":"gris soutenu","orange":"orange","white":"blanc","navajowhite":"chair","royalblue":"bleu roi","deeppink":"rose soutenu","lime":"vert citron","oldlace":"blanc cassé","chartreuse":"vert vif","darkcyan":"cyan foncé","yellow":"jaune","linen":"écru","olive":"olive","gold":"or","lawngreen":"vert prairie","lightyellow":"jaune clair","tan":"grège","darkviolet":"violet foncé","lightslategrey":"gris ardoise clair","grey":"gris","darkkhaki":"kaki foncé","green":"vert","deepskyblue":"bleu ciel soutenu","aqua":"bleu-vert","sienna":"terre de sienne","mintcream":"crème de menthe","rosybrown":"vieux rose","mediumslateblue":"bleu ardoise moyen","magenta":"magenta","lightseagreen":"vert d'eau clair","cyan":"cyan","olivedrab":"brun verdâtre","darkgoldenrod":"jaune paille foncé","slateblue":"bleu ardoise","mediumaquamarine":"aigue-marine moyen","lavender":"lavande","mediumseagreen":"vert d'eau moyen","maroon":"marron","darkslategray":"gris ardoise foncé","mediumturquoise":"turquoise moyen","ghostwhite":"blanc laiteux","darkblue":"bleu foncé","mediumvioletred":"rouge violacé moyen","brown":"brun","lightgray":"gris clair","sandybrown":"sable","pink":"rose","firebrick":"rouge brique","indigo":"indigo","snow":"neige","darkorchid":"lilas foncé","turquoise":"turquoise","chocolate":"chocolat","springgreen":"vert printemps","moccasin":"chamois","navy":"bleu marine","lemonchiffon":"mousse de citron","teal":"sarcelle","floralwhite":"lys","cornflowerblue":"bleuet","paleturquoise":"turquoise pâle","purple":"pourpre","gainsboro":"gris souris","plum":"prune","red":"rouge","blue":"bleu","forestgreen":"vert sapin","darkgreen":"vert foncé","honeydew":"opalin","darkseagreen":"vert d'eau foncé","lightcoral":"corail clair","palevioletred":"rouge violacé pâle","mediumpurple":"pourpre moyen","saddlebrown":"brun cuir","darkmagenta":"magenta foncé","thistle":"chardon","whitesmoke":"blanc cendré","wheat":"blé","violet":"violet","lightskyblue":"bleu ciel clair","goldenrod":"jaune paille","mediumblue":"bleu moyen","skyblue":"bleu ciel","crimson":"cramoisi","darksalmon":"saumon foncé","darkred":"rouge foncé","darkslategrey":"gris ardoise foncé","peru":"caramel","lightgrey":"gris clair","lightgoldenrodyellow":"jaune paille clair","blanchedalmond":"coquille d'oeuf","aliceblue":"bleu gris","bisque":"beige rosé","slategray":"gris ardoise","palegoldenrod":"jaune paille pâle","darkorange":"orange foncé","aquamarine":"aigue-marine","lightgreen":"vert clair","burlywood":"bois précieux","dodgerblue":"bleu France","darkgray":"gris foncé","lightcyan":"cyan clair","powderblue":"bleu de smalt","blueviolet":"bleu-violet","orchid":"lilas","dimgray":"gris soutenu","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavandin","hotpink":"rose intense","steelblue":"bleu acier","tomato":"tomate","lightpink":"rose clair","limegreen":"citron vert","indianred":"rose indien","papayawhip":"crème de papaye","lightslategray":"gris ardoise clair","gray":"gris","mediumorchid":"lilas moyen","cornsilk":"vanille","black":"noir","seagreen":"vert d'eau","darkslateblue":"bleu ardoise foncé","khaki":"kaki","lightblue":"bleu clair","palegreen":"vert pâle","azure":"bleu azur","peachpuff":"pêche","darkolivegreen":"olive foncé","yellowgreen":"vert jaunâtre"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fr");dijit.nls.loading.fr={"loadingState":"Chargement...","errorState":"Une erreur est survenue"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fr");dijit.nls.common.fr={"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Sauvegarder","itemClose":"Fermer"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fr");dijit.form.nls.validate.fr={"rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée.","invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fr");dijit.form.nls.ComboBox.fr={"previousMessage":"Choix précédents","nextMessage":"Plus de choix"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fr");dojo.cldr.nls.number.fr={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_fr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fr");dojo.nls.colors.fr={"lightsteelblue":"bleu acier clair","orangered":"rouge orangé","midnightblue":"bleu nuit","cadetblue":"bleu pétrole","seashell":"coquillage","slategrey":"gris ardoise","coral":"corail","darkturquoise":"turquoise foncé","antiquewhite":"blanc antique","mediumspringgreen":"vert printemps moyen","salmon":"saumon","darkgrey":"gris foncé","ivory":"ivoire","greenyellow":"vert-jaune","mistyrose":"rose pâle","lightsalmon":"saumon clair","silver":"argent","dimgrey":"gris soutenu","orange":"orange","white":"blanc","navajowhite":"chair","royalblue":"bleu roi","deeppink":"rose soutenu","lime":"vert citron","oldlace":"blanc cassé","chartreuse":"vert vif","darkcyan":"cyan foncé","yellow":"jaune","linen":"écru","olive":"olive","gold":"or","lawngreen":"vert prairie","lightyellow":"jaune clair","tan":"grège","darkviolet":"violet foncé","lightslategrey":"gris ardoise clair","grey":"gris","darkkhaki":"kaki foncé","green":"vert","deepskyblue":"bleu ciel soutenu","aqua":"bleu-vert","sienna":"terre de sienne","mintcream":"crème de menthe","rosybrown":"vieux rose","mediumslateblue":"bleu ardoise moyen","magenta":"magenta","lightseagreen":"vert d'eau clair","cyan":"cyan","olivedrab":"brun verdâtre","darkgoldenrod":"jaune paille foncé","slateblue":"bleu ardoise","mediumaquamarine":"aigue-marine moyen","lavender":"lavande","mediumseagreen":"vert d'eau moyen","maroon":"marron","darkslategray":"gris ardoise foncé","mediumturquoise":"turquoise moyen","ghostwhite":"blanc laiteux","darkblue":"bleu foncé","mediumvioletred":"rouge violacé moyen","brown":"brun","lightgray":"gris clair","sandybrown":"sable","pink":"rose","firebrick":"rouge brique","indigo":"indigo","snow":"neige","darkorchid":"lilas foncé","turquoise":"turquoise","chocolate":"chocolat","springgreen":"vert printemps","moccasin":"chamois","navy":"bleu marine","lemonchiffon":"mousse de citron","teal":"sarcelle","floralwhite":"lys","cornflowerblue":"bleuet","paleturquoise":"turquoise pâle","purple":"pourpre","gainsboro":"gris souris","plum":"prune","red":"rouge","blue":"bleu","forestgreen":"vert sapin","darkgreen":"vert foncé","honeydew":"opalin","darkseagreen":"vert d'eau foncé","lightcoral":"corail clair","palevioletred":"rouge violacé pâle","mediumpurple":"pourpre moyen","saddlebrown":"brun cuir","darkmagenta":"magenta foncé","thistle":"chardon","whitesmoke":"blanc cendré","wheat":"blé","violet":"violet","lightskyblue":"bleu ciel clair","goldenrod":"jaune paille","mediumblue":"bleu moyen","skyblue":"bleu ciel","crimson":"cramoisi","darksalmon":"saumon foncé","darkred":"rouge foncé","darkslategrey":"gris ardoise foncé","peru":"caramel","lightgrey":"gris clair","lightgoldenrodyellow":"jaune paille clair","blanchedalmond":"coquille d'oeuf","aliceblue":"bleu gris","bisque":"beige rosé","slategray":"gris ardoise","palegoldenrod":"jaune paille pâle","darkorange":"orange foncé","aquamarine":"aigue-marine","lightgreen":"vert clair","burlywood":"bois précieux","dodgerblue":"bleu France","darkgray":"gris foncé","lightcyan":"cyan clair","powderblue":"bleu de smalt","blueviolet":"bleu-violet","orchid":"lilas","dimgray":"gris soutenu","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavandin","hotpink":"rose intense","steelblue":"bleu acier","tomato":"tomate","lightpink":"rose clair","limegreen":"citron vert","indianred":"rose indien","papayawhip":"crème de papaye","lightslategray":"gris ardoise clair","gray":"gris","mediumorchid":"lilas moyen","cornsilk":"vanille","black":"noir","seagreen":"vert d'eau","darkslateblue":"bleu ardoise foncé","khaki":"kaki","lightblue":"bleu clair","palegreen":"vert pâle","azure":"bleu azur","peachpuff":"pêche","darkolivegreen":"olive foncé","yellowgreen":"vert jaunâtre"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fr");dijit.nls.loading.fr={"loadingState":"Chargement...","errorState":"Une erreur est survenue"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fr");dijit.nls.common.fr={"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Sauvegarder","itemClose":"Fermer"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fr");dijit.form.nls.validate.fr={"rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée.","invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fr");dijit.form.nls.ComboBox.fr={"previousMessage":"Choix précédents","nextMessage":"Plus de choix"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fr");dojo.cldr.nls.number.fr={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_he-il.js b/lib/dojo/nls/tt-rss-layer_he-il.js index 59bc21f1f..bc4572cc2 100644 --- a/lib/dojo/nls/tt-rss-layer_he-il.js +++ b/lib/dojo/nls/tt-rss-layer_he-il.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_he-il");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.he_il");dojo.nls.colors.he_il={"lightsteelblue":"כחול פלדה בהיר","orangered":"כתום אדום","midnightblue":"כחול כהה","cadetblue":"כחול ים","seashell":"צדף","slategrey":"אפור צפחה","coral":"אלמוג","darkturquoise":"טורקיז כהה","antiquewhite":"לבן עתיק","mediumspringgreen":"ירוק אביב בינוני","salmon":"סלמון","darkgrey":"אפור כהה","ivory":"שנהב","greenyellow":"ירוק-צהוב","mistyrose":"ורוד מעורפל","lightsalmon":"סלמון בהיר","silver":"כסף","dimgrey":"אפור עמום","orange":"כתום","white":"לבן","navajowhite":"לבן נוואחו","royalblue":"כחול מלכותי","deeppink":"ורוד עמוק","lime":"לימון","oldlace":"תחרה עתיקה","chartreuse":"ירוק-צהוב","darkcyan":"טורקיז כהה","yellow":"צהוב","linen":"פשתן","olive":"זית","gold":"זהב","lawngreen":"ירוק דשא","lightyellow":"צהוב בהיר","tan":"חום אדמדם","darkviolet":"סגול כהה","lightslategrey":"אפור צפחה בהיר","grey":"אפור","darkkhaki":"חאקי כהה","green":"ירוק","deepskyblue":"כחול שמיים עמוק","aqua":"אקווה","sienna":"סיינה","mintcream":"קרם מנטה","rosybrown":"חום ורדרד","mediumslateblue":"כחול צפחה בינוני","magenta":"בורדו","lightseagreen":"ירוק ים בהיר","cyan":"טורקיז","olivedrab":"זית עמום","darkgoldenrod":"זהוב כהה","slateblue":"כחול צפחה","mediumaquamarine":"כחול בינוני","lavender":"לבנדר","mediumseagreen":"ירוק ים בינוני","maroon":"חום אדמדם","darkslategray":"אפור צפחה כהה","mediumturquoise":"טורקיז בינוני","ghostwhite":"לבן רפאים","darkblue":"כחול כהה","mediumvioletred":"סגול-אדום בינוני","brown":"חום","lightgray":"אפור בהיר","sandybrown":"חום חולי","pink":"ורוד","firebrick":"לבנה שרופה","indigo":"אינדיגו","snow":"שלג","darkorchid":"סחלב כהה","turquoise":"טורקיז","chocolate":"שוקולד","springgreen":"ירוק אביב","moccasin":"מוקסין","navy":"כחול כהה","lemonchiffon":"ירוק לימון","teal":"כחול-ירוק כהה","floralwhite":"לבן פרחוני","cornflowerblue":"כחול דרדר","paleturquoise":"טורקיז בהיר","purple":"סגול","gainsboro":"גיינסבורו","plum":"שזיף","red":"אדום","blue":"כחול","forestgreen":"ירוק יער","darkgreen":"ירוק כהה","honeydew":"ירקרק","darkseagreen":"ירוק ים כהה","lightcoral":"אלמוג בהיר","palevioletred":"סגול-אדום בהיר","mediumpurple":"סגול בינוני","saddlebrown":"חום דהוי","darkmagenta":"בורדו כהה","thistle":"דרדר","whitesmoke":"עשן לבן","wheat":"חיוט","violet":"סגול","lightskyblue":"כחול שמיים בהיר","goldenrod":"זהוב","mediumblue":"תכלת בינוני","skyblue":"כחול שמיים","crimson":"ארגמן","darksalmon":"סלמון כהה","darkred":"אדום כהה","darkslategrey":"אפור צפחה כהה","peru":"פרו","lightgrey":"אפור בהיר","lightgoldenrodyellow":"צהוב בהיר","blanchedalmond":"שקד","aliceblue":"כחול פלדה","bisque":"לבן שקד","slategray":"אפור צפחה","palegoldenrod":"זהוב בהיר","darkorange":"כתום כהה","aquamarine":"אקוומארין","lightgreen":"ירוק בהיר","burlywood":"חום דהוי","dodgerblue":"כחול","darkgray":"אפור כהה","lightcyan":"טורקיז בהיר","powderblue":"כחול חיוור","blueviolet":"כחול-סגול","orchid":"סחלב","dimgray":"אפור עמום","beige":"בז'","fuchsia":"ורוד בהיר","lavenderblush":"סומק לבנדר","hotpink":"ורוד לוהט","steelblue":"כחול פלדה","tomato":"עגבניה","lightpink":"ורוד בהיר","limegreen":"ירוק לימוני","indianred":"אדום דהוי","papayawhip":"פפאיה","lightslategray":"אפור צפחה בהיר","gray":"אפור","mediumorchid":"סחלב בינוני","cornsilk":"צהבהב","black":"שחור","seagreen":"ירוק ים","darkslateblue":"כחול צפחה כהה","khaki":"חאקי","lightblue":"תכלת","palegreen":"ירוק בהיר","azure":"תכלת עז","peachpuff":"קציפת אפרסק","darkolivegreen":"ירוק זית כהה","yellowgreen":"ירוק צהוב"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.he_il");dijit.nls.loading.he_il={"loadingState":"טעינה...","errorState":"אירעה שגיאה"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.he_il");dijit.nls.common.he_il={"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.he_il");dijit.form.nls.validate.he_il={"rangeMessage":"הערך מחוץ לטווח.","invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.he_il");dijit.form.nls.ComboBox.he_il={"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.he_il");dojo.cldr.nls.number.he_il={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_he-il");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.he_il");dojo.nls.colors.he_il={"lightsteelblue":"כחול פלדה בהיר","orangered":"כתום אדום","midnightblue":"כחול כהה","cadetblue":"כחול ים","seashell":"צדף","slategrey":"אפור צפחה","coral":"אלמוג","darkturquoise":"טורקיז כהה","antiquewhite":"לבן עתיק","mediumspringgreen":"ירוק אביב בינוני","salmon":"סלמון","darkgrey":"אפור כהה","ivory":"שנהב","greenyellow":"ירוק-צהוב","mistyrose":"ורוד מעורפל","lightsalmon":"סלמון בהיר","silver":"כסף","dimgrey":"אפור עמום","orange":"כתום","white":"לבן","navajowhite":"לבן נוואחו","royalblue":"כחול מלכותי","deeppink":"ורוד עמוק","lime":"לימון","oldlace":"תחרה עתיקה","chartreuse":"ירוק-צהוב","darkcyan":"טורקיז כהה","yellow":"צהוב","linen":"פשתן","olive":"זית","gold":"זהב","lawngreen":"ירוק דשא","lightyellow":"צהוב בהיר","tan":"חום אדמדם","darkviolet":"סגול כהה","lightslategrey":"אפור צפחה בהיר","grey":"אפור","darkkhaki":"חאקי כהה","green":"ירוק","deepskyblue":"כחול שמיים עמוק","aqua":"אקווה","sienna":"סיינה","mintcream":"קרם מנטה","rosybrown":"חום ורדרד","mediumslateblue":"כחול צפחה בינוני","magenta":"בורדו","lightseagreen":"ירוק ים בהיר","cyan":"טורקיז","olivedrab":"זית עמום","darkgoldenrod":"זהוב כהה","slateblue":"כחול צפחה","mediumaquamarine":"כחול בינוני","lavender":"לבנדר","mediumseagreen":"ירוק ים בינוני","maroon":"חום אדמדם","darkslategray":"אפור צפחה כהה","mediumturquoise":"טורקיז בינוני","ghostwhite":"לבן רפאים","darkblue":"כחול כהה","mediumvioletred":"סגול-אדום בינוני","brown":"חום","lightgray":"אפור בהיר","sandybrown":"חום חולי","pink":"ורוד","firebrick":"לבנה שרופה","indigo":"אינדיגו","snow":"שלג","darkorchid":"סחלב כהה","turquoise":"טורקיז","chocolate":"שוקולד","springgreen":"ירוק אביב","moccasin":"מוקסין","navy":"כחול כהה","lemonchiffon":"ירוק לימון","teal":"כחול-ירוק כהה","floralwhite":"לבן פרחוני","cornflowerblue":"כחול דרדר","paleturquoise":"טורקיז בהיר","purple":"סגול","gainsboro":"גיינסבורו","plum":"שזיף","red":"אדום","blue":"כחול","forestgreen":"ירוק יער","darkgreen":"ירוק כהה","honeydew":"ירקרק","darkseagreen":"ירוק ים כהה","lightcoral":"אלמוג בהיר","palevioletred":"סגול-אדום בהיר","mediumpurple":"סגול בינוני","saddlebrown":"חום דהוי","darkmagenta":"בורדו כהה","thistle":"דרדר","whitesmoke":"עשן לבן","wheat":"חיוט","violet":"סגול","lightskyblue":"כחול שמיים בהיר","goldenrod":"זהוב","mediumblue":"תכלת בינוני","skyblue":"כחול שמיים","crimson":"ארגמן","darksalmon":"סלמון כהה","darkred":"אדום כהה","darkslategrey":"אפור צפחה כהה","peru":"פרו","lightgrey":"אפור בהיר","lightgoldenrodyellow":"צהוב בהיר","blanchedalmond":"שקד","aliceblue":"כחול פלדה","bisque":"לבן שקד","slategray":"אפור צפחה","palegoldenrod":"זהוב בהיר","darkorange":"כתום כהה","aquamarine":"אקוומארין","lightgreen":"ירוק בהיר","burlywood":"חום דהוי","dodgerblue":"כחול","darkgray":"אפור כהה","lightcyan":"טורקיז בהיר","powderblue":"כחול חיוור","blueviolet":"כחול-סגול","orchid":"סחלב","dimgray":"אפור עמום","beige":"בז'","fuchsia":"ורוד בהיר","lavenderblush":"סומק לבנדר","hotpink":"ורוד לוהט","steelblue":"כחול פלדה","tomato":"עגבניה","lightpink":"ורוד בהיר","limegreen":"ירוק לימוני","indianred":"אדום דהוי","papayawhip":"פפאיה","lightslategray":"אפור צפחה בהיר","gray":"אפור","mediumorchid":"סחלב בינוני","cornsilk":"צהבהב","black":"שחור","seagreen":"ירוק ים","darkslateblue":"כחול צפחה כהה","khaki":"חאקי","lightblue":"תכלת","palegreen":"ירוק בהיר","azure":"תכלת עז","peachpuff":"קציפת אפרסק","darkolivegreen":"ירוק זית כהה","yellowgreen":"ירוק צהוב"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.he_il");dijit.nls.loading.he_il={"loadingState":"טעינה...","errorState":"אירעה שגיאה"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.he_il");dijit.nls.common.he_il={"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.he_il");dijit.form.nls.validate.he_il={"rangeMessage":"הערך מחוץ לטווח.","invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.he_il");dijit.form.nls.ComboBox.he_il={"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.he_il");dojo.cldr.nls.number.he_il={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_he.js b/lib/dojo/nls/tt-rss-layer_he.js index a30b4434c..3efc22fc5 100644 --- a/lib/dojo/nls/tt-rss-layer_he.js +++ b/lib/dojo/nls/tt-rss-layer_he.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_he");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.he");dojo.nls.colors.he={"lightsteelblue":"כחול פלדה בהיר","orangered":"כתום אדום","midnightblue":"כחול כהה","cadetblue":"כחול ים","seashell":"צדף","slategrey":"אפור צפחה","coral":"אלמוג","darkturquoise":"טורקיז כהה","antiquewhite":"לבן עתיק","mediumspringgreen":"ירוק אביב בינוני","salmon":"סלמון","darkgrey":"אפור כהה","ivory":"שנהב","greenyellow":"ירוק-צהוב","mistyrose":"ורוד מעורפל","lightsalmon":"סלמון בהיר","silver":"כסף","dimgrey":"אפור עמום","orange":"כתום","white":"לבן","navajowhite":"לבן נוואחו","royalblue":"כחול מלכותי","deeppink":"ורוד עמוק","lime":"לימון","oldlace":"תחרה עתיקה","chartreuse":"ירוק-צהוב","darkcyan":"טורקיז כהה","yellow":"צהוב","linen":"פשתן","olive":"זית","gold":"זהב","lawngreen":"ירוק דשא","lightyellow":"צהוב בהיר","tan":"חום אדמדם","darkviolet":"סגול כהה","lightslategrey":"אפור צפחה בהיר","grey":"אפור","darkkhaki":"חאקי כהה","green":"ירוק","deepskyblue":"כחול שמיים עמוק","aqua":"אקווה","sienna":"סיינה","mintcream":"קרם מנטה","rosybrown":"חום ורדרד","mediumslateblue":"כחול צפחה בינוני","magenta":"בורדו","lightseagreen":"ירוק ים בהיר","cyan":"טורקיז","olivedrab":"זית עמום","darkgoldenrod":"זהוב כהה","slateblue":"כחול צפחה","mediumaquamarine":"כחול בינוני","lavender":"לבנדר","mediumseagreen":"ירוק ים בינוני","maroon":"חום אדמדם","darkslategray":"אפור צפחה כהה","mediumturquoise":"טורקיז בינוני","ghostwhite":"לבן רפאים","darkblue":"כחול כהה","mediumvioletred":"סגול-אדום בינוני","brown":"חום","lightgray":"אפור בהיר","sandybrown":"חום חולי","pink":"ורוד","firebrick":"לבנה שרופה","indigo":"אינדיגו","snow":"שלג","darkorchid":"סחלב כהה","turquoise":"טורקיז","chocolate":"שוקולד","springgreen":"ירוק אביב","moccasin":"מוקסין","navy":"כחול כהה","lemonchiffon":"ירוק לימון","teal":"כחול-ירוק כהה","floralwhite":"לבן פרחוני","cornflowerblue":"כחול דרדר","paleturquoise":"טורקיז בהיר","purple":"סגול","gainsboro":"גיינסבורו","plum":"שזיף","red":"אדום","blue":"כחול","forestgreen":"ירוק יער","darkgreen":"ירוק כהה","honeydew":"ירקרק","darkseagreen":"ירוק ים כהה","lightcoral":"אלמוג בהיר","palevioletred":"סגול-אדום בהיר","mediumpurple":"סגול בינוני","saddlebrown":"חום דהוי","darkmagenta":"בורדו כהה","thistle":"דרדר","whitesmoke":"עשן לבן","wheat":"חיוט","violet":"סגול","lightskyblue":"כחול שמיים בהיר","goldenrod":"זהוב","mediumblue":"תכלת בינוני","skyblue":"כחול שמיים","crimson":"ארגמן","darksalmon":"סלמון כהה","darkred":"אדום כהה","darkslategrey":"אפור צפחה כהה","peru":"פרו","lightgrey":"אפור בהיר","lightgoldenrodyellow":"צהוב בהיר","blanchedalmond":"שקד","aliceblue":"כחול פלדה","bisque":"לבן שקד","slategray":"אפור צפחה","palegoldenrod":"זהוב בהיר","darkorange":"כתום כהה","aquamarine":"אקוומארין","lightgreen":"ירוק בהיר","burlywood":"חום דהוי","dodgerblue":"כחול","darkgray":"אפור כהה","lightcyan":"טורקיז בהיר","powderblue":"כחול חיוור","blueviolet":"כחול-סגול","orchid":"סחלב","dimgray":"אפור עמום","beige":"בז'","fuchsia":"ורוד בהיר","lavenderblush":"סומק לבנדר","hotpink":"ורוד לוהט","steelblue":"כחול פלדה","tomato":"עגבניה","lightpink":"ורוד בהיר","limegreen":"ירוק לימוני","indianred":"אדום דהוי","papayawhip":"פפאיה","lightslategray":"אפור צפחה בהיר","gray":"אפור","mediumorchid":"סחלב בינוני","cornsilk":"צהבהב","black":"שחור","seagreen":"ירוק ים","darkslateblue":"כחול צפחה כהה","khaki":"חאקי","lightblue":"תכלת","palegreen":"ירוק בהיר","azure":"תכלת עז","peachpuff":"קציפת אפרסק","darkolivegreen":"ירוק זית כהה","yellowgreen":"ירוק צהוב"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.he");dijit.nls.loading.he={"loadingState":"טעינה...","errorState":"אירעה שגיאה"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.he");dijit.nls.common.he={"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.he");dijit.form.nls.validate.he={"rangeMessage":"הערך מחוץ לטווח.","invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.he");dijit.form.nls.ComboBox.he={"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.he");dojo.cldr.nls.number.he={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_he");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.he");dojo.nls.colors.he={"lightsteelblue":"כחול פלדה בהיר","orangered":"כתום אדום","midnightblue":"כחול כהה","cadetblue":"כחול ים","seashell":"צדף","slategrey":"אפור צפחה","coral":"אלמוג","darkturquoise":"טורקיז כהה","antiquewhite":"לבן עתיק","mediumspringgreen":"ירוק אביב בינוני","salmon":"סלמון","darkgrey":"אפור כהה","ivory":"שנהב","greenyellow":"ירוק-צהוב","mistyrose":"ורוד מעורפל","lightsalmon":"סלמון בהיר","silver":"כסף","dimgrey":"אפור עמום","orange":"כתום","white":"לבן","navajowhite":"לבן נוואחו","royalblue":"כחול מלכותי","deeppink":"ורוד עמוק","lime":"לימון","oldlace":"תחרה עתיקה","chartreuse":"ירוק-צהוב","darkcyan":"טורקיז כהה","yellow":"צהוב","linen":"פשתן","olive":"זית","gold":"זהב","lawngreen":"ירוק דשא","lightyellow":"צהוב בהיר","tan":"חום אדמדם","darkviolet":"סגול כהה","lightslategrey":"אפור צפחה בהיר","grey":"אפור","darkkhaki":"חאקי כהה","green":"ירוק","deepskyblue":"כחול שמיים עמוק","aqua":"אקווה","sienna":"סיינה","mintcream":"קרם מנטה","rosybrown":"חום ורדרד","mediumslateblue":"כחול צפחה בינוני","magenta":"בורדו","lightseagreen":"ירוק ים בהיר","cyan":"טורקיז","olivedrab":"זית עמום","darkgoldenrod":"זהוב כהה","slateblue":"כחול צפחה","mediumaquamarine":"כחול בינוני","lavender":"לבנדר","mediumseagreen":"ירוק ים בינוני","maroon":"חום אדמדם","darkslategray":"אפור צפחה כהה","mediumturquoise":"טורקיז בינוני","ghostwhite":"לבן רפאים","darkblue":"כחול כהה","mediumvioletred":"סגול-אדום בינוני","brown":"חום","lightgray":"אפור בהיר","sandybrown":"חום חולי","pink":"ורוד","firebrick":"לבנה שרופה","indigo":"אינדיגו","snow":"שלג","darkorchid":"סחלב כהה","turquoise":"טורקיז","chocolate":"שוקולד","springgreen":"ירוק אביב","moccasin":"מוקסין","navy":"כחול כהה","lemonchiffon":"ירוק לימון","teal":"כחול-ירוק כהה","floralwhite":"לבן פרחוני","cornflowerblue":"כחול דרדר","paleturquoise":"טורקיז בהיר","purple":"סגול","gainsboro":"גיינסבורו","plum":"שזיף","red":"אדום","blue":"כחול","forestgreen":"ירוק יער","darkgreen":"ירוק כהה","honeydew":"ירקרק","darkseagreen":"ירוק ים כהה","lightcoral":"אלמוג בהיר","palevioletred":"סגול-אדום בהיר","mediumpurple":"סגול בינוני","saddlebrown":"חום דהוי","darkmagenta":"בורדו כהה","thistle":"דרדר","whitesmoke":"עשן לבן","wheat":"חיוט","violet":"סגול","lightskyblue":"כחול שמיים בהיר","goldenrod":"זהוב","mediumblue":"תכלת בינוני","skyblue":"כחול שמיים","crimson":"ארגמן","darksalmon":"סלמון כהה","darkred":"אדום כהה","darkslategrey":"אפור צפחה כהה","peru":"פרו","lightgrey":"אפור בהיר","lightgoldenrodyellow":"צהוב בהיר","blanchedalmond":"שקד","aliceblue":"כחול פלדה","bisque":"לבן שקד","slategray":"אפור צפחה","palegoldenrod":"זהוב בהיר","darkorange":"כתום כהה","aquamarine":"אקוומארין","lightgreen":"ירוק בהיר","burlywood":"חום דהוי","dodgerblue":"כחול","darkgray":"אפור כהה","lightcyan":"טורקיז בהיר","powderblue":"כחול חיוור","blueviolet":"כחול-סגול","orchid":"סחלב","dimgray":"אפור עמום","beige":"בז'","fuchsia":"ורוד בהיר","lavenderblush":"סומק לבנדר","hotpink":"ורוד לוהט","steelblue":"כחול פלדה","tomato":"עגבניה","lightpink":"ורוד בהיר","limegreen":"ירוק לימוני","indianred":"אדום דהוי","papayawhip":"פפאיה","lightslategray":"אפור צפחה בהיר","gray":"אפור","mediumorchid":"סחלב בינוני","cornsilk":"צהבהב","black":"שחור","seagreen":"ירוק ים","darkslateblue":"כחול צפחה כהה","khaki":"חאקי","lightblue":"תכלת","palegreen":"ירוק בהיר","azure":"תכלת עז","peachpuff":"קציפת אפרסק","darkolivegreen":"ירוק זית כהה","yellowgreen":"ירוק צהוב"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.he");dijit.nls.loading.he={"loadingState":"טעינה...","errorState":"אירעה שגיאה"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.he");dijit.nls.common.he={"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.he");dijit.form.nls.validate.he={"rangeMessage":"הערך מחוץ לטווח.","invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.he");dijit.form.nls.ComboBox.he={"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.he");dojo.cldr.nls.number.he={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_hu.js b/lib/dojo/nls/tt-rss-layer_hu.js index 3e7728585..2567d6834 100644 --- a/lib/dojo/nls/tt-rss-layer_hu.js +++ b/lib/dojo/nls/tt-rss-layer_hu.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_hu");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.hu");dojo.nls.colors.hu={"lightsteelblue":"világos acélkék","orangered":"narancsvörös","midnightblue":"éjkék","cadetblue":"kadétkék","seashell":"kagyló","slategrey":"palaszürke","coral":"korall","darkturquoise":"sötét türkizkék","antiquewhite":"antik fehér","mediumspringgreen":"közepes tavaszzöld","salmon":"lazacszín","darkgrey":"sötétszürke","ivory":"elefántcsont","greenyellow":"zöldessárga","mistyrose":"halvány rózsaszín","lightsalmon":"világos lazacszín","silver":"ezüst","dimgrey":"halványszürke","orange":"narancssárga","white":"fehér","navajowhite":"navajo fehér","royalblue":"királykék","deeppink":"sötétrózsaszín","lime":"lime","oldlace":"régi csipke","chartreuse":"chartreuse","darkcyan":"sötét ciánkék","yellow":"sárga","linen":"vászonfehér","olive":"olajzöld","gold":"arany","lawngreen":"fűzöld","lightyellow":"világossárga","tan":"rozsdabarna","darkviolet":"sötét ibolyaszín","lightslategrey":"világos palaszürke","grey":"szürke","darkkhaki":"sötét khakiszín","green":"zöld","deepskyblue":"sötét égszínkék","aqua":"vízszín","sienna":"vörösesbarna","mintcream":"mentaszósz","rosybrown":"barnásrózsaszín","mediumslateblue":"közepes palakék","magenta":"bíbor","lightseagreen":"világos tengerzöld","cyan":"ciánkék","olivedrab":"olajzöld drapp","darkgoldenrod":"sötét aranyvessző","slateblue":"palakék","mediumaquamarine":"közepes akvamarin","lavender":"levendula","mediumseagreen":"közepes tengerzöld","maroon":"gesztenyebarna","darkslategray":"sötét palaszürke","mediumturquoise":"közepes türkizkék","ghostwhite":"szellemfehér","darkblue":"sötétkék","mediumvioletred":"közepes ibolyavörös","brown":"barna","lightgray":"világosszürke","sandybrown":"homokbarna","pink":"rózsaszín","firebrick":"téglavörös","indigo":"indigó","snow":"hó","darkorchid":"sötét orchidea","turquoise":"türkizkék","chocolate":"csokoládé","springgreen":"tavaszzöld","moccasin":"mokkaszín","navy":"tengerészkék","lemonchiffon":"sárga műselyem","teal":"pávakék","floralwhite":"virágfehér","cornflowerblue":"búzavirágkék","paleturquoise":"halvány türkizkék","purple":"lila","gainsboro":"gainsboro","plum":"szilvakék","red":"vörös","blue":"kék","forestgreen":"erdőzöld","darkgreen":"sötétzöld","honeydew":"mézharmat","darkseagreen":"sötét tengerzöld","lightcoral":"világos korall","palevioletred":"halvány ibolyavörös","mediumpurple":"közepes lila","saddlebrown":"nyeregbarna","darkmagenta":"sötétbíbor","thistle":"bogáncs","whitesmoke":"fehér füst","wheat":"búza","violet":"ibolyaszín","lightskyblue":"világos égszínkék","goldenrod":"aranyvessző","mediumblue":"közepes kék","skyblue":"égszínkék","crimson":"karmazsinvörös","darksalmon":"sötét lazacszín","darkred":"sötétvörös","darkslategrey":"sötét palaszürke","peru":"peru","lightgrey":"világosszürke","lightgoldenrodyellow":"világos aranyvessző sárga","blanchedalmond":"hámozott mandula","aliceblue":"Alice kék","bisque":"porcelán","slategray":"palaszürke","palegoldenrod":"halvány aranyvessző","darkorange":"sötét narancssárga","aquamarine":"akvamarin","lightgreen":"világoszöld","burlywood":"nyersfa","dodgerblue":"dodger kék","darkgray":"sötétszürke","lightcyan":"világos ciánkék","powderblue":"púderkék","blueviolet":"ibolyakék","orchid":"orchidea","dimgray":"halványszürke","beige":"bézs","fuchsia":"fukszia","lavenderblush":"pirosas levendula","hotpink":"meleg rózsaszín","steelblue":"acélkék","tomato":"paradicsom","lightpink":"világos rózsaszín","limegreen":"limezöld","indianred":"indiánvörös","papayawhip":"papayahab","lightslategray":"világos palaszürke","gray":"szürke","mediumorchid":"közepes orchidea","cornsilk":"kukoricahaj","black":"fekete","seagreen":"tengerzöld","darkslateblue":"sötét palakék","khaki":"khakiszín","lightblue":"világoskék","palegreen":"halványzöld","azure":"azúrkék","peachpuff":"barackszín","darkolivegreen":"sötét olajzöld","yellowgreen":"sárgászöld"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.hu");dijit.nls.loading.hu={"loadingState":"Betöltés...","errorState":"Sajnálom, hiba történt"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.hu");dijit.nls.common.hu={"buttonOk":"OK","buttonCancel":"Mégse","buttonSave":"Mentés","itemClose":"Bezárás"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.hu");dijit.form.nls.validate.hu={"rangeMessage":"Az érték kívül van a megengedett tartományon.","invalidMessage":"A megadott érték érvénytelen.","missingMessage":"Meg kell adni egy értéket."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.hu");dijit.form.nls.ComboBox.hu={"previousMessage":"Előző menüpontok","nextMessage":"További menüpontok"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.hu");dojo.cldr.nls.number.hu={"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_hu");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.hu");dojo.nls.colors.hu={"lightsteelblue":"világos acélkék","orangered":"narancsvörös","midnightblue":"éjkék","cadetblue":"kadétkék","seashell":"kagyló","slategrey":"palaszürke","coral":"korall","darkturquoise":"sötét türkizkék","antiquewhite":"antik fehér","mediumspringgreen":"közepes tavaszzöld","salmon":"lazacszín","darkgrey":"sötétszürke","ivory":"elefántcsont","greenyellow":"zöldessárga","mistyrose":"halvány rózsaszín","lightsalmon":"világos lazacszín","silver":"ezüst","dimgrey":"halványszürke","orange":"narancssárga","white":"fehér","navajowhite":"navajo fehér","royalblue":"királykék","deeppink":"sötétrózsaszín","lime":"lime","oldlace":"régi csipke","chartreuse":"chartreuse","darkcyan":"sötét ciánkék","yellow":"sárga","linen":"vászonfehér","olive":"olajzöld","gold":"arany","lawngreen":"fűzöld","lightyellow":"világossárga","tan":"rozsdabarna","darkviolet":"sötét ibolyaszín","lightslategrey":"világos palaszürke","grey":"szürke","darkkhaki":"sötét khakiszín","green":"zöld","deepskyblue":"sötét égszínkék","aqua":"vízszín","sienna":"vörösesbarna","mintcream":"mentaszósz","rosybrown":"barnásrózsaszín","mediumslateblue":"közepes palakék","magenta":"bíbor","lightseagreen":"világos tengerzöld","cyan":"ciánkék","olivedrab":"olajzöld drapp","darkgoldenrod":"sötét aranyvessző","slateblue":"palakék","mediumaquamarine":"közepes akvamarin","lavender":"levendula","mediumseagreen":"közepes tengerzöld","maroon":"gesztenyebarna","darkslategray":"sötét palaszürke","mediumturquoise":"közepes türkizkék","ghostwhite":"szellemfehér","darkblue":"sötétkék","mediumvioletred":"közepes ibolyavörös","brown":"barna","lightgray":"világosszürke","sandybrown":"homokbarna","pink":"rózsaszín","firebrick":"téglavörös","indigo":"indigó","snow":"hó","darkorchid":"sötét orchidea","turquoise":"türkizkék","chocolate":"csokoládé","springgreen":"tavaszzöld","moccasin":"mokkaszín","navy":"tengerészkék","lemonchiffon":"sárga műselyem","teal":"pávakék","floralwhite":"virágfehér","cornflowerblue":"búzavirágkék","paleturquoise":"halvány türkizkék","purple":"lila","gainsboro":"gainsboro","plum":"szilvakék","red":"vörös","blue":"kék","forestgreen":"erdőzöld","darkgreen":"sötétzöld","honeydew":"mézharmat","darkseagreen":"sötét tengerzöld","lightcoral":"világos korall","palevioletred":"halvány ibolyavörös","mediumpurple":"közepes lila","saddlebrown":"nyeregbarna","darkmagenta":"sötétbíbor","thistle":"bogáncs","whitesmoke":"fehér füst","wheat":"búza","violet":"ibolyaszín","lightskyblue":"világos égszínkék","goldenrod":"aranyvessző","mediumblue":"közepes kék","skyblue":"égszínkék","crimson":"karmazsinvörös","darksalmon":"sötét lazacszín","darkred":"sötétvörös","darkslategrey":"sötét palaszürke","peru":"peru","lightgrey":"világosszürke","lightgoldenrodyellow":"világos aranyvessző sárga","blanchedalmond":"hámozott mandula","aliceblue":"Alice kék","bisque":"porcelán","slategray":"palaszürke","palegoldenrod":"halvány aranyvessző","darkorange":"sötét narancssárga","aquamarine":"akvamarin","lightgreen":"világoszöld","burlywood":"nyersfa","dodgerblue":"dodger kék","darkgray":"sötétszürke","lightcyan":"világos ciánkék","powderblue":"púderkék","blueviolet":"ibolyakék","orchid":"orchidea","dimgray":"halványszürke","beige":"bézs","fuchsia":"fukszia","lavenderblush":"pirosas levendula","hotpink":"meleg rózsaszín","steelblue":"acélkék","tomato":"paradicsom","lightpink":"világos rózsaszín","limegreen":"limezöld","indianred":"indiánvörös","papayawhip":"papayahab","lightslategray":"világos palaszürke","gray":"szürke","mediumorchid":"közepes orchidea","cornsilk":"kukoricahaj","black":"fekete","seagreen":"tengerzöld","darkslateblue":"sötét palakék","khaki":"khakiszín","lightblue":"világoskék","palegreen":"halványzöld","azure":"azúrkék","peachpuff":"barackszín","darkolivegreen":"sötét olajzöld","yellowgreen":"sárgászöld"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.hu");dijit.nls.loading.hu={"loadingState":"Betöltés...","errorState":"Sajnálom, hiba történt"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.hu");dijit.nls.common.hu={"buttonOk":"OK","buttonCancel":"Mégse","buttonSave":"Mentés","itemClose":"Bezárás"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.hu");dijit.form.nls.validate.hu={"rangeMessage":"Az érték kívül van a megengedett tartományon.","invalidMessage":"A megadott érték érvénytelen.","missingMessage":"Meg kell adni egy értéket."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.hu");dijit.form.nls.ComboBox.hu={"previousMessage":"Előző menüpontok","nextMessage":"További menüpontok"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.hu");dojo.cldr.nls.number.hu={"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_it-it.js b/lib/dojo/nls/tt-rss-layer_it-it.js index ad0d6549c..d2df8f60a 100644 --- a/lib/dojo/nls/tt-rss-layer_it-it.js +++ b/lib/dojo/nls/tt-rss-layer_it-it.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_it-it");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.it_it");dojo.nls.colors.it_it={"lightsteelblue":"blu acciao chiaro","orangered":"vermiglio","midnightblue":"blu melanzana scuro","cadetblue":"verde acqua","seashell":"sabbia rosa","slategrey":"grigio ardesia","coral":"corallo","darkturquoise":"turchese scuro","antiquewhite":"bianco antico","mediumspringgreen":"verde primavera medio","salmon":"salmone","darkgrey":"grigio scuro","ivory":"avorio","greenyellow":"giallo verde","mistyrose":"rosa pallido","lightsalmon":"salmone chiaro","silver":"grigio 25%","dimgrey":"grigio 80%","orange":"arancione","white":"bianco","navajowhite":"pesca chiaro","royalblue":"blu reale","deeppink":"ciclamino","lime":"verde fluorescente","oldlace":"mandorla","chartreuse":"verde brillante","darkcyan":"ciano scuro","yellow":"giallo","linen":"lino","olive":"verde oliva","gold":"oro","lawngreen":"verde prato","lightyellow":"giallo chiaro","tan":"grigio bruno","darkviolet":"viola scuro","lightslategrey":"grigio ardesia chiaro","grey":"grigio","darkkhaki":"kaki scuro","green":"verde","deepskyblue":"azzurro cielo scuro","aqua":"acqua","sienna":"cuoio","mintcream":"bianco nuvola","rosybrown":"marrone rosato","mediumslateblue":"blu ardesia medio","magenta":"magenta","lightseagreen":"verde mare chiaro","cyan":"ciano","olivedrab":"marrone oliva","darkgoldenrod":"ocra scuro","slateblue":"blu ardesia","mediumaquamarine":"acquamarina medio","lavender":"lavanda","mediumseagreen":"verde mare medio","maroon":"scarlatto","darkslategray":"grigio ardesia scuro","mediumturquoise":"turchese medio","ghostwhite":"bianco gesso","darkblue":"blu scuro","mediumvioletred":"vinaccia","brown":"marrone","lightgray":"grigio chiaro","sandybrown":"marrone sabbia","pink":"rosa","firebrick":"rosso mattone","indigo":"indaco","snow":"neve","darkorchid":"orchidea scuro","turquoise":"turchese","chocolate":"cioccolato","springgreen":"verde primavera","moccasin":"mocassino","navy":"blu notte","lemonchiffon":"caffelatte chiaro","teal":"verde turchese","floralwhite":"bianco giglio","cornflowerblue":"blu fiordaliso","paleturquoise":"turchese pallido","purple":"porpora","gainsboro":"grigio 10%","plum":"prugna","red":"rosso","blue":"blu","forestgreen":"verde foresta","darkgreen":"verde scuro","honeydew":"bianco germoglio","darkseagreen":"verde mare scuro","lightcoral":"rosa corallo","palevioletred":"vinaccia chiaro","mediumpurple":"porpora medio","saddlebrown":"cacao","darkmagenta":"magenta scuro","thistle":"rosa cenere","whitesmoke":"bianco fumo","wheat":"sabbia","violet":"viola","lightskyblue":"azzurro cielo chiaro","goldenrod":"ocra gialla","mediumblue":"blu medio","skyblue":"azzurro cielo","crimson":"cremisi","darksalmon":"salmone scuro","darkred":"rosso scuro","darkslategrey":"grigio ardesia scuro","peru":"marrone terra bruciata","lightgrey":"grigio chiaro","lightgoldenrodyellow":"giallo tenue","blanchedalmond":"mandorla chiaro","aliceblue":"blu alice","bisque":"incarnato","slategray":"grigio ardesia","palegoldenrod":"giallo zolfo chiaro","darkorange":"arancione scuro","aquamarine":"acquamarina","lightgreen":"verde chiaro","burlywood":"tabacco","dodgerblue":"blu d'oriente","darkgray":"grigio scuro","lightcyan":"ciano chiaro","powderblue":"azzurro polvere","blueviolet":"blu violetto","orchid":"orchidea","dimgray":"grigio 80%","beige":"beige","fuchsia":"fucsia","lavenderblush":"bianco rosato","hotpink":"rosa acceso","steelblue":"blu acciao","tomato":"pomodoro","lightpink":"rosa chiaro","limegreen":"verde lime","indianred":"terra indiana","papayawhip":"cipria","lightslategray":"grigio ardesia chiaro","gray":"grigio","mediumorchid":"orchidea medio","cornsilk":"crema","black":"nero","seagreen":"verde mare","darkslateblue":"blu ardesia scuro","khaki":"kaki","lightblue":"azzurro","palegreen":"verde pallido","azure":"azzurro ghiaccio","peachpuff":"pesca","darkolivegreen":"verde oliva scuro","yellowgreen":"giallo verde"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.it_it");dijit.nls.loading.it_it={"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.it_it");dijit.nls.common.it_it={"buttonOk":"OK","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.it_it");dijit.form.nls.validate.it_it={"rangeMessage":"Questo valore non è compreso nell'intervallo.","invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.it_it");dijit.form.nls.ComboBox.it_it={"previousMessage":"Scelte precedenti","nextMessage":"Altre scelte"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.it_it");dojo.cldr.nls.number.it_it={"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":",","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_it-it");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.it_it");dojo.nls.colors.it_it={"lightsteelblue":"blu acciao chiaro","orangered":"vermiglio","midnightblue":"blu melanzana scuro","cadetblue":"verde acqua","seashell":"sabbia rosa","slategrey":"grigio ardesia","coral":"corallo","darkturquoise":"turchese scuro","antiquewhite":"bianco antico","mediumspringgreen":"verde primavera medio","salmon":"salmone","darkgrey":"grigio scuro","ivory":"avorio","greenyellow":"giallo verde","mistyrose":"rosa pallido","lightsalmon":"salmone chiaro","silver":"grigio 25%","dimgrey":"grigio 80%","orange":"arancione","white":"bianco","navajowhite":"pesca chiaro","royalblue":"blu reale","deeppink":"ciclamino","lime":"verde fluorescente","oldlace":"mandorla","chartreuse":"verde brillante","darkcyan":"ciano scuro","yellow":"giallo","linen":"lino","olive":"verde oliva","gold":"oro","lawngreen":"verde prato","lightyellow":"giallo chiaro","tan":"grigio bruno","darkviolet":"viola scuro","lightslategrey":"grigio ardesia chiaro","grey":"grigio","darkkhaki":"kaki scuro","green":"verde","deepskyblue":"azzurro cielo scuro","aqua":"acqua","sienna":"cuoio","mintcream":"bianco nuvola","rosybrown":"marrone rosato","mediumslateblue":"blu ardesia medio","magenta":"magenta","lightseagreen":"verde mare chiaro","cyan":"ciano","olivedrab":"marrone oliva","darkgoldenrod":"ocra scuro","slateblue":"blu ardesia","mediumaquamarine":"acquamarina medio","lavender":"lavanda","mediumseagreen":"verde mare medio","maroon":"scarlatto","darkslategray":"grigio ardesia scuro","mediumturquoise":"turchese medio","ghostwhite":"bianco gesso","darkblue":"blu scuro","mediumvioletred":"vinaccia","brown":"marrone","lightgray":"grigio chiaro","sandybrown":"marrone sabbia","pink":"rosa","firebrick":"rosso mattone","indigo":"indaco","snow":"neve","darkorchid":"orchidea scuro","turquoise":"turchese","chocolate":"cioccolato","springgreen":"verde primavera","moccasin":"mocassino","navy":"blu notte","lemonchiffon":"caffelatte chiaro","teal":"verde turchese","floralwhite":"bianco giglio","cornflowerblue":"blu fiordaliso","paleturquoise":"turchese pallido","purple":"porpora","gainsboro":"grigio 10%","plum":"prugna","red":"rosso","blue":"blu","forestgreen":"verde foresta","darkgreen":"verde scuro","honeydew":"bianco germoglio","darkseagreen":"verde mare scuro","lightcoral":"rosa corallo","palevioletred":"vinaccia chiaro","mediumpurple":"porpora medio","saddlebrown":"cacao","darkmagenta":"magenta scuro","thistle":"rosa cenere","whitesmoke":"bianco fumo","wheat":"sabbia","violet":"viola","lightskyblue":"azzurro cielo chiaro","goldenrod":"ocra gialla","mediumblue":"blu medio","skyblue":"azzurro cielo","crimson":"cremisi","darksalmon":"salmone scuro","darkred":"rosso scuro","darkslategrey":"grigio ardesia scuro","peru":"marrone terra bruciata","lightgrey":"grigio chiaro","lightgoldenrodyellow":"giallo tenue","blanchedalmond":"mandorla chiaro","aliceblue":"blu alice","bisque":"incarnato","slategray":"grigio ardesia","palegoldenrod":"giallo zolfo chiaro","darkorange":"arancione scuro","aquamarine":"acquamarina","lightgreen":"verde chiaro","burlywood":"tabacco","dodgerblue":"blu d'oriente","darkgray":"grigio scuro","lightcyan":"ciano chiaro","powderblue":"azzurro polvere","blueviolet":"blu violetto","orchid":"orchidea","dimgray":"grigio 80%","beige":"beige","fuchsia":"fucsia","lavenderblush":"bianco rosato","hotpink":"rosa acceso","steelblue":"blu acciao","tomato":"pomodoro","lightpink":"rosa chiaro","limegreen":"verde lime","indianred":"terra indiana","papayawhip":"cipria","lightslategray":"grigio ardesia chiaro","gray":"grigio","mediumorchid":"orchidea medio","cornsilk":"crema","black":"nero","seagreen":"verde mare","darkslateblue":"blu ardesia scuro","khaki":"kaki","lightblue":"azzurro","palegreen":"verde pallido","azure":"azzurro ghiaccio","peachpuff":"pesca","darkolivegreen":"verde oliva scuro","yellowgreen":"giallo verde"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.it_it");dijit.nls.loading.it_it={"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.it_it");dijit.nls.common.it_it={"buttonOk":"OK","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.it_it");dijit.form.nls.validate.it_it={"rangeMessage":"Questo valore non è compreso nell'intervallo.","invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.it_it");dijit.form.nls.ComboBox.it_it={"previousMessage":"Scelte precedenti","nextMessage":"Altre scelte"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.it_it");dojo.cldr.nls.number.it_it={"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":",","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_it.js b/lib/dojo/nls/tt-rss-layer_it.js index 640baacbc..e34368d15 100644 --- a/lib/dojo/nls/tt-rss-layer_it.js +++ b/lib/dojo/nls/tt-rss-layer_it.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_it");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.it");dojo.nls.colors.it={"lightsteelblue":"blu acciao chiaro","orangered":"vermiglio","midnightblue":"blu melanzana scuro","cadetblue":"verde acqua","seashell":"sabbia rosa","slategrey":"grigio ardesia","coral":"corallo","darkturquoise":"turchese scuro","antiquewhite":"bianco antico","mediumspringgreen":"verde primavera medio","salmon":"salmone","darkgrey":"grigio scuro","ivory":"avorio","greenyellow":"giallo verde","mistyrose":"rosa pallido","lightsalmon":"salmone chiaro","silver":"grigio 25%","dimgrey":"grigio 80%","orange":"arancione","white":"bianco","navajowhite":"pesca chiaro","royalblue":"blu reale","deeppink":"ciclamino","lime":"verde fluorescente","oldlace":"mandorla","chartreuse":"verde brillante","darkcyan":"ciano scuro","yellow":"giallo","linen":"lino","olive":"verde oliva","gold":"oro","lawngreen":"verde prato","lightyellow":"giallo chiaro","tan":"grigio bruno","darkviolet":"viola scuro","lightslategrey":"grigio ardesia chiaro","grey":"grigio","darkkhaki":"kaki scuro","green":"verde","deepskyblue":"azzurro cielo scuro","aqua":"acqua","sienna":"cuoio","mintcream":"bianco nuvola","rosybrown":"marrone rosato","mediumslateblue":"blu ardesia medio","magenta":"magenta","lightseagreen":"verde mare chiaro","cyan":"ciano","olivedrab":"marrone oliva","darkgoldenrod":"ocra scuro","slateblue":"blu ardesia","mediumaquamarine":"acquamarina medio","lavender":"lavanda","mediumseagreen":"verde mare medio","maroon":"scarlatto","darkslategray":"grigio ardesia scuro","mediumturquoise":"turchese medio","ghostwhite":"bianco gesso","darkblue":"blu scuro","mediumvioletred":"vinaccia","brown":"marrone","lightgray":"grigio chiaro","sandybrown":"marrone sabbia","pink":"rosa","firebrick":"rosso mattone","indigo":"indaco","snow":"neve","darkorchid":"orchidea scuro","turquoise":"turchese","chocolate":"cioccolato","springgreen":"verde primavera","moccasin":"mocassino","navy":"blu notte","lemonchiffon":"caffelatte chiaro","teal":"verde turchese","floralwhite":"bianco giglio","cornflowerblue":"blu fiordaliso","paleturquoise":"turchese pallido","purple":"porpora","gainsboro":"grigio 10%","plum":"prugna","red":"rosso","blue":"blu","forestgreen":"verde foresta","darkgreen":"verde scuro","honeydew":"bianco germoglio","darkseagreen":"verde mare scuro","lightcoral":"rosa corallo","palevioletred":"vinaccia chiaro","mediumpurple":"porpora medio","saddlebrown":"cacao","darkmagenta":"magenta scuro","thistle":"rosa cenere","whitesmoke":"bianco fumo","wheat":"sabbia","violet":"viola","lightskyblue":"azzurro cielo chiaro","goldenrod":"ocra gialla","mediumblue":"blu medio","skyblue":"azzurro cielo","crimson":"cremisi","darksalmon":"salmone scuro","darkred":"rosso scuro","darkslategrey":"grigio ardesia scuro","peru":"marrone terra bruciata","lightgrey":"grigio chiaro","lightgoldenrodyellow":"giallo tenue","blanchedalmond":"mandorla chiaro","aliceblue":"blu alice","bisque":"incarnato","slategray":"grigio ardesia","palegoldenrod":"giallo zolfo chiaro","darkorange":"arancione scuro","aquamarine":"acquamarina","lightgreen":"verde chiaro","burlywood":"tabacco","dodgerblue":"blu d'oriente","darkgray":"grigio scuro","lightcyan":"ciano chiaro","powderblue":"azzurro polvere","blueviolet":"blu violetto","orchid":"orchidea","dimgray":"grigio 80%","beige":"beige","fuchsia":"fucsia","lavenderblush":"bianco rosato","hotpink":"rosa acceso","steelblue":"blu acciao","tomato":"pomodoro","lightpink":"rosa chiaro","limegreen":"verde lime","indianred":"terra indiana","papayawhip":"cipria","lightslategray":"grigio ardesia chiaro","gray":"grigio","mediumorchid":"orchidea medio","cornsilk":"crema","black":"nero","seagreen":"verde mare","darkslateblue":"blu ardesia scuro","khaki":"kaki","lightblue":"azzurro","palegreen":"verde pallido","azure":"azzurro ghiaccio","peachpuff":"pesca","darkolivegreen":"verde oliva scuro","yellowgreen":"giallo verde"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.it");dijit.nls.loading.it={"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.it");dijit.nls.common.it={"buttonOk":"OK","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.it");dijit.form.nls.validate.it={"rangeMessage":"Questo valore non è compreso nell'intervallo.","invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.it");dijit.form.nls.ComboBox.it={"previousMessage":"Scelte precedenti","nextMessage":"Altre scelte"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.it");dojo.cldr.nls.number.it={"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":",","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_it");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.it");dojo.nls.colors.it={"lightsteelblue":"blu acciao chiaro","orangered":"vermiglio","midnightblue":"blu melanzana scuro","cadetblue":"verde acqua","seashell":"sabbia rosa","slategrey":"grigio ardesia","coral":"corallo","darkturquoise":"turchese scuro","antiquewhite":"bianco antico","mediumspringgreen":"verde primavera medio","salmon":"salmone","darkgrey":"grigio scuro","ivory":"avorio","greenyellow":"giallo verde","mistyrose":"rosa pallido","lightsalmon":"salmone chiaro","silver":"grigio 25%","dimgrey":"grigio 80%","orange":"arancione","white":"bianco","navajowhite":"pesca chiaro","royalblue":"blu reale","deeppink":"ciclamino","lime":"verde fluorescente","oldlace":"mandorla","chartreuse":"verde brillante","darkcyan":"ciano scuro","yellow":"giallo","linen":"lino","olive":"verde oliva","gold":"oro","lawngreen":"verde prato","lightyellow":"giallo chiaro","tan":"grigio bruno","darkviolet":"viola scuro","lightslategrey":"grigio ardesia chiaro","grey":"grigio","darkkhaki":"kaki scuro","green":"verde","deepskyblue":"azzurro cielo scuro","aqua":"acqua","sienna":"cuoio","mintcream":"bianco nuvola","rosybrown":"marrone rosato","mediumslateblue":"blu ardesia medio","magenta":"magenta","lightseagreen":"verde mare chiaro","cyan":"ciano","olivedrab":"marrone oliva","darkgoldenrod":"ocra scuro","slateblue":"blu ardesia","mediumaquamarine":"acquamarina medio","lavender":"lavanda","mediumseagreen":"verde mare medio","maroon":"scarlatto","darkslategray":"grigio ardesia scuro","mediumturquoise":"turchese medio","ghostwhite":"bianco gesso","darkblue":"blu scuro","mediumvioletred":"vinaccia","brown":"marrone","lightgray":"grigio chiaro","sandybrown":"marrone sabbia","pink":"rosa","firebrick":"rosso mattone","indigo":"indaco","snow":"neve","darkorchid":"orchidea scuro","turquoise":"turchese","chocolate":"cioccolato","springgreen":"verde primavera","moccasin":"mocassino","navy":"blu notte","lemonchiffon":"caffelatte chiaro","teal":"verde turchese","floralwhite":"bianco giglio","cornflowerblue":"blu fiordaliso","paleturquoise":"turchese pallido","purple":"porpora","gainsboro":"grigio 10%","plum":"prugna","red":"rosso","blue":"blu","forestgreen":"verde foresta","darkgreen":"verde scuro","honeydew":"bianco germoglio","darkseagreen":"verde mare scuro","lightcoral":"rosa corallo","palevioletred":"vinaccia chiaro","mediumpurple":"porpora medio","saddlebrown":"cacao","darkmagenta":"magenta scuro","thistle":"rosa cenere","whitesmoke":"bianco fumo","wheat":"sabbia","violet":"viola","lightskyblue":"azzurro cielo chiaro","goldenrod":"ocra gialla","mediumblue":"blu medio","skyblue":"azzurro cielo","crimson":"cremisi","darksalmon":"salmone scuro","darkred":"rosso scuro","darkslategrey":"grigio ardesia scuro","peru":"marrone terra bruciata","lightgrey":"grigio chiaro","lightgoldenrodyellow":"giallo tenue","blanchedalmond":"mandorla chiaro","aliceblue":"blu alice","bisque":"incarnato","slategray":"grigio ardesia","palegoldenrod":"giallo zolfo chiaro","darkorange":"arancione scuro","aquamarine":"acquamarina","lightgreen":"verde chiaro","burlywood":"tabacco","dodgerblue":"blu d'oriente","darkgray":"grigio scuro","lightcyan":"ciano chiaro","powderblue":"azzurro polvere","blueviolet":"blu violetto","orchid":"orchidea","dimgray":"grigio 80%","beige":"beige","fuchsia":"fucsia","lavenderblush":"bianco rosato","hotpink":"rosa acceso","steelblue":"blu acciao","tomato":"pomodoro","lightpink":"rosa chiaro","limegreen":"verde lime","indianred":"terra indiana","papayawhip":"cipria","lightslategray":"grigio ardesia chiaro","gray":"grigio","mediumorchid":"orchidea medio","cornsilk":"crema","black":"nero","seagreen":"verde mare","darkslateblue":"blu ardesia scuro","khaki":"kaki","lightblue":"azzurro","palegreen":"verde pallido","azure":"azzurro ghiaccio","peachpuff":"pesca","darkolivegreen":"verde oliva scuro","yellowgreen":"giallo verde"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.it");dijit.nls.loading.it={"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.it");dijit.nls.common.it={"buttonOk":"OK","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.it");dijit.form.nls.validate.it={"rangeMessage":"Questo valore non è compreso nell'intervallo.","invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.it");dijit.form.nls.ComboBox.it={"previousMessage":"Scelte precedenti","nextMessage":"Altre scelte"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.it");dojo.cldr.nls.number.it={"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":",","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_ja-jp.js b/lib/dojo/nls/tt-rss-layer_ja-jp.js index 84aa8786b..016cf5d5c 100644 --- a/lib/dojo/nls/tt-rss-layer_ja-jp.js +++ b/lib/dojo/nls/tt-rss-layer_ja-jp.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_ja-jp");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ja_jp");dojo.nls.colors.ja_jp={"lightsteelblue":"ライト・スチール・ブルー","orangered":"オレンジ・レッド","midnightblue":"ミッドナイト・ブルー","cadetblue":"くすんだ青","seashell":"シーシェル","slategrey":"スレート・グレイ","coral":"珊瑚","darkturquoise":"ダーク・ターコイズ","antiquewhite":"アンティーク・ホワイト","mediumspringgreen":"ミディアム・スプリング・グリーン","salmon":"サーモン","darkgrey":"ダーク・グレイ","ivory":"アイボリー","greenyellow":"緑黄色","mistyrose":"ミスティ・ローズ","lightsalmon":"ライト・サーモン","silver":"銀","dimgrey":"くすんだグレイ","orange":"オレンジ","white":"白","navajowhite":"ナバホ・ホワイト","royalblue":"藤色","deeppink":"濃いピンク","lime":"ライム","oldlace":"オールド・レイス","chartreuse":"淡黄緑","darkcyan":"ダーク・シアン・ブルー","yellow":"黄","linen":"亜麻色","olive":"オリーブ","gold":"金","lawngreen":"ローン・グリーン","lightyellow":"ライト・イエロー","tan":"茶褐色","darkviolet":"ダーク・バイオレット","lightslategrey":"ライト・スレート・グレイ","grey":"グレイ","darkkhaki":"ダーク・カーキー","green":"緑","deepskyblue":"濃い空色","aqua":"アクア","sienna":"黄褐色","mintcream":"ミント・クリーム","rosybrown":"ロージー・ブラウン","mediumslateblue":"ミディアム・スレート・ブルー","magenta":"赤紫","lightseagreen":"ライト・シー・グリーン","cyan":"シアン・ブルー","olivedrab":"濃黄緑","darkgoldenrod":"ダーク・ゴールデン・ロッド","slateblue":"スレート・ブルー","mediumaquamarine":"ミディアム・アクアマリーン","lavender":"ラベンダー","mediumseagreen":"ミディアム・シー・グリーン","maroon":"えび茶","darkslategray":"ダーク・スレート・グレイ","mediumturquoise":"ミディアム・ターコイズ","ghostwhite":"ゴースト・ホワイト","darkblue":"ダーク・ブルー","mediumvioletred":"ミディアム・バイオレット・レッド","brown":"茶","lightgray":"ライト・グレイ","sandybrown":"砂褐色","pink":"ピンク","firebrick":"赤煉瓦色","indigo":"藍色","snow":"雪色","darkorchid":"ダーク・オーキッド","turquoise":"ターコイズ","chocolate":"チョコレート","springgreen":"スプリング・グリーン","moccasin":"モカシン","navy":"濃紺","lemonchiffon":"レモン・シフォン","teal":"ティール","floralwhite":"フローラル・ホワイト","cornflowerblue":"コーンフラワー・ブルー","paleturquoise":"ペイル・ターコイズ","purple":"紫","gainsboro":"ゲインズボーロ","plum":"深紫","red":"赤","blue":"青","forestgreen":"フォレスト・グリーン","darkgreen":"ダーク・グリーン","honeydew":"ハニーデュー","darkseagreen":"ダーク・シー・グリーン","lightcoral":"ライト・コーラル","palevioletred":"ペイル・バイオレット・レッド","mediumpurple":"ミディアム・パープル","saddlebrown":"サドル・ブラウン","darkmagenta":"ダーク・マジェンタ","thistle":"シスル","whitesmoke":"ホワイト・スモーク","wheat":"小麦色","violet":"すみれ色","lightskyblue":"ライト・スカイ・ブルー","goldenrod":"ゴールデン・ロッド","mediumblue":"ミディアム・ブルー","skyblue":"スカイ・ブルー","crimson":"深紅","darksalmon":"ダーク・サーモン","darkred":"ダーク・レッド","darkslategrey":"ダーク・スレート・グレイ","peru":"ペルー","lightgrey":"ライト・グレイ","lightgoldenrodyellow":"ライト・ゴールデン・ロッド・イエロー","blanchedalmond":"皮なしアーモンド","aliceblue":"アリス・ブルー","bisque":"ビスク","slategray":"スレート・グレイ","palegoldenrod":"ペイル・ゴールデン・ロッド","darkorange":"ダーク・オレンジ","aquamarine":"碧緑","lightgreen":"ライト・グリーン","burlywood":"バーリーウッド","dodgerblue":"ドッジャー・ブルー","darkgray":"ダーク・グレイ","lightcyan":"ライト・シアン","powderblue":"淡青","blueviolet":"青紫","orchid":"薄紫","dimgray":"くすんだグレイ","beige":"ベージュ","fuchsia":"紫紅色","lavenderblush":"ラベンダー・ブラッシ","hotpink":"ホット・ピンク","steelblue":"鋼色","tomato":"トマト色","lightpink":"ライト・ピンク","limegreen":"ライム・グリーン","indianred":"インディアン・レッド","papayawhip":"パパイア・ホイップ","lightslategray":"ライト・スレート・グレイ","gray":"グレイ","mediumorchid":"ミディアム・オーキッド","cornsilk":"コーンシルク","black":"黒","seagreen":"シー・グリーン","darkslateblue":"ダーク・スレート・ブルー","khaki":"カーキー","lightblue":"ライト・ブルー","palegreen":"ペイル・グリーン","azure":"薄い空色","peachpuff":"ピーチ・パフ","darkolivegreen":"ダーク・オリーブ・グリーン","yellowgreen":"黄緑"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ja_jp");dijit.nls.loading.ja_jp={"loadingState":"ロード中...","errorState":"エラーが発生しました。"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ja_jp");dijit.nls.common.ja_jp={"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ja_jp");dijit.form.nls.validate.ja_jp={"rangeMessage":"この値は範囲外です。","invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ja_jp");dijit.form.nls.ComboBox.ja_jp={"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ja_jp");dojo.cldr.nls.number.ja_jp={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_ja-jp");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ja_jp");dojo.nls.colors.ja_jp={"lightsteelblue":"ライト・スチール・ブルー","orangered":"オレンジ・レッド","midnightblue":"ミッドナイト・ブルー","cadetblue":"くすんだ青","seashell":"シーシェル","slategrey":"スレート・グレイ","coral":"珊瑚","darkturquoise":"ダーク・ターコイズ","antiquewhite":"アンティーク・ホワイト","mediumspringgreen":"ミディアム・スプリング・グリーン","salmon":"サーモン","darkgrey":"ダーク・グレイ","ivory":"アイボリー","greenyellow":"緑黄色","mistyrose":"ミスティ・ローズ","lightsalmon":"ライト・サーモン","silver":"銀","dimgrey":"くすんだグレイ","orange":"オレンジ","white":"白","navajowhite":"ナバホ・ホワイト","royalblue":"藤色","deeppink":"濃いピンク","lime":"ライム","oldlace":"オールド・レイス","chartreuse":"淡黄緑","darkcyan":"ダーク・シアン・ブルー","yellow":"黄","linen":"亜麻色","olive":"オリーブ","gold":"金","lawngreen":"ローン・グリーン","lightyellow":"ライト・イエロー","tan":"茶褐色","darkviolet":"ダーク・バイオレット","lightslategrey":"ライト・スレート・グレイ","grey":"グレイ","darkkhaki":"ダーク・カーキー","green":"緑","deepskyblue":"濃い空色","aqua":"アクア","sienna":"黄褐色","mintcream":"ミント・クリーム","rosybrown":"ロージー・ブラウン","mediumslateblue":"ミディアム・スレート・ブルー","magenta":"赤紫","lightseagreen":"ライト・シー・グリーン","cyan":"シアン・ブルー","olivedrab":"濃黄緑","darkgoldenrod":"ダーク・ゴールデン・ロッド","slateblue":"スレート・ブルー","mediumaquamarine":"ミディアム・アクアマリーン","lavender":"ラベンダー","mediumseagreen":"ミディアム・シー・グリーン","maroon":"えび茶","darkslategray":"ダーク・スレート・グレイ","mediumturquoise":"ミディアム・ターコイズ","ghostwhite":"ゴースト・ホワイト","darkblue":"ダーク・ブルー","mediumvioletred":"ミディアム・バイオレット・レッド","brown":"茶","lightgray":"ライト・グレイ","sandybrown":"砂褐色","pink":"ピンク","firebrick":"赤煉瓦色","indigo":"藍色","snow":"雪色","darkorchid":"ダーク・オーキッド","turquoise":"ターコイズ","chocolate":"チョコレート","springgreen":"スプリング・グリーン","moccasin":"モカシン","navy":"濃紺","lemonchiffon":"レモン・シフォン","teal":"ティール","floralwhite":"フローラル・ホワイト","cornflowerblue":"コーンフラワー・ブルー","paleturquoise":"ペイル・ターコイズ","purple":"紫","gainsboro":"ゲインズボーロ","plum":"深紫","red":"赤","blue":"青","forestgreen":"フォレスト・グリーン","darkgreen":"ダーク・グリーン","honeydew":"ハニーデュー","darkseagreen":"ダーク・シー・グリーン","lightcoral":"ライト・コーラル","palevioletred":"ペイル・バイオレット・レッド","mediumpurple":"ミディアム・パープル","saddlebrown":"サドル・ブラウン","darkmagenta":"ダーク・マジェンタ","thistle":"シスル","whitesmoke":"ホワイト・スモーク","wheat":"小麦色","violet":"すみれ色","lightskyblue":"ライト・スカイ・ブルー","goldenrod":"ゴールデン・ロッド","mediumblue":"ミディアム・ブルー","skyblue":"スカイ・ブルー","crimson":"深紅","darksalmon":"ダーク・サーモン","darkred":"ダーク・レッド","darkslategrey":"ダーク・スレート・グレイ","peru":"ペルー","lightgrey":"ライト・グレイ","lightgoldenrodyellow":"ライト・ゴールデン・ロッド・イエロー","blanchedalmond":"皮なしアーモンド","aliceblue":"アリス・ブルー","bisque":"ビスク","slategray":"スレート・グレイ","palegoldenrod":"ペイル・ゴールデン・ロッド","darkorange":"ダーク・オレンジ","aquamarine":"碧緑","lightgreen":"ライト・グリーン","burlywood":"バーリーウッド","dodgerblue":"ドッジャー・ブルー","darkgray":"ダーク・グレイ","lightcyan":"ライト・シアン","powderblue":"淡青","blueviolet":"青紫","orchid":"薄紫","dimgray":"くすんだグレイ","beige":"ベージュ","fuchsia":"紫紅色","lavenderblush":"ラベンダー・ブラッシ","hotpink":"ホット・ピンク","steelblue":"鋼色","tomato":"トマト色","lightpink":"ライト・ピンク","limegreen":"ライム・グリーン","indianred":"インディアン・レッド","papayawhip":"パパイア・ホイップ","lightslategray":"ライト・スレート・グレイ","gray":"グレイ","mediumorchid":"ミディアム・オーキッド","cornsilk":"コーンシルク","black":"黒","seagreen":"シー・グリーン","darkslateblue":"ダーク・スレート・ブルー","khaki":"カーキー","lightblue":"ライト・ブルー","palegreen":"ペイル・グリーン","azure":"薄い空色","peachpuff":"ピーチ・パフ","darkolivegreen":"ダーク・オリーブ・グリーン","yellowgreen":"黄緑"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ja_jp");dijit.nls.loading.ja_jp={"loadingState":"ロード中...","errorState":"エラーが発生しました。"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ja_jp");dijit.nls.common.ja_jp={"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ja_jp");dijit.form.nls.validate.ja_jp={"rangeMessage":"この値は範囲外です。","invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ja_jp");dijit.form.nls.ComboBox.ja_jp={"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ja_jp");dojo.cldr.nls.number.ja_jp={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_ja.js b/lib/dojo/nls/tt-rss-layer_ja.js index d71241d29..13da053da 100644 --- a/lib/dojo/nls/tt-rss-layer_ja.js +++ b/lib/dojo/nls/tt-rss-layer_ja.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_ja");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ja");dojo.nls.colors.ja={"lightsteelblue":"ライト・スチール・ブルー","orangered":"オレンジ・レッド","midnightblue":"ミッドナイト・ブルー","cadetblue":"くすんだ青","seashell":"シーシェル","slategrey":"スレート・グレイ","coral":"珊瑚","darkturquoise":"ダーク・ターコイズ","antiquewhite":"アンティーク・ホワイト","mediumspringgreen":"ミディアム・スプリング・グリーン","salmon":"サーモン","darkgrey":"ダーク・グレイ","ivory":"アイボリー","greenyellow":"緑黄色","mistyrose":"ミスティ・ローズ","lightsalmon":"ライト・サーモン","silver":"銀","dimgrey":"くすんだグレイ","orange":"オレンジ","white":"白","navajowhite":"ナバホ・ホワイト","royalblue":"藤色","deeppink":"濃いピンク","lime":"ライム","oldlace":"オールド・レイス","chartreuse":"淡黄緑","darkcyan":"ダーク・シアン・ブルー","yellow":"黄","linen":"亜麻色","olive":"オリーブ","gold":"金","lawngreen":"ローン・グリーン","lightyellow":"ライト・イエロー","tan":"茶褐色","darkviolet":"ダーク・バイオレット","lightslategrey":"ライト・スレート・グレイ","grey":"グレイ","darkkhaki":"ダーク・カーキー","green":"緑","deepskyblue":"濃い空色","aqua":"アクア","sienna":"黄褐色","mintcream":"ミント・クリーム","rosybrown":"ロージー・ブラウン","mediumslateblue":"ミディアム・スレート・ブルー","magenta":"赤紫","lightseagreen":"ライト・シー・グリーン","cyan":"シアン・ブルー","olivedrab":"濃黄緑","darkgoldenrod":"ダーク・ゴールデン・ロッド","slateblue":"スレート・ブルー","mediumaquamarine":"ミディアム・アクアマリーン","lavender":"ラベンダー","mediumseagreen":"ミディアム・シー・グリーン","maroon":"えび茶","darkslategray":"ダーク・スレート・グレイ","mediumturquoise":"ミディアム・ターコイズ","ghostwhite":"ゴースト・ホワイト","darkblue":"ダーク・ブルー","mediumvioletred":"ミディアム・バイオレット・レッド","brown":"茶","lightgray":"ライト・グレイ","sandybrown":"砂褐色","pink":"ピンク","firebrick":"赤煉瓦色","indigo":"藍色","snow":"雪色","darkorchid":"ダーク・オーキッド","turquoise":"ターコイズ","chocolate":"チョコレート","springgreen":"スプリング・グリーン","moccasin":"モカシン","navy":"濃紺","lemonchiffon":"レモン・シフォン","teal":"ティール","floralwhite":"フローラル・ホワイト","cornflowerblue":"コーンフラワー・ブルー","paleturquoise":"ペイル・ターコイズ","purple":"紫","gainsboro":"ゲインズボーロ","plum":"深紫","red":"赤","blue":"青","forestgreen":"フォレスト・グリーン","darkgreen":"ダーク・グリーン","honeydew":"ハニーデュー","darkseagreen":"ダーク・シー・グリーン","lightcoral":"ライト・コーラル","palevioletred":"ペイル・バイオレット・レッド","mediumpurple":"ミディアム・パープル","saddlebrown":"サドル・ブラウン","darkmagenta":"ダーク・マジェンタ","thistle":"シスル","whitesmoke":"ホワイト・スモーク","wheat":"小麦色","violet":"すみれ色","lightskyblue":"ライト・スカイ・ブルー","goldenrod":"ゴールデン・ロッド","mediumblue":"ミディアム・ブルー","skyblue":"スカイ・ブルー","crimson":"深紅","darksalmon":"ダーク・サーモン","darkred":"ダーク・レッド","darkslategrey":"ダーク・スレート・グレイ","peru":"ペルー","lightgrey":"ライト・グレイ","lightgoldenrodyellow":"ライト・ゴールデン・ロッド・イエロー","blanchedalmond":"皮なしアーモンド","aliceblue":"アリス・ブルー","bisque":"ビスク","slategray":"スレート・グレイ","palegoldenrod":"ペイル・ゴールデン・ロッド","darkorange":"ダーク・オレンジ","aquamarine":"碧緑","lightgreen":"ライト・グリーン","burlywood":"バーリーウッド","dodgerblue":"ドッジャー・ブルー","darkgray":"ダーク・グレイ","lightcyan":"ライト・シアン","powderblue":"淡青","blueviolet":"青紫","orchid":"薄紫","dimgray":"くすんだグレイ","beige":"ベージュ","fuchsia":"紫紅色","lavenderblush":"ラベンダー・ブラッシ","hotpink":"ホット・ピンク","steelblue":"鋼色","tomato":"トマト色","lightpink":"ライト・ピンク","limegreen":"ライム・グリーン","indianred":"インディアン・レッド","papayawhip":"パパイア・ホイップ","lightslategray":"ライト・スレート・グレイ","gray":"グレイ","mediumorchid":"ミディアム・オーキッド","cornsilk":"コーンシルク","black":"黒","seagreen":"シー・グリーン","darkslateblue":"ダーク・スレート・ブルー","khaki":"カーキー","lightblue":"ライト・ブルー","palegreen":"ペイル・グリーン","azure":"薄い空色","peachpuff":"ピーチ・パフ","darkolivegreen":"ダーク・オリーブ・グリーン","yellowgreen":"黄緑"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ja");dijit.nls.loading.ja={"loadingState":"ロード中...","errorState":"エラーが発生しました。"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ja");dijit.nls.common.ja={"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ja");dijit.form.nls.validate.ja={"rangeMessage":"この値は範囲外です。","invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ja");dijit.form.nls.ComboBox.ja={"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ja");dojo.cldr.nls.number.ja={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_ja");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ja");dojo.nls.colors.ja={"lightsteelblue":"ライト・スチール・ブルー","orangered":"オレンジ・レッド","midnightblue":"ミッドナイト・ブルー","cadetblue":"くすんだ青","seashell":"シーシェル","slategrey":"スレート・グレイ","coral":"珊瑚","darkturquoise":"ダーク・ターコイズ","antiquewhite":"アンティーク・ホワイト","mediumspringgreen":"ミディアム・スプリング・グリーン","salmon":"サーモン","darkgrey":"ダーク・グレイ","ivory":"アイボリー","greenyellow":"緑黄色","mistyrose":"ミスティ・ローズ","lightsalmon":"ライト・サーモン","silver":"銀","dimgrey":"くすんだグレイ","orange":"オレンジ","white":"白","navajowhite":"ナバホ・ホワイト","royalblue":"藤色","deeppink":"濃いピンク","lime":"ライム","oldlace":"オールド・レイス","chartreuse":"淡黄緑","darkcyan":"ダーク・シアン・ブルー","yellow":"黄","linen":"亜麻色","olive":"オリーブ","gold":"金","lawngreen":"ローン・グリーン","lightyellow":"ライト・イエロー","tan":"茶褐色","darkviolet":"ダーク・バイオレット","lightslategrey":"ライト・スレート・グレイ","grey":"グレイ","darkkhaki":"ダーク・カーキー","green":"緑","deepskyblue":"濃い空色","aqua":"アクア","sienna":"黄褐色","mintcream":"ミント・クリーム","rosybrown":"ロージー・ブラウン","mediumslateblue":"ミディアム・スレート・ブルー","magenta":"赤紫","lightseagreen":"ライト・シー・グリーン","cyan":"シアン・ブルー","olivedrab":"濃黄緑","darkgoldenrod":"ダーク・ゴールデン・ロッド","slateblue":"スレート・ブルー","mediumaquamarine":"ミディアム・アクアマリーン","lavender":"ラベンダー","mediumseagreen":"ミディアム・シー・グリーン","maroon":"えび茶","darkslategray":"ダーク・スレート・グレイ","mediumturquoise":"ミディアム・ターコイズ","ghostwhite":"ゴースト・ホワイト","darkblue":"ダーク・ブルー","mediumvioletred":"ミディアム・バイオレット・レッド","brown":"茶","lightgray":"ライト・グレイ","sandybrown":"砂褐色","pink":"ピンク","firebrick":"赤煉瓦色","indigo":"藍色","snow":"雪色","darkorchid":"ダーク・オーキッド","turquoise":"ターコイズ","chocolate":"チョコレート","springgreen":"スプリング・グリーン","moccasin":"モカシン","navy":"濃紺","lemonchiffon":"レモン・シフォン","teal":"ティール","floralwhite":"フローラル・ホワイト","cornflowerblue":"コーンフラワー・ブルー","paleturquoise":"ペイル・ターコイズ","purple":"紫","gainsboro":"ゲインズボーロ","plum":"深紫","red":"赤","blue":"青","forestgreen":"フォレスト・グリーン","darkgreen":"ダーク・グリーン","honeydew":"ハニーデュー","darkseagreen":"ダーク・シー・グリーン","lightcoral":"ライト・コーラル","palevioletred":"ペイル・バイオレット・レッド","mediumpurple":"ミディアム・パープル","saddlebrown":"サドル・ブラウン","darkmagenta":"ダーク・マジェンタ","thistle":"シスル","whitesmoke":"ホワイト・スモーク","wheat":"小麦色","violet":"すみれ色","lightskyblue":"ライト・スカイ・ブルー","goldenrod":"ゴールデン・ロッド","mediumblue":"ミディアム・ブルー","skyblue":"スカイ・ブルー","crimson":"深紅","darksalmon":"ダーク・サーモン","darkred":"ダーク・レッド","darkslategrey":"ダーク・スレート・グレイ","peru":"ペルー","lightgrey":"ライト・グレイ","lightgoldenrodyellow":"ライト・ゴールデン・ロッド・イエロー","blanchedalmond":"皮なしアーモンド","aliceblue":"アリス・ブルー","bisque":"ビスク","slategray":"スレート・グレイ","palegoldenrod":"ペイル・ゴールデン・ロッド","darkorange":"ダーク・オレンジ","aquamarine":"碧緑","lightgreen":"ライト・グリーン","burlywood":"バーリーウッド","dodgerblue":"ドッジャー・ブルー","darkgray":"ダーク・グレイ","lightcyan":"ライト・シアン","powderblue":"淡青","blueviolet":"青紫","orchid":"薄紫","dimgray":"くすんだグレイ","beige":"ベージュ","fuchsia":"紫紅色","lavenderblush":"ラベンダー・ブラッシ","hotpink":"ホット・ピンク","steelblue":"鋼色","tomato":"トマト色","lightpink":"ライト・ピンク","limegreen":"ライム・グリーン","indianred":"インディアン・レッド","papayawhip":"パパイア・ホイップ","lightslategray":"ライト・スレート・グレイ","gray":"グレイ","mediumorchid":"ミディアム・オーキッド","cornsilk":"コーンシルク","black":"黒","seagreen":"シー・グリーン","darkslateblue":"ダーク・スレート・ブルー","khaki":"カーキー","lightblue":"ライト・ブルー","palegreen":"ペイル・グリーン","azure":"薄い空色","peachpuff":"ピーチ・パフ","darkolivegreen":"ダーク・オリーブ・グリーン","yellowgreen":"黄緑"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ja");dijit.nls.loading.ja={"loadingState":"ロード中...","errorState":"エラーが発生しました。"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ja");dijit.nls.common.ja={"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ja");dijit.form.nls.validate.ja={"rangeMessage":"この値は範囲外です。","invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ja");dijit.form.nls.ComboBox.ja={"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ja");dojo.cldr.nls.number.ja={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_ko-kr.js b/lib/dojo/nls/tt-rss-layer_ko-kr.js index a79a5e02d..36e6ab5bf 100644 --- a/lib/dojo/nls/tt-rss-layer_ko-kr.js +++ b/lib/dojo/nls/tt-rss-layer_ko-kr.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_ko-kr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ko_kr");dojo.nls.colors.ko_kr={"lightsteelblue":"라이트 스틸 블루(light steel blue)","orangered":"오렌지 레드(orange red)","midnightblue":"미드나잇 블루(midnight blue)","cadetblue":"카뎃 블루(cadet blue)","seashell":"씨쉘(seashell)","slategrey":"슬레이트 그레이(slate gray)","coral":"코랄(coral)","darkturquoise":"다크 터콰즈(dark turquoise)","antiquewhite":"앤틱 화이트(antique white)","mediumspringgreen":"미디엄 스프링 그린(medium spring green)","salmon":"샐몬(salmon)","darkgrey":"다크 그레이(dark gray)","ivory":"아이보리(ivory)","greenyellow":"그린 옐로우(green-yellow)","mistyrose":"미스티 로즈(misty rose)","lightsalmon":"라이트 샐몬(light salmon)","silver":"실버(silver)","dimgrey":"딤 그레이(dim gray)","orange":"오렌지(orange)","white":"화이트(white)","navajowhite":"나바호 화이트(navajo white)","royalblue":"로얄 블루(royal blue)","deeppink":"딥 핑크(deep pink)","lime":"라임(lime)","oldlace":"올드 레이스(old lace)","chartreuse":"샤르트뢰즈(chartreuse)","darkcyan":"다크 시안(dark cyan)","yellow":"옐로우(yellow)","linen":"리넨(linen)","olive":"올리브(olive)","gold":"골드(gold)","lawngreen":"론 그린(lawn green)","lightyellow":"라이트 옐로우(light yellow)","tan":"탠(tan)","darkviolet":"다크 바이올렛(dark violet)","lightslategrey":"라이트 슬레이트 그레이(light slate gray)","grey":"그레이(gray)","darkkhaki":"다크 카키(dark khaki)","green":"그린(green)","deepskyblue":"딥 스카이 블루(deep sky blue)","aqua":"아쿠아(aqua)","sienna":"시에나(sienna)","mintcream":"민트 크림(mint cream)","rosybrown":"로지 브라운(rosy brown)","mediumslateblue":"미디엄 슬레이트 블루(medium slate blue)","magenta":"마젠타(magenta)","lightseagreen":"라이트 씨 그린(light sea green)","cyan":"시안(cyan)","olivedrab":"올리브 드랩(olive drab)","darkgoldenrod":"다크 골든로드(dark goldenrod)","slateblue":"슬레이트 블루(slate blue)","mediumaquamarine":"미디엄 아쿠아마린(medium aquamarine)","lavender":"라벤더(lavender)","mediumseagreen":"미디엄 씨 그린(medium sea green)","maroon":"마룬(maroon)","darkslategray":"다크 슬레이트 그레이(dark slate gray)","mediumturquoise":"미디엄 터콰즈(medium turquoise)","ghostwhite":"고스트 화이트(ghost white)","darkblue":"다크 블루(dark blue)","mediumvioletred":"미디엄 바이올렛 레드(medium violet-red)","brown":"브라운(brown)","lightgray":"라이트 그레이(light gray)","sandybrown":"샌디 브라운(sandy brown)","pink":"핑크(pink)","firebrick":"파이어 브릭(fire brick)","indigo":"인디고(indigo)","snow":"스노우(snow)","darkorchid":"다크 오키드(dark orchid)","turquoise":"터콰즈(turquoise)","chocolate":"초콜렛(chocolate)","springgreen":"스프링 그린(spring green)","moccasin":"모카신(moccasin)","navy":"네이비(navy)","lemonchiffon":"레몬 쉬폰(lemon chiffon)","teal":"틸(teal)","floralwhite":"플로랄 화이트(floral white)","cornflowerblue":"콘플라워 블루(cornflower blue)","paleturquoise":"페일 터콰즈(pale turquoise)","purple":"퍼플(purple)","gainsboro":"게인스브로(gainsboro)","plum":"플럼(plum)","red":"레드(red)","blue":"블루(blue)","forestgreen":"포레스트 그린(forest green)","darkgreen":"다크 그린(dark green)","honeydew":"허니듀(honeydew)","darkseagreen":"다크 씨 그린(dark sea green)","lightcoral":"라이트 코랄(light coral)","palevioletred":"페일 바이올렛 레드(pale violet-red)","mediumpurple":"미디엄 퍼플(medium purple)","saddlebrown":"새들 브라운(saddle brown)","darkmagenta":"다크 마젠타(dark magenta)","thistle":"시슬(thistle)","whitesmoke":"화이트 스모크(white smoke)","wheat":"휘트(wheat)","violet":"바이올렛(violet)","lightskyblue":"라이트 스카이 블루(light sky blue)","goldenrod":"골든로드(goldenrod)","mediumblue":"미디엄 블루(medium blue)","skyblue":"스카이 블루(sky blue)","crimson":"크림슨(crimson)","darksalmon":"다크 샐몬(dark salmon)","darkred":"다크 레드(dark red)","darkslategrey":"다크 슬레이트 그레이(dark slate gray)","peru":"페루(peru)","lightgrey":"라이트 그레이(light gray)","lightgoldenrodyellow":"라이트 골든로드 옐로우(light goldenrod yellow)","blanchedalmond":"블랜치 아몬드(blanched almond)","aliceblue":"앨리스 블루(alice blue)","bisque":"비스크(bisque)","slategray":"슬레이트 그레이(slate gray)","palegoldenrod":"페일 골든로드(pale goldenrod)","darkorange":"다크 오렌지(dark orange)","aquamarine":"아쿠아마린(aquamarine)","lightgreen":"라이트 그린(light green)","burlywood":"벌리우드(burlywood)","dodgerblue":"다저 블루(dodger blue)","darkgray":"다크 그레이(dark gray)","lightcyan":"라이트 시안(light cyan)","powderblue":"파우더 블루(powder blue)","blueviolet":"블루 바이올렛(blue-violet)","orchid":"오키드(orchid)","dimgray":"딤 그레이(dim gray)","beige":"베이지(beige)","fuchsia":"후크샤(fuchsia)","lavenderblush":"라벤더 블러쉬(lavender blush)","hotpink":"핫 핑크(hot pink)","steelblue":"스틸 블루(steel blue)","tomato":"토마토(tomato)","lightpink":"라이트 핑크(light pink)","limegreen":"라임 그린(lime green)","indianred":"인디안 레드(indian red)","papayawhip":"파파야 휩(papaya whip)","lightslategray":"라이트 슬레이트 그레이(light slate gray)","gray":"그레이(gray)","mediumorchid":"미디엄 오키드(medium orchid)","cornsilk":"콘실크(cornsilk)","black":"블랙(black)","seagreen":"씨 그린(sea green)","darkslateblue":"다크 슬레이트 블루(dark slate blue)","khaki":"카키(khaki)","lightblue":"라이트 블루(light blue)","palegreen":"페일 그린(pale green)","azure":"애쥬어(azure)","peachpuff":"피치 퍼프(peach puff)","darkolivegreen":"다크 올리브 그린(dark olive green)","yellowgreen":"옐로우 그린(yellow green)"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ko_kr");dijit.nls.loading.ko_kr={"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ko_kr");dijit.nls.common.ko_kr={"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ko_kr");dijit.form.nls.validate.ko_kr={"rangeMessage":"이 값은 범위를 벗어납니다.","invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ko_kr");dijit.form.nls.ComboBox.ko_kr={"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ko_kr");dojo.cldr.nls.number.ko_kr={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_ko-kr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ko_kr");dojo.nls.colors.ko_kr={"lightsteelblue":"라이트 스틸 블루(light steel blue)","orangered":"오렌지 레드(orange red)","midnightblue":"미드나잇 블루(midnight blue)","cadetblue":"카뎃 블루(cadet blue)","seashell":"씨쉘(seashell)","slategrey":"슬레이트 그레이(slate gray)","coral":"코랄(coral)","darkturquoise":"다크 터콰즈(dark turquoise)","antiquewhite":"앤틱 화이트(antique white)","mediumspringgreen":"미디엄 스프링 그린(medium spring green)","salmon":"샐몬(salmon)","darkgrey":"다크 그레이(dark gray)","ivory":"아이보리(ivory)","greenyellow":"그린 옐로우(green-yellow)","mistyrose":"미스티 로즈(misty rose)","lightsalmon":"라이트 샐몬(light salmon)","silver":"실버(silver)","dimgrey":"딤 그레이(dim gray)","orange":"오렌지(orange)","white":"화이트(white)","navajowhite":"나바호 화이트(navajo white)","royalblue":"로얄 블루(royal blue)","deeppink":"딥 핑크(deep pink)","lime":"라임(lime)","oldlace":"올드 레이스(old lace)","chartreuse":"샤르트뢰즈(chartreuse)","darkcyan":"다크 시안(dark cyan)","yellow":"옐로우(yellow)","linen":"리넨(linen)","olive":"올리브(olive)","gold":"골드(gold)","lawngreen":"론 그린(lawn green)","lightyellow":"라이트 옐로우(light yellow)","tan":"탠(tan)","darkviolet":"다크 바이올렛(dark violet)","lightslategrey":"라이트 슬레이트 그레이(light slate gray)","grey":"그레이(gray)","darkkhaki":"다크 카키(dark khaki)","green":"그린(green)","deepskyblue":"딥 스카이 블루(deep sky blue)","aqua":"아쿠아(aqua)","sienna":"시에나(sienna)","mintcream":"민트 크림(mint cream)","rosybrown":"로지 브라운(rosy brown)","mediumslateblue":"미디엄 슬레이트 블루(medium slate blue)","magenta":"마젠타(magenta)","lightseagreen":"라이트 씨 그린(light sea green)","cyan":"시안(cyan)","olivedrab":"올리브 드랩(olive drab)","darkgoldenrod":"다크 골든로드(dark goldenrod)","slateblue":"슬레이트 블루(slate blue)","mediumaquamarine":"미디엄 아쿠아마린(medium aquamarine)","lavender":"라벤더(lavender)","mediumseagreen":"미디엄 씨 그린(medium sea green)","maroon":"마룬(maroon)","darkslategray":"다크 슬레이트 그레이(dark slate gray)","mediumturquoise":"미디엄 터콰즈(medium turquoise)","ghostwhite":"고스트 화이트(ghost white)","darkblue":"다크 블루(dark blue)","mediumvioletred":"미디엄 바이올렛 레드(medium violet-red)","brown":"브라운(brown)","lightgray":"라이트 그레이(light gray)","sandybrown":"샌디 브라운(sandy brown)","pink":"핑크(pink)","firebrick":"파이어 브릭(fire brick)","indigo":"인디고(indigo)","snow":"스노우(snow)","darkorchid":"다크 오키드(dark orchid)","turquoise":"터콰즈(turquoise)","chocolate":"초콜렛(chocolate)","springgreen":"스프링 그린(spring green)","moccasin":"모카신(moccasin)","navy":"네이비(navy)","lemonchiffon":"레몬 쉬폰(lemon chiffon)","teal":"틸(teal)","floralwhite":"플로랄 화이트(floral white)","cornflowerblue":"콘플라워 블루(cornflower blue)","paleturquoise":"페일 터콰즈(pale turquoise)","purple":"퍼플(purple)","gainsboro":"게인스브로(gainsboro)","plum":"플럼(plum)","red":"레드(red)","blue":"블루(blue)","forestgreen":"포레스트 그린(forest green)","darkgreen":"다크 그린(dark green)","honeydew":"허니듀(honeydew)","darkseagreen":"다크 씨 그린(dark sea green)","lightcoral":"라이트 코랄(light coral)","palevioletred":"페일 바이올렛 레드(pale violet-red)","mediumpurple":"미디엄 퍼플(medium purple)","saddlebrown":"새들 브라운(saddle brown)","darkmagenta":"다크 마젠타(dark magenta)","thistle":"시슬(thistle)","whitesmoke":"화이트 스모크(white smoke)","wheat":"휘트(wheat)","violet":"바이올렛(violet)","lightskyblue":"라이트 스카이 블루(light sky blue)","goldenrod":"골든로드(goldenrod)","mediumblue":"미디엄 블루(medium blue)","skyblue":"스카이 블루(sky blue)","crimson":"크림슨(crimson)","darksalmon":"다크 샐몬(dark salmon)","darkred":"다크 레드(dark red)","darkslategrey":"다크 슬레이트 그레이(dark slate gray)","peru":"페루(peru)","lightgrey":"라이트 그레이(light gray)","lightgoldenrodyellow":"라이트 골든로드 옐로우(light goldenrod yellow)","blanchedalmond":"블랜치 아몬드(blanched almond)","aliceblue":"앨리스 블루(alice blue)","bisque":"비스크(bisque)","slategray":"슬레이트 그레이(slate gray)","palegoldenrod":"페일 골든로드(pale goldenrod)","darkorange":"다크 오렌지(dark orange)","aquamarine":"아쿠아마린(aquamarine)","lightgreen":"라이트 그린(light green)","burlywood":"벌리우드(burlywood)","dodgerblue":"다저 블루(dodger blue)","darkgray":"다크 그레이(dark gray)","lightcyan":"라이트 시안(light cyan)","powderblue":"파우더 블루(powder blue)","blueviolet":"블루 바이올렛(blue-violet)","orchid":"오키드(orchid)","dimgray":"딤 그레이(dim gray)","beige":"베이지(beige)","fuchsia":"후크샤(fuchsia)","lavenderblush":"라벤더 블러쉬(lavender blush)","hotpink":"핫 핑크(hot pink)","steelblue":"스틸 블루(steel blue)","tomato":"토마토(tomato)","lightpink":"라이트 핑크(light pink)","limegreen":"라임 그린(lime green)","indianred":"인디안 레드(indian red)","papayawhip":"파파야 휩(papaya whip)","lightslategray":"라이트 슬레이트 그레이(light slate gray)","gray":"그레이(gray)","mediumorchid":"미디엄 오키드(medium orchid)","cornsilk":"콘실크(cornsilk)","black":"블랙(black)","seagreen":"씨 그린(sea green)","darkslateblue":"다크 슬레이트 블루(dark slate blue)","khaki":"카키(khaki)","lightblue":"라이트 블루(light blue)","palegreen":"페일 그린(pale green)","azure":"애쥬어(azure)","peachpuff":"피치 퍼프(peach puff)","darkolivegreen":"다크 올리브 그린(dark olive green)","yellowgreen":"옐로우 그린(yellow green)"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ko_kr");dijit.nls.loading.ko_kr={"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ko_kr");dijit.nls.common.ko_kr={"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ko_kr");dijit.form.nls.validate.ko_kr={"rangeMessage":"이 값은 범위를 벗어납니다.","invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ko_kr");dijit.form.nls.ComboBox.ko_kr={"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ko_kr");dojo.cldr.nls.number.ko_kr={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_ko.js b/lib/dojo/nls/tt-rss-layer_ko.js index da86270d5..a919765c0 100644 --- a/lib/dojo/nls/tt-rss-layer_ko.js +++ b/lib/dojo/nls/tt-rss-layer_ko.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_ko");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ko");dojo.nls.colors.ko={"lightsteelblue":"라이트 스틸 블루(light steel blue)","orangered":"오렌지 레드(orange red)","midnightblue":"미드나잇 블루(midnight blue)","cadetblue":"카뎃 블루(cadet blue)","seashell":"씨쉘(seashell)","slategrey":"슬레이트 그레이(slate gray)","coral":"코랄(coral)","darkturquoise":"다크 터콰즈(dark turquoise)","antiquewhite":"앤틱 화이트(antique white)","mediumspringgreen":"미디엄 스프링 그린(medium spring green)","salmon":"샐몬(salmon)","darkgrey":"다크 그레이(dark gray)","ivory":"아이보리(ivory)","greenyellow":"그린 옐로우(green-yellow)","mistyrose":"미스티 로즈(misty rose)","lightsalmon":"라이트 샐몬(light salmon)","silver":"실버(silver)","dimgrey":"딤 그레이(dim gray)","orange":"오렌지(orange)","white":"화이트(white)","navajowhite":"나바호 화이트(navajo white)","royalblue":"로얄 블루(royal blue)","deeppink":"딥 핑크(deep pink)","lime":"라임(lime)","oldlace":"올드 레이스(old lace)","chartreuse":"샤르트뢰즈(chartreuse)","darkcyan":"다크 시안(dark cyan)","yellow":"옐로우(yellow)","linen":"리넨(linen)","olive":"올리브(olive)","gold":"골드(gold)","lawngreen":"론 그린(lawn green)","lightyellow":"라이트 옐로우(light yellow)","tan":"탠(tan)","darkviolet":"다크 바이올렛(dark violet)","lightslategrey":"라이트 슬레이트 그레이(light slate gray)","grey":"그레이(gray)","darkkhaki":"다크 카키(dark khaki)","green":"그린(green)","deepskyblue":"딥 스카이 블루(deep sky blue)","aqua":"아쿠아(aqua)","sienna":"시에나(sienna)","mintcream":"민트 크림(mint cream)","rosybrown":"로지 브라운(rosy brown)","mediumslateblue":"미디엄 슬레이트 블루(medium slate blue)","magenta":"마젠타(magenta)","lightseagreen":"라이트 씨 그린(light sea green)","cyan":"시안(cyan)","olivedrab":"올리브 드랩(olive drab)","darkgoldenrod":"다크 골든로드(dark goldenrod)","slateblue":"슬레이트 블루(slate blue)","mediumaquamarine":"미디엄 아쿠아마린(medium aquamarine)","lavender":"라벤더(lavender)","mediumseagreen":"미디엄 씨 그린(medium sea green)","maroon":"마룬(maroon)","darkslategray":"다크 슬레이트 그레이(dark slate gray)","mediumturquoise":"미디엄 터콰즈(medium turquoise)","ghostwhite":"고스트 화이트(ghost white)","darkblue":"다크 블루(dark blue)","mediumvioletred":"미디엄 바이올렛 레드(medium violet-red)","brown":"브라운(brown)","lightgray":"라이트 그레이(light gray)","sandybrown":"샌디 브라운(sandy brown)","pink":"핑크(pink)","firebrick":"파이어 브릭(fire brick)","indigo":"인디고(indigo)","snow":"스노우(snow)","darkorchid":"다크 오키드(dark orchid)","turquoise":"터콰즈(turquoise)","chocolate":"초콜렛(chocolate)","springgreen":"스프링 그린(spring green)","moccasin":"모카신(moccasin)","navy":"네이비(navy)","lemonchiffon":"레몬 쉬폰(lemon chiffon)","teal":"틸(teal)","floralwhite":"플로랄 화이트(floral white)","cornflowerblue":"콘플라워 블루(cornflower blue)","paleturquoise":"페일 터콰즈(pale turquoise)","purple":"퍼플(purple)","gainsboro":"게인스브로(gainsboro)","plum":"플럼(plum)","red":"레드(red)","blue":"블루(blue)","forestgreen":"포레스트 그린(forest green)","darkgreen":"다크 그린(dark green)","honeydew":"허니듀(honeydew)","darkseagreen":"다크 씨 그린(dark sea green)","lightcoral":"라이트 코랄(light coral)","palevioletred":"페일 바이올렛 레드(pale violet-red)","mediumpurple":"미디엄 퍼플(medium purple)","saddlebrown":"새들 브라운(saddle brown)","darkmagenta":"다크 마젠타(dark magenta)","thistle":"시슬(thistle)","whitesmoke":"화이트 스모크(white smoke)","wheat":"휘트(wheat)","violet":"바이올렛(violet)","lightskyblue":"라이트 스카이 블루(light sky blue)","goldenrod":"골든로드(goldenrod)","mediumblue":"미디엄 블루(medium blue)","skyblue":"스카이 블루(sky blue)","crimson":"크림슨(crimson)","darksalmon":"다크 샐몬(dark salmon)","darkred":"다크 레드(dark red)","darkslategrey":"다크 슬레이트 그레이(dark slate gray)","peru":"페루(peru)","lightgrey":"라이트 그레이(light gray)","lightgoldenrodyellow":"라이트 골든로드 옐로우(light goldenrod yellow)","blanchedalmond":"블랜치 아몬드(blanched almond)","aliceblue":"앨리스 블루(alice blue)","bisque":"비스크(bisque)","slategray":"슬레이트 그레이(slate gray)","palegoldenrod":"페일 골든로드(pale goldenrod)","darkorange":"다크 오렌지(dark orange)","aquamarine":"아쿠아마린(aquamarine)","lightgreen":"라이트 그린(light green)","burlywood":"벌리우드(burlywood)","dodgerblue":"다저 블루(dodger blue)","darkgray":"다크 그레이(dark gray)","lightcyan":"라이트 시안(light cyan)","powderblue":"파우더 블루(powder blue)","blueviolet":"블루 바이올렛(blue-violet)","orchid":"오키드(orchid)","dimgray":"딤 그레이(dim gray)","beige":"베이지(beige)","fuchsia":"후크샤(fuchsia)","lavenderblush":"라벤더 블러쉬(lavender blush)","hotpink":"핫 핑크(hot pink)","steelblue":"스틸 블루(steel blue)","tomato":"토마토(tomato)","lightpink":"라이트 핑크(light pink)","limegreen":"라임 그린(lime green)","indianred":"인디안 레드(indian red)","papayawhip":"파파야 휩(papaya whip)","lightslategray":"라이트 슬레이트 그레이(light slate gray)","gray":"그레이(gray)","mediumorchid":"미디엄 오키드(medium orchid)","cornsilk":"콘실크(cornsilk)","black":"블랙(black)","seagreen":"씨 그린(sea green)","darkslateblue":"다크 슬레이트 블루(dark slate blue)","khaki":"카키(khaki)","lightblue":"라이트 블루(light blue)","palegreen":"페일 그린(pale green)","azure":"애쥬어(azure)","peachpuff":"피치 퍼프(peach puff)","darkolivegreen":"다크 올리브 그린(dark olive green)","yellowgreen":"옐로우 그린(yellow green)"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ko");dijit.nls.loading.ko={"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ko");dijit.nls.common.ko={"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ko");dijit.form.nls.validate.ko={"rangeMessage":"이 값은 범위를 벗어납니다.","invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ko");dijit.form.nls.ComboBox.ko={"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ko");dojo.cldr.nls.number.ko={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_ko");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ko");dojo.nls.colors.ko={"lightsteelblue":"라이트 스틸 블루(light steel blue)","orangered":"오렌지 레드(orange red)","midnightblue":"미드나잇 블루(midnight blue)","cadetblue":"카뎃 블루(cadet blue)","seashell":"씨쉘(seashell)","slategrey":"슬레이트 그레이(slate gray)","coral":"코랄(coral)","darkturquoise":"다크 터콰즈(dark turquoise)","antiquewhite":"앤틱 화이트(antique white)","mediumspringgreen":"미디엄 스프링 그린(medium spring green)","salmon":"샐몬(salmon)","darkgrey":"다크 그레이(dark gray)","ivory":"아이보리(ivory)","greenyellow":"그린 옐로우(green-yellow)","mistyrose":"미스티 로즈(misty rose)","lightsalmon":"라이트 샐몬(light salmon)","silver":"실버(silver)","dimgrey":"딤 그레이(dim gray)","orange":"오렌지(orange)","white":"화이트(white)","navajowhite":"나바호 화이트(navajo white)","royalblue":"로얄 블루(royal blue)","deeppink":"딥 핑크(deep pink)","lime":"라임(lime)","oldlace":"올드 레이스(old lace)","chartreuse":"샤르트뢰즈(chartreuse)","darkcyan":"다크 시안(dark cyan)","yellow":"옐로우(yellow)","linen":"리넨(linen)","olive":"올리브(olive)","gold":"골드(gold)","lawngreen":"론 그린(lawn green)","lightyellow":"라이트 옐로우(light yellow)","tan":"탠(tan)","darkviolet":"다크 바이올렛(dark violet)","lightslategrey":"라이트 슬레이트 그레이(light slate gray)","grey":"그레이(gray)","darkkhaki":"다크 카키(dark khaki)","green":"그린(green)","deepskyblue":"딥 스카이 블루(deep sky blue)","aqua":"아쿠아(aqua)","sienna":"시에나(sienna)","mintcream":"민트 크림(mint cream)","rosybrown":"로지 브라운(rosy brown)","mediumslateblue":"미디엄 슬레이트 블루(medium slate blue)","magenta":"마젠타(magenta)","lightseagreen":"라이트 씨 그린(light sea green)","cyan":"시안(cyan)","olivedrab":"올리브 드랩(olive drab)","darkgoldenrod":"다크 골든로드(dark goldenrod)","slateblue":"슬레이트 블루(slate blue)","mediumaquamarine":"미디엄 아쿠아마린(medium aquamarine)","lavender":"라벤더(lavender)","mediumseagreen":"미디엄 씨 그린(medium sea green)","maroon":"마룬(maroon)","darkslategray":"다크 슬레이트 그레이(dark slate gray)","mediumturquoise":"미디엄 터콰즈(medium turquoise)","ghostwhite":"고스트 화이트(ghost white)","darkblue":"다크 블루(dark blue)","mediumvioletred":"미디엄 바이올렛 레드(medium violet-red)","brown":"브라운(brown)","lightgray":"라이트 그레이(light gray)","sandybrown":"샌디 브라운(sandy brown)","pink":"핑크(pink)","firebrick":"파이어 브릭(fire brick)","indigo":"인디고(indigo)","snow":"스노우(snow)","darkorchid":"다크 오키드(dark orchid)","turquoise":"터콰즈(turquoise)","chocolate":"초콜렛(chocolate)","springgreen":"스프링 그린(spring green)","moccasin":"모카신(moccasin)","navy":"네이비(navy)","lemonchiffon":"레몬 쉬폰(lemon chiffon)","teal":"틸(teal)","floralwhite":"플로랄 화이트(floral white)","cornflowerblue":"콘플라워 블루(cornflower blue)","paleturquoise":"페일 터콰즈(pale turquoise)","purple":"퍼플(purple)","gainsboro":"게인스브로(gainsboro)","plum":"플럼(plum)","red":"레드(red)","blue":"블루(blue)","forestgreen":"포레스트 그린(forest green)","darkgreen":"다크 그린(dark green)","honeydew":"허니듀(honeydew)","darkseagreen":"다크 씨 그린(dark sea green)","lightcoral":"라이트 코랄(light coral)","palevioletred":"페일 바이올렛 레드(pale violet-red)","mediumpurple":"미디엄 퍼플(medium purple)","saddlebrown":"새들 브라운(saddle brown)","darkmagenta":"다크 마젠타(dark magenta)","thistle":"시슬(thistle)","whitesmoke":"화이트 스모크(white smoke)","wheat":"휘트(wheat)","violet":"바이올렛(violet)","lightskyblue":"라이트 스카이 블루(light sky blue)","goldenrod":"골든로드(goldenrod)","mediumblue":"미디엄 블루(medium blue)","skyblue":"스카이 블루(sky blue)","crimson":"크림슨(crimson)","darksalmon":"다크 샐몬(dark salmon)","darkred":"다크 레드(dark red)","darkslategrey":"다크 슬레이트 그레이(dark slate gray)","peru":"페루(peru)","lightgrey":"라이트 그레이(light gray)","lightgoldenrodyellow":"라이트 골든로드 옐로우(light goldenrod yellow)","blanchedalmond":"블랜치 아몬드(blanched almond)","aliceblue":"앨리스 블루(alice blue)","bisque":"비스크(bisque)","slategray":"슬레이트 그레이(slate gray)","palegoldenrod":"페일 골든로드(pale goldenrod)","darkorange":"다크 오렌지(dark orange)","aquamarine":"아쿠아마린(aquamarine)","lightgreen":"라이트 그린(light green)","burlywood":"벌리우드(burlywood)","dodgerblue":"다저 블루(dodger blue)","darkgray":"다크 그레이(dark gray)","lightcyan":"라이트 시안(light cyan)","powderblue":"파우더 블루(powder blue)","blueviolet":"블루 바이올렛(blue-violet)","orchid":"오키드(orchid)","dimgray":"딤 그레이(dim gray)","beige":"베이지(beige)","fuchsia":"후크샤(fuchsia)","lavenderblush":"라벤더 블러쉬(lavender blush)","hotpink":"핫 핑크(hot pink)","steelblue":"스틸 블루(steel blue)","tomato":"토마토(tomato)","lightpink":"라이트 핑크(light pink)","limegreen":"라임 그린(lime green)","indianred":"인디안 레드(indian red)","papayawhip":"파파야 휩(papaya whip)","lightslategray":"라이트 슬레이트 그레이(light slate gray)","gray":"그레이(gray)","mediumorchid":"미디엄 오키드(medium orchid)","cornsilk":"콘실크(cornsilk)","black":"블랙(black)","seagreen":"씨 그린(sea green)","darkslateblue":"다크 슬레이트 블루(dark slate blue)","khaki":"카키(khaki)","lightblue":"라이트 블루(light blue)","palegreen":"페일 그린(pale green)","azure":"애쥬어(azure)","peachpuff":"피치 퍼프(peach puff)","darkolivegreen":"다크 올리브 그린(dark olive green)","yellowgreen":"옐로우 그린(yellow green)"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ko");dijit.nls.loading.ko={"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ko");dijit.nls.common.ko={"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ko");dijit.form.nls.validate.ko={"rangeMessage":"이 값은 범위를 벗어납니다.","invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ko");dijit.form.nls.ComboBox.ko={"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ko");dojo.cldr.nls.number.ko={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_nb.js b/lib/dojo/nls/tt-rss-layer_nb.js index c6ca50890..d4c87d203 100644 --- a/lib/dojo/nls/tt-rss-layer_nb.js +++ b/lib/dojo/nls/tt-rss-layer_nb.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_nb");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nb");dojo.nls.colors.nb={"lightsteelblue":"lys stålblå","orangered":"rødoransje","midnightblue":"midnattsblå","cadetblue":"mørk grønnblå","seashell":"skjellhvit","slategrey":"skifergrå","coral":"korall","darkturquoise":"mørk turkis","antiquewhite":"antikk hvit","mediumspringgreen":"middels vårgrønn","salmon":"lakserosa","darkgrey":"mørk grå","ivory":"elfenbenshvit","greenyellow":"gulgrønn","mistyrose":"lys rosenrød","lightsalmon":"lys lakserosa","silver":"sølvfarget","dimgrey":"mørk mørkegrå","orange":"oransje","white":"hvit","navajowhite":"gulbrun","royalblue":"kongeblå","deeppink":"dyp rosa","lime":"lime","oldlace":"kniplingshvit","chartreuse":"løvgrønn","darkcyan":"mørk cyan","yellow":"gul","linen":"lin","olive":"oliven","gold":"gull","lawngreen":"plengrønn","lightyellow":"lys gul","tan":"matt mellombrun","darkviolet":"mørk fiolett","lightslategrey":"lys skifergrå","grey":"grå","darkkhaki":"mørk khaki","green":"grønn","deepskyblue":"dyp himmelblå","aqua":"akva","sienna":"nøttebrun","mintcream":"mintkrem","rosybrown":"brunlilla","mediumslateblue":"middels skiferblå","magenta":"magenta","lightseagreen":"lys sjøgrønn","cyan":"cyan","olivedrab":"middels olivengrønn","darkgoldenrod":"mørk gyldenris","slateblue":"skiferblå","mediumaquamarine":"middels akvamarin","lavender":"lavendel","mediumseagreen":"middels sjøgrønn","maroon":"rødbrun","darkslategray":"mørk skifergrå","mediumturquoise":"middels turkis","ghostwhite":"egghvit","darkblue":"mørk blå","mediumvioletred":"middels fiolettrød","brown":"brun","lightgray":"lys grå","sandybrown":"sandbrun","pink":"rosa","firebrick":"mursteinsrød","indigo":"indigo","snow":"snøhvit","darkorchid":"mørk orkide","turquoise":"turkis","chocolate":"sjokolade","springgreen":"vårgrønn","moccasin":"lys gulbrun","navy":"marineblå","lemonchiffon":"ferskenfarget","teal":"mørk grønnblå","floralwhite":"blomsterhvit","cornflowerblue":"kornblå","paleturquoise":"svak turkis","purple":"purpur","gainsboro":"lys lys grå","plum":"plommefarget","red":"rød","blue":"blå","forestgreen":"skoggrønn","darkgreen":"mørk grønn","honeydew":"grønnhvit","darkseagreen":"mørk sjøgrønn","lightcoral":"lys korall","palevioletred":"svak fiolettrød","mediumpurple":"middels purpur","saddlebrown":"mørk nøttebrun","darkmagenta":"mørk magenta","thistle":"lys grålilla","whitesmoke":"røykhvit","wheat":"varm sienna","violet":"fiolett","lightskyblue":"lys himmelblå","goldenrod":"gyldenris","mediumblue":"mellomblå","skyblue":"himmelblå","crimson":"karmosinrødt","darksalmon":"mørk lakserosa","darkred":"mørk rød","darkslategrey":"mørk skifergrå","peru":"lys nøttebrun","lightgrey":"lys grå","lightgoldenrodyellow":"lys gyldenrisgul","blanchedalmond":"lys mandel","aliceblue":"blåhvit","bisque":"gulrosa","slategray":"skifergrå","palegoldenrod":"svak gyldenris","darkorange":"mørk oransje","aquamarine":"akvamarin","lightgreen":"lys grønn","burlywood":"matt mellombrun","dodgerblue":"lys havblå","darkgray":"mørk grå","lightcyan":"lys cyan","powderblue":"lys grønnblå","blueviolet":"blåfiolett","orchid":"orkide","dimgray":"mørk mørkegrå","beige":"beige","fuchsia":"fuksia","lavenderblush":"lillahvit","hotpink":"halvmørk rosa","steelblue":"stålblå","tomato":"tomatrød","lightpink":"lys rosa","limegreen":"limegrønn","indianred":"rustrød","papayawhip":"lys papaya","lightslategray":"lys skifergrå","gray":"grå","mediumorchid":"middels orkide","cornsilk":"cornsilk","black":"svart","seagreen":"sjøgrønn","darkslateblue":"mørk skiferblå","khaki":"khaki","lightblue":"lys blå","palegreen":"svak grønn","azure":"asur","peachpuff":"brunrosa","darkolivegreen":"mørk olivengrønn","yellowgreen":"gulgrønn"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nb");dijit.nls.loading.nb={"loadingState":"Laster inn...","errorState":"Det oppsto en feil"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nb");dijit.nls.common.nb={"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Lagre","itemClose":"Lukk"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nb");dijit.form.nls.validate.nb={"rangeMessage":"Denne verdien er utenfor gyldig område.","invalidMessage":"Den angitte verdien er ikke gyldig.","missingMessage":"Denne verdien er obligatorisk."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nb");dijit.form.nls.ComboBox.nb={"previousMessage":"Tidligere valg","nextMessage":"Flere valg"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nb");dojo.cldr.nls.number.nb={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_nb");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nb");dojo.nls.colors.nb={"lightsteelblue":"lys stålblå","orangered":"rødoransje","midnightblue":"midnattsblå","cadetblue":"mørk grønnblå","seashell":"skjellhvit","slategrey":"skifergrå","coral":"korall","darkturquoise":"mørk turkis","antiquewhite":"antikk hvit","mediumspringgreen":"middels vårgrønn","salmon":"lakserosa","darkgrey":"mørk grå","ivory":"elfenbenshvit","greenyellow":"gulgrønn","mistyrose":"lys rosenrød","lightsalmon":"lys lakserosa","silver":"sølvfarget","dimgrey":"mørk mørkegrå","orange":"oransje","white":"hvit","navajowhite":"gulbrun","royalblue":"kongeblå","deeppink":"dyp rosa","lime":"lime","oldlace":"kniplingshvit","chartreuse":"løvgrønn","darkcyan":"mørk cyan","yellow":"gul","linen":"lin","olive":"oliven","gold":"gull","lawngreen":"plengrønn","lightyellow":"lys gul","tan":"matt mellombrun","darkviolet":"mørk fiolett","lightslategrey":"lys skifergrå","grey":"grå","darkkhaki":"mørk khaki","green":"grønn","deepskyblue":"dyp himmelblå","aqua":"akva","sienna":"nøttebrun","mintcream":"mintkrem","rosybrown":"brunlilla","mediumslateblue":"middels skiferblå","magenta":"magenta","lightseagreen":"lys sjøgrønn","cyan":"cyan","olivedrab":"middels olivengrønn","darkgoldenrod":"mørk gyldenris","slateblue":"skiferblå","mediumaquamarine":"middels akvamarin","lavender":"lavendel","mediumseagreen":"middels sjøgrønn","maroon":"rødbrun","darkslategray":"mørk skifergrå","mediumturquoise":"middels turkis","ghostwhite":"egghvit","darkblue":"mørk blå","mediumvioletred":"middels fiolettrød","brown":"brun","lightgray":"lys grå","sandybrown":"sandbrun","pink":"rosa","firebrick":"mursteinsrød","indigo":"indigo","snow":"snøhvit","darkorchid":"mørk orkide","turquoise":"turkis","chocolate":"sjokolade","springgreen":"vårgrønn","moccasin":"lys gulbrun","navy":"marineblå","lemonchiffon":"ferskenfarget","teal":"mørk grønnblå","floralwhite":"blomsterhvit","cornflowerblue":"kornblå","paleturquoise":"svak turkis","purple":"purpur","gainsboro":"lys lys grå","plum":"plommefarget","red":"rød","blue":"blå","forestgreen":"skoggrønn","darkgreen":"mørk grønn","honeydew":"grønnhvit","darkseagreen":"mørk sjøgrønn","lightcoral":"lys korall","palevioletred":"svak fiolettrød","mediumpurple":"middels purpur","saddlebrown":"mørk nøttebrun","darkmagenta":"mørk magenta","thistle":"lys grålilla","whitesmoke":"røykhvit","wheat":"varm sienna","violet":"fiolett","lightskyblue":"lys himmelblå","goldenrod":"gyldenris","mediumblue":"mellomblå","skyblue":"himmelblå","crimson":"karmosinrødt","darksalmon":"mørk lakserosa","darkred":"mørk rød","darkslategrey":"mørk skifergrå","peru":"lys nøttebrun","lightgrey":"lys grå","lightgoldenrodyellow":"lys gyldenrisgul","blanchedalmond":"lys mandel","aliceblue":"blåhvit","bisque":"gulrosa","slategray":"skifergrå","palegoldenrod":"svak gyldenris","darkorange":"mørk oransje","aquamarine":"akvamarin","lightgreen":"lys grønn","burlywood":"matt mellombrun","dodgerblue":"lys havblå","darkgray":"mørk grå","lightcyan":"lys cyan","powderblue":"lys grønnblå","blueviolet":"blåfiolett","orchid":"orkide","dimgray":"mørk mørkegrå","beige":"beige","fuchsia":"fuksia","lavenderblush":"lillahvit","hotpink":"halvmørk rosa","steelblue":"stålblå","tomato":"tomatrød","lightpink":"lys rosa","limegreen":"limegrønn","indianred":"rustrød","papayawhip":"lys papaya","lightslategray":"lys skifergrå","gray":"grå","mediumorchid":"middels orkide","cornsilk":"cornsilk","black":"svart","seagreen":"sjøgrønn","darkslateblue":"mørk skiferblå","khaki":"khaki","lightblue":"lys blå","palegreen":"svak grønn","azure":"asur","peachpuff":"brunrosa","darkolivegreen":"mørk olivengrønn","yellowgreen":"gulgrønn"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nb");dijit.nls.loading.nb={"loadingState":"Laster inn...","errorState":"Det oppsto en feil"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nb");dijit.nls.common.nb={"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Lagre","itemClose":"Lukk"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nb");dijit.form.nls.validate.nb={"rangeMessage":"Denne verdien er utenfor gyldig område.","invalidMessage":"Den angitte verdien er ikke gyldig.","missingMessage":"Denne verdien er obligatorisk."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nb");dijit.form.nls.ComboBox.nb={"previousMessage":"Tidligere valg","nextMessage":"Flere valg"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nb");dojo.cldr.nls.number.nb={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_nl-nl.js b/lib/dojo/nls/tt-rss-layer_nl-nl.js index bbafa6a2f..6b5f10a11 100644 --- a/lib/dojo/nls/tt-rss-layer_nl-nl.js +++ b/lib/dojo/nls/tt-rss-layer_nl-nl.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_nl-nl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nl_nl");dojo.nls.colors.nl_nl={"lightsteelblue":"lichtstaalblauw","orangered":"oranjerood","midnightblue":"nachtblauw","cadetblue":"donkerstaalblauw","seashell":"schelp","slategrey":"leigrijs","coral":"koraalrood","darkturquoise":"donkerturquoise","antiquewhite":"antiekwit","mediumspringgreen":"midlentegroen","salmon":"zalm","darkgrey":"donkergrijs","ivory":"ivoorwit","greenyellow":"groengeel","mistyrose":"matroze","lightsalmon":"lichtzalm","silver":"zilvergrijs","dimgrey":"dofgrijs","orange":"oranje","white":"wit","navajowhite":"navajowit","royalblue":"koningsblauw","deeppink":"donkerroze","lime":"limoen","oldlace":"kant","chartreuse":"groengeel","darkcyan":"donkercyaan","yellow":"geel","linen":"linnen","olive":"olijfgroen","gold":"goud","lawngreen":"grasgroen","lightyellow":"lichtgeel","tan":"geelbruin","darkviolet":"donkerviolet","lightslategrey":"lichtblauwgrijs","grey":"grijs","darkkhaki":"donkerkaki","green":"groen","deepskyblue":"diephemelblauw","aqua":"aqua","sienna":"sienna","mintcream":"mintroomgeel","rosybrown":"roodbruin","mediumslateblue":"midgrijsblauw","magenta":"magenta","lightseagreen":"lichtzeegroen","cyan":"cyaan","olivedrab":"grijsbruin","darkgoldenrod":"donkergoud","slateblue":"leiblauw","mediumaquamarine":"midaquamarijn","lavender":"lavendelblauw","mediumseagreen":"midzeegroen","maroon":"kastanjebruin","darkslategray":"donkerblauwgrijs","mediumturquoise":"midturquoise","ghostwhite":"spierwit","darkblue":"donkerblauw","mediumvioletred":"midvioletrood","brown":"bruin","lightgray":"lichtgrijs","sandybrown":"zandbruin","pink":"roze","firebrick":"vuursteenrood","indigo":"indigo","snow":"sneeuwwit","darkorchid":"donkerorchidee","turquoise":"turquoise","chocolate":"chocoladebruin","springgreen":"lentegroen","moccasin":"moccasin","navy":"marineblauw","lemonchiffon":"citroengeel","teal":"grijsblauw","floralwhite":"rozewit","cornflowerblue":"korenbloemblauw","paleturquoise":"bleekturquoise","purple":"purper","gainsboro":"lichtblauwgrijs","plum":"pruim","red":"rood","blue":"blauw","forestgreen":"bosgroen","darkgreen":"donkergroen","honeydew":"meloen","darkseagreen":"donkerzeegroen","lightcoral":"lichtkoraal","palevioletred":"bleekvioletrood","mediumpurple":"midpurper","saddlebrown":"leerbruin","darkmagenta":"donkermagenta","thistle":"distel","whitesmoke":"rookwit","wheat":"tarwebruin","violet":"violet","lightskyblue":"lichthemelsblauw","goldenrod":"goudbruin","mediumblue":"midblauw","skyblue":"hemelsblauw","crimson":"karmozijnrood","darksalmon":"donkerzalm","darkred":"donkerrood","darkslategrey":"donkerblauwgrijs","peru":"bruin","lightgrey":"lichtgrijs","lightgoldenrodyellow":"lichtgoudgeel","blanchedalmond":"amandel","aliceblue":"lichtblauw","bisque":"oranjegeel","slategray":"leigrijs","palegoldenrod":"bleekgeel","darkorange":"donkeroranje","aquamarine":"aquamarijn","lightgreen":"lichtgroen","burlywood":"lichtbruin","dodgerblue":"helderblauw","darkgray":"donkergrijs","lightcyan":"lichtcyaan","powderblue":"lichtblauw-wit","blueviolet":"violet","orchid":"orchidee","dimgray":"dofgrijs","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelblos","hotpink":"acaciaroze","steelblue":"staalblauw","tomato":"tomaat","lightpink":"lichtroze","limegreen":"limoengroen","indianred":"indisch rood","papayawhip":"papajaroze","lightslategray":"lichtblauwgrijs","gray":"grijs","mediumorchid":"midorchidee","cornsilk":"maïsgeel","black":"zwart","seagreen":"zeegroen","darkslateblue":"donkergrijsblauw","khaki":"kaki","lightblue":"lichtblauw","palegreen":"bleekgroen","azure":"azuur","peachpuff":"perzikroze","darkolivegreen":"donkerolijfgroen","yellowgreen":"geelgroen"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nl_nl");dijit.nls.loading.nl_nl={"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nl_nl");dijit.nls.common.nl_nl={"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nl_nl");dijit.form.nls.validate.nl_nl={"rangeMessage":"Deze waarde is niet toegestaan.","invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nl_nl");dijit.form.nls.ComboBox.nl_nl={"previousMessage":"Eerdere opties","nextMessage":"Meer opties"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nl_nl");dojo.cldr.nls.number.nl_nl={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_nl-nl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nl_nl");dojo.nls.colors.nl_nl={"lightsteelblue":"lichtstaalblauw","orangered":"oranjerood","midnightblue":"nachtblauw","cadetblue":"donkerstaalblauw","seashell":"schelp","slategrey":"leigrijs","coral":"koraalrood","darkturquoise":"donkerturquoise","antiquewhite":"antiekwit","mediumspringgreen":"midlentegroen","salmon":"zalm","darkgrey":"donkergrijs","ivory":"ivoorwit","greenyellow":"groengeel","mistyrose":"matroze","lightsalmon":"lichtzalm","silver":"zilvergrijs","dimgrey":"dofgrijs","orange":"oranje","white":"wit","navajowhite":"navajowit","royalblue":"koningsblauw","deeppink":"donkerroze","lime":"limoen","oldlace":"kant","chartreuse":"groengeel","darkcyan":"donkercyaan","yellow":"geel","linen":"linnen","olive":"olijfgroen","gold":"goud","lawngreen":"grasgroen","lightyellow":"lichtgeel","tan":"geelbruin","darkviolet":"donkerviolet","lightslategrey":"lichtblauwgrijs","grey":"grijs","darkkhaki":"donkerkaki","green":"groen","deepskyblue":"diephemelblauw","aqua":"aqua","sienna":"sienna","mintcream":"mintroomgeel","rosybrown":"roodbruin","mediumslateblue":"midgrijsblauw","magenta":"magenta","lightseagreen":"lichtzeegroen","cyan":"cyaan","olivedrab":"grijsbruin","darkgoldenrod":"donkergoud","slateblue":"leiblauw","mediumaquamarine":"midaquamarijn","lavender":"lavendelblauw","mediumseagreen":"midzeegroen","maroon":"kastanjebruin","darkslategray":"donkerblauwgrijs","mediumturquoise":"midturquoise","ghostwhite":"spierwit","darkblue":"donkerblauw","mediumvioletred":"midvioletrood","brown":"bruin","lightgray":"lichtgrijs","sandybrown":"zandbruin","pink":"roze","firebrick":"vuursteenrood","indigo":"indigo","snow":"sneeuwwit","darkorchid":"donkerorchidee","turquoise":"turquoise","chocolate":"chocoladebruin","springgreen":"lentegroen","moccasin":"moccasin","navy":"marineblauw","lemonchiffon":"citroengeel","teal":"grijsblauw","floralwhite":"rozewit","cornflowerblue":"korenbloemblauw","paleturquoise":"bleekturquoise","purple":"purper","gainsboro":"lichtblauwgrijs","plum":"pruim","red":"rood","blue":"blauw","forestgreen":"bosgroen","darkgreen":"donkergroen","honeydew":"meloen","darkseagreen":"donkerzeegroen","lightcoral":"lichtkoraal","palevioletred":"bleekvioletrood","mediumpurple":"midpurper","saddlebrown":"leerbruin","darkmagenta":"donkermagenta","thistle":"distel","whitesmoke":"rookwit","wheat":"tarwebruin","violet":"violet","lightskyblue":"lichthemelsblauw","goldenrod":"goudbruin","mediumblue":"midblauw","skyblue":"hemelsblauw","crimson":"karmozijnrood","darksalmon":"donkerzalm","darkred":"donkerrood","darkslategrey":"donkerblauwgrijs","peru":"bruin","lightgrey":"lichtgrijs","lightgoldenrodyellow":"lichtgoudgeel","blanchedalmond":"amandel","aliceblue":"lichtblauw","bisque":"oranjegeel","slategray":"leigrijs","palegoldenrod":"bleekgeel","darkorange":"donkeroranje","aquamarine":"aquamarijn","lightgreen":"lichtgroen","burlywood":"lichtbruin","dodgerblue":"helderblauw","darkgray":"donkergrijs","lightcyan":"lichtcyaan","powderblue":"lichtblauw-wit","blueviolet":"violet","orchid":"orchidee","dimgray":"dofgrijs","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelblos","hotpink":"acaciaroze","steelblue":"staalblauw","tomato":"tomaat","lightpink":"lichtroze","limegreen":"limoengroen","indianred":"indisch rood","papayawhip":"papajaroze","lightslategray":"lichtblauwgrijs","gray":"grijs","mediumorchid":"midorchidee","cornsilk":"maïsgeel","black":"zwart","seagreen":"zeegroen","darkslateblue":"donkergrijsblauw","khaki":"kaki","lightblue":"lichtblauw","palegreen":"bleekgroen","azure":"azuur","peachpuff":"perzikroze","darkolivegreen":"donkerolijfgroen","yellowgreen":"geelgroen"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nl_nl");dijit.nls.loading.nl_nl={"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nl_nl");dijit.nls.common.nl_nl={"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nl_nl");dijit.form.nls.validate.nl_nl={"rangeMessage":"Deze waarde is niet toegestaan.","invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nl_nl");dijit.form.nls.ComboBox.nl_nl={"previousMessage":"Eerdere opties","nextMessage":"Meer opties"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nl_nl");dojo.cldr.nls.number.nl_nl={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_nl.js b/lib/dojo/nls/tt-rss-layer_nl.js index 4ba9f5ee4..78bfcfca6 100644 --- a/lib/dojo/nls/tt-rss-layer_nl.js +++ b/lib/dojo/nls/tt-rss-layer_nl.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_nl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nl");dojo.nls.colors.nl={"lightsteelblue":"lichtstaalblauw","orangered":"oranjerood","midnightblue":"nachtblauw","cadetblue":"donkerstaalblauw","seashell":"schelp","slategrey":"leigrijs","coral":"koraalrood","darkturquoise":"donkerturquoise","antiquewhite":"antiekwit","mediumspringgreen":"midlentegroen","salmon":"zalm","darkgrey":"donkergrijs","ivory":"ivoorwit","greenyellow":"groengeel","mistyrose":"matroze","lightsalmon":"lichtzalm","silver":"zilvergrijs","dimgrey":"dofgrijs","orange":"oranje","white":"wit","navajowhite":"navajowit","royalblue":"koningsblauw","deeppink":"donkerroze","lime":"limoen","oldlace":"kant","chartreuse":"groengeel","darkcyan":"donkercyaan","yellow":"geel","linen":"linnen","olive":"olijfgroen","gold":"goud","lawngreen":"grasgroen","lightyellow":"lichtgeel","tan":"geelbruin","darkviolet":"donkerviolet","lightslategrey":"lichtblauwgrijs","grey":"grijs","darkkhaki":"donkerkaki","green":"groen","deepskyblue":"diephemelblauw","aqua":"aqua","sienna":"sienna","mintcream":"mintroomgeel","rosybrown":"roodbruin","mediumslateblue":"midgrijsblauw","magenta":"magenta","lightseagreen":"lichtzeegroen","cyan":"cyaan","olivedrab":"grijsbruin","darkgoldenrod":"donkergoud","slateblue":"leiblauw","mediumaquamarine":"midaquamarijn","lavender":"lavendelblauw","mediumseagreen":"midzeegroen","maroon":"kastanjebruin","darkslategray":"donkerblauwgrijs","mediumturquoise":"midturquoise","ghostwhite":"spierwit","darkblue":"donkerblauw","mediumvioletred":"midvioletrood","brown":"bruin","lightgray":"lichtgrijs","sandybrown":"zandbruin","pink":"roze","firebrick":"vuursteenrood","indigo":"indigo","snow":"sneeuwwit","darkorchid":"donkerorchidee","turquoise":"turquoise","chocolate":"chocoladebruin","springgreen":"lentegroen","moccasin":"moccasin","navy":"marineblauw","lemonchiffon":"citroengeel","teal":"grijsblauw","floralwhite":"rozewit","cornflowerblue":"korenbloemblauw","paleturquoise":"bleekturquoise","purple":"purper","gainsboro":"lichtblauwgrijs","plum":"pruim","red":"rood","blue":"blauw","forestgreen":"bosgroen","darkgreen":"donkergroen","honeydew":"meloen","darkseagreen":"donkerzeegroen","lightcoral":"lichtkoraal","palevioletred":"bleekvioletrood","mediumpurple":"midpurper","saddlebrown":"leerbruin","darkmagenta":"donkermagenta","thistle":"distel","whitesmoke":"rookwit","wheat":"tarwebruin","violet":"violet","lightskyblue":"lichthemelsblauw","goldenrod":"goudbruin","mediumblue":"midblauw","skyblue":"hemelsblauw","crimson":"karmozijnrood","darksalmon":"donkerzalm","darkred":"donkerrood","darkslategrey":"donkerblauwgrijs","peru":"bruin","lightgrey":"lichtgrijs","lightgoldenrodyellow":"lichtgoudgeel","blanchedalmond":"amandel","aliceblue":"lichtblauw","bisque":"oranjegeel","slategray":"leigrijs","palegoldenrod":"bleekgeel","darkorange":"donkeroranje","aquamarine":"aquamarijn","lightgreen":"lichtgroen","burlywood":"lichtbruin","dodgerblue":"helderblauw","darkgray":"donkergrijs","lightcyan":"lichtcyaan","powderblue":"lichtblauw-wit","blueviolet":"violet","orchid":"orchidee","dimgray":"dofgrijs","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelblos","hotpink":"acaciaroze","steelblue":"staalblauw","tomato":"tomaat","lightpink":"lichtroze","limegreen":"limoengroen","indianred":"indisch rood","papayawhip":"papajaroze","lightslategray":"lichtblauwgrijs","gray":"grijs","mediumorchid":"midorchidee","cornsilk":"maïsgeel","black":"zwart","seagreen":"zeegroen","darkslateblue":"donkergrijsblauw","khaki":"kaki","lightblue":"lichtblauw","palegreen":"bleekgroen","azure":"azuur","peachpuff":"perzikroze","darkolivegreen":"donkerolijfgroen","yellowgreen":"geelgroen"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nl");dijit.nls.loading.nl={"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nl");dijit.nls.common.nl={"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nl");dijit.form.nls.validate.nl={"rangeMessage":"Deze waarde is niet toegestaan.","invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nl");dijit.form.nls.ComboBox.nl={"previousMessage":"Eerdere opties","nextMessage":"Meer opties"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nl");dojo.cldr.nls.number.nl={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_nl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nl");dojo.nls.colors.nl={"lightsteelblue":"lichtstaalblauw","orangered":"oranjerood","midnightblue":"nachtblauw","cadetblue":"donkerstaalblauw","seashell":"schelp","slategrey":"leigrijs","coral":"koraalrood","darkturquoise":"donkerturquoise","antiquewhite":"antiekwit","mediumspringgreen":"midlentegroen","salmon":"zalm","darkgrey":"donkergrijs","ivory":"ivoorwit","greenyellow":"groengeel","mistyrose":"matroze","lightsalmon":"lichtzalm","silver":"zilvergrijs","dimgrey":"dofgrijs","orange":"oranje","white":"wit","navajowhite":"navajowit","royalblue":"koningsblauw","deeppink":"donkerroze","lime":"limoen","oldlace":"kant","chartreuse":"groengeel","darkcyan":"donkercyaan","yellow":"geel","linen":"linnen","olive":"olijfgroen","gold":"goud","lawngreen":"grasgroen","lightyellow":"lichtgeel","tan":"geelbruin","darkviolet":"donkerviolet","lightslategrey":"lichtblauwgrijs","grey":"grijs","darkkhaki":"donkerkaki","green":"groen","deepskyblue":"diephemelblauw","aqua":"aqua","sienna":"sienna","mintcream":"mintroomgeel","rosybrown":"roodbruin","mediumslateblue":"midgrijsblauw","magenta":"magenta","lightseagreen":"lichtzeegroen","cyan":"cyaan","olivedrab":"grijsbruin","darkgoldenrod":"donkergoud","slateblue":"leiblauw","mediumaquamarine":"midaquamarijn","lavender":"lavendelblauw","mediumseagreen":"midzeegroen","maroon":"kastanjebruin","darkslategray":"donkerblauwgrijs","mediumturquoise":"midturquoise","ghostwhite":"spierwit","darkblue":"donkerblauw","mediumvioletred":"midvioletrood","brown":"bruin","lightgray":"lichtgrijs","sandybrown":"zandbruin","pink":"roze","firebrick":"vuursteenrood","indigo":"indigo","snow":"sneeuwwit","darkorchid":"donkerorchidee","turquoise":"turquoise","chocolate":"chocoladebruin","springgreen":"lentegroen","moccasin":"moccasin","navy":"marineblauw","lemonchiffon":"citroengeel","teal":"grijsblauw","floralwhite":"rozewit","cornflowerblue":"korenbloemblauw","paleturquoise":"bleekturquoise","purple":"purper","gainsboro":"lichtblauwgrijs","plum":"pruim","red":"rood","blue":"blauw","forestgreen":"bosgroen","darkgreen":"donkergroen","honeydew":"meloen","darkseagreen":"donkerzeegroen","lightcoral":"lichtkoraal","palevioletred":"bleekvioletrood","mediumpurple":"midpurper","saddlebrown":"leerbruin","darkmagenta":"donkermagenta","thistle":"distel","whitesmoke":"rookwit","wheat":"tarwebruin","violet":"violet","lightskyblue":"lichthemelsblauw","goldenrod":"goudbruin","mediumblue":"midblauw","skyblue":"hemelsblauw","crimson":"karmozijnrood","darksalmon":"donkerzalm","darkred":"donkerrood","darkslategrey":"donkerblauwgrijs","peru":"bruin","lightgrey":"lichtgrijs","lightgoldenrodyellow":"lichtgoudgeel","blanchedalmond":"amandel","aliceblue":"lichtblauw","bisque":"oranjegeel","slategray":"leigrijs","palegoldenrod":"bleekgeel","darkorange":"donkeroranje","aquamarine":"aquamarijn","lightgreen":"lichtgroen","burlywood":"lichtbruin","dodgerblue":"helderblauw","darkgray":"donkergrijs","lightcyan":"lichtcyaan","powderblue":"lichtblauw-wit","blueviolet":"violet","orchid":"orchidee","dimgray":"dofgrijs","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelblos","hotpink":"acaciaroze","steelblue":"staalblauw","tomato":"tomaat","lightpink":"lichtroze","limegreen":"limoengroen","indianred":"indisch rood","papayawhip":"papajaroze","lightslategray":"lichtblauwgrijs","gray":"grijs","mediumorchid":"midorchidee","cornsilk":"maïsgeel","black":"zwart","seagreen":"zeegroen","darkslateblue":"donkergrijsblauw","khaki":"kaki","lightblue":"lichtblauw","palegreen":"bleekgroen","azure":"azuur","peachpuff":"perzikroze","darkolivegreen":"donkerolijfgroen","yellowgreen":"geelgroen"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nl");dijit.nls.loading.nl={"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nl");dijit.nls.common.nl={"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nl");dijit.form.nls.validate.nl={"rangeMessage":"Deze waarde is niet toegestaan.","invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nl");dijit.form.nls.ComboBox.nl={"previousMessage":"Eerdere opties","nextMessage":"Meer opties"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nl");dojo.cldr.nls.number.nl={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_pl.js b/lib/dojo/nls/tt-rss-layer_pl.js index d69dca84c..dd78bb0fb 100644 --- a/lib/dojo/nls/tt-rss-layer_pl.js +++ b/lib/dojo/nls/tt-rss-layer_pl.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_pl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pl");dojo.nls.colors.pl={"lightsteelblue":"jasny stalowoniebieski","orangered":"pomarańczowoczerwony","midnightblue":"ciemnogranatowy","cadetblue":"niebieskoszary","seashell":"muszla","slategrey":"łupkowy szary","coral":"koralowy","darkturquoise":"ciemnoturkusowy","antiquewhite":"biel antyczna","mediumspringgreen":"średnia wiosenna zieleń","salmon":"łososiowy","darkgrey":"ciemnoszary","ivory":"kość słoniowa","greenyellow":"zielonożółty","mistyrose":"bladoróżany","lightsalmon":"jasnołososiowy","silver":"srebrny","dimgrey":"przytłumiony szary","orange":"pomarańczowy","white":"biały","navajowhite":"piaskowy","royalblue":"błękit królewski","deeppink":"głęboki różowy","lime":"limetkowy","oldlace":"bladopomarańczowy","chartreuse":"jaskrawozielony","darkcyan":"ciemny cyjan","yellow":"żółty","linen":"lniany","olive":"oliwkowy","gold":"złoty","lawngreen":"trawiasty","lightyellow":"jasnożółty","tan":"kawowy","darkviolet":"ciemnofioletowy","lightslategrey":"jasny łupkowy szary","grey":"szary","darkkhaki":"ciemny khaki","green":"zielony","deepskyblue":"intensywny błękit nieba","aqua":"wodny","sienna":"siena","mintcream":"jasnomiętowy","rosybrown":"różowobrązowy","mediumslateblue":"średni łupkowy niebieski","magenta":"magenta","lightseagreen":"jasna morska zieleń","cyan":"cyjan","olivedrab":"oliwkowa zieleń","darkgoldenrod":"ciemnogliniany","slateblue":"łupkowy niebieski","mediumaquamarine":"średnia akwamaryna","lavender":"lawendowy","mediumseagreen":"średnia morska zieleń","maroon":"bordowy","darkslategray":"ciemny łupkowy szary","mediumturquoise":"średni turkusowy","ghostwhite":"bladobiały","darkblue":"ciemnoniebieski","mediumvioletred":"średni fioletowoczerwony","brown":"brązowy","lightgray":"jasnoszary","sandybrown":"piaskowy brąz","pink":"różowy","firebrick":"ceglasty","indigo":"indygo","snow":"śnieżny","darkorchid":"ciemna orchidea","turquoise":"turkusowy","chocolate":"czekoladowy","springgreen":"wiosenna zieleń","moccasin":"mokasynowy","navy":"granatowy","lemonchiffon":"cytrynowy","teal":"cyrankowy","floralwhite":"kwiatowa biel","cornflowerblue":"chabrowy","paleturquoise":"bladoturkusowy","purple":"purpurowy","gainsboro":"bladoszary","plum":"śliwkowy","red":"czerwony","blue":"niebieski","forestgreen":"leśna zieleń","darkgreen":"ciemnozielony","honeydew":"melon","darkseagreen":"ciemna morska zieleń","lightcoral":"jasnokoralowy","palevioletred":"blady fioletowoczerwony","mediumpurple":"średnia purpura","saddlebrown":"skórzany brązowy","darkmagenta":"ciemna magenta","thistle":"bladofioletowy","whitesmoke":"przydymiony biały","wheat":"pszeniczny","violet":"fioletowy","lightskyblue":"jasny błękit nieba","goldenrod":"gliniany","mediumblue":"średni niebieski","skyblue":"błękit nieba","crimson":"karmazynowy","darksalmon":"ciemnołososiowy","darkred":"ciemnoczerwony","darkslategrey":"ciemny łupkowy szary","peru":"jasnobrązowy","lightgrey":"jasnoszary","lightgoldenrodyellow":"jasnogliniana żółć","blanchedalmond":"migdałowy","aliceblue":"bladoniebieski","bisque":"biszkoptowy","slategray":"łupkowy szary","palegoldenrod":"bladogliniany","darkorange":"ciemnopomarańczowy","aquamarine":"akwamaryna","lightgreen":"jasnozielony","burlywood":"kolor drewna","dodgerblue":"błękit Dodgers","darkgray":"ciemnoszary","lightcyan":"jasny cyjan","powderblue":"pudrowy niebieski","blueviolet":"niebieskofioletowy","orchid":"orchidea","dimgray":"przytłumiony szary","beige":"beżowy","fuchsia":"fuksja","lavenderblush":"lawendoworóżowy","hotpink":"intensywny różowy","steelblue":"stalowy niebieski","tomato":"pomidorowy","lightpink":"jasnoróżowy","limegreen":"limetkowozielony","indianred":"kasztanowy","papayawhip":"papaja","lightslategray":"jasny łupkowy szary","gray":"szary","mediumorchid":"średnia orchidea","cornsilk":"kukurydziany","black":"czarny","seagreen":"morska zieleń","darkslateblue":"ciemny łupkowy niebieski","khaki":"khaki","lightblue":"jasnoniebieski","palegreen":"bladozielony","azure":"lazur","peachpuff":"brzoskwiniowy","darkolivegreen":"ciemnooliwkowy","yellowgreen":"żółtozielony"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pl");dijit.nls.loading.pl={"loadingState":"Ładowanie...","errorState":"Niestety, wystąpił błąd"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pl");dijit.nls.common.pl={"buttonOk":"OK","buttonCancel":"Anuluj","buttonSave":"Zapisz","itemClose":"Zamknij"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pl");dijit.form.nls.validate.pl={"rangeMessage":"Ta wartość jest spoza zakresu.","invalidMessage":"Wprowadzona wartość jest niepoprawna.","missingMessage":"Ta wartość jest wymagana."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pl");dijit.form.nls.ComboBox.pl={"previousMessage":"Poprzednie wybory","nextMessage":"Więcej wyborów"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pl");dojo.cldr.nls.number.pl={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_pl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pl");dojo.nls.colors.pl={"lightsteelblue":"jasnostalowoniebieski","orangered":"pomarańczowoczerwony","midnightblue":"granatowoczarny","cadetblue":"niebieskoszary","seashell":"matowoliliowy","slategrey":"mysi","coral":"koralowy","darkturquoise":"mlecznoturkusowy","antiquewhite":"biel antyczna","mediumspringgreen":"średnia wiosenna zieleń","salmon":"łososiowy","darkgrey":"ciemnoszary","ivory":"kość słoniowa","greenyellow":"zielonożółty","mistyrose":"bladoróżany","lightsalmon":"jasnołososiowy","silver":"srebrny","dimgrey":"przyciemniony szary","orange":"pomarańczowy","white":"biały","navajowhite":"piaskowy","royalblue":"królewski błękit","deeppink":"głęboki różowy","lime":"limonkowy","oldlace":"bladopomarańczowy","chartreuse":"żółtooliwkowy","darkcyan":"ciemnoniebieskozielony","yellow":"żółty","linen":"lniany","olive":"oliwkowy","gold":"złoty","lawngreen":"trawiasty","lightyellow":"jasnożółty","tan":"śniady","darkviolet":"ciemnofiołkowy","lightslategrey":"jasny mysi","grey":"szary","darkkhaki":"ciemny khaki","green":"zielony","deepskyblue":"intensywny błękit nieba","aqua":"morski","sienna":"siena","mintcream":"jasnomiętowy","rosybrown":"różowobrązowy","mediumslateblue":"średni gołębi","magenta":"amarantowy","lightseagreen":"jasna zieleń morska","cyan":"niebieskozielony","olivedrab":"oliwkowa zieleń","darkgoldenrod":"ciemne stare złoto","slateblue":"gołębi","mediumaquamarine":"średnia akwamaryna","lavender":"lawendowy","mediumseagreen":"średnia zieleń morska","maroon":"kasztanowy","darkslategray":"ciemny mysi","mediumturquoise":"średni turkusowy","ghostwhite":"bladobiały","darkblue":"ciemnoniebieski","mediumvioletred":"średni fiołkowowoczerwony","brown":"brązowy","lightgray":"jasnoszary","sandybrown":"piaskowy brąz","pink":"różowy","firebrick":"ceglasty","indigo":"indygo","snow":"śnieżny","darkorchid":"ciemna orchidea","turquoise":"turkusowy","chocolate":"czekoladowy","springgreen":"wiosenna zieleń","moccasin":"mokasynowy","navy":"granatowy","lemonchiffon":"cytrynowy","teal":"zielonomodry","floralwhite":"kwiatowa biel","cornflowerblue":"chabrowy","paleturquoise":"bladoturkusowy","purple":"fioletowy","gainsboro":"bladoszary","plum":"śliwkowy","red":"czerwony","blue":"niebieski","forestgreen":"leśna zieleń","darkgreen":"ciemnozielony","honeydew":"miodowy","darkseagreen":"ciemna zieleń morska","lightcoral":"jasnokoralowy","palevioletred":"blady fiołkowoczerwony","mediumpurple":"średni fioletowy","saddlebrown":"brąz skórzany","darkmagenta":"ciemnoamarantowy","thistle":"bladofioletowy","whitesmoke":"przydymiony biały","wheat":"pszeniczny","violet":"fiołkowy","lightskyblue":"jasny błękit nieba","goldenrod":"stare złoto","mediumblue":"ciemnochabrowy","skyblue":"błękit nieba","crimson":"karmazynowy","darksalmon":"ciemnołososiowy","darkred":"ciemnoczerwony","darkslategrey":"ciemny mysi","peru":"jasnobrązowy","lightgrey":"jasnoszary","lightgoldenrodyellow":"jasnożółte stare złoto","blanchedalmond":"migdałowy","aliceblue":"bladoniebieski","bisque":"biszkoptowy","slategray":"mysi","palegoldenrod":"blade stare złoto","darkorange":"ciemnopomarańczowy","aquamarine":"akwamaryna","lightgreen":"jasnozielony","burlywood":"kolor drewna","dodgerblue":"błękit Dodgers","darkgray":"ciemnoszary","lightcyan":"jasnoniebieskozielony","powderblue":"jasnobladobłękitny","blueviolet":"błękitnofiołkowy","orchid":"orchidea","dimgray":"przyciemniony szary","beige":"beżowy","fuchsia":"fuksjowy","lavenderblush":"lawendowocielisty","hotpink":"odblaskoworóżowy","steelblue":"stalowoniebieski","tomato":"pomidorowy","lightpink":"jasnoróżowy","limegreen":"zielony limonkowy","indianred":"kasztanowy","papayawhip":"papaja","lightslategray":"jasny mysi","gray":"szary","mediumorchid":"średnia orchidea","cornsilk":"kukurydziany","black":"czarny","seagreen":"zieleń morska","darkslateblue":"ciemny gołębi","khaki":"khaki","lightblue":"jasnoniebieski","palegreen":"bladozielony","azure":"lazurowy","peachpuff":"brzoskwiniowy","darkolivegreen":"ciemnooliwkowy","yellowgreen":"żółtozielony"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pl");dijit.nls.loading.pl={"loadingState":"Ładowanie...","errorState":"Niestety, wystąpił błąd"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pl");dijit.nls.common.pl={"buttonOk":"OK","buttonCancel":"Anuluj","buttonSave":"Zapisz","itemClose":"Zamknij"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pl");dijit.form.nls.validate.pl={"rangeMessage":"Ta wartość jest spoza zakresu.","invalidMessage":"Wprowadzona wartość jest niepoprawna.","missingMessage":"Ta wartość jest wymagana."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pl");dijit.form.nls.ComboBox.pl={"previousMessage":"Poprzednie wybory","nextMessage":"Więcej wyborów"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pl");dojo.cldr.nls.number.pl={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_pt-br.js b/lib/dojo/nls/tt-rss-layer_pt-br.js index a35c5bb52..c78390e9b 100644 --- a/lib/dojo/nls/tt-rss-layer_pt-br.js +++ b/lib/dojo/nls/tt-rss-layer_pt-br.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_pt-br");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt_br");dojo.nls.colors.pt_br={"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza-ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde-primavera médio","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza-ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul-céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul-ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul-ardósia","mediumaquamarine":"água-marinha médio","lavender":"lavanda","mediumseagreen":"verde-marinho médio","maroon":"marrom","darkslategray":"cinza-ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho-violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho-violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul-céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul-céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza-ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza-ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água-marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul-talco","blueviolet":"azul-violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul-aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza-ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde-marinho","darkslateblue":"azul-ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul-celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt_br");dijit.nls.loading.pt_br={"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt_br");dijit.nls.common.pt_br={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt_br");dijit.form.nls.validate.pt_br={"rangeMessage":"Este valor está fora do intervalo. ","invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt_br");dijit.form.nls.ComboBox.pt_br={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt_br");dojo.cldr.nls.number.pt_br={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_pt-br");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt_br");dojo.nls.colors.pt_br={"lightsteelblue":"azul aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul ardósia","mediumaquamarine":"água marinha médio","lavender":"lavanda","mediumseagreen":"verde marinho médio","maroon":"castanho","darkslategray":"cinza ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul talco","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt_br");dijit.nls.loading.pt_br={"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt_br");dijit.nls.common.pt_br={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt_br");dijit.form.nls.validate.pt_br={"rangeMessage":"Este valor está fora do intervalo. ","invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt_br");dijit.form.nls.ComboBox.pt_br={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt_br");dojo.cldr.nls.number.pt_br={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_pt-pt.js b/lib/dojo/nls/tt-rss-layer_pt-pt.js index a54df6dbf..7e805cd00 100644 --- a/lib/dojo/nls/tt-rss-layer_pt-pt.js +++ b/lib/dojo/nls/tt-rss-layer_pt-pt.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_pt-pt");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt_pt");dojo.nls.colors.pt_pt={"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadete","seashell":"concha","slategrey":"cinzento ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","salmon":"salmão","darkgrey":"cinzento escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa pálido","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinzento escuro","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul real","deeppink":"rosa profundo","lime":"lima","oldlace":"renda antiga","chartreuse":"amarelo esverdeado","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"azeitona","gold":"dourado","lawngreen":"verde relva","lightyellow":"amarelo claro","tan":"castanho claro","darkviolet":"violeta escuro","lightslategrey":"cinzento ardósia claro","grey":"cinzento","darkkhaki":"caqui escuro","green":"verde","deepskyblue":"azul céu profundo","aqua":"verde-água","sienna":"castanho-avermelhado","mintcream":"creme de menta","rosybrown":"castanho rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"azeitona claro","darkgoldenrod":"ouro velho escuro","slateblue":"azul ardósia","mediumaquamarine":"verde-azulado médio","lavender":"alfazema","mediumseagreen":"verde marinho médio","maroon":"bordeaux","darkslategray":"cinzento ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco sombreado","darkblue":"azul escuro","mediumvioletred":"violeta avermelhado médio","brown":"castanho","lightgray":"cinzento claro","sandybrown":"castanho areia","pink":"rosa","firebrick":"tijolo fogo","indigo":"índigo","snow":"branco-neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"mocassim","navy":"azul marinho","lemonchiffon":"limão chiffon","teal":"verde-azulado","floralwhite":"branco floral","cornflowerblue":"azul-violáceo","paleturquoise":"turquesa pálido","purple":"roxo","gainsboro":"cinzento azulado claro","plum":"cor-de-ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"mel","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"violeta avermelhado pálido","mediumpurple":"roxo médio","saddlebrown":"castanho sela","darkmagenta":"magenta escuro","thistle":"cardo","whitesmoke":"fumo branco","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"ouro velho","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinzento ardósia escuro","peru":"peru","lightgrey":"cinzento claro","lightgoldenrodyellow":"ouro velho amarelado claro","blanchedalmond":"amêndoa claro","aliceblue":"azul alice","bisque":"rosa-velho","slategray":"cinzento ardósia","palegoldenrod":"ouro velho pálido","darkorange":"laranja escuro","aquamarine":"verde-azulado","lightgreen":"verde claro","burlywood":"castanho pinho","dodgerblue":"azul furtivo","darkgray":"cinzento escuro","lightcyan":"ciano claro","powderblue":"azul de esmalte","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinzento escuro","beige":"bege","fuchsia":"fúcsia","lavenderblush":"alfazema rosado","hotpink":"rosa forte","steelblue":"azul-aço","tomato":"vermelho tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"almagre","papayawhip":"creme de papaia","lightslategray":"cinzento ardósia claro","gray":"cinzento","mediumorchid":"orquídea médio","cornsilk":"branco seda","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"azul-celeste","peachpuff":"pêssego","darkolivegreen":"verde-azeitona escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt_pt");dijit.nls.loading.pt_pt={"loadingState":"A carregar...","errorState":"Lamentamos, mas ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt_pt");dijit.nls.common.pt_pt={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Fechar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt_pt");dijit.form.nls.validate.pt_pt={"rangeMessage":"Este valor encontra-se fora do intervalo.","invalidMessage":"O valor introduzido não é válido.","missingMessage":"Este valor é requerido."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt_pt");dijit.form.nls.ComboBox.pt_pt={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt_pt");dojo.cldr.nls.number.pt_pt={"currencyFormat":"#,##0.00 ¤","group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_pt-pt");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt_pt");dojo.nls.colors.pt_pt={"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadete","seashell":"concha","slategrey":"cinzento ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","salmon":"salmão","darkgrey":"cinzento escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa pálido","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinzento esbatido","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul real","deeppink":"rosa profundo","lime":"lima","oldlace":"renda antiga","chartreuse":"amarelo esverdeado","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"azeitona","gold":"dourado","lawngreen":"verde relva","lightyellow":"amarelo claro","tan":"castanho claro","darkviolet":"violeta escuro","lightslategrey":"cinzento ardósia claro","grey":"cinzento","darkkhaki":"caqui escuro","green":"verde","deepskyblue":"azul céu profundo","aqua":"verde-água","sienna":"castanho-avermelhado","mintcream":"creme de menta","rosybrown":"castanho rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"azeitona claro","darkgoldenrod":"ouro velho escuro","slateblue":"azul ardósia","mediumaquamarine":"verde-azulado médio","lavender":"alfazema","mediumseagreen":"verde marinho médio","maroon":"bordeaux","darkslategray":"cinzento ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco sombreado","darkblue":"azul escuro","mediumvioletred":"violeta avermelhado médio","brown":"castanho","lightgray":"cinzento claro","sandybrown":"castanho areia","pink":"rosa","firebrick":"tijolo fogo","indigo":"índigo","snow":"branco-neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"mocassim","navy":"azul marinho","lemonchiffon":"limão chiffon","teal":"verde-azulado","floralwhite":"branco floral","cornflowerblue":"azul-violáceo","paleturquoise":"turquesa pálido","purple":"roxo","gainsboro":"cinzento azulado claro","plum":"cor-de-ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"mel","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"violeta avermelhado pálido","mediumpurple":"roxo médio","saddlebrown":"castanho sela","darkmagenta":"magenta escuro","thistle":"cardo","whitesmoke":"fumo branco","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"ouro velho","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinzento ardósia escuro","peru":"peru","lightgrey":"cinzento claro","lightgoldenrodyellow":"ouro velho amarelado claro","blanchedalmond":"amêndoa claro","aliceblue":"azul alice","bisque":"rosa-velho","slategray":"cinzento ardósia","palegoldenrod":"ouro velho pálido","darkorange":"laranja escuro","aquamarine":"verde-azulado","lightgreen":"verde claro","burlywood":"castanho pinho","dodgerblue":"azul furtivo","darkgray":"cinzento escuro","lightcyan":"ciano claro","powderblue":"azul de esmalte","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinzento esbatido","beige":"bege","fuchsia":"fúcsia","lavenderblush":"alfazema rosado","hotpink":"rosa forte","steelblue":"azul-aço","tomato":"vermelho tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"almagre","papayawhip":"creme de papaia","lightslategray":"cinzento ardósia claro","gray":"cinzento","mediumorchid":"orquídea médio","cornsilk":"branco seda","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"azul-celeste","peachpuff":"pêssego","darkolivegreen":"verde-azeitona escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt_pt");dijit.nls.loading.pt_pt={"loadingState":"A carregar...","errorState":"Lamentamos, mas ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt_pt");dijit.nls.common.pt_pt={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Fechar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt_pt");dijit.form.nls.validate.pt_pt={"rangeMessage":"Este valor encontra-se fora do intervalo.","invalidMessage":"O valor introduzido não é válido.","missingMessage":"Este valor é requerido."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt_pt");dijit.form.nls.ComboBox.pt_pt={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt_pt");dojo.cldr.nls.number.pt_pt={"currencyFormat":"#,##0.00 ¤","group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_pt.js b/lib/dojo/nls/tt-rss-layer_pt.js index 2e2d70bbb..8cc90f5cc 100644 --- a/lib/dojo/nls/tt-rss-layer_pt.js +++ b/lib/dojo/nls/tt-rss-layer_pt.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_pt");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt");dojo.nls.colors.pt={"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza-ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde-primavera médio","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza-ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul-céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul-ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul-ardósia","mediumaquamarine":"água-marinha médio","lavender":"lavanda","mediumseagreen":"verde-marinho médio","maroon":"marrom","darkslategray":"cinza-ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho-violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho-violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul-céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul-céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza-ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza-ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água-marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul-talco","blueviolet":"azul-violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul-aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza-ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde-marinho","darkslateblue":"azul-ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul-celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt");dijit.nls.loading.pt={"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt");dijit.nls.common.pt={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt");dijit.form.nls.validate.pt={"rangeMessage":"Este valor está fora do intervalo. ","invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt");dijit.form.nls.ComboBox.pt={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt");dojo.cldr.nls.number.pt={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_pt");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt");dojo.nls.colors.pt={"lightsteelblue":"azul aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul ardósia","mediumaquamarine":"água marinha médio","lavender":"lavanda","mediumseagreen":"verde marinho médio","maroon":"castanho","darkslategray":"cinza ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul talco","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt");dijit.nls.loading.pt={"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt");dijit.nls.common.pt={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt");dijit.form.nls.validate.pt={"rangeMessage":"Este valor está fora do intervalo. ","invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt");dijit.form.nls.ComboBox.pt={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt");dojo.cldr.nls.number.pt={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_ru.js b/lib/dojo/nls/tt-rss-layer_ru.js index 19e4d548b..293429a4a 100644 --- a/lib/dojo/nls/tt-rss-layer_ru.js +++ b/lib/dojo/nls/tt-rss-layer_ru.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_ru");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ru");dojo.nls.colors.ru={"lightsteelblue":"светлый стальной","orangered":"оранжево-красный","midnightblue":"полуночно-синий","cadetblue":"серо-синий","seashell":"морская раковина","slategrey":"грифельно-серый","coral":"коралловый","darkturquoise":"темный бирюзовый","antiquewhite":"белый антик","mediumspringgreen":"нейтральный весенне-зеленый","salmon":"лососевый","darkgrey":"темно-серый","ivory":"слоновой кости","greenyellow":"зелено-желтый","mistyrose":"блекло-розовый","lightsalmon":"светло-лососевый","silver":"серебристый","dimgrey":"тускло-серый","orange":"оранжевый","white":"белый","navajowhite":"белый навахо","royalblue":"королевский голубой","deeppink":"темно-розовый","lime":"лайм","oldlace":"матово-белый","chartreuse":"желто-салатный","darkcyan":"темный циан","yellow":"желтый","linen":"хлопковый","olive":"оливковый","gold":"золотой","lawngreen":"зеленая лужайка","lightyellow":"светло-желтый","tan":"рыжевато-коричневый","darkviolet":"темно-фиолетовый","lightslategrey":"светлый грифельно-серый","grey":"серый","darkkhaki":"темный хаки","green":"зеленый","deepskyblue":"темный небесно-голубой","aqua":"зеленовато-голубой","sienna":"охра","mintcream":"мятно-кремовый","rosybrown":"розово-коричневый","mediumslateblue":"нейтральный грифельно-синий","magenta":"пурпурный","lightseagreen":"светлый морской волны","cyan":"циан","olivedrab":"желтовато-серый","darkgoldenrod":"темно-золотистый","slateblue":"грифельно-синий","mediumaquamarine":"нейтральный аквамарин","lavender":"бледно-лиловый","mediumseagreen":"нейтральный морской волны","maroon":"темно-бордовый","darkslategray":"темный грифельно-серый","mediumturquoise":"нейтральный бирюзовый","ghostwhite":"призрачно-белый","darkblue":"темно-синий","mediumvioletred":"нейтральный фиолетово-красный","brown":"коричневый","lightgray":"светло-серый","sandybrown":"коричнево-песчаный","pink":"розовый","firebrick":"кирпичный","indigo":"индиго","snow":"белоснежный","darkorchid":"темный орсель","turquoise":"бирюзовый","chocolate":"шоколадный","springgreen":"весенний зеленый","moccasin":"мокасин","navy":"темно-синий","lemonchiffon":"бледно-лимонный","teal":"чирок","floralwhite":"цветочно-белый","cornflowerblue":"фиолетово-синий","paleturquoise":"бледно-бирюзовый","purple":"фиолетовый","gainsboro":"бледно-серый","plum":"сливовый","red":"красный","blue":"синий","forestgreen":"зеленый лесной","darkgreen":"темно-зеленый","honeydew":"медовый","darkseagreen":"темный морской волны","lightcoral":"светло-коралловый","palevioletred":"бледный фиолетово-красный","mediumpurple":"нейтральный фиолетовый","saddlebrown":"кожано-коричневый","darkmagenta":"темно-пурпурный","thistle":"чертополох","whitesmoke":"дымчато-белый","wheat":"пшеница","violet":"фиолетовый","lightskyblue":"светлый небесно-голубой","goldenrod":"золотистый","mediumblue":"нейтральный синий","skyblue":"небесно-голубой","crimson":"малиновый","darksalmon":"темно-лососевый","darkred":"темно-красный","darkslategrey":"темный грифельно-серый","peru":"перу","lightgrey":"светло-серый","lightgoldenrodyellow":"светло-золотистый","blanchedalmond":"светло-миндальный","aliceblue":"серо-голубой","bisque":"бисквитный","slategray":"грифельно-серый","palegoldenrod":"бледно-золотистый","darkorange":"темно-оранжевый","aquamarine":"аквамарин","lightgreen":"светло-зеленый","burlywood":"светло-коричневый","dodgerblue":"бледно-синий","darkgray":"темно-серый","lightcyan":"светлый циан","powderblue":"пороховой","blueviolet":"сине-фиолетовый","orchid":"орсель","dimgray":"тускло-серый","beige":"бежевый","fuchsia":"фуксин","lavenderblush":"розовато-лиловый","hotpink":"красно-розовый","steelblue":"стальной","tomato":"помидор","lightpink":"светло-розовый","limegreen":"зеленый лайм","indianred":"индийский красный","papayawhip":"черенок папайи","lightslategray":"светлый грифельно-серый","gray":"серый","mediumorchid":"нейтральный орсель","cornsilk":"шелковый оттенок","black":"черный","seagreen":"морской волны","darkslateblue":"темный грифельно-синий","khaki":"хаки","lightblue":"светло-синий","palegreen":"бледно-зеленый","azure":"лазурный","peachpuff":"персиковый","darkolivegreen":"темно-оливковый","yellowgreen":"желто-зеленый"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ru");dijit.nls.loading.ru={"loadingState":"Загрузка...","errorState":"Извините, возникла ошибка"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ru");dijit.nls.common.ru={"buttonOk":"ОК","buttonCancel":"Отмена","buttonSave":"Сохранить","itemClose":"Закрыть"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ru");dijit.form.nls.validate.ru={"rangeMessage":"Это значение вне диапазона.","invalidMessage":"Указано недопустимое значение.","missingMessage":"Это обязательное значение."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ru");dijit.form.nls.ComboBox.ru={"previousMessage":"Предыдущие варианты","nextMessage":"Следующие варианты"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ru");dojo.cldr.nls.number.ru={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_ru");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ru");dojo.nls.colors.ru={"lightsteelblue":"светлый стальной","orangered":"оранжево-красный","midnightblue":"полуночно-синий","cadetblue":"серо-синий","seashell":"морская раковина","slategrey":"грифельно-серый","coral":"коралловый","darkturquoise":"темный бирюзовый","antiquewhite":"белый антик","mediumspringgreen":"нейтральный весенне-зеленый","salmon":"лососевый","darkgrey":"темно-серый","ivory":"слоновой кости","greenyellow":"зелено-желтый","mistyrose":"блекло-розовый","lightsalmon":"светло-лососевый","silver":"серебристый","dimgrey":"тускло-серый","orange":"оранжевый","white":"белый","navajowhite":"белый навахо","royalblue":"королевский голубой","deeppink":"темно-розовый","lime":"лайм","oldlace":"матово-белый","chartreuse":"желто-салатный","darkcyan":"темный циан","yellow":"желтый","linen":"хлопковый","olive":"оливковый","gold":"золотой","lawngreen":"зеленая лужайка","lightyellow":"светло-желтый","tan":"рыжевато-коричневый","darkviolet":"темно-фиолетовый","lightslategrey":"светлый грифельно-серый","grey":"серый","darkkhaki":"темный хаки","green":"зеленый","deepskyblue":"темный небесно-голубой","aqua":"зеленовато-голубой","sienna":"охра","mintcream":"мятно-кремовый","rosybrown":"розово-коричневый","mediumslateblue":"нейтральный грифельно-синий","magenta":"пурпурный","lightseagreen":"светлый морской волны","cyan":"циан","olivedrab":"желтовато-серый","darkgoldenrod":"темно-золотистый","slateblue":"грифельно-синий","mediumaquamarine":"нейтральный аквамарин","lavender":"бледно-лиловый","mediumseagreen":"нейтральный морской волны","maroon":"темно-бордовый","darkslategray":"темный грифельно-серый","mediumturquoise":"нейтральный бирюзовый","ghostwhite":"призрачно-белый","darkblue":"темно-синий","mediumvioletred":"нейтральный фиолетово-красный","brown":"коричневый","lightgray":"светло-серый","sandybrown":"коричнево-песчаный","pink":"розовый","firebrick":"кирпичный","indigo":"индиго","snow":"белоснежный","darkorchid":"темный орсель","turquoise":"бирюзовый","chocolate":"шоколадный","springgreen":"весенний зеленый","moccasin":"мокасин","navy":"темно-синий","lemonchiffon":"бледно-лимонный","teal":"чирок","floralwhite":"цветочно-белый","cornflowerblue":"фиолетово-синий","paleturquoise":"бледно-бирюзовый","purple":"фиолетовый","gainsboro":"бледно-серый","plum":"сливовый","red":"красный","blue":"синий","forestgreen":"зеленый лесной","darkgreen":"темно-зеленый","honeydew":"медовый","darkseagreen":"темный морской волны","lightcoral":"светло-коралловый","palevioletred":"бледный фиолетово-красный","mediumpurple":"нейтральный фиолетовый","saddlebrown":"кожано-коричневый","darkmagenta":"темно-пурпурный","thistle":"чертополох","whitesmoke":"дымчато-белый","wheat":"пшеница","violet":"фиолетовый","lightskyblue":"светлый небесно-голубой","goldenrod":"золотистый","mediumblue":"нейтральный синий","skyblue":"небесно-голубой","crimson":"малиновый","darksalmon":"темно-лососевый","darkred":"темно-красный","darkslategrey":"темный грифельно-серый","peru":"перу","lightgrey":"светло-серый","lightgoldenrodyellow":"светло-золотистый","blanchedalmond":"светло-миндальный","aliceblue":"серо-голубой","bisque":"бисквитный","slategray":"грифельно-серый","palegoldenrod":"бледно-золотистый","darkorange":"темно-оранжевый","aquamarine":"аквамарин","lightgreen":"светло-зеленый","burlywood":"светло-коричневый","dodgerblue":"бледно-синий","darkgray":"темно-серый","lightcyan":"светлый циан","powderblue":"пороховой","blueviolet":"сине-фиолетовый","orchid":"орсель","dimgray":"тускло-серый","beige":"бежевый","fuchsia":"фуксин","lavenderblush":"розовато-лиловый","hotpink":"красно-розовый","steelblue":"стальной","tomato":"помидор","lightpink":"светло-розовый","limegreen":"зеленый лайм","indianred":"индийский красный","papayawhip":"черенок папайи","lightslategray":"светлый грифельно-серый","gray":"серый","mediumorchid":"нейтральный орсель","cornsilk":"шелковый оттенок","black":"черный","seagreen":"морской волны","darkslateblue":"темный грифельно-синий","khaki":"хаки","lightblue":"светло-синий","palegreen":"бледно-зеленый","azure":"лазурный","peachpuff":"персиковый","darkolivegreen":"темно-оливковый","yellowgreen":"желто-зеленый"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ru");dijit.nls.loading.ru={"loadingState":"Загрузка...","errorState":"Извините, возникла ошибка"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ru");dijit.nls.common.ru={"buttonOk":"ОК","buttonCancel":"Отмена","buttonSave":"Сохранить","itemClose":"Закрыть"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ru");dijit.form.nls.validate.ru={"rangeMessage":"Это значение вне диапазона.","invalidMessage":"Указано недопустимое значение.","missingMessage":"Это обязательное значение."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ru");dijit.form.nls.ComboBox.ru={"previousMessage":"Предыдущие варианты","nextMessage":"Следующие варианты"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ru");dojo.cldr.nls.number.ru={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_sk.js b/lib/dojo/nls/tt-rss-layer_sk.js index 7b3b6d1a5..273f62030 100644 --- a/lib/dojo/nls/tt-rss-layer_sk.js +++ b/lib/dojo/nls/tt-rss-layer_sk.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_sk");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sk");dojo.nls.colors.sk={"lightsteelblue":"oceľovo modrá svetlá","orangered":"oranžovo červená","midnightblue":"nočná modrá","cadetblue":"sivomodrá","seashell":"lastúrová","slategrey":"bridlicová sivá","coral":"koralová","darkturquoise":"tyrkysová tmavá","antiquewhite":"antická biela","mediumspringgreen":"jarná zelená stredná","salmon":"lososovo ružová","darkgrey":"tmavosivá","ivory":"slonovinová","greenyellow":"žltozelená","mistyrose":"zahmlená ruža","lightsalmon":"lososovo ružová svetlá","silver":"strieborná","dimgrey":"sivá matná","orange":"oranžová","white":"biela","navajowhite":"navajská biela","royalblue":"kráľovská modrá","deeppink":"hlboká ružová","lime":"lipová","oldlace":"stará čipka","chartreuse":"kartúza","darkcyan":"tmavozelenomodrá","yellow":"žltá","linen":"ľan","olive":"olivovo zelená","gold":"zlatá","lawngreen":"zelená tráva","lightyellow":"svetložltá","tan":"žltohnedá","darkviolet":"tmavofialová","lightslategrey":"bridlicová sivá svetlá","grey":"sivá","darkkhaki":"žltohnedá tmavá","green":"zelená","deepskyblue":"hlboká blankytná modrá","aqua":"svetlá zelenomodrá","sienna":"sienská","mintcream":"mätová krémová","rosybrown":"ružovo hnedá","mediumslateblue":"bridlicová modrá stredná","magenta":"purpurová","lightseagreen":"morská zelená svetlá","cyan":"zelenomodrá","olivedrab":"olivovo zelená fádna","darkgoldenrod":"zlatobyľová tmavá","slateblue":"bridlicová modrá","mediumaquamarine":"akvamarínová stredná","lavender":"levanduľová","mediumseagreen":"morská zelená stredná","maroon":"gaštanovo hnedá","darkslategray":"bridlicová sivá tmavá","mediumturquoise":"tyrkysová stredná","ghostwhite":"biely tieň","darkblue":"tmavomodrá","mediumvioletred":"fialovočervená stredná","brown":"hnedá","lightgray":"svetlosivá","sandybrown":"pieskovo hnedá","pink":"ružová","firebrick":"pálená tehla","indigo":"fialovo modrá","snow":"snehobiela","darkorchid":"orchideovo ružová tmavá","turquoise":"tyrkysová","chocolate":"čokoládovo hnedá","springgreen":"jarná zelená","moccasin":"črievičníková","navy":"vojenská zelená","lemonchiffon":"citrónový šifón","teal":"tyrkysová","floralwhite":"kvetinová biela","cornflowerblue":"nevädzovo modrá","paleturquoise":"bledo tyrkysová","purple":"purpurová","gainsboro":"sivomodrá svetlá","plum":"slivková","red":"červená","blue":"modrá","forestgreen":"lesná zelená","darkgreen":"tmavozelená","honeydew":"ambrózia","darkseagreen":"morská zelená tmavá","lightcoral":"koralová svetlá","palevioletred":"bledá fialovo červená","mediumpurple":"purpurová stredná","saddlebrown":"sedlová hnedá","darkmagenta":"tmavopurpurová","thistle":"bodliaková fialová","whitesmoke":"biely dym","wheat":"pšeničná","violet":"fialová","lightskyblue":"blankytná modrá svetlá","goldenrod":"zlatobyľ","mediumblue":"stredne modrá","skyblue":"blankytná modrá","crimson":"karmínová","darksalmon":"lososovo ružová tmavá","darkred":"tmavočervená","darkslategrey":"bridlicová sivá tmavá","peru":"peru","lightgrey":"svetlosivá","lightgoldenrodyellow":"zlatobyľová svetlá","blanchedalmond":"lúpané mandle","aliceblue":"modrá alice","bisque":"biskvitová","slategray":"bridlicová sivá","palegoldenrod":"bledá zlatobyľová","darkorange":"tmavooranžová","aquamarine":"akvamarínová","lightgreen":"svetlozelená","burlywood":"pieskovo hnedá","dodgerblue":"modrá dodger","darkgray":"tmavosivá","lightcyan":"zelenomodrá svetlá","powderblue":"prášková modrá","blueviolet":"modrofialová","orchid":"orchideovo ružová","dimgray":"sivá matná","beige":"béžová","fuchsia":"purpurová","lavenderblush":"levanduľový rumenec","hotpink":"teplá ružová","steelblue":"oceľovo modrá","tomato":"paradajková červená","lightpink":"svetloružová","limegreen":"lipová zelená","indianred":"indická červená","papayawhip":"papájový krém","lightslategray":"bridlicová sivá svetlá","gray":"sivá","mediumorchid":"orchideovo ružová stredná","cornsilk":"hodvábna žltá","black":"čierna","seagreen":"morská zelená","darkslateblue":"bridlicová modrá tmavá","khaki":"khaki","lightblue":"svetlomodrá","palegreen":"bledozelená","azure":"azúrová","peachpuff":"broskyňová pena","darkolivegreen":"olivovozelená tmavá","yellowgreen":"žltozelená"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sk");dijit.nls.loading.sk={"loadingState":"Zavádzanie...","errorState":"Nastala chyba"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sk");dijit.nls.common.sk={"buttonOk":"OK","buttonCancel":"Zrušiť","buttonSave":"Uložiť","itemClose":"Zatvoriť"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sk");dijit.form.nls.validate.sk={"rangeMessage":"Táto hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota nie je platná.","missingMessage":"Táto hodnota je vyžadovaná."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sk");dijit.form.nls.ComboBox.sk={"previousMessage":"Predchádzajúce voľby","nextMessage":"Ďalšie voľby"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sk");dojo.cldr.nls.number.sk={"currencyFormat":"#,##0.00 ¤","group":" ","decimal":",","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","percentFormat":"#,##0%","decimalFormat":"#,##0.###","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_sk");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sk");dojo.nls.colors.sk={"lightsteelblue":"oceľovo modrá svetlá","orangered":"oranžovo červená","midnightblue":"nočná modrá","cadetblue":"sivomodrá","seashell":"lastúrová","slategrey":"bridlicová sivá","coral":"koralová","darkturquoise":"tyrkysová tmavá","antiquewhite":"antická biela","mediumspringgreen":"jarná zelená stredná","salmon":"lososovo ružová","darkgrey":"tmavosivá","ivory":"slonovinová","greenyellow":"žltozelená","mistyrose":"zahmlená ruža","lightsalmon":"lososovo ružová svetlá","silver":"strieborná","dimgrey":"sivá matná","orange":"oranžová","white":"biela","navajowhite":"navajská biela","royalblue":"kráľovská modrá","deeppink":"hlboká ružová","lime":"lipová","oldlace":"stará čipka","chartreuse":"kartúza","darkcyan":"tmavozelenomodrá","yellow":"žltá","linen":"ľan","olive":"olivovo zelená","gold":"zlatá","lawngreen":"zelená tráva","lightyellow":"svetložltá","tan":"žltohnedá","darkviolet":"tmavofialová","lightslategrey":"bridlicová sivá svetlá","grey":"sivá","darkkhaki":"žltohnedá tmavá","green":"zelená","deepskyblue":"hlboká blankytná modrá","aqua":"svetlá zelenomodrá","sienna":"sienská","mintcream":"mätová krémová","rosybrown":"ružovo hnedá","mediumslateblue":"bridlicová modrá stredná","magenta":"purpurová","lightseagreen":"morská zelená svetlá","cyan":"zelenomodrá","olivedrab":"olivovo zelená fádna","darkgoldenrod":"zlatobyľová tmavá","slateblue":"bridlicová modrá","mediumaquamarine":"akvamarínová stredná","lavender":"levanduľová","mediumseagreen":"morská zelená stredná","maroon":"gaštanovo hnedá","darkslategray":"bridlicová sivá tmavá","mediumturquoise":"tyrkysová stredná","ghostwhite":"biely tieň","darkblue":"tmavomodrá","mediumvioletred":"fialovočervená stredná","brown":"hnedá","lightgray":"svetlosivá","sandybrown":"pieskovo hnedá","pink":"ružová","firebrick":"pálená tehla","indigo":"fialovo modrá","snow":"snehobiela","darkorchid":"orchideovo ružová tmavá","turquoise":"tyrkysová","chocolate":"čokoládovo hnedá","springgreen":"jarná zelená","moccasin":"črievičníková","navy":"vojenská zelená","lemonchiffon":"citrónový šifón","teal":"tyrkysová","floralwhite":"kvetinová biela","cornflowerblue":"nevädzovo modrá","paleturquoise":"bledo tyrkysová","purple":"purpurová","gainsboro":"sivomodrá svetlá","plum":"slivková","red":"červená","blue":"modrá","forestgreen":"lesná zelená","darkgreen":"tmavozelená","honeydew":"ambrózia","darkseagreen":"morská zelená tmavá","lightcoral":"koralová svetlá","palevioletred":"bledá fialovo červená","mediumpurple":"purpurová stredná","saddlebrown":"sedlová hnedá","darkmagenta":"tmavopurpurová","thistle":"bodliaková fialová","whitesmoke":"biely dym","wheat":"pšeničná","violet":"fialová","lightskyblue":"blankytná modrá svetlá","goldenrod":"zlatobyľ","mediumblue":"stredne modrá","skyblue":"blankytná modrá","crimson":"karmínová","darksalmon":"lososovo ružová tmavá","darkred":"tmavočervená","darkslategrey":"bridlicová sivá tmavá","peru":"peru","lightgrey":"svetlosivá","lightgoldenrodyellow":"zlatobyľová svetlá","blanchedalmond":"lúpané mandle","aliceblue":"modrá alice","bisque":"biskvitová","slategray":"bridlicová sivá","palegoldenrod":"bledá zlatobyľová","darkorange":"tmavooranžová","aquamarine":"akvamarínová","lightgreen":"svetlozelená","burlywood":"pieskovo hnedá","dodgerblue":"modrá dodger","darkgray":"tmavosivá","lightcyan":"zelenomodrá svetlá","powderblue":"prášková modrá","blueviolet":"modrofialová","orchid":"orchideovo ružová","dimgray":"sivá matná","beige":"béžová","fuchsia":"purpurová","lavenderblush":"levanduľový rumenec","hotpink":"teplá ružová","steelblue":"oceľovo modrá","tomato":"paradajková červená","lightpink":"svetloružová","limegreen":"lipová zelená","indianred":"indická červená","papayawhip":"papájový krém","lightslategray":"bridlicová sivá svetlá","gray":"sivá","mediumorchid":"orchideovo ružová stredná","cornsilk":"hodvábna žltá","black":"čierna","seagreen":"morská zelená","darkslateblue":"bridlicová modrá tmavá","khaki":"khaki","lightblue":"svetlomodrá","palegreen":"bledozelená","azure":"azúrová","peachpuff":"broskyňová pena","darkolivegreen":"olivovozelená tmavá","yellowgreen":"žltozelená"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sk");dijit.nls.loading.sk={"loadingState":"Zavádzanie...","errorState":"Nastala chyba"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sk");dijit.nls.common.sk={"buttonOk":"OK","buttonCancel":"Zrušiť","buttonSave":"Uložiť","itemClose":"Zatvoriť"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sk");dijit.form.nls.validate.sk={"rangeMessage":"Táto hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota nie je platná.","missingMessage":"Táto hodnota je vyžadovaná."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sk");dijit.form.nls.ComboBox.sk={"previousMessage":"Predchádzajúce voľby","nextMessage":"Ďalšie voľby"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sk");dojo.cldr.nls.number.sk={"currencyFormat":"#,##0.00 ¤","group":" ","decimal":",","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","percentFormat":"#,##0%","decimalFormat":"#,##0.###","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_sl.js b/lib/dojo/nls/tt-rss-layer_sl.js index f76c70841..b9697650b 100644 --- a/lib/dojo/nls/tt-rss-layer_sl.js +++ b/lib/dojo/nls/tt-rss-layer_sl.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_sl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sl");dojo.nls.colors.sl={"lightsteelblue":"svetlo jeklena modra","orangered":"oranžno-rdeča","midnightblue":"polnočno modra","cadetblue":"zelenkasto modra","seashell":"morska školjka","slategrey":"skrilasto siva","coral":"koralna","darkturquoise":"temno turkizna","antiquewhite":"antično bela","mediumspringgreen":"srednje pomladno zelena","salmon":"lososova","darkgrey":"temno siva","ivory":"slonokoščena","greenyellow":"zeleno-rumena","mistyrose":"megleno rožnata","lightsalmon":"svetlo lososova","silver":"srebrna","dimgrey":"umazano siva","orange":"oranžna","white":"bela","navajowhite":"navajsko bela","royalblue":"kraljevsko modra","deeppink":"temno roza","lime":"rumeno zelena","oldlace":"stara čipka","chartreuse":"svetlo rumena zelena","darkcyan":"temno cijan","yellow":"rumena","linen":"lanena","olive":"olivna","gold":"zlata","lawngreen":"travnato zelena","lightyellow":"svetlo rumena","tan":"kožno rjava","darkviolet":"temno vijolična","lightslategrey":"svetlo skrilasto siva","grey":"siva","darkkhaki":"temno rumenkasto rjava","green":"zelena","deepskyblue":"temno nebesno modra","aqua":"akva","sienna":"siena","mintcream":"mentolno smetanasta","rosybrown":"rožnato rjava","mediumslateblue":"srednje skrilasto modra","magenta":"magenta","lightseagreen":"svetlo morsko zelena","cyan":"cijan","olivedrab":"olivno sivo rjava","darkgoldenrod":"temno zlata rozga","slateblue":"skrilasto modra","mediumaquamarine":"srednje akvamarin","lavender":"sivka","mediumseagreen":"srednje morsko zelena","maroon":"kostanjeva","darkslategray":"temno skrilasto siva","mediumturquoise":"srednje turkizna","ghostwhite":"prosojno bela","darkblue":"temno modra","mediumvioletred":"srednje vijolično-rdeča","brown":"rjava","lightgray":"svetlo siva","sandybrown":"peščeno rjava","pink":"roza","firebrick":"opečnata","indigo":"indigo","snow":"snežena","darkorchid":"temno orhidejna","turquoise":"turkizna","chocolate":"čokoladna","springgreen":"pomladno zelena","moccasin":"mokasinasta","navy":"mornarsko modra","lemonchiffon":"limonina","teal":"zeleno modra","floralwhite":"cvetno bela","cornflowerblue":"plavično modra","paleturquoise":"bledo turkizna","purple":"škrlatna","gainsboro":"pepelnato siva","plum":"slivova","red":"rdeča","blue":"modra","forestgreen":"gozdno zelena","darkgreen":"temno zelena","honeydew":"medena rosa","darkseagreen":"temno morsko zelena","lightcoral":"svetlo koralna","palevioletred":"bledo vijolično-rdeča","mediumpurple":"srednje škrlatna","saddlebrown":"sedlasto rjava","darkmagenta":"temno magenta","thistle":"osatna","whitesmoke":"umazano bela","wheat":"žitna","violet":"vijolična","lightskyblue":"svetlo nebesno modra","goldenrod":"zlata rozga","mediumblue":"srednje modra","skyblue":"nebesno modra","crimson":"karminasta","darksalmon":"temno lososova","darkred":"temno rdeča","darkslategrey":"temno skrilasto siva","peru":"perujska","lightgrey":"svetlo siva","lightgoldenrodyellow":"svetlo rumena zlata rozga","blanchedalmond":"mandljeva","aliceblue":"alice modra","bisque":"porcelanasta","slategray":"skrilasto siva","palegoldenrod":"bleda zlata rozga","darkorange":"temno oranžna","aquamarine":"akvamarin","lightgreen":"svetlo zelena","burlywood":"grčav les","dodgerblue":"koruzno modra","darkgray":"temno siva","lightcyan":"svetlo cijan","powderblue":"smodniško modra","blueviolet":"modro vijolična","orchid":"orhidejna","dimgray":"umazano siva","beige":"bež","fuchsia":"fuksija","lavenderblush":"bleščeča sivka","hotpink":"živo roza","steelblue":"jekleno modra","tomato":"paradižnikova","lightpink":"svetlo roza","limegreen":"citronsko zelena","indianred":"indijansko rdeča","papayawhip":"papaja","lightslategray":"svetlo skrilasto siva","gray":"siva","mediumorchid":"srednje orhidejna","cornsilk":"koruzni laski","black":"črna","seagreen":"morsko zelena","darkslateblue":"temno skrilasto modra","khaki":"rumenkasto rjava","lightblue":"svetlo modra","palegreen":"bledo zelena","azure":"azurna","peachpuff":"breskova","darkolivegreen":"temno olivno zelena","yellowgreen":"rumeno zelena"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sl");dijit.nls.loading.sl={"loadingState":"Nalaganje...","errorState":"Oprostite, prišlo je do napake."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sl");dijit.nls.common.sl={"buttonOk":"V redu","buttonCancel":"Prekliči","buttonSave":"Shrani","itemClose":"Zapri"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sl");dijit.form.nls.validate.sl={"rangeMessage":"Ta vrednost je zunaj obsega. ","invalidMessage":"Vnesena vrednost ni veljavna.","missingMessage":"Ta vrednost je zahtevana."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sl");dijit.form.nls.ComboBox.sl={"previousMessage":"Prejšnje možnosti","nextMessage":"Dodatne možnosti"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sl");dojo.cldr.nls.number.sl={"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_sl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sl");dojo.nls.colors.sl={"lightsteelblue":"svetlo kovinsko modra","orangered":"oranžno-rdeča","midnightblue":"polnočno modra","cadetblue":"kadetsko modra","seashell":"morska lupina","slategrey":"skrilasto siva","coral":"koralna","darkturquoise":"temno turkizna","antiquewhite":"antično bela","mediumspringgreen":"srednje pomladno zelena","salmon":"lososova","darkgrey":"temno siva","ivory":"slonokoščena","greenyellow":"zeleno-rumena","mistyrose":"megleno rožnata","lightsalmon":"svetlo lososova","silver":"srebrna","dimgrey":"pepelnato siva","orange":"oranžna","white":"bela","navajowhite":"navajo bela","royalblue":"kraljevsko modra","deeppink":"temno rožnata","lime":"limetasta","oldlace":"stara čipka","chartreuse":"chartreuse","darkcyan":"temno cijan","yellow":"rumena","linen":"lanena","olive":"olivna","gold":"zlata","lawngreen":"travniško zelena","lightyellow":"svetlo rumena","tan":"rumeno-rjava","darkviolet":"temno vijolična","lightslategrey":"svetlo skrilasto siva","grey":"siva","darkkhaki":"temno kaki","green":"zelena","deepskyblue":"temno nebeško modra","aqua":"akva","sienna":"sienna","mintcream":"metina krema","rosybrown":"rožnato rjava","mediumslateblue":"srednje skrilasto modra","magenta":"magenta","lightseagreen":"svetlo morsko zelena","cyan":"cijan","olivedrab":"umazano olivna","darkgoldenrod":"temna zlata rozga","slateblue":"skrilasto modra","mediumaquamarine":"srednji akvamarin","lavender":"sivka","mediumseagreen":"srednje morsko zelena","maroon":"kostanjeva","darkslategray":"temno skrilasto siva","mediumturquoise":"srednje turkizna","ghostwhite":"senčnato bela","darkblue":"temno modra","mediumvioletred":"srednje vijolično rdeča","brown":"rjava","lightgray":"svetlo siva","sandybrown":"peščeno rjava","pink":"rožnata","firebrick":"opečnata","indigo":"indigo","snow":"snežena","darkorchid":"temno orhidejasta","turquoise":"turkizna","chocolate":"čokoladna","springgreen":"pomladno zelena","moccasin":"mokasinasta","navy":"mornarska","lemonchiffon":"limonast šifon","teal":"modrozelena","floralwhite":"cvetno bela","cornflowerblue":"plavičasto modra","paleturquoise":"bledo turkizna","purple":"škrlatna","gainsboro":"gainsboro","plum":"slivova","red":"rdeča","blue":"modra","forestgreen":"gozdno zelena","darkgreen":"temno zelena","honeydew":"medena rosa","darkseagreen":"temno morsko zelena","lightcoral":"svetlo koralna","palevioletred":"bledo vijolično-rdeča","mediumpurple":"srednje škrlatna","saddlebrown":"sedlasto rjava","darkmagenta":"temna magenta","thistle":"osatna","whitesmoke":"megleno bela","wheat":"pšenična","violet":"vijolična","lightskyblue":"svetlo nebeško modra","goldenrod":"zlata rozga","mediumblue":"srednje modra","skyblue":"nebeško modra","crimson":"karminasta","darksalmon":"temno lososova","darkred":"temno rdeča","darkslategrey":"temno skrilasto siva","peru":"perujska","lightgrey":"svetlo siva","lightgoldenrodyellow":"svetlo rumena zlata rozga","blanchedalmond":"obledelo mandljeva","aliceblue":"alice blue modra","bisque":"porcelanasta","slategray":"skrilasto siva","palegoldenrod":"bleda zlata rozga","darkorange":"temno oranžna","aquamarine":"akvamarin","lightgreen":"svetlo zelena","burlywood":"peščeno sivo-rjava","dodgerblue":"dodgersko modra","darkgray":"temno siva","lightcyan":"svetlo cijan","powderblue":"kobaltovo modra","blueviolet":"modro vijolična","orchid":"orhidejasta","dimgray":"pepelnato siva","beige":"bež","fuchsia":"fuksija","lavenderblush":"rožnato sivka","hotpink":"kričeče rožnata","steelblue":"kovinsko modra","tomato":"paradižnikova","lightpink":"svetlo rožnata","limegreen":"apneno zelena","indianred":"indijansko rdeča","papayawhip":"papaja","lightslategray":"svetlo skrilasto siva","gray":"siva","mediumorchid":"srednje orhidejasta","cornsilk":"koruzna","black":"črna","seagreen":"morsko zelena","darkslateblue":"temno skrilasto modra","khaki":"kaki","lightblue":"svetlo modra","palegreen":"bledo zelena","azure":"azurno modra","peachpuff":"breskova","darkolivegreen":"temna olivno zelena","yellowgreen":"rumeno-zelena"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sl");dijit.nls.loading.sl={"loadingState":"Nalaganje ...","errorState":"Oprostite, prišlo je do napake."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sl");dijit.nls.common.sl={"buttonOk":"V redu","buttonCancel":"Prekliči","buttonSave":"Shrani","itemClose":"Zapri"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sl");dijit.form.nls.validate.sl={"rangeMessage":"Ta vrednost je izven območja.","invalidMessage":"Vnesena vrednost ni veljavna.","missingMessage":"Ta vrednost je zahtevana."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sl");dijit.form.nls.ComboBox.sl={"previousMessage":"Prejšnje izbire","nextMessage":"Dodatne izbire"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sl");dojo.cldr.nls.number.sl={"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_sv.js b/lib/dojo/nls/tt-rss-layer_sv.js index b8ea0caf6..d52287cf1 100644 --- a/lib/dojo/nls/tt-rss-layer_sv.js +++ b/lib/dojo/nls/tt-rss-layer_sv.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_sv");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sv");dojo.nls.colors.sv={"lightsteelblue":"ljust stålblått","orangered":"orangerött","midnightblue":"midnattsblått","cadetblue":"kadettblått","seashell":"snäckskal","slategrey":"skiffergrått","coral":"korall","darkturquoise":"mörkturkost","antiquewhite":"antikvitt","mediumspringgreen":"mellanvårgrönt","salmon":"laxfärgat","darkgrey":"mörkgrått","ivory":"elfenbensvitt","greenyellow":"gröngult","mistyrose":"dunkelrosa","lightsalmon":"ljust laxfärgat","silver":"silver","dimgrey":"smutsgrått","orange":"orange","white":"vitt","navajowhite":"navajovitt","royalblue":"kungligt blått","deeppink":"djuprosa","lime":"lime","oldlace":"spetsvitt","chartreuse":"chartreuse","darkcyan":"mörkt cyan","yellow":"gult","linen":"linne","olive":"olivfärgat","gold":"guld","lawngreen":"gräsmattegrönt","lightyellow":"ljusgult","tan":"mellanbrunt","darkviolet":"mörkviolett","lightslategrey":"ljust skiffergrått","grey":"grått","darkkhaki":"mörkt kaki","green":"grönt","deepskyblue":"mörkt himmelsblått","aqua":"akvamarin","sienna":"sienna","mintcream":"mintgrädde","rosybrown":"rosenbrunt","mediumslateblue":"mellanskifferblått","magenta":"magenta","lightseagreen":"ljust havsgrönt","cyan":"cyan","olivedrab":"olivsmutsgult","darkgoldenrod":"mörkt gullris","slateblue":"skifferblått","mediumaquamarine":"mellanakvamarin","lavender":"lavendel","mediumseagreen":"mellanhavsgrönt","maroon":"rödbrunt","darkslategray":"mörkt skiffergrått","mediumturquoise":"mellanturkost","ghostwhite":"spökvitt","darkblue":"mörkblått","mediumvioletred":"mellanviolettrött","brown":"brunt","lightgray":"ljusgrått","sandybrown":"sandbrunt","pink":"rosa","firebrick":"tegelstensrött","indigo":"indigo","snow":"snö","darkorchid":"mörkt orkidé","turquoise":"turkost","chocolate":"choklad","springgreen":"vårgrönt","moccasin":"mockasin","navy":"marinblått","lemonchiffon":"citronchiffong","teal":"blågrönt","floralwhite":"blomvitt","cornflowerblue":"kornblått","paleturquoise":"blekturkost","purple":"lila","gainsboro":"gainsboro","plum":"plommon","red":"rött","blue":"blått","forestgreen":"skogsgrönt","darkgreen":"mörkgrönt","honeydew":"honungsdagg","darkseagreen":"mörkt havsgrönt","lightcoral":"ljuskorall","palevioletred":"blekviolettrött","mediumpurple":"mellanlila","saddlebrown":"sadelbrunt","darkmagenta":"mörk magenta","thistle":"tistel","whitesmoke":"vit rök","wheat":"vete","violet":"violett","lightskyblue":"ljust himmelsblått","goldenrod":"gullris","mediumblue":"mellanblått","skyblue":"himmelsblått","crimson":"karmosinrött","darksalmon":"mörkt laxfärgat","darkred":"mörkrött","darkslategrey":"mörkt skiffergrått","peru":"peru","lightgrey":"ljusgrått","lightgoldenrodyellow":"ljust gullrisgult","blanchedalmond":"skållad mandel","aliceblue":"aliceblå","bisque":"biskvi","slategray":"skiffergrått","palegoldenrod":"blekt gullris","darkorange":"mörkorange","aquamarine":"akvamarin","lightgreen":"ljusgrönt","burlywood":"träfärgat","dodgerblue":"dodgerblått","darkgray":"mörkgrått","lightcyan":"ljust cyan","powderblue":"pulverblått","blueviolet":"blåviolett","orchid":"orkidé","dimgray":"smutsgrått","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelskimrande","hotpink":"varmrosa","steelblue":"stålblått","tomato":"tomatrött","lightpink":"ljusrosa","limegreen":"limegrönt","indianred":"indianrött","papayawhip":"papayaröra","lightslategray":"ljust skiffergrått","gray":"grått","mediumorchid":"mellanorkidé","cornsilk":"gulvitt","black":"svart","seagreen":"havsgrönt","darkslateblue":"mörkt skifferblått","khaki":"kaki","lightblue":"ljusblått","palegreen":"blekgrönt","azure":"azurblått","peachpuff":"persika","darkolivegreen":"mörkt olivgrönt","yellowgreen":"gulgrönt"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sv");dijit.nls.loading.sv={"loadingState":"Läser in...","errorState":"Det uppstod ett fel."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sv");dijit.nls.common.sv={"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Spara","itemClose":"Stäng"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sv");dijit.form.nls.validate.sv={"rangeMessage":"Värdet är utanför intervallet.","invalidMessage":"Det angivna värdet är ogiltigt.","missingMessage":"Värdet är obligatoriskt."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sv");dijit.form.nls.ComboBox.sv={"previousMessage":"Föregående alternativ","nextMessage":"Fler alternativ"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sv");dojo.cldr.nls.number.sv={"group":" ","percentSign":"%","exponential":"×10^","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"−","decimal":",","nan":"¤¤¤","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_sv");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sv");dojo.nls.colors.sv={"lightsteelblue":"ljust stålblått","orangered":"orangerött","midnightblue":"midnattsblått","cadetblue":"kadettblått","seashell":"snäckskal","slategrey":"skiffergrått","coral":"korall","darkturquoise":"mörkturkost","antiquewhite":"antikvitt","mediumspringgreen":"mellanvårgrönt","salmon":"laxfärgat","darkgrey":"mörkgrått","ivory":"elfenbensvitt","greenyellow":"gröngult","mistyrose":"dunkelrosa","lightsalmon":"ljust laxfärgat","silver":"silver","dimgrey":"smutsgrått","orange":"orange","white":"vitt","navajowhite":"navajovitt","royalblue":"kungligt blått","deeppink":"djuprosa","lime":"lime","oldlace":"spetsvitt","chartreuse":"chartreuse","darkcyan":"mörkt cyan","yellow":"gult","linen":"linne","olive":"olivfärgat","gold":"guld","lawngreen":"gräsmattegrönt","lightyellow":"ljusgult","tan":"mellanbrunt","darkviolet":"mörkviolett","lightslategrey":"ljust skiffergrått","grey":"grått","darkkhaki":"mörkt kaki","green":"grönt","deepskyblue":"mörkt himmelsblått","aqua":"akvamarin","sienna":"sienna","mintcream":"mintgrädde","rosybrown":"rosenbrunt","mediumslateblue":"mellanskifferblått","magenta":"magenta","lightseagreen":"ljust havsgrönt","cyan":"cyan","olivedrab":"olivsmutsgult","darkgoldenrod":"mörkt gullris","slateblue":"skifferblått","mediumaquamarine":"mellanakvamarin","lavender":"lavendel","mediumseagreen":"mellanhavsgrönt","maroon":"rödbrunt","darkslategray":"mörkt skiffergrått","mediumturquoise":"mellanturkost","ghostwhite":"spökvitt","darkblue":"mörkblått","mediumvioletred":"mellanviolettrött","brown":"brunt","lightgray":"ljusgrått","sandybrown":"sandbrunt","pink":"rosa","firebrick":"tegelstensrött","indigo":"indigo","snow":"snö","darkorchid":"mörkt orkidé","turquoise":"turkost","chocolate":"choklad","springgreen":"vårgrönt","moccasin":"mockasin","navy":"marinblått","lemonchiffon":"citronchiffong","teal":"blågrönt","floralwhite":"blomvitt","cornflowerblue":"kornblått","paleturquoise":"blekturkost","purple":"lila","gainsboro":"gainsboro","plum":"plommon","red":"rött","blue":"blått","forestgreen":"skogsgrönt","darkgreen":"mörkgrönt","honeydew":"honungsdagg","darkseagreen":"mörkt havsgrönt","lightcoral":"ljuskorall","palevioletred":"blekviolettrött","mediumpurple":"mellanlila","saddlebrown":"sadelbrunt","darkmagenta":"mörk magenta","thistle":"tistel","whitesmoke":"vit rök","wheat":"vete","violet":"violett","lightskyblue":"ljust himmelsblått","goldenrod":"gullris","mediumblue":"mellanblått","skyblue":"himmelsblått","crimson":"karmosinrött","darksalmon":"mörkt laxfärgat","darkred":"mörkrött","darkslategrey":"mörkt skiffergrått","peru":"peru","lightgrey":"ljusgrått","lightgoldenrodyellow":"ljust gullrisgult","blanchedalmond":"skållad mandel","aliceblue":"aliceblå","bisque":"biskvi","slategray":"skiffergrått","palegoldenrod":"blekt gullris","darkorange":"mörkorange","aquamarine":"akvamarin","lightgreen":"ljusgrönt","burlywood":"träfärgat","dodgerblue":"dodgerblått","darkgray":"mörkgrått","lightcyan":"ljust cyan","powderblue":"pulverblått","blueviolet":"blåviolett","orchid":"orkidé","dimgray":"smutsgrått","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelskimrande","hotpink":"varmrosa","steelblue":"stålblått","tomato":"tomatrött","lightpink":"ljusrosa","limegreen":"limegrönt","indianred":"indianrött","papayawhip":"papayaröra","lightslategray":"ljust skiffergrått","gray":"grått","mediumorchid":"mellanorkidé","cornsilk":"gulvitt","black":"svart","seagreen":"havsgrönt","darkslateblue":"mörkt skifferblått","khaki":"kaki","lightblue":"ljusblått","palegreen":"blekgrönt","azure":"azurblått","peachpuff":"persika","darkolivegreen":"mörkt olivgrönt","yellowgreen":"gulgrönt"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sv");dijit.nls.loading.sv={"loadingState":"Läser in...","errorState":"Det uppstod ett fel."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sv");dijit.nls.common.sv={"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Spara","itemClose":"Stäng"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sv");dijit.form.nls.validate.sv={"rangeMessage":"Värdet är utanför intervallet.","invalidMessage":"Det angivna värdet är ogiltigt.","missingMessage":"Värdet är obligatoriskt."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sv");dijit.form.nls.ComboBox.sv={"previousMessage":"Föregående alternativ","nextMessage":"Fler alternativ"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sv");dojo.cldr.nls.number.sv={"group":" ","percentSign":"%","exponential":"×10^","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"−","decimal":",","nan":"¤¤¤","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_th.js b/lib/dojo/nls/tt-rss-layer_th.js index 0189c3fb9..95820b7bb 100644 --- a/lib/dojo/nls/tt-rss-layer_th.js +++ b/lib/dojo/nls/tt-rss-layer_th.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_th");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.th");dojo.nls.colors.th={"lightsteelblue":"light steel blue","orangered":"ส้มแกมแดง","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"เทาเข้ม","ivory":"งาช้าง","greenyellow":"เขียวแกมเหลือง","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"เงิน","dimgrey":"dim gray","orange":"ส้ม","white":"ขาว","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"ชมพูเข้ม","lime":"เหลืองมะนาว","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"เขียวแกมน้ำเงินเข้ม","yellow":"เหลือง","linen":"linen","olive":"โอลีฟ","gold":"ทอง","lawngreen":"lawn green","lightyellow":"เหลืองอ่อน","tan":"tan","darkviolet":"ม่วงเข้ม","lightslategrey":"light slate gray","grey":"เทา","darkkhaki":"dark khaki","green":"เขียว","deepskyblue":"deep sky blue","aqua":"ฟ้าน้ำทะเล","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"แดงแกมม่วง","lightseagreen":"light sea green","cyan":"เขียวแกมน้ำเงิน","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"ม่วงลาเวนเดอร์","mediumseagreen":"medium sea green","maroon":"น้ำตาลแดง","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"น้ำเงินเข้ม","mediumvioletred":"medium violet-red","brown":"น้ำตาล","lightgray":"เทาอ่อน","sandybrown":"sandy brown","pink":"ชมพู","firebrick":"สีอิฐ","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"ช็อกโกแลต","springgreen":"spring green","moccasin":"ม็อคค่า","navy":"น้ำเงินเข้ม","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"ม่วง","gainsboro":"gainsboro","plum":"plum","red":"แดง","blue":"น้ำเงิน","forestgreen":"forest green","darkgreen":"เขียวเข้ม","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"แดงแกมม่วงเข้ม","thistle":"thistle","whitesmoke":"ขาวควัน","wheat":"wheat","violet":"ม่วง","lightskyblue":"ฟ้าอ่อน","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"แดงเลือดหมู","darksalmon":"dark salmon","darkred":"แดงเข้ม","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"เทาอ่อน","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"ส้มเข้ม","aquamarine":"aquamarine","lightgreen":"เขียวอ่อน","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"เทาเข้ม","lightcyan":"เขียวแกมน้ำเงินอ่อน","powderblue":"powder blue","blueviolet":"น้ำเงินม่วง","orchid":"orchid","dimgray":"dim gray","beige":"น้ำตาลเบจ","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"ชมพูอ่อน","limegreen":"เขียวมะนาว","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"เทา","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"ดำ","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"น้ำเงินอ่อน","palegreen":"pale green","azure":"น้ำเงินฟ้า","peachpuff":"peach puff","darkolivegreen":"เขียวโอลีฟเข้ม","yellowgreen":"เหลืองแกมเขียว"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.th");dijit.nls.loading.th={"loadingState":"กำลังโหลด...","errorState":"ขออภัย เกิดข้อผิดพลาด"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.th");dijit.nls.common.th={"buttonOk":"ตกลง","buttonCancel":"ยกเลิก","buttonSave":"บันทึก","itemClose":"ปิด"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.th");dijit.form.nls.validate.th={"rangeMessage":"ค่านี้เกินช่วง","invalidMessage":"ค่าที่ป้อนไม่ถูกต้อง","missingMessage":"จำเป็นต้องมีค่านี้"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.th");dijit.form.nls.ComboBox.th={"previousMessage":"การเลือกก่อนหน้า","nextMessage":"การเลือกเพิ่มเติม"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.th");dojo.cldr.nls.number.th={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;¤-#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_th");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.th");dojo.nls.colors.th={"lightsteelblue":"light steel blue","orangered":"ส้มแกมแดง","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"เทาเข้ม","ivory":"งาช้าง","greenyellow":"เขียวแกมเหลือง","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"เงิน","dimgrey":"dim gray","orange":"ส้ม","white":"ขาว","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"ชมพูเข้ม","lime":"เหลืองมะนาว","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"เขียวแกมน้ำเงินเข้ม","yellow":"เหลือง","linen":"linen","olive":"โอลีฟ","gold":"ทอง","lawngreen":"lawn green","lightyellow":"เหลืองอ่อน","tan":"tan","darkviolet":"ม่วงเข้ม","lightslategrey":"light slate gray","grey":"เทา","darkkhaki":"dark khaki","green":"เขียว","deepskyblue":"deep sky blue","aqua":"ฟ้าน้ำทะเล","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"แดงแกมม่วง","lightseagreen":"light sea green","cyan":"เขียวแกมน้ำเงิน","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"ม่วงลาเวนเดอร์","mediumseagreen":"medium sea green","maroon":"น้ำตาลแดง","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"น้ำเงินเข้ม","mediumvioletred":"medium violet-red","brown":"น้ำตาล","lightgray":"เทาอ่อน","sandybrown":"sandy brown","pink":"ชมพู","firebrick":"สีอิฐ","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"ช็อกโกแลต","springgreen":"spring green","moccasin":"ม็อคค่า","navy":"น้ำเงินเข้ม","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"ม่วง","gainsboro":"gainsboro","plum":"plum","red":"แดง","blue":"น้ำเงิน","forestgreen":"forest green","darkgreen":"เขียวเข้ม","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"แดงแกมม่วงเข้ม","thistle":"thistle","whitesmoke":"ขาวควัน","wheat":"wheat","violet":"ม่วง","lightskyblue":"ฟ้าอ่อน","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"แดงเลือดหมู","darksalmon":"dark salmon","darkred":"แดงเข้ม","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"เทาอ่อน","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"ส้มเข้ม","aquamarine":"aquamarine","lightgreen":"เขียวอ่อน","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"เทาเข้ม","lightcyan":"เขียวแกมน้ำเงินอ่อน","powderblue":"powder blue","blueviolet":"น้ำเงินม่วง","orchid":"orchid","dimgray":"dim gray","beige":"น้ำตาลเบจ","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"ชมพูอ่อน","limegreen":"เขียวมะนาว","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"เทา","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"ดำ","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"น้ำเงินอ่อน","palegreen":"pale green","azure":"น้ำเงินฟ้า","peachpuff":"peach puff","darkolivegreen":"เขียวโอลีฟเข้ม","yellowgreen":"เหลืองแกมเขียว"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.th");dijit.nls.loading.th={"loadingState":"กำลังโหลด...","errorState":"ขออภัย เกิดข้อผิดพลาด"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.th");dijit.nls.common.th={"buttonOk":"ตกลง","buttonCancel":"ยกเลิก","buttonSave":"บันทึก","itemClose":"ปิด"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.th");dijit.form.nls.validate.th={"rangeMessage":"ค่านี้เกินช่วง","invalidMessage":"ค่าที่ป้อนไม่ถูกต้อง","missingMessage":"จำเป็นต้องมีค่านี้"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.th");dijit.form.nls.ComboBox.th={"previousMessage":"การเลือกก่อนหน้า","nextMessage":"การเลือกเพิ่มเติม"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.th");dojo.cldr.nls.number.th={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;¤-#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_tr.js b/lib/dojo/nls/tt-rss-layer_tr.js index 73e5d8126..163130bf4 100644 --- a/lib/dojo/nls/tt-rss-layer_tr.js +++ b/lib/dojo/nls/tt-rss-layer_tr.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_tr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.tr");dojo.nls.colors.tr={"lightsteelblue":"açık metalik mavi","orangered":"turuncu kırmızı","midnightblue":"gece mavisi","cadetblue":"denizci mavisi","seashell":"deniz kabuğu","slategrey":"arduvaz grisi","coral":"mercan","darkturquoise":"koyu turkuaz","antiquewhite":"antik beyaz","mediumspringgreen":"orta bahar yeşili","salmon":"somon","darkgrey":"koyu gri","ivory":"fildişi","greenyellow":"yeşil-sarı","mistyrose":"gülkurusu","lightsalmon":"açık somon","silver":"gümüş","dimgrey":"soluk gri","orange":"turuncu","white":"beyaz","navajowhite":"navajo beyazı","royalblue":"parlak koyu mavi","deeppink":"koyu pembe","lime":"limon yeşili","oldlace":"eski dantel","chartreuse":"chartreuse","darkcyan":"koyu camgöbeği","yellow":"sarı","linen":"keten","olive":"zeytin","gold":"altın","lawngreen":"çimen yeşili","lightyellow":"açık sarı","tan":"güneş yanığı","darkviolet":"koyu eflatun","lightslategrey":"açık arduvaz grisi","grey":"gri","darkkhaki":"koyu haki","green":"yeşil","deepskyblue":"koyu gök mavisi","aqua":"deniz mavisi","sienna":"koyu kahve","mintcream":"naneli krem","rosybrown":"pembemsi kahverengi","mediumslateblue":"orta arduvaz mavisi","magenta":"macenta","lightseagreen":"açık deniz yeşili","cyan":"camgöbeği","olivedrab":"asker yeşili","darkgoldenrod":"koyu sarı","slateblue":"arduvaz mavisi","mediumaquamarine":"orta akuamarin","lavender":"lavanta","mediumseagreen":"orta deniz yeşili","maroon":"kestane","darkslategray":"koyu arduvaz grisi","mediumturquoise":"orta turkuaz","ghostwhite":"silik beyaz","darkblue":"koyu mavi","mediumvioletred":"orta menekşe kırmızısı","brown":"kahverengi","lightgray":"açık gri","sandybrown":"kum rengi","pink":"pembe","firebrick":"canlı kiremit","indigo":"çivit mavisi","snow":"kar","darkorchid":"koyu orkide","turquoise":"turkuaz","chocolate":"çikolata","springgreen":"bahar yeşili","moccasin":"mokosen","navy":"lacivert","lemonchiffon":"limoni","teal":"Teal mavi","floralwhite":"çiçek beyazı","cornflowerblue":"peygamber çiçeği mavisi","paleturquoise":"soluk turkuaz","purple":"mor","gainsboro":"gainsboro","plum":"erik","red":"kırmızı","blue":"mavi","forestgreen":"koyu deniz yeşili","darkgreen":"koyu yeşil","honeydew":"çam sakızı","darkseagreen":"koyu deniz yeşili","lightcoral":"açık mercan","palevioletred":"soluk menekşe kırmızısı","mediumpurple":"orta mor","saddlebrown":"açık kahve","darkmagenta":"koyu mor","thistle":"devedikeni","whitesmoke":"beyaz duman","wheat":"buğday","violet":"eflatun","lightskyblue":"açık gök mavisi","goldenrod":"sarısabır","mediumblue":"orta mavi","skyblue":"gök mavisi","crimson":"crimson","darksalmon":"koyu somon","darkred":"koyu kırmızı","darkslategrey":"koyu arduvaz grisi","peru":"peru","lightgrey":"açık gri","lightgoldenrodyellow":"açık sarısabır","blanchedalmond":"soluk badem","aliceblue":"alice mavisi","bisque":"bisküvi","slategray":"arduvaz grisi","palegoldenrod":"soluk sarısabır","darkorange":"koyu turuncu","aquamarine":"akuamarin","lightgreen":"açık yeşil","burlywood":"sarımsı kahverengi","dodgerblue":"toz mavisi","darkgray":"koyu gri","lightcyan":"açık camgöbeği","powderblue":"pudra mavisi","blueviolet":"mavi-mor","orchid":"orkide","dimgray":"soluk gri","beige":"bej","fuchsia":"fuşya","lavenderblush":"lavanta pembesi","hotpink":"sıcak pembe","steelblue":"metalik mavi","tomato":"domates","lightpink":"açık pembe","limegreen":"küf yeşili","indianred":"kızılderili kırmızısı","papayawhip":"papaya sapı","lightslategray":"açık arduvaz grisi","gray":"gri","mediumorchid":"orta orkide","cornsilk":"mısır rengi","black":"siyah","seagreen":"deniz yeşili","darkslateblue":"koyu arduvaz mavisi","khaki":"haki","lightblue":"açık mavi","palegreen":"soluk yeşil","azure":"azur mavisi","peachpuff":"açık şeftali","darkolivegreen":"koyu zeytin yeşili","yellowgreen":"sarı yeşil"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.tr");dijit.nls.loading.tr={"loadingState":"Yükleniyor...","errorState":"Üzgünüz, bir hata oluştu"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.tr");dijit.nls.common.tr={"buttonOk":"Tamam","buttonCancel":"İptal","buttonSave":"Kaydet","itemClose":"Kapat"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.tr");dijit.form.nls.validate.tr={"rangeMessage":"Bu değer aralık dışında.","invalidMessage":"Girilen değer geçersiz.","missingMessage":"Bu değer gerekli."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.tr");dijit.form.nls.ComboBox.tr={"previousMessage":"Önceki seçenekler","nextMessage":"Diğer seçenekler"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.tr");dojo.cldr.nls.number.tr={"group":".","percentSign":"%","exponential":"E","percentFormat":"% #,##0","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; +dojo.provide("dojo.nls.tt-rss-layer_tr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.tr");dojo.nls.colors.tr={"lightsteelblue":"açık metalik mavi","orangered":"turuncu kırmızı","midnightblue":"gece mavisi","cadetblue":"denizci mavisi","seashell":"deniz kabuğu","slategrey":"arduvaz grisi","coral":"mercan","darkturquoise":"koyu turkuaz","antiquewhite":"antik beyaz","mediumspringgreen":"orta bahar yeşili","salmon":"somon","darkgrey":"koyu gri","ivory":"fildişi","greenyellow":"yeşil-sarı","mistyrose":"gülkurusu","lightsalmon":"açık somon","silver":"gümüş","dimgrey":"soluk gri","orange":"turuncu","white":"beyaz","navajowhite":"navajo beyazı","royalblue":"parlak koyu mavi","deeppink":"koyu pembe","lime":"limon yeşili","oldlace":"eski dantel","chartreuse":"chartreuse","darkcyan":"koyu camgöbeği","yellow":"sarı","linen":"keten","olive":"zeytin","gold":"altın","lawngreen":"çimen yeşili","lightyellow":"açık sarı","tan":"güneş yanığı","darkviolet":"koyu eflatun","lightslategrey":"açık arduvaz grisi","grey":"gri","darkkhaki":"koyu haki","green":"yeşil","deepskyblue":"koyu gök mavisi","aqua":"deniz mavisi","sienna":"koyu kahve","mintcream":"naneli krem","rosybrown":"pembemsi kahverengi","mediumslateblue":"orta arduvaz mavisi","magenta":"macenta","lightseagreen":"açık deniz yeşili","cyan":"camgöbeği","olivedrab":"asker yeşili","darkgoldenrod":"koyu sarı","slateblue":"arduvaz mavisi","mediumaquamarine":"orta akuamarin","lavender":"lavanta","mediumseagreen":"orta deniz yeşili","maroon":"kestane","darkslategray":"koyu arduvaz grisi","mediumturquoise":"orta turkuaz","ghostwhite":"silik beyaz","darkblue":"koyu mavi","mediumvioletred":"orta menekşe kırmızısı","brown":"kahverengi","lightgray":"açık gri","sandybrown":"kum rengi","pink":"pembe","firebrick":"canlı kiremit","indigo":"çivit mavisi","snow":"kar","darkorchid":"koyu orkide","turquoise":"turkuaz","chocolate":"çikolata","springgreen":"bahar yeşili","moccasin":"mokosen","navy":"lacivert","lemonchiffon":"limoni","teal":"Teal mavi","floralwhite":"çiçek beyazı","cornflowerblue":"peygamber çiçeği mavisi","paleturquoise":"soluk turkuaz","purple":"mor","gainsboro":"gainsboro","plum":"erik","red":"kırmızı","blue":"mavi","forestgreen":"koyu deniz yeşili","darkgreen":"koyu yeşil","honeydew":"çam sakızı","darkseagreen":"koyu deniz yeşili","lightcoral":"açık mercan","palevioletred":"soluk menekşe kırmızısı","mediumpurple":"orta mor","saddlebrown":"açık kahve","darkmagenta":"koyu mor","thistle":"devedikeni","whitesmoke":"beyaz duman","wheat":"buğday","violet":"eflatun","lightskyblue":"açık gök mavisi","goldenrod":"sarısabır","mediumblue":"orta mavi","skyblue":"gök mavisi","crimson":"crimson","darksalmon":"koyu somon","darkred":"koyu kırmızı","darkslategrey":"koyu arduvaz grisi","peru":"peru","lightgrey":"açık gri","lightgoldenrodyellow":"açık sarısabır","blanchedalmond":"soluk badem","aliceblue":"alice mavisi","bisque":"bisküvi","slategray":"arduvaz grisi","palegoldenrod":"soluk sarısabır","darkorange":"koyu turuncu","aquamarine":"akuamarin","lightgreen":"açık yeşil","burlywood":"sarımsı kahverengi","dodgerblue":"toz mavisi","darkgray":"koyu gri","lightcyan":"açık camgöbeği","powderblue":"pudra mavisi","blueviolet":"mavi-mor","orchid":"orkide","dimgray":"soluk gri","beige":"bej","fuchsia":"fuşya","lavenderblush":"lavanta pembesi","hotpink":"sıcak pembe","steelblue":"metalik mavi","tomato":"domates","lightpink":"açık pembe","limegreen":"küf yeşili","indianred":"kızılderili kırmızısı","papayawhip":"papaya sapı","lightslategray":"açık arduvaz grisi","gray":"gri","mediumorchid":"orta orkide","cornsilk":"mısır rengi","black":"siyah","seagreen":"deniz yeşili","darkslateblue":"koyu arduvaz mavisi","khaki":"haki","lightblue":"açık mavi","palegreen":"soluk yeşil","azure":"azur mavisi","peachpuff":"açık şeftali","darkolivegreen":"koyu zeytin yeşili","yellowgreen":"sarı yeşil"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.tr");dijit.nls.loading.tr={"loadingState":"Yükleniyor...","errorState":"Üzgünüz, bir hata oluştu"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.tr");dijit.nls.common.tr={"buttonOk":"Tamam","buttonCancel":"İptal","buttonSave":"Kaydet","itemClose":"Kapat"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.tr");dijit.form.nls.validate.tr={"rangeMessage":"Bu değer aralık dışında.","invalidMessage":"Girilen değer geçersiz.","missingMessage":"Bu değer gerekli."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.tr");dijit.form.nls.ComboBox.tr={"previousMessage":"Önceki seçenekler","nextMessage":"Diğer seçenekler"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.tr");dojo.cldr.nls.number.tr={"group":".","percentSign":"%","exponential":"E","percentFormat":"% #,##0","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "}; diff --git a/lib/dojo/nls/tt-rss-layer_xx.js b/lib/dojo/nls/tt-rss-layer_xx.js index c54e6ea35..a4f0b8535 100644 --- a/lib/dojo/nls/tt-rss-layer_xx.js +++ b/lib/dojo/nls/tt-rss-layer_xx.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_xx");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.xx");dojo.nls.colors.xx={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.xx");dijit.nls.loading.xx={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.xx");dijit.nls.common.xx={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.xx");dijit.form.nls.validate.xx={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.xx");dijit.form.nls.ComboBox.xx={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.xx");dojo.cldr.nls.number.xx={"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_xx");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.xx");dojo.nls.colors.xx={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.xx");dijit.nls.loading.xx={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.xx");dijit.nls.common.xx={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.xx");dijit.form.nls.validate.xx={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.xx");dijit.form.nls.ComboBox.xx={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.xx");dojo.cldr.nls.number.xx={"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_zh-cn.js b/lib/dojo/nls/tt-rss-layer_zh-cn.js index 05243b8ac..e16eeb4be 100644 --- a/lib/dojo/nls/tt-rss-layer_zh-cn.js +++ b/lib/dojo/nls/tt-rss-layer_zh-cn.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_zh-cn");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh_cn");dojo.nls.colors.zh_cn={"lightsteelblue":"浅钢蓝色","orangered":"橙红色","midnightblue":"深蓝色","cadetblue":"灰蓝色","seashell":"海贝色","slategrey":"灰石色","coral":"珊瑚色","darkturquoise":"深粉蓝","antiquewhite":"古董白","mediumspringgreen":"间春绿色","salmon":"橙红","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"浅玫瑰色","lightsalmon":"淡橙色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"纳瓦白","royalblue":"品蓝","deeppink":"深粉红色","lime":"淡黄绿色","oldlace":"老白色","chartreuse":"黄绿色","darkcyan":"深青绿","yellow":"黄色","linen":"亚麻色","olive":"橄榄绿","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"棕褐色","darkviolet":"深紫色","lightslategrey":"浅青灰","grey":"灰色","darkkhaki":"深卡其色","green":"绿色","deepskyblue":"深天蓝色","aqua":"浅绿色","sienna":"赭色","mintcream":"薄荷色","rosybrown":"褐玫瑰红","mediumslateblue":"间暗蓝色","magenta":"洋红色","lightseagreen":"浅海藻绿","cyan":"青蓝色","olivedrab":"草绿色","darkgoldenrod":"深金黄","slateblue":"石蓝色","mediumaquamarine":"间绿色","lavender":"淡紫色","mediumseagreen":"间海蓝色","maroon":"栗色","darkslategray":"深青灰","mediumturquoise":"间绿宝石色","ghostwhite":"苍白","darkblue":"深蓝","mediumvioletred":"间紫罗兰色","brown":"棕色","lightgray":"浅灰色","sandybrown":"沙褐色","pink":"粉红色","firebrick":"砖红","indigo":"靛青","snow":"雪白色","darkorchid":"深紫色","turquoise":"绿宝石色","chocolate":"巧克力色","springgreen":"春绿色","moccasin":"鹿皮色","navy":"藏青色","lemonchiffon":"柠檬绸色","teal":"水鸭色","floralwhite":"花白色","cornflowerblue":"浅蓝色","paleturquoise":"苍绿色","purple":"紫色","gainsboro":"淡灰色","plum":"杨李色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜汁色","darkseagreen":"深海藻绿","lightcoral":"浅珊瑚色","palevioletred":"苍紫罗兰色","mediumpurple":"间紫色","saddlebrown":"重褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"浅黄色","violet":"紫色","lightskyblue":"浅天蓝色","goldenrod":"金麒麟色","mediumblue":"间蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深青灰","peru":"秘鲁色","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"白杏色","aliceblue":"爱丽丝蓝","bisque":"桔黄色","slategray":"灰石色","palegoldenrod":"淡金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"实木色","dodgerblue":"闪蓝色","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"铁蓝","blueviolet":"蓝紫色","orchid":"紫色","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红","hotpink":"深粉红","steelblue":"钢蓝色","tomato":"西红柿色","lightpink":"浅粉红色","limegreen":"橙绿色","indianred":"印度红","papayawhip":"木瓜色","lightslategray":"浅青灰","gray":"灰色","mediumorchid":"间紫色","cornsilk":"米绸色","black":"黑色","seagreen":"海绿色","darkslateblue":"深青蓝","khaki":"卡其色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"天蓝色","peachpuff":"桃色","darkolivegreen":"深橄榄绿","yellowgreen":"黄绿色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh_cn");dijit.nls.loading.zh_cn={"loadingState":"正在加载...","errorState":"对不起,发生了错误"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh_cn");dijit.nls.common.zh_cn={"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh_cn");dijit.form.nls.validate.zh_cn={"rangeMessage":"此值超出范围。","invalidMessage":"输入的值无效。","missingMessage":"此值是必需值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh_cn");dijit.form.nls.ComboBox.zh_cn={"previousMessage":"先前选项","nextMessage":"更多选项"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh_cn");dojo.cldr.nls.number.zh_cn={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_zh-cn");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh_cn");dojo.nls.colors.zh_cn={"lightsteelblue":"浅钢蓝色","orangered":"桔红色","midnightblue":"蓝黑色","cadetblue":"军队蓝","seashell":"贝壳白","slategrey":"石板灰","coral":"珊瑚红","darkturquoise":"深青绿色","antiquewhite":"古董白","mediumspringgreen":"淡草绿色","salmon":"橙红色","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"粉红玫瑰","lightsalmon":"浅橙红色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"印地安黄","royalblue":"亮蓝色","deeppink":"深粉色","lime":"酸橙色","oldlace":"旧布黄","chartreuse":"浅黄绿色","darkcyan":"深青色","yellow":"黄色","linen":"亚麻布色","olive":"橄榄色","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"茶色","darkviolet":"深紫罗兰","lightslategrey":"浅石板灰","grey":"灰色","darkkhaki":"深褐色","green":"绿色","deepskyblue":"深天蓝色","aqua":"水绿色","sienna":"赭色","mintcream":"薄荷乳白","rosybrown":"玫瑰褐色","mediumslateblue":"淡灰蓝色","magenta":"洋红色","lightseagreen":"浅海绿色","cyan":"青色","olivedrab":"暗橄榄色","darkgoldenrod":"深金黄色","slateblue":"石板蓝","mediumaquamarine":"淡碧绿色","lavender":"淡紫色","mediumseagreen":"淡海绿色","maroon":"褐紫红色","darkslategray":"深石板灰","mediumturquoise":"淡青绿色","ghostwhite":"苍白","darkblue":"深蓝色","mediumvioletred":"淡紫罗兰","brown":"褐色","lightgray":"浅灰色","sandybrown":"浅褐色","pink":"粉红色","firebrick":"砖红色","indigo":"靛蓝色","snow":"雪白","darkorchid":"暗兰花紫","turquoise":"青绿色","chocolate":"巧克力色","springgreen":"浅草绿色","moccasin":"鹿皮黄","navy":"藏青色","lemonchiffon":"柠檬色","teal":"青色","floralwhite":"花白","cornflowerblue":"藏蓝色","paleturquoise":"淡青绿色","purple":"紫色","gainsboro":"亮灰色","plum":"梅红色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜色","darkseagreen":"深海绿色","lightcoral":"浅珊瑚红","palevioletred":"浅紫罗兰","mediumpurple":"淡紫色","saddlebrown":"鞍具褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"淡黄色","violet":"紫罗兰色","lightskyblue":"浅天蓝色","goldenrod":"鲜黄","mediumblue":"淡蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深石板灰","peru":"秘鲁棕","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"杏仁白","aliceblue":"艾莉斯蓝","bisque":"乳黄色","slategray":"石板灰","palegoldenrod":"浅金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"原木色","dodgerblue":"宝蓝","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"粉蓝色","blueviolet":"蓝紫色","orchid":"兰花紫","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红色","hotpink":"暗粉","steelblue":"钢蓝色","tomato":"番茄色","lightpink":"浅粉色","limegreen":"暗黄绿色","indianred":"印度红","papayawhip":"粉木瓜橙","lightslategray":"浅石板灰","gray":"灰色","mediumorchid":"淡兰花紫","cornsilk":"玉米黄","black":"黑色","seagreen":"海绿色","darkslateblue":"深石板蓝","khaki":"黄褐色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"浅天蓝","peachpuff":"粉桃红","darkolivegreen":"深橄榄绿色","yellowgreen":"黄绿色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh_cn");dijit.nls.loading.zh_cn={"loadingState":"正在加载...","errorState":"对不起,发生了错误"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh_cn");dijit.nls.common.zh_cn={"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh_cn");dijit.form.nls.validate.zh_cn={"rangeMessage":"此值超出范围。","invalidMessage":"输入的值无效。","missingMessage":"此值是必需值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh_cn");dijit.form.nls.ComboBox.zh_cn={"previousMessage":"先前选项","nextMessage":"更多选项"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh_cn");dojo.cldr.nls.number.zh_cn={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_zh-tw.js b/lib/dojo/nls/tt-rss-layer_zh-tw.js index 4925db23c..9ac816dd9 100644 --- a/lib/dojo/nls/tt-rss-layer_zh-tw.js +++ b/lib/dojo/nls/tt-rss-layer_zh-tw.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_zh-tw");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh_tw");dojo.nls.colors.zh_tw={"lightsteelblue":"淡鐵藍色","orangered":"橙紅色","midnightblue":"午夜藍","cadetblue":"軍服藍","seashell":"海貝色","slategrey":"岩灰色","coral":"珊瑚紅","darkturquoise":"暗松石綠","antiquewhite":"米白色","mediumspringgreen":"中春綠色","salmon":"鮭紅色","darkgrey":"暗灰色","ivory":"象牙色","greenyellow":"綠黃色","mistyrose":"霧玫瑰色","lightsalmon":"淡鮭紅","silver":"銀色","dimgrey":"昏灰色","orange":"橙色","white":"白色","navajowhite":"印地安黃色","royalblue":"品藍色","deeppink":"深粉紅色","lime":"檸檬色","oldlace":"舊蕾絲色","chartreuse":"淡黃綠色","darkcyan":"暗青色","yellow":"黃色","linen":"亞麻色","olive":"橄欖色","gold":"金色","lawngreen":"草綠色","lightyellow":"淡黃色","tan":"皮革色","darkviolet":"暗紫羅蘭色","lightslategrey":"淡岩灰色","grey":"灰色","darkkhaki":"暗卡其色","green":"綠色","deepskyblue":"深天藍色","aqua":"水色","sienna":"黃土赭色","mintcream":"薄荷乳白色","rosybrown":"玫瑰褐","mediumslateblue":"中岩藍色","magenta":"紫紅色","lightseagreen":"淡海綠色","cyan":"青色","olivedrab":"橄欖綠","darkgoldenrod":"暗金菊色","slateblue":"岩藍色","mediumaquamarine":"中碧綠色","lavender":"薰衣草紫","mediumseagreen":"中海綠色","maroon":"栗色","darkslategray":"暗岩灰色","mediumturquoise":"中松石綠","ghostwhite":"幽靈色","darkblue":"暗藍色","mediumvioletred":"中紫羅蘭紅","brown":"褐色","lightgray":"淡灰色","sandybrown":"沙褐色","pink":"粉紅色","firebrick":"紅磚色","indigo":"靛藍色","snow":"雪白色","darkorchid":"暗蘭花色","turquoise":"松石綠","chocolate":"巧克力色","springgreen":"春綠色","moccasin":"鹿皮黃色","navy":"海軍藍","lemonchiffon":"奶油黃","teal":"深藍綠色","floralwhite":"花卉白","cornflowerblue":"矢車菊藍","paleturquoise":"灰松石綠","purple":"紫色","gainsboro":"石板灰","plum":"李紫色","red":"紅色","blue":"藍色","forestgreen":"森綠色","darkgreen":"暗綠色","honeydew":"密瓜色","darkseagreen":"暗海綠色","lightcoral":"淡珊瑚紅","palevioletred":"灰紫羅蘭紅","mediumpurple":"中紫色","saddlebrown":"鞍褐色","darkmagenta":"暗紫紅色","thistle":"薊色","whitesmoke":"白煙色","wheat":"小麥色","violet":"紫羅蘭色","lightskyblue":"淡天藍色","goldenrod":"金菊色","mediumblue":"中藍色","skyblue":"天藍色","crimson":"暗深紅色","darksalmon":"暗鮭紅","darkred":"暗紅色","darkslategrey":"暗岩灰色","peru":"祕魯色","lightgrey":"淡灰色","lightgoldenrodyellow":"淡金菊黃","blanchedalmond":"杏仁白","aliceblue":"愛麗絲藍","bisque":"橘黃色","slategray":"岩灰色","palegoldenrod":"灰金菊色","darkorange":"暗橙色","aquamarine":"碧綠色","lightgreen":"淡綠色","burlywood":"實木色","dodgerblue":"道奇藍","darkgray":"暗灰色","lightcyan":"淡青色","powderblue":"粉藍色","blueviolet":"藍紫色","orchid":"蘭花色","dimgray":"昏灰色","beige":"灰棕色","fuchsia":"海棠紅","lavenderblush":"薰衣草紫紅","hotpink":"暖粉紅色","steelblue":"鐵藍色","tomato":"蕃茄紅","lightpink":"淡粉紅色","limegreen":"檸檬綠","indianred":"印度紅","papayawhip":"番木瓜色","lightslategray":"淡岩灰色","gray":"灰色","mediumorchid":"中蘭紫色","cornsilk":"玉米黃","black":"黑色","seagreen":"海綠色","darkslateblue":"暗岩藍色","khaki":"卡其色","lightblue":"淡藍色","palegreen":"灰綠色","azure":"天藍色","peachpuff":"粉撲桃色","darkolivegreen":"暗橄欖綠","yellowgreen":"黃綠色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh_tw");dijit.nls.loading.zh_tw={"loadingState":"載入中...","errorState":"抱歉,發生錯誤"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh_tw");dijit.nls.common.zh_tw={"buttonOk":"確定","buttonCancel":"取消","buttonSave":"儲存","itemClose":"關閉"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh_tw");dijit.form.nls.validate.zh_tw={"rangeMessage":"此值超出範圍。","invalidMessage":"輸入的值無效。","missingMessage":"必須提供此值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh_tw");dijit.form.nls.ComboBox.zh_tw={"previousMessage":"前一個選擇項","nextMessage":"其他選擇項"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh_tw");dojo.cldr.nls.number.zh_tw={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_zh-tw");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh_tw");dojo.nls.colors.zh_tw={"lightsteelblue":"淡鐵藍色","orangered":"橙紅色","midnightblue":"午夜藍","cadetblue":"軍服藍","seashell":"海貝色","slategrey":"岩灰色","coral":"珊瑚紅","darkturquoise":"暗松石綠","antiquewhite":"米白色","mediumspringgreen":"中春綠色","salmon":"鮭紅色","darkgrey":"暗灰色","ivory":"象牙色","greenyellow":"綠黃色","mistyrose":"霧玫瑰色","lightsalmon":"淡鮭紅","silver":"銀色","dimgrey":"昏灰色","orange":"橙色","white":"白色","navajowhite":"印地安黃色","royalblue":"品藍色","deeppink":"深粉紅色","lime":"檸檬色","oldlace":"舊蕾絲色","chartreuse":"淡黃綠色","darkcyan":"暗青色","yellow":"黃色","linen":"亞麻色","olive":"橄欖色","gold":"金色","lawngreen":"草綠色","lightyellow":"淡黃色","tan":"皮革色","darkviolet":"暗紫羅蘭色","lightslategrey":"淡岩灰色","grey":"灰色","darkkhaki":"暗卡其色","green":"綠色","deepskyblue":"深天藍色","aqua":"水色","sienna":"黃土赭色","mintcream":"薄荷乳白色","rosybrown":"玫瑰褐","mediumslateblue":"中岩藍色","magenta":"紫紅色","lightseagreen":"淡海綠色","cyan":"青色","olivedrab":"橄欖綠","darkgoldenrod":"暗金菊色","slateblue":"岩藍色","mediumaquamarine":"中碧綠色","lavender":"薰衣草紫","mediumseagreen":"中海綠色","maroon":"栗色","darkslategray":"暗岩灰色","mediumturquoise":"中松石綠","ghostwhite":"幽靈色","darkblue":"暗藍色","mediumvioletred":"中紫羅蘭紅","brown":"褐色","lightgray":"淡灰色","sandybrown":"沙褐色","pink":"粉紅色","firebrick":"紅磚色","indigo":"靛藍色","snow":"雪白色","darkorchid":"暗蘭花色","turquoise":"松石綠","chocolate":"巧克力色","springgreen":"春綠色","moccasin":"鹿皮黃色","navy":"海軍藍","lemonchiffon":"奶油黃","teal":"深藍綠色","floralwhite":"花卉白","cornflowerblue":"矢車菊藍","paleturquoise":"灰松石綠","purple":"紫色","gainsboro":"石板灰","plum":"李紫色","red":"紅色","blue":"藍色","forestgreen":"森綠色","darkgreen":"暗綠色","honeydew":"密瓜色","darkseagreen":"暗海綠色","lightcoral":"淡珊瑚紅","palevioletred":"灰紫羅蘭紅","mediumpurple":"中紫色","saddlebrown":"鞍褐色","darkmagenta":"暗紫紅色","thistle":"薊色","whitesmoke":"白煙色","wheat":"小麥色","violet":"紫羅蘭色","lightskyblue":"淡天藍色","goldenrod":"金菊色","mediumblue":"中藍色","skyblue":"天藍色","crimson":"暗深紅色","darksalmon":"暗鮭紅","darkred":"暗紅色","darkslategrey":"暗岩灰色","peru":"祕魯色","lightgrey":"淡灰色","lightgoldenrodyellow":"淡金菊黃","blanchedalmond":"杏仁白","aliceblue":"愛麗絲藍","bisque":"橘黃色","slategray":"岩灰色","palegoldenrod":"灰金菊色","darkorange":"暗橙色","aquamarine":"碧綠色","lightgreen":"淡綠色","burlywood":"實木色","dodgerblue":"道奇藍","darkgray":"暗灰色","lightcyan":"淡青色","powderblue":"粉藍色","blueviolet":"藍紫色","orchid":"蘭花色","dimgray":"昏灰色","beige":"灰棕色","fuchsia":"海棠紅","lavenderblush":"薰衣草紫紅","hotpink":"暖粉紅色","steelblue":"鐵藍色","tomato":"蕃茄紅","lightpink":"淡粉紅色","limegreen":"檸檬綠","indianred":"印度紅","papayawhip":"番木瓜色","lightslategray":"淡岩灰色","gray":"灰色","mediumorchid":"中蘭紫色","cornsilk":"玉米黃","black":"黑色","seagreen":"海綠色","darkslateblue":"暗岩藍色","khaki":"卡其色","lightblue":"淡藍色","palegreen":"灰綠色","azure":"天藍色","peachpuff":"粉撲桃色","darkolivegreen":"暗橄欖綠","yellowgreen":"黃綠色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh_tw");dijit.nls.loading.zh_tw={"loadingState":"載入中...","errorState":"抱歉,發生錯誤"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh_tw");dijit.nls.common.zh_tw={"buttonOk":"確定","buttonCancel":"取消","buttonSave":"儲存","itemClose":"關閉"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh_tw");dijit.form.nls.validate.zh_tw={"rangeMessage":"此值超出範圍。","invalidMessage":"輸入的值無效。","missingMessage":"必須提供此值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh_tw");dijit.form.nls.ComboBox.zh_tw={"previousMessage":"前一個選擇項","nextMessage":"其他選擇項"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh_tw");dojo.cldr.nls.number.zh_tw={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/tt-rss-layer_zh.js b/lib/dojo/nls/tt-rss-layer_zh.js index ed7ddffdf..0b391dbbb 100644 --- a/lib/dojo/nls/tt-rss-layer_zh.js +++ b/lib/dojo/nls/tt-rss-layer_zh.js @@ -1 +1 @@ -dojo.provide("dojo.nls.tt-rss-layer_zh");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh");dojo.nls.colors.zh={"lightsteelblue":"浅钢蓝色","orangered":"橙红色","midnightblue":"深蓝色","cadetblue":"灰蓝色","seashell":"海贝色","slategrey":"灰石色","coral":"珊瑚色","darkturquoise":"深粉蓝","antiquewhite":"古董白","mediumspringgreen":"间春绿色","salmon":"橙红","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"浅玫瑰色","lightsalmon":"淡橙色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"纳瓦白","royalblue":"品蓝","deeppink":"深粉红色","lime":"淡黄绿色","oldlace":"老白色","chartreuse":"黄绿色","darkcyan":"深青绿","yellow":"黄色","linen":"亚麻色","olive":"橄榄绿","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"棕褐色","darkviolet":"深紫色","lightslategrey":"浅青灰","grey":"灰色","darkkhaki":"深卡其色","green":"绿色","deepskyblue":"深天蓝色","aqua":"浅绿色","sienna":"赭色","mintcream":"薄荷色","rosybrown":"褐玫瑰红","mediumslateblue":"间暗蓝色","magenta":"洋红色","lightseagreen":"浅海藻绿","cyan":"青蓝色","olivedrab":"草绿色","darkgoldenrod":"深金黄","slateblue":"石蓝色","mediumaquamarine":"间绿色","lavender":"淡紫色","mediumseagreen":"间海蓝色","maroon":"栗色","darkslategray":"深青灰","mediumturquoise":"间绿宝石色","ghostwhite":"苍白","darkblue":"深蓝","mediumvioletred":"间紫罗兰色","brown":"棕色","lightgray":"浅灰色","sandybrown":"沙褐色","pink":"粉红色","firebrick":"砖红","indigo":"靛青","snow":"雪白色","darkorchid":"深紫色","turquoise":"绿宝石色","chocolate":"巧克力色","springgreen":"春绿色","moccasin":"鹿皮色","navy":"藏青色","lemonchiffon":"柠檬绸色","teal":"水鸭色","floralwhite":"花白色","cornflowerblue":"浅蓝色","paleturquoise":"苍绿色","purple":"紫色","gainsboro":"淡灰色","plum":"杨李色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜汁色","darkseagreen":"深海藻绿","lightcoral":"浅珊瑚色","palevioletred":"苍紫罗兰色","mediumpurple":"间紫色","saddlebrown":"重褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"浅黄色","violet":"紫色","lightskyblue":"浅天蓝色","goldenrod":"金麒麟色","mediumblue":"间蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深青灰","peru":"秘鲁色","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"白杏色","aliceblue":"爱丽丝蓝","bisque":"桔黄色","slategray":"灰石色","palegoldenrod":"淡金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"实木色","dodgerblue":"闪蓝色","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"铁蓝","blueviolet":"蓝紫色","orchid":"紫色","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红","hotpink":"深粉红","steelblue":"钢蓝色","tomato":"西红柿色","lightpink":"浅粉红色","limegreen":"橙绿色","indianred":"印度红","papayawhip":"木瓜色","lightslategray":"浅青灰","gray":"灰色","mediumorchid":"间紫色","cornsilk":"米绸色","black":"黑色","seagreen":"海绿色","darkslateblue":"深青蓝","khaki":"卡其色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"天蓝色","peachpuff":"桃色","darkolivegreen":"深橄榄绿","yellowgreen":"黄绿色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh");dijit.nls.loading.zh={"loadingState":"正在加载...","errorState":"对不起,发生了错误"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh");dijit.nls.common.zh={"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh");dijit.form.nls.validate.zh={"rangeMessage":"此值超出范围。","invalidMessage":"输入的值无效。","missingMessage":"此值是必需值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh");dijit.form.nls.ComboBox.zh={"previousMessage":"先前选项","nextMessage":"更多选项"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh");dojo.cldr.nls.number.zh={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; +dojo.provide("dojo.nls.tt-rss-layer_zh");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh");dojo.nls.colors.zh={"lightsteelblue":"浅钢蓝色","orangered":"桔红色","midnightblue":"蓝黑色","cadetblue":"军队蓝","seashell":"贝壳白","slategrey":"石板灰","coral":"珊瑚红","darkturquoise":"深青绿色","antiquewhite":"古董白","mediumspringgreen":"淡草绿色","salmon":"橙红色","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"粉红玫瑰","lightsalmon":"浅橙红色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"印地安黄","royalblue":"亮蓝色","deeppink":"深粉色","lime":"酸橙色","oldlace":"旧布黄","chartreuse":"浅黄绿色","darkcyan":"深青色","yellow":"黄色","linen":"亚麻布色","olive":"橄榄色","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"茶色","darkviolet":"深紫罗兰","lightslategrey":"浅石板灰","grey":"灰色","darkkhaki":"深褐色","green":"绿色","deepskyblue":"深天蓝色","aqua":"水绿色","sienna":"赭色","mintcream":"薄荷乳白","rosybrown":"玫瑰褐色","mediumslateblue":"淡灰蓝色","magenta":"洋红色","lightseagreen":"浅海绿色","cyan":"青色","olivedrab":"暗橄榄色","darkgoldenrod":"深金黄色","slateblue":"石板蓝","mediumaquamarine":"淡碧绿色","lavender":"淡紫色","mediumseagreen":"淡海绿色","maroon":"褐紫红色","darkslategray":"深石板灰","mediumturquoise":"淡青绿色","ghostwhite":"苍白","darkblue":"深蓝色","mediumvioletred":"淡紫罗兰","brown":"褐色","lightgray":"浅灰色","sandybrown":"浅褐色","pink":"粉红色","firebrick":"砖红色","indigo":"靛蓝色","snow":"雪白","darkorchid":"暗兰花紫","turquoise":"青绿色","chocolate":"巧克力色","springgreen":"浅草绿色","moccasin":"鹿皮黄","navy":"藏青色","lemonchiffon":"柠檬色","teal":"青色","floralwhite":"花白","cornflowerblue":"藏蓝色","paleturquoise":"淡青绿色","purple":"紫色","gainsboro":"亮灰色","plum":"梅红色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜色","darkseagreen":"深海绿色","lightcoral":"浅珊瑚红","palevioletred":"浅紫罗兰","mediumpurple":"淡紫色","saddlebrown":"鞍具褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"淡黄色","violet":"紫罗兰色","lightskyblue":"浅天蓝色","goldenrod":"鲜黄","mediumblue":"淡蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深石板灰","peru":"秘鲁棕","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"杏仁白","aliceblue":"艾莉斯蓝","bisque":"乳黄色","slategray":"石板灰","palegoldenrod":"浅金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"原木色","dodgerblue":"宝蓝","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"粉蓝色","blueviolet":"蓝紫色","orchid":"兰花紫","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红色","hotpink":"暗粉","steelblue":"钢蓝色","tomato":"番茄色","lightpink":"浅粉色","limegreen":"暗黄绿色","indianred":"印度红","papayawhip":"粉木瓜橙","lightslategray":"浅石板灰","gray":"灰色","mediumorchid":"淡兰花紫","cornsilk":"玉米黄","black":"黑色","seagreen":"海绿色","darkslateblue":"深石板蓝","khaki":"黄褐色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"浅天蓝","peachpuff":"粉桃红","darkolivegreen":"深橄榄绿色","yellowgreen":"黄绿色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh");dijit.nls.loading.zh={"loadingState":"正在加载...","errorState":"对不起,发生了错误"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh");dijit.nls.common.zh={"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh");dijit.form.nls.validate.zh={"rangeMessage":"此值超出范围。","invalidMessage":"输入的值无效。","missingMessage":"此值是必需值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh");dijit.form.nls.ComboBox.zh={"previousMessage":"先前选项","nextMessage":"更多选项"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh");dojo.cldr.nls.number.zh={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","decimalFormat-short":"000T","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"}; diff --git a/lib/dojo/nls/zh/colors.js b/lib/dojo/nls/zh/colors.js index 35368f394..0ffb2d8f9 100644 --- a/lib/dojo/nls/zh/colors.js +++ b/lib/dojo/nls/zh/colors.js @@ -1 +1 @@ -({"lightsteelblue":"浅钢蓝色","orangered":"橙红色","midnightblue":"深蓝色","cadetblue":"灰蓝色","seashell":"海贝色","slategrey":"灰石色","coral":"珊瑚色","darkturquoise":"深粉蓝","antiquewhite":"古董白","mediumspringgreen":"间春绿色","salmon":"橙红","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"浅玫瑰色","lightsalmon":"淡橙色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"纳瓦白","royalblue":"品蓝","deeppink":"深粉红色","lime":"淡黄绿色","oldlace":"老白色","chartreuse":"黄绿色","darkcyan":"深青绿","yellow":"黄色","linen":"亚麻色","olive":"橄榄绿","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"棕褐色","darkviolet":"深紫色","lightslategrey":"浅青灰","grey":"灰色","darkkhaki":"深卡其色","green":"绿色","deepskyblue":"深天蓝色","aqua":"浅绿色","sienna":"赭色","mintcream":"薄荷色","rosybrown":"褐玫瑰红","mediumslateblue":"间暗蓝色","magenta":"洋红色","lightseagreen":"浅海藻绿","cyan":"青蓝色","olivedrab":"草绿色","darkgoldenrod":"深金黄","slateblue":"石蓝色","mediumaquamarine":"间绿色","lavender":"淡紫色","mediumseagreen":"间海蓝色","maroon":"栗色","darkslategray":"深青灰","mediumturquoise":"间绿宝石色","ghostwhite":"苍白","darkblue":"深蓝","mediumvioletred":"间紫罗兰色","brown":"棕色","lightgray":"浅灰色","sandybrown":"沙褐色","pink":"粉红色","firebrick":"砖红","indigo":"靛青","snow":"雪白色","darkorchid":"深紫色","turquoise":"绿宝石色","chocolate":"巧克力色","springgreen":"春绿色","moccasin":"鹿皮色","navy":"藏青色","lemonchiffon":"柠檬绸色","teal":"水鸭色","floralwhite":"花白色","cornflowerblue":"浅蓝色","paleturquoise":"苍绿色","purple":"紫色","gainsboro":"淡灰色","plum":"杨李色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜汁色","darkseagreen":"深海藻绿","lightcoral":"浅珊瑚色","palevioletred":"苍紫罗兰色","mediumpurple":"间紫色","saddlebrown":"重褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"浅黄色","violet":"紫色","lightskyblue":"浅天蓝色","goldenrod":"金麒麟色","mediumblue":"间蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深青灰","peru":"秘鲁色","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"白杏色","aliceblue":"爱丽丝蓝","bisque":"桔黄色","slategray":"灰石色","palegoldenrod":"淡金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"实木色","dodgerblue":"闪蓝色","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"铁蓝","blueviolet":"蓝紫色","orchid":"紫色","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红","hotpink":"深粉红","steelblue":"钢蓝色","tomato":"西红柿色","lightpink":"浅粉红色","limegreen":"橙绿色","indianred":"印度红","papayawhip":"木瓜色","lightslategray":"浅青灰","gray":"灰色","mediumorchid":"间紫色","cornsilk":"米绸色","black":"黑色","seagreen":"海绿色","darkslateblue":"深青蓝","khaki":"卡其色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"天蓝色","peachpuff":"桃色","darkolivegreen":"深橄榄绿","yellowgreen":"黄绿色"})
\ No newline at end of file +({"lightsteelblue":"浅钢蓝色","orangered":"桔红色","midnightblue":"蓝黑色","cadetblue":"军队蓝","seashell":"贝壳白","slategrey":"石板灰","coral":"珊瑚红","darkturquoise":"深青绿色","antiquewhite":"古董白","mediumspringgreen":"淡草绿色","salmon":"橙红色","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"粉红玫瑰","lightsalmon":"浅橙红色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"印地安黄","royalblue":"亮蓝色","deeppink":"深粉色","lime":"酸橙色","oldlace":"旧布黄","chartreuse":"浅黄绿色","darkcyan":"深青色","yellow":"黄色","linen":"亚麻布色","olive":"橄榄色","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"茶色","darkviolet":"深紫罗兰","lightslategrey":"浅石板灰","grey":"灰色","darkkhaki":"深褐色","green":"绿色","deepskyblue":"深天蓝色","aqua":"水绿色","sienna":"赭色","mintcream":"薄荷乳白","rosybrown":"玫瑰褐色","mediumslateblue":"淡灰蓝色","magenta":"洋红色","lightseagreen":"浅海绿色","cyan":"青色","olivedrab":"暗橄榄色","darkgoldenrod":"深金黄色","slateblue":"石板蓝","mediumaquamarine":"淡碧绿色","lavender":"淡紫色","mediumseagreen":"淡海绿色","maroon":"褐紫红色","darkslategray":"深石板灰","mediumturquoise":"淡青绿色","ghostwhite":"苍白","darkblue":"深蓝色","mediumvioletred":"淡紫罗兰","brown":"褐色","lightgray":"浅灰色","sandybrown":"浅褐色","pink":"粉红色","firebrick":"砖红色","indigo":"靛蓝色","snow":"雪白","darkorchid":"暗兰花紫","turquoise":"青绿色","chocolate":"巧克力色","springgreen":"浅草绿色","moccasin":"鹿皮黄","navy":"藏青色","lemonchiffon":"柠檬色","teal":"青色","floralwhite":"花白","cornflowerblue":"藏蓝色","paleturquoise":"淡青绿色","purple":"紫色","gainsboro":"亮灰色","plum":"梅红色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜色","darkseagreen":"深海绿色","lightcoral":"浅珊瑚红","palevioletred":"浅紫罗兰","mediumpurple":"淡紫色","saddlebrown":"鞍具褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"淡黄色","violet":"紫罗兰色","lightskyblue":"浅天蓝色","goldenrod":"鲜黄","mediumblue":"淡蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深石板灰","peru":"秘鲁棕","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"杏仁白","aliceblue":"艾莉斯蓝","bisque":"乳黄色","slategray":"石板灰","palegoldenrod":"浅金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"原木色","dodgerblue":"宝蓝","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"粉蓝色","blueviolet":"蓝紫色","orchid":"兰花紫","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红色","hotpink":"暗粉","steelblue":"钢蓝色","tomato":"番茄色","lightpink":"浅粉色","limegreen":"暗黄绿色","indianred":"印度红","papayawhip":"粉木瓜橙","lightslategray":"浅石板灰","gray":"灰色","mediumorchid":"淡兰花紫","cornsilk":"玉米黄","black":"黑色","seagreen":"海绿色","darkslateblue":"深石板蓝","khaki":"黄褐色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"浅天蓝","peachpuff":"粉桃红","darkolivegreen":"深橄榄绿色","yellowgreen":"黄绿色"})
\ No newline at end of file diff --git a/lib/dojo/number.js b/lib/dojo/number.js index 33aa6dd52..30fcb6142 100644 --- a/lib/dojo/number.js +++ b/lib/dojo/number.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,12 +8,12 @@ if(!dojo._hasResource["dojo.number"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.number"] = true; dojo.provide("dojo.number"); - dojo.require("dojo.i18n"); -dojo.requireLocalization("dojo.cldr", "number", null, "ROOT,ar,ca,cs,da,de,el,en,en-au,en-gb,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh"); +dojo.requireLocalization("dojo.cldr", "number", null, "ROOT,ar,ca,cs,da,de,el,en,en-au,en-gb,es,fi,fr,fr-ch,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-hant,zh-hk"); dojo.require("dojo.string"); dojo.require("dojo.regexp"); +dojo.getObject("number", true, dojo); /*===== dojo.number = { @@ -118,7 +118,7 @@ dojo.number._applyPattern = function(/*Number*/value, /*String*/pattern, /*dojo. if(options.fractional === false){ options.places = 0; } return pattern.replace(numberPatternRE, dojo.number._formatAbsolute(value, numberPattern[0], {decimal: decimal, group: group, places: options.places, round: options.round})); -} +}; dojo.number.round = function(/*Number*/value, /*Number?*/places, /*Number?*/increment){ // summary: @@ -144,7 +144,7 @@ dojo.number.round = function(/*Number*/value, /*Number?*/places, /*Number?*/incr // 10.75 var factor = 10 / (increment || 10); return (factor * +value).toFixed(places) / factor; // Number -} +}; if((0.9).toFixed() == 0){ // (isIE) toFixed() bug workaround: Rounding fails on IE when most significant digit @@ -157,7 +157,7 @@ if((0.9).toFixed() == 0){ d = 0; } return round(v, p, m) + (v > 0 ? d : -d); - } + }; })(); } @@ -180,7 +180,7 @@ dojo.number.__FormatAbsoluteOptions = function(){ =====*/ dojo.number._formatAbsolute = function(/*Number*/value, /*String*/pattern, /*dojo.number.__FormatAbsoluteOptions?*/options){ - // summary: + // summary: // Apply numeric pattern to absolute value using options. Gives no // consideration to local customs. // value: @@ -295,7 +295,7 @@ dojo.number.regexp = function(/*dojo.number.__RegexpOptions?*/options){ // Returns regular expression with positive and negative match, group // and decimal separators return dojo.number._parseInfo(options).regexp; // String -} +}; dojo.number._parseInfo = function(/*Object?*/options){ options = options || {}; @@ -383,7 +383,7 @@ dojo.number._parseInfo = function(/*Object?*/options){ // normalize whitespace and return return {regexp: re.replace(/[\xa0 ]/g, "[\\s\\xa0]"), group: group, decimal: decimal, factor: factor}; // Object -} +}; /*===== dojo.number.__ParseOptions = function(){ @@ -494,10 +494,10 @@ dojo.number._realNumberRegexp = function(/*dojo.number.__RealNumberRegexpFlags?* var re = ""; if(q && (flags.places!==0)){ re = "\\" + flags.decimal; - if(flags.places == Infinity){ - re = "(?:" + re + "\\d+)?"; + if(flags.places == Infinity){ + re = "(?:" + re + "\\d+)?"; }else{ - re += "\\d{" + flags.places + "}"; + re += "\\d{" + flags.places + "}"; } } return re; @@ -506,9 +506,9 @@ dojo.number._realNumberRegexp = function(/*dojo.number.__RealNumberRegexpFlags?* ); var exponentRE = dojo.regexp.buildGroupRE(flags.exponent, - function(q){ + function(q){ if(q){ return "([eE]" + dojo.number._integerRegexp({ signed: flags.eSigned}) + ")"; } - return ""; + return ""; } ); @@ -540,7 +540,7 @@ dojo.number.__IntegerRegexpFlags = function(){ =====*/ dojo.number._integerRegexp = function(/*dojo.number.__IntegerRegexpFlags?*/flags){ - // summary: + // summary: // Builds a regular expression that matches an integer // assign default values to missing parameters @@ -579,6 +579,6 @@ dojo.number._integerRegexp = function(/*dojo.number.__IntegerRegexpFlags?*/flags ); return signRE + numberRE; // String -} +}; } diff --git a/lib/dojo/package.json b/lib/dojo/package.json new file mode 100644 index 000000000..5855be51f --- /dev/null +++ b/lib/dojo/package.json @@ -0,0 +1,21 @@ +{ + "name": "dojo", + "directories": { + "lib": "." + }, + "main":"./lib/main-browser", + "description": "Dojo core is a powerful, lightweight library that makes common tasks quicker and easier. Animate elements, manipulate the DOM, and query with easy CSS syntax, all without sacrificing performance.", + "licenses": [ + { + "type": "AFLv2.1", + "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43" + }, + { + "type": "BSD", + "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L13" + } + ], + "bugs": "http://bugs.dojotoolkit.org/", + "keywords": ["JavaScript", "Dojo", "Toolkit"], + "homepage": "http://dojotoolkit.org/" +}
\ No newline at end of file diff --git a/lib/dojo/parser.js b/lib/dojo/parser.js index 7ae035691..bd52030e0 100644 --- a/lib/dojo/parser.js +++ b/lib/dojo/parser.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,14 +10,14 @@ dojo._hasResource["dojo.parser"] = true; dojo.provide("dojo.parser"); dojo.require("dojo.date.stamp"); + new Date("X"); // workaround for #11279, new Date("") == NaN dojo.parser = new function(){ - // summary: The Dom/Widget parsing package + // summary: + // The Dom/Widget parsing package var d = dojo; - this._attrName = d._scopeName + "Type"; - this._query = "[" + this._attrName + "]"; function val2type(/*Object*/ value){ // summary: @@ -42,13 +42,13 @@ dojo.parser = new function(){ case "number": return value.length ? Number(value) : NaN; case "boolean": - // for checked/disabled value might be "" or "checked". interpret as true. + // for checked/disabled value might be "" or "checked". interpret as true. return typeof value == "boolean" ? value : !(value.toLowerCase()=="false"); case "function": if(d.isFunction(value)){ // IE gives us a function, even when we say something like onClick="foo" - // (in which case it gives us an invalid function "function(){ foo }"). - // Therefore, convert to string + // (in which case it gives us an invalid function "function(){ foo }"). + // Therefore, convert to string value=value.toString(); value=d.trim(value.substring(value.indexOf('{')+1, value.length-1)); } @@ -77,7 +77,7 @@ dojo.parser = new function(){ } } - var instanceClasses = { + var dummyClass = {}, instanceClasses = { // map from fully qualified name (like "dijit.Button") to structure like // { cls: dijit.Button, params: {label: "string", disabled: "boolean"} } }; @@ -85,45 +85,70 @@ dojo.parser = new function(){ // Widgets like BorderContainer add properties to _Widget via dojo.extend(). // If BorderContainer is loaded after _Widget's parameter list has been cached, // we need to refresh that parameter list (for _Widget and all widgets that extend _Widget). - dojo.connect(dojo, "extend", function(){ + // TODO: remove this in 2.0, when we stop caching parameters. + d.connect(d, "extend", function(){ instanceClasses = {}; }); - function getClassInfo(/*String*/ className){ + function getProtoInfo(cls, params){ + // cls: A prototype + // The prototype of the class to check props on + // params: Object + // The parameters object to mix found parameters onto. + for(var name in cls){ + if(name.charAt(0)=="_"){ continue; } // skip internal properties + if(name in dummyClass){ continue; } // skip "constructor" and "toString" + params[name] = val2type(cls[name]); + } + return params; + } + + function getClassInfo(/*String*/ className, /*Boolean*/ skipParamsLookup){ + // summary: + // Maps a widget name string like "dijit.form.Button" to the widget constructor itself, + // and a list of that widget's parameters and their types // className: // fully qualified name (like "dijit.form.Button") // returns: // structure like - // { - // cls: dijit.Button, + // { + // cls: dijit.Button, // params: { label: "string", disabled: "boolean"} // } - if(!instanceClasses[className]){ + var c = instanceClasses[className]; + if(!c){ // get pointer to widget class - var cls = d.getObject(className); + var cls = d.getObject(className), params = null; if(!cls){ return null; } // class not defined [yet] - - var proto = cls.prototype; - - // get table of parameter names & types - var params = {}, dummyClass = {}; - for(var name in proto){ - if(name.charAt(0)=="_"){ continue; } // skip internal properties - if(name in dummyClass){ continue; } // skip "constructor" and "toString" - var defVal = proto[name]; - params[name]=val2type(defVal); + if(!skipParamsLookup){ // from fastpath, we don't need to lookup the attrs on the proto because they are explicit + params = getProtoInfo(cls.prototype, {}) } - - instanceClasses[className] = { cls: cls, params: params }; + c = { cls: cls, params: params }; + + }else if(!skipParamsLookup && !c.params){ + // if we're calling getClassInfo and have a cls proto, but no params info, scan that cls for params now + // and update the pointer in instanceClasses[className]. This happens when a widget appears in another + // widget's template which still uses dojoType, but an instance of the widget appears prior with a data-dojo-type, + // skipping this lookup the first time. + c.params = getProtoInfo(c.cls.prototype, {}); } - return instanceClasses[className]; + + return c; } - this._functionFromScript = function(script){ + this._functionFromScript = function(script, attrData){ + // summary: + // Convert a <script type="dojo/method" args="a, b, c"> ... </script> + // into a function + // script: DOMNode + // The <script> DOMNode + // attrData: String + // For HTML5 compliance, searches for attrData + "args" (typically + // "data-dojo-args") instead of "args" var preamble = ""; var suffix = ""; - var argsStr = script.getAttribute("args"); + var argsStr = (script.getAttribute(attrData + "args") || script.getAttribute("args")); if(argsStr){ d.forEach(argsStr.split(/\s*,\s*/), function(part, idx){ preamble += "var "+part+" = arguments["+idx+"]; "; @@ -137,7 +162,7 @@ dojo.parser = new function(){ }); } return new Function(preamble+script.innerHTML+suffix); - } + }; this.instantiate = function(/* Array */nodes, /* Object? */mixin, /* Object? */args){ // summary: @@ -158,69 +183,106 @@ dojo.parser = new function(){ // exist. // args: Object? // An object used to hold kwArgs for instantiation. - // Supports 'noStart' and inherited. - var thelist = [], dp = dojo.parser; + // See parse.args argument for details. + + var thelist = [], mixin = mixin||{}; args = args||{}; - + + // TODO: for 2.0 default to data-dojo- regardless of scopeName (or maybe scopeName won't exist in 2.0) + var attrName = (args.scope || d._scopeName) + "Type", // typically "dojoType" + attrData = "data-" + (args.scope || d._scopeName) + "-"; // typically "data-dojo-" + d.forEach(nodes, function(obj){ if(!obj){ return; } - // Get pointers to DOMNode, dojoType string, and clsInfo (metadata about the dojoType), etc.s - var node, type, clsInfo, clazz, scripts; + // Get pointers to DOMNode, dojoType string, and clsInfo (metadata about the dojoType), etc. + var node, type, clsInfo, clazz, scripts, fastpath; if(obj.node){ // new format of nodes[] array, object w/lots of properties pre-computed for me node = obj.node; type = obj.type; - clsInfo = obj.clsInfo || (type && getClassInfo(type)); + fastpath = obj.fastpath; + clsInfo = obj.clsInfo || (type && getClassInfo(type, fastpath)); clazz = clsInfo && clsInfo.cls; scripts = obj.scripts; }else{ - // old (backwards compatible) format of nodes[] array, simple array of DOMNodes + // old (backwards compatible) format of nodes[] array, simple array of DOMNodes. no fastpath/data-dojo-type support here. node = obj; - type = dp._attrName in mixin ? mixin[dp._attrName] : node.getAttribute(dp._attrName); + type = attrName in mixin ? mixin[attrName] : node.getAttribute(attrName); clsInfo = type && getClassInfo(type); clazz = clsInfo && clsInfo.cls; - scripts = (clazz && (clazz._noScript || clazz.prototype._noScript) ? [] : + scripts = (clazz && (clazz._noScript || clazz.prototype._noScript) ? [] : d.query("> script[type^='dojo/']", node)); } if(!clsInfo){ throw new Error("Could not load class '" + type); } - // Setup hash to hold parameter settings for this widget. Start with the parameter + // Setup hash to hold parameter settings for this widget. Start with the parameter // settings inherited from ancestors ("dir" and "lang"). // Inherited setting may later be overridden by explicit settings on node itself. - var params = {}, - attributes = node.attributes; + var params = {}; + if(args.defaults){ // settings for the document itself (or whatever subtree is being parsed) - dojo.mixin(params, args.defaults); + d._mixin(params, args.defaults); } if(obj.inherited){ // settings from dir=rtl or lang=... on a node above this node - dojo.mixin(params, obj.inherited); + d._mixin(params, obj.inherited); } + + // mix things found in data-dojo-props into the params + if(fastpath){ + var extra = node.getAttribute(attrData + "props"); + if(extra && extra.length){ + try{ + extra = d.fromJson.call(args.propsThis, "{" + extra + "}"); + d._mixin(params, extra); + }catch(e){ + // give the user a pointer to their invalid parameters. FIXME: can we kill this in production? + throw new Error(e.toString() + " in data-dojo-props='" + extra + "'"); + } + } - // read parameters (ie, attributes) specified on DOMNode - // clsInfo.params lists expected params like {"checked": "boolean", "n": "number"} - for(var name in clsInfo.params){ - var item = name in mixin?{value:mixin[name],specified:true}:attributes.getNamedItem(name); - if(!item || (!item.specified && (!dojo.isIE || name.toLowerCase()!="value"))){ continue; } - var value = item.value; - // Deal with IE quirks for 'class' and 'style' - switch(name){ - case "class": - value = "className" in mixin?mixin.className:node.className; - break; - case "style": - value = "style" in mixin?mixin.style:(node.style && node.style.cssText); // FIXME: Opera? + // For the benefit of _Templated, check if node has data-dojo-attach-point/data-dojo-attach-event + // and mix those in as though they were parameters + var attachPoint = node.getAttribute(attrData + "attach-point"); + if(attachPoint){ + params.dojoAttachPoint = attachPoint; } - var _type = clsInfo.params[name]; - if(typeof value == "string"){ - params[name] = str2obj(value, _type); - }else{ - params[name] = value; + var attachEvent = node.getAttribute(attrData + "attach-event"); + if(attachEvent){ + params.dojoAttachEvent = attachEvent; + } + dojo.mixin(params, mixin); + }else{ + // FIXME: we need something like "deprecateOnce()" to throw dojo.deprecation for something. + // remove this logic in 2.0 + // read parameters (ie, attributes) specified on DOMNode + + var attributes = node.attributes; + + // clsInfo.params lists expected params like {"checked": "boolean", "n": "number"} + for(var name in clsInfo.params){ + var item = name in mixin ? { value:mixin[name], specified:true } : attributes.getNamedItem(name); + if(!item || (!item.specified && (!dojo.isIE || name.toLowerCase()!="value"))){ continue; } + var value = item.value; + // Deal with IE quirks for 'class' and 'style' + switch(name){ + case "class": + value = "className" in mixin ? mixin.className : node.className; + break; + case "style": + value = "style" in mixin ? mixin.style : (node.style && node.style.cssText); // FIXME: Opera? + } + var _type = clsInfo.params[name]; + if(typeof value == "string"){ + params[name] = str2obj(value, _type); + }else{ + params[name] = value; + } } } @@ -235,9 +297,10 @@ dojo.parser = new function(){ d.forEach(scripts, function(script){ node.removeChild(script); - var event = script.getAttribute("event"), + // FIXME: drop event="" support in 2.0. use data-dojo-event="" instead + var event = (script.getAttribute(attrData + "event") || script.getAttribute("event")), type = script.getAttribute("type"), - nf = d.parser._functionFromScript(script); + nf = d.parser._functionFromScript(script, attrData); if(event){ if(type == "dojo/connect"){ connects.push({event: event, func: nf}); @@ -255,7 +318,8 @@ dojo.parser = new function(){ thelist.push(instance); // map it to the JS namespace if that makes sense - var jsname = node.getAttribute("jsId"); + // FIXME: in 2.0, drop jsId support. use data-dojo-id instead + var jsname = (node.getAttribute(attrData + "id") || node.getAttribute("jsId")); if(jsname){ d.setObject(jsname, instance); } @@ -279,9 +343,9 @@ dojo.parser = new function(){ // ContentPane is the parent widget (so that the parse doesn't call startup() on the // ContentPane's children) d.forEach(thelist, function(instance){ - if( !args.noStart && instance && - instance.startup && - !instance._started && + if( !args.noStart && instance && + dojo.isFunction(instance.startup) && + !instance._started && (!instance.getParent || !instance.getParent()) ){ instance.startup(); @@ -291,34 +355,57 @@ dojo.parser = new function(){ return thelist; }; - this.parse = function(/*DomNode?*/ rootNode, /* Object? */ args){ + this.parse = function(rootNode, args){ // summary: // Scan the DOM for class instances, and instantiate them. // // description: // Search specified node (or root node) recursively for class instances, - // and instantiate them Searches for - // dojoType="qualified.class.name" + // and instantiate them. Searches for either data-dojo-type="Class" or + // dojoType="Class" where "Class" is a a fully qualified class name, + // like `dijit.form.Button` + // + // Using `data-dojo-type`: + // Attributes using can be mixed into the parameters used to instantitate the + // Class by using a `data-dojo-props` attribute on the node being converted. + // `data-dojo-props` should be a string attribute to be converted from JSON. + // + // Using `dojoType`: + // Attributes are read from the original domNode and converted to appropriate + // types by looking up the Class prototype values. This is the default behavior + // from Dojo 1.0 to Dojo 1.5. `dojoType` support is deprecated, and will + // go away in Dojo 2.0. // // rootNode: DomNode? // A default starting root node from which to start the parsing. Can be // omitted, defaulting to the entire document. If omitted, the `args` - // object can be passed in this place. If the `args` object has a + // object can be passed in this place. If the `args` object has a // `rootNode` member, that is used. // - // args: + // args: Object // a kwArgs object passed along to instantiate() - // + // // * noStart: Boolean? // when set will prevent the parser from calling .startup() - // when locating the nodes. + // when locating the nodes. // * rootNode: DomNode? // identical to the function's `rootNode` argument, though - // allowed to be passed in via this `args object. + // allowed to be passed in via this `args object. + // * template: Boolean + // If true, ignores ContentPane's stopParser flag and parses contents inside of + // a ContentPane inside of a template. This allows dojoAttachPoint on widgets/nodes + // nested inside the ContentPane to work. // * inherited: Object // Hash possibly containing dir and lang settings to be applied to // parsed widgets, unless there's another setting on a sub-node that overrides - // + // * scope: String + // Root for attribute names to search for. If scopeName is dojo, + // will search for data-dojo-type (or dojoType). For backwards compatibility + // reasons defaults to dojo._scopeName (which is "dojo" except when + // multi-version support is used, when it will be something like dojo16, dojo20, etc.) + // * propsThis: Object + // If specified, "this" referenced from data-dojo-props will refer to propsThis. + // Intended for use from the widgets-in-template feature of `dijit._Templated` // // example: // Parse all widgets on a page: @@ -326,10 +413,10 @@ dojo.parser = new function(){ // // example: // Parse all classes within the node with id="foo" - // | dojo.parser.parse(dojo.byId(foo)); + // | dojo.parser.parse(dojo.byId('foo')); // // example: - // Parse all classes in a page, but do not call .startup() on any + // Parse all classes in a page, but do not call .startup() on any // child // | dojo.parser.parse({ noStart: true }) // @@ -337,7 +424,7 @@ dojo.parser = new function(){ // Parse all classes in a node, but do not call .startup() // | dojo.parser.parse(someNode, { noStart:true }); // | // or - // | dojo.parser.parse({ noStart:true, rootNode: someNode }); + // | dojo.parser.parse({ noStart:true, rootNode: someNode }); // determine the root node based on the passed arguments. var root; @@ -347,8 +434,12 @@ dojo.parser = new function(){ }else{ root = rootNode; } + root = root ? dojo.byId(root) : dojo.body(); + args = args || {}; + + var attrName = (args.scope || d._scopeName) + "Type", // typically "dojoType" + attrData = "data-" + (args.scope || d._scopeName) + "-"; // typically "data-dojo-" - var attrName = this._attrName; function scan(parent, list){ // summary: // Parent is an Object representing a DOMNode, with or without a dojoType specified. @@ -357,7 +448,7 @@ dojo.parser = new function(){ // parent: Object // Object representing the parent node, like // | { - // | node: DomNode, // scan children of this node + // | node: DomNode, // scan children of this node // | inherited: {dir: "rtl"}, // dir/lang setting inherited from above node // | // | // attributes only set if node has dojoType specified @@ -370,6 +461,7 @@ dojo.parser = new function(){ // Effective dir and lang settings on parent node, either set directly or inherited from grandparent var inherited = dojo.clone(parent.inherited); dojo.forEach(["dir", "lang"], function(name){ + // TODO: what if this is a widget and dir/lang are declared in data-dojo-props? var val = parent.node.getAttribute(name); if(val){ inherited[name] = val; @@ -377,20 +469,31 @@ dojo.parser = new function(){ }); // if parent is a widget, then search for <script type=dojo/*> tags and put them in scripts[]. - var scripts = parent.scripts; + var scripts = parent.clsInfo && !parent.clsInfo.cls.prototype._noScript ? parent.scripts : null; // unless parent is a widget with the stopParser flag set, continue search for dojoType, recursively - var recurse = !parent.clsInfo || !parent.clsInfo.cls.prototype.stopParser; + var recurse = (!parent.clsInfo || !parent.clsInfo.cls.prototype.stopParser) || (args && args.template); // scan parent's children looking for dojoType and <script type=dojo/*> for(var child = parent.node.firstChild; child; child = child.nextSibling){ if(child.nodeType == 1){ - var type = recurse && child.getAttribute(attrName); + // FIXME: desupport dojoType in 2.0. use data-dojo-type instead + var type, html5 = recurse && child.getAttribute(attrData + "type"); + if(html5){ + type = html5; + }else{ + // fallback to backward compatible mode, using dojoType. remove in 2.0 + type = recurse && child.getAttribute(attrName); + } + + var fastpath = html5 == type; + if(type){ - // if dojoType specified, add to output array of nodes to instantiate + // if dojoType/data-dojo-type specified, add to output array of nodes to instantiate var params = { "type": type, - clsInfo: getClassInfo(type), // note: won't find classes declared via dojo.Declaration + fastpath: fastpath, + clsInfo: getClassInfo(type, fastpath), // note: won't find classes declared via dojo.Declaration node: child, scripts: [], // <script> nodes that are parent's children inherited: inherited // dir & lang attributes inherited from parent @@ -403,7 +506,7 @@ dojo.parser = new function(){ }else if(scripts && child.nodeName.toLowerCase() == "script"){ // if <script type="dojo/...">, save in scripts[] type = child.getAttribute("type"); - if (type && /^dojo\//i.test(type)) { + if (type && /^dojo\/\w/i.test(type)) { scripts.push(child); } }else if(recurse){ @@ -417,17 +520,24 @@ dojo.parser = new function(){ } } + // Ignore bogus entries in inherited hash like {dir: ""} + var inherited = {}; + if(args && args.inherited){ + for(var key in args.inherited){ + if(args.inherited[key]){ inherited[key] = args.inherited[key]; } + } + } + // Make list of all nodes on page w/dojoType specified var list = []; scan({ - node: root ? dojo.byId(root) : dojo.body(), - inherited: (args && args.inherited) || { - dir: dojo._isBodyLtr() ? "ltr" : "rtl" - } + node: root, + inherited: inherited }, list); // go build the object instances - return this.instantiate(list, null, args); // Array + var mixin = args && args.template ? {template: true} : null; + return this.instantiate(list, mixin, args); // Array }; }(); @@ -435,14 +545,14 @@ dojo.parser = new function(){ //after the a11y test. (function(){ - var parseRunner = function(){ + var parseRunner = function(){ if(dojo.config.parseOnLoad){ - dojo.parser.parse(); + dojo.parser.parse(); } }; // FIXME: need to clobber cross-dependency!! - if(dojo.exists("dijit.wai.onload") && (dijit.wai.onload === dojo._loaders[0])){ + if(dojo.getObject("dijit.wai.onload") === dojo._loaders[0]){ dojo._loaders.splice(1, 0, parseRunner); }else{ dojo._loaders.unshift(parseRunner); diff --git a/lib/dojo/regexp.js b/lib/dojo/regexp.js index 1da68f452..947ecf1d5 100644 --- a/lib/dojo/regexp.js +++ b/lib/dojo/regexp.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.regexp"]){ //_hasResource checks added by build. Do dojo._hasResource["dojo.regexp"] = true; dojo.provide("dojo.regexp"); +dojo.getObject("regexp", true, dojo); + /*===== dojo.regexp = { // summary: Regular expressions and Builder resources @@ -27,7 +29,7 @@ dojo.regexp.escapeString = function(/*String*/str, /*String?*/except){ } return "\\" + ch; }); // String -} +}; dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boolean?*/nonCapture){ // summary: @@ -42,7 +44,7 @@ dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boole // A single value or an array of values. // re: // A function. Takes one parameter and converts it to a regular - // expression. + // expression. // nonCapture: // If true, uses non-capturing match, otherwise matches are retained // by regular expression. Defaults to false @@ -61,15 +63,15 @@ dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boole // join the REs as alternatives in a RE group. return dojo.regexp.group(b.join("|"), nonCapture); // String -} +}; dojo.regexp.group = function(/*String*/expression, /*Boolean?*/nonCapture){ // summary: // adds group match to expression // nonCapture: // If true, uses non-capturing match, otherwise matches are retained - // by regular expression. + // by regular expression. return "(" + (nonCapture ? "?:":"") + expression + ")"; // String -} +}; } diff --git a/lib/dojo/resources/_modules.js b/lib/dojo/resources/_modules.js index ecfd266c4..2afef9a6c 100644 --- a/lib/dojo/resources/_modules.js +++ b/lib/dojo/resources/_modules.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -36,7 +36,7 @@ dojo.rpc = { dojo.baseUrl = { // summary: The root relative path to dojo.js (as a string) - // example: + // example: // if(typeof dojo != "undefined"){ console.log(dojo.baseUrl); } }; diff --git a/lib/dojo/robot.js b/lib/dojo/robot.js index 6cbe0bebc..40bc746ee 100644 --- a/lib/dojo/robot.js +++ b/lib/dojo/robot.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -8,10 +8,12 @@ if(!dojo._hasResource["dojo.robot"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.robot"] = true; dojo.provide("dojo.robot"); -dojo.experimental("dojo.robot"); dojo.require("doh.robot"); dojo.require("dojo.window"); + +dojo.experimental("dojo.robot"); + (function(){ // users who use doh+dojo get the added convenience of dojo.mouseMoveAt, // instead of computing the absolute coordinates of their elements themselves diff --git a/lib/dojo/robotx.js b/lib/dojo/robotx.js index 7f49b64a0..3a07c6903 100644 --- a/lib/dojo/robotx.js +++ b/lib/dojo/robotx.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.robotx"]){ //_hasResource checks added by build. Do dojo._hasResource["dojo.robotx"] = true; dojo.provide("dojo.robotx"); dojo.require("dojo.robot"); + + dojo.experimental("dojo.robotx"); // loads an external app into an iframe and points dojo.doc to the iframe document, allowing the robot to control it @@ -16,18 +18,48 @@ dojo.experimental("dojo.robotx"); // dojo.require this file (function(){ -// have to wait for test page to load before testing! -doh.robot._runsemaphore.lock.push("dojo.robotx.lock"); -var iframe = document.getElementById('robotapplication'); +var iframe = null; var groupStarted=dojo.connect(doh, '_groupStarted', function(){ dojo.disconnect(groupStarted); iframe.style.visibility="visible"; }); +var attachIframe = function(){ + dojo.addOnLoad(function(){ + var emptyStyle = { + overflow: dojo.isWebKit? 'hidden' : 'visible', + margin: '0px', + borderWidth: '0px', + height: '100%', + width: '100%' + }; + dojo.style(document.documentElement, emptyStyle); + dojo.style(document.body, emptyStyle); + document.body.appendChild(iframe); + var base=document.createElement('base'); + base.href=iframe.src; + document.getElementsByTagName("head")[0].appendChild(base); + }); +}; + +// Prevent race conditions between iframe loading and robot init. +// If iframe is allowed to load while the robot is typing, sync XHRs can prevent the robot from completing its initialization. +var robotReady=false; +var robotFrame=null; +var _run=doh.robot._run; +doh.robot._run=function(frame){ + // Called from robot when the robot completed its initialization. + robotReady = true; + robotFrame = frame; + doh.robot._run=_run; + // If initRobot was already called, then attach the iframe. + if(iframe.src){ attachIframe(); } +} + var onIframeLoad=function(){ - //iframe = document.getElementById('robotapplication'); + // initial load handler: update the document and start the tests doh.robot._updateDocument(); onIframeLoad = null; var scrollRoot = (document.compatMode == 'BackCompat')? document.body : document.documentElement; @@ -35,7 +67,15 @@ var onIframeLoad=function(){ if(consoleHeight){ iframe.style.height = (scrollRoot.clientHeight - consoleHeight)+"px"; } - doh.run(); + // If dojo is present in the test case, then at least make a best effort to wait for it to load. + // The test must handle other race conditions like initial data queries by itself. + if(iframe.contentWindow.dojo){ + iframe.contentWindow.dojo.addOnLoad(function(){ + doh.robot._run(robotFrame); + }); + }else{ + doh.robot._run(robotFrame); + } }; var iframeLoad=function(){ @@ -66,6 +106,9 @@ if(iframe['attachEvent'] !== undefined){ dojo.connect(iframe, 'onload', iframeLoad); } + + + dojo.mixin(doh.robot,{ _updateDocument: function(){ dojo.setContext(iframe.contentWindow, iframe.contentWindow.document); @@ -84,22 +127,13 @@ dojo.mixin(doh.robot,{ // url: // URL to open. Any of the test's dojo.doc calls (e.g. dojo.byId()), and any dijit.registry calls (e.g. dijit.byId()) will point to elements and widgets inside this application. // + iframe.src=url; - dojo.addOnLoad(function(){ - var emptyStyle = { - overflow: dojo.isWebKit? 'hidden' : 'visible', - margin: '0px', - borderWidth: '0px', - height: '100%', - width: '100%' - }; - dojo.style(document.documentElement, emptyStyle); - dojo.style(document.body, emptyStyle); - document.body.appendChild(iframe); - var base=document.createElement('base'); - base.href=url; - document.getElementsByTagName("head")[0].appendChild(base); - }); + // see above note about race conditions + if(robotReady){ + attachIframe(); + + } }, waitForPageToLoad: function(/*Function*/ submitActions){ @@ -134,7 +168,6 @@ dojo.mixin(doh.robot,{ } }); - })(); } diff --git a/lib/dojo/rpc/JsonService.js b/lib/dojo/rpc/JsonService.js index 757e328be..064fd0fee 100644 --- a/lib/dojo/rpc/JsonService.js +++ b/lib/dojo/rpc/JsonService.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -10,6 +10,7 @@ dojo._hasResource["dojo.rpc.JsonService"] = true; dojo.provide("dojo.rpc.JsonService"); dojo.require("dojo.rpc.RpcService"); + dojo.declare("dojo.rpc.JsonService", dojo.rpc.RpcService, { bustCache: false, contentType: "application/json-rpc", @@ -45,7 +46,7 @@ dojo.declare("dojo.rpc.JsonService", dojo.rpc.RpcService, { url: url||this.serviceUrl, postData: this.createRequest(method, parameters), contentType: this.contentType, - timeout: this.timeout, + timeout: this.timeout, handleAs: "json-comment-optional" }); def.addCallbacks(this.resultCallback(deferredRequestHandler), this.errorCallback(deferredRequestHandler)); diff --git a/lib/dojo/rpc/JsonpService.js b/lib/dojo/rpc/JsonpService.js index 31e95077b..ecdadc7fc 100644 --- a/lib/dojo/rpc/JsonpService.js +++ b/lib/dojo/rpc/JsonpService.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -11,9 +11,10 @@ dojo.provide("dojo.rpc.JsonpService"); dojo.require("dojo.rpc.RpcService"); dojo.require("dojo.io.script"); + dojo.declare("dojo.rpc.JsonpService", dojo.rpc.RpcService, { // summary: - // Generic JSONP service. Minimally extends RpcService to allow + // Generic JSONP service. Minimally extends RpcService to allow // easy definition of nearly any JSONP style service. Example // SMD files exist in dojox.data @@ -25,10 +26,10 @@ dojo.declare("dojo.rpc.JsonpService", dojo.rpc.RpcService, { dojo.forEach(this.required, function(req){ if(req=="" || req==undefined){ - throw new Error("Required Service Argument not found: "+req); + throw new Error("Required Service Argument not found: "+req); } }); - } + } }, strictArgChecks: false, @@ -50,7 +51,7 @@ dojo.declare("dojo.rpc.JsonpService", dojo.rpc.RpcService, { callbackParamName: this.callbackParamName||"callback", content: this.createRequest(parameters), timeout: this.timeout, - handleAs: "json", + handleAs: "json", preventCache: true }); def.addCallbacks(this.resultCallback(deferredRequestHandler), this.errorCallback(deferredRequestHandler)); diff --git a/lib/dojo/rpc/RpcService.js b/lib/dojo/rpc/RpcService.js index 7ff71415e..5ef5dae7f 100644 --- a/lib/dojo/rpc/RpcService.js +++ b/lib/dojo/rpc/RpcService.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo.rpc.RpcService"]){ //_hasResource checks added by bu dojo._hasResource["dojo.rpc.RpcService"] = true; dojo.provide("dojo.rpc.RpcService"); + dojo.declare("dojo.rpc.RpcService", null, { constructor: function(args){ //summary: @@ -25,7 +26,7 @@ dojo.declare("dojo.rpc.RpcService", null, { // matches those defined in the smd. smdString allows a developer to pass // a jsonString directly, which will be converted into an object or alternatively // smdObject is accepts an smdObject directly. - // + // if(args){ //if the arg is a string, we assume it is a url to retrieve an smd definition from if( (dojo.isString(args)) || (args instanceof dojo._Url)){ @@ -99,7 +100,7 @@ dojo.declare("dojo.rpc.RpcService", null, { // deferredRequestHandler: Deferred // The deferred object handling a request. - var tf = dojo.hitch(this, + var tf = dojo.hitch(this, function(obj){ if(obj.error!=null){ var err; @@ -114,7 +115,7 @@ dojo.declare("dojo.rpc.RpcService", null, { err.errorObject = obj; deferredRequestHandler.errback(err); }else{ - deferredRequestHandler.callback(this.parseResults(obj)); + deferredRequestHandler.callback(this.parseResults(obj)); } } ); @@ -160,7 +161,7 @@ dojo.declare("dojo.rpc.RpcService", null, { dojo.forEach(object.methods, function(m){ if(m && m.name){ this[m.name] = this.generateMethod( m.name, - m.parameters, + m.parameters, m.url||m.serviceUrl||m.serviceURL); if(!dojo.isFunction(this[m.name])){ throw new Error("RpcService: Failed to create" + m.name + "()"); diff --git a/lib/dojo/store/Cache.js b/lib/dojo/store/Cache.js new file mode 100644 index 000000000..d08d17099 --- /dev/null +++ b/lib/dojo/store/Cache.js @@ -0,0 +1,152 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.store.Cache"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.store.Cache"] = true; +dojo.provide("dojo.store.Cache"); + +dojo.getObject("store", true, dojo); + +/*===== +dojo.declare("dojo.store.__CacheArgs", null, { + constructor: function(){ + // summary: + // These are additional options for how caching is handled. + // isLoaded: Function? + // This is a function that will be called for each item in a query response to determine + // if it is cacheable. If isLoaded returns true, the item will be cached, otherwise it + // will not be cached. If isLoaded is not provided, all items will be cached. + this.isLoaded = isLoaded; + } +}); +=====*/ +dojo.store.Cache = function(masterStore, cachingStore, /*dojo.store.__CacheArgs*/ options){ + // summary: + // The Cache store wrapper takes a master store and a caching store, + // caches data from the master into the caching store for faster + // lookup. Normally one would use a memory store for the caching + // store and a server store like JsonRest for the master store. + // masterStore: + // This is the authoritative store, all uncached requests or non-safe requests will + // be made against this store. + // cachingStore: + // This is the caching store that will be used to store responses for quick access. + // Typically this should be a local store. + // options: + // These are additional options for how caching is handled. + options = options || {}; + return dojo.delegate(masterStore, { + query: function(query, directives){ + var results = masterStore.query(query, directives); + results.forEach(function(object){ + if(!options.isLoaded || options.isLoaded(object)){ + cachingStore.put(object); + } + }); + return results; + }, + // look for a queryEngine in either store + queryEngine: masterStore.queryEngine || cachingStore.queryEngine, + get: function(id, directives){ + return dojo.when(cachingStore.get(id), function(result){ + return result || dojo.when(masterStore.get(id, directives), function(result){ + if(result){ + cachingStore.put(result, {id: id}); + } + return result; + }); + }); + }, + add: function(object, directives){ + return dojo.when(masterStore.add(object, directives), function(result){ + // now put result in cache + return cachingStore.add(typeof result == "object" ? result : object, directives); + }); + }, + put: function(object, directives){ + // first remove from the cache, so it is empty until we get a response from the master store + cachingStore.remove((directives && directives.id) || this.getIdentity(object)); + return dojo.when(masterStore.put(object, directives), function(result){ + // now put result in cache + return cachingStore.put(typeof result == "object" ? result : object, directives); + }); + }, + remove: function(id, directives){ + return dojo.when(masterStore.remove(id, directives), function(result){ + return cachingStore.remove(id, directives); + }); + }, + evict: function(id){ + return cachingStore.remove(id); + } + }); +}; +/*===== +dojo.declare("dojo.store.Cache", null, { + // example: + // | var master = new dojo.store.Memory(data); + // | var cacher = new dojo.store.Memory(); + // | var store = new dojo.store.Cache(master, cacher); + // + query: function(query, directives){ + // summary: + // Query the underlying master store and cache any results. + // query: Object|String + // The object or string containing query information. Dependent on the query engine used. + // directives: dojo.store.util.SimpleQueryEngine.__queryOptions? + // An optional keyword arguments object with additional parameters describing the query. + // returns: dojo.store.util.QueryResults + // A QueryResults object that can be used to iterate over. + }, + get: function(id, directives){ + // summary: + // Get the object with the specific id. + // id: Number + // The identifier for the object in question. + // directives: dojo.store.__GetOptions? + // Any additional parameters needed to describe how the get should be performed. + // returns: dojo.store.util.QueryResults + // A QueryResults object. + }, + add: function(object, directives){ + // summary: + // Add the given object to the store. + // object: Object + // The object to add to the store. + // directives: dojo.store.__AddOptions? + // Any additional parameters needed to describe how the add should be performed. + // returns: Number + // The new id for the object. + }, + put: function(object, directives){ + // summary: + // Put the object into the store (similar to an HTTP PUT). + // object: Object + // The object to put to the store. + // directives: dojo.store.__PutOptions? + // Any additional parameters needed to describe how the put should be performed. + // returns: Number + // The new id for the object. + }, + remove: function(id, directives){ + // summary: + // Remove the object with the specific id. + // id: Number + // The identifier for the object in question. + // directives: dojo.store.__RemoveOptions? + // Any additional parameters needed to describe how the remove should be performed. + }, + evict: function(id){ + // summary: + // Remove the object with the given id from the underlying caching store. + // id: Number + // The identifier for the object in question. + } +}); +=====*/ + +} diff --git a/lib/dojo/store/DataStore.js b/lib/dojo/store/DataStore.js new file mode 100644 index 000000000..99c81fd5d --- /dev/null +++ b/lib/dojo/store/DataStore.js @@ -0,0 +1,142 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.store.DataStore"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.store.DataStore"] = true; +dojo.provide("dojo.store.DataStore"); +dojo.require("dojo.store.util.QueryResults"); + + +dojo.declare("dojo.store.DataStore", null, { + target: "", + constructor: function(options){ + // summary: + // This is an adapter for using Dojo Data stores with an object store consumer. + // You can provide a Dojo data store and use this adapter to interact with it through + // the Dojo object store API + // options: Object? + // This provides any configuration information that will be mixed into the store, + // including a reference to the Dojo data store under the property "store". + dojo.mixin(this, options); + }, + _objectConverter: function(callback){ + var store = this.store; + return function(item){ + var object = {}; + var attributes = store.getAttributes(item); + for(var i = 0; i < attributes.length; i++){ + object[attributes[i]] = store.getValue(item, attributes[i]); + } + return callback(object); + }; + }, + get: function(id, options){ + // summary: + // Retrieves an object by it's identity. This will trigger a fetchItemByIdentity + // id: Object? + // The identity to use to lookup the object + var returnedObject, returnedError; + var deferred = new dojo.Deferred(); + this.store.fetchItemByIdentity({ + identity: id, + onItem: this._objectConverter(function(object){ + deferred.resolve(returnedObject = object); + }), + onError: function(error){ + deferred.reject(returnedError = error); + } + }); + if(returnedObject){ + // if it was returned synchronously + return returnedObject; + } + if(returnedError){ + throw returnedError; + } + return deferred.promise; + }, + put: function(object, options){ + // summary: + // Stores an object by its identity. + // object: Object + // The object to store. + // options: Object? + // Additional metadata for storing the data. Includes a reference to an id + // that the object may be stored with (i.e. { id: "foo" }). + var id = options && typeof options.id != "undefined" || this.getIdentity(object); + var store = this.store; + if(typeof id == "undefined"){ + store.newItem(object); + }else{ + store.fetchItemByIdentity({ + identity: id, + onItem: function(item){ + if(item){ + for(var i in object){ + if(store.getValue(item, i) != object[i]){ + store.setValue(item, i, object[i]); + } + } + }else{ + store.newItem(object); + } + } + }); + } + }, + remove: function(id){ + // summary: + // Deletes an object by its identity. + // id: Object + // The identity to use to delete the object + var store = this.store; + this.store.fetchItemByIdentity({ + identity: id, + onItem: function(item){ + store.deleteItem(item); + } + }); + }, + query: function(query, options){ + // summary: + // Queries the store for objects. + // query: Object + // The query to use for retrieving objects from the store + // options: Object? + // Optional options object as used by the underlying dojo.data Store. + // returns: dojo.store.util.QueryResults + // A query results object that can be used to iterate over results. + var returnedObject, returnedError; + var deferred = new dojo.Deferred(); + deferred.total = new dojo.Deferred(); + var converter = this._objectConverter(function(object){return object;}); + this.store.fetch(dojo.mixin({ + query: query, + onBegin: function(count){ + deferred.total.resolve(count); + }, + onComplete: function(results){ + deferred.resolve(dojo.map(results, converter)); + }, + onError: function(error){ + deferred.reject(error); + } + }, options)); + return dojo.store.util.QueryResults(deferred); + }, + getIdentity: function(object){ + // summary: + // Fetch the identity for the given object. + // object: Object + // The data object to get the identity from. + // returns: Number + // The id of the given object. + return object[this.idProperty || this.store.getIdentityAttributes()[0]]; + } +}); + +} diff --git a/lib/dojo/store/JsonRest.js b/lib/dojo/store/JsonRest.js new file mode 100644 index 000000000..5f9254c3e --- /dev/null +++ b/lib/dojo/store/JsonRest.js @@ -0,0 +1,146 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.store.JsonRest"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.store.JsonRest"] = true; +dojo.provide("dojo.store.JsonRest"); +dojo.require("dojo.store.util.QueryResults"); + + +dojo.declare("dojo.store.JsonRest", null, { + constructor: function(/*dojo.store.JsonRest*/ options){ + // summary: + // This is a basic store for RESTful communicating with a server through JSON + // formatted data. + // options: + // This provides any configuration information that will be mixed into the store + dojo.mixin(this, options); + }, + // target: String + // The target base URL to use for all requests to the server. This string will be + // prepended to the id to generate the URL (relative or absolute) for requests + // sent to the server + target: "", + // idProperty: String + // Indicates the property to use as the identity property. The values of this + // property should be unique. + idProperty: "id", + + get: function(id, options){ + // summary: + // Retrieves an object by its identity. This will trigger a GET request to the server using + // the url `this.target + id`. + // id: Number + // The identity to use to lookup the object + // returns: Object + // The object in the store that matches the given id. + var headers = options || {}; + headers.Accept = "application/javascript, application/json"; + return dojo.xhrGet({ + url:this.target + id, + handleAs: "json", + headers: headers + }); + }, + getIdentity: function(object){ + // summary: + // Returns an object's identity + // object: Object + // The object to get the identity from + // returns: Number + return object[this.idProperty]; + }, + put: function(object, options){ + // summary: + // Stores an object. This will trigger a PUT request to the server + // if the object has an id, otherwise it will trigger a POST request. + // object: Object + // The object to store. + // options: dojo.store.api.Store.PutDirectives? + // Additional metadata for storing the data. Includes an "id" + // property if a specific id is to be used. + // returns: Number + options = options || {}; + var id = ("id" in options) ? options.id : this.getIdentity(object); + var hasId = typeof id != "undefined"; + return dojo.xhr(hasId && !options.incremental ? "PUT" : "POST", { + url: hasId ? this.target + id : this.target, + postData: dojo.toJson(object), + handleAs: "json", + headers:{ + "Content-Type": "application/json", + "If-Match": options.overwrite === true ? "*" : null, + "If-None-Match": options.overwrite === false ? "*" : null + } + }); + }, + add: function(object, options){ + // summary: + // Adds an object. This will trigger a PUT request to the server + // if the object has an id, otherwise it will trigger a POST request. + // object: Object + // The object to store. + // options: dojo.store.api.Store.PutDirectives? + // Additional metadata for storing the data. Includes an "id" + // property if a specific id is to be used. + options = options || {}; + options.overwrite = false; + return this.put(object, options); + }, + remove: function(id){ + // summary: + // Deletes an object by its identity. This will trigger a DELETE request to the server. + // id: Number + // The identity to use to delete the object + return dojo.xhrDelete({ + url:this.target + id + }); + }, + query: function(query, options){ + // summary: + // Queries the store for objects. This will trigger a GET request to the server, with the + // query added as a query string. + // query: Object + // The query to use for retrieving objects from the store. + // options: dojo.store.api.Store.QueryOptions? + // The optional arguments to apply to the resultset. + // returns: dojo.store.api.Store.QueryResults + // The results of the query, extended with iterative methods. + var headers = {Accept: "application/javascript, application/json"}; + options = options || {}; + + if(options.start >= 0 || options.count >= 0){ + headers.Range = "items=" + (options.start || '0') + '-' + + (("count" in options && options.count != Infinity) ? + (options.count + (options.start || 0) - 1) : ''); + } + if(dojo.isObject(query)){ + query = dojo.objectToQuery(query); + query = query ? "?" + query: ""; + } + if(options && options.sort){ + query += (query ? "&" : "?") + "sort("; + for(var i = 0; i<options.sort.length; i++){ + var sort = options.sort[i]; + query += (i > 0 ? "," : "") + (sort.descending ? '-' : '+') + encodeURIComponent(sort.attribute); + } + query += ")"; + } + var results = dojo.xhrGet({ + url: this.target + (query || ""), + handleAs: "json", + headers: headers + }); + results.total = results.then(function(){ + var range = results.ioArgs.xhr.getResponseHeader("Content-Range"); + return range && (range=range.match(/\/(.*)/)) && +range[1]; + }); + return dojo.store.util.QueryResults(results); + } +}); + +} diff --git a/lib/dojo/store/Memory.js b/lib/dojo/store/Memory.js new file mode 100644 index 000000000..b9001cdaf --- /dev/null +++ b/lib/dojo/store/Memory.js @@ -0,0 +1,164 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.store.Memory"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.store.Memory"] = true; +dojo.provide("dojo.store.Memory"); +dojo.require("dojo.store.util.QueryResults"); +dojo.require("dojo.store.util.SimpleQueryEngine"); + + +dojo.declare("dojo.store.Memory", null, { + // summary: + // This is a basic in-memory object store. It implements dojo.store.api.Store. + constructor: function(/*dojo.store.Memory*/ options){ + // summary: + // Creates a memory object store. + // options: + // This provides any configuration information that will be mixed into the store. + // This should generally include the data property to provide the starting set of data. + this.index = {}; + dojo.mixin(this, options); + this.setData(this.data || []); + }, + // data: Array + // The array of all the objects in the memory store + data:null, + + // idProperty: String + // Indicates the property to use as the identity property. The values of this + // property should be unique. + idProperty: "id", + + // index: Object + // An index of data by id + index:null, + + // queryEngine: Function + // Defines the query engine to use for querying the data store + queryEngine: dojo.store.util.SimpleQueryEngine, + get: function(id){ + // summary: + // Retrieves an object by its identity + // id: Number + // The identity to use to lookup the object + // returns: Object + // The object in the store that matches the given id. + return this.index[id]; + }, + getIdentity: function(object){ + // summary: + // Returns an object's identity + // object: Object + // The object to get the identity from + // returns: Number + return object[this.idProperty]; + }, + put: function(object, options){ + // summary: + // Stores an object + // object: Object + // The object to store. + // options: dojo.store.api.Store.PutDirectives?? + // Additional metadata for storing the data. Includes an "id" + // property if a specific id is to be used. + // returns: Number + var id = options && options.id || object[this.idProperty] || Math.random(); + this.index[id] = object; + var data = this.data, + idProperty = this.idProperty; + for(var i = 0, l = data.length; i < l; i++){ + if(data[i][idProperty] == id){ + data[i] = object; + return id; + } + } + this.data.push(object); + return id; + }, + add: function(object, options){ + // summary: + // Creates an object, throws an error if the object already exists + // object: Object + // The object to store. + // options: dojo.store.api.Store.PutDirectives?? + // Additional metadata for storing the data. Includes an "id" + // property if a specific id is to be used. + // returns: Number + if(this.index[options && options.id || object[this.idProperty]]){ + throw new Error("Object already exists"); + } + return this.put(object, options); + }, + remove: function(id){ + // summary: + // Deletes an object by its identity + // id: Number + // The identity to use to delete the object + delete this.index[id]; + var data = this.data, + idProperty = this.idProperty; + for(var i = 0, l = data.length; i < l; i++){ + if(data[i][idProperty] == id){ + data.splice(i, 1); + return; + } + } + }, + query: function(query, options){ + // summary: + // Queries the store for objects. + // query: Object + // The query to use for retrieving objects from the store. + // options: dojo.store.api.Store.QueryOptions? + // The optional arguments to apply to the resultset. + // returns: dojo.store.api.Store.QueryResults + // The results of the query, extended with iterative methods. + // + // example: + // Given the following store: + // + // | var store = new dojo.store.Memory({ + // | data: [ + // | {id: 1, name: "one", prime: false }, + // | {id: 2, name: "two", even: true, prime: true}, + // | {id: 3, name: "three", prime: true}, + // | {id: 4, name: "four", even: true, prime: false}, + // | {id: 5, name: "five", prime: true} + // | ] + // | }); + // + // ...find all items where "prime" is true: + // + // | var results = store.query({ prime: true }); + // + // ...or find all items where "even" is true: + // + // | var results = store.query({ even: true }); + return dojo.store.util.QueryResults(this.queryEngine(query, options)(this.data)); + }, + setData: function(data){ + // summary: + // Sets the given data as the source for this store, and indexes it + // data: Object[] + // An array of objects to use as the source of data. + if(data.items){ + // just for convenience with the data format IFRS expects + this.idProperty = data.identifier; + data = this.data = data.items; + }else{ + this.data = data; + } + + for(var i = 0, l = data.length; i < l; i++){ + var object = data[i]; + this.index[object[this.idProperty]] = object; + } + } +}); + +} diff --git a/lib/dojo/store/Observable.js b/lib/dojo/store/Observable.js new file mode 100644 index 000000000..f231e0321 --- /dev/null +++ b/lib/dojo/store/Observable.js @@ -0,0 +1,173 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.store.Observable"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.store.Observable"] = true; +dojo.provide("dojo.store.Observable"); + +dojo.getObject("store", true, dojo); + +dojo.store.Observable = function(store){ + // summary: + // The Observable store wrapper takes a store and sets an observe method on query() + // results that can be used to monitor results for changes. + // + // description: + // Observable wraps an existing store so that notifications can be made when a query + // is performed. + // + // example: + // Create a Memory store that returns an observable query, and then log some + // information about that query. + // + // | var store = dojo.store.Observable(new dojo.store.Memory({ + // | data: [ + // | {id: 1, name: "one", prime: false}, + // | {id: 2, name: "two", even: true, prime: true}, + // | {id: 3, name: "three", prime: true}, + // | {id: 4, name: "four", even: true, prime: false}, + // | {id: 5, name: "five", prime: true} + // | ] + // | })); + // | var changes = [], results = store.query({ prime: true }); + // | var observer = results.observe(function(object, previousIndex, newIndex){ + // | changes.push({previousIndex:previousIndex, newIndex:newIndex, object:object}); + // | }); + // + // See the Observable tests for more information. + + var queryUpdaters = [], revision = 0; + // a Comet driven store could directly call notify to notify observers when data has + // changed on the backend + store.notify = function(object, existingId){ + revision++; + var updaters = queryUpdaters.slice(); + for(var i = 0, l = updaters.length; i < l; i++){ + updaters[i](object, existingId); + } + }; + var originalQuery = store.query; + store.query = function(query, options){ + options = options || {}; + var results = originalQuery.apply(this, arguments); + if(results && results.forEach){ + var nonPagedOptions = dojo.mixin({}, options); + delete nonPagedOptions.start; + delete nonPagedOptions.count; + + var queryExecutor = store.queryEngine && store.queryEngine(query, nonPagedOptions); + var queryRevision = revision; + var listeners = [], queryUpdater; + results.observe = function(listener, includeObjectUpdates){ + if(listeners.push(listener) == 1){ + // first listener was added, create the query checker and updater + queryUpdaters.push(queryUpdater = function(changed, existingId){ + dojo.when(results, function(resultsArray){ + var atEnd = resultsArray.length != options.count; + var i; + if(++queryRevision != revision){ + throw new Error("Query is out of date, you must observe() the query prior to any data modifications"); + } + var removedObject, removedFrom = -1, insertedInto = -1; + if(existingId){ + // remove the old one + for(i = 0, l = resultsArray.length; i < l; i++){ + var object = resultsArray[i]; + if(store.getIdentity(object) == existingId){ + removedObject = object; + removedFrom = i; + if(queryExecutor || !changed){// if it was changed and we don't have a queryExecutor, we shouldn't remove it because updated objects would be eliminated + resultsArray.splice(i, 1); + } + break; + } + } + } + if(queryExecutor){ + // add the new one + if(changed && + // if a matches function exists, use that (probably more efficient) + (queryExecutor.matches ? queryExecutor.matches(changed) : queryExecutor([changed]).length)){ + + if(removedFrom > -1){ + // put back in the original slot so it doesn't move unless it needs to (relying on a stable sort below) + resultsArray.splice(removedFrom, 0, changed); + }else{ + resultsArray.push(changed); + } + insertedInto = dojo.indexOf(queryExecutor(resultsArray), changed); + if((options.start && insertedInto == 0) || + (!atEnd && insertedInto == resultsArray.length -1)){ + // if it is at the end of the page, assume it goes into the prev or next page + insertedInto = -1; + } + } + }else if(changed){ + // we don't have a queryEngine, so we can't provide any information + // about where it was inserted, but we can at least indicate a new object + insertedInto = removedFrom >= 0 ? removedFrom : (store.defaultIndex || 0); + } + if((removedFrom > -1 || insertedInto > -1) && + (includeObjectUpdates || !queryExecutor || (removedFrom != insertedInto))){ + var copyListeners = listeners.slice(); + for(i = 0;listener = copyListeners[i]; i++){ + listener(changed || removedObject, removedFrom, insertedInto); + } + } + }); + }); + } + return { + cancel: function(){ + // remove this listener + listeners.splice(dojo.indexOf(listeners, listener), 1); + if(!listeners.length){ + // no more listeners, remove the query updater too + queryUpdaters.splice(dojo.indexOf(queryUpdaters, queryUpdater), 1); + } + } + }; + }; + } + return results; + }; + var inMethod; + function whenFinished(method, action){ + var original = store[method]; + if(original){ + store[method] = function(value){ + if(inMethod){ + // if one method calls another (like add() calling put()) we don't want two events + return original.apply(this, arguments); + } + inMethod = true; + try{ + return dojo.when(original.apply(this, arguments), function(results){ + action((typeof results == "object" && results) || value); + return results; + }); + }finally{ + inMethod = false; + } + }; + } + } + // monitor for updates by listening to these methods + whenFinished("put", function(object){ + store.notify(object, store.getIdentity(object)); + }); + whenFinished("add", function(object){ + store.notify(object); + }); + whenFinished("remove", function(id){ + store.notify(undefined, id); + }); + + return store; +}; + +} diff --git a/lib/dojo/store/README b/lib/dojo/store/README new file mode 100644 index 000000000..cb33da077 --- /dev/null +++ b/lib/dojo/store/README @@ -0,0 +1,10 @@ +This folder contains the stores and utilities implementing the proposed new Dojo Object Store API, +a successor and unifier to Dojo Data, Dojo Storage, and potentially Dojo Model. These +stores are brand new, and designed to provide simple lightweight implementations +providing core functionality for typical applications. These modules are under active +development, and exist here at this time to provide maximum visibility to the +efforts to design and develop this new API and set of base stores. The goal is +to have these stores ready for Dojo 1.6. In the meantime, these stores are likely to +have API changes, may be missing some functionality, tests, and/or documentation. +If these modules are not deemed suitably stable by the 1.6 release, this directory (or +individual modules) will be removed and be given a later release target.
\ No newline at end of file diff --git a/lib/dojo/store/api/Store.js b/lib/dojo/store/api/Store.js new file mode 100644 index 000000000..ca26226d3 --- /dev/null +++ b/lib/dojo/store/api/Store.js @@ -0,0 +1,304 @@ +/* + 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 +*/ + + +define([], function() { + // module: + // dojo/store/api/Store + // summary: + // The module defines the Dojo object store interface. + +dojo.declare("dojo.store.api.Store", null, { + // summary: + // This is an abstract API that data provider implementations conform to. + // This file defines methods signatures and intentionally leaves all the + // methods unimplemented. For more information on the dojo.store APIs, + // please visit: http://dojotoolkit.org/reference-guide/dojo/store.html + // Every method and property is optional, and is only needed if the functionality + // it provides is required. + // Every method may return a promise for the specified return value if the + // execution of the operation is asynchronous (except + // for query() which already defines an async return value). + + // idProperty: String + // If the store has a single primary key, this tndicates the property to use as the + // identity property. The values of this property should be unique. + idProperty: "id", + + // queryEngine: Function + // If the store can be queried locally (on the client side in JS), this defines + // the query engine to use for querying the data store. + // This takes a query and query options and returns a function that can execute + // the provided query on a JavaScript array. The queryEngine may be replace to + // provide more sophisticated querying capabilities. For example: + // | var query = store.queryEngine({foo:"bar"}, {count:10}); + // | query(someArray) -> filtered array + // The returned query function may have a "matches" property that can be + // used to determine if an object matches the query. For example: + // | query.matches({id:"some-object", foo:"bar"}) -> true + // | query.matches({id:"some-object", foo:"something else"}) -> false + queryEngine: null, + + get: function(id){ + // summary: + // Retrieves an object by its identity + // id: Number + // The identity to use to lookup the object + // returns: Object + // The object in the store that matches the given id. + }, + getIdentity: function(object){ + // summary: + // Returns an object's identity + // object: Object + // The object to get the identity from + // returns: String|Number + }, + put: function(object, directives){ + // summary: + // Stores an object + // object: Object + // The object to store. + // directives: dojo.store.api.Store.PutDirectives? + // Additional directives for storing objects. + // returns: Number|String + }, + add: function(object, directives){ + // summary: + // Creates an object, throws an error if the object already exists + // object: Object + // The object to store. + // directives: dojo.store.api.Store.PutDirectives? + // Additional directives for creating objects. + // returns: Number|String + }, + remove: function(id){ + // summary: + // Deletes an object by its identity + // id: Number + // The identity to use to delete the object + delete this.index[id]; + var data = this.data, + idProperty = this.idProperty; + for(var i = 0, l = data.length; i < l; i++){ + if(data[i][idProperty] == id){ + data.splice(i, 1); + return; + } + } + }, + query: function(query, options){ + // summary: + // Queries the store for objects. This does not alter the store, but returns a + // set of data from the store. + // query: String|Object|Function + // The query to use for retrieving objects from the store. + // options: dojo.store.api.Store.QueryOptions + // The optional arguments to apply to the resultset. + // returns: dojo.store.api.Store.QueryResults + // The results of the query, extended with iterative methods. + // + // example: + // Given the following store: + // + // ...find all items where "prime" is true: + // + // | store.query({ prime: true }).forEach(function(object){ + // | // handle each object + // | }); + }, + transaction: function(){ + // summary: + // Starts a new transaction. + // Note that a store user might not call transaction() prior to using put, + // delete, etc. in which case these operations effectively could be thought of + // as "auto-commit" style actions. + // returns: dojo.store.api.Store.Transaction + // This represents the new current transaction. + }, + getChildren: function(parent, options){ + // summary: + // Retrieves the children of an object. + // parent: Object + // The object to find the children of. + // options: dojo.store.api.Store.QueryOptions? + // Additional options to apply to the retrieval of the children. + // returns: dojo.store.api.Store.QueryResults + // A result set of the children of the parent object. + }, + getMetadata: function(object){ + // summary: + // Returns any metadata about the object. This may include attribution, + // cache directives, history, or version information. + // object: Object + // The object to return metadata for. + // returns: Object + // An object containing metadata. + } +}); + +dojo.store.api.Store.PutDirectives = function(id, before, parent, overwrite){ + // summary: + // Directives passed to put() and add() handlers for guiding the update and + // creation of stored objects. + // id: String|Number? + // Indicates the identity of the object if a new object is created + // before: Object? + // If the collection of objects in the store has a natural ordering, + // this indicates that the created or updated object should be placed before the + // object specified by the value of this property. A value of null indicates that the + // object should be last. + // parent: Object?, + // If the store is hierarchical (with single parenting) this property indicates the + // new parent of the created or updated object. + // overwrite: Boolean? + // If this is provided as a boolean it indicates that the object should or should not + // overwrite an existing object. A value of true indicates that a new object + // should not be created, the operation should update an existing object. A + // value of false indicates that an existing object should not be updated, a new + // object should be created (which is the same as an add() operation). When + // this property is not provided, either an update or creation is acceptable. + this.id = id; + this.before = before; + this.parent = parent; + this.overwrite = overwrite; +}; + +dojo.store.api.Store.SortInformation = function(attribute, descending){ + // summary: + // An object describing what attribute to sort on, and the direction of the sort. + // attribute: String + // The name of the attribute to sort on. + // descending: Boolean + // The direction of the sort. Default is false. + this.attribute = attribute; + this.descending = descending; +}; + +dojo.store.api.Store.QueryOptions = function(sort, start, count){ + // summary: + // Optional object with additional parameters for query results. + // sort: dojo.store.api.Store.SortInformation[]? + // A list of attributes to sort on, as well as direction + // For example: + // | [{attribute:"price, descending: true}]. + // If the sort parameter is omitted, then the natural order of the store may be + // applied if there is a natural order. + // start: Number? + // The first result to begin iteration on + // count: Number? + // The number of how many results should be returned. + this.sort = sort; + this.start = start; + this.count = count; +}; + +dojo.declare("dojo.store.api.Store.QueryResults", null, { + // summary: + // This is an object returned from query() calls that provides access to the results + // of a query. Queries may be executed asynchronously. + + forEach: function(callback, thisObject){ + // summary: + // Iterates over the query results, based on + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/forEach. + // Note that this may executed asynchronously. The callback may be called + // after this function returns. + // callback: + // Function that is called for each object in the query results + // thisObject: + // The object to use as |this| in the callback. + + }, + filter: function(callback, thisObject){ + // summary: + // Filters the query results, based on + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter. + // Note that this may executed asynchronously. The callback may be called + // after this function returns. + // callback: + // Function that is called for each object in the query results + // thisObject: + // The object to use as |this| in the callback. + // returns: dojo.store.api.Store.QueryResults + }, + map: function(callback, thisObject){ + // summary: + // Maps the query results, based on + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map. + // Note that this may executed asynchronously. The callback may be called + // after this function returns. + // callback: + // Function that is called for each object in the query results + // thisObject: + // The object to use as |this| in the callback. + // returns: dojo.store.api.Store.QueryResults + }, + then: function(callback, errorHandler){ + // summary: + // This registers a callback for when the query is complete, if the query is asynchronous. + // This is an optional method, and may not be present for synchronous queries. + // callback: + // This is called when the query is completed successfully, and is passed a single argument + // that is an array representing the query results. + // errorHandler: + // This is called if the query failed, and is passed a single argument that is the error + // for the failure. + }, + observe: function(listener, includeAllUpdates){ + // summary: + // This registers a callback for notification of when data is modified in the query results. + // This is an optional method, and is usually provided by dojo.store.Observable. + // listener: Function + // The listener function is called when objects in the query results are modified + // to affect the query result. The listener function is called with the following + // arguments: + // | listener(object, removedFrom, insertedInto); + // * The object parameter indicates the object that was create, modified, or deleted. + // * The removedFrom parameter indicates the index in the result array where + // the object used to be. If the value is -1, then the object is an addition to + // this result set (due to a new object being created, or changed such that it + // is a part of the result set). + // * The insertedInto parameter indicates the index in the result array where + // the object should be now. If the value is -1, then the object is a removal + // from this result set (due to an object being deleted, or changed such that it + // is not a part of the result set). + // includeAllUpdates: + // This indicates whether or not to include object updates that do not affect + // the inclusion or order of the object in the query results. By default this is false, + // which means that if any object is updated in such a way that it remains + // in the result set and it's position in result sets is not affected, then the listener + // will not be fired. + + }, + // total: Number|Promise? + // This property should be included in if the query options included the "count" + // property limiting the result set. This property indicates the total number of objects + // matching the query (as if "start" and "count" weren't present). This may be + // a promise if the query is asynchronous. + total: 0 +}); + +dojo.declare("dojo.store.api.Store.Transaction", null, { + // summary: + // This is an object returned from transaction() calls that represents the current + // transaction. + + commit: function(){ + // summary: + // Commits the transaction. This may throw an error if it fails. Of if the operation + // is asynchronous, it may return a promise that represents the eventual success + // or failure of the commit. + }, + abort: function(callback, thisObject){ + // summary: + // Aborts the transaction. This may throw an error if it fails. Of if the operation + // is asynchronous, it may return a promise that represents the eventual success + // or failure of the abort. + } +}); + +}); diff --git a/lib/dojo/store/util/QueryResults.js b/lib/dojo/store/util/QueryResults.js new file mode 100644 index 000000000..a237d1dce --- /dev/null +++ b/lib/dojo/store/util/QueryResults.js @@ -0,0 +1,67 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.store.util.QueryResults"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.store.util.QueryResults"] = true; +dojo.provide("dojo.store.util.QueryResults"); + +dojo.getObject("store.util", true, dojo); + +dojo.store.util.QueryResults = function(results){ + // summary: + // A function that wraps the results of a store query with additional + // methods. + // + // description: + // QueryResults is a basic wrapper that allows for array-like iteration + // over any kind of returned data from a query. While the simplest store + // will return a plain array of data, other stores may return deferreds or + // promises; this wrapper makes sure that *all* results can be treated + // the same. + // + // Additional methods include `forEach`, `filter` and `map`. + // + // returns: Object + // An array-like object that can be used for iterating over. + // + // example: + // Query a store and iterate over the results. + // + // | store.query({ prime: true }).forEach(function(item){ + // | // do something + // | }); + + if(!results){ + return results; + } + // if it is a promise it may be frozen + if(results.then){ + results = dojo.delegate(results); + } + function addIterativeMethod(method){ + if(!results[method]){ + results[method] = function(){ + var args = arguments; + return dojo.when(results, function(results){ + Array.prototype.unshift.call(args, results); + return dojo.store.util.QueryResults(dojo[method].apply(dojo, args)); + }); + }; + } + } + addIterativeMethod("forEach"); + addIterativeMethod("filter"); + addIterativeMethod("map"); + if(!results.total){ + results.total = dojo.when(results, function(results){ + return results.length; + }); + } + return results; +}; + +} diff --git a/lib/dojo/store/util/SimpleQueryEngine.js b/lib/dojo/store/util/SimpleQueryEngine.js new file mode 100644 index 000000000..4b29f20cb --- /dev/null +++ b/lib/dojo/store/util/SimpleQueryEngine.js @@ -0,0 +1,116 @@ +/* + 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 +*/ + + +if(!dojo._hasResource["dojo.store.util.SimpleQueryEngine"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.store.util.SimpleQueryEngine"] = true; +dojo.provide("dojo.store.util.SimpleQueryEngine"); + +dojo.getObject("store.util", true, dojo); + +dojo.store.util.SimpleQueryEngine = function(query, options){ + // summary: + // Simple query engine that matches using filter functions, named filter + // functions or objects by name-value on a query object hash + // + // description: + // The SimpleQueryEngine provides a way of getting a QueryResults through + // the use of a simple object hash as a filter. The hash will be used to + // match properties on data objects with the corresponding value given. In + // other words, only exact matches will be returned. + // + // This function can be used as a template for more complex query engines; + // for example, an engine can be created that accepts an object hash that + // contains filtering functions, or a string that gets evaluated, etc. + // + // When creating a new dojo.store, simply set the store's queryEngine + // field as a reference to this function. + // + // query: Object + // An object hash with fields that may match fields of items in the store. + // Values in the hash will be compared by normal == operator, but regular expressions + // or any object that provides a test() method are also supported and can be + // used to match strings by more complex expressions + // (and then the regex's or object's test() method will be used to match values). + // + // options: dojo.store.util.SimpleQueryEngine.__queryOptions? + // An object that contains optional information such as sort, start, and count. + // + // returns: Function + // A function that caches the passed query under the field "matches". See any + // of the "query" methods on dojo.stores. + // + // example: + // Define a store with a reference to this engine, and set up a query method. + // + // | var myStore = function(options){ + // | // ...more properties here + // | this.queryEngine = dojo.store.util.SimpleQueryEngine; + // | // define our query method + // | this.query = function(query, options){ + // | return dojo.store.util.QueryResults(this.queryEngine(query, options)(this.data)); + // | }; + // | }; + + // create our matching query function + switch(typeof query){ + default: + throw new Error("Can not query with a " + typeof query); + case "object": case "undefined": + var queryObject = query; + query = function(object){ + for(var key in queryObject){ + var required = queryObject[key]; + if(required && required.test){ + if(!required.test(object[key])){ + return false; + } + }else if(required != object[key]){ + return false; + } + } + return true; + }; + break; + case "string": + // named query + if(!this[query]){ + throw new Error("No filter function " + query + " was found in store"); + } + query = this[query]; + // fall through + case "function": + // fall through + } + function execute(array){ + // execute the whole query, first we filter + var results = dojo.filter(array, query); + // next we sort + if(options && options.sort){ + results.sort(function(a, b){ + for(var sort, i=0; sort = options.sort[i]; i++){ + var aValue = a[sort.attribute]; + var bValue = b[sort.attribute]; + if (aValue != bValue) { + return !!sort.descending == aValue > bValue ? -1 : 1; + } + } + return 0; + }); + } + // now we paginate + if(options && (options.start || options.count)){ + var total = results.length; + results = results.slice(options.start || 0, (options.start || 0) + (options.count || Infinity)); + results.total = total; + } + return results; + } + execute.matches = query; + return execute; +}; + +} diff --git a/lib/dojo/string.js b/lib/dojo/string.js index 1eba34043..2e1cc5015 100644 --- a/lib/dojo/string.js +++ b/lib/dojo/string.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,8 +9,10 @@ if(!dojo._hasResource["dojo.string"]){ //_hasResource checks added by build. Do dojo._hasResource["dojo.string"] = true; dojo.provide("dojo.string"); +dojo.getObject("string", true, dojo); + /*===== -dojo.string = { +dojo.string = { // summary: String utilities for Dojo }; =====*/ @@ -61,22 +63,22 @@ dojo.string.pad = function(/*String*/text, /*Integer*/size, /*String?*/ch, /*Boo return end ? out + pad : pad + out; // String }; -dojo.string.substitute = function( /*String*/ template, - /*Object|Array*/map, - /*Function?*/ transform, +dojo.string.substitute = function( /*String*/ template, + /*Object|Array*/map, + /*Function?*/ transform, /*Object?*/ thisObject){ // summary: // Performs parameterized substitutions on a string. Throws an // exception if any parameter is unmatched. - // template: + // template: // a string with expressions in the form `${key}` to be replaced or - // `${key:format}` which specifies a format function. keys are case-sensitive. + // `${key:format}` which specifies a format function. keys are case-sensitive. // map: // hash to search for substitutions - // transform: + // transform: // a function to process all parameters before substitution takes // place, e.g. mylib.encodeXML - // thisObject: + // thisObject: // where to look for optional format function; default to the global // namespace // example: @@ -119,7 +121,7 @@ dojo.string.substitute = function( /*String*/ template, // | ); thisObject = thisObject || dojo.global; - transform = transform ? + transform = transform ? dojo.hitch(thisObject, transform) : function(v){ return v; }; return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g, diff --git a/lib/dojo/tt-rss-layer.js b/lib/dojo/tt-rss-layer.js index 295fd957a..2c0f3489d 100644 --- a/lib/dojo/tt-rss-layer.js +++ b/lib/dojo/tt-rss-layer.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -11,4 +11,4 @@ http://dojotoolkit.org */ -dojo.provide("tt-rss-layer");if(!dojo._hasResource["dojo.date.stamp"]){dojo._hasResource["dojo.date.stamp"]=true;dojo.provide("dojo.date.stamp");dojo.date.stamp.fromISOString=function(_1,_2){if(!dojo.date.stamp._isoRegExp){dojo.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}var _3=dojo.date.stamp._isoRegExp.exec(_1),_4=null;if(_3){_3.shift();if(_3[1]){_3[1]--;}if(_3[6]){_3[6]*=1000;}if(_2){_2=new Date(_2);dojo.forEach(dojo.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_5){return _2["get"+_5]();}),function(_6,_7){_3[_7]=_3[_7]||_6;});}_4=new Date(_3[0]||1970,_3[1]||0,_3[2]||1,_3[3]||0,_3[4]||0,_3[5]||0,_3[6]||0);if(_3[0]<100){_4.setFullYear(_3[0]||1970);}var _8=0,_9=_3[7]&&_3[7].charAt(0);if(_9!="Z"){_8=((_3[8]||0)*60)+(Number(_3[9])||0);if(_9!="-"){_8*=-1;}}if(_9){_8-=_4.getTimezoneOffset();}if(_8){_4.setTime(_4.getTime()+_8*60000);}}return _4;};dojo.date.stamp.toISOString=function(_a,_b){var _c=function(n){return (n<10)?"0"+n:n;};_b=_b||{};var _d=[],_e=_b.zulu?"getUTC":"get",_f="";if(_b.selector!="time"){var _10=_a[_e+"FullYear"]();_f=["0000".substr((_10+"").length)+_10,_c(_a[_e+"Month"]()+1),_c(_a[_e+"Date"]())].join("-");}_d.push(_f);if(_b.selector!="date"){var _11=[_c(_a[_e+"Hours"]()),_c(_a[_e+"Minutes"]()),_c(_a[_e+"Seconds"]())].join(":");var _12=_a[_e+"Milliseconds"]();if(_b.milliseconds){_11+="."+(_12<100?"0":"")+_c(_12);}if(_b.zulu){_11+="Z";}else{if(_b.selector!="time"){var _13=_a.getTimezoneOffset();var _14=Math.abs(_13);_11+=(_13>0?"-":"+")+_c(Math.floor(_14/60))+":"+_c(_14%60);}}_d.push(_11);}return _d.join("T");};}if(!dojo._hasResource["dojo.parser"]){dojo._hasResource["dojo.parser"]=true;dojo.provide("dojo.parser");new Date("X");dojo.parser=new function(){var d=dojo;this._attrName=d._scopeName+"Type";this._query="["+this._attrName+"]";function _15(_16){if(d.isString(_16)){return "string";}if(typeof _16=="number"){return "number";}if(typeof _16=="boolean"){return "boolean";}if(d.isFunction(_16)){return "function";}if(d.isArray(_16)){return "array";}if(_16 instanceof Date){return "date";}if(_16 instanceof d._Url){return "url";}return "object";};function _17(_18,_19){switch(_19){case "string":return _18;case "number":return _18.length?Number(_18):NaN;case "boolean":return typeof _18=="boolean"?_18:!(_18.toLowerCase()=="false");case "function":if(d.isFunction(_18)){_18=_18.toString();_18=d.trim(_18.substring(_18.indexOf("{")+1,_18.length-1));}try{if(_18===""||_18.search(/[^\w\.]+/i)!=-1){return new Function(_18);}else{return d.getObject(_18,false)||new Function(_18);}}catch(e){return new Function();}case "array":return _18?_18.split(/\s*,\s*/):[];case "date":switch(_18){case "":return new Date("");case "now":return new Date();default:return d.date.stamp.fromISOString(_18);}case "url":return d.baseUrl+_18;default:return d.fromJson(_18);}};var _1a={};dojo.connect(dojo,"extend",function(){_1a={};});function _1b(_1c){if(!_1a[_1c]){var cls=d.getObject(_1c);if(!cls){return null;}var _1d=cls.prototype;var _1e={},_1f={};for(var _20 in _1d){if(_20.charAt(0)=="_"){continue;}if(_20 in _1f){continue;}var _21=_1d[_20];_1e[_20]=_15(_21);}_1a[_1c]={cls:cls,params:_1e};}return _1a[_1c];};this._functionFromScript=function(_22){var _23="";var _24="";var _25=_22.getAttribute("args");if(_25){d.forEach(_25.split(/\s*,\s*/),function(_26,idx){_23+="var "+_26+" = arguments["+idx+"]; ";});}var _27=_22.getAttribute("with");if(_27&&_27.length){d.forEach(_27.split(/\s*,\s*/),function(_28){_23+="with("+_28+"){";_24+="}";});}return new Function(_23+_22.innerHTML+_24);};this.instantiate=function(_29,_2a,_2b){var _2c=[],dp=dojo.parser;_2a=_2a||{};_2b=_2b||{};d.forEach(_29,function(obj){if(!obj){return;}var _2d,_2e,_2f,_30,_31;if(obj.node){_2d=obj.node;_2e=obj.type;_2f=obj.clsInfo||(_2e&&_1b(_2e));_30=_2f&&_2f.cls;_31=obj.scripts;}else{_2d=obj;_2e=dp._attrName in _2a?_2a[dp._attrName]:_2d.getAttribute(dp._attrName);_2f=_2e&&_1b(_2e);_30=_2f&&_2f.cls;_31=(_30&&(_30._noScript||_30.prototype._noScript)?[]:d.query("> script[type^='dojo/']",_2d));}if(!_2f){throw new Error("Could not load class '"+_2e);}var _32={},_33=_2d.attributes;if(_2b.defaults){dojo.mixin(_32,_2b.defaults);}if(obj.inherited){dojo.mixin(_32,obj.inherited);}for(var _34 in _2f.params){var _35=_34 in _2a?{value:_2a[_34],specified:true}:_33.getNamedItem(_34);if(!_35||(!_35.specified&&(!dojo.isIE||_34.toLowerCase()!="value"))){continue;}var _36=_35.value;switch(_34){case "class":_36="className" in _2a?_2a.className:_2d.className;break;case "style":_36="style" in _2a?_2a.style:(_2d.style&&_2d.style.cssText);}var _37=_2f.params[_34];if(typeof _36=="string"){_32[_34]=_17(_36,_37);}else{_32[_34]=_36;}}var _38=[],_39=[];d.forEach(_31,function(_3a){_2d.removeChild(_3a);var _3b=_3a.getAttribute("event"),_2e=_3a.getAttribute("type"),nf=d.parser._functionFromScript(_3a);if(_3b){if(_2e=="dojo/connect"){_38.push({event:_3b,func:nf});}else{_32[_3b]=nf;}}else{_39.push(nf);}});var _3c=_30.markupFactory||_30.prototype&&_30.prototype.markupFactory;var _3d=_3c?_3c(_32,_2d,_30):new _30(_32,_2d);_2c.push(_3d);var _3e=_2d.getAttribute("jsId");if(_3e){d.setObject(_3e,_3d);}d.forEach(_38,function(_3f){d.connect(_3d,_3f.event,null,_3f.func);});d.forEach(_39,function(_40){_40.call(_3d);});});if(!_2a._started){d.forEach(_2c,function(_41){if(!_2b.noStart&&_41&&_41.startup&&!_41._started&&(!_41.getParent||!_41.getParent())){_41.startup();}});}return _2c;};this.parse=function(_42,_43){var _44;if(!_43&&_42&&_42.rootNode){_43=_42;_44=_43.rootNode;}else{_44=_42;}var _45=this._attrName;function _46(_47,_48){var _49=dojo.clone(_47.inherited);dojo.forEach(["dir","lang"],function(_4a){var val=_47.node.getAttribute(_4a);if(val){_49[_4a]=val;}});var _4b=_47.scripts;var _4c=!_47.clsInfo||!_47.clsInfo.cls.prototype.stopParser;for(var _4d=_47.node.firstChild;_4d;_4d=_4d.nextSibling){if(_4d.nodeType==1){var _4e=_4c&&_4d.getAttribute(_45);if(_4e){var _4f={"type":_4e,clsInfo:_1b(_4e),node:_4d,scripts:[],inherited:_49};_48.push(_4f);_46(_4f,_48);}else{if(_4b&&_4d.nodeName.toLowerCase()=="script"){_4e=_4d.getAttribute("type");if(_4e&&/^dojo\//i.test(_4e)){_4b.push(_4d);}}else{if(_4c){_46({node:_4d,inherited:_49},_48);}}}}}};var _50=[];_46({node:_44?dojo.byId(_44):dojo.body(),inherited:(_43&&_43.inherited)||{dir:dojo._isBodyLtr()?"ltr":"rtl"}},_50);return this.instantiate(_50,null,_43);};}();(function(){var _51=function(){if(dojo.config.parseOnLoad){dojo.parser.parse();}};if(dojo.exists("dijit.wai.onload")&&(dijit.wai.onload===dojo._loaders[0])){dojo._loaders.splice(1,0,_51);}else{dojo._loaders.unshift(_51);}})();}if(!dojo._hasResource["dojo.window"]){dojo._hasResource["dojo.window"]=true;dojo.provide("dojo.window");dojo.window.getBox=function(){var _52=(dojo.doc.compatMode=="BackCompat")?dojo.body():dojo.doc.documentElement;var _53=dojo._docScroll();return {w:_52.clientWidth,h:_52.clientHeight,l:_53.x,t:_53.y};};dojo.window.get=function(doc){if(dojo.isIE&&window!==document.parentWindow){doc.parentWindow.execScript("document._parentWindow = window;","Javascript");var win=doc._parentWindow;doc._parentWindow=null;return win;}return doc.parentWindow||doc.defaultView;};dojo.window.scrollIntoView=function(_54,pos){try{_54=dojo.byId(_54);var doc=_54.ownerDocument||dojo.doc,_55=doc.body||dojo.body(),_56=doc.documentElement||_55.parentNode,_57=dojo.isIE,_58=dojo.isWebKit;if((!(dojo.isMoz||_57||_58||dojo.isOpera)||_54==_55||_54==_56)&&(typeof _54.scrollIntoView!="undefined")){_54.scrollIntoView(false);return;}var _59=doc.compatMode=="BackCompat",_5a=_59?_55:_56,_5b=_58?_55:_5a,_5c=_5a.clientWidth,_5d=_5a.clientHeight,rtl=!dojo._isBodyLtr(),_5e=pos||dojo.position(_54),el=_54.parentNode,_5f=function(el){return ((_57<=6||(_57&&_59))?false:(dojo.style(el,"position").toLowerCase()=="fixed"));};if(_5f(_54)){return;}while(el){if(el==_55){el=_5b;}var _60=dojo.position(el),_61=_5f(el);if(el==_5b){_60.w=_5c;_60.h=_5d;if(_5b==_56&&_57&&rtl){_60.x+=_5b.offsetWidth-_60.w;}if(_60.x<0||!_57){_60.x=0;}if(_60.y<0||!_57){_60.y=0;}}else{var pb=dojo._getPadBorderExtents(el);_60.w-=pb.w;_60.h-=pb.h;_60.x+=pb.l;_60.y+=pb.t;}if(el!=_5b){var _62=el.clientWidth,_63=_60.w-_62;if(_62>0&&_63>0){_60.w=_62;if(_57&&rtl){_60.x+=_63;}}_62=el.clientHeight;_63=_60.h-_62;if(_62>0&&_63>0){_60.h=_62;}}if(_61){if(_60.y<0){_60.h+=_60.y;_60.y=0;}if(_60.x<0){_60.w+=_60.x;_60.x=0;}if(_60.y+_60.h>_5d){_60.h=_5d-_60.y;}if(_60.x+_60.w>_5c){_60.w=_5c-_60.x;}}var l=_5e.x-_60.x,t=_5e.y-Math.max(_60.y,0),r=l+_5e.w-_60.w,bot=t+_5e.h-_60.h;if(r*l>0){var s=Math[l<0?"max":"min"](l,r);_5e.x+=el.scrollLeft;el.scrollLeft+=(_57>=8&&!_59&&rtl)?-s:s;_5e.x-=el.scrollLeft;}if(bot*t>0){_5e.y+=el.scrollTop;el.scrollTop+=Math[t<0?"max":"min"](t,bot);_5e.y-=el.scrollTop;}el=(el!=_5b)&&!_61&&el.parentNode;}}catch(error){console.error("scrollIntoView: "+error);_54.scrollIntoView(false);}};}if(!dojo._hasResource["dijit._base.manager"]){dojo._hasResource["dijit._base.manager"]=true;dojo.provide("dijit._base.manager");dojo.declare("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0;},add:function(_64){if(this._hash[_64.id]){throw new Error("Tried to register widget with id=="+_64.id+" but that id is already registered");}this._hash[_64.id]=_64;this.length++;},remove:function(id){if(this._hash[id]){delete this._hash[id];this.length--;}},forEach:function(_65,_66){_66=_66||dojo.global;var i=0,id;for(id in this._hash){_65.call(_66,this._hash[id],i++,this._hash);}return this;},filter:function(_67,_68){_68=_68||dojo.global;var res=new dijit.WidgetSet(),i=0,id;for(id in this._hash){var w=this._hash[id];if(_67.call(_68,w,i++,this._hash)){res.add(w);}}return res;},byId:function(id){return this._hash[id];},byClass:function(cls){var res=new dijit.WidgetSet(),id,_69;for(id in this._hash){_69=this._hash[id];if(_69.declaredClass==cls){res.add(_69);}}return res;},toArray:function(){var ar=[];for(var id in this._hash){ar.push(this._hash[id]);}return ar;},map:function(_6a,_6b){return dojo.map(this.toArray(),_6a,_6b);},every:function(_6c,_6d){_6d=_6d||dojo.global;var x=0,i;for(i in this._hash){if(!_6c.call(_6d,this._hash[i],x++,this._hash)){return false;}}return true;},some:function(_6e,_6f){_6f=_6f||dojo.global;var x=0,i;for(i in this._hash){if(_6e.call(_6f,this._hash[i],x++,this._hash)){return true;}}return false;}});(function(){dijit.registry=new dijit.WidgetSet();var _70=dijit.registry._hash,_71=dojo.attr,_72=dojo.hasAttr,_73=dojo.style;dijit.byId=function(id){return typeof id=="string"?_70[id]:id;};var _74={};dijit.getUniqueId=function(_75){var id;do{id=_75+"_"+(_75 in _74?++_74[_75]:_74[_75]=0);}while(_70[id]);return dijit._scopeName=="dijit"?id:dijit._scopeName+"_"+id;};dijit.findWidgets=function(_76){var _77=[];function _78(_79){for(var _7a=_79.firstChild;_7a;_7a=_7a.nextSibling){if(_7a.nodeType==1){var _7b=_7a.getAttribute("widgetId");if(_7b){_77.push(_70[_7b]);}else{_78(_7a);}}}};_78(_76);return _77;};dijit._destroyAll=function(){dijit._curFocus=null;dijit._prevFocus=null;dijit._activeStack=[];dojo.forEach(dijit.findWidgets(dojo.body()),function(_7c){if(!_7c._destroyed){if(_7c.destroyRecursive){_7c.destroyRecursive();}else{if(_7c.destroy){_7c.destroy();}}}});};if(dojo.isIE){dojo.addOnWindowUnload(function(){dijit._destroyAll();});}dijit.byNode=function(_7d){return _70[_7d.getAttribute("widgetId")];};dijit.getEnclosingWidget=function(_7e){while(_7e){var id=_7e.getAttribute&&_7e.getAttribute("widgetId");if(id){return _70[id];}_7e=_7e.parentNode;}return null;};var _7f=(dijit._isElementShown=function(_80){var s=_73(_80);return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_71(_80,"type")!="hidden");});dijit.hasDefaultTabStop=function(_81){switch(_81.nodeName.toLowerCase()){case "a":return _72(_81,"href");case "area":case "button":case "input":case "object":case "select":case "textarea":return true;case "iframe":if(dojo.isMoz){try{return _81.contentDocument.designMode=="on";}catch(err){return false;}}else{if(dojo.isWebKit){var doc=_81.contentDocument,_82=doc&&doc.body;return _82&&_82.contentEditable=="true";}else{try{doc=_81.contentWindow.document;_82=doc&&doc.body;return _82&&_82.firstChild&&_82.firstChild.contentEditable=="true";}catch(e){return false;}}}default:return _81.contentEditable=="true";}};var _83=(dijit.isTabNavigable=function(_84){if(_71(_84,"disabled")){return false;}else{if(_72(_84,"tabIndex")){return _71(_84,"tabIndex")>=0;}else{return dijit.hasDefaultTabStop(_84);}}});dijit._getTabNavigable=function(_85){var _86,_87,_88,_89,_8a,_8b;var _8c=function(_8d){dojo.query("> *",_8d).forEach(function(_8e){if((dojo.isIE&&_8e.scopeName!=="HTML")||!_7f(_8e)){return;}if(_83(_8e)){var _8f=_71(_8e,"tabIndex");if(!_72(_8e,"tabIndex")||_8f==0){if(!_86){_86=_8e;}_87=_8e;}else{if(_8f>0){if(!_88||_8f<_89){_89=_8f;_88=_8e;}if(!_8a||_8f>=_8b){_8b=_8f;_8a=_8e;}}}}if(_8e.nodeName.toUpperCase()!="SELECT"){_8c(_8e);}});};if(_7f(_85)){_8c(_85);}return {first:_86,last:_87,lowest:_88,highest:_8a};};dijit.getFirstInTabbingOrder=function(_90){var _91=dijit._getTabNavigable(dojo.byId(_90));return _91.lowest?_91.lowest:_91.first;};dijit.getLastInTabbingOrder=function(_92){var _93=dijit._getTabNavigable(dojo.byId(_92));return _93.last?_93.last:_93.highest;};dijit.defaultDuration=dojo.config["defaultDuration"]||200;})();}if(!dojo._hasResource["dijit._base.focus"]){dojo._hasResource["dijit._base.focus"]=true;dojo.provide("dijit._base.focus");dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){return dijit.getBookmark().isCollapsed;},getBookmark:function(){var bm,rg,tg,sel=dojo.doc.selection,cf=dijit._curFocus;if(dojo.global.getSelection){sel=dojo.global.getSelection();if(sel){if(sel.isCollapsed){tg=cf?cf.tagName:"";if(tg){tg=tg.toLowerCase();if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){sel={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};return {isCollapsed:(sel.end<=sel.start),mark:sel};}}bm={isCollapsed:true};}else{rg=sel.getRangeAt(0);bm={isCollapsed:false,mark:rg.cloneRange()};}}}else{if(sel){tg=cf?cf.tagName:"";tg=tg.toLowerCase();if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){if(sel.type&&sel.type.toLowerCase()=="none"){return {isCollapsed:true,mark:null};}else{rg=sel.createRange();return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};}}bm={};try{rg=sel.createRange();bm.isCollapsed=!(sel.type=="Text"?rg.htmlText.length:rg.length);}catch(e){bm.isCollapsed=true;return bm;}if(sel.type.toUpperCase()=="CONTROL"){if(rg.length){bm.mark=[];var i=0,len=rg.length;while(i<len){bm.mark.push(rg.item(i++));}}else{bm.isCollapsed=true;bm.mark=null;}}else{bm.mark=rg.getBookmark();}}else{console.warn("No idea how to store the current selection for this browser!");}}return bm;},moveToBookmark:function(_94){var _95=dojo.doc,_96=_94.mark;if(_96){if(dojo.global.getSelection){var sel=dojo.global.getSelection();if(sel&&sel.removeAllRanges){if(_96.pRange){var r=_96;var n=r.node;n.selectionStart=r.start;n.selectionEnd=r.end;}else{sel.removeAllRanges();sel.addRange(_96);}}else{console.warn("No idea how to restore selection for this browser!");}}else{if(_95.selection&&_96){var rg;if(_96.pRange){rg=_96.range;}else{if(dojo.isArray(_96)){rg=_95.body.createControlRange();dojo.forEach(_96,function(n){rg.addElement(n);});}else{rg=_95.body.createTextRange();rg.moveToBookmark(_96);}}rg.select();}}}},getFocus:function(_97,_98){var _99=!dijit._curFocus||(_97&&dojo.isDescendant(dijit._curFocus,_97.domNode))?dijit._prevFocus:dijit._curFocus;return {node:_99,bookmark:(_99==dijit._curFocus)&&dojo.withGlobal(_98||dojo.global,dijit.getBookmark),openedForWindow:_98};},focus:function(_9a){if(!_9a){return;}var _9b="node" in _9a?_9a.node:_9a,_9c=_9a.bookmark,_9d=_9a.openedForWindow,_9e=_9c?_9c.isCollapsed:false;if(_9b){var _9f=(_9b.tagName.toLowerCase()=="iframe")?_9b.contentWindow:_9b;if(_9f&&_9f.focus){try{_9f.focus();}catch(e){}}dijit._onFocusNode(_9b);}if(_9c&&dojo.withGlobal(_9d||dojo.global,dijit.isCollapsed)&&!_9e){if(_9d){_9d.focus();}try{dojo.withGlobal(_9d||dojo.global,dijit.moveToBookmark,null,[_9c]);}catch(e2){}}},_activeStack:[],registerIframe:function(_a0){return dijit.registerWin(_a0.contentWindow,_a0);},unregisterIframe:function(_a1){dijit.unregisterWin(_a1);},registerWin:function(_a2,_a3){var _a4=function(evt){dijit._justMouseDowned=true;setTimeout(function(){dijit._justMouseDowned=false;},0);if(dojo.isIE&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){return;}dijit._onTouchNode(_a3||evt.target||evt.srcElement,"mouse");};var doc=dojo.isIE?_a2.document.documentElement:_a2.document;if(doc){if(dojo.isIE){doc.attachEvent("onmousedown",_a4);var _a5=function(evt){if(evt.srcElement.tagName.toLowerCase()!="#document"&&dijit.isTabNavigable(evt.srcElement)){dijit._onFocusNode(_a3||evt.srcElement);}else{dijit._onTouchNode(_a3||evt.srcElement);}};doc.attachEvent("onactivate",_a5);var _a6=function(evt){dijit._onBlurNode(_a3||evt.srcElement);};doc.attachEvent("ondeactivate",_a6);return function(){doc.detachEvent("onmousedown",_a4);doc.detachEvent("onactivate",_a5);doc.detachEvent("ondeactivate",_a6);doc=null;};}else{doc.addEventListener("mousedown",_a4,true);var _a7=function(evt){dijit._onFocusNode(_a3||evt.target);};doc.addEventListener("focus",_a7,true);var _a8=function(evt){dijit._onBlurNode(_a3||evt.target);};doc.addEventListener("blur",_a8,true);return function(){doc.removeEventListener("mousedown",_a4,true);doc.removeEventListener("focus",_a7,true);doc.removeEventListener("blur",_a8,true);doc=null;};}}},unregisterWin:function(_a9){_a9&&_a9();},_onBlurNode:function(_aa){dijit._prevFocus=dijit._curFocus;dijit._curFocus=null;if(dijit._justMouseDowned){return;}if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);}dijit._clearActiveWidgetsTimer=setTimeout(function(){delete dijit._clearActiveWidgetsTimer;dijit._setStack([]);dijit._prevFocus=null;},100);},_onTouchNode:function(_ab,by){if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);delete dijit._clearActiveWidgetsTimer;}var _ac=[];try{while(_ab){var _ad=dojo.attr(_ab,"dijitPopupParent");if(_ad){_ab=dijit.byId(_ad).domNode;}else{if(_ab.tagName&&_ab.tagName.toLowerCase()=="body"){if(_ab===dojo.body()){break;}_ab=dojo.window.get(_ab.ownerDocument).frameElement;}else{var id=_ab.getAttribute&&_ab.getAttribute("widgetId"),_ae=id&&dijit.byId(id);if(_ae&&!(by=="mouse"&&_ae.get("disabled"))){_ac.unshift(id);}_ab=_ab.parentNode;}}}}catch(e){}dijit._setStack(_ac,by);},_onFocusNode:function(_af){if(!_af){return;}if(_af.nodeType==9){return;}dijit._onTouchNode(_af);if(_af==dijit._curFocus){return;}if(dijit._curFocus){dijit._prevFocus=dijit._curFocus;}dijit._curFocus=_af;dojo.publish("focusNode",[_af]);},_setStack:function(_b0,by){var _b1=dijit._activeStack;dijit._activeStack=_b0;for(var _b2=0;_b2<Math.min(_b1.length,_b0.length);_b2++){if(_b1[_b2]!=_b0[_b2]){break;}}var _b3;for(var i=_b1.length-1;i>=_b2;i--){_b3=dijit.byId(_b1[i]);if(_b3){_b3._focused=false;_b3._hasBeenBlurred=true;if(_b3._onBlur){_b3._onBlur(by);}dojo.publish("widgetBlur",[_b3,by]);}}for(i=_b2;i<_b0.length;i++){_b3=dijit.byId(_b0[i]);if(_b3){_b3._focused=true;if(_b3._onFocus){_b3._onFocus(by);}dojo.publish("widgetFocus",[_b3,by]);}}}});dojo.addOnLoad(function(){var _b4=dijit.registerWin(window);if(dojo.isIE){dojo.addOnWindowUnload(function(){dijit.unregisterWin(_b4);_b4=null;});}});}if(!dojo._hasResource["dojo.AdapterRegistry"]){dojo._hasResource["dojo.AdapterRegistry"]=true;dojo.provide("dojo.AdapterRegistry");dojo.AdapterRegistry=function(_b5){this.pairs=[];this.returnWrappers=_b5||false;};dojo.extend(dojo.AdapterRegistry,{register:function(_b6,_b7,_b8,_b9,_ba){this.pairs[((_ba)?"unshift":"push")]([_b6,_b7,_b8,_b9]);},match:function(){for(var i=0;i<this.pairs.length;i++){var _bb=this.pairs[i];if(_bb[1].apply(this,arguments)){if((_bb[3])||(this.returnWrappers)){return _bb[2];}else{return _bb[2].apply(this,arguments);}}}throw new Error("No match found");},unregister:function(_bc){for(var i=0;i<this.pairs.length;i++){var _bd=this.pairs[i];if(_bd[0]==_bc){this.pairs.splice(i,1);return true;}}return false;}});}if(!dojo._hasResource["dijit._base.place"]){dojo._hasResource["dijit._base.place"]=true;dojo.provide("dijit._base.place");dijit.getViewport=function(){return dojo.window.getBox();};dijit.placeOnScreen=function(_be,pos,_bf,_c0){var _c1=dojo.map(_bf,function(_c2){var c={corner:_c2,pos:{x:pos.x,y:pos.y}};if(_c0){c.pos.x+=_c2.charAt(1)=="L"?_c0.x:-_c0.x;c.pos.y+=_c2.charAt(0)=="T"?_c0.y:-_c0.y;}return c;});return dijit._place(_be,_c1);};dijit._place=function(_c3,_c4,_c5){var _c6=dojo.window.getBox();if(!_c3.parentNode||String(_c3.parentNode.tagName).toLowerCase()!="body"){dojo.body().appendChild(_c3);}var _c7=null;dojo.some(_c4,function(_c8){var _c9=_c8.corner;var pos=_c8.pos;if(_c5){_c5(_c3,_c8.aroundCorner,_c9);}var _ca=_c3.style;var _cb=_ca.display;var _cc=_ca.visibility;_ca.visibility="hidden";_ca.display="";var mb=dojo.marginBox(_c3);_ca.display=_cb;_ca.visibility=_cc;var _cd=Math.max(_c6.l,_c9.charAt(1)=="L"?pos.x:(pos.x-mb.w)),_ce=Math.max(_c6.t,_c9.charAt(0)=="T"?pos.y:(pos.y-mb.h)),_cf=Math.min(_c6.l+_c6.w,_c9.charAt(1)=="L"?(_cd+mb.w):pos.x),_d0=Math.min(_c6.t+_c6.h,_c9.charAt(0)=="T"?(_ce+mb.h):pos.y),_d1=_cf-_cd,_d2=_d0-_ce,_d3=(mb.w-_d1)+(mb.h-_d2);if(_c7==null||_d3<_c7.overflow){_c7={corner:_c9,aroundCorner:_c8.aroundCorner,x:_cd,y:_ce,w:_d1,h:_d2,overflow:_d3};}return !_d3;});_c3.style.left=_c7.x+"px";_c3.style.top=_c7.y+"px";if(_c7.overflow&&_c5){_c5(_c3,_c7.aroundCorner,_c7.corner);}return _c7;};dijit.placeOnScreenAroundNode=function(_d4,_d5,_d6,_d7){_d5=dojo.byId(_d5);var _d8=_d5.style.display;_d5.style.display="";var _d9=dojo.position(_d5,true);_d5.style.display=_d8;return dijit._placeOnScreenAroundRect(_d4,_d9.x,_d9.y,_d9.w,_d9.h,_d6,_d7);};dijit.placeOnScreenAroundRectangle=function(_da,_db,_dc,_dd){return dijit._placeOnScreenAroundRect(_da,_db.x,_db.y,_db.width,_db.height,_dc,_dd);};dijit._placeOnScreenAroundRect=function(_de,x,y,_df,_e0,_e1,_e2){var _e3=[];for(var _e4 in _e1){_e3.push({aroundCorner:_e4,corner:_e1[_e4],pos:{x:x+(_e4.charAt(1)=="L"?0:_df),y:y+(_e4.charAt(0)=="T"?0:_e0)}});}return dijit._place(_de,_e3,_e2);};dijit.placementRegistry=new dojo.AdapterRegistry();dijit.placementRegistry.register("node",function(n,x){return typeof x=="object"&&typeof x.offsetWidth!="undefined"&&typeof x.offsetHeight!="undefined";},dijit.placeOnScreenAroundNode);dijit.placementRegistry.register("rect",function(n,x){return typeof x=="object"&&"x" in x&&"y" in x&&"width" in x&&"height" in x;},dijit.placeOnScreenAroundRectangle);dijit.placeOnScreenAroundElement=function(_e5,_e6,_e7,_e8){return dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments);};dijit.getPopupAroundAlignment=function(_e9,_ea){var _eb={};dojo.forEach(_e9,function(pos){switch(pos){case "after":_eb[_ea?"BR":"BL"]=_ea?"BL":"BR";break;case "before":_eb[_ea?"BL":"BR"]=_ea?"BR":"BL";break;case "below":_eb[_ea?"BL":"BR"]=_ea?"TL":"TR";_eb[_ea?"BR":"BL"]=_ea?"TR":"TL";break;case "above":default:_eb[_ea?"TL":"TR"]=_ea?"BL":"BR";_eb[_ea?"TR":"TL"]=_ea?"BR":"BL";break;}});return _eb;};}if(!dojo._hasResource["dijit._base.window"]){dojo._hasResource["dijit._base.window"]=true;dojo.provide("dijit._base.window");dijit.getDocumentWindow=function(doc){return dojo.window.get(doc);};}if(!dojo._hasResource["dijit._base.popup"]){dojo._hasResource["dijit._base.popup"]=true;dojo.provide("dijit._base.popup");dijit.popup={_stack:[],_beginZIndex:1000,_idGen:1,moveOffScreen:function(_ec){var _ed=_ec.parentNode;if(!_ed||!dojo.hasClass(_ed,"dijitPopup")){_ed=dojo.create("div",{"class":"dijitPopup",style:{visibility:"hidden",top:"-9999px"}},dojo.body());dijit.setWaiRole(_ed,"presentation");_ed.appendChild(_ec);}var s=_ec.style;s.display="";s.visibility="";s.position="";s.top="0px";dojo.style(_ed,{visibility:"hidden",top:"-9999px"});},getTopPopup:function(){var _ee=this._stack;for(var pi=_ee.length-1;pi>0&&_ee[pi].parent===_ee[pi-1].widget;pi--){}return _ee[pi];},open:function(_ef){var _f0=this._stack,_f1=_ef.popup,_f2=_ef.orient||((_ef.parent?_ef.parent.isLeftToRight():dojo._isBodyLtr())?{"BL":"TL","BR":"TR","TL":"BL","TR":"BR"}:{"BR":"TR","BL":"TL","TR":"BR","TL":"BL"}),_f3=_ef.around,id=(_ef.around&&_ef.around.id)?(_ef.around.id+"_dropdown"):("popup_"+this._idGen++);var _f4=_f1.domNode.parentNode;if(!_f4||!dojo.hasClass(_f4,"dijitPopup")){this.moveOffScreen(_f1.domNode);_f4=_f1.domNode.parentNode;}dojo.attr(_f4,{id:id,style:{zIndex:this._beginZIndex+_f0.length},"class":"dijitPopup "+(_f1.baseClass||_f1["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:_ef.parent?_ef.parent.id:""});if(dojo.isIE||dojo.isMoz){var _f5=_f4.childNodes[1];if(!_f5){_f5=new dijit.BackgroundIframe(_f4);}}var _f6=_f3?dijit.placeOnScreenAroundElement(_f4,_f3,_f2,_f1.orient?dojo.hitch(_f1,"orient"):null):dijit.placeOnScreen(_f4,_ef,_f2=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_ef.padding);_f4.style.visibility="visible";_f1.domNode.style.visibility="visible";var _f7=[];_f7.push(dojo.connect(_f4,"onkeypress",this,function(evt){if(evt.charOrCode==dojo.keys.ESCAPE&&_ef.onCancel){dojo.stopEvent(evt);_ef.onCancel();}else{if(evt.charOrCode===dojo.keys.TAB){dojo.stopEvent(evt);var _f8=this.getTopPopup();if(_f8&&_f8.onCancel){_f8.onCancel();}}}}));if(_f1.onCancel){_f7.push(dojo.connect(_f1,"onCancel",_ef.onCancel));}_f7.push(dojo.connect(_f1,_f1.onExecute?"onExecute":"onChange",this,function(){var _f9=this.getTopPopup();if(_f9&&_f9.onExecute){_f9.onExecute();}}));_f0.push({wrapper:_f4,iframe:_f5,widget:_f1,parent:_ef.parent,onExecute:_ef.onExecute,onCancel:_ef.onCancel,onClose:_ef.onClose,handlers:_f7});if(_f1.onOpen){_f1.onOpen(_f6);}return _f6;},close:function(_fa){var _fb=this._stack;while(dojo.some(_fb,function(_fc){return _fc.widget==_fa;})){var top=_fb.pop(),_fd=top.wrapper,_fe=top.iframe,_ff=top.widget,_100=top.onClose;if(_ff.onClose){_ff.onClose();}dojo.forEach(top.handlers,dojo.disconnect);if(_ff&&_ff.domNode){this.moveOffScreen(_ff.domNode);}else{dojo.destroy(_fd);}if(_100){_100();}}}};dijit._frames=new function(){var _101=[];this.pop=function(){var _102;if(_101.length){_102=_101.pop();_102.style.display="";}else{if(dojo.isIE){var burl=dojo.config["dojoBlankHtmlUrl"]||(dojo.moduleUrl("dojo","resources/blank.html")+"")||"javascript:\"\"";var html="<iframe src='"+burl+"'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_102=dojo.doc.createElement(html);}else{_102=dojo.create("iframe");_102.src="javascript:\"\"";_102.className="dijitBackgroundIframe";dojo.style(_102,"opacity",0.1);}_102.tabIndex=-1;dijit.setWaiRole(_102,"presentation");}return _102;};this.push=function(_103){_103.style.display="none";_101.push(_103);};}();dijit.BackgroundIframe=function(node){if(!node.id){throw new Error("no id");}if(dojo.isIE||dojo.isMoz){var _104=dijit._frames.pop();node.appendChild(_104);if(dojo.isIE<7){this.resize(node);this._conn=dojo.connect(node,"onresize",this,function(){this.resize(node);});}else{dojo.style(_104,{width:"100%",height:"100%"});}this.iframe=_104;}};dojo.extend(dijit.BackgroundIframe,{resize:function(node){if(this.iframe&&dojo.isIE<7){dojo.style(this.iframe,{width:node.offsetWidth+"px",height:node.offsetHeight+"px"});}},destroy:function(){if(this._conn){dojo.disconnect(this._conn);this._conn=null;}if(this.iframe){dijit._frames.push(this.iframe);delete this.iframe;}}});}if(!dojo._hasResource["dijit._base.scroll"]){dojo._hasResource["dijit._base.scroll"]=true;dojo.provide("dijit._base.scroll");dijit.scrollIntoView=function(node,pos){dojo.window.scrollIntoView(node,pos);};}if(!dojo._hasResource["dojo.uacss"]){dojo._hasResource["dojo.uacss"]=true;dojo.provide("dojo.uacss");(function(){var d=dojo,html=d.doc.documentElement,ie=d.isIE,_105=d.isOpera,maj=Math.floor,ff=d.isFF,_106=d.boxModel.replace(/-/,""),_107={dj_ie:ie,dj_ie6:maj(ie)==6,dj_ie7:maj(ie)==7,dj_ie8:maj(ie)==8,dj_quirks:d.isQuirks,dj_iequirks:ie&&d.isQuirks,dj_opera:_105,dj_khtml:d.isKhtml,dj_webkit:d.isWebKit,dj_safari:d.isSafari,dj_chrome:d.isChrome,dj_gecko:d.isMozilla,dj_ff3:maj(ff)==3};_107["dj_"+_106]=true;var _108="";for(var clz in _107){if(_107[clz]){_108+=clz+" ";}}html.className=d.trim(html.className+" "+_108);dojo._loaders.unshift(function(){if(!dojo._isBodyLtr()){var _109="dj_rtl dijitRtl "+_108.replace(/ /g,"-rtl ");html.className=d.trim(html.className+" "+_109);}});})();}if(!dojo._hasResource["dijit._base.sniff"]){dojo._hasResource["dijit._base.sniff"]=true;dojo.provide("dijit._base.sniff");}if(!dojo._hasResource["dijit._base.typematic"]){dojo._hasResource["dijit._base.typematic"]=true;dojo.provide("dijit._base.typematic");dijit.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(evt,_10a,node,_10b,obj,_10c,_10d,_10e){if(obj!=this._obj){this.stop();this._initialDelay=_10d||500;this._subsequentDelay=_10c||0.9;this._minDelay=_10e||10;this._obj=obj;this._evt=evt;this._node=node;this._currentTimeout=-1;this._count=-1;this._callback=dojo.hitch(_10a,_10b);this._fireEventAndReload();this._evt=dojo.mixin({faux:true},evt);}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(node,_10f,_110,_111,_112,_113,_114){if(_10f.keyCode){_10f.charOrCode=_10f.keyCode;dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else{if(_10f.charCode){_10f.charOrCode=String.fromCharCode(_10f.charCode);dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}}return [dojo.connect(node,"onkeypress",this,function(evt){if(evt.charOrCode==_10f.charOrCode&&(_10f.ctrlKey===undefined||_10f.ctrlKey==evt.ctrlKey)&&(_10f.altKey===undefined||_10f.altKey==evt.altKey)&&(_10f.metaKey===undefined||_10f.metaKey==(evt.metaKey||false))&&(_10f.shiftKey===undefined||_10f.shiftKey==evt.shiftKey)){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_110,node,_111,_10f,_112,_113,_114);}else{if(dijit.typematic._obj==_10f){dijit.typematic.stop();}}}),dojo.connect(node,"onkeyup",this,function(evt){if(dijit.typematic._obj==_10f){dijit.typematic.stop();}})];},addMouseListener:function(node,_115,_116,_117,_118,_119){var dc=dojo.connect;return [dc(node,"mousedown",this,function(evt){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_115,node,_116,node,_117,_118,_119);}),dc(node,"mouseup",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mouseout",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mousemove",this,function(evt){evt.preventDefault();}),dc(node,"dblclick",this,function(evt){dojo.stopEvent(evt);if(dojo.isIE){dijit.typematic.trigger(evt,_115,node,_116,node,_117,_118,_119);setTimeout(dojo.hitch(this,dijit.typematic.stop),50);}})];},addListener:function(_11a,_11b,_11c,_11d,_11e,_11f,_120,_121){return this.addKeyListener(_11b,_11c,_11d,_11e,_11f,_120,_121).concat(this.addMouseListener(_11a,_11d,_11e,_11f,_120,_121));}};}if(!dojo._hasResource["dijit._base.wai"]){dojo._hasResource["dijit._base.wai"]=true;dojo.provide("dijit._base.wai");dijit.wai={onload:function(){var div=dojo.create("div",{id:"a11yTestNode",style:{cssText:"border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+"\");"}},dojo.body());var cs=dojo.getComputedStyle(div);if(cs){var _122=cs.backgroundImage;var _123=(cs.borderTopColor==cs.borderRightColor)||(_122!=null&&(_122=="none"||_122=="url(invalid-url:)"));dojo[_123?"addClass":"removeClass"](dojo.body(),"dijit_a11y");if(dojo.isIE){div.outerHTML="";}else{dojo.body().removeChild(div);}}}};if(dojo.isIE||dojo.isMoz){dojo._loaders.unshift(dijit.wai.onload);}dojo.mixin(dijit,{_XhtmlRoles:/banner|contentinfo|definition|main|navigation|search|note|secondary|seealso/,hasWaiRole:function(elem,role){var _124=this.getWaiRole(elem);return role?(_124.indexOf(role)>-1):(_124.length>0);},getWaiRole:function(elem){return dojo.trim((dojo.attr(elem,"role")||"").replace(this._XhtmlRoles,"").replace("wairole:",""));},setWaiRole:function(elem,role){var _125=dojo.attr(elem,"role")||"";if(!this._XhtmlRoles.test(_125)){dojo.attr(elem,"role",role);}else{if((" "+_125+" ").indexOf(" "+role+" ")<0){var _126=dojo.trim(_125.replace(this._XhtmlRoles,""));var _127=dojo.trim(_125.replace(_126,""));dojo.attr(elem,"role",_127+(_127?" ":"")+role);}}},removeWaiRole:function(elem,role){var _128=dojo.attr(elem,"role");if(!_128){return;}if(role){var t=dojo.trim((" "+_128+" ").replace(" "+role+" "," "));dojo.attr(elem,"role",t);}else{elem.removeAttribute("role");}},hasWaiState:function(elem,_129){return elem.hasAttribute?elem.hasAttribute("aria-"+_129):!!elem.getAttribute("aria-"+_129);},getWaiState:function(elem,_12a){return elem.getAttribute("aria-"+_12a)||"";},setWaiState:function(elem,_12b,_12c){elem.setAttribute("aria-"+_12b,_12c);},removeWaiState:function(elem,_12d){elem.removeAttribute("aria-"+_12d);}});}if(!dojo._hasResource["dijit._base"]){dojo._hasResource["dijit._base"]=true;dojo.provide("dijit._base");}if(!dojo._hasResource["dijit._Widget"]){dojo._hasResource["dijit._Widget"]=true;dojo.provide("dijit._Widget");dojo.require("dijit._base");dojo.connect(dojo,"_connect",function(_12e,_12f){if(_12e&&dojo.isFunction(_12e._onConnect)){_12e._onConnect(_12f);}});dijit._connectOnUseEventHandler=function(_130){};dijit._lastKeyDownNode=null;if(dojo.isIE){(function(){var _131=function(evt){dijit._lastKeyDownNode=evt.srcElement;};dojo.doc.attachEvent("onkeydown",_131);dojo.addOnWindowUnload(function(){dojo.doc.detachEvent("onkeydown",_131);});})();}else{dojo.doc.addEventListener("keydown",function(evt){dijit._lastKeyDownNode=evt.target;},true);}(function(){var _132={},_133=function(_134){var dc=_134.declaredClass;if(!_132[dc]){var r=[],_135,_136=_134.constructor.prototype;for(var _137 in _136){if(dojo.isFunction(_136[_137])&&(_135=_137.match(/^_set([a-zA-Z]*)Attr$/))&&_135[1]){r.push(_135[1].charAt(0).toLowerCase()+_135[1].substr(1));}}_132[dc]=r;}return _132[dc]||[];};dojo.declare("dijit._Widget",null,{id:"",lang:"",dir:"","class":"",style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")).toString(),postscript:function(_138,_139){this.create(_138,_139);},create:function(_13a,_13b){this.srcNodeRef=dojo.byId(_13b);this._connects=[];this._subscribes=[];this._deferredConnects=dojo.clone(this._deferredConnects);for(var attr in this.attributeMap){delete this._deferredConnects[attr];}for(attr in this._deferredConnects){if(this[attr]!==dijit._connectOnUseEventHandler){delete this._deferredConnects[attr];}}if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_13a){this.params=_13a;dojo.mixin(this,_13a);}this.postMixInProperties();if(!this.id){this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));}dijit.registry.add(this);this.buildRendering();if(this.domNode){this._applyAttributes();var _13c=this.srcNodeRef;if(_13c&&_13c.parentNode){_13c.parentNode.replaceChild(this.domNode,_13c);}for(attr in this.params){this._onConnect(attr);}}if(this.domNode){this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(this.srcNodeRef&&!this.srcNodeRef.parentNode){delete this.srcNodeRef;}this._created=true;},_applyAttributes:function(){var _13d=function(attr,_13e){if((_13e.params&&attr in _13e.params)||_13e[attr]){_13e.set(attr,_13e[attr]);}};for(var attr in this.attributeMap){_13d(attr,this);}dojo.forEach(_133(this),function(a){if(!(a in this.attributeMap)){_13d(a,this);}},this);},postMixInProperties:function(){},buildRendering:function(){this.domNode=this.srcNodeRef||dojo.create("div");},postCreate:function(){if(this.baseClass){var _13f=this.baseClass.split(" ");if(!this.isLeftToRight()){_13f=_13f.concat(dojo.map(_13f,function(name){return name+"Rtl";}));}dojo.addClass(this.domNode,_13f);}},startup:function(){this._started=true;},destroyRecursive:function(_140){this._beingDestroyed=true;this.destroyDescendants(_140);this.destroy(_140);},destroy:function(_141){this._beingDestroyed=true;this.uninitialize();var d=dojo,dfe=d.forEach,dun=d.unsubscribe;dfe(this._connects,function(_142){dfe(_142,d.disconnect);});dfe(this._subscribes,function(_143){dun(_143);});dfe(this._supportingWidgets||[],function(w){if(w.destroyRecursive){w.destroyRecursive();}else{if(w.destroy){w.destroy();}}});this.destroyRendering(_141);dijit.registry.remove(this.id);this._destroyed=true;},destroyRendering:function(_144){if(this.bgIframe){this.bgIframe.destroy(_144);delete this.bgIframe;}if(this.domNode){if(_144){dojo.removeAttr(this.domNode,"widgetId");}else{dojo.destroy(this.domNode);}delete this.domNode;}if(this.srcNodeRef){if(!_144){dojo.destroy(this.srcNodeRef);}delete this.srcNodeRef;}},destroyDescendants:function(_145){dojo.forEach(this.getChildren(),function(_146){if(_146.destroyRecursive){_146.destroyRecursive(_145);}});},uninitialize:function(){return false;},onFocus:function(){},onBlur:function(){},_onFocus:function(e){this.onFocus();},_onBlur:function(){this.onBlur();},_onConnect:function(_147){if(_147 in this._deferredConnects){var _148=this[this._deferredConnects[_147]||"domNode"];this.connect(_148,_147.toLowerCase(),_147);delete this._deferredConnects[_147];}},_setClassAttr:function(_149){var _14a=this[this.attributeMap["class"]||"domNode"];dojo.removeClass(_14a,this["class"]);this["class"]=_149;dojo.addClass(_14a,_149);},_setStyleAttr:function(_14b){var _14c=this[this.attributeMap.style||"domNode"];if(dojo.isObject(_14b)){dojo.style(_14c,_14b);}else{if(_14c.style.cssText){_14c.style.cssText+="; "+_14b;}else{_14c.style.cssText=_14b;}}this.style=_14b;},setAttribute:function(attr,_14d){dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(attr,_14d);},_attrToDom:function(attr,_14e){var _14f=this.attributeMap[attr];dojo.forEach(dojo.isArray(_14f)?_14f:[_14f],function(_150){var _151=this[_150.node||_150||"domNode"];var type=_150.type||"attribute";switch(type){case "attribute":if(dojo.isFunction(_14e)){_14e=dojo.hitch(this,_14e);}var _152=_150.attribute?_150.attribute:(/^on[A-Z][a-zA-Z]*$/.test(attr)?attr.toLowerCase():attr);dojo.attr(_151,_152,_14e);break;case "innerText":_151.innerHTML="";_151.appendChild(dojo.doc.createTextNode(_14e));break;case "innerHTML":_151.innerHTML=_14e;break;case "class":dojo.removeClass(_151,this[attr]);dojo.addClass(_151,_14e);break;}},this);this[attr]=_14e;},attr:function(name,_153){if(dojo.config.isDebug){var _154=arguments.callee._ach||(arguments.callee._ach={}),_155=(arguments.callee.caller||"unknown caller").toString();if(!_154[_155]){dojo.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_155,"","2.0");_154[_155]=true;}}var args=arguments.length;if(args>=2||typeof name==="object"){return this.set.apply(this,arguments);}else{return this.get(name);}},get:function(name){var _156=this._getAttrNames(name);return this[_156.g]?this[_156.g]():this[name];},set:function(name,_157){if(typeof name==="object"){for(var x in name){this.set(x,name[x]);}return this;}var _158=this._getAttrNames(name);if(this[_158.s]){var _159=this[_158.s].apply(this,Array.prototype.slice.call(arguments,1));}else{if(name in this.attributeMap){this._attrToDom(name,_157);}var _15a=this[name];this[name]=_157;}return _159||this;},_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name]){return apn[name];}var uc=name.charAt(0).toUpperCase()+name.substr(1);return (apn[name]={n:name+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"});},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getDescendants:function(){return this.containerNode?dojo.query("[widgetId]",this.containerNode).map(dijit.byNode):[];},getChildren:function(){return this.containerNode?dijit.findWidgets(this.containerNode):[];},nodesWithKeyClick:["input","button"],connect:function(obj,_15b,_15c){var d=dojo,dc=d._connect,_15d=[];if(_15b=="ondijitclick"){if(dojo.indexOf(this.nodesWithKeyClick,obj.nodeName.toLowerCase())==-1){var m=d.hitch(this,_15c);_15d.push(dc(obj,"onkeydown",this,function(e){if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){dijit._lastKeyDownNode=e.target;e.preventDefault();}}),dc(obj,"onkeyup",this,function(e){if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&e.target===dijit._lastKeyDownNode&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){dijit._lastKeyDownNode=null;return m(e);}}));}_15b="onclick";}_15d.push(dc(obj,_15b,this,_15c));this._connects.push(_15d);return _15d;},disconnect:function(_15e){for(var i=0;i<this._connects.length;i++){if(this._connects[i]==_15e){dojo.forEach(_15e,dojo.disconnect);this._connects.splice(i,1);return;}}},subscribe:function(_15f,_160){var d=dojo,_161=d.subscribe(_15f,this,_160);this._subscribes.push(_161);return _161;},unsubscribe:function(_162){for(var i=0;i<this._subscribes.length;i++){if(this._subscribes[i]==_162){dojo.unsubscribe(_162);this._subscribes.splice(i,1);return;}}},isLeftToRight:function(){return this.dir?(this.dir=="ltr"):dojo._isBodyLtr();},isFocusable:function(){return this.focus&&(dojo.style(this.domNode,"display")!="none");},placeAt:function(_163,_164){if(_163.declaredClass&&_163.addChild){_163.addChild(this,_164);}else{dojo.place(this.domNode,_163,_164);}return this;},_onShow:function(){this.onShow();},onShow:function(){},onHide:function(){},onClose:function(){return true;}});})();}if(!dojo._hasResource["dojo.string"]){dojo._hasResource["dojo.string"]=true;dojo.provide("dojo.string");dojo.string.rep=function(str,num){if(num<=0||!str){return "";}var buf=[];for(;;){if(num&1){buf.push(str);}if(!(num>>=1)){break;}str+=str;}return buf.join("");};dojo.string.pad=function(text,size,ch,end){if(!ch){ch="0";}var out=String(text),pad=dojo.string.rep(ch,Math.ceil((size-out.length)/ch.length));return end?out+pad:pad+out;};dojo.string.substitute=function(_165,map,_166,_167){_167=_167||dojo.global;_166=_166?dojo.hitch(_167,_166):function(v){return v;};return _165.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_168,key,_169){var _16a=dojo.getObject(key,false,map);if(_169){_16a=dojo.getObject(_169,false,_167).call(_167,_16a,key);}return _166(_16a,key).toString();});};dojo.string.trim=String.prototype.trim?dojo.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};}if(!dojo._hasResource["dojo.cache"]){dojo._hasResource["dojo.cache"]=true;dojo.provide("dojo.cache");(function(){var _16b={};dojo.cache=function(_16c,url,_16d){if(typeof _16c=="string"){var _16e=dojo.moduleUrl(_16c,url);}else{_16e=_16c;_16d=url;}var key=_16e.toString();var val=_16d;if(_16d!=undefined&&!dojo.isString(_16d)){val=("value" in _16d?_16d.value:undefined);}var _16f=_16d&&_16d.sanitize?true:false;if(typeof val=="string"){val=_16b[key]=_16f?dojo.cache._sanitize(val):val;}else{if(val===null){delete _16b[key];}else{if(!(key in _16b)){val=dojo._getText(key);_16b[key]=_16f?dojo.cache._sanitize(val):val;}val=_16b[key];}}return val;};dojo.cache._sanitize=function(val){if(val){val=val.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _170=val.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_170){val=_170[1];}}else{val="";}return val;};})();}if(!dojo._hasResource["dijit._Templated"]){dojo._hasResource["dijit._Templated"]=true;dojo.provide("dijit._Templated");dojo.declare("dijit._Templated",null,{templateString:null,templatePath:null,widgetsInTemplate:false,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){this._attachPoints=[];},_stringRepl:function(tmpl){var _171=this.declaredClass,_172=this;return dojo.string.substitute(tmpl,this,function(_173,key){if(key.charAt(0)=="!"){_173=dojo.getObject(key.substr(1),false,_172);}if(typeof _173=="undefined"){throw new Error(_171+" template:"+key);}if(_173==null){return "";}return key.charAt(0)=="!"?_173:_173.toString().replace(/"/g,""");},this);},buildRendering:function(){var _174=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);var node;if(dojo.isString(_174)){node=dojo._toDom(this._stringRepl(_174));if(node.nodeType!=1){throw new Error("Invalid template: "+_174);}}else{node=_174.cloneNode(true);}this.domNode=node;this._attachTemplateNodes(node);if(this.widgetsInTemplate){var _175=dojo.parser,qry,attr;if(_175._query!="[dojoType]"){qry=_175._query;attr=_175._attrName;_175._query="[dojoType]";_175._attrName="dojoType";}var cw=(this._startupWidgets=dojo.parser.parse(node,{noStart:!this._earlyTemplatedStartup,inherited:{dir:this.dir,lang:this.lang}}));if(qry){_175._query=qry;_175._attrName=attr;}this._supportingWidgets=dijit.findWidgets(node);this._attachTemplateNodes(cw,function(n,p){return n[p];});}this._fillContent(this.srcNodeRef);},_fillContent:function(_176){var dest=this.containerNode;if(_176&&dest){while(_176.hasChildNodes()){dest.appendChild(_176.firstChild);}}},_attachTemplateNodes:function(_177,_178){_178=_178||function(n,p){return n.getAttribute(p);};var _179=dojo.isArray(_177)?_177:(_177.all||_177.getElementsByTagName("*"));var x=dojo.isArray(_177)?0:-1;for(;x<_179.length;x++){var _17a=(x==-1)?_177:_179[x];if(this.widgetsInTemplate&&_178(_17a,"dojoType")){continue;}var _17b=_178(_17a,"dojoAttachPoint");if(_17b){var _17c,_17d=_17b.split(/\s*,\s*/);while((_17c=_17d.shift())){if(dojo.isArray(this[_17c])){this[_17c].push(_17a);}else{this[_17c]=_17a;}this._attachPoints.push(_17c);}}var _17e=_178(_17a,"dojoAttachEvent");if(_17e){var _17f,_180=_17e.split(/\s*,\s*/);var trim=dojo.trim;while((_17f=_180.shift())){if(_17f){var _181=null;if(_17f.indexOf(":")!=-1){var _182=_17f.split(":");_17f=trim(_182[0]);_181=trim(_182[1]);}else{_17f=trim(_17f);}if(!_181){_181=_17f;}this.connect(_17a,_17f,_181);}}}var role=_178(_17a,"waiRole");if(role){dijit.setWaiRole(_17a,role);}var _183=_178(_17a,"waiState");if(_183){dojo.forEach(_183.split(/\s*,\s*/),function(_184){if(_184.indexOf("-")!=-1){var pair=_184.split("-");dijit.setWaiState(_17a,pair[0],pair[1]);}});}}},startup:function(){dojo.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup){w.startup();}});this.inherited(arguments);},destroyRendering:function(){dojo.forEach(this._attachPoints,function(_185){delete this[_185];},this);this._attachPoints=[];this.inherited(arguments);}});dijit._Templated._templateCache={};dijit._Templated.getCachedTemplate=function(_186,_187,_188){var _189=dijit._Templated._templateCache;var key=_187||_186;var _18a=_189[key];if(_18a){try{if(!_18a.ownerDocument||_18a.ownerDocument==dojo.doc){return _18a;}}catch(e){}dojo.destroy(_18a);}if(!_187){_187=dojo.cache(_186,{sanitize:true});}_187=dojo.string.trim(_187);if(_188||_187.match(/\$\{([^\}]+)\}/g)){return (_189[key]=_187);}else{var node=dojo._toDom(_187);if(node.nodeType!=1){throw new Error("Invalid template: "+_187);}return (_189[key]=node);}};if(dojo.isIE){dojo.addOnWindowUnload(function(){var _18b=dijit._Templated._templateCache;for(var key in _18b){var _18c=_18b[key];if(typeof _18c=="object"){dojo.destroy(_18c);}delete _18b[key];}});}dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""});}if(!dojo._hasResource["dijit._Container"]){dojo._hasResource["dijit._Container"]=true;dojo.provide("dijit._Container");dojo.declare("dijit._Container",null,{isContainer:true,buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_18d,_18e){var _18f=this.containerNode;if(_18e&&typeof _18e=="number"){var _190=this.getChildren();if(_190&&_190.length>=_18e){_18f=_190[_18e-1].domNode;_18e="after";}}dojo.place(_18d.domNode,_18f,_18e);if(this._started&&!_18d._started){_18d.startup();}},removeChild:function(_191){if(typeof _191=="number"&&_191>0){_191=this.getChildren()[_191];}if(_191){var node=_191.domNode;if(node&&node.parentNode){node.parentNode.removeChild(node);}}},hasChildren:function(){return this.getChildren().length>0;},destroyDescendants:function(_192){dojo.forEach(this.getChildren(),function(_193){_193.destroyRecursive(_192);});},_getSiblingOfChild:function(_194,dir){var node=_194.domNode,_195=(dir>0?"nextSibling":"previousSibling");do{node=node[_195];}while(node&&(node.nodeType!=1||!dijit.byNode(node)));return node&&dijit.byNode(node);},getIndexOfChild:function(_196){return dojo.indexOf(this.getChildren(),_196);},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_197){_197.startup();});this.inherited(arguments);}});}if(!dojo._hasResource["dijit._Contained"]){dojo._hasResource["dijit._Contained"]=true;dojo.provide("dijit._Contained");dojo.declare("dijit._Contained",null,{getParent:function(){var _198=dijit.getEnclosingWidget(this.domNode.parentNode);return _198&&_198.isContainer?_198:null;},_getSibling:function(_199){var node=this.domNode;do{node=node[_199+"Sibling"];}while(node&&node.nodeType!=1);return node&&dijit.byNode(node);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild){return -1;}return p.getIndexOfChild(this);}});}if(!dojo._hasResource["dijit.layout._LayoutWidget"]){dojo._hasResource["dijit.layout._LayoutWidget"]=true;dojo.provide("dijit.layout._LayoutWidget");dojo.declare("dijit.layout._LayoutWidget",[dijit._Widget,dijit._Container,dijit._Contained],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,postCreate:function(){dojo.addClass(this.domNode,"dijitContainer");this.inherited(arguments);},startup:function(){if(this._started){return;}this.inherited(arguments);var _19a=this.getParent&&this.getParent();if(!(_19a&&_19a.isLayoutContainer)){this.resize();this.connect(dojo.isIE?this.domNode:dojo.global,"onresize",function(){this.resize();});}},resize:function(_19b,_19c){var node=this.domNode;if(_19b){dojo.marginBox(node,_19b);if(_19b.t){node.style.top=_19b.t+"px";}if(_19b.l){node.style.left=_19b.l+"px";}}var mb=_19c||{};dojo.mixin(mb,_19b||{});if(!("h" in mb)||!("w" in mb)){mb=dojo.mixin(dojo.marginBox(node),mb);}var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var be=dojo._getBorderExtents(node,cs);var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)});var pe=dojo._getPadExtents(node,cs);this._contentBox={l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(_19d){dojo.addClass(_19d.domNode,this.baseClass+"-child");if(_19d.baseClass){dojo.addClass(_19d.domNode,this.baseClass+"-"+_19d.baseClass);}},addChild:function(_19e,_19f){this.inherited(arguments);if(this._started){this._setupChild(_19e);}},removeChild:function(_1a0){dojo.removeClass(_1a0.domNode,this.baseClass+"-child");if(_1a0.baseClass){dojo.removeClass(_1a0.domNode,this.baseClass+"-"+_1a0.baseClass);}this.inherited(arguments);}});dijit.layout.marginBox2contentBox=function(node,mb){var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var pb=dojo._getPadBorderExtents(node,cs);return {l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};(function(){var _1a1=function(word){return word.substring(0,1).toUpperCase()+word.substring(1);};var size=function(_1a2,dim){_1a2.resize?_1a2.resize(dim):dojo.marginBox(_1a2.domNode,dim);dojo.mixin(_1a2,dojo.marginBox(_1a2.domNode));dojo.mixin(_1a2,dim);};dijit.layout.layoutChildren=function(_1a3,dim,_1a4){dim=dojo.mixin({},dim);dojo.addClass(_1a3,"dijitLayoutContainer");_1a4=dojo.filter(_1a4,function(item){return item.layoutAlign!="client";}).concat(dojo.filter(_1a4,function(item){return item.layoutAlign=="client";}));dojo.forEach(_1a4,function(_1a5){var elm=_1a5.domNode,pos=_1a5.layoutAlign;var _1a6=elm.style;_1a6.left=dim.l+"px";_1a6.top=dim.t+"px";_1a6.bottom=_1a6.right="auto";dojo.addClass(elm,"dijitAlign"+_1a1(pos));if(pos=="top"||pos=="bottom"){size(_1a5,{w:dim.w});dim.h-=_1a5.h;if(pos=="top"){dim.t+=_1a5.h;}else{_1a6.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){size(_1a5,{h:dim.h});dim.w-=_1a5.w;if(pos=="left"){dim.l+=_1a5.w;}else{_1a6.left=dim.l+dim.w+"px";}}else{if(pos=="client"){size(_1a5,dim);}}}});};})();}if(!dojo._hasResource["dijit._CssStateMixin"]){dojo._hasResource["dijit._CssStateMixin"]=true;dojo.provide("dijit._CssStateMixin");dojo.declare("dijit._CssStateMixin",[],{cssStateNodes:{},postCreate:function(){this.inherited(arguments);dojo.forEach(["onmouseenter","onmouseleave","onmousedown"],function(e){this.connect(this.domNode,e,"_cssMouseEvent");},this);this.connect(this,"set",function(name,_1a7){if(arguments.length>=2&&{disabled:true,readOnly:true,checked:true,selected:true}[name]){this._setStateClass();}});dojo.forEach(["_onFocus","_onBlur"],function(ap){this.connect(this,ap,"_setStateClass");},this);for(var ap in this.cssStateNodes){this._trackMouseState(this[ap],this.cssStateNodes[ap]);}this._setStateClass();},_cssMouseEvent:function(_1a8){if(!this.disabled){switch(_1a8.type){case "mouseenter":case "mouseover":this._hovering=true;this._active=this._mouseDown;break;case "mouseleave":case "mouseout":this._hovering=false;this._active=false;break;case "mousedown":this._active=true;this._mouseDown=true;var _1a9=this.connect(dojo.body(),"onmouseup",function(){this._active=false;this._mouseDown=false;this._setStateClass();this.disconnect(_1a9);});break;}this._setStateClass();}},_setStateClass:function(){var _1aa=this.baseClass.split(" ");function _1ab(_1ac){_1aa=_1aa.concat(dojo.map(_1aa,function(c){return c+_1ac;}),"dijit"+_1ac);};if(!this.isLeftToRight()){_1ab("Rtl");}if(this.checked){_1ab("Checked");}if(this.state){_1ab(this.state);}if(this.selected){_1ab("Selected");}if(this.disabled){_1ab("Disabled");}else{if(this.readOnly){_1ab("ReadOnly");}else{if(this._active){_1ab("Active");}else{if(this._hovering){_1ab("Hover");}}}}if(this._focused){_1ab("Focused");}var tn=this.stateNode||this.domNode,_1ad={};dojo.forEach(tn.className.split(" "),function(c){_1ad[c]=true;});if("_stateClasses" in this){dojo.forEach(this._stateClasses,function(c){delete _1ad[c];});}dojo.forEach(_1aa,function(c){_1ad[c]=true;});var _1ae=[];for(var c in _1ad){_1ae.push(c);}tn.className=_1ae.join(" ");this._stateClasses=_1aa;},_trackMouseState:function(node,_1af){var _1b0=false,_1b1=false,_1b2=false;var self=this,cn=dojo.hitch(this,"connect",node);function _1b3(){var _1b4=("disabled" in self&&self.disabled)||("readonly" in self&&self.readonly);dojo.toggleClass(node,_1af+"Hover",_1b0&&!_1b1&&!_1b4);dojo.toggleClass(node,_1af+"Active",_1b1&&!_1b4);dojo.toggleClass(node,_1af+"Focused",_1b2&&!_1b4);};cn("onmouseenter",function(){_1b0=true;_1b3();});cn("onmouseleave",function(){_1b0=false;_1b1=false;_1b3();});cn("onmousedown",function(){_1b1=true;_1b3();});cn("onmouseup",function(){_1b1=false;_1b3();});cn("onfocus",function(){_1b2=true;_1b3();});cn("onblur",function(){_1b2=false;_1b3();});this.connect(this,"set",function(name,_1b5){if(name=="disabled"||name=="readOnly"){_1b3();}});}});}if(!dojo._hasResource["dijit.form._FormWidget"]){dojo._hasResource["dijit.form._FormWidget"]=true;dojo.provide("dijit.form._FormWidget");dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:false,intermediateChanges:false,scrollOnFocus:true,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{value:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode",title:"focusNode"}),postMixInProperties:function(){this.nameAttrSetting=this.name?("name=\""+this.name.replace(/'/g,""")+"\""):"";this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousedown","_onMouseDown");},_setDisabledAttr:function(_1b6){this.disabled=_1b6;dojo.attr(this.focusNode,"disabled",_1b6);if(this.valueNode){dojo.attr(this.valueNode,"disabled",_1b6);}dijit.setWaiState(this.focusNode,"disabled",_1b6);if(_1b6){this._hovering=false;this._active=false;var _1b7="tabIndex" in this.attributeMap?this.attributeMap.tabIndex:"focusNode";dojo.forEach(dojo.isArray(_1b7)?_1b7:[_1b7],function(_1b8){var node=this[_1b8];if(dojo.isWebKit||dijit.hasDefaultTabStop(node)){node.setAttribute("tabIndex","-1");}else{node.removeAttribute("tabIndex");}},this);}else{this.focusNode.setAttribute("tabIndex",this.tabIndex);}},setDisabled:function(_1b9){dojo.deprecated("setDisabled("+_1b9+") is deprecated. Use set('disabled',"+_1b9+") instead.","","2.0");this.set("disabled",_1b9);},_onFocus:function(e){if(this.scrollOnFocus){dojo.window.scrollIntoView(this.domNode);}this.inherited(arguments);},isFocusable:function(){return !this.disabled&&!this.readOnly&&this.focusNode&&(dojo.style(this.domNode,"display")!="none");},focus:function(){dijit.focus(this.focusNode);},compare:function(val1,val2){if(typeof val1=="number"&&typeof val2=="number"){return (isNaN(val1)&&isNaN(val2))?0:val1-val2;}else{if(val1>val2){return 1;}else{if(val1<val2){return -1;}else{return 0;}}}},onChange:function(_1ba){},_onChangeActive:false,_handleOnChange:function(_1bb,_1bc){this._lastValue=_1bb;if(this._lastValueReported==undefined&&(_1bc===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=_1bb;}if((this.intermediateChanges||_1bc||_1bc===undefined)&&((typeof _1bb!=typeof this._lastValueReported)||this.compare(_1bb,this._lastValueReported)!=0)){this._lastValueReported=_1bb;if(this._onChangeActive){if(this._onChangeHandle){clearTimeout(this._onChangeHandle);}this._onChangeHandle=setTimeout(dojo.hitch(this,function(){this._onChangeHandle=null;this.onChange(_1bb);}),0);}}},create:function(){this.inherited(arguments);this._onChangeActive=true;},destroy:function(){if(this._onChangeHandle){clearTimeout(this._onChangeHandle);this.onChange(this._lastValueReported);}this.inherited(arguments);},setValue:function(_1bd){dojo.deprecated("dijit.form._FormWidget:setValue("+_1bd+") is deprecated. Use set('value',"+_1bd+") instead.","","2.0");this.set("value",_1bd);},getValue:function(){dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_onMouseDown:function(e){if(!e.ctrlKey&&this.isFocusable()){var _1be=this.connect(dojo.body(),"onmouseup",function(){if(this.isFocusable()){this.focus();}this.disconnect(_1be);});}}});dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"",readOnly:"focusNode"}),_setReadOnlyAttr:function(_1bf){this.readOnly=_1bf;dojo.attr(this.focusNode,"readOnly",_1bf);dijit.setWaiState(this.focusNode,"readonly",_1bf);},postCreate:function(){this.inherited(arguments);if(dojo.isIE){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}if(this._resetValue===undefined){this._resetValue=this.value;}},_setValueAttr:function(_1c0,_1c1){this.value=_1c0;this._handleOnChange(_1c0,_1c1);},_getValueAttr:function(){return this._lastValue;},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_onKeyDown:function(e){if(e.keyCode==dojo.keys.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){var te;if(dojo.isIE){e.preventDefault();te=document.createEventObject();te.keyCode=dojo.keys.ESCAPE;te.shiftKey=e.shiftKey;e.srcElement.fireEvent("onkeypress",te);}}},_layoutHackIE7:function(){if(dojo.isIE==7){var _1c2=this.domNode;var _1c3=_1c2.parentNode;var _1c4=_1c2.firstChild||_1c2;var _1c5=_1c4.style.filter;var _1c6=this;while(_1c3&&_1c3.clientHeight==0){(function ping(){var _1c7=_1c6.connect(_1c3,"onscroll",function(e){_1c6.disconnect(_1c7);_1c4.style.filter=(new Date()).getMilliseconds();setTimeout(function(){_1c4.style.filter=_1c5;},0);});})();_1c3=_1c3.parentNode;}}}});}if(!dojo._hasResource["dijit.dijit"]){dojo._hasResource["dijit.dijit"]=true;dojo.provide("dijit.dijit");}if(!dojo._hasResource["dojo.fx.Toggler"]){dojo._hasResource["dojo.fx.Toggler"]=true;dojo.provide("dojo.fx.Toggler");dojo.declare("dojo.fx.Toggler",null,{node:null,showFunc:dojo.fadeIn,hideFunc:dojo.fadeOut,showDuration:200,hideDuration:200,constructor:function(args){var _1c8=this;dojo.mixin(_1c8,args);_1c8.node=args.node;_1c8._showArgs=dojo.mixin({},args);_1c8._showArgs.node=_1c8.node;_1c8._showArgs.duration=_1c8.showDuration;_1c8.showAnim=_1c8.showFunc(_1c8._showArgs);_1c8._hideArgs=dojo.mixin({},args);_1c8._hideArgs.node=_1c8.node;_1c8._hideArgs.duration=_1c8.hideDuration;_1c8.hideAnim=_1c8.hideFunc(_1c8._hideArgs);dojo.connect(_1c8.showAnim,"beforeBegin",dojo.hitch(_1c8.hideAnim,"stop",true));dojo.connect(_1c8.hideAnim,"beforeBegin",dojo.hitch(_1c8.showAnim,"stop",true));},show:function(_1c9){return this.showAnim.play(_1c9||0);},hide:function(_1ca){return this.hideAnim.play(_1ca||0);}});}if(!dojo._hasResource["dojo.fx"]){dojo._hasResource["dojo.fx"]=true;dojo.provide("dojo.fx");(function(){var d=dojo,_1cb={_fire:function(evt,args){if(this[evt]){this[evt].apply(this,args||[]);}return this;}};var _1cc=function(_1cd){this._index=-1;this._animations=_1cd||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;d.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay){this.duration+=a.delay;}},this);};d.extend(_1cc,{_onAnimate:function(){this._fire("onAnimate",arguments);},_onEnd:function(){d.disconnect(this._onAnimateCtx);d.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length){this._fire("onEnd");}else{this._current=this._animations[++this._index];this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");this._current.play(0,true);}},play:function(_1ce,_1cf){if(!this._current){this._current=this._animations[this._index=0];}if(!_1cf&&this._current.status()=="playing"){return this;}var _1d0=d.connect(this._current,"beforeBegin",this,function(){this._fire("beforeBegin");}),_1d1=d.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arguments);}),_1d2=d.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arguments);d.disconnect(_1d0);d.disconnect(_1d1);d.disconnect(_1d2);});if(this._onAnimateCtx){d.disconnect(this._onAnimateCtx);}this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");if(this._onEndCtx){d.disconnect(this._onEndCtx);}this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");this._current.play.apply(this._current,arguments);return this;},pause:function(){if(this._current){var e=d.connect(this._current,"onPause",this,function(arg){this._fire("onPause",arguments);d.disconnect(e);});this._current.pause();}return this;},gotoPercent:function(_1d3,_1d4){this.pause();var _1d5=this.duration*_1d3;this._current=null;d.some(this._animations,function(a){if(a.duration<=_1d5){this._current=a;return true;}_1d5-=a.duration;return false;});if(this._current){this._current.gotoPercent(_1d5/this._current.duration,_1d4);}return this;},stop:function(_1d6){if(this._current){if(_1d6){for(;this._index+1<this._animations.length;++this._index){this._animations[this._index].stop(true);}this._current=this._animations[this._index];}var e=d.connect(this._current,"onStop",this,function(arg){this._fire("onStop",arguments);d.disconnect(e);});this._current.stop();}return this;},status:function(){return this._current?this._current.status():"stopped";},destroy:function(){if(this._onAnimateCtx){d.disconnect(this._onAnimateCtx);}if(this._onEndCtx){d.disconnect(this._onEndCtx);}}});d.extend(_1cc,_1cb);dojo.fx.chain=function(_1d7){return new _1cc(_1d7);};var _1d8=function(_1d9){this._animations=_1d9||[];this._connects=[];this._finished=0;this.duration=0;d.forEach(_1d9,function(a){var _1da=a.duration;if(a.delay){_1da+=a.delay;}if(this.duration<_1da){this.duration=_1da;}this._connects.push(d.connect(a,"onEnd",this,"_onEnd"));},this);this._pseudoAnimation=new d.Animation({curve:[0,1],duration:this.duration});var self=this;d.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop","onEnd"],function(evt){self._connects.push(d.connect(self._pseudoAnimation,evt,function(){self._fire(evt,arguments);}));});};d.extend(_1d8,{_doAction:function(_1db,args){d.forEach(this._animations,function(a){a[_1db].apply(a,args);});return this;},_onEnd:function(){if(++this._finished>this._animations.length){this._fire("onEnd");}},_call:function(_1dc,args){var t=this._pseudoAnimation;t[_1dc].apply(t,args);},play:function(_1dd,_1de){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this;},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this;},gotoPercent:function(_1df,_1e0){var ms=this.duration*_1df;d.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:(ms/a.duration),_1e0);});this._call("gotoPercent",arguments);return this;},stop:function(_1e1){this._doAction("stop",arguments);this._call("stop",arguments);return this;},status:function(){return this._pseudoAnimation.status();},destroy:function(){d.forEach(this._connects,dojo.disconnect);}});d.extend(_1d8,_1cb);dojo.fx.combine=function(_1e2){return new _1d8(_1e2);};dojo.fx.wipeIn=function(args){var node=args.node=d.byId(args.node),s=node.style,o;var anim=d.animateProperty(d.mixin({properties:{height:{start:function(){o=s.overflow;s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s.height="1px";s.display="";s.visibility="";return 1;}else{var _1e3=d.style(node,"height");return Math.max(_1e3,1);}},end:function(){return node.scrollHeight;}}}},args));d.connect(anim,"onEnd",function(){s.height="auto";s.overflow=o;});return anim;};dojo.fx.wipeOut=function(args){var node=args.node=d.byId(args.node),s=node.style,o;var anim=d.animateProperty(d.mixin({properties:{height:{end:1}}},args));d.connect(anim,"beforeBegin",function(){o=s.overflow;s.overflow="hidden";s.display="";});d.connect(anim,"onEnd",function(){s.overflow=o;s.height="auto";s.display="none";});return anim;};dojo.fx.slideTo=function(args){var node=args.node=d.byId(args.node),top=null,left=null;var init=(function(n){return function(){var cs=d.getComputedStyle(n);var pos=cs.position;top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0);left=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0);if(pos!="absolute"&&pos!="relative"){var ret=d.position(n,true);top=ret.y;left=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=left+"px";}};})(node);init();var anim=d.animateProperty(d.mixin({properties:{top:args.top||0,left:args.left||0}},args));d.connect(anim,"beforeBegin",anim,init);return anim;};})();}if(!dojo._hasResource["dojo.NodeList-fx"]){dojo._hasResource["dojo.NodeList-fx"]=true;dojo.provide("dojo.NodeList-fx");dojo.extend(dojo.NodeList,{_anim:function(obj,_1e4,args){args=args||{};var a=dojo.fx.combine(this.map(function(item){var _1e5={node:item};dojo.mixin(_1e5,args);return obj[_1e4](_1e5);}));return args.auto?a.play()&&this:a;},wipeIn:function(args){return this._anim(dojo.fx,"wipeIn",args);},wipeOut:function(args){return this._anim(dojo.fx,"wipeOut",args);},slideTo:function(args){return this._anim(dojo.fx,"slideTo",args);},fadeIn:function(args){return this._anim(dojo,"fadeIn",args);},fadeOut:function(args){return this._anim(dojo,"fadeOut",args);},animateProperty:function(args){return this._anim(dojo,"animateProperty",args);},anim:function(_1e6,_1e7,_1e8,_1e9,_1ea){var _1eb=dojo.fx.combine(this.map(function(item){return dojo.animateProperty({node:item,properties:_1e6,duration:_1e7||350,easing:_1e8});}));if(_1e9){dojo.connect(_1eb,"onEnd",_1e9);}return _1eb.play(_1ea||0);}});}if(!dojo._hasResource["dojo.colors"]){dojo._hasResource["dojo.colors"]=true;dojo.provide("dojo.colors");(function(){var _1ec=function(m1,m2,h){if(h<0){++h;}if(h>1){--h;}var h6=6*h;if(h6<1){return m1+(m2-m1)*h6;}if(2*h<1){return m2;}if(3*h<2){return m1+(m2-m1)*(2/3-h)*6;}return m1;};dojo.colorFromRgb=function(_1ed,obj){var m=_1ed.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(m){var c=m[2].split(/\s*,\s*/),l=c.length,t=m[1],a;if((t=="rgb"&&l==3)||(t=="rgba"&&l==4)){var r=c[0];if(r.charAt(r.length-1)=="%"){a=dojo.map(c,function(x){return parseFloat(x)*2.56;});if(l==4){a[3]=c[3];}return dojo.colorFromArray(a,obj);}return dojo.colorFromArray(c,obj);}if((t=="hsl"&&l==3)||(t=="hsla"&&l==4)){var H=((parseFloat(c[0])%360)+360)%360/360,S=parseFloat(c[1])/100,L=parseFloat(c[2])/100,m2=L<=0.5?L*(S+1):L+S-L*S,m1=2*L-m2;a=[_1ec(m1,m2,H+1/3)*256,_1ec(m1,m2,H)*256,_1ec(m1,m2,H-1/3)*256,1];if(l==4){a[3]=c[3];}return dojo.colorFromArray(a,obj);}}return null;};var _1ee=function(c,low,high){c=Number(c);return isNaN(c)?high:c<low?low:c>high?high:c;};dojo.Color.prototype.sanitize=function(){var t=this;t.r=Math.round(_1ee(t.r,0,255));t.g=Math.round(_1ee(t.g,0,255));t.b=Math.round(_1ee(t.b,0,255));t.a=_1ee(t.a,0,1);return this;};})();dojo.colors.makeGrey=function(g,a){return dojo.colorFromArray([g,g,g,a]);};dojo.mixin(dojo.Color.named,{aliceblue:[240,248,255],antiquewhite:[250,235,215],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],blanchedalmond:[255,235,205],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],oldlace:[253,245,230],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],thistle:[216,191,216],tomato:[255,99,71],transparent:[0,0,0,0],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],whitesmoke:[245,245,245],yellowgreen:[154,205,50]});}if(!dojo._hasResource["dojo.i18n"]){dojo._hasResource["dojo.i18n"]=true;dojo.provide("dojo.i18n");dojo.i18n.getLocalization=function(_1ef,_1f0,_1f1){_1f1=dojo.i18n.normalizeLocale(_1f1);var _1f2=_1f1.split("-");var _1f3=[_1ef,"nls",_1f0].join(".");var _1f4=dojo._loadedModules[_1f3];if(_1f4){var _1f5;for(var i=_1f2.length;i>0;i--){var loc=_1f2.slice(0,i).join("_");if(_1f4[loc]){_1f5=_1f4[loc];break;}}if(!_1f5){_1f5=_1f4.ROOT;}if(_1f5){var _1f6=function(){};_1f6.prototype=_1f5;return new _1f6();}}throw new Error("Bundle not found: "+_1f0+" in "+_1ef+" , locale="+_1f1);};dojo.i18n.normalizeLocale=function(_1f7){var _1f8=_1f7?_1f7.toLowerCase():dojo.locale;if(_1f8=="root"){_1f8="ROOT";}return _1f8;};dojo.i18n._requireLocalization=function(_1f9,_1fa,_1fb,_1fc){var _1fd=dojo.i18n.normalizeLocale(_1fb);var _1fe=[_1f9,"nls",_1fa].join(".");var _1ff="";if(_1fc){var _200=_1fc.split(",");for(var i=0;i<_200.length;i++){if(_1fd["indexOf"](_200[i])==0){if(_200[i].length>_1ff.length){_1ff=_200[i];}}}if(!_1ff){_1ff="ROOT";}}var _201=_1fc?_1ff:_1fd;var _202=dojo._loadedModules[_1fe];var _203=null;if(_202){if(dojo.config.localizationComplete&&_202._built){return;}var _204=_201.replace(/-/g,"_");var _205=_1fe+"."+_204;_203=dojo._loadedModules[_205];}if(!_203){_202=dojo["provide"](_1fe);var syms=dojo._getModuleSymbols(_1f9);var _206=syms.concat("nls").join("/");var _207;dojo.i18n._searchLocalePath(_201,_1fc,function(loc){var _208=loc.replace(/-/g,"_");var _209=_1fe+"."+_208;var _20a=false;if(!dojo._loadedModules[_209]){dojo["provide"](_209);var _20b=[_206];if(loc!="ROOT"){_20b.push(loc);}_20b.push(_1fa);var _20c=_20b.join("/")+".js";_20a=dojo._loadPath(_20c,null,function(hash){var _20d=function(){};_20d.prototype=_207;_202[_208]=new _20d();for(var j in hash){_202[_208][j]=hash[j];}});}else{_20a=true;}if(_20a&&_202[_208]){_207=_202[_208];}else{_202[_208]=_207;}if(_1fc){return true;}});}if(_1fc&&_1fd!=_1ff){_202[_1fd.replace(/-/g,"_")]=_202[_1ff.replace(/-/g,"_")];}};(function(){var _20e=dojo.config.extraLocale;if(_20e){if(!_20e instanceof Array){_20e=[_20e];}var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,_20f,_210){req(m,b,_20f,_210);if(_20f){return;}for(var i=0;i<_20e.length;i++){req(m,b,_20e[i],_210);}};}})();dojo.i18n._searchLocalePath=function(_211,down,_212){_211=dojo.i18n.normalizeLocale(_211);var _213=_211.split("-");var _214=[];for(var i=_213.length;i>0;i--){_214.push(_213.slice(0,i).join("-"));}_214.push(false);if(down){_214.reverse();}for(var j=_214.length-1;j>=0;j--){var loc=_214[j]||"ROOT";var stop=_212(loc);if(stop){break;}}};dojo.i18n._preloadLocalizations=function(_215,_216){function _217(_218){_218=dojo.i18n.normalizeLocale(_218);dojo.i18n._searchLocalePath(_218,true,function(loc){for(var i=0;i<_216.length;i++){if(_216[i]==loc){dojo["require"](_215+"_"+loc);return true;}}return false;});};_217();var _219=dojo.config.extraLocale||[];for(var i=0;i<_219.length;i++){_217(_219[i]);}};}if(!dojo._hasResource["dijit._PaletteMixin"]){dojo._hasResource["dijit._PaletteMixin"]=true;dojo.provide("dijit._PaletteMixin");dojo.declare("dijit._PaletteMixin",[dijit._CssStateMixin],{defaultTimeout:500,timeoutChangeRate:0.9,value:null,_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:"",_preparePalette:function(_21a,_21b){this._cells=[];var url=this._blankGif;var _21c=dojo.getObject(this.dyeClass);for(var row=0;row<_21a.length;row++){var _21d=dojo.create("tr",{tabIndex:"-1"},this.gridNode);for(var col=0;col<_21a[row].length;col++){var _21e=_21a[row][col];if(_21e){var _21f=new _21c(_21e);var _220=dojo.create("td",{"class":this.cellClass,tabIndex:"-1",title:_21b[_21e]});_21f.fillCell(_220,url);this.connect(_220,"ondijitclick","_onCellClick");this._trackMouseState(_220,this.cellClass);dojo.place(_220,_21d);_220.index=this._cells.length;this._cells.push({node:_220,dye:_21f});}}}this._xDim=_21a[0].length;this._yDim=_21a.length;var _221={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};for(var key in _221){this._connects.push(dijit.typematic.addKeyListener(this.domNode,{charOrCode:dojo.keys[key],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _222=_221[key];return function(_223){this._navigateByKey(_222,_223);};}(),this.timeoutChangeRate,this.defaultTimeout));}},postCreate:function(){this.inherited(arguments);this._setCurrent(this._cells[0].node);},focus:function(){dijit.focus(this._currentFocus);},_onCellClick:function(evt){var _224=evt.currentTarget,_225=this._getDye(_224).getValue();this._setCurrent(_224);setTimeout(dojo.hitch(this,function(){dijit.focus(_224);this._setValueAttr(_225,true);}));dojo.removeClass(_224,"dijitPaletteCellHover");dojo.stopEvent(evt);},_setCurrent:function(node){if("_currentFocus" in this){dojo.attr(this._currentFocus,"tabIndex","-1");}this._currentFocus=node;if(node){dojo.attr(node,"tabIndex",this.tabIndex);}},_setValueAttr:function(_226,_227){this.value=null;if(this._selectedCell>=0){dojo.removeClass(this._cells[this._selectedCell].node,"dijitPaletteCellSelected");}this._selectedCell=-1;if(_226){for(var i=0;i<this._cells.length;i++){if(_226==this._cells[i].dye.getValue()){this._selectedCell=i;this.value=_226;dojo.addClass(this._cells[i].node,"dijitPaletteCellSelected");if(_227||_227===undefined){this.onChange(_226);}break;}}}},onChange:function(_228){},_navigateByKey:function(_229,_22a){if(_22a==-1){return;}var _22b=this._currentFocus.index+_229;if(_22b<this._cells.length&&_22b>-1){var _22c=this._cells[_22b].node;this._setCurrent(_22c);setTimeout(dojo.hitch(dijit,"focus",_22c),0);}},_getDye:function(cell){return this._cells[cell.index].dye;}});}if(!dojo._hasResource["dijit.ColorPalette"]){dojo._hasResource["dijit.ColorPalette"]=true;dojo.provide("dijit.ColorPalette");dojo.declare("dijit.ColorPalette",[dijit._Widget,dijit._Templated,dijit._PaletteMixin],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},_imagePaths:{"7x10":dojo.moduleUrl("dijit.themes","a11y/colors7x10.png"),"3x4":dojo.moduleUrl("dijit.themes","a11y/colors3x4.png"),"7x10-rtl":dojo.moduleUrl("dijit.themes","a11y/colors7x10-rtl.png"),"3x4-rtl":dojo.moduleUrl("dijit.themes","a11y/colors3x4-rtl.png")},templateString:dojo.cache("dijit","templates/ColorPalette.html","<div class=\"dijitInline dijitColorPalette\">\n\t<img class=\"dijitColorPaletteUnder\" dojoAttachPoint=\"imageNode\" waiRole=\"presentation\" alt=\"\"/>\n\t<table class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\">\n\t\t<tbody dojoAttachPoint=\"gridNode\"></tbody>\n\t</table>\n</div>\n"),baseClass:"dijitColorPalette",dyeClass:"dijit._Color",buildRendering:function(){this.inherited(arguments);this.imageNode.setAttribute("src",this._imagePaths[this.palette+(this.isLeftToRight()?"":"-rtl")].toString());var _22d=dojo.i18n.getLocalization("dojo","colors",this.lang);this._preparePalette(this._palettes[this.palette],_22d);}});dojo.declare("dijit._Color",dojo.Color,{constructor:function(_22e){this._alias=_22e;this.setColor(dojo.Color.named[_22e]);},getValue:function(){return this.toHex();},fillCell:function(cell,_22f){dojo.create("img",{src:_22f,"class":"dijitPaletteImg",alt:this._alias},cell);}});}if(!dojo._hasResource["dojo.dnd.common"]){dojo._hasResource["dojo.dnd.common"]=true;dojo.provide("dojo.dnd.common");dojo.dnd.getCopyKeyState=dojo.isCopyKey;dojo.dnd._uniqueId=0;dojo.dnd.getUniqueId=function(){var id;do{id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId);}while(dojo.byId(id));return id;};dojo.dnd._empty={};dojo.dnd.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};}if(!dojo._hasResource["dojo.dnd.autoscroll"]){dojo._hasResource["dojo.dnd.autoscroll"]=true;dojo.provide("dojo.dnd.autoscroll");dojo.dnd.getViewport=function(){var d=dojo.doc,dd=d.documentElement,w=window,b=dojo.body();if(dojo.isMozilla){return {w:dd.clientWidth,h:w.innerHeight};}else{if(!dojo.isOpera&&w.innerWidth){return {w:w.innerWidth,h:w.innerHeight};}else{if(!dojo.isOpera&&dd&&dd.clientWidth){return {w:dd.clientWidth,h:dd.clientHeight};}else{if(b.clientWidth){return {w:b.clientWidth,h:b.clientHeight};}}}}return null;};dojo.dnd.V_TRIGGER_AUTOSCROLL=32;dojo.dnd.H_TRIGGER_AUTOSCROLL=32;dojo.dnd.V_AUTOSCROLL_VALUE=16;dojo.dnd.H_AUTOSCROLL_VALUE=16;dojo.dnd.autoScroll=function(e){var v=dojo.dnd.getViewport(),dx=0,dy=0;if(e.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=-dojo.dnd.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=dojo.dnd.H_AUTOSCROLL_VALUE;}}if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=-dojo.dnd.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=dojo.dnd.V_AUTOSCROLL_VALUE;}}window.scrollBy(dx,dy);};dojo.dnd._validNodes={"div":1,"p":1,"td":1};dojo.dnd._validOverflow={"auto":1,"scroll":1};dojo.dnd.autoScrollNodes=function(e){for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in dojo.dnd._validNodes)){var s=dojo.getComputedStyle(n);if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){var b=dojo._getContentBox(n,s),t=dojo.position(n,true);var w=Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL,b.w/2),h=Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL,b.h/2),rx=e.pageX-t.x,ry=e.pageY-t.y,dx=0,dy=0;if(dojo.isWebKit||dojo.isOpera){rx+=dojo.body().scrollLeft,ry+=dojo.body().scrollTop;}if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else{if(rx>b.w-w){dx=w;}}}if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else{if(ry>b.h-h){dy=h;}}}var _230=n.scrollLeft,_231=n.scrollTop;n.scrollLeft=n.scrollLeft+dx;n.scrollTop=n.scrollTop+dy;if(_230!=n.scrollLeft||_231!=n.scrollTop){return;}}}try{n=n.parentNode;}catch(x){n=null;}}dojo.dnd.autoScroll(e);};}if(!dojo._hasResource["dojo.dnd.Mover"]){dojo._hasResource["dojo.dnd.Mover"]=true;dojo.provide("dojo.dnd.Mover");dojo.declare("dojo.dnd.Mover",null,{constructor:function(node,e,host){this.node=dojo.byId(node);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=this.host=host,d=node.ownerDocument,_232=dojo.connect(d,"onmousemove",this,"onFirstMove");this.events=[dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"onMouseUp"),dojo.connect(d,"ondragstart",dojo.stopEvent),dojo.connect(d.body,"onselectstart",dojo.stopEvent),_232];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e);dojo.stopEvent(e);},onMouseUp:function(e){if(dojo.isWebKit&&dojo.isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}dojo.stopEvent(e);},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||0;break;default:s.position="absolute";var m=dojo.marginBox(this.node);var b=dojo.doc.body;var bs=dojo.getComputedStyle(b);var bm=dojo._getMarginBox(b,bs);var bc=dojo._getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this,e);}dojo.disconnect(this.events.pop());},destroy:function(){dojo.forEach(this.events,dojo.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});}if(!dojo._hasResource["dojo.dnd.Moveable"]){dojo._hasResource["dojo.dnd.Moveable"]=true;dojo.provide("dojo.dnd.Moveable");dojo.declare("dojo.dnd.Moveable",null,{handle:"",delay:0,skip:false,constructor:function(node,_233){this.node=dojo.byId(node);if(!_233){_233={};}this.handle=_233.handle?dojo.byId(_233.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_233.delay>0?_233.delay:0;this.skip=_233.skip;this.mover=_233.mover?_233.mover:dojo.dnd.Mover;this.events=[dojo.connect(this.handle,"onmousedown",this,"onMouseDown"),dojo.connect(this.handle,"ondragstart",this,"onSelectStart"),dojo.connect(this.handle,"onselectstart",this,"onSelectStart")];},markupFactory:function(_234,node){return new dojo.dnd.Moveable(node,_234);},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&dojo.dnd.isFormElement(e)){return;}if(this.delay){this.events.push(dojo.connect(this.handle,"onmousemove",this,"onMouseMove"),dojo.connect(this.handle,"onmouseup",this,"onMouseUp"));this._lastX=e.pageX;this._lastY=e.pageY;}else{this.onDragDetected(e);}dojo.stopEvent(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}dojo.stopEvent(e);},onMouseUp:function(e){for(var i=0;i<2;++i){dojo.disconnect(this.events.pop());}dojo.stopEvent(e);},onSelectStart:function(e){if(!this.skip||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(_235){dojo.publish("/dnd/move/start",[_235]);dojo.addClass(dojo.body(),"dojoMove");dojo.addClass(this.node,"dojoMoveItem");},onMoveStop:function(_236){dojo.publish("/dnd/move/stop",[_236]);dojo.removeClass(dojo.body(),"dojoMove");dojo.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(_237,e){},onMove:function(_238,_239,e){this.onMoving(_238,_239);var s=_238.node.style;s.left=_239.l+"px";s.top=_239.t+"px";this.onMoved(_238,_239);},onMoving:function(_23a,_23b){},onMoved:function(_23c,_23d){}});}if(!dojo._hasResource["dojo.dnd.move"]){dojo._hasResource["dojo.dnd.move"]=true;dojo.provide("dojo.dnd.move");dojo.declare("dojo.dnd.move.constrainedMoveable",dojo.dnd.Moveable,{constraints:function(){},within:false,markupFactory:function(_23e,node){return new dojo.dnd.move.constrainedMoveable(node,_23e);},constructor:function(node,_23f){if(!_23f){_23f={};}this.constraints=_23f.constraints;this.within=_23f.within;},onFirstMove:function(_240){var c=this.constraintBox=this.constraints.call(this,_240);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=dojo.marginBox(_240.node);c.r-=mb.w;c.b-=mb.h;}},onMove:function(_241,_242){var c=this.constraintBox,s=_241.node.style;s.left=(_242.l<c.l?c.l:c.r<_242.l?c.r:_242.l)+"px";s.top=(_242.t<c.t?c.t:c.b<_242.t?c.b:_242.t)+"px";}});dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_243,node){return new dojo.dnd.move.boxConstrainedMoveable(node,_243);},constructor:function(node,_244){var box=_244&&_244.box;this.constraints=function(){return box;};}});dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_245,node){return new dojo.dnd.move.parentConstrainedMoveable(node,_245);},constructor:function(node,_246){var area=_246&&_246.area;this.constraints=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(area=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});dojo.dnd.move.constrainedMover=function(fun,_247){dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead");var _248=function(node,e,_249){dojo.dnd.Mover.call(this,node,e,_249);};dojo.extend(_248,dojo.dnd.Mover.prototype);dojo.extend(_248,{onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox,c=this.constraintBox,l=m.l+e.pageX,t=m.t+e.pageY;l=l<c.l?c.l:c.r<l?c.r:l;t=t<c.t?c.t:c.b<t?c.b:t;this.host.onMove(this,{l:l,t:t});},onFirstMove:function(){dojo.dnd.Mover.prototype.onFirstMove.call(this);var c=this.constraintBox=fun.call(this);c.r=c.l+c.w;c.b=c.t+c.h;if(_247){var mb=dojo.marginBox(this.node);c.r-=mb.w;c.b-=mb.h;}}});return _248;};dojo.dnd.move.boxConstrainedMover=function(box,_24a){dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead");return dojo.dnd.move.constrainedMover(function(){return box;},_24a);};dojo.dnd.move.parentConstrainedMover=function(area,_24b){dojo.deprecated("dojo.dnd.move.parentConstrainedMover, use dojo.dnd.move.parentConstrainedMoveable instead");var fun=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(area=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};return dojo.dnd.move.constrainedMover(fun,_24b);};dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover;dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover;dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover;}if(!dojo._hasResource["dojo.dnd.TimedMoveable"]){dojo._hasResource["dojo.dnd.TimedMoveable"]=true;dojo.provide("dojo.dnd.TimedMoveable");(function(){var _24c=dojo.dnd.Moveable.prototype.onMove;dojo.declare("dojo.dnd.TimedMoveable",dojo.dnd.Moveable,{timeout:40,constructor:function(node,_24d){if(!_24d){_24d={};}if(_24d.timeout&&typeof _24d.timeout=="number"&&_24d.timeout>=0){this.timeout=_24d.timeout;}},markupFactory:function(_24e,node){return new dojo.dnd.TimedMoveable(node,_24e);},onMoveStop:function(_24f){if(_24f._timer){clearTimeout(_24f._timer);_24c.call(this,_24f,_24f._leftTop);}dojo.dnd.Moveable.prototype.onMoveStop.apply(this,arguments);},onMove:function(_250,_251){_250._leftTop=_251;if(!_250._timer){var _252=this;_250._timer=setTimeout(function(){_250._timer=null;_24c.call(_252,_250,_250._leftTop);},this.timeout);}}});})();}if(!dojo._hasResource["dijit.form._FormMixin"]){dojo._hasResource["dijit.form._FormMixin"]=true;dojo.provide("dijit.form._FormMixin");dojo.declare("dijit.form._FormMixin",null,{reset:function(){dojo.forEach(this.getDescendants(),function(_253){if(_253.reset){_253.reset();}});},validate:function(){var _254=false;return dojo.every(dojo.map(this.getDescendants(),function(_255){_255._hasBeenBlurred=true;var _256=_255.disabled||!_255.validate||_255.validate();if(!_256&&!_254){dojo.window.scrollIntoView(_255.containerNode||_255.domNode);_255.focus();_254=true;}return _256;}),function(item){return item;});},setValues:function(val){dojo.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(obj){var map={};dojo.forEach(this.getDescendants(),function(_257){if(!_257.name){return;}var _258=map[_257.name]||(map[_257.name]=[]);_258.push(_257);});for(var name in map){if(!map.hasOwnProperty(name)){continue;}var _259=map[name],_25a=dojo.getObject(name,false,obj);if(_25a===undefined){continue;}if(!dojo.isArray(_25a)){_25a=[_25a];}if(typeof _259[0].checked=="boolean"){dojo.forEach(_259,function(w,i){w.set("value",dojo.indexOf(_25a,w.value)!=-1);});}else{if(_259[0].multiple){_259[0].set("value",_25a);}else{dojo.forEach(_259,function(w,i){w.set("value",_25a[i]);});}}}},getValues:function(){dojo.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_getValueAttr:function(){var obj={};dojo.forEach(this.getDescendants(),function(_25b){var name=_25b.name;if(!name||_25b.disabled){return;}var _25c=_25b.get("value");if(typeof _25b.checked=="boolean"){if(/Radio/.test(_25b.declaredClass)){if(_25c!==false){dojo.setObject(name,_25c,obj);}else{_25c=dojo.getObject(name,false,obj);if(_25c===undefined){dojo.setObject(name,null,obj);}}}else{var ary=dojo.getObject(name,false,obj);if(!ary){ary=[];dojo.setObject(name,ary,obj);}if(_25c!==false){ary.push(_25c);}}}else{var prev=dojo.getObject(name,false,obj);if(typeof prev!="undefined"){if(dojo.isArray(prev)){prev.push(_25c);}else{dojo.setObject(name,[prev,_25c],obj);}}else{dojo.setObject(name,_25c,obj);}}});return obj;},isValid:function(){this._invalidWidgets=dojo.filter(this.getDescendants(),function(_25d){return !_25d.disabled&&_25d.isValid&&!_25d.isValid();});return !this._invalidWidgets.length;},onValidStateChange:function(_25e){},_widgetChange:function(_25f){var _260=this._lastValidState;if(!_25f||this._lastValidState===undefined){_260=this.isValid();if(this._lastValidState===undefined){this._lastValidState=_260;}}else{if(_25f.isValid){this._invalidWidgets=dojo.filter(this._invalidWidgets||[],function(w){return (w!=_25f);},this);if(!_25f.isValid()&&!_25f.get("disabled")){this._invalidWidgets.push(_25f);}_260=(this._invalidWidgets.length===0);}}if(_260!==this._lastValidState){this._lastValidState=_260;this.onValidStateChange(_260);}},connectChildren:function(){dojo.forEach(this._changeConnections,dojo.hitch(this,"disconnect"));var _261=this;var _262=(this._changeConnections=[]);dojo.forEach(dojo.filter(this.getDescendants(),function(item){return item.validate;}),function(_263){_262.push(_261.connect(_263,"validate",dojo.hitch(_261,"_widgetChange",_263)));_262.push(_261.connect(_263,"_setDisabledAttr",dojo.hitch(_261,"_widgetChange",_263)));});this._widgetChange(null);},startup:function(){this.inherited(arguments);this._changeConnections=[];this.connectChildren();}});}if(!dojo._hasResource["dijit._DialogMixin"]){dojo._hasResource["dijit._DialogMixin"]=true;dojo.provide("dijit._DialogMixin");dojo.declare("dijit._DialogMixin",null,{attributeMap:dijit._Widget.prototype.attributeMap,execute:function(_264){},onCancel:function(){},onExecute:function(){},_onSubmit:function(){this.onExecute();this.execute(this.get("value"));},_getFocusItems:function(_265){var _266=dijit._getTabNavigable(dojo.byId(_265));this._firstFocusItem=_266.lowest||_266.first||_265;this._lastFocusItem=_266.last||_266.highest||this._firstFocusItem;if(dojo.isMoz&&this._firstFocusItem.tagName.toLowerCase()=="input"&&dojo.getNodeProp(this._firstFocusItem,"type").toLowerCase()=="file"){dojo.attr(_265,"tabIndex","0");this._firstFocusItem=_265;}}});}if(!dojo._hasResource["dijit.DialogUnderlay"]){dojo._hasResource["dijit.DialogUnderlay"]=true;dojo.provide("dijit.DialogUnderlay");dojo.declare("dijit.DialogUnderlay",[dijit._Widget,dijit._Templated],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' dojoAttachPoint='node'></div></div>",dialogId:"","class":"",attributeMap:{id:"domNode"},_setDialogIdAttr:function(id){dojo.attr(this.node,"id",id+"_underlay");},_setClassAttr:function(_267){this.node.className="dijitDialogUnderlay "+_267;},postCreate:function(){dojo.body().appendChild(this.domNode);},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var _268=dojo.window.getBox();os.top=_268.t+"px";os.left=_268.l+"px";is.width=_268.w+"px";is.height=_268.h+"px";os.display="block";},show:function(){this.domNode.style.display="block";this.layout();this.bgIframe=new dijit.BackgroundIframe(this.domNode);},hide:function(){this.bgIframe.destroy();this.domNode.style.display="none";},uninitialize:function(){if(this.bgIframe){this.bgIframe.destroy();}this.inherited(arguments);}});}if(!dojo._hasResource["dojo.html"]){dojo._hasResource["dojo.html"]=true;dojo.provide("dojo.html");(function(){var _269=0,d=dojo;dojo.html._secureForInnerHtml=function(cont){return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};dojo.html._emptyNode=dojo.empty;dojo.html._setNodeContent=function(node,cont){d.empty(node);if(cont){if(typeof cont=="string"){cont=d._toDom(cont,node.ownerDocument);}if(!cont.nodeType&&d.isArrayLike(cont)){for(var _26a=cont.length,i=0;i<cont.length;i=_26a==cont.length?i+1:0){d.place(cont[i],node,"last");}}else{d.place(cont,node,"last");}}return node;};dojo.declare("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,constructor:function(_26b,node){dojo.mixin(this,_26b||{});node=this.node=dojo.byId(this.node||node);if(!this.id){this.id=["Setter",(node)?node.id||node.tagName:"",_269++].join("_");}},set:function(cont,_26c){if(undefined!==cont){this.content=cont;}if(_26c){this._mixin(_26c);}this.onBegin();this.setContent();this.onEnd();return this.node;},setContent:function(){var node=this.node;if(!node){throw new Error(this.declaredClass+": setContent given no node");}try{node=dojo.html._setNodeContent(node,this.content);}catch(e){var _26d=this.onContentError(e);try{node.innerHTML=_26d;}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);}}this.node=node;},empty:function(){if(this.parseResults&&this.parseResults.length){dojo.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}dojo.html._emptyNode(this.node);},onBegin:function(){var cont=this.content;if(dojo.isString(cont)){if(this.cleanContent){cont=dojo.html._secureForInnerHtml(cont);}if(this.extractContent){var _26e=cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_26e){cont=_26e[1];}}}this.empty();this.content=cont;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}return this.node;},tearDown:function(){delete this.parseResults;delete this.node;delete this.content;},onContentError:function(err){return "Error occured setting content: "+err;},_mixin:function(_26f){var _270={},key;for(key in _26f){if(key in _270){continue;}this[key]=_26f[key];}},_parse:function(){var _271=this.node;try{this.parseResults=dojo.parser.parse({rootNode:_271,dir:this.dir,lang:this.lang});}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(type,err,_272){var _273=this["on"+type+"Error"].call(this,err);if(_272){console.error(_272,err);}else{if(_273){dojo.html._setNodeContent(this.node,_273,true);}}}});dojo.html.set=function(node,cont,_274){if(undefined==cont){console.warn("dojo.html.set: no cont argument provided, using empty string");cont="";}if(!_274){return dojo.html._setNodeContent(node,cont,true);}else{var op=new dojo.html._ContentSetter(dojo.mixin(_274,{content:cont,node:node}));return op.set();}};})();}if(!dojo._hasResource["dijit.layout.ContentPane"]){dojo._hasResource["dijit.layout.ContentPane"]=true;dojo.provide("dijit.layout.ContentPane");dojo.declare("dijit.layout.ContentPane",dijit._Widget,{href:"",extractContent:false,parseOnLoad:true,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",doLayout:true,ioArgs:{},isContainer:true,isLayoutContainer:true,onLoadDeferred:null,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[]}),postMixInProperties:function(){this.inherited(arguments);var _275=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,_275);this.errorMessage=dojo.string.substitute(this.errorMessage,_275);if(!this.href&&this.srcNodeRef&&this.srcNodeRef.innerHTML){this.isLoaded=true;}},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},postCreate:function(){this.domNode.title="";if(!dojo.attr(this.domNode,"role")){dijit.setWaiRole(this.domNode,"group");}dojo.addClass(this.domNode,this.baseClass);},startup:function(){if(this._started){return;}var _276=dijit._Contained.prototype.getParent.call(this);this._childOfLayoutWidget=_276&&_276.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;if(this.isLoaded){dojo.forEach(this.getChildren(),function(_277){_277.startup();});}if(this._isShown()||this.preload){this._onShow();}this.inherited(arguments);},_checkIfSingleChild:function(){var _278=dojo.query("> *",this.containerNode).filter(function(node){return node.tagName!=="SCRIPT";}),_279=_278.filter(function(node){return dojo.hasAttr(node,"dojoType")||dojo.hasAttr(node,"widgetId");}),_27a=dojo.filter(_279.map(dijit.byNode),function(_27b){return _27b&&_27b.domNode&&_27b.resize;});if(_278.length==_279.length&&_27a.length==1){this._singleChild=_27a[0];}else{delete this._singleChild;}dojo.toggleClass(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);},setHref:function(href){dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0");return this.set("href",href);},_setHrefAttr:function(href){this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this.href=href;if(this._created&&(this.preload||this._isShown())){this._load();}else{this._hrefChanged=true;}return this.onLoadDeferred;},setContent:function(data){dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.","","2.0");this.set("content",data);},_setContentAttr:function(data){this.href="";this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this._setContent(data||"");this._isDownloaded=false;return this.onLoadDeferred;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;this.onLoadDeferred=null;},uninitialize:function(){if(this._beingDestroyed){this.cancel();}this.inherited(arguments);},destroyRecursive:function(_27c){if(this._beingDestroyed){return;}this.inherited(arguments);},resize:function(_27d,_27e){if(!this._wasShown){this._onShow();}this._resizeCalled=true;if(_27d){dojo.marginBox(this.domNode,_27d);}var cn=this.containerNode;if(cn===this.domNode){var mb=_27e||{};dojo.mixin(mb,_27d||{});if(!("h" in mb)||!("w" in mb)){mb=dojo.mixin(dojo.marginBox(cn),mb);}this._contentBox=dijit.layout.marginBox2contentBox(cn,mb);}else{this._contentBox=dojo.contentBox(cn);}this._layoutChildren();},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open" in this){return this.open;}return this._resizeCalled;}else{if("open" in this){return this.open;}else{var node=this.domNode;return (node.style.display!="none")&&(node.style.visibility!="hidden")&&!dojo.hasClass(node,"dijitHidden");}}},_onShow:function(){if(this.href){if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){this.refresh();}}else{if(!this._childOfLayoutWidget&&this._needLayout){this._layoutChildren();}}this.inherited(arguments);this._wasShown=true;},refresh:function(){this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this._load();return this.onLoadDeferred;},_load:function(){this._setContent(this.onDownloadStart(),true);var self=this;var _27f={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(dojo.isObject(this.ioArgs)){dojo.mixin(_27f,this.ioArgs);}var hand=(this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_27f));hand.addCallback(function(html){try{self._isDownloaded=true;self._setContent(html,false);self.onDownloadEnd();}catch(err){self._onError("Content",err);}delete self._xhrDfd;return html;});hand.addErrback(function(err){if(!hand.canceled){self._onError("Download",err);}delete self._xhrDfd;return err;});delete this._hrefChanged;},_onLoadHandler:function(data){this.isLoaded=true;try{this.onLoadDeferred.callback(data);this.onLoad(data);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this.isLoaded=false;try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(){if(this.isLoaded){this._onUnloadHandler();}var _280=this._contentSetter;dojo.forEach(this.getChildren(),function(_281){if(_281.destroyRecursive){_281.destroyRecursive();}});if(_280){dojo.forEach(_280.parseResults,function(_282){if(_282.destroyRecursive&&_282.domNode&&_282.domNode.parentNode==dojo.body()){_282.destroyRecursive();}});delete _280.parseResults;}dojo.html._emptyNode(this.containerNode);delete this._singleChild;},_setContent:function(cont,_283){this.destroyDescendants();var _284=this._contentSetter;if(!(_284&&_284 instanceof dojo.html._ContentSetter)){_284=this._contentSetter=new dojo.html._ContentSetter({node:this.containerNode,_onError:dojo.hitch(this,this._onError),onContentError:dojo.hitch(this,function(e){var _285=this.onContentError(e);try{this.containerNode.innerHTML=_285;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _286=dojo.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:this.parseOnLoad,dir:this.dir,lang:this.lang},this._contentSetterParams||{});dojo.mixin(_284,_286);_284.set((dojo.isObject(cont)&&cont.domNode)?cont.domNode:cont);delete this._contentSetterParams;if(!_283){dojo.forEach(this.getChildren(),function(_287){if(!this.parseOnLoad||_287.getParent){_287.startup();}},this);this._scheduleLayout();this._onLoadHandler(cont);}},_onError:function(type,err,_288){this.onLoadDeferred.errback(err);var _289=this["on"+type+"Error"].call(this,err);if(_288){console.error(_288,err);}else{if(_289){this._setContent(_289,true);}}},_scheduleLayout:function(){if(this._isShown()){this._layoutChildren();}else{this._needLayout=true;}},_layoutChildren:function(){if(this.doLayout){this._checkIfSingleChild();}if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||dojo.contentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{dojo.forEach(this.getChildren(),function(_28a){if(_28a.resize){_28a.resize();}});}delete this._needLayout;},onLoad:function(data){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(_28b){},onDownloadError:function(_28c){return this.errorMessage;},onDownloadEnd:function(){}});}if(!dojo._hasResource["dijit.TooltipDialog"]){dojo._hasResource["dijit.TooltipDialog"]=true;dojo.provide("dijit.TooltipDialog");dojo.declare("dijit.TooltipDialog",[dijit.layout.ContentPane,dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:dojo.cache("dijit","templates/TooltipDialog.html","<div waiRole=\"presentation\">\n\t<div class=\"dijitTooltipContainer\" waiRole=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" tabindex=\"-1\" waiRole=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" waiRole=\"presentation\"></div>\n</div>\n"),postCreate:function(){this.inherited(arguments);this.connect(this.containerNode,"onkeypress","_onKey");this.containerNode.title=this.title;},orient:function(node,_28d,_28e){var c=this._currentOrientClass;if(c){dojo.removeClass(this.domNode,c);}c="dijitTooltipAB"+(_28e.charAt(1)=="L"?"Left":"Right")+" dijitTooltip"+(_28e.charAt(0)=="T"?"Below":"Above");dojo.addClass(this.domNode,c);this._currentOrientClass=c;},onOpen:function(pos){this.orient(this.domNode,pos.aroundCorner,pos.corner);this._onShow();if(this.autofocus){this._getFocusItems(this.containerNode);dijit.focus(this._firstFocusItem);}},onClose:function(){this.onHide();},_onKey:function(evt){var node=evt.target;var dk=dojo.keys;if(evt.charOrCode===dk.TAB){this._getFocusItems(this.containerNode);}var _28f=(this._firstFocusItem==this._lastFocusItem);if(evt.charOrCode==dk.ESCAPE){setTimeout(dojo.hitch(this,"onCancel"),0);dojo.stopEvent(evt);}else{if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===dk.TAB){if(!_28f){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===dk.TAB&&!evt.shiftKey){if(!_28f){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{if(evt.charOrCode===dk.TAB){evt.stopPropagation();}}}}}});}if(!dojo._hasResource["dijit.Dialog"]){dojo._hasResource["dijit.Dialog"]=true;dojo.provide("dijit.Dialog");dojo.declare("dijit._DialogBase",[dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/Dialog.html","<div class=\"dijitDialog\" tabindex=\"-1\" waiRole=\"dialog\" waiState=\"labelledby-${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"onclick: onCancel\" title=\"${buttonCancel}\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"),baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],"aria-describedby":""}),open:false,duration:dijit.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){var _290=dojo.i18n.getLocalization("dijit","common");dojo.mixin(this,_290);this.inherited(arguments);},postCreate:function(){dojo.style(this.domNode,{display:"none",position:"absolute"});dojo.body().appendChild(this.domNode);this.inherited(arguments);this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();if(this.autofocus){this._getFocusItems(this.domNode);dijit.focus(this._firstFocusItem);}this.inherited(arguments);},_endDrag:function(e){if(e&&e.node&&e.node===this.domNode){this._relativePosition=dojo.position(e.node);}},_setup:function(){var node=this.domNode;if(this.titleBar&&this.draggable){this._moveable=(dojo.isIE==6)?new dojo.dnd.TimedMoveable(node,{handle:this.titleBar}):new dojo.dnd.Moveable(node,{handle:this.titleBar,timeout:0});dojo.subscribe("/dnd/move/stop",this,"_endDrag");}else{dojo.addClass(node,"dijitDialogFixed");}this.underlayAttrs={dialogId:this.id,"class":dojo.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" ")};this._fadeIn=dojo.fadeIn({node:node,duration:this.duration,beforeBegin:dojo.hitch(this,function(){var _291=dijit._underlay;if(!_291){_291=dijit._underlay=new dijit.DialogUnderlay(this.underlayAttrs);}else{_291.set(this.underlayAttrs);}var ds=dijit._dialogStack,_292=948+ds.length*2;if(ds.length==1){_291.show();}dojo.style(dijit._underlay.domNode,"zIndex",_292);dojo.style(this.domNode,"zIndex",_292+1);}),onEnd:dojo.hitch(this,function(){if(this.autofocus){this._getFocusItems(this.domNode);dijit.focus(this._firstFocusItem);}})});this._fadeOut=dojo.fadeOut({node:node,duration:this.duration,onEnd:dojo.hitch(this,function(){node.style.display="none";var ds=dijit._dialogStack;if(ds.length==0){dijit._underlay.hide();}else{dojo.style(dijit._underlay.domNode,"zIndex",948+ds.length*2);dijit._underlay.set(ds[ds.length-1].underlayAttrs);}if(this.refocus){var _293=this._savedFocus;if(ds.length>0){var pd=ds[ds.length-1];if(!dojo.isDescendant(_293.node,pd.domNode)){pd._getFocusItems(pd.domNode);_293=pd._firstFocusItem;}}dijit.focus(_293);}})});},uninitialize:function(){var _294=false;if(this._fadeIn&&this._fadeIn.status()=="playing"){_294=true;this._fadeIn.stop();}if(this._fadeOut&&this._fadeOut.status()=="playing"){_294=true;this._fadeOut.stop();}if((this.open||_294)&&!dijit._underlay._destroyed){dijit._underlay.hide();}if(this._moveable){this._moveable.destroy();}this.inherited(arguments);},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(this._singleChildOriginalStyle){this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;}delete this._singleChildOriginalStyle;}else{dojo.style(this.containerNode,{width:"auto",height:"auto"});}var mb=dojo.marginBox(this.domNode);var _295=dojo.window.getBox();if(mb.w>=_295.w||mb.h>=_295.h){var w=Math.min(mb.w,Math.floor(_295.w*0.75)),h=Math.min(mb.h,Math.floor(_295.h*0.75));if(this._singleChild&&this._singleChild.resize){this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;this._singleChild.resize({w:w,h:h});}else{dojo.style(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});}}else{if(this._singleChild&&this._singleChild.resize){this._singleChild.resize();}}},_position:function(){if(!dojo.hasClass(dojo.body(),"dojoMove")){var node=this.domNode,_296=dojo.window.getBox(),p=this._relativePosition,bb=p?null:dojo._getBorderBox(node),l=Math.floor(_296.l+(p?p.x:(_296.w-bb.w)/2)),t=Math.floor(_296.t+(p?p.y:(_296.h-bb.h)/2));dojo.style(node,{left:l+"px",top:t+"px"});}},_onKey:function(evt){var ds=dijit._dialogStack;if(ds[ds.length-1]!=this){return;}if(evt.charOrCode){var dk=dojo.keys;var node=evt.target;if(evt.charOrCode===dk.TAB){this._getFocusItems(this.domNode);}var _297=(this._firstFocusItem==this._lastFocusItem);if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===dk.TAB){if(!_297){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===dk.TAB&&!evt.shiftKey){if(!_297){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{while(node){if(node==this.domNode||dojo.hasClass(node,"dijitPopup")){if(evt.charOrCode==dk.ESCAPE){this.onCancel();}else{return;}}node=node.parentNode;}if(evt.charOrCode!==dk.TAB){dojo.stopEvent(evt);}else{if(!dojo.isOpera){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOut.status()=="playing"){this._fadeOut.stop();}this._modalconnects.push(dojo.connect(window,"onscroll",this,"layout"));this._modalconnects.push(dojo.connect(window,"onresize",this,function(){var _298=dojo.window.getBox();if(!this._oldViewport||_298.h!=this._oldViewport.h||_298.w!=this._oldViewport.w){this.layout();this._oldViewport=_298;}}));this._modalconnects.push(dojo.connect(dojo.doc.documentElement,"onkeypress",this,"_onKey"));dojo.style(this.domNode,{opacity:0,display:""});this.open=true;this._onShow();this._size();this._position();dijit._dialogStack.push(this);this._fadeIn.play();this._savedFocus=dijit.getFocus(this);},hide:function(){var ds=dijit._dialogStack;if(!this._alreadyInitialized||this!=ds[ds.length-1]){return;}if(this._fadeIn.status()=="playing"){this._fadeIn.stop();}ds.pop();this._fadeOut.play();if(this._scrollConnected){this._scrollConnected=false;}dojo.forEach(this._modalconnects,dojo.disconnect);this._modalconnects=[];if(this._relativePosition){delete this._relativePosition;}this.open=false;this.onHide();},layout:function(){if(this.domNode.style.display!="none"){if(dijit._underlay){dijit._underlay.layout();}this._position();}},destroy:function(){dojo.forEach(this._modalconnects,dojo.disconnect);if(this.refocus&&this.open){setTimeout(dojo.hitch(dijit,"focus",this._savedFocus),25);}this.inherited(arguments);}});dojo.declare("dijit.Dialog",[dijit.layout.ContentPane,dijit._DialogBase],{});dijit._dialogStack=[];}if(!dojo._hasResource["dijit._HasDropDown"]){dojo._hasResource["dijit._HasDropDown"]=true;dojo.provide("dijit._HasDropDown");dojo.declare("dijit._HasDropDown",null,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){if(this.disabled||this.readOnly){return;}this._docHandler=this.connect(dojo.doc,"onmouseup","_onDropDownMouseUp");this.toggleDropDown();},_onDropDownMouseUp:function(e){if(e&&this._docHandler){this.disconnect(this._docHandler);}var _299=this.dropDown,_29a=false;if(e&&this._opened){var c=dojo.position(this._buttonNode,true);if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){var t=e.target;while(t&&!_29a){if(dojo.hasClass(t,"dijitPopup")){_29a=true;}else{t=t.parentNode;}}if(_29a){t=e.target;if(_299.onItemClick){var _29b;while(t&&!(_29b=dijit.byNode(t))){t=t.parentNode;}if(_29b&&_29b.onClick&&_29b.getParent){_29b.getParent().onItemClick(_29b,e);}}return;}}}if(this._opened&&_299.focus){window.setTimeout(dojo.hitch(_299,"focus"),1);}},_onDropDownClick:function(e){if(this._stopClickEvents){dojo.stopEvent(e);}},_setupDropdown:function(){this._buttonNode=this._buttonNode||this.focusNode||this.domNode;this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;this._aroundNode=this._aroundNode||this.domNode;this.connect(this._buttonNode,"onmousedown","_onDropDownMouseDown");this.connect(this._buttonNode,"onclick","_onDropDownClick");this.connect(this._buttonNode,"onkeydown","_onDropDownKeydown");this.connect(this._buttonNode,"onkeyup","_onKey");if(this._setStateClass){this.connect(this,"openDropDown","_setStateClass");this.connect(this,"closeDropDown","_setStateClass");}var _29c={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";dojo.addClass(this._arrowWrapperNode||this._buttonNode,"dijit"+_29c+"ArrowButton");},postCreate:function(){this._setupDropdown();this.inherited(arguments);},destroyDescendants:function(){if(this.dropDown){if(!this.dropDown._destroyed){this.dropDown.destroyRecursive();}delete this.dropDown;}this.inherited(arguments);},_onDropDownKeydown:function(e){if(e.keyCode==dojo.keys.DOWN_ARROW||e.keyCode==dojo.keys.ENTER||e.keyCode==dojo.keys.SPACE){e.preventDefault();}},_onKey:function(e){if(this.disabled||this.readOnly){return;}var d=this.dropDown;if(d&&this._opened&&d.handleKey){if(d.handleKey(e)===false){return;}}if(d&&this._opened&&e.keyCode==dojo.keys.ESCAPE){this.toggleDropDown();}else{if(d&&!this._opened&&(e.keyCode==dojo.keys.DOWN_ARROW||e.keyCode==dojo.keys.ENTER||e.keyCode==dojo.keys.SPACE)){this.toggleDropDown();if(d.focus){setTimeout(dojo.hitch(d,"focus"),1);}}}},_onBlur:function(){this.closeDropDown();this.inherited(arguments);},isLoaded:function(){return true;},loadDropDown:function(_29d){_29d();},toggleDropDown:function(){if(this.disabled||this.readOnly){return;}this.focus();var _29e=this.dropDown;if(!_29e){return;}if(!this._opened){if(!this.isLoaded()){this.loadDropDown(dojo.hitch(this,"openDropDown"));return;}else{this.openDropDown();}}else{this.closeDropDown();}},openDropDown:function(){var _29f=this.dropDown;var _2a0=_29f.domNode;var self=this;if(!this._preparedNode){dijit.popup.moveOffScreen(_2a0);this._preparedNode=true;if(_2a0.style.width){this._explicitDDWidth=true;}if(_2a0.style.height){this._explicitDDHeight=true;}}if(this.maxHeight||this.forceWidth||this.autoWidth){var _2a1={display:"",visibility:"hidden"};if(!this._explicitDDWidth){_2a1.width="";}if(!this._explicitDDHeight){_2a1.height="";}dojo.style(_2a0,_2a1);var mb=dojo.marginBox(_2a0);var _2a2=(this.maxHeight&&mb.h>this.maxHeight);dojo.style(_2a0,{overflowX:"hidden",overflowY:_2a2?"auto":"hidden"});if(_2a2){mb.h=this.maxHeight;if("w" in mb){mb.w+=16;}}else{delete mb.h;}delete mb.t;delete mb.l;if(this.forceWidth){mb.w=this.domNode.offsetWidth;}else{if(this.autoWidth){mb.w=Math.max(mb.w,this.domNode.offsetWidth);}else{delete mb.w;}}if(dojo.isFunction(_29f.resize)){_29f.resize(mb);}else{dojo.marginBox(_2a0,mb);}}var _2a3=dijit.popup.open({parent:this,popup:_29f,around:this._aroundNode,orient:dijit.getPopupAroundAlignment((this.dropDownPosition&&this.dropDownPosition.length)?this.dropDownPosition:["below"],this.isLeftToRight()),onExecute:function(){self.closeDropDown(true);},onCancel:function(){self.closeDropDown(true);},onClose:function(){dojo.attr(self._popupStateNode,"popupActive",false);dojo.removeClass(self._popupStateNode,"dijitHasDropDownOpen");self._opened=false;self.state="";}});dojo.attr(this._popupStateNode,"popupActive","true");dojo.addClass(self._popupStateNode,"dijitHasDropDownOpen");this._opened=true;this.state="Opened";return _2a3;},closeDropDown:function(_2a4){if(this._opened){if(_2a4){this.focus();}dijit.popup.close(this.dropDown);this._opened=false;this.state="";}}});}if(!dojo._hasResource["dijit.form.Button"]){dojo._hasResource["dijit.form.Button"]=true;dojo.provide("dijit.form.Button");dojo.declare("dijit.form.Button",dijit.form._FormWidget,{label:"",showLabel:true,iconClass:"",type:"button",baseClass:"dijitButton",templateString:dojo.cache("dijit.form","templates/Button.html","<span class=\"dijit dijitReset dijitInline\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">●</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"),attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"valueNode",iconClass:{node:"iconNode",type:"class"}}),_onClick:function(e){if(this.disabled){return false;}this._clicked();return this.onClick(e);},_onButtonClick:function(e){if(this._onClick(e)===false){e.preventDefault();}else{if(this.type=="submit"&&!(this.valueNode||this.focusNode).form){for(var node=this.domNode;node.parentNode;node=node.parentNode){var _2a5=dijit.byNode(node);if(_2a5&&typeof _2a5._onSubmit=="function"){_2a5._onSubmit(e);break;}}}else{if(this.valueNode){this.valueNode.click();e.preventDefault();}}}},_fillContent:function(_2a6){if(_2a6&&(!this.params||!("label" in this.params))){this.set("label",_2a6.innerHTML);}},postCreate:function(){dojo.setSelectable(this.focusNode,false);this.inherited(arguments);},_setShowLabelAttr:function(val){if(this.containerNode){dojo.toggleClass(this.containerNode,"dijitDisplayNone",!val);}this.showLabel=val;},onClick:function(e){return true;},_clicked:function(e){},setLabel:function(_2a7){dojo.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_2a7);},_setLabelAttr:function(_2a8){this.containerNode.innerHTML=this.label=_2a8;if(this.showLabel==false&&!this.params.title){this.titleNode.title=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});dojo.declare("dijit.form.DropDownButton",[dijit.form.Button,dijit._Container,dijit._HasDropDown],{baseClass:"dijitDropDownButton",templateString:dojo.cache("dijit.form","templates/DropDownButton.html","<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\" dojoAttachPoint=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true,labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">▼</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"),_fillContent:function(){if(this.srcNodeRef){var _2a9=dojo.query("*",this.srcNodeRef);dijit.form.DropDownButton.superclass._fillContent.call(this,_2a9[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}if(!this.dropDown){var _2aa=dojo.query("[widgetId]",this.dropDownContainer)[0];this.dropDown=dijit.byNode(_2aa);delete this.dropDownContainer;}dijit.popup.moveOffScreen(this.dropDown.domNode);this.inherited(arguments);},isLoaded:function(){var _2ab=this.dropDown;return (!_2ab.href||_2ab.isLoaded);},loadDropDown:function(){var _2ac=this.dropDown;if(!_2ac){return;}if(!this.isLoaded()){var _2ad=dojo.connect(_2ac,"onLoad",this,function(){dojo.disconnect(_2ad);this.openDropDown();});_2ac.refresh();}else{this.openDropDown();}},isFocusable:function(){return this.inherited(arguments)&&!this._mouseDown;}});dojo.declare("dijit.form.ComboButton",dijit.form.DropDownButton,{templateString:dojo.cache("dijit.form","templates/ComboButton.html","<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' waiRole=\"presentation\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" dojoAttachPoint=\"buttonNode\" dojoAttachEvent=\"ondijitclick:_onButtonClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" dojoAttachPoint=\"valueNode\"\n\t\t/></td></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{id:"",tabIndex:["focusNode","titleNode"],title:"titleNode"}),optionsTitle:"",baseClass:"dijitComboButton",cssStateNodes:{"buttonNode":"dijitButtonNode","titleNode":"dijitButtonContents","_popupStateNode":"dijitDownArrowButton"},_focusedNode:null,_onButtonKeyPress:function(evt){if(evt.charOrCode==dojo.keys[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){dijit.focus(this._popupStateNode);dojo.stopEvent(evt);}},_onArrowKeyPress:function(evt){if(evt.charOrCode==dojo.keys[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){dijit.focus(this.titleNode);dojo.stopEvent(evt);}},focus:function(_2ae){dijit.focus(_2ae=="start"?this.titleNode:this._popupStateNode);}});dojo.declare("dijit.form.ToggleButton",dijit.form.Button,{baseClass:"dijitToggleButton",checked:false,attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{checked:"focusNode"}),_clicked:function(evt){this.set("checked",!this.checked);},_setCheckedAttr:function(_2af,_2b0){this.checked=_2af;dojo.attr(this.focusNode||this.domNode,"checked",_2af);dijit.setWaiState(this.focusNode||this.domNode,"pressed",_2af);this._handleOnChange(_2af,_2b0);},setChecked:function(_2b1){dojo.deprecated("setChecked("+_2b1+") is deprecated. Use set('checked',"+_2b1+") instead.","","2.0");this.set("checked",_2b1);},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);}});}if(!dojo._hasResource["dijit.form.ToggleButton"]){dojo._hasResource["dijit.form.ToggleButton"]=true;dojo.provide("dijit.form.ToggleButton");}if(!dojo._hasResource["dijit.form.CheckBox"]){dojo._hasResource["dijit.form.CheckBox"]=true;dojo.provide("dijit.form.CheckBox");dojo.declare("dijit.form.CheckBox",dijit.form.ToggleButton,{templateString:dojo.cache("dijit.form","templates/CheckBox.html","<div class=\"dijit dijitReset dijitInline\" waiRole=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onclick:_onClick\"\n/></div>\n"),baseClass:"dijitCheckBox",type:"checkbox",value:"on",readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{readOnly:"focusNode"}),_setReadOnlyAttr:function(_2b2){this.readOnly=_2b2;dojo.attr(this.focusNode,"readOnly",_2b2);dijit.setWaiState(this.focusNode,"readonly",_2b2);},_setValueAttr:function(_2b3,_2b4){if(typeof _2b3=="string"){this.value=_2b3;dojo.attr(this.focusNode,"value",_2b3);_2b3=true;}if(this._created){this.set("checked",_2b3,_2b4);}},_getValueAttr:function(){return (this.checked?this.value:false);},_setLabelAttr:undefined,postMixInProperties:function(){if(this.value==""){this.value="on";}this.checkedAttrSetting=this.checked?"checked":"";this.inherited(arguments);},_fillContent:function(_2b5){},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);this.value=this.params.value||"on";dojo.attr(this.focusNode,"value",this.value);},_onFocus:function(){if(this.id){dojo.query("label[for='"+this.id+"']").addClass("dijitFocusedLabel");}this.inherited(arguments);},_onBlur:function(){if(this.id){dojo.query("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");}this.inherited(arguments);},_onClick:function(e){if(this.readOnly){return false;}return this.inherited(arguments);}});dojo.declare("dijit.form.RadioButton",dijit.form.CheckBox,{type:"radio",baseClass:"dijitRadio",_setCheckedAttr:function(_2b6){this.inherited(arguments);if(!this._created){return;}if(_2b6){var _2b7=this;dojo.query("INPUT[type=radio]",this.focusNode.form||dojo.doc).forEach(function(_2b8){if(_2b8.name==_2b7.name&&_2b8!=_2b7.focusNode&&_2b8.form==_2b7.focusNode.form){var _2b9=dijit.getEnclosingWidget(_2b8);if(_2b9&&_2b9.checked){_2b9.set("checked",false);}}});}},_clicked:function(e){if(!this.checked){this.set("checked",true);}}});}if(!dojo._hasResource["dijit.form.DropDownButton"]){dojo._hasResource["dijit.form.DropDownButton"]=true;dojo.provide("dijit.form.DropDownButton");}if(!dojo._hasResource["dojo.regexp"]){dojo._hasResource["dojo.regexp"]=true;dojo.provide("dojo.regexp");dojo.regexp.escapeString=function(str,_2ba){return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){if(_2ba&&_2ba.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};dojo.regexp.buildGroupRE=function(arr,re,_2bb){if(!(arr instanceof Array)){return re(arr);}var b=[];for(var i=0;i<arr.length;i++){b.push(re(arr[i]));}return dojo.regexp.group(b.join("|"),_2bb);};dojo.regexp.group=function(_2bc,_2bd){return "("+(_2bd?"?:":"")+_2bc+")";};}if(!dojo._hasResource["dojo.data.util.sorter"]){dojo._hasResource["dojo.data.util.sorter"]=true;dojo.provide("dojo.data.util.sorter");dojo.data.util.sorter.basicComparator=function(a,b){var r=-1;if(a===null){a=undefined;}if(b===null){b=undefined;}if(a==b){r=0;}else{if(a>b||a==null){r=1;}}return r;};dojo.data.util.sorter.createSortFunction=function(_2be,_2bf){var _2c0=[];function _2c1(attr,dir,comp,s){return function(_2c2,_2c3){var a=s.getValue(_2c2,attr);var b=s.getValue(_2c3,attr);return dir*comp(a,b);};};var _2c4;var map=_2bf.comparatorMap;var bc=dojo.data.util.sorter.basicComparator;for(var i=0;i<_2be.length;i++){_2c4=_2be[i];var attr=_2c4.attribute;if(attr){var dir=(_2c4.descending)?-1:1;var comp=bc;if(map){if(typeof attr!=="string"&&("toString" in attr)){attr=attr.toString();}comp=map[attr]||bc;}_2c0.push(_2c1(attr,dir,comp,_2bf));}}return function(rowA,rowB){var i=0;while(i<_2c0.length){var ret=_2c0[i++](rowA,rowB);if(ret!==0){return ret;}}return 0;};};}if(!dojo._hasResource["dojo.data.util.simpleFetch"]){dojo._hasResource["dojo.data.util.simpleFetch"]=true;dojo.provide("dojo.data.util.simpleFetch");dojo.data.util.simpleFetch.fetch=function(_2c5){_2c5=_2c5||{};if(!_2c5.store){_2c5.store=this;}var self=this;var _2c6=function(_2c7,_2c8){if(_2c8.onError){var _2c9=_2c8.scope||dojo.global;_2c8.onError.call(_2c9,_2c7,_2c8);}};var _2ca=function(_2cb,_2cc){var _2cd=_2cc.abort||null;var _2ce=false;var _2cf=_2cc.start?_2cc.start:0;var _2d0=(_2cc.count&&(_2cc.count!==Infinity))?(_2cf+_2cc.count):_2cb.length;_2cc.abort=function(){_2ce=true;if(_2cd){_2cd.call(_2cc);}};var _2d1=_2cc.scope||dojo.global;if(!_2cc.store){_2cc.store=self;}if(_2cc.onBegin){_2cc.onBegin.call(_2d1,_2cb.length,_2cc);}if(_2cc.sort){_2cb.sort(dojo.data.util.sorter.createSortFunction(_2cc.sort,self));}if(_2cc.onItem){for(var i=_2cf;(i<_2cb.length)&&(i<_2d0);++i){var item=_2cb[i];if(!_2ce){_2cc.onItem.call(_2d1,item,_2cc);}}}if(_2cc.onComplete&&!_2ce){var _2d2=null;if(!_2cc.onItem){_2d2=_2cb.slice(_2cf,_2d0);}_2cc.onComplete.call(_2d1,_2d2,_2cc);}};this._fetchItems(_2c5,_2ca,_2c6);return _2c5;};}if(!dojo._hasResource["dojo.data.util.filter"]){dojo._hasResource["dojo.data.util.filter"]=true;dojo.provide("dojo.data.util.filter");dojo.data.util.filter.patternToRegExp=function(_2d3,_2d4){var rxp="^";var c=null;for(var i=0;i<_2d3.length;i++){c=_2d3.charAt(i);switch(c){case "\\":rxp+=c;i++;rxp+=_2d3.charAt(i);break;case "*":rxp+=".*";break;case "?":rxp+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":rxp+="\\";default:rxp+=c;}}rxp+="$";if(_2d4){return new RegExp(rxp,"mi");}else{return new RegExp(rxp,"m");}};}if(!dojo._hasResource["dijit.form.TextBox"]){dojo._hasResource["dijit.form.TextBox"]=true;dojo.provide("dijit.form.TextBox");dojo.declare("dijit.form.TextBox",dijit.form._FormValueWidget,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",templateString:dojo.cache("dijit.form","templates/TextBox.html","<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"),_singleNodeTemplate:"<input class=\"dijit dijitReset dijitLeft dijitInputField\" dojoAttachPoint=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",_buttonInputDisabled:dojo.isIE?"disabled":"",baseClass:"dijitTextBox",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{maxLength:"focusNode"}),postMixInProperties:function(){var type=this.type.toLowerCase();if(this.templateString.toLowerCase()=="input"||((type=="hidden"||type=="file")&&this.templateString==dijit.form.TextBox.prototype.templateString)){this.templateString=this._singleNodeTemplate;}this.inherited(arguments);},_setPlaceHolderAttr:function(v){this.placeHolder=v;if(!this._phspan){this._attachPoints.push("_phspan");this._phspan=dojo.create("span",{className:"dijitPlaceHolder dijitInputField"},this.textbox,"after");}this._phspan.innerHTML="";this._phspan.appendChild(document.createTextNode(v));this._updatePlaceHolder();},_updatePlaceHolder:function(){if(this._phspan){this._phspan.style.display=(this.placeHolder&&!this._focused&&!this.textbox.value)?"":"none";}},_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints);},_setValueAttr:function(_2d5,_2d6,_2d7){var _2d8;if(_2d5!==undefined){_2d8=this.filter(_2d5);if(typeof _2d7!="string"){if(_2d8!==null&&((typeof _2d8!="number")||!isNaN(_2d8))){_2d7=this.filter(this.format(_2d8,this.constraints));}else{_2d7="";}}}if(_2d7!=null&&_2d7!=undefined&&((typeof _2d7)!="number"||!isNaN(_2d7))&&this.textbox.value!=_2d7){this.textbox.value=_2d7;}this._updatePlaceHolder();this.inherited(arguments,[_2d8,_2d6]);},displayedValue:"",getDisplayedValue:function(){dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.","","2.0");return this.get("displayedValue");},_getDisplayedValueAttr:function(){return this.filter(this.textbox.value);},setDisplayedValue:function(_2d9){dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0");this.set("displayedValue",_2d9);},_setDisplayedValueAttr:function(_2da){if(_2da===null||_2da===undefined){_2da="";}else{if(typeof _2da!="string"){_2da=String(_2da);}}this.textbox.value=_2da;this._setValueAttr(this.get("value"),undefined,_2da);},format:function(_2db,_2dc){return ((_2db==null||_2db==undefined)?"":(_2db.toString?_2db.toString():_2db));},parse:function(_2dd,_2de){return _2dd;},_refreshState:function(){},_onInput:function(e){if(e&&e.type&&/key/i.test(e.type)&&e.keyCode){switch(e.keyCode){case dojo.keys.SHIFT:case dojo.keys.ALT:case dojo.keys.CTRL:case dojo.keys.TAB:return;}}if(this.intermediateChanges){var _2df=this;setTimeout(function(){_2df._handleOnChange(_2df.get("value"),false);},0);}this._refreshState();},postCreate:function(){if(dojo.isIE){var s=dojo.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _2e0=this.domNode.getElementsByTagName("INPUT");if(_2e0){for(var i=0;i<_2e0.length;i++){_2e0[i].style.fontFamily=ff;}}}}}this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);if(dojo.isMoz||dojo.isOpera){this.connect(this.textbox,"oninput",this._onInput);}else{this.connect(this.textbox,"onkeydown",this._onInput);this.connect(this.textbox,"onkeyup",this._onInput);this.connect(this.textbox,"onpaste",this._onInput);this.connect(this.textbox,"oncut",this._onInput);}},_blankValue:"",filter:function(val){if(val===null){return this._blankValue;}if(typeof val!="string"){return val;}if(this.trim){val=dojo.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s]+/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1);});}return val;},_setBlurValue:function(){this._setValueAttr(this.get("value"),true);},_onBlur:function(e){if(this.disabled){return;}this._setBlurValue();this.inherited(arguments);if(this._selectOnClickHandle){this.disconnect(this._selectOnClickHandle);}if(this.selectOnClick&&dojo.isMoz){this.textbox.selectionStart=this.textbox.selectionEnd=undefined;}this._updatePlaceHolder();},_onFocus:function(by){if(this.disabled||this.readOnly){return;}if(this.selectOnClick&&by=="mouse"){this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){this.disconnect(this._selectOnClickHandle);var _2e1;if(dojo.isIE){var _2e2=dojo.doc.selection.createRange();var _2e3=_2e2.parentElement();_2e1=_2e3==this.textbox&&_2e2.text.length==0;}else{_2e1=this.textbox.selectionStart==this.textbox.selectionEnd;}if(_2e1){dijit.selectInputText(this.textbox);}});}this._updatePlaceHolder();this._refreshState();this.inherited(arguments);},reset:function(){this.textbox.value="";this.inherited(arguments);}});dijit.selectInputText=function(_2e4,_2e5,stop){var _2e6=dojo.global;var _2e7=dojo.doc;_2e4=dojo.byId(_2e4);if(isNaN(_2e5)){_2e5=0;}if(isNaN(stop)){stop=_2e4.value?_2e4.value.length:0;}dijit.focus(_2e4);if(_2e7["selection"]&&dojo.body()["createTextRange"]){if(_2e4.createTextRange){var _2e8=_2e4.createTextRange();with(_2e8){collapse(true);moveStart("character",-99999);moveStart("character",_2e5);moveEnd("character",stop-_2e5);select();}}}else{if(_2e6["getSelection"]){if(_2e4.setSelectionRange){_2e4.setSelectionRange(_2e5,stop);}}}};}if(!dojo._hasResource["dijit.Tooltip"]){dojo._hasResource["dijit.Tooltip"]=true;dojo.provide("dijit.Tooltip");dojo.declare("dijit._MasterTooltip",[dijit._Widget,dijit._Templated],{duration:dijit.defaultDuration,templateString:dojo.cache("dijit","templates/Tooltip.html","<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\">\n\t<div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" waiRole='alert'></div>\n\t<div class=\"dijitTooltipConnector\"></div>\n</div>\n"),postCreate:function(){dojo.body().appendChild(this.domNode);this.bgIframe=new dijit.BackgroundIframe(this.domNode);this.fadeIn=dojo.fadeIn({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onShow")});this.fadeOut=dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onHide")});},show:function(_2e9,_2ea,_2eb,rtl){if(this.aroundNode&&this.aroundNode===_2ea){return;}if(this.fadeOut.status()=="playing"){this._onDeck=arguments;return;}this.containerNode.innerHTML=_2e9;var pos=dijit.placeOnScreenAroundElement(this.domNode,_2ea,dijit.getPopupAroundAlignment((_2eb&&_2eb.length)?_2eb:dijit.Tooltip.defaultPosition,!rtl),dojo.hitch(this,"orient"));dojo.style(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=_2ea;},orient:function(node,_2ec,_2ed){node.className="dijitTooltip "+{"BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_2ec+"-"+_2ed];},_onShow:function(){if(dojo.isIE){this.domNode.style.filter="";}},hide:function(_2ee){if(this._onDeck&&this._onDeck[1]==_2ee){this._onDeck=null;}else{if(this.aroundNode===_2ee){this.fadeIn.stop();this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play();}else{}}},_onHide:function(){this.domNode.style.cssText="";this.containerNode.innerHTML="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null;}}});dijit.showTooltip=function(_2ef,_2f0,_2f1,rtl){if(!dijit._masterTT){dijit._masterTT=new dijit._MasterTooltip();}return dijit._masterTT.show(_2ef,_2f0,_2f1,rtl);};dijit.hideTooltip=function(_2f2){if(!dijit._masterTT){dijit._masterTT=new dijit._MasterTooltip();}return dijit._masterTT.hide(_2f2);};dojo.declare("dijit.Tooltip",dijit._Widget,{label:"",showDelay:400,connectId:[],position:[],constructor:function(){this._nodeConnectionsById={};},_setConnectIdAttr:function(_2f3){for(var _2f4 in this._nodeConnectionsById){this.removeTarget(_2f4);}dojo.forEach(dojo.isArrayLike(_2f3)?_2f3:[_2f3],this.addTarget,this);},_getConnectIdAttr:function(){var ary=[];for(var id in this._nodeConnectionsById){ary.push(id);}return ary;},addTarget:function(id){var node=dojo.byId(id);if(!node){return;}if(node.id in this._nodeConnectionsById){return;}this._nodeConnectionsById[node.id]=[this.connect(node,"onmouseenter","_onTargetMouseEnter"),this.connect(node,"onmouseleave","_onTargetMouseLeave"),this.connect(node,"onfocus","_onTargetFocus"),this.connect(node,"onblur","_onTargetBlur")];},removeTarget:function(node){var id=node.id||node;if(id in this._nodeConnectionsById){dojo.forEach(this._nodeConnectionsById[id],this.disconnect,this);delete this._nodeConnectionsById[id];}},postCreate:function(){dojo.addClass(this.domNode,"dijitTooltipData");},startup:function(){this.inherited(arguments);var ids=this.connectId;dojo.forEach(dojo.isArrayLike(ids)?ids:[ids],this.addTarget,this);},_onTargetMouseEnter:function(e){this._onHover(e);},_onTargetMouseLeave:function(e){this._onUnHover(e);},_onTargetFocus:function(e){this._focus=true;this._onHover(e);},_onTargetBlur:function(e){this._focus=false;this._onUnHover(e);},_onHover:function(e){if(!this._showTimer){var _2f5=e.target;this._showTimer=setTimeout(dojo.hitch(this,function(){this.open(_2f5);}),this.showDelay);}},_onUnHover:function(e){if(this._focus){return;}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}this.close();},open:function(_2f6){if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}dijit.showTooltip(this.label||this.domNode.innerHTML,_2f6,this.position,!this.isLeftToRight());this._connectNode=_2f6;this.onShow(_2f6,this.position);},close:function(){if(this._connectNode){dijit.hideTooltip(this._connectNode);delete this._connectNode;this.onHide();}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}},onShow:function(_2f7,_2f8){},onHide:function(){},uninitialize:function(){this.close();this.inherited(arguments);}});dijit.Tooltip.defaultPosition=["after","before"];}if(!dojo._hasResource["dijit.form.ValidationTextBox"]){dojo._hasResource["dijit.form.ValidationTextBox"]=true;dojo.provide("dijit.form.ValidationTextBox");dojo.declare("dijit.form.ValidationTextBox",dijit.form.TextBox,{templateString:dojo.cache("dijit.form","templates/ValidationTextBox.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitValidationTextBox",required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",constraints:{},regExp:".*",regExpGen:function(_2f9){return this.regExp;},state:"",tooltipPosition:[],_setValueAttr:function(){this.inherited(arguments);this.validate(this._focused);},validator:function(_2fa,_2fb){return (new RegExp("^(?:"+this.regExpGen(_2fb)+")"+(this.required?"":"?")+"$")).test(_2fa)&&(!this.required||!this._isEmpty(_2fa))&&(this._isEmpty(_2fa)||this.parse(_2fa,_2fb)!==undefined);},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0;},isValid:function(_2fc){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(_2fd){return /^\s*$/.test(_2fd);},getErrorMessage:function(_2fe){return (this.required&&this._isEmpty(this.textbox.value))?this.missingMessage:this.invalidMessage;},getPromptMessage:function(_2ff){return this.promptMessage;},_maskValidSubsetError:true,validate:function(_300){var _301="";var _302=this.disabled||this.isValid(_300);if(_302){this._maskValidSubsetError=true;}var _303=this._isEmpty(this.textbox.value);var _304=!_302&&!_303&&_300&&this._isValidSubset();this.state=((_302||((!this._hasBeenBlurred||_300)&&_303)||_304)&&this._maskValidSubsetError)?"":"Error";if(this.state=="Error"){this._maskValidSubsetError=_300;}this._setStateClass();dijit.setWaiState(this.focusNode,"invalid",_302?"false":"true");if(_300){if(this.state=="Error"){_301=this.getErrorMessage(true);}else{_301=this.getPromptMessage(true);}this._maskValidSubsetError=true;}this.displayMessage(_301);return _302;},_message:"",displayMessage:function(_305){if(this._message==_305){return;}this._message=_305;dijit.hideTooltip(this.domNode);if(_305){dijit.showTooltip(_305,this.domNode,this.tooltipPosition,!this.isLeftToRight());}},_refreshState:function(){this.validate(this._focused);this.inherited(arguments);},constructor:function(){this.constraints={};},_setConstraintsAttr:function(_306){if(!_306.locale&&this.lang){_306.locale=this.lang;}this.constraints=_306;this._computePartialRE();},_computePartialRE:function(){var p=this.regExpGen(this.constraints);this.regExp=p;var _307="";if(p!=".*"){this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case "{":case "+":case "?":case "*":case "^":case "$":case "|":case "(":_307+=re;break;case ")":_307+="|$)";break;default:_307+="(?:"+re+"|$)";break;}});}try{"".search(_307);}catch(e){_307=this.regExp;console.warn("RegExp error in "+this.declaredClass+": "+this.regExp);}this._partialre="^(?:"+_307+")$";},postMixInProperties:function(){this.inherited(arguments);this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang);if(this.invalidMessage=="$_unset_$"){this.invalidMessage=this.messages.invalidMessage;}if(!this.invalidMessage){this.invalidMessage=this.promptMessage;}if(this.missingMessage=="$_unset_$"){this.missingMessage=this.messages.missingMessage;}if(!this.missingMessage){this.missingMessage=this.invalidMessage;}this._setConstraintsAttr(this.constraints);},_setDisabledAttr:function(_308){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_309){this.required=_309;dijit.setWaiState(this.focusNode,"required",_309);this._refreshState();},reset:function(){this._maskValidSubsetError=true;this.inherited(arguments);},_onBlur:function(){this.displayMessage("");this.inherited(arguments);}});dojo.declare("dijit.form.MappedTextBox",dijit.form.ValidationTextBox,{postMixInProperties:function(){this.inherited(arguments);this.nameAttrSetting="";},serialize:function(val,_30a){return val.toString?val.toString():"";},toString:function(){var val=this.filter(this.get("value"));return val!=null?(typeof val=="string"?val:this.serialize(val,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.valueNode=dojo.place("<input type='hidden'"+(this.name?" name='"+this.name+"'":"")+">",this.textbox,"after");},reset:function(){this.valueNode.value="";this.inherited(arguments);}});dojo.declare("dijit.form.RangeBoundTextBox",dijit.form.MappedTextBox,{rangeMessage:"",rangeCheck:function(_30b,_30c){return ("min" in _30c?(this.compare(_30b,_30c.min)>=0):true)&&("max" in _30c?(this.compare(_30b,_30c.max)<=0):true);},isInRange:function(_30d){return this.rangeCheck(this.get("value"),this.constraints);},_isDefinitelyOutOfRange:function(){var val=this.get("value");var _30e=false;var _30f=false;if("min" in this.constraints){var min=this.constraints.min;min=this.compare(val,((typeof min=="number")&&min>=0&&val!=0)?0:min);_30e=(typeof min=="number")&&min<0;}if("max" in this.constraints){var max=this.constraints.max;max=this.compare(val,((typeof max!="number")||max>0)?max:0);_30f=(typeof max=="number")&&max>0;}return _30e||_30f;},_isValidSubset:function(){return this.inherited(arguments)&&!this._isDefinitelyOutOfRange();},isValid:function(_310){return this.inherited(arguments)&&((this._isEmpty(this.textbox.value)&&!this.required)||this.isInRange(_310));},getErrorMessage:function(_311){var v=this.get("value");if(v!==null&&v!==""&&v!==undefined&&(typeof v!="number"||!isNaN(v))&&!this.isInRange(_311)){return this.rangeMessage;}return this.inherited(arguments);},postMixInProperties:function(){this.inherited(arguments);if(!this.rangeMessage){this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang);this.rangeMessage=this.messages.rangeMessage;}},_setConstraintsAttr:function(_312){this.inherited(arguments);if(this.focusNode){if(this.constraints.min!==undefined){dijit.setWaiState(this.focusNode,"valuemin",this.constraints.min);}else{dijit.removeWaiState(this.focusNode,"valuemin");}if(this.constraints.max!==undefined){dijit.setWaiState(this.focusNode,"valuemax",this.constraints.max);}else{dijit.removeWaiState(this.focusNode,"valuemax");}}},_setValueAttr:function(_313,_314){dijit.setWaiState(this.focusNode,"valuenow",_313);this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.ComboBox"]){dojo._hasResource["dijit.form.ComboBox"]=true;dojo.provide("dijit.form.ComboBox");dojo.declare("dijit.form.ComboBoxMixin",null,{item:null,pageSize:Infinity,store:null,fetchProperties:{},query:{},autoComplete:true,highlightMatch:"first",searchDelay:100,searchAttr:"name",labelAttr:"",labelType:"text",queryExpr:"${0}*",ignoreCase:true,hasDownArrow:true,templateString:dojo.cache("dijit.form","templates/ComboBox.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachPoint=\"comboNode\" waiRole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdojoAttachPoint=\"downArrowNode\" waiRole=\"presentation\"\n\t\tdojoAttachEvent=\"onmousedown:_onArrowMouseDown\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"▼ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onKeyPress,compositionend\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" waiRole=\"textbox\" waiState=\"haspopup-true,autocomplete-list\"\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitComboBox",cssStateNodes:{"downArrowNode":"dijitDownArrowButton"},_getCaretPos:function(_315){var pos=0;if(typeof (_315.selectionStart)=="number"){pos=_315.selectionStart;}else{if(dojo.isIE){var tr=dojo.doc.selection.createRange().duplicate();var ntr=_315.createTextRange();tr.move("character",0);ntr.move("character",0);try{ntr.setEndPoint("EndToEnd",tr);pos=String(ntr.text).replace(/\r/g,"").length;}catch(e){}}}return pos;},_setCaretPos:function(_316,_317){_317=parseInt(_317);dijit.selectInputText(_316,_317,_317);},_setDisabledAttr:function(_318){this.inherited(arguments);dijit.setWaiState(this.comboNode,"disabled",_318);},_abortQuery:function(){if(this.searchTimer){clearTimeout(this.searchTimer);this.searchTimer=null;}if(this._fetchHandle){if(this._fetchHandle.abort){this._fetchHandle.abort();}this._fetchHandle=null;}},_onInput:function(evt){if(!this.searchTimer&&(evt.type=="paste"||evt.type=="input")&&this._lastInput!=this.textbox.value){this.searchTimer=setTimeout(dojo.hitch(this,function(){this._onKeyPress({charOrCode:229});}),100);}this.inherited(arguments);},_onKeyPress:function(evt){var key=evt.charOrCode;if(evt.altKey||((evt.ctrlKey||evt.metaKey)&&(key!="x"&&key!="v"))||key==dojo.keys.SHIFT){return;}var _319=false;var _31a="_startSearchFromInput";var pw=this._popupWidget;var dk=dojo.keys;var _31b=null;this._prev_key_backspace=false;this._abortQuery();if(this._isShowingNow){pw.handleKey(key);_31b=pw.getHighlightedOption();}switch(key){case dk.PAGE_DOWN:case dk.DOWN_ARROW:case dk.PAGE_UP:case dk.UP_ARROW:if(!this._isShowingNow){_319=true;_31a="_startSearchAll";}else{this._announceOption(_31b);}dojo.stopEvent(evt);break;case dk.ENTER:if(_31b){if(_31b==pw.nextButton){this._nextSearch(1);dojo.stopEvent(evt);break;}else{if(_31b==pw.previousButton){this._nextSearch(-1);dojo.stopEvent(evt);break;}}}else{this._setBlurValue();this._setCaretPos(this.focusNode,this.focusNode.value.length);}evt.preventDefault();case dk.TAB:var _31c=this.get("displayedValue");if(pw&&(_31c==pw._messages["previousMessage"]||_31c==pw._messages["nextMessage"])){break;}if(_31b){this._selectOption();}if(this._isShowingNow){this._lastQuery=null;this._hideResultList();}break;case " ":if(_31b){dojo.stopEvent(evt);this._selectOption();this._hideResultList();}else{_319=true;}break;case dk.ESCAPE:if(this._isShowingNow){dojo.stopEvent(evt);this._hideResultList();}break;case dk.DELETE:case dk.BACKSPACE:this._prev_key_backspace=true;_319=true;break;default:_319=typeof key=="string"||key==229;}if(_319){this.item=undefined;this.searchTimer=setTimeout(dojo.hitch(this,_31a),1);}},_autoCompleteText:function(text){var fn=this.focusNode;dijit.selectInputText(fn,fn.value.length);var _31d=this.ignoreCase?"toLowerCase":"substr";if(text[_31d](0).indexOf(this.focusNode.value[_31d](0))==0){var cpos=this._getCaretPos(fn);if((cpos+1)>fn.value.length){fn.value=text;dijit.selectInputText(fn,cpos);}}else{fn.value=text;dijit.selectInputText(fn);}},_openResultList:function(_31e,_31f){this._fetchHandle=null;if(this.disabled||this.readOnly||(_31f.query[this.searchAttr]!=this._lastQuery)){return;}this._popupWidget.clearResultList();if(!_31e.length&&!this._maxOptions){this._hideResultList();return;}_31f._maxOptions=this._maxOptions;var _320=this._popupWidget.createOptions(_31e,_31f,dojo.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if(_31f.direction){if(1==_31f.direction){this._popupWidget.highlightFirstOption();}else{if(-1==_31f.direction){this._popupWidget.highlightLastOption();}}this._announceOption(this._popupWidget.getHighlightedOption());}else{if(this.autoComplete&&!this._prev_key_backspace&&!/^[*]+$/.test(_31f.query[this.searchAttr])){this._announceOption(_320[1]);}}},_showResultList:function(){this._hideResultList();this.displayMessage("");dojo.style(this._popupWidget.domNode,{width:"",height:""});var best=this.open();var _321=dojo.marginBox(this._popupWidget.domNode);this._popupWidget.domNode.style.overflow=((best.h==_321.h)&&(best.w==_321.w))?"hidden":"auto";var _322=best.w;if(best.h<this._popupWidget.domNode.scrollHeight){_322+=16;}dojo.marginBox(this._popupWidget.domNode,{h:best.h,w:Math.max(_322,this.domNode.offsetWidth)});if(_322<this.domNode.offsetWidth){this._popupWidget.domNode.parentNode.style.left=dojo.position(this.domNode,true).x+"px";}dijit.setWaiState(this.comboNode,"expanded","true");},_hideResultList:function(){this._abortQuery();if(this._isShowingNow){dijit.popup.close(this._popupWidget);this._isShowingNow=false;dijit.setWaiState(this.comboNode,"expanded","false");dijit.removeWaiState(this.focusNode,"activedescendant");}},_setBlurValue:function(){var _323=this.get("displayedValue");var pw=this._popupWidget;if(pw&&(_323==pw._messages["previousMessage"]||_323==pw._messages["nextMessage"])){this._setValueAttr(this._lastValueReported,true);}else{if(typeof this.item=="undefined"){this.item=null;this.set("displayedValue",_323);}else{if(this.value!=this._lastValueReported){dijit.form._FormValueWidget.prototype._setValueAttr.call(this,this.value,true);}this._refreshState();}}},_onBlur:function(){this._hideResultList();this.inherited(arguments);},_setItemAttr:function(item,_324,_325){if(!_325){_325=this.labelFunc(item,this.store);}this.value=this._getValueField()!=this.searchAttr?this.store.getIdentity(item):_325;this.item=item;dijit.form.ComboBox.superclass._setValueAttr.call(this,this.value,_324,_325);},_announceOption:function(node){if(!node){return;}var _326;if(node==this._popupWidget.nextButton||node==this._popupWidget.previousButton){_326=node.innerHTML;this.item=undefined;this.value="";}else{_326=this.labelFunc(node.item,this.store);this.set("item",node.item,false,_326);}this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length);dijit.setWaiState(this.focusNode,"activedescendant",dojo.attr(node,"id"));this._autoCompleteText(_326);},_selectOption:function(evt){if(evt){this._announceOption(evt.target);}this._hideResultList();this._setCaretPos(this.focusNode,this.focusNode.value.length);dijit.form._FormValueWidget.prototype._setValueAttr.call(this,this.value,true);},_onArrowMouseDown:function(evt){if(this.disabled||this.readOnly){return;}dojo.stopEvent(evt);this.focus();if(this._isShowingNow){this._hideResultList();}else{this._startSearchAll();}},_startSearchAll:function(){this._startSearch("");},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"));},_getQueryString:function(text){return dojo.string.substitute(this.queryExpr,[text]);},_startSearch:function(key){if(!this._popupWidget){var _327=this.id+"_popup";this._popupWidget=new dijit.form._ComboBoxMenu({onChange:dojo.hitch(this,this._selectOption),id:_327,dir:this.dir});dijit.removeWaiState(this.focusNode,"activedescendant");dijit.setWaiState(this.textbox,"owns",_327);}var _328=dojo.clone(this.query);this._lastInput=key;this._lastQuery=_328[this.searchAttr]=this._getQueryString(key);this.searchTimer=setTimeout(dojo.hitch(this,function(_329,_32a){this.searchTimer=null;var _32b={queryOptions:{ignoreCase:this.ignoreCase,deep:true},query:_329,onBegin:dojo.hitch(this,"_setMaxOptions"),onComplete:dojo.hitch(this,"_openResultList"),onError:function(_32c){_32a._fetchHandle=null;console.error("dijit.form.ComboBox: "+_32c);dojo.hitch(_32a,"_hideResultList")();},start:0,count:this.pageSize};dojo.mixin(_32b,_32a.fetchProperties);this._fetchHandle=_32a.store.fetch(_32b);var _32d=function(_32e,_32f){_32e.start+=_32e.count*_32f;_32e.direction=_32f;this._fetchHandle=this.store.fetch(_32e);};this._nextSearch=this._popupWidget.onPage=dojo.hitch(this,_32d,this._fetchHandle);},_328,this),this.searchDelay);},_setMaxOptions:function(size,_330){this._maxOptions=size;},_getValueField:function(){return this.searchAttr;},compositionend:function(evt){this._onKeyPress({charOrCode:229});},constructor:function(){this.query={};this.fetchProperties={};},postMixInProperties:function(){if(!this.store){var _331=this.srcNodeRef;this.store=new dijit.form._ComboBoxDataStore(_331);if(!("value" in this.params)){var item=this.store.fetchSelectedItem();if(item){var _332=this._getValueField();this.value=_332!=this.searchAttr?this.store.getValue(item,_332):this.labelFunc(item,this.store);}}}this.inherited(arguments);},postCreate:function(){if(!this.hasDownArrow){this.downArrowNode.style.display="none";}var _333=dojo.query("label[for=\""+this.id+"\"]");if(_333.length){_333[0].id=(this.id+"_label");var cn=this.comboNode;dijit.setWaiState(cn,"labelledby",_333[0].id);}this.inherited(arguments);},uninitialize:function(){if(this._popupWidget&&!this._popupWidget._destroyed){this._hideResultList();this._popupWidget.destroy();}this.inherited(arguments);},_getMenuLabelFromItem:function(item){var _334=this.labelAttr?this.store.getValue(item,this.labelAttr):this.labelFunc(item,this.store);var _335=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){_334=this.doHighlight(_334,this._escapeHtml(this._lastInput));_335="html";}return {html:_335=="html",label:_334};},doHighlight:function(_336,find){var _337="i"+(this.highlightMatch=="all"?"g":"");var _338=this._escapeHtml(_336);find=dojo.regexp.escapeString(find);var ret=_338.replace(new RegExp("(^|\\s)("+find+")",_337),"$1<span class=\"dijitComboBoxHighlightMatch\">$2</span>");return ret;},_escapeHtml:function(str){str=String(str).replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""");return str;},open:function(){this._isShowingNow=true;return dijit.popup.open({popup:this._popupWidget,around:this.domNode,parent:this});},reset:function(){this.item=null;this.inherited(arguments);},labelFunc:function(item,_339){return _339.getValue(item,this.searchAttr).toString();}});dojo.declare("dijit.form._ComboBoxMenu",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:"<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' tabIndex='-1' style='overflow: \"auto\"; overflow-x: \"hidden\";'>"+"<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton' waiRole='option'></li>"+"<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton' waiRole='option'></li>"+"</ul>",_messages:null,baseClass:"dijitComboBoxMenu",postMixInProperties:function(){this._messages=dojo.i18n.getLocalization("dijit.form","ComboBox",this.lang);this.inherited(arguments);},_setValueAttr:function(_33a){this.value=_33a;this.onChange(_33a);},onChange:function(_33b){},onPage:function(_33c){},postCreate:function(){this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];this.inherited(arguments);},onClose:function(){this._blurOptionNode();},_createOption:function(item,_33d){var _33e=_33d(item);var _33f=dojo.doc.createElement("li");dijit.setWaiRole(_33f,"option");if(_33e.html){_33f.innerHTML=_33e.label;}else{_33f.appendChild(dojo.doc.createTextNode(_33e.label));}if(_33f.innerHTML==""){_33f.innerHTML=" ";}_33f.item=item;return _33f;},createOptions:function(_340,_341,_342){this.previousButton.style.display=(_341.start==0)?"none":"";dojo.attr(this.previousButton,"id",this.id+"_prev");dojo.forEach(_340,function(item,i){var _343=this._createOption(item,_342);_343.className="dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl");dojo.attr(_343,"id",this.id+i);this.domNode.insertBefore(_343,this.nextButton);},this);var _344=false;if(_341._maxOptions&&_341._maxOptions!=-1){if((_341.start+_341.count)<_341._maxOptions){_344=true;}else{if((_341.start+_341.count)>_341._maxOptions&&_341.count==_340.length){_344=true;}}}else{if(_341.count==_340.length){_344=true;}}this.nextButton.style.display=_344?"":"none";dojo.attr(this.nextButton,"id",this.id+"_next");return this.domNode.childNodes;},clearResultList:function(){while(this.domNode.childNodes.length>2){this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length-2]);}},_onMouseDown:function(evt){dojo.stopEvent(evt);},_onMouseUp:function(evt){if(evt.target===this.domNode||!this._highlighted_option){return;}else{if(evt.target==this.previousButton){this.onPage(-1);}else{if(evt.target==this.nextButton){this.onPage(1);}else{var tgt=evt.target;while(!tgt.item){tgt=tgt.parentNode;}this._setValueAttr({target:tgt},true);}}}},_onMouseOver:function(evt){if(evt.target===this.domNode){return;}var tgt=evt.target;if(!(tgt==this.previousButton||tgt==this.nextButton)){while(!tgt.item){tgt=tgt.parentNode;}}this._focusOptionNode(tgt);},_onMouseOut:function(evt){if(evt.target===this.domNode){return;}this._blurOptionNode();},_focusOptionNode:function(node){if(this._highlighted_option!=node){this._blurOptionNode();this._highlighted_option=node;dojo.addClass(this._highlighted_option,"dijitMenuItemSelected");}},_blurOptionNode:function(){if(this._highlighted_option){dojo.removeClass(this._highlighted_option,"dijitMenuItemSelected");this._highlighted_option=null;}},_highlightNextOption:function(){if(!this.getHighlightedOption()){var fc=this.domNode.firstChild;this._focusOptionNode(fc.style.display=="none"?fc.nextSibling:fc);}else{var ns=this._highlighted_option.nextSibling;if(ns&&ns.style.display!="none"){this._focusOptionNode(ns);}else{this.highlightFirstOption();}}dojo.window.scrollIntoView(this._highlighted_option);},highlightFirstOption:function(){var _345=this.domNode.firstChild;var _346=_345.nextSibling;this._focusOptionNode(_346.style.display=="none"?_345:_346);dojo.window.scrollIntoView(this._highlighted_option);},highlightLastOption:function(){this._focusOptionNode(this.domNode.lastChild.previousSibling);dojo.window.scrollIntoView(this._highlighted_option);},_highlightPrevOption:function(){if(!this.getHighlightedOption()){var lc=this.domNode.lastChild;this._focusOptionNode(lc.style.display=="none"?lc.previousSibling:lc);}else{var ps=this._highlighted_option.previousSibling;if(ps&&ps.style.display!="none"){this._focusOptionNode(ps);}else{this.highlightLastOption();}}dojo.window.scrollIntoView(this._highlighted_option);},_page:function(up){var _347=0;var _348=this.domNode.scrollTop;var _349=dojo.style(this.domNode,"height");if(!this.getHighlightedOption()){this._highlightNextOption();}while(_347<_349){if(up){if(!this.getHighlightedOption().previousSibling||this._highlighted_option.previousSibling.style.display=="none"){break;}this._highlightPrevOption();}else{if(!this.getHighlightedOption().nextSibling||this._highlighted_option.nextSibling.style.display=="none"){break;}this._highlightNextOption();}var _34a=this.domNode.scrollTop;_347+=(_34a-_348)*(up?-1:1);_348=_34a;}},pageUp:function(){this._page(true);},pageDown:function(){this._page(false);},getHighlightedOption:function(){var ho=this._highlighted_option;return (ho&&ho.parentNode)?ho:null;},handleKey:function(key){switch(key){case dojo.keys.DOWN_ARROW:this._highlightNextOption();break;case dojo.keys.PAGE_DOWN:this.pageDown();break;case dojo.keys.UP_ARROW:this._highlightPrevOption();break;case dojo.keys.PAGE_UP:this.pageUp();break;}}});dojo.declare("dijit.form.ComboBox",[dijit.form.ValidationTextBox,dijit.form.ComboBoxMixin],{_setValueAttr:function(_34b,_34c,_34d){this.item=null;if(!_34b){_34b="";}dijit.form.ValidationTextBox.prototype._setValueAttr.call(this,_34b,_34c,_34d);}});dojo.declare("dijit.form._ComboBoxDataStore",null,{constructor:function(root){this.root=root;if(root.tagName!="SELECT"&&root.firstChild){root=dojo.query("select",root);if(root.length>0){root=root[0];}else{this.root.innerHTML="<SELECT>"+this.root.innerHTML+"</SELECT>";root=this.root.firstChild;}this.root=root;}dojo.query("> option",root).forEach(function(node){node.innerHTML=dojo.trim(node.innerHTML);});},getValue:function(item,_34e,_34f){return (_34e=="value")?item.value:(item.innerText||item.textContent||"");},isItemLoaded:function(_350){return true;},getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Identity":true};},_fetchItems:function(args,_351,_352){if(!args.query){args.query={};}if(!args.query.name){args.query.name="";}if(!args.queryOptions){args.queryOptions={};}var _353=dojo.data.util.filter.patternToRegExp(args.query.name,args.queryOptions.ignoreCase),_354=dojo.query("> option",this.root).filter(function(_355){return (_355.innerText||_355.textContent||"").match(_353);});if(args.sort){_354.sort(dojo.data.util.sorter.createSortFunction(args.sort,this));}_351(_354,args);},close:function(_356){return;},getLabel:function(item){return item.innerHTML;},getIdentity:function(item){return dojo.attr(item,"value");},fetchItemByIdentity:function(args){var item=dojo.query("> option[value='"+args.identity+"']",this.root)[0];args.onItem(item);},fetchSelectedItem:function(){var root=this.root,si=root.selectedIndex;return typeof si=="number"?dojo.query("> option:nth-child("+(si!=-1?si+1:1)+")",root)[0]:null;}});dojo.extend(dijit.form._ComboBoxDataStore,dojo.data.util.simpleFetch);}if(!dojo._hasResource["dijit.form.FilteringSelect"]){dojo._hasResource["dijit.form.FilteringSelect"]=true;dojo.provide("dijit.form.FilteringSelect");dojo.declare("dijit.form.FilteringSelect",[dijit.form.MappedTextBox,dijit.form.ComboBoxMixin],{_isvalid:true,required:true,_lastDisplayedValue:"",isValid:function(){return this._isvalid||(!this.required&&this.get("displayedValue")=="");},_refreshState:function(){if(!this.searchTimer){this.inherited(arguments);}},_callbackSetLabel:function(_357,_358,_359){if((_358&&_358.query[this.searchAttr]!=this._lastQuery)||(!_358&&_357.length&&this.store.getIdentity(_357[0])!=this._lastQuery)){return;}if(!_357.length){this.valueNode.value="";dijit.form.TextBox.superclass._setValueAttr.call(this,"",_359||(_359===undefined&&!this._focused));this._isvalid=false;this.validate(this._focused);this.item=null;}else{this.set("item",_357[0],_359);}},_openResultList:function(_35a,_35b){if(_35b.query[this.searchAttr]!=this._lastQuery){return;}if(this.item===undefined){this._isvalid=_35a.length!=0||this._maxOptions!=0;this.validate(true);}dijit.form.ComboBoxMixin.prototype._openResultList.apply(this,arguments);},_getValueAttr:function(){return this.valueNode.value;},_getValueField:function(){return "value";},_setValueAttr:function(_35c,_35d){if(!this._onChangeActive){_35d=null;}this._lastQuery=_35c;if(_35c===null||_35c===""){this._setDisplayedValueAttr("",_35d);return;}var self=this;this.store.fetchItemByIdentity({identity:_35c,onItem:function(item){self._callbackSetLabel(item?[item]:[],undefined,_35d);}});},_setItemAttr:function(item,_35e,_35f){this._isvalid=true;this.inherited(arguments);this.valueNode.value=this.value;this._lastDisplayedValue=this.textbox.value;},_getDisplayQueryString:function(text){return text.replace(/([\\\*\?])/g,"\\$1");},_setDisplayedValueAttr:function(_360,_361){if(!this._created){_361=false;}if(this.store){this._hideResultList();var _362=dojo.clone(this.query);this._lastQuery=_362[this.searchAttr]=this._getDisplayQueryString(_360);this.textbox.value=_360;this._lastDisplayedValue=_360;var _363=this;var _364={query:_362,queryOptions:{ignoreCase:this.ignoreCase,deep:true},onComplete:function(_365,_366){_363._fetchHandle=null;dojo.hitch(_363,"_callbackSetLabel")(_365,_366,_361);},onError:function(_367){_363._fetchHandle=null;console.error("dijit.form.FilteringSelect: "+_367);dojo.hitch(_363,"_callbackSetLabel")([],undefined,false);}};dojo.mixin(_364,this.fetchProperties);this._fetchHandle=this.store.fetch(_364);}},postMixInProperties:function(){this.inherited(arguments);this._isvalid=!this.required;},undo:function(){this.set("displayedValue",this._lastDisplayedValue);}});}if(!dojo._hasResource["dijit.form.Form"]){dojo._hasResource["dijit.form.Form"]=true;dojo.provide("dijit.form.Form");dojo.declare("dijit.form.Form",[dijit._Widget,dijit._Templated,dijit.form._FormMixin],{name:"",action:"",method:"",encType:"","accept-charset":"",accept:"",target:"",templateString:"<form dojoAttachPoint='containerNode' dojoAttachEvent='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{action:"",method:"",encType:"","accept-charset":"",accept:"",target:""}),postMixInProperties:function(){this.nameAttrSetting=this.name?("name='"+this.name+"'"):"";this.inherited(arguments);},execute:function(_368){},onExecute:function(){},_setEncTypeAttr:function(_369){this.encType=_369;dojo.attr(this.domNode,"encType",_369);if(dojo.isIE){this.domNode.encoding=_369;}},postCreate:function(){if(dojo.isIE&&this.srcNodeRef&&this.srcNodeRef.attributes){var item=this.srcNodeRef.attributes.getNamedItem("encType");if(item&&!item.specified&&(typeof item.value=="string")){this.set("encType",item.value);}}this.inherited(arguments);},reset:function(e){var faux={returnValue:true,preventDefault:function(){this.returnValue=false;},stopPropagation:function(){},currentTarget:e?e.target:this.domNode,target:e?e.target:this.domNode};if(!(this.onReset(faux)===false)&&faux.returnValue){this.inherited(arguments,[]);}},onReset:function(e){return true;},_onReset:function(e){this.reset(e);dojo.stopEvent(e);return false;},_onSubmit:function(e){var fp=dijit.form.Form.prototype;if(this.execute!=fp.execute||this.onExecute!=fp.onExecute){dojo.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0");this.onExecute();this.execute(this.getValues());}if(this.onSubmit(e)===false){dojo.stopEvent(e);}},onSubmit:function(e){return this.isValid();},submit:function(){if(!(this.onSubmit()===false)){this.containerNode.submit();}}});}if(!dojo._hasResource["dijit.form.RadioButton"]){dojo._hasResource["dijit.form.RadioButton"]=true;dojo.provide("dijit.form.RadioButton");}if(!dojo._hasResource["dijit.form._FormSelectWidget"]){dojo._hasResource["dijit.form._FormSelectWidget"]=true;dojo.provide("dijit.form._FormSelectWidget");dojo.declare("dijit.form._FormSelectWidget",dijit.form._FormValueWidget,{multiple:false,options:null,store:null,query:null,queryOptions:null,onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,getOptions:function(_36a){var _36b=_36a,opts=this.options||[],l=opts.length;if(_36b===undefined){return opts;}if(dojo.isArray(_36b)){return dojo.map(_36b,"return this.getOptions(item);",this);}if(dojo.isObject(_36a)){if(!dojo.some(this.options,function(o,idx){if(o===_36b||(o.value&&o.value===_36b.value)){_36b=idx;return true;}return false;})){_36b=-1;}}if(typeof _36b=="string"){for(var i=0;i<l;i++){if(opts[i].value===_36b){_36b=i;break;}}}if(typeof _36b=="number"&&_36b>=0&&_36b<l){return this.options[_36b];}return null;},addOption:function(_36c){if(!dojo.isArray(_36c)){_36c=[_36c];}dojo.forEach(_36c,function(i){if(i&&dojo.isObject(i)){this.options.push(i);}},this);this._loadChildren();},removeOption:function(_36d){if(!dojo.isArray(_36d)){_36d=[_36d];}var _36e=this.getOptions(_36d);dojo.forEach(_36e,function(i){if(i){this.options=dojo.filter(this.options,function(node,idx){return (node.value!==i.value);});this._removeOptionItem(i);}},this);this._loadChildren();},updateOption:function(_36f){if(!dojo.isArray(_36f)){_36f=[_36f];}dojo.forEach(_36f,function(i){var _370=this.getOptions(i),k;if(_370){for(k in i){_370[k]=i[k];}}},this);this._loadChildren();},setStore:function(_371,_372,_373){var _374=this.store;_373=_373||{};if(_374!==_371){dojo.forEach(this._notifyConnections||[],dojo.disconnect);delete this._notifyConnections;if(_371&&_371.getFeatures()["dojo.data.api.Notification"]){this._notifyConnections=[dojo.connect(_371,"onNew",this,"_onNewItem"),dojo.connect(_371,"onDelete",this,"_onDeleteItem"),dojo.connect(_371,"onSet",this,"_onSetItem")];}this.store=_371;}this._onChangeActive=false;if(this.options&&this.options.length){this.removeOption(this.options);}if(_371){var cb=function(_375){if(this.sortByLabel&&!_373.sort&&_375.length){_375.sort(dojo.data.util.sorter.createSortFunction([{attribute:_371.getLabelAttributes(_375[0])[0]}],_371));}if(_373.onFetch){_375=_373.onFetch(_375);}dojo.forEach(_375,function(i){this._addOptionForItem(i);},this);this._loadingStore=false;this.set("value",(("_pendingValue" in this)?this._pendingValue:_372));delete this._pendingValue;if(!this.loadChildrenOnOpen){this._loadChildren();}else{this._pseudoLoadChildren(_375);}this._fetchedWith=opts;this._lastValueReported=this.multiple?[]:null;this._onChangeActive=true;this.onSetStore();this._handleOnChange(this.value);};var opts=dojo.mixin({onComplete:cb,scope:this},_373);this._loadingStore=true;_371.fetch(opts);}else{delete this._fetchedWith;}return _374;},_setValueAttr:function(_376,_377){if(this._loadingStore){this._pendingValue=_376;return;}var opts=this.getOptions()||[];if(!dojo.isArray(_376)){_376=[_376];}dojo.forEach(_376,function(i,idx){if(!dojo.isObject(i)){i=i+"";}if(typeof i==="string"){_376[idx]=dojo.filter(opts,function(node){return node.value===i;})[0]||{value:"",label:""};}},this);_376=dojo.filter(_376,function(i){return i&&i.value;});if(!this.multiple&&(!_376[0]||!_376[0].value)&&opts.length){_376[0]=opts[0];}dojo.forEach(opts,function(i){i.selected=dojo.some(_376,function(v){return v.value===i.value;});});var val=dojo.map(_376,function(i){return i.value;}),disp=dojo.map(_376,function(i){return i.label;});this.value=this.multiple?val:val[0];this._setDisplay(this.multiple?disp:disp[0]);this._updateSelection();this._handleOnChange(this.value,_377);},_getDisplayedValueAttr:function(){var val=this.get("value");if(!dojo.isArray(val)){val=[val];}var ret=dojo.map(this.getOptions(val),function(v){if(v&&"label" in v){return v.label;}else{if(v){return v.value;}}return null;},this);return this.multiple?ret:ret[0];},_getValueDeprecated:false,getValue:function(){return this._lastValue;},undo:function(){this._setValueAttr(this._lastValueReported,false);},_loadChildren:function(){if(this._loadingStore){return;}dojo.forEach(this._getChildren(),function(_378){_378.destroyRecursive();});dojo.forEach(this.options,this._addOptionItem,this);this._updateSelection();},_updateSelection:function(){this.value=this._getValueFromOpts();var val=this.value;if(!dojo.isArray(val)){val=[val];}if(val&&val[0]){dojo.forEach(this._getChildren(),function(_379){var _37a=dojo.some(val,function(v){return _379.option&&(v===_379.option.value);});dojo.toggleClass(_379.domNode,this.baseClass+"SelectedOption",_37a);dijit.setWaiState(_379.domNode,"selected",_37a);},this);}this._handleOnChange(this.value);},_getValueFromOpts:function(){var opts=this.getOptions()||[];if(!this.multiple&&opts.length){var opt=dojo.filter(opts,function(i){return i.selected;})[0];if(opt&&opt.value){return opt.value;}else{opts[0].selected=true;return opts[0].value;}}else{if(this.multiple){return dojo.map(dojo.filter(opts,function(i){return i.selected;}),function(i){return i.value;})||[];}}return "";},_onNewItem:function(item,_37b){if(!_37b||!_37b.parent){this._addOptionForItem(item);}},_onDeleteItem:function(item){var _37c=this.store;this.removeOption(_37c.getIdentity(item));},_onSetItem:function(item){this.updateOption(this._getOptionObjForItem(item));},_getOptionObjForItem:function(item){var _37d=this.store,_37e=_37d.getLabel(item),_37f=(_37e?_37d.getIdentity(item):null);return {value:_37f,label:_37e,item:item};},_addOptionForItem:function(item){var _380=this.store;if(!_380.isItemLoaded(item)){_380.loadItem({item:item,onComplete:function(i){this._addOptionForItem(item);},scope:this});return;}var _381=this._getOptionObjForItem(item);this.addOption(_381);},constructor:function(_382){this._oValue=(_382||{}).value||null;},_fillContent:function(){var opts=this.options;if(!opts){opts=this.options=this.srcNodeRef?dojo.query(">",this.srcNodeRef).map(function(node){if(node.getAttribute("type")==="separator"){return {value:"",label:"",selected:false,disabled:false};}return {value:node.getAttribute("value"),label:String(node.innerHTML),selected:node.getAttribute("selected")||false,disabled:node.getAttribute("disabled")||false};},this):[];}if(!this.value){this.value=this._getValueFromOpts();}else{if(this.multiple&&typeof this.value=="string"){this.value=this.value.split(",");}}},postCreate:function(){dojo.setSelectable(this.focusNode,false);this.inherited(arguments);this.connect(this,"onChange","_updateSelection");this.connect(this,"startup","_loadChildren");this._setValueAttr(this.value,null);},startup:function(){this.inherited(arguments);var _383=this.store,_384={};dojo.forEach(["query","queryOptions","onFetch"],function(i){if(this[i]){_384[i]=this[i];}delete this[i];},this);if(_383&&_383.getFeatures()["dojo.data.api.Identity"]){this.store=null;this.setStore(_383,this._oValue,_384);}},destroy:function(){dojo.forEach(this._notifyConnections||[],dojo.disconnect);this.inherited(arguments);},_addOptionItem:function(_385){},_removeOptionItem:function(_386){},_setDisplay:function(_387){},_getChildren:function(){return [];},_getSelectedOptionsAttr:function(){return this.getOptions(this.get("value"));},_pseudoLoadChildren:function(_388){},onSetStore:function(){}});}if(!dojo._hasResource["dijit._KeyNavContainer"]){dojo._hasResource["dijit._KeyNavContainer"]=true;dojo.provide("dijit._KeyNavContainer");dojo.declare("dijit._KeyNavContainer",dijit._Container,{tabIndex:"0",_keyNavCodes:{},connectKeyNavHandlers:function(_389,_38a){var _38b=(this._keyNavCodes={});var prev=dojo.hitch(this,this.focusPrev);var next=dojo.hitch(this,this.focusNext);dojo.forEach(_389,function(code){_38b[code]=prev;});dojo.forEach(_38a,function(code){_38b[code]=next;});this.connect(this.domNode,"onkeypress","_onContainerKeypress");this.connect(this.domNode,"onfocus","_onContainerFocus");},startupKeyNavChildren:function(){dojo.forEach(this.getChildren(),dojo.hitch(this,"_startupChild"));},addChild:function(_38c,_38d){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._startupChild(_38c);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){var _38e=this._getFirstFocusableChild();if(_38e){this.focusChild(_38e);}},focusNext:function(){var _38f=this._getNextFocusableChild(this.focusedChild,1);this.focusChild(_38f);},focusPrev:function(){var _390=this._getNextFocusableChild(this.focusedChild,-1);this.focusChild(_390,true);},focusChild:function(_391,last){if(this.focusedChild&&_391!==this.focusedChild){this._onChildBlur(this.focusedChild);}_391.focus(last?"end":"start");this.focusedChild=_391;},_startupChild:function(_392){_392.set("tabIndex","-1");this.connect(_392,"_onFocus",function(){_392.set("tabIndex",this.tabIndex);});this.connect(_392,"_onBlur",function(){_392.set("tabIndex","-1");});},_onContainerFocus:function(evt){if(evt.target!==this.domNode){return;}this.focusFirstChild();dojo.attr(this.domNode,"tabIndex","-1");},_onBlur:function(evt){if(this.tabIndex){dojo.attr(this.domNode,"tabIndex",this.tabIndex);}this.inherited(arguments);},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var func=this._keyNavCodes[evt.charOrCode];if(func){func();dojo.stopEvent(evt);}},_onChildBlur:function(_393){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getNextFocusableChild:function(_394,dir){if(_394){_394=this._getSiblingOfChild(_394,dir);}var _395=this.getChildren();for(var i=0;i<_395.length;i++){if(!_394){_394=_395[(dir>0)?0:(_395.length-1)];}if(_394.isFocusable()){return _394;}_394=this._getSiblingOfChild(_394,dir);}return null;}});}if(!dojo._hasResource["dijit.MenuItem"]){dojo._hasResource["dijit.MenuItem"]=true;dojo.provide("dijit.MenuItem");dojo.declare("dijit.MenuItem",[dijit._Widget,dijit._Templated,dijit._Contained,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/MenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),baseClass:"dijitMenuItem",label:"",iconClass:"",accelKey:"",disabled:false,_fillContent:function(_396){if(_396&&!("label" in this.params)){this.set("label",_396.innerHTML);}},postCreate:function(){this.inherited(arguments);dojo.setSelectable(this.domNode,false);var _397=this.id+"_text";dojo.attr(this.containerNode,"id",_397);if(this.accelKeyNode){dojo.attr(this.accelKeyNode,"id",this.id+"_accel");_397+=" "+this.id+"_accel";}dijit.setWaiState(this.domNode,"labelledby",_397);},_onHover:function(){this.getParent().onItemHover(this);},_onUnhover:function(){this.getParent().onItemUnhover(this);this._hovering=false;this._setStateClass();},_onClick:function(evt){this.getParent().onItemClick(this,evt);dojo.stopEvent(evt);},onClick:function(evt){},focus:function(){try{if(dojo.isIE==8){this.containerNode.focus();}dijit.focus(this.focusNode);}catch(e){}},_onFocus:function(){this._setSelected(true);this.getParent()._onItemFocus(this);this.inherited(arguments);},_setSelected:function(_398){dojo.toggleClass(this.domNode,"dijitMenuItemSelected",_398);},setLabel:function(_399){dojo.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_399);},setDisabled:function(_39a){dojo.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_39a);},_setDisabledAttr:function(_39b){this.disabled=_39b;dijit.setWaiState(this.focusNode,"disabled",_39b?"true":"false");},_setAccelKeyAttr:function(_39c){this.accelKey=_39c;this.accelKeyNode.style.display=_39c?"":"none";this.accelKeyNode.innerHTML=_39c;dojo.attr(this.containerNode,"colSpan",_39c?"1":"2");}});}if(!dojo._hasResource["dijit.PopupMenuItem"]){dojo._hasResource["dijit.PopupMenuItem"]=true;dojo.provide("dijit.PopupMenuItem");dojo.declare("dijit.PopupMenuItem",dijit.MenuItem,{_fillContent:function(){if(this.srcNodeRef){var _39d=dojo.query("*",this.srcNodeRef);dijit.PopupMenuItem.superclass._fillContent.call(this,_39d[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}this.inherited(arguments);if(!this.popup){var node=dojo.query("[widgetId]",this.dropDownContainer)[0];this.popup=dijit.byNode(node);}dojo.body().appendChild(this.popup.domNode);this.popup.startup();this.popup.domNode.style.display="none";if(this.arrowWrapper){dojo.style(this.arrowWrapper,"visibility","");}dijit.setWaiState(this.focusNode,"haspopup","true");},destroyDescendants:function(){if(this.popup){if(!this.popup._destroyed){this.popup.destroyRecursive();}delete this.popup;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.CheckedMenuItem"]){dojo._hasResource["dijit.CheckedMenuItem"]=true;dojo.provide("dijit.CheckedMenuItem");dojo.declare("dijit.CheckedMenuItem",dijit.MenuItem,{templateString:dojo.cache("dijit","templates/CheckedMenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">✓</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\"> </td>\n</tr>\n"),checked:false,_setCheckedAttr:function(_39e){dojo.toggleClass(this.domNode,"dijitCheckedMenuItemChecked",_39e);dijit.setWaiState(this.domNode,"checked",_39e);this.checked=_39e;},onChange:function(_39f){},_onClick:function(e){if(!this.disabled){this.set("checked",!this.checked);this.onChange(this.checked);}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.MenuSeparator"]){dojo._hasResource["dijit.MenuSeparator"]=true;dojo.provide("dijit.MenuSeparator");dojo.declare("dijit.MenuSeparator",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:dojo.cache("dijit","templates/MenuSeparator.html","<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n"),postCreate:function(){dojo.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});}if(!dojo._hasResource["dijit.Menu"]){dojo._hasResource["dijit.Menu"]=true;dojo.provide("dijit.Menu");dojo.declare("dijit._MenuBase",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{parentMenu:null,popupDelay:500,startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_3a0){_3a0.startup();});this.startupKeyNavChildren();this.inherited(arguments);},onExecute:function(){},onCancel:function(_3a1){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.focusedChild._onClick(evt);}else{var _3a2=this._getTopMenu();if(_3a2&&_3a2._isMenuBar){_3a2.focusNext();}}},_onPopupHover:function(evt){if(this.currentPopup&&this.currentPopup._pendingClose_timer){var _3a3=this.currentPopup.parentMenu;if(_3a3.focusedChild){_3a3.focusedChild._setSelected(false);}_3a3.focusedChild=this.currentPopup.from_item;_3a3.focusedChild._setSelected(true);this._stopPendingCloseTimer(this.currentPopup);}},onItemHover:function(item){if(this.isActive){this.focusChild(item);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=setTimeout(dojo.hitch(this,"_openPopup"),this.popupDelay);}}if(this.focusedChild){this.focusChild(item);}this._hoveredChild=item;},_onChildBlur:function(item){this._stopPopupTimer();item._setSelected(false);var _3a4=item.popup;if(_3a4){this._stopPendingCloseTimer(_3a4);_3a4._pendingClose_timer=setTimeout(function(){_3a4._pendingClose_timer=null;if(_3a4.parentMenu){_3a4.parentMenu.currentPopup=null;}dijit.popup.close(_3a4);},this.popupDelay);}},onItemUnhover:function(item){if(this.isActive){this._stopPopupTimer();}if(this._hoveredChild==item){this._hoveredChild=null;}},_stopPopupTimer:function(){if(this.hover_timer){clearTimeout(this.hover_timer);this.hover_timer=null;}},_stopPendingCloseTimer:function(_3a5){if(_3a5._pendingClose_timer){clearTimeout(_3a5._pendingClose_timer);_3a5._pendingClose_timer=null;}},_stopFocusTimer:function(){if(this._focus_timer){clearTimeout(this._focus_timer);this._focus_timer=null;}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(item,evt){if(typeof this.isShowingNow=="undefined"){this._markActive();}this.focusChild(item);if(item.disabled){return false;}if(item.popup){this._openPopup();}else{this.onExecute();item.onClick(evt);}},_openPopup:function(){this._stopPopupTimer();var _3a6=this.focusedChild;if(!_3a6){return;}var _3a7=_3a6.popup;if(_3a7.isShowingNow){return;}if(this.currentPopup){this._stopPendingCloseTimer(this.currentPopup);dijit.popup.close(this.currentPopup);}_3a7.parentMenu=this;_3a7.from_item=_3a6;var self=this;dijit.popup.open({parent:this,popup:_3a7,around:_3a6.domNode,orient:this._orient||(this.isLeftToRight()?{"TR":"TL","TL":"TR","BR":"BL","BL":"BR"}:{"TL":"TR","TR":"TL","BL":"BR","BR":"BL"}),onCancel:function(){self.focusChild(_3a6);self._cleanUp();_3a6._setSelected(true);self.focusedChild=_3a6;},onExecute:dojo.hitch(this,"_cleanUp")});this.currentPopup=_3a7;_3a7.connect(_3a7.domNode,"onmouseenter",dojo.hitch(self,"_onPopupHover"));if(_3a7.focus){_3a7._focus_timer=setTimeout(dojo.hitch(_3a7,function(){this._focus_timer=null;this.focus();}),0);}},_markActive:function(){this.isActive=true;dojo.addClass(this.domNode,"dijitMenuActive");dojo.removeClass(this.domNode,"dijitMenuPassive");},onOpen:function(e){this.isShowingNow=true;this._markActive();},_markInactive:function(){this.isActive=false;dojo.removeClass(this.domNode,"dijitMenuActive");dojo.addClass(this.domNode,"dijitMenuPassive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow=false;this.parentMenu=null;},_closeChild:function(){this._stopPopupTimer();if(this.focusedChild){this.focusedChild._setSelected(false);this.focusedChild._onUnhover();this.focusedChild=null;}if(this.currentPopup){dijit.popup.close(this.currentPopup);this.currentPopup=null;}},_onItemFocus:function(item){if(this._hoveredChild&&this._hoveredChild!=item){this._hoveredChild._onUnhover();}},_onBlur:function(){this._cleanUp();this.inherited(arguments);},_cleanUp:function(){this._closeChild();if(typeof this.isShowingNow=="undefined"){this._markInactive();}}});dojo.declare("dijit.Menu",dijit._MenuBase,{constructor:function(){this._bindings=[];},templateString:dojo.cache("dijit","templates/Menu.html","<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" waiRole=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\" cellspacing=0>\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"),baseClass:"dijitMenu",targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(dojo.body());}else{dojo.forEach(this.targetNodeIds,this.bindDomNode,this);}var k=dojo.keys,l=this.isLeftToRight();this._openSubMenuKey=l?k.RIGHT_ARROW:k.LEFT_ARROW;this._closeSubMenuKey=l?k.LEFT_ARROW:k.RIGHT_ARROW;this.connectKeyNavHandlers([k.UP_ARROW],[k.DOWN_ARROW]);},_onKeyPress:function(evt){if(evt.ctrlKey||evt.altKey){return;}switch(evt.charOrCode){case this._openSubMenuKey:this._moveToPopup(evt);dojo.stopEvent(evt);break;case this._closeSubMenuKey:if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{dojo.stopEvent(evt);}break;}},_iframeContentWindow:function(_3a8){var win=dojo.window.get(this._iframeContentDocument(_3a8))||this._iframeContentDocument(_3a8)["__parent__"]||(_3a8.name&&dojo.doc.frames[_3a8.name])||null;return win;},_iframeContentDocument:function(_3a9){var doc=_3a9.contentDocument||(_3a9.contentWindow&&_3a9.contentWindow.document)||(_3a9.name&&dojo.doc.frames[_3a9.name]&&dojo.doc.frames[_3a9.name].document)||null;return doc;},bindDomNode:function(node){node=dojo.byId(node);var cn;if(node.tagName.toLowerCase()=="iframe"){var _3aa=node,win=this._iframeContentWindow(_3aa);cn=dojo.withGlobal(win,dojo.body);}else{cn=(node==dojo.body()?dojo.doc.documentElement:node);}var _3ab={node:node,iframe:_3aa};dojo.attr(node,"_dijitMenu"+this.id,this._bindings.push(_3ab));var _3ac=dojo.hitch(this,function(cn){return [dojo.connect(cn,this.leftClickToOpen?"onclick":"oncontextmenu",this,function(evt){dojo.stopEvent(evt);this._scheduleOpen(evt.target,_3aa,{x:evt.pageX,y:evt.pageY});}),dojo.connect(cn,"onkeydown",this,function(evt){if(evt.shiftKey&&evt.keyCode==dojo.keys.F10){dojo.stopEvent(evt);this._scheduleOpen(evt.target,_3aa);}})];});_3ab.connects=cn?_3ac(cn):[];if(_3aa){_3ab.onloadHandler=dojo.hitch(this,function(){var win=this._iframeContentWindow(_3aa);cn=dojo.withGlobal(win,dojo.body);_3ab.connects=_3ac(cn);});if(_3aa.addEventListener){_3aa.addEventListener("load",_3ab.onloadHandler,false);}else{_3aa.attachEvent("onload",_3ab.onloadHandler);}}},unBindDomNode:function(_3ad){var node;try{node=dojo.byId(_3ad);}catch(e){return;}var _3ae="_dijitMenu"+this.id;if(node&&dojo.hasAttr(node,_3ae)){var bid=dojo.attr(node,_3ae)-1,b=this._bindings[bid];dojo.forEach(b.connects,dojo.disconnect);var _3af=b.iframe;if(_3af){if(_3af.removeEventListener){_3af.removeEventListener("load",b.onloadHandler,false);}else{_3af.detachEvent("onload",b.onloadHandler);}}dojo.removeAttr(node,_3ae);delete this._bindings[bid];}},_scheduleOpen:function(_3b0,_3b1,_3b2){if(!this._openTimer){this._openTimer=setTimeout(dojo.hitch(this,function(){delete this._openTimer;this._openMyself({target:_3b0,iframe:_3b1,coords:_3b2});}),1);}},_openMyself:function(args){var _3b3=args.target,_3b4=args.iframe,_3b5=args.coords;if(_3b5){if(_3b4){var od=_3b3.ownerDocument,ifc=dojo.position(_3b4,true),win=this._iframeContentWindow(_3b4),_3b6=dojo.withGlobal(win,"_docScroll",dojo);var cs=dojo.getComputedStyle(_3b4),tp=dojo._toPixelValue,left=(dojo.isIE&&dojo.isQuirks?0:tp(_3b4,cs.paddingLeft))+(dojo.isIE&&dojo.isQuirks?tp(_3b4,cs.borderLeftWidth):0),top=(dojo.isIE&&dojo.isQuirks?0:tp(_3b4,cs.paddingTop))+(dojo.isIE&&dojo.isQuirks?tp(_3b4,cs.borderTopWidth):0);_3b5.x+=ifc.x+left-_3b6.x;_3b5.y+=ifc.y+top-_3b6.y;}}else{_3b5=dojo.position(_3b3,true);_3b5.x+=10;_3b5.y+=10;}var self=this;var _3b7=dijit.getFocus(this);function _3b8(){if(self.refocus){dijit.focus(_3b7);}dijit.popup.close(self);};dijit.popup.open({popup:this,x:_3b5.x,y:_3b5.y,onExecute:_3b8,onCancel:_3b8,orient:this.isLeftToRight()?"L":"R"});this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);dijit.popup.close(this);};},uninitialize:function(){dojo.forEach(this._bindings,function(b){if(b){this.unBindDomNode(b.node);}},this);this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.Select"]){dojo._hasResource["dijit.form.Select"]=true;dojo.provide("dijit.form.Select");dojo.declare("dijit.form._SelectMenu",dijit.Menu,{buildRendering:function(){this.inherited(arguments);var o=(this.menuTableNode=this.domNode);var n=(this.domNode=dojo.create("div",{style:{overflowX:"hidden",overflowY:"scroll"}}));if(o.parentNode){o.parentNode.replaceChild(n,o);}dojo.removeClass(o,"dijitMenuTable");n.className=o.className+" dijitSelectMenu";o.className="dijitReset dijitMenuTable";dijit.setWaiRole(o,"listbox");dijit.setWaiRole(n,"presentation");n.appendChild(o);},resize:function(mb){if(mb){dojo.marginBox(this.domNode,mb);if("w" in mb){this.menuTableNode.style.width="100%";}}}});dojo.declare("dijit.form.Select",[dijit.form._FormSelectWidget,dijit._HasDropDown],{baseClass:"dijitSelect",templateString:dojo.cache("dijit.form","templates/Select.html","<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdojoAttachPoint=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\twaiRole=\"combobox\" waiState=\"haspopup-true\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" waiRole=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" dojoAttachPoint=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} dojoAttachPoint=\"valueNode\" value=\"${value}\" waiState=\"hidden-true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdojoAttachPoint=\"titleNode\" waiRole=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form._FormSelectWidget.prototype.attributeMap),{style:"tableNode"}),required:false,state:"",tooltipPosition:[],emptyLabel:"",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){this.inherited(arguments);if(this.options.length&&!this.value&&this.srcNodeRef){var si=this.srcNodeRef.selectedIndex;this.value=this.options[si!=-1?si:0].value;}this.dropDown=new dijit.form._SelectMenu({id:this.id+"_menu"});dojo.addClass(this.dropDown.domNode,this.baseClass+"Menu");},_getMenuItemForOption:function(_3b9){if(!_3b9.value){return new dijit.MenuSeparator();}else{var _3ba=dojo.hitch(this,"_setValueAttr",_3b9);var item=new dijit.MenuItem({option:_3b9,label:_3b9.label,onClick:_3ba,disabled:_3b9.disabled||false});dijit.setWaiRole(item.focusNode,"listitem");return item;}},_addOptionItem:function(_3bb){if(this.dropDown){this.dropDown.addChild(this._getMenuItemForOption(_3bb));}},_getChildren:function(){if(!this.dropDown){return [];}return this.dropDown.getChildren();},_loadChildren:function(_3bc){if(_3bc===true){if(this.dropDown){delete this.dropDown.focusedChild;}if(this.options.length){this.inherited(arguments);}else{dojo.forEach(this._getChildren(),function(_3bd){_3bd.destroyRecursive();});var item=new dijit.MenuItem({label:" "});this.dropDown.addChild(item);}}else{this._updateSelection();}var len=this.options.length;this._isLoaded=false;this._childrenLoaded=true;if(!this._loadingStore){this._setValueAttr(this.value);}},_setValueAttr:function(_3be){this.inherited(arguments);dojo.attr(this.valueNode,"value",this.get("value"));},_setDisplay:function(_3bf){this.containerNode.innerHTML="<span class=\"dijitReset dijitInline "+this.baseClass+"Label\">"+(_3bf||this.emptyLabel||" ")+"</span>";dijit.setWaiState(this.focusNode,"valuetext",(_3bf||this.emptyLabel||" "));},validate:function(_3c0){var _3c1=this.isValid(_3c0);this.state=_3c1?"":"Error";this._setStateClass();dijit.setWaiState(this.focusNode,"invalid",_3c1?"false":"true");var _3c2=_3c1?"":this._missingMsg;if(this._message!==_3c2){this._message=_3c2;dijit.hideTooltip(this.domNode);if(_3c2){dijit.showTooltip(_3c2,this.domNode,this.tooltipPosition,!this.isLeftToRight());}}return _3c1;},isValid:function(_3c3){return (!this.required||!(/^\s*$/.test(this.value)));},reset:function(){this.inherited(arguments);dijit.hideTooltip(this.domNode);this.state="";this._setStateClass();delete this._message;},postMixInProperties:function(){this.inherited(arguments);this._missingMsg=dojo.i18n.getLocalization("dijit.form","validate",this.lang).missingMessage;},postCreate:function(){this.inherited(arguments);if(this.tableNode.style.width){dojo.addClass(this.domNode,this.baseClass+"FixedWidth");}},isLoaded:function(){return this._isLoaded;},loadDropDown:function(_3c4){this._loadChildren(true);this._isLoaded=true;_3c4();},closeDropDown:function(){this.inherited(arguments);if(this.dropDown&&this.dropDown.menuTableNode){this.dropDown.menuTableNode.style.width="";}},uninitialize:function(_3c5){if(this.dropDown&&!this.dropDown._destroyed){this.dropDown.destroyRecursive(_3c5);delete this.dropDown;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.SimpleTextarea"]){dojo._hasResource["dijit.form.SimpleTextarea"]=true;dojo.provide("dijit.form.SimpleTextarea");dojo.declare("dijit.form.SimpleTextarea",dijit.form.TextBox,{baseClass:"dijitTextBox dijitTextArea",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{rows:"textbox",cols:"textbox"}),rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){if(!this.value&&this.srcNodeRef){this.value=this.srcNodeRef.value;}this.inherited(arguments);},filter:function(_3c6){if(_3c6){_3c6=_3c6.replace(/\r/g,"");}return this.inherited(arguments);},postCreate:function(){this.inherited(arguments);if(dojo.isIE&&this.cols){dojo.addClass(this.textbox,"dijitTextAreaCols");}},_previousValue:"",_onInput:function(e){if(this.maxLength){var _3c7=parseInt(this.maxLength);var _3c8=this.textbox.value.replace(/\r/g,"");var _3c9=_3c8.length-_3c7;if(_3c9>0){if(e){dojo.stopEvent(e);}var _3ca=this.textbox;if(_3ca.selectionStart){var pos=_3ca.selectionStart;var cr=0;if(dojo.isOpera){cr=(this.textbox.value.substring(0,pos).match(/\r/g)||[]).length;}this.textbox.value=_3c8.substring(0,pos-_3c9-cr)+_3c8.substring(pos-cr);_3ca.setSelectionRange(pos-_3c9,pos-_3c9);}else{if(dojo.doc.selection){_3ca.focus();var _3cb=dojo.doc.selection.createRange();_3cb.moveStart("character",-_3c9);_3cb.text="";_3cb.select();}}}this._previousValue=this.textbox.value;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.InlineEditBox"]){dojo._hasResource["dijit.InlineEditBox"]=true;dojo.provide("dijit.InlineEditBox");dojo.declare("dijit.InlineEditBox",dijit._Widget,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:"dijit.form.TextBox",editorWrapper:"dijit._InlineEditor",editorParams:{},onChange:function(_3cc){},onCancel:function(){},width:"100%",value:"",noValueIndicator:dojo.isIE<=6?"<span style='font-family: wingdings; text-decoration: underline;'> ✍ </span>":"<span style='text-decoration: underline;'> ✍ </span>",constructor:function(){this.editorParams={};},postMixInProperties:function(){this.inherited(arguments);this.displayNode=this.srcNodeRef;var _3cd={ondijitclick:"_onClick",onmouseover:"_onMouseOver",onmouseout:"_onMouseOut",onfocus:"_onMouseOver",onblur:"_onMouseOut"};for(var name in _3cd){this.connect(this.displayNode,name,_3cd[name]);}dijit.setWaiRole(this.displayNode,"button");if(!this.displayNode.getAttribute("tabIndex")){this.displayNode.setAttribute("tabIndex",0);}if(!this.value&&!("value" in this.params)){this.value=dojo.trim(this.renderAsHtml?this.displayNode.innerHTML:(this.displayNode.innerText||this.displayNode.textContent||""));}if(!this.value){this.displayNode.innerHTML=this.noValueIndicator;}dojo.addClass(this.displayNode,"dijitInlineEditBoxDisplayMode");},setDisabled:function(_3ce){dojo.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_3ce);},_setDisabledAttr:function(_3cf){this.disabled=_3cf;dijit.setWaiState(this.domNode,"disabled",_3cf);if(_3cf){this.displayNode.removeAttribute("tabIndex");}else{this.displayNode.setAttribute("tabIndex",0);}dojo.toggleClass(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",_3cf);},_onMouseOver:function(){if(!this.disabled){dojo.addClass(this.displayNode,"dijitInlineEditBoxDisplayModeHover");}},_onMouseOut:function(){dojo.removeClass(this.displayNode,"dijitInlineEditBoxDisplayModeHover");},_onClick:function(e){if(this.disabled){return;}if(e){dojo.stopEvent(e);}this._onMouseOut();setTimeout(dojo.hitch(this,"edit"),0);},edit:function(){if(this.disabled||this.editing){return;}this.editing=true;this._savedPosition=dojo.style(this.displayNode,"position")||"static";this._savedOpacity=dojo.style(this.displayNode,"opacity")||"1";this._savedTabIndex=dojo.attr(this.displayNode,"tabIndex")||"0";if(this.wrapperWidget){var ew=this.wrapperWidget.editWidget;ew.set("displayedValue" in ew?"displayedValue":"value",this.value);}else{var _3d0=dojo.create("span",null,this.domNode,"before");var ewc=dojo.getObject(this.editorWrapper);this.wrapperWidget=new ewc({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:dojo.getComputedStyle(this.displayNode),save:dojo.hitch(this,"save"),cancel:dojo.hitch(this,"cancel")},_3d0);}var ww=this.wrapperWidget;if(dojo.isIE){dijit.focus(dijit.getFocus());}dojo.style(this.displayNode,{position:"absolute",opacity:"0",display:"none"});dojo.style(ww.domNode,{position:this._savedPosition,visibility:"visible",opacity:"1"});dojo.attr(this.displayNode,"tabIndex","-1");setTimeout(dojo.hitch(this,function(){ww.focus();ww._resetValue=ww.getValue();}),0);},_onBlur:function(){this.inherited(arguments);if(!this.editing){}},destroy:function(){if(this.wrapperWidget){this.wrapperWidget.destroy();delete this.wrapperWidget;}this.inherited(arguments);},_showText:function(_3d1){var ww=this.wrapperWidget;dojo.style(ww.domNode,{position:"absolute",visibility:"hidden",opacity:"0"});dojo.style(this.displayNode,{position:this._savedPosition,opacity:this._savedOpacity,display:""});dojo.attr(this.displayNode,"tabIndex",this._savedTabIndex);if(_3d1){dijit.focus(this.displayNode);}},save:function(_3d2){if(this.disabled||!this.editing){return;}this.editing=false;var ww=this.wrapperWidget;var _3d3=ww.getValue();this.set("value",_3d3);setTimeout(dojo.hitch(this,"onChange",_3d3),0);this._showText(_3d2);},setValue:function(val){dojo.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(val){this.value=val=dojo.trim(val);if(!this.renderAsHtml){val=val.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""").replace(/\n/g,"<br>");}this.displayNode.innerHTML=val||this.noValueIndicator;},getValue:function(){dojo.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},cancel:function(_3d4){if(this.disabled||!this.editing){return;}this.editing=false;setTimeout(dojo.hitch(this,"onCancel"),0);this._showText(_3d4);}});dojo.declare("dijit._InlineEditor",[dijit._Widget,dijit._Templated],{templateString:dojo.cache("dijit","templates/InlineEditBox.html","<span dojoAttachPoint=\"editNode\" waiRole=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdojoAttachEvent=\"onkeypress: _onKeyPress\"\n\t><span dojoAttachPoint=\"editorPlaceholder\"></span\n\t><span dojoAttachPoint=\"buttonContainer\"\n\t\t><button class='saveButton' dojoAttachPoint=\"saveButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:save\" label=\"${buttonSave}\"></button\n\t\t><button class='cancelButton' dojoAttachPoint=\"cancelButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:cancel\" label=\"${buttonCancel}\"></button\n\t></span\n></span>\n"),widgetsInTemplate:true,postMixInProperties:function(){this.inherited(arguments);this.messages=dojo.i18n.getLocalization("dijit","common",this.lang);dojo.forEach(["buttonSave","buttonCancel"],function(prop){if(!this[prop]){this[prop]=this.messages[prop];}},this);},postCreate:function(){var cls=dojo.getObject(this.editor);var _3d5=this.sourceStyle,_3d6="line-height:"+_3d5.lineHeight+";",_3d7=dojo.getComputedStyle(this.domNode);dojo.forEach(["Weight","Family","Size","Style"],function(prop){var _3d8=_3d5["font"+prop],_3d9=_3d7["font"+prop];if(_3d9!=_3d8){_3d6+="font-"+prop+":"+_3d5["font"+prop]+";";}},this);dojo.forEach(["marginTop","marginBottom","marginLeft","marginRight"],function(prop){this.domNode.style[prop]=_3d5[prop];},this);var _3da=this.inlineEditBox.width;if(_3da=="100%"){_3d6+="width:100%;";this.domNode.style.display="block";}else{_3d6+="width:"+(_3da+(Number(_3da)==_3da?"px":""))+";";}var _3db=dojo.delegate(this.inlineEditBox.editorParams,{style:_3d6,dir:this.dir,lang:this.lang});_3db["displayedValue" in cls.prototype?"displayedValue":"value"]=this.value;var ew=(this.editWidget=new cls(_3db,this.editorPlaceholder));if(this.inlineEditBox.autoSave){dojo.destroy(this.buttonContainer);this.connect(ew,"onChange","_onChange");this.connect(ew,"onKeyPress","_onKeyPress");}else{if("intermediateChanges" in cls.prototype){ew.set("intermediateChanges",true);this.connect(ew,"onChange","_onIntermediateChange");this.saveButton.set("disabled",true);}}},_onIntermediateChange:function(val){this.saveButton.set("disabled",(this.getValue()==this._resetValue)||!this.enableSave());},destroy:function(){this.editWidget.destroy(true);this.inherited(arguments);},getValue:function(){var ew=this.editWidget;return String(ew.get("displayedValue" in ew?"displayedValue":"value"));},_onKeyPress:function(e){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(e.altKey||e.ctrlKey){return;}if(e.charOrCode==dojo.keys.ESCAPE){dojo.stopEvent(e);this.cancel(true);}else{if(e.charOrCode==dojo.keys.ENTER&&e.target.tagName=="INPUT"){dojo.stopEvent(e);this._onChange();}}}},_onBlur:function(){this.inherited(arguments);if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(this.getValue()==this._resetValue){this.cancel(false);}else{if(this.enableSave()){this.save(false);}}}},_onChange:function(){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave()){dojo.style(this.inlineEditBox.displayNode,{display:""});dijit.focus(this.inlineEditBox.displayNode);}},enableSave:function(){return (this.editWidget.isValid?this.editWidget.isValid():true);},focus:function(){this.editWidget.focus();setTimeout(dojo.hitch(this,function(){if(this.editWidget.focusNode&&this.editWidget.focusNode.tagName=="INPUT"){dijit.selectInputText(this.editWidget.focusNode);}}),0);}});}if(!dojo._hasResource["dojo.cookie"]){dojo._hasResource["dojo.cookie"]=true;dojo.provide("dojo.cookie");dojo.cookie=function(name,_3dc,_3dd){var c=document.cookie;if(arguments.length==1){var _3de=c.match(new RegExp("(?:^|; )"+dojo.regexp.escapeString(name)+"=([^;]*)"));return _3de?decodeURIComponent(_3de[1]):undefined;}else{_3dd=_3dd||{};var exp=_3dd.expires;if(typeof exp=="number"){var d=new Date();d.setTime(d.getTime()+exp*24*60*60*1000);exp=_3dd.expires=d;}if(exp&&exp.toUTCString){_3dd.expires=exp.toUTCString();}_3dc=encodeURIComponent(_3dc);var _3df=name+"="+_3dc,_3e0;for(_3e0 in _3dd){_3df+="; "+_3e0;var _3e1=_3dd[_3e0];if(_3e1!==true){_3df+="="+_3e1;}}document.cookie=_3df;}};dojo.cookie.isSupported=function(){if(!("cookieEnabled" in navigator)){this("__djCookieTest__","CookiesAllowed");navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";if(navigator.cookieEnabled){this("__djCookieTest__","",{expires:-1});}}return navigator.cookieEnabled;};}if(!dojo._hasResource["dijit.layout.StackController"]){dojo._hasResource["dijit.layout.StackController"]=true;dojo.provide("dijit.layout.StackController");dojo.declare("dijit.layout.StackController",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span wairole='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>",containerId:"",buttonWidget:"dijit.layout._StackButton",postCreate:function(){dijit.setWaiRole(this.domNode,"tablist");this.pane2button={};this.pane2handles={};this.subscribe(this.containerId+"-startup","onStartup");this.subscribe(this.containerId+"-addChild","onAddChild");this.subscribe(this.containerId+"-removeChild","onRemoveChild");this.subscribe(this.containerId+"-selectChild","onSelectChild");this.subscribe(this.containerId+"-containerKeyPress","onContainerKeyPress");},onStartup:function(info){dojo.forEach(info.children,this.onAddChild,this);if(info.selected){this.onSelectChild(info.selected);}},destroy:function(){for(var pane in this.pane2button){this.onRemoveChild(dijit.byId(pane));}this.inherited(arguments);},onAddChild:function(page,_3e2){var cls=dojo.getObject(this.buttonWidget);var _3e3=new cls({id:this.id+"_"+page.id,label:page.title,dir:page.dir,lang:page.lang,showLabel:page.showTitle,iconClass:page.iconClass,closeButton:page.closable,title:page.tooltip});dijit.setWaiState(_3e3.focusNode,"selected","false");this.pane2handles[page.id]=[this.connect(page,"set",function(name,_3e4){var _3e5={title:"label",showTitle:"showLabel",iconClass:"iconClass",closable:"closeButton",tooltip:"title"}[name];if(_3e5){_3e3.set(_3e5,_3e4);}}),this.connect(_3e3,"onClick",dojo.hitch(this,"onButtonClick",page)),this.connect(_3e3,"onClickCloseButton",dojo.hitch(this,"onCloseButtonClick",page))];this.addChild(_3e3,_3e2);this.pane2button[page.id]=_3e3;page.controlButton=_3e3;if(!this._currentChild){_3e3.focusNode.setAttribute("tabIndex","0");dijit.setWaiState(_3e3.focusNode,"selected","true");this._currentChild=page;}if(!this.isLeftToRight()&&dojo.isIE&&this._rectifyRtlTabList){this._rectifyRtlTabList();}},onRemoveChild:function(page){if(this._currentChild===page){this._currentChild=null;}dojo.forEach(this.pane2handles[page.id],this.disconnect,this);delete this.pane2handles[page.id];var _3e6=this.pane2button[page.id];if(_3e6){this.removeChild(_3e6);delete this.pane2button[page.id];_3e6.destroy();}delete page.controlButton;},onSelectChild:function(page){if(!page){return;}if(this._currentChild){var _3e7=this.pane2button[this._currentChild.id];_3e7.set("checked",false);dijit.setWaiState(_3e7.focusNode,"selected","false");_3e7.focusNode.setAttribute("tabIndex","-1");}var _3e8=this.pane2button[page.id];_3e8.set("checked",true);dijit.setWaiState(_3e8.focusNode,"selected","true");this._currentChild=page;_3e8.focusNode.setAttribute("tabIndex","0");var _3e9=dijit.byId(this.containerId);dijit.setWaiState(_3e9.containerNode,"labelledby",_3e8.id);},onButtonClick:function(page){var _3ea=dijit.byId(this.containerId);_3ea.selectChild(page);},onCloseButtonClick:function(page){var _3eb=dijit.byId(this.containerId);_3eb.closeChild(page);if(this._currentChild){var b=this.pane2button[this._currentChild.id];if(b){dijit.focus(b.focusNode||b.domNode);}}},adjacent:function(_3ec){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){_3ec=!_3ec;}var _3ed=this.getChildren();var _3ee=dojo.indexOf(_3ed,this.pane2button[this._currentChild.id]);var _3ef=_3ec?1:_3ed.length-1;return _3ed[(_3ee+_3ef)%_3ed.length];},onkeypress:function(e){if(this.disabled||e.altKey){return;}var _3f0=null;if(e.ctrlKey||!e._djpage){var k=dojo.keys;switch(e.charOrCode){case k.LEFT_ARROW:case k.UP_ARROW:if(!e._djpage){_3f0=false;}break;case k.PAGE_UP:if(e.ctrlKey){_3f0=false;}break;case k.RIGHT_ARROW:case k.DOWN_ARROW:if(!e._djpage){_3f0=true;}break;case k.PAGE_DOWN:if(e.ctrlKey){_3f0=true;}break;case k.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}dojo.stopEvent(e);break;default:if(e.ctrlKey){if(e.charOrCode===k.TAB){this.adjacent(!e.shiftKey).onClick();dojo.stopEvent(e);}else{if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}dojo.stopEvent(e);}}}}if(_3f0!==null){this.adjacent(_3f0).onClick();dojo.stopEvent(e);}}},onContainerKeyPress:function(info){info.e._djpage=info.page;this.onkeypress(info.e);}});dojo.declare("dijit.layout._StackButton",dijit.form.ToggleButton,{tabIndex:"-1",postCreate:function(evt){dijit.setWaiRole((this.focusNode||this.domNode),"tab");this.inherited(arguments);},onClick:function(evt){dijit.focus(this.focusNode);},onClickCloseButton:function(evt){evt.stopPropagation();}});}if(!dojo._hasResource["dijit.layout.StackContainer"]){dojo._hasResource["dijit.layout.StackContainer"]=true;dojo.provide("dijit.layout.StackContainer");dojo.declare("dijit.layout.StackContainer",dijit.layout._LayoutWidget,{doLayout:true,persist:false,baseClass:"dijitStackContainer",postCreate:function(){this.inherited(arguments);dojo.addClass(this.domNode,"dijitLayoutContainer");dijit.setWaiRole(this.containerNode,"tabpanel");this.connect(this.domNode,"onkeypress",this._onKeyPress);},startup:function(){if(this._started){return;}var _3f1=this.getChildren();dojo.forEach(_3f1,this._setupChild,this);if(this.persist){this.selectedChildWidget=dijit.byId(dojo.cookie(this.id+"_selectedChild"));}else{dojo.some(_3f1,function(_3f2){if(_3f2.selected){this.selectedChildWidget=_3f2;}return _3f2.selected;},this);}var _3f3=this.selectedChildWidget;if(!_3f3&&_3f1[0]){_3f3=this.selectedChildWidget=_3f1[0];_3f3.selected=true;}dojo.publish(this.id+"-startup",[{children:_3f1,selected:_3f3}]);this.inherited(arguments);},resize:function(){var _3f4=this.selectedChildWidget;if(_3f4&&!this._hasBeenShown){this._hasBeenShown=true;this._showChild(_3f4);}this.inherited(arguments);},_setupChild:function(_3f5){this.inherited(arguments);dojo.removeClass(_3f5.domNode,"dijitVisible");dojo.addClass(_3f5.domNode,"dijitHidden");_3f5.domNode.title="";},addChild:function(_3f6,_3f7){this.inherited(arguments);if(this._started){dojo.publish(this.id+"-addChild",[_3f6,_3f7]);this.layout();if(!this.selectedChildWidget){this.selectChild(_3f6);}}},removeChild:function(page){this.inherited(arguments);if(this._started){dojo.publish(this.id+"-removeChild",[page]);}if(this._beingDestroyed){return;}if(this.selectedChildWidget===page){this.selectedChildWidget=undefined;if(this._started){var _3f8=this.getChildren();if(_3f8.length){this.selectChild(_3f8[0]);}}}if(this._started){this.layout();}},selectChild:function(page,_3f9){page=dijit.byId(page);if(this.selectedChildWidget!=page){this._transition(page,this.selectedChildWidget,_3f9);this.selectedChildWidget=page;dojo.publish(this.id+"-selectChild",[page]);if(this.persist){dojo.cookie(this.id+"_selectedChild",this.selectedChildWidget.id);}}},_transition:function(_3fa,_3fb){if(_3fb){this._hideChild(_3fb);}this._showChild(_3fa);if(_3fa.resize){if(this.doLayout){_3fa.resize(this._containerContentBox||this._contentBox);}else{_3fa.resize();}}},_adjacent:function(_3fc){var _3fd=this.getChildren();var _3fe=dojo.indexOf(_3fd,this.selectedChildWidget);_3fe+=_3fc?1:_3fd.length-1;return _3fd[_3fe%_3fd.length];},forward:function(){this.selectChild(this._adjacent(true),true);},back:function(){this.selectChild(this._adjacent(false),true);},_onKeyPress:function(e){dojo.publish(this.id+"-containerKeyPress",[{e:e,page:this}]);},layout:function(){if(this.doLayout&&this.selectedChildWidget&&this.selectedChildWidget.resize){this.selectedChildWidget.resize(this._containerContentBox||this._contentBox);}},_showChild:function(page){var _3ff=this.getChildren();page.isFirstChild=(page==_3ff[0]);page.isLastChild=(page==_3ff[_3ff.length-1]);page.selected=true;dojo.removeClass(page.domNode,"dijitHidden");dojo.addClass(page.domNode,"dijitVisible");page._onShow();},_hideChild:function(page){page.selected=false;dojo.removeClass(page.domNode,"dijitVisible");dojo.addClass(page.domNode,"dijitHidden");page.onHide();},closeChild:function(page){var _400=page.onClose(this,page);if(_400){this.removeChild(page);page.destroyRecursive();}},destroyDescendants:function(_401){dojo.forEach(this.getChildren(),function(_402){this.removeChild(_402);_402.destroyRecursive(_401);},this);}});dojo.extend(dijit._Widget,{selected:false,closable:false,iconClass:"",showTitle:true});}if(!dojo._hasResource["dijit.layout.AccordionPane"]){dojo._hasResource["dijit.layout.AccordionPane"]=true;dojo.provide("dijit.layout.AccordionPane");dojo.declare("dijit.layout.AccordionPane",dijit.layout.ContentPane,{constructor:function(){dojo.deprecated("dijit.layout.AccordionPane deprecated, use ContentPane instead","","2.0");},onSelected:function(){}});}if(!dojo._hasResource["dijit.layout.AccordionContainer"]){dojo._hasResource["dijit.layout.AccordionContainer"]=true;dojo.provide("dijit.layout.AccordionContainer");dojo.declare("dijit.layout.AccordionContainer",dijit.layout.StackContainer,{duration:dijit.defaultDuration,buttonWidget:"dijit.layout._AccordionButton",_verticalSpace:0,baseClass:"dijitAccordionContainer",postCreate:function(){this.domNode.style.overflow="hidden";this.inherited(arguments);dijit.setWaiRole(this.domNode,"tablist");},startup:function(){if(this._started){return;}this.inherited(arguments);if(this.selectedChildWidget){var _403=this.selectedChildWidget.containerNode.style;_403.display="";_403.overflow="auto";this.selectedChildWidget._wrapperWidget.set("selected",true);}},_getTargetHeight:function(node){var cs=dojo.getComputedStyle(node);return Math.max(this._verticalSpace-dojo._getPadBorderExtents(node,cs).h-dojo._getMarginExtents(node,cs).h,0);},layout:function(){var _404=this.selectedChildWidget;if(!_404){return;}var _405=_404._wrapperWidget.domNode,_406=dojo._getMarginExtents(_405),_407=dojo._getPadBorderExtents(_405),_408=this._contentBox;var _409=0;dojo.forEach(this.getChildren(),function(_40a){if(_40a!=_404){_409+=dojo.marginBox(_40a._wrapperWidget.domNode).h;}});this._verticalSpace=_408.h-_409-_406.h-_407.h-_404._buttonWidget.getTitleHeight();this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_406.w-_407.w};if(_404){_404.resize(this._containerContentBox);}},_setupChild:function(_40b){_40b._wrapperWidget=new dijit.layout._AccordionInnerContainer({contentWidget:_40b,buttonWidget:this.buttonWidget,id:_40b.id+"_wrapper",dir:_40b.dir,lang:_40b.lang,parent:this});this.inherited(arguments);},addChild:function(_40c,_40d){if(this._started){dojo.place(_40c.domNode,this.containerNode,_40d);if(!_40c._started){_40c.startup();}this._setupChild(_40c);dojo.publish(this.id+"-addChild",[_40c,_40d]);this.layout();if(!this.selectedChildWidget){this.selectChild(_40c);}}else{this.inherited(arguments);}},removeChild:function(_40e){_40e._wrapperWidget.destroy();delete _40e._wrapperWidget;dojo.removeClass(_40e.domNode,"dijitHidden");this.inherited(arguments);},getChildren:function(){return dojo.map(this.inherited(arguments),function(_40f){return _40f.declaredClass=="dijit.layout._AccordionInnerContainer"?_40f.contentWidget:_40f;},this);},destroy:function(){dojo.forEach(this.getChildren(),function(_410){_410._wrapperWidget.destroy();});this.inherited(arguments);},_transition:function(_411,_412,_413){if(this._inTransition){return;}var _414=[];var _415=this._verticalSpace;if(_411){_411._wrapperWidget.set("selected",true);this._showChild(_411);if(this.doLayout&&_411.resize){_411.resize(this._containerContentBox);}var _416=_411.domNode;dojo.addClass(_416,"dijitVisible");dojo.removeClass(_416,"dijitHidden");if(_413){var _417=_416.style.overflow;_416.style.overflow="hidden";_414.push(dojo.animateProperty({node:_416,duration:this.duration,properties:{height:{start:1,end:this._getTargetHeight(_416)}},onEnd:function(){_416.style.overflow=_417;if(dojo.isIE){setTimeout(function(){dojo.removeClass(_416.parentNode,"dijitAccordionInnerContainerFocused");setTimeout(function(){dojo.addClass(_416.parentNode,"dijitAccordionInnerContainerFocused");},0);},0);}}}));}}if(_412){_412._wrapperWidget.set("selected",false);var _418=_412.domNode;if(_413){var _419=_418.style.overflow;_418.style.overflow="hidden";_414.push(dojo.animateProperty({node:_418,duration:this.duration,properties:{height:{start:this._getTargetHeight(_418),end:1}},onEnd:function(){dojo.addClass(_418,"dijitHidden");dojo.removeClass(_418,"dijitVisible");_418.style.overflow=_419;if(_412.onHide){_412.onHide();}}}));}else{dojo.addClass(_418,"dijitHidden");dojo.removeClass(_418,"dijitVisible");if(_412.onHide){_412.onHide();}}}if(_413){this._inTransition=true;var _41a=dojo.fx.combine(_414);_41a.onEnd=dojo.hitch(this,function(){delete this._inTransition;});_41a.play();}},_onKeyPress:function(e,_41b){if(this._inTransition||this.disabled||e.altKey||!(_41b||e.ctrlKey)){if(this._inTransition){dojo.stopEvent(e);}return;}var k=dojo.keys,c=e.charOrCode;if((_41b&&(c==k.LEFT_ARROW||c==k.UP_ARROW))||(e.ctrlKey&&c==k.PAGE_UP)){this._adjacent(false)._buttonWidget._onTitleClick();dojo.stopEvent(e);}else{if((_41b&&(c==k.RIGHT_ARROW||c==k.DOWN_ARROW))||(e.ctrlKey&&(c==k.PAGE_DOWN||c==k.TAB))){this._adjacent(true)._buttonWidget._onTitleClick();dojo.stopEvent(e);}}}});dojo.declare("dijit.layout._AccordionInnerContainer",[dijit._Widget,dijit._CssStateMixin],{baseClass:"dijitAccordionInnerContainer",isContainer:true,isLayoutContainer:true,buildRendering:function(){this.domNode=dojo.place("<div class='"+this.baseClass+"'>",this.contentWidget.domNode,"after");var _41c=this.contentWidget,cls=dojo.getObject(this.buttonWidget);this.button=_41c._buttonWidget=(new cls({contentWidget:_41c,label:_41c.title,title:_41c.tooltip,dir:_41c.dir,lang:_41c.lang,iconClass:_41c.iconClass,id:_41c.id+"_button",parent:this.parent})).placeAt(this.domNode);dojo.place(this.contentWidget.domNode,this.domNode);},postCreate:function(){this.inherited(arguments);this.connect(this.contentWidget,"set",function(name,_41d){var _41e={title:"label",tooltip:"title",iconClass:"iconClass"}[name];if(_41e){this.button.set(_41e,_41d);}},this);},_setSelectedAttr:function(_41f){this.selected=_41f;this.button.set("selected",_41f);if(_41f){var cw=this.contentWidget;if(cw.onSelected){cw.onSelected();}}},startup:function(){this.contentWidget.startup();},destroy:function(){this.button.destroyRecursive();delete this.contentWidget._buttonWidget;delete this.contentWidget._wrapperWidget;this.inherited(arguments);},destroyDescendants:function(){this.contentWidget.destroyRecursive();}});dojo.declare("dijit.layout._AccordionButton",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:dojo.cache("dijit.layout","templates/AccordionButton.html","<div dojoAttachEvent='onclick:_onTitleClick' class='dijitAccordionTitle'>\n\t<div dojoAttachPoint='titleNode,focusNode' dojoAttachEvent='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' wairole=\"tab\" waiState=\"expanded-false\"\n\t\t><span class='dijitInline dijitAccordionArrow' waiRole=\"presentation\"></span\n\t\t><span class='arrowTextUp' waiRole=\"presentation\">+</span\n\t\t><span class='arrowTextDown' waiRole=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' style=\"vertical-align: middle\" waiRole=\"presentation\"/>\n\t\t<span waiRole=\"presentation\" dojoAttachPoint='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.layout.ContentPane.prototype.attributeMap),{label:{node:"titleTextNode",type:"innerHTML"},title:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClass:{node:"iconNode",type:"class"}}),baseClass:"dijitAccordionTitle",getParent:function(){return this.parent;},postCreate:function(){this.inherited(arguments);dojo.setSelectable(this.domNode,false);var _420=dojo.attr(this.domNode,"id").replace(" ","_");dojo.attr(this.titleTextNode,"id",_420+"_title");dijit.setWaiState(this.focusNode,"labelledby",dojo.attr(this.titleTextNode,"id"));},getTitleHeight:function(){return dojo.marginBox(this.domNode).h;},_onTitleClick:function(){var _421=this.getParent();if(!_421._inTransition){_421.selectChild(this.contentWidget,true);dijit.focus(this.focusNode);}},_onTitleKeyPress:function(evt){return this.getParent()._onKeyPress(evt,this.contentWidget);},_setSelectedAttr:function(_422){this.selected=_422;dijit.setWaiState(this.focusNode,"expanded",_422);dijit.setWaiState(this.focusNode,"selected",_422);this.focusNode.setAttribute("tabIndex",_422?"0":"-1");}});}if(!dojo._hasResource["dijit.layout.BorderContainer"]){dojo._hasResource["dijit.layout.BorderContainer"]=true;dojo.provide("dijit.layout.BorderContainer");dojo.declare("dijit.layout.BorderContainer",dijit.layout._LayoutWidget,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:"dijit.layout._Splitter",postMixInProperties:function(){if(!this.gutters){this.baseClass+="NoGutter";}this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this._splitters={};this._splitterThickness={};},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments);},_setupChild:function(_423){var _424=_423.region;if(_424){this.inherited(arguments);dojo.addClass(_423.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(_424=="leading"){_424=ltr?"left":"right";}if(_424=="trailing"){_424=ltr?"right":"left";}this["_"+_424]=_423.domNode;this["_"+_424+"Widget"]=_423;if((_423.splitter||this.gutters)&&!this._splitters[_424]){var _425=dojo.getObject(_423.splitter?this._splitterClass:"dijit.layout._Gutter");var _426=new _425({id:_423.id+"_splitter",container:this,child:_423,region:_424,live:this.liveSplitters});_426.isSplitter=true;this._splitters[_424]=_426.domNode;dojo.place(this._splitters[_424],_423.domNode,"after");_426.startup();}_423.region=_424;}},_computeSplitterThickness:function(_427){this._splitterThickness[_427]=this._splitterThickness[_427]||dojo.marginBox(this._splitters[_427])[(/top|bottom/.test(_427)?"h":"w")];},layout:function(){for(var _428 in this._splitters){this._computeSplitterThickness(_428);}this._layoutChildren();},addChild:function(_429,_42a){this.inherited(arguments);if(this._started){this.layout();}},removeChild:function(_42b){var _42c=_42b.region;var _42d=this._splitters[_42c];if(_42d){dijit.byNode(_42d).destroy();delete this._splitters[_42c];delete this._splitterThickness[_42c];}this.inherited(arguments);delete this["_"+_42c];delete this["_"+_42c+"Widget"];if(this._started){this._layoutChildren();}dojo.removeClass(_42b.domNode,this.baseClass+"Pane");},getChildren:function(){return dojo.filter(this.inherited(arguments),function(_42e){return !_42e.isSplitter;});},getSplitter:function(_42f){var _430=this._splitters[_42f];return _430?dijit.byNode(_430):null;},resize:function(_431,_432){if(!this.cs||!this.pe){var node=this.domNode;this.cs=dojo.getComputedStyle(node);this.pe=dojo._getPadExtents(node,this.cs);this.pe.r=dojo._toPixelValue(node,this.cs.paddingRight);this.pe.b=dojo._toPixelValue(node,this.cs.paddingBottom);dojo.style(node,"padding","0px");}this.inherited(arguments);},_layoutChildren:function(_433,_434){if(!this._borderBox||!this._borderBox.h){return;}var _435=(this.design=="sidebar");var _436=0,_437=0,_438=0,_439=0;var _43a={},_43b={},_43c={},_43d={},_43e=(this._center&&this._center.style)||{};var _43f=/left|right/.test(_433);var _440=!_433||(!_43f&&!_435);var _441=!_433||(_43f&&_435);if(this._top){_43a=(_433=="top"||_441)&&this._top.style;_436=_433=="top"?_434:dojo.marginBox(this._top).h;}if(this._left){_43b=(_433=="left"||_440)&&this._left.style;_438=_433=="left"?_434:dojo.marginBox(this._left).w;}if(this._right){_43c=(_433=="right"||_440)&&this._right.style;_439=_433=="right"?_434:dojo.marginBox(this._right).w;}if(this._bottom){_43d=(_433=="bottom"||_441)&&this._bottom.style;_437=_433=="bottom"?_434:dojo.marginBox(this._bottom).h;}var _442=this._splitters;var _443=_442.top,_444=_442.bottom,_445=_442.left,_446=_442.right;var _447=this._splitterThickness;var _448=_447.top||0,_449=_447.left||0,_44a=_447.right||0,_44b=_447.bottom||0;if(_449>50||_44a>50){setTimeout(dojo.hitch(this,function(){this._splitterThickness={};for(var _44c in this._splitters){this._computeSplitterThickness(_44c);}this._layoutChildren();}),50);return false;}var pe=this.pe;var _44d={left:(_435?_438+_449:0)+pe.l+"px",right:(_435?_439+_44a:0)+pe.r+"px"};if(_443){dojo.mixin(_443.style,_44d);_443.style.top=_436+pe.t+"px";}if(_444){dojo.mixin(_444.style,_44d);_444.style.bottom=_437+pe.b+"px";}_44d={top:(_435?0:_436+_448)+pe.t+"px",bottom:(_435?0:_437+_44b)+pe.b+"px"};if(_445){dojo.mixin(_445.style,_44d);_445.style.left=_438+pe.l+"px";}if(_446){dojo.mixin(_446.style,_44d);_446.style.right=_439+pe.r+"px";}dojo.mixin(_43e,{top:pe.t+_436+_448+"px",left:pe.l+_438+_449+"px",right:pe.r+_439+_44a+"px",bottom:pe.b+_437+_44b+"px"});var _44e={top:_435?pe.t+"px":_43e.top,bottom:_435?pe.b+"px":_43e.bottom};dojo.mixin(_43b,_44e);dojo.mixin(_43c,_44e);_43b.left=pe.l+"px";_43c.right=pe.r+"px";_43a.top=pe.t+"px";_43d.bottom=pe.b+"px";if(_435){_43a.left=_43d.left=_438+_449+pe.l+"px";_43a.right=_43d.right=_439+_44a+pe.r+"px";}else{_43a.left=_43d.left=pe.l+"px";_43a.right=_43d.right=pe.r+"px";}var _44f=this._borderBox.h-pe.t-pe.b,_450=_44f-(_436+_448+_437+_44b),_451=_435?_44f:_450;var _452=this._borderBox.w-pe.l-pe.r,_453=_452-(_438+_449+_439+_44a),_454=_435?_453:_452;var dim={top:{w:_454,h:_436},bottom:{w:_454,h:_437},left:{w:_438,h:_451},right:{w:_439,h:_451},center:{h:_450,w:_453}};if(_433){var _455=this["_"+_433+"Widget"],mb={};mb[/top|bottom/.test(_433)?"h":"w"]=_434;_455.resize?_455.resize(mb,dim[_455.region]):dojo.marginBox(_455.domNode,mb);}var _456=dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.some(this.getChildren(),function(_457){return _457.domNode.tagName=="TEXTAREA"||_457.domNode.tagName=="INPUT";});if(_456){var _458=function(_459,_45a,_45b){if(_459){(_459.resize?_459.resize(_45a,_45b):dojo.marginBox(_459.domNode,_45a));}};if(_445){_445.style.height=_451;}if(_446){_446.style.height=_451;}_458(this._leftWidget,{h:_451},dim.left);_458(this._rightWidget,{h:_451},dim.right);if(_443){_443.style.width=_454;}if(_444){_444.style.width=_454;}_458(this._topWidget,{w:_454},dim.top);_458(this._bottomWidget,{w:_454},dim.bottom);_458(this._centerWidget,dim.center);}else{var _45c=!_433||(/top|bottom/.test(_433)&&this.design!="sidebar"),_45d=!_433||(/left|right/.test(_433)&&this.design=="sidebar"),_45e={center:true,left:_45c,right:_45c,top:_45d,bottom:_45d};dojo.forEach(this.getChildren(),function(_45f){if(_45f.resize&&_45e[_45f.region]){_45f.resize(null,dim[_45f.region]);}},this);}},destroy:function(){for(var _460 in this._splitters){var _461=this._splitters[_460];dijit.byNode(_461).destroy();dojo.destroy(_461);}delete this._splitters;delete this._splitterThickness;this.inherited(arguments);}});dojo.extend(dijit._Widget,{region:"",splitter:false,minSize:0,maxSize:Infinity});dojo.declare("dijit.layout._Splitter",[dijit._Widget,dijit._Templated],{live:true,templateString:"<div class=\"dijitSplitter\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse\" tabIndex=\"0\" waiRole=\"separator\"><div class=\"dijitSplitterThumb\"></div></div>",postCreate:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);dojo.addClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));this._factor=/top|left/.test(this.region)?1:-1;this._cookieName=this.container.id+"_"+this.region;if(this.container.persist){var _462=dojo.cookie(this._cookieName);if(_462){this.child.domNode.style[this.horizontal?"height":"width"]=_462;}}},_computeMaxSize:function(){var dim=this.horizontal?"h":"w",_463=this.container._splitterThickness[this.region];var flip={left:"right",right:"left",top:"bottom",bottom:"top",leading:"trailing",trailing:"leading"},_464=this.container["_"+flip[this.region]];var _465=dojo.contentBox(this.container.domNode)[dim]-(_464?dojo.marginBox(_464)[dim]:0)-20-_463*2;return Math.min(this.child.maxSize,_465);},_startDrag:function(e){if(!this.cover){this.cover=dojo.doc.createElement("div");dojo.addClass(this.cover,"dijitSplitterCover");dojo.place(this.cover,this.child.domNode,"after");}dojo.addClass(this.cover,"dijitSplitterCoverActive");if(this.fake){dojo.destroy(this.fake);}if(!(this._resize=this.live)){(this.fake=this.domNode.cloneNode(true)).removeAttribute("id");dojo.addClass(this.domNode,"dijitSplitterShadow");dojo.place(this.fake,this.domNode,"after");}dojo.addClass(this.domNode,"dijitSplitterActive");dojo.addClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Active");if(this.fake){dojo.removeClass(this.fake,"dijitSplitterHover");dojo.removeClass(this.fake,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover");}var _466=this._factor,max=this._computeMaxSize(),min=this.child.minSize||20,_467=this.horizontal,axis=_467?"pageY":"pageX",_468=e[axis],_469=this.domNode.style,dim=_467?"h":"w",_46a=dojo.marginBox(this.child.domNode)[dim],_46b=this.region,_46c=parseInt(this.domNode.style[_46b],10),_46d=this._resize,_46e=this.child.domNode,_46f=dojo.hitch(this.container,this.container._layoutChildren),de=dojo.doc;this._handlers=(this._handlers||[]).concat([dojo.connect(de,"onmousemove",this._drag=function(e,_470){var _471=e[axis]-_468,_472=_466*_471+_46a,_473=Math.max(Math.min(_472,max),min);if(_46d||_470){_46f(_46b,_473);}_469[_46b]=_466*_471+_46c+(_473-_472)+"px";}),dojo.connect(de,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent),dojo.connect(de,"onmouseup",this,"_stopDrag")]);dojo.stopEvent(e);},_onMouse:function(e){var o=(e.type=="mouseover"||e.type=="mouseenter");dojo.toggleClass(this.domNode,"dijitSplitterHover",o);dojo.toggleClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o);},_stopDrag:function(e){try{if(this.cover){dojo.removeClass(this.cover,"dijitSplitterCoverActive");}if(this.fake){dojo.destroy(this.fake);}dojo.removeClass(this.domNode,"dijitSplitterActive");dojo.removeClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Active");dojo.removeClass(this.domNode,"dijitSplitterShadow");this._drag(e);this._drag(e,true);}finally{this._cleanupHandlers();delete this._drag;}if(this.container.persist){dojo.cookie(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365});}},_cleanupHandlers:function(){dojo.forEach(this._handlers,dojo.disconnect);delete this._handlers;},_onKeyPress:function(e){this._resize=true;var _474=this.horizontal;var tick=1;var dk=dojo.keys;switch(e.charOrCode){case _474?dk.UP_ARROW:dk.LEFT_ARROW:tick*=-1;case _474?dk.DOWN_ARROW:dk.RIGHT_ARROW:break;default:return;}var _475=dojo.marginBox(this.child.domNode)[_474?"h":"w"]+this._factor*tick;this.container._layoutChildren(this.region,Math.max(Math.min(_475,this._computeMaxSize()),this.child.minSize));dojo.stopEvent(e);},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.cover;delete this.fake;this.inherited(arguments);}});dojo.declare("dijit.layout._Gutter",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitGutter\" waiRole=\"presentation\"></div>",postCreate:function(){this.horizontal=/top|bottom/.test(this.region);dojo.addClass(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"));}});}if(!dojo._hasResource["dijit.layout._TabContainerBase"]){dojo._hasResource["dijit.layout._TabContainerBase"]=true;dojo.provide("dijit.layout._TabContainerBase");dojo.declare("dijit.layout._TabContainerBase",[dijit.layout.StackContainer,dijit._Templated],{tabPosition:"top",baseClass:"dijitTabContainer",tabStrip:false,nested:false,templateString:dojo.cache("dijit.layout","templates/TabContainer.html","<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" dojoAttachPoint=\"tablistNode\"></div>\n\t<div dojoAttachPoint=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" dojoAttachPoint=\"containerNode\"></div>\n</div>\n"),postMixInProperties:function(){this.baseClass+=this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"");this.srcNodeRef&&dojo.style(this.srcNodeRef,"visibility","hidden");this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this.tablist=this._makeController(this.tablistNode);if(!this.doLayout){dojo.addClass(this.domNode,"dijitTabContainerNoLayout");}if(this.nested){dojo.addClass(this.domNode,"dijitTabContainerNested");dojo.addClass(this.tablist.containerNode,"dijitTabContainerTabListNested");dojo.addClass(this.tablistSpacer,"dijitTabContainerSpacerNested");dojo.addClass(this.containerNode,"dijitTabPaneWrapperNested");}else{dojo.addClass(this.domNode,"tabStrip-"+(this.tabStrip?"enabled":"disabled"));}},_setupChild:function(tab){dojo.addClass(tab.domNode,"dijitTabPane");this.inherited(arguments);},startup:function(){if(this._started){return;}this.tablist.startup();this.inherited(arguments);},layout:function(){if(!this._contentBox||typeof (this._contentBox.l)=="undefined"){return;}var sc=this.selectedChildWidget;if(this.doLayout){var _476=this.tabPosition.replace(/-h/,"");this.tablist.layoutAlign=_476;var _477=[this.tablist,{domNode:this.tablistSpacer,layoutAlign:_476},{domNode:this.containerNode,layoutAlign:"client"}];dijit.layout.layoutChildren(this.domNode,this._contentBox,_477);this._containerContentBox=dijit.layout.marginBox2contentBox(this.containerNode,_477[2]);if(sc&&sc.resize){sc.resize(this._containerContentBox);}}else{if(this.tablist.resize){this.tablist.resize({w:dojo.contentBox(this.domNode).w});}if(sc&&sc.resize){sc.resize();}}},destroy:function(){if(this.tablist){this.tablist.destroy();}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.layout.TabController"]){dojo._hasResource["dijit.layout.TabController"]=true;dojo.provide("dijit.layout.TabController");dojo.declare("dijit.layout.TabController",dijit.layout.StackController,{templateString:"<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'></div>",tabPosition:"top",buttonWidget:"dijit.layout._TabButton",_rectifyRtlTabList:function(){if(0>=this.tabPosition.indexOf("-h")){return;}if(!this.pane2button){return;}var _478=0;for(var pane in this.pane2button){var ow=this.pane2button[pane].innerDiv.scrollWidth;_478=Math.max(_478,ow);}for(pane in this.pane2button){this.pane2button[pane].innerDiv.style.width=_478+"px";}}});dojo.declare("dijit.layout._TabButton",dijit.layout._StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},templateString:dojo.cache("dijit.layout","templates/_TabButton.html","<div waiRole=\"presentation\" dojoAttachPoint=\"titleNode\" dojoAttachEvent='onclick:onClick'>\n <div waiRole=\"presentation\" class='dijitTabInnerDiv' dojoAttachPoint='innerDiv'>\n <div waiRole=\"presentation\" class='dijitTabContent' dojoAttachPoint='tabContent'>\n \t<div waiRole=\"presentation\" dojoAttachPoint='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' />\n\t\t <span dojoAttachPoint='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" dojoAttachPoint='closeNode'\n\t\t \t\tdojoAttachEvent='onclick: onClickCloseButton' waiRole=\"presentation\">\n\t\t <span dojoAttachPoint='closeText' class='dijitTabCloseText'>x</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"),scrollOnFocus:false,postMixInProperties:function(){if(!this.iconClass){this.iconClass="dijitTabButtonIcon";}},postCreate:function(){this.inherited(arguments);dojo.setSelectable(this.containerNode,false);if(this.iconNode.className=="dijitTabButtonIcon"){dojo.style(this.iconNode,"width","1px");}},startup:function(){this.inherited(arguments);var n=this.domNode;setTimeout(function(){n.className=n.className;},1);},_setCloseButtonAttr:function(disp){this.closeButton=disp;dojo.toggleClass(this.innerDiv,"dijitClosable",disp);this.closeNode.style.display=disp?"":"none";if(disp){var _479=dojo.i18n.getLocalization("dijit","common");if(this.closeNode){dojo.attr(this.closeNode,"title",_479.itemClose);}var _479=dojo.i18n.getLocalization("dijit","common");this._closeMenu=new dijit.Menu({id:this.id+"_Menu",dir:this.dir,lang:this.lang,targetNodeIds:[this.domNode]});this._closeMenu.addChild(new dijit.MenuItem({label:_479.itemClose,dir:this.dir,lang:this.lang,onClick:dojo.hitch(this,"onClickCloseButton")}));}else{if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}}},_setLabelAttr:function(_47a){this.inherited(arguments);if(this.showLabel==false&&!this.params.title){this.iconNode.alt=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||"");}},destroy:function(){if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.layout.ScrollingTabController"]){dojo._hasResource["dijit.layout.ScrollingTabController"]=true;dojo.provide("dijit.layout.ScrollingTabController");dojo.declare("dijit.layout.ScrollingTabController",dijit.layout.TabController,{templateString:dojo.cache("dijit.layout","templates/ScrollingTabController.html","<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\" iconClass=\"dijitTabStripMenuIcon\"\n\t\t\tdojoAttachPoint=\"_menuBtn\" showLabel=false>▼</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\" iconClass=\"dijitTabStripSlideLeftIcon\"\n\t\t\tdojoAttachPoint=\"_leftBtn\" dojoAttachEvent=\"onClick: doSlideLeft\" showLabel=false>◀</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\" iconClass=\"dijitTabStripSlideRightIcon\"\n\t\t\tdojoAttachPoint=\"_rightBtn\" dojoAttachEvent=\"onClick: doSlideRight\" showLabel=false>▶</div>\n\t<div class='dijitTabListWrapper' dojoAttachPoint='tablistWrapper'>\n\t\t<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'\n\t\t\t\tdojoAttachPoint='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>\n"),useMenu:true,useSlider:true,tabStripClass:"",widgetsInTemplate:true,_minScroll:5,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{"class":"containerNode"}),postCreate:function(){this.inherited(arguments);var n=this.domNode;this.scrollNode=this.tablistWrapper;this._initButtons();if(!this.tabStripClass){this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None";dojo.addClass(n,"tabStrip-disabled");}dojo.addClass(this.tablistWrapper,this.tabStripClass);},onStartup:function(){this.inherited(arguments);dojo.style(this.domNode,"visibility","visible");this._postStartup=true;},onAddChild:function(page,_47b){this.inherited(arguments);var _47c;if(this.useMenu){var _47d=this.containerId;_47c=new dijit.MenuItem({id:page.id+"_stcMi",label:page.title,dir:page.dir,lang:page.lang,onClick:dojo.hitch(this,function(){var _47e=dijit.byId(_47d);_47e.selectChild(page);})});this._menuChildren[page.id]=_47c;this._menu.addChild(_47c,_47b);}this.pane2handles[page.id].push(this.connect(this.pane2button[page.id],"set",function(name,_47f){if(this._postStartup){if(name=="label"){if(_47c){_47c.set(name,_47f);}if(this._dim){this.resize(this._dim);}}}}));dojo.style(this.containerNode,"width",(dojo.style(this.containerNode,"width")+200)+"px");},onRemoveChild:function(page,_480){var _481=this.pane2button[page.id];if(this._selectedTab===_481.domNode){this._selectedTab=null;}if(this.useMenu&&page&&page.id&&this._menuChildren[page.id]){this._menu.removeChild(this._menuChildren[page.id]);this._menuChildren[page.id].destroy();delete this._menuChildren[page.id];}this.inherited(arguments);},_initButtons:function(){this._menuChildren={};this._btnWidth=0;this._buttons=dojo.query("> .tabStripButton",this.domNode).filter(function(btn){if((this.useMenu&&btn==this._menuBtn.domNode)||(this.useSlider&&(btn==this._rightBtn.domNode||btn==this._leftBtn.domNode))){this._btnWidth+=dojo.marginBox(btn).w;return true;}else{dojo.style(btn,"display","none");return false;}},this);if(this.useMenu){this._menu=new dijit.Menu({id:this.id+"_menu",dir:this.dir,lang:this.lang,targetNodeIds:[this._menuBtn.domNode],leftClickToOpen:true,refocus:false});this._supportingWidgets.push(this._menu);}},_getTabsWidth:function(){var _482=this.getChildren();if(_482.length){var _483=_482[this.isLeftToRight()?0:_482.length-1].domNode,_484=_482[this.isLeftToRight()?_482.length-1:0].domNode;return _484.offsetLeft+dojo.style(_484,"width")-_483.offsetLeft;}else{return 0;}},_enableBtn:function(_485){var _486=this._getTabsWidth();_485=_485||dojo.style(this.scrollNode,"width");return _486>0&&_485<_486;},resize:function(dim){if(this.domNode.offsetWidth==0){return;}this._dim=dim;this.scrollNode.style.height="auto";this._contentBox=dijit.layout.marginBox2contentBox(this.domNode,{h:0,w:dim.w});this._contentBox.h=this.scrollNode.offsetHeight;dojo.contentBox(this.domNode,this._contentBox);var _487=this._enableBtn(this._contentBox.w);this._buttons.style("display",_487?"":"none");this._leftBtn.layoutAlign="left";this._rightBtn.layoutAlign="right";this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left";dijit.layout.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]);if(this._selectedTab){if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var w=this.scrollNode,sl=this._convertToScrollLeft(this._getScrollForSelectedTab());w.scrollLeft=sl;}this._setButtonClass(this._getScroll());this._postResize=true;},_getScroll:function(){var sl=(this.isLeftToRight()||dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.isWebKit)?this.scrollNode.scrollLeft:dojo.style(this.containerNode,"width")-dojo.style(this.scrollNode,"width")+(dojo.isIE==8?-1:1)*this.scrollNode.scrollLeft;return sl;},_convertToScrollLeft:function(val){if(this.isLeftToRight()||dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.isWebKit){return val;}else{var _488=dojo.style(this.containerNode,"width")-dojo.style(this.scrollNode,"width");return (dojo.isIE==8?-1:1)*(val-_488);}},onSelectChild:function(page){var tab=this.pane2button[page.id];if(!tab||!page){return;}var node=tab.domNode;if(this._postResize&&node!=this._selectedTab){this._selectedTab=node;var sl=this._getScroll();if(sl>node.offsetLeft||sl+dojo.style(this.scrollNode,"width")<node.offsetLeft+dojo.style(node,"width")){this.createSmoothScroll().play();}}this.inherited(arguments);},_getScrollBounds:function(){var _489=this.getChildren(),_48a=dojo.style(this.scrollNode,"width"),_48b=dojo.style(this.containerNode,"width"),_48c=_48b-_48a,_48d=this._getTabsWidth();if(_489.length&&_48d>_48a){return {min:this.isLeftToRight()?0:_489[_489.length-1].domNode.offsetLeft,max:this.isLeftToRight()?(_489[_489.length-1].domNode.offsetLeft+dojo.style(_489[_489.length-1].domNode,"width"))-_48a:_48c};}else{var _48e=this.isLeftToRight()?0:_48c;return {min:_48e,max:_48e};}},_getScrollForSelectedTab:function(){var w=this.scrollNode,n=this._selectedTab,_48f=dojo.style(this.scrollNode,"width"),_490=this._getScrollBounds();var pos=(n.offsetLeft+dojo.style(n,"width")/2)-_48f/2;pos=Math.min(Math.max(pos,_490.min),_490.max);return pos;},createSmoothScroll:function(x){if(arguments.length>0){var _491=this._getScrollBounds();x=Math.min(Math.max(x,_491.min),_491.max);}else{x=this._getScrollForSelectedTab();}if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var self=this,w=this.scrollNode,anim=new dojo._Animation({beforeBegin:function(){if(this.curve){delete this.curve;}var oldS=w.scrollLeft,newS=self._convertToScrollLeft(x);anim.curve=new dojo._Line(oldS,newS);},onAnimate:function(val){w.scrollLeft=val;}});this._anim=anim;this._setButtonClass(x);return anim;},_getBtnNode:function(e){var n=e.target;while(n&&!dojo.hasClass(n,"tabStripButton")){n=n.parentNode;}return n;},doSlideRight:function(e){this.doSlide(1,this._getBtnNode(e));},doSlideLeft:function(e){this.doSlide(-1,this._getBtnNode(e));},doSlide:function(_492,node){if(node&&dojo.hasClass(node,"dijitTabDisabled")){return;}var _493=dojo.style(this.scrollNode,"width");var d=(_493*0.75)*_492;var to=this._getScroll()+d;this._setButtonClass(to);this.createSmoothScroll(to).play();},_setButtonClass:function(_494){var _495=this._getScrollBounds();this._leftBtn.set("disabled",_494<=_495.min);this._rightBtn.set("disabled",_494>=_495.max);}});dojo.declare("dijit.layout._ScrollingTabControllerButton",dijit.form.Button,{baseClass:"dijitTab tabStripButton",templateString:dojo.cache("dijit.layout","templates/_ScrollingTabControllerButton.html","<div dojoAttachEvent=\"onclick:_onButtonClick\">\n\t<div waiRole=\"presentation\" class=\"dijitTabInnerDiv\" dojoattachpoint=\"innerDiv,focusNode\">\n\t\t<div waiRole=\"presentation\" class=\"dijitTabContent dijitButtonContents\" dojoattachpoint=\"tabContent\">\n\t\t\t<img waiRole=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t\t<span dojoAttachPoint=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>\n"),tabIndex:"-1"});}if(!dojo._hasResource["dijit.layout.TabContainer"]){dojo._hasResource["dijit.layout.TabContainer"]=true;dojo.provide("dijit.layout.TabContainer");dojo.declare("dijit.layout.TabContainer",dijit.layout._TabContainerBase,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(_496){var cls=this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),_497=dojo.getObject(this.controllerWidget);return new _497({id:this.id+"_tablist",dir:this.dir,lang:this.lang,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":cls,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?"":"No")+"Strip":null},_496);},postMixInProperties:function(){this.inherited(arguments);if(!this.controllerWidget){this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?"dijit.layout.ScrollingTabController":"dijit.layout.TabController";}}});}if(!dojo._hasResource["dojo.number"]){dojo._hasResource["dojo.number"]=true;dojo.provide("dojo.number");dojo.number.format=function(_498,_499){_499=dojo.mixin({},_499||{});var _49a=dojo.i18n.normalizeLocale(_499.locale),_49b=dojo.i18n.getLocalization("dojo.cldr","number",_49a);_499.customs=_49b;var _49c=_499.pattern||_49b[(_499.type||"decimal")+"Format"];if(isNaN(_498)||Math.abs(_498)==Infinity){return null;}return dojo.number._applyPattern(_498,_49c,_499);};dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;dojo.number._applyPattern=function(_49d,_49e,_49f){_49f=_49f||{};var _4a0=_49f.customs.group,_4a1=_49f.customs.decimal,_4a2=_49e.split(";"),_4a3=_4a2[0];_49e=_4a2[(_49d<0)?1:0]||("-"+_4a3);if(_49e.indexOf("%")!=-1){_49d*=100;}else{if(_49e.indexOf("‰")!=-1){_49d*=1000;}else{if(_49e.indexOf("¤")!=-1){_4a0=_49f.customs.currencyGroup||_4a0;_4a1=_49f.customs.currencyDecimal||_4a1;_49e=_49e.replace(/\u00a4{1,3}/,function(_4a4){var prop=["symbol","currency","displayName"][_4a4.length-1];return _49f[prop]||_49f.currency||"";});}else{if(_49e.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _4a5=dojo.number._numberPatternRE;var _4a6=_4a3.match(_4a5);if(!_4a6){throw new Error("unable to find a number expression in pattern: "+_49e);}if(_49f.fractional===false){_49f.places=0;}return _49e.replace(_4a5,dojo.number._formatAbsolute(_49d,_4a6[0],{decimal:_4a1,group:_4a0,places:_49f.places,round:_49f.round}));};dojo.number.round=function(_4a7,_4a8,_4a9){var _4aa=10/(_4a9||10);return (_4aa*+_4a7).toFixed(_4a8)/_4aa;};if((0.9).toFixed()==0){(function(){var _4ab=dojo.number.round;dojo.number.round=function(v,p,m){var d=Math.pow(10,-p||0),a=Math.abs(v);if(!v||a>=d||a*Math.pow(10,p+1)<5){d=0;}return _4ab(v,p,m)+(v>0?d:-d);};})();}dojo.number._formatAbsolute=function(_4ac,_4ad,_4ae){_4ae=_4ae||{};if(_4ae.places===true){_4ae.places=0;}if(_4ae.places===Infinity){_4ae.places=6;}var _4af=_4ad.split("."),_4b0=typeof _4ae.places=="string"&&_4ae.places.indexOf(","),_4b1=_4ae.places;if(_4b0){_4b1=_4ae.places.substring(_4b0+1);}else{if(!(_4b1>=0)){_4b1=(_4af[1]||[]).length;}}if(!(_4ae.round<0)){_4ac=dojo.number.round(_4ac,_4b1,_4ae.round);}var _4b2=String(Math.abs(_4ac)).split("."),_4b3=_4b2[1]||"";if(_4af[1]||_4ae.places){if(_4b0){_4ae.places=_4ae.places.substring(0,_4b0);}var pad=_4ae.places!==undefined?_4ae.places:(_4af[1]&&_4af[1].lastIndexOf("0")+1);if(pad>_4b3.length){_4b2[1]=dojo.string.pad(_4b3,pad,"0",true);}if(_4b1<_4b3.length){_4b2[1]=_4b3.substr(0,_4b1);}}else{if(_4b2[1]){_4b2.pop();}}var _4b4=_4af[0].replace(",","");pad=_4b4.indexOf("0");if(pad!=-1){pad=_4b4.length-pad;if(pad>_4b2[0].length){_4b2[0]=dojo.string.pad(_4b2[0],pad);}if(_4b4.indexOf("#")==-1){_4b2[0]=_4b2[0].substr(_4b2[0].length-pad);}}var _4b5=_4af[0].lastIndexOf(","),_4b6,_4b7;if(_4b5!=-1){_4b6=_4af[0].length-_4b5-1;var _4b8=_4af[0].substr(0,_4b5);_4b5=_4b8.lastIndexOf(",");if(_4b5!=-1){_4b7=_4b8.length-_4b5-1;}}var _4b9=[];for(var _4ba=_4b2[0];_4ba;){var off=_4ba.length-_4b6;_4b9.push((off>0)?_4ba.substr(off):_4ba);_4ba=(off>0)?_4ba.slice(0,off):"";if(_4b7){_4b6=_4b7;delete _4b7;}}_4b2[0]=_4b9.reverse().join(_4ae.group||",");return _4b2.join(_4ae.decimal||".");};dojo.number.regexp=function(_4bb){return dojo.number._parseInfo(_4bb).regexp;};dojo.number._parseInfo=function(_4bc){_4bc=_4bc||{};var _4bd=dojo.i18n.normalizeLocale(_4bc.locale),_4be=dojo.i18n.getLocalization("dojo.cldr","number",_4bd),_4bf=_4bc.pattern||_4be[(_4bc.type||"decimal")+"Format"],_4c0=_4be.group,_4c1=_4be.decimal,_4c2=1;if(_4bf.indexOf("%")!=-1){_4c2/=100;}else{if(_4bf.indexOf("‰")!=-1){_4c2/=1000;}else{var _4c3=_4bf.indexOf("¤")!=-1;if(_4c3){_4c0=_4be.currencyGroup||_4c0;_4c1=_4be.currencyDecimal||_4c1;}}}var _4c4=_4bf.split(";");if(_4c4.length==1){_4c4.push("-"+_4c4[0]);}var re=dojo.regexp.buildGroupRE(_4c4,function(_4c5){_4c5="(?:"+dojo.regexp.escapeString(_4c5,".")+")";return _4c5.replace(dojo.number._numberPatternRE,function(_4c6){var _4c7={signed:false,separator:_4bc.strict?_4c0:[_4c0,""],fractional:_4bc.fractional,decimal:_4c1,exponent:false},_4c8=_4c6.split("."),_4c9=_4bc.places;if(_4c8.length==1&&_4c2!=1){_4c8[1]="###";}if(_4c8.length==1||_4c9===0){_4c7.fractional=false;}else{if(_4c9===undefined){_4c9=_4bc.pattern?_4c8[1].lastIndexOf("0")+1:Infinity;}if(_4c9&&_4bc.fractional==undefined){_4c7.fractional=true;}if(!_4bc.places&&(_4c9<_4c8[1].length)){_4c9+=","+_4c8[1].length;}_4c7.places=_4c9;}var _4ca=_4c8[0].split(",");if(_4ca.length>1){_4c7.groupSize=_4ca.pop().length;if(_4ca.length>1){_4c7.groupSize2=_4ca.pop().length;}}return "("+dojo.number._realNumberRegexp(_4c7)+")";});},true);if(_4c3){re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_4cb,_4cc,_4cd,_4ce){var prop=["symbol","currency","displayName"][_4cd.length-1],_4cf=dojo.regexp.escapeString(_4bc[prop]||_4bc.currency||"");_4cc=_4cc?"[\\s\\xa0]":"";_4ce=_4ce?"[\\s\\xa0]":"";if(!_4bc.strict){if(_4cc){_4cc+="*";}if(_4ce){_4ce+="*";}return "(?:"+_4cc+_4cf+_4ce+")?";}return _4cc+_4cf+_4ce;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_4c0,decimal:_4c1,factor:_4c2};};dojo.number.parse=function(_4d0,_4d1){var info=dojo.number._parseInfo(_4d1),_4d2=(new RegExp("^"+info.regexp+"$")).exec(_4d0);if(!_4d2){return NaN;}var _4d3=_4d2[1];if(!_4d2[1]){if(!_4d2[2]){return NaN;}_4d3=_4d2[2];info.factor*=-1;}_4d3=_4d3.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return _4d3*info.factor;};dojo.number._realNumberRegexp=function(_4d4){_4d4=_4d4||{};if(!("places" in _4d4)){_4d4.places=Infinity;}if(typeof _4d4.decimal!="string"){_4d4.decimal=".";}if(!("fractional" in _4d4)||/^0/.test(_4d4.places)){_4d4.fractional=[true,false];}if(!("exponent" in _4d4)){_4d4.exponent=[true,false];}if(!("eSigned" in _4d4)){_4d4.eSigned=[true,false];}var _4d5=dojo.number._integerRegexp(_4d4),_4d6=dojo.regexp.buildGroupRE(_4d4.fractional,function(q){var re="";if(q&&(_4d4.places!==0)){re="\\"+_4d4.decimal;if(_4d4.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_4d4.places+"}";}}return re;},true);var _4d7=dojo.regexp.buildGroupRE(_4d4.exponent,function(q){if(q){return "([eE]"+dojo.number._integerRegexp({signed:_4d4.eSigned})+")";}return "";});var _4d8=_4d5+_4d6;if(_4d6){_4d8="(?:(?:"+_4d8+")|(?:"+_4d6+"))";}return _4d8+_4d7;};dojo.number._integerRegexp=function(_4d9){_4d9=_4d9||{};if(!("signed" in _4d9)){_4d9.signed=[true,false];}if(!("separator" in _4d9)){_4d9.separator="";}else{if(!("groupSize" in _4d9)){_4d9.groupSize=3;}}var _4da=dojo.regexp.buildGroupRE(_4d9.signed,function(q){return q?"[-+]":"";},true);var _4db=dojo.regexp.buildGroupRE(_4d9.separator,function(sep){if(!sep){return "(?:\\d+)";}sep=dojo.regexp.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep==" "){sep="\\s\\xa0";}}var grp=_4d9.groupSize,grp2=_4d9.groupSize2;if(grp2){var _4dc="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return ((grp-grp2)>0)?"(?:"+_4dc+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_4dc;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _4da+_4db;};}if(!dojo._hasResource["dijit.ProgressBar"]){dojo._hasResource["dijit.ProgressBar"]=true;dojo.provide("dijit.ProgressBar");dojo.declare("dijit.ProgressBar",[dijit._Widget,dijit._Templated],{progress:"0",maximum:100,places:0,indeterminate:false,name:"",templateString:dojo.cache("dijit","templates/ProgressBar.html","<div class=\"dijitProgressBar dijitProgressBarEmpty\"\n\t><div waiRole=\"progressbar\" dojoAttachPoint=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\"></div\n\t\t><span style=\"visibility:hidden\"> </span\n\t></div\n\t><div dojoAttachPoint=\"label\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"> </div\n\t><img dojoAttachPoint=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"),_indeterminateHighContrastImagePath:dojo.moduleUrl("dijit","themes/a11y/indeterminate_progress.gif"),postCreate:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update();},update:function(_4dd){dojo.mixin(this,_4dd||{});var tip=this.internalProgress;var _4de=1,_4df;if(this.indeterminate){_4df="addClass";dijit.removeWaiState(tip,"valuenow");dijit.removeWaiState(tip,"valuemin");dijit.removeWaiState(tip,"valuemax");}else{_4df="removeClass";if(String(this.progress).indexOf("%")!=-1){_4de=Math.min(parseFloat(this.progress)/100,1);this.progress=_4de*this.maximum;}else{this.progress=Math.min(this.progress,this.maximum);_4de=this.progress/this.maximum;}var text=this.report(_4de);this.label.firstChild.nodeValue=text;dijit.setWaiState(tip,"describedby",this.label.id);dijit.setWaiState(tip,"valuenow",this.progress);dijit.setWaiState(tip,"valuemin",0);dijit.setWaiState(tip,"valuemax",this.maximum);}dojo[_4df](this.domNode,"dijitProgressBarIndeterminate");tip.style.width=(_4de*100)+"%";this.onChange();},_setValueAttr:function(v){if(v==Infinity){this.update({indeterminate:true});}else{this.update({indeterminate:false,progress:v});}},_getValueAttr:function(){return this.progress;},report:function(_4e0){return dojo.number.format(_4e0,{type:"percent",places:this.places,locale:this.lang});},onChange:function(){}});}if(!dojo._hasResource["dijit.ToolbarSeparator"]){dojo._hasResource["dijit.ToolbarSeparator"]=true;dojo.provide("dijit.ToolbarSeparator");dojo.declare("dijit.ToolbarSeparator",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitToolbarSeparator dijitInline\" waiRole=\"presentation\"></div>",postCreate:function(){dojo.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});}if(!dojo._hasResource["dijit.Toolbar"]){dojo._hasResource["dijit.Toolbar"]=true;dojo.provide("dijit.Toolbar");dojo.declare("dijit.Toolbar",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{templateString:"<div class=\"dijit\" waiRole=\"toolbar\" tabIndex=\"${tabIndex}\" dojoAttachPoint=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",postCreate:function(){this.connectKeyNavHandlers(this.isLeftToRight()?[dojo.keys.LEFT_ARROW]:[dojo.keys.RIGHT_ARROW],this.isLeftToRight()?[dojo.keys.RIGHT_ARROW]:[dojo.keys.LEFT_ARROW]);this.inherited(arguments);},startup:function(){if(this._started){return;}this.startupKeyNavChildren();this.inherited(arguments);}});}if(!dojo._hasResource["dojo.DeferredList"]){dojo._hasResource["dojo.DeferredList"]=true;dojo.provide("dojo.DeferredList");dojo.DeferredList=function(list,_4e1,_4e2,_4e3,_4e4){var _4e5=[];dojo.Deferred.call(this);var self=this;if(list.length===0&&!_4e1){this.resolve([0,[]]);}var _4e6=0;dojo.forEach(list,function(item,i){item.then(function(_4e7){if(_4e1){self.resolve([i,_4e7]);}else{_4e8(true,_4e7);}},function(_4e9){if(_4e2){self.reject(_4e9);}else{_4e8(false,_4e9);}if(_4e3){return null;}throw _4e9;});function _4e8(_4ea,_4eb){_4e5[i]=[_4ea,_4eb];_4e6++;if(_4e6===list.length){self.resolve(_4e5);}};});};dojo.DeferredList.prototype=new dojo.Deferred();dojo.DeferredList.prototype.gatherResults=function(_4ec){var d=new dojo.DeferredList(_4ec,false,true,false);d.addCallback(function(_4ed){var ret=[];dojo.forEach(_4ed,function(_4ee){ret.push(_4ee[1]);});return ret;});return d;};}if(!dojo._hasResource["dijit.tree.TreeStoreModel"]){dojo._hasResource["dijit.tree.TreeStoreModel"]=true;dojo.provide("dijit.tree.TreeStoreModel");dojo.declare("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(args){dojo.mixin(this,args);this.connects=[];var _4ef=this.store;if(!_4ef.getFeatures()["dojo.data.api.Identity"]){throw new Error("dijit.Tree: store must support dojo.data.Identity");}if(_4ef.getFeatures()["dojo.data.api.Notification"]){this.connects=this.connects.concat([dojo.connect(_4ef,"onNew",this,"onNewItem"),dojo.connect(_4ef,"onDelete",this,"onDeleteItem"),dojo.connect(_4ef,"onSet",this,"onSetItem")]);}},destroy:function(){dojo.forEach(this.connects,dojo.disconnect);},getRoot:function(_4f0,_4f1){if(this.root){_4f0(this.root);}else{this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_4f2){if(_4f2.length!=1){throw new Error(this.declaredClass+": query "+dojo.toJson(this.query)+" returned "+_4f2.length+" items, but must return exactly one item");}this.root=_4f2[0];_4f0(this.root);}),onError:_4f1});}},mayHaveChildren:function(item){return dojo.some(this.childrenAttrs,function(attr){return this.store.hasAttribute(item,attr);},this);},getChildren:function(_4f3,_4f4,_4f5){var _4f6=this.store;if(!_4f6.isItemLoaded(_4f3)){var _4f7=dojo.hitch(this,arguments.callee);_4f6.loadItem({item:_4f3,onItem:function(_4f8){_4f7(_4f8,_4f4,_4f5);},onError:_4f5});return;}var _4f9=[];for(var i=0;i<this.childrenAttrs.length;i++){var vals=_4f6.getValues(_4f3,this.childrenAttrs[i]);_4f9=_4f9.concat(vals);}var _4fa=0;if(!this.deferItemLoadingUntilExpand){dojo.forEach(_4f9,function(item){if(!_4f6.isItemLoaded(item)){_4fa++;}});}if(_4fa==0){_4f4(_4f9);}else{dojo.forEach(_4f9,function(item,idx){if(!_4f6.isItemLoaded(item)){_4f6.loadItem({item:item,onItem:function(item){_4f9[idx]=item;if(--_4fa==0){_4f4(_4f9);}},onError:_4f5});}});}},isItem:function(_4fb){return this.store.isItem(_4fb);},fetchItemByIdentity:function(_4fc){this.store.fetchItemByIdentity(_4fc);},getIdentity:function(item){return this.store.getIdentity(item);},getLabel:function(item){if(this.labelAttr){return this.store.getValue(item,this.labelAttr);}else{return this.store.getLabel(item);}},newItem:function(args,_4fd,_4fe){var _4ff={parent:_4fd,attribute:this.childrenAttrs[0],insertIndex:_4fe};if(this.newItemIdAttr&&args[this.newItemIdAttr]){this.fetchItemByIdentity({identity:args[this.newItemIdAttr],scope:this,onItem:function(item){if(item){this.pasteItem(item,null,_4fd,true,_4fe);}else{this.store.newItem(args,_4ff);}}});}else{this.store.newItem(args,_4ff);}},pasteItem:function(_500,_501,_502,_503,_504){var _505=this.store,_506=this.childrenAttrs[0];if(_501){dojo.forEach(this.childrenAttrs,function(attr){if(_505.containsValue(_501,attr,_500)){if(!_503){var _507=dojo.filter(_505.getValues(_501,attr),function(x){return x!=_500;});_505.setValues(_501,attr,_507);}_506=attr;}});}if(_502){if(typeof _504=="number"){var _508=_505.getValues(_502,_506).slice();_508.splice(_504,0,_500);_505.setValues(_502,_506,_508);}else{_505.setValues(_502,_506,_505.getValues(_502,_506).concat(_500));}}},onChange:function(item){},onChildrenChange:function(_509,_50a){},onDelete:function(_50b,_50c){},onNewItem:function(item,_50d){if(!_50d){return;}this.getChildren(_50d.item,dojo.hitch(this,function(_50e){this.onChildrenChange(_50d.item,_50e);}));},onDeleteItem:function(item){this.onDelete(item);},onSetItem:function(item,_50f,_510,_511){if(dojo.indexOf(this.childrenAttrs,_50f)!=-1){this.getChildren(item,dojo.hitch(this,function(_512){this.onChildrenChange(item,_512);}));}else{this.onChange(item);}}});}if(!dojo._hasResource["dijit.tree.ForestStoreModel"]){dojo._hasResource["dijit.tree.ForestStoreModel"]=true;dojo.provide("dijit.tree.ForestStoreModel");dojo.declare("dijit.tree.ForestStoreModel",dijit.tree.TreeStoreModel,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_513){this.root={store:this,root:true,id:_513.rootId,label:_513.rootLabel,children:_513.rootChildren};},mayHaveChildren:function(item){return item===this.root||this.inherited(arguments);},getChildren:function(_514,_515,_516){if(_514===this.root){if(this.root.children){_515(this.root.children);}else{this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_517){this.root.children=_517;_515(_517);}),onError:_516});}}else{this.inherited(arguments);}},isItem:function(_518){return (_518===this.root)?true:this.inherited(arguments);},fetchItemByIdentity:function(_519){if(_519.identity==this.root.id){var _51a=_519.scope?_519.scope:dojo.global;if(_519.onItem){_519.onItem.call(_51a,this.root);}}else{this.inherited(arguments);}},getIdentity:function(item){return (item===this.root)?this.root.id:this.inherited(arguments);},getLabel:function(item){return (item===this.root)?this.root.label:this.inherited(arguments);},newItem:function(args,_51b,_51c){if(_51b===this.root){this.onNewRootItem(args);return this.store.newItem(args);}else{return this.inherited(arguments);}},onNewRootItem:function(args){},pasteItem:function(_51d,_51e,_51f,_520,_521){if(_51e===this.root){if(!_520){this.onLeaveRoot(_51d);}}dijit.tree.TreeStoreModel.prototype.pasteItem.call(this,_51d,_51e===this.root?null:_51e,_51f===this.root?null:_51f,_520,_521);if(_51f===this.root){this.onAddToRoot(_51d);}},onAddToRoot:function(item){console.log(this,": item ",item," added to root");},onLeaveRoot:function(item){console.log(this,": item ",item," removed from root");},_requeryTop:function(){var _522=this.root.children||[];this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_523){this.root.children=_523;if(_522.length!=_523.length||dojo.some(_522,function(item,idx){return _523[idx]!=item;})){this.onChildrenChange(this.root,_523);}})});},onNewItem:function(item,_524){this._requeryTop();this.inherited(arguments);},onDeleteItem:function(item){if(dojo.indexOf(this.root.children,item)!=-1){this._requeryTop();}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.Tree"]){dojo._hasResource["dijit.Tree"]=true;dojo.provide("dijit.Tree");dojo.declare("dijit._TreeNode",[dijit._Widget,dijit._Templated,dijit._Container,dijit._Contained,dijit._CssStateMixin],{item:null,isTreeNode:true,label:"",isExpandable:null,isExpanded:false,state:"UNCHECKED",templateString:dojo.cache("dijit","templates/TreeNode.html","<div class=\"dijitTreeNode\" waiRole=\"presentation\"\n\t><div dojoAttachPoint=\"rowNode\" class=\"dijitTreeRow\" waiRole=\"presentation\" dojoAttachEvent=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"expandoNode\" class=\"dijitTreeExpando\" waiRole=\"presentation\"\n\t\t/><span dojoAttachPoint=\"expandoNodeText\" class=\"dijitExpandoText\" waiRole=\"presentation\"\n\t\t></span\n\t\t><span dojoAttachPoint=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" waiRole=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" waiRole=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"labelNode\" class=\"dijitTreeLabel\" wairole=\"treeitem\" tabindex=\"-1\" waiState=\"selected-false\" dojoAttachEvent=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div dojoAttachPoint=\"containerNode\" class=\"dijitTreeContainer\" waiRole=\"presentation\" style=\"display: none;\"></div>\n</div>\n"),baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow",labelNode:"dijitTreeLabel"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"labelNode",type:"innerText"},tooltip:{node:"rowNode",type:"attribute",attribute:"title"}}),postCreate:function(){this.inherited(arguments);this._setExpando();this._updateItemClasses(this.item);if(this.isExpandable){dijit.setWaiState(this.labelNode,"expanded",this.isExpanded);}},_setIndentAttr:function(_525){this.indent=_525;var _526=(Math.max(_525,0)*this.tree._nodePixelIndent)+"px";dojo.style(this.domNode,"backgroundPosition",_526+" 0px");dojo.style(this.rowNode,this.isLeftToRight()?"paddingLeft":"paddingRight",_526);dojo.forEach(this.getChildren(),function(_527){_527.set("indent",_525+1);});},markProcessing:function(){this.state="LOADING";this._setExpando(true);},unmarkProcessing:function(){this._setExpando(false);},_updateItemClasses:function(item){var tree=this.tree,_528=tree.model;if(tree._v10Compat&&item===_528.root){item=null;}this._applyClassAndStyle(item,"icon","Icon");this._applyClassAndStyle(item,"label","Label");this._applyClassAndStyle(item,"row","Row");},_applyClassAndStyle:function(item,_529,_52a){var _52b="_"+_529+"Class";var _52c=_529+"Node";if(this[_52b]){dojo.removeClass(this[_52c],this[_52b]);}this[_52b]=this.tree["get"+_52a+"Class"](item,this.isExpanded);if(this[_52b]){dojo.addClass(this[_52c],this[_52b]);}dojo.style(this[_52c],this.tree["get"+_52a+"Style"](item,this.isExpanded)||{});},_updateLayout:function(){var _52d=this.getParent();if(!_52d||_52d.rowNode.style.display=="none"){dojo.addClass(this.domNode,"dijitTreeIsRoot");}else{dojo.toggleClass(this.domNode,"dijitTreeIsLast",!this.getNextSibling());}},_setExpando:function(_52e){var _52f=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_530=["*","-","+","*"],idx=_52e?0:(this.isExpandable?(this.isExpanded?1:2):3);dojo.removeClass(this.expandoNode,_52f);dojo.addClass(this.expandoNode,_52f[idx]);this.expandoNodeText.innerHTML=_530[idx];},expand:function(){if(this._expandDeferred){return this._expandDeferred;}this._wipeOut&&this._wipeOut.stop();this.isExpanded=true;dijit.setWaiState(this.labelNode,"expanded","true");dijit.setWaiRole(this.containerNode,"group");dojo.addClass(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(this==this.tree.rootNode){dijit.setWaiState(this.tree.domNode,"expanded","true");}var def,_531=dojo.fx.wipeIn({node:this.containerNode,duration:dijit.defaultDuration,onEnd:function(){def.callback(true);}});def=(this._expandDeferred=new dojo.Deferred(function(){_531.stop();}));_531.play();return def;},collapse:function(){if(!this.isExpanded){return;}if(this._expandDeferred){this._expandDeferred.cancel();delete this._expandDeferred;}this.isExpanded=false;dijit.setWaiState(this.labelNode,"expanded","false");if(this==this.tree.rootNode){dijit.setWaiState(this.tree.domNode,"expanded","false");}dojo.removeClass(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(!this._wipeOut){this._wipeOut=dojo.fx.wipeOut({node:this.containerNode,duration:dijit.defaultDuration});}this._wipeOut.play();},indent:0,setChildItems:function(_532){var tree=this.tree,_533=tree.model,defs=[];dojo.forEach(this.getChildren(),function(_534){dijit._Container.prototype.removeChild.call(this,_534);},this);this.state="LOADED";if(_532&&_532.length>0){this.isExpandable=true;dojo.forEach(_532,function(item){var id=_533.getIdentity(item),_535=tree._itemNodesMap[id],node;if(_535){for(var i=0;i<_535.length;i++){if(_535[i]&&!_535[i].getParent()){node=_535[i];node.set("indent",this.indent+1);break;}}}if(!node){node=this.tree._createTreeNode({item:item,tree:tree,isExpandable:_533.mayHaveChildren(item),label:tree.getLabel(item),tooltip:tree.getTooltip(item),dir:tree.dir,lang:tree.lang,indent:this.indent+1});if(_535){_535.push(node);}else{tree._itemNodesMap[id]=[node];}}this.addChild(node);if(this.tree.autoExpand||this.tree._state(item)){defs.push(tree._expandNode(node));}},this);dojo.forEach(this.getChildren(),function(_536,idx){_536._updateLayout();});}else{this.isExpandable=false;}if(this._setExpando){this._setExpando(false);}this._updateItemClasses(this.item);if(this==tree.rootNode){var fc=this.tree.showRoot?this:this.getChildren()[0];if(fc){fc.setFocusable(true);tree.lastFocused=fc;}else{tree.domNode.setAttribute("tabIndex","0");}}return new dojo.DeferredList(defs);},removeChild:function(node){this.inherited(arguments);var _537=this.getChildren();if(_537.length==0){this.isExpandable=false;this.collapse();}dojo.forEach(_537,function(_538){_538._updateLayout();});},makeExpandable:function(){this.isExpandable=true;this._setExpando(false);},_onLabelFocus:function(evt){this.tree._onNodeFocus(this);},setSelected:function(_539){dijit.setWaiState(this.labelNode,"selected",_539);dojo.toggleClass(this.rowNode,"dijitTreeRowSelected",_539);},setFocusable:function(_53a){this.labelNode.setAttribute("tabIndex",_53a?"0":"-1");},_onClick:function(evt){this.tree._onClick(this,evt);},_onDblClick:function(evt){this.tree._onDblClick(this,evt);},_onMouseEnter:function(evt){this.tree._onNodeMouseEnter(this,evt);},_onMouseLeave:function(evt){this.tree._onNodeMouseLeave(this,evt);}});dojo.declare("dijit.Tree",[dijit._Widget,dijit._Templated],{store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],path:[],selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:dojo.cache("dijit","templates/Tree.html","<div class=\"dijitTree dijitTreeContainer\" waiRole=\"tree\"\n\tdojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" dojoAttachPoint=\"indentDetector\"></div>\n</div>\n"),persist:true,autoExpand:false,dndController:null,dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(_53b,_53c){dojo.publish(this.id,[dojo.mixin({tree:this,event:_53b},_53c||{})]);},postMixInProperties:function(){this.tree=this;if(this.autoExpand){this.persist=false;}this._itemNodesMap={};if(!this.cookieName){this.cookieName=this.id+"SaveStateCookie";}this._loadDeferred=new dojo.Deferred();this.inherited(arguments);},postCreate:function(){this._initState();if(!this.model){this._store2model();}this.connect(this.model,"onChange","_onItemChange");this.connect(this.model,"onChildrenChange","_onItemChildrenChange");this.connect(this.model,"onDelete","_onItemDelete");this._load();this.inherited(arguments);if(this.dndController){if(dojo.isString(this.dndController)){this.dndController=dojo.getObject(this.dndController);}var _53d={};for(var i=0;i<this.dndParams.length;i++){if(this[this.dndParams[i]]){_53d[this.dndParams[i]]=this[this.dndParams[i]];}}this.dndController=new this.dndController(this,_53d);}},_store2model:function(){this._v10Compat=true;dojo.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");var _53e={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr};if(this.params.mayHaveChildren){_53e.mayHaveChildren=dojo.hitch(this,"mayHaveChildren");}if(this.params.getItemChildren){_53e.getChildren=dojo.hitch(this,function(item,_53f,_540){this.getItemChildren((this._v10Compat&&item===this.model.root)?null:item,_53f,_540);});}this.model=new dijit.tree.ForestStoreModel(_53e);this.showRoot=Boolean(this.label);},onLoad:function(){},_load:function(){this.model.getRoot(dojo.hitch(this,function(item){var rn=(this.rootNode=this.tree._createTreeNode({item:item,tree:this,isExpandable:true,label:this.label||this.getLabel(item),indent:this.showRoot?0:-1}));if(!this.showRoot){rn.rowNode.style.display="none";}this.domNode.appendChild(rn.domNode);var _541=this.model.getIdentity(item);if(this._itemNodesMap[_541]){this._itemNodesMap[_541].push(rn);}else{this._itemNodesMap[_541]=[rn];}rn._updateLayout();this._expandNode(rn).addCallback(dojo.hitch(this,function(){this._loadDeferred.callback(true);this.onLoad();}));}),function(err){console.error(this,": error loading root: ",err);});},getNodesByItem:function(item){if(!item){return [];}var _542=dojo.isString(item)?item:this.model.getIdentity(item);return [].concat(this._itemNodesMap[_542]);},_setSelectedItemAttr:function(item){var _543=this.get("selectedItem");var _544=(!item||dojo.isString(item))?item:this.model.getIdentity(item);if(_544==_543?this.model.getIdentity(_543):null){return;}var _545=this._itemNodesMap[_544];this._selectNode((_545&&_545[0])||null);},_getSelectedItemAttr:function(){return this.selectedNode&&this.selectedNode.item;},_setPathAttr:function(path){var d=new dojo.Deferred();this._selectNode(null);if(!path||!path.length){d.resolve(true);return d;}this._loadDeferred.addCallback(dojo.hitch(this,function(){if(!this.rootNode){d.reject(new Error("!this.rootNode"));return;}if(path[0]!==this.rootNode.item&&(dojo.isString(path[0])&&path[0]!=this.model.getIdentity(this.rootNode.item))){d.reject(new Error(this.id+":path[0] doesn't match this.rootNode.item. Maybe you are using the wrong tree."));return;}path.shift();var node=this.rootNode;function _546(){var item=path.shift(),_547=dojo.isString(item)?item:this.model.getIdentity(item);dojo.some(this._itemNodesMap[_547],function(n){if(n.getParent()==node){node=n;return true;}return false;});if(path.length){this._expandNode(node).addCallback(dojo.hitch(this,_546));}else{this._selectNode(node);d.resolve(true);}};this._expandNode(node).addCallback(dojo.hitch(this,_546));}));return d;},_getPathAttr:function(){if(!this.selectedNode){return;}var res=[];var _548=this.selectedNode;while(_548&&_548!==this.rootNode){res.unshift(_548.item);_548=_548.getParent();}res.unshift(this.rootNode.item);return res;},mayHaveChildren:function(item){},getItemChildren:function(_549,_54a){},getLabel:function(item){return this.model.getLabel(item);},getIconClass:function(item,_54b){return (!item||this.model.mayHaveChildren(item))?(_54b?"dijitFolderOpened":"dijitFolderClosed"):"dijitLeaf";},getLabelClass:function(item,_54c){},getRowClass:function(item,_54d){},getIconStyle:function(item,_54e){},getLabelStyle:function(item,_54f){},getRowStyle:function(item,_550){},getTooltip:function(item){return "";},_onKeyPress:function(e){if(e.altKey){return;}var dk=dojo.keys;var _551=dijit.getEnclosingWidget(e.target);if(!_551){return;}var key=e.charOrCode;if(typeof key=="string"){if(!e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){this._onLetterKeyNav({node:_551,key:key.toLowerCase()});dojo.stopEvent(e);}}else{if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}var map=this._keyHandlerMap;if(!map){map={};map[dk.ENTER]="_onEnterKey";map[this.isLeftToRight()?dk.LEFT_ARROW:dk.RIGHT_ARROW]="_onLeftArrow";map[this.isLeftToRight()?dk.RIGHT_ARROW:dk.LEFT_ARROW]="_onRightArrow";map[dk.UP_ARROW]="_onUpArrow";map[dk.DOWN_ARROW]="_onDownArrow";map[dk.HOME]="_onHomeKey";map[dk.END]="_onEndKey";this._keyHandlerMap=map;}if(this._keyHandlerMap[key]){this[this._keyHandlerMap[key]]({node:_551,item:_551.item,evt:e});dojo.stopEvent(e);}}},_onEnterKey:function(_552,evt){this._publish("execute",{item:_552.item,node:_552.node});this._selectNode(_552.node);this.onClick(_552.item,_552.node,evt);},_onDownArrow:function(_553){var node=this._getNextNode(_553.node);if(node&&node.isTreeNode){this.focusNode(node);}},_onUpArrow:function(_554){var node=_554.node;var _555=node.getPreviousSibling();if(_555){node=_555;while(node.isExpandable&&node.isExpanded&&node.hasChildren()){var _556=node.getChildren();node=_556[_556.length-1];}}else{var _557=node.getParent();if(!(!this.showRoot&&_557===this.rootNode)){node=_557;}}if(node&&node.isTreeNode){this.focusNode(node);}},_onRightArrow:function(_558){var node=_558.node;if(node.isExpandable&&!node.isExpanded){this._expandNode(node);}else{if(node.hasChildren()){node=node.getChildren()[0];if(node&&node.isTreeNode){this.focusNode(node);}}}},_onLeftArrow:function(_559){var node=_559.node;if(node.isExpandable&&node.isExpanded){this._collapseNode(node);}else{var _55a=node.getParent();if(_55a&&_55a.isTreeNode&&!(!this.showRoot&&_55a===this.rootNode)){this.focusNode(_55a);}}},_onHomeKey:function(){var node=this._getRootOrFirstNode();if(node){this.focusNode(node);}},_onEndKey:function(_55b){var node=this.rootNode;while(node.isExpanded){var c=node.getChildren();node=c[c.length-1];}if(node&&node.isTreeNode){this.focusNode(node);}},multiCharSearchDuration:250,_onLetterKeyNav:function(_55c){var cs=this._curSearch;if(cs){cs.pattern=cs.pattern+_55c.key;clearTimeout(cs.timer);}else{cs=this._curSearch={pattern:_55c.key,startNode:_55c.node};}var self=this;cs.timer=setTimeout(function(){delete self._curSearch;},this.multiCharSearchDuration);var node=cs.startNode;do{node=this._getNextNode(node);if(!node){node=this._getRootOrFirstNode();}}while(node!==cs.startNode&&(node.label.toLowerCase().substr(0,cs.pattern.length)!=cs.pattern));if(node&&node.isTreeNode){if(node!==cs.startNode){this.focusNode(node);}}},_onClick:function(_55d,e){var _55e=e.target,_55f=(_55e==_55d.expandoNode||_55e==_55d.expandoNodeText);if((this.openOnClick&&_55d.isExpandable)||_55f){if(_55d.isExpandable){this._onExpandoClick({node:_55d});}}else{this._publish("execute",{item:_55d.item,node:_55d,evt:e});this.onClick(_55d.item,_55d,e);this.focusNode(_55d);}if(!_55f){this._selectNode(_55d);}dojo.stopEvent(e);},_onDblClick:function(_560,e){var _561=e.target,_562=(_561==_560.expandoNode||_561==_560.expandoNodeText);if((this.openOnDblClick&&_560.isExpandable)||_562){if(_560.isExpandable){this._onExpandoClick({node:_560});}}else{this._publish("execute",{item:_560.item,node:_560,evt:e});this.onDblClick(_560.item,_560,e);this.focusNode(_560);}if(!_562){this._selectNode(_560);}dojo.stopEvent(e);},_onExpandoClick:function(_563){var node=_563.node;this.focusNode(node);if(node.isExpanded){this._collapseNode(node);}else{this._expandNode(node);}},onClick:function(item,node,evt){},onDblClick:function(item,node,evt){},onOpen:function(item,node){},onClose:function(item,node){},_getNextNode:function(node){if(node.isExpandable&&node.isExpanded&&node.hasChildren()){return node.getChildren()[0];}else{while(node&&node.isTreeNode){var _564=node.getNextSibling();if(_564){return _564;}node=node.getParent();}return null;}},_getRootOrFirstNode:function(){return this.showRoot?this.rootNode:this.rootNode.getChildren()[0];},_collapseNode:function(node){if(node._expandNodeDeferred){delete node._expandNodeDeferred;}if(node.isExpandable){if(node.state=="LOADING"){return;}node.collapse();this.onClose(node.item,node);if(node.item){this._state(node.item,false);this._saveState();}}},_expandNode:function(node,_565){if(node._expandNodeDeferred&&!_565){return node._expandNodeDeferred;}var _566=this.model,item=node.item,_567=this;switch(node.state){case "UNCHECKED":node.markProcessing();var def=(node._expandNodeDeferred=new dojo.Deferred());_566.getChildren(item,function(_568){node.unmarkProcessing();var scid=node.setChildItems(_568);var ed=_567._expandNode(node,true);scid.addCallback(function(){ed.addCallback(function(){def.callback();});});},function(err){console.error(_567,": error loading root children: ",err);});break;default:def=(node._expandNodeDeferred=node.expand());this.onOpen(node.item,node);if(item){this._state(item,true);this._saveState();}}return def;},focusNode:function(node){dijit.focus(node.labelNode);},_selectNode:function(node){if(this.selectedNode&&!this.selectedNode._destroyed){this.selectedNode.setSelected(false);}if(node){node.setSelected(true);}this.selectedNode=node;},_onNodeFocus:function(node){if(node&&node!=this.lastFocused){if(this.lastFocused&&!this.lastFocused._destroyed){this.lastFocused.setFocusable(false);}node.setFocusable(true);this.lastFocused=node;}},_onNodeMouseEnter:function(node){},_onNodeMouseLeave:function(node){},_onItemChange:function(item){var _569=this.model,_56a=_569.getIdentity(item),_56b=this._itemNodesMap[_56a];if(_56b){var _56c=this.getLabel(item),_56d=this.getTooltip(item);dojo.forEach(_56b,function(node){node.set({item:item,label:_56c,tooltip:_56d});node._updateItemClasses(item);});}},_onItemChildrenChange:function(_56e,_56f){var _570=this.model,_571=_570.getIdentity(_56e),_572=this._itemNodesMap[_571];if(_572){dojo.forEach(_572,function(_573){_573.setChildItems(_56f);});}},_onItemDelete:function(item){var _574=this.model,_575=_574.getIdentity(item),_576=this._itemNodesMap[_575];if(_576){dojo.forEach(_576,function(node){var _577=node.getParent();if(_577){_577.removeChild(node);}node.destroyRecursive();});delete this._itemNodesMap[_575];}},_initState:function(){if(this.persist){var _578=dojo.cookie(this.cookieName);this._openedItemIds={};if(_578){dojo.forEach(_578.split(","),function(item){this._openedItemIds[item]=true;},this);}}},_state:function(item,_579){if(!this.persist){return false;}var id=this.model.getIdentity(item);if(arguments.length===1){return this._openedItemIds[id];}if(_579){this._openedItemIds[id]=true;}else{delete this._openedItemIds[id];}},_saveState:function(){if(!this.persist){return;}var ary=[];for(var id in this._openedItemIds){ary.push(id);}dojo.cookie(this.cookieName,ary.join(","),{expires:365});},destroy:function(){if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}if(this.rootNode){this.rootNode.destroyRecursive();}if(this.dndController&&!dojo.isString(this.dndController)){this.dndController.destroy();}this.rootNode=null;this.inherited(arguments);},destroyRecursive:function(){this.destroy();},resize:function(_57a){if(_57a){dojo.marginBox(this.domNode,_57a);dojo.style(this.domNode,"overflow","auto");}this._nodePixelIndent=dojo.marginBox(this.tree.indentDetector).w;if(this.tree.rootNode){this.tree.rootNode.set("indent",this.showRoot?0:-1);}},_createTreeNode:function(args){return new dijit._TreeNode(args);}});}if(!dojo._hasResource["dojo.dnd.Container"]){dojo._hasResource["dojo.dnd.Container"]=true;dojo.provide("dojo.dnd.Container");dojo.declare("dojo.dnd.Container",null,{skipForm:false,constructor:function(node,_57b){this.node=dojo.byId(node);if(!_57b){_57b={};}this.creator=_57b.creator||null;this.skipForm=_57b.skipForm;this.parent=_57b.dropParent&&dojo.byId(_57b.dropParent);this.map={};this.current=null;this.containerState="";dojo.addClass(this.node,"dojoDndContainer");if(!(_57b&&_57b._skipStartup)){this.startup();}this.events=[dojo.connect(this.node,"onmouseover",this,"onMouseOver"),dojo.connect(this.node,"onmouseout",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",this,"onSelectStart"),dojo.connect(this.node,"onselectstart",this,"onSelectStart")];},creator:function(){},getItem:function(key){return this.map[key];},setItem:function(key,data){this.map[key]=data;},delItem:function(key){delete this.map[key];},forInItems:function(f,o){o=o||dojo.global;var m=this.map,e=dojo.dnd._empty;for(var i in m){if(i in e){continue;}f.call(o,m[i],i,this);}return o;},clearItems:function(){this.map={};},getAllNodes:function(){return dojo.query("> .dojoDndItem",this.parent);},sync:function(){var map={};this.getAllNodes().forEach(function(node){if(node.id){var item=this.getItem(node.id);if(item){map[node.id]=item;return;}}else{node.id=dojo.dnd.getUniqueId();}var type=node.getAttribute("dndType"),data=node.getAttribute("dndData");map[node.id]={data:data||node.innerHTML,type:type?type.split(/\s*,\s*/):["text"]};},this);this.map=map;return this;},insertNodes:function(data,_57c,_57d){if(!this.parent.firstChild){_57d=null;}else{if(_57c){if(!_57d){_57d=this.parent.firstChild;}}else{if(_57d){_57d=_57d.nextSibling;}}}if(_57d){for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.insertBefore(t.node,_57d);}}else{for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node);}}return this;},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.clearItems();this.node=this.parent=this.current=null;},markupFactory:function(_57e,node){_57e._skipStartup=true;return new dojo.dnd.Container(node,_57e);},startup:function(){if(!this.parent){this.parent=this.node;if(this.parent.tagName.toLowerCase()=="table"){var c=this.parent.getElementsByTagName("tbody");if(c&&c.length){this.parent=c[0];}}}this.defaultCreator=dojo.dnd._defaultCreator(this.parent);this.sync();},onMouseOver:function(e){var n=e.relatedTarget;while(n){if(n==this.node){break;}try{n=n.parentNode;}catch(x){n=null;}}if(!n){this._changeState("Container","Over");this.onOverEvent();}n=this._getChildByEvent(e);if(this.current==n){return;}if(this.current){this._removeItemClass(this.current,"Over");}if(n){this._addItemClass(n,"Over");}this.current=n;},onMouseOut:function(e){for(var n=e.relatedTarget;n;){if(n==this.node){return;}try{n=n.parentNode;}catch(x){n=null;}}if(this.current){this._removeItemClass(this.current,"Over");this.current=null;}this._changeState("Container","");this.onOutEvent();},onSelectStart:function(e){if(!this.skipForm||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(type,_57f){var _580="dojoDnd"+type;var _581=type.toLowerCase()+"State";dojo.removeClass(this.node,_580+this[_581]);dojo.addClass(this.node,_580+_57f);this[_581]=_57f;},_addItemClass:function(node,type){dojo.addClass(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){dojo.removeClass(node,"dojoDndItem"+type);},_getChildByEvent:function(e){var node=e.target;if(node){for(var _582=node.parentNode;_582;node=_582,_582=node.parentNode){if(_582==this.parent&&dojo.hasClass(node,"dojoDndItem")){return node;}}}return null;},_normalizedCreator:function(item,hint){var t=(this.creator||this.defaultCreator).call(this,item,hint);if(!dojo.isArray(t.type)){t.type=["text"];}if(!t.node.id){t.node.id=dojo.dnd.getUniqueId();}dojo.addClass(t.node,"dojoDndItem");return t;}});dojo.dnd._createNode=function(tag){if(!tag){return dojo.dnd._createSpan;}return function(text){return dojo.create(tag,{innerHTML:text});};};dojo.dnd._createTrTd=function(text){var tr=dojo.create("tr");dojo.create("td",{innerHTML:text},tr);return tr;};dojo.dnd._createSpan=function(text){return dojo.create("span",{innerHTML:text});};dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};dojo.dnd._defaultCreator=function(node){var tag=node.tagName.toLowerCase();var c=tag=="tbody"||tag=="thead"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]);return function(item,hint){var _583=item&&dojo.isObject(item),data,type,n;if(_583&&item.tagName&&item.nodeType&&item.getAttribute){data=item.getAttribute("dndData")||item.innerHTML;type=item.getAttribute("dndType");type=type?type.split(/\s*,\s*/):["text"];n=item;}else{data=(_583&&item.data)?item.data:item;type=(_583&&item.type)?item.type:["text"];n=(hint=="avatar"?dojo.dnd._createSpan:c)(String(data));}if(!n.id){n.id=dojo.dnd.getUniqueId();}return {node:n,data:data,type:type};};};}if(!dojo._hasResource["dijit.tree._dndContainer"]){dojo._hasResource["dijit.tree._dndContainer"]=true;dojo.provide("dijit.tree._dndContainer");dojo.declare("dijit.tree._dndContainer",null,{constructor:function(tree,_584){this.tree=tree;this.node=tree.domNode;dojo.mixin(this,_584);this.map={};this.current=null;this.containerState="";dojo.addClass(this.node,"dojoDndContainer");this.events=[dojo.connect(this.node,"onmouseenter",this,"onOverEvent"),dojo.connect(this.node,"onmouseleave",this,"onOutEvent"),dojo.connect(this.tree,"_onNodeMouseEnter",this,"onMouseOver"),dojo.connect(this.tree,"_onNodeMouseLeave",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",dojo,"stopEvent"),dojo.connect(this.node,"onselectstart",dojo,"stopEvent")];},getItem:function(key){var node=this.selection[key],ret={data:dijit.getEnclosingWidget(node),type:["treeNode"]};return ret;},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.node=this.parent=null;},onMouseOver:function(_585,evt){this.current=_585.rowNode;this.currentWidget=_585;},onMouseOut:function(_586,evt){this.current=null;this.currentWidget=null;},_changeState:function(type,_587){var _588="dojoDnd"+type;var _589=type.toLowerCase()+"State";dojo.removeClass(this.node,_588+this[_589]);dojo.addClass(this.node,_588+_587);this[_589]=_587;},_addItemClass:function(node,type){dojo.addClass(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){dojo.removeClass(node,"dojoDndItem"+type);},onOverEvent:function(){this._changeState("Container","Over");},onOutEvent:function(){this._changeState("Container","");}});}if(!dojo._hasResource["dijit.tree._dndSelector"]){dojo._hasResource["dijit.tree._dndSelector"]=true;dojo.provide("dijit.tree._dndSelector");dojo.declare("dijit.tree._dndSelector",dijit.tree._dndContainer,{constructor:function(tree,_58a){this.selection={};this.anchor=null;this.simpleSelection=false;this.events.push(dojo.connect(this.tree.domNode,"onmousedown",this,"onMouseDown"),dojo.connect(this.tree.domNode,"onmouseup",this,"onMouseUp"),dojo.connect(this.tree.domNode,"onmousemove",this,"onMouseMove"));},singular:false,getSelectedNodes:function(){return this.selection;},selectNone:function(){return this._removeSelection()._removeAnchor();},destroy:function(){this.inherited(arguments);this.selection=this.anchor=null;},onMouseDown:function(e){if(!this.current){return;}if(e.button==dojo.mouseButtons.RIGHT){return;}var _58b=dijit.getEnclosingWidget(this.current),id=_58b.id+"-dnd";if(!dojo.hasAttr(this.current,"id")){dojo.attr(this.current,"id",id);}if(!this.singular&&!dojo.isCopyKey(e)&&!e.shiftKey&&(this.current.id in this.selection)){this.simpleSelection=true;dojo.stopEvent(e);return;}if(this.singular){if(this.anchor==this.current){if(dojo.isCopyKey(e)){this.selectNone();}}else{this.selectNone();this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=this.current;}}else{if(!this.singular&&e.shiftKey){if(dojo.isCopyKey(e)){}else{}}else{if(dojo.isCopyKey(e)){if(this.anchor==this.current){delete this.selection[this.anchor.id];this._removeAnchor();}else{if(this.current.id in this.selection){this._removeItemClass(this.current,"Selected");delete this.selection[this.current.id];}else{if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this._addItemClass(this.anchor,"Selected");}this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=this.current;}}}else{if(!(id in this.selection)){this.selectNone();this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[id]=this.current;}}}}dojo.stopEvent(e);},onMouseUp:function(e){if(!this.simpleSelection){return;}this.simpleSelection=false;this.selectNone();if(this.current){this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=this.current;}},onMouseMove:function(e){this.simpleSelection=false;},_removeSelection:function(){var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}var node=dojo.byId(i);if(node){this._removeItemClass(node,"Selected");}}this.selection={};return this;},_removeAnchor:function(){if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this.anchor=null;}return this;},forInSelectedItems:function(f,o){o=o||dojo.global;for(var id in this.selection){console.log("selected item id: "+id);f.call(o,this.getItem(id),id,this);}}});}if(!dojo._hasResource["dojo.dnd.Avatar"]){dojo._hasResource["dojo.dnd.Avatar"]=true;dojo.provide("dojo.dnd.Avatar");dojo.declare("dojo.dnd.Avatar",null,{constructor:function(_58c){this.manager=_58c;this.construct();},construct:function(){this.isA11y=dojo.hasClass(dojo.body(),"dijit_a11y");var a=dojo.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),_58d=this.manager.source,node,b=dojo.create("tbody",null,a),tr=dojo.create("tr",null,b),td=dojo.create("td",null,tr),icon=this.isA11y?dojo.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"<"},td):null,span=dojo.create("span",{innerHTML:_58d.generateText?this._generateText():""},td),k=Math.min(5,this.manager.nodes.length),i=0;dojo.attr(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}});for(;i<k;++i){if(_58d.creator){node=_58d._normalizedCreator(_58d.getItem(this.manager.nodes[i].id).data,"avatar").node;}else{node=this.manager.nodes[i].cloneNode(true);if(node.tagName.toLowerCase()=="tr"){var _58e=dojo.create("table"),_58f=dojo.create("tbody",null,_58e);_58f.appendChild(node);node=_58e;}}node.id="";tr=dojo.create("tr",null,b);td=dojo.create("td",null,tr);td.appendChild(node);dojo.attr(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}});}this.node=a;},destroy:function(){dojo.destroy(this.node);this.node=false;},update:function(){dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop");if(this.isA11y){var icon=dojo.byId("a11yIcon");var text="+";if(this.manager.canDropFlag&&!this.manager.copy){text="< ";}else{if(!this.manager.canDropFlag&&!this.manager.copy){text="o";}else{if(!this.manager.canDropFlag){text="x";}}}icon.innerHTML=text;}dojo.query(("tr.dojoDndAvatarHeader td span"+(this.isA11y?" span":"")),this.node).forEach(function(node){node.innerHTML=this._generateText();},this);},_generateText:function(){return this.manager.nodes.length.toString();}});}if(!dojo._hasResource["dojo.dnd.Manager"]){dojo._hasResource["dojo.dnd.Manager"]=true;dojo.provide("dojo.dnd.Manager");dojo.declare("dojo.dnd.Manager",null,{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];},OFFSET_X:16,OFFSET_Y:16,overSource:function(_590){if(this.avatar){this.target=(_590&&_590.targetState!="Disabled")?_590:null;this.canDropFlag=Boolean(this.target);this.avatar.update();}dojo.publish("/dnd/source/over",[_590]);},outSource:function(_591){if(this.avatar){if(this.target==_591){this.target=null;this.canDropFlag=false;this.avatar.update();dojo.publish("/dnd/source/over",[null]);}}else{dojo.publish("/dnd/source/over",[null]);}},startDrag:function(_592,_593,copy){this.source=_592;this.nodes=_593;this.copy=Boolean(copy);this.avatar=this.makeAvatar();dojo.body().appendChild(this.avatar.node);dojo.publish("/dnd/start",[_592,_593,this.copy]);this.events=[dojo.connect(dojo.doc,"onmousemove",this,"onMouseMove"),dojo.connect(dojo.doc,"onmouseup",this,"onMouseUp"),dojo.connect(dojo.doc,"onkeydown",this,"onKeyDown"),dojo.connect(dojo.doc,"onkeyup",this,"onKeyUp"),dojo.connect(dojo.doc,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent)];var c="dojoDnd"+(copy?"Copy":"Move");dojo.addClass(dojo.body(),c);},canDrop:function(flag){var _594=Boolean(this.target&&flag);if(this.canDropFlag!=_594){this.canDropFlag=_594;this.avatar.update();}},stopDrag:function(){dojo.removeClass(dojo.body(),"dojoDndCopy");dojo.removeClass(dojo.body(),"dojoDndMove");dojo.forEach(this.events,dojo.disconnect);this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[];},makeAvatar:function(){return new dojo.dnd.Avatar(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){dojo.dnd.autoScrollNodes(e);var s=a.node.style;s.left=(e.pageX+this.OFFSET_X)+"px";s.top=(e.pageY+this.OFFSET_Y)+"px";var copy=Boolean(this.source.copyState(dojo.isCopyKey(e)));if(this.copy!=copy){this._setCopyStatus(copy);}}},onMouseUp:function(e){if(this.avatar){if(this.target&&this.canDropFlag){var copy=Boolean(this.source.copyState(dojo.isCopyKey(e))),_595=[this.source,this.nodes,copy,this.target,e];dojo.publish("/dnd/drop/before",_595);dojo.publish("/dnd/drop",_595);}else{dojo.publish("/dnd/cancel");}this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case dojo.keys.CTRL:var copy=Boolean(this.source.copyState(true));if(this.copy!=copy){this._setCopyStatus(copy);}break;case dojo.keys.ESCAPE:dojo.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==dojo.keys.CTRL){var copy=Boolean(this.source.copyState(false));if(this.copy!=copy){this._setCopyStatus(copy);}}},_setCopyStatus:function(copy){this.copy=copy;this.source._markDndStatus(this.copy);this.updateAvatar();dojo.removeClass(dojo.body(),"dojoDnd"+(this.copy?"Move":"Copy"));dojo.addClass(dojo.body(),"dojoDnd"+(this.copy?"Copy":"Move"));}});dojo.dnd._manager=null;dojo.dnd.manager=function(){if(!dojo.dnd._manager){dojo.dnd._manager=new dojo.dnd.Manager();}return dojo.dnd._manager;};}if(!dojo._hasResource["dijit.tree.dndSource"]){dojo._hasResource["dijit.tree.dndSource"]=true;dojo.provide("dijit.tree.dndSource");dojo.declare("dijit.tree.dndSource",dijit.tree._dndSelector,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,constructor:function(tree,_596){if(!_596){_596={};}dojo.mixin(this,_596);this.isSource=typeof _596.isSource=="undefined"?true:_596.isSource;var type=_596.accept instanceof Array?_596.accept:["text","treeNode"];this.accept=null;if(type.length){this.accept={};for(var i=0;i<type.length;++i){this.accept[type[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.dropPosition="";this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){dojo.addClass(this.node,"dojoDndSource");}this.targetState="";if(this.accept){dojo.addClass(this.node,"dojoDndTarget");}this.topics=[dojo.subscribe("/dnd/source/over",this,"onDndSourceOver"),dojo.subscribe("/dnd/start",this,"onDndStart"),dojo.subscribe("/dnd/drop",this,"onDndDrop"),dojo.subscribe("/dnd/cancel",this,"onDndCancel")];},checkAcceptance:function(_597,_598){return true;},copyState:function(_599){return this.copyOnly||_599;},destroy:function(){this.inherited("destroy",arguments);dojo.forEach(this.topics,dojo.unsubscribe);this.targetAnchor=null;},_onDragMouse:function(e){var m=dojo.dnd.manager(),_59a=this.targetAnchor,_59b=this.current,_59c=this.currentWidget,_59d=this.dropPosition;var _59e="Over";if(_59b&&this.betweenThreshold>0){if(!this.targetBox||_59a!=_59b){this.targetBox=dojo.position(_59b,true);}if((e.pageY-this.targetBox.y)<=this.betweenThreshold){_59e="Before";}else{if((e.pageY-this.targetBox.y)>=(this.targetBox.h-this.betweenThreshold)){_59e="After";}}}if(_59b!=_59a||_59e!=_59d){if(_59a){this._removeItemClass(_59a,_59d);}if(_59b){this._addItemClass(_59b,_59e);}if(!_59b){m.canDrop(false);}else{if(_59c==this.tree.rootNode&&_59e!="Over"){m.canDrop(false);}else{if(m.source==this&&(_59b.id in this.selection)){m.canDrop(false);}else{if(this.checkItemAcceptance(_59b,m.source,_59e.toLowerCase())&&!this._isParentChildDrop(m.source,_59b)){m.canDrop(true);}else{m.canDrop(false);}}}}this.targetAnchor=_59b;this.dropPosition=_59e;}},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}this.inherited(arguments);var m=dojo.dnd.manager();if(this.isDragging){this._onDragMouse(e);}else{if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){var n=this.getSelectedNodes();var _59f=[];for(var i in n){_59f.push(n[i]);}if(_59f.length){m.startDrag(this,_59f,this.copyState(dojo.isCopyKey(e)));}}}},onMouseDown:function(e){this.mouseDown=true;this.mouseButton=e.button;this._lastX=e.pageX;this._lastY=e.pageY;this.inherited("onMouseDown",arguments);},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;this.inherited("onMouseUp",arguments);}},onMouseOut:function(){this.inherited(arguments);this._unmarkTargetAnchor();},checkItemAcceptance:function(_5a0,_5a1,_5a2){return true;},onDndSourceOver:function(_5a3){if(this!=_5a3){this.mouseDown=false;this._unmarkTargetAnchor();}else{if(this.isDragging){var m=dojo.dnd.manager();m.canDrop(false);}}},onDndStart:function(_5a4,_5a5,copy){if(this.isSource){this._changeState("Source",this==_5a4?(copy?"Copied":"Moved"):"");}var _5a6=this.checkAcceptance(_5a4,_5a5);this._changeState("Target",_5a6?"":"Disabled");if(this==_5a4){dojo.dnd.manager().overSource(this);}this.isDragging=true;},itemCreator:function(_5a7,_5a8,_5a9){return dojo.map(_5a7,function(node){return {"id":node.id,"name":node.textContent||node.innerText||""};});},onDndDrop:function(_5aa,_5ab,copy){if(this.containerState=="Over"){var tree=this.tree,_5ac=tree.model,_5ad=this.targetAnchor,_5ae=false;this.isDragging=false;var _5af=dijit.getEnclosingWidget(_5ad);var _5b0;var _5b1;_5b0=(_5af&&_5af.item)||tree.item;if(this.dropPosition=="Before"||this.dropPosition=="After"){_5b0=(_5af.getParent()&&_5af.getParent().item)||tree.item;_5b1=_5af.getIndexInParent();if(this.dropPosition=="After"){_5b1=_5af.getIndexInParent()+1;}}else{_5b0=(_5af&&_5af.item)||tree.item;}var _5b2;dojo.forEach(_5ab,function(node,idx){var _5b3=_5aa.getItem(node.id);if(dojo.indexOf(_5b3.type,"treeNode")!=-1){var _5b4=_5b3.data,_5b5=_5b4.item,_5b6=_5b4.getParent().item;}if(_5aa==this){if(typeof _5b1=="number"){if(_5b0==_5b6&&_5b4.getIndexInParent()<_5b1){_5b1-=1;}}_5ac.pasteItem(_5b5,_5b6,_5b0,copy,_5b1);}else{if(_5ac.isItem(_5b5)){_5ac.pasteItem(_5b5,_5b6,_5b0,copy,_5b1);}else{if(!_5b2){_5b2=this.itemCreator(_5ab,_5ad,_5aa);}_5ac.newItem(_5b2[idx],_5b0,_5b1);}}},this);this.tree._expandNode(_5af);}this.onDndCancel();},onDndCancel:function(){this._unmarkTargetAnchor();this.isDragging=false;this.mouseDown=false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","");},onOverEvent:function(){this.inherited(arguments);dojo.dnd.manager().overSource(this);},onOutEvent:function(){this._unmarkTargetAnchor();var m=dojo.dnd.manager();if(this.isDragging){m.canDrop(false);}m.outSource(this);this.inherited(arguments);},_isParentChildDrop:function(_5b7,_5b8){if(!_5b7.tree||_5b7.tree!=this.tree){return false;}var root=_5b7.tree.domNode;var ids={};for(var x in _5b7.selection){ids[_5b7.selection[x].parentNode.id]=true;}var node=_5b8.parentNode;while(node!=root&&(!node.id||!ids[node.id])){node=node.parentNode;}return node.id&&ids[node.id];},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor,this.dropPosition);this.targetAnchor=null;this.targetBox=null;this.dropPosition=null;},_markDndStatus:function(copy){this._changeState("Source",copy?"Copied":"Moved");}});}if(!dojo._hasResource["dojo.data.ItemFileReadStore"]){dojo._hasResource["dojo.data.ItemFileReadStore"]=true;dojo.provide("dojo.data.ItemFileReadStore");dojo.declare("dojo.data.ItemFileReadStore",null,{constructor:function(_5b9){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=_5b9.url;this._ccUrl=_5b9.url;this.url=_5b9.url;this._jsonData=_5b9.data;this.data=null;this._datatypeMap=_5b9.typeMap||{};if(!this._datatypeMap["Date"]){this._datatypeMap["Date"]={type:Date,deserialize:function(_5ba){return dojo.date.stamp.fromISOString(_5ba);}};}this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(_5b9.urlPreventCache!==undefined){this.urlPreventCache=_5b9.urlPreventCache?true:false;}if(_5b9.hierarchical!==undefined){this.hierarchical=_5b9.hierarchical?true:false;}if(_5b9.clearOnClose){this.clearOnClose=true;}if("failOk" in _5b9){this.failOk=_5b9.failOk?true:false;}},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(item){if(!this.isItem(item)){throw new Error("dojo.data.ItemFileReadStore: Invalid item argument.");}},_assertIsAttribute:function(_5bb){if(typeof _5bb!=="string"){throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument.");}},getValue:function(item,_5bc,_5bd){var _5be=this.getValues(item,_5bc);return (_5be.length>0)?_5be[0]:_5bd;},getValues:function(item,_5bf){this._assertIsItem(item);this._assertIsAttribute(_5bf);return (item[_5bf]||[]).slice(0);},getAttributes:function(item){this._assertIsItem(item);var _5c0=[];for(var key in item){if((key!==this._storeRefPropName)&&(key!==this._itemNumPropName)&&(key!==this._rootItemPropName)&&(key!==this._reverseRefMap)){_5c0.push(key);}}return _5c0;},hasAttribute:function(item,_5c1){this._assertIsItem(item);this._assertIsAttribute(_5c1);return (_5c1 in item);},containsValue:function(item,_5c2,_5c3){var _5c4=undefined;if(typeof _5c3==="string"){_5c4=dojo.data.util.filter.patternToRegExp(_5c3,false);}return this._containsValue(item,_5c2,_5c3,_5c4);},_containsValue:function(item,_5c5,_5c6,_5c7){return dojo.some(this.getValues(item,_5c5),function(_5c8){if(_5c8!==null&&!dojo.isObject(_5c8)&&_5c7){if(_5c8.toString().match(_5c7)){return true;}}else{if(_5c6===_5c8){return true;}}});},isItem:function(_5c9){if(_5c9&&_5c9[this._storeRefPropName]===this){if(this._arrayOfAllItems[_5c9[this._itemNumPropName]]===_5c9){return true;}}return false;},isItemLoaded:function(_5ca){return this.isItem(_5ca);},loadItem:function(_5cb){this._assertIsItem(_5cb.item);},getFeatures:function(){return this._features;},getLabel:function(item){if(this._labelAttr&&this.isItem(item)){return this.getValue(item,this._labelAttr);}return undefined;},getLabelAttributes:function(item){if(this._labelAttr){return [this._labelAttr];}return null;},_fetchItems:function(_5cc,_5cd,_5ce){var self=this,_5cf=function(_5d0,_5d1){var _5d2=[],i,key;if(_5d0.query){var _5d3,_5d4=_5d0.queryOptions?_5d0.queryOptions.ignoreCase:false;var _5d5={};for(key in _5d0.query){_5d3=_5d0.query[key];if(typeof _5d3==="string"){_5d5[key]=dojo.data.util.filter.patternToRegExp(_5d3,_5d4);}else{if(_5d3 instanceof RegExp){_5d5[key]=_5d3;}}}for(i=0;i<_5d1.length;++i){var _5d6=true;var _5d7=_5d1[i];if(_5d7===null){_5d6=false;}else{for(key in _5d0.query){_5d3=_5d0.query[key];if(!self._containsValue(_5d7,key,_5d3,_5d5[key])){_5d6=false;}}}if(_5d6){_5d2.push(_5d7);}}_5cd(_5d2,_5d0);}else{for(i=0;i<_5d1.length;++i){var item=_5d1[i];if(item!==null){_5d2.push(item);}}_5cd(_5d2,_5d0);}};if(this._loadFinished){_5cf(_5cc,this._getItemsArray(_5cc.queryOptions));}else{if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_5cc,filter:_5cf});}else{this._loadInProgress=true;var _5d8={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _5d9=dojo.xhrGet(_5d8);_5d9.addCallback(function(data){try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;_5cf(_5cc,self._getItemsArray(_5cc.queryOptions));self._handleQueuedFetches();}catch(e){self._loadFinished=true;self._loadInProgress=false;_5ce(e,_5cc);}});_5d9.addErrback(function(_5da){self._loadInProgress=false;_5ce(_5da,_5cc);});var _5db=null;if(_5cc.abort){_5db=_5cc.abort;}_5cc.abort=function(){var df=_5d9;if(df&&df.fired===-1){df.cancel();df=null;}if(_5db){_5db.call(_5cc);}};}}else{if(this._jsonData){try{this._loadFinished=true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;_5cf(_5cc,this._getItemsArray(_5cc.queryOptions));}catch(e){_5ce(e,_5cc);}}else{_5ce(new Error("dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object."),_5cc);}}}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var _5dc=this._queuedFetches[i],_5dd=_5dc.args,_5de=_5dc.filter;if(_5de){_5de(_5dd,this._getItemsArray(_5dd.queryOptions));}else{this.fetchItemByIdentity(_5dd);}}this._queuedFetches=[];}},_getItemsArray:function(_5df){if(_5df&&_5df.deep){return this._arrayOfAllItems;}return this._arrayOfTopLevelItems;},close:function(_5e0){if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){if(((this._jsonFileUrl==""||this._jsonFileUrl==null)&&(this.url==""||this.url==null))&&this.data==null){console.debug("dojo.data.ItemFileReadStore: WARNING! Data reload "+" information has not been provided."+" Please set 'url' or 'data' to the appropriate value before"+" the next fetch");}this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[];}},_getItemsFromLoadedData:function(_5e1){var _5e2=false,self=this;function _5e3(_5e4){var _5e5=((_5e4!==null)&&(typeof _5e4==="object")&&(!dojo.isArray(_5e4)||_5e2)&&(!dojo.isFunction(_5e4))&&(_5e4.constructor==Object||dojo.isArray(_5e4))&&(typeof _5e4._reference==="undefined")&&(typeof _5e4._type==="undefined")&&(typeof _5e4._value==="undefined")&&self.hierarchical);return _5e5;};function _5e6(_5e7){self._arrayOfAllItems.push(_5e7);for(var _5e8 in _5e7){var _5e9=_5e7[_5e8];if(_5e9){if(dojo.isArray(_5e9)){var _5ea=_5e9;for(var k=0;k<_5ea.length;++k){var _5eb=_5ea[k];if(_5e3(_5eb)){_5e6(_5eb);}}}else{if(_5e3(_5e9)){_5e6(_5e9);}}}}};this._labelAttr=_5e1.label;var i,item;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=_5e1.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){item=this._arrayOfTopLevelItems[i];if(dojo.isArray(item)){_5e2=true;}_5e6(item);item[this._rootItemPropName]=true;}var _5ec={},key;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){if(key!==this._rootItemPropName){var _5ed=item[key];if(_5ed!==null){if(!dojo.isArray(_5ed)){item[key]=[_5ed];}}else{item[key]=[null];}}_5ec[key]=key;}}while(_5ec[this._storeRefPropName]){this._storeRefPropName+="_";}while(_5ec[this._itemNumPropName]){this._itemNumPropName+="_";}while(_5ec[this._reverseRefMap]){this._reverseRefMap+="_";}var _5ee;var _5ef=_5e1.identifier;if(_5ef){this._itemsByIdentity={};this._features["dojo.data.api.Identity"]=_5ef;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];_5ee=item[_5ef];var _5f0=_5ee[0];if(!this._itemsByIdentity[_5f0]){this._itemsByIdentity[_5f0]=item;}else{if(this._jsonFileUrl){throw new Error("dojo.data.ItemFileReadStore: The json data as specified by: ["+this._jsonFileUrl+"] is malformed. Items within the list have identifier: ["+_5ef+"]. Value collided: ["+_5f0+"]");}else{if(this._jsonData){throw new Error("dojo.data.ItemFileReadStore: The json data provided by the creation arguments is malformed. Items within the list have identifier: ["+_5ef+"]. Value collided: ["+_5f0+"]");}}}}}else{this._features["dojo.data.api.Identity"]=Number;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];item[this._storeRefPropName]=this;item[this._itemNumPropName]=i;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){_5ee=item[key];for(var j=0;j<_5ee.length;++j){_5ed=_5ee[j];if(_5ed!==null&&typeof _5ed=="object"){if(("_type" in _5ed)&&("_value" in _5ed)){var type=_5ed._type;var _5f1=this._datatypeMap[type];if(!_5f1){throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+type+"'");}else{if(dojo.isFunction(_5f1)){_5ee[j]=new _5f1(_5ed._value);}else{if(dojo.isFunction(_5f1.deserialize)){_5ee[j]=_5f1.deserialize(_5ed._value);}else{throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}}}}if(_5ed._reference){var _5f2=_5ed._reference;if(!dojo.isObject(_5f2)){_5ee[j]=this._getItemByIdentity(_5f2);}else{for(var k=0;k<this._arrayOfAllItems.length;++k){var _5f3=this._arrayOfAllItems[k],_5f4=true;for(var _5f5 in _5f2){if(_5f3[_5f5]!=_5f2[_5f5]){_5f4=false;}}if(_5f4){_5ee[j]=_5f3;}}}if(this.referenceIntegrity){var _5f6=_5ee[j];if(this.isItem(_5f6)){this._addReferenceToMap(_5f6,item,key);}}}else{if(this.isItem(_5ed)){if(this.referenceIntegrity){this._addReferenceToMap(_5ed,item,key);}}}}}}}},_addReferenceToMap:function(_5f7,_5f8,_5f9){},getIdentity:function(item){var _5fa=this._features["dojo.data.api.Identity"];if(_5fa===Number){return item[this._itemNumPropName];}else{var _5fb=item[_5fa];if(_5fb){return _5fb[0];}}return null;},fetchItemByIdentity:function(_5fc){var item,_5fd;if(!this._loadFinished){var self=this;if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_5fc});}else{this._loadInProgress=true;var _5fe={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _5ff=dojo.xhrGet(_5fe);_5ff.addCallback(function(data){var _600=_5fc.scope?_5fc.scope:dojo.global;try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;item=self._getItemByIdentity(_5fc.identity);if(_5fc.onItem){_5fc.onItem.call(_600,item);}self._handleQueuedFetches();}catch(error){self._loadInProgress=false;if(_5fc.onError){_5fc.onError.call(_600,error);}}});_5ff.addErrback(function(_601){self._loadInProgress=false;if(_5fc.onError){var _602=_5fc.scope?_5fc.scope:dojo.global;_5fc.onError.call(_602,_601);}});}}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;item=self._getItemByIdentity(_5fc.identity);if(_5fc.onItem){_5fd=_5fc.scope?_5fc.scope:dojo.global;_5fc.onItem.call(_5fd,item);}}}}else{item=this._getItemByIdentity(_5fc.identity);if(_5fc.onItem){_5fd=_5fc.scope?_5fc.scope:dojo.global;_5fc.onItem.call(_5fd,item);}}},_getItemByIdentity:function(_603){var item=null;if(this._itemsByIdentity){item=this._itemsByIdentity[_603];}else{item=this._arrayOfAllItems[_603];}if(item===undefined){item=null;}return item;},getIdentityAttributes:function(item){var _604=this._features["dojo.data.api.Identity"];if(_604===Number){return null;}else{return [_604];}},_forceLoad:function(){var self=this;if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){var _605={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true};var _606=dojo.xhrGet(_605);_606.addCallback(function(data){try{if(self._loadInProgress!==true&&!self._loadFinished){self._getItemsFromLoadedData(data);self._loadFinished=true;}else{if(self._loadInProgress){throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress.");}}}catch(e){console.log(e);throw e;}});_606.addErrback(function(_607){throw _607;});}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;}}}});dojo.extend(dojo.data.ItemFileReadStore,dojo.data.util.simpleFetch);}if(!dojo._hasResource["dojo.data.ItemFileWriteStore"]){dojo._hasResource["dojo.data.ItemFileWriteStore"]=true;dojo.provide("dojo.data.ItemFileWriteStore");dojo.declare("dojo.data.ItemFileWriteStore",dojo.data.ItemFileReadStore,{constructor:function(_608){this._features["dojo.data.api.Write"]=true;this._features["dojo.data.api.Notification"]=true;this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};if(!this._datatypeMap["Date"].serialize){this._datatypeMap["Date"].serialize=function(obj){return dojo.date.stamp.toISOString(obj,{zulu:true});};}if(_608&&(_608.referenceIntegrity===false)){this.referenceIntegrity=false;}this._saveInProgress=false;},referenceIntegrity:true,_assert:function(_609){if(!_609){throw new Error("assertion failed in ItemFileWriteStore");}},_getIdentifierAttribute:function(){var _60a=this.getFeatures()["dojo.data.api.Identity"];return _60a;},newItem:function(_60b,_60c){this._assert(!this._saveInProgress);if(!this._loadFinished){this._forceLoad();}if(typeof _60b!="object"&&typeof _60b!="undefined"){throw new Error("newItem() was passed something other than an object");}var _60d=null;var _60e=this._getIdentifierAttribute();if(_60e===Number){_60d=this._arrayOfAllItems.length;}else{_60d=_60b[_60e];if(typeof _60d==="undefined"){throw new Error("newItem() was not passed an identity for the new item");}if(dojo.isArray(_60d)){throw new Error("newItem() was not passed an single-valued identity");}}if(this._itemsByIdentity){this._assert(typeof this._itemsByIdentity[_60d]==="undefined");}this._assert(typeof this._pending._newItems[_60d]==="undefined");this._assert(typeof this._pending._deletedItems[_60d]==="undefined");var _60f={};_60f[this._storeRefPropName]=this;_60f[this._itemNumPropName]=this._arrayOfAllItems.length;if(this._itemsByIdentity){this._itemsByIdentity[_60d]=_60f;_60f[_60e]=[_60d];}this._arrayOfAllItems.push(_60f);var _610=null;if(_60c&&_60c.parent&&_60c.attribute){_610={item:_60c.parent,attribute:_60c.attribute,oldValue:undefined};var _611=this.getValues(_60c.parent,_60c.attribute);if(_611&&_611.length>0){var _612=_611.slice(0,_611.length);if(_611.length===1){_610.oldValue=_611[0];}else{_610.oldValue=_611.slice(0,_611.length);}_612.push(_60f);this._setValueOrValues(_60c.parent,_60c.attribute,_612,false);_610.newValue=this.getValues(_60c.parent,_60c.attribute);}else{this._setValueOrValues(_60c.parent,_60c.attribute,_60f,false);_610.newValue=_60f;}}else{_60f[this._rootItemPropName]=true;this._arrayOfTopLevelItems.push(_60f);}this._pending._newItems[_60d]=_60f;for(var key in _60b){if(key===this._storeRefPropName||key===this._itemNumPropName){throw new Error("encountered bug in ItemFileWriteStore.newItem");}var _613=_60b[key];if(!dojo.isArray(_613)){_613=[_613];}_60f[key]=_613;if(this.referenceIntegrity){for(var i=0;i<_613.length;i++){var val=_613[i];if(this.isItem(val)){this._addReferenceToMap(val,_60f,key);}}}}this.onNew(_60f,_610);return _60f;},_removeArrayElement:function(_614,_615){var _616=dojo.indexOf(_614,_615);if(_616!=-1){_614.splice(_616,1);return true;}return false;},deleteItem:function(item){this._assert(!this._saveInProgress);this._assertIsItem(item);var _617=item[this._itemNumPropName];var _618=this.getIdentity(item);if(this.referenceIntegrity){var _619=this.getAttributes(item);if(item[this._reverseRefMap]){item["backup_"+this._reverseRefMap]=dojo.clone(item[this._reverseRefMap]);}dojo.forEach(_619,function(_61a){dojo.forEach(this.getValues(item,_61a),function(_61b){if(this.isItem(_61b)){if(!item["backupRefs_"+this._reverseRefMap]){item["backupRefs_"+this._reverseRefMap]=[];}item["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(_61b),attr:_61a});this._removeReferenceFromMap(_61b,item,_61a);}},this);},this);var _61c=item[this._reverseRefMap];if(_61c){for(var _61d in _61c){var _61e=null;if(this._itemsByIdentity){_61e=this._itemsByIdentity[_61d];}else{_61e=this._arrayOfAllItems[_61d];}if(_61e){for(var _61f in _61c[_61d]){var _620=this.getValues(_61e,_61f)||[];var _621=dojo.filter(_620,function(_622){return !(this.isItem(_622)&&this.getIdentity(_622)==_618);},this);this._removeReferenceFromMap(item,_61e,_61f);if(_621.length<_620.length){this._setValueOrValues(_61e,_61f,_621,true);}}}}}}this._arrayOfAllItems[_617]=null;item[this._storeRefPropName]=null;if(this._itemsByIdentity){delete this._itemsByIdentity[_618];}this._pending._deletedItems[_618]=item;if(item[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,item);}this.onDelete(item);return true;},setValue:function(item,_623,_624){return this._setValueOrValues(item,_623,_624,true);},setValues:function(item,_625,_626){return this._setValueOrValues(item,_625,_626,true);},unsetAttribute:function(item,_627){return this._setValueOrValues(item,_627,[],true);},_setValueOrValues:function(item,_628,_629,_62a){this._assert(!this._saveInProgress);this._assertIsItem(item);this._assert(dojo.isString(_628));this._assert(typeof _629!=="undefined");var _62b=this._getIdentifierAttribute();if(_628==_62b){throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");}var _62c=this._getValueOrValues(item,_628);var _62d=this.getIdentity(item);if(!this._pending._modifiedItems[_62d]){var _62e={};for(var key in item){if((key===this._storeRefPropName)||(key===this._itemNumPropName)||(key===this._rootItemPropName)){_62e[key]=item[key];}else{if(key===this._reverseRefMap){_62e[key]=dojo.clone(item[key]);}else{_62e[key]=item[key].slice(0,item[key].length);}}}this._pending._modifiedItems[_62d]=_62e;}var _62f=false;if(dojo.isArray(_629)&&_629.length===0){_62f=delete item[_628];_629=undefined;if(this.referenceIntegrity&&_62c){var _630=_62c;if(!dojo.isArray(_630)){_630=[_630];}for(var i=0;i<_630.length;i++){var _631=_630[i];if(this.isItem(_631)){this._removeReferenceFromMap(_631,item,_628);}}}}else{var _632;if(dojo.isArray(_629)){var _633=_629;_632=_629.slice(0,_629.length);}else{_632=[_629];}if(this.referenceIntegrity){if(_62c){var _630=_62c;if(!dojo.isArray(_630)){_630=[_630];}var map={};dojo.forEach(_630,function(_634){if(this.isItem(_634)){var id=this.getIdentity(_634);map[id.toString()]=true;}},this);dojo.forEach(_632,function(_635){if(this.isItem(_635)){var id=this.getIdentity(_635);if(map[id.toString()]){delete map[id.toString()];}else{this._addReferenceToMap(_635,item,_628);}}},this);for(var rId in map){var _636;if(this._itemsByIdentity){_636=this._itemsByIdentity[rId];}else{_636=this._arrayOfAllItems[rId];}this._removeReferenceFromMap(_636,item,_628);}}else{for(var i=0;i<_632.length;i++){var _631=_632[i];if(this.isItem(_631)){this._addReferenceToMap(_631,item,_628);}}}}item[_628]=_632;_62f=true;}if(_62a){this.onSet(item,_628,_62c,_629);}return _62f;},_addReferenceToMap:function(_637,_638,_639){var _63a=this.getIdentity(_638);var _63b=_637[this._reverseRefMap];if(!_63b){_63b=_637[this._reverseRefMap]={};}var _63c=_63b[_63a];if(!_63c){_63c=_63b[_63a]={};}_63c[_639]=true;},_removeReferenceFromMap:function(_63d,_63e,_63f){var _640=this.getIdentity(_63e);var _641=_63d[this._reverseRefMap];var _642;if(_641){for(_642 in _641){if(_642==_640){delete _641[_642][_63f];if(this._isEmpty(_641[_642])){delete _641[_642];}}}if(this._isEmpty(_641)){delete _63d[this._reverseRefMap];}}},_dumpReferenceMap:function(){var i;for(i=0;i<this._arrayOfAllItems.length;i++){var item=this._arrayOfAllItems[i];if(item&&item[this._reverseRefMap]){console.log("Item: ["+this.getIdentity(item)+"] is referenced by: "+dojo.toJson(item[this._reverseRefMap]));}}},_getValueOrValues:function(item,_643){var _644=undefined;if(this.hasAttribute(item,_643)){var _645=this.getValues(item,_643);if(_645.length==1){_644=_645[0];}else{_644=_645;}}return _644;},_flatten:function(_646){if(this.isItem(_646)){var item=_646;var _647=this.getIdentity(item);var _648={_reference:_647};return _648;}else{if(typeof _646==="object"){for(var type in this._datatypeMap){var _649=this._datatypeMap[type];if(dojo.isObject(_649)&&!dojo.isFunction(_649)){if(_646 instanceof _649.type){if(!_649.serialize){throw new Error("ItemFileWriteStore: No serializer defined for type mapping: ["+type+"]");}return {_type:type,_value:_649.serialize(_646)};}}else{if(_646 instanceof _649){return {_type:type,_value:_646.toString()};}}}}return _646;}},_getNewFileContentString:function(){var _64a={};var _64b=this._getIdentifierAttribute();if(_64b!==Number){_64a.identifier=_64b;}if(this._labelAttr){_64a.label=this._labelAttr;}_64a.items=[];for(var i=0;i<this._arrayOfAllItems.length;++i){var item=this._arrayOfAllItems[i];if(item!==null){var _64c={};for(var key in item){if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._reverseRefMap&&key!==this._rootItemPropName){var _64d=key;var _64e=this.getValues(item,_64d);if(_64e.length==1){_64c[_64d]=this._flatten(_64e[0]);}else{var _64f=[];for(var j=0;j<_64e.length;++j){_64f.push(this._flatten(_64e[j]));_64c[_64d]=_64f;}}}}_64a.items.push(_64c);}}var _650=true;return dojo.toJson(_64a,_650);},_isEmpty:function(_651){var _652=true;if(dojo.isObject(_651)){var i;for(i in _651){_652=false;break;}}else{if(dojo.isArray(_651)){if(_651.length>0){_652=false;}}}return _652;},save:function(_653){this._assert(!this._saveInProgress);this._saveInProgress=true;var self=this;var _654=function(){self._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};self._saveInProgress=false;if(_653&&_653.onComplete){var _655=_653.scope||dojo.global;_653.onComplete.call(_655);}};var _656=function(err){self._saveInProgress=false;if(_653&&_653.onError){var _657=_653.scope||dojo.global;_653.onError.call(_657,err);}};if(this._saveEverything){var _658=this._getNewFileContentString();this._saveEverything(_654,_656,_658);}if(this._saveCustom){this._saveCustom(_654,_656);}if(!this._saveEverything&&!this._saveCustom){_654();}},revert:function(){this._assert(!this._saveInProgress);var _659;for(_659 in this._pending._modifiedItems){var _65a=this._pending._modifiedItems[_659];var _65b=null;if(this._itemsByIdentity){_65b=this._itemsByIdentity[_659];}else{_65b=this._arrayOfAllItems[_659];}_65a[this._storeRefPropName]=this;for(key in _65b){delete _65b[key];}dojo.mixin(_65b,_65a);}var _65c;for(_659 in this._pending._deletedItems){_65c=this._pending._deletedItems[_659];_65c[this._storeRefPropName]=this;var _65d=_65c[this._itemNumPropName];if(_65c["backup_"+this._reverseRefMap]){_65c[this._reverseRefMap]=_65c["backup_"+this._reverseRefMap];delete _65c["backup_"+this._reverseRefMap];}this._arrayOfAllItems[_65d]=_65c;if(this._itemsByIdentity){this._itemsByIdentity[_659]=_65c;}if(_65c[this._rootItemPropName]){this._arrayOfTopLevelItems.push(_65c);}}for(_659 in this._pending._deletedItems){_65c=this._pending._deletedItems[_659];if(_65c["backupRefs_"+this._reverseRefMap]){dojo.forEach(_65c["backupRefs_"+this._reverseRefMap],function(_65e){var _65f;if(this._itemsByIdentity){_65f=this._itemsByIdentity[_65e.id];}else{_65f=this._arrayOfAllItems[_65e.id];}this._addReferenceToMap(_65f,_65c,_65e.attr);},this);delete _65c["backupRefs_"+this._reverseRefMap];}}for(_659 in this._pending._newItems){var _660=this._pending._newItems[_659];_660[this._storeRefPropName]=null;this._arrayOfAllItems[_660[this._itemNumPropName]]=null;if(_660[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_660);}if(this._itemsByIdentity){delete this._itemsByIdentity[_659];}}this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};return true;},isDirty:function(item){if(item){var _661=this.getIdentity(item);return new Boolean(this._pending._newItems[_661]||this._pending._modifiedItems[_661]||this._pending._deletedItems[_661]).valueOf();}else{if(!this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems)){return true;}return false;}},onSet:function(item,_662,_663,_664){},onNew:function(_665,_666){},onDelete:function(_667){},close:function(_668){if(this.clearOnClose){if(!this.isDirty()){this.inherited(arguments);}else{throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store. Please save or revert the changes before invoking close.");}}}});}dojo.i18n._preloadLocalizations("dojo.nls.tt-rss-layer",["ROOT","ar","ca","cs","da","de","de-de","el","en","en-gb","en-us","es","es-es","fi","fi-fi","fr","fr-fr","he","he-il","hu","it","it-it","ja","ja-jp","ko","ko-kr","nb","nl","nl-nl","pl","pt","pt-br","pt-pt","ru","sk","sl","sv","th","tr","xx","zh","zh-cn","zh-tw"]); +dojo.provide("tt-rss-layer");if(!dojo._hasResource["dojo.date.stamp"]){dojo._hasResource["dojo.date.stamp"]=true;dojo.provide("dojo.date.stamp");dojo.getObject("date.stamp",true,dojo);dojo.date.stamp.fromISOString=function(_1,_2){if(!dojo.date.stamp._isoRegExp){dojo.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}var _3=dojo.date.stamp._isoRegExp.exec(_1),_4=null;if(_3){_3.shift();if(_3[1]){_3[1]--;}if(_3[6]){_3[6]*=1000;}if(_2){_2=new Date(_2);dojo.forEach(dojo.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_5){return _2["get"+_5]();}),function(_6,_7){_3[_7]=_3[_7]||_6;});}_4=new Date(_3[0]||1970,_3[1]||0,_3[2]||1,_3[3]||0,_3[4]||0,_3[5]||0,_3[6]||0);if(_3[0]<100){_4.setFullYear(_3[0]||1970);}var _8=0,_9=_3[7]&&_3[7].charAt(0);if(_9!="Z"){_8=((_3[8]||0)*60)+(Number(_3[9])||0);if(_9!="-"){_8*=-1;}}if(_9){_8-=_4.getTimezoneOffset();}if(_8){_4.setTime(_4.getTime()+_8*60000);}}return _4;};dojo.date.stamp.toISOString=function(_a,_b){var _c=function(n){return (n<10)?"0"+n:n;};_b=_b||{};var _d=[],_e=_b.zulu?"getUTC":"get",_f="";if(_b.selector!="time"){var _10=_a[_e+"FullYear"]();_f=["0000".substr((_10+"").length)+_10,_c(_a[_e+"Month"]()+1),_c(_a[_e+"Date"]())].join("-");}_d.push(_f);if(_b.selector!="date"){var _11=[_c(_a[_e+"Hours"]()),_c(_a[_e+"Minutes"]()),_c(_a[_e+"Seconds"]())].join(":");var _12=_a[_e+"Milliseconds"]();if(_b.milliseconds){_11+="."+(_12<100?"0":"")+_c(_12);}if(_b.zulu){_11+="Z";}else{if(_b.selector!="time"){var _13=_a.getTimezoneOffset();var _14=Math.abs(_13);_11+=(_13>0?"-":"+")+_c(Math.floor(_14/60))+":"+_c(_14%60);}}_d.push(_11);}return _d.join("T");};}if(!dojo._hasResource["dojo.parser"]){dojo._hasResource["dojo.parser"]=true;dojo.provide("dojo.parser");new Date("X");dojo.parser=new function(){var d=dojo;function _15(_16){if(d.isString(_16)){return "string";}if(typeof _16=="number"){return "number";}if(typeof _16=="boolean"){return "boolean";}if(d.isFunction(_16)){return "function";}if(d.isArray(_16)){return "array";}if(_16 instanceof Date){return "date";}if(_16 instanceof d._Url){return "url";}return "object";};function _17(_18,_19){switch(_19){case "string":return _18;case "number":return _18.length?Number(_18):NaN;case "boolean":return typeof _18=="boolean"?_18:!(_18.toLowerCase()=="false");case "function":if(d.isFunction(_18)){_18=_18.toString();_18=d.trim(_18.substring(_18.indexOf("{")+1,_18.length-1));}try{if(_18===""||_18.search(/[^\w\.]+/i)!=-1){return new Function(_18);}else{return d.getObject(_18,false)||new Function(_18);}}catch(e){return new Function();}case "array":return _18?_18.split(/\s*,\s*/):[];case "date":switch(_18){case "":return new Date("");case "now":return new Date();default:return d.date.stamp.fromISOString(_18);}case "url":return d.baseUrl+_18;default:return d.fromJson(_18);}};var _1a={},_1b={};d.connect(d,"extend",function(){_1b={};});function _1c(cls,_1d){for(var _1e in cls){if(_1e.charAt(0)=="_"){continue;}if(_1e in _1a){continue;}_1d[_1e]=_15(cls[_1e]);}return _1d;};function _1f(_20,_21){var c=_1b[_20];if(!c){var cls=d.getObject(_20),_22=null;if(!cls){return null;}if(!_21){_22=_1c(cls.prototype,{});}c={cls:cls,params:_22};}else{if(!_21&&!c.params){c.params=_1c(c.cls.prototype,{});}}return c;};this._functionFromScript=function(_23,_24){var _25="";var _26="";var _27=(_23.getAttribute(_24+"args")||_23.getAttribute("args"));if(_27){d.forEach(_27.split(/\s*,\s*/),function(_28,idx){_25+="var "+_28+" = arguments["+idx+"]; ";});}var _29=_23.getAttribute("with");if(_29&&_29.length){d.forEach(_29.split(/\s*,\s*/),function(_2a){_25+="with("+_2a+"){";_26+="}";});}return new Function(_25+_23.innerHTML+_26);};this.instantiate=function(_2b,_2c,_2d){var _2e=[],_2c=_2c||{};_2d=_2d||{};var _2f=(_2d.scope||d._scopeName)+"Type",_30="data-"+(_2d.scope||d._scopeName)+"-";d.forEach(_2b,function(obj){if(!obj){return;}var _31,_32,_33,_34,_35,_36;if(obj.node){_31=obj.node;_32=obj.type;_36=obj.fastpath;_33=obj.clsInfo||(_32&&_1f(_32,_36));_34=_33&&_33.cls;_35=obj.scripts;}else{_31=obj;_32=_2f in _2c?_2c[_2f]:_31.getAttribute(_2f);_33=_32&&_1f(_32);_34=_33&&_33.cls;_35=(_34&&(_34._noScript||_34.prototype._noScript)?[]:d.query("> script[type^='dojo/']",_31));}if(!_33){throw new Error("Could not load class '"+_32);}var _37={};if(_2d.defaults){d._mixin(_37,_2d.defaults);}if(obj.inherited){d._mixin(_37,obj.inherited);}if(_36){var _38=_31.getAttribute(_30+"props");if(_38&&_38.length){try{_38=d.fromJson.call(_2d.propsThis,"{"+_38+"}");d._mixin(_37,_38);}catch(e){throw new Error(e.toString()+" in data-dojo-props='"+_38+"'");}}var _39=_31.getAttribute(_30+"attach-point");if(_39){_37.dojoAttachPoint=_39;}var _3a=_31.getAttribute(_30+"attach-event");if(_3a){_37.dojoAttachEvent=_3a;}dojo.mixin(_37,_2c);}else{var _3b=_31.attributes;for(var _3c in _33.params){var _3d=_3c in _2c?{value:_2c[_3c],specified:true}:_3b.getNamedItem(_3c);if(!_3d||(!_3d.specified&&(!dojo.isIE||_3c.toLowerCase()!="value"))){continue;}var _3e=_3d.value;switch(_3c){case "class":_3e="className" in _2c?_2c.className:_31.className;break;case "style":_3e="style" in _2c?_2c.style:(_31.style&&_31.style.cssText);}var _3f=_33.params[_3c];if(typeof _3e=="string"){_37[_3c]=_17(_3e,_3f);}else{_37[_3c]=_3e;}}}var _40=[],_41=[];d.forEach(_35,function(_42){_31.removeChild(_42);var _43=(_42.getAttribute(_30+"event")||_42.getAttribute("event")),_32=_42.getAttribute("type"),nf=d.parser._functionFromScript(_42,_30);if(_43){if(_32=="dojo/connect"){_40.push({event:_43,func:nf});}else{_37[_43]=nf;}}else{_41.push(nf);}});var _44=_34.markupFactory||_34.prototype&&_34.prototype.markupFactory;var _45=_44?_44(_37,_31,_34):new _34(_37,_31);_2e.push(_45);var _46=(_31.getAttribute(_30+"id")||_31.getAttribute("jsId"));if(_46){d.setObject(_46,_45);}d.forEach(_40,function(_47){d.connect(_45,_47.event,null,_47.func);});d.forEach(_41,function(_48){_48.call(_45);});});if(!_2c._started){d.forEach(_2e,function(_49){if(!_2d.noStart&&_49&&dojo.isFunction(_49.startup)&&!_49._started&&(!_49.getParent||!_49.getParent())){_49.startup();}});}return _2e;};this.parse=function(_4a,_4b){var _4c;if(!_4b&&_4a&&_4a.rootNode){_4b=_4a;_4c=_4b.rootNode;}else{_4c=_4a;}_4c=_4c?dojo.byId(_4c):dojo.body();_4b=_4b||{};var _4d=(_4b.scope||d._scopeName)+"Type",_4e="data-"+(_4b.scope||d._scopeName)+"-";function _4f(_50,_51){var _52=dojo.clone(_50.inherited);dojo.forEach(["dir","lang"],function(_53){var val=_50.node.getAttribute(_53);if(val){_52[_53]=val;}});var _54=_50.clsInfo&&!_50.clsInfo.cls.prototype._noScript?_50.scripts:null;var _55=(!_50.clsInfo||!_50.clsInfo.cls.prototype.stopParser)||(_4b&&_4b.template);for(var _56=_50.node.firstChild;_56;_56=_56.nextSibling){if(_56.nodeType==1){var _57,_58=_55&&_56.getAttribute(_4e+"type");if(_58){_57=_58;}else{_57=_55&&_56.getAttribute(_4d);}var _59=_58==_57;if(_57){var _5a={"type":_57,fastpath:_59,clsInfo:_1f(_57,_59),node:_56,scripts:[],inherited:_52};_51.push(_5a);_4f(_5a,_51);}else{if(_54&&_56.nodeName.toLowerCase()=="script"){_57=_56.getAttribute("type");if(_57&&/^dojo\/\w/i.test(_57)){_54.push(_56);}}else{if(_55){_4f({node:_56,inherited:_52},_51);}}}}}};var _5b={};if(_4b&&_4b.inherited){for(var key in _4b.inherited){if(_4b.inherited[key]){_5b[key]=_4b.inherited[key];}}}var _5c=[];_4f({node:_4c,inherited:_5b},_5c);var _5d=_4b&&_4b.template?{template:true}:null;return this.instantiate(_5c,_5d,_4b);};}();(function(){var _5e=function(){if(dojo.config.parseOnLoad){dojo.parser.parse();}};if(dojo.getObject("dijit.wai.onload")===dojo._loaders[0]){dojo._loaders.splice(1,0,_5e);}else{dojo._loaders.unshift(_5e);}})();}if(!dojo._hasResource["dojo.window"]){dojo._hasResource["dojo.window"]=true;dojo.provide("dojo.window");dojo.getObject("window",true,dojo);dojo.window.getBox=function(){var _5f=(dojo.doc.compatMode=="BackCompat")?dojo.body():dojo.doc.documentElement;var _60=dojo._docScroll();return {w:_5f.clientWidth,h:_5f.clientHeight,l:_60.x,t:_60.y};};dojo.window.get=function(doc){if(dojo.isIE&&window!==document.parentWindow){doc.parentWindow.execScript("document._parentWindow = window;","Javascript");var win=doc._parentWindow;doc._parentWindow=null;return win;}return doc.parentWindow||doc.defaultView;};dojo.window.scrollIntoView=function(_61,pos){try{_61=dojo.byId(_61);var doc=_61.ownerDocument||dojo.doc,_62=doc.body||dojo.body(),_63=doc.documentElement||_62.parentNode,_64=dojo.isIE,_65=dojo.isWebKit;if((!(dojo.isMoz||_64||_65||dojo.isOpera)||_61==_62||_61==_63)&&(typeof _61.scrollIntoView!="undefined")){_61.scrollIntoView(false);return;}var _66=doc.compatMode=="BackCompat",_67=(_64>=9&&_61.ownerDocument.parentWindow.frameElement)?((_63.clientHeight>0&&_63.clientWidth>0&&(_62.clientHeight==0||_62.clientWidth==0||_62.clientHeight>_63.clientHeight||_62.clientWidth>_63.clientWidth))?_63:_62):(_66?_62:_63),_68=_65?_62:_67,_69=_67.clientWidth,_6a=_67.clientHeight,rtl=!dojo._isBodyLtr(),_6b=pos||dojo.position(_61),el=_61.parentNode,_6c=function(el){return ((_64<=6||(_64&&_66))?false:(dojo.style(el,"position").toLowerCase()=="fixed"));};if(_6c(_61)){return;}while(el){if(el==_62){el=_68;}var _6d=dojo.position(el),_6e=_6c(el);if(el==_68){_6d.w=_69;_6d.h=_6a;if(_68==_63&&_64&&rtl){_6d.x+=_68.offsetWidth-_6d.w;}if(_6d.x<0||!_64){_6d.x=0;}if(_6d.y<0||!_64){_6d.y=0;}}else{var pb=dojo._getPadBorderExtents(el);_6d.w-=pb.w;_6d.h-=pb.h;_6d.x+=pb.l;_6d.y+=pb.t;var _6f=el.clientWidth,_70=_6d.w-_6f;if(_6f>0&&_70>0){_6d.w=_6f;_6d.x+=(rtl&&(_64||el.clientLeft>pb.l))?_70:0;}_6f=el.clientHeight;_70=_6d.h-_6f;if(_6f>0&&_70>0){_6d.h=_6f;}}if(_6e){if(_6d.y<0){_6d.h+=_6d.y;_6d.y=0;}if(_6d.x<0){_6d.w+=_6d.x;_6d.x=0;}if(_6d.y+_6d.h>_6a){_6d.h=_6a-_6d.y;}if(_6d.x+_6d.w>_69){_6d.w=_69-_6d.x;}}var l=_6b.x-_6d.x,t=_6b.y-Math.max(_6d.y,0),r=l+_6b.w-_6d.w,bot=t+_6b.h-_6d.h;if(r*l>0){var s=Math[l<0?"max":"min"](l,r);if(rtl&&((_64==8&&!_66)||_64>=9)){s=-s;}_6b.x+=el.scrollLeft;el.scrollLeft+=s;_6b.x-=el.scrollLeft;}if(bot*t>0){_6b.y+=el.scrollTop;el.scrollTop+=Math[t<0?"max":"min"](t,bot);_6b.y-=el.scrollTop;}el=(el!=_68)&&!_6e&&el.parentNode;}}catch(error){console.error("scrollIntoView: "+error);_61.scrollIntoView(false);}};}if(!dojo._hasResource["dijit._base.manager"]){dojo._hasResource["dijit._base.manager"]=true;dojo.provide("dijit._base.manager");dojo.declare("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0;},add:function(_71){if(this._hash[_71.id]){throw new Error("Tried to register widget with id=="+_71.id+" but that id is already registered");}this._hash[_71.id]=_71;this.length++;},remove:function(id){if(this._hash[id]){delete this._hash[id];this.length--;}},forEach:function(_72,_73){_73=_73||dojo.global;var i=0,id;for(id in this._hash){_72.call(_73,this._hash[id],i++,this._hash);}return this;},filter:function(_74,_75){_75=_75||dojo.global;var res=new dijit.WidgetSet(),i=0,id;for(id in this._hash){var w=this._hash[id];if(_74.call(_75,w,i++,this._hash)){res.add(w);}}return res;},byId:function(id){return this._hash[id];},byClass:function(cls){var res=new dijit.WidgetSet(),id,_76;for(id in this._hash){_76=this._hash[id];if(_76.declaredClass==cls){res.add(_76);}}return res;},toArray:function(){var ar=[];for(var id in this._hash){ar.push(this._hash[id]);}return ar;},map:function(_77,_78){return dojo.map(this.toArray(),_77,_78);},every:function(_79,_7a){_7a=_7a||dojo.global;var x=0,i;for(i in this._hash){if(!_79.call(_7a,this._hash[i],x++,this._hash)){return false;}}return true;},some:function(_7b,_7c){_7c=_7c||dojo.global;var x=0,i;for(i in this._hash){if(_7b.call(_7c,this._hash[i],x++,this._hash)){return true;}}return false;}});(function(){dijit.registry=new dijit.WidgetSet();var _7d=dijit.registry._hash,_7e=dojo.attr,_7f=dojo.hasAttr,_80=dojo.style;dijit.byId=function(id){return typeof id=="string"?_7d[id]:id;};var _81={};dijit.getUniqueId=function(_82){var id;do{id=_82+"_"+(_82 in _81?++_81[_82]:_81[_82]=0);}while(_7d[id]);return dijit._scopeName=="dijit"?id:dijit._scopeName+"_"+id;};dijit.findWidgets=function(_83){var _84=[];function _85(_86){for(var _87=_86.firstChild;_87;_87=_87.nextSibling){if(_87.nodeType==1){var _88=_87.getAttribute("widgetId");if(_88){var _89=_7d[_88];if(_89){_84.push(_89);}}else{_85(_87);}}}};_85(_83);return _84;};dijit._destroyAll=function(){dijit._curFocus=null;dijit._prevFocus=null;dijit._activeStack=[];dojo.forEach(dijit.findWidgets(dojo.body()),function(_8a){if(!_8a._destroyed){if(_8a.destroyRecursive){_8a.destroyRecursive();}else{if(_8a.destroy){_8a.destroy();}}}});};if(dojo.isIE){dojo.addOnWindowUnload(function(){dijit._destroyAll();});}dijit.byNode=function(_8b){return _7d[_8b.getAttribute("widgetId")];};dijit.getEnclosingWidget=function(_8c){while(_8c){var id=_8c.getAttribute&&_8c.getAttribute("widgetId");if(id){return _7d[id];}_8c=_8c.parentNode;}return null;};var _8d=(dijit._isElementShown=function(_8e){var s=_80(_8e);return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_7e(_8e,"type")!="hidden");});dijit.hasDefaultTabStop=function(_8f){switch(_8f.nodeName.toLowerCase()){case "a":return _7f(_8f,"href");case "area":case "button":case "input":case "object":case "select":case "textarea":return true;case "iframe":var _90;try{var _91=_8f.contentDocument;if("designMode" in _91&&_91.designMode=="on"){return true;}_90=_91.body;}catch(e1){try{_90=_8f.contentWindow.document.body;}catch(e2){return false;}}return _90.contentEditable=="true"||(_90.firstChild&&_90.firstChild.contentEditable=="true");default:return _8f.contentEditable=="true";}};var _92=(dijit.isTabNavigable=function(_93){if(_7e(_93,"disabled")){return false;}else{if(_7f(_93,"tabIndex")){return _7e(_93,"tabIndex")>=0;}else{return dijit.hasDefaultTabStop(_93);}}});dijit._getTabNavigable=function(_94){var _95,_96,_97,_98,_99,_9a,_9b={};function _9c(_9d){return _9d&&_9d.tagName.toLowerCase()=="input"&&_9d.type&&_9d.type.toLowerCase()=="radio"&&_9d.name&&_9d.name.toLowerCase();};var _9e=function(_9f){dojo.query("> *",_9f).forEach(function(_a0){if((dojo.isIE&&_a0.scopeName!=="HTML")||!_8d(_a0)){return;}if(_92(_a0)){var _a1=_7e(_a0,"tabIndex");if(!_7f(_a0,"tabIndex")||_a1==0){if(!_95){_95=_a0;}_96=_a0;}else{if(_a1>0){if(!_97||_a1<_98){_98=_a1;_97=_a0;}if(!_99||_a1>=_9a){_9a=_a1;_99=_a0;}}}var rn=_9c(_a0);if(dojo.attr(_a0,"checked")&&rn){_9b[rn]=_a0;}}if(_a0.nodeName.toUpperCase()!="SELECT"){_9e(_a0);}});};if(_8d(_94)){_9e(_94);}function rs(_a2){return _9b[_9c(_a2)]||_a2;};return {first:rs(_95),last:rs(_96),lowest:rs(_97),highest:rs(_99)};};dijit.getFirstInTabbingOrder=function(_a3){var _a4=dijit._getTabNavigable(dojo.byId(_a3));return _a4.lowest?_a4.lowest:_a4.first;};dijit.getLastInTabbingOrder=function(_a5){var _a6=dijit._getTabNavigable(dojo.byId(_a5));return _a6.last?_a6.last:_a6.highest;};dijit.defaultDuration=dojo.config["defaultDuration"]||200;})();}if(!dojo._hasResource["dijit._base.focus"]){dojo._hasResource["dijit._base.focus"]=true;dojo.provide("dijit._base.focus");dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){return dijit.getBookmark().isCollapsed;},getBookmark:function(){var bm,rg,tg,sel=dojo.doc.selection,cf=dijit._curFocus;if(dojo.global.getSelection){sel=dojo.global.getSelection();if(sel){if(sel.isCollapsed){tg=cf?cf.tagName:"";if(tg){tg=tg.toLowerCase();if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){sel={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};return {isCollapsed:(sel.end<=sel.start),mark:sel};}}bm={isCollapsed:true};if(sel.rangeCount){bm.mark=sel.getRangeAt(0).cloneRange();}}else{rg=sel.getRangeAt(0);bm={isCollapsed:false,mark:rg.cloneRange()};}}}else{if(sel){tg=cf?cf.tagName:"";tg=tg.toLowerCase();if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){if(sel.type&&sel.type.toLowerCase()=="none"){return {isCollapsed:true,mark:null};}else{rg=sel.createRange();return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};}}bm={};try{rg=sel.createRange();bm.isCollapsed=!(sel.type=="Text"?rg.htmlText.length:rg.length);}catch(e){bm.isCollapsed=true;return bm;}if(sel.type.toUpperCase()=="CONTROL"){if(rg.length){bm.mark=[];var i=0,len=rg.length;while(i<len){bm.mark.push(rg.item(i++));}}else{bm.isCollapsed=true;bm.mark=null;}}else{bm.mark=rg.getBookmark();}}else{console.warn("No idea how to store the current selection for this browser!");}}return bm;},moveToBookmark:function(_a7){var _a8=dojo.doc,_a9=_a7.mark;if(_a9){if(dojo.global.getSelection){var sel=dojo.global.getSelection();if(sel&&sel.removeAllRanges){if(_a9.pRange){var r=_a9;var n=r.node;n.selectionStart=r.start;n.selectionEnd=r.end;}else{sel.removeAllRanges();sel.addRange(_a9);}}else{console.warn("No idea how to restore selection for this browser!");}}else{if(_a8.selection&&_a9){var rg;if(_a9.pRange){rg=_a9.range;}else{if(dojo.isArray(_a9)){rg=_a8.body.createControlRange();dojo.forEach(_a9,function(n){rg.addElement(n);});}else{rg=_a8.body.createTextRange();rg.moveToBookmark(_a9);}}rg.select();}}}},getFocus:function(_aa,_ab){var _ac=!dijit._curFocus||(_aa&&dojo.isDescendant(dijit._curFocus,_aa.domNode))?dijit._prevFocus:dijit._curFocus;return {node:_ac,bookmark:(_ac==dijit._curFocus)&&dojo.withGlobal(_ab||dojo.global,dijit.getBookmark),openedForWindow:_ab};},focus:function(_ad){if(!_ad){return;}var _ae="node" in _ad?_ad.node:_ad,_af=_ad.bookmark,_b0=_ad.openedForWindow,_b1=_af?_af.isCollapsed:false;if(_ae){var _b2=(_ae.tagName.toLowerCase()=="iframe")?_ae.contentWindow:_ae;if(_b2&&_b2.focus){try{_b2.focus();}catch(e){}}dijit._onFocusNode(_ae);}if(_af&&dojo.withGlobal(_b0||dojo.global,dijit.isCollapsed)&&!_b1){if(_b0){_b0.focus();}try{dojo.withGlobal(_b0||dojo.global,dijit.moveToBookmark,null,[_af]);}catch(e2){}}},_activeStack:[],registerIframe:function(_b3){return dijit.registerWin(_b3.contentWindow,_b3);},unregisterIframe:function(_b4){dijit.unregisterWin(_b4);},registerWin:function(_b5,_b6){var _b7=function(evt){dijit._justMouseDowned=true;setTimeout(function(){dijit._justMouseDowned=false;},0);if(dojo.isIE&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){return;}dijit._onTouchNode(_b6||evt.target||evt.srcElement,"mouse");};var doc=dojo.isIE?_b5.document.documentElement:_b5.document;if(doc){if(dojo.isIE){_b5.document.body.attachEvent("onmousedown",_b7);var _b8=function(evt){if(evt.srcElement.tagName.toLowerCase()!="#document"&&dijit.isTabNavigable(evt.srcElement)){dijit._onFocusNode(_b6||evt.srcElement);}else{dijit._onTouchNode(_b6||evt.srcElement);}};doc.attachEvent("onactivate",_b8);var _b9=function(evt){dijit._onBlurNode(_b6||evt.srcElement);};doc.attachEvent("ondeactivate",_b9);return function(){_b5.document.detachEvent("onmousedown",_b7);doc.detachEvent("onactivate",_b8);doc.detachEvent("ondeactivate",_b9);doc=null;};}else{doc.body.addEventListener("mousedown",_b7,true);var _ba=function(evt){dijit._onFocusNode(_b6||evt.target);};doc.addEventListener("focus",_ba,true);var _bb=function(evt){dijit._onBlurNode(_b6||evt.target);};doc.addEventListener("blur",_bb,true);return function(){doc.body.removeEventListener("mousedown",_b7,true);doc.removeEventListener("focus",_ba,true);doc.removeEventListener("blur",_bb,true);doc=null;};}}},unregisterWin:function(_bc){_bc&&_bc();},_onBlurNode:function(_bd){dijit._prevFocus=dijit._curFocus;dijit._curFocus=null;if(dijit._justMouseDowned){return;}if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);}dijit._clearActiveWidgetsTimer=setTimeout(function(){delete dijit._clearActiveWidgetsTimer;dijit._setStack([]);dijit._prevFocus=null;},100);},_onTouchNode:function(_be,by){if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);delete dijit._clearActiveWidgetsTimer;}var _bf=[];try{while(_be){var _c0=dojo.attr(_be,"dijitPopupParent");if(_c0){_be=dijit.byId(_c0).domNode;}else{if(_be.tagName&&_be.tagName.toLowerCase()=="body"){if(_be===dojo.body()){break;}_be=dojo.window.get(_be.ownerDocument).frameElement;}else{var id=_be.getAttribute&&_be.getAttribute("widgetId"),_c1=id&&dijit.byId(id);if(_c1&&!(by=="mouse"&&_c1.get("disabled"))){_bf.unshift(id);}_be=_be.parentNode;}}}}catch(e){}dijit._setStack(_bf,by);},_onFocusNode:function(_c2){if(!_c2){return;}if(_c2.nodeType==9){return;}dijit._onTouchNode(_c2);if(_c2==dijit._curFocus){return;}if(dijit._curFocus){dijit._prevFocus=dijit._curFocus;}dijit._curFocus=_c2;dojo.publish("focusNode",[_c2]);},_setStack:function(_c3,by){var _c4=dijit._activeStack;dijit._activeStack=_c3;for(var _c5=0;_c5<Math.min(_c4.length,_c3.length);_c5++){if(_c4[_c5]!=_c3[_c5]){break;}}var _c6;for(var i=_c4.length-1;i>=_c5;i--){_c6=dijit.byId(_c4[i]);if(_c6){_c6._focused=false;_c6.set("focused",false);_c6._hasBeenBlurred=true;if(_c6._onBlur){_c6._onBlur(by);}dojo.publish("widgetBlur",[_c6,by]);}}for(i=_c5;i<_c3.length;i++){_c6=dijit.byId(_c3[i]);if(_c6){_c6._focused=true;_c6.set("focused",true);if(_c6._onFocus){_c6._onFocus(by);}dojo.publish("widgetFocus",[_c6,by]);}}}});dojo.addOnLoad(function(){var _c7=dijit.registerWin(window);if(dojo.isIE){dojo.addOnWindowUnload(function(){dijit.unregisterWin(_c7);_c7=null;});}});}if(!dojo._hasResource["dojo.AdapterRegistry"]){dojo._hasResource["dojo.AdapterRegistry"]=true;dojo.provide("dojo.AdapterRegistry");dojo.AdapterRegistry=function(_c8){this.pairs=[];this.returnWrappers=_c8||false;};dojo.extend(dojo.AdapterRegistry,{register:function(_c9,_ca,_cb,_cc,_cd){this.pairs[((_cd)?"unshift":"push")]([_c9,_ca,_cb,_cc]);},match:function(){for(var i=0;i<this.pairs.length;i++){var _ce=this.pairs[i];if(_ce[1].apply(this,arguments)){if((_ce[3])||(this.returnWrappers)){return _ce[2];}else{return _ce[2].apply(this,arguments);}}}throw new Error("No match found");},unregister:function(_cf){for(var i=0;i<this.pairs.length;i++){var _d0=this.pairs[i];if(_d0[0]==_cf){this.pairs.splice(i,1);return true;}}return false;}});}if(!dojo._hasResource["dijit._base.place"]){dojo._hasResource["dijit._base.place"]=true;dojo.provide("dijit._base.place");dijit.getViewport=function(){return dojo.window.getBox();};dijit.placeOnScreen=function(_d1,pos,_d2,_d3){var _d4=dojo.map(_d2,function(_d5){var c={corner:_d5,pos:{x:pos.x,y:pos.y}};if(_d3){c.pos.x+=_d5.charAt(1)=="L"?_d3.x:-_d3.x;c.pos.y+=_d5.charAt(0)=="T"?_d3.y:-_d3.y;}return c;});return dijit._place(_d1,_d4);};dijit._place=function(_d6,_d7,_d8,_d9){var _da=dojo.window.getBox();if(!_d6.parentNode||String(_d6.parentNode.tagName).toLowerCase()!="body"){dojo.body().appendChild(_d6);}var _db=null;dojo.some(_d7,function(_dc){var _dd=_dc.corner;var pos=_dc.pos;var _de=0;var _df={w:_dd.charAt(1)=="L"?(_da.l+_da.w)-pos.x:pos.x-_da.l,h:_dd.charAt(1)=="T"?(_da.t+_da.h)-pos.y:pos.y-_da.t};if(_d8){var res=_d8(_d6,_dc.aroundCorner,_dd,_df,_d9);_de=typeof res=="undefined"?0:res;}var _e0=_d6.style;var _e1=_e0.display;var _e2=_e0.visibility;_e0.visibility="hidden";_e0.display="";var mb=dojo.marginBox(_d6);_e0.display=_e1;_e0.visibility=_e2;var _e3=Math.max(_da.l,_dd.charAt(1)=="L"?pos.x:(pos.x-mb.w)),_e4=Math.max(_da.t,_dd.charAt(0)=="T"?pos.y:(pos.y-mb.h)),_e5=Math.min(_da.l+_da.w,_dd.charAt(1)=="L"?(_e3+mb.w):pos.x),_e6=Math.min(_da.t+_da.h,_dd.charAt(0)=="T"?(_e4+mb.h):pos.y),_e7=_e5-_e3,_e8=_e6-_e4;_de+=(mb.w-_e7)+(mb.h-_e8);if(_db==null||_de<_db.overflow){_db={corner:_dd,aroundCorner:_dc.aroundCorner,x:_e3,y:_e4,w:_e7,h:_e8,overflow:_de,spaceAvailable:_df};}return !_de;});if(_db.overflow&&_d8){_d8(_d6,_db.aroundCorner,_db.corner,_db.spaceAvailable,_d9);}var l=dojo._isBodyLtr(),s=_d6.style;s.top=_db.y+"px";s[l?"left":"right"]=(l?_db.x:_da.w-_db.x-_db.w)+"px";return _db;};dijit.placeOnScreenAroundNode=function(_e9,_ea,_eb,_ec){_ea=dojo.byId(_ea);var _ed=dojo.position(_ea,true);return dijit._placeOnScreenAroundRect(_e9,_ed.x,_ed.y,_ed.w,_ed.h,_eb,_ec);};dijit.placeOnScreenAroundRectangle=function(_ee,_ef,_f0,_f1){return dijit._placeOnScreenAroundRect(_ee,_ef.x,_ef.y,_ef.width,_ef.height,_f0,_f1);};dijit._placeOnScreenAroundRect=function(_f2,x,y,_f3,_f4,_f5,_f6){var _f7=[];for(var _f8 in _f5){_f7.push({aroundCorner:_f8,corner:_f5[_f8],pos:{x:x+(_f8.charAt(1)=="L"?0:_f3),y:y+(_f8.charAt(0)=="T"?0:_f4)}});}return dijit._place(_f2,_f7,_f6,{w:_f3,h:_f4});};dijit.placementRegistry=new dojo.AdapterRegistry();dijit.placementRegistry.register("node",function(n,x){return typeof x=="object"&&typeof x.offsetWidth!="undefined"&&typeof x.offsetHeight!="undefined";},dijit.placeOnScreenAroundNode);dijit.placementRegistry.register("rect",function(n,x){return typeof x=="object"&&"x" in x&&"y" in x&&"width" in x&&"height" in x;},dijit.placeOnScreenAroundRectangle);dijit.placeOnScreenAroundElement=function(_f9,_fa,_fb,_fc){return dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments);};dijit.getPopupAroundAlignment=function(_fd,_fe){var _ff={};dojo.forEach(_fd,function(pos){switch(pos){case "after":_ff[_fe?"BR":"BL"]=_fe?"BL":"BR";break;case "before":_ff[_fe?"BL":"BR"]=_fe?"BR":"BL";break;case "below-alt":_fe=!_fe;case "below":_ff[_fe?"BL":"BR"]=_fe?"TL":"TR";_ff[_fe?"BR":"BL"]=_fe?"TR":"TL";break;case "above-alt":_fe=!_fe;case "above":default:_ff[_fe?"TL":"TR"]=_fe?"BL":"BR";_ff[_fe?"TR":"TL"]=_fe?"BR":"BL";break;}});return _ff;};}if(!dojo._hasResource["dijit._base.window"]){dojo._hasResource["dijit._base.window"]=true;dojo.provide("dijit._base.window");dijit.getDocumentWindow=function(doc){return dojo.window.get(doc);};}if(!dojo._hasResource["dijit._base.popup"]){dojo._hasResource["dijit._base.popup"]=true;dojo.provide("dijit._base.popup");dijit.popup={_stack:[],_beginZIndex:1000,_idGen:1,_createWrapper:function(_100){var _101=_100.declaredClass?_100._popupWrapper:(_100.parentNode&&dojo.hasClass(_100.parentNode,"dijitPopup")),node=_100.domNode||_100;if(!_101){_101=dojo.create("div",{"class":"dijitPopup",style:{display:"none"},role:"presentation"},dojo.body());_101.appendChild(node);var s=node.style;s.display="";s.visibility="";s.position="";s.top="0px";if(_100.declaredClass){_100._popupWrapper=_101;dojo.connect(_100,"destroy",function(){dojo.destroy(_101);delete _100._popupWrapper;});}}return _101;},moveOffScreen:function(_102){var _103=this._createWrapper(_102);dojo.style(_103,{visibility:"hidden",top:"-9999px",display:""});},hide:function(_104){var _105=this._createWrapper(_104);dojo.style(_105,"display","none");},getTopPopup:function(){var _106=this._stack;for(var pi=_106.length-1;pi>0&&_106[pi].parent===_106[pi-1].widget;pi--){}return _106[pi];},open:function(args){var _107=this._stack,_108=args.popup,_109=args.orient||((args.parent?args.parent.isLeftToRight():dojo._isBodyLtr())?{"BL":"TL","BR":"TR","TL":"BL","TR":"BR"}:{"BR":"TR","BL":"TL","TR":"BR","TL":"BL"}),_10a=args.around,id=(args.around&&args.around.id)?(args.around.id+"_dropdown"):("popup_"+this._idGen++);while(_107.length&&(!args.parent||!dojo.isDescendant(args.parent.domNode,_107[_107.length-1].widget.domNode))){dijit.popup.close(_107[_107.length-1].widget);}var _10b=this._createWrapper(_108);dojo.attr(_10b,{id:id,style:{zIndex:this._beginZIndex+_107.length},"class":"dijitPopup "+(_108.baseClass||_108["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:args.parent?args.parent.id:""});if(dojo.isIE||dojo.isMoz){if(!_108.bgIframe){_108.bgIframe=new dijit.BackgroundIframe(_10b);}}var best=_10a?dijit.placeOnScreenAroundElement(_10b,_10a,_109,_108.orient?dojo.hitch(_108,"orient"):null):dijit.placeOnScreen(_10b,args,_109=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],args.padding);_10b.style.display="";_10b.style.visibility="visible";_108.domNode.style.visibility="visible";var _10c=[];_10c.push(dojo.connect(_10b,"onkeypress",this,function(evt){if(evt.charOrCode==dojo.keys.ESCAPE&&args.onCancel){dojo.stopEvent(evt);args.onCancel();}else{if(evt.charOrCode===dojo.keys.TAB){dojo.stopEvent(evt);var _10d=this.getTopPopup();if(_10d&&_10d.onCancel){_10d.onCancel();}}}}));if(_108.onCancel){_10c.push(dojo.connect(_108,"onCancel",args.onCancel));}_10c.push(dojo.connect(_108,_108.onExecute?"onExecute":"onChange",this,function(){var _10e=this.getTopPopup();if(_10e&&_10e.onExecute){_10e.onExecute();}}));_107.push({widget:_108,parent:args.parent,onExecute:args.onExecute,onCancel:args.onCancel,onClose:args.onClose,handlers:_10c});if(_108.onOpen){_108.onOpen(best);}return best;},close:function(_10f){var _110=this._stack;while((_10f&&dojo.some(_110,function(elem){return elem.widget==_10f;}))||(!_10f&&_110.length)){var top=_110.pop(),_111=top.widget,_112=top.onClose;if(_111.onClose){_111.onClose();}dojo.forEach(top.handlers,dojo.disconnect);if(_111&&_111.domNode){this.hide(_111);}if(_112){_112();}}}};dijit._frames=new function(){var _113=[];this.pop=function(){var _114;if(_113.length){_114=_113.pop();_114.style.display="";}else{if(dojo.isIE<9){var burl=dojo.config["dojoBlankHtmlUrl"]||(dojo.moduleUrl("dojo","resources/blank.html")+"")||"javascript:\"\"";var html="<iframe src='"+burl+"'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_114=dojo.doc.createElement(html);}else{_114=dojo.create("iframe");_114.src="javascript:\"\"";_114.className="dijitBackgroundIframe";dojo.style(_114,"opacity",0.1);}_114.tabIndex=-1;dijit.setWaiRole(_114,"presentation");}return _114;};this.push=function(_115){_115.style.display="none";_113.push(_115);};}();dijit.BackgroundIframe=function(node){if(!node.id){throw new Error("no id");}if(dojo.isIE||dojo.isMoz){var _116=(this.iframe=dijit._frames.pop());node.appendChild(_116);if(dojo.isIE<7||dojo.isQuirks){this.resize(node);this._conn=dojo.connect(node,"onresize",this,function(){this.resize(node);});}else{dojo.style(_116,{width:"100%",height:"100%"});}}};dojo.extend(dijit.BackgroundIframe,{resize:function(node){if(this.iframe){dojo.style(this.iframe,{width:node.offsetWidth+"px",height:node.offsetHeight+"px"});}},destroy:function(){if(this._conn){dojo.disconnect(this._conn);this._conn=null;}if(this.iframe){dijit._frames.push(this.iframe);delete this.iframe;}}});}if(!dojo._hasResource["dijit._base.scroll"]){dojo._hasResource["dijit._base.scroll"]=true;dojo.provide("dijit._base.scroll");dijit.scrollIntoView=function(node,pos){dojo.window.scrollIntoView(node,pos);};}if(!dojo._hasResource["dojo.uacss"]){dojo._hasResource["dojo.uacss"]=true;dojo.provide("dojo.uacss");(function(){var d=dojo,html=d.doc.documentElement,ie=d.isIE,_117=d.isOpera,maj=Math.floor,ff=d.isFF,_118=d.boxModel.replace(/-/,""),_119={dj_ie:ie,dj_ie6:maj(ie)==6,dj_ie7:maj(ie)==7,dj_ie8:maj(ie)==8,dj_ie9:maj(ie)==9,dj_quirks:d.isQuirks,dj_iequirks:ie&&d.isQuirks,dj_opera:_117,dj_khtml:d.isKhtml,dj_webkit:d.isWebKit,dj_safari:d.isSafari,dj_chrome:d.isChrome,dj_gecko:d.isMozilla,dj_ff3:maj(ff)==3};_119["dj_"+_118]=true;var _11a="";for(var clz in _119){if(_119[clz]){_11a+=clz+" ";}}html.className=d.trim(html.className+" "+_11a);dojo._loaders.unshift(function(){if(!dojo._isBodyLtr()){var _11b="dj_rtl dijitRtl "+_11a.replace(/ /g,"-rtl ");html.className=d.trim(html.className+" "+_11b);}});})();}if(!dojo._hasResource["dijit._base.sniff"]){dojo._hasResource["dijit._base.sniff"]=true;dojo.provide("dijit._base.sniff");}if(!dojo._hasResource["dijit._base.typematic"]){dojo._hasResource["dijit._base.typematic"]=true;dojo.provide("dijit._base.typematic");dijit.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(evt,_11c,node,_11d,obj,_11e,_11f,_120){if(obj!=this._obj){this.stop();this._initialDelay=_11f||500;this._subsequentDelay=_11e||0.9;this._minDelay=_120||10;this._obj=obj;this._evt=evt;this._node=node;this._currentTimeout=-1;this._count=-1;this._callback=dojo.hitch(_11c,_11d);this._fireEventAndReload();this._evt=dojo.mixin({faux:true},evt);}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(node,_121,_122,_123,_124,_125,_126){if(_121.keyCode){_121.charOrCode=_121.keyCode;dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else{if(_121.charCode){_121.charOrCode=String.fromCharCode(_121.charCode);dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}}return [dojo.connect(node,"onkeypress",this,function(evt){if(evt.charOrCode==_121.charOrCode&&(_121.ctrlKey===undefined||_121.ctrlKey==evt.ctrlKey)&&(_121.altKey===undefined||_121.altKey==evt.altKey)&&(_121.metaKey===undefined||_121.metaKey==(evt.metaKey||false))&&(_121.shiftKey===undefined||_121.shiftKey==evt.shiftKey)){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_122,node,_123,_121,_124,_125,_126);}else{if(dijit.typematic._obj==_121){dijit.typematic.stop();}}}),dojo.connect(node,"onkeyup",this,function(evt){if(dijit.typematic._obj==_121){dijit.typematic.stop();}})];},addMouseListener:function(node,_127,_128,_129,_12a,_12b){var dc=dojo.connect;return [dc(node,"mousedown",this,function(evt){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_127,node,_128,node,_129,_12a,_12b);}),dc(node,"mouseup",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mouseout",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mousemove",this,function(evt){evt.preventDefault();}),dc(node,"dblclick",this,function(evt){dojo.stopEvent(evt);if(dojo.isIE){dijit.typematic.trigger(evt,_127,node,_128,node,_129,_12a,_12b);setTimeout(dojo.hitch(this,dijit.typematic.stop),50);}})];},addListener:function(_12c,_12d,_12e,_12f,_130,_131,_132,_133){return this.addKeyListener(_12d,_12e,_12f,_130,_131,_132,_133).concat(this.addMouseListener(_12c,_12f,_130,_131,_132,_133));}};}if(!dojo._hasResource["dijit._base.wai"]){dojo._hasResource["dijit._base.wai"]=true;dojo.provide("dijit._base.wai");dijit.wai={onload:function(){var div=dojo.create("div",{id:"a11yTestNode",style:{cssText:"border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+"\");"}},dojo.body());var cs=dojo.getComputedStyle(div);if(cs){var _134=cs.backgroundImage;var _135=(cs.borderTopColor==cs.borderRightColor)||(_134!=null&&(_134=="none"||_134=="url(invalid-url:)"));dojo[_135?"addClass":"removeClass"](dojo.body(),"dijit_a11y");if(dojo.isIE){div.outerHTML="";}else{dojo.body().removeChild(div);}}}};if(dojo.isIE||dojo.isMoz){dojo._loaders.unshift(dijit.wai.onload);}dojo.mixin(dijit,{hasWaiRole:function(elem,role){var _136=this.getWaiRole(elem);return role?(_136.indexOf(role)>-1):(_136.length>0);},getWaiRole:function(elem){return dojo.trim((dojo.attr(elem,"role")||"").replace("wairole:",""));},setWaiRole:function(elem,role){dojo.attr(elem,"role",role);},removeWaiRole:function(elem,role){var _137=dojo.attr(elem,"role");if(!_137){return;}if(role){var t=dojo.trim((" "+_137+" ").replace(" "+role+" "," "));dojo.attr(elem,"role",t);}else{elem.removeAttribute("role");}},hasWaiState:function(elem,_138){return elem.hasAttribute?elem.hasAttribute("aria-"+_138):!!elem.getAttribute("aria-"+_138);},getWaiState:function(elem,_139){return elem.getAttribute("aria-"+_139)||"";},setWaiState:function(elem,_13a,_13b){elem.setAttribute("aria-"+_13a,_13b);},removeWaiState:function(elem,_13c){elem.removeAttribute("aria-"+_13c);}});}if(!dojo._hasResource["dijit._base"]){dojo._hasResource["dijit._base"]=true;dojo.provide("dijit._base");}if(!dojo._hasResource["dojo.Stateful"]){dojo._hasResource["dojo.Stateful"]=true;dojo.provide("dojo.Stateful");dojo.declare("dojo.Stateful",null,{postscript:function(_13d){if(_13d){dojo.mixin(this,_13d);}},get:function(name){return this[name];},set:function(name,_13e){if(typeof name==="object"){for(var x in name){this.set(x,name[x]);}return this;}var _13f=this[name];this[name]=_13e;if(this._watchCallbacks){this._watchCallbacks(name,_13f,_13e);}return this;},watch:function(name,_140){var _141=this._watchCallbacks;if(!_141){var self=this;_141=this._watchCallbacks=function(name,_142,_143,_144){var _145=function(_146){if(_146){_146=_146.slice();for(var i=0,l=_146.length;i<l;i++){try{_146[i].call(self,name,_142,_143);}catch(e){console.error(e);}}}};_145(_141["_"+name]);if(!_144){_145(_141["*"]);}};}if(!_140&&typeof name==="function"){_140=name;name="*";}else{name="_"+name;}var _147=_141[name];if(typeof _147!=="object"){_147=_141[name]=[];}_147.push(_140);return {unwatch:function(){_147.splice(dojo.indexOf(_147,_140),1);}};}});}if(!dojo._hasResource["dijit._WidgetBase"]){dojo._hasResource["dijit._WidgetBase"]=true;dojo.provide("dijit._WidgetBase");(function(){dojo.declare("dijit._WidgetBase",dojo.Stateful,{id:"",lang:"",dir:"","class":"",style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")).toString(),postscript:function(_148,_149){this.create(_148,_149);},create:function(_14a,_14b){this.srcNodeRef=dojo.byId(_14b);this._connects=[];this._subscribes=[];if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_14a){this.params=_14a;dojo._mixin(this,_14a);}this.postMixInProperties();if(!this.id){this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));}dijit.registry.add(this);this.buildRendering();if(this.domNode){this._applyAttributes();var _14c=this.srcNodeRef;if(_14c&&_14c.parentNode&&this.domNode!==_14c){_14c.parentNode.replaceChild(this.domNode,_14c);}}if(this.domNode){this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(this.srcNodeRef&&!this.srcNodeRef.parentNode){delete this.srcNodeRef;}this._created=true;},_applyAttributes:function(){var _14d=function(attr,_14e){if((_14e.params&&attr in _14e.params)||_14e[attr]){_14e.set(attr,_14e[attr]);}};for(var attr in this.attributeMap){_14d(attr,this);}dojo.forEach(this._getSetterAttributes(),function(a){if(!(a in this.attributeMap)){_14d(a,this);}},this);},_getSetterAttributes:function(){var ctor=this.constructor;if(!ctor._setterAttrs){var r=(ctor._setterAttrs=[]),_14f,_150=ctor.prototype;for(var _151 in _150){if(dojo.isFunction(_150[_151])&&(_14f=_151.match(/^_set([a-zA-Z]*)Attr$/))&&_14f[1]){r.push(_14f[1].charAt(0).toLowerCase()+_14f[1].substr(1));}}}return ctor._setterAttrs;},postMixInProperties:function(){},buildRendering:function(){if(!this.domNode){this.domNode=this.srcNodeRef||dojo.create("div");}if(this.baseClass){var _152=this.baseClass.split(" ");if(!this.isLeftToRight()){_152=_152.concat(dojo.map(_152,function(name){return name+"Rtl";}));}dojo.addClass(this.domNode,_152);}},postCreate:function(){},startup:function(){this._started=true;},destroyRecursive:function(_153){this._beingDestroyed=true;this.destroyDescendants(_153);this.destroy(_153);},destroy:function(_154){this._beingDestroyed=true;this.uninitialize();var d=dojo,dfe=d.forEach,dun=d.unsubscribe;dfe(this._connects,function(_155){dfe(_155,d.disconnect);});dfe(this._subscribes,function(_156){dun(_156);});dfe(this._supportingWidgets||[],function(w){if(w.destroyRecursive){w.destroyRecursive();}else{if(w.destroy){w.destroy();}}});this.destroyRendering(_154);dijit.registry.remove(this.id);this._destroyed=true;},destroyRendering:function(_157){if(this.bgIframe){this.bgIframe.destroy(_157);delete this.bgIframe;}if(this.domNode){if(_157){dojo.removeAttr(this.domNode,"widgetId");}else{dojo.destroy(this.domNode);}delete this.domNode;}if(this.srcNodeRef){if(!_157){dojo.destroy(this.srcNodeRef);}delete this.srcNodeRef;}},destroyDescendants:function(_158){dojo.forEach(this.getChildren(),function(_159){if(_159.destroyRecursive){_159.destroyRecursive(_158);}});},uninitialize:function(){return false;},_setClassAttr:function(_15a){var _15b=this[this.attributeMap["class"]||"domNode"];dojo.replaceClass(_15b,_15a,this["class"]);this._set("class",_15a);},_setStyleAttr:function(_15c){var _15d=this[this.attributeMap.style||"domNode"];if(dojo.isObject(_15c)){dojo.style(_15d,_15c);}else{if(_15d.style.cssText){_15d.style.cssText+="; "+_15c;}else{_15d.style.cssText=_15c;}}this._set("style",_15c);},_attrToDom:function(attr,_15e){var _15f=this.attributeMap[attr];dojo.forEach(dojo.isArray(_15f)?_15f:[_15f],function(_160){var _161=this[_160.node||_160||"domNode"];var type=_160.type||"attribute";switch(type){case "attribute":if(dojo.isFunction(_15e)){_15e=dojo.hitch(this,_15e);}var _162=_160.attribute?_160.attribute:(/^on[A-Z][a-zA-Z]*$/.test(attr)?attr.toLowerCase():attr);dojo.attr(_161,_162,_15e);break;case "innerText":_161.innerHTML="";_161.appendChild(dojo.doc.createTextNode(_15e));break;case "innerHTML":_161.innerHTML=_15e;break;case "class":dojo.replaceClass(_161,_15e,this[attr]);break;}},this);},get:function(name){var _163=this._getAttrNames(name);return this[_163.g]?this[_163.g]():this[name];},set:function(name,_164){if(typeof name==="object"){for(var x in name){this.set(x,name[x]);}return this;}var _165=this._getAttrNames(name);if(this[_165.s]){var _166=this[_165.s].apply(this,Array.prototype.slice.call(arguments,1));}else{if(name in this.attributeMap){this._attrToDom(name,_164);}this._set(name,_164);}return _166||this;},_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name]){return apn[name];}var uc=name.charAt(0).toUpperCase()+name.substr(1);return (apn[name]={n:name+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"});},_set:function(name,_167){var _168=this[name];this[name]=_167;if(this._watchCallbacks&&this._created&&_167!==_168){this._watchCallbacks(name,_168,_167);}},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getDescendants:function(){return this.containerNode?dojo.query("[widgetId]",this.containerNode).map(dijit.byNode):[];},getChildren:function(){return this.containerNode?dijit.findWidgets(this.containerNode):[];},connect:function(obj,_169,_16a){var _16b=[dojo._connect(obj,_169,this,_16a)];this._connects.push(_16b);return _16b;},disconnect:function(_16c){for(var i=0;i<this._connects.length;i++){if(this._connects[i]==_16c){dojo.forEach(_16c,dojo.disconnect);this._connects.splice(i,1);return;}}},subscribe:function(_16d,_16e){var _16f=dojo.subscribe(_16d,this,_16e);this._subscribes.push(_16f);return _16f;},unsubscribe:function(_170){for(var i=0;i<this._subscribes.length;i++){if(this._subscribes[i]==_170){dojo.unsubscribe(_170);this._subscribes.splice(i,1);return;}}},isLeftToRight:function(){return this.dir?(this.dir=="ltr"):dojo._isBodyLtr();},placeAt:function(_171,_172){if(_171.declaredClass&&_171.addChild){_171.addChild(this,_172);}else{dojo.place(this.domNode,_171,_172);}return this;}});})();}if(!dojo._hasResource["dijit._Widget"]){dojo._hasResource["dijit._Widget"]=true;dojo.provide("dijit._Widget");dojo.connect(dojo,"_connect",function(_173,_174){if(_173&&dojo.isFunction(_173._onConnect)){_173._onConnect(_174);}});dijit._connectOnUseEventHandler=function(_175){};dijit._lastKeyDownNode=null;if(dojo.isIE){(function(){var _176=function(evt){dijit._lastKeyDownNode=evt.srcElement;};dojo.doc.attachEvent("onkeydown",_176);dojo.addOnWindowUnload(function(){dojo.doc.detachEvent("onkeydown",_176);});})();}else{dojo.doc.addEventListener("keydown",function(evt){dijit._lastKeyDownNode=evt.target;},true);}(function(){dojo.declare("dijit._Widget",dijit._WidgetBase,{_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,create:function(_177,_178){this._deferredConnects=dojo.clone(this._deferredConnects);for(var attr in this.attributeMap){delete this._deferredConnects[attr];}for(attr in this._deferredConnects){if(this[attr]!==dijit._connectOnUseEventHandler){delete this._deferredConnects[attr];}}this.inherited(arguments);if(this.domNode){for(attr in this.params){this._onConnect(attr);}}},_onConnect:function(_179){if(_179 in this._deferredConnects){var _17a=this[this._deferredConnects[_179]||"domNode"];this.connect(_17a,_179.toLowerCase(),_179);delete this._deferredConnects[_179];}},focused:false,isFocusable:function(){return this.focus&&(dojo.style(this.domNode,"display")!="none");},onFocus:function(){},onBlur:function(){},_onFocus:function(e){this.onFocus();},_onBlur:function(){this.onBlur();},setAttribute:function(attr,_17b){dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(attr,_17b);},attr:function(name,_17c){if(dojo.config.isDebug){var _17d=arguments.callee._ach||(arguments.callee._ach={}),_17e=(arguments.callee.caller||"unknown caller").toString();if(!_17d[_17e]){dojo.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_17e,"","2.0");_17d[_17e]=true;}}var args=arguments.length;if(args>=2||typeof name==="object"){return this.set.apply(this,arguments);}else{return this.get(name);}},nodesWithKeyClick:["input","button"],connect:function(obj,_17f,_180){var d=dojo,dc=d._connect,_181=this.inherited(arguments,[obj,_17f=="ondijitclick"?"onclick":_17f,_180]);if(_17f=="ondijitclick"){if(d.indexOf(this.nodesWithKeyClick,obj.nodeName.toLowerCase())==-1){var m=d.hitch(this,_180);_181.push(dc(obj,"onkeydown",this,function(e){if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){dijit._lastKeyDownNode=e.target;if(!("openDropDown" in this&&obj==this._buttonNode)){e.preventDefault();}}}),dc(obj,"onkeyup",this,function(e){if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&e.target==dijit._lastKeyDownNode&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){dijit._lastKeyDownNode=null;return m(e);}}));}}return _181;},_onShow:function(){this.onShow();},onShow:function(){},onHide:function(){},onClose:function(){return true;}});})();}if(!dojo._hasResource["dojo.string"]){dojo._hasResource["dojo.string"]=true;dojo.provide("dojo.string");dojo.getObject("string",true,dojo);dojo.string.rep=function(str,num){if(num<=0||!str){return "";}var buf=[];for(;;){if(num&1){buf.push(str);}if(!(num>>=1)){break;}str+=str;}return buf.join("");};dojo.string.pad=function(text,size,ch,end){if(!ch){ch="0";}var out=String(text),pad=dojo.string.rep(ch,Math.ceil((size-out.length)/ch.length));return end?out+pad:pad+out;};dojo.string.substitute=function(_182,map,_183,_184){_184=_184||dojo.global;_183=_183?dojo.hitch(_184,_183):function(v){return v;};return _182.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_185,key,_186){var _187=dojo.getObject(key,false,map);if(_186){_187=dojo.getObject(_186,false,_184).call(_184,_187,key);}return _183(_187,key).toString();});};dojo.string.trim=String.prototype.trim?dojo.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};}if(!dojo._hasResource["dojo.cache"]){dojo._hasResource["dojo.cache"]=true;dojo.provide("dojo.cache");var cache={};dojo.cache=function(_188,url,_189){if(typeof _188=="string"){var _18a=dojo.moduleUrl(_188,url);}else{_18a=_188;_189=url;}var key=_18a.toString();var val=_189;if(_189!=undefined&&!dojo.isString(_189)){val=("value" in _189?_189.value:undefined);}var _18b=_189&&_189.sanitize?true:false;if(typeof val=="string"){val=cache[key]=_18b?dojo.cache._sanitize(val):val;}else{if(val===null){delete cache[key];}else{if(!(key in cache)){val=dojo._getText(key);cache[key]=_18b?dojo.cache._sanitize(val):val;}val=cache[key];}}return val;};dojo.cache._sanitize=function(val){if(val){val=val.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _18c=val.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_18c){val=_18c[1];}}else{val="";}return val;};}if(!dojo._hasResource["dijit._Templated"]){dojo._hasResource["dijit._Templated"]=true;dojo.provide("dijit._Templated");dojo.declare("dijit._Templated",null,{templateString:null,templatePath:null,widgetsInTemplate:false,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){this._attachPoints=[];this._attachEvents=[];},_stringRepl:function(tmpl){var _18d=this.declaredClass,_18e=this;return dojo.string.substitute(tmpl,this,function(_18f,key){if(key.charAt(0)=="!"){_18f=dojo.getObject(key.substr(1),false,_18e);}if(typeof _18f=="undefined"){throw new Error(_18d+" template:"+key);}if(_18f==null){return "";}return key.charAt(0)=="!"?_18f:_18f.toString().replace(/"/g,""");},this);},buildRendering:function(){var _190=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);var node;if(dojo.isString(_190)){node=dojo._toDom(this._stringRepl(_190));if(node.nodeType!=1){throw new Error("Invalid template: "+_190);}}else{node=_190.cloneNode(true);}this.domNode=node;this.inherited(arguments);this._attachTemplateNodes(node);if(this.widgetsInTemplate){var cw=(this._startupWidgets=dojo.parser.parse(node,{noStart:!this._earlyTemplatedStartup,template:true,inherited:{dir:this.dir,lang:this.lang},propsThis:this,scope:"dojo"}));this._supportingWidgets=dijit.findWidgets(node);this._attachTemplateNodes(cw,function(n,p){return n[p];});}this._fillContent(this.srcNodeRef);},_fillContent:function(_191){var dest=this.containerNode;if(_191&&dest){while(_191.hasChildNodes()){dest.appendChild(_191.firstChild);}}},_attachTemplateNodes:function(_192,_193){_193=_193||function(n,p){return n.getAttribute(p);};var _194=dojo.isArray(_192)?_192:(_192.all||_192.getElementsByTagName("*"));var x=dojo.isArray(_192)?0:-1;for(;x<_194.length;x++){var _195=(x==-1)?_192:_194[x];if(this.widgetsInTemplate&&(_193(_195,"dojoType")||_193(_195,"data-dojo-type"))){continue;}var _196=_193(_195,"dojoAttachPoint")||_193(_195,"data-dojo-attach-point");if(_196){var _197,_198=_196.split(/\s*,\s*/);while((_197=_198.shift())){if(dojo.isArray(this[_197])){this[_197].push(_195);}else{this[_197]=_195;}this._attachPoints.push(_197);}}var _199=_193(_195,"dojoAttachEvent")||_193(_195,"data-dojo-attach-event");if(_199){var _19a,_19b=_199.split(/\s*,\s*/);var trim=dojo.trim;while((_19a=_19b.shift())){if(_19a){var _19c=null;if(_19a.indexOf(":")!=-1){var _19d=_19a.split(":");_19a=trim(_19d[0]);_19c=trim(_19d[1]);}else{_19a=trim(_19a);}if(!_19c){_19c=_19a;}this._attachEvents.push(this.connect(_195,_19a,_19c));}}}var role=_193(_195,"waiRole");if(role){dijit.setWaiRole(_195,role);}var _19e=_193(_195,"waiState");if(_19e){dojo.forEach(_19e.split(/\s*,\s*/),function(_19f){if(_19f.indexOf("-")!=-1){var pair=_19f.split("-");dijit.setWaiState(_195,pair[0],pair[1]);}});}}},startup:function(){dojo.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup){w.startup();}});this.inherited(arguments);},destroyRendering:function(){dojo.forEach(this._attachPoints,function(_1a0){delete this[_1a0];},this);this._attachPoints=[];dojo.forEach(this._attachEvents,this.disconnect,this);this._attachEvents=[];this.inherited(arguments);}});dijit._Templated._templateCache={};dijit._Templated.getCachedTemplate=function(_1a1,_1a2,_1a3){var _1a4=dijit._Templated._templateCache;var key=_1a2||_1a1;var _1a5=_1a4[key];if(_1a5){try{if(!_1a5.ownerDocument||_1a5.ownerDocument==dojo.doc){return _1a5;}}catch(e){}dojo.destroy(_1a5);}if(!_1a2){_1a2=dojo.cache(_1a1,{sanitize:true});}_1a2=dojo.string.trim(_1a2);if(_1a3||_1a2.match(/\$\{([^\}]+)\}/g)){return (_1a4[key]=_1a2);}else{var node=dojo._toDom(_1a2);if(node.nodeType!=1){throw new Error("Invalid template: "+_1a2);}return (_1a4[key]=node);}};if(dojo.isIE){dojo.addOnWindowUnload(function(){var _1a6=dijit._Templated._templateCache;for(var key in _1a6){var _1a7=_1a6[key];if(typeof _1a7=="object"){dojo.destroy(_1a7);}delete _1a6[key];}});}dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""});}if(!dojo._hasResource["dijit._Container"]){dojo._hasResource["dijit._Container"]=true;dojo.provide("dijit._Container");dojo.declare("dijit._Container",null,{isContainer:true,buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_1a8,_1a9){var _1aa=this.containerNode;if(_1a9&&typeof _1a9=="number"){var _1ab=this.getChildren();if(_1ab&&_1ab.length>=_1a9){_1aa=_1ab[_1a9-1].domNode;_1a9="after";}}dojo.place(_1a8.domNode,_1aa,_1a9);if(this._started&&!_1a8._started){_1a8.startup();}},removeChild:function(_1ac){if(typeof _1ac=="number"){_1ac=this.getChildren()[_1ac];}if(_1ac){var node=_1ac.domNode;if(node&&node.parentNode){node.parentNode.removeChild(node);}}},hasChildren:function(){return this.getChildren().length>0;},destroyDescendants:function(_1ad){dojo.forEach(this.getChildren(),function(_1ae){_1ae.destroyRecursive(_1ad);});},_getSiblingOfChild:function(_1af,dir){var node=_1af.domNode,_1b0=(dir>0?"nextSibling":"previousSibling");do{node=node[_1b0];}while(node&&(node.nodeType!=1||!dijit.byNode(node)));return node&&dijit.byNode(node);},getIndexOfChild:function(_1b1){return dojo.indexOf(this.getChildren(),_1b1);},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_1b2){_1b2.startup();});this.inherited(arguments);}});}if(!dojo._hasResource["dijit._Contained"]){dojo._hasResource["dijit._Contained"]=true;dojo.provide("dijit._Contained");dojo.declare("dijit._Contained",null,{getParent:function(){var _1b3=dijit.getEnclosingWidget(this.domNode.parentNode);return _1b3&&_1b3.isContainer?_1b3:null;},_getSibling:function(_1b4){var node=this.domNode;do{node=node[_1b4+"Sibling"];}while(node&&node.nodeType!=1);return node&&dijit.byNode(node);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild){return -1;}return p.getIndexOfChild(this);}});}if(!dojo._hasResource["dijit.layout._LayoutWidget"]){dojo._hasResource["dijit.layout._LayoutWidget"]=true;dojo.provide("dijit.layout._LayoutWidget");dojo.declare("dijit.layout._LayoutWidget",[dijit._Widget,dijit._Container,dijit._Contained],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,buildRendering:function(){this.inherited(arguments);dojo.addClass(this.domNode,"dijitContainer");},startup:function(){if(this._started){return;}this.inherited(arguments);var _1b5=this.getParent&&this.getParent();if(!(_1b5&&_1b5.isLayoutContainer)){this.resize();this.connect(dojo.isIE?this.domNode:dojo.global,"onresize",function(){this.resize();});}},resize:function(_1b6,_1b7){var node=this.domNode;if(_1b6){dojo.marginBox(node,_1b6);if(_1b6.t){node.style.top=_1b6.t+"px";}if(_1b6.l){node.style.left=_1b6.l+"px";}}var mb=_1b7||{};dojo.mixin(mb,_1b6||{});if(!("h" in mb)||!("w" in mb)){mb=dojo.mixin(dojo.marginBox(node),mb);}var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var be=dojo._getBorderExtents(node,cs);var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)});var pe=dojo._getPadExtents(node,cs);this._contentBox={l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(_1b8){var cls=this.baseClass+"-child "+(_1b8.baseClass?this.baseClass+"-"+_1b8.baseClass:"");dojo.addClass(_1b8.domNode,cls);},addChild:function(_1b9,_1ba){this.inherited(arguments);if(this._started){this._setupChild(_1b9);}},removeChild:function(_1bb){var cls=this.baseClass+"-child"+(_1bb.baseClass?" "+this.baseClass+"-"+_1bb.baseClass:"");dojo.removeClass(_1bb.domNode,cls);this.inherited(arguments);}});dijit.layout.marginBox2contentBox=function(node,mb){var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var pb=dojo._getPadBorderExtents(node,cs);return {l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};(function(){var _1bc=function(word){return word.substring(0,1).toUpperCase()+word.substring(1);};var size=function(_1bd,dim){var _1be=_1bd.resize?_1bd.resize(dim):dojo.marginBox(_1bd.domNode,dim);if(_1be){dojo.mixin(_1bd,_1be);}else{dojo.mixin(_1bd,dojo.marginBox(_1bd.domNode));dojo.mixin(_1bd,dim);}};dijit.layout.layoutChildren=function(_1bf,dim,_1c0,_1c1,_1c2){dim=dojo.mixin({},dim);dojo.addClass(_1bf,"dijitLayoutContainer");_1c0=dojo.filter(_1c0,function(item){return item.region!="center"&&item.layoutAlign!="client";}).concat(dojo.filter(_1c0,function(item){return item.region=="center"||item.layoutAlign=="client";}));dojo.forEach(_1c0,function(_1c3){var elm=_1c3.domNode,pos=(_1c3.region||_1c3.layoutAlign);var _1c4=elm.style;_1c4.left=dim.l+"px";_1c4.top=dim.t+"px";_1c4.position="absolute";dojo.addClass(elm,"dijitAlign"+_1bc(pos));var _1c5={};if(_1c1&&_1c1==_1c3.id){_1c5[_1c3.region=="top"||_1c3.region=="bottom"?"h":"w"]=_1c2;}if(pos=="top"||pos=="bottom"){_1c5.w=dim.w;size(_1c3,_1c5);dim.h-=_1c3.h;if(pos=="top"){dim.t+=_1c3.h;}else{_1c4.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){_1c5.h=dim.h;size(_1c3,_1c5);dim.w-=_1c3.w;if(pos=="left"){dim.l+=_1c3.w;}else{_1c4.left=dim.l+dim.w+"px";}}else{if(pos=="client"||pos=="center"){size(_1c3,dim);}}}});};})();}if(!dojo._hasResource["dijit._CssStateMixin"]){dojo._hasResource["dijit._CssStateMixin"]=true;dojo.provide("dijit._CssStateMixin");dojo.declare("dijit._CssStateMixin",[],{cssStateNodes:{},hovering:false,active:false,_applyAttributes:function(){this.inherited(arguments);dojo.forEach(["onmouseenter","onmouseleave","onmousedown"],function(e){this.connect(this.domNode,e,"_cssMouseEvent");},this);dojo.forEach(["disabled","readOnly","checked","selected","focused","state","hovering","active"],function(attr){this.watch(attr,dojo.hitch(this,"_setStateClass"));},this);for(var ap in this.cssStateNodes){this._trackMouseState(this[ap],this.cssStateNodes[ap]);}this._setStateClass();},_cssMouseEvent:function(_1c6){if(!this.disabled){switch(_1c6.type){case "mouseenter":case "mouseover":this._set("hovering",true);this._set("active",this._mouseDown);break;case "mouseleave":case "mouseout":this._set("hovering",false);this._set("active",false);break;case "mousedown":this._set("active",true);this._mouseDown=true;var _1c7=this.connect(dojo.body(),"onmouseup",function(){this._mouseDown=false;this._set("active",false);this.disconnect(_1c7);});break;}}},_setStateClass:function(){var _1c8=this.baseClass.split(" ");function _1c9(_1ca){_1c8=_1c8.concat(dojo.map(_1c8,function(c){return c+_1ca;}),"dijit"+_1ca);};if(!this.isLeftToRight()){_1c9("Rtl");}if(this.checked){_1c9("Checked");}if(this.state){_1c9(this.state);}if(this.selected){_1c9("Selected");}if(this.disabled){_1c9("Disabled");}else{if(this.readOnly){_1c9("ReadOnly");}else{if(this.active){_1c9("Active");}else{if(this.hovering){_1c9("Hover");}}}}if(this._focused){_1c9("Focused");}var tn=this.stateNode||this.domNode,_1cb={};dojo.forEach(tn.className.split(" "),function(c){_1cb[c]=true;});if("_stateClasses" in this){dojo.forEach(this._stateClasses,function(c){delete _1cb[c];});}dojo.forEach(_1c8,function(c){_1cb[c]=true;});var _1cc=[];for(var c in _1cb){_1cc.push(c);}tn.className=_1cc.join(" ");this._stateClasses=_1c8;},_trackMouseState:function(node,_1cd){var _1ce=false,_1cf=false,_1d0=false;var self=this,cn=dojo.hitch(this,"connect",node);function _1d1(){var _1d2=("disabled" in self&&self.disabled)||("readonly" in self&&self.readonly);dojo.toggleClass(node,_1cd+"Hover",_1ce&&!_1cf&&!_1d2);dojo.toggleClass(node,_1cd+"Active",_1cf&&!_1d2);dojo.toggleClass(node,_1cd+"Focused",_1d0&&!_1d2);};cn("onmouseenter",function(){_1ce=true;_1d1();});cn("onmouseleave",function(){_1ce=false;_1cf=false;_1d1();});cn("onmousedown",function(){_1cf=true;_1d1();});cn("onmouseup",function(){_1cf=false;_1d1();});cn("onfocus",function(){_1d0=true;_1d1();});cn("onblur",function(){_1d0=false;_1d1();});this.watch("disabled",_1d1);this.watch("readOnly",_1d1);}});}if(!dojo._hasResource["dijit.form._FormWidget"]){dojo._hasResource["dijit.form._FormWidget"]=true;dojo.provide("dijit.form._FormWidget");dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:false,intermediateChanges:false,scrollOnFocus:true,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{value:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode",title:"focusNode"}),postMixInProperties:function(){this.nameAttrSetting=this.name?("name=\""+this.name.replace(/'/g,""")+"\""):"";this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousedown","_onMouseDown");},_setDisabledAttr:function(_1d3){this._set("disabled",_1d3);dojo.attr(this.focusNode,"disabled",_1d3);if(this.valueNode){dojo.attr(this.valueNode,"disabled",_1d3);}dijit.setWaiState(this.focusNode,"disabled",_1d3);if(_1d3){this._set("hovering",false);this._set("active",false);var _1d4="tabIndex" in this.attributeMap?this.attributeMap.tabIndex:"focusNode";dojo.forEach(dojo.isArray(_1d4)?_1d4:[_1d4],function(_1d5){var node=this[_1d5];if(dojo.isWebKit||dijit.hasDefaultTabStop(node)){node.setAttribute("tabIndex","-1");}else{node.removeAttribute("tabIndex");}},this);}else{if(this.tabIndex!=""){this.focusNode.setAttribute("tabIndex",this.tabIndex);}}},setDisabled:function(_1d6){dojo.deprecated("setDisabled("+_1d6+") is deprecated. Use set('disabled',"+_1d6+") instead.","","2.0");this.set("disabled",_1d6);},_onFocus:function(e){if(this.scrollOnFocus){dojo.window.scrollIntoView(this.domNode);}this.inherited(arguments);},isFocusable:function(){return !this.disabled&&this.focusNode&&(dojo.style(this.domNode,"display")!="none");},focus:function(){if(!this.disabled){dijit.focus(this.focusNode);}},compare:function(val1,val2){if(typeof val1=="number"&&typeof val2=="number"){return (isNaN(val1)&&isNaN(val2))?0:val1-val2;}else{if(val1>val2){return 1;}else{if(val1<val2){return -1;}else{return 0;}}}},onChange:function(_1d7){},_onChangeActive:false,_handleOnChange:function(_1d8,_1d9){if(this._lastValueReported==undefined&&(_1d9===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=_1d8;}this._pendingOnChange=this._pendingOnChange||(typeof _1d8!=typeof this._lastValueReported)||(this.compare(_1d8,this._lastValueReported)!=0);if((this.intermediateChanges||_1d9||_1d9===undefined)&&this._pendingOnChange){this._lastValueReported=_1d8;this._pendingOnChange=false;if(this._onChangeActive){if(this._onChangeHandle){clearTimeout(this._onChangeHandle);}this._onChangeHandle=setTimeout(dojo.hitch(this,function(){this._onChangeHandle=null;this.onChange(_1d8);}),0);}}},create:function(){this.inherited(arguments);this._onChangeActive=true;},destroy:function(){if(this._onChangeHandle){clearTimeout(this._onChangeHandle);this.onChange(this._lastValueReported);}this.inherited(arguments);},setValue:function(_1da){dojo.deprecated("dijit.form._FormWidget:setValue("+_1da+") is deprecated. Use set('value',"+_1da+") instead.","","2.0");this.set("value",_1da);},getValue:function(){dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_onMouseDown:function(e){if(!e.ctrlKey&&dojo.mouseButtons.isLeft(e)&&this.isFocusable()){var _1db=this.connect(dojo.body(),"onmouseup",function(){if(this.isFocusable()){this.focus();}this.disconnect(_1db);});}}});dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"",readOnly:"focusNode"}),_setReadOnlyAttr:function(_1dc){dojo.attr(this.focusNode,"readOnly",_1dc);dijit.setWaiState(this.focusNode,"readonly",_1dc);this._set("readOnly",_1dc);},postCreate:function(){this.inherited(arguments);if(dojo.isIE<9||(dojo.isIE&&dojo.isQuirks)){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}if(this._resetValue===undefined){this._lastValueReported=this._resetValue=this.value;}},_setValueAttr:function(_1dd,_1de){this._handleOnChange(_1dd,_1de);},_handleOnChange:function(_1df,_1e0){this._set("value",_1df);this.inherited(arguments);},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_onKeyDown:function(e){if(e.keyCode==dojo.keys.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){var te;if(dojo.isIE){e.preventDefault();te=document.createEventObject();te.keyCode=dojo.keys.ESCAPE;te.shiftKey=e.shiftKey;e.srcElement.fireEvent("onkeypress",te);}}},_layoutHackIE7:function(){if(dojo.isIE==7){var _1e1=this.domNode;var _1e2=_1e1.parentNode;var _1e3=_1e1.firstChild||_1e1;var _1e4=_1e3.style.filter;var _1e5=this;while(_1e2&&_1e2.clientHeight==0){(function ping(){var _1e6=_1e5.connect(_1e2,"onscroll",function(e){_1e5.disconnect(_1e6);_1e3.style.filter=(new Date()).getMilliseconds();setTimeout(function(){_1e3.style.filter=_1e4;},0);});})();_1e2=_1e2.parentNode;}}}});}if(!dojo._hasResource["dijit.dijit"]){dojo._hasResource["dijit.dijit"]=true;dojo.provide("dijit.dijit");}if(!dojo._hasResource["dojo.fx.Toggler"]){dojo._hasResource["dojo.fx.Toggler"]=true;dojo.provide("dojo.fx.Toggler");dojo.declare("dojo.fx.Toggler",null,{node:null,showFunc:dojo.fadeIn,hideFunc:dojo.fadeOut,showDuration:200,hideDuration:200,constructor:function(args){var _1e7=this;dojo.mixin(_1e7,args);_1e7.node=args.node;_1e7._showArgs=dojo.mixin({},args);_1e7._showArgs.node=_1e7.node;_1e7._showArgs.duration=_1e7.showDuration;_1e7.showAnim=_1e7.showFunc(_1e7._showArgs);_1e7._hideArgs=dojo.mixin({},args);_1e7._hideArgs.node=_1e7.node;_1e7._hideArgs.duration=_1e7.hideDuration;_1e7.hideAnim=_1e7.hideFunc(_1e7._hideArgs);dojo.connect(_1e7.showAnim,"beforeBegin",dojo.hitch(_1e7.hideAnim,"stop",true));dojo.connect(_1e7.hideAnim,"beforeBegin",dojo.hitch(_1e7.showAnim,"stop",true));},show:function(_1e8){return this.showAnim.play(_1e8||0);},hide:function(_1e9){return this.hideAnim.play(_1e9||0);}});}if(!dojo._hasResource["dojo.fx"]){dojo._hasResource["dojo.fx"]=true;dojo.provide("dojo.fx");(function(){var d=dojo,_1ea={_fire:function(evt,args){if(this[evt]){this[evt].apply(this,args||[]);}return this;}};var _1eb=function(_1ec){this._index=-1;this._animations=_1ec||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;d.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay){this.duration+=a.delay;}},this);};d.extend(_1eb,{_onAnimate:function(){this._fire("onAnimate",arguments);},_onEnd:function(){d.disconnect(this._onAnimateCtx);d.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length){this._fire("onEnd");}else{this._current=this._animations[++this._index];this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");this._current.play(0,true);}},play:function(_1ed,_1ee){if(!this._current){this._current=this._animations[this._index=0];}if(!_1ee&&this._current.status()=="playing"){return this;}var _1ef=d.connect(this._current,"beforeBegin",this,function(){this._fire("beforeBegin");}),_1f0=d.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arguments);}),_1f1=d.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arguments);d.disconnect(_1ef);d.disconnect(_1f0);d.disconnect(_1f1);});if(this._onAnimateCtx){d.disconnect(this._onAnimateCtx);}this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");if(this._onEndCtx){d.disconnect(this._onEndCtx);}this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");this._current.play.apply(this._current,arguments);return this;},pause:function(){if(this._current){var e=d.connect(this._current,"onPause",this,function(arg){this._fire("onPause",arguments);d.disconnect(e);});this._current.pause();}return this;},gotoPercent:function(_1f2,_1f3){this.pause();var _1f4=this.duration*_1f2;this._current=null;d.some(this._animations,function(a){if(a.duration<=_1f4){this._current=a;return true;}_1f4-=a.duration;return false;});if(this._current){this._current.gotoPercent(_1f4/this._current.duration,_1f3);}return this;},stop:function(_1f5){if(this._current){if(_1f5){for(;this._index+1<this._animations.length;++this._index){this._animations[this._index].stop(true);}this._current=this._animations[this._index];}var e=d.connect(this._current,"onStop",this,function(arg){this._fire("onStop",arguments);d.disconnect(e);});this._current.stop();}return this;},status:function(){return this._current?this._current.status():"stopped";},destroy:function(){if(this._onAnimateCtx){d.disconnect(this._onAnimateCtx);}if(this._onEndCtx){d.disconnect(this._onEndCtx);}}});d.extend(_1eb,_1ea);dojo.fx.chain=function(_1f6){return new _1eb(_1f6);};var _1f7=function(_1f8){this._animations=_1f8||[];this._connects=[];this._finished=0;this.duration=0;d.forEach(_1f8,function(a){var _1f9=a.duration;if(a.delay){_1f9+=a.delay;}if(this.duration<_1f9){this.duration=_1f9;}this._connects.push(d.connect(a,"onEnd",this,"_onEnd"));},this);this._pseudoAnimation=new d.Animation({curve:[0,1],duration:this.duration});var self=this;d.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop","onEnd"],function(evt){self._connects.push(d.connect(self._pseudoAnimation,evt,function(){self._fire(evt,arguments);}));});};d.extend(_1f7,{_doAction:function(_1fa,args){d.forEach(this._animations,function(a){a[_1fa].apply(a,args);});return this;},_onEnd:function(){if(++this._finished>this._animations.length){this._fire("onEnd");}},_call:function(_1fb,args){var t=this._pseudoAnimation;t[_1fb].apply(t,args);},play:function(_1fc,_1fd){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this;},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this;},gotoPercent:function(_1fe,_1ff){var ms=this.duration*_1fe;d.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:(ms/a.duration),_1ff);});this._call("gotoPercent",arguments);return this;},stop:function(_200){this._doAction("stop",arguments);this._call("stop",arguments);return this;},status:function(){return this._pseudoAnimation.status();},destroy:function(){d.forEach(this._connects,dojo.disconnect);}});d.extend(_1f7,_1ea);dojo.fx.combine=function(_201){return new _1f7(_201);};dojo.fx.wipeIn=function(args){var node=args.node=d.byId(args.node),s=node.style,o;var anim=d.animateProperty(d.mixin({properties:{height:{start:function(){o=s.overflow;s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s.height="1px";s.display="";s.visibility="";return 1;}else{var _202=d.style(node,"height");return Math.max(_202,1);}},end:function(){return node.scrollHeight;}}}},args));d.connect(anim,"onEnd",function(){s.height="auto";s.overflow=o;});return anim;};dojo.fx.wipeOut=function(args){var node=args.node=d.byId(args.node),s=node.style,o;var anim=d.animateProperty(d.mixin({properties:{height:{end:1}}},args));d.connect(anim,"beforeBegin",function(){o=s.overflow;s.overflow="hidden";s.display="";});d.connect(anim,"onEnd",function(){s.overflow=o;s.height="auto";s.display="none";});return anim;};dojo.fx.slideTo=function(args){var node=args.node=d.byId(args.node),top=null,left=null;var init=(function(n){return function(){var cs=d.getComputedStyle(n);var pos=cs.position;top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0);left=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0);if(pos!="absolute"&&pos!="relative"){var ret=d.position(n,true);top=ret.y;left=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=left+"px";}};})(node);init();var anim=d.animateProperty(d.mixin({properties:{top:args.top||0,left:args.left||0}},args));d.connect(anim,"beforeBegin",anim,init);return anim;};})();}if(!dojo._hasResource["dojo.NodeList-fx"]){dojo._hasResource["dojo.NodeList-fx"]=true;dojo.provide("dojo.NodeList-fx");dojo.extend(dojo.NodeList,{_anim:function(obj,_203,args){args=args||{};var a=dojo.fx.combine(this.map(function(item){var _204={node:item};dojo.mixin(_204,args);return obj[_203](_204);}));return args.auto?a.play()&&this:a;},wipeIn:function(args){return this._anim(dojo.fx,"wipeIn",args);},wipeOut:function(args){return this._anim(dojo.fx,"wipeOut",args);},slideTo:function(args){return this._anim(dojo.fx,"slideTo",args);},fadeIn:function(args){return this._anim(dojo,"fadeIn",args);},fadeOut:function(args){return this._anim(dojo,"fadeOut",args);},animateProperty:function(args){return this._anim(dojo,"animateProperty",args);},anim:function(_205,_206,_207,_208,_209){var _20a=dojo.fx.combine(this.map(function(item){return dojo.animateProperty({node:item,properties:_205,duration:_206||350,easing:_207});}));if(_208){dojo.connect(_20a,"onEnd",_208);}return _20a.play(_209||0);}});}if(!dojo._hasResource["dojo.colors"]){dojo._hasResource["dojo.colors"]=true;dojo.provide("dojo.colors");dojo.getObject("colors",true,dojo);(function(){var _20b=function(m1,m2,h){if(h<0){++h;}if(h>1){--h;}var h6=6*h;if(h6<1){return m1+(m2-m1)*h6;}if(2*h<1){return m2;}if(3*h<2){return m1+(m2-m1)*(2/3-h)*6;}return m1;};dojo.colorFromRgb=function(_20c,obj){var m=_20c.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(m){var c=m[2].split(/\s*,\s*/),l=c.length,t=m[1],a;if((t=="rgb"&&l==3)||(t=="rgba"&&l==4)){var r=c[0];if(r.charAt(r.length-1)=="%"){a=dojo.map(c,function(x){return parseFloat(x)*2.56;});if(l==4){a[3]=c[3];}return dojo.colorFromArray(a,obj);}return dojo.colorFromArray(c,obj);}if((t=="hsl"&&l==3)||(t=="hsla"&&l==4)){var H=((parseFloat(c[0])%360)+360)%360/360,S=parseFloat(c[1])/100,L=parseFloat(c[2])/100,m2=L<=0.5?L*(S+1):L+S-L*S,m1=2*L-m2;a=[_20b(m1,m2,H+1/3)*256,_20b(m1,m2,H)*256,_20b(m1,m2,H-1/3)*256,1];if(l==4){a[3]=c[3];}return dojo.colorFromArray(a,obj);}}return null;};var _20d=function(c,low,high){c=Number(c);return isNaN(c)?high:c<low?low:c>high?high:c;};dojo.Color.prototype.sanitize=function(){var t=this;t.r=Math.round(_20d(t.r,0,255));t.g=Math.round(_20d(t.g,0,255));t.b=Math.round(_20d(t.b,0,255));t.a=_20d(t.a,0,1);return this;};})();dojo.colors.makeGrey=function(g,a){return dojo.colorFromArray([g,g,g,a]);};dojo.mixin(dojo.Color.named,{aliceblue:[240,248,255],antiquewhite:[250,235,215],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],blanchedalmond:[255,235,205],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],oldlace:[253,245,230],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],thistle:[216,191,216],tomato:[255,99,71],transparent:[0,0,0,0],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],whitesmoke:[245,245,245],yellowgreen:[154,205,50]});}if(!dojo._hasResource["dojo.i18n"]){dojo._hasResource["dojo.i18n"]=true;dojo.provide("dojo.i18n");dojo.getObject("i18n",true,dojo);dojo.i18n.getLocalization=dojo.i18n.getLocalization||function(_20e,_20f,_210){_210=dojo.i18n.normalizeLocale(_210);var _211=_210.split("-");var _212=[_20e,"nls",_20f].join(".");var _213=dojo._loadedModules[_212];if(_213){var _214;for(var i=_211.length;i>0;i--){var loc=_211.slice(0,i).join("_");if(_213[loc]){_214=_213[loc];break;}}if(!_214){_214=_213.ROOT;}if(_214){var _215=function(){};_215.prototype=_214;return new _215();}}throw new Error("Bundle not found: "+_20f+" in "+_20e+" , locale="+_210);};dojo.i18n.normalizeLocale=function(_216){var _217=_216?_216.toLowerCase():dojo.locale;if(_217=="root"){_217="ROOT";}return _217;};dojo.i18n._requireLocalization=function(_218,_219,_21a,_21b){var _21c=dojo.i18n.normalizeLocale(_21a);var _21d=[_218,"nls",_219].join(".");var _21e="";if(_21b){var _21f=_21b.split(",");for(var i=0;i<_21f.length;i++){if(_21c["indexOf"](_21f[i])==0){if(_21f[i].length>_21e.length){_21e=_21f[i];}}}if(!_21e){_21e="ROOT";}}var _220=_21b?_21e:_21c;var _221=dojo._loadedModules[_21d];var _222=null;if(_221){if(dojo.config.localizationComplete&&_221._built){return;}var _223=_220.replace(/-/g,"_");var _224=_21d+"."+_223;_222=dojo._loadedModules[_224];}if(!_222){_221=dojo["provide"](_21d);var syms=dojo._getModuleSymbols(_218);var _225=syms.concat("nls").join("/");var _226;dojo.i18n._searchLocalePath(_220,_21b,function(loc){var _227=loc.replace(/-/g,"_");var _228=_21d+"."+_227;var _229=false;if(!dojo._loadedModules[_228]){dojo["provide"](_228);var _22a=[_225];if(loc!="ROOT"){_22a.push(loc);}_22a.push(_219);var _22b=_22a.join("/")+".js";_229=dojo._loadPath(_22b,null,function(hash){hash=hash.root||hash;var _22c=function(){};_22c.prototype=_226;_221[_227]=new _22c();for(var j in hash){_221[_227][j]=hash[j];}});}else{_229=true;}if(_229&&_221[_227]){_226=_221[_227];}else{_221[_227]=_226;}if(_21b){return true;}});}if(_21b&&_21c!=_21e){_221[_21c.replace(/-/g,"_")]=_221[_21e.replace(/-/g,"_")];}};(function(){var _22d=dojo.config.extraLocale;if(_22d){if(!_22d instanceof Array){_22d=[_22d];}var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,_22e,_22f){req(m,b,_22e,_22f);if(_22e){return;}for(var i=0;i<_22d.length;i++){req(m,b,_22d[i],_22f);}};}})();dojo.i18n._searchLocalePath=function(_230,down,_231){_230=dojo.i18n.normalizeLocale(_230);var _232=_230.split("-");var _233=[];for(var i=_232.length;i>0;i--){_233.push(_232.slice(0,i).join("-"));}_233.push(false);if(down){_233.reverse();}for(var j=_233.length-1;j>=0;j--){var loc=_233[j]||"ROOT";var stop=_231(loc);if(stop){break;}}};dojo.i18n._preloadLocalizations=function(_234,_235){function _236(_237){_237=dojo.i18n.normalizeLocale(_237);dojo.i18n._searchLocalePath(_237,true,function(loc){for(var i=0;i<_235.length;i++){if(_235[i]==loc){dojo["require"](_234+"_"+loc);return true;}}return false;});};_236();var _238=dojo.config.extraLocale||[];for(var i=0;i<_238.length;i++){_236(_238[i]);}};}if(!dojo._hasResource["dijit._PaletteMixin"]){dojo._hasResource["dijit._PaletteMixin"]=true;dojo.provide("dijit._PaletteMixin");dojo.declare("dijit._PaletteMixin",[dijit._CssStateMixin],{defaultTimeout:500,timeoutChangeRate:0.9,value:null,_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:"",_preparePalette:function(_239,_23a,_23b){this._cells=[];var url=this._blankGif;_23b=_23b||dojo.getObject(this.dyeClass);for(var row=0;row<_239.length;row++){var _23c=dojo.create("tr",{tabIndex:"-1"},this.gridNode);for(var col=0;col<_239[row].length;col++){var _23d=_239[row][col];if(_23d){var _23e=new _23b(_23d,row,col);var _23f=dojo.create("td",{"class":this.cellClass,tabIndex:"-1",title:_23a[_23d]});_23e.fillCell(_23f,url);this.connect(_23f,"ondijitclick","_onCellClick");this._trackMouseState(_23f,this.cellClass);dojo.place(_23f,_23c);_23f.index=this._cells.length;this._cells.push({node:_23f,dye:_23e});}}}this._xDim=_239[0].length;this._yDim=_239.length;var _240={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};for(var key in _240){this._connects.push(dijit.typematic.addKeyListener(this.domNode,{charOrCode:dojo.keys[key],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _241=_240[key];return function(_242){this._navigateByKey(_241,_242);};}(),this.timeoutChangeRate,this.defaultTimeout));}},postCreate:function(){this.inherited(arguments);this._setCurrent(this._cells[0].node);},focus:function(){dijit.focus(this._currentFocus);},_onCellClick:function(evt){var _243=evt.currentTarget,_244=this._getDye(_243).getValue();this._setCurrent(_243);setTimeout(dojo.hitch(this,function(){dijit.focus(_243);this._setValueAttr(_244,true);}));dojo.removeClass(_243,"dijitPaletteCellHover");dojo.stopEvent(evt);},_setCurrent:function(node){if("_currentFocus" in this){dojo.attr(this._currentFocus,"tabIndex","-1");}this._currentFocus=node;if(node){dojo.attr(node,"tabIndex",this.tabIndex);}},_setValueAttr:function(_245,_246){if(this._selectedCell>=0){dojo.removeClass(this._cells[this._selectedCell].node,"dijitPaletteCellSelected");}this._selectedCell=-1;if(_245){for(var i=0;i<this._cells.length;i++){if(_245==this._cells[i].dye.getValue()){this._selectedCell=i;dojo.addClass(this._cells[i].node,"dijitPaletteCellSelected");break;}}}this._set("value",this._selectedCell>=0?_245:null);if(_246||_246===undefined){this.onChange(_245);}},onChange:function(_247){},_navigateByKey:function(_248,_249){if(_249==-1){return;}var _24a=this._currentFocus.index+_248;if(_24a<this._cells.length&&_24a>-1){var _24b=this._cells[_24a].node;this._setCurrent(_24b);setTimeout(dojo.hitch(dijit,"focus",_24b),0);}},_getDye:function(cell){return this._cells[cell.index].dye;}});}if(!dojo._hasResource["dijit.ColorPalette"]){dojo._hasResource["dijit.ColorPalette"]=true;dojo.provide("dijit.ColorPalette");dojo.declare("dijit.ColorPalette",[dijit._Widget,dijit._Templated,dijit._PaletteMixin],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},templateString:dojo.cache("dijit","templates/ColorPalette.html","<div class=\"dijitInline dijitColorPalette\">\n\t<table class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\">\n\t\t<tbody dojoAttachPoint=\"gridNode\"></tbody>\n\t</table>\n</div>\n"),baseClass:"dijitColorPalette",buildRendering:function(){this.inherited(arguments);this._preparePalette(this._palettes[this.palette],dojo.i18n.getLocalization("dojo","colors",this.lang),dojo.declare(dijit._Color,{hc:dojo.hasClass(dojo.body(),"dijit_a11y"),palette:this.palette}));}});dojo.declare("dijit._Color",dojo.Color,{template:"<span class='dijitInline dijitPaletteImg'>"+"<img src='${blankGif}' alt='${alt}' class='dijitColorPaletteSwatch' style='background-color: ${color}'/>"+"</span>",hcTemplate:"<span class='dijitInline dijitPaletteImg' style='position: relative; overflow: hidden; height: 12px; width: 14px;'>"+"<img src='${image}' alt='${alt}' style='position: absolute; left: ${left}px; top: ${top}px; ${size}'/>"+"</span>",_imagePaths:{"7x10":dojo.moduleUrl("dijit.themes","a11y/colors7x10.png"),"3x4":dojo.moduleUrl("dijit.themes","a11y/colors3x4.png")},constructor:function(_24c,row,col){this._alias=_24c;this._row=row;this._col=col;this.setColor(dojo.Color.named[_24c]);},getValue:function(){return this.toHex();},fillCell:function(cell,_24d){var html=dojo.string.substitute(this.hc?this.hcTemplate:this.template,{color:this.toHex(),blankGif:_24d,alt:this._alias,image:this._imagePaths[this.palette].toString(),left:this._col*-20-5,top:this._row*-20-5,size:this.palette=="7x10"?"height: 145px; width: 206px":"height: 64px; width: 86px"});dojo.place(html,cell);}});}if(!dojo._hasResource["dojo.dnd.common"]){dojo._hasResource["dojo.dnd.common"]=true;dojo.provide("dojo.dnd.common");dojo.getObject("dnd",true,dojo);dojo.dnd.getCopyKeyState=dojo.isCopyKey;dojo.dnd._uniqueId=0;dojo.dnd.getUniqueId=function(){var id;do{id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId);}while(dojo.byId(id));return id;};dojo.dnd._empty={};dojo.dnd.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};}if(!dojo._hasResource["dojo.dnd.autoscroll"]){dojo._hasResource["dojo.dnd.autoscroll"]=true;dojo.provide("dojo.dnd.autoscroll");dojo.getObject("dnd",true,dojo);dojo.dnd.getViewport=dojo.window.getBox;dojo.dnd.V_TRIGGER_AUTOSCROLL=32;dojo.dnd.H_TRIGGER_AUTOSCROLL=32;dojo.dnd.V_AUTOSCROLL_VALUE=16;dojo.dnd.H_AUTOSCROLL_VALUE=16;dojo.dnd.autoScroll=function(e){var v=dojo.window.getBox(),dx=0,dy=0;if(e.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=-dojo.dnd.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=dojo.dnd.H_AUTOSCROLL_VALUE;}}if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=-dojo.dnd.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=dojo.dnd.V_AUTOSCROLL_VALUE;}}window.scrollBy(dx,dy);};dojo.dnd._validNodes={"div":1,"p":1,"td":1};dojo.dnd._validOverflow={"auto":1,"scroll":1};dojo.dnd.autoScrollNodes=function(e){for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in dojo.dnd._validNodes)){var s=dojo.getComputedStyle(n);if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){var b=dojo._getContentBox(n,s),t=dojo.position(n,true);var w=Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL,b.w/2),h=Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL,b.h/2),rx=e.pageX-t.x,ry=e.pageY-t.y,dx=0,dy=0;if(dojo.isWebKit||dojo.isOpera){rx+=dojo.body().scrollLeft;ry+=dojo.body().scrollTop;}if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else{if(rx>b.w-w){dx=w;}}}if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else{if(ry>b.h-h){dy=h;}}}var _24e=n.scrollLeft,_24f=n.scrollTop;n.scrollLeft=n.scrollLeft+dx;n.scrollTop=n.scrollTop+dy;if(_24e!=n.scrollLeft||_24f!=n.scrollTop){return;}}}try{n=n.parentNode;}catch(x){n=null;}}dojo.dnd.autoScroll(e);};}if(!dojo._hasResource["dojo.dnd.Mover"]){dojo._hasResource["dojo.dnd.Mover"]=true;dojo.provide("dojo.dnd.Mover");dojo.declare("dojo.dnd.Mover",null,{constructor:function(node,e,host){this.node=dojo.byId(node);var pos=e.touches?e.touches[0]:e;this.marginBox={l:pos.pageX,t:pos.pageY};this.mouseButton=e.button;var h=(this.host=host),d=node.ownerDocument;this.events=[dojo.connect(d,"onmousemove",this,"onFirstMove"),dojo.connect(d,"ontouchmove",this,"onFirstMove"),dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"ontouchmove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"onMouseUp"),dojo.connect(d,"ontouchend",this,"onMouseUp"),dojo.connect(d,"ondragstart",dojo.stopEvent),dojo.connect(d.body,"onselectstart",dojo.stopEvent)];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox,pos=e.touches?e.touches[0]:e;this.host.onMove(this,{l:m.l+pos.pageX,t:m.t+pos.pageY},e);dojo.stopEvent(e);},onMouseUp:function(e){if(dojo.isWebKit&&dojo.isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}dojo.stopEvent(e);},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||0;break;default:s.position="absolute";var m=dojo.marginBox(this.node);var b=dojo.doc.body;var bs=dojo.getComputedStyle(b);var bm=dojo._getMarginBox(b,bs);var bc=dojo._getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this,e);}dojo.disconnect(this.events.shift());dojo.disconnect(this.events.shift());},destroy:function(){dojo.forEach(this.events,dojo.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});}if(!dojo._hasResource["dojo.dnd.Moveable"]){dojo._hasResource["dojo.dnd.Moveable"]=true;dojo.provide("dojo.dnd.Moveable");dojo.declare("dojo.dnd.Moveable",null,{handle:"",delay:0,skip:false,constructor:function(node,_250){this.node=dojo.byId(node);if(!_250){_250={};}this.handle=_250.handle?dojo.byId(_250.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_250.delay>0?_250.delay:0;this.skip=_250.skip;this.mover=_250.mover?_250.mover:dojo.dnd.Mover;this.events=[dojo.connect(this.handle,"onmousedown",this,"onMouseDown"),dojo.connect(this.handle,"ontouchstart",this,"onMouseDown"),dojo.connect(this.handle,"ondragstart",this,"onSelectStart"),dojo.connect(this.handle,"onselectstart",this,"onSelectStart")];},markupFactory:function(_251,node){return new dojo.dnd.Moveable(node,_251);},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&dojo.dnd.isFormElement(e)){return;}if(this.delay){this.events.push(dojo.connect(this.handle,"onmousemove",this,"onMouseMove"),dojo.connect(this.handle,"ontouchmove",this,"onMouseMove"),dojo.connect(this.handle,"onmouseup",this,"onMouseUp"),dojo.connect(this.handle,"ontouchend",this,"onMouseUp"));var pos=e.touches?e.touches[0]:e;this._lastX=pos.pageX;this._lastY=pos.pageY;}else{this.onDragDetected(e);}dojo.stopEvent(e);},onMouseMove:function(e){var pos=e.touches?e.touches[0]:e;if(Math.abs(pos.pageX-this._lastX)>this.delay||Math.abs(pos.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}dojo.stopEvent(e);},onMouseUp:function(e){for(var i=0;i<2;++i){dojo.disconnect(this.events.pop());}dojo.stopEvent(e);},onSelectStart:function(e){if(!this.skip||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(_252){dojo.publish("/dnd/move/start",[_252]);dojo.addClass(dojo.body(),"dojoMove");dojo.addClass(this.node,"dojoMoveItem");},onMoveStop:function(_253){dojo.publish("/dnd/move/stop",[_253]);dojo.removeClass(dojo.body(),"dojoMove");dojo.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(_254,e){},onMove:function(_255,_256,e){this.onMoving(_255,_256);var s=_255.node.style;s.left=_256.l+"px";s.top=_256.t+"px";this.onMoved(_255,_256);},onMoving:function(_257,_258){},onMoved:function(_259,_25a){}});}if(!dojo._hasResource["dojo.dnd.move"]){dojo._hasResource["dojo.dnd.move"]=true;dojo.provide("dojo.dnd.move");dojo.declare("dojo.dnd.move.constrainedMoveable",dojo.dnd.Moveable,{constraints:function(){},within:false,markupFactory:function(_25b,node){return new dojo.dnd.move.constrainedMoveable(node,_25b);},constructor:function(node,_25c){if(!_25c){_25c={};}this.constraints=_25c.constraints;this.within=_25c.within;},onFirstMove:function(_25d){var c=this.constraintBox=this.constraints.call(this,_25d);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=dojo._getMarginSize(_25d.node);c.r-=mb.w;c.b-=mb.h;}},onMove:function(_25e,_25f){var c=this.constraintBox,s=_25e.node.style;this.onMoving(_25e,_25f);_25f.l=_25f.l<c.l?c.l:c.r<_25f.l?c.r:_25f.l;_25f.t=_25f.t<c.t?c.t:c.b<_25f.t?c.b:_25f.t;s.left=_25f.l+"px";s.top=_25f.t+"px";this.onMoved(_25e,_25f);}});dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_260,node){return new dojo.dnd.move.boxConstrainedMoveable(node,_260);},constructor:function(node,_261){var box=_261&&_261.box;this.constraints=function(){return box;};}});dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_262,node){return new dojo.dnd.move.parentConstrainedMoveable(node,_262);},constructor:function(node,_263){var area=_263&&_263.area;this.constraints=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(area=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover;dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover;dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover;}if(!dojo._hasResource["dojo.dnd.TimedMoveable"]){dojo._hasResource["dojo.dnd.TimedMoveable"]=true;dojo.provide("dojo.dnd.TimedMoveable");(function(){var _264=dojo.dnd.Moveable.prototype.onMove;dojo.declare("dojo.dnd.TimedMoveable",dojo.dnd.Moveable,{timeout:40,constructor:function(node,_265){if(!_265){_265={};}if(_265.timeout&&typeof _265.timeout=="number"&&_265.timeout>=0){this.timeout=_265.timeout;}},markupFactory:function(_266,node){return new dojo.dnd.TimedMoveable(node,_266);},onMoveStop:function(_267){if(_267._timer){clearTimeout(_267._timer);_264.call(this,_267,_267._leftTop);}dojo.dnd.Moveable.prototype.onMoveStop.apply(this,arguments);},onMove:function(_268,_269){_268._leftTop=_269;if(!_268._timer){var _26a=this;_268._timer=setTimeout(function(){_268._timer=null;_264.call(_26a,_268,_268._leftTop);},this.timeout);}}});})();}if(!dojo._hasResource["dijit.form._FormMixin"]){dojo._hasResource["dijit.form._FormMixin"]=true;dojo.provide("dijit.form._FormMixin");dojo.declare("dijit.form._FormMixin",null,{state:"",reset:function(){dojo.forEach(this.getDescendants(),function(_26b){if(_26b.reset){_26b.reset();}});},validate:function(){var _26c=false;return dojo.every(dojo.map(this.getDescendants(),function(_26d){_26d._hasBeenBlurred=true;var _26e=_26d.disabled||!_26d.validate||_26d.validate();if(!_26e&&!_26c){dojo.window.scrollIntoView(_26d.containerNode||_26d.domNode);_26d.focus();_26c=true;}return _26e;}),function(item){return item;});},setValues:function(val){dojo.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(obj){var map={};dojo.forEach(this.getDescendants(),function(_26f){if(!_26f.name){return;}var _270=map[_26f.name]||(map[_26f.name]=[]);_270.push(_26f);});for(var name in map){if(!map.hasOwnProperty(name)){continue;}var _271=map[name],_272=dojo.getObject(name,false,obj);if(_272===undefined){continue;}if(!dojo.isArray(_272)){_272=[_272];}if(typeof _271[0].checked=="boolean"){dojo.forEach(_271,function(w,i){w.set("value",dojo.indexOf(_272,w.value)!=-1);});}else{if(_271[0].multiple){_271[0].set("value",_272);}else{dojo.forEach(_271,function(w,i){w.set("value",_272[i]);});}}}},getValues:function(){dojo.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_getValueAttr:function(){var obj={};dojo.forEach(this.getDescendants(),function(_273){var name=_273.name;if(!name||_273.disabled){return;}var _274=_273.get("value");if(typeof _273.checked=="boolean"){if(/Radio/.test(_273.declaredClass)){if(_274!==false){dojo.setObject(name,_274,obj);}else{_274=dojo.getObject(name,false,obj);if(_274===undefined){dojo.setObject(name,null,obj);}}}else{var ary=dojo.getObject(name,false,obj);if(!ary){ary=[];dojo.setObject(name,ary,obj);}if(_274!==false){ary.push(_274);}}}else{var prev=dojo.getObject(name,false,obj);if(typeof prev!="undefined"){if(dojo.isArray(prev)){prev.push(_274);}else{dojo.setObject(name,[prev,_274],obj);}}else{dojo.setObject(name,_274,obj);}}});return obj;},isValid:function(){return this.state=="";},onValidStateChange:function(_275){},_getState:function(){var _276=dojo.map(this._descendants,function(w){return w.get("state")||"";});return dojo.indexOf(_276,"Error")>=0?"Error":dojo.indexOf(_276,"Incomplete")>=0?"Incomplete":"";},disconnectChildren:function(){dojo.forEach(this._childConnections||[],dojo.hitch(this,"disconnect"));dojo.forEach(this._childWatches||[],function(w){w.unwatch();});},connectChildren:function(_277){var _278=this;this.disconnectChildren();this._descendants=this.getDescendants();var set=_277?function(name,val){_278[name]=val;}:dojo.hitch(this,"_set");set("value",this.get("value"));set("state",this._getState());var _279=(this._childConnections=[]),_27a=(this._childWatches=[]);dojo.forEach(dojo.filter(this._descendants,function(item){return item.validate;}),function(_27b){dojo.forEach(["state","disabled"],function(attr){_27a.push(_27b.watch(attr,function(attr,_27c,_27d){_278.set("state",_278._getState());}));});});var _27e=function(){if(_278._onChangeDelayTimer){clearTimeout(_278._onChangeDelayTimer);}_278._onChangeDelayTimer=setTimeout(function(){delete _278._onChangeDelayTimer;_278._set("value",_278.get("value"));},10);};dojo.forEach(dojo.filter(this._descendants,function(item){return item.onChange;}),function(_27f){_279.push(_278.connect(_27f,"onChange",_27e));_27a.push(_27f.watch("disabled",_27e));});},startup:function(){this.inherited(arguments);this.connectChildren(true);this.watch("state",function(attr,_280,_281){this.onValidStateChange(_281=="");});},destroy:function(){this.disconnectChildren();this.inherited(arguments);}});}if(!dojo._hasResource["dijit._DialogMixin"]){dojo._hasResource["dijit._DialogMixin"]=true;dojo.provide("dijit._DialogMixin");dojo.declare("dijit._DialogMixin",null,{attributeMap:dijit._Widget.prototype.attributeMap,execute:function(_282){},onCancel:function(){},onExecute:function(){},_onSubmit:function(){this.onExecute();this.execute(this.get("value"));},_getFocusItems:function(){var _283=dijit._getTabNavigable(this.containerNode);this._firstFocusItem=_283.lowest||_283.first||this.closeButtonNode||this.domNode;this._lastFocusItem=_283.last||_283.highest||this._firstFocusItem;}});}if(!dojo._hasResource["dijit.DialogUnderlay"]){dojo._hasResource["dijit.DialogUnderlay"]=true;dojo.provide("dijit.DialogUnderlay");dojo.declare("dijit.DialogUnderlay",[dijit._Widget,dijit._Templated],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' dojoAttachPoint='node'></div></div>",dialogId:"","class":"",attributeMap:{id:"domNode"},_setDialogIdAttr:function(id){dojo.attr(this.node,"id",id+"_underlay");this._set("dialogId",id);},_setClassAttr:function(_284){this.node.className="dijitDialogUnderlay "+_284;this._set("class",_284);},postCreate:function(){dojo.body().appendChild(this.domNode);},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var _285=dojo.window.getBox();os.top=_285.t+"px";os.left=_285.l+"px";is.width=_285.w+"px";is.height=_285.h+"px";os.display="block";},show:function(){this.domNode.style.display="block";this.layout();this.bgIframe=new dijit.BackgroundIframe(this.domNode);},hide:function(){this.bgIframe.destroy();delete this.bgIframe;this.domNode.style.display="none";}});}if(!dojo._hasResource["dijit.layout._ContentPaneResizeMixin"]){dojo._hasResource["dijit.layout._ContentPaneResizeMixin"]=true;dojo.provide("dijit.layout._ContentPaneResizeMixin");dojo.declare("dijit.layout._ContentPaneResizeMixin",null,{doLayout:true,isContainer:true,isLayoutContainer:true,_startChildren:function(){dojo.forEach(this.getChildren(),function(_286){_286.startup();_286._started=true;});},startup:function(){if(this._started){return;}var _287=dijit._Contained.prototype.getParent.call(this);this._childOfLayoutWidget=_287&&_287.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;this.inherited(arguments);this._startChildren();if(this._isShown()){this._onShow();}if(!this._childOfLayoutWidget){this.connect(dojo.isIE?this.domNode:dojo.global,"onresize",function(){this._needLayout=!this._childOfLayoutWidget;this.resize();});}},_checkIfSingleChild:function(){var _288=dojo.query("> *",this.containerNode).filter(function(node){return node.tagName!=="SCRIPT";}),_289=_288.filter(function(node){return dojo.hasAttr(node,"data-dojo-type")||dojo.hasAttr(node,"dojoType")||dojo.hasAttr(node,"widgetId");}),_28a=dojo.filter(_289.map(dijit.byNode),function(_28b){return _28b&&_28b.domNode&&_28b.resize;});if(_288.length==_289.length&&_28a.length==1){this._singleChild=_28a[0];}else{delete this._singleChild;}dojo.toggleClass(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);},resize:function(_28c,_28d){if(!this._wasShown&&this.open!==false){this._onShow();}this._resizeCalled=true;this._scheduleLayout(_28c,_28d);},_scheduleLayout:function(_28e,_28f){if(this._isShown()){this._layout(_28e,_28f);}else{this._needLayout=true;this._changeSize=_28e;this._resultSize=_28f;}},_layout:function(_290,_291){if(_290){dojo.marginBox(this.domNode,_290);}var cn=this.containerNode;if(cn===this.domNode){var mb=_291||{};dojo.mixin(mb,_290||{});if(!("h" in mb)||!("w" in mb)){mb=dojo.mixin(dojo.marginBox(cn),mb);}this._contentBox=dijit.layout.marginBox2contentBox(cn,mb);}else{this._contentBox=dojo.contentBox(cn);}this._layoutChildren();delete this._needLayout;},_layoutChildren:function(){if(this.doLayout){this._checkIfSingleChild();}if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||dojo.contentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{dojo.forEach(this.getChildren(),function(_292){if(_292.resize){_292.resize();}});}},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open" in this){return this.open;}return this._resizeCalled;}else{if("open" in this){return this.open;}else{var node=this.domNode,_293=this.domNode.parentNode;return (node.style.display!="none")&&(node.style.visibility!="hidden")&&!dojo.hasClass(node,"dijitHidden")&&_293&&_293.style&&(_293.style.display!="none");}}},_onShow:function(){if(this._needLayout){this._layout(this._changeSize,this._resultSize);}this.inherited(arguments);this._wasShown=true;}});}if(!dojo._hasResource["dojo.html"]){dojo._hasResource["dojo.html"]=true;dojo.provide("dojo.html");dojo.getObject("html",true,dojo);(function(){var _294=0,d=dojo;dojo.html._secureForInnerHtml=function(cont){return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};dojo.html._emptyNode=dojo.empty;dojo.html._setNodeContent=function(node,cont){d.empty(node);if(cont){if(typeof cont=="string"){cont=d._toDom(cont,node.ownerDocument);}if(!cont.nodeType&&d.isArrayLike(cont)){for(var _295=cont.length,i=0;i<cont.length;i=_295==cont.length?i+1:0){d.place(cont[i],node,"last");}}else{d.place(cont,node,"last");}}return node;};dojo.declare("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,parserScope:dojo._scopeName,startup:true,constructor:function(_296,node){dojo.mixin(this,_296||{});node=this.node=dojo.byId(this.node||node);if(!this.id){this.id=["Setter",(node)?node.id||node.tagName:"",_294++].join("_");}},set:function(cont,_297){if(undefined!==cont){this.content=cont;}if(_297){this._mixin(_297);}this.onBegin();this.setContent();this.onEnd();return this.node;},setContent:function(){var node=this.node;if(!node){throw new Error(this.declaredClass+": setContent given no node");}try{node=dojo.html._setNodeContent(node,this.content);}catch(e){var _298=this.onContentError(e);try{node.innerHTML=_298;}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);}}this.node=node;},empty:function(){if(this.parseResults&&this.parseResults.length){dojo.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}dojo.html._emptyNode(this.node);},onBegin:function(){var cont=this.content;if(dojo.isString(cont)){if(this.cleanContent){cont=dojo.html._secureForInnerHtml(cont);}if(this.extractContent){var _299=cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_299){cont=_299[1];}}}this.empty();this.content=cont;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}return this.node;},tearDown:function(){delete this.parseResults;delete this.node;delete this.content;},onContentError:function(err){return "Error occured setting content: "+err;},_mixin:function(_29a){var _29b={},key;for(key in _29a){if(key in _29b){continue;}this[key]=_29a[key];}},_parse:function(){var _29c=this.node;try{var _29d={};dojo.forEach(["dir","lang","textDir"],function(name){if(this[name]){_29d[name]=this[name];}},this);this.parseResults=dojo.parser.parse({rootNode:_29c,noStart:!this.startup,inherited:_29d,scope:this.parserScope});}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(type,err,_29e){var _29f=this["on"+type+"Error"].call(this,err);if(_29e){console.error(_29e,err);}else{if(_29f){dojo.html._setNodeContent(this.node,_29f,true);}}}});dojo.html.set=function(node,cont,_2a0){if(undefined==cont){console.warn("dojo.html.set: no cont argument provided, using empty string");cont="";}if(!_2a0){return dojo.html._setNodeContent(node,cont,true);}else{var op=new dojo.html._ContentSetter(dojo.mixin(_2a0,{content:cont,node:node}));return op.set();}};})();}if(!dojo._hasResource["dijit.layout.ContentPane"]){dojo._hasResource["dijit.layout.ContentPane"]=true;dojo.provide("dijit.layout.ContentPane");dojo.declare("dijit.layout.ContentPane",[dijit._Widget,dijit.layout._ContentPaneResizeMixin],{href:"",extractContent:false,parseOnLoad:true,parserScope:dojo._scopeName,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",ioArgs:{},onLoadDeferred:null,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[]}),stopParser:true,template:false,create:function(_2a1,_2a2){if((!_2a1||!_2a1.template)&&_2a2&&!("href" in _2a1)&&!("content" in _2a1)){var df=dojo.doc.createDocumentFragment();_2a2=dojo.byId(_2a2);while(_2a2.firstChild){df.appendChild(_2a2.firstChild);}_2a1=dojo.delegate(_2a1,{content:df});}this.inherited(arguments,[_2a1,_2a2]);},postMixInProperties:function(){this.inherited(arguments);var _2a3=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,_2a3);this.errorMessage=dojo.string.substitute(this.errorMessage,_2a3);},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}this.domNode.title="";if(!dojo.attr(this.domNode,"role")){dijit.setWaiRole(this.domNode,"group");}},_startChildren:function(){this.inherited(arguments);if(this._contentSetter){dojo.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&dojo.isFunction(obj.startup)){obj.startup();obj._started=true;}},this);}},setHref:function(href){dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0");return this.set("href",href);},_setHrefAttr:function(href){this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this.onLoadDeferred.addCallback(dojo.hitch(this,"onLoad"));this._set("href",href);if(this.preload||(this._created&&this._isShown())){this._load();}else{this._hrefChanged=true;}return this.onLoadDeferred;},setContent:function(data){dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.","","2.0");this.set("content",data);},_setContentAttr:function(data){this._set("href","");this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));if(this._created){this.onLoadDeferred.addCallback(dojo.hitch(this,"onLoad"));}this._setContent(data||"");this._isDownloaded=false;return this.onLoadDeferred;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;this.onLoadDeferred=null;},uninitialize:function(){if(this._beingDestroyed){this.cancel();}this.inherited(arguments);},destroyRecursive:function(_2a4){if(this._beingDestroyed){return;}this.inherited(arguments);},_onShow:function(){this.inherited(arguments);if(this.href){if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){return this.refresh();}}},refresh:function(){this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this.onLoadDeferred.addCallback(dojo.hitch(this,"onLoad"));this._load();return this.onLoadDeferred;},_load:function(){this._setContent(this.onDownloadStart(),true);var self=this;var _2a5={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(dojo.isObject(this.ioArgs)){dojo.mixin(_2a5,this.ioArgs);}var hand=(this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_2a5));hand.addCallback(function(html){try{self._isDownloaded=true;self._setContent(html,false);self.onDownloadEnd();}catch(err){self._onError("Content",err);}delete self._xhrDfd;return html;});hand.addErrback(function(err){if(!hand.canceled){self._onError("Download",err);}delete self._xhrDfd;return err;});delete this._hrefChanged;},_onLoadHandler:function(data){this._set("isLoaded",true);try{this.onLoadDeferred.callback(data);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this._set("isLoaded",false);try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(){if(this.isLoaded){this._onUnloadHandler();}var _2a6=this._contentSetter;dojo.forEach(this.getChildren(),function(_2a7){if(_2a7.destroyRecursive){_2a7.destroyRecursive();}});if(_2a6){dojo.forEach(_2a6.parseResults,function(_2a8){if(_2a8.destroyRecursive&&_2a8.domNode&&_2a8.domNode.parentNode==dojo.body()){_2a8.destroyRecursive();}});delete _2a6.parseResults;}dojo.html._emptyNode(this.containerNode);delete this._singleChild;},_setContent:function(cont,_2a9){this.destroyDescendants();var _2aa=this._contentSetter;if(!(_2aa&&_2aa instanceof dojo.html._ContentSetter)){_2aa=this._contentSetter=new dojo.html._ContentSetter({node:this.containerNode,_onError:dojo.hitch(this,this._onError),onContentError:dojo.hitch(this,function(e){var _2ab=this.onContentError(e);try{this.containerNode.innerHTML=_2ab;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _2ac=dojo.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:this.parseOnLoad,parserScope:this.parserScope,startup:false,dir:this.dir,lang:this.lang},this._contentSetterParams||{});_2aa.set((dojo.isObject(cont)&&cont.domNode)?cont.domNode:cont,_2ac);delete this._contentSetterParams;if(this.doLayout){this._checkIfSingleChild();}if(!_2a9){if(this._started){this._startChildren();this._scheduleLayout();}this._onLoadHandler(cont);}},_onError:function(type,err,_2ad){this.onLoadDeferred.errback(err);var _2ae=this["on"+type+"Error"].call(this,err);if(_2ad){console.error(_2ad,err);}else{if(_2ae){this._setContent(_2ae,true);}}},onLoad:function(data){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(_2af){},onDownloadError:function(_2b0){return this.errorMessage;},onDownloadEnd:function(){}});}if(!dojo._hasResource["dijit.TooltipDialog"]){dojo._hasResource["dijit.TooltipDialog"]=true;dojo.provide("dijit.TooltipDialog");dojo.declare("dijit.TooltipDialog",[dijit.layout.ContentPane,dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:dojo.cache("dijit","templates/TooltipDialog.html","<div role=\"presentation\" tabIndex=\"-1\">\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" role=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\"></div>\n</div>\n"),_setTitleAttr:function(_2b1){this.containerNode.title=_2b1;this._set("title",_2b1);},postCreate:function(){this.inherited(arguments);this.connect(this.containerNode,"onkeypress","_onKey");},orient:function(node,_2b2,_2b3){var newC="dijitTooltipAB"+(_2b3.charAt(1)=="L"?"Left":"Right")+" dijitTooltip"+(_2b3.charAt(0)=="T"?"Below":"Above");dojo.replaceClass(this.domNode,newC,this._currentOrientClass||"");this._currentOrientClass=newC;},focus:function(){this._getFocusItems(this.containerNode);dijit.focus(this._firstFocusItem);},onOpen:function(pos){this.orient(this.domNode,pos.aroundCorner,pos.corner);this._onShow();},onClose:function(){this.onHide();},_onKey:function(evt){var node=evt.target;var dk=dojo.keys;if(evt.charOrCode===dk.TAB){this._getFocusItems(this.containerNode);}var _2b4=(this._firstFocusItem==this._lastFocusItem);if(evt.charOrCode==dk.ESCAPE){setTimeout(dojo.hitch(this,"onCancel"),0);dojo.stopEvent(evt);}else{if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===dk.TAB){if(!_2b4){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===dk.TAB&&!evt.shiftKey){if(!_2b4){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{if(evt.charOrCode===dk.TAB){evt.stopPropagation();}}}}}});}if(!dojo._hasResource["dijit.Dialog"]){dojo._hasResource["dijit.Dialog"]=true;dojo.provide("dijit.Dialog");dojo.declare("dijit._DialogBase",[dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/Dialog.html","<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"),baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],"aria-describedby":""}),open:false,duration:dijit.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){var _2b5=dojo.i18n.getLocalization("dijit","common");dojo.mixin(this,_2b5);this.inherited(arguments);},postCreate:function(){dojo.style(this.domNode,{display:"none",position:"absolute"});dojo.body().appendChild(this.domNode);this.inherited(arguments);this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();if(this.autofocus&&dijit._DialogLevelManager.isTop(this)){this._getFocusItems(this.domNode);dijit.focus(this._firstFocusItem);}this.inherited(arguments);},_endDrag:function(e){if(e&&e.node&&e.node===this.domNode){this._relativePosition=dojo.position(e.node);}},_setup:function(){var node=this.domNode;if(this.titleBar&&this.draggable){this._moveable=(dojo.isIE==6)?new dojo.dnd.TimedMoveable(node,{handle:this.titleBar}):new dojo.dnd.Moveable(node,{handle:this.titleBar,timeout:0});this._dndListener=dojo.subscribe("/dnd/move/stop",this,"_endDrag");}else{dojo.addClass(node,"dijitDialogFixed");}this.underlayAttrs={dialogId:this.id,"class":dojo.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" ")};},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(this._singleChildOriginalStyle){this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;}delete this._singleChildOriginalStyle;}else{dojo.style(this.containerNode,{width:"auto",height:"auto"});}var mb=dojo._getMarginSize(this.domNode);var _2b6=dojo.window.getBox();if(mb.w>=_2b6.w||mb.h>=_2b6.h){var w=Math.min(mb.w,Math.floor(_2b6.w*0.75)),h=Math.min(mb.h,Math.floor(_2b6.h*0.75));if(this._singleChild&&this._singleChild.resize){this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;this._singleChild.resize({w:w,h:h});}else{dojo.style(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});}}else{if(this._singleChild&&this._singleChild.resize){this._singleChild.resize();}}},_position:function(){if(!dojo.hasClass(dojo.body(),"dojoMove")){var node=this.domNode,_2b7=dojo.window.getBox(),p=this._relativePosition,bb=p?null:dojo._getBorderBox(node),l=Math.floor(_2b7.l+(p?p.x:(_2b7.w-bb.w)/2)),t=Math.floor(_2b7.t+(p?p.y:(_2b7.h-bb.h)/2));dojo.style(node,{left:l+"px",top:t+"px"});}},_onKey:function(evt){if(evt.charOrCode){var dk=dojo.keys;var node=evt.target;if(evt.charOrCode===dk.TAB){this._getFocusItems(this.domNode);}var _2b8=(this._firstFocusItem==this._lastFocusItem);if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===dk.TAB){if(!_2b8){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===dk.TAB&&!evt.shiftKey){if(!_2b8){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{while(node){if(node==this.domNode||dojo.hasClass(node,"dijitPopup")){if(evt.charOrCode==dk.ESCAPE){this.onCancel();}else{return;}}node=node.parentNode;}if(evt.charOrCode!==dk.TAB){dojo.stopEvent(evt);}else{if(!dojo.isOpera){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._started){this.startup();}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}this._modalconnects.push(dojo.connect(window,"onscroll",this,"layout"));this._modalconnects.push(dojo.connect(window,"onresize",this,function(){var _2b9=dojo.window.getBox();if(!this._oldViewport||_2b9.h!=this._oldViewport.h||_2b9.w!=this._oldViewport.w){this.layout();this._oldViewport=_2b9;}}));this._modalconnects.push(dojo.connect(this.domNode,"onkeypress",this,"_onKey"));dojo.style(this.domNode,{opacity:0,display:""});this._set("open",true);this._onShow();this._size();this._position();var _2ba;this._fadeInDeferred=new dojo.Deferred(dojo.hitch(this,function(){_2ba.stop();delete this._fadeInDeferred;}));_2ba=dojo.fadeIn({node:this.domNode,duration:this.duration,beforeBegin:dojo.hitch(this,function(){dijit._DialogLevelManager.show(this,this.underlayAttrs);}),onEnd:dojo.hitch(this,function(){if(this.autofocus&&dijit._DialogLevelManager.isTop(this)){this._getFocusItems(this.domNode);dijit.focus(this._firstFocusItem);}this._fadeInDeferred.callback(true);delete this._fadeInDeferred;})}).play();return this._fadeInDeferred;},hide:function(){if(!this._alreadyInitialized){return;}if(this._fadeInDeferred){this._fadeInDeferred.cancel();}var _2bb;this._fadeOutDeferred=new dojo.Deferred(dojo.hitch(this,function(){_2bb.stop();delete this._fadeOutDeferred;}));_2bb=dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,function(){this.domNode.style.display="none";dijit._DialogLevelManager.hide(this);this.onHide();this._fadeOutDeferred.callback(true);delete this._fadeOutDeferred;})}).play();if(this._scrollConnected){this._scrollConnected=false;}dojo.forEach(this._modalconnects,dojo.disconnect);this._modalconnects=[];if(this._relativePosition){delete this._relativePosition;}this._set("open",false);return this._fadeOutDeferred;},layout:function(){if(this.domNode.style.display!="none"){if(dijit._underlay){dijit._underlay.layout();}this._position();}},destroy:function(){if(this._fadeInDeferred){this._fadeInDeferred.cancel();}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();}if(this._moveable){this._moveable.destroy();}if(this._dndListener){dojo.unsubscribe(this._dndListener);}dojo.forEach(this._modalconnects,dojo.disconnect);dijit._DialogLevelManager.hide(this);this.inherited(arguments);}});dojo.declare("dijit.Dialog",[dijit.layout.ContentPane,dijit._DialogBase],{});dijit._DialogLevelManager={show:function(_2bc,_2bd){var ds=dijit._dialogStack;ds[ds.length-1].focus=dijit.getFocus(_2bc);var _2be=dijit._underlay;if(!_2be||_2be._destroyed){_2be=dijit._underlay=new dijit.DialogUnderlay(_2bd);}else{_2be.set(_2bc.underlayAttrs);}var _2bf=ds[ds.length-1].dialog?ds[ds.length-1].zIndex+2:950;if(ds.length==1){_2be.show();}dojo.style(dijit._underlay.domNode,"zIndex",_2bf-1);dojo.style(_2bc.domNode,"zIndex",_2bf);ds.push({dialog:_2bc,underlayAttrs:_2bd,zIndex:_2bf});},hide:function(_2c0){var ds=dijit._dialogStack;if(ds[ds.length-1].dialog==_2c0){ds.pop();var pd=ds[ds.length-1];if(ds.length==1){if(!dijit._underlay._destroyed){dijit._underlay.hide();}}else{dojo.style(dijit._underlay.domNode,"zIndex",pd.zIndex-1);dijit._underlay.set(pd.underlayAttrs);}if(_2c0.refocus){var _2c1=pd.focus;if(!_2c1||(pd.dialog&&!dojo.isDescendant(_2c1.node,pd.dialog.domNode))){pd.dialog._getFocusItems(pd.dialog.domNode);_2c1=pd.dialog._firstFocusItem;}try{dijit.focus(_2c1);}catch(e){}}}else{var idx=dojo.indexOf(dojo.map(ds,function(elem){return elem.dialog;}),_2c0);if(idx!=-1){ds.splice(idx,1);}}},isTop:function(_2c2){var ds=dijit._dialogStack;return ds[ds.length-1].dialog==_2c2;}};dijit._dialogStack=[{dialog:null,focus:null,underlayAttrs:null}];}if(!dojo._hasResource["dijit._HasDropDown"]){dojo._hasResource["dijit._HasDropDown"]=true;dojo.provide("dijit._HasDropDown");dojo.declare("dijit._HasDropDown",null,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){if(this.disabled||this.readOnly){return;}dojo.stopEvent(e);this._docHandler=this.connect(dojo.doc,"onmouseup","_onDropDownMouseUp");this.toggleDropDown();},_onDropDownMouseUp:function(e){if(e&&this._docHandler){this.disconnect(this._docHandler);}var _2c3=this.dropDown,_2c4=false;if(e&&this._opened){var c=dojo.position(this._buttonNode,true);if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){var t=e.target;while(t&&!_2c4){if(dojo.hasClass(t,"dijitPopup")){_2c4=true;}else{t=t.parentNode;}}if(_2c4){t=e.target;if(_2c3.onItemClick){var _2c5;while(t&&!(_2c5=dijit.byNode(t))){t=t.parentNode;}if(_2c5&&_2c5.onClick&&_2c5.getParent){_2c5.getParent().onItemClick(_2c5,e);}}return;}}}if(this._opened&&_2c3.focus&&_2c3.autoFocus!==false){window.setTimeout(dojo.hitch(_2c3,"focus"),1);}},_onDropDownClick:function(e){if(this._stopClickEvents){dojo.stopEvent(e);}},buildRendering:function(){this.inherited(arguments);this._buttonNode=this._buttonNode||this.focusNode||this.domNode;this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;var _2c6={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";dojo.addClass(this._arrowWrapperNode||this._buttonNode,"dijit"+_2c6+"ArrowButton");},postCreate:function(){this.inherited(arguments);this.connect(this._buttonNode,"onmousedown","_onDropDownMouseDown");this.connect(this._buttonNode,"onclick","_onDropDownClick");this.connect(this.focusNode,"onkeypress","_onKey");this.connect(this.focusNode,"onkeyup","_onKeyUp");},destroy:function(){if(this.dropDown){if(!this.dropDown._destroyed){this.dropDown.destroyRecursive();}delete this.dropDown;}this.inherited(arguments);},_onKey:function(e){if(this.disabled||this.readOnly){return;}var d=this.dropDown,_2c7=e.target;if(d&&this._opened&&d.handleKey){if(d.handleKey(e)===false){dojo.stopEvent(e);return;}}if(d&&this._opened&&e.charOrCode==dojo.keys.ESCAPE){this.closeDropDown();dojo.stopEvent(e);}else{if(!this._opened&&(e.charOrCode==dojo.keys.DOWN_ARROW||((e.charOrCode==dojo.keys.ENTER||e.charOrCode==" ")&&((_2c7.tagName||"").toLowerCase()!=="input"||(_2c7.type&&_2c7.type.toLowerCase()!=="text"))))){this._toggleOnKeyUp=true;dojo.stopEvent(e);}}},_onKeyUp:function(){if(this._toggleOnKeyUp){delete this._toggleOnKeyUp;this.toggleDropDown();var d=this.dropDown;if(d&&d.focus){setTimeout(dojo.hitch(d,"focus"),1);}}},_onBlur:function(){var _2c8=dijit._curFocus&&this.dropDown&&dojo.isDescendant(dijit._curFocus,this.dropDown.domNode);this.closeDropDown(_2c8);this.inherited(arguments);},isLoaded:function(){return true;},loadDropDown:function(_2c9){_2c9();},toggleDropDown:function(){if(this.disabled||this.readOnly){return;}if(!this._opened){if(!this.isLoaded()){this.loadDropDown(dojo.hitch(this,"openDropDown"));return;}else{this.openDropDown();}}else{this.closeDropDown();}},openDropDown:function(){var _2ca=this.dropDown,_2cb=_2ca.domNode,_2cc=this._aroundNode||this.domNode,self=this;if(!this._preparedNode){this._preparedNode=true;if(_2cb.style.width){this._explicitDDWidth=true;}if(_2cb.style.height){this._explicitDDHeight=true;}}if(this.maxHeight||this.forceWidth||this.autoWidth){var _2cd={display:"",visibility:"hidden"};if(!this._explicitDDWidth){_2cd.width="";}if(!this._explicitDDHeight){_2cd.height="";}dojo.style(_2cb,_2cd);var _2ce=this.maxHeight;if(_2ce==-1){var _2cf=dojo.window.getBox(),_2d0=dojo.position(_2cc,false);_2ce=Math.floor(Math.max(_2d0.y,_2cf.h-(_2d0.y+_2d0.h)));}if(_2ca.startup&&!_2ca._started){_2ca.startup();}dijit.popup.moveOffScreen(_2ca);var mb=dojo._getMarginSize(_2cb);var _2d1=(_2ce&&mb.h>_2ce);dojo.style(_2cb,{overflowX:"hidden",overflowY:_2d1?"auto":"hidden"});if(_2d1){mb.h=_2ce;if("w" in mb){mb.w+=16;}}else{delete mb.h;}if(this.forceWidth){mb.w=_2cc.offsetWidth;}else{if(this.autoWidth){mb.w=Math.max(mb.w,_2cc.offsetWidth);}else{delete mb.w;}}if(dojo.isFunction(_2ca.resize)){_2ca.resize(mb);}else{dojo.marginBox(_2cb,mb);}}var _2d2=dijit.popup.open({parent:this,popup:_2ca,around:_2cc,orient:dijit.getPopupAroundAlignment((this.dropDownPosition&&this.dropDownPosition.length)?this.dropDownPosition:["below"],this.isLeftToRight()),onExecute:function(){self.closeDropDown(true);},onCancel:function(){self.closeDropDown(true);},onClose:function(){dojo.attr(self._popupStateNode,"popupActive",false);dojo.removeClass(self._popupStateNode,"dijitHasDropDownOpen");self._opened=false;}});dojo.attr(this._popupStateNode,"popupActive","true");dojo.addClass(self._popupStateNode,"dijitHasDropDownOpen");this._opened=true;return _2d2;},closeDropDown:function(_2d3){if(this._opened){if(_2d3){this.focus();}dijit.popup.close(this.dropDown);this._opened=false;}}});}if(!dojo._hasResource["dijit.form.Button"]){dojo._hasResource["dijit.form.Button"]=true;dojo.provide("dijit.form.Button");dojo.declare("dijit.form.Button",dijit.form._FormWidget,{label:"",showLabel:true,iconClass:"",type:"button",baseClass:"dijitButton",templateString:dojo.cache("dijit.form","templates/Button.html","<span class=\"dijit dijitReset dijitInline\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">●</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"),attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"valueNode"}),_onClick:function(e){if(this.disabled){return false;}this._clicked();return this.onClick(e);},_onButtonClick:function(e){if(this._onClick(e)===false){e.preventDefault();}else{if(this.type=="submit"&&!(this.valueNode||this.focusNode).form){for(var node=this.domNode;node.parentNode;node=node.parentNode){var _2d4=dijit.byNode(node);if(_2d4&&typeof _2d4._onSubmit=="function"){_2d4._onSubmit(e);break;}}}else{if(this.valueNode){this.valueNode.click();e.preventDefault();}}}},buildRendering:function(){this.inherited(arguments);dojo.setSelectable(this.focusNode,false);},_fillContent:function(_2d5){if(_2d5&&(!this.params||!("label" in this.params))){this.set("label",_2d5.innerHTML);}},_setShowLabelAttr:function(val){if(this.containerNode){dojo.toggleClass(this.containerNode,"dijitDisplayNone",!val);}this._set("showLabel",val);},onClick:function(e){return true;},_clicked:function(e){},setLabel:function(_2d6){dojo.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_2d6);},_setLabelAttr:function(_2d7){this._set("label",_2d7);this.containerNode.innerHTML=_2d7;if(this.showLabel==false&&!this.params.title){this.titleNode.title=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||"");}},_setIconClassAttr:function(val){var _2d8=this.iconClass||"dijitNoIcon",_2d9=val||"dijitNoIcon";dojo.replaceClass(this.iconNode,_2d9,_2d8);this._set("iconClass",val);}});dojo.declare("dijit.form.DropDownButton",[dijit.form.Button,dijit._Container,dijit._HasDropDown],{baseClass:"dijitDropDownButton",templateString:dojo.cache("dijit.form","templates/DropDownButton.html","<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\" dojoAttachPoint=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">▼</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"),_fillContent:function(){if(this.srcNodeRef){var _2da=dojo.query("*",this.srcNodeRef);dijit.form.DropDownButton.superclass._fillContent.call(this,_2da[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}if(!this.dropDown&&this.dropDownContainer){var _2db=dojo.query("[widgetId]",this.dropDownContainer)[0];this.dropDown=dijit.byNode(_2db);delete this.dropDownContainer;}if(this.dropDown){dijit.popup.hide(this.dropDown);}this.inherited(arguments);},isLoaded:function(){var _2dc=this.dropDown;return (!!_2dc&&(!_2dc.href||_2dc.isLoaded));},loadDropDown:function(){var _2dd=this.dropDown;if(!_2dd){return;}if(!this.isLoaded()){var _2de=dojo.connect(_2dd,"onLoad",this,function(){dojo.disconnect(_2de);this.openDropDown();});_2dd.refresh();}else{this.openDropDown();}},isFocusable:function(){return this.inherited(arguments)&&!this._mouseDown;}});dojo.declare("dijit.form.ComboButton",dijit.form.DropDownButton,{templateString:dojo.cache("dijit.form","templates/ComboButton.html","<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' role=\"presentation\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" dojoAttachPoint=\"buttonNode\" dojoAttachEvent=\"ondijitclick:_onButtonClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" role=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\trole=\"button\" aria-haspopup=\"true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">▼</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" dojoAttachPoint=\"valueNode\"\n\t\t/></td></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{id:"",tabIndex:["focusNode","titleNode"],title:"titleNode"}),optionsTitle:"",baseClass:"dijitComboButton",cssStateNodes:{"buttonNode":"dijitButtonNode","titleNode":"dijitButtonContents","_popupStateNode":"dijitDownArrowButton"},_focusedNode:null,_onButtonKeyPress:function(evt){if(evt.charOrCode==dojo.keys[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){dijit.focus(this._popupStateNode);dojo.stopEvent(evt);}},_onArrowKeyPress:function(evt){if(evt.charOrCode==dojo.keys[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){dijit.focus(this.titleNode);dojo.stopEvent(evt);}},focus:function(_2df){if(!this.disabled){dijit.focus(_2df=="start"?this.titleNode:this._popupStateNode);}}});dojo.declare("dijit.form.ToggleButton",dijit.form.Button,{baseClass:"dijitToggleButton",checked:false,attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{checked:"focusNode"}),_clicked:function(evt){this.set("checked",!this.checked);},_setCheckedAttr:function(_2e0,_2e1){this._set("checked",_2e0);dojo.attr(this.focusNode||this.domNode,"checked",_2e0);dijit.setWaiState(this.focusNode||this.domNode,"pressed",_2e0);this._handleOnChange(_2e0,_2e1);},setChecked:function(_2e2){dojo.deprecated("setChecked("+_2e2+") is deprecated. Use set('checked',"+_2e2+") instead.","","2.0");this.set("checked",_2e2);},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);}});}if(!dojo._hasResource["dijit.form.ToggleButton"]){dojo._hasResource["dijit.form.ToggleButton"]=true;dojo.provide("dijit.form.ToggleButton");}if(!dojo._hasResource["dijit.form.CheckBox"]){dojo._hasResource["dijit.form.CheckBox"]=true;dojo.provide("dijit.form.CheckBox");dojo.declare("dijit.form.CheckBox",dijit.form.ToggleButton,{templateString:dojo.cache("dijit.form","templates/CheckBox.html","<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onclick:_onClick\"\n/></div>\n"),baseClass:"dijitCheckBox",type:"checkbox",value:"on",readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{readOnly:"focusNode"}),_setReadOnlyAttr:function(_2e3){this._set("readOnly",_2e3);dojo.attr(this.focusNode,"readOnly",_2e3);dijit.setWaiState(this.focusNode,"readonly",_2e3);},_setValueAttr:function(_2e4,_2e5){if(typeof _2e4=="string"){this._set("value",_2e4);dojo.attr(this.focusNode,"value",_2e4);_2e4=true;}if(this._created){this.set("checked",_2e4,_2e5);}},_getValueAttr:function(){return (this.checked?this.value:false);},_setLabelAttr:undefined,postMixInProperties:function(){if(this.value==""){this.value="on";}this.checkedAttrSetting=this.checked?"checked":"";this.inherited(arguments);},_fillContent:function(_2e6){},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);this._set("value",this.params.value||"on");dojo.attr(this.focusNode,"value",this.value);},_onFocus:function(){if(this.id){dojo.query("label[for='"+this.id+"']").addClass("dijitFocusedLabel");}this.inherited(arguments);},_onBlur:function(){if(this.id){dojo.query("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");}this.inherited(arguments);},_onClick:function(e){if(this.readOnly){dojo.stopEvent(e);return false;}return this.inherited(arguments);}});dojo.declare("dijit.form.RadioButton",dijit.form.CheckBox,{type:"radio",baseClass:"dijitRadio",_setCheckedAttr:function(_2e7){this.inherited(arguments);if(!this._created){return;}if(_2e7){var _2e8=this;dojo.query("INPUT[type=radio]",this.focusNode.form||dojo.doc).forEach(function(_2e9){if(_2e9.name==_2e8.name&&_2e9!=_2e8.focusNode&&_2e9.form==_2e8.focusNode.form){var _2ea=dijit.getEnclosingWidget(_2e9);if(_2ea&&_2ea.checked){_2ea.set("checked",false);}}});}},_clicked:function(e){if(!this.checked){this.set("checked",true);}}});}if(!dojo._hasResource["dijit.form.DropDownButton"]){dojo._hasResource["dijit.form.DropDownButton"]=true;dojo.provide("dijit.form.DropDownButton");}if(!dojo._hasResource["dojo.regexp"]){dojo._hasResource["dojo.regexp"]=true;dojo.provide("dojo.regexp");dojo.getObject("regexp",true,dojo);dojo.regexp.escapeString=function(str,_2eb){return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){if(_2eb&&_2eb.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};dojo.regexp.buildGroupRE=function(arr,re,_2ec){if(!(arr instanceof Array)){return re(arr);}var b=[];for(var i=0;i<arr.length;i++){b.push(re(arr[i]));}return dojo.regexp.group(b.join("|"),_2ec);};dojo.regexp.group=function(_2ed,_2ee){return "("+(_2ee?"?:":"")+_2ed+")";};}if(!dojo._hasResource["dojo.data.util.sorter"]){dojo._hasResource["dojo.data.util.sorter"]=true;dojo.provide("dojo.data.util.sorter");dojo.getObject("data.util.sorter",true,dojo);dojo.data.util.sorter.basicComparator=function(a,b){var r=-1;if(a===null){a=undefined;}if(b===null){b=undefined;}if(a==b){r=0;}else{if(a>b||a==null){r=1;}}return r;};dojo.data.util.sorter.createSortFunction=function(_2ef,_2f0){var _2f1=[];function _2f2(attr,dir,comp,s){return function(_2f3,_2f4){var a=s.getValue(_2f3,attr);var b=s.getValue(_2f4,attr);return dir*comp(a,b);};};var _2f5;var map=_2f0.comparatorMap;var bc=dojo.data.util.sorter.basicComparator;for(var i=0;i<_2ef.length;i++){_2f5=_2ef[i];var attr=_2f5.attribute;if(attr){var dir=(_2f5.descending)?-1:1;var comp=bc;if(map){if(typeof attr!=="string"&&("toString" in attr)){attr=attr.toString();}comp=map[attr]||bc;}_2f1.push(_2f2(attr,dir,comp,_2f0));}}return function(rowA,rowB){var i=0;while(i<_2f1.length){var ret=_2f1[i++](rowA,rowB);if(ret!==0){return ret;}}return 0;};};}if(!dojo._hasResource["dojo.data.util.simpleFetch"]){dojo._hasResource["dojo.data.util.simpleFetch"]=true;dojo.provide("dojo.data.util.simpleFetch");dojo.getObject("data.util.simpleFetch",true,dojo);dojo.data.util.simpleFetch.fetch=function(_2f6){_2f6=_2f6||{};if(!_2f6.store){_2f6.store=this;}var self=this;var _2f7=function(_2f8,_2f9){if(_2f9.onError){var _2fa=_2f9.scope||dojo.global;_2f9.onError.call(_2fa,_2f8,_2f9);}};var _2fb=function(_2fc,_2fd){var _2fe=_2fd.abort||null;var _2ff=false;var _300=_2fd.start?_2fd.start:0;var _301=(_2fd.count&&(_2fd.count!==Infinity))?(_300+_2fd.count):_2fc.length;_2fd.abort=function(){_2ff=true;if(_2fe){_2fe.call(_2fd);}};var _302=_2fd.scope||dojo.global;if(!_2fd.store){_2fd.store=self;}if(_2fd.onBegin){_2fd.onBegin.call(_302,_2fc.length,_2fd);}if(_2fd.sort){_2fc.sort(dojo.data.util.sorter.createSortFunction(_2fd.sort,self));}if(_2fd.onItem){for(var i=_300;(i<_2fc.length)&&(i<_301);++i){var item=_2fc[i];if(!_2ff){_2fd.onItem.call(_302,item,_2fd);}}}if(_2fd.onComplete&&!_2ff){var _303=null;if(!_2fd.onItem){_303=_2fc.slice(_300,_301);}_2fd.onComplete.call(_302,_303,_2fd);}};this._fetchItems(_2f6,_2fb,_2f7);return _2f6;};}if(!dojo._hasResource["dojo.data.util.filter"]){dojo._hasResource["dojo.data.util.filter"]=true;dojo.provide("dojo.data.util.filter");dojo.getObject("data.util.filter",true,dojo);dojo.data.util.filter.patternToRegExp=function(_304,_305){var rxp="^";var c=null;for(var i=0;i<_304.length;i++){c=_304.charAt(i);switch(c){case "\\":rxp+=c;i++;rxp+=_304.charAt(i);break;case "*":rxp+=".*";break;case "?":rxp+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":rxp+="\\";default:rxp+=c;}}rxp+="$";if(_305){return new RegExp(rxp,"mi");}else{return new RegExp(rxp,"m");}};}if(!dojo._hasResource["dijit.form.TextBox"]){dojo._hasResource["dijit.form.TextBox"]=true;dojo.provide("dijit.form.TextBox");dojo.declare("dijit.form.TextBox",dijit.form._FormValueWidget,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",templateString:dojo.cache("dijit.form","templates/TextBox.html","<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"),_singleNodeTemplate:"<input class=\"dijit dijitReset dijitLeft dijitInputField\" dojoAttachPoint=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",_buttonInputDisabled:dojo.isIE?"disabled":"",baseClass:"dijitTextBox",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{maxLength:"focusNode"}),postMixInProperties:function(){var type=this.type.toLowerCase();if(this.templateString&&this.templateString.toLowerCase()=="input"||((type=="hidden"||type=="file")&&this.templateString==dijit.form.TextBox.prototype.templateString)){this.templateString=this._singleNodeTemplate;}this.inherited(arguments);},_setPlaceHolderAttr:function(v){this._set("placeHolder",v);if(!this._phspan){this._attachPoints.push("_phspan");this._phspan=dojo.create("span",{className:"dijitPlaceHolder dijitInputField"},this.textbox,"after");}this._phspan.innerHTML="";this._phspan.appendChild(document.createTextNode(v));this._updatePlaceHolder();},_updatePlaceHolder:function(){if(this._phspan){this._phspan.style.display=(this.placeHolder&&!this._focused&&!this.textbox.value)?"":"none";}},_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints);},_setValueAttr:function(_306,_307,_308){var _309;if(_306!==undefined){_309=this.filter(_306);if(typeof _308!="string"){if(_309!==null&&((typeof _309!="number")||!isNaN(_309))){_308=this.filter(this.format(_309,this.constraints));}else{_308="";}}}if(_308!=null&&_308!=undefined&&((typeof _308)!="number"||!isNaN(_308))&&this.textbox.value!=_308){this.textbox.value=_308;this._set("displayedValue",this.get("displayedValue"));}this._updatePlaceHolder();this.inherited(arguments,[_309,_307]);},displayedValue:"",getDisplayedValue:function(){dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.","","2.0");return this.get("displayedValue");},_getDisplayedValueAttr:function(){return this.filter(this.textbox.value);},setDisplayedValue:function(_30a){dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0");this.set("displayedValue",_30a);},_setDisplayedValueAttr:function(_30b){if(_30b===null||_30b===undefined){_30b="";}else{if(typeof _30b!="string"){_30b=String(_30b);}}this.textbox.value=_30b;this._setValueAttr(this.get("value"),undefined);this._set("displayedValue",this.get("displayedValue"));},format:function(_30c,_30d){return ((_30c==null||_30c==undefined)?"":(_30c.toString?_30c.toString():_30c));},parse:function(_30e,_30f){return _30e;},_refreshState:function(){},_onInput:function(e){if(e&&e.type&&/key/i.test(e.type)&&e.keyCode){switch(e.keyCode){case dojo.keys.SHIFT:case dojo.keys.ALT:case dojo.keys.CTRL:case dojo.keys.TAB:return;}}if(this.intermediateChanges){var _310=this;setTimeout(function(){_310._handleOnChange(_310.get("value"),false);},0);}this._refreshState();this._set("displayedValue",this.get("displayedValue"));},postCreate:function(){if(dojo.isIE){setTimeout(dojo.hitch(this,function(){var s=dojo.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _311=this.domNode.getElementsByTagName("INPUT");if(_311){for(var i=0;i<_311.length;i++){_311[i].style.fontFamily=ff;}}}}}),0);}this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);if(dojo.isMoz||dojo.isOpera){this.connect(this.textbox,"oninput","_onInput");}else{this.connect(this.textbox,"onkeydown","_onInput");this.connect(this.textbox,"onkeyup","_onInput");this.connect(this.textbox,"onpaste","_onInput");this.connect(this.textbox,"oncut","_onInput");}},_blankValue:"",filter:function(val){if(val===null){return this._blankValue;}if(typeof val!="string"){return val;}if(this.trim){val=dojo.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s]+/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1);});}return val;},_setBlurValue:function(){this._setValueAttr(this.get("value"),true);},_onBlur:function(e){if(this.disabled){return;}this._setBlurValue();this.inherited(arguments);if(this._selectOnClickHandle){this.disconnect(this._selectOnClickHandle);}if(this.selectOnClick&&dojo.isMoz){this.textbox.selectionStart=this.textbox.selectionEnd=undefined;}this._updatePlaceHolder();},_onFocus:function(by){if(this.disabled||this.readOnly){return;}if(this.selectOnClick&&by=="mouse"){this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){this.disconnect(this._selectOnClickHandle);var _312;if(dojo.isIE){var _313=dojo.doc.selection.createRange();var _314=_313.parentElement();_312=_314==this.textbox&&_313.text.length==0;}else{_312=this.textbox.selectionStart==this.textbox.selectionEnd;}if(_312){dijit.selectInputText(this.textbox);}});}this._updatePlaceHolder();this.inherited(arguments);this._refreshState();},reset:function(){this.textbox.value="";this.inherited(arguments);}});dijit.selectInputText=function(_315,_316,stop){var _317=dojo.global;var _318=dojo.doc;_315=dojo.byId(_315);if(isNaN(_316)){_316=0;}if(isNaN(stop)){stop=_315.value?_315.value.length:0;}dijit.focus(_315);if(_318["selection"]&&dojo.body()["createTextRange"]){if(_315.createTextRange){var r=_315.createTextRange();r.collapse(true);r.moveStart("character",-99999);r.moveStart("character",_316);r.moveEnd("character",stop-_316);r.select();}}else{if(_317["getSelection"]){if(_315.setSelectionRange){_315.setSelectionRange(_316,stop);}}}};}if(!dojo._hasResource["dijit.Tooltip"]){dojo._hasResource["dijit.Tooltip"]=true;dojo.provide("dijit.Tooltip");dojo.declare("dijit._MasterTooltip",[dijit._Widget,dijit._Templated],{duration:dijit.defaultDuration,templateString:dojo.cache("dijit","templates/Tooltip.html","<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" role='alert'></div\n\t><div class=\"dijitTooltipConnector\" dojoAttachPoint=\"connectorNode\"></div\n></div>\n"),postCreate:function(){dojo.body().appendChild(this.domNode);this.bgIframe=new dijit.BackgroundIframe(this.domNode);this.fadeIn=dojo.fadeIn({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onShow")});this.fadeOut=dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onHide")});},show:function(_319,_31a,_31b,rtl){if(this.aroundNode&&this.aroundNode===_31a){return;}this.domNode.width="auto";if(this.fadeOut.status()=="playing"){this._onDeck=arguments;return;}this.containerNode.innerHTML=_319;var pos=dijit.placeOnScreenAroundElement(this.domNode,_31a,dijit.getPopupAroundAlignment((_31b&&_31b.length)?_31b:dijit.Tooltip.defaultPosition,!rtl),dojo.hitch(this,"orient"));dojo.style(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=_31a;},orient:function(node,_31c,_31d,_31e,_31f){this.connectorNode.style.top="";var _320=_31e.w-this.connectorNode.offsetWidth;node.className="dijitTooltip "+{"BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_31c+"-"+_31d];this.domNode.style.width="auto";var size=dojo.contentBox(this.domNode);var _321=Math.min((Math.max(_320,1)),size.w);var _322=_321<size.w;this.domNode.style.width=_321+"px";if(_322){this.containerNode.style.overflow="auto";var _323=this.containerNode.scrollWidth;this.containerNode.style.overflow="visible";if(_323>_321){_323=_323+dojo.style(this.domNode,"paddingLeft")+dojo.style(this.domNode,"paddingRight");this.domNode.style.width=_323+"px";}}if(_31d.charAt(0)=="B"&&_31c.charAt(0)=="B"){var mb=dojo.marginBox(node);var _324=this.connectorNode.offsetHeight;if(mb.h>_31e.h){var _325=_31e.h-(_31f.h/2)-(_324/2);this.connectorNode.style.top=_325+"px";this.connectorNode.style.bottom="";}else{this.connectorNode.style.bottom=Math.min(Math.max(_31f.h/2-_324/2,0),mb.h-_324)+"px";this.connectorNode.style.top="";}}else{this.connectorNode.style.top="";this.connectorNode.style.bottom="";}return Math.max(0,size.w-_320);},_onShow:function(){if(dojo.isIE){this.domNode.style.filter="";}},hide:function(_326){if(this._onDeck&&this._onDeck[1]==_326){this._onDeck=null;}else{if(this.aroundNode===_326){this.fadeIn.stop();this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play();}else{}}},_onHide:function(){this.domNode.style.cssText="";this.containerNode.innerHTML="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null;}}});dijit.showTooltip=function(_327,_328,_329,rtl){if(!dijit._masterTT){dijit._masterTT=new dijit._MasterTooltip();}return dijit._masterTT.show(_327,_328,_329,rtl);};dijit.hideTooltip=function(_32a){if(!dijit._masterTT){dijit._masterTT=new dijit._MasterTooltip();}return dijit._masterTT.hide(_32a);};dojo.declare("dijit.Tooltip",dijit._Widget,{label:"",showDelay:400,connectId:[],position:[],_setConnectIdAttr:function(_32b){dojo.forEach(this._connections||[],function(_32c){dojo.forEach(_32c,dojo.hitch(this,"disconnect"));},this);var ary=dojo.isArrayLike(_32b)?_32b:(_32b?[_32b]:[]);this._connections=dojo.map(ary,function(id){var node=dojo.byId(id);return node?[this.connect(node,"onmouseenter","_onTargetMouseEnter"),this.connect(node,"onmouseleave","_onTargetMouseLeave"),this.connect(node,"onfocus","_onTargetFocus"),this.connect(node,"onblur","_onTargetBlur")]:[];},this);this._set("connectId",_32b);this._connectIds=ary;},addTarget:function(node){var id=node.id||node;if(dojo.indexOf(this._connectIds,id)==-1){this.set("connectId",this._connectIds.concat(id));}},removeTarget:function(node){var id=node.id||node,idx=dojo.indexOf(this._connectIds,id);if(idx>=0){this._connectIds.splice(idx,1);this.set("connectId",this._connectIds);}},buildRendering:function(){this.inherited(arguments);dojo.addClass(this.domNode,"dijitTooltipData");},startup:function(){this.inherited(arguments);var ids=this.connectId;dojo.forEach(dojo.isArrayLike(ids)?ids:[ids],this.addTarget,this);},_onTargetMouseEnter:function(e){this._onHover(e);},_onTargetMouseLeave:function(e){this._onUnHover(e);},_onTargetFocus:function(e){this._focus=true;this._onHover(e);},_onTargetBlur:function(e){this._focus=false;this._onUnHover(e);},_onHover:function(e){if(!this._showTimer){var _32d=e.target;this._showTimer=setTimeout(dojo.hitch(this,function(){this.open(_32d);}),this.showDelay);}},_onUnHover:function(e){if(this._focus){return;}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}this.close();},open:function(_32e){if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}dijit.showTooltip(this.label||this.domNode.innerHTML,_32e,this.position,!this.isLeftToRight());this._connectNode=_32e;this.onShow(_32e,this.position);},close:function(){if(this._connectNode){dijit.hideTooltip(this._connectNode);delete this._connectNode;this.onHide();}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}},onShow:function(_32f,_330){},onHide:function(){},uninitialize:function(){this.close();this.inherited(arguments);}});dijit.Tooltip.defaultPosition=["after","before"];}if(!dojo._hasResource["dijit.form.ValidationTextBox"]){dojo._hasResource["dijit.form.ValidationTextBox"]=true;dojo.provide("dijit.form.ValidationTextBox");dojo.declare("dijit.form.ValidationTextBox",dijit.form.TextBox,{templateString:dojo.cache("dijit.form","templates/ValidationTextBox.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitValidationTextBox",required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",message:"",constraints:{},regExp:".*",regExpGen:function(_331){return this.regExp;},state:"",tooltipPosition:[],_setValueAttr:function(){this.inherited(arguments);this.validate(this._focused);},validator:function(_332,_333){return (new RegExp("^(?:"+this.regExpGen(_333)+")"+(this.required?"":"?")+"$")).test(_332)&&(!this.required||!this._isEmpty(_332))&&(this._isEmpty(_332)||this.parse(_332,_333)!==undefined);},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0;},isValid:function(_334){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(_335){return (this.trim?/^\s*$/:/^$/).test(_335);},getErrorMessage:function(_336){return (this.required&&this._isEmpty(this.textbox.value))?this.missingMessage:this.invalidMessage;},getPromptMessage:function(_337){return this.promptMessage;},_maskValidSubsetError:true,validate:function(_338){var _339="";var _33a=this.disabled||this.isValid(_338);if(_33a){this._maskValidSubsetError=true;}var _33b=this._isEmpty(this.textbox.value);var _33c=!_33a&&_338&&this._isValidSubset();this._set("state",_33a?"":(((((!this._hasBeenBlurred||_338)&&_33b)||_33c)&&this._maskValidSubsetError)?"Incomplete":"Error"));dijit.setWaiState(this.focusNode,"invalid",_33a?"false":"true");if(this.state=="Error"){this._maskValidSubsetError=_338&&_33c;_339=this.getErrorMessage(_338);}else{if(this.state=="Incomplete"){_339=this.getPromptMessage(_338);this._maskValidSubsetError=!this._hasBeenBlurred||_338;}else{if(_33b){_339=this.getPromptMessage(_338);}}}this.set("message",_339);return _33a;},displayMessage:function(_33d){dijit.hideTooltip(this.domNode);if(_33d&&this._focused){dijit.showTooltip(_33d,this.domNode,this.tooltipPosition,!this.isLeftToRight());}},_refreshState:function(){this.validate(this._focused);this.inherited(arguments);},constructor:function(){this.constraints={};},_setConstraintsAttr:function(_33e){if(!_33e.locale&&this.lang){_33e.locale=this.lang;}this._set("constraints",_33e);this._computePartialRE();},_computePartialRE:function(){var p=this.regExpGen(this.constraints);this.regExp=p;var _33f="";if(p!=".*"){this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case "{":case "+":case "?":case "*":case "^":case "$":case "|":case "(":_33f+=re;break;case ")":_33f+="|$)";break;default:_33f+="(?:"+re+"|$)";break;}});}try{"".search(_33f);}catch(e){_33f=this.regExp;console.warn("RegExp error in "+this.declaredClass+": "+this.regExp);}this._partialre="^(?:"+_33f+")$";},postMixInProperties:function(){this.inherited(arguments);this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang);if(this.invalidMessage=="$_unset_$"){this.invalidMessage=this.messages.invalidMessage;}if(!this.invalidMessage){this.invalidMessage=this.promptMessage;}if(this.missingMessage=="$_unset_$"){this.missingMessage=this.messages.missingMessage;}if(!this.missingMessage){this.missingMessage=this.invalidMessage;}this._setConstraintsAttr(this.constraints);},_setDisabledAttr:function(_340){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_341){this._set("required",_341);dijit.setWaiState(this.focusNode,"required",_341);this._refreshState();},_setMessageAttr:function(_342){this._set("message",_342);this.displayMessage(_342);},reset:function(){this._maskValidSubsetError=true;this.inherited(arguments);},_onBlur:function(){this.displayMessage("");this.inherited(arguments);}});dojo.declare("dijit.form.MappedTextBox",dijit.form.ValidationTextBox,{postMixInProperties:function(){this.inherited(arguments);this.nameAttrSetting="";},serialize:function(val,_343){return val.toString?val.toString():"";},toString:function(){var val=this.filter(this.get("value"));return val!=null?(typeof val=="string"?val:this.serialize(val,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.valueNode=dojo.place("<input type='hidden'"+(this.name?" name='"+this.name.replace(/'/g,""")+"'":"")+"/>",this.textbox,"after");},reset:function(){this.valueNode.value="";this.inherited(arguments);}});dojo.declare("dijit.form.RangeBoundTextBox",dijit.form.MappedTextBox,{rangeMessage:"",rangeCheck:function(_344,_345){return ("min" in _345?(this.compare(_344,_345.min)>=0):true)&&("max" in _345?(this.compare(_344,_345.max)<=0):true);},isInRange:function(_346){return this.rangeCheck(this.get("value"),this.constraints);},_isDefinitelyOutOfRange:function(){var val=this.get("value");var _347=false;var _348=false;if("min" in this.constraints){var min=this.constraints.min;min=this.compare(val,((typeof min=="number")&&min>=0&&val!=0)?0:min);_347=(typeof min=="number")&&min<0;}if("max" in this.constraints){var max=this.constraints.max;max=this.compare(val,((typeof max!="number")||max>0)?max:0);_348=(typeof max=="number")&&max>0;}return _347||_348;},_isValidSubset:function(){return this.inherited(arguments)&&!this._isDefinitelyOutOfRange();},isValid:function(_349){return this.inherited(arguments)&&((this._isEmpty(this.textbox.value)&&!this.required)||this.isInRange(_349));},getErrorMessage:function(_34a){var v=this.get("value");if(v!==null&&v!==""&&v!==undefined&&(typeof v!="number"||!isNaN(v))&&!this.isInRange(_34a)){return this.rangeMessage;}return this.inherited(arguments);},postMixInProperties:function(){this.inherited(arguments);if(!this.rangeMessage){this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang);this.rangeMessage=this.messages.rangeMessage;}},_setConstraintsAttr:function(_34b){this.inherited(arguments);if(this.focusNode){if(this.constraints.min!==undefined){dijit.setWaiState(this.focusNode,"valuemin",this.constraints.min);}else{dijit.removeWaiState(this.focusNode,"valuemin");}if(this.constraints.max!==undefined){dijit.setWaiState(this.focusNode,"valuemax",this.constraints.max);}else{dijit.removeWaiState(this.focusNode,"valuemax");}}},_setValueAttr:function(_34c,_34d){dijit.setWaiState(this.focusNode,"valuenow",_34c);this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.ComboBox"]){dojo._hasResource["dijit.form.ComboBox"]=true;dojo.provide("dijit.form.ComboBox");dojo.declare("dijit.form.ComboBoxMixin",dijit._HasDropDown,{item:null,pageSize:Infinity,store:null,fetchProperties:{},query:{},autoComplete:true,highlightMatch:"first",searchDelay:100,searchAttr:"name",labelAttr:"",labelType:"text",queryExpr:"${0}*",ignoreCase:true,hasDownArrow:true,templateString:dojo.cache("dijit.form","templates/DropDownBox.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdojoAttachPoint=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"▼ \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitComboBox",dropDownClass:"dijit.form._ComboBoxMenu",cssStateNodes:{"_buttonNode":"dijitDownArrowButton"},maxHeight:-1,_stopClickEvents:false,_getCaretPos:function(_34e){var pos=0;if(typeof (_34e.selectionStart)=="number"){pos=_34e.selectionStart;}else{if(dojo.isIE){var tr=dojo.doc.selection.createRange().duplicate();var ntr=_34e.createTextRange();tr.move("character",0);ntr.move("character",0);try{ntr.setEndPoint("EndToEnd",tr);pos=String(ntr.text).replace(/\r/g,"").length;}catch(e){}}}return pos;},_setCaretPos:function(_34f,_350){_350=parseInt(_350);dijit.selectInputText(_34f,_350,_350);},_setDisabledAttr:function(_351){this.inherited(arguments);dijit.setWaiState(this.domNode,"disabled",_351);},_abortQuery:function(){if(this.searchTimer){clearTimeout(this.searchTimer);this.searchTimer=null;}if(this._fetchHandle){if(this._fetchHandle.abort){this._fetchHandle.abort();}this._fetchHandle=null;}},_onInput:function(evt){if(!this.searchTimer&&(evt.type=="paste"||evt.type=="input")&&this._lastInput!=this.textbox.value){this.searchTimer=setTimeout(dojo.hitch(this,function(){this._onKey({charOrCode:229});}),100);}this.inherited(arguments);},_onKey:function(evt){var key=evt.charOrCode;if(evt.altKey||((evt.ctrlKey||evt.metaKey)&&(key!="x"&&key!="v"))||key==dojo.keys.SHIFT){return;}var _352=false;var pw=this.dropDown;var dk=dojo.keys;var _353=null;this._prev_key_backspace=false;this._abortQuery();this.inherited(arguments);if(this._opened){_353=pw.getHighlightedOption();}switch(key){case dk.PAGE_DOWN:case dk.DOWN_ARROW:case dk.PAGE_UP:case dk.UP_ARROW:if(this._opened){this._announceOption(_353);}dojo.stopEvent(evt);break;case dk.ENTER:if(_353){if(_353==pw.nextButton){this._nextSearch(1);dojo.stopEvent(evt);break;}else{if(_353==pw.previousButton){this._nextSearch(-1);dojo.stopEvent(evt);break;}}}else{this._setBlurValue();this._setCaretPos(this.focusNode,this.focusNode.value.length);}if(this._opened||this._fetchHandle){evt.preventDefault();}case dk.TAB:var _354=this.get("displayedValue");if(pw&&(_354==pw._messages["previousMessage"]||_354==pw._messages["nextMessage"])){break;}if(_353){this._selectOption();}if(this._opened){this._lastQuery=null;this.closeDropDown();}break;case " ":if(_353){dojo.stopEvent(evt);this._selectOption();this.closeDropDown();}else{_352=true;}break;case dk.DELETE:case dk.BACKSPACE:this._prev_key_backspace=true;_352=true;break;default:_352=typeof key=="string"||key==229;}if(_352){this.item=undefined;this.searchTimer=setTimeout(dojo.hitch(this,"_startSearchFromInput"),1);}},_autoCompleteText:function(text){var fn=this.focusNode;dijit.selectInputText(fn,fn.value.length);var _355=this.ignoreCase?"toLowerCase":"substr";if(text[_355](0).indexOf(this.focusNode.value[_355](0))==0){var cpos=this._getCaretPos(fn);if((cpos+1)>fn.value.length){fn.value=text;dijit.selectInputText(fn,cpos);}}else{fn.value=text;dijit.selectInputText(fn);}},_openResultList:function(_356,_357){this._fetchHandle=null;if(this.disabled||this.readOnly||(_357.query[this.searchAttr]!=this._lastQuery)){return;}var _358=this.dropDown._highlighted_option&&dojo.hasClass(this.dropDown._highlighted_option,"dijitMenuItemSelected");this.dropDown.clearResultList();if(!_356.length&&!this._maxOptions){this.closeDropDown();return;}_357._maxOptions=this._maxOptions;var _359=this.dropDown.createOptions(_356,_357,dojo.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if(_357.direction){if(1==_357.direction){this.dropDown.highlightFirstOption();}else{if(-1==_357.direction){this.dropDown.highlightLastOption();}}if(_358){this._announceOption(this.dropDown.getHighlightedOption());}}else{if(this.autoComplete&&!this._prev_key_backspace&&!/^[*]+$/.test(_357.query[this.searchAttr])){this._announceOption(_359[1]);}}},_showResultList:function(){this.closeDropDown(true);this.displayMessage("");this.openDropDown();dijit.setWaiState(this.domNode,"expanded","true");},loadDropDown:function(_35a){this._startSearchAll();},isLoaded:function(){return false;},closeDropDown:function(){this._abortQuery();if(this._opened){this.inherited(arguments);dijit.setWaiState(this.domNode,"expanded","false");dijit.removeWaiState(this.focusNode,"activedescendant");}},_setBlurValue:function(){var _35b=this.get("displayedValue");var pw=this.dropDown;if(pw&&(_35b==pw._messages["previousMessage"]||_35b==pw._messages["nextMessage"])){this._setValueAttr(this._lastValueReported,true);}else{if(typeof this.item=="undefined"){this.item=null;this.set("displayedValue",_35b);}else{if(this.value!=this._lastValueReported){dijit.form._FormValueWidget.prototype._setValueAttr.call(this,this.value,true);}this._refreshState();}}},_onBlur:function(){this.closeDropDown();this.inherited(arguments);},_setItemAttr:function(item,_35c,_35d){if(!_35d){_35d=this.store.getValue(item,this.searchAttr);}var _35e=this._getValueField()!=this.searchAttr?this.store.getIdentity(item):_35d;this._set("item",item);dijit.form.ComboBox.superclass._setValueAttr.call(this,_35e,_35c,_35d);},_announceOption:function(node){if(!node){return;}var _35f;if(node==this.dropDown.nextButton||node==this.dropDown.previousButton){_35f=node.innerHTML;this.item=undefined;this.value="";}else{_35f=this.store.getValue(node.item,this.searchAttr).toString();this.set("item",node.item,false,_35f);}this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length);dijit.setWaiState(this.focusNode,"activedescendant",dojo.attr(node,"id"));this._autoCompleteText(_35f);},_selectOption:function(evt){if(evt){this._announceOption(evt.target);}this.closeDropDown();this._setCaretPos(this.focusNode,this.focusNode.value.length);dijit.form._FormValueWidget.prototype._setValueAttr.call(this,this.value,true);},_startSearchAll:function(){this._startSearch("");},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"));},_getQueryString:function(text){return dojo.string.substitute(this.queryExpr,[text]);},_startSearch:function(key){if(!this.dropDown){var _360=this.id+"_popup",_361=dojo.getObject(this.dropDownClass,false);this.dropDown=new _361({onChange:dojo.hitch(this,this._selectOption),id:_360,dir:this.dir});dijit.removeWaiState(this.focusNode,"activedescendant");dijit.setWaiState(this.textbox,"owns",_360);}var _362=dojo.clone(this.query);this._lastInput=key;this._lastQuery=_362[this.searchAttr]=this._getQueryString(key);this.searchTimer=setTimeout(dojo.hitch(this,function(_363,_364){this.searchTimer=null;var _365={queryOptions:{ignoreCase:this.ignoreCase,deep:true},query:_363,onBegin:dojo.hitch(this,"_setMaxOptions"),onComplete:dojo.hitch(this,"_openResultList"),onError:function(_366){_364._fetchHandle=null;console.error("dijit.form.ComboBox: "+_366);_364.closeDropDown();},start:0,count:this.pageSize};dojo.mixin(_365,_364.fetchProperties);this._fetchHandle=_364.store.fetch(_365);var _367=function(_368,_369){_368.start+=_368.count*_369;_368.direction=_369;this._fetchHandle=this.store.fetch(_368);this.focus();};this._nextSearch=this.dropDown.onPage=dojo.hitch(this,_367,this._fetchHandle);},_362,this),this.searchDelay);},_setMaxOptions:function(size,_36a){this._maxOptions=size;},_getValueField:function(){return this.searchAttr;},constructor:function(){this.query={};this.fetchProperties={};},postMixInProperties:function(){if(!this.store){var _36b=this.srcNodeRef;this.store=new dijit.form._ComboBoxDataStore(_36b);if(!("value" in this.params)){var item=(this.item=this.store.fetchSelectedItem());if(item){var _36c=this._getValueField();this.value=this.store.getValue(item,_36c);}}}this.inherited(arguments);},postCreate:function(){var _36d=dojo.query("label[for=\""+this.id+"\"]");if(_36d.length){_36d[0].id=(this.id+"_label");dijit.setWaiState(this.domNode,"labelledby",_36d[0].id);}this.inherited(arguments);},_setHasDownArrowAttr:function(val){this.hasDownArrow=val;this._buttonNode.style.display=val?"":"none";},_getMenuLabelFromItem:function(item){var _36e=this.labelFunc(item,this.store),_36f=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){_36e=this.doHighlight(_36e,this._escapeHtml(this._lastInput));_36f="html";}return {html:_36f=="html",label:_36e};},doHighlight:function(_370,find){var _371=(this.ignoreCase?"i":"")+(this.highlightMatch=="all"?"g":""),i=this.queryExpr.indexOf("${0}");find=dojo.regexp.escapeString(find);return this._escapeHtml(_370).replace(new RegExp((i==0?"^":"")+"("+find+")"+(i==(this.queryExpr.length-4)?"$":""),_371),"<span class=\"dijitComboBoxHighlightMatch\">$1</span>");},_escapeHtml:function(str){str=String(str).replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""");return str;},reset:function(){this.item=null;this.inherited(arguments);},labelFunc:function(item,_372){return _372.getValue(item,this.labelAttr||this.searchAttr).toString();}});dojo.declare("dijit.form._ComboBoxMenu",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:"<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' style='overflow: \"auto\"; overflow-x: \"hidden\";'>"+"<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton' role='option'></li>"+"<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton' role='option'></li>"+"</ul>",_messages:null,baseClass:"dijitComboBoxMenu",postMixInProperties:function(){this.inherited(arguments);this._messages=dojo.i18n.getLocalization("dijit.form","ComboBox",this.lang);},buildRendering:function(){this.inherited(arguments);this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];},_setValueAttr:function(_373){this.value=_373;this.onChange(_373);},onChange:function(_374){},onPage:function(_375){},onClose:function(){this._blurOptionNode();},_createOption:function(item,_376){var _377=dojo.create("li",{"class":"dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl"),role:"option"});var _378=_376(item);if(_378.html){_377.innerHTML=_378.label;}else{_377.appendChild(dojo.doc.createTextNode(_378.label));}if(_377.innerHTML==""){_377.innerHTML=" ";}_377.item=item;return _377;},createOptions:function(_379,_37a,_37b){this.previousButton.style.display=(_37a.start==0)?"none":"";dojo.attr(this.previousButton,"id",this.id+"_prev");dojo.forEach(_379,function(item,i){var _37c=this._createOption(item,_37b);dojo.attr(_37c,"id",this.id+i);this.domNode.insertBefore(_37c,this.nextButton);},this);var _37d=false;if(_37a._maxOptions&&_37a._maxOptions!=-1){if((_37a.start+_37a.count)<_37a._maxOptions){_37d=true;}else{if((_37a.start+_37a.count)>_37a._maxOptions&&_37a.count==_379.length){_37d=true;}}}else{if(_37a.count==_379.length){_37d=true;}}this.nextButton.style.display=_37d?"":"none";dojo.attr(this.nextButton,"id",this.id+"_next");return this.domNode.childNodes;},clearResultList:function(){while(this.domNode.childNodes.length>2){this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length-2]);}this._blurOptionNode();},_onMouseDown:function(evt){dojo.stopEvent(evt);},_onMouseUp:function(evt){if(evt.target===this.domNode||!this._highlighted_option){return;}else{if(evt.target==this.previousButton){this._blurOptionNode();this.onPage(-1);}else{if(evt.target==this.nextButton){this._blurOptionNode();this.onPage(1);}else{var tgt=evt.target;while(!tgt.item){tgt=tgt.parentNode;}this._setValueAttr({target:tgt},true);}}}},_onMouseOver:function(evt){if(evt.target===this.domNode){return;}var tgt=evt.target;if(!(tgt==this.previousButton||tgt==this.nextButton)){while(!tgt.item){tgt=tgt.parentNode;}}this._focusOptionNode(tgt);},_onMouseOut:function(evt){if(evt.target===this.domNode){return;}this._blurOptionNode();},_focusOptionNode:function(node){if(this._highlighted_option!=node){this._blurOptionNode();this._highlighted_option=node;dojo.addClass(this._highlighted_option,"dijitMenuItemSelected");}},_blurOptionNode:function(){if(this._highlighted_option){dojo.removeClass(this._highlighted_option,"dijitMenuItemSelected");this._highlighted_option=null;}},_highlightNextOption:function(){if(!this.getHighlightedOption()){var fc=this.domNode.firstChild;this._focusOptionNode(fc.style.display=="none"?fc.nextSibling:fc);}else{var ns=this._highlighted_option.nextSibling;if(ns&&ns.style.display!="none"){this._focusOptionNode(ns);}else{this.highlightFirstOption();}}dojo.window.scrollIntoView(this._highlighted_option);},highlightFirstOption:function(){var _37e=this.domNode.firstChild;var _37f=_37e.nextSibling;this._focusOptionNode(_37f.style.display=="none"?_37e:_37f);dojo.window.scrollIntoView(this._highlighted_option);},highlightLastOption:function(){this._focusOptionNode(this.domNode.lastChild.previousSibling);dojo.window.scrollIntoView(this._highlighted_option);},_highlightPrevOption:function(){if(!this.getHighlightedOption()){var lc=this.domNode.lastChild;this._focusOptionNode(lc.style.display=="none"?lc.previousSibling:lc);}else{var ps=this._highlighted_option.previousSibling;if(ps&&ps.style.display!="none"){this._focusOptionNode(ps);}else{this.highlightLastOption();}}dojo.window.scrollIntoView(this._highlighted_option);},_page:function(up){var _380=0;var _381=this.domNode.scrollTop;var _382=dojo.style(this.domNode,"height");if(!this.getHighlightedOption()){this._highlightNextOption();}while(_380<_382){if(up){if(!this.getHighlightedOption().previousSibling||this._highlighted_option.previousSibling.style.display=="none"){break;}this._highlightPrevOption();}else{if(!this.getHighlightedOption().nextSibling||this._highlighted_option.nextSibling.style.display=="none"){break;}this._highlightNextOption();}var _383=this.domNode.scrollTop;_380+=(_383-_381)*(up?-1:1);_381=_383;}},pageUp:function(){this._page(true);},pageDown:function(){this._page(false);},getHighlightedOption:function(){var ho=this._highlighted_option;return (ho&&ho.parentNode)?ho:null;},handleKey:function(evt){switch(evt.charOrCode){case dojo.keys.DOWN_ARROW:this._highlightNextOption();return false;case dojo.keys.PAGE_DOWN:this.pageDown();return false;case dojo.keys.UP_ARROW:this._highlightPrevOption();return false;case dojo.keys.PAGE_UP:this.pageUp();return false;default:return true;}}});dojo.declare("dijit.form.ComboBox",[dijit.form.ValidationTextBox,dijit.form.ComboBoxMixin],{_setValueAttr:function(_384,_385,_386){this._set("item",null);if(!_384){_384="";}dijit.form.ValidationTextBox.prototype._setValueAttr.call(this,_384,_385,_386);}});dojo.declare("dijit.form._ComboBoxDataStore",null,{constructor:function(root){this.root=root;if(root.tagName!="SELECT"&&root.firstChild){root=dojo.query("select",root);if(root.length>0){root=root[0];}else{this.root.innerHTML="<SELECT>"+this.root.innerHTML+"</SELECT>";root=this.root.firstChild;}this.root=root;}dojo.query("> option",root).forEach(function(node){node.innerHTML=dojo.trim(node.innerHTML);});},getValue:function(item,_387,_388){return (_387=="value")?item.value:(item.innerText||item.textContent||"");},isItemLoaded:function(_389){return true;},getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Identity":true};},_fetchItems:function(args,_38a,_38b){if(!args.query){args.query={};}if(!args.query.name){args.query.name="";}if(!args.queryOptions){args.queryOptions={};}var _38c=dojo.data.util.filter.patternToRegExp(args.query.name,args.queryOptions.ignoreCase),_38d=dojo.query("> option",this.root).filter(function(_38e){return (_38e.innerText||_38e.textContent||"").match(_38c);});if(args.sort){_38d.sort(dojo.data.util.sorter.createSortFunction(args.sort,this));}_38a(_38d,args);},close:function(_38f){return;},getLabel:function(item){return item.innerHTML;},getIdentity:function(item){return dojo.attr(item,"value");},fetchItemByIdentity:function(args){var item=dojo.query("> option[value='"+args.identity+"']",this.root)[0];args.onItem(item);},fetchSelectedItem:function(){var root=this.root,si=root.selectedIndex;return typeof si=="number"?dojo.query("> option:nth-child("+(si!=-1?si+1:1)+")",root)[0]:null;}});dojo.extend(dijit.form._ComboBoxDataStore,dojo.data.util.simpleFetch);}if(!dojo._hasResource["dijit.form.FilteringSelect"]){dojo._hasResource["dijit.form.FilteringSelect"]=true;dojo.provide("dijit.form.FilteringSelect");dojo.declare("dijit.form.FilteringSelect",[dijit.form.MappedTextBox,dijit.form.ComboBoxMixin],{required:true,_lastDisplayedValue:"",_isValidSubset:function(){return this._opened;},isValid:function(){return this.item||(!this.required&&this.get("displayedValue")=="");},_refreshState:function(){if(!this.searchTimer){this.inherited(arguments);}},_callbackSetLabel:function(_390,_391,_392){if((_391&&_391.query[this.searchAttr]!=this._lastQuery)||(!_391&&_390.length&&this.store.getIdentity(_390[0])!=this._lastQuery)){return;}if(!_390.length){this.valueNode.value="";dijit.form.TextBox.superclass._setValueAttr.call(this,"",_392||(_392===undefined&&!this._focused));this._set("item",null);this.validate(this._focused);}else{this.set("item",_390[0],_392);}},_openResultList:function(_393,_394){if(_394.query[this.searchAttr]!=this._lastQuery){return;}dijit.form.ComboBoxMixin.prototype._openResultList.apply(this,arguments);if(this.item===undefined){this.validate(true);}},_getValueAttr:function(){return this.valueNode.value;},_getValueField:function(){return "value";},_setValueAttr:function(_395,_396){if(!this._onChangeActive){_396=null;}this._lastQuery=_395;if(_395===null||_395===""){this._setDisplayedValueAttr("",_396);return;}var self=this;this.store.fetchItemByIdentity({identity:_395,onItem:function(item){self._callbackSetLabel(item?[item]:[],undefined,_396);}});},_setItemAttr:function(item,_397,_398){this.inherited(arguments);this.valueNode.value=this.value;this._lastDisplayedValue=this.textbox.value;},_getDisplayQueryString:function(text){return text.replace(/([\\\*\?])/g,"\\$1");},_setDisplayedValueAttr:function(_399,_39a){if(_399==null){_399="";}if(!this._created){if(!("displayedValue" in this.params)){return;}_39a=false;}if(this.store){this.closeDropDown();var _39b=dojo.clone(this.query);this._lastQuery=_39b[this.searchAttr]=this._getDisplayQueryString(_399);this.textbox.value=_399;this._lastDisplayedValue=_399;this._set("displayedValue",_399);var _39c=this;var _39d={query:_39b,queryOptions:{ignoreCase:this.ignoreCase,deep:true},onComplete:function(_39e,_39f){_39c._fetchHandle=null;dojo.hitch(_39c,"_callbackSetLabel")(_39e,_39f,_39a);},onError:function(_3a0){_39c._fetchHandle=null;console.error("dijit.form.FilteringSelect: "+_3a0);dojo.hitch(_39c,"_callbackSetLabel")([],undefined,false);}};dojo.mixin(_39d,this.fetchProperties);this._fetchHandle=this.store.fetch(_39d);}},undo:function(){this.set("displayedValue",this._lastDisplayedValue);}});}if(!dojo._hasResource["dijit.form.Form"]){dojo._hasResource["dijit.form.Form"]=true;dojo.provide("dijit.form.Form");dojo.declare("dijit.form.Form",[dijit._Widget,dijit._Templated,dijit.form._FormMixin,dijit.layout._ContentPaneResizeMixin],{name:"",action:"",method:"",encType:"","accept-charset":"",accept:"",target:"",templateString:"<form dojoAttachPoint='containerNode' dojoAttachEvent='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{action:"",method:"",encType:"","accept-charset":"",accept:"",target:""}),postMixInProperties:function(){this.nameAttrSetting=this.name?("name='"+this.name+"'"):"";this.inherited(arguments);},execute:function(_3a1){},onExecute:function(){},_setEncTypeAttr:function(_3a2){this.encType=_3a2;dojo.attr(this.domNode,"encType",_3a2);if(dojo.isIE){this.domNode.encoding=_3a2;}},postCreate:function(){if(dojo.isIE&&this.srcNodeRef&&this.srcNodeRef.attributes){var item=this.srcNodeRef.attributes.getNamedItem("encType");if(item&&!item.specified&&(typeof item.value=="string")){this.set("encType",item.value);}}this.inherited(arguments);},reset:function(e){var faux={returnValue:true,preventDefault:function(){this.returnValue=false;},stopPropagation:function(){},currentTarget:e?e.target:this.domNode,target:e?e.target:this.domNode};if(!(this.onReset(faux)===false)&&faux.returnValue){this.inherited(arguments,[]);}},onReset:function(e){return true;},_onReset:function(e){this.reset(e);dojo.stopEvent(e);return false;},_onSubmit:function(e){var fp=dijit.form.Form.prototype;if(this.execute!=fp.execute||this.onExecute!=fp.onExecute){dojo.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0");this.onExecute();this.execute(this.getValues());}if(this.onSubmit(e)===false){dojo.stopEvent(e);}},onSubmit:function(e){return this.isValid();},submit:function(){if(!(this.onSubmit()===false)){this.containerNode.submit();}}});}if(!dojo._hasResource["dijit.form.RadioButton"]){dojo._hasResource["dijit.form.RadioButton"]=true;dojo.provide("dijit.form.RadioButton");}if(!dojo._hasResource["dijit.form._FormSelectWidget"]){dojo._hasResource["dijit.form._FormSelectWidget"]=true;dojo.provide("dijit.form._FormSelectWidget");dojo.declare("dijit.form._FormSelectWidget",dijit.form._FormValueWidget,{multiple:false,options:null,store:null,query:null,queryOptions:null,onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,getOptions:function(_3a3){var _3a4=_3a3,opts=this.options||[],l=opts.length;if(_3a4===undefined){return opts;}if(dojo.isArray(_3a4)){return dojo.map(_3a4,"return this.getOptions(item);",this);}if(dojo.isObject(_3a3)){if(!dojo.some(this.options,function(o,idx){if(o===_3a4||(o.value&&o.value===_3a4.value)){_3a4=idx;return true;}return false;})){_3a4=-1;}}if(typeof _3a4=="string"){for(var i=0;i<l;i++){if(opts[i].value===_3a4){_3a4=i;break;}}}if(typeof _3a4=="number"&&_3a4>=0&&_3a4<l){return this.options[_3a4];}return null;},addOption:function(_3a5){if(!dojo.isArray(_3a5)){_3a5=[_3a5];}dojo.forEach(_3a5,function(i){if(i&&dojo.isObject(i)){this.options.push(i);}},this);this._loadChildren();},removeOption:function(_3a6){if(!dojo.isArray(_3a6)){_3a6=[_3a6];}var _3a7=this.getOptions(_3a6);dojo.forEach(_3a7,function(i){if(i){this.options=dojo.filter(this.options,function(node,idx){return (node.value!==i.value||node.label!==i.label);});this._removeOptionItem(i);}},this);this._loadChildren();},updateOption:function(_3a8){if(!dojo.isArray(_3a8)){_3a8=[_3a8];}dojo.forEach(_3a8,function(i){var _3a9=this.getOptions(i),k;if(_3a9){for(k in i){_3a9[k]=i[k];}}},this);this._loadChildren();},setStore:function(_3aa,_3ab,_3ac){var _3ad=this.store;_3ac=_3ac||{};if(_3ad!==_3aa){dojo.forEach(this._notifyConnections||[],dojo.disconnect);delete this._notifyConnections;if(_3aa&&_3aa.getFeatures()["dojo.data.api.Notification"]){this._notifyConnections=[dojo.connect(_3aa,"onNew",this,"_onNewItem"),dojo.connect(_3aa,"onDelete",this,"_onDeleteItem"),dojo.connect(_3aa,"onSet",this,"_onSetItem")];}this._set("store",_3aa);}this._onChangeActive=false;if(this.options&&this.options.length){this.removeOption(this.options);}if(_3aa){this._loadingStore=true;_3aa.fetch(dojo.delegate(_3ac,{onComplete:function(_3ae,opts){if(this.sortByLabel&&!_3ac.sort&&_3ae.length){_3ae.sort(dojo.data.util.sorter.createSortFunction([{attribute:_3aa.getLabelAttributes(_3ae[0])[0]}],_3aa));}if(_3ac.onFetch){_3ae=_3ac.onFetch.call(this,_3ae,opts);}dojo.forEach(_3ae,function(i){this._addOptionForItem(i);},this);this._loadingStore=false;this.set("value","_pendingValue" in this?this._pendingValue:_3ab);delete this._pendingValue;if(!this.loadChildrenOnOpen){this._loadChildren();}else{this._pseudoLoadChildren(_3ae);}this._fetchedWith=opts;this._lastValueReported=this.multiple?[]:null;this._onChangeActive=true;this.onSetStore();this._handleOnChange(this.value);},scope:this}));}else{delete this._fetchedWith;}return _3ad;},_setValueAttr:function(_3af,_3b0){if(this._loadingStore){this._pendingValue=_3af;return;}var opts=this.getOptions()||[];if(!dojo.isArray(_3af)){_3af=[_3af];}dojo.forEach(_3af,function(i,idx){if(!dojo.isObject(i)){i=i+"";}if(typeof i==="string"){_3af[idx]=dojo.filter(opts,function(node){return node.value===i;})[0]||{value:"",label:""};}},this);_3af=dojo.filter(_3af,function(i){return i&&i.value;});if(!this.multiple&&(!_3af[0]||!_3af[0].value)&&opts.length){_3af[0]=opts[0];}dojo.forEach(opts,function(i){i.selected=dojo.some(_3af,function(v){return v.value===i.value;});});var val=dojo.map(_3af,function(i){return i.value;}),disp=dojo.map(_3af,function(i){return i.label;});this._set("value",this.multiple?val:val[0]);this._setDisplay(this.multiple?disp:disp[0]);this._updateSelection();this._handleOnChange(this.value,_3b0);},_getDisplayedValueAttr:function(){var val=this.get("value");if(!dojo.isArray(val)){val=[val];}var ret=dojo.map(this.getOptions(val),function(v){if(v&&"label" in v){return v.label;}else{if(v){return v.value;}}return null;},this);return this.multiple?ret:ret[0];},_loadChildren:function(){if(this._loadingStore){return;}dojo.forEach(this._getChildren(),function(_3b1){_3b1.destroyRecursive();});dojo.forEach(this.options,this._addOptionItem,this);this._updateSelection();},_updateSelection:function(){this._set("value",this._getValueFromOpts());var val=this.value;if(!dojo.isArray(val)){val=[val];}if(val&&val[0]){dojo.forEach(this._getChildren(),function(_3b2){var _3b3=dojo.some(val,function(v){return _3b2.option&&(v===_3b2.option.value);});dojo.toggleClass(_3b2.domNode,this.baseClass+"SelectedOption",_3b3);dijit.setWaiState(_3b2.domNode,"selected",_3b3);},this);}},_getValueFromOpts:function(){var opts=this.getOptions()||[];if(!this.multiple&&opts.length){var opt=dojo.filter(opts,function(i){return i.selected;})[0];if(opt&&opt.value){return opt.value;}else{opts[0].selected=true;return opts[0].value;}}else{if(this.multiple){return dojo.map(dojo.filter(opts,function(i){return i.selected;}),function(i){return i.value;})||[];}}return "";},_onNewItem:function(item,_3b4){if(!_3b4||!_3b4.parent){this._addOptionForItem(item);}},_onDeleteItem:function(item){var _3b5=this.store;this.removeOption(_3b5.getIdentity(item));},_onSetItem:function(item){this.updateOption(this._getOptionObjForItem(item));},_getOptionObjForItem:function(item){var _3b6=this.store,_3b7=_3b6.getLabel(item),_3b8=(_3b7?_3b6.getIdentity(item):null);return {value:_3b8,label:_3b7,item:item};},_addOptionForItem:function(item){var _3b9=this.store;if(!_3b9.isItemLoaded(item)){_3b9.loadItem({item:item,onComplete:function(i){this._addOptionForItem(item);},scope:this});return;}var _3ba=this._getOptionObjForItem(item);this.addOption(_3ba);},constructor:function(_3bb){this._oValue=(_3bb||{}).value||null;},buildRendering:function(){this.inherited(arguments);dojo.setSelectable(this.focusNode,false);},_fillContent:function(){var opts=this.options;if(!opts){opts=this.options=this.srcNodeRef?dojo.query(">",this.srcNodeRef).map(function(node){if(node.getAttribute("type")==="separator"){return {value:"",label:"",selected:false,disabled:false};}return {value:(node.getAttribute("data-"+dojo._scopeName+"-value")||node.getAttribute("value")),label:String(node.innerHTML),selected:node.getAttribute("selected")||false,disabled:node.getAttribute("disabled")||false};},this):[];}if(!this.value){this._set("value",this._getValueFromOpts());}else{if(this.multiple&&typeof this.value=="string"){this_set("value",this.value.split(","));}}},postCreate:function(){this.inherited(arguments);this.connect(this,"onChange","_updateSelection");this.connect(this,"startup","_loadChildren");this._setValueAttr(this.value,null);},startup:function(){this.inherited(arguments);var _3bc=this.store,_3bd={};dojo.forEach(["query","queryOptions","onFetch"],function(i){if(this[i]){_3bd[i]=this[i];}delete this[i];},this);if(_3bc&&_3bc.getFeatures()["dojo.data.api.Identity"]){this.store=null;this.setStore(_3bc,this._oValue,_3bd);}},destroy:function(){dojo.forEach(this._notifyConnections||[],dojo.disconnect);this.inherited(arguments);},_addOptionItem:function(_3be){},_removeOptionItem:function(_3bf){},_setDisplay:function(_3c0){},_getChildren:function(){return [];},_getSelectedOptionsAttr:function(){return this.getOptions(this.get("value"));},_pseudoLoadChildren:function(_3c1){},onSetStore:function(){}});}if(!dojo._hasResource["dijit._KeyNavContainer"]){dojo._hasResource["dijit._KeyNavContainer"]=true;dojo.provide("dijit._KeyNavContainer");dojo.declare("dijit._KeyNavContainer",dijit._Container,{tabIndex:"0",_keyNavCodes:{},connectKeyNavHandlers:function(_3c2,_3c3){var _3c4=(this._keyNavCodes={});var prev=dojo.hitch(this,this.focusPrev);var next=dojo.hitch(this,this.focusNext);dojo.forEach(_3c2,function(code){_3c4[code]=prev;});dojo.forEach(_3c3,function(code){_3c4[code]=next;});_3c4[dojo.keys.HOME]=dojo.hitch(this,"focusFirstChild");_3c4[dojo.keys.END]=dojo.hitch(this,"focusLastChild");this.connect(this.domNode,"onkeypress","_onContainerKeypress");this.connect(this.domNode,"onfocus","_onContainerFocus");},startupKeyNavChildren:function(){dojo.forEach(this.getChildren(),dojo.hitch(this,"_startupChild"));},addChild:function(_3c5,_3c6){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._startupChild(_3c5);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){var _3c7=this._getFirstFocusableChild();if(_3c7){this.focusChild(_3c7);}},focusLastChild:function(){var _3c8=this._getLastFocusableChild();if(_3c8){this.focusChild(_3c8);}},focusNext:function(){var _3c9=this._getNextFocusableChild(this.focusedChild,1);this.focusChild(_3c9);},focusPrev:function(){var _3ca=this._getNextFocusableChild(this.focusedChild,-1);this.focusChild(_3ca,true);},focusChild:function(_3cb,last){if(this.focusedChild&&_3cb!==this.focusedChild){this._onChildBlur(this.focusedChild);}_3cb.set("tabIndex",this.tabIndex);_3cb.focus(last?"end":"start");this._set("focusedChild",_3cb);},_startupChild:function(_3cc){_3cc.set("tabIndex","-1");this.connect(_3cc,"_onFocus",function(){_3cc.set("tabIndex",this.tabIndex);});this.connect(_3cc,"_onBlur",function(){_3cc.set("tabIndex","-1");});},_onContainerFocus:function(evt){if(evt.target!==this.domNode){return;}this.focusFirstChild();dojo.attr(this.domNode,"tabIndex","-1");},_onBlur:function(evt){if(this.tabIndex){dojo.attr(this.domNode,"tabIndex",this.tabIndex);}this.inherited(arguments);},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var func=this._keyNavCodes[evt.charOrCode];if(func){func();dojo.stopEvent(evt);}},_onChildBlur:function(_3cd){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getLastFocusableChild:function(){return this._getNextFocusableChild(null,-1);},_getNextFocusableChild:function(_3ce,dir){if(_3ce){_3ce=this._getSiblingOfChild(_3ce,dir);}var _3cf=this.getChildren();for(var i=0;i<_3cf.length;i++){if(!_3ce){_3ce=_3cf[(dir>0)?0:(_3cf.length-1)];}if(_3ce.isFocusable()){return _3ce;}_3ce=this._getSiblingOfChild(_3ce,dir);}return null;}});}if(!dojo._hasResource["dijit.MenuItem"]){dojo._hasResource["dijit.MenuItem"]=true;dojo.provide("dijit.MenuItem");dojo.declare("dijit.MenuItem",[dijit._Widget,dijit._Templated,dijit._Contained,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/MenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),baseClass:"dijitMenuItem",label:"",iconClass:"",accelKey:"",disabled:false,_fillContent:function(_3d0){if(_3d0&&!("label" in this.params)){this.set("label",_3d0.innerHTML);}},buildRendering:function(){this.inherited(arguments);var _3d1=this.id+"_text";dojo.attr(this.containerNode,"id",_3d1);if(this.accelKeyNode){dojo.attr(this.accelKeyNode,"id",this.id+"_accel");_3d1+=" "+this.id+"_accel";}dijit.setWaiState(this.domNode,"labelledby",_3d1);dojo.setSelectable(this.domNode,false);},_onHover:function(){this.getParent().onItemHover(this);},_onUnhover:function(){this.getParent().onItemUnhover(this);this._set("hovering",false);},_onClick:function(evt){this.getParent().onItemClick(this,evt);dojo.stopEvent(evt);},onClick:function(evt){},focus:function(){try{if(dojo.isIE==8){this.containerNode.focus();}dijit.focus(this.focusNode);}catch(e){}},_onFocus:function(){this._setSelected(true);this.getParent()._onItemFocus(this);this.inherited(arguments);},_setSelected:function(_3d2){dojo.toggleClass(this.domNode,"dijitMenuItemSelected",_3d2);},setLabel:function(_3d3){dojo.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_3d3);},setDisabled:function(_3d4){dojo.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_3d4);},_setDisabledAttr:function(_3d5){dijit.setWaiState(this.focusNode,"disabled",_3d5?"true":"false");this._set("disabled",_3d5);},_setAccelKeyAttr:function(_3d6){this.accelKeyNode.style.display=_3d6?"":"none";this.accelKeyNode.innerHTML=_3d6;dojo.attr(this.containerNode,"colSpan",_3d6?"1":"2");this._set("accelKey",_3d6);}});}if(!dojo._hasResource["dijit.PopupMenuItem"]){dojo._hasResource["dijit.PopupMenuItem"]=true;dojo.provide("dijit.PopupMenuItem");dojo.declare("dijit.PopupMenuItem",dijit.MenuItem,{_fillContent:function(){if(this.srcNodeRef){var _3d7=dojo.query("*",this.srcNodeRef);dijit.PopupMenuItem.superclass._fillContent.call(this,_3d7[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}this.inherited(arguments);if(!this.popup){var node=dojo.query("[widgetId]",this.dropDownContainer)[0];this.popup=dijit.byNode(node);}dojo.body().appendChild(this.popup.domNode);this.popup.startup();this.popup.domNode.style.display="none";if(this.arrowWrapper){dojo.style(this.arrowWrapper,"visibility","");}dijit.setWaiState(this.focusNode,"haspopup","true");},destroyDescendants:function(){if(this.popup){if(!this.popup._destroyed){this.popup.destroyRecursive();}delete this.popup;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.CheckedMenuItem"]){dojo._hasResource["dijit.CheckedMenuItem"]=true;dojo.provide("dijit.CheckedMenuItem");dojo.declare("dijit.CheckedMenuItem",dijit.MenuItem,{templateString:dojo.cache("dijit","templates/CheckedMenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" role=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">✓</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\"> </td>\n</tr>\n"),checked:false,_setCheckedAttr:function(_3d8){dojo.toggleClass(this.domNode,"dijitCheckedMenuItemChecked",_3d8);dijit.setWaiState(this.domNode,"checked",_3d8);this._set("checked",_3d8);},onChange:function(_3d9){},_onClick:function(e){if(!this.disabled){this.set("checked",!this.checked);this.onChange(this.checked);}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.MenuSeparator"]){dojo._hasResource["dijit.MenuSeparator"]=true;dojo.provide("dijit.MenuSeparator");dojo.declare("dijit.MenuSeparator",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:dojo.cache("dijit","templates/MenuSeparator.html","<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n"),buildRendering:function(){this.inherited(arguments);dojo.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});}if(!dojo._hasResource["dijit.Menu"]){dojo._hasResource["dijit.Menu"]=true;dojo.provide("dijit.Menu");dojo.declare("dijit._MenuBase",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{parentMenu:null,popupDelay:500,startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_3da){_3da.startup();});this.startupKeyNavChildren();this.inherited(arguments);},onExecute:function(){},onCancel:function(_3db){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.focusedChild._onClick(evt);}else{var _3dc=this._getTopMenu();if(_3dc&&_3dc._isMenuBar){_3dc.focusNext();}}},_onPopupHover:function(evt){if(this.currentPopup&&this.currentPopup._pendingClose_timer){var _3dd=this.currentPopup.parentMenu;if(_3dd.focusedChild){_3dd.focusedChild._setSelected(false);}_3dd.focusedChild=this.currentPopup.from_item;_3dd.focusedChild._setSelected(true);this._stopPendingCloseTimer(this.currentPopup);}},onItemHover:function(item){if(this.isActive){this.focusChild(item);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=setTimeout(dojo.hitch(this,"_openPopup"),this.popupDelay);}}if(this.focusedChild){this.focusChild(item);}this._hoveredChild=item;},_onChildBlur:function(item){this._stopPopupTimer();item._setSelected(false);var _3de=item.popup;if(_3de){this._stopPendingCloseTimer(_3de);_3de._pendingClose_timer=setTimeout(function(){_3de._pendingClose_timer=null;if(_3de.parentMenu){_3de.parentMenu.currentPopup=null;}dijit.popup.close(_3de);},this.popupDelay);}},onItemUnhover:function(item){if(this.isActive){this._stopPopupTimer();}if(this._hoveredChild==item){this._hoveredChild=null;}},_stopPopupTimer:function(){if(this.hover_timer){clearTimeout(this.hover_timer);this.hover_timer=null;}},_stopPendingCloseTimer:function(_3df){if(_3df._pendingClose_timer){clearTimeout(_3df._pendingClose_timer);_3df._pendingClose_timer=null;}},_stopFocusTimer:function(){if(this._focus_timer){clearTimeout(this._focus_timer);this._focus_timer=null;}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(item,evt){if(typeof this.isShowingNow=="undefined"){this._markActive();}this.focusChild(item);if(item.disabled){return false;}if(item.popup){this._openPopup();}else{this.onExecute();item.onClick(evt);}},_openPopup:function(){this._stopPopupTimer();var _3e0=this.focusedChild;if(!_3e0){return;}var _3e1=_3e0.popup;if(_3e1.isShowingNow){return;}if(this.currentPopup){this._stopPendingCloseTimer(this.currentPopup);dijit.popup.close(this.currentPopup);}_3e1.parentMenu=this;_3e1.from_item=_3e0;var self=this;dijit.popup.open({parent:this,popup:_3e1,around:_3e0.domNode,orient:this._orient||(this.isLeftToRight()?{"TR":"TL","TL":"TR","BR":"BL","BL":"BR"}:{"TL":"TR","TR":"TL","BL":"BR","BR":"BL"}),onCancel:function(){self.focusChild(_3e0);self._cleanUp();_3e0._setSelected(true);self.focusedChild=_3e0;},onExecute:dojo.hitch(this,"_cleanUp")});this.currentPopup=_3e1;_3e1.connect(_3e1.domNode,"onmouseenter",dojo.hitch(self,"_onPopupHover"));if(_3e1.focus){_3e1._focus_timer=setTimeout(dojo.hitch(_3e1,function(){this._focus_timer=null;this.focus();}),0);}},_markActive:function(){this.isActive=true;dojo.replaceClass(this.domNode,"dijitMenuActive","dijitMenuPassive");},onOpen:function(e){this.isShowingNow=true;this._markActive();},_markInactive:function(){this.isActive=false;dojo.replaceClass(this.domNode,"dijitMenuPassive","dijitMenuActive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow=false;this.parentMenu=null;},_closeChild:function(){this._stopPopupTimer();var _3e2=this.focusedChild&&this.focusedChild.from_item;if(this.currentPopup){if(dijit._curFocus&&dojo.isDescendant(dijit._curFocus,this.currentPopup.domNode)){this.focusedChild.focusNode.focus();}dijit.popup.close(this.currentPopup);this.currentPopup=null;}if(this.focusedChild){this.focusedChild._setSelected(false);this.focusedChild._onUnhover();this.focusedChild=null;}},_onItemFocus:function(item){if(this._hoveredChild&&this._hoveredChild!=item){this._hoveredChild._onUnhover();}},_onBlur:function(){this._cleanUp();this.inherited(arguments);},_cleanUp:function(){this._closeChild();if(typeof this.isShowingNow=="undefined"){this._markInactive();}}});dojo.declare("dijit.Menu",dijit._MenuBase,{constructor:function(){this._bindings=[];},templateString:dojo.cache("dijit","templates/Menu.html","<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\" cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"),baseClass:"dijitMenu",targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(dojo.body());}else{dojo.forEach(this.targetNodeIds,this.bindDomNode,this);}var k=dojo.keys,l=this.isLeftToRight();this._openSubMenuKey=l?k.RIGHT_ARROW:k.LEFT_ARROW;this._closeSubMenuKey=l?k.LEFT_ARROW:k.RIGHT_ARROW;this.connectKeyNavHandlers([k.UP_ARROW],[k.DOWN_ARROW]);},_onKeyPress:function(evt){if(evt.ctrlKey||evt.altKey){return;}switch(evt.charOrCode){case this._openSubMenuKey:this._moveToPopup(evt);dojo.stopEvent(evt);break;case this._closeSubMenuKey:if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{dojo.stopEvent(evt);}break;}},_iframeContentWindow:function(_3e3){var win=dojo.window.get(this._iframeContentDocument(_3e3))||this._iframeContentDocument(_3e3)["__parent__"]||(_3e3.name&&dojo.doc.frames[_3e3.name])||null;return win;},_iframeContentDocument:function(_3e4){var doc=_3e4.contentDocument||(_3e4.contentWindow&&_3e4.contentWindow.document)||(_3e4.name&&dojo.doc.frames[_3e4.name]&&dojo.doc.frames[_3e4.name].document)||null;return doc;},bindDomNode:function(node){node=dojo.byId(node);var cn;if(node.tagName.toLowerCase()=="iframe"){var _3e5=node,win=this._iframeContentWindow(_3e5);cn=dojo.withGlobal(win,dojo.body);}else{cn=(node==dojo.body()?dojo.doc.documentElement:node);}var _3e6={node:node,iframe:_3e5};dojo.attr(node,"_dijitMenu"+this.id,this._bindings.push(_3e6));var _3e7=dojo.hitch(this,function(cn){return [dojo.connect(cn,this.leftClickToOpen?"onclick":"oncontextmenu",this,function(evt){dojo.stopEvent(evt);this._scheduleOpen(evt.target,_3e5,{x:evt.pageX,y:evt.pageY});}),dojo.connect(cn,"onkeydown",this,function(evt){if(evt.shiftKey&&evt.keyCode==dojo.keys.F10){dojo.stopEvent(evt);this._scheduleOpen(evt.target,_3e5);}})];});_3e6.connects=cn?_3e7(cn):[];if(_3e5){_3e6.onloadHandler=dojo.hitch(this,function(){var win=this._iframeContentWindow(_3e5);cn=dojo.withGlobal(win,dojo.body);_3e6.connects=_3e7(cn);});if(_3e5.addEventListener){_3e5.addEventListener("load",_3e6.onloadHandler,false);}else{_3e5.attachEvent("onload",_3e6.onloadHandler);}}},unBindDomNode:function(_3e8){var node;try{node=dojo.byId(_3e8);}catch(e){return;}var _3e9="_dijitMenu"+this.id;if(node&&dojo.hasAttr(node,_3e9)){var bid=dojo.attr(node,_3e9)-1,b=this._bindings[bid];dojo.forEach(b.connects,dojo.disconnect);var _3ea=b.iframe;if(_3ea){if(_3ea.removeEventListener){_3ea.removeEventListener("load",b.onloadHandler,false);}else{_3ea.detachEvent("onload",b.onloadHandler);}}dojo.removeAttr(node,_3e9);delete this._bindings[bid];}},_scheduleOpen:function(_3eb,_3ec,_3ed){if(!this._openTimer){this._openTimer=setTimeout(dojo.hitch(this,function(){delete this._openTimer;this._openMyself({target:_3eb,iframe:_3ec,coords:_3ed});}),1);}},_openMyself:function(args){var _3ee=args.target,_3ef=args.iframe,_3f0=args.coords;if(_3f0){if(_3ef){var od=_3ee.ownerDocument,ifc=dojo.position(_3ef,true),win=this._iframeContentWindow(_3ef),_3f1=dojo.withGlobal(win,"_docScroll",dojo);var cs=dojo.getComputedStyle(_3ef),tp=dojo._toPixelValue,left=(dojo.isIE&&dojo.isQuirks?0:tp(_3ef,cs.paddingLeft))+(dojo.isIE&&dojo.isQuirks?tp(_3ef,cs.borderLeftWidth):0),top=(dojo.isIE&&dojo.isQuirks?0:tp(_3ef,cs.paddingTop))+(dojo.isIE&&dojo.isQuirks?tp(_3ef,cs.borderTopWidth):0);_3f0.x+=ifc.x+left-_3f1.x;_3f0.y+=ifc.y+top-_3f1.y;}}else{_3f0=dojo.position(_3ee,true);_3f0.x+=10;_3f0.y+=10;}var self=this;var _3f2=dijit.getFocus(this);function _3f3(){if(self.refocus){dijit.focus(_3f2);}dijit.popup.close(self);};dijit.popup.open({popup:this,x:_3f0.x,y:_3f0.y,onExecute:_3f3,onCancel:_3f3,orient:this.isLeftToRight()?"L":"R"});this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);dijit.popup.close(this);};},uninitialize:function(){dojo.forEach(this._bindings,function(b){if(b){this.unBindDomNode(b.node);}},this);this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.Select"]){dojo._hasResource["dijit.form.Select"]=true;dojo.provide("dijit.form.Select");dojo.declare("dijit.form._SelectMenu",dijit.Menu,{buildRendering:function(){this.inherited(arguments);var o=(this.menuTableNode=this.domNode);var n=(this.domNode=dojo.create("div",{style:{overflowX:"hidden",overflowY:"scroll"}}));if(o.parentNode){o.parentNode.replaceChild(n,o);}dojo.removeClass(o,"dijitMenuTable");n.className=o.className+" dijitSelectMenu";o.className="dijitReset dijitMenuTable";dijit.setWaiRole(o,"listbox");dijit.setWaiRole(n,"presentation");n.appendChild(o);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousemove",dojo.stopEvent);},resize:function(mb){if(mb){dojo.marginBox(this.domNode,mb);if("w" in mb){this.menuTableNode.style.width="100%";}}}});dojo.declare("dijit.form.Select",[dijit.form._FormSelectWidget,dijit._HasDropDown],{baseClass:"dijitSelect",templateString:dojo.cache("dijit.form","templates/Select.html","<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdojoAttachPoint=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"combobox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" role=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" dojoAttachPoint=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} dojoAttachPoint=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdojoAttachPoint=\"titleNode\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">▼</div\n\t\t></td\n\t></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form._FormSelectWidget.prototype.attributeMap),{style:"tableNode"}),required:false,state:"",message:"",tooltipPosition:[],emptyLabel:" ",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){this.inherited(arguments);if(this.options.length&&!this.value&&this.srcNodeRef){var si=this.srcNodeRef.selectedIndex||0;this.value=this.options[si>=0?si:0].value;}this.dropDown=new dijit.form._SelectMenu({id:this.id+"_menu"});dojo.addClass(this.dropDown.domNode,this.baseClass+"Menu");},_getMenuItemForOption:function(_3f4){if(!_3f4.value&&!_3f4.label){return new dijit.MenuSeparator();}else{var _3f5=dojo.hitch(this,"_setValueAttr",_3f4);var item=new dijit.MenuItem({option:_3f4,label:_3f4.label||this.emptyLabel,onClick:_3f5,disabled:_3f4.disabled||false});dijit.setWaiRole(item.focusNode,"listitem");return item;}},_addOptionItem:function(_3f6){if(this.dropDown){this.dropDown.addChild(this._getMenuItemForOption(_3f6));}},_getChildren:function(){if(!this.dropDown){return [];}return this.dropDown.getChildren();},_loadChildren:function(_3f7){if(_3f7===true){if(this.dropDown){delete this.dropDown.focusedChild;}if(this.options.length){this.inherited(arguments);}else{dojo.forEach(this._getChildren(),function(_3f8){_3f8.destroyRecursive();});var item=new dijit.MenuItem({label:" "});this.dropDown.addChild(item);}}else{this._updateSelection();}this._isLoaded=false;this._childrenLoaded=true;if(!this._loadingStore){this._setValueAttr(this.value);}},_setValueAttr:function(_3f9){this.inherited(arguments);dojo.attr(this.valueNode,"value",this.get("value"));},_setDisplay:function(_3fa){var lbl=_3fa||this.emptyLabel;this.containerNode.innerHTML="<span class=\"dijitReset dijitInline "+this.baseClass+"Label\">"+lbl+"</span>";dijit.setWaiState(this.focusNode,"valuetext",lbl);},validate:function(_3fb){var _3fc=this.isValid(_3fb);this._set("state",_3fc?"":"Error");dijit.setWaiState(this.focusNode,"invalid",_3fc?"false":"true");var _3fd=_3fc?"":this._missingMsg;if(this.message!==_3fd){this._set("message",_3fd);dijit.hideTooltip(this.domNode);if(_3fd){dijit.showTooltip(_3fd,this.domNode,this.tooltipPosition,!this.isLeftToRight());}}return _3fc;},isValid:function(_3fe){return (!this.required||this.value===0||!(/^\s*$/.test(this.value||"")));},reset:function(){this.inherited(arguments);dijit.hideTooltip(this.domNode);this._set("state","");this._set("message","");},postMixInProperties:function(){this.inherited(arguments);this._missingMsg=dojo.i18n.getLocalization("dijit.form","validate",this.lang).missingMessage;},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousemove",dojo.stopEvent);},_setStyleAttr:function(_3ff){this.inherited(arguments);dojo.toggleClass(this.domNode,this.baseClass+"FixedWidth",!!this.tableNode.style.width);},isLoaded:function(){return this._isLoaded;},loadDropDown:function(_400){this._loadChildren(true);this._isLoaded=true;_400();},closeDropDown:function(){this.inherited(arguments);if(this.dropDown&&this.dropDown.menuTableNode){this.dropDown.menuTableNode.style.width="";}},uninitialize:function(_401){if(this.dropDown&&!this.dropDown._destroyed){this.dropDown.destroyRecursive(_401);delete this.dropDown;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.SimpleTextarea"]){dojo._hasResource["dijit.form.SimpleTextarea"]=true;dojo.provide("dijit.form.SimpleTextarea");dojo.declare("dijit.form.SimpleTextarea",dijit.form.TextBox,{baseClass:"dijitTextBox dijitTextArea",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{rows:"textbox",cols:"textbox"}),rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){if(!this.value&&this.srcNodeRef){this.value=this.srcNodeRef.value;}this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);if(dojo.isIE&&this.cols){dojo.addClass(this.textbox,"dijitTextAreaCols");}},filter:function(_402){if(_402){_402=_402.replace(/\r/g,"");}return this.inherited(arguments);},_previousValue:"",_onInput:function(e){if(this.maxLength){var _403=parseInt(this.maxLength);var _404=this.textbox.value.replace(/\r/g,"");var _405=_404.length-_403;if(_405>0){if(e){dojo.stopEvent(e);}var _406=this.textbox;if(_406.selectionStart){var pos=_406.selectionStart;var cr=0;if(dojo.isOpera){cr=(this.textbox.value.substring(0,pos).match(/\r/g)||[]).length;}this.textbox.value=_404.substring(0,pos-_405-cr)+_404.substring(pos-cr);_406.setSelectionRange(pos-_405,pos-_405);}else{if(dojo.doc.selection){_406.focus();var _407=dojo.doc.selection.createRange();_407.moveStart("character",-_405);_407.text="";_407.select();}}}this._previousValue=this.textbox.value;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.InlineEditBox"]){dojo._hasResource["dijit.InlineEditBox"]=true;dojo.provide("dijit.InlineEditBox");dojo.declare("dijit.InlineEditBox",dijit._Widget,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:"dijit.form.TextBox",editorWrapper:"dijit._InlineEditor",editorParams:{},disabled:false,onChange:function(_408){},onCancel:function(){},width:"100%",value:"",noValueIndicator:dojo.isIE<=6?"<span style='font-family: wingdings; text-decoration: underline;'> ✍ </span>":"<span style='text-decoration: underline;'> ✍ </span>",constructor:function(){this.editorParams={};},postMixInProperties:function(){this.inherited(arguments);this.displayNode=this.srcNodeRef;var _409={ondijitclick:"_onClick",onmouseover:"_onMouseOver",onmouseout:"_onMouseOut",onfocus:"_onMouseOver",onblur:"_onMouseOut"};for(var name in _409){this.connect(this.displayNode,name,_409[name]);}dijit.setWaiRole(this.displayNode,"button");if(!this.displayNode.getAttribute("tabIndex")){this.displayNode.setAttribute("tabIndex",0);}if(!this.value&&!("value" in this.params)){this.value=dojo.trim(this.renderAsHtml?this.displayNode.innerHTML:(this.displayNode.innerText||this.displayNode.textContent||""));}if(!this.value){this.displayNode.innerHTML=this.noValueIndicator;}dojo.addClass(this.displayNode,"dijitInlineEditBoxDisplayMode");},setDisabled:function(_40a){dojo.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_40a);},_setDisabledAttr:function(_40b){dijit.setWaiState(this.domNode,"disabled",_40b);if(_40b){this.displayNode.removeAttribute("tabIndex");}else{this.displayNode.setAttribute("tabIndex",0);}dojo.toggleClass(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",_40b);this._set("disabled",_40b);},_onMouseOver:function(){if(!this.disabled){dojo.addClass(this.displayNode,"dijitInlineEditBoxDisplayModeHover");}},_onMouseOut:function(){dojo.removeClass(this.displayNode,"dijitInlineEditBoxDisplayModeHover");},_onClick:function(e){if(this.disabled){return;}if(e){dojo.stopEvent(e);}this._onMouseOut();setTimeout(dojo.hitch(this,"edit"),0);},edit:function(){if(this.disabled||this.editing){return;}this.editing=true;this._savedPosition=dojo.style(this.displayNode,"position")||"static";this._savedOpacity=dojo.style(this.displayNode,"opacity")||"1";this._savedTabIndex=dojo.attr(this.displayNode,"tabIndex")||"0";if(this.wrapperWidget){var ew=this.wrapperWidget.editWidget;ew.set("displayedValue" in ew?"displayedValue":"value",this.value);}else{var _40c=dojo.create("span",null,this.domNode,"before");var ewc=typeof this.editorWrapper=="string"?dojo.getObject(this.editorWrapper):this.editorWrapper;this.wrapperWidget=new ewc({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:dojo.getComputedStyle(this.displayNode),save:dojo.hitch(this,"save"),cancel:dojo.hitch(this,"cancel")},_40c);if(!this._started){this.startup();}}var ww=this.wrapperWidget;if(dojo.isIE){dijit.focus(dijit.getFocus());}dojo.style(this.displayNode,{position:"absolute",opacity:"0",display:"none"});dojo.style(ww.domNode,{position:this._savedPosition,visibility:"visible",opacity:"1"});dojo.attr(this.displayNode,"tabIndex","-1");setTimeout(dojo.hitch(this,function(){ww.focus();ww._resetValue=ww.getValue();}),0);},_onBlur:function(){this.inherited(arguments);if(!this.editing){}},destroy:function(){if(this.wrapperWidget&&!this.wrapperWidget._destroyed){this.wrapperWidget.destroy();delete this.wrapperWidget;}this.inherited(arguments);},_showText:function(_40d){var ww=this.wrapperWidget;dojo.style(ww.domNode,{position:"absolute",visibility:"hidden",opacity:"0"});dojo.style(this.displayNode,{position:this._savedPosition,opacity:this._savedOpacity,display:""});dojo.attr(this.displayNode,"tabIndex",this._savedTabIndex);if(_40d){dijit.focus(this.displayNode);}},save:function(_40e){if(this.disabled||!this.editing){return;}this.editing=false;var ww=this.wrapperWidget;var _40f=ww.getValue();this.set("value",_40f);this._showText(_40e);},setValue:function(val){dojo.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(val){val=dojo.trim(val);var _410=this.renderAsHtml?val:val.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""").replace(/\n/g,"<br>");this.displayNode.innerHTML=_410||this.noValueIndicator;this._set("value",val);if(this._started){setTimeout(dojo.hitch(this,"onChange",val),0);}},getValue:function(){dojo.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},cancel:function(_411){if(this.disabled||!this.editing){return;}this.editing=false;setTimeout(dojo.hitch(this,"onCancel"),0);this._showText(_411);}});dojo.declare("dijit._InlineEditor",[dijit._Widget,dijit._Templated],{templateString:dojo.cache("dijit","templates/InlineEditBox.html","<span data-dojo-attach-point=\"editNode\" role=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdata-dojo-attach-event=\"onkeypress: _onKeyPress\"\n\t><span data-dojo-attach-point=\"editorPlaceholder\"></span\n\t><span data-dojo-attach-point=\"buttonContainer\"\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonSave}', 'class': 'saveButton'\"\n\t\t\tdata-dojo-attach-point=\"saveButton\" data-dojo-attach-event=\"onClick:save\"></button\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonCancel}', 'class': 'cancelButton'\"\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event=\"onClick:cancel\"></button\n\t></span\n></span>\n"),widgetsInTemplate:true,postMixInProperties:function(){this.inherited(arguments);this.messages=dojo.i18n.getLocalization("dijit","common",this.lang);dojo.forEach(["buttonSave","buttonCancel"],function(prop){if(!this[prop]){this[prop]=this.messages[prop];}},this);},buildRendering:function(){this.inherited(arguments);var cls=typeof this.editor=="string"?dojo.getObject(this.editor):this.editor;var _412=this.sourceStyle,_413="line-height:"+_412.lineHeight+";",_414=dojo.getComputedStyle(this.domNode);dojo.forEach(["Weight","Family","Size","Style"],function(prop){var _415=_412["font"+prop],_416=_414["font"+prop];if(_416!=_415){_413+="font-"+prop+":"+_412["font"+prop]+";";}},this);dojo.forEach(["marginTop","marginBottom","marginLeft","marginRight"],function(prop){this.domNode.style[prop]=_412[prop];},this);var _417=this.inlineEditBox.width;if(_417=="100%"){_413+="width:100%;";this.domNode.style.display="block";}else{_413+="width:"+(_417+(Number(_417)==_417?"px":""))+";";}var _418=dojo.delegate(this.inlineEditBox.editorParams,{style:_413,dir:this.dir,lang:this.lang});_418["displayedValue" in cls.prototype?"displayedValue":"value"]=this.value;this.editWidget=new cls(_418,this.editorPlaceholder);if(this.inlineEditBox.autoSave){dojo.destroy(this.buttonContainer);}},postCreate:function(){this.inherited(arguments);var ew=this.editWidget;if(this.inlineEditBox.autoSave){this.connect(ew,"onChange","_onChange");this.connect(ew,"onKeyPress","_onKeyPress");}else{if("intermediateChanges" in ew){ew.set("intermediateChanges",true);this.connect(ew,"onChange","_onIntermediateChange");this.saveButton.set("disabled",true);}}},_onIntermediateChange:function(val){this.saveButton.set("disabled",(this.getValue()==this._resetValue)||!this.enableSave());},destroy:function(){this.editWidget.destroy(true);this.inherited(arguments);},getValue:function(){var ew=this.editWidget;return String(ew.get("displayedValue" in ew?"displayedValue":"value"));},_onKeyPress:function(e){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(e.altKey||e.ctrlKey){return;}if(e.charOrCode==dojo.keys.ESCAPE){dojo.stopEvent(e);this.cancel(true);}else{if(e.charOrCode==dojo.keys.ENTER&&e.target.tagName=="INPUT"){dojo.stopEvent(e);this._onChange();}}}},_onBlur:function(){this.inherited(arguments);if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(this.getValue()==this._resetValue){this.cancel(false);}else{if(this.enableSave()){this.save(false);}}}},_onChange:function(){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave()){dojo.style(this.inlineEditBox.displayNode,{display:""});dijit.focus(this.inlineEditBox.displayNode);}},enableSave:function(){return (this.editWidget.isValid?this.editWidget.isValid():true);},focus:function(){this.editWidget.focus();setTimeout(dojo.hitch(this,function(){if(this.editWidget.focusNode&&this.editWidget.focusNode.tagName=="INPUT"){dijit.selectInputText(this.editWidget.focusNode);}}),0);}});}if(!dojo._hasResource["dojo.cookie"]){dojo._hasResource["dojo.cookie"]=true;dojo.provide("dojo.cookie");dojo.cookie=function(name,_419,_41a){var c=document.cookie;if(arguments.length==1){var _41b=c.match(new RegExp("(?:^|; )"+dojo.regexp.escapeString(name)+"=([^;]*)"));return _41b?decodeURIComponent(_41b[1]):undefined;}else{_41a=_41a||{};var exp=_41a.expires;if(typeof exp=="number"){var d=new Date();d.setTime(d.getTime()+exp*24*60*60*1000);exp=_41a.expires=d;}if(exp&&exp.toUTCString){_41a.expires=exp.toUTCString();}_419=encodeURIComponent(_419);var _41c=name+"="+_419,_41d;for(_41d in _41a){_41c+="; "+_41d;var _41e=_41a[_41d];if(_41e!==true){_41c+="="+_41e;}}document.cookie=_41c;}};dojo.cookie.isSupported=function(){if(!("cookieEnabled" in navigator)){this("__djCookieTest__","CookiesAllowed");navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";if(navigator.cookieEnabled){this("__djCookieTest__","",{expires:-1});}}return navigator.cookieEnabled;};}if(!dojo._hasResource["dijit.layout.StackController"]){dojo._hasResource["dijit.layout.StackController"]=true;dojo.provide("dijit.layout.StackController");dojo.declare("dijit.layout.StackController",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span role='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>",containerId:"",buttonWidget:"dijit.layout._StackButton",constructor:function(){this.pane2button={};this.pane2connects={};this.pane2watches={};},buildRendering:function(){this.inherited(arguments);dijit.setWaiRole(this.domNode,"tablist");},postCreate:function(){this.inherited(arguments);this.subscribe(this.containerId+"-startup","onStartup");this.subscribe(this.containerId+"-addChild","onAddChild");this.subscribe(this.containerId+"-removeChild","onRemoveChild");this.subscribe(this.containerId+"-selectChild","onSelectChild");this.subscribe(this.containerId+"-containerKeyPress","onContainerKeyPress");},onStartup:function(info){dojo.forEach(info.children,this.onAddChild,this);if(info.selected){this.onSelectChild(info.selected);}},destroy:function(){for(var pane in this.pane2button){this.onRemoveChild(dijit.byId(pane));}this.inherited(arguments);},onAddChild:function(page,_41f){var cls=dojo.getObject(this.buttonWidget);var _420=new cls({id:this.id+"_"+page.id,label:page.title,dir:page.dir,lang:page.lang,showLabel:page.showTitle,iconClass:page.iconClass,closeButton:page.closable,title:page.tooltip});dijit.setWaiState(_420.focusNode,"selected","false");var _421=["title","showTitle","iconClass","closable","tooltip"],_422=["label","showLabel","iconClass","closeButton","title"];this.pane2watches[page.id]=dojo.map(_421,function(_423,idx){return page.watch(_423,function(name,_424,_425){_420.set(_422[idx],_425);});});this.pane2connects[page.id]=[this.connect(_420,"onClick",dojo.hitch(this,"onButtonClick",page)),this.connect(_420,"onClickCloseButton",dojo.hitch(this,"onCloseButtonClick",page))];this.addChild(_420,_41f);this.pane2button[page.id]=_420;page.controlButton=_420;if(!this._currentChild){_420.focusNode.setAttribute("tabIndex","0");dijit.setWaiState(_420.focusNode,"selected","true");this._currentChild=page;}if(!this.isLeftToRight()&&dojo.isIE&&this._rectifyRtlTabList){this._rectifyRtlTabList();}},onRemoveChild:function(page){if(this._currentChild===page){this._currentChild=null;}dojo.forEach(this.pane2connects[page.id],dojo.hitch(this,"disconnect"));delete this.pane2connects[page.id];dojo.forEach(this.pane2watches[page.id],function(w){w.unwatch();});delete this.pane2watches[page.id];var _426=this.pane2button[page.id];if(_426){this.removeChild(_426);delete this.pane2button[page.id];_426.destroy();}delete page.controlButton;},onSelectChild:function(page){if(!page){return;}if(this._currentChild){var _427=this.pane2button[this._currentChild.id];_427.set("checked",false);dijit.setWaiState(_427.focusNode,"selected","false");_427.focusNode.setAttribute("tabIndex","-1");}var _428=this.pane2button[page.id];_428.set("checked",true);dijit.setWaiState(_428.focusNode,"selected","true");this._currentChild=page;_428.focusNode.setAttribute("tabIndex","0");var _429=dijit.byId(this.containerId);dijit.setWaiState(_429.containerNode,"labelledby",_428.id);},onButtonClick:function(page){var _42a=dijit.byId(this.containerId);_42a.selectChild(page);},onCloseButtonClick:function(page){var _42b=dijit.byId(this.containerId);_42b.closeChild(page);if(this._currentChild){var b=this.pane2button[this._currentChild.id];if(b){dijit.focus(b.focusNode||b.domNode);}}},adjacent:function(_42c){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){_42c=!_42c;}var _42d=this.getChildren();var _42e=dojo.indexOf(_42d,this.pane2button[this._currentChild.id]);var _42f=_42c?1:_42d.length-1;return _42d[(_42e+_42f)%_42d.length];},onkeypress:function(e){if(this.disabled||e.altKey){return;}var _430=null;if(e.ctrlKey||!e._djpage){var k=dojo.keys;switch(e.charOrCode){case k.LEFT_ARROW:case k.UP_ARROW:if(!e._djpage){_430=false;}break;case k.PAGE_UP:if(e.ctrlKey){_430=false;}break;case k.RIGHT_ARROW:case k.DOWN_ARROW:if(!e._djpage){_430=true;}break;case k.PAGE_DOWN:if(e.ctrlKey){_430=true;}break;case k.HOME:case k.END:var _431=this.getChildren();if(_431&&_431.length){_431[e.charOrCode==k.HOME?0:_431.length-1].onClick();}dojo.stopEvent(e);break;case k.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}dojo.stopEvent(e);break;default:if(e.ctrlKey){if(e.charOrCode===k.TAB){this.adjacent(!e.shiftKey).onClick();dojo.stopEvent(e);}else{if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}dojo.stopEvent(e);}}}}if(_430!==null){this.adjacent(_430).onClick();dojo.stopEvent(e);}}},onContainerKeyPress:function(info){info.e._djpage=info.page;this.onkeypress(info.e);}});dojo.declare("dijit.layout._StackButton",dijit.form.ToggleButton,{tabIndex:"-1",buildRendering:function(evt){this.inherited(arguments);dijit.setWaiRole((this.focusNode||this.domNode),"tab");},onClick:function(evt){dijit.focus(this.focusNode);},onClickCloseButton:function(evt){evt.stopPropagation();}});}if(!dojo._hasResource["dijit.layout.StackContainer"]){dojo._hasResource["dijit.layout.StackContainer"]=true;dojo.provide("dijit.layout.StackContainer");dojo.declare("dijit.layout.StackContainer",dijit.layout._LayoutWidget,{doLayout:true,persist:false,baseClass:"dijitStackContainer",buildRendering:function(){this.inherited(arguments);dojo.addClass(this.domNode,"dijitLayoutContainer");dijit.setWaiRole(this.containerNode,"tabpanel");},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onkeypress",this._onKeyPress);},startup:function(){if(this._started){return;}var _432=this.getChildren();dojo.forEach(_432,this._setupChild,this);if(this.persist){this.selectedChildWidget=dijit.byId(dojo.cookie(this.id+"_selectedChild"));}else{dojo.some(_432,function(_433){if(_433.selected){this.selectedChildWidget=_433;}return _433.selected;},this);}var _434=this.selectedChildWidget;if(!_434&&_432[0]){_434=this.selectedChildWidget=_432[0];_434.selected=true;}dojo.publish(this.id+"-startup",[{children:_432,selected:_434}]);this.inherited(arguments);},resize:function(){var _435=this.selectedChildWidget;if(_435&&!this._hasBeenShown){this._hasBeenShown=true;this._showChild(_435);}this.inherited(arguments);},_setupChild:function(_436){this.inherited(arguments);dojo.replaceClass(_436.domNode,"dijitHidden","dijitVisible");_436.domNode.title="";},addChild:function(_437,_438){this.inherited(arguments);if(this._started){dojo.publish(this.id+"-addChild",[_437,_438]);this.layout();if(!this.selectedChildWidget){this.selectChild(_437);}}},removeChild:function(page){this.inherited(arguments);if(this._started){dojo.publish(this.id+"-removeChild",[page]);}if(this._beingDestroyed){return;}if(this.selectedChildWidget===page){this.selectedChildWidget=undefined;if(this._started){var _439=this.getChildren();if(_439.length){this.selectChild(_439[0]);}}}if(this._started){this.layout();}},selectChild:function(page,_43a){page=dijit.byId(page);if(this.selectedChildWidget!=page){var d=this._transition(page,this.selectedChildWidget,_43a);this._set("selectedChildWidget",page);dojo.publish(this.id+"-selectChild",[page]);if(this.persist){dojo.cookie(this.id+"_selectedChild",this.selectedChildWidget.id);}}return d;},_transition:function(_43b,_43c,_43d){if(_43c){this._hideChild(_43c);}var d=this._showChild(_43b);if(_43b.resize){if(this.doLayout){_43b.resize(this._containerContentBox||this._contentBox);}else{_43b.resize();}}return d;},_adjacent:function(_43e){var _43f=this.getChildren();var _440=dojo.indexOf(_43f,this.selectedChildWidget);_440+=_43e?1:_43f.length-1;return _43f[_440%_43f.length];},forward:function(){return this.selectChild(this._adjacent(true),true);},back:function(){return this.selectChild(this._adjacent(false),true);},_onKeyPress:function(e){dojo.publish(this.id+"-containerKeyPress",[{e:e,page:this}]);},layout:function(){if(this.doLayout&&this.selectedChildWidget&&this.selectedChildWidget.resize){this.selectedChildWidget.resize(this._containerContentBox||this._contentBox);}},_showChild:function(page){var _441=this.getChildren();page.isFirstChild=(page==_441[0]);page.isLastChild=(page==_441[_441.length-1]);page._set("selected",true);dojo.replaceClass(page.domNode,"dijitVisible","dijitHidden");return page._onShow()||true;},_hideChild:function(page){page._set("selected",false);dojo.replaceClass(page.domNode,"dijitHidden","dijitVisible");page.onHide();},closeChild:function(page){var _442=page.onClose(this,page);if(_442){this.removeChild(page);page.destroyRecursive();}},destroyDescendants:function(_443){dojo.forEach(this.getChildren(),function(_444){this.removeChild(_444);_444.destroyRecursive(_443);},this);}});dojo.extend(dijit._Widget,{selected:false,closable:false,iconClass:"",showTitle:true});}if(!dojo._hasResource["dijit.layout.AccordionPane"]){dojo._hasResource["dijit.layout.AccordionPane"]=true;dojo.provide("dijit.layout.AccordionPane");dojo.declare("dijit.layout.AccordionPane",dijit.layout.ContentPane,{constructor:function(){dojo.deprecated("dijit.layout.AccordionPane deprecated, use ContentPane instead","","2.0");},onSelected:function(){}});}if(!dojo._hasResource["dijit.layout.AccordionContainer"]){dojo._hasResource["dijit.layout.AccordionContainer"]=true;dojo.provide("dijit.layout.AccordionContainer");dojo.declare("dijit.layout.AccordionContainer",dijit.layout.StackContainer,{duration:dijit.defaultDuration,buttonWidget:"dijit.layout._AccordionButton",baseClass:"dijitAccordionContainer",buildRendering:function(){this.inherited(arguments);this.domNode.style.overflow="hidden";dijit.setWaiRole(this.domNode,"tablist");},startup:function(){if(this._started){return;}this.inherited(arguments);if(this.selectedChildWidget){var _445=this.selectedChildWidget.containerNode.style;_445.display="";_445.overflow="auto";this.selectedChildWidget._wrapperWidget.set("selected",true);}},layout:function(){var _446=this.selectedChildWidget;if(!_446){return;}var _447=_446._wrapperWidget.domNode,_448=dojo._getMarginExtents(_447),_449=dojo._getPadBorderExtents(_447),_44a=_446._wrapperWidget.containerNode,_44b=dojo._getMarginExtents(_44a),_44c=dojo._getPadBorderExtents(_44a),_44d=this._contentBox;var _44e=0;dojo.forEach(this.getChildren(),function(_44f){if(_44f!=_446){_44e+=dojo._getMarginSize(_44f._wrapperWidget.domNode).h;}});this._verticalSpace=_44d.h-_44e-_448.h-_449.h-_44b.h-_44c.h-_446._buttonWidget.getTitleHeight();this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_448.w-_449.w-_44b.w-_44c.w};if(_446){_446.resize(this._containerContentBox);}},_setupChild:function(_450){_450._wrapperWidget=new dijit.layout._AccordionInnerContainer({contentWidget:_450,buttonWidget:this.buttonWidget,id:_450.id+"_wrapper",dir:_450.dir,lang:_450.lang,parent:this});this.inherited(arguments);},addChild:function(_451,_452){if(this._started){dojo.place(_451.domNode,this.containerNode,_452);if(!_451._started){_451.startup();}this._setupChild(_451);dojo.publish(this.id+"-addChild",[_451,_452]);this.layout();if(!this.selectedChildWidget){this.selectChild(_451);}}else{this.inherited(arguments);}},removeChild:function(_453){if(_453._wrapperWidget){dojo.place(_453.domNode,_453._wrapperWidget.domNode,"after");_453._wrapperWidget.destroy();delete _453._wrapperWidget;}dojo.removeClass(_453.domNode,"dijitHidden");this.inherited(arguments);},getChildren:function(){return dojo.map(this.inherited(arguments),function(_454){return _454.declaredClass=="dijit.layout._AccordionInnerContainer"?_454.contentWidget:_454;},this);},destroy:function(){if(this._animation){this._animation.stop();}dojo.forEach(this.getChildren(),function(_455){if(_455._wrapperWidget){_455._wrapperWidget.destroy();}else{_455.destroyRecursive();}});this.inherited(arguments);},_showChild:function(_456){_456._wrapperWidget.containerNode.style.display="block";return this.inherited(arguments);},_hideChild:function(_457){_457._wrapperWidget.containerNode.style.display="none";this.inherited(arguments);},_transition:function(_458,_459,_45a){if(dojo.isIE<8){_45a=false;}if(this._animation){this._animation.stop(true);delete this._animation;}var self=this;if(_458){_458._wrapperWidget.set("selected",true);var d=this._showChild(_458);if(this.doLayout&&_458.resize){_458.resize(this._containerContentBox);}}if(_459){_459._wrapperWidget.set("selected",false);if(!_45a){this._hideChild(_459);}}if(_45a){var _45b=_458._wrapperWidget.containerNode,_45c=_459._wrapperWidget.containerNode;var _45d=_458._wrapperWidget.containerNode,_45e=dojo._getMarginExtents(_45d),_45f=dojo._getPadBorderExtents(_45d),_460=_45e.h+_45f.h;_45c.style.height=(self._verticalSpace-_460)+"px";this._animation=new dojo.Animation({node:_45b,duration:this.duration,curve:[1,this._verticalSpace-_460-1],onAnimate:function(_461){_461=Math.floor(_461);_45b.style.height=_461+"px";_45c.style.height=(self._verticalSpace-_460-_461)+"px";},onEnd:function(){delete self._animation;_45b.style.height="auto";_459._wrapperWidget.containerNode.style.display="none";_45c.style.height="auto";self._hideChild(_459);}});this._animation.onStop=this._animation.onEnd;this._animation.play();}return d;},_onKeyPress:function(e,_462){if(this.disabled||e.altKey||!(_462||e.ctrlKey)){return;}var k=dojo.keys,c=e.charOrCode;if((_462&&(c==k.LEFT_ARROW||c==k.UP_ARROW))||(e.ctrlKey&&c==k.PAGE_UP)){this._adjacent(false)._buttonWidget._onTitleClick();dojo.stopEvent(e);}else{if((_462&&(c==k.RIGHT_ARROW||c==k.DOWN_ARROW))||(e.ctrlKey&&(c==k.PAGE_DOWN||c==k.TAB))){this._adjacent(true)._buttonWidget._onTitleClick();dojo.stopEvent(e);}}}});dojo.declare("dijit.layout._AccordionInnerContainer",[dijit._Widget,dijit._CssStateMixin],{baseClass:"dijitAccordionInnerContainer",isContainer:true,isLayoutContainer:true,buildRendering:function(){this.domNode=dojo.place("<div class='"+this.baseClass+"'>",this.contentWidget.domNode,"after");var _463=this.contentWidget,cls=dojo.getObject(this.buttonWidget);this.button=_463._buttonWidget=(new cls({contentWidget:_463,label:_463.title,title:_463.tooltip,dir:_463.dir,lang:_463.lang,iconClass:_463.iconClass,id:_463.id+"_button",parent:this.parent})).placeAt(this.domNode);this.containerNode=dojo.place("<div class='dijitAccordionChildWrapper' style='display:none'>",this.domNode);dojo.place(this.contentWidget.domNode,this.containerNode);},postCreate:function(){this.inherited(arguments);var _464=this.button;this._contentWidgetWatches=[this.contentWidget.watch("title",dojo.hitch(this,function(name,_465,_466){_464.set("label",_466);})),this.contentWidget.watch("tooltip",dojo.hitch(this,function(name,_467,_468){_464.set("title",_468);})),this.contentWidget.watch("iconClass",dojo.hitch(this,function(name,_469,_46a){_464.set("iconClass",_46a);}))];},_setSelectedAttr:function(_46b){this._set("selected",_46b);this.button.set("selected",_46b);if(_46b){var cw=this.contentWidget;if(cw.onSelected){cw.onSelected();}}},startup:function(){this.contentWidget.startup();},destroy:function(){this.button.destroyRecursive();dojo.forEach(this._contentWidgetWatches||[],function(w){w.unwatch();});delete this.contentWidget._buttonWidget;delete this.contentWidget._wrapperWidget;this.inherited(arguments);},destroyDescendants:function(){this.contentWidget.destroyRecursive();}});dojo.declare("dijit.layout._AccordionButton",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:dojo.cache("dijit.layout","templates/AccordionButton.html","<div dojoAttachEvent='onclick:_onTitleClick' class='dijitAccordionTitle'>\n\t<div dojoAttachPoint='titleNode,focusNode' dojoAttachEvent='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' role=\"tab\" aria-expanded=\"false\"\n\t\t><span class='dijitInline dijitAccordionArrow' role=\"presentation\"></span\n\t\t><span class='arrowTextUp' role=\"presentation\">+</span\n\t\t><span class='arrowTextDown' role=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' style=\"vertical-align: middle\" role=\"presentation\"/>\n\t\t<span role=\"presentation\" dojoAttachPoint='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.layout.ContentPane.prototype.attributeMap),{label:{node:"titleTextNode",type:"innerHTML"},title:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClass:{node:"iconNode",type:"class"}}),baseClass:"dijitAccordionTitle",getParent:function(){return this.parent;},buildRendering:function(){this.inherited(arguments);var _46c=this.id.replace(" ","_");dojo.attr(this.titleTextNode,"id",_46c+"_title");dijit.setWaiState(this.focusNode,"labelledby",dojo.attr(this.titleTextNode,"id"));dojo.setSelectable(this.domNode,false);},getTitleHeight:function(){return dojo._getMarginSize(this.domNode).h;},_onTitleClick:function(){var _46d=this.getParent();_46d.selectChild(this.contentWidget,true);dijit.focus(this.focusNode);},_onTitleKeyPress:function(evt){return this.getParent()._onKeyPress(evt,this.contentWidget);},_setSelectedAttr:function(_46e){this._set("selected",_46e);dijit.setWaiState(this.focusNode,"expanded",_46e);dijit.setWaiState(this.focusNode,"selected",_46e);this.focusNode.setAttribute("tabIndex",_46e?"0":"-1");}});}if(!dojo._hasResource["dijit.layout.BorderContainer"]){dojo._hasResource["dijit.layout.BorderContainer"]=true;dojo.provide("dijit.layout.BorderContainer");dojo.declare("dijit.layout.BorderContainer",dijit.layout._LayoutWidget,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:"dijit.layout._Splitter",postMixInProperties:function(){if(!this.gutters){this.baseClass+="NoGutter";}this.inherited(arguments);},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments);},_setupChild:function(_46f){var _470=_46f.region;if(_470){this.inherited(arguments);dojo.addClass(_46f.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(_470=="leading"){_470=ltr?"left":"right";}if(_470=="trailing"){_470=ltr?"right":"left";}if(_470!="center"&&(_46f.splitter||this.gutters)&&!_46f._splitterWidget){var _471=dojo.getObject(_46f.splitter?this._splitterClass:"dijit.layout._Gutter");var _472=new _471({id:_46f.id+"_splitter",container:this,child:_46f,region:_470,live:this.liveSplitters});_472.isSplitter=true;_46f._splitterWidget=_472;dojo.place(_472.domNode,_46f.domNode,"after");_472.startup();}_46f.region=_470;}},layout:function(){this._layoutChildren();},addChild:function(_473,_474){this.inherited(arguments);if(this._started){this.layout();}},removeChild:function(_475){var _476=_475.region;var _477=_475._splitterWidget;if(_477){_477.destroy();delete _475._splitterWidget;}this.inherited(arguments);if(this._started){this._layoutChildren();}dojo.removeClass(_475.domNode,this.baseClass+"Pane");dojo.style(_475.domNode,{top:"auto",bottom:"auto",left:"auto",right:"auto",position:"static"});dojo.style(_475.domNode,_476=="top"||_476=="bottom"?"width":"height","auto");},getChildren:function(){return dojo.filter(this.inherited(arguments),function(_478){return !_478.isSplitter;});},getSplitter:function(_479){return dojo.filter(this.getChildren(),function(_47a){return _47a.region==_479;})[0]._splitterWidget;},resize:function(_47b,_47c){if(!this.cs||!this.pe){var node=this.domNode;this.cs=dojo.getComputedStyle(node);this.pe=dojo._getPadExtents(node,this.cs);this.pe.r=dojo._toPixelValue(node,this.cs.paddingRight);this.pe.b=dojo._toPixelValue(node,this.cs.paddingBottom);dojo.style(node,"padding","0px");}this.inherited(arguments);},_layoutChildren:function(_47d,_47e){if(!this._borderBox||!this._borderBox.h){return;}var _47f=dojo.map(this.getChildren(),function(_480,idx){return {pane:_480,weight:[_480.region=="center"?Infinity:0,_480.layoutPriority,(this.design=="sidebar"?1:-1)*(/top|bottom/.test(_480.region)?1:-1),idx]};},this);_47f.sort(function(a,b){var aw=a.weight,bw=b.weight;for(var i=0;i<aw.length;i++){if(aw[i]!=bw[i]){return aw[i]-bw[i];}}return 0;});var _481=[];dojo.forEach(_47f,function(_482){var pane=_482.pane;_481.push(pane);if(pane._splitterWidget){_481.push(pane._splitterWidget);}});var dim={l:this.pe.l,t:this.pe.t,w:this._borderBox.w-this.pe.w,h:this._borderBox.h-this.pe.h};dijit.layout.layoutChildren(this.domNode,dim,_481,_47d,_47e);},destroyRecursive:function(){dojo.forEach(this.getChildren(),function(_483){var _484=_483._splitterWidget;if(_484){_484.destroy();}delete _483._splitterWidget;});this.inherited(arguments);}});dojo.extend(dijit._Widget,{region:"",layoutPriority:0,splitter:false,minSize:0,maxSize:Infinity});dojo.declare("dijit.layout._Splitter",[dijit._Widget,dijit._Templated],{live:true,templateString:"<div class=\"dijitSplitter\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse\" tabIndex=\"0\" role=\"separator\"><div class=\"dijitSplitterThumb\"></div></div>",postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);this._factor=/top|left/.test(this.region)?1:-1;this._cookieName=this.container.id+"_"+this.region;},buildRendering:function(){this.inherited(arguments);dojo.addClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));if(this.container.persist){var _485=dojo.cookie(this._cookieName);if(_485){this.child.domNode.style[this.horizontal?"height":"width"]=_485;}}},_computeMaxSize:function(){var dim=this.horizontal?"h":"w",_486=dojo.marginBox(this.child.domNode)[dim],_487=dojo.filter(this.container.getChildren(),function(_488){return _488.region=="center";})[0],_489=dojo.marginBox(_487.domNode)[dim];return Math.min(this.child.maxSize,_486+_489);},_startDrag:function(e){if(!this.cover){this.cover=dojo.doc.createElement("div");dojo.addClass(this.cover,"dijitSplitterCover");dojo.place(this.cover,this.child.domNode,"after");}dojo.addClass(this.cover,"dijitSplitterCoverActive");if(this.fake){dojo.destroy(this.fake);}if(!(this._resize=this.live)){(this.fake=this.domNode.cloneNode(true)).removeAttribute("id");dojo.addClass(this.domNode,"dijitSplitterShadow");dojo.place(this.fake,this.domNode,"after");}dojo.addClass(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active");if(this.fake){dojo.removeClass(this.fake,"dijitSplitterHover dijitSplitter"+(this.horizontal?"H":"V")+"Hover");}var _48a=this._factor,_48b=this.horizontal,axis=_48b?"pageY":"pageX",_48c=e[axis],_48d=this.domNode.style,dim=_48b?"h":"w",_48e=dojo.marginBox(this.child.domNode)[dim],max=this._computeMaxSize(),min=this.child.minSize||20,_48f=this.region,_490=_48f=="top"||_48f=="bottom"?"top":"left",_491=parseInt(_48d[_490],10),_492=this._resize,_493=dojo.hitch(this.container,"_layoutChildren",this.child.id),de=dojo.doc;this._handlers=(this._handlers||[]).concat([dojo.connect(de,"onmousemove",this._drag=function(e,_494){var _495=e[axis]-_48c,_496=_48a*_495+_48e,_497=Math.max(Math.min(_496,max),min);if(_492||_494){_493(_497);}_48d[_490]=_495+_491+_48a*(_497-_496)+"px";}),dojo.connect(de,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent),dojo.connect(de,"onmouseup",this,"_stopDrag")]);dojo.stopEvent(e);},_onMouse:function(e){var o=(e.type=="mouseover"||e.type=="mouseenter");dojo.toggleClass(this.domNode,"dijitSplitterHover",o);dojo.toggleClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o);},_stopDrag:function(e){try{if(this.cover){dojo.removeClass(this.cover,"dijitSplitterCoverActive");}if(this.fake){dojo.destroy(this.fake);}dojo.removeClass(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active dijitSplitterShadow");this._drag(e);this._drag(e,true);}finally{this._cleanupHandlers();delete this._drag;}if(this.container.persist){dojo.cookie(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365});}},_cleanupHandlers:function(){dojo.forEach(this._handlers,dojo.disconnect);delete this._handlers;},_onKeyPress:function(e){this._resize=true;var _498=this.horizontal;var tick=1;var dk=dojo.keys;switch(e.charOrCode){case _498?dk.UP_ARROW:dk.LEFT_ARROW:tick*=-1;case _498?dk.DOWN_ARROW:dk.RIGHT_ARROW:break;default:return;}var _499=dojo._getMarginSize(this.child.domNode)[_498?"h":"w"]+this._factor*tick;this.container._layoutChildren(this.child.id,Math.max(Math.min(_499,this._computeMaxSize()),this.child.minSize));dojo.stopEvent(e);},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.cover;delete this.fake;this.inherited(arguments);}});dojo.declare("dijit.layout._Gutter",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitGutter\" role=\"presentation\"></div>",postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);},buildRendering:function(){this.inherited(arguments);dojo.addClass(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"));}});}if(!dojo._hasResource["dijit.layout._TabContainerBase"]){dojo._hasResource["dijit.layout._TabContainerBase"]=true;dojo.provide("dijit.layout._TabContainerBase");dojo.declare("dijit.layout._TabContainerBase",[dijit.layout.StackContainer,dijit._Templated],{tabPosition:"top",baseClass:"dijitTabContainer",tabStrip:false,nested:false,templateString:dojo.cache("dijit.layout","templates/TabContainer.html","<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" dojoAttachPoint=\"tablistNode\"></div>\n\t<div dojoAttachPoint=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" dojoAttachPoint=\"containerNode\"></div>\n</div>\n"),postMixInProperties:function(){this.baseClass+=this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"");this.srcNodeRef&&dojo.style(this.srcNodeRef,"visibility","hidden");this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.tablist=this._makeController(this.tablistNode);if(!this.doLayout){dojo.addClass(this.domNode,"dijitTabContainerNoLayout");}if(this.nested){dojo.addClass(this.domNode,"dijitTabContainerNested");dojo.addClass(this.tablist.containerNode,"dijitTabContainerTabListNested");dojo.addClass(this.tablistSpacer,"dijitTabContainerSpacerNested");dojo.addClass(this.containerNode,"dijitTabPaneWrapperNested");}else{dojo.addClass(this.domNode,"tabStrip-"+(this.tabStrip?"enabled":"disabled"));}},_setupChild:function(tab){dojo.addClass(tab.domNode,"dijitTabPane");this.inherited(arguments);},startup:function(){if(this._started){return;}this.tablist.startup();this.inherited(arguments);},layout:function(){if(!this._contentBox||typeof (this._contentBox.l)=="undefined"){return;}var sc=this.selectedChildWidget;if(this.doLayout){var _49a=this.tabPosition.replace(/-h/,"");this.tablist.layoutAlign=_49a;var _49b=[this.tablist,{domNode:this.tablistSpacer,layoutAlign:_49a},{domNode:this.containerNode,layoutAlign:"client"}];dijit.layout.layoutChildren(this.domNode,this._contentBox,_49b);this._containerContentBox=dijit.layout.marginBox2contentBox(this.containerNode,_49b[2]);if(sc&&sc.resize){sc.resize(this._containerContentBox);}}else{if(this.tablist.resize){var s=this.tablist.domNode.style;s.width="0";var _49c=dojo.contentBox(this.domNode).w;s.width="";this.tablist.resize({w:_49c});}if(sc&&sc.resize){sc.resize();}}},destroy:function(){if(this.tablist){this.tablist.destroy();}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.layout.TabController"]){dojo._hasResource["dijit.layout.TabController"]=true;dojo.provide("dijit.layout.TabController");dojo.declare("dijit.layout.TabController",dijit.layout.StackController,{templateString:"<div role='tablist' dojoAttachEvent='onkeypress:onkeypress'></div>",tabPosition:"top",buttonWidget:"dijit.layout._TabButton",_rectifyRtlTabList:function(){if(0>=this.tabPosition.indexOf("-h")){return;}if(!this.pane2button){return;}var _49d=0;for(var pane in this.pane2button){var ow=this.pane2button[pane].innerDiv.scrollWidth;_49d=Math.max(_49d,ow);}for(pane in this.pane2button){this.pane2button[pane].innerDiv.style.width=_49d+"px";}}});dojo.declare("dijit.layout._TabButton",dijit.layout._StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},templateString:dojo.cache("dijit.layout","templates/_TabButton.html","<div role=\"presentation\" dojoAttachPoint=\"titleNode\" dojoAttachEvent='onclick:onClick'>\n <div role=\"presentation\" class='dijitTabInnerDiv' dojoAttachPoint='innerDiv'>\n <div role=\"presentation\" class='dijitTabContent' dojoAttachPoint='tabContent'>\n \t<div role=\"presentation\" dojoAttachPoint='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitTabButtonIcon\" dojoAttachPoint='iconNode' />\n\t\t <span dojoAttachPoint='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" dojoAttachPoint='closeNode'\n\t\t \t\tdojoAttachEvent='onclick: onClickCloseButton' role=\"presentation\">\n\t\t <span dojoAttachPoint='closeText' class='dijitTabCloseText'>[x]</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"),scrollOnFocus:false,buildRendering:function(){this.inherited(arguments);dojo.setSelectable(this.containerNode,false);},startup:function(){this.inherited(arguments);var n=this.domNode;setTimeout(function(){n.className=n.className;},1);},_setCloseButtonAttr:function(disp){this._set("closeButton",disp);dojo.toggleClass(this.innerDiv,"dijitClosable",disp);this.closeNode.style.display=disp?"":"none";if(disp){var _49e=dojo.i18n.getLocalization("dijit","common");if(this.closeNode){dojo.attr(this.closeNode,"title",_49e.itemClose);}var _49e=dojo.i18n.getLocalization("dijit","common");this._closeMenu=new dijit.Menu({id:this.id+"_Menu",dir:this.dir,lang:this.lang,targetNodeIds:[this.domNode]});this._closeMenu.addChild(new dijit.MenuItem({label:_49e.itemClose,dir:this.dir,lang:this.lang,onClick:dojo.hitch(this,"onClickCloseButton")}));}else{if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}}},_setLabelAttr:function(_49f){this.inherited(arguments);if(this.showLabel==false&&!this.params.title){this.iconNode.alt=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||"");}},destroy:function(){if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.layout.ScrollingTabController"]){dojo._hasResource["dijit.layout.ScrollingTabController"]=true;dojo.provide("dijit.layout.ScrollingTabController");dojo.declare("dijit.layout.ScrollingTabController",dijit.layout.TabController,{templateString:dojo.cache("dijit.layout","templates/ScrollingTabController.html","<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerMenuButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\" containerId=\"${containerId}\" iconClass=\"dijitTabStripMenuIcon\"\n\t\t\tdropDownPosition=\"below-alt, above-alt\"\n\t\t\tdojoAttachPoint=\"_menuBtn\" showLabel=\"false\">▼</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\" iconClass=\"dijitTabStripSlideLeftIcon\"\n\t\t\tdojoAttachPoint=\"_leftBtn\" dojoAttachEvent=\"onClick: doSlideLeft\" showLabel=\"false\">◀</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\" iconClass=\"dijitTabStripSlideRightIcon\"\n\t\t\tdojoAttachPoint=\"_rightBtn\" dojoAttachEvent=\"onClick: doSlideRight\" showLabel=\"false\">▶</div>\n\t<div class='dijitTabListWrapper' dojoAttachPoint='tablistWrapper'>\n\t\t<div role='tablist' dojoAttachEvent='onkeypress:onkeypress'\n\t\t\t\tdojoAttachPoint='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>\n"),useMenu:true,useSlider:true,tabStripClass:"",widgetsInTemplate:true,_minScroll:5,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{"class":"containerNode"}),buildRendering:function(){this.inherited(arguments);var n=this.domNode;this.scrollNode=this.tablistWrapper;this._initButtons();if(!this.tabStripClass){this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None";dojo.addClass(n,"tabStrip-disabled");}dojo.addClass(this.tablistWrapper,this.tabStripClass);},onStartup:function(){this.inherited(arguments);dojo.style(this.domNode,"visibility","visible");this._postStartup=true;},onAddChild:function(page,_4a0){this.inherited(arguments);dojo.forEach(["label","iconClass"],function(attr){this.pane2watches[page.id].push(this.pane2button[page.id].watch(attr,dojo.hitch(this,function(name,_4a1,_4a2){if(this._postStartup&&this._dim){this.resize(this._dim);}})));},this);dojo.style(this.containerNode,"width",(dojo.style(this.containerNode,"width")+200)+"px");},onRemoveChild:function(page,_4a3){var _4a4=this.pane2button[page.id];if(this._selectedTab===_4a4.domNode){this._selectedTab=null;}this.inherited(arguments);},_initButtons:function(){this._btnWidth=0;this._buttons=dojo.query("> .tabStripButton",this.domNode).filter(function(btn){if((this.useMenu&&btn==this._menuBtn.domNode)||(this.useSlider&&(btn==this._rightBtn.domNode||btn==this._leftBtn.domNode))){this._btnWidth+=dojo._getMarginSize(btn).w;return true;}else{dojo.style(btn,"display","none");return false;}},this);},_getTabsWidth:function(){var _4a5=this.getChildren();if(_4a5.length){var _4a6=_4a5[this.isLeftToRight()?0:_4a5.length-1].domNode,_4a7=_4a5[this.isLeftToRight()?_4a5.length-1:0].domNode;return _4a7.offsetLeft+dojo.style(_4a7,"width")-_4a6.offsetLeft;}else{return 0;}},_enableBtn:function(_4a8){var _4a9=this._getTabsWidth();_4a8=_4a8||dojo.style(this.scrollNode,"width");return _4a9>0&&_4a8<_4a9;},resize:function(dim){if(this.domNode.offsetWidth==0){return;}this._dim=dim;this.scrollNode.style.height="auto";this._contentBox=dijit.layout.marginBox2contentBox(this.domNode,{h:0,w:dim.w});this._contentBox.h=this.scrollNode.offsetHeight;dojo.contentBox(this.domNode,this._contentBox);var _4aa=this._enableBtn(this._contentBox.w);this._buttons.style("display",_4aa?"":"none");this._leftBtn.layoutAlign="left";this._rightBtn.layoutAlign="right";this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left";dijit.layout.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]);if(this._selectedTab){if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var w=this.scrollNode,sl=this._convertToScrollLeft(this._getScrollForSelectedTab());w.scrollLeft=sl;}this._setButtonClass(this._getScroll());this._postResize=true;return {h:this._contentBox.h,w:dim.w};},_getScroll:function(){var sl=(this.isLeftToRight()||dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.isWebKit)?this.scrollNode.scrollLeft:dojo.style(this.containerNode,"width")-dojo.style(this.scrollNode,"width")+(dojo.isIE==8?-1:1)*this.scrollNode.scrollLeft;return sl;},_convertToScrollLeft:function(val){if(this.isLeftToRight()||dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.isWebKit){return val;}else{var _4ab=dojo.style(this.containerNode,"width")-dojo.style(this.scrollNode,"width");return (dojo.isIE==8?-1:1)*(val-_4ab);}},onSelectChild:function(page){var tab=this.pane2button[page.id];if(!tab||!page){return;}var node=tab.domNode;if(this._postResize&&node!=this._selectedTab){this._selectedTab=node;var sl=this._getScroll();if(sl>node.offsetLeft||sl+dojo.style(this.scrollNode,"width")<node.offsetLeft+dojo.style(node,"width")){this.createSmoothScroll().play();}}this.inherited(arguments);},_getScrollBounds:function(){var _4ac=this.getChildren(),_4ad=dojo.style(this.scrollNode,"width"),_4ae=dojo.style(this.containerNode,"width"),_4af=_4ae-_4ad,_4b0=this._getTabsWidth();if(_4ac.length&&_4b0>_4ad){return {min:this.isLeftToRight()?0:_4ac[_4ac.length-1].domNode.offsetLeft,max:this.isLeftToRight()?(_4ac[_4ac.length-1].domNode.offsetLeft+dojo.style(_4ac[_4ac.length-1].domNode,"width"))-_4ad:_4af};}else{var _4b1=this.isLeftToRight()?0:_4af;return {min:_4b1,max:_4b1};}},_getScrollForSelectedTab:function(){var w=this.scrollNode,n=this._selectedTab,_4b2=dojo.style(this.scrollNode,"width"),_4b3=this._getScrollBounds();var pos=(n.offsetLeft+dojo.style(n,"width")/2)-_4b2/2;pos=Math.min(Math.max(pos,_4b3.min),_4b3.max);return pos;},createSmoothScroll:function(x){if(arguments.length>0){var _4b4=this._getScrollBounds();x=Math.min(Math.max(x,_4b4.min),_4b4.max);}else{x=this._getScrollForSelectedTab();}if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var self=this,w=this.scrollNode,anim=new dojo._Animation({beforeBegin:function(){if(this.curve){delete this.curve;}var oldS=w.scrollLeft,newS=self._convertToScrollLeft(x);anim.curve=new dojo._Line(oldS,newS);},onAnimate:function(val){w.scrollLeft=val;}});this._anim=anim;this._setButtonClass(x);return anim;},_getBtnNode:function(e){var n=e.target;while(n&&!dojo.hasClass(n,"tabStripButton")){n=n.parentNode;}return n;},doSlideRight:function(e){this.doSlide(1,this._getBtnNode(e));},doSlideLeft:function(e){this.doSlide(-1,this._getBtnNode(e));},doSlide:function(_4b5,node){if(node&&dojo.hasClass(node,"dijitTabDisabled")){return;}var _4b6=dojo.style(this.scrollNode,"width");var d=(_4b6*0.75)*_4b5;var to=this._getScroll()+d;this._setButtonClass(to);this.createSmoothScroll(to).play();},_setButtonClass:function(_4b7){var _4b8=this._getScrollBounds();this._leftBtn.set("disabled",_4b7<=_4b8.min);this._rightBtn.set("disabled",_4b7>=_4b8.max);}});dojo.declare("dijit.layout._ScrollingTabControllerButtonMixin",null,{baseClass:"dijitTab tabStripButton",templateString:dojo.cache("dijit.layout","templates/_ScrollingTabControllerButton.html","<div dojoAttachEvent=\"onclick:_onButtonClick\">\n\t<div role=\"presentation\" class=\"dijitTabInnerDiv\" dojoattachpoint=\"innerDiv,focusNode\">\n\t\t<div role=\"presentation\" class=\"dijitTabContent dijitButtonContents\" dojoattachpoint=\"tabContent\">\n\t\t\t<img role=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t\t<span dojoAttachPoint=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>\n"),tabIndex:"",isFocusable:function(){return false;}});dojo.declare("dijit.layout._ScrollingTabControllerButton",[dijit.form.Button,dijit.layout._ScrollingTabControllerButtonMixin]);dojo.declare("dijit.layout._ScrollingTabControllerMenuButton",[dijit.form.Button,dijit._HasDropDown,dijit.layout._ScrollingTabControllerButtonMixin],{containerId:"",tabIndex:"-1",isLoaded:function(){return false;},loadDropDown:function(_4b9){this.dropDown=new dijit.Menu({id:this.containerId+"_menu",dir:this.dir,lang:this.lang});var _4ba=dijit.byId(this.containerId);dojo.forEach(_4ba.getChildren(),function(page){var _4bb=new dijit.MenuItem({id:page.id+"_stcMi",label:page.title,iconClass:page.iconClass,dir:page.dir,lang:page.lang,onClick:function(){_4ba.selectChild(page);}});this.dropDown.addChild(_4bb);},this);_4b9();},closeDropDown:function(_4bc){this.inherited(arguments);if(this.dropDown){this.dropDown.destroyRecursive();delete this.dropDown;}}});}if(!dojo._hasResource["dijit.layout.TabContainer"]){dojo._hasResource["dijit.layout.TabContainer"]=true;dojo.provide("dijit.layout.TabContainer");dojo.declare("dijit.layout.TabContainer",dijit.layout._TabContainerBase,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(_4bd){var cls=this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),_4be=dojo.getObject(this.controllerWidget);return new _4be({id:this.id+"_tablist",dir:this.dir,lang:this.lang,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":cls,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?"":"No")+"Strip":null},_4bd);},postMixInProperties:function(){this.inherited(arguments);if(!this.controllerWidget){this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?"dijit.layout.ScrollingTabController":"dijit.layout.TabController";}}});}if(!dojo._hasResource["dojo.number"]){dojo._hasResource["dojo.number"]=true;dojo.provide("dojo.number");dojo.getObject("number",true,dojo);dojo.number.format=function(_4bf,_4c0){_4c0=dojo.mixin({},_4c0||{});var _4c1=dojo.i18n.normalizeLocale(_4c0.locale),_4c2=dojo.i18n.getLocalization("dojo.cldr","number",_4c1);_4c0.customs=_4c2;var _4c3=_4c0.pattern||_4c2[(_4c0.type||"decimal")+"Format"];if(isNaN(_4bf)||Math.abs(_4bf)==Infinity){return null;}return dojo.number._applyPattern(_4bf,_4c3,_4c0);};dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;dojo.number._applyPattern=function(_4c4,_4c5,_4c6){_4c6=_4c6||{};var _4c7=_4c6.customs.group,_4c8=_4c6.customs.decimal,_4c9=_4c5.split(";"),_4ca=_4c9[0];_4c5=_4c9[(_4c4<0)?1:0]||("-"+_4ca);if(_4c5.indexOf("%")!=-1){_4c4*=100;}else{if(_4c5.indexOf("‰")!=-1){_4c4*=1000;}else{if(_4c5.indexOf("¤")!=-1){_4c7=_4c6.customs.currencyGroup||_4c7;_4c8=_4c6.customs.currencyDecimal||_4c8;_4c5=_4c5.replace(/\u00a4{1,3}/,function(_4cb){var prop=["symbol","currency","displayName"][_4cb.length-1];return _4c6[prop]||_4c6.currency||"";});}else{if(_4c5.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _4cc=dojo.number._numberPatternRE;var _4cd=_4ca.match(_4cc);if(!_4cd){throw new Error("unable to find a number expression in pattern: "+_4c5);}if(_4c6.fractional===false){_4c6.places=0;}return _4c5.replace(_4cc,dojo.number._formatAbsolute(_4c4,_4cd[0],{decimal:_4c8,group:_4c7,places:_4c6.places,round:_4c6.round}));};dojo.number.round=function(_4ce,_4cf,_4d0){var _4d1=10/(_4d0||10);return (_4d1*+_4ce).toFixed(_4cf)/_4d1;};if((0.9).toFixed()==0){(function(){var _4d2=dojo.number.round;dojo.number.round=function(v,p,m){var d=Math.pow(10,-p||0),a=Math.abs(v);if(!v||a>=d||a*Math.pow(10,p+1)<5){d=0;}return _4d2(v,p,m)+(v>0?d:-d);};})();}dojo.number._formatAbsolute=function(_4d3,_4d4,_4d5){_4d5=_4d5||{};if(_4d5.places===true){_4d5.places=0;}if(_4d5.places===Infinity){_4d5.places=6;}var _4d6=_4d4.split("."),_4d7=typeof _4d5.places=="string"&&_4d5.places.indexOf(","),_4d8=_4d5.places;if(_4d7){_4d8=_4d5.places.substring(_4d7+1);}else{if(!(_4d8>=0)){_4d8=(_4d6[1]||[]).length;}}if(!(_4d5.round<0)){_4d3=dojo.number.round(_4d3,_4d8,_4d5.round);}var _4d9=String(Math.abs(_4d3)).split("."),_4da=_4d9[1]||"";if(_4d6[1]||_4d5.places){if(_4d7){_4d5.places=_4d5.places.substring(0,_4d7);}var pad=_4d5.places!==undefined?_4d5.places:(_4d6[1]&&_4d6[1].lastIndexOf("0")+1);if(pad>_4da.length){_4d9[1]=dojo.string.pad(_4da,pad,"0",true);}if(_4d8<_4da.length){_4d9[1]=_4da.substr(0,_4d8);}}else{if(_4d9[1]){_4d9.pop();}}var _4db=_4d6[0].replace(",","");pad=_4db.indexOf("0");if(pad!=-1){pad=_4db.length-pad;if(pad>_4d9[0].length){_4d9[0]=dojo.string.pad(_4d9[0],pad);}if(_4db.indexOf("#")==-1){_4d9[0]=_4d9[0].substr(_4d9[0].length-pad);}}var _4dc=_4d6[0].lastIndexOf(","),_4dd,_4de;if(_4dc!=-1){_4dd=_4d6[0].length-_4dc-1;var _4df=_4d6[0].substr(0,_4dc);_4dc=_4df.lastIndexOf(",");if(_4dc!=-1){_4de=_4df.length-_4dc-1;}}var _4e0=[];for(var _4e1=_4d9[0];_4e1;){var off=_4e1.length-_4dd;_4e0.push((off>0)?_4e1.substr(off):_4e1);_4e1=(off>0)?_4e1.slice(0,off):"";if(_4de){_4dd=_4de;delete _4de;}}_4d9[0]=_4e0.reverse().join(_4d5.group||",");return _4d9.join(_4d5.decimal||".");};dojo.number.regexp=function(_4e2){return dojo.number._parseInfo(_4e2).regexp;};dojo.number._parseInfo=function(_4e3){_4e3=_4e3||{};var _4e4=dojo.i18n.normalizeLocale(_4e3.locale),_4e5=dojo.i18n.getLocalization("dojo.cldr","number",_4e4),_4e6=_4e3.pattern||_4e5[(_4e3.type||"decimal")+"Format"],_4e7=_4e5.group,_4e8=_4e5.decimal,_4e9=1;if(_4e6.indexOf("%")!=-1){_4e9/=100;}else{if(_4e6.indexOf("‰")!=-1){_4e9/=1000;}else{var _4ea=_4e6.indexOf("¤")!=-1;if(_4ea){_4e7=_4e5.currencyGroup||_4e7;_4e8=_4e5.currencyDecimal||_4e8;}}}var _4eb=_4e6.split(";");if(_4eb.length==1){_4eb.push("-"+_4eb[0]);}var re=dojo.regexp.buildGroupRE(_4eb,function(_4ec){_4ec="(?:"+dojo.regexp.escapeString(_4ec,".")+")";return _4ec.replace(dojo.number._numberPatternRE,function(_4ed){var _4ee={signed:false,separator:_4e3.strict?_4e7:[_4e7,""],fractional:_4e3.fractional,decimal:_4e8,exponent:false},_4ef=_4ed.split("."),_4f0=_4e3.places;if(_4ef.length==1&&_4e9!=1){_4ef[1]="###";}if(_4ef.length==1||_4f0===0){_4ee.fractional=false;}else{if(_4f0===undefined){_4f0=_4e3.pattern?_4ef[1].lastIndexOf("0")+1:Infinity;}if(_4f0&&_4e3.fractional==undefined){_4ee.fractional=true;}if(!_4e3.places&&(_4f0<_4ef[1].length)){_4f0+=","+_4ef[1].length;}_4ee.places=_4f0;}var _4f1=_4ef[0].split(",");if(_4f1.length>1){_4ee.groupSize=_4f1.pop().length;if(_4f1.length>1){_4ee.groupSize2=_4f1.pop().length;}}return "("+dojo.number._realNumberRegexp(_4ee)+")";});},true);if(_4ea){re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_4f2,_4f3,_4f4,_4f5){var prop=["symbol","currency","displayName"][_4f4.length-1],_4f6=dojo.regexp.escapeString(_4e3[prop]||_4e3.currency||"");_4f3=_4f3?"[\\s\\xa0]":"";_4f5=_4f5?"[\\s\\xa0]":"";if(!_4e3.strict){if(_4f3){_4f3+="*";}if(_4f5){_4f5+="*";}return "(?:"+_4f3+_4f6+_4f5+")?";}return _4f3+_4f6+_4f5;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_4e7,decimal:_4e8,factor:_4e9};};dojo.number.parse=function(_4f7,_4f8){var info=dojo.number._parseInfo(_4f8),_4f9=(new RegExp("^"+info.regexp+"$")).exec(_4f7);if(!_4f9){return NaN;}var _4fa=_4f9[1];if(!_4f9[1]){if(!_4f9[2]){return NaN;}_4fa=_4f9[2];info.factor*=-1;}_4fa=_4fa.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return _4fa*info.factor;};dojo.number._realNumberRegexp=function(_4fb){_4fb=_4fb||{};if(!("places" in _4fb)){_4fb.places=Infinity;}if(typeof _4fb.decimal!="string"){_4fb.decimal=".";}if(!("fractional" in _4fb)||/^0/.test(_4fb.places)){_4fb.fractional=[true,false];}if(!("exponent" in _4fb)){_4fb.exponent=[true,false];}if(!("eSigned" in _4fb)){_4fb.eSigned=[true,false];}var _4fc=dojo.number._integerRegexp(_4fb),_4fd=dojo.regexp.buildGroupRE(_4fb.fractional,function(q){var re="";if(q&&(_4fb.places!==0)){re="\\"+_4fb.decimal;if(_4fb.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_4fb.places+"}";}}return re;},true);var _4fe=dojo.regexp.buildGroupRE(_4fb.exponent,function(q){if(q){return "([eE]"+dojo.number._integerRegexp({signed:_4fb.eSigned})+")";}return "";});var _4ff=_4fc+_4fd;if(_4fd){_4ff="(?:(?:"+_4ff+")|(?:"+_4fd+"))";}return _4ff+_4fe;};dojo.number._integerRegexp=function(_500){_500=_500||{};if(!("signed" in _500)){_500.signed=[true,false];}if(!("separator" in _500)){_500.separator="";}else{if(!("groupSize" in _500)){_500.groupSize=3;}}var _501=dojo.regexp.buildGroupRE(_500.signed,function(q){return q?"[-+]":"";},true);var _502=dojo.regexp.buildGroupRE(_500.separator,function(sep){if(!sep){return "(?:\\d+)";}sep=dojo.regexp.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep==" "){sep="\\s\\xa0";}}var grp=_500.groupSize,grp2=_500.groupSize2;if(grp2){var _503="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return ((grp-grp2)>0)?"(?:"+_503+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_503;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _501+_502;};}if(!dojo._hasResource["dijit.ProgressBar"]){dojo._hasResource["dijit.ProgressBar"]=true;dojo.provide("dijit.ProgressBar");dojo.declare("dijit.ProgressBar",[dijit._Widget,dijit._Templated],{progress:"0",value:"",maximum:100,places:0,indeterminate:false,label:"",name:"",templateString:dojo.cache("dijit","templates/ProgressBar.html","<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div dojoAttachPoint=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\"> </span\n\t></div\n\t><div dojoAttachPoint=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><img dojoAttachPoint=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"),_indeterminateHighContrastImagePath:dojo.moduleUrl("dijit","themes/a11y/indeterminate_progress.gif"),postMixInProperties:function(){this.inherited(arguments);if(!("value" in this.params)){this.value=this.indeterminate?Infinity:this.progress;}},buildRendering:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update();},update:function(_504){dojo.mixin(this,_504||{});var tip=this.internalProgress,ap=this.domNode;var _505=1;if(this.indeterminate){dijit.removeWaiState(ap,"valuenow");dijit.removeWaiState(ap,"valuemin");dijit.removeWaiState(ap,"valuemax");}else{if(String(this.progress).indexOf("%")!=-1){_505=Math.min(parseFloat(this.progress)/100,1);this.progress=_505*this.maximum;}else{this.progress=Math.min(this.progress,this.maximum);_505=this.progress/this.maximum;}dijit.setWaiState(ap,"describedby",this.labelNode.id);dijit.setWaiState(ap,"valuenow",this.progress);dijit.setWaiState(ap,"valuemin",0);dijit.setWaiState(ap,"valuemax",this.maximum);}this.labelNode.innerHTML=this.report(_505);dojo.toggleClass(this.domNode,"dijitProgressBarIndeterminate",this.indeterminate);tip.style.width=(_505*100)+"%";this.onChange();},_setValueAttr:function(v){this._set("value",v);if(v==Infinity){this.update({indeterminate:true});}else{this.update({indeterminate:false,progress:v});}},_setLabelAttr:function(_506){this._set("label",_506);this.update();},_setIndeterminateAttr:function(_507){this.indeterminate=_507;this.update();},report:function(_508){return this.label?this.label:(this.indeterminate?" ":dojo.number.format(_508,{type:"percent",places:this.places,locale:this.lang}));},onChange:function(){}});}if(!dojo._hasResource["dijit.ToolbarSeparator"]){dojo._hasResource["dijit.ToolbarSeparator"]=true;dojo.provide("dijit.ToolbarSeparator");dojo.declare("dijit.ToolbarSeparator",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitToolbarSeparator dijitInline\" role=\"presentation\"></div>",buildRendering:function(){this.inherited(arguments);dojo.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});}if(!dojo._hasResource["dijit.Toolbar"]){dojo._hasResource["dijit.Toolbar"]=true;dojo.provide("dijit.Toolbar");dojo.declare("dijit.Toolbar",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{templateString:"<div class=\"dijit\" role=\"toolbar\" tabIndex=\"${tabIndex}\" dojoAttachPoint=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",postCreate:function(){this.inherited(arguments);this.connectKeyNavHandlers(this.isLeftToRight()?[dojo.keys.LEFT_ARROW]:[dojo.keys.RIGHT_ARROW],this.isLeftToRight()?[dojo.keys.RIGHT_ARROW]:[dojo.keys.LEFT_ARROW]);},startup:function(){if(this._started){return;}this.startupKeyNavChildren();this.inherited(arguments);}});}if(!dojo._hasResource["dojo.DeferredList"]){dojo._hasResource["dojo.DeferredList"]=true;dojo.provide("dojo.DeferredList");dojo.DeferredList=function(list,_509,_50a,_50b,_50c){var _50d=[];dojo.Deferred.call(this);var self=this;if(list.length===0&&!_509){this.resolve([0,[]]);}var _50e=0;dojo.forEach(list,function(item,i){item.then(function(_50f){if(_509){self.resolve([i,_50f]);}else{_510(true,_50f);}},function(_511){if(_50a){self.reject(_511);}else{_510(false,_511);}if(_50b){return null;}throw _511;});function _510(_512,_513){_50d[i]=[_512,_513];_50e++;if(_50e===list.length){self.resolve(_50d);}};});};dojo.DeferredList.prototype=new dojo.Deferred();dojo.DeferredList.prototype.gatherResults=function(_514){var d=new dojo.DeferredList(_514,false,true,false);d.addCallback(function(_515){var ret=[];dojo.forEach(_515,function(_516){ret.push(_516[1]);});return ret;});return d;};}if(!dojo._hasResource["dijit.tree.TreeStoreModel"]){dojo._hasResource["dijit.tree.TreeStoreModel"]=true;dojo.provide("dijit.tree.TreeStoreModel");dojo.declare("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(args){dojo.mixin(this,args);this.connects=[];var _517=this.store;if(!_517.getFeatures()["dojo.data.api.Identity"]){throw new Error("dijit.Tree: store must support dojo.data.Identity");}if(_517.getFeatures()["dojo.data.api.Notification"]){this.connects=this.connects.concat([dojo.connect(_517,"onNew",this,"onNewItem"),dojo.connect(_517,"onDelete",this,"onDeleteItem"),dojo.connect(_517,"onSet",this,"onSetItem")]);}},destroy:function(){dojo.forEach(this.connects,dojo.disconnect);},getRoot:function(_518,_519){if(this.root){_518(this.root);}else{this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_51a){if(_51a.length!=1){throw new Error(this.declaredClass+": query "+dojo.toJson(this.query)+" returned "+_51a.length+" items, but must return exactly one item");}this.root=_51a[0];_518(this.root);}),onError:_519});}},mayHaveChildren:function(item){return dojo.some(this.childrenAttrs,function(attr){return this.store.hasAttribute(item,attr);},this);},getChildren:function(_51b,_51c,_51d){var _51e=this.store;if(!_51e.isItemLoaded(_51b)){var _51f=dojo.hitch(this,arguments.callee);_51e.loadItem({item:_51b,onItem:function(_520){_51f(_520,_51c,_51d);},onError:_51d});return;}var _521=[];for(var i=0;i<this.childrenAttrs.length;i++){var vals=_51e.getValues(_51b,this.childrenAttrs[i]);_521=_521.concat(vals);}var _522=0;if(!this.deferItemLoadingUntilExpand){dojo.forEach(_521,function(item){if(!_51e.isItemLoaded(item)){_522++;}});}if(_522==0){_51c(_521);}else{dojo.forEach(_521,function(item,idx){if(!_51e.isItemLoaded(item)){_51e.loadItem({item:item,onItem:function(item){_521[idx]=item;if(--_522==0){_51c(_521);}},onError:_51d});}});}},isItem:function(_523){return this.store.isItem(_523);},fetchItemByIdentity:function(_524){this.store.fetchItemByIdentity(_524);},getIdentity:function(item){return this.store.getIdentity(item);},getLabel:function(item){if(this.labelAttr){return this.store.getValue(item,this.labelAttr);}else{return this.store.getLabel(item);}},newItem:function(args,_525,_526){var _527={parent:_525,attribute:this.childrenAttrs[0]},_528;if(this.newItemIdAttr&&args[this.newItemIdAttr]){this.fetchItemByIdentity({identity:args[this.newItemIdAttr],scope:this,onItem:function(item){if(item){this.pasteItem(item,null,_525,true,_526);}else{_528=this.store.newItem(args,_527);if(_528&&(_526!=undefined)){this.pasteItem(_528,_525,_525,false,_526);}}}});}else{_528=this.store.newItem(args,_527);if(_528&&(_526!=undefined)){this.pasteItem(_528,_525,_525,false,_526);}}},pasteItem:function(_529,_52a,_52b,_52c,_52d){var _52e=this.store,_52f=this.childrenAttrs[0];if(_52a){dojo.forEach(this.childrenAttrs,function(attr){if(_52e.containsValue(_52a,attr,_529)){if(!_52c){var _530=dojo.filter(_52e.getValues(_52a,attr),function(x){return x!=_529;});_52e.setValues(_52a,attr,_530);}_52f=attr;}});}if(_52b){if(typeof _52d=="number"){var _531=_52e.getValues(_52b,_52f).slice();_531.splice(_52d,0,_529);_52e.setValues(_52b,_52f,_531);}else{_52e.setValues(_52b,_52f,_52e.getValues(_52b,_52f).concat(_529));}}},onChange:function(item){},onChildrenChange:function(_532,_533){},onDelete:function(_534,_535){},onNewItem:function(item,_536){if(!_536){return;}this.getChildren(_536.item,dojo.hitch(this,function(_537){this.onChildrenChange(_536.item,_537);}));},onDeleteItem:function(item){this.onDelete(item);},onSetItem:function(item,_538,_539,_53a){if(dojo.indexOf(this.childrenAttrs,_538)!=-1){this.getChildren(item,dojo.hitch(this,function(_53b){this.onChildrenChange(item,_53b);}));}else{this.onChange(item);}}});}if(!dojo._hasResource["dijit.tree.ForestStoreModel"]){dojo._hasResource["dijit.tree.ForestStoreModel"]=true;dojo.provide("dijit.tree.ForestStoreModel");dojo.declare("dijit.tree.ForestStoreModel",dijit.tree.TreeStoreModel,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_53c){this.root={store:this,root:true,id:_53c.rootId,label:_53c.rootLabel,children:_53c.rootChildren};},mayHaveChildren:function(item){return item===this.root||this.inherited(arguments);},getChildren:function(_53d,_53e,_53f){if(_53d===this.root){if(this.root.children){_53e(this.root.children);}else{this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_540){this.root.children=_540;_53e(_540);}),onError:_53f});}}else{this.inherited(arguments);}},isItem:function(_541){return (_541===this.root)?true:this.inherited(arguments);},fetchItemByIdentity:function(_542){if(_542.identity==this.root.id){var _543=_542.scope?_542.scope:dojo.global;if(_542.onItem){_542.onItem.call(_543,this.root);}}else{this.inherited(arguments);}},getIdentity:function(item){return (item===this.root)?this.root.id:this.inherited(arguments);},getLabel:function(item){return (item===this.root)?this.root.label:this.inherited(arguments);},newItem:function(args,_544,_545){if(_544===this.root){this.onNewRootItem(args);return this.store.newItem(args);}else{return this.inherited(arguments);}},onNewRootItem:function(args){},pasteItem:function(_546,_547,_548,_549,_54a){if(_547===this.root){if(!_549){this.onLeaveRoot(_546);}}dijit.tree.TreeStoreModel.prototype.pasteItem.call(this,_546,_547===this.root?null:_547,_548===this.root?null:_548,_549,_54a);if(_548===this.root){this.onAddToRoot(_546);}},onAddToRoot:function(item){console.log(this,": item ",item," added to root");},onLeaveRoot:function(item){console.log(this,": item ",item," removed from root");},_requeryTop:function(){var _54b=this.root.children||[];this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_54c){this.root.children=_54c;if(_54b.length!=_54c.length||dojo.some(_54b,function(item,idx){return _54c[idx]!=item;})){this.onChildrenChange(this.root,_54c);}})});},onNewItem:function(item,_54d){this._requeryTop();this.inherited(arguments);},onDeleteItem:function(item){if(dojo.indexOf(this.root.children,item)!=-1){this._requeryTop();}this.inherited(arguments);},onSetItem:function(item,_54e,_54f,_550){this._requeryTop();this.inherited(arguments);}});}if(!dojo._hasResource["dojo.dnd.Container"]){dojo._hasResource["dojo.dnd.Container"]=true;dojo.provide("dojo.dnd.Container");dojo.declare("dojo.dnd.Container",null,{skipForm:false,constructor:function(node,_551){this.node=dojo.byId(node);if(!_551){_551={};}this.creator=_551.creator||null;this.skipForm=_551.skipForm;this.parent=_551.dropParent&&dojo.byId(_551.dropParent);this.map={};this.current=null;this.containerState="";dojo.addClass(this.node,"dojoDndContainer");if(!(_551&&_551._skipStartup)){this.startup();}this.events=[dojo.connect(this.node,"onmouseover",this,"onMouseOver"),dojo.connect(this.node,"onmouseout",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",this,"onSelectStart"),dojo.connect(this.node,"onselectstart",this,"onSelectStart")];},creator:function(){},getItem:function(key){return this.map[key];},setItem:function(key,data){this.map[key]=data;},delItem:function(key){delete this.map[key];},forInItems:function(f,o){o=o||dojo.global;var m=this.map,e=dojo.dnd._empty;for(var i in m){if(i in e){continue;}f.call(o,m[i],i,this);}return o;},clearItems:function(){this.map={};},getAllNodes:function(){return dojo.query("> .dojoDndItem",this.parent);},sync:function(){var map={};this.getAllNodes().forEach(function(node){if(node.id){var item=this.getItem(node.id);if(item){map[node.id]=item;return;}}else{node.id=dojo.dnd.getUniqueId();}var type=node.getAttribute("dndType"),data=node.getAttribute("dndData");map[node.id]={data:data||node.innerHTML,type:type?type.split(/\s*,\s*/):["text"]};},this);this.map=map;return this;},insertNodes:function(data,_552,_553){if(!this.parent.firstChild){_553=null;}else{if(_552){if(!_553){_553=this.parent.firstChild;}}else{if(_553){_553=_553.nextSibling;}}}if(_553){for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.insertBefore(t.node,_553);}}else{for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node);}}return this;},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.clearItems();this.node=this.parent=this.current=null;},markupFactory:function(_554,node){_554._skipStartup=true;return new dojo.dnd.Container(node,_554);},startup:function(){if(!this.parent){this.parent=this.node;if(this.parent.tagName.toLowerCase()=="table"){var c=this.parent.getElementsByTagName("tbody");if(c&&c.length){this.parent=c[0];}}}this.defaultCreator=dojo.dnd._defaultCreator(this.parent);this.sync();},onMouseOver:function(e){var n=e.relatedTarget;while(n){if(n==this.node){break;}try{n=n.parentNode;}catch(x){n=null;}}if(!n){this._changeState("Container","Over");this.onOverEvent();}n=this._getChildByEvent(e);if(this.current==n){return;}if(this.current){this._removeItemClass(this.current,"Over");}if(n){this._addItemClass(n,"Over");}this.current=n;},onMouseOut:function(e){for(var n=e.relatedTarget;n;){if(n==this.node){return;}try{n=n.parentNode;}catch(x){n=null;}}if(this.current){this._removeItemClass(this.current,"Over");this.current=null;}this._changeState("Container","");this.onOutEvent();},onSelectStart:function(e){if(!this.skipForm||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(type,_555){var _556="dojoDnd"+type;var _557=type.toLowerCase()+"State";dojo.replaceClass(this.node,_556+_555,_556+this[_557]);this[_557]=_555;},_addItemClass:function(node,type){dojo.addClass(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){dojo.removeClass(node,"dojoDndItem"+type);},_getChildByEvent:function(e){var node=e.target;if(node){for(var _558=node.parentNode;_558;node=_558,_558=node.parentNode){if(_558==this.parent&&dojo.hasClass(node,"dojoDndItem")){return node;}}}return null;},_normalizedCreator:function(item,hint){var t=(this.creator||this.defaultCreator).call(this,item,hint);if(!dojo.isArray(t.type)){t.type=["text"];}if(!t.node.id){t.node.id=dojo.dnd.getUniqueId();}dojo.addClass(t.node,"dojoDndItem");return t;}});dojo.dnd._createNode=function(tag){if(!tag){return dojo.dnd._createSpan;}return function(text){return dojo.create(tag,{innerHTML:text});};};dojo.dnd._createTrTd=function(text){var tr=dojo.create("tr");dojo.create("td",{innerHTML:text},tr);return tr;};dojo.dnd._createSpan=function(text){return dojo.create("span",{innerHTML:text});};dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};dojo.dnd._defaultCreator=function(node){var tag=node.tagName.toLowerCase();var c=tag=="tbody"||tag=="thead"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]);return function(item,hint){var _559=item&&dojo.isObject(item),data,type,n;if(_559&&item.tagName&&item.nodeType&&item.getAttribute){data=item.getAttribute("dndData")||item.innerHTML;type=item.getAttribute("dndType");type=type?type.split(/\s*,\s*/):["text"];n=item;}else{data=(_559&&item.data)?item.data:item;type=(_559&&item.type)?item.type:["text"];n=(hint=="avatar"?dojo.dnd._createSpan:c)(String(data));}if(!n.id){n.id=dojo.dnd.getUniqueId();}return {node:n,data:data,type:type};};};}if(!dojo._hasResource["dijit.tree._dndContainer"]){dojo._hasResource["dijit.tree._dndContainer"]=true;dojo.provide("dijit.tree._dndContainer");dojo.getObject("tree",true,dojo);dijit.tree._compareNodes=function(n1,n2){if(n1===n2){return 0;}if("sourceIndex" in document.documentElement){return n1.sourceIndex-n2.sourceIndex;}else{if("compareDocumentPosition" in document.documentElement){return n1.compareDocumentPosition(n2)&2?1:-1;}else{if(document.createRange){var r1=doc.createRange();r1.setStartBefore(n1);var r2=doc.createRange();r2.setStartBefore(n2);return r1.compareBoundaryPoints(r1.END_TO_END,r2);}else{throw Error("dijit.tree._compareNodes don't know how to compare two different nodes in this browser");}}}};dojo.declare("dijit.tree._dndContainer",null,{constructor:function(tree,_55a){this.tree=tree;this.node=tree.domNode;dojo.mixin(this,_55a);this.map={};this.current=null;this.containerState="";dojo.addClass(this.node,"dojoDndContainer");this.events=[dojo.connect(this.node,"onmouseenter",this,"onOverEvent"),dojo.connect(this.node,"onmouseleave",this,"onOutEvent"),dojo.connect(this.tree,"_onNodeMouseEnter",this,"onMouseOver"),dojo.connect(this.tree,"_onNodeMouseLeave",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",dojo,"stopEvent"),dojo.connect(this.node,"onselectstart",dojo,"stopEvent")];},getItem:function(key){var _55b=this.selection[key],ret={data:_55b,type:["treeNode"]};return ret;},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.node=this.parent=null;},onMouseOver:function(_55c,evt){this.current=_55c;},onMouseOut:function(_55d,evt){this.current=null;},_changeState:function(type,_55e){var _55f="dojoDnd"+type;var _560=type.toLowerCase()+"State";dojo.replaceClass(this.node,_55f+_55e,_55f+this[_560]);this[_560]=_55e;},_addItemClass:function(node,type){dojo.addClass(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){dojo.removeClass(node,"dojoDndItem"+type);},onOverEvent:function(){this._changeState("Container","Over");},onOutEvent:function(){this._changeState("Container","");}});}if(!dojo._hasResource["dijit.tree._dndSelector"]){dojo._hasResource["dijit.tree._dndSelector"]=true;dojo.provide("dijit.tree._dndSelector");dojo.declare("dijit.tree._dndSelector",dijit.tree._dndContainer,{constructor:function(tree,_561){this.selection={};this.anchor=null;dijit.setWaiState(this.tree.domNode,"multiselect",!this.singular);this.events.push(dojo.connect(this.tree.domNode,"onmousedown",this,"onMouseDown"),dojo.connect(this.tree.domNode,"onmouseup",this,"onMouseUp"),dojo.connect(this.tree.domNode,"onmousemove",this,"onMouseMove"));},singular:false,getSelectedTreeNodes:function(){var _562=[],sel=this.selection;for(var i in sel){_562.push(sel[i]);}return _562;},selectNone:function(){this.setSelection([]);return this;},destroy:function(){this.inherited(arguments);this.selection=this.anchor=null;},addTreeNode:function(node,_563){this.setSelection(this.getSelectedTreeNodes().concat([node]));if(_563){this.anchor=node;}return node;},removeTreeNode:function(node){this.setSelection(this._setDifference(this.getSelectedTreeNodes(),[node]));return node;},isTreeNodeSelected:function(node){return node.id&&!!this.selection[node.id];},setSelection:function(_564){var _565=this.getSelectedTreeNodes();dojo.forEach(this._setDifference(_565,_564),dojo.hitch(this,function(node){node.setSelected(false);if(this.anchor==node){delete this.anchor;}delete this.selection[node.id];}));dojo.forEach(this._setDifference(_564,_565),dojo.hitch(this,function(node){node.setSelected(true);this.selection[node.id]=node;}));this._updateSelectionProperties();},_setDifference:function(xs,ys){dojo.forEach(ys,function(y){y.__exclude__=true;});var ret=dojo.filter(xs,function(x){return !x.__exclude__;});dojo.forEach(ys,function(y){delete y["__exclude__"];});return ret;},_updateSelectionProperties:function(){var _566=this.getSelectedTreeNodes();var _567=[],_568=[];dojo.forEach(_566,function(node){_568.push(node);_567.push(node.getTreePath());});var _569=dojo.map(_568,function(node){return node.item;});this.tree._set("paths",_567);this.tree._set("path",_567[0]||[]);this.tree._set("selectedNodes",_568);this.tree._set("selectedNode",_568[0]||null);this.tree._set("selectedItems",_569);this.tree._set("selectedItem",_569[0]||null);},onMouseDown:function(e){if(!this.current||this.tree.isExpandoNode(e.target,this.current)){return;}if(e.button==dojo.mouseButtons.RIGHT){return;}dojo.stopEvent(e);var _56a=this.current,copy=dojo.isCopyKey(e),id=_56a.id;if(!this.singular&&!e.shiftKey&&this.selection[id]){this._doDeselect=true;return;}else{this._doDeselect=false;}this.userSelect(_56a,copy,e.shiftKey);},onMouseUp:function(e){if(!this._doDeselect){return;}this._doDeselect=false;this.userSelect(this.current,dojo.isCopyKey(e),e.shiftKey);},onMouseMove:function(e){this._doDeselect=false;},userSelect:function(node,_56b,_56c){if(this.singular){if(this.anchor==node&&_56b){this.selectNone();}else{this.setSelection([node]);this.anchor=node;}}else{if(_56c&&this.anchor){var cr=dijit.tree._compareNodes(this.anchor.rowNode,node.rowNode),_56d,end,_56e=this.anchor;if(cr<0){_56d=_56e;end=node;}else{_56d=node;end=_56e;}nodes=[];while(_56d!=end){nodes.push(_56d);_56d=this.tree._getNextNode(_56d);}nodes.push(end);this.setSelection(nodes);}else{if(this.selection[node.id]&&_56b){this.removeTreeNode(node);}else{if(_56b){this.addTreeNode(node,true);}else{this.setSelection([node]);this.anchor=node;}}}}},forInSelectedItems:function(f,o){o=o||dojo.global;for(var id in this.selection){f.call(o,this.getItem(id),id,this);}}});}if(!dojo._hasResource["dijit.Tree"]){dojo._hasResource["dijit.Tree"]=true;dojo.provide("dijit.Tree");dojo.declare("dijit._TreeNode",[dijit._Widget,dijit._Templated,dijit._Container,dijit._Contained,dijit._CssStateMixin],{item:null,isTreeNode:true,label:"",isExpandable:null,isExpanded:false,state:"UNCHECKED",templateString:dojo.cache("dijit","templates/TreeNode.html","<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div dojoAttachPoint=\"rowNode\" class=\"dijitTreeRow\" role=\"presentation\" dojoAttachEvent=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span dojoAttachPoint=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span dojoAttachPoint=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\" dojoAttachEvent=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div dojoAttachPoint=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n"),baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow",labelNode:"dijitTreeLabel"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"labelNode",type:"innerText"},tooltip:{node:"rowNode",type:"attribute",attribute:"title"}}),buildRendering:function(){this.inherited(arguments);this._setExpando();this._updateItemClasses(this.item);if(this.isExpandable){dijit.setWaiState(this.labelNode,"expanded",this.isExpanded);}this.setSelected(false);},_setIndentAttr:function(_56f){var _570=(Math.max(_56f,0)*this.tree._nodePixelIndent)+"px";dojo.style(this.domNode,"backgroundPosition",_570+" 0px");dojo.style(this.rowNode,this.isLeftToRight()?"paddingLeft":"paddingRight",_570);dojo.forEach(this.getChildren(),function(_571){_571.set("indent",_56f+1);});this._set("indent",_56f);},markProcessing:function(){this.state="LOADING";this._setExpando(true);},unmarkProcessing:function(){this._setExpando(false);},_updateItemClasses:function(item){var tree=this.tree,_572=tree.model;if(tree._v10Compat&&item===_572.root){item=null;}this._applyClassAndStyle(item,"icon","Icon");this._applyClassAndStyle(item,"label","Label");this._applyClassAndStyle(item,"row","Row");},_applyClassAndStyle:function(item,_573,_574){var _575="_"+_573+"Class";var _576=_573+"Node";var _577=this[_575];this[_575]=this.tree["get"+_574+"Class"](item,this.isExpanded);dojo.replaceClass(this[_576],this[_575]||"",_577||"");dojo.style(this[_576],this.tree["get"+_574+"Style"](item,this.isExpanded)||{});},_updateLayout:function(){var _578=this.getParent();if(!_578||_578.rowNode.style.display=="none"){dojo.addClass(this.domNode,"dijitTreeIsRoot");}else{dojo.toggleClass(this.domNode,"dijitTreeIsLast",!this.getNextSibling());}},_setExpando:function(_579){var _57a=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_57b=["*","-","+","*"],idx=_579?0:(this.isExpandable?(this.isExpanded?1:2):3);dojo.replaceClass(this.expandoNode,_57a[idx],_57a);this.expandoNodeText.innerHTML=_57b[idx];},expand:function(){if(this._expandDeferred){return this._expandDeferred;}this._wipeOut&&this._wipeOut.stop();this.isExpanded=true;dijit.setWaiState(this.labelNode,"expanded","true");if(this.tree.showRoot||this!==this.tree.rootNode){dijit.setWaiRole(this.containerNode,"group");}dojo.addClass(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(this==this.tree.rootNode){dijit.setWaiState(this.tree.domNode,"expanded","true");}var def,_57c=dojo.fx.wipeIn({node:this.containerNode,duration:dijit.defaultDuration,onEnd:function(){def.callback(true);}});def=(this._expandDeferred=new dojo.Deferred(function(){_57c.stop();}));_57c.play();return def;},collapse:function(){if(!this.isExpanded){return;}if(this._expandDeferred){this._expandDeferred.cancel();delete this._expandDeferred;}this.isExpanded=false;dijit.setWaiState(this.labelNode,"expanded","false");if(this==this.tree.rootNode){dijit.setWaiState(this.tree.domNode,"expanded","false");}dojo.removeClass(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(!this._wipeOut){this._wipeOut=dojo.fx.wipeOut({node:this.containerNode,duration:dijit.defaultDuration});}this._wipeOut.play();},indent:0,setChildItems:function(_57d){var tree=this.tree,_57e=tree.model,defs=[];dojo.forEach(this.getChildren(),function(_57f){dijit._Container.prototype.removeChild.call(this,_57f);},this);this.state="LOADED";if(_57d&&_57d.length>0){this.isExpandable=true;dojo.forEach(_57d,function(item){var id=_57e.getIdentity(item),_580=tree._itemNodesMap[id],node;if(_580){for(var i=0;i<_580.length;i++){if(_580[i]&&!_580[i].getParent()){node=_580[i];node.set("indent",this.indent+1);break;}}}if(!node){node=this.tree._createTreeNode({item:item,tree:tree,isExpandable:_57e.mayHaveChildren(item),label:tree.getLabel(item),tooltip:tree.getTooltip(item),dir:tree.dir,lang:tree.lang,indent:this.indent+1});if(_580){_580.push(node);}else{tree._itemNodesMap[id]=[node];}}this.addChild(node);if(this.tree.autoExpand||this.tree._state(item)){defs.push(tree._expandNode(node));}},this);dojo.forEach(this.getChildren(),function(_581,idx){_581._updateLayout();});}else{this.isExpandable=false;}if(this._setExpando){this._setExpando(false);}this._updateItemClasses(this.item);if(this==tree.rootNode){var fc=this.tree.showRoot?this:this.getChildren()[0];if(fc){fc.setFocusable(true);tree.lastFocused=fc;}else{tree.domNode.setAttribute("tabIndex","0");}}return new dojo.DeferredList(defs);},getTreePath:function(){var node=this;var path=[];while(node&&node!==this.tree.rootNode){path.unshift(node.item);node=node.getParent();}path.unshift(this.tree.rootNode.item);return path;},getIdentity:function(){return this.tree.model.getIdentity(this.item);},removeChild:function(node){this.inherited(arguments);var _582=this.getChildren();if(_582.length==0){this.isExpandable=false;this.collapse();}dojo.forEach(_582,function(_583){_583._updateLayout();});},makeExpandable:function(){this.isExpandable=true;this._setExpando(false);},_onLabelFocus:function(evt){this.tree._onNodeFocus(this);},setSelected:function(_584){dijit.setWaiState(this.labelNode,"selected",_584);dojo.toggleClass(this.rowNode,"dijitTreeRowSelected",_584);},setFocusable:function(_585){this.labelNode.setAttribute("tabIndex",_585?"0":"-1");},_onClick:function(evt){this.tree._onClick(this,evt);},_onDblClick:function(evt){this.tree._onDblClick(this,evt);},_onMouseEnter:function(evt){this.tree._onNodeMouseEnter(this,evt);},_onMouseLeave:function(evt){this.tree._onNodeMouseLeave(this,evt);}});dojo.declare("dijit.Tree",[dijit._Widget,dijit._Templated],{store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],paths:[],path:[],selectedItems:null,selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:dojo.cache("dijit","templates/Tree.html","<div class=\"dijitTree dijitTreeContainer\" role=\"tree\"\n\tdojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" dojoAttachPoint=\"indentDetector\"></div>\n</div>\n"),persist:true,autoExpand:false,dndController:"dijit.tree._dndSelector",dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(_586,_587){dojo.publish(this.id,[dojo.mixin({tree:this,event:_586},_587||{})]);},postMixInProperties:function(){this.tree=this;if(this.autoExpand){this.persist=false;}this._itemNodesMap={};if(!this.cookieName){this.cookieName=this.id+"SaveStateCookie";}this._loadDeferred=new dojo.Deferred();this.inherited(arguments);},postCreate:function(){this._initState();if(!this.model){this._store2model();}this.connect(this.model,"onChange","_onItemChange");this.connect(this.model,"onChildrenChange","_onItemChildrenChange");this.connect(this.model,"onDelete","_onItemDelete");this._load();this.inherited(arguments);if(this.dndController){if(dojo.isString(this.dndController)){this.dndController=dojo.getObject(this.dndController);}var _588={};for(var i=0;i<this.dndParams.length;i++){if(this[this.dndParams[i]]){_588[this.dndParams[i]]=this[this.dndParams[i]];}}this.dndController=new this.dndController(this,_588);}},_store2model:function(){this._v10Compat=true;dojo.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");var _589={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr};if(this.params.mayHaveChildren){_589.mayHaveChildren=dojo.hitch(this,"mayHaveChildren");}if(this.params.getItemChildren){_589.getChildren=dojo.hitch(this,function(item,_58a,_58b){this.getItemChildren((this._v10Compat&&item===this.model.root)?null:item,_58a,_58b);});}this.model=new dijit.tree.ForestStoreModel(_589);this.showRoot=Boolean(this.label);},onLoad:function(){},_load:function(){this.model.getRoot(dojo.hitch(this,function(item){var rn=(this.rootNode=this.tree._createTreeNode({item:item,tree:this,isExpandable:true,label:this.label||this.getLabel(item),indent:this.showRoot?0:-1}));if(!this.showRoot){rn.rowNode.style.display="none";dijit.setWaiRole(this.domNode,"presentation");dijit.setWaiRole(rn.labelNode,"presentation");dijit.setWaiRole(rn.containerNode,"tree");}this.domNode.appendChild(rn.domNode);var _58c=this.model.getIdentity(item);if(this._itemNodesMap[_58c]){this._itemNodesMap[_58c].push(rn);}else{this._itemNodesMap[_58c]=[rn];}rn._updateLayout();this._expandNode(rn).addCallback(dojo.hitch(this,function(){this._loadDeferred.callback(true);this.onLoad();}));}),function(err){console.error(this,": error loading root: ",err);});},getNodesByItem:function(item){if(!item){return [];}var _58d=dojo.isString(item)?item:this.model.getIdentity(item);return [].concat(this._itemNodesMap[_58d]);},_setSelectedItemAttr:function(item){this.set("selectedItems",[item]);},_setSelectedItemsAttr:function(_58e){var tree=this;this._loadDeferred.addCallback(dojo.hitch(this,function(){var _58f=dojo.map(_58e,function(item){return (!item||dojo.isString(item))?item:tree.model.getIdentity(item);});var _590=[];dojo.forEach(_58f,function(id){_590=_590.concat(tree._itemNodesMap[id]||[]);});this.set("selectedNodes",_590);}));},_setPathAttr:function(path){if(path.length){return this.set("paths",[path]);}else{return this.set("paths",[]);}},_setPathsAttr:function(_591){var tree=this;return new dojo.DeferredList(dojo.map(_591,function(path){var d=new dojo.Deferred();path=dojo.map(path,function(item){return dojo.isString(item)?item:tree.model.getIdentity(item);});if(path.length){tree._loadDeferred.addCallback(function(){_592(path,[tree.rootNode],d);});}else{d.errback("Empty path");}return d;})).addCallback(_593);function _592(path,_594,def){var _595=path.shift();var _596=dojo.filter(_594,function(node){return node.getIdentity()==_595;})[0];if(!!_596){if(path.length){tree._expandNode(_596).addCallback(function(){_592(path,_596.getChildren(),def);});}else{def.callback(_596);}}else{def.errback("Could not expand path at "+_595);}};function _593(_597){tree.set("selectedNodes",dojo.map(dojo.filter(_597,function(x){return x[0];}),function(x){return x[1];}));};},_setSelectedNodeAttr:function(node){this.set("selectedNodes",[node]);},_setSelectedNodesAttr:function(_598){this._loadDeferred.addCallback(dojo.hitch(this,function(){this.dndController.setSelection(_598);}));},mayHaveChildren:function(item){},getItemChildren:function(_599,_59a){},getLabel:function(item){return this.model.getLabel(item);},getIconClass:function(item,_59b){return (!item||this.model.mayHaveChildren(item))?(_59b?"dijitFolderOpened":"dijitFolderClosed"):"dijitLeaf";},getLabelClass:function(item,_59c){},getRowClass:function(item,_59d){},getIconStyle:function(item,_59e){},getLabelStyle:function(item,_59f){},getRowStyle:function(item,_5a0){},getTooltip:function(item){return "";},_onKeyPress:function(e){if(e.altKey){return;}var dk=dojo.keys;var _5a1=dijit.getEnclosingWidget(e.target);if(!_5a1){return;}var key=e.charOrCode;if(typeof key=="string"&&key!=" "){if(!e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){this._onLetterKeyNav({node:_5a1,key:key.toLowerCase()});dojo.stopEvent(e);}}else{if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}var map=this._keyHandlerMap;if(!map){map={};map[dk.ENTER]="_onEnterKey";map[dk.SPACE]=map[" "]="_onEnterKey";map[this.isLeftToRight()?dk.LEFT_ARROW:dk.RIGHT_ARROW]="_onLeftArrow";map[this.isLeftToRight()?dk.RIGHT_ARROW:dk.LEFT_ARROW]="_onRightArrow";map[dk.UP_ARROW]="_onUpArrow";map[dk.DOWN_ARROW]="_onDownArrow";map[dk.HOME]="_onHomeKey";map[dk.END]="_onEndKey";this._keyHandlerMap=map;}if(this._keyHandlerMap[key]){this[this._keyHandlerMap[key]]({node:_5a1,item:_5a1.item,evt:e});dojo.stopEvent(e);}}},_onEnterKey:function(_5a2){this._publish("execute",{item:_5a2.item,node:_5a2.node});this.dndController.userSelect(_5a2.node,dojo.isCopyKey(_5a2.evt),_5a2.evt.shiftKey);this.onClick(_5a2.item,_5a2.node,_5a2.evt);},_onDownArrow:function(_5a3){var node=this._getNextNode(_5a3.node);if(node&&node.isTreeNode){this.focusNode(node);}},_onUpArrow:function(_5a4){var node=_5a4.node;var _5a5=node.getPreviousSibling();if(_5a5){node=_5a5;while(node.isExpandable&&node.isExpanded&&node.hasChildren()){var _5a6=node.getChildren();node=_5a6[_5a6.length-1];}}else{var _5a7=node.getParent();if(!(!this.showRoot&&_5a7===this.rootNode)){node=_5a7;}}if(node&&node.isTreeNode){this.focusNode(node);}},_onRightArrow:function(_5a8){var node=_5a8.node;if(node.isExpandable&&!node.isExpanded){this._expandNode(node);}else{if(node.hasChildren()){node=node.getChildren()[0];if(node&&node.isTreeNode){this.focusNode(node);}}}},_onLeftArrow:function(_5a9){var node=_5a9.node;if(node.isExpandable&&node.isExpanded){this._collapseNode(node);}else{var _5aa=node.getParent();if(_5aa&&_5aa.isTreeNode&&!(!this.showRoot&&_5aa===this.rootNode)){this.focusNode(_5aa);}}},_onHomeKey:function(){var node=this._getRootOrFirstNode();if(node){this.focusNode(node);}},_onEndKey:function(_5ab){var node=this.rootNode;while(node.isExpanded){var c=node.getChildren();node=c[c.length-1];}if(node&&node.isTreeNode){this.focusNode(node);}},multiCharSearchDuration:250,_onLetterKeyNav:function(_5ac){var cs=this._curSearch;if(cs){cs.pattern=cs.pattern+_5ac.key;clearTimeout(cs.timer);}else{cs=this._curSearch={pattern:_5ac.key,startNode:_5ac.node};}var self=this;cs.timer=setTimeout(function(){delete self._curSearch;},this.multiCharSearchDuration);var node=cs.startNode;do{node=this._getNextNode(node);if(!node){node=this._getRootOrFirstNode();}}while(node!==cs.startNode&&(node.label.toLowerCase().substr(0,cs.pattern.length)!=cs.pattern));if(node&&node.isTreeNode){if(node!==cs.startNode){this.focusNode(node);}}},isExpandoNode:function(node,_5ad){return dojo.isDescendant(node,_5ad.expandoNode);},_onClick:function(_5ae,e){var _5af=e.target,_5b0=this.isExpandoNode(_5af,_5ae);if((this.openOnClick&&_5ae.isExpandable)||_5b0){if(_5ae.isExpandable){this._onExpandoClick({node:_5ae});}}else{this._publish("execute",{item:_5ae.item,node:_5ae,evt:e});this.onClick(_5ae.item,_5ae,e);this.focusNode(_5ae);}dojo.stopEvent(e);},_onDblClick:function(_5b1,e){var _5b2=e.target,_5b3=(_5b2==_5b1.expandoNode||_5b2==_5b1.expandoNodeText);if((this.openOnDblClick&&_5b1.isExpandable)||_5b3){if(_5b1.isExpandable){this._onExpandoClick({node:_5b1});}}else{this._publish("execute",{item:_5b1.item,node:_5b1,evt:e});this.onDblClick(_5b1.item,_5b1,e);this.focusNode(_5b1);}dojo.stopEvent(e);},_onExpandoClick:function(_5b4){var node=_5b4.node;this.focusNode(node);if(node.isExpanded){this._collapseNode(node);}else{this._expandNode(node);}},onClick:function(item,node,evt){},onDblClick:function(item,node,evt){},onOpen:function(item,node){},onClose:function(item,node){},_getNextNode:function(node){if(node.isExpandable&&node.isExpanded&&node.hasChildren()){return node.getChildren()[0];}else{while(node&&node.isTreeNode){var _5b5=node.getNextSibling();if(_5b5){return _5b5;}node=node.getParent();}return null;}},_getRootOrFirstNode:function(){return this.showRoot?this.rootNode:this.rootNode.getChildren()[0];},_collapseNode:function(node){if(node._expandNodeDeferred){delete node._expandNodeDeferred;}if(node.isExpandable){if(node.state=="LOADING"){return;}node.collapse();this.onClose(node.item,node);if(node.item){this._state(node.item,false);this._saveState();}}},_expandNode:function(node,_5b6){if(node._expandNodeDeferred&&!_5b6){return node._expandNodeDeferred;}var _5b7=this.model,item=node.item,_5b8=this;switch(node.state){case "UNCHECKED":node.markProcessing();var def=(node._expandNodeDeferred=new dojo.Deferred());_5b7.getChildren(item,function(_5b9){node.unmarkProcessing();var scid=node.setChildItems(_5b9);var ed=_5b8._expandNode(node,true);scid.addCallback(function(){ed.addCallback(function(){def.callback();});});},function(err){console.error(_5b8,": error loading root children: ",err);});break;default:def=(node._expandNodeDeferred=node.expand());this.onOpen(node.item,node);if(item){this._state(item,true);this._saveState();}}return def;},focusNode:function(node){dijit.focus(node.labelNode);},_onNodeFocus:function(node){if(node&&node!=this.lastFocused){if(this.lastFocused&&!this.lastFocused._destroyed){this.lastFocused.setFocusable(false);}node.setFocusable(true);this.lastFocused=node;}},_onNodeMouseEnter:function(node){},_onNodeMouseLeave:function(node){},_onItemChange:function(item){var _5ba=this.model,_5bb=_5ba.getIdentity(item),_5bc=this._itemNodesMap[_5bb];if(_5bc){var _5bd=this.getLabel(item),_5be=this.getTooltip(item);dojo.forEach(_5bc,function(node){node.set({item:item,label:_5bd,tooltip:_5be});node._updateItemClasses(item);});}},_onItemChildrenChange:function(_5bf,_5c0){var _5c1=this.model,_5c2=_5c1.getIdentity(_5bf),_5c3=this._itemNodesMap[_5c2];if(_5c3){dojo.forEach(_5c3,function(_5c4){_5c4.setChildItems(_5c0);});}},_onItemDelete:function(item){var _5c5=this.model,_5c6=_5c5.getIdentity(item),_5c7=this._itemNodesMap[_5c6];if(_5c7){dojo.forEach(_5c7,function(node){this.dndController.removeTreeNode(node);var _5c8=node.getParent();if(_5c8){_5c8.removeChild(node);}node.destroyRecursive();},this);delete this._itemNodesMap[_5c6];}},_initState:function(){if(this.persist){var _5c9=dojo.cookie(this.cookieName);this._openedItemIds={};if(_5c9){dojo.forEach(_5c9.split(","),function(item){this._openedItemIds[item]=true;},this);}}},_state:function(item,_5ca){if(!this.persist){return false;}var id=this.model.getIdentity(item);if(arguments.length===1){return this._openedItemIds[id];}if(_5ca){this._openedItemIds[id]=true;}else{delete this._openedItemIds[id];}},_saveState:function(){if(!this.persist){return;}var ary=[];for(var id in this._openedItemIds){ary.push(id);}dojo.cookie(this.cookieName,ary.join(","),{expires:365});},destroy:function(){if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}if(this.rootNode){this.rootNode.destroyRecursive();}if(this.dndController&&!dojo.isString(this.dndController)){this.dndController.destroy();}this.rootNode=null;this.inherited(arguments);},destroyRecursive:function(){this.destroy();},resize:function(_5cb){if(_5cb){dojo.marginBox(this.domNode,_5cb);}this._nodePixelIndent=dojo._getMarginSize(this.tree.indentDetector).w;if(this.tree.rootNode){this.tree.rootNode.set("indent",this.showRoot?0:-1);}},_createTreeNode:function(args){return new dijit._TreeNode(args);}});}if(!dojo._hasResource["dojo.dnd.Avatar"]){dojo._hasResource["dojo.dnd.Avatar"]=true;dojo.provide("dojo.dnd.Avatar");dojo.declare("dojo.dnd.Avatar",null,{constructor:function(_5cc){this.manager=_5cc;this.construct();},construct:function(){this.isA11y=dojo.hasClass(dojo.body(),"dijit_a11y");var a=dojo.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),_5cd=this.manager.source,node,b=dojo.create("tbody",null,a),tr=dojo.create("tr",null,b),td=dojo.create("td",null,tr),icon=this.isA11y?dojo.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"<"},td):null,span=dojo.create("span",{innerHTML:_5cd.generateText?this._generateText():""},td),k=Math.min(5,this.manager.nodes.length),i=0;dojo.attr(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}});for(;i<k;++i){if(_5cd.creator){node=_5cd._normalizedCreator(_5cd.getItem(this.manager.nodes[i].id).data,"avatar").node;}else{node=this.manager.nodes[i].cloneNode(true);if(node.tagName.toLowerCase()=="tr"){var _5ce=dojo.create("table"),_5cf=dojo.create("tbody",null,_5ce);_5cf.appendChild(node);node=_5ce;}}node.id="";tr=dojo.create("tr",null,b);td=dojo.create("td",null,tr);td.appendChild(node);dojo.attr(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}});}this.node=a;},destroy:function(){dojo.destroy(this.node);this.node=false;},update:function(){dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop");if(this.isA11y){var icon=dojo.byId("a11yIcon");var text="+";if(this.manager.canDropFlag&&!this.manager.copy){text="< ";}else{if(!this.manager.canDropFlag&&!this.manager.copy){text="o";}else{if(!this.manager.canDropFlag){text="x";}}}icon.innerHTML=text;}dojo.query(("tr.dojoDndAvatarHeader td span"+(this.isA11y?" span":"")),this.node).forEach(function(node){node.innerHTML=this._generateText();},this);},_generateText:function(){return this.manager.nodes.length.toString();}});}if(!dojo._hasResource["dojo.dnd.Manager"]){dojo._hasResource["dojo.dnd.Manager"]=true;dojo.provide("dojo.dnd.Manager");dojo.declare("dojo.dnd.Manager",null,{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];},OFFSET_X:16,OFFSET_Y:16,overSource:function(_5d0){if(this.avatar){this.target=(_5d0&&_5d0.targetState!="Disabled")?_5d0:null;this.canDropFlag=Boolean(this.target);this.avatar.update();}dojo.publish("/dnd/source/over",[_5d0]);},outSource:function(_5d1){if(this.avatar){if(this.target==_5d1){this.target=null;this.canDropFlag=false;this.avatar.update();dojo.publish("/dnd/source/over",[null]);}}else{dojo.publish("/dnd/source/over",[null]);}},startDrag:function(_5d2,_5d3,copy){this.source=_5d2;this.nodes=_5d3;this.copy=Boolean(copy);this.avatar=this.makeAvatar();dojo.body().appendChild(this.avatar.node);dojo.publish("/dnd/start",[_5d2,_5d3,this.copy]);this.events=[dojo.connect(dojo.doc,"onmousemove",this,"onMouseMove"),dojo.connect(dojo.doc,"onmouseup",this,"onMouseUp"),dojo.connect(dojo.doc,"onkeydown",this,"onKeyDown"),dojo.connect(dojo.doc,"onkeyup",this,"onKeyUp"),dojo.connect(dojo.doc,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent)];var c="dojoDnd"+(copy?"Copy":"Move");dojo.addClass(dojo.body(),c);},canDrop:function(flag){var _5d4=Boolean(this.target&&flag);if(this.canDropFlag!=_5d4){this.canDropFlag=_5d4;this.avatar.update();}},stopDrag:function(){dojo.removeClass(dojo.body(),["dojoDndCopy","dojoDndMove"]);dojo.forEach(this.events,dojo.disconnect);this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[];},makeAvatar:function(){return new dojo.dnd.Avatar(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){dojo.dnd.autoScrollNodes(e);var s=a.node.style;s.left=(e.pageX+this.OFFSET_X)+"px";s.top=(e.pageY+this.OFFSET_Y)+"px";var copy=Boolean(this.source.copyState(dojo.isCopyKey(e)));if(this.copy!=copy){this._setCopyStatus(copy);}}},onMouseUp:function(e){if(this.avatar){if(this.target&&this.canDropFlag){var copy=Boolean(this.source.copyState(dojo.isCopyKey(e))),_5d5=[this.source,this.nodes,copy,this.target,e];dojo.publish("/dnd/drop/before",_5d5);dojo.publish("/dnd/drop",_5d5);}else{dojo.publish("/dnd/cancel");}this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case dojo.keys.CTRL:var copy=Boolean(this.source.copyState(true));if(this.copy!=copy){this._setCopyStatus(copy);}break;case dojo.keys.ESCAPE:dojo.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==dojo.keys.CTRL){var copy=Boolean(this.source.copyState(false));if(this.copy!=copy){this._setCopyStatus(copy);}}},_setCopyStatus:function(copy){this.copy=copy;this.source._markDndStatus(this.copy);this.updateAvatar();dojo.replaceClass(dojo.body(),"dojoDnd"+(this.copy?"Copy":"Move"),"dojoDnd"+(this.copy?"Move":"Copy"));}});dojo.dnd._manager=null;dojo.dnd.manager=function(){if(!dojo.dnd._manager){dojo.dnd._manager=new dojo.dnd.Manager();}return dojo.dnd._manager;};}if(!dojo._hasResource["dijit.tree.dndSource"]){dojo._hasResource["dijit.tree.dndSource"]=true;dojo.provide("dijit.tree.dndSource");dojo.declare("dijit.tree.dndSource",dijit.tree._dndSelector,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,constructor:function(tree,_5d6){if(!_5d6){_5d6={};}dojo.mixin(this,_5d6);this.isSource=typeof _5d6.isSource=="undefined"?true:_5d6.isSource;var type=_5d6.accept instanceof Array?_5d6.accept:["text","treeNode"];this.accept=null;if(type.length){this.accept={};for(var i=0;i<type.length;++i){this.accept[type[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.dropPosition="";this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){dojo.addClass(this.node,"dojoDndSource");}this.targetState="";if(this.accept){dojo.addClass(this.node,"dojoDndTarget");}this.topics=[dojo.subscribe("/dnd/source/over",this,"onDndSourceOver"),dojo.subscribe("/dnd/start",this,"onDndStart"),dojo.subscribe("/dnd/drop",this,"onDndDrop"),dojo.subscribe("/dnd/cancel",this,"onDndCancel")];},checkAcceptance:function(_5d7,_5d8){return true;},copyState:function(_5d9){return this.copyOnly||_5d9;},destroy:function(){this.inherited("destroy",arguments);dojo.forEach(this.topics,dojo.unsubscribe);this.targetAnchor=null;},_onDragMouse:function(e){var m=dojo.dnd.manager(),_5da=this.targetAnchor,_5db=this.current,_5dc=this.dropPosition;var _5dd="Over";if(_5db&&this.betweenThreshold>0){if(!this.targetBox||_5da!=_5db){this.targetBox=dojo.position(_5db.rowNode,true);}if((e.pageY-this.targetBox.y)<=this.betweenThreshold){_5dd="Before";}else{if((e.pageY-this.targetBox.y)>=(this.targetBox.h-this.betweenThreshold)){_5dd="After";}}}if(_5db!=_5da||_5dd!=_5dc){if(_5da){this._removeItemClass(_5da.rowNode,_5dc);}if(_5db){this._addItemClass(_5db.rowNode,_5dd);}if(!_5db){m.canDrop(false);}else{if(_5db==this.tree.rootNode&&_5dd!="Over"){m.canDrop(false);}else{if(m.source==this&&(_5db.id in this.selection)){m.canDrop(false);}else{if(this.checkItemAcceptance(_5db.rowNode,m.source,_5dd.toLowerCase())&&!this._isParentChildDrop(m.source,_5db.rowNode)){m.canDrop(true);}else{m.canDrop(false);}}}}this.targetAnchor=_5db;this.dropPosition=_5dd;}},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}this.inherited(arguments);var m=dojo.dnd.manager();if(this.isDragging){this._onDragMouse(e);}else{if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){var _5de=this.getSelectedTreeNodes();if(_5de.length){if(_5de.length>1){var seen=this.selection,i=0,r=[],n,p;nextitem:while((n=_5de[i++])){for(p=n.getParent();p&&p!==this.tree;p=p.getParent()){if(seen[p.id]){continue nextitem;}}r.push(n);}_5de=r;}_5de=dojo.map(_5de,function(n){return n.domNode;});m.startDrag(this,_5de,this.copyState(dojo.isCopyKey(e)));}}}},onMouseDown:function(e){this.mouseDown=true;this.mouseButton=e.button;this._lastX=e.pageX;this._lastY=e.pageY;this.inherited(arguments);},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;this.inherited(arguments);}},onMouseOut:function(){this.inherited(arguments);this._unmarkTargetAnchor();},checkItemAcceptance:function(_5df,_5e0,_5e1){return true;},onDndSourceOver:function(_5e2){if(this!=_5e2){this.mouseDown=false;this._unmarkTargetAnchor();}else{if(this.isDragging){var m=dojo.dnd.manager();m.canDrop(false);}}},onDndStart:function(_5e3,_5e4,copy){if(this.isSource){this._changeState("Source",this==_5e3?(copy?"Copied":"Moved"):"");}var _5e5=this.checkAcceptance(_5e3,_5e4);this._changeState("Target",_5e5?"":"Disabled");if(this==_5e3){dojo.dnd.manager().overSource(this);}this.isDragging=true;},itemCreator:function(_5e6,_5e7,_5e8){return dojo.map(_5e6,function(node){return {"id":node.id,"name":node.textContent||node.innerText||""};});},onDndDrop:function(_5e9,_5ea,copy){if(this.containerState=="Over"){var tree=this.tree,_5eb=tree.model,_5ec=this.targetAnchor,_5ed=false;this.isDragging=false;var _5ee=_5ec;var _5ef;var _5f0;_5ef=(_5ee&&_5ee.item)||tree.item;if(this.dropPosition=="Before"||this.dropPosition=="After"){_5ef=(_5ee.getParent()&&_5ee.getParent().item)||tree.item;_5f0=_5ee.getIndexInParent();if(this.dropPosition=="After"){_5f0=_5ee.getIndexInParent()+1;}}else{_5ef=(_5ee&&_5ee.item)||tree.item;}var _5f1;dojo.forEach(_5ea,function(node,idx){var _5f2=_5e9.getItem(node.id);if(dojo.indexOf(_5f2.type,"treeNode")!=-1){var _5f3=_5f2.data,_5f4=_5f3.item,_5f5=_5f3.getParent().item;}if(_5e9==this){if(typeof _5f0=="number"){if(_5ef==_5f5&&_5f3.getIndexInParent()<_5f0){_5f0-=1;}}_5eb.pasteItem(_5f4,_5f5,_5ef,copy,_5f0);}else{if(_5eb.isItem(_5f4)){_5eb.pasteItem(_5f4,_5f5,_5ef,copy,_5f0);}else{if(!_5f1){_5f1=this.itemCreator(_5ea,_5ec.rowNode,_5e9);}_5eb.newItem(_5f1[idx],_5ef,_5f0);}}},this);this.tree._expandNode(_5ee);}this.onDndCancel();},onDndCancel:function(){this._unmarkTargetAnchor();this.isDragging=false;this.mouseDown=false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","");},onOverEvent:function(){this.inherited(arguments);dojo.dnd.manager().overSource(this);},onOutEvent:function(){this._unmarkTargetAnchor();var m=dojo.dnd.manager();if(this.isDragging){m.canDrop(false);}m.outSource(this);this.inherited(arguments);},_isParentChildDrop:function(_5f6,_5f7){if(!_5f6.tree||_5f6.tree!=this.tree){return false;}var root=_5f6.tree.domNode;var ids=_5f6.selection;var node=_5f7.parentNode;while(node!=root&&!ids[node.id]){node=node.parentNode;}return node.id&&ids[node.id];},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor.rowNode,this.dropPosition);this.targetAnchor=null;this.targetBox=null;this.dropPosition=null;},_markDndStatus:function(copy){this._changeState("Source",copy?"Copied":"Moved");}});}if(!dojo._hasResource["dojo.data.ItemFileReadStore"]){dojo._hasResource["dojo.data.ItemFileReadStore"]=true;dojo.provide("dojo.data.ItemFileReadStore");dojo.declare("dojo.data.ItemFileReadStore",null,{constructor:function(_5f8){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=_5f8.url;this._ccUrl=_5f8.url;this.url=_5f8.url;this._jsonData=_5f8.data;this.data=null;this._datatypeMap=_5f8.typeMap||{};if(!this._datatypeMap["Date"]){this._datatypeMap["Date"]={type:Date,deserialize:function(_5f9){return dojo.date.stamp.fromISOString(_5f9);}};}this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(_5f8.urlPreventCache!==undefined){this.urlPreventCache=_5f8.urlPreventCache?true:false;}if(_5f8.hierarchical!==undefined){this.hierarchical=_5f8.hierarchical?true:false;}if(_5f8.clearOnClose){this.clearOnClose=true;}if("failOk" in _5f8){this.failOk=_5f8.failOk?true:false;}},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(item){if(!this.isItem(item)){throw new Error("dojo.data.ItemFileReadStore: Invalid item argument.");}},_assertIsAttribute:function(_5fa){if(typeof _5fa!=="string"){throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument.");}},getValue:function(item,_5fb,_5fc){var _5fd=this.getValues(item,_5fb);return (_5fd.length>0)?_5fd[0]:_5fc;},getValues:function(item,_5fe){this._assertIsItem(item);this._assertIsAttribute(_5fe);return (item[_5fe]||[]).slice(0);},getAttributes:function(item){this._assertIsItem(item);var _5ff=[];for(var key in item){if((key!==this._storeRefPropName)&&(key!==this._itemNumPropName)&&(key!==this._rootItemPropName)&&(key!==this._reverseRefMap)){_5ff.push(key);}}return _5ff;},hasAttribute:function(item,_600){this._assertIsItem(item);this._assertIsAttribute(_600);return (_600 in item);},containsValue:function(item,_601,_602){var _603=undefined;if(typeof _602==="string"){_603=dojo.data.util.filter.patternToRegExp(_602,false);}return this._containsValue(item,_601,_602,_603);},_containsValue:function(item,_604,_605,_606){return dojo.some(this.getValues(item,_604),function(_607){if(_607!==null&&!dojo.isObject(_607)&&_606){if(_607.toString().match(_606)){return true;}}else{if(_605===_607){return true;}}});},isItem:function(_608){if(_608&&_608[this._storeRefPropName]===this){if(this._arrayOfAllItems[_608[this._itemNumPropName]]===_608){return true;}}return false;},isItemLoaded:function(_609){return this.isItem(_609);},loadItem:function(_60a){this._assertIsItem(_60a.item);},getFeatures:function(){return this._features;},getLabel:function(item){if(this._labelAttr&&this.isItem(item)){return this.getValue(item,this._labelAttr);}return undefined;},getLabelAttributes:function(item){if(this._labelAttr){return [this._labelAttr];}return null;},_fetchItems:function(_60b,_60c,_60d){var self=this,_60e=function(_60f,_610){var _611=[],i,key;if(_60f.query){var _612,_613=_60f.queryOptions?_60f.queryOptions.ignoreCase:false;var _614={};for(key in _60f.query){_612=_60f.query[key];if(typeof _612==="string"){_614[key]=dojo.data.util.filter.patternToRegExp(_612,_613);}else{if(_612 instanceof RegExp){_614[key]=_612;}}}for(i=0;i<_610.length;++i){var _615=true;var _616=_610[i];if(_616===null){_615=false;}else{for(key in _60f.query){_612=_60f.query[key];if(!self._containsValue(_616,key,_612,_614[key])){_615=false;}}}if(_615){_611.push(_616);}}_60c(_611,_60f);}else{for(i=0;i<_610.length;++i){var item=_610[i];if(item!==null){_611.push(item);}}_60c(_611,_60f);}};if(this._loadFinished){_60e(_60b,this._getItemsArray(_60b.queryOptions));}else{if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_60b,filter:_60e});}else{this._loadInProgress=true;var _617={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _618=dojo.xhrGet(_617);_618.addCallback(function(data){try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;_60e(_60b,self._getItemsArray(_60b.queryOptions));self._handleQueuedFetches();}catch(e){self._loadFinished=true;self._loadInProgress=false;_60d(e,_60b);}});_618.addErrback(function(_619){self._loadInProgress=false;_60d(_619,_60b);});var _61a=null;if(_60b.abort){_61a=_60b.abort;}_60b.abort=function(){var df=_618;if(df&&df.fired===-1){df.cancel();df=null;}if(_61a){_61a.call(_60b);}};}}else{if(this._jsonData){try{this._loadFinished=true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;_60e(_60b,this._getItemsArray(_60b.queryOptions));}catch(e){_60d(e,_60b);}}else{_60d(new Error("dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object."),_60b);}}}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var _61b=this._queuedFetches[i],_61c=_61b.args,_61d=_61b.filter;if(_61d){_61d(_61c,this._getItemsArray(_61c.queryOptions));}else{this.fetchItemByIdentity(_61c);}}this._queuedFetches=[];}},_getItemsArray:function(_61e){if(_61e&&_61e.deep){return this._arrayOfAllItems;}return this._arrayOfTopLevelItems;},close:function(_61f){if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){if(((this._jsonFileUrl==""||this._jsonFileUrl==null)&&(this.url==""||this.url==null))&&this.data==null){console.debug("dojo.data.ItemFileReadStore: WARNING! Data reload "+" information has not been provided."+" Please set 'url' or 'data' to the appropriate value before"+" the next fetch");}this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[];}},_getItemsFromLoadedData:function(_620){var _621=false,self=this;function _622(_623){var _624=((_623!==null)&&(typeof _623==="object")&&(!dojo.isArray(_623)||_621)&&(!dojo.isFunction(_623))&&(_623.constructor==Object||dojo.isArray(_623))&&(typeof _623._reference==="undefined")&&(typeof _623._type==="undefined")&&(typeof _623._value==="undefined")&&self.hierarchical);return _624;};function _625(_626){self._arrayOfAllItems.push(_626);for(var _627 in _626){var _628=_626[_627];if(_628){if(dojo.isArray(_628)){var _629=_628;for(var k=0;k<_629.length;++k){var _62a=_629[k];if(_622(_62a)){_625(_62a);}}}else{if(_622(_628)){_625(_628);}}}}};this._labelAttr=_620.label;var i,item;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=_620.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){item=this._arrayOfTopLevelItems[i];if(dojo.isArray(item)){_621=true;}_625(item);item[this._rootItemPropName]=true;}var _62b={},key;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){if(key!==this._rootItemPropName){var _62c=item[key];if(_62c!==null){if(!dojo.isArray(_62c)){item[key]=[_62c];}}else{item[key]=[null];}}_62b[key]=key;}}while(_62b[this._storeRefPropName]){this._storeRefPropName+="_";}while(_62b[this._itemNumPropName]){this._itemNumPropName+="_";}while(_62b[this._reverseRefMap]){this._reverseRefMap+="_";}var _62d;var _62e=_620.identifier;if(_62e){this._itemsByIdentity={};this._features["dojo.data.api.Identity"]=_62e;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];_62d=item[_62e];var _62f=_62d[0];if(!Object.hasOwnProperty.call(this._itemsByIdentity,_62f)){this._itemsByIdentity[_62f]=item;}else{if(this._jsonFileUrl){throw new Error("dojo.data.ItemFileReadStore: The json data as specified by: ["+this._jsonFileUrl+"] is malformed. Items within the list have identifier: ["+_62e+"]. Value collided: ["+_62f+"]");}else{if(this._jsonData){throw new Error("dojo.data.ItemFileReadStore: The json data provided by the creation arguments is malformed. Items within the list have identifier: ["+_62e+"]. Value collided: ["+_62f+"]");}}}}}else{this._features["dojo.data.api.Identity"]=Number;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];item[this._storeRefPropName]=this;item[this._itemNumPropName]=i;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){_62d=item[key];for(var j=0;j<_62d.length;++j){_62c=_62d[j];if(_62c!==null&&typeof _62c=="object"){if(("_type" in _62c)&&("_value" in _62c)){var type=_62c._type;var _630=this._datatypeMap[type];if(!_630){throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+type+"'");}else{if(dojo.isFunction(_630)){_62d[j]=new _630(_62c._value);}else{if(dojo.isFunction(_630.deserialize)){_62d[j]=_630.deserialize(_62c._value);}else{throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}}}}if(_62c._reference){var _631=_62c._reference;if(!dojo.isObject(_631)){_62d[j]=this._getItemByIdentity(_631);}else{for(var k=0;k<this._arrayOfAllItems.length;++k){var _632=this._arrayOfAllItems[k],_633=true;for(var _634 in _631){if(_632[_634]!=_631[_634]){_633=false;}}if(_633){_62d[j]=_632;}}}if(this.referenceIntegrity){var _635=_62d[j];if(this.isItem(_635)){this._addReferenceToMap(_635,item,key);}}}else{if(this.isItem(_62c)){if(this.referenceIntegrity){this._addReferenceToMap(_62c,item,key);}}}}}}}},_addReferenceToMap:function(_636,_637,_638){},getIdentity:function(item){var _639=this._features["dojo.data.api.Identity"];if(_639===Number){return item[this._itemNumPropName];}else{var _63a=item[_639];if(_63a){return _63a[0];}}return null;},fetchItemByIdentity:function(_63b){var item,_63c;if(!this._loadFinished){var self=this;if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_63b});}else{this._loadInProgress=true;var _63d={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _63e=dojo.xhrGet(_63d);_63e.addCallback(function(data){var _63f=_63b.scope?_63b.scope:dojo.global;try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;item=self._getItemByIdentity(_63b.identity);if(_63b.onItem){_63b.onItem.call(_63f,item);}self._handleQueuedFetches();}catch(error){self._loadInProgress=false;if(_63b.onError){_63b.onError.call(_63f,error);}}});_63e.addErrback(function(_640){self._loadInProgress=false;if(_63b.onError){var _641=_63b.scope?_63b.scope:dojo.global;_63b.onError.call(_641,_640);}});}}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;item=self._getItemByIdentity(_63b.identity);if(_63b.onItem){_63c=_63b.scope?_63b.scope:dojo.global;_63b.onItem.call(_63c,item);}}}}else{item=this._getItemByIdentity(_63b.identity);if(_63b.onItem){_63c=_63b.scope?_63b.scope:dojo.global;_63b.onItem.call(_63c,item);}}},_getItemByIdentity:function(_642){var item=null;if(this._itemsByIdentity&&Object.hasOwnProperty.call(this._itemsByIdentity,_642)){item=this._itemsByIdentity[_642];}else{if(Object.hasOwnProperty.call(this._arrayOfAllItems,_642)){item=this._arrayOfAllItems[_642];}}if(item===undefined){item=null;}return item;},getIdentityAttributes:function(item){var _643=this._features["dojo.data.api.Identity"];if(_643===Number){return null;}else{return [_643];}},_forceLoad:function(){var self=this;if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){var _644={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true};var _645=dojo.xhrGet(_644);_645.addCallback(function(data){try{if(self._loadInProgress!==true&&!self._loadFinished){self._getItemsFromLoadedData(data);self._loadFinished=true;}else{if(self._loadInProgress){throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress.");}}}catch(e){console.log(e);throw e;}});_645.addErrback(function(_646){throw _646;});}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;}}}});dojo.extend(dojo.data.ItemFileReadStore,dojo.data.util.simpleFetch);}if(!dojo._hasResource["dojo.data.ItemFileWriteStore"]){dojo._hasResource["dojo.data.ItemFileWriteStore"]=true;dojo.provide("dojo.data.ItemFileWriteStore");dojo.declare("dojo.data.ItemFileWriteStore",dojo.data.ItemFileReadStore,{constructor:function(_647){this._features["dojo.data.api.Write"]=true;this._features["dojo.data.api.Notification"]=true;this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};if(!this._datatypeMap["Date"].serialize){this._datatypeMap["Date"].serialize=function(obj){return dojo.date.stamp.toISOString(obj,{zulu:true});};}if(_647&&(_647.referenceIntegrity===false)){this.referenceIntegrity=false;}this._saveInProgress=false;},referenceIntegrity:true,_assert:function(_648){if(!_648){throw new Error("assertion failed in ItemFileWriteStore");}},_getIdentifierAttribute:function(){var _649=this.getFeatures()["dojo.data.api.Identity"];return _649;},newItem:function(_64a,_64b){this._assert(!this._saveInProgress);if(!this._loadFinished){this._forceLoad();}if(typeof _64a!="object"&&typeof _64a!="undefined"){throw new Error("newItem() was passed something other than an object");}var _64c=null;var _64d=this._getIdentifierAttribute();if(_64d===Number){_64c=this._arrayOfAllItems.length;}else{_64c=_64a[_64d];if(typeof _64c==="undefined"){throw new Error("newItem() was not passed an identity for the new item");}if(dojo.isArray(_64c)){throw new Error("newItem() was not passed an single-valued identity");}}if(this._itemsByIdentity){this._assert(typeof this._itemsByIdentity[_64c]==="undefined");}this._assert(typeof this._pending._newItems[_64c]==="undefined");this._assert(typeof this._pending._deletedItems[_64c]==="undefined");var _64e={};_64e[this._storeRefPropName]=this;_64e[this._itemNumPropName]=this._arrayOfAllItems.length;if(this._itemsByIdentity){this._itemsByIdentity[_64c]=_64e;_64e[_64d]=[_64c];}this._arrayOfAllItems.push(_64e);var _64f=null;if(_64b&&_64b.parent&&_64b.attribute){_64f={item:_64b.parent,attribute:_64b.attribute,oldValue:undefined};var _650=this.getValues(_64b.parent,_64b.attribute);if(_650&&_650.length>0){var _651=_650.slice(0,_650.length);if(_650.length===1){_64f.oldValue=_650[0];}else{_64f.oldValue=_650.slice(0,_650.length);}_651.push(_64e);this._setValueOrValues(_64b.parent,_64b.attribute,_651,false);_64f.newValue=this.getValues(_64b.parent,_64b.attribute);}else{this._setValueOrValues(_64b.parent,_64b.attribute,_64e,false);_64f.newValue=_64e;}}else{_64e[this._rootItemPropName]=true;this._arrayOfTopLevelItems.push(_64e);}this._pending._newItems[_64c]=_64e;for(var key in _64a){if(key===this._storeRefPropName||key===this._itemNumPropName){throw new Error("encountered bug in ItemFileWriteStore.newItem");}var _652=_64a[key];if(!dojo.isArray(_652)){_652=[_652];}_64e[key]=_652;if(this.referenceIntegrity){for(var i=0;i<_652.length;i++){var val=_652[i];if(this.isItem(val)){this._addReferenceToMap(val,_64e,key);}}}}this.onNew(_64e,_64f);return _64e;},_removeArrayElement:function(_653,_654){var _655=dojo.indexOf(_653,_654);if(_655!=-1){_653.splice(_655,1);return true;}return false;},deleteItem:function(item){this._assert(!this._saveInProgress);this._assertIsItem(item);var _656=item[this._itemNumPropName];var _657=this.getIdentity(item);if(this.referenceIntegrity){var _658=this.getAttributes(item);if(item[this._reverseRefMap]){item["backup_"+this._reverseRefMap]=dojo.clone(item[this._reverseRefMap]);}dojo.forEach(_658,function(_659){dojo.forEach(this.getValues(item,_659),function(_65a){if(this.isItem(_65a)){if(!item["backupRefs_"+this._reverseRefMap]){item["backupRefs_"+this._reverseRefMap]=[];}item["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(_65a),attr:_659});this._removeReferenceFromMap(_65a,item,_659);}},this);},this);var _65b=item[this._reverseRefMap];if(_65b){for(var _65c in _65b){var _65d=null;if(this._itemsByIdentity){_65d=this._itemsByIdentity[_65c];}else{_65d=this._arrayOfAllItems[_65c];}if(_65d){for(var _65e in _65b[_65c]){var _65f=this.getValues(_65d,_65e)||[];var _660=dojo.filter(_65f,function(_661){return !(this.isItem(_661)&&this.getIdentity(_661)==_657);},this);this._removeReferenceFromMap(item,_65d,_65e);if(_660.length<_65f.length){this._setValueOrValues(_65d,_65e,_660,true);}}}}}}this._arrayOfAllItems[_656]=null;item[this._storeRefPropName]=null;if(this._itemsByIdentity){delete this._itemsByIdentity[_657];}this._pending._deletedItems[_657]=item;if(item[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,item);}this.onDelete(item);return true;},setValue:function(item,_662,_663){return this._setValueOrValues(item,_662,_663,true);},setValues:function(item,_664,_665){return this._setValueOrValues(item,_664,_665,true);},unsetAttribute:function(item,_666){return this._setValueOrValues(item,_666,[],true);},_setValueOrValues:function(item,_667,_668,_669){this._assert(!this._saveInProgress);this._assertIsItem(item);this._assert(dojo.isString(_667));this._assert(typeof _668!=="undefined");var _66a=this._getIdentifierAttribute();if(_667==_66a){throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");}var _66b=this._getValueOrValues(item,_667);var _66c=this.getIdentity(item);if(!this._pending._modifiedItems[_66c]){var _66d={};for(var key in item){if((key===this._storeRefPropName)||(key===this._itemNumPropName)||(key===this._rootItemPropName)){_66d[key]=item[key];}else{if(key===this._reverseRefMap){_66d[key]=dojo.clone(item[key]);}else{_66d[key]=item[key].slice(0,item[key].length);}}}this._pending._modifiedItems[_66c]=_66d;}var _66e=false;if(dojo.isArray(_668)&&_668.length===0){_66e=delete item[_667];_668=undefined;if(this.referenceIntegrity&&_66b){var _66f=_66b;if(!dojo.isArray(_66f)){_66f=[_66f];}for(var i=0;i<_66f.length;i++){var _670=_66f[i];if(this.isItem(_670)){this._removeReferenceFromMap(_670,item,_667);}}}}else{var _671;if(dojo.isArray(_668)){var _672=_668;_671=_668.slice(0,_668.length);}else{_671=[_668];}if(this.referenceIntegrity){if(_66b){var _66f=_66b;if(!dojo.isArray(_66f)){_66f=[_66f];}var map={};dojo.forEach(_66f,function(_673){if(this.isItem(_673)){var id=this.getIdentity(_673);map[id.toString()]=true;}},this);dojo.forEach(_671,function(_674){if(this.isItem(_674)){var id=this.getIdentity(_674);if(map[id.toString()]){delete map[id.toString()];}else{this._addReferenceToMap(_674,item,_667);}}},this);for(var rId in map){var _675;if(this._itemsByIdentity){_675=this._itemsByIdentity[rId];}else{_675=this._arrayOfAllItems[rId];}this._removeReferenceFromMap(_675,item,_667);}}else{for(var i=0;i<_671.length;i++){var _670=_671[i];if(this.isItem(_670)){this._addReferenceToMap(_670,item,_667);}}}}item[_667]=_671;_66e=true;}if(_669){this.onSet(item,_667,_66b,_668);}return _66e;},_addReferenceToMap:function(_676,_677,_678){var _679=this.getIdentity(_677);var _67a=_676[this._reverseRefMap];if(!_67a){_67a=_676[this._reverseRefMap]={};}var _67b=_67a[_679];if(!_67b){_67b=_67a[_679]={};}_67b[_678]=true;},_removeReferenceFromMap:function(_67c,_67d,_67e){var _67f=this.getIdentity(_67d);var _680=_67c[this._reverseRefMap];var _681;if(_680){for(_681 in _680){if(_681==_67f){delete _680[_681][_67e];if(this._isEmpty(_680[_681])){delete _680[_681];}}}if(this._isEmpty(_680)){delete _67c[this._reverseRefMap];}}},_dumpReferenceMap:function(){var i;for(i=0;i<this._arrayOfAllItems.length;i++){var item=this._arrayOfAllItems[i];if(item&&item[this._reverseRefMap]){console.log("Item: ["+this.getIdentity(item)+"] is referenced by: "+dojo.toJson(item[this._reverseRefMap]));}}},_getValueOrValues:function(item,_682){var _683=undefined;if(this.hasAttribute(item,_682)){var _684=this.getValues(item,_682);if(_684.length==1){_683=_684[0];}else{_683=_684;}}return _683;},_flatten:function(_685){if(this.isItem(_685)){var item=_685;var _686=this.getIdentity(item);var _687={_reference:_686};return _687;}else{if(typeof _685==="object"){for(var type in this._datatypeMap){var _688=this._datatypeMap[type];if(dojo.isObject(_688)&&!dojo.isFunction(_688)){if(_685 instanceof _688.type){if(!_688.serialize){throw new Error("ItemFileWriteStore: No serializer defined for type mapping: ["+type+"]");}return {_type:type,_value:_688.serialize(_685)};}}else{if(_685 instanceof _688){return {_type:type,_value:_685.toString()};}}}}return _685;}},_getNewFileContentString:function(){var _689={};var _68a=this._getIdentifierAttribute();if(_68a!==Number){_689.identifier=_68a;}if(this._labelAttr){_689.label=this._labelAttr;}_689.items=[];for(var i=0;i<this._arrayOfAllItems.length;++i){var item=this._arrayOfAllItems[i];if(item!==null){var _68b={};for(var key in item){if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._reverseRefMap&&key!==this._rootItemPropName){var _68c=key;var _68d=this.getValues(item,_68c);if(_68d.length==1){_68b[_68c]=this._flatten(_68d[0]);}else{var _68e=[];for(var j=0;j<_68d.length;++j){_68e.push(this._flatten(_68d[j]));_68b[_68c]=_68e;}}}}_689.items.push(_68b);}}var _68f=true;return dojo.toJson(_689,_68f);},_isEmpty:function(_690){var _691=true;if(dojo.isObject(_690)){var i;for(i in _690){_691=false;break;}}else{if(dojo.isArray(_690)){if(_690.length>0){_691=false;}}}return _691;},save:function(_692){this._assert(!this._saveInProgress);this._saveInProgress=true;var self=this;var _693=function(){self._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};self._saveInProgress=false;if(_692&&_692.onComplete){var _694=_692.scope||dojo.global;_692.onComplete.call(_694);}};var _695=function(err){self._saveInProgress=false;if(_692&&_692.onError){var _696=_692.scope||dojo.global;_692.onError.call(_696,err);}};if(this._saveEverything){var _697=this._getNewFileContentString();this._saveEverything(_693,_695,_697);}if(this._saveCustom){this._saveCustom(_693,_695);}if(!this._saveEverything&&!this._saveCustom){_693();}},revert:function(){this._assert(!this._saveInProgress);var _698;for(_698 in this._pending._modifiedItems){var _699=this._pending._modifiedItems[_698];var _69a=null;if(this._itemsByIdentity){_69a=this._itemsByIdentity[_698];}else{_69a=this._arrayOfAllItems[_698];}_699[this._storeRefPropName]=this;for(key in _69a){delete _69a[key];}dojo.mixin(_69a,_699);}var _69b;for(_698 in this._pending._deletedItems){_69b=this._pending._deletedItems[_698];_69b[this._storeRefPropName]=this;var _69c=_69b[this._itemNumPropName];if(_69b["backup_"+this._reverseRefMap]){_69b[this._reverseRefMap]=_69b["backup_"+this._reverseRefMap];delete _69b["backup_"+this._reverseRefMap];}this._arrayOfAllItems[_69c]=_69b;if(this._itemsByIdentity){this._itemsByIdentity[_698]=_69b;}if(_69b[this._rootItemPropName]){this._arrayOfTopLevelItems.push(_69b);}}for(_698 in this._pending._deletedItems){_69b=this._pending._deletedItems[_698];if(_69b["backupRefs_"+this._reverseRefMap]){dojo.forEach(_69b["backupRefs_"+this._reverseRefMap],function(_69d){var _69e;if(this._itemsByIdentity){_69e=this._itemsByIdentity[_69d.id];}else{_69e=this._arrayOfAllItems[_69d.id];}this._addReferenceToMap(_69e,_69b,_69d.attr);},this);delete _69b["backupRefs_"+this._reverseRefMap];}}for(_698 in this._pending._newItems){var _69f=this._pending._newItems[_698];_69f[this._storeRefPropName]=null;this._arrayOfAllItems[_69f[this._itemNumPropName]]=null;if(_69f[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,_69f);}if(this._itemsByIdentity){delete this._itemsByIdentity[_698];}}this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};return true;},isDirty:function(item){if(item){var _6a0=this.getIdentity(item);return new Boolean(this._pending._newItems[_6a0]||this._pending._modifiedItems[_6a0]||this._pending._deletedItems[_6a0]).valueOf();}else{if(!this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems)){return true;}return false;}},onSet:function(item,_6a1,_6a2,_6a3){},onNew:function(_6a4,_6a5){},onDelete:function(_6a6){},close:function(_6a7){if(this.clearOnClose){if(!this.isDirty()){this.inherited(arguments);}else{throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store. Please save or revert the changes before invoking close.");}}}});}dojo.i18n._preloadLocalizations("dojo.nls.tt-rss-layer",["ROOT","ar","ca","cs","da","de","de-de","el","en","en-gb","en-us","es","es-es","fi","fi-fi","fr","fr-fr","he","he-il","hu","it","it-it","ja","ja-jp","ko","ko-kr","nb","nl","nl-nl","pl","pt","pt-br","pt-pt","ru","sk","sl","sv","th","tr","xx","zh","zh-cn","zh-tw"]); diff --git a/lib/dojo/tt-rss-layer.js.uncompressed.js b/lib/dojo/tt-rss-layer.js.uncompressed.js index fa2e12157..81d4302df 100644 --- a/lib/dojo/tt-rss-layer.js.uncompressed.js +++ b/lib/dojo/tt-rss-layer.js.uncompressed.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -16,6 +16,8 @@ if(!dojo._hasResource["dojo.date.stamp"]){ //_hasResource checks added by build. dojo._hasResource["dojo.date.stamp"] = true; dojo.provide("dojo.date.stamp"); +dojo.getObject("date.stamp", true, dojo); + // Methods to convert dates to or from a wire (string) format using well-known conventions dojo.date.stamp.fromISOString = function(/*String*/formattedString, /*Number?*/defaultTime){ @@ -94,7 +96,7 @@ dojo.date.stamp.fromISOString = function(/*String*/formattedString, /*Number?*/d } return result; // Date or null -} +}; /*===== dojo.date.stamp.__Options = function(){ @@ -144,13 +146,13 @@ dojo.date.stamp.toISOString = function(/*Date*/dateObject, /*dojo.date.stamp.__O }else if(options.selector != "time"){ var timezoneOffset = dateObject.getTimezoneOffset(); var absOffset = Math.abs(timezoneOffset); - time += (timezoneOffset > 0 ? "-" : "+") + + time += (timezoneOffset > 0 ? "-" : "+") + _(Math.floor(absOffset/60)) + ":" + _(absOffset%60); } formattedDate.push(time); } return formattedDate.join('T'); // String -} +}; } @@ -159,14 +161,14 @@ dojo._hasResource["dojo.parser"] = true; dojo.provide("dojo.parser"); + new Date("X"); // workaround for #11279, new Date("") == NaN dojo.parser = new function(){ - // summary: The Dom/Widget parsing package + // summary: + // The Dom/Widget parsing package var d = dojo; - this._attrName = d._scopeName + "Type"; - this._query = "[" + this._attrName + "]"; function val2type(/*Object*/ value){ // summary: @@ -191,13 +193,13 @@ dojo.parser = new function(){ case "number": return value.length ? Number(value) : NaN; case "boolean": - // for checked/disabled value might be "" or "checked". interpret as true. + // for checked/disabled value might be "" or "checked". interpret as true. return typeof value == "boolean" ? value : !(value.toLowerCase()=="false"); case "function": if(d.isFunction(value)){ // IE gives us a function, even when we say something like onClick="foo" - // (in which case it gives us an invalid function "function(){ foo }"). - // Therefore, convert to string + // (in which case it gives us an invalid function "function(){ foo }"). + // Therefore, convert to string value=value.toString(); value=d.trim(value.substring(value.indexOf('{')+1, value.length-1)); } @@ -226,7 +228,7 @@ dojo.parser = new function(){ } } - var instanceClasses = { + var dummyClass = {}, instanceClasses = { // map from fully qualified name (like "dijit.Button") to structure like // { cls: dijit.Button, params: {label: "string", disabled: "boolean"} } }; @@ -234,45 +236,70 @@ dojo.parser = new function(){ // Widgets like BorderContainer add properties to _Widget via dojo.extend(). // If BorderContainer is loaded after _Widget's parameter list has been cached, // we need to refresh that parameter list (for _Widget and all widgets that extend _Widget). - dojo.connect(dojo, "extend", function(){ + // TODO: remove this in 2.0, when we stop caching parameters. + d.connect(d, "extend", function(){ instanceClasses = {}; }); - function getClassInfo(/*String*/ className){ + function getProtoInfo(cls, params){ + // cls: A prototype + // The prototype of the class to check props on + // params: Object + // The parameters object to mix found parameters onto. + for(var name in cls){ + if(name.charAt(0)=="_"){ continue; } // skip internal properties + if(name in dummyClass){ continue; } // skip "constructor" and "toString" + params[name] = val2type(cls[name]); + } + return params; + } + + function getClassInfo(/*String*/ className, /*Boolean*/ skipParamsLookup){ + // summary: + // Maps a widget name string like "dijit.form.Button" to the widget constructor itself, + // and a list of that widget's parameters and their types // className: // fully qualified name (like "dijit.form.Button") // returns: // structure like - // { - // cls: dijit.Button, + // { + // cls: dijit.Button, // params: { label: "string", disabled: "boolean"} // } - if(!instanceClasses[className]){ + var c = instanceClasses[className]; + if(!c){ // get pointer to widget class - var cls = d.getObject(className); + var cls = d.getObject(className), params = null; if(!cls){ return null; } // class not defined [yet] - - var proto = cls.prototype; - - // get table of parameter names & types - var params = {}, dummyClass = {}; - for(var name in proto){ - if(name.charAt(0)=="_"){ continue; } // skip internal properties - if(name in dummyClass){ continue; } // skip "constructor" and "toString" - var defVal = proto[name]; - params[name]=val2type(defVal); + if(!skipParamsLookup){ // from fastpath, we don't need to lookup the attrs on the proto because they are explicit + params = getProtoInfo(cls.prototype, {}) } - - instanceClasses[className] = { cls: cls, params: params }; + c = { cls: cls, params: params }; + + }else if(!skipParamsLookup && !c.params){ + // if we're calling getClassInfo and have a cls proto, but no params info, scan that cls for params now + // and update the pointer in instanceClasses[className]. This happens when a widget appears in another + // widget's template which still uses dojoType, but an instance of the widget appears prior with a data-dojo-type, + // skipping this lookup the first time. + c.params = getProtoInfo(c.cls.prototype, {}); } - return instanceClasses[className]; + + return c; } - this._functionFromScript = function(script){ + this._functionFromScript = function(script, attrData){ + // summary: + // Convert a <script type="dojo/method" args="a, b, c"> ... </script> + // into a function + // script: DOMNode + // The <script> DOMNode + // attrData: String + // For HTML5 compliance, searches for attrData + "args" (typically + // "data-dojo-args") instead of "args" var preamble = ""; var suffix = ""; - var argsStr = script.getAttribute("args"); + var argsStr = (script.getAttribute(attrData + "args") || script.getAttribute("args")); if(argsStr){ d.forEach(argsStr.split(/\s*,\s*/), function(part, idx){ preamble += "var "+part+" = arguments["+idx+"]; "; @@ -286,7 +313,7 @@ dojo.parser = new function(){ }); } return new Function(preamble+script.innerHTML+suffix); - } + }; this.instantiate = function(/* Array */nodes, /* Object? */mixin, /* Object? */args){ // summary: @@ -307,69 +334,106 @@ dojo.parser = new function(){ // exist. // args: Object? // An object used to hold kwArgs for instantiation. - // Supports 'noStart' and inherited. - var thelist = [], dp = dojo.parser; + // See parse.args argument for details. + + var thelist = [], mixin = mixin||{}; args = args||{}; - + + // TODO: for 2.0 default to data-dojo- regardless of scopeName (or maybe scopeName won't exist in 2.0) + var attrName = (args.scope || d._scopeName) + "Type", // typically "dojoType" + attrData = "data-" + (args.scope || d._scopeName) + "-"; // typically "data-dojo-" + d.forEach(nodes, function(obj){ if(!obj){ return; } - // Get pointers to DOMNode, dojoType string, and clsInfo (metadata about the dojoType), etc.s - var node, type, clsInfo, clazz, scripts; + // Get pointers to DOMNode, dojoType string, and clsInfo (metadata about the dojoType), etc. + var node, type, clsInfo, clazz, scripts, fastpath; if(obj.node){ // new format of nodes[] array, object w/lots of properties pre-computed for me node = obj.node; type = obj.type; - clsInfo = obj.clsInfo || (type && getClassInfo(type)); + fastpath = obj.fastpath; + clsInfo = obj.clsInfo || (type && getClassInfo(type, fastpath)); clazz = clsInfo && clsInfo.cls; scripts = obj.scripts; }else{ - // old (backwards compatible) format of nodes[] array, simple array of DOMNodes + // old (backwards compatible) format of nodes[] array, simple array of DOMNodes. no fastpath/data-dojo-type support here. node = obj; - type = dp._attrName in mixin ? mixin[dp._attrName] : node.getAttribute(dp._attrName); + type = attrName in mixin ? mixin[attrName] : node.getAttribute(attrName); clsInfo = type && getClassInfo(type); clazz = clsInfo && clsInfo.cls; - scripts = (clazz && (clazz._noScript || clazz.prototype._noScript) ? [] : + scripts = (clazz && (clazz._noScript || clazz.prototype._noScript) ? [] : d.query("> script[type^='dojo/']", node)); } if(!clsInfo){ throw new Error("Could not load class '" + type); } - // Setup hash to hold parameter settings for this widget. Start with the parameter + // Setup hash to hold parameter settings for this widget. Start with the parameter // settings inherited from ancestors ("dir" and "lang"). // Inherited setting may later be overridden by explicit settings on node itself. - var params = {}, - attributes = node.attributes; + var params = {}; + if(args.defaults){ // settings for the document itself (or whatever subtree is being parsed) - dojo.mixin(params, args.defaults); + d._mixin(params, args.defaults); } if(obj.inherited){ // settings from dir=rtl or lang=... on a node above this node - dojo.mixin(params, obj.inherited); + d._mixin(params, obj.inherited); } + + // mix things found in data-dojo-props into the params + if(fastpath){ + var extra = node.getAttribute(attrData + "props"); + if(extra && extra.length){ + try{ + extra = d.fromJson.call(args.propsThis, "{" + extra + "}"); + d._mixin(params, extra); + }catch(e){ + // give the user a pointer to their invalid parameters. FIXME: can we kill this in production? + throw new Error(e.toString() + " in data-dojo-props='" + extra + "'"); + } + } - // read parameters (ie, attributes) specified on DOMNode - // clsInfo.params lists expected params like {"checked": "boolean", "n": "number"} - for(var name in clsInfo.params){ - var item = name in mixin?{value:mixin[name],specified:true}:attributes.getNamedItem(name); - if(!item || (!item.specified && (!dojo.isIE || name.toLowerCase()!="value"))){ continue; } - var value = item.value; - // Deal with IE quirks for 'class' and 'style' - switch(name){ - case "class": - value = "className" in mixin?mixin.className:node.className; - break; - case "style": - value = "style" in mixin?mixin.style:(node.style && node.style.cssText); // FIXME: Opera? + // For the benefit of _Templated, check if node has data-dojo-attach-point/data-dojo-attach-event + // and mix those in as though they were parameters + var attachPoint = node.getAttribute(attrData + "attach-point"); + if(attachPoint){ + params.dojoAttachPoint = attachPoint; } - var _type = clsInfo.params[name]; - if(typeof value == "string"){ - params[name] = str2obj(value, _type); - }else{ - params[name] = value; + var attachEvent = node.getAttribute(attrData + "attach-event"); + if(attachEvent){ + params.dojoAttachEvent = attachEvent; + } + dojo.mixin(params, mixin); + }else{ + // FIXME: we need something like "deprecateOnce()" to throw dojo.deprecation for something. + // remove this logic in 2.0 + // read parameters (ie, attributes) specified on DOMNode + + var attributes = node.attributes; + + // clsInfo.params lists expected params like {"checked": "boolean", "n": "number"} + for(var name in clsInfo.params){ + var item = name in mixin ? { value:mixin[name], specified:true } : attributes.getNamedItem(name); + if(!item || (!item.specified && (!dojo.isIE || name.toLowerCase()!="value"))){ continue; } + var value = item.value; + // Deal with IE quirks for 'class' and 'style' + switch(name){ + case "class": + value = "className" in mixin ? mixin.className : node.className; + break; + case "style": + value = "style" in mixin ? mixin.style : (node.style && node.style.cssText); // FIXME: Opera? + } + var _type = clsInfo.params[name]; + if(typeof value == "string"){ + params[name] = str2obj(value, _type); + }else{ + params[name] = value; + } } } @@ -384,9 +448,10 @@ dojo.parser = new function(){ d.forEach(scripts, function(script){ node.removeChild(script); - var event = script.getAttribute("event"), + // FIXME: drop event="" support in 2.0. use data-dojo-event="" instead + var event = (script.getAttribute(attrData + "event") || script.getAttribute("event")), type = script.getAttribute("type"), - nf = d.parser._functionFromScript(script); + nf = d.parser._functionFromScript(script, attrData); if(event){ if(type == "dojo/connect"){ connects.push({event: event, func: nf}); @@ -404,7 +469,8 @@ dojo.parser = new function(){ thelist.push(instance); // map it to the JS namespace if that makes sense - var jsname = node.getAttribute("jsId"); + // FIXME: in 2.0, drop jsId support. use data-dojo-id instead + var jsname = (node.getAttribute(attrData + "id") || node.getAttribute("jsId")); if(jsname){ d.setObject(jsname, instance); } @@ -428,9 +494,9 @@ dojo.parser = new function(){ // ContentPane is the parent widget (so that the parse doesn't call startup() on the // ContentPane's children) d.forEach(thelist, function(instance){ - if( !args.noStart && instance && - instance.startup && - !instance._started && + if( !args.noStart && instance && + dojo.isFunction(instance.startup) && + !instance._started && (!instance.getParent || !instance.getParent()) ){ instance.startup(); @@ -440,34 +506,57 @@ dojo.parser = new function(){ return thelist; }; - this.parse = function(/*DomNode?*/ rootNode, /* Object? */ args){ + this.parse = function(rootNode, args){ // summary: // Scan the DOM for class instances, and instantiate them. // // description: // Search specified node (or root node) recursively for class instances, - // and instantiate them Searches for - // dojoType="qualified.class.name" + // and instantiate them. Searches for either data-dojo-type="Class" or + // dojoType="Class" where "Class" is a a fully qualified class name, + // like `dijit.form.Button` + // + // Using `data-dojo-type`: + // Attributes using can be mixed into the parameters used to instantitate the + // Class by using a `data-dojo-props` attribute on the node being converted. + // `data-dojo-props` should be a string attribute to be converted from JSON. + // + // Using `dojoType`: + // Attributes are read from the original domNode and converted to appropriate + // types by looking up the Class prototype values. This is the default behavior + // from Dojo 1.0 to Dojo 1.5. `dojoType` support is deprecated, and will + // go away in Dojo 2.0. // // rootNode: DomNode? // A default starting root node from which to start the parsing. Can be // omitted, defaulting to the entire document. If omitted, the `args` - // object can be passed in this place. If the `args` object has a + // object can be passed in this place. If the `args` object has a // `rootNode` member, that is used. // - // args: + // args: Object // a kwArgs object passed along to instantiate() - // + // // * noStart: Boolean? // when set will prevent the parser from calling .startup() - // when locating the nodes. + // when locating the nodes. // * rootNode: DomNode? // identical to the function's `rootNode` argument, though - // allowed to be passed in via this `args object. + // allowed to be passed in via this `args object. + // * template: Boolean + // If true, ignores ContentPane's stopParser flag and parses contents inside of + // a ContentPane inside of a template. This allows dojoAttachPoint on widgets/nodes + // nested inside the ContentPane to work. // * inherited: Object // Hash possibly containing dir and lang settings to be applied to // parsed widgets, unless there's another setting on a sub-node that overrides - // + // * scope: String + // Root for attribute names to search for. If scopeName is dojo, + // will search for data-dojo-type (or dojoType). For backwards compatibility + // reasons defaults to dojo._scopeName (which is "dojo" except when + // multi-version support is used, when it will be something like dojo16, dojo20, etc.) + // * propsThis: Object + // If specified, "this" referenced from data-dojo-props will refer to propsThis. + // Intended for use from the widgets-in-template feature of `dijit._Templated` // // example: // Parse all widgets on a page: @@ -475,10 +564,10 @@ dojo.parser = new function(){ // // example: // Parse all classes within the node with id="foo" - // | dojo.parser.parse(dojo.byId(foo)); + // | dojo.parser.parse(dojo.byId('foo')); // // example: - // Parse all classes in a page, but do not call .startup() on any + // Parse all classes in a page, but do not call .startup() on any // child // | dojo.parser.parse({ noStart: true }) // @@ -486,7 +575,7 @@ dojo.parser = new function(){ // Parse all classes in a node, but do not call .startup() // | dojo.parser.parse(someNode, { noStart:true }); // | // or - // | dojo.parser.parse({ noStart:true, rootNode: someNode }); + // | dojo.parser.parse({ noStart:true, rootNode: someNode }); // determine the root node based on the passed arguments. var root; @@ -496,8 +585,12 @@ dojo.parser = new function(){ }else{ root = rootNode; } + root = root ? dojo.byId(root) : dojo.body(); + args = args || {}; + + var attrName = (args.scope || d._scopeName) + "Type", // typically "dojoType" + attrData = "data-" + (args.scope || d._scopeName) + "-"; // typically "data-dojo-" - var attrName = this._attrName; function scan(parent, list){ // summary: // Parent is an Object representing a DOMNode, with or without a dojoType specified. @@ -506,7 +599,7 @@ dojo.parser = new function(){ // parent: Object // Object representing the parent node, like // | { - // | node: DomNode, // scan children of this node + // | node: DomNode, // scan children of this node // | inherited: {dir: "rtl"}, // dir/lang setting inherited from above node // | // | // attributes only set if node has dojoType specified @@ -519,6 +612,7 @@ dojo.parser = new function(){ // Effective dir and lang settings on parent node, either set directly or inherited from grandparent var inherited = dojo.clone(parent.inherited); dojo.forEach(["dir", "lang"], function(name){ + // TODO: what if this is a widget and dir/lang are declared in data-dojo-props? var val = parent.node.getAttribute(name); if(val){ inherited[name] = val; @@ -526,20 +620,31 @@ dojo.parser = new function(){ }); // if parent is a widget, then search for <script type=dojo/*> tags and put them in scripts[]. - var scripts = parent.scripts; + var scripts = parent.clsInfo && !parent.clsInfo.cls.prototype._noScript ? parent.scripts : null; // unless parent is a widget with the stopParser flag set, continue search for dojoType, recursively - var recurse = !parent.clsInfo || !parent.clsInfo.cls.prototype.stopParser; + var recurse = (!parent.clsInfo || !parent.clsInfo.cls.prototype.stopParser) || (args && args.template); // scan parent's children looking for dojoType and <script type=dojo/*> for(var child = parent.node.firstChild; child; child = child.nextSibling){ if(child.nodeType == 1){ - var type = recurse && child.getAttribute(attrName); + // FIXME: desupport dojoType in 2.0. use data-dojo-type instead + var type, html5 = recurse && child.getAttribute(attrData + "type"); + if(html5){ + type = html5; + }else{ + // fallback to backward compatible mode, using dojoType. remove in 2.0 + type = recurse && child.getAttribute(attrName); + } + + var fastpath = html5 == type; + if(type){ - // if dojoType specified, add to output array of nodes to instantiate + // if dojoType/data-dojo-type specified, add to output array of nodes to instantiate var params = { "type": type, - clsInfo: getClassInfo(type), // note: won't find classes declared via dojo.Declaration + fastpath: fastpath, + clsInfo: getClassInfo(type, fastpath), // note: won't find classes declared via dojo.Declaration node: child, scripts: [], // <script> nodes that are parent's children inherited: inherited // dir & lang attributes inherited from parent @@ -552,7 +657,7 @@ dojo.parser = new function(){ }else if(scripts && child.nodeName.toLowerCase() == "script"){ // if <script type="dojo/...">, save in scripts[] type = child.getAttribute("type"); - if (type && /^dojo\//i.test(type)) { + if (type && /^dojo\/\w/i.test(type)) { scripts.push(child); } }else if(recurse){ @@ -566,17 +671,24 @@ dojo.parser = new function(){ } } + // Ignore bogus entries in inherited hash like {dir: ""} + var inherited = {}; + if(args && args.inherited){ + for(var key in args.inherited){ + if(args.inherited[key]){ inherited[key] = args.inherited[key]; } + } + } + // Make list of all nodes on page w/dojoType specified var list = []; scan({ - node: root ? dojo.byId(root) : dojo.body(), - inherited: (args && args.inherited) || { - dir: dojo._isBodyLtr() ? "ltr" : "rtl" - } + node: root, + inherited: inherited }, list); // go build the object instances - return this.instantiate(list, null, args); // Array + var mixin = args && args.template ? {template: true} : null; + return this.instantiate(list, mixin, args); // Array }; }(); @@ -584,14 +696,14 @@ dojo.parser = new function(){ //after the a11y test. (function(){ - var parseRunner = function(){ + var parseRunner = function(){ if(dojo.config.parseOnLoad){ - dojo.parser.parse(); + dojo.parser.parse(); } }; // FIXME: need to clobber cross-dependency!! - if(dojo.exists("dijit.wai.onload") && (dijit.wai.onload === dojo._loaders[0])){ + if(dojo.getObject("dijit.wai.onload") === dojo._loaders[0]){ dojo._loaders.splice(1, 0, parseRunner); }else{ dojo._loaders.unshift(parseRunner); @@ -604,6 +716,8 @@ if(!dojo._hasResource["dojo.window"]){ //_hasResource checks added by build. Do dojo._hasResource["dojo.window"] = true; dojo.provide("dojo.window"); +dojo.getObject("window", true, dojo); + dojo.window.getBox = function(){ // summary: // Returns the dimensions and scroll position of the viewable area of a browser window @@ -657,7 +771,9 @@ dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ return; } var backCompat = doc.compatMode == 'BackCompat', - clientAreaRoot = backCompat? body : html, + clientAreaRoot = (isIE >= 9 && node.ownerDocument.parentWindow.frameElement) + ? ((html.clientHeight > 0 && html.clientWidth > 0 && (body.clientHeight == 0 || body.clientWidth == 0 || body.clientHeight > html.clientHeight || body.clientWidth > html.clientWidth)) ? html : body) + : (backCompat ? body : html), scrollRoot = isWK ? body : clientAreaRoot, rootWidth = clientAreaRoot.clientWidth, rootHeight = clientAreaRoot.clientHeight, @@ -682,14 +798,11 @@ dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ }else{ var pb = dojo._getPadBorderExtents(el); elPos.w -= pb.w; elPos.h -= pb.h; elPos.x += pb.l; elPos.y += pb.t; - } - - if(el != scrollRoot){ // body, html sizes already have the scrollbar removed var clientSize = el.clientWidth, scrollBarSize = elPos.w - clientSize; if(clientSize > 0 && scrollBarSize > 0){ elPos.w = clientSize; - if(isIE && rtl){ elPos.x += scrollBarSize; } + elPos.x += (rtl && (isIE || el.clientLeft > pb.l/*Chrome*/)) ? scrollBarSize : 0; } clientSize = el.clientHeight; scrollBarSize = elPos.h - clientSize; @@ -718,8 +831,9 @@ dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ bot = t + nodePos.h - elPos.h; // beyond bottom: > 0 if(r * l > 0){ var s = Math[l < 0? "max" : "min"](l, r); + if(rtl && ((isIE == 8 && !backCompat) || isIE >= 9)){ s = -s; } nodePos.x += el.scrollLeft; - el.scrollLeft += (isIE >= 8 && !backCompat && rtl)? -s : s; + el.scrollLeft += s; nodePos.x -= el.scrollLeft; } if(bot * t > 0){ @@ -728,7 +842,7 @@ dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ nodePos.y -= el.scrollTop; } el = (el != scrollRoot) && !fixedPos && el.parentNode; - } + } }catch(error){ console.error('scrollIntoView: ' + error); node.scrollIntoView(false); @@ -741,6 +855,7 @@ if(!dojo._hasResource["dijit._base.manager"]){ //_hasResource checks added by bu dojo._hasResource["dijit._base.manager"] = true; dojo.provide("dijit._base.manager"); + dojo.declare("dijit.WidgetSet", null, { // summary: // A set of widgets indexed by id. A default instance of this class is @@ -996,7 +1111,10 @@ dojo.declare("dijit.WidgetSet", null, { if(node.nodeType == 1){ var widgetId = node.getAttribute("widgetId"); if(widgetId){ - outAry.push(hash[widgetId]); + var widget = hash[widgetId]; + if(widget){ // may be null on page w/multiple dojo's loaded + outAry.push(widget); + } }else{ getChildrenHelper(node); } @@ -1086,29 +1204,25 @@ dojo.declare("dijit.WidgetSet", null, { return true; case "iframe": // If it's an editor <iframe> then it's tab navigable. - //TODO: feature detect "designMode" in elem.contentDocument? - if(dojo.isMoz){ - try{ - return elem.contentDocument.designMode == "on"; - }catch(err){ - return false; + var body; + try{ + // non-IE + var contentDocument = elem.contentDocument; + if("designMode" in contentDocument && contentDocument.designMode == "on"){ + return true; } - }else if(dojo.isWebKit){ - var doc = elem.contentDocument, - body = doc && doc.body; - return body && body.contentEditable == 'true'; - }else{ + body = contentDocument.body; + }catch(e1){ // contentWindow.document isn't accessible within IE7/8 // if the iframe.src points to a foreign url and this // page contains an element, that could get focus try{ - doc = elem.contentWindow.document; - body = doc && doc.body; - return body && body.firstChild && body.firstChild.contentEditable == 'true'; - }catch(e){ + body = elem.contentWindow.document.body; + }catch(e2){ return false; } } + return body.contentEditable == 'true' || (body.firstChild && body.firstChild.contentEditable == 'true'); default: return elem.contentEditable == 'true'; } @@ -1144,7 +1258,13 @@ dojo.declare("dijit.WidgetSet", null, { // positive tabIndex value // * the last element in document order with the highest // positive tabIndex value - var first, last, lowest, lowestTabindex, highest, highestTabindex; + var first, last, lowest, lowestTabindex, highest, highestTabindex, radioSelected = {}; + function radioName(node) { + // If this element is part of a radio button group, return the name for that group. + return node && node.tagName.toLowerCase() == "input" && + node.type && node.type.toLowerCase() == "radio" && + node.name && node.name.toLowerCase(); + } var walkTree = function(/*DOMNode*/parent){ dojo.query("> *", parent).forEach(function(child){ // Skip hidden elements, and also non-HTML elements (those in custom namespaces) in IE, @@ -1168,6 +1288,10 @@ dojo.declare("dijit.WidgetSet", null, { highest = child; } } + var rn = radioName(child); + if(dojo.attr(child, "checked") && rn) { + radioSelected[rn] = child; + } } if(child.nodeName.toUpperCase() != 'SELECT'){ walkTree(child); @@ -1175,7 +1299,11 @@ dojo.declare("dijit.WidgetSet", null, { }); }; if(shown(root)){ walkTree(root) } - return { first: first, last: last, lowest: lowest, highest: highest }; + function rs(node) { + // substitute checked radio button for unchecked one, if there is a checked one with the same name. + return radioSelected[radioName(node)] || node; + } + return { first: rs(first), last: rs(last), lowest: rs(lowest), highest: rs(highest) }; } dijit.getFirstInTabbingOrder = function(/*String|DOMNode*/ root){ // summary: @@ -1215,7 +1343,7 @@ dojo._hasResource["dijit._base.focus"] = true; dojo.provide("dijit._base.focus"); - // for dijit.isTabNavigable() + // summary: // These functions are used to query or set the focus and selection. @@ -1271,6 +1399,9 @@ dojo.mixin(dijit, { } } bm = {isCollapsed:true}; + if(sel.rangeCount){ + bm.mark = sel.getRangeAt(0).cloneRange(); + } }else{ rg = sel.getRangeAt(0); bm = {isCollapsed: false, mark: rg.cloneRange()}; @@ -1518,7 +1649,7 @@ dojo.mixin(dijit, { var doc = dojo.isIE ? targetWindow.document.documentElement : targetWindow.document; if(doc){ if(dojo.isIE){ - doc.attachEvent('onmousedown', mousedownListener); + targetWindow.document.body.attachEvent('onmousedown', mousedownListener); var activateListener = function(evt){ // IE reports that nodes like <body> have gotten focus, even though they have tabIndex=-1, // Should consider those more like a mouse-click than a focus.... @@ -1536,13 +1667,13 @@ dojo.mixin(dijit, { doc.attachEvent('ondeactivate', deactivateListener); return function(){ - doc.detachEvent('onmousedown', mousedownListener); + targetWindow.document.detachEvent('onmousedown', mousedownListener); doc.detachEvent('onactivate', activateListener); doc.detachEvent('ondeactivate', deactivateListener); doc = null; // prevent memory leak (apparent circular reference via closure) }; }else{ - doc.addEventListener('mousedown', mousedownListener, true); + doc.body.addEventListener('mousedown', mousedownListener, true); var focusListener = function(evt){ dijit._onFocusNode(effectiveNode || evt.target); }; @@ -1553,7 +1684,7 @@ dojo.mixin(dijit, { doc.addEventListener('blur', blurListener, true); return function(){ - doc.removeEventListener('mousedown', mousedownListener, true); + doc.body.removeEventListener('mousedown', mousedownListener, true); doc.removeEventListener('focus', focusListener, true); doc.removeEventListener('blur', blurListener, true); doc = null; // prevent memory leak (apparent circular reference via closure) @@ -1694,6 +1825,7 @@ dojo.mixin(dijit, { widget = dijit.byId(oldStack[i]); if(widget){ widget._focused = false; + widget.set("focused", false); widget._hasBeenBlurred = true; if(widget._onBlur){ widget._onBlur(by); @@ -1707,6 +1839,7 @@ dojo.mixin(dijit, { widget = dijit.byId(newStack[i]); if(widget){ widget._focused = true; + widget.set("focused", true); if(widget._onFocus){ widget._onFocus(by); } @@ -1733,6 +1866,7 @@ if(!dojo._hasResource["dojo.AdapterRegistry"]){ //_hasResource checks added by b dojo._hasResource["dojo.AdapterRegistry"] = true; dojo.provide("dojo.AdapterRegistry"); + dojo.AdapterRegistry = function(/*Boolean?*/ returnWrappers){ // summary: // A registry to make contextual calling/searching easier. @@ -1764,11 +1898,11 @@ dojo.AdapterRegistry = function(/*Boolean?*/ returnWrappers){ this.pairs = []; this.returnWrappers = returnWrappers || false; // Boolean -} +}; dojo.extend(dojo.AdapterRegistry, { register: function(/*String*/ name, /*Function*/ check, /*Function*/ wrap, /*Boolean?*/ directReturn, /*Boolean?*/ override){ - // summary: + // summary: // register a check function to determine if the wrap function or // object gets selected // name: @@ -1836,7 +1970,6 @@ dojo.provide("dijit._base.place"); - dijit.getViewport = function(){ // summary: // Returns the dimensions and scroll position of the viewable area of a browser window @@ -1896,16 +2029,22 @@ dijit.placeOnScreen = function( return dijit._place(node, choices); } -dijit._place = function(/*DomNode*/ node, /* Array */ choices, /* Function */ layoutNode){ +dijit._place = function(/*DomNode*/ node, choices, layoutNode, /*Object*/ aroundNodeCoords){ // summary: // Given a list of spots to put node, put it at the first spot where it fits, // of if it doesn't fit anywhere then the place with the least overflow // choices: Array // Array of elements like: {corner: 'TL', pos: {x: 10, y: 20} } // Above example says to put the top-left corner of the node at (10,20) - // layoutNode: Function(node, aroundNodeCorner, nodeCorner) + // layoutNode: Function(node, aroundNodeCorner, nodeCorner, size) // for things like tooltip, they are displayed differently (and have different dimensions) // based on their orientation relative to the parent. This adjusts the popup based on orientation. + // It also passes in the available size for the popup, which is useful for tooltips to + // tell them that their width is limited to a certain amount. layoutNode() may return a value expressing + // how much the popup had to be modified to fit into the available space. This is used to determine + // what the best placement is. + // aroundNodeCoords: Object + // Size of aroundNode, ex: {w: 200, h: 50} // get {x: 10, y: 10, w: 100, h:100} type obj representing position of // viewport over document @@ -1922,12 +2061,20 @@ dijit._place = function(/*DomNode*/ node, /* Array */ choices, /* Function */ la dojo.some(choices, function(choice){ var corner = choice.corner; var pos = choice.pos; + var overflow = 0; + + // calculate amount of space available given specified position of node + var spaceAvailable = { + w: corner.charAt(1) == 'L' ? (view.l + view.w) - pos.x : pos.x - view.l, + h: corner.charAt(1) == 'T' ? (view.t + view.h) - pos.y : pos.y - view.t + }; // configure node to be displayed in given position relative to button // (need to do this in order to get an accurate size for the node, because - // a tooltips size changes based on position, due to triangle) + // a tooltip's size changes based on position, due to triangle) if(layoutNode){ - layoutNode(node, choice.aroundCorner, corner); + var res = layoutNode(node, choice.aroundCorner, corner, spaceAvailable, aroundNodeCoords); + overflow = typeof res == "undefined" ? 0 : res; } // get node's size @@ -1947,8 +2094,9 @@ dijit._place = function(/*DomNode*/ node, /* Array */ choices, /* Function */ la endX = Math.min(view.l + view.w, corner.charAt(1) == 'L' ? (startX + mb.w) : pos.x), endY = Math.min(view.t + view.h, corner.charAt(0) == 'T' ? (startY + mb.h) : pos.y), width = endX - startX, - height = endY - startY, - overflow = (mb.w - width) + (mb.h - height); + height = endY - startY; + + overflow += (mb.w - width) + (mb.h - height); if(best == null || overflow < best.overflow){ best = { @@ -1958,17 +2106,32 @@ dijit._place = function(/*DomNode*/ node, /* Array */ choices, /* Function */ la y: startY, w: width, h: height, - overflow: overflow + overflow: overflow, + spaceAvailable: spaceAvailable }; } + return !overflow; }); - node.style.left = best.x + "px"; - node.style.top = best.y + "px"; + // In case the best position is not the last one we checked, need to call + // layoutNode() again. if(best.overflow && layoutNode){ - layoutNode(node, best.aroundCorner, best.corner); + layoutNode(node, best.aroundCorner, best.corner, best.spaceAvailable, aroundNodeCoords); } + + // And then position the node. Do this last, after the layoutNode() above + // has sized the node, due to browser quirks when the viewport is scrolled + // (specifically that a Tooltip will shrink to fit as though the window was + // scrolled to the left). + // + // In RTL mode, set style.right rather than style.left so in the common case, + // window resizes move the popup along with the aroundNode. + var l = dojo._isBodyLtr(), + s = node.style; + s.top = best.y + "px"; + s[l ? "left" : "right"] = (l ? best.x : view.w - best.x - best.w) + "px"; + return best; } @@ -2015,11 +2178,7 @@ dijit.placeOnScreenAroundNode = function( // get coordinates of aroundNode aroundNode = dojo.byId(aroundNode); - var oldDisplay = aroundNode.style.display; - aroundNode.style.display=""; - // #3172: use the slightly tighter border box instead of marginBox var aroundNodePos = dojo.position(aroundNode, true); - aroundNode.style.display=oldDisplay; // place the node around the calculated rectangle return dijit._placeOnScreenAroundRect(node, @@ -2090,7 +2249,7 @@ dijit._placeOnScreenAroundRect = function( }); } - return dijit._place(node, choices, layoutNode); + return dijit._place(node, choices, layoutNode, {w: width, h: height}); }; dijit.placementRegistry= new dojo.AdapterRegistry(); @@ -2150,11 +2309,17 @@ dijit.getPopupAroundAlignment = function(/*Array*/ position, /*Boolean*/ leftToR case "before": align[leftToRight ? "BL" : "BR"] = leftToRight ? "BR" : "BL"; break; + case "below-alt": + leftToRight = !leftToRight; + // fall through case "below": // first try to align left borders, next try to align right borders (or reverse for RTL mode) align[leftToRight ? "BL" : "BR"] = leftToRight ? "TL" : "TR"; align[leftToRight ? "BR" : "BL"] = leftToRight ? "TR" : "TL"; break; + case "above-alt": + leftToRight = !leftToRight; + // fall through case "above": default: // first try to align left borders, next try to align right borders (or reverse for RTL mode) @@ -2259,48 +2424,77 @@ dijit.popup = { _idGen: 1, - moveOffScreen: function(/*DomNode*/ node){ + _createWrapper: function(/*Widget || DomNode*/ widget){ // summary: - // Initialization for nodes that will be used as popups - // - // description: - // Puts node inside a wrapper <div>, and - // positions wrapper div off screen, but not display:none, so that - // the widget doesn't appear in the page flow and/or cause a blank - // area at the bottom of the viewport (making scrollbar longer), but - // initialization of contained widgets works correctly - - var wrapper = node.parentNode; - - // Create a wrapper widget for when this node (in the future) will be used as a popup. - // This is done early because of IE bugs where creating/moving DOM nodes causes focus - // to go wonky, see tests/robot/Toolbar.html to reproduce - if(!wrapper || !dojo.hasClass(wrapper, "dijitPopup")){ + // Initialization for widgets that will be used as popups. + // Puts widget inside a wrapper DIV (if not already in one), + // and returns pointer to that wrapper DIV. + + var wrapper = widget.declaredClass ? widget._popupWrapper : (widget.parentNode && dojo.hasClass(widget.parentNode, "dijitPopup")), + node = widget.domNode || widget; + + if(!wrapper){ + // Create wrapper <div> for when this widget [in the future] will be used as a popup. + // This is done early because of IE bugs where creating/moving DOM nodes causes focus + // to go wonky, see tests/robot/Toolbar.html to reproduce wrapper = dojo.create("div",{ "class":"dijitPopup", - style:{ - visibility:"hidden", - top: "-9999px" - } + style:{ display: "none"}, + role: "presentation" }, dojo.body()); - dijit.setWaiRole(wrapper, "presentation"); wrapper.appendChild(node); + + var s = node.style; + s.display = ""; + s.visibility = ""; + s.position = ""; + s.top = "0px"; + + if(widget.declaredClass){ // TODO: in 2.0 change signature to always take widget, then remove if() + widget._popupWrapper = wrapper; + dojo.connect(widget, "destroy", function(){ + dojo.destroy(wrapper); + delete widget._popupWrapper; + }); + } } + + return wrapper; + }, + moveOffScreen: function(/*Widget || DomNode*/ widget){ + // summary: + // Moves the popup widget off-screen. + // Do not use this method to hide popups when not in use, because + // that will create an accessibility issue: the offscreen popup is + // still in the tabbing order. - var s = node.style; - s.display = ""; - s.visibility = ""; - s.position = ""; - s.top = "0px"; + // Create wrapper if not already there + var wrapper = this._createWrapper(widget); dojo.style(wrapper, { visibility: "hidden", - // prevent transient scrollbar causing misalign (#5776), and initial flash in upper left (#10111) - top: "-9999px" + top: "-9999px", // prevent transient scrollbar causing misalign (#5776), and initial flash in upper left (#10111) + display: "" }); }, + hide: function(/*dijit._Widget*/ widget){ + // summary: + // Hide this popup widget (until it is ready to be shown). + // Initialization for widgets that will be used as popups + // + // Also puts widget inside a wrapper DIV (if not already in one) + // + // If popup widget needs to layout it should + // do so when it is made visible, and popup._onShow() is called. + + // Create wrapper if not already there + var wrapper = this._createWrapper(widget); + + dojo.style(wrapper, "display", "none"); + }, + getTopPopup: function(){ // summary: // Compute the closest ancestor popup that's *not* a child of another popup. @@ -2337,14 +2531,17 @@ dijit.popup = { around = args.around, id = (args.around && args.around.id) ? (args.around.id+"_dropdown") : ("popup_"+this._idGen++); - - // The wrapper may have already been created, but in case it wasn't, create here - var wrapper = widget.domNode.parentNode; - if(!wrapper || !dojo.hasClass(wrapper, "dijitPopup")){ - this.moveOffScreen(widget.domNode); - wrapper = widget.domNode.parentNode; + // If we are opening a new popup that isn't a child of a currently opened popup, then + // close currently opened popup(s). This should happen automatically when the old popups + // gets the _onBlur() event, except that the _onBlur() event isn't reliable on IE, see [22198]. + while(stack.length && (!args.parent || !dojo.isDescendant(args.parent.domNode, stack[stack.length-1].widget.domNode))){ + dijit.popup.close(stack[stack.length-1].widget); } + // Get pointer to popup wrapper, and create wrapper if it doesn't exist + var wrapper = this._createWrapper(widget); + + dojo.attr(wrapper, { id: id, style: { @@ -2355,9 +2552,9 @@ dijit.popup = { }); if(dojo.isIE || dojo.isMoz){ - var iframe = wrapper.childNodes[1]; - if(!iframe){ - iframe = new dijit.BackgroundIframe(wrapper); + if(!widget.bgIframe){ + // setting widget.bgIframe triggers cleanup in _Widget.destroy() + widget.bgIframe = new dijit.BackgroundIframe(wrapper); } } @@ -2366,6 +2563,7 @@ dijit.popup = { dijit.placeOnScreenAroundElement(wrapper, around, orient, widget.orient ? dojo.hitch(widget, "orient") : null) : dijit.placeOnScreen(wrapper, args, orient == 'R' ? ['TR','BR','TL','BL'] : ['TL','BL','TR','BR'], args.padding); + wrapper.style.display = ""; wrapper.style.visibility = "visible"; widget.domNode.style.visibility = "visible"; // counteract effects from _HasDropDown @@ -2400,8 +2598,6 @@ dijit.popup = { })); stack.push({ - wrapper: wrapper, - iframe: iframe, widget: widget, parent: args.parent, onExecute: args.onExecute, @@ -2418,9 +2614,10 @@ dijit.popup = { return best; }, - close: function(/*dijit._Widget*/ popup){ + close: function(/*dijit._Widget?*/ popup){ // summary: - // Close specified popup and any popups that it parented + // Close specified popup and any popups that it parented. + // If no popup is specified, closes all popups. var stack = this._stack; @@ -2429,10 +2626,9 @@ dijit.popup = { // a popup would cause others to close too. Thus if we are trying to close B in [A,B,C] // closing C might close B indirectly and then the while() condition will run where stack==[A]... // so the while condition is constructed defensively. - while(dojo.some(stack, function(elem){return elem.widget == popup;})){ + while((popup && dojo.some(stack, function(elem){return elem.widget == popup;})) || + (!popup && stack.length)){ var top = stack.pop(), - wrapper = top.wrapper, - iframe = top.iframe, widget = top.widget, onClose = top.onClose; @@ -2442,11 +2638,9 @@ dijit.popup = { } dojo.forEach(top.handlers, dojo.disconnect); - // Move the widget plus it's wrapper off screen, unless it has already been destroyed in above onClose() etc. + // Hide the widget and it's wrapper unless it has already been destroyed in above onClose() etc. if(widget && widget.domNode){ - this.moveOffScreen(widget.domNode); - }else{ - dojo.destroy(wrapper); + this.hide(widget); } if(onClose){ @@ -2456,9 +2650,12 @@ dijit.popup = { } }; +// TODO: remove dijit._frames, it isn't being used much, since popups never release their +// iframes (see [22236]) dijit._frames = new function(){ // summary: // cache of iframes + var queue = []; this.pop = function(){ @@ -2467,7 +2664,7 @@ dijit._frames = new function(){ iframe = queue.pop(); iframe.style.display=""; }else{ - if(dojo.isIE){ + if(dojo.isIE < 9){ var burl = dojo.config["dojoBlankHtmlUrl"] || (dojo.moduleUrl("dojo", "resources/blank.html")+"") || "javascript:\"\""; var html="<iframe src='" + burl + "'" + " style='position: absolute; left: 0px; top: 0px;" @@ -2479,7 +2676,7 @@ dijit._frames = new function(){ iframe.className = "dijitBackgroundIframe"; dojo.style(iframe, "opacity", 0.1); } - iframe.tabIndex = -1; // Magic to prevent iframe from getting focus on tab keypress - as style didnt work. + iframe.tabIndex = -1; // Magic to prevent iframe from getting focus on tab keypress - as style didn't work. dijit.setWaiRole(iframe,"presentation"); } return iframe; @@ -2492,7 +2689,7 @@ dijit._frames = new function(){ }(); -dijit.BackgroundIframe = function(/* DomNode */node){ +dijit.BackgroundIframe = function(/*DomNode*/ node){ // summary: // For IE/FF z-index schenanigans. id attribute is required. // @@ -2503,9 +2700,9 @@ dijit.BackgroundIframe = function(/* DomNode */node){ if(!node.id){ throw new Error("no id"); } if(dojo.isIE || dojo.isMoz){ - var iframe = dijit._frames.pop(); + var iframe = (this.iframe = dijit._frames.pop()); node.appendChild(iframe); - if(dojo.isIE<7){ + if(dojo.isIE<7 || dojo.isQuirks){ this.resize(node); this._conn = dojo.connect(node, 'onresize', this, function(){ this.resize(node); @@ -2516,19 +2713,15 @@ dijit.BackgroundIframe = function(/* DomNode */node){ height: '100%' }); } - this.iframe = iframe; } }; dojo.extend(dijit.BackgroundIframe, { resize: function(node){ // summary: - // resize the iframe so its the same size as node - // description: - // this function is a no-op in all browsers except - // IE6, which does not support 100% width/height - // of absolute positioned iframes - if(this.iframe && dojo.isIE<7){ + // Resize the iframe so it's the same size as node. + // Needed on IE6 and IE/quirks because height:100% doesn't work right. + if(this.iframe){ dojo.style(this.iframe, { width: node.offsetWidth + 'px', height: node.offsetHeight + 'px' @@ -2571,6 +2764,7 @@ if(!dojo._hasResource["dojo.uacss"]){ //_hasResource checks added by build. Do n dojo._hasResource["dojo.uacss"] = true; dojo.provide("dojo.uacss"); + (function(){ // summary: // Applies pre-set CSS classes to the top-level HTML node, based on: @@ -2595,6 +2789,7 @@ dojo.provide("dojo.uacss"); dj_ie6: maj(ie) == 6, dj_ie7: maj(ie) == 7, dj_ie8: maj(ie) == 8, + dj_ie9: maj(ie) == 9, dj_quirks: d.isQuirks, dj_iequirks: ie && d.isQuirks, @@ -2623,7 +2818,7 @@ dojo.provide("dojo.uacss"); html.className = d.trim(html.className + " " + classStr); // If RTL mode, then add dj_rtl flag plus repeat existing classes with -rtl extension. - // We can't run the code below until the <body> tag has loaded (so we can check for dir=rtl). + // We can't run the code below until the <body> tag has loaded (so we can check for dir=rtl). // Unshift() is to run sniff code before the parser. dojo._loaders.unshift(function(){ if(!dojo._isBodyLtr()){ @@ -2637,6 +2832,10 @@ dojo.provide("dojo.uacss"); if(!dojo._hasResource["dijit._base.sniff"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dijit._base.sniff"] = true; +dojo.provide("dijit._base.sniff"); + + + // summary: // Applies pre-set CSS classes to the top-level HTML node, see // `dojo.uacss` for details. @@ -2644,16 +2843,13 @@ dojo._hasResource["dijit._base.sniff"] = true; // Simply doing a require on this module will // establish this CSS. Modified version of Morris' CSS hack. -dojo.provide("dijit._base.sniff"); - - - } if(!dojo._hasResource["dijit._base.typematic"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dijit._base.typematic"] = true; dojo.provide("dijit._base.typematic"); + dijit.typematic = { // summary: // These functions are used to repetitively call a user specified callback @@ -2838,6 +3034,7 @@ if(!dojo._hasResource["dijit._base.wai"]){ //_hasResource checks added by build. dojo._hasResource["dijit._base.wai"] = true; dojo.provide("dijit._base.wai"); + dijit.wai = { onload: function(){ // summary: @@ -2883,26 +3080,24 @@ if(dojo.isIE || dojo.isMoz){ // NOTE: checking in Safari messes things up } dojo.mixin(dijit, { - _XhtmlRoles: /banner|contentinfo|definition|main|navigation|search|note|secondary|seealso/, - - hasWaiRole: function(/*Element*/ elem, /*String*/ role){ + hasWaiRole: function(/*Element*/ elem, /*String?*/ role){ // summary: - // Determines if an element has a particular non-XHTML role. + // Determines if an element has a particular role. // returns: - // True if elem has the specific non-XHTML role attribute and false if not. + // True if elem has the specific role attribute and false if not. // For backwards compatibility if role parameter not provided, - // returns true if has non XHTML role + // returns true if has a role var waiRole = this.getWaiRole(elem); return role ? (waiRole.indexOf(role) > -1) : (waiRole.length > 0); }, getWaiRole: function(/*Element*/ elem){ // summary: - // Gets the non-XHTML role for an element (which should be a wai role). + // Gets the role for an element (which should be a wai role). // returns: - // The non-XHTML role of elem or an empty string if elem + // The role of elem or an empty string if elem // does not have a role. - return dojo.trim((dojo.attr(elem, "role") || "").replace(this._XhtmlRoles,"").replace("wairole:","")); + return dojo.trim((dojo.attr(elem, "role") || "").replace("wairole:","")); }, setWaiRole: function(/*Element*/ elem, /*String*/ role){ @@ -2910,24 +3105,13 @@ dojo.mixin(dijit, { // Sets the role on an element. // description: // Replace existing role attribute with new role. - // If elem already has an XHTML role, append this role to XHTML role - // and remove other ARIA roles. - var curRole = dojo.attr(elem, "role") || ""; - if(!this._XhtmlRoles.test(curRole)){ dojo.attr(elem, "role", role); - }else{ - if((" "+ curRole +" ").indexOf(" " + role + " ") < 0){ - var clearXhtml = dojo.trim(curRole.replace(this._XhtmlRoles, "")); - var cleanRole = dojo.trim(curRole.replace(clearXhtml, "")); - dojo.attr(elem, "role", cleanRole + (cleanRole ? ' ' : '') + role); - } - } }, removeWaiRole: function(/*Element*/ elem, /*String*/ role){ // summary: - // Removes the specified non-XHTML role from an element. + // Removes the specified role from an element. // Removes role attribute if no specific role provided (for backwards compat.) var roleValue = dojo.attr(elem, "role"); @@ -2999,73 +3183,157 @@ dojo.provide("dijit._base"); -} -if(!dojo._hasResource["dijit._Widget"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._Widget"] = true; -dojo.provide("dijit._Widget"); +} -dojo.require( "dijit._base" ); +if(!dojo._hasResource["dojo.Stateful"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.Stateful"] = true; +dojo.provide("dojo.Stateful"); -// This code is to assist deferring dojo.connect() calls in widgets (connecting to events on the widgets' -// DOM nodes) until someone actually needs to monitor that event. -dojo.connect(dojo, "_connect", - function(/*dijit._Widget*/ widget, /*String*/ event){ - if(widget && dojo.isFunction(widget._onConnect)){ - widget._onConnect(event); +dojo.declare("dojo.Stateful", null, { + // summary: + // Base class for objects that provide named properties with optional getter/setter + // control and the ability to watch for property changes + // example: + // | var obj = new dojo.Stateful(); + // | obj.watch("foo", function(){ + // | console.log("foo changed to " + this.get("foo")); + // | }); + // | obj.set("foo","bar"); + postscript: function(mixin){ + if(mixin){ + dojo.mixin(this, mixin); } - }); - -dijit._connectOnUseEventHandler = function(/*Event*/ event){}; - -// Keep track of where the last keydown event was, to help avoid generating -// spurious ondijitclick events when: -// 1. focus is on a <button> or <a> -// 2. user presses then releases the ENTER key -// 3. onclick handler fires and shifts focus to another node, with an ondijitclick handler -// 4. onkeyup event fires, causing the ondijitclick handler to fire -dijit._lastKeyDownNode = null; -if(dojo.isIE){ - (function(){ - var keydownCallback = function(evt){ - dijit._lastKeyDownNode = evt.srcElement; + }, + + get: function(/*String*/name){ + // summary: + // Get a property on a Stateful instance. + // name: + // The property to get. + // description: + // Get a named property on a Stateful object. The property may + // potentially be retrieved via a getter method in subclasses. In the base class + // this just retrieves the object's property. + // For example: + // | stateful = new dojo.Stateful({foo: 3}); + // | stateful.get("foo") // returns 3 + // | stateful.foo // returns 3 + + return this[name]; + }, + set: function(/*String*/name, /*Object*/value){ + // summary: + // Set a property on a Stateful instance + // name: + // The property to set. + // value: + // The value to set in the property. + // description: + // Sets named properties on a stateful object and notifies any watchers of + // the property. A programmatic setter may be defined in subclasses. + // For example: + // | stateful = new dojo.Stateful(); + // | stateful.watch(function(name, oldValue, value){ + // | // this will be called on the set below + // | } + // | stateful.set(foo, 5); + // + // set() may also be called with a hash of name/value pairs, ex: + // | myObj.set({ + // | foo: "Howdy", + // | bar: 3 + // | }) + // This is equivalent to calling set(foo, "Howdy") and set(bar, 3) + if(typeof name === "object"){ + for(var x in name){ + this.set(x, name[x]); + } + return this; + } + var oldValue = this[name]; + this[name] = value; + if(this._watchCallbacks){ + this._watchCallbacks(name, oldValue, value); + } + return this; + }, + watch: function(/*String?*/name, /*Function*/callback){ + // summary: + // Watches a property for changes + // name: + // Indicates the property to watch. This is optional (the callback may be the + // only parameter), and if omitted, all the properties will be watched + // returns: + // An object handle for the watch. The unwatch method of this object + // can be used to discontinue watching this property: + // | var watchHandle = obj.watch("foo", callback); + // | watchHandle.unwatch(); // callback won't be called now + // callback: + // The function to execute when the property changes. This will be called after + // the property has been changed. The callback will be called with the |this| + // set to the instance, the first argument as the name of the property, the + // second argument as the old value and the third argument as the new value. + + var callbacks = this._watchCallbacks; + if(!callbacks){ + var self = this; + callbacks = this._watchCallbacks = function(name, oldValue, value, ignoreCatchall){ + var notify = function(propertyCallbacks){ + if(propertyCallbacks){ + propertyCallbacks = propertyCallbacks.slice(); + for(var i = 0, l = propertyCallbacks.length; i < l; i++){ + try{ + propertyCallbacks[i].call(self, name, oldValue, value); + }catch(e){ + console.error(e); + } + } + } + }; + notify(callbacks['_' + name]); + if(!ignoreCatchall){ + notify(callbacks["*"]); // the catch-all + } + }; // we use a function instead of an object so it will be ignored by JSON conversion + } + if(!callback && typeof name === "function"){ + callback = name; + name = "*"; + }else{ + // prepend with dash to prevent name conflicts with function (like "name" property) + name = '_' + name; + } + var propertyCallbacks = callbacks[name]; + if(typeof propertyCallbacks !== "object"){ + propertyCallbacks = callbacks[name] = []; + } + propertyCallbacks.push(callback); + return { + unwatch: function(){ + propertyCallbacks.splice(dojo.indexOf(propertyCallbacks, callback), 1); + } }; - dojo.doc.attachEvent('onkeydown', keydownCallback); - dojo.addOnWindowUnload(function(){ - dojo.doc.detachEvent('onkeydown', keydownCallback); - }); - })(); -}else{ - dojo.doc.addEventListener('keydown', function(evt){ - dijit._lastKeyDownNode = evt.target; - }, true); + } + +}); + } -(function(){ +if(!dojo._hasResource["dijit._WidgetBase"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._WidgetBase"] = true; +dojo.provide("dijit._WidgetBase"); + -var _attrReg = {}, // cached results from getSetterAttributes - getSetterAttributes = function(widget){ - // summary: - // Returns list of attributes with custom setters for specified widget - var dc = widget.declaredClass; - if(!_attrReg[dc]){ - var r = [], - attrs, - proto = widget.constructor.prototype; - for(var fxName in proto){ - if(dojo.isFunction(proto[fxName]) && (attrs = fxName.match(/^_set([a-zA-Z]*)Attr$/)) && attrs[1]){ - r.push(attrs[1].charAt(0).toLowerCase() + attrs[1].substr(1)); - } - } - _attrReg[dc] = r; - } - return _attrReg[dc] || []; // String[] - }; -dojo.declare("dijit._Widget", null, { + +(function(){ + +dojo.declare("dijit._WidgetBase", dojo.Stateful, { // summary: - // Base class for all Dijit widgets. + // Future base class for all Dijit widgets. + // _Widget extends this class adding support for various features needed by desktop. // id: [const] String // A unique, opaque ID string that can be assigned by users or by the @@ -3163,7 +3431,7 @@ dojo.declare("dijit._Widget", null, { // Changes to widget attributes listed in attributeMap will be // reflected into the DOM. // - // For example, calling attr('title', 'hello') + // For example, calling set('title', 'hello') // on a TitlePane will automatically cause the TitlePane's DOM to update // with the new title. // @@ -3195,158 +3463,6 @@ dojo.declare("dijit._Widget", null, { // - "" --> { node: "domNode", type: "attribute" } attributeMap: {id:"", dir:"", lang:"", "class":"", style:"", title:""}, - // _deferredConnects: [protected] Object - // attributeMap addendum for event handlers that should be connected only on first use - _deferredConnects: { - onClick: "", - onDblClick: "", - onKeyDown: "", - onKeyPress: "", - onKeyUp: "", - onMouseMove: "", - onMouseDown: "", - onMouseOut: "", - onMouseOver: "", - onMouseLeave: "", - onMouseEnter: "", - onMouseUp: "" - }, - - onClick: dijit._connectOnUseEventHandler, - /*===== - onClick: function(event){ - // summary: - // Connect to this function to receive notifications of mouse click events. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - onDblClick: dijit._connectOnUseEventHandler, - /*===== - onDblClick: function(event){ - // summary: - // Connect to this function to receive notifications of mouse double click events. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - onKeyDown: dijit._connectOnUseEventHandler, - /*===== - onKeyDown: function(event){ - // summary: - // Connect to this function to receive notifications of keys being pressed down. - // event: - // key Event - // tags: - // callback - }, - =====*/ - onKeyPress: dijit._connectOnUseEventHandler, - /*===== - onKeyPress: function(event){ - // summary: - // Connect to this function to receive notifications of printable keys being typed. - // event: - // key Event - // tags: - // callback - }, - =====*/ - onKeyUp: dijit._connectOnUseEventHandler, - /*===== - onKeyUp: function(event){ - // summary: - // Connect to this function to receive notifications of keys being released. - // event: - // key Event - // tags: - // callback - }, - =====*/ - onMouseDown: dijit._connectOnUseEventHandler, - /*===== - onMouseDown: function(event){ - // summary: - // Connect to this function to receive notifications of when the mouse button is pressed down. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - onMouseMove: dijit._connectOnUseEventHandler, - /*===== - onMouseMove: function(event){ - // summary: - // Connect to this function to receive notifications of when the mouse moves over nodes contained within this widget. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - onMouseOut: dijit._connectOnUseEventHandler, - /*===== - onMouseOut: function(event){ - // summary: - // Connect to this function to receive notifications of when the mouse moves off of nodes contained within this widget. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - onMouseOver: dijit._connectOnUseEventHandler, - /*===== - onMouseOver: function(event){ - // summary: - // Connect to this function to receive notifications of when the mouse moves onto nodes contained within this widget. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - onMouseLeave: dijit._connectOnUseEventHandler, - /*===== - onMouseLeave: function(event){ - // summary: - // Connect to this function to receive notifications of when the mouse moves off of this widget. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - onMouseEnter: dijit._connectOnUseEventHandler, - /*===== - onMouseEnter: function(event){ - // summary: - // Connect to this function to receive notifications of when the mouse moves onto this widget. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - onMouseUp: dijit._connectOnUseEventHandler, - /*===== - onMouseUp: function(event){ - // summary: - // Connect to this function to receive notifications of when the mouse button is released. - // event: - // mouse Event - // tags: - // callback - }, - =====*/ - - // Constants used in templates - // _blankGif: [protected] String // Path to a blank 1x1 image. // Used by <img> nodes in templates that really get their image via CSS background-image. @@ -3397,25 +3513,11 @@ dojo.declare("dijit._Widget", null, { // The handle returned from Widget.subscribe() is the handle returned from dojo.subscribe() this._subscribes = []; - // To avoid double-connects, remove entries from _deferredConnects - // that have been setup manually by a subclass (ex, by dojoAttachEvent). - // If a subclass has redefined a callback (ex: onClick) then assume it's being - // connected to manually. - this._deferredConnects = dojo.clone(this._deferredConnects); - for(var attr in this.attributeMap){ - delete this._deferredConnects[attr]; // can't be in both attributeMap and _deferredConnects - } - for(attr in this._deferredConnects){ - if(this[attr] !== dijit._connectOnUseEventHandler){ - delete this._deferredConnects[attr]; // redefined, probably dojoAttachEvent exists - } - } - - //mixin our passed parameters + // mix in our passed parameters if(this.srcNodeRef && (typeof this.srcNodeRef.id == "string")){ this.id = this.srcNodeRef.id; } if(params){ this.params = params; - dojo.mixin(this,params); + dojo._mixin(this, params); } this.postMixInProperties(); @@ -3431,22 +3533,22 @@ dojo.declare("dijit._Widget", null, { if(this.domNode){ // Copy attributes listed in attributeMap into the [newly created] DOM for the widget. + // Also calls custom setters for all attributes with custom setters. this._applyAttributes(); + // If srcNodeRef was specified, then swap out original srcNode for this widget's DOM tree. + // For 2.0, move this after postCreate(). postCreate() shouldn't depend on the + // widget being attached to the DOM since it isn't when a widget is created programmatically like + // new MyWidget({}). See #11635. var source = this.srcNodeRef; - if(source && source.parentNode){ + if(source && source.parentNode && this.domNode !== source){ source.parentNode.replaceChild(this.domNode, source); } - - // If the developer has specified a handler as a widget parameter - // (ex: new Button({onClick: ...}) - // then naturally need to connect from DOM node to that handler immediately, - for(attr in this.params){ - this._onConnect(attr); - } } if(this.domNode){ + // Note: for 2.0 may want to rename widgetId to dojo._scopeName + "_widgetId", + // assuming that dojo._scopeName even exists in 2.0 this.domNode.setAttribute("widgetId", this.id); } this.postCreate(); @@ -3485,13 +3587,30 @@ dojo.declare("dijit._Widget", null, { } // And also any attributes with custom setters - dojo.forEach(getSetterAttributes(this), function(a){ + dojo.forEach(this._getSetterAttributes(), function(a){ if(!(a in this.attributeMap)){ condAttrApply(a, this); } }, this); }, + _getSetterAttributes: function(){ + // summary: + // Returns list of attributes with custom setters for this widget + var ctor = this.constructor; + if(!ctor._setterAttrs){ + var r = (ctor._setterAttrs = []), + attrs, + proto = ctor.prototype; + for(var fxName in proto){ + if(dojo.isFunction(proto[fxName]) && (attrs = fxName.match(/^_set([a-zA-Z]*)Attr$/)) && attrs[1]){ + r.push(attrs[1].charAt(0).toLowerCase() + attrs[1].substr(1)); + } + } + } + return ctor._setterAttrs; // String[] + }, + postMixInProperties: function(){ // summary: // Called after the parameters to the widget have been read-in, @@ -3510,7 +3629,22 @@ dojo.declare("dijit._Widget", null, { // method. // tags: // protected - this.domNode = this.srcNodeRef || dojo.create('div'); + + if(!this.domNode){ + // Create root node if it wasn't created by _Templated + this.domNode = this.srcNodeRef || dojo.create('div'); + } + + // baseClass is a single class name or occasionally a space-separated list of names. + // Add those classes to the DOMNode. If RTL mode then also add with Rtl suffix. + // TODO: make baseClass custom setter + if(this.baseClass){ + var classes = this.baseClass.split(" "); + if(!this.isLeftToRight()){ + classes = classes.concat( dojo.map(classes, function(name){ return name+"Rtl"; })); + } + dojo.addClass(this.domNode, classes); + } }, postCreate: function(){ @@ -3522,16 +3656,6 @@ dojo.declare("dijit._Widget", null, { // node dimensions or placement. // tags: // protected - - // baseClass is a single class name or occasionally a space-separated list of names. - // Add those classes to the DOMNod. If RTL mode then also add with Rtl suffix. - if(this.baseClass){ - var classes = this.baseClass.split(" "); - if(!this.isLeftToRight()){ - classes = classes.concat( dojo.map(classes, function(name){ return name+"Rtl"; })); - } - dojo.addClass(this.domNode, classes); - } }, startup: function(){ @@ -3647,7 +3771,6 @@ dojo.declare("dijit._Widget", null, { }); }, - uninitialize: function(){ // summary: // Stub function. Override to implement custom widget tear-down @@ -3657,60 +3780,7 @@ dojo.declare("dijit._Widget", null, { return false; }, - ////////////////// MISCELLANEOUS METHODS /////////////////// - - onFocus: function(){ - // summary: - // Called when the widget becomes "active" because - // it or a widget inside of it either has focus, or has recently - // been clicked. - // tags: - // callback - }, - - onBlur: function(){ - // summary: - // Called when the widget stops being "active" because - // focus moved to something outside of it, or the user - // clicked somewhere outside of it, or the widget was - // hidden. - // tags: - // callback - }, - - _onFocus: function(e){ - // summary: - // This is where widgets do processing for when they are active, - // such as changing CSS classes. See onFocus() for more details. - // tags: - // protected - this.onFocus(); - }, - - _onBlur: function(){ - // summary: - // This is where widgets do processing for when they stop being active, - // such as changing CSS classes. See onBlur() for more details. - // tags: - // protected - this.onBlur(); - }, - - _onConnect: function(/*String*/ event){ - // summary: - // Called when someone connects to one of my handlers. - // "Turn on" that handler if it isn't active yet. - // - // This is also called for every single initialization parameter - // so need to do nothing for parameters like "id". - // tags: - // private - if(event in this._deferredConnects){ - var mapNode = this[this._deferredConnects[event] || 'domNode']; - this.connect(mapNode, event.toLowerCase(), event); - delete this._deferredConnects[event]; - } - }, + ////////////////// GET/SET, CUSTOM SETTERS, ETC. /////////////////// _setClassAttr: function(/*String*/ value){ // summary: @@ -3718,14 +3788,13 @@ dojo.declare("dijit._Widget", null, { // tags: // protected var mapNode = this[this.attributeMap["class"] || 'domNode']; - dojo.removeClass(mapNode, this["class"]) - this["class"] = value; - dojo.addClass(mapNode, value); + dojo.replaceClass(mapNode, value, this["class"]); + this._set("class", value); }, _setStyleAttr: function(/*String||Object*/ value){ // summary: - // Sets the style attribut of the widget according to value, + // Sets the style attribute of the widget according to value, // which is either a hash like {height: "5px", width: "3px"} // or a plain string // description: @@ -3749,25 +3818,13 @@ dojo.declare("dijit._Widget", null, { } } - this.style = value; - }, - - setAttribute: function(/*String*/ attr, /*anything*/ value){ - // summary: - // Deprecated. Use set() instead. - // tags: - // deprecated - dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.", "", "2.0"); - this.set(attr, value); + this._set("style", value); }, _attrToDom: function(/*String*/ attr, /*String*/ value){ // summary: // Reflect a widget attribute (title, tabIndex, duration etc.) to // the widget DOM, as specified in attributeMap. - // - // description: - // Also sets this["attr"] to the new value. // Note some attributes like "type" // cannot be processed this way as they are not mutable. // @@ -3803,46 +3860,12 @@ dojo.declare("dijit._Widget", null, { mapNode.innerHTML = value; break; case "class": - dojo.removeClass(mapNode, this[attr]); - dojo.addClass(mapNode, value); + dojo.replaceClass(mapNode, value, this[attr]); break; } }, this); - this[attr] = value; }, - attr: function(/*String|Object*/name, /*Object?*/value){ - // summary: - // Set or get properties on a widget instance. - // name: - // The property to get or set. If an object is passed here and not - // a string, its keys are used as names of attributes to be set - // and the value of the object as values to set in the widget. - // value: - // Optional. If provided, attr() operates as a setter. If omitted, - // the current value of the named property is returned. - // description: - // This method is deprecated, use get() or set() directly. - - // Print deprecation warning but only once per calling function - if(dojo.config.isDebug){ - var alreadyCalledHash = arguments.callee._ach || (arguments.callee._ach = {}), - caller = (arguments.callee.caller || "unknown caller").toString(); - if(!alreadyCalledHash[caller]){ - dojo.deprecated(this.declaredClass + "::attr() is deprecated. Use get() or set() instead, called from " + - caller, "", "2.0"); - alreadyCalledHash[caller] = true; - } - } - - var args = arguments.length; - if(args >= 2 || typeof name === "object"){ // setter - return this.set.apply(this, arguments); - }else{ // getter - return this.get(name); - } - }, - get: function(name){ // summary: // Get a property from a widget. @@ -3851,7 +3874,7 @@ dojo.declare("dijit._Widget", null, { // description: // Get a named property from a widget. The property may // potentially be retrieved via a getter method. If no getter is defined, this - // just retrieves the object's property. + // just retrieves the object's property. // For example, if the widget has a properties "foo" // and "bar" and a method named "_getFooAttr", calling: // | myWidget.get("foo"); @@ -3869,11 +3892,11 @@ dojo.declare("dijit._Widget", null, { // summary: // Set a property on a widget // name: - // The property to set. + // The property to set. // value: // The value to set in the property. // description: - // Sets named properties on a widget which may potentially be handled by a + // Sets named properties on a widget which may potentially be handled by a // setter in the widget. // For example, if the widget has a properties "foo" // and "bar" and a method named "_setFooAttr", calling: @@ -3894,7 +3917,7 @@ dojo.declare("dijit._Widget", null, { if(typeof name === "object"){ for(var x in name){ - this.set(x, name[x]); + this.set(x, name[x]); } return this; } @@ -3907,9 +3930,7 @@ dojo.declare("dijit._Widget", null, { if(name in this.attributeMap){ this._attrToDom(name, value); } - var oldValue = this[name]; - // FIXME: what about function assignments? Any way to connect() here? - this[name] = value; + this._set(name, value); } return result || this; }, @@ -3932,6 +3953,17 @@ dojo.declare("dijit._Widget", null, { }); }, + _set: function(/*String*/ name, /*anything*/ value){ + // summary: + // Helper function to set new value for specified attribute, and call handlers + // registered with watch() if the value has changed. + var oldValue = this[name]; + this[name] = value; + if(this._watchCallbacks && this._created && value !== oldValue){ + this._watchCallbacks(name, oldValue, value); + } + }, + toString: function(){ // summary: // Returns a string that represents the widget @@ -3958,11 +3990,6 @@ dojo.declare("dijit._Widget", null, { return this.containerNode ? dijit.findWidgets(this.containerNode) : []; // dijit._Widget[] }, - // nodesWithKeyClick: [private] String[] - // List of nodes that correctly handle click events via native browser support, - // and don't need dijit's help - nodesWithKeyClick: ["input", "button"], - connect: function( /*Object|null*/ obj, /*String|Function*/ event, @@ -3973,8 +4000,8 @@ dojo.declare("dijit._Widget", null, { // description: // Provide widget-specific analog to dojo.connect, except with the // implicit use of this widget as the target object. - // This version of connect also provides a special "ondijitclick" - // event which triggers on a click or space or enter keyup + // Events connected with `this.connect` are disconnected upon + // destruction. // returns: // A handle that can be passed to `disconnect` in order to disconnect before // the widget is destroyed. @@ -3988,41 +4015,7 @@ dojo.declare("dijit._Widget", null, { // tags: // protected - var d = dojo, - dc = d._connect, - handles = []; - if(event == "ondijitclick"){ - // add key based click activation for unsupported nodes. - // do all processing onkey up to prevent spurious clicks - // for details see comments at top of this file where _lastKeyDownNode is defined - if(dojo.indexOf(this.nodesWithKeyClick, obj.nodeName.toLowerCase()) == -1){ // is NOT input or button - var m = d.hitch(this, method); - handles.push( - dc(obj, "onkeydown", this, function(e){ - //console.log(this.id + ": onkeydown, e.target = ", e.target, ", lastKeyDownNode was ", dijit._lastKeyDownNode, ", equality is ", (e.target === dijit._lastKeyDownNode)); - if((e.keyCode == d.keys.ENTER || e.keyCode == d.keys.SPACE) && - !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey){ - // needed on IE for when focus changes between keydown and keyup - otherwise dropdown menus do not work - dijit._lastKeyDownNode = e.target; - e.preventDefault(); // stop event to prevent scrolling on space key in IE - } - }), - dc(obj, "onkeyup", this, function(e){ - //console.log(this.id + ": onkeyup, e.target = ", e.target, ", lastKeyDownNode was ", dijit._lastKeyDownNode, ", equality is ", (e.target === dijit._lastKeyDownNode)); - if( (e.keyCode == d.keys.ENTER || e.keyCode == d.keys.SPACE) && - e.target === dijit._lastKeyDownNode && - !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey){ - //need reset here or have problems in FF when focus returns to trigger element after closing popup/alert - dijit._lastKeyDownNode = null; - return m(e); - } - }) - ); - } - event = "onclick"; - } - handles.push(dc(obj, event, this, method)); - + var handles = [dojo._connect(obj, event, this, method)]; this._connects.push(handles); return handles; // _Widget.Handle }, @@ -4058,8 +4051,7 @@ dojo.declare("dijit._Widget", null, { // | btn.subscribe("/my/topic", function(v){ // | this.set("label", v); // | }); - var d = dojo, - handle = d.subscribe(topic, this, method); + var handle = dojo.subscribe(topic, this, method); // return handles for Any widget that may need them this._subscribes.push(handle); @@ -4087,13 +4079,6 @@ dojo.declare("dijit._Widget", null, { return this.dir ? (this.dir == "ltr") : dojo._isBodyLtr(); //Boolean }, - isFocusable: function(){ - // summary: - // Return true if this widget can currently be focused - // and false if not - return this.focus && (dojo.style(this.domNode, "display") != "none"); - }, - placeAt: function(/* String|DomNode|_Widget */reference, /* String?|Int? */position){ // summary: // Place this widget's domNode reference somewhere in the DOM based @@ -4149,8 +4134,451 @@ dojo.declare("dijit._Widget", null, { dojo.place(this.domNode, reference, position); } return this; + } +}); + +})(); + +} + +if(!dojo._hasResource["dijit._Widget"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._Widget"] = true; +dojo.provide("dijit._Widget"); + + + + + +////////////////// DEFERRED CONNECTS /////////////////// + +// This code is to assist deferring dojo.connect() calls in widgets (connecting to events on the widgets' +// DOM nodes) until someone actually needs to monitor that event. +dojo.connect(dojo, "_connect", + function(/*dijit._Widget*/ widget, /*String*/ event){ + if(widget && dojo.isFunction(widget._onConnect)){ + widget._onConnect(event); + } + }); + +dijit._connectOnUseEventHandler = function(/*Event*/ event){}; + +////////////////// ONDIJITCLICK SUPPORT /////////////////// + +// Keep track of where the last keydown event was, to help avoid generating +// spurious ondijitclick events when: +// 1. focus is on a <button> or <a> +// 2. user presses then releases the ENTER key +// 3. onclick handler fires and shifts focus to another node, with an ondijitclick handler +// 4. onkeyup event fires, causing the ondijitclick handler to fire +dijit._lastKeyDownNode = null; +if(dojo.isIE){ + (function(){ + var keydownCallback = function(evt){ + dijit._lastKeyDownNode = evt.srcElement; + }; + dojo.doc.attachEvent('onkeydown', keydownCallback); + dojo.addOnWindowUnload(function(){ + dojo.doc.detachEvent('onkeydown', keydownCallback); + }); + })(); +}else{ + dojo.doc.addEventListener('keydown', function(evt){ + dijit._lastKeyDownNode = evt.target; + }, true); +} + +(function(){ + +dojo.declare("dijit._Widget", dijit._WidgetBase, { + // summary: + // Base class for all Dijit widgets. + // + // Extends _WidgetBase, adding support for: + // - deferred connections + // A call like dojo.connect(myWidget, "onMouseMove", func) + // will essentially do a dojo.connect(myWidget.domNode, "onMouseMove", func) + // - ondijitclick + // Support new dojoAttachEvent="ondijitclick: ..." that is triggered by a mouse click or a SPACE/ENTER keypress + // - focus related functions + // In particular, the onFocus()/onBlur() callbacks. Driven internally by + // dijit/_base/focus.js. + // - deprecated methods + // - onShow(), onHide(), onClose() + // + // Also, by loading code in dijit/_base, turns on: + // - browser sniffing (putting browser id like .dj_ie on <html> node) + // - high contrast mode sniffing (add .dijit_a11y class to <body> if machine is in high contrast mode) + + + ////////////////// DEFERRED CONNECTS /////////////////// + + // _deferredConnects: [protected] Object + // attributeMap addendum for event handlers that should be connected only on first use + _deferredConnects: { + onClick: "", + onDblClick: "", + onKeyDown: "", + onKeyPress: "", + onKeyUp: "", + onMouseMove: "", + onMouseDown: "", + onMouseOut: "", + onMouseOver: "", + onMouseLeave: "", + onMouseEnter: "", + onMouseUp: "" + }, + + onClick: dijit._connectOnUseEventHandler, + /*===== + onClick: function(event){ + // summary: + // Connect to this function to receive notifications of mouse click events. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onDblClick: dijit._connectOnUseEventHandler, + /*===== + onDblClick: function(event){ + // summary: + // Connect to this function to receive notifications of mouse double click events. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onKeyDown: dijit._connectOnUseEventHandler, + /*===== + onKeyDown: function(event){ + // summary: + // Connect to this function to receive notifications of keys being pressed down. + // event: + // key Event + // tags: + // callback + }, + =====*/ + onKeyPress: dijit._connectOnUseEventHandler, + /*===== + onKeyPress: function(event){ + // summary: + // Connect to this function to receive notifications of printable keys being typed. + // event: + // key Event + // tags: + // callback + }, + =====*/ + onKeyUp: dijit._connectOnUseEventHandler, + /*===== + onKeyUp: function(event){ + // summary: + // Connect to this function to receive notifications of keys being released. + // event: + // key Event + // tags: + // callback + }, + =====*/ + onMouseDown: dijit._connectOnUseEventHandler, + /*===== + onMouseDown: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse button is pressed down. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseMove: dijit._connectOnUseEventHandler, + /*===== + onMouseMove: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves over nodes contained within this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseOut: dijit._connectOnUseEventHandler, + /*===== + onMouseOut: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves off of nodes contained within this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseOver: dijit._connectOnUseEventHandler, + /*===== + onMouseOver: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves onto nodes contained within this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseLeave: dijit._connectOnUseEventHandler, + /*===== + onMouseLeave: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves off of this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseEnter: dijit._connectOnUseEventHandler, + /*===== + onMouseEnter: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves onto this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseUp: dijit._connectOnUseEventHandler, + /*===== + onMouseUp: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse button is released. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + + create: function(/*Object?*/params, /*DomNode|String?*/srcNodeRef){ + // To avoid double-connects, remove entries from _deferredConnects + // that have been setup manually by a subclass (ex, by dojoAttachEvent). + // If a subclass has redefined a callback (ex: onClick) then assume it's being + // connected to manually. + this._deferredConnects = dojo.clone(this._deferredConnects); + for(var attr in this.attributeMap){ + delete this._deferredConnects[attr]; // can't be in both attributeMap and _deferredConnects + } + for(attr in this._deferredConnects){ + if(this[attr] !== dijit._connectOnUseEventHandler){ + delete this._deferredConnects[attr]; // redefined, probably dojoAttachEvent exists + } + } + + this.inherited(arguments); + + if(this.domNode){ + // If the developer has specified a handler as a widget parameter + // (ex: new Button({onClick: ...}) + // then naturally need to connect from DOM node to that handler immediately, + for(attr in this.params){ + this._onConnect(attr); + } + } + }, + + _onConnect: function(/*String*/ event){ + // summary: + // Called when someone connects to one of my handlers. + // "Turn on" that handler if it isn't active yet. + // + // This is also called for every single initialization parameter + // so need to do nothing for parameters like "id". + // tags: + // private + if(event in this._deferredConnects){ + var mapNode = this[this._deferredConnects[event] || 'domNode']; + this.connect(mapNode, event.toLowerCase(), event); + delete this._deferredConnects[event]; + } + }, + + ////////////////// FOCUS RELATED /////////////////// + // _onFocus() and _onBlur() are called by the focus manager + + // focused: [readonly] Boolean + // This widget or a widget it contains has focus, or is "active" because + // it was recently clicked. + focused: false, + + isFocusable: function(){ + // summary: + // Return true if this widget can currently be focused + // and false if not + return this.focus && (dojo.style(this.domNode, "display") != "none"); + }, + + onFocus: function(){ + // summary: + // Called when the widget becomes "active" because + // it or a widget inside of it either has focus, or has recently + // been clicked. + // tags: + // callback + }, + + onBlur: function(){ + // summary: + // Called when the widget stops being "active" because + // focus moved to something outside of it, or the user + // clicked somewhere outside of it, or the widget was + // hidden. + // tags: + // callback + }, + + _onFocus: function(e){ + // summary: + // This is where widgets do processing for when they are active, + // such as changing CSS classes. See onFocus() for more details. + // tags: + // protected + this.onFocus(); + }, + + _onBlur: function(){ + // summary: + // This is where widgets do processing for when they stop being active, + // such as changing CSS classes. See onBlur() for more details. + // tags: + // protected + this.onBlur(); + }, + + ////////////////// DEPRECATED METHODS /////////////////// + + setAttribute: function(/*String*/ attr, /*anything*/ value){ + // summary: + // Deprecated. Use set() instead. + // tags: + // deprecated + dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.", "", "2.0"); + this.set(attr, value); + }, + + attr: function(/*String|Object*/name, /*Object?*/value){ + // summary: + // Set or get properties on a widget instance. + // name: + // The property to get or set. If an object is passed here and not + // a string, its keys are used as names of attributes to be set + // and the value of the object as values to set in the widget. + // value: + // Optional. If provided, attr() operates as a setter. If omitted, + // the current value of the named property is returned. + // description: + // This method is deprecated, use get() or set() directly. + + // Print deprecation warning but only once per calling function + if(dojo.config.isDebug){ + var alreadyCalledHash = arguments.callee._ach || (arguments.callee._ach = {}), + caller = (arguments.callee.caller || "unknown caller").toString(); + if(!alreadyCalledHash[caller]){ + dojo.deprecated(this.declaredClass + "::attr() is deprecated. Use get() or set() instead, called from " + + caller, "", "2.0"); + alreadyCalledHash[caller] = true; + } + } + + var args = arguments.length; + if(args >= 2 || typeof name === "object"){ // setter + return this.set.apply(this, arguments); + }else{ // getter + return this.get(name); + } + }, + + ////////////////// ONDIJITCLICK SUPPORT /////////////////// + + // nodesWithKeyClick: [private] String[] + // List of nodes that correctly handle click events via native browser support, + // and don't need dijit's help + nodesWithKeyClick: ["input", "button"], + + connect: function( + /*Object|null*/ obj, + /*String|Function*/ event, + /*String|Function*/ method){ + // summary: + // Connects specified obj/event to specified method of this object + // and registers for disconnect() on widget destroy. + // description: + // Provide widget-specific analog to dojo.connect, except with the + // implicit use of this widget as the target object. + // This version of connect also provides a special "ondijitclick" + // event which triggers on a click or space or enter keyup. + // Events connected with `this.connect` are disconnected upon + // destruction. + // returns: + // A handle that can be passed to `disconnect` in order to disconnect before + // the widget is destroyed. + // example: + // | var btn = new dijit.form.Button(); + // | // when foo.bar() is called, call the listener we're going to + // | // provide in the scope of btn + // | btn.connect(foo, "bar", function(){ + // | console.debug(this.toString()); + // | }); + // tags: + // protected + + var d = dojo, + dc = d._connect, + handles = this.inherited(arguments, [obj, event == "ondijitclick" ? "onclick" : event, method]); + + if(event == "ondijitclick"){ + // add key based click activation for unsupported nodes. + // do all processing onkey up to prevent spurious clicks + // for details see comments at top of this file where _lastKeyDownNode is defined + if(d.indexOf(this.nodesWithKeyClick, obj.nodeName.toLowerCase()) == -1){ // is NOT input or button + var m = d.hitch(this, method); + handles.push( + dc(obj, "onkeydown", this, function(e){ + //console.log(this.id + ": onkeydown, e.target = ", e.target, ", lastKeyDownNode was ", dijit._lastKeyDownNode, ", equality is ", (e.target === dijit._lastKeyDownNode)); + if((e.keyCode == d.keys.ENTER || e.keyCode == d.keys.SPACE) && + !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey){ + // needed on IE for when focus changes between keydown and keyup - otherwise dropdown menus do not work + dijit._lastKeyDownNode = e.target; + + // Stop event to prevent scrolling on space key in IE. + // But don't do this for _HasDropDown because it surpresses the onkeypress + // event needed to open the drop down when the user presses the SPACE key. + if(!("openDropDown" in this && obj == this._buttonNode)){ + e.preventDefault(); + } + } + }), + dc(obj, "onkeyup", this, function(e){ + //console.log(this.id + ": onkeyup, e.target = ", e.target, ", lastKeyDownNode was ", dijit._lastKeyDownNode, ", equality is ", (e.target === dijit._lastKeyDownNode)); + if( (e.keyCode == d.keys.ENTER || e.keyCode == d.keys.SPACE) && + e.target == dijit._lastKeyDownNode && // === breaks greasemonkey + !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey){ + //need reset here or have problems in FF when focus returns to trigger element after closing popup/alert + dijit._lastKeyDownNode = null; + return m(e); + } + }) + ); + } + } + + return handles; // _Widget.Handle }, + ////////////////// MISCELLANEOUS METHODS /////////////////// + _onShow: function(){ // summary: // Internal method called when this widget is made visible. @@ -4203,8 +4631,10 @@ if(!dojo._hasResource["dojo.string"]){ //_hasResource checks added by build. Do dojo._hasResource["dojo.string"] = true; dojo.provide("dojo.string"); +dojo.getObject("string", true, dojo); + /*===== -dojo.string = { +dojo.string = { // summary: String utilities for Dojo }; =====*/ @@ -4255,22 +4685,22 @@ dojo.string.pad = function(/*String*/text, /*Integer*/size, /*String?*/ch, /*Boo return end ? out + pad : pad + out; // String }; -dojo.string.substitute = function( /*String*/ template, - /*Object|Array*/map, - /*Function?*/ transform, +dojo.string.substitute = function( /*String*/ template, + /*Object|Array*/map, + /*Function?*/ transform, /*Object?*/ thisObject){ // summary: // Performs parameterized substitutions on a string. Throws an // exception if any parameter is unmatched. - // template: + // template: // a string with expressions in the form `${key}` to be replaced or - // `${key:format}` which specifies a format function. keys are case-sensitive. + // `${key:format}` which specifies a format function. keys are case-sensitive. // map: // hash to search for substitutions - // transform: + // transform: // a function to process all parameters before substitution takes // place, e.g. mylib.encodeXML - // thisObject: + // thisObject: // where to look for optional format function; default to the global // namespace // example: @@ -4313,7 +4743,7 @@ dojo.string.substitute = function( /*String*/ template, // | ); thisObject = thisObject || dojo.global; - transform = transform ? + transform = transform ? dojo.hitch(thisObject, transform) : function(v){ return v; }; return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g, @@ -4361,14 +4791,14 @@ if(!dojo._hasResource["dojo.cache"]){ //_hasResource checks added by build. Do n dojo._hasResource["dojo.cache"] = true; dojo.provide("dojo.cache"); + /*===== -dojo.cache = { +dojo.cache = { // summary: // A way to cache string content that is fetchable via `dojo.moduleUrl`. }; =====*/ -(function(){ var cache = {}; dojo.cache = function(/*String||Object*/module, /*String*/url, /*String||Object?*/value){ // summary: @@ -4407,7 +4837,7 @@ dojo.cache = { // | var text = dojo["cache"]("my.module", "template.html"); // example: // To ask dojo.cache to fetch content and store it in the cache, and sanitize the input - // (the dojo["cache"] style of call is used to avoid an issue with the build system + // (the dojo["cache"] style of call is used to avoid an issue with the build system // erroneously trying to intern this example. To get the build system to intern your // dojo.cache calls, use the "dojo.cache" style of call): // | //If template.html contains "<html><body><h1>Hello</h1></body></html>", the @@ -4457,7 +4887,7 @@ dojo.cache = { }; dojo.cache._sanitize = function(/*String*/val){ - // summary: + // summary: // Strips <?xml ...?> declarations so that external SVG and XML // documents can be added to a document without worry. Also, if the string // is an HTML document, only the part inside the body tag is returned. @@ -4474,7 +4904,6 @@ dojo.cache = { } return val; //String }; -})(); } @@ -4527,15 +4956,23 @@ dojo.declare("dijit._Templated", // 'true' to re-enable to previous, arguably broken, behavior. _earlyTemplatedStartup: false, +/*===== // _attachPoints: [private] String[] // List of widget attribute names associated with dojoAttachPoint=... in the // template, ex: ["containerNode", "labelNode"] -/*===== _attachPoints: [], =====*/ +/*===== + // _attachEvents: [private] Handle[] + // List of connections associated with dojoAttachEvent=... in the + // template + _attachEvents: [], + =====*/ + constructor: function(){ this._attachPoints = []; + this._attachEvents = []; }, _stringRepl: function(tmpl){ @@ -4560,7 +4997,6 @@ dojo.declare("dijit._Templated", }, this); }, - // method over-ride buildRendering: function(){ // summary: // Construct the UI for this widget from a template, setting this.domNode. @@ -4586,33 +5022,24 @@ dojo.declare("dijit._Templated", this.domNode = node; + // Call down to _Widget.buildRendering() to get base classes assigned + // TODO: change the baseClass assignment to attributeMap + this.inherited(arguments); + // recurse through the node, looking for, and attaching to, our // attachment points and events, which should be defined on the template node. this._attachTemplateNodes(node); if(this.widgetsInTemplate){ - // Make sure dojoType is used for parsing widgets in template. - // The dojo.parser.query could be changed from multiversion support. - var parser = dojo.parser, qry, attr; - if(parser._query != "[dojoType]"){ - qry = parser._query; - attr = parser._attrName; - parser._query = "[dojoType]"; - parser._attrName = "dojoType"; - } - // Store widgets that we need to start at a later point in time var cw = (this._startupWidgets = dojo.parser.parse(node, { noStart: !this._earlyTemplatedStartup, - inherited: {dir: this.dir, lang: this.lang} + template: true, + inherited: {dir: this.dir, lang: this.lang}, + propsThis: this, // so data-dojo-props of widgets in the template can reference "this" to refer to me + scope: "dojo" // even in multi-version mode templates use dojoType/data-dojo-type })); - // Restore the query. - if(qry){ - parser._query = qry; - parser._attrName = attr; - } - this._supportingWidgets = dijit.findWidgets(node); this._attachTemplateNodes(cw, function(n,p){ @@ -4640,6 +5067,8 @@ dojo.declare("dijit._Templated", _attachTemplateNodes: function(rootNode, getAttrFunc){ // summary: // Iterate through the template and attach functions and nodes accordingly. + // Alternately, if rootNode is an array of widgets, then will process dojoAttachPoint + // etc. for those widgets. // description: // Map widget properties and functions to the handlers specified in // the dom node and it's descendants. This function iterates over all @@ -4662,11 +5091,11 @@ dojo.declare("dijit._Templated", var x = dojo.isArray(rootNode) ? 0 : -1; for(; x<nodes.length; x++){ var baseNode = (x == -1) ? rootNode : nodes[x]; - if(this.widgetsInTemplate && getAttrFunc(baseNode, "dojoType")){ + if(this.widgetsInTemplate && (getAttrFunc(baseNode, "dojoType") || getAttrFunc(baseNode, "data-dojo-type"))){ continue; } // Process dojoAttachPoint - var attachPoint = getAttrFunc(baseNode, "dojoAttachPoint"); + var attachPoint = getAttrFunc(baseNode, "dojoAttachPoint") || getAttrFunc(baseNode, "data-dojo-attach-point"); if(attachPoint){ var point, points = attachPoint.split(/\s*,\s*/); while((point = points.shift())){ @@ -4680,7 +5109,7 @@ dojo.declare("dijit._Templated", } // Process dojoAttachEvent - var attachEvent = getAttrFunc(baseNode, "dojoAttachEvent"); + var attachEvent = getAttrFunc(baseNode, "dojoAttachEvent") || getAttrFunc(baseNode, "data-dojo-attach-event");; if(attachEvent){ // NOTE: we want to support attributes that have the form // "domEvent: nativeEvent; ..." @@ -4700,12 +5129,13 @@ dojo.declare("dijit._Templated", if(!thisFunc){ thisFunc = event; } - this.connect(baseNode, event, thisFunc); + this._attachEvents.push(this.connect(baseNode, event, thisFunc)); } } } // waiRole, waiState + // TODO: remove this in 2.0, templates are now using role=... and aria-XXX=... attributes directicly var role = getAttrFunc(baseNode, "waiRole"); if(role){ dijit.setWaiRole(baseNode, role); @@ -4738,6 +5168,10 @@ dojo.declare("dijit._Templated", }, this); this._attachPoints = []; + // And same for event handlers + dojo.forEach(this._attachEvents, this.disconnect, this); + this._attachEvents = []; + this.inherited(arguments); } } @@ -4822,6 +5256,7 @@ if(!dojo._hasResource["dijit._Container"]){ //_hasResource checks added by build dojo._hasResource["dijit._Container"] = true; dojo.provide("dijit._Container"); + dojo.declare("dijit._Container", null, { @@ -4884,7 +5319,7 @@ dojo.declare("dijit._Container", // not destroy it. You can also pass in an integer indicating // the index within the container to remove - if(typeof widget == "number" && widget > 0){ + if(typeof widget == "number"){ widget = this.getChildren()[widget]; } @@ -4959,6 +5394,7 @@ if(!dojo._hasResource["dijit._Contained"]){ //_hasResource checks added by build dojo._hasResource["dijit._Contained"] = true; dojo.provide("dijit._Contained"); + dojo.declare("dijit._Contained", null, { @@ -5022,7 +5458,6 @@ dojo.declare("dijit._Contained", } ); - } if(!dojo._hasResource["dijit.layout._LayoutWidget"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -5051,10 +5486,9 @@ dojo.declare("dijit.layout._LayoutWidget", // children widgets, setting their size, when they become visible. isLayoutContainer: true, - postCreate: function(){ - dojo.addClass(this.domNode, "dijitContainer"); - + buildRendering: function(){ this.inherited(arguments); + dojo.addClass(this.domNode, "dijitContainer"); }, startup: function(){ @@ -5188,10 +5622,9 @@ dojo.declare("dijit.layout._LayoutWidget", // tags: // protected extension - dojo.addClass(child.domNode, this.baseClass+"-child"); - if(child.baseClass){ - dojo.addClass(child.domNode, this.baseClass+"-"+child.baseClass); - } + var cls = this.baseClass + "-child " + + (child.baseClass ? this.baseClass + "-" + child.baseClass : ""); + dojo.addClass(child.domNode, cls); }, addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ @@ -5204,10 +5637,11 @@ dojo.declare("dijit.layout._LayoutWidget", removeChild: function(/*dijit._Widget*/ child){ // Overrides _Container.removeChild() to remove class added by _setupChild() - dojo.removeClass(child.domNode, this.baseClass+"-child"); - if(child.baseClass){ - dojo.removeClass(child.domNode, this.baseClass+"-"+child.baseClass); - } + var cls = this.baseClass + "-child" + + (child.baseClass ? + " " + this.baseClass + "-" + child.baseClass : ""); + dojo.removeClass(child.domNode, cls); + this.inherited(arguments); } } @@ -5236,15 +5670,22 @@ dijit.layout.marginBox2contentBox = function(/*DomNode*/ node, /*Object*/ mb){ var size = function(widget, dim){ // size the child - widget.resize ? widget.resize(dim) : dojo.marginBox(widget.domNode, dim); + var newSize = widget.resize ? widget.resize(dim) : dojo.marginBox(widget.domNode, dim); - // record child's size, but favor our own numbers when we have them. - // the browser lies sometimes - dojo.mixin(widget, dojo.marginBox(widget.domNode)); - dojo.mixin(widget, dim); + // record child's size + if(newSize){ + // if the child returned it's new size then use that + dojo.mixin(widget, newSize); + }else{ + // otherwise, call marginBox(), but favor our own numbers when we have them. + // the browser lies sometimes + dojo.mixin(widget, dojo.marginBox(widget.domNode)); + dojo.mixin(widget, dim); + } }; - dijit.layout.layoutChildren = function(/*DomNode*/ container, /*Object*/ dim, /*Object[]*/ children){ + dijit.layout.layoutChildren = function(/*DomNode*/ container, /*Object*/ dim, /*Widget[]*/ children, + /*String?*/ changedRegionId, /*Number?*/ changedRegionSize){ // summary // Layout a bunch of child dom nodes within a parent dom node // container: @@ -5252,7 +5693,16 @@ dijit.layout.marginBox2contentBox = function(/*DomNode*/ node, /*Object*/ mb){ // dim: // {l, t, w, h} object specifying dimensions of container into which to place children // children: - // an array like [ {domNode: foo, layoutAlign: "bottom" }, {domNode: bar, layoutAlign: "client"} ] + // an array of Widgets or at least objects containing: + // * domNode: pointer to DOM node to position + // * region or layoutAlign: position to place DOM node + // * resize(): (optional) method to set size of node + // * id: (optional) Id of widgets, referenced from resize object, below. + // changedRegionId: + // If specified, the slider for the region with the specified id has been dragged, and thus + // the region's height or width should be adjusted according to changedRegionSize + // changedRegionSize: + // See changedRegionId. // copy dim because we are going to modify it dim = dojo.mixin({}, dim); @@ -5261,27 +5711,37 @@ dijit.layout.marginBox2contentBox = function(/*DomNode*/ node, /*Object*/ mb){ // Move "client" elements to the end of the array for layout. a11y dictates that the author // needs to be able to put them in the document in tab-order, but this algorithm requires that - // client be last. - children = dojo.filter(children, function(item){ return item.layoutAlign != "client"; }) - .concat(dojo.filter(children, function(item){ return item.layoutAlign == "client"; })); + // client be last. TODO: move these lines to LayoutContainer? Unneeded other places I think. + children = dojo.filter(children, function(item){ return item.region != "center" && item.layoutAlign != "client"; }) + .concat(dojo.filter(children, function(item){ return item.region == "center" || item.layoutAlign == "client"; })); // set positions/sizes dojo.forEach(children, function(child){ var elm = child.domNode, - pos = child.layoutAlign; + pos = (child.region || child.layoutAlign); // set elem to upper left corner of unused space; may move it later var elmStyle = elm.style; elmStyle.left = dim.l+"px"; elmStyle.top = dim.t+"px"; - elmStyle.bottom = elmStyle.right = "auto"; + elmStyle.position = "absolute"; dojo.addClass(elm, "dijitAlign" + capitalize(pos)); + // Size adjustments to make to this child widget + var sizeSetting = {}; + + // Check for optional size adjustment due to splitter drag (height adjustment for top/bottom align + // panes and width adjustment for left/right align panes. + if(changedRegionId && changedRegionId == child.id){ + sizeSetting[child.region == "top" || child.region == "bottom" ? "h" : "w"] = changedRegionSize; + } + // set size && adjust record of remaining space. // note that setting the width of a <div> may affect its height. if(pos == "top" || pos == "bottom"){ - size(child, { w: dim.w }); + sizeSetting.w = dim.w; + size(child, sizeSetting); dim.h -= child.h; if(pos == "top"){ dim.t += child.h; @@ -5289,14 +5749,15 @@ dijit.layout.marginBox2contentBox = function(/*DomNode*/ node, /*Object*/ mb){ elmStyle.top = dim.t + dim.h + "px"; } }else if(pos == "left" || pos == "right"){ - size(child, { h: dim.h }); + sizeSetting.h = dim.h; + size(child, sizeSetting); dim.w -= child.w; if(pos == "left"){ dim.l += child.w; }else{ elmStyle.left = dim.l + dim.w + "px"; } - }else if(pos == "client"){ + }else if(pos == "client" || pos == "center"){ size(child, dim); } }); @@ -5340,7 +5801,19 @@ dojo.declare("dijit._CssStateMixin", [], { // is hovered, etc. cssStateNodes: {}, - postCreate: function(){ + // hovering: [readonly] Boolean + // True if cursor is over this widget + hovering: false, + + // active: [readonly] Boolean + // True if mouse was pressed while over this widget, and hasn't been released yet + active: false, + + _applyAttributes: function(){ + // This code would typically be in postCreate(), but putting in _applyAttributes() for + // performance: so the class changes happen before DOM is inserted into the document. + // Change back to postCreate() in 2.0. See #11635. + this.inherited(arguments); // Automatically monitor mouse events (essentially :hover and :active) on this.domNode @@ -5349,15 +5822,8 @@ dojo.declare("dijit._CssStateMixin", [], { }, this); // Monitoring changes to disabled, readonly, etc. state, and update CSS class of root node - this.connect(this, "set", function(name, value){ - if(arguments.length >= 2 && {disabled: true, readOnly: true, checked:true, selected:true}[name]){ - this._setStateClass(); - } - }); - - // The widget coming in/out of the focus change affects it's state - dojo.forEach(["_onFocus", "_onBlur"], function(ap){ - this.connect(this, ap, "_setStateClass"); + dojo.forEach(["disabled", "readOnly", "checked", "selected", "focused", "state", "hovering", "active"], function(attr){ + this.watch(attr, dojo.hitch(this, "_setStateClass")); }, this); // Events on sub nodes within the widget @@ -5365,44 +5831,42 @@ dojo.declare("dijit._CssStateMixin", [], { this._trackMouseState(this[ap], this.cssStateNodes[ap]); } // Set state initially; there's probably no hover/active/focus state but widget might be - // disabled/readonly so we want to set CSS classes for those conditions. + // disabled/readonly/checked/selected so we want to set CSS classes for those conditions. this._setStateClass(); }, _cssMouseEvent: function(/*Event*/ event){ // summary: - // Sets _hovering and _active properties depending on mouse state, - // then calls _setStateClass() to set appropriate CSS classes for this.domNode. + // Sets hovering and active properties depending on mouse state, + // which triggers _setStateClass() to set appropriate CSS classes for this.domNode. if(!this.disabled){ switch(event.type){ case "mouseenter": case "mouseover": // generated on non-IE browsers even though we connected to mouseenter - this._hovering = true; - this._active = this._mouseDown; + this._set("hovering", true); + this._set("active", this._mouseDown); break; case "mouseleave": case "mouseout": // generated on non-IE browsers even though we connected to mouseleave - this._hovering = false; - this._active = false; + this._set("hovering", false); + this._set("active", false); break; case "mousedown" : - this._active = true; + this._set("active", true); this._mouseDown = true; // Set a global event to handle mouseup, so it fires properly // even if the cursor leaves this.domNode before the mouse up event. // Alternately could set active=false on mouseout. var mouseUpConnector = this.connect(dojo.body(), "onmouseup", function(){ - this._active = false; this._mouseDown = false; - this._setStateClass(); + this._set("active", false); this.disconnect(mouseUpConnector); }); break; } - this._setStateClass(); } }, @@ -5421,11 +5885,12 @@ dojo.declare("dijit._CssStateMixin", [], { // The widget may have one or more of the following states, determined // by this.state, this.checked, this.valid, and this.selected: // - Error - ValidationTextBox sets this.state to "Error" if the current input value is invalid + // - Incomplete - ValidationTextBox sets this.state to "Incomplete" if the current input value is not finished yet // - Checked - ex: a checkmark or a ToggleButton in a checked state, will have this.checked==true // - Selected - ex: currently selected tab will have this.selected==true // // In addition, it may have one or more of the following states, - // based on this.disabled and flags set in _onMouse (this._active, this._hovering, this._focused): + // based on this.disabled and flags set in _onMouse (this.active, this.hovering) and from focus manager (this.focused): // - Disabled - if the widget is disabled // - Active - if the mouse (or space/enter key?) is being pressed down // - Focused - if the widget has focus @@ -5458,9 +5923,9 @@ dojo.declare("dijit._CssStateMixin", [], { }else if(this.readOnly){ multiply("ReadOnly"); }else{ - if(this._active){ + if(this.active){ multiply("Active"); - }else if(this._hovering){ + }else if(this.hovering){ multiply("Hover"); } } @@ -5553,11 +6018,8 @@ dojo.declare("dijit._CssStateMixin", [], { // Just in case widget is enabled/disabled while it has focus/hover/active state. // Maybe this is overkill. - this.connect(this, "set", function(name, value){ - if(name == "disabled" || name == "readOnly"){ - setClass(); - } - }); + this.watch("disabled", setClass); + this.watch("readOnly", setClass); } }); @@ -5572,7 +6034,6 @@ dojo.provide("dijit.form._FormWidget"); - dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._CssStateMixin], { // summary: @@ -5586,7 +6047,7 @@ dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._ // // They also share some common methods. - // name: String + // name: [const] String // Name used when submitting form; same as "name" attribute or plain HTML elements name: "", @@ -5643,7 +6104,7 @@ dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._ }, _setDisabledAttr: function(/*Boolean*/ value){ - this.disabled = value; + this._set("disabled", value); dojo.attr(this.focusNode, 'disabled', value); if(this.valueNode){ dojo.attr(this.valueNode, 'disabled', value); @@ -5653,8 +6114,8 @@ dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._ if(value){ // reset these, because after the domNode is disabled, we can no longer receive // mouse related events, see #4200 - this._hovering = false; - this._active = false; + this._set("hovering", false); + this._set("active", false); // clear tab stop(s) on this widget's focusable node(s) (ComboBox has two focusable nodes) var attachPointNames = "tabIndex" in this.attributeMap ? this.attributeMap.tabIndex : "focusNode"; @@ -5664,17 +6125,19 @@ dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._ if(dojo.isWebKit || dijit.hasDefaultTabStop(node)){ // see #11064 about webkit bug node.setAttribute('tabIndex', "-1"); }else{ - node.removeAttribute('tabIndex'); + node.removeAttribute('tabIndex'); } }, this); }else{ - this.focusNode.setAttribute('tabIndex', this.tabIndex); + if(this.tabIndex != ""){ + this.focusNode.setAttribute('tabIndex', this.tabIndex); + } } }, setDisabled: function(/*Boolean*/ disabled){ // summary: - // Deprecated. Use set('disabled', ...) instead. + // Deprecated. Use set('disabled', ...) instead. dojo.deprecated("setDisabled("+disabled+") is deprecated. Use set('disabled',"+disabled+") instead.", "", "2.0"); this.set('disabled', disabled); }, @@ -5688,21 +6151,23 @@ dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._ isFocusable: function(){ // summary: - // Tells if this widget is focusable or not. Used internally by dijit. + // Tells if this widget is focusable or not. Used internally by dijit. // tags: // protected - return !this.disabled && !this.readOnly && this.focusNode && (dojo.style(this.domNode, "display") != "none"); + return !this.disabled && this.focusNode && (dojo.style(this.domNode, "display") != "none"); }, focus: function(){ // summary: // Put focus on this widget - dijit.focus(this.focusNode); + if(!this.disabled){ + dijit.focus(this.focusNode); + } }, - compare: function(/*anything*/val1, /*anything*/val2){ + compare: function(/*anything*/ val1, /*anything*/ val2){ // summary: - // Compare 2 values (as returned by attr('value') for this widget). + // Compare 2 values (as returned by get('value') for this widget). // tags: // protected if(typeof val1 == "number" && typeof val2 == "number"){ @@ -5729,27 +6194,28 @@ dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._ // when the initial value is set. _onChangeActive: false, - _handleOnChange: function(/*anything*/ newValue, /* Boolean? */ priorityChange){ + _handleOnChange: function(/*anything*/ newValue, /*Boolean?*/ priorityChange){ // summary: // Called when the value of the widget is set. Calls onChange() if appropriate // newValue: // the new value // priorityChange: // For a slider, for example, dragging the slider is priorityChange==false, - // but on mouse up, it's priorityChange==true. If intermediateChanges==true, + // but on mouse up, it's priorityChange==true. If intermediateChanges==false, // onChange is only called form priorityChange=true events. // tags: // private - this._lastValue = newValue; if(this._lastValueReported == undefined && (priorityChange === null || !this._onChangeActive)){ // this block executes not for a change, but during initialization, // and is used to store away the original value (or for ToggleButton, the original checked state) this._resetValue = this._lastValueReported = newValue; } - if((this.intermediateChanges || priorityChange || priorityChange === undefined) && - ((typeof newValue != typeof this._lastValueReported) || - this.compare(newValue, this._lastValueReported) != 0)){ + this._pendingOnChange = this._pendingOnChange + || (typeof newValue != typeof this._lastValueReported) + || (this.compare(newValue, this._lastValueReported) != 0); + if((this.intermediateChanges || priorityChange || priorityChange === undefined) && this._pendingOnChange){ this._lastValueReported = newValue; + this._pendingOnChange = false; if(this._onChangeActive){ if(this._onChangeHandle){ clearTimeout(this._onChangeHandle); @@ -5781,14 +6247,14 @@ dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._ setValue: function(/*String*/ value){ // summary: - // Deprecated. Use set('value', ...) instead. + // Deprecated. Use set('value', ...) instead. dojo.deprecated("dijit.form._FormWidget:setValue("+value+") is deprecated. Use set('value',"+value+") instead.", "", "2.0"); this.set('value', value); }, getValue: function(){ // summary: - // Deprecated. Use get('value') instead. + // Deprecated. Use get('value') instead. dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.", "", "2.0"); return this.get('value'); }, @@ -5798,7 +6264,7 @@ dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._ // this button should get focus (to mimics native browser buttons). // This is also needed on chrome because otherwise buttons won't get focus at all, // which leads to bizarre focus restore on Dialog close etc. - if(!e.ctrlKey && this.isFocusable()){ // !e.ctrlKey to ignore right-click on mac + if(!e.ctrlKey && dojo.mouseButtons.isLeft(e) && this.isFocusable()){ // !e.ctrlKey to ignore right-click on mac // Set a global event to handle mouseup, so it fires properly // even if the cursor leaves this.domNode before the mouse up event. var mouseUpConnector = this.connect(dojo.body(), "onmouseup", function(){ @@ -5822,7 +6288,7 @@ dojo.declare("dijit.form._FormValueWidget", dijit.form._FormWidget, // Don't attempt to mixin the 'type', 'name' attributes here programatically -- they must be declared // directly in the template as read by the parser in order to function. IE is known to specifically - // require the 'name' attribute at element creation time. See #8484, #8660. + // require the 'name' attribute at element creation time. See #8484, #8660. // TODO: unclear what that {value: ""} is for; FormWidget.attributeMap copies value to focusNode, // so maybe {value: ""} is so the value *doesn't* get copied to focusNode? // Seems like we really want value removed from attributeMap altogether @@ -5840,39 +6306,40 @@ dojo.declare("dijit.form._FormValueWidget", dijit.form._FormWidget, }), _setReadOnlyAttr: function(/*Boolean*/ value){ - this.readOnly = value; dojo.attr(this.focusNode, 'readOnly', value); dijit.setWaiState(this.focusNode, "readonly", value); + this._set("readOnly", value); }, postCreate: function(){ this.inherited(arguments); - if(dojo.isIE){ // IE won't stop the event with keypress + if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){ // IE won't stop the event with keypress this.connect(this.focusNode || this.domNode, "onkeydown", this._onKeyDown); } // Update our reset value if it hasn't yet been set (because this.set() // is only called when there *is* a value) if(this._resetValue === undefined){ - this._resetValue = this.value; + this._lastValueReported = this._resetValue = this.value; } }, - _setValueAttr: function(/*anything*/ newValue, /*Boolean, optional*/ priorityChange){ + _setValueAttr: function(/*anything*/ newValue, /*Boolean?*/ priorityChange){ // summary: - // Hook so attr('value', value) works. + // Hook so set('value', value) works. // description: // Sets the value of the widget. // If the value has changed, then fire onChange event, unless priorityChange // is specified as null (or false?) - this.value = newValue; this._handleOnChange(newValue, priorityChange); }, - _getValueAttr: function(){ + _handleOnChange: function(/*anything*/ newValue, /*Boolean?*/ priorityChange){ // summary: - // Hook so attr('value') works. - return this._lastValue; + // Called when the value of the widget has changed. Saves the new value in this.value, + // and calls onChange() if appropriate. See _FormWidget._handleOnChange() for details. + this._set("value", newValue); + this.inherited(arguments); }, undo: function(){ @@ -5933,6 +6400,14 @@ if(!dojo._hasResource["dijit.dijit"]){ //_hasResource checks added by build. Do dojo._hasResource["dijit.dijit"] = true; dojo.provide("dijit.dijit"); + + + + + + + + /*===== dijit.dijit = { // summary: @@ -5949,21 +6424,15 @@ dijit.dijit = { // All the stuff in _base (these are the function that are guaranteed available without an explicit dojo.require) - // And some other stuff that we tend to pull in all the time anyway - - - - - - } if(!dojo._hasResource["dojo.fx.Toggler"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.fx.Toggler"] = true; dojo.provide("dojo.fx.Toggler"); + dojo.declare("dojo.fx.Toggler", null, { // summary: // A simple `dojo.Animation` toggler API. @@ -5971,16 +6440,16 @@ dojo.declare("dojo.fx.Toggler", null, { // description: // class constructor for an animation toggler. It accepts a packed // set of arguments about what type of animation to use in each - // direction, duration, etc. All available members are mixed into - // these animations from the constructor (for example, `node`, - // `showDuration`, `hideDuration`). + // direction, duration, etc. All available members are mixed into + // these animations from the constructor (for example, `node`, + // `showDuration`, `hideDuration`). // // example: // | var t = new dojo.fx.Toggler({ // | node: "nodeId", // | showDuration: 500, // | // hideDuration will default to "200" - // | showFunc: dojo.fx.wipeIn, + // | showFunc: dojo.fx.wipeIn, // | // hideFunc will default to "fadeOut" // | }); // | t.show(100); // delay showing for 100ms @@ -5995,7 +6464,7 @@ dojo.declare("dojo.fx.Toggler", null, { // The function that returns the `dojo.Animation` to show the node showFunc: dojo.fadeIn, - // hideFunc: Function + // hideFunc: Function // The function that returns the `dojo.Animation` to hide the node hideFunc: dojo.fadeOut, @@ -6011,7 +6480,7 @@ dojo.declare("dojo.fx.Toggler", null, { // time show/hide are called if we're stopped somewhere in the // middle. // FIXME: also would be nice to specify individual showArgs/hideArgs mixed into - // each animation individually. + // each animation individually. // FIXME: also would be nice to have events from the animations exposed/bridged /*===== @@ -6064,7 +6533,9 @@ dojo.declare("dojo.fx.Toggler", null, { if(!dojo._hasResource["dojo.fx"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.fx"] = true; dojo.provide("dojo.fx"); - // FIXME: remove this back-compat require in 2.0 + + + /*===== dojo.fx = { // summary: Effects library on top of Base animations @@ -6072,7 +6543,7 @@ dojo.fx = { =====*/ (function(){ - var d = dojo, + var d = dojo, _baseObj = { _fire: function(evt, args){ if(this[evt]){ @@ -6191,14 +6662,14 @@ dojo.fx = { d.extend(_chain, _baseObj); dojo.fx.chain = function(/*dojo.Animation[]*/ animations){ - // summary: + // summary: // Chain a list of `dojo.Animation`s to run in sequence // // description: // Return a `dojo.Animation` which will play all passed // `dojo.Animation` instances in sequence, firing its own // synthesized events simulating a single animation. (eg: - // onEnd of this animation means the end of the chain, + // onEnd of this animation means the end of the chain, // not the individual animations within) // // example: @@ -6226,7 +6697,7 @@ dojo.fx = { this._pseudoAnimation = new d.Animation({curve: [0, 1], duration: this.duration}); var self = this; - d.forEach(["beforeBegin", "onBegin", "onPlay", "onAnimate", "onPause", "onStop", "onEnd"], + d.forEach(["beforeBegin", "onBegin", "onPlay", "onAnimate", "onPause", "onStop", "onEnd"], function(evt){ self._connects.push(d.connect(self._pseudoAnimation, evt, function(){ self._fire(evt, arguments); } @@ -6284,11 +6755,11 @@ dojo.fx = { d.extend(_combine, _baseObj); dojo.fx.combine = function(/*dojo.Animation[]*/ animations){ - // summary: + // summary: // Combine a list of `dojo.Animation`s to run in parallel // // description: - // Combine an array of `dojo.Animation`s to run in parallel, + // Combine an array of `dojo.Animation`s to run in parallel, // providing a new `dojo.Animation` instance encompasing each // animation, firing standard animation events. // @@ -6359,17 +6830,17 @@ dojo.fx = { } }, args)); - d.connect(anim, "onEnd", function(){ + d.connect(anim, "onEnd", function(){ s.height = "auto"; s.overflow = o; }); return anim; // dojo.Animation - } + }; dojo.fx.wipeOut = function(/*Object*/ args){ // summary: - // Shrink a node to nothing and hide it. + // Shrink a node to nothing and hide it. // // description: // Returns an animation that will shrink node defined in "args" @@ -6378,7 +6849,7 @@ dojo.fx = { // args: Object // A hash-map of standard `dojo.Animation` constructor properties // (such as easing: node: duration: and so on) - // + // // example: // | dojo.fx.wipeOut({ node:"someId" }).play() @@ -6404,14 +6875,14 @@ dojo.fx = { }); return anim; // dojo.Animation - } + }; dojo.fx.slideTo = function(/*Object*/ args){ // summary: // Slide a node to a new top/left position // // description: - // Returns an animation that will slide "node" + // Returns an animation that will slide "node" // defined in args Object from its current position to // the position defined by (args.left, args.top). // @@ -6423,7 +6894,7 @@ dojo.fx = { // example: // | dojo.fx.slideTo({ node: node, left:"40", top:"50", units:"px" }).play() - var node = args.node = d.byId(args.node), + var node = args.node = d.byId(args.node), top = null, left = null; var init = (function(n){ @@ -6453,7 +6924,7 @@ dojo.fx = { d.connect(anim, "beforeBegin", anim, init); return anim; // dojo.Animation - } + }; })(); @@ -6464,6 +6935,7 @@ dojo._hasResource["dojo.NodeList-fx"] = true; dojo.provide("dojo.NodeList-fx"); + /*===== dojo["NodeList-fx"] = { // summary: Adds dojo.fx animation support to dojo.query() @@ -6479,7 +6951,7 @@ dojo.extend(dojo.NodeList, { dojo.mixin(tmpArgs, args); return obj[method](tmpArgs); }) - ); + ); return args.auto ? a.play() && this : a; // dojo.Animation|dojo.NodeList }, @@ -6488,7 +6960,7 @@ dojo.extend(dojo.NodeList, { // wipe in all elements of this NodeList via `dojo.fx.wipeIn` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -6512,7 +6984,7 @@ dojo.extend(dojo.NodeList, { // wipe out all elements of this NodeList via `dojo.fx.wipeOut` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -6531,7 +7003,7 @@ dojo.extend(dojo.NodeList, { // slide all elements of the node list to the specified place via `dojo.fx.slideTo` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -6554,7 +7026,7 @@ dojo.extend(dojo.NodeList, { // fade in all elements of this NodeList via `dojo.fadeIn` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -6573,7 +7045,7 @@ dojo.extend(dojo.NodeList, { // fade out all elements of this NodeList via `dojo.fadeOut` // // args: Object? - // Additional dojo.Animation arguments to mix into this set with the addition of + // Additional dojo.Animation arguments to mix into this set with the addition of // an `auto` parameter. // // returns: dojo.Animation|dojo.NodeList @@ -6609,14 +7081,14 @@ dojo.extend(dojo.NodeList, { // example: // | dojo.query(".zork").animateProperty({ // | duration: 500, - // | properties: { + // | properties: { // | color: { start: "black", end: "white" }, - // | left: { end: 300 } - // | } + // | left: { end: 300 } + // | } // | }).play(); // // example: - // | dojo.query(".grue").animateProperty({ + // | dojo.query(".grue").animateProperty({ // | auto:true, // | properties: { // | height:240 @@ -6625,9 +7097,9 @@ dojo.extend(dojo.NodeList, { return this._anim(dojo, "animateProperty", args); // dojo.Animation|dojo.NodeList }, - anim: function( /*Object*/ properties, - /*Integer?*/ duration, - /*Function?*/ easing, + anim: function( /*Object*/ properties, + /*Integer?*/ duration, + /*Function?*/ easing, /*Function?*/ onEnd, /*Integer?*/ delay){ // summary: @@ -6635,8 +7107,8 @@ dojo.extend(dojo.NodeList, { // The returned animation object will already be playing when it // is returned. See the docs for `dojo.anim` for full details. // properties: Object - // the properties to animate. does NOT support the `auto` parameter like other - // NodeList-fx methods. + // the properties to animate. does NOT support the `auto` parameter like other + // NodeList-fx methods. // duration: Integer? // Optional. The time to run the animations for // easing: Function? @@ -6661,7 +7133,7 @@ dojo.extend(dojo.NodeList, { easing: easing }); }) - ); + ); if(onEnd){ dojo.connect(canim, "onEnd", onEnd); } @@ -6675,6 +7147,8 @@ if(!dojo._hasResource["dojo.colors"]){ //_hasResource checks added by build. Do dojo._hasResource["dojo.colors"] = true; dojo.provide("dojo.colors"); +dojo.getObject("colors", true, dojo); + //TODO: this module appears to break naming conventions /*===== @@ -6721,9 +7195,9 @@ dojo.colors = { var H = ((parseFloat(c[0]) % 360) + 360) % 360 / 360, S = parseFloat(c[1]) / 100, L = parseFloat(c[2]) / 100, - // calculate rgb according to the algorithm - // recommended by the CSS3 Color Module - m2 = L <= 0.5 ? L * (S + 1) : L + S - L * S, + // calculate rgb according to the algorithm + // recommended by the CSS3 Color Module + m2 = L <= 0.5 ? L * (S + 1) : L + S - L * S, m1 = 2 * L - m2; a = [ hue2rgb(m1, m2, H + 1 / 3) * 256, @@ -6905,13 +7379,16 @@ if(!dojo._hasResource["dojo.i18n"]){ //_hasResource checks added by build. Do no dojo._hasResource["dojo.i18n"] = true; dojo.provide("dojo.i18n"); +dojo.getObject("i18n", true, dojo); + /*===== dojo.i18n = { // summary: Utility classes to enable loading of resources for internationalization (i18n) }; =====*/ -dojo.i18n.getLocalization = function(/*String*/packageName, /*String*/bundleName, /*String?*/locale){ +// when using a real AMD loader, dojo.i18n.getLocalization is already defined by dojo/lib/backCompat +dojo.i18n.getLocalization = dojo.i18n.getLocalization || function(/*String*/packageName, /*String*/bundleName, /*String?*/locale){ // summary: // Returns an Object containing the localization for a given resource // bundle in a package, matching the specified locale. @@ -6939,7 +7416,7 @@ dojo.i18n.getLocalization = function(/*String*/packageName, /*String*/bundleName // look for nearest locale match var elements = locale.split('-'); var module = [packageName,"nls",bundleName].join('.'); - var bundle = dojo._loadedModules[module]; + var bundle = dojo._loadedModules[module]; if(bundle){ var localization; for(var i = elements.length; i > 0; i--){ @@ -6989,7 +7466,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle var targetLocale = dojo.i18n.normalizeLocale(locale); var bundlePackage = [moduleName, "nls", bundleName].join("."); - // NOTE: + // NOTE: // When loading these resources, the packaging does not match what is // on disk. This is an implementation detail, as this is just a // private data structure to hold the loaded resources. e.g. @@ -6999,7 +7476,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle // in memory it is more logical and efficient to store in a different // order. Locales cannot use dashes, since the resulting path will // not evaluate as valid JS, so we translate them to underscores. - + //Find the best-match locale to load if we have available flat locales. var bestLocale = ""; if(availableFlatLocales){ @@ -7016,7 +7493,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle } if(!bestLocale){ bestLocale = "ROOT"; - } + } } //See if the desired locale is already loaded. @@ -7048,6 +7525,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle module.push(bundleName); var filespec = module.join("/") + '.js'; loaded = dojo._loadPath(filespec, null, function(hash){ + hash = hash.root || hash; // Use singleton with prototype to point to parent bundle, then mix-in result from loadPath var clazz = function(){}; clazz.prototype = parent; @@ -7062,7 +7540,7 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle }else{ bundle[jsLoc] = parent; } - + if(availableFlatLocales){ //Stop the locale path searching if we know the availableFlatLocales, since //the first call to this function will load the only bundle that is needed. @@ -7080,8 +7558,8 @@ dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundle (function(){ // If other locales are used, dojo.requireLocalization should load them as - // well, by default. - // + // well, by default. + // // Override dojo.requireLocalization to do load the default bundle, then // iterate through the extraLocale list and load those translations as // well, unless a particular locale was requested. @@ -7158,6 +7636,7 @@ dojo._hasResource["dijit._PaletteMixin"] = true; dojo.provide("dijit._PaletteMixin"); + dojo.declare("dijit._PaletteMixin", [dijit._CssStateMixin], { @@ -7184,23 +7663,23 @@ dojo.declare("dijit._PaletteMixin", // Index of the currently selected cell. Initially, none selected _selectedCell: -1, +/*===== // _currentFocus: [private] DomNode // The currently focused cell (if the palette itself has focus), or otherwise // the cell to be focused when the palette itself gets focus. // Different from value, which represents the selected (i.e. clicked) cell. -/*===== _currentFocus: null, =====*/ +/*===== // _xDim: [protected] Integer // This is the number of cells horizontally across. -/*===== _xDim: null, =====*/ +/*===== // _yDim: [protected] Integer // This is the number of cells vertically down. -/*===== _yDim: null, =====*/ @@ -7217,7 +7696,7 @@ dojo.declare("dijit._PaletteMixin", // dyeClass should implements dijit.Dye interface dyeClass: '', - _preparePalette: function(choices, titles) { + _preparePalette: function(choices, titles, dyeClassObj) { // summary: // Subclass must call _preparePalette() from postCreate(), passing in the tooltip // for each cell @@ -7225,18 +7704,20 @@ dojo.declare("dijit._PaletteMixin", // id's for each cell of the palette, used to create Dye JS object for each cell // titles: String[] // Localized tooltip for each cell + // dyeClassObj: Constructor? + // If specified, use this constructor rather than this.dyeClass this._cells = []; var url = this._blankGif; - var dyeClassObj = dojo.getObject(this.dyeClass); + dyeClassObj = dyeClassObj || dojo.getObject(this.dyeClass); for(var row=0; row < choices.length; row++){ var rowNode = dojo.create("tr", {tabIndex: "-1"}, this.gridNode); for(var col=0; col < choices[row].length; col++){ var value = choices[row][col]; if(value){ - var cellObject = new dyeClassObj(value); + var cellObject = new dyeClassObj(value, row, col); var cellNode = dojo.create("td", { "class": this.cellClass, @@ -7316,7 +7797,7 @@ dojo.declare("dijit._PaletteMixin", // tags: // private - var target = evt.currentTarget, + var target = evt.currentTarget, value = this._getDye(target).getValue(); // First focus the clicked cell, and then send onChange() notification. @@ -7326,8 +7807,8 @@ dojo.declare("dijit._PaletteMixin", // Use setTimeout because IE doesn't like changing focus inside of an event handler. this._setCurrent(target); setTimeout(dojo.hitch(this, function(){ - dijit.focus(target); - this._setValueAttr(value, true); + dijit.focus(target); + this._setValueAttr(value, true); })); // workaround bug where hover class is not removed on popup because the popup is @@ -7371,8 +7852,7 @@ dojo.declare("dijit._PaletteMixin", // Optional parameter used to tell the select whether or not to fire // onChange event. - // clear old value and selected cell - this.value = null; + // clear old selected cell if(this._selectedCell >= 0){ dojo.removeClass(this._cells[this._selectedCell].node, "dijitPaletteCellSelected"); } @@ -7383,18 +7863,18 @@ dojo.declare("dijit._PaletteMixin", for(var i = 0; i < this._cells.length; i++){ if(value == this._cells[i].dye.getValue()){ this._selectedCell = i; - this.value = value; - dojo.addClass(this._cells[i].node, "dijitPaletteCellSelected"); - - if(priorityChange || priorityChange === undefined){ - this.onChange(value); - } - break; } } } + + // record new value, or null if no matching cell + this._set("value", this._selectedCell >= 0 ? value : null); + + if(priorityChange || priorityChange === undefined){ + this.onChange(value); + } }, onChange: function(value){ @@ -7444,7 +7924,7 @@ dojo.declare("dijit.Dye", // summary: // Interface for the JS Object associated with a palette cell (i.e. DOMNode) - constructor: function(alias){ + constructor: function(alias, row, col){ // summary: // Initialize according to value or alias like "white" // alias: String @@ -7483,7 +7963,6 @@ dojo.provide("dijit.ColorPalette"); - dojo.declare("dijit.ColorPalette", [dijit._Widget, dijit._Templated, dijit._PaletteMixin], { @@ -7501,7 +7980,7 @@ dojo.declare("dijit.ColorPalette", // | picker.startup(); - // palette: String + // palette: [const] String // Size of grid, either "7x10" or "3x4". palette: "7x10", @@ -7523,65 +8002,88 @@ dojo.declare("dijit.ColorPalette", ["gray", "red", "purple", "black"]] }, - // _imagePaths: [protected] Map - // This is stores the path to the palette images - _imagePaths: { - "7x10": dojo.moduleUrl("dijit.themes", "a11y/colors7x10.png"), - "3x4": dojo.moduleUrl("dijit.themes", "a11y/colors3x4.png"), - "7x10-rtl": dojo.moduleUrl("dijit.themes", "a11y/colors7x10-rtl.png"), - "3x4-rtl": dojo.moduleUrl("dijit.themes", "a11y/colors3x4-rtl.png") - }, - // templateString: String // The template of this widget. - templateString: dojo.cache("dijit", "templates/ColorPalette.html", "<div class=\"dijitInline dijitColorPalette\">\n\t<img class=\"dijitColorPaletteUnder\" dojoAttachPoint=\"imageNode\" waiRole=\"presentation\" alt=\"\"/>\n\t<table class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\">\n\t\t<tbody dojoAttachPoint=\"gridNode\"></tbody>\n\t</table>\n</div>\n"), + templateString: dojo.cache("dijit", "templates/ColorPalette.html", "<div class=\"dijitInline dijitColorPalette\">\n\t<table class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\">\n\t\t<tbody dojoAttachPoint=\"gridNode\"></tbody>\n\t</table>\n</div>\n"), baseClass: "dijitColorPalette", - dyeClass: 'dijit._Color', - buildRendering: function(){ // Instantiate the template, which makes a skeleton into which we'll insert a bunch of // <img> nodes - this.inherited(arguments); - this.imageNode.setAttribute("src", this._imagePaths[this.palette + (this.isLeftToRight() ? "" : "-rtl")].toString()); - - var i18nColorNames = dojo.i18n.getLocalization("dojo", "colors", this.lang); + // Creates <img> nodes in each cell of the template. + // Pass in "customized" dijit._Color constructor for specified palette and high-contrast vs. normal mode this._preparePalette( this._palettes[this.palette], - i18nColorNames + dojo.i18n.getLocalization("dojo", "colors", this.lang), + dojo.declare(dijit._Color, { + hc: dojo.hasClass(dojo.body(), "dijit_a11y"), + palette: this.palette + }) ); } }); -dojo.declare("dijit._Color", dojo.Color, +dojo.declare("dijit._Color", dojo.Color, { // summary: // Object associated with each cell in a ColorPalette palette. // Implements dijit.Dye. - { - constructor: function(/*String*/alias){ - this._alias = alias; - this.setColor(dojo.Color.named[alias]); - }, - getValue: function(){ - // summary: - // Note that although dijit._Color is initialized with a value like "white" getValue() always - // returns a hex value - return this.toHex(); - }, + // Template for each cell in normal (non-high-contrast mode). Each cell contains a wrapper + // node for showing the border (called dijitPaletteImg for back-compat), and dijitColorPaletteSwatch + // for showing the color. + template: + "<span class='dijitInline dijitPaletteImg'>" + + "<img src='${blankGif}' alt='${alt}' class='dijitColorPaletteSwatch' style='background-color: ${color}'/>" + + "</span>", + + // Template for each cell in high contrast mode. Each cell contains an image with the whole palette, + // but scrolled and clipped to show the correct color only + hcTemplate: + "<span class='dijitInline dijitPaletteImg' style='position: relative; overflow: hidden; height: 12px; width: 14px;'>" + + "<img src='${image}' alt='${alt}' style='position: absolute; left: ${left}px; top: ${top}px; ${size}'/>" + + "</span>", - fillCell: function(/*DOMNode*/ cell, /*String*/ blankGif){ - dojo.create("img", { - src: blankGif, - "class": "dijitPaletteImg", - alt: this._alias - }, cell); - } + // _imagePaths: [protected] Map + // This is stores the path to the palette images used for high-contrast mode display + _imagePaths: { + "7x10": dojo.moduleUrl("dijit.themes", "a11y/colors7x10.png"), + "3x4": dojo.moduleUrl("dijit.themes", "a11y/colors3x4.png") + }, + + constructor: function(/*String*/alias, /*Number*/ row, /*Number*/ col){ + this._alias = alias; + this._row = row; + this._col = col; + this.setColor(dojo.Color.named[alias]); + }, + + getValue: function(){ + // summary: + // Note that although dijit._Color is initialized with a value like "white" getValue() always + // returns a hex value + return this.toHex(); + }, + + fillCell: function(/*DOMNode*/ cell, /*String*/ blankGif){ + var html = dojo.string.substitute(this.hc ? this.hcTemplate : this.template, { + // substitution variables for normal mode + color: this.toHex(), + blankGif: blankGif, + alt: this._alias, + + // variables used for high contrast mode + image: this._imagePaths[this.palette].toString(), + left: this._col * -20 - 5, + top: this._row * -20 - 5, + size: this.palette == "7x10" ? "height: 145px; width: 206px" : "height: 64px; width: 86px" + }); + + dojo.place(html, cell); } -); +}); } @@ -7589,6 +8091,8 @@ if(!dojo._hasResource["dojo.dnd.common"]){ //_hasResource checks added by build. dojo._hasResource["dojo.dnd.common"] = true; dojo.provide("dojo.dnd.common"); +dojo.getObject("dnd", true, dojo); + dojo.dnd.getCopyKeyState = dojo.isCopyKey; dojo.dnd._uniqueId = 0; @@ -7620,25 +8124,10 @@ if(!dojo._hasResource["dojo.dnd.autoscroll"]){ //_hasResource checks added by bu dojo._hasResource["dojo.dnd.autoscroll"] = true; dojo.provide("dojo.dnd.autoscroll"); -dojo.dnd.getViewport = function(){ - // summary: - // Returns a viewport size (visible part of the window) - - // TODO: remove this when getViewport() moved to dojo core, see #7028 - - // FIXME: need more docs!! - var d = dojo.doc, dd = d.documentElement, w = window, b = dojo.body(); - if(dojo.isMozilla){ - return {w: dd.clientWidth, h: w.innerHeight}; // Object - }else if(!dojo.isOpera && w.innerWidth){ - return {w: w.innerWidth, h: w.innerHeight}; // Object - }else if (!dojo.isOpera && dd && dd.clientWidth){ - return {w: dd.clientWidth, h: dd.clientHeight}; // Object - }else if (b.clientWidth){ - return {w: b.clientWidth, h: b.clientHeight}; // Object - } - return null; // Object -}; + +dojo.getObject("dnd", true, dojo); + +dojo.dnd.getViewport = dojo.window.getBox; dojo.dnd.V_TRIGGER_AUTOSCROLL = 32; dojo.dnd.H_TRIGGER_AUTOSCROLL = 32; @@ -7654,7 +8143,7 @@ dojo.dnd.autoScroll = function(e){ // onmousemove event // FIXME: needs more docs! - var v = dojo.dnd.getViewport(), dx = 0, dy = 0; + var v = dojo.window.getBox(), dx = 0, dy = 0; if(e.clientX < dojo.dnd.H_TRIGGER_AUTOSCROLL){ dx = -dojo.dnd.H_AUTOSCROLL_VALUE; }else if(e.clientX > v.w - dojo.dnd.H_TRIGGER_AUTOSCROLL){ @@ -7685,14 +8174,15 @@ dojo.dnd.autoScrollNodes = function(e){ if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){ var b = dojo._getContentBox(n, s), t = dojo.position(n, true); //console.log(b.l, b.t, t.x, t.y, n.scrollLeft, n.scrollTop); - var w = Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL, b.w / 2), + var w = Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL, b.w / 2), h = Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL, b.h / 2), rx = e.pageX - t.x, ry = e.pageY - t.y, dx = 0, dy = 0; if(dojo.isWebKit || dojo.isOpera){ - // FIXME: this code should not be here, it should be taken into account + // FIXME: this code should not be here, it should be taken into account // either by the event fixing code, or the dojo.position() // FIXME: this code doesn't work on Opera 9.5 Beta - rx += dojo.body().scrollLeft, ry += dojo.body().scrollTop; + rx += dojo.body().scrollLeft; + ry += dojo.body().scrollTop; } if(rx > 0 && rx < b.w){ if(rx < w){ @@ -7736,7 +8226,7 @@ dojo.provide("dojo.dnd.Mover"); dojo.declare("dojo.dnd.Mover", null, { constructor: function(node, e, host){ // summary: - // an object, which makes a node follow the mouse. + // an object which makes a node follow the mouse, or touch-drag on touch devices. // Used as a default mover, and as a base class for custom movers. // node: Node // a node (or node's id) to be moved @@ -7747,17 +8237,27 @@ dojo.declare("dojo.dnd.Mover", null, { // object which implements the functionality of the move, // and defines proper events (onMoveStart and onMoveStop) this.node = dojo.byId(node); - this.marginBox = {l: e.pageX, t: e.pageY}; + var pos = e.touches ? e.touches[0] : e; + this.marginBox = {l: pos.pageX, t: pos.pageY}; this.mouseButton = e.button; - var h = this.host = host, d = node.ownerDocument, - firstEvent = dojo.connect(d, "onmousemove", this, "onFirstMove"); + var h = (this.host = host), d = node.ownerDocument; this.events = [ + // At the start of a drag, onFirstMove is called, and then the following two + // connects are disconnected + dojo.connect(d, "onmousemove", this, "onFirstMove"), + dojo.connect(d, "ontouchmove", this, "onFirstMove"), + + // These are called continually during the drag dojo.connect(d, "onmousemove", this, "onMouseMove"), + dojo.connect(d, "ontouchmove", this, "onMouseMove"), + + // And these are called at the end of the drag dojo.connect(d, "onmouseup", this, "onMouseUp"), + dojo.connect(d, "ontouchend", this, "onMouseUp"), + // cancel text selection and text dragging dojo.connect(d, "ondragstart", dojo.stopEvent), - dojo.connect(d.body, "onselectstart", dojo.stopEvent), - firstEvent + dojo.connect(d.body, "onselectstart", dojo.stopEvent) ]; // notify that the move has started if(h && h.onMoveStart){ @@ -7767,17 +8267,18 @@ dojo.declare("dojo.dnd.Mover", null, { // mouse event processors onMouseMove: function(e){ // summary: - // event processor for onmousemove + // event processor for onmousemove/ontouchmove // e: Event - // mouse event + // mouse/touch event dojo.dnd.autoScroll(e); - var m = this.marginBox; - this.host.onMove(this, {l: m.l + e.pageX, t: m.t + e.pageY}, e); + var m = this.marginBox, + pos = e.touches ? e.touches[0] : e; + this.host.onMove(this, {l: m.l + pos.pageX, t: m.t + pos.pageY}, e); dojo.stopEvent(e); }, onMouseUp: function(e){ - if(dojo.isWebKit && dojo.isMac && this.mouseButton == 2 ? - e.button == 0 : this.mouseButton == e.button){ + if(dojo.isWebKit && dojo.isMac && this.mouseButton == 2 ? + e.button == 0 : this.mouseButton == e.button){ // TODO Should condition be met for touch devices, too? this.destroy(); } dojo.stopEvent(e); @@ -7785,7 +8286,7 @@ dojo.declare("dojo.dnd.Mover", null, { // utilities onFirstMove: function(e){ // summary: - // makes the node absolute; it is meant to be called only once. + // makes the node absolute; it is meant to be called only once. // relative and absolutely positioned nodes are assumed to use pixel units var s = this.node.style, l, t, h = this.host; switch(s.position){ @@ -7805,7 +8306,7 @@ dojo.declare("dojo.dnd.Mover", null, { // space into account - so we need to subtract the combined // padding and margin. We use getComputedStyle and // _getMarginBox/_getContentBox to avoid the extra lookup of - // the computed style. + // the computed style. var b = dojo.doc.body; var bs = dojo.getComputedStyle(b); var bm = dojo._getMarginBox(b, bs); @@ -7819,7 +8320,10 @@ dojo.declare("dojo.dnd.Mover", null, { if(h && h.onFirstMove){ h.onFirstMove(this, e); } - dojo.disconnect(this.events.pop()); + + // Disconnect onmousemove and ontouchmove events that call this function + dojo.disconnect(this.events.shift()); + dojo.disconnect(this.events.shift()); }, destroy: function(){ // summary: @@ -7886,6 +8390,7 @@ dojo.declare("dojo.dnd.Moveable", null, { this.mover = params.mover ? params.mover : dojo.dnd.Mover; this.events = [ dojo.connect(this.handle, "onmousedown", this, "onMouseDown"), + dojo.connect(this.handle, "ontouchstart", this, "onMouseDown"), // cancel text selection and text dragging dojo.connect(this.handle, "ondragstart", this, "onSelectStart"), dojo.connect(this.handle, "onselectstart", this, "onSelectStart") @@ -7908,17 +8413,20 @@ dojo.declare("dojo.dnd.Moveable", null, { // mouse event processors onMouseDown: function(e){ // summary: - // event processor for onmousedown, creates a Mover for the node + // event processor for onmousedown/ontouchstart, creates a Mover for the node // e: Event - // mouse event + // mouse/touch event if(this.skip && dojo.dnd.isFormElement(e)){ return; } if(this.delay){ this.events.push( dojo.connect(this.handle, "onmousemove", this, "onMouseMove"), - dojo.connect(this.handle, "onmouseup", this, "onMouseUp") + dojo.connect(this.handle, "ontouchmove", this, "onMouseMove"), + dojo.connect(this.handle, "onmouseup", this, "onMouseUp"), + dojo.connect(this.handle, "ontouchend", this, "onMouseUp") ); - this._lastX = e.pageX; - this._lastY = e.pageY; + var pos = e.touches ? e.touches[0] : e; + this._lastX = pos.pageX; + this._lastY = pos.pageY; }else{ this.onDragDetected(e); } @@ -7926,10 +8434,11 @@ dojo.declare("dojo.dnd.Moveable", null, { }, onMouseMove: function(e){ // summary: - // event processor for onmousemove, used only for delayed drags + // event processor for onmousemove/ontouchmove, used only for delayed drags // e: Event - // mouse event - if(Math.abs(e.pageX - this._lastX) > this.delay || Math.abs(e.pageY - this._lastY) > this.delay){ + // mouse/touch event + var pos = e.touches ? e.touches[0] : e; + if(Math.abs(pos.pageX - this._lastX) > this.delay || Math.abs(pos.pageY - this._lastY) > this.delay){ this.onMouseUp(e); this.onDragDetected(e); } @@ -7966,8 +8475,8 @@ dojo.declare("dojo.dnd.Moveable", null, { // summary: // called before every move operation dojo.publish("/dnd/move/start", [mover]); - dojo.addClass(dojo.body(), "dojoMove"); - dojo.addClass(this.node, "dojoMoveItem"); + dojo.addClass(dojo.body(), "dojoMove"); + dojo.addClass(this.node, "dojoMoveItem"); }, onMoveStop: function(/* dojo.dnd.Mover */ mover){ // summary: @@ -8059,7 +8568,7 @@ dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, { c.r = c.l + c.w; c.b = c.t + c.h; if(this.within){ - var mb = dojo.marginBox(mover.node); + var mb = dojo._getMarginSize(mover.node); c.r -= mb.w; c.b -= mb.h; } @@ -8069,8 +8578,12 @@ dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, { // called during every move notification; // should actually move the node; can be overwritten. var c = this.constraintBox, s = mover.node.style; - s.left = (leftTop.l < c.l ? c.l : c.r < leftTop.l ? c.r : leftTop.l) + "px"; - s.top = (leftTop.t < c.t ? c.t : c.b < leftTop.t ? c.b : leftTop.t) + "px"; + this.onMoving(mover, leftTop); + leftTop.l = leftTop.l < c.l ? c.l : c.r < leftTop.l ? c.r : leftTop.l; + leftTop.t = leftTop.t < c.t ? c.t : c.b < leftTop.t ? c.b : leftTop.t; + s.left = leftTop.l + "px"; + s.top = leftTop.t + "px"; + this.onMoved(mover, leftTop); } }); @@ -8132,8 +8645,8 @@ dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constraine // an optional object with parameters var area = params && params.area; this.constraints = function(){ - var n = this.node.parentNode, - s = dojo.getComputedStyle(n), + var n = this.node.parentNode, + s = dojo.getComputedStyle(n), mb = dojo._getMarginBox(n, s); if(area == "margin"){ return mb; // Object @@ -8155,100 +8668,6 @@ dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constraine } }); -// WARNING: below are obsolete objects, instead of custom movers use custom moveables (above) - -dojo.dnd.move.constrainedMover = function(fun, within){ - // summary: - // returns a constrained version of dojo.dnd.Mover - // description: - // this function produces n object, which will put a constraint on - // the margin box of dragged object in absolute coordinates - // fun: Function - // called on drag, and returns a constraint box - // within: Boolean - // if true, constraints the whole dragged object withtin the rectangle, - // otherwise the constraint is applied to the left-top corner - - dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead"); - var mover = function(node, e, notifier){ - dojo.dnd.Mover.call(this, node, e, notifier); - }; - dojo.extend(mover, dojo.dnd.Mover.prototype); - dojo.extend(mover, { - onMouseMove: function(e){ - // summary: event processor for onmousemove - // e: Event: mouse event - dojo.dnd.autoScroll(e); - var m = this.marginBox, c = this.constraintBox, - l = m.l + e.pageX, t = m.t + e.pageY; - l = l < c.l ? c.l : c.r < l ? c.r : l; - t = t < c.t ? c.t : c.b < t ? c.b : t; - this.host.onMove(this, {l: l, t: t}); - }, - onFirstMove: function(){ - // summary: called once to initialize things; it is meant to be called only once - dojo.dnd.Mover.prototype.onFirstMove.call(this); - var c = this.constraintBox = fun.call(this); - c.r = c.l + c.w; - c.b = c.t + c.h; - if(within){ - var mb = dojo.marginBox(this.node); - c.r -= mb.w; - c.b -= mb.h; - } - } - }); - return mover; // Object -}; - -dojo.dnd.move.boxConstrainedMover = function(box, within){ - // summary: - // a specialization of dojo.dnd.constrainedMover, which constrains to the specified box - // box: Object - // a constraint box (l, t, w, h) - // within: Boolean - // if true, constraints the whole dragged object withtin the rectangle, - // otherwise the constraint is applied to the left-top corner - - dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead"); - return dojo.dnd.move.constrainedMover(function(){ return box; }, within); // Object -}; - -dojo.dnd.move.parentConstrainedMover = function(area, within){ - // summary: - // a specialization of dojo.dnd.constrainedMover, which constrains to the parent node - // area: String - // "margin" to constrain within the parent's margin box, "border" for the border box, - // "padding" for the padding box, and "content" for the content box; "content" is the default value. - // within: Boolean - // if true, constraints the whole dragged object within the rectangle, - // otherwise the constraint is applied to the left-top corner - - dojo.deprecated("dojo.dnd.move.parentConstrainedMover, use dojo.dnd.move.parentConstrainedMoveable instead"); - var fun = function(){ - var n = this.node.parentNode, - s = dojo.getComputedStyle(n), - mb = dojo._getMarginBox(n, s); - if(area == "margin"){ - return mb; // Object - } - var t = dojo._getMarginExtents(n, s); - mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; - if(area == "border"){ - return mb; // Object - } - t = dojo._getBorderExtents(n, s); - mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; - if(area == "padding"){ - return mb; // Object - } - t = dojo._getPadExtents(n, s); - mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; - return mb; // Object - }; - return dojo.dnd.move.constrainedMover(fun, within); // Object -}; - // patching functions one level up for compatibility dojo.dnd.constrainedMover = dojo.dnd.move.constrainedMover; @@ -8279,7 +8698,7 @@ dojo.declare("dojo.dnd.__TimedMoveableArgs", [dojo.dnd.__MoveableArgs], { dojo.declare("dojo.dnd.TimedMoveable", dojo.dnd.Moveable, { // summary: // A specialized version of Moveable to support an FPS throttling. - // This class puts an upper restriction on FPS, which may reduce + // This class puts an upper restriction on FPS, which may reduce // the CPU load. The additional parameter "timeout" regulates // the delay before actually moving the moveable object. @@ -8338,8 +8757,7 @@ dojo.provide("dijit.form._FormMixin"); -dojo.declare("dijit.form._FormMixin", null, - { +dojo.declare("dijit.form._FormMixin", null, { // summary: // Mixin for containers of form widgets (i.e. widgets that represent a single value // and can be children of a <form> node or dijit.form.Form widget) @@ -8350,10 +8768,10 @@ dojo.declare("dijit.form._FormMixin", null, // form widgets /*===== - // value: Object + // value: Object // Name/value hash for each child widget with a name and value. // Child widgets without names are not part of the hash. - // + // // If there are multiple child widgets w/the same name, value is an array, // unless they are radio buttons in which case value is a scalar (since only // one radio button can be checked at a time). @@ -8364,6 +8782,12 @@ dojo.declare("dijit.form._FormMixin", null, // | { name: "John Smith", interests: ["sports", "movies"] } =====*/ + // state: [readonly] String + // Will be "Error" if one or more of the child widgets has an invalid value, + // "Incomplete" if not all of the required child widgets are filled in. Otherwise, "", + // which indicates that the form is ready to be submitted. + state: "", + // TODO: // * Repeater // * better handling for arrays. Often form elements have names with [] like @@ -8382,11 +8806,11 @@ dojo.declare("dijit.form._FormMixin", null, validate: function(){ // summary: // returns if the form is valid - same as isValid - but - // provides a few additional (ui-specific) features. - // 1 - it will highlight any sub-widgets that are not - // valid - // 2 - it will call focus() on the first invalid - // sub-widget + // provides a few additional (ui-specific) features. + // 1 - it will highlight any sub-widgets that are not + // valid + // 2 - it will call focus() on the first invalid + // sub-widget var didFocus = false; return dojo.every(dojo.map(this.getDescendants(), function(widget){ // Need to set this so that "required" widgets get their @@ -8407,9 +8831,9 @@ dojo.declare("dijit.form._FormMixin", null, dojo.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.", "", "2.0"); return this.set('value', val); }, - _setValueAttr: function(/*object*/obj){ + _setValueAttr: function(/*Object*/ obj){ // summary: - // Fill in form values from according to an Object (in the format returned by attr('value')) + // Fill in form values from according to an Object (in the format returned by get('value')) // generate map from name --> [list of widgets with that name] var map = { }; @@ -8487,7 +8911,7 @@ dojo.declare("dijit.form._FormMixin", null, return; // like "continue" } - // TODO: widget values (just call attr('value', ...) on the widget) + // TODO: widget values (just call set('value', ...) on the widget) // TODO: maybe should call dojo.getNodeProp() instead switch(element.type){ @@ -8519,6 +8943,9 @@ dojo.declare("dijit.form._FormMixin", null, } }); */ + + // Note: no need to call this._set("value", ...) as the child updates will trigger onChange events + // which I am monitoring. }, getValues: function(){ @@ -8527,17 +8954,18 @@ dojo.declare("dijit.form._FormMixin", null, }, _getValueAttr: function(){ // summary: - // Returns Object representing form values. + // Returns Object representing form values. See description of `value` for details. // description: - // Returns name/value hash for each form element. - // If there are multiple elements w/the same name, value is an array, - // unless they are radio buttons in which case value is a scalar since only - // one can be checked at a time. + + // The value is updated into this.value every time a child has an onChange event, + // so in the common case this function could just return this.value. However, + // that wouldn't work when: // - // If the name is a dot separated list (like a.b.c.d), creates a nested structure. - // Only works on widget form elements. - // example: - // | { name: "John Smith", interests: ["sports", "movies"] } + // 1. User presses return key to submit a form. That doesn't fire an onchange event, + // and even if it did it would come too late due to the setTimout(..., 0) in _handleOnChange() + // + // 2. app for some reason calls this.get("value") while the user is typing into a + // form field. Not sure if that case needs to be supported or not. // get widget values var obj = { }; @@ -8545,7 +8973,7 @@ dojo.declare("dijit.form._FormMixin", null, var name = widget.name; if(!name || widget.disabled){ return; } - // Single value widget (checkbox, radio, or plain <input> type widget + // Single value widget (checkbox, radio, or plain <input> type widget) var value = widget.get('value'); // Store widget's value(s) as a scalar, except for checkboxes which are automatically arrays @@ -8648,98 +9076,132 @@ dojo.declare("dijit.form._FormMixin", null, return obj; }, - // TODO: ComboBox might need time to process a recently input value. This should be async? isValid: function(){ // summary: - // Returns true if all of the widgets are valid - - // This also populate this._invalidWidgets[] array with list of invalid widgets... - // TODO: put that into separate function? It's confusing to have that as a side effect - // of a method named isValid(). + // Returns true if all of the widgets are valid. + // Deprecated, will be removed in 2.0. Use get("state") instead. - this._invalidWidgets = dojo.filter(this.getDescendants(), function(widget){ - return !widget.disabled && widget.isValid && !widget.isValid(); - }); - return !this._invalidWidgets.length; + return this.state == ""; }, - onValidStateChange: function(isValid){ // summary: // Stub function to connect to if you want to do something // (like disable/enable a submit button) when the valid // state changes on the form as a whole. + // + // Deprecated. Will be removed in 2.0. Use watch("state", ...) instead. }, - _widgetChange: function(widget){ + _getState: function(){ // summary: - // Connected to a widget's onChange function - update our - // valid state, if needed. - var isValid = this._lastValidState; - if(!widget || this._lastValidState === undefined){ - // We have passed a null widget, or we haven't been validated - // yet - let's re-check all our children - // This happens when we connect (or reconnect) our children - isValid = this.isValid(); - if(this._lastValidState === undefined){ - // Set this so that we don't fire an onValidStateChange - // the first time - this._lastValidState = isValid; - } - }else if(widget.isValid){ - this._invalidWidgets = dojo.filter(this._invalidWidgets || [], function(w){ - return (w != widget); - }, this); - if(!widget.isValid() && !widget.get("disabled")){ - this._invalidWidgets.push(widget); - } - isValid = (this._invalidWidgets.length === 0); - } - if(isValid !== this._lastValidState){ - this._lastValidState = isValid; - this.onValidStateChange(isValid); - } + // Compute what this.state should be based on state of children + var states = dojo.map(this._descendants, function(w){ + return w.get("state") || ""; + }); + + return dojo.indexOf(states, "Error") >= 0 ? "Error" : + dojo.indexOf(states, "Incomplete") >= 0 ? "Incomplete" : ""; }, - connectChildren: function(){ + disconnectChildren: function(){ // summary: - // Connects to the onChange function of all children to - // track valid state changes. You can call this function - // directly, ex. in the event that you programmatically - // add a widget to the form *after* the form has been + // Remove connections to monitor changes to children's value, error state, and disabled state, + // in order to update Form.value and Form.state. + dojo.forEach(this._childConnections || [], dojo.hitch(this, "disconnect")); + dojo.forEach(this._childWatches || [], function(w){ w.unwatch(); }); + }, + + connectChildren: function(/*Boolean*/ inStartup){ + // summary: + // Setup connections to monitor changes to children's value, error state, and disabled state, + // in order to update Form.value and Form.state. + // + // You can call this function directly, ex. in the event that you + // programmatically add a widget to the form *after* the form has been // initialized. - dojo.forEach(this._changeConnections, dojo.hitch(this, "disconnect")); + var _this = this; - // we connect to validate - so that it better reflects the states - // of the widgets - also, we only connect if it has a validate - // function (to avoid too many unneeded connections) - var conns = (this._changeConnections = []); - dojo.forEach(dojo.filter(this.getDescendants(), + // Remove old connections, if any + this.disconnectChildren(); + + this._descendants = this.getDescendants(); + + // (Re)set this.value and this.state. Send watch() notifications but not on startup. + var set = inStartup ? function(name, val){ _this[name] = val; } : dojo.hitch(this, "_set"); + set("value", this.get("value")); + set("state", this._getState()); + + // Monitor changes to error state and disabled state in order to update + // Form.state + var conns = (this._childConnections = []), + watches = (this._childWatches = []); + dojo.forEach(dojo.filter(this._descendants, function(item){ return item.validate; } ), function(widget){ - // We are interested in whenever the widget is validated - or - // whenever the disabled attribute on that widget is changed - conns.push(_this.connect(widget, "validate", - dojo.hitch(_this, "_widgetChange", widget))); - conns.push(_this.connect(widget, "_setDisabledAttr", - dojo.hitch(_this, "_widgetChange", widget))); + // We are interested in whenever the widget changes validity state - or + // whenever the disabled attribute on that widget is changed. + dojo.forEach(["state", "disabled"], function(attr){ + watches.push(widget.watch(attr, function(attr, oldVal, newVal){ + _this.set("state", _this._getState()); + })); + }); }); - // Call the widget change function to update the valid state, in - // case something is different now. - this._widgetChange(null); + // And monitor calls to child.onChange so we can update this.value + var onChange = function(){ + // summary: + // Called when child's value or disabled state changes + + // Use setTimeout() to collapse value changes in multiple children into a single + // update to my value. Multiple updates will occur on: + // 1. Form.set() + // 2. Form.reset() + // 3. user selecting a radio button (which will de-select another radio button, + // causing two onChange events) + if(_this._onChangeDelayTimer){ + clearTimeout(_this._onChangeDelayTimer); + } + _this._onChangeDelayTimer = setTimeout(function(){ + delete _this._onChangeDelayTimer; + _this._set("value", _this.get("value")); + }, 10); + }; + dojo.forEach( + dojo.filter(this._descendants, function(item){ return item.onChange; } ), + function(widget){ + // When a child widget's value changes, + // the efficient thing to do is to just update that one attribute in this.value, + // but that gets a little complicated when a checkbox is checked/unchecked + // since this.value["checkboxName"] contains an array of all the checkboxes w/the same name. + // Doing simple thing for now. + conns.push(_this.connect(widget, "onChange", onChange)); + + // Disabling/enabling a child widget should remove it's value from this.value. + // Again, this code could be more efficient, doing simple thing for now. + watches.push(widget.watch("disabled", onChange)); + } + ); }, startup: function(){ this.inherited(arguments); - // Initialize our valid state tracking. Needs to be done in startup - // because it's not guaranteed that our children are initialized - // yet. - this._changeConnections = []; - this.connectChildren(); + + // Initialize value and valid/invalid state tracking. Needs to be done in startup() + // so that children are initialized. + this.connectChildren(true); + + // Make state change call onValidStateChange(), will be removed in 2.0 + this.watch("state", function(attr, oldVal, newVal){ this.onValidStateChange(newVal == ""); }); + }, + + destroy: function(){ + this.disconnectChildren(); + this.inherited(arguments); } + }); } @@ -8802,22 +9264,16 @@ dojo.declare("dijit._DialogMixin", null, this.execute(this.get('value')); }, - _getFocusItems: function(/*Node*/ dialogNode){ + _getFocusItems: function(){ // summary: - // Find focusable Items each time a dialog is opened, - // setting _firstFocusItem and _lastFocusItem + // Finds focusable items in dialog, + // and sets this._firstFocusItem and this._lastFocusItem // tags: // protected - var elems = dijit._getTabNavigable(dojo.byId(dialogNode)); - this._firstFocusItem = elems.lowest || elems.first || dialogNode; + var elems = dijit._getTabNavigable(this.containerNode); + this._firstFocusItem = elems.lowest || elems.first || this.closeButtonNode || this.domNode; this._lastFocusItem = elems.last || elems.highest || this._firstFocusItem; - if(dojo.isMoz && this._firstFocusItem.tagName.toLowerCase() == "input" && - dojo.getNodeProp(this._firstFocusItem, "type").toLowerCase() == "file"){ - // FF doesn't behave well when first element is input type=file, set first focusable to dialog container - dojo.attr(dialogNode, "tabIndex", "0"); - this._firstFocusItem = dialogNode; - } } } ); @@ -8832,7 +9288,6 @@ dojo.provide("dijit.DialogUnderlay"); - dojo.declare( "dijit.DialogUnderlay", [dijit._Widget, dijit._Templated], @@ -8869,10 +9324,12 @@ dojo.declare( _setDialogIdAttr: function(id){ dojo.attr(this.node, "id", id + "_underlay"); + this._set("dialogId", id); }, _setClassAttr: function(clazz){ this.node.className = "dijitDialogUnderlay " + clazz; + this._set("class", clazz); }, postCreate: function(){ @@ -8921,17 +9378,265 @@ dojo.declare( // summary: // Hides the dialog underlay this.bgIframe.destroy(); + delete this.bgIframe; this.domNode.style.display = "none"; - }, + } + } +); - uninitialize: function(){ - if(this.bgIframe){ - this.bgIframe.destroy(); +} + +if(!dojo._hasResource["dijit.layout._ContentPaneResizeMixin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout._ContentPaneResizeMixin"] = true; +dojo.provide("dijit.layout._ContentPaneResizeMixin"); + + + + +dojo.declare("dijit.layout._ContentPaneResizeMixin", null, { + // summary: + // Resize() functionality of ContentPane. If there's a single layout widget + // child then it will call resize() with the same dimensions as the ContentPane. + // Otherwise just calls resize on each child. + // + // Also implements basic startup() functionality, where starting the parent + // will start the children + + // doLayout: Boolean + // - false - don't adjust size of children + // - true - if there is a single visible child widget, set it's size to + // however big the ContentPane is + doLayout: true, + + // isContainer: [protected] Boolean + // Indicates that this widget acts as a "parent" to the descendant widgets. + // When the parent is started it will call startup() on the child widgets. + // See also `isLayoutContainer`. + isContainer: true, + + // isLayoutContainer: [protected] Boolean + // Indicates that this widget will call resize() on it's child widgets + // when they become visible. + isLayoutContainer: true, + + _startChildren: function(){ + // summary: + // Call startup() on all children including non _Widget ones like dojo.dnd.Source objects + + // This starts all the widgets + dojo.forEach(this.getChildren(), function(child){ + child.startup(); + child._started = true; + }); + }, + + startup: function(){ + // summary: + // See `dijit.layout._LayoutWidget.startup` for description. + // Although ContentPane doesn't extend _LayoutWidget, it does implement + // the same API. + + if(this._started){ return; } + + var parent = dijit._Contained.prototype.getParent.call(this); + this._childOfLayoutWidget = parent && parent.isLayoutContainer; + + // I need to call resize() on my child/children (when I become visible), unless + // I'm the child of a layout widget in which case my parent will call resize() on me and I'll do it then. + this._needLayout = !this._childOfLayoutWidget; + + this.inherited(arguments); + + this._startChildren(); + + if(this._isShown()){ + this._onShow(); + } + + if(!this._childOfLayoutWidget){ + // If my parent isn't a layout container, since my style *may be* width=height=100% + // or something similar (either set directly or via a CSS class), + // monitor when my size changes so that I can re-layout. + // For browsers where I can't directly monitor when my size changes, + // monitor when the viewport changes size, which *may* indicate a size change for me. + this.connect(dojo.isIE ? this.domNode : dojo.global, 'onresize', function(){ + // Using function(){} closure to ensure no arguments to resize. + this._needLayout = !this._childOfLayoutWidget; + this.resize(); + }); + } + }, + + _checkIfSingleChild: function(){ + // summary: + // Test if we have exactly one visible widget as a child, + // and if so assume that we are a container for that widget, + // and should propagate startup() and resize() calls to it. + // Skips over things like data stores since they aren't visible. + + var childNodes = dojo.query("> *", this.containerNode).filter(function(node){ + return node.tagName !== "SCRIPT"; // or a regexp for hidden elements like script|area|map|etc.. + }), + childWidgetNodes = childNodes.filter(function(node){ + return dojo.hasAttr(node, "data-dojo-type") || dojo.hasAttr(node, "dojoType") || dojo.hasAttr(node, "widgetId"); + }), + candidateWidgets = dojo.filter(childWidgetNodes.map(dijit.byNode), function(widget){ + return widget && widget.domNode && widget.resize; + }); + + if( + // all child nodes are widgets + childNodes.length == childWidgetNodes.length && + + // all but one are invisible (like dojo.data) + candidateWidgets.length == 1 + ){ + this._singleChild = candidateWidgets[0]; + }else{ + delete this._singleChild; + } + + // So we can set overflow: hidden to avoid a safari bug w/scrollbars showing up (#9449) + dojo.toggleClass(this.containerNode, this.baseClass + "SingleChild", !!this._singleChild); + }, + + resize: function(changeSize, resultSize){ + // summary: + // See `dijit.layout._LayoutWidget.resize` for description. + // Although ContentPane doesn't extend _LayoutWidget, it does implement + // the same API. + + // For the TabContainer --> BorderContainer --> ContentPane case, _onShow() is + // never called, so resize() is our trigger to do the initial href download (see [20099]). + // However, don't load href for closed TitlePanes. + if(!this._wasShown && this.open !== false){ + this._onShow(); + } + + this._resizeCalled = true; + + this._scheduleLayout(changeSize, resultSize); + }, + + _scheduleLayout: function(changeSize, resultSize){ + // summary: + // Resize myself, and call resize() on each of my child layout widgets, either now + // (if I'm currently visible) or when I become visible + if(this._isShown()){ + this._layout(changeSize, resultSize); + }else{ + this._needLayout = true; + this._changeSize = changeSize; + this._resultSize = resultSize; + } + }, + + _layout: function(changeSize, resultSize){ + // summary: + // Resize myself according to optional changeSize/resultSize parameters, like a layout widget. + // Also, since I am a Container widget, each of my children expects me to + // call resize() or layout() on them. + // + // Should be called on initialization and also whenever we get new content + // (from an href, or from set('content', ...))... but deferred until + // the ContentPane is visible + + // Set margin box size, unless it wasn't specified, in which case use current size. + if(changeSize){ + dojo.marginBox(this.domNode, changeSize); + } + + // Compute content box size of containerNode in case we [later] need to size our single child. + var cn = this.containerNode; + if(cn === this.domNode){ + // If changeSize or resultSize was passed to this method and this.containerNode == + // this.domNode then we can compute the content-box size without querying the node, + // which is more reliable (similar to LayoutWidget.resize) (see for example #9449). + var mb = resultSize || {}; + dojo.mixin(mb, changeSize || {}); // changeSize overrides resultSize + if(!("h" in mb) || !("w" in mb)){ + mb = dojo.mixin(dojo.marginBox(cn), mb); // just use dojo.marginBox() to fill in missing values } - this.inherited(arguments); + this._contentBox = dijit.layout.marginBox2contentBox(cn, mb); + }else{ + this._contentBox = dojo.contentBox(cn); } + + this._layoutChildren(); + + delete this._needLayout; + }, + + _layoutChildren: function(){ + // Call _checkIfSingleChild() again in case app has manually mucked w/the content + // of the ContentPane (rather than changing it through the set("content", ...) API. + if(this.doLayout){ + this._checkIfSingleChild(); + } + + if(this._singleChild && this._singleChild.resize){ + var cb = this._contentBox || dojo.contentBox(this.containerNode); + + // note: if widget has padding this._contentBox will have l and t set, + // but don't pass them to resize() or it will doubly-offset the child + this._singleChild.resize({w: cb.w, h: cb.h}); + }else{ + // All my child widgets are independently sized (rather than matching my size), + // but I still need to call resize() on each child to make it layout. + dojo.forEach(this.getChildren(), function(widget){ + if(widget.resize){ + widget.resize(); + } + }); + } + }, + + _isShown: function(){ + // summary: + // Returns true if the content is currently shown. + // description: + // If I am a child of a layout widget then it actually returns true if I've ever been visible, + // not whether I'm currently visible, since that's much faster than tracing up the DOM/widget + // tree every call, and at least solves the performance problem on page load by deferring loading + // hidden ContentPanes until they are first shown + + if(this._childOfLayoutWidget){ + // If we are TitlePane, etc - we return that only *IF* we've been resized + if(this._resizeCalled && "open" in this){ + return this.open; + } + return this._resizeCalled; + }else if("open" in this){ + return this.open; // for TitlePane, etc. + }else{ + var node = this.domNode, parent = this.domNode.parentNode; + return (node.style.display != 'none') && (node.style.visibility != 'hidden') && !dojo.hasClass(node, "dijitHidden") && + parent && parent.style && (parent.style.display != 'none'); + } + }, + + _onShow: function(){ + // summary: + // Called when the ContentPane is made visible + // description: + // For a plain ContentPane, this is called on initialization, from startup(). + // If the ContentPane is a hidden pane of a TabContainer etc., then it's + // called whenever the pane is made visible. + // + // Does layout/resize of child widget(s) + + if(this._needLayout){ + // If a layout has been scheduled for when we become visible, do it now + this._layout(this._changeSize, this._resultSize); + } + + this.inherited(arguments); + + // Need to keep track of whether ContentPane has been shown (which is different than + // whether or not it's currently visible). + this._wasShown = true; } -); +}); } @@ -8939,24 +9644,25 @@ if(!dojo._hasResource["dojo.html"]){ //_hasResource checks added by build. Do no dojo._hasResource["dojo.html"] = true; dojo.provide("dojo.html"); -// the parser might be needed.. - +dojo.getObject("html", true, dojo); + +// the parser might be needed.. (function(){ // private scope, sort of a namespace // idCounter is incremented with each instantiation to allow asignment of a unique id for tracking, logging purposes - var idCounter = 0, + var idCounter = 0, d = dojo; dojo.html._secureForInnerHtml = function(/*String*/ cont){ // summary: // removes !DOCTYPE and title elements from the html string. - // + // // khtml is picky about dom faults, you can't attach a style or <title> node as child of body // must go into head, so we need to cut out those tags // cont: // An html string for insertion into the dom - // + // return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig, ""); // String }; @@ -8976,7 +9682,7 @@ dojo.provide("dojo.html"); // node: // the parent element // content: - // the content to be set on the parent element. + // the content to be set on the parent element. // This can be an html string, a node reference or a NodeList, dojo.NodeList, Array or other enumerable list of nodes // always empty @@ -9002,7 +9708,7 @@ dojo.provide("dojo.html"); }; // we wrap up the content-setting operation in a object - dojo.declare("dojo.html._ContentSetter", null, + dojo.declare("dojo.html._ContentSetter", null, { // node: DomNode|String // An node which will be the parent element that we set content into @@ -9013,11 +9719,11 @@ dojo.provide("dojo.html"); content: "", // id: String? - // Usually only used internally, and auto-generated with each instance + // Usually only used internally, and auto-generated with each instance id: "", // cleanContent: Boolean - // Should the content be treated as a full html document, + // Should the content be treated as a full html document, // and the real content stripped of <html>, <body> wrapper before injection cleanContent: false, @@ -9028,6 +9734,17 @@ dojo.provide("dojo.html"); // parseContent: Boolean // Should the node by passed to the parser after the new content is set parseContent: false, + + // parserScope: String + // Flag passed to parser. Root for attribute names to search for. If scopeName is dojo, + // will search for data-dojo-type (or dojoType). For backwards compatibility + // reasons defaults to dojo._scopeName (which is "dojo" except when + // multi-version support is used, when it will be something like dojo16, dojo20, etc.) + parserScope: dojo._scopeName, + + // startup: Boolean + // Start the child widgets after parsing them. Only obeyed if parseContent is true. + startup: true, // lifecyle methods constructor: function(/* Object */params, /* String|DomNode */node){ @@ -9045,14 +9762,14 @@ dojo.provide("dojo.html"); if(!this.id){ this.id = [ "Setter", - (node) ? node.id || node.tagName : "", + (node) ? node.id || node.tagName : "", idCounter++ ].join("_"); } }, set: function(/* String|DomNode|NodeList? */ cont, /* Object? */ params){ // summary: - // front-end to the set-content sequence + // front-end to the set-content sequence // cont: // An html string, node or enumerable list of nodes for insertion into the dom // If not provided, the object's content property will be used @@ -9072,9 +9789,9 @@ dojo.provide("dojo.html"); }, setContent: function(){ // summary: - // sets the content on the node + // sets the content on the node - var node = this.node; + var node = this.node; if(!node) { // can't proceed throw new Error(this.declaredClass + ": setContent given no node"); @@ -9086,7 +9803,7 @@ dojo.provide("dojo.html"); // like for instance if domNode is a UL and we try append a DIV // FIXME: need to allow the user to provide a content error message string - var errMess = this.onContentError(e); + var errMess = this.onContentError(e); try{ node.innerHTML = errMess; }catch(e){ @@ -9102,7 +9819,7 @@ dojo.provide("dojo.html"); // cleanly empty out existing content // destroy any widgets from a previous run - // NOTE: if you dont want this you'll need to empty + // NOTE: if you dont want this you'll need to empty // the parseResults array property yourself to avoid bad things happenning if(this.parseResults && this.parseResults.length) { dojo.forEach(this.parseResults, function(w) { @@ -9112,17 +9829,17 @@ dojo.provide("dojo.html"); }); delete this.parseResults; } - // this is fast, but if you know its already empty or safe, you could + // this is fast, but if you know its already empty or safe, you could // override empty to skip this step dojo.html._emptyNode(this.node); }, onBegin: function(){ // summary - // Called after instantiation, but before set(); - // It allows modification of any of the object properties + // Called after instantiation, but before set(); + // It allows modification of any of the object properties // - including the node and content provided - before the set operation actually takes place - // This default implementation checks for cleanContent and extractContent flags to + // This default implementation checks for cleanContent and extractContent flags to // optionally pre-process html string content var cont = this.content; @@ -9160,21 +9877,21 @@ dojo.provide("dojo.html"); // summary // manually reset the Setter instance if its being re-used for example for another set() // description - // tearDown() is not called automatically. + // tearDown() is not called automatically. // In normal use, the Setter instance properties are simply allowed to fall out of scope // but the tearDown method can be called to explicitly reset this instance. - delete this.parseResults; - delete this.node; - delete this.content; + delete this.parseResults; + delete this.node; + delete this.content; }, onContentError: function(err){ - return "Error occured setting content: " + err; + return "Error occured setting content: " + err; }, _mixin: function(params){ // mix properties/methods into the instance - // TODO: the intention with tearDown is to put the Setter's state + // TODO: the intention with tearDown is to put the Setter's state // back to that of the original constructor (vs. deleting/resetting everything regardless of ctor params) // so we could do something here to move the original properties aside for later restoration var empty = {}, key; @@ -9182,21 +9899,28 @@ dojo.provide("dojo.html"); if(key in empty){ continue; } // TODO: here's our opportunity to mask the properties we dont consider configurable/overridable // .. but history shows we'll almost always guess wrong - this[key] = params[key]; + this[key] = params[key]; } }, _parse: function(){ - // summary: + // summary: // runs the dojo parser over the node contents, storing any results in this.parseResults // Any errors resulting from parsing are passed to _onError for handling var rootNode = this.node; try{ // store the results (widgets, whatever) for potential retrieval + var inherited = {}; + dojo.forEach(["dir", "lang", "textDir"], function(name){ + if(this[name]){ + inherited[name] = this[name]; + } + }, this); this.parseResults = dojo.parser.parse({ rootNode: rootNode, - dir: this.dir, - lang: this.lang + noStart: !this.startup, + inherited: inherited, + scope: this.parserScope }); }catch(e){ this._onError('Content', e, "Error parsing in _ContentSetter#"+this.id); @@ -9229,29 +9953,29 @@ dojo.provide("dojo.html"); // node: // the parent element that will receive the content // cont: - // the content to be set on the parent element. + // the content to be set on the parent element. // This can be an html string, a node reference or a NodeList, dojo.NodeList, Array or other enumerable list of nodes - // params: + // params: // Optional flags/properties to configure the content-setting. See dojo.html._ContentSetter // example: // A safe string/node/nodelist content replacement/injection with hooks for extension - // Example Usage: - // dojo.html.set(node, "some string"); - // dojo.html.set(node, contentNode, {options}); - // dojo.html.set(node, myNode.childNodes, {options}); + // Example Usage: + // dojo.html.set(node, "some string"); + // dojo.html.set(node, contentNode, {options}); + // dojo.html.set(node, myNode.childNodes, {options}); if(undefined == cont){ console.warn("dojo.html.set: no cont argument provided, using empty string"); cont = ""; - } + } if(!params){ // simple and fast return dojo.html._setNodeContent(node, cont, true); - }else{ + }else{ // more options but slower // note the arguments are reversed in order, to match the convention for instantiation via the parser - var op = new dojo.html._ContentSetter(dojo.mixin( - params, - { content: cont, node: node } + var op = new dojo.html._ContentSetter(dojo.mixin( + params, + { content: cont, node: node } )); return op.set(); } @@ -9266,35 +9990,39 @@ dojo.provide("dijit.layout.ContentPane"); - // for dijit.layout.marginBox2contentBox() - - dojo.declare( - "dijit.layout.ContentPane", dijit._Widget, + "dijit.layout.ContentPane", [dijit._Widget, dijit.layout._ContentPaneResizeMixin], { // summary: - // A widget that acts as a container for mixed HTML and widgets, and includes an Ajax interface + // A widget containing an HTML fragment, specified inline + // or by uri. Fragment may include widgets. + // // description: - // A widget that can be used as a stand alone widget - // or as a base class for other widgets. + // This widget embeds a document fragment in the page, specified + // either by uri, javascript generated markup or DOM reference. + // Any widgets within this content are instantiated and managed, + // but laid out according to the HTML structure. Unlike IFRAME, + // ContentPane embeds a document fragment as would be found + // inside the BODY tag of a full HTML document. It should not + // contain the HTML, HEAD, or BODY tags. + // For more advanced functionality with scripts and + // stylesheets, see dojox.layout.ContentPane. This widget may be + // used stand alone or as a base class for other widgets. + // ContentPane is useful as a child of other layout containers + // such as BorderContainer or TabContainer, but note that those + // widgets can contain any widget as a child. // - // Handles replacement of document fragment using either external uri or javascript - // generated markup or DOM content, instantiating widgets within that content. - // Don't confuse it with an iframe, it only needs/wants document fragments. - // It's useful as a child of LayoutContainer, SplitContainer, or TabContainer. - // But note that those classes can contain any widget as a child. // example: // Some quick samples: - // To change the innerHTML use .set('content', '<b>new content</b>') + // To change the innerHTML: cp.set('content', '<b>new content</b>') // - // Or you can send it a NodeList, .set('content', dojo.query('div [class=selected]', userSelection)) - // please note that the nodes in NodeList will copied, not moved + // Or you can send it a NodeList: cp.set('content', dojo.query('div [class=selected]', userSelection)) // - // To do a ajax update use .set('href', url) + // To do an ajax update: cp.set('href', url) // href: String // The href of the content that displays now. @@ -9306,7 +10034,7 @@ dojo.declare( /*===== // content: String || DomNode || NodeList || dijit._Widget // The innerHTML of the ContentPane. - // Note that the initialization parameter / argument to attr("content", ...) + // Note that the initialization parameter / argument to set("content", ...) // can be a String, DomNode, Nodelist, or _Widget. content: "", =====*/ @@ -9320,6 +10048,13 @@ dojo.declare( // Parse content and create the widgets, if any. parseOnLoad: true, + // parserScope: String + // Flag passed to parser. Root for attribute names to search for. If scopeName is dojo, + // will search for data-dojo-type (or dojoType). For backwards compatibility + // reasons defaults to dojo._scopeName (which is "dojo" except when + // multi-version support is used, when it will be something like dojo16, dojo20, etc.) + parserScope: dojo._scopeName, + // preventCache: Boolean // Prevent caching of data from href's by appending a timestamp to the href. preventCache: false, @@ -9343,7 +10078,7 @@ dojo.declare( // isLoaded: [readonly] Boolean // True if the ContentPane has data in it, either specified // during initialization (via href or inline content), or set - // via attr('content', ...) / attr('href', ...) + // via set('content', ...) / set('href', ...) // // False if it doesn't have any content, or if ContentPane is // still in the process of downloading href. @@ -9351,35 +10086,19 @@ dojo.declare( baseClass: "dijitContentPane", - // doLayout: Boolean - // - false - don't adjust size of children - // - true - if there is a single visible child widget, set it's size to - // however big the ContentPane is - doLayout: true, - // ioArgs: Object // Parameters to pass to xhrGet() request, for example: // | <div dojoType="dijit.layout.ContentPane" href="./bar" ioArgs="{timeout: 500}"> ioArgs: {}, - // isContainer: [protected] Boolean - // Indicates that this widget acts as a "parent" to the descendant widgets. - // When the parent is started it will call startup() on the child widgets. - // See also `isLayoutContainer`. - isContainer: true, - - // isLayoutContainer: [protected] Boolean - // Indicates that this widget will call resize() on it's child widgets - // when they become visible. - isLayoutContainer: true, - // onLoadDeferred: [readonly] dojo.Deferred - // This is the `dojo.Deferred` returned by attr('href', ...) and refresh(). + // This is the `dojo.Deferred` returned by set('href', ...) and refresh(). // Calling onLoadDeferred.addCallback() or addErrback() registers your - // callback to be called only once, when the prior attr('href', ...) call or + // callback to be called only once, when the prior set('href', ...) call or // the initial href parameter to the constructor finishes loading. // - // This is different than an onLoad() handler which gets called any time any href is loaded. + // This is different than an onLoad() handler which gets called any time any href + // or content is loaded. onLoadDeferred: null, // Override _Widget's attributeMap because we don't want the title attribute (used to specify @@ -9389,99 +10108,71 @@ dojo.declare( title: [] }), + // Flag to parser that I'll parse my contents, so it shouldn't. + stopParser: true, + + // template: [private] Boolean + // Flag from the parser that this ContentPane is inside a template + // so the contents are pre-parsed. + // (TODO: this declaration can be commented out in 2.0) + template: false, + + create: function(params, srcNodeRef){ + // Convert a srcNodeRef argument into a content parameter, so that the original contents are + // processed in the same way as contents set via set("content", ...), calling the parser etc. + // Avoid modifying original params object since that breaks NodeList instantiation, see #11906. + if((!params || !params.template) && srcNodeRef && !("href" in params) && !("content" in params)){ + var df = dojo.doc.createDocumentFragment(); + srcNodeRef = dojo.byId(srcNodeRef) + while(srcNodeRef.firstChild){ + df.appendChild(srcNodeRef.firstChild); + } + params = dojo.delegate(params, {content: df}); + } + this.inherited(arguments, [params, srcNodeRef]); + }, + postMixInProperties: function(){ this.inherited(arguments); var messages = dojo.i18n.getLocalization("dijit", "loading", this.lang); this.loadingMessage = dojo.string.substitute(this.loadingMessage, messages); this.errorMessage = dojo.string.substitute(this.errorMessage, messages); - - // Detect if we were initialized with data - if(!this.href && this.srcNodeRef && this.srcNodeRef.innerHTML){ - this.isLoaded = true; - } }, buildRendering: function(){ - // Overrides Widget.buildRendering(). - // Since we have no template we need to set this.containerNode ourselves. - // For subclasses of ContentPane do have a template, does nothing. this.inherited(arguments); + + // Since we have no template we need to set this.containerNode ourselves, to make getChildren() work. + // For subclasses of ContentPane that do have a template, does nothing. if(!this.containerNode){ - // make getDescendants() work this.containerNode = this.domNode; } - }, - postCreate: function(){ // remove the title attribute so it doesn't show up when hovering - // over a node + // over a node (TODO: remove in 2.0, no longer needed after #11490) this.domNode.title = ""; if(!dojo.attr(this.domNode,"role")){ dijit.setWaiRole(this.domNode, "group"); } - - dojo.addClass(this.domNode, this.baseClass); }, - startup: function(){ + _startChildren: function(){ // summary: - // See `dijit.layout._LayoutWidget.startup` for description. - // Although ContentPane doesn't extend _LayoutWidget, it does implement - // the same API. - if(this._started){ return; } - - var parent = dijit._Contained.prototype.getParent.call(this); - this._childOfLayoutWidget = parent && parent.isLayoutContainer; - - // I need to call resize() on my child/children (when I become visible), unless - // I'm the child of a layout widget in which case my parent will call resize() on me and I'll do it then. - this._needLayout = !this._childOfLayoutWidget; - - if(this.isLoaded){ - dojo.forEach(this.getChildren(), function(child){ - child.startup(); - }); - } - - if(this._isShown() || this.preload){ - this._onShow(); - } + // Call startup() on all children including non _Widget ones like dojo.dnd.Source objects + // This starts all the widgets this.inherited(arguments); - }, - - _checkIfSingleChild: function(){ - // summary: - // Test if we have exactly one visible widget as a child, - // and if so assume that we are a container for that widget, - // and should propogate startup() and resize() calls to it. - // Skips over things like data stores since they aren't visible. - - var childNodes = dojo.query("> *", this.containerNode).filter(function(node){ - return node.tagName !== "SCRIPT"; // or a regexp for hidden elements like script|area|map|etc.. - }), - childWidgetNodes = childNodes.filter(function(node){ - return dojo.hasAttr(node, "dojoType") || dojo.hasAttr(node, "widgetId"); - }), - candidateWidgets = dojo.filter(childWidgetNodes.map(dijit.byNode), function(widget){ - return widget && widget.domNode && widget.resize; - }); - if( - // all child nodes are widgets - childNodes.length == childWidgetNodes.length && - - // all but one are invisible (like dojo.data) - candidateWidgets.length == 1 - ){ - this._singleChild = candidateWidgets[0]; - }else{ - delete this._singleChild; + // And this catches stuff like dojo.dnd.Source + if(this._contentSetter){ + dojo.forEach(this._contentSetter.parseResults, function(obj){ + if(!obj._started && !obj._destroyed && dojo.isFunction(obj.startup)){ + obj.startup(); + obj._started = true; + } + }, this); } - - // So we can set overflow: hidden to avoid a safari bug w/scrollbars showing up (#9449) - dojo.toggleClass(this.containerNode, this.baseClass + "SingleChild", !!this._singleChild); }, setHref: function(/*String|Uri*/ href){ @@ -9492,23 +10183,25 @@ dojo.declare( }, _setHrefAttr: function(/*String|Uri*/ href){ // summary: - // Hook so attr("href", ...) works. + // Hook so set("href", ...) works. // description: // Reset the (external defined) content of this pane and replace with new url // Note: It delays the download until widget is shown if preload is false. // href: // url to the page you want to get, must be within the same domain as your mainpage - // Cancel any in-flight requests (an attr('href') will cancel any in-flight attr('href', ...)) + // Cancel any in-flight requests (a set('href', ...) will cancel any in-flight set('href', ...)) this.cancel(); this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel")); + this.onLoadDeferred.addCallback(dojo.hitch(this, "onLoad")); - this.href = href; + this._set("href", href); // _setHrefAttr() is called during creation and by the user, after creation. - // only in the second case do we actually load the URL; otherwise it's done in startup() - if(this._created && (this.preload || this._isShown())){ + // Assuming preload == false, only in the second case do we actually load the URL; + // otherwise it's done in startup(), and only if this widget is shown. + if(this.preload || (this._created && this._isShown())){ this._load(); }else{ // Set flag to indicate that href needs to be loaded the next time the @@ -9527,7 +10220,7 @@ dojo.declare( }, _setContentAttr: function(/*String|DomNode|Nodelist*/data){ // summary: - // Hook to make attr("content", ...) work. + // Hook to make set("content", ...) work. // Replaces old content with data content, include style classes from old content // data: // the new Content may be String, DomNode or NodeList @@ -9537,24 +10230,30 @@ dojo.declare( // clear href so we can't run refresh and clear content // refresh should only work if we downloaded the content - this.href = ""; + this._set("href", ""); - // Cancel any in-flight requests (an attr('content') will cancel any in-flight attr('href', ...)) + // Cancel any in-flight requests (a set('content', ...) will cancel any in-flight set('href', ...)) this.cancel(); // Even though user is just setting content directly, still need to define an onLoadDeferred // because the _onLoadHandler() handler is still getting called from setContent() this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel")); + if(this._created){ + // For back-compat reasons, call onLoad() for set('content', ...) + // calls but not for content specified in srcNodeRef (ie: <div dojoType=ContentPane>...</div>) + // or as initialization parameter (ie: new ContentPane({content: ...}) + this.onLoadDeferred.addCallback(dojo.hitch(this, "onLoad")); + } this._setContent(data || ""); - this._isDownloaded = false; // mark that content is from a attr('content') not an attr('href') + this._isDownloaded = false; // mark that content is from a set('content') not a set('href') return this.onLoadDeferred; // dojo.Deferred }, _getContentAttr: function(){ // summary: - // Hook to make attr("content") work + // Hook to make get("content") work return this.containerNode.innerHTML; }, @@ -9587,69 +10286,6 @@ dojo.declare( this.inherited(arguments); }, - resize: function(changeSize, resultSize){ - // summary: - // See `dijit.layout._LayoutWidget.resize` for description. - // Although ContentPane doesn't extend _LayoutWidget, it does implement - // the same API. - - // For the TabContainer --> BorderContainer --> ContentPane case, _onShow() is - // never called, so resize() is our trigger to do the initial href download. - if(!this._wasShown){ - this._onShow(); - } - - this._resizeCalled = true; - - // Set margin box size, unless it wasn't specified, in which case use current size. - if(changeSize){ - dojo.marginBox(this.domNode, changeSize); - } - - // Compute content box size of containerNode in case we [later] need to size our single child. - var cn = this.containerNode; - if(cn === this.domNode){ - // If changeSize or resultSize was passed to this method and this.containerNode == - // this.domNode then we can compute the content-box size without querying the node, - // which is more reliable (similar to LayoutWidget.resize) (see for example #9449). - var mb = resultSize || {}; - dojo.mixin(mb, changeSize || {}); // changeSize overrides resultSize - if(!("h" in mb) || !("w" in mb)){ - mb = dojo.mixin(dojo.marginBox(cn), mb); // just use dojo.marginBox() to fill in missing values - } - this._contentBox = dijit.layout.marginBox2contentBox(cn, mb); - }else{ - this._contentBox = dojo.contentBox(cn); - } - - // Make my children layout, or size my single child widget - this._layoutChildren(); - }, - - _isShown: function(){ - // summary: - // Returns true if the content is currently shown. - // description: - // If I am a child of a layout widget then it actually returns true if I've ever been visible, - // not whether I'm currently visible, since that's much faster than tracing up the DOM/widget - // tree every call, and at least solves the performance problem on page load by deferring loading - // hidden ContentPanes until they are first shown - - if(this._childOfLayoutWidget){ - // If we are TitlePane, etc - we return that only *IF* we've been resized - if(this._resizeCalled && "open" in this){ - return this.open; - } - return this._resizeCalled; - }else if("open" in this){ - return this.open; // for TitlePane, etc. - }else{ - // TODO: with _childOfLayoutWidget check maybe this branch no longer necessary? - var node = this.domNode; - return (node.style.display != 'none') && (node.style.visibility != 'hidden') && !dojo.hasClass(node, "dijitHidden"); - } - }, - _onShow: function(){ // summary: // Called when the ContentPane is made visible @@ -9661,26 +10297,15 @@ dojo.declare( // Does necessary processing, including href download and layout/resize of // child widget(s) + this.inherited(arguments); + if(this.href){ if(!this._xhrDfd && // if there's an href that isn't already being loaded (!this.isLoaded || this._hrefChanged || this.refreshOnShow) ){ - this.refresh(); - } - }else{ - // If we are the child of a layout widget then the layout widget will call resize() on - // us, and then we will size our child/children. Otherwise, we need to do it now. - if(!this._childOfLayoutWidget && this._needLayout){ - // If a layout has been scheduled for when we become visible, do it now - this._layoutChildren(); + return this.refresh(); // If child has an href, promise that fires when the load is complete } } - - this.inherited(arguments); - - // Need to keep track of whether ContentPane has been shown (which is different than - // whether or not it's currently visible). - this._wasShown = true; }, refresh: function(){ @@ -9695,8 +10320,9 @@ dojo.declare( this.cancel(); this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel")); + this.onLoadDeferred.addCallback(dojo.hitch(this, "onLoad")); this._load(); - return this.onLoadDeferred; + return this.onLoadDeferred; // If child has an href, promise that fires when refresh is complete }, _load: function(){ @@ -9746,10 +10372,9 @@ dojo.declare( _onLoadHandler: function(data){ // summary: // This is called whenever new content is being loaded - this.isLoaded = true; + this._set("isLoaded", true); try{ this.onLoadDeferred.callback(data); - this.onLoad(data); }catch(e){ console.error('Error '+this.widgetId+' running custom onLoad code: ' + e.message); } @@ -9758,7 +10383,7 @@ dojo.declare( _onUnloadHandler: function(){ // summary: // This is called whenever the content is being unloaded - this.isLoaded = false; + this._set("isLoaded", false); try{ this.onUnload(); }catch(e){ @@ -9804,7 +10429,7 @@ dojo.declare( delete this._singleChild; }, - _setContent: function(cont, isFakeContent){ + _setContent: function(/*String|DocumentFragment*/ cont, /*Boolean*/ isFakeContent){ // summary: // Insert the content into the container node @@ -9839,31 +10464,31 @@ dojo.declare( cleanContent: this.cleanContent, extractContent: this.extractContent, parseContent: this.parseOnLoad, + parserScope: this.parserScope, + startup: false, dir: this.dir, lang: this.lang }, this._contentSetterParams || {}); - dojo.mixin(setter, setterParams); - - setter.set( (dojo.isObject(cont) && cont.domNode) ? cont.domNode : cont ); + setter.set( (dojo.isObject(cont) && cont.domNode) ? cont.domNode : cont, setterParams ); // setter params must be pulled afresh from the ContentPane each time delete this._contentSetterParams; - if(!isFakeContent){ - // Startup each top level child widget (and they will start their children, recursively) - dojo.forEach(this.getChildren(), function(child){ - // The parser has already called startup on all widgets *without* a getParent() method - if(!this.parseOnLoad || child.getParent){ - child.startup(); - } - }, this); + if(this.doLayout){ + this._checkIfSingleChild(); + } - // Call resize() on each of my child layout widgets, - // or resize() on my single child layout widget... - // either now (if I'm currently visible) - // or when I become visible - this._scheduleLayout(); + if(!isFakeContent){ + if(this._started){ + // Startup each top level child widget (and they will start their children, recursively) + this._startChildren(); + + // Call resize() on each of my child layout widgets, + // or resize() on my single child layout widget... + // either now (if I'm currently visible) or when I become visible + this._scheduleLayout(); + } this._onLoadHandler(cont); } @@ -9873,7 +10498,7 @@ dojo.declare( this.onLoadDeferred.errback(err); // shows user the string that is returned by on[type]Error - // overide on[type]Error and return your own string to customize + // override on[type]Error and return your own string to customize var errText = this['on' + type + 'Error'].call(this, err); if(consoleText){ console.error(consoleText, err); @@ -9882,48 +10507,6 @@ dojo.declare( } }, - _scheduleLayout: function(){ - // summary: - // Call resize() on each of my child layout widgets, either now - // (if I'm currently visible) or when I become visible - if(this._isShown()){ - this._layoutChildren(); - }else{ - this._needLayout = true; - } - }, - - _layoutChildren: function(){ - // summary: - // Since I am a Container widget, each of my children expects me to - // call resize() or layout() on them. - // description: - // Should be called on initialization and also whenever we get new content - // (from an href, or from attr('content', ...))... but deferred until - // the ContentPane is visible - - if(this.doLayout){ - this._checkIfSingleChild(); - } - - if(this._singleChild && this._singleChild.resize){ - var cb = this._contentBox || dojo.contentBox(this.containerNode); - - // note: if widget has padding this._contentBox will have l and t set, - // but don't pass them to resize() or it will doubly-offset the child - this._singleChild.resize({w: cb.w, h: cb.h}); - }else{ - // All my child widgets are independently sized (rather than matching my size), - // but I still need to call resize() on each child to make it layout. - dojo.forEach(this.getChildren(), function(widget){ - if(widget.resize){ - widget.resize(); - } - }); - } - delete this._needLayout; - }, - // EVENT's, should be overide-able onLoad: function(data){ // summary: @@ -10035,12 +10618,16 @@ dojo.declare( // Set by `dijit._DialogMixin._getFocusItems`. _lastFocusItem: null, - templateString: dojo.cache("dijit", "templates/TooltipDialog.html", "<div waiRole=\"presentation\">\n\t<div class=\"dijitTooltipContainer\" waiRole=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" tabindex=\"-1\" waiRole=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" waiRole=\"presentation\"></div>\n</div>\n"), + templateString: dojo.cache("dijit", "templates/TooltipDialog.html", "<div role=\"presentation\" tabIndex=\"-1\">\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" role=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\"></div>\n</div>\n"), + + _setTitleAttr: function(/*String*/ title){ + this.containerNode.title = title; + this._set("title", title) + }, postCreate: function(){ this.inherited(arguments); this.connect(this.containerNode, "onkeypress", "_onKey"); - this.containerNode.title = this.title; }, orient: function(/*DomNode*/ node, /*String*/ aroundCorner, /*String*/ corner){ @@ -10050,13 +10637,19 @@ dojo.declare( // directly. // tags: // protected - var c = this._currentOrientClass; - if(c){ - dojo.removeClass(this.domNode, c); - } - c = "dijitTooltipAB"+(corner.charAt(1) == 'L'?"Left":"Right")+" dijitTooltip"+(corner.charAt(0) == 'T' ? "Below" : "Above"); - dojo.addClass(this.domNode, c); - this._currentOrientClass = c; + var newC = "dijitTooltipAB" + (corner.charAt(1) == 'L' ? "Left" : "Right") + + " dijitTooltip" + + (corner.charAt(0) == 'T' ? "Below" : "Above"); + + dojo.replaceClass(this.domNode, newC, this._currentOrientClass || ""); + this._currentOrientClass = newC; + }, + + focus: function(){ + // summary: + // Focus on first field + this._getFocusItems(this.containerNode); + dijit.focus(this._firstFocusItem); }, onOpen: function(/*Object*/ pos){ @@ -10068,11 +10661,6 @@ dojo.declare( this.orient(this.domNode,pos.aroundCorner, pos.corner); this._onShow(); // lazy load trigger - - if(this.autofocus){ - this._getFocusItems(this.containerNode); - dijit.focus(this._firstFocusItem); - } }, onClose: function(){ @@ -10141,6 +10729,8 @@ dojo.provide("dijit.Dialog"); +// dijit/TooltipDialog required for back-compat. TODO: remove in 2.0 + /*===== dijit._underlay = function(kwArgs){ // summary: @@ -10152,7 +10742,6 @@ dijit._underlay = function(kwArgs){ // or subclass thereof is shown. }; =====*/ - dojo.declare( "dijit._DialogBase", [dijit._Templated, dijit.form._FormMixin, dijit._DialogMixin, dijit._CssStateMixin], @@ -10173,7 +10762,7 @@ dojo.declare( // | dojo.body().appendChild(foo.domNode); // | foo.startup(); - templateString: dojo.cache("dijit", "templates/Dialog.html", "<div class=\"dijitDialog\" tabindex=\"-1\" waiRole=\"dialog\" waiState=\"labelledby-${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"onclick: onCancel\" title=\"${buttonCancel}\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"), + templateString: dojo.cache("dijit", "templates/Dialog.html", "<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"), baseClass: "dijitDialog", @@ -10189,7 +10778,7 @@ dojo.declare( "aria-describedby":"" }), - // open: Boolean + // open: [readonly] Boolean // True if Dialog is currently displayed on screen. open: false, @@ -10209,12 +10798,12 @@ dojo.declare( // False will disable autofocusing. Default: true autofocus: true, - // _firstFocusItem: [private] [readonly] DomNode + // _firstFocusItem: [private readonly] DomNode // The pointer to the first focusable node in the dialog. // Set by `dijit._DialogMixin._getFocusItems`. _firstFocusItem: null, - // _lastFocusItem: [private] [readonly] DomNode + // _lastFocusItem: [private readonly] DomNode // The pointer to which node has focus prior to our dialog. // Set by `dijit._DialogMixin._getFocusItems`. _lastFocusItem: null, @@ -10266,14 +10855,14 @@ dojo.declare( // summary: // Called when data has been loaded from an href. // Unlike most other callbacks, this function can be connected to (via `dojo.connect`) - // but should *not* be overriden. + // but should *not* be overridden. // tags: // callback // when href is specified we need to reposition the dialog after the data is loaded // and find the focusable elements this._position(); - if(this.autofocus){ + if(this.autofocus && dijit._DialogLevelManager.isTop(this)){ this._getFocusItems(this.domNode); dijit.focus(this._firstFocusItem); } @@ -10304,7 +10893,7 @@ dojo.declare( this._moveable = (dojo.isIE == 6) ? new dojo.dnd.TimedMoveable(node, { handle: this.titleBar }) : // prevent overload, see #5285 new dojo.dnd.Moveable(node, { handle: this.titleBar, timeout: 0 }); - dojo.subscribe("/dnd/move/stop",this,"_endDrag"); + this._dndListener = dojo.subscribe("/dnd/move/stop",this,"_endDrag"); }else{ dojo.addClass(node,"dijitDialogFixed"); } @@ -10313,95 +10902,6 @@ dojo.declare( dialogId: this.id, "class": dojo.map(this["class"].split(/\s/), function(s){ return s+"_underlay"; }).join(" ") }; - - this._fadeIn = dojo.fadeIn({ - node: node, - duration: this.duration, - beforeBegin: dojo.hitch(this, function(){ - var underlay = dijit._underlay; - if(!underlay){ - underlay = dijit._underlay = new dijit.DialogUnderlay(this.underlayAttrs); - }else{ - underlay.set(this.underlayAttrs); - } - - var ds = dijit._dialogStack, - zIndex = 948 + ds.length*2; - if(ds.length == 1){ // first dialog - underlay.show(); - } - dojo.style(dijit._underlay.domNode, 'zIndex', zIndex); - dojo.style(this.domNode, 'zIndex', zIndex + 1); - }), - onEnd: dojo.hitch(this, function(){ - if(this.autofocus){ - // find focusable Items each time dialog is shown since if dialog contains a widget the - // first focusable items can change - this._getFocusItems(this.domNode); - dijit.focus(this._firstFocusItem); - } - }) - }); - - this._fadeOut = dojo.fadeOut({ - node: node, - duration: this.duration, - onEnd: dojo.hitch(this, function(){ - node.style.display = "none"; - - // Restore the previous dialog in the stack, or if this is the only dialog - // then restore to original page - var ds = dijit._dialogStack; - if(ds.length == 0){ - dijit._underlay.hide(); - }else{ - dojo.style(dijit._underlay.domNode, 'zIndex', 948 + ds.length*2); - dijit._underlay.set(ds[ds.length-1].underlayAttrs); - } - - // Restore focus to wherever it was before this dialog was displayed - if(this.refocus){ - var focus = this._savedFocus; - - // If we are returning control to a previous dialog but for some reason - // that dialog didn't have a focused field, set focus to first focusable item. - // This situation could happen if two dialogs appeared at nearly the same time, - // since a dialog doesn't set it's focus until the fade-in is finished. - if(ds.length > 0){ - var pd = ds[ds.length-1]; - if(!dojo.isDescendant(focus.node, pd.domNode)){ - pd._getFocusItems(pd.domNode); - focus = pd._firstFocusItem; - } - } - - dijit.focus(focus); - } - }) - }); - }, - - uninitialize: function(){ - var wasPlaying = false; - if(this._fadeIn && this._fadeIn.status() == "playing"){ - wasPlaying = true; - this._fadeIn.stop(); - } - if(this._fadeOut && this._fadeOut.status() == "playing"){ - wasPlaying = true; - this._fadeOut.stop(); - } - - // Hide the underlay, unless the underlay widget has already been destroyed - // because we are being called during page unload (when all widgets are destroyed) - if((this.open || wasPlaying) && !dijit._underlay._destroyed){ - dijit._underlay.hide(); - } - - if(this._moveable){ - this._moveable.destroy(); - } - this.inherited(arguments); }, _size: function(){ @@ -10427,7 +10927,7 @@ dojo.declare( }); } - var mb = dojo.marginBox(this.domNode); + var mb = dojo._getMarginSize(this.domNode); var viewport = dojo.window.getBox(); if(mb.w >= viewport.w || mb.h >= viewport.h){ // Reduce size of dialog contents so that dialog fits in viewport @@ -10482,12 +10982,6 @@ dojo.declare( // tags: // private - var ds = dijit._dialogStack; - if(ds[ds.length-1] != this){ - // console.debug(this.id + ': skipping because', this, 'is not the active dialog'); - return; - } - if(evt.charOrCode){ var dk = dojo.keys; var node = evt.target; @@ -10534,16 +11028,23 @@ dojo.declare( show: function(){ // summary: // Display the dialog + // returns: dojo.Deferred + // Deferred object that resolves when the display animation is complete + if(this.open){ return; } + if(!this._started){ + this.startup(); + } + // first time we show the dialog, there's some initialization stuff to do if(!this._alreadyInitialized){ this._setup(); this._alreadyInitialized=true; } - if(this._fadeOut.status() == "playing"){ - this._fadeOut.stop(); + if(this._fadeOutDeferred){ + this._fadeOutDeferred.cancel(); } this._modalconnects.push(dojo.connect(window, "onscroll", this, "layout")); @@ -10558,43 +11059,81 @@ dojo.declare( this._oldViewport = viewport; } })); - this._modalconnects.push(dojo.connect(dojo.doc.documentElement, "onkeypress", this, "_onKey")); + this._modalconnects.push(dojo.connect(this.domNode, "onkeypress", this, "_onKey")); dojo.style(this.domNode, { opacity:0, display:"" }); - this.open = true; + this._set("open", true); this._onShow(); // lazy load trigger this._size(); this._position(); - dijit._dialogStack.push(this); - this._fadeIn.play(); - this._savedFocus = dijit.getFocus(this); + // fade-in Animation object, setup below + var fadeIn; + + this._fadeInDeferred = new dojo.Deferred(dojo.hitch(this, function(){ + fadeIn.stop(); + delete this._fadeInDeferred; + })); + + fadeIn = dojo.fadeIn({ + node: this.domNode, + duration: this.duration, + beforeBegin: dojo.hitch(this, function(){ + dijit._DialogLevelManager.show(this, this.underlayAttrs); + }), + onEnd: dojo.hitch(this, function(){ + if(this.autofocus && dijit._DialogLevelManager.isTop(this)){ + // find focusable items each time dialog is shown since if dialog contains a widget the + // first focusable items can change + this._getFocusItems(this.domNode); + dijit.focus(this._firstFocusItem); + } + this._fadeInDeferred.callback(true); + delete this._fadeInDeferred; + }) + }).play(); + + return this._fadeInDeferred; }, hide: function(){ // summary: // Hide the dialog + // returns: dojo.Deferred + // Deferred object that resolves when the hide animation is complete // if we haven't been initialized yet then we aren't showing and we can just return - // or if we aren't the active dialog, don't allow us to close yet - var ds = dijit._dialogStack; - if(!this._alreadyInitialized || this != ds[ds.length-1]){ + if(!this._alreadyInitialized){ return; } - - if(this._fadeIn.status() == "playing"){ - this._fadeIn.stop(); + if(this._fadeInDeferred){ + this._fadeInDeferred.cancel(); } - // throw away current active dialog from stack -- making the previous dialog or the node on the original page active - ds.pop(); + // fade-in Animation object, setup below + var fadeOut; + + this._fadeOutDeferred = new dojo.Deferred(dojo.hitch(this, function(){ + fadeOut.stop(); + delete this._fadeOutDeferred; + })); - this._fadeOut.play(); + fadeOut = dojo.fadeOut({ + node: this.domNode, + duration: this.duration, + onEnd: dojo.hitch(this, function(){ + this.domNode.style.display = "none"; + dijit._DialogLevelManager.hide(this); + this.onHide(); + this._fadeOutDeferred.callback(true); + delete this._fadeOutDeferred; + }) + }).play(); if(this._scrollConnected){ this._scrollConnected = false; @@ -10605,9 +11144,9 @@ dojo.declare( if(this._relativePosition){ delete this._relativePosition; } - this.open = false; + this._set("open", false); - this.onHide(); + return this._fadeOutDeferred; }, layout: function(){ @@ -10624,10 +11163,22 @@ dojo.declare( }, destroy: function(){ - dojo.forEach(this._modalconnects, dojo.disconnect); - if(this.refocus && this.open){ - setTimeout(dojo.hitch(dijit,"focus",this._savedFocus), 25); + if(this._fadeInDeferred){ + this._fadeInDeferred.cancel(); + } + if(this._fadeOutDeferred){ + this._fadeOutDeferred.cancel(); + } + if(this._moveable){ + this._moveable.destroy(); + } + if(this._dndListener){ + dojo.unsubscribe(this._dndListener); } + dojo.forEach(this._modalconnects, dojo.disconnect); + + dijit._DialogLevelManager.hide(this); + this.inherited(arguments); } } @@ -10639,11 +11190,129 @@ dojo.declare( {} ); -// Stack of currenctly displayed dialogs, layered on top of each other -dijit._dialogStack = []; +dijit._DialogLevelManager = { + // summary: + // Controls the various active "levels" on the page, starting with the + // stuff initially visible on the page (at z-index 0), and then having an entry for + // each Dialog shown. -// For back-compat. TODO: remove in 2.0 + show: function(/*dijit._Widget*/ dialog, /*Object*/ underlayAttrs){ + // summary: + // Call right before fade-in animation for new dialog. + // Saves current focus, displays/adjusts underlay for new dialog, + // and sets the z-index of the dialog itself. + // + // New dialog will be displayed on top of all currently displayed dialogs. + // + // Caller is responsible for setting focus in new dialog after the fade-in + // animation completes. + + var ds = dijit._dialogStack; + + // Save current focus + ds[ds.length-1].focus = dijit.getFocus(dialog); + + // Display the underlay, or if already displayed then adjust for this new dialog + var underlay = dijit._underlay; + if(!underlay || underlay._destroyed){ + underlay = dijit._underlay = new dijit.DialogUnderlay(underlayAttrs); + }else{ + underlay.set(dialog.underlayAttrs); + } + + // Set z-index a bit above previous dialog + var zIndex = ds[ds.length-1].dialog ? ds[ds.length-1].zIndex + 2 : 950; + if(ds.length == 1){ // first dialog + underlay.show(); + } + dojo.style(dijit._underlay.domNode, 'zIndex', zIndex - 1); + + // Dialog + dojo.style(dialog.domNode, 'zIndex', zIndex); + + ds.push({dialog: dialog, underlayAttrs: underlayAttrs, zIndex: zIndex}); + }, + + hide: function(/*dijit._Widget*/ dialog){ + // summary: + // Called when the specified dialog is hidden/destroyed, after the fade-out + // animation ends, in order to reset page focus, fix the underlay, etc. + // If the specified dialog isn't open then does nothing. + // + // Caller is responsible for either setting display:none on the dialog domNode, + // or calling dijit.popup.hide(), or removing it from the page DOM. + + var ds = dijit._dialogStack; + + if(ds[ds.length-1].dialog == dialog){ + // Removing the top (or only) dialog in the stack, return focus + // to previous dialog + + ds.pop(); + + var pd = ds[ds.length-1]; // the new active dialog (or the base page itself) + + // Adjust underlay + if(ds.length == 1){ + // Returning to original page. + // Hide the underlay, unless the underlay widget has already been destroyed + // because we are being called during page unload (when all widgets are destroyed) + if(!dijit._underlay._destroyed){ + dijit._underlay.hide(); + } + }else{ + // Popping back to previous dialog, adjust underlay + dojo.style(dijit._underlay.domNode, 'zIndex', pd.zIndex - 1); + dijit._underlay.set(pd.underlayAttrs); + } + + // Adjust focus + if(dialog.refocus){ + // If we are returning control to a previous dialog but for some reason + // that dialog didn't have a focused field, set focus to first focusable item. + // This situation could happen if two dialogs appeared at nearly the same time, + // since a dialog doesn't set it's focus until the fade-in is finished. + var focus = pd.focus; + if(!focus || (pd.dialog && !dojo.isDescendant(focus.node, pd.dialog.domNode))){ + pd.dialog._getFocusItems(pd.dialog.domNode); + focus = pd.dialog._firstFocusItem; + } + + try{ + dijit.focus(focus); + }catch(e){ + /* focus() will fail if user opened the dialog by clicking a non-focusable element */ + } + } + }else{ + // Removing a dialog out of order (#9944, #10705). + // Don't need to mess with underlay or z-index or anything. + var idx = dojo.indexOf(dojo.map(ds, function(elem){return elem.dialog}), dialog); + if(idx != -1){ + ds.splice(idx, 1); + } + } + }, + + isTop: function(/*dijit._Widget*/ dialog){ + // summary: + // Returns true if specified Dialog is the top in the task + var ds = dijit._dialogStack; + return ds[ds.length-1].dialog == dialog; + } +}; +// Stack representing the various active "levels" on the page, starting with the +// stuff initially visible on the page (at z-index 0), and then having an entry for +// each Dialog shown. +// Each element in stack has form { +// dialog: dialogWidget, +// focus: returnFromGetFocus(), +// underlayAttrs: attributes to set on underlay (when this widget is active) +// } +dijit._dialogStack = [ + {dialog: null, focus: null, underlayAttrs: null} // entry for stuff at z-index: 0 +]; } @@ -10653,7 +11322,6 @@ dojo.provide("dijit._HasDropDown"); - dojo.declare("dijit._HasDropDown", null, { @@ -10702,8 +11370,9 @@ dojo.declare("dijit._HasDropDown", forceWidth: false, // maxHeight: [protected] Integer - // The max height for our dropdown. Set to 0 for no max height. - // any dropdown taller than this will have scrollbars + // The max height for our dropdown. + // Any dropdown taller than this will have scrollbars. + // Set to 0 for no max height, or -1 to limit height to available space in viewport maxHeight: 0, // dropDownPosition: [const] String[] @@ -10733,6 +11402,8 @@ dojo.declare("dijit._HasDropDown", if(this.disabled || this.readOnly){ return; } + dojo.stopEvent(e); + this._docHandler = this.connect(dojo.doc, "onmouseup", "_onDropDownMouseUp"); this.toggleDropDown(); @@ -10786,7 +11457,7 @@ dojo.declare("dijit._HasDropDown", } } } - if(this._opened && dropDown.focus){ + if(this._opened && dropDown.focus && dropDown.autoFocus !== false){ // Focus the dropdown widget - do it on a delay so that we // don't steal our own focus. window.setTimeout(dojo.hitch(dropDown, "focus"), 1); @@ -10797,27 +11468,14 @@ dojo.declare("dijit._HasDropDown", // the drop down was already opened on mousedown/keydown; just need to call stopEvent() if(this._stopClickEvents){ dojo.stopEvent(e); - } + } }, - _setupDropdown: function(){ - // summary: - // set up nodes and connect our mouse and keypress events + buildRendering: function(){ + this.inherited(arguments); + this._buttonNode = this._buttonNode || this.focusNode || this.domNode; this._popupStateNode = this._popupStateNode || this.focusNode || this._buttonNode; - this._aroundNode = this._aroundNode || this.domNode; - this.connect(this._buttonNode, "onmousedown", "_onDropDownMouseDown"); - this.connect(this._buttonNode, "onclick", "_onDropDownClick"); - this.connect(this._buttonNode, "onkeydown", "_onDropDownKeydown"); - this.connect(this._buttonNode, "onkeyup", "_onKey"); - - // If we have a _setStateClass function (which happens when - // we are a form widget), then we need to connect our open/close - // functions to it - if(this._setStateClass){ - this.connect(this, "openDropDown", "_setStateClass"); - this.connect(this, "closeDropDown", "_setStateClass"); - } // Add a class to the "dijitDownArrowButton" type class to _buttonNode so theme can set direction of arrow // based on where drop down will normally appear @@ -10833,11 +11491,18 @@ dojo.declare("dijit._HasDropDown", }, postCreate: function(){ - this._setupDropdown(); + // summary: + // set up nodes and connect our mouse and keypress events + this.inherited(arguments); + + this.connect(this._buttonNode, "onmousedown", "_onDropDownMouseDown"); + this.connect(this._buttonNode, "onclick", "_onDropDownClick"); + this.connect(this.focusNode, "onkeypress", "_onKey"); + this.connect(this.focusNode, "onkeyup", "_onKeyUp"); }, - destroyDescendants: function(){ + destroy: function(){ if(this.dropDown){ // Destroy the drop down, unless it's already been destroyed. This can happen because // the drop down is a direct child of <body> even though it's logically my child. @@ -10849,27 +11514,43 @@ dojo.declare("dijit._HasDropDown", this.inherited(arguments); }, - _onDropDownKeydown: function(/*Event*/ e){ - if(e.keyCode == dojo.keys.DOWN_ARROW || e.keyCode == dojo.keys.ENTER || e.keyCode == dojo.keys.SPACE){ - e.preventDefault(); // stop IE screen jump - } - }, - _onKey: function(/*Event*/ e){ // summary: // Callback when the user presses a key while focused on the button node if(this.disabled || this.readOnly){ return; } - var d = this.dropDown; + + var d = this.dropDown, target = e.target; if(d && this._opened && d.handleKey){ - if(d.handleKey(e) === false){ return; } + if(d.handleKey(e) === false){ + /* false return code means that the drop down handled the key */ + dojo.stopEvent(e); + return; + } } - if(d && this._opened && e.keyCode == dojo.keys.ESCAPE){ - this.toggleDropDown(); - }else if(d && !this._opened && - (e.keyCode == dojo.keys.DOWN_ARROW || e.keyCode == dojo.keys.ENTER || e.keyCode == dojo.keys.SPACE)){ + if(d && this._opened && e.charOrCode == dojo.keys.ESCAPE){ + this.closeDropDown(); + dojo.stopEvent(e); + }else if(!this._opened && + (e.charOrCode == dojo.keys.DOWN_ARROW || + ( (e.charOrCode == dojo.keys.ENTER || e.charOrCode == " ") && + //ignore enter and space if the event is for a text input + ((target.tagName || "").toLowerCase() !== 'input' || + (target.type && target.type.toLowerCase() !== 'text'))))){ + // Toggle the drop down, but wait until keyup so that the drop down doesn't + // get a stray keyup event, or in the case of key-repeat (because user held + // down key for too long), stray keydown events + this._toggleOnKeyUp = true; + dojo.stopEvent(e); + } + }, + + _onKeyUp: function(){ + if(this._toggleOnKeyUp){ + delete this._toggleOnKeyUp; this.toggleDropDown(); - if(d.focus){ + var d = this.dropDown; // drop down may not exist until toggleDropDown() call + if(d && d.focus){ setTimeout(dojo.hitch(d, "focus"), 1); } } @@ -10879,8 +11560,14 @@ dojo.declare("dijit._HasDropDown", // summary: // Called magically when focus has shifted away from this widget and it's dropdown - this.closeDropDown(); - // don't focus on button. the user has explicitly focused on something else. + // Don't focus on button if the user has explicitly focused on something else (happens + // when user clicks another control causing the current popup to close).. + // But if focus is inside of the drop down then reset focus to me, because IE doesn't like + // it when you display:none a node with focus. + var focusMe = dijit._curFocus && this.dropDown && dojo.isDescendant(dijit._curFocus, this.dropDown.domNode); + + this.closeDropDown(focusMe); + this.inherited(arguments); }, @@ -10897,7 +11584,8 @@ dojo.declare("dijit._HasDropDown", loadDropDown: function(/* Function */ loadCallback){ // summary: // Loads the data for the dropdown, and at some point, calls - // the given callback + // the given callback. This is basically a callback when the + // user presses the down arrow button to open the drop down. // tags: // protected @@ -10906,14 +11594,13 @@ dojo.declare("dijit._HasDropDown", toggleDropDown: function(){ // summary: + // Callback when the user presses the down arrow button or presses + // the down arrow key to open/close the drop down. // Toggle the drop-down widget; if it is up, close it, if not, open it // tags: // protected if(this.disabled || this.readOnly){ return; } - this.focus(); - var dropDown = this.dropDown; - if(!dropDown){ return; } if(!this._opened){ // If we aren't loaded, load it first so there isn't a flicker if(!this.isLoaded()){ @@ -10929,14 +11616,17 @@ dojo.declare("dijit._HasDropDown", openDropDown: function(){ // summary: - // Opens the dropdown for this widget - it returns the - // return value of dijit.popup.open + // Opens the dropdown for this widget. To be called only when this.dropDown + // has been created and is ready to display (ie, it's data is loaded). + // returns: + // return value of dijit.popup.open() // tags: // protected - var dropDown = this.dropDown; - var ddNode = dropDown.domNode; - var self = this; + var dropDown = this.dropDown, + ddNode = dropDown.domNode, + aroundNode = this._aroundNode || this.domNode, + self = this; // Prepare our popup's height and honor maxHeight if it exists. @@ -10944,8 +11634,7 @@ dojo.declare("dijit._HasDropDown", // ie, dependent on how much space is available (BK) if(!this._preparedNode){ - dijit.popup.moveOffScreen(ddNode); - this._preparedNode = true; + this._preparedNode = true; // Check if we have explicitly set width and height on the dropdown widget dom node if(ddNode.style.width){ this._explicitDDWidth = true; @@ -10969,29 +11658,44 @@ dojo.declare("dijit._HasDropDown", } dojo.style(ddNode, myStyle); + // Figure out maximum height allowed (if there is a height restriction) + var maxHeight = this.maxHeight; + if(maxHeight == -1){ + // limit height to space available in viewport either above or below my domNode + // (whichever side has more room) + var viewport = dojo.window.getBox(), + position = dojo.position(aroundNode, false); + maxHeight = Math.floor(Math.max(position.y, viewport.h - (position.y + position.h))); + } + + // Attach dropDown to DOM and make make visibility:hidden rather than display:none + // so we call startup() and also get the size + if(dropDown.startup && !dropDown._started){ + dropDown.startup(); + } + + dijit.popup.moveOffScreen(dropDown); // Get size of drop down, and determine if vertical scroll bar needed - var mb = dojo.marginBox(ddNode); - var overHeight = (this.maxHeight && mb.h > this.maxHeight); + var mb = dojo._getMarginSize(ddNode); + var overHeight = (maxHeight && mb.h > maxHeight); dojo.style(ddNode, { overflowX: "hidden", overflowY: overHeight ? "auto" : "hidden" }); if(overHeight){ - mb.h = this.maxHeight; + mb.h = maxHeight; if("w" in mb){ mb.w += 16; // room for vertical scrollbar } }else{ delete mb.h; } - delete mb.t; - delete mb.l; // Adjust dropdown width to match or be larger than my width if(this.forceWidth){ - mb.w = this.domNode.offsetWidth; + mb.w = aroundNode.offsetWidth; }else if(this.autoWidth){ - mb.w = Math.max(mb.w, this.domNode.offsetWidth); + mb.w = Math.max(mb.w, aroundNode.offsetWidth); }else{ delete mb.w; } @@ -11007,7 +11711,7 @@ dojo.declare("dijit._HasDropDown", var retVal = dijit.popup.open({ parent: this, popup: dropDown, - around: this._aroundNode, + around: aroundNode, orient: dijit.getPopupAroundAlignment((this.dropDownPosition && this.dropDownPosition.length) ? this.dropDownPosition : ["below"],this.isLeftToRight()), onExecute: function(){ self.closeDropDown(true); @@ -11019,13 +11723,12 @@ dojo.declare("dijit._HasDropDown", dojo.attr(self._popupStateNode, "popupActive", false); dojo.removeClass(self._popupStateNode, "dijitHasDropDownOpen"); self._opened = false; - self.state = ""; } }); dojo.attr(this._popupStateNode, "popupActive", "true"); dojo.addClass(self._popupStateNode, "dijitHasDropDownOpen"); this._opened=true; - this.state="Opened"; + // TODO: set this.checked and call setStateClass(), to affect button look while drop down is shown return retVal; }, @@ -11033,6 +11736,8 @@ dojo.declare("dijit._HasDropDown", closeDropDown: function(/*Boolean*/ focus){ // summary: // Closes the drop down on this widget + // focus: + // If true, refocuses the button widget // tags: // protected @@ -11040,7 +11745,6 @@ dojo.declare("dijit._HasDropDown", if(focus){ this.focus(); } dijit.popup.close(this.dropDown); this._opened = false; - this.state = ""; } } @@ -11099,14 +11803,12 @@ dojo.declare("dijit.form.Button", baseClass: "dijitButton", - templateString: dojo.cache("dijit.form", "templates/Button.html", "<span class=\"dijit dijitReset dijitInline\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">●</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"), + templateString: dojo.cache("dijit.form", "templates/Button.html", "<span class=\"dijit dijitReset dijitInline\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">●</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"), attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { - value: "valueNode", - iconClass: { node: "iconNode", type: "class" } + value: "valueNode" }), - _onClick: function(/*Event*/ e){ // summary: // Internal function to handle click actions @@ -11136,25 +11838,26 @@ dojo.declare("dijit.form.Button", } }, + buildRendering: function(){ + this.inherited(arguments); + dojo.setSelectable(this.focusNode, false); + }, + _fillContent: function(/*DomNode*/ source){ // Overrides _Templated._fillContent(). // If button label is specified as srcNodeRef.innerHTML rather than // this.params.label, handle it here. + // TODO: remove the method in 2.0, parser will do it all for me if(source && (!this.params || !("label" in this.params))){ this.set('label', source.innerHTML); } }, - postCreate: function(){ - dojo.setSelectable(this.focusNode, false); - this.inherited(arguments); - }, - _setShowLabelAttr: function(val){ if(this.containerNode){ dojo.toggleClass(this.containerNode, "dijitDisplayNone", !val); } - this.showLabel = val; + this._set("showLabel", val); }, onClick: function(/*Event*/ e){ @@ -11180,13 +11883,24 @@ dojo.declare("dijit.form.Button", _setLabelAttr: function(/*String*/ content){ // summary: - // Hook for attr('label', ...) to work. + // Hook for set('label', ...) to work. // description: // Set the label (text) of the button; takes an HTML string. - this.containerNode.innerHTML = this.label = content; + this._set("label", content); + this.containerNode.innerHTML = content; if(this.showLabel == false && !this.params.title){ this.titleNode.title = dojo.trim(this.containerNode.innerText || this.containerNode.textContent || ''); } + }, + + _setIconClassAttr: function(/*String*/ val){ + // Custom method so that icon node is hidden when not in use, to avoid excess padding/margin + // appearing around it (even if it's a 0x0 sized <img> node) + + var oldVal = this.iconClass || "dijitNoIcon", + newVal = val || "dijitNoIcon"; + dojo.replaceClass(this.iconNode, newVal, oldVal); + this._set("iconClass", val); } }); @@ -11207,7 +11921,7 @@ dojo.declare("dijit.form.DropDownButton", [dijit.form.Button, dijit._Container, baseClass : "dijitDropDownButton", - templateString: dojo.cache("dijit.form", "templates/DropDownButton.html", "<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\" dojoAttachPoint=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true,labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">▼</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"), + templateString: dojo.cache("dijit.form", "templates/DropDownButton.html", "<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\" dojoAttachPoint=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">▼</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"), _fillContent: function(){ // Overrides Button._fillContent(). @@ -11232,12 +11946,14 @@ dojo.declare("dijit.form.DropDownButton", [dijit.form.Button, dijit._Container, // the child widget from srcNodeRef is the dropdown widget. Insert it in the page DOM, // make it invisible, and store a reference to pass to the popup code. - if(!this.dropDown){ + if(!this.dropDown && this.dropDownContainer){ var dropDownNode = dojo.query("[widgetId]", this.dropDownContainer)[0]; this.dropDown = dijit.byNode(dropDownNode); delete this.dropDownContainer; } - dijit.popup.moveOffScreen(this.dropDown.domNode); + if(this.dropDown){ + dijit.popup.hide(this.dropDown); + } this.inherited(arguments); }, @@ -11246,7 +11962,7 @@ dojo.declare("dijit.form.DropDownButton", [dijit.form.Button, dijit._Container, // Returns whether or not we are loaded - if our dropdown has an href, // then we want to check that. var dropDown = this.dropDown; - return (!dropDown.href || dropDown.isLoaded); + return (!!dropDown && (!dropDown.href || dropDown.isLoaded)); }, loadDropDown: function(){ @@ -11288,7 +12004,7 @@ dojo.declare("dijit.form.ComboButton", dijit.form.DropDownButton, { // | dojo.body().appendChild(button1.domNode); // - templateString: dojo.cache("dijit.form", "templates/ComboButton.html", "<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' waiRole=\"presentation\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" dojoAttachPoint=\"buttonNode\" dojoAttachEvent=\"ondijitclick:_onButtonClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" dojoAttachPoint=\"valueNode\"\n\t\t/></td></tr></tbody\n></table>\n"), + templateString: dojo.cache("dijit.form", "templates/ComboButton.html", "<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' role=\"presentation\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" dojoAttachPoint=\"buttonNode\" dojoAttachEvent=\"ondijitclick:_onButtonClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" role=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\trole=\"button\" aria-haspopup=\"true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">▼</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" dojoAttachPoint=\"valueNode\"\n\t\t/></td></tr></tbody\n></table>\n"), attributeMap: dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap), { id: "", @@ -11336,8 +12052,9 @@ dojo.declare("dijit.form.ComboButton", dijit.form.DropDownButton, { // otherwise on arrow node // position: // "start" or "end" - - dijit.focus(position == "start" ? this.titleNode : this._popupStateNode); + if(!this.disabled){ + dijit.focus(position == "start" ? this.titleNode : this._popupStateNode); + } } }); @@ -11363,8 +12080,8 @@ dojo.declare("dijit.form.ToggleButton", dijit.form.Button, { this.set('checked', !this.checked); }, - _setCheckedAttr: function(/*Boolean*/ value, /* Boolean? */ priorityChange){ - this.checked = value; + _setCheckedAttr: function(/*Boolean*/ value, /*Boolean?*/ priorityChange){ + this._set("checked", value); dojo.attr(this.focusNode || this.domNode, "checked", value); dijit.setWaiState(this.focusNode || this.domNode, "pressed", value); this._handleOnChange(value, priorityChange); @@ -11372,7 +12089,7 @@ dojo.declare("dijit.form.ToggleButton", dijit.form.Button, { setChecked: function(/*Boolean*/ checked){ // summary: - // Deprecated. Use set('checked', true/false) instead. + // Deprecated. Use set('checked', true/false) instead. dojo.deprecated("setChecked("+checked+") is deprecated. Use set('checked',"+checked+") instead.", "", "2.0"); this.set('checked', checked); }, @@ -11395,6 +12112,8 @@ dojo._hasResource["dijit.form.ToggleButton"] = true; dojo.provide("dijit.form.ToggleButton"); + + } if(!dojo._hasResource["dijit.form.CheckBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -11424,26 +12143,26 @@ dojo.declare( // In case 2, the regular html inputs are invisible but still used by // the user. They are turned quasi-invisible and overlay the background-image. - templateString: dojo.cache("dijit.form", "templates/CheckBox.html", "<div class=\"dijit dijitReset dijitInline\" waiRole=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onclick:_onClick\"\n/></div>\n"), + templateString: dojo.cache("dijit.form", "templates/CheckBox.html", "<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onclick:_onClick\"\n/></div>\n"), baseClass: "dijitCheckBox", // type: [private] String // type attribute on <input> node. - // Overrides `dijit.form.Button.type`. Users should not change this value. + // Overrides `dijit.form.Button.type`. Users should not change this value. type: "checkbox", // value: String // As an initialization parameter, equivalent to value field on normal checkbox // (if checked, the value is passed as the value when form is submitted). // - // However, attr('value') will return either the string or false depending on + // However, get('value') will return either the string or false depending on // whether or not the checkbox is checked. // - // attr('value', string) will check the checkbox and change the value to the + // set('value', string) will check the checkbox and change the value to the // specified string // - // attr('value', boolean) will change the checked state. + // set('value', boolean) will change the checked state. value: "on", // readOnly: Boolean @@ -11452,22 +12171,22 @@ dojo.declare( // Similar to disabled except readOnly form values are submitted. readOnly: false, - // the attributeMap should inherit from dijit.form._FormWidget.prototype.attributeMap + // the attributeMap should inherit from dijit.form._FormWidget.prototype.attributeMap // instead of ToggleButton as the icon mapping has no meaning for a CheckBox attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { readOnly: "focusNode" }), _setReadOnlyAttr: function(/*Boolean*/ value){ - this.readOnly = value; + this._set("readOnly", value); dojo.attr(this.focusNode, 'readOnly', value); dijit.setWaiState(this.focusNode, "readonly", value); }, - _setValueAttr: function(/*String or Boolean*/ newValue, /*Boolean*/ priorityChange){ + _setValueAttr: function(/*String|Boolean*/ newValue, /*Boolean*/ priorityChange){ // summary: // Handler for value= attribute to constructor, and also calls to - // attr('value', val). + // set('value', val). // description: // During initialization, just saves as attribute to the <input type=checkbox>. // @@ -11477,7 +12196,7 @@ dojo.declare( // specified as "value" when the CheckBox was constructed (ex: <input // dojoType="dijit.CheckBox" value="chicken">) if(typeof newValue == "string"){ - this.value = newValue; + this._set("value", newValue); dojo.attr(this.focusNode, 'value', newValue); newValue = true; } @@ -11487,7 +12206,7 @@ dojo.declare( }, _getValueAttr: function(){ // summary: - // Hook so attr('value') works. + // Hook so get('value') works. // description: // If the CheckBox is checked, returns the value attribute. // Otherwise returns false. @@ -11524,7 +12243,7 @@ dojo.declare( this.set('checked', this.params.checked || false); // Handle unlikely event that the <input type=checkbox> value attribute has changed - this.value = this.params.value || "on"; + this._set("value", this.params.value || "on"); dojo.attr(this.focusNode, 'value', this.value); }, @@ -11547,6 +12266,7 @@ dojo.declare( // Internal function to handle click actions - need to check // readOnly, since button no longer does that check. if(this.readOnly){ + dojo.stopEvent(e); return false; } return this.inherited(arguments); @@ -11600,12 +12320,15 @@ dojo.provide("dijit.form.DropDownButton"); + } if(!dojo._hasResource["dojo.regexp"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.regexp"] = true; dojo.provide("dojo.regexp"); +dojo.getObject("regexp", true, dojo); + /*===== dojo.regexp = { // summary: Regular expressions and Builder resources @@ -11624,7 +12347,7 @@ dojo.regexp.escapeString = function(/*String*/str, /*String?*/except){ } return "\\" + ch; }); // String -} +}; dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boolean?*/nonCapture){ // summary: @@ -11639,7 +12362,7 @@ dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boole // A single value or an array of values. // re: // A function. Takes one parameter and converts it to a regular - // expression. + // expression. // nonCapture: // If true, uses non-capturing match, otherwise matches are retained // by regular expression. Defaults to false @@ -11658,16 +12381,16 @@ dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boole // join the REs as alternatives in a RE group. return dojo.regexp.group(b.join("|"), nonCapture); // String -} +}; dojo.regexp.group = function(/*String*/expression, /*Boolean?*/nonCapture){ // summary: // adds group match to expression // nonCapture: // If true, uses non-capturing match, otherwise matches are retained - // by regular expression. + // by regular expression. return "(" + (nonCapture ? "?:":"") + expression + ")"; // String -} +}; } @@ -11675,11 +12398,13 @@ if(!dojo._hasResource["dojo.data.util.sorter"]){ //_hasResource checks added by dojo._hasResource["dojo.data.util.sorter"] = true; dojo.provide("dojo.data.util.sorter"); -dojo.data.util.sorter.basicComparator = function( /*anything*/ a, +dojo.getObject("data.util.sorter", true, dojo); + +dojo.data.util.sorter.basicComparator = function( /*anything*/ a, /*anything*/ b){ - // summary: + // summary: // Basic comparision function that compares if an item is greater or less than another item - // description: + // description: // returns 1 if a > b, -1 if a < b, 0 if equal. // 'null' values (null, undefined) are treated as larger values so that they're pushed to the end of the list. // And compared to each other, null is equivalent to undefined. @@ -11696,18 +12421,18 @@ dojo.data.util.sorter.basicComparator = function( /*anything*/ a, b = undefined; } if(a == b){ - r = 0; + r = 0; }else if(a > b || a == null){ - r = 1; + r = 1; } return r; //int {-1,0,1} }; dojo.data.util.sorter.createSortFunction = function( /* attributes array */sortSpec, /*dojo.data.core.Read*/ store){ - // summary: + // summary: // Helper function to generate the sorting function based off the list of sort attributes. - // description: + // description: // The sort function creation will look for a property on the store called 'comparatorMap'. If it exists // it will look in the mapping for comparisons function for the attributes. If one is found, it will // use it instead of the basic comparator, which is typically used for strings, ints, booleans, and dates. @@ -11749,7 +12474,7 @@ dojo.data.util.sorter.createSortFunction = function( /* attributes array */sortS } comp = map[attr] || bc; } - sortFunctions.push(createSortFunction(attr, + sortFunctions.push(createSortFunction(attr, dir, comp, store)); } } @@ -11761,7 +12486,7 @@ dojo.data.util.sorter.createSortFunction = function( /* attributes array */sortS return ret;//int } } - return 0; //int + return 0; //int }; // Function }; @@ -11772,30 +12497,32 @@ dojo._hasResource["dojo.data.util.simpleFetch"] = true; dojo.provide("dojo.data.util.simpleFetch"); +dojo.getObject("data.util.simpleFetch", true, dojo); + dojo.data.util.simpleFetch.fetch = function(/* Object? */ request){ // summary: // The simpleFetch mixin is designed to serve as a set of function(s) that can - // be mixed into other datastore implementations to accelerate their development. - // The simpleFetch mixin should work well for any datastore that can respond to a _fetchItems() + // be mixed into other datastore implementations to accelerate their development. + // The simpleFetch mixin should work well for any datastore that can respond to a _fetchItems() // call by returning an array of all the found items that matched the query. The simpleFetch mixin // is not designed to work for datastores that respond to a fetch() call by incrementally // loading items, or sequentially loading partial batches of the result - // set. For datastores that mixin simpleFetch, simpleFetch + // set. For datastores that mixin simpleFetch, simpleFetch // implements a fetch method that automatically handles eight of the fetch() // arguments -- onBegin, onItem, onComplete, onError, start, count, sort and scope // The class mixing in simpleFetch should not implement fetch(), - // but should instead implement a _fetchItems() method. The _fetchItems() - // method takes three arguments, the keywordArgs object that was passed + // but should instead implement a _fetchItems() method. The _fetchItems() + // method takes three arguments, the keywordArgs object that was passed // to fetch(), a callback function to be called when the result array is // available, and an error callback to be called if something goes wrong. // The _fetchItems() method should ignore any keywordArgs parameters for - // start, count, onBegin, onItem, onComplete, onError, sort, and scope. + // start, count, onBegin, onItem, onComplete, onError, sort, and scope. // The _fetchItems() method needs to correctly handle any other keywordArgs - // parameters, including the query parameter and any optional parameters - // (such as includeChildren). The _fetchItems() method should create an array of - // result items and pass it to the fetchHandler along with the original request object - // -- or, the _fetchItems() method may, if it wants to, create an new request object - // with other specifics about the request that are specific to the datastore and pass + // parameters, including the query parameter and any optional parameters + // (such as includeChildren). The _fetchItems() method should create an array of + // result items and pass it to the fetchHandler along with the original request object + // -- or, the _fetchItems() method may, if it wants to, create an new request object + // with other specifics about the request that are specific to the datastore and pass // that as the request object to the handler. // // For more information on this specific function, see dojo.data.api.Read.fetch() @@ -11862,12 +12589,14 @@ if(!dojo._hasResource["dojo.data.util.filter"]){ //_hasResource checks added by dojo._hasResource["dojo.data.util.filter"] = true; dojo.provide("dojo.data.util.filter"); +dojo.getObject("data.util.filter", true, dojo); + dojo.data.util.filter.patternToRegExp = function(/*String*/pattern, /*boolean?*/ ignoreCase){ - // summary: + // summary: // Helper function to convert a simple pattern to a regular expression for matching. // description: // Returns a regular expression object that conforms to the defined conversion rules. - // For example: + // For example: // ca* -> /^ca.*$/ // *ca* -> /^.*ca.*$/ // *c\*a* -> /^.*c\*a.*$/ @@ -11879,7 +12608,7 @@ dojo.data.util.filter.patternToRegExp = function(/*String*/pattern, /*boolean?*/ // * Means match anything, so ca* means match anything starting with ca // ? Means match single character. So, b?b will match to bob and bab, and so on. // \ is an escape character. So for example, \* means do not treat * as a match, but literal character *. - // To use a \ as a character in the string, it must be escaped. So in the pattern it should be + // To use a \ as a character in the string, it must be escaped. So in the pattern it should be // represented by \\ to be treated as an ordinary \ character instead of an escape. // // ignoreCase: @@ -11957,20 +12686,20 @@ dojo.declare( // Converts the first character of each word to uppercase if true. propercase: false, - // maxLength: String + // maxLength: String // HTML INPUT tag maxLength declaration. maxLength: "", - // selectOnClick: [const] Boolean + // selectOnClick: [const] Boolean // If true, all text will be selected when focused with mouse selectOnClick: false, - // placeHolder: String + // placeHolder: String // Defines a hint to help users fill out the input field (as defined in HTML 5). // This should only contain plain text (no html markup). placeHolder: "", - templateString: dojo.cache("dijit.form", "templates/TextBox.html", "<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"), + templateString: dojo.cache("dijit.form", "templates/TextBox.html", "<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"), _singleNodeTemplate: '<input class="dijit dijitReset dijitLeft dijitInputField" dojoAttachPoint="textbox,focusNode" autocomplete="off" type="${type}" ${!nameAttrSetting} />', _buttonInputDisabled: dojo.isIE ? "disabled" : "", // allows IE to disallow focus, but Firefox cannot be disabled for mousedown events @@ -11983,14 +12712,14 @@ dojo.declare( postMixInProperties: function(){ var type = this.type.toLowerCase(); - if(this.templateString.toLowerCase() == "input" || ((type == "hidden" || type == "file") && this.templateString == dijit.form.TextBox.prototype.templateString)){ + if(this.templateString && this.templateString.toLowerCase() == "input" || ((type == "hidden" || type == "file") && this.templateString == dijit.form.TextBox.prototype.templateString)){ this.templateString = this._singleNodeTemplate; } this.inherited(arguments); }, _setPlaceHolderAttr: function(v){ - this.placeHolder = v; + this._set("placeHolder", v); if(!this._phspan){ this._attachPoints.push('_phspan'); /* dijitInputField class gives placeHolder same padding as the input field @@ -12013,7 +12742,7 @@ dojo.declare( _getValueAttr: function(){ // summary: - // Hook so attr('value') works as we like. + // Hook so get('value') works as we like. // description: // For `dijit.form.TextBox` this basically returns the value of the <input>. // @@ -12026,7 +12755,7 @@ dojo.declare( _setValueAttr: function(value, /*Boolean?*/ priorityChange, /*String?*/ formattedValue){ // summary: - // Hook so attr('value', ...) works. + // Hook so set('value', ...) works. // // description: // Sets the value of the widget to "value" which can be of @@ -12057,6 +12786,7 @@ dojo.declare( } if(formattedValue != null && formattedValue != undefined && ((typeof formattedValue) != "number" || !isNaN(formattedValue)) && this.textbox.value != formattedValue){ this.textbox.value = formattedValue; + this._set("displayedValue", this.get("displayedValue")); } this._updatePlaceHolder(); @@ -12069,7 +12799,7 @@ dojo.declare( // (ex: Kentucky) and the serialized value (ex: KY) are different, // this represents the displayed value. // - // Setting 'displayedValue' through attr('displayedValue', ...) + // Setting 'displayedValue' through set('displayedValue', ...) // updates 'value', and vice-versa. Otherwise 'value' is updated // from 'displayedValue' periodically, like onBlur etc. // @@ -12080,7 +12810,7 @@ dojo.declare( getDisplayedValue: function(){ // summary: - // Deprecated. Use set('displayedValue') instead. + // Deprecated. Use get('displayedValue') instead. // tags: // deprecated dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.", "", "2.0"); @@ -12089,7 +12819,7 @@ dojo.declare( _getDisplayedValueAttr: function(){ // summary: - // Hook so attr('displayedValue') works. + // Hook so get('displayedValue') works. // description: // Returns the displayed value (what the user sees on the screen), // after filtering (ie, trimming spaces etc.). @@ -12098,21 +12828,24 @@ dojo.declare( // is different from the serialized value that's actually // sent to the server (see dijit.form.ValidationTextBox.serialize) + // TODO: maybe we should update this.displayedValue on every keystroke so that we don't need + // this method + // TODO: this isn't really the displayed value when the user is typing return this.filter(this.textbox.value); }, - setDisplayedValue: function(/*String*/value){ + setDisplayedValue: function(/*String*/ value){ // summary: - // Deprecated. Use set('displayedValue', ...) instead. + // Deprecated. Use set('displayedValue', ...) instead. // tags: // deprecated dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.", "", "2.0"); this.set('displayedValue', value); }, - _setDisplayedValueAttr: function(/*String*/value){ + _setDisplayedValueAttr: function(/*String*/ value){ // summary: - // Hook so attr('displayedValue', ...) works. + // Hook so set('displayedValue', ...) works. // description: // Sets the value of the visual element to the string "value". // The widget value is also set to a corresponding, @@ -12120,11 +12853,18 @@ dojo.declare( if(value === null || value === undefined){ value = '' } else if(typeof value != "string"){ value = String(value) } + this.textbox.value = value; - this._setValueAttr(this.get('value'), undefined, value); + + // sets the serialized value to something corresponding to specified displayedValue + // (if possible), and also updates the textbox.value, for example converting "123" + // to "123.00" + this._setValueAttr(this.get('value'), undefined); + + this._set("displayedValue", this.get('displayedValue')); }, - format: function(/* String */ value, /* Object */ constraints){ + format: function(/*String*/ value, /*Object*/ constraints){ // summary: // Replacable function to convert a value to a properly formatted string. // tags: @@ -12132,7 +12872,7 @@ dojo.declare( return ((value == null || value == undefined) ? "" : (value.toString ? value.toString() : value)); }, - parse: function(/* String */ value, /* Object */ constraints){ + parse: function(/*String*/ value, /*Object*/ constraints){ // summary: // Replacable function to convert a formatted string to a value // tags: @@ -12166,12 +12906,15 @@ dojo.declare( setTimeout(function(){ _this._handleOnChange(_this.get('value'), false); }, 0); } this._refreshState(); + + // In case someone is watch()'ing for changes to displayedValue + this._set("displayedValue", this.get("displayedValue")); }, postCreate: function(){ - // setting the value here is needed since value="" in the template causes "undefined" - // and setting in the DOM (instead of the JS object) helps with form reset actions if(dojo.isIE){ // IE INPUT tag fontFamily has to be set directly using STYLE + // the setTimeout gives IE a chance to render the TextBox and to deal with font inheritance + setTimeout(dojo.hitch(this, function(){ var s = dojo.getComputedStyle(this.domNode); if(s){ var ff = s.fontFamily; @@ -12184,16 +12927,22 @@ dojo.declare( } } } + }), 0); } - this.textbox.setAttribute("value", this.textbox.value); // DOM and JS values shuld be the same + + // setting the value here is needed since value="" in the template causes "undefined" + // and setting in the DOM (instead of the JS object) helps with form reset actions + this.textbox.setAttribute("value", this.textbox.value); // DOM and JS values should be the same + this.inherited(arguments); + if(dojo.isMoz || dojo.isOpera){ - this.connect(this.textbox, "oninput", this._onInput); + this.connect(this.textbox, "oninput", "_onInput"); }else{ - this.connect(this.textbox, "onkeydown", this._onInput); - this.connect(this.textbox, "onkeyup", this._onInput); - this.connect(this.textbox, "onpaste", this._onInput); - this.connect(this.textbox, "oncut", this._onInput); + this.connect(this.textbox, "onkeydown", "_onInput"); + this.connect(this.textbox, "onkeyup", "_onInput"); + this.connect(this.textbox, "onpaste", "_onInput"); + this.connect(this.textbox, "oncut", "_onInput"); } }, @@ -12205,8 +12954,8 @@ dojo.declare( // description: // For MappedTextBox subclasses, this is called twice // - once with the display value - // - once the value as set/returned by attr('value', ...) - // and attr('value'), ex: a Number for NumberTextBox. + // - once the value as set/returned by set('value', ...) + // and get('value'), ex: a Number for NumberTextBox. // // In the latter case it does corrections like converting null to NaN. In // the former case the NumberTextBox.filter() method calls this.inherited() @@ -12284,8 +13033,11 @@ dojo.declare( this._updatePlaceHolder(); - this._refreshState(); + // call this.inherited() before refreshState(), since this.inherited() will possibly scroll the viewport + // (to scroll the TextBox into view), which will affect how _refreshState() positions the tooltip this.inherited(arguments); + + this._refreshState(); }, reset: function(){ @@ -12297,7 +13049,7 @@ dojo.declare( } ); -dijit.selectInputText = function(/*DomNode*/element, /*Number?*/ start, /*Number?*/ stop){ +dijit.selectInputText = function(/*DomNode*/ element, /*Number?*/ start, /*Number?*/ stop){ // summary: // Select text in the input element argument, from start (default 0), to stop (default end). @@ -12310,14 +13062,12 @@ dijit.selectInputText = function(/*DomNode*/element, /*Number?*/ start, /*Number dijit.focus(element); if(_document["selection"] && dojo.body()["createTextRange"]){ // IE if(element.createTextRange){ - var range = element.createTextRange(); - with(range){ - collapse(true); - moveStart("character", -99999); // move to 0 - moveStart("character", start); // delta from 0 is the correct position - moveEnd("character", stop-start); - select(); - } + var r = element.createTextRange(); + r.collapse(true); + r.moveStart("character", -99999); // move to 0 + r.moveStart("character", start); // delta from 0 is the correct position + r.moveEnd("character", stop-start); + r.select(); } }else if(_window["getSelection"]){ if(element.setSelectionRange){ @@ -12351,7 +13101,7 @@ dojo.declare( // Milliseconds to fade in/fade out duration: dijit.defaultDuration, - templateString: dojo.cache("dijit", "templates/Tooltip.html", "<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\">\n\t<div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" waiRole='alert'></div>\n\t<div class=\"dijitTooltipConnector\"></div>\n</div>\n"), + templateString: dojo.cache("dijit", "templates/Tooltip.html", "<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" role='alert'></div\n\t><div class=\"dijitTooltipConnector\" dojoAttachPoint=\"connectorNode\"></div\n></div>\n"), postCreate: function(){ dojo.body().appendChild(this.domNode); @@ -12361,7 +13111,6 @@ dojo.declare( // Setup fade-in and fade-out functions. this.fadeIn = dojo.fadeIn({ node: this.domNode, duration: this.duration, onEnd: dojo.hitch(this, "_onShow") }); this.fadeOut = dojo.fadeOut({ node: this.domNode, duration: this.duration, onEnd: dojo.hitch(this, "_onHide") }); - }, show: function(/*String*/ innerHTML, /*DomNode*/ aroundNode, /*String[]?*/ position, /*Boolean*/ rtl){ @@ -12373,6 +13122,9 @@ dojo.declare( return; } + // reset width; it may have been set by orient() on a previous tooltip show() + this.domNode.width = "auto"; + if(this.fadeOut.status() == "playing"){ // previous tooltip is being hidden; wait until the hide completes then show new one this._onDeck=arguments; @@ -12389,12 +13141,17 @@ dojo.declare( this.aroundNode = aroundNode; }, - orient: function(/* DomNode */ node, /* String */ aroundCorner, /* String */ tooltipCorner){ + orient: function(/*DomNode*/ node, /*String*/ aroundCorner, /*String*/ tooltipCorner, /*Object*/ spaceAvailable, /*Object*/ aroundNodeCoords){ // summary: // Private function to set CSS for tooltip node based on which position it's in. - // This is called by the dijit popup code. + // This is called by the dijit popup code. It will also reduce the tooltip's + // width to whatever width is available // tags: // protected + this.connectorNode.style.top = ""; //reset to default + + //Adjust the spaceAvailable width, without changing the spaceAvailable object + var tooltipSpaceAvaliableWidth = spaceAvailable.w - this.connectorNode.offsetWidth; node.className = "dijitTooltip " + { @@ -12405,6 +13162,52 @@ dojo.declare( "BR-BL": "dijitTooltipRight", "BL-BR": "dijitTooltipLeft" }[aroundCorner + "-" + tooltipCorner]; + + // reduce tooltip's width to the amount of width available, so that it doesn't overflow screen + this.domNode.style.width = "auto"; + var size = dojo.contentBox(this.domNode); + + var width = Math.min((Math.max(tooltipSpaceAvaliableWidth,1)), size.w); + var widthWasReduced = width < size.w; + + this.domNode.style.width = width+"px"; + + //Adjust width for tooltips that have a really long word or a nowrap setting + if(widthWasReduced){ + this.containerNode.style.overflow = "auto"; //temp change to overflow to detect if our tooltip needs to be wider to support the content + var scrollWidth = this.containerNode.scrollWidth; + this.containerNode.style.overflow = "visible"; //change it back + if(scrollWidth > width){ + scrollWidth = scrollWidth + dojo.style(this.domNode,"paddingLeft") + dojo.style(this.domNode,"paddingRight"); + this.domNode.style.width = scrollWidth + "px"; + } + } + + // Reposition the tooltip connector. + if(tooltipCorner.charAt(0) == 'B' && aroundCorner.charAt(0) == 'B'){ + var mb = dojo.marginBox(node); + var tooltipConnectorHeight = this.connectorNode.offsetHeight; + if(mb.h > spaceAvailable.h){ + // The tooltip starts at the top of the page and will extend past the aroundNode + var aroundNodePlacement = spaceAvailable.h - (aroundNodeCoords.h / 2) - (tooltipConnectorHeight / 2); + this.connectorNode.style.top = aroundNodePlacement + "px"; + this.connectorNode.style.bottom = ""; + }else{ + // Align center of connector with center of aroundNode, except don't let bottom + // of connector extend below bottom of tooltip content, or top of connector + // extend past top of tooltip content + this.connectorNode.style.bottom = Math.min( + Math.max(aroundNodeCoords.h/2 - tooltipConnectorHeight/2, 0), + mb.h - tooltipConnectorHeight) + "px"; + this.connectorNode.style.top = ""; + } + }else{ + // reset the tooltip back to the defaults + this.connectorNode.style.top = ""; + this.connectorNode.style.bottom = ""; + } + + return Math.max(0, size.w - tooltipSpaceAvaliableWidth); }, _onShow: function(){ @@ -12421,6 +13224,7 @@ dojo.declare( hide: function(aroundNode){ // summary: // Hide the tooltip + if(this._onDeck && this._onDeck[1] == aroundNode){ // this hide request is for a show() that hasn't even started yet; // just cancel the pending show() @@ -12487,69 +13291,70 @@ dojo.declare( // the tooltip is displayed. showDelay: 400, - // connectId: [const] String[] - // Id's of domNodes to attach the tooltip to. - // When user hovers over any of the specified dom nodes, the tooltip will appear. - // - // Note: Currently connectId can only be specified on initialization, it cannot - // be changed via attr('connectId', ...) - // - // Note: in 2.0 this will be renamed to connectIds for less confusion. + // connectId: String|String[] + // Id of domNode(s) to attach the tooltip to. + // When user hovers over specified dom node, the tooltip will appear. connectId: [], // position: String[] // See description of `dijit.Tooltip.defaultPosition` for details on position parameter. position: [], - constructor: function(){ - // Map id's of nodes I'm connected to to a list of the this.connect() handles - this._nodeConnectionsById = {}; - }, + _setConnectIdAttr: function(/*String*/ newId){ + // summary: + // Connect to node(s) (specified by id) - _setConnectIdAttr: function(newIds){ - for(var oldId in this._nodeConnectionsById){ - this.removeTarget(oldId); - } - dojo.forEach(dojo.isArrayLike(newIds) ? newIds : [newIds], this.addTarget, this); - }, + // Remove connections to old nodes (if there are any) + dojo.forEach(this._connections || [], function(nested){ + dojo.forEach(nested, dojo.hitch(this, "disconnect")); + }, this); - _getConnectIdAttr: function(){ - var ary = []; - for(var id in this._nodeConnectionsById){ - ary.push(id); - } - return ary; + // Make connections to nodes in newIds. + var ary = dojo.isArrayLike(newId) ? newId : (newId ? [newId] : []); + this._connections = dojo.map(ary, function(id){ + var node = dojo.byId(id); + return node ? [ + this.connect(node, "onmouseenter", "_onTargetMouseEnter"), + this.connect(node, "onmouseleave", "_onTargetMouseLeave"), + this.connect(node, "onfocus", "_onTargetFocus"), + this.connect(node, "onblur", "_onTargetBlur") + ] : []; + }, this); + + this._set("connectId", newId); + + this._connectIds = ary; // save as array }, - addTarget: function(/*DOMNODE || String*/ id){ + addTarget: function(/*DOMNODE || String*/ node){ // summary: - // Attach tooltip to specified node, if it's not already connected - var node = dojo.byId(id); - if(!node){ return; } - if(node.id in this._nodeConnectionsById){ return; }//Already connected - - this._nodeConnectionsById[node.id] = [ - this.connect(node, "onmouseenter", "_onTargetMouseEnter"), - this.connect(node, "onmouseleave", "_onTargetMouseLeave"), - this.connect(node, "onfocus", "_onTargetFocus"), - this.connect(node, "onblur", "_onTargetBlur") - ]; + // Attach tooltip to specified node if it's not already connected + + // TODO: remove in 2.0 and just use set("connectId", ...) interface + + var id = node.id || node; + if(dojo.indexOf(this._connectIds, id) == -1){ + this.set("connectId", this._connectIds.concat(id)); + } }, removeTarget: function(/*DOMNODE || String*/ node){ // summary: // Detach tooltip from specified node - // map from DOMNode back to plain id string - var id = node.id || node; - - if(id in this._nodeConnectionsById){ - dojo.forEach(this._nodeConnectionsById[id], this.disconnect, this); - delete this._nodeConnectionsById[id]; + // TODO: remove in 2.0 and just use set("connectId", ...) interface + + var id = node.id || node, // map from DOMNode back to plain id string + idx = dojo.indexOf(this._connectIds, id); + if(idx >= 0){ + // remove id (modifies original this._connectIds but that's OK in this case) + this._connectIds.splice(idx, 1); + this.set("connectId", this._connectIds); } }, - postCreate: function(){ + buildRendering: function(){ + this.inherited(arguments); dojo.addClass(this.domNode,"dijitTooltipData"); }, @@ -12716,8 +13521,6 @@ dojo.provide("dijit.form.ValidationTextBox"); - - /*===== dijit.form.ValidationTextBox.__Constraints = function(){ // locale: String @@ -12738,7 +13541,7 @@ dojo.declare( // tags: // protected - templateString: dojo.cache("dijit.form", "templates/ValidationTextBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"), + templateString: dojo.cache("dijit.form", "templates/ValidationTextBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"), baseClass: "dijitTextBox dijitValidationTextBox", // required: Boolean @@ -12747,6 +13550,7 @@ dojo.declare( // promptMessage: String // If defined, display this hint string immediately on focus to the textbox, if empty. + // Also displays if the textbox value is Incomplete (not yet valid but will be with additional input). // Think of this like a tooltip that tells the user what to do, not an error message // that tells the user what they've done wrong. // @@ -12765,6 +13569,12 @@ dojo.declare( // Set to "" to use the invalidMessage instead. missingMessage: "$_unset_$", + // message: String + // Currently error/prompt message. + // When using the default tooltip implementation, this will only be + // displayed when the field is focused. + message: "", + // constraints: dijit.form.ValidationTextBox.__Constraints // user-defined object needed to pass parameters to the validator functions constraints: {}, @@ -12774,7 +13584,7 @@ dojo.declare( // Do not specify both regExp and regExpGen regExp: ".*", - regExpGen: function(/*dijit.form.ValidationTextBox.__Constraints*/constraints){ + regExpGen: function(/*dijit.form.ValidationTextBox.__Constraints*/ constraints){ // summary: // Overridable function used to generate regExp when dependent on constraints. // Do not specify both regExp and regExpGen. @@ -12784,7 +13594,7 @@ dojo.declare( }, // state: [readonly] String - // Shows current state (ie, validation result) of input (Normal, Warning, or Error) + // Shows current state (ie, validation result) of input (""=Normal, Incomplete, or Error) state: "", // tooltipPosition: String[] @@ -12793,12 +13603,12 @@ dojo.declare( _setValueAttr: function(){ // summary: - // Hook so attr('value', ...) works. + // Hook so set('value', ...) works. this.inherited(arguments); this.validate(this._focused); }, - validator: function(/*anything*/value, /*dijit.form.ValidationTextBox.__Constraints*/constraints){ + validator: function(/*anything*/ value, /*dijit.form.ValidationTextBox.__Constraints*/ constraints){ // summary: // Overridable function used to validate the text input against the regular expression. // tags: @@ -12827,7 +13637,7 @@ dojo.declare( _isEmpty: function(value){ // summary: // Checks for whitespace - return /^\s*$/.test(value); // Boolean + return (this.trim ? /^\s*$/ : /^$/).test(value); // Boolean }, getErrorMessage: function(/*Boolean*/ isFocused){ @@ -12858,37 +13668,32 @@ dojo.declare( var isValid = this.disabled || this.isValid(isFocused); if(isValid){ this._maskValidSubsetError = true; } var isEmpty = this._isEmpty(this.textbox.value); - var isValidSubset = !isValid && !isEmpty && isFocused && this._isValidSubset(); - this.state = ((isValid || ((!this._hasBeenBlurred || isFocused) && isEmpty) || isValidSubset) && this._maskValidSubsetError) ? "" : "Error"; - if(this.state == "Error"){ this._maskValidSubsetError = isFocused; } // we want the error to show up afer a blur and refocus - this._setStateClass(); + var isValidSubset = !isValid && isFocused && this._isValidSubset(); + this._set("state", isValid ? "" : (((((!this._hasBeenBlurred || isFocused) && isEmpty) || isValidSubset) && this._maskValidSubsetError) ? "Incomplete" : "Error")); dijit.setWaiState(this.focusNode, "invalid", isValid ? "false" : "true"); - if(isFocused){ - if(this.state == "Error"){ - message = this.getErrorMessage(true); - }else{ - message = this.getPromptMessage(true); // show the prompt whever there's no error - } - this._maskValidSubsetError = true; // since we're focused, always mask warnings + + if(this.state == "Error"){ + this._maskValidSubsetError = isFocused && isValidSubset; // we want the error to show up after a blur and refocus + message = this.getErrorMessage(isFocused); + }else if(this.state == "Incomplete"){ + message = this.getPromptMessage(isFocused); // show the prompt whenever the value is not yet complete + this._maskValidSubsetError = !this._hasBeenBlurred || isFocused; // no Incomplete warnings while focused + }else if(isEmpty){ + message = this.getPromptMessage(isFocused); // show the prompt whenever there's no error and no text } - this.displayMessage(message); + this.set("message", message); + return isValid; }, - // _message: String - // Currently displayed message - _message: "", - displayMessage: function(/*String*/ message){ // summary: // Overridable method to display validation errors/hints. // By default uses a tooltip. // tags: // extension - if(this._message == message){ return; } - this._message = message; dijit.hideTooltip(this.domNode); - if(message){ + if(message && this._focused){ dijit.showTooltip(message, this.domNode, this.tooltipPosition, !this.isLeftToRight()); } }, @@ -12905,11 +13710,11 @@ dojo.declare( this.constraints = {}; }, - _setConstraintsAttr: function(/* Object */ constraints){ + _setConstraintsAttr: function(/*Object*/ constraints){ if(!constraints.locale && this.lang){ constraints.locale = this.lang; } - this.constraints = constraints; + this._set("constraints", constraints); this._computePartialRE(); }, @@ -12966,11 +13771,16 @@ dojo.declare( }, _setRequiredAttr: function(/*Boolean*/ value){ - this.required = value; + this._set("required", value); dijit.setWaiState(this.focusNode, "required", value); this._refreshState(); }, + _setMessageAttr: function(/*String*/ message){ + this._set("message", message); + this.displayMessage(message); + }, + reset:function(){ // Overrides dijit.form.TextBox.reset() by also // hiding errors about partial matches @@ -12979,7 +13789,10 @@ dojo.declare( }, _onBlur: function(){ + // the message still exists but for back-compat, and to erase the tooltip + // (if the message is being displayed as a tooltip), call displayMessage('') this.displayMessage(''); + this.inherited(arguments); } } @@ -13010,9 +13823,9 @@ dojo.declare( this.nameAttrSetting = ""; }, - serialize: function(/*anything*/val, /*Object?*/options){ + serialize: function(/*anything*/ val, /*Object?*/ options){ // summary: - // Overridable function used to convert the attr('value') result to a canonical + // Overridable function used to convert the get('value') result to a canonical // (non-localized) string. For example, will print dates in ISO format, and // numbers the same way as they are represented in javascript. // tags: @@ -13044,10 +13857,10 @@ dojo.declare( // (as opposed to the displayed value). // Passing in name as markup rather than calling dojo.create() with an attrs argument // to make dojo.query(input[name=...]) work on IE. (see #8660) - this.valueNode = dojo.place("<input type='hidden'" + (this.name ? " name='" + this.name + "'" : "") + ">", this.textbox, "after"); + this.valueNode = dojo.place("<input type='hidden'" + (this.name ? " name='" + this.name.replace(/'/g, """) + "'" : "") + "/>", this.textbox, "after"); }, - reset:function(){ + reset: function(){ // Overrides `dijit.form.ValidationTextBox.reset` to // reset the hidden textbox value to '' this.valueNode.value = ''; @@ -13151,7 +13964,7 @@ dojo.declare( } }, - _setConstraintsAttr: function(/* Object */ constraints){ + _setConstraintsAttr: function(/*Object*/ constraints){ this.inherited(arguments); if(this.focusNode){ // not set when called from postMixInProperties if(this.constraints.min !== undefined){ @@ -13169,7 +13982,7 @@ dojo.declare( _setValueAttr: function(/*Number*/ value, /*Boolean?*/ priorityChange){ // summary: - // Hook so attr('value', ...) works. + // Hook so set('value', ...) works. dijit.setWaiState(this.focusNode, "valuenow", value); this.inherited(arguments); @@ -13193,10 +14006,9 @@ dojo.provide("dijit.form.ComboBox"); - dojo.declare( "dijit.form.ComboBoxMixin", - null, + dijit._HasDropDown, { // summary: // Implements the base functionality for `dijit.form.ComboBox`/`dijit.form.FilteringSelect` @@ -13215,14 +14027,14 @@ dojo.declare( // Specifies number of search results per page (before hitting "next" button) pageSize: Infinity, - // store: Object + // store: [const] Object // Reference to data provider object used by this ComboBox store: null, // fetchProperties: Object // Mixin to the dojo.data store's fetch. // For example, to set the sort order of the ComboBox menu, pass: - // | { sort: {attribute:"name",descending: true} } + // | { sort: [{attribute:"name",descending: true}] } // To override the default queryOptions so that deep=false, do: // | { queryOptions: {ignoreCase: true, deep: false} } fetchProperties:{}, @@ -13275,7 +14087,7 @@ dojo.declare( // This specifies what query ComboBox/FilteringSelect sends to the data store, // based on what the user has typed. Changing this expression will modify // whether the drop down shows only exact matches, a "starting with" match, - // etc. Use it in conjunction with highlightMatch. + // etc. Use it in conjunction with highlightMatch. // dojo.data query expression pattern. // `${0}` will be substituted for the user text. // `*` is used for wildcards. @@ -13286,21 +14098,32 @@ dojo.declare( // Set true if the ComboBox/FilteringSelect should ignore case when matching possible items ignoreCase: true, - // hasDownArrow: [const] Boolean + // hasDownArrow: Boolean // Set this textbox to have a down arrow button, to display the drop down list. // Defaults to true. hasDownArrow: true, - templateString: dojo.cache("dijit.form", "templates/ComboBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachPoint=\"comboNode\" waiRole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdojoAttachPoint=\"downArrowNode\" waiRole=\"presentation\"\n\t\tdojoAttachEvent=\"onmousedown:_onArrowMouseDown\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"▼ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onKeyPress,compositionend\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" waiRole=\"textbox\" waiState=\"haspopup-true,autocomplete-list\"\n\t/></div\n></div>\n"), + templateString: dojo.cache("dijit.form", "templates/DropDownBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdojoAttachPoint=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"▼ \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"), baseClass: "dijitTextBox dijitComboBox", + // dropDownClass: [protected extension] String + // Name of the dropdown widget class used to select a date/time. + // Subclasses should specify this. + dropDownClass: "dijit.form._ComboBoxMenu", + // Set classes like dijitDownArrowButtonHover depending on // mouse action over button node cssStateNodes: { - "downArrowNode": "dijitDownArrowButton" + "_buttonNode": "dijitDownArrowButton" }, + // Flags to _HasDropDown to limit height of drop down to make it fit in viewport + maxHeight: -1, + + // For backwards compatibility let onClick events propagate, even clicks on the down arrow button + _stopClickEvents: false, + _getCaretPos: function(/*DomNode*/ element){ // khtml 3.5.2 has selection* methods as does webkit nightlies from 2005-06-22 var pos = 0; @@ -13317,7 +14140,7 @@ dojo.declare( tr.move("character",0); ntr.move("character",0); try{ - // If control doesnt have focus, you get an exception. + // If control doesn't have focus, you get an exception. // Seems to happen on reverse-tab, but can also happen on tab (seems to be a race condition - only happens sometimes). // There appears to be no workaround for this - googled for quite a while. ntr.setEndPoint("EndToEnd", tr); @@ -13338,7 +14161,7 @@ dojo.declare( // Additional code to set disabled state of ComboBox node. // Overrides _FormValueWidget._setDisabledAttr() or ValidationTextBox._setDisabledAttr(). this.inherited(arguments); - dijit.setWaiState(this.comboNode, "disabled", value); + dijit.setWaiState(this.domNode, "disabled", value); }, _abortQuery: function(){ @@ -13358,29 +14181,39 @@ dojo.declare( // Handles paste events if(!this.searchTimer && (evt.type == 'paste'/*IE|WebKit*/ || evt.type == 'input'/*Firefox*/) && this._lastInput != this.textbox.value){ this.searchTimer = setTimeout(dojo.hitch(this, function(){ - this._onKeyPress({charOrCode: 229}); // fake IME key to cause a search + this._onKey({charOrCode: 229}); // fake IME key to cause a search }), 100); // long delay that will probably be preempted by keyboard input } this.inherited(arguments); }, - _onKeyPress: function(/*Event*/ evt){ + _onKey: function(/*Event*/ evt){ // summary: // Handles keyboard events + var key = evt.charOrCode; + // except for cutting/pasting case - ctrl + x/v if(evt.altKey || ((evt.ctrlKey || evt.metaKey) && (key != 'x' && key != 'v')) || key == dojo.keys.SHIFT){ return; // throw out weird key combinations and spurious events } + var doSearch = false; - var searchFunction = "_startSearchFromInput"; - var pw = this._popupWidget; + var pw = this.dropDown; var dk = dojo.keys; var highlighted = null; this._prev_key_backspace = false; this._abortQuery(); - if(this._isShowingNow){ - pw.handleKey(key); + + // _HasDropDown will do some of the work: + // 1. when drop down is not yet shown: + // - if user presses the down arrow key, call loadDropDown() + // 2. when drop down is already displayed: + // - on ESC key, call closeDropDown() + // - otherwise, call dropDown.handleKey() to process the keystroke + this.inherited(arguments); + + if(this._opened){ highlighted = pw.getHighlightedOption(); } switch(key){ @@ -13388,10 +14221,9 @@ dojo.declare( case dk.DOWN_ARROW: case dk.PAGE_UP: case dk.UP_ARROW: - if(!this._isShowingNow){ - doSearch = true; - searchFunction = "_startSearchAll"; - }else{ + // Keystroke caused ComboBox_menu to move to a different item. + // Copy new item to <input> box. + if(this._opened){ this._announceOption(highlighted); } dojo.stopEvent(evt); @@ -13418,8 +14250,12 @@ dojo.declare( this._setCaretPos(this.focusNode, this.focusNode.value.length); // move cursor to end and cancel highlighting } // default case: + // if enter pressed while drop down is open, or for FilteringSelect, + // if we are in the middle of a query to convert a directly typed in value to an item, // prevent submit, but allow event to bubble + if(this._opened || this._fetchHandle){ evt.preventDefault(); + } // fall through case dk.TAB: @@ -13435,29 +14271,24 @@ dojo.declare( if(highlighted){ this._selectOption(); } - if(this._isShowingNow){ + if(this._opened){ this._lastQuery = null; // in case results come back later - this._hideResultList(); + this.closeDropDown(); } break; case ' ': if(highlighted){ + // user is effectively clicking a choice in the drop down menu dojo.stopEvent(evt); this._selectOption(); - this._hideResultList(); + this.closeDropDown(); }else{ + // user typed a space into the input box, treat as normal character doSearch = true; } break; - case dk.ESCAPE: - if(this._isShowingNow){ - dojo.stopEvent(evt); - this._hideResultList(); - } - break; - case dk.DELETE: case dk.BACKSPACE: this._prev_key_backspace = true; @@ -13467,15 +14298,14 @@ dojo.declare( default: // Non char keys (F1-F12 etc..) shouldn't open list. // Ascii characters and IME input (Chinese, Japanese etc.) should. - // On IE and safari, IME input produces keycode == 229, and we simulate - // it on firefox by attaching to compositionend event (see compositionend method) + //IME input produces keycode == 229. doSearch = typeof key == 'string' || key == 229; } if(doSearch){ // need to wait a tad before start search so that the event // bubbles through DOM and we have value visible this.item = undefined; // undefined means item needs to be set - this.searchTimer = setTimeout(dojo.hitch(this, searchFunction),1); + this.searchTimer = setTimeout(dojo.hitch(this, "_startSearchFromInput"),1); } }, @@ -13511,6 +14341,12 @@ dojo.declare( }, _openResultList: function(/*Object*/ results, /*Object*/ dataObject){ + // summary: + // Callback when a search completes. + // description: + // 1. generates drop-down list and calls _showResultList() to display it + // 2. if this result list is from user pressing "more choices"/"previous choices" + // then tell screen reader to announce new option this._fetchHandle = null; if( this.disabled || this.readOnly || @@ -13518,13 +14354,13 @@ dojo.declare( ){ return; } - this._popupWidget.clearResultList(); - if(!results.length && !this._maxOptions){ // this condition needs to match !this._isvalid set in FilteringSelect::_openResultList - this._hideResultList(); + var wasSelected = this.dropDown._highlighted_option && dojo.hasClass(this.dropDown._highlighted_option, "dijitMenuItemSelected"); + this.dropDown.clearResultList(); + if(!results.length && !this._maxOptions){ // if no results and not just the previous choices button + this.closeDropDown(); return; } - // Fill in the textbox with the first item from the drop down list, // and highlight the characters that were auto-completed. For // example, if user typed "CA" and the drop down list appeared, the @@ -13532,7 +14368,7 @@ dojo.declare( // highlighted. dataObject._maxOptions = this._maxOptions; - var nodes = this._popupWidget.createOptions( + var nodes = this.dropDown.createOptions( results, dataObject, dojo.hitch(this, "_getMenuLabelFromItem") @@ -13546,12 +14382,14 @@ dojo.declare( // shouting the next choice if(dataObject.direction){ if(1 == dataObject.direction){ - this._popupWidget.highlightFirstOption(); + this.dropDown.highlightFirstOption(); }else if(-1 == dataObject.direction){ - this._popupWidget.highlightLastOption(); + this.dropDown.highlightLastOption(); } - this._announceOption(this._popupWidget.getHighlightedOption()); - }else if(this.autoComplete && !this._prev_key_backspace /*&& !dataObject.direction*/ + if(wasSelected){ + this._announceOption(this.dropDown.getHighlightedOption()); + } + }else if(this.autoComplete && !this._prev_key_backspace // when the user clicks the arrow button to show the full list, // startSearch looks for "*". // it does not make sense to autocomplete @@ -13562,62 +14400,42 @@ dojo.declare( }, _showResultList: function(){ - this._hideResultList(); + // summary: + // Display the drop down if not already displayed, or if it is displayed, then + // reposition it if necessary (reposition may be necessary if drop down's height changed). + + this.closeDropDown(true); + // hide the tooltip this.displayMessage(""); - // Position the list and if it's too big to fit on the screen then - // size it to the maximum possible height - // Our dear friend IE doesnt take max-height so we need to - // calculate that on our own every time - - // TODO: want to redo this, see - // http://trac.dojotoolkit.org/ticket/3272 - // and - // http://trac.dojotoolkit.org/ticket/4108 - - - // natural size of the list has changed, so erase old - // width/height settings, which were hardcoded in a previous - // call to this function (via dojo.marginBox() call) - dojo.style(this._popupWidget.domNode, {width: "", height: ""}); - - var best = this.open(); - // #3212: - // only set auto scroll bars if necessary prevents issues with - // scroll bars appearing when they shouldn't when node is made - // wider (fractional pixels cause this) - var popupbox = dojo.marginBox(this._popupWidget.domNode); - this._popupWidget.domNode.style.overflow = - ((best.h == popupbox.h) && (best.w == popupbox.w)) ? "hidden" : "auto"; - // #4134: - // borrow TextArea scrollbar test so content isn't covered by - // scrollbar and horizontal scrollbar doesn't appear - var newwidth = best.w; - if(best.h < this._popupWidget.domNode.scrollHeight){ - newwidth += 16; - } - dojo.marginBox(this._popupWidget.domNode, { - h: best.h, - w: Math.max(newwidth, this.domNode.offsetWidth) - }); + this.openDropDown(); + + dijit.setWaiState(this.domNode, "expanded", "true"); + }, + + loadDropDown: function(/*Function*/ callback){ + // Overrides _HasDropDown.loadDropDown(). + // This is called when user has pressed button icon or pressed the down arrow key + // to open the drop down. - // If we increased the width of drop down to match the width of ComboBox.domNode, - // then need to reposition the drop down (wrapper) so (all of) the drop down still - // appears underneath the ComboBox.domNode - if(newwidth < this.domNode.offsetWidth){ - this._popupWidget.domNode.parentNode.style.left = dojo.position(this.domNode, true).x + "px"; - } + this._startSearchAll(); + }, - dijit.setWaiState(this.comboNode, "expanded", "true"); + isLoaded: function(){ + // signal to _HasDropDown that it needs to call loadDropDown() to load the + // drop down asynchronously before displaying it + return false; }, - _hideResultList: function(){ + closeDropDown: function(){ + // Overrides _HasDropDown.closeDropDown(). Closes the drop down (assuming that it's open). + // This method is the callback when the user types ESC or clicking + // the button icon while the drop down is open. It's also called by other code. this._abortQuery(); - if(this._isShowingNow){ - dijit.popup.close(this._popupWidget); - this._isShowingNow=false; - dijit.setWaiState(this.comboNode, "expanded", "false"); + if(this._opened){ + this.inherited(arguments); + dijit.setWaiState(this.domNode, "expanded", "false"); dijit.removeWaiState(this.focusNode,"activedescendant"); } }, @@ -13629,7 +14447,7 @@ dojo.declare( // if value is now more choices or previous choices, revert // the value var newvalue = this.get('displayedValue'); - var pw = this._popupWidget; + var pw = this.dropDown; if(pw && ( newvalue == pw._messages["previousMessage"] || newvalue == pw._messages["nextMessage"] @@ -13651,23 +14469,25 @@ dojo.declare( _onBlur: function(){ // summary: // Called magically when focus has shifted away from this widget and it's drop down - this._hideResultList(); + this.closeDropDown(); this.inherited(arguments); }, _setItemAttr: function(/*item*/ item, /*Boolean?*/ priorityChange, /*String?*/ displayedValue){ // summary: - // Set the displayed valued in the input box, and the hidden value - // that gets submitted, based on a dojo.data store item. + // Set the displayed valued in the input box, and the hidden value + // that gets submitted, based on a dojo.data store item. // description: - // Users shouldn't call this function; they should be calling - // attr('item', value) + // Users shouldn't call this function; they should be calling + // set('item', value) // tags: - // private - if(!displayedValue){ displayedValue = this.labelFunc(item, this.store); } - this.value = this._getValueField() != this.searchAttr? this.store.getIdentity(item) : displayedValue; - this.item = item; - dijit.form.ComboBox.superclass._setValueAttr.call(this, this.value, priorityChange, displayedValue); + // private + if(!displayedValue){ + displayedValue = this.store.getValue(item, this.searchAttr); + } + var value = this._getValueField() != this.searchAttr? this.store.getIdentity(item) : displayedValue; + this._set("item", item); + dijit.form.ComboBox.superclass._setValueAttr.call(this, value, priorityChange, displayedValue); }, _announceOption: function(/*Node*/ node){ @@ -13681,13 +14501,13 @@ dojo.declare( } // pull the text value from the item attached to the DOM node var newValue; - if(node == this._popupWidget.nextButton || - node == this._popupWidget.previousButton){ + if(node == this.dropDown.nextButton || + node == this.dropDown.previousButton){ newValue = node.innerHTML; this.item = undefined; this.value = ''; }else{ - newValue = this.labelFunc(node.item, this.store); + newValue = this.store.getValue(node.item, this.searchAttr).toString(); this.set('item', node.item, false, newValue); } // get the text that the user manually entered (cut off autocompleted text) @@ -13704,28 +14524,11 @@ dojo.declare( if(evt){ this._announceOption(evt.target); } - this._hideResultList(); + this.closeDropDown(); this._setCaretPos(this.focusNode, this.focusNode.value.length); dijit.form._FormValueWidget.prototype._setValueAttr.call(this, this.value, true); // set this.value and fire onChange }, - _onArrowMouseDown: function(evt){ - // summary: - // Callback when arrow is clicked - if(this.disabled || this.readOnly){ - return; - } - dojo.stopEvent(evt); - this.focus(); - if(this._isShowingNow){ - this._hideResultList(); - }else{ - // forces full population of results, if they click - // on the arrow it means they want to see more options - this._startSearchAll(); - } - }, - _startSearchAll: function(){ this._startSearch(''); }, @@ -13739,9 +14542,13 @@ dojo.declare( }, _startSearch: function(/*String*/ key){ - if(!this._popupWidget){ - var popupId = this.id + "_popup"; - this._popupWidget = new dijit.form._ComboBoxMenu({ + // summary: + // Starts a search for elements matching key (key=="" means to return all items), + // and calls _openResultList() when the search completes, to display the results. + if(!this.dropDown){ + var popupId = this.id + "_popup", + dropDownConstructor = dojo.getObject(this.dropDownClass, false); + this.dropDown = new dropDownConstructor({ onChange: dojo.hitch(this, this._selectOption), id: popupId, dir: this.dir @@ -13770,7 +14577,7 @@ dojo.declare( onError: function(errText){ _this._fetchHandle = null; console.error('dijit.form.ComboBox: ' + errText); - dojo.hitch(_this, "_hideResultList")(); + _this.closeDropDown(); }, start: 0, count: this.pageSize @@ -13785,8 +14592,9 @@ dojo.declare( // reader knows which menu option to shout dataObject.direction = direction; this._fetchHandle = this.store.fetch(dataObject); + this.focus(); }; - this._nextSearch = this._popupWidget.onPage = dojo.hitch(this, nextSearch, this._fetchHandle); + this._nextSearch = this.dropDown.onPage = dojo.hitch(this, nextSearch, this._fetchHandle); }, query, this), this.searchDelay); }, @@ -13795,29 +14603,12 @@ dojo.declare( }, _getValueField: function(){ - // summmary: + // summary: // Helper for postMixInProperties() to set this.value based on data inlined into the markup. // Returns the attribute name in the item (in dijit.form._ComboBoxDataStore) to use as the value. return this.searchAttr; }, - /////////////// Event handlers ///////////////////// - - // FIXME: For 2.0, rename to "_compositionEnd" - compositionend: function(/*Event*/ evt){ - // summary: - // When inputting characters using an input method, such as - // Asian languages, it will generate this event instead of - // onKeyDown event. - // Note: this event is only triggered in FF (not in IE/safari) - // tags: - // private - - // 229 is the code produced by IE and safari while pressing keys during - // IME input mode - this._onKeyPress({charOrCode: 229}); - }, - //////////// INITIALIZATION METHODS /////////////////////////////////////// constructor: function(){ @@ -13841,13 +14632,14 @@ dojo.declare( // by the selected attribute of an option tag // IE6 does not set value, Opera sets value = selectedIndex if(!("value" in this.params)){ - var item = this.store.fetchSelectedItem(); + var item = (this.item = this.store.fetchSelectedItem()); if(item){ var valueField = this._getValueField(); - this.value = valueField != this.searchAttr? this.store.getValue(item, valueField) : this.labelFunc(item, this.store); + this.value = this.store.getValue(item, valueField); } } } + this.inherited(arguments); }, @@ -13857,32 +14649,24 @@ dojo.declare( // tags: // protected - if(!this.hasDownArrow){ - this.downArrowNode.style.display = "none"; - } - // find any associated label element and add to ComboBox node. var label=dojo.query('label[for="'+this.id+'"]'); if(label.length){ label[0].id = (this.id+"_label"); - var cn=this.comboNode; - dijit.setWaiState(cn, "labelledby", label[0].id); + dijit.setWaiState(this.domNode, "labelledby", label[0].id); } this.inherited(arguments); }, - uninitialize: function(){ - if(this._popupWidget && !this._popupWidget._destroyed){ - this._hideResultList(); - this._popupWidget.destroy(); - } - this.inherited(arguments); + _setHasDownArrowAttr: function(val){ + this.hasDownArrow = val; + this._buttonNode.style.display = val ? "" : "none"; }, _getMenuLabelFromItem: function(/*Item*/ item){ - var label = this.labelAttr? this.store.getValue(item, this.labelAttr) : this.labelFunc(item, this.store); - var labelType = this.labelType; + var label = this.labelFunc(item, this.store), + labelType = this.labelType; // If labelType is not "text" we don't want to screw any markup ot whatever. if(this.highlightMatch != "none" && this.labelType == "text" && this._lastInput){ label = this.doHighlight(label, this._escapeHtml(this._lastInput)); @@ -13891,24 +14675,27 @@ dojo.declare( return {html: labelType == "html", label: label}; }, - doHighlight: function(/*String*/label, /*String*/find){ + doHighlight: function(/*String*/ label, /*String*/ find){ // summary: // Highlights the string entered by the user in the menu. By default this - // highlights the first occurence found. Override this method - // to implement your custom highlighing. + // highlights the first occurrence found. Override this method + // to implement your custom highlighting. // tags: // protected - // Add greedy when this.highlightMatch == "all" - var modifiers = "i"+(this.highlightMatch == "all"?"g":""); - var escapedLabel = this._escapeHtml(label); + var + // Add (g)lobal modifier when this.highlightMatch == "all" and (i)gnorecase when this.ignoreCase == true + modifiers = (this.ignoreCase ? "i" : "") + (this.highlightMatch == "all" ? "g" : ""), + i = this.queryExpr.indexOf("${0}"); find = dojo.regexp.escapeString(find); // escape regexp special chars - var ret = escapedLabel.replace(new RegExp("(^|\\s)("+ find +")", modifiers), - '$1<span class="dijitComboBoxHighlightMatch">$2</span>'); - return ret;// returns String, (almost) valid HTML (entities encoded) + return this._escapeHtml(label).replace( + // prepend ^ when this.queryExpr == "${0}*" and append $ when this.queryExpr == "*${0}" + new RegExp((i == 0 ? "^" : "") + "("+ find +")" + (i == (this.queryExpr.length - 4) ? "$" : ""), modifiers), + '<span class="dijitComboBoxHighlightMatch">$1</span>' + ); // returns String, (almost) valid HTML (entities encoded) }, - _escapeHtml: function(/*string*/str){ + _escapeHtml: function(/*String*/ str){ // TODO Should become dojo.html.entities(), when exists use instead // summary: // Adds escape sequences for special characters in XML: &<>"' @@ -13917,19 +14704,6 @@ dojo.declare( return str; // string }, - open: function(){ - // summary: - // Opens the drop down menu. TODO: rename to _open. - // tags: - // private - this._isShowingNow=true; - return dijit.popup.open({ - popup: this._popupWidget, - around: this.domNode, - parent: this - }); - }, - reset: function(){ // Overrides the _FormWidget.reset(). // Additionally reset the .item (to clean up). @@ -13939,15 +14713,15 @@ dojo.declare( labelFunc: function(/*item*/ item, /*dojo.data.store*/ store){ // summary: - // Computes the label to display based on the dojo.data store item. + // Computes the label to display based on the dojo.data store item. // returns: - // The label that the ComboBox should display + // The label that the ComboBox should display // tags: - // private + // private // Use toString() because XMLStore returns an XMLItem whereas this // method is expected to return a String (#9354) - return store.getValue(item, this.searchAttr).toString(); // String + return store.getValue(item, this.labelAttr || this.searchAttr).toString(); // String } } ); @@ -13961,9 +14735,9 @@ dojo.declare( // tags: // private - templateString: "<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' tabIndex='-1' style='overflow: \"auto\"; overflow-x: \"hidden\";'>" - +"<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton' waiRole='option'></li>" - +"<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton' waiRole='option'></li>" + templateString: "<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' style='overflow: \"auto\"; overflow-x: \"hidden\";'>" + +"<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton' role='option'></li>" + +"<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton' role='option'></li>" +"</ul>", // _messages: Object @@ -13973,8 +14747,16 @@ dojo.declare( baseClass: "dijitComboBoxMenu", postMixInProperties: function(){ + this.inherited(arguments); this._messages = dojo.i18n.getLocalization("dijit.form", "ComboBox", this.lang); + }, + + buildRendering: function(){ this.inherited(arguments); + + // fill in template with i18n messages + this.previousButton.innerHTML = this._messages["previousMessage"]; + this.nextButton.innerHTML = this._messages["nextMessage"]; }, _setValueAttr: function(/*Object*/ value){ @@ -13997,13 +14779,6 @@ dojo.declare( // callback }, - postCreate: function(){ - // fill in template with i18n messages - this.previousButton.innerHTML = this._messages["previousMessage"]; - this.nextButton.innerHTML = this._messages["nextMessage"]; - this.inherited(arguments); - }, - onClose: function(){ // summary: // Callback from dijit.popup code to this widget, notifying it that it closed @@ -14017,9 +14792,11 @@ dojo.declare( // Creates an option to appear on the popup menu subclassed by // `dijit.form.FilteringSelect`. + var menuitem = dojo.create("li", { + "class": "dijitReset dijitMenuItem" +(this.isLeftToRight() ? "" : " dijitMenuItemRtl"), + role: "option" + }); var labelObject = labelFunc(item); - var menuitem = dojo.doc.createElement("li"); - dijit.setWaiRole(menuitem, "option"); if(labelObject.html){ menuitem.innerHTML = labelObject.label; }else{ @@ -14056,8 +14833,6 @@ dojo.declare( // iterate over cache nondestructively dojo.forEach(results, function(item, i){ var menuitem = this._createOption(item, labelFunc); - menuitem.className = "dijitReset dijitMenuItem" + - (this.isLeftToRight() ? "" : " dijitMenuItemRtl"); dojo.attr(menuitem, "id", this.id + i); this.domNode.insertBefore(menuitem, this.nextButton); }, this); @@ -14090,6 +14865,7 @@ dojo.declare( while(this.domNode.childNodes.length>2){ this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length-2]); } + this._blurOptionNode(); }, _onMouseDown: function(/*Event*/ evt){ @@ -14098,10 +14874,14 @@ dojo.declare( _onMouseUp: function(/*Event*/ evt){ if(evt.target === this.domNode || !this._highlighted_option){ + // !this._highlighted_option check to prevent immediate selection when menu appears on top + // of <input>, see #9898. Note that _HasDropDown also has code to prevent this. return; }else if(evt.target == this.previousButton){ + this._blurOptionNode(); this.onPage(-1); }else if(evt.target == this.nextButton){ + this._blurOptionNode(); this.onPage(1); }else{ var tgt = evt.target; @@ -14268,20 +15048,25 @@ dojo.declare( return (ho && ho.parentNode) ? ho : null; }, - handleKey: function(key){ - switch(key){ + handleKey: function(evt){ + // summary: + // Handle keystroke event forwarded from ComboBox, returning false if it's + // a keystroke I recognize and process, true otherwise. + switch(evt.charOrCode){ case dojo.keys.DOWN_ARROW: this._highlightNextOption(); - break; + return false; case dojo.keys.PAGE_DOWN: this.pageDown(); - break; + return false; case dojo.keys.UP_ARROW: this._highlightPrevOption(); - break; + return false; case dojo.keys.PAGE_UP: this.pageUp(); - break; + return false; + default: + return true; } } } @@ -14309,10 +15094,10 @@ dojo.declare( _setValueAttr: function(/*String*/ value, /*Boolean?*/ priorityChange, /*String?*/ displayedValue){ // summary: - // Hook so attr('value', value) works. + // Hook so set('value', value) works. // description: // Sets the value of the select. - this.item = null; // value not looked up in store + this._set("item", null); // value not looked up in store if(!value){ value = ''; } // null translates to blank dijit.form.ValidationTextBox.prototype._setValueAttr.call(this, value, priorityChange, displayedValue); } @@ -14356,13 +15141,13 @@ dojo.declare("dijit.form._ComboBoxDataStore", null, { }, - getValue: function( /* item */ item, - /* attribute-name-string */ attribute, - /* value? */ defaultValue){ + getValue: function( /*item*/ item, + /*attribute-name-string*/ attribute, + /*value?*/ defaultValue){ return (attribute == "value") ? item.value : (item.innerText || item.textContent || ''); }, - isItemLoaded: function(/* anything */ something){ + isItemLoaded: function(/*anything*/ something){ return true; }, @@ -14370,9 +15155,9 @@ dojo.declare("dijit.form._ComboBoxDataStore", null, { return {"dojo.data.api.Read": true, "dojo.data.api.Identity": true}; }, - _fetchItems: function( /* Object */ args, - /* Function */ findCallback, - /* Function */ errorCallback){ + _fetchItems: function( /*Object*/ args, + /*Function*/ findCallback, + /*Function*/ errorCallback){ // summary: // See dojo.data.util.simpleFetch.fetch() if(!args.query){ args.query = {}; } @@ -14388,19 +15173,19 @@ dojo.declare("dijit.form._ComboBoxDataStore", null, { findCallback(items, args); }, - close: function(/*dojo.data.api.Request || args || null */ request){ + close: function(/*dojo.data.api.Request || args || null*/ request){ return; }, - getLabel: function(/* item */ item){ + getLabel: function(/*item*/ item){ return item.innerHTML; }, - getIdentity: function(/* item */ item){ + getIdentity: function(/*item*/ item){ return dojo.attr(item, "value"); }, - fetchItemByIdentity: function(/* Object */ args){ + fetchItemByIdentity: function(/*Object*/ args){ // summary: // Given the identity of an item, this method returns the item that has // that identity through the onItem callback. @@ -14468,17 +15253,19 @@ dojo.declare( // - List can be specified either as a static list or via a javascript // function (that can get the list from a server) - _isvalid: true, - // required: Boolean // True (default) if user is required to enter a value into this field. required: true, _lastDisplayedValue: "", + _isValidSubset: function(){ + return this._opened; + }, + isValid: function(){ // Overrides ValidationTextBox.isValid() - return this._isvalid || (!this.required && this.get('displayedValue') == ""); // #5974 + return this.item || (!this.required && this.get('displayedValue') == ""); // #5974 }, _refreshState: function(){ @@ -14487,12 +15274,12 @@ dojo.declare( } }, - _callbackSetLabel: function( /*Array*/ result, + _callbackSetLabel: function( + /*Array*/ result, /*Object*/ dataObject, /*Boolean?*/ priorityChange){ // summary: - // Callback function that dynamically sets the label of the - // ComboBox + // Callback from dojo.data after lookup of user entered value finishes // setValue does a synchronous lookup, // so it calls _callbackSetLabel directly, @@ -14502,35 +15289,38 @@ dojo.declare( return; } if(!result.length){ - //#3268: do nothing on bad input + //#3268: don't modify display value on bad input //#3285: change CSS to indicate error this.valueNode.value = ""; dijit.form.TextBox.superclass._setValueAttr.call(this, "", priorityChange || (priorityChange === undefined && !this._focused)); - this._isvalid = false; + this._set("item", null); this.validate(this._focused); - this.item = null; }else{ this.set('item', result[0], priorityChange); } }, _openResultList: function(/*Object*/ results, /*Object*/ dataObject){ + // Callback when a data store query completes. // Overrides ComboBox._openResultList() // #3285: tap into search callback to see if user's query resembles a match if(dataObject.query[this.searchAttr] != this._lastQuery){ return; } + dijit.form.ComboBoxMixin.prototype._openResultList.apply(this, arguments); + if(this.item === undefined){ // item == undefined for keyboard search - this._isvalid = results.length != 0 || this._maxOptions != 0; // result.length==0 && maxOptions != 0 implies the nextChoices item selected but then the datastore returned 0 more entries + // If the search returned no items that means that the user typed + // in something invalid (and they can't make it valid by typing more characters), + // so flag the FilteringSelect as being in an invalid state this.validate(true); } - dijit.form.ComboBoxMixin.prototype._openResultList.apply(this, arguments); }, _getValueAttr: function(){ // summary: - // Hook for attr('value') to work. + // Hook for get('value') to work. // don't get the textbox value but rather the previously set hidden value. // Use this.valueNode.value which isn't always set for other MappedTextBox widgets until blur @@ -14544,7 +15334,7 @@ dojo.declare( _setValueAttr: function(/*String*/ value, /*Boolean?*/ priorityChange){ // summary: - // Hook so attr('value', value) works. + // Hook so set('value', value) works. // description: // Sets the value of the select. // Also sets the label to the corresponding value by reverse lookup. @@ -14572,10 +15362,9 @@ dojo.declare( // that gets submitted, based on a dojo.data store item. // description: // Users shouldn't call this function; they should be calling - // attr('item', value) + // set('item', value) // tags: // private - this._isvalid = true; this.inherited(arguments); this.valueNode.value = this.value; this._lastDisplayedValue = this.textbox.value; @@ -14587,30 +15376,38 @@ dojo.declare( _setDisplayedValueAttr: function(/*String*/ label, /*Boolean?*/ priorityChange){ // summary: - // Hook so attr('displayedValue', label) works. + // Hook so set('displayedValue', label) works. // description: // Sets textbox to display label. Also performs reverse lookup - // to set the hidden value. + // to set the hidden value. label should corresponding to item.searchAttr. - // When this is called during initialization it'll ping the datastore - // for reverse lookup, and when that completes (after an XHR request) - // will call setValueAttr()... but that shouldn't trigger an onChange() - // event, even when it happens after creation has finished + if(label == null){ label = ''; } + + // This is called at initialization along with every custom setter. + // Usually (or always?) the call can be ignored. If it needs to be + // processed then at least make sure that the XHR request doesn't trigger an onChange() + // event, even if it returns after creation has finished if(!this._created){ + if(!("displayedValue" in this.params)){ + return; + } priorityChange = false; } + // Do a reverse lookup to map the specified displayedValue to the hidden value. + // Note that if there's a custom labelFunc() this code if(this.store){ - this._hideResultList(); + this.closeDropDown(); var query = dojo.clone(this.query); // #6196: populate query with user-specifics // escape meta characters of dojo.data.util.filter.patternToRegExp(). this._lastQuery = query[this.searchAttr] = this._getDisplayQueryString(label); - // if the label is not valid, the callback will never set it, - // so the last valid value will get the warning textbox set the + // If the label is not valid, the callback will never set it, + // so the last valid value will get the warning textbox. Set the // textbox value now so that the impending warning will make // sense to the user this.textbox.value = label; this._lastDisplayedValue = label; + this._set("displayedValue", label); // for watch("displayedValue") notification var _this = this; var fetch = { query: query, @@ -14633,11 +15430,6 @@ dojo.declare( } }, - postMixInProperties: function(){ - this.inherited(arguments); - this._isvalid = !this.required; - }, - undo: function(){ this.set('displayedValue', this._lastDisplayedValue); } @@ -14654,9 +15446,10 @@ dojo.provide("dijit.form.Form"); + dojo.declare( "dijit.form.Form", - [dijit._Widget, dijit._Templated, dijit.form._FormMixin], + [dijit._Widget, dijit._Templated, dijit.form._FormMixin, dijit.layout._ContentPaneResizeMixin], { // summary: // Widget corresponding to HTML form tag, for validation and serialization @@ -14740,7 +15533,7 @@ dojo.declare( postCreate: function(){ // IE tries to hide encType - // TODO: this code should be in parser, not here. + // TODO: remove in 2.0, no longer necessary with data-dojo-params if(dojo.isIE && this.srcNodeRef && this.srcNodeRef.attributes){ var item = this.srcNodeRef.attributes.getNamedItem('encType'); if(item && !item.specified && (typeof item.value == "string")){ @@ -14761,8 +15554,8 @@ dojo.declare( preventDefault: function(){ // not IE this.returnValue = false; }, - stopPropagation: function(){}, - currentTarget: e ? e.target : this.domNode, + stopPropagation: function(){}, + currentTarget: e ? e.target : this.domNode, target: e ? e.target : this.domNode }; // if return value is not exactly false, and haven't called preventDefault(), then reset @@ -14801,7 +15594,7 @@ dojo.declare( } }, - onSubmit: function(/*Event?*/e){ + onSubmit: function(/*Event?*/ e){ // summary: // Callback when user submits the form. // description: @@ -14833,6 +15626,7 @@ dojo._hasResource["dijit.form.RadioButton"] = true; dojo.provide("dijit.form.RadioButton"); + // TODO: for 2.0, move the RadioButton code into this file } @@ -14851,7 +15645,7 @@ dijit.form.__SelectOption = function(){ // place a separator at that location // label: String // The label for our option. It can contain html tags. - // selected: Boolean + // selected: Boolean // Whether or not we are a selected option // disabled: Boolean // Whether or not this specific option is disabled @@ -14869,13 +15663,13 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { // This also provides the mechanism for reading the elements from // a store, if desired. - // multiple: Boolean + // multiple: [const] Boolean // Whether or not we are multi-valued multiple: false, // options: dijit.form.__SelectOption[] // The set of options for our select item. Roughly corresponds to - // the html <option> tag. + // the html <option> tag. options: null, // store: dojo.data.api.Identity @@ -14897,20 +15691,20 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { // iterated over (i.e. to filter even futher what you want to add) onFetch: null, - // sortByLabel: boolean + // sortByLabel: Boolean // Flag to sort the options returned from a store by the label of // the store. sortByLabel: true, - // loadChildrenOnOpen: boolean + // loadChildrenOnOpen: Boolean // By default loadChildren is called when the items are fetched from the // store. This property allows delaying loadChildren (and the creation - // of the options/menuitems) until the user opens the click the button. - // dropdown + // of the options/menuitems) until the user clicks the button to open the + // dropdown. loadChildrenOnOpen: false, - getOptions: function(/* anything */ valueOrIdx){ + getOptions: function(/*anything*/ valueOrIdx){ // summary: // Returns a given option (or options). // valueOrIdx: @@ -14976,7 +15770,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { return null; // null }, - addOption: function(/* dijit.form.__SelectOption, dijit.form.__SelectOption[] */ option){ + addOption: function(/*dijit.form.__SelectOption|dijit.form.__SelectOption[]*/ option){ // summary: // Adds an option or options to the end of the select. If value // of the option is empty or missing, a separator is created instead. @@ -14991,7 +15785,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { this._loadChildren(); }, - removeOption: function(/* string, dijit.form.__SelectOption, number, or array */ valueOrIdx){ + removeOption: function(/*String|dijit.form.__SelectOption|Number|Array*/ valueOrIdx){ // summary: // Removes the given option or options. You can remove by string // (in which case the value is removed), number (in which case the @@ -15006,7 +15800,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { // that case, we don't want to blow up... if(i){ this.options = dojo.filter(this.options, function(node, idx){ - return (node.value !== i.value); + return (node.value !== i.value || node.label !== i.label); }); this._removeOptionItem(i); } @@ -15014,7 +15808,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { this._loadChildren(); }, - updateOption: function(/* dijit.form.__SelectOption, dijit.form.__SelectOption[] */ newOption){ + updateOption: function(/*dijit.form.__SelectOption|dijit.form.__SelectOption[]*/ newOption){ // summary: // Updates the values of the given option. The option to update // is matched based on the value of the entered option. Passing @@ -15030,9 +15824,9 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { this._loadChildren(); }, - setStore: function(/* dojo.data.api.Identity */ store, - /* anything? */ selectedValue, - /* Object? */ fetchArgs){ + setStore: function(/*dojo.data.api.Identity*/ store, + /*anything?*/ selectedValue, + /*Object?*/ fetchArgs){ // summary: // Sets the store you would like to use with this select widget. // The selected value is the value of the new store to set. This @@ -15059,7 +15853,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { dojo.connect(store, "onSet", this, "_onSetItem") ]; } - this.store = store; + this._set("store", store); } // Turn off change notifications while we make all these changes @@ -15072,48 +15866,52 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { // Add our new options if(store){ - var cb = function(items){ - if(this.sortByLabel && !fetchArgs.sort && items.length){ - items.sort(dojo.data.util.sorter.createSortFunction([{ - attribute: store.getLabelAttributes(items[0])[0] - }], store)); - } - - if(fetchArgs.onFetch){ - items = fetchArgs.onFetch(items); - } - // TODO: Add these guys as a batch, instead of separately - dojo.forEach(items, function(i){ - this._addOptionForItem(i); - }, this); - - // Set our value (which might be undefined), and then tweak - // it to send a change event with the real value - this._loadingStore = false; - this.set("value", (("_pendingValue" in this) ? this._pendingValue : selectedValue)); - delete this._pendingValue; - - if(!this.loadChildrenOnOpen){ - this._loadChildren(); - }else{ - this._pseudoLoadChildren(items); - } - this._fetchedWith = opts; - this._lastValueReported = this.multiple ? [] : null; - this._onChangeActive = true; - this.onSetStore(); - this._handleOnChange(this.value); - }; - var opts = dojo.mixin({onComplete:cb, scope: this}, fetchArgs); this._loadingStore = true; - store.fetch(opts); + store.fetch(dojo.delegate(fetchArgs, { + onComplete: function(items, opts){ + if(this.sortByLabel && !fetchArgs.sort && items.length){ + items.sort(dojo.data.util.sorter.createSortFunction([{ + attribute: store.getLabelAttributes(items[0])[0] + }], store)); + } + + if(fetchArgs.onFetch){ + items = fetchArgs.onFetch.call(this, items, opts); + } + // TODO: Add these guys as a batch, instead of separately + dojo.forEach(items, function(i){ + this._addOptionForItem(i); + }, this); + + // Set our value (which might be undefined), and then tweak + // it to send a change event with the real value + this._loadingStore = false; + this.set("value", "_pendingValue" in this ? this._pendingValue : selectedValue); + delete this._pendingValue; + + if(!this.loadChildrenOnOpen){ + this._loadChildren(); + }else{ + this._pseudoLoadChildren(items); + } + this._fetchedWith = opts; + this._lastValueReported = this.multiple ? [] : null; + this._onChangeActive = true; + this.onSetStore(); + this._handleOnChange(this.value); + }, + scope: this + })); }else{ delete this._fetchedWith; } return oStore; // dojo.data.api.Identity }, - _setValueAttr: function(/*anything*/ newValue, /*Boolean, optional*/ priorityChange){ + // TODO: implement set() and watch() for store and query, although not sure how to handle + // setting them individually rather than together (as in setStore() above) + + _setValueAttr: function(/*anything*/ newValue, /*Boolean?*/ priorityChange){ // summary: // set the value of the widget. // If a string is passed, then we set our value from looking it up. @@ -15149,7 +15947,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { var val = dojo.map(newValue, function(i){ return i.value; }), disp = dojo.map(newValue, function(i){ return i.label; }); - this.value = this.multiple ? val : val[0]; + this._set("value", this.multiple ? val : val[0]); this._setDisplay(this.multiple ? disp : disp[0]); this._updateSelection(); this._handleOnChange(this.value, priorityChange); @@ -15173,23 +15971,10 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { return this.multiple ? ret : ret[0]; }, - _getValueDeprecated: false, // remove when _FormWidget:getValue is removed - getValue: function(){ - // summary: - // get the value of the widget. - return this._lastValue; - }, - - undo: function(){ - // summary: - // restore the value to the last value passed to onChange - this._setValueAttr(this._lastValueReported, false); - }, - _loadChildren: function(){ // summary: // Loads the children represented by this widget's options. - // reset the menu to make it "populatable on the next click + // reset the menu to make it populatable on the next click if(this._loadingStore){ return; } dojo.forEach(this._getChildren(), function(child){ child.destroyRecursive(); @@ -15204,7 +15989,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { _updateSelection: function(){ // summary: // Sets the "selected" class on the item for styling purposes - this.value = this._getValueFromOpts(); + this._set("value", this._getValueFromOpts()); var val = this.value; if(!dojo.isArray(val)){ val = [val]; @@ -15218,7 +16003,6 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { dijit.setWaiState(child.domNode, "selected", isSelected); }, this); } - this._handleOnChange(this.value); }, _getValueFromOpts: function(){ @@ -15249,17 +16033,17 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { }, // Internal functions to call when we have store notifications come in - _onNewItem: function(/* item */ item, /* Object? */ parentInfo){ + _onNewItem: function(/*item*/ item, /*Object?*/ parentInfo){ if(!parentInfo || !parentInfo.parent){ // Only add it if we are top-level this._addOptionForItem(item); } }, - _onDeleteItem: function(/* item */ item){ + _onDeleteItem: function(/*item*/ item){ var store = this.store; this.removeOption(store.getIdentity(item)); }, - _onSetItem: function(/* item */ item){ + _onSetItem: function(/*item*/ item){ this.updateOption(this._getOptionObjForItem(item)); }, @@ -15274,7 +16058,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { return {value: value, label: label, item:item}; // dijit.form.__SelectOption }, - _addOptionForItem: function(/* item */ item){ + _addOptionForItem: function(/*item*/ item){ // summary: // Creates (and adds) the option for the given item var store = this.store; @@ -15290,13 +16074,18 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { this.addOption(newOpt); }, - constructor: function(/* Object */ keywordArgs){ + constructor: function(/*Object*/ keywordArgs){ // summary: // Saves off our value, if we have an initial one set so we // can use it if we have a store as well (see startup()) this._oValue = (keywordArgs || {}).value || null; }, + buildRendering: function(){ + this.inherited(arguments); + dojo.setSelectable(this.focusNode, false); + }, + _fillContent: function(){ // summary: // Loads our options and sets up our dropdown correctly. We @@ -15309,16 +16098,21 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { if(node.getAttribute("type") === "separator"){ return { value: "", label: "", selected: false, disabled: false }; } - return { value: node.getAttribute("value"), + return { + value: (node.getAttribute("data-" + dojo._scopeName + "-value") || node.getAttribute("value")), label: String(node.innerHTML), + // FIXME: disabled and selected are not valid on complex markup children (which is why we're + // looking for data-dojo-value above. perhaps we should data-dojo-props="" this whole thing?) + // decide before 1.6 selected: node.getAttribute("selected") || false, - disabled: node.getAttribute("disabled") || false }; + disabled: node.getAttribute("disabled") || false + }; }, this) : []; } if(!this.value){ - this.value = this._getValueFromOpts(); + this._set("value", this._getValueFromOpts()); }else if(this.multiple && typeof this.value == "string"){ - this.value = this.value.split(","); + this_set("value", this.value.split(",")); } }, @@ -15326,7 +16120,6 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { // summary: // sets up our event handling that we need for functioning // as a select - dojo.setSelectable(this.focusNode, false); this.inherited(arguments); // Make our event connections for updating state @@ -15362,7 +16155,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { this.inherited(arguments); }, - _addOptionItem: function(/* dijit.form.__SelectOption */ option){ + _addOptionItem: function(/*dijit.form.__SelectOption*/ option){ // summary: // User-overridable function which, for the given option, adds an // item to the select. If the option doesn't have a value, then a @@ -15370,7 +16163,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { // in the created option widget. }, - _removeOptionItem: function(/* dijit.form.__SelectOption */ option){ + _removeOptionItem: function(/*dijit.form.__SelectOption*/ option){ // summary: // User-overridable function which, for the given option, removes // its item from the select. @@ -15396,7 +16189,7 @@ dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { return this.getOptions(this.get("value")); }, - _pseudoLoadChildren: function(/* item[] */ items){ + _pseudoLoadChildren: function(/*item[]*/ items){ // summary: // a function that will "fake" loading children, if needed, and // if we have set to not load children until the widget opens. @@ -15419,6 +16212,7 @@ dojo._hasResource["dijit._KeyNavContainer"] = true; dojo.provide("dijit._KeyNavContainer"); + dojo.declare("dijit._KeyNavContainer", dijit._Container, { @@ -15460,6 +16254,8 @@ dojo.declare("dijit._KeyNavContainer", var next = dojo.hitch(this, this.focusNext); dojo.forEach(prevKeyCodes, function(code){ keyCodes[code] = prev; }); dojo.forEach(nextKeyCodes, function(code){ keyCodes[code] = next; }); + keyCodes[dojo.keys.HOME] = dojo.hitch(this, "focusFirstChild"); + keyCodes[dojo.keys.END] = dojo.hitch(this, "focusLastChild"); this.connect(this.domNode, "onkeypress", "_onContainerKeypress"); this.connect(this.domNode, "onfocus", "_onContainerFocus"); }, @@ -15496,6 +16292,17 @@ dojo.declare("dijit._KeyNavContainer", } }, + focusLastChild: function(){ + // summary: + // Focus the last focusable child in the container. + // tags: + // protected + var child = this._getLastFocusableChild(); + if(child){ // edge case: Menu could be empty or hidden + this.focusChild(child); + } + }, + focusNext: function(){ // summary: // Focus the next widget @@ -15529,15 +16336,16 @@ dojo.declare("dijit._KeyNavContainer", if(this.focusedChild && widget !== this.focusedChild){ this._onChildBlur(this.focusedChild); } + widget.set("tabIndex", this.tabIndex); // for IE focus outline to appear, must set tabIndex before focs widget.focus(last ? "end" : "start"); - this.focusedChild = widget; + this._set("focusedChild", widget); }, _startupChild: function(/*dijit._Widget*/ widget){ // summary: // Setup for each child widget // description: - // Sets tabIndex=-1 on each child, so that the tab key will + // Sets tabIndex=-1 on each child, so that the tab key will // leave the container rather than visiting each child. // tags: // private @@ -15618,6 +16426,12 @@ dojo.declare("dijit._KeyNavContainer", return this._getNextFocusableChild(null, 1); // dijit._Widget }, + _getLastFocusableChild: function(){ + // summary: + // Returns last child that can be focused + return this._getNextFocusableChild(null, -1); // dijit._Widget + }, + _getNextFocusableChild: function(child, dir){ // summary: // Returns the next or previous focusable child, compared @@ -15665,7 +16479,7 @@ dojo.declare("dijit.MenuItem", // Make 3 columns // icon, label, and expand arrow (BiDi-dependent) indicating sub-menu - templateString: dojo.cache("dijit", "templates/MenuItem.html", "<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"), + templateString: dojo.cache("dijit", "templates/MenuItem.html", "<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"), attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { label: { node: "containerNode", type: "innerHTML" }, @@ -15702,9 +16516,8 @@ dojo.declare("dijit.MenuItem", } }, - postCreate: function(){ + buildRendering: function(){ this.inherited(arguments); - dojo.setSelectable(this.domNode, false); var label = this.id+"_text"; dojo.attr(this.containerNode, "id", label); if(this.accelKeyNode){ @@ -15712,6 +16525,7 @@ dojo.declare("dijit.MenuItem", label += " " + this.id + "_accel"; } dijit.setWaiState(this.domNode, "labelledby", label); + dojo.setSelectable(this.domNode, false); }, _onHover: function(){ @@ -15734,11 +16548,10 @@ dojo.declare("dijit.MenuItem", // then unselect it this.getParent().onItemUnhover(this); - // _onUnhover() is called when the menu is hidden (collapsed), due to clicking - // a MenuItem and having it execut. When that happens, FF and IE don't generate - // an onmouseout event for the MenuItem, so give _CssStateMixin some help - this._hovering = false; - this._setStateClass(); + // When menu is hidden (collapsed) due to clicking a MenuItem and having it execute, + // FF and IE don't generate an onmouseout event for the MenuItem. + // So, help out _CssStateMixin in this case. + this._set("hovering", false); }, _onClick: function(evt){ @@ -15823,19 +16636,21 @@ dojo.declare("dijit.MenuItem", // summary: // Hook for attr('disabled', ...) to work. // Enable or disable this menu item. - this.disabled = value; + dijit.setWaiState(this.focusNode, 'disabled', value ? 'true' : 'false'); + this._set("disabled", value); }, _setAccelKeyAttr: function(/*String*/ value){ // summary: // Hook for attr('accelKey', ...) to work. // Set accelKey on this menu item. - this.accelKey=value; this.accelKeyNode.style.display=value?"":"none"; this.accelKeyNode.innerHTML=value; //have to use colSpan to make it work in IE dojo.attr(this.containerNode,'colSpan',value?"1":"2"); + + this._set("accelKey", value); } }); @@ -15907,7 +16722,6 @@ dojo.declare("dijit.PopupMenuItem", } }); - } if(!dojo._hasResource["dijit.CheckedMenuItem"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -15922,7 +16736,7 @@ dojo.declare("dijit.CheckedMenuItem", // summary: // A checkbox-like menu item for toggling on and off - templateString: dojo.cache("dijit", "templates/CheckedMenuItem.html", "<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">✓</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\"> </td>\n</tr>\n"), + templateString: dojo.cache("dijit", "templates/CheckedMenuItem.html", "<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" role=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">✓</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\"> </td>\n</tr>\n"), // checked: Boolean // Our checked state @@ -15933,7 +16747,7 @@ dojo.declare("dijit.CheckedMenuItem", // Sets the class and state for the check box. dojo.toggleClass(this.domNode, "dijitCheckedMenuItemChecked", checked); dijit.setWaiState(this.domNode, "checked", checked); - this.checked = checked; + this._set("checked", checked); }, onChange: function(/*Boolean*/ checked){ @@ -15974,7 +16788,8 @@ dojo.declare("dijit.MenuSeparator", templateString: dojo.cache("dijit", "templates/MenuSeparator.html", "<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n"), - postCreate: function(){ + buildRendering: function(){ + this.inherited(arguments); dojo.setSelectable(this.domNode, false); }, @@ -15988,7 +16803,6 @@ dojo.declare("dijit.MenuSeparator", } }); - } if(!dojo._hasResource["dijit.Menu"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -16001,6 +16815,11 @@ dojo.provide("dijit.Menu"); + + + +// "dijit/MenuItem", "dijit/PopupMenuItem", "dijit/CheckedMenuItem", "dijit/MenuSeparator" for Back-compat (TODO: remove in 2.0) + dojo.declare("dijit._MenuBase", [dijit._Widget, dijit._Templated, dijit._KeyNavContainer], { @@ -16277,8 +17096,7 @@ dojo.declare("dijit._MenuBase", // menus (similar to TAB navigation) but the menu is not active // (ie no dropdown) until an item is clicked. this.isActive = true; - dojo.addClass(this.domNode, "dijitMenuActive"); - dojo.removeClass(this.domNode, "dijitMenuPassive"); + dojo.replaceClass(this.domNode, "dijitMenuActive", "dijitMenuPassive"); }, onOpen: function(/*Event*/ e){ @@ -16297,8 +17115,7 @@ dojo.declare("dijit._MenuBase", // summary: // Mark this menu's state as inactive. this.isActive = false; // don't do this in _onBlur since the state is pending-close until we get here - dojo.removeClass(this.domNode, "dijitMenuActive"); - dojo.addClass(this.domNode, "dijitMenuPassive"); + dojo.replaceClass(this.domNode, "dijitMenuPassive", "dijitMenuActive"); }, onClose: function(){ @@ -16321,16 +17138,25 @@ dojo.declare("dijit._MenuBase", // tags: // private this._stopPopupTimer(); - if(this.focusedChild){ // unhighlight the focused item - this.focusedChild._setSelected(false); - this.focusedChild._onUnhover(); - this.focusedChild = null; - } + + var fromItem = this.focusedChild && this.focusedChild.from_item; + if(this.currentPopup){ + // If focus is on my child menu then move focus to me, + // because IE doesn't like it when you display:none a node with focus + if(dijit._curFocus && dojo.isDescendant(dijit._curFocus, this.currentPopup.domNode)){ + this.focusedChild.focusNode.focus(); + } // Close all popups that are open and descendants of this menu dijit.popup.close(this.currentPopup); this.currentPopup = null; } + + if(this.focusedChild){ // unhighlight the focused item + this.focusedChild._setSelected(false); + this.focusedChild._onUnhover(); + this.focusedChild = null; + } }, _onItemFocus: function(/*MenuItem*/ item){ @@ -16381,7 +17207,7 @@ dojo.declare("dijit.Menu", this._bindings = []; }, - templateString: dojo.cache("dijit", "templates/Menu.html", "<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" waiRole=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\" cellspacing=0>\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"), + templateString: dojo.cache("dijit", "templates/Menu.html", "<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\" cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"), baseClass: "dijitMenu", @@ -16408,7 +17234,7 @@ dojo.declare("dijit.Menu", this.bindDomNode(dojo.body()); }else{ // TODO: should have _setTargetNodeIds() method to handle initialization and a possible - // later attr('targetNodeIds', ...) call. There's also a problem that targetNodeIds[] + // later set('targetNodeIds', ...) call. There's also a problem that targetNodeIds[] // gets stale after calls to bindDomNode()/unBindDomNode() as it still is just the original list (see #9610) dojo.forEach(this.targetNodeIds, this.bindDomNode, this); } @@ -16521,7 +17347,7 @@ dojo.declare("dijit.Menu", this._scheduleOpen(evt.target, iframe); // no coords - open near target node } }) - ]; + ]; }); binding.connects = cn ? doConnects(cn) : []; @@ -16687,13 +17513,6 @@ dojo.declare("dijit.Menu", } ); -// Back-compat (TODO: remove in 2.0) - - - - - - } if(!dojo._hasResource["dijit.form.Select"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -16706,7 +17525,6 @@ dojo.provide("dijit.form.Select"); - dojo.declare("dijit.form._SelectMenu", dijit.Menu, { // summary: // An internally-used menu for dropdown that allows us a vertical scrollbar @@ -16727,6 +17545,16 @@ dojo.declare("dijit.form._SelectMenu", dijit.Menu, { dijit.setWaiRole(n,"presentation"); n.appendChild(o); }, + + postCreate: function(){ + // summary: + // stop mousemove from selecting text on IE to be consistent with other browsers + + this.inherited(arguments); + + this.connect(this.domNode, "onmousemove", dojo.stopEvent); + }, + resize: function(/*Object*/ mb){ // summary: // Overridden so that we are able to handle resizing our @@ -16755,7 +17583,7 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD baseClass: "dijitSelect", - templateString: dojo.cache("dijit.form", "templates/Select.html", "<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdojoAttachPoint=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\twaiRole=\"combobox\" waiState=\"haspopup-true\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" waiRole=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" dojoAttachPoint=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} dojoAttachPoint=\"valueNode\" value=\"${value}\" waiState=\"hidden-true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdojoAttachPoint=\"titleNode\" waiRole=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t></tr></tbody\n></table>\n"), + templateString: dojo.cache("dijit.form", "templates/Select.html", "<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdojoAttachPoint=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"combobox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" role=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" dojoAttachPoint=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} dojoAttachPoint=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdojoAttachPoint=\"titleNode\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">▼</div\n\t\t></td\n\t></tr></tbody\n></table>\n"), // attributeMap: Object // Add in our style to be applied to the focus node @@ -16769,13 +17597,17 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD // Shows current state (ie, validation result) of input (Normal, Warning, or Error) state: "", + // message: String + // Currently displayed error/prompt message + message: "", + // tooltipPosition: String[] // See description of dijit.Tooltip.defaultPosition for details on this parameter. tooltipPosition: [], // emptyLabel: string // What to display in an "empty" dropdown - emptyLabel: "", + emptyLabel: " ", // _isLoaded: Boolean // Whether or not we have been loaded @@ -16789,11 +17621,11 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD // summary: // Set the value to be the first, or the selected index this.inherited(arguments); + // set value from selected option if(this.options.length && !this.value && this.srcNodeRef){ - var si = this.srcNodeRef.selectedIndex; - this.value = this.options[si != -1 ? si : 0].value; + var si = this.srcNodeRef.selectedIndex || 0; // || 0 needed for when srcNodeRef is not a SELECT + this.value = this.options[si >= 0 ? si : 0].value; } - // Create the dropDown widget this.dropDown = new dijit.form._SelectMenu({id: this.id + "_menu"}); dojo.addClass(this.dropDown.domNode, this.baseClass + "Menu"); @@ -16803,7 +17635,7 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD // summary: // For the given option, return the menu item that should be // used to display it. This can be overridden as needed - if(!option.value){ + if(!option.value && !option.label){ // We are a separator (no label set for it) return new dijit.MenuSeparator(); }else{ @@ -16811,7 +17643,7 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD var click = dojo.hitch(this, "_setValueAttr", option); var item = new dijit.MenuItem({ option: option, - label: option.label, + label: option.label || this.emptyLabel, onClick: click, disabled: option.disabled || false }); @@ -16865,7 +17697,6 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD this._updateSelection(); } - var len = this.options.length; this._isLoaded = false; this._childrenLoaded = true; @@ -16883,10 +17714,9 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD _setDisplay: function(/*String*/ newDisplay){ // summary: // sets the display for the given value (or values) - this.containerNode.innerHTML = '<span class="dijitReset dijitInline ' + this.baseClass + 'Label">' + - (newDisplay || this.emptyLabel || " ") + - '</span>'; - dijit.setWaiState(this.focusNode, "valuetext", (newDisplay || this.emptyLabel || " ") ); + var lbl = newDisplay || this.emptyLabel; + this.containerNode.innerHTML = '<span class="dijitReset dijitInline ' + this.baseClass + 'Label">' + lbl + '</span>'; + dijit.setWaiState(this.focusNode, "valuetext", lbl); }, validate: function(/*Boolean*/ isFocused){ @@ -16898,12 +17728,11 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD // set the value. var isValid = this.isValid(isFocused); - this.state = isValid ? "" : "Error"; - this._setStateClass(); + this._set("state", isValid ? "" : "Error"); dijit.setWaiState(this.focusNode, "invalid", isValid ? "false" : "true"); var message = isValid ? "" : this._missingMsg; - if(this._message !== message){ - this._message = message; + if(this.message !== message){ + this._set("message", message); dijit.hideTooltip(this.domNode); if(message){ dijit.showTooltip(message, this.domNode, this.tooltipPosition, !this.isLeftToRight()); @@ -16914,9 +17743,9 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD isValid: function(/*Boolean*/ isFocused){ // summary: - // Whether or not this is a valid value. The only way a Select + // Whether or not this is a valid value. The only way a Select // can be invalid is when it's required but nothing is selected. - return (!this.required || !(/^\s*$/.test(this.value))); + return (!this.required || this.value === 0 || !(/^\s*$/.test(this.value || ""))); // handle value is null or undefined }, reset: function(){ @@ -16924,9 +17753,8 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD // Overridden so that the state will be cleared. this.inherited(arguments); dijit.hideTooltip(this.domNode); - this.state = ""; - this._setStateClass(); - delete this._message; + this._set("state", ""); + this._set("message", "") }, postMixInProperties: function(){ @@ -16938,10 +17766,17 @@ dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropD }, postCreate: function(){ + // summary: + // stop mousemove from selecting text on IE to be consistent with other browsers + this.inherited(arguments); - if(this.tableNode.style.width){ - dojo.addClass(this.domNode, this.baseClass + "FixedWidth"); - } + + this.connect(this.domNode, "onmousemove", dojo.stopEvent); + }, + + _setStyleAttr: function(/*String||Object*/ value){ + this.inherited(arguments); + dojo.toggleClass(this.domNode, this.baseClass + "FixedWidth", !!this.tableNode.style.width); }, isLoaded: function(){ @@ -17017,12 +17852,20 @@ dojo.declare("dijit.form.SimpleTextarea", postMixInProperties: function(){ // Copy value from srcNodeRef, unless user specified a value explicitly (or there is no srcNodeRef) + // TODO: parser will handle this in 2.0 if(!this.value && this.srcNodeRef){ this.value = this.srcNodeRef.value; } this.inherited(arguments); }, + buildRendering: function(){ + this.inherited(arguments); + if(dojo.isIE && this.cols){ // attribute selectors is not supported in IE6 + dojo.addClass(this.textbox, "dijitTextAreaCols"); + } + }, + filter: function(/*String*/ value){ // Override TextBox.filter to deal with newlines... specifically (IIRC) this is for IE which writes newlines // as \r\n instead of just \n @@ -17032,13 +17875,6 @@ dojo.declare("dijit.form.SimpleTextarea", return this.inherited(arguments); }, - postCreate: function(){ - this.inherited(arguments); - if(dojo.isIE && this.cols){ // attribute selectors is not supported in IE6 - dojo.addClass(this.textbox, "dijitTextAreaCols"); - } - }, - _previousValue: "", _onInput: function(/*Event?*/ e){ // Override TextBox._onInput() to enforce maxLength restriction @@ -17086,8 +17922,6 @@ dojo.provide("dijit.InlineEditBox"); - - dojo.declare("dijit.InlineEditBox", dijit._Widget, { @@ -17131,12 +17965,12 @@ dojo.declare("dijit.InlineEditBox", // rather than plain text (ex: `dijit.Editor`) renderAsHtml: false, - // editor: String - // Class name for Editor widget + // editor: String|Function + // Class name (or reference to the Class) for Editor widget editor: "dijit.form.TextBox", - // editorWrapper: String - // Class name for widget that wraps the editor widget, displaying save/cancel + // editorWrapper: String|Function + // Class name (or reference to the Class) for widget that wraps the editor widget, displaying save/cancel // buttons. editorWrapper: "dijit._InlineEditor", @@ -17144,6 +17978,10 @@ dojo.declare("dijit.InlineEditBox", // Set of parameters for editor, like {required: true} editorParams: {}, + // disabled: Boolean + // If true, clicking the InlineEditBox to edit it will have no effect. + disabled: false, + onChange: function(value){ // summary: // Set this handler to be notified of changes to value. @@ -17226,7 +18064,6 @@ dojo.declare("dijit.InlineEditBox", // summary: // Hook to make set("disabled", ...) work. // Set disabled state of widget. - this.disabled = disabled; dijit.setWaiState(this.domNode, "disabled", disabled); if(disabled){ this.displayNode.removeAttribute("tabIndex"); @@ -17234,6 +18071,7 @@ dojo.declare("dijit.InlineEditBox", this.displayNode.setAttribute("tabIndex", 0); } dojo.toggleClass(this.displayNode, "dijitInlineEditBoxDisplayModeDisabled", disabled); + this._set("disabled", disabled); }, _onMouseOver: function(){ @@ -17291,7 +18129,7 @@ dojo.declare("dijit.InlineEditBox", var placeholder = dojo.create("span", null, this.domNode, "before"); // Create the editor wrapper (the thing that holds the editor widget and the save/cancel buttons) - var ewc = dojo.getObject(this.editorWrapper); + var ewc = typeof this.editorWrapper == "string" ? dojo.getObject(this.editorWrapper) : this.editorWrapper; this.wrapperWidget = new ewc({ value: this.value, buttonSave: this.buttonSave, @@ -17305,6 +18143,9 @@ dojo.declare("dijit.InlineEditBox", save: dojo.hitch(this, "save"), cancel: dojo.hitch(this, "cancel") }, placeholder); + if(!this._started){ + this.startup(); + } } var ww = this.wrapperWidget; @@ -17350,7 +18191,7 @@ dojo.declare("dijit.InlineEditBox", }, destroy: function(){ - if(this.wrapperWidget){ + if(this.wrapperWidget && !this.wrapperWidget._destroyed){ this.wrapperWidget.destroy(); delete this.wrapperWidget; } @@ -17387,9 +18228,6 @@ dojo.declare("dijit.InlineEditBox", var value = ww.getValue(); this.set('value', value); // display changed, formatted value - // tell the world that we have changed - setTimeout(dojo.hitch(this, "onChange", value), 0); // setTimeout prevents browser freeze for long-running event handlers - this._showText(focus); // set focus as needed }, @@ -17407,11 +18245,15 @@ dojo.declare("dijit.InlineEditBox", // Hook to make set("value", ...) work. // Inserts specified HTML value into this node, or an "input needed" character if node is blank. - this.value = val = dojo.trim(val); - if(!this.renderAsHtml){ - val = val.replace(/&/gm, "&").replace(/</gm, "<").replace(/>/gm, ">").replace(/"/gm, """).replace(/\n/g, "<br>"); + val = dojo.trim(val); + var renderVal = this.renderAsHtml ? val : val.replace(/&/gm, "&").replace(/</gm, "<").replace(/>/gm, ">").replace(/"/gm, """).replace(/\n/g, "<br>"); + this.displayNode.innerHTML = renderVal || this.noValueIndicator; + this._set("value", val); + + if(this._started){ + // tell the world that we have changed + setTimeout(dojo.hitch(this, "onChange", val), 0); // setTimeout prevents browser freeze for long-running event handlers } - this.displayNode.innerHTML = val || this.noValueIndicator; }, getValue: function(){ @@ -17456,7 +18298,7 @@ dojo.declare( // value: String // Value as an HTML string or plain text string, depending on renderAsHTML flag - templateString: dojo.cache("dijit", "templates/InlineEditBox.html", "<span dojoAttachPoint=\"editNode\" waiRole=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdojoAttachEvent=\"onkeypress: _onKeyPress\"\n\t><span dojoAttachPoint=\"editorPlaceholder\"></span\n\t><span dojoAttachPoint=\"buttonContainer\"\n\t\t><button class='saveButton' dojoAttachPoint=\"saveButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:save\" label=\"${buttonSave}\"></button\n\t\t><button class='cancelButton' dojoAttachPoint=\"cancelButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:cancel\" label=\"${buttonCancel}\"></button\n\t></span\n></span>\n"), + templateString: dojo.cache("dijit", "templates/InlineEditBox.html", "<span data-dojo-attach-point=\"editNode\" role=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdata-dojo-attach-event=\"onkeypress: _onKeyPress\"\n\t><span data-dojo-attach-point=\"editorPlaceholder\"></span\n\t><span data-dojo-attach-point=\"buttonContainer\"\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonSave}', 'class': 'saveButton'\"\n\t\t\tdata-dojo-attach-point=\"saveButton\" data-dojo-attach-event=\"onClick:save\"></button\n\t\t><button data-dojo-type=\"dijit.form.Button\" data-dojo-props=\"label: '${buttonCancel}', 'class': 'cancelButton'\"\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event=\"onClick:cancel\"></button\n\t></span\n></span>\n"), widgetsInTemplate: true, postMixInProperties: function(){ @@ -17467,9 +18309,11 @@ dojo.declare( }, this); }, - postCreate: function(){ + buildRendering: function(){ + this.inherited(arguments); + // Create edit widget in place in the template - var cls = dojo.getObject(this.editor); + var cls = typeof this.editor == "string" ? dojo.getObject(this.editor) : this.editor; // Copy the style from the source // Don't copy ALL properties though, just the necessary/applicable ones. @@ -17504,13 +18348,21 @@ dojo.declare( lang: this.lang }); editorParams[ "displayedValue" in cls.prototype ? "displayedValue" : "value"] = this.value; - var ew = (this.editWidget = new cls(editorParams, this.editorPlaceholder)); + this.editWidget = new cls(editorParams, this.editorPlaceholder); if(this.inlineEditBox.autoSave){ // Remove the save/cancel buttons since saving is done by simply tabbing away or // selecting a value from the drop down list dojo.destroy(this.buttonContainer); + } + }, + postCreate: function(){ + this.inherited(arguments); + + var ew = this.editWidget; + + if(this.inlineEditBox.autoSave){ // Selecting a value from a drop down list causes an onChange event and then we save this.connect(ew, "onChange", "_onChange"); @@ -17520,7 +18372,7 @@ dojo.declare( this.connect(ew, "onKeyPress", "_onKeyPress"); }else{ // If possible, enable/disable save button based on whether the user has changed the value - if("intermediateChanges" in cls.prototype){ + if("intermediateChanges" in ew){ ew.set("intermediateChanges", true); this.connect(ew, "onChange", "_onIntermediateChange"); this.saveButton.set("disabled", true); @@ -17670,7 +18522,7 @@ dojo.__cookieProps = function(){ dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/props){ - // summary: + // summary: // Get or set a cookie. // description: // If one argument is passed, returns the value of the cookie @@ -17679,17 +18531,17 @@ dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/ // Name of the cookie // value: // Value for the cookie - // props: + // props: // Properties for the cookie // example: // set a cookie with the JSON-serialized contents of an object which // will expire 5 days from now: // | dojo.cookie("configObj", dojo.toJson(config), { expires: 5 }); - // + // // example: // de-serialize a cookie back into a JavaScript object: // | var config = dojo.fromJson(dojo.cookie("configObj")); - // + // // example: // delete a cookie: // | dojo.cookie("configObj", null, {expires: -1}); @@ -17701,7 +18553,7 @@ dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/ props = props || {}; // FIXME: expires=0 seems to disappear right away, not on close? (FF3) Change docs? var exp = props.expires; - if(typeof exp == "number"){ + if(typeof exp == "number"){ var d = new Date(); d.setTime(d.getTime() + exp*24*60*60*1000); exp = props.expires = d; @@ -17722,7 +18574,7 @@ dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/ dojo.cookie.isSupported = function(){ // summary: // Use to determine if the current browser supports cookies or not. - // + // // Returns true if user allows cookies. // Returns false if user doesn't allow cookies. @@ -17758,7 +18610,7 @@ dojo.declare( // Monitors the specified StackContainer, and whenever a page is // added, deleted, or selected, updates itself accordingly. - templateString: "<span wairole='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>", + templateString: "<span role='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>", // containerId: [const] String // The id of the page container that I point to @@ -17768,11 +18620,19 @@ dojo.declare( // The name of the button widget to create to correspond to each page buttonWidget: "dijit.layout._StackButton", - postCreate: function(){ - dijit.setWaiRole(this.domNode, "tablist"); - + constructor: function(){ this.pane2button = {}; // mapping from pane id to buttons - this.pane2handles = {}; // mapping from pane id to this.connect() handles + this.pane2connects = {}; // mapping from pane id to this.connect() handles + this.pane2watches = {}; // mapping from pane id to watch() handles + }, + + buildRendering: function(){ + this.inherited(arguments); + dijit.setWaiRole(this.domNode, "tablist"); // TODO: unneeded? it's in template above. + }, + + postCreate: function(){ + this.inherited(arguments); // Listen to notifications from StackContainer this.subscribe(this.containerId+"-startup", "onStartup"); @@ -17822,22 +18682,25 @@ dojo.declare( title: page.tooltip }); dijit.setWaiState(button.focusNode,"selected", "false"); - this.pane2handles[page.id] = [ - this.connect(page, 'set', function(name, value){ - var buttonAttr = { - title: 'label', - showTitle: 'showLabel', - iconClass: 'iconClass', - closable: 'closeButton', - tooltip: 'title' - }[name]; - if(buttonAttr){ - button.set(buttonAttr, value); - } - }), + + + // map from page attribute to corresponding tab button attribute + var pageAttrList = ["title", "showTitle", "iconClass", "closable", "tooltip"], + buttonAttrList = ["label", "showLabel", "iconClass", "closeButton", "title"]; + + // watch() so events like page title changes are reflected in tab button + this.pane2watches[page.id] = dojo.map(pageAttrList, function(pageAttr, idx){ + return page.watch(pageAttr, function(name, oldVal, newVal){ + button.set(buttonAttrList[idx], newVal); + }); + }); + + // connections so that clicking a tab button selects the corresponding page + this.pane2connects[page.id] = [ this.connect(button, 'onClick', dojo.hitch(this,"onButtonClick", page)), this.connect(button, 'onClickCloseButton', dojo.hitch(this,"onCloseButtonClick", page)) ]; + this.addChild(button, insertIndex); this.pane2button[page.id] = button; page.controlButton = button; // this value might be overwritten if two tabs point to same container @@ -17860,8 +18723,13 @@ dojo.declare( // private if(this._currentChild === page){ this._currentChild = null; } - dojo.forEach(this.pane2handles[page.id], this.disconnect, this); - delete this.pane2handles[page.id]; + + // disconnect/unwatch connections/watches related to page being removed + dojo.forEach(this.pane2connects[page.id], dojo.hitch(this, "disconnect")); + delete this.pane2connects[page.id]; + dojo.forEach(this.pane2watches[page.id], function(w){ w.unwatch(); }); + delete this.pane2watches[page.id]; + var button = this.pane2button[page.id]; if(button){ this.removeChild(button); @@ -17963,6 +18831,14 @@ dojo.declare( case k.PAGE_DOWN: if(e.ctrlKey){ forward = true; } break; + case k.HOME: + case k.END: + var children = this.getChildren(); + if(children && children.length){ + children[e.charOrCode == k.HOME ? 0 : children.length-1].onClick(); + } + dojo.stopEvent(e); + break; case k.DELETE: if(this._currentChild.closable){ this.onCloseButtonClick(this._currentChild); @@ -17982,7 +18858,7 @@ dojo.declare( } } } - // handle page navigation + // handle next/previous page navigation (left/right arrow, etc.) if(forward !== null){ this.adjacent(forward).onClick(); dojo.stopEvent(e); @@ -18016,9 +18892,9 @@ dojo.declare("dijit.layout._StackButton", // Probably we should be calling this.startupKeyNavChildren() instead. tabIndex: "-1", - postCreate: function(/*Event*/ evt){ - dijit.setWaiRole((this.focusNode || this.domNode), "tab"); + buildRendering: function(/*Event*/ evt){ this.inherited(arguments); + dijit.setWaiRole((this.focusNode || this.domNode), "tab"); }, onClick: function(/*Event*/ evt){ @@ -18040,7 +18916,6 @@ dojo.declare("dijit.layout._StackButton", } }); - } if(!dojo._hasResource["dijit.layout.StackContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -18052,6 +18927,7 @@ dojo.provide("dijit.layout.StackContainer"); + dojo.declare( "dijit.layout.StackContainer", dijit.layout._LayoutWidget, @@ -18085,10 +18961,14 @@ dojo.declare( selectedChildWidget: null, =====*/ - postCreate: function(){ + buildRendering: function(){ this.inherited(arguments); dojo.addClass(this.domNode, "dijitLayoutContainer"); dijit.setWaiRole(this.containerNode, "tabpanel"); + }, + + postCreate: function(){ + this.inherited(arguments); this.connect(this.domNode, "onkeypress", this._onKeyPress); }, @@ -18144,8 +19024,7 @@ dojo.declare( this.inherited(arguments); - dojo.removeClass(child.domNode, "dijitVisible"); - dojo.addClass(child.domNode, "dijitHidden"); + dojo.replaceClass(child.domNode, "dijitHidden", "dijitVisible"); // remove the title attribute so it doesn't show up when i hover // over a node @@ -18218,17 +19097,19 @@ dojo.declare( if(this.selectedChildWidget != page){ // Deselect old page and select new one - this._transition(page, this.selectedChildWidget, animate); - this.selectedChildWidget = page; + var d = this._transition(page, this.selectedChildWidget, animate); + this._set("selectedChildWidget", page); dojo.publish(this.id+"-selectChild", [page]); if(this.persist){ dojo.cookie(this.id + "_selectedChild", this.selectedChildWidget.id); } } + + return d; // If child has an href, promise that fires when the child's href finishes loading }, - _transition: function(/*dijit._Widget*/newWidget, /*dijit._Widget*/oldWidget){ + _transition: function(/*dijit._Widget*/ newWidget, /*dijit._Widget*/ oldWidget, /*Boolean*/ animate){ // summary: // Hide the old widget and display the new widget. // Subclasses should override this. @@ -18237,7 +19118,7 @@ dojo.declare( if(oldWidget){ this._hideChild(oldWidget); } - this._showChild(newWidget); + var d = this._showChild(newWidget); // Size the new widget, in case this is the first time it's being shown, // or I have been resized since the last time it was shown. @@ -18251,6 +19132,8 @@ dojo.declare( newWidget.resize(); } } + + return d; // If child has an href, promise that fires when the child's href finishes loading }, _adjacent: function(/*Boolean*/ forward){ @@ -18265,13 +19148,13 @@ dojo.declare( forward: function(){ // summary: // Advance to next page. - this.selectChild(this._adjacent(true), true); + return this.selectChild(this._adjacent(true), true); }, back: function(){ // summary: // Go back to previous page. - this.selectChild(this._adjacent(false), true); + return this.selectChild(this._adjacent(false), true); }, _onKeyPress: function(e){ @@ -18289,24 +19172,24 @@ dojo.declare( // summary: // Show the specified child by changing it's CSS, and call _onShow()/onShow() so // it can do any updates it needs regarding loading href's etc. + // returns: + // Promise that fires when page has finished showing, or true if there's no href var children = this.getChildren(); page.isFirstChild = (page == children[0]); page.isLastChild = (page == children[children.length-1]); - page.selected = true; + page._set("selected", true); - dojo.removeClass(page.domNode, "dijitHidden"); - dojo.addClass(page.domNode, "dijitVisible"); + dojo.replaceClass(page.domNode, "dijitVisible", "dijitHidden"); - page._onShow(); + return page._onShow() || true; }, _hideChild: function(/*dijit._Widget*/ page){ // summary: // Hide the specified child by changing it's CSS, and call _onHide() so // it's notified. - page.selected=false; - dojo.removeClass(page.domNode, "dijitVisible"); - dojo.addClass(page.domNode, "dijitHidden"); + page._set("selected", false); + dojo.replaceClass(page.domNode, "dijitHidden", "dijitVisible"); page.onHide(); }, @@ -18325,7 +19208,7 @@ dojo.declare( } }, - destroyDescendants: function(/*Boolean*/preserveDom){ + destroyDescendants: function(/*Boolean*/ preserveDom){ dojo.forEach(this.getChildren(), function(child){ this.removeChild(child); child.destroyRecursive(preserveDom); @@ -18336,7 +19219,6 @@ dojo.declare( // For back-compat, remove for 2.0 - // These arguments can be specified for the children of a StackContainer. // Since any widget can be specified as a StackContainer child, mix them // into the base widget class. (This is a hack, but it's effective.) @@ -18401,8 +19283,28 @@ dojo.provide("dijit.layout.AccordionContainer"); +//dojo.require("dijit.layout.AccordionPane "); // for back compat, remove for 2.0 - // for back compat, remove for 2.0 +// Design notes: +// +// An AccordionContainer is a StackContainer, but each child (typically ContentPane) +// is wrapped in a _AccordionInnerContainer. This is hidden from the caller. +// +// The resulting markup will look like: +// +// <div class=dijitAccordionContainer> +// <div class=dijitAccordionInnerContainer> (one pane) +// <div class=dijitAccordionTitle> (title bar) ... </div> +// <div class=dijtAccordionChildWrapper> (content pane) </div> +// </div> +// </div> +// +// Normally the dijtAccordionChildWrapper is hidden for all but one child (the shown +// child), so the space for the content pane is all the title bars + the one dijtAccordionChildWrapper, +// which on claro has a 1px border plus a 2px bottom margin. +// +// During animation there are two dijtAccordionChildWrapper's shown, so we need +// to compensate for that. dojo.declare( "dijit.layout.AccordionContainer", @@ -18428,17 +19330,18 @@ dojo.declare( // The name of the widget used to display the title of each pane buttonWidget: "dijit.layout._AccordionButton", +/*===== // _verticalSpace: Number // Pixels of space available for the open pane // (my content box size minus the cumulative size of all the title bars) _verticalSpace: 0, - +=====*/ baseClass: "dijitAccordionContainer", - postCreate: function(){ - this.domNode.style.overflow = "hidden"; + buildRendering: function(){ this.inherited(arguments); - dijit.setWaiRole(this.domNode, "tablist"); + this.domNode.style.overflow = "hidden"; // TODO: put this in dijit.css + dijit.setWaiRole(this.domNode, "tablist"); // TODO: put this in template }, startup: function(){ @@ -18452,20 +19355,6 @@ dojo.declare( } }, - _getTargetHeight: function(/* Node */ node){ - // summary: - // For the given node, returns the height that should be - // set to achieve our vertical space (subtract any padding - // we may have). - // - // This is used by the animations. - // - // TODO: I don't think this works correctly in IE quirks when an elements - // style.height including padding and borders - var cs = dojo.getComputedStyle(node); - return Math.max(this._verticalSpace - dojo._getPadBorderExtents(node, cs).h - dojo._getMarginExtents(node, cs).h, 0); - }, - layout: function(){ // Implement _LayoutWidget.layout() virtual method. // Set the height of the open pane based on what room remains. @@ -18474,25 +19363,31 @@ dojo.declare( if(!openPane){ return;} - var openPaneContainer = openPane._wrapperWidget.domNode, - openPaneContainerMargin = dojo._getMarginExtents(openPaneContainer), - openPaneContainerPadBorder = dojo._getPadBorderExtents(openPaneContainer), + // space taken up by title, plus wrapper div (with border/margin) for open pane + var wrapperDomNode = openPane._wrapperWidget.domNode, + wrapperDomNodeMargin = dojo._getMarginExtents(wrapperDomNode), + wrapperDomNodePadBorder = dojo._getPadBorderExtents(wrapperDomNode), + wrapperContainerNode = openPane._wrapperWidget.containerNode, + wrapperContainerNodeMargin = dojo._getMarginExtents(wrapperContainerNode), + wrapperContainerNodePadBorder = dojo._getPadBorderExtents(wrapperContainerNode), mySize = this._contentBox; // get cumulative height of all the unselected title bars var totalCollapsedHeight = 0; dojo.forEach(this.getChildren(), function(child){ if(child != openPane){ - totalCollapsedHeight += dojo.marginBox(child._wrapperWidget.domNode).h; + totalCollapsedHeight += dojo._getMarginSize(child._wrapperWidget.domNode).h; } }); - this._verticalSpace = mySize.h - totalCollapsedHeight - openPaneContainerMargin.h - - openPaneContainerPadBorder.h - openPane._buttonWidget.getTitleHeight(); + this._verticalSpace = mySize.h - totalCollapsedHeight - wrapperDomNodeMargin.h + - wrapperDomNodePadBorder.h - wrapperContainerNodeMargin.h - wrapperContainerNodePadBorder.h + - openPane._buttonWidget.getTitleHeight(); // Memo size to make displayed child this._containerContentBox = { h: this._verticalSpace, - w: this._contentBox.w - openPaneContainerMargin.w - openPaneContainerPadBorder.w + w: this._contentBox.w - wrapperDomNodeMargin.w - wrapperDomNodePadBorder.w + - wrapperContainerNodeMargin.w - wrapperContainerNodePadBorder.w }; if(openPane){ @@ -18516,7 +19411,7 @@ dojo.declare( this.inherited(arguments); }, - addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ + addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ if(this._started){ // Adding a child to a started Accordion is complicated because children have // wrapper widgets. Default code path (calling this.inherited()) would add @@ -18532,7 +19427,7 @@ dojo.declare( // Then stick the wrapper widget around the child widget this._setupChild(child); - // Code below copied from StackContainer + // Code below copied from StackContainer dojo.publish(this.id+"-addChild", [child, insertIndex]); this.layout(); if(!this.selectedChildWidget){ @@ -18548,9 +19443,15 @@ dojo.declare( removeChild: function(child){ // Overrides _LayoutWidget.removeChild(). - // destroy wrapper widget first, before StackContainer.getChildren() call - child._wrapperWidget.destroy(); - delete child._wrapperWidget; + // Destroy wrapper widget first, before StackContainer.getChildren() call. + // Replace wrapper widget with true child widget (ContentPane etc.). + // This step only happens if the AccordionContainer has been started; otherwise there's no wrapper. + if(child._wrapperWidget){ + dojo.place(child.domNode, child._wrapperWidget.domNode, "after"); + child._wrapperWidget.destroy(); + delete child._wrapperWidget; + } + dojo.removeClass(child.domNode, "dijitHidden"); this.inherited(arguments); @@ -18564,23 +19465,53 @@ dojo.declare( }, destroy: function(){ + if(this._animation){ + this._animation.stop(); + } dojo.forEach(this.getChildren(), function(child){ - child._wrapperWidget.destroy(); + // If AccordionContainer has been started, then each child has a wrapper widget which + // also needs to be destroyed. + if(child._wrapperWidget){ + child._wrapperWidget.destroy(); + }else{ + child.destroyRecursive(); + } }); this.inherited(arguments); }, - _transition: function(/*dijit._Widget?*/newWidget, /*dijit._Widget?*/oldWidget, /*Boolean*/ animate){ + _showChild: function(child){ + // Override StackContainer._showChild() to set visibility of _wrapperWidget.containerNode + child._wrapperWidget.containerNode.style.display="block"; + return this.inherited(arguments); + }, + + _hideChild: function(child){ + // Override StackContainer._showChild() to set visibility of _wrapperWidget.containerNode + child._wrapperWidget.containerNode.style.display="none"; + this.inherited(arguments); + }, + + _transition: function(/*dijit._Widget?*/ newWidget, /*dijit._Widget?*/ oldWidget, /*Boolean*/ animate){ // Overrides StackContainer._transition() to provide sliding of title bars etc. -//TODO: should be able to replace this with calls to slideIn/slideOut - if(this._inTransition){ return; } - var animations = []; - var paneHeight = this._verticalSpace; + if(dojo.isIE < 8){ + // workaround animation bugs by not animating; not worth supporting animation for IE6 & 7 + animate = false; + } + + if(this._animation){ + // there's an in-progress animation. speedily end it so we can do the newly requested one + this._animation.stop(true); + delete this._animation; + } + + var self = this; + if(newWidget){ newWidget._wrapperWidget.set("selected", true); - this._showChild(newWidget); // prepare widget to be slid in + var d = this._showChild(newWidget); // prepare widget to be slid in // Size the new widget, in case this is the first time it's being shown, // or I have been resized since the last time it was shown. @@ -18588,74 +19519,51 @@ dojo.declare( if(this.doLayout && newWidget.resize){ newWidget.resize(this._containerContentBox); } - - var newContents = newWidget.domNode; - dojo.addClass(newContents, "dijitVisible"); - dojo.removeClass(newContents, "dijitHidden"); - - if(animate){ - var newContentsOverflow = newContents.style.overflow; - newContents.style.overflow = "hidden"; - animations.push(dojo.animateProperty({ - node: newContents, - duration: this.duration, - properties: { - height: { start: 1, end: this._getTargetHeight(newContents) } - }, - onEnd: function(){ - newContents.style.overflow = newContentsOverflow; - - // Kick IE to workaround layout bug, see #11415 - if(dojo.isIE){ - setTimeout(function(){ - dojo.removeClass(newContents.parentNode, "dijitAccordionInnerContainerFocused"); - setTimeout(function(){ - dojo.addClass(newContents.parentNode, "dijitAccordionInnerContainerFocused"); - }, 0); - }, 0); - } - } - })); - } } + if(oldWidget){ oldWidget._wrapperWidget.set("selected", false); - var oldContents = oldWidget.domNode; - if(animate){ - var oldContentsOverflow = oldContents.style.overflow; - oldContents.style.overflow = "hidden"; - animations.push(dojo.animateProperty({ - node: oldContents, - duration: this.duration, - properties: { - height: { start: this._getTargetHeight(oldContents), end: 1 } - }, - onEnd: function(){ - dojo.addClass(oldContents, "dijitHidden"); - dojo.removeClass(oldContents, "dijitVisible"); - oldContents.style.overflow = oldContentsOverflow; - if(oldWidget.onHide){ - oldWidget.onHide(); - } - } - })); - }else{ - dojo.addClass(oldContents, "dijitHidden"); - dojo.removeClass(oldContents, "dijitVisible"); - if(oldWidget.onHide){ - oldWidget.onHide(); - } + if(!animate){ + this._hideChild(oldWidget); } } if(animate){ - this._inTransition = true; - var combined = dojo.fx.combine(animations); - combined.onEnd = dojo.hitch(this, function(){ - delete this._inTransition; + var newContents = newWidget._wrapperWidget.containerNode, + oldContents = oldWidget._wrapperWidget.containerNode; + + // During the animation we will be showing two dijitAccordionChildWrapper nodes at once, + // which on claro takes up 4px extra space (compared to stable AccordionContainer). + // Have to compensate for that by immediately shrinking the pane being closed. + var wrapperContainerNode = newWidget._wrapperWidget.containerNode, + wrapperContainerNodeMargin = dojo._getMarginExtents(wrapperContainerNode), + wrapperContainerNodePadBorder = dojo._getPadBorderExtents(wrapperContainerNode), + animationHeightOverhead = wrapperContainerNodeMargin.h + wrapperContainerNodePadBorder.h; + + oldContents.style.height = (self._verticalSpace - animationHeightOverhead) + "px"; + + this._animation = new dojo.Animation({ + node: newContents, + duration: this.duration, + curve: [1, this._verticalSpace - animationHeightOverhead - 1], + onAnimate: function(value){ + value = Math.floor(value); // avoid fractional values + newContents.style.height = value + "px"; + oldContents.style.height = (self._verticalSpace - animationHeightOverhead - value) + "px"; + }, + onEnd: function(){ + delete self._animation; + newContents.style.height = "auto"; + oldWidget._wrapperWidget.containerNode.style.display = "none"; + oldContents.style.height = "auto"; + self._hideChild(oldWidget); + } }); - combined.play(); - } + this._animation.onStop = this._animation.onEnd; + this._animation.play(); + } + + return d; // If child has an href, promise that fires when the widget has finished loading }, // note: we are treating the container as controller here @@ -18666,10 +19574,7 @@ dojo.declare( // This is called from a handler on AccordionContainer.domNode // (setup in StackContainer), and is also called directly from // the click handler for accordion labels - if(this._inTransition || this.disabled || e.altKey || !(fromTitle || e.ctrlKey)){ - if(this._inTransition){ - dojo.stopEvent(e); - } + if(this.disabled || e.altKey || !(fromTitle || e.ctrlKey)){ return; } var k = dojo.keys, @@ -18694,16 +19599,17 @@ dojo.declare("dijit.layout._AccordionInnerContainer", // When other widgets are added as children to an AccordionContainer they are wrapped in // this widget. +/*===== // buttonWidget: String // Name of class to use to instantiate title // (Wish we didn't have a separate widget for just the title but maintaining it // for backwards compatibility, is it worth it?) -/*===== buttonWidget: null, =====*/ + +/*===== // contentWidget: dijit._Widget // Pointer to the real child widget -/*===== contentWidget: null, =====*/ @@ -18713,7 +19619,15 @@ dojo.declare("dijit.layout._AccordionInnerContainer", isContainer: true, isLayoutContainer: true, - buildRendering: function(){ + buildRendering: function(){ + // Builds a template like: + // <div class=dijitAccordionInnerContainer> + // Button + // <div class=dijitAccordionChildWrapper> + // ContentPane + // </div> + // </div> + // Create wrapper div, placed where the child is now this.domNode = dojo.place("<div class='" + this.baseClass + "'>", this.contentWidget.domNode, "after"); @@ -18731,22 +19645,32 @@ dojo.declare("dijit.layout._AccordionInnerContainer", parent: this.parent })).placeAt(this.domNode); - // and then the actual content widget (changing it from prior-sibling to last-child) - dojo.place(this.contentWidget.domNode, this.domNode); + // and then the actual content widget (changing it from prior-sibling to last-child), + // wrapped by a <div class=dijitAccordionChildWrapper> + this.containerNode = dojo.place("<div class='dijitAccordionChildWrapper' style='display:none'>", this.domNode); + dojo.place(this.contentWidget.domNode, this.containerNode); }, postCreate: function(){ this.inherited(arguments); - this.connect(this.contentWidget, 'set', function(name, value){ - var mappedName = {title: "label", tooltip: "title", iconClass: "iconClass"}[name]; - if(mappedName){ - this.button.set(mappedName, value); - } - }, this); + + // Map changes in content widget's title etc. to changes in the button + var button = this.button; + this._contentWidgetWatches = [ + this.contentWidget.watch('title', dojo.hitch(this, function(name, oldValue, newValue){ + button.set("label", newValue); + })), + this.contentWidget.watch('tooltip', dojo.hitch(this, function(name, oldValue, newValue){ + button.set("title", newValue); + })), + this.contentWidget.watch('iconClass', dojo.hitch(this, function(name, oldValue, newValue){ + button.set("iconClass", newValue); + })) + ]; }, _setSelectedAttr: function(/*Boolean*/ isSelected){ - this.selected = isSelected; + this._set("selected", isSelected); this.button.set("selected", isSelected); if(isSelected){ var cw = this.contentWidget; @@ -18761,7 +19685,9 @@ dojo.declare("dijit.layout._AccordionInnerContainer", destroy: function(){ this.button.destroyRecursive(); - + + dojo.forEach(this._contentWidgetWatches || [], function(w){ w.unwatch(); }); + delete this.contentWidget._buttonWidget; delete this.contentWidget._wrapperWidget; @@ -18783,7 +19709,7 @@ dojo.declare("dijit.layout._AccordionButton", // tags: // private - templateString: dojo.cache("dijit.layout", "templates/AccordionButton.html", "<div dojoAttachEvent='onclick:_onTitleClick' class='dijitAccordionTitle'>\n\t<div dojoAttachPoint='titleNode,focusNode' dojoAttachEvent='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' wairole=\"tab\" waiState=\"expanded-false\"\n\t\t><span class='dijitInline dijitAccordionArrow' waiRole=\"presentation\"></span\n\t\t><span class='arrowTextUp' waiRole=\"presentation\">+</span\n\t\t><span class='arrowTextDown' waiRole=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' style=\"vertical-align: middle\" waiRole=\"presentation\"/>\n\t\t<span waiRole=\"presentation\" dojoAttachPoint='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"), + templateString: dojo.cache("dijit.layout", "templates/AccordionButton.html", "<div dojoAttachEvent='onclick:_onTitleClick' class='dijitAccordionTitle'>\n\t<div dojoAttachPoint='titleNode,focusNode' dojoAttachEvent='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' role=\"tab\" aria-expanded=\"false\"\n\t\t><span class='dijitInline dijitAccordionArrow' role=\"presentation\"></span\n\t\t><span class='arrowTextUp' role=\"presentation\">+</span\n\t\t><span class='arrowTextDown' role=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' style=\"vertical-align: middle\" role=\"presentation\"/>\n\t\t<span role=\"presentation\" dojoAttachPoint='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"), attributeMap: dojo.mixin(dojo.clone(dijit.layout.ContentPane.prototype.attributeMap), { label: {node: "titleTextNode", type: "innerHTML" }, title: {node: "titleTextNode", type: "attribute", attribute: "title"}, @@ -18800,18 +19726,18 @@ dojo.declare("dijit.layout._AccordionButton", return this.parent; }, - postCreate: function(){ + buildRendering: function(){ this.inherited(arguments); - dojo.setSelectable(this.domNode, false); - var titleTextNodeId = dojo.attr(this.domNode,'id').replace(' ','_'); + var titleTextNodeId = this.id.replace(' ','_'); dojo.attr(this.titleTextNode, "id", titleTextNodeId+"_title"); dijit.setWaiState(this.focusNode, "labelledby", dojo.attr(this.titleTextNode, "id")); + dojo.setSelectable(this.domNode, false); }, getTitleHeight: function(){ // summary: // Returns the height of the title dom node. - return dojo.marginBox(this.domNode).h; // Integer + return dojo._getMarginSize(this.domNode).h; // Integer }, // TODO: maybe the parent should set these methods directly rather than forcing the code @@ -18820,10 +19746,8 @@ dojo.declare("dijit.layout._AccordionButton", // summary: // Callback when someone clicks my title. var parent = this.getParent(); - if(!parent._inTransition){ parent.selectChild(this.contentWidget, true); dijit.focus(this.focusNode); - } }, _onTitleKeyPress: function(/*Event*/ evt){ @@ -18831,7 +19755,7 @@ dojo.declare("dijit.layout._AccordionButton", }, _setSelectedAttr: function(/*Boolean*/ isSelected){ - this.selected = isSelected; + this._set("selected", isSelected); dijit.setWaiState(this.focusNode, "expanded", isSelected); dijit.setWaiState(this.focusNode, "selected", isSelected); this.focusNode.setAttribute("tabIndex", isSelected ? "0" : "-1"); @@ -18847,6 +19771,7 @@ dojo.provide("dijit.layout.BorderContainer"); + dojo.declare( "dijit.layout.BorderContainer", dijit.layout._LayoutWidget, @@ -18862,19 +19787,21 @@ dojo.declare( // include optional splitters (splitter="true") to make them resizable by the user. The remaining // space is designated for the center region. // - // NOTE: Splitters must not be more than 50 pixels in width. - // // The outer size must be specified on the BorderContainer node. Width must be specified for the sides // and height for the top and bottom, respectively. No dimensions should be specified on the center; // it will fill the remaining space. Regions named "leading" and "trailing" may be used just like // "left" and "right" except that they will be reversed in right-to-left environments. // + // For complex layouts, multiple children can be specified for a single region. In this case, the + // layoutPriority flag on the children determines which child is closer to the edge (low layoutPriority) + // and which child is closer to the center (high layoutPriority). layoutPriority can also be used + // instead of the design attribute to conrol layout precedence of horizontal vs. vertical panes. // example: // | <div dojoType="dijit.layout.BorderContainer" design="sidebar" gutters="false" // | style="width: 400px; height: 300px;"> - // | <div dojoType="ContentPane" region="top">header text</div> - // | <div dojoType="ContentPane" region="right" splitter="true" style="width: 200px;">table of contents</div> - // | <div dojoType="ContentPane" region="center">client area</div> + // | <div dojoType="dijit.layout.ContentPane" region="top">header text</div> + // | <div dojoType="dijit.layout.ContentPane" region="right" splitter="true" style="width: 200px;">table of contents</div> + // | <div dojoType="dijit.layout.ContentPane" region="center">client area</div> // | </div> // design: String @@ -18884,13 +19811,13 @@ dojo.declare( // - "sidebar" where the left and right sides extend from top to bottom. design: "headline", - // gutters: Boolean + // gutters: [const] Boolean // Give each pane a border and margin. // Margin determined by domNode.paddingLeft. // When false, only resizable panes have a gutter (i.e. draggable splitter) for resizing. gutters: true, - // liveSplitters: Boolean + // liveSplitters: [const] Boolean // Specifies whether splitters resize as you drag (true) or only upon mouseup (false) liveSplitters: true, @@ -18913,13 +19840,6 @@ dojo.declare( this.inherited(arguments); }, - postCreate: function(){ - this.inherited(arguments); - - this._splitters = {}; - this._splitterThickness = {}; - }, - startup: function(){ if(this._started){ return; } dojo.forEach(this.getChildren(), this._setupChild, this); @@ -18939,14 +19859,10 @@ dojo.declare( if(region == "leading"){ region = ltr ? "left" : "right"; } if(region == "trailing"){ region = ltr ? "right" : "left"; } - //FIXME: redundant? - this["_"+region] = child.domNode; - this["_"+region+"Widget"] = child; - // Create draggable splitter for resizing pane, // or alternately if splitter=false but BorderContainer.gutters=true then // insert dummy div just for spacing - if((child.splitter || this.gutters) && !this._splitters[region]){ + if(region != "center" && (child.splitter || this.gutters) && !child._splitterWidget){ var _Splitter = dojo.getObject(child.splitter ? this._splitterClass : "dijit.layout._Gutter"); var splitter = new _Splitter({ id: child.id + "_splitter", @@ -18956,24 +19872,19 @@ dojo.declare( live: this.liveSplitters }); splitter.isSplitter = true; - this._splitters[region] = splitter.domNode; - dojo.place(this._splitters[region], child.domNode, "after"); + child._splitterWidget = splitter; - // Splitters arent added as Contained children, so we need to call startup explicitly + dojo.place(splitter.domNode, child.domNode, "after"); + + // Splitters aren't added as Contained children, so we need to call startup explicitly splitter.startup(); } - child.region = region; + child.region = region; // TODO: technically wrong since it overwrites "trailing" with "left" etc. } }, - _computeSplitterThickness: function(region){ - this._splitterThickness[region] = this._splitterThickness[region] || - dojo.marginBox(this._splitters[region])[(/top|bottom/.test(region) ? 'h' : 'w')]; - }, - layout: function(){ // Implement _LayoutWidget.layout() virtual method. - for(var region in this._splitters){ this._computeSplitterThickness(region); } this._layoutChildren(); }, @@ -18987,20 +19898,29 @@ dojo.declare( removeChild: function(/*dijit._Widget*/ child){ // Override _LayoutWidget.removeChild(). + var region = child.region; - var splitter = this._splitters[region]; + var splitter = child._splitterWidget if(splitter){ - dijit.byNode(splitter).destroy(); - delete this._splitters[region]; - delete this._splitterThickness[region]; + splitter.destroy(); + delete child._splitterWidget; } this.inherited(arguments); - delete this["_"+region]; - delete this["_" +region+"Widget"]; + if(this._started){ this._layoutChildren(); } + // Clean up whatever style changes we made to the child pane. + // Unclear how height and width should be handled. dojo.removeClass(child.domNode, this.baseClass+"Pane"); + dojo.style(child.domNode, { + top: "auto", + bottom: "auto", + left: "auto", + right: "auto", + position: "static" + }); + dojo.style(child.domNode, region == "top" || region == "bottom" ? "width" : "height", "auto"); }, getChildren: function(){ @@ -19010,11 +19930,15 @@ dojo.declare( }); }, + // TODO: remove in 2.0 getSplitter: function(/*String*/region){ // summary: // Returns the widget responsible for rendering the splitter associated with region - var splitter = this._splitters[region]; - return splitter ? dijit.byNode(splitter) : null; + // tags: + // deprecated + return dojo.filter(this.getChildren(), function(child){ + return child.region == region; + })[0]._splitterWidget; }, resize: function(newSize, currentSize){ @@ -19035,7 +19959,7 @@ dojo.declare( this.inherited(arguments); }, - _layoutChildren: function(/*String?*/changedRegion, /*Number?*/ changedRegionSize){ + _layoutChildren: function(/*String?*/ changedChildId, /*Number?*/ changedChildSize){ // summary: // This is the main routine for setting size/position of each child. // description: @@ -19045,11 +19969,10 @@ dojo.declare( // With changedRegion specified (as "left", "top", "bottom", or "right"), // it changes that region's width/height to changedRegionSize and // then resizes other regions that were affected. - // changedRegion: - // The region should be changed because splitter was dragged. - // "left", "right", "top", or "bottom". - // changedRegionSize: - // The new width/height (in pixels) to make changedRegion + // changedChildId: + // Id of the child which should be resized because splitter was dragged. + // changedChildSize: + // The new width/height (in pixels) to make specified child if(!this._borderBox || !this._borderBox.h){ // We are currently hidden, or we haven't been sized by our parent yet. @@ -19057,196 +19980,63 @@ dojo.declare( return; } - var sidebarLayout = (this.design == "sidebar"); - var topHeight = 0, bottomHeight = 0, leftWidth = 0, rightWidth = 0; - var topStyle = {}, leftStyle = {}, rightStyle = {}, bottomStyle = {}, - centerStyle = (this._center && this._center.style) || {}; - - var changedSide = /left|right/.test(changedRegion); - - var layoutSides = !changedRegion || (!changedSide && !sidebarLayout); - var layoutTopBottom = !changedRegion || (changedSide && sidebarLayout); - - // Ask browser for width/height of side panes. - // Would be nice to cache this but height can change according to width - // (because words wrap around). I don't think width will ever change though - // (except when the user drags a splitter). - if(this._top){ - topStyle = (changedRegion == "top" || layoutTopBottom) && this._top.style; - topHeight = changedRegion == "top" ? changedRegionSize : dojo.marginBox(this._top).h; - } - if(this._left){ - leftStyle = (changedRegion == "left" || layoutSides) && this._left.style; - leftWidth = changedRegion == "left" ? changedRegionSize : dojo.marginBox(this._left).w; - } - if(this._right){ - rightStyle = (changedRegion == "right" || layoutSides) && this._right.style; - rightWidth = changedRegion == "right" ? changedRegionSize : dojo.marginBox(this._right).w; - } - if(this._bottom){ - bottomStyle = (changedRegion == "bottom" || layoutTopBottom) && this._bottom.style; - bottomHeight = changedRegion == "bottom" ? changedRegionSize : dojo.marginBox(this._bottom).h; - } - - var splitters = this._splitters; - var topSplitter = splitters.top, bottomSplitter = splitters.bottom, - leftSplitter = splitters.left, rightSplitter = splitters.right; - var splitterThickness = this._splitterThickness; - var topSplitterThickness = splitterThickness.top || 0, - leftSplitterThickness = splitterThickness.left || 0, - rightSplitterThickness = splitterThickness.right || 0, - bottomSplitterThickness = splitterThickness.bottom || 0; - - // Check for race condition where CSS hasn't finished loading, so - // the splitter width == the viewport width (#5824) - if(leftSplitterThickness > 50 || rightSplitterThickness > 50){ - setTimeout(dojo.hitch(this, function(){ - // Results are invalid. Clear them out. - this._splitterThickness = {}; - - for(var region in this._splitters){ - this._computeSplitterThickness(region); + // Generate list of wrappers of my children in the order that I want layoutChildren() + // to process them (i.e. from the outside to the inside) + var wrappers = dojo.map(this.getChildren(), function(child, idx){ + return { + pane: child, + weight: [ + child.region == "center" ? Infinity : 0, + child.layoutPriority, + (this.design == "sidebar" ? 1 : -1) * (/top|bottom/.test(child.region) ? 1 : -1), + idx + ] + }; + }, this); + wrappers.sort(function(a, b){ + var aw = a.weight, bw = b.weight; + for(var i=0; i<aw.length; i++){ + if(aw[i] != bw[i]){ + return aw[i] - bw[i]; } - this._layoutChildren(); - }), 50); - return false; - } - - var pe = this.pe; - - var splitterBounds = { - left: (sidebarLayout ? leftWidth + leftSplitterThickness: 0) + pe.l + "px", - right: (sidebarLayout ? rightWidth + rightSplitterThickness: 0) + pe.r + "px" - }; - - if(topSplitter){ - dojo.mixin(topSplitter.style, splitterBounds); - topSplitter.style.top = topHeight + pe.t + "px"; - } - - if(bottomSplitter){ - dojo.mixin(bottomSplitter.style, splitterBounds); - bottomSplitter.style.bottom = bottomHeight + pe.b + "px"; - } - - splitterBounds = { - top: (sidebarLayout ? 0 : topHeight + topSplitterThickness) + pe.t + "px", - bottom: (sidebarLayout ? 0 : bottomHeight + bottomSplitterThickness) + pe.b + "px" - }; - - if(leftSplitter){ - dojo.mixin(leftSplitter.style, splitterBounds); - leftSplitter.style.left = leftWidth + pe.l + "px"; - } - - if(rightSplitter){ - dojo.mixin(rightSplitter.style, splitterBounds); - rightSplitter.style.right = rightWidth + pe.r + "px"; - } - - dojo.mixin(centerStyle, { - top: pe.t + topHeight + topSplitterThickness + "px", - left: pe.l + leftWidth + leftSplitterThickness + "px", - right: pe.r + rightWidth + rightSplitterThickness + "px", - bottom: pe.b + bottomHeight + bottomSplitterThickness + "px" + } + return 0; }); - var bounds = { - top: sidebarLayout ? pe.t + "px" : centerStyle.top, - bottom: sidebarLayout ? pe.b + "px" : centerStyle.bottom - }; - dojo.mixin(leftStyle, bounds); - dojo.mixin(rightStyle, bounds); - leftStyle.left = pe.l + "px"; rightStyle.right = pe.r + "px"; topStyle.top = pe.t + "px"; bottomStyle.bottom = pe.b + "px"; - if(sidebarLayout){ - topStyle.left = bottomStyle.left = leftWidth + leftSplitterThickness + pe.l + "px"; - topStyle.right = bottomStyle.right = rightWidth + rightSplitterThickness + pe.r + "px"; - }else{ - topStyle.left = bottomStyle.left = pe.l + "px"; - topStyle.right = bottomStyle.right = pe.r + "px"; - } - - // More calculations about sizes of panes - var containerHeight = this._borderBox.h - pe.t - pe.b, - middleHeight = containerHeight - ( topHeight + topSplitterThickness + bottomHeight + bottomSplitterThickness), - sidebarHeight = sidebarLayout ? containerHeight : middleHeight; - - var containerWidth = this._borderBox.w - pe.l - pe.r, - middleWidth = containerWidth - (leftWidth + leftSplitterThickness + rightWidth + rightSplitterThickness), - sidebarWidth = sidebarLayout ? middleWidth : containerWidth; + // Make new list, combining the externally specified children with splitters and gutters + var childrenAndSplitters = []; + dojo.forEach(wrappers, function(wrapper){ + var pane = wrapper.pane; + childrenAndSplitters.push(pane); + if(pane._splitterWidget){ + childrenAndSplitters.push(pane._splitterWidget); + } + }); - // New margin-box size of each pane + // Compute the box in which to lay out my children var dim = { - top: { w: sidebarWidth, h: topHeight }, - bottom: { w: sidebarWidth, h: bottomHeight }, - left: { w: leftWidth, h: sidebarHeight }, - right: { w: rightWidth, h: sidebarHeight }, - center: { h: middleHeight, w: middleWidth } + l: this.pe.l, + t: this.pe.t, + w: this._borderBox.w - this.pe.w, + h: this._borderBox.h - this.pe.h }; - if(changedRegion){ - // Respond to splitter drag event by changing changedRegion's width or height - var child = this["_" + changedRegion + "Widget"], - mb = {}; - mb[ /top|bottom/.test(changedRegion) ? "h" : "w"] = changedRegionSize; - child.resize ? child.resize(mb, dim[child.region]) : dojo.marginBox(child.domNode, mb); - } + // Layout the children, possibly changing size due to a splitter drag + dijit.layout.layoutChildren(this.domNode, dim, childrenAndSplitters, + changedChildId, changedChildSize); + }, - // Nodes in IE<8 don't respond to t/l/b/r, and TEXTAREA doesn't respond in any browser - var janky = dojo.isIE < 8 || (dojo.isIE && dojo.isQuirks) || dojo.some(this.getChildren(), function(child){ - return child.domNode.tagName == "TEXTAREA" || child.domNode.tagName == "INPUT"; + destroyRecursive: function(){ + // Destroy splitters first, while getChildren() still works + dojo.forEach(this.getChildren(), function(child){ + var splitter = child._splitterWidget; + if(splitter){ + splitter.destroy(); + } + delete child._splitterWidget; }); - if(janky){ - // Set the size of the children the old fashioned way, by setting - // CSS width and height - - var resizeWidget = function(widget, changes, result){ - if(widget){ - (widget.resize ? widget.resize(changes, result) : dojo.marginBox(widget.domNode, changes)); - } - }; - - if(leftSplitter){ leftSplitter.style.height = sidebarHeight; } - if(rightSplitter){ rightSplitter.style.height = sidebarHeight; } - resizeWidget(this._leftWidget, {h: sidebarHeight}, dim.left); - resizeWidget(this._rightWidget, {h: sidebarHeight}, dim.right); - - if(topSplitter){ topSplitter.style.width = sidebarWidth; } - if(bottomSplitter){ bottomSplitter.style.width = sidebarWidth; } - resizeWidget(this._topWidget, {w: sidebarWidth}, dim.top); - resizeWidget(this._bottomWidget, {w: sidebarWidth}, dim.bottom); - - resizeWidget(this._centerWidget, dim.center); - }else{ - // Calculate which panes need a notification that their size has been changed - // (we've already set style.top/bottom/left/right on those other panes). - var notifySides = !changedRegion || (/top|bottom/.test(changedRegion) && this.design != "sidebar"), - notifyTopBottom = !changedRegion || (/left|right/.test(changedRegion) && this.design == "sidebar"), - notifyList = { - center: true, - left: notifySides, - right: notifySides, - top: notifyTopBottom, - bottom: notifyTopBottom - }; - - // Send notification to those panes that have changed size - dojo.forEach(this.getChildren(), function(child){ - if(child.resize && notifyList[child.region]){ - child.resize(null, dim[child.region]); - } - }, this); - } - }, - destroy: function(){ - for(var region in this._splitters){ - var splitter = this._splitters[region]; - dijit.byNode(splitter).destroy(); - dojo.destroy(splitter); - } - delete this._splitters; - delete this._splitterThickness; + // Then destroy the real children, and myself this.inherited(arguments); } }); @@ -19261,6 +20051,12 @@ dojo.extend(dijit._Widget, { // See the `dijit.layout.BorderContainer` description for details. region: '', + // layoutPriority: [const] Number + // Parameter for children of `dijit.layout.BorderContainer`. + // Children with a higher layoutPriority will be placed closer to the BorderContainer center, + // between children with a lower layoutPriority. + layoutPriority: 0, + // splitter: [const] Boolean // Parameter for child of `dijit.layout.BorderContainer` where region != "center". // If true, enables user to resize the widget by putting a draggable splitter between @@ -19278,8 +20074,6 @@ dojo.extend(dijit._Widget, { maxSize: Infinity }); - - dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], { // summary: @@ -19299,7 +20093,7 @@ dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], // Pointer to the pane associated with this splitter child: null, - // region: String + // region: [const] String // Region of pane associated with this splitter. // "top", "bottom", "left", "right". region: null, @@ -19310,18 +20104,21 @@ dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], // otherwise, the size doesn't change until you drop the splitter (by mouse-up) live: true, - templateString: '<div class="dijitSplitter" dojoAttachEvent="onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse" tabIndex="0" waiRole="separator"><div class="dijitSplitterThumb"></div></div>', + templateString: '<div class="dijitSplitter" dojoAttachEvent="onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse" tabIndex="0" role="separator"><div class="dijitSplitterThumb"></div></div>', - postCreate: function(){ + postMixInProperties: function(){ this.inherited(arguments); - this.horizontal = /top|bottom/.test(this.region); - dojo.addClass(this.domNode, "dijitSplitter" + (this.horizontal ? "H" : "V")); -// dojo.addClass(this.child.domNode, "dijitSplitterPane"); -// dojo.setSelectable(this.domNode, false); //TODO is this necessary? + this.horizontal = /top|bottom/.test(this.region); this._factor = /top|left/.test(this.region) ? 1 : -1; - this._cookieName = this.container.id + "_" + this.region; + }, + + buildRendering: function(){ + this.inherited(arguments); + + dojo.addClass(this.domNode, "dijitSplitter" + (this.horizontal ? "H" : "V")); + if(this.container.persist){ // restore old size var persistSize = dojo.cookie(this._cookieName); @@ -19333,23 +20130,14 @@ dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], _computeMaxSize: function(){ // summary: - // Compute the maximum size that my corresponding pane can be set to + // Return the maximum size that my corresponding pane can be set to var dim = this.horizontal ? 'h' : 'w', - thickness = this.container._splitterThickness[this.region]; - - // Get DOMNode of opposite pane, if an opposite pane exists. - // Ex: if I am the _Splitter for the left pane, then get the right pane. - var flip = {left:'right', right:'left', top:'bottom', bottom:'top', leading:'trailing', trailing:'leading'}, - oppNode = this.container["_" + flip[this.region]]; - - // I can expand up to the edge of the opposite pane, or if there's no opposite pane, then to - // edge of BorderContainer - var available = dojo.contentBox(this.container.domNode)[dim] - - (oppNode ? dojo.marginBox(oppNode)[dim] : 0) - - 20 - thickness * 2; + childSize = dojo.marginBox(this.child.domNode)[dim], + center = dojo.filter(this.container.getChildren(), function(child){ return child.region == "center";})[0], + spaceAvailable = dojo.marginBox(center.domNode)[dim]; // can expand until center is crushed to 0 - return Math.min(this.child.maxSize, available); + return Math.min(this.child.maxSize, childSize + spaceAvailable); }, _startDrag: function(e){ @@ -19368,28 +20156,26 @@ dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], dojo.addClass(this.domNode, "dijitSplitterShadow"); dojo.place(this.fake, this.domNode, "after"); } - dojo.addClass(this.domNode, "dijitSplitterActive"); - dojo.addClass(this.domNode, "dijitSplitter" + (this.horizontal ? "H" : "V") + "Active"); + dojo.addClass(this.domNode, "dijitSplitterActive dijitSplitter" + (this.horizontal ? "H" : "V") + "Active"); if(this.fake){ - dojo.removeClass(this.fake, "dijitSplitterHover"); - dojo.removeClass(this.fake, "dijitSplitter" + (this.horizontal ? "H" : "V") + "Hover"); + dojo.removeClass(this.fake, "dijitSplitterHover dijitSplitter" + (this.horizontal ? "H" : "V") + "Hover"); } //Performance: load data info local vars for onmousevent function closure var factor = this._factor, - max = this._computeMaxSize(), - min = this.child.minSize || 20, isHorizontal = this.horizontal, axis = isHorizontal ? "pageY" : "pageX", pageStart = e[axis], splitterStyle = this.domNode.style, dim = isHorizontal ? 'h' : 'w', childStart = dojo.marginBox(this.child.domNode)[dim], + max = this._computeMaxSize(), + min = this.child.minSize || 20, region = this.region, - splitterStart = parseInt(this.domNode.style[region], 10), + splitterAttr = region == "top" || region == "bottom" ? "top" : "left", // style attribute of splitter to adjust + splitterStart = parseInt(splitterStyle[splitterAttr], 10), resize = this._resize, - childNode = this.child.domNode, - layoutFunc = dojo.hitch(this.container, this.container._layoutChildren), + layoutFunc = dojo.hitch(this.container, "_layoutChildren", this.child.id), de = dojo.doc; this._handlers = (this._handlers || []).concat([ @@ -19399,9 +20185,10 @@ dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], boundChildSize = Math.max(Math.min(childSize, max), min); if(resize || forceResize){ - layoutFunc(region, boundChildSize); + layoutFunc(boundChildSize); } - splitterStyle[region] = factor * delta + splitterStart + (boundChildSize - childSize) + "px"; + // TODO: setting style directly (usually) sets content box size, need to set margin box size + splitterStyle[splitterAttr] = delta + splitterStart + factor*(boundChildSize - childSize) + "px"; }), dojo.connect(de, "ondragstart", dojo.stopEvent), dojo.connect(dojo.body(), "onselectstart", dojo.stopEvent), @@ -19422,9 +20209,8 @@ dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], dojo.removeClass(this.cover, "dijitSplitterCoverActive"); } if(this.fake){ dojo.destroy(this.fake); } - dojo.removeClass(this.domNode, "dijitSplitterActive"); - dojo.removeClass(this.domNode, "dijitSplitter" + (this.horizontal ? "H" : "V") + "Active"); - dojo.removeClass(this.domNode, "dijitSplitterShadow"); + dojo.removeClass(this.domNode, "dijitSplitterActive dijitSplitter" + + (this.horizontal ? "H" : "V") + "Active dijitSplitterShadow"); this._drag(e); //TODO: redundant with onmousemove? this._drag(e, true); }finally{ @@ -19458,8 +20244,8 @@ dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], // this.inherited(arguments); return; } - var childSize = dojo.marginBox(this.child.domNode)[ horizontal ? 'h' : 'w' ] + this._factor * tick; - this.container._layoutChildren(this.region, Math.max(Math.min(childSize, this._computeMaxSize()), this.child.minSize)); + var childSize = dojo._getMarginSize(this.child.domNode)[ horizontal ? 'h' : 'w' ] + this._factor * tick; + this.container._layoutChildren(this.child.id, Math.max(Math.min(childSize, this._computeMaxSize()), this.child.minSize)); dojo.stopEvent(e); }, @@ -19473,7 +20259,7 @@ dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], } }); -dojo.declare("dijit.layout._Gutter", [dijit._Widget, dijit._Templated ], +dojo.declare("dijit.layout._Gutter", [dijit._Widget, dijit._Templated], { // summary: // Just a spacer div to separate side pane from center pane. @@ -19484,10 +20270,15 @@ dojo.declare("dijit.layout._Gutter", [dijit._Widget, dijit._Templated ], // tags: // private - templateString: '<div class="dijitGutter" waiRole="presentation"></div>', + templateString: '<div class="dijitGutter" role="presentation"></div>', - postCreate: function(){ + postMixInProperties: function(){ + this.inherited(arguments); this.horizontal = /top|bottom/.test(this.region); + }, + + buildRendering: function(){ + this.inherited(arguments); dojo.addClass(this.domNode, "dijitGutter" + (this.horizontal ? "H" : "V")); } }); @@ -19519,12 +20310,12 @@ dojo.declare("dijit.layout._TabContainerBase", baseClass: "dijitTabContainer", - // tabStrip: Boolean + // tabStrip: [const] Boolean // Defines whether the tablist gets an extra class for layouting, putting a border/shading - // around the set of tabs. + // around the set of tabs. Not supported by claro theme. tabStrip: false, - // nested: Boolean + // nested: [const] Boolean // If true, use styling for a TabContainer nested inside another TabContainer. // For tundra etc., makes tabs look like links, and hides the outer // border since the outer TabContainer already has a border. @@ -19541,7 +20332,7 @@ dojo.declare("dijit.layout._TabContainerBase", this.inherited(arguments); }, - postCreate: function(){ + buildRendering: function(){ this.inherited(arguments); // Create the tab list that will have a tab (a.k.a. tab button) for each tab panel @@ -19608,7 +20399,12 @@ dojo.declare("dijit.layout._TabContainerBase", }else{ // just layout the tab controller, so it can position left/right buttons etc. if(this.tablist.resize){ - this.tablist.resize({w: dojo.contentBox(this.domNode).w}); + //make the tabs zero width so that they don't interfere with width calc, then reset + var s = this.tablist.domNode.style; + s.width="0"; + var width = dojo.contentBox(this.domNode).w; + s.width=""; + this.tablist.resize({w: width}); } // and call resize() on the selected pane just to tell it that it's been made visible @@ -19626,7 +20422,6 @@ dojo.declare("dijit.layout._TabContainerBase", } }); - } if(!dojo._hasResource["dijit.layout.TabController"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -19635,10 +20430,10 @@ dojo.provide("dijit.layout.TabController"); -// Menu is used for an accessible close button, would be nice to have a lighter-weight solution +// Menu is used for an accessible close button, would be nice to have a lighter-weight solution dojo.declare("dijit.layout.TabController", @@ -19654,7 +20449,7 @@ dojo.declare("dijit.layout.TabController", // tags: // private - templateString: "<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'></div>", + templateString: "<div role='tablist' dojoAttachEvent='onkeypress:onkeypress'></div>", // tabPosition: String // Defines where tabs go relative to the content. @@ -19704,32 +20499,16 @@ dojo.declare("dijit.layout._TabButton", closeNode: "dijitTabCloseButton" }, - templateString: dojo.cache("dijit.layout", "templates/_TabButton.html", "<div waiRole=\"presentation\" dojoAttachPoint=\"titleNode\" dojoAttachEvent='onclick:onClick'>\n <div waiRole=\"presentation\" class='dijitTabInnerDiv' dojoAttachPoint='innerDiv'>\n <div waiRole=\"presentation\" class='dijitTabContent' dojoAttachPoint='tabContent'>\n \t<div waiRole=\"presentation\" dojoAttachPoint='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' />\n\t\t <span dojoAttachPoint='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" dojoAttachPoint='closeNode'\n\t\t \t\tdojoAttachEvent='onclick: onClickCloseButton' waiRole=\"presentation\">\n\t\t <span dojoAttachPoint='closeText' class='dijitTabCloseText'>x</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"), + templateString: dojo.cache("dijit.layout", "templates/_TabButton.html", "<div role=\"presentation\" dojoAttachPoint=\"titleNode\" dojoAttachEvent='onclick:onClick'>\n <div role=\"presentation\" class='dijitTabInnerDiv' dojoAttachPoint='innerDiv'>\n <div role=\"presentation\" class='dijitTabContent' dojoAttachPoint='tabContent'>\n \t<div role=\"presentation\" dojoAttachPoint='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitTabButtonIcon\" dojoAttachPoint='iconNode' />\n\t\t <span dojoAttachPoint='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" dojoAttachPoint='closeNode'\n\t\t \t\tdojoAttachEvent='onclick: onClickCloseButton' role=\"presentation\">\n\t\t <span dojoAttachPoint='closeText' class='dijitTabCloseText'>[x]</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"), // Override _FormWidget.scrollOnFocus. // Don't scroll the whole tab container into view when the button is focused. scrollOnFocus: false, - postMixInProperties: function(){ - // Override blank iconClass from Button to do tab height adjustment on IE6, - // to make sure that tabs with and w/out close icons are same height - if(!this.iconClass){ - this.iconClass = "dijitTabButtonIcon"; - } - }, - - postCreate: function(){ + buildRendering: function(){ this.inherited(arguments); - dojo.setSelectable(this.containerNode, false); - // If a custom icon class has not been set for the - // tab icon, set its width to one pixel. This ensures - // that the height styling of the tab is maintained, - // as it is based on the height of the icon. - // TODO: I still think we can just set dijitTabButtonIcon to 1px in CSS <Bill> - if(this.iconNode.className == "dijitTabButtonIcon"){ - dojo.style(this.iconNode, "width", "1px"); - } + dojo.setSelectable(this.containerNode, false); }, startup: function(){ @@ -19743,8 +20522,10 @@ dojo.declare("dijit.layout._TabButton", }, 1); }, - _setCloseButtonAttr: function(disp){ - this.closeButton = disp; + _setCloseButtonAttr: function(/*Boolean*/ disp){ + // summary: + // Hide/show close button + this._set("closeButton", disp); dojo.toggleClass(this.innerDiv, "dijitClosable", disp); this.closeNode.style.display = disp ? "" : "none"; if(disp){ @@ -19776,16 +20557,16 @@ dojo.declare("dijit.layout._TabButton", }, _setLabelAttr: function(/*String*/ content){ // summary: - // Hook for attr('label', ...) to work. + // Hook for set('label', ...) to work. // description: // takes an HTML string. - // Inherited ToggleButton implementation will Set the label (text) of the button; + // Inherited ToggleButton implementation will Set the label (text) of the button; // Need to set the alt attribute of icon on tab buttons if no label displayed - this.inherited(arguments); - if(this.showLabel == false && !this.params.title){ - this.iconNode.alt = dojo.trim(this.containerNode.innerText || this.containerNode.textContent || ''); - } - }, + this.inherited(arguments); + if(this.showLabel == false && !this.params.title){ + this.iconNode.alt = dojo.trim(this.containerNode.innerText || this.containerNode.textContent || ''); + } + }, destroy: function(){ if(this._closeMenu){ @@ -19805,6 +20586,8 @@ dojo.provide("dijit.layout.ScrollingTabController"); + + dojo.declare("dijit.layout.ScrollingTabController", dijit.layout.TabController, { @@ -19816,9 +20599,9 @@ dojo.declare("dijit.layout.ScrollingTabController", // tags: // private - templateString: dojo.cache("dijit.layout", "templates/ScrollingTabController.html", "<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\" iconClass=\"dijitTabStripMenuIcon\"\n\t\t\tdojoAttachPoint=\"_menuBtn\" showLabel=false>▼</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\" iconClass=\"dijitTabStripSlideLeftIcon\"\n\t\t\tdojoAttachPoint=\"_leftBtn\" dojoAttachEvent=\"onClick: doSlideLeft\" showLabel=false>◀</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\" iconClass=\"dijitTabStripSlideRightIcon\"\n\t\t\tdojoAttachPoint=\"_rightBtn\" dojoAttachEvent=\"onClick: doSlideRight\" showLabel=false>▶</div>\n\t<div class='dijitTabListWrapper' dojoAttachPoint='tablistWrapper'>\n\t\t<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'\n\t\t\t\tdojoAttachPoint='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>\n"), + templateString: dojo.cache("dijit.layout", "templates/ScrollingTabController.html", "<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerMenuButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\" containerId=\"${containerId}\" iconClass=\"dijitTabStripMenuIcon\"\n\t\t\tdropDownPosition=\"below-alt, above-alt\"\n\t\t\tdojoAttachPoint=\"_menuBtn\" showLabel=\"false\">▼</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\" iconClass=\"dijitTabStripSlideLeftIcon\"\n\t\t\tdojoAttachPoint=\"_leftBtn\" dojoAttachEvent=\"onClick: doSlideLeft\" showLabel=\"false\">◀</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\" iconClass=\"dijitTabStripSlideRightIcon\"\n\t\t\tdojoAttachPoint=\"_rightBtn\" dojoAttachEvent=\"onClick: doSlideRight\" showLabel=\"false\">▶</div>\n\t<div class='dijitTabListWrapper' dojoAttachPoint='tablistWrapper'>\n\t\t<div role='tablist' dojoAttachEvent='onkeypress:onkeypress'\n\t\t\t\tdojoAttachPoint='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>\n"), - // useMenu:[const] Boolean + // useMenu: [const] Boolean // True if a menu should be used to select tabs when they are too // wide to fit the TabContainer, false otherwise. useMenu: true, @@ -19828,7 +20611,7 @@ dojo.declare("dijit.layout.ScrollingTabController", // wide to fit the TabContainer, false otherwise. useSlider: true, - // tabStripClass: String + // tabStripClass: [const] String // The css class to apply to the tab strip, if it is visible. tabStripClass: "", @@ -19844,7 +20627,7 @@ dojo.declare("dijit.layout.ScrollingTabController", "class": "containerNode" }), - postCreate: function(){ + buildRendering: function(){ this.inherited(arguments); var n = this.domNode; @@ -19874,41 +20657,18 @@ dojo.declare("dijit.layout.ScrollingTabController", onAddChild: function(page, insertIndex){ this.inherited(arguments); - var menuItem; - if(this.useMenu){ - var containerId = this.containerId; - menuItem = new dijit.MenuItem({ - id: page.id + "_stcMi", - label: page.title, - dir: page.dir, - lang: page.lang, - onClick: dojo.hitch(this, function(){ - var container = dijit.byId(containerId); - container.selectChild(page); - }) - }); - this._menuChildren[page.id] = menuItem; - this._menu.addChild(menuItem, insertIndex); - } - // update the menuItem label when the button label is updated - this.pane2handles[page.id].push( - this.connect(this.pane2button[page.id], "set", function(name, value){ - if(this._postStartup){ - if(name == "label"){ - if(menuItem){ - menuItem.set(name, value); - } - - // The changed label will have changed the width of the - // buttons, so do a resize - if(this._dim){ - this.resize(this._dim); - } + // changes to the tab button label or iconClass will have changed the width of the + // buttons, so do a resize + dojo.forEach(["label", "iconClass"], function(attr){ + this.pane2watches[page.id].push( + this.pane2button[page.id].watch(attr, dojo.hitch(this, function(name, oldValue, newValue){ + if(this._postStartup && this._dim){ + this.resize(this._dim); } - } - }) - ); + })) + ); + }, this); // Increment the width of the wrapper when a tab is added // This makes sure that the buttons never wrap. @@ -19925,13 +20685,6 @@ dojo.declare("dijit.layout.ScrollingTabController", this._selectedTab = null; } - // delete menu entry corresponding to pane that was removed from TabContainer - if(this.useMenu && page && page.id && this._menuChildren[page.id]){ - this._menu.removeChild(this._menuChildren[page.id]); - this._menuChildren[page.id].destroy(); - delete this._menuChildren[page.id]; - } - this.inherited(arguments); }, @@ -19939,7 +20692,6 @@ dojo.declare("dijit.layout.ScrollingTabController", // summary: // Creates the buttons used to scroll to view tabs that // may not be visible if the TabContainer is too narrow. - this._menuChildren = {}; // Make a list of the buttons to display when the tab labels become // wider than the TabContainer, and hide the other buttons. @@ -19948,26 +20700,13 @@ dojo.declare("dijit.layout.ScrollingTabController", this._buttons = dojo.query("> .tabStripButton", this.domNode).filter(function(btn){ if((this.useMenu && btn == this._menuBtn.domNode) || (this.useSlider && (btn == this._rightBtn.domNode || btn == this._leftBtn.domNode))){ - this._btnWidth += dojo.marginBox(btn).w; + this._btnWidth += dojo._getMarginSize(btn).w; return true; }else{ dojo.style(btn, "display", "none"); return false; } }, this); - - if(this.useMenu){ - // Create the menu that is used to select tabs. - this._menu = new dijit.Menu({ - id: this.id + "_menu", - dir: this.dir, - lang: this.lang, - targetNodeIds: [this._menuBtn.domNode], - leftClickToOpen: true, - refocus: false // selecting a menu item sets focus to a TabButton - }); - this._supportingWidgets.push(this._menu); - } }, _getTabsWidth: function(){ @@ -20037,6 +20776,10 @@ dojo.declare("dijit.layout.ScrollingTabController", this._setButtonClass(this._getScroll()); this._postResize = true; + + // Return my size so layoutChildren() can use it. + // Also avoids IE9 layout glitch on browser resize when scroll buttons present + return {h: this._contentBox.h, w: dim.w}; }, _getScroll: function(){ @@ -20139,7 +20882,7 @@ dojo.declare("dijit.layout.ScrollingTabController", return pos; }, - createSmoothScroll : function(x){ + createSmoothScroll: function(x){ // summary: // Creates a dojo._Animation object that smoothly scrolls the tab list // either to a fixed horizontal pixel value, or to the selected tab. @@ -20185,7 +20928,7 @@ dojo.declare("dijit.layout.ScrollingTabController", return anim; // dojo._Animation }, - _getBtnNode: function(e){ + _getBtnNode: function(/*Event*/ e){ // summary: // Gets a button DOM node from a mouse click event. // e: @@ -20197,7 +20940,7 @@ dojo.declare("dijit.layout.ScrollingTabController", return n; }, - doSlideRight: function(e){ + doSlideRight: function(/*Event*/ e){ // summary: // Scrolls the menu to the right. // e: @@ -20205,7 +20948,7 @@ dojo.declare("dijit.layout.ScrollingTabController", this.doSlide(1, this._getBtnNode(e)); }, - doSlideLeft: function(e){ + doSlideLeft: function(/*Event*/ e){ // summary: // Scrolls the menu to the left. // e: @@ -20213,7 +20956,7 @@ dojo.declare("dijit.layout.ScrollingTabController", this.doSlide(-1,this._getBtnNode(e)); }, - doSlide: function(direction, node){ + doSlide: function(/*Number*/ direction, /*DomNode*/ node){ // summary: // Scrolls the tab list to the left or right by 75% of the widget width. // direction: @@ -20232,7 +20975,7 @@ dojo.declare("dijit.layout.ScrollingTabController", this.createSmoothScroll(to).play(); }, - _setButtonClass: function(scroll){ + _setButtonClass: function(/*Number*/ scroll){ // summary: // Disables the left scroll button if the tabs are scrolled all the way to the left, // or the right scroll button in the opposite case. @@ -20245,18 +20988,71 @@ dojo.declare("dijit.layout.ScrollingTabController", } }); -dojo.declare("dijit.layout._ScrollingTabControllerButton", - dijit.form.Button, - { - baseClass: "dijitTab tabStripButton", - templateString: dojo.cache("dijit.layout", "templates/_ScrollingTabControllerButton.html", "<div dojoAttachEvent=\"onclick:_onButtonClick\">\n\t<div waiRole=\"presentation\" class=\"dijitTabInnerDiv\" dojoattachpoint=\"innerDiv,focusNode\">\n\t\t<div waiRole=\"presentation\" class=\"dijitTabContent dijitButtonContents\" dojoattachpoint=\"tabContent\">\n\t\t\t<img waiRole=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t\t<span dojoAttachPoint=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>\n"), +dojo.declare("dijit.layout._ScrollingTabControllerButtonMixin", null, { + baseClass: "dijitTab tabStripButton", + + templateString: dojo.cache("dijit.layout", "templates/_ScrollingTabControllerButton.html", "<div dojoAttachEvent=\"onclick:_onButtonClick\">\n\t<div role=\"presentation\" class=\"dijitTabInnerDiv\" dojoattachpoint=\"innerDiv,focusNode\">\n\t\t<div role=\"presentation\" class=\"dijitTabContent dijitButtonContents\" dojoattachpoint=\"tabContent\">\n\t\t\t<img role=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t\t<span dojoAttachPoint=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>\n"), // Override inherited tabIndex: 0 from dijit.form.Button, because user shouldn't be // able to tab to the left/right/menu buttons - tabIndex: "-1" + tabIndex: "", + + // Similarly, override FormWidget.isFocusable() because clicking a button shouldn't focus it + // either (this override avoids focus() call in FormWidget.js) + isFocusable: function(){ return false; } +}); + +dojo.declare("dijit.layout._ScrollingTabControllerButton", + [dijit.form.Button, dijit.layout._ScrollingTabControllerButtonMixin]); + +dojo.declare( + "dijit.layout._ScrollingTabControllerMenuButton", + [dijit.form.Button, dijit._HasDropDown, dijit.layout._ScrollingTabControllerButtonMixin], +{ + // id of the TabContainer itself + containerId: "", + + // -1 so user can't tab into the button, but so that button can still be focused programatically. + // Because need to move focus to the button (or somewhere) before the menu is hidden or IE6 will crash. + tabIndex: "-1", + + isLoaded: function(){ + // recreate menu every time, in case the TabContainer's list of children (or their icons/labels) have changed + return false; + }, + + loadDropDown: function(callback){ + this.dropDown = new dijit.Menu({ + id: this.containerId + "_menu", + dir: this.dir, + lang: this.lang + }); + var container = dijit.byId(this.containerId); + dojo.forEach(container.getChildren(), function(page){ + var menuItem = new dijit.MenuItem({ + id: page.id + "_stcMi", + label: page.title, + iconClass: page.iconClass, + dir: page.dir, + lang: page.lang, + onClick: function(){ + container.selectChild(page); + } + }); + this.dropDown.addChild(menuItem); + }, this); + callback(); + }, + + closeDropDown: function(/*Boolean*/ focus){ + this.inherited(arguments); + if(this.dropDown){ + this.dropDown.destroyRecursive(); + delete this.dropDown; + } } -); +}); } @@ -20328,7 +21124,6 @@ dojo.declare("dijit.layout.TabContainer", } }); - } if(!dojo._hasResource["dojo.number"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -20339,7 +21134,7 @@ dojo.provide("dojo.number"); - +dojo.getObject("number", true, dojo); /*===== dojo.number = { @@ -20444,7 +21239,7 @@ dojo.number._applyPattern = function(/*Number*/value, /*String*/pattern, /*dojo. if(options.fractional === false){ options.places = 0; } return pattern.replace(numberPatternRE, dojo.number._formatAbsolute(value, numberPattern[0], {decimal: decimal, group: group, places: options.places, round: options.round})); -} +}; dojo.number.round = function(/*Number*/value, /*Number?*/places, /*Number?*/increment){ // summary: @@ -20470,7 +21265,7 @@ dojo.number.round = function(/*Number*/value, /*Number?*/places, /*Number?*/incr // 10.75 var factor = 10 / (increment || 10); return (factor * +value).toFixed(places) / factor; // Number -} +}; if((0.9).toFixed() == 0){ // (isIE) toFixed() bug workaround: Rounding fails on IE when most significant digit @@ -20483,7 +21278,7 @@ if((0.9).toFixed() == 0){ d = 0; } return round(v, p, m) + (v > 0 ? d : -d); - } + }; })(); } @@ -20506,7 +21301,7 @@ dojo.number.__FormatAbsoluteOptions = function(){ =====*/ dojo.number._formatAbsolute = function(/*Number*/value, /*String*/pattern, /*dojo.number.__FormatAbsoluteOptions?*/options){ - // summary: + // summary: // Apply numeric pattern to absolute value using options. Gives no // consideration to local customs. // value: @@ -20621,7 +21416,7 @@ dojo.number.regexp = function(/*dojo.number.__RegexpOptions?*/options){ // Returns regular expression with positive and negative match, group // and decimal separators return dojo.number._parseInfo(options).regexp; // String -} +}; dojo.number._parseInfo = function(/*Object?*/options){ options = options || {}; @@ -20709,7 +21504,7 @@ dojo.number._parseInfo = function(/*Object?*/options){ // normalize whitespace and return return {regexp: re.replace(/[\xa0 ]/g, "[\\s\\xa0]"), group: group, decimal: decimal, factor: factor}; // Object -} +}; /*===== dojo.number.__ParseOptions = function(){ @@ -20820,10 +21615,10 @@ dojo.number._realNumberRegexp = function(/*dojo.number.__RealNumberRegexpFlags?* var re = ""; if(q && (flags.places!==0)){ re = "\\" + flags.decimal; - if(flags.places == Infinity){ - re = "(?:" + re + "\\d+)?"; + if(flags.places == Infinity){ + re = "(?:" + re + "\\d+)?"; }else{ - re += "\\d{" + flags.places + "}"; + re += "\\d{" + flags.places + "}"; } } return re; @@ -20832,9 +21627,9 @@ dojo.number._realNumberRegexp = function(/*dojo.number.__RealNumberRegexpFlags?* ); var exponentRE = dojo.regexp.buildGroupRE(flags.exponent, - function(q){ + function(q){ if(q){ return "([eE]" + dojo.number._integerRegexp({ signed: flags.eSigned}) + ")"; } - return ""; + return ""; } ); @@ -20866,7 +21661,7 @@ dojo.number.__IntegerRegexpFlags = function(){ =====*/ dojo.number._integerRegexp = function(/*dojo.number.__IntegerRegexpFlags?*/flags){ - // summary: + // summary: // Builds a regular expression that matches an integer // assign default values to missing parameters @@ -20905,7 +21700,7 @@ dojo.number._integerRegexp = function(/*dojo.number.__IntegerRegexpFlags?*/flags ); return signRE + numberRE; // String -} +}; } @@ -20918,7 +21713,6 @@ dojo.provide("dijit.ProgressBar"); - dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { // summary: // A progress indication widget, showing the amount completed @@ -20927,20 +21721,21 @@ dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { // example: // | <div dojoType="ProgressBar" // | places="0" - // | progress="..." maximum="..."> + // | value="..." maximum="..."> // | </div> - // - // description: - // Note that the progress bar is updated via (a non-standard) - // update() method, rather than via attr() like other widgets. // progress: [const] String (Percentage or Number) // Number or percentage indicating amount of task completed. - // With "%": percentage value, 0% <= progress <= 100%, or - // without "%": absolute value, 0 <= progress <= maximum - // TODO: rename to value for 2.0 + // Deprecated. Use "value" instead. progress: "0", + // value: String (Percentage or Number) + // Number or percentage indicating amount of task completed. + // With "%": percentage value, 0% <= progress <= 100%, or + // without "%": absolute value, 0 <= progress <= maximum. + // Infinity means that the progress bar is indeterminate. + value: "", + // maximum: [const] Float // Max sample number maximum: 100, @@ -20952,22 +21747,34 @@ dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { // indeterminate: [const] Boolean // If false: show progress value (number or percentage). // If true: show that a process is underway but that the amount completed is unknown. + // Deprecated. Use "value" instead. indeterminate: false, + // label: String? + // Label on progress bar. Defaults to percentage for determinate progress bar and + // blank for indeterminate progress bar. + label:"", + // name: String // this is the field name (for a form) if set. This needs to be set if you want to use // this widget in a dijit.form.Form widget (such as dijit.Dialog) name: '', - templateString: dojo.cache("dijit", "templates/ProgressBar.html", "<div class=\"dijitProgressBar dijitProgressBarEmpty\"\n\t><div waiRole=\"progressbar\" dojoAttachPoint=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\"></div\n\t\t><span style=\"visibility:hidden\"> </span\n\t></div\n\t><div dojoAttachPoint=\"label\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"> </div\n\t><img dojoAttachPoint=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"), + templateString: dojo.cache("dijit", "templates/ProgressBar.html", "<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div dojoAttachPoint=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\"> </span\n\t></div\n\t><div dojoAttachPoint=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><img dojoAttachPoint=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"), // _indeterminateHighContrastImagePath: [private] dojo._URL // URL to image to use for indeterminate progress bar when display is in high contrast mode _indeterminateHighContrastImagePath: dojo.moduleUrl("dijit", "themes/a11y/indeterminate_progress.gif"), - // public functions - postCreate: function(){ + postMixInProperties: function(){ + this.inherited(arguments); + if(!("value" in this.params)){ + this.value = this.indeterminate ? Infinity : this.progress; + } + }, + + buildRendering: function(){ this.inherited(arguments); this.indeterminateHighContrastImage.setAttribute("src", this._indeterminateHighContrastImagePath.toString()); @@ -20976,28 +21783,28 @@ dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { update: function(/*Object?*/attributes){ // summary: - // Change attributes of ProgressBar, similar to attr(hash). - // + // Internal method to change attributes of ProgressBar, similar to set(hash). Users should call + // set("value", ...) rather than calling this method directly. // attributes: // May provide progress and/or maximum properties on this parameter; // see attribute specs for details. - // // example: // | myProgressBar.update({'indeterminate': true}); // | myProgressBar.update({'progress': 80}); + // | myProgressBar.update({'indeterminate': true, label:"Loading ..." }) + // tags: + // private // TODO: deprecate this method and use set() instead dojo.mixin(this, attributes || {}); - var tip = this.internalProgress; - var percent = 1, classFunc; + var tip = this.internalProgress, ap = this.domNode; + var percent = 1; if(this.indeterminate){ - classFunc = "addClass"; - dijit.removeWaiState(tip, "valuenow"); - dijit.removeWaiState(tip, "valuemin"); - dijit.removeWaiState(tip, "valuemax"); + dijit.removeWaiState(ap, "valuenow"); + dijit.removeWaiState(ap, "valuemin"); + dijit.removeWaiState(ap, "valuemax"); }else{ - classFunc = "removeClass"; if(String(this.progress).indexOf("%") != -1){ percent = Math.min(parseFloat(this.progress)/100, 1); this.progress = percent * this.maximum; @@ -21005,19 +21812,21 @@ dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { this.progress = Math.min(this.progress, this.maximum); percent = this.progress / this.maximum; } - var text = this.report(percent); - this.label.firstChild.nodeValue = text; - dijit.setWaiState(tip, "describedby", this.label.id); - dijit.setWaiState(tip, "valuenow", this.progress); - dijit.setWaiState(tip, "valuemin", 0); - dijit.setWaiState(tip, "valuemax", this.maximum); + + dijit.setWaiState(ap, "describedby", this.labelNode.id); + dijit.setWaiState(ap, "valuenow", this.progress); + dijit.setWaiState(ap, "valuemin", 0); + dijit.setWaiState(ap, "valuemax", this.maximum); } - dojo[classFunc](this.domNode, "dijitProgressBarIndeterminate"); + this.labelNode.innerHTML = this.report(percent); + + dojo.toggleClass(this.domNode, "dijitProgressBarIndeterminate", this.indeterminate); tip.style.width = (percent * 100) + "%"; this.onChange(); }, _setValueAttr: function(v){ + this._set("value", v); if(v == Infinity){ this.update({indeterminate:true}); }else{ @@ -21025,8 +21834,15 @@ dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { } }, - _getValueAttr: function(){ - return this.progress; + _setLabelAttr: function(label){ + this._set("label", label); + this.update(); + }, + + _setIndeterminateAttr: function(indeterminate){ + // Deprecated, use set("value", ...) instead + this.indeterminate = indeterminate; + this.update(); }, report: function(/*float*/percent){ @@ -21036,14 +21852,15 @@ dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { // tags: // extension - return dojo.number.format(percent, { type: "percent", places: this.places, locale: this.lang }); + return this.label ? this.label : + (this.indeterminate ? " " : dojo.number.format(percent, { type: "percent", places: this.places, locale: this.lang })); }, onChange: function(){ // summary: // Callback fired when progress updates. // tags: - // progress + // extension } }); @@ -21061,8 +21878,11 @@ dojo.declare("dijit.ToolbarSeparator", { // summary: // A spacer between two `dijit.Toolbar` items - templateString: '<div class="dijitToolbarSeparator dijitInline" waiRole="presentation"></div>', - postCreate: function(){ dojo.setSelectable(this.domNode, false); }, + templateString: '<div class="dijitToolbarSeparator dijitInline" role="presentation"></div>', + buildRendering: function(){ + this.inherited(arguments); + dojo.setSelectable(this.domNode, false); + }, isFocusable: function(){ // summary: // This widget isn't focusable, so pass along that fact. @@ -21073,8 +21893,6 @@ dojo.declare("dijit.ToolbarSeparator", }); - - } if(!dojo._hasResource["dijit.Toolbar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -21085,6 +21903,9 @@ dojo.provide("dijit.Toolbar"); + +// Note: require of ToolbarSeparator is for back-compat, remove for 2.0 + dojo.declare("dijit.Toolbar", [dijit._Widget, dijit._Templated, dijit._KeyNavContainer], { @@ -21092,7 +21913,7 @@ dojo.declare("dijit.Toolbar", // A Toolbar widget, used to hold things like `dijit.Editor` buttons templateString: - '<div class="dijit" waiRole="toolbar" tabIndex="${tabIndex}" dojoAttachPoint="containerNode">' + + '<div class="dijit" role="toolbar" tabIndex="${tabIndex}" dojoAttachPoint="containerNode">' + // '<table style="table-layout: fixed" class="dijitReset dijitToolbarTable">' + // factor out style // '<tr class="dijitReset" dojoAttachPoint="containerNode"></tr>'+ // '</table>' + @@ -21101,11 +21922,12 @@ dojo.declare("dijit.Toolbar", baseClass: "dijitToolbar", postCreate: function(){ + this.inherited(arguments); + this.connectKeyNavHandlers( this.isLeftToRight() ? [dojo.keys.LEFT_ARROW] : [dojo.keys.RIGHT_ARROW], this.isLeftToRight() ? [dojo.keys.RIGHT_ARROW] : [dojo.keys.LEFT_ARROW] ); - this.inherited(arguments); }, startup: function(){ @@ -21118,14 +21940,13 @@ dojo.declare("dijit.Toolbar", } ); -// For back-compat, remove for 2.0 - - } if(!dojo._hasResource["dojo.DeferredList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo.DeferredList"] = true; dojo.provide("dojo.DeferredList"); + + dojo.DeferredList = function(/*Array*/ list, /*Boolean?*/ fireOnOneCallback, /*Boolean?*/ fireOnOneErrback, /*Boolean?*/ consumeErrors, /*Function?*/ canceller){ // summary: // Provides event handling for a group of Deferred objects. @@ -21183,7 +22004,7 @@ dojo.DeferredList = function(/*Array*/ list, /*Boolean?*/ fireOnOneCallback, /*B dojo.DeferredList.prototype = new dojo.Deferred(); dojo.DeferredList.prototype.gatherResults= function(deferredList){ - // summary: + // summary: // Gathers the results of the deferreds for packaging // as the parameters to the Deferred Lists' callback @@ -21204,6 +22025,7 @@ if(!dojo._hasResource["dijit.tree.TreeStoreModel"]){ //_hasResource checks added dojo._hasResource["dijit.tree.TreeStoreModel"] = true; dojo.provide("dijit.tree.TreeStoreModel"); + dojo.declare( "dijit.tree.TreeStoreModel", null, @@ -21415,7 +22237,7 @@ dojo.declare( // to parents with multiple children attributes, in order to define which // children attribute points to the new item. - var pInfo = {parent: parent, attribute: this.childrenAttrs[0], insertIndex: insertIndex}; + var pInfo = {parent: parent, attribute: this.childrenAttrs[0]}, LnewItem; if(this.newItemIdAttr && args[this.newItemIdAttr]){ // Maybe there's already a corresponding item in the store; if so, reuse it. @@ -21425,12 +22247,20 @@ dojo.declare( this.pasteItem(item, null, parent, true, insertIndex); }else{ // Create new item in the tree, based on the drag source. - this.store.newItem(args, pInfo); + LnewItem=this.store.newItem(args, pInfo); + if (LnewItem && (insertIndex!=undefined)){ + // Move new item to desired position + this.pasteItem(LnewItem, parent, parent, false, insertIndex); + } } }}); }else{ // [as far as we know] there is no id so we must assume this is a new item - this.store.newItem(args, pInfo); + LnewItem=this.store.newItem(args, pInfo); + if (LnewItem && (insertIndex!=undefined)){ + // Move new item to desired position + this.pasteItem(LnewItem, parent, parent, false, insertIndex); + } } }, @@ -21564,8 +22394,6 @@ dojo.declare( } }); - - } if(!dojo._hasResource["dijit.tree.ForestStoreModel"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -21576,14 +22404,22 @@ dojo.provide("dijit.tree.ForestStoreModel"); dojo.declare("dijit.tree.ForestStoreModel", dijit.tree.TreeStoreModel, { // summary: - // Interface between Tree and a dojo.store that doesn't have a root item, - // i.e. has multiple "top level" items. + // Interface between a dijit.Tree and a dojo.data store that doesn't have a root item, + // a.k.a. a store that has multiple "top level" items. // // description - // Use this class to wrap a dojo.store, making all the items matching the specified query + // Use this class to wrap a dojo.data store, making all the items matching the specified query // appear as children of a fabricated "root item". If no query is specified then all the // items returned by fetch() on the underlying store become children of the root item. - // It allows dijit.Tree to assume a single root item, even if the store doesn't have one. + // This class allows dijit.Tree to assume a single root item, even if the store doesn't have one. + // + // When using this class the developer must override a number of methods according to their app and + // data, including: + // - onNewRootItem + // - onAddToRoot + // - onLeaveRoot + // - onNewItem + // - onSetItem // Parameters to constructor @@ -21783,9 +22619,9 @@ dojo.declare("dijit.tree.ForestStoreModel", dijit.tree.TreeStoreModel, { // a new item is created, since any new item could be a top level item (even in // addition to being a child of another item, since items can have multiple parents). // - // Developers can override this function to do something more efficient if they can - // detect which items are possible top level items (based on the item and the - // parentInfo parameters). Often all top level items have parentInfo==null, but + // If developers can detect which items are possible top level items (based on the item and the + // parentInfo parameters), they should override this method to only call _requeryTop() for top + // level items. Often all top level items have parentInfo==null, but // that will depend on which store you use and what your data is like. // tags: // extension @@ -21805,10 +22641,926 @@ dojo.declare("dijit.tree.ForestStoreModel", dijit.tree.TreeStoreModel, { } this.inherited(arguments); + }, + + onSetItem: function(/* item */ item, + /* attribute-name-string */ attribute, + /* object | array */ oldValue, + /* object | array */ newValue){ + // summary: + // Updates the tree view according to changes to an item in the data store. + // Developers should override this method to be more efficient based on their app/data. + // description: + // Handles updates to an item's children by calling onChildrenChange(), and + // other updates to an item by calling onChange(). + // + // Also, any change to any item re-executes the query for the tree's top-level items, + // since this modified item may have started/stopped matching the query for top level items. + // + // If possible, developers should override this function to only call _requeryTop() when + // the change to the item has caused it to stop/start being a top level item in the tree. + // tags: + // extension + + this._requeryTop(); + this.inherited(arguments); } + +}); + +} + +if(!dojo._hasResource["dojo.dnd.Container"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.dnd.Container"] = true; +dojo.provide("dojo.dnd.Container"); + + + + +/* + Container states: + "" - normal state + "Over" - mouse over a container + Container item states: + "" - normal state + "Over" - mouse over a container item +*/ + +/*===== +dojo.declare("dojo.dnd.__ContainerArgs", [], { + creator: function(){ + // summary: + // a creator function, which takes a data item, and returns an object like that: + // {node: newNode, data: usedData, type: arrayOfStrings} + }, + + // skipForm: Boolean + // don't start the drag operation, if clicked on form elements + skipForm: false, + + // dropParent: Node||String + // node or node's id to use as the parent node for dropped items + // (must be underneath the 'node' parameter in the DOM) + dropParent: null, + + // _skipStartup: Boolean + // skip startup(), which collects children, for deferred initialization + // (this is used in the markup mode) + _skipStartup: false +}); + +dojo.dnd.Item = function(){ + // summary: + // Represents (one of) the source node(s) being dragged. + // Contains (at least) the "type" and "data" attributes. + // type: String[] + // Type(s) of this item, by default this is ["text"] + // data: Object + // Logical representation of the object being dragged. + // If the drag object's type is "text" then data is a String, + // if it's another type then data could be a different Object, + // perhaps a name/value hash. + + this.type = type; + this.data = data; +} +=====*/ + +dojo.declare("dojo.dnd.Container", null, { + // summary: + // a Container object, which knows when mouse hovers over it, + // and over which element it hovers + + // object attributes (for markup) + skipForm: false, + + /*===== + // current: DomNode + // The DOM node the mouse is currently hovered over + current: null, + + // map: Hash<String, dojo.dnd.Item> + // Map from an item's id (which is also the DOMNode's id) to + // the dojo.dnd.Item itself. + map: {}, + =====*/ + + constructor: function(node, params){ + // summary: + // a constructor of the Container + // node: Node + // node or node's id to build the container on + // params: dojo.dnd.__ContainerArgs + // a dictionary of parameters + this.node = dojo.byId(node); + if(!params){ params = {}; } + this.creator = params.creator || null; + this.skipForm = params.skipForm; + this.parent = params.dropParent && dojo.byId(params.dropParent); + + // class-specific variables + this.map = {}; + this.current = null; + + // states + this.containerState = ""; + dojo.addClass(this.node, "dojoDndContainer"); + + // mark up children + if(!(params && params._skipStartup)){ + this.startup(); + } + + // set up events + this.events = [ + dojo.connect(this.node, "onmouseover", this, "onMouseOver"), + dojo.connect(this.node, "onmouseout", this, "onMouseOut"), + // cancel text selection and text dragging + dojo.connect(this.node, "ondragstart", this, "onSelectStart"), + dojo.connect(this.node, "onselectstart", this, "onSelectStart") + ]; + }, + + // object attributes (for markup) + creator: function(){ + // summary: + // creator function, dummy at the moment + }, + + // abstract access to the map + getItem: function(/*String*/ key){ + // summary: + // returns a data item by its key (id) + return this.map[key]; // dojo.dnd.Item + }, + setItem: function(/*String*/ key, /*dojo.dnd.Item*/ data){ + // summary: + // associates a data item with its key (id) + this.map[key] = data; + }, + delItem: function(/*String*/ key){ + // summary: + // removes a data item from the map by its key (id) + delete this.map[key]; + }, + forInItems: function(/*Function*/ f, /*Object?*/ o){ + // summary: + // iterates over a data map skipping members that + // are present in the empty object (IE and/or 3rd-party libraries). + o = o || dojo.global; + var m = this.map, e = dojo.dnd._empty; + for(var i in m){ + if(i in e){ continue; } + f.call(o, m[i], i, this); + } + return o; // Object + }, + clearItems: function(){ + // summary: + // removes all data items from the map + this.map = {}; + }, + + // methods + getAllNodes: function(){ + // summary: + // returns a list (an array) of all valid child nodes + return dojo.query("> .dojoDndItem", this.parent); // NodeList + }, + sync: function(){ + // summary: + // sync up the node list with the data map + var map = {}; + this.getAllNodes().forEach(function(node){ + if(node.id){ + var item = this.getItem(node.id); + if(item){ + map[node.id] = item; + return; + } + }else{ + node.id = dojo.dnd.getUniqueId(); + } + var type = node.getAttribute("dndType"), + data = node.getAttribute("dndData"); + map[node.id] = { + data: data || node.innerHTML, + type: type ? type.split(/\s*,\s*/) : ["text"] + }; + }, this); + this.map = map; + return this; // self + }, + insertNodes: function(data, before, anchor){ + // summary: + // inserts an array of new nodes before/after an anchor node + // data: Array + // a list of data items, which should be processed by the creator function + // before: Boolean + // insert before the anchor, if true, and after the anchor otherwise + // anchor: Node + // the anchor node to be used as a point of insertion + if(!this.parent.firstChild){ + anchor = null; + }else if(before){ + if(!anchor){ + anchor = this.parent.firstChild; + } + }else{ + if(anchor){ + anchor = anchor.nextSibling; + } + } + if(anchor){ + for(var i = 0; i < data.length; ++i){ + var t = this._normalizedCreator(data[i]); + this.setItem(t.node.id, {data: t.data, type: t.type}); + this.parent.insertBefore(t.node, anchor); + } + }else{ + for(var i = 0; i < data.length; ++i){ + var t = this._normalizedCreator(data[i]); + this.setItem(t.node.id, {data: t.data, type: t.type}); + this.parent.appendChild(t.node); + } + } + return this; // self + }, + destroy: function(){ + // summary: + // prepares this object to be garbage-collected + dojo.forEach(this.events, dojo.disconnect); + this.clearItems(); + this.node = this.parent = this.current = null; + }, + + // markup methods + markupFactory: function(params, node){ + params._skipStartup = true; + return new dojo.dnd.Container(node, params); + }, + startup: function(){ + // summary: + // collects valid child items and populate the map + + // set up the real parent node + if(!this.parent){ + // use the standard algorithm, if not assigned + this.parent = this.node; + if(this.parent.tagName.toLowerCase() == "table"){ + var c = this.parent.getElementsByTagName("tbody"); + if(c && c.length){ this.parent = c[0]; } + } + } + this.defaultCreator = dojo.dnd._defaultCreator(this.parent); + + // process specially marked children + this.sync(); + }, + + // mouse events + onMouseOver: function(e){ + // summary: + // event processor for onmouseover + // e: Event + // mouse event + var n = e.relatedTarget; + while(n){ + if(n == this.node){ break; } + try{ + n = n.parentNode; + }catch(x){ + n = null; + } + } + if(!n){ + this._changeState("Container", "Over"); + this.onOverEvent(); + } + n = this._getChildByEvent(e); + if(this.current == n){ return; } + if(this.current){ this._removeItemClass(this.current, "Over"); } + if(n){ this._addItemClass(n, "Over"); } + this.current = n; + }, + onMouseOut: function(e){ + // summary: + // event processor for onmouseout + // e: Event + // mouse event + for(var n = e.relatedTarget; n;){ + if(n == this.node){ return; } + try{ + n = n.parentNode; + }catch(x){ + n = null; + } + } + if(this.current){ + this._removeItemClass(this.current, "Over"); + this.current = null; + } + this._changeState("Container", ""); + this.onOutEvent(); + }, + onSelectStart: function(e){ + // summary: + // event processor for onselectevent and ondragevent + // e: Event + // mouse event + if(!this.skipForm || !dojo.dnd.isFormElement(e)){ + dojo.stopEvent(e); + } + }, + + // utilities + onOverEvent: function(){ + // summary: + // this function is called once, when mouse is over our container + }, + onOutEvent: function(){ + // summary: + // this function is called once, when mouse is out of our container + }, + _changeState: function(type, newState){ + // summary: + // changes a named state to new state value + // type: String + // a name of the state to change + // newState: String + // new state + var prefix = "dojoDnd" + type; + var state = type.toLowerCase() + "State"; + //dojo.replaceClass(this.node, prefix + newState, prefix + this[state]); + dojo.replaceClass(this.node, prefix + newState, prefix + this[state]); + this[state] = newState; + }, + _addItemClass: function(node, type){ + // summary: + // adds a class with prefix "dojoDndItem" + // node: Node + // a node + // type: String + // a variable suffix for a class name + dojo.addClass(node, "dojoDndItem" + type); + }, + _removeItemClass: function(node, type){ + // summary: + // removes a class with prefix "dojoDndItem" + // node: Node + // a node + // type: String + // a variable suffix for a class name + dojo.removeClass(node, "dojoDndItem" + type); + }, + _getChildByEvent: function(e){ + // summary: + // gets a child, which is under the mouse at the moment, or null + // e: Event + // a mouse event + var node = e.target; + if(node){ + for(var parent = node.parentNode; parent; node = parent, parent = node.parentNode){ + if(parent == this.parent && dojo.hasClass(node, "dojoDndItem")){ return node; } + } + } + return null; + }, + _normalizedCreator: function(/*dojo.dnd.Item*/ item, /*String*/ hint){ + // summary: + // adds all necessary data to the output of the user-supplied creator function + var t = (this.creator || this.defaultCreator).call(this, item, hint); + if(!dojo.isArray(t.type)){ t.type = ["text"]; } + if(!t.node.id){ t.node.id = dojo.dnd.getUniqueId(); } + dojo.addClass(t.node, "dojoDndItem"); + return t; + } +}); + +dojo.dnd._createNode = function(tag){ + // summary: + // returns a function, which creates an element of given tag + // (SPAN by default) and sets its innerHTML to given text + // tag: String + // a tag name or empty for SPAN + if(!tag){ return dojo.dnd._createSpan; } + return function(text){ // Function + return dojo.create(tag, {innerHTML: text}); // Node + }; +}; + +dojo.dnd._createTrTd = function(text){ + // summary: + // creates a TR/TD structure with given text as an innerHTML of TD + // text: String + // a text for TD + var tr = dojo.create("tr"); + dojo.create("td", {innerHTML: text}, tr); + return tr; // Node +}; + +dojo.dnd._createSpan = function(text){ + // summary: + // creates a SPAN element with given text as its innerHTML + // text: String + // a text for SPAN + return dojo.create("span", {innerHTML: text}); // Node +}; + +// dojo.dnd._defaultCreatorNodes: Object +// a dictionary that maps container tag names to child tag names +dojo.dnd._defaultCreatorNodes = {ul: "li", ol: "li", div: "div", p: "div"}; + +dojo.dnd._defaultCreator = function(node){ + // summary: + // takes a parent node, and returns an appropriate creator function + // node: Node + // a container node + var tag = node.tagName.toLowerCase(); + var c = tag == "tbody" || tag == "thead" ? dojo.dnd._createTrTd : + dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]); + return function(item, hint){ // Function + var isObj = item && dojo.isObject(item), data, type, n; + if(isObj && item.tagName && item.nodeType && item.getAttribute){ + // process a DOM node + data = item.getAttribute("dndData") || item.innerHTML; + type = item.getAttribute("dndType"); + type = type ? type.split(/\s*,\s*/) : ["text"]; + n = item; // this node is going to be moved rather than copied + }else{ + // process a DnD item object or a string + data = (isObj && item.data) ? item.data : item; + type = (isObj && item.type) ? item.type : ["text"]; + n = (hint == "avatar" ? dojo.dnd._createSpan : c)(String(data)); + } + if(!n.id){ + n.id = dojo.dnd.getUniqueId(); + } + return {node: n, data: data, type: type}; + }; +}; + +} + +if(!dojo._hasResource["dijit.tree._dndContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.tree._dndContainer"] = true; +dojo.provide("dijit.tree._dndContainer"); + + + + +dojo.getObject("tree", true, dojo); + +dijit.tree._compareNodes = function(n1, n2){ + if(n1 === n2){ + return 0; + } + + if('sourceIndex' in document.documentElement){ //IE + //TODO: does not yet work if n1 and/or n2 is a text node + return n1.sourceIndex - n2.sourceIndex; + }else if('compareDocumentPosition' in document.documentElement){ //FF, Opera + return n1.compareDocumentPosition(n2) & 2 ? 1: -1; + }else if(document.createRange){ //Webkit + var r1 = doc.createRange(); + r1.setStartBefore(n1); + + var r2 = doc.createRange(); + r2.setStartBefore(n2); + + return r1.compareBoundaryPoints(r1.END_TO_END, r2); + }else{ + throw Error("dijit.tree._compareNodes don't know how to compare two different nodes in this browser"); + } +}; + +dojo.declare("dijit.tree._dndContainer", + null, + { + + // summary: + // This is a base class for `dijit.tree._dndSelector`, and isn't meant to be used directly. + // It's modeled after `dojo.dnd.Container`. + // tags: + // protected + + /*===== + // current: DomNode + // The currently hovered TreeNode.rowNode (which is the DOM node + // associated w/a given node in the tree, excluding it's descendants) + current: null, + =====*/ + + constructor: function(tree, params){ + // summary: + // A constructor of the Container + // tree: Node + // Node or node's id to build the container on + // params: dijit.tree.__SourceArgs + // A dict of parameters, which gets mixed into the object + // tags: + // private + this.tree = tree; + this.node = tree.domNode; // TODO: rename; it's not a TreeNode but the whole Tree + dojo.mixin(this, params); + + // class-specific variables + this.map = {}; + this.current = null; // current TreeNode's DOM node + + // states + this.containerState = ""; + dojo.addClass(this.node, "dojoDndContainer"); + + // set up events + this.events = [ + // container level events + dojo.connect(this.node, "onmouseenter", this, "onOverEvent"), + dojo.connect(this.node, "onmouseleave", this, "onOutEvent"), + + // switching between TreeNodes + dojo.connect(this.tree, "_onNodeMouseEnter", this, "onMouseOver"), + dojo.connect(this.tree, "_onNodeMouseLeave", this, "onMouseOut"), + + // cancel text selection and text dragging + dojo.connect(this.node, "ondragstart", dojo, "stopEvent"), + dojo.connect(this.node, "onselectstart", dojo, "stopEvent") + ]; + }, + + getItem: function(/*String*/ key){ + // summary: + // Returns the dojo.dnd.Item (representing a dragged node) by it's key (id). + // Called by dojo.dnd.Source.checkAcceptance(). + // tags: + // protected + + var widget = this.selection[key], + ret = { + data: widget, + type: ["treeNode"] + }; + + return ret; // dojo.dnd.Item + }, + + destroy: function(){ + // summary: + // Prepares this object to be garbage-collected + + dojo.forEach(this.events, dojo.disconnect); + // this.clearItems(); + this.node = this.parent = null; + }, + + // mouse events + onMouseOver: function(/*TreeNode*/ widget, /*Event*/ evt){ + // summary: + // Called when mouse is moved over a TreeNode + // tags: + // protected + this.current = widget; + }, + + onMouseOut: function(/*TreeNode*/ widget, /*Event*/ evt){ + // summary: + // Called when mouse is moved away from a TreeNode + // tags: + // protected + this.current = null; + }, + + _changeState: function(type, newState){ + // summary: + // Changes a named state to new state value + // type: String + // A name of the state to change + // newState: String + // new state + var prefix = "dojoDnd" + type; + var state = type.toLowerCase() + "State"; + //dojo.replaceClass(this.node, prefix + newState, prefix + this[state]); + dojo.replaceClass(this.node, prefix + newState, prefix + this[state]); + this[state] = newState; + }, + + _addItemClass: function(node, type){ + // summary: + // Adds a class with prefix "dojoDndItem" + // node: Node + // A node + // type: String + // A variable suffix for a class name + dojo.addClass(node, "dojoDndItem" + type); + }, + + _removeItemClass: function(node, type){ + // summary: + // Removes a class with prefix "dojoDndItem" + // node: Node + // A node + // type: String + // A variable suffix for a class name + dojo.removeClass(node, "dojoDndItem" + type); + }, + + onOverEvent: function(){ + // summary: + // This function is called once, when mouse is over our container + // tags: + // protected + this._changeState("Container", "Over"); + }, + + onOutEvent: function(){ + // summary: + // This function is called once, when mouse is out of our container + // tags: + // protected + this._changeState("Container", ""); + } }); +} + +if(!dojo._hasResource["dijit.tree._dndSelector"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.tree._dndSelector"] = true; +dojo.provide("dijit.tree._dndSelector"); + + + + +dojo.declare("dijit.tree._dndSelector", + dijit.tree._dndContainer, + { + // summary: + // This is a base class for `dijit.tree.dndSource` , and isn't meant to be used directly. + // It's based on `dojo.dnd.Selector`. + // tags: + // protected + + /*===== + // selection: Hash<String, DomNode> + // (id, DomNode) map for every TreeNode that's currently selected. + // The DOMNode is the TreeNode.rowNode. + selection: {}, + =====*/ + + constructor: function(tree, params){ + // summary: + // Initialization + // tags: + // private + + this.selection={}; + this.anchor = null; + + dijit.setWaiState(this.tree.domNode, "multiselect", !this.singular); + + this.events.push( + dojo.connect(this.tree.domNode, "onmousedown", this,"onMouseDown"), + dojo.connect(this.tree.domNode, "onmouseup", this,"onMouseUp"), + dojo.connect(this.tree.domNode, "onmousemove", this,"onMouseMove") + ); + }, + + // singular: Boolean + // Allows selection of only one element, if true. + // Tree hasn't been tested in singular=true mode, unclear if it works. + singular: false, + + // methods + getSelectedTreeNodes: function(){ + // summary: + // Returns a list of selected node(s). + // Used by dndSource on the start of a drag. + // tags: + // protected + var nodes=[], sel = this.selection; + for(var i in sel){ + nodes.push(sel[i]); + } + return nodes; + }, + + selectNone: function(){ + // summary: + // Unselects all items + // tags: + // private + + this.setSelection([]); + return this; // self + }, + + destroy: function(){ + // summary: + // Prepares the object to be garbage-collected + this.inherited(arguments); + this.selection = this.anchor = null; + }, + addTreeNode: function(/*dijit._TreeNode*/node, /*Boolean?*/isAnchor){ + // summary + // add node to current selection + // node: Node + // node to add + // isAnchor: Boolean + // Whether the node should become anchor. + this.setSelection(this.getSelectedTreeNodes().concat( [node] )); + if(isAnchor){ this.anchor = node; } + return node; + }, + removeTreeNode: function(/*dijit._TreeNode*/node){ + // summary + // remove node from current selection + // node: Node + // node to remove + this.setSelection(this._setDifference(this.getSelectedTreeNodes(), [node])) + return node; + }, + isTreeNodeSelected: function(/*dijit._TreeNode*/node){ + // summary + // return true if node is currently selected + // node: Node + // the node to check whether it's in the current selection + + return node.id && !!this.selection[node.id]; + }, + setSelection: function(/*dijit._treeNode[]*/ newSelection){ + // summary + // set the list of selected nodes to be exactly newSelection. All changes to the + // selection should be passed through this function, which ensures that derived + // attributes are kept up to date. Anchor will be deleted if it has been removed + // from the selection, but no new anchor will be added by this function. + // newSelection: Node[] + // list of tree nodes to make selected + var oldSelection = this.getSelectedTreeNodes(); + dojo.forEach(this._setDifference(oldSelection, newSelection), dojo.hitch(this, function(node){ + node.setSelected(false); + if(this.anchor == node){ + delete this.anchor; + } + delete this.selection[node.id]; + })); + dojo.forEach(this._setDifference(newSelection, oldSelection), dojo.hitch(this, function(node){ + node.setSelected(true); + this.selection[node.id] = node; + })); + this._updateSelectionProperties(); + }, + _setDifference: function(xs,ys){ + // summary + // Returns a copy of xs which lacks any objects + // occurring in ys. Checks for membership by + // modifying and then reading the object, so it will + // not properly handle sets of numbers or strings. + + dojo.forEach(ys, function(y){ y.__exclude__ = true; }); + var ret = dojo.filter(xs, function(x){ return !x.__exclude__; }); + + // clean up after ourselves. + dojo.forEach(ys, function(y){ delete y['__exclude__'] }); + return ret; + }, + _updateSelectionProperties: function() { + // summary + // Update the following tree properties from the current selection: + // path[s], selectedItem[s], selectedNode[s] + + var selected = this.getSelectedTreeNodes(); + var paths = [], nodes = []; + dojo.forEach(selected, function(node) { + nodes.push(node); + paths.push(node.getTreePath()); + }); + var items = dojo.map(nodes,function(node) { return node.item; }); + this.tree._set("paths", paths); + this.tree._set("path", paths[0] || []); + this.tree._set("selectedNodes", nodes); + this.tree._set("selectedNode", nodes[0] || null); + this.tree._set("selectedItems", items); + this.tree._set("selectedItem", items[0] || null); + }, + // mouse events + onMouseDown: function(e){ + // summary: + // Event processor for onmousedown + // e: Event + // mouse event + // tags: + // protected + + // ignore click on expando node + if(!this.current || this.tree.isExpandoNode( e.target, this.current)){ return; } + + if(e.button == dojo.mouseButtons.RIGHT){ return; } // ignore right-click + + dojo.stopEvent(e); + + var treeNode = this.current, + copy = dojo.isCopyKey(e), id = treeNode.id; + + // if shift key is not pressed, and the node is already in the selection, + // delay deselection until onmouseup so in the case of DND, deselection + // will be canceled by onmousemove. + if(!this.singular && !e.shiftKey && this.selection[id]){ + this._doDeselect = true; + return; + }else{ + this._doDeselect = false; + } + this.userSelect(treeNode, copy, e.shiftKey); + }, + + onMouseUp: function(e){ + // summary: + // Event processor for onmouseup + // e: Event + // mouse event + // tags: + // protected + + // _doDeselect is the flag to indicate that the user wants to either ctrl+click on + // a already selected item (to deselect the item), or click on a not-yet selected item + // (which should remove all current selection, and add the clicked item). This can not + // be done in onMouseDown, because the user may start a drag after mousedown. By moving + // the deselection logic here, the user can drags an already selected item. + if(!this._doDeselect){ return; } + this._doDeselect = false; + this.userSelect(this.current, dojo.isCopyKey( e ), e.shiftKey); + }, + onMouseMove: function(e){ + // summary + // event processor for onmousemove + // e: Event + // mouse event + this._doDeselect = false; + }, + + userSelect: function(node, multi, range){ + // summary: + // Add or remove the given node from selection, responding + // to a user action such as a click or keypress. + // multi: Boolean + // Indicates whether this is meant to be a multi-select action (e.g. ctrl-click) + // range: Boolean + // Indicates whether this is meant to be a ranged action (e.g. shift-click) + // tags: + // protected + + if(this.singular){ + if(this.anchor == node && multi){ + this.selectNone(); + }else{ + this.setSelection([node]); + this.anchor = node; + } + }else{ + if(range && this.anchor){ + var cr = dijit.tree._compareNodes(this.anchor.rowNode, node.rowNode), + begin, end, anchor = this.anchor; + + if(cr < 0){ //current is after anchor + begin = anchor; + end = node; + }else{ //current is before anchor + begin = node; + end = anchor; + } + nodes = []; + //add everything betweeen begin and end inclusively + while(begin != end) { + nodes.push(begin) + begin = this.tree._getNextNode(begin); + } + nodes.push(end) + + this.setSelection(nodes); + }else{ + if( this.selection[ node.id ] && multi ) { + this.removeTreeNode( node ); + } else if(multi) { + this.addTreeNode(node, true); + } else { + this.setSelection([node]); + this.anchor = node; + } + } + } + }, + + forInSelectedItems: function(/*Function*/ f, /*Object?*/ o){ + // summary: + // Iterates over selected items; + // see `dojo.dnd.Container.forInItems()` for details + o = o || dojo.global; + for(var id in this.selection){ + // console.log("selected item id: " + id); + f.call(o, this.getItem(id), id, this); + } + } +}); } @@ -21826,6 +23578,8 @@ dojo.provide("dijit.Tree"); + + dojo.declare( "dijit._TreeNode", [dijit._Widget, dijit._Templated, dijit._Container, dijit._Contained, dijit._CssStateMixin], @@ -21836,7 +23590,7 @@ dojo.declare( // tags: // private - // item: dojo.data.Item + // item: [const] dojo.data.Item // the dojo.data entry this tree represents item: null, @@ -21863,7 +23617,7 @@ dojo.declare( // then after dojo.data query it becomes "LOADING" and, finally "LOADED" state: "UNCHECKED", - templateString: dojo.cache("dijit", "templates/TreeNode.html", "<div class=\"dijitTreeNode\" waiRole=\"presentation\"\n\t><div dojoAttachPoint=\"rowNode\" class=\"dijitTreeRow\" waiRole=\"presentation\" dojoAttachEvent=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"expandoNode\" class=\"dijitTreeExpando\" waiRole=\"presentation\"\n\t\t/><span dojoAttachPoint=\"expandoNodeText\" class=\"dijitExpandoText\" waiRole=\"presentation\"\n\t\t></span\n\t\t><span dojoAttachPoint=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" waiRole=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" waiRole=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"labelNode\" class=\"dijitTreeLabel\" wairole=\"treeitem\" tabindex=\"-1\" waiState=\"selected-false\" dojoAttachEvent=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div dojoAttachPoint=\"containerNode\" class=\"dijitTreeContainer\" waiRole=\"presentation\" style=\"display: none;\"></div>\n</div>\n"), + templateString: dojo.cache("dijit", "templates/TreeNode.html", "<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div dojoAttachPoint=\"rowNode\" class=\"dijitTreeRow\" role=\"presentation\" dojoAttachEvent=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span dojoAttachPoint=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span dojoAttachPoint=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\" dojoAttachEvent=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div dojoAttachPoint=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n"), baseClass: "dijitTreeNode", @@ -21878,7 +23632,7 @@ dojo.declare( tooltip: {node: "rowNode", type: "attribute", attribute: "title"} }), - postCreate: function(){ + buildRendering: function(){ this.inherited(arguments); // set expand icon for leaf @@ -21890,6 +23644,9 @@ dojo.declare( if(this.isExpandable){ dijit.setWaiState(this.labelNode, "expanded", this.isExpanded); } + + //aria-selected should be false on all selectable elements. + this.setSelected(false); }, _setIndentAttr: function(indent){ @@ -21898,7 +23655,6 @@ dojo.declare( // description: // 0 for top level nodes, 1 for their children, 2 for their // grandchildren, etc. - this.indent = indent; // Math.max() is to prevent negative padding on hidden root node (when indent == -1) var pixels = (Math.max(indent, 0) * this.tree._nodePixelIndent) + "px"; @@ -21909,6 +23665,8 @@ dojo.declare( dojo.forEach(this.getChildren(), function(child){ child.set("indent", indent+1); }); + + this._set("indent", indent); }, markProcessing: function(){ @@ -21962,14 +23720,11 @@ dojo.declare( var clsName = "_" + lower + "Class"; var nodeName = lower + "Node"; + var oldCls = this[clsName]; - if(this[clsName]){ - dojo.removeClass(this[nodeName], this[clsName]); - } this[clsName] = this.tree["get" + upper + "Class"](item, this.isExpanded); - if(this[clsName]){ - dojo.addClass(this[nodeName], this[clsName]); - } + dojo.replaceClass(this[nodeName], this[clsName] || "", oldCls || ""); + dojo.style(this[nodeName], this.tree["get" + upper + "Style"](item, this.isExpanded) || {}); }, @@ -21999,8 +23754,7 @@ dojo.declare( idx = processing ? 0 : (this.isExpandable ? (this.isExpanded ? 1 : 2) : 3); // apply the appropriate class to the expando node - dojo.removeClass(this.expandoNode, styles); - dojo.addClass(this.expandoNode, styles[idx]); + dojo.replaceClass(this.expandoNode, styles[idx], styles); // provide a non-image based indicator for images-off mode this.expandoNodeText.innerHTML = _a11yStates[idx]; @@ -22025,7 +23779,9 @@ dojo.declare( // set when the animation completes instead this.isExpanded = true; dijit.setWaiState(this.labelNode, "expanded", "true"); - dijit.setWaiRole(this.containerNode, "group"); + if(this.tree.showRoot || this !== this.tree.rootNode){ + dijit.setWaiRole(this.containerNode, "group"); + } dojo.addClass(this.contentNode,'dijitTreeContentExpanded'); this._setExpando(); this._updateItemClasses(this.item); @@ -22187,6 +23943,22 @@ dojo.declare( return new dojo.DeferredList(defs); // dojo.Deferred }, + getTreePath: function(){ + var node = this; + var path = []; + while(node && node !== this.tree.rootNode){ + path.unshift(node.item); + node = node.getParent(); + } + path.unshift(this.tree.rootNode.item); + + return path; + }, + + getIdentity: function() { + return this.tree.model.getIdentity(this.item); + }, + removeChild: function(/* treeNode */ node){ this.inherited(arguments); @@ -22314,17 +24086,25 @@ dojo.declare( // One ore more attributes that holds children of a tree node childrenAttr: ["children"], - // path: String[] or Item[] - // Full path from rootNode to selected node expressed as array of items or array of ids. - // Since setting the path may be asynchronous (because ofwaiting on dojo.data), set("path", ...) + // paths: String[][] or Item[][] + // Full paths from rootNode to selected nodes expressed as array of items or array of ids. + // Since setting the paths may be asynchronous (because ofwaiting on dojo.data), set("paths", ...) // returns a Deferred to indicate when the set is complete. + paths: [], + + // path: String[] or Item[] + // Backward compatible singular variant of paths. path: [], - // selectedItem: [readonly] Item - // The currently selected item in this tree. - // This property can only be set (via set('selectedItem', ...)) when that item is already + // selectedItems: [readonly] Item[] + // The currently selected items in this tree. + // This property can only be set (via set('selectedItems', ...)) when that item is already // visible in the tree. (I.e. the tree has already been expanded to show that node.) - // Should generally use `path` attribute to set the selected item instead. + // Should generally use `paths` attribute to set the selected items instead. + selectedItems: null, + + // selectedItem: [readonly] Item + // Backward compatible singular variant of selectedItems. selectedItem: null, // openOnClick: Boolean @@ -22335,20 +24115,21 @@ dojo.declare( // If true, double-clicking a folder node's label will open it, rather than calling onDblClick() openOnDblClick: false, - templateString: dojo.cache("dijit", "templates/Tree.html", "<div class=\"dijitTree dijitTreeContainer\" waiRole=\"tree\"\n\tdojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" dojoAttachPoint=\"indentDetector\"></div>\n</div>\n"), + templateString: dojo.cache("dijit", "templates/Tree.html", "<div class=\"dijitTree dijitTreeContainer\" role=\"tree\"\n\tdojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" dojoAttachPoint=\"indentDetector\"></div>\n</div>\n"), // persist: Boolean // Enables/disables use of cookies for state saving. persist: true, // autoExpand: Boolean - // Fully expand the tree on load. Overrides `persist` + // Fully expand the tree on load. Overrides `persist`. autoExpand: false, // dndController: [protected] String // Class name to use as as the dnd controller. Specifying this class enables DnD. // Generally you should specify this as "dijit.tree.dndSource". - dndController: null, + // Default of "dijit.tree._dndSelector" handles selection only (no actual DnD). + dndController: "dijit.tree._dndSelector", // parameters to pull off of the tree and pass on to the dndController as its params dndParams: ["onDndDrop","itemCreator","onDndCancel","checkAcceptance", "checkItemAcceptance", "dragThreshold", "betweenThreshold"], @@ -22566,6 +24347,12 @@ dojo.declare( })); if(!this.showRoot){ rn.rowNode.style.display="none"; + // if root is not visible, move tree role to the invisible + // root node's containerNode, see #12135 + dijit.setWaiRole(this.domNode, 'presentation'); + + dijit.setWaiRole(rn.labelNode, 'presentation'); + dijit.setWaiRole(rn.containerNode, 'tree'); } this.domNode.appendChild(rn.domNode); var identity = this.model.getIdentity(item); @@ -22602,104 +24389,103 @@ dojo.declare( }, _setSelectedItemAttr: function(/*dojo.data.Item or id*/ item){ - // summary: - // Select a tree node related to passed item. - // WARNING: if model use multi-parented items or desired tree node isn't already loaded - // behavior is undefined. Use set('path', ...) instead. - - var oldValue = this.get("selectedItem"); - var identity = (!item || dojo.isString(item)) ? item : this.model.getIdentity(item); - if(identity == oldValue ? this.model.getIdentity(oldValue) : null){ return; } - var nodes = this._itemNodesMap[identity]; - this._selectNode((nodes && nodes[0]) || null); //select the first item + this.set('selectedItems', [item]); }, - _getSelectedItemAttr: function(){ + _setSelectedItemsAttr: function(/*dojo.data.Items or ids*/ items){ // summary: - // Return item related to selected tree node. - return this.selectedNode && this.selectedNode.item; + // Select tree nodes related to passed items. + // WARNING: if model use multi-parented items or desired tree node isn't already loaded + // behavior is undefined. Use set('paths', ...) instead. + var tree = this; + this._loadDeferred.addCallback( dojo.hitch(this, function(){ + var identities = dojo.map(items, function(item){ + return (!item || dojo.isString(item)) ? item : tree.model.getIdentity(item); + }); + var nodes = []; + dojo.forEach(identities, function(id){ + nodes = nodes.concat(tree._itemNodesMap[id] || []); + }); + this.set('selectedNodes', nodes); + })); }, _setPathAttr: function(/*Item[] || String[]*/ path){ // summary: - // Select the tree node identified by passed path. - // path: - // Array of items or item id's + // Singular variant of _setPathsAttr + if(path.length) { + return this.set("paths", [path]); + } else { + //Empty list is interpreted as "select nothing" + return this.set("paths", []); + } + }, + + _setPathsAttr: function(/*Item[][] || String[][]*/ paths){ + // summary: + // Select the tree nodes identified by passed paths. + // paths: + // Array of arrays of items or item id's // returns: // Deferred to indicate when the set is complete + var tree = this; - var d = new dojo.Deferred(); - - this._selectNode(null); - if(!path || !path.length){ - d.resolve(true); - return d; - } + // We may need to wait for some nodes to expand, so setting + // each path will involve a Deferred. We bring those deferreds + // together witha DeferredList. + return new dojo.DeferredList(dojo.map(paths, function(path){ + var d = new dojo.Deferred(); + + // normalize path to use identity + path = dojo.map(path, function(item){ + return dojo.isString(item) ? item : tree.model.getIdentity(item); + }); - // If this is called during initialization, defer running until Tree has finished loading - this._loadDeferred.addCallback(dojo.hitch(this, function(){ - if(!this.rootNode){ - d.reject(new Error("!this.rootNode")); - return; - } - if(path[0] !== this.rootNode.item && (dojo.isString(path[0]) && path[0] != this.model.getIdentity(this.rootNode.item))){ - d.reject(new Error(this.id + ":path[0] doesn't match this.rootNode.item. Maybe you are using the wrong tree.")); - return; + if(path.length){ + // Wait for the tree to load, if it hasn't already. + tree._loadDeferred.addCallback(function(){ selectPath(path, [tree.rootNode], d); }); + }else{ + d.errback("Empty path"); } - path.shift(); - - var node = this.rootNode; - - function advance(){ - // summary: - // Called when "node" has completed loading and expanding. Pop the next item from the path - // (which must be a child of "node") and advance to it, and then recurse. - - // Set item and identity to next item in path (node is pointing to the item that was popped - // from the path _last_ time. - var item = path.shift(), - identity = dojo.isString(item) ? item : this.model.getIdentity(item); - - // Change "node" from previous item in path to the item we just popped from path - dojo.some(this._itemNodesMap[identity], function(n){ - if(n.getParent() == node){ - node = n; - return true; - } - return false; - }); + return d; + })).addCallback(setNodes); + function selectPath(path, nodes, def){ + // Traverse path; the next path component should be among "nodes". + var nextPath = path.shift(); + var nextNode = dojo.filter(nodes, function(node){ + return node.getIdentity() == nextPath; + })[0]; + if(!!nextNode){ if(path.length){ - // Need to do more expanding - this._expandNode(node).addCallback(dojo.hitch(this, advance)); + tree._expandNode(nextNode).addCallback(function(){ selectPath(path, nextNode.getChildren(), def); }); }else{ - // Final destination node, select it - this._selectNode(node); - - // signal that path setting is finished - d.resolve(true); + //Successfully reached the end of this path + def.callback(nextNode); } + } else { + def.errback("Could not expand path at " + nextPath); } + } + + function setNodes(newNodes){ + //After all expansion is finished, set the selection to + //the set of nodes successfully found. + tree.set("selectedNodes", dojo.map( + dojo.filter(newNodes,function(x){return x[0];}), + function(x){return x[1];})); + } + }, - this._expandNode(node).addCallback(dojo.hitch(this, advance)); + _setSelectedNodeAttr: function(node){ + this.set('selectedNodes', [node]); + }, + _setSelectedNodesAttr: function(nodes){ + this._loadDeferred.addCallback( dojo.hitch(this, function(){ + this.dndController.setSelection(nodes); })); - - return d; }, - _getPathAttr: function(){ - // summary: - // Return an array of items that is the path to selected tree node. - if(!this.selectedNode){ return; } - var res = []; - var treeNode = this.selectedNode; - while(treeNode && treeNode !== this.rootNode){ - res.unshift(treeNode.item); - treeNode = treeNode.getParent(); - } - res.unshift(this.rootNode.item); - return res; - }, ////////////// Data store related functions ////////////////////// // These just get passed to the model; they are here for back-compat @@ -22804,7 +24590,7 @@ dojo.declare( if(!treeNode){ return; } var key = e.charOrCode; - if(typeof key == "string"){ // handle printables (letter navigation) + if(typeof key == "string" && key != " "){ // handle printables (letter navigation) // Check for key navigation. if(!e.altKey && !e.ctrlKey && !e.shiftKey && !e.metaKey){ this._onLetterKeyNav( { node: treeNode, key: key.toLowerCase() } ); @@ -22823,6 +24609,11 @@ dojo.declare( // setup table mapping keys to events map = {}; map[dk.ENTER]="_onEnterKey"; + //On WebKit based browsers, the combination ctrl-enter + //does not get passed through. To allow accessible + //multi-select on those browsers, the space key is + //also used for selection. + map[dk.SPACE]= map[" "] = "_onEnterKey"; map[this.isLeftToRight() ? dk.LEFT_ARROW : dk.RIGHT_ARROW]="_onLeftArrow"; map[this.isLeftToRight() ? dk.RIGHT_ARROW : dk.LEFT_ARROW]="_onRightArrow"; map[dk.UP_ARROW]="_onUpArrow"; @@ -22838,10 +24629,10 @@ dojo.declare( } }, - _onEnterKey: function(/*Object*/ message, /*Event*/ evt){ + _onEnterKey: function(/*Object*/ message){ this._publish("execute", { item: message.item, node: message.node } ); - this._selectNode(message.node); - this.onClick(message.item, message.node, evt); + this.dndController.userSelect(message.node, dojo.isCopyKey( message.evt ), message.evt.shiftKey); + this.onClick(message.item, message.node, message.evt); }, _onDownArrow: function(/*Object*/ message){ @@ -22993,12 +24784,17 @@ dojo.declare( } }, + isExpandoNode: function(node, widget){ + // summary: + // check whether a dom node is the expandoNode for a particular TreeNode widget + return dojo.isDescendant(node, widget.expandoNode); + }, _onClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e){ // summary: // Translates click events into commands for the controller to process var domElement = e.target, - isExpandoClick = (domElement == nodeWidget.expandoNode || domElement == nodeWidget.expandoNodeText); + isExpandoClick = this.isExpandoNode(domElement, nodeWidget); if( (this.openOnClick && nodeWidget.isExpandable) || isExpandoClick ){ // expando node was clicked, or label of a folder node was clicked; open it @@ -23010,9 +24806,6 @@ dojo.declare( this.onClick(nodeWidget.item, nodeWidget, e); this.focusNode(nodeWidget); } - if(!isExpandoClick){ - this._selectNode(nodeWidget); - } dojo.stopEvent(e); }, _onDblClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e){ @@ -23032,9 +24825,6 @@ dojo.declare( this.onDblClick(nodeWidget.item, nodeWidget, e); this.focusNode(nodeWidget); } - if(!isExpandoClick){ - this._selectNode(nodeWidget); - } dojo.stopEvent(e); }, @@ -23213,21 +25003,6 @@ dojo.declare( dijit.focus(node.labelNode); }, - _selectNode: function(/*_tree.Node*/ node){ - // summary: - // Mark specified node as select, and unmark currently selected node. - // tags: - // protected - - if(this.selectedNode && !this.selectedNode._destroyed){ - this.selectedNode.setSelected(false); - } - if(node){ - node.setSelected(true); - } - this.selectedNode = node; - }, - _onNodeFocus: function(/*dijit._Widget*/ node){ // summary: // Called when a TreeNode gets focus, either by user clicking @@ -23306,13 +25081,16 @@ dojo.declare( if(nodes){ dojo.forEach(nodes,function(node){ + // Remove node from set of selected nodes (if it's selected) + this.dndController.removeTreeNode(node); + var parent = node.getParent(); if(parent){ // if node has not already been orphaned from a _onSetItem(parent, "children", ..) call... parent.removeChild(node); } node.destroyRecursive(); - }); + }, this); delete this._itemNodesMap[identity]; } }, @@ -23385,13 +25163,12 @@ dojo.declare( resize: function(changeSize){ if(changeSize){ dojo.marginBox(this.domNode, changeSize); - dojo.style(this.domNode, "overflow", "auto"); // for scrollbars } // The only JS sizing involved w/tree is the indentation, which is specified // in CSS and read in through this dummy indentDetector node (tree must be // visible and attached to the DOM to read this) - this._nodePixelIndent = dojo.marginBox(this.tree.indentDetector).w; + this._nodePixelIndent = dojo._getMarginSize(this.tree.indentDetector).w; if(this.tree.rootNode){ // If tree has already loaded, then reset indent for all the nodes @@ -23413,822 +25190,6 @@ dojo.declare( // For back-compat. TODO: remove in 2.0 - - -} - -if(!dojo._hasResource["dojo.dnd.Container"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojo.dnd.Container"] = true; -dojo.provide("dojo.dnd.Container"); - - - - -/* - Container states: - "" - normal state - "Over" - mouse over a container - Container item states: - "" - normal state - "Over" - mouse over a container item -*/ - -/*===== -dojo.declare("dojo.dnd.__ContainerArgs", [], { - creator: function(){ - // summary: - // a creator function, which takes a data item, and returns an object like that: - // {node: newNode, data: usedData, type: arrayOfStrings} - }, - - // skipForm: Boolean - // don't start the drag operation, if clicked on form elements - skipForm: false, - - // dropParent: Node||String - // node or node's id to use as the parent node for dropped items - // (must be underneath the 'node' parameter in the DOM) - dropParent: null, - - // _skipStartup: Boolean - // skip startup(), which collects children, for deferred initialization - // (this is used in the markup mode) - _skipStartup: false -}); - -dojo.dnd.Item = function(){ - // summary: - // Represents (one of) the source node(s) being dragged. - // Contains (at least) the "type" and "data" attributes. - // type: String[] - // Type(s) of this item, by default this is ["text"] - // data: Object - // Logical representation of the object being dragged. - // If the drag object's type is "text" then data is a String, - // if it's another type then data could be a different Object, - // perhaps a name/value hash. - - this.type = type; - this.data = data; -} -=====*/ - -dojo.declare("dojo.dnd.Container", null, { - // summary: - // a Container object, which knows when mouse hovers over it, - // and over which element it hovers - - // object attributes (for markup) - skipForm: false, - - /*===== - // current: DomNode - // The DOM node the mouse is currently hovered over - current: null, - - // map: Hash<String, dojo.dnd.Item> - // Map from an item's id (which is also the DOMNode's id) to - // the dojo.dnd.Item itself. - map: {}, - =====*/ - - constructor: function(node, params){ - // summary: - // a constructor of the Container - // node: Node - // node or node's id to build the container on - // params: dojo.dnd.__ContainerArgs - // a dictionary of parameters - this.node = dojo.byId(node); - if(!params){ params = {}; } - this.creator = params.creator || null; - this.skipForm = params.skipForm; - this.parent = params.dropParent && dojo.byId(params.dropParent); - - // class-specific variables - this.map = {}; - this.current = null; - - // states - this.containerState = ""; - dojo.addClass(this.node, "dojoDndContainer"); - - // mark up children - if(!(params && params._skipStartup)){ - this.startup(); - } - - // set up events - this.events = [ - dojo.connect(this.node, "onmouseover", this, "onMouseOver"), - dojo.connect(this.node, "onmouseout", this, "onMouseOut"), - // cancel text selection and text dragging - dojo.connect(this.node, "ondragstart", this, "onSelectStart"), - dojo.connect(this.node, "onselectstart", this, "onSelectStart") - ]; - }, - - // object attributes (for markup) - creator: function(){ - // summary: - // creator function, dummy at the moment - }, - - // abstract access to the map - getItem: function(/*String*/ key){ - // summary: - // returns a data item by its key (id) - return this.map[key]; // dojo.dnd.Item - }, - setItem: function(/*String*/ key, /*dojo.dnd.Item*/ data){ - // summary: - // associates a data item with its key (id) - this.map[key] = data; - }, - delItem: function(/*String*/ key){ - // summary: - // removes a data item from the map by its key (id) - delete this.map[key]; - }, - forInItems: function(/*Function*/ f, /*Object?*/ o){ - // summary: - // iterates over a data map skipping members that - // are present in the empty object (IE and/or 3rd-party libraries). - o = o || dojo.global; - var m = this.map, e = dojo.dnd._empty; - for(var i in m){ - if(i in e){ continue; } - f.call(o, m[i], i, this); - } - return o; // Object - }, - clearItems: function(){ - // summary: - // removes all data items from the map - this.map = {}; - }, - - // methods - getAllNodes: function(){ - // summary: - // returns a list (an array) of all valid child nodes - return dojo.query("> .dojoDndItem", this.parent); // NodeList - }, - sync: function(){ - // summary: - // sync up the node list with the data map - var map = {}; - this.getAllNodes().forEach(function(node){ - if(node.id){ - var item = this.getItem(node.id); - if(item){ - map[node.id] = item; - return; - } - }else{ - node.id = dojo.dnd.getUniqueId(); - } - var type = node.getAttribute("dndType"), - data = node.getAttribute("dndData"); - map[node.id] = { - data: data || node.innerHTML, - type: type ? type.split(/\s*,\s*/) : ["text"] - }; - }, this); - this.map = map; - return this; // self - }, - insertNodes: function(data, before, anchor){ - // summary: - // inserts an array of new nodes before/after an anchor node - // data: Array - // a list of data items, which should be processed by the creator function - // before: Boolean - // insert before the anchor, if true, and after the anchor otherwise - // anchor: Node - // the anchor node to be used as a point of insertion - if(!this.parent.firstChild){ - anchor = null; - }else if(before){ - if(!anchor){ - anchor = this.parent.firstChild; - } - }else{ - if(anchor){ - anchor = anchor.nextSibling; - } - } - if(anchor){ - for(var i = 0; i < data.length; ++i){ - var t = this._normalizedCreator(data[i]); - this.setItem(t.node.id, {data: t.data, type: t.type}); - this.parent.insertBefore(t.node, anchor); - } - }else{ - for(var i = 0; i < data.length; ++i){ - var t = this._normalizedCreator(data[i]); - this.setItem(t.node.id, {data: t.data, type: t.type}); - this.parent.appendChild(t.node); - } - } - return this; // self - }, - destroy: function(){ - // summary: - // prepares this object to be garbage-collected - dojo.forEach(this.events, dojo.disconnect); - this.clearItems(); - this.node = this.parent = this.current = null; - }, - - // markup methods - markupFactory: function(params, node){ - params._skipStartup = true; - return new dojo.dnd.Container(node, params); - }, - startup: function(){ - // summary: - // collects valid child items and populate the map - - // set up the real parent node - if(!this.parent){ - // use the standard algorithm, if not assigned - this.parent = this.node; - if(this.parent.tagName.toLowerCase() == "table"){ - var c = this.parent.getElementsByTagName("tbody"); - if(c && c.length){ this.parent = c[0]; } - } - } - this.defaultCreator = dojo.dnd._defaultCreator(this.parent); - - // process specially marked children - this.sync(); - }, - - // mouse events - onMouseOver: function(e){ - // summary: - // event processor for onmouseover - // e: Event - // mouse event - var n = e.relatedTarget; - while(n){ - if(n == this.node){ break; } - try{ - n = n.parentNode; - }catch(x){ - n = null; - } - } - if(!n){ - this._changeState("Container", "Over"); - this.onOverEvent(); - } - n = this._getChildByEvent(e); - if(this.current == n){ return; } - if(this.current){ this._removeItemClass(this.current, "Over"); } - if(n){ this._addItemClass(n, "Over"); } - this.current = n; - }, - onMouseOut: function(e){ - // summary: - // event processor for onmouseout - // e: Event - // mouse event - for(var n = e.relatedTarget; n;){ - if(n == this.node){ return; } - try{ - n = n.parentNode; - }catch(x){ - n = null; - } - } - if(this.current){ - this._removeItemClass(this.current, "Over"); - this.current = null; - } - this._changeState("Container", ""); - this.onOutEvent(); - }, - onSelectStart: function(e){ - // summary: - // event processor for onselectevent and ondragevent - // e: Event - // mouse event - if(!this.skipForm || !dojo.dnd.isFormElement(e)){ - dojo.stopEvent(e); - } - }, - - // utilities - onOverEvent: function(){ - // summary: - // this function is called once, when mouse is over our container - }, - onOutEvent: function(){ - // summary: - // this function is called once, when mouse is out of our container - }, - _changeState: function(type, newState){ - // summary: - // changes a named state to new state value - // type: String - // a name of the state to change - // newState: String - // new state - var prefix = "dojoDnd" + type; - var state = type.toLowerCase() + "State"; - //dojo.replaceClass(this.node, prefix + newState, prefix + this[state]); - dojo.removeClass(this.node, prefix + this[state]); - dojo.addClass(this.node, prefix + newState); - this[state] = newState; - }, - _addItemClass: function(node, type){ - // summary: - // adds a class with prefix "dojoDndItem" - // node: Node - // a node - // type: String - // a variable suffix for a class name - dojo.addClass(node, "dojoDndItem" + type); - }, - _removeItemClass: function(node, type){ - // summary: - // removes a class with prefix "dojoDndItem" - // node: Node - // a node - // type: String - // a variable suffix for a class name - dojo.removeClass(node, "dojoDndItem" + type); - }, - _getChildByEvent: function(e){ - // summary: - // gets a child, which is under the mouse at the moment, or null - // e: Event - // a mouse event - var node = e.target; - if(node){ - for(var parent = node.parentNode; parent; node = parent, parent = node.parentNode){ - if(parent == this.parent && dojo.hasClass(node, "dojoDndItem")){ return node; } - } - } - return null; - }, - _normalizedCreator: function(/*dojo.dnd.Item*/ item, /*String*/ hint){ - // summary: - // adds all necessary data to the output of the user-supplied creator function - var t = (this.creator || this.defaultCreator).call(this, item, hint); - if(!dojo.isArray(t.type)){ t.type = ["text"]; } - if(!t.node.id){ t.node.id = dojo.dnd.getUniqueId(); } - dojo.addClass(t.node, "dojoDndItem"); - return t; - } -}); - -dojo.dnd._createNode = function(tag){ - // summary: - // returns a function, which creates an element of given tag - // (SPAN by default) and sets its innerHTML to given text - // tag: String - // a tag name or empty for SPAN - if(!tag){ return dojo.dnd._createSpan; } - return function(text){ // Function - return dojo.create(tag, {innerHTML: text}); // Node - }; -}; - -dojo.dnd._createTrTd = function(text){ - // summary: - // creates a TR/TD structure with given text as an innerHTML of TD - // text: String - // a text for TD - var tr = dojo.create("tr"); - dojo.create("td", {innerHTML: text}, tr); - return tr; // Node -}; - -dojo.dnd._createSpan = function(text){ - // summary: - // creates a SPAN element with given text as its innerHTML - // text: String - // a text for SPAN - return dojo.create("span", {innerHTML: text}); // Node -}; - -// dojo.dnd._defaultCreatorNodes: Object -// a dictionary that maps container tag names to child tag names -dojo.dnd._defaultCreatorNodes = {ul: "li", ol: "li", div: "div", p: "div"}; - -dojo.dnd._defaultCreator = function(node){ - // summary: - // takes a parent node, and returns an appropriate creator function - // node: Node - // a container node - var tag = node.tagName.toLowerCase(); - var c = tag == "tbody" || tag == "thead" ? dojo.dnd._createTrTd : - dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]); - return function(item, hint){ // Function - var isObj = item && dojo.isObject(item), data, type, n; - if(isObj && item.tagName && item.nodeType && item.getAttribute){ - // process a DOM node - data = item.getAttribute("dndData") || item.innerHTML; - type = item.getAttribute("dndType"); - type = type ? type.split(/\s*,\s*/) : ["text"]; - n = item; // this node is going to be moved rather than copied - }else{ - // process a DnD item object or a string - data = (isObj && item.data) ? item.data : item; - type = (isObj && item.type) ? item.type : ["text"]; - n = (hint == "avatar" ? dojo.dnd._createSpan : c)(String(data)); - } - if(!n.id){ - n.id = dojo.dnd.getUniqueId(); - } - return {node: n, data: data, type: type}; - }; -}; - -} - -if(!dojo._hasResource["dijit.tree._dndContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit.tree._dndContainer"] = true; -dojo.provide("dijit.tree._dndContainer"); - - - -dojo.declare("dijit.tree._dndContainer", - null, - { - - // summary: - // This is a base class for `dijit.tree._dndSelector`, and isn't meant to be used directly. - // It's modeled after `dojo.dnd.Container`. - // tags: - // protected - - /*===== - // current: DomNode - // The currently hovered TreeNode.rowNode (which is the DOM node - // associated w/a given node in the tree, excluding it's descendants) - current: null, - =====*/ - - constructor: function(tree, params){ - // summary: - // A constructor of the Container - // tree: Node - // Node or node's id to build the container on - // params: dijit.tree.__SourceArgs - // A dict of parameters, which gets mixed into the object - // tags: - // private - this.tree = tree; - this.node = tree.domNode; // TODO: rename; it's not a TreeNode but the whole Tree - dojo.mixin(this, params); - - // class-specific variables - this.map = {}; - this.current = null; // current TreeNode's DOM node - - // states - this.containerState = ""; - dojo.addClass(this.node, "dojoDndContainer"); - - // set up events - this.events = [ - // container level events - dojo.connect(this.node, "onmouseenter", this, "onOverEvent"), - dojo.connect(this.node, "onmouseleave", this, "onOutEvent"), - - // switching between TreeNodes - dojo.connect(this.tree, "_onNodeMouseEnter", this, "onMouseOver"), - dojo.connect(this.tree, "_onNodeMouseLeave", this, "onMouseOut"), - - // cancel text selection and text dragging - dojo.connect(this.node, "ondragstart", dojo, "stopEvent"), - dojo.connect(this.node, "onselectstart", dojo, "stopEvent") - ]; - }, - - getItem: function(/*String*/ key){ - // summary: - // Returns the dojo.dnd.Item (representing a dragged node) by it's key (id). - // Called by dojo.dnd.Source.checkAcceptance(). - // tags: - // protected - - var node = this.selection[key], - ret = { - data: dijit.getEnclosingWidget(node), - type: ["treeNode"] - }; - - return ret; // dojo.dnd.Item - }, - - destroy: function(){ - // summary: - // Prepares this object to be garbage-collected - - dojo.forEach(this.events, dojo.disconnect); - // this.clearItems(); - this.node = this.parent = null; - }, - - // mouse events - onMouseOver: function(/*TreeNode*/ widget, /*Event*/ evt){ - // summary: - // Called when mouse is moved over a TreeNode - // tags: - // protected - this.current = widget.rowNode; - this.currentWidget = widget; - }, - - onMouseOut: function(/*TreeNode*/ widget, /*Event*/ evt){ - // summary: - // Called when mouse is moved away from a TreeNode - // tags: - // protected - this.current = null; - this.currentWidget = null; - }, - - _changeState: function(type, newState){ - // summary: - // Changes a named state to new state value - // type: String - // A name of the state to change - // newState: String - // new state - var prefix = "dojoDnd" + type; - var state = type.toLowerCase() + "State"; - //dojo.replaceClass(this.node, prefix + newState, prefix + this[state]); - dojo.removeClass(this.node, prefix + this[state]); - dojo.addClass(this.node, prefix + newState); - this[state] = newState; - }, - - _addItemClass: function(node, type){ - // summary: - // Adds a class with prefix "dojoDndItem" - // node: Node - // A node - // type: String - // A variable suffix for a class name - dojo.addClass(node, "dojoDndItem" + type); - }, - - _removeItemClass: function(node, type){ - // summary: - // Removes a class with prefix "dojoDndItem" - // node: Node - // A node - // type: String - // A variable suffix for a class name - dojo.removeClass(node, "dojoDndItem" + type); - }, - - onOverEvent: function(){ - // summary: - // This function is called once, when mouse is over our container - // tags: - // protected - this._changeState("Container", "Over"); - }, - - onOutEvent: function(){ - // summary: - // This function is called once, when mouse is out of our container - // tags: - // protected - this._changeState("Container", ""); - } -}); - -} - -if(!dojo._hasResource["dijit.tree._dndSelector"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit.tree._dndSelector"] = true; -dojo.provide("dijit.tree._dndSelector"); - - - -dojo.declare("dijit.tree._dndSelector", - dijit.tree._dndContainer, - { - // summary: - // This is a base class for `dijit.tree.dndSource` , and isn't meant to be used directly. - // It's based on `dojo.dnd.Selector`. - // tags: - // protected - - /*===== - // selection: Hash<String, DomNode> - // (id, DomNode) map for every TreeNode that's currently selected. - // The DOMNode is the TreeNode.rowNode. - selection: {}, - =====*/ - - constructor: function(tree, params){ - // summary: - // Initialization - // tags: - // private - - this.selection={}; - this.anchor = null; - this.simpleSelection=false; - - this.events.push( - dojo.connect(this.tree.domNode, "onmousedown", this,"onMouseDown"), - dojo.connect(this.tree.domNode, "onmouseup", this,"onMouseUp"), - dojo.connect(this.tree.domNode, "onmousemove", this,"onMouseMove") - ); - }, - - // singular: Boolean - // Allows selection of only one element, if true. - // Tree hasn't been tested in singular=true mode, unclear if it works. - singular: false, - - // methods - - getSelectedNodes: function(){ - // summary: - // Returns the set of selected nodes. - // Used by dndSource on the start of a drag. - // tags: - // protected - return this.selection; - }, - - selectNone: function(){ - // summary: - // Unselects all items - // tags: - // private - - return this._removeSelection()._removeAnchor(); // self - }, - - destroy: function(){ - // summary: - // Prepares the object to be garbage-collected - this.inherited(arguments); - this.selection = this.anchor = null; - }, - - // mouse events - onMouseDown: function(e){ - // summary: - // Event processor for onmousedown - // e: Event - // mouse event - // tags: - // protected - - if(!this.current){ return; } - - if(e.button == dojo.mouseButtons.RIGHT){ return; } // ignore right-click - - var treeNode = dijit.getEnclosingWidget(this.current), - id = treeNode.id + "-dnd" // so id doesn't conflict w/widget - - if(!dojo.hasAttr(this.current, "id")){ - dojo.attr(this.current, "id", id); - } - - if(!this.singular && !dojo.isCopyKey(e) && !e.shiftKey && (this.current.id in this.selection)){ - this.simpleSelection = true; - dojo.stopEvent(e); - return; - } - if(this.singular){ - if(this.anchor == this.current){ - if(dojo.isCopyKey(e)){ - this.selectNone(); - } - }else{ - this.selectNone(); - this.anchor = this.current; - this._addItemClass(this.anchor, "Anchor"); - - this.selection[this.current.id] = this.current; - } - }else{ - if(!this.singular && e.shiftKey){ - if(dojo.isCopyKey(e)){ - //TODO add range to selection - }else{ - //TODO select new range from anchor - } - }else{ - if(dojo.isCopyKey(e)){ - if(this.anchor == this.current){ - delete this.selection[this.anchor.id]; - this._removeAnchor(); - }else{ - if(this.current.id in this.selection){ - this._removeItemClass(this.current, "Selected"); - delete this.selection[this.current.id]; - }else{ - if(this.anchor){ - this._removeItemClass(this.anchor, "Anchor"); - this._addItemClass(this.anchor, "Selected"); - } - this.anchor = this.current; - this._addItemClass(this.current, "Anchor"); - this.selection[this.current.id] = this.current; - } - } - }else{ - if(!(id in this.selection)){ - this.selectNone(); - this.anchor = this.current; - this._addItemClass(this.current, "Anchor"); - this.selection[id] = this.current; - } - } - } - } - - dojo.stopEvent(e); - }, - - onMouseUp: function(e){ - // summary: - // Event processor for onmouseup - // e: Event - // mouse event - // tags: - // protected - - // TODO: this code is apparently for handling an edge case when the user is selecting - // multiple nodes and then mousedowns on a node by accident... it lets the user keep the - // current selection by moving the mouse away (or something like that). It doesn't seem - // to work though and requires a lot of plumbing (including this code, the onmousemove - // handler, and the this.simpleSelection attribute. Consider getting rid of all of it. - - if(!this.simpleSelection){ return; } - this.simpleSelection = false; - this.selectNone(); - if(this.current){ - this.anchor = this.current; - this._addItemClass(this.anchor, "Anchor"); - this.selection[this.current.id] = this.current; - } - }, - onMouseMove: function(e){ - // summary - // event processor for onmousemove - // e: Event - // mouse event - this.simpleSelection = false; - }, - - _removeSelection: function(){ - // summary: - // Unselects all items - // tags: - // private - var e = dojo.dnd._empty; - for(var i in this.selection){ - if(i in e){ continue; } - var node = dojo.byId(i); - if(node){ this._removeItemClass(node, "Selected"); } - } - this.selection = {}; - return this; // self - }, - - _removeAnchor: function(){ - // summary: - // Removes the Anchor CSS class from a node. - // According to `dojo.dnd.Selector`, anchor means that - // "an item is selected, and is an anchor for a 'shift' selection". - // It's not relevant for Tree at this point, since we don't support multiple selection. - // tags: - // private - if(this.anchor){ - this._removeItemClass(this.anchor, "Anchor"); - this.anchor = null; - } - return this; // self - }, - - forInSelectedItems: function(/*Function*/ f, /*Object?*/ o){ - // summary: - // Iterates over selected items; - // see `dojo.dnd.Container.forInItems()` for details - o = o || dojo.global; - for(var id in this.selection){ - console.log("selected item id: " + id); - f.call(o, this.getItem(id), id, this); - } - } -}); - } if(!dojo._hasResource["dojo.dnd.Avatar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. @@ -24319,7 +25280,7 @@ dojo.declare("dojo.dnd.Avatar", null, { var icon = dojo.byId("a11yIcon"); var text = '+'; // assume canDrop && copy if (this.manager.canDropFlag && !this.manager.copy) { - text = '< '; // canDrop && move + text = '< '; // canDrop && move }else if (!this.manager.canDropFlag && !this.manager.copy) { text = "o"; //!canDrop && move }else if(!this.manager.canDropFlag){ @@ -24420,7 +25381,7 @@ dojo.declare("dojo.dnd.Manager", null, { dojo.connect(dojo.body(), "onselectstart", dojo.stopEvent) ]; var c = "dojoDnd" + (copy ? "Copy" : "Move"); - dojo.addClass(dojo.body(), c); + dojo.addClass(dojo.body(), c); }, canDrop: function(flag){ // summary: @@ -24434,8 +25395,7 @@ dojo.declare("dojo.dnd.Manager", null, { stopDrag: function(){ // summary: // stop the DnD in progress - dojo.removeClass(dojo.body(), "dojoDndCopy"); - dojo.removeClass(dojo.body(), "dojoDndMove"); + dojo.removeClass(dojo.body(), ["dojoDndCopy", "dojoDndMove"]); dojo.forEach(this.events, dojo.disconnect); this.events = []; this.avatar.destroy(); @@ -24468,7 +25428,7 @@ dojo.declare("dojo.dnd.Manager", null, { s.left = (e.pageX + this.OFFSET_X) + "px"; s.top = (e.pageY + this.OFFSET_Y) + "px"; var copy = Boolean(this.source.copyState(dojo.isCopyKey(e))); - if(this.copy != copy){ + if(this.copy != copy){ this._setCopyStatus(copy); } } @@ -24502,7 +25462,7 @@ dojo.declare("dojo.dnd.Manager", null, { switch(e.keyCode){ case dojo.keys.CTRL: var copy = Boolean(this.source.copyState(true)); - if(this.copy != copy){ + if(this.copy != copy){ this._setCopyStatus(copy); } break; @@ -24520,7 +25480,7 @@ dojo.declare("dojo.dnd.Manager", null, { // keyboard event if(this.avatar && e.keyCode == dojo.keys.CTRL){ var copy = Boolean(this.source.copyState(false)); - if(this.copy != copy){ + if(this.copy != copy){ this._setCopyStatus(copy); } } @@ -24535,8 +25495,9 @@ dojo.declare("dojo.dnd.Manager", null, { this.copy = copy; this.source._markDndStatus(this.copy); this.updateAvatar(); - dojo.removeClass(dojo.body(), "dojoDnd" + (this.copy ? "Move" : "Copy")); - dojo.addClass(dojo.body(), "dojoDnd" + (this.copy ? "Copy" : "Move")); + dojo.replaceClass(dojo.body(), + "dojoDnd" + (this.copy ? "Copy" : "Move"), + "dojoDnd" + (this.copy ? "Move" : "Copy")); } }); @@ -24694,9 +25655,8 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { // Keeps track of current drop target. var m = dojo.dnd.manager(), - oldTarget = this.targetAnchor, // the DOMNode corresponding to TreeNode mouse was previously over - newTarget = this.current, // DOMNode corresponding to TreeNode mouse is currently over - newTargetWidget = this.currentWidget, // the TreeNode itself + oldTarget = this.targetAnchor, // the TreeNode corresponding to TreeNode mouse was previously over + newTarget = this.current, // TreeNode corresponding to TreeNode mouse is currently over oldDropPosition = this.dropPosition; // the previous drop position (over/before/after) // calculate if user is indicating to drop the dragged node before, after, or over @@ -24705,7 +25665,7 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { if(newTarget && this.betweenThreshold > 0){ // If mouse is over a new TreeNode, then get new TreeNode's position and size if(!this.targetBox || oldTarget != newTarget){ - this.targetBox = dojo.position(newTarget, true); + this.targetBox = dojo.position(newTarget.rowNode, true); } if((e.pageY - this.targetBox.y) <= this.betweenThreshold){ newDropPosition = "Before"; @@ -24716,23 +25676,23 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { if(newTarget != oldTarget || newDropPosition != oldDropPosition){ if(oldTarget){ - this._removeItemClass(oldTarget, oldDropPosition); + this._removeItemClass(oldTarget.rowNode, oldDropPosition); } if(newTarget){ - this._addItemClass(newTarget, newDropPosition); + this._addItemClass(newTarget.rowNode, newDropPosition); } // Check if it's ok to drop the dragged node on/before/after the target node. if(!newTarget){ m.canDrop(false); - }else if(newTargetWidget == this.tree.rootNode && newDropPosition != "Over"){ + }else if(newTarget == this.tree.rootNode && newDropPosition != "Over"){ // Can't drop before or after tree's root node; the dropped node would just disappear (at least visually) m.canDrop(false); }else if(m.source == this && (newTarget.id in this.selection)){ // Guard against dropping onto yourself (TODO: guard against dropping onto your descendant, #7140) m.canDrop(false); - }else if(this.checkItemAcceptance(newTarget, m.source, newDropPosition.toLowerCase()) - && !this._isParentChildDrop(m.source, newTarget)){ + }else if(this.checkItemAcceptance(newTarget.rowNode, m.source, newDropPosition.toLowerCase()) + && !this._isParentChildDrop(m.source, newTarget.rowNode)){ m.canDrop(true); }else{ m.canDrop(false); @@ -24758,12 +25718,23 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { }else{ if(this.mouseDown && this.isSource && (Math.abs(e.pageX-this._lastX)>=this.dragThreshold || Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){ - var n = this.getSelectedNodes(); - var nodes=[]; - for(var i in n){ - nodes.push(n[i]); - } + var nodes = this.getSelectedTreeNodes(); if(nodes.length){ + if(nodes.length > 1){ + //filter out all selected items which has one of their ancestor selected as well + var seen = this.selection, i = 0, r = [], n, p; + nextitem: while((n = nodes[i++])){ + for(p = n.getParent(); p && p !== this.tree; p = p.getParent()){ + if(seen[p.id]){ //parent is already selected, skip this node + continue nextitem; + } + } + //this node does not have any ancestors selected, add it + r.push(n); + } + nodes = r; + } + nodes = dojo.map(nodes, function(n){return n.domNode}); m.startDrag(this, nodes, this.copyState(dojo.isCopyKey(e))); } } @@ -24781,7 +25752,7 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { this.mouseButton = e.button; this._lastX = e.pageX; this._lastY = e.pageY; - this.inherited("onMouseDown",arguments); + this.inherited(arguments); }, onMouseUp: function(e){ @@ -24793,7 +25764,7 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { // private if(this.mouseDown){ this.mouseDown = false; - this.inherited("onMouseUp",arguments); + this.inherited(arguments); } }, @@ -24919,7 +25890,7 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { this.isDragging = false; // Compute the new parent item - var targetWidget = dijit.getEnclosingWidget(target); + var targetWidget = target; var newParentItem; var insertIndex; newParentItem = (targetWidget && targetWidget.item) || tree.item; @@ -24975,7 +25946,7 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { // Get the hash to pass to model.newItem(). A single call to // itemCreator() returns an array of hashes, one for each drag source node. if(!newItemsParams){ - newItemsParams = this.itemCreator(nodes, target, source); + newItemsParams = this.itemCreator(nodes, target.rowNode, source); } // Create new item in the tree, based on the drag source. @@ -25049,16 +26020,13 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { var root = source.tree.domNode; - var ids = {}; - for(var x in source.selection){ - ids[source.selection[x].parentNode.id] = true; - } + var ids = source.selection; var node = targetRow.parentNode; // Iterate up the DOM hierarchy from the target drop row, // checking of any of the dragged nodes have the same ID. - while(node != root && (!node.id || !ids[node.id])){ + while(node != root && !ids[node.id]){ node = node.parentNode; } @@ -25071,7 +26039,7 @@ dojo.declare("dijit.tree.dndSource", dijit.tree._dndSelector, { // tags: // private if(!this.targetAnchor){ return; } - this._removeItemClass(this.targetAnchor, this.dropPosition); + this._removeItemClass(this.targetAnchor.rowNode, this.dropPosition); this.targetAnchor = null; this.targetBox = null; this.dropPosition = null; @@ -25103,7 +26071,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // { name:'Fozzie Bear', wears:['hat', 'tie']}, // { name:'Miss Piggy', pets:'Foo-Foo'} // ]} - // Note that it can also contain an 'identifer' property that specified which attribute on the items + // Note that it can also contain an 'identifer' property that specified which attribute on the items // in the array of items that acts as the unique identifier for that item. // constructor: function(/* Object */ keywordParameters){ @@ -25118,7 +26086,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // ... // typeN: function || object // } - // Where if it is a function, it is assumed to be an object constructor that takes the + // Where if it is a function, it is assumed to be an object constructor that takes the // value of _value as the initialization parameters. If it is an object, then it is assumed // to be an object of general form: // { @@ -25184,7 +26152,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //all item handles will become invalid and a new fetch must be issued. clearOnClose: false, - //Parameter to allow specifying if preventCache should be passed to the xhrGet call or not when loading data from a url. + //Parameter to allow specifying if preventCache should be passed to the xhrGet call or not when loading data from a url. //Note this does not mean the store calls the server on each fetch, only that the data load has preventCache set as an option. //Added for tracker: #6072 urlPreventCache: false, @@ -25192,19 +26160,19 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //Parameter for specifying that it is OK for the xhrGet call to fail silently. failOk: false, - //Parameter to indicate to process data from the url as hierarchical - //(data items can contain other data items in js form). Default is true - //for backwards compatibility. False means only root items are processed - //as items, all child objects outside of type-mapped objects and those in + //Parameter to indicate to process data from the url as hierarchical + //(data items can contain other data items in js form). Default is true + //for backwards compatibility. False means only root items are processed + //as items, all child objects outside of type-mapped objects and those in //specific reference format, are left straight JS data objects. hierarchical: true, _assertIsItem: function(/* item */ item){ // summary: // This function tests whether the item passed in is indeed an item in the store. - // item: + // item: // The item to test for being contained by the store. - if(!this.isItem(item)){ + if(!this.isItem(item)){ throw new Error("dojo.data.ItemFileReadStore: Invalid item argument."); } }, @@ -25212,25 +26180,25 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ _assertIsAttribute: function(/* attribute-name-string */ attribute){ // summary: // This function tests whether the item passed in is indeed a valid 'attribute' like type for the store. - // attribute: + // attribute: // The attribute to test for being contained by the store. - if(typeof attribute !== "string"){ + if(typeof attribute !== "string"){ throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument."); } }, - getValue: function( /* item */ item, - /* attribute-name-string */ attribute, + getValue: function( /* item */ item, + /* attribute-name-string */ attribute, /* value? */ defaultValue){ - // summary: + // summary: // See dojo.data.api.Read.getValue() var values = this.getValues(item, attribute); return (values.length > 0)?values[0]:defaultValue; // mixed }, - getValues: function(/* item */ item, + getValues: function(/* item */ item, /* attribute-name-string */ attribute){ - // summary: + // summary: // See dojo.data.api.Read.getValues() this._assertIsItem(item); @@ -25240,7 +26208,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, getAttributes: function(/* item */ item){ - // summary: + // summary: // See dojo.data.api.Read.getAttributes() this._assertIsItem(item); var attributes = []; @@ -25255,17 +26223,17 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ hasAttribute: function( /* item */ item, /* attribute-name-string */ attribute){ - // summary: + // summary: // See dojo.data.api.Read.hasAttribute() this._assertIsItem(item); this._assertIsAttribute(attribute); return (attribute in item); }, - containsValue: function(/* item */ item, - /* attribute-name-string */ attribute, + containsValue: function(/* item */ item, + /* attribute-name-string */ attribute, /* anything */ value){ - // summary: + // summary: // See dojo.data.api.Read.containsValue() var regexp = undefined; if(typeof value === "string"){ @@ -25274,22 +26242,22 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ return this._containsValue(item, attribute, value, regexp); //boolean. }, - _containsValue: function( /* item */ item, - /* attribute-name-string */ attribute, + _containsValue: function( /* item */ item, + /* attribute-name-string */ attribute, /* anything */ value, /* RegExp?*/ regexp){ - // summary: + // summary: // Internal function for looking at the values contained by the item. - // description: - // Internal function for looking at the values contained by the item. This + // description: + // Internal function for looking at the values contained by the item. This // function allows for denoting if the comparison should be case sensitive for // strings or not (for handling filtering cases where string case should not matter) - // + // // item: // The data item to examine for attribute values. // attribute: // The attribute to inspect. - // value: + // value: // The value to match. // regexp: // Optional regular expression generated off value if value was of string type to handle wildcarding. @@ -25306,7 +26274,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, isItem: function(/* anything */ something){ - // summary: + // summary: // See dojo.data.api.Read.isItem() if(something && something[this._storeRefPropName] === this){ if(this._arrayOfAllItems[something[this._itemNumPropName]] === something){ @@ -25317,25 +26285,25 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, isItemLoaded: function(/* anything */ something){ - // summary: + // summary: // See dojo.data.api.Read.isItemLoaded() return this.isItem(something); //boolean }, loadItem: function(/* object */ keywordArgs){ - // summary: + // summary: // See dojo.data.api.Read.loadItem() this._assertIsItem(keywordArgs.item); }, getFeatures: function(){ - // summary: + // summary: // See dojo.data.api.Read.getFeatures() return this._features; //Object }, getLabel: function(/* item */ item){ - // summary: + // summary: // See dojo.data.api.Read.getLabel() if(this._labelAttr && this.isItem(item)){ return this.getValue(item,this._labelAttr); //String @@ -25344,7 +26312,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, getLabelAttributes: function(/* item */ item){ - // summary: + // summary: // See dojo.data.api.Read.getLabelAttributes() if(this._labelAttr){ return [this._labelAttr]; //array @@ -25352,10 +26320,10 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ return null; //null }, - _fetchItems: function( /* Object */ keywordArgs, - /* Function */ findCallback, + _fetchItems: function( /* Object */ keywordArgs, + /* Function */ findCallback, /* Function */ errorCallback){ - // summary: + // summary: // See dojo.data.util.simpleFetch.fetch() var self = this, filter = function(requestArgs, arrayOfItems){ @@ -25395,8 +26363,8 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ } findCallback(items, requestArgs); }else{ - // We want a copy to pass back in case the parent wishes to sort the array. - // We shouldn't allow resort of the internal list, so that multiple callers + // We want a copy to pass back in case the parent wishes to sort the array. + // We shouldn't allow resort of the internal list, so that multiple callers // can get lists and sort without affecting each other. We also need to // filter out any null values that have been left as a result of deleteItem() // calls in ItemFileWriteStore. @@ -25416,11 +26384,11 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //Do a check on the JsonFileUrl and crosscheck it. //If it doesn't match the cross-check, it needs to be updated //This allows for either url or _jsonFileUrl to he changed to - //reset the store load location. Done this way for backwards + //reset the store load location. Done this way for backwards //compatibility. People use _jsonFileUrl (even though officially //private. if(this._jsonFileUrl !== this._ccUrl){ - dojo.deprecated("dojo.data.ItemFileReadStore: ", + dojo.deprecated("dojo.data.ItemFileReadStore: ", "To change the url, set the url property of the store," + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); this._ccUrl = this._jsonFileUrl; @@ -25431,21 +26399,21 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ } //See if there was any forced reset of data. - if(this.data != null && this._jsonData == null){ + if(this.data != null){ this._jsonData = this.data; this.data = null; } if(this._jsonFileUrl){ //If fetches come in before the loading has finished, but while - //a load is in progress, we have to defer the fetching to be + //a load is in progress, we have to defer the fetching to be //invoked in the callback. if(this._loadInProgress){ this._queuedFetches.push({args: keywordArgs, filter: filter}); }else{ this._loadInProgress = true; var getArgs = { - url: self._jsonFileUrl, + url: self._jsonFileUrl, handleAs: "json-comment-optional", preventCache: this.urlPreventCache, failOk: this.failOk @@ -25505,7 +26473,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, _handleQueuedFetches: function(){ - // summary: + // summary: // Internal function to execute delayed request in the store. //Execute any deferred fetches now. if(this._queuedFetches.length > 0){ @@ -25514,7 +26482,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ delayedQuery = fData.args, delayedFilter = fData.filter; if(delayedFilter){ - delayedFilter(delayedQuery, this._getItemsArray(delayedQuery.queryOptions)); + delayedFilter(delayedQuery, this._getItemsArray(delayedQuery.queryOptions)); }else{ this.fetchItemByIdentity(delayedQuery); } @@ -25524,31 +26492,31 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, _getItemsArray: function(/*object?*/queryOptions){ - // summary: + // summary: // Internal function to determine which list of items to search over. // queryOptions: The query options parameter, if any. if(queryOptions && queryOptions.deep){ - return this._arrayOfAllItems; + return this._arrayOfAllItems; } return this._arrayOfTopLevelItems; }, close: function(/*dojo.data.api.Request || keywordArgs || null */ request){ - // summary: + // summary: // See dojo.data.api.Read.close() - if(this.clearOnClose && - this._loadFinished && + if(this.clearOnClose && + this._loadFinished && !this._loadInProgress){ //Reset all internalsback to default state. This will force a reload - //on next fetch. This also checks that the data or url param was set + //on next fetch. This also checks that the data or url param was set //so that the store knows it can get data. Without one of those being set, //the next fetch will trigger an error. - if(((this._jsonFileUrl == "" || this._jsonFileUrl == null) && + if(((this._jsonFileUrl == "" || this._jsonFileUrl == null) && (this.url == "" || this.url == null) ) && this.data == null){ console.debug("dojo.data.ItemFileReadStore: WARNING! Data reload " + - " information has not been provided." + + " information has not been provided." + " Please set 'url' or 'data' to the appropriate value before" + " the next fetch"); } @@ -25586,7 +26554,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // | false == valueIsAnItem("Kermit"); // | false == valueIsAnItem(42); // | false == valueIsAnItem(new Date()); - // | false == valueIsAnItem({_type:'Date', _value:'May 14, 1802'}); + // | false == valueIsAnItem({_type:'Date', _value:'1802-05-14'}); // | false == valueIsAnItem({_reference:'Kermit'}); // | true == valueIsAnItem({name:'Kermit', color:'green'}); // | true == valueIsAnItem({iggy:'pop'}); @@ -25597,8 +26565,8 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ (!dojo.isArray(aValue) || addingArrays) && (!dojo.isFunction(aValue)) && (aValue.constructor == Object || dojo.isArray(aValue)) && - (typeof aValue._reference === "undefined") && - (typeof aValue._type === "undefined") && + (typeof aValue._reference === "undefined") && + (typeof aValue._type === "undefined") && (typeof aValue._value === "undefined") && self.hierarchical ); @@ -25648,13 +26616,13 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ item[this._rootItemPropName]=true; } - // Step 2: Walk through all the attribute values of all the items, + // Step 2: Walk through all the attribute values of all the items, // and replace single values with arrays. For example, we change this: // { name:'Miss Piggy', pets:'Foo-Foo'} // into this: // { name:['Miss Piggy'], pets:['Foo-Foo']} - // - // We also store the attribute names so we can validate our store + // + // We also store the attribute names so we can validate our store // reference and item id special properties for the O(1) isItem var allAttributeNames = {}, key; @@ -25688,9 +26656,9 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ this._reverseRefMap += "_"; } - // Step 4: Some data files specify an optional 'identifier', which is - // the name of an attribute that holds the identity of each item. - // If this data file specified an identifier attribute, then build a + // Step 4: Some data files specify an optional 'identifier', which is + // the name of an attribute that holds the identity of each item. + // If this data file specified an identifier attribute, then build a // hash table of items keyed by the identity of the items. var arrayOfValues; @@ -25702,7 +26670,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ item = this._arrayOfAllItems[i]; arrayOfValues = item[identifier]; var identity = arrayOfValues[0]; - if(!this._itemsByIdentity[identity]){ + if(!Object.hasOwnProperty.call(this._itemsByIdentity, identity)){ this._itemsByIdentity[identity] = item; }else{ if(this._jsonFileUrl){ @@ -25716,7 +26684,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ this._features['dojo.data.api.Identity'] = Number; } - // Step 5: Walk through all the items, and set each item's properties + // Step 5: Walk through all the items, and set each item's properties // for _storeRefPropName and _itemNumPropName, so that store.isItem() will return true. for(i = 0; i < this._arrayOfAllItems.length; ++i){ item = this._arrayOfAllItems[i]; @@ -25730,13 +26698,13 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // We replace item-references with pointers to items. For example, we change: // { name:['Kermit'], friends:[{_reference:{name:'Miss Piggy'}}] } // into this: - // { name:['Kermit'], friends:[miss_piggy] } + // { name:['Kermit'], friends:[miss_piggy] } // (where miss_piggy is the object representing the 'Miss Piggy' item). // // We replace type/value pairs with typed-literals. For example, we change: - // { name:['Nelson Mandela'], born:[{_type:'Date', _value:'July 18, 1918'}] } + // { name:['Nelson Mandela'], born:[{_type:'Date', _value:'1918-07-18'}] } // into this: - // { name:['Kermit'], born:(new Date('July 18, 1918')) } + // { name:['Kermit'], born:(new Date(1918, 6, 18)) } // // We also generate the associate map for all items for the O(1) isItem function. for(i = 0; i < this._arrayOfAllItems.length; ++i){ @@ -25749,7 +26717,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ if(("_type" in value) && ("_value" in value)){ var type = value._type; // examples: 'Date', 'Color', or 'ComplexNumber' var mappingObj = this._datatypeMap[type]; // examples: Date, dojo.Color, foo.math.ComplexNumber, {type: dojo.Color, deserialize(value){ return new dojo.Color(value)}} - if(!mappingObj){ + if(!mappingObj){ throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '" + type + "'"); }else if(dojo.isFunction(mappingObj)){ arrayOfValues[j] = new mappingObj(value._value); @@ -25772,12 +26740,12 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ var candidateItem = this._arrayOfAllItems[k], found = true; for(var refKey in referenceDescription){ - if(candidateItem[refKey] != referenceDescription[refKey]){ - found = false; + if(candidateItem[refKey] != referenceDescription[refKey]){ + found = false; } } - if(found){ - arrayOfValues[j] = candidateItem; + if(found){ + arrayOfValues[j] = candidateItem; } } } @@ -25788,7 +26756,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ } } }else if(this.isItem(value)){ - //It's a child item (not one referenced through _reference). + //It's a child item (not one referenced through _reference). //We need to treat this as a referenced item, so it can be cleaned up //in a write store easily. if(this.referenceIntegrity){ @@ -25817,7 +26785,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, getIdentity: function(/* item */ item){ - // summary: + // summary: // See dojo.data.api.Identity.getIdentity() var identifier = this._features['dojo.data.api.Identity']; if(identifier === Number){ @@ -25832,7 +26800,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, fetchItemByIdentity: function(/* Object */ keywordArgs){ - // summary: + // summary: // See dojo.data.api.Identity.fetchItemByIdentity() // Hasn't loaded yet, we have to trigger the load. @@ -25843,11 +26811,11 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //Do a check on the JsonFileUrl and crosscheck it. //If it doesn't match the cross-check, it needs to be updated //This allows for either url or _jsonFileUrl to he changed to - //reset the store load location. Done this way for backwards + //reset the store load location. Done this way for backwards //compatibility. People use _jsonFileUrl (even though officially //private. if(this._jsonFileUrl !== this._ccUrl){ - dojo.deprecated("dojo.data.ItemFileReadStore: ", + dojo.deprecated("dojo.data.ItemFileReadStore: ", "To change the url, set the url property of the store," + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); this._ccUrl = this._jsonFileUrl; @@ -25870,7 +26838,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }else{ this._loadInProgress = true; var getArgs = { - url: self._jsonFileUrl, + url: self._jsonFileUrl, handleAs: "json-comment-optional", preventCache: this.urlPreventCache, failOk: this.failOk @@ -25913,7 +26881,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ scope = keywordArgs.scope?keywordArgs.scope:dojo.global; keywordArgs.onItem.call(scope, item); } - } + } }else{ // Already loaded. We can just look it up and call back. item = this._getItemByIdentity(keywordArgs.identity); @@ -25928,9 +26896,10 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ // summary: // Internal function to look an item up by its identity map. var item = null; - if(this._itemsByIdentity){ + if(this._itemsByIdentity && + Object.hasOwnProperty.call(this._itemsByIdentity, identity)){ item = this._itemsByIdentity[identity]; - }else{ + }else if (Object.hasOwnProperty.call(this._arrayOfAllItems, identity)){ item = this._arrayOfAllItems[identity]; } if(item === undefined){ @@ -25940,15 +26909,15 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, getIdentityAttributes: function(/* item */ item){ - // summary: - // See dojo.data.api.Identity.getIdentifierAttributes() + // summary: + // See dojo.data.api.Identity.getIdentityAttributes() var identifier = this._features['dojo.data.api.Identity']; if(identifier === Number){ // If (identifier === Number) it means getIdentity() just returns // an integer item-number for each item. The dojo.data.api.Identity - // spec says we need to return null if the identity is not composed - // of attributes + // spec says we need to return null if the identity is not composed + // of attributes return null; // null }else{ return [identifier]; // Array @@ -25956,18 +26925,18 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ }, _forceLoad: function(){ - // summary: + // summary: // Internal function to force a load of the store if it hasn't occurred yet. This is required - // for specific functions to work properly. + // for specific functions to work properly. var self = this; //Do a check on the JsonFileUrl and crosscheck it. //If it doesn't match the cross-check, it needs to be updated //This allows for either url or _jsonFileUrl to he changed to - //reset the store load location. Done this way for backwards + //reset the store load location. Done this way for backwards //compatibility. People use _jsonFileUrl (even though officially //private. if(this._jsonFileUrl !== this._ccUrl){ - dojo.deprecated("dojo.data.ItemFileReadStore: ", + dojo.deprecated("dojo.data.ItemFileReadStore: ", "To change the url, set the url property of the store," + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); this._ccUrl = this._jsonFileUrl; @@ -25978,14 +26947,14 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ } //See if there was any forced reset of data. - if(this.data != null && this._jsonData == null){ + if(this.data != null){ this._jsonData = this.data; this.data = null; } if(this._jsonFileUrl){ var getArgs = { - url: this._jsonFileUrl, + url: this._jsonFileUrl, handleAs: "json-comment-optional", preventCache: this.urlPreventCache, failOk: this.failOk, @@ -25994,7 +26963,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ var getHandler = dojo.xhrGet(getArgs); getHandler.addCallback(function(data){ try{ - //Check to be sure there wasn't another load going on concurrently + //Check to be sure there wasn't another load going on concurrently //So we don't clobber data that comes in on it. If there is a load going on //then do not save this data. It will potentially clobber current data. //We mainly wanted to sync/wait here. @@ -26007,7 +26976,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ //Okay, we hit an error state we can't recover from. A forced load occurred //while an async load was occurring. Since we cannot block at this point, the best //that can be managed is to throw an error. - throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress."); + throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress."); } }catch(e){ console.log(e); @@ -26021,7 +26990,7 @@ dojo.declare("dojo.data.ItemFileReadStore", null,{ self._getItemsFromLoadedData(self._jsonData); self._jsonData = null; self._loadFinished = true; - } + } } }); //Mix in the simple fetch implementation to this class. @@ -26034,6 +27003,7 @@ dojo._hasResource["dojo.data.ItemFileWriteStore"] = true; dojo.provide("dojo.data.ItemFileWriteStore"); + dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { constructor: function(/* object */ keywordParameters){ // keywordParameters: {typeMap: object) @@ -26044,7 +27014,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // ... // typeN: function || object // } - // Where if it is a function, it is assumed to be an object constructor that takes the + // Where if it is a function, it is assumed to be an object constructor that takes the // value of _value as the initialization parameters. It is serialized assuming object.toString() // serialization. If it is an object, then it is assumed // to be an object of general form: @@ -26060,8 +27030,8 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // For keeping track of changes so that we can implement isDirty and revert this._pending = { - _newItems:{}, - _modifiedItems:{}, + _newItems:{}, + _modifiedItems:{}, _deletedItems:{} }; @@ -26124,8 +27094,8 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { } } - // make sure this identity is not already in use by another item, if identifiers were - // defined in the file. Otherwise it would be the item count, + // make sure this identity is not already in use by another item, if identifiers were + // defined in the file. Otherwise it would be the item count, // which should always be unique in this case. if(this._itemsByIdentity){ this._assert(typeof this._itemsByIdentity[newIdentity] === "undefined"); @@ -26134,7 +27104,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { this._assert(typeof this._pending._deletedItems[newIdentity] === "undefined"); var newItem = {}; - newItem[this._storeRefPropName] = this; + newItem[this._storeRefPropName] = this; newItem[this._itemNumPropName] = this._arrayOfAllItems.length; if(this._itemsByIdentity){ this._itemsByIdentity[newIdentity] = newItem; @@ -26187,14 +27157,14 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // Bummer, the user is trying to do something like // newItem({_S:"foo"}). Unfortunately, our superclass, // ItemFileReadStore, is already using _S in each of our items - // to hold private info. To avoid a naming collision, we - // need to move all our private info to some other property + // to hold private info. To avoid a naming collision, we + // need to move all our private info to some other property // of all the items/objects. So, we need to iterate over all - // the items and do something like: + // the items and do something like: // item.__S = item._S; // item._S = undefined; - // But first we have to make sure the new "__S" variable is - // not in use, which means we have to iterate over all the + // But first we have to make sure the new "__S" variable is + // not in use, which means we have to iterate over all the // items checking for that. throw new Error("encountered bug in ItemFileWriteStore.newItem"); } @@ -26231,17 +27201,17 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { this._assertIsItem(item); // Remove this item from the _arrayOfAllItems, but leave a null value in place - // of the item, so as not to change the length of the array, so that in newItem() + // of the item, so as not to change the length of the array, so that in newItem() // we can still safely do: newIdentity = this._arrayOfAllItems.length; var indexInArrayOfAllItems = item[this._itemNumPropName]; var identity = this.getIdentity(item); //If we have reference integrity on, we need to do reference cleanup for the deleted item if(this.referenceIntegrity){ - //First scan all the attributes of this items for references and clean them up in the map + //First scan all the attributes of this items for references and clean them up in the map //As this item is going away, no need to track its references anymore. - //Get the attributes list before we generate the backup so it + //Get the attributes list before we generate the backup so it //doesn't pollute the attributes list. var attributes = this.getAttributes(item); @@ -26287,7 +27257,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { return !(this.isItem(possibleItem) && this.getIdentity(possibleItem) == identity); }, this); //Remove the note of the reference to the item and set the values on the modified attribute. - this._removeReferenceFromMap(item, containingItem, attribute); + this._removeReferenceFromMap(item, containingItem, attribute); if(newValues.length < oldValues.length){ this._setValueOrValues(containingItem, attribute, newValues, true); } @@ -26349,11 +27319,11 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { var identity = this.getIdentity(item); if(!this._pending._modifiedItems[identity]){ - // Before we actually change the item, we make a copy of it to - // record the original state, so that we'll be able to revert if + // Before we actually change the item, we make a copy of it to + // record the original state, so that we'll be able to revert if // the revert method gets called. If the item has already been // modified then there's no need to do this now, since we already - // have a record of the original state. + // have a record of the original state. var copyOfItemState = {}; for(var key in item){ if((key === this._storeRefPropName) || (key === this._itemNumPropName) || (key === this._rootItemPropName)){ @@ -26374,7 +27344,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { if(dojo.isArray(newValueOrValues) && newValueOrValues.length === 0){ // If we were passed an empty array as the value, that counts - // as "unsetting" the attribute, so we need to remove this + // as "unsetting" the attribute, so we need to remove this // attribute from the item. success = delete item[attribute]; newValueOrValues = undefined; // used in the onSet Notification call below @@ -26398,7 +27368,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // Unfortunately, it's not safe to just do this: // newValueArray = newValues; // Instead, we need to copy the array, which slice() does very nicely. - // This is so that our internal data structure won't + // This is so that our internal data structure won't // get corrupted if the user mucks with the values array *after* // calling setValues(). newValueArray = newValueOrValues.slice(0, newValueOrValues.length); @@ -26406,7 +27376,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { newValueArray = [newValueOrValues]; } - //We need to handle reference integrity if this is on. + //We need to handle reference integrity if this is on. //In the case of set, we need to see if references were added or removed //and update the reference tracking map accordingly. if(this.referenceIntegrity){ @@ -26433,7 +27403,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { if(map[id.toString()]){ delete map[id.toString()]; }else{ - this._addReferenceToMap(possibleItem, item, attribute); + this._addReferenceToMap(possibleItem, item, attribute); } } }, this); @@ -26463,7 +27433,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // Now we make the dojo.data.api.Notification call if(callOnSet){ - this.onSet(item, attribute, oldValueOrValues, newValueOrValues); + this.onSet(item, attribute, oldValueOrValues, newValueOrValues); } return success; // boolean }, @@ -26498,7 +27468,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { // Method to remove an reference map entry for an item and attribute. // description: // Method to remove an reference map entry for an item and attribute. This will - // also perform cleanup on the map such that if there are no more references at all to + // also perform cleanup on the map such that if there are no more references at all to // the item, its reference object and entry are removed. // // refItem: @@ -26555,7 +27525,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { _flatten: function(/* anything */ value){ if(this.isItem(value)){ var item = value; - // Given an item, return an serializable object that provides a + // Given an item, return an serializable object that provides a // reference to the item. // For example, given kermit: // var kermit = store.newItem({id:2, name:"Kermit"}); @@ -26586,7 +27556,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { }, _getNewFileContentString: function(){ - // summary: + // summary: // Generate a string that can be saved to a file. // The result should look similar to: // http://trac.dojotoolkit.org/browser/dojo/trunk/tests/data/countries.json @@ -26627,7 +27597,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { }, _isEmpty: function(something){ - // summary: + // summary: // Function to determine if an array or object has no properties or values. // something: // The array or object to examine. @@ -26656,7 +27626,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { var self = this; var saveCompleteCallback = function(){ self._pending = { - _newItems:{}, + _newItems:{}, _modifiedItems:{}, _deletedItems:{} }; @@ -26705,7 +27675,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { modifiedItem = this._arrayOfAllItems[identity]; } - // Restore the original item into a full-fledged item again, we want to try to + // Restore the original item into a full-fledged item again, we want to try to // keep the same object instance as if we don't it, causes bugs like #9022. copyOfItemState[this._storeRefPropName] = this; for(key in modifiedItem){ @@ -26746,7 +27716,7 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { } this._addReferenceToMap(refItem, deletedItem, reference.attr); }, this); - delete deletedItem["backupRefs_" + this._reverseRefMap]; + delete deletedItem["backupRefs_" + this._reverseRefMap]; } } @@ -26765,8 +27735,8 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { } this._pending = { - _newItems:{}, - _modifiedItems:{}, + _newItems:{}, + _modifiedItems:{}, _deletedItems:{} }; return true; // boolean @@ -26777,13 +27747,13 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { if(item){ // return true if the item is dirty var identity = this.getIdentity(item); - return new Boolean(this._pending._newItems[identity] || + return new Boolean(this._pending._newItems[identity] || this._pending._modifiedItems[identity] || this._pending._deletedItems[identity]).valueOf(); // boolean }else{ // return true if the store is dirty -- which means return true // if there are any new items, dirty items, or modified items - if(!this._isEmpty(this._pending._newItems) || + if(!this._isEmpty(this._pending._newItems) || !this._isEmpty(this._pending._modifiedItems) || !this._isEmpty(this._pending._deletedItems)){ return true; @@ -26794,28 +27764,28 @@ dojo.declare("dojo.data.ItemFileWriteStore", dojo.data.ItemFileReadStore, { /* dojo.data.api.Notification */ - onSet: function(/* item */ item, - /*attribute-name-string*/ attribute, + onSet: function(/* item */ item, + /*attribute-name-string*/ attribute, /*object | array*/ oldValue, /*object | array*/ newValue){ // summary: See dojo.data.api.Notification.onSet() - // No need to do anything. This method is here just so that the + // No need to do anything. This method is here just so that the // client code can connect observers to it. }, onNew: function(/* item */ newItem, /*object?*/ parentInfo){ // summary: See dojo.data.api.Notification.onNew() - // No need to do anything. This method is here just so that the - // client code can connect observers to it. + // No need to do anything. This method is here just so that the + // client code can connect observers to it. }, onDelete: function(/* item */ deletedItem){ // summary: See dojo.data.api.Notification.onDelete() - // No need to do anything. This method is here just so that the - // client code can connect observers to it. + // No need to do anything. This method is here just so that the + // client code can connect observers to it. }, close: function(/* object? */ request){ diff --git a/lib/dojo/uacss.js b/lib/dojo/uacss.js index 781ab9c36..25b12f4bc 100644 --- a/lib/dojo/uacss.js +++ b/lib/dojo/uacss.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,7 @@ if(!dojo._hasResource["dojo.uacss"]){ //_hasResource checks added by build. Do n dojo._hasResource["dojo.uacss"] = true; dojo.provide("dojo.uacss"); + (function(){ // summary: // Applies pre-set CSS classes to the top-level HTML node, based on: @@ -33,6 +34,7 @@ dojo.provide("dojo.uacss"); dj_ie6: maj(ie) == 6, dj_ie7: maj(ie) == 7, dj_ie8: maj(ie) == 8, + dj_ie9: maj(ie) == 9, dj_quirks: d.isQuirks, dj_iequirks: ie && d.isQuirks, @@ -61,7 +63,7 @@ dojo.provide("dojo.uacss"); html.className = d.trim(html.className + " " + classStr); // If RTL mode, then add dj_rtl flag plus repeat existing classes with -rtl extension. - // We can't run the code below until the <body> tag has loaded (so we can check for dir=rtl). + // We can't run the code below until the <body> tag has loaded (so we can check for dir=rtl). // Unshift() is to run sniff code before the parser. dojo._loaders.unshift(function(){ if(!dojo._isBodyLtr()){ diff --git a/lib/dojo/window.js b/lib/dojo/window.js index c36eb4c23..4e363faba 100644 --- a/lib/dojo/window.js +++ b/lib/dojo/window.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + 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 */ @@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.window"]){ //_hasResource checks added by build. Do dojo._hasResource["dojo.window"] = true; dojo.provide("dojo.window"); +dojo.getObject("window", true, dojo); + dojo.window.getBox = function(){ // summary: // Returns the dimensions and scroll position of the viewable area of a browser window @@ -62,7 +64,9 @@ dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ return; } var backCompat = doc.compatMode == 'BackCompat', - clientAreaRoot = backCompat? body : html, + clientAreaRoot = (isIE >= 9 && node.ownerDocument.parentWindow.frameElement) + ? ((html.clientHeight > 0 && html.clientWidth > 0 && (body.clientHeight == 0 || body.clientWidth == 0 || body.clientHeight > html.clientHeight || body.clientWidth > html.clientWidth)) ? html : body) + : (backCompat ? body : html), scrollRoot = isWK ? body : clientAreaRoot, rootWidth = clientAreaRoot.clientWidth, rootHeight = clientAreaRoot.clientHeight, @@ -87,14 +91,11 @@ dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ }else{ var pb = dojo._getPadBorderExtents(el); elPos.w -= pb.w; elPos.h -= pb.h; elPos.x += pb.l; elPos.y += pb.t; - } - - if(el != scrollRoot){ // body, html sizes already have the scrollbar removed var clientSize = el.clientWidth, scrollBarSize = elPos.w - clientSize; if(clientSize > 0 && scrollBarSize > 0){ elPos.w = clientSize; - if(isIE && rtl){ elPos.x += scrollBarSize; } + elPos.x += (rtl && (isIE || el.clientLeft > pb.l/*Chrome*/)) ? scrollBarSize : 0; } clientSize = el.clientHeight; scrollBarSize = elPos.h - clientSize; @@ -123,8 +124,9 @@ dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ bot = t + nodePos.h - elPos.h; // beyond bottom: > 0 if(r * l > 0){ var s = Math[l < 0? "max" : "min"](l, r); + if(rtl && ((isIE == 8 && !backCompat) || isIE >= 9)){ s = -s; } nodePos.x += el.scrollLeft; - el.scrollLeft += (isIE >= 8 && !backCompat && rtl)? -s : s; + el.scrollLeft += s; nodePos.x -= el.scrollLeft; } if(bot * t > 0){ @@ -133,7 +135,7 @@ dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ nodePos.y -= el.scrollTop; } el = (el != scrollRoot) && !fixedPos && el.parentNode; - } + } }catch(error){ console.error('scrollIntoView: ' + error); node.scrollIntoView(false); |