├── app ├── css │ └── .touch ├── elements │ └── .touch ├── .bowerrc ├── bower.json └── index.html ├── .gitignore ├── bower_components ├── app-route │ ├── .gitignore │ ├── .github │ │ └── ISSUE_TEMPLATE.md │ ├── index.html │ ├── test │ │ ├── observer-tester.html │ │ ├── index.html │ │ ├── redirection.html │ │ └── app-example-1.html │ ├── demo │ │ ├── data-loading-demo.html │ │ └── youtube-demo │ │ │ └── route-info.html │ ├── bower.json │ └── .bower.json ├── iron-ajax │ ├── .gitignore │ ├── .travis.yml │ ├── .github │ │ └── ISSUE_TEMPLATE.md │ ├── index.html │ ├── test │ │ └── index.html │ ├── bower.json │ ├── .bower.json │ └── README.md ├── iron-location │ ├── .gitignore │ ├── .github │ │ └── ISSUE_TEMPLATE.md │ ├── index.html │ ├── test │ │ └── index.html │ ├── bower.json │ └── .bower.json ├── iron-pages │ ├── .gitignore │ ├── .travis.yml │ ├── .github │ │ └── ISSUE_TEMPLATE.md │ ├── index.html │ ├── hero.svg │ ├── test │ │ └── index.html │ ├── README.md │ ├── bower.json │ └── .bower.json ├── iron-resizable-behavior │ ├── .gitignore │ ├── index.html │ ├── .travis.yml │ ├── bower.json │ ├── demo │ │ └── index.html │ ├── test │ │ └── index.html │ ├── .bower.json │ └── README.md ├── iron-selector │ ├── .gitignore │ ├── .github │ │ └── ISSUE_TEMPLATE.md │ ├── .travis.yml │ ├── index.html │ ├── test │ │ ├── attr-for-selected-elements.html │ │ ├── content-element.html │ │ └── index.html │ ├── bower.json │ └── .bower.json ├── jquery │ ├── src │ │ ├── var │ │ │ ├── arr.js │ │ │ ├── document.js │ │ │ ├── getProto.js │ │ │ ├── push.js │ │ │ ├── class2type.js │ │ │ ├── concat.js │ │ │ ├── slice.js │ │ │ ├── indexOf.js │ │ │ ├── pnum.js │ │ │ ├── fnToString.js │ │ │ ├── toString.js │ │ │ ├── hasOwn.js │ │ │ ├── documentElement.js │ │ │ ├── support.js │ │ │ ├── ObjectFunctionString.js │ │ │ ├── rcssNum.js │ │ │ └── rnothtmlwhite.js │ │ ├── selector.js │ │ ├── ajax │ │ │ ├── var │ │ │ │ ├── rquery.js │ │ │ │ ├── location.js │ │ │ │ └── nonce.js │ │ │ └── parseXML.js │ │ ├── css │ │ │ ├── var │ │ │ │ ├── rmargin.js │ │ │ │ ├── cssExpand.js │ │ │ │ ├── rnumnonpx.js │ │ │ │ ├── getStyles.js │ │ │ │ ├── swap.js │ │ │ │ └── isHiddenWithinTree.js │ │ │ ├── hiddenVisibleSelectors.js │ │ │ └── addGetHookIf.js │ │ ├── data │ │ │ └── var │ │ │ │ ├── dataPriv.js │ │ │ │ ├── dataUser.js │ │ │ │ └── acceptData.js │ │ ├── manipulation │ │ │ ├── var │ │ │ │ ├── rcheckableType.js │ │ │ │ ├── rscriptType.js │ │ │ │ └── rtagName.js │ │ │ ├── _evalUrl.js │ │ │ ├── setGlobalEval.js │ │ │ ├── getAll.js │ │ │ ├── wrapMap.js │ │ │ └── support.js │ │ ├── core │ │ │ ├── var │ │ │ │ └── rsingleTag.js │ │ │ ├── readyException.js │ │ │ ├── DOMEval.js │ │ │ ├── stripAndCollapse.js │ │ │ ├── support.js │ │ │ └── access.js │ │ ├── traversing │ │ │ └── var │ │ │ │ ├── rneedsContext.js │ │ │ │ ├── siblings.js │ │ │ │ └── dir.js │ │ ├── event │ │ │ ├── support.js │ │ │ ├── ajax.js │ │ │ ├── alias.js │ │ │ └── focusin.js │ │ ├── attributes.js │ │ ├── effects │ │ │ └── animatedSelector.js │ │ ├── .eslintrc.json │ │ ├── selector-sizzle.js │ │ ├── deprecated.js │ │ ├── deferred │ │ │ └── exceptionHook.js │ │ ├── queue │ │ │ └── delay.js │ │ ├── exports │ │ │ ├── global.js │ │ │ └── amd.js │ │ ├── jquery.js │ │ └── attributes │ │ │ └── support.js │ ├── bower.json │ ├── .bower.json │ ├── LICENSE.txt │ └── external │ │ └── sizzle │ │ └── LICENSE.txt ├── promise-polyfill │ ├── promise-polyfill.html │ ├── promise-polyfill-lite.html │ ├── README.md │ ├── bower.json │ ├── Gruntfile.js │ ├── .bower.json │ ├── package.json │ ├── LICENSE │ ├── Promise-Statics.js │ └── Promise.min.js ├── bootstrap │ ├── Gemfile │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── grunt │ │ ├── .jshintrc │ │ ├── bs-commonjs-generator.js │ │ ├── bs-raw-files-generator.js │ │ ├── configBridge.json │ │ ├── bs-glyphicons-data-generator.js │ │ └── sauce_browsers.yml │ ├── dist │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ │ └── npm.js │ ├── less │ │ ├── mixins │ │ │ ├── center-block.less │ │ │ ├── size.less │ │ │ ├── opacity.less │ │ │ ├── text-emphasis.less │ │ │ ├── text-overflow.less │ │ │ ├── background-variant.less │ │ │ ├── labels.less │ │ │ ├── resize.less │ │ │ ├── progress-bar.less │ │ │ ├── nav-divider.less │ │ │ ├── reset-filter.less │ │ │ ├── alerts.less │ │ │ ├── tab-focus.less │ │ │ ├── nav-vertical-align.less │ │ │ ├── responsive-visibility.less │ │ │ ├── border-radius.less │ │ │ ├── reset-text.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── hide-text.less │ │ │ ├── list-group.less │ │ │ ├── clearfix.less │ │ │ ├── table-row.less │ │ │ ├── image.less │ │ │ └── buttons.less │ │ ├── .csslintrc │ │ ├── wells.less │ │ ├── breadcrumbs.less │ │ ├── responsive-embed.less │ │ ├── component-animations.less │ │ ├── close.less │ │ ├── thumbnails.less │ │ ├── utilities.less │ │ ├── pager.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── labels.less │ │ ├── jumbotron.less │ │ ├── badges.less │ │ ├── bootstrap.less │ │ ├── code.less │ │ └── grid.less │ ├── js │ │ └── .jshintrc │ ├── CHANGELOG.md │ ├── nuget │ │ ├── MyGet.ps1 │ │ ├── bootstrap.nuspec │ │ └── bootstrap.less.nuspec │ ├── bower.json │ ├── package.js │ ├── .bower.json │ ├── Gemfile.lock │ ├── LICENSE │ └── ISSUE_TEMPLATE.md ├── webcomponentsjs │ ├── bower.json │ ├── .bower.json │ └── package.json └── polymer │ ├── bower.json │ ├── .bower.json │ └── LICENSE.txt ├── step-01 ├── .bowerrc ├── bower.json └── index.html ├── step-02 ├── .bowerrc ├── bower.json ├── elements │ └── beer-list-item.html └── index.html ├── step-03 ├── .bowerrc ├── bower.json ├── index.html └── elements │ └── beer-list-item.html ├── step-04 ├── .bowerrc ├── bower.json ├── index.html └── elements │ └── beer-list-item.html ├── step-05 ├── .bowerrc ├── bower.json ├── index.html └── elements │ └── beer-list-item.html ├── step-06 ├── .bowerrc ├── bower.json ├── index.html └── elements │ └── beer-list-item.html ├── step-07 ├── .bowerrc ├── bower.json └── elements │ └── beer-list-item.html ├── step-08 ├── .bowerrc ├── img │ └── back.png ├── bower.json └── elements │ └── beer-list-item.html ├── img ├── ChimayRed.jpg ├── logo-25px.png ├── logo-40px.png ├── logo-250px.png ├── logo-500px.png ├── logo-500px0.png ├── step-02_01.jpg ├── step-04_01.jpg ├── step-04_02.jpg ├── step-05_01.jpg ├── step-06_01.jpg ├── step-07_01.jpg ├── step-08_01.jpg ├── step-08_02.jpg ├── AffligemBlond.jpg ├── AffligemDubbel.jpg ├── AffligemTripel.jpg ├── ChimayTriple.jpg ├── ChimayRed-label.png ├── StBernardusAbt12.jpg ├── AffligemBlond-label.png ├── ChimayTriple-label.png ├── StBernardusPater6.jpg ├── StBernardusTripel.jpg ├── AffligemDubbel-label.png ├── AffligemTripel-label.png ├── TrappistesRochefort10.jpg ├── TrappistesRochefort6.jpg ├── TrappistesRochefort8.jpg ├── StBernardusAbt12-label.png ├── StBernardusPater6-label.png ├── StBernardusTripel-label.png ├── TrappistesRochefort6-label.png ├── TrappistesRochefort8-label.png └── TrappistesRochefort10-label.png ├── data └── beers │ ├── img │ ├── ChimayRed.jpg │ ├── AffligemBlond.jpg │ ├── ChimayTriple.jpg │ ├── AffligemDubbel.jpg │ ├── AffligemTripel.jpg │ ├── ChimayRed-label.png │ ├── ChimayTriple-label.png │ ├── StBernardusAbt12.jpg │ ├── StBernardusPater6.jpg │ ├── StBernardusTripel.jpg │ ├── AffligemBlond-label.png │ ├── AffligemDubbel-label.png │ ├── AffligemTripel-label.png │ ├── TrappistesRochefort6.jpg │ ├── TrappistesRochefort8.jpg │ ├── StBernardusAbt12-label.png │ ├── StBernardusPater6-label.png │ ├── StBernardusTripel-label.png │ ├── TrappistesRochefort10.jpg │ ├── TrappistesRochefort10-label.png │ ├── TrappistesRochefort6-label.png │ └── TrappistesRochefort8-label.png │ └── details │ ├── TrappistesRochefort8.json │ ├── AffligemBlond.json │ ├── AffligemTripel.json │ ├── AffligemDubbel.json │ ├── StBernardusPater6.json │ ├── StBernardusAbt12.json │ ├── StBernardusTripel.json │ ├── TrappistesRochefort10.json │ ├── TrappistesRochefort6.json │ ├── ChimayRed.json │ └── ChimayTriple.json ├── docker_run.sh ├── docker_build.sh └── Dockerfile /app/css/.touch: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/elements/.touch: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | app-old 2 | .idea 3 | .DS_Store 4 | *.iml 5 | -------------------------------------------------------------------------------- /bower_components/app-route/.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | -------------------------------------------------------------------------------- /bower_components/iron-ajax/.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | -------------------------------------------------------------------------------- /app/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /bower_components/iron-location/.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | -------------------------------------------------------------------------------- /bower_components/iron-pages/.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | -------------------------------------------------------------------------------- /step-01/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /step-02/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /step-03/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /step-04/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /step-05/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /step-06/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /step-07/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /step-08/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "../bower_components" 3 | } -------------------------------------------------------------------------------- /bower_components/iron-resizable-behavior/.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | -------------------------------------------------------------------------------- /bower_components/iron-selector/.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /img/ChimayRed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/ChimayRed.jpg -------------------------------------------------------------------------------- /img/logo-25px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/logo-25px.png -------------------------------------------------------------------------------- /img/logo-40px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/logo-40px.png -------------------------------------------------------------------------------- /img/logo-250px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/logo-250px.png -------------------------------------------------------------------------------- /img/logo-500px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/logo-500px.png -------------------------------------------------------------------------------- /img/logo-500px0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/logo-500px0.png -------------------------------------------------------------------------------- /img/step-02_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/step-02_01.jpg -------------------------------------------------------------------------------- /img/step-04_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/step-04_01.jpg -------------------------------------------------------------------------------- /img/step-04_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/step-04_02.jpg -------------------------------------------------------------------------------- /img/step-05_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/step-05_01.jpg -------------------------------------------------------------------------------- /img/step-06_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/step-06_01.jpg -------------------------------------------------------------------------------- /img/step-07_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/step-07_01.jpg -------------------------------------------------------------------------------- /img/step-08_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/step-08_01.jpg -------------------------------------------------------------------------------- /img/step-08_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/step-08_02.jpg -------------------------------------------------------------------------------- /img/AffligemBlond.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/AffligemBlond.jpg -------------------------------------------------------------------------------- /img/AffligemDubbel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/AffligemDubbel.jpg -------------------------------------------------------------------------------- /img/AffligemTripel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/AffligemTripel.jpg -------------------------------------------------------------------------------- /img/ChimayTriple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/ChimayTriple.jpg -------------------------------------------------------------------------------- /step-08/img/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/step-08/img/back.png -------------------------------------------------------------------------------- /img/ChimayRed-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/ChimayRed-label.png -------------------------------------------------------------------------------- /img/StBernardusAbt12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/StBernardusAbt12.jpg -------------------------------------------------------------------------------- /bower_components/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return []; 5 | } ); 6 | -------------------------------------------------------------------------------- /img/AffligemBlond-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/AffligemBlond-label.png -------------------------------------------------------------------------------- /img/ChimayTriple-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/ChimayTriple-label.png -------------------------------------------------------------------------------- /img/StBernardusPater6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/StBernardusPater6.jpg -------------------------------------------------------------------------------- /img/StBernardusTripel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/StBernardusTripel.jpg -------------------------------------------------------------------------------- /bower_components/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define( [ "./selector-sizzle" ], function() { 2 | "use strict"; 3 | } ); 4 | -------------------------------------------------------------------------------- /data/beers/img/ChimayRed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/ChimayRed.jpg -------------------------------------------------------------------------------- /img/AffligemDubbel-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/AffligemDubbel-label.png -------------------------------------------------------------------------------- /img/AffligemTripel-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/AffligemTripel-label.png -------------------------------------------------------------------------------- /img/TrappistesRochefort10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/TrappistesRochefort10.jpg -------------------------------------------------------------------------------- /img/TrappistesRochefort6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/TrappistesRochefort6.jpg -------------------------------------------------------------------------------- /img/TrappistesRochefort8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/TrappistesRochefort8.jpg -------------------------------------------------------------------------------- /data/beers/img/AffligemBlond.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/AffligemBlond.jpg -------------------------------------------------------------------------------- /data/beers/img/ChimayTriple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/ChimayTriple.jpg -------------------------------------------------------------------------------- /img/StBernardusAbt12-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/StBernardusAbt12-label.png -------------------------------------------------------------------------------- /img/StBernardusPater6-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/StBernardusPater6-label.png -------------------------------------------------------------------------------- /img/StBernardusTripel-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/StBernardusTripel-label.png -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /\?/ ); 5 | } ); 6 | -------------------------------------------------------------------------------- /data/beers/img/AffligemDubbel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/AffligemDubbel.jpg -------------------------------------------------------------------------------- /data/beers/img/AffligemTripel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/AffligemTripel.jpg -------------------------------------------------------------------------------- /data/beers/img/ChimayRed-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/ChimayRed-label.png -------------------------------------------------------------------------------- /img/TrappistesRochefort6-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/TrappistesRochefort6-label.png -------------------------------------------------------------------------------- /img/TrappistesRochefort8-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/TrappistesRochefort8-label.png -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /^margin/ ); 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/document.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return window.document; 5 | } ); 6 | -------------------------------------------------------------------------------- /data/beers/img/ChimayTriple-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/ChimayTriple-label.png -------------------------------------------------------------------------------- /data/beers/img/StBernardusAbt12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/StBernardusAbt12.jpg -------------------------------------------------------------------------------- /data/beers/img/StBernardusPater6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/StBernardusPater6.jpg -------------------------------------------------------------------------------- /data/beers/img/StBernardusTripel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/StBernardusTripel.jpg -------------------------------------------------------------------------------- /img/TrappistesRochefort10-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/img/TrappistesRochefort10-label.png -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/location.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return window.location; 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/getProto.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return Object.getPrototypeOf; 5 | } ); 6 | -------------------------------------------------------------------------------- /data/beers/img/AffligemBlond-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/AffligemBlond-label.png -------------------------------------------------------------------------------- /data/beers/img/AffligemDubbel-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/AffligemDubbel-label.png -------------------------------------------------------------------------------- /data/beers/img/AffligemTripel-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/AffligemTripel-label.png -------------------------------------------------------------------------------- /data/beers/img/TrappistesRochefort6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/TrappistesRochefort6.jpg -------------------------------------------------------------------------------- /data/beers/img/TrappistesRochefort8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/TrappistesRochefort8.jpg -------------------------------------------------------------------------------- /data/beers/img/StBernardusAbt12-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/StBernardusAbt12-label.png -------------------------------------------------------------------------------- /data/beers/img/StBernardusPater6-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/StBernardusPater6-label.png -------------------------------------------------------------------------------- /data/beers/img/StBernardusTripel-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/StBernardusTripel-label.png -------------------------------------------------------------------------------- /data/beers/img/TrappistesRochefort10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/TrappistesRochefort10.jpg -------------------------------------------------------------------------------- /bower_components/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | "use strict"; 5 | 6 | return arr.push; 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | // [[Class]] -> type pairs 5 | return {}; 6 | } ); 7 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | "use strict"; 5 | 6 | return arr.concat; 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | "use strict"; 5 | 6 | return arr.slice; 7 | } ); 8 | -------------------------------------------------------------------------------- /data/beers/img/TrappistesRochefort10-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/TrappistesRochefort10-label.png -------------------------------------------------------------------------------- /data/beers/img/TrappistesRochefort6-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/TrappistesRochefort6-label.png -------------------------------------------------------------------------------- /data/beers/img/TrappistesRochefort8-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/data/beers/img/TrappistesRochefort8-label.png -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return [ "Top", "Right", "Bottom", "Left" ]; 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | "use strict"; 5 | 6 | return arr.indexOf; 7 | } ); 8 | -------------------------------------------------------------------------------- /app/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | } 7 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/dataPriv.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../Data" 3 | ], function( Data ) { 4 | "use strict"; 5 | 6 | return new Data(); 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/dataUser.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../Data" 3 | ], function( Data ) { 4 | "use strict"; 5 | 6 | return new Data(); 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /^(?:checkbox|radio)$/i ); 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rscriptType.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /^$|\/(?:java|ecma)script/i ); 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/promise-polyfill/promise-polyfill.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core" 3 | ], function( jQuery ) { 4 | "use strict"; 5 | 6 | return jQuery.now(); 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rtagName.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/fnToString.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./hasOwn" 3 | ], function( hasOwn ) { 4 | "use strict"; 5 | 6 | return hasOwn.toString; 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./class2type" 3 | ], function( class2type ) { 4 | "use strict"; 5 | 6 | return class2type.toString; 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./class2type" 3 | ], function( class2type ) { 4 | "use strict"; 5 | 6 | return class2type.hasOwnProperty; 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/bootstrap/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | group :development, :test do 4 | gem 'jekyll', '~> 3.1.2' 5 | gem 'jekyll-sitemap', '~> 0.11.0' 6 | end 7 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/documentElement.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./document" 3 | ], function( document ) { 4 | "use strict"; 5 | 6 | return document.documentElement; 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | // All support tests are defined in their respective modules. 5 | return {}; 6 | } ); 7 | -------------------------------------------------------------------------------- /docker_run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Starting app ..." 4 | echo "Browse to http://localhost:8000/step-08/index.html#/beers" 5 | docker run --rm -it -p 8000:8000 mjbright/polymer 6 | 7 | -------------------------------------------------------------------------------- /bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/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/jquery/src/var/ObjectFunctionString.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./fnToString" 3 | ], function( fnToString ) { 4 | "use strict"; 5 | 6 | return fnToString.call( Object ); 7 | } ); 8 | -------------------------------------------------------------------------------- /step-01/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | "bootstrap": "~3.3.6" 7 | } 8 | } -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LostInBrittany/polymer-beers/HEAD/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /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/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | "use strict"; 5 | 6 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 7 | } ); 8 | -------------------------------------------------------------------------------- /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/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | // Match a standalone tag 5 | return ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); 6 | } ); 7 | -------------------------------------------------------------------------------- /bower_components/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | "use strict"; 6 | 7 | return jQuery.expr.match.needsContext; 8 | } ); 9 | -------------------------------------------------------------------------------- /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/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/jquery/src/var/rcssNum.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/pnum" 3 | ], function( pnum ) { 4 | 5 | "use strict"; 6 | 7 | return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 8 | 9 | } ); 10 | -------------------------------------------------------------------------------- /step-05/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | "bootstrap": "~3.3.7", 7 | "polymer": "~1.7.0" 8 | } 9 | } -------------------------------------------------------------------------------- /step-04/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | "bootstrap": "~3.3.7", 7 | "polymer": "~1.7.0" 8 | } 9 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | "use strict"; 6 | 7 | support.focusin = "onfocusin" in window; 8 | 9 | return support; 10 | 11 | } ); 12 | -------------------------------------------------------------------------------- /step-02/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | "bootstrap": "~3.3.7", 7 | "polymer": "~1.7.0" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /step-03/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | "bootstrap": "~3.3.7", 7 | "polymer": "~1.7.0" 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/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/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/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/promise-polyfill/promise-polyfill-lite.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /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/jquery/src/core/readyException.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | jQuery.readyException = function( error ) { 8 | window.setTimeout( function() { 9 | throw error; 10 | } ); 11 | }; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /bower_components/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ] 14 | } -------------------------------------------------------------------------------- /step-06/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | "bootstrap": "~3.3.7", 7 | "polymer": "~1.7.0", 8 | "iron-ajax": "PolymerElements/iron-ajax#~1.4.3" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/rnothtmlwhite.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | // Only count HTML whitespace 5 | // Other whitespace should count in values 6 | // https://html.spec.whatwg.org/multipage/infrastructure.html#space-character 7 | return ( /[^\x20\t\r\n\f]+/g ); 8 | } ); 9 | -------------------------------------------------------------------------------- /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/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/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | "use strict"; 10 | 11 | // Return jQuery for attributes-only inclusion 12 | return jQuery; 13 | } ); 14 | -------------------------------------------------------------------------------- /step-07/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | "bootstrap": "~3.3.7", 7 | "polymer": "~1.7.0", 8 | "iron-ajax": "PolymerElements/iron-ajax#~1.4.3", 9 | "app-route": "PolymerElements/app-route#~0.9.3" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /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/jquery/src/traversing/var/siblings.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | "use strict"; 4 | 5 | return function( n, elem ) { 6 | var matched = []; 7 | 8 | for ( ; n; n = n.nextSibling ) { 9 | if ( n.nodeType === 1 && n !== elem ) { 10 | matched.push( n ); 11 | } 12 | } 13 | 14 | return matched; 15 | }; 16 | 17 | } ); 18 | -------------------------------------------------------------------------------- /bower_components/promise-polyfill/README.md: -------------------------------------------------------------------------------- 1 | # Promise Polyfill 2 | 3 | Note: this is an unsolicited fork of [taylorhakes/promise-polyfill](https://github.com/taylorhakes/promise-polyfill) 4 | and should be considered experimental and unstable compared to upstream. 5 | 6 | ## Testing 7 | ``` 8 | npm install 9 | npm test 10 | ``` 11 | 12 | ## License 13 | MIT 14 | -------------------------------------------------------------------------------- /bower_components/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | "use strict"; 8 | 9 | jQuery.expr.pseudos.animated = function( elem ) { 10 | return jQuery.grep( jQuery.timers, function( fn ) { 11 | return elem === fn.elem; 12 | } ).length; 13 | }; 14 | 15 | } ); 16 | -------------------------------------------------------------------------------- /docker_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { 4 | echo "$0: die - $*" >&2 5 | exit 1 6 | } 7 | 8 | IMAGE_TAG=mjbright/polymer 9 | DOCKERFILE=Dockerfile 10 | DOCKERHUB_USER=mjbright 11 | 12 | echo; echo "---- build image: ----" 13 | #CMD="docker build -t $IMAGE_TAG ." 14 | CMD="docker build -f $DOCKERFILE -t $IMAGE_TAG ." 15 | echo $CMD 16 | $CMD || die "Build failed" 17 | 18 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /step-08/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-beers", 3 | "version": "0.0.0", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "dependencies": { 6 | "bootstrap": "~3.3.7", 7 | "polymer": "~1.7.0", 8 | "iron-ajax": "PolymerElements/iron-ajax#~1.4.3", 9 | "iron-pages": "PolymerElements/iron-pages#~1.0.8", 10 | "app-route": "PolymerElements/app-route#~0.9.3" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // WebKit-specific. Other browsers will keep their default outline style. 5 | // (Initially tried to also force default via `outline: initial`, 6 | // but that seems to erroneously remove the outline in Firefox altogether.) 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /bower_components/jquery/src/core/DOMEval.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document" 3 | ], function( document ) { 4 | "use strict"; 5 | 6 | function DOMEval( code, doc ) { 7 | doc = doc || document; 8 | 9 | var script = doc.createElement( "script" ); 10 | 11 | script.text = code; 12 | doc.head.appendChild( script ).parentNode.removeChild( script ); 13 | } 14 | 15 | return DOMEval; 16 | } ); 17 | -------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Polymer Beer Gallery 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | "use strict"; 7 | 8 | jQuery.expr.pseudos.hidden = function( elem ) { 9 | return !jQuery.expr.pseudos.visible( elem ); 10 | }; 11 | jQuery.expr.pseudos.visible = function( elem ) { 12 | return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); 13 | }; 14 | 15 | } ); 16 | -------------------------------------------------------------------------------- /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/jquery/src/data/var/acceptData.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | "use strict"; 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | return function( owner ) { 9 | 10 | // Accepts only: 11 | // - Node 12 | // - Node.ELEMENT_NODE 13 | // - Node.DOCUMENT_NODE 14 | // - Object 15 | // - Any 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | } ); 20 | -------------------------------------------------------------------------------- /bower_components/bootstrap/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs. 2 | 3 | See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. 4 | 5 | Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. 6 | -------------------------------------------------------------------------------- /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/jquery/src/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | // Support: IE <=9 only, Android <=4.0 only 3 | // The above browsers are failing a lot of tests in the ES5 4 | // test suite at http://test262.ecmascript.org. 5 | "parserOptions": { 6 | "ecmaVersion": 3 7 | }, 8 | "globals": { 9 | "window": true, 10 | "jQuery": true, 11 | "define": true, 12 | "module": true, 13 | "noGlobal": true 14 | }, 15 | "rules": { 16 | "strict": ["error", "function"] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /bower_components/jquery/src/core/stripAndCollapse.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/rnothtmlwhite" 3 | ], function( rnothtmlwhite ) { 4 | "use strict"; 5 | 6 | // Strip and collapse whitespace according to HTML spec 7 | // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace 8 | function stripAndCollapse( value ) { 9 | var tokens = value.match( rnothtmlwhite ) || []; 10 | return tokens.join( " " ); 11 | } 12 | 13 | return stripAndCollapse; 14 | } ); 15 | -------------------------------------------------------------------------------- /bower_components/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | "use strict"; 7 | 8 | // Attach a bunch of functions for handling common AJAX events 9 | jQuery.each( [ 10 | "ajaxStart", 11 | "ajaxStop", 12 | "ajaxComplete", 13 | "ajaxError", 14 | "ajaxSuccess", 15 | "ajaxSend" 16 | ], function( i, type ) { 17 | jQuery.fn[ type ] = function( fn ) { 18 | return this.on( type, fn ); 19 | }; 20 | } ); 21 | 22 | } ); 23 | -------------------------------------------------------------------------------- /data/beers/details/TrappistesRochefort8.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 9.2, 3 | "availability": "Year round", 4 | "brewery": "Rochefort Brewery (Brasserie de Rochefort)", 5 | "description": "A dry but rich flavoured beer with complex fruity and spicy flavours.", 6 | "id": "TrappistesRochefort8", 7 | "img": "beers/img/TrappistesRochefort8.jpg", 8 | "label": "beers/img/TrappistesRochefort8-label.png", 9 | "name": "Rochefort 8", 10 | "serving": "Serve in a Snifter", 11 | "style": "Trappiste" 12 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | jQuery._evalUrl = function( url ) { 8 | return jQuery.ajax( { 9 | url: url, 10 | 11 | // Make this explicit, since user can override this through ajaxSetup (#11264) 12 | type: "GET", 13 | dataType: "script", 14 | cache: true, 15 | async: false, 16 | global: false, 17 | "throws": true 18 | } ); 19 | }; 20 | 21 | return jQuery._evalUrl; 22 | 23 | } ); 24 | -------------------------------------------------------------------------------- /bower_components/bootstrap/nuget/MyGet.ps1: -------------------------------------------------------------------------------- 1 | $nuget = $env:NuGet 2 | 3 | # parse the version number out of package.json 4 | $bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version 5 | 6 | # create packages 7 | & $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion 8 | & $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion 9 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return function( elem ) { 5 | 6 | // Support: IE <=11 only, Firefox <=30 (#15098, #14150) 7 | // IE throws on elements created in popups 8 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 9 | var view = elem.ownerDocument.defaultView; 10 | 11 | if ( !view || !view.opener ) { 12 | view = window; 13 | } 14 | 15 | return view.getComputedStyle( elem ); 16 | }; 17 | } ); 18 | -------------------------------------------------------------------------------- /bower_components/jquery/src/traversing/var/dir.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | return function( elem, dir, until ) { 8 | var matched = [], 9 | truncate = until !== undefined; 10 | 11 | while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 12 | if ( elem.nodeType === 1 ) { 13 | if ( truncate && jQuery( elem ).is( until ) ) { 14 | break; 15 | } 16 | matched.push( elem ); 17 | } 18 | } 19 | return matched; 20 | }; 21 | 22 | } ); 23 | -------------------------------------------------------------------------------- /data/beers/details/AffligemBlond.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 6.8, 3 | "availability": "Year round", 4 | "brewery": "Brasserie Affligem (Heineken)", 5 | "description": "Affligem Blonde, the classic clear blonde abbey ale, with a gentle roundness and 6.8% alcohol. Low on bitterness, it is eminently drinkable.", 6 | "id": "AffligemBlond", 7 | "img": "beers/img/AffligemBlond.jpg", 8 | "label": "beers/img/AffligemBlond-label.png", 9 | "name": "Affligem Blond", 10 | "serving": "Serve in a Snifter", 11 | "style": "Belgian-Style Blonde Ale" 12 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/setGlobalEval.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../data/var/dataPriv" 3 | ], function( dataPriv ) { 4 | 5 | "use strict"; 6 | 7 | // Mark scripts as having already been evaluated 8 | function setGlobalEval( elems, refElements ) { 9 | var i = 0, 10 | l = elems.length; 11 | 12 | for ( ; i < l; i++ ) { 13 | dataPriv.set( 14 | elems[ i ], 15 | "globalEval", 16 | !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 17 | ); 18 | } 19 | } 20 | 21 | return setGlobalEval; 22 | } ); 23 | -------------------------------------------------------------------------------- /bower_components/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "../external/sizzle/dist/sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | "use strict"; 7 | 8 | jQuery.find = Sizzle; 9 | jQuery.expr = Sizzle.selectors; 10 | 11 | // Deprecated 12 | jQuery.expr[ ":" ] = jQuery.expr.pseudos; 13 | jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 14 | jQuery.text = Sizzle.getText; 15 | jQuery.isXMLDoc = Sizzle.isXML; 16 | jQuery.contains = Sizzle.contains; 17 | jQuery.escapeSelector = Sizzle.escape; 18 | 19 | } ); 20 | -------------------------------------------------------------------------------- /bower_components/webcomponentsjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.7.22", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/webcomponents/webcomponentsjs.git" 12 | }, 13 | "keywords": [ 14 | "webcomponents" 15 | ], 16 | "license": "BSD", 17 | "ignore": [], 18 | "devDependencies": { 19 | "web-component-tester": "^4.0.1" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /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/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/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/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 | -------------------------------------------------------------------------------- /data/beers/details/AffligemTripel.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 8.5, 3 | "availability": "Year round", 4 | "brewery": "Brasserie Affligem (Heineken)", 5 | "description": "The king of the abbey beers. It is amber-gold and pours with a deep head and original aroma, delivering a complex, full bodied flavour. Pure enjoyment! Secondary fermentation in the bottle.", 6 | "id": "AffligemTripel", 7 | "img": "beers/img/AffligemTripel.jpg", 8 | "label": "beers/img/AffligemTripel-label.png", 9 | "name": "Affligem Tripel", 10 | "serving": "Serve in a Snifter", 11 | "style": "Belgian-Style Tripel" 12 | } -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Docker demo image, as used on try.jupyter.org and tmpnb.org 2 | 3 | FROM python:alpine 4 | 5 | MAINTAINER Michael Bright 6 | 7 | ## # Perform initial update/upgrade to get latest packages/security updates: 8 | ## RUN apt-get update && ## \ 9 | ## apt-get upgrade -y 10 | 11 | # Install git 12 | RUN apk add --update git 13 | 14 | # Clone repo 15 | RUN mkdir -p /root/src/git && \ 16 | git clone https://github.com/mjbright/polymer-beers /root/src/git/polymer-beers 17 | 18 | WORKDIR /root/src/git/polymer-beers 19 | 20 | CMD python -m http.server 21 | 22 | -------------------------------------------------------------------------------- /data/beers/details/AffligemDubbel.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 6.8, 3 | "availability": "Year round", 4 | "brewery": "Brasserie Affligem (Heineken)", 5 | "description": "A reddish-brown abbey ale brewed with dark malts. The secondary fermentation gives a fruity aroma and a unique spicy character with a distinctive aftertaste. Secondary fermentation in the bottle.", 6 | "id": "AffligemDubbel", 7 | "img": "beers/img/AffligemDubbel.jpg", 8 | "label": "beers/img/AffligemDubbel-label.png", 9 | "name": "Affligem Dubbel", 10 | "serving": "Serve in a Snifter", 11 | "style": "Belgian-Style Dubbel" 12 | } -------------------------------------------------------------------------------- /data/beers/details/StBernardusPater6.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 6.7, 3 | "availability": "Year round", 4 | "brewery": "Brasserie St. Bernardus", 5 | "description": "This name became a reference. This beer is mostly pointed out with its product name: a Paterke. This Paterke is a dark, chestnut coloured beer with a high fermentation (6.7%) and a full taste", 6 | "id": "StBernardusPater6", 7 | "img": "beers/img/StBernardusPater6.jpg", 8 | "label": "beers/img/StBernardusPater6-label.png", 9 | "name": "St Bernardus Pater 6", 10 | "serving": "Serve in a Snifter", 11 | "style": "Belgian-Style Dubbel" 12 | } -------------------------------------------------------------------------------- /step-04/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Polymer Beer Gallery 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /step-05/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Polymer Beer Gallery 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /step-06/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Polymer Beer Gallery 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /data/beers/details/StBernardusAbt12.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 10.5, 3 | "availability": "Year round", 4 | "brewery": "Brasserie St. Bernardus", 5 | "description": "The top product from the Rochefort Trappist brewery. Dark colour, full and very impressive taste. Strong plum, raisin, and black currant palate, with ascending notes of vinousness and other complexities.", 6 | "id": "StBernardusAbt12", 7 | "img": "beers/img/StBernardusAbt12.jpg", 8 | "label": "beers/img/StBernardusAbt12-label.png", 9 | "name": "St Bernardus Abt 12", 10 | "serving": "Serve in a Goblet at Cellar - (12-14C/54-57F)", 11 | "type": "Fermentation haute" 12 | } -------------------------------------------------------------------------------- /step-03/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Polymer Beer Gallery 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /data/beers/details/StBernardusTripel.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 8.0, 3 | "availability": "Year round", 4 | "brewery": "Brasserie St. Bernardus", 5 | "description": "This beer, with high fermentation, has a pale amber colour and a flowery, fruity taste with a harmonious balance between sweet and sour. This beer has a thick and vivid froth and strikes its balanced taste with a delicate bitterness.", 6 | "id": "StBernardusTripel", 7 | "img": "beers/img/StBernardusTripel.jpg", 8 | "label": "beers/img/StBernardusTripel-label.png", 9 | "name": "St Bernardus Tripel", 10 | "serving": "Serve in a Snifter", 11 | "style": "Belgian-Style Tripel" 12 | } -------------------------------------------------------------------------------- /bower_components/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "3.1.1", 16 | "_release": "3.1.1", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "3.1.1", 20 | "commit": "1b30f3ad466ebf2714d47eda34dbd7fdf6849fe3" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": "1.9.1 - 3", 24 | "_originalSource": "jquery" 25 | } -------------------------------------------------------------------------------- /data/beers/details/TrappistesRochefort10.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 11.3, 3 | "availability": "Year round", 4 | "brewery": "Rochefort Brewery (Brasserie de Rochefort)", 5 | "description": "The top product from the Rochefort Trappist brewery. Dark colour, full and very impressive taste. Strong plum, raisin, and black currant palate, with ascending notes of vinousness and other complexities.", 6 | "id": "TrappistesRochefort10", 7 | "img": "beers/img/TrappistesRochefort10.jpg", 8 | "label": "beers/img/TrappistesRochefort10-label.png", 9 | "name": "Rochefort 10", 10 | "serving": "Serve in a Goblet at Cellar - (12-14C/54-57F)", 11 | "style": "Trappiste" 12 | } -------------------------------------------------------------------------------- /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/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/jquery/src/css/var/swap.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | "use strict"; 4 | 5 | // A method for quickly swapping in/out CSS properties to get correct calculations. 6 | return function( elem, options, callback, args ) { 7 | var ret, name, 8 | old = {}; 9 | 10 | // Remember the old values, and insert the new ones 11 | for ( name in options ) { 12 | old[ name ] = elem.style[ name ]; 13 | elem.style[ name ] = options[ name ]; 14 | } 15 | 16 | ret = callback.apply( elem, args || [] ); 17 | 18 | // Revert the old values 19 | for ( name in options ) { 20 | elem.style[ name ] = old[ name ]; 21 | } 22 | 23 | return ret; 24 | }; 25 | 26 | } ); 27 | -------------------------------------------------------------------------------- /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 (has been 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/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | "use strict"; 4 | 5 | function addGetHookIf( conditionFn, hookFn ) { 6 | 7 | // Define the hook, we'll check on the first run if it's really needed. 8 | return { 9 | get: function() { 10 | if ( conditionFn() ) { 11 | 12 | // Hook not needed (or it's not possible to use it due 13 | // to missing dependency), remove it. 14 | delete this.get; 15 | return; 16 | } 17 | 18 | // Hook needed; redefine it so that the support test is not executed again. 19 | return ( this.get = hookFn ).apply( this, arguments ); 20 | } 21 | }; 22 | } 23 | 24 | return addGetHookIf; 25 | 26 | } ); 27 | -------------------------------------------------------------------------------- /data/beers/details/TrappistesRochefort6.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 7.5, 3 | "availability": "Year round", 4 | "brewery": "Rochefort Brewery (Brasserie de Rochefort)", 5 | "description": "Reddish colour, almost like autumn leaves, very consistent texture with a slightly spicy aroma and an intense taste of caramel, fruit, and hints of raisins. It is only brewed about once per year, representing approximately 1% of total beer production, thus is quite difficult to obtain.", 6 | "id": "TrappistesRochefort6", 7 | "img": "beers/img/TrappistesRochefort6.jpg", 8 | "label": "beers/img/TrappistesRochefort6-label.png", 9 | "name": "Rochefort 6", 10 | "serving": "Serve in a Snifter", 11 | "style": "Trappiste" 12 | } -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /step-03/elements/beer-list-item.html: -------------------------------------------------------------------------------- 1 | !-- Import Polymer library --> 2 | 3 | 4 | 5 | 20 | 30 | 31 | -------------------------------------------------------------------------------- /step-05/elements/beer-list-item.html: -------------------------------------------------------------------------------- 1 | !-- Import Polymer library --> 2 | 3 | 4 | 5 | 20 | 30 | 31 | -------------------------------------------------------------------------------- /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/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/promise-polyfill/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "promise-polyfill", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/taylorhakes/promise-polyfill", 5 | "authors": [ 6 | "Taylor Hakes" 7 | ], 8 | "description": "Lightweight promise polyfill for the browser and node. A+ Compliant.", 9 | "main": "Promise.js", 10 | "moduleType": [ 11 | "globals", 12 | "node" 13 | ], 14 | "keywords": [ 15 | "promise", 16 | "es6", 17 | "polyfill", 18 | "html5" 19 | ], 20 | "license": "MIT", 21 | "ignore": [ 22 | "**/.*", 23 | "node_modules", 24 | "bower_components", 25 | "test", 26 | "tests" 27 | ], 28 | "dependencies": { 29 | "polymer": "polymer/polymer#^1.0.0" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /data/beers/details/ChimayRed.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 7, 3 | "availability": "Year round", 4 | "brewery": "Bi\u00e8res de Chimay", 5 | "description": "This Trappist beer possesses a beautiful coppery colour that makes it particularly attractive. Topped with a creamy head, it gives off a slight fruity apricot smell from the fermentation. The aroma felt in the mouth is a balance confirming the fruit nuances revealed to the sense of smell. This traditional Belgian beer is best savoured at cellar temperature ", 6 | "id": "ChimayRed", 7 | "img": "beers/img/ChimayRed.jpg", 8 | "label": "beers/img/ChimayRed-label.png", 9 | "name": "Chimay Rouge", 10 | "serving": "Serve in a Snifter at Cool - (8-12C/45-54F)", 11 | "style": "Belgian-Style Dubbel" 12 | } -------------------------------------------------------------------------------- /step-04/elements/beer-list-item.html: -------------------------------------------------------------------------------- 1 | !-- Import Polymer library --> 2 | 3 | 4 | 5 | 20 | 30 | 31 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | // Cross-browser xml parsing 8 | jQuery.parseXML = function( data ) { 9 | var xml; 10 | if ( !data || typeof data !== "string" ) { 11 | return null; 12 | } 13 | 14 | // Support: IE 9 - 11 only 15 | // IE throws on parseFromString with invalid input. 16 | try { 17 | xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 18 | } catch ( e ) { 19 | xml = undefined; 20 | } 21 | 22 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 23 | jQuery.error( "Invalid XML: " + data ); 24 | } 25 | return xml; 26 | }; 27 | 28 | return jQuery.parseXML; 29 | 30 | } ); 31 | -------------------------------------------------------------------------------- /bower_components/jquery/src/core/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | "use strict"; 7 | 8 | // Support: Safari 8 only 9 | // In Safari 8 documents created via document.implementation.createHTMLDocument 10 | // collapse sibling forms: the second one becomes a child of the first one. 11 | // Because of that, this security measure has to be disabled in Safari 8. 12 | // https://bugs.webkit.org/show_bug.cgi?id=137337 13 | support.createHTMLDocument = ( function() { 14 | var body = document.implementation.createHTMLDocument( "" ).body; 15 | body.innerHTML = "
"; 16 | return body.childNodes.length === 2; 17 | } )(); 18 | 19 | return support; 20 | } ); 21 | -------------------------------------------------------------------------------- /bower_components/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | jQuery.fn.extend( { 8 | 9 | bind: function( types, data, fn ) { 10 | return this.on( types, null, data, fn ); 11 | }, 12 | unbind: function( types, fn ) { 13 | return this.off( types, null, fn ); 14 | }, 15 | 16 | delegate: function( selector, types, data, fn ) { 17 | return this.on( types, selector, data, fn ); 18 | }, 19 | undelegate: function( selector, types, fn ) { 20 | 21 | // ( namespace ) or ( selector, types [, fn] ) 22 | return arguments.length === 1 ? 23 | this.off( selector, "**" ) : 24 | this.off( types, selector || "**", fn ); 25 | } 26 | } ); 27 | 28 | jQuery.parseJSON = JSON.parse; 29 | 30 | } ); 31 | -------------------------------------------------------------------------------- /bower_components/jquery/src/deferred/exceptionHook.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../deferred" 4 | ], function( jQuery ) { 5 | 6 | "use strict"; 7 | 8 | // These usually indicate a programmer mistake during development, 9 | // warn about them ASAP rather than swallowing them by default. 10 | var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 11 | 12 | jQuery.Deferred.exceptionHook = function( error, stack ) { 13 | 14 | // Support: IE 8 - 9 only 15 | // Console exists when dev tools are open, which can happen at any time 16 | if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { 17 | window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); 18 | } 19 | }; 20 | 21 | } ); 22 | -------------------------------------------------------------------------------- /bower_components/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | "use strict"; 8 | 9 | // Based off of the plugin by Clint Helfers, with permission. 10 | // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ 11 | jQuery.fn.delay = function( time, type ) { 12 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 13 | type = type || "fx"; 14 | 15 | return this.queue( type, function( next, hooks ) { 16 | var timeout = window.setTimeout( next, time ); 17 | hooks.stop = function() { 18 | window.clearTimeout( timeout ); 19 | }; 20 | } ); 21 | }; 22 | 23 | return jQuery.fn.delay; 24 | } ); 25 | -------------------------------------------------------------------------------- /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 - 3" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /bower_components/jquery/src/exports/global.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery, noGlobal ) { 4 | 5 | "use strict"; 6 | 7 | var 8 | 9 | // Map over jQuery in case of overwrite 10 | _jQuery = window.jQuery, 11 | 12 | // Map over the $ in case of overwrite 13 | _$ = window.$; 14 | 15 | jQuery.noConflict = function( deep ) { 16 | if ( window.$ === jQuery ) { 17 | window.$ = _$; 18 | } 19 | 20 | if ( deep && window.jQuery === jQuery ) { 21 | window.jQuery = _jQuery; 22 | } 23 | 24 | return jQuery; 25 | }; 26 | 27 | // Expose jQuery and $ identifiers, even in AMD 28 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 29 | // and CommonJS for browser emulators (#13566) 30 | if ( !noGlobal ) { 31 | window.jQuery = window.$ = jQuery; 32 | } 33 | 34 | } ); 35 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/getAll.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | function getAll( context, tag ) { 8 | 9 | // Support: IE <=9 - 11 only 10 | // Use typeof to avoid zero-argument method invocation on host objects (#15151) 11 | var ret; 12 | 13 | if ( typeof context.getElementsByTagName !== "undefined" ) { 14 | ret = context.getElementsByTagName( tag || "*" ); 15 | 16 | } else if ( typeof context.querySelectorAll !== "undefined" ) { 17 | ret = context.querySelectorAll( tag || "*" ); 18 | 19 | } else { 20 | ret = []; 21 | } 22 | 23 | if ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) { 24 | return jQuery.merge( [ context ], ret ); 25 | } 26 | 27 | return ret; 28 | } 29 | 30 | return getAll; 31 | } ); 32 | -------------------------------------------------------------------------------- /bower_components/jquery/src/event/alias.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | 4 | "../event", 5 | "./trigger" 6 | ], function( jQuery ) { 7 | 8 | "use strict"; 9 | 10 | jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + 11 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 12 | "change select submit keydown keypress keyup contextmenu" ).split( " " ), 13 | function( i, name ) { 14 | 15 | // Handle event binding 16 | jQuery.fn[ name ] = function( data, fn ) { 17 | return arguments.length > 0 ? 18 | this.on( name, null, data, fn ) : 19 | this.trigger( name ); 20 | }; 21 | } ); 22 | 23 | jQuery.fn.extend( { 24 | hover: function( fnOver, fnOut ) { 25 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 26 | } 27 | } ); 28 | 29 | } ); 30 | -------------------------------------------------------------------------------- /step-02/elements/beer-list-item.html: -------------------------------------------------------------------------------- 1 | !-- Import Polymer library --> 2 | 3 | 4 | 5 | 23 | 36 | 37 | -------------------------------------------------------------------------------- /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/webcomponentsjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.7.22", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/webcomponents/webcomponentsjs.git" 12 | }, 13 | "keywords": [ 14 | "webcomponents" 15 | ], 16 | "license": "BSD", 17 | "ignore": [], 18 | "devDependencies": { 19 | "web-component-tester": "^4.0.1" 20 | }, 21 | "_release": "0.7.22", 22 | "_resolution": { 23 | "type": "version", 24 | "tag": "v0.7.22", 25 | "commit": "50f9751f8e638301603aebb33ba9f1e90d2b0d32" 26 | }, 27 | "_source": "https://github.com/Polymer/webcomponentsjs.git", 28 | "_target": "^0.7.20", 29 | "_originalSource": "webcomponentsjs" 30 | } -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /step-01/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Polymer Beer Gallery 6 | 7 | 8 | 9 | 10 |
11 | 12 | 22 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /bower_components/iron-ajax/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: required 3 | before_script: 4 | - npm install -g bower polylint web-component-tester 5 | - bower install 6 | - polylint 7 | env: 8 | global: 9 | - secure: HWwX1XiMfkZkC5XzAz6HkMJcFR+O1DZ+g9hnogZ0e3zdjqZ8VFkCsx0glJLA4TIPdWDfq93gRmeGtbepIx0x4BVOWX8rqoIjb9fbNJDU4ItZsbOvDLInFqKevdq+/klDavVfbR4hNeaHgDmcIEa/IolDU0qIrIdefBfZLOQ0ajM= 10 | - secure: hBkZz41jJfEP+Z8Uwcw3/EWDLLBzKT+WKY/XI7ubT/bxlXn95RJqY+j1pBX7+fHfLrUfjRmQHTsqkkST2JwRGAZoZpBX+lmUuNRyMoYsDKMl+CYinhSNTVVGSv7JPt5Ls5fktfzIt6Qd97vBy25hcCGKB6HBy+ppfP2DuII4uC8= 11 | node_js: stable 12 | addons: 13 | firefox: '46.0' 14 | apt: 15 | sources: 16 | - google-chrome 17 | packages: 18 | - google-chrome-stable 19 | sauce_connect: true 20 | script: 21 | - xvfb-run wct 22 | - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi 23 | dist: trusty 24 | -------------------------------------------------------------------------------- /bower_components/iron-pages/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: required 3 | before_script: 4 | - npm install -g bower polylint web-component-tester 5 | - bower install 6 | - polylint 7 | env: 8 | global: 9 | - secure: Nv52xUhhZNbvdXIs+8JV61yREtAZN5i2ZHO6uZVonGR/Y/U8SA3AcDjrPLd6VgFmasM58EpPGQGToK46r9C+h/jLWc7d/+7xn/9sphg6qQhQ5FkS/LYaTMmzCmonu79h/TqpuuYQWJqjEBM3LpoYJSMum/V34paPBU9AEK0Pd5A= 10 | - secure: fE00ZxqCvRMPXvSIghE/0wYbFORFGO4IFzaZbOxanAe7PBKDmdPBkzodo9BEgOw1cB2zw2uXMEYGf3jEZH+vens5ycngF8X/iQRCcPGpHjKIbkBtHvYQoi4ZwQf48GPtdBkMZLg7LcA4N2ScypU33X0q30hQ6BgzTduumuHlKCo= 11 | node_js: stable 12 | addons: 13 | firefox: '46.0' 14 | apt: 15 | sources: 16 | - google-chrome 17 | packages: 18 | - google-chrome-stable 19 | sauce_connect: true 20 | script: 21 | - xvfb-run wct 22 | - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi 23 | dist: trusty 24 | -------------------------------------------------------------------------------- /bower_components/jquery/src/jquery.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "./selector", 4 | "./traversing", 5 | "./callbacks", 6 | "./deferred", 7 | "./deferred/exceptionHook", 8 | "./core/ready", 9 | "./data", 10 | "./queue", 11 | "./queue/delay", 12 | "./attributes", 13 | "./event", 14 | "./event/alias", 15 | "./event/focusin", 16 | "./manipulation", 17 | "./manipulation/_evalUrl", 18 | "./wrap", 19 | "./css", 20 | "./css/hiddenVisibleSelectors", 21 | "./serialize", 22 | "./ajax", 23 | "./ajax/xhr", 24 | "./ajax/script", 25 | "./ajax/jsonp", 26 | "./ajax/load", 27 | "./event/ajax", 28 | "./effects", 29 | "./effects/animatedSelector", 30 | "./offset", 31 | "./dimensions", 32 | "./deprecated", 33 | "./exports/amd", 34 | "./exports/global" 35 | ], function( jQuery ) { 36 | 37 | "use strict"; 38 | 39 | return jQuery; 40 | 41 | } ); 42 | -------------------------------------------------------------------------------- /bower_components/app-route/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | ### Description 3 | 4 | 5 | ### Expected outcome 6 | 7 | 8 | 9 | ### Actual outcome 10 | 11 | 12 | 13 | ### Live Demo 14 | 15 | 16 | ### Steps to reproduce 17 | 18 | 23 | 24 | ### Browsers Affected 25 | 26 | - [ ] Chrome 27 | - [ ] Firefox 28 | - [ ] Safari 9 29 | - [ ] Safari 8 30 | - [ ] Safari 7 31 | - [ ] Edge 32 | - [ ] IE 11 33 | - [ ] IE 10 34 | -------------------------------------------------------------------------------- /bower_components/webcomponentsjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponents.js", 3 | "version": "0.7.22", 4 | "description": "webcomponents.js", 5 | "main": "webcomponents.js", 6 | "directories": { 7 | "test": "tests" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/webcomponents/webcomponentsjs.git" 12 | }, 13 | "author": "The Polymer Authors", 14 | "license": "BSD-3-Clause", 15 | "bugs": { 16 | "url": "https://github.com/webcomponents/webcomponentsjs/issues" 17 | }, 18 | "scripts": { 19 | "test": "wct" 20 | }, 21 | "homepage": "http://webcomponents.org", 22 | "devDependencies": { 23 | "gulp": "^3.8.8", 24 | "gulp-audit": "^1.0.0", 25 | "gulp-concat": "^2.4.1", 26 | "gulp-header": "^1.1.1", 27 | "gulp-uglify": "^1.0.1", 28 | "run-sequence": "^1.0.1", 29 | "web-component-tester": "^4.0.1" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /bower_components/iron-ajax/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | ### Description 3 | 4 | 5 | ### Expected outcome 6 | 7 | 8 | 9 | ### Actual outcome 10 | 11 | 12 | 13 | ### Live Demo 14 | 15 | 16 | ### Steps to reproduce 17 | 18 | 23 | 24 | ### Browsers Affected 25 | 26 | - [ ] Chrome 27 | - [ ] Firefox 28 | - [ ] Safari 9 29 | - [ ] Safari 8 30 | - [ ] Safari 7 31 | - [ ] Edge 32 | - [ ] IE 11 33 | - [ ] IE 10 34 | -------------------------------------------------------------------------------- /bower_components/iron-pages/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | ### Description 3 | 4 | 5 | ### Expected outcome 6 | 7 | 8 | 9 | ### Actual outcome 10 | 11 | 12 | 13 | ### Live Demo 14 | 15 | 16 | ### Steps to reproduce 17 | 18 | 23 | 24 | ### Browsers Affected 25 | 26 | - [ ] Chrome 27 | - [ ] Firefox 28 | - [ ] Safari 9 29 | - [ ] Safari 8 30 | - [ ] Safari 7 31 | - [ ] Edge 32 | - [ ] IE 11 33 | - [ ] IE 10 34 | -------------------------------------------------------------------------------- /bower_components/polymer/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "version": "1.7.0", 4 | "main": [ 5 | "polymer.html", 6 | "polymer-mini.html", 7 | "polymer-micro.html" 8 | ], 9 | "license": "http://polymer.github.io/LICENSE.txt", 10 | "ignore": [ 11 | "/.*", 12 | "/test/", 13 | "/util/", 14 | "/explainer/", 15 | "gulpfile.js", 16 | "PRIMER.md", 17 | "CONTRIBUTING.md", 18 | "CHANGELOG.md" 19 | ], 20 | "authors": [ 21 | "The Polymer Authors (http://polymer.github.io/AUTHORS.txt)" 22 | ], 23 | "repository": { 24 | "type": "git", 25 | "url": "https://github.com/Polymer/polymer.git" 26 | }, 27 | "dependencies": { 28 | "webcomponentsjs": "^0.7.20" 29 | }, 30 | "devDependencies": { 31 | "web-component-tester": "*", 32 | "iron-component-page": "polymerElements/iron-component-page#^1.1.6" 33 | }, 34 | "private": true 35 | } 36 | -------------------------------------------------------------------------------- /bower_components/iron-location/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | ### Description 3 | 4 | 5 | ### Expected outcome 6 | 7 | 8 | 9 | ### Actual outcome 10 | 11 | 12 | 13 | ### Live Demo 14 | 15 | 16 | ### Steps to reproduce 17 | 18 | 23 | 24 | ### Browsers Affected 25 | 26 | - [ ] Chrome 27 | - [ ] Firefox 28 | - [ ] Safari 9 29 | - [ ] Safari 8 30 | - [ ] Safari 7 31 | - [ ] Edge 32 | - [ ] IE 11 33 | - [ ] IE 10 34 | -------------------------------------------------------------------------------- /bower_components/iron-selector/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | ### Description 3 | 4 | 5 | ### Expected outcome 6 | 7 | 8 | 9 | ### Actual outcome 10 | 11 | 12 | 13 | ### Live Demo 14 | 15 | 16 | ### Steps to reproduce 17 | 18 | 23 | 24 | ### Browsers Affected 25 | 26 | - [ ] Chrome 27 | - [ ] Firefox 28 | - [ ] Safari 9 29 | - [ ] Safari 8 30 | - [ ] Safari 7 31 | - [ ] Edge 32 | - [ ] IE 11 33 | - [ ] IE 10 34 | -------------------------------------------------------------------------------- /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/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/iron-resizable-behavior/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | iron-resizable-behavior 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /bower_components/promise-polyfill/Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 3 | grunt.initConfig({ 4 | pkg: grunt.file.readJSON('package.json'), 5 | 6 | uglify: { 7 | options: { 8 | banner: '/*! <%= pkg.name %> <%= pkg.version %> */\n' 9 | }, 10 | dist: { 11 | files: { 12 | 'Promise.min.uglify.js': ['Promise.js'] 13 | } 14 | } 15 | }, 16 | 17 | closurecompiler: { 18 | options: { 19 | compilation_level: 'ADVANCED_OPTIMIZATIONS', 20 | }, 21 | dist: { 22 | files: { 23 | 'Promise.min.js': ['Promise.js'] 24 | } 25 | } 26 | }, 27 | 28 | bytesize: { 29 | dist: { 30 | src: ['Promise*.js'] 31 | } 32 | } 33 | }); 34 | 35 | grunt.loadNpmTasks('grunt-contrib-uglify'); 36 | grunt.loadNpmTasks('grunt-closurecompiler'); 37 | grunt.loadNpmTasks('grunt-bytesize'); 38 | 39 | grunt.registerTask('build', ['closurecompiler', 'bytesize']); 40 | }; 41 | -------------------------------------------------------------------------------- /bower_components/iron-selector/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | before_script: 4 | - npm install -g bower polylint web-component-tester 5 | - bower install 6 | - polylint 7 | env: 8 | global: 9 | - secure: ltCkwJM0nkTS9WjikyjqBsB5J2hQon4UnVVrINk4y+Vq4v9PQJH3+83nya0jnxilKaeAJs4d2/OS02F9GkqYpsSmDz7OgXPfk0hrHA8UksvvpSALfnukleIAN2YTOcxXJKeNHcfpqCKPk1dGeNQOEM61H+QgTBIyFB3sMugygqs= 10 | - secure: TJuu1WdpFLTaBN/prBafm8Pld/BQCySNuuG1nATbF3fqiOpgehXu8Z5URAz5syUhqZAyEmuRMxvXpEVD/t1jrtaXVwkdCFkkQ4ckkP4gTIeSGA/Puw8sveB2q7QAqXyTmeFkocNlh8fxV+B07o0SPWdhcvdZnDVU9VrpSqL+92M= 11 | - CXX=g++-4.8 12 | node_js: stable 13 | addons: 14 | firefox: latest 15 | apt: 16 | sources: 17 | - google-chrome 18 | - ubuntu-toolchain-r-test 19 | packages: 20 | - google-chrome-stable 21 | - g++-4.8 22 | sauce_connect: true 23 | script: 24 | - xvfb-run wct 25 | - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" 26 | -------------------------------------------------------------------------------- /bower_components/iron-resizable-behavior/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | before_script: 4 | - npm install -g bower polylint web-component-tester 5 | - bower install 6 | - polylint 7 | env: 8 | global: 9 | - secure: fs6PoLBRc5z3vn6PWJTkxmGWTHnHVcXx2c7sb7wUlLFLjWUegb93X5gAUhAQvvLvFYT8uMYxT7sNsP15O16CH9OWS8h6ZbgaPp61zRJXvGN+pOtohOloanjzANzsYNFsV3LKEFg8/BULqQAKkRAdsg4hXfMWDzPvCGl1++y5mGc= 10 | - secure: gm+c5R0tFY/GJfKOnfV3J0IADe7QSzo5wZvRq4wZnroK9gBixuI66fq0dhRFtMjkc3dip1h+iqwmRqY8bKoMriCcl8J8ya7mG92sUTz57H7Sr6hxoYDdT4v+JUrQ+iZmTczh77IAQDZrAnxQIeEnBsLezidZD4b+EAYCICvL9WE= 11 | - CXX=g++-4.8 12 | node_js: stable 13 | addons: 14 | firefox: latest 15 | apt: 16 | sources: 17 | - google-chrome 18 | - ubuntu-toolchain-r-test 19 | packages: 20 | - google-chrome-stable 21 | - g++-4.8 22 | sauce_connect: true 23 | script: 24 | - xvfb-run wct 25 | - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" 26 | -------------------------------------------------------------------------------- /data/beers/details/ChimayTriple.json: -------------------------------------------------------------------------------- 1 | { 2 | "alcohol": 10.5, 3 | "availability": "Year round", 4 | "brewery": "Bi\u00e8res de Chimay", 5 | "description": "Chimay Triple, with its typical golden colour, its slightly hazy appearance and its fine head is especially characterised by its aroma which results from an agreeable combination of fresh hops and yeast. The beers flavour, as sensed in the mouth, comes from the smell of hops: above all it is the fruity notes of muscat and raisins that give this beer a particularly attractive aroma. The aroma complements the touch of bitterness. There is no acidity, but an after-bitterness which melts in the mouth. This top fermented Trappist beer, refermented in the bottle, is not pasteurised.", 6 | "id": "ChimayTriple", 7 | "img": "beers/img/ChimayTriple.jpg", 8 | "label": "beers/img/ChimayTriple-label.png", 9 | "name": "Chimay Tripel", 10 | "serving": "Serve in a Snifter at Cool - (8-12C/45-54F)", 11 | "style": "Belgian-Style Tripel" 12 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/wrapMap.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | "use strict"; 4 | 5 | // We have to close these tags to support XHTML (#13200) 6 | var wrapMap = { 7 | 8 | // Support: IE <=9 only 9 | option: [ 1, "" ], 10 | 11 | // XHTML parsers do not magically insert elements in the 12 | // same way that tag soup parsers do. So we cannot shorten 13 | // this by omitting or other required elements. 14 | thead: [ 1, "", "
" ], 15 | col: [ 2, "", "
" ], 16 | tr: [ 2, "", "
" ], 17 | td: [ 3, "", "
" ], 18 | 19 | _default: [ 0, "", "" ] 20 | }; 21 | 22 | // Support: IE <=9 only 23 | wrapMap.optgroup = wrapMap.option; 24 | 25 | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 26 | wrapMap.th = wrapMap.td; 27 | 28 | return wrapMap; 29 | } ); 30 | -------------------------------------------------------------------------------- /bower_components/iron-resizable-behavior/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-resizable-behavior", 3 | "version": "1.0.3", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "description": "Coordinates the flow of resizeable elements", 6 | "private": true, 7 | "main": "iron-resizable-behavior.html", 8 | "authors": [ 9 | "The Polymer Authors" 10 | ], 11 | "keywords": [ 12 | "web-components", 13 | "polymer", 14 | "iron", 15 | "behavior" 16 | ], 17 | "repository": { 18 | "type": "git", 19 | "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" 20 | }, 21 | "dependencies": { 22 | "polymer": "Polymer/polymer#^1.0.0" 23 | }, 24 | "devDependencies": { 25 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 26 | "test-fixture": "polymerelements/test-fixture#^1.0.0", 27 | "web-component-tester": "^4.0.0", 28 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 29 | }, 30 | "ignore": [] 31 | } 32 | -------------------------------------------------------------------------------- /bower_components/jquery/src/attributes/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | "use strict"; 7 | 8 | ( function() { 9 | var input = document.createElement( "input" ), 10 | select = document.createElement( "select" ), 11 | opt = select.appendChild( document.createElement( "option" ) ); 12 | 13 | input.type = "checkbox"; 14 | 15 | // Support: Android <=4.3 only 16 | // Default value for a checkbox should be "on" 17 | support.checkOn = input.value !== ""; 18 | 19 | // Support: IE <=11 only 20 | // Must access selectedIndex to make default options select 21 | support.optSelected = opt.selected; 22 | 23 | // Support: IE <=11 only 24 | // An input loses its value after becoming a radio 25 | input = document.createElement( "input" ); 26 | input.value = "t"; 27 | input.type = "radio"; 28 | support.radioValue = input.value === "t"; 29 | } )(); 30 | 31 | return support; 32 | 33 | } ); 34 | -------------------------------------------------------------------------------- /bower_components/iron-resizable-behavior/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | iron-resizable-behavior demo 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /bower_components/app-route/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | app-router 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /bower_components/iron-ajax/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | iron-ajax 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /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/iron-pages/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | iron-pages 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /bower_components/iron-location/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | iron-location 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /bower_components/iron-resizable-behavior/test/index.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | Tests 13 | 14 | 15 | 16 | 17 | 18 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /bower_components/iron-selector/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | iron-selector 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /bower_components/iron-location/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /bower_components/app-route/test/observer-tester.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 15 | 38 | 39 | -------------------------------------------------------------------------------- /bower_components/iron-pages/hero.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /bower_components/iron-ajax/test/index.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /bower_components/iron-selector/test/attr-for-selected-elements.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 17 | 30 | 31 | -------------------------------------------------------------------------------- /bower_components/promise-polyfill/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "promise-polyfill", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/taylorhakes/promise-polyfill", 5 | "authors": [ 6 | "Taylor Hakes" 7 | ], 8 | "description": "Lightweight promise polyfill for the browser and node. A+ Compliant.", 9 | "main": "Promise.js", 10 | "moduleType": [ 11 | "globals", 12 | "node" 13 | ], 14 | "keywords": [ 15 | "promise", 16 | "es6", 17 | "polyfill", 18 | "html5" 19 | ], 20 | "license": "MIT", 21 | "ignore": [ 22 | "**/.*", 23 | "node_modules", 24 | "bower_components", 25 | "test", 26 | "tests" 27 | ], 28 | "dependencies": { 29 | "polymer": "polymer/polymer#^1.0.0" 30 | }, 31 | "_release": "1.0.0", 32 | "_resolution": { 33 | "type": "version", 34 | "tag": "v1.0.0", 35 | "commit": "2ef7dada161cae30e69ffff918485c57121d4b88" 36 | }, 37 | "_source": "git://github.com/polymerlabs/promise-polyfill.git", 38 | "_target": "^1.0.0", 39 | "_originalSource": "polymerlabs/promise-polyfill" 40 | } -------------------------------------------------------------------------------- /bower_components/iron-pages/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | Tests 17 | 18 | 19 | 20 | 21 | 22 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /bower_components/app-route/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 28 | 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.7', 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 | var assets = [ 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 | ]; 23 | if (api.addAssets) { 24 | api.addAssets(assets, 'client'); 25 | } else { 26 | api.addFiles(assets, 'client', { isAsset: true }); 27 | } 28 | api.addFiles([ 29 | 'dist/css/bootstrap.css', 30 | 'dist/js/bootstrap.js' 31 | ], 'client'); 32 | }); 33 | -------------------------------------------------------------------------------- /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 - 3" 33 | }, 34 | "version": "3.3.7", 35 | "_release": "3.3.7", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v3.3.7", 39 | "commit": "0b9c4a4007c44201dce9a6cc1a38407005c26c86" 40 | }, 41 | "_source": "https://github.com/twbs/bootstrap.git", 42 | "_target": "~3.3.7", 43 | "_originalSource": "bootstrap" 44 | } -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /step-06/elements/beer-list-item.html: -------------------------------------------------------------------------------- 1 | !-- Import Polymer library --> 2 | 3 | 4 | 5 | 28 | 41 | 42 | -------------------------------------------------------------------------------- /bower_components/iron-selector/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-selector", 3 | "version": "1.4.0", 4 | "description": "Manages a set of elements that can be selected", 5 | "private": true, 6 | "license": "http://polymer.github.io/LICENSE.txt", 7 | "main": "iron-selector.html", 8 | "authors": [ 9 | "The Polymer Authors" 10 | ], 11 | "keywords": [ 12 | "web-components", 13 | "polymer", 14 | "selector" 15 | ], 16 | "repository": { 17 | "type": "git", 18 | "url": "git://github.com/PolymerElements/iron-selector.git" 19 | }, 20 | "homepage": "https://github.com/PolymerElements/iron-selector", 21 | "ignore": [], 22 | "dependencies": { 23 | "polymer": "Polymer/polymer#^1.2.0" 24 | }, 25 | "devDependencies": { 26 | "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", 27 | "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", 28 | "paper-styles": "PolymerElements/paper-styles#^1.0.4", 29 | "test-fixture": "PolymerElements/test-fixture#^1.0.0", 30 | "web-component-tester": "^4.0.0", 31 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /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/promise-polyfill/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "promise-polyfill", 3 | "version": "2.0.0", 4 | "description": "Lightweight promise polyfill. A+ compliant", 5 | "main": "Promise.js", 6 | "scripts": { 7 | "test": "./node_modules/.bin/promises-aplus-tests tests/adapter.js; ./node_modules/.bin/promises-es6-tests tests/adapter.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://taylorhakes@github.com/taylorhakes/promise-polyfill.git" 12 | }, 13 | "author": "Taylor Hakes", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/taylorhakes/promise-polyfill/issues" 17 | }, 18 | "homepage": "https://github.com/taylorhakes/promise-polyfill", 19 | "devDependencies": { 20 | "grunt": "^0.4.5", 21 | "grunt-bytesize": "^0.1.1", 22 | "grunt-closurecompiler": "^0.9.9", 23 | "grunt-contrib-uglify": "^0.4.0", 24 | "mocha": "^2.2.1", 25 | "promises-aplus-tests": "*", 26 | "promises-es6-tests": "^0.5.0" 27 | }, 28 | "keywords": [ 29 | "promise", 30 | "promise-polyfill", 31 | "ES6", 32 | "promises-aplus" 33 | ], 34 | "dependencies": {} 35 | } 36 | -------------------------------------------------------------------------------- /bower_components/bootstrap/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.4.0) 5 | colorator (0.1) 6 | ffi (1.9.14-x64-mingw32) 7 | jekyll (3.1.6) 8 | colorator (~> 0.1) 9 | jekyll-sass-converter (~> 1.0) 10 | jekyll-watch (~> 1.1) 11 | kramdown (~> 1.3) 12 | liquid (~> 3.0) 13 | mercenary (~> 0.3.3) 14 | rouge (~> 1.7) 15 | safe_yaml (~> 1.0) 16 | jekyll-sass-converter (1.4.0) 17 | sass (~> 3.4) 18 | jekyll-sitemap (0.11.0) 19 | addressable (~> 2.4.0) 20 | jekyll-watch (1.4.0) 21 | listen (~> 3.0, < 3.1) 22 | kramdown (1.11.1) 23 | liquid (3.0.6) 24 | listen (3.0.8) 25 | rb-fsevent (~> 0.9, >= 0.9.4) 26 | rb-inotify (~> 0.9, >= 0.9.7) 27 | mercenary (0.3.6) 28 | rb-fsevent (0.9.7) 29 | rb-inotify (0.9.7) 30 | ffi (>= 0.5.0) 31 | rouge (1.11.1) 32 | safe_yaml (1.0.4) 33 | sass (3.4.22) 34 | 35 | PLATFORMS 36 | x64-mingw32 37 | 38 | DEPENDENCIES 39 | jekyll (~> 3.1.2) 40 | jekyll-sitemap (~> 0.11.0) 41 | 42 | BUNDLED WITH 43 | 1.12.5 44 | -------------------------------------------------------------------------------- /bower_components/jquery/src/exports/amd.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | // Register as a named AMD module, since jQuery can be concatenated with other 8 | // files that may use define, but not via a proper concatenation script that 9 | // understands anonymous AMD modules. A named AMD is safest and most robust 10 | // way to register. Lowercase jquery is used because AMD module names are 11 | // derived from file names, and jQuery is normally delivered in a lowercase 12 | // file name. Do this after creating the global so that if an AMD module wants 13 | // to call noConflict to hide this version of jQuery, it will work. 14 | 15 | // Note that for maximum portability, libraries that are not jQuery should 16 | // declare themselves as anonymous modules, and avoid setting a global if an 17 | // AMD loader is present. jQuery is a special case. For more information, see 18 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 19 | 20 | if ( typeof define === "function" && define.amd ) { 21 | define( "jquery", [], function() { 22 | return jQuery; 23 | } ); 24 | } 25 | 26 | } ); 27 | -------------------------------------------------------------------------------- /bower_components/promise-polyfill/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Taylor Hakes 2 | Copyright (c) 2014 Forbes Lindesay 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. -------------------------------------------------------------------------------- /bower_components/iron-ajax/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-ajax", 3 | "version": "1.4.3", 4 | "description": "Makes it easy to make ajax calls and parse the response", 5 | "private": true, 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "web-components", 11 | "polymer", 12 | "ajax" 13 | ], 14 | "main": "iron-ajax.html", 15 | "repository": { 16 | "type": "git", 17 | "url": "git://github.com/PolymerElements/iron-ajax.git" 18 | }, 19 | "license": "http://polymer.github.io/LICENSE.txt", 20 | "homepage": "https://github.com/PolymerElements/iron-ajax", 21 | "ignore": [], 22 | "dependencies": { 23 | "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", 24 | "polymer": "Polymer/polymer#^1.5.0" 25 | }, 26 | "devDependencies": { 27 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 28 | "iron-image": "polymerelements/iron-image#^1.0.0", 29 | "paper-styles": "polymerelements/paper-styles#^1.0.0", 30 | "test-fixture": "polymerelements/test-fixture#^1.0.0", 31 | "web-component-tester": "^4.0.0", 32 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /bower_components/iron-pages/README.md: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | [![Build status](https://travis-ci.org/PolymerElements/iron-pages.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-pages) 16 | 17 | _[Demo and API docs](https://elements.polymer-project.org/elements/iron-pages)_ 18 | 19 | 20 | ##<iron-pages> 21 | 22 | `iron-pages` is used to select one of its children to show. One use is to cycle through a list of 23 | children "pages". 24 | 25 | Example: 26 | 27 | ```html 28 | 29 |
One
30 |
Two
31 |
Three
32 |
33 | 34 | 40 | ``` 41 | 42 | 43 | -------------------------------------------------------------------------------- /bower_components/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2016 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 | -------------------------------------------------------------------------------- /step-02/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Polymer Beer Gallery 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |

A nice beer list

20 | 24 | 25 | 29 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /bower_components/iron-pages/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-pages", 3 | "version": "1.0.8", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "description": "Organizes a set of pages and shows one at a time", 6 | "main": "iron-pages.html", 7 | "private": true, 8 | "authors": [ 9 | "The Polymer Authors" 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "git://github.com/PolymerElements/iron-pages.git" 14 | }, 15 | "keywords": [ 16 | "web-components", 17 | "polymer", 18 | "container" 19 | ], 20 | "dependencies": { 21 | "iron-resizable-behavior": "polymerelements/iron-resizable-behavior#^1.0.0", 22 | "iron-selector": "polymerelements/iron-selector#^1.0.0", 23 | "polymer": "Polymer/polymer#^1.1.0" 24 | }, 25 | "devDependencies": { 26 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 27 | "iron-demo-helpers": "polymerelements/iron-demo-helpers#^1.0.0", 28 | "paper-styles": "polymerelements/paper-styles#^1.0.2", 29 | "test-fixture": "polymerelements/test-fixture#^1.0.0", 30 | "web-component-tester": "^4.0.0", 31 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 32 | }, 33 | "ignore": [] 34 | } 35 | -------------------------------------------------------------------------------- /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/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/iron-selector/test/content-element.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 22 | 23 | 24 | 25 | 45 | -------------------------------------------------------------------------------- /bower_components/promise-polyfill/Promise-Statics.js: -------------------------------------------------------------------------------- 1 | Promise.all = Promise.all || function () { 2 | var args = Array.prototype.slice.call(arguments.length === 1 && Array.isArray(arguments[0]) ? arguments[0] : arguments); 3 | 4 | return new Promise(function (resolve, reject) { 5 | if (args.length === 0) return resolve([]); 6 | var remaining = args.length; 7 | function res(i, val) { 8 | try { 9 | if (val && (typeof val === 'object' || typeof val === 'function')) { 10 | var then = val.then; 11 | if (typeof then === 'function') { 12 | then.call(val, function (val) { res(i, val) }, reject); 13 | return; 14 | } 15 | } 16 | args[i] = val; 17 | if (--remaining === 0) { 18 | resolve(args); 19 | } 20 | } catch (ex) { 21 | reject(ex); 22 | } 23 | } 24 | for (var i = 0; i < args.length; i++) { 25 | res(i, args[i]); 26 | } 27 | }); 28 | }; 29 | 30 | Promise.race = Promise.race || function (values) { 31 | return new Promise(function (resolve, reject) { 32 | for(var i = 0, len = values.length; i < len; i++) { 33 | values[i].then(resolve, reject); 34 | } 35 | }); 36 | }; 37 | 38 | -------------------------------------------------------------------------------- /bower_components/bootstrap/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Before opening an issue: 2 | 3 | - [Search for duplicate or closed issues](https://github.com/twbs/bootstrap/issues?utf8=%E2%9C%93&q=is%3Aissue) 4 | - [Validate](http://validator.w3.org/nu/) and [lint](https://github.com/twbs/bootlint#in-the-browser) any HTML to avoid common problems 5 | - Prepare a [reduced test case](https://css-tricks.com/reduced-test-cases/) for any bugs 6 | - Read the [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md) 7 | 8 | When asking general "how to" questions: 9 | 10 | - Please do not open an issue here 11 | - Instead, ask for help on [StackOverflow, IRC, or Slack](https://github.com/twbs/bootstrap/blob/master/README.md#community) 12 | 13 | When reporting a bug, include: 14 | 15 | - Operating system and version (Windows, Mac OS X, Android, iOS, Win10 Mobile) 16 | - Browser and version (Chrome, Firefox, Safari, IE, MS Edge, Opera 15+, Android Browser) 17 | - Reduced test cases and potential fixes using [JS Bin](https://jsbin.com) 18 | 19 | When suggesting a feature, include: 20 | 21 | - As much detail as possible for what we should add and why it's important to Bootstrap 22 | - Relevant links to prior art, screenshots, or live demos whenever possible 23 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | "use strict"; 7 | 8 | ( function() { 9 | var fragment = document.createDocumentFragment(), 10 | div = fragment.appendChild( document.createElement( "div" ) ), 11 | input = document.createElement( "input" ); 12 | 13 | // Support: Android 4.0 - 4.3 only 14 | // Check state lost if the name is set (#11217) 15 | // Support: Windows Web Apps (WWA) 16 | // `name` and `type` must use .setAttribute for WWA (#14901) 17 | input.setAttribute( "type", "radio" ); 18 | input.setAttribute( "checked", "checked" ); 19 | input.setAttribute( "name", "t" ); 20 | 21 | div.appendChild( input ); 22 | 23 | // Support: Android <=4.1 only 24 | // Older WebKit doesn't clone checked state correctly in fragments 25 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 26 | 27 | // Support: IE <=11 only 28 | // Make sure textarea (and checkbox) defaultValue is properly cloned 29 | div.innerHTML = ""; 30 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 31 | } )(); 32 | 33 | return support; 34 | 35 | } ); 36 | -------------------------------------------------------------------------------- /bower_components/promise-polyfill/Promise.min.js: -------------------------------------------------------------------------------- 1 | function m(n){function b(a){if("object"!==typeof this||"function"!==typeof a)throw new TypeError;this.c=this.a=null;this.b=[];g(a,h.bind(this),d.bind(this))}function k(a){var c=this;null===this.a?this.b.push(a):n(function(){var f=c.a?a.d:a.e;if("function"!==typeof f)(c.a?a.resolve:a.reject)(c.c);else{var e;try{e=f(c.c)}catch(b){a.reject(b);return}a.resolve(e)}})}function h(a){try{if(a===this)throw new TypeError;if(a&&("object"===typeof a||"function"===typeof a)){var c=a.then;if("function"===typeof c){g(c.bind(a), 2 | h.bind(this),d.bind(this));return}}this.a=!0;this.c=a;l.call(this)}catch(b){d.call(this,b)}}function d(a){this.a=!1;this.c=a;l.call(this)}function l(){for(var a=0,c=this.b.length;a 2 | 3 | 4 | 5 | 6 | 7 | 30 | 31 | 32 | 52 | -------------------------------------------------------------------------------- /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/iron-location/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-location", 3 | "version": "0.8.1", 4 | "description": "Bidirectional data binding into the page's URL.", 5 | "private": true, 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "web-components", 11 | "polymer", 12 | "routing" 13 | ], 14 | "main": "iron-location.html", 15 | "repository": { 16 | "type": "git", 17 | "url": "git://github.com/PolymerElements/iron-location.git" 18 | }, 19 | "license": "http://polymer.github.io/LICENSE.txt", 20 | "homepage": "https://github.com/PolymerElements/iron-location", 21 | "ignore": [], 22 | "dependencies": { 23 | "polymer": "Polymer/polymer#^1.0.0" 24 | }, 25 | "devDependencies": { 26 | "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", 27 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 28 | "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", 29 | "paper-input": "polymerelements/paper-input#^1.0.0", 30 | "paper-slider": "polymerelements/paper-slider#^1.0.0", 31 | "paper-styles": "polymerelements/paper-styles#^1.0.0", 32 | "test-fixture": "polymerelements/test-fixture#^1.0.0", 33 | "web-component-tester": "^4.0.0", 34 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /step-07/elements/beer-list-item.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 30 | 50 | 51 | -------------------------------------------------------------------------------- /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/iron-resizable-behavior/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-resizable-behavior", 3 | "version": "1.0.3", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "description": "Coordinates the flow of resizeable elements", 6 | "private": true, 7 | "main": "iron-resizable-behavior.html", 8 | "authors": [ 9 | "The Polymer Authors" 10 | ], 11 | "keywords": [ 12 | "web-components", 13 | "polymer", 14 | "iron", 15 | "behavior" 16 | ], 17 | "repository": { 18 | "type": "git", 19 | "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" 20 | }, 21 | "dependencies": { 22 | "polymer": "Polymer/polymer#^1.0.0" 23 | }, 24 | "devDependencies": { 25 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 26 | "test-fixture": "polymerelements/test-fixture#^1.0.0", 27 | "web-component-tester": "^4.0.0", 28 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 29 | }, 30 | "ignore": [], 31 | "homepage": "https://github.com/polymerelements/iron-resizable-behavior", 32 | "_release": "1.0.3", 33 | "_resolution": { 34 | "type": "version", 35 | "tag": "v1.0.3", 36 | "commit": "dda1df6aaf452aedf3e52ff0cf69e72439452216" 37 | }, 38 | "_source": "git://github.com/polymerelements/iron-resizable-behavior.git", 39 | "_target": "^1.0.0", 40 | "_originalSource": "polymerelements/iron-resizable-behavior" 41 | } -------------------------------------------------------------------------------- /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 | padding-left: (@grid-gutter-width / 2); 32 | padding-right: (@grid-gutter-width / 2); 33 | } 34 | 35 | .container { 36 | max-width: 100%; 37 | } 38 | 39 | @media screen and (min-width: @screen-sm-min) { 40 | padding-top: (@jumbotron-padding * 1.6); 41 | padding-bottom: (@jumbotron-padding * 1.6); 42 | 43 | .container &, 44 | .container-fluid & { 45 | padding-left: (@jumbotron-padding * 2); 46 | padding-right: (@jumbotron-padding * 2); 47 | } 48 | 49 | h1, 50 | .h1 { 51 | font-size: @jumbotron-heading-font-size; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /bower_components/bootstrap/nuget/bootstrap.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap 5 | 3.3.7 6 | Bootstrap CSS 7 | Twitter, Inc. 8 | bootstrap 9 | The most popular front-end framework for developing responsive, mobile first projects on the web. 10 | http://blog.getbootstrap.com 11 | Bootstrap framework in CSS. Includes fonts and JavaScript 12 | en-us 13 | http://getbootstrap.com 14 | http://getbootstrap.com/apple-touch-icon.png 15 | https://github.com/twbs/bootstrap/blob/master/LICENSE 16 | Copyright 2016 17 | false 18 | 19 | 20 | 21 | css js less mobile-first responsive front-end framework web 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /bower_components/app-route/demo/data-loading-demo.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | carbon-route data loading example 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /bower_components/bootstrap/nuget/bootstrap.less.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap.less 5 | 3.3.7 6 | Bootstrap Less 7 | Twitter, Inc. 8 | bootstrap 9 | The most popular front-end framework for developing responsive, mobile first projects on the web. 10 | http://blog.getbootstrap.com 11 | Bootstrap framework in Less. Includes fonts and JavaScript 12 | en-us 13 | http://getbootstrap.com 14 | http://getbootstrap.com/apple-touch-icon.png 15 | https://github.com/twbs/bootstrap/blob/master/LICENSE 16 | Copyright 2016 17 | false 18 | 19 | 20 | 21 | css js less mobile-first responsive front-end framework web 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /bower_components/app-route/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "app-route", 3 | "version": "0.9.3", 4 | "authors": [ 5 | "The Polymer Authors" 6 | ], 7 | "description": "App routing expressed as Polymer Custom Elements.", 8 | "main": [ 9 | "app-route.html", 10 | "app-location.html", 11 | "app-route-converter.html" 12 | ], 13 | "license": "http://polymer.github.io/LICENSE.txt", 14 | "homepage": "https://github.com/PolymerElements/app-route", 15 | "private": true, 16 | "ignore": [], 17 | "devDependencies": { 18 | "paper-styles": "polymerelements/paper-styles#^1.0.13", 19 | "paper-input": "polymerelements/paper-input#^1.1.2", 20 | "web-component-tester": "^4.0.0", 21 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 22 | "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", 23 | "iron-pages": "PolymerElements/iron-pages#^1.0.7", 24 | "paper-card": "PolymerElements/paper-card#^1.1.1", 25 | "paper-icon-button": "polymerelements/paper-icon-button#^v1.0.0", 26 | "paper-toggle-button": "polymerelements/paper-toggle-button#^v1.0.0", 27 | "google-youtube": "GoogleWebComponents/google-youtube#^1.2.1", 28 | "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.0", 29 | "paper-spinner": "PolymerElements/paper-spinner#^1.1.1" 30 | }, 31 | "dependencies": { 32 | "polymer": "polymer/polymer#^1.3.1", 33 | "iron-location": "polymerelements/iron-location#^0.8.1" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /bower_components/iron-selector/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-selector", 3 | "version": "1.4.0", 4 | "description": "Manages a set of elements that can be selected", 5 | "private": true, 6 | "license": "http://polymer.github.io/LICENSE.txt", 7 | "main": "iron-selector.html", 8 | "authors": [ 9 | "The Polymer Authors" 10 | ], 11 | "keywords": [ 12 | "web-components", 13 | "polymer", 14 | "selector" 15 | ], 16 | "repository": { 17 | "type": "git", 18 | "url": "git://github.com/PolymerElements/iron-selector.git" 19 | }, 20 | "homepage": "https://github.com/PolymerElements/iron-selector", 21 | "ignore": [], 22 | "dependencies": { 23 | "polymer": "Polymer/polymer#^1.2.0" 24 | }, 25 | "devDependencies": { 26 | "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", 27 | "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", 28 | "paper-styles": "PolymerElements/paper-styles#^1.0.4", 29 | "test-fixture": "PolymerElements/test-fixture#^1.0.0", 30 | "web-component-tester": "^4.0.0", 31 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 32 | }, 33 | "_release": "1.4.0", 34 | "_resolution": { 35 | "type": "version", 36 | "tag": "v1.4.0", 37 | "commit": "554f7418fdbd97688eb21518b5f8172167d53a95" 38 | }, 39 | "_source": "git://github.com/polymerelements/iron-selector.git", 40 | "_target": "^1.0.0", 41 | "_originalSource": "polymerelements/iron-selector" 42 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/isHiddenWithinTree.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core", 3 | "../../selector" 4 | 5 | // css is assumed 6 | ], function( jQuery ) { 7 | "use strict"; 8 | 9 | // isHiddenWithinTree reports if an element has a non-"none" display style (inline and/or 10 | // through the CSS cascade), which is useful in deciding whether or not to make it visible. 11 | // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways: 12 | // * A hidden ancestor does not force an element to be classified as hidden. 13 | // * Being disconnected from the document does not force an element to be classified as hidden. 14 | // These differences improve the behavior of .toggle() et al. when applied to elements that are 15 | // detached or contained within hidden ancestors (gh-2404, gh-2863). 16 | return function( elem, el ) { 17 | 18 | // isHiddenWithinTree might be called from jQuery#filter function; 19 | // in that case, element will be second argument 20 | elem = el || elem; 21 | 22 | // Inline style trumps all 23 | return elem.style.display === "none" || 24 | elem.style.display === "" && 25 | 26 | // Otherwise, check computed style 27 | // Support: Firefox <=43 - 45 28 | // Disconnected elements can have computed display: none, so first confirm that elem is 29 | // in the document. 30 | jQuery.contains( elem.ownerDocument, elem ) && 31 | 32 | jQuery.css( elem, "display" ) === "none"; 33 | }; 34 | } ); 35 | -------------------------------------------------------------------------------- /bower_components/iron-ajax/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-ajax", 3 | "version": "1.4.3", 4 | "description": "Makes it easy to make ajax calls and parse the response", 5 | "private": true, 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "web-components", 11 | "polymer", 12 | "ajax" 13 | ], 14 | "main": "iron-ajax.html", 15 | "repository": { 16 | "type": "git", 17 | "url": "git://github.com/PolymerElements/iron-ajax.git" 18 | }, 19 | "license": "http://polymer.github.io/LICENSE.txt", 20 | "homepage": "https://github.com/PolymerElements/iron-ajax", 21 | "ignore": [], 22 | "dependencies": { 23 | "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", 24 | "polymer": "Polymer/polymer#^1.5.0" 25 | }, 26 | "devDependencies": { 27 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 28 | "iron-image": "polymerelements/iron-image#^1.0.0", 29 | "paper-styles": "polymerelements/paper-styles#^1.0.0", 30 | "test-fixture": "polymerelements/test-fixture#^1.0.0", 31 | "web-component-tester": "^4.0.0", 32 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 33 | }, 34 | "_release": "1.4.3", 35 | "_resolution": { 36 | "type": "version", 37 | "tag": "v1.4.3", 38 | "commit": "97685a88f7727249fb63667969238faa0e704198" 39 | }, 40 | "_source": "https://github.com/PolymerElements/iron-ajax.git", 41 | "_target": "~1.4.3", 42 | "_originalSource": "PolymerElements/iron-ajax" 43 | } -------------------------------------------------------------------------------- /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/iron-selector/test/index.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | Tests 13 | 14 | 15 | 16 | 17 | 18 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /bower_components/app-route/test/redirection.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 19 | 20 | 21 | 27 | 44 | 45 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/bootstrap.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) 3 | * Copyright 2011-2016 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/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/iron-resizable-behavior/README.md: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | [![Build status](https://travis-ci.org/PolymerElements/iron-resizable-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-resizable-behavior) 16 | 17 | _[Demo and API docs](https://elements.polymer-project.org/elements/iron-resizable-behavior)_ 18 | 19 | 20 | ##Polymer.IronResizableBehavior 21 | 22 | `IronResizableBehavior` is a behavior that can be used in Polymer elements to 23 | coordinate the flow of resize events between "resizers" (elements that control the 24 | size or hidden state of their children) and "resizables" (elements that need to be 25 | notified when they are resized or un-hidden by their parents in order to take 26 | action on their new measurements). 27 | 28 | Elements that perform measurement should add the `IronResizableBehavior` behavior to 29 | their element definition and listen for the `iron-resize` event on themselves. 30 | This event will be fired when they become showing after having been hidden, 31 | when they are resized explicitly by another resizable, or when the window has been 32 | resized. 33 | 34 | Note, the `iron-resize` event is non-bubbling. 35 | 36 | 37 | -------------------------------------------------------------------------------- /bower_components/iron-pages/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-pages", 3 | "version": "1.0.8", 4 | "license": "http://polymer.github.io/LICENSE.txt", 5 | "description": "Organizes a set of pages and shows one at a time", 6 | "main": "iron-pages.html", 7 | "private": true, 8 | "authors": [ 9 | "The Polymer Authors" 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "git://github.com/PolymerElements/iron-pages.git" 14 | }, 15 | "keywords": [ 16 | "web-components", 17 | "polymer", 18 | "container" 19 | ], 20 | "dependencies": { 21 | "iron-resizable-behavior": "polymerelements/iron-resizable-behavior#^1.0.0", 22 | "iron-selector": "polymerelements/iron-selector#^1.0.0", 23 | "polymer": "Polymer/polymer#^1.1.0" 24 | }, 25 | "devDependencies": { 26 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 27 | "iron-demo-helpers": "polymerelements/iron-demo-helpers#^1.0.0", 28 | "paper-styles": "polymerelements/paper-styles#^1.0.2", 29 | "test-fixture": "polymerelements/test-fixture#^1.0.0", 30 | "web-component-tester": "^4.0.0", 31 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 32 | }, 33 | "ignore": [], 34 | "homepage": "https://github.com/PolymerElements/iron-pages", 35 | "_release": "1.0.8", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v1.0.8", 39 | "commit": "1399d2d51a0ce50edd2c79a6d37419967509bf2c" 40 | }, 41 | "_source": "https://github.com/PolymerElements/iron-pages.git", 42 | "_target": "~1.0.8", 43 | "_originalSource": "PolymerElements/iron-pages" 44 | } -------------------------------------------------------------------------------- /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.min.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) || (version[0] > 3)) {", 41 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')", 42 | " }", 43 | "}(jQuery);\n\n" 44 | ] 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /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/iron-location/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-location", 3 | "version": "0.8.1", 4 | "description": "Bidirectional data binding into the page's URL.", 5 | "private": true, 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "web-components", 11 | "polymer", 12 | "routing" 13 | ], 14 | "main": "iron-location.html", 15 | "repository": { 16 | "type": "git", 17 | "url": "git://github.com/PolymerElements/iron-location.git" 18 | }, 19 | "license": "http://polymer.github.io/LICENSE.txt", 20 | "homepage": "https://github.com/PolymerElements/iron-location", 21 | "ignore": [], 22 | "dependencies": { 23 | "polymer": "Polymer/polymer#^1.0.0" 24 | }, 25 | "devDependencies": { 26 | "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", 27 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 28 | "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", 29 | "paper-input": "polymerelements/paper-input#^1.0.0", 30 | "paper-slider": "polymerelements/paper-slider#^1.0.0", 31 | "paper-styles": "polymerelements/paper-styles#^1.0.0", 32 | "test-fixture": "polymerelements/test-fixture#^1.0.0", 33 | "web-component-tester": "^4.0.0", 34 | "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" 35 | }, 36 | "_release": "0.8.1", 37 | "_resolution": { 38 | "type": "version", 39 | "tag": "v0.8.1", 40 | "commit": "fe42515f03ff4b3397dedf1c0810f1667f460172" 41 | }, 42 | "_source": "git://github.com/polymerelements/iron-location.git", 43 | "_target": "^0.8.1", 44 | "_originalSource": "polymerelements/iron-location" 45 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/core/access.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | // Multifunctional method to get and set values of a collection 8 | // The value/s can optionally be executed if it's a function 9 | var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 10 | var i = 0, 11 | len = elems.length, 12 | bulk = key == null; 13 | 14 | // Sets many values 15 | if ( jQuery.type( key ) === "object" ) { 16 | chainable = true; 17 | for ( i in key ) { 18 | access( elems, fn, i, key[ i ], true, emptyGet, raw ); 19 | } 20 | 21 | // Sets one value 22 | } else if ( value !== undefined ) { 23 | chainable = true; 24 | 25 | if ( !jQuery.isFunction( value ) ) { 26 | raw = true; 27 | } 28 | 29 | if ( bulk ) { 30 | 31 | // Bulk operations run against the entire set 32 | if ( raw ) { 33 | fn.call( elems, value ); 34 | fn = null; 35 | 36 | // ...except when executing function values 37 | } else { 38 | bulk = fn; 39 | fn = function( elem, key, value ) { 40 | return bulk.call( jQuery( elem ), value ); 41 | }; 42 | } 43 | } 44 | 45 | if ( fn ) { 46 | for ( ; i < len; i++ ) { 47 | fn( 48 | elems[ i ], key, raw ? 49 | value : 50 | value.call( elems[ i ], i, fn( elems[ i ], key ) ) 51 | ); 52 | } 53 | } 54 | } 55 | 56 | if ( chainable ) { 57 | return elems; 58 | } 59 | 60 | // Gets 61 | if ( bulk ) { 62 | return fn.call( elems ); 63 | } 64 | 65 | return len ? fn( elems[ 0 ], key ) : emptyGet; 66 | }; 67 | 68 | return access; 69 | 70 | } ); 71 | -------------------------------------------------------------------------------- /bower_components/polymer/LICENSE.txt: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014 The Polymer Authors. All rights reserved. 2 | // 3 | // Redistribution and use in source and binary forms, with or without 4 | // modification, are permitted provided that the following conditions are 5 | // met: 6 | // 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above 10 | // copyright notice, this list of conditions and the following disclaimer 11 | // in the documentation and/or other materials provided with the 12 | // distribution. 13 | // * Neither the name of Google Inc. nor the names of its 14 | // contributors may be used to endorse or promote products derived from 15 | // this software without specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /bower_components/app-route/demo/youtube-demo/route-info.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 27 | 48 | 49 | -------------------------------------------------------------------------------- /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/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 | &:hover, 46 | &:focus, 47 | &.focus { 48 | background-color: @background; 49 | border-color: @border; 50 | } 51 | } 52 | 53 | .badge { 54 | color: @background; 55 | background-color: @color; 56 | } 57 | } 58 | 59 | // Button sizes 60 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 61 | padding: @padding-vertical @padding-horizontal; 62 | font-size: @font-size; 63 | line-height: @line-height; 64 | border-radius: @border-radius; 65 | } 66 | -------------------------------------------------------------------------------- /bower_components/iron-ajax/README.md: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | [![Build status](https://travis-ci.org/PolymerElements/iron-ajax.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-ajax) 16 | 17 | _[Demo and API docs](https://elements.polymer-project.org/elements/iron-ajax)_ 18 | 19 | 20 | ##<iron-ajax> 21 | 22 | The `iron-ajax` element exposes network request functionality. 23 | 24 | ```html 25 | 32 | ``` 33 | 34 | With `auto` set to `true`, the element performs a request whenever 35 | its `url`, `params` or `body` properties are changed. Automatically generated 36 | requests will be debounced in the case that multiple attributes are changed 37 | sequentially. 38 | 39 | Note: The `params` attribute must be double quoted JSON. 40 | 41 | You can trigger a request explicitly by calling `generateRequest` on the 42 | element. 43 | 44 | 45 | 46 | ##<iron-request> 47 | 48 | iron-request can be used to perform XMLHttpRequests. 49 | 50 | ```html 51 | 52 | ... 53 | this.$.xhr.send({url: url, body: params}); 54 | ``` 55 | 56 | 57 | -------------------------------------------------------------------------------- /bower_components/app-route/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "app-route", 3 | "version": "0.9.3", 4 | "authors": [ 5 | "The Polymer Authors" 6 | ], 7 | "description": "App routing expressed as Polymer Custom Elements.", 8 | "main": [ 9 | "app-route.html", 10 | "app-location.html", 11 | "app-route-converter.html" 12 | ], 13 | "license": "http://polymer.github.io/LICENSE.txt", 14 | "homepage": "https://github.com/PolymerElements/app-route", 15 | "private": true, 16 | "ignore": [], 17 | "devDependencies": { 18 | "paper-styles": "polymerelements/paper-styles#^1.0.13", 19 | "paper-input": "polymerelements/paper-input#^1.1.2", 20 | "web-component-tester": "^4.0.0", 21 | "iron-component-page": "polymerelements/iron-component-page#^1.0.0", 22 | "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", 23 | "iron-pages": "PolymerElements/iron-pages#^1.0.7", 24 | "paper-card": "PolymerElements/paper-card#^1.1.1", 25 | "paper-icon-button": "polymerelements/paper-icon-button#^v1.0.0", 26 | "paper-toggle-button": "polymerelements/paper-toggle-button#^v1.0.0", 27 | "google-youtube": "GoogleWebComponents/google-youtube#^1.2.1", 28 | "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.0", 29 | "paper-spinner": "PolymerElements/paper-spinner#^1.1.1" 30 | }, 31 | "dependencies": { 32 | "polymer": "polymer/polymer#^1.3.1", 33 | "iron-location": "polymerelements/iron-location#^0.8.1" 34 | }, 35 | "_release": "0.9.3", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v0.9.3", 39 | "commit": "8a95fb29bf2bdf7befbc3f58154d33631b97d8ef" 40 | }, 41 | "_source": "https://github.com/PolymerElements/app-route.git", 42 | "_target": "~0.9.3", 43 | "_originalSource": "PolymerElements/app-route" 44 | } -------------------------------------------------------------------------------- /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/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright jQuery Foundation and other contributors, https://jquery.org/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /bower_components/app-route/test/app-example-1.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 45 | 46 | -------------------------------------------------------------------------------- /bower_components/jquery/external/sizzle/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright jQuery Foundation and other contributors, https://jquery.org/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/sizzle 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /bower_components/jquery/src/event/focusin.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../data/var/dataPriv", 4 | "./support", 5 | 6 | "../event", 7 | "./trigger" 8 | ], function( jQuery, dataPriv, support ) { 9 | 10 | "use strict"; 11 | 12 | // Support: Firefox <=44 13 | // Firefox doesn't have focus(in | out) events 14 | // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 15 | // 16 | // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 17 | // focus(in | out) events fire after focus & blur events, 18 | // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 19 | // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 20 | if ( !support.focusin ) { 21 | jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { 22 | 23 | // Attach a single capturing handler on the document while someone wants focusin/focusout 24 | var handler = function( event ) { 25 | jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); 26 | }; 27 | 28 | jQuery.event.special[ fix ] = { 29 | setup: function() { 30 | var doc = this.ownerDocument || this, 31 | attaches = dataPriv.access( doc, fix ); 32 | 33 | if ( !attaches ) { 34 | doc.addEventListener( orig, handler, true ); 35 | } 36 | dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); 37 | }, 38 | teardown: function() { 39 | var doc = this.ownerDocument || this, 40 | attaches = dataPriv.access( doc, fix ) - 1; 41 | 42 | if ( !attaches ) { 43 | doc.removeEventListener( orig, handler, true ); 44 | dataPriv.remove( doc, fix ); 45 | 46 | } else { 47 | dataPriv.access( doc, fix, attaches ); 48 | } 49 | } 50 | }; 51 | } ); 52 | } 53 | 54 | return jQuery; 55 | } ); 56 | -------------------------------------------------------------------------------- /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: "9.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 | --------------------------------------------------------------------------------