Index: third_party/polymer/components-chromium/paper-toast/paper-toast-extracted.js |
diff --git a/third_party/polymer/components-chromium/paper-toast/paper-toast-extracted.js b/third_party/polymer/components-chromium/paper-toast/paper-toast-extracted.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..11eb068803c47b4526fb4c1a0f160f85126602e4 |
--- /dev/null |
+++ b/third_party/polymer/components-chromium/paper-toast/paper-toast-extracted.js |
@@ -0,0 +1,169 @@ |
+ |
+ |
+ (function() { |
+ |
+ var currentToast; |
+ |
+ Polymer('paper-toast', { |
+ |
+ /** |
+ * The text shows in a toast. |
+ * |
+ * @attribute text |
+ * @type string |
+ * @default '' |
+ */ |
+ text: '', |
+ |
+ /** |
+ * The duration in milliseconds to show the toast. |
+ * |
+ * @attribute duration |
+ * @type number |
+ * @default 3000 |
+ */ |
+ duration: 3000, |
+ |
+ /** |
+ * Set opened to true to show the toast and to false to hide it. |
+ * |
+ * @attribute opened |
+ * @type boolean |
+ * @default false |
+ */ |
+ opened: false, |
+ |
+ /** |
+ * Min-width when the toast changes to narrow layout. In narrow layout, |
+ * the toast fits at the bottom of the screen when opened. |
+ * |
+ * @attribute responsiveWidth |
+ * @type string |
+ * @default '480px' |
+ */ |
+ responsiveWidth: '480px', |
+ |
+ /** |
+ * If true, the toast can't be swiped. |
+ * |
+ * @attribute swipeDisabled |
+ * @type boolean |
+ * @default false |
+ */ |
+ swipeDisabled: false, |
+ |
+ eventDelegates: { |
+ trackstart: 'trackStart', |
+ track: 'track', |
+ trackend: 'trackEnd', |
+ transitionend: 'transitionEnd' |
+ }, |
+ |
+ narrowModeChanged: function() { |
+ this.classList.toggle('fit-bottom', this.narrowMode); |
+ }, |
+ |
+ openedChanged: function() { |
+ if (this.opened) { |
+ this.dismissJob = this.job(this.dismissJob, this.dismiss, this.duration); |
+ } else { |
+ this.dismissJob && this.dismissJob.stop(); |
+ this.dismiss(); |
+ } |
+ }, |
+ |
+ /** |
+ * Toggle the opened state of the toast. |
+ * @method toggle |
+ */ |
+ toggle: function() { |
+ this.opened = !this.opened; |
+ }, |
+ |
+ /** |
+ * Show the toast for the specified duration |
+ * @method show |
+ */ |
+ show: function() { |
+ if (currentToast) { |
+ currentToast.dismiss(); |
+ } |
+ currentToast = this; |
+ this.opened = true; |
+ }, |
+ |
+ /** |
+ * Dismiss the toast and hide it. |
+ * @method dismiss |
+ */ |
+ dismiss: function() { |
+ if (this.dragging) { |
+ this.shouldDismiss = true; |
+ } else { |
+ this.opened = false; |
+ if (currentToast === this) { |
+ currentToast = null; |
+ } |
+ } |
+ }, |
+ |
+ trackStart: function(e) { |
+ if (!this.swipeDisabled) { |
+ e.preventTap(); |
+ this.vertical = e.yDirection; |
+ this.w = this.offsetWidth; |
+ this.h = this.offsetHeight; |
+ this.dragging = true; |
+ this.classList.add('dragging'); |
+ } |
+ }, |
+ |
+ track: function(e) { |
+ if (this.dragging) { |
+ var s = this.style; |
+ if (this.vertical) { |
+ var y = e.dy; |
+ s.opacity = (this.h - Math.abs(y)) / this.h; |
+ s.webkitTransform = s.transform = 'translate3d(0, ' + y + 'px, 0)'; |
+ } else { |
+ var x = e.dx; |
+ s.opacity = (this.w - Math.abs(x)) / this.w; |
+ s.webkitTransform = s.transform = 'translate3d(' + x + 'px, 0, 0)'; |
+ } |
+ } |
+ }, |
+ |
+ trackEnd: function(e) { |
+ if (this.dragging) { |
+ this.classList.remove('dragging'); |
+ this.style.opacity = null; |
+ this.style.webkitTransform = this.style.transform = null; |
+ var cl = this.classList; |
+ if (this.vertical) { |
+ cl.toggle('fade-out-down', e.yDirection === 1 && e.dy > 0); |
+ cl.toggle('fade-out-up', e.yDirection === -1 && e.dy < 0); |
+ } else { |
+ cl.toggle('fade-out-right', e.xDirection === 1 && e.dx > 0); |
+ cl.toggle('fade-out-left', e.xDirection === -1 && e.dx < 0); |
+ } |
+ this.dragging = false; |
+ } |
+ }, |
+ |
+ transitionEnd: function() { |
+ var cl = this.classList; |
+ if (cl.contains('fade-out-right') || cl.contains('fade-out-left') || |
+ cl.contains('fade-out-down') || cl.contains('fade-out-up')) { |
+ this.dismiss(); |
+ cl.remove('fade-out-right', 'fade-out-left', |
+ 'fade-out-down', 'fade-out-up'); |
+ } else if (this.shouldDismiss) { |
+ this.dismiss(); |
+ } |
+ this.shouldDismiss = false; |
+ } |
+ |
+ }); |
+ |
+ })(); |
+ |