]> git.wh0rd.org - tt-rss.git/blobdiff - lib/dijit/form/MultiSelect.js
lib: Upgrade Dojo and Dijit from 1.8.3 to 1.12.1
[tt-rss.git] / lib / dijit / form / MultiSelect.js
index 12f3b40e728ea2d8986975e71235ff754e016c53..28d65f6011661d7eff6db8ba8a60a0fa79f0b415 100644 (file)
@@ -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/sniff","dojo/query","./_FormValueWidget","dojo/NodeList-dom"],function(_1,_2,_3,_4,_5,_6){var _7=_2("dijit.form.MultiSelect"+(_4("dojo-bidi")?"_NoBidi":""),_6,{size:7,baseClass:"dijitMultiSelect",templateString:"<select multiple='multiple' ${!nameAttrSetting} data-dojo-attach-point='containerNode,focusNode' data-dojo-attach-event='onchange: _onChange'></select>",addSelected:function(_8){_8.getSelected().forEach(function(n){this.containerNode.appendChild(n);this.domNode.scrollTop=this.domNode.offsetHeight;var _9=_8.domNode.scrollTop;_8.domNode.scrollTop=0;_8.domNode.scrollTop=_9;},this);this._set("value",this.get("value"));},getSelected:function(){return _5("option",this.containerNode).filter(function(n){return n.selected;});},_getValueAttr:function(){return _1.map(this.getSelected(),function(n){return n.value;});},multiple:true,_setMultipleAttr:function(_a){},_setValueAttr:function(_b){if(_4("android")){_5("option",this.containerNode).orphan().forEach(function(n){var _c=n.ownerDocument.createElement("option");_c.value=n.value;_c.selected=(_1.indexOf(_b,n.value)!=-1);_c.text=n.text;_c.originalText=n.originalText;this.containerNode.appendChild(_c);},this);}else{_5("option",this.containerNode).forEach(function(n){n.selected=(_1.indexOf(_b,n.value)!=-1);});}this.inherited(arguments);},invertSelection:function(_d){var _e=[];_5("option",this.containerNode).forEach(function(n){if(!n.selected){_e.push(n.value);}});this._setValueAttr(_e,!(_d===false||_d==null));},_onChange:function(){this._handleOnChange(this.get("value"),true);},resize:function(_f){if(_f){_3.setMarginBox(this.domNode,_f);}},postCreate:function(){this._set("value",this.get("value"));this.inherited(arguments);}});if(_4("dojo-bidi")){_7=_2("dijit.form.MultiSelect",_7,{addSelected:function(_10){_10.getSelected().forEach(function(n){n.text=this.enforceTextDirWithUcc(this.restoreOriginalText(n),n.text);},this);this.inherited(arguments);},_setTextDirAttr:function(_11){if((this.textDir!=_11||!this._created)&&this.enforceTextDirWithUcc){this._set("textDir",_11);_5("option",this.containerNode).forEach(function(_12){if(!this._created&&_12.value===_12.text){_12.value=_12.text;}_12.text=this.enforceTextDirWithUcc(_12,_12.originalText||_12.text);},this);}}});}return _7;});
\ No newline at end of file