From bb60d2fc7c06ec661e4c66ac8778e1f2070103cd Mon Sep 17 00:00:00 2001 From: "Eran (ev672n), Vosk" Date: Mon, 29 Oct 2018 18:38:10 +0200 Subject: Sync code Sync the code between repositories Change-Id: Ic431c58c68716b6d401954fb854a183e0d222f57 Issue-ID: SDC-1874 Signed-off-by: Eran (ev672n), Vosk --- app/bower_components/angular-mocks/.bower.json | 19 + app/bower_components/angular-mocks/README.md | 63 + app/bower_components/angular-mocks/bower.json | 9 + app/bower_components/angular-mocks/package.json | 27 + app/bower_components/angular-ui-router/.bower.json | 34 + .../angular-ui-router/CHANGELOG.md | 346 ++++ .../angular-ui-router/CONTRIBUTING.md | 65 + app/bower_components/angular-ui-router/LICENSE | 21 + app/bower_components/angular-ui-router/README.md | 252 +++ app/bower_components/angular-ui-router/bower.json | 24 + .../angular-ui-router/src/common.js | 293 +++ .../angular-ui-router/src/resolve.js | 252 +++ .../angular-ui-router/src/state.js | 1480 ++++++++++++++ .../angular-ui-router/src/stateDirectives.js | 412 ++++ .../angular-ui-router/src/stateFilters.js | 39 + .../angular-ui-router/src/templateFactory.js | 110 + .../angular-ui-router/src/urlMatcherFactory.js | 1081 ++++++++++ .../angular-ui-router/src/urlRouter.js | 431 ++++ app/bower_components/angular-ui-router/src/view.js | 45 + .../angular-ui-router/src/viewDirective.js | 356 ++++ .../angular-ui-router/src/viewScroll.js | 52 + app/bower_components/angular/.bower.json | 17 + app/bower_components/angular/README.md | 64 + app/bower_components/angular/angular-csp.css | 21 + app/bower_components/angular/angular.min.js.gzip | Bin 0 -> 51446 bytes app/bower_components/angular/angular.min.js.map | 8 + app/bower_components/angular/bower.json | 8 + app/bower_components/angular/index.js | 2 + app/bower_components/angular/package.json | 25 + app/bower_components/bootstrap/.bower.json | 48 + app/bower_components/bootstrap/Gruntfile.js | 511 +++++ app/bower_components/bootstrap/LICENSE | 21 + app/bower_components/bootstrap/README.md | 134 ++ app/bower_components/bootstrap/bower.json | 39 + app/bower_components/bootstrap/grunt/.jshintrc | 7 + .../bootstrap/grunt/bs-commonjs-generator.js | 23 + .../grunt/bs-glyphicons-data-generator.js | 41 + .../bootstrap/grunt/bs-lessdoc-parser.js | 238 +++ .../bootstrap/grunt/bs-raw-files-generator.js | 46 + .../bootstrap/grunt/configBridge.json | 46 + .../bootstrap/grunt/sauce_browsers.yml | 82 + app/bower_components/bootstrap/less/.csscomb.json | 304 +++ app/bower_components/bootstrap/less/.csslintrc | 19 + app/bower_components/bootstrap/less/alerts.less | 73 + app/bower_components/bootstrap/less/badges.less | 66 + app/bower_components/bootstrap/less/bootstrap.less | 50 + .../bootstrap/less/breadcrumbs.less | 26 + .../bootstrap/less/button-groups.less | 243 +++ app/bower_components/bootstrap/less/buttons.less | 160 ++ app/bower_components/bootstrap/less/carousel.less | 269 +++ app/bower_components/bootstrap/less/close.less | 34 + app/bower_components/bootstrap/less/code.less | 69 + .../bootstrap/less/component-animations.less | 33 + app/bower_components/bootstrap/less/dropdowns.less | 214 ++ app/bower_components/bootstrap/less/forms.less | 574 ++++++ .../bootstrap/less/glyphicons.less | 305 +++ app/bower_components/bootstrap/less/grid.less | 84 + .../bootstrap/less/input-groups.less | 166 ++ app/bower_components/bootstrap/less/jumbotron.less | 50 + app/bower_components/bootstrap/less/labels.less | 64 + .../bootstrap/less/list-group.less | 124 ++ app/bower_components/bootstrap/less/media.less | 61 + app/bower_components/bootstrap/less/mixins.less | 39 + .../bootstrap/less/mixins/alerts.less | 14 + .../bootstrap/less/mixins/background-variant.less | 8 + .../bootstrap/less/mixins/border-radius.less | 18 + .../bootstrap/less/mixins/buttons.less | 52 + .../bootstrap/less/mixins/center-block.less | 7 + .../bootstrap/less/mixins/clearfix.less | 22 + .../bootstrap/less/mixins/forms.less | 85 + .../bootstrap/less/mixins/gradients.less | 59 + .../bootstrap/less/mixins/grid-framework.less | 91 + .../bootstrap/less/mixins/grid.less | 122 ++ .../bootstrap/less/mixins/hide-text.less | 21 + .../bootstrap/less/mixins/image.less | 33 + .../bootstrap/less/mixins/labels.less | 12 + .../bootstrap/less/mixins/list-group.less | 29 + .../bootstrap/less/mixins/nav-divider.less | 10 + .../bootstrap/less/mixins/nav-vertical-align.less | 9 + .../bootstrap/less/mixins/opacity.less | 8 + .../bootstrap/less/mixins/pagination.less | 23 + .../bootstrap/less/mixins/panels.less | 24 + .../bootstrap/less/mixins/progress-bar.less | 10 + .../bootstrap/less/mixins/reset-filter.less | 8 + .../bootstrap/less/mixins/resize.less | 6 + .../less/mixins/responsive-visibility.less | 15 + .../bootstrap/less/mixins/size.less | 10 + .../bootstrap/less/mixins/tab-focus.less | 9 + .../bootstrap/less/mixins/table-row.less | 28 + .../bootstrap/less/mixins/text-emphasis.less | 8 + .../bootstrap/less/mixins/text-overflow.less | 8 + .../bootstrap/less/mixins/vendor-prefixes.less | 227 +++ app/bower_components/bootstrap/less/modals.less | 150 ++ app/bower_components/bootstrap/less/navbar.less | 660 ++++++ app/bower_components/bootstrap/less/navs.less | 242 +++ app/bower_components/bootstrap/less/normalize.less | 427 ++++ app/bower_components/bootstrap/less/pager.less | 54 + .../bootstrap/less/pagination.less | 88 + app/bower_components/bootstrap/less/panels.less | 265 +++ app/bower_components/bootstrap/less/popovers.less | 135 ++ app/bower_components/bootstrap/less/print.less | 107 + .../bootstrap/less/progress-bars.less | 87 + .../bootstrap/less/responsive-embed.less | 35 + .../bootstrap/less/responsive-utilities.less | 194 ++ .../bootstrap/less/scaffolding.less | 162 ++ app/bower_components/bootstrap/less/tables.less | 234 +++ app/bower_components/bootstrap/less/theme.less | 273 +++ .../bootstrap/less/thumbnails.less | 36 + app/bower_components/bootstrap/less/tooltip.less | 102 + app/bower_components/bootstrap/less/type.less | 302 +++ app/bower_components/bootstrap/less/utilities.less | 55 + app/bower_components/bootstrap/less/variables.less | 861 ++++++++ app/bower_components/bootstrap/less/wells.less | 29 + app/bower_components/bootstrap/package.js | 22 + app/bower_components/bootstrap/package.json | 93 + app/bower_components/jquery/.bower.json | 25 + app/bower_components/jquery/AUTHORS.txt | 278 +++ app/bower_components/jquery/LICENSE.txt | 36 + app/bower_components/jquery/README.md | 65 + app/bower_components/jquery/bower.json | 14 + .../jquery/external/sizzle/LICENSE.txt | 36 + .../jquery/external/sizzle/dist/sizzle.js | 2143 ++++++++++++++++++++ .../jquery/external/sizzle/dist/sizzle.min.js | 3 + .../jquery/external/sizzle/dist/sizzle.min.map | 1 + app/bower_components/jquery/src/.jshintrc | 29 + app/bower_components/jquery/src/ajax.js | 845 ++++++++ app/bower_components/jquery/src/ajax/jsonp.js | 100 + app/bower_components/jquery/src/ajax/load.js | 83 + app/bower_components/jquery/src/ajax/parseJSON.js | 13 + app/bower_components/jquery/src/ajax/parseXML.js | 27 + app/bower_components/jquery/src/ajax/script.js | 68 + .../jquery/src/ajax/var/location.js | 3 + app/bower_components/jquery/src/ajax/var/nonce.js | 5 + app/bower_components/jquery/src/ajax/var/rquery.js | 3 + app/bower_components/jquery/src/ajax/xhr.js | 167 ++ app/bower_components/jquery/src/attributes.js | 11 + app/bower_components/jquery/src/attributes/attr.js | 142 ++ .../jquery/src/attributes/classes.js | 177 ++ app/bower_components/jquery/src/attributes/prop.js | 125 ++ .../jquery/src/attributes/support.js | 36 + app/bower_components/jquery/src/attributes/val.js | 177 ++ app/bower_components/jquery/src/callbacks.js | 232 +++ app/bower_components/jquery/src/core.js | 494 +++++ app/bower_components/jquery/src/core/access.js | 65 + app/bower_components/jquery/src/core/init.js | 134 ++ app/bower_components/jquery/src/core/parseHTML.js | 41 + app/bower_components/jquery/src/core/ready.js | 103 + .../jquery/src/core/var/rsingleTag.js | 5 + app/bower_components/jquery/src/css.js | 502 +++++ .../jquery/src/css/addGetHookIf.js | 24 + app/bower_components/jquery/src/css/adjustCSS.js | 65 + app/bower_components/jquery/src/css/curCSS.js | 60 + .../jquery/src/css/defaultDisplay.js | 72 + .../jquery/src/css/hiddenVisibleSelectors.js | 18 + app/bower_components/jquery/src/css/showHide.js | 48 + app/bower_components/jquery/src/css/support.js | 121 ++ .../jquery/src/css/var/cssExpand.js | 3 + .../jquery/src/css/var/getStyles.js | 15 + .../jquery/src/css/var/isHidden.js | 16 + app/bower_components/jquery/src/css/var/rmargin.js | 3 + .../jquery/src/css/var/rnumnonpx.js | 5 + app/bower_components/jquery/src/css/var/swap.js | 24 + app/bower_components/jquery/src/data.js | 187 ++ app/bower_components/jquery/src/data/Data.js | 200 ++ .../jquery/src/data/var/acceptData.js | 18 + .../jquery/src/data/var/dataPriv.js | 5 + .../jquery/src/data/var/dataUser.js | 5 + app/bower_components/jquery/src/deferred.js | 158 ++ app/bower_components/jquery/src/deprecated.js | 32 + app/bower_components/jquery/src/dimensions.js | 54 + app/bower_components/jquery/src/effects.js | 629 ++++++ app/bower_components/jquery/src/effects/Tween.js | 121 ++ .../jquery/src/effects/animatedSelector.js | 13 + app/bower_components/jquery/src/event.js | 711 +++++++ app/bower_components/jquery/src/event/ajax.js | 20 + app/bower_components/jquery/src/event/alias.js | 27 + app/bower_components/jquery/src/event/focusin.js | 53 + app/bower_components/jquery/src/event/support.js | 9 + app/bower_components/jquery/src/event/trigger.js | 183 ++ app/bower_components/jquery/src/exports/amd.js | 24 + app/bower_components/jquery/src/exports/global.js | 26 + app/bower_components/jquery/src/intro.js | 44 + app/bower_components/jquery/src/jquery.js | 37 + app/bower_components/jquery/src/manipulation.js | 481 +++++ .../jquery/src/manipulation/_evalUrl.js | 20 + .../jquery/src/manipulation/buildFragment.js | 102 + .../jquery/src/manipulation/getAll.js | 21 + .../jquery/src/manipulation/setGlobalEval.js | 20 + .../jquery/src/manipulation/support.js | 33 + .../jquery/src/manipulation/var/rcheckableType.js | 3 + .../jquery/src/manipulation/var/rscriptType.js | 3 + .../jquery/src/manipulation/var/rtagName.js | 3 + .../jquery/src/manipulation/wrapMap.js | 27 + app/bower_components/jquery/src/offset.js | 218 ++ app/bower_components/jquery/src/outro.js | 2 + app/bower_components/jquery/src/queue.js | 143 ++ app/bower_components/jquery/src/queue/delay.js | 22 + app/bower_components/jquery/src/selector-native.js | 211 ++ app/bower_components/jquery/src/selector-sizzle.js | 14 + app/bower_components/jquery/src/selector.js | 1 + app/bower_components/jquery/src/serialize.js | 125 ++ app/bower_components/jquery/src/traversing.js | 175 ++ .../jquery/src/traversing/findFilter.js | 100 + .../jquery/src/traversing/var/dir.js | 20 + .../jquery/src/traversing/var/rneedsContext.js | 6 + .../jquery/src/traversing/var/siblings.js | 15 + app/bower_components/jquery/src/var/arr.js | 3 + app/bower_components/jquery/src/var/class2type.js | 5 + app/bower_components/jquery/src/var/concat.js | 5 + app/bower_components/jquery/src/var/document.js | 3 + .../jquery/src/var/documentElement.js | 5 + app/bower_components/jquery/src/var/hasOwn.js | 5 + app/bower_components/jquery/src/var/indexOf.js | 5 + app/bower_components/jquery/src/var/pnum.js | 3 + app/bower_components/jquery/src/var/push.js | 5 + app/bower_components/jquery/src/var/rcssNum.js | 7 + app/bower_components/jquery/src/var/rnotwhite.js | 3 + app/bower_components/jquery/src/var/slice.js | 5 + app/bower_components/jquery/src/var/support.js | 5 + app/bower_components/jquery/src/var/toString.js | 5 + app/bower_components/jquery/src/wrap.js | 79 + .../remarkable-bootstrap-notify/.bower.json | 36 + .../remarkable-bootstrap-notify/.gitignore | 1 + .../remarkable-bootstrap-notify/Gruntfile.js | 37 + .../remarkable-bootstrap-notify/LICENSE | 20 + .../remarkable-bootstrap-notify/README.md | 137 ++ .../remarkable-bootstrap-notify/bower.json | 27 + .../remarkable-bootstrap-notify/composer.json | 27 + .../remarkable-bootstrap-notify/jshintrc.json | 26 + .../remarkable-bootstrap-notify/package.js | 19 + .../remarkable-bootstrap-notify/package.json | 41 + app/main/dashboard/dcaedt/dcaedt.controller.js | 34 +- app/main/dashboard/dcaedt/dcaedt.html | 2 + app/styles/app.css | 12 + app/styles/sdc.less | 14 + package-lock.json | 1506 +++++++++++++- package.json | 2 +- pom.xml | 68 +- src/main/java/org/onap/sdc/dcae/FeApp.java | 2 +- 239 files changed, 28416 insertions(+), 129 deletions(-) create mode 100644 app/bower_components/angular-mocks/.bower.json create mode 100644 app/bower_components/angular-mocks/README.md create mode 100644 app/bower_components/angular-mocks/bower.json create mode 100644 app/bower_components/angular-mocks/package.json create mode 100644 app/bower_components/angular-ui-router/.bower.json create mode 100644 app/bower_components/angular-ui-router/CHANGELOG.md create mode 100644 app/bower_components/angular-ui-router/CONTRIBUTING.md create mode 100644 app/bower_components/angular-ui-router/LICENSE create mode 100644 app/bower_components/angular-ui-router/README.md create mode 100644 app/bower_components/angular-ui-router/bower.json create mode 100644 app/bower_components/angular-ui-router/src/common.js create mode 100644 app/bower_components/angular-ui-router/src/resolve.js create mode 100644 app/bower_components/angular-ui-router/src/state.js create mode 100644 app/bower_components/angular-ui-router/src/stateDirectives.js create mode 100644 app/bower_components/angular-ui-router/src/stateFilters.js create mode 100644 app/bower_components/angular-ui-router/src/templateFactory.js create mode 100644 app/bower_components/angular-ui-router/src/urlMatcherFactory.js create mode 100644 app/bower_components/angular-ui-router/src/urlRouter.js create mode 100644 app/bower_components/angular-ui-router/src/view.js create mode 100644 app/bower_components/angular-ui-router/src/viewDirective.js create mode 100644 app/bower_components/angular-ui-router/src/viewScroll.js create mode 100644 app/bower_components/angular/.bower.json create mode 100644 app/bower_components/angular/README.md create mode 100644 app/bower_components/angular/angular-csp.css create mode 100644 app/bower_components/angular/angular.min.js.gzip create mode 100644 app/bower_components/angular/angular.min.js.map create mode 100644 app/bower_components/angular/bower.json create mode 100644 app/bower_components/angular/index.js create mode 100644 app/bower_components/angular/package.json create mode 100644 app/bower_components/bootstrap/.bower.json create mode 100644 app/bower_components/bootstrap/Gruntfile.js create mode 100644 app/bower_components/bootstrap/LICENSE create mode 100644 app/bower_components/bootstrap/README.md create mode 100644 app/bower_components/bootstrap/bower.json create mode 100644 app/bower_components/bootstrap/grunt/.jshintrc create mode 100644 app/bower_components/bootstrap/grunt/bs-commonjs-generator.js create mode 100644 app/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js create mode 100644 app/bower_components/bootstrap/grunt/bs-lessdoc-parser.js create mode 100644 app/bower_components/bootstrap/grunt/bs-raw-files-generator.js create mode 100644 app/bower_components/bootstrap/grunt/configBridge.json create mode 100644 app/bower_components/bootstrap/grunt/sauce_browsers.yml create mode 100644 app/bower_components/bootstrap/less/.csscomb.json create mode 100644 app/bower_components/bootstrap/less/.csslintrc create mode 100644 app/bower_components/bootstrap/less/alerts.less create mode 100644 app/bower_components/bootstrap/less/badges.less create mode 100644 app/bower_components/bootstrap/less/bootstrap.less create mode 100644 app/bower_components/bootstrap/less/breadcrumbs.less create mode 100644 app/bower_components/bootstrap/less/button-groups.less create mode 100644 app/bower_components/bootstrap/less/buttons.less create mode 100644 app/bower_components/bootstrap/less/carousel.less create mode 100644 app/bower_components/bootstrap/less/close.less create mode 100644 app/bower_components/bootstrap/less/code.less create mode 100644 app/bower_components/bootstrap/less/component-animations.less create mode 100644 app/bower_components/bootstrap/less/dropdowns.less create mode 100644 app/bower_components/bootstrap/less/forms.less create mode 100644 app/bower_components/bootstrap/less/glyphicons.less create mode 100644 app/bower_components/bootstrap/less/grid.less create mode 100644 app/bower_components/bootstrap/less/input-groups.less create mode 100644 app/bower_components/bootstrap/less/jumbotron.less create mode 100644 app/bower_components/bootstrap/less/labels.less create mode 100644 app/bower_components/bootstrap/less/list-group.less create mode 100644 app/bower_components/bootstrap/less/media.less create mode 100644 app/bower_components/bootstrap/less/mixins.less create mode 100644 app/bower_components/bootstrap/less/mixins/alerts.less create mode 100644 app/bower_components/bootstrap/less/mixins/background-variant.less create mode 100644 app/bower_components/bootstrap/less/mixins/border-radius.less create mode 100644 app/bower_components/bootstrap/less/mixins/buttons.less create mode 100644 app/bower_components/bootstrap/less/mixins/center-block.less create mode 100644 app/bower_components/bootstrap/less/mixins/clearfix.less create mode 100644 app/bower_components/bootstrap/less/mixins/forms.less create mode 100644 app/bower_components/bootstrap/less/mixins/gradients.less create mode 100644 app/bower_components/bootstrap/less/mixins/grid-framework.less create mode 100644 app/bower_components/bootstrap/less/mixins/grid.less create mode 100644 app/bower_components/bootstrap/less/mixins/hide-text.less create mode 100644 app/bower_components/bootstrap/less/mixins/image.less create mode 100644 app/bower_components/bootstrap/less/mixins/labels.less create mode 100644 app/bower_components/bootstrap/less/mixins/list-group.less create mode 100644 app/bower_components/bootstrap/less/mixins/nav-divider.less create mode 100644 app/bower_components/bootstrap/less/mixins/nav-vertical-align.less create mode 100644 app/bower_components/bootstrap/less/mixins/opacity.less create mode 100644 app/bower_components/bootstrap/less/mixins/pagination.less create mode 100644 app/bower_components/bootstrap/less/mixins/panels.less create mode 100644 app/bower_components/bootstrap/less/mixins/progress-bar.less create mode 100644 app/bower_components/bootstrap/less/mixins/reset-filter.less create mode 100644 app/bower_components/bootstrap/less/mixins/resize.less create mode 100644 app/bower_components/bootstrap/less/mixins/responsive-visibility.less create mode 100644 app/bower_components/bootstrap/less/mixins/size.less create mode 100644 app/bower_components/bootstrap/less/mixins/tab-focus.less create mode 100644 app/bower_components/bootstrap/less/mixins/table-row.less create mode 100644 app/bower_components/bootstrap/less/mixins/text-emphasis.less create mode 100644 app/bower_components/bootstrap/less/mixins/text-overflow.less create mode 100644 app/bower_components/bootstrap/less/mixins/vendor-prefixes.less create mode 100644 app/bower_components/bootstrap/less/modals.less create mode 100644 app/bower_components/bootstrap/less/navbar.less create mode 100644 app/bower_components/bootstrap/less/navs.less create mode 100644 app/bower_components/bootstrap/less/normalize.less create mode 100644 app/bower_components/bootstrap/less/pager.less create mode 100644 app/bower_components/bootstrap/less/pagination.less create mode 100644 app/bower_components/bootstrap/less/panels.less create mode 100644 app/bower_components/bootstrap/less/popovers.less create mode 100644 app/bower_components/bootstrap/less/print.less create mode 100644 app/bower_components/bootstrap/less/progress-bars.less create mode 100644 app/bower_components/bootstrap/less/responsive-embed.less create mode 100644 app/bower_components/bootstrap/less/responsive-utilities.less create mode 100644 app/bower_components/bootstrap/less/scaffolding.less create mode 100644 app/bower_components/bootstrap/less/tables.less create mode 100644 app/bower_components/bootstrap/less/theme.less create mode 100644 app/bower_components/bootstrap/less/thumbnails.less create mode 100644 app/bower_components/bootstrap/less/tooltip.less create mode 100644 app/bower_components/bootstrap/less/type.less create mode 100644 app/bower_components/bootstrap/less/utilities.less create mode 100644 app/bower_components/bootstrap/less/variables.less create mode 100644 app/bower_components/bootstrap/less/wells.less create mode 100644 app/bower_components/bootstrap/package.js create mode 100644 app/bower_components/bootstrap/package.json create mode 100644 app/bower_components/jquery/.bower.json create mode 100644 app/bower_components/jquery/AUTHORS.txt create mode 100644 app/bower_components/jquery/LICENSE.txt create mode 100644 app/bower_components/jquery/README.md create mode 100644 app/bower_components/jquery/bower.json create mode 100644 app/bower_components/jquery/external/sizzle/LICENSE.txt create mode 100644 app/bower_components/jquery/external/sizzle/dist/sizzle.js create mode 100644 app/bower_components/jquery/external/sizzle/dist/sizzle.min.js create mode 100644 app/bower_components/jquery/external/sizzle/dist/sizzle.min.map create mode 100644 app/bower_components/jquery/src/.jshintrc create mode 100644 app/bower_components/jquery/src/ajax.js create mode 100644 app/bower_components/jquery/src/ajax/jsonp.js create mode 100644 app/bower_components/jquery/src/ajax/load.js create mode 100644 app/bower_components/jquery/src/ajax/parseJSON.js create mode 100644 app/bower_components/jquery/src/ajax/parseXML.js create mode 100644 app/bower_components/jquery/src/ajax/script.js create mode 100644 app/bower_components/jquery/src/ajax/var/location.js create mode 100644 app/bower_components/jquery/src/ajax/var/nonce.js create mode 100644 app/bower_components/jquery/src/ajax/var/rquery.js create mode 100644 app/bower_components/jquery/src/ajax/xhr.js create mode 100644 app/bower_components/jquery/src/attributes.js create mode 100644 app/bower_components/jquery/src/attributes/attr.js create mode 100644 app/bower_components/jquery/src/attributes/classes.js create mode 100644 app/bower_components/jquery/src/attributes/prop.js create mode 100644 app/bower_components/jquery/src/attributes/support.js create mode 100644 app/bower_components/jquery/src/attributes/val.js create mode 100644 app/bower_components/jquery/src/callbacks.js create mode 100644 app/bower_components/jquery/src/core.js create mode 100644 app/bower_components/jquery/src/core/access.js create mode 100644 app/bower_components/jquery/src/core/init.js create mode 100644 app/bower_components/jquery/src/core/parseHTML.js create mode 100644 app/bower_components/jquery/src/core/ready.js create mode 100644 app/bower_components/jquery/src/core/var/rsingleTag.js create mode 100644 app/bower_components/jquery/src/css.js create mode 100644 app/bower_components/jquery/src/css/addGetHookIf.js create mode 100644 app/bower_components/jquery/src/css/adjustCSS.js create mode 100644 app/bower_components/jquery/src/css/curCSS.js create mode 100644 app/bower_components/jquery/src/css/defaultDisplay.js create mode 100644 app/bower_components/jquery/src/css/hiddenVisibleSelectors.js create mode 100644 app/bower_components/jquery/src/css/showHide.js create mode 100644 app/bower_components/jquery/src/css/support.js create mode 100644 app/bower_components/jquery/src/css/var/cssExpand.js create mode 100644 app/bower_components/jquery/src/css/var/getStyles.js create mode 100644 app/bower_components/jquery/src/css/var/isHidden.js create mode 100644 app/bower_components/jquery/src/css/var/rmargin.js create mode 100644 app/bower_components/jquery/src/css/var/rnumnonpx.js create mode 100644 app/bower_components/jquery/src/css/var/swap.js create mode 100644 app/bower_components/jquery/src/data.js create mode 100644 app/bower_components/jquery/src/data/Data.js create mode 100644 app/bower_components/jquery/src/data/var/acceptData.js create mode 100644 app/bower_components/jquery/src/data/var/dataPriv.js create mode 100644 app/bower_components/jquery/src/data/var/dataUser.js create mode 100644 app/bower_components/jquery/src/deferred.js create mode 100644 app/bower_components/jquery/src/deprecated.js create mode 100644 app/bower_components/jquery/src/dimensions.js create mode 100644 app/bower_components/jquery/src/effects.js create mode 100644 app/bower_components/jquery/src/effects/Tween.js create mode 100644 app/bower_components/jquery/src/effects/animatedSelector.js create mode 100644 app/bower_components/jquery/src/event.js create mode 100644 app/bower_components/jquery/src/event/ajax.js create mode 100644 app/bower_components/jquery/src/event/alias.js create mode 100644 app/bower_components/jquery/src/event/focusin.js create mode 100644 app/bower_components/jquery/src/event/support.js create mode 100644 app/bower_components/jquery/src/event/trigger.js create mode 100644 app/bower_components/jquery/src/exports/amd.js create mode 100644 app/bower_components/jquery/src/exports/global.js create mode 100644 app/bower_components/jquery/src/intro.js create mode 100644 app/bower_components/jquery/src/jquery.js create mode 100644 app/bower_components/jquery/src/manipulation.js create mode 100644 app/bower_components/jquery/src/manipulation/_evalUrl.js create mode 100644 app/bower_components/jquery/src/manipulation/buildFragment.js create mode 100644 app/bower_components/jquery/src/manipulation/getAll.js create mode 100644 app/bower_components/jquery/src/manipulation/setGlobalEval.js create mode 100644 app/bower_components/jquery/src/manipulation/support.js create mode 100644 app/bower_components/jquery/src/manipulation/var/rcheckableType.js create mode 100644 app/bower_components/jquery/src/manipulation/var/rscriptType.js create mode 100644 app/bower_components/jquery/src/manipulation/var/rtagName.js create mode 100644 app/bower_components/jquery/src/manipulation/wrapMap.js create mode 100644 app/bower_components/jquery/src/offset.js create mode 100644 app/bower_components/jquery/src/outro.js create mode 100644 app/bower_components/jquery/src/queue.js create mode 100644 app/bower_components/jquery/src/queue/delay.js create mode 100644 app/bower_components/jquery/src/selector-native.js create mode 100644 app/bower_components/jquery/src/selector-sizzle.js create mode 100644 app/bower_components/jquery/src/selector.js create mode 100644 app/bower_components/jquery/src/serialize.js create mode 100644 app/bower_components/jquery/src/traversing.js create mode 100644 app/bower_components/jquery/src/traversing/findFilter.js create mode 100644 app/bower_components/jquery/src/traversing/var/dir.js create mode 100644 app/bower_components/jquery/src/traversing/var/rneedsContext.js create mode 100644 app/bower_components/jquery/src/traversing/var/siblings.js create mode 100644 app/bower_components/jquery/src/var/arr.js create mode 100644 app/bower_components/jquery/src/var/class2type.js create mode 100644 app/bower_components/jquery/src/var/concat.js create mode 100644 app/bower_components/jquery/src/var/document.js create mode 100644 app/bower_components/jquery/src/var/documentElement.js create mode 100644 app/bower_components/jquery/src/var/hasOwn.js create mode 100644 app/bower_components/jquery/src/var/indexOf.js create mode 100644 app/bower_components/jquery/src/var/pnum.js create mode 100644 app/bower_components/jquery/src/var/push.js create mode 100644 app/bower_components/jquery/src/var/rcssNum.js create mode 100644 app/bower_components/jquery/src/var/rnotwhite.js create mode 100644 app/bower_components/jquery/src/var/slice.js create mode 100644 app/bower_components/jquery/src/var/support.js create mode 100644 app/bower_components/jquery/src/var/toString.js create mode 100644 app/bower_components/jquery/src/wrap.js create mode 100644 app/bower_components/remarkable-bootstrap-notify/.bower.json create mode 100644 app/bower_components/remarkable-bootstrap-notify/.gitignore create mode 100644 app/bower_components/remarkable-bootstrap-notify/Gruntfile.js create mode 100644 app/bower_components/remarkable-bootstrap-notify/LICENSE create mode 100644 app/bower_components/remarkable-bootstrap-notify/README.md create mode 100644 app/bower_components/remarkable-bootstrap-notify/bower.json create mode 100644 app/bower_components/remarkable-bootstrap-notify/composer.json create mode 100644 app/bower_components/remarkable-bootstrap-notify/jshintrc.json create mode 100644 app/bower_components/remarkable-bootstrap-notify/package.js create mode 100644 app/bower_components/remarkable-bootstrap-notify/package.json diff --git a/app/bower_components/angular-mocks/.bower.json b/app/bower_components/angular-mocks/.bower.json new file mode 100644 index 0000000..87b26b7 --- /dev/null +++ b/app/bower_components/angular-mocks/.bower.json @@ -0,0 +1,19 @@ +{ + "name": "angular-mocks", + "version": "1.4.0", + "main": "./angular-mocks.js", + "ignore": [], + "dependencies": { + "angular": "1.4.0" + }, + "homepage": "https://github.com/angular/bower-angular-mocks", + "_release": "1.4.0", + "_resolution": { + "type": "version", + "tag": "v1.4.0", + "commit": "5a7f9f0bad5da4314df7f638fcaf330ff864cae2" + }, + "_source": "https://github.com/angular/bower-angular-mocks.git", + "_target": "1.4.0", + "_originalSource": "angular-mocks" +} \ No newline at end of file diff --git a/app/bower_components/angular-mocks/README.md b/app/bower_components/angular-mocks/README.md new file mode 100644 index 0000000..440cce9 --- /dev/null +++ b/app/bower_components/angular-mocks/README.md @@ -0,0 +1,63 @@ +# packaged angular-mocks + +This repo is for distribution on `npm` and `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngMock). +Please file issues and pull requests against that repo. + +## Install + +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular-mocks +``` + +You can `require` ngMock modules: + +```js +var angular = require('angular'); +angular.module('myMod', [ + require('angular-animate'), + require('angular-mocks/ngMock') + require('angular-mocks/ngAnimateMock') +]); +``` + +### bower + +```shell +bower install angular-mocks +``` + +The mocks are then available at `bower_components/angular-mocks/angular-mocks.js`. + +## Documentation + +Documentation is available on the +[AngularJS docs site](https://docs.angularjs.org/guide/unit-testing). + +## License + +The MIT License + +Copyright (c) 2010-2015 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/app/bower_components/angular-mocks/bower.json b/app/bower_components/angular-mocks/bower.json new file mode 100644 index 0000000..73aae58 --- /dev/null +++ b/app/bower_components/angular-mocks/bower.json @@ -0,0 +1,9 @@ +{ + "name": "angular-mocks", + "version": "1.4.0", + "main": "./angular-mocks.js", + "ignore": [], + "dependencies": { + "angular": "1.4.0" + } +} diff --git a/app/bower_components/angular-mocks/package.json b/app/bower_components/angular-mocks/package.json new file mode 100644 index 0000000..64bbd9c --- /dev/null +++ b/app/bower_components/angular-mocks/package.json @@ -0,0 +1,27 @@ +{ + "name": "angular-mocks", + "version": "1.4.0", + "description": "AngularJS mocks for testing", + "main": "angular-mocks.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/angular/angular.js.git" + }, + "keywords": [ + "angular", + "framework", + "browser", + "mocks", + "testing", + "client-side" + ], + "author": "Angular Core Team ", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/app/bower_components/angular-ui-router/.bower.json b/app/bower_components/angular-ui-router/.bower.json new file mode 100644 index 0000000..762b4dd --- /dev/null +++ b/app/bower_components/angular-ui-router/.bower.json @@ -0,0 +1,34 @@ +{ + "name": "angular-ui-router", + "version": "0.3.0", + "license": "MIT", + "main": "./release/angular-ui-router.js", + "dependencies": { + "angular": "^1.0.8" + }, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "component.json", + "package.json", + "lib", + "config", + "sample", + "test", + "tests", + "ngdoc_assets", + "Gruntfile.js", + "files.js" + ], + "homepage": "https://github.com/angular-ui/angular-ui-router-bower", + "_release": "0.3.0", + "_resolution": { + "type": "version", + "tag": "0.3.0", + "commit": "d2a0feb9827e79f4dca6f30e67a37535c6841386" + }, + "_source": "https://github.com/angular-ui/angular-ui-router-bower.git", + "_target": "0.3.0", + "_originalSource": "angular-ui-router" +} \ No newline at end of file diff --git a/app/bower_components/angular-ui-router/CHANGELOG.md b/app/bower_components/angular-ui-router/CHANGELOG.md new file mode 100644 index 0000000..a6c03f5 --- /dev/null +++ b/app/bower_components/angular-ui-router/CHANGELOG.md @@ -0,0 +1,346 @@ + +## 0.3.0 (2016-05-14) + +This is a release of the `legacy` branch, primarily to fix the $scope destroy ordering issues introduced in 0.2.16. + +We recommend all users to try the 1.0.0 alpha and report any issues it causes with your application. Read the [known breaking changes](https://github.com/angular-ui/ui-router/issues/2219) between the legacy and 1.0 branches. + +# BC-BREAK + +In 0.2.16 we delayed the ui-view $scope destroy() until after all animations were completed. This was a mistake, and we're reverting it in 0.3.0. + +The original issue that we tried to address: https://github.com/angular-ui/ui-router/issues/1643 + +We are switching back to 0.2.15 behavior. The scope is now destroyed as soon as the view is swapped out. This allows cleanup to happen in response +to the $destroy event. If you need to do things after the animation, we've put the promise on the `element.data('$uiView')` in #2562 + +#### Bug Fixes + +* **state:** Inject $state at runtime to force initialization ([de3a04a7](https://github.com/angular-ui/ui-router/commit/de3a04a7c676e05b5b868de4f65d03d9c588773c), closes [#2574](https://github.com/angular-ui/ui-router/issues/2574)) +* **ui-sref:** update ui-sref-active/eq info when params change When ui-state dynamicly changes ([9698ec4d](https://github.com/angular-ui/ui-router/commit/9698ec4d2fbceb463cf11e43b7e74e385eda4beb), closes [#2554](https://github.com/angular-ui/ui-router/issues/2554)) +* **ui-state:** update ui-sref-active/eq info when ui-state dynamicly changes watchers, make sur ([abb3deba](https://github.com/angular-ui/ui-router/commit/abb3debacb87e1a6c398a13f2d64c53e8b08a233), closes [#2488](https://github.com/angular-ui/ui-router/issues/2488)) + + +#### Features + +* **uiView:** + * Fire the $onInit hook ([b090ca03](https://github.com/angular-ui/ui-router/commit/b090ca0352eabc13662a8702a2b227b7db606362), closes [#2559](https://github.com/angular-ui/ui-router/issues/2559)) + * Put $animate promises on element.data('$uiView') closes #2562 closes #2579 ([fde64e18](https://github.com/angular-ui/ui-router/commit/fde64e1897041e59cbc9f8d07b269dcd487abb9c)) + + + +### 0.2.18 (2016-02-07) + +This is a maintenance release which fixes a few known bugs introduced in 0.2.16. + +#### Bug Fixes + +* **$urlRouter:** revert BC: resolve clashing of routes This reverts commit b5c57c8ec2e14e17e75104 ([2f1ebefc](https://github.com/angular-ui/ui-router/commit/2f1ebefc242ff48960e0bf63da359296a38f6852), closes [#2501](https://github.com/angular-ui/ui-router/issues/2501)) +* **uiState:** Corrected typo for 'ref' variable (#2488, #2508) ([b8f3c144](https://github.com/angular-ui/ui-router/commit/b8f3c144b913e620f177b78f3b4f52afa61d41a6)) +* **$urlMatcherFactory:** Fix to make the YUI Javascript compressor work ([ad9c41d2](https://github.com/angular-ui/ui-router/commit/ad9c41d2e723d50e30dd3452fbd274b7057dc3d9)) +* **stateBuilder:** fix non-url params on a state without a url. The parameters are now applied when ([d6d8c332](https://github.com/angular-ui/ui-router/commit/d6d8c3322c4dde8bb5b8dde25f9fcda49e9c4c81), closes [#2025](https://github.com/angular-ui/ui-router/issues/2025)) +* **ui-view:** (ui-view) use static renderer when no animation is present for a ui-view ([2523bbdb](https://github.com/angular-ui/ui-router/commit/2523bbdb5542483a489c22804f1751b8b9f71703), closes [#2485](https://github.com/angular-ui/ui-router/issues/2485)). This allows a ui-view scope to be destroyed when switching states, before the next view is initialized. + + +#### Features + +* **ui-view:** Add noanimation attribute to specify static renderer. ([2523bbdb](https://github.com/angular-ui/ui-router/commit/2523bbdb5542483a489c22804f1751b8b9f71703), closes [#2485](https://github.com/angular-ui/ui-router/issues/2485)). This allows a ui-view scope to be destroyed before the next ui-view is initialized, when ui-view animation is not present. + + + +### 0.2.17 (2016-01-25) + + +#### Bug Fixes + +* **uiSrefActive:** allow multiple classes ([a89114a0](https://github.com/angular-ui/ui-router/commit/a89114a083813c1a7280c48fc18e626caa5a31f4), closes [#2481](https://github.com/angular-ui/ui-router/issues/2481), [#2482](https://github.com/angular-ui/ui-router/issues/2482)) + + + +### 0.2.16 (2016-01-24) + + +#### Bug Fixes + +* **$state:** + * statechangeCancel: Avoid infinite digest in .otherwise/redirect case. Don't clobber url if a new transition has started. Closes #222 ([e00aa695](https://github.com/angular-ui/ui-router/commit/e00aa695e41ddc5ebd5d2b226aa0917a751b11aa), closes [#2238](https://github.com/angular-ui/ui-router/issues/2238)) + * transitionTo: Allow hash (#) value to be read as toParams['#'] in events. Re-add the saved hash before broadcasting $stateChangeStart event. ([8c1bf30d](https://github.com/angular-ui/ui-router/commit/8c1bf30d2a3b78ba40b330f12d854c885d6cc117)) +* **$stateParams:** Fix for testing: reset service instance between tests ([2aeb0c4b](https://github.com/angular-ui/ui-router/commit/2aeb0c4b205baf6cfa2ef25bb986bb160dc13bf9)) +* **$urlRouter:** + * Sort URL rules by specificity. Potential minor BC if apps were relying on rule registration order. ([b5c57c8e](https://github.com/angular-ui/ui-router/commit/b5c57c8ec2e14e17e75104c1424654f126ea4011)) + * Use $sniffer for pushstate compat check ([c219e801](https://github.com/angular-ui/ui-router/commit/c219e801797f340ef9c5c919ab890ef003a7a042)) +* **UrlMatcher:** + * Properly encode/decode slashes in parameters Closes #2172 Closes #2250 Closes #1 ([02e98660](https://github.com/angular-ui/ui-router/commit/02e98660a80dfd1ca4b113dd24ee304af91e9f8c), closes [#2339](https://github.com/angular-ui/ui-router/issues/2339)) + * Array types: Fix default value for array query parameters. Pass empty arrays through in handler. ([20d6e243](https://github.com/angular-ui/ui-router/commit/20d6e243f1745ddbf257217245a1dc22eabe13da), closes [#2222](https://github.com/angular-ui/ui-router/issues/2222)) + * Remove trailing slash, if parameter is optional and was squashed from URL ([77fa11bf](https://github.com/angular-ui/ui-router/commit/77fa11bf0787d0f6da97ab0003ab29afb7411391), closes [#1902](https://github.com/angular-ui/ui-router/issues/1902)) + * Allow a parameter declaration to configure the parameter type by name. closes #2294 ([e4010249](https://github.com/angular-ui/ui-router/commit/e40102492d40fe1cf6ba14d955fcc9f345c16458)) + * include the slash when recognizing squashed params in url ([b5130bb1](https://github.com/angular-ui/ui-router/commit/b5130bb1215e15f832ea6daa670410b9a950c0d4), closes [#2064](https://github.com/angular-ui/ui-router/issues/2064)) + * Allow url query param names to contain periods ([d31b3337](https://github.com/angular-ui/ui-router/commit/d31b3337cc2ce71d87c92fdded629e46558d0b49)) +* **reloadOnSearch:** Update `locals.globals.$stateParams` when reloadOnSearch=false ([350d3e87](https://github.com/angular-ui/ui-router/commit/350d3e87783a2263fd7d23913da34f1268c3300b), closes [#2356](https://github.com/angular-ui/ui-router/issues/2356)) +* **ui-view:** + * fix $animate usage for ng 1.4+ ([9b6d9a2d](https://github.com/angular-ui/ui-router/commit/9b6d9a2d0ce4ae08384165cb517bddea59b67892)) + * change $viewContentLoading to pair with $viewContentLoaded ([f9b43d66](https://github.com/angular-ui/ui-router/commit/f9b43d66833f0e17de41fd8d1cc3b491e3ba4a0e), closes [#685](https://github.com/angular-ui/ui-router/issues/685)) + * $destroy event is triggered before animation ends ([1be13795](https://github.com/angular-ui/ui-router/commit/1be13795686ab78abb2d5094bc8addcacb928975)) +* **uiSref:** + * Ensure URL once param checks pass ([9dc31c54](https://github.com/angular-ui/ui-router/commit/9dc31c5465328e5666468b0c2319ce205f4b72f8), closes [#2091](https://github.com/angular-ui/ui-router/issues/2091)) + * uiSrefActive: update the active classes after linking directive ([7c914030](https://github.com/angular-ui/ui-router/commit/7c914030f13e05e45a941c1b723cb785db729890)) + + +#### Features + +* **$IncludedByStateFilter:** add parameters to $IncludedByStateFilter ([963f6e71](https://github.com/angular-ui/ui-router/commit/963f6e71633b9c3a266f3991d79089b7d14786b4), closes [#1735](https://github.com/angular-ui/ui-router/issues/1735)) +* **isStateFilter:** Include optional state params. ([71d74699](https://github.com/angular-ui/ui-router/commit/71d7469987ee9ca86a41c8c6393ccd5d8913c3d6)) +* **$state:** make state data inheritance prototypical ([c4fec8c7](https://github.com/angular-ui/ui-router/commit/c4fec8c7998113902af4152d716c42dada6eb465)) +* **$stateChangeStart:** Add options to event ([a1f07559](https://github.com/angular-ui/ui-router/commit/a1f07559ec74e10ff80bc4be81f287e3772b8fcb)) +* **UrlMatcher:** Add param only type names ([6a371f9b](https://github.com/angular-ui/ui-router/commit/6a371f9b70e37a82eb324122879e4473c3f6d526)) +* **uiSrefActive:** + * provide a ng-{class,style} like interface ([a9ff6feb](https://github.com/angular-ui/ui-router/commit/a9ff6febb469e0d5cd49054216c4472df7a6259d)) + * allow active & active-eq on same element ([d9a676ba](https://github.com/angular-ui/ui-router/commit/d9a676ba2c4d9e954be224c60496bcb38f6074e3)) +* **uiState:** add ui-state directive ([3831af1d](https://github.com/angular-ui/ui-router/commit/3831af1dc71b601351e6694af0665a77297f8f7f), closes [#395](https://github.com/angular-ui/ui-router/issues/395), [#900](https://github.com/angular-ui/ui-router/issues/900), [#1932](https://github.com/angular-ui/ui-router/issues/1932)) +* **urlMatcher:** add support for optional spaces in params ([4b7f3046](https://github.com/angular-ui/ui-router/commit/4b7f304617f0b3590b532103b5c2fb526c98a9e4)) + + + +### 0.2.15 (2015-05-19) + + +#### Bug Fixes + +* **$state:** reloadOnSearch should not affect non-search param changes. ([6ca0d770](https://github.com/angular-ui/ui-router/commit/6ca0d7704cf7de9c6e6b7bb64df2f9c68fe081cc), closes [#1079](https://github.com/angular-ui/ui-router/issues/1079)) +* **urlMatcherFactory:** Revert to 0.2.13 behavior where all string parameters are considered optional fi ([495a02c3](https://github.com/angular-ui/ui-router/commit/495a02c3cbde501c1c149bce137806669209bc29), closes [#1963](https://github.com/angular-ui/ui-router/issues/1963)) +* **urlRouter:** allow .when() to redirect, even after a successful $state.go() - This partially ([48aeaff6](https://github.com/angular-ui/ui-router/commit/48aeaff645baf3f42f5a8940ebd97563791ad9f8), closes [#1584](https://github.com/angular-ui/ui-router/issues/1584)) + + +#### Features + +* **$state:** Inject templateProvider with resolved values ([afa20f22](https://github.com/angular-ui/ui-router/commit/afa20f22373b7176b26daa7e1099750c4254a354)) + + + +### 0.2.14 (2015-04-23) + + +#### Bug Fixes + +* **$StateRefDirective:** resolve missing support for svg anchor elements #1667 ([0149a7bb](https://github.com/angular-ui/ui-router/commit/0149a7bb38b7af99388a1ad7cc9909a7b7c4439d)) +* **$urlMatcherFactory:** + * regex params should respect case-sensitivity ([1e10519f](https://github.com/angular-ui/ui-router/commit/1e10519f3be6bbf0cefdcce623cd2ade06e649e5), closes [#1671](https://github.com/angular-ui/ui-router/issues/1671)) + * unquote all dashes from array params ([06664d33](https://github.com/angular-ui/ui-router/commit/06664d330f882390655dcfa83e10276110d0d0fa)) + * add Type.$normalize function ([b0c6aa23](https://github.com/angular-ui/ui-router/commit/b0c6aa2350fdd3ce8483144774adc12f5a72b7e9)) + * make optional params regex grouping optional ([06f73794](https://github.com/angular-ui/ui-router/commit/06f737945e83e668d09cfc3bcffd04a500ff1963), closes [#1576](https://github.com/angular-ui/ui-router/issues/1576)) +* **$state:** allow about.*.** glob patterns ([e39b27a2](https://github.com/angular-ui/ui-router/commit/e39b27a2cb7d88525c446a041f9fbf1553202010)) +* **uiSref:** + * use Object's toString instead of Window's toString ([2aa7f4d1](https://github.com/angular-ui/ui-router/commit/2aa7f4d139dbd5b9fcc4afdcf2ab6642c87f5671)) + * add absolute to allowed transition options ([ae1b3c4e](https://github.com/angular-ui/ui-router/commit/ae1b3c4eedc37983400d830895afb50457c63af4)) +* **uiSrefActive:** Apply active classes on lazy loaded states ([f0ddbe7b](https://github.com/angular-ui/ui-router/commit/f0ddbe7b4a91daf279c3b7d0cee732bb1f3be5b4)) +* **uiView:** add `$element` to locals for view controller ([db68914c](https://github.com/angular-ui/ui-router/commit/db68914cd6c821e7dec8155bd33142a3a97f5453)) + + +#### Features + +* **$state:** + * support URLs with #fragments ([3da0a170](https://github.com/angular-ui/ui-router/commit/3da0a17069e27598c0f9d9164e104dd5ce05cdc6)) + * inject resolve params into controllerProvider ([b380c223](https://github.com/angular-ui/ui-router/commit/b380c223fe12e2fde7582c0d6b1ed7b15a23579b), closes [#1131](https://github.com/angular-ui/ui-router/issues/1131)) + * added 'state' to state reload method (feat no.1612) - modiefied options.reload ([b8f04575](https://github.com/angular-ui/ui-router/commit/b8f04575a8557035c1858c4d5c8dbde3e1855aaa)) + * broadcast $stateChangeCancel event when event.preventDefault() is called in $sta ([ecefb758](https://github.com/angular-ui/ui-router/commit/ecefb758cb445e41620b62a272aafa3638613d7a)) +* **$uiViewScroll:** change function to return promise ([c2a9a311](https://github.com/angular-ui/ui-router/commit/c2a9a311388bb212e5a2e820536d1d739f829ccd), closes [#1702](https://github.com/angular-ui/ui-router/issues/1702)) +* **uiSrefActive:** Added support for multiple nested uiSref directives ([b1844948](https://github.com/angular-ui/ui-router/commit/b18449481d152b50705abfce2493a444eb059fa5)) + + + +### 0.2.13 (2014-11-20) + +This release primarily fixes issues reported against 0.2.12 + +#### Bug Fixes + +* **$state:** fix $state.includes/.is to apply param types before comparisions fix(uiSref): ma ([19715d15](https://github.com/angular-ui/ui-router/commit/19715d15e3cbfff724519e9febedd05b49c75baa), closes [#1513](https://github.com/angular-ui/ui-router/issues/1513)) + * Avoid re-synchronizing from url after .transitionTo ([b267ecd3](https://github.com/angular-ui/ui-router/commit/b267ecd348e5c415233573ef95ebdbd051875f52), closes [#1573](https://github.com/angular-ui/ui-router/issues/1573)) +* **$urlMatcherFactory:** + * Built-in date type uses local time zone ([d726bedc](https://github.com/angular-ui/ui-router/commit/d726bedcbb5f70a5660addf43fd52ec730790293)) + * make date type fn check .is before running ([aa94ce3b](https://github.com/angular-ui/ui-router/commit/aa94ce3b86632ad05301530a2213099da73a3dc0), closes [#1564](https://github.com/angular-ui/ui-router/issues/1564)) + * early binding of array handler bypasses type resolution ([ada4bc27](https://github.com/angular-ui/ui-router/commit/ada4bc27df5eff3ba3ab0de94a09bd91b0f7a28c)) + * add 'any' Type for non-encoding non-url params ([3bfd75ab](https://github.com/angular-ui/ui-router/commit/3bfd75ab445ee2f1dd55275465059ed116b10b27), closes [#1562](https://github.com/angular-ui/ui-router/issues/1562)) + * fix encoding slashes in params ([0c983a08](https://github.com/angular-ui/ui-router/commit/0c983a08e2947f999683571477debd73038e95cf), closes [#1119](https://github.com/angular-ui/ui-router/issues/1119)) + * fix mixed path/query params ordering problem ([a479fbd0](https://github.com/angular-ui/ui-router/commit/a479fbd0b8eb393a94320973e5b9a62d83912ee2), closes [#1543](https://github.com/angular-ui/ui-router/issues/1543)) +* **ArrayType:** + * specify empty array mapping corner case ([74aa6091](https://github.com/angular-ui/ui-router/commit/74aa60917e996b0b4e27bbb4eb88c3c03832021d), closes [#1511](https://github.com/angular-ui/ui-router/issues/1511)) + * fix .equals for array types ([5e6783b7](https://github.com/angular-ui/ui-router/commit/5e6783b77af9a90ddff154f990b43dbb17eeda6e), closes [#1538](https://github.com/angular-ui/ui-router/issues/1538)) +* **Param:** fix default value shorthand declaration ([831d812a](https://github.com/angular-ui/ui-router/commit/831d812a524524c71f0ee1c9afaf0487a5a66230), closes [#1554](https://github.com/angular-ui/ui-router/issues/1554)) +* **common:** fixed the _.filter clone to not create sparse arrays ([750f5cf5](https://github.com/angular-ui/ui-router/commit/750f5cf5fd91f9ada96f39e50d39aceb2caf22b6), closes [#1563](https://github.com/angular-ui/ui-router/issues/1563)) +* **ie8:** fix calls to indexOf and filter ([dcb31b84](https://github.com/angular-ui/ui-router/commit/dcb31b843391b3e61dee4de13f368c109541813e), closes [#1556](https://github.com/angular-ui/ui-router/issues/1556)) + + +#### Features + +* add json parameter Type ([027f1fcf](https://github.com/angular-ui/ui-router/commit/027f1fcf9c0916cea651e88981345da6f9ff214a)) + + + +### 0.2.12 (2014-11-13) + +#### Bug Fixes + +* **$resolve:** use resolve fn result, not parent resolved value of same name ([67f5e00c](https://github.com/angular-ui/ui-router/commit/67f5e00cc9aa006ce3fe6cde9dff261c28eab70a), closes [#1317], [#1353]) +* **$state:** + * populate default params in .transitionTo. ([3f60fbe6](https://github.com/angular-ui/ui-router/commit/3f60fbe6d65ebeca8d97952c05aa1d269f1b7ba1), closes [#1396]) + * reload() now reinvokes controllers ([73443420](https://github.com/angular-ui/ui-router/commit/7344342018847902594dc1fc62d30a5c30f01763), closes [#582]) + * do not emit $viewContentLoading if notify: false ([74255feb](https://github.com/angular-ui/ui-router/commit/74255febdf48ae082a02ca1e735165f2c369a463), closes [#1387](https://github.com/angular-ui/ui-router/issues/1387)) + * register states at config-time ([4533fe36](https://github.com/angular-ui/ui-router/commit/4533fe36e0ab2f0143edd854a4145deaa013915a)) + * handle parent.name when parent is obj ([4533fe36](https://github.com/angular-ui/ui-router/commit/4533fe36e0ab2f0143edd854a4145deaa013915a)) +* **$urlMatcherFactory:** + * register types at config ([4533fe36](https://github.com/angular-ui/ui-router/commit/4533fe36e0ab2f0143edd854a4145deaa013915a), closes [#1476]) + * made path params default value "" for backwards compat ([8f998e71](https://github.com/angular-ui/ui-router/commit/8f998e71e43a0b31293331c981f5db0f0097b8ba)) + * Pre-replace certain param values for better mapping ([6374a3e2](https://github.com/angular-ui/ui-router/commit/6374a3e29ab932014a7c77d2e1ab884cc841a2e3)) + * fixed ParamSet.$$keys() ordering ([9136fecb](https://github.com/angular-ui/ui-router/commit/9136fecbc2bfd4fda748a9914f0225a46c933860)) + * empty string policy now respected in Param.value() ([db12c85c](https://github.com/angular-ui/ui-router/commit/db12c85c16f2d105415f9bbbdeb11863f64728e0)) + * "string" type now encodes/decodes slashes ([3045e415](https://github.com/angular-ui/ui-router/commit/3045e41577a8b8b8afc6039f42adddf5f3c061ec), closes [#1119]) + * allow arrays in both path and query params ([fdd2f2c1](https://github.com/angular-ui/ui-router/commit/fdd2f2c191c4a67c874fdb9ec9a34f8dde9ad180), closes [#1073], [#1045], [#1486], [#1394]) + * typed params in search ([8d4cab69](https://github.com/angular-ui/ui-router/commit/8d4cab69dd67058e1a716892cc37b7d80a57037f), closes [#1488](https://github.com/angular-ui/ui-router/issues/1488)) + * no longer generate unroutable urls ([cb9fd9d8](https://github.com/angular-ui/ui-router/commit/cb9fd9d8943cb26c7223f6990db29c82ae8740f8), closes [#1487](https://github.com/angular-ui/ui-router/issues/1487)) + * handle optional parameter followed by required parameter in url format. ([efc72106](https://github.com/angular-ui/ui-router/commit/efc72106ddcc4774b48ea176a505ef9e95193b41)) + * default to parameter string coersion. ([13a468a7](https://github.com/angular-ui/ui-router/commit/13a468a7d54c2fb0751b94c0c1841d580b71e6dc), closes [#1414](https://github.com/angular-ui/ui-router/issues/1414)) + * concat respects strictMode/caseInsensitive ([dd72e103](https://github.com/angular-ui/ui-router/commit/dd72e103edb342d9cf802816fe127e1bbd68fd5f), closes [#1395]) +* **ui-sref:** + * Allow sref state options to take a scope object ([b5f7b596](https://github.com/angular-ui/ui-router/commit/b5f7b59692ce4933e2d63eb5df3f50a4ba68ccc0)) + * replace raw href modification with attrs. ([08c96782](https://github.com/angular-ui/ui-router/commit/08c96782faf881b0c7ab00afc233ee6729548fa0)) + * nagivate to state when url is "" fix($state.href): generate href for state with ([656b5aab](https://github.com/angular-ui/ui-router/commit/656b5aab906e5749db9b5a080c6a83b95f50fd91), closes [#1363](https://github.com/angular-ui/ui-router/issues/1363)) + * Check that state is defined in isMatch() ([92aebc75](https://github.com/angular-ui/ui-router/commit/92aebc7520f88babdc6e266536086e07263514c3), closes [#1314](https://github.com/angular-ui/ui-router/issues/1314), [#1332](https://github.com/angular-ui/ui-router/issues/1332)) +* **uiView:** + * allow inteprolated ui-view names ([81f6a19a](https://github.com/angular-ui/ui-router/commit/81f6a19a432dac9198fd33243855bfd3b4fea8c0), closes [#1324](https://github.com/angular-ui/ui-router/issues/1324)) + * Made anim work with angular 1.3 ([c3bb7ad9](https://github.com/angular-ui/ui-router/commit/c3bb7ad903da1e1f3c91019cfd255be8489ff4ef), closes [#1367](https://github.com/angular-ui/ui-router/issues/1367), [#1345](https://github.com/angular-ui/ui-router/issues/1345)) +* **urlRouter:** html5Mode accepts an object from angular v1.3.0-rc.3 ([7fea1e9d](https://github.com/angular-ui/ui-router/commit/7fea1e9d0d8c6e09cc6c895ecb93d4221e9adf48)) +* **stateFilters:** mark state filters as stateful. ([a00b353e](https://github.com/angular-ui/ui-router/commit/a00b353e3036f64a81245c4e7898646ba218f833), closes [#1479]) +* **ui-router:** re-add IE8 compatibility for map/filter/keys ([8ce69d9f](https://github.com/angular-ui/ui-router/commit/8ce69d9f7c886888ab53eca7e53536f36b428aae), closes [#1518], [#1383]) +* **package:** point 'main' to a valid filename ([ac903350](https://github.com/angular-ui/ui-router/commit/ac9033501debb63364539d91fbf3a0cba4579f8e)) +* **travis:** make CI build faster ([0531de05](https://github.com/angular-ui/ui-router/commit/0531de052e414a8d839fbb4e7635e923e94865b3)) + + +#### Features + +##### Default and Typed params + +This release includes a lot of bug fixes around default/optional and typed parameters. As such, 0.2.12 is the first release where we recommend those features be used. + +* **$state:** + * add state params validation ([b1379e6a](https://github.com/angular-ui/ui-router/commit/b1379e6a4d38f7ed7436e05873932d7c279af578), closes [#1433](https://github.com/angular-ui/ui-router/issues/1433)) + * is/includes/get work on relative stateOrName ([232e94b3](https://github.com/angular-ui/ui-router/commit/232e94b3c2ca2c764bb9510046e4b61690c87852)) + * .reload() returns state transition promise ([639e0565](https://github.com/angular-ui/ui-router/commit/639e0565dece9d5544cc93b3eee6e11c99bd7373)) +* **$templateFactory:** request templateURL as text/html ([ccd60769](https://github.com/angular-ui/ui-router/commit/ccd6076904a4b801d77b47f6e2de4c06ce9962f8), closes [#1287]) +* **$urlMatcherFactory:** Made a Params and ParamSet class ([0cc1e6cc](https://github.com/angular-ui/ui-router/commit/0cc1e6cc461a4640618e2bb594566551c54834e2)) + + + + +### 0.2.11 (2014-08-26) + + +#### Bug Fixes + +* **$resolve:** Resolves only inherit from immediate parent fixes #702 ([df34e20c](https://github.com/angular-ui/ui-router/commit/df34e20c576299e7a3c8bd4ebc68d42341c0ace9)) +* **$state:** + * change $state.href default options.inherit to true ([deea695f](https://github.com/angular-ui/ui-router/commit/deea695f5cacc55de351ab985144fd233c02a769)) + * sanity-check state lookups ([456fd5ae](https://github.com/angular-ui/ui-router/commit/456fd5aec9ea507518927bfabd62b4afad4cf714), closes [#980](https://github.com/angular-ui/ui-router/issues/980)) + * didn't comply to inherit parameter ([09836781](https://github.com/angular-ui/ui-router/commit/09836781f126c1c485b06551eb9cfd4fa0f45c35)) + * allow view content loading broadcast ([7b78edee](https://github.com/angular-ui/ui-router/commit/7b78edeeb52a74abf4d3f00f79534033d5a08d1a)) +* **$urlMatcherFactory:** + * detect injected functions ([91f75ae6](https://github.com/angular-ui/ui-router/commit/91f75ae66c4d129f6f69e53bd547594e9661f5d5)) + * syntax ([1ebed370](https://github.com/angular-ui/ui-router/commit/1ebed37069bae8614d41541d56521f5c45f703f3)) +* **UrlMatcher:** + * query param function defaults ([f9c20530](https://github.com/angular-ui/ui-router/commit/f9c205304f10d8a4ebe7efe9025e642016479a51)) + * don't decode default values ([63607bdb](https://github.com/angular-ui/ui-router/commit/63607bdbbcb432d3fb37856a1cb3da0cd496804e)) +* **travis:** update Node version to fix build ([d6b95ef2](https://github.com/angular-ui/ui-router/commit/d6b95ef23d9dacb4eba08897f5190a0bcddb3a48)) +* **uiSref:** + * Generate an href for states with a blank url. closes #1293 ([691745b1](https://github.com/angular-ui/ui-router/commit/691745b12fa05d3700dd28f0c8d25f8a105074ad)) + * should inherit params by default ([b973dad1](https://github.com/angular-ui/ui-router/commit/b973dad155ad09a7975e1476bd096f7b2c758eeb)) + * cancel transition if preventDefault() has been called ([2e6d9167](https://github.com/angular-ui/ui-router/commit/2e6d9167d3afbfbca6427e53e012f94fb5fb8022)) +* **uiView:** Fixed infinite loop when is called .go() from a controller. ([e13988b8](https://github.com/angular-ui/ui-router/commit/e13988b8cd6231d75c78876ee9d012cc87f4a8d9), closes [#1194](https://github.com/angular-ui/ui-router/issues/1194)) +* **docs:** + * Fixed link to milestones ([6c0ae500](https://github.com/angular-ui/ui-router/commit/6c0ae500cc238ea9fc95adcc15415c55fc9e1f33)) + * fix bug in decorator example ([4bd00af5](https://github.com/angular-ui/ui-router/commit/4bd00af50b8b88a49d1545a76290731cb8e0feb1)) + * Removed an incorrect semi-colon ([af97cef8](https://github.com/angular-ui/ui-router/commit/af97cef8b967f2e32177e539ef41450dca131a7d)) + * Explain return value of rule as function ([5e887890](https://github.com/angular-ui/ui-router/commit/5e8878900a6ffe59a81aed531a3925e34a297377)) + + +#### Features + +* **$state:** + * allow parameters to pass unharmed ([8939d057](https://github.com/angular-ui/ui-router/commit/8939d0572ab1316e458ef016317ecff53131a822)) + * **BREAKING CHANGE**: state parameters are no longer automatically coerced to strings, and unspecified parameter values are now set to undefined rather than null. + * allow prevent syncUrl on failure ([753060b9](https://github.com/angular-ui/ui-router/commit/753060b910d5d2da600a6fa0757976e401c33172)) +* **typescript:** Add typescript definitions for component builds ([521ceb3f](https://github.com/angular-ui/ui-router/commit/521ceb3fd7850646422f411921e21ce5e7d82e0f)) +* **uiSref:** extend syntax for ui-sref ([71cad3d6](https://github.com/angular-ui/ui-router/commit/71cad3d636508b5a9fe004775ad1f1adc0c80c3e)) +* **uiSrefActive:** + * Also activate for child states. ([bf163ad6](https://github.com/angular-ui/ui-router/commit/bf163ad6ce176ce28792696c8302d7cdf5c05a01), closes [#818](https://github.com/angular-ui/ui-router/issues/818)) + * **BREAKING CHANGE** Since ui-sref-active now activates even when child states are active you may need to swap out your ui-sref-active with ui-sref-active-eq, thought typically we think devs want the auto inheritance. + + * uiSrefActiveEq: new directive with old ui-sref-active behavior +* **$urlRouter:** + * defer URL change interception ([c72d8ce1](https://github.com/angular-ui/ui-router/commit/c72d8ce11916d0ac22c81b409c9e61d7048554d7)) + * force URLs to have valid params ([d48505cd](https://github.com/angular-ui/ui-router/commit/d48505cd328d83e39d5706e085ba319715f999a6)) + * abstract $location handling ([08b4636b](https://github.com/angular-ui/ui-router/commit/08b4636b294611f08db35f00641eb5211686fb50)) +* **$urlMatcherFactory:** + * fail on bad parameters ([d8f124c1](https://github.com/angular-ui/ui-router/commit/d8f124c10d00c7e5dde88c602d966db261aea221)) + * date type support ([b7f074ff](https://github.com/angular-ui/ui-router/commit/b7f074ff65ca150a3cdbda4d5ad6cb17107300eb)) + * implement type support ([450b1f0e](https://github.com/angular-ui/ui-router/commit/450b1f0e8e03c738174ff967f688b9a6373290f4)) +* **UrlMatcher:** + * handle query string arrays ([9cf764ef](https://github.com/angular-ui/ui-router/commit/9cf764efab45fa9309368688d535ddf6e96d6449), closes [#373](https://github.com/angular-ui/ui-router/issues/373)) + * injectable functions as defaults ([00966ecd](https://github.com/angular-ui/ui-router/commit/00966ecd91fb745846039160cab707bfca8b3bec)) + * default values & type decoding for query params ([a472b301](https://github.com/angular-ui/ui-router/commit/a472b301389fbe84d1c1fa9f24852b492a569d11)) + * allow shorthand definitions ([5b724304](https://github.com/angular-ui/ui-router/commit/5b7243049793505e44b6608ea09878c37c95b1f5)) + * validates whole interface ([32b27db1](https://github.com/angular-ui/ui-router/commit/32b27db173722e9194ef1d5c0ea7d93f25a98d11)) + * implement non-strict matching ([a3e21366](https://github.com/angular-ui/ui-router/commit/a3e21366bee0475c9795a1ec76f70eec41c5b4e3)) + * add per-param config support ([07b3029f](https://github.com/angular-ui/ui-router/commit/07b3029f4d409cf955780113df92e36401b47580)) + * **BREAKING CHANGE**: the `params` option in state configurations must now be an object keyed by parameter name. + +### 0.2.10 (2014-03-12) + + +#### Bug Fixes + +* **$state:** use $browser.baseHref() when generating urls with .href() ([cbcc8488](https://github.com/angular-ui/ui-router/commit/cbcc84887d6b6d35258adabb97c714cd9c1e272d)) +* **bower.json:** JS files should not be ignored ([ccdab193](https://github.com/angular-ui/ui-router/commit/ccdab193315f304eb3be5f5b97c47a926c79263e)) +* **dev:** karma:background task is missing, can't run grunt:dev. ([d9f7b898](https://github.com/angular-ui/ui-router/commit/d9f7b898e8e3abb8c846b0faa16a382913d7b22b)) +* **sample:** Contacts menu button not staying active when navigating to detail states. Need t ([2fcb8443](https://github.com/angular-ui/ui-router/commit/2fcb84437cb43ade12682a92b764f13cac77dfe7)) +* **uiSref:** support mock-clicks/events with no data ([717d3ff7](https://github.com/angular-ui/ui-router/commit/717d3ff7d0ba72d239892dee562b401cdf90e418)) +* **uiView:** + * Do NOT autoscroll when autoscroll attr is missing ([affe5bd7](https://github.com/angular-ui/ui-router/commit/affe5bd785cdc3f02b7a9f64a52e3900386ec3a0), closes [#807](https://github.com/angular-ui/ui-router/issues/807)) + * Refactoring uiView directive to copy ngView logic ([548fab6a](https://github.com/angular-ui/ui-router/commit/548fab6ab9debc9904c5865c8bc68b4fc3271dd0), closes [#857](https://github.com/angular-ui/ui-router/issues/857), [#552](https://github.com/angular-ui/ui-router/issues/552)) + + +#### Features + +* **$state:** includes() allows glob patterns for state matching. ([2d5f6b37](https://github.com/angular-ui/ui-router/commit/2d5f6b37191a3135f4a6d9e8f344c54edcdc065b)) +* **UrlMatcher:** Add support for case insensitive url matching ([642d5247](https://github.com/angular-ui/ui-router/commit/642d524799f604811e680331002feec7199a1fb5)) +* **uiSref:** add support for transition options ([2ed7a728](https://github.com/angular-ui/ui-router/commit/2ed7a728cee6854b38501fbc1df6139d3de5b28a)) +* **uiView:** add controllerAs config with function ([1ee7334a](https://github.com/angular-ui/ui-router/commit/1ee7334a73efeccc9b95340e315cdfd59944762d)) + + +### 0.2.9 (2014-01-17) + + +This release is identical to 0.2.8. 0.2.8 was re-tagged in git to fix a problem with bower. + + +### 0.2.8 (2014-01-16) + + +#### Bug Fixes + +* **$state:** allow null to be passed as 'params' param ([094dc30e](https://github.com/angular-ui/ui-router/commit/094dc30e883e1bd14e50a475553bafeaade3b178)) +* **$state.go:** param inheritance shouldn't inherit from siblings ([aea872e0](https://github.com/angular-ui/ui-router/commit/aea872e0b983cb433436ce5875df10c838fccedb)) +* **bower.json:** fixes bower.json ([eed3cc4d](https://github.com/angular-ui/ui-router/commit/eed3cc4d4dfef1d3ef84b9fd063127538ebf59d3)) +* **uiSrefActive:** annotate controller injection ([85921422](https://github.com/angular-ui/ui-router/commit/85921422ff7fb0effed358136426d616cce3d583), closes [#671](https://github.com/angular-ui/ui-router/issues/671)) +* **uiView:** + * autoscroll tests pass on 1.2.4 & 1.1.5 ([86eacac0](https://github.com/angular-ui/ui-router/commit/86eacac09ca5e9000bd3b9c7ba6e2cc95d883a3a)) + * don't animate initial load ([83b6634d](https://github.com/angular-ui/ui-router/commit/83b6634d27942ca74766b2b1244a7fc52c5643d9)) + * test pass against 1.0.8 and 1.2.4 ([a402415a](https://github.com/angular-ui/ui-router/commit/a402415a2a28b360c43b9fe8f4f54c540f6c33de)) + * it should autoscroll when expr is missing. ([8bb9e27a](https://github.com/angular-ui/ui-router/commit/8bb9e27a2986725f45daf44c4c9f846385095aff)) + + +#### Features + +* **uiSref:** add target attribute behaviour ([c12bf9a5](https://github.com/angular-ui/ui-router/commit/c12bf9a520d30d70294e3d82de7661900f8e394e)) +* **uiView:** + * merge autoscroll expression test. ([b89e0f87](https://github.com/angular-ui/ui-router/commit/b89e0f871d5cc35c10925ede986c10684d5c9252)) + * cache and test autoscroll expression ([ee262282](https://github.com/angular-ui/ui-router/commit/ee2622828c2ce83807f006a459ac4e11406d9258)) diff --git a/app/bower_components/angular-ui-router/CONTRIBUTING.md b/app/bower_components/angular-ui-router/CONTRIBUTING.md new file mode 100644 index 0000000..7e4fcb8 --- /dev/null +++ b/app/bower_components/angular-ui-router/CONTRIBUTING.md @@ -0,0 +1,65 @@ + +# Report an Issue + +Help us make UI-Router better! If you think you might have found a bug, or some other weirdness, start by making sure +it hasn't already been reported. You can [search through existing issues](https://github.com/angular-ui/ui-router/search?q=wat%3F&type=Issues) +to see if someone's reported one similar to yours. + +If not, then [create a plunkr](http://bit.ly/UIR-Plunk) that demonstrates the problem (try to use as little code +as possible: the more minimalist, the faster we can debug it). + +Next, [create a new issue](https://github.com/angular-ui/ui-router/issues/new) that briefly explains the problem, +and provides a bit of background as to the circumstances that triggered it. Don't forget to include the link to +that plunkr you created! + +**Note**: If you're unsure how a feature is used, or are encountering some unexpected behavior that you aren't sure +is a bug, it's best to talk it out on +[StackOverflow](http://stackoverflow.com/questions/ask?tags=angularjs,angular-ui-router) before reporting it. This +keeps development streamlined, and helps us focus on building great software. + + +Issues only! | +-------------| +Please keep in mind that the issue tracker is for *issues*. Please do *not* post an issue if you need help or support. Instead, see one of the above-mentioned forums or [IRC](irc://irc.freenode.net/#angularjs). | + +####Purple Labels +A purple label means that **you** need to take some further action. + - ![Not Actionable - Need Info](ngdoc_assets/incomplete.png): Your issue is not specific enough, or there is no clear action that we can take. Please clarify and refine your issue. + - ![Plunkr Please](ngdoc_assets/example.png): Please [create a plunkr](http://bit.ly/UIR-Plunk) + - ![StackOverflow](ngdoc_assets/so.png): We suspect your issue is really a help request, or could be answered by the community. Please ask your question on [StackOverflow](http://stackoverflow.com/questions/ask?tags=angularjs,angular-ui-router). If you determine that is an actual issue, please explain why. + +If your issue gets labeled with purple label, no further action will be taken until you respond to the label appropriately. + +# Contribute + +**(1)** See the **[Developing](#developing)** section below, to get the development version of UI-Router up and running on your local machine. + +**(2)** Check out the [roadmap](https://github.com/angular-ui/ui-router/milestones) to see where the project is headed, and if your feature idea fits with where we're headed. + +**(3)** If you're not sure, [open an RFC](https://github.com/angular-ui/ui-router/issues/new?title=RFC:%20My%20idea) to get some feedback on your idea. + +**(4)** Finally, commit some code and open a pull request. Code & commits should abide by the following rules: + +- *Always* have test coverage for new features (or regression tests for bug fixes), and *never* break existing tests +- Commits should represent one logical change each; if a feature goes through multiple iterations, squash your commits down to one +- Make sure to follow the [Angular commit message format](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format) so your change will appear in the changelog of the next release. +- Changes should always respect the coding style of the project + + + +# Developing + +UI-Router uses grunt >= 0.4.x. Make sure to upgrade your environment and read the +[Migration Guide](http://gruntjs.com/upgrading-from-0.3-to-0.4). + +Dependencies for building from source and running tests: + +* [grunt-cli](https://github.com/gruntjs/grunt-cli) - run: `$ npm install -g grunt-cli` +* Then, install the development dependencies by running `$ npm install` from the project directory + +There are a number of targets in the gruntfile that are used to generating different builds: + +* `grunt`: Perform a normal build, runs jshint and karma tests +* `grunt build`: Perform a normal build +* `grunt dist`: Perform a clean build and generate documentation +* `grunt dev`: Run dev server (sample app) and watch for changes, builds and runs karma tests on changes. diff --git a/app/bower_components/angular-ui-router/LICENSE b/app/bower_components/angular-ui-router/LICENSE new file mode 100644 index 0000000..6413b09 --- /dev/null +++ b/app/bower_components/angular-ui-router/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2013-2015 The AngularUI Team, Karsten Sperling + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/app/bower_components/angular-ui-router/README.md b/app/bower_components/angular-ui-router/README.md new file mode 100644 index 0000000..4cac80c --- /dev/null +++ b/app/bower_components/angular-ui-router/README.md @@ -0,0 +1,252 @@ +# AngularUI Router  [![Build Status](https://travis-ci.org/angular-ui/ui-router.svg?branch=master)](https://travis-ci.org/angular-ui/ui-router) + +#### The de-facto solution to flexible routing with nested views +--- +**[Download 0.2.18](https://cdn.rawgit.com/angular-ui/ui-router/0.2.18/release/angular-ui-router.js)** (or **[Minified](https://cdn.rawgit.com/angular-ui/ui-router/0.2.18/release/angular-ui-router.min.js)**) **|** +**[Guide](https://github.com/angular-ui/ui-router/wiki) |** +**[API](http://angular-ui.github.io/ui-router/site) |** +**[Sample](http://angular-ui.github.com/ui-router/sample/) ([Src](https://github.com/angular-ui/ui-router/tree/gh-pages/sample)) |** +**[FAQ](https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions) |** +**[Resources](#resources) |** +**[Report an Issue](https://github.com/angular-ui/ui-router/blob/master/CONTRIBUTING.md#report-an-issue) |** +**[Contribute](https://github.com/angular-ui/ui-router/blob/master/CONTRIBUTING.md#contribute) |** +**[Help!](http://stackoverflow.com/questions/ask?tags=angularjs,angular-ui-router) |** +**[Discuss](https://groups.google.com/forum/#!categories/angular-ui/router)** + +--- + +*_Please help us out by testing the 1.0 alpha release!_* + +[1.0.0alpha0 Announcement](https://github.com/angular-ui/ui-router/releases/tag/1.0.0alpha0) ([Source Code](https://github.com/angular-ui/ui-router/tree/master)) | [Sample App](http://ui-router.github.io/sample-app/) ([Source Code](https://github.com/ui-router/sample-app)) | [Known Issues](https://github.com/angular-ui/ui-router/issues?q=is%3Aissue+is%3Aopen+label%3A1.0) + + +--- + +AngularUI Router is a routing framework for [AngularJS](http://angularjs.org), which allows you to organize the +parts of your interface into a [*state machine*](https://en.wikipedia.org/wiki/Finite-state_machine). Unlike the +[`$route` service](http://docs.angularjs.org/api/ngRoute.$route) in the Angular ngRoute module, which is organized around URL +routes, UI-Router is organized around [*states*](https://github.com/angular-ui/ui-router/wiki), +which may optionally have routes, as well as other behavior, attached. + +States are bound to *named*, *nested* and *parallel views*, allowing you to powerfully manage your application's interface. + +Check out the sample app: http://angular-ui.github.io/ui-router/sample/ + +- +**Note:** *UI-Router is under active development. As such, while this library is well-tested, the API may change. Consider using it in production applications only if you're comfortable following a changelog and updating your usage accordingly.* + + +## Get Started + +**(1)** Get UI-Router in one of the following ways: + - clone & [build](CONTRIBUTING.md#developing) this repository + - [download the release](http://angular-ui.github.io/ui-router/release/angular-ui-router.js) (or [minified](http://angular-ui.github.io/ui-router/release/angular-ui-router.min.js)) + - [link to cdn](http://cdnjs.com/libraries/angular-ui-router) + - via **[jspm](http://jspm.io/)**: by running `$ jspm install angular-ui-router` from your console + - or via **[npm](https://www.npmjs.org/)**: by running `$ npm install angular-ui-router` from your console + - or via **[Bower](http://bower.io/)**: by running `$ bower install angular-ui-router` from your console + - or via **[Component](https://github.com/component/component)**: by running `$ component install angular-ui/ui-router` from your console + +**(2)** Include `angular-ui-router.js` (or `angular-ui-router.min.js`) in your `index.html`, after including Angular itself (For Component users: ignore this step) + +**(3)** Add `'ui.router'` to your main module's list of dependencies (For Component users: replace `'ui.router'` with `require('angular-ui-router')`) + +When you're done, your setup should look similar to the following: + +> +```html + + + + + + + ... + + + ... + + +``` + +### [Nested States & Views](http://plnkr.co/edit/u18KQc?p=preview) + +The majority of UI-Router's power is in its ability to nest states & views. + +**(1)** First, follow the [setup](#get-started) instructions detailed above. + +**(2)** Then, add a [`ui-view` directive](https://github.com/angular-ui/ui-router/wiki/Quick-Reference#ui-view) to the `` of your app. + +> +```html + + +
+ + State 1 + State 2 + +``` + +**(3)** You'll notice we also added some links with [`ui-sref` directives](https://github.com/angular-ui/ui-router/wiki/Quick-Reference#ui-sref). In addition to managing state transitions, this directive auto-generates the `href` attribute of the `` element it's attached to, if the corresponding state has a URL. Next we'll add some templates. These will plug into the `ui-view` within `index.html`. Notice that they have their own `ui-view` as well! That is the key to nesting states and views. + +> +```html + +

State 1

+
+
Show List +
+``` +```html + +

State 2

+
+Show List +
+``` + +**(4)** Next, we'll add some child templates. *These* will get plugged into the `ui-view` of their parent state templates. + +> +```html + +

List of State 1 Items

+
    +
  • {{ item }}
  • +
+``` + +> +```html + +

List of State 2 Things

+
    +
  • {{ thing }}
  • +
+``` + +**(5)** Finally, we'll wire it all up with `$stateProvider`. Set up your states in the module config, as in the following: + + +> +```javascript +myApp.config(function($stateProvider, $urlRouterProvider) { + // + // For any unmatched url, redirect to /state1 + $urlRouterProvider.otherwise("/state1"); + // + // Now set up the states + $stateProvider + .state('state1', { + url: "/state1", + templateUrl: "partials/state1.html" + }) + .state('state1.list', { + url: "/list", + templateUrl: "partials/state1.list.html", + controller: function($scope) { + $scope.items = ["A", "List", "Of", "Items"]; + } + }) + .state('state2', { + url: "/state2", + templateUrl: "partials/state2.html" + }) + .state('state2.list', { + url: "/list", + templateUrl: "partials/state2.list.html", + controller: function($scope) { + $scope.things = ["A", "Set", "Of", "Things"]; + } + }); +}); +``` + +**(6)** See this quick start example in action. +>**[Go to Quick Start Plunker for Nested States & Views](http://plnkr.co/edit/u18KQc?p=preview)** + +**(7)** This only scratches the surface +>**[Dive Deeper!](https://github.com/angular-ui/ui-router/wiki)** + + +### [Multiple & Named Views](http://plnkr.co/edit/SDOcGS?p=preview) + +Another great feature is the ability to have multiple `ui-view`s view per template. + +**Pro Tip:** *While multiple parallel views are a powerful feature, you'll often be able to manage your +interfaces more effectively by nesting your views, and pairing those views with nested states.* + +**(1)** Follow the [setup](#get-started) instructions detailed above. + +**(2)** Add one or more `ui-view` to your app, give them names. +> +```html + + +
+
+ + Route 1 + Route 2 + +``` + +**(3)** Set up your states in the module config: +> +```javascript +myApp.config(function($stateProvider) { + $stateProvider + .state('index', { + url: "", + views: { + "viewA": { template: "index.viewA" }, + "viewB": { template: "index.viewB" } + } + }) + .state('route1', { + url: "/route1", + views: { + "viewA": { template: "route1.viewA" }, + "viewB": { template: "route1.viewB" } + } + }) + .state('route2', { + url: "/route2", + views: { + "viewA": { template: "route2.viewA" }, + "viewB": { template: "route2.viewB" } + } + }) +}); +``` + +**(4)** See this quick start example in action. +>**[Go to Quick Start Plunker for Multiple & Named Views](http://plnkr.co/edit/SDOcGS?p=preview)** + + +## Resources + +* [In-Depth Guide](https://github.com/angular-ui/ui-router/wiki) +* [API Reference](http://angular-ui.github.io/ui-router/site) +* [Sample App](http://angular-ui.github.com/ui-router/sample/) ([Source](https://github.com/angular-ui/ui-router/tree/gh-pages/sample)) +* [FAQ](https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions) +* [Slides comparing ngRoute to ui-router](http://slid.es/timkindberg/ui-router#/) +* [UI-Router Extras / Addons](http://christopherthielen.github.io/ui-router-extras/#/home) (@christopherthielen) + +### Videos + +* [Introduction Video](https://egghead.io/lessons/angularjs-introduction-ui-router) (egghead.io) +* [Tim Kindberg on Angular UI-Router](https://www.youtube.com/watch?v=lBqiZSemrqg) +* [Activating States](https://egghead.io/lessons/angularjs-ui-router-activating-states) (egghead.io) +* [Learn Angular.js using UI-Router](http://youtu.be/QETUuZ27N0w) (LearnCode.academy) + + + +## Reporting issues and Contributing + +Please read our [Contributor guidelines](CONTRIBUTING.md) before reporting an issue or creating a pull request. diff --git a/app/bower_components/angular-ui-router/bower.json b/app/bower_components/angular-ui-router/bower.json new file mode 100644 index 0000000..44313ab --- /dev/null +++ b/app/bower_components/angular-ui-router/bower.json @@ -0,0 +1,24 @@ +{ + "name": "angular-ui-router", + "version": "0.3.0", + "license" : "MIT", + "main": "./release/angular-ui-router.js", + "dependencies": { + "angular": "^1.0.8" + }, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "component.json", + "package.json", + "lib", + "config", + "sample", + "test", + "tests", + "ngdoc_assets", + "Gruntfile.js", + "files.js" + ] +} diff --git a/app/bower_components/angular-ui-router/src/common.js b/app/bower_components/angular-ui-router/src/common.js new file mode 100644 index 0000000..54c724c --- /dev/null +++ b/app/bower_components/angular-ui-router/src/common.js @@ -0,0 +1,293 @@ +/*jshint globalstrict:true*/ +/*global angular:false*/ +'use strict'; + +var isDefined = angular.isDefined, + isFunction = angular.isFunction, + isString = angular.isString, + isObject = angular.isObject, + isArray = angular.isArray, + forEach = angular.forEach, + extend = angular.extend, + copy = angular.copy, + toJson = angular.toJson; + +function inherit(parent, extra) { + return extend(new (extend(function() {}, { prototype: parent }))(), extra); +} + +function merge(dst) { + forEach(arguments, function(obj) { + if (obj !== dst) { + forEach(obj, function(value, key) { + if (!dst.hasOwnProperty(key)) dst[key] = value; + }); + } + }); + return dst; +} + +/** + * Finds the common ancestor path between two states. + * + * @param {Object} first The first state. + * @param {Object} second The second state. + * @return {Array} Returns an array of state names in descending order, not including the root. + */ +function ancestors(first, second) { + var path = []; + + for (var n in first.path) { + if (first.path[n] !== second.path[n]) break; + path.push(first.path[n]); + } + return path; +} + +/** + * IE8-safe wrapper for `Object.keys()`. + * + * @param {Object} object A JavaScript object. + * @return {Array} Returns the keys of the object as an array. + */ +function objectKeys(object) { + if (Object.keys) { + return Object.keys(object); + } + var result = []; + + forEach(object, function(val, key) { + result.push(key); + }); + return result; +} + +/** + * IE8-safe wrapper for `Array.prototype.indexOf()`. + * + * @param {Array} array A JavaScript array. + * @param {*} value A value to search the array for. + * @return {Number} Returns the array index value of `value`, or `-1` if not present. + */ +function indexOf(array, value) { + if (Array.prototype.indexOf) { + return array.indexOf(value, Number(arguments[2]) || 0); + } + var len = array.length >>> 0, from = Number(arguments[2]) || 0; + from = (from < 0) ? Math.ceil(from) : Math.floor(from); + + if (from < 0) from += len; + + for (; from < len; from++) { + if (from in array && array[from] === value) return from; + } + return -1; +} + +/** + * Merges a set of parameters with all parameters inherited between the common parents of the + * current state and a given destination state. + * + * @param {Object} currentParams The value of the current state parameters ($stateParams). + * @param {Object} newParams The set of parameters which will be composited with inherited params. + * @param {Object} $current Internal definition of object representing the current state. + * @param {Object} $to Internal definition of object representing state to transition to. + */ +function inheritParams(currentParams, newParams, $current, $to) { + var parents = ancestors($current, $to), parentParams, inherited = {}, inheritList = []; + + for (var i in parents) { + if (!parents[i] || !parents[i].params) continue; + parentParams = objectKeys(parents[i].params); + if (!parentParams.length) continue; + + for (var j in parentParams) { + if (indexOf(inheritList, parentParams[j]) >= 0) continue; + inheritList.push(parentParams[j]); + inherited[parentParams[j]] = currentParams[parentParams[j]]; + } + } + return extend({}, inherited, newParams); +} + +/** + * Performs a non-strict comparison of the subset of two objects, defined by a list of keys. + * + * @param {Object} a The first object. + * @param {Object} b The second object. + * @param {Array} keys The list of keys within each object to compare. If the list is empty or not specified, + * it defaults to the list of keys in `a`. + * @return {Boolean} Returns `true` if the keys match, otherwise `false`. + */ +function equalForKeys(a, b, keys) { + if (!keys) { + keys = []; + for (var n in a) keys.push(n); // Used instead of Object.keys() for IE8 compatibility + } + + for (var i=0; i + * + * + * + * + * + * + * + * + * + * + * + * + */ +angular.module('ui.router', ['ui.router.state']); + +angular.module('ui.router.compat', ['ui.router']); diff --git a/app/bower_components/angular-ui-router/src/resolve.js b/app/bower_components/angular-ui-router/src/resolve.js new file mode 100644 index 0000000..019338d --- /dev/null +++ b/app/bower_components/angular-ui-router/src/resolve.js @@ -0,0 +1,252 @@ +/** + * @ngdoc object + * @name ui.router.util.$resolve + * + * @requires $q + * @requires $injector + * + * @description + * Manages resolution of (acyclic) graphs of promises. + */ +$Resolve.$inject = ['$q', '$injector']; +function $Resolve( $q, $injector) { + + var VISIT_IN_PROGRESS = 1, + VISIT_DONE = 2, + NOTHING = {}, + NO_DEPENDENCIES = [], + NO_LOCALS = NOTHING, + NO_PARENT = extend($q.when(NOTHING), { $$promises: NOTHING, $$values: NOTHING }); + + + /** + * @ngdoc function + * @name ui.router.util.$resolve#study + * @methodOf ui.router.util.$resolve + * + * @description + * Studies a set of invocables that are likely to be used multiple times. + *
+   * $resolve.study(invocables)(locals, parent, self)
+   * 
+ * is equivalent to + *
+   * $resolve.resolve(invocables, locals, parent, self)
+   * 
+ * but the former is more efficient (in fact `resolve` just calls `study` + * internally). + * + * @param {object} invocables Invocable objects + * @return {function} a function to pass in locals, parent and self + */ + this.study = function (invocables) { + if (!isObject(invocables)) throw new Error("'invocables' must be an object"); + var invocableKeys = objectKeys(invocables || {}); + + // Perform a topological sort of invocables to build an ordered plan + var plan = [], cycle = [], visited = {}; + function visit(value, key) { + if (visited[key] === VISIT_DONE) return; + + cycle.push(key); + if (visited[key] === VISIT_IN_PROGRESS) { + cycle.splice(0, indexOf(cycle, key)); + throw new Error("Cyclic dependency: " + cycle.join(" -> ")); + } + visited[key] = VISIT_IN_PROGRESS; + + if (isString(value)) { + plan.push(key, [ function() { return $injector.get(value); }], NO_DEPENDENCIES); + } else { + var params = $injector.annotate(value); + forEach(params, function (param) { + if (param !== key && invocables.hasOwnProperty(param)) visit(invocables[param], param); + }); + plan.push(key, value, params); + } + + cycle.pop(); + visited[key] = VISIT_DONE; + } + forEach(invocables, visit); + invocables = cycle = visited = null; // plan is all that's required + + function isResolve(value) { + return isObject(value) && value.then && value.$$promises; + } + + return function (locals, parent, self) { + if (isResolve(locals) && self === undefined) { + self = parent; parent = locals; locals = null; + } + if (!locals) locals = NO_LOCALS; + else if (!isObject(locals)) { + throw new Error("'locals' must be an object"); + } + if (!parent) parent = NO_PARENT; + else if (!isResolve(parent)) { + throw new Error("'parent' must be a promise returned by $resolve.resolve()"); + } + + // To complete the overall resolution, we have to wait for the parent + // promise and for the promise for each invokable in our plan. + var resolution = $q.defer(), + result = resolution.promise, + promises = result.$$promises = {}, + values = extend({}, locals), + wait = 1 + plan.length/3, + merged = false; + + function done() { + // Merge parent values we haven't got yet and publish our own $$values + if (!--wait) { + if (!merged) merge(values, parent.$$values); + result.$$values = values; + result.$$promises = result.$$promises || true; // keep for isResolve() + delete result.$$inheritedValues; + resolution.resolve(values); + } + } + + function fail(reason) { + result.$$failure = reason; + resolution.reject(reason); + } + + // Short-circuit if parent has already failed + if (isDefined(parent.$$failure)) { + fail(parent.$$failure); + return result; + } + + if (parent.$$inheritedValues) { + merge(values, omit(parent.$$inheritedValues, invocableKeys)); + } + + // Merge parent values if the parent has already resolved, or merge + // parent promises and wait if the parent resolve is still in progress. + extend(promises, parent.$$promises); + if (parent.$$values) { + merged = merge(values, omit(parent.$$values, invocableKeys)); + result.$$inheritedValues = omit(parent.$$values, invocableKeys); + done(); + } else { + if (parent.$$inheritedValues) { + result.$$inheritedValues = omit(parent.$$inheritedValues, invocableKeys); + } + parent.then(done, fail); + } + + // Process each invocable in the plan, but ignore any where a local of the same name exists. + for (var i=0, ii=plan.length; i= 0) throw new Error("State must have a valid name"); + if (states.hasOwnProperty(name)) throw new Error("State '" + name + "' is already defined"); + + // Get parent name + var parentName = (name.indexOf('.') !== -1) ? name.substring(0, name.lastIndexOf('.')) + : (isString(state.parent)) ? state.parent + : (isObject(state.parent) && isString(state.parent.name)) ? state.parent.name + : ''; + + // If parent is not registered yet, add state to queue and register later + if (parentName && !states[parentName]) { + return queueState(parentName, state.self); + } + + for (var key in stateBuilder) { + if (isFunction(stateBuilder[key])) state[key] = stateBuilder[key](state, stateBuilder.$delegates[key]); + } + states[name] = state; + + // Register the state in the global state list and with $urlRouter if necessary. + if (!state[abstractKey] && state.url) { + $urlRouterProvider.when(state.url, ['$match', '$stateParams', function ($match, $stateParams) { + if ($state.$current.navigable != state || !equalForKeys($match, $stateParams)) { + $state.transitionTo(state, $match, { inherit: true, location: false }); + } + }]); + } + + // Register any queued children + flushQueuedChildren(name); + + return state; + } + + // Checks text to see if it looks like a glob. + function isGlob (text) { + return text.indexOf('*') > -1; + } + + // Returns true if glob matches current $state name. + function doesStateMatchGlob (glob) { + var globSegments = glob.split('.'), + segments = $state.$current.name.split('.'); + + //match single stars + for (var i = 0, l = globSegments.length; i < l; i++) { + if (globSegments[i] === '*') { + segments[i] = '*'; + } + } + + //match greedy starts + if (globSegments[0] === '**') { + segments = segments.slice(indexOf(segments, globSegments[1])); + segments.unshift('**'); + } + //match greedy ends + if (globSegments[globSegments.length - 1] === '**') { + segments.splice(indexOf(segments, globSegments[globSegments.length - 2]) + 1, Number.MAX_VALUE); + segments.push('**'); + } + + if (globSegments.length != segments.length) { + return false; + } + + return segments.join('') === globSegments.join(''); + } + + + // Implicit root state that is always active + root = registerState({ + name: '', + url: '^', + views: null, + 'abstract': true + }); + root.navigable = null; + + + /** + * @ngdoc function + * @name ui.router.state.$stateProvider#decorator + * @methodOf ui.router.state.$stateProvider + * + * @description + * Allows you to extend (carefully) or override (at your own peril) the + * `stateBuilder` object used internally by `$stateProvider`. This can be used + * to add custom functionality to ui-router, for example inferring templateUrl + * based on the state name. + * + * When passing only a name, it returns the current (original or decorated) builder + * function that matches `name`. + * + * The builder functions that can be decorated are listed below. Though not all + * necessarily have a good use case for decoration, that is up to you to decide. + * + * In addition, users can attach custom decorators, which will generate new + * properties within the state's internal definition. There is currently no clear + * use-case for this beyond accessing internal states (i.e. $state.$current), + * however, expect this to become increasingly relevant as we introduce additional + * meta-programming features. + * + * **Warning**: Decorators should not be interdependent because the order of + * execution of the builder functions in non-deterministic. Builder functions + * should only be dependent on the state definition object and super function. + * + * + * Existing builder functions and current return values: + * + * - **parent** `{object}` - returns the parent state object. + * - **data** `{object}` - returns state data, including any inherited data that is not + * overridden by own values (if any). + * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher} + * or `null`. + * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is + * navigable). + * - **params** `{object}` - returns an array of state params that are ensured to + * be a super-set of parent's params. + * - **views** `{object}` - returns a views object where each key is an absolute view + * name (i.e. "viewName@stateName") and each value is the config object + * (template, controller) for the view. Even when you don't use the views object + * explicitly on a state config, one is still created for you internally. + * So by decorating this builder function you have access to decorating template + * and controller properties. + * - **ownParams** `{object}` - returns an array of params that belong to the state, + * not including any params defined by ancestor states. + * - **path** `{string}` - returns the full path from the root down to this state. + * Needed for state activation. + * - **includes** `{object}` - returns an object that includes every state that + * would pass a `$state.includes()` test. + * + * @example + *
+   * // Override the internal 'views' builder with a function that takes the state
+   * // definition, and a reference to the internal function being overridden:
+   * $stateProvider.decorator('views', function (state, parent) {
+   *   var result = {},
+   *       views = parent(state);
+   *
+   *   angular.forEach(views, function (config, name) {
+   *     var autoName = (state.name + '.' + name).replace('.', '/');
+   *     config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';
+   *     result[name] = config;
+   *   });
+   *   return result;
+   * });
+   *
+   * $stateProvider.state('home', {
+   *   views: {
+   *     'contact.list': { controller: 'ListController' },
+   *     'contact.item': { controller: 'ItemController' }
+   *   }
+   * });
+   *
+   * // ...
+   *
+   * $state.go('home');
+   * // Auto-populates list and item views with /partials/home/contact/list.html,
+   * // and /partials/home/contact/item.html, respectively.
+   * 
+ * + * @param {string} name The name of the builder function to decorate. + * @param {object} func A function that is responsible for decorating the original + * builder function. The function receives two parameters: + * + * - `{object}` - state - The state config object. + * - `{object}` - super - The original builder function. + * + * @return {object} $stateProvider - $stateProvider instance + */ + this.decorator = decorator; + function decorator(name, func) { + /*jshint validthis: true */ + if (isString(name) && !isDefined(func)) { + return stateBuilder[name]; + } + if (!isFunction(func) || !isString(name)) { + return this; + } + if (stateBuilder[name] && !stateBuilder.$delegates[name]) { + stateBuilder.$delegates[name] = stateBuilder[name]; + } + stateBuilder[name] = func; + return this; + } + + /** + * @ngdoc function + * @name ui.router.state.$stateProvider#state + * @methodOf ui.router.state.$stateProvider + * + * @description + * Registers a state configuration under a given state name. The stateConfig object + * has the following acceptable properties. + * + * @param {string} name A unique state name, e.g. "home", "about", "contacts". + * To create a parent/child state use a dot, e.g. "about.sales", "home.newest". + * @param {object} stateConfig State configuration object. + * @param {string|function=} stateConfig.template + * + * html template as a string or a function that returns + * an html template as a string which should be used by the uiView directives. This property + * takes precedence over templateUrl. + * + * If `template` is a function, it will be called with the following parameters: + * + * - {array.<object>} - state parameters extracted from the current $location.path() by + * applying the current state + * + *
template:
+   *   "

inline template definition

" + + * "
"
+ *
template: function(params) {
+   *       return "

generated template

"; }
+ * + * + * @param {string|function=} stateConfig.templateUrl + * + * + * path or function that returns a path to an html + * template that should be used by uiView. + * + * If `templateUrl` is a function, it will be called with the following parameters: + * + * - {array.<object>} - state parameters extracted from the current $location.path() by + * applying the current state + * + *
templateUrl: "home.html"
+ *
templateUrl: function(params) {
+   *     return myTemplates[params.pageId]; }
+ * + * @param {function=} stateConfig.templateProvider + * + * Provider function that returns HTML content string. + *
 templateProvider:
+   *       function(MyTemplateService, params) {
+   *         return MyTemplateService.getTemplate(params.pageId);
+   *       }
+ * + * @param {string|function=} stateConfig.controller + * + * + * Controller fn that should be associated with newly + * related scope or the name of a registered controller if passed as a string. + * Optionally, the ControllerAs may be declared here. + *
controller: "MyRegisteredController"
+ *
controller:
+   *     "MyRegisteredController as fooCtrl"}
+ *
controller: function($scope, MyService) {
+   *     $scope.data = MyService.getData(); }
+ * + * @param {function=} stateConfig.controllerProvider + * + * + * Injectable provider function that returns the actual controller or string. + *
controllerProvider:
+   *   function(MyResolveData) {
+   *     if (MyResolveData.foo)
+   *       return "FooCtrl"
+   *     else if (MyResolveData.bar)
+   *       return "BarCtrl";
+   *     else return function($scope) {
+   *       $scope.baz = "Qux";
+   *     }
+   *   }
+ * + * @param {string=} stateConfig.controllerAs + * + * + * A controller alias name. If present the controller will be + * published to scope under the controllerAs name. + *
controllerAs: "myCtrl"
+ * + * @param {string|object=} stateConfig.parent + * + * Optionally specifies the parent state of this state. + * + *
parent: 'parentState'
+ *
parent: parentState // JS variable
+ * + * @param {object=} stateConfig.resolve + * + * + * An optional map<string, function> of dependencies which + * should be injected into the controller. If any of these dependencies are promises, + * the router will wait for them all to be resolved before the controller is instantiated. + * If all the promises are resolved successfully, the $stateChangeSuccess event is fired + * and the values of the resolved promises are injected into any controllers that reference them. + * If any of the promises are rejected the $stateChangeError event is fired. + * + * The map object is: + * + * - key - {string}: name of dependency to be injected into controller + * - factory - {string|function}: If string then it is alias for service. Otherwise if function, + * it is injected and return value it treated as dependency. If result is a promise, it is + * resolved before its value is injected into controller. + * + *
resolve: {
+   *     myResolve1:
+   *       function($http, $stateParams) {
+   *         return $http.get("/api/foos/"+stateParams.fooID);
+   *       }
+   *     }
+ * + * @param {string=} stateConfig.url + * + * + * A url fragment with optional parameters. When a state is navigated or + * transitioned to, the `$stateParams` service will be populated with any + * parameters that were passed. + * + * (See {@link ui.router.util.type:UrlMatcher UrlMatcher} `UrlMatcher`} for + * more details on acceptable patterns ) + * + * examples: + *
url: "/home"
+   * url: "/users/:userid"
+   * url: "/books/{bookid:[a-zA-Z_-]}"
+   * url: "/books/{categoryid:int}"
+   * url: "/books/{publishername:string}/{categoryid:int}"
+   * url: "/messages?before&after"
+   * url: "/messages?{before:date}&{after:date}"
+   * url: "/messages/:mailboxid?{before:date}&{after:date}"
+   * 
+ * + * @param {object=} stateConfig.views + * + * an optional map<string, object> which defined multiple views, or targets views + * manually/explicitly. + * + * Examples: + * + * Targets three named `ui-view`s in the parent state's template + *
views: {
+   *     header: {
+   *       controller: "headerCtrl",
+   *       templateUrl: "header.html"
+   *     }, body: {
+   *       controller: "bodyCtrl",
+   *       templateUrl: "body.html"
+   *     }, footer: {
+   *       controller: "footCtrl",
+   *       templateUrl: "footer.html"
+   *     }
+   *   }
+ * + * Targets named `ui-view="header"` from grandparent state 'top''s template, and named `ui-view="body" from parent state's template. + *
views: {
+   *     'header@top': {
+   *       controller: "msgHeaderCtrl",
+   *       templateUrl: "msgHeader.html"
+   *     }, 'body': {
+   *       controller: "messagesCtrl",
+   *       templateUrl: "messages.html"
+   *     }
+   *   }
+ * + * @param {boolean=} [stateConfig.abstract=false] + * + * An abstract state will never be directly activated, + * but can provide inherited properties to its common children states. + *
abstract: true
+ * + * @param {function=} stateConfig.onEnter + * + * + * Callback function for when a state is entered. Good way + * to trigger an action or dispatch an event, such as opening a dialog. + * If minifying your scripts, make sure to explicitly annotate this function, + * because it won't be automatically annotated by your build tools. + * + *
onEnter: function(MyService, $stateParams) {
+   *     MyService.foo($stateParams.myParam);
+   * }
+ * + * @param {function=} stateConfig.onExit + * + * + * Callback function for when a state is exited. Good way to + * trigger an action or dispatch an event, such as opening a dialog. + * If minifying your scripts, make sure to explicitly annotate this function, + * because it won't be automatically annotated by your build tools. + * + *
onExit: function(MyService, $stateParams) {
+   *     MyService.cleanup($stateParams.myParam);
+   * }
+ * + * @param {boolean=} [stateConfig.reloadOnSearch=true] + * + * + * If `false`, will not retrigger the same state + * just because a search/query parameter has changed (via $location.search() or $location.hash()). + * Useful for when you'd like to modify $location.search() without triggering a reload. + *
reloadOnSearch: false
+ * + * @param {object=} stateConfig.data + * + * + * Arbitrary data object, useful for custom configuration. The parent state's `data` is + * prototypally inherited. In other words, adding a data property to a state adds it to + * the entire subtree via prototypal inheritance. + * + *
data: {
+   *     requiredRole: 'foo'
+   * } 
+ * + * @param {object=} stateConfig.params + * + * + * A map which optionally configures parameters declared in the `url`, or + * defines additional non-url parameters. For each parameter being + * configured, add a configuration object keyed to the name of the parameter. + * + * Each parameter configuration object may contain the following properties: + * + * - ** value ** - {object|function=}: specifies the default value for this + * parameter. This implicitly sets this parameter as optional. + * + * When UI-Router routes to a state and no value is + * specified for this parameter in the URL or transition, the + * default value will be used instead. If `value` is a function, + * it will be injected and invoked, and the return value used. + * + * *Note*: `undefined` is treated as "no default value" while `null` + * is treated as "the default value is `null`". + * + * *Shorthand*: If you only need to configure the default value of the + * parameter, you may use a shorthand syntax. In the **`params`** + * map, instead mapping the param name to a full parameter configuration + * object, simply set map it to the default parameter value, e.g.: + * + *
// define a parameter's default value
+   * params: {
+   *     param1: { value: "defaultValue" }
+   * }
+   * // shorthand default values
+   * params: {
+   *     param1: "defaultValue",
+   *     param2: "param2Default"
+   * }
+ * + * - ** array ** - {boolean=}: *(default: false)* If true, the param value will be + * treated as an array of values. If you specified a Type, the value will be + * treated as an array of the specified Type. Note: query parameter values + * default to a special `"auto"` mode. + * + * For query parameters in `"auto"` mode, if multiple values for a single parameter + * are present in the URL (e.g.: `/foo?bar=1&bar=2&bar=3`) then the values + * are mapped to an array (e.g.: `{ foo: [ '1', '2', '3' ] }`). However, if + * only one value is present (e.g.: `/foo?bar=1`) then the value is treated as single + * value (e.g.: `{ foo: '1' }`). + * + *
params: {
+   *     param1: { array: true }
+   * }
+ * + * - ** squash ** - {bool|string=}: `squash` configures how a default parameter value is represented in the URL when + * the current parameter value is the same as the default value. If `squash` is not set, it uses the + * configured default squash policy. + * (See {@link ui.router.util.$urlMatcherFactory#methods_defaultSquashPolicy `defaultSquashPolicy()`}) + * + * There are three squash settings: + * + * - false: The parameter's default value is not squashed. It is encoded and included in the URL + * - true: The parameter's default value is omitted from the URL. If the parameter is preceeded and followed + * by slashes in the state's `url` declaration, then one of those slashes are omitted. + * This can allow for cleaner looking URLs. + * - `""`: The parameter's default value is replaced with an arbitrary placeholder of your choice. + * + *
params: {
+   *     param1: {
+   *       value: "defaultId",
+   *       squash: true
+   * } }
+   * // squash "defaultValue" to "~"
+   * params: {
+   *     param1: {
+   *       value: "defaultValue",
+   *       squash: "~"
+   * } }
+   * 
+ * + * + * @example + *
+   * // Some state name examples
+   *
+   * // stateName can be a single top-level name (must be unique).
+   * $stateProvider.state("home", {});
+   *
+   * // Or it can be a nested state name. This state is a child of the
+   * // above "home" state.
+   * $stateProvider.state("home.newest", {});
+   *
+   * // Nest states as deeply as needed.
+   * $stateProvider.state("home.newest.abc.xyz.inception", {});
+   *
+   * // state() returns $stateProvider, so you can chain state declarations.
+   * $stateProvider
+   *   .state("home", {})
+   *   .state("about", {})
+   *   .state("contacts", {});
+   * 
+ * + */ + this.state = state; + function state(name, definition) { + /*jshint validthis: true */ + if (isObject(name)) definition = name; + else definition.name = name; + registerState(definition); + return this; + } + + /** + * @ngdoc object + * @name ui.router.state.$state + * + * @requires $rootScope + * @requires $q + * @requires ui.router.state.$view + * @requires $injector + * @requires ui.router.util.$resolve + * @requires ui.router.state.$stateParams + * @requires ui.router.router.$urlRouter + * + * @property {object} params A param object, e.g. {sectionId: section.id)}, that + * you'd like to test against the current active state. + * @property {object} current A reference to the state's config object. However + * you passed it in. Useful for accessing custom data. + * @property {object} transition Currently pending transition. A promise that'll + * resolve or reject. + * + * @description + * `$state` service is responsible for representing states as well as transitioning + * between them. It also provides interfaces to ask for current state or even states + * you're coming from. + */ + this.$get = $get; + $get.$inject = ['$rootScope', '$q', '$view', '$injector', '$resolve', '$stateParams', '$urlRouter', '$location', '$urlMatcherFactory']; + function $get( $rootScope, $q, $view, $injector, $resolve, $stateParams, $urlRouter, $location, $urlMatcherFactory) { + + var TransitionSuperseded = $q.reject(new Error('transition superseded')); + var TransitionPrevented = $q.reject(new Error('transition prevented')); + var TransitionAborted = $q.reject(new Error('transition aborted')); + var TransitionFailed = $q.reject(new Error('transition failed')); + + // Handles the case where a state which is the target of a transition is not found, and the user + // can optionally retry or defer the transition + function handleRedirect(redirect, state, params, options) { + /** + * @ngdoc event + * @name ui.router.state.$state#$stateNotFound + * @eventOf ui.router.state.$state + * @eventType broadcast on root scope + * @description + * Fired when a requested state **cannot be found** using the provided state name during transition. + * The event is broadcast allowing any handlers a single chance to deal with the error (usually by + * lazy-loading the unfound state). A special `unfoundState` object is passed to the listener handler, + * you can see its three properties in the example. You can use `event.preventDefault()` to abort the + * transition and the promise returned from `go` will be rejected with a `'transition aborted'` value. + * + * @param {Object} event Event object. + * @param {Object} unfoundState Unfound State information. Contains: `to, toParams, options` properties. + * @param {State} fromState Current state object. + * @param {Object} fromParams Current state params. + * + * @example + * + *
+       * // somewhere, assume lazy.state has not been defined
+       * $state.go("lazy.state", {a:1, b:2}, {inherit:false});
+       *
+       * // somewhere else
+       * $scope.$on('$stateNotFound',
+       * function(event, unfoundState, fromState, fromParams){
+       *     console.log(unfoundState.to); // "lazy.state"
+       *     console.log(unfoundState.toParams); // {a:1, b:2}
+       *     console.log(unfoundState.options); // {inherit:false} + default options
+       * })
+       * 
+ */ + var evt = $rootScope.$broadcast('$stateNotFound', redirect, state, params); + + if (evt.defaultPrevented) { + $urlRouter.update(); + return TransitionAborted; + } + + if (!evt.retry) { + return null; + } + + // Allow the handler to return a promise to defer state lookup retry + if (options.$retry) { + $urlRouter.update(); + return TransitionFailed; + } + var retryTransition = $state.transition = $q.when(evt.retry); + + retryTransition.then(function() { + if (retryTransition !== $state.transition) return TransitionSuperseded; + redirect.options.$retry = true; + return $state.transitionTo(redirect.to, redirect.toParams, redirect.options); + }, function() { + return TransitionAborted; + }); + $urlRouter.update(); + + return retryTransition; + } + + root.locals = { resolve: null, globals: { $stateParams: {} } }; + + $state = { + params: {}, + current: root.self, + $current: root, + transition: null + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#reload + * @methodOf ui.router.state.$state + * + * @description + * A method that force reloads the current state. All resolves are re-resolved, + * controllers reinstantiated, and events re-fired. + * + * @example + *
+     * var app angular.module('app', ['ui.router']);
+     *
+     * app.controller('ctrl', function ($scope, $state) {
+     *   $scope.reload = function(){
+     *     $state.reload();
+     *   }
+     * });
+     * 
+ * + * `reload()` is just an alias for: + *
+     * $state.transitionTo($state.current, $stateParams, { 
+     *   reload: true, inherit: false, notify: true
+     * });
+     * 
+ * + * @param {string=|object=} state - A state name or a state object, which is the root of the resolves to be re-resolved. + * @example + *
+     * //assuming app application consists of 3 states: 'contacts', 'contacts.detail', 'contacts.detail.item' 
+     * //and current state is 'contacts.detail.item'
+     * var app angular.module('app', ['ui.router']);
+     *
+     * app.controller('ctrl', function ($scope, $state) {
+     *   $scope.reload = function(){
+     *     //will reload 'contact.detail' and 'contact.detail.item' states
+     *     $state.reload('contact.detail');
+     *   }
+     * });
+     * 
+ * + * `reload()` is just an alias for: + *
+     * $state.transitionTo($state.current, $stateParams, { 
+     *   reload: true, inherit: false, notify: true
+     * });
+     * 
+ + * @returns {promise} A promise representing the state of the new transition. See + * {@link ui.router.state.$state#methods_go $state.go}. + */ + $state.reload = function reload(state) { + return $state.transitionTo($state.current, $stateParams, { reload: state || true, inherit: false, notify: true}); + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#go + * @methodOf ui.router.state.$state + * + * @description + * Convenience method for transitioning to a new state. `$state.go` calls + * `$state.transitionTo` internally but automatically sets options to + * `{ location: true, inherit: true, relative: $state.$current, notify: true }`. + * This allows you to easily use an absolute or relative to path and specify + * only the parameters you'd like to update (while letting unspecified parameters + * inherit from the currently active ancestor states). + * + * @example + *
+     * var app = angular.module('app', ['ui.router']);
+     *
+     * app.controller('ctrl', function ($scope, $state) {
+     *   $scope.changeState = function () {
+     *     $state.go('contact.detail');
+     *   };
+     * });
+     * 
+ * + * + * @param {string} to Absolute state name or relative state path. Some examples: + * + * - `$state.go('contact.detail')` - will go to the `contact.detail` state + * - `$state.go('^')` - will go to a parent state + * - `$state.go('^.sibling')` - will go to a sibling state + * - `$state.go('.child.grandchild')` - will go to grandchild state + * + * @param {object=} params A map of the parameters that will be sent to the state, + * will populate $stateParams. Any parameters that are not specified will be inherited from currently + * defined parameters. Only parameters specified in the state definition can be overridden, new + * parameters will be ignored. This allows, for example, going to a sibling state that shares parameters + * specified in a parent state. Parameter inheritance only works between common ancestor states, I.e. + * transitioning to a sibling will get you the parameters for all parents, transitioning to a child + * will get you all current parameters, etc. + * @param {object=} options Options object. The options are: + * + * - **`location`** - {boolean=true|string=} - If `true` will update the url in the location bar, if `false` + * will not. If string, must be `"replace"`, which will update url and also replace last history record. + * - **`inherit`** - {boolean=true}, If `true` will inherit url parameters from current url. + * - **`relative`** - {object=$state.$current}, When transitioning with relative path (e.g '^'), + * defines which state to be relative from. + * - **`notify`** - {boolean=true}, If `true` will broadcast $stateChangeStart and $stateChangeSuccess events. + * - **`reload`** (v0.2.5) - {boolean=false|string|object}, If `true` will force transition even if no state or params + * have changed. It will reload the resolves and views of the current state and parent states. + * If `reload` is a string (or state object), the state object is fetched (by name, or object reference); and \ + * the transition reloads the resolves and views for that matched state, and all its children states. + * + * @returns {promise} A promise representing the state of the new transition. + * + * Possible success values: + * + * - $state.current + * + *
Possible rejection values: + * + * - 'transition superseded' - when a newer transition has been started after this one + * - 'transition prevented' - when `event.preventDefault()` has been called in a `$stateChangeStart` listener + * - 'transition aborted' - when `event.preventDefault()` has been called in a `$stateNotFound` listener or + * when a `$stateNotFound` `event.retry` promise errors. + * - 'transition failed' - when a state has been unsuccessfully found after 2 tries. + * - *resolve error* - when an error has occurred with a `resolve` + * + */ + $state.go = function go(to, params, options) { + return $state.transitionTo(to, params, extend({ inherit: true, relative: $state.$current }, options)); + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#transitionTo + * @methodOf ui.router.state.$state + * + * @description + * Low-level method for transitioning to a new state. {@link ui.router.state.$state#methods_go $state.go} + * uses `transitionTo` internally. `$state.go` is recommended in most situations. + * + * @example + *
+     * var app = angular.module('app', ['ui.router']);
+     *
+     * app.controller('ctrl', function ($scope, $state) {
+     *   $scope.changeState = function () {
+     *     $state.transitionTo('contact.detail');
+     *   };
+     * });
+     * 
+ * + * @param {string} to State name. + * @param {object=} toParams A map of the parameters that will be sent to the state, + * will populate $stateParams. + * @param {object=} options Options object. The options are: + * + * - **`location`** - {boolean=true|string=} - If `true` will update the url in the location bar, if `false` + * will not. If string, must be `"replace"`, which will update url and also replace last history record. + * - **`inherit`** - {boolean=false}, If `true` will inherit url parameters from current url. + * - **`relative`** - {object=}, When transitioning with relative path (e.g '^'), + * defines which state to be relative from. + * - **`notify`** - {boolean=true}, If `true` will broadcast $stateChangeStart and $stateChangeSuccess events. + * - **`reload`** (v0.2.5) - {boolean=false|string=|object=}, If `true` will force transition even if the state or params + * have not changed, aka a reload of the same state. It differs from reloadOnSearch because you'd + * use this when you want to force a reload when *everything* is the same, including search params. + * if String, then will reload the state with the name given in reload, and any children. + * if Object, then a stateObj is expected, will reload the state found in stateObj, and any children. + * + * @returns {promise} A promise representing the state of the new transition. See + * {@link ui.router.state.$state#methods_go $state.go}. + */ + $state.transitionTo = function transitionTo(to, toParams, options) { + toParams = toParams || {}; + options = extend({ + location: true, inherit: false, relative: null, notify: true, reload: false, $retry: false + }, options || {}); + + var from = $state.$current, fromParams = $state.params, fromPath = from.path; + var evt, toState = findState(to, options.relative); + + // Store the hash param for later (since it will be stripped out by various methods) + var hash = toParams['#']; + + if (!isDefined(toState)) { + var redirect = { to: to, toParams: toParams, options: options }; + var redirectResult = handleRedirect(redirect, from.self, fromParams, options); + + if (redirectResult) { + return redirectResult; + } + + // Always retry once if the $stateNotFound was not prevented + // (handles either redirect changed or state lazy-definition) + to = redirect.to; + toParams = redirect.toParams; + options = redirect.options; + toState = findState(to, options.relative); + + if (!isDefined(toState)) { + if (!options.relative) throw new Error("No such state '" + to + "'"); + throw new Error("Could not resolve '" + to + "' from state '" + options.relative + "'"); + } + } + if (toState[abstractKey]) throw new Error("Cannot transition to abstract state '" + to + "'"); + if (options.inherit) toParams = inheritParams($stateParams, toParams || {}, $state.$current, toState); + if (!toState.params.$$validates(toParams)) return TransitionFailed; + + toParams = toState.params.$$values(toParams); + to = toState; + + var toPath = to.path; + + // Starting from the root of the path, keep all levels that haven't changed + var keep = 0, state = toPath[keep], locals = root.locals, toLocals = []; + + if (!options.reload) { + while (state && state === fromPath[keep] && state.ownParams.$$equals(toParams, fromParams)) { + locals = toLocals[keep] = state.locals; + keep++; + state = toPath[keep]; + } + } else if (isString(options.reload) || isObject(options.reload)) { + if (isObject(options.reload) && !options.reload.name) { + throw new Error('Invalid reload state object'); + } + + var reloadState = options.reload === true ? fromPath[0] : findState(options.reload); + if (options.reload && !reloadState) { + throw new Error("No such reload state '" + (isString(options.reload) ? options.reload : options.reload.name) + "'"); + } + + while (state && state === fromPath[keep] && state !== reloadState) { + locals = toLocals[keep] = state.locals; + keep++; + state = toPath[keep]; + } + } + + // If we're going to the same state and all locals are kept, we've got nothing to do. + // But clear 'transition', as we still want to cancel any other pending transitions. + // TODO: We may not want to bump 'transition' if we're called from a location change + // that we've initiated ourselves, because we might accidentally abort a legitimate + // transition initiated from code? + if (shouldSkipReload(to, toParams, from, fromParams, locals, options)) { + if (hash) toParams['#'] = hash; + $state.params = toParams; + copy($state.params, $stateParams); + copy(filterByKeys(to.params.$$keys(), $stateParams), to.locals.globals.$stateParams); + if (options.location && to.navigable && to.navigable.url) { + $urlRouter.push(to.navigable.url, toParams, { + $$avoidResync: true, replace: options.location === 'replace' + }); + $urlRouter.update(true); + } + $state.transition = null; + return $q.when($state.current); + } + + // Filter parameters before we pass them to event handlers etc. + toParams = filterByKeys(to.params.$$keys(), toParams || {}); + + // Re-add the saved hash before we start returning things or broadcasting $stateChangeStart + if (hash) toParams['#'] = hash; + + // Broadcast start event and cancel the transition if requested + if (options.notify) { + /** + * @ngdoc event + * @name ui.router.state.$state#$stateChangeStart + * @eventOf ui.router.state.$state + * @eventType broadcast on root scope + * @description + * Fired when the state transition **begins**. You can use `event.preventDefault()` + * to prevent the transition from happening and then the transition promise will be + * rejected with a `'transition prevented'` value. + * + * @param {Object} event Event object. + * @param {State} toState The state being transitioned to. + * @param {Object} toParams The params supplied to the `toState`. + * @param {State} fromState The current state, pre-transition. + * @param {Object} fromParams The params supplied to the `fromState`. + * + * @example + * + *
+         * $rootScope.$on('$stateChangeStart',
+         * function(event, toState, toParams, fromState, fromParams){
+         *     event.preventDefault();
+         *     // transitionTo() promise will be rejected with
+         *     // a 'transition prevented' error
+         * })
+         * 
+ */ + if ($rootScope.$broadcast('$stateChangeStart', to.self, toParams, from.self, fromParams, options).defaultPrevented) { + $rootScope.$broadcast('$stateChangeCancel', to.self, toParams, from.self, fromParams); + //Don't update and resync url if there's been a new transition started. see issue #2238, #600 + if ($state.transition == null) $urlRouter.update(); + return TransitionPrevented; + } + } + + // Resolve locals for the remaining states, but don't update any global state just + // yet -- if anything fails to resolve the current state needs to remain untouched. + // We also set up an inheritance chain for the locals here. This allows the view directive + // to quickly look up the correct definition for each view in the current state. Even + // though we create the locals object itself outside resolveState(), it is initially + // empty and gets filled asynchronously. We need to keep track of the promise for the + // (fully resolved) current locals, and pass this down the chain. + var resolved = $q.when(locals); + + for (var l = keep; l < toPath.length; l++, state = toPath[l]) { + locals = toLocals[l] = inherit(locals); + resolved = resolveState(state, toParams, state === to, resolved, locals, options); + } + + // Once everything is resolved, we are ready to perform the actual transition + // and return a promise for the new state. We also keep track of what the + // current promise is, so that we can detect overlapping transitions and + // keep only the outcome of the last transition. + var transition = $state.transition = resolved.then(function () { + var l, entering, exiting; + + if ($state.transition !== transition) return TransitionSuperseded; + + // Exit 'from' states not kept + for (l = fromPath.length - 1; l >= keep; l--) { + exiting = fromPath[l]; + if (exiting.self.onExit) { + $injector.invoke(exiting.self.onExit, exiting.self, exiting.locals.globals); + } + exiting.locals = null; + } + + // Enter 'to' states not kept + for (l = keep; l < toPath.length; l++) { + entering = toPath[l]; + entering.locals = toLocals[l]; + if (entering.self.onEnter) { + $injector.invoke(entering.self.onEnter, entering.self, entering.locals.globals); + } + } + + // Run it again, to catch any transitions in callbacks + if ($state.transition !== transition) return TransitionSuperseded; + + // Update globals in $state + $state.$current = to; + $state.current = to.self; + $state.params = toParams; + copy($state.params, $stateParams); + $state.transition = null; + + if (options.location && to.navigable) { + $urlRouter.push(to.navigable.url, to.navigable.locals.globals.$stateParams, { + $$avoidResync: true, replace: options.location === 'replace' + }); + } + + if (options.notify) { + /** + * @ngdoc event + * @name ui.router.state.$state#$stateChangeSuccess + * @eventOf ui.router.state.$state + * @eventType broadcast on root scope + * @description + * Fired once the state transition is **complete**. + * + * @param {Object} event Event object. + * @param {State} toState The state being transitioned to. + * @param {Object} toParams The params supplied to the `toState`. + * @param {State} fromState The current state, pre-transition. + * @param {Object} fromParams The params supplied to the `fromState`. + */ + $rootScope.$broadcast('$stateChangeSuccess', to.self, toParams, from.self, fromParams); + } + $urlRouter.update(true); + + return $state.current; + }, function (error) { + if ($state.transition !== transition) return TransitionSuperseded; + + $state.transition = null; + /** + * @ngdoc event + * @name ui.router.state.$state#$stateChangeError + * @eventOf ui.router.state.$state + * @eventType broadcast on root scope + * @description + * Fired when an **error occurs** during transition. It's important to note that if you + * have any errors in your resolve functions (javascript errors, non-existent services, etc) + * they will not throw traditionally. You must listen for this $stateChangeError event to + * catch **ALL** errors. + * + * @param {Object} event Event object. + * @param {State} toState The state being transitioned to. + * @param {Object} toParams The params supplied to the `toState`. + * @param {State} fromState The current state, pre-transition. + * @param {Object} fromParams The params supplied to the `fromState`. + * @param {Error} error The resolve error object. + */ + evt = $rootScope.$broadcast('$stateChangeError', to.self, toParams, from.self, fromParams, error); + + if (!evt.defaultPrevented) { + $urlRouter.update(); + } + + return $q.reject(error); + }); + + return transition; + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#is + * @methodOf ui.router.state.$state + * + * @description + * Similar to {@link ui.router.state.$state#methods_includes $state.includes}, + * but only checks for the full state name. If params is supplied then it will be + * tested for strict equality against the current active params object, so all params + * must match with none missing and no extras. + * + * @example + *
+     * $state.$current.name = 'contacts.details.item';
+     *
+     * // absolute name
+     * $state.is('contact.details.item'); // returns true
+     * $state.is(contactDetailItemStateObject); // returns true
+     *
+     * // relative name (. and ^), typically from a template
+     * // E.g. from the 'contacts.details' template
+     * 
Item
+ *
+ * + * @param {string|object} stateOrName The state name (absolute or relative) or state object you'd like to check. + * @param {object=} params A param object, e.g. `{sectionId: section.id}`, that you'd like + * to test against the current active state. + * @param {object=} options An options object. The options are: + * + * - **`relative`** - {string|object} - If `stateOrName` is a relative state name and `options.relative` is set, .is will + * test relative to `options.relative` state (or name). + * + * @returns {boolean} Returns true if it is the state. + */ + $state.is = function is(stateOrName, params, options) { + options = extend({ relative: $state.$current }, options || {}); + var state = findState(stateOrName, options.relative); + + if (!isDefined(state)) { return undefined; } + if ($state.$current !== state) { return false; } + return params ? equalForKeys(state.params.$$values(params), $stateParams) : true; + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#includes + * @methodOf ui.router.state.$state + * + * @description + * A method to determine if the current active state is equal to or is the child of the + * state stateName. If any params are passed then they will be tested for a match as well. + * Not all the parameters need to be passed, just the ones you'd like to test for equality. + * + * @example + * Partial and relative names + *
+     * $state.$current.name = 'contacts.details.item';
+     *
+     * // Using partial names
+     * $state.includes("contacts"); // returns true
+     * $state.includes("contacts.details"); // returns true
+     * $state.includes("contacts.details.item"); // returns true
+     * $state.includes("contacts.list"); // returns false
+     * $state.includes("about"); // returns false
+     *
+     * // Using relative names (. and ^), typically from a template
+     * // E.g. from the 'contacts.details' template
+     * 
Item
+ *
+ * + * Basic globbing patterns + *
+     * $state.$current.name = 'contacts.details.item.url';
+     *
+     * $state.includes("*.details.*.*"); // returns true
+     * $state.includes("*.details.**"); // returns true
+     * $state.includes("**.item.**"); // returns true
+     * $state.includes("*.details.item.url"); // returns true
+     * $state.includes("*.details.*.url"); // returns true
+     * $state.includes("*.details.*"); // returns false
+     * $state.includes("item.**"); // returns false
+     * 
+ * + * @param {string} stateOrName A partial name, relative name, or glob pattern + * to be searched for within the current state name. + * @param {object=} params A param object, e.g. `{sectionId: section.id}`, + * that you'd like to test against the current active state. + * @param {object=} options An options object. The options are: + * + * - **`relative`** - {string|object=} - If `stateOrName` is a relative state reference and `options.relative` is set, + * .includes will test relative to `options.relative` state (or name). + * + * @returns {boolean} Returns true if it does include the state + */ + $state.includes = function includes(stateOrName, params, options) { + options = extend({ relative: $state.$current }, options || {}); + if (isString(stateOrName) && isGlob(stateOrName)) { + if (!doesStateMatchGlob(stateOrName)) { + return false; + } + stateOrName = $state.$current.name; + } + + var state = findState(stateOrName, options.relative); + if (!isDefined(state)) { return undefined; } + if (!isDefined($state.$current.includes[state.name])) { return false; } + return params ? equalForKeys(state.params.$$values(params), $stateParams, objectKeys(params)) : true; + }; + + + /** + * @ngdoc function + * @name ui.router.state.$state#href + * @methodOf ui.router.state.$state + * + * @description + * A url generation method that returns the compiled url for the given state populated with the given params. + * + * @example + *
+     * expect($state.href("about.person", { person: "bob" })).toEqual("/about/bob");
+     * 
+ * + * @param {string|object} stateOrName The state name or state object you'd like to generate a url from. + * @param {object=} params An object of parameter values to fill the state's required parameters. + * @param {object=} options Options object. The options are: + * + * - **`lossy`** - {boolean=true} - If true, and if there is no url associated with the state provided in the + * first parameter, then the constructed href url will be built from the first navigable ancestor (aka + * ancestor with a valid url). + * - **`inherit`** - {boolean=true}, If `true` will inherit url parameters from current url. + * - **`relative`** - {object=$state.$current}, When transitioning with relative path (e.g '^'), + * defines which state to be relative from. + * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. "http://www.example.com/fullurl". + * + * @returns {string} compiled state url + */ + $state.href = function href(stateOrName, params, options) { + options = extend({ + lossy: true, + inherit: true, + absolute: false, + relative: $state.$current + }, options || {}); + + var state = findState(stateOrName, options.relative); + + if (!isDefined(state)) return null; + if (options.inherit) params = inheritParams($stateParams, params || {}, $state.$current, state); + + var nav = (state && options.lossy) ? state.navigable : state; + + if (!nav || nav.url === undefined || nav.url === null) { + return null; + } + return $urlRouter.href(nav.url, filterByKeys(state.params.$$keys().concat('#'), params || {}), { + absolute: options.absolute + }); + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#get + * @methodOf ui.router.state.$state + * + * @description + * Returns the state configuration object for any specific state or all states. + * + * @param {string|object=} stateOrName (absolute or relative) If provided, will only get the config for + * the requested state. If not provided, returns an array of ALL state configs. + * @param {string|object=} context When stateOrName is a relative state reference, the state will be retrieved relative to context. + * @returns {Object|Array} State configuration object or array of all objects. + */ + $state.get = function (stateOrName, context) { + if (arguments.length === 0) return map(objectKeys(states), function(name) { return states[name].self; }); + var state = findState(stateOrName, context || $state.$current); + return (state && state.self) ? state.self : null; + }; + + function resolveState(state, params, paramsAreFiltered, inherited, dst, options) { + // Make a restricted $stateParams with only the parameters that apply to this state if + // necessary. In addition to being available to the controller and onEnter/onExit callbacks, + // we also need $stateParams to be available for any $injector calls we make during the + // dependency resolution process. + var $stateParams = (paramsAreFiltered) ? params : filterByKeys(state.params.$$keys(), params); + var locals = { $stateParams: $stateParams }; + + // Resolve 'global' dependencies for the state, i.e. those not specific to a view. + // We're also including $stateParams in this; that way the parameters are restricted + // to the set that should be visible to the state, and are independent of when we update + // the global $state and $stateParams values. + dst.resolve = $resolve.resolve(state.resolve, locals, dst.resolve, state); + var promises = [dst.resolve.then(function (globals) { + dst.globals = globals; + })]; + if (inherited) promises.push(inherited); + + function resolveViews() { + var viewsPromises = []; + + // Resolve template and dependencies for all views. + forEach(state.views, function (view, name) { + var injectables = (view.resolve && view.resolve !== state.resolve ? view.resolve : {}); + injectables.$template = [ function () { + return $view.load(name, { view: view, locals: dst.globals, params: $stateParams, notify: options.notify }) || ''; + }]; + + viewsPromises.push($resolve.resolve(injectables, dst.globals, dst.resolve, state).then(function (result) { + // References to the controller (only instantiated at link time) + if (isFunction(view.controllerProvider) || isArray(view.controllerProvider)) { + var injectLocals = angular.extend({}, injectables, dst.globals); + result.$$controller = $injector.invoke(view.controllerProvider, null, injectLocals); + } else { + result.$$controller = view.controller; + } + // Provide access to the state itself for internal use + result.$$state = state; + result.$$controllerAs = view.controllerAs; + result.$$resolveAs = view.resolveAs; + dst[name] = result; + })); + }); + + return $q.all(viewsPromises).then(function(){ + return dst.globals; + }); + } + + // Wait for all the promises and then return the activation object + return $q.all(promises).then(resolveViews).then(function (values) { + return dst; + }); + } + + return $state; + } + + function shouldSkipReload(to, toParams, from, fromParams, locals, options) { + // Return true if there are no differences in non-search (path/object) params, false if there are differences + function nonSearchParamsEqual(fromAndToState, fromParams, toParams) { + // Identify whether all the parameters that differ between `fromParams` and `toParams` were search params. + function notSearchParam(key) { + return fromAndToState.params[key].location != "search"; + } + var nonQueryParamKeys = fromAndToState.params.$$keys().filter(notSearchParam); + var nonQueryParams = pick.apply({}, [fromAndToState.params].concat(nonQueryParamKeys)); + var nonQueryParamSet = new $$UMFP.ParamSet(nonQueryParams); + return nonQueryParamSet.$$equals(fromParams, toParams); + } + + // If reload was not explicitly requested + // and we're transitioning to the same state we're already in + // and the locals didn't change + // or they changed in a way that doesn't merit reloading + // (reloadOnParams:false, or reloadOnSearch.false and only search params changed) + // Then return true. + if (!options.reload && to === from && + (locals === from.locals || (to.self.reloadOnSearch === false && nonSearchParamsEqual(from, fromParams, toParams)))) { + return true; + } + } +} + +angular.module('ui.router.state') + .factory('$stateParams', function () { return {}; }) + .constant("$state.runtime", { autoinject: true }) + .provider('$state', $StateProvider) + // Inject $state to initialize when entering runtime. #2574 + .run(['$injector', function ($injector) { + // Allow tests (stateSpec.js) to turn this off by defining this constant + if ($injector.get("$state.runtime").autoinject) { + $injector.get('$state'); + } + }]); diff --git a/app/bower_components/angular-ui-router/src/stateDirectives.js b/app/bower_components/angular-ui-router/src/stateDirectives.js new file mode 100644 index 0000000..e97da32 --- /dev/null +++ b/app/bower_components/angular-ui-router/src/stateDirectives.js @@ -0,0 +1,412 @@ +function parseStateRef(ref, current) { + var preparsed = ref.match(/^\s*({[^}]*})\s*$/), parsed; + if (preparsed) ref = current + '(' + preparsed[1] + ')'; + parsed = ref.replace(/\n/g, " ").match(/^([^(]+?)\s*(\((.*)\))?$/); + if (!parsed || parsed.length !== 4) throw new Error("Invalid state ref '" + ref + "'"); + return { state: parsed[1], paramExpr: parsed[3] || null }; +} + +function stateContext(el) { + var stateData = el.parent().inheritedData('$uiView'); + + if (stateData && stateData.state && stateData.state.name) { + return stateData.state; + } +} + +function getTypeInfo(el) { + // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute. + var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]'; + var isForm = el[0].nodeName === "FORM"; + + return { + attr: isForm ? "action" : (isSvg ? 'xlink:href' : 'href'), + isAnchor: el.prop("tagName").toUpperCase() === "A", + clickable: !isForm + }; +} + +function clickHook(el, $state, $timeout, type, current) { + return function(e) { + var button = e.which || e.button, target = current(); + + if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) { + // HACK: This is to allow ng-clicks to be processed before the transition is initiated: + var transition = $timeout(function() { + $state.go(target.state, target.params, target.options); + }); + e.preventDefault(); + + // if the state has no URL, ignore one preventDefault from the directive. + var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1: 0; + + e.preventDefault = function() { + if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition); + }; + } + }; +} + +function defaultOpts(el, $state) { + return { relative: stateContext(el) || $state.$current, inherit: true }; +} + +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-sref + * + * @requires ui.router.state.$state + * @requires $timeout + * + * @restrict A + * + * @description + * A directive that binds a link (`` tag) to a state. If the state has an associated + * URL, the directive will automatically generate & update the `href` attribute via + * the {@link ui.router.state.$state#methods_href $state.href()} method. Clicking + * the link will trigger a state transition with optional parameters. + * + * Also middle-clicking, right-clicking, and ctrl-clicking on the link will be + * handled natively by the browser. + * + * You can also use relative state paths within ui-sref, just like the relative + * paths passed to `$state.go()`. You just need to be aware that the path is relative + * to the state that the link lives in, in other words the state that loaded the + * template containing the link. + * + * You can specify options to pass to {@link ui.router.state.$state#methods_go $state.go()} + * using the `ui-sref-opts` attribute. Options are restricted to `location`, `inherit`, + * and `reload`. + * + * @example + * Here's an example of how you'd use ui-sref and how it would compile. If you have the + * following template: + *
+ * Home | About | Next page
+ *
+ * 
+ * 
+ * + * Then the compiled html would be (assuming Html5Mode is off and current state is contacts): + *
+ * Home | About | Next page
+ *
+ * 
    + *
  • + * Joe + *
  • + *
  • + * Alice + *
  • + *
  • + * Bob + *
  • + *
+ * + * Home + *
+ * + * @param {string} ui-sref 'stateName' can be any valid absolute or relative state + * @param {Object} ui-sref-opts options to pass to {@link ui.router.state.$state#methods_go $state.go()} + */ +$StateRefDirective.$inject = ['$state', '$timeout']; +function $StateRefDirective($state, $timeout) { + return { + restrict: 'A', + require: ['?^uiSrefActive', '?^uiSrefActiveEq'], + link: function(scope, element, attrs, uiSrefActive) { + var ref = parseStateRef(attrs.uiSref, $state.current.name); + var def = { state: ref.state, href: null, params: null }; + var type = getTypeInfo(element); + var active = uiSrefActive[1] || uiSrefActive[0]; + var unlinkInfoFn = null; + var hookFn; + + def.options = extend(defaultOpts(element, $state), attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {}); + + var update = function(val) { + if (val) def.params = angular.copy(val); + def.href = $state.href(ref.state, def.params, def.options); + + if (unlinkInfoFn) unlinkInfoFn(); + if (active) unlinkInfoFn = active.$$addStateInfo(ref.state, def.params); + if (def.href !== null) attrs.$set(type.attr, def.href); + }; + + if (ref.paramExpr) { + scope.$watch(ref.paramExpr, function(val) { if (val !== def.params) update(val); }, true); + def.params = angular.copy(scope.$eval(ref.paramExpr)); + } + update(); + + if (!type.clickable) return; + hookFn = clickHook(element, $state, $timeout, type, function() { return def; }); + element.bind("click", hookFn); + scope.$on('$destroy', function() { + element.unbind("click", hookFn); + }); + } + }; +} + +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-state + * + * @requires ui.router.state.uiSref + * + * @restrict A + * + * @description + * Much like ui-sref, but will accept named $scope properties to evaluate for a state definition, + * params and override options. + * + * @param {string} ui-state 'stateName' can be any valid absolute or relative state + * @param {Object} ui-state-params params to pass to {@link ui.router.state.$state#methods_href $state.href()} + * @param {Object} ui-state-opts options to pass to {@link ui.router.state.$state#methods_go $state.go()} + */ +$StateRefDynamicDirective.$inject = ['$state', '$timeout']; +function $StateRefDynamicDirective($state, $timeout) { + return { + restrict: 'A', + require: ['?^uiSrefActive', '?^uiSrefActiveEq'], + link: function(scope, element, attrs, uiSrefActive) { + var type = getTypeInfo(element); + var active = uiSrefActive[1] || uiSrefActive[0]; + var group = [attrs.uiState, attrs.uiStateParams || null, attrs.uiStateOpts || null]; + var watch = '[' + group.map(function(val) { return val || 'null'; }).join(', ') + ']'; + var def = { state: null, params: null, options: null, href: null }; + var unlinkInfoFn = null; + var hookFn; + + function runStateRefLink (group) { + def.state = group[0]; def.params = group[1]; def.options = group[2]; + def.href = $state.href(def.state, def.params, def.options); + + if (unlinkInfoFn) unlinkInfoFn(); + if (active) unlinkInfoFn = active.$$addStateInfo(def.state, def.params); + if (def.href) attrs.$set(type.attr, def.href); + } + + scope.$watch(watch, runStateRefLink, true); + runStateRefLink(scope.$eval(watch)); + + if (!type.clickable) return; + hookFn = clickHook(element, $state, $timeout, type, function() { return def; }); + element.bind("click", hookFn); + scope.$on('$destroy', function() { + element.unbind("click", hookFn); + }); + } + }; +} + + +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-sref-active + * + * @requires ui.router.state.$state + * @requires ui.router.state.$stateParams + * @requires $interpolate + * + * @restrict A + * + * @description + * A directive working alongside ui-sref to add classes to an element when the + * related ui-sref directive's state is active, and removing them when it is inactive. + * The primary use-case is to simplify the special appearance of navigation menus + * relying on `ui-sref`, by having the "active" state's menu button appear different, + * distinguishing it from the inactive menu items. + * + * ui-sref-active can live on the same element as ui-sref or on a parent element. The first + * ui-sref-active found at the same level or above the ui-sref will be used. + * + * Will activate when the ui-sref's target state or any child state is active. If you + * need to activate only when the ui-sref target state is active and *not* any of + * it's children, then you will use + * {@link ui.router.state.directive:ui-sref-active-eq ui-sref-active-eq} + * + * @example + * Given the following template: + *
+ * 
+ * 
+ * + * + * When the app state is "app.user" (or any children states), and contains the state parameter "user" with value "bilbobaggins", + * the resulting HTML will appear as (note the 'active' class): + *
+ * 
+ * 
+ * + * The class name is interpolated **once** during the directives link time (any further changes to the + * interpolated value are ignored). + * + * Multiple classes may be specified in a space-separated format: + *
+ * 
    + *
  • + * link + *
  • + *
+ *
+ * + * It is also possible to pass ui-sref-active an expression that evaluates + * to an object hash, whose keys represent active class names and whose + * values represent the respective state names/globs. + * ui-sref-active will match if the current active state **includes** any of + * the specified state names/globs, even the abstract ones. + * + * @Example + * Given the following template, with "admin" being an abstract state: + *
+ * 
+ * Roles + *
+ *
+ * + * When the current state is "admin.roles" the "active" class will be applied + * to both the
and elements. It is important to note that the state + * names/globs passed to ui-sref-active shadow the state provided by ui-sref. + */ + +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-sref-active-eq + * + * @requires ui.router.state.$state + * @requires ui.router.state.$stateParams + * @requires $interpolate + * + * @restrict A + * + * @description + * The same as {@link ui.router.state.directive:ui-sref-active ui-sref-active} but will only activate + * when the exact target state used in the `ui-sref` is active; no child states. + * + */ +$StateRefActiveDirective.$inject = ['$state', '$stateParams', '$interpolate']; +function $StateRefActiveDirective($state, $stateParams, $interpolate) { + return { + restrict: "A", + controller: ['$scope', '$element', '$attrs', '$timeout', function ($scope, $element, $attrs, $timeout) { + var states = [], activeClasses = {}, activeEqClass, uiSrefActive; + + // There probably isn't much point in $observing this + // uiSrefActive and uiSrefActiveEq share the same directive object with some + // slight difference in logic routing + activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope); + + try { + uiSrefActive = $scope.$eval($attrs.uiSrefActive); + } catch (e) { + // Do nothing. uiSrefActive is not a valid expression. + // Fall back to using $interpolate below + } + uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope); + if (isObject(uiSrefActive)) { + forEach(uiSrefActive, function(stateOrName, activeClass) { + if (isString(stateOrName)) { + var ref = parseStateRef(stateOrName, $state.current.name); + addState(ref.state, $scope.$eval(ref.paramExpr), activeClass); + } + }); + } + + // Allow uiSref to communicate with uiSrefActive[Equals] + this.$$addStateInfo = function (newState, newParams) { + // we already got an explicit state provided by ui-sref-active, so we + // shadow the one that comes from ui-sref + if (isObject(uiSrefActive) && states.length > 0) { + return; + } + var deregister = addState(newState, newParams, uiSrefActive); + update(); + return deregister; + }; + + $scope.$on('$stateChangeSuccess', update); + + function addState(stateName, stateParams, activeClass) { + var state = $state.get(stateName, stateContext($element)); + var stateHash = createStateHash(stateName, stateParams); + + var stateInfo = { + state: state || { name: stateName }, + params: stateParams, + hash: stateHash + }; + + states.push(stateInfo); + activeClasses[stateHash] = activeClass; + + return function removeState() { + var idx = states.indexOf(stateInfo); + if (idx !== -1) states.splice(idx, 1); + }; + } + + /** + * @param {string} state + * @param {Object|string} [params] + * @return {string} + */ + function createStateHash(state, params) { + if (!isString(state)) { + throw new Error('state should be a string'); + } + if (isObject(params)) { + return state + toJson(params); + } + params = $scope.$eval(params); + if (isObject(params)) { + return state + toJson(params); + } + return state; + } + + // Update route state + function update() { + for (var i = 0; i < states.length; i++) { + if (anyMatch(states[i].state, states[i].params)) { + addClass($element, activeClasses[states[i].hash]); + } else { + removeClass($element, activeClasses[states[i].hash]); + } + + if (exactMatch(states[i].state, states[i].params)) { + addClass($element, activeEqClass); + } else { + removeClass($element, activeEqClass); + } + } + } + + function addClass(el, className) { $timeout(function () { el.addClass(className); }); } + function removeClass(el, className) { el.removeClass(className); } + function anyMatch(state, params) { return $state.includes(state.name, params); } + function exactMatch(state, params) { return $state.is(state.name, params); } + + update(); + }] + }; +} + +angular.module('ui.router.state') + .directive('uiSref', $StateRefDirective) + .directive('uiSrefActive', $StateRefActiveDirective) + .directive('uiSrefActiveEq', $StateRefActiveDirective) + .directive('uiState', $StateRefDynamicDirective); diff --git a/app/bower_components/angular-ui-router/src/stateFilters.js b/app/bower_components/angular-ui-router/src/stateFilters.js new file mode 100644 index 0000000..4ef014a --- /dev/null +++ b/app/bower_components/angular-ui-router/src/stateFilters.js @@ -0,0 +1,39 @@ +/** + * @ngdoc filter + * @name ui.router.state.filter:isState + * + * @requires ui.router.state.$state + * + * @description + * Translates to {@link ui.router.state.$state#methods_is $state.is("stateName")}. + */ +$IsStateFilter.$inject = ['$state']; +function $IsStateFilter($state) { + var isFilter = function (state, params) { + return $state.is(state, params); + }; + isFilter.$stateful = true; + return isFilter; +} + +/** + * @ngdoc filter + * @name ui.router.state.filter:includedByState + * + * @requires ui.router.state.$state + * + * @description + * Translates to {@link ui.router.state.$state#methods_includes $state.includes('fullOrPartialStateName')}. + */ +$IncludedByStateFilter.$inject = ['$state']; +function $IncludedByStateFilter($state) { + var includesFilter = function (state, params, options) { + return $state.includes(state, params, options); + }; + includesFilter.$stateful = true; + return includesFilter; +} + +angular.module('ui.router.state') + .filter('isState', $IsStateFilter) + .filter('includedByState', $IncludedByStateFilter); diff --git a/app/bower_components/angular-ui-router/src/templateFactory.js b/app/bower_components/angular-ui-router/src/templateFactory.js new file mode 100644 index 0000000..ca491a9 --- /dev/null +++ b/app/bower_components/angular-ui-router/src/templateFactory.js @@ -0,0 +1,110 @@ +/** + * @ngdoc object + * @name ui.router.util.$templateFactory + * + * @requires $http + * @requires $templateCache + * @requires $injector + * + * @description + * Service. Manages loading of templates. + */ +$TemplateFactory.$inject = ['$http', '$templateCache', '$injector']; +function $TemplateFactory( $http, $templateCache, $injector) { + + /** + * @ngdoc function + * @name ui.router.util.$templateFactory#fromConfig + * @methodOf ui.router.util.$templateFactory + * + * @description + * Creates a template from a configuration object. + * + * @param {object} config Configuration object for which to load a template. + * The following properties are search in the specified order, and the first one + * that is defined is used to create the template: + * + * @param {string|object} config.template html string template or function to + * load via {@link ui.router.util.$templateFactory#fromString fromString}. + * @param {string|object} config.templateUrl url to load or a function returning + * the url to load via {@link ui.router.util.$templateFactory#fromUrl fromUrl}. + * @param {Function} config.templateProvider function to invoke via + * {@link ui.router.util.$templateFactory#fromProvider fromProvider}. + * @param {object} params Parameters to pass to the template function. + * @param {object} locals Locals to pass to `invoke` if the template is loaded + * via a `templateProvider`. Defaults to `{ params: params }`. + * + * @return {string|object} The template html as a string, or a promise for + * that string,or `null` if no template is configured. + */ + this.fromConfig = function (config, params, locals) { + return ( + isDefined(config.template) ? this.fromString(config.template, params) : + isDefined(config.templateUrl) ? this.fromUrl(config.templateUrl, params) : + isDefined(config.templateProvider) ? this.fromProvider(config.templateProvider, params, locals) : + null + ); + }; + + /** + * @ngdoc function + * @name ui.router.util.$templateFactory#fromString + * @methodOf ui.router.util.$templateFactory + * + * @description + * Creates a template from a string or a function returning a string. + * + * @param {string|object} template html template as a string or function that + * returns an html template as a string. + * @param {object} params Parameters to pass to the template function. + * + * @return {string|object} The template html as a string, or a promise for that + * string. + */ + this.fromString = function (template, params) { + return isFunction(template) ? template(params) : template; + }; + + /** + * @ngdoc function + * @name ui.router.util.$templateFactory#fromUrl + * @methodOf ui.router.util.$templateFactory + * + * @description + * Loads a template from the a URL via `$http` and `$templateCache`. + * + * @param {string|Function} url url of the template to load, or a function + * that returns a url. + * @param {Object} params Parameters to pass to the url function. + * @return {string|Promise.} The template html as a string, or a promise + * for that string. + */ + this.fromUrl = function (url, params) { + if (isFunction(url)) url = url(params); + if (url == null) return null; + else return $http + .get(url, { cache: $templateCache, headers: { Accept: 'text/html' }}) + .then(function(response) { return response.data; }); + }; + + /** + * @ngdoc function + * @name ui.router.util.$templateFactory#fromProvider + * @methodOf ui.router.util.$templateFactory + * + * @description + * Creates a template by invoking an injectable provider function. + * + * @param {Function} provider Function to invoke via `$injector.invoke` + * @param {Object} params Parameters for the template. + * @param {Object} locals Locals to pass to `invoke`. Defaults to + * `{ params: params }`. + * @return {string|Promise.} The template html as a string, or a promise + * for that string. + */ + this.fromProvider = function (provider, params, locals) { + return $injector.invoke(provider, null, locals || { params: params }); + }; +} + +angular.module('ui.router.util').service('$templateFactory', $TemplateFactory); diff --git a/app/bower_components/angular-ui-router/src/urlMatcherFactory.js b/app/bower_components/angular-ui-router/src/urlMatcherFactory.js new file mode 100644 index 0000000..bc4e1eb --- /dev/null +++ b/app/bower_components/angular-ui-router/src/urlMatcherFactory.js @@ -0,0 +1,1081 @@ +var $$UMFP; // reference to $UrlMatcherFactoryProvider + +/** + * @ngdoc object + * @name ui.router.util.type:UrlMatcher + * + * @description + * Matches URLs against patterns and extracts named parameters from the path or the search + * part of the URL. A URL pattern consists of a path pattern, optionally followed by '?' and a list + * of search parameters. Multiple search parameter names are separated by '&'. Search parameters + * do not influence whether or not a URL is matched, but their values are passed through into + * the matched parameters returned by {@link ui.router.util.type:UrlMatcher#methods_exec exec}. + * + * Path parameter placeholders can be specified using simple colon/catch-all syntax or curly brace + * syntax, which optionally allows a regular expression for the parameter to be specified: + * + * * `':'` name - colon placeholder + * * `'*'` name - catch-all placeholder + * * `'{' name '}'` - curly placeholder + * * `'{' name ':' regexp|type '}'` - curly placeholder with regexp or type name. Should the + * regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash. + * + * Parameter names may contain only word characters (latin letters, digits, and underscore) and + * must be unique within the pattern (across both path and search parameters). For colon + * placeholders or curly placeholders without an explicit regexp, a path parameter matches any + * number of characters other than '/'. For catch-all placeholders the path parameter matches + * any number of characters. + * + * Examples: + * + * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for + * trailing slashes, and patterns have to match the entire path, not just a prefix. + * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or + * '/user/bob/details'. The second path segment will be captured as the parameter 'id'. + * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax. + * * `'/user/{id:[^/]*}'` - Same as the previous example. + * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id + * parameter consists of 1 to 8 hex digits. + * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the + * path into the parameter 'path'. + * * `'/files/*path'` - ditto. + * * `'/calendar/{start:date}'` - Matches "/calendar/2014-11-12" (because the pattern defined + * in the built-in `date` Type matches `2014-11-12`) and provides a Date object in $stateParams.start + * + * @param {string} pattern The pattern to compile into a matcher. + * @param {Object} config A configuration object hash: + * @param {Object=} parentMatcher Used to concatenate the pattern/config onto + * an existing UrlMatcher + * + * * `caseInsensitive` - `true` if URL matching should be case insensitive, otherwise `false`, the default value (for backward compatibility) is `false`. + * * `strict` - `false` if matching against a URL with a trailing slash should be treated as equivalent to a URL without a trailing slash, the default value is `true`. + * + * @property {string} prefix A static prefix of this pattern. The matcher guarantees that any + * URL matching this matcher (i.e. any string for which {@link ui.router.util.type:UrlMatcher#methods_exec exec()} returns + * non-null) will start with this prefix. + * + * @property {string} source The pattern that was passed into the constructor + * + * @property {string} sourcePath The path portion of the source property + * + * @property {string} sourceSearch The search portion of the source property + * + * @property {string} regex The constructed regex that will be used to match against the url when + * it is time to determine which url will match. + * + * @returns {Object} New `UrlMatcher` object + */ +function UrlMatcher(pattern, config, parentMatcher) { + config = extend({ params: {} }, isObject(config) ? config : {}); + + // Find all placeholders and create a compiled pattern, using either classic or curly syntax: + // '*' name + // ':' name + // '{' name '}' + // '{' name ':' regexp '}' + // The regular expression is somewhat complicated due to the need to allow curly braces + // inside the regular expression. The placeholder regexp breaks down as follows: + // ([:*])([\w\[\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case) + // \{([\w\[\]]+)(?:\:\s*( ... ))?\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case + // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either + // [^{}\\]+ - anything other than curly braces or backslash + // \\. - a backslash escape + // \{(?:[^{}\\]+|\\.)*\} - a matched set of curly braces containing other atoms + var placeholder = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g, + searchPlaceholder = /([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g, + compiled = '^', last = 0, m, + segments = this.segments = [], + parentParams = parentMatcher ? parentMatcher.params : {}, + params = this.params = parentMatcher ? parentMatcher.params.$$new() : new $$UMFP.ParamSet(), + paramNames = []; + + function addParameter(id, type, config, location) { + paramNames.push(id); + if (parentParams[id]) return parentParams[id]; + if (!/^\w+([-.]+\w+)*(?:\[\])?$/.test(id)) throw new Error("Invalid parameter name '" + id + "' in pattern '" + pattern + "'"); + if (params[id]) throw new Error("Duplicate parameter name '" + id + "' in pattern '" + pattern + "'"); + params[id] = new $$UMFP.Param(id, type, config, location); + return params[id]; + } + + function quoteRegExp(string, pattern, squash, optional) { + var surroundPattern = ['',''], result = string.replace(/[\\\[\]\^$*+?.()|{}]/g, "\\$&"); + if (!pattern) return result; + switch(squash) { + case false: surroundPattern = ['(', ')' + (optional ? "?" : "")]; break; + case true: + result = result.replace(/\/$/, ''); + surroundPattern = ['(?:\/(', ')|\/)?']; + break; + default: surroundPattern = ['(' + squash + "|", ')?']; break; + } + return result + surroundPattern[0] + pattern + surroundPattern[1]; + } + + this.source = pattern; + + // Split into static segments separated by path parameter placeholders. + // The number of segments is always 1 more than the number of parameters. + function matchDetails(m, isSearch) { + var id, regexp, segment, type, cfg, arrayMode; + id = m[2] || m[3]; // IE[78] returns '' for unmatched groups instead of null + cfg = config.params[id]; + segment = pattern.substring(last, m.index); + regexp = isSearch ? m[4] : m[4] || (m[1] == '*' ? '.*' : null); + + if (regexp) { + type = $$UMFP.type(regexp) || inherit($$UMFP.type("string"), { pattern: new RegExp(regexp, config.caseInsensitive ? 'i' : undefined) }); + } + + return { + id: id, regexp: regexp, segment: segment, type: type, cfg: cfg + }; + } + + var p, param, segment; + while ((m = placeholder.exec(pattern))) { + p = matchDetails(m, false); + if (p.segment.indexOf('?') >= 0) break; // we're into the search part + + param = addParameter(p.id, p.type, p.cfg, "path"); + compiled += quoteRegExp(p.segment, param.type.pattern.source, param.squash, param.isOptional); + segments.push(p.segment); + last = placeholder.lastIndex; + } + segment = pattern.substring(last); + + // Find any search parameter names and remove them from the last segment + var i = segment.indexOf('?'); + + if (i >= 0) { + var search = this.sourceSearch = segment.substring(i); + segment = segment.substring(0, i); + this.sourcePath = pattern.substring(0, last + i); + + if (search.length > 0) { + last = 0; + while ((m = searchPlaceholder.exec(search))) { + p = matchDetails(m, true); + param = addParameter(p.id, p.type, p.cfg, "search"); + last = placeholder.lastIndex; + // check if ?& + } + } + } else { + this.sourcePath = pattern; + this.sourceSearch = ''; + } + + compiled += quoteRegExp(segment) + (config.strict === false ? '\/?' : '') + '$'; + segments.push(segment); + + this.regexp = new RegExp(compiled, config.caseInsensitive ? 'i' : undefined); + this.prefix = segments[0]; + this.$$paramNames = paramNames; +} + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#concat + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Returns a new matcher for a pattern constructed by appending the path part and adding the + * search parameters of the specified pattern to this pattern. The current pattern is not + * modified. This can be understood as creating a pattern for URLs that are relative to (or + * suffixes of) the current pattern. + * + * @example + * The following two matchers are equivalent: + *
+ * new UrlMatcher('/user/{id}?q').concat('/details?date');
+ * new UrlMatcher('/user/{id}/details?q&date');
+ * 
+ * + * @param {string} pattern The pattern to append. + * @param {Object} config An object hash of the configuration for the matcher. + * @returns {UrlMatcher} A matcher for the concatenated pattern. + */ +UrlMatcher.prototype.concat = function (pattern, config) { + // Because order of search parameters is irrelevant, we can add our own search + // parameters to the end of the new pattern. Parse the new pattern by itself + // and then join the bits together, but it's much easier to do this on a string level. + var defaultConfig = { + caseInsensitive: $$UMFP.caseInsensitive(), + strict: $$UMFP.strictMode(), + squash: $$UMFP.defaultSquashPolicy() + }; + return new UrlMatcher(this.sourcePath + pattern + this.sourceSearch, extend(defaultConfig, config), this); +}; + +UrlMatcher.prototype.toString = function () { + return this.source; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#exec + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Tests the specified path against this matcher, and returns an object containing the captured + * parameter values, or null if the path does not match. The returned object contains the values + * of any search parameters that are mentioned in the pattern, but their value may be null if + * they are not present in `searchParams`. This means that search parameters are always treated + * as optional. + * + * @example + *
+ * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {
+ *   x: '1', q: 'hello'
+ * });
+ * // returns { id: 'bob', q: 'hello', r: null }
+ * 
+ * + * @param {string} path The URL path to match, e.g. `$location.path()`. + * @param {Object} searchParams URL search parameters, e.g. `$location.search()`. + * @returns {Object} The captured parameter values. + */ +UrlMatcher.prototype.exec = function (path, searchParams) { + var m = this.regexp.exec(path); + if (!m) return null; + searchParams = searchParams || {}; + + var paramNames = this.parameters(), nTotal = paramNames.length, + nPath = this.segments.length - 1, + values = {}, i, j, cfg, paramName; + + if (nPath !== m.length - 1) throw new Error("Unbalanced capture group in route '" + this.source + "'"); + + function decodePathArray(string) { + function reverseString(str) { return str.split("").reverse().join(""); } + function unquoteDashes(str) { return str.replace(/\\-/g, "-"); } + + var split = reverseString(string).split(/-(?!\\)/); + var allReversed = map(split, reverseString); + return map(allReversed, unquoteDashes).reverse(); + } + + var param, paramVal; + for (i = 0; i < nPath; i++) { + paramName = paramNames[i]; + param = this.params[paramName]; + paramVal = m[i+1]; + // if the param value matches a pre-replace pair, replace the value before decoding. + for (j = 0; j < param.replace.length; j++) { + if (param.replace[j].from === paramVal) paramVal = param.replace[j].to; + } + if (paramVal && param.array === true) paramVal = decodePathArray(paramVal); + if (isDefined(paramVal)) paramVal = param.type.decode(paramVal); + values[paramName] = param.value(paramVal); + } + for (/**/; i < nTotal; i++) { + paramName = paramNames[i]; + values[paramName] = this.params[paramName].value(searchParams[paramName]); + param = this.params[paramName]; + paramVal = searchParams[paramName]; + for (j = 0; j < param.replace.length; j++) { + if (param.replace[j].from === paramVal) paramVal = param.replace[j].to; + } + if (isDefined(paramVal)) paramVal = param.type.decode(paramVal); + values[paramName] = param.value(paramVal); + } + + return values; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#parameters + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Returns the names of all path and search parameters of this pattern in an unspecified order. + * + * @returns {Array.} An array of parameter names. Must be treated as read-only. If the + * pattern has no parameters, an empty array is returned. + */ +UrlMatcher.prototype.parameters = function (param) { + if (!isDefined(param)) return this.$$paramNames; + return this.params[param] || null; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#validates + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Checks an object hash of parameters to validate their correctness according to the parameter + * types of this `UrlMatcher`. + * + * @param {Object} params The object hash of parameters to validate. + * @returns {boolean} Returns `true` if `params` validates, otherwise `false`. + */ +UrlMatcher.prototype.validates = function (params) { + return this.params.$$validates(params); +}; + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#format + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Creates a URL that matches this pattern by substituting the specified values + * for the path and search parameters. Null values for path parameters are + * treated as empty strings. + * + * @example + *
+ * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });
+ * // returns '/user/bob?q=yes'
+ * 
+ * + * @param {Object} values the values to substitute for the parameters in this pattern. + * @returns {string} the formatted URL (path and optionally search part). + */ +UrlMatcher.prototype.format = function (values) { + values = values || {}; + var segments = this.segments, params = this.parameters(), paramset = this.params; + if (!this.validates(values)) return null; + + var i, search = false, nPath = segments.length - 1, nTotal = params.length, result = segments[0]; + + function encodeDashes(str) { // Replace dashes with encoded "\-" + return encodeURIComponent(str).replace(/-/g, function(c) { return '%5C%' + c.charCodeAt(0).toString(16).toUpperCase(); }); + } + + for (i = 0; i < nTotal; i++) { + var isPathParam = i < nPath; + var name = params[i], param = paramset[name], value = param.value(values[name]); + var isDefaultValue = param.isOptional && param.type.equals(param.value(), value); + var squash = isDefaultValue ? param.squash : false; + var encoded = param.type.encode(value); + + if (isPathParam) { + var nextSegment = segments[i + 1]; + var isFinalPathParam = i + 1 === nPath; + + if (squash === false) { + if (encoded != null) { + if (isArray(encoded)) { + result += map(encoded, encodeDashes).join("-"); + } else { + result += encodeURIComponent(encoded); + } + } + result += nextSegment; + } else if (squash === true) { + var capture = result.match(/\/$/) ? /\/?(.*)/ : /(.*)/; + result += nextSegment.match(capture)[1]; + } else if (isString(squash)) { + result += squash + nextSegment; + } + + if (isFinalPathParam && param.squash === true && result.slice(-1) === '/') result = result.slice(0, -1); + } else { + if (encoded == null || (isDefaultValue && squash !== false)) continue; + if (!isArray(encoded)) encoded = [ encoded ]; + if (encoded.length === 0) continue; + encoded = map(encoded, encodeURIComponent).join('&' + name + '='); + result += (search ? '&' : '?') + (name + '=' + encoded); + search = true; + } + } + + return result; +}; + +/** + * @ngdoc object + * @name ui.router.util.type:Type + * + * @description + * Implements an interface to define custom parameter types that can be decoded from and encoded to + * string parameters matched in a URL. Used by {@link ui.router.util.type:UrlMatcher `UrlMatcher`} + * objects when matching or formatting URLs, or comparing or validating parameter values. + * + * See {@link ui.router.util.$urlMatcherFactory#methods_type `$urlMatcherFactory#type()`} for more + * information on registering custom types. + * + * @param {Object} config A configuration object which contains the custom type definition. The object's + * properties will override the default methods and/or pattern in `Type`'s public interface. + * @example + *
+ * {
+ *   decode: function(val) { return parseInt(val, 10); },
+ *   encode: function(val) { return val && val.toString(); },
+ *   equals: function(a, b) { return this.is(a) && a === b; },
+ *   is: function(val) { return angular.isNumber(val) isFinite(val) && val % 1 === 0; },
+ *   pattern: /\d+/
+ * }
+ * 
+ * + * @property {RegExp} pattern The regular expression pattern used to match values of this type when + * coming from a substring of a URL. + * + * @returns {Object} Returns a new `Type` object. + */ +function Type(config) { + extend(this, config); +} + +/** + * @ngdoc function + * @name ui.router.util.type:Type#is + * @methodOf ui.router.util.type:Type + * + * @description + * Detects whether a value is of a particular type. Accepts a native (decoded) value + * and determines whether it matches the current `Type` object. + * + * @param {*} val The value to check. + * @param {string} key Optional. If the type check is happening in the context of a specific + * {@link ui.router.util.type:UrlMatcher `UrlMatcher`} object, this is the name of the + * parameter in which `val` is stored. Can be used for meta-programming of `Type` objects. + * @returns {Boolean} Returns `true` if the value matches the type, otherwise `false`. + */ +Type.prototype.is = function(val, key) { + return true; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:Type#encode + * @methodOf ui.router.util.type:Type + * + * @description + * Encodes a custom/native type value to a string that can be embedded in a URL. Note that the + * return value does *not* need to be URL-safe (i.e. passed through `encodeURIComponent()`), it + * only needs to be a representation of `val` that has been coerced to a string. + * + * @param {*} val The value to encode. + * @param {string} key The name of the parameter in which `val` is stored. Can be used for + * meta-programming of `Type` objects. + * @returns {string} Returns a string representation of `val` that can be encoded in a URL. + */ +Type.prototype.encode = function(val, key) { + return val; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:Type#decode + * @methodOf ui.router.util.type:Type + * + * @description + * Converts a parameter value (from URL string or transition param) to a custom/native value. + * + * @param {string} val The URL parameter value to decode. + * @param {string} key The name of the parameter in which `val` is stored. Can be used for + * meta-programming of `Type` objects. + * @returns {*} Returns a custom representation of the URL parameter value. + */ +Type.prototype.decode = function(val, key) { + return val; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:Type#equals + * @methodOf ui.router.util.type:Type + * + * @description + * Determines whether two decoded values are equivalent. + * + * @param {*} a A value to compare against. + * @param {*} b A value to compare against. + * @returns {Boolean} Returns `true` if the values are equivalent/equal, otherwise `false`. + */ +Type.prototype.equals = function(a, b) { + return a == b; +}; + +Type.prototype.$subPattern = function() { + var sub = this.pattern.toString(); + return sub.substr(1, sub.length - 2); +}; + +Type.prototype.pattern = /.*/; + +Type.prototype.toString = function() { return "{Type:" + this.name + "}"; }; + +/** Given an encoded string, or a decoded object, returns a decoded object */ +Type.prototype.$normalize = function(val) { + return this.is(val) ? val : this.decode(val); +}; + +/* + * Wraps an existing custom Type as an array of Type, depending on 'mode'. + * e.g.: + * - urlmatcher pattern "/path?{queryParam[]:int}" + * - url: "/path?queryParam=1&queryParam=2 + * - $stateParams.queryParam will be [1, 2] + * if `mode` is "auto", then + * - url: "/path?queryParam=1 will create $stateParams.queryParam: 1 + * - url: "/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2] + */ +Type.prototype.$asArray = function(mode, isSearch) { + if (!mode) return this; + if (mode === "auto" && !isSearch) throw new Error("'auto' array mode is for query parameters only"); + + function ArrayType(type, mode) { + function bindTo(type, callbackName) { + return function() { + return type[callbackName].apply(type, arguments); + }; + } + + // Wrap non-array value as array + function arrayWrap(val) { return isArray(val) ? val : (isDefined(val) ? [ val ] : []); } + // Unwrap array value for "auto" mode. Return undefined for empty array. + function arrayUnwrap(val) { + switch(val.length) { + case 0: return undefined; + case 1: return mode === "auto" ? val[0] : val; + default: return val; + } + } + function falsey(val) { return !val; } + + // Wraps type (.is/.encode/.decode) functions to operate on each value of an array + function arrayHandler(callback, allTruthyMode) { + return function handleArray(val) { + if (isArray(val) && val.length === 0) return val; + val = arrayWrap(val); + var result = map(val, callback); + if (allTruthyMode === true) + return filter(result, falsey).length === 0; + return arrayUnwrap(result); + }; + } + + // Wraps type (.equals) functions to operate on each value of an array + function arrayEqualsHandler(callback) { + return function handleArray(val1, val2) { + var left = arrayWrap(val1), right = arrayWrap(val2); + if (left.length !== right.length) return false; + for (var i = 0; i < left.length; i++) { + if (!callback(left[i], right[i])) return false; + } + return true; + }; + } + + this.encode = arrayHandler(bindTo(type, 'encode')); + this.decode = arrayHandler(bindTo(type, 'decode')); + this.is = arrayHandler(bindTo(type, 'is'), true); + this.equals = arrayEqualsHandler(bindTo(type, 'equals')); + this.pattern = type.pattern; + this.$normalize = arrayHandler(bindTo(type, '$normalize')); + this.name = type.name; + this.$arrayMode = mode; + } + + return new ArrayType(this, mode); +}; + + + +/** + * @ngdoc object + * @name ui.router.util.$urlMatcherFactory + * + * @description + * Factory for {@link ui.router.util.type:UrlMatcher `UrlMatcher`} instances. The factory + * is also available to providers under the name `$urlMatcherFactoryProvider`. + */ +function $UrlMatcherFactory() { + $$UMFP = this; + + var isCaseInsensitive = false, isStrictMode = true, defaultSquashPolicy = false; + + // Use tildes to pre-encode slashes. + // If the slashes are simply URLEncoded, the browser can choose to pre-decode them, + // and bidirectional encoding/decoding fails. + // Tilde was chosen because it's not a RFC 3986 section 2.2 Reserved Character + function valToString(val) { return val != null ? val.toString().replace(/~/g, "~~").replace(/\//g, "~2F") : val; } + function valFromString(val) { return val != null ? val.toString().replace(/~2F/g, "/").replace(/~~/g, "~") : val; } + + var $types = {}, enqueue = true, typeQueue = [], injector, defaultTypes = { + "string": { + encode: valToString, + decode: valFromString, + // TODO: in 1.0, make string .is() return false if value is undefined/null by default. + // In 0.2.x, string params are optional by default for backwards compat + is: function(val) { return val == null || !isDefined(val) || typeof val === "string"; }, + pattern: /[^/]*/ + }, + "int": { + encode: valToString, + decode: function(val) { return parseInt(val, 10); }, + is: function(val) { return isDefined(val) && this.decode(val.toString()) === val; }, + pattern: /\d+/ + }, + "bool": { + encode: function(val) { return val ? 1 : 0; }, + decode: function(val) { return parseInt(val, 10) !== 0; }, + is: function(val) { return val === true || val === false; }, + pattern: /0|1/ + }, + "date": { + encode: function (val) { + if (!this.is(val)) + return undefined; + return [ val.getFullYear(), + ('0' + (val.getMonth() + 1)).slice(-2), + ('0' + val.getDate()).slice(-2) + ].join("-"); + }, + decode: function (val) { + if (this.is(val)) return val; + var match = this.capture.exec(val); + return match ? new Date(match[1], match[2] - 1, match[3]) : undefined; + }, + is: function(val) { return val instanceof Date && !isNaN(val.valueOf()); }, + equals: function (a, b) { return this.is(a) && this.is(b) && a.toISOString() === b.toISOString(); }, + pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/, + capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/ + }, + "json": { + encode: angular.toJson, + decode: angular.fromJson, + is: angular.isObject, + equals: angular.equals, + pattern: /[^/]*/ + }, + "any": { // does not encode/decode + encode: angular.identity, + decode: angular.identity, + equals: angular.equals, + pattern: /.*/ + } + }; + + function getDefaultConfig() { + return { + strict: isStrictMode, + caseInsensitive: isCaseInsensitive + }; + } + + function isInjectable(value) { + return (isFunction(value) || (isArray(value) && isFunction(value[value.length - 1]))); + } + + /** + * [Internal] Get the default value of a parameter, which may be an injectable function. + */ + $UrlMatcherFactory.$$getDefaultValue = function(config) { + if (!isInjectable(config.value)) return config.value; + if (!injector) throw new Error("Injectable functions cannot be called at configuration time"); + return injector.invoke(config.value); + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#caseInsensitive + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Defines whether URL matching should be case sensitive (the default behavior), or not. + * + * @param {boolean} value `false` to match URL in a case sensitive manner; otherwise `true`; + * @returns {boolean} the current value of caseInsensitive + */ + this.caseInsensitive = function(value) { + if (isDefined(value)) + isCaseInsensitive = value; + return isCaseInsensitive; + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#strictMode + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Defines whether URLs should match trailing slashes, or not (the default behavior). + * + * @param {boolean=} value `false` to match trailing slashes in URLs, otherwise `true`. + * @returns {boolean} the current value of strictMode + */ + this.strictMode = function(value) { + if (isDefined(value)) + isStrictMode = value; + return isStrictMode; + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#defaultSquashPolicy + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Sets the default behavior when generating or matching URLs with default parameter values. + * + * @param {string} value A string that defines the default parameter URL squashing behavior. + * `nosquash`: When generating an href with a default parameter value, do not squash the parameter value from the URL + * `slash`: When generating an href with a default parameter value, squash (remove) the parameter value, and, if the + * parameter is surrounded by slashes, squash (remove) one slash from the URL + * any other string, e.g. "~": When generating an href with a default parameter value, squash (remove) + * the parameter value from the URL and replace it with this string. + */ + this.defaultSquashPolicy = function(value) { + if (!isDefined(value)) return defaultSquashPolicy; + if (value !== true && value !== false && !isString(value)) + throw new Error("Invalid squash policy: " + value + ". Valid policies: false, true, arbitrary-string"); + defaultSquashPolicy = value; + return value; + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#compile + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Creates a {@link ui.router.util.type:UrlMatcher `UrlMatcher`} for the specified pattern. + * + * @param {string} pattern The URL pattern. + * @param {Object} config The config object hash. + * @returns {UrlMatcher} The UrlMatcher. + */ + this.compile = function (pattern, config) { + return new UrlMatcher(pattern, extend(getDefaultConfig(), config)); + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#isMatcher + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Returns true if the specified object is a `UrlMatcher`, or false otherwise. + * + * @param {Object} object The object to perform the type check against. + * @returns {Boolean} Returns `true` if the object matches the `UrlMatcher` interface, by + * implementing all the same methods. + */ + this.isMatcher = function (o) { + if (!isObject(o)) return false; + var result = true; + + forEach(UrlMatcher.prototype, function(val, name) { + if (isFunction(val)) { + result = result && (isDefined(o[name]) && isFunction(o[name])); + } + }); + return result; + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#type + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Registers a custom {@link ui.router.util.type:Type `Type`} object that can be used to + * generate URLs with typed parameters. + * + * @param {string} name The type name. + * @param {Object|Function} definition The type definition. See + * {@link ui.router.util.type:Type `Type`} for information on the values accepted. + * @param {Object|Function} definitionFn (optional) A function that is injected before the app + * runtime starts. The result of this function is merged into the existing `definition`. + * See {@link ui.router.util.type:Type `Type`} for information on the values accepted. + * + * @returns {Object} Returns `$urlMatcherFactoryProvider`. + * + * @example + * This is a simple example of a custom type that encodes and decodes items from an + * array, using the array index as the URL-encoded value: + * + *
+   * var list = ['John', 'Paul', 'George', 'Ringo'];
+   *
+   * $urlMatcherFactoryProvider.type('listItem', {
+   *   encode: function(item) {
+   *     // Represent the list item in the URL using its corresponding index
+   *     return list.indexOf(item);
+   *   },
+   *   decode: function(item) {
+   *     // Look up the list item by index
+   *     return list[parseInt(item, 10)];
+   *   },
+   *   is: function(item) {
+   *     // Ensure the item is valid by checking to see that it appears
+   *     // in the list
+   *     return list.indexOf(item) > -1;
+   *   }
+   * });
+   *
+   * $stateProvider.state('list', {
+   *   url: "/list/{item:listItem}",
+   *   controller: function($scope, $stateParams) {
+   *     console.log($stateParams.item);
+   *   }
+   * });
+   *
+   * // ...
+   *
+   * // Changes URL to '/list/3', logs "Ringo" to the console
+   * $state.go('list', { item: "Ringo" });
+   * 
+ * + * This is a more complex example of a type that relies on dependency injection to + * interact with services, and uses the parameter name from the URL to infer how to + * handle encoding and decoding parameter values: + * + *
+   * // Defines a custom type that gets a value from a service,
+   * // where each service gets different types of values from
+   * // a backend API:
+   * $urlMatcherFactoryProvider.type('dbObject', {}, function(Users, Posts) {
+   *
+   *   // Matches up services to URL parameter names
+   *   var services = {
+   *     user: Users,
+   *     post: Posts
+   *   };
+   *
+   *   return {
+   *     encode: function(object) {
+   *       // Represent the object in the URL using its unique ID
+   *       return object.id;
+   *     },
+   *     decode: function(value, key) {
+   *       // Look up the object by ID, using the parameter
+   *       // name (key) to call the correct service
+   *       return services[key].findById(value);
+   *     },
+   *     is: function(object, key) {
+   *       // Check that object is a valid dbObject
+   *       return angular.isObject(object) && object.id && services[key];
+   *     }
+   *     equals: function(a, b) {
+   *       // Check the equality of decoded objects by comparing
+   *       // their unique IDs
+   *       return a.id === b.id;
+   *     }
+   *   };
+   * });
+   *
+   * // In a config() block, you can then attach URLs with
+   * // type-annotated parameters:
+   * $stateProvider.state('users', {
+   *   url: "/users",
+   *   // ...
+   * }).state('users.item', {
+   *   url: "/{user:dbObject}",
+   *   controller: function($scope, $stateParams) {
+   *     // $stateParams.user will now be an object returned from
+   *     // the Users service
+   *   },
+   *   // ...
+   * });
+   * 
+ */ + this.type = function (name, definition, definitionFn) { + if (!isDefined(definition)) return $types[name]; + if ($types.hasOwnProperty(name)) throw new Error("A type named '" + name + "' has already been defined."); + + $types[name] = new Type(extend({ name: name }, definition)); + if (definitionFn) { + typeQueue.push({ name: name, def: definitionFn }); + if (!enqueue) flushTypeQueue(); + } + return this; + }; + + // `flushTypeQueue()` waits until `$urlMatcherFactory` is injected before invoking the queued `definitionFn`s + function flushTypeQueue() { + while(typeQueue.length) { + var type = typeQueue.shift(); + if (type.pattern) throw new Error("You cannot override a type's .pattern at runtime."); + angular.extend($types[type.name], injector.invoke(type.def)); + } + } + + // Register default types. Store them in the prototype of $types. + forEach(defaultTypes, function(type, name) { $types[name] = new Type(extend({name: name}, type)); }); + $types = inherit($types, {}); + + /* No need to document $get, since it returns this */ + this.$get = ['$injector', function ($injector) { + injector = $injector; + enqueue = false; + flushTypeQueue(); + + forEach(defaultTypes, function(type, name) { + if (!$types[name]) $types[name] = new Type(type); + }); + return this; + }]; + + this.Param = function Param(id, type, config, location) { + var self = this; + config = unwrapShorthand(config); + type = getType(config, type, location); + var arrayMode = getArrayMode(); + type = arrayMode ? type.$asArray(arrayMode, location === "search") : type; + if (type.name === "string" && !arrayMode && location === "path" && config.value === undefined) + config.value = ""; // for 0.2.x; in 0.3.0+ do not automatically default to "" + var isOptional = config.value !== undefined; + var squash = getSquashPolicy(config, isOptional); + var replace = getReplace(config, arrayMode, isOptional, squash); + + function unwrapShorthand(config) { + var keys = isObject(config) ? objectKeys(config) : []; + var isShorthand = indexOf(keys, "value") === -1 && indexOf(keys, "type") === -1 && + indexOf(keys, "squash") === -1 && indexOf(keys, "array") === -1; + if (isShorthand) config = { value: config }; + config.$$fn = isInjectable(config.value) ? config.value : function () { return config.value; }; + return config; + } + + function getType(config, urlType, location) { + if (config.type && urlType) throw new Error("Param '"+id+"' has two type configurations."); + if (urlType) return urlType; + if (!config.type) return (location === "config" ? $types.any : $types.string); + + if (angular.isString(config.type)) + return $types[config.type]; + if (config.type instanceof Type) + return config.type; + return new Type(config.type); + } + + // array config: param name (param[]) overrides default settings. explicit config overrides param name. + function getArrayMode() { + var arrayDefaults = { array: (location === "search" ? "auto" : false) }; + var arrayParamNomenclature = id.match(/\[\]$/) ? { array: true } : {}; + return extend(arrayDefaults, arrayParamNomenclature, config).array; + } + + /** + * returns false, true, or the squash value to indicate the "default parameter url squash policy". + */ + function getSquashPolicy(config, isOptional) { + var squash = config.squash; + if (!isOptional || squash === false) return false; + if (!isDefined(squash) || squash == null) return defaultSquashPolicy; + if (squash === true || isString(squash)) return squash; + throw new Error("Invalid squash policy: '" + squash + "'. Valid policies: false, true, or arbitrary string"); + } + + function getReplace(config, arrayMode, isOptional, squash) { + var replace, configuredKeys, defaultPolicy = [ + { from: "", to: (isOptional || arrayMode ? undefined : "") }, + { from: null, to: (isOptional || arrayMode ? undefined : "") } + ]; + replace = isArray(config.replace) ? config.replace : []; + if (isString(squash)) + replace.push({ from: squash, to: undefined }); + configuredKeys = map(replace, function(item) { return item.from; } ); + return filter(defaultPolicy, function(item) { return indexOf(configuredKeys, item.from) === -1; }).concat(replace); + } + + /** + * [Internal] Get the default value of a parameter, which may be an injectable function. + */ + function $$getDefaultValue() { + if (!injector) throw new Error("Injectable functions cannot be called at configuration time"); + var defaultValue = injector.invoke(config.$$fn); + if (defaultValue !== null && defaultValue !== undefined && !self.type.is(defaultValue)) + throw new Error("Default value (" + defaultValue + ") for parameter '" + self.id + "' is not an instance of Type (" + self.type.name + ")"); + return defaultValue; + } + + /** + * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the + * default value, which may be the result of an injectable function. + */ + function $value(value) { + function hasReplaceVal(val) { return function(obj) { return obj.from === val; }; } + function $replace(value) { + var replacement = map(filter(self.replace, hasReplaceVal(value)), function(obj) { return obj.to; }); + return replacement.length ? replacement[0] : value; + } + value = $replace(value); + return !isDefined(value) ? $$getDefaultValue() : self.type.$normalize(value); + } + + function toString() { return "{Param:" + id + " " + type + " squash: '" + squash + "' optional: " + isOptional + "}"; } + + extend(this, { + id: id, + type: type, + location: location, + array: arrayMode, + squash: squash, + replace: replace, + isOptional: isOptional, + value: $value, + dynamic: undefined, + config: config, + toString: toString + }); + }; + + function ParamSet(params) { + extend(this, params || {}); + } + + ParamSet.prototype = { + $$new: function() { + return inherit(this, extend(new ParamSet(), { $$parent: this})); + }, + $$keys: function () { + var keys = [], chain = [], parent = this, + ignore = objectKeys(ParamSet.prototype); + while (parent) { chain.push(parent); parent = parent.$$parent; } + chain.reverse(); + forEach(chain, function(paramset) { + forEach(objectKeys(paramset), function(key) { + if (indexOf(keys, key) === -1 && indexOf(ignore, key) === -1) keys.push(key); + }); + }); + return keys; + }, + $$values: function(paramValues) { + var values = {}, self = this; + forEach(self.$$keys(), function(key) { + values[key] = self[key].value(paramValues && paramValues[key]); + }); + return values; + }, + $$equals: function(paramValues1, paramValues2) { + var equal = true, self = this; + forEach(self.$$keys(), function(key) { + var left = paramValues1 && paramValues1[key], right = paramValues2 && paramValues2[key]; + if (!self[key].type.equals(left, right)) equal = false; + }); + return equal; + }, + $$validates: function $$validate(paramValues) { + var keys = this.$$keys(), i, param, rawVal, normalized, encoded; + for (i = 0; i < keys.length; i++) { + param = this[keys[i]]; + rawVal = paramValues[keys[i]]; + if ((rawVal === undefined || rawVal === null) && param.isOptional) + break; // There was no parameter value, but the param is optional + normalized = param.type.$normalize(rawVal); + if (!param.type.is(normalized)) + return false; // The value was not of the correct Type, and could not be decoded to the correct Type + encoded = param.type.encode(normalized); + if (angular.isString(encoded) && !param.type.pattern.exec(encoded)) + return false; // The value was of the correct type, but when encoded, did not match the Type's regexp + } + return true; + }, + $$parent: undefined + }; + + this.ParamSet = ParamSet; +} + +// Register as a provider so it's available to other providers +angular.module('ui.router.util').provider('$urlMatcherFactory', $UrlMatcherFactory); +angular.module('ui.router.util').run(['$urlMatcherFactory', function($urlMatcherFactory) { }]); diff --git a/app/bower_components/angular-ui-router/src/urlRouter.js b/app/bower_components/angular-ui-router/src/urlRouter.js new file mode 100644 index 0000000..8ec704b --- /dev/null +++ b/app/bower_components/angular-ui-router/src/urlRouter.js @@ -0,0 +1,431 @@ +/** + * @ngdoc object + * @name ui.router.router.$urlRouterProvider + * + * @requires ui.router.util.$urlMatcherFactoryProvider + * @requires $locationProvider + * + * @description + * `$urlRouterProvider` has the responsibility of watching `$location`. + * When `$location` changes it runs through a list of rules one by one until a + * match is found. `$urlRouterProvider` is used behind the scenes anytime you specify + * a url in a state configuration. All urls are compiled into a UrlMatcher object. + * + * There are several methods on `$urlRouterProvider` that make it useful to use directly + * in your module config. + */ +$UrlRouterProvider.$inject = ['$locationProvider', '$urlMatcherFactoryProvider']; +function $UrlRouterProvider( $locationProvider, $urlMatcherFactory) { + var rules = [], otherwise = null, interceptDeferred = false, listener; + + // Returns a string that is a prefix of all strings matching the RegExp + function regExpPrefix(re) { + var prefix = /^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(re.source); + return (prefix != null) ? prefix[1].replace(/\\(.)/g, "$1") : ''; + } + + // Interpolates matched values into a String.replace()-style pattern + function interpolate(pattern, match) { + return pattern.replace(/\$(\$|\d{1,2})/, function (m, what) { + return match[what === '$' ? 0 : Number(what)]; + }); + } + + /** + * @ngdoc function + * @name ui.router.router.$urlRouterProvider#rule + * @methodOf ui.router.router.$urlRouterProvider + * + * @description + * Defines rules that are used by `$urlRouterProvider` to find matches for + * specific URLs. + * + * @example + *
+   * var app = angular.module('app', ['ui.router.router']);
+   *
+   * app.config(function ($urlRouterProvider) {
+   *   // Here's an example of how you might allow case insensitive urls
+   *   $urlRouterProvider.rule(function ($injector, $location) {
+   *     var path = $location.path(),
+   *         normalized = path.toLowerCase();
+   *
+   *     if (path !== normalized) {
+   *       return normalized;
+   *     }
+   *   });
+   * });
+   * 
+ * + * @param {function} rule Handler function that takes `$injector` and `$location` + * services as arguments. You can use them to return a valid path as a string. + * + * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance + */ + this.rule = function (rule) { + if (!isFunction(rule)) throw new Error("'rule' must be a function"); + rules.push(rule); + return this; + }; + + /** + * @ngdoc object + * @name ui.router.router.$urlRouterProvider#otherwise + * @methodOf ui.router.router.$urlRouterProvider + * + * @description + * Defines a path that is used when an invalid route is requested. + * + * @example + *
+   * var app = angular.module('app', ['ui.router.router']);
+   *
+   * app.config(function ($urlRouterProvider) {
+   *   // if the path doesn't match any of the urls you configured
+   *   // otherwise will take care of routing the user to the
+   *   // specified url
+   *   $urlRouterProvider.otherwise('/index');
+   *
+   *   // Example of using function rule as param
+   *   $urlRouterProvider.otherwise(function ($injector, $location) {
+   *     return '/a/valid/url';
+   *   });
+   * });
+   * 
+ * + * @param {string|function} rule The url path you want to redirect to or a function + * rule that returns the url path. The function version is passed two params: + * `$injector` and `$location` services, and must return a url string. + * + * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance + */ + this.otherwise = function (rule) { + if (isString(rule)) { + var redirect = rule; + rule = function () { return redirect; }; + } + else if (!isFunction(rule)) throw new Error("'rule' must be a function"); + otherwise = rule; + return this; + }; + + + function handleIfMatch($injector, handler, match) { + if (!match) return false; + var result = $injector.invoke(handler, handler, { $match: match }); + return isDefined(result) ? result : true; + } + + /** + * @ngdoc function + * @name ui.router.router.$urlRouterProvider#when + * @methodOf ui.router.router.$urlRouterProvider + * + * @description + * Registers a handler for a given url matching. + * + * If the handler is a string, it is + * treated as a redirect, and is interpolated according to the syntax of match + * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise). + * + * If the handler is a function, it is injectable. It gets invoked if `$location` + * matches. You have the option of inject the match object as `$match`. + * + * The handler can return + * + * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter` + * will continue trying to find another one that matches. + * - **string** which is treated as a redirect and passed to `$location.url()` + * - **void** or any **truthy** value tells `$urlRouter` that the url was handled. + * + * @example + *
+   * var app = angular.module('app', ['ui.router.router']);
+   *
+   * app.config(function ($urlRouterProvider) {
+   *   $urlRouterProvider.when($state.url, function ($match, $stateParams) {
+   *     if ($state.$current.navigable !== state ||
+   *         !equalForKeys($match, $stateParams) {
+   *      $state.transitionTo(state, $match, false);
+   *     }
+   *   });
+   * });
+   * 
+ * + * @param {string|object} what The incoming path that you want to redirect. + * @param {string|function} handler The path you want to redirect your user to. + */ + this.when = function (what, handler) { + var redirect, handlerIsString = isString(handler); + if (isString(what)) what = $urlMatcherFactory.compile(what); + + if (!handlerIsString && !isFunction(handler) && !isArray(handler)) + throw new Error("invalid 'handler' in when()"); + + var strategies = { + matcher: function (what, handler) { + if (handlerIsString) { + redirect = $urlMatcherFactory.compile(handler); + handler = ['$match', function ($match) { return redirect.format($match); }]; + } + return extend(function ($injector, $location) { + return handleIfMatch($injector, handler, what.exec($location.path(), $location.search())); + }, { + prefix: isString(what.prefix) ? what.prefix : '' + }); + }, + regex: function (what, handler) { + if (what.global || what.sticky) throw new Error("when() RegExp must not be global or sticky"); + + if (handlerIsString) { + redirect = handler; + handler = ['$match', function ($match) { return interpolate(redirect, $match); }]; + } + return extend(function ($injector, $location) { + return handleIfMatch($injector, handler, what.exec($location.path())); + }, { + prefix: regExpPrefix(what) + }); + } + }; + + var check = { matcher: $urlMatcherFactory.isMatcher(what), regex: what instanceof RegExp }; + + for (var n in check) { + if (check[n]) return this.rule(strategies[n](what, handler)); + } + + throw new Error("invalid 'what' in when()"); + }; + + /** + * @ngdoc function + * @name ui.router.router.$urlRouterProvider#deferIntercept + * @methodOf ui.router.router.$urlRouterProvider + * + * @description + * Disables (or enables) deferring location change interception. + * + * If you wish to customize the behavior of syncing the URL (for example, if you wish to + * defer a transition but maintain the current URL), call this method at configuration time. + * Then, at run time, call `$urlRouter.listen()` after you have configured your own + * `$locationChangeSuccess` event handler. + * + * @example + *
+   * var app = angular.module('app', ['ui.router.router']);
+   *
+   * app.config(function ($urlRouterProvider) {
+   *
+   *   // Prevent $urlRouter from automatically intercepting URL changes;
+   *   // this allows you to configure custom behavior in between
+   *   // location changes and route synchronization:
+   *   $urlRouterProvider.deferIntercept();
+   *
+   * }).run(function ($rootScope, $urlRouter, UserService) {
+   *
+   *   $rootScope.$on('$locationChangeSuccess', function(e) {
+   *     // UserService is an example service for managing user state
+   *     if (UserService.isLoggedIn()) return;
+   *
+   *     // Prevent $urlRouter's default handler from firing
+   *     e.preventDefault();
+   *
+   *     UserService.handleLogin().then(function() {
+   *       // Once the user has logged in, sync the current URL
+   *       // to the router:
+   *       $urlRouter.sync();
+   *     });
+   *   });
+   *
+   *   // Configures $urlRouter's listener *after* your custom listener
+   *   $urlRouter.listen();
+   * });
+   * 
+ * + * @param {boolean} defer Indicates whether to defer location change interception. Passing + no parameter is equivalent to `true`. + */ + this.deferIntercept = function (defer) { + if (defer === undefined) defer = true; + interceptDeferred = defer; + }; + + /** + * @ngdoc object + * @name ui.router.router.$urlRouter + * + * @requires $location + * @requires $rootScope + * @requires $injector + * @requires $browser + * + * @description + * + */ + this.$get = $get; + $get.$inject = ['$location', '$rootScope', '$injector', '$browser', '$sniffer']; + function $get( $location, $rootScope, $injector, $browser, $sniffer) { + + var baseHref = $browser.baseHref(), location = $location.url(), lastPushedUrl; + + function appendBasePath(url, isHtml5, absolute) { + if (baseHref === '/') return url; + if (isHtml5) return baseHref.slice(0, -1) + url; + if (absolute) return baseHref.slice(1) + url; + return url; + } + + // TODO: Optimize groups of rules with non-empty prefix into some sort of decision tree + function update(evt) { + if (evt && evt.defaultPrevented) return; + var ignoreUpdate = lastPushedUrl && $location.url() === lastPushedUrl; + lastPushedUrl = undefined; + // TODO: Re-implement this in 1.0 for https://github.com/angular-ui/ui-router/issues/1573 + //if (ignoreUpdate) return true; + + function check(rule) { + var handled = rule($injector, $location); + + if (!handled) return false; + if (isString(handled)) $location.replace().url(handled); + return true; + } + var n = rules.length, i; + + for (i = 0; i < n; i++) { + if (check(rules[i])) return; + } + // always check otherwise last to allow dynamic updates to the set of rules + if (otherwise) check(otherwise); + } + + function listen() { + listener = listener || $rootScope.$on('$locationChangeSuccess', update); + return listener; + } + + if (!interceptDeferred) listen(); + + return { + /** + * @ngdoc function + * @name ui.router.router.$urlRouter#sync + * @methodOf ui.router.router.$urlRouter + * + * @description + * Triggers an update; the same update that happens when the address bar url changes, aka `$locationChangeSuccess`. + * This method is useful when you need to use `preventDefault()` on the `$locationChangeSuccess` event, + * perform some custom logic (route protection, auth, config, redirection, etc) and then finally proceed + * with the transition by calling `$urlRouter.sync()`. + * + * @example + *
+       * angular.module('app', ['ui.router'])
+       *   .run(function($rootScope, $urlRouter) {
+       *     $rootScope.$on('$locationChangeSuccess', function(evt) {
+       *       // Halt state change from even starting
+       *       evt.preventDefault();
+       *       // Perform custom logic
+       *       var meetsRequirement = ...
+       *       // Continue with the update and state transition if logic allows
+       *       if (meetsRequirement) $urlRouter.sync();
+       *     });
+       * });
+       * 
+ */ + sync: function() { + update(); + }, + + listen: function() { + return listen(); + }, + + update: function(read) { + if (read) { + location = $location.url(); + return; + } + if ($location.url() === location) return; + + $location.url(location); + $location.replace(); + }, + + push: function(urlMatcher, params, options) { + var url = urlMatcher.format(params || {}); + + // Handle the special hash param, if needed + if (url !== null && params && params['#']) { + url += '#' + params['#']; + } + + $location.url(url); + lastPushedUrl = options && options.$$avoidResync ? $location.url() : undefined; + if (options && options.replace) $location.replace(); + }, + + /** + * @ngdoc function + * @name ui.router.router.$urlRouter#href + * @methodOf ui.router.router.$urlRouter + * + * @description + * A URL generation method that returns the compiled URL for a given + * {@link ui.router.util.type:UrlMatcher `UrlMatcher`}, populated with the provided parameters. + * + * @example + *
+       * $bob = $urlRouter.href(new UrlMatcher("/about/:person"), {
+       *   person: "bob"
+       * });
+       * // $bob == "/about/bob";
+       * 
+ * + * @param {UrlMatcher} urlMatcher The `UrlMatcher` object which is used as the template of the URL to generate. + * @param {object=} params An object of parameter values to fill the matcher's required parameters. + * @param {object=} options Options object. The options are: + * + * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. "http://www.example.com/fullurl". + * + * @returns {string} Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher` + */ + href: function(urlMatcher, params, options) { + if (!urlMatcher.validates(params)) return null; + + var isHtml5 = $locationProvider.html5Mode(); + if (angular.isObject(isHtml5)) { + isHtml5 = isHtml5.enabled; + } + + isHtml5 = isHtml5 && $sniffer.history; + + var url = urlMatcher.format(params); + options = options || {}; + + if (!isHtml5 && url !== null) { + url = "#" + $locationProvider.hashPrefix() + url; + } + + // Handle special hash param, if needed + if (url !== null && params && params['#']) { + url += '#' + params['#']; + } + + url = appendBasePath(url, isHtml5, options.absolute); + + if (!options.absolute || !url) { + return url; + } + + var slash = (!isHtml5 && url ? '/' : ''), port = $location.port(); + port = (port === 80 || port === 443 ? '' : ':' + port); + + return [$location.protocol(), '://', $location.host(), port, slash, url].join(''); + } + }; + } +} + +angular.module('ui.router.router').provider('$urlRouter', $UrlRouterProvider); diff --git a/app/bower_components/angular-ui-router/src/view.js b/app/bower_components/angular-ui-router/src/view.js new file mode 100644 index 0000000..94334d3 --- /dev/null +++ b/app/bower_components/angular-ui-router/src/view.js @@ -0,0 +1,45 @@ + +$ViewProvider.$inject = []; +function $ViewProvider() { + + this.$get = $get; + /** + * @ngdoc object + * @name ui.router.state.$view + * + * @requires ui.router.util.$templateFactory + * @requires $rootScope + * + * @description + * + */ + $get.$inject = ['$rootScope', '$templateFactory']; + function $get( $rootScope, $templateFactory) { + return { + // $view.load('full.viewName', { template: ..., controller: ..., resolve: ..., async: false, params: ... }) + /** + * @ngdoc function + * @name ui.router.state.$view#load + * @methodOf ui.router.state.$view + * + * @description + * + * @param {string} name name + * @param {object} options option object. + */ + load: function load(name, options) { + var result, defaults = { + template: null, controller: null, view: null, locals: null, notify: true, async: true, params: {} + }; + options = extend(defaults, options); + + if (options.view) { + result = $templateFactory.fromConfig(options.view, options.params, options.locals); + } + return result; + } + }; + } +} + +angular.module('ui.router.state').provider('$view', $ViewProvider); diff --git a/app/bower_components/angular-ui-router/src/viewDirective.js b/app/bower_components/angular-ui-router/src/viewDirective.js new file mode 100644 index 0000000..e5391b3 --- /dev/null +++ b/app/bower_components/angular-ui-router/src/viewDirective.js @@ -0,0 +1,356 @@ +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-view + * + * @requires ui.router.state.$state + * @requires $compile + * @requires $controller + * @requires $injector + * @requires ui.router.state.$uiViewScroll + * @requires $document + * + * @restrict ECA + * + * @description + * The ui-view directive tells $state where to place your templates. + * + * @param {string=} name A view name. The name should be unique amongst the other views in the + * same state. You can have views of the same name that live in different states. + * + * @param {string=} autoscroll It allows you to set the scroll behavior of the browser window + * when a view is populated. By default, $anchorScroll is overridden by ui-router's custom scroll + * service, {@link ui.router.state.$uiViewScroll}. This custom service let's you + * scroll ui-view elements into view when they are populated during a state activation. + * + * *Note: To revert back to old [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll) + * functionality, call `$uiViewScrollProvider.useAnchorScroll()`.* + * + * @param {string=} onload Expression to evaluate whenever the view updates. + * + * @example + * A view can be unnamed or named. + *
+ * 
+ * 
+ * + * + *
+ *
+ * + * You can only have one unnamed view within any template (or root html). If you are only using a + * single view and it is unnamed then you can populate it like so: + *
+ * 
+ * $stateProvider.state("home", { + * template: "

HELLO!

" + * }) + *
+ * + * The above is a convenient shortcut equivalent to specifying your view explicitly with the {@link ui.router.state.$stateProvider#methods_state `views`} + * config property, by name, in this case an empty name: + *
+ * $stateProvider.state("home", {
+ *   views: {
+ *     "": {
+ *       template: "

HELLO!

" + * } + * } + * }) + *
+ * + * But typically you'll only use the views property if you name your view or have more than one view + * in the same template. There's not really a compelling reason to name a view if its the only one, + * but you could if you wanted, like so: + *
+ * 
+ *
+ *
+ * $stateProvider.state("home", {
+ *   views: {
+ *     "main": {
+ *       template: "

HELLO!

" + * } + * } + * }) + *
+ * + * Really though, you'll use views to set up multiple views: + *
+ * 
+ *
+ *
+ *
+ * + *
+ * $stateProvider.state("home", {
+ *   views: {
+ *     "": {
+ *       template: "

HELLO!

" + * }, + * "chart": { + * template: "" + * }, + * "data": { + * template: "" + * } + * } + * }) + *
+ * + * Examples for `autoscroll`: + * + *
+ * 
+ * 
+ *
+ * 
+ * 
+ * 
+ * 
+ * 
+ * + * Resolve data: + * + * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this + * can be customized using [[ViewDeclaration.resolveAs]]). This can be then accessed from the template. + * + * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the + * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which + * depends on `$resolve` data. + * + * Example usage of $resolve in a view template + *
+ * $stateProvider.state('home', {
+ *   template: '',
+ *   resolve: {
+ *     user: function(UserService) { return UserService.fetchUser(); }
+ *   }
+ * });
+ * 
+ */ +$ViewDirective.$inject = ['$state', '$injector', '$uiViewScroll', '$interpolate', '$q']; +function $ViewDirective( $state, $injector, $uiViewScroll, $interpolate, $q) { + + function getService() { + return ($injector.has) ? function(service) { + return $injector.has(service) ? $injector.get(service) : null; + } : function(service) { + try { + return $injector.get(service); + } catch (e) { + return null; + } + }; + } + + var service = getService(), + $animator = service('$animator'), + $animate = service('$animate'); + + // Returns a set of DOM manipulation functions based on which Angular version + // it should use + function getRenderer(attrs, scope) { + var statics = function() { + return { + enter: function (element, target, cb) { target.after(element); cb(); }, + leave: function (element, cb) { element.remove(); cb(); } + }; + }; + + if ($animate) { + return { + enter: function(element, target, cb) { + if (angular.version.minor > 2) { + $animate.enter(element, null, target).then(cb); + } else { + $animate.enter(element, null, target, cb); + } + }, + leave: function(element, cb) { + if (angular.version.minor > 2) { + $animate.leave(element).then(cb); + } else { + $animate.leave(element, cb); + } + } + }; + } + + if ($animator) { + var animate = $animator && $animator(scope, attrs); + + return { + enter: function(element, target, cb) {animate.enter(element, null, target); cb(); }, + leave: function(element, cb) { animate.leave(element); cb(); } + }; + } + + return statics(); + } + + var directive = { + restrict: 'ECA', + terminal: true, + priority: 400, + transclude: 'element', + compile: function (tElement, tAttrs, $transclude) { + return function (scope, $element, attrs) { + var previousEl, currentEl, currentScope, latestLocals, + onloadExp = attrs.onload || '', + autoScrollExp = attrs.autoscroll, + renderer = getRenderer(attrs, scope), + inherited = $element.inheritedData('$uiView'); + + scope.$on('$stateChangeSuccess', function() { + updateView(false); + }); + + updateView(true); + + function cleanupLastView() { + if (previousEl) { + previousEl.remove(); + previousEl = null; + } + + if (currentScope) { + currentScope.$destroy(); + currentScope = null; + } + + if (currentEl) { + var $uiViewData = currentEl.data('$uiView'); + renderer.leave(currentEl, function() { + $uiViewData.$$animLeave.resolve(); + previousEl = null; + }); + + previousEl = currentEl; + currentEl = null; + } + } + + function updateView(firstTime) { + var newScope, + name = getUiViewName(scope, attrs, inherited, $interpolate), + previousLocals = name && $state.$current && $state.$current.locals[name]; + + if (!firstTime && previousLocals === latestLocals) return; // nothing to do + newScope = scope.$new(); + latestLocals = $state.$current.locals[name]; + + /** + * @ngdoc event + * @name ui.router.state.directive:ui-view#$viewContentLoading + * @eventOf ui.router.state.directive:ui-view + * @eventType emits on ui-view directive scope + * @description + * + * Fired once the view **begins loading**, *before* the DOM is rendered. + * + * @param {Object} event Event object. + * @param {string} viewName Name of the view. + */ + newScope.$emit('$viewContentLoading', name); + + var clone = $transclude(newScope, function(clone) { + var animEnter = $q.defer(), animLeave = $q.defer(); + var viewData = { + name: name, + $animEnter: animEnter.promise, + $animLeave: animLeave.promise, + $$animLeave: animLeave + }; + + renderer.enter(clone.data('$uiView', viewData), $element, function onUiViewEnter() { + animEnter.resolve(); + if(currentScope) { + currentScope.$emit('$viewContentAnimationEnded'); + } + + if (angular.isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) { + $uiViewScroll(clone); + } + }); + cleanupLastView(); + }); + + currentEl = clone; + currentScope = newScope; + /** + * @ngdoc event + * @name ui.router.state.directive:ui-view#$viewContentLoaded + * @eventOf ui.router.state.directive:ui-view + * @eventType emits on ui-view directive scope + * @description + * Fired once the view is **loaded**, *after* the DOM is rendered. + * + * @param {Object} event Event object. + * @param {string} viewName Name of the view. + */ + currentScope.$emit('$viewContentLoaded', name); + currentScope.$eval(onloadExp); + } + }; + } + }; + + return directive; +} + +$ViewDirectiveFill.$inject = ['$compile', '$controller', '$state', '$interpolate']; +function $ViewDirectiveFill ( $compile, $controller, $state, $interpolate) { + return { + restrict: 'ECA', + priority: -400, + compile: function (tElement) { + var initial = tElement.html(); + return function (scope, $element, attrs) { + var current = $state.$current, + $uiViewData = $element.data('$uiView'), + locals = current && current.locals[$uiViewData.name]; + + if (! locals) { + return; + } + + extend($uiViewData, { state: locals.$$state }); + $element.html(locals.$template ? locals.$template : initial); + + var resolveData = angular.extend({}, locals); + scope[locals.$$resolveAs] = resolveData; + + var link = $compile($element.contents()); + + if (locals.$$controller) { + locals.$scope = scope; + locals.$element = $element; + var controller = $controller(locals.$$controller, locals); + if (locals.$$controllerAs) { + scope[locals.$$controllerAs] = controller; + scope[locals.$$controllerAs][locals.$$resolveAs] = resolveData; + } + if (isFunction(controller.$onInit)) controller.$onInit(); + $element.data('$ngControllerController', controller); + $element.children().data('$ngControllerController', controller); + } + + link(scope); + }; + } + }; +} + +/** + * Shared ui-view code for both directives: + * Given scope, element, and its attributes, return the view's name + */ +function getUiViewName(scope, attrs, inherited, $interpolate) { + var name = $interpolate(attrs.uiView || attrs.name || '')(scope); + return name.indexOf('@') >= 0 ? name : (name + '@' + (inherited ? inherited.state.name : '')); +} + +angular.module('ui.router.state').directive('uiView', $ViewDirective); +angular.module('ui.router.state').directive('uiView', $ViewDirectiveFill); diff --git a/app/bower_components/angular-ui-router/src/viewScroll.js b/app/bower_components/angular-ui-router/src/viewScroll.js new file mode 100644 index 0000000..81114e2 --- /dev/null +++ b/app/bower_components/angular-ui-router/src/viewScroll.js @@ -0,0 +1,52 @@ +/** + * @ngdoc object + * @name ui.router.state.$uiViewScrollProvider + * + * @description + * Provider that returns the {@link ui.router.state.$uiViewScroll} service function. + */ +function $ViewScrollProvider() { + + var useAnchorScroll = false; + + /** + * @ngdoc function + * @name ui.router.state.$uiViewScrollProvider#useAnchorScroll + * @methodOf ui.router.state.$uiViewScrollProvider + * + * @description + * Reverts back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll) service for + * scrolling based on the url anchor. + */ + this.useAnchorScroll = function () { + useAnchorScroll = true; + }; + + /** + * @ngdoc object + * @name ui.router.state.$uiViewScroll + * + * @requires $anchorScroll + * @requires $timeout + * + * @description + * When called with a jqLite element, it scrolls the element into view (after a + * `$timeout` so the DOM has time to refresh). + * + * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor, + * this can be enabled by calling {@link ui.router.state.$uiViewScrollProvider#methods_useAnchorScroll `$uiViewScrollProvider.useAnchorScroll()`}. + */ + this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll, $timeout) { + if (useAnchorScroll) { + return $anchorScroll; + } + + return function ($element) { + return $timeout(function () { + $element[0].scrollIntoView(); + }, 0, false); + }; + }]; +} + +angular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider); diff --git a/app/bower_components/angular/.bower.json b/app/bower_components/angular/.bower.json new file mode 100644 index 0000000..707aed1 --- /dev/null +++ b/app/bower_components/angular/.bower.json @@ -0,0 +1,17 @@ +{ + "name": "angular", + "version": "1.4.0", + "main": "./angular.js", + "ignore": [], + "dependencies": {}, + "homepage": "https://github.com/angular/bower-angular", + "_release": "1.4.0", + "_resolution": { + "type": "version", + "tag": "v1.4.0", + "commit": "e2f2cf7dc4a3ef1859ab28e657eca0e9edb588ba" + }, + "_source": "https://github.com/angular/bower-angular.git", + "_target": "1.4.0", + "_originalSource": "angular" +} \ No newline at end of file diff --git a/app/bower_components/angular/README.md b/app/bower_components/angular/README.md new file mode 100644 index 0000000..d1bc0ed --- /dev/null +++ b/app/bower_components/angular/README.md @@ -0,0 +1,64 @@ +# packaged angular + +This repo is for distribution on `npm` and `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js). +Please file issues and pull requests against that repo. + +## Install + +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular +``` + +Then add a ` +``` + +Or `require('angular')` from your code. + +### bower + +```shell +bower install angular +``` + +Then add a ` +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/). + +## License + +The MIT License + +Copyright (c) 2010-2015 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/app/bower_components/angular/angular-csp.css b/app/bower_components/angular/angular-csp.css new file mode 100644 index 0000000..f3cd926 --- /dev/null +++ b/app/bower_components/angular/angular-csp.css @@ -0,0 +1,21 @@ +/* Include this file in your html if you are using the CSP mode. */ + +@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; +} + +.ng-animate-shim { + visibility:hidden; +} + +.ng-anchor { + position:absolute; +} diff --git a/app/bower_components/angular/angular.min.js.gzip b/app/bower_components/angular/angular.min.js.gzip new file mode 100644 index 0000000..eb416db Binary files /dev/null and b/app/bower_components/angular/angular.min.js.gzip differ diff --git a/app/bower_components/angular/angular.min.js.map b/app/bower_components/angular/angular.min.js.map new file mode 100644 index 0000000..af4c6bf --- /dev/null +++ b/app/bower_components/angular/angular.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular.min.js", +"lineCount":288, +"mappings":"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", +"sources":["angular.js"], +"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","baseExtend","dst","objs","deep","ii","isObject","j","jj","src","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","isUndefined","isDefined","getPrototypeOf","isNumber","isDate","toString","isRegExp","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","putValue","val","result","push","ngMinErr","TYPED_ARRAY_REGEXP","test","constructor","Date","getTime","RegExp","match","lastIndex","emptyObject","shallowCopy","charAt","equals","o1","o2","t1","t2","keySet","createMap","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","timezoneOffset","getTimezoneOffset","setMinutes","getMinutes","minutes","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","$LocaleProvider","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$CoreAnimateRunnerProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$asyncCallback","$$AsyncCallbackProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","prototype","returnedValue","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","supported","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","bindToController","controllerAs","CNTRL_REG","$$bindings","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","destroyBindings","$new","$$destroyBindings","$on","transcludeOnThisElement","createBoundTranscludeFn","transclude","elementTranscludeOnThisElement","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","elementTransclusion","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","substring","inheritType","dataName","setupControllers","controllerDirectives","controllerKey","$scope","$attrs","$transclude","controllerInstance","hasElementTranscludeDirective","linkNode","thisLinkFn","controllersBoundTransclude","cloneAttachFn","scopeToChild","templateDirective","$$originalDirective","initializeDirectiveBindings","scopeDirective","newScopeDirective","controllerForBindings","identifier","controllerResult","invokeLinkFn","template","templateUrl","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","getTrustedResourceUrl","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","expando","k","kk","annotation","newScope","onNewScopeDestroyed","lastValue","parentGet","parentSet","compare","$observe","literal","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","rawDocument","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","mustHaveExpression","parseStringifyInterceptor","getTrusted","valueOf","$interpolateMinErr","interr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","throwNoconcat","compute","interpolationFn","$$watchDelegate","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","ERANAMES","ERAS","pluralCat","num","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","stripFile","lastIndexOf","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","setter","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","objectEquality","parsedExpression","prettyPrintExpression","inputExpressions","inputs","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","$parseOptions","expensiveChecks","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","flush","taskQueue","task","taskCount","queueFn","asyncFn","cancelLastRAF","rafFn","cancelQueueFn","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","timer","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","incrementWatchersCount","current","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","msie","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","amount","currencySymbol","fractionSize","formatNumber","number","groupSep","decimalSep","isNegative","abs","isInfinity","Infinity","isFinite","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","round","fraction","lgroup","group","padNumber","digits","neg","dateGetter","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","format","NUMBER_STRING","DATE_FORMATS_SPLIT","dateTimezoneOffset","DATE_FORMATS","spacing","limit","sortPredicate","reverseOrder","reverseComparator","comp","descending","objectToString","v1","v2","map","predicate","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","$ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","isActive_","active","Function","name_","el","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","AnimateRunner","end","resume","pause","complete","pass","fail","postDigestElements","addRemoveClassesPostDigest","add","existing","pin","domOperation","from","to","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","runner","enter","move","leave","addclass","animate","tempClasses","APPLICATION_JSON","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","isExpOperator","start","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","constants","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","generateFunction","fnKey","intoId","return_","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeMemberName","addEnsureSafeFunction","member","filterName","defaultValue","stringEscapeRegex","stringEscapeFn","c","charCodeAt","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","base","astCompiler","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","ngFormCompile","formElement","nameAttr","ngFormPreLink","handleFormSubmission","parentFormCtrl","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","parseAsResourceUrl","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","disabled","valueName","keyName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","getWatchable","disableWhen","getOptions","optionItems","selectValueMap","optionValues","optionValuesKeys","itemKey","optionValuesLength","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","updateOptionElement","addOrReuseElement","removeExcessElements","skipEmptyAndUnknownOptions","emptyOption_","emptyOption","unknownOption_","unknownOption","updateOptions","previousValue","selectCtrl","readValue","groupMap","providedEmptyOption","updateOption","optionElement","groupElement","currentOptionElement","ngModelCtrl","nextValue","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","addOption","self.addOption","removeOption","self.removeOption","self.hasOption","ngModelCtrl.$render","lastView","lastViewRef","selectMultipleWatch","chromeHack","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","$$csp"] +} diff --git a/app/bower_components/angular/bower.json b/app/bower_components/angular/bower.json new file mode 100644 index 0000000..186e41c --- /dev/null +++ b/app/bower_components/angular/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular", + "version": "1.4.0", + "main": "./angular.js", + "ignore": [], + "dependencies": { + } +} diff --git a/app/bower_components/angular/index.js b/app/bower_components/angular/index.js new file mode 100644 index 0000000..5c1aafc --- /dev/null +++ b/app/bower_components/angular/index.js @@ -0,0 +1,2 @@ +require('./angular'); +module.exports = angular; diff --git a/app/bower_components/angular/package.json b/app/bower_components/angular/package.json new file mode 100644 index 0000000..d1adede --- /dev/null +++ b/app/bower_components/angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "angular", + "version": "1.4.0", + "description": "HTML enhanced for web apps", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/angular/angular.js.git" + }, + "keywords": [ + "angular", + "framework", + "browser", + "client-side" + ], + "author": "Angular Core Team ", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/app/bower_components/bootstrap/.bower.json b/app/bower_components/bootstrap/.bower.json new file mode 100644 index 0000000..13ba4e2 --- /dev/null +++ b/app/bower_components/bootstrap/.bower.json @@ -0,0 +1,48 @@ +{ + "name": "bootstrap", + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "version": "3.3.4", + "keywords": [ + "css", + "js", + "less", + "mobile-first", + "responsive", + "front-end", + "framework", + "web" + ], + "homepage": "http://getbootstrap.com", + "main": [ + "less/bootstrap.less", + "dist/css/bootstrap.css", + "dist/js/bootstrap.js", + "dist/fonts/glyphicons-halflings-regular.eot", + "dist/fonts/glyphicons-halflings-regular.svg", + "dist/fonts/glyphicons-halflings-regular.ttf", + "dist/fonts/glyphicons-halflings-regular.woff", + "dist/fonts/glyphicons-halflings-regular.woff2" + ], + "ignore": [ + "/.*", + "_config.yml", + "CNAME", + "composer.json", + "CONTRIBUTING.md", + "docs", + "js/tests", + "test-infra" + ], + "dependencies": { + "jquery": ">= 1.9.1" + }, + "_release": "3.3.4", + "_resolution": { + "type": "version", + "tag": "v3.3.4", + "commit": "a10eb60bc0b07b747fa0c4ebd8821eb7307bd07f" + }, + "_source": "https://github.com/twbs/bootstrap.git", + "_target": "3.3.4", + "_originalSource": "bootstrap" +} \ No newline at end of file diff --git a/app/bower_components/bootstrap/Gruntfile.js b/app/bower_components/bootstrap/Gruntfile.js new file mode 100644 index 0000000..fe9eb32 --- /dev/null +++ b/app/bower_components/bootstrap/Gruntfile.js @@ -0,0 +1,511 @@ +/*! + * Bootstrap's Gruntfile + * http://getbootstrap.com + * Copyright 2013-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +module.exports = function (grunt) { + 'use strict'; + + // Force use of Unix newlines + grunt.util.linefeed = '\n'; + + RegExp.quote = function (string) { + return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); + }; + + var fs = require('fs'); + var path = require('path'); + var npmShrinkwrap = require('npm-shrinkwrap'); + var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js'); + var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js'); + var getLessVarsData = function () { + var filePath = path.join(__dirname, 'less/variables.less'); + var fileContent = fs.readFileSync(filePath, { encoding: 'utf8' }); + var parser = new BsLessdocParser(fileContent); + return { sections: parser.parseFile() }; + }; + var generateRawFiles = require('./grunt/bs-raw-files-generator.js'); + var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js'); + var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' }); + + Object.keys(configBridge.paths).forEach(function (key) { + configBridge.paths[key].forEach(function (val, i, arr) { + arr[i] = path.join('./docs/assets', val); + }); + }); + + // Project configuration. + grunt.initConfig({ + + // Metadata. + pkg: grunt.file.readJSON('package.json'), + banner: '/*!\n' + + ' * Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)\n' + + ' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + + ' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' + + ' */\n', + jqueryCheck: configBridge.config.jqueryCheck.join('\n'), + jqueryVersionCheck: configBridge.config.jqueryVersionCheck.join('\n'), + + // Task configuration. + clean: { + dist: 'dist', + docs: 'docs/dist' + }, + + jshint: { + options: { + jshintrc: 'js/.jshintrc' + }, + grunt: { + options: { + jshintrc: 'grunt/.jshintrc' + }, + src: ['Gruntfile.js', 'grunt/*.js'] + }, + core: { + src: 'js/*.js' + }, + test: { + options: { + jshintrc: 'js/tests/unit/.jshintrc' + }, + src: 'js/tests/unit/*.js' + }, + assets: { + src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js'] + } + }, + + jscs: { + options: { + config: 'js/.jscsrc' + }, + grunt: { + src: '<%= jshint.grunt.src %>' + }, + core: { + src: '<%= jshint.core.src %>' + }, + test: { + src: '<%= jshint.test.src %>' + }, + assets: { + options: { + requireCamelCaseOrUpperCaseIdentifiers: null + }, + src: '<%= jshint.assets.src %>' + } + }, + + concat: { + options: { + banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>', + stripBanners: false + }, + bootstrap: { + src: [ + 'js/transition.js', + 'js/alert.js', + 'js/button.js', + 'js/carousel.js', + 'js/collapse.js', + 'js/dropdown.js', + 'js/modal.js', + 'js/tooltip.js', + 'js/popover.js', + 'js/scrollspy.js', + 'js/tab.js', + 'js/affix.js' + ], + dest: 'dist/js/<%= pkg.name %>.js' + } + }, + + uglify: { + options: { + preserveComments: 'some' + }, + core: { + src: '<%= concat.bootstrap.dest %>', + dest: 'dist/js/<%= pkg.name %>.min.js' + }, + customize: { + src: configBridge.paths.customizerJs, + dest: 'docs/assets/js/customize.min.js' + }, + docsJs: { + src: configBridge.paths.docsJs, + dest: 'docs/assets/js/docs.min.js' + } + }, + + qunit: { + options: { + inject: 'js/tests/unit/phantom.js' + }, + files: 'js/tests/index.html' + }, + + less: { + compileCore: { + options: { + strictMath: true, + sourceMap: true, + outputSourceFiles: true, + sourceMapURL: '<%= pkg.name %>.css.map', + sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map' + }, + src: 'less/bootstrap.less', + dest: 'dist/css/<%= pkg.name %>.css' + }, + compileTheme: { + options: { + strictMath: true, + sourceMap: true, + outputSourceFiles: true, + sourceMapURL: '<%= pkg.name %>-theme.css.map', + sourceMapFilename: 'dist/css/<%= pkg.name %>-theme.css.map' + }, + src: 'less/theme.less', + dest: 'dist/css/<%= pkg.name %>-theme.css' + } + }, + + autoprefixer: { + options: { + browsers: configBridge.config.autoprefixerBrowsers + }, + core: { + options: { + map: true + }, + src: 'dist/css/<%= pkg.name %>.css' + }, + theme: { + options: { + map: true + }, + src: 'dist/css/<%= pkg.name %>-theme.css' + }, + docs: { + src: ['docs/assets/css/anchor.css', 'docs/assets/css/src/docs.css'] + }, + examples: { + expand: true, + cwd: 'docs/examples/', + src: ['**/*.css'], + dest: 'docs/examples/' + } + }, + + csslint: { + options: { + csslintrc: 'less/.csslintrc' + }, + dist: [ + 'dist/css/bootstrap.css', + 'dist/css/bootstrap-theme.css' + ], + examples: [ + 'docs/examples/**/*.css' + ], + docs: { + options: { + ids: false, + 'overqualified-elements': false + }, + src: 'docs/assets/css/src/docs.css' + } + }, + + cssmin: { + options: { + // TODO: disable `zeroUnits` optimization once clean-css 3.2 is released + // and then simplify the fix for https://github.com/twbs/bootstrap/issues/14837 accordingly + compatibility: 'ie8', + keepSpecialComments: '*', + advanced: false + }, + minifyCore: { + src: 'dist/css/<%= pkg.name %>.css', + dest: 'dist/css/<%= pkg.name %>.min.css' + }, + minifyTheme: { + src: 'dist/css/<%= pkg.name %>-theme.css', + dest: 'dist/css/<%= pkg.name %>-theme.min.css' + }, + docs: { + src: [ + 'docs/assets/css/src/pygments-manni.css', + 'docs/assets/css/src/anchor.css', + 'docs/assets/css/src/docs.css' + + ], + dest: 'docs/assets/css/docs.min.css' + } + }, + + usebanner: { + options: { + position: 'top', + banner: '<%= banner %>' + }, + files: { + src: 'dist/css/*.css' + } + }, + + csscomb: { + options: { + config: 'less/.csscomb.json' + }, + dist: { + expand: true, + cwd: 'dist/css/', + src: ['*.css', '!*.min.css'], + dest: 'dist/css/' + }, + examples: { + expand: true, + cwd: 'docs/examples/', + src: '**/*.css', + dest: 'docs/examples/' + }, + docs: { + src: 'docs/assets/css/src/docs.css', + dest: 'docs/assets/css/src/docs.css' + } + }, + + copy: { + fonts: { + expand: true, + src: 'fonts/*', + dest: 'dist/' + }, + docs: { + expand: true, + cwd: 'dist/', + src: [ + '**/*' + ], + dest: 'docs/dist/' + } + }, + + connect: { + server: { + options: { + port: 3000, + base: '.' + } + } + }, + + jekyll: { + options: { + config: '_config.yml' + }, + docs: {}, + github: { + options: { + raw: 'github: true' + } + } + }, + + jade: { + options: { + pretty: true, + data: getLessVarsData + }, + customizerVars: { + src: 'docs/_jade/customizer-variables.jade', + dest: 'docs/_includes/customizer-variables.html' + }, + customizerNav: { + src: 'docs/_jade/customizer-nav.jade', + dest: 'docs/_includes/nav/customize.html' + } + }, + + htmllint: { + options: { + ignore: [ + 'Attribute "autocomplete" not allowed on element "button" at this point.', + 'Attribute "autocomplete" not allowed on element "input" at this point.', + 'Element "img" is missing required attribute "src".' + ] + }, + src: '_gh_pages/**/*.html' + }, + + watch: { + src: { + files: '<%= jshint.core.src %>', + tasks: ['jshint:src', 'qunit', 'concat'] + }, + test: { + files: '<%= jshint.test.src %>', + tasks: ['jshint:test', 'qunit'] + }, + less: { + files: 'less/**/*.less', + tasks: 'less' + } + }, + + sed: { + versionNumber: { + pattern: (function () { + var old = grunt.option('oldver'); + return old ? RegExp.quote(old) : old; + })(), + replacement: grunt.option('newver'), + recursive: true + } + }, + + 'saucelabs-qunit': { + all: { + options: { + build: process.env.TRAVIS_JOB_ID, + throttled: 10, + maxRetries: 3, + maxPollRetries: 4, + urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'], + browsers: grunt.file.readYAML('grunt/sauce_browsers.yml') + } + } + }, + + exec: { + npmUpdate: { + command: 'npm update' + } + }, + + compress: { + main: { + options: { + archive: 'bootstrap-<%= pkg.version %>-dist.zip', + mode: 'zip', + level: 9, + pretty: true + }, + files: [ + { + expand: true, + cwd: 'dist/', + src: ['**'], + dest: 'bootstrap-<%= pkg.version %>-dist' + } + ] + } + } + + }); + + + // These plugins provide necessary tasks. + require('load-grunt-tasks')(grunt, { scope: 'devDependencies' }); + require('time-grunt')(grunt); + + // Docs HTML validation task + grunt.registerTask('validate-html', ['jekyll:docs', 'htmllint']); + + var runSubset = function (subset) { + return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset; + }; + var isUndefOrNonZero = function (val) { + return val === undefined || val !== '0'; + }; + + // Test task. + var testSubtasks = []; + // Skip core tests if running a different subset of the test suite + if (runSubset('core') && + // Skip core tests if this is a Savage build + process.env.TRAVIS_REPO_SLUG !== 'twbs-savage/bootstrap') { + testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'csslint:dist', 'test-js', 'docs']); + } + // Skip HTML validation if running a different subset of the test suite + if (runSubset('validate-html') && + // Skip HTML5 validator on Travis when [skip validator] is in the commit message + isUndefOrNonZero(process.env.TWBS_DO_VALIDATOR)) { + testSubtasks.push('validate-html'); + } + // Only run Sauce Labs tests if there's a Sauce access key + if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' && + // Skip Sauce if running a different subset of the test suite + runSubset('sauce-js-unit') && + // Skip Sauce on Travis when [skip sauce] is in the commit message + isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) { + testSubtasks.push('connect'); + testSubtasks.push('saucelabs-qunit'); + } + grunt.registerTask('test', testSubtasks); + grunt.registerTask('test-js', ['jshint:core', 'jshint:test', 'jshint:grunt', 'jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']); + + // JS distribution task. + grunt.registerTask('dist-js', ['concat', 'uglify:core', 'commonjs']); + + // CSS distribution task. + grunt.registerTask('less-compile', ['less:compileCore', 'less:compileTheme']); + grunt.registerTask('dist-css', ['less-compile', 'autoprefixer:core', 'autoprefixer:theme', 'usebanner', 'csscomb:dist', 'cssmin:minifyCore', 'cssmin:minifyTheme']); + + // Full distribution task. + grunt.registerTask('dist', ['clean:dist', 'dist-css', 'copy:fonts', 'dist-js']); + + // Default task. + grunt.registerTask('default', ['clean:dist', 'copy:fonts', 'test']); + + // Version numbering task. + // grunt change-version-number --oldver=A.B.C --newver=X.Y.Z + // This can be overzealous, so its changes should always be manually reviewed! + grunt.registerTask('change-version-number', 'sed'); + + grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); }); + + // task for building customizer + grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']); + grunt.registerTask('build-customizer-html', 'jade'); + grunt.registerTask('build-raw-files', 'Add scripts/less files to customizer.', function () { + var banner = grunt.template.process('<%= banner %>'); + generateRawFiles(grunt, banner); + }); + + grunt.registerTask('commonjs', 'Generate CommonJS entrypoint module in dist dir.', function () { + var srcFiles = grunt.config.get('concat.bootstrap.src'); + var destFilepath = 'dist/js/npm.js'; + generateCommonJSModule(grunt, srcFiles, destFilepath); + }); + + // Docs task. + grunt.registerTask('docs-css', ['autoprefixer:docs', 'autoprefixer:examples', 'csscomb:docs', 'csscomb:examples', 'cssmin:docs']); + grunt.registerTask('lint-docs-css', ['csslint:docs', 'csslint:examples']); + grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']); + grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']); + grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-glyphicons-data', 'build-customizer']); + + grunt.registerTask('prep-release', ['jekyll:github', 'compress']); + + // Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json). + // This task should be run and the updated file should be committed whenever Bootstrap's dependencies change. + grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', '_update-shrinkwrap']); + grunt.registerTask('_update-shrinkwrap', function () { + var done = this.async(); + npmShrinkwrap({ dev: true, dirname: __dirname }, function (err) { + if (err) { + grunt.fail.warn(err); + } + var dest = 'test-infra/npm-shrinkwrap.json'; + fs.renameSync('npm-shrinkwrap.json', dest); + grunt.log.writeln('File ' + dest.cyan + ' updated.'); + done(); + }); + }); +}; diff --git a/app/bower_components/bootstrap/LICENSE b/app/bower_components/bootstrap/LICENSE new file mode 100644 index 0000000..f4c52d6 --- /dev/null +++ b/app/bower_components/bootstrap/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2011-2015 Twitter, Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/app/bower_components/bootstrap/README.md b/app/bower_components/bootstrap/README.md new file mode 100644 index 0000000..06e17f0 --- /dev/null +++ b/app/bower_components/bootstrap/README.md @@ -0,0 +1,134 @@ +# [Bootstrap](http://getbootstrap.com) +![Bower version](https://img.shields.io/bower/v/bootstrap.svg?style=flat) +[![npm version](https://img.shields.io/npm/v/bootstrap.svg?style=flat)](https://www.npmjs.com/package/bootstrap) +[![Build Status](https://img.shields.io/travis/twbs/bootstrap/master.svg?style=flat)](https://travis-ci.org/twbs/bootstrap) +[![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap.svg?style=flat)](https://david-dm.org/twbs/bootstrap#info=devDependencies) +[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap) + +Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thornton](https://twitter.com/fat), and maintained by the [core team](https://github.com/orgs/twbs/people) with the massive support and involvement of the community. + +To get started, check out ! + +## Table of contents + +- [Quick start](#quick-start) +- [Bugs and feature requests](#bugs-and-feature-requests) +- [Documentation](#documentation) +- [Contributing](#contributing) +- [Community](#community) +- [Versioning](#versioning) +- [Creators](#creators) +- [Copyright and license](#copyright-and-license) + +## Quick start + +Five quick start options are available: + +- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.4.zip). +- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`. +- Install with [Bower](http://bower.io): `bower install bootstrap`. +- Install with [npm](https://www.npmjs.com): `npm install bootstrap`. +- Install with [Meteor](https://www.meteor.com/): `meteor add twbs:bootstrap`. + +Read the [Getting started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more. + +### What's included + +Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this: + +``` +bootstrap/ +├── css/ +│ ├── bootstrap.css +│ ├── bootstrap.css.map +│ ├── bootstrap.min.css +│ ├── bootstrap-theme.css +│ ├── bootstrap-theme.css.map +│ └── bootstrap-theme.min.css +├── js/ +│ ├── bootstrap.js +│ └── bootstrap.min.js +└── fonts/ + ├── glyphicons-halflings-regular.eot + ├── glyphicons-halflings-regular.svg + ├── glyphicons-halflings-regular.ttf + ├── glyphicons-halflings-regular.woff + └── glyphicons-halflings-regular.woff2 +``` + +We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). CSS [source maps](https://developers.google.com/chrome-developer-tools/docs/css-preprocessors) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Fonts from Glyphicons are included, as is the optional Bootstrap theme. + + + +## Bugs and feature requests + +Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new). + + +## Documentation + +Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](http://jekyllrb.com) and publicly hosted on GitHub Pages at . The docs may also be run locally. + +### Running documentation locally + +1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v2.5.x). + - **Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems. +2. Install the Ruby-based syntax highlighter, [Rouge](https://github.com/jneen/rouge), with `gem install rouge`. +3. From the root `/bootstrap` directory, run `jekyll serve` in the command line. +4. Open in your browser, and voilà. + +Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/). + +### Documentation for previous releases + +Documentation for v2.3.2 has been made available for the time being at while folks transition to Bootstrap 3. + +[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. + + + +## Contributing + +Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development. + +Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo). + +Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at . + + + +## Community + +Keep track of development and community news. + +- Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). +- Read and subscribe to [The Official Bootstrap Blog](http://blog.getbootstrap.com). +- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel. +- Implementation help may be found at Stack Overflow (tagged [`twitter-bootstrap-3`](http://stackoverflow.com/questions/tagged/twitter-bootstrap-3)). +- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. + + + +## Versioning + +For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](http://semver.org/). Sometimes we screw up, but we'll adhere to those rules whenever possible. + + + +## Creators + +**Mark Otto** + +- +- + +**Jacob Thornton** + +- +- + + + +## Copyright and license + +Code and documentation copyright 2011-2015 Twitter, Inc. Code released under [the MIT license](https://github.com/twbs/bootstrap/blob/master/LICENSE). Docs released under [Creative Commons](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE). diff --git a/app/bower_components/bootstrap/bower.json b/app/bower_components/bootstrap/bower.json new file mode 100644 index 0000000..d7eea39 --- /dev/null +++ b/app/bower_components/bootstrap/bower.json @@ -0,0 +1,39 @@ +{ + "name": "bootstrap", + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "version": "3.3.4", + "keywords": [ + "css", + "js", + "less", + "mobile-first", + "responsive", + "front-end", + "framework", + "web" + ], + "homepage": "http://getbootstrap.com", + "main": [ + "less/bootstrap.less", + "dist/css/bootstrap.css", + "dist/js/bootstrap.js", + "dist/fonts/glyphicons-halflings-regular.eot", + "dist/fonts/glyphicons-halflings-regular.svg", + "dist/fonts/glyphicons-halflings-regular.ttf", + "dist/fonts/glyphicons-halflings-regular.woff", + "dist/fonts/glyphicons-halflings-regular.woff2" + ], + "ignore": [ + "/.*", + "_config.yml", + "CNAME", + "composer.json", + "CONTRIBUTING.md", + "docs", + "js/tests", + "test-infra" + ], + "dependencies": { + "jquery": ">= 1.9.1" + } +} diff --git a/app/bower_components/bootstrap/grunt/.jshintrc b/app/bower_components/bootstrap/grunt/.jshintrc new file mode 100644 index 0000000..0ea0495 --- /dev/null +++ b/app/bower_components/bootstrap/grunt/.jshintrc @@ -0,0 +1,7 @@ +{ + "extends" : "../js/.jshintrc", + "asi" : false, + "browser" : false, + "es3" : false, + "node" : true +} diff --git a/app/bower_components/bootstrap/grunt/bs-commonjs-generator.js b/app/bower_components/bootstrap/grunt/bs-commonjs-generator.js new file mode 100644 index 0000000..b0642cd --- /dev/null +++ b/app/bower_components/bootstrap/grunt/bs-commonjs-generator.js @@ -0,0 +1,23 @@ +'use strict'; +var fs = require('fs'); +var path = require('path'); + +var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; + +module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { + var destDir = path.dirname(destFilepath); + + function srcPathToDestRequire(srcFilepath) { + var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); + return 'require(\'' + requirePath + '\')'; + } + + var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); + try { + fs.writeFileSync(destFilepath, moduleOutputJs); + } + catch (err) { + grunt.fail.warn(err); + } + grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); +}; diff --git a/app/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js b/app/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js new file mode 100644 index 0000000..339fd0f --- /dev/null +++ b/app/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js @@ -0,0 +1,41 @@ +/*! + * Bootstrap Grunt task for Glyphicons data generation + * http://getbootstrap.com + * Copyright 2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +'use strict'; +var fs = require('fs'); + +module.exports = function generateGlyphiconsData(grunt) { + // Pass encoding, utf8, so `readFileSync` will return a string instead of a + // buffer + var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8'); + var glyphiconsLines = glyphiconsFile.split('\n'); + + // Use any line that starts with ".glyphicon-" and capture the class name + var iconClassName = /^\.(glyphicon-[a-zA-Z0-9-]+)/; + var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' + + '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n'; + var glyphiconsYml = 'docs/_data/glyphicons.yml'; + for (var i = 0, len = glyphiconsLines.length; i < len; i++) { + var match = glyphiconsLines[i].match(iconClassName); + + if (match !== null) { + glyphiconsData += '- ' + match[1] + '\n'; + } + } + + // Create the `_data` directory if it doesn't already exist + if (!fs.existsSync('docs/_data')) { + fs.mkdirSync('docs/_data'); + } + + try { + fs.writeFileSync(glyphiconsYml, glyphiconsData); + } + catch (err) { + grunt.fail.warn(err); + } + grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.'); +}; diff --git a/app/bower_components/bootstrap/grunt/bs-lessdoc-parser.js b/app/bower_components/bootstrap/grunt/bs-lessdoc-parser.js new file mode 100644 index 0000000..d6be774 --- /dev/null +++ b/app/bower_components/bootstrap/grunt/bs-lessdoc-parser.js @@ -0,0 +1,238 @@ +/*! + * Bootstrap Grunt task for parsing Less docstrings + * http://getbootstrap.com + * Copyright 2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +'use strict'; + +var Markdown = require('markdown-it'); + +function markdown2html(markdownString) { + var md = new Markdown(); + + // the slice removes the

...

wrapper output by Markdown processor + return md.render(markdownString.trim()).slice(3, -5); +} + + +/* +Mini-language: + //== This is a normal heading, which starts a section. Sections group variables together. + //## Optional description for the heading + + //=== This is a subheading. + + //** Optional description for the following variable. You **can** use Markdown in descriptions to discuss `` stuff. + @foo: #fff; + + //-- This is a heading for a section whose variables shouldn't be customizable + + All other lines are ignored completely. +*/ + + +var CUSTOMIZABLE_HEADING = /^[/]{2}={2}(.*)$/; +var UNCUSTOMIZABLE_HEADING = /^[/]{2}-{2}(.*)$/; +var SUBSECTION_HEADING = /^[/]{2}={3}(.*)$/; +var SECTION_DOCSTRING = /^[/]{2}#{2}(.+)$/; +var VAR_ASSIGNMENT = /^(@[a-zA-Z0-9_-]+):[ ]*([^ ;][^;]*);[ ]*$/; +var VAR_DOCSTRING = /^[/]{2}[*]{2}(.+)$/; + +function Section(heading, customizable) { + this.heading = heading.trim(); + this.id = this.heading.replace(/\s+/g, '-').toLowerCase(); + this.customizable = customizable; + this.docstring = null; + this.subsections = []; +} + +Section.prototype.addSubSection = function (subsection) { + this.subsections.push(subsection); +}; + +function SubSection(heading) { + this.heading = heading.trim(); + this.id = this.heading.replace(/\s+/g, '-').toLowerCase(); + this.variables = []; +} + +SubSection.prototype.addVar = function (variable) { + this.variables.push(variable); +}; + +function VarDocstring(markdownString) { + this.html = markdown2html(markdownString); +} + +function SectionDocstring(markdownString) { + this.html = markdown2html(markdownString); +} + +function Variable(name, defaultValue) { + this.name = name; + this.defaultValue = defaultValue; + this.docstring = null; +} + +function Tokenizer(fileContent) { + this._lines = fileContent.split('\n'); + this._next = undefined; +} + +Tokenizer.prototype.unshift = function (token) { + if (this._next !== undefined) { + throw new Error('Attempted to unshift twice!'); + } + this._next = token; +}; + +Tokenizer.prototype._shift = function () { + // returning null signals EOF + // returning undefined means the line was ignored + if (this._next !== undefined) { + var result = this._next; + this._next = undefined; + return result; + } + if (this._lines.length <= 0) { + return null; + } + var line = this._lines.shift(); + var match = null; + match = SUBSECTION_HEADING.exec(line); + if (match !== null) { + return new SubSection(match[1]); + } + match = CUSTOMIZABLE_HEADING.exec(line); + if (match !== null) { + return new Section(match[1], true); + } + match = UNCUSTOMIZABLE_HEADING.exec(line); + if (match !== null) { + return new Section(match[1], false); + } + match = SECTION_DOCSTRING.exec(line); + if (match !== null) { + return new SectionDocstring(match[1]); + } + match = VAR_DOCSTRING.exec(line); + if (match !== null) { + return new VarDocstring(match[1]); + } + var commentStart = line.lastIndexOf('//'); + var varLine = (commentStart === -1) ? line : line.slice(0, commentStart); + match = VAR_ASSIGNMENT.exec(varLine); + if (match !== null) { + return new Variable(match[1], match[2]); + } + return undefined; +}; + +Tokenizer.prototype.shift = function () { + while (true) { + var result = this._shift(); + if (result === undefined) { + continue; + } + return result; + } +}; + +function Parser(fileContent) { + this._tokenizer = new Tokenizer(fileContent); +} + +Parser.prototype.parseFile = function () { + var sections = []; + while (true) { + var section = this.parseSection(); + if (section === null) { + if (this._tokenizer.shift() !== null) { + throw new Error('Unexpected unparsed section of file remains!'); + } + return sections; + } + sections.push(section); + } +}; + +Parser.prototype.parseSection = function () { + var section = this._tokenizer.shift(); + if (section === null) { + return null; + } + if (!(section instanceof Section)) { + throw new Error('Expected section heading; got: ' + JSON.stringify(section)); + } + var docstring = this._tokenizer.shift(); + if (docstring instanceof SectionDocstring) { + section.docstring = docstring; + } + else { + this._tokenizer.unshift(docstring); + } + this.parseSubSections(section); + + return section; +}; + +Parser.prototype.parseSubSections = function (section) { + while (true) { + var subsection = this.parseSubSection(); + if (subsection === null) { + if (section.subsections.length === 0) { + // Presume an implicit initial subsection + subsection = new SubSection(''); + this.parseVars(subsection); + } + else { + break; + } + } + section.addSubSection(subsection); + } + + if (section.subsections.length === 1 && !(section.subsections[0].heading) && section.subsections[0].variables.length === 0) { + // Ignore lone empty implicit subsection + section.subsections = []; + } +}; + +Parser.prototype.parseSubSection = function () { + var subsection = this._tokenizer.shift(); + if (subsection instanceof SubSection) { + this.parseVars(subsection); + return subsection; + } + this._tokenizer.unshift(subsection); + return null; +}; + +Parser.prototype.parseVars = function (subsection) { + while (true) { + var variable = this.parseVar(); + if (variable === null) { + return; + } + subsection.addVar(variable); + } +}; + +Parser.prototype.parseVar = function () { + var docstring = this._tokenizer.shift(); + if (!(docstring instanceof VarDocstring)) { + this._tokenizer.unshift(docstring); + docstring = null; + } + var variable = this._tokenizer.shift(); + if (variable instanceof Variable) { + variable.docstring = docstring; + return variable; + } + this._tokenizer.unshift(variable); + return null; +}; + + +module.exports = Parser; diff --git a/app/bower_components/bootstrap/grunt/bs-raw-files-generator.js b/app/bower_components/bootstrap/grunt/bs-raw-files-generator.js new file mode 100644 index 0000000..ec8c531 --- /dev/null +++ b/app/bower_components/bootstrap/grunt/bs-raw-files-generator.js @@ -0,0 +1,46 @@ +/*! + * Bootstrap Grunt task for generating raw-files.min.js for the Customizer + * http://getbootstrap.com + * Copyright 2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/* global btoa: true */ + +'use strict'; +var fs = require('fs'); +var btoa = require('btoa'); +var glob = require('glob'); + +function getFiles(type) { + var files = {}; + var recursive = (type === 'less'); + var globExpr = (recursive ? '/**/*' : '/*'); + glob.sync(type + globExpr) + .filter(function (path) { + return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path); + }) + .forEach(function (fullPath) { + var relativePath = fullPath.replace(/^[^/]+\//, ''); + files[relativePath] = (type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8')); + }); + return 'var __' + type + ' = ' + JSON.stringify(files) + '\n'; +} + +module.exports = function generateRawFilesJs(grunt, banner) { + if (!banner) { + banner = ''; + } + var dirs = ['js', 'less', 'fonts']; + var files = banner + dirs.map(getFiles).reduce(function (combined, file) { + return combined + file; + }, ''); + var rawFilesJs = 'docs/assets/js/raw-files.min.js'; + try { + fs.writeFileSync(rawFilesJs, files); + } + catch (err) { + grunt.fail.warn(err); + } + grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.'); +}; diff --git a/app/bower_components/bootstrap/grunt/configBridge.json b/app/bower_components/bootstrap/grunt/configBridge.json new file mode 100644 index 0000000..b7080b0 --- /dev/null +++ b/app/bower_components/bootstrap/grunt/configBridge.json @@ -0,0 +1,46 @@ +{ + "paths": { + "customizerJs": [ + "../assets/js/vendor/autoprefixer.js", + "../assets/js/vendor/less.min.js", + "../assets/js/vendor/jszip.min.js", + "../assets/js/vendor/uglify.min.js", + "../assets/js/vendor/Blob.js", + "../assets/js/vendor/FileSaver.js", + "../assets/js/raw-files.min.js", + "../assets/js/src/customizer.js" + ], + "docsJs": [ + "../assets/js/vendor/holder.js", + "../assets/js/vendor/ZeroClipboard.min.js", + "../assets/js/vendor/anchor.js", + "../assets/js/src/application.js" + ] + }, + "config": { + "autoprefixerBrowsers": [ + "Android 2.3", + "Android >= 4", + "Chrome >= 20", + "Firefox >= 24", + "Explorer >= 8", + "iOS >= 6", + "Opera >= 12", + "Safari >= 6" + ], + "jqueryCheck": [ + "if (typeof jQuery === 'undefined') {", + " throw new Error('Bootstrap\\'s JavaScript requires jQuery')", + "}\n" + ], + "jqueryVersionCheck": [ + "+function ($) {", + " 'use strict';", + " var version = $.fn.jquery.split(' ')[0].split('.')", + " if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {", + " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher')", + " }", + "}(jQuery);\n\n" + ] + } +} \ No newline at end of file diff --git a/app/bower_components/bootstrap/grunt/sauce_browsers.yml b/app/bower_components/bootstrap/grunt/sauce_browsers.yml new file mode 100644 index 0000000..e48a6f5 --- /dev/null +++ b/app/bower_components/bootstrap/grunt/sauce_browsers.yml @@ -0,0 +1,82 @@ +[ + # Docs: https://saucelabs.com/docs/platforms/webdriver + + { + browserName: "safari", + platform: "OS X 10.10" + }, + { + browserName: "chrome", + platform: "OS X 10.10" + }, + { + browserName: "firefox", + platform: "OS X 10.10" + }, + + # Mac Opera not currently supported by Sauce Labs + + { + browserName: "internet explorer", + version: "11", + platform: "Windows 8.1" + }, + { + browserName: "internet explorer", + version: "10", + platform: "Windows 8" + }, + { + browserName: "internet explorer", + version: "9", + platform: "Windows 7" + }, + { + browserName: "internet explorer", + version: "8", + platform: "Windows 7" + }, + + # { # Unofficial + # browserName: "internet explorer", + # version: "7", + # platform: "Windows XP" + # }, + + { + browserName: "chrome", + platform: "Windows 8.1" + }, + { + browserName: "firefox", + platform: "Windows 8.1" + }, + + # Win Opera 15+ not currently supported by Sauce Labs + + { + browserName: "iphone", + platform: "OS X 10.10", + version: "8.1" + }, + + # iOS Chrome not currently supported by Sauce Labs + + # Linux (unofficial) + { + browserName: "chrome", + platform: "Linux" + }, + { + browserName: "firefox", + platform: "Linux" + } + + # Android Chrome not currently supported by Sauce Labs + + # { # Android Browser (super-unofficial) + # browserName: "android", + # version: "4.0", + # platform: "Linux" + # } +] diff --git a/app/bower_components/bootstrap/less/.csscomb.json b/app/bower_components/bootstrap/less/.csscomb.json new file mode 100644 index 0000000..40695a4 --- /dev/null +++ b/app/bower_components/bootstrap/less/.csscomb.json @@ -0,0 +1,304 @@ +{ + "always-semicolon": true, + "block-indent": 2, + "color-case": "lower", + "color-shorthand": true, + "element-case": "lower", + "eof-newline": true, + "leading-zero": false, + "remove-empty-rulesets": true, + "space-after-colon": 1, + "space-after-combinator": 1, + "space-before-selector-delimiter": 0, + "space-between-declarations": "\n", + "space-after-opening-brace": "\n", + "space-before-closing-brace": "\n", + "space-before-colon": 0, + "space-before-combinator": 1, + "space-before-opening-brace": 1, + "strip-spaces": true, + "unitless-zero": true, + "vendor-prefix-align": true, + "sort-order": [ + [ + "position", + "top", + "right", + "bottom", + "left", + "z-index", + "display", + "float", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "-webkit-box-sizing", + "-moz-box-sizing", + "box-sizing", + "-webkit-appearance", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "overflow", + "overflow-x", + "overflow-y", + "-webkit-overflow-scrolling", + "-ms-overflow-x", + "-ms-overflow-y", + "-ms-overflow-style", + "clip", + "clear", + "font", + "font-family", + "font-size", + "font-style", + "font-weight", + "font-variant", + "font-size-adjust", + "font-stretch", + "font-effect", + "font-emphasize", + "font-emphasize-position", + "font-emphasize-style", + "font-smooth", + "-webkit-hyphens", + "-moz-hyphens", + "hyphens", + "line-height", + "color", + "text-align", + "-webkit-text-align-last", + "-moz-text-align-last", + "-ms-text-align-last", + "text-align-last", + "text-emphasis", + "text-emphasis-color", + "text-emphasis-style", + "text-emphasis-position", + "text-decoration", + "text-indent", + "text-justify", + "text-outline", + "-ms-text-overflow", + "text-overflow", + "text-overflow-ellipsis", + "text-overflow-mode", + "text-shadow", + "text-transform", + "text-wrap", + "-webkit-text-size-adjust", + "-ms-text-size-adjust", + "letter-spacing", + "-ms-word-break", + "word-break", + "word-spacing", + "-ms-word-wrap", + "word-wrap", + "-moz-tab-size", + "-o-tab-size", + "tab-size", + "white-space", + "vertical-align", + "list-style", + "list-style-position", + "list-style-type", + "list-style-image", + "pointer-events", + "-ms-touch-action", + "touch-action", + "cursor", + "visibility", + "zoom", + "flex-direction", + "flex-order", + "flex-pack", + "flex-align", + "table-layout", + "empty-cells", + "caption-side", + "border-spacing", + "border-collapse", + "content", + "quotes", + "counter-reset", + "counter-increment", + "resize", + "-webkit-user-select", + "-moz-user-select", + "-ms-user-select", + "-o-user-select", + "user-select", + "nav-index", + "nav-up", + "nav-right", + "nav-down", + "nav-left", + "background", + "background-color", + "background-image", + "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient", + "filter:progid:DXImageTransform.Microsoft.gradient", + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", + "filter", + "background-repeat", + "background-attachment", + "background-position", + "background-position-x", + "background-position-y", + "-webkit-background-clip", + "-moz-background-clip", + "background-clip", + "background-origin", + "-webkit-background-size", + "-moz-background-size", + "-o-background-size", + "background-size", + "border", + "border-color", + "border-style", + "border-width", + "border-top", + "border-top-color", + "border-top-style", + "border-top-width", + "border-right", + "border-right-color", + "border-right-style", + "border-right-width", + "border-bottom", + "border-bottom-color", + "border-bottom-style", + "border-bottom-width", + "border-left", + "border-left-color", + "border-left-style", + "border-left-width", + "border-radius", + "border-top-left-radius", + "border-top-right-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "-webkit-border-image", + "-moz-border-image", + "-o-border-image", + "border-image", + "-webkit-border-image-source", + "-moz-border-image-source", + "-o-border-image-source", + "border-image-source", + "-webkit-border-image-slice", + "-moz-border-image-slice", + "-o-border-image-slice", + "border-image-slice", + "-webkit-border-image-width", + "-moz-border-image-width", + "-o-border-image-width", + "border-image-width", + "-webkit-border-image-outset", + "-moz-border-image-outset", + "-o-border-image-outset", + "border-image-outset", + "-webkit-border-image-repeat", + "-moz-border-image-repeat", + "-o-border-image-repeat", + "border-image-repeat", + "outline", + "outline-width", + "outline-style", + "outline-color", + "outline-offset", + "-webkit-box-shadow", + "-moz-box-shadow", + "box-shadow", + "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", + "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha", + "opacity", + "-ms-interpolation-mode", + "-webkit-transition", + "-moz-transition", + "-ms-transition", + "-o-transition", + "transition", + "-webkit-transition-delay", + "-moz-transition-delay", + "-ms-transition-delay", + "-o-transition-delay", + "transition-delay", + "-webkit-transition-timing-function", + "-moz-transition-timing-function", + "-ms-transition-timing-function", + "-o-transition-timing-function", + "transition-timing-function", + "-webkit-transition-duration", + "-moz-transition-duration", + "-ms-transition-duration", + "-o-transition-duration", + "transition-duration", + "-webkit-transition-property", + "-moz-transition-property", + "-ms-transition-property", + "-o-transition-property", + "transition-property", + "-webkit-transform", + "-moz-transform", + "-ms-transform", + "-o-transform", + "transform", + "-webkit-transform-origin", + "-moz-transform-origin", + "-ms-transform-origin", + "-o-transform-origin", + "transform-origin", + "-webkit-animation", + "-moz-animation", + "-ms-animation", + "-o-animation", + "animation", + "-webkit-animation-name", + "-moz-animation-name", + "-ms-animation-name", + "-o-animation-name", + "animation-name", + "-webkit-animation-duration", + "-moz-animation-duration", + "-ms-animation-duration", + "-o-animation-duration", + "animation-duration", + "-webkit-animation-play-state", + "-moz-animation-play-state", + "-ms-animation-play-state", + "-o-animation-play-state", + "animation-play-state", + "-webkit-animation-timing-function", + "-moz-animation-timing-function", + "-ms-animation-timing-function", + "-o-animation-timing-function", + "animation-timing-function", + "-webkit-animation-delay", + "-moz-animation-delay", + "-ms-animation-delay", + "-o-animation-delay", + "animation-delay", + "-webkit-animation-iteration-count", + "-moz-animation-iteration-count", + "-ms-animation-iteration-count", + "-o-animation-iteration-count", + "animation-iteration-count", + "-webkit-animation-direction", + "-moz-animation-direction", + "-ms-animation-direction", + "-o-animation-direction", + "animation-direction" + ] + ] +} diff --git a/app/bower_components/bootstrap/less/.csslintrc b/app/bower_components/bootstrap/less/.csslintrc new file mode 100644 index 0000000..005b862 --- /dev/null +++ b/app/bower_components/bootstrap/less/.csslintrc @@ -0,0 +1,19 @@ +{ + "adjoining-classes": false, + "box-sizing": false, + "box-model": false, + "compatible-vendor-prefixes": false, + "floats": false, + "font-sizes": false, + "gradients": false, + "important": false, + "known-properties": false, + "outline-none": false, + "qualified-headings": false, + "regex-selectors": false, + "shorthand": false, + "text-indent": false, + "unique-headings": false, + "universal-selector": false, + "unqualified-attributes": false +} diff --git a/app/bower_components/bootstrap/less/alerts.less b/app/bower_components/bootstrap/less/alerts.less new file mode 100644 index 0000000..c4199db --- /dev/null +++ b/app/bower_components/bootstrap/less/alerts.less @@ -0,0 +1,73 @@ +// +// Alerts +// -------------------------------------------------- + + +// Base styles +// ------------------------- + +.alert { + padding: @alert-padding; + margin-bottom: @line-height-computed; + border: 1px solid transparent; + border-radius: @alert-border-radius; + + // Headings for larger alerts + h4 { + margin-top: 0; + // Specified for the h4 to prevent conflicts of changing @headings-color + color: inherit; + } + + // Provide class for links that match alerts + .alert-link { + font-weight: @alert-link-font-weight; + } + + // Improve alignment and spacing of inner content + > p, + > ul { + margin-bottom: 0; + } + + > p + p { + margin-top: 5px; + } +} + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. +.alert-dismissible { + padding-right: (@alert-padding + 20); + + // Adjust close link position + .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; + } +} + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +.alert-success { + .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); +} + +.alert-info { + .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); +} + +.alert-warning { + .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); +} + +.alert-danger { + .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); +} diff --git a/app/bower_components/bootstrap/less/badges.less b/app/bower_components/bootstrap/less/badges.less new file mode 100644 index 0000000..c70bb93 --- /dev/null +++ b/app/bower_components/bootstrap/less/badges.less @@ -0,0 +1,66 @@ +// +// Badges +// -------------------------------------------------- + + +// Base class +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: @font-size-small; + font-weight: @badge-font-weight; + color: @badge-color; + line-height: @badge-line-height; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: @badge-bg; + border-radius: @badge-border-radius; + + // Empty badges collapse automatically (not available in IE8) + &:empty { + display: none; + } + + // Quick fix for badges in buttons + .btn & { + position: relative; + top: -1px; + } + + .btn-xs &, + .btn-group-xs > .btn & { + top: 0; + padding: 1px 5px; + } + + // Hover state, but only for links + a& { + &:hover, + &:focus { + color: @badge-link-hover-color; + text-decoration: none; + cursor: pointer; + } + } + + // Account for badges in navs + .list-group-item.active > &, + .nav-pills > .active > a > & { + color: @badge-active-color; + background-color: @badge-active-bg; + } + + .list-group-item > & { + float: right; + } + + .list-group-item > & + & { + margin-right: 5px; + } + + .nav-pills > li > a > & { + margin-left: 3px; + } +} diff --git a/app/bower_components/bootstrap/less/bootstrap.less b/app/bower_components/bootstrap/less/bootstrap.less new file mode 100644 index 0000000..61b7747 --- /dev/null +++ b/app/bower_components/bootstrap/less/bootstrap.less @@ -0,0 +1,50 @@ +// Core variables and mixins +@import "variables.less"; +@import "mixins.less"; + +// Reset and dependencies +@import "normalize.less"; +@import "print.less"; +@import "glyphicons.less"; + +// Core CSS +@import "scaffolding.less"; +@import "type.less"; +@import "code.less"; +@import "grid.less"; +@import "tables.less"; +@import "forms.less"; +@import "buttons.less"; + +// Components +@import "component-animations.less"; +@import "dropdowns.less"; +@import "button-groups.less"; +@import "input-groups.less"; +@import "navs.less"; +@import "navbar.less"; +@import "breadcrumbs.less"; +@import "pagination.less"; +@import "pager.less"; +@import "labels.less"; +@import "badges.less"; +@import "jumbotron.less"; +@import "thumbnails.less"; +@import "alerts.less"; +@import "progress-bars.less"; +@import "media.less"; +@import "list-group.less"; +@import "panels.less"; +@import "responsive-embed.less"; +@import "wells.less"; +@import "close.less"; + +// Components w/ JavaScript +@import "modals.less"; +@import "tooltip.less"; +@import "popovers.less"; +@import "carousel.less"; + +// Utility classes +@import "utilities.less"; +@import "responsive-utilities.less"; diff --git a/app/bower_components/bootstrap/less/breadcrumbs.less b/app/bower_components/bootstrap/less/breadcrumbs.less new file mode 100644 index 0000000..cb01d50 --- /dev/null +++ b/app/bower_components/bootstrap/less/breadcrumbs.less @@ -0,0 +1,26 @@ +// +// Breadcrumbs +// -------------------------------------------------- + + +.breadcrumb { + padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; + margin-bottom: @line-height-computed; + list-style: none; + background-color: @breadcrumb-bg; + border-radius: @border-radius-base; + + > li { + display: inline-block; + + + li:before { + content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space + padding: 0 5px; + color: @breadcrumb-color; + } + } + + > .active { + color: @breadcrumb-active-color; + } +} diff --git a/app/bower_components/bootstrap/less/button-groups.less b/app/bower_components/bootstrap/less/button-groups.less new file mode 100644 index 0000000..13c1800 --- /dev/null +++ b/app/bower_components/bootstrap/less/button-groups.less @@ -0,0 +1,243 @@ +// +// Button groups +// -------------------------------------------------- + +// Make the div behave like a button +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; // match .btn alignment given font-size hack above + > .btn { + position: relative; + float: left; + // Bring the "active" button to the front + &:hover, + &:focus, + &:active, + &.active { + z-index: 2; + } + } +} + +// Prevent double borders when buttons are next to each other +.btn-group { + .btn + .btn, + .btn + .btn-group, + .btn-group + .btn, + .btn-group + .btn-group { + margin-left: -1px; + } +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + margin-left: -5px; // Offset the first child's margin + &:extend(.clearfix all); + + .btn-group, + .input-group { + float: left; + } + > .btn, + > .btn-group, + > .input-group { + margin-left: 5px; + } +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match +.btn-group > .btn:first-child { + margin-left: 0; + &:not(:last-child):not(.dropdown-toggle) { + .border-right-radius(0); + } +} +// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + .border-left-radius(0); +} + +// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) { + > .btn:last-child, + > .dropdown-toggle { + .border-right-radius(0); + } +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + .border-left-radius(0); +} + +// On active and open, don't show outline +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + + +// Sizing +// +// Remix the default button sizing classes into new ones for easier manipulation. + +.btn-group-xs > .btn { &:extend(.btn-xs); } +.btn-group-sm > .btn { &:extend(.btn-sm); } +.btn-group-lg > .btn { &:extend(.btn-lg); } + + +// Split button dropdowns +// ---------------------- + +// Give the line between buttons some depth +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} + +// The clickable button for toggling the menu +// Remove the gradient and set the same inset shadow as the :active state +.btn-group.open .dropdown-toggle { + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + + // Show no shadow for `.btn-link` since it has no other button styles. + &.btn-link { + .box-shadow(none); + } +} + + +// Reposition the caret +.btn .caret { + margin-left: 0; +} +// Carets in other button sizes +.btn-lg .caret { + border-width: @caret-width-large @caret-width-large 0; + border-bottom-width: 0; +} +// Upside down carets for .dropup +.dropup .btn-lg .caret { + border-width: 0 @caret-width-large @caret-width-large; +} + + +// Vertical button groups +// ---------------------- + +.btn-group-vertical { + > .btn, + > .btn-group, + > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + } + + // Clear floats so dropdown menus can be properly placed + > .btn-group { + &:extend(.clearfix all); + > .btn { + float: none; + } + } + + > .btn + .btn, + > .btn + .btn-group, + > .btn-group + .btn, + > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; + } +} + +.btn-group-vertical > .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child:not(:last-child) { + border-top-right-radius: @border-radius-base; + .border-bottom-radius(0); + } + &:last-child:not(:first-child) { + border-bottom-left-radius: @border-radius-base; + .border-top-radius(0); + } +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) { + > .btn:last-child, + > .dropdown-toggle { + .border-bottom-radius(0); + } +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + .border-top-radius(0); +} + + +// Justified button groups +// ---------------------- + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; + > .btn, + > .btn-group { + float: none; + display: table-cell; + width: 1%; + } + > .btn-group .btn { + width: 100%; + } + + > .btn-group .dropdown-menu { + left: auto; + } +} + + +// Checkbox and radio options +// +// In order to support the browser's form validation feedback, powered by the +// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use +// `display: none;` or `visibility: hidden;` as that also hides the popover. +// Simply visually hiding the inputs via `opacity` would leave them clickable in +// certain cases which is prevented by using `clip` and `pointer-events`. +// This way, we ensure a DOM element is visible to position the popover from. +// +// See https://github.com/twbs/bootstrap/pull/12794 and +// https://github.com/twbs/bootstrap/pull/14559 for more information. + +[data-toggle="buttons"] { + > .btn, + > .btn-group > .btn { + input[type="radio"], + input[type="checkbox"] { + position: absolute; + clip: rect(0,0,0,0); + pointer-events: none; + } + } +} diff --git a/app/bower_components/bootstrap/less/buttons.less b/app/bower_components/bootstrap/less/buttons.less new file mode 100644 index 0000000..5a74604 --- /dev/null +++ b/app/bower_components/bootstrap/less/buttons.less @@ -0,0 +1,160 @@ +// +// Buttons +// -------------------------------------------------- + + +// Base styles +// -------------------------------------------------- + +.btn { + display: inline-block; + margin-bottom: 0; // For input.btn + font-weight: @btn-font-weight; + text-align: center; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid transparent; + white-space: nowrap; + .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base); + .user-select(none); + + &, + &:active, + &.active { + &:focus, + &.focus { + .tab-focus(); + } + } + + &:hover, + &:focus, + &.focus { + color: @btn-default-color; + text-decoration: none; + } + + &:active, + &.active { + outline: 0; + background-image: none; + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + cursor: @cursor-disabled; + pointer-events: none; // Future-proof disabling of clicks + .opacity(.65); + .box-shadow(none); + } +} + + +// Alternate buttons +// -------------------------------------------------- + +.btn-default { + .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); +} +.btn-primary { + .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); +} +// Success appears as green +.btn-success { + .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); +} +// Info appears as blue-green +.btn-info { + .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); +} +// Warning appears as orange +.btn-warning { + .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); +} +// Danger and error appear as red +.btn-danger { + .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); +} + + +// Link buttons +// ------------------------- + +// Make a button look and behave like a link +.btn-link { + color: @link-color; + font-weight: normal; + border-radius: 0; + + &, + &:active, + &.active, + &[disabled], + fieldset[disabled] & { + background-color: transparent; + .box-shadow(none); + } + &, + &:hover, + &:focus, + &:active { + border-color: transparent; + } + &:hover, + &:focus { + color: @link-hover-color; + text-decoration: @link-hover-decoration; + background-color: transparent; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: @btn-link-disabled-color; + text-decoration: none; + } + } +} + + +// Button Sizes +// -------------------------------------------------- + +.btn-lg { + // line-height: ensure even-numbered height of button next to large input + .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); +} +.btn-sm { + // line-height: ensure proper height of button next to small input + .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); +} +.btn-xs { + .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small); +} + + +// Block button +// -------------------------------------------------- + +.btn-block { + display: block; + width: 100%; +} + +// Vertically space out multiple block buttons +.btn-block + .btn-block { + margin-top: 5px; +} + +// Specificity overrides +input[type="submit"], +input[type="reset"], +input[type="button"] { + &.btn-block { + width: 100%; + } +} diff --git a/app/bower_components/bootstrap/less/carousel.less b/app/bower_components/bootstrap/less/carousel.less new file mode 100644 index 0000000..4bbe946 --- /dev/null +++ b/app/bower_components/bootstrap/less/carousel.less @@ -0,0 +1,269 @@ +// +// Carousel +// -------------------------------------------------- + + +// Wrapper for the slide container and indicators +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; + + > .item { + display: none; + position: relative; + .transition(.6s ease-in-out left); + + // Account for jankitude on images + > img, + > a > img { + &:extend(.img-responsive); + line-height: 1; + } + + // WebKit CSS3 transforms for supported devices + @media all and (transform-3d), (-webkit-transform-3d) { + .transition-transform(~'0.6s ease-in-out'); + .backface-visibility(~'hidden'); + .perspective(1000); + + &.next, + &.active.right { + .translate3d(100%, 0, 0); + left: 0; + } + &.prev, + &.active.left { + .translate3d(-100%, 0, 0); + left: 0; + } + &.next.left, + &.prev.right, + &.active { + .translate3d(0, 0, 0); + left: 0; + } + } + } + + > .active, + > .next, + > .prev { + display: block; + } + + > .active { + left: 0; + } + + > .next, + > .prev { + position: absolute; + top: 0; + width: 100%; + } + + > .next { + left: 100%; + } + > .prev { + left: -100%; + } + > .next.left, + > .prev.right { + left: 0; + } + + > .active.left { + left: -100%; + } + > .active.right { + left: 100%; + } + +} + +// Left/right controls for nav +// --------------------------- + +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: @carousel-control-width; + .opacity(@carousel-control-opacity); + font-size: @carousel-control-font-size; + color: @carousel-control-color; + text-align: center; + text-shadow: @carousel-text-shadow; + // We can't have this transition here because WebKit cancels the carousel + // animation if you trip this while in the middle of another animation. + + // Set gradients for backgrounds + &.left { + #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); + } + &.right { + left: auto; + right: 0; + #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); + } + + // Hover/focus state + &:hover, + &:focus { + outline: 0; + color: @carousel-control-color; + text-decoration: none; + .opacity(.9); + } + + // Toggles + .icon-prev, + .icon-next, + .glyphicon-chevron-left, + .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + } + .icon-prev, + .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; + } + .icon-next, + .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; + } + .icon-prev, + .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + line-height: 1; + font-family: serif; + } + + + .icon-prev { + &:before { + content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) + } + } + .icon-next { + &:before { + content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) + } + } +} + +// Optional indicator pips +// +// Add an unordered list with the following class and add a list item for each +// slide your carousel holds. + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; + + li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid @carousel-indicator-border-color; + border-radius: 10px; + cursor: pointer; + + // IE8-9 hack for event handling + // + // Internet Explorer 8-9 does not support clicks on elements without a set + // `background-color`. We cannot use `filter` since that's not viewed as a + // background color by the browser. Thus, a hack is needed. + // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer + // + // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we + // set alpha transparency for the best results possible. + background-color: #000 \9; // IE8 + background-color: rgba(0,0,0,0); // IE9 + } + .active { + margin: 0; + width: 12px; + height: 12px; + background-color: @carousel-indicator-active-bg; + } +} + +// Optional captions +// ----------------------------- +// Hidden by default for smaller viewports +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: @carousel-caption-color; + text-align: center; + text-shadow: @carousel-text-shadow; + & .btn { + text-shadow: none; // No shadow for button elements in carousel-caption + } +} + + +// Scale up controls for tablets and up +@media screen and (min-width: @screen-sm-min) { + + // Scale up the controls a smidge + .carousel-control { + .glyphicon-chevron-left, + .glyphicon-chevron-right, + .icon-prev, + .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .glyphicon-chevron-left, + .icon-prev { + margin-left: -15px; + } + .glyphicon-chevron-right, + .icon-next { + margin-right: -15px; + } + } + + // Show and left align the captions + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + + // Move up the indicators + .carousel-indicators { + bottom: 20px; + } +} diff --git a/app/bower_components/bootstrap/less/close.less b/app/bower_components/bootstrap/less/close.less new file mode 100644 index 0000000..6d5bfe0 --- /dev/null +++ b/app/bower_components/bootstrap/less/close.less @@ -0,0 +1,34 @@ +// +// Close icons +// -------------------------------------------------- + + +.close { + float: right; + font-size: (@font-size-base * 1.5); + font-weight: @close-font-weight; + line-height: 1; + color: @close-color; + text-shadow: @close-text-shadow; + .opacity(.2); + + &:hover, + &:focus { + color: @close-color; + text-decoration: none; + cursor: pointer; + .opacity(.5); + } + + // Additional properties for button version + // iOS requires the button element instead of an anchor tag. + // If you want the anchor version, it requires `href="#"`. + // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile + button& { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + } +} diff --git a/app/bower_components/bootstrap/less/code.less b/app/bower_components/bootstrap/less/code.less new file mode 100644 index 0000000..a08b4d4 --- /dev/null +++ b/app/bower_components/bootstrap/less/code.less @@ -0,0 +1,69 @@ +// +// Code (inline and block) +// -------------------------------------------------- + + +// Inline and block code styles +code, +kbd, +pre, +samp { + font-family: @font-family-monospace; +} + +// Inline code +code { + padding: 2px 4px; + font-size: 90%; + color: @code-color; + background-color: @code-bg; + border-radius: @border-radius-base; +} + +// User input typically entered via keyboard +kbd { + padding: 2px 4px; + font-size: 90%; + color: @kbd-color; + background-color: @kbd-bg; + border-radius: @border-radius-small; + box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); + + kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + box-shadow: none; + } +} + +// Blocks of code +pre { + display: block; + padding: ((@line-height-computed - 1) / 2); + margin: 0 0 (@line-height-computed / 2); + font-size: (@font-size-base - 1); // 14px to 13px + line-height: @line-height-base; + word-break: break-all; + word-wrap: break-word; + color: @pre-color; + background-color: @pre-bg; + border: 1px solid @pre-border-color; + border-radius: @border-radius-base; + + // Account for some code outputs that place code tags in pre tags + code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; + } +} + +// Enable scrollable blocks of code +.pre-scrollable { + max-height: @pre-scrollable-max-height; + overflow-y: scroll; +} diff --git a/app/bower_components/bootstrap/less/component-animations.less b/app/bower_components/bootstrap/less/component-animations.less new file mode 100644 index 0000000..0bcee91 --- /dev/null +++ b/app/bower_components/bootstrap/less/component-animations.less @@ -0,0 +1,33 @@ +// +// Component animations +// -------------------------------------------------- + +// Heads up! +// +// We don't use the `.opacity()` mixin here since it causes a bug with text +// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. + +.fade { + opacity: 0; + .transition(opacity .15s linear); + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + + &.in { display: block; } + tr&.in { display: table-row; } + tbody&.in { display: table-row-group; } +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + .transition-property(~"height, visibility"); + .transition-duration(.35s); + .transition-timing-function(ease); +} diff --git a/app/bower_components/bootstrap/less/dropdowns.less b/app/bower_components/bootstrap/less/dropdowns.less new file mode 100644 index 0000000..af34460 --- /dev/null +++ b/app/bower_components/bootstrap/less/dropdowns.less @@ -0,0 +1,214 @@ +// +// Dropdown menus +// -------------------------------------------------- + + +// Dropdown arrow/caret +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: @caret-width-base dashed; + border-right: @caret-width-base solid transparent; + border-left: @caret-width-base solid transparent; +} + +// The dropdown wrapper (div) +.dropup, +.dropdown { + position: relative; +} + +// Prevent the focus on the dropdown toggle when closing dropdowns +.dropdown-toggle:focus { + outline: 0; +} + +// The dropdown menu (ul) +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: @zindex-dropdown; + display: none; // none by default, but block on "open" of the menu + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; // override default ul + list-style: none; + font-size: @font-size-base; + text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + background-color: @dropdown-bg; + border: 1px solid @dropdown-fallback-border; // IE8 fallback + border: 1px solid @dropdown-border; + border-radius: @border-radius-base; + .box-shadow(0 6px 12px rgba(0,0,0,.175)); + background-clip: padding-box; + + // Aligns the dropdown menu to right + // + // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` + &.pull-right { + right: 0; + left: auto; + } + + // Dividers (basically an hr) within the dropdown + .divider { + .nav-divider(@dropdown-divider-bg); + } + + // Links within the dropdown menu + > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: @line-height-base; + color: @dropdown-link-color; + white-space: nowrap; // prevent links from randomly breaking onto new lines + } +} + +// Hover/Focus state +.dropdown-menu > li > a { + &:hover, + &:focus { + text-decoration: none; + color: @dropdown-link-hover-color; + background-color: @dropdown-link-hover-bg; + } +} + +// Active state +.dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: @dropdown-link-active-color; + text-decoration: none; + outline: 0; + background-color: @dropdown-link-active-bg; + } +} + +// Disabled state +// +// Gray out text and ensure the hover/focus state remains gray + +.dropdown-menu > .disabled > a { + &, + &:hover, + &:focus { + color: @dropdown-link-disabled-color; + } + + // Nuke hover/focus effects + &:hover, + &:focus { + text-decoration: none; + background-color: transparent; + background-image: none; // Remove CSS gradient + .reset-filter(); + cursor: @cursor-disabled; + } +} + +// Open state for the dropdown +.open { + // Show the menu + > .dropdown-menu { + display: block; + } + + // Remove the outline when :focus is triggered + > a { + outline: 0; + } +} + +// Menu positioning +// +// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown +// menu with the parent. +.dropdown-menu-right { + left: auto; // Reset the default from `.dropdown-menu` + right: 0; +} +// With v3, we enabled auto-flipping if you have a dropdown within a right +// aligned nav component. To enable the undoing of that, we provide an override +// to restore the default dropdown menu alignment. +// +// This is only for left-aligning a dropdown menu within a `.navbar-right` or +// `.pull-right` nav component. +.dropdown-menu-left { + left: 0; + right: auto; +} + +// Dropdown section headers +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: @font-size-small; + line-height: @line-height-base; + color: @dropdown-header-color; + white-space: nowrap; // as with > li > a +} + +// Backdrop to catch body clicks on mobile, etc. +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: (@zindex-dropdown - 10); +} + +// Right aligned dropdowns +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +// Allow for dropdowns to go bottom up (aka, dropup-menu) +// +// Just add .dropup after the standard .dropdown class and you're set, bro. +// TODO: abstract this so that the navbar fixed styles are not placed here? + +.dropup, +.navbar-fixed-bottom .dropdown { + // Reverse the caret + .caret { + border-top: 0; + border-bottom: @caret-width-base solid; + content: ""; + } + // Different positioning for bottom up menu + .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; + } +} + + +// Component alignment +// +// Reiterate per navbar.less and the modified component alignment there. + +@media (min-width: @grid-float-breakpoint) { + .navbar-right { + .dropdown-menu { + .dropdown-menu-right(); + } + // Necessary for overrides of the default right aligned menu. + // Will remove come v4 in all likelihood. + .dropdown-menu-left { + .dropdown-menu-left(); + } + } +} diff --git a/app/bower_components/bootstrap/less/forms.less b/app/bower_components/bootstrap/less/forms.less new file mode 100644 index 0000000..e4b5062 --- /dev/null +++ b/app/bower_components/bootstrap/less/forms.less @@ -0,0 +1,574 @@ +// +// Forms +// -------------------------------------------------- + + +// Normalize non-controls +// +// Restyle and baseline non-control form elements. + +fieldset { + padding: 0; + margin: 0; + border: 0; + // Chrome and Firefox set a `min-width: min-content;` on fieldsets, + // so we reset that to ensure it behaves more like a standard block element. + // See https://github.com/twbs/bootstrap/issues/12359. + min-width: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: @line-height-computed; + font-size: (@font-size-base * 1.5); + line-height: inherit; + color: @legend-color; + border: 0; + border-bottom: 1px solid @legend-border-color; +} + +label { + display: inline-block; + max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) + margin-bottom: 5px; + font-weight: bold; +} + + +// Normalize form controls +// +// While most of our form styles require extra classes, some basic normalization +// is required to ensure optimum display with or without those classes to better +// address browser inconsistencies. + +// Override content-box in Normalize (* isn't specific enough) +input[type="search"] { + .box-sizing(border-box); +} + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; // IE8-9 + line-height: normal; +} + +// Set the height of file controls to match text inputs +input[type="file"] { + display: block; +} + +// Make range inputs behave like textual form controls +input[type="range"] { + display: block; + width: 100%; +} + +// Make multiple select elements height not fixed +select[multiple], +select[size] { + height: auto; +} + +// Focus for file, radio, and checkbox +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + .tab-focus(); +} + +// Adjust output element +output { + display: block; + padding-top: (@padding-base-vertical + 1); + font-size: @font-size-base; + line-height: @line-height-base; + color: @input-color; +} + + +// Common form controls +// +// Shared size and type resets for form controls. Apply `.form-control` to any +// of the following form controls: +// +// select +// textarea +// input[type="text"] +// input[type="password"] +// input[type="datetime"] +// input[type="datetime-local"] +// input[type="date"] +// input[type="month"] +// input[type="time"] +// input[type="week"] +// input[type="number"] +// input[type="email"] +// input[type="url"] +// input[type="search"] +// input[type="tel"] +// input[type="color"] + +.form-control { + display: block; + width: 100%; + height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) + padding: @padding-base-vertical @padding-base-horizontal; + font-size: @font-size-base; + line-height: @line-height-base; + color: @input-color; + background-color: @input-bg; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid @input-border; + border-radius: @input-border-radius; // Note: This has no effect on s in CSS. + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); + .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); + + // Customize the `:focus` state to imitate native WebKit styles. + .form-control-focus(); + + // Placeholder + .placeholder(); + + // Disabled and read-only inputs + // + // HTML5 says that controls under a fieldset > legend:first-child won't be + // disabled if the fieldset is disabled. Due to implementation difficulty, we + // don't honor that edge case; we style them as disabled anyway. + &[disabled], + &[readonly], + fieldset[disabled] & { + background-color: @input-bg-disabled; + opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655 + } + + &[disabled], + fieldset[disabled] & { + cursor: @cursor-disabled; + } + + // Reset height for `textarea`s + textarea& { + height: auto; + } +} + + +// Search inputs in iOS +// +// This overrides the extra rounded corners on search inputs in iOS so that our +// `.form-control` class can properly style them. Note that this cannot simply +// be added to `.form-control` as it's not specific enough. For details, see +// https://github.com/twbs/bootstrap/issues/11586. + +input[type="search"] { + -webkit-appearance: none; +} + + +// Special styles for iOS temporal inputs +// +// In Mobile Safari, setting `display: block` on temporal inputs causes the +// text within the input to become vertically misaligned. As a workaround, we +// set a pixel line-height that matches the given height of the input, but only +// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + line-height: @input-height-base; + + &.input-sm, + .input-group-sm & { + line-height: @input-height-small; + } + + &.input-lg, + .input-group-lg & { + line-height: @input-height-large; + } + } +} + + +// Form groups +// +// Designed to help with the organization and spacing of vertical forms. For +// horizontal forms, use the predefined grid classes. + +.form-group { + margin-bottom: @form-group-margin-bottom; +} + + +// Checkboxes and radios +// +// Indent the labels to position radios/checkboxes as hanging controls. + +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; + + label { + min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; + } +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-left: -20px; + margin-top: 4px \9; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing +} + +// Radios and checkboxes on same line +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; // space out consecutive inline controls +} + +// Apply same disabled cursor tweak as for inputs +// Some special care is needed because
Star + +// Import the fonts +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('@{icon-font-path}@{icon-font-name}.eot'); + src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'), + url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'), + url('@{icon-font-path}@{icon-font-name}.woff') format('woff'), + url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'), + url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg'); +} + +// Catchall baseclass +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +// Individual icons +.glyphicon-asterisk { &:before { content: "\2a"; } } +.glyphicon-plus { &:before { content: "\2b"; } } +.glyphicon-euro, +.glyphicon-eur { &:before { content: "\20ac"; } } +.glyphicon-minus { &:before { content: "\2212"; } } +.glyphicon-cloud { &:before { content: "\2601"; } } +.glyphicon-envelope { &:before { content: "\2709"; } } +.glyphicon-pencil { &:before { content: "\270f"; } } +.glyphicon-glass { &:before { content: "\e001"; } } +.glyphicon-music { &:before { content: "\e002"; } } +.glyphicon-search { &:before { content: "\e003"; } } +.glyphicon-heart { &:before { content: "\e005"; } } +.glyphicon-star { &:before { content: "\e006"; } } +.glyphicon-star-empty { &:before { content: "\e007"; } } +.glyphicon-user { &:before { content: "\e008"; } } +.glyphicon-film { &:before { content: "\e009"; } } +.glyphicon-th-large { &:before { content: "\e010"; } } +.glyphicon-th { &:before { content: "\e011"; } } +.glyphicon-th-list { &:before { content: "\e012"; } } +.glyphicon-ok { &:before { content: "\e013"; } } +.glyphicon-remove { &:before { content: "\e014"; } } +.glyphicon-zoom-in { &:before { content: "\e015"; } } +.glyphicon-zoom-out { &:before { content: "\e016"; } } +.glyphicon-off { &:before { content: "\e017"; } } +.glyphicon-signal { &:before { content: "\e018"; } } +.glyphicon-cog { &:before { content: "\e019"; } } +.glyphicon-trash { &:before { content: "\e020"; } } +.glyphicon-home { &:before { content: "\e021"; } } +.glyphicon-file { &:before { content: "\e022"; } } +.glyphicon-time { &:before { content: "\e023"; } } +.glyphicon-road { &:before { content: "\e024"; } } +.glyphicon-download-alt { &:before { content: "\e025"; } } +.glyphicon-download { &:before { content: "\e026"; } } +.glyphicon-upload { &:before { content: "\e027"; } } +.glyphicon-inbox { &:before { content: "\e028"; } } +.glyphicon-play-circle { &:before { content: "\e029"; } } +.glyphicon-repeat { &:before { content: "\e030"; } } +.glyphicon-refresh { &:before { content: "\e031"; } } +.glyphicon-list-alt { &:before { content: "\e032"; } } +.glyphicon-lock { &:before { content: "\e033"; } } +.glyphicon-flag { &:before { content: "\e034"; } } +.glyphicon-headphones { &:before { content: "\e035"; } } +.glyphicon-volume-off { &:before { content: "\e036"; } } +.glyphicon-volume-down { &:before { content: "\e037"; } } +.glyphicon-volume-up { &:before { content: "\e038"; } } +.glyphicon-qrcode { &:before { content: "\e039"; } } +.glyphicon-barcode { &:before { content: "\e040"; } } +.glyphicon-tag { &:before { content: "\e041"; } } +.glyphicon-tags { &:before { content: "\e042"; } } +.glyphicon-book { &:before { content: "\e043"; } } +.glyphicon-bookmark { &:before { content: "\e044"; } } +.glyphicon-print { &:before { content: "\e045"; } } +.glyphicon-camera { &:before { content: "\e046"; } } +.glyphicon-font { &:before { content: "\e047"; } } +.glyphicon-bold { &:before { content: "\e048"; } } +.glyphicon-italic { &:before { content: "\e049"; } } +.glyphicon-text-height { &:before { content: "\e050"; } } +.glyphicon-text-width { &:before { content: "\e051"; } } +.glyphicon-align-left { &:before { content: "\e052"; } } +.glyphicon-align-center { &:before { content: "\e053"; } } +.glyphicon-align-right { &:before { content: "\e054"; } } +.glyphicon-align-justify { &:before { content: "\e055"; } } +.glyphicon-list { &:before { content: "\e056"; } } +.glyphicon-indent-left { &:before { content: "\e057"; } } +.glyphicon-indent-right { &:before { content: "\e058"; } } +.glyphicon-facetime-video { &:before { content: "\e059"; } } +.glyphicon-picture { &:before { content: "\e060"; } } +.glyphicon-map-marker { &:before { content: "\e062"; } } +.glyphicon-adjust { &:before { content: "\e063"; } } +.glyphicon-tint { &:before { content: "\e064"; } } +.glyphicon-edit { &:before { content: "\e065"; } } +.glyphicon-share { &:before { content: "\e066"; } } +.glyphicon-check { &:before { content: "\e067"; } } +.glyphicon-move { &:before { content: "\e068"; } } +.glyphicon-step-backward { &:before { content: "\e069"; } } +.glyphicon-fast-backward { &:before { content: "\e070"; } } +.glyphicon-backward { &:before { content: "\e071"; } } +.glyphicon-play { &:before { content: "\e072"; } } +.glyphicon-pause { &:before { content: "\e073"; } } +.glyphicon-stop { &:before { content: "\e074"; } } +.glyphicon-forward { &:before { content: "\e075"; } } +.glyphicon-fast-forward { &:before { content: "\e076"; } } +.glyphicon-step-forward { &:before { content: "\e077"; } } +.glyphicon-eject { &:before { content: "\e078"; } } +.glyphicon-chevron-left { &:before { content: "\e079"; } } +.glyphicon-chevron-right { &:before { content: "\e080"; } } +.glyphicon-plus-sign { &:before { content: "\e081"; } } +.glyphicon-minus-sign { &:before { content: "\e082"; } } +.glyphicon-remove-sign { &:before { content: "\e083"; } } +.glyphicon-ok-sign { &:before { content: "\e084"; } } +.glyphicon-question-sign { &:before { content: "\e085"; } } +.glyphicon-info-sign { &:before { content: "\e086"; } } +.glyphicon-screenshot { &:before { content: "\e087"; } } +.glyphicon-remove-circle { &:before { content: "\e088"; } } +.glyphicon-ok-circle { &:before { content: "\e089"; } } +.glyphicon-ban-circle { &:before { content: "\e090"; } } +.glyphicon-arrow-left { &:before { content: "\e091"; } } +.glyphicon-arrow-right { &:before { content: "\e092"; } } +.glyphicon-arrow-up { &:before { content: "\e093"; } } +.glyphicon-arrow-down { &:before { content: "\e094"; } } +.glyphicon-share-alt { &:before { content: "\e095"; } } +.glyphicon-resize-full { &:before { content: "\e096"; } } +.glyphicon-resize-small { &:before { content: "\e097"; } } +.glyphicon-exclamation-sign { &:before { content: "\e101"; } } +.glyphicon-gift { &:before { content: "\e102"; } } +.glyphicon-leaf { &:before { content: "\e103"; } } +.glyphicon-fire { &:before { content: "\e104"; } } +.glyphicon-eye-open { &:before { content: "\e105"; } } +.glyphicon-eye-close { &:before { content: "\e106"; } } +.glyphicon-warning-sign { &:before { content: "\e107"; } } +.glyphicon-plane { &:before { content: "\e108"; } } +.glyphicon-calendar { &:before { content: "\e109"; } } +.glyphicon-random { &:before { content: "\e110"; } } +.glyphicon-comment { &:before { content: "\e111"; } } +.glyphicon-magnet { &:before { content: "\e112"; } } +.glyphicon-chevron-up { &:before { content: "\e113"; } } +.glyphicon-chevron-down { &:before { content: "\e114"; } } +.glyphicon-retweet { &:before { content: "\e115"; } } +.glyphicon-shopping-cart { &:before { content: "\e116"; } } +.glyphicon-folder-close { &:before { content: "\e117"; } } +.glyphicon-folder-open { &:before { content: "\e118"; } } +.glyphicon-resize-vertical { &:before { content: "\e119"; } } +.glyphicon-resize-horizontal { &:before { content: "\e120"; } } +.glyphicon-hdd { &:before { content: "\e121"; } } +.glyphicon-bullhorn { &:before { content: "\e122"; } } +.glyphicon-bell { &:before { content: "\e123"; } } +.glyphicon-certificate { &:before { content: "\e124"; } } +.glyphicon-thumbs-up { &:before { content: "\e125"; } } +.glyphicon-thumbs-down { &:before { content: "\e126"; } } +.glyphicon-hand-right { &:before { content: "\e127"; } } +.glyphicon-hand-left { &:before { content: "\e128"; } } +.glyphicon-hand-up { &:before { content: "\e129"; } } +.glyphicon-hand-down { &:before { content: "\e130"; } } +.glyphicon-circle-arrow-right { &:before { content: "\e131"; } } +.glyphicon-circle-arrow-left { &:before { content: "\e132"; } } +.glyphicon-circle-arrow-up { &:before { content: "\e133"; } } +.glyphicon-circle-arrow-down { &:before { content: "\e134"; } } +.glyphicon-globe { &:before { content: "\e135"; } } +.glyphicon-wrench { &:before { content: "\e136"; } } +.glyphicon-tasks { &:before { content: "\e137"; } } +.glyphicon-filter { &:before { content: "\e138"; } } +.glyphicon-briefcase { &:before { content: "\e139"; } } +.glyphicon-fullscreen { &:before { content: "\e140"; } } +.glyphicon-dashboard { &:before { content: "\e141"; } } +.glyphicon-paperclip { &:before { content: "\e142"; } } +.glyphicon-heart-empty { &:before { content: "\e143"; } } +.glyphicon-link { &:before { content: "\e144"; } } +.glyphicon-phone { &:before { content: "\e145"; } } +.glyphicon-pushpin { &:before { content: "\e146"; } } +.glyphicon-usd { &:before { content: "\e148"; } } +.glyphicon-gbp { &:before { content: "\e149"; } } +.glyphicon-sort { &:before { content: "\e150"; } } +.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } } +.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } } +.glyphicon-sort-by-order { &:before { content: "\e153"; } } +.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } } +.glyphicon-sort-by-attributes { &:before { content: "\e155"; } } +.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } } +.glyphicon-unchecked { &:before { content: "\e157"; } } +.glyphicon-expand { &:before { content: "\e158"; } } +.glyphicon-collapse-down { &:before { content: "\e159"; } } +.glyphicon-collapse-up { &:before { content: "\e160"; } } +.glyphicon-log-in { &:before { content: "\e161"; } } +.glyphicon-flash { &:before { content: "\e162"; } } +.glyphicon-log-out { &:before { content: "\e163"; } } +.glyphicon-new-window { &:before { content: "\e164"; } } +.glyphicon-record { &:before { content: "\e165"; } } +.glyphicon-save { &:before { content: "\e166"; } } +.glyphicon-open { &:before { content: "\e167"; } } +.glyphicon-saved { &:before { content: "\e168"; } } +.glyphicon-import { &:before { content: "\e169"; } } +.glyphicon-export { &:before { content: "\e170"; } } +.glyphicon-send { &:before { content: "\e171"; } } +.glyphicon-floppy-disk { &:before { content: "\e172"; } } +.glyphicon-floppy-saved { &:before { content: "\e173"; } } +.glyphicon-floppy-remove { &:before { content: "\e174"; } } +.glyphicon-floppy-save { &:before { content: "\e175"; } } +.glyphicon-floppy-open { &:before { content: "\e176"; } } +.glyphicon-credit-card { &:before { content: "\e177"; } } +.glyphicon-transfer { &:before { content: "\e178"; } } +.glyphicon-cutlery { &:before { content: "\e179"; } } +.glyphicon-header { &:before { content: "\e180"; } } +.glyphicon-compressed { &:before { content: "\e181"; } } +.glyphicon-earphone { &:before { content: "\e182"; } } +.glyphicon-phone-alt { &:before { content: "\e183"; } } +.glyphicon-tower { &:before { content: "\e184"; } } +.glyphicon-stats { &:before { content: "\e185"; } } +.glyphicon-sd-video { &:before { content: "\e186"; } } +.glyphicon-hd-video { &:before { content: "\e187"; } } +.glyphicon-subtitles { &:before { content: "\e188"; } } +.glyphicon-sound-stereo { &:before { content: "\e189"; } } +.glyphicon-sound-dolby { &:before { content: "\e190"; } } +.glyphicon-sound-5-1 { &:before { content: "\e191"; } } +.glyphicon-sound-6-1 { &:before { content: "\e192"; } } +.glyphicon-sound-7-1 { &:before { content: "\e193"; } } +.glyphicon-copyright-mark { &:before { content: "\e194"; } } +.glyphicon-registration-mark { &:before { content: "\e195"; } } +.glyphicon-cloud-download { &:before { content: "\e197"; } } +.glyphicon-cloud-upload { &:before { content: "\e198"; } } +.glyphicon-tree-conifer { &:before { content: "\e199"; } } +.glyphicon-tree-deciduous { &:before { content: "\e200"; } } +.glyphicon-cd { &:before { content: "\e201"; } } +.glyphicon-save-file { &:before { content: "\e202"; } } +.glyphicon-open-file { &:before { content: "\e203"; } } +.glyphicon-level-up { &:before { content: "\e204"; } } +.glyphicon-copy { &:before { content: "\e205"; } } +.glyphicon-paste { &:before { content: "\e206"; } } +// The following 2 Glyphicons are omitted for the time being because +// they currently use Unicode codepoints that are outside the +// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle +// non-BMP codepoints in CSS string escapes, and thus can't display these two icons. +// Notably, the bug affects some older versions of the Android Browser. +// More info: https://github.com/twbs/bootstrap/issues/10106 +// .glyphicon-door { &:before { content: "\1f6aa"; } } +// .glyphicon-key { &:before { content: "\1f511"; } } +.glyphicon-alert { &:before { content: "\e209"; } } +.glyphicon-equalizer { &:before { content: "\e210"; } } +.glyphicon-king { &:before { content: "\e211"; } } +.glyphicon-queen { &:before { content: "\e212"; } } +.glyphicon-pawn { &:before { content: "\e213"; } } +.glyphicon-bishop { &:before { content: "\e214"; } } +.glyphicon-knight { &:before { content: "\e215"; } } +.glyphicon-baby-formula { &:before { content: "\e216"; } } +.glyphicon-tent { &:before { content: "\26fa"; } } +.glyphicon-blackboard { &:before { content: "\e218"; } } +.glyphicon-bed { &:before { content: "\e219"; } } +.glyphicon-apple { &:before { content: "\f8ff"; } } +.glyphicon-erase { &:before { content: "\e221"; } } +.glyphicon-hourglass { &:before { content: "\231b"; } } +.glyphicon-lamp { &:before { content: "\e223"; } } +.glyphicon-duplicate { &:before { content: "\e224"; } } +.glyphicon-piggy-bank { &:before { content: "\e225"; } } +.glyphicon-scissors { &:before { content: "\e226"; } } +.glyphicon-bitcoin { &:before { content: "\e227"; } } +.glyphicon-btc { &:before { content: "\e227"; } } +.glyphicon-xbt { &:before { content: "\e227"; } } +.glyphicon-yen { &:before { content: "\00a5"; } } +.glyphicon-jpy { &:before { content: "\00a5"; } } +.glyphicon-ruble { &:before { content: "\20bd"; } } +.glyphicon-rub { &:before { content: "\20bd"; } } +.glyphicon-scale { &:before { content: "\e230"; } } +.glyphicon-ice-lolly { &:before { content: "\e231"; } } +.glyphicon-ice-lolly-tasted { &:before { content: "\e232"; } } +.glyphicon-education { &:before { content: "\e233"; } } +.glyphicon-option-horizontal { &:before { content: "\e234"; } } +.glyphicon-option-vertical { &:before { content: "\e235"; } } +.glyphicon-menu-hamburger { &:before { content: "\e236"; } } +.glyphicon-modal-window { &:before { content: "\e237"; } } +.glyphicon-oil { &:before { content: "\e238"; } } +.glyphicon-grain { &:before { content: "\e239"; } } +.glyphicon-sunglasses { &:before { content: "\e240"; } } +.glyphicon-text-size { &:before { content: "\e241"; } } +.glyphicon-text-color { &:before { content: "\e242"; } } +.glyphicon-text-background { &:before { content: "\e243"; } } +.glyphicon-object-align-top { &:before { content: "\e244"; } } +.glyphicon-object-align-bottom { &:before { content: "\e245"; } } +.glyphicon-object-align-horizontal{ &:before { content: "\e246"; } } +.glyphicon-object-align-left { &:before { content: "\e247"; } } +.glyphicon-object-align-vertical { &:before { content: "\e248"; } } +.glyphicon-object-align-right { &:before { content: "\e249"; } } +.glyphicon-triangle-right { &:before { content: "\e250"; } } +.glyphicon-triangle-left { &:before { content: "\e251"; } } +.glyphicon-triangle-bottom { &:before { content: "\e252"; } } +.glyphicon-triangle-top { &:before { content: "\e253"; } } +.glyphicon-console { &:before { content: "\e254"; } } +.glyphicon-superscript { &:before { content: "\e255"; } } +.glyphicon-subscript { &:before { content: "\e256"; } } +.glyphicon-menu-left { &:before { content: "\e257"; } } +.glyphicon-menu-right { &:before { content: "\e258"; } } +.glyphicon-menu-down { &:before { content: "\e259"; } } +.glyphicon-menu-up { &:before { content: "\e260"; } } diff --git a/app/bower_components/bootstrap/less/grid.less b/app/bower_components/bootstrap/less/grid.less new file mode 100644 index 0000000..e100655 --- /dev/null +++ b/app/bower_components/bootstrap/less/grid.less @@ -0,0 +1,84 @@ +// +// Grid system +// -------------------------------------------------- + + +// Container widths +// +// Set the container width, and override it for fixed navbars in media queries. + +.container { + .container-fixed(); + + @media (min-width: @screen-sm-min) { + width: @container-sm; + } + @media (min-width: @screen-md-min) { + width: @container-md; + } + @media (min-width: @screen-lg-min) { + width: @container-lg; + } +} + + +// Fluid container +// +// Utilizes the mixin meant for fixed width containers, but without any defined +// width for fluid, full width layouts. + +.container-fluid { + .container-fixed(); +} + + +// Row +// +// Rows contain and clear the floats of your columns. + +.row { + .make-row(); +} + + +// Columns +// +// Common styles for small and large grid columns + +.make-grid-columns(); + + +// Extra small grid +// +// Columns, offsets, pushes, and pulls for extra small devices like +// smartphones. + +.make-grid(xs); + + +// Small grid +// +// Columns, offsets, pushes, and pulls for the small device range, from phones +// to tablets. + +@media (min-width: @screen-sm-min) { + .make-grid(sm); +} + + +// Medium grid +// +// Columns, offsets, pushes, and pulls for the desktop device range. + +@media (min-width: @screen-md-min) { + .make-grid(md); +} + + +// Large grid +// +// Columns, offsets, pushes, and pulls for the large desktop device range. + +@media (min-width: @screen-lg-min) { + .make-grid(lg); +} diff --git a/app/bower_components/bootstrap/less/input-groups.less b/app/bower_components/bootstrap/less/input-groups.less new file mode 100644 index 0000000..a8712f2 --- /dev/null +++ b/app/bower_components/bootstrap/less/input-groups.less @@ -0,0 +1,166 @@ +// +// Input groups +// -------------------------------------------------- + +// Base styles +// ------------------------- +.input-group { + position: relative; // For dropdowns + display: table; + border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table + + // Undo padding and float of grid classes + &[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; + } + + .form-control { + // Ensure that the input is always above the *appended* addon button for + // proper border colors. + position: relative; + z-index: 2; + + // IE9 fubars the placeholder attribute in text inputs and the arrows on + // select elements in input groups. To fix it, we float the input. Details: + // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855 + float: left; + + width: 100%; + margin-bottom: 0; + } +} + +// Sizing options +// +// Remix the default form control sizing classes into new ones for easier +// manipulation. + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + .input-lg(); +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + .input-sm(); +} + + +// Display as table-cell +// ------------------------- +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; + + &:not(:first-child):not(:last-child) { + border-radius: 0; + } +} +// Addon and addon wrapper for buttons +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; // Match the inputs +} + +// Text input groups +// ------------------------- +.input-group-addon { + padding: @padding-base-vertical @padding-base-horizontal; + font-size: @font-size-base; + font-weight: normal; + line-height: 1; + color: @input-color; + text-align: center; + background-color: @input-group-addon-bg; + border: 1px solid @input-group-addon-border-color; + border-radius: @border-radius-base; + + // Sizing + &.input-sm { + padding: @padding-small-vertical @padding-small-horizontal; + font-size: @font-size-small; + border-radius: @border-radius-small; + } + &.input-lg { + padding: @padding-large-vertical @padding-large-horizontal; + font-size: @font-size-large; + border-radius: @border-radius-large; + } + + // Nuke default margins from checkboxes and radios to vertically center within. + input[type="radio"], + input[type="checkbox"] { + margin-top: 0; + } +} + +// Reset rounded corners +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + .border-right-radius(0); +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + .border-left-radius(0); +} +.input-group-addon:last-child { + border-left: 0; +} + +// Button input groups +// ------------------------- +.input-group-btn { + position: relative; + // Jankily prevent input button groups from wrapping with `white-space` and + // `font-size` in combination with `inline-block` on buttons. + font-size: 0; + white-space: nowrap; + + // Negative margin for spacing, position for bringing hovered/focused/actived + // element above the siblings. + > .btn { + position: relative; + + .btn { + margin-left: -1px; + } + // Bring the "active" button to the front + &:hover, + &:focus, + &:active { + z-index: 2; + } + } + + // Negative margin to only have a 1px border between the two + &:first-child { + > .btn, + > .btn-group { + margin-right: -1px; + } + } + &:last-child { + > .btn, + > .btn-group { + margin-left: -1px; + } + } +} diff --git a/app/bower_components/bootstrap/less/jumbotron.less b/app/bower_components/bootstrap/less/jumbotron.less new file mode 100644 index 0000000..93036d3 --- /dev/null +++ b/app/bower_components/bootstrap/less/jumbotron.less @@ -0,0 +1,50 @@ +// +// Jumbotron +// -------------------------------------------------- + + +.jumbotron { + padding: @jumbotron-padding (@jumbotron-padding / 2); + margin-bottom: @jumbotron-padding; + color: @jumbotron-color; + background-color: @jumbotron-bg; + + h1, + .h1 { + color: @jumbotron-heading-color; + } + + p { + margin-bottom: (@jumbotron-padding / 2); + font-size: @jumbotron-font-size; + font-weight: 200; + } + + > hr { + border-top-color: darken(@jumbotron-bg, 10%); + } + + .container &, + .container-fluid & { + border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container + } + + .container { + max-width: 100%; + } + + @media screen and (min-width: @screen-sm-min) { + padding: (@jumbotron-padding * 1.6) 0; + + .container &, + .container-fluid & { + padding-left: (@jumbotron-padding * 2); + padding-right: (@jumbotron-padding * 2); + } + + h1, + .h1 { + font-size: (@font-size-base * 4.5); + } + } +} diff --git a/app/bower_components/bootstrap/less/labels.less b/app/bower_components/bootstrap/less/labels.less new file mode 100644 index 0000000..9a5a270 --- /dev/null +++ b/app/bower_components/bootstrap/less/labels.less @@ -0,0 +1,64 @@ +// +// Labels +// -------------------------------------------------- + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: @label-color; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; + + // Add hover effects, but only for links + a& { + &:hover, + &:focus { + color: @label-link-hover-color; + text-decoration: none; + cursor: pointer; + } + } + + // Empty labels collapse automatically (not available in IE8) + &:empty { + display: none; + } + + // Quick fix for labels in buttons + .btn & { + position: relative; + top: -1px; + } +} + +// Colors +// Contextual variations (linked labels get darker on :hover) + +.label-default { + .label-variant(@label-default-bg); +} + +.label-primary { + .label-variant(@label-primary-bg); +} + +.label-success { + .label-variant(@label-success-bg); +} + +.label-info { + .label-variant(@label-info-bg); +} + +.label-warning { + .label-variant(@label-warning-bg); +} + +.label-danger { + .label-variant(@label-danger-bg); +} diff --git a/app/bower_components/bootstrap/less/list-group.less b/app/bower_components/bootstrap/less/list-group.less new file mode 100644 index 0000000..1462ce1 --- /dev/null +++ b/app/bower_components/bootstrap/less/list-group.less @@ -0,0 +1,124 @@ +// +// List groups +// -------------------------------------------------- + + +// Base class +// +// Easily usable on
    ,
      , or
      . + +.list-group { + // No need to set list-style: none; since .list-group-item is block level + margin-bottom: 20px; + padding-left: 0; // reset padding because ul and ol +} + + +// Individual list items +// +// Use on `li`s or `div`s within the `.list-group` parent. + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + // Place the border on the list items and negative margin up for better styling + margin-bottom: -1px; + background-color: @list-group-bg; + border: 1px solid @list-group-border; + + // Round the first and last items + &:first-child { + .border-top-radius(@list-group-border-radius); + } + &:last-child { + margin-bottom: 0; + .border-bottom-radius(@list-group-border-radius); + } +} + + +// Linked list items +// +// Use anchor elements instead of `li`s or `div`s to create linked list items. +// Includes an extra `.active` modifier class for showing selected items. + +a.list-group-item { + color: @list-group-link-color; + + .list-group-item-heading { + color: @list-group-link-heading-color; + } + + // Hover state + &:hover, + &:focus { + text-decoration: none; + color: @list-group-link-hover-color; + background-color: @list-group-hover-bg; + } +} + +.list-group-item { + // Disabled state + &.disabled, + &.disabled:hover, + &.disabled:focus { + background-color: @list-group-disabled-bg; + color: @list-group-disabled-color; + cursor: @cursor-disabled; + + // Force color to inherit for custom content + .list-group-item-heading { + color: inherit; + } + .list-group-item-text { + color: @list-group-disabled-text-color; + } + } + + // Active class on item itself, not parent + &.active, + &.active:hover, + &.active:focus { + z-index: 2; // Place active items above their siblings for proper border styling + color: @list-group-active-color; + background-color: @list-group-active-bg; + border-color: @list-group-active-border; + + // Force color to inherit for custom content + .list-group-item-heading, + .list-group-item-heading > small, + .list-group-item-heading > .small { + color: inherit; + } + .list-group-item-text { + color: @list-group-active-text-color; + } + } +} + + +// Contextual variants +// +// Add modifier classes to change text and background color on individual items. +// Organizationally, this must come after the `:hover` states. + +.list-group-item-variant(success; @state-success-bg; @state-success-text); +.list-group-item-variant(info; @state-info-bg; @state-info-text); +.list-group-item-variant(warning; @state-warning-bg; @state-warning-text); +.list-group-item-variant(danger; @state-danger-bg; @state-danger-text); + + +// Custom content options +// +// Extra classes for creating well-formatted content within `.list-group-item`s. + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} diff --git a/app/bower_components/bootstrap/less/media.less b/app/bower_components/bootstrap/less/media.less new file mode 100644 index 0000000..a6bf781 --- /dev/null +++ b/app/bower_components/bootstrap/less/media.less @@ -0,0 +1,61 @@ +.media { + // Proper spacing between instances of .media + margin-top: 15px; + + &:first-child { + margin-top: 0; + } +} + +.media, +.media-body { + zoom: 1; + overflow: hidden; +} + +.media-body { + width: 10000px; +} + +.media-object { + display: block; +} + +.media-right, +.media > .pull-right { + padding-left: 10px; +} + +.media-left, +.media > .pull-left { + padding-right: 10px; +} + +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} + +.media-middle { + vertical-align: middle; +} + +.media-bottom { + vertical-align: bottom; +} + +// Reset margins on headings for tighter default spacing +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} + +// Media list variation +// +// Undo default ul/ol styles +.media-list { + padding-left: 0; + list-style: none; +} diff --git a/app/bower_components/bootstrap/less/mixins.less b/app/bower_components/bootstrap/less/mixins.less new file mode 100644 index 0000000..af4408f --- /dev/null +++ b/app/bower_components/bootstrap/less/mixins.less @@ -0,0 +1,39 @@ +// Mixins +// -------------------------------------------------- + +// Utilities +@import "mixins/hide-text.less"; +@import "mixins/opacity.less"; +@import "mixins/image.less"; +@import "mixins/labels.less"; +@import "mixins/reset-filter.less"; +@import "mixins/resize.less"; +@import "mixins/responsive-visibility.less"; +@import "mixins/size.less"; +@import "mixins/tab-focus.less"; +@import "mixins/text-emphasis.less"; +@import "mixins/text-overflow.less"; +@import "mixins/vendor-prefixes.less"; + +// Components +@import "mixins/alerts.less"; +@import "mixins/buttons.less"; +@import "mixins/panels.less"; +@import "mixins/pagination.less"; +@import "mixins/list-group.less"; +@import "mixins/nav-divider.less"; +@import "mixins/forms.less"; +@import "mixins/progress-bar.less"; +@import "mixins/table-row.less"; + +// Skins +@import "mixins/background-variant.less"; +@import "mixins/border-radius.less"; +@import "mixins/gradients.less"; + +// Layout +@import "mixins/clearfix.less"; +@import "mixins/center-block.less"; +@import "mixins/nav-vertical-align.less"; +@import "mixins/grid-framework.less"; +@import "mixins/grid.less"; diff --git a/app/bower_components/bootstrap/less/mixins/alerts.less b/app/bower_components/bootstrap/less/mixins/alerts.less new file mode 100644 index 0000000..396196f --- /dev/null +++ b/app/bower_components/bootstrap/less/mixins/alerts.less @@ -0,0 +1,14 @@ +// Alerts + +.alert-variant(@background; @border; @text-color) { + background-color: @background; + border-color: @border; + color: @text-color; + + hr { + border-top-color: darken(@border, 5%); + } + .alert-link { + color: darken(@text-color, 10%); + } +} diff --git a/app/bower_components/bootstrap/less/mixins/background-variant.less b/app/bower_components/bootstrap/less/mixins/background-variant.less new file mode 100644 index 0000000..556e490 --- /dev/null +++ b/app/bower_components/bootstrap/less/mixins/background-variant.less @@ -0,0 +1,8 @@ +// Contextual backgrounds + +.bg-variant(@color) { + background-color: @color; + a&:hover { + background-color: darken(@color, 10%); + } +} diff --git a/app/bower_components/bootstrap/less/mixins/border-radius.less b/app/bower_components/bootstrap/less/mixins/border-radius.less new file mode 100644 index 0000000..ca05dbf --- /dev/null +++ b/app/bower_components/bootstrap/less/mixins/border-radius.less @@ -0,0 +1,18 @@ +// Single side border-radius + +.border-top-radius(@radius) { + border-top-right-radius: @radius; + border-top-left-radius: @radius; +} +.border-right-radius(@radius) { + border-bottom-right-radius: @radius; + border-top-right-radius: @radius; +} +.border-bottom-radius(@radius) { + border-bottom-right-radius: @radius; + border-bottom-left-radius: @radius; +} +.border-left-radius(@radius) { + border-bottom-left-radius: @radius; + border-top-left-radius: @radius; +} diff --git a/app/bower_components/bootstrap/less/mixins/buttons.less b/app/bower_components/bootstrap/less/mixins/buttons.less new file mode 100644 index 0000000..92d8a05 --- /dev/null +++ b/app/bower_components/bootstrap/less/mixins/buttons.less @@ -0,0 +1,52 @@ +// Button variants +// +// Easily pump out default styles, as well as :hover, :focus, :active, +// and disabled options for all buttons + +.button-variant(@color; @background; @border) { + color: @color; + background-color: @background; + border-color: @border; + + &:hover, + &:focus, + &.focus, + &:active, + &.active, + .open > .dropdown-toggle& { + color: @color; + background-color: darken(@background, 10%); + border-color: darken(@border, 12%); + } + &:active, + &.active, + .open > .dropdown-toggle& { + background-image: none; + } + &.disabled, + &[disabled], + fieldset[disabled] & { + &, + &:hover, + &:focus, + &.focus, + &:active, + &.active { + background-color: @background; + border-color: @border; + } + } + + .badge { + color: @background; + background-color: @color; + } +} + +// Button sizes +.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { + padding: @padding-vertical @padding-horizontal; + font-size: @font-size; + line-height: @line-height; + border-radius: @border-radius; +} diff --git a/app/bower_components/bootstrap/less/mixins/center-block.less b/app/bower_components/bootstrap/less/mixins/center-block.less new file mode 100644 index 0000000..d18d6de --- /dev/null +++ b/app/bower_components/bootstrap/less/mixins/center-block.less @@ -0,0 +1,7 @@ +// Center-align a block level element + +.center-block() { + display: block; + margin-left: auto; + margin-right: auto; +} diff --git a/app/bower_components/bootstrap/less/mixins/clearfix.less b/app/bower_components/bootstrap/less/mixins/clearfix.less new file mode 100644 index 0000000..3f7a382 --- /dev/null +++ b/app/bower_components/bootstrap/less/mixins/clearfix.less @@ -0,0 +1,22 @@ +// Clearfix +// +// For modern browsers +// 1. The space content is one way to avoid an Opera bug when the +// contenteditable attribute is included anywhere else in the document. +// Otherwise it causes space to appear at the top and bottom of elements +// that are clearfixed. +// 2. The use of `table` rather than `block` is only necessary if using +// `:before` to contain the top-margins of child elements. +// +// Source: http://nicolasgallagher.com/micro-clearfix-hack/ + +.clearfix() { + &:before, + &:after { + content: " "; // 1 + display: table; // 2 + } + &:after { + clear: both; + } +} diff --git a/app/bower_components/bootstrap/less/mixins/forms.less b/app/bower_components/bootstrap/less/mixins/forms.less new file mode 100644 index 0000000..6f55ed9 --- /dev/null +++ b/app/bower_components/bootstrap/less/mixins/forms.less @@ -0,0 +1,85 @@ +// Form validation states +// +// Used in forms.less to generate the form validation CSS for warnings, errors, +// and successes. + +.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) { + // Color the label and help text + .help-block, + .control-label, + .radio, + .checkbox, + .radio-inline, + .checkbox-inline, + &.radio label, + &.checkbox label, + &.radio-inline label, + &.checkbox-inline label { + color: @text-color; + } + // Set the border and box shadow on specific inputs to match + .form-control { + border-color: @border-color; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work + &:focus { + border-color: darken(@border-color, 10%); + @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%); + .box-shadow(@shadow); + } + } + // Set validation states also for addons + .input-group-addon { + color: @text-color; + border-color: @border-color; + background-color: @background-color; + } + // Optional feedback icon + .form-control-feedback { + color: @text-color; + } +} + + +// Form control focus state +// +// Generate a customized focus state and for any input with the specified color, +// which defaults to the `@input-border-focus` variable. +// +// We highly encourage you to not customize the default value, but instead use +// this to tweak colors on an as-needed basis. This aesthetic change is based on +// WebKit's default styles, but applicable to a wider range of browsers. Its +// usability and accessibility should be taken into account with any change. +// +// Example usage: change the default blue border and shadow to white for better +// contrast against a dark gray background. +.form-control-focus(@color: @input-border-focus) { + @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); + &:focus { + border-color: @color; + outline: 0; + .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}"); + } +} + +// Form control sizing +// +// Relative text size, padding, and border-radii changes for form controls. For +// horizontal sizing, wrap controls in the predefined grid classes. `` background color +@input-bg: #fff; +//** `` background color +@input-bg-disabled: @gray-lighter; + +//** Text color for ``s +@input-color: @gray; +//** `` border color +@input-border: #ccc; + +// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4 +//** Default `.form-control` border radius +// This has no effect on ``s in CSS. +@input-border-radius: @border-radius-base; +//** Large `.form-control` border radius +@input-border-radius-large: @border-radius-large; +//** Small `.form-control` border radius +@input-border-radius-small: @border-radius-small; + +//** Border color for inputs on focus +@input-border-focus: #66afe9; + +//** Placeholder text color +@input-color-placeholder: #999; + +//** Default `.form-control` height +@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); +//** Large `.form-control` height +@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); +//** Small `.form-control` height +@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); + +//** `.form-group` margin +@form-group-margin-bottom: 15px; + +@legend-color: @gray-dark; +@legend-border-color: #e5e5e5; + +//** Background color for textual input addons +@input-group-addon-bg: @gray-lighter; +//** Border color for textual input addons +@input-group-addon-border-color: @input-border; + +//** Disabled cursor for form controls and buttons. +@cursor-disabled: not-allowed; + + +//== Dropdowns +// +//## Dropdown menu container and contents. + +//** Background for the dropdown menu. +@dropdown-bg: #fff; +//** Dropdown menu `border-color`. +@dropdown-border: rgba(0,0,0,.15); +//** Dropdown menu `border-color` **for IE8**. +@dropdown-fallback-border: #ccc; +//** Divider color for between dropdown items. +@dropdown-divider-bg: #e5e5e5; + +//** Dropdown link text color. +@dropdown-link-color: @gray-dark; +//** Hover color for dropdown links. +@dropdown-link-hover-color: darken(@gray-dark, 5%); +//** Hover background for dropdown links. +@dropdown-link-hover-bg: #f5f5f5; + +//** Active dropdown menu item text color. +@dropdown-link-active-color: @component-active-color; +//** Active dropdown menu item background color. +@dropdown-link-active-bg: @component-active-bg; + +//** Disabled dropdown menu item background color. +@dropdown-link-disabled-color: @gray-light; + +//** Text color for headers within dropdown menus. +@dropdown-header-color: @gray-light; + +//** Deprecated `@dropdown-caret-color` as of v3.1.0 +@dropdown-caret-color: #000; + + +//-- Z-index master list +// +// Warning: Avoid customizing these values. They're used for a bird's eye view +// of components dependent on the z-axis and are designed to all work together. +// +// Note: These variables are not generated into the Customizer. + +@zindex-navbar: 1000; +@zindex-dropdown: 1000; +@zindex-popover: 1060; +@zindex-tooltip: 1070; +@zindex-navbar-fixed: 1030; +@zindex-modal-background: 1040; +@zindex-modal: 1050; + + +//== Media queries breakpoints +// +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +// Extra small screen / phone +//** Deprecated `@screen-xs` as of v3.0.1 +@screen-xs: 480px; +//** Deprecated `@screen-xs-min` as of v3.2.0 +@screen-xs-min: @screen-xs; +//** Deprecated `@screen-phone` as of v3.0.1 +@screen-phone: @screen-xs-min; + +// Small screen / tablet +//** Deprecated `@screen-sm` as of v3.0.1 +@screen-sm: 768px; +@screen-sm-min: @screen-sm; +//** Deprecated `@screen-tablet` as of v3.0.1 +@screen-tablet: @screen-sm-min; + +// Medium screen / desktop +//** Deprecated `@screen-md` as of v3.0.1 +@screen-md: 992px; +@screen-md-min: @screen-md; +//** Deprecated `@screen-desktop` as of v3.0.1 +@screen-desktop: @screen-md-min; + +// Large screen / wide desktop +//** Deprecated `@screen-lg` as of v3.0.1 +@screen-lg: 1200px; +@screen-lg-min: @screen-lg; +//** Deprecated `@screen-lg-desktop` as of v3.0.1 +@screen-lg-desktop: @screen-lg-min; + +// So media queries don't overlap when required, provide a maximum +@screen-xs-max: (@screen-sm-min - 1); +@screen-sm-max: (@screen-md-min - 1); +@screen-md-max: (@screen-lg-min - 1); + + +//== Grid system +// +//## Define your custom responsive grid. + +//** Number of columns in the grid. +@grid-columns: 12; +//** Padding between columns. Gets divided in half for the left and right. +@grid-gutter-width: 30px; +// Navbar collapse +//** Point at which the navbar becomes uncollapsed. +@grid-float-breakpoint: @screen-sm-min; +//** Point at which the navbar begins collapsing. +@grid-float-breakpoint-max: (@grid-float-breakpoint - 1); + + +//== Container sizes +// +//## Define the maximum width of `.container` for different screen sizes. + +// Small screen / tablet +@container-tablet: (720px + @grid-gutter-width); +//** For `@screen-sm-min` and up. +@container-sm: @container-tablet; + +// Medium screen / desktop +@container-desktop: (940px + @grid-gutter-width); +//** For `@screen-md-min` and up. +@container-md: @container-desktop; + +// Large screen / wide desktop +@container-large-desktop: (1140px + @grid-gutter-width); +//** For `@screen-lg-min` and up. +@container-lg: @container-large-desktop; + + +//== Navbar +// +//## + +// Basics of a navbar +@navbar-height: 50px; +@navbar-margin-bottom: @line-height-computed; +@navbar-border-radius: @border-radius-base; +@navbar-padding-horizontal: floor((@grid-gutter-width / 2)); +@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); +@navbar-collapse-max-height: 340px; + +@navbar-default-color: #777; +@navbar-default-bg: #f8f8f8; +@navbar-default-border: darken(@navbar-default-bg, 6.5%); + +// Navbar links +@navbar-default-link-color: #777; +@navbar-default-link-hover-color: #333; +@navbar-default-link-hover-bg: transparent; +@navbar-default-link-active-color: #555; +@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%); +@navbar-default-link-disabled-color: #ccc; +@navbar-default-link-disabled-bg: transparent; + +// Navbar brand label +@navbar-default-brand-color: @navbar-default-link-color; +@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%); +@navbar-default-brand-hover-bg: transparent; + +// Navbar toggle +@navbar-default-toggle-hover-bg: #ddd; +@navbar-default-toggle-icon-bar-bg: #888; +@navbar-default-toggle-border-color: #ddd; + + +// Inverted navbar +// Reset inverted navbar basics +@navbar-inverse-color: lighten(@gray-light, 15%); +@navbar-inverse-bg: #222; +@navbar-inverse-border: darken(@navbar-inverse-bg, 10%); + +// Inverted navbar links +@navbar-inverse-link-color: lighten(@gray-light, 15%); +@navbar-inverse-link-hover-color: #fff; +@navbar-inverse-link-hover-bg: transparent; +@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; +@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); +@navbar-inverse-link-disabled-color: #444; +@navbar-inverse-link-disabled-bg: transparent; + +// Inverted navbar brand label +@navbar-inverse-brand-color: @navbar-inverse-link-color; +@navbar-inverse-brand-hover-color: #fff; +@navbar-inverse-brand-hover-bg: transparent; + +// Inverted navbar toggle +@navbar-inverse-toggle-hover-bg: #333; +@navbar-inverse-toggle-icon-bar-bg: #fff; +@navbar-inverse-toggle-border-color: #333; + + +//== Navs +// +//## + +//=== Shared nav styles +@nav-link-padding: 10px 15px; +@nav-link-hover-bg: @gray-lighter; + +@nav-disabled-link-color: @gray-light; +@nav-disabled-link-hover-color: @gray-light; + +//== Tabs +@nav-tabs-border-color: #ddd; + +@nav-tabs-link-hover-border-color: @gray-lighter; + +@nav-tabs-active-link-hover-bg: @body-bg; +@nav-tabs-active-link-hover-color: @gray; +@nav-tabs-active-link-hover-border-color: #ddd; + +@nav-tabs-justified-link-border-color: #ddd; +@nav-tabs-justified-active-link-border-color: @body-bg; + +//== Pills +@nav-pills-border-radius: @border-radius-base; +@nav-pills-active-link-hover-bg: @component-active-bg; +@nav-pills-active-link-hover-color: @component-active-color; + + +//== Pagination +// +//## + +@pagination-color: @link-color; +@pagination-bg: #fff; +@pagination-border: #ddd; + +@pagination-hover-color: @link-hover-color; +@pagination-hover-bg: @gray-lighter; +@pagination-hover-border: #ddd; + +@pagination-active-color: #fff; +@pagination-active-bg: @brand-primary; +@pagination-active-border: @brand-primary; + +@pagination-disabled-color: @gray-light; +@pagination-disabled-bg: #fff; +@pagination-disabled-border: #ddd; + + +//== Pager +// +//## + +@pager-bg: @pagination-bg; +@pager-border: @pagination-border; +@pager-border-radius: 15px; + +@pager-hover-bg: @pagination-hover-bg; + +@pager-active-bg: @pagination-active-bg; +@pager-active-color: @pagination-active-color; + +@pager-disabled-color: @pagination-disabled-color; + + +//== Jumbotron +// +//## + +@jumbotron-padding: 30px; +@jumbotron-color: inherit; +@jumbotron-bg: @gray-lighter; +@jumbotron-heading-color: inherit; +@jumbotron-font-size: ceil((@font-size-base * 1.5)); + + +//== Form states and alerts +// +//## Define colors for form feedback states and, by default, alerts. + +@state-success-text: #3c763d; +@state-success-bg: #dff0d8; +@state-success-border: darken(spin(@state-success-bg, -10), 5%); + +@state-info-text: #31708f; +@state-info-bg: #d9edf7; +@state-info-border: darken(spin(@state-info-bg, -10), 7%); + +@state-warning-text: #8a6d3b; +@state-warning-bg: #fcf8e3; +@state-warning-border: darken(spin(@state-warning-bg, -10), 5%); + +@state-danger-text: #a94442; +@state-danger-bg: #f2dede; +@state-danger-border: darken(spin(@state-danger-bg, -10), 5%); + + +//== Tooltips +// +//## + +//** Tooltip max width +@tooltip-max-width: 200px; +//** Tooltip text color +@tooltip-color: #fff; +//** Tooltip background color +@tooltip-bg: #000; +@tooltip-opacity: .9; + +//** Tooltip arrow width +@tooltip-arrow-width: 5px; +//** Tooltip arrow color +@tooltip-arrow-color: @tooltip-bg; + + +//== Popovers +// +//## + +//** Popover body background color +@popover-bg: #fff; +//** Popover maximum width +@popover-max-width: 276px; +//** Popover border color +@popover-border-color: rgba(0,0,0,.2); +//** Popover fallback border color +@popover-fallback-border-color: #ccc; + +//** Popover title background color +@popover-title-bg: darken(@popover-bg, 3%); + +//** Popover arrow width +@popover-arrow-width: 10px; +//** Popover arrow color +@popover-arrow-color: @popover-bg; + +//** Popover outer arrow width +@popover-arrow-outer-width: (@popover-arrow-width + 1); +//** Popover outer arrow color +@popover-arrow-outer-color: fadein(@popover-border-color, 5%); +//** Popover outer arrow fallback color +@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); + + +//== Labels +// +//## + +//** Default label background color +@label-default-bg: @gray-light; +//** Primary label background color +@label-primary-bg: @brand-primary; +//** Success label background color +@label-success-bg: @brand-success; +//** Info label background color +@label-info-bg: @brand-info; +//** Warning label background color +@label-warning-bg: @brand-warning; +//** Danger label background color +@label-danger-bg: @brand-danger; + +//** Default label text color +@label-color: #fff; +//** Default text color of a linked label +@label-link-hover-color: #fff; + + +//== Modals +// +//## + +//** Padding applied to the modal body +@modal-inner-padding: 15px; + +//** Padding applied to the modal title +@modal-title-padding: 15px; +//** Modal title line-height +@modal-title-line-height: @line-height-base; + +//** Background color of modal content area +@modal-content-bg: #fff; +//** Modal content border color +@modal-content-border-color: rgba(0,0,0,.2); +//** Modal content border color **for IE8** +@modal-content-fallback-border-color: #999; + +//** Modal backdrop background color +@modal-backdrop-bg: #000; +//** Modal backdrop opacity +@modal-backdrop-opacity: .5; +//** Modal header border color +@modal-header-border-color: #e5e5e5; +//** Modal footer border color +@modal-footer-border-color: @modal-header-border-color; + +@modal-lg: 900px; +@modal-md: 600px; +@modal-sm: 300px; + + +//== Alerts +// +//## Define alert colors, border radius, and padding. + +@alert-padding: 15px; +@alert-border-radius: @border-radius-base; +@alert-link-font-weight: bold; + +@alert-success-bg: @state-success-bg; +@alert-success-text: @state-success-text; +@alert-success-border: @state-success-border; + +@alert-info-bg: @state-info-bg; +@alert-info-text: @state-info-text; +@alert-info-border: @state-info-border; + +@alert-warning-bg: @state-warning-bg; +@alert-warning-text: @state-warning-text; +@alert-warning-border: @state-warning-border; + +@alert-danger-bg: @state-danger-bg; +@alert-danger-text: @state-danger-text; +@alert-danger-border: @state-danger-border; + + +//== Progress bars +// +//## + +//** Background color of the whole progress component +@progress-bg: #f5f5f5; +//** Progress bar text color +@progress-bar-color: #fff; +//** Variable for setting rounded corners on progress bar. +@progress-border-radius: @border-radius-base; + +//** Default progress bar color +@progress-bar-bg: @brand-primary; +//** Success progress bar color +@progress-bar-success-bg: @brand-success; +//** Warning progress bar color +@progress-bar-warning-bg: @brand-warning; +//** Danger progress bar color +@progress-bar-danger-bg: @brand-danger; +//** Info progress bar color +@progress-bar-info-bg: @brand-info; + + +//== List group +// +//## + +//** Background color on `.list-group-item` +@list-group-bg: #fff; +//** `.list-group-item` border color +@list-group-border: #ddd; +//** List group border radius +@list-group-border-radius: @border-radius-base; + +//** Background color of single list items on hover +@list-group-hover-bg: #f5f5f5; +//** Text color of active list items +@list-group-active-color: @component-active-color; +//** Background color of active list items +@list-group-active-bg: @component-active-bg; +//** Border color of active list elements +@list-group-active-border: @list-group-active-bg; +//** Text color for content within active list items +@list-group-active-text-color: lighten(@list-group-active-bg, 40%); + +//** Text color of disabled list items +@list-group-disabled-color: @gray-light; +//** Background color of disabled list items +@list-group-disabled-bg: @gray-lighter; +//** Text color for content within disabled list items +@list-group-disabled-text-color: @list-group-disabled-color; + +@list-group-link-color: #555; +@list-group-link-hover-color: @list-group-link-color; +@list-group-link-heading-color: #333; + + +//== Panels +// +//## + +@panel-bg: #fff; +@panel-body-padding: 15px; +@panel-heading-padding: 10px 15px; +@panel-footer-padding: @panel-heading-padding; +@panel-border-radius: @border-radius-base; + +//** Border color for elements within panels +@panel-inner-border: #ddd; +@panel-footer-bg: #f5f5f5; + +@panel-default-text: @gray-dark; +@panel-default-border: #ddd; +@panel-default-heading-bg: #f5f5f5; + +@panel-primary-text: #fff; +@panel-primary-border: @brand-primary; +@panel-primary-heading-bg: @brand-primary; + +@panel-success-text: @state-success-text; +@panel-success-border: @state-success-border; +@panel-success-heading-bg: @state-success-bg; + +@panel-info-text: @state-info-text; +@panel-info-border: @state-info-border; +@panel-info-heading-bg: @state-info-bg; + +@panel-warning-text: @state-warning-text; +@panel-warning-border: @state-warning-border; +@panel-warning-heading-bg: @state-warning-bg; + +@panel-danger-text: @state-danger-text; +@panel-danger-border: @state-danger-border; +@panel-danger-heading-bg: @state-danger-bg; + + +//== Thumbnails +// +//## + +//** Padding around the thumbnail image +@thumbnail-padding: 4px; +//** Thumbnail background color +@thumbnail-bg: @body-bg; +//** Thumbnail border color +@thumbnail-border: #ddd; +//** Thumbnail border radius +@thumbnail-border-radius: @border-radius-base; + +//** Custom text color for thumbnail captions +@thumbnail-caption-color: @text-color; +//** Padding around the thumbnail caption +@thumbnail-caption-padding: 9px; + + +//== Wells +// +//## + +@well-bg: #f5f5f5; +@well-border: darken(@well-bg, 7%); + + +//== Badges +// +//## + +@badge-color: #fff; +//** Linked badge text color on hover +@badge-link-hover-color: #fff; +@badge-bg: @gray-light; + +//** Badge text color in active nav link +@badge-active-color: @link-color; +//** Badge background color in active nav link +@badge-active-bg: #fff; + +@badge-font-weight: bold; +@badge-line-height: 1; +@badge-border-radius: 10px; + + +//== Breadcrumbs +// +//## + +@breadcrumb-padding-vertical: 8px; +@breadcrumb-padding-horizontal: 15px; +//** Breadcrumb background color +@breadcrumb-bg: #f5f5f5; +//** Breadcrumb text color +@breadcrumb-color: #ccc; +//** Text color of current page in the breadcrumb +@breadcrumb-active-color: @gray-light; +//** Textual separator for between breadcrumb elements +@breadcrumb-separator: "/"; + + +//== Carousel +// +//## + +@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); + +@carousel-control-color: #fff; +@carousel-control-width: 15%; +@carousel-control-opacity: .5; +@carousel-control-font-size: 20px; + +@carousel-indicator-active-bg: #fff; +@carousel-indicator-border-color: #fff; + +@carousel-caption-color: #fff; + + +//== Close +// +//## + +@close-font-weight: bold; +@close-color: #000; +@close-text-shadow: 0 1px 0 #fff; + + +//== Code +// +//## + +@code-color: #c7254e; +@code-bg: #f9f2f4; + +@kbd-color: #fff; +@kbd-bg: #333; + +@pre-bg: #f5f5f5; +@pre-color: @gray-dark; +@pre-border-color: #ccc; +@pre-scrollable-max-height: 340px; + + +//== Type +// +//## + +//** Horizontal offset for forms and lists. +@component-offset-horizontal: 180px; +//** Text muted color +@text-muted: @gray-light; +//** Abbreviations and acronyms border color +@abbr-border-color: @gray-light; +//** Headings small color +@headings-small-color: @gray-light; +//** Blockquote small color +@blockquote-small-color: @gray-light; +//** Blockquote font size +@blockquote-font-size: (@font-size-base * 1.25); +//** Blockquote border color +@blockquote-border-color: @gray-lighter; +//** Page header border color +@page-header-border-color: @gray-lighter; +//** Width of horizontal description list titles +@dl-horizontal-offset: @component-offset-horizontal; +//** Horizontal line color. +@hr-border: @gray-lighter; diff --git a/app/bower_components/bootstrap/less/wells.less b/app/bower_components/bootstrap/less/wells.less new file mode 100644 index 0000000..15d072b --- /dev/null +++ b/app/bower_components/bootstrap/less/wells.less @@ -0,0 +1,29 @@ +// +// Wells +// -------------------------------------------------- + + +// Base class +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: @well-bg; + border: 1px solid @well-border; + border-radius: @border-radius-base; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); + blockquote { + border-color: #ddd; + border-color: rgba(0,0,0,.15); + } +} + +// Sizes +.well-lg { + padding: 24px; + border-radius: @border-radius-large; +} +.well-sm { + padding: 9px; + border-radius: @border-radius-small; +} diff --git a/app/bower_components/bootstrap/package.js b/app/bower_components/bootstrap/package.js new file mode 100644 index 0000000..e42eb98 --- /dev/null +++ b/app/bower_components/bootstrap/package.js @@ -0,0 +1,22 @@ +// package metadata file for Meteor.js + +Package.describe({ + name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap + summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', + version: '3.3.4', + git: 'https://github.com/twbs/bootstrap.git' +}); + +Package.onUse(function (api) { + api.versionsFrom('METEOR@1.0'); + api.use('jquery', 'client'); + api.addFiles([ + 'dist/fonts/glyphicons-halflings-regular.eot', + 'dist/fonts/glyphicons-halflings-regular.svg', + 'dist/fonts/glyphicons-halflings-regular.ttf', + 'dist/fonts/glyphicons-halflings-regular.woff', + 'dist/fonts/glyphicons-halflings-regular.woff2', + 'dist/css/bootstrap.css', + 'dist/js/bootstrap.js', + ], 'client'); +}); diff --git a/app/bower_components/bootstrap/package.json b/app/bower_components/bootstrap/package.json new file mode 100644 index 0000000..5bfb386 --- /dev/null +++ b/app/bower_components/bootstrap/package.json @@ -0,0 +1,93 @@ +{ + "name": "bootstrap", + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "version": "3.3.4", + "keywords": [ + "css", + "less", + "mobile-first", + "responsive", + "front-end", + "framework", + "web" + ], + "homepage": "http://getbootstrap.com", + "author": "Twitter, Inc.", + "scripts": { + "test": "grunt test" + }, + "style": "dist/css/bootstrap.css", + "less": "less/bootstrap.less", + "main": "./dist/js/npm", + "repository": { + "type": "git", + "url": "https://github.com/twbs/bootstrap.git" + }, + "bugs": { + "url": "https://github.com/twbs/bootstrap/issues" + }, + "license": { + "type": "MIT", + "url": "https://github.com/twbs/bootstrap/blob/master/LICENSE" + }, + "devDependencies": { + "btoa": "~1.1.2", + "glob": "~5.0.3", + "grunt": "~0.4.5", + "grunt-autoprefixer": "~2.2.0", + "grunt-banner": "~0.3.1", + "grunt-contrib-clean": "~0.6.0", + "grunt-contrib-compress": "~0.13.0", + "grunt-contrib-concat": "~0.5.1", + "grunt-contrib-connect": "~0.9.0", + "grunt-contrib-copy": "~0.8.0", + "grunt-contrib-csslint": "~0.4.0", + "grunt-contrib-cssmin": "~0.12.2", + "grunt-contrib-jade": "~0.14.1", + "grunt-contrib-jshint": "~0.11.0", + "grunt-contrib-less": "~1.0.0", + "grunt-contrib-qunit": "~0.5.2", + "grunt-contrib-uglify": "~0.8.0", + "grunt-contrib-watch": "~0.6.1", + "grunt-csscomb": "~3.0.0", + "grunt-exec": "~0.4.6", + "grunt-html": "~4.0.1", + "grunt-jekyll": "~0.4.2", + "grunt-jscs": "~1.5.0", + "grunt-saucelabs": "~8.6.0", + "grunt-sed": "~0.1.1", + "load-grunt-tasks": "~3.1.0", + "markdown-it": "^4.0.1", + "npm-shrinkwrap": "^200.1.0", + "time-grunt": "^1.1.0" + }, + "engines": { + "node": ">=0.10.1" + }, + "files": [ + "dist", + "fonts", + "grunt/*.js", + "grunt/*.json", + "js/*.js", + "less/**/*.less", + "Gruntfile.js", + "LICENSE" + ], + "jspm": { + "main": "js/bootstrap", + "directories": { + "example": "examples", + "lib": "dist" + }, + "shim": { + "js/bootstrap": { + "imports": "jquery", + "exports": "$" + } + }, + "buildConfig": { + "uglify": true + } + } +} diff --git a/app/bower_components/jquery/.bower.json b/app/bower_components/jquery/.bower.json new file mode 100644 index 0000000..8825f0d --- /dev/null +++ b/app/bower_components/jquery/.bower.json @@ -0,0 +1,25 @@ +{ + "name": "jquery", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "package.json" + ], + "keywords": [ + "jquery", + "javascript", + "browser", + "library" + ], + "homepage": "https://github.com/jquery/jquery-dist", + "version": "2.2.4", + "_release": "2.2.4", + "_resolution": { + "type": "version", + "tag": "2.2.4", + "commit": "c0185ab7c75aab88762c5aae780b9d83b80eda72" + }, + "_source": "https://github.com/jquery/jquery-dist.git", + "_target": "2.2.4", + "_originalSource": "jquery" +} \ No newline at end of file diff --git a/app/bower_components/jquery/AUTHORS.txt b/app/bower_components/jquery/AUTHORS.txt new file mode 100644 index 0000000..dde64ca --- /dev/null +++ b/app/bower_components/jquery/AUTHORS.txt @@ -0,0 +1,278 @@ +Authors ordered by first contribution. + +John Resig +Gilles van den Hoven +Michael Geary +Stefan Petre +Yehuda Katz +Corey Jewett +Klaus Hartl +Franck Marcia +Jörn Zaefferer +Paul Bakaus +Brandon Aaron +Mike Alsup +Dave Methvin +Ed Engelhardt +Sean Catchpole +Paul Mclanahan +David Serduke +Richard D. Worth +Scott González +Ariel Flesler +Jon Evans +TJ Holowaychuk +Michael Bensoussan +Robert Katić +Louis-Rémi Babé +Earle Castledine +Damian Janowski +Rich Dougherty +Kim Dalsgaard +Andrea Giammarchi +Mark Gibson +Karl Swedberg +Justin Meyer +Ben Alman +James Padolsey +David Petersen +Batiste Bieler +Alexander Farkas +Rick Waldron +Filipe Fortes +Neeraj Singh +Paul Irish +Iraê Carvalho +Matt Curry +Michael Monteleone +Noah Sloan +Tom Viner +Douglas Neiner +Adam J. Sontag +Dave Reed +Ralph Whitbeck +Carl Fürstenberg +Jacob Wright +J. Ryan Stinnett +unknown +temp01 +Heungsub Lee +Colin Snover +Ryan W Tenney +Pinhook +Ron Otten +Jephte Clain +Anton Matzneller +Alex Sexton +Dan Heberden +Henri Wiechers +Russell Holbrook +Julian Aubourg +Gianni Alessandro Chiappetta +Scott Jehl +James Burke +Jonas Pfenniger +Xavi Ramirez +Jared Grippe +Sylvester Keil +Brandon Sterne +Mathias Bynens +Timmy Willison +Corey Frang +Digitalxero +Anton Kovalyov +David Murdoch +Josh Varner +Charles McNulty +Jordan Boesch +Jess Thrysoee +Michael Murray +Lee Carpenter +Alexis Abril +Rob Morgan +John Firebaugh +Sam Bisbee +Gilmore Davidson +Brian Brennan +Xavier Montillet +Daniel Pihlstrom +Sahab Yazdani +avaly +Scott Hughes +Mike Sherov +Greg Hazel +Schalk Neethling +Denis Knauf +Timo Tijhof +Steen Nielsen +Anton Ryzhov +Shi Chuan +Berker Peksag +Toby Brain +Matt Mueller +Justin +Daniel Herman +Oleg Gaidarenko +Richard Gibson +Rafaël Blais Masson +cmc3cn <59194618@qq.com> +Joe Presbrey +Sindre Sorhus +Arne de Bree +Vladislav Zarakovsky +Andrew E Monat +Oskari +Joao Henrique de Andrade Bruni +tsinha +Matt Farmer +Trey Hunner +Jason Moon +Jeffery To +Kris Borchers +Vladimir Zhuravlev +Jacob Thornton +Chad Killingsworth +Nowres Rafid +David Benjamin +Uri Gilad +Chris Faulkner +Elijah Manor +Daniel Chatfield +Nikita Govorov +Wesley Walser +Mike Pennisi +Markus Staab +Dave Riddle +Callum Macrae +Benjamin Truyman +James Huston +Erick Ruiz de Chávez +David Bonner +Akintayo Akinwunmi +MORGAN +Ismail Khair +Carl Danley +Mike Petrovich +Greg Lavallee +Daniel Gálvez +Sai Lung Wong +Tom H Fuertes +Roland Eckl +Jay Merrifield +Allen J Schmidt Jr +Jonathan Sampson +Marcel Greter +Matthias Jäggli +David Fox +Yiming He +Devin Cooper +Paul Ramos +Rod Vagg +Bennett Sorbo +Sebastian Burkhard +Zachary Adam Kaplan +nanto_vi +nanto +Danil Somsikov +Ryunosuke SATO +Jean Boussier +Adam Coulombe +Andrew Plummer +Mark Raddatz +Isaac Z. Schlueter +Karl Sieburg +Pascal Borreli +Nguyen Phuc Lam +Dmitry Gusev +Michał Gołębiowski +Li Xudong +Steven Benner +Tom H Fuertes +Renato Oliveira dos Santos +ros3cin +Jason Bedard +Kyle Robinson Young +Chris Talkington +Eddie Monge +Terry Jones +Jason Merino +Jeremy Dunck +Chris Price +Guy Bedford +Amey Sakhadeo +Mike Sidorov +Anthony Ryan +Dominik D. Geyer +George Kats +Lihan Li +Ronny Springer +Chris Antaki +Marian Sollmann +njhamann +Ilya Kantor +David Hong +John Paul +Jakob Stoeck +Christopher Jones +Forbes Lindesay +S. Andrew Sheppard +Leonardo Balter +Roman Reiß +Benjy Cui +Rodrigo Rosenfeld Rosas +John Hoven +Philip Jägenstedt +Christian Kosmowski +Liang Peng +TJ VanToll +Senya Pugach +Aurelio De Rosa +Nazar Mokrynskyi +Amit Merchant +Jason Bedard +Arthur Verschaeve +Dan Hart +Bin Xin +David Corbacho +Veaceslav Grimalschi +Daniel Husar +Frederic Hemberger +Ben Toews +Aditya Raghavan +Victor Homyakov +Shivaji Varma +Nicolas HENRY +Anne-Gaelle Colom +George Mauer +Leonardo Braga +Stephen Edgar +Thomas Tortorini +Winston Howes +Jon Hester +Alexander O'Mara +Bastian Buchholz +Arthur Stolyar +Calvin Metcalf +Mu Haibao +Richard McDaniel +Chris Rebert +Gabriel Schulhof +Gilad Peleg +Martin Naumann +Marek Lewandowski +Bruno Pérel +Reed Loden +Daniel Nill +Yongwoo Jeon +Sean Henderson +Richard Kraaijenhagen +Connor Atherton +Gary Ye +Christian Grete +Liza Ramo +Julian Alexander Murillo +Joelle Fleurantin +Jun Sun +Devin Wilson +Todor Prikumov +Zack Hall diff --git a/app/bower_components/jquery/LICENSE.txt b/app/bower_components/jquery/LICENSE.txt new file mode 100644 index 0000000..5312a4c --- /dev/null +++ b/app/bower_components/jquery/LICENSE.txt @@ -0,0 +1,36 @@ +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. diff --git a/app/bower_components/jquery/README.md b/app/bower_components/jquery/README.md new file mode 100644 index 0000000..ba3174a --- /dev/null +++ b/app/bower_components/jquery/README.md @@ -0,0 +1,65 @@ +# jQuery + +> jQuery is a fast, small, and feature-rich JavaScript library. + +For information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/). +For source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery). + +## Including jQuery + +Below are some of the most common ways to include jQuery. + +### Browser + +#### Script tag + +```html + +``` + +#### Babel + +[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively. + +```js +import $ from "jquery"; +``` + +#### Browserify/Webpack + +There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this... + +```js +var $ = require("jquery"); +``` + +#### AMD (Asynchronous Module Definition) + +AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html). + +```js +define(["jquery"], function($) { + +}); +``` + +### Node + +To include jQuery in [Node](nodejs.org), first install with npm. + +```sh +npm install jquery +``` + +For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes. + +```js +require("jsdom").env("", function(err, window) { + if (err) { + console.error(err); + return; + } + + var $ = require("jquery")(window); +}); +``` diff --git a/app/bower_components/jquery/bower.json b/app/bower_components/jquery/bower.json new file mode 100644 index 0000000..95798d5 --- /dev/null +++ b/app/bower_components/jquery/bower.json @@ -0,0 +1,14 @@ +{ + "name": "jquery", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "package.json" + ], + "keywords": [ + "jquery", + "javascript", + "browser", + "library" + ] +} \ No newline at end of file diff --git a/app/bower_components/jquery/external/sizzle/LICENSE.txt b/app/bower_components/jquery/external/sizzle/LICENSE.txt new file mode 100644 index 0000000..dd7ce94 --- /dev/null +++ b/app/bower_components/jquery/external/sizzle/LICENSE.txt @@ -0,0 +1,36 @@ +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/sizzle + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. diff --git a/app/bower_components/jquery/external/sizzle/dist/sizzle.js b/app/bower_components/jquery/external/sizzle/dist/sizzle.js new file mode 100644 index 0000000..9b1e5ba --- /dev/null +++ b/app/bower_components/jquery/external/sizzle/dist/sizzle.js @@ -0,0 +1,2143 @@ +/*! + * Sizzle CSS Selector Engine v2.2.1 + * http://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2015-10-17 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, nidselect, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']"; + while ( i-- ) { + groups[i] = nidselect + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( (parent = document.defaultView) && parent.top !== parent ) { + // Support: IE 11 + if ( parent.addEventListener ) { + parent.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( document.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var m = context.getElementById( id ); + return m ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + docElem.appendChild( div ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( (oldCache = uniqueCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +// EXPOSE +if ( typeof define === "function" && define.amd ) { + define(function() { return Sizzle; }); +// Sizzle requires that there be a global window in Common-JS like environments +} else if ( typeof module !== "undefined" && module.exports ) { + module.exports = Sizzle; +} else { + window.Sizzle = Sizzle; +} +// EXPOSE + +})( window ); diff --git a/app/bower_components/jquery/external/sizzle/dist/sizzle.min.js b/app/bower_components/jquery/external/sizzle/dist/sizzle.min.js new file mode 100644 index 0000000..8558975 --- /dev/null +++ b/app/bower_components/jquery/external/sizzle/dist/sizzle.min.js @@ -0,0 +1,3 @@ +/*! Sizzle v2.2.1 | (c) jQuery Foundation, Inc. | jquery.org/license */ +!function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),"function"==typeof define&&define.amd?define(function(){return fa}):"undefined"!=typeof module&&module.exports?module.exports=fa:a.Sizzle=fa}(window); +//# sourceMappingURL=sizzle.min.map \ No newline at end of file diff --git a/app/bower_components/jquery/external/sizzle/dist/sizzle.min.map b/app/bower_components/jquery/external/sizzle/dist/sizzle.min.map new file mode 100644 index 0000000..5438e0e --- /dev/null +++ b/app/bower_components/jquery/external/sizzle/dist/sizzle.min.map @@ -0,0 +1 @@ +{"version":3,"file":"sizzle.min.js","sources":["sizzle.js"],"names":["window","i","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","expando","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","hasOwn","hasOwnProperty","arr","pop","push_native","push","slice","indexOf","list","elem","len","length","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","apply","call","childNodes","nodeType","e","target","els","j","Sizzle","selector","context","results","seed","m","nid","nidselect","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","toLowerCase","getAttribute","replace","setAttribute","toSelector","join","testContext","parentNode","querySelectorAll","qsaError","removeAttribute","keys","cache","key","value","cacheLength","shift","markFunction","fn","assert","div","createElement","removeChild","addHandle","attrs","handler","split","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","type","name","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","ret","attr","val","undefined","specified","error","msg","Error","uniqueSort","duplicates","detectDuplicates","sortStable","sort","splice","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","dir","first"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","last","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","text","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","eq","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","prototype","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","map","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","elems","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","token","compiled","div1","defaultValue","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/app/bower_components/jquery/src/.jshintrc b/app/bower_components/jquery/src/.jshintrc new file mode 100644 index 0000000..ea3549d --- /dev/null +++ b/app/bower_components/jquery/src/.jshintrc @@ -0,0 +1,29 @@ +{ + "boss": true, + "curly": true, + "eqeqeq": true, + "eqnull": true, + "expr": true, + "immed": true, + "noarg": true, + "quotmark": "double", + "undef": true, + "unused": true, + + "sub": true, + + // Support: IE < 10, Android < 4.1 + // The above browsers are failing a lot of tests in the ES5 + // test suite at http://test262.ecmascript.org. + "es3": true, + + "globals": { + "window": true, + "JSON": false, + + "jQuery": true, + "define": true, + "module": true, + "noGlobal": true + } +} diff --git a/app/bower_components/jquery/src/ajax.js b/app/bower_components/jquery/src/ajax.js new file mode 100644 index 0000000..ba32248 --- /dev/null +++ b/app/bower_components/jquery/src/ajax.js @@ -0,0 +1,845 @@ +define( [ + "./core", + "./var/document", + "./var/rnotwhite", + "./ajax/var/location", + "./ajax/var/nonce", + "./ajax/var/rquery", + + "./core/init", + "./ajax/parseJSON", + "./ajax/parseXML", + "./event/trigger", + "./deferred" +], function( jQuery, document, rnotwhite, location, nonce, rquery ) { + +var + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // The jqXHR state + state = 0, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + var lname = name.toLowerCase(); + if ( !state ) { + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( state < 2 ) { + for ( code in map ) { + + // Lazy-add the new callback in a way that preserves old ones + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } else { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ).complete = completeDeferred.add; + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ).replace( rhash, "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE8-11+ + // IE throws exception if url is malformed, e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE8-11+ + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + cacheURL = s.url; + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in url if needed + if ( s.cache === false ) { + s.url = rts.test( cacheURL ) ? + + // If there is already a '_' parameter, set its value + cacheURL.replace( rts, "$1_=" + nonce++ ) : + + // Otherwise add one to the end + cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; + } + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( state === 2 ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +return jQuery; +} ); diff --git a/app/bower_components/jquery/src/ajax/jsonp.js b/app/bower_components/jquery/src/ajax/jsonp.js new file mode 100644 index 0000000..666e5d1 --- /dev/null +++ b/app/bower_components/jquery/src/ajax/jsonp.js @@ -0,0 +1,100 @@ +define( [ + "../core", + "./var/nonce", + "./var/rquery", + "../ajax" +], function( jQuery, nonce, rquery ) { + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +jQuery.ajaxSetup( { + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +} ); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? + "url" : + typeof s.data === "string" && + ( s.contentType || "" ) + .indexOf( "application/x-www-form-urlencoded" ) === 0 && + rjsonp.test( s.data ) && "data" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters[ "script json" ] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // Force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always( function() { + + // If previous value didn't exist - remove it + if ( overwritten === undefined ) { + jQuery( window ).removeProp( callbackName ); + + // Otherwise restore preexisting value + } else { + window[ callbackName ] = overwritten; + } + + // Save back as free + if ( s[ callbackName ] ) { + + // Make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // Save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + } ); + + // Delegate to script + return "script"; + } +} ); + +} ); diff --git a/app/bower_components/jquery/src/ajax/load.js b/app/bower_components/jquery/src/ajax/load.js new file mode 100644 index 0000000..5ec3fa2 --- /dev/null +++ b/app/bower_components/jquery/src/ajax/load.js @@ -0,0 +1,83 @@ +define( [ + "../core", + "../core/parseHTML", + "../ajax", + "../traversing", + "../manipulation", + "../selector", + + // Optional event/alias dependency + "../event/alias" +], function( jQuery ) { + +// Keep a copy of the old load method +var _load = jQuery.fn.load; + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + var selector, type, response, + self = this, + off = url.indexOf( " " ); + + if ( off > -1 ) { + selector = jQuery.trim( url.slice( off ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + jQuery.ajax( { + url: url, + + // If "type" variable is undefined, then "GET" method will be used. + // Make value of this field explicit since + // user can override it through ajaxSetup method + type: type || "GET", + dataType: "html", + data: params + } ).done( function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery( "
      " ).append( jQuery.parseHTML( responseText ) ).find( selector ) : + + // Otherwise use the full result + responseText ); + + // If the request succeeds, this function gets "data", "status", "jqXHR" + // but they are ignored because response was set above. + // If it fails, this function gets "jqXHR", "status", "error" + } ).always( callback && function( jqXHR, status ) { + self.each( function() { + callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); + } ); + } ); + } + + return this; +}; + +} ); diff --git a/app/bower_components/jquery/src/ajax/parseJSON.js b/app/bower_components/jquery/src/ajax/parseJSON.js new file mode 100644 index 0000000..11918b0 --- /dev/null +++ b/app/bower_components/jquery/src/ajax/parseJSON.js @@ -0,0 +1,13 @@ +define( [ + "../core" +], function( jQuery ) { + +// Support: Android 2.3 +// Workaround failure to string-cast null input +jQuery.parseJSON = function( data ) { + return JSON.parse( data + "" ); +}; + +return jQuery.parseJSON; + +} ); diff --git a/app/bower_components/jquery/src/ajax/parseXML.js b/app/bower_components/jquery/src/ajax/parseXML.js new file mode 100644 index 0000000..6599aaf --- /dev/null +++ b/app/bower_components/jquery/src/ajax/parseXML.js @@ -0,0 +1,27 @@ +define( [ + "../core" +], function( jQuery ) { + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE9 + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + +return jQuery.parseXML; + +} ); diff --git a/app/bower_components/jquery/src/ajax/script.js b/app/bower_components/jquery/src/ajax/script.js new file mode 100644 index 0000000..945bea9 --- /dev/null +++ b/app/bower_components/jquery/src/ajax/script.js @@ -0,0 +1,68 @@ +define( [ + "../core", + "../var/document", + "../ajax" +], function( jQuery, document ) { + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "