├── .bowerrc ├── .gitignore ├── .idea ├── .name ├── autocomplete-demo.iml ├── encodings.xml ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── jsLibraryMappings.xml ├── jsLinters │ └── jshint.xml ├── misc.xml ├── modules.xml ├── runConfigurations │ └── bin_www.xml ├── scopes │ └── scope_settings.xml ├── vcs.xml └── workspace.xml ├── README.md ├── app.js ├── bin └── www ├── package.json ├── public ├── css │ ├── app.css │ ├── bootstrap.css │ └── font-awesome.css ├── index.html ├── js │ ├── app.js │ ├── controllers.js │ └── directives.js ├── lib │ └── angular │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-csp.css │ │ ├── angular.js │ │ ├── angular.min.js │ │ ├── angular.min.js.gzip │ │ ├── angular.min.js.map │ │ ├── bower.json │ │ └── package.json └── views │ └── autocomplete-template.html ├── routes ├── index.js ├── tags.js └── users.js └── views ├── error.ejs └── index.ejs /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory" : "public/lib" 3 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .idea/ -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | autocomplete-demo -------------------------------------------------------------------------------- /.idea/autocomplete-demo.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/jsLinters/jshint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/runConfigurations/bin_www.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/scopes/scope_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 13 | 14 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 130 | 131 | 132 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 168 | 169 | 170 | 171 | 174 | 175 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 211 | 212 | 221 | 222 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 1413465681456 256 | 1413465681456 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 289 | 292 | 293 | 294 | 296 | 297 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | AngularJS AutoComplete Tag Input 2 | ================================ 3 | A demo app showing the usage of AngularJS autocomplete tag input widget. 4 | 5 | To run the app do the following: 6 | 7 | 1. Run `npm install` 8 | 2. Run `node bin/www` 9 | 3. Access the app at `http://localhost:8000` -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var path = require('path'); 3 | var favicon = require('serve-favicon'); 4 | var logger = require('morgan'); 5 | var cookieParser = require('cookie-parser'); 6 | var bodyParser = require('body-parser'); 7 | 8 | var routes = require('./routes/index'); 9 | var users = require('./routes/users'); 10 | var tags=require('./routes/tags'); 11 | 12 | var app = express(); 13 | 14 | // view engine setup 15 | app.set('views', path.join(__dirname, 'views')); 16 | app.set('view engine', 'ejs'); 17 | 18 | // uncomment after placing your favicon in /public 19 | //app.use(favicon(__dirname + '/public/favicon.ico')); 20 | app.use(logger('dev')); 21 | app.use(bodyParser.json()); 22 | app.use(bodyParser.urlencoded({ extended: false })); 23 | app.use(cookieParser()); 24 | app.use(express.static(path.join(__dirname, 'public'))); 25 | 26 | app.use('/',tags); 27 | app.use('/', routes); 28 | app.use('/users', users); 29 | 30 | // catch 404 and forward to error handler 31 | app.use(function(req, res, next) { 32 | var err = new Error('Not Found'); 33 | err.status = 404; 34 | next(err); 35 | }); 36 | 37 | // error handlers 38 | 39 | // development error handler 40 | // will print stacktrace 41 | if (app.get('env') === 'development') { 42 | app.use(function(err, req, res, next) { 43 | res.status(err.status || 500); 44 | res.render('error', { 45 | message: err.message, 46 | error: err 47 | }); 48 | }); 49 | } 50 | 51 | // production error handler 52 | // no stacktraces leaked to user 53 | app.use(function(err, req, res, next) { 54 | res.status(err.status || 500); 55 | res.render('error', { 56 | message: err.message, 57 | error: {} 58 | }); 59 | }); 60 | 61 | 62 | module.exports = app; 63 | -------------------------------------------------------------------------------- /bin/www: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var debug = require('debug')('autocomplete-demo'); 3 | var app = require('../app'); 4 | 5 | app.set('port', process.env.PORT || 8000); 6 | 7 | var server = app.listen(app.get('port'), function() { 8 | debug('Express server listening on port ' + server.address().port); 9 | }); 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "autocomplete-demo", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "node ./bin/www" 7 | }, 8 | "dependencies": { 9 | "express": "~4.9.0", 10 | "body-parser": "~1.8.1", 11 | "cookie-parser": "~1.3.3", 12 | "morgan": "~1.3.0", 13 | "serve-favicon": "~2.1.3", 14 | "debug": "~2.0.0", 15 | "ejs": "~0.8.5" 16 | } 17 | } -------------------------------------------------------------------------------- /public/css/app.css: -------------------------------------------------------------------------------- 1 | .top-buffer{ 2 | padding-top:20px; 3 | } 4 | .tags-wrapper { 5 | position: relative; 6 | } 7 | .tags-cloud .tag { 8 | float: left; 9 | padding: 4px 6px; 10 | font-size: 1em; 11 | margin-right: 5px; 12 | margin-bottom: 5px; 13 | background: #f2f2f2; 14 | font-weight: 600; 15 | -webkit-border-radius: 4px; 16 | -moz-border-radius: 4px; 17 | border-radius: 4px; 18 | -moz-background-clip: padding; 19 | -webkit-background-clip: padding-box; 20 | background-clip: padding-box; 21 | border: 1px solid #dddddd; 22 | } 23 | .tags-cloud .tag:hover { 24 | border: 1px solid #cccccc; 25 | } 26 | .tags-cloud .tag:hover .cross { 27 | opacity: 1; 28 | } 29 | .tags-cloud .tag .cross { 30 | margin-left: 5px; 31 | margin-right: 3px; 32 | font-size: 1em; 33 | color: #20a28e; 34 | opacity: .7; 35 | cursor: pointer; 36 | } 37 | .suggestions-list { 38 | position: absolute; 39 | list-style-type: none; 40 | margin: 0; 41 | padding: 0; 42 | overflow: auto; 43 | -webkit-border-radius: 4px; 44 | -moz-border-radius: 4px; 45 | border-radius: 4px; 46 | -moz-background-clip: padding; 47 | -webkit-background-clip: padding-box; 48 | background-clip: padding-box; 49 | font-size: 14px; 50 | } 51 | .suggestions-list li { 52 | color: #333333; 53 | font-weight: 600; 54 | padding: 4px 25px; 55 | font-size: 1em; 56 | cursor: pointer; 57 | background: #f2f2f2; 58 | border-bottom: 1px solid #dddddd; 59 | } 60 | .suggestions-list li:hover { 61 | background: #dddddd; 62 | } 63 | .suggestions-list li:active, 64 | .suggestions-list li.active { 65 | color: #20a28e; 66 | background: #dddddd; 67 | } 68 | .suggestions-list:focus{ 69 | outline:none; 70 | } -------------------------------------------------------------------------------- /public/css/font-awesome.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | /* FONT PATH 6 | * -------------------------- */ 7 | @font-face { 8 | font-family: 'FontAwesome'; 9 | src: url('../fonts/fontawesome-webfont.eot?v=4.2.0'); 10 | src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg'); 11 | font-weight: normal; 12 | font-style: normal; 13 | } 14 | .fa { 15 | display: inline-block; 16 | font: normal normal normal 14px/1 FontAwesome; 17 | font-size: inherit; 18 | text-rendering: auto; 19 | -webkit-font-smoothing: antialiased; 20 | -moz-osx-font-smoothing: grayscale; 21 | } 22 | /* makes the font 33% larger relative to the icon container */ 23 | .fa-lg { 24 | font-size: 1.33333333em; 25 | line-height: 0.75em; 26 | vertical-align: -15%; 27 | } 28 | .fa-2x { 29 | font-size: 2em; 30 | } 31 | .fa-3x { 32 | font-size: 3em; 33 | } 34 | .fa-4x { 35 | font-size: 4em; 36 | } 37 | .fa-5x { 38 | font-size: 5em; 39 | } 40 | .fa-fw { 41 | width: 1.28571429em; 42 | text-align: center; 43 | } 44 | .fa-ul { 45 | padding-left: 0; 46 | margin-left: 2.14285714em; 47 | list-style-type: none; 48 | } 49 | .fa-ul > li { 50 | position: relative; 51 | } 52 | .fa-li { 53 | position: absolute; 54 | left: -2.14285714em; 55 | width: 2.14285714em; 56 | top: 0.14285714em; 57 | text-align: center; 58 | } 59 | .fa-li.fa-lg { 60 | left: -1.85714286em; 61 | } 62 | .fa-border { 63 | padding: .2em .25em .15em; 64 | border: solid 0.08em #eeeeee; 65 | border-radius: .1em; 66 | } 67 | .pull-right { 68 | float: right; 69 | } 70 | .pull-left { 71 | float: left; 72 | } 73 | .fa.pull-left { 74 | margin-right: .3em; 75 | } 76 | .fa.pull-right { 77 | margin-left: .3em; 78 | } 79 | .fa-spin { 80 | -webkit-animation: fa-spin 2s infinite linear; 81 | animation: fa-spin 2s infinite linear; 82 | } 83 | @-webkit-keyframes fa-spin { 84 | 0% { 85 | -webkit-transform: rotate(0deg); 86 | transform: rotate(0deg); 87 | } 88 | 100% { 89 | -webkit-transform: rotate(359deg); 90 | transform: rotate(359deg); 91 | } 92 | } 93 | @keyframes fa-spin { 94 | 0% { 95 | -webkit-transform: rotate(0deg); 96 | transform: rotate(0deg); 97 | } 98 | 100% { 99 | -webkit-transform: rotate(359deg); 100 | transform: rotate(359deg); 101 | } 102 | } 103 | .fa-rotate-90 { 104 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); 105 | -webkit-transform: rotate(90deg); 106 | -ms-transform: rotate(90deg); 107 | transform: rotate(90deg); 108 | } 109 | .fa-rotate-180 { 110 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); 111 | -webkit-transform: rotate(180deg); 112 | -ms-transform: rotate(180deg); 113 | transform: rotate(180deg); 114 | } 115 | .fa-rotate-270 { 116 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); 117 | -webkit-transform: rotate(270deg); 118 | -ms-transform: rotate(270deg); 119 | transform: rotate(270deg); 120 | } 121 | .fa-flip-horizontal { 122 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); 123 | -webkit-transform: scale(-1, 1); 124 | -ms-transform: scale(-1, 1); 125 | transform: scale(-1, 1); 126 | } 127 | .fa-flip-vertical { 128 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); 129 | -webkit-transform: scale(1, -1); 130 | -ms-transform: scale(1, -1); 131 | transform: scale(1, -1); 132 | } 133 | :root .fa-rotate-90, 134 | :root .fa-rotate-180, 135 | :root .fa-rotate-270, 136 | :root .fa-flip-horizontal, 137 | :root .fa-flip-vertical { 138 | filter: none; 139 | } 140 | .fa-stack { 141 | position: relative; 142 | display: inline-block; 143 | width: 2em; 144 | height: 2em; 145 | line-height: 2em; 146 | vertical-align: middle; 147 | } 148 | .fa-stack-1x, 149 | .fa-stack-2x { 150 | position: absolute; 151 | left: 0; 152 | width: 100%; 153 | text-align: center; 154 | } 155 | .fa-stack-1x { 156 | line-height: inherit; 157 | } 158 | .fa-stack-2x { 159 | font-size: 2em; 160 | } 161 | .fa-inverse { 162 | color: #ffffff; 163 | } 164 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen 165 | readers do not read off random characters that represent icons */ 166 | .fa-glass:before { 167 | content: "\f000"; 168 | } 169 | .fa-music:before { 170 | content: "\f001"; 171 | } 172 | .fa-search:before { 173 | content: "\f002"; 174 | } 175 | .fa-envelope-o:before { 176 | content: "\f003"; 177 | } 178 | .fa-heart:before { 179 | content: "\f004"; 180 | } 181 | .fa-star:before { 182 | content: "\f005"; 183 | } 184 | .fa-star-o:before { 185 | content: "\f006"; 186 | } 187 | .fa-user:before { 188 | content: "\f007"; 189 | } 190 | .fa-film:before { 191 | content: "\f008"; 192 | } 193 | .fa-th-large:before { 194 | content: "\f009"; 195 | } 196 | .fa-th:before { 197 | content: "\f00a"; 198 | } 199 | .fa-th-list:before { 200 | content: "\f00b"; 201 | } 202 | .fa-check:before { 203 | content: "\f00c"; 204 | } 205 | .fa-remove:before, 206 | .fa-close:before, 207 | .fa-times:before { 208 | content: "\f00d"; 209 | } 210 | .fa-search-plus:before { 211 | content: "\f00e"; 212 | } 213 | .fa-search-minus:before { 214 | content: "\f010"; 215 | } 216 | .fa-power-off:before { 217 | content: "\f011"; 218 | } 219 | .fa-signal:before { 220 | content: "\f012"; 221 | } 222 | .fa-gear:before, 223 | .fa-cog:before { 224 | content: "\f013"; 225 | } 226 | .fa-trash-o:before { 227 | content: "\f014"; 228 | } 229 | .fa-home:before { 230 | content: "\f015"; 231 | } 232 | .fa-file-o:before { 233 | content: "\f016"; 234 | } 235 | .fa-clock-o:before { 236 | content: "\f017"; 237 | } 238 | .fa-road:before { 239 | content: "\f018"; 240 | } 241 | .fa-download:before { 242 | content: "\f019"; 243 | } 244 | .fa-arrow-circle-o-down:before { 245 | content: "\f01a"; 246 | } 247 | .fa-arrow-circle-o-up:before { 248 | content: "\f01b"; 249 | } 250 | .fa-inbox:before { 251 | content: "\f01c"; 252 | } 253 | .fa-play-circle-o:before { 254 | content: "\f01d"; 255 | } 256 | .fa-rotate-right:before, 257 | .fa-repeat:before { 258 | content: "\f01e"; 259 | } 260 | .fa-refresh:before { 261 | content: "\f021"; 262 | } 263 | .fa-list-alt:before { 264 | content: "\f022"; 265 | } 266 | .fa-lock:before { 267 | content: "\f023"; 268 | } 269 | .fa-flag:before { 270 | content: "\f024"; 271 | } 272 | .fa-headphones:before { 273 | content: "\f025"; 274 | } 275 | .fa-volume-off:before { 276 | content: "\f026"; 277 | } 278 | .fa-volume-down:before { 279 | content: "\f027"; 280 | } 281 | .fa-volume-up:before { 282 | content: "\f028"; 283 | } 284 | .fa-qrcode:before { 285 | content: "\f029"; 286 | } 287 | .fa-barcode:before { 288 | content: "\f02a"; 289 | } 290 | .fa-tag:before { 291 | content: "\f02b"; 292 | } 293 | .fa-tags:before { 294 | content: "\f02c"; 295 | } 296 | .fa-book:before { 297 | content: "\f02d"; 298 | } 299 | .fa-bookmark:before { 300 | content: "\f02e"; 301 | } 302 | .fa-print:before { 303 | content: "\f02f"; 304 | } 305 | .fa-camera:before { 306 | content: "\f030"; 307 | } 308 | .fa-font:before { 309 | content: "\f031"; 310 | } 311 | .fa-bold:before { 312 | content: "\f032"; 313 | } 314 | .fa-italic:before { 315 | content: "\f033"; 316 | } 317 | .fa-text-height:before { 318 | content: "\f034"; 319 | } 320 | .fa-text-width:before { 321 | content: "\f035"; 322 | } 323 | .fa-align-left:before { 324 | content: "\f036"; 325 | } 326 | .fa-align-center:before { 327 | content: "\f037"; 328 | } 329 | .fa-align-right:before { 330 | content: "\f038"; 331 | } 332 | .fa-align-justify:before { 333 | content: "\f039"; 334 | } 335 | .fa-list:before { 336 | content: "\f03a"; 337 | } 338 | .fa-dedent:before, 339 | .fa-outdent:before { 340 | content: "\f03b"; 341 | } 342 | .fa-indent:before { 343 | content: "\f03c"; 344 | } 345 | .fa-video-camera:before { 346 | content: "\f03d"; 347 | } 348 | .fa-photo:before, 349 | .fa-image:before, 350 | .fa-picture-o:before { 351 | content: "\f03e"; 352 | } 353 | .fa-pencil:before { 354 | content: "\f040"; 355 | } 356 | .fa-map-marker:before { 357 | content: "\f041"; 358 | } 359 | .fa-adjust:before { 360 | content: "\f042"; 361 | } 362 | .fa-tint:before { 363 | content: "\f043"; 364 | } 365 | .fa-edit:before, 366 | .fa-pencil-square-o:before { 367 | content: "\f044"; 368 | } 369 | .fa-share-square-o:before { 370 | content: "\f045"; 371 | } 372 | .fa-check-square-o:before { 373 | content: "\f046"; 374 | } 375 | .fa-arrows:before { 376 | content: "\f047"; 377 | } 378 | .fa-step-backward:before { 379 | content: "\f048"; 380 | } 381 | .fa-fast-backward:before { 382 | content: "\f049"; 383 | } 384 | .fa-backward:before { 385 | content: "\f04a"; 386 | } 387 | .fa-play:before { 388 | content: "\f04b"; 389 | } 390 | .fa-pause:before { 391 | content: "\f04c"; 392 | } 393 | .fa-stop:before { 394 | content: "\f04d"; 395 | } 396 | .fa-forward:before { 397 | content: "\f04e"; 398 | } 399 | .fa-fast-forward:before { 400 | content: "\f050"; 401 | } 402 | .fa-step-forward:before { 403 | content: "\f051"; 404 | } 405 | .fa-eject:before { 406 | content: "\f052"; 407 | } 408 | .fa-chevron-left:before { 409 | content: "\f053"; 410 | } 411 | .fa-chevron-right:before { 412 | content: "\f054"; 413 | } 414 | .fa-plus-circle:before { 415 | content: "\f055"; 416 | } 417 | .fa-minus-circle:before { 418 | content: "\f056"; 419 | } 420 | .fa-times-circle:before { 421 | content: "\f057"; 422 | } 423 | .fa-check-circle:before { 424 | content: "\f058"; 425 | } 426 | .fa-question-circle:before { 427 | content: "\f059"; 428 | } 429 | .fa-info-circle:before { 430 | content: "\f05a"; 431 | } 432 | .fa-crosshairs:before { 433 | content: "\f05b"; 434 | } 435 | .fa-times-circle-o:before { 436 | content: "\f05c"; 437 | } 438 | .fa-check-circle-o:before { 439 | content: "\f05d"; 440 | } 441 | .fa-ban:before { 442 | content: "\f05e"; 443 | } 444 | .fa-arrow-left:before { 445 | content: "\f060"; 446 | } 447 | .fa-arrow-right:before { 448 | content: "\f061"; 449 | } 450 | .fa-arrow-up:before { 451 | content: "\f062"; 452 | } 453 | .fa-arrow-down:before { 454 | content: "\f063"; 455 | } 456 | .fa-mail-forward:before, 457 | .fa-share:before { 458 | content: "\f064"; 459 | } 460 | .fa-expand:before { 461 | content: "\f065"; 462 | } 463 | .fa-compress:before { 464 | content: "\f066"; 465 | } 466 | .fa-plus:before { 467 | content: "\f067"; 468 | } 469 | .fa-minus:before { 470 | content: "\f068"; 471 | } 472 | .fa-asterisk:before { 473 | content: "\f069"; 474 | } 475 | .fa-exclamation-circle:before { 476 | content: "\f06a"; 477 | } 478 | .fa-gift:before { 479 | content: "\f06b"; 480 | } 481 | .fa-leaf:before { 482 | content: "\f06c"; 483 | } 484 | .fa-fire:before { 485 | content: "\f06d"; 486 | } 487 | .fa-eye:before { 488 | content: "\f06e"; 489 | } 490 | .fa-eye-slash:before { 491 | content: "\f070"; 492 | } 493 | .fa-warning:before, 494 | .fa-exclamation-triangle:before { 495 | content: "\f071"; 496 | } 497 | .fa-plane:before { 498 | content: "\f072"; 499 | } 500 | .fa-calendar:before { 501 | content: "\f073"; 502 | } 503 | .fa-random:before { 504 | content: "\f074"; 505 | } 506 | .fa-comment:before { 507 | content: "\f075"; 508 | } 509 | .fa-magnet:before { 510 | content: "\f076"; 511 | } 512 | .fa-chevron-up:before { 513 | content: "\f077"; 514 | } 515 | .fa-chevron-down:before { 516 | content: "\f078"; 517 | } 518 | .fa-retweet:before { 519 | content: "\f079"; 520 | } 521 | .fa-shopping-cart:before { 522 | content: "\f07a"; 523 | } 524 | .fa-folder:before { 525 | content: "\f07b"; 526 | } 527 | .fa-folder-open:before { 528 | content: "\f07c"; 529 | } 530 | .fa-arrows-v:before { 531 | content: "\f07d"; 532 | } 533 | .fa-arrows-h:before { 534 | content: "\f07e"; 535 | } 536 | .fa-bar-chart-o:before, 537 | .fa-bar-chart:before { 538 | content: "\f080"; 539 | } 540 | .fa-twitter-square:before { 541 | content: "\f081"; 542 | } 543 | .fa-facebook-square:before { 544 | content: "\f082"; 545 | } 546 | .fa-camera-retro:before { 547 | content: "\f083"; 548 | } 549 | .fa-key:before { 550 | content: "\f084"; 551 | } 552 | .fa-gears:before, 553 | .fa-cogs:before { 554 | content: "\f085"; 555 | } 556 | .fa-comments:before { 557 | content: "\f086"; 558 | } 559 | .fa-thumbs-o-up:before { 560 | content: "\f087"; 561 | } 562 | .fa-thumbs-o-down:before { 563 | content: "\f088"; 564 | } 565 | .fa-star-half:before { 566 | content: "\f089"; 567 | } 568 | .fa-heart-o:before { 569 | content: "\f08a"; 570 | } 571 | .fa-sign-out:before { 572 | content: "\f08b"; 573 | } 574 | .fa-linkedin-square:before { 575 | content: "\f08c"; 576 | } 577 | .fa-thumb-tack:before { 578 | content: "\f08d"; 579 | } 580 | .fa-external-link:before { 581 | content: "\f08e"; 582 | } 583 | .fa-sign-in:before { 584 | content: "\f090"; 585 | } 586 | .fa-trophy:before { 587 | content: "\f091"; 588 | } 589 | .fa-github-square:before { 590 | content: "\f092"; 591 | } 592 | .fa-upload:before { 593 | content: "\f093"; 594 | } 595 | .fa-lemon-o:before { 596 | content: "\f094"; 597 | } 598 | .fa-phone:before { 599 | content: "\f095"; 600 | } 601 | .fa-square-o:before { 602 | content: "\f096"; 603 | } 604 | .fa-bookmark-o:before { 605 | content: "\f097"; 606 | } 607 | .fa-phone-square:before { 608 | content: "\f098"; 609 | } 610 | .fa-twitter:before { 611 | content: "\f099"; 612 | } 613 | .fa-facebook:before { 614 | content: "\f09a"; 615 | } 616 | .fa-github:before { 617 | content: "\f09b"; 618 | } 619 | .fa-unlock:before { 620 | content: "\f09c"; 621 | } 622 | .fa-credit-card:before { 623 | content: "\f09d"; 624 | } 625 | .fa-rss:before { 626 | content: "\f09e"; 627 | } 628 | .fa-hdd-o:before { 629 | content: "\f0a0"; 630 | } 631 | .fa-bullhorn:before { 632 | content: "\f0a1"; 633 | } 634 | .fa-bell:before { 635 | content: "\f0f3"; 636 | } 637 | .fa-certificate:before { 638 | content: "\f0a3"; 639 | } 640 | .fa-hand-o-right:before { 641 | content: "\f0a4"; 642 | } 643 | .fa-hand-o-left:before { 644 | content: "\f0a5"; 645 | } 646 | .fa-hand-o-up:before { 647 | content: "\f0a6"; 648 | } 649 | .fa-hand-o-down:before { 650 | content: "\f0a7"; 651 | } 652 | .fa-arrow-circle-left:before { 653 | content: "\f0a8"; 654 | } 655 | .fa-arrow-circle-right:before { 656 | content: "\f0a9"; 657 | } 658 | .fa-arrow-circle-up:before { 659 | content: "\f0aa"; 660 | } 661 | .fa-arrow-circle-down:before { 662 | content: "\f0ab"; 663 | } 664 | .fa-globe:before { 665 | content: "\f0ac"; 666 | } 667 | .fa-wrench:before { 668 | content: "\f0ad"; 669 | } 670 | .fa-tasks:before { 671 | content: "\f0ae"; 672 | } 673 | .fa-filter:before { 674 | content: "\f0b0"; 675 | } 676 | .fa-briefcase:before { 677 | content: "\f0b1"; 678 | } 679 | .fa-arrows-alt:before { 680 | content: "\f0b2"; 681 | } 682 | .fa-group:before, 683 | .fa-users:before { 684 | content: "\f0c0"; 685 | } 686 | .fa-chain:before, 687 | .fa-link:before { 688 | content: "\f0c1"; 689 | } 690 | .fa-cloud:before { 691 | content: "\f0c2"; 692 | } 693 | .fa-flask:before { 694 | content: "\f0c3"; 695 | } 696 | .fa-cut:before, 697 | .fa-scissors:before { 698 | content: "\f0c4"; 699 | } 700 | .fa-copy:before, 701 | .fa-files-o:before { 702 | content: "\f0c5"; 703 | } 704 | .fa-paperclip:before { 705 | content: "\f0c6"; 706 | } 707 | .fa-save:before, 708 | .fa-floppy-o:before { 709 | content: "\f0c7"; 710 | } 711 | .fa-square:before { 712 | content: "\f0c8"; 713 | } 714 | .fa-navicon:before, 715 | .fa-reorder:before, 716 | .fa-bars:before { 717 | content: "\f0c9"; 718 | } 719 | .fa-list-ul:before { 720 | content: "\f0ca"; 721 | } 722 | .fa-list-ol:before { 723 | content: "\f0cb"; 724 | } 725 | .fa-strikethrough:before { 726 | content: "\f0cc"; 727 | } 728 | .fa-underline:before { 729 | content: "\f0cd"; 730 | } 731 | .fa-table:before { 732 | content: "\f0ce"; 733 | } 734 | .fa-magic:before { 735 | content: "\f0d0"; 736 | } 737 | .fa-truck:before { 738 | content: "\f0d1"; 739 | } 740 | .fa-pinterest:before { 741 | content: "\f0d2"; 742 | } 743 | .fa-pinterest-square:before { 744 | content: "\f0d3"; 745 | } 746 | .fa-google-plus-square:before { 747 | content: "\f0d4"; 748 | } 749 | .fa-google-plus:before { 750 | content: "\f0d5"; 751 | } 752 | .fa-money:before { 753 | content: "\f0d6"; 754 | } 755 | .fa-caret-down:before { 756 | content: "\f0d7"; 757 | } 758 | .fa-caret-up:before { 759 | content: "\f0d8"; 760 | } 761 | .fa-caret-left:before { 762 | content: "\f0d9"; 763 | } 764 | .fa-caret-right:before { 765 | content: "\f0da"; 766 | } 767 | .fa-columns:before { 768 | content: "\f0db"; 769 | } 770 | .fa-unsorted:before, 771 | .fa-sort:before { 772 | content: "\f0dc"; 773 | } 774 | .fa-sort-down:before, 775 | .fa-sort-desc:before { 776 | content: "\f0dd"; 777 | } 778 | .fa-sort-up:before, 779 | .fa-sort-asc:before { 780 | content: "\f0de"; 781 | } 782 | .fa-envelope:before { 783 | content: "\f0e0"; 784 | } 785 | .fa-linkedin:before { 786 | content: "\f0e1"; 787 | } 788 | .fa-rotate-left:before, 789 | .fa-undo:before { 790 | content: "\f0e2"; 791 | } 792 | .fa-legal:before, 793 | .fa-gavel:before { 794 | content: "\f0e3"; 795 | } 796 | .fa-dashboard:before, 797 | .fa-tachometer:before { 798 | content: "\f0e4"; 799 | } 800 | .fa-comment-o:before { 801 | content: "\f0e5"; 802 | } 803 | .fa-comments-o:before { 804 | content: "\f0e6"; 805 | } 806 | .fa-flash:before, 807 | .fa-bolt:before { 808 | content: "\f0e7"; 809 | } 810 | .fa-sitemap:before { 811 | content: "\f0e8"; 812 | } 813 | .fa-umbrella:before { 814 | content: "\f0e9"; 815 | } 816 | .fa-paste:before, 817 | .fa-clipboard:before { 818 | content: "\f0ea"; 819 | } 820 | .fa-lightbulb-o:before { 821 | content: "\f0eb"; 822 | } 823 | .fa-exchange:before { 824 | content: "\f0ec"; 825 | } 826 | .fa-cloud-download:before { 827 | content: "\f0ed"; 828 | } 829 | .fa-cloud-upload:before { 830 | content: "\f0ee"; 831 | } 832 | .fa-user-md:before { 833 | content: "\f0f0"; 834 | } 835 | .fa-stethoscope:before { 836 | content: "\f0f1"; 837 | } 838 | .fa-suitcase:before { 839 | content: "\f0f2"; 840 | } 841 | .fa-bell-o:before { 842 | content: "\f0a2"; 843 | } 844 | .fa-coffee:before { 845 | content: "\f0f4"; 846 | } 847 | .fa-cutlery:before { 848 | content: "\f0f5"; 849 | } 850 | .fa-file-text-o:before { 851 | content: "\f0f6"; 852 | } 853 | .fa-building-o:before { 854 | content: "\f0f7"; 855 | } 856 | .fa-hospital-o:before { 857 | content: "\f0f8"; 858 | } 859 | .fa-ambulance:before { 860 | content: "\f0f9"; 861 | } 862 | .fa-medkit:before { 863 | content: "\f0fa"; 864 | } 865 | .fa-fighter-jet:before { 866 | content: "\f0fb"; 867 | } 868 | .fa-beer:before { 869 | content: "\f0fc"; 870 | } 871 | .fa-h-square:before { 872 | content: "\f0fd"; 873 | } 874 | .fa-plus-square:before { 875 | content: "\f0fe"; 876 | } 877 | .fa-angle-double-left:before { 878 | content: "\f100"; 879 | } 880 | .fa-angle-double-right:before { 881 | content: "\f101"; 882 | } 883 | .fa-angle-double-up:before { 884 | content: "\f102"; 885 | } 886 | .fa-angle-double-down:before { 887 | content: "\f103"; 888 | } 889 | .fa-angle-left:before { 890 | content: "\f104"; 891 | } 892 | .fa-angle-right:before { 893 | content: "\f105"; 894 | } 895 | .fa-angle-up:before { 896 | content: "\f106"; 897 | } 898 | .fa-angle-down:before { 899 | content: "\f107"; 900 | } 901 | .fa-desktop:before { 902 | content: "\f108"; 903 | } 904 | .fa-laptop:before { 905 | content: "\f109"; 906 | } 907 | .fa-tablet:before { 908 | content: "\f10a"; 909 | } 910 | .fa-mobile-phone:before, 911 | .fa-mobile:before { 912 | content: "\f10b"; 913 | } 914 | .fa-circle-o:before { 915 | content: "\f10c"; 916 | } 917 | .fa-quote-left:before { 918 | content: "\f10d"; 919 | } 920 | .fa-quote-right:before { 921 | content: "\f10e"; 922 | } 923 | .fa-spinner:before { 924 | content: "\f110"; 925 | } 926 | .fa-circle:before { 927 | content: "\f111"; 928 | } 929 | .fa-mail-reply:before, 930 | .fa-reply:before { 931 | content: "\f112"; 932 | } 933 | .fa-github-alt:before { 934 | content: "\f113"; 935 | } 936 | .fa-folder-o:before { 937 | content: "\f114"; 938 | } 939 | .fa-folder-open-o:before { 940 | content: "\f115"; 941 | } 942 | .fa-smile-o:before { 943 | content: "\f118"; 944 | } 945 | .fa-frown-o:before { 946 | content: "\f119"; 947 | } 948 | .fa-meh-o:before { 949 | content: "\f11a"; 950 | } 951 | .fa-gamepad:before { 952 | content: "\f11b"; 953 | } 954 | .fa-keyboard-o:before { 955 | content: "\f11c"; 956 | } 957 | .fa-flag-o:before { 958 | content: "\f11d"; 959 | } 960 | .fa-flag-checkered:before { 961 | content: "\f11e"; 962 | } 963 | .fa-terminal:before { 964 | content: "\f120"; 965 | } 966 | .fa-code:before { 967 | content: "\f121"; 968 | } 969 | .fa-mail-reply-all:before, 970 | .fa-reply-all:before { 971 | content: "\f122"; 972 | } 973 | .fa-star-half-empty:before, 974 | .fa-star-half-full:before, 975 | .fa-star-half-o:before { 976 | content: "\f123"; 977 | } 978 | .fa-location-arrow:before { 979 | content: "\f124"; 980 | } 981 | .fa-crop:before { 982 | content: "\f125"; 983 | } 984 | .fa-code-fork:before { 985 | content: "\f126"; 986 | } 987 | .fa-unlink:before, 988 | .fa-chain-broken:before { 989 | content: "\f127"; 990 | } 991 | .fa-question:before { 992 | content: "\f128"; 993 | } 994 | .fa-info:before { 995 | content: "\f129"; 996 | } 997 | .fa-exclamation:before { 998 | content: "\f12a"; 999 | } 1000 | .fa-superscript:before { 1001 | content: "\f12b"; 1002 | } 1003 | .fa-subscript:before { 1004 | content: "\f12c"; 1005 | } 1006 | .fa-eraser:before { 1007 | content: "\f12d"; 1008 | } 1009 | .fa-puzzle-piece:before { 1010 | content: "\f12e"; 1011 | } 1012 | .fa-microphone:before { 1013 | content: "\f130"; 1014 | } 1015 | .fa-microphone-slash:before { 1016 | content: "\f131"; 1017 | } 1018 | .fa-shield:before { 1019 | content: "\f132"; 1020 | } 1021 | .fa-calendar-o:before { 1022 | content: "\f133"; 1023 | } 1024 | .fa-fire-extinguisher:before { 1025 | content: "\f134"; 1026 | } 1027 | .fa-rocket:before { 1028 | content: "\f135"; 1029 | } 1030 | .fa-maxcdn:before { 1031 | content: "\f136"; 1032 | } 1033 | .fa-chevron-circle-left:before { 1034 | content: "\f137"; 1035 | } 1036 | .fa-chevron-circle-right:before { 1037 | content: "\f138"; 1038 | } 1039 | .fa-chevron-circle-up:before { 1040 | content: "\f139"; 1041 | } 1042 | .fa-chevron-circle-down:before { 1043 | content: "\f13a"; 1044 | } 1045 | .fa-html5:before { 1046 | content: "\f13b"; 1047 | } 1048 | .fa-css3:before { 1049 | content: "\f13c"; 1050 | } 1051 | .fa-anchor:before { 1052 | content: "\f13d"; 1053 | } 1054 | .fa-unlock-alt:before { 1055 | content: "\f13e"; 1056 | } 1057 | .fa-bullseye:before { 1058 | content: "\f140"; 1059 | } 1060 | .fa-ellipsis-h:before { 1061 | content: "\f141"; 1062 | } 1063 | .fa-ellipsis-v:before { 1064 | content: "\f142"; 1065 | } 1066 | .fa-rss-square:before { 1067 | content: "\f143"; 1068 | } 1069 | .fa-play-circle:before { 1070 | content: "\f144"; 1071 | } 1072 | .fa-ticket:before { 1073 | content: "\f145"; 1074 | } 1075 | .fa-minus-square:before { 1076 | content: "\f146"; 1077 | } 1078 | .fa-minus-square-o:before { 1079 | content: "\f147"; 1080 | } 1081 | .fa-level-up:before { 1082 | content: "\f148"; 1083 | } 1084 | .fa-level-down:before { 1085 | content: "\f149"; 1086 | } 1087 | .fa-check-square:before { 1088 | content: "\f14a"; 1089 | } 1090 | .fa-pencil-square:before { 1091 | content: "\f14b"; 1092 | } 1093 | .fa-external-link-square:before { 1094 | content: "\f14c"; 1095 | } 1096 | .fa-share-square:before { 1097 | content: "\f14d"; 1098 | } 1099 | .fa-compass:before { 1100 | content: "\f14e"; 1101 | } 1102 | .fa-toggle-down:before, 1103 | .fa-caret-square-o-down:before { 1104 | content: "\f150"; 1105 | } 1106 | .fa-toggle-up:before, 1107 | .fa-caret-square-o-up:before { 1108 | content: "\f151"; 1109 | } 1110 | .fa-toggle-right:before, 1111 | .fa-caret-square-o-right:before { 1112 | content: "\f152"; 1113 | } 1114 | .fa-euro:before, 1115 | .fa-eur:before { 1116 | content: "\f153"; 1117 | } 1118 | .fa-gbp:before { 1119 | content: "\f154"; 1120 | } 1121 | .fa-dollar:before, 1122 | .fa-usd:before { 1123 | content: "\f155"; 1124 | } 1125 | .fa-rupee:before, 1126 | .fa-inr:before { 1127 | content: "\f156"; 1128 | } 1129 | .fa-cny:before, 1130 | .fa-rmb:before, 1131 | .fa-yen:before, 1132 | .fa-jpy:before { 1133 | content: "\f157"; 1134 | } 1135 | .fa-ruble:before, 1136 | .fa-rouble:before, 1137 | .fa-rub:before { 1138 | content: "\f158"; 1139 | } 1140 | .fa-won:before, 1141 | .fa-krw:before { 1142 | content: "\f159"; 1143 | } 1144 | .fa-bitcoin:before, 1145 | .fa-btc:before { 1146 | content: "\f15a"; 1147 | } 1148 | .fa-file:before { 1149 | content: "\f15b"; 1150 | } 1151 | .fa-file-text:before { 1152 | content: "\f15c"; 1153 | } 1154 | .fa-sort-alpha-asc:before { 1155 | content: "\f15d"; 1156 | } 1157 | .fa-sort-alpha-desc:before { 1158 | content: "\f15e"; 1159 | } 1160 | .fa-sort-amount-asc:before { 1161 | content: "\f160"; 1162 | } 1163 | .fa-sort-amount-desc:before { 1164 | content: "\f161"; 1165 | } 1166 | .fa-sort-numeric-asc:before { 1167 | content: "\f162"; 1168 | } 1169 | .fa-sort-numeric-desc:before { 1170 | content: "\f163"; 1171 | } 1172 | .fa-thumbs-up:before { 1173 | content: "\f164"; 1174 | } 1175 | .fa-thumbs-down:before { 1176 | content: "\f165"; 1177 | } 1178 | .fa-youtube-square:before { 1179 | content: "\f166"; 1180 | } 1181 | .fa-youtube:before { 1182 | content: "\f167"; 1183 | } 1184 | .fa-xing:before { 1185 | content: "\f168"; 1186 | } 1187 | .fa-xing-square:before { 1188 | content: "\f169"; 1189 | } 1190 | .fa-youtube-play:before { 1191 | content: "\f16a"; 1192 | } 1193 | .fa-dropbox:before { 1194 | content: "\f16b"; 1195 | } 1196 | .fa-stack-overflow:before { 1197 | content: "\f16c"; 1198 | } 1199 | .fa-instagram:before { 1200 | content: "\f16d"; 1201 | } 1202 | .fa-flickr:before { 1203 | content: "\f16e"; 1204 | } 1205 | .fa-adn:before { 1206 | content: "\f170"; 1207 | } 1208 | .fa-bitbucket:before { 1209 | content: "\f171"; 1210 | } 1211 | .fa-bitbucket-square:before { 1212 | content: "\f172"; 1213 | } 1214 | .fa-tumblr:before { 1215 | content: "\f173"; 1216 | } 1217 | .fa-tumblr-square:before { 1218 | content: "\f174"; 1219 | } 1220 | .fa-long-arrow-down:before { 1221 | content: "\f175"; 1222 | } 1223 | .fa-long-arrow-up:before { 1224 | content: "\f176"; 1225 | } 1226 | .fa-long-arrow-left:before { 1227 | content: "\f177"; 1228 | } 1229 | .fa-long-arrow-right:before { 1230 | content: "\f178"; 1231 | } 1232 | .fa-apple:before { 1233 | content: "\f179"; 1234 | } 1235 | .fa-windows:before { 1236 | content: "\f17a"; 1237 | } 1238 | .fa-android:before { 1239 | content: "\f17b"; 1240 | } 1241 | .fa-linux:before { 1242 | content: "\f17c"; 1243 | } 1244 | .fa-dribbble:before { 1245 | content: "\f17d"; 1246 | } 1247 | .fa-skype:before { 1248 | content: "\f17e"; 1249 | } 1250 | .fa-foursquare:before { 1251 | content: "\f180"; 1252 | } 1253 | .fa-trello:before { 1254 | content: "\f181"; 1255 | } 1256 | .fa-female:before { 1257 | content: "\f182"; 1258 | } 1259 | .fa-male:before { 1260 | content: "\f183"; 1261 | } 1262 | .fa-gittip:before { 1263 | content: "\f184"; 1264 | } 1265 | .fa-sun-o:before { 1266 | content: "\f185"; 1267 | } 1268 | .fa-moon-o:before { 1269 | content: "\f186"; 1270 | } 1271 | .fa-archive:before { 1272 | content: "\f187"; 1273 | } 1274 | .fa-bug:before { 1275 | content: "\f188"; 1276 | } 1277 | .fa-vk:before { 1278 | content: "\f189"; 1279 | } 1280 | .fa-weibo:before { 1281 | content: "\f18a"; 1282 | } 1283 | .fa-renren:before { 1284 | content: "\f18b"; 1285 | } 1286 | .fa-pagelines:before { 1287 | content: "\f18c"; 1288 | } 1289 | .fa-stack-exchange:before { 1290 | content: "\f18d"; 1291 | } 1292 | .fa-arrow-circle-o-right:before { 1293 | content: "\f18e"; 1294 | } 1295 | .fa-arrow-circle-o-left:before { 1296 | content: "\f190"; 1297 | } 1298 | .fa-toggle-left:before, 1299 | .fa-caret-square-o-left:before { 1300 | content: "\f191"; 1301 | } 1302 | .fa-dot-circle-o:before { 1303 | content: "\f192"; 1304 | } 1305 | .fa-wheelchair:before { 1306 | content: "\f193"; 1307 | } 1308 | .fa-vimeo-square:before { 1309 | content: "\f194"; 1310 | } 1311 | .fa-turkish-lira:before, 1312 | .fa-try:before { 1313 | content: "\f195"; 1314 | } 1315 | .fa-plus-square-o:before { 1316 | content: "\f196"; 1317 | } 1318 | .fa-space-shuttle:before { 1319 | content: "\f197"; 1320 | } 1321 | .fa-slack:before { 1322 | content: "\f198"; 1323 | } 1324 | .fa-envelope-square:before { 1325 | content: "\f199"; 1326 | } 1327 | .fa-wordpress:before { 1328 | content: "\f19a"; 1329 | } 1330 | .fa-openid:before { 1331 | content: "\f19b"; 1332 | } 1333 | .fa-institution:before, 1334 | .fa-bank:before, 1335 | .fa-university:before { 1336 | content: "\f19c"; 1337 | } 1338 | .fa-mortar-board:before, 1339 | .fa-graduation-cap:before { 1340 | content: "\f19d"; 1341 | } 1342 | .fa-yahoo:before { 1343 | content: "\f19e"; 1344 | } 1345 | .fa-google:before { 1346 | content: "\f1a0"; 1347 | } 1348 | .fa-reddit:before { 1349 | content: "\f1a1"; 1350 | } 1351 | .fa-reddit-square:before { 1352 | content: "\f1a2"; 1353 | } 1354 | .fa-stumbleupon-circle:before { 1355 | content: "\f1a3"; 1356 | } 1357 | .fa-stumbleupon:before { 1358 | content: "\f1a4"; 1359 | } 1360 | .fa-delicious:before { 1361 | content: "\f1a5"; 1362 | } 1363 | .fa-digg:before { 1364 | content: "\f1a6"; 1365 | } 1366 | .fa-pied-piper:before { 1367 | content: "\f1a7"; 1368 | } 1369 | .fa-pied-piper-alt:before { 1370 | content: "\f1a8"; 1371 | } 1372 | .fa-drupal:before { 1373 | content: "\f1a9"; 1374 | } 1375 | .fa-joomla:before { 1376 | content: "\f1aa"; 1377 | } 1378 | .fa-language:before { 1379 | content: "\f1ab"; 1380 | } 1381 | .fa-fax:before { 1382 | content: "\f1ac"; 1383 | } 1384 | .fa-building:before { 1385 | content: "\f1ad"; 1386 | } 1387 | .fa-child:before { 1388 | content: "\f1ae"; 1389 | } 1390 | .fa-paw:before { 1391 | content: "\f1b0"; 1392 | } 1393 | .fa-spoon:before { 1394 | content: "\f1b1"; 1395 | } 1396 | .fa-cube:before { 1397 | content: "\f1b2"; 1398 | } 1399 | .fa-cubes:before { 1400 | content: "\f1b3"; 1401 | } 1402 | .fa-behance:before { 1403 | content: "\f1b4"; 1404 | } 1405 | .fa-behance-square:before { 1406 | content: "\f1b5"; 1407 | } 1408 | .fa-steam:before { 1409 | content: "\f1b6"; 1410 | } 1411 | .fa-steam-square:before { 1412 | content: "\f1b7"; 1413 | } 1414 | .fa-recycle:before { 1415 | content: "\f1b8"; 1416 | } 1417 | .fa-automobile:before, 1418 | .fa-car:before { 1419 | content: "\f1b9"; 1420 | } 1421 | .fa-cab:before, 1422 | .fa-taxi:before { 1423 | content: "\f1ba"; 1424 | } 1425 | .fa-tree:before { 1426 | content: "\f1bb"; 1427 | } 1428 | .fa-spotify:before { 1429 | content: "\f1bc"; 1430 | } 1431 | .fa-deviantart:before { 1432 | content: "\f1bd"; 1433 | } 1434 | .fa-soundcloud:before { 1435 | content: "\f1be"; 1436 | } 1437 | .fa-database:before { 1438 | content: "\f1c0"; 1439 | } 1440 | .fa-file-pdf-o:before { 1441 | content: "\f1c1"; 1442 | } 1443 | .fa-file-word-o:before { 1444 | content: "\f1c2"; 1445 | } 1446 | .fa-file-excel-o:before { 1447 | content: "\f1c3"; 1448 | } 1449 | .fa-file-powerpoint-o:before { 1450 | content: "\f1c4"; 1451 | } 1452 | .fa-file-photo-o:before, 1453 | .fa-file-picture-o:before, 1454 | .fa-file-image-o:before { 1455 | content: "\f1c5"; 1456 | } 1457 | .fa-file-zip-o:before, 1458 | .fa-file-archive-o:before { 1459 | content: "\f1c6"; 1460 | } 1461 | .fa-file-sound-o:before, 1462 | .fa-file-audio-o:before { 1463 | content: "\f1c7"; 1464 | } 1465 | .fa-file-movie-o:before, 1466 | .fa-file-video-o:before { 1467 | content: "\f1c8"; 1468 | } 1469 | .fa-file-code-o:before { 1470 | content: "\f1c9"; 1471 | } 1472 | .fa-vine:before { 1473 | content: "\f1ca"; 1474 | } 1475 | .fa-codepen:before { 1476 | content: "\f1cb"; 1477 | } 1478 | .fa-jsfiddle:before { 1479 | content: "\f1cc"; 1480 | } 1481 | .fa-life-bouy:before, 1482 | .fa-life-buoy:before, 1483 | .fa-life-saver:before, 1484 | .fa-support:before, 1485 | .fa-life-ring:before { 1486 | content: "\f1cd"; 1487 | } 1488 | .fa-circle-o-notch:before { 1489 | content: "\f1ce"; 1490 | } 1491 | .fa-ra:before, 1492 | .fa-rebel:before { 1493 | content: "\f1d0"; 1494 | } 1495 | .fa-ge:before, 1496 | .fa-empire:before { 1497 | content: "\f1d1"; 1498 | } 1499 | .fa-git-square:before { 1500 | content: "\f1d2"; 1501 | } 1502 | .fa-git:before { 1503 | content: "\f1d3"; 1504 | } 1505 | .fa-hacker-news:before { 1506 | content: "\f1d4"; 1507 | } 1508 | .fa-tencent-weibo:before { 1509 | content: "\f1d5"; 1510 | } 1511 | .fa-qq:before { 1512 | content: "\f1d6"; 1513 | } 1514 | .fa-wechat:before, 1515 | .fa-weixin:before { 1516 | content: "\f1d7"; 1517 | } 1518 | .fa-send:before, 1519 | .fa-paper-plane:before { 1520 | content: "\f1d8"; 1521 | } 1522 | .fa-send-o:before, 1523 | .fa-paper-plane-o:before { 1524 | content: "\f1d9"; 1525 | } 1526 | .fa-history:before { 1527 | content: "\f1da"; 1528 | } 1529 | .fa-circle-thin:before { 1530 | content: "\f1db"; 1531 | } 1532 | .fa-header:before { 1533 | content: "\f1dc"; 1534 | } 1535 | .fa-paragraph:before { 1536 | content: "\f1dd"; 1537 | } 1538 | .fa-sliders:before { 1539 | content: "\f1de"; 1540 | } 1541 | .fa-share-alt:before { 1542 | content: "\f1e0"; 1543 | } 1544 | .fa-share-alt-square:before { 1545 | content: "\f1e1"; 1546 | } 1547 | .fa-bomb:before { 1548 | content: "\f1e2"; 1549 | } 1550 | .fa-soccer-ball-o:before, 1551 | .fa-futbol-o:before { 1552 | content: "\f1e3"; 1553 | } 1554 | .fa-tty:before { 1555 | content: "\f1e4"; 1556 | } 1557 | .fa-binoculars:before { 1558 | content: "\f1e5"; 1559 | } 1560 | .fa-plug:before { 1561 | content: "\f1e6"; 1562 | } 1563 | .fa-slideshare:before { 1564 | content: "\f1e7"; 1565 | } 1566 | .fa-twitch:before { 1567 | content: "\f1e8"; 1568 | } 1569 | .fa-yelp:before { 1570 | content: "\f1e9"; 1571 | } 1572 | .fa-newspaper-o:before { 1573 | content: "\f1ea"; 1574 | } 1575 | .fa-wifi:before { 1576 | content: "\f1eb"; 1577 | } 1578 | .fa-calculator:before { 1579 | content: "\f1ec"; 1580 | } 1581 | .fa-paypal:before { 1582 | content: "\f1ed"; 1583 | } 1584 | .fa-google-wallet:before { 1585 | content: "\f1ee"; 1586 | } 1587 | .fa-cc-visa:before { 1588 | content: "\f1f0"; 1589 | } 1590 | .fa-cc-mastercard:before { 1591 | content: "\f1f1"; 1592 | } 1593 | .fa-cc-discover:before { 1594 | content: "\f1f2"; 1595 | } 1596 | .fa-cc-amex:before { 1597 | content: "\f1f3"; 1598 | } 1599 | .fa-cc-paypal:before { 1600 | content: "\f1f4"; 1601 | } 1602 | .fa-cc-stripe:before { 1603 | content: "\f1f5"; 1604 | } 1605 | .fa-bell-slash:before { 1606 | content: "\f1f6"; 1607 | } 1608 | .fa-bell-slash-o:before { 1609 | content: "\f1f7"; 1610 | } 1611 | .fa-trash:before { 1612 | content: "\f1f8"; 1613 | } 1614 | .fa-copyright:before { 1615 | content: "\f1f9"; 1616 | } 1617 | .fa-at:before { 1618 | content: "\f1fa"; 1619 | } 1620 | .fa-eyedropper:before { 1621 | content: "\f1fb"; 1622 | } 1623 | .fa-paint-brush:before { 1624 | content: "\f1fc"; 1625 | } 1626 | .fa-birthday-cake:before { 1627 | content: "\f1fd"; 1628 | } 1629 | .fa-area-chart:before { 1630 | content: "\f1fe"; 1631 | } 1632 | .fa-pie-chart:before { 1633 | content: "\f200"; 1634 | } 1635 | .fa-line-chart:before { 1636 | content: "\f201"; 1637 | } 1638 | .fa-lastfm:before { 1639 | content: "\f202"; 1640 | } 1641 | .fa-lastfm-square:before { 1642 | content: "\f203"; 1643 | } 1644 | .fa-toggle-off:before { 1645 | content: "\f204"; 1646 | } 1647 | .fa-toggle-on:before { 1648 | content: "\f205"; 1649 | } 1650 | .fa-bicycle:before { 1651 | content: "\f206"; 1652 | } 1653 | .fa-bus:before { 1654 | content: "\f207"; 1655 | } 1656 | .fa-ioxhost:before { 1657 | content: "\f208"; 1658 | } 1659 | .fa-angellist:before { 1660 | content: "\f209"; 1661 | } 1662 | .fa-cc:before { 1663 | content: "\f20a"; 1664 | } 1665 | .fa-shekel:before, 1666 | .fa-sheqel:before, 1667 | .fa-ils:before { 1668 | content: "\f20b"; 1669 | } 1670 | .fa-meanpath:before { 1671 | content: "\f20c"; 1672 | } 1673 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Welcome to Angular Autocomplete Tag Input 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /public/js/app.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Sandeep on 16/10/14. 3 | */ 4 | angular.module('com.htmlxprs.autocomplete',['com.htmlxprs.autocomplete.directives','com.htmlxprs.autocomplete.controllers']); -------------------------------------------------------------------------------- /public/js/controllers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Sandeep on 16/10/14. 3 | */ 4 | angular.module('com.htmlxprs.autocomplete.controllers',[]).controller('TagController',['$scope',function($scope){ 5 | $scope.$watchCollection('data.tags',function(val){ 6 | console.log(val); 7 | }); 8 | }]); -------------------------------------------------------------------------------- /public/js/directives.js: -------------------------------------------------------------------------------- 1 | angular.module('com.htmlxprs.autocomplete.directives',[]).directive('autoComplete',['$http',function($http){ 2 | return { 3 | restrict:'AE', 4 | scope:{ 5 | selectedTags:'=model' 6 | }, 7 | templateUrl:'/views/autocomplete-template.html', 8 | link:function(scope,elem,attrs){ 9 | 10 | scope.suggestions=[]; 11 | 12 | scope.selectedTags=[]; 13 | 14 | scope.selectedIndex=-1; 15 | 16 | scope.removeTag=function(index){ 17 | scope.selectedTags.splice(index,1); 18 | } 19 | 20 | scope.search=function(){ 21 | $http.get(attrs.url+'?term='+scope.searchText).success(function(data){ 22 | if(data.indexOf(scope.searchText)===-1){ 23 | data.unshift(scope.searchText); 24 | } 25 | scope.suggestions=data; 26 | scope.selectedIndex=-1; 27 | }); 28 | } 29 | 30 | scope.addToSelectedTags=function(index){ 31 | if(scope.selectedTags.indexOf(scope.suggestions[index])===-1){ 32 | scope.selectedTags.push(scope.suggestions[index]); 33 | scope.searchText=''; 34 | scope.suggestions=[]; 35 | } 36 | } 37 | 38 | scope.checkKeyDown=function(event){ 39 | if(event.keyCode===40){ 40 | event.preventDefault(); 41 | if(scope.selectedIndex+1 !== scope.suggestions.length){ 42 | scope.selectedIndex++; 43 | } 44 | } 45 | else if(event.keyCode===38){ 46 | event.preventDefault(); 47 | if(scope.selectedIndex-1 !== -1){ 48 | scope.selectedIndex--; 49 | } 50 | } 51 | else if(event.keyCode===13){ 52 | scope.addToSelectedTags(scope.selectedIndex); 53 | } 54 | } 55 | 56 | scope.$watch('selectedIndex',function(val){ 57 | if(val!==-1) { 58 | scope.searchText = scope.suggestions[scope.selectedIndex]; 59 | } 60 | }); 61 | } 62 | } 63 | }]); -------------------------------------------------------------------------------- /public/lib/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.0", 4 | "main": "./angular.js", 5 | "dependencies": {}, 6 | "homepage": "https://github.com/angular/bower-angular", 7 | "_release": "1.3.0", 8 | "_resolution": { 9 | "type": "version", 10 | "tag": "v1.3.0", 11 | "commit": "992364cfc43aaa7755d5359c783aba0a2d1a5f4a" 12 | }, 13 | "_source": "git://github.com/angular/bower-angular.git", 14 | "_target": "~1.3.0", 15 | "_originalSource": "angular", 16 | "_direct": true 17 | } -------------------------------------------------------------------------------- /public/lib/angular/README.md: -------------------------------------------------------------------------------- 1 | # bower-angular 2 | 3 | This repo is for distribution on `bower`. The source for this module is in the 4 | [main AngularJS repo](https://github.com/angular/angular.js). 5 | Please file issues and pull requests against that repo. 6 | 7 | ## Install 8 | 9 | Install with `bower`: 10 | 11 | ```shell 12 | bower install angular 13 | ``` 14 | 15 | Add a ` 19 | ``` 20 | 21 | ## Documentation 22 | 23 | Documentation is available on the 24 | [AngularJS docs site](http://docs.angularjs.org/). 25 | 26 | ## License 27 | 28 | The MIT License 29 | 30 | Copyright (c) 2010-2012 Google, Inc. http://angularjs.org 31 | 32 | Permission is hereby granted, free of charge, to any person obtaining a copy 33 | of this software and associated documentation files (the "Software"), to deal 34 | in the Software without restriction, including without limitation the rights 35 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 36 | copies of the Software, and to permit persons to whom the Software is 37 | furnished to do so, subject to the following conditions: 38 | 39 | The above copyright notice and this permission notice shall be included in 40 | all copies or substantial portions of the Software. 41 | 42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 48 | THE SOFTWARE. 49 | -------------------------------------------------------------------------------- /public/lib/angular/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | -------------------------------------------------------------------------------- /public/lib/angular/angular.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | AngularJS v1.3.0 3 | (c) 2010-2014 Google, Inc. http://angularjs.org 4 | License: MIT 5 | */ 6 | (function(S,X,u){'use strict';function y(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.0/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===kb?N(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+ 15 | N(b)})}catch(d){return N(c)}}function pc(b){try{return decodeURIComponent(b)}catch(a){}}function qc(b){var a={},c,d;r((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=pc(c[0]),z(d)&&(b=z(c[1])?pc(c[1]):!0,Hb.call(a,d)?B(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Ib(b){var a=[];r(b,function(b,d){B(b)?r(b,function(b){a.push(Da(d,!0)+(!0===b?"":"="+Da(b,!0)))}):a.push(Da(d,!0)+(!0===b?"":"="+Da(b,!0)))});return a.length?a.join("&"):""}function lb(b){return Da(b, 16 | !0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Da(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Dd(b,a){var c,d,e=mb.length;b=D(b);for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng"); 18 | d=Jb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;S&&e.test(S.name)&&(c.debugInfoEnabled=!0,S.name=S.name.replace(e,""));if(S&&!f.test(S.name))return d();S.name=S.name.replace(f,"");ta.resumeBootstrap=function(b){r(b,function(b){a.push(b)});d()}}function Fd(){S.name="NG_ENABLE_DEBUG_INFO!"+S.name;S.location.reload()}function Gd(b){return ta.element(b).injector().get("$$testability")} 19 | function Kb(b,a){a=a||"_";return b.replace(Hd,function(b,d){return(d?a:"")+b.toLowerCase()})}function Id(){var b;sc||((ma=S.jQuery)&&ma.fn.on?(D=ma,E(ma.fn,{scope:Ja.scope,isolateScope:Ja.isolateScope,controller:Ja.controller,injector:Ja.injector,inheritedData:Ja.inheritedData}),b=ma.cleanData,ma.cleanData=function(a){var c;if(Lb)Lb=!1;else for(var d=0,e;null!=(e=a[d]);d++)(c=ma._data(e,"events"))&&c.$destroy&&ma(e).triggerHandler("$destroy");b(a)}):D=R,ta.element=D,sc=!0)}function Mb(b,a,c){if(!b)throw Xa("areq", 20 | a||"?",c||"required");return b}function nb(b,a,c){c&&B(b)&&(b=b[b.length-1]);Mb(F(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ka(b,a){if("hasOwnProperty"===b)throw Xa("badname",a);}function tc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g")+d[2];for(d=d[0];d--;)c=c.lastChild;f=jb(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)}); 27 | return e}function R(b){if(b instanceof R)return b;var a;I(b)&&(b=U(b),a=!0);if(!(this instanceof R)){if(a&&"<"!=b.charAt(0))throw Ob("nosel");return new R(b)}if(a){a=X;var c;b=(c=af.exec(b))?[a.createElement(c[1])]:(c=Dc(b,a))?c.childNodes:[]}Ec(this,b)}function Pb(b){return b.cloneNode(!0)}function rb(b,a){a||sb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d 4096 bytes)!"));else{if(q.cookie!==Ma)for(Ma=q.cookie,d=Ma.split("; "),ca={},f=0;fl&&this.remove(p.key),b},get:function(a){if(l").parent()[0])});var f=Q(a,b,a,c,d,e);H.$$addScopeClass(a); 50 | var g=null;return function(b,c,d,e,h){Mb(b,"scope");g||(g=(h=h&&h[0])?"foreignobject"!==pa(h)&&h.toString().match(/SVG/)?"svg":"html":"html");h="html"!==g?D(S(g,D("
").append(a).html())):c?Ja.clone.call(a):a;if(d)for(var k in d)h.data("$"+k+"Controller",d[k].instance);H.$$addScopeInfo(h,b);c&&c(h,b);f&&f(b,h,h,e);return h}}function Q(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,p,n,t,s;if(q)for(s=Array(c.length),p=0;pL.priority)break;if(y=L.scope)L.templateUrl||(G(y)?(xa("new/isolated scope",Q||P,L,Y),Q=L):xa("new/isolated scope", 60 | Q,L,Y)),P=P||L;ga=L.name;!L.templateUrl&&L.controller&&(y=L.controller,aa=aa||{},xa("'"+ga+"' controller",aa[ga],L,Y),aa[ga]=L);if(y=L.transclude)Na=!0,L.$$tlb||(xa("transclusion",fa,L,Y),fa=L),"element"==y?(E=!0,C=L.priority,y=Y,Y=e.$$element=D(X.createComment(" "+ga+": "+e[ga]+" ")),d=Y[0],yb(g,Ya.call(y,0),d),Ga=H(y,f,C,h&&h.name,{nonTlbTranscludeDirective:fa})):(y=D(Pb(d)).contents(),Y.empty(),Ga=H(y,f));if(L.template)if(A=!0,xa("template",ca,L,Y),ca=L,y=F(L.template)?L.template(Y,e):L.template, 61 | y=Oc(y),L.replace){h=L;y=Nb.test(y)?Pc(S(L.templateNamespace,U(y))):[];d=y[0];if(1!=y.length||d.nodeType!==ka)throw ia("tplrt",ga,"");yb(g,Y,d);ya={$attr:{}};y=O(d,[],ya);var ba=a.splice(R+1,a.length-(R+1));Q&&Ma(y);a=a.concat(y).concat(ba);z(e,ya);ya=a.length}else Y.html(y);if(L.templateUrl)A=!0,xa("template",ca,L,Y),ca=L,L.replace&&(h=L),M=w(a.splice(R,a.length-R),Y,e,g,Na&&Ga,l,q,{controllerDirectives:aa,newIsolateScopeDirective:Q,templateDirective:ca,nonTlbTranscludeDirective:fa}),ya=a.length; 62 | else if(L.compile)try{N=L.compile(Y,e,Ga),F(N)?s(null,N,W,Vb):N&&s(N.pre,N.post,W,Vb)}catch(kf){c(kf,sa(Y))}L.terminal&&(M.terminal=!0,C=Math.max(C,L.priority))}M.scope=P&&!0===P.scope;M.transcludeOnThisElement=Na;M.elementTranscludeOnThisElement=E;M.templateOnThisElement=A;M.transclude=Ga;t.hasElementTranscludeDirective=E;return M}function Ma(a){for(var b=0,c=a.length;bp.priority)&&-1!=p.restrict.indexOf(f)&&(k&&(p=lc(p,{$$start:k,$$end:l})),b.push(p),h=p)}catch(v){c(v)}}return h}function z(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;r(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,f){"class"==f?(P(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+ 64 | ";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function w(a,b,c,d,e,f,g,h){var k=[],l,p,n=b[0],t=a.shift(),q=E({},t,{templateUrl:null,transclude:null,replace:null,$$originalDirective:t}),v=F(t.templateUrl)?t.templateUrl(b,c):t.templateUrl,J=t.templateNamespace;b.empty();s(T.getTrustedResourceUrl(v)).then(function(s){var C,T;s=Oc(s);if(t.replace){s=Nb.test(s)?Pc(S(J,U(s))):[];C=s[0];if(1!=s.length||C.nodeType!==ka)throw ia("tplrt",t.name,v);s={$attr:{}};yb(d,b,C);var M=O(C, 65 | [],s);G(t.scope)&&Ma(M);a=M.concat(a);z(c,s)}else C=n,b.html(s);a.unshift(q);l=ca(a,C,c,e,b,t,f,g,h);r(d,function(a,c){a==C&&(d[c]=b[0])});for(p=Q(b[0].childNodes,e);k.length;){s=k.shift();T=k.shift();var H=k.shift(),K=k.shift(),M=b[0];if(!s.$$destroyed){if(T!==n){var x=T.className;h.hasElementTranscludeDirective&&t.replace||(M=Pb(C));yb(H,D(T),M);P(D(M),x)}T=l.transcludeOnThisElement?aa(s,l.transclude,K):K;l(p,s,M,d,T)}}k=null});return function(a,b,c,d,e){a=e;b.$$destroyed||(k?(k.push(b),k.push(c), 66 | k.push(d),k.push(a)):(l.transcludeOnThisElement&&(a=aa(b,l.transclude,e)),l(p,b,c,d,a)))}}function y(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name"+b+"";return c.childNodes[0].childNodes;default:return b}}function Ga(a,b){if("srcdoc"==b)return T.HTML;var c=pa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return T.RESOURCE_URL}function R(a,c,d,e,f){var k=b(d,!0);if(k){if("multiple"===e&&"select"===pa(a))throw ia("selmulti",sa(a));c.push({priority:100,compile:function(){return{pre:function(c, 68 | d,l){d=l.$$observers||(l.$$observers={});if(h.test(e))throw ia("nodomevents");l[e]&&(k=b(l[e],!0,Ga(a,e),g[e]||f))&&(l[e]=k(c),(d[e]||(d[e]=[])).$$inter=!0,(l.$$observers&&l.$$observers[e].$$scope||c).$watch(k,function(a,b){"class"===e&&a!=b?l.$updateClass(a,b):l.$set(e,a)}))}}}})}}function yb(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8=== 74 | b[a].nodeType&&mf.call(b,a,1);return b}function Ae(){var b={},a=!1,c=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,c){Ka(a,"controller");G(a)?E(b,a):b[a]=c};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(d,e){function f(a,b,c,d){if(!a||!G(a.$scope))throw y("$controller")("noscp",d,b);a.$scope[b]=c}return function(g,k,h,l){var m,q,p;h=!0===h;l&&I(l)&&(p=l);I(g)&&(l=g.match(c),q=l[1],p=p||l[3],g=b.hasOwnProperty(q)?b[q]:tc(k.$scope,q,!0)||(a?tc(e,q,!0):u),nb(g,q,!0)); 75 | if(h)return h=function(){},h.prototype=(B(g)?g[g.length-1]:g).prototype,m=new h,p&&f(k,p,m,q||g.name),E(function(){d.invoke(g,m,k,q);return m},{instance:m,identifier:p});m=d.instantiate(g,k,q);p&&f(k,p,m,q||g.name);return m}}]}function Be(){this.$get=["$window",function(b){return D(b.document)}]}function Ce(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Rc(b){var a={},c,d,e;if(!b)return a;r(b.split("\n"),function(b){e=b.indexOf(":");c=N(U(b.substr(0,e))); 76 | d=U(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function Sc(b){var a=G(b)?b:u;return function(c){a||(a=Rc(b));return c?a[N(c)]||null:a}}function Tc(b,a,c){if(F(c))return c(b,a);r(c,function(c){b=c(b,a)});return b}function Fe(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d={"Content-Type":"application/json;charset=utf-8"},e=this.defaults={transformResponse:[function(d,e){if(I(d)){d=d.replace(c,"");var f=e("Content-Type");if(f&&0===f.indexOf("application/json")||b.test(d)&&a.test(d))d= 77 | oc(d)}return d}],transformRequest:[function(a){return G(a)&&"[object File]"!==Ia.call(a)&&"[object Blob]"!==Ia.call(a)?ra(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:qa(d),put:qa(d),patch:qa(d)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},f=!1;this.useApplyAsync=function(a){return z(a)?(f=!!a,this):f};var g=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,d,q,p){function n(a){function b(a){var d= 78 | E({},a);d.data=a.data?Tc(a.data,a.headers,c.transformResponse):a.data;a=a.status;return 200<=a&&300>a?d:q.reject(d)}var c={method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse},d=function(a){var b=e.headers,c=E({},a.headers),d,f,b=E({},b.common,b[N(a.method)]);a:for(d in b){a=N(d);for(f in c)if(N(f)===a)continue a;c[d]=b[d]}(function(a){var b;r(a,function(c,d){F(c)&&(b=c(),null!=b?a[d]=b:delete a[d])})})(c);return c}(a);E(c,a);c.headers=d;c.method=pb(c.method);var f= 79 | [function(a){d=a.headers;var c=Tc(a.data,Sc(d),a.transformRequest);w(c)&&r(d,function(a,b){"content-type"===N(b)&&delete d[b]});w(a.withCredentials)&&!w(e.withCredentials)&&(a.withCredentials=e.withCredentials);return s(a,c,d).then(b,b)},u],g=q.when(c);for(r(x,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var h=f.shift(),g=g.then(a,h)}g.success=function(a){g.then(function(b){a(b.data, 80 | b.status,b.headers,c)});return g};g.error=function(a){g.then(null,function(b){a(b.data,b.status,b.headers,c)});return g};return g}function s(c,g,l){function p(a,b,c,e){function g(){s(b,a,c,e)}O&&(200<=a&&300>a?O.put(V,[a,b,Rc(c),e]):O.remove(V));f?d.$applyAsync(g):(g(),d.$$phase||d.$apply())}function s(a,b,d,e){b=Math.max(b,0);(200<=b&&300>b?x.resolve:x.reject)({data:a,status:b,headers:Sc(d),config:c,statusText:e})}function H(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a, 81 | 1)}var x=q.defer(),r=x.promise,O,K,V=J(c.url,c.params);n.pendingRequests.push(c);r.then(H,H);!c.cache&&!e.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(O=G(c.cache)?c.cache:G(e.cache)?e.cache:v);if(O)if(K=O.get(V),z(K)){if(K&&F(K.then))return K.then(H,H),K;B(K)?s(K[1],K[0],qa(K[2]),K[3]):s(K,200,{},"OK")}else O.put(V,r);w(K)&&((K=Uc(c.url)?b.cookies()[c.xsrfCookieName||e.xsrfCookieName]:u)&&(l[c.xsrfHeaderName||e.xsrfHeaderName]=K),a(c.method,V,g,p,l,c.timeout,c.withCredentials,c.responseType)); 82 | return r}function J(a,b){if(!b)return a;var c=[];zd(b,function(a,b){null===a||w(a)||(B(a)||(a=[a]),r(a,function(a){G(a)&&(a=ea(a)?a.toISOString():ra(a));c.push(Da(b)+"="+Da(a))}))});0=h&&(s.resolve(p),q(J.$$intervalId),delete f[J.$$intervalId]);n||b.$apply()},k);f[J.$$intervalId]=s;return J}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0): 90 | !1};return e}]}function Md(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), 91 | DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a",short:"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return 1===b?"one":"other"}}}}function Zb(b){b=b.split("/");for(var a=b.length;a--;)b[a]=lb(b[a]);return b.join("/")}function Vc(b,a,c){b=za(b,c);a.$$protocol= 92 | b.protocol;a.$$host=b.hostname;a.$$port=ba(b.port)||pf[b.protocol]||null}function Wc(b,a,c){var d="/"!==b.charAt(0);d&&(b="/"+b);b=za(b,c);a.$$path=decodeURIComponent(d&&"/"===b.pathname.charAt(0)?b.pathname.substring(1):b.pathname);a.$$search=qc(b.search);a.$$hash=decodeURIComponent(b.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function va(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Fa(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function $b(b){return b.substr(0, 93 | Fa(b).lastIndexOf("/")+1)}function ac(b,a){this.$$html5=!0;a=a||"";var c=$b(b);Vc(b,this,b);this.$$parse=function(a){var e=va(c,a);if(!I(e))throw cb("ipthprfx",a,c);Wc(e,this,b);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Ib(this.$$search),b=this.$$hash?"#"+lb(this.$$hash):"";this.$$url=Zb(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;(f=va(b,d))!==u? 94 | (g=f,g=(f=va(a,f))!==u?c+(va("/",f)||f):b+g):(f=va(c,d))!==u?g=c+f:c==d+"/"&&(g=c);g&&this.$$parse(g);return!!g}}function bc(b,a){var c=$b(b);Vc(b,this,b);this.$$parse=function(d){var e=va(b,d)||va(c,d),e="#"==e.charAt(0)?va(a,e):this.$$html5?e:"";if(!I(e))throw cb("ihshprfx",d,a);Wc(e,this,b);d=this.$$path;var f=/^\/[A-Z]:(\/.*)/;0===e.indexOf(b)&&(e=e.replace(b,""));f.exec(e)||(d=(e=f.exec(d))?e[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var c=Ib(this.$$search),e=this.$$hash? 95 | "#"+lb(this.$$hash):"";this.$$url=Zb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+(this.$$url?a+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Fa(b)==Fa(a)?(this.$$parse(a),!0):!1}}function Xc(b,a){this.$$html5=!0;bc.apply(this,arguments);var c=$b(b);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Fa(d)?f=d:(g=va(c,d))?f=b+a+g:c===d+"/"&&(f=c);f&&this.$$parse(f);return!!f};this.$$compose=function(){var c=Ib(this.$$search),e=this.$$hash?"#"+lb(this.$$hash): 96 | "";this.$$url=Zb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+a+this.$$url}}function zb(b){return function(){return this[b]}}function Yc(b,a){return function(c){if(w(c))return this[b];this[b]=a(c);this.$$compose();return this}}function He(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return z(a)?(b=a,this):b};this.html5Mode=function(b){return Va(b)?(a.enabled=b,this):G(b)?(Va(b.enabled)&&(a.enabled=b.enabled),Va(b.requireBase)&&(a.requireBase=b.requireBase),Va(b.rewriteLinks)&& 97 | (a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,f){function g(a,b,c){var e=h.url(),f=h.$$state;try{d.url(a,b,c),h.$$state=d.state()}catch(g){throw h.url(e),h.$$state=f,g;}}function k(a,b){c.$broadcast("$locationChangeSuccess",h.absUrl(),a,h.$$state,b)}var h,l;l=d.baseHref();var m=d.url(),q;if(a.enabled){if(!l&&a.requireBase)throw cb("nobase");q=m.substring(0,m.indexOf("/",m.indexOf("//")+2))+(l||"/");l=e.history?ac:Xc}else q=Fa(m), 98 | l=bc;h=new l(q,"#"+b);h.$$parseLinkUrl(m,m);h.$$state=d.state();var p=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&2!=b.which){for(var e=D(b.target);"a"!==pa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var g=e.prop("href"),k=e.attr("href")||e.attr("xlink:href");G(g)&&"[object SVGAnimatedString]"===g.toString()&&(g=za(g.animVal).href);p.test(g)||!g||e.attr("target")||b.isDefaultPrevented()||!h.$$parseLinkUrl(g,k)||(b.preventDefault(),h.absUrl()!= 99 | d.url()&&(c.$apply(),S.angular["ff-684208-preventDefault"]=!0))}});h.absUrl()!=m&&d.url(h.absUrl(),!0);var n=!0;d.onUrlChange(function(a,b){c.$evalAsync(function(){var d=h.absUrl(),e=h.$$state;h.$$parse(a);h.$$state=b;c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented?(h.$$parse(d),h.$$state=e,g(d,!1,e)):(n=!1,k(d,e))});c.$$phase||c.$digest()});c.$watch(function(){var a=d.url(),b=d.state(),f=h.$$replace,l=a!==h.absUrl()||h.$$html5&&e.history&&b!==h.$$state;if(n||l)n=!1,c.$evalAsync(function(){c.$broadcast("$locationChangeStart", 100 | h.absUrl(),a,h.$$state,b).defaultPrevented?(h.$$parse(a),h.$$state=b):(l&&g(h.absUrl(),f,b===h.$$state?null:h.$$state),k(a,b))});h.$$replace=!1});return h}]}function Ie(){var b=!0,a=this;this.debugEnabled=function(a){return z(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console|| 101 | {},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(h){}return a?function(){var a=[];r(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function na(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw oa("isecfld",a);return b}function Aa(b,a){if(b){if(b.constructor=== 102 | b)throw oa("isecfn",a);if(b.window===b)throw oa("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw oa("isecdom",a);if(b===Object)throw oa("isecobj",a);}return b}function cc(b){return b.constant}function Oa(b,a,c,d){Aa(b,d);a=a.split(".");for(var e,f=0;1f?Zc(e[0],e[1],e[2],e[3],e[4],c):function(a,b){var d=0,g;do g=Zc(e[d++],e[d++],e[d++],e[d++],e[d++],c)(a,b),b=u,a=g;while(d=this.promise.$$state.status&& 112 | d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in l++,f)e.hasOwnProperty(b)||(s--,delete f[b])}else f!==e&&(f=e,l++);return l}c.$stateful=!0;var d=this,e,f,h,k=1Q&&(K=4-Q,O[K]||(O[K]= 121 | []),u=F(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,u+="; newVal: "+ra(g)+"; oldVal: "+ra(h),O[K].push(u));else if(e===c){r=!1;break a}}catch(D){f(D)}if(!(m=x.$$childHead||x!==this&&x.$$nextSibling))for(;x!==this&&!(m=x.$$nextSibling);)x=x.$parent}while(x=m);if((r||J.length)&&!Q--)throw s.$$phase=null,a("infdig",b,ra(O));}while(r||J.length);for(s.$$phase=null;v.length;)try{v.shift()()}catch(A){f(A)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed= 122 | !0;if(this!==s){for(var b in this.$$listenerCount)m(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=A;this.$on=this.$watch=this.$watchGroup=function(){return A};this.$$listeners={};this.$parent= 123 | this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a){s.$$phase||J.length||k.defer(function(){J.length&&s.$digest()});J.push({scope:this,expression:a})},$$postDigest:function(a){v.push(a)},$apply:function(a){try{return l("$apply"),this.$eval(a)}catch(b){f(b)}finally{s.$$phase=null;try{s.$digest()}catch(c){throw f(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&& 124 | x.push(b);n()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){c[c.indexOf(b)]=null;m(e,1,a)}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=jb([h],arguments,1),l,m;do{d=e.$$listeners[a]||c;h.currentScope=e; 125 | l=0;for(m=d.length;la[0].documentMode)throw Ba("iequirks");var e=qa(ja);e.isEnabled=function(){return b};e.trustAs=d.trustAs;e.getTrusted=d.getTrusted;e.valueOf=d.valueOf;b||(e.trustAs=e.getTrusted=function(a,b){return b},e.valueOf=Ta);e.parseAs=function(a,b){var d=c(b);return d.literal&&d.constant?d:c(b,function(b){return e.getTrusted(a,b)})};var f=e.parseAs,g=e.getTrusted,k=e.trustAs;r(ja,function(a,b){var c=N(b);e[ab("parse_as_"+c)]=function(b){return f(a,b)};e[ab("get_trusted_"+c)]=function(b){return g(a, 132 | b)};e[ab("trust_as_"+c)]=function(b){return k(a,b)}});return e}]}function Pe(){this.$get=["$window","$document",function(b,a){var c={},d=ba((/android (\d+)/.exec(N((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,k=/^(Moz|webkit|O|ms)(?=[A-Z])/,h=f.body&&f.body.style,l=!1,m=!1;if(h){for(var q in h)if(l=k.exec(q)){g=l[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in h&&"webkit");l=!!("transition"in h||g+"Transition"in h);m=!!("animation"in 133 | h||g+"Animation"in h);!d||l&&m||(l=I(f.body.style.webkitTransition),m=I(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"==a&&9==Pa)return!1;if(w(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Za(),vendorPrefix:g,transitions:l,animations:m,android:d}}]}function Re(){this.$get=["$templateCache","$http","$q",function(b,a,c){function d(e,f){function g(){k.totalPendingRequests--;if(!f)throw ia("tpload",e);return c.reject()} 134 | var k=d;k.totalPendingRequests++;return a.get(e,{cache:b}).then(function(a){a=a.data;if(!a||0===a.length)return g();k.totalPendingRequests--;b.put(e,a);return a},g)}d.totalPendingRequests=0;return d}]}function Se(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var d=ta.element(a).data("$binding");d&&r(d,function(d){c?(new RegExp("(^|\\s)"+b+"(\\s|\\||$)")).test(d)&&g.push(a):-1!= 135 | d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],k=0;kb;b=Math.abs(b);var g=b+"",k="",h=[],l=!1;if(-1!==g.indexOf("e")){var m=g.match(/([\d\.]+)e(-?)(\d+)/);m&&"-"==m[2]&&m[3]>e+1?(g="0",b=0):(k=g,l=!0)}if(l)0b&&(k=b.toFixed(e));else{g=(g.split(jd)[1]||"").length;w(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);0===b&&(f=!1);b=(""+b).split(jd);g=b[0]; 142 | b=b[1]||"";var m=0,q=a.lgSize,p=a.gSize;if(g.length>=q+p)for(m=g.length-q,l=0;lb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Ab(e,a,d)}}function Bb(b,a){return function(c,d){var e=c["get"+b](),f=pb(a?"SHORT"+b:b);return d[f][e]}}function kd(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function ld(b){return function(a){var c=kd(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Ab(a,b)}}function fd(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,k=b[8]? 144 | a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=ba(b[9]+b[10]),g=ba(b[9]+b[11]));k.call(a,ba(b[1]),ba(b[2])-1,ba(b[3]));f=ba(b[4]||0)-f;g=ba(b[5]||0)-g;k=ba(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));h.call(a,f,g,k,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var g="",k=[],h,l;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;I(c)&&(c=wf.test(c)?ba(c):a(c));W(c)&&(c=new Date(c)); 145 | if(!ea(c))return c;for(;e;)(l=xf.exec(e))?(k=jb(k,l,1),e=k.pop()):(k.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));r(k,function(a){h=yf[a];g+=h?h(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function sf(){return function(b){return ra(b,!0)}}function tf(){return function(b,a){W(b)&&(b=b.toString());if(!B(b)&&!I(b))return b;a=Infinity===Math.abs(Number(a))?Number(a):ba(a);if(I(b))return a?0<=a?b.slice(0,a): 146 | b.slice(a,b.length):"";var c=[],d,e;a>b.length?a=b.length:a<-b.length&&(a=-b.length);0b||37<=b&&40>=b||p(a)});if(e.hasEvent("paste"))a.on("paste cut",p)}a.on("change",m);d.$render=function(){a.val(d.$isEmpty(d.$modelValue)?"":d.$viewValue)}}function Eb(b,a){return function(c,d){var e,f;if(ea(c))return c;if(I(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(zf.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/ 153 | 1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(b,c){c=s};g.$observe("min",function(a){s=q(a);k.$validate()})}if(z(g.max)||g.ngMax){var r;k.$validators.max=function(a){return k.$isEmpty(a)||w(r)||c(a)<=r};g.$observe("max",function(a){r=q(a);k.$validate()})}k.$isEmpty=function(a){return!a||a.getTime&&a.getTime()!== 155 | a.getTime()}}}function od(b,a,c,d){(d.$$hasNativeValidators=G(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?u:b})}function pd(b,a,c,d,e){if(z(d)){b=b(d);if(!b.constant)throw y("ngModel")("constexpr",c,d);return b(a)}return e}function nd(b){function a(a,b){b&&!f[a]?(l.addClass(e,a),f[a]=!0):!b&&f[a]&&(l.removeClass(e,a),f[a]=!1)}function c(b,c){b=b?"-"+Kb(b,"-"):"";a(gb+b,!0===c);a(qd+b,!1===c)}var d=b.ctrl,e=b.$element,f={},g=b.set,k= 156 | b.unset,h=b.parentForm,l=b.$animate;f[qd]=!(f[gb]=e.hasClass(gb));d.$setValidity=function(b,e,f){e===u?(d.$pending||(d.$pending={}),g(d.$pending,b,f)):(d.$pending&&k(d.$pending,b,f),rd(d.$pending)&&(d.$pending=u));Va(e)?e?(k(d.$error,b,f),g(d.$$success,b,f)):(g(d.$error,b,f),k(d.$$success,b,f)):(k(d.$error,b,f),k(d.$$success,b,f));d.$pending?(a(sd,!0),d.$valid=d.$invalid=u,c("",null)):(a(sd,!1),d.$valid=rd(d.$error),d.$invalid=!d.$valid,c("",d.$valid));e=d.$pending&&d.$pending[b]?u:d.$error[b]?!1: 157 | d.$$success[b]?!0:null;c(b,e);h.$setValidity(b,e,d)}}function rd(b){if(b)for(var a in b)return!1;return!0}function fc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/, 161 | Nb=/<|&#?\w+;/,Ze=/<([\w:]+)/,$e=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ha={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ha.optgroup=ha.option;ha.tbody=ha.tfoot=ha.colgroup=ha.caption=ha.thead;ha.th=ha.td;var Ja=R.prototype={ready:function(b){function a(){c||(c= 162 | !0,b())}var c=!1;"complete"===X.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(S).on("load",a),this.on("DOMContentLoaded",a))},toString:function(){var b=[];r(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?D(this[b]):D(this[this.length+b])},length:0,push:Bf,sort:[].sort,splice:[].splice},wb={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){wb[N(b)]=b});var Kc={};r("input select option textarea button form details".split(" "), 163 | function(b){Kc[b]=!0});var Lc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};r({data:Qb,removeData:sb},function(b,a){R[a]=b});r({data:Qb,inheritedData:vb,scope:function(b){return D.data(b,"$scope")||vb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return D.data(b,"$isolateScope")||D.data(b,"$isolateScopeNoTemplate")},controller:Gc,injector:function(b){return vb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Rb, 164 | css:function(b,a,c){a=ab(a);if(z(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=N(a);if(wb[d])if(z(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||A).specified?d:u;else if(z(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?u:b},prop:function(b,a,c){if(z(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(w(b)){var d=a.nodeType;return d===ka||d===kb?a.textContent:""}a.textContent= 165 | b}b.$dv="";return b}(),val:function(b,a){if(w(a)){if(b.multiple&&"select"===pa(b)){var c=[];r(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(w(a))return b.innerHTML;rb(b,!0);b.innerHTML=a},empty:Hc},function(b,a){R.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Hc&&(2==b.length&&b!==Rb&&b!==Gc?a:d)===u){if(G(a)){for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),Jf={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},dc=function(a){this.options=a};dc.prototype={constructor:dc,lex:function(a){this.text=a;this.index=0;this.ch=u; 181 | for(this.tokens=[];this.index=a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"=== 183 | a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=z(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw oa("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index","<=",">="))a=this.binaryFn(a,c.fn,this.relational());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.fn,this.multiplicative());return a},multiplicative:function(){for(var a= 194 | this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.fn,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(db.ZERO,a.fn,this.unary()):(a=this.expect("!"))?this.unaryFn(a.fn,this.unary()):this.primary()},fieldAccess:function(a){var c=this.text,d=this.expect().text,e=$c(d,this.options,c);return E(function(c,d,k){return e(k||a(c,d))},{assign:function(e,g,k){(k=a(e,k))||a.assign(e,k={});return Oa(k,d,g,c)}})},objectIndex:function(a){var c= 195 | this.text,d=this.expression();this.consume("]");return E(function(e,f){var g=a(e,f),k=d(e,f);na(k,c);return g?Aa(g[k],c):u},{assign:function(e,f,g){var k=na(d(e,g),c);(g=Aa(a(e,g),c))||a.assign(e,g={});return g[k]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,k){var h=c?c(g,k):g,l=a(g,k,h)||A;if(f)for(var m=d.length;m--;)f[m]=Aa(d[m](g,k),e);Aa(h, 196 | e);if(l){if(l.constructor===l)throw oa("isecfn",e);if(l===Gf||l===Hf||l===If)throw oa("isecff",e);}h=l.apply?l.apply(h,f):l(f[0],f[1],f[2],f[3],f[4]);return Aa(h,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;var c=this.expression();a.push(c)}while(this.expect(","))}this.consume("]");return E(function(c,e){for(var f=[],g=0,k=a.length;ga.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a= 199 | -1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Ab(Math[0=k};d.$observe("min",function(a){z(a)&&!W(a)&&(a=parseFloat(a,10));k=W(a)&&!isNaN(a)?a:u;e.$validate()})}if(d.max||d.ngMax){var h;e.$validators.max=function(a){return e.$isEmpty(a)||w(h)||a<=h};d.$observe("max",function(a){z(a)&&!W(a)&&(a=parseFloat(a,10));h=W(a)&&!isNaN(a)?a:u;e.$validate()})}},url:function(a,c,d,e,f,g){eb(a,c,d,e,f,g);ec(e);e.$$parserName="url";e.$validators.url=function(a){return e.$isEmpty(a)|| 207 | Kf.test(a)}},email:function(a,c,d,e,f,g){eb(a,c,d,e,f,g);ec(e);e.$$parserName="email";e.$validators.email=function(a){return e.$isEmpty(a)||Lf.test(a)}},radio:function(a,c,d,e){w(d.name)&&c.attr("name",++hb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,k,h){var l=pd(h,a,"ngTrueValue",d.ngTrueValue,!0),m=pd(h,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click", 208 | function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return a!==l};e.$formatters.push(function(a){return la(a,l)});e.$parsers.push(function(a){return a?l:m})},hidden:A,button:A,submit:A,reset:A,file:A},vc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,k,h){h[0]&&(yd[N(k.type)]||yd.text)(f,g,k,h[0],c,a,d,e)}}}}],gb="ng-valid",qd="ng-invalid",Qa="ng-pristine", 209 | Db="ng-dirty",sd="ng-pending",Of=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,k,h,l,m){this.$modelValue=this.$viewValue=Number.NaN;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=u;this.$name=m(d.name|| 210 | "",!1)(a);var q=f(d.ngModel),p=null,n=this,s=function(){var c=q(a);n.$options&&n.$options.getterSetter&&F(c)&&(c=c());return c},J=function(c){var d;n.$options&&n.$options.getterSetter&&F(d=q(a))?d(n.$modelValue):q.assign(a,n.$modelValue)};this.$$setOptions=function(a){n.$options=a;if(!(q.assign||a&&a.getterSetter))throw Fb("nonassign",d.ngModel,sa(e));};this.$render=A;this.$isEmpty=function(a){return w(a)||""===a||null===a||a!==a};var v=e.inheritedData("$formController")||Cb,x=0;nd({ctrl:this,$element:e, 211 | set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:v,$animate:g});this.$setPristine=function(){n.$dirty=!1;n.$pristine=!0;g.removeClass(e,Db);g.addClass(e,Qa)};this.$setUntouched=function(){n.$touched=!1;n.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){n.$touched=!0;n.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){k.cancel(p);n.$viewValue=n.$$lastCommittedViewValue;n.$render()};this.$validate=function(){W(n.$modelValue)&& 212 | isNaN(n.$modelValue)||this.$$parseAndValidate()};this.$$runValidators=function(a,c,d,e){function f(){var a=!0;r(n.$validators,function(e,f){var g=e(c,d);a=a&&g;h(f,g)});return a?!0:(r(n.$asyncValidators,function(a,c){h(c,null)}),!1)}function g(){var a=[],e=!0;r(n.$asyncValidators,function(f,g){var k=f(c,d);if(!k||!F(k.then))throw Fb("$asyncValidators",k);h(g,u);a.push(k.then(function(){h(g,!0)},function(a){e=!1;h(g,!1)}))});a.length?l.all(a).then(function(){k(e)},A):k(!0)}function h(a,c){m===x&&n.$setValidity(a, 213 | c)}function k(a){m===x&&e(a)}x++;var m=x;(function(a){var c=n.$$parserName||"parse";if(a===u)h(c,null);else if(h(c,a),!a)return r(n.$validators,function(a,c){h(c,null)}),r(n.$asyncValidators,function(a,c){h(c,null)}),!1;return!0})(a)?f()?g():k(!1):k(!1)};this.$commitViewValue=function(){var a=n.$viewValue;k.cancel(p);if(n.$$lastCommittedViewValue!==a||""===a&&n.$$hasNativeValidators)n.$$lastCommittedViewValue=a,n.$pristine&&(n.$dirty=!0,n.$pristine=!1,g.removeClass(e,Qa),g.addClass(e,Db),v.$setDirty()), 214 | this.$$parseAndValidate()};this.$$parseAndValidate=function(){var a=n.$$lastCommittedViewValue,c=a,d=w(c)?u:!0;if(d)for(var e=0;e=f}}}}},re=function(){return{restrict:"A",priority:100, 220 | require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,k=g?U(f):f;e.$parsers.push(function(a){if(!w(a)){var c=[];a&&r(a.split(k),function(a){a&&c.push(g?U(a):a)});return c}});e.$formatters.push(function(a){return B(a)?a.join(f):u});e.$isEmpty=function(a){return!a||!a.length}}}},Pf=/^(true|false|\d+)$/,te=function(){return{restrict:"A",priority:100,compile:function(a,c){return Pf.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a, 221 | c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},ue=function(){return{restrict:"A",controller:["$scope","$attrs",function(a,c){var d=this;this.$options=a.$eval(c.ngModelOptions);this.$options.updateOn!==u?(this.$options.updateOnDefault=!1,this.$options.updateOn=U(this.$options.updateOn.replace(Nf,function(){d.$options.updateOnDefault=!0;return" "}))):this.$options.updateOnDefault=!0}]}},Ud=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c, 222 | e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===u?"":a})}}}}],Wd=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===u?"":a})}}}}],Vd=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),k=c(f.ngBindHtml, 223 | function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(k,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],Xd=fc("",!0),Zd=fc("Odd",0),Yd=fc("Even",1),$d=Ha({compile:function(a,c){c.$set("ngCloak",u);a.removeClass("ng-cloak")}}),ae=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ac={},Qf={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), 224 | function(a){var c=ua("ng-"+a);Ac[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var k=d(g[c]);return function(c,d){d.on(a,function(d){var f=function(){k(c,{$event:d})};Qf[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var de=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var k,h,l;c.$watch(e.ngIf,function(c){c?h||g(function(c,f){h=f;c[c.length++]=X.createComment(" end ngIf: "+ 225 | e.ngIf+" ");k={clone:c};a.enter(c,d.parent(),d)}):(l&&(l.remove(),l=null),h&&(h.$destroy(),h=null),k&&(l=ob(k.clone),a.leave(l).then(function(){l=null}),k=null))})}}}],ee=["$templateRequest","$anchorScroll","$animate","$sce",function(a,c,d,e){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ta.noop,compile:function(f,g){var k=g.ngInclude||g.src,h=g.onload||"",l=g.autoscroll;return function(f,g,p,n,r){var u=0,v,x,t,y=function(){x&&(x.remove(),x=null);v&&(v.$destroy(), 226 | v=null);t&&(d.leave(t).then(function(){x=null}),x=t,t=null)};f.$watch(e.parseAsResourceUrl(k),function(e){var k=function(){!z(l)||l&&!f.$eval(l)||c()},p=++u;e?(a(e,!0).then(function(a){if(p===u){var c=f.$new();n.template=a;a=r(c,function(a){y();d.enter(a,null,g).then(k)});v=c;t=a;v.$emit("$includeContentLoaded",e);f.$eval(h)}},function(){p===u&&(y(),f.$emit("$includeContentError",e))}),f.$emit("$includeContentRequested",e)):(y(),n.template=null)})}}}}],ve=["$compile",function(a){return{restrict:"ECA", 227 | priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Dc(f.template,X).childNodes)(c,function(a){d.append(a)},u,u,d)):(d.html(f.template),a(d.contents())(c))}}}],fe=Ha({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),ge=Ha({terminal:!0,priority:1E3}),he=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,f,g){var k=g.count,h=g.$attr.when&&f.attr(g.$attr.when),l=g.offset||0,m=e.$eval(h)|| 228 | {},q={},p=c.startSymbol(),n=c.endSymbol(),s=/^when(Minus)?(.+)$/;r(g,function(a,c){s.test(c)&&(m[N(c.replace("when","").replace("Minus","-"))]=f.attr(g.$attr[c]))});r(m,function(a,e){q[e]=c(a.replace(d,p+k+"-"+l+n))});e.$watch(function(){var c=parseFloat(e.$eval(k));if(isNaN(c))return"";c in m||(c=a.pluralCat(c-l));return q[c](e)},function(a){f.text(a)})}}}],ie=["$parse","$animate",function(a,c){var d=y("ngRepeat"),e=function(a,c,d,e,l,m,q){a[d]=e;l&&(a[l]=m);a.$index=c;a.$first=0===c;a.$last=c=== 229 | q-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=0===(c&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(f,g){var k=g.ngRepeat,h=X.createComment(" end ngRepeat: "+k+" "),l=k.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!l)throw d("iexp",k);var m=l[1],q=l[2],p=l[3],n=l[4],l=m.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!l)throw d("iidexp",m);var s=l[3]||l[1],J= 230 | l[2];if(p&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(p)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent)$/.test(p)))throw d("badident",p);var v,x,t,y,z={$id:La};n?v=a(n):(t=function(a,c){return La(c)},y=function(a){return a});return function(a,f,g,l,n){v&&(x=function(c,d,e){J&&(z[J]=c);z[s]=d;z.$index=e;return v(a,z)});var m=wa();a.$watchCollection(q,function(g){var l,q,z=f[0],H,v=wa(),C,Q,A,E,w,B,F;p&&(a[p]=g);if(Ra(g))w=g,q=x||t;else{q=x||y;w=[];for(F in g)g.hasOwnProperty(F)&& 231 | "$"!=F.charAt(0)&&w.push(F);w.sort()}C=w.length;F=Array(C);for(l=0;lG;)d=u.pop(),m(N,d.label,!1),d.element.remove();r(N,function(a,c){0a&&p.removeOption(c)})}for(;R.length>I;)R.pop()[0].element.remove()}var v;if(!(v=s.match(d)))throw Rf("iexp",s,sa(f));var C=c(v[2]||v[1]),A=v[4]||v[6],D=/ as /.test(v[0])&&v[1],w=D?c(D):null,F=v[5],M=c(v[3]||""),I=c(v[2]?v[1]: 243 | A),P=c(v[7]),G=v[8]?c(v[8]):null,R=[[{element:f,label:""}]],N={};y&&(a(y)(e),y.removeClass("ng-scope"),y.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=P(e)||[],c;if(n)c=[],r(f.val(),function(d){c.push("?"===d?u:""===d?null:h(w?w:I,d,a[d]))});else{var d=f.val();c="?"===d?u:""===d?null:h(w?w:I,d,a[d])}g.$setViewValue(c);q()})});g.$render=q;e.$watchCollection(P,l);e.$watchCollection(function(){var a=P(e),c;if(a&&B(a)){c=Array(a.length);for(var d=0,f=a.length;d@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}'); 247 | //# sourceMappingURL=angular.min.js.map 248 | -------------------------------------------------------------------------------- /public/lib/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htmlxprs/angular-autocomplete-tag-input/27d58920b3f992d0b43f10f2bb67d519d27a8001/public/lib/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /public/lib/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.0", 4 | "main": "./angular.js", 5 | "dependencies": { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /public/lib/angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.0", 4 | "description": "HTML enhanced for web apps", 5 | "main": "angular.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /public/views/autocomplete-template.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | {{selectedTag}} 5 |   6 |
7 | 8 |
9 |
    10 |
  • {{suggestion}}
  • 11 |
12 |
-------------------------------------------------------------------------------- /routes/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET home page. */ 5 | router.get('/', function(req, res) { 6 | res.render('index', { title: 'Express' }); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /routes/tags.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Sandeep on 16/10/14. 3 | */ 4 | var express = require('express'); 5 | var router = express.Router(); 6 | 7 | var tags=['java','css','css3','php','nodejs','html','html5','python','ruby','rails','express','angularjs','react'] 8 | 9 | /* GET users listing. */ 10 | router.get('/search', function(req, res) { 11 | if(req.query.term){ 12 | res.json(tags.filter(function(value){ 13 | return value.indexOf(req.query.term)!== -1; 14 | })); 15 | } 16 | else{ 17 | res.status(200).end(); 18 | } 19 | }); 20 | 21 | module.exports = router; 22 | -------------------------------------------------------------------------------- /routes/users.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET users listing. */ 5 | router.get('/', function(req, res) { 6 | res.send('respond with a resource'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /views/error.ejs: -------------------------------------------------------------------------------- 1 |

<%= message %>

2 |

<%= error.status %>

3 |
<%= error.stack %>
4 | -------------------------------------------------------------------------------- /views/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= title %> 5 | 6 | 7 | 8 |

<%= title %>

9 |

Welcome to <%= title %>

10 | 11 | 12 | --------------------------------------------------------------------------------