├── .gitignore
├── LICENSE
├── README.md
├── app
├── app.js
├── app.routes.js
├── components
│ ├── admin
│ │ ├── admin.html
│ │ └── admin.js
│ ├── authenticate
│ │ ├── authenticate.html
│ │ └── authenticate.js
│ ├── checkout
│ │ ├── checkout.html
│ │ └── checkout.js
│ ├── home
│ │ ├── home.html
│ │ └── home.js
│ ├── product
│ │ ├── product.html
│ │ └── product.js
│ ├── profile
│ │ ├── profile.html
│ │ └── profile.js
│ └── shop
│ │ ├── shop.html
│ │ └── shop.js
└── shared
│ ├── AuthService.js
│ ├── OrderService.js
│ ├── ProductService.js
│ ├── ShopService.js
│ └── UserService.js
├── bower.json
├── bower_components
├── algoliasearch
│ ├── .bower.json
│ ├── .eslintignore
│ ├── .eslintrc
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .npmignore
│ ├── .travis.yml
│ ├── ChangeLog
│ ├── LICENSE.txt
│ ├── README.md
│ ├── bower.json
│ ├── dist
│ │ ├── algoliasearch.angular.js
│ │ ├── algoliasearch.angular.min.js
│ │ ├── algoliasearch.jquery.js
│ │ ├── algoliasearch.jquery.min.js
│ │ ├── algoliasearch.js
│ │ ├── algoliasearch.min.js
│ │ └── algoliasearch.parse.js
│ ├── index.js
│ ├── npm-shrinkwrap.json
│ ├── package.json
│ ├── plugins
│ │ ├── angular.js
│ │ └── jquery.js
│ ├── scripts
│ │ ├── build
│ │ ├── lint
│ │ ├── parse-build.webpack.config.js
│ │ ├── release
│ │ ├── test-browser
│ │ ├── test-ci
│ │ ├── test-node
│ │ ├── test-parse-cloud
│ │ └── test-phantom
│ ├── src
│ │ ├── AlgoliaSearch.js
│ │ ├── IndexBrowser.js
│ │ ├── browser
│ │ │ ├── builds
│ │ │ │ ├── algoliasearch.angular.js
│ │ │ │ ├── algoliasearch.jquery.js
│ │ │ │ └── algoliasearch.js
│ │ │ ├── get-document-protocol.js
│ │ │ ├── inline-headers.js
│ │ │ ├── jsonp-request.js
│ │ │ └── migration-layer
│ │ │ │ ├── is-using-latest.js
│ │ │ │ ├── load-v2.js
│ │ │ │ ├── old-globals.js
│ │ │ │ └── script.js
│ │ ├── errors.js
│ │ ├── server
│ │ │ └── builds
│ │ │ │ ├── AlgoliaSearchServer.js
│ │ │ │ ├── get-agent.js
│ │ │ │ ├── node.js
│ │ │ │ └── parse.js
│ │ └── version.js
│ └── zuul.config.js
├── angular-bootstrap
│ ├── .bower.json
│ ├── .gitignore
│ ├── .npmignore
│ ├── README.md
│ ├── bower.json
│ ├── index.js
│ ├── package.json
│ ├── ui-bootstrap-csp.css
│ ├── ui-bootstrap-tpls.js
│ ├── ui-bootstrap-tpls.min.js
│ ├── ui-bootstrap.js
│ └── ui-bootstrap.min.js
├── angular-stamplay
│ ├── .bower.json
│ ├── LICENSE
│ ├── README.md
│ ├── angular-stamplay.js
│ └── bower.json
├── angular-ui-router
│ ├── .bower.json
│ ├── CHANGELOG.md
│ ├── CONTRIBUTING.md
│ ├── LICENSE
│ ├── README.md
│ ├── api
│ │ └── angular-ui-router.d.ts
│ ├── bower.json
│ ├── release
│ │ ├── angular-ui-router.js
│ │ └── angular-ui-router.min.js
│ └── src
│ │ ├── common.js
│ │ ├── resolve.js
│ │ ├── state.js
│ │ ├── stateDirectives.js
│ │ ├── stateFilters.js
│ │ ├── templateFactory.js
│ │ ├── urlMatcherFactory.js
│ │ ├── urlRouter.js
│ │ ├── view.js
│ │ ├── viewDirective.js
│ │ └── viewScroll.js
├── angular
│ ├── .bower.json
│ ├── README.md
│ ├── angular-csp.css
│ ├── angular.js
│ ├── angular.min.js
│ ├── angular.min.js.gzip
│ ├── angular.min.js.map
│ ├── bower.json
│ ├── index.js
│ └── package.json
├── bootstrap
│ ├── .bower.json
│ ├── Gruntfile.js
│ ├── LICENSE
│ ├── README.md
│ ├── bower.json
│ ├── dist
│ │ ├── css
│ │ │ ├── bootstrap-theme.css
│ │ │ ├── bootstrap-theme.css.map
│ │ │ ├── bootstrap-theme.min.css
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.css.map
│ │ │ └── bootstrap.min.css
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ └── js
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.min.js
│ │ │ └── npm.js
│ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── grunt
│ │ ├── .jshintrc
│ │ ├── bs-commonjs-generator.js
│ │ ├── bs-glyphicons-data-generator.js
│ │ ├── bs-lessdoc-parser.js
│ │ ├── bs-raw-files-generator.js
│ │ ├── configBridge.json
│ │ └── sauce_browsers.yml
│ ├── js
│ │ ├── .jscsrc
│ │ ├── .jshintrc
│ │ ├── affix.js
│ │ ├── alert.js
│ │ ├── button.js
│ │ ├── carousel.js
│ │ ├── collapse.js
│ │ ├── dropdown.js
│ │ ├── modal.js
│ │ ├── popover.js
│ │ ├── scrollspy.js
│ │ ├── tab.js
│ │ ├── tooltip.js
│ │ └── transition.js
│ ├── less
│ │ ├── .csscomb.json
│ │ ├── .csslintrc
│ │ ├── alerts.less
│ │ ├── badges.less
│ │ ├── bootstrap.less
│ │ ├── breadcrumbs.less
│ │ ├── button-groups.less
│ │ ├── buttons.less
│ │ ├── carousel.less
│ │ ├── close.less
│ │ ├── code.less
│ │ ├── component-animations.less
│ │ ├── dropdowns.less
│ │ ├── forms.less
│ │ ├── glyphicons.less
│ │ ├── grid.less
│ │ ├── input-groups.less
│ │ ├── jumbotron.less
│ │ ├── labels.less
│ │ ├── list-group.less
│ │ ├── media.less
│ │ ├── mixins.less
│ │ ├── mixins
│ │ │ ├── alerts.less
│ │ │ ├── background-variant.less
│ │ │ ├── border-radius.less
│ │ │ ├── buttons.less
│ │ │ ├── center-block.less
│ │ │ ├── clearfix.less
│ │ │ ├── forms.less
│ │ │ ├── gradients.less
│ │ │ ├── grid-framework.less
│ │ │ ├── grid.less
│ │ │ ├── hide-text.less
│ │ │ ├── image.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── nav-divider.less
│ │ │ ├── nav-vertical-align.less
│ │ │ ├── opacity.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── progress-bar.less
│ │ │ ├── reset-filter.less
│ │ │ ├── reset-text.less
│ │ │ ├── resize.less
│ │ │ ├── responsive-visibility.less
│ │ │ ├── size.less
│ │ │ ├── tab-focus.less
│ │ │ ├── table-row.less
│ │ │ ├── text-emphasis.less
│ │ │ ├── text-overflow.less
│ │ │ └── vendor-prefixes.less
│ │ ├── modals.less
│ │ ├── navbar.less
│ │ ├── navs.less
│ │ ├── normalize.less
│ │ ├── pager.less
│ │ ├── pagination.less
│ │ ├── panels.less
│ │ ├── popovers.less
│ │ ├── print.less
│ │ ├── progress-bars.less
│ │ ├── responsive-embed.less
│ │ ├── responsive-utilities.less
│ │ ├── scaffolding.less
│ │ ├── tables.less
│ │ ├── theme.less
│ │ ├── thumbnails.less
│ │ ├── tooltip.less
│ │ ├── type.less
│ │ ├── utilities.less
│ │ ├── variables.less
│ │ └── wells.less
│ ├── package.js
│ └── package.json
├── bootswatch
│ ├── .bower.json
│ ├── .bowerrc
│ ├── LICENSE
│ ├── README.md
│ ├── bower.json
│ ├── cerulean
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── cosmo
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── cyborg
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── darkly
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── flatly
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── journal
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── lumen
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── paper
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── readable
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── sandstone
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── simplex
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── slate
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── spacelab
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── superhero
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ ├── united
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
│ └── yeti
│ │ ├── _bootswatch.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap.css
│ │ ├── bootstrap.min.css
│ │ ├── bootswatch.less
│ │ ├── thumbnail.png
│ │ └── variables.less
├── jquery
│ ├── .bower.json
│ ├── MIT-LICENSE.txt
│ ├── bower.json
│ ├── dist
│ │ ├── jquery.js
│ │ ├── jquery.min.js
│ │ └── jquery.min.map
│ └── src
│ │ ├── ajax.js
│ │ ├── ajax
│ │ ├── jsonp.js
│ │ ├── load.js
│ │ ├── parseJSON.js
│ │ ├── parseXML.js
│ │ ├── script.js
│ │ ├── var
│ │ │ ├── nonce.js
│ │ │ └── rquery.js
│ │ └── xhr.js
│ │ ├── attributes.js
│ │ ├── attributes
│ │ ├── attr.js
│ │ ├── classes.js
│ │ ├── prop.js
│ │ ├── support.js
│ │ └── val.js
│ │ ├── callbacks.js
│ │ ├── core.js
│ │ ├── core
│ │ ├── access.js
│ │ ├── init.js
│ │ ├── parseHTML.js
│ │ ├── ready.js
│ │ └── var
│ │ │ └── rsingleTag.js
│ │ ├── css.js
│ │ ├── css
│ │ ├── addGetHookIf.js
│ │ ├── curCSS.js
│ │ ├── defaultDisplay.js
│ │ ├── hiddenVisibleSelectors.js
│ │ ├── support.js
│ │ ├── swap.js
│ │ └── var
│ │ │ ├── cssExpand.js
│ │ │ ├── getStyles.js
│ │ │ ├── isHidden.js
│ │ │ ├── rmargin.js
│ │ │ └── rnumnonpx.js
│ │ ├── data.js
│ │ ├── data
│ │ ├── Data.js
│ │ ├── accepts.js
│ │ └── var
│ │ │ ├── data_priv.js
│ │ │ └── data_user.js
│ │ ├── deferred.js
│ │ ├── deprecated.js
│ │ ├── dimensions.js
│ │ ├── effects.js
│ │ ├── effects
│ │ ├── Tween.js
│ │ └── animatedSelector.js
│ │ ├── event.js
│ │ ├── event
│ │ ├── ajax.js
│ │ ├── alias.js
│ │ └── support.js
│ │ ├── exports
│ │ ├── amd.js
│ │ └── global.js
│ │ ├── intro.js
│ │ ├── jquery.js
│ │ ├── manipulation.js
│ │ ├── manipulation
│ │ ├── _evalUrl.js
│ │ ├── support.js
│ │ └── var
│ │ │ └── rcheckableType.js
│ │ ├── offset.js
│ │ ├── outro.js
│ │ ├── queue.js
│ │ ├── queue
│ │ └── delay.js
│ │ ├── selector-native.js
│ │ ├── selector-sizzle.js
│ │ ├── selector.js
│ │ ├── serialize.js
│ │ ├── sizzle
│ │ └── dist
│ │ │ ├── sizzle.js
│ │ │ ├── sizzle.min.js
│ │ │ └── sizzle.min.map
│ │ ├── traversing.js
│ │ ├── traversing
│ │ ├── findFilter.js
│ │ └── var
│ │ │ └── rneedsContext.js
│ │ ├── var
│ │ ├── arr.js
│ │ ├── class2type.js
│ │ ├── concat.js
│ │ ├── hasOwn.js
│ │ ├── indexOf.js
│ │ ├── pnum.js
│ │ ├── push.js
│ │ ├── rnotwhite.js
│ │ ├── slice.js
│ │ ├── strundefined.js
│ │ ├── support.js
│ │ └── toString.js
│ │ └── wrap.js
├── ng-file-upload
│ ├── .bower.json
│ ├── 161a70d3.favicon.ico
│ ├── FileAPI.flash.swf
│ ├── FileAPI.js
│ ├── FileAPI.min.js
│ ├── LICENSE
│ ├── README.md
│ ├── bower.json
│ ├── favicon.ico
│ ├── index.html
│ ├── ng-file-upload-all.js
│ ├── ng-file-upload-all.min.js
│ ├── ng-file-upload-shim.js
│ ├── ng-file-upload-shim.min.js
│ ├── ng-file-upload.js
│ ├── ng-file-upload.min.js
│ └── robots.txt
├── q
│ ├── .bower.json
│ ├── .coverignore
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .mailmap
│ ├── .travis.yml
│ ├── CHANGES.md
│ ├── CONTRIBUTING.md
│ ├── Gruntfile.js
│ ├── LICENSE
│ ├── README.md
│ ├── VERSIONS.md
│ ├── benchmark
│ │ ├── compare-with-callbacks.js
│ │ └── scenarios.js
│ ├── design
│ │ ├── README.js
│ │ ├── q0.js
│ │ ├── q1.js
│ │ ├── q2.js
│ │ ├── q3.js
│ │ ├── q4.js
│ │ ├── q5.js
│ │ ├── q6.js
│ │ └── q7.js
│ ├── examples
│ │ ├── all.js
│ │ └── async-generators
│ │ │ ├── 0.html
│ │ │ ├── 1-return.js
│ │ │ ├── 2-error-propagation.js
│ │ │ ├── 3-spawn.js
│ │ │ ├── 4-flow-control.js
│ │ │ └── README.md
│ ├── package.json
│ ├── q.js
│ ├── q.png
│ ├── q.svg
│ ├── queue.js
│ ├── ref_send.md
│ └── spec
│ │ ├── aplus-adapter.js
│ │ ├── lib
│ │ ├── jasmine-1.2.0
│ │ │ ├── MIT.LICENSE
│ │ │ ├── jasmine-html.js
│ │ │ ├── jasmine.css
│ │ │ └── jasmine.js
│ │ └── jasmine-promise.js
│ │ ├── q-spec.html
│ │ ├── q-spec.js
│ │ └── queue-spec.js
├── stamplay-js-sdk
│ ├── .bower.json
│ ├── .codeclimate.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CHANGELOG.md
│ ├── Gruntfile.js
│ ├── LICENSE
│ ├── README.md
│ ├── bower.json
│ ├── dist
│ │ ├── stamplay.js
│ │ ├── stamplay.min.js
│ │ └── stamplay.min.map
│ ├── package.json
│ └── src
│ │ ├── baseComponent.js
│ │ ├── cobject.js
│ │ ├── promise.js
│ │ ├── query.js
│ │ ├── stamplay.js
│ │ ├── stripe.js
│ │ ├── support.js
│ │ ├── user.js
│ │ └── webhook.js
├── store.js
│ ├── .bower.json
│ ├── .gitignore
│ ├── Changelog
│ ├── LICENSE
│ ├── Makefile
│ ├── README.md
│ ├── bower.json
│ ├── build.js
│ ├── component.json
│ ├── index.html
│ ├── json.js
│ ├── package.json
│ ├── store+json2.min.js
│ ├── store.js
│ ├── store.min.js
│ ├── test-node.js
│ ├── test.html
│ └── tests.js
└── underscore
│ ├── .bower.json
│ ├── LICENSE
│ ├── README.md
│ ├── bower.json
│ ├── underscore-min.js
│ ├── underscore-min.map
│ └── underscore.js
├── index.html
└── style.css
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 |
5 | # Runtime data
6 | pids
7 | *.pid
8 | *.seed
9 |
10 | # Directory for instrumented libs generated by jscoverage/JSCover
11 | lib-cov
12 |
13 | # Coverage directory used by tools like istanbul
14 | coverage
15 |
16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
17 | .grunt
18 |
19 | # node-waf configuration
20 | .lock-wscript
21 |
22 | # Compiled binary addons (http://nodejs.org/api/addons.html)
23 | build/Release
24 |
25 | # Dependency directory
26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
27 | node_modules
28 |
29 | stamplay.json
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 scotch
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Build An Etsy Clone with Angular and Stamplay
2 |
3 | Code for the Scotch.io 3 part tutorial by [@sevilayha](https://twitter.com/sevilayha).
4 |
5 | [Read the Tutorials](https://scotch.io/tutorials/build-an-etsy-clone-with-angular-and-stamplay-part-1)
6 |
7 | ## Installation
8 |
9 | 1. Create your own free Stamplay app at [http://stamplay.com](http://synd.co/1UnSLew)
10 | 2. CLone this repo: `git clone git@github.com:scotch-io/angular-etsy-stamplay`
11 | 3. Initialize your Stamplay app: `stamplay init`
12 | 4. Change out your app name in `index.html` in the `Stamplay.init()` line
13 | 4. Deploy your application: `stamplay deploy`
14 | 5. View your app online at {appname}.stamplayapp.com
15 |
--------------------------------------------------------------------------------
/app/components/admin/admin.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('app.admin', [])
3 | .controller('AdminController', ['Product', 'Order', AdminController]);
4 |
5 | function AdminController(Product, Order) {
6 | var admin = this;
7 | admin.productData = {}; // the object to hold the data from our form
8 |
9 | // bind the create product function to the controller
10 | admin.createProduct = createProduct;
11 | admin.uploadFiles = uploadFiles;
12 |
13 | /**
14 | * Get all the orders
15 | */
16 | Order.history()
17 | .then(function(data) {
18 | admin.orders = data.instance;
19 | });
20 |
21 | /**
22 | * Get all the product categories so we can show them in our form
23 | */
24 | Product.getCategories()
25 | .then(function(data) {
26 | admin.categories = data.instance;
27 | });
28 |
29 | /**
30 | * Loop over the files being uploaded, save them to Stamplay
31 | * Store the ids into admin.productData.pictures
32 | */
33 | function uploadFiles(files) {
34 |
35 | // use our product service to pass the files to Stamplay
36 | Product.createPicture(files)
37 | .then(function(data) {
38 | // add the pictures array to our productData
39 | admin.productData.pictures = data.pictures;
40 | });
41 | }
42 |
43 | /**
44 | * Create a new product
45 | */
46 | function createProduct() {
47 |
48 | console.log(admin.productData);
49 | // create the product
50 | Product.create(admin.productData)
51 | .then(function(data) {
52 | // clear the form
53 | admin.productData = {};
54 |
55 | // show a message that the product was successfully created
56 | // show a link to view that product
57 | admin.successMessage = 'Product created!';
58 | admin.newProductId = data.get('_id');
59 | admin.newProductName = data.get('name');
60 | });
61 | }
62 |
63 | }
--------------------------------------------------------------------------------
/app/components/authenticate/authenticate.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('app.authenticate', [])
3 | .controller('AuthenticateController', ['User', '$rootScope', '$state', AuthenticateController]);
4 |
5 | function AuthenticateController(User, $rootScope, $state) {
6 | var authenticate = this;
7 |
8 | // create the objects for our forms
9 | authenticate.signupData = {};
10 | authenticate.loginData = {};
11 |
12 | // bind the functions to our controller
13 | authenticate.signup = signup;
14 | authenticate.login = login;
15 |
16 | /**
17 | * Sign a user up and bind their info to $rootScope
18 | */
19 | function signup() {
20 | User.signup(authenticate.signupData)
21 | .then(function(data) {
22 | if (data.get('_id')) {
23 | $rootScope.currentUser.id = data.get('_id');
24 | $rootScope.currentUser.name = data.get('displayName');
25 | $rootScope.currentUser.image = data.get('profileImg');
26 |
27 | // redirect the user
28 | $state.go('home');
29 | }
30 | });
31 | }
32 |
33 | /**
34 | * Use the User factory to log a user in
35 | * Bind the user's information to $rootScope
36 | */
37 | function login() {
38 | User.login(authenticate.loginData)
39 | .then(function(data) {
40 | if (data.get('_id')) {
41 | $rootScope.currentUser.id = data.get('_id');
42 | $rootScope.currentUser.name = data.get('displayName');
43 | $rootScope.currentUser.image = data.get('profileImg');
44 |
45 | // redirect the user
46 | $state.go('home');
47 | }
48 | });
49 | }
50 | }
--------------------------------------------------------------------------------
/app/components/checkout/checkout.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('app.checkout', [])
3 | .controller('CheckoutController', ['$stateParams', '$rootScope', 'Product', 'Order', CheckoutController]);
4 |
5 | function CheckoutController($stateParams, $rootScope, Product, Order) {
6 | var checkout = this;
7 | checkout.orderData = {}; // create an empty object to hold order data
8 | checkout.cardData = {}; // create an empty object to hold credit card data
9 | checkout.processPurchase = processPurchase;
10 |
11 | // grab the product by the $stateParams.id
12 | Product.get($stateParams.id)
13 | .then(function(data) {
14 | // since this is a singular Stamplay model that was returned, we can bind instance directly
15 | checkout.product = data.instance;
16 |
17 | // grab the product id and set it to an object called orderData
18 | checkout.orderData.product = [data.get('_id')];
19 | checkout.orderData.price = data.get('price');
20 | });
21 |
22 | /**
23 | * Process the purchase
24 | */
25 | function processPurchase() {
26 | // clear the success message
27 | checkout.sucessMessage = '';
28 |
29 | // charge the user first
30 | Order.charge($rootScope.currentUser.id, checkout.orderData.price, checkout.cardData)
31 | .then(function(data) {
32 | // then we will create the order on successful charge
33 | Order.create(checkout.orderData)
34 | .then(function(data) {
35 | // purchase successful
36 | checkout.successMessage = 'Thanks for your order! Your order number is #' + data.get('_id');
37 | });
38 | });
39 |
40 | }
41 | }
--------------------------------------------------------------------------------
/app/components/home/home.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
--------------------------------------------------------------------------------
/app/components/home/home.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('app.home', [])
3 | .controller('HomeController', ['Product', HomeController]);
4 |
5 | function HomeController(Product) {
6 | var home = this;
7 |
8 | // get all the products and bind them to home.products
9 | Product.all()
10 | .then(function(data) {
11 | home.products = data.instance;
12 | });
13 |
14 | }
--------------------------------------------------------------------------------
/app/components/product/product.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('app.product', [])
3 | .controller('ProductController', ['Product', '$stateParams', ProductController]);
4 |
5 | function ProductController(Product, $stateParams) {
6 | var product = this;
7 | product.createComment = createComment;
8 |
9 | // get the product for this page and bind it to the product.listing object
10 | Product.get($stateParams.id)
11 | .then(function(data) {
12 | // since this is a singular Stamplay model that was returned, we can bind instance directly
13 | product.listing = data.instance;
14 | product.pictures = data.get('pictures');
15 | });
16 |
17 | // get all the comments and bind to product.comments
18 | Product.getComments($stateParams.id)
19 | .then(function(data) {
20 | product.comments = data.instance;
21 | });
22 |
23 | /**
24 | * Create a new comment on this product
25 | */
26 | function createComment() {
27 | Product.comment($stateParams.id, product.commentData)
28 | .then(function(data) {
29 | // clear the comment form
30 | product.commentData = {};
31 |
32 | // replace the comments with the new comments returned
33 | product.listing.actions.comments = data.instance.actions.comments;
34 | });
35 | }
36 |
37 | }
--------------------------------------------------------------------------------
/app/components/profile/profile.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/app/components/profile/profile.html
--------------------------------------------------------------------------------
/app/components/profile/profile.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('app.profile', [])
3 | .controller('ProfileController', ProfileController);
4 |
5 | function ProfileController() {
6 | var profile = this;
7 | }
--------------------------------------------------------------------------------
/app/components/shop/shop.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/app/components/shop/shop.html
--------------------------------------------------------------------------------
/app/components/shop/shop.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('app.shop', [])
3 | .controller('ShopController', ShopController);
4 |
5 | function ShopController() {
6 | var shop = this;
7 | }
--------------------------------------------------------------------------------
/app/shared/AuthService.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/app/shared/AuthService.js
--------------------------------------------------------------------------------
/app/shared/OrderService.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('OrderService', [])
3 | .factory('Order', ['$stamplay', '$q', '$http', OrderService]);
4 |
5 | function OrderService($stamplay, $q, $http) {
6 |
7 | return {
8 | create: create,
9 | charge: charge,
10 | history: history
11 | };
12 |
13 | /**
14 | * Create a new order
15 | */
16 | function create(data) {
17 | var def = $q.defer();
18 |
19 | // instantiate a new order model from the stamplay js sdk
20 | var order = new $stamplay.Cobject('orders').Model;
21 |
22 | // loop over the fields in data and update the order
23 | angular.forEach(data, function(value, key) {
24 | order.set(key, value);
25 | });
26 |
27 | // save the object
28 | order.save()
29 | .then(function() {
30 | def.resolve(order);
31 | });
32 |
33 | return def.promise;
34 | }
35 |
36 | /**
37 | * Charge a customer
38 | */
39 | function charge(userID, price, cardData) {
40 | var def = $q.defer();
41 |
42 | // create the card token
43 | Stripe.card.createToken(cardData, function(status, response) {
44 | // we now have the card token
45 | var token = response.id;
46 |
47 | // use the stamplay sdk to charge the user
48 | var customer = new $stamplay.Stripe();
49 |
50 | // charge the customer
51 | price = price * 100; // turn the price into pennies
52 | customer.charge(userID, token, price, 'USD')
53 | .then(function() {
54 | def.resolve(customer);
55 | }, function(error) {
56 | console.log(error);
57 | });
58 |
59 | });
60 |
61 | return def.promise;
62 | }
63 |
64 | /**
65 | * View all the orders for one user
66 | */
67 | function history(userID) {
68 | var def = $q.defer();
69 |
70 | // instantiate a new orders collection from the stamplay js sdk
71 | var orders = new $stamplay.Cobject('orders').Collection;
72 | orders.populate().fetch()
73 | .then(function() {
74 | def.resolve(orders);
75 | });
76 |
77 | return def.promise;
78 | }
79 |
80 | }
--------------------------------------------------------------------------------
/app/shared/ShopService.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/app/shared/ShopService.js
--------------------------------------------------------------------------------
/app/shared/UserService.js:
--------------------------------------------------------------------------------
1 | angular
2 | .module('UserService', [])
3 | .factory('User', ['$stamplay', '$q', UserService]);
4 |
5 | function UserService($stamplay, $q) {
6 |
7 | // return an object with all our functions
8 | return {
9 | getCurrent: getCurrent,
10 | signup: signup,
11 | login: login,
12 | logout: logout
13 | };
14 |
15 | /**
16 | * Get the current logged in user
17 | */
18 | function getCurrent() {
19 | var def = $q.defer();
20 |
21 | // instantiate a new user model from the stamplay js sdk
22 | var user = $stamplay.User().Model;
23 | user.currentUser()
24 | .then(function() {
25 | // send the entire user model back
26 | def.resolve(user);
27 | });
28 |
29 | return def.promise;
30 | }
31 |
32 | /**
33 | * Register a user with their name, email, and password
34 | */
35 | function signup(data) {
36 | var def = $q.defer();
37 |
38 | // instantiate a new user model from the stamplay js sdk
39 | var user = $stamplay.User().Model;
40 | user.signup(data)
41 | .then(function() {
42 | // send the entire user model back
43 | def.resolve(user);
44 | })
45 |
46 | return def.promise;
47 | }
48 |
49 | /**
50 | * Log a user in with their email and password
51 | */
52 | function login(data) {
53 | var def = $q.defer();
54 |
55 | var user = $stamplay.User().Model;
56 | user.login(data.email, data.password)
57 | .then(function() {
58 | // send the entire user model back
59 | def.resolve(user);
60 | }, function() {
61 | def.reject({ 'error': 'Unable to login user.' });
62 | });
63 |
64 | return def.promise;
65 | }
66 |
67 | /**
68 | * Log the current user out
69 | * Will also redirect the browser to the logout url (home)
70 | */
71 | function logout() {
72 | var user = $stamplay.User().Model;
73 | user.logout();
74 | }
75 |
76 | }
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-etsy-stamplay",
3 | "version": "0.0.0",
4 | "homepage": "https://github.com/scotch-io/angular-etsy-stamplay",
5 | "authors": [
6 | "Chris Sevilleja "
7 | ],
8 | "license": "MIT",
9 | "ignore": [
10 | "**/.*",
11 | "node_modules",
12 | "bower_components",
13 | "test",
14 | "tests"
15 | ],
16 | "dependencies": {
17 | "algoliasearch": "~3.8.1",
18 | "angular": "~1.4.5",
19 | "angular-stamplay": "*",
20 | "angular-ui-router": "~0.2.15",
21 | "bootswatch": "~3.3.5+3",
22 | "ng-file-upload": "~7.2.1",
23 | "stamplay-js-sdk": "~1.2.9",
24 | "angular-bootstrap": "~0.13.4"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "algoliasearch",
3 | "version": "3.8.1",
4 | "homepage": "https://github.com/algolia/algoliasearch-client-js",
5 | "authors": [
6 | "Algolia Team "
7 | ],
8 | "description": "Algolia Search is a search API that provides hosted full-text, numerical and faceted search.",
9 | "main": "dist/algoliasearch.js",
10 | "keywords": [
11 | "js",
12 | "algolia",
13 | "search",
14 | "api",
15 | "rest"
16 | ],
17 | "license": "MIT",
18 | "ignore": [
19 | "examples",
20 | "node_modules",
21 | "bower_components",
22 | "test"
23 | ],
24 | "_release": "3.8.1",
25 | "_resolution": {
26 | "type": "version",
27 | "tag": "3.8.1",
28 | "commit": "75c3ad4a34933edfd187542c58bff7810db2cd97"
29 | },
30 | "_source": "git://github.com/algolia/algoliasearch-client-js.git",
31 | "_target": "~3.8.1",
32 | "_originalSource": "algoliasearch",
33 | "_direct": true
34 | }
--------------------------------------------------------------------------------
/bower_components/algoliasearch/.eslintignore:
--------------------------------------------------------------------------------
1 | dist/
2 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "eslint:recommended",
4 | "airbnb/base/",
5 | "algolia/es5"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/.gitattributes:
--------------------------------------------------------------------------------
1 | dist/algoliasearch.js -diff
2 | dist/algoliasearch.min.js -diff
3 | dist/algoliasearch.angular.js -diff
4 | dist/algoliasearch.angular.min.js -diff
5 | dist/algoliasearch.jquery.js -diff
6 | dist/algoliasearch.jquery.min.js -diff
7 | dist/algoliasearch.parse.js -diff
8 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/.npmignore:
--------------------------------------------------------------------------------
1 | # we do not want to lock down dependencies when used as an npm dependency
2 | # only when we build
3 | npm-shrinkwrap.json
4 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - stable
4 | before_install: npm prune
5 | install: npm install
6 | script: npm run test-ci
7 | branches:
8 | only:
9 | - master
10 | - develop
11 | # force container based infra
12 | # http://docs.travis-ci.com/user/workers/container-based-infrastructure/#Routing-your-build-to-container-based-infrastructure
13 | sudo: false
14 | cache:
15 | directories:
16 | - node_modules
17 | env:
18 | global:
19 | # saucelabs credentials
20 | # subaccount of "opensauce-algolia"
21 | - SAUCE_USERNAME=algoliasearch-js
22 | - secure: "oKl1RMuEO9bYoKevbFeFX72M2eV+DIJG/9UGMP4oLb3z5B8T5xAlQSEt8Lp0Zms6qqA+4hAQhZTKXDtdpx7NK+SuqYiv4oR9hdiJBbrRXIRuY86R2T/opO/RlBETL+7Y2R1AGM/kZzyiZSFqN9slGVzWziBtLJjJ4ncoceE8izs="
23 |
24 | # integration tests credentials
25 | - secure: "UnpKy2vOhmkbAXV9J1miZMCVM7VeUl9SyeoN4iFj65KD26wPODdXFjaxiVYM7YvQiUj61HraB6iqk2Vt/W842ACxNl2mOjSTHQXNI7qbtdIlLs0ABdJwjXsCxBtmAIi2GEj/JiDU/duF11/VgkxwBWvIGYEkOD+9c2bJp382xPQ="
26 | - secure: "gMSrjKP4bFYh/cUnO3JDXV+NW6aCdzP6Luwn2QJhml0Ump1a0fomHJUsjELaTpzel9CiONbf7D8bmEyN8woFQq8wa+wltVAzPpbNhYMclJmFV6sKOlGcGn3f/SDv5MiUBuUtyMRgnPv2OEoafQ40mSN/5ELT7PQzYXqxp+EGhTM="
27 |
28 | # parse test credentials
29 | - secure: "KJ5+bYlg0MCX8tAQM6IRBZi43SRPgxj6VSxEyvdQn40LYShlvDIFLgKDQ+Acg5U5k0dQ3HMWsAfrJl/T/pQDmh53g14yZrDZYQeAg0gT25RYUYIY3ByrwcQUhriOqU4ivj2neVBiBJxZ4f7Scx0RBk6OTgvAU/Cc+37apDdDKRk="
30 | - secure: "ZJSK5Mgd/Gmew/5V5e7nd/ArVhIngB825+phWYF00/T9sKYY9P83JQGVn9Iwf/iGBI6lgabS79CwwmaetCzjQa4YxsOObmaMgho/brqlci9AilbksI3UhNVMehFt2Pr1RZQMmGKk+Uot3RKqna5fvyZdtbOw0jGef/H1oYge9HY="
31 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 Algolia
4 | http://www.algolia.com/
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "algoliasearch",
3 | "version": "3.8.1",
4 | "homepage": "https://github.com/algolia/algoliasearch-client-js",
5 | "authors": [
6 | "Algolia Team "
7 | ],
8 | "description": "Algolia Search is a search API that provides hosted full-text, numerical and faceted search.",
9 | "main": "dist/algoliasearch.js",
10 | "keywords": [
11 | "js",
12 | "algolia",
13 | "search",
14 | "api",
15 | "rest"
16 | ],
17 | "license": "MIT",
18 | "ignore": [
19 | "examples",
20 | "node_modules",
21 | "bower_components",
22 | "test"
23 | ]
24 | }
25 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // default entrypoint is the node module
4 | // this is overriden by the `browser` field in package.json
5 | // https://github.com/substack/node-browserify#browser-field
6 | module.exports = require('./src/server/builds/node');
7 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/plugins/angular.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // this file serves as a way to require the angularjs module
4 | // in a commonJS way easily:
5 | // require('algoliasearch/plugins/angular');
6 | module.exports = require('../src/browser/builds/algoliasearch.angular.js');
7 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/plugins/jquery.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // this file serves as a way to easily require the jQuery module
4 | // in a commonJS way:
5 | // require('algoliasearch/plugins/jquery');
6 | module.exports = require('../src/browser/builds/algoliasearch.jquery.js');
7 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/scripts/lint:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e # exit when error
4 |
5 | [ -z $TRAVIS_BUILD_NUMBER ] && CI='false' || CI='true'
6 |
7 | if [ $CI == 'true' ]; then
8 | set -x # debug messages
9 | fi
10 |
11 | echo "Lint"
12 |
13 | eslint --quiet .
14 | jsfmt --diff
15 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/scripts/parse-build.webpack.config.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var path = require('path');
4 |
5 | module.exports = {
6 | entry: path.join(__dirname, '..', 'src/server/builds/parse.js'),
7 | output: {
8 | path: path.join(__dirname, '..', 'dist'),
9 | filename: 'algoliasearch.parse.js',
10 | libraryTarget: 'commonjs2'
11 | },
12 | target: 'node',
13 | resolve: {
14 | alias: {
15 | debug: 'debug/browser.js',
16 | inherits: 'inherits/inherits_browser.js',
17 | 'util-deprecate': 'util-deprecate/browser.js'
18 | }
19 | }
20 | };
21 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/scripts/release:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | var fs = require('fs');
4 | var path = require('path');
5 |
6 | var mversion = require('mversion');
7 |
8 | if (!process.env.VERSION) {
9 | throw new Error('release: Usage is VERSION=MAJOR.MINOR.PATCH npm run release');
10 | }
11 |
12 | var semver = require('semver');
13 | var currentVersion = require('../src/version.js');
14 | var newVersion = process.env.VERSION;
15 |
16 | if (!semver.valid(newVersion)) {
17 | throw new Error('release: Provided new version (' + newVersion + ') is not a valid version per semver');
18 | }
19 |
20 | if (semver.gte(currentVersion, newVersion)) {
21 | throw new Error('release: Provided new version is not higher than current version (' + newVersion + ' <= ' + currentVersion + ')');
22 | }
23 |
24 | console.log('Releasing ' + newVersion);
25 |
26 | console.log('..Updating src/version.js');
27 |
28 | var versionFile = path.join(__dirname, '../src/version.js');
29 | var newContent = "'use strict';\n\nmodule.exports = '" + newVersion + "';\n";
30 | fs.writeFileSync(versionFile, newContent);
31 |
32 | console.log('..Updating bower.json and package.json');
33 |
34 | mversion.update(newVersion);
35 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/scripts/test-browser:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e # exit when error
4 |
5 | [ -z $TRAVIS_BUILD_NUMBER ] && CI='false' || CI='true'
6 |
7 | if [ $CI == 'true' ]; then
8 | set -x # debug messages
9 | fi
10 |
11 | [ -z $TRAVIS_PULL_REQUEST ] && TRAVIS_PULL_REQUEST='false'
12 |
13 | echo "Browser test"
14 |
15 | echo "Browser test: build"
16 | APP_ENV=production npm run build
17 |
18 | echo "Browser test: integration"
19 | DEBUG=zuul* zuul --no-coverage -- test/run-integration.js
20 |
21 | if [ $TRAVIS_PULL_REQUEST != 'false' ]; then
22 | echo "No browser unit test for PR"
23 | else
24 | echo "Browser test: unit"
25 | DEBUG=zuul* zuul --no-coverage -- test/run-browser.js
26 | fi
27 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/scripts/test-ci:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e # exit when error
4 |
5 | [ -z $TRAVIS_BUILD_NUMBER ] && CI='false' || CI='true'
6 |
7 | if [ $CI == 'true' ]; then
8 | set -x # debug messages
9 | fi
10 |
11 | [ -z $TRAVIS_PULL_REQUEST ] && TRAVIS_PULL_REQUEST='false'
12 |
13 | echo "CI test"
14 |
15 | echo "CI test: node"
16 | ./scripts/test-node
17 |
18 | echo "CI test: browser"
19 | ./scripts/test-browser
20 |
21 | echo "CI test: phantom"
22 | ./scripts/test-phantom
23 |
24 | if [ $TRAVIS_PULL_REQUEST != 'false' ]; then
25 | echo 'No parse-cloud test for pull requests'
26 | else
27 | echo "CI test: parse-cloud"
28 | ./scripts/test-parse-cloud
29 | fi
30 |
31 | echo "CI test: lint"
32 | ./scripts/lint
33 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/scripts/test-node:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | source ~/.nvm/nvm.sh
4 |
5 | set -e # exit when error
6 |
7 | [ -z $TRAVIS_BUILD_NUMBER ] && CI='false' || CI='true'
8 |
9 | if [ $CI == 'true' ]; then
10 | set -x # debug messages
11 | fi
12 |
13 | [ -z $TRAVIS_PULL_REQUEST ] && TRAVIS_PULL_REQUEST='false'
14 | [ -z $TRAVIS_BUILD_NUMBER ] && TRAVIS_BUILD_NUMBER='false'
15 |
16 | echo "Node test 4"
17 |
18 | # always test on node 4
19 | echo "Node test 4: unit"
20 | nvm use 4
21 |
22 | if [ $CI == 'false' ]; then
23 | node test/run-node.js | tap-spec
24 | else
25 | node test/run-node.js
26 | fi
27 |
28 | # in CI we launch integration test
29 | [ $CI == 'true' ] && echo "Node test 4: integration" && node test/run-integration.js
30 |
31 | # in a PR or in local environement, test only on node 4
32 | if [ $TRAVIS_PULL_REQUEST != 'false' ] || [ $CI == 'false' ]; then
33 | echo 'Skipping 0.10 and 0.12 tests (PR or local)'
34 | exit 0
35 | else
36 | echo "Node test 0.10"
37 |
38 | nvm use 0.10 || nvm install 0.10
39 | echo "Node test 0.10: unit"
40 | node test/run-node.js
41 |
42 | echo "Node test 0.10: integration"
43 | node test/run-integration.js
44 |
45 | echo "Node test 0.12"
46 | nvm use 0.12 || nvm install 0.12
47 |
48 | echo "Node test 0.12: unit"
49 | node test/run-node.js
50 |
51 | echo "Node test 0.12: integration"
52 | node test/run-integration.js
53 | fi
54 |
55 | # switch back to node.js 4
56 | nvm use 4
57 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/scripts/test-parse-cloud:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # To test parse cloud build, we build and then deploy a basic parse application
4 | # The parse function called will be the one in test/parse/cloud/main.js
5 |
6 | set -e # exit when error
7 |
8 | [ -z $TRAVIS_BUILD_NUMBER ] && CI='false' || CI='true'
9 |
10 | if [ $CI == 'true' ]; then
11 | set -x # debug messages
12 | fi
13 |
14 | echo "Parse-cloud test"
15 |
16 | # build (including the parse build)
17 | # change the version number to 1.0.$TRAVIS_BUILD_NUMBER so that we can test that
18 | # the build was really deployed to parse (see test/parse/cloud/main.js and test/parse/index.js)
19 | cp src/version.js src/version.js.bak
20 | printf "'use strict';\n\nmodule.exports = '1.0.$TRAVIS_BUILD_NUMBER';" > src/version.js
21 | npm run build
22 |
23 | cp dist/algoliasearch.parse.js test/parse/cloud
24 |
25 | cd test/parse
26 |
27 | # install parse cli
28 | curl -s https://www.parse.com/downloads/cloud_code/installer.sh > installer.sh
29 | # parse shell script tries to install in /usr/local/bin, not available in container based
30 | # infra on travis
31 | sed -i 's/\/usr\/local\/bin\/parse/parse/g' installer.sh
32 | /bin/bash installer.sh
33 |
34 | # decrypt parse cloud config file
35 | # http://docs.travis-ci.com/user/encrypting-files/
36 | openssl aes-256-cbc -K $encrypted_54792a874ee7_key -iv $encrypted_54792a874ee7_iv -in config/global.json.enc -out config/global.json -d
37 |
38 | # deploy the new build
39 | ./parse deploy
40 |
41 | # test
42 | node index.js
43 |
44 | # cleanup the mess
45 | # get back to root of git project
46 | cd ../../
47 | cp src/version.js.bak src/version.js
48 | git checkout dist/
49 | git checkout test/
50 | git clean test/ -f
51 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/scripts/test-phantom:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e # exit when error
4 |
5 | [ -z $TRAVIS_BUILD_NUMBER ] && CI='false' || CI='true'
6 |
7 | if [ $CI == 'true' ]; then
8 | set -x # debug messages
9 | fi
10 |
11 | echo "Phantom test"
12 |
13 | if [ $CI == 'false' ]; then
14 | zuul --no-coverage --phantom -- test/run-browser.js | tap-spec
15 | else
16 | DEBUG=zuul* zuul --no-coverage --phantom -- test/run-browser.js
17 | fi
18 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/src/IndexBrowser.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // This is the object returned by the `index.browseAll()` method
4 |
5 | module.exports = IndexBrowser;
6 |
7 | var inherits = require('inherits');
8 | var EventEmitter = require('events').EventEmitter;
9 |
10 | function IndexBrowser() {
11 | }
12 |
13 | inherits(IndexBrowser, EventEmitter);
14 |
15 | IndexBrowser.prototype.stop = function() {
16 | this._stopped = true;
17 | this._clean();
18 | };
19 |
20 | IndexBrowser.prototype._end = function() {
21 | this.emit('end');
22 | this._clean();
23 | };
24 |
25 | IndexBrowser.prototype._error = function(err) {
26 | this.emit('error', err);
27 | this._clean();
28 | };
29 |
30 | IndexBrowser.prototype._result = function(content) {
31 | this.emit('result', content);
32 | };
33 |
34 | IndexBrowser.prototype._clean = function() {
35 | this.removeAllListeners('stop');
36 | this.removeAllListeners('end');
37 | this.removeAllListeners('error');
38 | this.removeAllListeners('result');
39 | };
40 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/src/browser/get-document-protocol.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = getDocumentProtocol;
4 |
5 | function getDocumentProtocol() {
6 | var protocol = window.document.location.protocol;
7 |
8 | // when in `file:` mode (local html file), default to `http:`
9 | if (protocol !== 'http:' && protocol !== 'https:') {
10 | protocol = 'http:';
11 | }
12 |
13 | return protocol;
14 | }
15 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/src/browser/inline-headers.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = inlineHeaders;
4 |
5 | var querystring = require('querystring');
6 |
7 | function inlineHeaders(url, headers) {
8 | if (/\?/.test(url)) {
9 | url += '&';
10 | } else {
11 | url += '?';
12 | }
13 |
14 | return url + querystring.encode(headers);
15 | }
16 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/src/browser/migration-layer/is-using-latest.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // this module helps finding if the current page is using
4 | // the cdn.jsdelivr.net/algoliasearch/latest/$BUILDNAME.min.js version
5 |
6 | module.exports = isUsingLatest;
7 |
8 | function isUsingLatest(buildName) {
9 | var toFind = new RegExp('cdn\\.jsdelivr\\.net/algoliasearch/latest/' +
10 | buildName.replace('.', '\\.') + // algoliasearch, algoliasearch.angular
11 | '(?:\\.min)?\\.js$'); // [.min].js
12 |
13 | var scripts = document.getElementsByTagName('script');
14 | var found = false;
15 | for (var currentScript = 0, nbScripts = scripts.length; currentScript < nbScripts; currentScript++) {
16 | if (scripts[currentScript].src && toFind.test(scripts[currentScript].src)) {
17 | found = true;
18 | break;
19 | }
20 | }
21 |
22 | return found;
23 | }
24 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/src/browser/migration-layer/load-v2.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = loadV2;
4 |
5 | function loadV2(buildName) {
6 | var loadScript = require('load-script');
7 | var v2ScriptUrl = '//cdn.jsdelivr.net/algoliasearch/2/' + buildName + '.min.js';
8 |
9 | var message = '-- AlgoliaSearch `latest` warning --\n' +
10 | 'Warning, you are using the `latest` version string from jsDelivr to load the AlgoliaSearch library.\n' +
11 | 'Using `latest` is no more recommended, you should load //cdn.jsdelivr.net/algoliasearch/2/algoliasearch.min.js\n\n' +
12 | 'Also, we updated the AlgoliaSearch JavaScript client to V3. If you want to upgrade,\n' +
13 | 'please read our migration guide at https://github.com/algolia/algoliasearch-client-js/wiki/Migration-guide-from-2.x.x-to-3.x.x\n' +
14 | '-- /AlgoliaSearch `latest` warning --';
15 |
16 | if (window.console) {
17 | if (window.console.warn) {
18 | window.console.warn(message);
19 | } else if (window.console.log) {
20 | window.console.log(message);
21 | }
22 | }
23 |
24 | // If current script loaded asynchronously,
25 | // it will load the script with DOMElement
26 | // otherwise, it will load the script with document.write
27 | try {
28 | // why \x3c? http://stackoverflow.com/a/236106/147079
29 | document.write('\x3Cscript>window.ALGOLIA_SUPPORTS_DOCWRITE = true\x3C/script>');
30 |
31 | if (window.ALGOLIA_SUPPORTS_DOCWRITE === true) {
32 | document.write('\x3Cscript src="' + v2ScriptUrl + '">\x3C/script>');
33 | scriptLoaded('document.write')();
34 | } else {
35 | loadScript(v2ScriptUrl, scriptLoaded('DOMElement'));
36 | }
37 | } catch (e) {
38 | loadScript(v2ScriptUrl, scriptLoaded('DOMElement'));
39 | }
40 | }
41 |
42 | function scriptLoaded(method) {
43 | return function log() {
44 | var message = 'AlgoliaSearch: loaded V2 script using ' + method;
45 |
46 | if (window.console && window.console.log) {
47 | window.console.log(message);
48 | }
49 | };
50 | }
51 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/src/browser/migration-layer/old-globals.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | /* eslint no-unused-vars: [2, {"vars": "local"}] */
4 |
5 | module.exports = oldGlobals;
6 |
7 | // put old window.AlgoliaSearch.. into window. again so that
8 | // users upgrading to V3 without changing their code, will be warned
9 | function oldGlobals() {
10 | var message = '-- AlgoliaSearch V2 => V3 error --\n' +
11 | 'You are trying to use a new version of the AlgoliaSearch JavaScript client with an old notation.\n' +
12 | 'Please read our migration guide at https://github.com/algolia/algoliasearch-client-js/wiki/Migration-guide-from-2.x.x-to-3.x.x\n' +
13 | '-- /AlgoliaSearch V2 => V3 error --';
14 |
15 | window.AlgoliaSearch = function() {
16 | throw new Error(message);
17 | };
18 |
19 | window.AlgoliaSearchHelper = function() {
20 | throw new Error(message);
21 | };
22 |
23 | window.AlgoliaExplainResults = function() {
24 | throw new Error(message);
25 | };
26 | }
27 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/src/browser/migration-layer/script.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // This script will be browserified and prepended to the normal build
4 | // directly in window, not wrapped in any module definition
5 | // To avoid cases where we are loaded with /latest/ along with
6 | migrationLayer(process.env.ALGOLIA_BUILDNAME);
7 |
8 | // Now onto the V2 related code:
9 | // If the client is using /latest/$BUILDNAME.min.js, load V2 of the library
10 | //
11 | // Otherwise, setup a migration layer that will throw on old constructors like
12 | // new AlgoliaSearch().
13 | // So that users upgrading from v2 to v3 will have a clear information
14 | // message on what to do if they did not read the migration guide
15 | function migrationLayer(buildName) {
16 | var isUsingLatest = require('./is-using-latest');
17 | var loadV2 = require('./load-v2');
18 | var oldGlobals = require('./old-globals');
19 |
20 | if (isUsingLatest(buildName)) {
21 | loadV2(buildName);
22 | } else {
23 | oldGlobals();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/src/version.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = '3.8.1';
4 |
--------------------------------------------------------------------------------
/bower_components/algoliasearch/zuul.config.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var zuulConfig = module.exports = {
4 | ui: 'tape',
5 | browserify: [{
6 | transform: 'bulkify'
7 | }],
8 | scripts: [
9 | '/node_modules/jquery/dist/jquery.min.js',
10 | '/node_modules/jquery-ajax-transport-xdomainrequest/jquery.xdomainrequest.min.js',
11 | '/node_modules/angular/angular.min.js',
12 | // browser integration tests will use the dist file
13 | '/dist/algoliasearch.min.js'
14 | ],
15 | html: './test/template.html',
16 | server: './test/support-server/index.js',
17 |
18 | // only used when run with saucelabs
19 | // not activated when dev or phantom
20 | concurrency: 5,
21 | // if browser does not sends output in 30s since last output:
22 | // stop testing, something is wrong
23 | browser_output_timeout: 50 * 1000,
24 | browser_open_timeout: 60 * 4 * 1000,
25 | // we want to be notified something is wrong asap, so no retry
26 | browser_retries: 0
27 | };
28 |
29 | if (process.env.TRAVIS_BUILD_NUMBER !== undefined) {
30 | zuulConfig.tunnel = {
31 | type: 'ngrok'
32 | };
33 | }
34 |
35 | var browsers = require('browzers');
36 |
37 | zuulConfig.browsers = process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false' ?
38 | browsers.pullRequest :
39 | browsers.all;
40 |
--------------------------------------------------------------------------------
/bower_components/angular-bootstrap/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "author": {
3 | "name": "https://github.com/angular-ui/bootstrap/graphs/contributors"
4 | },
5 | "name": "angular-bootstrap",
6 | "keywords": [
7 | "angular",
8 | "angular-ui",
9 | "bootstrap"
10 | ],
11 | "license": "MIT",
12 | "ignore": [],
13 | "description": "Native AngularJS (Angular) directives for Bootstrap.",
14 | "version": "0.13.4",
15 | "main": [
16 | "./ui-bootstrap-tpls.js"
17 | ],
18 | "dependencies": {
19 | "angular": ">=1.3.0"
20 | },
21 | "homepage": "https://github.com/angular-ui/bootstrap-bower",
22 | "_release": "0.13.4",
23 | "_resolution": {
24 | "type": "version",
25 | "tag": "0.13.4",
26 | "commit": "a5f2d4bdcbbbae9cc6bd34a0a79f24e9aacc8ab9"
27 | },
28 | "_source": "git://github.com/angular-ui/bootstrap-bower.git",
29 | "_target": "~0.13.4",
30 | "_originalSource": "angular-bootstrap",
31 | "_direct": true
32 | }
--------------------------------------------------------------------------------
/bower_components/angular-bootstrap/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
--------------------------------------------------------------------------------
/bower_components/angular-bootstrap/.npmignore:
--------------------------------------------------------------------------------
1 | bower.json
--------------------------------------------------------------------------------
/bower_components/angular-bootstrap/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "author": {
3 | "name": "https://github.com/angular-ui/bootstrap/graphs/contributors"
4 | },
5 | "name": "angular-bootstrap",
6 | "keywords": [
7 | "angular",
8 | "angular-ui",
9 | "bootstrap"
10 | ],
11 | "license": "MIT",
12 | "ignore": [],
13 | "description": "Native AngularJS (Angular) directives for Bootstrap.",
14 | "version": "0.13.4",
15 | "main": ["./ui-bootstrap-tpls.js"],
16 | "dependencies": {
17 | "angular": ">=1.3.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/bower_components/angular-bootstrap/index.js:
--------------------------------------------------------------------------------
1 | require('./ui-bootstrap-tpls');
2 | module.exports = 'ui.bootstrap';
3 |
--------------------------------------------------------------------------------
/bower_components/angular-bootstrap/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-ui-bootstrap",
3 | "version": "0.13.4",
4 | "description": "Bootstrap widgets for Angular",
5 | "main": "index.js",
6 | "homepage": "http://angular-ui.github.io/bootstrap/",
7 | "repository": {
8 | "type": "git",
9 | "url": "https://github.com/angular-ui/bootstrap.git"
10 | },
11 | "keywords": [
12 | "angular",
13 | "bootstrap",
14 | "angular-ui",
15 | "components",
16 | "client-side"
17 | ],
18 | "author": "https://github.com/angular-ui/bootstrap/graphs/contributors",
19 | "peerDependencies": {
20 | "angular": "^1.3.x || >= 1.4.0-beta.0 || >= 1.5.0-beta.0",
21 | "bootstrap": "^3.x"
22 | },
23 | "license": "MIT"
24 | }
25 |
--------------------------------------------------------------------------------
/bower_components/angular-bootstrap/ui-bootstrap-csp.css:
--------------------------------------------------------------------------------
1 | /* Include this file in your html if you are using the CSP mode. */
2 |
3 | .ng-animate.item:not(.left):not(.right) {
4 | -webkit-transition: 0s ease-in-out left;
5 | transition: 0s ease-in-out left
6 | }
--------------------------------------------------------------------------------
/bower_components/angular-stamplay/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-stamplay",
3 | "main": "angular-stamplay.js",
4 | "homepage": "https://github.com/Stamplay/angular-stamplay",
5 | "authors": [
6 | "Alessandro Oliveri alessandro.oliveri@gmail.com"
7 | ],
8 | "description": "angularjs stamplay-js-sdk wrapper",
9 | "keywords": [
10 | "stamplay",
11 | "angular-stamplay"
12 | ],
13 | "license": "MIT",
14 | "ignore": [
15 | "**/.*",
16 | "node_modules",
17 | "bower_components",
18 | "test",
19 | "tests"
20 | ],
21 | "_release": "e32cf61d8b",
22 | "_resolution": {
23 | "type": "branch",
24 | "branch": "master",
25 | "commit": "e32cf61d8b14720569fe5fac67a7ea473fa97a94"
26 | },
27 | "_source": "git://github.com/Stamplay/angular-stamplay.git",
28 | "_target": "*",
29 | "_originalSource": "angular-stamplay",
30 | "_direct": true
31 | }
--------------------------------------------------------------------------------
/bower_components/angular-stamplay/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Stamplay
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/bower_components/angular-stamplay/README.md:
--------------------------------------------------------------------------------
1 | # angular-stamplay
2 | Stamplay SDK angularjs service
3 |
4 | An Angular.js wrapper for stamplay-js-sdk.js providing a simple and familiar API for Angular Developer.
5 |
6 | #How do I add this to my project?
7 | You can download `angular-stamplay` by:
8 |
9 | * Using bower and running `bower install angular-stamplay --save`
10 |
11 | # Example
12 | How use angular-stamplay in your project
13 |
14 | ````html
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
43 | ````
44 | # Reference
45 | For all methods doc see [stamplay-js-sdk](https://github.com/Stamplay/stamplay-js-sdk/blob/master/README.md)
46 |
--------------------------------------------------------------------------------
/bower_components/angular-stamplay/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-stamplay",
3 | "main": "angular-stamplay.js",
4 | "version": "0.0.1",
5 | "homepage": "https://github.com/Stamplay/angular-stamplay",
6 | "authors": [
7 | "Alessandro Oliveri alessandro.oliveri@gmail.com"
8 | ],
9 | "description": "angularjs stamplay-js-sdk wrapper",
10 | "keywords": [
11 | "stamplay",
12 | "angular-stamplay"
13 | ],
14 | "license": "MIT",
15 | "ignore": [
16 | "**/.*",
17 | "node_modules",
18 | "bower_components",
19 | "test",
20 | "tests"
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/bower_components/angular-ui-router/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-ui-router",
3 | "version": "0.2.15",
4 | "main": "./release/angular-ui-router.js",
5 | "dependencies": {
6 | "angular": ">= 1.0.8"
7 | },
8 | "ignore": [
9 | "**/.*",
10 | "node_modules",
11 | "bower_components",
12 | "component.json",
13 | "package.json",
14 | "lib",
15 | "config",
16 | "sample",
17 | "test",
18 | "tests",
19 | "ngdoc_assets",
20 | "Gruntfile.js",
21 | "files.js"
22 | ],
23 | "homepage": "https://github.com/angular-ui/ui-router",
24 | "_release": "0.2.15",
25 | "_resolution": {
26 | "type": "version",
27 | "tag": "0.2.15",
28 | "commit": "805e69bae319e922e4d3265b7ef565058aaff850"
29 | },
30 | "_source": "git://github.com/angular-ui/ui-router.git",
31 | "_target": "~0.2.15",
32 | "_originalSource": "angular-ui-router"
33 | }
--------------------------------------------------------------------------------
/bower_components/angular-ui-router/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2013-2015 The AngularUI Team, Karsten Sperling
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/bower_components/angular-ui-router/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-ui-router",
3 | "version": "0.2.15",
4 | "main": "./release/angular-ui-router.js",
5 | "dependencies": {
6 | "angular": ">= 1.0.8"
7 | },
8 | "ignore": [
9 | "**/.*",
10 | "node_modules",
11 | "bower_components",
12 | "component.json",
13 | "package.json",
14 | "lib",
15 | "config",
16 | "sample",
17 | "test",
18 | "tests",
19 | "ngdoc_assets",
20 | "Gruntfile.js",
21 | "files.js"
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/bower_components/angular-ui-router/src/stateFilters.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @ngdoc filter
3 | * @name ui.router.state.filter:isState
4 | *
5 | * @requires ui.router.state.$state
6 | *
7 | * @description
8 | * Translates to {@link ui.router.state.$state#methods_is $state.is("stateName")}.
9 | */
10 | $IsStateFilter.$inject = ['$state'];
11 | function $IsStateFilter($state) {
12 | var isFilter = function (state) {
13 | return $state.is(state);
14 | };
15 | isFilter.$stateful = true;
16 | return isFilter;
17 | }
18 |
19 | /**
20 | * @ngdoc filter
21 | * @name ui.router.state.filter:includedByState
22 | *
23 | * @requires ui.router.state.$state
24 | *
25 | * @description
26 | * Translates to {@link ui.router.state.$state#methods_includes $state.includes('fullOrPartialStateName')}.
27 | */
28 | $IncludedByStateFilter.$inject = ['$state'];
29 | function $IncludedByStateFilter($state) {
30 | var includesFilter = function (state) {
31 | return $state.includes(state);
32 | };
33 | includesFilter.$stateful = true;
34 | return includesFilter;
35 | }
36 |
37 | angular.module('ui.router.state')
38 | .filter('isState', $IsStateFilter)
39 | .filter('includedByState', $IncludedByStateFilter);
40 |
--------------------------------------------------------------------------------
/bower_components/angular-ui-router/src/viewScroll.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @ngdoc object
3 | * @name ui.router.state.$uiViewScrollProvider
4 | *
5 | * @description
6 | * Provider that returns the {@link ui.router.state.$uiViewScroll} service function.
7 | */
8 | function $ViewScrollProvider() {
9 |
10 | var useAnchorScroll = false;
11 |
12 | /**
13 | * @ngdoc function
14 | * @name ui.router.state.$uiViewScrollProvider#useAnchorScroll
15 | * @methodOf ui.router.state.$uiViewScrollProvider
16 | *
17 | * @description
18 | * Reverts back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll) service for
19 | * scrolling based on the url anchor.
20 | */
21 | this.useAnchorScroll = function () {
22 | useAnchorScroll = true;
23 | };
24 |
25 | /**
26 | * @ngdoc object
27 | * @name ui.router.state.$uiViewScroll
28 | *
29 | * @requires $anchorScroll
30 | * @requires $timeout
31 | *
32 | * @description
33 | * When called with a jqLite element, it scrolls the element into view (after a
34 | * `$timeout` so the DOM has time to refresh).
35 | *
36 | * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor,
37 | * this can be enabled by calling {@link ui.router.state.$uiViewScrollProvider#methods_useAnchorScroll `$uiViewScrollProvider.useAnchorScroll()`}.
38 | */
39 | this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll, $timeout) {
40 | if (useAnchorScroll) {
41 | return $anchorScroll;
42 | }
43 |
44 | return function ($element) {
45 | return $timeout(function () {
46 | $element[0].scrollIntoView();
47 | }, 0, false);
48 | };
49 | }];
50 | }
51 |
52 | angular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);
53 |
--------------------------------------------------------------------------------
/bower_components/angular/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.4.5",
4 | "main": "./angular.js",
5 | "ignore": [],
6 | "dependencies": {},
7 | "homepage": "https://github.com/angular/bower-angular",
8 | "_release": "1.4.5",
9 | "_resolution": {
10 | "type": "version",
11 | "tag": "v1.4.5",
12 | "commit": "3809d44e5279e94a0596d5bc216d921f34f8ab2a"
13 | },
14 | "_source": "git://github.com/angular/bower-angular.git",
15 | "_target": ">= 1.0.8",
16 | "_originalSource": "angular"
17 | }
--------------------------------------------------------------------------------
/bower_components/angular/angular-csp.css:
--------------------------------------------------------------------------------
1 | /* Include this file in your html if you are using the CSP mode. */
2 |
3 | @charset "UTF-8";
4 |
5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],
6 | .ng-cloak, .x-ng-cloak,
7 | .ng-hide:not(.ng-hide-animate) {
8 | display: none !important;
9 | }
10 |
11 | ng\:form {
12 | display: block;
13 | }
14 |
15 | .ng-animate-shim {
16 | visibility:hidden;
17 | }
18 |
19 | .ng-anchor {
20 | position:absolute;
21 | }
22 |
--------------------------------------------------------------------------------
/bower_components/angular/angular.min.js.gzip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/angular/angular.min.js.gzip
--------------------------------------------------------------------------------
/bower_components/angular/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.4.5",
4 | "main": "./angular.js",
5 | "ignore": [],
6 | "dependencies": {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/bower_components/angular/index.js:
--------------------------------------------------------------------------------
1 | require('./angular');
2 | module.exports = angular;
3 |
--------------------------------------------------------------------------------
/bower_components/angular/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.4.5",
4 | "description": "HTML enhanced for web apps",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "client-side"
18 | ],
19 | "author": "Angular Core Team ",
20 | "license": "MIT",
21 | "bugs": {
22 | "url": "https://github.com/angular/angular.js/issues"
23 | },
24 | "homepage": "http://angularjs.org"
25 | }
26 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": ">= 1.9.1"
33 | },
34 | "version": "3.3.5",
35 | "_release": "3.3.5",
36 | "_resolution": {
37 | "type": "version",
38 | "tag": "v3.3.5",
39 | "commit": "16b48259a62f576e52c903c476bd42b90ab22482"
40 | },
41 | "_source": "git://github.com/twbs/bootstrap.git",
42 | "_target": "~3.3.5",
43 | "_originalSource": "bootstrap"
44 | }
--------------------------------------------------------------------------------
/bower_components/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2015 Twitter, Inc
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": ">= 1.9.1"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/bower_components/bootstrap/dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/bower_components/bootstrap/grunt/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends" : "../js/.jshintrc",
3 | "asi" : false,
4 | "browser" : false,
5 | "es3" : false,
6 | "node" : true
7 | }
8 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/grunt/bs-commonjs-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for the CommonJS module generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var path = require('path');
12 |
13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n';
14 |
15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) {
16 | var destDir = path.dirname(destFilepath);
17 |
18 | function srcPathToDestRequire(srcFilepath) {
19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/');
20 | return 'require(\'' + requirePath + '\')';
21 | }
22 |
23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n');
24 | try {
25 | fs.writeFileSync(destFilepath, moduleOutputJs);
26 | } catch (err) {
27 | grunt.fail.warn(err);
28 | }
29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.');
30 | };
31 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for Glyphicons data generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 |
12 | module.exports = function generateGlyphiconsData(grunt) {
13 | // Pass encoding, utf8, so `readFileSync` will return a string instead of a
14 | // buffer
15 | var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8');
16 | var glyphiconsLines = glyphiconsFile.split('\n');
17 |
18 | // Use any line that starts with ".glyphicon-" and capture the class name
19 | var iconClassName = /^\.(glyphicon-[a-zA-Z0-9-]+)/;
20 | var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' +
21 | '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n';
22 | var glyphiconsYml = 'docs/_data/glyphicons.yml';
23 | for (var i = 0, len = glyphiconsLines.length; i < len; i++) {
24 | var match = glyphiconsLines[i].match(iconClassName);
25 |
26 | if (match !== null) {
27 | glyphiconsData += '- ' + match[1] + '\n';
28 | }
29 | }
30 |
31 | // Create the `_data` directory if it doesn't already exist
32 | if (!fs.existsSync('docs/_data')) {
33 | fs.mkdirSync('docs/_data');
34 | }
35 |
36 | try {
37 | fs.writeFileSync(glyphiconsYml, glyphiconsData);
38 | } catch (err) {
39 | grunt.fail.warn(err);
40 | }
41 | grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.');
42 | };
43 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/grunt/bs-raw-files-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for generating raw-files.min.js for the Customizer
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var btoa = require('btoa');
12 | var glob = require('glob');
13 |
14 | function getFiles(type) {
15 | var files = {};
16 | var recursive = type === 'less';
17 | var globExpr = recursive ? '/**/*' : '/*';
18 | glob.sync(type + globExpr)
19 | .filter(function (path) {
20 | return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path);
21 | })
22 | .forEach(function (fullPath) {
23 | var relativePath = fullPath.replace(/^[^/]+\//, '');
24 | files[relativePath] = type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8');
25 | });
26 | return 'var __' + type + ' = ' + JSON.stringify(files) + '\n';
27 | }
28 |
29 | module.exports = function generateRawFilesJs(grunt, banner) {
30 | if (!banner) {
31 | banner = '';
32 | }
33 | var dirs = ['js', 'less', 'fonts'];
34 | var files = banner + dirs.map(getFiles).reduce(function (combined, file) {
35 | return combined + file;
36 | }, '');
37 | var rawFilesJs = 'docs/assets/js/raw-files.min.js';
38 | try {
39 | fs.writeFileSync(rawFilesJs, files);
40 | } catch (err) {
41 | grunt.fail.warn(err);
42 | }
43 | grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.');
44 | };
45 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/grunt/configBridge.json:
--------------------------------------------------------------------------------
1 | {
2 | "paths": {
3 | "customizerJs": [
4 | "../assets/js/vendor/autoprefixer.js",
5 | "../assets/js/vendor/less.min.js",
6 | "../assets/js/vendor/jszip.min.js",
7 | "../assets/js/vendor/uglify.min.js",
8 | "../assets/js/vendor/Blob.js",
9 | "../assets/js/vendor/FileSaver.js",
10 | "../assets/js/raw-files.min.js",
11 | "../assets/js/src/customizer.js"
12 | ],
13 | "docsJs": [
14 | "../assets/js/vendor/holder.min.js",
15 | "../assets/js/vendor/ZeroClipboard.min.js",
16 | "../assets/js/vendor/anchor.js",
17 | "../assets/js/src/application.js"
18 | ]
19 | },
20 | "config": {
21 | "autoprefixerBrowsers": [
22 | "Android 2.3",
23 | "Android >= 4",
24 | "Chrome >= 20",
25 | "Firefox >= 24",
26 | "Explorer >= 8",
27 | "iOS >= 6",
28 | "Opera >= 12",
29 | "Safari >= 6"
30 | ],
31 | "jqueryCheck": [
32 | "if (typeof jQuery === 'undefined') {",
33 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery')",
34 | "}\n"
35 | ],
36 | "jqueryVersionCheck": [
37 | "+function ($) {",
38 | " 'use strict';",
39 | " var version = $.fn.jquery.split(' ')[0].split('.')",
40 | " if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {",
41 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher')",
42 | " }",
43 | "}(jQuery);\n\n"
44 | ]
45 | }
46 | }
--------------------------------------------------------------------------------
/bower_components/bootstrap/grunt/sauce_browsers.yml:
--------------------------------------------------------------------------------
1 | [
2 | # Docs: https://saucelabs.com/docs/platforms/webdriver
3 |
4 | {
5 | browserName: "safari",
6 | platform: "OS X 10.10"
7 | },
8 | {
9 | browserName: "chrome",
10 | platform: "OS X 10.10"
11 | },
12 | {
13 | browserName: "firefox",
14 | platform: "OS X 10.10"
15 | },
16 |
17 | # Mac Opera not currently supported by Sauce Labs
18 |
19 | {
20 | browserName: "internet explorer",
21 | version: "11",
22 | platform: "Windows 8.1"
23 | },
24 | {
25 | browserName: "internet explorer",
26 | version: "10",
27 | platform: "Windows 8"
28 | },
29 | {
30 | browserName: "internet explorer",
31 | version: "9",
32 | platform: "Windows 7"
33 | },
34 | {
35 | browserName: "internet explorer",
36 | version: "8",
37 | platform: "Windows 7"
38 | },
39 |
40 | # { # Unofficial
41 | # browserName: "internet explorer",
42 | # version: "7",
43 | # platform: "Windows XP"
44 | # },
45 |
46 | {
47 | browserName: "chrome",
48 | platform: "Windows 8.1"
49 | },
50 | {
51 | browserName: "firefox",
52 | platform: "Windows 8.1"
53 | },
54 |
55 | # Win Opera 15+ not currently supported by Sauce Labs
56 |
57 | {
58 | browserName: "iphone",
59 | platform: "OS X 10.10",
60 | version: "8.2"
61 | },
62 |
63 | # iOS Chrome not currently supported by Sauce Labs
64 |
65 | # Linux (unofficial)
66 | {
67 | browserName: "chrome",
68 | platform: "Linux"
69 | },
70 | {
71 | browserName: "firefox",
72 | platform: "Linux"
73 | }
74 |
75 | # Android Chrome not currently supported by Sauce Labs
76 |
77 | # { # Android Browser (super-unofficial)
78 | # browserName: "android",
79 | # version: "4.0",
80 | # platform: "Linux"
81 | # }
82 | ]
83 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/js/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "asi" : true,
3 | "browser" : true,
4 | "eqeqeq" : false,
5 | "eqnull" : true,
6 | "es3" : true,
7 | "expr" : true,
8 | "jquery" : true,
9 | "latedef" : true,
10 | "laxbreak" : true,
11 | "nonbsp" : true,
12 | "strict" : true,
13 | "undef" : true,
14 | "unused" : true
15 | }
16 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/js/transition.js:
--------------------------------------------------------------------------------
1 | /* ========================================================================
2 | * Bootstrap: transition.js v3.3.5
3 | * http://getbootstrap.com/javascript/#transitions
4 | * ========================================================================
5 | * Copyright 2011-2015 Twitter, Inc.
6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7 | * ======================================================================== */
8 |
9 |
10 | +function ($) {
11 | 'use strict';
12 |
13 | // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
14 | // ============================================================
15 |
16 | function transitionEnd() {
17 | var el = document.createElement('bootstrap')
18 |
19 | var transEndEventNames = {
20 | WebkitTransition : 'webkitTransitionEnd',
21 | MozTransition : 'transitionend',
22 | OTransition : 'oTransitionEnd otransitionend',
23 | transition : 'transitionend'
24 | }
25 |
26 | for (var name in transEndEventNames) {
27 | if (el.style[name] !== undefined) {
28 | return { end: transEndEventNames[name] }
29 | }
30 | }
31 |
32 | return false // explicit for ie8 ( ._.)
33 | }
34 |
35 | // http://blog.alexmaccaw.com/css-transitions
36 | $.fn.emulateTransitionEnd = function (duration) {
37 | var called = false
38 | var $el = this
39 | $(this).one('bsTransitionEnd', function () { called = true })
40 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
41 | setTimeout(callback, duration)
42 | return this
43 | }
44 |
45 | $(function () {
46 | $.support.transition = transitionEnd()
47 |
48 | if (!$.support.transition) return
49 |
50 | $.event.special.bsTransitionEnd = {
51 | bindType: $.support.transition.end,
52 | delegateType: $.support.transition.end,
53 | handle: function (e) {
54 | if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
55 | }
56 | }
57 | })
58 |
59 | }(jQuery);
60 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/.csslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "adjoining-classes": false,
3 | "box-sizing": false,
4 | "box-model": false,
5 | "compatible-vendor-prefixes": false,
6 | "floats": false,
7 | "font-sizes": false,
8 | "gradients": false,
9 | "important": false,
10 | "known-properties": false,
11 | "outline-none": false,
12 | "qualified-headings": false,
13 | "regex-selectors": false,
14 | "shorthand": false,
15 | "text-indent": false,
16 | "unique-headings": false,
17 | "universal-selector": false,
18 | "unqualified-attributes": false
19 | }
20 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/alerts.less:
--------------------------------------------------------------------------------
1 | //
2 | // Alerts
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // -------------------------
8 |
9 | .alert {
10 | padding: @alert-padding;
11 | margin-bottom: @line-height-computed;
12 | border: 1px solid transparent;
13 | border-radius: @alert-border-radius;
14 |
15 | // Headings for larger alerts
16 | h4 {
17 | margin-top: 0;
18 | // Specified for the h4 to prevent conflicts of changing @headings-color
19 | color: inherit;
20 | }
21 |
22 | // Provide class for links that match alerts
23 | .alert-link {
24 | font-weight: @alert-link-font-weight;
25 | }
26 |
27 | // Improve alignment and spacing of inner content
28 | > p,
29 | > ul {
30 | margin-bottom: 0;
31 | }
32 |
33 | > p + p {
34 | margin-top: 5px;
35 | }
36 | }
37 |
38 | // Dismissible alerts
39 | //
40 | // Expand the right padding and account for the close button's positioning.
41 |
42 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
43 | .alert-dismissible {
44 | padding-right: (@alert-padding + 20);
45 |
46 | // Adjust close link position
47 | .close {
48 | position: relative;
49 | top: -2px;
50 | right: -21px;
51 | color: inherit;
52 | }
53 | }
54 |
55 | // Alternate styles
56 | //
57 | // Generate contextual modifier classes for colorizing the alert.
58 |
59 | .alert-success {
60 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
61 | }
62 |
63 | .alert-info {
64 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
65 | }
66 |
67 | .alert-warning {
68 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
69 | }
70 |
71 | .alert-danger {
72 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
73 | }
74 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/badges.less:
--------------------------------------------------------------------------------
1 | //
2 | // Badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .badge {
8 | display: inline-block;
9 | min-width: 10px;
10 | padding: 3px 7px;
11 | font-size: @font-size-small;
12 | font-weight: @badge-font-weight;
13 | color: @badge-color;
14 | line-height: @badge-line-height;
15 | vertical-align: middle;
16 | white-space: nowrap;
17 | text-align: center;
18 | background-color: @badge-bg;
19 | border-radius: @badge-border-radius;
20 |
21 | // Empty badges collapse automatically (not available in IE8)
22 | &:empty {
23 | display: none;
24 | }
25 |
26 | // Quick fix for badges in buttons
27 | .btn & {
28 | position: relative;
29 | top: -1px;
30 | }
31 |
32 | .btn-xs &,
33 | .btn-group-xs > .btn & {
34 | top: 0;
35 | padding: 1px 5px;
36 | }
37 |
38 | // Hover state, but only for links
39 | a& {
40 | &:hover,
41 | &:focus {
42 | color: @badge-link-hover-color;
43 | text-decoration: none;
44 | cursor: pointer;
45 | }
46 | }
47 |
48 | // Account for badges in navs
49 | .list-group-item.active > &,
50 | .nav-pills > .active > a > & {
51 | color: @badge-active-color;
52 | background-color: @badge-active-bg;
53 | }
54 |
55 | .list-group-item > & {
56 | float: right;
57 | }
58 |
59 | .list-group-item > & + & {
60 | margin-right: 5px;
61 | }
62 |
63 | .nav-pills > li > a > & {
64 | margin-left: 3px;
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/bootstrap.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.5 (http://getbootstrap.com)
3 | * Copyright 2011-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | // Core variables and mixins
8 | @import "variables.less";
9 | @import "mixins.less";
10 |
11 | // Reset and dependencies
12 | @import "normalize.less";
13 | @import "print.less";
14 | @import "glyphicons.less";
15 |
16 | // Core CSS
17 | @import "scaffolding.less";
18 | @import "type.less";
19 | @import "code.less";
20 | @import "grid.less";
21 | @import "tables.less";
22 | @import "forms.less";
23 | @import "buttons.less";
24 |
25 | // Components
26 | @import "component-animations.less";
27 | @import "dropdowns.less";
28 | @import "button-groups.less";
29 | @import "input-groups.less";
30 | @import "navs.less";
31 | @import "navbar.less";
32 | @import "breadcrumbs.less";
33 | @import "pagination.less";
34 | @import "pager.less";
35 | @import "labels.less";
36 | @import "badges.less";
37 | @import "jumbotron.less";
38 | @import "thumbnails.less";
39 | @import "alerts.less";
40 | @import "progress-bars.less";
41 | @import "media.less";
42 | @import "list-group.less";
43 | @import "panels.less";
44 | @import "responsive-embed.less";
45 | @import "wells.less";
46 | @import "close.less";
47 |
48 | // Components w/ JavaScript
49 | @import "modals.less";
50 | @import "tooltip.less";
51 | @import "popovers.less";
52 | @import "carousel.less";
53 |
54 | // Utility classes
55 | @import "utilities.less";
56 | @import "responsive-utilities.less";
57 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
8 | margin-bottom: @line-height-computed;
9 | list-style: none;
10 | background-color: @breadcrumb-bg;
11 | border-radius: @border-radius-base;
12 |
13 | > li {
14 | display: inline-block;
15 |
16 | + li:before {
17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18 | padding: 0 5px;
19 | color: @breadcrumb-color;
20 | }
21 | }
22 |
23 | > .active {
24 | color: @breadcrumb-active-color;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: (@font-size-base * 1.5);
9 | font-weight: @close-font-weight;
10 | line-height: 1;
11 | color: @close-color;
12 | text-shadow: @close-text-shadow;
13 | .opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: @close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | .opacity(.5);
21 | }
22 |
23 | // Additional properties for button version
24 | // iOS requires the button element instead of an anchor tag.
25 | // If you want the anchor version, it requires `href="#"`.
26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
27 | button& {
28 | padding: 0;
29 | cursor: pointer;
30 | background: transparent;
31 | border: 0;
32 | -webkit-appearance: none;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/code.less:
--------------------------------------------------------------------------------
1 | //
2 | // Code (inline and block)
3 | // --------------------------------------------------
4 |
5 |
6 | // Inline and block code styles
7 | code,
8 | kbd,
9 | pre,
10 | samp {
11 | font-family: @font-family-monospace;
12 | }
13 |
14 | // Inline code
15 | code {
16 | padding: 2px 4px;
17 | font-size: 90%;
18 | color: @code-color;
19 | background-color: @code-bg;
20 | border-radius: @border-radius-base;
21 | }
22 |
23 | // User input typically entered via keyboard
24 | kbd {
25 | padding: 2px 4px;
26 | font-size: 90%;
27 | color: @kbd-color;
28 | background-color: @kbd-bg;
29 | border-radius: @border-radius-small;
30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
31 |
32 | kbd {
33 | padding: 0;
34 | font-size: 100%;
35 | font-weight: bold;
36 | box-shadow: none;
37 | }
38 | }
39 |
40 | // Blocks of code
41 | pre {
42 | display: block;
43 | padding: ((@line-height-computed - 1) / 2);
44 | margin: 0 0 (@line-height-computed / 2);
45 | font-size: (@font-size-base - 1); // 14px to 13px
46 | line-height: @line-height-base;
47 | word-break: break-all;
48 | word-wrap: break-word;
49 | color: @pre-color;
50 | background-color: @pre-bg;
51 | border: 1px solid @pre-border-color;
52 | border-radius: @border-radius-base;
53 |
54 | // Account for some code outputs that place code tags in pre tags
55 | code {
56 | padding: 0;
57 | font-size: inherit;
58 | color: inherit;
59 | white-space: pre-wrap;
60 | background-color: transparent;
61 | border-radius: 0;
62 | }
63 | }
64 |
65 | // Enable scrollable blocks of code
66 | .pre-scrollable {
67 | max-height: @pre-scrollable-max-height;
68 | overflow-y: scroll;
69 | }
70 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/component-animations.less:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | .transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 |
21 | &.in { display: block; }
22 | tr&.in { display: table-row; }
23 | tbody&.in { display: table-row-group; }
24 | }
25 |
26 | .collapsing {
27 | position: relative;
28 | height: 0;
29 | overflow: hidden;
30 | .transition-property(~"height, visibility");
31 | .transition-duration(.35s);
32 | .transition-timing-function(ease);
33 | }
34 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/grid.less:
--------------------------------------------------------------------------------
1 | //
2 | // Grid system
3 | // --------------------------------------------------
4 |
5 |
6 | // Container widths
7 | //
8 | // Set the container width, and override it for fixed navbars in media queries.
9 |
10 | .container {
11 | .container-fixed();
12 |
13 | @media (min-width: @screen-sm-min) {
14 | width: @container-sm;
15 | }
16 | @media (min-width: @screen-md-min) {
17 | width: @container-md;
18 | }
19 | @media (min-width: @screen-lg-min) {
20 | width: @container-lg;
21 | }
22 | }
23 |
24 |
25 | // Fluid container
26 | //
27 | // Utilizes the mixin meant for fixed width containers, but without any defined
28 | // width for fluid, full width layouts.
29 |
30 | .container-fluid {
31 | .container-fixed();
32 | }
33 |
34 |
35 | // Row
36 | //
37 | // Rows contain and clear the floats of your columns.
38 |
39 | .row {
40 | .make-row();
41 | }
42 |
43 |
44 | // Columns
45 | //
46 | // Common styles for small and large grid columns
47 |
48 | .make-grid-columns();
49 |
50 |
51 | // Extra small grid
52 | //
53 | // Columns, offsets, pushes, and pulls for extra small devices like
54 | // smartphones.
55 |
56 | .make-grid(xs);
57 |
58 |
59 | // Small grid
60 | //
61 | // Columns, offsets, pushes, and pulls for the small device range, from phones
62 | // to tablets.
63 |
64 | @media (min-width: @screen-sm-min) {
65 | .make-grid(sm);
66 | }
67 |
68 |
69 | // Medium grid
70 | //
71 | // Columns, offsets, pushes, and pulls for the desktop device range.
72 |
73 | @media (min-width: @screen-md-min) {
74 | .make-grid(md);
75 | }
76 |
77 |
78 | // Large grid
79 | //
80 | // Columns, offsets, pushes, and pulls for the large desktop device range.
81 |
82 | @media (min-width: @screen-lg-min) {
83 | .make-grid(lg);
84 | }
85 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/jumbotron.less:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding-top: @jumbotron-padding;
8 | padding-bottom: @jumbotron-padding;
9 | margin-bottom: @jumbotron-padding;
10 | color: @jumbotron-color;
11 | background-color: @jumbotron-bg;
12 |
13 | h1,
14 | .h1 {
15 | color: @jumbotron-heading-color;
16 | }
17 |
18 | p {
19 | margin-bottom: (@jumbotron-padding / 2);
20 | font-size: @jumbotron-font-size;
21 | font-weight: 200;
22 | }
23 |
24 | > hr {
25 | border-top-color: darken(@jumbotron-bg, 10%);
26 | }
27 |
28 | .container &,
29 | .container-fluid & {
30 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
31 | }
32 |
33 | .container {
34 | max-width: 100%;
35 | }
36 |
37 | @media screen and (min-width: @screen-sm-min) {
38 | padding-top: (@jumbotron-padding * 1.6);
39 | padding-bottom: (@jumbotron-padding * 1.6);
40 |
41 | .container &,
42 | .container-fluid & {
43 | padding-left: (@jumbotron-padding * 2);
44 | padding-right: (@jumbotron-padding * 2);
45 | }
46 |
47 | h1,
48 | .h1 {
49 | font-size: @jumbotron-heading-font-size;
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/labels.less:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | // --------------------------------------------------
4 |
5 | .label {
6 | display: inline;
7 | padding: .2em .6em .3em;
8 | font-size: 75%;
9 | font-weight: bold;
10 | line-height: 1;
11 | color: @label-color;
12 | text-align: center;
13 | white-space: nowrap;
14 | vertical-align: baseline;
15 | border-radius: .25em;
16 |
17 | // Add hover effects, but only for links
18 | a& {
19 | &:hover,
20 | &:focus {
21 | color: @label-link-hover-color;
22 | text-decoration: none;
23 | cursor: pointer;
24 | }
25 | }
26 |
27 | // Empty labels collapse automatically (not available in IE8)
28 | &:empty {
29 | display: none;
30 | }
31 |
32 | // Quick fix for labels in buttons
33 | .btn & {
34 | position: relative;
35 | top: -1px;
36 | }
37 | }
38 |
39 | // Colors
40 | // Contextual variations (linked labels get darker on :hover)
41 |
42 | .label-default {
43 | .label-variant(@label-default-bg);
44 | }
45 |
46 | .label-primary {
47 | .label-variant(@label-primary-bg);
48 | }
49 |
50 | .label-success {
51 | .label-variant(@label-success-bg);
52 | }
53 |
54 | .label-info {
55 | .label-variant(@label-info-bg);
56 | }
57 |
58 | .label-warning {
59 | .label-variant(@label-warning-bg);
60 | }
61 |
62 | .label-danger {
63 | .label-variant(@label-danger-bg);
64 | }
65 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/media.less:
--------------------------------------------------------------------------------
1 | .media {
2 | // Proper spacing between instances of .media
3 | margin-top: 15px;
4 |
5 | &:first-child {
6 | margin-top: 0;
7 | }
8 | }
9 |
10 | .media,
11 | .media-body {
12 | zoom: 1;
13 | overflow: hidden;
14 | }
15 |
16 | .media-body {
17 | width: 10000px;
18 | }
19 |
20 | .media-object {
21 | display: block;
22 |
23 | // Fix collapse in webkit from max-width: 100% and display: table-cell.
24 | &.img-thumbnail {
25 | max-width: none;
26 | }
27 | }
28 |
29 | .media-right,
30 | .media > .pull-right {
31 | padding-left: 10px;
32 | }
33 |
34 | .media-left,
35 | .media > .pull-left {
36 | padding-right: 10px;
37 | }
38 |
39 | .media-left,
40 | .media-right,
41 | .media-body {
42 | display: table-cell;
43 | vertical-align: top;
44 | }
45 |
46 | .media-middle {
47 | vertical-align: middle;
48 | }
49 |
50 | .media-bottom {
51 | vertical-align: bottom;
52 | }
53 |
54 | // Reset margins on headings for tighter default spacing
55 | .media-heading {
56 | margin-top: 0;
57 | margin-bottom: 5px;
58 | }
59 |
60 | // Media list variation
61 | //
62 | // Undo default ul/ol styles
63 | .media-list {
64 | padding-left: 0;
65 | list-style: none;
66 | }
67 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------------------------------
3 |
4 | // Utilities
5 | @import "mixins/hide-text.less";
6 | @import "mixins/opacity.less";
7 | @import "mixins/image.less";
8 | @import "mixins/labels.less";
9 | @import "mixins/reset-filter.less";
10 | @import "mixins/resize.less";
11 | @import "mixins/responsive-visibility.less";
12 | @import "mixins/size.less";
13 | @import "mixins/tab-focus.less";
14 | @import "mixins/reset-text.less";
15 | @import "mixins/text-emphasis.less";
16 | @import "mixins/text-overflow.less";
17 | @import "mixins/vendor-prefixes.less";
18 |
19 | // Components
20 | @import "mixins/alerts.less";
21 | @import "mixins/buttons.less";
22 | @import "mixins/panels.less";
23 | @import "mixins/pagination.less";
24 | @import "mixins/list-group.less";
25 | @import "mixins/nav-divider.less";
26 | @import "mixins/forms.less";
27 | @import "mixins/progress-bar.less";
28 | @import "mixins/table-row.less";
29 |
30 | // Skins
31 | @import "mixins/background-variant.less";
32 | @import "mixins/border-radius.less";
33 | @import "mixins/gradients.less";
34 |
35 | // Layout
36 | @import "mixins/clearfix.less";
37 | @import "mixins/center-block.less";
38 | @import "mixins/nav-vertical-align.less";
39 | @import "mixins/grid-framework.less";
40 | @import "mixins/grid.less";
41 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/alerts.less:
--------------------------------------------------------------------------------
1 | // Alerts
2 |
3 | .alert-variant(@background; @border; @text-color) {
4 | background-color: @background;
5 | border-color: @border;
6 | color: @text-color;
7 |
8 | hr {
9 | border-top-color: darken(@border, 5%);
10 | }
11 | .alert-link {
12 | color: darken(@text-color, 10%);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/background-variant.less:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | .bg-variant(@color) {
4 | background-color: @color;
5 | a&:hover,
6 | a&:focus {
7 | background-color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/border-radius.less:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | .border-top-radius(@radius) {
4 | border-top-right-radius: @radius;
5 | border-top-left-radius: @radius;
6 | }
7 | .border-right-radius(@radius) {
8 | border-bottom-right-radius: @radius;
9 | border-top-right-radius: @radius;
10 | }
11 | .border-bottom-radius(@radius) {
12 | border-bottom-right-radius: @radius;
13 | border-bottom-left-radius: @radius;
14 | }
15 | .border-left-radius(@radius) {
16 | border-bottom-left-radius: @radius;
17 | border-top-left-radius: @radius;
18 | }
19 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/buttons.less:
--------------------------------------------------------------------------------
1 | // Button variants
2 | //
3 | // Easily pump out default styles, as well as :hover, :focus, :active,
4 | // and disabled options for all buttons
5 |
6 | .button-variant(@color; @background; @border) {
7 | color: @color;
8 | background-color: @background;
9 | border-color: @border;
10 |
11 | &:focus,
12 | &.focus {
13 | color: @color;
14 | background-color: darken(@background, 10%);
15 | border-color: darken(@border, 25%);
16 | }
17 | &:hover {
18 | color: @color;
19 | background-color: darken(@background, 10%);
20 | border-color: darken(@border, 12%);
21 | }
22 | &:active,
23 | &.active,
24 | .open > .dropdown-toggle& {
25 | color: @color;
26 | background-color: darken(@background, 10%);
27 | border-color: darken(@border, 12%);
28 |
29 | &:hover,
30 | &:focus,
31 | &.focus {
32 | color: @color;
33 | background-color: darken(@background, 17%);
34 | border-color: darken(@border, 25%);
35 | }
36 | }
37 | &:active,
38 | &.active,
39 | .open > .dropdown-toggle& {
40 | background-image: none;
41 | }
42 | &.disabled,
43 | &[disabled],
44 | fieldset[disabled] & {
45 | &,
46 | &:hover,
47 | &:focus,
48 | &.focus,
49 | &:active,
50 | &.active {
51 | background-color: @background;
52 | border-color: @border;
53 | }
54 | }
55 |
56 | .badge {
57 | color: @background;
58 | background-color: @color;
59 | }
60 | }
61 |
62 | // Button sizes
63 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
64 | padding: @padding-vertical @padding-horizontal;
65 | font-size: @font-size;
66 | line-height: @line-height;
67 | border-radius: @border-radius;
68 | }
69 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/center-block.less:
--------------------------------------------------------------------------------
1 | // Center-align a block level element
2 |
3 | .center-block() {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | }
8 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/clearfix.less:
--------------------------------------------------------------------------------
1 | // Clearfix
2 | //
3 | // For modern browsers
4 | // 1. The space content is one way to avoid an Opera bug when the
5 | // contenteditable attribute is included anywhere else in the document.
6 | // Otherwise it causes space to appear at the top and bottom of elements
7 | // that are clearfixed.
8 | // 2. The use of `table` rather than `block` is only necessary if using
9 | // `:before` to contain the top-margins of child elements.
10 | //
11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12 |
13 | .clearfix() {
14 | &:before,
15 | &:after {
16 | content: " "; // 1
17 | display: table; // 2
18 | }
19 | &:after {
20 | clear: both;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/hide-text.less:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | //
3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for
4 | // mixins being reused as classes with the same name, this doesn't hold up. As
5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6 | //
7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8 |
9 | // Deprecated as of v3.0.1 (will be removed in v4)
10 | .hide-text() {
11 | font: ~"0/0" a;
12 | color: transparent;
13 | text-shadow: none;
14 | background-color: transparent;
15 | border: 0;
16 | }
17 |
18 | // New mixin to use as of v3.0.1
19 | .text-hide() {
20 | .hide-text();
21 | }
22 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/image.less:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 | .img-responsive(@display: block) {
10 | display: @display;
11 | max-width: 100%; // Part 1: Set a maximum relative to the parent
12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
13 | }
14 |
15 |
16 | // Retina image
17 | //
18 | // Short retina mixin for setting background-image and -size. Note that the
19 | // spelling of `min--moz-device-pixel-ratio` is intentional.
20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
21 | background-image: url("@{file-1x}");
22 |
23 | @media
24 | only screen and (-webkit-min-device-pixel-ratio: 2),
25 | only screen and ( min--moz-device-pixel-ratio: 2),
26 | only screen and ( -o-min-device-pixel-ratio: 2/1),
27 | only screen and ( min-device-pixel-ratio: 2),
28 | only screen and ( min-resolution: 192dpi),
29 | only screen and ( min-resolution: 2dppx) {
30 | background-image: url("@{file-2x}");
31 | background-size: @width-1x @height-1x;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/labels.less:
--------------------------------------------------------------------------------
1 | // Labels
2 |
3 | .label-variant(@color) {
4 | background-color: @color;
5 |
6 | &[href] {
7 | &:hover,
8 | &:focus {
9 | background-color: darken(@color, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/list-group.less:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | .list-group-item-variant(@state; @background; @color) {
4 | .list-group-item-@{state} {
5 | color: @color;
6 | background-color: @background;
7 |
8 | a&,
9 | button& {
10 | color: @color;
11 |
12 | .list-group-item-heading {
13 | color: inherit;
14 | }
15 |
16 | &:hover,
17 | &:focus {
18 | color: @color;
19 | background-color: darken(@background, 5%);
20 | }
21 | &.active,
22 | &.active:hover,
23 | &.active:focus {
24 | color: #fff;
25 | background-color: @color;
26 | border-color: @color;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/nav-divider.less:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | .nav-divider(@color: #e5e5e5) {
6 | height: 1px;
7 | margin: ((@line-height-computed / 2) - 1) 0;
8 | overflow: hidden;
9 | background-color: @color;
10 | }
11 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/nav-vertical-align.less:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | .navbar-vertical-align(@element-height) {
7 | margin-top: ((@navbar-height - @element-height) / 2);
8 | margin-bottom: ((@navbar-height - @element-height) / 2);
9 | }
10 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/opacity.less:
--------------------------------------------------------------------------------
1 | // Opacity
2 |
3 | .opacity(@opacity) {
4 | opacity: @opacity;
5 | // IE8 filter
6 | @opacity-ie: (@opacity * 100);
7 | filter: ~"alpha(opacity=@{opacity-ie})";
8 | }
9 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/pagination.less:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
4 | > li {
5 | > a,
6 | > span {
7 | padding: @padding-vertical @padding-horizontal;
8 | font-size: @font-size;
9 | line-height: @line-height;
10 | }
11 | &:first-child {
12 | > a,
13 | > span {
14 | .border-left-radius(@border-radius);
15 | }
16 | }
17 | &:last-child {
18 | > a,
19 | > span {
20 | .border-right-radius(@border-radius);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/panels.less:
--------------------------------------------------------------------------------
1 | // Panels
2 |
3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
4 | border-color: @border;
5 |
6 | & > .panel-heading {
7 | color: @heading-text-color;
8 | background-color: @heading-bg-color;
9 | border-color: @heading-border;
10 |
11 | + .panel-collapse > .panel-body {
12 | border-top-color: @border;
13 | }
14 | .badge {
15 | color: @heading-bg-color;
16 | background-color: @heading-text-color;
17 | }
18 | }
19 | & > .panel-footer {
20 | + .panel-collapse > .panel-body {
21 | border-bottom-color: @border;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/progress-bar.less:
--------------------------------------------------------------------------------
1 | // Progress bars
2 |
3 | .progress-bar-variant(@color) {
4 | background-color: @color;
5 |
6 | // Deprecated parent class requirement as of v3.2.0
7 | .progress-striped & {
8 | #gradient > .striped();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/reset-filter.less:
--------------------------------------------------------------------------------
1 | // Reset filters for IE
2 | //
3 | // When you need to remove a gradient background, do not forget to use this to reset
4 | // the IE filter for IE9 and below.
5 |
6 | .reset-filter() {
7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
8 | }
9 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/reset-text.less:
--------------------------------------------------------------------------------
1 | .reset-text() {
2 | font-family: @font-family-base;
3 | // We deliberately do NOT reset font-size.
4 | font-style: normal;
5 | font-weight: normal;
6 | letter-spacing: normal;
7 | line-break: auto;
8 | line-height: @line-height-base;
9 | text-align: left; // Fallback for where `start` is not supported
10 | text-align: start;
11 | text-decoration: none;
12 | text-shadow: none;
13 | text-transform: none;
14 | white-space: normal;
15 | word-break: normal;
16 | word-spacing: normal;
17 | word-wrap: normal;
18 | }
19 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/resize.less:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | .resizable(@direction) {
4 | resize: @direction; // Options: horizontal, vertical, both
5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6 | }
7 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/responsive-visibility.less:
--------------------------------------------------------------------------------
1 | // Responsive utilities
2 |
3 | //
4 | // More easily include all the states for responsive-utilities.less.
5 | .responsive-visibility() {
6 | display: block !important;
7 | table& { display: table !important; }
8 | tr& { display: table-row !important; }
9 | th&,
10 | td& { display: table-cell !important; }
11 | }
12 |
13 | .responsive-invisibility() {
14 | display: none !important;
15 | }
16 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/size.less:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | .size(@width; @height) {
4 | width: @width;
5 | height: @height;
6 | }
7 |
8 | .square(@size) {
9 | .size(@size; @size);
10 | }
11 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/tab-focus.less:
--------------------------------------------------------------------------------
1 | // WebKit-style focus
2 |
3 | .tab-focus() {
4 | // Default
5 | outline: thin dotted;
6 | // WebKit
7 | outline: 5px auto -webkit-focus-ring-color;
8 | outline-offset: -2px;
9 | }
10 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/table-row.less:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | .table-row-variant(@state; @background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table > thead > tr,
7 | .table > tbody > tr,
8 | .table > tfoot > tr {
9 | > td.@{state},
10 | > th.@{state},
11 | &.@{state} > td,
12 | &.@{state} > th {
13 | background-color: @background;
14 | }
15 | }
16 |
17 | // Hover states for `.table-hover`
18 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
19 | .table-hover > tbody > tr {
20 | > td.@{state}:hover,
21 | > th.@{state}:hover,
22 | &.@{state}:hover > td,
23 | &:hover > .@{state},
24 | &.@{state}:hover > th {
25 | background-color: darken(@background, 5%);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/text-emphasis.less:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | .text-emphasis-variant(@color) {
4 | color: @color;
5 | a&:hover,
6 | a&:focus {
7 | color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/mixins/text-overflow.less:
--------------------------------------------------------------------------------
1 | // Text overflow
2 | // Requires inline-block or block for proper styling
3 |
4 | .text-overflow() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: @line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | &:extend(.clearfix all);
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: @pager-bg;
19 | border: 1px solid @pager-border;
20 | border-radius: @pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: @pager-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: @pager-disabled-color;
50 | background-color: @pager-bg;
51 | cursor: @cursor-disabled;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/responsive-embed.less:
--------------------------------------------------------------------------------
1 | // Embeds responsive
2 | //
3 | // Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 | .embed-responsive {
6 | position: relative;
7 | display: block;
8 | height: 0;
9 | padding: 0;
10 | overflow: hidden;
11 |
12 | .embed-responsive-item,
13 | iframe,
14 | embed,
15 | object,
16 | video {
17 | position: absolute;
18 | top: 0;
19 | left: 0;
20 | bottom: 0;
21 | height: 100%;
22 | width: 100%;
23 | border: 0;
24 | }
25 | }
26 |
27 | // Modifier class for 16:9 aspect ratio
28 | .embed-responsive-16by9 {
29 | padding-bottom: 56.25%;
30 | }
31 |
32 | // Modifier class for 4:3 aspect ratio
33 | .embed-responsive-4by3 {
34 | padding-bottom: 75%;
35 | }
36 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | display: block;
9 | padding: @thumbnail-padding;
10 | margin-bottom: @line-height-computed;
11 | line-height: @line-height-base;
12 | background-color: @thumbnail-bg;
13 | border: 1px solid @thumbnail-border;
14 | border-radius: @thumbnail-border-radius;
15 | .transition(border .2s ease-in-out);
16 |
17 | > img,
18 | a > img {
19 | &:extend(.img-responsive);
20 | margin-left: auto;
21 | margin-right: auto;
22 | }
23 |
24 | // Add a hover state for linked versions only
25 | a&:hover,
26 | a&:focus,
27 | a&.active {
28 | border-color: @link-color;
29 | }
30 |
31 | // Image captions
32 | .caption {
33 | padding: @thumbnail-caption-padding;
34 | color: @thumbnail-caption-color;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | .clearfix();
11 | }
12 | .center-block {
13 | .center-block();
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | .text-hide();
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | }
48 |
49 |
50 | // For Affix plugin
51 | // -------------------------
52 |
53 | .affix {
54 | position: fixed;
55 | }
56 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/less/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @well-bg;
12 | border: 1px solid @well-border;
13 | border-radius: @border-radius-base;
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: @border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: @border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/bower_components/bootstrap/package.js:
--------------------------------------------------------------------------------
1 | // package metadata file for Meteor.js
2 |
3 | /* jshint strict:false */
4 | /* global Package:true */
5 |
6 | Package.describe({
7 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
8 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
9 | version: '3.3.5',
10 | git: 'https://github.com/twbs/bootstrap.git'
11 | });
12 |
13 | Package.onUse(function (api) {
14 | api.versionsFrom('METEOR@1.0');
15 | api.use('jquery', 'client');
16 | api.addFiles([
17 | 'dist/fonts/glyphicons-halflings-regular.eot',
18 | 'dist/fonts/glyphicons-halflings-regular.svg',
19 | 'dist/fonts/glyphicons-halflings-regular.ttf',
20 | 'dist/fonts/glyphicons-halflings-regular.woff',
21 | 'dist/fonts/glyphicons-halflings-regular.woff2',
22 | 'dist/css/bootstrap.css',
23 | 'dist/js/bootstrap.js'
24 | ], 'client');
25 | });
26 |
--------------------------------------------------------------------------------
/bower_components/bootswatch/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootswatch",
3 | "description": "Bootswatch is a collection of themes for Bootstrap.",
4 | "author": "Thomas Park",
5 | "homepage": "http://bootswatch.com",
6 | "repository": {
7 | "type": "git",
8 | "url": "git://github.com/thomaspark/bootswatch.git"
9 | },
10 | "license": "MIT",
11 | "ignore": [
12 | "2",
13 | "api",
14 | "assets",
15 | "bower_components",
16 | "custom",
17 | "default",
18 | "global",
19 | "help",
20 | "tests",
21 | "_config.yml",
22 | ".gitignore",
23 | ".travis.yml",
24 | "CNAME",
25 | "composer.json",
26 | "favicon.ico",
27 | "Gemfile",
28 | "Gruntfile.js",
29 | "index.html",
30 | "package.json",
31 | "*/index.html"
32 | ],
33 | "dependencies": {
34 | "bootstrap": "~3.3.5"
35 | },
36 | "devDependencies": {
37 | "bootstrap-sass-official": "~3.3.5",
38 | "font-awesome": "~4.0.0",
39 | "html5shiv": "~3.7.0",
40 | "respond": "~1.4.2"
41 | },
42 | "version": "3.3.5+3",
43 | "_release": "3.3.5+3",
44 | "_resolution": {
45 | "type": "version",
46 | "tag": "v3.3.5+3",
47 | "commit": "913f54b9483b99fa12c7feccfa18ee5cc0206043"
48 | },
49 | "_source": "git://github.com/thomaspark/bootswatch.git",
50 | "_target": "~3.3.5+3",
51 | "_originalSource": "bootswatch",
52 | "_direct": true
53 | }
--------------------------------------------------------------------------------
/bower_components/bootswatch/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "postinstall": "cp -a ./bower_components/bootstrap/fonts ./"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/bower_components/bootswatch/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 Thomas Park
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/bower_components/bootswatch/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootswatch",
3 | "description": "Bootswatch is a collection of themes for Bootstrap.",
4 | "author": "Thomas Park",
5 | "homepage": "http://bootswatch.com",
6 | "repository": {
7 | "type": "git",
8 | "url": "git://github.com/thomaspark/bootswatch.git"
9 | },
10 | "license": "MIT",
11 | "ignore": [
12 | "2",
13 | "api",
14 | "assets",
15 | "bower_components",
16 | "custom",
17 | "default",
18 | "global",
19 | "help",
20 | "tests",
21 | "_config.yml",
22 | ".gitignore",
23 | ".travis.yml",
24 | "CNAME",
25 | "composer.json",
26 | "favicon.ico",
27 | "Gemfile",
28 | "Gruntfile.js",
29 | "index.html",
30 | "package.json",
31 | "*/index.html"
32 | ],
33 | "dependencies": {
34 | "bootstrap": "~3.3.5"
35 | },
36 | "devDependencies": {
37 | "bootstrap-sass-official": "~3.3.5",
38 | "font-awesome": "~4.0.0",
39 | "html5shiv": "~3.7.0",
40 | "respond": "~1.4.2"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/bower_components/bootswatch/cerulean/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/cerulean/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/cosmo/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/cosmo/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/cyborg/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/cyborg/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/darkly/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/darkly/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/flatly/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/flatly/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/bower_components/bootswatch/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/bower_components/bootswatch/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/bower_components/bootswatch/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/bower_components/bootswatch/journal/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/journal/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/lumen/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/lumen/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/paper/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/paper/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/readable/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/readable/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/sandstone/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/sandstone/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/simplex/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/simplex/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/slate/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/slate/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/spacelab/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/spacelab/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/superhero/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/superhero/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/united/_bootswatch.scss:
--------------------------------------------------------------------------------
1 | // United 3.3.5
2 | // Bootswatch
3 | // -----------------------------------------------------
4 |
5 | $web-font-path: "https://fonts.googleapis.com/css?family=Ubuntu:400,700" !default;
6 |
7 | @mixin web-font($path){
8 | @import url("#{$path}");
9 | }
10 | @include web-font($web-font-path);
11 |
12 | // Navbar =====================================================================
13 |
14 | .navbar {
15 |
16 | &-default {
17 |
18 | .badge {
19 | background-color: #fff;
20 | color: $navbar-default-bg;
21 | }
22 | }
23 |
24 | &-inverse {
25 |
26 | .badge {
27 | background-color: #fff;
28 | color: $navbar-inverse-bg;
29 | }
30 | }
31 | }
32 |
33 | @media (max-width: $grid-float-breakpoint-max) {
34 |
35 | .navbar {
36 |
37 | .dropdown-menu {
38 | a {
39 | color: #fff;
40 | }
41 | }
42 | }
43 | }
44 |
45 |
46 | // Buttons ====================================================================
47 |
48 | // Typography =================================================================
49 |
50 | // Tables =====================================================================
51 |
52 | // Forms ======================================================================
53 |
54 | // Navs =======================================================================
55 |
56 | // Indicators =================================================================
57 |
58 | // Progress bars ==============================================================
59 |
60 | // Containers =================================================================
--------------------------------------------------------------------------------
/bower_components/bootswatch/united/bootswatch.less:
--------------------------------------------------------------------------------
1 | // United 3.3.5
2 | // Bootswatch
3 | // -----------------------------------------------------
4 |
5 | @web-font-path: "https://fonts.googleapis.com/css?family=Ubuntu:400,700";
6 |
7 | .web-font(@path) {
8 | @import url("@{path}");
9 | }
10 | .web-font(@web-font-path);
11 |
12 | // Navbar =====================================================================
13 |
14 | .navbar {
15 |
16 | &-default {
17 |
18 | .badge {
19 | background-color: #fff;
20 | color: @navbar-default-bg;
21 | }
22 | }
23 |
24 | &-inverse {
25 |
26 | .badge {
27 | background-color: #fff;
28 | color: @navbar-inverse-bg;
29 | }
30 | }
31 | }
32 |
33 | @media (max-width: @grid-float-breakpoint-max) {
34 |
35 | .navbar {
36 |
37 | .dropdown-menu {
38 | a {
39 | color: #fff;
40 | }
41 | }
42 | }
43 | }
44 |
45 |
46 | // Buttons ====================================================================
47 |
48 | // Typography =================================================================
49 |
50 | // Tables =====================================================================
51 |
52 | // Forms ======================================================================
53 |
54 | // Navs =======================================================================
55 |
56 | // Indicators =================================================================
57 |
58 | // Progress bars ==============================================================
59 |
60 | // Containers =================================================================
--------------------------------------------------------------------------------
/bower_components/bootswatch/united/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/united/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/bootswatch/yeti/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scotch-io/angular-etsy-stamplay/69885f9d5e467a70692e888fe5845a06f5146bbb/bower_components/bootswatch/yeti/thumbnail.png
--------------------------------------------------------------------------------
/bower_components/jquery/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "version": "2.1.4",
4 | "main": "dist/jquery.js",
5 | "license": "MIT",
6 | "ignore": [
7 | "**/.*",
8 | "build",
9 | "dist/cdn",
10 | "speed",
11 | "test",
12 | "*.md",
13 | "AUTHORS.txt",
14 | "Gruntfile.js",
15 | "package.json"
16 | ],
17 | "devDependencies": {
18 | "sizzle": "2.1.1-jquery.2.1.2",
19 | "requirejs": "2.1.10",
20 | "qunit": "1.14.0",
21 | "sinon": "1.8.1"
22 | },
23 | "keywords": [
24 | "jquery",
25 | "javascript",
26 | "library"
27 | ],
28 | "homepage": "https://github.com/jquery/jquery",
29 | "_release": "2.1.4",
30 | "_resolution": {
31 | "type": "version",
32 | "tag": "2.1.4",
33 | "commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
34 | },
35 | "_source": "git://github.com/jquery/jquery.git",
36 | "_target": ">= 1.9.1",
37 | "_originalSource": "jquery"
38 | }
--------------------------------------------------------------------------------
/bower_components/jquery/MIT-LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2014 jQuery Foundation and other contributors
2 | http://jquery.com/
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining
5 | a copy of this software and associated documentation files (the
6 | "Software"), to deal in the Software without restriction, including
7 | without limitation the rights to use, copy, modify, merge, publish,
8 | distribute, sublicense, and/or sell copies of the Software, and to
9 | permit persons to whom the Software is furnished to do so, subject to
10 | the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/bower_components/jquery/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "version": "2.1.4",
4 | "main": "dist/jquery.js",
5 | "license": "MIT",
6 | "ignore": [
7 | "**/.*",
8 | "build",
9 | "dist/cdn",
10 | "speed",
11 | "test",
12 | "*.md",
13 | "AUTHORS.txt",
14 | "Gruntfile.js",
15 | "package.json"
16 | ],
17 | "devDependencies": {
18 | "sizzle": "2.1.1-jquery.2.1.2",
19 | "requirejs": "2.1.10",
20 | "qunit": "1.14.0",
21 | "sinon": "1.8.1"
22 | },
23 | "keywords": [
24 | "jquery",
25 | "javascript",
26 | "library"
27 | ]
28 | }
29 |
--------------------------------------------------------------------------------
/bower_components/jquery/src/ajax/load.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "../core/parseHTML",
4 | "../ajax",
5 | "../traversing",
6 | "../manipulation",
7 | "../selector",
8 | // Optional event/alias dependency
9 | "../event/alias"
10 | ], function( jQuery ) {
11 |
12 | // Keep a copy of the old load method
13 | var _load = jQuery.fn.load;
14 |
15 | /**
16 | * Load a url into a page
17 | */
18 | jQuery.fn.load = function( url, params, callback ) {
19 | if ( typeof url !== "string" && _load ) {
20 | return _load.apply( this, arguments );
21 | }
22 |
23 | var selector, type, response,
24 | self = this,
25 | off = url.indexOf(" ");
26 |
27 | if ( off >= 0 ) {
28 | selector = jQuery.trim( url.slice( off ) );
29 | url = url.slice( 0, off );
30 | }
31 |
32 | // If it's a function
33 | if ( jQuery.isFunction( params ) ) {
34 |
35 | // We assume that it's the callback
36 | callback = params;
37 | params = undefined;
38 |
39 | // Otherwise, build a param string
40 | } else if ( params && typeof params === "object" ) {
41 | type = "POST";
42 | }
43 |
44 | // If we have elements to modify, make the request
45 | if ( self.length > 0 ) {
46 | jQuery.ajax({
47 | url: url,
48 |
49 | // if "type" variable is undefined, then "GET" method will be used
50 | type: type,
51 | dataType: "html",
52 | data: params
53 | }).done(function( responseText ) {
54 |
55 | // Save response for use in complete callback
56 | response = arguments;
57 |
58 | self.html( selector ?
59 |
60 | // If a selector was specified, locate the right elements in a dummy div
61 | // Exclude scripts to avoid IE 'Permission Denied' errors
62 | jQuery("").append( jQuery.parseHTML( responseText ) ).find( selector ) :
63 |
64 | // Otherwise use the full result
65 | responseText );
66 |
67 | }).complete( callback && function( jqXHR, status ) {
68 | self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
69 | });
70 | }
71 |
72 | return this;
73 | };
74 |
75 | });
76 |
--------------------------------------------------------------------------------
/bower_components/jquery/src/ajax/parseJSON.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Support: Android 2.3
6 | // Workaround failure to string-cast null input
7 | jQuery.parseJSON = function( data ) {
8 | return JSON.parse( data + "" );
9 | };
10 |
11 | return jQuery.parseJSON;
12 |
13 | });
14 |
--------------------------------------------------------------------------------
/bower_components/jquery/src/ajax/parseXML.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Cross-browser xml parsing
6 | jQuery.parseXML = function( data ) {
7 | var xml, tmp;
8 | if ( !data || typeof data !== "string" ) {
9 | return null;
10 | }
11 |
12 | // Support: IE9
13 | try {
14 | tmp = new DOMParser();
15 | xml = tmp.parseFromString( data, "text/xml" );
16 | } catch ( e ) {
17 | xml = undefined;
18 | }
19 |
20 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
21 | jQuery.error( "Invalid XML: " + data );
22 | }
23 | return xml;
24 | };
25 |
26 | return jQuery.parseXML;
27 |
28 | });
29 |
--------------------------------------------------------------------------------
/bower_components/jquery/src/ajax/script.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "../ajax"
4 | ], function( jQuery ) {
5 |
6 | // Install script dataType
7 | jQuery.ajaxSetup({
8 | accepts: {
9 | script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
10 | },
11 | contents: {
12 | script: /(?:java|ecma)script/
13 | },
14 | converters: {
15 | "text script": function( text ) {
16 | jQuery.globalEval( text );
17 | return text;
18 | }
19 | }
20 | });
21 |
22 | // Handle cache's special case and crossDomain
23 | jQuery.ajaxPrefilter( "script", function( s ) {
24 | if ( s.cache === undefined ) {
25 | s.cache = false;
26 | }
27 | if ( s.crossDomain ) {
28 | s.type = "GET";
29 | }
30 | });
31 |
32 | // Bind script tag hack transport
33 | jQuery.ajaxTransport( "script", function( s ) {
34 | // This transport only deals with cross domain requests
35 | if ( s.crossDomain ) {
36 | var script, callback;
37 | return {
38 | send: function( _, complete ) {
39 | script = jQuery("
18 |
35 |