]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - vendor/oojs/oojs-ui/demos/classes/NumberLookupTextInputWidget.js
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / oojs / oojs-ui / demos / classes / NumberLookupTextInputWidget.js
diff --git a/vendor/oojs/oojs-ui/demos/classes/NumberLookupTextInputWidget.js b/vendor/oojs/oojs-ui/demos/classes/NumberLookupTextInputWidget.js
new file mode 100644 (file)
index 0000000..7ad5d16
--- /dev/null
@@ -0,0 +1,68 @@
+/**
+ * Demo for LookupElement.
+ *
+ * @class
+ * @extends OO.ui.TextInputWidget
+ * @mixins OO.ui.mixin.LookupElement
+ *
+ * @constructor
+ * @param {Object} config Configuration options
+ */
+Demo.NumberLookupTextInputWidget = function DemoNumberLookupTextInputWidget( config ) {
+       // Parent constructor
+       OO.ui.TextInputWidget.call( this, $.extend( { validate: 'integer' }, config ) );
+       // Mixin constructors
+       OO.ui.mixin.LookupElement.call( this, config );
+};
+OO.inheritClass( Demo.NumberLookupTextInputWidget, OO.ui.TextInputWidget );
+OO.mixinClass( Demo.NumberLookupTextInputWidget, OO.ui.mixin.LookupElement );
+
+/**
+ * @inheritdoc
+ */
+Demo.NumberLookupTextInputWidget.prototype.getLookupRequest = function () {
+       var
+               value = this.getValue(),
+               deferred = $.Deferred(),
+               delay = 500 + Math.floor( Math.random() * 500 );
+
+       this.getValidity().then( function () {
+               // Resolve with results after a faked delay
+               setTimeout( function () {
+                       deferred.resolve( [
+                               value * 1, value * 2, value * 3, value * 4, value * 5,
+                               value * 6, value * 7, value * 8, value * 9, value * 10
+                       ] );
+               }, delay );
+       }, function () {
+               // No results when the input contains invalid content
+               deferred.resolve( [] );
+       } );
+
+       return deferred.promise( { abort: function () {} } );
+};
+
+/**
+ * @inheritdoc
+ */
+Demo.NumberLookupTextInputWidget.prototype.getLookupCacheDataFromResponse = function ( response ) {
+       return response || [];
+};
+
+/**
+ * @inheritdoc
+ */
+Demo.NumberLookupTextInputWidget.prototype.getLookupMenuOptionsFromData = function ( data ) {
+       var
+               items = [],
+               i, number;
+       for ( i = 0; i < data.length; i++ ) {
+               number = String( data[ i ] );
+               items.push( new OO.ui.MenuOptionWidget( {
+                       data: number,
+                       label: number
+               } ) );
+       }
+
+       return items;
+};