-
Notifications
You must be signed in to change notification settings - Fork 0
Commit 91ee3f9
committed
[from now] 2014/06/21 06:59:31
diff --git a/.gitmodules b/.gitmodules
index e69de29..9981588 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "public/webaudio-controls"]
+ path = public/webaudio-controls
+ url = https://github.com/g200kg/webaudio-controls.git
diff --git a/Gemfile b/Gemfile
index 06589cb..9ed9eef 100644
--- a/Gemfile
+++ b/Gemfile
@@ -167,3 +167,4 @@ gem 'rails-assets-lodash'
gem 'rails-assets-backbone'
gem 'rails-assets-backbone.marionette', '>= 1.6'
gem 'rails-assets-backbone.stickit'
+gem 'rails-assets-Polymer--platform'
diff --git a/Gemfile.lock b/Gemfile.lock
index 23bdb20..9ec1cc9 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -444,6 +444,7 @@ GEM
rack
rack-test (0.6.2)
rack (>= 1.0)
+ rails-assets-Polymer--platform (0.3.3)
rails-assets-backbone (1.1.2)
rails-assets-underscore (>= 1.5.0)
rails-assets-backbone.babysitter (0.1.4)
@@ -665,6 +666,7 @@ DEPENDENCIES
pry-stack_explorer
quiet_assets
rails!
+ rails-assets-Polymer--platform
rails-assets-backbone
rails-assets-backbone.marionette (>= 1.6)
rails-assets-backbone.stickit
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index 3b500f3..240dbe9 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -30,6 +30,8 @@
//= require recorder
//= require jquery.ui.widget
//= require jquery.fileupload
+//= require platform/platform
+//= require polymer/polymer
//= require_self
//= require_tree .
diff --git a/app/assets/javascripts/backbone/models/recorder.js.coffee b/app/assets/javascripts/backbone/models/recorder.js.coffee
index edb8f67..caaeb71 100644
--- a/app/assets/javascripts/backbone/models/recorder.js.coffee
+++ b/app/assets/javascripts/backbone/models/recorder.js.coffee
@@ -5,8 +5,17 @@ Seirenes.module "Models", (Models, App, Backbone, Marionette, $, _) ->
musicDelayTime: 0.018
initialize: ({video: @video, monitor: @monitor}) ->
+ @context = new AudioContext()
+ @music = @context.createMediaElementSource(@video)
throw new Error("no video") unless @video
+ addRecordTrack: ->
+ navigator.getUserMedia({audio: true}, _.bind(@captureSuccess, @), _.bind(@__assignRecordTrack, @))
+
+ __assignRecordTrack: (s) ->
+ @micStream = s
+ @mic = @context.createMediaStreamSource(s)
+
record: ->
navigator.getUserMedia({audio: true}, _.bind(@captureSuccess, @), _.bind(@captureFail, @))
diff --git a/app/assets/javascripts/backbone/templates/pasokara_show_layout.jst.hamlc b/app/assets/javascripts/backbone/templates/pasokara_show_layout.jst.hamlc
index e3c0417..7fa99e0 100644
--- a/app/assets/javascripts/backbone/templates/pasokara_show_layout.jst.hamlc
+++ b/app/assets/javascripts/backbone/templates/pasokara_show_layout.jst.hamlc
@@ -1,3 +1,4 @@
+%link{rel: "import", href: "/webaudio-controls/webcomponents/controls.html"}
%h3#pasokara-preview-title= @title
#pasokara-preview-player
#pasokara-movie-area
diff --git a/app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc b/app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc
index 2c19116..732f96f 100644
--- a/app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc
+++ b/app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc
@@ -1,5 +1,8 @@
#pasokara-preview
#record-control
+ #mic-volume-control
+ Mic Volume
+ %webaudio-slider.slider{id: "mic-volume", src: "/webaudio-controls/img/hsliderbody.png", knobsrc: "/webaudio-controls/img/hsliderknob.png", min: -6, max: 6, step: 0.1, direction: "horz"}
%button.js-start_rec Start Rec
%button.js-stop_rec Stop Rec
#recorded
diff --git a/app/assets/stylesheets/pasokaras.css.scss b/app/assets/stylesheets/pasokaras.css.scss
index c2bd00f..0ff8f1d 100644
--- a/app/assets/stylesheets/pasokaras.css.scss
+++ b/app/assets/stylesheets/pasokaras.css.scss
@@ -226,6 +226,11 @@
}
}
+#mic-volume-control {
+ text-align: left;
+ padding-left: 10px;
+}
+
#sort-field {
margin-top: 4px;
select.sort {
diff --git a/bower_components/core-component-page/.bower.json b/bower_components/core-component-page/.bower.json
new file mode 100644
index 0000000..0eed95d
--- /dev/null
+++ b/bower_components/core-component-page/.bower.json
@@ -0,0 +1,19 @@
+{
+ "name": "core-component-page",
+ "private": true,
+ "dependencies": {
+ "platform": "Polymer/platform#>=0.3.0 <1.0.0",
+ "polymer": "Polymer/polymer#>=0.3.0 <1.0.0"
+ },
+ "homepage": "https://github.com/Polymer/core-component-page",
+ "version": "0.3.3",
+ "_release": "0.3.3",
+ "_resolution": {
+ "type": "version",
+ "tag": "0.3.3",
+ "commit": "31ff29fa197310d0d9e7e043c0dab8d0f9a511cf"
+ },
+ "_source": "git://github.com/Polymer/core-component-page.git",
+ "_target": ">=0.3.0 <1.0.0",
+ "_originalSource": "Polymer/core-component-page"
+}
\ No newline at end of file
diff --git a/bower_components/core-component-page/README.md b/bower_components/core-component-page/README.md
new file mode 100644
index 0000000..0629c5c
--- /dev/null
+++ b/bower_components/core-component-page/README.md
@@ -0,0 +1,6 @@
+core-component-page
+===================
+
+See the [component page](http://polymer.github.io/core-component-page) for more information.
+
+Note: this is the vulcanized version of [`core-component-page-dev`](https://github.com/Polymer/core-component-page-dev) (the source).
diff --git a/bower_components/core-component-page/bowager-logo.png b/bower_components/core-component-page/bowager-logo.png
new file mode 100644
index 0000000..76be9fb
Binary files /dev/null and b/bower_components/core-component-page/bowager-logo.png differ
diff --git a/bower_components/core-component-page/bower.json b/bower_components/core-component-page/bower.json
new file mode 100644
index 0000000..541607b
--- /dev/null
+++ b/bower_components/core-component-page/bower.json
@@ -0,0 +1,8 @@
+{
+ "name": "core-component-page",
+ "private": true,
+ "dependencies": {
+ "platform": "Polymer/platform#>=0.3.0 <1.0.0",
+ "polymer": "Polymer/polymer#>=0.3.0 <1.0.0"
+ }
+}
\ No newline at end of file
diff --git a/bower_components/core-component-page/core-component-page.html b/bower_components/core-component-page/core-component-page.html
new file mode 100644
index 0000000..574eacf
--- /dev/null
+++ b/bower_components/core-component-page/core-component-page.html
@@ -0,0 +1,5797 @@
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<style>
+
+ body {
+ margin: 0;
+ }
+
+</style>
+
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<!--
+The `core-layout` element is a helper for using
+[CSS3 Flexible Boxes](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes).
+A `core-layout` element enables a set of css selectors for easy flexbox styling.
+
+Example:
+
+ <core-layout>
+ <div>Left</div>
+ <div core-flex>Main</div>
+ <div>Right</div>
+ </core-layout>
+
+ Renders something like this:
+
+ ---------------------------------
+ |-------------------------------|
+ ||Left| Main |Right||
+ |-------------------------------|
+ ---------------------------------
+
+__Note__: the `core-layout` element applies layout to itself if it has children or to
+its parent element, if it does not. This feature allows you to apply layout to an
+arbitrary parent.
+
+Elements can layout horizontally, such that their items stack
+left to right or vertically, such that their items stack top to bottom. The
+default is horizontal. Set `vertical` to true to layout the elements vertically.
+
+To make a particular child _flexible_, use the `core-flex` attribute.
+You can control flexibility from 1 to 3 by giving the attribute a
+corresponding value. For other values, apply the css manually.
+
+It's common in flexbox parlance to hear the terms _main axis_ and _cross axis_.
+For a horizontal layout the main axis is horizontal and the cross axis is vertical.
+These are exchanged for a vertical layout.
+
+To effect alignment in the main axis, use the `justify` attribute. The
+supported values are `start`, `center`, `end`, and `between`.
+
+To effect alignment in the cross axis, use the `align` attribute. The
+supported values are `start`, `center`, and `end`.
+
+Note, it's also possible to include the `core-layout.css` stylesheet separate
+from the `core-layout` element. Including the element automatically includes
+the stylesheet. To use the stylesheet independent of the element, css classes
+should be used of the following form: `core-h`, `core-v`, `core-flex`,
+`core-justify-start`, and `core-align-start`.
+
+The `core-layout` and css file also provide a few commonly needed layout
+behaviors. Apply the `core-fit` class to fit an element to its container. To
+ensure a container will contain an element inside it with the `core-fit` class
+give it the `core-relative` class.
+
+More examples:
+
+ <core-layout vertical>
+
+ <div>Header</div>
+ <div core-flex>Body</div>
+ <div>Footer</div>
+
+ </core-layout>
+
+ ----------
+ ||------||
+ ||Header||
+ ||------||
+ ||Body ||
+ || ||
+ || ||
+ || ||
+ || ||
+ || ||
+ || ||
+ ||------||
+ ||Footer||
+ ||------||
+ ----------
+
+Justify:
+
+ <core-layout justify="end">
+ <div core-flex>Left</div>
+ <div>Main</div>
+ <div>Right</div>
+ </core-layout>
+
+ ---------------------------------
+ |-------------------------------|
+ || Left|Main|Right||
+ |-------------------------------|
+ ---------------------------------
+
+Align:
+
+ <core-layout align="center">
+ <div>Left</div>
+ <div core-flex>Main</div>
+ <div>Right</div>
+ </core-layout>
+
+ ---------------------------------
+ |-------------------------------|
+ || | | ||
+ ||Left| Main |Right||
+ || | | ||
+ |-------------------------------|
+ ---------------------------------
+
+
+To layout contents of a parent element, place a `core-layout` inside of it:
+
+ <some-element>
+ <core-layout></core-layout>
+ <div>Left</div>
+ <div core-flex>Main</div>
+ <div>Right</div>
+ <some-element>
+
+ ---------------------------------
+ |-------------------------------|
+ ||Left| Main |Right||
+ |-------------------------------|
+ ---------------------------------
+
+You may also use the `core-layout` stylesheet directly:
+
+ <link rel="stylesheet" href="../core-layout/core-layout.css">
+ <div class="core-h core-justify-end">
+ <div core-flex>Left</div>
+ <div>Main</div>
+ <div>Right</div>
+ </div>
+
+ ---------------------------------
+ |-------------------------------|
+ || Left|Main|Right||
+ |-------------------------------|
+ ---------------------------------
+
+@group Polymer Core Elements
+@element core-layout
+
+-->
+<link rel="import" href="../polymer/polymer.html">
+
+<polymer-element name="core-layout" attributes="vertical justify align isContainer reverse" assetpath="../core-layout/">
+
+ <template>
+
+ <style no-shim="">/*
+Copyright 2013 The Polymer Authors. All rights reserved.
+Use of this source code is governed by a BSD-style
+license that can be found in the LICENSE file.
+*/
+
+.core-h, .core-v {
+ display: -webkit-box !important;
+ display: -ms-flexbox !important;
+ display: -moz-flex !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+}
+
+.core-h {
+ -webkit-box-orient: horizontal;
+ -ms-flex-direction: row;
+ -moz-flex-direction: row;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+}
+
+.core-h.core-reverse {
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ -moz-flex-direction: row-reverse;
+ -webkit-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+}
+
+.core-v {
+ -webkit-box-orient: vertical;
+ -ms-flex-direction: column;
+ -moz-flex-direction: column;
+ -webkit-flex-direction: column;
+ flex-direction: column;
+}
+
+.core-v.core-reverse {
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: column-reverse;
+ -moz-flex-direction: column-reverse;
+ -webkit-flex-direction: column-reverse;
+ flex-direction: column-reverse;
+}
+
+.core-relative {
+ position: relative;
+}
+
+.core-fit {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+}
+
+body.core-fit {
+ margin: 0;
+}
+
+.core-flex, [core-flex] {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ -moz-flex: 1;
+ -webkit-flex: 1;
+ flex: 1;
+}
+
+.core-flex-auto, [core-flex-auto] {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 1 auto;
+ -moz-flex: 1 1 auto;
+ -webkit-flex: 1 1 auto;
+ flex: 1 1 auto;
+}
+
+.core-flex-none, [core-flex-none] {
+ -webkit-box-flex: none;
+ -ms-flex: none;
+ -moz-flex: none;
+ -webkit-flex: none;
+ flex: none;
+}
+
+.core-flex1, [core-flex=1] {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ -moz-flex: 1;
+ -webkit-flex: 1;
+ flex: 1;
+}
+
+.core-flex2, [core-flex=2] {
+ -webkit-box-flex: 2;
+ -ms-flex: 2;
+ -moz-flex: 2;
+ -webkit-flex: 2;
+ flex: 2;
+}
+
+.core-flex3, [core-flex=3] {
+ -webkit-box-flex: 3;
+ -ms-flex: 3;
+ -moz-flex: 3;
+ -webkit-flex: 3;
+ flex: 3;
+}
+
+/* distributed elements */
+::content > .core-flex, ::content > [core-flex] {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ -moz-flex: 1;
+ -webkit-flex: 1;
+ flex: 1;
+}
+
+::content > .core-flex-auto, ::content > [core-flex-auto] {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 1 auto;
+ -moz-flex: 1 1 auto;
+ -webkit-flex: 1 1 auto;
+ flex: 1 1 auto;
+}
+
+::content > .core-flex-none, ::content > [core-flex-none] {
+ -webkit-box-flex: none;
+ -ms-flex: none;
+ -moz-flex: none;
+ -webkit-flex: none;
+ flex: none;
+}
+
+::content > .core-flex1, ::content > [core-flex=1] {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ -moz-flex: 1;
+ -webkit-flex: 1;
+ flex: 1;
+}
+
+::content > .core-flex2, ::content > [core-flex=2] {
+ -webkit-box-flex: 2;
+ -ms-flex: 2;
+ -moz-flex: 2;
+ -webkit-flex: 2;
+ flex: 2;
+}
+
+::content > .core-flex3, ::content > [core-flex=3] {
+ -webkit-box-flex: 3;
+ -ms-flex: 3;
+ -moz-flex: 3;
+ -webkit-flex: 3;
+ flex: 3;
+}
+
+/* alignment in main axis */
+.core-justify-start {
+ -webkit-box-pack: start;
+ -ms-flex-pack: start;
+ -moz-justify-content: flex-start;
+ -webkit-justify-content: flex-start;
+ justify-content: flex-start;
+}
+
+.core-justify-center {
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -moz-justify-content: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+}
+
+.core-justify-end {
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ -moz-justify-content: flex-end;
+ -webkit-justify-content: flex-end;
+ justify-content: flex-end;
+}
+
+.core-justify-between {
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ -moz-justify-content: space-between;
+ -webkit-justify-content: space-between;
+ justify-content: space-between;
+}
+
+/* alignment in cross axis */
+.core-align-start {
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ -moz-align-items: flex-start;
+ -webkit-align-items: flex-start;
+ align-items: flex-start;
+}
+
+.core-align-center {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ -moz-align-items: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+
+.core-align-end {
+ -webkit-box-align: end;
+ -ms-flex-align: end;
+ -moz-align-items: flex-end;
+ -webkit-align-items: flex-end;
+ align-items: flex-end;
+}
+</style>
+ <style no-shim="">/*
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+:host {
+ display: -webkit-box !important;
+ display: -ms-flexbox !important;
+ display: -moz-flex !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+}
+
+:host(.core-h) {
+ -webkit-box-orient: horizontal;
+ -ms-flex-direction: row;
+ -moz-flex-direction: row;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+}
+
+:host(.core-v) {
+ -webkit-box-orient: vertical;
+ -ms-flex-direction: column;
+ -moz-flex-direction: column;
+ -webkit-flex-direction: column;
+ flex-direction: column;
+}
+
+:host(.core-h.core-reverse) {
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ -moz-flex-direction: row-reverse;
+ -webkit-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+}
+
+:host(.core-v.core-reverse) {
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: column-reverse;
+ -moz-flex-direction: column-reverse;
+ -webkit-flex-direction: column-reverse;
+ flex-direction: column-reverse;
+}
+
+/* alignment in main axis */
+:host(.core-justify-start) {
+ -webkit-box-pack: start;
+ -ms-flex-pack: start;
+ -moz-justify-content: flex-start;
+ -webkit-justify-content: flex-start;
+ justify-content: flex-start;
+}
+
+:host(.core-justify-center) {
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -moz-justify-content: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+}
+
+:host(.core-justify-end) {
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ -moz-justify-content: flex-end;
+ -webkit-justify-content: flex-end;
+ justify-content: flex-end;
+}
+
+:host(.core-justify-between) {
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ -moz-justify-content: space-between;
+ -webkit-justify-content: space-between;
+ justify-content: space-between;
+}
+
+/* alignment in cross axis */
+:host(.core-align-start) {
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ -moz-align-items: flex-start;
+ -webkit-align-items: flex-start;
+ align-items: flex-start;
+}
+
+:host(.core-align-center) {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ -moz-align-items: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+
+:host(.core-align-end) {
+ -webkit-box-align: end;
+ -ms-flex-align: end;
+ -moz-align-items: flex-end;
+ -webkit-align-items: flex-end;
+ align-items: flex-end;
+}
+</style>
+
+ </template>
+
+ <script>
+
+ (function() {
+
+ Polymer('core-layout', {
+
+ isContainer: false,
+ /**
+ * Controls if the element lays out vertically or not.
+ *
+ * @attribute vertical
+ * @type boolean
+ * @default false
+ */
+ vertical: false,
+ /**
+ * Controls how the items are aligned in the main-axis direction. For
+ * example for a horizontal layout, this controls how each item is aligned
+ * horizontally.
+ *
+ * @attribute justify
+ * @type string start|center|end|between
+ * @default ''
+ */
+ justify: '',
+ /**
+ * Controls how the items are aligned in cross-axis direction. For
+ * example for a horizontal layout, this controls how each item is aligned
+ * vertically.
+ *
+ * @attribute align
+ * @type string start|center|end
+ * @default ''
+ */
+ align: '',
+ /**
+ * Controls whether or not the items layout in reverse order.
+ *
+ * @attribute reverse
+ * @type boolean
+ * @default false
+ */
+ reverse: false,
+ layoutPrefix: 'core-',
+
+ // NOTE: include template so that styles are loaded, but remove
+ // so that we can decide dynamically what part to include
+ registerCallback: function(polymerElement) {
+ var template = polymerElement.querySelector('template');
+ this.styles = template.content.querySelectorAll('style').array();
+ this.styles.forEach(function(s) {
+ s.removeAttribute('no-shim');
+ })
+ },
+
+ fetchTemplate: function() {
+ return null;
+ },
+
+ attached: function() {
+ this.installScopeStyle(this.styles[0]);
+ if (this.children.length) {
+ this.isContainer = true;
+ }
+ var container = this.isContainer ? this : this.parentNode;
+ // detect if laying out a shadowRoot host.
+ var forHost = container instanceof ShadowRoot;
+ if (forHost) {
+ this.installScopeStyle(this.styles[1], 'host');
+ container = container.host || document.body;
+ }
+ this.layoutContainer = container;
+ },
+
+ detached: function() {
+ this.layoutContainer = null;
+ },
+
+ layoutContainerChanged: function(old) {
+ this.style.display = this.layoutContainer === this ? null : 'none';
+ this.verticalChanged();
+ this.alignChanged();
+ this.justifyChanged();
+ },
+
+ setLayoutClass: function(prefix, old, newValue) {
+ if (this.layoutContainer) {
+ prefix = this.layoutPrefix + prefix;
+ if (old) {
+ this.layoutContainer.classList.remove(prefix + old);
+ }
+ if (newValue) {
+ this.layoutContainer.classList.add(prefix + newValue);
+ }
+ }
+ },
+
+ verticalChanged: function(old) {
+ old = old ? 'v' : 'h';
+ var vertical = this.vertical ? 'v' : 'h';
+ this.setLayoutClass('', old, vertical);
+ },
+
+ alignChanged: function(old) {
+ this.setLayoutClass('align-', old, this.align);
+ },
+
+ justifyChanged: function(old) {
+ this.setLayoutClass('justify-', old, this.justify);
+ },
+
+ reverseChanged: function(old) {
+ old = old ? 'reverse' : '';
+ var newValue = this.reverse ? 'reverse' : '';
+ this.setLayoutClass('', old, newValue);
+ }
+
+ });
+
+ })();
+ </script>
+
+</polymer-element>
+
+
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<!--
+/**
+ * @group Polymer Core Elements
+ *
+ * The `core-iconset-svg` element allows users to define their own icon sets
+ * that contain svg icons. The svg icon elements should be children of the
+ * `core-iconset-svg` element. Multiple icons should be given distinct id's.
+ *
+ * Using svg elements to create icons has a few advantages over traditional
+ * bitmap graphics like jpg or png. Icons that use svg are vector based so they
+ * are resolution independent and should look good on any device. They are
+ * stylable via css. Icons can be themed, colorized, and even animated.
+ *
+ * Example:
+ *
+ * <core-iconset-svg id="my-svg-icons" iconSize="24">
+ * <svg>
+ * <defs>
+ * <g id="shape">
+ * <rect x="50" y="50" width="50" height="50" />
+ * <circle cx="50" cy="50" r="50" />
+ * </g>
+ * </defs>
+ * </svg>
+ * </core-iconset-svg>
+ *
+ * This will automatically register the icon set "my-svg-icons" to the iconset
+ * database. To use these icons from within another element, make a
+ * `core-iconset` element and call the `byId` method
+ * to retrieve a given iconset. To apply a particular icon inside an
+ * element use the `applyIcon` method. For example:
+ *
+ * iconset.applyIcon(iconNode, 'car');
+ *
+ * @element core-iconset-svg
+ * @extends core-meta
+ * @homepage github.io
+ */
+-->
+
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<!--
+/**
+ * @group Polymer Core Elements
+ *
+ * The `core-iconset` element allows users to define their own icon sets.
+ * The `src` property specifies the url of the icon image. Multiple icons may
+ * be included in this image and they may be organized into rows.
+ * The `icons` property is a space separated list of names corresponding to the
+ * icons. The names must be ordered as the icons are ordered in the icon image.
+ * Icons are expected to be square and are the size specified by the `iconSize`
+ * property. The `width` property corresponds to the width of the icon image
+ * and must be specified if icons are arranged into multiple rows in the image.
+ *
+ * All `core-iconset` elements are available for use by other `core-iconset`
+ * elements via a database keyed by id. Typically, an element author that wants
+ * to support a set of custom icons uses a `core-iconset` to retrieve
+ * and use another, user-defined iconset.
+ *
+ * Example:
+ *
+ * <core-iconset id="my-icons" src="my-icons.png" width="96" iconSize="24"
+ * icons="location place starta stopb bus car train walk">
+ * </core-iconset>
+ *
+ * This will automatically register the icon set "my-icons" to the iconset
+ * database. To use these icons from within another element, make a
+ * `core-iconset` element and call the `byId` method to retrieve a
+ * given iconset. To apply a particular icon to an element, use the
+ * `applyIcon` method. For example:
+ *
+ * iconset.applyIcon(iconNode, 'car');
+ *
+ * Themed icon sets are also supported. The `core-iconset` can contain child
+ * `property` elements that specify a theme with an offsetX and offsetY of the
+ * theme within the icon resource. For example.
+ *
+ * <core-iconset id="my-icons" src="my-icons.png" width="96" iconSize="24"
+ * icons="location place starta stopb bus car train walk">
+ * <property theme="special" offsetX="256" offsetY="24"></property>
+ * </core-iconset>
+ *
+ * Then a themed icon can be applied like this:
+ *
+ * iconset.applyIcon(iconNode, 'car', 'special');
+ *
+ * @element core-iconset
+ * @extends core-meta
+ * @homepage github.io
+ */
+-->
+
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<!--
+`core-meta` provides a method of constructing a self-organizing database.
+It is useful to collate element meta-data for things like catalogs and for
+designer.
+
+Example, an element folder has a `metadata.html` file in it, that contains a
+`core-meta`, something like this:
+
+ <core-meta id="my-element" label="My Element">
+ <property name="color" value="blue"></property>
+ </core-meta>
+
+An application can import as many of these files as it wants, and then use
+`core-meta` again to access the collected data.
+
+ <script>
+ var meta = document.createElement('core-meta');
+ console.log(meta.list); // dump a list of all meta-data elements that have been created
+ </script>
+
+Use `byId(id)` to retrive a specific core-meta.
+
+ <script>
+ var meta = document.createElement('core-meta');
+ console.log(meta.byId('my-element'));
+ </script>
+
+By default all meta-data are stored in a single databse. If your meta-data
+have different types and want them to be stored separately, use `type` to
+differentiate them.
+
+Example:
+
+ <core-meta id="x-foo" type="xElt"></core-meta>
+ <core-meta id="x-bar" type="xElt"></core-meta>
+ <core-meta id="y-bar" type="yElt"></core-meta>
+
+ <script>
+ var meta = document.createElement('core-meta');
+ meta.type = 'xElt';
+ console.log(meta.list);
+ </script>
+
+@group Polymer Core Elements
+@element core-meta
+@homepage github.io
+-->
+
+
+
+<polymer-element name="core-meta" attributes="list label type" hidden assetpath="../core-meta/">
+<script>
+
+ (function() {
+
+ var SKIP_ID = 'meta';
+ var metaData = {}, metaArray = {};
+
+ Polymer('core-meta', {
+
+ /**
+ * The type of meta-data. All meta-data with the same type with be
+ * stored together.
+ *
+ * @attribute type
+ * @type string
+ * @default 'default'
+ */
+ type: 'default',
+
+ alwaysPrepare: true,
+
+ ready: function() {
+ this.register(this.id);
+ },
+
+ get metaArray() {
+ var t = this.type;
+ if (!metaArray[t]) {
+ metaArray[t] = [];
+ }
+ return metaArray[t];
+ },
+
+ get metaData() {
+ var t = this.type;
+ if (!metaData[t]) {
+ metaData[t] = {};
+ }
+ return metaData[t];
+ },
+
+ register: function(id, old) {
+ if (id && id !== SKIP_ID) {
+ this.unregister(this, old);
+ this.metaData[id] = this;
+ this.metaArray.push(this);
+ }
+ },
+
+ unregister: function(meta, id) {
+ delete this.metaData[id || meta.id];
+ var i = this.metaArray.indexOf(meta);
+ if (i >= 0) {
+ this.metaArray.splice(i, 1);
+ }
+ },
+
+ /**
+ * Returns a list of all meta-data elements with the same type.
+ *
+ * @attribute list
+ * @type array
+ * @default []
+ */
+ get list() {
+ return this.metaArray;
+ },
+
+ /**
+ * Retrieves meta-data by ID.
+ *
+ * @method byId
+ * @param {String} id The ID of the meta-data to be returned.
+ * @returns Returns meta-data.
+ */
+ byId: function(id) {
+ return this.metaData[id];
+ }
+
+ });
+
+ })();
+
+</script>
+</polymer-element>
+
+
+<polymer-element name="core-iconset" extends="core-meta" attributes="src width icons iconSize" assetpath="../core-iconset/">
+
+ <script>
+
+ Polymer('core-iconset', {
+
+ /**
+ * The URL of the iconset image.
+ *
+ * @attribute src
+ * @type string
+ * @default ''
+ */
+ src: '',
+
+ /**
+ * The width of the iconset image. This must only be specified if the
+ * icons are arranged into separate rows inside the image.
+ *
+ * @attribute width
+ * @type string
+ * @default ''
+ */
+ width: 0,
+
+ /**
+ * A space separated list of names corresponding to icons in the iconset
+ * image file. This list must be ordered the same as the icon images
+ * in the image file.
+ *
+ * @attribute icons
+ * @type string
+ * @default ''
+ */
+ icons: '',
+
+ /**
+ * The size of an individual icon. Note that icons must be square.
+ *
+ * @attribute iconSize
+ * @type number
+ * @default 24
+ */
+ iconSize: 24,
+
+ /**
+ * The horizontal offset of the icon images in the inconset src image.
+ * This is typically used if the image resource contains additional images
+ * beside those intended for the iconset.
+ *
+ * @attribute offsetX
+ * @type number
+ * @default 0
+ */
+ offsetX: 0,
+ /**
+ * The vertical offset of the icon images in the inconset src image.
+ * This is typically used if the image resource contains additional images
+ * beside those intended for the iconset.
+ *
+ * @attribute offsetY
+ * @type number
+ * @default 0
+ */
+ offsetY: 0,
+ type: 'iconset',
+
+ created: function() {
+ this.iconMap = {};
+ this.iconNames = [];
+ this.themes = {};
+ },
+
+ ready: function() {
+ // TODO(sorvell): ensure iconset's src is always relative to the main
+ // document
+ if (this.src && (this.ownerDocument !== document)) {
+ this.src = this.resolvePath(this.src, this.ownerDocument.baseURI);
+ }
+ this.super();
+ this.updateThemes();
+ },
+
+ iconsChanged: function() {
+ var ox = this.offsetX;
+ var oy = this.offsetY;
+ this.icons && this.icons.split(/\s+/g).forEach(function(name, i) {
+ this.iconNames.push(name);
+ this.iconMap[name] = {
+ offsetX: ox,
+ offsetY: oy
+ }
+ if (ox + this.iconSize < this.width) {
+ ox += this.iconSize;
+ } else {
+ ox = this.offsetX;
+ oy += this.iconSize;
+ }
+ }, this);
+ },
+
+ updateThemes: function() {
+ var ts = this.querySelectorAll('property[theme]');
+ ts && ts.array().forEach(function(t) {
+ this.themes[t.getAttribute('theme')] = {
+ offsetX: parseInt(t.getAttribute('offsetX')) || 0,
+ offsetY: parseInt(t.getAttribute('offsetY')) || 0
+ };
+ }, this);
+ },
+
+ // TODO(ffu): support retrived by index e.g. getOffset(10);
+ /**
+ * Returns an object containing `offsetX` and `offsetY` properties which
+ * specify the pixel locaion in the iconset's src file for the given
+ * `icon` and `theme`. It's uncommon to call this method. It is useful,
+ * for example, to manually position a css backgroundImage to the proper
+ * offset. It's more common to use the `applyIcon` method.
+ *
+ * @method getOffset
+ * @param {String|Number} icon The name of the icon or the index of the
+ * icon within in the icon image.
+ * @param {String} theme The name of the theme.
+ * @returns {Object} An object specifying the offset of the given icon
+ * within the icon resource file; `offsetX` is the horizontal offset and
+ * `offsetY` is the vertical offset. Both values are in pixel units.
+ */
+ getOffset: function(icon, theme) {
+ var i = this.iconMap[icon];
+ if (!i) {
+ var n = this.iconNames[Number(icon)];
+ i = this.iconMap[n];
+ }
+ var t = this.themes[theme];
+ if (i && t) {
+ return {
+ offsetX: i.offsetX + t.offsetX,
+ offsetY: i.offsetY + t.offsetY
+ }
+ }
+ return i;
+ },
+
+ /**
+ * Applies an icon to the given element as a css background image. This
+ * method does not size the element, and it's often necessary to set
+ * the element's height and width so that the background image is visible.
+ *
+ * @method applyIcon
+ * @param {Element} element The element to which the background is
+ * applied.
+ * @param {String|Number} icon The name or index of the icon to apply.
+ * @param {String} theme (optional) The name of the theme for the icon.
+ * @param {Number} scale (optional, defaults to 1) A scaling factor
+ * with which the icon can be magnified.
+ */
+ applyIcon: function(element, icon, theme, scale) {
+ var offset = this.getOffset(icon, theme);
+ scale = scale || 1;
+ if (element && offset) {
+ var style = element.style;
+ style.backgroundImage = 'url(' + this.src + ')';
+ style.backgroundPosition = (-offset.offsetX * scale + 'px') +
+ ' ' + (-offset.offsetY * scale + 'px');
+ style.backgroundSize = scale === 1 ? 'auto' :
+ this.width * scale + 'px';
+ }
+ }
+
+ });
+
+ </script>
+
+</polymer-element>
+
+
+<polymer-element name="core-iconset-svg" extends="core-meta" attributes="iconSize" assetpath="../core-iconset-svg/">
+
+ <script>
+
+ Polymer('core-iconset-svg', {
+
+
+ /**
+ * The size of an individual icon. Note that icons must be square.
+ *
+ * @attribute iconSize
+ * @type number
+ * @default 24
+ */
+ iconSize: 24,
+ type: 'iconset',
+
+ iconById: function(id) {
+ return this.querySelector('#' + id);
+ },
+
+ cloneIcon: function(id) {
+ var icon = this.iconById(id);
+ if (icon) {
+ var content = icon.cloneNode(true);
+ var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ svg.setAttribute('viewBox', '0 0 ' + this.iconSize + ' ' +
+ this.iconSize);
+ // NOTE(dfreedm): work around https://crbug.com/370136
+ svg.style.pointerEvents = 'none';
+ svg.appendChild(content);
+ return svg;
+ }
+ },
+
+ get iconNames() {
+ if (!this._iconNames) {
+ this._iconNames = this.findIconNames();
+ }
+ return this._iconNames;
+ },
+
+ findIconNames: function() {
+ var icons = this.querySelectorAll('[id]').array();
+ if (icons.length) {
+ return icons.map(function(n){ return n.id });
+ }
+ },
+
+ /**
+ * Applies an icon to the given element. The svg icon is added to the
+ * element's shadowRoot if one exists or directly to itself.
+ *
+ * @method applyIcon
+ * @param {Element} element The element to which the icon is
+ * applied.
+ * @param {String|Number} icon The name the icon to apply.
+ */
+ applyIcon: function(element, icon) {
+ var root = element.shadowRoot || element;
+ // remove old
+ var old = root.querySelector('svg');
+ if (old) {
+ old.remove();
+ }
+ // install new
+ var svg = this.cloneIcon(icon);
+ if (!svg) {
+ return;
+ }
+ svg.style.height = svg.style.width = this.iconSize + 'px';
+ svg.style.verticalAlign = 'middle';
+ if (svg) {
+ root.insertBefore(svg, root.firstElementChild);
+ }
+ }
+ });
+
+ </script>
+
+</polymer-element>
+
+<core-iconset-svg id="icons" iconsize="24">
+<svg><defs>
+<g id="accessibility"><path d="M12,2c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M21,9h-6v13h-2v-6h-2v6H9V9H3V7h18V9z"></path></g>
+<g id="account-box"><path d="M3,5l0,14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2H5C3.9,3,3,3.9,3,5z M15,9c0,1.7-1.3,3-3,3c-1.7,0-3-1.3-3-3c0-1.7,1.3-3,3-3C13.7,6,15,7.3,15,9z M6,17c0-2,4-3.1,6-3.1s6,1.1,6,3.1v1H6V17z"></path></g>
+<g id="account-circle"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,5c1.7,0,3,1.3,3,3c0,1.7-1.3,3-3,3c-1.7,0-3-1.3-3-3C9,6.3,10.3,5,12,5z M12,19.2c-2.5,0-4.7-1.3-6-3.2c0-2,4-3.1,6-3.1c2,0,6,1.1,6,3.1C16.7,17.9,14.5,19.2,12,19.2z"></path></g>
+<g id="add"><path d="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z"></path></g>
+<g id="add-box"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M17,13h-4v4h-2v-4H7v-2h4V7h2v4h4V13z"></path></g>
+<g id="add-circle"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M17,13h-4v4h-2v-4H7v-2h4V7h2v4h4V13z"></path></g>
+<g id="add-circle-outline"><path d="M13,7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,12,20z"></path></g>
+<g id="apps"><path d="M4,8h4V4H4V8z M10,20h4v-4h-4V20z M4,20h4v-4H4V20z M4,14h4v-4H4V14z M10,14h4v-4h-4V14z M16,4v4h4V4H16z M10,8h4V4h-4V8z M16,14h4v-4h-4V14z M16,20h4v-4h-4V20z"></path></g>
+<g id="archive"><path d="M20.5,5.2l-1.4-1.7C18.9,3.2,18.5,3,18,3H6C5.5,3,5.1,3.2,4.8,3.5L3.5,5.2C3.2,5.6,3,6,3,6.5V19c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V6.5C21,6,20.8,5.6,20.5,5.2z M12,17.5L6.5,12H10v-2h4v2h3.5L12,17.5z M5.1,5l0.8-1h12l0.9,1H5.1z"></path></g>
+<g id="arrow-back"><path d="M20,11H7.8l5.6-5.6L12,4l-8,8l8,8l1.4-1.4L7.8,13H20V11z"></path></g>
+<g id="arrow-drop-down"><polygon points="7,10 12,15 17,10 "></polygon></g>
+<g id="arrow-drop-up"><polygon points="7,14 12,9 17,14 "></polygon></g>
+<g id="arrow-forward"><polygon points="12,4 10.6,5.4 16.2,11 4,11 4,13 16.2,13 10.6,18.6 12,20 20,12 "></polygon></g>
+<g id="attachment"><path d="M7.5,18c-3,0-5.5-2.5-5.5-5.5S4.5,7,7.5,7H18c2.2,0,4,1.8,4,4s-1.8,4-4,4H9.5C8.1,15,7,13.9,7,12.5S8.1,10,9.5,10H17v1.5H9.5c-0.6,0-1,0.4-1,1s0.4,1,1,1H18c1.4,0,2.5-1.1,2.5-2.5S19.4,8.5,18,8.5H7.5c-2.2,0-4,1.8-4,4s1.8,4,4,4H17V18H7.5z"></path></g>
+<g id="backspace"><path d="M22,3H7C6.3,3,5.8,3.3,5.4,3.9L0,12l5.4,8.1C5.8,20.6,6.3,21,7,21h15c1.1,0,2-0.9,2-2V5C24,3.9,23.1,3,22,3z M19,15.6L17.6,17L14,13.4L10.4,17L9,15.6l3.6-3.6L9,8.4L10.4,7l3.6,3.6L17.6,7L19,8.4L15.4,12L19,15.6z"></path></g>
+<g id="backup"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z M14,13v4h-4v-4H7l5-5l5,5H14z"></path></g>
+<g id="block"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M4,12c0-4.4,3.6-8,8-8c1.8,0,3.5,0.6,4.9,1.7L5.7,16.9C4.6,15.5,4,13.8,4,12z M12,20c-1.8,0-3.5-0.6-4.9-1.7L18.3,7.1C19.4,8.5,20,10.2,20,12C20,16.4,16.4,20,12,20z"></path></g>
+<g id="book"><path d="M18,22c1.1,0,2-0.9,2-2V4c0-1.1-0.9-2-2-2h-6v7L9.5,7.5L7,9V2H6C4.9,2,4,2.9,4,4v16c0,1.1,0.9,2,2,2H18z"></path></g>
+<g id="bookmark"><path d="M17,3H7C5.9,3,5,3.9,5,5l0,16l7-3l7,3V5C19,3.9,18.1,3,17,3z"></path></g>
+<g id="bookmark-outline"><path d="M17,3H7C5.9,3,5,3.9,5,5l0,16l7-3l7,3V5C19,3.9,18.1,3,17,3z M17,18l-5-2.2L7,18V5h10V18z"></path></g>
+<g id="bug-report"><path d="M20,8h-2.8c-0.5-0.8-1.1-1.5-1.8-2L17,4.4L15.6,3l-2.2,2.2C13,5.1,12.5,5,12,5s-1,0.1-1.4,0.2L8.4,3L7,4.4L8.6,6C7.9,6.5,7.3,7.2,6.8,8H4v2h2.1C6,10.3,6,10.7,6,11v1H4v2h2v1c0,0.3,0,0.7,0.1,1H4v2h2.8c1,1.8,3,3,5.2,3s4.2-1.2,5.2-3H20v-2h-2.1c0.1-0.3,0.1-0.7,0.1-1v-1h2v-2h-2v-1c0-0.3,0-0.7-0.1-1H20V8z M14,16h-4v-2h4V16z M14,12h-4v-2h4V12z"></path></g>
+<g id="cancel"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M17,15.6L15.6,17L12,13.4L8.4,17L7,15.6l3.6-3.6L7,8.4L8.4,7l3.6,3.6L15.6,7L17,8.4L13.4,12L17,15.6z"></path></g>
+<g id="check"><polygon points="9,16.2 4.8,12 3.4,13.4 9,19 21,7 19.6,5.6 "></polygon></g>
+<g id="check-box"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M10,17l-5-5l1.4-1.4l3.6,3.6l7.6-7.6L19,8L10,17z"></path></g>
+<g id="check-box-blank"><path d="M19,3H5C3.9,3,3,3.9,3,5l0,14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z"></path></g>
+<g id="check-box-outline"><path d="M7.9,10.1l-1.4,1.4L11,16L21,6l-1.4-1.4L11,13.2L7.9,10.1z M19,19L5,19V5h10V3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2v-8h-2V19z"></path></g>
+<g id="check-box-outline-blank"><path d="M19,5v14L5,19V5H19 M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3L19,3z"></path></g>
+<g id="check-circle"><path d="M12,2C6.5,2,2,6.5,2,12c0,5.5,4.5,10,10,10c5.5,0,10-4.5,10-10C22,6.5,17.5,2,12,2z M10,17l-5-5l1.4-1.4l3.6,3.6l7.6-7.6L19,8L10,17z"></path></g>
+<g id="check-circle-blank"><path d="M12,2C6.5,2,2,6.5,2,12c0,5.5,4.5,10,10,10c5.5,0,10-4.5,10-10C22,6.5,17.5,2,12,2z"></path></g>
+<g id="check-circle-outline"><path d="M7.9,10.1l-1.4,1.4L11,16L21,6l-1.4-1.4L11,13.2L7.9,10.1z M20,12c0,4.4-3.6,8-8,8s-8-3.6-8-8s3.6-8,8-8c0.8,0,1.5,0.1,2.2,0.3l1.6-1.6C14.6,2.3,13.3,2,12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10H20z"></path></g>
+<g id="check-circle-outline-blank"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,12,20z"></path></g>
+<g id="chevron-left"><polygon points="15.4,7.4 14,6 8,12 14,18 15.4,16.6 10.8,12 "></polygon></g>
+<g id="chevron-right"><polygon points="10,6 8.6,7.4 13.2,12 8.6,16.6 10,18 16,12 "></polygon></g>
+<g id="clear"><polygon points="19,6.4 17.6,5 12,10.6 6.4,5 5,6.4 10.6,12 5,17.6 6.4,19 12,13.4 17.6,19 19,17.6 13.4,12 "></polygon></g>
+<g id="close"><polygon points="19,6.4 17.6,5 12,10.6 6.4,5 5,6.4 10.6,12 5,17.6 6.4,19 12,13.4 17.6,19 19,17.6 13.4,12 "></polygon></g>
+<g id="cloud"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z"></path></g>
+<g id="cloud-done"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z M10,17l-3.5-3.5l1.4-1.4l2.1,2.1L15.2,9l1.4,1.4L10,17z"></path></g>
+<g id="cloud-download"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z M17,13l-5,5l-5-5h3V9h4v4H17z"></path></g>
+<g id="cloud-off"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6c-1.5,0-2.9,0.4-4,1.2l1.5,1.5C10.2,6.2,11.1,6,12,6c3,0,5.5,2.5,5.5,5.5V12H19c1.7,0,3,1.3,3,3c0,1.1-0.6,2.1-1.6,2.6l1.5,1.5c1.3-0.9,2.1-2.4,2.1-4.1C24,12.4,21.9,10.2,19.4,10z M3,5.3L5.8,8C2.6,8.2,0,10.8,0,14c0,3.3,2.7,6,6,6h11.7l2,2l1.3-1.3L4.3,4L3,5.3z M7.7,10l8,8H6c-2.2,0-4-1.8-4-4c0-2.2,1.8-4,4-4H7.7z"></path></g>
+<g id="cloud-queue"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z M19,18H6c-2.2,0-4-1.8-4-4c0-2.2,1.8-4,4-4h0.7C7.4,7.7,9.5,6,12,6c3,0,5.5,2.5,5.5,5.5V12H19c1.7,0,3,1.3,3,3S20.7,18,19,18z"></path></g>
+<g id="cloud-upload"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z M14,13v4h-4v-4H7l5-5l5,5H14z"></path></g>
+<g id="content-copy"><path d="M19,2h-4.2c-0.4-1.2-1.5-2-2.8-2c-1.3,0-2.4,0.8-2.8,2H5C3.9,2,3,2.9,3,4v16c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V4C21,2.9,20.1,2,19,2z M12,2c0.6,0,1,0.4,1,1s-0.4,1-1,1c-0.6,0-1-0.4-1-1S11.4,2,12,2z M19,20H5V4h2v3h10V4h2V20z"></path></g>
+<g id="content-cut"><path d="M10,6c0-2.2-1.8-4-4-4S2,3.8,2,6c0,2.2,1.8,4,4,4c0.6,0,1.1-0.1,1.6-0.4L10,12l-2.4,2.4C7.1,14.1,6.6,14,6,14c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4s4-1.8,4-4c0-0.6-0.1-1.1-0.4-1.6L12,14l7,7h4L9.6,7.6C9.9,7.1,10,6.6,10,6z M6,8C4.9,8,4,7.1,4,6s0.9-2,2-2c1.1,0,2,0.9,2,2S7.1,8,6,8z M6,20c-1.1,0-2-0.9-2-2s0.9-2,2-2c1.1,0,2,0.9,2,2S7.1,20,6,20z M12,11.5c0.3,0,0.5,0.2,0.5,0.5c0,0.3-0.2,0.5-0.5,0.5c-0.3,0-0.5-0.2-0.5-0.5C11.5,11.7,11.7,11.5,12,11.5z M23,3h-4l-6,6l2,2L23,3z"></path></g>
+<g id="content-paste"><path d="M16,1H4C2.9,1,2,1.9,2,3v14h2V3h12V1z M19,5H8C6.9,5,6,5.9,6,7v14c0,1.1,0.9,2,2,2h11c1.1,0,2-0.9,2-2V7C21,5.9,20.1,5,19,5z M19,21H8V7h11V21z"></path></g>
+<g id="create"><path d="M3,17.2V21h3.8L17.8,9.9l-3.8-3.8L3,17.2z M20.7,7c0.4-0.4,0.4-1,0-1.4l-2.3-2.3c-0.4-0.4-1-0.4-1.4,0l-1.8,1.8l3.8,3.8L20.7,7z"></path></g>
+<g id="credit-card"><path d="M20,4H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V6C22,4.9,21.1,4,20,4z M20,18H4v-6h16V18z M20,8H4V6h16V8z"></path></g>
+<g id="delete"><path d="M6,19c0,1.1,0.9,2,2,2h8c1.1,0,2-0.9,2-2V7H6V19z M19,4h-3.5l-1-1h-5l-1,1H5v2h14V4z"></path></g>
+<g id="done"><polygon points="9,16.2 4.8,12 3.4,13.4 9,19 21,7 19.6,5.6 "></polygon></g>
+<g id="done-all"><path d="M18,7l-1.4-1.4l-6.3,6.3l1.4,1.4L18,7z M22.2,5.6L11.7,16.2L7.5,12l-1.4,1.4l5.6,5.6l12-12L22.2,5.6z M0.4,13.4L6,19l1.4-1.4L1.8,12L0.4,13.4z"></path></g>
+<g id="drafts"><path d="M22,8c0-0.7-0.4-1.3-0.9-1.7L12,1L2.9,6.3C2.4,6.7,2,7.3,2,8v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2L22,8z M12,13L3.7,7.8L12,3l8.3,4.8L12,13z"></path></g>
+<g id="drive-document"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M17,9H7V7h10V9z M17,13H7v-2h10V13z M14,17H7v-2h7V17z"></path></g>
+<g id="drive-drawing"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M18,18h-6v-5.8c-0.7,0.6-1.5,1-2.5,1c-2,0-3.7-1.7-3.7-3.7s1.7-3.7,3.7-3.7c2,0,3.7,1.7,3.7,3.7c0,1-0.4,1.8-1,2.5H18V18z"></path></g>
+<g id="drive-file"><path d="M6,2C4.9,2,4,2.9,4,4l0,16c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V8l-6-6H6z M13,9V3.5L18.5,9H13z"></path></g>
+<g id="drive-form"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M9,17H7v-2h2V17z M9,13H7v-2h2V13z M9,9H7V7h2V9z M17,17h-7v-2h7V17z M17,13h-7v-2h7V13z M17,9h-7V7h7V9z"></path></g>
+<g id="drive-fusiontable"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,10.2L13,17l-4-4l-4,4v-3l4-4l4,4l6-6.8V10.2z"></path></g>
+<g id="drive-image"><path d="M21,19V5c0-1.1-0.9-2-2-2H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14C20.1,21,21,20.1,21,19z M8.5,13.5l2.5,3l3.5-4.5l4.5,6H5L8.5,13.5z"></path></g>
+<g id="drive-ms-excel"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M16.2,17h-2L12,13.2L9.8,17h-2l3.2-5L7.8,7h2l2.2,3.8L14.2,7h2L13,12L16.2,17z"></path></g>
+<g id="drive-ms-powerpoint"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M9.8,13.4V17H8V7h4.3c1.5,0,2.2,0.3,2.8,0.9c0.7,0.6,0.9,1.4,0.9,2.3c0,1-0.3,1.8-0.9,2.3c-0.6,0.5-1.3,0.8-2.8,0.8H9.8z"></path><path d="M9.8,12V8.4h2.3c0.7,0,1.2,0.2,1.5,0.6c0.3,0.4,0.5,0.7,0.5,1.2c0,0.6-0.2,0.9-0.5,1.3c-0.3,0.3-0.7,0.5-1.4,0.5H9.8z"></path></g>
+<g id="drive-ms-word"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M15.5,17H14l-2-7.5L10,17H8.5L6.1,7h1.7l1.5,7.5l2-7.5h1.4l2,7.5L16.2,7h1.7L15.5,17z"></path></g>
+<g id="drive-pdf"><path d="M11.3,8.6L11.3,8.6C11.4,8.6,11.4,8.6,11.3,8.6c0.1-0.4,0.2-0.6,0.2-0.9l0-0.2c0.1-0.5,0.1-0.9,0-1c0,0,0,0,0-0.1l-0.1-0.1c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0.1-0.1,0.1C11.1,7,11.1,7.7,11.3,8.6C11.3,8.6,11.3,8.6,11.3,8.6z M8.3,15.5c-0.2,0.1-0.4,0.2-0.5,0.3c-0.7,0.6-1.2,1.3-1.3,1.6c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0C7.1,17.3,7.7,16.7,8.3,15.5C8.4,15.5,8.4,15.5,8.3,15.5C8.4,15.5,8.3,15.5,8.3,15.5z M17.5,14c-0.1-0.1-0.5-0.4-1.9-0.4c-0.1,0-0.1,0-0.2,0c0,0,0,0,0,0c0,0,0,0,0,0.1c0.7,0.3,1.4,0.5,1.9,0.5c0.1,0,0.1,0,0.2,0l0,0c0,0,0.1,0,0.1,0c0,0,0,0,0-0.1c0,0,0,0,0,0C17.6,14.1,17.5,14.1,17.5,14z M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M17.9,14.8C17.7,14.9,17.4,15,17,15c-0.8,0-2-0.2-3-0.7c-1.7,0.2-3,0.4-4,0.8c-0.1,0-0.1,0-0.2,0.1c-1.2,2.1-2.2,3.1-3,3.1c-0.2,0-0.3,0-0.4-0.1l-0.5-0.3l0-0.1c-0.1-0.2-0.1-0.3-0.1-0.5c0.1-0.5,0.7-1.4,1.9-2.1c0.2-0.1,0.5-0.3,0.9-0.5c0.3-0.5,0.6-1.1,1-1.8c0.5-1,0.8-2,1.1-2.9l0,0c-0.4-1.2-0.6-1.9-0.2-3.3c0.1-0.4,0.4-0.8,0.8-0.8l0.2,0c0.2,0,0.4,0.1,0.6,0.2c0.7,0.7,0.4,2.3,0,3.6c0,0.1,0,0.1,0,0.1c0.4,1.1,1,2,1.6,2.6c0.3,0.2,0.5,0.4,0.9,0.6c0.5,0,0.9-0.1,1.3-0.1c1.2,0,2,0.2,2.3,0.7c0.1,0.2,0.1,0.4,0.1,0.6C18.2,14.3,18.1,14.6,17.9,14.8z M11.4,10.9c-0.2,0.7-0.6,1.5-1,2.4c-0.2,0.4-0.4,0.7-0.6,1.1c0,0,0.1,0,0.1,0l0.1,0v0c1.3-0.5,2.5-0.8,3.3-0.9c-0.2-0.1-0.3-0.2-0.4-0.3C12.4,12.6,11.8,11.8,11.4,10.9z"></path></g>
+<g id="drive-presentation"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,16H5V8h14V16z"></path></g>
+<g id="drive-script"><path d="M19,3H5C3.9,3,3,3.9,3,5l0,4h0v6h0l0,4c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M11,17v-3H5v-4h6V7l5,5L11,17z"></path></g>
+<g id="drive-site"><path d="M19,4H5C3.9,4,3,4.9,3,6l0,12c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V6C21,4.9,20.1,4,19,4z M14,18H5v-4h9V18z M14,13H5V9h9V13z M19,18h-4V9h4V18z"></path></g>
+<g id="drive-spreadsheet"><path d="M19,3H5C3.9,3,3,3.9,3,5l0,3h0v11c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,11h-8v8H9v-8H5V9h4V5h2v4h8V11z"></path></g>
+<g id="drive-video"><path d="M18,4l2,4h-3l-2-4h-2l2,4h-3l-2-4H8l2,4H7L5,4H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V4H18z"></path></g>
+<g id="error"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M13,17h-2v-2h2V17z M13,13h-2V7h2V13z"></path></g>
+<g id="event"><path d="M17,12h-5v5h5V12z M16,1v2H8V1H6v2H5C3.9,3,3,3.9,3,5l0,14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-1V1H16z M19,19H5V8h14V19z"></path></g>
+<g id="exit-to-app"><path d="M10.1,15.6l1.4,1.4l5-5l-5-5l-1.4,1.4l2.6,2.6H3v2h9.7L10.1,15.6z M19,3H5C3.9,3,3,3.9,3,5v4h2V5h14v14H5v-4H3v4c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z"></path></g>
+<g id="expand-less"><polygon points="12,8 6,14 7.4,15.4 12,10.8 16.6,15.4 18,14 "></polygon></g>
+<g id="expand-more"><polygon points="16.6,8.6 12,13.2 7.4,8.6 6,10 12,16 18,10 "></polygon></g>
+<g id="explore"><path d="M12,10.9c-0.6,0-1.1,0.5-1.1,1.1s0.5,1.1,1.1,1.1c0.6,0,1.1-0.5,1.1-1.1S12.6,10.9,12,10.9z M12,2C6.5,2,2,6.5,2,12c0,5.5,4.5,10,10,10c5.5,0,10-4.5,10-10C22,6.5,17.5,2,12,2z M14.2,14.2L6,18l3.8-8.2L18,6L14.2,14.2z"></path></g>
+<g id="extension"><path d="M20.5,11H19V7c0-1.1-0.9-2-2-2h-4V3.5C13,2.1,11.9,1,10.5,1C9.1,1,8,2.1,8,3.5V5H4C2.9,5,2,5.9,2,7l0,3.8h1.5c1.5,0,2.7,1.2,2.7,2.7S5,16.2,3.5,16.2H2L2,20c0,1.1,0.9,2,2,2h3.8v-1.5c0-1.5,1.2-2.7,2.7-2.7c1.5,0,2.7,1.2,2.7,2.7V22H17c1.1,0,2-0.9,2-2v-4h1.5c1.4,0,2.5-1.1,2.5-2.5S21.9,11,20.5,11z"></path></g>
+<g id="favorite"><path d="M12,21.4L10.6,20C5.4,15.4,2,12.3,2,8.5C2,5.4,4.4,3,7.5,3c1.7,0,3.4,0.8,4.5,2.1C13.1,3.8,14.8,3,16.5,3C19.6,3,22,5.4,22,8.5c0,3.8-3.4,6.9-8.6,11.5L12,21.4z"></path></g>
+<g id="favorite-outline"><path d="M16.5,3c-1.7,0-3.4,0.8-4.5,2.1C10.9,3.8,9.2,3,7.5,3C4.4,3,2,5.4,2,8.5c0,3.8,3.4,6.9,8.6,11.5l1.4,1.3l1.4-1.3c5.1-4.7,8.6-7.8,8.6-11.5C22,5.4,19.6,3,16.5,3z M12.1,18.6L12,18.6l-0.1-0.1C7.1,14.2,4,11.4,4,8.5C4,6.5,5.5,5,7.5,5c1.5,0,3,1,3.6,2.4h1.9C13.5,6,15,5,16.5,5c2,0,3.5,1.5,3.5,3.5C20,11.4,16.9,14.2,12.1,18.6z"></path></g>
+<g id="file-download"><path d="M19,9h-4V3H9v6H5l7,7L19,9z M5,18v2h14v-2H5z"></path></g>
+<g id="file-upload"><polygon points="9,16 15,16 15,10 19,10 12,3 5,10 9,10 "><rect x="5" y="18" width="14" height="2"></rect></polygon></g>
+<g id="filter"><path d="M10,18h4v-2h-4V18z M3,6v2h18V6H3z M6,13h12v-2H6V13z"></path></g>
+<g id="flag"><polygon points="14.4,6 14,4 5,4 5,21 7,21 7,14 12.6,14 13,16 20,16 20,6 "></polygon></g>
+<g id="flip-to-back"><path d="M9,7H7l0,2h2V7z M9,11H7v2h2V11z M9,3C7.9,3,7,3.9,7,5h2V3z M13,15h-2v2h2V15z M19,3v2h2C21,3.9,20.1,3,19,3z M13,3h-2v2h2V3z M9,17v-2H7C7,16.1,7.9,17,9,17z M19,13h2v-2h-2V13z M19,9h2V7h-2V9z M19,17c1.1,0,2-0.9,2-2h-2V17z M5,7H3v2h0l0,10c0,1.1,0.9,2,2,2h12v-2H5V7z M15,5h2V3h-2V5z M15,17h2v-2h-2V17z"></path></g>
+<g id="flip-to-front"><path d="M3,13h2v-2H3L3,13z M3,17h2v-2H3V17z M5,21v-2H3C3,20.1,3.9,21,5,21z M3,9h2V7H3V9z M15,21h2v-2h-2V21z M19,3H9C7.9,3,7,3.9,7,5v2h0v2v6c0,1.1,0.9,2,2,2h5h4h1c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,15H9V5h10V15z M11,21h2v-2h-2V21z M7,21h2v-2H7V21z"></path></g>
+<g id="folder"><path d="M10,4H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8c0-1.1-0.9-2-2-2h-8L10,4z"></path></g>
+<g id="folder-shared"><path d="M20,6h-8l-2-2H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8C22,6.9,21.1,6,20,6z M15,9c1.1,0,2,0.9,2,2c0,1.1-0.9,2-2,2c-1.1,0-2-0.9-2-2C13,9.9,13.9,9,15,9z M19,17h-8v-1c0-1.3,2.7-2,4-2c1.3,0,4,0.7,4,2V17z"></path></g>
+<g id="forward"><polygon points="12,8 12,4 20,12 12,20 12,16 4,16 4,8 "></polygon></g>
+<g id="fullscreen"><path d="M7,14H5v5h5v-2H7V14z M5,10h2V7h3V5H5V10z M17,17h-3v2h5v-5h-2V17z M14,5v2h3v3h2V5H14z"></path></g>
+<g id="fullscreen-exit"><path d="M5,16h3v3h2v-5H5V16z M8,8H5v2h5V5H8V8z M14,19h2v-3h3v-2h-5V19z M16,8V5h-2v5h5V8H16z"></path></g>
+<g id="gesture"><path d="M4.6,6.9C5.3,6.2,6,5.5,6.3,5.7c0.5,0.2,0,1-0.3,1.5c-0.3,0.4-2.9,3.9-2.9,6.3c0,1.3,0.5,2.3,1.3,3c0.8,0.6,1.7,0.7,2.6,0.5c1.1-0.3,1.9-1.4,3.1-2.8c1.2-1.5,2.8-3.4,4.1-3.4c1.6,0,1.6,1,1.8,1.8c-3.8,0.6-5.4,3.7-5.4,5.4c0,1.7,1.4,3.1,3.2,3.1c1.6,0,4.3-1.3,4.7-6.1H21v-2.5h-2.5c-0.2-1.6-1.1-4.2-4-4.2c-2.2,0-4.2,1.9-4.9,2.8c-0.6,0.7-2.1,2.5-2.3,2.7c-0.3,0.3-0.7,0.8-1.1,0.8c-0.4,0-0.7-0.8-0.4-1.9c0.4-1.1,1.4-2.9,1.9-3.5C8.4,8,8.9,7.2,8.9,5.9C8.9,3.7,7.3,3,6.4,3C5.1,3,4,4,3.7,4.3C3.4,4.6,3.1,4.9,2.8,5.2L4.6,6.9z M13.9,18.6c-0.3,0-0.7-0.3-0.7-0.7c0-0.6,0.7-2.2,2.9-2.8C15.7,17.8,14.6,18.6,13.9,18.6z"></path></g>
+<g id="google"><path d="M16.3,13.4l-1.1-0.8c-0.4-0.3-0.8-0.7-0.8-1.4c0-0.7,0.5-1.3,1-1.6c1.3-1,2.6-2.1,2.6-4.3c0-2.1-1.3-3.3-2-3.9h1.7L18.9,0h-6.2C8.3,0,6.1,2.8,6.1,5.8c0,2.3,1.8,4.8,5,4.8h0.8c-0.1,0.3-0.4,0.8-0.4,1.3c0,1,0.4,1.4,0.9,2c-1.4,0.1-4,0.4-5.9,1.6c-1.8,1.1-2.3,2.6-2.3,3.7c0,2.3,2.1,4.5,6.6,4.5c5.4,0,8-3,8-5.9C18.8,15.7,17.7,14.6,16.3,13.4z M8.7,4.3c0-2.2,1.3-3.2,2.7-3.2c2.6,0,4,3.5,4,5.5c0,2.6-2.1,3.1-2.9,3.1C10,9.7,8.7,6.6,8.7,4.3z M12.3,22.3c-3.3,0-5.4-1.5-5.4-3.7c0-2.2,2-2.9,2.6-3.2c1.3-0.4,3-0.5,3.3-0.5c0.3,0,0.5,0,0.7,0c2.4,1.7,3.4,2.4,3.4,4C16.9,20.8,15,22.3,12.3,22.3z"></path></g>
+<g id="google-plus"><path d="M21,10V7h-2v3h-3v2h3v3h2v-3h3v-2H21z M13.3,13.4l-1.1-0.8c-0.4-0.3-0.8-0.7-0.8-1.4c0-0.7,0.5-1.3,1-1.6c1.3-1,2.6-2.1,2.6-4.3c0-2.1-1.3-3.3-2-3.9h1.7L15.9,0H9.7C5.3,0,3.1,2.8,3.1,5.8c0,2.3,1.8,4.8,5,4.8h0.8c-0.1,0.3-0.4,0.8-0.4,1.3c0,1,0.4,1.4,0.9,2c-1.4,0.1-4,0.4-5.9,1.6c-1.8,1.1-2.3,2.6-2.3,3.7c0,2.3,2.1,4.5,6.6,4.5c5.4,0,8-3,8-5.9C15.8,15.7,14.7,14.6,13.3,13.4z M5.7,4.3c0-2.2,1.3-3.2,2.7-3.2c2.6,0,4,3.5,4,5.5c0,2.6-2.1,3.1-2.9,3.1C7,9.7,5.7,6.6,5.7,4.3z M9.3,22.3c-3.3,0-5.4-1.5-5.4-3.7c0-2.2,2-2.9,2.6-3.2c1.3-0.4,3-0.5,3.3-0.5c0.3,0,0.5,0,0.7,0c2.4,1.7,3.4,2.4,3.4,4C13.9,20.8,12,22.3,9.3,22.3z"></path></g>
+<g id="help"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M13,19h-2v-2h2V19z M15.1,11.3l-0.9,0.9C13.4,12.9,13,13.5,13,15h-2v-0.5c0-1.1,0.4-2.1,1.2-2.8l1.2-1.3C13.8,10.1,14,9.6,14,9c0-1.1-0.9-2-2-2c-1.1,0-2,0.9-2,2H8c0-2.2,1.8-4,4-4c2.2,0,4,1.8,4,4C16,9.9,15.6,10.7,15.1,11.3z"></path></g>
+<g id="history"><path opacity="0.9" d="M12.5,2C9,2,5.9,3.9,4.3,6.8L2,4.5V11h6.5L5.7,8.2C7,5.7,9.5,4,12.5,4c4.1,0,7.5,3.4,7.5,7.5c0,4.1-3.4,7.5-7.5,7.5c-3.3,0-6-2.1-7.1-5H3.3c1.1,4,4.8,7,9.2,7c5.3,0,9.5-4.3,9.5-9.5S17.7,2,12.5,2z M11,7v5.1l4.7,2.8l0.8-1.3l-4-2.4V7H11z"></path></g>
+<g id="home"><polygon points="10,20 10,14 14,14 14,20 19,20 19,12 22,12 12,3 2,12 5,12 5,20 "></polygon></g>
+<g id="https"><path d="M18,8h-1V6c0-2.8-2.2-5-5-5C9.2,1,7,3.2,7,6v2H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M12,17c-1.1,0-2-0.9-2-2s0.9-2,2-2c1.1,0,2,0.9,2,2S13.1,17,12,17z M15.1,8H8.9V6c0-1.7,1.4-3.1,3.1-3.1c1.7,0,3.1,1.4,3.1,3.1V8z"></path></g>
+<g id="inbox"><path d="M19,3H5C3.9,3,3,3.9,3,5l0,14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,15h-4c0,1.7-1.3,3-3,3c-1.7,0-3-1.3-3-3H5V5h14V15z M16,10h-2V7h-4v3H8l4,4L16,10z"></path></g>
+<g id="info"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M13,17h-2v-6h2V17z M13,9h-2V7h2V9z"></path></g>
+<g id="info-outline"><path d="M11,17h2v-6h-2V17z M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,12,20z M11,9h2V7h-2V9z"></path></g>
+<g id="keep"><path d="M16,12V4h1V2H7v2h1v8l-2,2v2h5.2v6h1.6v-6H18v-2L16,12z"></path></g>
+<g id="label"><path d="M17.6,5.8C17.3,5.3,16.7,5,16,5L5,5C3.9,5,3,5.9,3,7v10c0,1.1,0.9,2,2,2l11,0c0.7,0,1.3-0.3,1.6-0.8L22,12L17.6,5.8z"></path></g>
+<g id="label-outline"><path d="M17.6,5.8C17.3,5.3,16.7,5,16,5L5,5C3.9,5,3,5.9,3,7v10c0,1.1,0.9,2,2,2l11,0c0.7,0,1.3-0.3,1.6-0.8L22,12L17.6,5.8z M16,17H5V7h11l3.5,5L16,17z"></path></g>
+<g id="language"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M18.9,8H16c-0.3-1.3-0.8-2.4-1.4-3.6C16.4,5.1,18,6.3,18.9,8z M12,4c0.8,1.2,1.5,2.5,1.9,4h-3.8C10.5,6.6,11.2,5.2,12,4z M4.3,14C4.1,13.4,4,12.7,4,12s0.1-1.4,0.3-2h3.4c-0.1,0.7-0.1,1.3-0.1,2s0.1,1.3,0.1,2H4.3z M5.1,16H8c0.3,1.3,0.8,2.4,1.4,3.6C7.6,18.9,6,17.7,5.1,16z M8,8H5.1c1-1.7,2.5-2.9,4.3-3.6C8.8,5.6,8.3,6.7,8,8z M12,20c-0.8-1.2-1.5-2.5-1.9-4h3.8C13.5,17.4,12.8,18.8,12,20z M14.3,14H9.7c-0.1-0.7-0.2-1.3-0.2-2s0.1-1.3,0.2-2h4.7c0.1,0.7,0.2,1.3,0.2,2S14.4,13.3,14.3,14z M14.6,19.6c0.6-1.1,1.1-2.3,1.4-3.6h2.9C18,17.7,16.4,18.9,14.6,19.6z M16.4,14c0.1-0.7,0.1-1.3,0.1-2s-0.1-1.3-0.1-2h3.4c0.2,0.6,0.3,1.3,0.3,2s-0.1,1.4-0.3,2H16.4z"></path></g>
+<g id="launch"><path d="M19,19H5V5h7V3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2v-7h-2V19z M14,3v2h3.6l-9.8,9.8l1.4,1.4L19,6.4V10h2V3H14z"></path></g>
+<g id="link"><path d="M8,13h8v-2H8V13z M3.9,12c0-2.3,1.8-4.1,4.1-4.1h3V6H8c-3.3,0-6,2.7-6,6s2.7,6,6,6h3v-1.9H8C5.7,16.1,3.9,14.3,3.9,12z M16,6h-3v1.9h3c2.3,0,4.1,1.8,4.1,4.1c0,2.3-1.8,4.1-4.1,4.1h-3V18h3c3.3,0,6-2.7,6-6S19.3,6,16,6z"></path></g>
+<g id="list"><path d="M3,13h2v-2H3V13z M3,17h2v-2H3V17z M3,9h2V7H3V9z M7,13h14v-2H7V13z M7,17h14v-2H7V17z M7,7v2h14V7H7z"></path></g>
+<g id="lock"><path d="M18,8h-1V6c0-2.8-2.2-5-5-5C9.2,1,7,3.2,7,6v2H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M12,17c-1.1,0-2-0.9-2-2s0.9-2,2-2c1.1,0,2,0.9,2,2S13.1,17,12,17z M15.1,8H8.9V6c0-1.7,1.4-3.1,3.1-3.1c1.7,0,3.1,1.4,3.1,3.1V8z"></path></g>
+<g id="lock-open"><path d="M12,17c1.1,0,2-0.9,2-2s-0.9-2-2-2c-1.1,0-2,0.9-2,2S10.9,17,12,17z M18,8h-1V6c0-2.8-2.2-5-5-5C9.2,1,7,3.2,7,6h1.9c0-1.7,1.4-3.1,3.1-3.1c1.7,0,3.1,1.4,3.1,3.1v2H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M18,20H6V10h12V20z"></path></g>
+<g id="lock-outline"><path d="M18,8h-1V6c0-2.8-2.2-5-5-5C9.2,1,7,3.2,7,6v2H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M12,2.9c1.7,0,3.1,1.4,3.1,3.1v2H9V6H8.9C8.9,4.3,10.3,2.9,12,2.9z M18,20H6V10h12V20z M12,17c1.1,0,2-0.9,2-2s-0.9-2-2-2c-1.1,0-2,0.9-2,2S10.9,17,12,17z"></path></g>
+<g id="mail"><path d="M20,4H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V6C22,4.9,21.1,4,20,4z M20,8l-8,5L4,8V6l8,5l8-5V8z"></path></g>
+<g id="markunread"><path d="M22,6l2-2l-2-2l-2,2l-2-2l-2,2l-2-2l-2,2l-2-2L8,4L6,2L4,4L2,2L0,4l2,2L0,8l2,2l-2,2l2,2l-2,2l2,2l-2,2l2,2l2-2l2,2l2-2l2,2l2-2l2,2l2-2l2,2l2-2l2,2l2-2l-2-2l2-2l-2-2l2-2l-2-2l2-2L22,6z M20,8l-8,5L4,8V6l8,5l8-5V8z"></path></g>
+<g id="menu"><path d="M3,18h18v-2H3V18z M3,13h18v-2H3V13z M3,6v2h18V6H3z"></path></g>
+<g id="more-horiz"><path d="M6,10c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S7.1,10,6,10z M18,10c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S19.1,10,18,10z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S13.1,10,12,10z"></path></g>
+<g id="more-vert"><path d="M12,8c1.1,0,2-0.9,2-2s-0.9-2-2-2c-1.1,0-2,0.9-2,2S10.9,8,12,8z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S13.1,10,12,10z M12,16c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S13.1,16,12,16z"></path></g>
+<g id="print"><path d="M19,8H5c-1.7,0-3,1.3-3,3v6h4v4h12v-4h4v-6C22,9.3,20.7,8,19,8z M16,19H8v-5h8V19z M19,12c-0.6,0-1-0.4-1-1s0.4-1,1-1c0.6,0,1,0.4,1,1S19.6,12,19,12z M18,3H6v4h12V3z"></path></g>
+<g id="radio-button-off"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,12,20z"></path></g>
+<g id="radio-button-on"><path d="M12,7c-2.8,0-5,2.2-5,5s2.2,5,5,5c2.8,0,5-2.2,5-5S14.8,7,12,7z M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,12,20z"></path></g>…1 parent 1abc799 commit 91ee3f9Copy full SHA for 91ee3f9
File tree
31 files changed
+6392
-0
lines changedFilter options
- app/assets
- javascripts
- backbone
- models
- templates
- stylesheets
- bower_components
- core-component-page
- platform
- polymer
- config
- public
31 files changed
+6392
-0
lines changed.gitmodules
Copy file name to clipboard+3
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + |
+1
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
167 | 167 |
| |
168 | 168 |
| |
169 | 169 |
| |
| 170 | + |
+2
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
444 | 444 |
| |
445 | 445 |
| |
446 | 446 |
| |
| 447 | + | |
447 | 448 |
| |
448 | 449 |
| |
449 | 450 |
| |
| |||
665 | 666 |
| |
666 | 667 |
| |
667 | 668 |
| |
| 669 | + | |
668 | 670 |
| |
669 | 671 |
| |
670 | 672 |
| |
|
app/assets/javascripts/application.js
Copy file name to clipboardExpand all lines: app/assets/javascripts/application.js+2
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
30 | 30 |
| |
31 | 31 |
| |
32 | 32 |
| |
| 33 | + | |
| 34 | + | |
33 | 35 |
| |
34 | 36 |
| |
35 | 37 |
|
app/assets/javascripts/backbone/models/recorder.js.coffee
Copy file name to clipboardExpand all lines: app/assets/javascripts/backbone/models/recorder.js.coffee+9
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
5 | 5 |
| |
6 | 6 |
| |
7 | 7 |
| |
| 8 | + | |
| 9 | + | |
8 | 10 |
| |
9 | 11 |
| |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
10 | 19 |
| |
11 | 20 |
| |
12 | 21 |
| |
|
app/assets/javascripts/backbone/templates/pasokara_show_layout.jst.hamlc
Copy file name to clipboardExpand all lines: app/assets/javascripts/backbone/templates/pasokara_show_layout.jst.hamlc+1
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
1 | 2 |
| |
2 | 3 |
| |
3 | 4 |
| |
|
app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc
Copy file name to clipboard+3
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | 1 |
| |
2 | 2 |
| |
| 3 | + | |
| 4 | + | |
| 5 | + | |
3 | 6 |
| |
4 | 7 |
| |
5 | 8 |
|
app/assets/stylesheets/pasokaras.css.scss
Copy file name to clipboardExpand all lines: app/assets/stylesheets/pasokaras.css.scss+5
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
226 | 226 |
| |
227 | 227 |
| |
228 | 228 |
| |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
229 | 234 |
| |
230 | 235 |
| |
231 | 236 |
| |
|
bower_components/core-component-page/.bower.json
Copy file name to clipboard+19
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + |
bower_components/core-component-page/README.md
Copy file name to clipboard+6
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + |
bower_components/core-component-page/bowager-logo.png
Copy file name to clipboard5.04 KB
Loading
bower_components/core-component-page/bower.json
Copy file name to clipboard+8
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + |
0 commit comments