nexus site path corrected
[portal.git] / ecomp-portal-FE / client / bower_components / ui-select / docs / assets / demo.js
1 'use strict';
2
3 var app = angular.module('demo', ['ngSanitize', 'ui.select']);
4
5 /**
6  * AngularJS default filter with the following expression:
7  * "person in people | filter: {name: $select.search, age: $select.search}"
8  * performs an AND between 'name: $select.search' and 'age: $select.search'.
9  * We want to perform an OR.
10  */
11 app.filter('propsFilter', function() {
12   return function(items, props) {
13     var out = [];
14
15     if (angular.isArray(items)) {
16       var keys = Object.keys(props);
17         
18       items.forEach(function(item) {
19         var itemMatches = false;
20
21         for (var i = 0; i < keys.length; i++) {
22           var prop = keys[i];
23           var text = props[prop].toLowerCase();
24           if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {
25             itemMatches = true;
26             break;
27           }
28         }
29
30         if (itemMatches) {
31           out.push(item);
32         }
33       });
34     } else {
35       // Let the output be the input untouched
36       out = items;
37     }
38
39     return out;
40   };
41 });
42
43 app.controller('DemoCtrl', function ($scope, $http, $timeout, $interval) {
44   var vm = this;
45
46   vm.disabled = undefined;
47   vm.searchEnabled = undefined;
48
49   vm.setInputFocus = function (){
50     $scope.$broadcast('UiSelectDemo1');
51   };
52
53   vm.enable = function() {
54     vm.disabled = false;
55   };
56
57   vm.disable = function() {
58     vm.disabled = true;
59   };
60
61   vm.enableSearch = function() {
62     vm.searchEnabled = true;
63   };
64
65   vm.disableSearch = function() {
66     vm.searchEnabled = false;
67   };
68
69   vm.clear = function() {
70     vm.person.selected = undefined;
71     vm.address.selected = undefined;
72     vm.country.selected = undefined;
73   };
74
75   vm.someGroupFn = function (item){
76
77     if (item.name[0] >= 'A' && item.name[0] <= 'M')
78         return 'From A - M';
79
80     if (item.name[0] >= 'N' && item.name[0] <= 'Z')
81         return 'From N - Z';
82
83   };
84
85   vm.firstLetterGroupFn = function (item){
86       return item.name[0];
87   };
88
89   vm.reverseOrderFilterFn = function(groups) {
90     return groups.reverse();
91   };
92
93   vm.personAsync = {selected : "wladimir@email.com"};
94   vm.peopleAsync = [];
95
96   $timeout(function(){
97    vm.peopleAsync = [
98         { name: 'Adam',      email: 'adam@email.com',      age: 12, country: 'United States' },
99         { name: 'Amalie',    email: 'amalie@email.com',    age: 12, country: 'Argentina' },
100         { name: 'Estefanía', email: 'estefania@email.com', age: 21, country: 'Argentina' },
101         { name: 'Adrian',    email: 'adrian@email.com',    age: 21, country: 'Ecuador' },
102         { name: 'Wladimir',  email: 'wladimir@email.com',  age: 30, country: 'Ecuador' },
103         { name: 'Samantha',  email: 'samantha@email.com',  age: 30, country: 'United States' },
104         { name: 'Nicole',    email: 'nicole@email.com',    age: 43, country: 'Colombia' },
105         { name: 'Natasha',   email: 'natasha@email.com',   age: 54, country: 'Ecuador' },
106         { name: 'Michael',   email: 'michael@email.com',   age: 15, country: 'Colombia' },
107         { name: 'Nicolás',   email: 'nicole@email.com',    age: 43, country: 'Colombia' }
108       ];
109   },3000);
110
111   vm.counter = 0;
112   vm.onSelectCallback = function (item, model){
113     vm.counter++;
114     vm.eventResult = {item: item, model: model};
115   };
116
117   vm.removed = function (item, model) {
118     vm.lastRemoved = {
119         item: item,
120         model: model
121     };
122   };
123
124   vm.tagTransform = function (newTag) {
125     var item = {
126         name: newTag,
127         email: newTag.toLowerCase()+'@email.com',
128         age: 'unknown',
129         country: 'unknown'
130     };
131
132     return item;
133   };
134
135   vm.peopleObj = {
136     '1' : { name: 'Adam',      email: 'adam@email.com',      age: 12, country: 'United States' },
137     '2' : { name: 'Amalie',    email: 'amalie@email.com',    age: 12, country: 'Argentina' },
138     '3' : { name: 'Estefanía', email: 'estefania@email.com', age: 21, country: 'Argentina' },
139     '4' : { name: 'Adrian',    email: 'adrian@email.com',    age: 21, country: 'Ecuador' },
140     '5' : { name: 'Wladimir',  email: 'wladimir@email.com',  age: 30, country: 'Ecuador' },
141     '6' : { name: 'Samantha',  email: 'samantha@email.com',  age: 30, country: 'United States' },
142     '7' : { name: 'Nicole',    email: 'nicole@email.com',    age: 43, country: 'Colombia' },
143     '8' : { name: 'Natasha',   email: 'natasha@email.com',   age: 54, country: 'Ecuador' },
144     '9' : { name: 'Michael',   email: 'michael@email.com',   age: 15, country: 'Colombia' },
145     '10' : { name: 'Nicolás',   email: 'nicolas@email.com',    age: 43, country: 'Colombia' }
146   };
147
148   vm.person = {};
149
150   vm.person.selectedValue = vm.peopleObj[3];
151   vm.person.selectedSingle = 'Samantha';
152   vm.person.selectedSingleKey = '5';
153
154   vm.people = [
155     { name: 'Adam',      email: 'adam@email.com',      age: 12, country: 'United States' },
156     { name: 'Amalie',    email: 'amalie@email.com',    age: 12, country: 'Argentina' },
157     { name: 'Estefanía', email: 'estefania@email.com', age: 21, country: 'Argentina' },
158     { name: 'Adrian',    email: 'adrian@email.com',    age: 21, country: 'Ecuador' },
159     { name: 'Wladimir',  email: 'wladimir@email.com',  age: 30, country: 'Ecuador' },
160     { name: 'Samantha',  email: 'samantha@email.com',  age: 30, country: 'United States' },
161     { name: 'Nicole',    email: 'nicole@email.com',    age: 43, country: 'Colombia' },
162     { name: 'Natasha',   email: 'natasha@email.com',   age: 54, country: 'Ecuador' },
163     { name: 'Michael',   email: 'michael@email.com',   age: 15, country: 'Colombia' },
164     { name: 'Nicolás',   email: 'nicolas@email.com',    age: 43, country: 'Colombia' }
165   ];
166
167   vm.availableColors = ['Red','Green','Blue','Yellow','Magenta','Maroon','Umbra','Turquoise'];
168
169   vm.singleDemo = {};
170   vm.singleDemo.color = '';
171   vm.multipleDemo = {};
172   vm.multipleDemo.colors = ['Blue','Red'];
173   vm.multipleDemo.colors2 = ['Blue','Red'];
174   vm.multipleDemo.selectedPeople = [vm.people[5], vm.people[4]];
175   vm.multipleDemo.selectedPeople2 = vm.multipleDemo.selectedPeople;
176   vm.multipleDemo.selectedPeopleWithGroupBy = [vm.people[8], vm.people[6]];
177   vm.multipleDemo.selectedPeopleSimple = ['samantha@email.com','wladimir@email.com'];
178
179   vm.appendToBodyDemo = {
180     remainingToggleTime: 0,
181     present: true,
182     startToggleTimer: function() {
183       var scope = vm.appendToBodyDemo;
184       var promise = $interval(function() {
185         if (scope.remainingTime < 1000) {
186           $interval.cancel(promise);
187           scope.present = !scope.present;
188           scope.remainingTime = 0;
189         } else {
190           scope.remainingTime -= 1000;
191         }
192       }, 1000);
193       scope.remainingTime = 3000;
194     }
195   };
196
197   vm.address = {};
198   vm.refreshAddresses = function(address) {
199     var params = {address: address, sensor: false};
200     return $http.get(
201       'http://maps.googleapis.com/maps/api/geocode/json',
202       {params: params}
203     ).then(function(response) {
204       vm.addresses = response.data.results;
205     });
206   };
207
208   vm.addPerson = function(item, model){
209     if(item.hasOwnProperty('isTag')) {
210       delete item.isTag;
211       vm.people.push(item);
212     }
213   }
214
215   vm.country = {};
216   vm.countries = [ // Taken from https://gist.github.com/unceus/6501985
217     {name: 'Afghanistan', code: 'AF'},
218     {name: 'Åland Islands', code: 'AX'},
219     {name: 'Albania', code: 'AL'},
220     {name: 'Algeria', code: 'DZ'},
221     {name: 'American Samoa', code: 'AS'},
222     {name: 'Andorra', code: 'AD'},
223     {name: 'Angola', code: 'AO'},
224     {name: 'Anguilla', code: 'AI'},
225     {name: 'Antarctica', code: 'AQ'},
226     {name: 'Antigua and Barbuda', code: 'AG'},
227     {name: 'Argentina', code: 'AR'},
228     {name: 'Armenia', code: 'AM'},
229     {name: 'Aruba', code: 'AW'},
230     {name: 'Australia', code: 'AU'},
231     {name: 'Austria', code: 'AT'},
232     {name: 'Azerbaijan', code: 'AZ'},
233     {name: 'Bahamas', code: 'BS'},
234     {name: 'Bahrain', code: 'BH'},
235     {name: 'Bangladesh', code: 'BD'},
236     {name: 'Barbados', code: 'BB'},
237     {name: 'Belarus', code: 'BY'},
238     {name: 'Belgium', code: 'BE'},
239     {name: 'Belize', code: 'BZ'},
240     {name: 'Benin', code: 'BJ'},
241     {name: 'Bermuda', code: 'BM'},
242     {name: 'Bhutan', code: 'BT'},
243     {name: 'Bolivia', code: 'BO'},
244     {name: 'Bosnia and Herzegovina', code: 'BA'},
245     {name: 'Botswana', code: 'BW'},
246     {name: 'Bouvet Island', code: 'BV'},
247     {name: 'Brazil', code: 'BR'},
248     {name: 'British Indian Ocean Territory', code: 'IO'},
249     {name: 'Brunei Darussalam', code: 'BN'},
250     {name: 'Bulgaria', code: 'BG'},
251     {name: 'Burkina Faso', code: 'BF'},
252     {name: 'Burundi', code: 'BI'},
253     {name: 'Cambodia', code: 'KH'},
254     {name: 'Cameroon', code: 'CM'},
255     {name: 'Canada', code: 'CA'},
256     {name: 'Cape Verde', code: 'CV'},
257     {name: 'Cayman Islands', code: 'KY'},
258     {name: 'Central African Republic', code: 'CF'},
259     {name: 'Chad', code: 'TD'},
260     {name: 'Chile', code: 'CL'},
261     {name: 'China', code: 'CN'},
262     {name: 'Christmas Island', code: 'CX'},
263     {name: 'Cocos (Keeling) Islands', code: 'CC'},
264     {name: 'Colombia', code: 'CO'},
265     {name: 'Comoros', code: 'KM'},
266     {name: 'Congo', code: 'CG'},
267     {name: 'Congo, The Democratic Republic of the', code: 'CD'},
268     {name: 'Cook Islands', code: 'CK'},
269     {name: 'Costa Rica', code: 'CR'},
270     {name: 'Cote D\'Ivoire', code: 'CI'},
271     {name: 'Croatia', code: 'HR'},
272     {name: 'Cuba', code: 'CU'},
273     {name: 'Cyprus', code: 'CY'},
274     {name: 'Czech Republic', code: 'CZ'},
275     {name: 'Denmark', code: 'DK'},
276     {name: 'Djibouti', code: 'DJ'},
277     {name: 'Dominica', code: 'DM'},
278     {name: 'Dominican Republic', code: 'DO'},
279     {name: 'Ecuador', code: 'EC'},
280     {name: 'Egypt', code: 'EG'},
281     {name: 'El Salvador', code: 'SV'},
282     {name: 'Equatorial Guinea', code: 'GQ'},
283     {name: 'Eritrea', code: 'ER'},
284     {name: 'Estonia', code: 'EE'},
285     {name: 'Ethiopia', code: 'ET'},
286     {name: 'Falkland Islands (Malvinas)', code: 'FK'},
287     {name: 'Faroe Islands', code: 'FO'},
288     {name: 'Fiji', code: 'FJ'},
289     {name: 'Finland', code: 'FI'},
290     {name: 'France', code: 'FR'},
291     {name: 'French Guiana', code: 'GF'},
292     {name: 'French Polynesia', code: 'PF'},
293     {name: 'French Southern Territories', code: 'TF'},
294     {name: 'Gabon', code: 'GA'},
295     {name: 'Gambia', code: 'GM'},
296     {name: 'Georgia', code: 'GE'},
297     {name: 'Germany', code: 'DE'},
298     {name: 'Ghana', code: 'GH'},
299     {name: 'Gibraltar', code: 'GI'},
300     {name: 'Greece', code: 'GR'},
301     {name: 'Greenland', code: 'GL'},
302     {name: 'Grenada', code: 'GD'},
303     {name: 'Guadeloupe', code: 'GP'},
304     {name: 'Guam', code: 'GU'},
305     {name: 'Guatemala', code: 'GT'},
306     {name: 'Guernsey', code: 'GG'},
307     {name: 'Guinea', code: 'GN'},
308     {name: 'Guinea-Bissau', code: 'GW'},
309     {name: 'Guyana', code: 'GY'},
310     {name: 'Haiti', code: 'HT'},
311     {name: 'Heard Island and Mcdonald Islands', code: 'HM'},
312     {name: 'Holy See (Vatican City State)', code: 'VA'},
313     {name: 'Honduras', code: 'HN'},
314     {name: 'Hong Kong', code: 'HK'},
315     {name: 'Hungary', code: 'HU'},
316     {name: 'Iceland', code: 'IS'},
317     {name: 'India', code: 'IN'},
318     {name: 'Indonesia', code: 'ID'},
319     {name: 'Iran, Islamic Republic Of', code: 'IR'},
320     {name: 'Iraq', code: 'IQ'},
321     {name: 'Ireland', code: 'IE'},
322     {name: 'Isle of Man', code: 'IM'},
323     {name: 'Israel', code: 'IL'},
324     {name: 'Italy', code: 'IT'},
325     {name: 'Jamaica', code: 'JM'},
326     {name: 'Japan', code: 'JP'},
327     {name: 'Jersey', code: 'JE'},
328     {name: 'Jordan', code: 'JO'},
329     {name: 'Kazakhstan', code: 'KZ'},
330     {name: 'Kenya', code: 'KE'},
331     {name: 'Kiribati', code: 'KI'},
332     {name: 'Korea, Democratic People\'s Republic of', code: 'KP'},
333     {name: 'Korea, Republic of', code: 'KR'},
334     {name: 'Kuwait', code: 'KW'},
335     {name: 'Kyrgyzstan', code: 'KG'},
336     {name: 'Lao People\'s Democratic Republic', code: 'LA'},
337     {name: 'Latvia', code: 'LV'},
338     {name: 'Lebanon', code: 'LB'},
339     {name: 'Lesotho', code: 'LS'},
340     {name: 'Liberia', code: 'LR'},
341     {name: 'Libyan Arab Jamahiriya', code: 'LY'},
342     {name: 'Liechtenstein', code: 'LI'},
343     {name: 'Lithuania', code: 'LT'},
344     {name: 'Luxembourg', code: 'LU'},
345     {name: 'Macao', code: 'MO'},
346     {name: 'Macedonia, The Former Yugoslav Republic of', code: 'MK'},
347     {name: 'Madagascar', code: 'MG'},
348     {name: 'Malawi', code: 'MW'},
349     {name: 'Malaysia', code: 'MY'},
350     {name: 'Maldives', code: 'MV'},
351     {name: 'Mali', code: 'ML'},
352     {name: 'Malta', code: 'MT'},
353     {name: 'Marshall Islands', code: 'MH'},
354     {name: 'Martinique', code: 'MQ'},
355     {name: 'Mauritania', code: 'MR'},
356     {name: 'Mauritius', code: 'MU'},
357     {name: 'Mayotte', code: 'YT'},
358     {name: 'Mexico', code: 'MX'},
359     {name: 'Micronesia, Federated States of', code: 'FM'},
360     {name: 'Moldova, Republic of', code: 'MD'},
361     {name: 'Monaco', code: 'MC'},
362     {name: 'Mongolia', code: 'MN'},
363     {name: 'Montserrat', code: 'MS'},
364     {name: 'Morocco', code: 'MA'},
365     {name: 'Mozambique', code: 'MZ'},
366     {name: 'Myanmar', code: 'MM'},
367     {name: 'Namibia', code: 'NA'},
368     {name: 'Nauru', code: 'NR'},
369     {name: 'Nepal', code: 'NP'},
370     {name: 'Netherlands', code: 'NL'},
371     {name: 'Netherlands Antilles', code: 'AN'},
372     {name: 'New Caledonia', code: 'NC'},
373     {name: 'New Zealand', code: 'NZ'},
374     {name: 'Nicaragua', code: 'NI'},
375     {name: 'Niger', code: 'NE'},
376     {name: 'Nigeria', code: 'NG'},
377     {name: 'Niue', code: 'NU'},
378     {name: 'Norfolk Island', code: 'NF'},
379     {name: 'Northern Mariana Islands', code: 'MP'},
380     {name: 'Norway', code: 'NO'},
381     {name: 'Oman', code: 'OM'},
382     {name: 'Pakistan', code: 'PK'},
383     {name: 'Palau', code: 'PW'},
384     {name: 'Palestinian Territory, Occupied', code: 'PS'},
385     {name: 'Panama', code: 'PA'},
386     {name: 'Papua New Guinea', code: 'PG'},
387     {name: 'Paraguay', code: 'PY'},
388     {name: 'Peru', code: 'PE'},
389     {name: 'Philippines', code: 'PH'},
390     {name: 'Pitcairn', code: 'PN'},
391     {name: 'Poland', code: 'PL'},
392     {name: 'Portugal', code: 'PT'},
393     {name: 'Puerto Rico', code: 'PR'},
394     {name: 'Qatar', code: 'QA'},
395     {name: 'Reunion', code: 'RE'},
396     {name: 'Romania', code: 'RO'},
397     {name: 'Russian Federation', code: 'RU'},
398     {name: 'Rwanda', code: 'RW'},
399     {name: 'Saint Helena', code: 'SH'},
400     {name: 'Saint Kitts and Nevis', code: 'KN'},
401     {name: 'Saint Lucia', code: 'LC'},
402     {name: 'Saint Pierre and Miquelon', code: 'PM'},
403     {name: 'Saint Vincent and the Grenadines', code: 'VC'},
404     {name: 'Samoa', code: 'WS'},
405     {name: 'San Marino', code: 'SM'},
406     {name: 'Sao Tome and Principe', code: 'ST'},
407     {name: 'Saudi Arabia', code: 'SA'},
408     {name: 'Senegal', code: 'SN'},
409     {name: 'Serbia and Montenegro', code: 'CS'},
410     {name: 'Seychelles', code: 'SC'},
411     {name: 'Sierra Leone', code: 'SL'},
412     {name: 'Singapore', code: 'SG'},
413     {name: 'Slovakia', code: 'SK'},
414     {name: 'Slovenia', code: 'SI'},
415     {name: 'Solomon Islands', code: 'SB'},
416     {name: 'Somalia', code: 'SO'},
417     {name: 'South Africa', code: 'ZA'},
418     {name: 'South Georgia and the South Sandwich Islands', code: 'GS'},
419     {name: 'Spain', code: 'ES'},
420     {name: 'Sri Lanka', code: 'LK'},
421     {name: 'Sudan', code: 'SD'},
422     {name: 'Suriname', code: 'SR'},
423     {name: 'Svalbard and Jan Mayen', code: 'SJ'},
424     {name: 'Swaziland', code: 'SZ'},
425     {name: 'Sweden', code: 'SE'},
426     {name: 'Switzerland', code: 'CH'},
427     {name: 'Syrian Arab Republic', code: 'SY'},
428     {name: 'Taiwan, Province of China', code: 'TW'},
429     {name: 'Tajikistan', code: 'TJ'},
430     {name: 'Tanzania, United Republic of', code: 'TZ'},
431     {name: 'Thailand', code: 'TH'},
432     {name: 'Timor-Leste', code: 'TL'},
433     {name: 'Togo', code: 'TG'},
434     {name: 'Tokelau', code: 'TK'},
435     {name: 'Tonga', code: 'TO'},
436     {name: 'Trinidad and Tobago', code: 'TT'},
437     {name: 'Tunisia', code: 'TN'},
438     {name: 'Turkey', code: 'TR'},
439     {name: 'Turkmenistan', code: 'TM'},
440     {name: 'Turks and Caicos Islands', code: 'TC'},
441     {name: 'Tuvalu', code: 'TV'},
442     {name: 'Uganda', code: 'UG'},
443     {name: 'Ukraine', code: 'UA'},
444     {name: 'United Arab Emirates', code: 'AE'},
445     {name: 'United Kingdom', code: 'GB'},
446     {name: 'United States', code: 'US'},
447     {name: 'United States Minor Outlying Islands', code: 'UM'},
448     {name: 'Uruguay', code: 'UY'},
449     {name: 'Uzbekistan', code: 'UZ'},
450     {name: 'Vanuatu', code: 'VU'},
451     {name: 'Venezuela', code: 'VE'},
452     {name: 'Vietnam', code: 'VN'},
453     {name: 'Virgin Islands, British', code: 'VG'},
454     {name: 'Virgin Islands, U.S.', code: 'VI'},
455     {name: 'Wallis and Futuna', code: 'WF'},
456     {name: 'Western Sahara', code: 'EH'},
457     {name: 'Yemen', code: 'YE'},
458     {name: 'Zambia', code: 'ZM'},
459     {name: 'Zimbabwe', code: 'ZW'}
460   ];
461 });