You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by eh...@apache.org on 2019/07/17 16:14:02 UTC

[lucene-solr] 07/13: adding a file I accidentally deleted.

This is an automated email from the ASF dual-hosted git repository.

ehatcher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 7868ee159c3711450939729f38cc325052322816
Author: marcussorealheis <ma...@gmail.com>
AuthorDate: Sat Jul 13 11:04:45 2019 -0700

    adding a file I accidentally deleted.
---
 solr/webapp/web/libs/angular-chosen.js | 135 +++++++++++++++++++++++++++++++++
 1 file changed, 135 insertions(+)

diff --git a/solr/webapp/web/libs/angular-chosen.js b/solr/webapp/web/libs/angular-chosen.js
new file mode 100644
index 0000000..d73efd5
--- /dev/null
+++ b/solr/webapp/web/libs/angular-chosen.js
@@ -0,0 +1,135 @@
+/*
+The MIT License
+Copyright (c) 2013 Localytics http://www.localytics.com
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+// Generated by CoffeeScript 1.8.0
+(function() {
+    var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
+  
+    angular.module('localytics.directives', []);
+  
+    angular.module('localytics.directives').directive('chosen', [
+      '$timeout', function($timeout) {
+        var CHOSEN_OPTION_WHITELIST, NG_OPTIONS_REGEXP, isEmpty, snakeCase;
+        NG_OPTIONS_REGEXP = /^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/;
+        CHOSEN_OPTION_WHITELIST = ['noResultsText', 'allowSingleDeselect', 'disableSearchThreshold', 'disableSearch', 'enableSplitWordSearch', 'inheritSelectClasses', 'maxSelectedOptions', 'placeholderTextMultiple', 'placeholderTextSingle', 'searchContains', 'singleBackstrokeDelete', 'displayDisabledOptions', 'displaySelectedOptions', 'width'];
+        snakeCase = function(input) {
+          return input.replace(/[A-Z]/g, function($1) {
+            return "_" + ($1.toLowerCase());
+          });
+        };
+        isEmpty = function(value) {
+          var key;
+          if (angular.isArray(value)) {
+            return value.length === 0;
+          } else if (angular.isObject(value)) {
+            for (key in value) {
+              if (value.hasOwnProperty(key)) {
+                return false;
+              }
+            }
+          }
+          return true;
+        };
+        return {
+          restrict: 'A',
+          require: '?ngModel',
+          terminal: true,
+          link: function(scope, element, attr, ngModel) {
+            var chosen, defaultText, disableWithMessage, empty, initOrUpdate, match, options, origRender, removeEmptyMessage, startLoading, stopLoading, valuesExpr, viewWatch;
+            element.addClass('localytics-chosen');
+            options = scope.$eval(attr.chosen) || {};
+            angular.forEach(attr, function(value, key) {
+              if (__indexOf.call(CHOSEN_OPTION_WHITELIST, key) >= 0) {
+                return options[snakeCase(key)] = scope.$eval(value);
+              }
+            });
+            startLoading = function() {
+              return element.addClass('loading').attr('disabled', true).trigger('chosen:updated');
+            };
+            stopLoading = function() {
+              return element.removeClass('loading').attr('disabled', false).trigger('chosen:updated');
+            };
+            chosen = null;
+            defaultText = null;
+            empty = false;
+            initOrUpdate = function() {
+              if (chosen) {
+                return element.trigger('chosen:updated');
+              } else {
+                chosen = element.chosen(options).data('chosen');
+                return defaultText = chosen.default_text;
+              }
+            };
+            removeEmptyMessage = function() {
+              empty = false;
+              return element.attr('data-placeholder', defaultText);
+            };
+            disableWithMessage = function() {
+              empty = true;
+              return element.attr('data-placeholder', chosen.results_none_found).attr('disabled', true).trigger('chosen:updated');
+            };
+            if (ngModel) {
+              origRender = ngModel.$render;
+              ngModel.$render = function() {
+                origRender();
+                return initOrUpdate();
+              };
+              if (attr.multiple) {
+                viewWatch = function() {
+                  return ngModel.$viewValue;
+                };
+                scope.$watch(viewWatch, ngModel.$render, true);
+              }
+            } else {
+              initOrUpdate();
+            }
+            attr.$observe('disabled', function() {
+              return element.trigger('chosen:updated');
+            });
+            if (attr.ngOptions && ngModel) {
+              match = attr.ngOptions.match(NG_OPTIONS_REGEXP);
+              valuesExpr = match[7];
+              scope.$watchCollection(valuesExpr, function(newVal, oldVal) {
+                var timer;
+                return timer = $timeout(function() {
+                  if (angular.isUndefined(newVal)) {
+                    return startLoading();
+                  } else {
+                    if (empty) {
+                      removeEmptyMessage();
+                    }
+                    stopLoading();
+                    if (isEmpty(newVal)) {
+                      return disableWithMessage();
+                    }
+                  }
+                });
+              });
+              return scope.$on('$destroy', function(event) {
+                if (typeof timer !== "undefined" && timer !== null) {
+                  return $timeout.cancel(timer);
+                }
+              });
+            }
+          }
+        };
+      }
+    ]);
+  
+  }).call(this);
\ No newline at end of file