summaryrefslogtreecommitdiff
path: root/lib/dijit/form/MultiSelect.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dijit/form/MultiSelect.js')
-rw-r--r--lib/dijit/form/MultiSelect.js121
1 files changed, 2 insertions, 119 deletions
diff --git a/lib/dijit/form/MultiSelect.js b/lib/dijit/form/MultiSelect.js
index 12f3b40e7..da76fed00 100644
--- a/lib/dijit/form/MultiSelect.js
+++ b/lib/dijit/form/MultiSelect.js
@@ -1,119 +1,2 @@
-/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
- Available via Academic Free License >= 2.1 OR the modified BSD license.
- see: http://dojotoolkit.org/license for details
-*/
-
-
-if(!dojo._hasResource["dijit.form.MultiSelect"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dijit.form.MultiSelect"] = true;
-dojo.provide("dijit.form.MultiSelect");
-dojo.require("dijit.form._FormWidget");
-
-
-dojo.declare("dijit.form.MultiSelect", dijit.form._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} dojoAttachPoint='containerNode,focusNode' dojoAttachEvent='onchange: _onChange'></select>",
-
- attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, {
- size: "focusNode"
- }),
-
- reset: function(){
- // summary:
- // Reset the widget's value to what it was at initialization time
-
- // TODO: once we inherit from FormValueWidget this won't be needed
- this._hasBeenBlurred = false;
- this._setValueAttr(this._resetValue, true);
- },
-
- 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){
- 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);
- },
-
- getSelected: function(){
- // summary:
- // Access the NodeList of the selected options directly
- return dojo.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.
- return this.getSelected().map(function(n){
- return n.value;
- });
- },
-
- multiple: true, // for Form
-
- _setValueAttr: function(/*Array*/ values){
- // summary:
- // Hook so set('value', values) works.
- // description:
- // Set the value(s) of this Select based on passed values
- dojo.query("option",this.containerNode).forEach(function(n){
- n.selected = (dojo.indexOf(values,n.value) != -1);
- });
- },
-
- invertSelection: function(onChange){
- // summary:
- // Invert the selection
- // onChange: Boolean
- // If null, onChange is not fired.
- dojo.query("option",this.containerNode).forEach(function(n){
- n.selected = !n.selected;
- });
- this._handleOnChange(this.get('value'), onChange == true);
- },
-
- _onChange: function(/*Event*/ e){
- this._handleOnChange(this.get('value'), true);
- },
-
- // for layout widgets:
- resize: function(/*Object*/ size){
- if(size){
- dojo.marginBox(this.domNode, size);
- }
- },
-
- postCreate: function(){
- this._onChange();
- }
-});
-
-}
+//>>built
+define("dijit/form/MultiSelect",["dojo/_base/array","dojo/_base/declare","dojo/dom-geometry","dojo/query","./_FormValueWidget"],function(_1,_2,_3,_4,_5){return _2("dijit.form.MultiSelect",_5,{size:7,templateString:"<select multiple='true' ${!nameAttrSetting} data-dojo-attach-point='containerNode,focusNode' data-dojo-attach-event='onchange: _onChange'></select>",addSelected:function(_6){_6.getSelected().forEach(function(n){this.containerNode.appendChild(n);this.domNode.scrollTop=this.domNode.offsetHeight;var _7=_6.domNode.scrollTop;_6.domNode.scrollTop=0;_6.domNode.scrollTop=_7;},this);this._set("value",this.get("value"));},getSelected:function(){return _4("option",this.containerNode).filter(function(n){return n.selected;});},_getValueAttr:function(){return _1.map(this.getSelected(),function(n){return n.value;});},multiple:true,_setValueAttr:function(_8,_9){_4("option",this.containerNode).forEach(function(n){n.selected=(_1.indexOf(_8,n.value)!=-1);});this.inherited(arguments);},invertSelection:function(_a){var _b=[];_4("option",this.containerNode).forEach(function(n){if(!n.selected){_b.push(n.value);}});this._setValueAttr(_b,!(_a===false||_a==null));},_onChange:function(){this._handleOnChange(this.get("value"),true);},resize:function(_c){if(_c){_3.setMarginBox(this.domNode,_c);}},postCreate:function(){this._set("value",this.get("value"));this.inherited(arguments);}});}); \ No newline at end of file