summaryrefslogtreecommitdiff
path: root/lib/dijit/form
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dijit/form')
-rw-r--r--lib/dijit/form/Button.js.uncompressed.js121
-rw-r--r--lib/dijit/form/CheckBox.js.uncompressed.js116
-rw-r--r--lib/dijit/form/ComboBox.js.uncompressed.js27
-rw-r--r--lib/dijit/form/ComboBoxMixin.js.uncompressed.js143
-rw-r--r--lib/dijit/form/ComboButton.js.uncompressed.js85
-rw-r--r--lib/dijit/form/CurrencyTextBox.js.uncompressed.js85
-rw-r--r--lib/dijit/form/DataList.js.uncompressed.js70
-rw-r--r--lib/dijit/form/DateTextBox.js.uncompressed.js28
-rw-r--r--lib/dijit/form/DropDownButton.js.uncompressed.js99
-rw-r--r--lib/dijit/form/FilteringSelect.js.uncompressed.js234
-rw-r--r--lib/dijit/form/Form.js.uncompressed.js163
-rw-r--r--lib/dijit/form/HorizontalRule.js.uncompressed.js69
-rw-r--r--lib/dijit/form/HorizontalRuleLabels.js.uncompressed.js92
-rw-r--r--lib/dijit/form/HorizontalSlider.js.uncompressed.js349
-rw-r--r--lib/dijit/form/MappedTextBox.js.uncompressed.js81
-rw-r--r--lib/dijit/form/MultiSelect.js.uncompressed.js134
-rw-r--r--lib/dijit/form/NumberSpinner.js.uncompressed.js69
-rw-r--r--lib/dijit/form/NumberTextBox.js.uncompressed.js275
-rw-r--r--lib/dijit/form/RadioButton.js.uncompressed.js16
-rw-r--r--lib/dijit/form/RangeBoundTextBox.js.uncompressed.js110
-rw-r--r--lib/dijit/form/Select.js.uncompressed.js406
-rw-r--r--lib/dijit/form/SimpleTextarea.js.uncompressed.js92
-rw-r--r--lib/dijit/form/Slider.js.uncompressed.js23
-rw-r--r--lib/dijit/form/TextBox.js.uncompressed.js157
-rw-r--r--lib/dijit/form/Textarea.js.uncompressed.js42
-rw-r--r--lib/dijit/form/TimeTextBox.js.uncompressed.js79
-rw-r--r--lib/dijit/form/ToggleButton.js.uncompressed.js26
-rw-r--r--lib/dijit/form/ValidationTextBox.js.uncompressed.js332
-rw-r--r--lib/dijit/form/VerticalRule.js.uncompressed.js28
-rw-r--r--lib/dijit/form/VerticalRuleLabels.js.uncompressed.js26
-rw-r--r--lib/dijit/form/VerticalSlider.js.uncompressed.js35
-rw-r--r--lib/dijit/form/_AutoCompleterMixin.js.uncompressed.js581
-rw-r--r--lib/dijit/form/_ButtonMixin.js.uncompressed.js84
-rw-r--r--lib/dijit/form/_CheckBoxMixin.js.uncompressed.js77
-rw-r--r--lib/dijit/form/_ComboBoxMenu.js.uncompressed.js131
-rw-r--r--lib/dijit/form/_ComboBoxMenuMixin.js.uncompressed.js189
-rw-r--r--lib/dijit/form/_DateTimeTextBox.js.uncompressed.js260
-rw-r--r--lib/dijit/form/_ExpandingTextAreaMixin.js.uncompressed.js130
-rw-r--r--lib/dijit/form/_FormMixin.js.uncompressed.js456
-rw-r--r--lib/dijit/form/_FormSelectWidget.js.uncompressed.js707
-rw-r--r--lib/dijit/form/_FormValueMixin.js.uncompressed.js89
-rw-r--r--lib/dijit/form/_FormValueWidget.js.uncompressed.js51
-rw-r--r--lib/dijit/form/_FormWidget.js.uncompressed.js71
-rw-r--r--lib/dijit/form/_FormWidgetMixin.js.uncompressed.js227
-rw-r--r--lib/dijit/form/_ListBase.js.uncompressed.js135
-rw-r--r--lib/dijit/form/_ListMouseMixin.js.uncompressed.js79
-rw-r--r--lib/dijit/form/_RadioButtonMixin.js.uncompressed.js71
-rw-r--r--lib/dijit/form/_SearchMixin.js.uncompressed.js264
-rw-r--r--lib/dijit/form/_Spinner.js.uncompressed.js160
-rw-r--r--lib/dijit/form/_TextBoxMixin.js.uncompressed.js474
-rw-r--r--lib/dijit/form/_ToggleButtonMixin.js.uncompressed.js55
-rw-r--r--lib/dijit/form/nls/ComboBox.js.uncompressed.js40
-rw-r--r--lib/dijit/form/nls/Textarea.js.uncompressed.js43
-rw-r--r--lib/dijit/form/nls/ar/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/ar/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/ar/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/az/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/az/Textarea.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/az/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/ca/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/ca/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/ca/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/cs/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/cs/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/cs/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/da/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/da/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/da/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/de/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/de/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/de/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/el/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/el/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/el/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/es/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/es/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/es/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/fi/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/fi/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/fi/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/fr/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/fr/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/fr/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/he/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/he/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/he/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/hr/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/hr/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/hr/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/hu/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/hu/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/hu/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/it/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/it/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/it/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/ja/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/ja/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/ja/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/kk/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/kk/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/kk/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/ko/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/ko/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/ko/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/nb/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/nb/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/nb/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/nl/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/nl/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/nl/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/pl/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/pl/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/pl/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/pt-pt/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/pt-pt/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/pt-pt/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/pt/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/pt/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/pt/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/ro/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/ro/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/ro/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/ru/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/ru/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/ru/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/sk/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/sk/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/sk/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/sl/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/sl/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/sl/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/sv/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/sv/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/sv/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/th/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/th/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/th/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/tr/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/tr/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/tr/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/validate.js.uncompressed.js41
-rw-r--r--lib/dijit/form/nls/zh-tw/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/zh-tw/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/zh-tw/validate.js.uncompressed.js7
-rw-r--r--lib/dijit/form/nls/zh/ComboBox.js.uncompressed.js6
-rw-r--r--lib/dijit/form/nls/zh/Textarea.js.uncompressed.js9
-rw-r--r--lib/dijit/form/nls/zh/validate.js.uncompressed.js7
147 files changed, 0 insertions, 8707 deletions
diff --git a/lib/dijit/form/Button.js.uncompressed.js b/lib/dijit/form/Button.js.uncompressed.js
deleted file mode 100644
index 40bbbcf39..000000000
--- a/lib/dijit/form/Button.js.uncompressed.js
+++ /dev/null
@@ -1,121 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/Button.html':"<span class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" role=\"presentation\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode,focusNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#x25CF;</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdata-dojo-attach-point=\"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\ttabIndex=\"-1\" role=\"presentation\" data-dojo-attach-point=\"valueNode\"\n/></span>\n"}});
-define("dijit/form/Button", [
- "require",
- "dojo/_base/declare", // declare
- "dojo/dom-class", // domClass.toggle
- "dojo/has", // has("dijit-legacy-requires")
- "dojo/_base/kernel", // kernel.deprecated
- "dojo/_base/lang", // lang.trim
- "dojo/ready",
- "./_FormWidget",
- "./_ButtonMixin",
- "dojo/text!./templates/Button.html"
-], function(require, declare, domClass, has, kernel, lang, ready, _FormWidget, _ButtonMixin, template){
-
-// module:
-// dijit/form/Button
-
-// Back compat w/1.6, remove for 2.0
-if(has("dijit-legacy-requires")){
- ready(0, function(){
- var requires = ["dijit/form/DropDownButton", "dijit/form/ComboButton", "dijit/form/ToggleButton"];
- require(requires); // use indirection so modules not rolled into a build
- });
-}
-
-return declare("dijit.form.Button", [_FormWidget, _ButtonMixin], {
- // summary:
- // Basically the same thing as a normal HTML button, but with special styling.
- // description:
- // Buttons can display a label, an icon, or both.
- // A label should always be specified (through innerHTML) or the label
- // attribute. It can be hidden via showLabel=false.
- // example:
- // | <button data-dojo-type="dijit/form/Button" onClick="...">Hello world</button>
- //
- // example:
- // | var button1 = new Button({label: "hello world", onClick: foo});
- // | dojo.body().appendChild(button1.domNode);
-
- // showLabel: Boolean
- // Set this to true to hide the label text and display only the icon.
- // (If showLabel=false then iconClass must be specified.)
- // Especially useful for toolbars.
- // If showLabel=true, the label will become the title (a.k.a. tooltip/hint) of the icon.
- //
- // The exception case is for computers in high-contrast mode, where the label
- // will still be displayed, since the icon doesn't appear.
- showLabel: true,
-
- // iconClass: String
- // Class to apply to DOMNode in button to make it display an icon
- iconClass: "dijitNoIcon",
- _setIconClassAttr: { node: "iconNode", type: "class" },
-
- baseClass: "dijitButton",
-
- templateString: template,
-
- // Map widget attributes to DOMNode attributes.
- _setValueAttr: "valueNode",
-
- _onClick: function(/*Event*/ e){
- // summary:
- // Internal function to handle click actions
- var ok = this.inherited(arguments);
- if(ok){
- if(this.valueNode){
- this.valueNode.click();
- e.preventDefault(); // cancel BUTTON click and continue with hidden INPUT click
- e.stopPropagation(); // avoid two events bubbling from Button widget
- // leave ok = true so that subclasses can do what they need to do
- }
- }
- return ok;
- },
-
- _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))){
- var sourceLabel = lang.trim(source.innerHTML);
- if(sourceLabel){
- this.label = sourceLabel; // _applyAttributes will be called after buildRendering completes to update the DOM
- }
- }
- },
-
- _setShowLabelAttr: function(val){
- if(this.containerNode){
- domClass.toggle(this.containerNode, "dijitDisplayNone", !val);
- }
- this._set("showLabel", val);
- },
-
- setLabel: function(/*String*/ content){
- // summary:
- // Deprecated. Use set('label', ...) instead.
- kernel.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.", "", "2.0");
- this.set("label", content);
- },
-
- _setLabelAttr: function(/*String*/ content){
- // summary:
- // Hook for set('label', ...) to work.
- // description:
- // Set the label (text) of the button; takes an HTML string.
- // If the label is hidden (showLabel=false) then and no title has
- // been specified, then label is also set as title attribute of icon.
- this.inherited(arguments);
- if(!this.showLabel && !("title" in this.params)){
- this.titleNode.title = lang.trim(this.containerNode.innerText || this.containerNode.textContent || '');
- }
- }
-});
-
-
-});
-
diff --git a/lib/dijit/form/CheckBox.js.uncompressed.js b/lib/dijit/form/CheckBox.js.uncompressed.js
deleted file mode 100644
index 4e65ca30a..000000000
--- a/lib/dijit/form/CheckBox.js.uncompressed.js
+++ /dev/null
@@ -1,116 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/CheckBox.html':"<div class=\"dijit dijitReset dijitInline\" role=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" role=\"${type}\" aria-checked=\"false\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdata-dojo-attach-point=\"focusNode\"\n\t \tdata-dojo-attach-event=\"onclick:_onClick\"\n/></div>\n"}});
-define("dijit/form/CheckBox", [
- "require",
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.set
- "dojo/has", // has("dijit-legacy-requires")
- "dojo/query", // query
- "dojo/ready",
- "./ToggleButton",
- "./_CheckBoxMixin",
- "dojo/text!./templates/CheckBox.html",
- "dojo/NodeList-dom" // NodeList.addClass/removeClass
-], function(require, declare, domAttr, has, query, ready, ToggleButton, _CheckBoxMixin, template){
-
- // module:
- // dijit/form/CheckBox
-
- // Back compat w/1.6, remove for 2.0
- if(has("dijit-legacy-requires")){
- ready(0, function(){
- var requires = ["dijit/form/RadioButton"];
- require(requires); // use indirection so modules not rolled into a build
- });
- }
-
- return declare("dijit.form.CheckBox", [ToggleButton, _CheckBoxMixin], {
- // summary:
- // Same as an HTML checkbox, but with fancy styling.
- //
- // description:
- // User interacts with real html inputs.
- // On onclick (which occurs by mouse click, space-bar, or
- // using the arrow keys to switch the selected radio button),
- // we update the state of the checkbox/radio.
- //
- // There are two modes:
- //
- // 1. High contrast mode
- // 2. Normal mode
- //
- // In case 1, the regular html inputs are shown and used by the user.
- // 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: template,
-
- baseClass: "dijitCheckBox",
-
- _setValueAttr: function(/*String|Boolean*/ newValue, /*Boolean*/ priorityChange){
- // summary:
- // Handler for value= attribute to constructor, and also calls to
- // set('value', val).
- // description:
- // During initialization, just saves as attribute to the `<input type=checkbox>`.
- //
- // After initialization,
- // when passed a boolean, controls whether or not the CheckBox is checked.
- // If passed a string, changes the value attribute of the CheckBox (the one
- // specified as "value" when the CheckBox was constructed
- // (ex: `<input data-dojo-type="dijit/CheckBox" value="chicken">`).
- //
- // `widget.set('value', string)` will check the checkbox and change the value to the
- // specified string.
- //
- // `widget.set('value', boolean)` will change the checked state.
-
- if(typeof newValue == "string"){
- this.inherited(arguments);
- newValue = true;
- }
- if(this._created){
- this.set('checked', newValue, priorityChange);
- }
- },
- _getValueAttr: function(){
- // summary:
- // Hook so get('value') works.
- // description:
- // If the CheckBox is checked, returns the value attribute.
- // Otherwise returns false.
- return (this.checked ? this.value : false);
- },
-
- // Override behavior from Button, since we don't have an iconNode
- _setIconClassAttr: null,
-
- postMixInProperties: function(){
- this.inherited(arguments);
-
- // Need to set initial checked state as part of template, so that form submit works.
- // domAttr.set(node, "checked", bool) doesn't work on IE until node has been attached
- // to <body>, see #8666
- this.checkedAttrSetting = this.checked ? "checked" : "";
- },
-
- _fillContent: function(){
- // Override Button::_fillContent() since it doesn't make sense for CheckBox,
- // since CheckBox doesn't even have a container
- },
-
- _onFocus: function(){
- if(this.id){
- query("label[for='"+this.id+"']").addClass("dijitFocusedLabel");
- }
- this.inherited(arguments);
- },
-
- _onBlur: function(){
- if(this.id){
- query("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");
- }
- this.inherited(arguments);
- }
- });
-});
diff --git a/lib/dijit/form/ComboBox.js.uncompressed.js b/lib/dijit/form/ComboBox.js.uncompressed.js
deleted file mode 100644
index b883af242..000000000
--- a/lib/dijit/form/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,27 +0,0 @@
-define("dijit/form/ComboBox", [
- "dojo/_base/declare", // declare
- "./ValidationTextBox",
- "./ComboBoxMixin"
-], function(declare, ValidationTextBox, ComboBoxMixin){
-
- // module:
- // dijit/form/ComboBox
-
- return declare("dijit.form.ComboBox", [ValidationTextBox, ComboBoxMixin], {
- // summary:
- // Auto-completing text box
- //
- // description:
- // The drop down box's values are populated from an class called
- // a data provider, which returns a list of values based on the characters
- // that the user has typed into the input box.
- // If OPTION tags are used as the data provider via markup,
- // then the OPTION tag's child text node is used as the widget value
- // when selected. The OPTION tag's value attribute is ignored.
- // To set the default value when using OPTION tags, specify the selected
- // attribute on 1 of the child OPTION tags.
- //
- // Some of the options to the ComboBox are actually arguments to the data
- // provider.
- });
-});
diff --git a/lib/dijit/form/ComboBoxMixin.js.uncompressed.js b/lib/dijit/form/ComboBoxMixin.js.uncompressed.js
deleted file mode 100644
index bafccb44b..000000000
--- a/lib/dijit/form/ComboBoxMixin.js.uncompressed.js
+++ /dev/null
@@ -1,143 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/DropDownBox.html':"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"button presentation\" aria-hidden=\"true\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" 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\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"}});
-define("dijit/form/ComboBoxMixin", [
- "dojo/_base/declare", // declare
- "dojo/_base/Deferred",
- "dojo/_base/kernel", // kernel.deprecated
- "dojo/_base/lang", // lang.mixin
- "dojo/store/util/QueryResults",
- "./_AutoCompleterMixin",
- "./_ComboBoxMenu",
- "../_HasDropDown",
- "dojo/text!./templates/DropDownBox.html"
-], function(declare, Deferred, kernel, lang, QueryResults, _AutoCompleterMixin, _ComboBoxMenu, _HasDropDown, template){
-
-
- // module:
- // dijit/form/ComboBoxMixin
-
- return declare("dijit.form.ComboBoxMixin", [_HasDropDown, _AutoCompleterMixin], {
- // summary:
- // Provides main functionality of ComboBox widget
-
- // dropDownClass: [protected extension] Function String
- // Dropdown widget class used to select a date/time.
- // Subclasses should specify this.
- dropDownClass: _ComboBoxMenu,
-
- // hasDownArrow: Boolean
- // Set this textbox to have a down arrow button, to display the drop down list.
- // Defaults to true.
- hasDownArrow: true,
-
- templateString: template,
-
- baseClass: "dijitTextBox dijitComboBox",
-
- /*=====
- // store: [const] dojo/store/api/Store|dojo/data/api/Read
- // Reference to data provider object used by this ComboBox.
- //
- // Should be dojo/store/api/Store, but dojo/data/api/Read supported
- // for backwards compatibility.
- store: null,
- =====*/
-
- // Set classes like dijitDownArrowButtonHover depending on
- // mouse action over button node
- cssStateNodes: {
- "_buttonNode": "dijitDownArrowButton"
- },
-
- _setHasDownArrowAttr: function(/*Boolean*/ val){
- this._set("hasDownArrow", val);
- this._buttonNode.style.display = val ? "" : "none";
- },
-
- _showResultList: function(){
- // hide the tooltip
- this.displayMessage("");
- this.inherited(arguments);
- },
-
- _setStoreAttr: function(store){
- // For backwards-compatibility, accept dojo.data store in addition to dojo/store/api/Store. Remove in 2.0.
- if(!store.get){
- lang.mixin(store, {
- _oldAPI: true,
- get: function(id){
- // summary:
- // Retrieves an object by it's identity. This will trigger a fetchItemByIdentity.
- // Like dojo/store/DataStore.get() except returns native item.
- var deferred = new Deferred();
- this.fetchItemByIdentity({
- identity: id,
- onItem: function(object){
- deferred.resolve(object);
- },
- onError: function(error){
- deferred.reject(error);
- }
- });
- return deferred.promise;
- },
- query: function(query, options){
- // summary:
- // Queries the store for objects. Like dojo/store/DataStore.query()
- // except returned Deferred contains array of native items.
- var deferred = new Deferred(function(){ fetchHandle.abort && fetchHandle.abort(); });
- deferred.total = new Deferred();
- var fetchHandle = this.fetch(lang.mixin({
- query: query,
- onBegin: function(count){
- deferred.total.resolve(count);
- },
- onComplete: function(results){
- deferred.resolve(results);
- },
- onError: function(error){
- deferred.reject(error);
- }
- }, options));
- return QueryResults(deferred);
- }
- });
- }
- this._set("store", store);
- },
-
- postMixInProperties: function(){
- // Since _setValueAttr() depends on this.store, _setStoreAttr() needs to execute first.
- // Unfortunately, without special code, it ends up executing second.
- var store = this.params.store || this.store;
- if(store){
- this._setStoreAttr(store);
- }
-
- this.inherited(arguments);
-
- // User may try to access this.store.getValue() etc. in a custom labelFunc() function.
- // It's not available with the new data store for handling inline <option> tags, so add it.
- if(!this.params.store && !this.store._oldAPI){
- var clazz = this.declaredClass;
- lang.mixin(this.store, {
- getValue: function(item, attr){
- kernel.deprecated(clazz + ".store.getValue(item, attr) is deprecated for builtin store. Use item.attr directly", "", "2.0");
- return item[attr];
- },
- getLabel: function(item){
- kernel.deprecated(clazz + ".store.getLabel(item) is deprecated for builtin store. Use item.label directly", "", "2.0");
- return item.name;
- },
- fetch: function(args){
- kernel.deprecated(clazz + ".store.fetch() is deprecated for builtin store.", "Use store.query()", "2.0");
- var shim = ["dojo/data/ObjectStore"]; // indirection so it doesn't get rolled into a build
- require(shim, lang.hitch(this, function(ObjectStore){
- new ObjectStore({objectStore: this}).fetch(args);
- }));
- }
- });
- }
- }
- });
-});
diff --git a/lib/dijit/form/ComboButton.js.uncompressed.js b/lib/dijit/form/ComboButton.js.uncompressed.js
deleted file mode 100644
index 7805c20e7..000000000
--- a/lib/dijit/form/ComboButton.js.uncompressed.js
+++ /dev/null
@@ -1,85 +0,0 @@
-require({cache:{
-'url: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\" data-dojo-attach-point=\"buttonNode\" data-dojo-attach-event=\"ondijitclick:_onClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" data-dojo-attach-point=\"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\tdata-dojo-attach-point=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdata-dojo-attach-event=\"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\">&#9660;</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" data-dojo-attach-point=\"valueNode\" role=\"presentation\"\n\t\t/></td></tr></tbody\n></table>\n"}});
-define("dijit/form/ComboButton", [
- "dojo/_base/declare", // declare
- "dojo/_base/event", // event.stop
- "dojo/keys", // keys
- "../focus", // focus.focus()
- "./DropDownButton",
- "dojo/text!./templates/ComboButton.html"
-], function(declare, event, keys, focus, DropDownButton, template){
-
-// module:
-// dijit/form/ComboButton
-
-return declare("dijit.form.ComboButton", DropDownButton, {
- // summary:
- // A combination button and drop-down button.
- // Users can click one side to "press" the button, or click an arrow
- // icon to display the drop down.
- //
- // example:
- // | <button data-dojo-type="dijit/form/ComboButton" onClick="...">
- // | <span>Hello world</span>
- // | <div data-dojo-type="dijit/Menu">...</div>
- // | </button>
- //
- // example:
- // | var button1 = new ComboButton({label: "hello world", onClick: foo, dropDown: "myMenu"});
- // | dojo.body().appendChild(button1.domNode);
- //
-
- templateString: template,
-
- // Map widget attributes to DOMNode attributes.
- _setIdAttr: "", // override _FormWidgetMixin which puts id on the focusNode
- _setTabIndexAttr: ["focusNode", "titleNode"],
- _setTitleAttr: "titleNode",
-
- // optionsTitle: String
- // Text that describes the options menu (accessibility)
- optionsTitle: "",
-
- baseClass: "dijitComboButton",
-
- // Set classes like dijitButtonContentsHover or dijitArrowButtonActive depending on
- // mouse action over specified node
- cssStateNodes: {
- "buttonNode": "dijitButtonNode",
- "titleNode": "dijitButtonContents",
- "_popupStateNode": "dijitDownArrowButton"
- },
-
- _focusedNode: null,
-
- _onButtonKeyPress: function(/*Event*/ evt){
- // summary:
- // Handler for right arrow key when focus is on left part of button
- if(evt.charOrCode == keys[this.isLeftToRight() ? "RIGHT_ARROW" : "LEFT_ARROW"]){
- focus.focus(this._popupStateNode);
- event.stop(evt);
- }
- },
-
- _onArrowKeyPress: function(/*Event*/ evt){
- // summary:
- // Handler for left arrow key when focus is on right part of button
- if(evt.charOrCode == keys[this.isLeftToRight() ? "LEFT_ARROW" : "RIGHT_ARROW"]){
- focus.focus(this.titleNode);
- event.stop(evt);
- }
- },
-
- focus: function(/*String*/ position){
- // summary:
- // Focuses this widget to according to position, if specified,
- // otherwise on arrow node
- // position:
- // "start" or "end"
- if(!this.disabled){
- focus.focus(position == "start" ? this.titleNode : this._popupStateNode);
- }
- }
-});
-
-});
diff --git a/lib/dijit/form/CurrencyTextBox.js.uncompressed.js b/lib/dijit/form/CurrencyTextBox.js.uncompressed.js
deleted file mode 100644
index fb13899a5..000000000
--- a/lib/dijit/form/CurrencyTextBox.js.uncompressed.js
+++ /dev/null
@@ -1,85 +0,0 @@
-define("dijit/form/CurrencyTextBox", [
- "dojo/currency", // currency._mixInDefaults currency.format currency.parse currency.regexp
- "dojo/_base/declare", // declare
- "dojo/_base/lang", // lang.hitch
- "./NumberTextBox"
-], function(currency, declare, lang, NumberTextBox){
-
- // module:
- // dijit/form/CurrencyTextBox
-
- /*=====
- var __Constraints = declare([NumberTextBox.__Constraints, currency.__FormatOptions, currency.__ParseOptions], {
- // summary:
- // Specifies both the rules on valid/invalid values (minimum, maximum,
- // number of required decimal places), and also formatting options for
- // displaying the value when the field is not focused (currency symbol,
- // etc.)
- // description:
- // Follows the pattern of `dijit/form/NumberTextBox.__Constraints`.
- // In general developers won't need to set this parameter
- // example:
- // To ensure that the user types in the cents (for example, 1.00 instead of just 1):
- // | {fractional:true}
- });
- =====*/
-
- return declare("dijit.form.CurrencyTextBox", NumberTextBox, {
- // summary:
- // A validating currency textbox
- // description:
- // CurrencyTextBox is similar to `dijit/form/NumberTextBox` but has a few
- // extra features related to currency:
- //
- // 1. After specifying the currency type (american dollars, euros, etc.) it automatically
- // sets parse/format options such as how many decimal places to show.
- // 2. The currency mark (dollar sign, euro mark, etc.) is displayed when the field is blurred
- // but erased during editing, so that the user can just enter a plain number.
-
- // currency: [const] String
- // the [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code, a three letter sequence like "USD"
- currency: "",
-
- /*=====
- // constraints: __Constraints
- // Despite the name, this parameter specifies both constraints on the input
- // (including minimum/maximum allowed values) as well as
- // formatting options.
- constraints: {},
- ======*/
-
- baseClass: "dijitTextBox dijitCurrencyTextBox",
-
- // Override pattern ValidationTextBox.pattern.... we use a reg-ex generating function rather
- // than a straight regexp to deal with locale (plus formatting options too?)
- pattern: function(constraints){
- // if focused, accept either currency data or NumberTextBox format
- return '(' + (this.focused ? this.inherited(arguments, [ lang.mixin({}, constraints, this.editOptions) ]) + '|' : '')
- + currency.regexp(constraints) + ')';
- },
-
- // Override NumberTextBox._formatter to deal with currencies, ex: converts "123.45" to "$123.45"
- _formatter: currency.format,
-
- _parser: currency.parse,
-
- parse: function(/*String*/ value, /*Object*/ constraints){
- // summary:
- // Parses string value as a Currency, according to the constraints object
- // tags:
- // protected extension
- var v = this.inherited(arguments);
- if(isNaN(v) && /\d+/.test(value)){ // currency parse failed, but it could be because they are using NumberTextBox format so try its parse
- v = lang.hitch(lang.mixin({}, this, { _parser: NumberTextBox.prototype._parser }), "inherited")(arguments);
- }
- return v;
- },
-
- _setConstraintsAttr: function(/*Object*/ constraints){
- if(!constraints.currency && this.currency){
- constraints.currency = this.currency;
- }
- this.inherited(arguments, [ currency._mixInDefaults(lang.mixin(constraints, { exponent: false })) ]); // get places
- }
- });
-});
diff --git a/lib/dijit/form/DataList.js.uncompressed.js b/lib/dijit/form/DataList.js.uncompressed.js
deleted file mode 100644
index 2b2e062cf..000000000
--- a/lib/dijit/form/DataList.js.uncompressed.js
+++ /dev/null
@@ -1,70 +0,0 @@
-define("dijit/form/DataList", [
- "dojo/_base/declare", // declare
- "dojo/dom", // dom.byId
- "dojo/_base/lang", // lang.trim
- "dojo/query", // query
- "dojo/store/Memory",
- "../registry" // registry.add registry.remove
-], function(declare, dom, lang, query, MemoryStore, registry){
-
- // module:
- // dijit/form/DataList
-
- function toItem(/*DOMNode*/ option){
- // summary:
- // Convert `<option>` node to hash
- return {
- id: option.value,
- value: option.value,
- name: lang.trim(option.innerText || option.textContent || '')
- };
- }
-
- return declare("dijit.form.DataList", MemoryStore, {
- // summary:
- // Inefficient but small data store specialized for inlined data via OPTION tags
- //
- // description:
- // Provides a store for inlined data like:
- //
- // | <datalist>
- // | <option value="AL">Alabama</option>
- // | ...
-
- constructor: function(params, srcNodeRef){
- // summary:
- // Create the widget.
- // params: Object|null
- // Hash of initialization parameters for widget, including scalar values (like title, duration etc.)
- // and functions, typically callbacks like onClick.
- // The hash can contain any of the widget's properties, excluding read-only properties.
- // srcNodeRef: DOMNode|String
- // Attach widget to this DOM node.
-
- // store pointer to original DOM tree
- this.domNode = dom.byId(srcNodeRef);
-
- lang.mixin(this, params);
- if(this.id){
- registry.add(this); // add to registry so it can be easily found by id
- }
- this.domNode.style.display = "none";
-
- this.inherited(arguments, [{
- data: query("option", this.domNode).map(toItem)
- }]);
- },
-
- destroy: function(){
- registry.remove(this.id);
- },
-
- fetchSelectedItem: function(){
- // summary:
- // Get the option marked as selected, like `<option selected>`.
- // Not part of dojo.data API.
- var option = query("> option[selected]", this.domNode)[0] || query("> option", this.domNode)[0];
- return option && toItem(option);
- }
- });
-});
diff --git a/lib/dijit/form/DateTextBox.js.uncompressed.js b/lib/dijit/form/DateTextBox.js.uncompressed.js
deleted file mode 100644
index 41b56bdeb..000000000
--- a/lib/dijit/form/DateTextBox.js.uncompressed.js
+++ /dev/null
@@ -1,28 +0,0 @@
-define("dijit/form/DateTextBox", [
- "dojo/_base/declare", // declare
- "../Calendar",
- "./_DateTimeTextBox"
-], function(declare, Calendar, _DateTimeTextBox){
-
- // module:
- // dijit/form/DateTextBox
-
- return declare("dijit.form.DateTextBox", _DateTimeTextBox, {
- // summary:
- // A validating, serializable, range-bound date text box with a drop down calendar
- // example:
- // | new DateTextBox({value: new Date(2009, 0, 20)})
- // example:
- // | <input data-dojo-type='dijit/form/DateTextBox' value='2009-01-20'>
-
- baseClass: "dijitTextBox dijitComboBox dijitDateTextBox",
- popupClass: Calendar,
- _selector: "date",
-
- // value: Date
- // The value of this widget as a JavaScript Date object, with only year/month/day specified.
- // If specified in markup, use the format specified in `stamp.fromISOString`.
- // set("value", ...) accepts either a Date object or a string.
- value: new Date("") // value.toString()="NaN"
- });
-});
diff --git a/lib/dijit/form/DropDownButton.js.uncompressed.js b/lib/dijit/form/DropDownButton.js.uncompressed.js
deleted file mode 100644
index 007e924d7..000000000
--- a/lib/dijit/form/DropDownButton.js.uncompressed.js
+++ /dev/null
@@ -1,99 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/DropDownButton.html':"<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdata-dojo-attach-event=\"ondijitclick:_onClick\" data-dojo-attach-point=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"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\tdata-dojo-attach-point=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdata-dojo-attach-point=\"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\">&#9660;</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\n\t\tdata-dojo-attach-point=\"valueNode\" role=\"presentation\"\n/></span>\n"}});
-define("dijit/form/DropDownButton", [
- "dojo/_base/declare", // declare
- "dojo/_base/lang", // hitch
- "dojo/query", // query
- "../registry", // registry.byNode
- "../popup", // dijit.popup2.hide
- "./Button",
- "../_Container",
- "../_HasDropDown",
- "dojo/text!./templates/DropDownButton.html"
-], function(declare, lang, query, registry, popup, Button, _Container, _HasDropDown, template){
-
-// module:
-// dijit/form/DropDownButton
-
-
-return declare("dijit.form.DropDownButton", [Button, _Container, _HasDropDown], {
- // summary:
- // A button with a drop down
- //
- // example:
- // | <button data-dojo-type="dijit/form/DropDownButton">
- // | Hello world
- // | <div data-dojo-type="dijit/Menu">...</div>
- // | </button>
- //
- // example:
- // | var button1 = new DropDownButton({ label: "hi", dropDown: new dijit.Menu(...) });
- // | win.body().appendChild(button1);
- //
-
- baseClass : "dijitDropDownButton",
-
- templateString: template,
-
- _fillContent: function(){
- // Overrides Button._fillContent().
- //
- // My inner HTML contains both the button contents and a drop down widget, like
- // <DropDownButton> <span>push me</span> <Menu> ... </Menu> </DropDownButton>
- // The first node is assumed to be the button content. The widget is the popup.
-
- if(this.srcNodeRef){ // programatically created buttons might not define srcNodeRef
- //FIXME: figure out how to filter out the widget and use all remaining nodes as button
- // content, not just nodes[0]
- var nodes = query("*", this.srcNodeRef);
- this.inherited(arguments, [nodes[0]]);
-
- // save pointer to srcNode so we can grab the drop down widget after it's instantiated
- this.dropDownContainer = this.srcNodeRef;
- }
- },
-
- startup: function(){
- if(this._started){ return; }
-
- // 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 && this.dropDownContainer){
- var dropDownNode = query("[widgetId]", this.dropDownContainer)[0];
- this.dropDown = registry.byNode(dropDownNode);
- delete this.dropDownContainer;
- }
- if(this.dropDown){
- popup.hide(this.dropDown);
- }
-
- this.inherited(arguments);
- },
-
- isLoaded: function(){
- // 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 && (!dropDown.href || dropDown.isLoaded));
- },
-
- loadDropDown: function(/*Function*/ callback){
- // Default implementation assumes that drop down already exists,
- // but hasn't loaded it's data (ex: ContentPane w/href).
- // App must override if the drop down is lazy-created.
- var dropDown = this.dropDown;
- var handler = dropDown.on("load", lang.hitch(this, function(){
- handler.remove();
- callback();
- }));
- dropDown.refresh(); // tell it to load
- },
-
- isFocusable: function(){
- // Overridden so that focus is handled by the _HasDropDown mixin, not by
- // the _FormWidget mixin.
- return this.inherited(arguments) && !this._mouseDown;
- }
-});
-
-});
diff --git a/lib/dijit/form/FilteringSelect.js.uncompressed.js b/lib/dijit/form/FilteringSelect.js.uncompressed.js
deleted file mode 100644
index 84ad938c8..000000000
--- a/lib/dijit/form/FilteringSelect.js.uncompressed.js
+++ /dev/null
@@ -1,234 +0,0 @@
-define("dijit/form/FilteringSelect", [
- "dojo/data/util/filter", // filter.patternToRegExp
- "dojo/_base/declare", // declare
- "dojo/_base/lang", // lang.mixin
- "dojo/when",
- "./MappedTextBox",
- "./ComboBoxMixin"
-], function(filter, declare, lang, when, MappedTextBox, ComboBoxMixin){
-
- // module:
- // dijit/form/FilteringSelect
-
- return declare("dijit.form.FilteringSelect", [MappedTextBox, ComboBoxMixin], {
- // summary:
- // An enhanced version of the HTML SELECT tag, populated dynamically
- //
- // description:
- // An enhanced version of the HTML SELECT tag, populated dynamically. It works
- // very nicely with very large data sets because it can load and page data as needed.
- // It also resembles ComboBox, but does not allow values outside of the provided ones.
- // If OPTION tags are used as the data provider via markup, then the
- // OPTION tag's child text node is used as the displayed value when selected
- // while the OPTION tag's value attribute is used as the widget value on form submit.
- // To set the default value when using OPTION tags, specify the selected
- // attribute on 1 of the child OPTION tags.
- //
- // Similar features:
- //
- // - There is a drop down list of possible values.
- // - You can only enter a value from the drop down list. (You can't
- // enter an arbitrary value.)
- // - The value submitted with the form is the hidden value (ex: CA),
- // not the displayed value a.k.a. label (ex: California)
- //
- // Enhancements over plain HTML version:
- //
- // - If you type in some text then it will filter down the list of
- // possible values in the drop down list.
- // - List can be specified either as a static list or via a javascript
- // function (that can get the list from a server)
-
- // 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.item || (!this.required && this.get('displayedValue') == ""); // #5974
- },
-
- _refreshState: function(){
- if(!this.searchTimer){ // state will be refreshed after results are returned
- this.inherited(arguments);
- }
- },
-
- _callbackSetLabel: function(
- /*Array*/ result,
- /*Object*/ query,
- /*Object*/ options,
- /*Boolean?*/ priorityChange){
- // summary:
- // Callback from dojo.store after lookup of user entered value finishes
-
- // setValue does a synchronous lookup,
- // so it calls _callbackSetLabel directly,
- // and so does not pass dataObject
- // still need to test against _lastQuery in case it came too late
- if((query && query[this.searchAttr] !== this._lastQuery) || (!query && result.length && this.store.getIdentity(result[0]) != this._lastQuery)){
- return;
- }
- if(!result.length){
- //#3268: don't modify display value on bad input
- //#3285: change CSS to indicate error
- this.set("value", '', priorityChange || (priorityChange === undefined && !this.focused), this.textbox.value, null);
- }else{
- this.set('item', result[0], priorityChange);
- }
- },
-
- _openResultList: function(/*Object*/ results, /*Object*/ query, /*Object*/ options){
- // 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(query[this.searchAttr] !== this._lastQuery){
- return;
- }
- this.inherited(arguments);
-
- if(this.item === undefined){ // item == undefined for keyboard search
- // 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);
- }
- },
-
- _getValueAttr: function(){
- // summary:
- // 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
- return this.valueNode.value;
- },
-
- _getValueField: function(){
- // Overrides ComboBox._getValueField()
- return "value";
- },
-
- _setValueAttr: function(/*String*/ value, /*Boolean?*/ priorityChange, /*String?*/ displayedValue, /*item?*/ item){
- // summary:
- // Hook so set('value', value) works.
- // description:
- // Sets the value of the select.
- // Also sets the label to the corresponding value by reverse lookup.
- if(!this._onChangeActive){ priorityChange = null; }
-
- if(item === undefined){
- if(value === null || value === ''){
- value = '';
- if(!lang.isString(displayedValue)){
- this._setDisplayedValueAttr(displayedValue||'', priorityChange);
- return;
- }
- }
-
- var self = this;
- this._lastQuery = value;
- when(this.store.get(value), function(item){
- self._callbackSetLabel(item? [item] : [], undefined, undefined, priorityChange);
- });
- }else{
- this.valueNode.value = value;
- 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.
- // description:
- // Users shouldn't call this function; they should be calling
- // set('item', value)
- // tags:
- // private
- this.inherited(arguments);
- this._lastDisplayedValue = this.textbox.value;
- },
-
- _getDisplayQueryString: function(/*String*/ text){
- return text.replace(/([\\\*\?])/g, "\\$1");
- },
-
- _setDisplayedValueAttr: function(/*String*/ label, /*Boolean?*/ priorityChange){
- // summary:
- // Hook so set('displayedValue', label) works.
- // description:
- // Sets textbox to display label. Also performs reverse lookup
- // to set the hidden value. label should corresponding to item.searchAttr.
-
- 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.closeDropDown();
- var query = lang.clone(this.query); // #6196: populate query with user-specifics
-
- // Generate query
- var qs = this._getDisplayQueryString(label), q;
- if(this.store._oldAPI){
- // remove this branch for 2.0
- q = qs;
- }else{
- // Query on searchAttr is a regex for benefit of dojo/store/Memory,
- // but with a toString() method to help dojo/store/JsonRest.
- // Search string like "Co*" converted to regex like /^Co.*$/i.
- q = filter.patternToRegExp(qs, this.ignoreCase);
- q.toString = function(){ return qs; };
- }
- this._lastQuery = query[this.searchAttr] = q;
-
- // 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 options = {
- ignoreCase: this.ignoreCase,
- deep: true
- };
- lang.mixin(options, this.fetchProperties);
- this._fetchHandle = this.store.query(query, options);
- when(this._fetchHandle, function(result){
- _this._fetchHandle = null;
- _this._callbackSetLabel(result || [], query, options, priorityChange);
- }, function(err){
- _this._fetchHandle = null;
- if(!_this._cancelingQuery){ // don't treat canceled query as an error
- console.error('dijit.form.FilteringSelect: ' + err.toString());
- }
- });
- }
- },
-
- undo: function(){
- this.set('displayedValue', this._lastDisplayedValue);
- }
- });
-});
diff --git a/lib/dijit/form/Form.js.uncompressed.js b/lib/dijit/form/Form.js.uncompressed.js
deleted file mode 100644
index 0a3b7eb71..000000000
--- a/lib/dijit/form/Form.js.uncompressed.js
+++ /dev/null
@@ -1,163 +0,0 @@
-define("dijit/form/Form", [
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.set
- "dojo/_base/event", // event.stop
- "dojo/_base/kernel", // kernel.deprecated
- "dojo/sniff", // has("ie")
- "../_Widget",
- "../_TemplatedMixin",
- "./_FormMixin",
- "../layout/_ContentPaneResizeMixin"
-], function(declare, domAttr, event, kernel, has, _Widget, _TemplatedMixin, _FormMixin, _ContentPaneResizeMixin){
-
- // module:
- // dijit/form/Form
-
-
- return declare("dijit.form.Form", [_Widget, _TemplatedMixin, _FormMixin, _ContentPaneResizeMixin], {
- // summary:
- // Widget corresponding to HTML form tag, for validation and serialization
- //
- // example:
- // | <form data-dojo-type="dijit/form/Form" id="myForm">
- // | Name: <input type="text" name="name" />
- // | </form>
- // | myObj = {name: "John Doe"};
- // | dijit.byId('myForm').set('value', myObj);
- // |
- // | myObj=dijit.byId('myForm').get('value');
-
- // HTML <FORM> attributes
-
- // name: String?
- // Name of form for scripting.
- name: "",
-
- // action: String?
- // Server-side form handler.
- action: "",
-
- // method: String?
- // HTTP method used to submit the form, either "GET" or "POST".
- method: "",
-
- // encType: String?
- // Encoding type for the form, ex: application/x-www-form-urlencoded.
- encType: "",
-
- // accept-charset: String?
- // List of supported charsets.
- "accept-charset": "",
-
- // accept: String?
- // List of MIME types for file upload.
- accept: "",
-
- // target: String?
- // Target frame for the document to be opened in.
- target: "",
-
- templateString: "<form data-dojo-attach-point='containerNode' data-dojo-attach-event='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",
-
- postMixInProperties: function(){
- // Setup name=foo string to be referenced from the template (but only if a name has been specified)
- // Unfortunately we can't use _setNameAttr to set the name due to IE limitations, see #8660
- this.nameAttrSetting = this.name ? ("name='" + this.name + "'") : "";
- this.inherited(arguments);
- },
-
- execute: function(/*Object*/ /*===== formContents =====*/){
- // summary:
- // Deprecated: use submit()
- // tags:
- // deprecated
- },
-
- onExecute: function(){
- // summary:
- // Deprecated: use onSubmit()
- // tags:
- // deprecated
- },
-
- _setEncTypeAttr: function(/*String*/ value){
- this.encType = value;
- domAttr.set(this.domNode, "encType", value);
- if(has("ie")){ this.domNode.encoding = value; }
- },
-
- reset: function(/*Event?*/ e){
- // summary:
- // restores all widget values back to their init values,
- // calls onReset() which can cancel the reset by returning false
-
- // create fake event so we can know if preventDefault() is called
- var faux = {
- returnValue: true, // the IE way
- preventDefault: function(){ // not IE
- this.returnValue = false;
- },
- 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
- if(!(this.onReset(faux) === false) && faux.returnValue){
- this.inherited(arguments, []);
- }
- },
-
- onReset: function(/*Event?*/ /*===== e =====*/){
- // summary:
- // Callback when user resets the form. This method is intended
- // to be over-ridden. When the `reset` method is called
- // programmatically, the return value from `onReset` is used
- // to compute whether or not resetting should proceed
- // tags:
- // callback
- return true; // Boolean
- },
-
- _onReset: function(e){
- this.reset(e);
- event.stop(e);
- return false;
- },
-
- _onSubmit: function(e){
- var fp = this.constructor.prototype;
- // TODO: remove this if statement beginning with 2.0
- if(this.execute != fp.execute || this.onExecute != fp.onExecute){
- kernel.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.", "", "2.0");
- this.onExecute();
- this.execute(this.getValues());
- }
- if(this.onSubmit(e) === false){ // only exactly false stops submit
- event.stop(e);
- }
- },
-
- onSubmit: function(/*Event?*/ /*===== e =====*/){
- // summary:
- // Callback when user submits the form.
- // description:
- // This method is intended to be over-ridden, but by default it checks and
- // returns the validity of form elements. When the `submit`
- // method is called programmatically, the return value from
- // `onSubmit` is used to compute whether or not submission
- // should proceed
- // tags:
- // extension
-
- return this.isValid(); // Boolean
- },
-
- submit: function(){
- // summary:
- // programmatically submit form if and only if the `onSubmit` returns true
- if(!(this.onSubmit() === false)){
- this.containerNode.submit();
- }
- }
- });
-});
diff --git a/lib/dijit/form/HorizontalRule.js.uncompressed.js b/lib/dijit/form/HorizontalRule.js.uncompressed.js
deleted file mode 100644
index 6e9577ddc..000000000
--- a/lib/dijit/form/HorizontalRule.js.uncompressed.js
+++ /dev/null
@@ -1,69 +0,0 @@
-define("dijit/form/HorizontalRule", [
- "dojo/_base/declare", // declare
- "../_Widget",
- "../_TemplatedMixin"
-], function(declare, _Widget, _TemplatedMixin){
-
-// module:
-// dijit/form/HorizontalRule
-
-
-return declare("dijit.form.HorizontalRule", [_Widget, _TemplatedMixin], {
- // summary:
- // Hash marks for `dijit/form/HorizontalSlider`
-
- templateString: '<div class="dijitRuleContainer dijitRuleContainerH"></div>',
-
- // count: Integer
- // Number of hash marks to generate
- count: 3,
-
- // container: String
- // For HorizontalSlider, this is either "topDecoration" or "bottomDecoration",
- // and indicates whether this rule goes above or below the slider.
- container: "containerNode",
-
- // ruleStyle: String
- // CSS style to apply to individual hash marks
- ruleStyle: "",
-
- _positionPrefix: '<div class="dijitRuleMark dijitRuleMarkH" style="left:',
- _positionSuffix: '%;',
- _suffix: '"></div>',
-
- _genHTML: function(pos){
- return this._positionPrefix + pos + this._positionSuffix + this.ruleStyle + this._suffix;
- },
-
- // _isHorizontal: [protected extension] Boolean
- // VerticalRule will override this...
- _isHorizontal: true,
-
- buildRendering: function(){
- this.inherited(arguments);
-
- var innerHTML;
- if(this.count == 1){
- innerHTML = this._genHTML(50, 0);
- }else{
- var i;
- var interval = 100 / (this.count-1);
- if(!this._isHorizontal || this.isLeftToRight()){
- innerHTML = this._genHTML(0, 0);
- for(i=1; i < this.count-1; i++){
- innerHTML += this._genHTML(interval*i, i);
- }
- innerHTML += this._genHTML(100, this.count-1);
- }else{
- innerHTML = this._genHTML(100, 0);
- for(i=1; i < this.count-1; i++){
- innerHTML += this._genHTML(100-interval*i, i);
- }
- innerHTML += this._genHTML(0, this.count-1);
- }
- }
- this.domNode.innerHTML = innerHTML;
- }
-});
-
-});
diff --git a/lib/dijit/form/HorizontalRuleLabels.js.uncompressed.js b/lib/dijit/form/HorizontalRuleLabels.js.uncompressed.js
deleted file mode 100644
index f8f418748..000000000
--- a/lib/dijit/form/HorizontalRuleLabels.js.uncompressed.js
+++ /dev/null
@@ -1,92 +0,0 @@
-define("dijit/form/HorizontalRuleLabels", [
- "dojo/_base/declare", // declare
- "dojo/number", // number.format
- "dojo/query", // query
- "./HorizontalRule"
-], function(declare, number, query, HorizontalRule){
-
-// module:
-// dijit/form/HorizontalRuleLabels
-
-return declare("dijit.form.HorizontalRuleLabels", HorizontalRule, {
- // summary:
- // Labels for `dijit/form/HorizontalSlider`
-
- templateString: '<div class="dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH"></div>',
-
- // labelStyle: String
- // CSS style to apply to individual text labels
- labelStyle: "",
-
- // labels: String[]?
- // Array of text labels to render - evenly spaced from left-to-right or bottom-to-top.
- // Alternately, minimum and maximum can be specified, to get numeric labels.
- labels: [],
-
- // numericMargin: Integer
- // Number of generated numeric labels that should be rendered as '' on the ends when labels[] are not specified
- numericMargin: 0,
-
- // numericMinimum: Integer
- // Leftmost label value for generated numeric labels when labels[] are not specified
- minimum: 0,
-
- // numericMaximum: Integer
- // Rightmost label value for generated numeric labels when labels[] are not specified
- maximum: 1,
-
- // constraints: Object
- // pattern, places, lang, et al (see dojo.number) for generated numeric labels when labels[] are not specified
- constraints: {pattern:"#%"},
-
- _positionPrefix: '<div class="dijitRuleLabelContainer dijitRuleLabelContainerH" style="left:',
- _labelPrefix: '"><div class="dijitRuleLabel dijitRuleLabelH">',
- _suffix: '</div></div>',
-
- _calcPosition: function(pos){
- // summary:
- // Returns the value to be used in HTML for the label as part of the left: attribute
- // tags:
- // protected extension
- return pos;
- },
-
- _genHTML: function(pos, ndx){
- return this._positionPrefix + this._calcPosition(pos) + this._positionSuffix + this.labelStyle + this._labelPrefix + this.labels[ndx] + this._suffix;
- },
-
- getLabels: function(){
- // summary:
- // Overridable function to return array of labels to use for this slider.
- // Can specify a getLabels() method instead of a labels[] array, or min/max attributes.
- // tags:
- // protected extension
-
- // if the labels array was not specified directly, then see if <li> children were
- var labels = this.labels;
- if(!labels.length && this.srcNodeRef){
- // for markup creation, labels are specified as child elements
- labels = query("> li", this.srcNodeRef).map(function(node){
- return String(node.innerHTML);
- });
- }
- // if the labels were not specified directly and not as <li> children, then calculate numeric labels
- if(!labels.length && this.count > 1){
- var start = this.minimum;
- var inc = (this.maximum - start) / (this.count-1);
- for(var i=0; i < this.count; i++){
- labels.push((i < this.numericMargin || i >= (this.count-this.numericMargin)) ? '' : number.format(start, this.constraints));
- start += inc;
- }
- }
- return labels;
- },
-
- postMixInProperties: function(){
- this.inherited(arguments);
- this.labels = this.getLabels();
- this.count = this.labels.length;
- }
-});
-
-});
diff --git a/lib/dijit/form/HorizontalSlider.js.uncompressed.js b/lib/dijit/form/HorizontalSlider.js.uncompressed.js
deleted file mode 100644
index 571ef835c..000000000
--- a/lib/dijit/form/HorizontalSlider.js.uncompressed.js
+++ /dev/null
@@ -1,349 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/HorizontalSlider.html':"<table class=\"dijit dijitReset dijitSlider dijitSliderH\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\trole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" data-dojo-attach-event=\"press:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"}});
-define("dijit/form/HorizontalSlider", [
- "dojo/_base/array", // array.forEach
- "dojo/_base/declare", // declare
- "dojo/dnd/move",
- "dojo/_base/event", // event.stop
- "dojo/_base/fx", // fx.animateProperty
- "dojo/dom-geometry", // domGeometry.position
- "dojo/dom-style", // domStyle.getComputedStyle
- "dojo/keys", // keys.DOWN_ARROW keys.END keys.HOME keys.LEFT_ARROW keys.PAGE_DOWN keys.PAGE_UP keys.RIGHT_ARROW keys.UP_ARROW
- "dojo/_base/lang", // lang.hitch
- "dojo/sniff", // has("ie") has("mozilla")
- "dojo/dnd/Moveable", // Moveable
- "dojo/dnd/Mover", // Mover Mover.prototype.destroy.apply
- "dojo/query", // query
- "dojo/mouse", // mouse.wheel
- "../registry", // registry.findWidgets
- "../focus", // focus.focus()
- "../typematic",
- "./Button",
- "./_FormValueWidget",
- "../_Container",
- "dojo/text!./templates/HorizontalSlider.html"
-], function(array, declare, move, event, fx, domGeometry, domStyle, keys, lang, has, Moveable, Mover, query, mouse,
- registry, focus, typematic, Button, _FormValueWidget, _Container, template){
-
-// module:
-// dijit/form/HorizontalSlider
-
-
-var _SliderMover = declare("dijit.form._SliderMover", Mover, {
- onMouseMove: function(e){
- var widget = this.widget;
- var abspos = widget._abspos;
- if(!abspos){
- abspos = widget._abspos = domGeometry.position(widget.sliderBarContainer, true);
- widget._setPixelValue_ = lang.hitch(widget, "_setPixelValue");
- widget._isReversed_ = widget._isReversed();
- }
- var pixelValue = e[widget._mousePixelCoord] - abspos[widget._startingPixelCoord];
- widget._setPixelValue_(widget._isReversed_ ? (abspos[widget._pixelCount]-pixelValue) : pixelValue, abspos[widget._pixelCount], false);
- },
-
- destroy: function(e){
- Mover.prototype.destroy.apply(this, arguments);
- var widget = this.widget;
- widget._abspos = null;
- widget._setValueAttr(widget.value, true);
- }
-});
-
-var HorizontalSlider = declare("dijit.form.HorizontalSlider", [_FormValueWidget, _Container], {
- // summary:
- // A form widget that allows one to select a value with a horizontally draggable handle
-
- templateString: template,
-
- // Overrides FormValueWidget.value to indicate numeric value
- value: 0,
-
- // showButtons: [const] Boolean
- // Show increment/decrement buttons at the ends of the slider?
- showButtons: true,
-
- // minimum: [const] Integer
- // The minimum value the slider can be set to.
- minimum: 0,
-
- // maximum: [const] Integer
- // The maximum value the slider can be set to.
- maximum: 100,
-
- // discreteValues: Integer
- // If specified, indicates that the slider handle has only 'discreteValues' possible positions,
- // and that after dragging the handle, it will snap to the nearest possible position.
- // Thus, the slider has only 'discreteValues' possible values.
- //
- // For example, if minimum=10, maxiumum=30, and discreteValues=3, then the slider handle has
- // three possible positions, representing values 10, 20, or 30.
- //
- // If discreteValues is not specified or if it's value is higher than the number of pixels
- // in the slider bar, then the slider handle can be moved freely, and the slider's value will be
- // computed/reported based on pixel position (in this case it will likely be fractional,
- // such as 123.456789).
- discreteValues: Infinity,
-
- // pageIncrement: Integer
- // If discreteValues is also specified, this indicates the amount of clicks (ie, snap positions)
- // that the slider handle is moved via pageup/pagedown keys.
- // If discreteValues is not specified, it indicates the number of pixels.
- pageIncrement: 2,
-
- // clickSelect: Boolean
- // If clicking the slider bar changes the value or not
- clickSelect: true,
-
- // slideDuration: Number
- // The time in ms to take to animate the slider handle from 0% to 100%,
- // when clicking the slider bar to make the handle move.
- slideDuration: registry.defaultDuration,
-
- // Map widget attributes to DOMNode attributes.
- _setIdAttr: "", // Override _FormWidget which sends id to focusNode
-
- baseClass: "dijitSlider",
-
- // Apply CSS classes to up/down arrows and handle per mouse state
- cssStateNodes: {
- incrementButton: "dijitSliderIncrementButton",
- decrementButton: "dijitSliderDecrementButton",
- focusNode: "dijitSliderThumb"
- },
-
- _mousePixelCoord: "pageX",
- _pixelCount: "w",
- _startingPixelCoord: "x",
- _handleOffsetCoord: "left",
- _progressPixelSize: "width",
-
- _onKeyUp: function(/*Event*/ e){
- if(this.disabled || this.readOnly || e.altKey || e.ctrlKey || e.metaKey){ return; }
- this._setValueAttr(this.value, true);
- },
-
- _onKeyPress: function(/*Event*/ e){
- if(this.disabled || this.readOnly || e.altKey || e.ctrlKey || e.metaKey){ return; }
- switch(e.charOrCode){
- case keys.HOME:
- this._setValueAttr(this.minimum, false);
- break;
- case keys.END:
- this._setValueAttr(this.maximum, false);
- break;
- // this._descending === false: if ascending vertical (min on top)
- // (this._descending || this.isLeftToRight()): if left-to-right horizontal or descending vertical
- case ((this._descending || this.isLeftToRight()) ? keys.RIGHT_ARROW : keys.LEFT_ARROW):
- case (this._descending === false ? keys.DOWN_ARROW : keys.UP_ARROW):
- case (this._descending === false ? keys.PAGE_DOWN : keys.PAGE_UP):
- this.increment(e);
- break;
- case ((this._descending || this.isLeftToRight()) ? keys.LEFT_ARROW : keys.RIGHT_ARROW):
- case (this._descending === false ? keys.UP_ARROW : keys.DOWN_ARROW):
- case (this._descending === false ? keys.PAGE_UP : keys.PAGE_DOWN):
- this.decrement(e);
- break;
- default:
- return;
- }
- event.stop(e);
- },
-
- _onHandleClick: function(e){
- if(this.disabled || this.readOnly){ return; }
- if(!has("ie")){
- // make sure you get focus when dragging the handle
- // (but don't do on IE because it causes a flicker on mouse up (due to blur then focus)
- focus.focus(this.sliderHandle);
- }
- event.stop(e);
- },
-
- _isReversed: function(){
- // summary:
- // Returns true if direction is from right to left
- // tags:
- // protected extension
- return !this.isLeftToRight();
- },
-
- _onBarClick: function(e){
- if(this.disabled || this.readOnly || !this.clickSelect){ return; }
- focus.focus(this.sliderHandle);
- event.stop(e);
- var abspos = domGeometry.position(this.sliderBarContainer, true);
- var pixelValue = e[this._mousePixelCoord] - abspos[this._startingPixelCoord];
- this._setPixelValue(this._isReversed() ? (abspos[this._pixelCount] - pixelValue) : pixelValue, abspos[this._pixelCount], true);
- this._movable.onMouseDown(e);
- },
-
- _setPixelValue: function(/*Number*/ pixelValue, /*Number*/ maxPixels, /*Boolean?*/ priorityChange){
- if(this.disabled || this.readOnly){ return; }
- var count = this.discreteValues;
- if(count <= 1 || count == Infinity){ count = maxPixels; }
- count--;
- var pixelsPerValue = maxPixels / count;
- var wholeIncrements = Math.round(pixelValue / pixelsPerValue);
- this._setValueAttr(Math.max(Math.min((this.maximum-this.minimum)*wholeIncrements/count + this.minimum, this.maximum), this.minimum), priorityChange);
- },
-
- _setValueAttr: function(/*Number*/ value, /*Boolean?*/ priorityChange){
- // summary:
- // Hook so set('value', value) works.
- this._set("value", value);
- this.valueNode.value = value;
- this.focusNode.setAttribute("aria-valuenow", value);
- this.inherited(arguments);
- var percent = (value - this.minimum) / (this.maximum - this.minimum);
- var progressBar = (this._descending === false) ? this.remainingBar : this.progressBar;
- var remainingBar = (this._descending === false) ? this.progressBar : this.remainingBar;
- if(this._inProgressAnim && this._inProgressAnim.status != "stopped"){
- this._inProgressAnim.stop(true);
- }
- if(priorityChange && this.slideDuration > 0 && progressBar.style[this._progressPixelSize]){
- // animate the slider
- var _this = this;
- var props = {};
- var start = parseFloat(progressBar.style[this._progressPixelSize]);
- var duration = this.slideDuration * (percent-start/100);
- if(duration == 0){ return; }
- if(duration < 0){ duration = 0 - duration; }
- props[this._progressPixelSize] = { start: start, end: percent*100, units:"%" };
- this._inProgressAnim = fx.animateProperty({ node: progressBar, duration: duration,
- onAnimate: function(v){
- remainingBar.style[_this._progressPixelSize] = (100 - parseFloat(v[_this._progressPixelSize])) + "%";
- },
- onEnd: function(){
- delete _this._inProgressAnim;
- },
- properties: props
- });
- this._inProgressAnim.play();
- }else{
- progressBar.style[this._progressPixelSize] = (percent*100) + "%";
- remainingBar.style[this._progressPixelSize] = ((1-percent)*100) + "%";
- }
- },
-
- _bumpValue: function(signedChange, /*Boolean?*/ priorityChange){
- if(this.disabled || this.readOnly){ return; }
- var s = domStyle.getComputedStyle(this.sliderBarContainer);
- var c = domGeometry.getContentBox(this.sliderBarContainer, s);
- var count = this.discreteValues;
- if(count <= 1 || count == Infinity){ count = c[this._pixelCount]; }
- count--;
- var value = (this.value - this.minimum) * count / (this.maximum - this.minimum) + signedChange;
- if(value < 0){ value = 0; }
- if(value > count){ value = count; }
- value = value * (this.maximum - this.minimum) / count + this.minimum;
- this._setValueAttr(value, priorityChange);
- },
-
- _onClkBumper: function(val){
- if(this.disabled || this.readOnly || !this.clickSelect){ return; }
- this._setValueAttr(val, true);
- },
-
- _onClkIncBumper: function(){
- this._onClkBumper(this._descending === false ? this.minimum : this.maximum);
- },
-
- _onClkDecBumper: function(){
- this._onClkBumper(this._descending === false ? this.maximum : this.minimum);
- },
-
- decrement: function(/*Event*/ e){
- // summary:
- // Decrement slider
- // tags:
- // private
- this._bumpValue(e.charOrCode == keys.PAGE_DOWN ? -this.pageIncrement : -1);
- },
-
- increment: function(/*Event*/ e){
- // summary:
- // Increment slider
- // tags:
- // private
- this._bumpValue(e.charOrCode == keys.PAGE_UP ? this.pageIncrement : 1);
- },
-
- _mouseWheeled: function(/*Event*/ evt){
- // summary:
- // Event handler for mousewheel where supported
- event.stop(evt);
- this._bumpValue(evt.wheelDelta < 0 ? -1 : 1, true); // negative scroll acts like a decrement
- },
-
- startup: function(){
- if(this._started){ return; }
-
- array.forEach(this.getChildren(), function(child){
- if(this[child.container] != this.containerNode){
- this[child.container].appendChild(child.domNode);
- }
- }, this);
-
- this.inherited(arguments);
- },
-
- _typematicCallback: function(/*Number*/ count, /*Object*/ button, /*Event*/ e){
- if(count == -1){
- this._setValueAttr(this.value, true);
- }else{
- this[(button == (this._descending? this.incrementButton : this.decrementButton)) ? "decrement" : "increment"](e);
- }
- },
-
- buildRendering: function(){
- this.inherited(arguments);
- if(this.showButtons){
- this.incrementButton.style.display="";
- this.decrementButton.style.display="";
- }
-
- // find any associated label element and add to slider focusnode.
- var label = query('label[for="'+this.id+'"]');
- if(label.length){
- if(!label[0].id){ label[0].id = this.id + "_label"; }
- this.focusNode.setAttribute("aria-labelledby", label[0].id);
- }
-
- this.focusNode.setAttribute("aria-valuemin", this.minimum);
- this.focusNode.setAttribute("aria-valuemax", this.maximum);
- },
-
- postCreate: function(){
- this.inherited(arguments);
-
- if(this.showButtons){
- this.own(
- typematic.addMouseListener(this.decrementButton, this, "_typematicCallback", 25, 500),
- typematic.addMouseListener(this.incrementButton, this, "_typematicCallback", 25, 500)
- );
- }
- this.connect(this.domNode, mouse.wheel, "_mouseWheeled");
-
- // define a custom constructor for a SliderMover that points back to me
- var mover = declare(_SliderMover, {
- widget: this
- });
- this._movable = new Moveable(this.sliderHandle, {mover: mover});
-
- this._layoutHackIE7();
- },
-
- destroy: function(){
- this._movable.destroy();
- if(this._inProgressAnim && this._inProgressAnim.status != "stopped"){
- this._inProgressAnim.stop(true);
- }
- this.inherited(arguments);
- }
-});
-
-HorizontalSlider._Mover = _SliderMover; // for monkey patching
-
-return HorizontalSlider;
-});
diff --git a/lib/dijit/form/MappedTextBox.js.uncompressed.js b/lib/dijit/form/MappedTextBox.js.uncompressed.js
deleted file mode 100644
index 1f9ed7509..000000000
--- a/lib/dijit/form/MappedTextBox.js.uncompressed.js
+++ /dev/null
@@ -1,81 +0,0 @@
-define("dijit/form/MappedTextBox", [
- "dojo/_base/declare", // declare
- "dojo/dom-construct", // domConstruct.place
- "./ValidationTextBox"
-], function(declare, domConstruct, ValidationTextBox){
-
- // module:
- // dijit/form/MappedTextBox
-
- return declare("dijit.form.MappedTextBox", ValidationTextBox, {
- // summary:
- // A dijit/form/ValidationTextBox subclass which provides a base class for widgets that have
- // a visible formatted display value, and a serializable
- // value in a hidden input field which is actually sent to the server.
- // description:
- // The visible display may
- // be locale-dependent and interactive. The value sent to the server is stored in a hidden
- // input field which uses the `name` attribute declared by the original widget. That value sent
- // to the server is defined by the dijit/form/MappedTextBox.serialize() method and is typically
- // locale-neutral.
- // tags:
- // protected
-
- postMixInProperties: function(){
- this.inherited(arguments);
-
- // we want the name attribute to go to the hidden <input>, not the displayed <input>,
- // so override _FormWidget.postMixInProperties() setting of nameAttrSetting
- this.nameAttrSetting = "";
- },
-
- // Override default behavior to assign name to focusNode
- _setNameAttr: null,
-
- serialize: function(val /*=====, options =====*/){
- // summary:
- // 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.
- // val: anything
- // options: Object?
- // tags:
- // protected extension
- return val.toString ? val.toString() : ""; // String
- },
-
- toString: function(){
- // summary:
- // Returns widget as a printable string using the widget's value
- // tags:
- // protected
- var val = this.filter(this.get('value')); // call filter in case value is nonstring and filter has been customized
- return val != null ? (typeof val == "string" ? val : this.serialize(val, this.constraints)) : ""; // String
- },
-
- validate: function(){
- // Overrides `dijit/form/TextBox.validate`
- this.valueNode.value = this.toString();
- return this.inherited(arguments);
- },
-
- buildRendering: function(){
- // Overrides `dijit/_TemplatedMixin/buildRendering`
-
- this.inherited(arguments);
-
- // Create a hidden <input> node with the serialized value used for submit
- // (as opposed to the displayed value).
- // Passing in name as markup rather than calling domConstruct.create() with an attrs argument
- // to make query(input[name=...]) work on IE. (see #8660)
- this.valueNode = domConstruct.place("<input type='hidden'" + (this.name ? ' name="' + this.name.replace(/"/g, "&quot;") + '"' : "") + "/>", this.textbox, "after");
- },
-
- reset: function(){
- // Overrides `dijit/form/ValidationTextBox.reset` to
- // reset the hidden textbox value to ''
- this.valueNode.value = '';
- this.inherited(arguments);
- }
- });
-});
diff --git a/lib/dijit/form/MultiSelect.js.uncompressed.js b/lib/dijit/form/MultiSelect.js.uncompressed.js
deleted file mode 100644
index 4686e5c75..000000000
--- a/lib/dijit/form/MultiSelect.js.uncompressed.js
+++ /dev/null
@@ -1,134 +0,0 @@
-define("dijit/form/MultiSelect", [
- "dojo/_base/array", // array.indexOf, array.map
- "dojo/_base/declare", // declare
- "dojo/dom-geometry", // domGeometry.setMarginBox
- "dojo/query", // query
- "./_FormValueWidget"
-], function(array, declare, domGeometry, query, _FormValueWidget){
-
-// module:
-// dijit/form/MultiSelect
-
-return declare("dijit.form.MultiSelect", _FormValueWidget, {
- // summary:
- // Widget version of a `<select multiple=true>` element,
- // for selecting multiple options.
-
- // size: Number
- // Number of elements to display on a page
- // NOTE: may be removed in version 2.0, since elements may have variable height;
- // set the size via style="..." or CSS class names instead.
- size: 7,
-
- templateString: "<select multiple='true' ${!nameAttrSetting} data-dojo-attach-point='containerNode,focusNode' data-dojo-attach-event='onchange: _onChange'></select>",
-
- addSelected: function(/*dijit/form/MultiSelect*/ select){
- // summary:
- // Move the selected nodes of a passed Select widget
- // instance to this Select widget.
- //
- // example:
- // | // move all the selected values from "bar" to "foo"
- // | dijit.byId("foo").addSelected(dijit.byId("bar"));
-
- select.getSelected().forEach(function(n){
- if(this.restoreOriginalText){
- n.text = this.enforceTextDirWithUcc(this.restoreOriginalText(n), n.text);
- }
- this.containerNode.appendChild(n);
- // scroll to bottom to see item
- // cannot use scrollIntoView since <option> tags don't support all attributes
- // does not work on IE due to a bug where <select> always shows scrollTop = 0
- this.domNode.scrollTop = this.domNode.offsetHeight; // overshoot will be ignored
- // scrolling the source select is trickier esp. on safari who forgets to change the scrollbar size
- var oldscroll = select.domNode.scrollTop;
- select.domNode.scrollTop = 0;
- select.domNode.scrollTop = oldscroll;
- },this);
- this._set('value', this.get('value'));
- },
-
- getSelected: function(){
- // summary:
- // Access the NodeList of the selected options directly
- return query("option",this.containerNode).filter(function(n){
- return n.selected; // Boolean
- }); // dojo/NodeList
- },
-
- _getValueAttr: function(){
- // summary:
- // Hook so get('value') works.
- // description:
- // Returns an array of the selected options' values.
-
- // Don't call getSelect.map() because it doesn't return a real array,
- // and that messes up dojo.toJson() calls like in the Form.html test
- return array.map(this.getSelected(), function(n){
- return n.value;
- });
- },
-
- multiple: true, // for Form
-
- _setValueAttr: function(/*Array*/ values, /*Boolean?*/ priorityChange){
- // summary:
- // Hook so set('value', values) works.
- // description:
- // Set the value(s) of this Select based on passed values
- query("option",this.containerNode).forEach(function(n){
- n.selected = (array.indexOf(values,n.value) != -1);
- });
- this.inherited(arguments);
- },
-
- invertSelection: function(/*Boolean?*/ onChange){
- // summary:
- // Invert the selection
- // onChange: Boolean
- // If false, onChange is not fired.
- var val = [];
- query("option",this.containerNode).forEach(function(n){
- if(!n.selected){ val.push(n.value); }
- });
- this._setValueAttr(val, !(onChange === false || onChange == null));
- },
-
- _onChange: function(/*Event*/){
- this._handleOnChange(this.get('value'), true);
- },
-
- // for layout widgets:
- resize: function(/*Object*/ size){
- if(size){
- domGeometry.setMarginBox(this.domNode, size);
- }
- },
-
- postCreate: function(){
- this._set('value', this.get('value'));
- this.inherited(arguments);
- },
-
- _setTextDirAttr: function(textDir){
- // to insure the code executed only when _BidiSupport loaded, and only
- // when there was a change in textDir
- if((this.textDir != textDir || !this._created) && this.enforceTextDirWithUcc){
- this._set("textDir", textDir);
-
- query("option",this.containerNode).forEach(function(option){
- // If the value wasn't defined explicitly, it the same object as
- // option.text. Since the option.text will be modified (by wrapping of UCC)
- // we want to save the original option.value for form submission.
- if(!this._created && option.value === option.text){
- option.value = option.text;
- }
- // apply the bidi support
- option.text = this.enforceTextDirWithUcc(option, option.originalText || option.text);
- },this);
- }
- }
-
-});
-
-});
diff --git a/lib/dijit/form/NumberSpinner.js.uncompressed.js b/lib/dijit/form/NumberSpinner.js.uncompressed.js
deleted file mode 100644
index 87b417f40..000000000
--- a/lib/dijit/form/NumberSpinner.js.uncompressed.js
+++ /dev/null
@@ -1,69 +0,0 @@
-define("dijit/form/NumberSpinner", [
- "dojo/_base/declare", // declare
- "dojo/_base/event", // event.stop
- "dojo/keys", // keys.END keys.HOME
- "./_Spinner",
- "./NumberTextBox"
-], function(declare, event, keys, _Spinner, NumberTextBox){
-
-// module:
-// dijit/form/NumberSpinner
-
-
-return declare("dijit.form.NumberSpinner", [_Spinner, NumberTextBox.Mixin], {
- // summary:
- // Extends NumberTextBox to add up/down arrows and pageup/pagedown for incremental change to the value
- //
- // description:
- // A `dijit/form/NumberTextBox` extension to provide keyboard accessible value selection
- // as well as icons for spinning direction. When using the keyboard, the typematic rules
- // apply, meaning holding the key will gradually increase or decrease the value and
- // accelerate.
- //
- // example:
- // | new NumberSpinner({ constraints:{ max:300, min:100 }}, "someInput");
-
- baseClass: "dijitTextBox dijitSpinner dijitNumberTextBox",
-
- adjust: function(/*Object*/ val, /*Number*/ delta){
- // summary:
- // Change Number val by the given amount
- // tags:
- // protected
-
- var tc = this.constraints,
- v = isNaN(val),
- gotMax = !isNaN(tc.max),
- gotMin = !isNaN(tc.min)
- ;
- if(v && delta != 0){ // blank or invalid value and they want to spin, so create defaults
- val = (delta > 0) ?
- gotMin ? tc.min : gotMax ? tc.max : 0 :
- gotMax ? this.constraints.max : gotMin ? tc.min : 0
- ;
- }
- var newval = val + delta;
- if(v || isNaN(newval)){ return val; }
- if(gotMax && (newval > tc.max)){
- newval = tc.max;
- }
- if(gotMin && (newval < tc.min)){
- newval = tc.min;
- }
- return newval;
- },
-
- _onKeyPress: function(e){
- if((e.charOrCode == keys.HOME || e.charOrCode == keys.END) && !(e.ctrlKey || e.altKey || e.metaKey)
- && typeof this.get('value') != 'undefined' /* gibberish, so HOME and END are default editing keys*/){
- var value = this.constraints[(e.charOrCode == keys.HOME ? "min" : "max")];
- if(typeof value == "number"){
- this._setValueAttr(value, false);
- }
- // eat home or end key whether we change the value or not
- event.stop(e);
- }
- }
-});
-
-});
diff --git a/lib/dijit/form/NumberTextBox.js.uncompressed.js b/lib/dijit/form/NumberTextBox.js.uncompressed.js
deleted file mode 100644
index 6a7b7a24f..000000000
--- a/lib/dijit/form/NumberTextBox.js.uncompressed.js
+++ /dev/null
@@ -1,275 +0,0 @@
-define("dijit/form/NumberTextBox", [
- "dojo/_base/declare", // declare
- "dojo/_base/lang", // lang.hitch lang.mixin
- "dojo/number", // number._realNumberRegexp number.format number.parse number.regexp
- "./RangeBoundTextBox"
-], function(declare, lang, number, RangeBoundTextBox){
-
- // module:
- // dijit/form/NumberTextBox
-
-
- var NumberTextBoxMixin = declare("dijit.form.NumberTextBoxMixin", null, {
- // summary:
- // A mixin for all number textboxes
- // tags:
- // protected
-
- // Override ValidationTextBox.pattern.... we use a reg-ex generating function rather
- // than a straight regexp to deal with locale (plus formatting options too?)
- pattern: number.regexp,
-
- /*=====
- // constraints: NumberTextBox.__Constraints
- // Despite the name, this parameter specifies both constraints on the input
- // (including minimum/maximum allowed values) as well as
- // formatting options like places (the number of digits to display after
- // the decimal point).
- constraints: {},
- ======*/
-
- // value: Number
- // The value of this NumberTextBox as a Javascript Number (i.e., not a String).
- // If the displayed value is blank, the value is NaN, and if the user types in
- // an gibberish value (like "hello world"), the value is undefined
- // (i.e. get('value') returns undefined).
- //
- // Symmetrically, set('value', NaN) will clear the displayed value,
- // whereas set('value', undefined) will have no effect.
- value: NaN,
-
- // editOptions: [protected] Object
- // Properties to mix into constraints when the value is being edited.
- // This is here because we edit the number in the format "12345", which is
- // different than the display value (ex: "12,345")
- editOptions: { pattern: '#.######' },
-
- /*=====
- _formatter: function(value, options){
- // summary:
- // _formatter() is called by format(). It's the base routine for formatting a number,
- // as a string, for example converting 12345 into "12,345".
- // value: Number
- // The number to be converted into a string.
- // options: number.__FormatOptions?
- // Formatting options
- // tags:
- // protected extension
-
- return "12345"; // String
- },
- =====*/
- _formatter: number.format,
-
- postMixInProperties: function(){
- this.inherited(arguments);
- this._set("type", "text"); // in case type="number" was specified which messes up parse/format
- },
-
- _setConstraintsAttr: function(/*Object*/ constraints){
- var places = typeof constraints.places == "number"? constraints.places : 0;
- if(places){ places++; } // decimal rounding errors take away another digit of precision
- if(typeof constraints.max != "number"){
- constraints.max = 9 * Math.pow(10, 15-places);
- }
- if(typeof constraints.min != "number"){
- constraints.min = -9 * Math.pow(10, 15-places);
- }
- this.inherited(arguments, [ constraints ]);
- if(this.focusNode && this.focusNode.value && !isNaN(this.value)){
- this.set('value', this.value);
- }
- },
-
- _onFocus: function(){
- if(this.disabled){ return; }
- var val = this.get('value');
- if(typeof val == "number" && !isNaN(val)){
- var formattedValue = this.format(val, this.constraints);
- if(formattedValue !== undefined){
- this.textbox.value = formattedValue;
- }
- }
- this.inherited(arguments);
- },
-
- format: function(/*Number*/ value, /*number.__FormatOptions*/ constraints){
- // summary:
- // Formats the value as a Number, according to constraints.
- // tags:
- // protected
-
- var formattedValue = String(value);
- if(typeof value != "number"){ return formattedValue; }
- if(isNaN(value)){ return ""; }
- // check for exponential notation that dojo/number.format() chokes on
- if(!("rangeCheck" in this && this.rangeCheck(value, constraints)) && constraints.exponent !== false && /\de[-+]?\d/i.test(formattedValue)){
- return formattedValue;
- }
- if(this.editOptions && this.focused){
- constraints = lang.mixin({}, constraints, this.editOptions);
- }
- return this._formatter(value, constraints);
- },
-
- /*=====
- _parser: function(value, constraints){
- // summary:
- // Parses the string value as a Number, according to constraints.
- // value: String
- // String representing a number
- // constraints: number.__ParseOptions
- // Formatting options
- // tags:
- // protected
-
- return 123.45; // Number
- },
- =====*/
- _parser: number.parse,
-
- parse: function(/*String*/ value, /*number.__FormatOptions*/ constraints){
- // summary:
- // Replaceable function to convert a formatted string to a number value
- // tags:
- // protected extension
-
- var v = this._parser(value, lang.mixin({}, constraints, (this.editOptions && this.focused) ? this.editOptions : {}));
- if(this.editOptions && this.focused && isNaN(v)){
- v = this._parser(value, constraints); // parse w/o editOptions: not technically needed but is nice for the user
- }
- return v;
- },
-
- _getDisplayedValueAttr: function(){
- var v = this.inherited(arguments);
- return isNaN(v) ? this.textbox.value : v;
- },
-
- filter: function(/*Number*/ value){
- // summary:
- // This is called with both the display value (string), and the actual value (a number).
- // When called with the actual value it does corrections so that '' etc. are represented as NaN.
- // Otherwise it dispatches to the superclass's filter() method.
- //
- // See `dijit/form/TextBox.filter()` for more details.
- return (value == null /* or undefined */ || value === '') ? NaN : this.inherited(arguments); // set('value', null||''||undefined) should fire onChange(NaN)
- },
-
- serialize: function(/*Number*/ value, /*Object?*/ options){
- // summary:
- // Convert value (a Number) into a canonical string (ie, how the number literal is written in javascript/java/C/etc.)
- // tags:
- // protected
- return (typeof value != "number" || isNaN(value)) ? '' : this.inherited(arguments);
- },
-
- _setBlurValue: function(){
- var val = lang.hitch(lang.mixin({}, this, { focused: true }), "get")('value'); // parse with editOptions
- this._setValueAttr(val, true);
- },
-
- _setValueAttr: function(/*Number*/ value, /*Boolean?*/ priorityChange, /*String?*/ formattedValue){
- // summary:
- // Hook so set('value', ...) works.
- if(value !== undefined && formattedValue === undefined){
- formattedValue = String(value);
- if(typeof value == "number"){
- if(isNaN(value)){ formattedValue = '' }
- // check for exponential notation that number.format chokes on
- else if(("rangeCheck" in this && this.rangeCheck(value, this.constraints)) || this.constraints.exponent === false || !/\de[-+]?\d/i.test(formattedValue)){
- formattedValue = undefined; // lets format compute a real string value
- }
- }else if(!value){ // 0 processed in if branch above, ''|null|undefined flows through here
- formattedValue = '';
- value = NaN;
- }else{ // non-numeric values
- value = undefined;
- }
- }
- this.inherited(arguments, [value, priorityChange, formattedValue]);
- },
-
- _getValueAttr: function(){
- // summary:
- // Hook so get('value') works.
- // Returns Number, NaN for '', or undefined for unparseable text
- var v = this.inherited(arguments); // returns Number for all values accepted by parse() or NaN for all other displayed values
-
- // If the displayed value of the textbox is gibberish (ex: "hello world"), this.inherited() above
- // returns NaN; this if() branch converts the return value to undefined.
- // Returning undefined prevents user text from being overwritten when doing _setValueAttr(_getValueAttr()).
- // A blank displayed value is still returned as NaN.
- if(isNaN(v) && this.textbox.value !== ''){
- if(this.constraints.exponent !== false && /\de[-+]?\d/i.test(this.textbox.value) && (new RegExp("^"+number._realNumberRegexp(lang.mixin({}, this.constraints))+"$").test(this.textbox.value))){ // check for exponential notation that parse() rejected (erroneously?)
- var n = Number(this.textbox.value);
- return isNaN(n) ? undefined : n; // return exponential Number or undefined for random text (may not be possible to do with the above RegExp check)
- }else{
- return undefined; // gibberish
- }
- }else{
- return v; // Number or NaN for ''
- }
- },
-
- isValid: function(/*Boolean*/ isFocused){
- // Overrides dijit/form/RangeBoundTextBox.isValid() to check that the editing-mode value is valid since
- // it may not be formatted according to the regExp validation rules
- if(!this.focused || this._isEmpty(this.textbox.value)){
- return this.inherited(arguments);
- }else{
- var v = this.get('value');
- if(!isNaN(v) && this.rangeCheck(v, this.constraints)){
- if(this.constraints.exponent !== false && /\de[-+]?\d/i.test(this.textbox.value)){ // exponential, parse doesn't like it
- return true; // valid exponential number in range
- }else{
- return this.inherited(arguments);
- }
- }else{
- return false;
- }
- }
- }
- });
-
- var NumberTextBox = declare("dijit.form.NumberTextBox", [RangeBoundTextBox, NumberTextBoxMixin], {
- // summary:
- // A TextBox for entering numbers, with formatting and range checking
- // description:
- // NumberTextBox is a textbox for entering and displaying numbers, supporting
- // the following main features:
- //
- // 1. Enforce minimum/maximum allowed values (as well as enforcing that the user types
- // a number rather than a random string)
- // 2. NLS support (altering roles of comma and dot as "thousands-separator" and "decimal-point"
- // depending on locale).
- // 3. Separate modes for editing the value and displaying it, specifically that
- // the thousands separator character (typically comma) disappears when editing
- // but reappears after the field is blurred.
- // 4. Formatting and constraints regarding the number of places (digits after the decimal point)
- // allowed on input, and number of places displayed when blurred (see `constraints` parameter).
-
- baseClass: "dijitTextBox dijitNumberTextBox"
- });
-
- NumberTextBox.Mixin = NumberTextBoxMixin; // for monkey patching
-
- /*=====
- NumberTextBox.__Constraints = declare([RangeBoundTextBox.__Constraints, number.__FormatOptions, number.__ParseOptions], {
- // summary:
- // Specifies both the rules on valid/invalid values (minimum, maximum,
- // number of required decimal places), and also formatting options for
- // displaying the value when the field is not focused.
- // example:
- // Minimum/maximum:
- // To specify a field between 0 and 120:
- // | {min:0,max:120}
- // To specify a field that must be an integer:
- // | {fractional:false}
- // To specify a field where 0 to 3 decimal places are allowed on input:
- // | {places:'0,3'}
- });
- =====*/
-
- return NumberTextBox;
-});
diff --git a/lib/dijit/form/RadioButton.js.uncompressed.js b/lib/dijit/form/RadioButton.js.uncompressed.js
deleted file mode 100644
index a7f723bd0..000000000
--- a/lib/dijit/form/RadioButton.js.uncompressed.js
+++ /dev/null
@@ -1,16 +0,0 @@
-define("dijit/form/RadioButton", [
- "dojo/_base/declare", // declare
- "./CheckBox",
- "./_RadioButtonMixin"
-], function(declare, CheckBox, _RadioButtonMixin){
-
- // module:
- // dijit/form/RadioButton
-
- return declare("dijit.form.RadioButton", [CheckBox, _RadioButtonMixin], {
- // summary:
- // Same as an HTML radio, but with fancy styling.
-
- baseClass: "dijitRadio"
- });
-});
diff --git a/lib/dijit/form/RangeBoundTextBox.js.uncompressed.js b/lib/dijit/form/RangeBoundTextBox.js.uncompressed.js
deleted file mode 100644
index f617df512..000000000
--- a/lib/dijit/form/RangeBoundTextBox.js.uncompressed.js
+++ /dev/null
@@ -1,110 +0,0 @@
-define("dijit/form/RangeBoundTextBox", [
- "dojo/_base/declare", // declare
- "dojo/i18n", // i18n.getLocalization
- "./MappedTextBox"
-], function(declare, i18n, MappedTextBox){
-
- // module:
- // dijit/form/RangeBoundTextBox
-
-
- var RangeBoundTextBox = declare("dijit.form.RangeBoundTextBox", MappedTextBox, {
- // summary:
- // Base class for textbox form widgets which defines a range of valid values.
-
- // rangeMessage: String
- // The message to display if value is out-of-range
- rangeMessage: "",
-
- /*=====
- // constraints: RangeBoundTextBox.__Constraints
- constraints: {},
- ======*/
-
- rangeCheck: function(/*Number*/ primitive, /*dijit/form/RangeBoundTextBox.__Constraints*/ constraints){
- // summary:
- // Overridable function used to validate the range of the numeric input value.
- // tags:
- // protected
- return ("min" in constraints? (this.compare(primitive,constraints.min) >= 0) : true) &&
- ("max" in constraints? (this.compare(primitive,constraints.max) <= 0) : true); // Boolean
- },
-
- isInRange: function(/*Boolean*/ /*===== isFocused =====*/){
- // summary:
- // Tests if the value is in the min/max range specified in constraints
- // tags:
- // protected
- return this.rangeCheck(this.get('value'), this.constraints);
- },
-
- _isDefinitelyOutOfRange: function(){
- // summary:
- // Returns true if the value is out of range and will remain
- // out of range even if the user types more characters
- var val = this.get('value');
- if(val == null){ return false; } // not yet valid enough to compare to
- var outOfRange = false;
- if("min" in this.constraints){
- var min = this.constraints.min;
- outOfRange = this.compare(val, ((typeof min == "number") && min >= 0 && val != 0) ? 0 : min) < 0;
- }
- if(!outOfRange && ("max" in this.constraints)){
- var max = this.constraints.max;
- outOfRange = this.compare(val, ((typeof max != "number") || max > 0) ? max : 0) > 0;
- }
- return outOfRange;
- },
-
- _isValidSubset: function(){
- // summary:
- // Overrides `dijit/form/ValidationTextBox._isValidSubset()`.
- // Returns true if the input is syntactically valid, and either within
- // range or could be made in range by more typing.
- return this.inherited(arguments) && !this._isDefinitelyOutOfRange();
- },
-
- isValid: function(/*Boolean*/ isFocused){
- // Overrides dijit/form/ValidationTextBox.isValid() to check that the value is also in range.
- return this.inherited(arguments) &&
- ((this._isEmpty(this.textbox.value) && !this.required) || this.isInRange(isFocused)); // Boolean
- },
-
- getErrorMessage: function(/*Boolean*/ isFocused){
- // Overrides dijit/form/ValidationTextBox.getErrorMessage() to print "out of range" message if appropriate
- var v = this.get('value');
- if(v != null /* and !undefined */ && v !== '' && (typeof v != "number" || !isNaN(v)) && !this.isInRange(isFocused)){ // don't check isInRange w/o a real value
- return this.rangeMessage; // String
- }
- return this.inherited(arguments);
- },
-
- postMixInProperties: function(){
- this.inherited(arguments);
- if(!this.rangeMessage){
- this.messages = i18n.getLocalization("dijit.form", "validate", this.lang);
- this.rangeMessage = this.messages.rangeMessage;
- }
- },
-
- applyTextDir: function(/*===== element, text =====*/){
- // summary:
- // The function overridden in the _BidiSupport module,
- // originally used for setting element.dir according to this.textDir.
- // In this case does nothing.
- // element: Object
- // text: String
- // tags:
- // protected.
- }
- });
- /*=====
- RangeBoundTextBox.__Constraints = declare(null, {
- // min: Number
- // Minimum signed value. Default is -Infinity
- // max: Number
- // Maximum signed value. Default is +Infinity
- });
- =====*/
- return RangeBoundTextBox;
-});
diff --git a/lib/dijit/form/Select.js.uncompressed.js b/lib/dijit/form/Select.js.uncompressed.js
deleted file mode 100644
index 43c45960a..000000000
--- a/lib/dijit/form/Select.js.uncompressed.js
+++ /dev/null
@@ -1,406 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/Select.html':"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdata-dojo-attach-point=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\trole=\"listbox\" aria-haspopup=\"true\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents\" role=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitInputField dijitButtonText\" data-dojo-attach-point=\"containerNode,_popupStateNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitValidationContainer\"\n\t\t\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t/></div\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} data-dojo-attach-point=\"valueNode\" value=\"${value}\" aria-hidden=\"true\"\n\t\t/></td\n\t\t><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer\"\n\t\t\tdata-dojo-attach-point=\"titleNode\" role=\"presentation\"\n\t\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t${_buttonInputDisabled}\n\t\t/></td\n\t></tr></tbody\n></table>\n"}});
-define("dijit/form/Select", [
- "dojo/_base/array", // array.forEach
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.set
- "dojo/dom-class", // domClass.add domClass.remove domClass.toggle
- "dojo/dom-geometry", // domGeometry.setMarginBox
- "dojo/_base/event", // event.stop
- "dojo/i18n", // i18n.getLocalization
- "dojo/_base/lang", // lang.hitch
- "dojo/sniff", // has("ie")
- "./_FormSelectWidget",
- "../_HasDropDown",
- "../Menu",
- "../MenuItem",
- "../MenuSeparator",
- "../Tooltip",
- "dojo/text!./templates/Select.html",
- "dojo/i18n!./nls/validate"
-], function(array, declare, domAttr, domClass, domGeometry, event, i18n, lang, has,
- _FormSelectWidget, _HasDropDown, Menu, MenuItem, MenuSeparator, Tooltip, template){
-
-// module:
-// dijit/form/Select
-
-
-var _SelectMenu = declare("dijit.form._SelectMenu", Menu, {
- // summary:
- // An internally-used menu for dropdown that allows us a vertical scrollbar
-
- // Override Menu.autoFocus setting so that opening a Select highlights the current value.
- autoFocus: true,
-
- buildRendering: function(){
- // summary:
- // Stub in our own changes, so that our domNode is not a table
- // otherwise, we won't respond correctly to heights/overflows
- this.inherited(arguments);
- var o = (this.menuTableNode = this.domNode);
- var n = (this.domNode = this.ownerDocument.createElement("div"));
- n.style.cssText = "overflow-x: hidden; overflow-y: scroll";
- if(o.parentNode){
- o.parentNode.replaceChild(n, o);
- }
- domClass.remove(o, "dijitMenuTable");
- n.className = o.className + " dijitSelectMenu";
- o.className = "dijitReset dijitMenuTable";
- o.setAttribute("role", "listbox");
- n.setAttribute("role", "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, "onselectstart", event.stop);
- },
-
-
- focus: function(){
- // summary:
- // Overridden so that the previously selected value will be focused instead of only the first item
- var found = false,
- val = this.parentWidget.value;
- if(lang.isArray(val)){
- val = val[val.length-1];
- }
- if(val){ // if focus selected
- array.forEach(this.parentWidget._getChildren(), function(child){
- if(child.option && (val === child.option.value)){ // find menu item widget with this value
- found = true;
- this.focusChild(child, false); // focus previous selection
- }
- }, this);
- }
- if(!found){
- this.inherited(arguments); // focus first item by default
- }
- },
-
- resize: function(/*Object*/ mb){
- // summary:
- // Overridden so that we are able to handle resizing our
- // internal widget. Note that this is not a "full" resize
- // implementation - it only works correctly if you pass it a
- // marginBox.
- //
- // mb: Object
- // The margin box to set this dropdown to.
- if(mb){
- domGeometry.setMarginBox(this.domNode, mb);
- if("w" in mb){
- // We've explicitly set the wrapper <div>'s width, so set <table> width to match.
- // 100% is safer than a pixel value because there may be a scroll bar with
- // browser/OS specific width.
- this.menuTableNode.style.width = "100%";
- }
- }
- }
-});
-
-var Select = declare("dijit.form.Select", [_FormSelectWidget, _HasDropDown], {
- // summary:
- // This is a "styleable" select box - it is basically a DropDownButton which
- // can take a `<select>` as its input.
-
- baseClass: "dijitSelect dijitValidationTextBox",
-
- templateString: template,
-
- _buttonInputDisabled: has("ie") ? "disabled" : "", // allows IE to disallow focus, but Firefox cannot be disabled for mousedown events
-
- // required: Boolean
- // Can be true or false, default is false.
- required: false,
-
- // state: [readonly] String
- // "Incomplete" if this select is required but unset (i.e. blank value), "" otherwise
- 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: "&#160;", // &nbsp;
-
- // _isLoaded: Boolean
- // Whether or not we have been loaded
- _isLoaded: false,
-
- // _childrenLoaded: Boolean
- // Whether or not our children have been loaded
- _childrenLoaded: false,
-
- _fillContent: function(){
- // 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 || 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 _SelectMenu({ id: this.id + "_menu", parentWidget: this });
- domClass.add(this.dropDown.domNode, this.baseClass.replace(/\s+|$/g, "Menu "));
- },
-
- _getMenuItemForOption: function(/*_FormSelectWidget.__SelectOption*/ option){
- // 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 && !option.label){
- // We are a separator (no label set for it)
- return new MenuSeparator({ownerDocument: this.ownerDocument});
- }else{
- // Just a regular menu option
- var click = lang.hitch(this, "_setValueAttr", option);
- var item = new MenuItem({
- option: option,
- label: option.label || this.emptyLabel,
- onClick: click,
- ownerDocument: this.ownerDocument,
- dir: this.dir,
- disabled: option.disabled || false
- });
- item.focusNode.setAttribute("role", "option");
- return item;
- }
- },
-
- _addOptionItem: function(/*_FormSelectWidget.__SelectOption*/ option){
- // summary:
- // For the given option, add an option to our dropdown.
- // If the option doesn't have a value, then a separator is added
- // in that place.
- if(this.dropDown){
- this.dropDown.addChild(this._getMenuItemForOption(option));
- }
- },
-
- _getChildren: function(){
- if(!this.dropDown){
- return [];
- }
- return this.dropDown.getChildren();
- },
-
- _loadChildren: function(/*Boolean*/ loadMenuItems){
- // summary:
- // Resets the menu and the length attribute of the button - and
- // ensures that the label is appropriately set.
- // loadMenuItems: Boolean
- // actually loads the child menu items - we only do this when we are
- // populating for showing the dropdown.
-
- if(loadMenuItems === true){
- // this.inherited destroys this.dropDown's child widgets (MenuItems).
- // Avoid this.dropDown (Menu widget) having a pointer to a destroyed widget (which will cause
- // issues later in _setSelected). (see #10296)
- if(this.dropDown){
- delete this.dropDown.focusedChild;
- }
- if(this.options.length){
- this.inherited(arguments);
- }else{
- // Drop down menu is blank but add one blank entry just so something appears on the screen
- // to let users know that they are no choices (mimicing native select behavior)
- array.forEach(this._getChildren(), function(child){ child.destroyRecursive(); });
- var item = new MenuItem({
- ownerDocument: this.ownerDocument,
- label: this.emptyLabel
- });
- this.dropDown.addChild(item);
- }
- }else{
- this._updateSelection();
- }
-
- this._isLoaded = false;
- this._childrenLoaded = true;
-
- if(!this._loadingStore){
- // Don't call this if we are loading - since we will handle it later
- this._setValueAttr(this.value, false);
- }
- },
-
- _refreshState: function(){
- if(this._started){
- this.validate(this.focused);
- }
- },
-
- startup: function(){
- this.inherited(arguments);
- this._refreshState(); // after all _set* methods have run
- },
-
- _setValueAttr: function(value){
- this.inherited(arguments);
- domAttr.set(this.valueNode, "value", this.get("value"));
- this._refreshState(); // to update this.state
- },
-
- _setDisabledAttr: function(/*Boolean*/ value){
- this.inherited(arguments);
- this._refreshState(); // to update this.state
- },
-
- _setRequiredAttr: function(/*Boolean*/ value){
- this._set("required", value);
- this.focusNode.setAttribute("aria-required", value);
- this._refreshState(); // to update this.state
- },
-
- _setOptionsAttr: function(/*Array*/ options){
- this._isLoaded = false;
- this._set('options', options);
- },
-
- _setDisplay: function(/*String*/ newDisplay){
- // summary:
- // sets the display for the given value (or values)
- var lbl = newDisplay || this.emptyLabel;
- this.containerNode.innerHTML = '<span role="option" class="dijitReset dijitInline ' + this.baseClass.replace(/\s+|$/g, "Label ")+'">' + lbl + '</span>';
- },
-
- validate: function(/*Boolean*/ isFocused){
- // summary:
- // Called by oninit, onblur, and onkeypress, and whenever required/disabled state changes
- // description:
- // Show missing or invalid messages if appropriate, and highlight textbox field.
- // Used when a select is initially set to no value and the user is required to
- // set the value.
-
- var isValid = this.disabled || this.isValid(isFocused);
- this._set("state", isValid ? "" : (this._hasBeenBlurred ? "Error" : "Incomplete"));
- this.focusNode.setAttribute("aria-invalid", isValid ? "false" : "true");
- var message = isValid ? "" : this._missingMsg;
- if(message && this.focused && this._hasBeenBlurred){
- Tooltip.show(message, this.domNode, this.tooltipPosition, !this.isLeftToRight());
- }else{
- Tooltip.hide(this.domNode);
- }
- this._set("message", message);
- return isValid;
- },
-
- isValid: function(/*Boolean*/ /*===== isFocused =====*/){
- // summary:
- // 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 || this.value === 0 || !(/^\s*$/.test(this.value || ""))); // handle value is null or undefined
- },
-
- reset: function(){
- // summary:
- // Overridden so that the state will be cleared.
- this.inherited(arguments);
- Tooltip.hide(this.domNode);
- this._refreshState(); // to update this.state
- },
-
- postMixInProperties: function(){
- // summary:
- // set the missing message
- this.inherited(arguments);
- this._missingMsg = i18n.getLocalization("dijit.form", "validate", this.lang).missingMessage;
- },
-
- postCreate: function(){
- // summary:
- // stop mousemove from selecting text on IE to be consistent with other browsers
-
- this.inherited(arguments);
-
- this.connect(this.domNode, "onselectstart", event.stop);
- this.domNode.setAttribute("aria-expanded", "false");
-
- if(has("ie") < 9){
- // IE INPUT tag fontFamily has to be set directly using STYLE
- // the defer gives IE a chance to render the TextBox and to deal with font inheritance
- this.defer(function(){
- try{
- var s = domStyle.getComputedStyle(this.domNode); // can throw an exception if widget is immediately destroyed
- if(s){
- var ff = s.fontFamily;
- if(ff){
- var inputs = this.domNode.getElementsByTagName("INPUT");
- if(inputs){
- for(var i=0; i < inputs.length; i++){
- inputs[i].style.fontFamily = ff;
- }
- }
- }
- }
- }catch(e){/*when used in a Dialog, and this is called before the dialog is
- shown, s.fontFamily would trigger "Invalid Argument" error.*/}
- });
- }
- },
-
- _setStyleAttr: function(/*String||Object*/ value){
- this.inherited(arguments);
- domClass.toggle(this.domNode, this.baseClass.replace(/\s+|$/g, "FixedWidth "), !!this.domNode.style.width);
- },
-
- isLoaded: function(){
- return this._isLoaded;
- },
-
- loadDropDown: function(/*Function*/ loadCallback){
- // summary:
- // populates the menu
- this._loadChildren(true);
- this._isLoaded = true;
- loadCallback();
- },
-
- closeDropDown: function(){
- // overriding _HasDropDown.closeDropDown()
- this.inherited(arguments);
-
- if(this.dropDown && this.dropDown.menuTableNode){
- // Erase possible width: 100% setting from _SelectMenu.resize().
- // Leaving it would interfere with the next openDropDown() call, which
- // queries the natural size of the drop down.
- this.dropDown.menuTableNode.style.width = "";
- }
- },
-
- destroy: function(preserveDom){
- if(this.dropDown && !this.dropDown._destroyed){
- this.dropDown.destroyRecursive(preserveDom);
- delete this.dropDown;
- }
- this.inherited(arguments);
- },
-
- _onFocus: function(){
- this.validate(true); // show tooltip if second focus of required tooltip, but no selection
- this.inherited(arguments);
- },
-
- _onBlur: function(){
- Tooltip.hide(this.domNode);
- this.inherited(arguments);
- this.validate(false);
- }
-});
-
-Select._Menu = _SelectMenu; // for monkey patching
-
-return Select;
-});
diff --git a/lib/dijit/form/SimpleTextarea.js.uncompressed.js b/lib/dijit/form/SimpleTextarea.js.uncompressed.js
deleted file mode 100644
index f3a9cf2e8..000000000
--- a/lib/dijit/form/SimpleTextarea.js.uncompressed.js
+++ /dev/null
@@ -1,92 +0,0 @@
-define("dijit/form/SimpleTextarea", [
- "dojo/_base/declare", // declare
- "dojo/dom-class", // domClass.add
- "dojo/sniff", // has("ie") has("opera")
- "./TextBox"
-], function(declare, domClass, has, TextBox){
-
-// module:
-// dijit/form/SimpleTextarea
-
-
-return declare("dijit.form.SimpleTextarea", TextBox, {
- // summary:
- // A simple textarea that degrades, and responds to
- // minimal LayoutContainer usage, and works with dijit/form/Form.
- // Doesn't automatically size according to input, like Textarea.
- //
- // example:
- // | <textarea data-dojo-type="dijit/form/SimpleTextarea" name="foo" value="bar" rows=30 cols=40></textarea>
- //
- // example:
- // | new SimpleTextarea({ rows:20, cols:30 }, "foo");
-
- baseClass: "dijitTextBox dijitTextArea",
-
- // rows: Number
- // The number of rows of text.
- rows: "3",
-
- // rows: Number
- // The number of characters per line.
- cols: "20",
-
- templateString: "<textarea ${!nameAttrSetting} data-dojo-attach-point='focusNode,containerNode,textbox' autocomplete='off'></textarea>",
-
- 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(has("ie") && this.cols){ // attribute selectors is not supported in IE6
- domClass.add(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
- if(value){
- value = value.replace(/\r/g,"");
- }
- return this.inherited(arguments);
- },
-
- _onInput: function(/*Event?*/ e){
- // Override TextBox._onInput() to enforce maxLength restriction
- if(this.maxLength){
- var maxLength = parseInt(this.maxLength);
- var value = this.textbox.value.replace(/\r/g,'');
- var overflow = value.length - maxLength;
- if(overflow > 0){
- var textarea = this.textbox;
- if(textarea.selectionStart){
- var pos = textarea.selectionStart;
- var cr = 0;
- if(has("opera")){
- cr = (this.textbox.value.substring(0,pos).match(/\r/g) || []).length;
- }
- this.textbox.value = value.substring(0,pos-overflow-cr)+value.substring(pos-cr);
- textarea.setSelectionRange(pos-overflow, pos-overflow);
- }else if(this.ownerDocument.selection){ //IE
- textarea.focus();
- var range = this.ownerDocument.selection.createRange();
- // delete overflow characters
- range.moveStart("character", -overflow);
- range.text = '';
- // show cursor
- range.select();
- }
- }
- }
- this.inherited(arguments);
- }
-});
-
-});
diff --git a/lib/dijit/form/Slider.js.uncompressed.js b/lib/dijit/form/Slider.js.uncompressed.js
deleted file mode 100644
index 1fb7bdfcf..000000000
--- a/lib/dijit/form/Slider.js.uncompressed.js
+++ /dev/null
@@ -1,23 +0,0 @@
-define("dijit/form/Slider", [
- "dojo/_base/kernel", // kernel.deprecated
- "./HorizontalSlider",
- "./VerticalSlider",
- "./HorizontalRule",
- "./VerticalRule",
- "./HorizontalRuleLabels",
- "./VerticalRuleLabels"
-], function(kernel){
-
- // module:
- // dijit/form/Slider
-
- kernel.deprecated("Call require() for HorizontalSlider / VerticalRule, explicitly rather than 'dijit.form.Slider' itself", "", "2.0");
-
- /*=====
- return {
- // summary:
- // Rollup of all the the Slider related widgets
- // For back-compat, remove for 2.0
- };
- =====*/
-});
diff --git a/lib/dijit/form/TextBox.js.uncompressed.js b/lib/dijit/form/TextBox.js.uncompressed.js
deleted file mode 100644
index 656a1ac14..000000000
--- a/lib/dijit/form/TextBox.js.uncompressed.js
+++ /dev/null
@@ -1,157 +0,0 @@
-require({cache:{
-'url: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\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});
-define("dijit/form/TextBox", [
- "dojo/_base/declare", // declare
- "dojo/dom-construct", // domConstruct.create
- "dojo/dom-style", // domStyle.getComputedStyle
- "dojo/_base/kernel", // kernel.deprecated
- "dojo/_base/lang", // lang.hitch
- "dojo/sniff", // has("ie") has("mozilla")
- "./_FormValueWidget",
- "./_TextBoxMixin",
- "dojo/text!./templates/TextBox.html",
- "../main" // to export dijit._setSelectionRange, remove in 2.0
-], function(declare, domConstruct, domStyle, kernel, lang, has,
- _FormValueWidget, _TextBoxMixin, template, dijit){
-
- // module:
- // dijit/form/TextBox
-
- var TextBox = declare("dijit.form.TextBox", [_FormValueWidget, _TextBoxMixin], {
- // summary:
- // A base class for textbox form inputs
-
- templateString: template,
- _singleNodeTemplate: '<input class="dijit dijitReset dijitLeft dijitInputField" data-dojo-attach-point="textbox,focusNode" autocomplete="off" type="${type}" ${!nameAttrSetting} />',
-
- _buttonInputDisabled: has("ie") ? "disabled" : "", // allows IE to disallow focus, but Firefox cannot be disabled for mousedown events
-
- baseClass: "dijitTextBox",
-
- postMixInProperties: function(){
- var type = this.type.toLowerCase();
- if(this.templateString && this.templateString.toLowerCase() == "input" || ((type == "hidden" || type == "file") && this.templateString == this.constructor.prototype.templateString)){
- this.templateString = this._singleNodeTemplate;
- }
- this.inherited(arguments);
- },
-
- postCreate: function(){
- this.inherited(arguments);
-
- if(has("ie") < 9){
- // IE INPUT tag fontFamily has to be set directly using STYLE
- // the defer gives IE a chance to render the TextBox and to deal with font inheritance
- this.defer(function(){
- try{
- var s = domStyle.getComputedStyle(this.domNode); // can throw an exception if widget is immediately destroyed
- if(s){
- var ff = s.fontFamily;
- if(ff){
- var inputs = this.domNode.getElementsByTagName("INPUT");
- if(inputs){
- for(var i=0; i < inputs.length; i++){
- inputs[i].style.fontFamily = ff;
- }
- }
- }
- }
- }catch(e){/*when used in a Dialog, and this is called before the dialog is
- shown, s.fontFamily would trigger "Invalid Argument" error.*/}
- });
- }
- },
-
- _onInput: function(e){
- this.inherited(arguments);
- if(this.intermediateChanges){ // _TextBoxMixin uses onInput
- // allow the key to post to the widget input box
- this.defer(function(){ this._handleOnChange(this.get('value'), false); });
- }
- },
-
- _setPlaceHolderAttr: function(v){
- this._set("placeHolder", v);
- if(!this._phspan){
- this._attachPoints.push('_phspan');
- // dijitInputField class gives placeHolder same padding as the input field
- // parent node already has dijitInputField class but it doesn't affect this <span>
- // since it's position: absolute.
- this._phspan = domConstruct.create('span',{ onmousedown:function(e){ e.preventDefault(); }, className:'dijitPlaceHolder dijitInputField'},this.textbox,'after');
- }
- this._phspan.innerHTML="";
- this._phspan.appendChild(this._phspan.ownerDocument.createTextNode(v));
- this._updatePlaceHolder();
- },
-
- _updatePlaceHolder: function(){
- if(this._phspan){
- this._phspan.style.display=(this.placeHolder&&!this.focused&&!this.textbox.value)?"":"none";
- }
- },
-
- _setValueAttr: function(value, /*Boolean?*/ priorityChange, /*String?*/ formattedValue){
- this.inherited(arguments);
- this._updatePlaceHolder();
- },
-
- getDisplayedValue: function(){
- // summary:
- // Deprecated. Use get('displayedValue') instead.
- // tags:
- // deprecated
- kernel.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use get('displayedValue') instead.", "", "2.0");
- return this.get('displayedValue');
- },
-
- setDisplayedValue: function(/*String*/ value){
- // summary:
- // Deprecated. Use set('displayedValue', ...) instead.
- // tags:
- // deprecated
- kernel.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.", "", "2.0");
- this.set('displayedValue', value);
- },
-
- _onBlur: function(e){
- if(this.disabled){ return; }
- this.inherited(arguments);
- this._updatePlaceHolder();
-
- if(has("mozilla")){
- if(this.selectOnClick){
- // clear selection so that the next mouse click doesn't reselect
- this.textbox.selectionStart = this.textbox.selectionEnd = undefined;
- }
- }
- },
-
- _onFocus: function(/*String*/ by){
- if(this.disabled || this.readOnly){ return; }
- this.inherited(arguments);
- this._updatePlaceHolder();
- }
- });
-
- if(has("ie")){
- TextBox.prototype._isTextSelected = function(){
- var range = this.ownerDocument.selection.createRange();
- var parent = range.parentElement();
- return parent == this.textbox && range.text.length > 0;
- };
-
- // Overrides definition of _setSelectionRange from _TextBoxMixin (TODO: move to _TextBoxMixin.js?)
- dijit._setSelectionRange = _TextBoxMixin._setSelectionRange = function(/*DomNode*/ element, /*Number?*/ start, /*Number?*/ stop){
- if(element.createTextRange){
- 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();
- }
- }
- }
-
- return TextBox;
-});
diff --git a/lib/dijit/form/Textarea.js.uncompressed.js b/lib/dijit/form/Textarea.js.uncompressed.js
deleted file mode 100644
index c3c738bdd..000000000
--- a/lib/dijit/form/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,42 +0,0 @@
-define("dijit/form/Textarea", [
- "dojo/_base/declare", // declare
- "dojo/dom-style", // domStyle.set
- "./_ExpandingTextAreaMixin",
- "./SimpleTextarea"
-], function(declare, domStyle, _ExpandingTextAreaMixin, SimpleTextarea){
-
-// module:
-// dijit/form/Textarea
-
-
-return declare("dijit.form.Textarea", [SimpleTextarea, _ExpandingTextAreaMixin], {
- // summary:
- // A textarea widget that adjusts it's height according to the amount of data.
- //
- // description:
- // A textarea that dynamically expands/contracts (changing it's height) as
- // the user types, to display all the text without requiring a scroll bar.
- //
- // Takes nearly all the parameters (name, value, etc.) that a vanilla textarea takes.
- // Rows is not supported since this widget adjusts the height.
- //
- // example:
- // | <textarea data-dojo-type="dijit/form/TextArea">...</textarea>
-
-
- // TODO: for 2.0, rename this to ExpandingTextArea, and rename SimpleTextarea to TextArea
-
- baseClass: "dijitTextBox dijitTextArea dijitExpandingTextArea",
-
- // Override SimpleTextArea.cols to default to width:100%, for backward compatibility
- cols: "",
-
- buildRendering: function(){
- this.inherited(arguments);
-
- // tweak textarea style to reduce browser differences
- domStyle.set(this.textbox, { overflowY: 'hidden', overflowX: 'auto', boxSizing: 'border-box', MsBoxSizing: 'border-box', WebkitBoxSizing: 'border-box', MozBoxSizing: 'border-box' });
- }
-});
-
-});
diff --git a/lib/dijit/form/TimeTextBox.js.uncompressed.js b/lib/dijit/form/TimeTextBox.js.uncompressed.js
deleted file mode 100644
index ba81e1acd..000000000
--- a/lib/dijit/form/TimeTextBox.js.uncompressed.js
+++ /dev/null
@@ -1,79 +0,0 @@
-define("dijit/form/TimeTextBox", [
- "dojo/_base/declare", // declare
- "dojo/keys", // keys.DOWN_ARROW keys.ENTER keys.ESCAPE keys.TAB keys.UP_ARROW
- "dojo/_base/lang", // lang.hitch
- "../_TimePicker",
- "./_DateTimeTextBox"
-], function(declare, keys, lang, _TimePicker, _DateTimeTextBox){
-
- // module:
- // dijit/form/TimeTextBox
-
-
- /*=====
- var __Constraints = declare([_DateTimeTextBox.__Constraints, _TimePicker.__Constraints], {
- });
- =====*/
-
- return declare("dijit.form.TimeTextBox", _DateTimeTextBox, {
- // summary:
- // A validating, serializable, range-bound time text box with a drop down time picker
-
- baseClass: "dijitTextBox dijitComboBox dijitTimeTextBox",
- popupClass: _TimePicker,
- _selector: "time",
-
-/*=====
- // constraints: __Constraints
- constraints:{},
-=====*/
-
- // value: Date
- // The value of this widget as a JavaScript Date object. Note that the date portion implies time zone and daylight savings rules.
- //
- // Example:
- // | new dijit/form/TimeTextBox({value: stamp.fromISOString("T12:59:59", new Date())})
- //
- // When passed to the parser in markup, must be specified according to locale-independent
- // `stamp.fromISOString` format.
- //
- // Example:
- // | <input data-dojo-type='dijit/form/TimeTextBox' value='T12:34:00'>
- value: new Date(""), // value.toString()="NaN"
- //FIXME: in markup, you have no control over daylight savings
-
- _onKey: function(evt){
- if(this.disabled || this.readOnly){ return; }
- this.inherited(arguments);
-
- // If the user has backspaced or typed some numbers, then filter the result list
- // by what they typed. Maybe there's a better way to detect this, like _handleOnChange()?
- switch(evt.keyCode){
- case keys.ENTER:
- case keys.TAB:
- case keys.ESCAPE:
- case keys.DOWN_ARROW:
- case keys.UP_ARROW:
- // these keys have special meaning
- break;
- default:
- // defer() because the keystroke hasn't yet appeared in the <input>,
- // so the get('displayedValue') call below won't give the result we want.
- this.defer(function(){
- // set this.filterString to the filter to apply to the drop down list;
- // it will be used in openDropDown()
- var val = this.get('displayedValue');
- this.filterString = (val && !this.parse(val, this.constraints)) ? val.toLowerCase() : "";
-
- // close the drop down and reopen it, in order to filter the items shown in the list
- // and also since the drop down may need to be repositioned if the number of list items has changed
- // and it's being displayed above the <input>
- if(this._opened){
- this.closeDropDown();
- }
- this.openDropDown();
- });
- }
- }
- });
-});
diff --git a/lib/dijit/form/ToggleButton.js.uncompressed.js b/lib/dijit/form/ToggleButton.js.uncompressed.js
deleted file mode 100644
index 5cffd4f78..000000000
--- a/lib/dijit/form/ToggleButton.js.uncompressed.js
+++ /dev/null
@@ -1,26 +0,0 @@
-define("dijit/form/ToggleButton", [
- "dojo/_base/declare", // declare
- "dojo/_base/kernel", // kernel.deprecated
- "./Button",
- "./_ToggleButtonMixin"
-], function(declare, kernel, Button, _ToggleButtonMixin){
-
- // module:
- // dijit/form/ToggleButton
-
-
- return declare("dijit.form.ToggleButton", [Button, _ToggleButtonMixin], {
- // summary:
- // A templated button widget that can be in two states (checked or not).
- // Can be base class for things like tabs or checkbox or radio buttons.
-
- baseClass: "dijitToggleButton",
-
- setChecked: function(/*Boolean*/ checked){
- // summary:
- // Deprecated. Use set('checked', true/false) instead.
- kernel.deprecated("setChecked("+checked+") is deprecated. Use set('checked',"+checked+") instead.", "", "2.0");
- this.set('checked', checked);
- }
- });
-});
diff --git a/lib/dijit/form/ValidationTextBox.js.uncompressed.js b/lib/dijit/form/ValidationTextBox.js.uncompressed.js
deleted file mode 100644
index b03b29ac2..000000000
--- a/lib/dijit/form/ValidationTextBox.js.uncompressed.js
+++ /dev/null
@@ -1,332 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/ValidationTextBox.html':"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" 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\" data-dojo-attach-point='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"}});
-define("dijit/form/ValidationTextBox", [
- "dojo/_base/declare", // declare
- "dojo/_base/kernel", // kernel.deprecated
- "dojo/i18n", // i18n.getLocalization
- "./TextBox",
- "../Tooltip",
- "dojo/text!./templates/ValidationTextBox.html",
- "dojo/i18n!./nls/validate"
-], function(declare, kernel, i18n, TextBox, Tooltip, template){
-
- // module:
- // dijit/form/ValidationTextBox
-
-
- /*=====
- var __Constraints = {
- // locale: String
- // locale used for validation, picks up value from this widget's lang attribute
- // _flags_: anything
- // various flags passed to pattern function
- };
- =====*/
-
- var ValidationTextBox;
- return ValidationTextBox = declare("dijit.form.ValidationTextBox", TextBox, {
- // summary:
- // Base class for textbox widgets with the ability to validate content of various types and provide user feedback.
-
- templateString: template,
-
- // required: Boolean
- // User is required to enter data into this field.
- required: false,
-
- // 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.
- //
- // Message disappears when user starts typing.
- promptMessage: "",
-
- // invalidMessage: String
- // The message to display if value is invalid.
- // The translated string value is read from the message file by default.
- // Set to "" to use the promptMessage instead.
- invalidMessage: "$_unset_$",
-
- // missingMessage: String
- // The message to display if value is empty and the field is required.
- // The translated string value is read from the message file by default.
- // 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: __Constraints
- // user-defined object needed to pass parameters to the validator functions
- constraints: {},
-
- // pattern: [extension protected] String|Function(constraints) returning a string.
- // This defines the regular expression used to validate the input.
- // Do not add leading ^ or $ characters since the widget adds these.
- // A function may be used to generate a valid pattern when dependent on constraints or other runtime factors.
- // set('pattern', String|Function).
- pattern: ".*",
-
- // regExp: Deprecated [extension protected] String. Use "pattern" instead.
- regExp: "",
-
- regExpGen: function(/*__Constraints*/ /*===== constraints =====*/){
- // summary:
- // Deprecated. Use set('pattern', Function) instead.
- },
-
- // state: [readonly] String
- // Shows current state (ie, validation result) of input (""=Normal, Incomplete, or Error)
- state: "",
-
- // tooltipPosition: String[]
- // See description of `dijit/Tooltip.defaultPosition` for details on this parameter.
- tooltipPosition: [],
-
- _deprecateRegExp: function(attr, value){
- if(value != ValidationTextBox.prototype[attr]){
- kernel.deprecated("ValidationTextBox id="+this.id+", set('" + attr + "', ...) is deprecated. Use set('pattern', ...) instead.", "", "2.0");
- this.set('pattern', value);
- }
- },
- _setRegExpGenAttr: function(/*Function*/ newFcn){
- this._deprecateRegExp("regExpGen", newFcn);
- this.regExpGen = this._getPatternAttr; // backward compat with this.regExpGen(this.constraints)
- },
- _setRegExpAttr: function(/*String*/ value){
- this._deprecateRegExp("regExp", value);
- },
-
- _setValueAttr: function(){
- // summary:
- // Hook so set('value', ...) works.
- this.inherited(arguments);
- this.validate(this.focused);
- },
-
- validator: function(/*anything*/ value, /*__Constraints*/ constraints){
- // summary:
- // Overridable function used to validate the text input against the regular expression.
- // tags:
- // protected
- return (new RegExp("^(?:" + this._getPatternAttr(constraints) + ")"+(this.required?"":"?")+"$")).test(value) &&
- (!this.required || !this._isEmpty(value)) &&
- (this._isEmpty(value) || this.parse(value, constraints) !== undefined); // Boolean
- },
-
- _isValidSubset: function(){
- // summary:
- // Returns true if the value is either already valid or could be made valid by appending characters.
- // This is used for validation while the user [may be] still typing.
- return this.textbox.value.search(this._partialre) == 0;
- },
-
- isValid: function(/*Boolean*/ /*===== isFocused =====*/){
- // summary:
- // Tests if value is valid.
- // Can override with your own routine in a subclass.
- // tags:
- // protected
- return this.validator(this.textbox.value, this.constraints);
- },
-
- _isEmpty: function(value){
- // summary:
- // Checks for whitespace
- return (this.trim ? /^\s*$/ : /^$/).test(value); // Boolean
- },
-
- getErrorMessage: function(/*Boolean*/ /*===== isFocused =====*/){
- // summary:
- // Return an error message to show if appropriate
- // tags:
- // protected
- var invalid = this.invalidMessage == "$_unset_$" ? this.messages.invalidMessage :
- !this.invalidMessage ? this.promptMessage : this.invalidMessage;
- var missing = this.missingMessage == "$_unset_$" ? this.messages.missingMessage :
- !this.missingMessage ? invalid : this.missingMessage;
- return (this.required && this._isEmpty(this.textbox.value)) ? missing : invalid; // String
- },
-
- getPromptMessage: function(/*Boolean*/ /*===== isFocused =====*/){
- // summary:
- // Return a hint message to show when widget is first focused
- // tags:
- // protected
- return this.promptMessage; // String
- },
-
- _maskValidSubsetError: true,
- validate: function(/*Boolean*/ isFocused){
- // summary:
- // Called by oninit, onblur, and onkeypress.
- // description:
- // Show missing or invalid messages if appropriate, and highlight textbox field.
- // tags:
- // protected
- var message = "";
- var isValid = this.disabled || this.isValid(isFocused);
- if(isValid){ this._maskValidSubsetError = true; }
- var isEmpty = this._isEmpty(this.textbox.value);
- var isValidSubset = !isValid && isFocused && this._isValidSubset();
- this._set("state", isValid ? "" : (((((!this._hasBeenBlurred || isFocused) && isEmpty) || isValidSubset) && (this._maskValidSubsetError || (isValidSubset && !this._hasBeenBlurred && isFocused))) ? "Incomplete" : "Error"));
- this.focusNode.setAttribute("aria-invalid", isValid ? "false" : "true");
-
- 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.set("message", message);
-
- return isValid;
- },
-
- displayMessage: function(/*String*/ message){
- // summary:
- // Overridable method to display validation errors/hints.
- // By default uses a tooltip.
- // tags:
- // extension
- if(message && this.focused){
- Tooltip.show(message, this.domNode, this.tooltipPosition, !this.isLeftToRight());
- }else{
- Tooltip.hide(this.domNode);
- }
- },
-
- _refreshState: function(){
- // Overrides TextBox._refreshState()
- if(this._created){
- this.validate(this.focused);
- }
- this.inherited(arguments);
- },
-
- //////////// INITIALIZATION METHODS ///////////////////////////////////////
-
- constructor: function(params /*===== , srcNodeRef =====*/){
- // summary:
- // Create the widget.
- // params: Object|null
- // Hash of initialization parameters for widget, including scalar values (like title, duration etc.)
- // and functions, typically callbacks like onClick.
- // The hash can contain any of the widget's properties, excluding read-only properties.
- // srcNodeRef: DOMNode|String?
- // If a srcNodeRef (DOM node) is specified, replace srcNodeRef with my generated DOM tree.
-
- this.constraints = {};
- this.baseClass += ' dijitValidationTextBox';
- },
-
- startup: function(){
- this.inherited(arguments);
- this._refreshState(); // after all _set* methods have run
- },
-
- _setConstraintsAttr: function(/*__Constraints*/ constraints){
- if(!constraints.locale && this.lang){
- constraints.locale = this.lang;
- }
- this._set("constraints", constraints);
- this._refreshState();
- },
-
- _setPatternAttr: function(/*String|Function*/ pattern){
- this._set("pattern", pattern); // don't set on INPUT to avoid native HTML5 validation
- },
-
- _getPatternAttr: function(/*__Constraints*/ constraints){
- // summary:
- // Hook to get the current regExp and to compute the partial validation RE.
- var p = this.pattern;
- var type = (typeof p).toLowerCase();
- if(type == "function"){
- p = this.pattern(constraints || this.constraints);
- }
- if(p != this._lastRegExp){
- var partialre = "";
- this._lastRegExp = p;
- // parse the regexp and produce a new regexp that matches valid subsets
- // if the regexp is .* then there's no use in matching subsets since everything is valid
- if(p != ".*"){
- p.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,
- function(re){
- switch(re.charAt(0)){
- case '{':
- case '+':
- case '?':
- case '*':
- case '^':
- case '$':
- case '|':
- case '(':
- partialre += re;
- break;
- case ")":
- partialre += "|$)";
- break;
- default:
- partialre += "(?:"+re+"|$)";
- break;
- }
- });
- }
- try{ // this is needed for now since the above regexp parsing needs more test verification
- "".search(partialre);
- }catch(e){ // should never be here unless the original RE is bad or the parsing is bad
- partialre = this.pattern;
- console.warn('RegExp error in ' + this.declaredClass + ': ' + this.pattern);
- } // should never be here unless the original RE is bad or the parsing is bad
- this._partialre = "^(?:" + partialre + ")$";
- }
- return p;
- },
-
- postMixInProperties: function(){
- this.inherited(arguments);
- this.messages = i18n.getLocalization("dijit.form", "validate", this.lang);
- this._setConstraintsAttr(this.constraints); // this needs to happen now (and later) due to codependency on _set*Attr calls attachPoints
- },
-
- _setDisabledAttr: function(/*Boolean*/ value){
- this.inherited(arguments); // call FormValueWidget._setDisabledAttr()
- this._refreshState();
- },
-
- _setRequiredAttr: function(/*Boolean*/ value){
- this._set("required", value);
- this.focusNode.setAttribute("aria-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
- this._maskValidSubsetError = true;
- this.inherited(arguments);
- },
-
- _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);
- }
- });
-});
diff --git a/lib/dijit/form/VerticalRule.js.uncompressed.js b/lib/dijit/form/VerticalRule.js.uncompressed.js
deleted file mode 100644
index c7203286b..000000000
--- a/lib/dijit/form/VerticalRule.js.uncompressed.js
+++ /dev/null
@@ -1,28 +0,0 @@
-define("dijit/form/VerticalRule", [
- "dojo/_base/declare", // declare
- "./HorizontalRule"
-], function(declare, HorizontalRule){
-
- // module:
- // dijit/form/VerticalRule
-
- return declare("dijit.form.VerticalRule", HorizontalRule, {
- // summary:
- // Hash marks for the `dijit/form/VerticalSlider`
-
- templateString: '<div class="dijitRuleContainer dijitRuleContainerV"></div>',
- _positionPrefix: '<div class="dijitRuleMark dijitRuleMarkV" style="top:',
-
- /*=====
- // container: String
- // This is either "leftDecoration" or "rightDecoration",
- // to indicate whether this rule goes to the left or to the right of the slider.
- // Note that on RTL system, "leftDecoration" would actually go to the right, and vice-versa.
- container: "",
- =====*/
-
- // Overrides HorizontalRule._isHorizontal
- _isHorizontal: false
-
- });
-});
diff --git a/lib/dijit/form/VerticalRuleLabels.js.uncompressed.js b/lib/dijit/form/VerticalRuleLabels.js.uncompressed.js
deleted file mode 100644
index c5a1839cb..000000000
--- a/lib/dijit/form/VerticalRuleLabels.js.uncompressed.js
+++ /dev/null
@@ -1,26 +0,0 @@
-define("dijit/form/VerticalRuleLabels", [
- "dojo/_base/declare", // declare
- "./HorizontalRuleLabels"
-], function(declare, HorizontalRuleLabels){
-
- // module:
- // dijit/form/VerticalRuleLabels
-
- return declare("dijit.form.VerticalRuleLabels", HorizontalRuleLabels, {
- // summary:
- // Labels for the `dijit/form/VerticalSlider`
-
- templateString: '<div class="dijitRuleContainer dijitRuleContainerV dijitRuleLabelsContainer dijitRuleLabelsContainerV"></div>',
-
- _positionPrefix: '<div class="dijitRuleLabelContainer dijitRuleLabelContainerV" style="top:',
- _labelPrefix: '"><span class="dijitRuleLabel dijitRuleLabelV">',
-
- _calcPosition: function(pos){
- // Overrides HorizontalRuleLabel._calcPosition()
- return 100-pos;
- },
-
- // needed to prevent labels from being reversed in RTL mode
- _isHorizontal: false
- });
-});
diff --git a/lib/dijit/form/VerticalSlider.js.uncompressed.js b/lib/dijit/form/VerticalSlider.js.uncompressed.js
deleted file mode 100644
index 297d50fbb..000000000
--- a/lib/dijit/form/VerticalSlider.js.uncompressed.js
+++ /dev/null
@@ -1,35 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/VerticalSlider.html':"<table class=\"dijit dijitReset dijitSlider dijitSliderV\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\trole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td data-dojo-attach-point=\"leftDecoration\" class=\"dijitReset dijitInline dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\"></td\n\t\t><td class=\"dijitReset dijitSliderDecorationC\" style=\"height:100%;\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center class=\"dijitReset dijitSliderBarContainerV\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" data-dojo-attach-event=\"press:_onBarClick\"><!--#5629--></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableV\" style=\"vertical-align:top;\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleV\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td data-dojo-attach-point=\"containerNode,rightDecoration\" class=\"dijitReset dijitInline dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n"}});
-define("dijit/form/VerticalSlider", [
- "dojo/_base/declare", // declare
- "./HorizontalSlider",
- "dojo/text!./templates/VerticalSlider.html"
-], function(declare, HorizontalSlider, template){
-
- // module:
- // dijit/form/VerticalSlider
-
- return declare("dijit.form.VerticalSlider", HorizontalSlider, {
- // summary:
- // A form widget that allows one to select a value with a vertically draggable handle
-
- templateString: template,
- _mousePixelCoord: "pageY",
- _pixelCount: "h",
- _startingPixelCoord: "y",
- _handleOffsetCoord: "top",
- _progressPixelSize: "height",
-
- // _descending: Boolean
- // Specifies if the slider values go from high-on-top (true), or low-on-top (false)
- // TODO: expose this in 1.2 - the css progress/remaining bar classes need to be reversed
- _descending: true,
-
- _isReversed: function(){
- // summary:
- // Overrides HorizontalSlider._isReversed.
- // Indicates if values are high on top (with low numbers on the bottom).
- return this._descending;
- }
- });
-});
diff --git a/lib/dijit/form/_AutoCompleterMixin.js.uncompressed.js b/lib/dijit/form/_AutoCompleterMixin.js.uncompressed.js
deleted file mode 100644
index edbc137a2..000000000
--- a/lib/dijit/form/_AutoCompleterMixin.js.uncompressed.js
+++ /dev/null
@@ -1,581 +0,0 @@
-define("dijit/form/_AutoCompleterMixin", [
- "dojo/data/util/filter", // patternToRegExp
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.get
- "dojo/_base/event", // event.stop
- "dojo/keys",
- "dojo/_base/lang", // lang.clone lang.hitch
- "dojo/query", // query
- "dojo/regexp", // regexp.escapeString
- "dojo/sniff", // has("ie")
- "dojo/string", // string.substitute
- "./DataList",
- "../registry", // registry.byId
- "./_TextBoxMixin", // defines _TextBoxMixin.selectInputText
- "./_SearchMixin"
-], function(filter, declare, domAttr, event, keys, lang, query, regexp, has, string,
- DataList, registry, _TextBoxMixin, SearchMixin){
-
- // module:
- // dijit/form/_AutoCompleterMixin
-
- return declare("dijit.form._AutoCompleterMixin", SearchMixin, {
- // summary:
- // A mixin that implements the base functionality for `dijit/form/ComboBox`/`dijit/form/FilteringSelect`
- // description:
- // All widgets that mix in dijit/form/_AutoCompleterMixin must extend `dijit/form/_FormValueWidget`.
- // tags:
- // protected
-
- // item: Object
- // This is the item returned by the dojo/store/api/Store implementation that
- // provides the data for this ComboBox, it's the currently selected item.
- item: null,
-
- // autoComplete: Boolean
- // If user types in a partial string, and then tab out of the `<input>` box,
- // automatically copy the first entry displayed in the drop down list to
- // the `<input>` field
- autoComplete: true,
-
- // highlightMatch: String
- // One of: "first", "all" or "none".
- //
- // If the ComboBox/FilteringSelect opens with the search results and the searched
- // string can be found, it will be highlighted. If set to "all"
- // then will probably want to change `queryExpr` parameter to '*${0}*'
- //
- // Highlighting is only performed when `labelType` is "text", so as to not
- // interfere with any HTML markup an HTML label might contain.
- highlightMatch: "first",
-
- // labelAttr: String?
- // The entries in the drop down list come from this attribute in the
- // dojo.data items.
- // If not specified, the searchAttr attribute is used instead.
- labelAttr: "",
-
- // labelType: String
- // Specifies how to interpret the labelAttr in the data store items.
- // Can be "html" or "text".
- labelType: "text",
-
- // 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;
- if(typeof(element.selectionStart) == "number"){
- // FIXME: this is totally borked on Moz < 1.3. Any recourse?
- pos = element.selectionStart;
- }else if(has("ie")){
- // in the case of a mouse click in a popup being handled,
- // then the win.doc.selection is not the textarea, but the popup
- // var r = win.doc.selection.createRange();
- // hack to get IE 6 to play nice. What a POS browser.
- var tr = element.ownerDocument.selection.createRange().duplicate();
- var ntr = element.createTextRange();
- tr.move("character",0);
- ntr.move("character",0);
- try{
- // 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);
- pos = String(ntr.text).replace(/\r/g,"").length;
- }catch(e){
- // If focus has shifted, 0 is fine for caret pos.
- }
- }
- return pos;
- },
-
- _setCaretPos: function(/*DomNode*/ element, /*Number*/ location){
- location = parseInt(location);
- _TextBoxMixin.selectInputText(element, location, location);
- },
-
- _setDisabledAttr: function(/*Boolean*/ value){
- // Additional code to set disabled state of ComboBox node.
- // Overrides _FormValueWidget._setDisabledAttr() or ValidationTextBox._setDisabledAttr().
- this.inherited(arguments);
- this.domNode.setAttribute("aria-disabled", value ? "true" : "false");
- },
-
- _onKey: function(/*Event*/ evt){
- // summary:
- // Handles keyboard events
-
- if(evt.charCode >= 32){ return; } // alphanumeric reserved for searching
-
- var key = evt.charCode || evt.keyCode;
-
- // except for cutting/pasting case - ctrl + x/v
- if(key == keys.ALT || key == keys.CTRL || key == keys.META || key == keys.SHIFT){
- return; // throw out spurious events
- }
-
- var pw = this.dropDown;
- var highlighted = null;
- this._abortQuery();
-
- // _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(evt.altKey || evt.ctrlKey || evt.metaKey){ return; } // don't process keys with modifiers - but we want shift+TAB
-
- if(this._opened){
- highlighted = pw.getHighlightedOption();
- }
- switch(key){
- case keys.PAGE_DOWN:
- case keys.DOWN_ARROW:
- case keys.PAGE_UP:
- case keys.UP_ARROW:
- // Keystroke caused ComboBox_menu to move to a different item.
- // Copy new item to <input> box.
- if(this._opened){
- this._announceOption(highlighted);
- }
- event.stop(evt);
- break;
-
- case keys.ENTER:
- // prevent submitting form if user presses enter. Also
- // prevent accepting the value if either Next or Previous
- // are selected
- if(highlighted){
- // only stop event on prev/next
- if(highlighted == pw.nextButton){
- this._nextSearch(1);
- event.stop(evt); // prevent submit
- break;
- }else if(highlighted == pw.previousButton){
- this._nextSearch(-1);
- event.stop(evt); // prevent submit
- break;
- }
- event.stop(evt); // prevent submit if ENTER was to choose an item
- }else{
- // Update 'value' (ex: KY) according to currently displayed text
- this._setBlurValue(); // set value if needed
- this._setCaretPos(this.focusNode, this.focusNode.value.length); // move cursor to end and cancel highlighting
- }
- // fall through
-
- case keys.TAB:
- var newvalue = this.get('displayedValue');
- // if the user had More Choices selected fall into the
- // _onBlur handler
- if(pw && (
- newvalue == pw._messages["previousMessage"] ||
- newvalue == pw._messages["nextMessage"])
- ){
- break;
- }
- if(highlighted){
- this._selectOption(highlighted);
- }
- // fall through
-
- case keys.ESCAPE:
- if(this._opened){
- this._lastQuery = null; // in case results come back later
- this.closeDropDown();
- }
- break;
- }
- },
-
- _autoCompleteText: function(/*String*/ text){
- // summary:
- // 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 textbox would be changed to
- // "California" and "ifornia" would be highlighted.
-
- var fn = this.focusNode;
-
- // IE7: clear selection so next highlight works all the time
- _TextBoxMixin.selectInputText(fn, fn.value.length);
- // does text autoComplete the value in the textbox?
- var caseFilter = this.ignoreCase? 'toLowerCase' : 'substr';
- if(text[caseFilter](0).indexOf(this.focusNode.value[caseFilter](0)) == 0){
- var cpos = this.autoComplete ? this._getCaretPos(fn) : fn.value.length;
- // only try to extend if we added the last character at the end of the input
- if((cpos+1) > fn.value.length){
- // only add to input node as we would overwrite Capitalisation of chars
- // actually, that is ok
- fn.value = text;//.substr(cpos);
- // visually highlight the autocompleted characters
- _TextBoxMixin.selectInputText(fn, cpos);
- }
- }else{
- // text does not autoComplete; replace the whole value and highlight
- fn.value = text;
- _TextBoxMixin.selectInputText(fn);
- }
- },
-
- _openResultList: function(/*Object*/ results, /*Object*/ query, /*Object*/ options){
- // 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
- var wasSelected = this.dropDown.getHighlightedOption();
- this.dropDown.clearResultList();
- if(!results.length && options.start == 0){ // if no results and not just the previous choices button
- this.closeDropDown();
- return;
- }
- this._nextSearch = this.dropDown.onPage = lang.hitch(this, function(direction){
- results.nextPage(direction !== -1);
- this.focus();
- });
-
- // 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
- // textbox would be changed to "California" and "ifornia" would be
- // highlighted.
-
- this.dropDown.createOptions(
- results,
- options,
- lang.hitch(this, "_getMenuLabelFromItem")
- );
-
- // show our list (only if we have content, else nothing)
- this._showResultList();
-
- // #4091:
- // tell the screen reader that the paging callback finished by
- // shouting the next choice
- if("direction" in options){
- if(options.direction){
- this.dropDown.highlightFirstOption();
- }else if(!options.direction){
- this.dropDown.highlightLastOption();
- }
- 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
- // if they are just previewing the options available.
- && !/^[*]+$/.test(query[this.searchAttr].toString())){
- this._announceOption(this.dropDown.containerNode.firstChild.nextSibling); // 1st real item
- }
- },
-
- _showResultList: function(){
- // 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);
- this.openDropDown();
- this.domNode.setAttribute("aria-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.
- this._startSearchAll();
- },
-
- isLoaded: function(){
- // signal to _HasDropDown that it needs to call loadDropDown() to load the
- // drop down asynchronously before displaying it
- return false;
- },
-
- 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._opened){
- this.inherited(arguments);
- this.domNode.setAttribute("aria-expanded", "false");
- this.focusNode.removeAttribute("aria-activedescendant");
- }
- },
-
- _setBlurValue: function(){
- // if the user clicks away from the textbox OR tabs away, set the
- // value to the textbox value
- // #4617:
- // if value is now more choices or previous choices, revert
- // the value
- var newvalue = this.get('displayedValue');
- var pw = this.dropDown;
- if(pw && (
- newvalue == pw._messages["previousMessage"] ||
- newvalue == pw._messages["nextMessage"]
- )
- ){
- this._setValueAttr(this._lastValueReported, true);
- }else if(typeof this.item == "undefined"){
- // Update 'value' (ex: KY) according to currently displayed text
- this.item = null;
- this.set('displayedValue', newvalue);
- }else{
- if(this.value != this._lastValueReported){
- this._handleOnChange(this.value, true);
- }
- this._refreshState();
- }
- },
-
- _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.
- // description:
- // Users shouldn't call this function; they should be calling
- // set('item', value)
- // tags:
- // private
- var value = '';
- if(item){
- if(!displayedValue){
- displayedValue = this.store._oldAPI ? // remove getValue() for 2.0 (old dojo.data API)
- this.store.getValue(item, this.searchAttr) : item[this.searchAttr];
- }
- value = this._getValueField() != this.searchAttr ? this.store.getIdentity(item) : displayedValue;
- }
- this.set('value', value, priorityChange, displayedValue, item);
- },
-
- _announceOption: function(/*Node*/ node){
- // summary:
- // a11y code that puts the highlighted option in the textbox.
- // This way screen readers will know what is happening in the
- // menu.
-
- if(!node){
- return;
- }
- // pull the text value from the item attached to the DOM node
- var newValue;
- if(node == this.dropDown.nextButton ||
- node == this.dropDown.previousButton){
- newValue = node.innerHTML;
- this.item = undefined;
- this.value = '';
- }else{
- var item = this.dropDown.items[node.getAttribute("item")];
- newValue = (this.store._oldAPI ? // remove getValue() for 2.0 (old dojo.data API)
- this.store.getValue(item, this.searchAttr) : item[this.searchAttr]).toString();
- this.set('item', item, false, newValue);
- }
- // get the text that the user manually entered (cut off autocompleted text)
- this.focusNode.value = this.focusNode.value.substring(0, this._lastInput.length);
- // set up ARIA activedescendant
- this.focusNode.setAttribute("aria-activedescendant", domAttr.get(node, "id"));
- // autocomplete the rest of the option to announce change
- this._autoCompleteText(newValue);
- },
-
- _selectOption: function(/*DomNode*/ target){
- // summary:
- // Menu callback function, called when an item in the menu is selected.
- this.closeDropDown();
- if(target){
- this._announceOption(target);
- }
- this._setCaretPos(this.focusNode, this.focusNode.value.length);
- this._handleOnChange(this.value, true);
- },
-
- _startSearchAll: function(){
- this._startSearch('');
- },
-
- _startSearchFromInput: function(){
- this.item = undefined; // undefined means item needs to be set
- this.inherited(arguments);
- },
-
- _startSearch: function(/*String*/ key){
- // 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 = lang.isString(this.dropDownClass) ?
- lang.getObject(this.dropDownClass, false) : this.dropDownClass;
- this.dropDown = new dropDownConstructor({
- onChange: lang.hitch(this, this._selectOption),
- id: popupId,
- dir: this.dir,
- textDir: this.textDir
- });
- this.focusNode.removeAttribute("aria-activedescendant");
- this.textbox.setAttribute("aria-owns",popupId); // associate popup with textbox
- }
- this._lastInput = key; // Store exactly what was entered by the user.
- this.inherited(arguments);
- },
-
- _getValueField: function(){
- // 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;
- },
-
- //////////// INITIALIZATION METHODS ///////////////////////////////////////
-
- postMixInProperties: function(){
- this.inherited(arguments);
- if(!this.store){
- var srcNodeRef = this.srcNodeRef;
- // if user didn't specify store, then assume there are option tags
- this.store = new DataList({}, srcNodeRef);
-
- // if there is no value set and there is an option list, set
- // the value to the first value to be consistent with native Select
- // Firefox and Safari set value
- // IE6 and Opera set selectedIndex, which is automatically set
- // 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.item = this.store.fetchSelectedItem());
- if(item){
- var valueField = this._getValueField();
- // remove getValue() for 2.0 (old dojo.data API)
- this.value = this.store._oldAPI ? this.store.getValue(item, valueField) : item[valueField];
- }
- }
- }
- },
-
- postCreate: function(){
- // summary:
- // Subclasses must call this method from their postCreate() methods
- // tags:
- // protected
-
- // find any associated label element and add to ComboBox node.
- var label=query('label[for="'+this.id+'"]');
- if(label.length){
- if(!label[0].id){ label[0].id = this.id + "_label"; }
- this.domNode.setAttribute("aria-labelledby", label[0].id);
-
- }
- this.inherited(arguments);
- this.connect(this, "onSearch", "_openResultList");
- },
-
- _getMenuLabelFromItem: function(/*Item*/ item){
- 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._lastInput);
- labelType = "html";
- }
- return {html: labelType == "html", label: label};
- },
-
- doHighlight: function(/*String*/ label, /*String*/ find){
- // summary:
- // Highlights the string entered by the user in the menu. By default this
- // highlights the first occurrence found. Override this method
- // to implement your custom highlighting.
- // tags:
- // protected
-
- 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 = regexp.escapeString(find); // escape regexp special chars
- //If < appears in label, and user presses t, we don't want to highlight the t in the escaped "&lt;"
- //first find out every occurences of "find", wrap each occurence in a pair of "\uFFFF" characters (which
- //should not appear in any string). then html escape the whole string, and replace '\uFFFF" with the
- //HTML highlight markup.
- return this._escapeHtml(label.replace(
- new RegExp((i == 0 ? "^" : "") + "("+ find +")" + (i == (this.queryExpr.length - 4) ? "$" : ""), modifiers),
- '\uFFFF$1\uFFFF')).replace(
- /\uFFFF([^\uFFFF]+)\uFFFF/g, '<span class="dijitComboBoxHighlightMatch">$1</span>'
- ); // returns String, (almost) valid HTML (entities encoded)
- },
-
- _escapeHtml: function(/*String*/ str){
- // TODO Should become dojo.html.entities(), when exists use instead
- // summary:
- // Adds escape sequences for special characters in XML: `&<>"'`
- str = String(str).replace(/&/gm, "&amp;").replace(/</gm, "&lt;")
- .replace(/>/gm, "&gt;").replace(/"/gm, "&quot;"); //balance"
- return str; // string
- },
-
- reset: function(){
- // Overrides the _FormWidget.reset().
- // Additionally reset the .item (to clean up).
- this.item = null;
- this.inherited(arguments);
- },
-
- labelFunc: function(item, store){
- // summary:
- // Computes the label to display based on the dojo.data store item.
- // item: Object
- // The item from the store
- // store: dojo/store/api/Store
- // The store.
- // returns:
- // The label that the ComboBox should display
- // tags:
- // private
-
- // Use toString() because XMLStore returns an XMLItem whereas this
- // method is expected to return a String (#9354).
- // Remove getValue() for 2.0 (old dojo.data API)
- return (store._oldAPI ? store.getValue(item, this.labelAttr || this.searchAttr) :
- item[this.labelAttr || this.searchAttr]).toString(); // String
- },
-
- _setValueAttr: function(/*String*/ value, /*Boolean?*/ priorityChange, /*String?*/ displayedValue, /*item?*/ item){
- // summary:
- // Hook so set('value', value) works.
- // description:
- // Sets the value of the select.
- this._set("item", item||null); // value not looked up in store
- if(value == null /* or undefined */){ value = ''; } // null translates to blank
- this.inherited(arguments);
- },
- _setTextDirAttr: function(/*String*/ textDir){
- // summary:
- // Setter for textDir, needed for the dropDown's textDir update.
- // description:
- // Users shouldn't call this function; they should be calling
- // set('textDir', value)
- // tags:
- // private
- this.inherited(arguments);
- // update the drop down also (_ComboBoxMenuMixin)
- if(this.dropDown){
- this.dropDown._set("textDir", textDir);
- }
- }
- });
-});
diff --git a/lib/dijit/form/_ButtonMixin.js.uncompressed.js b/lib/dijit/form/_ButtonMixin.js.uncompressed.js
deleted file mode 100644
index a38465804..000000000
--- a/lib/dijit/form/_ButtonMixin.js.uncompressed.js
+++ /dev/null
@@ -1,84 +0,0 @@
-define("dijit/form/_ButtonMixin", [
- "dojo/_base/declare", // declare
- "dojo/dom", // dom.setSelectable
- "dojo/_base/event", // event.stop
- "../registry" // registry.byNode
-], function(declare, dom, event, registry){
-
-// module:
-// dijit/form/_ButtonMixin
-
-return declare("dijit.form._ButtonMixin", null, {
- // summary:
- // A mixin to add a thin standard API wrapper to a normal HTML button
- // description:
- // A label should always be specified (through innerHTML) or the label attribute.
- //
- // Attach points:
- //
- // - focusNode (required): this node receives focus
- // - valueNode (optional): this node's value gets submitted with FORM elements
- // - containerNode (optional): this node gets the innerHTML assignment for label
- // example:
- // | <button data-dojo-type="dijit/form/Button" onClick="...">Hello world</button>
- // example:
- // | var button1 = new Button({label: "hello world", onClick: foo});
- // | dojo.body().appendChild(button1.domNode);
-
- // label: HTML String
- // Content to display in button.
- label: "",
-
- // type: [const] String
- // Type of button (submit, reset, button, checkbox, radio)
- type: "button",
-
- _onClick: function(/*Event*/ e){
- // summary:
- // Internal function to handle click actions
- if(this.disabled){
- event.stop(e);
- return false;
- }
- var preventDefault = this.onClick(e) === false; // user click actions
- if(!preventDefault && this.type == "submit" && !(this.valueNode||this.focusNode).form){ // see if a non-form widget needs to be signalled
- for(var node=this.domNode; node.parentNode; node=node.parentNode){
- var widget=registry.byNode(node);
- if(widget && typeof widget._onSubmit == "function"){
- widget._onSubmit(e);
- preventDefault = true;
- break;
- }
- }
- }
- if(preventDefault){
- e.preventDefault();
- }
- return !preventDefault;
- },
-
- postCreate: function(){
- this.inherited(arguments);
- dom.setSelectable(this.focusNode, false);
- },
-
- onClick: function(/*Event*/ /*===== e =====*/){
- // summary:
- // Callback for when button is clicked.
- // If type="submit", return true to perform submit, or false to cancel it.
- // type:
- // callback
- return true; // Boolean
- },
-
- _setLabelAttr: function(/*String*/ content){
- // summary:
- // Hook for set('label', ...) to work.
- // description:
- // Set the label (text) of the button; takes an HTML string.
- this._set("label", content);
- (this.containerNode||this.focusNode).innerHTML = content;
- }
-});
-
-});
diff --git a/lib/dijit/form/_CheckBoxMixin.js.uncompressed.js b/lib/dijit/form/_CheckBoxMixin.js.uncompressed.js
deleted file mode 100644
index 7bcaa4b1c..000000000
--- a/lib/dijit/form/_CheckBoxMixin.js.uncompressed.js
+++ /dev/null
@@ -1,77 +0,0 @@
-define("dijit/form/_CheckBoxMixin", [
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.set
- "dojo/_base/event" // event.stop
-], function(declare, domAttr, event){
-
- // module:
- // dijit/form/_CheckBoxMixin
-
- return declare("dijit.form._CheckBoxMixin", null, {
- // summary:
- // Mixin to provide widget functionality corresponding to an HTML checkbox
- //
- // description:
- // User interacts with real html inputs.
- // On onclick (which occurs by mouse click, space-bar, or
- // using the arrow keys to switch the selected radio button),
- // we update the state of the checkbox/radio.
- //
-
- // type: [private] String
- // type attribute on `<input>` node.
- // 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).
- value: "on",
-
- // readOnly: Boolean
- // Should this widget respond to user input?
- // In markup, this is specified as "readOnly".
- // Similar to disabled except readOnly form values are submitted.
- readOnly: false,
-
- // aria-pressed for toggle buttons, and aria-checked for checkboxes
- _aria_attr: "aria-checked",
-
- _setReadOnlyAttr: function(/*Boolean*/ value){
- this._set("readOnly", value);
- domAttr.set(this.focusNode, 'readOnly', value);
- },
-
- // Override dijit/form/Button._setLabelAttr() since we don't even have a containerNode.
- // Normally users won't try to set label, except when CheckBox or RadioButton is the child of a dojox/layout/TabContainer
- _setLabelAttr: undefined,
-
- _getSubmitValue: function(/*String*/ value){
- return !value && value !== 0 ? "on" : value;
- },
-
- _setValueAttr: function(newValue){
- newValue = this._getSubmitValue(newValue); // "on" to match browser native behavior when value unspecified
- this._set("value", newValue);
- domAttr.set(this.focusNode, "value", newValue);
- },
-
- reset: function(){
- this.inherited(arguments);
- // Handle unlikely event that the <input type=checkbox> value attribute has changed
- this._set("value", this.params.value || "on");
- domAttr.set(this.focusNode, 'value', this.value);
- },
-
- _onClick: function(/*Event*/ e){
- // summary:
- // Internal function to handle click actions - need to check
- // readOnly, since button no longer does that check.
- if(this.readOnly){
- event.stop(e);
- return false;
- }
- return this.inherited(arguments);
- }
- });
-});
diff --git a/lib/dijit/form/_ComboBoxMenu.js.uncompressed.js b/lib/dijit/form/_ComboBoxMenu.js.uncompressed.js
deleted file mode 100644
index c7ed63b9c..000000000
--- a/lib/dijit/form/_ComboBoxMenu.js.uncompressed.js
+++ /dev/null
@@ -1,131 +0,0 @@
-define("dijit/form/_ComboBoxMenu", [
- "dojo/_base/declare", // declare
- "dojo/dom-class", // domClass.add domClass.remove
- "dojo/dom-style", // domStyle.get
- "dojo/keys", // keys.DOWN_ARROW keys.PAGE_DOWN keys.PAGE_UP keys.UP_ARROW
- "../_WidgetBase",
- "../_TemplatedMixin",
- "./_ComboBoxMenuMixin",
- "./_ListMouseMixin"
-], function(declare, domClass, domStyle, keys,
- _WidgetBase, _TemplatedMixin, _ComboBoxMenuMixin, _ListMouseMixin){
-
-
- // module:
- // dijit/form/_ComboBoxMenu
-
- return declare("dijit.form._ComboBoxMenu",[_WidgetBase, _TemplatedMixin, _ListMouseMixin, _ComboBoxMenuMixin], {
- // summary:
- // Focus-less menu for internal use in `dijit/form/ComboBox`
- // Abstract methods that must be defined externally:
- //
- // - onChange: item was explicitly chosen (mousedown somewhere on the menu and mouseup somewhere on the menu)
- // - onPage: next(1) or previous(-1) button pressed
- // tags:
- // private
-
- templateString: "<div class='dijitReset dijitMenu' data-dojo-attach-point='containerNode' style='overflow: auto; overflow-x: hidden;' role='listbox'>"
- +"<div class='dijitMenuItem dijitMenuPreviousButton' data-dojo-attach-point='previousButton' role='option'></div>"
- +"<div class='dijitMenuItem dijitMenuNextButton' data-dojo-attach-point='nextButton' role='option'></div>"
- +"</div>",
-
- baseClass: "dijitComboBoxMenu",
-
- postCreate: function(){
- this.inherited(arguments);
- if(!this.isLeftToRight()){
- domClass.add(this.previousButton, "dijitMenuItemRtl");
- domClass.add(this.nextButton, "dijitMenuItemRtl");
- }
- },
-
- _createMenuItem: function(){
- // note: not using domConstruct.create() because need to specify document
- var item = this.ownerDocument.createElement("div");
- item.className = "dijitReset dijitMenuItem" +(this.isLeftToRight() ? "" : " dijitMenuItemRtl");
- item.setAttribute("role", "option");
- return item;
- },
-
- onHover: function(/*DomNode*/ node){
- // summary:
- // Add hover CSS
- domClass.add(node, "dijitMenuItemHover");
- },
-
- onUnhover: function(/*DomNode*/ node){
- // summary:
- // Remove hover CSS
- domClass.remove(node, "dijitMenuItemHover");
- },
-
- onSelect: function(/*DomNode*/ node){
- // summary:
- // Add selected CSS
- domClass.add(node, "dijitMenuItemSelected");
- },
-
- onDeselect: function(/*DomNode*/ node){
- // summary:
- // Remove selected CSS
- domClass.remove(node, "dijitMenuItemSelected");
- },
-
- _page: function(/*Boolean*/ up){
- // summary:
- // Handles page-up and page-down keypresses
-
- var scrollamount = 0;
- var oldscroll = this.domNode.scrollTop;
- var height = domStyle.get(this.domNode, "height");
- // if no item is highlighted, highlight the first option
- if(!this.getHighlightedOption()){
- this.selectNextNode();
- }
- while(scrollamount<height){
- var highlighted_option = this.getHighlightedOption();
- if(up){
- // stop at option 1
- if(!highlighted_option.previousSibling ||
- highlighted_option.previousSibling.style.display == "none"){
- break;
- }
- this.selectPreviousNode();
- }else{
- // stop at last option
- if(!highlighted_option.nextSibling ||
- highlighted_option.nextSibling.style.display == "none"){
- break;
- }
- this.selectNextNode();
- }
- // going backwards
- var newscroll = this.domNode.scrollTop;
- scrollamount += (newscroll-oldscroll)*(up ? -1:1);
- oldscroll = newscroll;
- }
- },
-
- 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.keyCode){
- case keys.DOWN_ARROW:
- this.selectNextNode();
- return false;
- case keys.PAGE_DOWN:
- this._page(false);
- return false;
- case keys.UP_ARROW:
- this.selectPreviousNode();
- return false;
- case keys.PAGE_UP:
- this._page(true);
- return false;
- default:
- return true;
- }
- }
- });
-});
diff --git a/lib/dijit/form/_ComboBoxMenuMixin.js.uncompressed.js b/lib/dijit/form/_ComboBoxMenuMixin.js.uncompressed.js
deleted file mode 100644
index b386be715..000000000
--- a/lib/dijit/form/_ComboBoxMenuMixin.js.uncompressed.js
+++ /dev/null
@@ -1,189 +0,0 @@
-define("dijit/form/_ComboBoxMenuMixin", [
- "dojo/_base/array", // array.forEach
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.set
- "dojo/i18n", // i18n.getLocalization
- "dojo/i18n!./nls/ComboBox"
-], function(array, declare, domAttr, i18n){
-
-// module:
-// dijit/form/_ComboBoxMenuMixin
-
-return declare( "dijit.form._ComboBoxMenuMixin", null, {
- // summary:
- // Focus-less menu for internal use in `dijit/form/ComboBox`
- // tags:
- // private
-
- // _messages: Object
- // Holds "next" and "previous" text for paging buttons on drop down
- _messages: null,
-
- postMixInProperties: function(){
- this.inherited(arguments);
- this._messages = 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){
- this.value = value;
- this.onChange(value);
- },
-
- onClick: function(/*DomNode*/ node){
- if(node == this.previousButton){
- this._setSelectedAttr(null);
- this.onPage(-1);
- }else if(node == this.nextButton){
- this._setSelectedAttr(null);
- this.onPage(1);
- }else{
- this.onChange(node);
- }
- },
-
- // stubs
- onChange: function(/*Number*/ /*===== direction =====*/){
- // summary:
- // Notifies ComboBox/FilteringSelect that user selected an option.
- // tags:
- // callback
- },
-
- onPage: function(/*Number*/ /*===== direction =====*/){
- // summary:
- // Notifies ComboBox/FilteringSelect that user clicked to advance to next/previous page.
- // tags:
- // callback
- },
-
- onClose: function(){
- // summary:
- // Callback from dijit.popup code to this widget, notifying it that it closed
- // tags:
- // private
- this._setSelectedAttr(null);
- },
-
- _createOption: function(/*Object*/ item, labelFunc){
- // summary:
- // Creates an option to appear on the popup menu subclassed by
- // `dijit/form/FilteringSelect`.
-
- var menuitem = this._createMenuItem();
- var labelObject = labelFunc(item);
- if(labelObject.html){
- menuitem.innerHTML = labelObject.label;
- }else{
- menuitem.appendChild(
- menuitem.ownerDocument.createTextNode(labelObject.label)
- );
- }
- // #3250: in blank options, assign a normal height
- if(menuitem.innerHTML == ""){
- menuitem.innerHTML = "&#160;"; // &nbsp;
- }
-
- // update menuitem.dir if BidiSupport was required
- this.applyTextDir(menuitem, (menuitem.innerText || menuitem.textContent || ""));
-
- return menuitem;
- },
-
- createOptions: function(results, options, labelFunc){
- // summary:
- // Fills in the items in the drop down list
- // results:
- // Array of items
- // options:
- // The options to the query function of the store
- //
- // labelFunc:
- // Function to produce a label in the drop down list from a dojo.data item
-
- this.items = results;
-
- // display "Previous . . ." button
- this.previousButton.style.display = (options.start == 0) ? "none" : "";
- domAttr.set(this.previousButton, "id", this.id + "_prev");
- // create options using _createOption function defined by parent
- // ComboBox (or FilteringSelect) class
- // #2309:
- // iterate over cache nondestructively
- array.forEach(results, function(item, i){
- var menuitem = this._createOption(item, labelFunc);
- menuitem.setAttribute("item", i); // index to this.items; use indirection to avoid mem leak
- domAttr.set(menuitem, "id", this.id + i);
- this.nextButton.parentNode.insertBefore(menuitem, this.nextButton);
- }, this);
- // display "Next . . ." button
- var displayMore = false;
- // Try to determine if we should show 'more'...
- if(results.total && !results.total.then && results.total != -1){
- if((options.start + options.count) < results.total){
- displayMore = true;
- }else if((options.start + options.count) > results.total && options.count == results.length){
- // Weird return from a data store, where a start + count > maxOptions
- // implies maxOptions isn't really valid and we have to go into faking it.
- // And more or less assume more if count == results.length
- displayMore = true;
- }
- }else if(options.count == results.length){
- //Don't know the size, so we do the best we can based off count alone.
- //So, if we have an exact match to count, assume more.
- displayMore = true;
- }
-
- this.nextButton.style.display = displayMore ? "" : "none";
- domAttr.set(this.nextButton,"id", this.id + "_next");
- },
-
- clearResultList: function(){
- // summary:
- // Clears the entries in the drop down list, but of course keeps the previous and next buttons.
- var container = this.containerNode;
- while(container.childNodes.length > 2){
- container.removeChild(container.childNodes[container.childNodes.length-2]);
- }
- this._setSelectedAttr(null);
- },
-
- highlightFirstOption: function(){
- // summary:
- // Highlight the first real item in the list (not Previous Choices).
- this.selectFirstNode();
- },
-
- highlightLastOption: function(){
- // summary:
- // Highlight the last real item in the list (not More Choices).
- this.selectLastNode();
- },
-
- selectFirstNode: function(){
- this.inherited(arguments);
- if(this.getHighlightedOption() == this.previousButton){
- this.selectNextNode();
- }
- },
-
- selectLastNode: function(){
- this.inherited(arguments);
- if(this.getHighlightedOption() == this.nextButton){
- this.selectPreviousNode();
- }
- },
-
- getHighlightedOption: function(){
- return this.selected;
- }
-});
-
-});
diff --git a/lib/dijit/form/_DateTimeTextBox.js.uncompressed.js b/lib/dijit/form/_DateTimeTextBox.js.uncompressed.js
deleted file mode 100644
index b95001288..000000000
--- a/lib/dijit/form/_DateTimeTextBox.js.uncompressed.js
+++ /dev/null
@@ -1,260 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/DropDownBox.html':"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\"\n\trole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdata-dojo-attach-point=\"_buttonNode, _popupStateNode\" role=\"presentation\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"button presentation\" aria-hidden=\"true\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" 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\tdata-dojo-attach-point=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\n\t/></div\n></div>\n"}});
-define("dijit/form/_DateTimeTextBox", [
- "dojo/date", // date date.compare
- "dojo/date/locale", // locale.regexp
- "dojo/date/stamp", // stamp.fromISOString stamp.toISOString
- "dojo/_base/declare", // declare
- "dojo/_base/lang", // lang.getObject
- "./RangeBoundTextBox",
- "../_HasDropDown",
- "dojo/text!./templates/DropDownBox.html"
-], function(date, locale, stamp, declare, lang, RangeBoundTextBox, _HasDropDown, template){
-
- // module:
- // dijit/form/_DateTimeTextBox
-
- new Date("X"); // workaround for #11279, new Date("") == NaN
-
- var _DateTimeTextBox = declare("dijit.form._DateTimeTextBox", [RangeBoundTextBox, _HasDropDown], {
- // summary:
- // Base class for validating, serializable, range-bound date or time text box.
-
- templateString: template,
-
- // hasDownArrow: [const] Boolean
- // Set this textbox to display a down arrow button, to open the drop down list.
- hasDownArrow: true,
-
- // Set classes like dijitDownArrowButtonHover depending on mouse action over button node
- cssStateNodes: {
- "_buttonNode": "dijitDownArrowButton"
- },
-
- /*=====
- // constraints: _DateTimeTextBox.__Constraints
- // Despite the name, this parameter specifies both constraints on the input
- // (including starting/ending dates/times allowed) as well as
- // formatting options like whether the date is displayed in long (ex: December 25, 2005)
- // or short (ex: 12/25/2005) format. See `dijit/form/_DateTimeTextBox.__Constraints` for details.
- constraints: {},
- ======*/
-
- // Override ValidationTextBox.pattern.... we use a reg-ex generating function rather
- // than a straight regexp to deal with locale (plus formatting options too?)
- pattern: locale.regexp,
-
- // datePackage: String
- // JavaScript namespace to find calendar routines. If unspecified, uses Gregorian calendar routines
- // at dojo/date and dojo/date/locale.
- datePackage: "",
- // TODO: for 2.0, replace datePackage with dateModule and dateLocalModule attributes specifying MIDs,
- // or alternately just get rid of this completely and tell user to use module ID remapping
- // via require
-
- postMixInProperties: function(){
- this.inherited(arguments);
- this._set("type", "text"); // in case type="date"|"time" was specified which messes up parse/format
- },
-
- // Override _FormWidget.compare() to work for dates/times
- compare: function(/*Date*/ val1, /*Date*/ val2){
- var isInvalid1 = this._isInvalidDate(val1);
- var isInvalid2 = this._isInvalidDate(val2);
- return isInvalid1 ? (isInvalid2 ? 0 : -1) : (isInvalid2 ? 1 : date.compare(val1, val2, this._selector));
- },
-
- // flag to _HasDropDown to make drop down Calendar width == <input> width
- forceWidth: true,
-
- format: function(/*Date*/ value, /*locale.__FormatOptions*/ constraints){
- // summary:
- // Formats the value as a Date, according to specified locale (second argument)
- // tags:
- // protected
- if(!value){ return ''; }
- return this.dateLocaleModule.format(value, constraints);
- },
-
- "parse": function(/*String*/ value, /*locale.__FormatOptions*/ constraints){
- // summary:
- // Parses as string as a Date, according to constraints
- // tags:
- // protected
-
- return this.dateLocaleModule.parse(value, constraints) || (this._isEmpty(value) ? null : undefined); // Date
- },
-
- // Overrides ValidationTextBox.serialize() to serialize a date in canonical ISO format.
- serialize: function(/*anything*/ val, /*Object?*/ options){
- if(val.toGregorian){
- val = val.toGregorian();
- }
- return stamp.toISOString(val, options);
- },
-
- // dropDownDefaultValue: Date
- // The default value to focus in the popupClass widget when the textbox value is empty.
- dropDownDefaultValue : new Date(),
-
- // value: Date
- // The value of this widget as a JavaScript Date object. Use get("value") / set("value", val) to manipulate.
- // When passed to the parser in markup, must be specified according to `dojo/date/stamp.fromISOString()`
- value: new Date(""), // value.toString()="NaN"
-
- _blankValue: null, // used by filter() when the textbox is blank
-
- // popupClass: [protected extension] String
- // Name of the popup widget class used to select a date/time.
- // Subclasses should specify this.
- popupClass: "", // default is no popup = text only
-
-
- // _selector: [protected extension] String
- // Specifies constraints.selector passed to dojo.date functions, should be either
- // "date" or "time".
- // Subclass must specify this.
- _selector: "",
-
- constructor: function(params /*===== , srcNodeRef =====*/){
- // summary:
- // Create the widget.
- // params: Object|null
- // Hash of initialization parameters for widget, including scalar values (like title, duration etc.)
- // and functions, typically callbacks like onClick.
- // The hash can contain any of the widget's properties, excluding read-only properties.
- // srcNodeRef: DOMNode|String?
- // If a srcNodeRef (DOM node) is specified, replace srcNodeRef with my generated DOM tree
-
- this.dateModule = params.datePackage ? lang.getObject(params.datePackage, false) : date;
- this.dateClassObj = this.dateModule.Date || Date;
- this.dateLocaleModule = params.datePackage ? lang.getObject(params.datePackage+".locale", false) : locale;
- this._set('pattern', this.dateLocaleModule.regexp);
- this._invalidDate = this.constructor.prototype.value.toString();
- },
-
- buildRendering: function(){
- this.inherited(arguments);
-
- if(!this.hasDownArrow){
- this._buttonNode.style.display = "none";
- }
-
- // If hasDownArrow is false, we basically just want to treat the whole widget as the
- // button.
- if(!this.hasDownArrow){
- this._buttonNode = this.domNode;
- this.baseClass += " dijitComboBoxOpenOnClick";
- }
- },
-
- _setConstraintsAttr: function(/*Object*/ constraints){
- constraints.selector = this._selector;
- constraints.fullYear = true; // see #5465 - always format with 4-digit years
- var fromISO = stamp.fromISOString;
- if(typeof constraints.min == "string"){ constraints.min = fromISO(constraints.min); }
- if(typeof constraints.max == "string"){ constraints.max = fromISO(constraints.max); }
- this.inherited(arguments);
- },
-
- _isInvalidDate: function(/*Date*/ value){
- // summary:
- // Runs various tests on the value, checking for invalid conditions
- // tags:
- // private
- return !value || isNaN(value) || typeof value != "object" || value.toString() == this._invalidDate;
- },
-
- _setValueAttr: function(/*Date|String*/ value, /*Boolean?*/ priorityChange, /*String?*/ formattedValue){
- // summary:
- // Sets the date on this textbox. Note: value can be a JavaScript Date literal or a string to be parsed.
- if(value !== undefined){
- if(typeof value == "string"){
- value = stamp.fromISOString(value);
- }
- if(this._isInvalidDate(value)){
- value = null;
- }
- if(value instanceof Date && !(this.dateClassObj instanceof Date)){
- value = new this.dateClassObj(value);
- }
- }
- this.inherited(arguments);
- if(this.value instanceof Date){
- this.filterString = "";
- }
- if(this.dropDown){
- this.dropDown.set('value', value, false);
- }
- },
-
- _set: function(attr, value){
- // Avoid spurious watch() notifications when value is changed to new Date object w/the same value
- if(attr == "value" && this.value instanceof Date && this.compare(value, this.value) == 0){
- return;
- }
- this.inherited(arguments);
- },
-
- _setDropDownDefaultValueAttr: function(/*Date*/ val){
- if(this._isInvalidDate(val)){
- // convert null setting into today's date, since there needs to be *some* default at all times.
- val = new this.dateClassObj();
- }
- this.dropDownDefaultValue = val;
- },
-
- openDropDown: function(/*Function*/ callback){
- // rebuild drop down every time, so that constraints get copied (#6002)
- if(this.dropDown){
- this.dropDown.destroy();
- }
- var PopupProto = lang.isString(this.popupClass) ? lang.getObject(this.popupClass, false) : this.popupClass,
- textBox = this,
- value = this.get("value");
- this.dropDown = new PopupProto({
- onChange: function(value){
- // this will cause InlineEditBox and other handlers to do stuff so make sure it's last
- textBox.set('value', value, true);
- },
- id: this.id + "_popup",
- dir: textBox.dir,
- lang: textBox.lang,
- value: value,
- currentFocus: !this._isInvalidDate(value) ? value : this.dropDownDefaultValue,
- constraints: textBox.constraints,
- filterString: textBox.filterString, // for TimeTextBox, to filter times shown
- datePackage: textBox.params.datePackage,
- isDisabledDate: function(/*Date*/ date){
- // summary:
- // disables dates outside of the min/max of the _DateTimeTextBox
- return !textBox.rangeCheck(date, textBox.constraints);
- }
- });
-
- this.inherited(arguments);
- },
-
- _getDisplayedValueAttr: function(){
- return this.textbox.value;
- },
-
- _setDisplayedValueAttr: function(/*String*/ value, /*Boolean?*/ priorityChange){
- this._setValueAttr(this.parse(value, this.constraints), priorityChange, value);
- }
- });
-
-
- /*=====
- _DateTimeTextBox.__Constraints = declare([RangeBoundTextBox.__Constraints, locale.__FormatOptions], {
- // summary:
- // Specifies both the rules on valid/invalid values (first/last date/time allowed),
- // and also formatting options for how the date/time is displayed.
- // example:
- // To restrict to dates within 2004, displayed in a long format like "December 25, 2005":
- // | {min:'2004-01-01',max:'2004-12-31', formatLength:'long'}
- });
- =====*/
-
- return _DateTimeTextBox;
-});
diff --git a/lib/dijit/form/_ExpandingTextAreaMixin.js.uncompressed.js b/lib/dijit/form/_ExpandingTextAreaMixin.js.uncompressed.js
deleted file mode 100644
index 382663e98..000000000
--- a/lib/dijit/form/_ExpandingTextAreaMixin.js.uncompressed.js
+++ /dev/null
@@ -1,130 +0,0 @@
-define("dijit/form/_ExpandingTextAreaMixin", [
- "dojo/_base/declare", // declare
- "dojo/dom-construct", // domConstruct.create
- "dojo/has",
- "dojo/_base/lang", // lang.hitch
- "dojo/on",
- "dojo/_base/window", // win.body
- "../Viewport"
-], function(declare, domConstruct, has, lang, on, win, Viewport){
-
- // module:
- // dijit/form/_ExpandingTextAreaMixin
-
- // feature detection, true for mozilla and webkit
- has.add("textarea-needs-help-shrinking", function(){
- var body = win.body(), // note: if multiple documents exist, doesn't matter which one we use
- te = domConstruct.create('textarea', {
- rows:"5",
- cols:"20",
- value: ' ',
- style: {zoom:1, fontSize:"12px", height:"96px", overflow:'hidden', visibility:'hidden', position:'absolute', border:"5px solid white", margin:"0", padding:"0", boxSizing: 'border-box', MsBoxSizing: 'border-box', WebkitBoxSizing: 'border-box', MozBoxSizing: 'border-box' }
- }, body, "last");
- var needsHelpShrinking = te.scrollHeight >= te.clientHeight;
- body.removeChild(te);
- return needsHelpShrinking;
- });
-
- return declare("dijit.form._ExpandingTextAreaMixin", null, {
- // summary:
- // Mixin for textarea widgets to add auto-expanding capability
-
- _setValueAttr: function(){
- this.inherited(arguments);
- this.resize();
- },
-
- postCreate: function(){
- this.inherited(arguments);
- var textarea = this.textbox;
- textarea.style.overflowY = "hidden";
- this.own(on(textarea, "focus, resize", lang.hitch(this, "_resizeLater")));
- },
-
- startup: function(){
- this.inherited(arguments);
- this.own(Viewport.on("resize", lang.hitch(this, "_resizeLater")));
- this._resizeLater();
- },
-
- _onInput: function(e){
- this.inherited(arguments);
- this.resize();
- },
-
- _estimateHeight: function(){
- // summary:
- // Approximate the height when the textarea is invisible with the number of lines in the text.
- // Fails when someone calls setValue with a long wrapping line, but the layout fixes itself when the user clicks inside so . . .
- // In IE, the resize event is supposed to fire when the textarea becomes visible again and that will correct the size automatically.
- //
- var textarea = this.textbox;
- // #rows = #newlines+1
- textarea.rows = (textarea.value.match(/\n/g) || []).length + 1;
- },
-
- _resizeLater: function(){
- this.defer("resize");
- },
-
- resize: function(){
- // summary:
- // Resizes the textarea vertically (should be called after a style/value change)
-
- var textarea = this.textbox;
-
- function textareaScrollHeight(){
- var empty = false;
- if(textarea.value === ''){
- textarea.value = ' ';
- empty = true;
- }
- var sh = textarea.scrollHeight;
- if(empty){ textarea.value = ''; }
- return sh;
- }
-
- if(textarea.style.overflowY == "hidden"){ textarea.scrollTop = 0; }
- if(this.busyResizing){ return; }
- this.busyResizing = true;
- if(textareaScrollHeight() || textarea.offsetHeight){
- var newH = textareaScrollHeight() + Math.max(textarea.offsetHeight - textarea.clientHeight, 0);
- var newHpx = newH + "px";
- if(newHpx != textarea.style.height){
- textarea.style.height = newHpx;
- textarea.rows = 1; // rows can act like a minHeight if not cleared
- }
- if(has("textarea-needs-help-shrinking")){
- var origScrollHeight = textareaScrollHeight(),
- newScrollHeight = origScrollHeight,
- origMinHeight = textarea.style.minHeight,
- decrement = 4, // not too fast, not too slow
- thisScrollHeight,
- origScrollTop = textarea.scrollTop;
- textarea.style.minHeight = newHpx; // maintain current height
- textarea.style.height = "auto"; // allow scrollHeight to change
- while(newH > 0){
- textarea.style.minHeight = Math.max(newH - decrement, 4) + "px";
- thisScrollHeight = textareaScrollHeight();
- var change = newScrollHeight - thisScrollHeight;
- newH -= change;
- if(change < decrement){
- break; // scrollHeight didn't shrink
- }
- newScrollHeight = thisScrollHeight;
- decrement <<= 1;
- }
- textarea.style.height = newH + "px";
- textarea.style.minHeight = origMinHeight;
- textarea.scrollTop = origScrollTop;
- }
- textarea.style.overflowY = textareaScrollHeight() > textarea.clientHeight ? "auto" : "hidden";
- if(textarea.style.overflowY == "hidden"){ textarea.scrollTop = 0; }
- }else{
- // hidden content of unknown size
- this._estimateHeight();
- }
- this.busyResizing = false;
- }
- });
-});
diff --git a/lib/dijit/form/_FormMixin.js.uncompressed.js b/lib/dijit/form/_FormMixin.js.uncompressed.js
deleted file mode 100644
index 2218c0c20..000000000
--- a/lib/dijit/form/_FormMixin.js.uncompressed.js
+++ /dev/null
@@ -1,456 +0,0 @@
-define("dijit/form/_FormMixin", [
- "dojo/_base/array", // array.every array.filter array.forEach array.indexOf array.map
- "dojo/_base/declare", // declare
- "dojo/_base/kernel", // kernel.deprecated
- "dojo/_base/lang", // lang.hitch lang.isArray
- "dojo/on",
- "dojo/window" // winUtils.scrollIntoView
-], function(array, declare, kernel, lang, on, winUtils){
-
- // module:
- // dijit/form/_FormMixin
-
- return 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)
- // description:
- // Can extract all the form widgets
- // values and combine them into a single javascript object, or alternately
- // take such an object and set the values for all the contained
- // form widgets
-
- /*=====
- // 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).
- //
- // If a child widget's name is a dot separated list (like a.b.c.d), it's a nested structure.
- //
- // Example:
- // | { 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
- // * people[3].sex (for a list of people [{name: Bill, sex: M}, ...])
-
-
- _getDescendantFormWidgets: function(/*dijit/_WidgetBase[]?*/ children){
- // summary:
- // Returns all form widget descendants, searching through non-form child widgets like BorderContainer
- var res = [];
- array.forEach(children || this.getChildren(), function(child){
- if("value" in child){
- res.push(child);
- }else{
- res = res.concat(this._getDescendantFormWidgets(child.getChildren()));
- }
- }, this);
- return res;
- },
-
- reset: function(){
- array.forEach(this._getDescendantFormWidgets(), function(widget){
- if(widget.reset){
- widget.reset();
- }
- });
- },
-
- 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
- var didFocus = false;
- return array.every(array.map(this._getDescendantFormWidgets(), function(widget){
- // Need to set this so that "required" widgets get their
- // state set.
- widget._hasBeenBlurred = true;
- var valid = widget.disabled || !widget.validate || widget.validate();
- if(!valid && !didFocus){
- // Set focus of the first non-valid widget
- winUtils.scrollIntoView(widget.containerNode || widget.domNode);
- widget.focus();
- didFocus = true;
- }
- return valid;
- }), function(item){ return item; });
- },
-
- setValues: function(val){
- kernel.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.", "", "2.0");
- return this.set('value', val);
- },
- _setValueAttr: function(/*Object*/ obj){
- // summary:
- // 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 = { };
- array.forEach(this._getDescendantFormWidgets(), function(widget){
- if(!widget.name){ return; }
- var entry = map[widget.name] || (map[widget.name] = [] );
- entry.push(widget);
- });
-
- for(var name in map){
- if(!map.hasOwnProperty(name)){
- continue;
- }
- var widgets = map[name], // array of widgets w/this name
- values = lang.getObject(name, false, obj); // list of values for those widgets
-
- if(values === undefined){
- continue;
- }
- if(!lang.isArray(values)){
- values = [ values ];
- }
- if(typeof widgets[0].checked == 'boolean'){
- // for checkbox/radio, values is a list of which widgets should be checked
- array.forEach(widgets, function(w){
- w.set('value', array.indexOf(values, w.value) != -1);
- });
- }else if(widgets[0].multiple){
- // it takes an array (e.g. multi-select)
- widgets[0].set('value', values);
- }else{
- // otherwise, values is a list of values to be assigned sequentially to each widget
- array.forEach(widgets, function(w, i){
- w.set('value', values[i]);
- });
- }
- }
-
- /***
- * TODO: code for plain input boxes (this shouldn't run for inputs that are part of widgets)
-
- array.forEach(this.containerNode.elements, function(element){
- if(element.name == ''){return}; // like "continue"
- var namePath = element.name.split(".");
- var myObj=obj;
- var name=namePath[namePath.length-1];
- for(var j=1,len2=namePath.length;j<len2;++j){
- var p=namePath[j - 1];
- // repeater support block
- var nameA=p.split("[");
- if(nameA.length > 1){
- if(typeof(myObj[nameA[0]]) == "undefined"){
- myObj[nameA[0]]=[ ];
- } // if
-
- nameIndex=parseInt(nameA[1]);
- if(typeof(myObj[nameA[0]][nameIndex]) == "undefined"){
- myObj[nameA[0]][nameIndex] = { };
- }
- myObj=myObj[nameA[0]][nameIndex];
- continue;
- } // repeater support ends
-
- if(typeof(myObj[p]) == "undefined"){
- myObj=undefined;
- break;
- };
- myObj=myObj[p];
- }
-
- if(typeof(myObj) == "undefined"){
- return; // like "continue"
- }
- if(typeof(myObj[name]) == "undefined" && this.ignoreNullValues){
- return; // like "continue"
- }
-
- // TODO: widget values (just call set('value', ...) on the widget)
-
- // TODO: maybe should call dojo.getNodeProp() instead
- switch(element.type){
- case "checkbox":
- element.checked = (name in myObj) &&
- array.some(myObj[name], function(val){ return val == element.value; });
- break;
- case "radio":
- element.checked = (name in myObj) && myObj[name] == element.value;
- break;
- case "select-multiple":
- element.selectedIndex=-1;
- array.forEach(element.options, function(option){
- option.selected = array.some(myObj[name], function(val){ return option.value == val; });
- });
- break;
- case "select-one":
- element.selectedIndex="0";
- array.forEach(element.options, function(option){
- option.selected = option.value == myObj[name];
- });
- break;
- case "hidden":
- case "text":
- case "textarea":
- case "password":
- element.value = myObj[name] || "";
- break;
- }
- });
- */
-
- // Note: no need to call this._set("value", ...) as the child updates will trigger onChange events
- // which I am monitoring.
- },
-
- getValues: function(){
- kernel.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.", "", "2.0");
- return this.get('value');
- },
- _getValueAttr: function(){
- // summary:
- // Returns Object representing form values. See description of `value` for details.
- // description:
-
- // 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:
- //
- // 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 defer(...) 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 = { };
- array.forEach(this._getDescendantFormWidgets(), function(widget){
- var name = widget.name;
- if(!name || widget.disabled){ return; }
-
- // 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
- if(typeof widget.checked == 'boolean'){
- if(/Radio/.test(widget.declaredClass)){
- // radio button
- if(value !== false){
- lang.setObject(name, value, obj);
- }else{
- // give radio widgets a default of null
- value = lang.getObject(name, false, obj);
- if(value === undefined){
- lang.setObject(name, null, obj);
- }
- }
- }else{
- // checkbox/toggle button
- var ary=lang.getObject(name, false, obj);
- if(!ary){
- ary=[];
- lang.setObject(name, ary, obj);
- }
- if(value !== false){
- ary.push(value);
- }
- }
- }else{
- var prev=lang.getObject(name, false, obj);
- if(typeof prev != "undefined"){
- if(lang.isArray(prev)){
- prev.push(value);
- }else{
- lang.setObject(name, [prev, value], obj);
- }
- }else{
- // unique name
- lang.setObject(name, value, obj);
- }
- }
- });
-
- /***
- * code for plain input boxes (see also domForm.formToObject, can we use that instead of this code?
- * but it doesn't understand [] notation, presumably)
- var obj = { };
- array.forEach(this.containerNode.elements, function(elm){
- if(!elm.name) {
- return; // like "continue"
- }
- var namePath = elm.name.split(".");
- var myObj=obj;
- var name=namePath[namePath.length-1];
- for(var j=1,len2=namePath.length;j<len2;++j){
- var nameIndex = null;
- var p=namePath[j - 1];
- var nameA=p.split("[");
- if(nameA.length > 1){
- if(typeof(myObj[nameA[0]]) == "undefined"){
- myObj[nameA[0]]=[ ];
- } // if
- nameIndex=parseInt(nameA[1]);
- if(typeof(myObj[nameA[0]][nameIndex]) == "undefined"){
- myObj[nameA[0]][nameIndex] = { };
- }
- }else if(typeof(myObj[nameA[0]]) == "undefined"){
- myObj[nameA[0]] = { }
- } // if
-
- if(nameA.length == 1){
- myObj=myObj[nameA[0]];
- }else{
- myObj=myObj[nameA[0]][nameIndex];
- } // if
- } // for
-
- if((elm.type != "select-multiple" && elm.type != "checkbox" && elm.type != "radio") || (elm.type == "radio" && elm.checked)){
- if(name == name.split("[")[0]){
- myObj[name]=elm.value;
- }else{
- // can not set value when there is no name
- }
- }else if(elm.type == "checkbox" && elm.checked){
- if(typeof(myObj[name]) == 'undefined'){
- myObj[name]=[ ];
- }
- myObj[name].push(elm.value);
- }else if(elm.type == "select-multiple"){
- if(typeof(myObj[name]) == 'undefined'){
- myObj[name]=[ ];
- }
- for(var jdx=0,len3=elm.options.length; jdx<len3; ++jdx){
- if(elm.options[jdx].selected){
- myObj[name].push(elm.options[jdx].value);
- }
- }
- } // if
- name=undefined;
- }); // forEach
- ***/
- return obj;
- },
-
- isValid: function(){
- // summary:
- // Returns true if all of the widgets are valid.
- // Deprecated, will be removed in 2.0. Use get("state") instead.
-
- return this.state == "";
- },
-
- onValidStateChange: function(/*Boolean*/ /*===== 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.
- },
-
- _getState: function(){
- // summary:
- // Compute what this.state should be based on state of children
- var states = array.map(this._descendants, function(w){
- return w.get("state") || "";
- });
-
- return array.indexOf(states, "Error") >= 0 ? "Error" :
- array.indexOf(states, "Incomplete") >= 0 ? "Incomplete" : "";
- },
-
- disconnectChildren: function(){
- // summary:
- // Deprecated method. Applications no longer need to call this. Remove for 2.0.
- },
-
- connectChildren: function(/*Boolean*/ inStartup){
- // summary:
- // 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.
-
- // TODO: rename for 2.0
-
- this._descendants = this._getDescendantFormWidgets();
-
- // To get notifications from children they need to be started. Children didn't used to need to be started,
- // so for back-compat, start them here
- array.forEach(this._descendants, function(child){
- if(!child._started){ child.startup(); }
- });
-
- if(!inStartup){
- this._onChildChange();
- }
- },
-
- _onChildChange: function(/*String*/ attr){
- // summary:
- // Called when child's value or disabled state changes
-
- // The unit tests expect state update to be synchronous, so update it immediately.
- if(!attr || attr == "state" || attr == "disabled"){
- this._set("state", this._getState());
- }
-
- // Use defer() 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(!attr || attr == "value" || attr == "disabled" || attr == "checked"){
- if(this._onChangeDelayTimer){
- this._onChangeDelayTimer.remove();
- }
- this._onChangeDelayTimer = this.defer(function(){
- delete this._onChangeDelayTimer;
- this._set("value", this.get("value"));
- }, 10);
- }
- },
-
- startup: function(){
- this.inherited(arguments);
-
- // Set initial this.value and this.state. Don't emit watch() notifications.
- this._descendants = this._getDescendantFormWidgets();
- this.value = this.get("value");
- this.state = this._getState();
-
- // Initialize value and valid/invalid state tracking.
- var self = this;
- this.own(
- on(
- this.containerNode,
- "attrmodified-state, attrmodified-disabled, attrmodified-value, attrmodified-checked",
- function(evt){
- if(evt.target == self.domNode){
- return; // ignore events that I fire on myself because my children changed
- }
- self._onChildChange(evt.type.replace("attrmodified-", ""));
- }
- )
- );
-
- // Make state change call onValidStateChange(), will be removed in 2.0
- this.watch("state", function(attr, oldVal, newVal){ this.onValidStateChange(newVal == ""); });
- },
-
- destroy: function(){
- this.inherited(arguments);
- }
-
- });
-});
diff --git a/lib/dijit/form/_FormSelectWidget.js.uncompressed.js b/lib/dijit/form/_FormSelectWidget.js.uncompressed.js
deleted file mode 100644
index 4a40c51d0..000000000
--- a/lib/dijit/form/_FormSelectWidget.js.uncompressed.js
+++ /dev/null
@@ -1,707 +0,0 @@
-define("dijit/form/_FormSelectWidget", [
- "dojo/_base/array", // array.filter array.forEach array.map array.some
- "dojo/_base/Deferred",
- "dojo/aspect", // aspect.after
- "dojo/data/util/sorter", // util.sorter.createSortFunction
- "dojo/_base/declare", // declare
- "dojo/dom", // dom.setSelectable
- "dojo/dom-class", // domClass.toggle
- "dojo/_base/kernel", // _scopeName
- "dojo/_base/lang", // lang.delegate lang.isArray lang.isObject lang.hitch
- "dojo/query", // query
- "dojo/when",
- "dojo/store/util/QueryResults",
- "./_FormValueWidget"
-], function(array, Deferred, aspect, sorter, declare, dom, domClass, kernel, lang, query, when,
- QueryResults, _FormValueWidget){
-
-// module:
-// dijit/form/_FormSelectWidget
-
-/*=====
-var __SelectOption = {
- // value: String
- // The value of the option. Setting to empty (or missing) will
- // place a separator at that location
- // label: String
- // The label for our option. It can contain html tags.
- // selected: Boolean
- // Whether or not we are a selected option
- // disabled: Boolean
- // Whether or not this specific option is disabled
-};
-=====*/
-
-var _FormSelectWidget = declare("dijit.form._FormSelectWidget", _FormValueWidget, {
- // summary:
- // Extends _FormValueWidget in order to provide "select-specific"
- // values - i.e., those values that are unique to `<select>` elements.
- // This also provides the mechanism for reading the elements from
- // a store, if desired.
-
- // multiple: [const] Boolean
- // Whether or not we are multi-valued
- multiple: false,
-
- // options: __SelectOption[]
- // The set of options for our select item. Roughly corresponds to
- // the html `<option>` tag.
- options: null,
-
- // store: dojo/store/api/Store
- // A store to use for getting our list of options - rather than reading them
- // from the `<option>` html tags. Should support getIdentity().
- // For back-compat store can also be a dojo/data/api/Identity.
- store: null,
-
- // query: object
- // A query to use when fetching items from our store
- query: null,
-
- // queryOptions: object
- // Query options to use when fetching from the store
- queryOptions: null,
-
- // labelAttr: String?
- // The entries in the drop down list come from this attribute in the dojo.store items.
- // If ``store`` is set, labelAttr must be set too, unless store is an old-style
- // dojo.data store rather than a new dojo/store.
- labelAttr: "",
-
- // onFetch: Function
- // A callback to do with an onFetch - but before any items are actually
- // iterated over (i.e. to filter even further what you want to add)
- onFetch: null,
-
- // sortByLabel: Boolean
- // Flag to sort the options returned from a store by the label of
- // the store.
- sortByLabel: true,
-
-
- // 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 clicks the button to open the
- // dropdown.
- loadChildrenOnOpen: false,
-
- // onLoadDeferred: [readonly] dojo.Deferred
- // This is the `dojo.Deferred` returned by setStore().
- // Calling onLoadDeferred.then() registers your
- // callback to be called only once, when the prior setStore completes.
- onLoadDeferred: null,
-
- getOptions: function(/*anything*/ valueOrIdx){
- // summary:
- // Returns a given option (or options).
- // valueOrIdx:
- // If passed in as a string, that string is used to look up the option
- // in the array of options - based on the value property.
- // (See dijit/form/_FormSelectWidget.__SelectOption).
- //
- // If passed in a number, then the option with the given index (0-based)
- // within this select will be returned.
- //
- // If passed in a dijit/form/_FormSelectWidget.__SelectOption, the same option will be
- // returned if and only if it exists within this select.
- //
- // If passed an array, then an array will be returned with each element
- // in the array being looked up.
- //
- // If not passed a value, then all options will be returned
- //
- // returns:
- // The option corresponding with the given value or index. null
- // is returned if any of the following are true:
- //
- // - A string value is passed in which doesn't exist
- // - An index is passed in which is outside the bounds of the array of options
- // - A dijit/form/_FormSelectWidget.__SelectOption is passed in which is not a part of the select
-
- // NOTE: the compare for passing in a dijit/form/_FormSelectWidget.__SelectOption checks
- // if the value property matches - NOT if the exact option exists
- // NOTE: if passing in an array, null elements will be placed in the returned
- // array when a value is not found.
- var lookupValue = valueOrIdx, opts = this.options || [], l = opts.length;
-
- if(lookupValue === undefined){
- return opts; // __SelectOption[]
- }
- if(lang.isArray(lookupValue)){
- return array.map(lookupValue, "return this.getOptions(item);", this); // __SelectOption[]
- }
- if(lang.isObject(valueOrIdx)){
- // We were passed an option - so see if it's in our array (directly),
- // and if it's not, try and find it by value.
- if(!array.some(this.options, function(o, idx){
- if(o === lookupValue ||
- (o.value && o.value === lookupValue.value)){
- lookupValue = idx;
- return true;
- }
- return false;
- })){
- lookupValue = -1;
- }
- }
- if(typeof lookupValue == "string"){
- for(var i=0; i<l; i++){
- if(opts[i].value === lookupValue){
- lookupValue = i;
- break;
- }
- }
- }
- if(typeof lookupValue == "number" && lookupValue >= 0 && lookupValue < l){
- return this.options[lookupValue]; // __SelectOption
- }
- return null; // null
- },
-
- addOption: function(/*__SelectOption|__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.
- // Passing in an array of options will yield slightly better performance
- // since the children are only loaded once.
- if(!lang.isArray(option)){ option = [option]; }
- array.forEach(option, function(i){
- if(i && lang.isObject(i)){
- this.options.push(i);
- }
- }, this);
- this._loadChildren();
- },
-
- removeOption: function(/*String|__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
- // index in the options array is removed), or select option (in
- // which case, the select option with a matching value is removed).
- // You can also pass in an array of those values for a slightly
- // better performance since the children are only loaded once.
- if(!lang.isArray(valueOrIdx)){ valueOrIdx = [valueOrIdx]; }
- var oldOpts = this.getOptions(valueOrIdx);
- array.forEach(oldOpts, function(i){
- // We can get null back in our array - if our option was not found. In
- // that case, we don't want to blow up...
- if(i){
- this.options = array.filter(this.options, function(node){
- return (node.value !== i.value || node.label !== i.label);
- });
- this._removeOptionItem(i);
- }
- }, this);
- this._loadChildren();
- },
-
- updateOption: function(/*__SelectOption|__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
- // in an array of new options will yield better performance since
- // the children will only be loaded once.
- if(!lang.isArray(newOption)){ newOption = [newOption]; }
- array.forEach(newOption, function(i){
- var oldOpt = this.getOptions(i), k;
- if(oldOpt){
- for(k in i){ oldOpt[k] = i[k]; }
- }
- }, this);
- this._loadChildren();
- },
-
- setStore: function(store,
- selectedValue,
- 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
- // function returns the original store, in case you want to reuse
- // it or something.
- // store: dojo/store/api/Store
- // The dojo.store you would like to use - it MUST implement getIdentity()
- // and MAY implement observe().
- // For backwards-compatibility this can also be a data.data store, in which case
- // it MUST implement dojo/data/api/Identity,
- // and MAY implement dojo/data/api/Notification.
- // selectedValue: anything?
- // The value that this widget should set itself to *after* the store
- // has been loaded
- // fetchArgs: Object?
- // Hash of parameters to set filter on store, etc.
- //
- // - query: new value for Select.query,
- // - queryOptions: new value for Select.queryOptions,
- // - onFetch: callback function for each item in data (Deprecated)
- var oStore = this.store;
- fetchArgs = fetchArgs || {};
-
- if(oStore !== store){
- // Our store has changed, so cancel any listeners on old store (remove for 2.0)
- var h;
- while((h = this._notifyConnections.pop())){ h.remove(); }
-
- // For backwards-compatibility, accept dojo.data store in addition to dojo.store.store. Remove in 2.0.
- if(!store.get){
- lang.mixin(store, {
- _oldAPI: true,
- get: function(id){
- // summary:
- // Retrieves an object by it's identity. This will trigger a fetchItemByIdentity.
- // Like dojo.store.DataStore.get() except returns native item.
- var deferred = new Deferred();
- this.fetchItemByIdentity({
- identity: id,
- onItem: function(object){
- deferred.resolve(object);
- },
- onError: function(error){
- deferred.reject(error);
- }
- });
- return deferred.promise;
- },
- query: function(query, options){
- // summary:
- // Queries the store for objects. Like dojo/store/DataStore.query()
- // except returned Deferred contains array of native items.
- var deferred = new Deferred(function(){ if(fetchHandle.abort){ fetchHandle.abort(); } } );
- deferred.total = new Deferred();
- var fetchHandle = this.fetch(lang.mixin({
- query: query,
- onBegin: function(count){
- deferred.total.resolve(count);
- },
- onComplete: function(results){
- deferred.resolve(results);
- },
- onError: function(error){
- deferred.reject(error);
- }
- }, options));
- return new QueryResults(deferred);
- }
- });
-
- if(store.getFeatures()["dojo.data.api.Notification"]){
- this._notifyConnections = [
- aspect.after(store, "onNew", lang.hitch(this, "_onNewItem"), true),
- aspect.after(store, "onDelete", lang.hitch(this, "_onDeleteItem"), true),
- aspect.after(store, "onSet", lang.hitch(this, "_onSetItem"), true)
- ];
- }
- }
- this._set("store", store); // Our store has changed, so update our notifications
- }
-
- // Remove existing options (if there are any)
- if(this.options && this.options.length){
- this.removeOption(this.options);
- }
-
- // Cancel listener for updates to old store
- if(this._queryRes && this._queryRes.close){
- this._queryRes.close();
- }
-
- // If user has specified new query and query options along with this new store, then use them.
- if(fetchArgs.query){
- this._set("query", fetchArgs.query);
- this._set("queryOptions", fetchArgs.queryOptions);
- }
-
- // Add our new options
- if(store){
- this._loadingStore = true;
- this.onLoadDeferred = new Deferred();
-
- // Run query
- // Save result in this._queryRes so we can cancel the listeners we register below
- this._queryRes = store.query(this.query, this.queryOptions);
- when(this._queryRes, lang.hitch(this, function(items){
-
- if(this.sortByLabel && !fetchArgs.sort && items.length){
- if(items[0].getValue){
- // Old dojo.data API to access items, remove for 2.0
- items.sort(sorter.createSortFunction([{
- attribute: store.getLabelAttributes(items[0])[0]
- }], store));
- }else{
- var labelAttr = this.labelAttr;
- items.sort(function(a, b){
- return a[labelAttr] > b[labelAttr] ? 1 : b[labelAttr] > a[labelAttr] ? -1 : 0;
- });
- }
- }
-
- if(fetchArgs.onFetch){
- items = fetchArgs.onFetch.call(this, items, fetchArgs);
- }
-
- // TODO: Add these guys as a batch, instead of separately
- array.forEach(items, function(i){
- this._addOptionForItem(i);
- }, this);
-
- // Register listener for store updates
- if(this._queryRes.observe){
- this._queryRes.observe(lang.hitch(this, function(object, deletedFrom, insertedInto){
- if(deletedFrom == insertedInto){
- this._onSetItem(object);
- }else{
- if(deletedFrom != -1){
- this._onDeleteItem(object);
- }
- if(insertedInto != -1){
- this._onNewItem(object);
- }
- }
- }), true);
- }
-
- // 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.onLoadDeferred.resolve(true);
- this.onSetStore();
- }), function(err){
- console.error('dijit.form.Select: ' + err.toString());
- this.onLoadDeferred.reject(err);
- });
- }
- return oStore; // dojo/data/api/Identity
- },
-
- // 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.
- if(!this._onChangeActive){ priorityChange = null; }
- if(this._loadingStore){
- // Our store is loading - so save our value, and we'll set it when
- // we're done
- this._pendingValue = newValue;
- return;
- }
- var opts = this.getOptions() || [];
- if(!lang.isArray(newValue)){
- newValue = [newValue];
- }
- array.forEach(newValue, function(i, idx){
- if(!lang.isObject(i)){
- i = i + "";
- }
- if(typeof i === "string"){
- newValue[idx] = array.filter(opts, function(node){
- return node.value === i;
- })[0] || {value: "", label: ""};
- }
- }, this);
-
- // Make sure some sane default is set
- newValue = array.filter(newValue, function(i){ return i && i.value; });
- if(!this.multiple && (!newValue[0] || !newValue[0].value) && opts.length){
- newValue[0] = opts[0];
- }
- array.forEach(opts, function(i){
- i.selected = array.some(newValue, function(v){ return v.value === i.value; });
- });
- var val = array.map(newValue, function(i){ return i.value; }),
- disp = array.map(newValue, function(i){ return i.label; });
-
- if(typeof val == "undefined" || typeof val[0] == "undefined"){ return; } // not fully initialized yet or a failed value lookup
- this._setDisplay(this.multiple ? disp : disp[0]);
- this.inherited(arguments, [ this.multiple ? val : val[0], priorityChange ]);
- this._updateSelection();
- },
-
- _getDisplayedValueAttr: function(){
- // summary:
- // returns the displayed value of the widget
- var val = this.get("value");
- if(!lang.isArray(val)){
- val = [val];
- }
- var ret = array.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(){
- // summary:
- // Loads the children represented by this widget's options.
- // reset the menu to make it populatable on the next click
- if(this._loadingStore){ return; }
- array.forEach(this._getChildren(), function(child){
- child.destroyRecursive();
- });
- // Add each menu item
- array.forEach(this.options, this._addOptionItem, this);
-
- // Update states
- this._updateSelection();
- },
-
- _updateSelection: function(){
- // summary:
- // Sets the "selected" class on the item for styling purposes
- this._set("value", this._getValueFromOpts());
- var val = this.value;
- if(!lang.isArray(val)){
- val = [val];
- }
- if(val && val[0]){
- array.forEach(this._getChildren(), function(child){
- var isSelected = array.some(val, function(v){
- return child.option && (v === child.option.value);
- });
- domClass.toggle(child.domNode, this.baseClass.replace(/\s+|$/g, "SelectedOption "), isSelected);
- child.domNode.setAttribute("aria-selected", isSelected ? "true" : "false");
- }, this);
- }
- },
-
- _getValueFromOpts: function(){
- // summary:
- // Returns the value of the widget by reading the options for
- // the selected flag
- var opts = this.getOptions() || [];
- if(!this.multiple && opts.length){
- // Mirror what a select does - choose the first one
- var opt = array.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){
- // Set value to be the sum of all selected
- return array.map(array.filter(opts, function(i){
- return i.selected;
- }), function(i){
- return i.value;
- }) || [];
- }
- return "";
- },
-
- // Internal functions to call when we have store notifications come in
- _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){
- var store = this.store;
- this.removeOption(store.getIdentity(item));
- },
- _onSetItem: function(/*item*/ item){
- this.updateOption(this._getOptionObjForItem(item));
- },
-
- _getOptionObjForItem: function(item){
- // summary:
- // Returns an option object based off the given item. The "value"
- // of the option item will be the identity of the item, the "label"
- // of the option will be the label of the item.
-
- // remove getLabel() call for 2.0 (it's to support the old dojo.data API)
- var store = this.store,
- label = (this.labelAttr && this.labelAttr in item) ? item[this.labelAttr] : store.getLabel(item),
- value = (label ? store.getIdentity(item) : null);
- return {value: value, label: label, item: item}; // __SelectOption
- },
-
- _addOptionForItem: function(/*item*/ item){
- // summary:
- // Creates (and adds) the option for the given item
- var store = this.store;
- if(store.isItemLoaded && !store.isItemLoaded(item)){
- // We are not loaded - so let's load it and add later.
- // Remove for 2.0 (it's the old dojo.data API)
- store.loadItem({item: item, onItem: function(i){
- this._addOptionForItem(i);
- },
- scope: this});
- return;
- }
- var newOpt = this._getOptionObjForItem(item);
- this.addOption(newOpt);
- },
-
- constructor: function(params /*===== , srcNodeRef =====*/){
- // summary:
- // Create the widget.
- // params: Object|null
- // Hash of initialization parameters for widget, including scalar values (like title, duration etc.)
- // and functions, typically callbacks like onClick.
- // The hash can contain any of the widget's properties, excluding read-only properties.
- // srcNodeRef: DOMNode|String?
- // If a srcNodeRef (DOM node) is specified, replace srcNodeRef with my generated DOM tree
-
- // 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 = (params || {}).value || null;
- this._notifyConnections = []; // remove for 2.0
- },
-
- buildRendering: function(){
- this.inherited(arguments);
- dom.setSelectable(this.focusNode, false);
- },
-
- _fillContent: function(){
- // summary:
- // Loads our options and sets up our dropdown correctly. We
- // don't want any content, so we don't call any inherit chain
- // function.
- if(!this.options){
- this.options =
- this.srcNodeRef
- ? query("> *", this.srcNodeRef).map(
- function(node){
- if(node.getAttribute("type") === "separator"){
- return { value: "", label: "", selected: false, disabled: false };
- }
- return {
- value: (node.getAttribute("data-" + kernel._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
- };
- },
- 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(){
- // summary:
- // sets up our event handling that we need for functioning
- // as a select
- this.inherited(arguments);
-
- // Make our event connections for updating state
- this.connect(this, "onChange", "_updateSelection");
-
- // moved from startup
- // Connects in our store, if we have one defined
- var store = this.store;
- if(store && (store.getIdentity || store.getFeatures()["dojo.data.api.Identity"])){
- // Temporarily set our store to null so that it will get set
- // and connected appropriately
- this.store = null;
- this.setStore(store, this._oValue);
- }
- },
-
- startup: function(){
- // summary:
- this._loadChildren();
- this.inherited(arguments);
- },
-
- destroy: function(){
- // summary:
- // Clean up our connections
-
- var h;
- while((h = this._notifyConnections.pop())){ h.remove(); }
-
- // Cancel listener for store updates
- if(this._queryRes && this._queryRes.close){
- this._queryRes.close();
- }
-
- this.inherited(arguments);
- },
-
- _addOptionItem: function(/*__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
- // separator is added in that place. Make sure to store the option
- // in the created option widget.
- },
-
- _removeOptionItem: function(/*__SelectOption*/ /*===== option =====*/){
- // summary:
- // User-overridable function which, for the given option, removes
- // its item from the select.
- },
-
- _setDisplay: function(/*String or String[]*/ /*===== newDisplay =====*/){
- // summary:
- // Overridable function which will set the display for the
- // widget. newDisplay is either a string (in the case of
- // single selects) or array of strings (in the case of multi-selects)
- },
-
- _getChildren: function(){
- // summary:
- // Overridable function to return the children that this widget contains.
- return [];
- },
-
- _getSelectedOptionsAttr: function(){
- // summary:
- // hooks into this.attr to provide a mechanism for getting the
- // option items for the current value of the widget.
- return this.getOptions(this.get("value"));
- },
-
- _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.
- // items:
- // An array of items that will be loaded, when needed
- },
-
- onSetStore: function(){
- // summary:
- // a function that can be connected to in order to receive a
- // notification that the store has finished loading and all options
- // from that store are available
- }
-});
-
-/*=====
-_FormSelectWidget.__SelectOption = __SelectOption;
-=====*/
-
-return _FormSelectWidget;
-
-});
diff --git a/lib/dijit/form/_FormValueMixin.js.uncompressed.js b/lib/dijit/form/_FormValueMixin.js.uncompressed.js
deleted file mode 100644
index 4944631ef..000000000
--- a/lib/dijit/form/_FormValueMixin.js.uncompressed.js
+++ /dev/null
@@ -1,89 +0,0 @@
-define("dijit/form/_FormValueMixin", [
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.set
- "dojo/keys", // keys.ESCAPE
- "dojo/sniff", // has("ie"), has("quirks")
- "./_FormWidgetMixin"
-], function(declare, domAttr, keys, has, _FormWidgetMixin){
-
- // module:
- // dijit/form/_FormValueMixin
-
- return declare("dijit.form._FormValueMixin", _FormWidgetMixin, {
- // summary:
- // Mixin for widgets corresponding to native HTML elements such as `<input>` or `<select>`
- // that have user changeable values.
- // description:
- // Each _FormValueMixin represents a single input value, and has a (possibly hidden) `<input>` element,
- // to which it serializes it's input value, so that form submission (either normal submission or via FormBind?)
- // works as expected.
-
- // readOnly: Boolean
- // Should this widget respond to user input?
- // In markup, this is specified as "readOnly".
- // Similar to disabled except readOnly form values are submitted.
- readOnly: false,
-
- _setReadOnlyAttr: function(/*Boolean*/ value){
- domAttr.set(this.focusNode, 'readOnly', value);
- this._set("readOnly", value);
- },
-
- postCreate: function(){
- this.inherited(arguments);
-
- if(has("ie")){ // 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._lastValueReported = this._resetValue = this.value;
- }
- },
-
- _setValueAttr: function(/*anything*/ newValue, /*Boolean?*/ priorityChange){
- // summary:
- // 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._handleOnChange(newValue, priorityChange);
- },
-
- _handleOnChange: function(/*anything*/ newValue, /*Boolean?*/ priorityChange){
- // summary:
- // 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(){
- // summary:
- // Restore the value to the last value passed to onChange
- this._setValueAttr(this._lastValueReported, false);
- },
-
- reset: function(){
- // summary:
- // Reset the widget's value to what it was at initialization time
- this._hasBeenBlurred = false;
- this._setValueAttr(this._resetValue, true);
- },
-
- _onKeyDown: function(e){
- if(e.keyCode == keys.ESCAPE && !(e.ctrlKey || e.altKey || e.metaKey)){
- if(has("ie") < 9 || (has("ie") && has("quirks"))){
- e.preventDefault(); // default behavior needs to be stopped here since keypress is too late
- var node = e.srcElement,
- te = node.ownerDocument.createEventObject();
- te.keyCode = keys.ESCAPE;
- te.shiftKey = e.shiftKey;
- node.fireEvent('onkeypress', te);
- }
- }
- }
- });
-});
diff --git a/lib/dijit/form/_FormValueWidget.js.uncompressed.js b/lib/dijit/form/_FormValueWidget.js.uncompressed.js
deleted file mode 100644
index 9edbf2e83..000000000
--- a/lib/dijit/form/_FormValueWidget.js.uncompressed.js
+++ /dev/null
@@ -1,51 +0,0 @@
-define("dijit/form/_FormValueWidget", [
- "dojo/_base/declare", // declare
- "dojo/sniff", // has("ie")
- "./_FormWidget",
- "./_FormValueMixin"
-], function(declare, has, _FormWidget, _FormValueMixin){
-
-// module:
-// dijit/form/_FormValueWidget
-
-return declare("dijit.form._FormValueWidget", [_FormWidget, _FormValueMixin],
-{
- // summary:
- // Base class for widgets corresponding to native HTML elements such as `<input>` or `<select>`
- // that have user changeable values.
- // description:
- // Each _FormValueWidget represents a single input value, and has a (possibly hidden) `<input>` element,
- // to which it serializes it's input value, so that form submission (either normal submission or via FormBind?)
- // works as expected.
-
- // 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.
-
- _layoutHackIE7: function(){
- // summary:
- // Work around table sizing bugs on IE7 by forcing redraw
-
- if(has("ie") == 7){ // fix IE7 layout bug when the widget is scrolled out of sight
- var domNode = this.domNode;
- var parent = domNode.parentNode;
- var pingNode = domNode.firstChild || domNode; // target node most unlikely to have a custom filter
- var origFilter = pingNode.style.filter; // save custom filter, most likely nothing
- var _this = this;
- while(parent && parent.clientHeight == 0){ // search for parents that haven't rendered yet
- (function ping(){
- var disconnectHandle = _this.connect(parent, "onscroll",
- function(){
- _this.disconnect(disconnectHandle); // only call once
- pingNode.style.filter = (new Date()).getMilliseconds(); // set to anything that's unique
- _this.defer(function(){ pingNode.style.filter = origFilter; }); // restore custom filter, if any
- }
- );
- })();
- parent = parent.parentNode;
- }
- }
- }
-});
-
-});
diff --git a/lib/dijit/form/_FormWidget.js.uncompressed.js b/lib/dijit/form/_FormWidget.js.uncompressed.js
deleted file mode 100644
index ada09eb0e..000000000
--- a/lib/dijit/form/_FormWidget.js.uncompressed.js
+++ /dev/null
@@ -1,71 +0,0 @@
-define("dijit/form/_FormWidget", [
- "dojo/_base/declare", // declare
- "dojo/has", // has("dijit-legacy-requires")
- "dojo/_base/kernel", // kernel.deprecated
- "dojo/ready",
- "../_Widget",
- "../_CssStateMixin",
- "../_TemplatedMixin",
- "./_FormWidgetMixin"
-], function(declare, has, kernel, ready, _Widget, _CssStateMixin, _TemplatedMixin, _FormWidgetMixin){
-
-
-// module:
-// dijit/form/_FormWidget
-
-// Back compat w/1.6, remove for 2.0
-if(has("dijit-legacy-requires")){
- ready(0, function(){
- var requires = ["dijit/form/_FormValueWidget"];
- require(requires); // use indirection so modules not rolled into a build
- });
-}
-
-return declare("dijit.form._FormWidget", [_Widget, _TemplatedMixin, _CssStateMixin, _FormWidgetMixin], {
- // summary:
- // Base class for widgets corresponding to native HTML elements such as `<checkbox>` or `<button>`,
- // which can be children of a `<form>` node or a `dijit/form/Form` widget.
- //
- // description:
- // Represents a single HTML element.
- // All these widgets should have these attributes just like native HTML input elements.
- // You can set them during widget construction or afterwards, via `dijit/_WidgetBase.set()`.
- //
- // They also share some common methods.
-
- setDisabled: function(/*Boolean*/ disabled){
- // summary:
- // Deprecated. Use set('disabled', ...) instead.
- kernel.deprecated("setDisabled("+disabled+") is deprecated. Use set('disabled',"+disabled+") instead.", "", "2.0");
- this.set('disabled', disabled);
- },
-
- setValue: function(/*String*/ value){
- // summary:
- // Deprecated. Use set('value', ...) instead.
- kernel.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.
- kernel.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.", "", "2.0");
- return this.get('value');
- },
-
- postMixInProperties: function(){
- // Setup name=foo string to be referenced from the template (but only if a name has been specified)
- // Unfortunately we can't use _setNameAttr to set the name due to IE limitations, see #8484, #8660.
- // Regarding escaping, see heading "Attribute values" in
- // http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.3.2
- this.nameAttrSetting = this.name ? ('name="' + this.name.replace(/"/g, "&quot;") + '"') : '';
- this.inherited(arguments);
- },
-
- // Override automatic assigning type --> focusNode, it causes exception on IE.
- // Instead, type must be specified as ${type} in the template, as part of the original DOM
- _setTypeAttr: null
-});
-
-});
diff --git a/lib/dijit/form/_FormWidgetMixin.js.uncompressed.js b/lib/dijit/form/_FormWidgetMixin.js.uncompressed.js
deleted file mode 100644
index 873466d53..000000000
--- a/lib/dijit/form/_FormWidgetMixin.js.uncompressed.js
+++ /dev/null
@@ -1,227 +0,0 @@
-define("dijit/form/_FormWidgetMixin", [
- "dojo/_base/array", // array.forEach
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.set
- "dojo/dom-style", // domStyle.get
- "dojo/_base/lang", // lang.hitch lang.isArray
- "dojo/mouse", // mouse.isLeft
- "dojo/sniff", // has("webkit")
- "dojo/window", // winUtils.scrollIntoView
- "../a11y" // a11y.hasDefaultTabStop
-], function(array, declare, domAttr, domStyle, lang, mouse, has, winUtils, a11y){
-
-// module:
-// dijit/form/_FormWidgetMixin
-
-return declare("dijit.form._FormWidgetMixin", null, {
- // summary:
- // Mixin for widgets corresponding to native HTML elements such as `<checkbox>` or `<button>`,
- // which can be children of a `<form>` node or a `dijit/form/Form` widget.
- //
- // description:
- // Represents a single HTML element.
- // All these widgets should have these attributes just like native HTML input elements.
- // You can set them during widget construction or afterwards, via `dijit/_WidgetBase.set()`.
- //
- // They also share some common methods.
-
- // name: [const] String
- // Name used when submitting form; same as "name" attribute or plain HTML elements
- name: "",
-
- // alt: String
- // Corresponds to the native HTML `<input>` element's attribute.
- alt: "",
-
- // value: String
- // Corresponds to the native HTML `<input>` element's attribute.
- value: "",
-
- // type: [const] String
- // Corresponds to the native HTML `<input>` element's attribute.
- type: "text",
-
- // type: String
- // Apply aria-label in markup to the widget's focusNode
- "aria-label": "focusNode",
-
- // tabIndex: String
- // Order fields are traversed when user hits the tab key
- tabIndex: "0",
- _setTabIndexAttr: "focusNode", // force copy even when tabIndex default value, needed since Button is <span>
-
- // disabled: Boolean
- // Should this widget respond to user input?
- // In markup, this is specified as "disabled='disabled'", or just "disabled".
- disabled: false,
-
- // intermediateChanges: Boolean
- // Fires onChange for each value change or only on demand
- intermediateChanges: false,
-
- // scrollOnFocus: Boolean
- // On focus, should this widget scroll into view?
- scrollOnFocus: true,
-
- // Override _WidgetBase mapping id to this.domNode, needs to be on focusNode so <label> etc.
- // works with screen reader
- _setIdAttr: "focusNode",
-
- _setDisabledAttr: function(/*Boolean*/ value){
- this._set("disabled", value);
- domAttr.set(this.focusNode, 'disabled', value);
- if(this.valueNode){
- domAttr.set(this.valueNode, 'disabled', value);
- }
- this.focusNode.setAttribute("aria-disabled", value ? "true" : "false");
-
- if(value){
- // reset these, because after the domNode is disabled, we can no longer receive
- // mouse related events, see #4200
- 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 :
- ("_setTabIndexAttr" in this) ? this._setTabIndexAttr : "focusNode";
- array.forEach(lang.isArray(attachPointNames) ? attachPointNames : [attachPointNames], function(attachPointName){
- var node = this[attachPointName];
- // complex code because tabIndex=-1 on a <div> doesn't work on FF
- if(has("webkit") || a11y.hasDefaultTabStop(node)){ // see #11064 about webkit bug
- node.setAttribute('tabIndex', "-1");
- }else{
- node.removeAttribute('tabIndex');
- }
- }, this);
- }else{
- if(this.tabIndex != ""){
- this.set('tabIndex', this.tabIndex);
- }
- }
- },
-
- _onFocus: function(/*String*/ by){
- // If user clicks on the widget, even if the mouse is released outside of it,
- // this widget's focusNode should get focus (to mimic native browser hehavior).
- // Browsers often need help to make sure the focus via mouse actually gets to the focusNode.
- if(by == "mouse" && this.isFocusable()){
- // IE exhibits strange scrolling behavior when refocusing a node so only do it when !focused.
- var focusConnector = this.connect(this.focusNode, "onfocus", function(){
- this.disconnect(mouseUpConnector);
- this.disconnect(focusConnector);
- });
- // 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(this.ownerDocumentBody, "onmouseup", function(){
- this.disconnect(mouseUpConnector);
- this.disconnect(focusConnector);
- // if here, then the mousedown did not focus the focusNode as the default action
- if(this.focused){
- this.focus();
- }
- });
- }
- if(this.scrollOnFocus){
- this.defer(function(){ winUtils.scrollIntoView(this.domNode); }); // without defer, the input caret position can change on mouse click
- }
- this.inherited(arguments);
- },
-
- isFocusable: function(){
- // summary:
- // Tells if this widget is focusable or not. Used internally by dijit.
- // tags:
- // protected
- return !this.disabled && this.focusNode && (domStyle.get(this.domNode, "display") != "none");
- },
-
- focus: function(){
- // summary:
- // Put focus on this widget
- if(!this.disabled && this.focusNode.focus){
- try{ this.focusNode.focus(); }catch(e){}/*squelch errors from hidden nodes*/
- }
- },
-
- compare: function(/*anything*/ val1, /*anything*/ val2){
- // summary:
- // Compare 2 values (as returned by get('value') for this widget).
- // tags:
- // protected
- 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(/*===== newValue =====*/){
- // summary:
- // Callback when this widget's value is changed.
- // tags:
- // callback
- },
-
- // _onChangeActive: [private] Boolean
- // Indicates that changes to the value should call onChange() callback.
- // This is false during widget initialization, to avoid calling onChange()
- // when the initial value is set.
- _onChangeActive: false,
-
- _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==false,
- // onChange is only called form priorityChange=true events.
- // tags:
- // private
- 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;
- }
- 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){
- this._onChangeHandle.remove();
- }
- // defer allows hidden value processing to run and
- // also the onChange handler can safely adjust focus, etc
- this._onChangeHandle = this.defer(
- function(){
- this._onChangeHandle = null;
- this.onChange(newValue);
- }); // try to collapse multiple onChange's fired faster than can be processed
- }
- }
- },
-
- create: function(){
- // Overrides _Widget.create()
- this.inherited(arguments);
- this._onChangeActive = true;
- },
-
- destroy: function(){
- if(this._onChangeHandle){ // destroy called before last onChange has fired
- this._onChangeHandle.remove();
- this.onChange(this._lastValueReported);
- }
- this.inherited(arguments);
- }
-});
-
-});
diff --git a/lib/dijit/form/_ListBase.js.uncompressed.js b/lib/dijit/form/_ListBase.js.uncompressed.js
deleted file mode 100644
index ea32c3ceb..000000000
--- a/lib/dijit/form/_ListBase.js.uncompressed.js
+++ /dev/null
@@ -1,135 +0,0 @@
-define("dijit/form/_ListBase", [
- "dojo/_base/declare", // declare
- "dojo/on",
- "dojo/window" // winUtils.scrollIntoView
-], function(declare, on, winUtils){
-
-// module:
-// dijit/form/_ListBase
-
-return declare( "dijit.form._ListBase", null, {
- // summary:
- // Focus-less menu to handle UI events consistently
- // Abstract methods that must be defined externally:
- //
- // - onSelect: item is active (mousedown but not yet mouseup, or keyboard arrow selected but no Enter)
- // - onDeselect: cancels onSelect
- // tags:
- // private
-
- // selected: DOMNode
- // currently selected node
- selected: null,
-
- _listConnect: function(/*String|Function*/ eventType, /*String*/ callbackFuncName){
- // summary:
- // Connects 'containerNode' to specified method of this object
- // and automatically registers for 'disconnect' on widget destroy.
- // description:
- // Provide widget-specific analog to 'connect'.
- // The callback function is called with the normal event object,
- // but also a second parameter is passed that indicates which list item
- // actually received the event.
- // returns:
- // A handle that can be passed to `disconnect` in order to disconnect
- // before the widget is destroyed.
- // tags:
- // private
-
- var self = this;
- return self.own(on(self.containerNode,
- on.selector(
- function(eventTarget, selector, target){
- return eventTarget.parentNode == target;
- },
- eventType
- ),
- function(evt){
- evt.preventDefault();
- self[callbackFuncName](evt, this);
- }
- ));
- },
-
- selectFirstNode: function(){
- // summary:
- // Select the first displayed item in the list.
- var first = this.containerNode.firstChild;
- while(first && first.style.display == "none"){
- first = first.nextSibling;
- }
- this._setSelectedAttr(first);
- },
-
- selectLastNode: function(){
- // summary:
- // Select the last displayed item in the list
- var last = this.containerNode.lastChild;
- while(last && last.style.display == "none"){
- last = last.previousSibling;
- }
- this._setSelectedAttr(last);
- },
-
- selectNextNode: function(){
- // summary:
- // Select the item just below the current selection.
- // If nothing selected, select first node.
- var selectedNode = this.selected;
- if(!selectedNode){
- this.selectFirstNode();
- }else{
- var next = selectedNode.nextSibling;
- while(next && next.style.display == "none"){
- next = next.nextSibling;
- }
- if(!next){
- this.selectFirstNode();
- }else{
- this._setSelectedAttr(next);
- }
- }
- },
-
- selectPreviousNode: function(){
- // summary:
- // Select the item just above the current selection.
- // If nothing selected, select last node (if
- // you select Previous and try to keep scrolling up the list).
- var selectedNode = this.selected;
- if(!selectedNode){
- this.selectLastNode();
- }else{
- var prev = selectedNode.previousSibling;
- while(prev && prev.style.display == "none"){
- prev = prev.previousSibling;
- }
- if(!prev){
- this.selectLastNode();
- }else{
- this._setSelectedAttr(prev);
- }
- }
- },
-
- _setSelectedAttr: function(/*DomNode*/ node){
- // summary:
- // Does the actual select.
- if(this.selected != node){
- var selectedNode = this.selected;
- if(selectedNode){
- this.onDeselect(selectedNode);
- this.selected = null;
- }
- if(node){
- this.selected = node;
- winUtils.scrollIntoView(node);
- this.onSelect(node);
- }
- }else if(node){
- this.onSelect(node);
- }
- }
-});
-
-});
diff --git a/lib/dijit/form/_ListMouseMixin.js.uncompressed.js b/lib/dijit/form/_ListMouseMixin.js.uncompressed.js
deleted file mode 100644
index 118f6fdfb..000000000
--- a/lib/dijit/form/_ListMouseMixin.js.uncompressed.js
+++ /dev/null
@@ -1,79 +0,0 @@
-define("dijit/form/_ListMouseMixin", [
- "dojo/_base/declare", // declare
- "dojo/mouse",
- "dojo/on",
- "dojo/touch",
- "./_ListBase"
-], function(declare, mouse, on, touch, _ListBase){
-
-// module:
-// dijit/form/_ListMouseMixin
-
-return declare( "dijit.form._ListMouseMixin", _ListBase, {
- // summary:
- // a Mixin to handle mouse or touch events for a focus-less menu
- // Abstract methods that must be defined externally:
- //
- // - onClick: item was chosen (mousedown somewhere on the menu and mouseup somewhere on the menu)
- // tags:
- // private
-
- postCreate: function(){
- this.inherited(arguments);
-
- this.own(on(this.domNode, touch.press, function(evt){ evt.preventDefault(); })); // prevent focus shift on list scrollbar press
-
- this._listConnect(touch.press, "_onMouseDown");
- this._listConnect(touch.release, "_onMouseUp");
- this._listConnect(mouse.enter, "_onMouseOver");
- this._listConnect(mouse.leave, "_onMouseOut");
- },
-
- _onMouseDown: function(/*Event*/ evt, /*DomNode*/ target){
- if(this._hoveredNode){
- this.onUnhover(this._hoveredNode);
- this._hoveredNode = null;
- }
- this._isDragging = true;
- this._setSelectedAttr(target);
- },
-
- _onMouseUp: function(/*Event*/ evt, /*DomNode*/ target){
- this._isDragging = false;
- var selectedNode = this.selected;
- var hoveredNode = this._hoveredNode;
- if(selectedNode && target == selectedNode){
- this.onClick(selectedNode);
- }else if(hoveredNode && target == hoveredNode){ // drag to select
- this._setSelectedAttr(hoveredNode);
- this.onClick(hoveredNode);
- }
- },
-
- _onMouseOut: function(/*Event*/ evt, /*DomNode*/ target){
- if(this._hoveredNode){
- this.onUnhover(this._hoveredNode);
- this._hoveredNode = null;
- }
- if(this._isDragging){
- this._cancelDrag = (new Date()).getTime() + 1000; // cancel in 1 second if no _onMouseOver fires
- }
- },
-
- _onMouseOver: function(/*Event*/ evt, /*DomNode*/ target){
- if(this._cancelDrag){
- var time = (new Date()).getTime();
- if(time > this._cancelDrag){
- this._isDragging = false;
- }
- this._cancelDrag = null;
- }
- this._hoveredNode = target;
- this.onHover(target);
- if(this._isDragging){
- this._setSelectedAttr(target);
- }
- }
-});
-
-});
diff --git a/lib/dijit/form/_RadioButtonMixin.js.uncompressed.js b/lib/dijit/form/_RadioButtonMixin.js.uncompressed.js
deleted file mode 100644
index 757d843ac..000000000
--- a/lib/dijit/form/_RadioButtonMixin.js.uncompressed.js
+++ /dev/null
@@ -1,71 +0,0 @@
-define("dijit/form/_RadioButtonMixin", [
- "dojo/_base/array", // array.forEach
- "dojo/_base/declare", // declare
- "dojo/dom-attr", // domAttr.set
- "dojo/_base/event", // event.stop
- "dojo/_base/lang", // lang.hitch
- "dojo/query", // query
- "../registry" // registry.getEnclosingWidget
-], function(array, declare, domAttr, event, lang, query, registry){
-
- // module:
- // dijit/form/_RadioButtonMixin
-
- return declare("dijit.form._RadioButtonMixin", null, {
- // summary:
- // Mixin to provide widget functionality for an HTML radio button
-
- // type: [private] String
- // type attribute on `<input>` node.
- // Users should not change this value.
- type: "radio",
-
- _getRelatedWidgets: function(){
- // Private function needed to help iterate over all radio buttons in a group.
- var ary = [];
- query("input[type=radio]", this.focusNode.form || this.ownerDocument).forEach( // can't use name= since query doesn't support [] in the name
- lang.hitch(this, function(inputNode){
- if(inputNode.name == this.name && inputNode.form == this.focusNode.form){
- var widget = registry.getEnclosingWidget(inputNode);
- if(widget){
- ary.push(widget);
- }
- }
- })
- );
- return ary;
- },
-
- _setCheckedAttr: function(/*Boolean*/ value){
- // If I am being checked then have to deselect currently checked radio button
- this.inherited(arguments);
- if(!this._created){ return; }
- if(value){
- array.forEach(this._getRelatedWidgets(), lang.hitch(this, function(widget){
- if(widget != this && widget.checked){
- widget.set('checked', false);
- }
- }));
- }
- },
-
- _getSubmitValue: function(/*String*/ value){
- return value === null ? "on" : value;
- },
-
- _onClick: function(/*Event*/ e){
- if(this.checked || this.disabled){ // nothing to do
- event.stop(e);
- return false;
- }
- if(this.readOnly){ // ignored by some browsers so we have to resync the DOM elements with widget values
- event.stop(e);
- array.forEach(this._getRelatedWidgets(), lang.hitch(this, function(widget){
- domAttr.set(this.focusNode || this.domNode, 'checked', widget.checked);
- }));
- return false;
- }
- return this.inherited(arguments);
- }
- });
-});
diff --git a/lib/dijit/form/_SearchMixin.js.uncompressed.js b/lib/dijit/form/_SearchMixin.js.uncompressed.js
deleted file mode 100644
index 9cd69fcf7..000000000
--- a/lib/dijit/form/_SearchMixin.js.uncompressed.js
+++ /dev/null
@@ -1,264 +0,0 @@
-define("dijit/form/_SearchMixin", [
- "dojo/data/util/filter", // patternToRegExp
- "dojo/_base/declare", // declare
- "dojo/_base/event", // event.stop
- "dojo/keys", // keys
- "dojo/_base/lang", // lang.clone lang.hitch
- "dojo/query", // query
- "dojo/sniff", // has("ie")
- "dojo/string", // string.substitute
- "dojo/when",
- "../registry" // registry.byId
-], function(filter, declare, event, keys, lang, query, has, string, when, registry){
-
- // module:
- // dijit/form/_SearchMixin
-
-
- return declare("dijit.form._SearchMixin", null, {
- // summary:
- // A mixin that implements the base functionality to search a store based upon user-entered text such as
- // with `dijit/form/ComboBox` or `dijit/form/FilteringSelect`
- // tags:
- // protected
-
- // pageSize: Integer
- // Argument to data provider.
- // Specifies maximum number of search results to return per query
- pageSize: Infinity,
-
- // store: [const] dojo/store/api/Store
- // Reference to data provider object used by this ComboBox.
- // The store must accept an object hash of properties for its query. See `query` and `queryExpr` for details.
- store: null,
-
- // fetchProperties: Object
- // Mixin to the store's fetch.
- // For example, to set the sort order of the ComboBox menu, pass:
- // | { sort: [{attribute:"name",descending: true}] }
- // To override the default queryOptions so that deep=false, do:
- // | { queryOptions: {ignoreCase: true, deep: false} }
- fetchProperties:{},
-
- // query: Object
- // A query that can be passed to `store` to initially filter the items.
- // ComboBox overwrites any reference to the `searchAttr` and sets it to the `queryExpr` with the user's input substituted.
- query: {},
-
- // searchDelay: Integer
- // Delay in milliseconds between when user types something and we start
- // searching based on that value
- searchDelay: 200,
-
- // searchAttr: String
- // Search for items in the data store where this attribute (in the item)
- // matches what the user typed
- searchAttr: "name",
-
- // queryExpr: String
- // This specifies what query is sent to the data store,
- // based on what the user has typed. Changing this expression will modify
- // whether the results are only exact matches, a "starting with" match,
- // etc.
- // dojo.data query expression pattern.
- // `${0}` will be substituted for the user text.
- // `*` is used for wildcards.
- // `${0}*` means "starts with", `*${0}*` means "contains", `${0}` means "is"
- queryExpr: "${0}*",
-
- // ignoreCase: Boolean
- // Set true if the query should ignore case when matching possible items
- ignoreCase: true,
-
- _abortQuery: function(){
- // stop in-progress query
- if(this.searchTimer){
- this.searchTimer = this.searchTimer.remove();
- }
- if(this._queryDeferHandle){
- this._queryDeferHandle = this._queryDeferHandle.remove();
- }
- if(this._fetchHandle){
- if(this._fetchHandle.abort){
- this._cancelingQuery = true;
- this._fetchHandle.abort();
- this._cancelingQuery = false;
- }
- if(this._fetchHandle.cancel){
- this._cancelingQuery = true;
- this._fetchHandle.cancel();
- this._cancelingQuery = false;
- }
- this._fetchHandle = null;
- }
- },
-
- _processInput: function(/*Event*/ evt){
- // summary:
- // Handles input (keyboard/paste) events
- if(this.disabled || this.readOnly){ return; }
- var key = evt.charOrCode;
-
- // except for cutting/pasting case - ctrl + x/v
- if(evt.altKey || ((evt.ctrlKey || evt.metaKey) && (key != 'x' && key != 'v')) || key == keys.SHIFT){
- return; // throw out weird key combinations and spurious events
- }
-
- var doSearch = false;
- this._prev_key_backspace = false;
-
- switch(key){
- case keys.DELETE:
- case keys.BACKSPACE:
- this._prev_key_backspace = true;
- this._maskValidSubsetError = true;
- doSearch = true;
- break;
-
- default:
- // Non char keys (F1-F12 etc..) shouldn't start a search..
- // Ascii characters and IME input (Chinese, Japanese etc.) should.
- //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
- if(!this.store){
- this.onSearch();
- }else{
- this.searchTimer = this.defer("_startSearchFromInput", 1);
- }
- }
- },
-
- onSearch: function(/*===== results, query, options =====*/){
- // summary:
- // Callback when a search completes.
- //
- // results: Object
- // An array of items from the originating _SearchMixin's store.
- //
- // query: Object
- // A copy of the originating _SearchMixin's query property.
- //
- // options: Object
- // The additional parameters sent to the originating _SearchMixin's store, including: start, count, queryOptions.
- //
- // tags:
- // callback
- },
-
- _startSearchFromInput: function(){
- this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g, "\\$1"));
- },
-
- _startSearch: function(/*String*/ text){
- // summary:
- // Starts a search for elements matching text (text=="" means to return all items),
- // and calls onSearch(...) when the search completes, to display the results.
-
- this._abortQuery();
- var
- _this = this,
- // Setup parameters to be passed to store.query().
- // Create a new query to prevent accidentally querying for a hidden
- // value from FilteringSelect's keyField
- query = lang.clone(this.query), // #5970
- options = {
- start: 0,
- count: this.pageSize,
- queryOptions: { // remove for 2.0
- ignoreCase: this.ignoreCase,
- deep: true
- }
- },
- qs = string.substitute(this.queryExpr, [text]),
- q,
- startQuery = function(){
- var resPromise = _this._fetchHandle = _this.store.query(query, options);
- if(_this.disabled || _this.readOnly || (q !== _this._lastQuery)){
- return;
- } // avoid getting unwanted notify
- when(resPromise, function(res){
- _this._fetchHandle = null;
- if(!_this.disabled && !_this.readOnly && (q === _this._lastQuery)){ // avoid getting unwanted notify
- when(resPromise.total, function(total){
- res.total = total;
- var pageSize = _this.pageSize;
- if(isNaN(pageSize) || pageSize > res.total){ pageSize = res.total; }
- // Setup method to fetching the next page of results
- res.nextPage = function(direction){
- // tell callback the direction of the paging so the screen
- // reader knows which menu option to shout
- options.direction = direction = direction !== false;
- options.count = pageSize;
- if(direction){
- options.start += res.length;
- if(options.start >= res.total){
- options.count = 0;
- }
- }else{
- options.start -= pageSize;
- if(options.start < 0){
- options.count = Math.max(pageSize + options.start, 0);
- options.start = 0;
- }
- }
- if(options.count <= 0){
- res.length = 0;
- _this.onSearch(res, query, options);
- }else{
- startQuery();
- }
- };
- _this.onSearch(res, query, options);
- });
- }
- }, function(err){
- _this._fetchHandle = null;
- if(!_this._cancelingQuery){ // don't treat canceled query as an error
- console.error(_this.declaredClass + ' ' + err.toString());
- }
- });
- };
-
- lang.mixin(options, this.fetchProperties);
-
- // Generate query
- if(this.store._oldAPI){
- // remove this branch for 2.0
- q = qs;
- }else{
- // Query on searchAttr is a regex for benefit of dojo/store/Memory,
- // but with a toString() method to help dojo/store/JsonRest.
- // Search string like "Co*" converted to regex like /^Co.*$/i.
- q = filter.patternToRegExp(qs, this.ignoreCase);
- q.toString = function(){ return qs; };
- }
-
- // set _lastQuery, *then* start the timeout
- // otherwise, if the user types and the last query returns before the timeout,
- // _lastQuery won't be set and their input gets rewritten
- this._lastQuery = query[this.searchAttr] = q;
- this._queryDeferHandle = this.defer(startQuery, this.searchDelay);
- },
-
- //////////// INITIALIZATION METHODS ///////////////////////////////////////
-
- constructor: function(){
- this.query={};
- this.fetchProperties={};
- },
-
- postMixInProperties: function(){
- if(!this.store){
- var list = this.list;
- if(list){
- this.store = registry.byId(list);
- }
- }
- this.inherited(arguments);
- }
- });
-});
diff --git a/lib/dijit/form/_Spinner.js.uncompressed.js b/lib/dijit/form/_Spinner.js.uncompressed.js
deleted file mode 100644
index d4c6bc9df..000000000
--- a/lib/dijit/form/_Spinner.js.uncompressed.js
+++ /dev/null
@@ -1,160 +0,0 @@
-require({cache:{
-'url:dijit/form/templates/Spinner.html':"<div class=\"dijit dijitReset dijitInline dijitLeft\"\n\tid=\"widget_${id}\" role=\"presentation\"\n\t><div class=\"dijitReset dijitButtonNode dijitSpinnerButtonContainer\"\n\t\t><input class=\"dijitReset dijitInputField dijitSpinnerButtonInner\" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t/><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton\"\n\t\t\tdata-dojo-attach-point=\"upArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"&#9650; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t\t><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\tdata-dojo-attach-point=\"downArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" 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' data-dojo-attach-point=\"textbox,focusNode\" type=\"${type}\" data-dojo-attach-event=\"onkeypress:_onKeyPress\"\n\t\t\trole=\"spinbutton\" autocomplete=\"off\" ${!nameAttrSetting}\n\t/></div\n></div>\n"}});
-define("dijit/form/_Spinner", [
- "dojo/_base/declare", // declare
- "dojo/_base/event", // event.stop
- "dojo/keys", // keys keys.DOWN_ARROW keys.PAGE_DOWN keys.PAGE_UP keys.UP_ARROW
- "dojo/_base/lang", // lang.hitch
- "dojo/sniff", // has("mozilla")
- "dojo/mouse", // mouse.wheel
- "../typematic",
- "./RangeBoundTextBox",
- "dojo/text!./templates/Spinner.html",
- "./_TextBoxMixin" // selectInputText
-], function(declare, event, keys, lang, has, mouse, typematic, RangeBoundTextBox, template, _TextBoxMixin){
-
- // module:
- // dijit/form/_Spinner
-
- return declare("dijit.form._Spinner", RangeBoundTextBox, {
- // summary:
- // Mixin for validation widgets with a spinner.
- // description:
- // This class basically (conceptually) extends `dijit/form/ValidationTextBox`.
- // It modifies the template to have up/down arrows, and provides related handling code.
-
- // defaultTimeout: Number
- // Number of milliseconds before a held arrow key or up/down button becomes typematic
- defaultTimeout: 500,
-
- // minimumTimeout: Number
- // minimum number of milliseconds that typematic event fires when held key or button is held
- minimumTimeout: 10,
-
- // timeoutChangeRate: Number
- // Fraction of time used to change the typematic timer between events.
- // 1.0 means that each typematic event fires at defaultTimeout intervals.
- // Less than 1.0 means that each typematic event fires at an increasing faster rate.
- timeoutChangeRate: 0.90,
-
- // smallDelta: Number
- // Adjust the value by this much when spinning using the arrow keys/buttons
- smallDelta: 1,
-
- // largeDelta: Number
- // Adjust the value by this much when spinning using the PgUp/Dn keys
- largeDelta: 10,
-
- templateString: template,
-
- baseClass: "dijitTextBox dijitSpinner",
-
- // Set classes like dijitUpArrowButtonHover or dijitDownArrowButtonActive depending on
- // mouse action over specified node
- cssStateNodes: {
- "upArrowNode": "dijitUpArrowButton",
- "downArrowNode": "dijitDownArrowButton"
- },
-
- adjust: function(val /*=====, delta =====*/){
- // summary:
- // Overridable function used to adjust a primitive value(Number/Date/...) by the delta amount specified.
- // The val is adjusted in a way that makes sense to the object type.
- // val: Object
- // delta: Number
- // tags:
- // protected extension
- return val;
- },
-
- _arrowPressed: function(/*Node*/ nodePressed, /*Number*/ direction, /*Number*/ increment){
- // summary:
- // Handler for arrow button or arrow key being pressed
- if(this.disabled || this.readOnly){ return; }
- this._setValueAttr(this.adjust(this.get('value'), direction*increment), false);
- _TextBoxMixin.selectInputText(this.textbox, this.textbox.value.length);
- },
-
- _arrowReleased: function(/*Node*/ /*===== node =====*/){
- // summary:
- // Handler for arrow button or arrow key being released
- this._wheelTimer = null;
- },
-
- _typematicCallback: function(/*Number*/ count, /*DOMNode*/ node, /*Event*/ evt){
- var inc=this.smallDelta;
- if(node == this.textbox){
- var key = evt.charOrCode;
- inc = (key == keys.PAGE_UP || key == keys.PAGE_DOWN) ? this.largeDelta : this.smallDelta;
- node = (key == keys.UP_ARROW || key == keys.PAGE_UP) ? this.upArrowNode : this.downArrowNode;
- }
- if(count == -1){ this._arrowReleased(node); }
- else{ this._arrowPressed(node, (node == this.upArrowNode) ? 1 : -1, inc); }
- },
-
- _wheelTimer: null,
- _mouseWheeled: function(/*Event*/ evt){
- // summary:
- // Mouse wheel listener where supported
-
- event.stop(evt);
- // FIXME: Safari bubbles
-
- // be nice to DOH and scroll as much as the event says to
- var wheelDelta = evt.wheelDelta / 120;
- if(Math.floor(wheelDelta) != wheelDelta){
- // If not an int multiple of 120, then its touchpad scrolling.
- // This can change very fast so just assume 1 wheel click to make it more manageable.
- wheelDelta = evt.wheelDelta > 0 ? 1 : -1;
- }
- var scrollAmount = evt.detail ? (evt.detail * -1) : wheelDelta;
- if(scrollAmount !== 0){
- var node = this[(scrollAmount > 0 ? "upArrowNode" : "downArrowNode" )];
-
- this._arrowPressed(node, scrollAmount, this.smallDelta);
-
- if(this._wheelTimer){
- this._wheelTimer.remove();
- }
- this._wheelTimer = this.defer(function(){ this._arrowReleased(node); }, 50);
- }
- },
-
- _setConstraintsAttr: function(/*Object*/ constraints){
- this.inherited(arguments);
- if(this.focusNode){ // not set when called from postMixInProperties
- if(this.constraints.min !== undefined){
- this.focusNode.setAttribute("aria-valuemin", this.constraints.min);
- }else{
- this.focusNode.removeAttribute("aria-valuemin");
- }
- if(this.constraints.max !== undefined){
- this.focusNode.setAttribute("aria-valuemax", this.constraints.max);
- }else{
- this.focusNode.removeAttribute("aria-valuemax");
- }
- }
- },
-
- _setValueAttr: function(/*Number*/ value, /*Boolean?*/ priorityChange){
- // summary:
- // Hook so set('value', ...) works.
-
- this.focusNode.setAttribute("aria-valuenow", value);
- this.inherited(arguments);
- },
-
- postCreate: function(){
- this.inherited(arguments);
-
- // extra listeners
- this.connect(this.domNode, mouse.wheel, "_mouseWheeled");
- this.own(
- typematic.addListener(this.upArrowNode, this.textbox, {charOrCode:keys.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout, this.minimumTimeout),
- typematic.addListener(this.downArrowNode, this.textbox, {charOrCode:keys.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout, this.minimumTimeout),
- typematic.addListener(this.upArrowNode, this.textbox, {charOrCode:keys.PAGE_UP,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout, this.minimumTimeout),
- typematic.addListener(this.downArrowNode, this.textbox, {charOrCode:keys.PAGE_DOWN,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout, this.minimumTimeout)
- );
- }
- });
-});
diff --git a/lib/dijit/form/_TextBoxMixin.js.uncompressed.js b/lib/dijit/form/_TextBoxMixin.js.uncompressed.js
deleted file mode 100644
index 7c010bcb3..000000000
--- a/lib/dijit/form/_TextBoxMixin.js.uncompressed.js
+++ /dev/null
@@ -1,474 +0,0 @@
-define("dijit/form/_TextBoxMixin", [
- "dojo/_base/array", // array.forEach
- "dojo/_base/declare", // declare
- "dojo/dom", // dom.byId
- "dojo/_base/event", // event.stop
- "dojo/keys", // keys.ALT keys.CAPS_LOCK keys.CTRL keys.META keys.SHIFT
- "dojo/_base/lang", // lang.mixin
- "dojo/on", // on
- "../main" // for exporting dijit._setSelectionRange, dijit.selectInputText
-], function(array, declare, dom, event, keys, lang, on, dijit){
-
-// module:
-// dijit/form/_TextBoxMixin
-
-var _TextBoxMixin = declare("dijit.form._TextBoxMixin", null, {
- // summary:
- // A mixin for textbox form input widgets
-
- // trim: Boolean
- // Removes leading and trailing whitespace if true. Default is false.
- trim: false,
-
- // uppercase: Boolean
- // Converts all characters to uppercase if true. Default is false.
- uppercase: false,
-
- // lowercase: Boolean
- // Converts all characters to lowercase if true. Default is false.
- lowercase: false,
-
- // propercase: Boolean
- // Converts the first character of each word to uppercase if true.
- propercase: false,
-
- // maxLength: String
- // HTML INPUT tag maxLength declaration.
- maxLength: "",
-
- // selectOnClick: [const] Boolean
- // If true, all text will be selected when focused with mouse
- selectOnClick: false,
-
- // 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: "",
-
- _getValueAttr: function(){
- // summary:
- // Hook so get('value') works as we like.
- // description:
- // For `dijit/form/TextBox` this basically returns the value of the `<input>`.
- //
- // For `dijit/form/MappedTextBox` subclasses, which have both
- // a "displayed value" and a separate "submit value",
- // This treats the "displayed value" as the master value, computing the
- // submit value from it via this.parse().
- return this.parse(this.get('displayedValue'), this.constraints);
- },
-
- _setValueAttr: function(value, /*Boolean?*/ priorityChange, /*String?*/ formattedValue){
- // summary:
- // Hook so set('value', ...) works.
- //
- // description:
- // Sets the value of the widget to "value" which can be of
- // any type as determined by the widget.
- //
- // value:
- // The visual element value is also set to a corresponding,
- // but not necessarily the same, value.
- //
- // formattedValue:
- // If specified, used to set the visual element value,
- // otherwise a computed visual value is used.
- //
- // priorityChange:
- // If true, an onChange event is fired immediately instead of
- // waiting for the next blur event.
-
- var filteredValue;
- if(value !== undefined){
- // TODO: this is calling filter() on both the display value and the actual value.
- // I added a comment to the filter() definition about this, but it should be changed.
- filteredValue = this.filter(value);
- if(typeof formattedValue != "string"){
- if(filteredValue !== null && ((typeof filteredValue != "number") || !isNaN(filteredValue))){
- formattedValue = this.filter(this.format(filteredValue, this.constraints));
- }else{ formattedValue = ''; }
- }
- }
- if(formattedValue != null /* and !undefined */ && ((typeof formattedValue) != "number" || !isNaN(formattedValue)) && this.textbox.value != formattedValue){
- this.textbox.value = formattedValue;
- this._set("displayedValue", this.get("displayedValue"));
- }
-
- if(this.textDir == "auto"){
- this.applyTextDir(this.focusNode, formattedValue);
- }
-
- this.inherited(arguments, [filteredValue, priorityChange]);
- },
-
- // displayedValue: String
- // For subclasses like ComboBox where the displayed value
- // (ex: Kentucky) and the serialized value (ex: KY) are different,
- // this represents the displayed value.
- //
- // Setting 'displayedValue' through set('displayedValue', ...)
- // updates 'value', and vice-versa. Otherwise 'value' is updated
- // from 'displayedValue' periodically, like onBlur etc.
- //
- // TODO: move declaration to MappedTextBox?
- // Problem is that ComboBox references displayedValue,
- // for benefit of FilteringSelect.
- displayedValue: "",
-
- _getDisplayedValueAttr: function(){
- // summary:
- // Hook so get('displayedValue') works.
- // description:
- // Returns the displayed value (what the user sees on the screen),
- // after filtering (ie, trimming spaces etc.).
- //
- // For some subclasses of TextBox (like ComboBox), the displayed value
- // 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);
- },
-
- _setDisplayedValueAttr: function(/*String*/ value){
- // summary:
- // 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,
- // but not necessarily the same, value.
-
- if(value == null /* or undefined */){ value = '' }
- else if(typeof value != "string"){ value = String(value) }
-
- this.textbox.value = 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'));
-
- // textDir support
- if(this.textDir == "auto"){
- this.applyTextDir(this.focusNode, value);
- }
- },
-
- format: function(value /*=====, constraints =====*/){
- // summary:
- // Replaceable function to convert a value to a properly formatted string.
- // value: String
- // constraints: Object
- // tags:
- // protected extension
- return value == null /* or undefined */ ? "" : (value.toString ? value.toString() : value);
- },
-
- parse: function(value /*=====, constraints =====*/){
- // summary:
- // Replaceable function to convert a formatted string to a value
- // value: String
- // constraints: Object
- // tags:
- // protected extension
-
- return value; // String
- },
-
- _refreshState: function(){
- // summary:
- // After the user types some characters, etc., this method is
- // called to check the field for validity etc. The base method
- // in `dijit/form/TextBox` does nothing, but subclasses override.
- // tags:
- // protected
- },
-
- /*=====
- onInput: function(event){
- // summary:
- // Connect to this function to receive notifications of various user data-input events.
- // Return false to cancel the event and prevent it from being processed.
- // event:
- // keydown | keypress | cut | paste | input
- // tags:
- // callback
- },
- =====*/
- onInput: function(){},
-
- __skipInputEvent: false,
- _onInput: function(/*Event*/ evt){
- // summary:
- // Called AFTER the input event has happened
-
- // set text direction according to textDir that was defined in creation
- if(this.textDir == "auto"){
- this.applyTextDir(this.focusNode, this.focusNode.value);
- }
-
- this._processInput(evt);
- },
-
- _processInput: function(/*Event*/ evt){
- // summary:
- // Default action handler for user input events
-
- 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
- this.textbox.setAttribute("value", this.textbox.value); // DOM and JS values should be the same
-
- this.inherited(arguments);
-
- // normalize input events to reduce spurious event processing
- // onkeydown: do not forward modifier keys
- // set charOrCode to numeric keycode
- // onkeypress: do not forward numeric charOrCode keys (already sent through onkeydown)
- // onpaste & oncut: set charOrCode to 229 (IME)
- // oninput: if primary event not already processed, set charOrCode to 229 (IME), else do not forward
- var handleEvent = function(e){
- var charOrCode;
- if(e.type == "keydown"){
- charOrCode = e.keyCode;
- switch(charOrCode){ // ignore state keys
- case keys.SHIFT:
- case keys.ALT:
- case keys.CTRL:
- case keys.META:
- case keys.CAPS_LOCK:
- case keys.NUM_LOCK:
- case keys.SCROLL_LOCK:
- return;
- }
- if(!e.ctrlKey && !e.metaKey && !e.altKey){ // no modifiers
- switch(charOrCode){ // ignore location keys
- case keys.NUMPAD_0:
- case keys.NUMPAD_1:
- case keys.NUMPAD_2:
- case keys.NUMPAD_3:
- case keys.NUMPAD_4:
- case keys.NUMPAD_5:
- case keys.NUMPAD_6:
- case keys.NUMPAD_7:
- case keys.NUMPAD_8:
- case keys.NUMPAD_9:
- case keys.NUMPAD_MULTIPLY:
- case keys.NUMPAD_PLUS:
- case keys.NUMPAD_ENTER:
- case keys.NUMPAD_MINUS:
- case keys.NUMPAD_PERIOD:
- case keys.NUMPAD_DIVIDE:
- return;
- }
- if((charOrCode >= 65 && charOrCode <= 90) || (charOrCode >= 48 && charOrCode <= 57) || charOrCode == keys.SPACE){
- return; // keypress will handle simple non-modified printable keys
- }
- var named = false;
- for(var i in keys){
- if(keys[i] === e.keyCode){
- named = true;
- break;
- }
- }
- if(!named){ return; } // only allow named ones through
- }
- }
- charOrCode = e.charCode >= 32 ? String.fromCharCode(e.charCode) : e.charCode;
- if(!charOrCode){
- charOrCode = (e.keyCode >= 65 && e.keyCode <= 90) || (e.keyCode >= 48 && e.keyCode <= 57) || e.keyCode == keys.SPACE ? String.fromCharCode(e.keyCode) : e.keyCode;
- }
- if(!charOrCode){
- charOrCode = 229; // IME
- }
- if(e.type == "keypress"){
- if(typeof charOrCode != "string"){ return; }
- if((charOrCode >= 'a' && charOrCode <= 'z') || (charOrCode >= 'A' && charOrCode <= 'Z') || (charOrCode >= '0' && charOrCode <= '9') || (charOrCode === ' ')){
- if(e.ctrlKey || e.metaKey || e.altKey){ return; } // can only be stopped reliably in keydown
- }
- }
- if(e.type == "input"){
- if(this.__skipInputEvent){ // duplicate event
- this.__skipInputEvent = false;
- return;
- }
- }else{
- this.__skipInputEvent = true;
- }
- // create fake event to set charOrCode and to know if preventDefault() was called
- var faux = { faux: true }, attr;
- for(attr in e){
- if(attr != "layerX" && attr != "layerY"){ // prevent WebKit warnings
- var v = e[attr];
- if(typeof v != "function" && typeof v != "undefined"){ faux[attr] = v; }
- }
- }
- lang.mixin(faux, {
- charOrCode: charOrCode,
- _wasConsumed: false,
- preventDefault: function(){
- faux._wasConsumed = true;
- e.preventDefault();
- },
- stopPropagation: function(){ e.stopPropagation(); }
- });
- // give web page author a chance to consume the event
- //console.log(faux.type + ', charOrCode = (' + (typeof charOrCode) + ') ' + charOrCode + ', ctrl ' + !!faux.ctrlKey + ', alt ' + !!faux.altKey + ', meta ' + !!faux.metaKey + ', shift ' + !!faux.shiftKey);
- if(this.onInput(faux) === false){ // return false means stop
- faux.preventDefault();
- faux.stopPropagation();
- }
- if(faux._wasConsumed){ return; } // if preventDefault was called
- this.defer(function(){ this._onInput(faux); }); // widget notification after key has posted
- };
- this.own(on(this.textbox, "keydown, keypress, paste, cut, input, compositionend", lang.hitch(this, handleEvent)));
- },
-
- _blankValue: '', // if the textbox is blank, what value should be reported
- filter: function(val){
- // summary:
- // Auto-corrections (such as trimming) that are applied to textbox
- // value on blur or form submit.
- // description:
- // For MappedTextBox subclasses, this is called twice
- //
- // - once with the display value
- // - 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()
- // to execute standard trimming code in TextBox.filter().
- //
- // TODO: break this into two methods in 2.0
- //
- // tags:
- // protected extension
- if(val === null){ return this._blankValue; }
- if(typeof val != "string"){ return val; }
- if(this.trim){
- val = lang.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);
- },
-
- _isTextSelected: function(){
- return this.textbox.selectionStart != this.textbox.selectionEnd;
- },
-
- _onFocus: function(/*String*/ by){
- if(this.disabled || this.readOnly){ return; }
-
- // Select all text on focus via click if nothing already selected.
- // Since mouse-up will clear the selection, need to defer selection until after mouse-up.
- // Don't do anything on focus by tabbing into the widget since there's no associated mouse-up event.
- if(this.selectOnClick && by == "mouse"){
- this._selectOnClickHandle = this.connect(this.domNode, "onmouseup", function(){
- // Only select all text on first click; otherwise users would have no way to clear
- // the selection.
- this.disconnect(this._selectOnClickHandle);
- this._selectOnClickHandle = null;
-
- // Check if the user selected some text manually (mouse-down, mouse-move, mouse-up)
- // and if not, then select all the text
- if(!this._isTextSelected()){
- _TextBoxMixin.selectInputText(this.textbox);
- }
- });
- // in case the mouseup never comes
- this.defer(function(){
- if(this._selectOnClickHandle){
- this.disconnect(this._selectOnClickHandle);
- this._selectOnClickHandle = null;
- }
- }, 500); // if mouseup not received soon, then treat it as some gesture
- }
- // 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(){
- // Overrides `dijit/_FormWidget/reset()`.
- // Additionally resets the displayed textbox value to ''
- this.textbox.value = '';
- this.inherited(arguments);
- },
-
- _setTextDirAttr: function(/*String*/ textDir){
- // summary:
- // Setter for textDir.
- // description:
- // Users shouldn't call this function; they should be calling
- // set('textDir', value)
- // tags:
- // private
-
- // only if new textDir is different from the old one
- // and on widgets creation.
- if(!this._created
- || this.textDir != textDir){
- this._set("textDir", textDir);
- // so the change of the textDir will take place immediately.
- this.applyTextDir(this.focusNode, this.focusNode.value);
- }
- }
-});
-
-
-_TextBoxMixin._setSelectionRange = dijit._setSelectionRange = function(/*DomNode*/ element, /*Number?*/ start, /*Number?*/ stop){
- if(element.setSelectionRange){
- element.setSelectionRange(start, stop);
- }
-};
-
-_TextBoxMixin.selectInputText = 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).
-
- // TODO: use functions in _editor/selection.js?
- element = dom.byId(element);
- if(isNaN(start)){ start = 0; }
- if(isNaN(stop)){ stop = element.value ? element.value.length : 0; }
- try{
- element.focus();
- _TextBoxMixin._setSelectionRange(element, start, stop);
- }catch(e){ /* squelch random errors (esp. on IE) from unexpected focus changes or DOM nodes being hidden */ }
-};
-
-return _TextBoxMixin;
-});
diff --git a/lib/dijit/form/_ToggleButtonMixin.js.uncompressed.js b/lib/dijit/form/_ToggleButtonMixin.js.uncompressed.js
deleted file mode 100644
index dabd07928..000000000
--- a/lib/dijit/form/_ToggleButtonMixin.js.uncompressed.js
+++ /dev/null
@@ -1,55 +0,0 @@
-define("dijit/form/_ToggleButtonMixin", [
- "dojo/_base/declare", // declare
- "dojo/dom-attr" // domAttr.set
-], function(declare, domAttr){
-
-// module:
-// dijit/form/_ToggleButtonMixin
-
-return declare("dijit.form._ToggleButtonMixin", null, {
- // summary:
- // A mixin to provide functionality to allow a button that can be in two states (checked or not).
-
- // checked: Boolean
- // Corresponds to the native HTML `<input>` element's attribute.
- // In markup, specified as "checked='checked'" or just "checked".
- // True if the button is depressed, or the checkbox is checked,
- // or the radio button is selected, etc.
- checked: false,
-
- // aria-pressed for toggle buttons, and aria-checked for checkboxes
- _aria_attr: "aria-pressed",
-
- _onClick: function(/*Event*/ evt){
- var original = this.checked;
- this._set('checked', !original); // partially set the toggled value, assuming the toggle will work, so it can be overridden in the onclick handler
- var ret = this.inherited(arguments); // the user could reset the value here
- this.set('checked', ret ? this.checked : original); // officially set the toggled or user value, or reset it back
- return ret;
- },
-
- _setCheckedAttr: function(/*Boolean*/ value, /*Boolean?*/ priorityChange){
- this._set("checked", value);
- var node = this.focusNode || this.domNode;
- domAttr.set(node, "checked", !!value); // "mixed" -> true
- if(value){
- node.setAttribute("checked", "");
- }else{
- node.removeAttribute("checked");
- }
- node.setAttribute(this._aria_attr, String(value)); // aria values should be strings
- this._handleOnChange(value, priorityChange);
- },
-
- reset: function(){
- // summary:
- // Reset the widget's value to what it was at initialization time
-
- this._hasBeenBlurred = false;
-
- // set checked state to original setting
- this.set('checked', this.params.checked || false);
- }
-});
-
-});
diff --git a/lib/dijit/form/nls/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/ComboBox.js.uncompressed.js
deleted file mode 100644
index dd9807dda..000000000
--- a/lib/dijit/form/nls/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,40 +0,0 @@
-define("dijit/form/nls/ComboBox", { root:
-//begin v1.x content
-({
- previousMessage: "Previous choices",
- nextMessage: "More choices"
-})
-//end v1.x content
-,
-"zh": true,
-"zh-tw": true,
-"tr": true,
-"th": true,
-"sv": true,
-"sl": true,
-"sk": true,
-"ru": true,
-"ro": true,
-"pt": true,
-"pt-pt": true,
-"pl": true,
-"nl": true,
-"nb": true,
-"ko": true,
-"kk": true,
-"ja": true,
-"it": true,
-"hu": true,
-"hr": true,
-"he": true,
-"fr": true,
-"fi": true,
-"es": true,
-"el": true,
-"de": true,
-"da": true,
-"cs": true,
-"ca": true,
-"az": true,
-"ar": true
-});
diff --git a/lib/dijit/form/nls/Textarea.js.uncompressed.js b/lib/dijit/form/nls/Textarea.js.uncompressed.js
deleted file mode 100644
index 2d05609c1..000000000
--- a/lib/dijit/form/nls/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,43 +0,0 @@
-define("dijit/form/nls/Textarea", { root:
-//begin v1.x content
-// used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'edit area', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'edit area frame' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-//end v1.x content
-,
-"zh": true,
-"zh-tw": true,
-"tr": true,
-"th": true,
-"sv": true,
-"sl": true,
-"sk": true,
-"ru": true,
-"ro": true,
-"pt": true,
-"pt-pt": true,
-"pl": true,
-"nl": true,
-"nb": true,
-"ko": true,
-"kk": true,
-"ja": true,
-"it": true,
-"hu": true,
-"hr": true,
-"he": true,
-"fr": true,
-"fi": true,
-"es": true,
-"el": true,
-"de": true,
-"da": true,
-"cs": true,
-"ca": true,
-"az": true,
-"ar": true
-});
diff --git a/lib/dijit/form/nls/ar/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/ar/ComboBox.js.uncompressed.js
deleted file mode 100644
index 6712ff35d..000000000
--- a/lib/dijit/form/nls/ar/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/ar/ComboBox", ({
- previousMessage: "الاختيارات السابقة",
- nextMessage: "مزيد من الاختيارات"
-})
-);
diff --git a/lib/dijit/form/nls/ar/Textarea.js.uncompressed.js b/lib/dijit/form/nls/ar/Textarea.js.uncompressed.js
deleted file mode 100644
index f3b1a2780..000000000
--- a/lib/dijit/form/nls/ar/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/ar/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'مساحة التحرير', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'اطار مساحة التحرير' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/ar/validate.js.uncompressed.js b/lib/dijit/form/nls/ar/validate.js.uncompressed.js
deleted file mode 100644
index 9445e2e07..000000000
--- a/lib/dijit/form/nls/ar/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/ar/validate", ({
- invalidMessage: "القيمة التي تم ادخالها غير صحيحة.",
- missingMessage: "يجب ادخال هذه القيمة.",
- rangeMessage: "هذه القيمة ليس بالمدى الصحيح."
-})
-);
diff --git a/lib/dijit/form/nls/az/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/az/ComboBox.js.uncompressed.js
deleted file mode 100644
index 4522d81f6..000000000
--- a/lib/dijit/form/nls/az/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/az/ComboBox", ({
- "previousMessage" : "Əvvəlki variantlar",
- "nextMessage" : "Başqa variantlar"
-})
-);
diff --git a/lib/dijit/form/nls/az/Textarea.js.uncompressed.js b/lib/dijit/form/nls/az/Textarea.js.uncompressed.js
deleted file mode 100644
index 065fc024e..000000000
--- a/lib/dijit/form/nls/az/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/az/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- "iframeEditTitle" : "Redaktə sahəsi",
- "iframeFocusTitle" : "Redaktə sahəsi çərçivəsi"
-})
-);
diff --git a/lib/dijit/form/nls/az/validate.js.uncompressed.js b/lib/dijit/form/nls/az/validate.js.uncompressed.js
deleted file mode 100644
index 641097ab0..000000000
--- a/lib/dijit/form/nls/az/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/az/validate", ({
- "rangeMessage" : "Bu dəyər aralıq xaricində.",
- "invalidMessage" : "Girilən dəyər keçərli deyil.",
- "missingMessage" : "Bu deyər lazımlı."
-})
-);
diff --git a/lib/dijit/form/nls/ca/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/ca/ComboBox.js.uncompressed.js
deleted file mode 100644
index 1de0e3e9c..000000000
--- a/lib/dijit/form/nls/ca/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/ca/ComboBox", ({
- previousMessage: "Opcions anteriors",
- nextMessage: "Més opcions"
-})
-);
diff --git a/lib/dijit/form/nls/ca/Textarea.js.uncompressed.js b/lib/dijit/form/nls/ca/Textarea.js.uncompressed.js
deleted file mode 100644
index 6c24ee46e..000000000
--- a/lib/dijit/form/nls/ca/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/ca/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'àrea d\'edició', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'Marc de l\'àrea d\'edició' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/ca/validate.js.uncompressed.js b/lib/dijit/form/nls/ca/validate.js.uncompressed.js
deleted file mode 100644
index f5badf7cf..000000000
--- a/lib/dijit/form/nls/ca/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/ca/validate", ({
- invalidMessage: "El valor introduït no és vàlid",
- missingMessage: "Aquest valor és necessari",
- rangeMessage: "Aquest valor és fora de l'interval"
-})
-);
diff --git a/lib/dijit/form/nls/cs/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/cs/ComboBox.js.uncompressed.js
deleted file mode 100644
index 0976a71e4..000000000
--- a/lib/dijit/form/nls/cs/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/cs/ComboBox", ({
- previousMessage: "Předchozí volby",
- nextMessage: "Další volby"
-})
-);
diff --git a/lib/dijit/form/nls/cs/Textarea.js.uncompressed.js b/lib/dijit/form/nls/cs/Textarea.js.uncompressed.js
deleted file mode 100644
index ff81072e2..000000000
--- a/lib/dijit/form/nls/cs/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/cs/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'oblast úprav', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'rámec oblasti úprav' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/cs/validate.js.uncompressed.js b/lib/dijit/form/nls/cs/validate.js.uncompressed.js
deleted file mode 100644
index 4409056a0..000000000
--- a/lib/dijit/form/nls/cs/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/cs/validate", ({
- invalidMessage: "Zadaná hodnota není platná.",
- missingMessage: "Tato hodnota je vyžadována.",
- rangeMessage: "Tato hodnota je mimo rozsah."
-})
-);
diff --git a/lib/dijit/form/nls/da/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/da/ComboBox.js.uncompressed.js
deleted file mode 100644
index a5c78b81b..000000000
--- a/lib/dijit/form/nls/da/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/da/ComboBox", ({
- previousMessage: "Forrige valg",
- nextMessage: "Flere valg"
-})
-);
diff --git a/lib/dijit/form/nls/da/Textarea.js.uncompressed.js b/lib/dijit/form/nls/da/Textarea.js.uncompressed.js
deleted file mode 100644
index 9c259d4df..000000000
--- a/lib/dijit/form/nls/da/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/da/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'redigeringsområde', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'ramme om redigeringsområde' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/da/validate.js.uncompressed.js b/lib/dijit/form/nls/da/validate.js.uncompressed.js
deleted file mode 100644
index 43dbdc57c..000000000
--- a/lib/dijit/form/nls/da/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/da/validate", ({
- invalidMessage: "Den angivne værdi er ugyldig.",
- missingMessage: "Værdien er påkrævet.",
- rangeMessage: "Værdien er uden for intervallet."
-})
-);
diff --git a/lib/dijit/form/nls/de/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/de/ComboBox.js.uncompressed.js
deleted file mode 100644
index 9117ccd52..000000000
--- a/lib/dijit/form/nls/de/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/de/ComboBox", ({
- previousMessage: "Vorherige Auswahl",
- nextMessage: "Weitere Auswahlmöglichkeiten"
-})
-);
diff --git a/lib/dijit/form/nls/de/Textarea.js.uncompressed.js b/lib/dijit/form/nls/de/Textarea.js.uncompressed.js
deleted file mode 100644
index f5703e383..000000000
--- a/lib/dijit/form/nls/de/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/de/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'Editierbereich', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'Rahmen für Editierbereich' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/de/validate.js.uncompressed.js b/lib/dijit/form/nls/de/validate.js.uncompressed.js
deleted file mode 100644
index 5fd19699c..000000000
--- a/lib/dijit/form/nls/de/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/de/validate", ({
- invalidMessage: "Der eingegebene Wert ist ungültig. ",
- missingMessage: "Dieser Wert ist erforderlich.",
- rangeMessage: "Dieser Wert liegt außerhalb des gültigen Bereichs. "
-})
-);
diff --git a/lib/dijit/form/nls/el/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/el/ComboBox.js.uncompressed.js
deleted file mode 100644
index e749e7166..000000000
--- a/lib/dijit/form/nls/el/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/el/ComboBox", ({
- previousMessage: "Προηγούμενες επιλογές",
- nextMessage: "Περισσότερες επιλογές"
-})
-);
diff --git a/lib/dijit/form/nls/el/Textarea.js.uncompressed.js b/lib/dijit/form/nls/el/Textarea.js.uncompressed.js
deleted file mode 100644
index 383c37aa9..000000000
--- a/lib/dijit/form/nls/el/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/el/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'περιοχή επεξεργασίας', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'πλαίσιο περιοχής επεξεργασίας' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/el/validate.js.uncompressed.js b/lib/dijit/form/nls/el/validate.js.uncompressed.js
deleted file mode 100644
index 626a9ad60..000000000
--- a/lib/dijit/form/nls/el/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/el/validate", ({
- invalidMessage: "Η τιμή που καταχωρήσατε δεν είναι έγκυρη.",
- missingMessage: "Η τιμή αυτή πρέπει απαραίτητα να καθοριστεί.",
- rangeMessage: "Η τιμή αυτή δεν ανήκει στο εύρος έγκυρων τιμών."
-})
-);
diff --git a/lib/dijit/form/nls/es/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/es/ComboBox.js.uncompressed.js
deleted file mode 100644
index 3421e0e76..000000000
--- a/lib/dijit/form/nls/es/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/es/ComboBox", ({
- previousMessage: "Opciones anteriores",
- nextMessage: "Más opciones"
-})
-);
diff --git a/lib/dijit/form/nls/es/Textarea.js.uncompressed.js b/lib/dijit/form/nls/es/Textarea.js.uncompressed.js
deleted file mode 100644
index 89b9e0bdd..000000000
--- a/lib/dijit/form/nls/es/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/es/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'área de edición', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'marco del área de edición' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/es/validate.js.uncompressed.js b/lib/dijit/form/nls/es/validate.js.uncompressed.js
deleted file mode 100644
index 5f54b3cc8..000000000
--- a/lib/dijit/form/nls/es/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/es/validate", ({
- invalidMessage: "El valor especificado no es válido.",
- missingMessage: "Este valor es necesario.",
- rangeMessage: "Este valor está fuera del intervalo."
-})
-);
diff --git a/lib/dijit/form/nls/fi/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/fi/ComboBox.js.uncompressed.js
deleted file mode 100644
index 8bb153b2f..000000000
--- a/lib/dijit/form/nls/fi/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/fi/ComboBox", ({
- previousMessage: "Edelliset valinnat",
- nextMessage: "Lisää valintoja"
-})
-);
diff --git a/lib/dijit/form/nls/fi/Textarea.js.uncompressed.js b/lib/dijit/form/nls/fi/Textarea.js.uncompressed.js
deleted file mode 100644
index a71666147..000000000
--- a/lib/dijit/form/nls/fi/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/fi/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'muokkausalue', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'muokkausalueen kehys' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/fi/validate.js.uncompressed.js b/lib/dijit/form/nls/fi/validate.js.uncompressed.js
deleted file mode 100644
index f081ee0af..000000000
--- a/lib/dijit/form/nls/fi/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/fi/validate", ({
- invalidMessage: "Annettu arvo ei kelpaa.",
- missingMessage: "Tämä arvo on pakollinen.",
- rangeMessage: "Tämä arvo on sallitun alueen ulkopuolella."
-})
-);
diff --git a/lib/dijit/form/nls/fr/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/fr/ComboBox.js.uncompressed.js
deleted file mode 100644
index db10552b6..000000000
--- a/lib/dijit/form/nls/fr/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/fr/ComboBox", ({
- previousMessage: "Choix précédents",
- nextMessage: "Plus de choix"
-})
-);
diff --git a/lib/dijit/form/nls/fr/Textarea.js.uncompressed.js b/lib/dijit/form/nls/fr/Textarea.js.uncompressed.js
deleted file mode 100644
index 564a98c4f..000000000
--- a/lib/dijit/form/nls/fr/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/fr/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'zone d\'édition', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'cadre de la zone d\'édition' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/fr/validate.js.uncompressed.js b/lib/dijit/form/nls/fr/validate.js.uncompressed.js
deleted file mode 100644
index b706349dc..000000000
--- a/lib/dijit/form/nls/fr/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/fr/validate", ({
- invalidMessage: "La valeur indiquée n'est pas correcte.",
- missingMessage: "Cette valeur est requise.",
- rangeMessage: "Cette valeur n'est pas comprise dans la plage autorisée."
-})
-);
diff --git a/lib/dijit/form/nls/he/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/he/ComboBox.js.uncompressed.js
deleted file mode 100644
index be6411478..000000000
--- a/lib/dijit/form/nls/he/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/he/ComboBox", ({
- previousMessage: "האפשרויות הקודמות",
- nextMessage: "אפשרויות נוספות"
-})
-);
diff --git a/lib/dijit/form/nls/he/Textarea.js.uncompressed.js b/lib/dijit/form/nls/he/Textarea.js.uncompressed.js
deleted file mode 100644
index 770ddb75b..000000000
--- a/lib/dijit/form/nls/he/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/he/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'אזור עריכה', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'מסגרת אזור עריכה' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/he/validate.js.uncompressed.js b/lib/dijit/form/nls/he/validate.js.uncompressed.js
deleted file mode 100644
index c52edfb9d..000000000
--- a/lib/dijit/form/nls/he/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/he/validate", ({
- invalidMessage: "הערך שצוין אינו חוקי.",
- missingMessage: "זהו ערך דרוש.",
- rangeMessage: "הערך מחוץ לטווח."
-})
-);
diff --git a/lib/dijit/form/nls/hr/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/hr/ComboBox.js.uncompressed.js
deleted file mode 100644
index c242142cd..000000000
--- a/lib/dijit/form/nls/hr/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/hr/ComboBox", ({
- previousMessage: "Prethodni izbori",
- nextMessage: "Više izbora"
-})
-);
diff --git a/lib/dijit/form/nls/hr/Textarea.js.uncompressed.js b/lib/dijit/form/nls/hr/Textarea.js.uncompressed.js
deleted file mode 100644
index bfe511dc9..000000000
--- a/lib/dijit/form/nls/hr/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/hr/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'područje uređivanja', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'okvir područja uređivanja' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/hr/validate.js.uncompressed.js b/lib/dijit/form/nls/hr/validate.js.uncompressed.js
deleted file mode 100644
index 80784c8e1..000000000
--- a/lib/dijit/form/nls/hr/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/hr/validate", ({
- invalidMessage: "Unesena vrijednost nije važeća.",
- missingMessage: "Potrebna je ova vrijednost.",
- rangeMessage: "Ova vrijednost je izvan raspona."
-})
-);
diff --git a/lib/dijit/form/nls/hu/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/hu/ComboBox.js.uncompressed.js
deleted file mode 100644
index e29e01583..000000000
--- a/lib/dijit/form/nls/hu/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/hu/ComboBox", ({
- previousMessage: "Előző menüpontok",
- nextMessage: "További menüpontok"
-})
-);
diff --git a/lib/dijit/form/nls/hu/Textarea.js.uncompressed.js b/lib/dijit/form/nls/hu/Textarea.js.uncompressed.js
deleted file mode 100644
index cd65cd35f..000000000
--- a/lib/dijit/form/nls/hu/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/hu/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'szerkesztési terület', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'szerkesztési terület keret' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/hu/validate.js.uncompressed.js b/lib/dijit/form/nls/hu/validate.js.uncompressed.js
deleted file mode 100644
index 129d268bd..000000000
--- a/lib/dijit/form/nls/hu/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/hu/validate", ({
- invalidMessage: "A megadott érték érvénytelen.",
- missingMessage: "Meg kell adni egy értéket.",
- rangeMessage: "Az érték kívül van a megengedett tartományon."
-})
-);
diff --git a/lib/dijit/form/nls/it/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/it/ComboBox.js.uncompressed.js
deleted file mode 100644
index a8710ea92..000000000
--- a/lib/dijit/form/nls/it/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/it/ComboBox", ({
- previousMessage: "Scelte precedenti",
- nextMessage: "Scelte successive"
-})
-);
diff --git a/lib/dijit/form/nls/it/Textarea.js.uncompressed.js b/lib/dijit/form/nls/it/Textarea.js.uncompressed.js
deleted file mode 100644
index 21953ee4c..000000000
--- a/lib/dijit/form/nls/it/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/it/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'modifica area', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'modifica frame area' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/it/validate.js.uncompressed.js b/lib/dijit/form/nls/it/validate.js.uncompressed.js
deleted file mode 100644
index 0e61395ea..000000000
--- a/lib/dijit/form/nls/it/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/it/validate", ({
- invalidMessage: "Il valore immesso non è valido.",
- missingMessage: "Questo valore è obbligatorio.",
- rangeMessage: "Questo valore è fuori dall'intervallo consentito."
-})
-);
diff --git a/lib/dijit/form/nls/ja/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/ja/ComboBox.js.uncompressed.js
deleted file mode 100644
index 7b7cfe934..000000000
--- a/lib/dijit/form/nls/ja/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/ja/ComboBox", ({
- previousMessage: "以前の選択項目",
- nextMessage: "追加の選択項目"
-})
-);
diff --git a/lib/dijit/form/nls/ja/Textarea.js.uncompressed.js b/lib/dijit/form/nls/ja/Textarea.js.uncompressed.js
deleted file mode 100644
index dc0218f3d..000000000
--- a/lib/dijit/form/nls/ja/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/ja/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: '編集域', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: '編集域フレーム' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/ja/validate.js.uncompressed.js b/lib/dijit/form/nls/ja/validate.js.uncompressed.js
deleted file mode 100644
index e5d2c4d6e..000000000
--- a/lib/dijit/form/nls/ja/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/ja/validate", ({
- invalidMessage: "入力した値は無効です。",
- missingMessage: "この値は必須です。",
- rangeMessage: "この値は範囲外です。"
-})
-);
diff --git a/lib/dijit/form/nls/kk/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/kk/ComboBox.js.uncompressed.js
deleted file mode 100644
index 123045ac2..000000000
--- a/lib/dijit/form/nls/kk/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/kk/ComboBox", ({
- previousMessage: "Алдыңғы нұсқалар",
- nextMessage: "Басқа нұсқалар"
-})
-);
diff --git a/lib/dijit/form/nls/kk/Textarea.js.uncompressed.js b/lib/dijit/form/nls/kk/Textarea.js.uncompressed.js
deleted file mode 100644
index 17e849eaa..000000000
--- a/lib/dijit/form/nls/kk/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/kk/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'өңдеу аумағы', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'өңдеу аумағының жақтауы' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/kk/validate.js.uncompressed.js b/lib/dijit/form/nls/kk/validate.js.uncompressed.js
deleted file mode 100644
index c5a2828d6..000000000
--- a/lib/dijit/form/nls/kk/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/kk/validate", ({
- invalidMessage: "Енгізілген мән жарамды емес.",
- missingMessage: "Бұл мән міндетті.",
- rangeMessage: "Бұл мән ауқымнан тыс."
-})
-);
diff --git a/lib/dijit/form/nls/ko/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/ko/ComboBox.js.uncompressed.js
deleted file mode 100644
index ab3fbad6a..000000000
--- a/lib/dijit/form/nls/ko/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/ko/ComboBox", ({
- previousMessage: "이전 선택사항",
- nextMessage: "기타 선택사항"
-})
-);
diff --git a/lib/dijit/form/nls/ko/Textarea.js.uncompressed.js b/lib/dijit/form/nls/ko/Textarea.js.uncompressed.js
deleted file mode 100644
index 670dceaa9..000000000
--- a/lib/dijit/form/nls/ko/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/ko/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: '편집 영역', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: '편집 영역 프레임' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/ko/validate.js.uncompressed.js b/lib/dijit/form/nls/ko/validate.js.uncompressed.js
deleted file mode 100644
index 2b38c0a92..000000000
--- a/lib/dijit/form/nls/ko/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/ko/validate", ({
- invalidMessage: "입력된 값이 올바르지 않습니다.",
- missingMessage: "이 값은 필수입니다.",
- rangeMessage: "이 값은 범위를 벗어납니다."
-})
-);
diff --git a/lib/dijit/form/nls/nb/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/nb/ComboBox.js.uncompressed.js
deleted file mode 100644
index c05fcd36b..000000000
--- a/lib/dijit/form/nls/nb/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/nb/ComboBox", ({
- previousMessage: "Tidligere valg",
- nextMessage: "Flere valg"
-})
-);
diff --git a/lib/dijit/form/nls/nb/Textarea.js.uncompressed.js b/lib/dijit/form/nls/nb/Textarea.js.uncompressed.js
deleted file mode 100644
index 656fd191b..000000000
--- a/lib/dijit/form/nls/nb/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/nb/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'redigeringsområde', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'ramme for redigeringsområde' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/nb/validate.js.uncompressed.js b/lib/dijit/form/nls/nb/validate.js.uncompressed.js
deleted file mode 100644
index bab0094bb..000000000
--- a/lib/dijit/form/nls/nb/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/nb/validate", ({
- invalidMessage: "Den angitte verdien er ikke gyldig.",
- missingMessage: "Denne verdien er obligatorisk.",
- rangeMessage: "Denne verdien er utenfor gyldig område."
-})
-);
diff --git a/lib/dijit/form/nls/nl/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/nl/ComboBox.js.uncompressed.js
deleted file mode 100644
index 2aa44597d..000000000
--- a/lib/dijit/form/nls/nl/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/nl/ComboBox", ({
- previousMessage: "Eerdere opties",
- nextMessage: "Meer opties"
-})
-);
diff --git a/lib/dijit/form/nls/nl/Textarea.js.uncompressed.js b/lib/dijit/form/nls/nl/Textarea.js.uncompressed.js
deleted file mode 100644
index 5f26a130b..000000000
--- a/lib/dijit/form/nls/nl/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/nl/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'veld bewerken', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'veldkader bewerken' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/nl/validate.js.uncompressed.js b/lib/dijit/form/nls/nl/validate.js.uncompressed.js
deleted file mode 100644
index e62882456..000000000
--- a/lib/dijit/form/nls/nl/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/nl/validate", ({
- invalidMessage: "De opgegeven waarde is ongeldig.",
- missingMessage: "Deze waarde is verplicht.",
- rangeMessage: "Deze waarde is niet toegestaan."
-})
-);
diff --git a/lib/dijit/form/nls/pl/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/pl/ComboBox.js.uncompressed.js
deleted file mode 100644
index b1e34aada..000000000
--- a/lib/dijit/form/nls/pl/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/pl/ComboBox", ({
- previousMessage: "Poprzednie wybory",
- nextMessage: "Więcej wyborów"
-})
-);
diff --git a/lib/dijit/form/nls/pl/Textarea.js.uncompressed.js b/lib/dijit/form/nls/pl/Textarea.js.uncompressed.js
deleted file mode 100644
index 99a7c2afc..000000000
--- a/lib/dijit/form/nls/pl/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/pl/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'edycja obszaru', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'edycja ramki obszaru' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/pl/validate.js.uncompressed.js b/lib/dijit/form/nls/pl/validate.js.uncompressed.js
deleted file mode 100644
index 0c115c1c0..000000000
--- a/lib/dijit/form/nls/pl/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/pl/validate", ({
- invalidMessage: "Wprowadzona wartość jest nieprawidłowa.",
- missingMessage: "Ta wartość jest wymagana.",
- rangeMessage: "Ta wartość jest spoza zakresu."
-})
-);
diff --git a/lib/dijit/form/nls/pt-pt/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/pt-pt/ComboBox.js.uncompressed.js
deleted file mode 100644
index df9b05f2c..000000000
--- a/lib/dijit/form/nls/pt-pt/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/pt-pt/ComboBox", ({
- previousMessage: "Opções anteriores",
- nextMessage: "Mais opções"
-})
-);
diff --git a/lib/dijit/form/nls/pt-pt/Textarea.js.uncompressed.js b/lib/dijit/form/nls/pt-pt/Textarea.js.uncompressed.js
deleted file mode 100644
index 1a65b1c23..000000000
--- a/lib/dijit/form/nls/pt-pt/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/pt-pt/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'área de edição', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'painel da área de edição' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/pt-pt/validate.js.uncompressed.js b/lib/dijit/form/nls/pt-pt/validate.js.uncompressed.js
deleted file mode 100644
index e64416837..000000000
--- a/lib/dijit/form/nls/pt-pt/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/pt-pt/validate", ({
- invalidMessage: "O valor introduzido não é válido.",
- missingMessage: "Este valor é requerido.",
- rangeMessage: "Este valor encontra-se fora do intervalo."
-})
-);
diff --git a/lib/dijit/form/nls/pt/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/pt/ComboBox.js.uncompressed.js
deleted file mode 100644
index a3675f7f1..000000000
--- a/lib/dijit/form/nls/pt/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/pt/ComboBox", ({
- previousMessage: "Opções anteriores",
- nextMessage: "Mais opções"
-})
-);
diff --git a/lib/dijit/form/nls/pt/Textarea.js.uncompressed.js b/lib/dijit/form/nls/pt/Textarea.js.uncompressed.js
deleted file mode 100644
index 69a1c3a03..000000000
--- a/lib/dijit/form/nls/pt/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/pt/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'editar área', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'editar quadro da área' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/pt/validate.js.uncompressed.js b/lib/dijit/form/nls/pt/validate.js.uncompressed.js
deleted file mode 100644
index bf2b583bb..000000000
--- a/lib/dijit/form/nls/pt/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/pt/validate", ({
- invalidMessage: "O valor inserido não é válido.",
- missingMessage: "Este valor é necessário.",
- rangeMessage: "Este valor está fora do intervalo. "
-})
-);
diff --git a/lib/dijit/form/nls/ro/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/ro/ComboBox.js.uncompressed.js
deleted file mode 100644
index ad4e57210..000000000
--- a/lib/dijit/form/nls/ro/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/ro/ComboBox", ({
- previousMessage: "Alegeri anterioare",
- nextMessage: "Mai multe alegeri"
-})
-);
diff --git a/lib/dijit/form/nls/ro/Textarea.js.uncompressed.js b/lib/dijit/form/nls/ro/Textarea.js.uncompressed.js
deleted file mode 100644
index e691fbec5..000000000
--- a/lib/dijit/form/nls/ro/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/ro/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'zonă de editare', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'cadru zonă de editare' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/ro/validate.js.uncompressed.js b/lib/dijit/form/nls/ro/validate.js.uncompressed.js
deleted file mode 100644
index 841221c24..000000000
--- a/lib/dijit/form/nls/ro/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/ro/validate", ({
- invalidMessage: "Valoarea introdusă nu este validă.",
- missingMessage: "Această valoare este necesară.",
- rangeMessage: "Această valoare este în afara intervalului. "
-})
-);
diff --git a/lib/dijit/form/nls/ru/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/ru/ComboBox.js.uncompressed.js
deleted file mode 100644
index 5782c3930..000000000
--- a/lib/dijit/form/nls/ru/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/ru/ComboBox", ({
- previousMessage: "Предыдущие варианты",
- nextMessage: "Следующие варианты"
-})
-);
diff --git a/lib/dijit/form/nls/ru/Textarea.js.uncompressed.js b/lib/dijit/form/nls/ru/Textarea.js.uncompressed.js
deleted file mode 100644
index fa9705a8e..000000000
--- a/lib/dijit/form/nls/ru/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/ru/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'область редактирования', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'фрейм области редактирования' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/ru/validate.js.uncompressed.js b/lib/dijit/form/nls/ru/validate.js.uncompressed.js
deleted file mode 100644
index 50174b18d..000000000
--- a/lib/dijit/form/nls/ru/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/ru/validate", ({
- invalidMessage: "Указано недопустимое значение.",
- missingMessage: "Это обязательное значение.",
- rangeMessage: "Это значение вне диапазона."
-})
-);
diff --git a/lib/dijit/form/nls/sk/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/sk/ComboBox.js.uncompressed.js
deleted file mode 100644
index 98602c530..000000000
--- a/lib/dijit/form/nls/sk/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/sk/ComboBox", ({
- previousMessage: "Predchádzajúce možnosti",
- nextMessage: "Viac možností"
-})
-);
diff --git a/lib/dijit/form/nls/sk/Textarea.js.uncompressed.js b/lib/dijit/form/nls/sk/Textarea.js.uncompressed.js
deleted file mode 100644
index 0bc6f107c..000000000
--- a/lib/dijit/form/nls/sk/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/sk/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'upraviť oblasť', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'upraviť rámec oblasti' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/sk/validate.js.uncompressed.js b/lib/dijit/form/nls/sk/validate.js.uncompressed.js
deleted file mode 100644
index 747907a59..000000000
--- a/lib/dijit/form/nls/sk/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/sk/validate", ({
- invalidMessage: "Zadaná hodnota nie je platná.",
- missingMessage: "Táto hodnota je povinná.",
- rangeMessage: "Táto hodnota je mimo rozsah."
-})
-);
diff --git a/lib/dijit/form/nls/sl/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/sl/ComboBox.js.uncompressed.js
deleted file mode 100644
index 45e3d998c..000000000
--- a/lib/dijit/form/nls/sl/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/sl/ComboBox", ({
- previousMessage: "Prejšnje izbire",
- nextMessage: "Dodatne izbire"
-})
-);
diff --git a/lib/dijit/form/nls/sl/Textarea.js.uncompressed.js b/lib/dijit/form/nls/sl/Textarea.js.uncompressed.js
deleted file mode 100644
index 6420d6a47..000000000
--- a/lib/dijit/form/nls/sl/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/sl/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'urejevalno področje', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'okvir urejevalnega področja' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/sl/validate.js.uncompressed.js b/lib/dijit/form/nls/sl/validate.js.uncompressed.js
deleted file mode 100644
index e23377b24..000000000
--- a/lib/dijit/form/nls/sl/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/sl/validate", ({
- invalidMessage: "Vnesena vrednost ni veljavna.",
- missingMessage: "Ta vrednost je zahtevana.",
- rangeMessage: "Ta vrednost je izven območja."
-})
-);
diff --git a/lib/dijit/form/nls/sv/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/sv/ComboBox.js.uncompressed.js
deleted file mode 100644
index 2096aa739..000000000
--- a/lib/dijit/form/nls/sv/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/sv/ComboBox", ({
- previousMessage: "Tidigare val",
- nextMessage: "Fler val"
-})
-);
diff --git a/lib/dijit/form/nls/sv/Textarea.js.uncompressed.js b/lib/dijit/form/nls/sv/Textarea.js.uncompressed.js
deleted file mode 100644
index 33a0b812b..000000000
--- a/lib/dijit/form/nls/sv/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/sv/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'redigeringsområde', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'redigeringsområdesram' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/sv/validate.js.uncompressed.js b/lib/dijit/form/nls/sv/validate.js.uncompressed.js
deleted file mode 100644
index 62d235516..000000000
--- a/lib/dijit/form/nls/sv/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/sv/validate", ({
- invalidMessage: "Angivet värde är inte giltigt.",
- missingMessage: "Värdet krävs.",
- rangeMessage: "Värdet ligger utanför intervallet."
-})
-);
diff --git a/lib/dijit/form/nls/th/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/th/ComboBox.js.uncompressed.js
deleted file mode 100644
index 035df3f3c..000000000
--- a/lib/dijit/form/nls/th/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/th/ComboBox", ({
- previousMessage: "การเลือกก่อนหน้า",
- nextMessage: "การเลือกเพิ่มเติม"
-})
-);
diff --git a/lib/dijit/form/nls/th/Textarea.js.uncompressed.js b/lib/dijit/form/nls/th/Textarea.js.uncompressed.js
deleted file mode 100644
index a306e27b0..000000000
--- a/lib/dijit/form/nls/th/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/th/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'พื้นที่แก้ไข', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'กรอบพื้นที่แก้ไข' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/th/validate.js.uncompressed.js b/lib/dijit/form/nls/th/validate.js.uncompressed.js
deleted file mode 100644
index 512cd4fc7..000000000
--- a/lib/dijit/form/nls/th/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/th/validate", ({
- invalidMessage: "ค่าที่ป้อนไม่ถูกต้อง",
- missingMessage: "จำเป็นต้องมีค่านี้",
- rangeMessage: "ค่านี้เกินช่วง"
-})
-);
diff --git a/lib/dijit/form/nls/tr/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/tr/ComboBox.js.uncompressed.js
deleted file mode 100644
index ca5af6817..000000000
--- a/lib/dijit/form/nls/tr/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/tr/ComboBox", ({
- previousMessage: "Önceki seçenekler",
- nextMessage: "Diğer seçenekler"
-})
-);
diff --git a/lib/dijit/form/nls/tr/Textarea.js.uncompressed.js b/lib/dijit/form/nls/tr/Textarea.js.uncompressed.js
deleted file mode 100644
index d9e4e8fe7..000000000
--- a/lib/dijit/form/nls/tr/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/tr/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: 'düzenleme alanı', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: 'düzenleme alanı çerçevesi' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/tr/validate.js.uncompressed.js b/lib/dijit/form/nls/tr/validate.js.uncompressed.js
deleted file mode 100644
index b00351fc7..000000000
--- a/lib/dijit/form/nls/tr/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/tr/validate", ({
- invalidMessage: "Girilen değer geçersiz.",
- missingMessage: "Bu değer gerekli.",
- rangeMessage: "Bu değer aralık dışında."
-})
-);
diff --git a/lib/dijit/form/nls/validate.js.uncompressed.js b/lib/dijit/form/nls/validate.js.uncompressed.js
deleted file mode 100644
index 421ddb51a..000000000
--- a/lib/dijit/form/nls/validate.js.uncompressed.js
+++ /dev/null
@@ -1,41 +0,0 @@
-define("dijit/form/nls/validate", { root:
-//begin v1.x content
-({
- invalidMessage: "The value entered is not valid.",
- missingMessage: "This value is required.",
- rangeMessage: "This value is out of range."
-})
-//end v1.x content
-,
-"zh": true,
-"zh-tw": true,
-"tr": true,
-"th": true,
-"sv": true,
-"sl": true,
-"sk": true,
-"ru": true,
-"ro": true,
-"pt": true,
-"pt-pt": true,
-"pl": true,
-"nl": true,
-"nb": true,
-"ko": true,
-"kk": true,
-"ja": true,
-"it": true,
-"hu": true,
-"hr": true,
-"he": true,
-"fr": true,
-"fi": true,
-"es": true,
-"el": true,
-"de": true,
-"da": true,
-"cs": true,
-"ca": true,
-"az": true,
-"ar": true
-});
diff --git a/lib/dijit/form/nls/zh-tw/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/zh-tw/ComboBox.js.uncompressed.js
deleted file mode 100644
index c85710946..000000000
--- a/lib/dijit/form/nls/zh-tw/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/zh-tw/ComboBox", ({
- previousMessage: "前一個選擇項",
- nextMessage: "其他選擇項"
-})
-);
diff --git a/lib/dijit/form/nls/zh-tw/Textarea.js.uncompressed.js b/lib/dijit/form/nls/zh-tw/Textarea.js.uncompressed.js
deleted file mode 100644
index e36c60bbc..000000000
--- a/lib/dijit/form/nls/zh-tw/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/zh-tw/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: '編輯區', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: '編輯區框' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/zh-tw/validate.js.uncompressed.js b/lib/dijit/form/nls/zh-tw/validate.js.uncompressed.js
deleted file mode 100644
index f6d052f96..000000000
--- a/lib/dijit/form/nls/zh-tw/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/zh-tw/validate", ({
- invalidMessage: "輸入的值無效。",
- missingMessage: "必須提供此值。",
- rangeMessage: "此值超出範圍。"
-})
-);
diff --git a/lib/dijit/form/nls/zh/ComboBox.js.uncompressed.js b/lib/dijit/form/nls/zh/ComboBox.js.uncompressed.js
deleted file mode 100644
index 177ee8117..000000000
--- a/lib/dijit/form/nls/zh/ComboBox.js.uncompressed.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(
-"dijit/form/nls/zh/ComboBox", ({
- previousMessage: "先前选项",
- nextMessage: "更多选项"
-})
-);
diff --git a/lib/dijit/form/nls/zh/Textarea.js.uncompressed.js b/lib/dijit/form/nls/zh/Textarea.js.uncompressed.js
deleted file mode 100644
index 09fe9c853..000000000
--- a/lib/dijit/form/nls/zh/Textarea.js.uncompressed.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define(
-"dijit/form/nls/zh/Textarea", // used by both the editor and textarea widgets to provide information to screen reader users
-({
- iframeEditTitle: '编辑区域', // primary title for editable IFRAME, for screen readers when focus is in the editing area
- iframeFocusTitle: '编辑区域框' // secondary title for editable IFRAME when focus is on outer container
- // to let user know that focus has moved out of editing area and to the
- // parent element of the editing area
-})
-);
diff --git a/lib/dijit/form/nls/zh/validate.js.uncompressed.js b/lib/dijit/form/nls/zh/validate.js.uncompressed.js
deleted file mode 100644
index ed5178f97..000000000
--- a/lib/dijit/form/nls/zh/validate.js.uncompressed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define(
-"dijit/form/nls/zh/validate", ({
- invalidMessage: "输入的值无效。",
- missingMessage: "该值是必需的。",
- rangeMessage: "此值超出范围。"
-})
-);