Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: third_party/polymer/components/iron-dropdown/iron-dropdown.html

Issue 2113853002: Run bower update (Closed) Base URL: https://github.com/catapult-project/catapult@polymer10-migration
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/components/iron-dropdown/iron-dropdown.html
diff --git a/third_party/polymer/components/iron-dropdown/iron-dropdown.html b/third_party/polymer/components/iron-dropdown/iron-dropdown.html
index 263f1cb1b6126ae0908f0cd0c5f311c0a88089ec..21b074a5b13b938fe91a1ad20ef3d4f283923347 100644
--- a/third_party/polymer/components/iron-dropdown/iron-dropdown.html
+++ b/third_party/polymer/components/iron-dropdown/iron-dropdown.html
@@ -81,6 +81,7 @@ method is called on the element.
/**
* The orientation against which to align the dropdown content
* horizontally relative to the dropdown trigger.
+ * Overridden from `Polymer.IronFitBehavior`.
*/
horizontalAlign: {
type: String,
@@ -91,6 +92,7 @@ method is called on the element.
/**
* The orientation against which to align the dropdown content
* vertically relative to the dropdown trigger.
+ * Overridden from `Polymer.IronFitBehavior`.
*/
verticalAlign: {
type: String,
@@ -99,54 +101,6 @@ method is called on the element.
},
/**
- * A pixel value that will be added to the position calculated for the
- * given `horizontalAlign`, in the direction of alignment. You can think
- * of it as increasing or decreasing the distance to the side of the
- * screen given by `horizontalAlign`.
- *
- * If `horizontalAlign` is "left", this offset will increase or decrease
- * the distance to the left side of the screen: a negative offset will
- * move the dropdown to the left; a positive one, to the right.
- *
- * Conversely if `horizontalAlign` is "right", this offset will increase
- * or decrease the distance to the right side of the screen: a negative
- * offset will move the dropdown to the right; a positive one, to the left.
- */
- horizontalOffset: {
- type: Number,
- value: 0,
- notify: true
- },
-
- /**
- * A pixel value that will be added to the position calculated for the
- * given `verticalAlign`, in the direction of alignment. You can think
- * of it as increasing or decreasing the distance to the side of the
- * screen given by `verticalAlign`.
- *
- * If `verticalAlign` is "top", this offset will increase or decrease
- * the distance to the top side of the screen: a negative offset will
- * move the dropdown upwards; a positive one, downwards.
- *
- * Conversely if `verticalAlign` is "bottom", this offset will increase
- * or decrease the distance to the bottom side of the screen: a negative
- * offset will move the dropdown downwards; a positive one, upwards.
- */
- verticalOffset: {
- type: Number,
- value: 0,
- notify: true
- },
-
- /**
- * The element that should be used to position the dropdown when
- * it is opened.
- */
- positionTarget: {
- type: Object
- },
-
- /**
* An animation config. If provided, this will be used to animate the
* opening of the dropdown.
*/
@@ -199,12 +153,6 @@ method is called on the element.
'_updateOverlayPosition(positionTarget, verticalAlign, horizontalAlign, verticalOffset, horizontalOffset)'
],
- attached: function() {
- // Memoize this to avoid expensive calculations & relayouts.
- this._isRTL = window.getComputedStyle(this).direction == 'rtl';
- this.positionTarget = this.positionTarget || this._defaultPositionTarget;
- },
-
/**
* The element that is contained by the dropdown, if any.
*/
@@ -220,70 +168,9 @@ method is called on the element.
return this.focusTarget || this.containedElement;
},
- /**
- * The element that should be used to position the dropdown when
- * it opens, if no position target is configured.
- */
- get _defaultPositionTarget() {
- var parent = Polymer.dom(this).parentNode;
-
- if (parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
- parent = parent.host;
- }
-
- return parent;
- },
-
- /**
- * The horizontal align value, accounting for the RTL/LTR text direction.
- */
- get _localeHorizontalAlign() {
- // In RTL, "left" becomes "right".
- if (this._isRTL) {
- return this.horizontalAlign === 'right' ? 'left' : 'right';
- } else {
- return this.horizontalAlign;
- }
- },
-
- /**
- * The horizontal offset value used to position the dropdown.
- * @param {ClientRect} dropdownRect
- * @param {ClientRect} positionRect
- * @param {boolean=} fromRight
- * @return {number} pixels
- * @private
- */
- _horizontalAlignTargetValue: function(dropdownRect, positionRect, fromRight) {
- var target;
- if (fromRight) {
- target = document.documentElement.clientWidth - positionRect.right - (this._fitWidth - dropdownRect.right);
- } else {
- target = positionRect.left - dropdownRect.left;
- }
- target += this.horizontalOffset;
-
- return Math.max(target, 0);
- },
-
- /**
- * The vertical offset value used to position the dropdown.
- * @param {ClientRect} dropdownRect
- * @param {ClientRect} positionRect
- * @param {boolean=} fromBottom
- * @return {number} pixels
- * @private
- */
- _verticalAlignTargetValue: function(dropdownRect, positionRect, fromBottom) {
- var target;
- if (fromBottom) {
- target = document.documentElement.clientHeight - positionRect.bottom - (this._fitHeight - dropdownRect.bottom);
- } else {
- target = positionRect.top - dropdownRect.top;
- }
- target += this.verticalOffset;
-
- return Math.max(target, 0);
+ detached: function() {
+ this.cancelAnimation();
+ Polymer.IronDropdownScrollManager.removeScrollLock(this);
},
/**
@@ -310,10 +197,7 @@ method is called on the element.
* Overridden from `IronOverlayBehavior`.
*/
_renderOpened: function() {
- if (!this.noAnimations && this.animationConfig && this.animationConfig.open) {
- if (this.withBackdrop) {
- this.backdropElement.open();
- }
+ if (!this.noAnimations && this.animationConfig.open) {
this.$.contentWrapper.classList.add('animating');
this.playAnimation('open');
} else {
@@ -325,10 +209,7 @@ method is called on the element.
* Overridden from `IronOverlayBehavior`.
*/
_renderClosed: function() {
- if (!this.noAnimations && this.animationConfig && this.animationConfig.close) {
- if (this.withBackdrop) {
- this.backdropElement.close();
- }
+ if (!this.noAnimations && this.animationConfig.close) {
this.$.contentWrapper.classList.add('animating');
this.playAnimation('close');
} else {
@@ -345,9 +226,9 @@ method is called on the element.
_onNeonAnimationFinish: function() {
this.$.contentWrapper.classList.remove('animating');
if (this.opened) {
- Polymer.IronOverlayBehaviorImpl._finishRenderOpened.apply(this);
+ this._finishRenderOpened();
} else {
- Polymer.IronOverlayBehaviorImpl._finishRenderClosed.apply(this);
+ this._finishRenderClosed();
}
},
@@ -356,30 +237,14 @@ method is called on the element.
* to configure specific parts of the opening and closing animations.
*/
_updateAnimationConfig: function() {
- var animationConfig = {};
- var animations = [];
-
- if (this.openAnimationConfig) {
- // NOTE(cdata): When making `display:none` elements visible in Safari,
- // the element will paint once in a fully visible state, causing the
- // dropdown to flash before it fades in. We prepend an
- // `opaque-animation` to fix this problem:
- animationConfig.open = [{
- name: 'opaque-animation',
- }].concat(this.openAnimationConfig);
- animations = animations.concat(animationConfig.open);
+ var animations = (this.openAnimationConfig || []).concat(this.closeAnimationConfig || []);
+ for (var i = 0; i < animations.length; i++) {
+ animations[i].node = this.containedElement;
}
-
- if (this.closeAnimationConfig) {
- animationConfig.close = this.closeAnimationConfig;
- animations = animations.concat(animationConfig.close);
- }
-
- animations.forEach(function(animation) {
- animation.node = this.containedElement;
- }, this);
-
- this.animationConfig = animationConfig;
+ this.animationConfig = {
+ open: this.openAnimationConfig,
+ close: this.closeAnimationConfig
+ };
},
/**
@@ -394,65 +259,6 @@ method is called on the element.
},
/**
- * Useful to call this after the element, the window, or the `fitInfo`
- * element has been resized. Will maintain the scroll position.
- */
- refit: function () {
- if (!this.opened) {
- return
- }
- var containedElement = this.containedElement;
- var scrollTop;
- var scrollLeft;
-
- if (containedElement) {
- scrollTop = containedElement.scrollTop;
- scrollLeft = containedElement.scrollLeft;
- }
- Polymer.IronFitBehavior.refit.apply(this, arguments);
-
- if (containedElement) {
- containedElement.scrollTop = scrollTop;
- containedElement.scrollLeft = scrollLeft;
- }
- },
-
- /**
- * Resets the target element's position and size constraints, and clear
- * the memoized data.
- */
- resetFit: function() {
- Polymer.IronFitBehavior.resetFit.apply(this, arguments);
-
- var hAlign = this._localeHorizontalAlign;
- var vAlign = this.verticalAlign;
- // Set to 0, 0 in order to discover any offset caused by parent stacking contexts.
- this.style[hAlign] = this.style[vAlign] = '0px';
-
- var dropdownRect = this.getBoundingClientRect();
- var positionRect = this.positionTarget.getBoundingClientRect();
- var horizontalValue = this._horizontalAlignTargetValue(dropdownRect, positionRect, hAlign === 'right');
- var verticalValue = this._verticalAlignTargetValue(dropdownRect, positionRect, vAlign === 'bottom');
-
- this.style[hAlign] = horizontalValue + 'px';
- this.style[vAlign] = verticalValue + 'px';
- },
-
- /**
- * Overridden from `IronFitBehavior`.
- * Ensure positionedBy has correct values for horizontally & vertically.
- */
- _discoverInfo: function() {
- Polymer.IronFitBehavior._discoverInfo.apply(this, arguments);
- // Note(valdrin): in Firefox, an element with style `position: fixed; bottom: 90vh; height: 20vh`
- // would have `getComputedStyle(element).top < 0` (instead of being `auto`) http://jsbin.com/cofired/3/edit?html,output
- // This would cause IronFitBehavior's `constrain` to wrongly calculate sizes
- // (it would use `top` instead of `bottom`), so we ensure we give the correct values.
- this._fitInfo.positionedBy.horizontally = this._localeHorizontalAlign;
- this._fitInfo.positionedBy.vertically = this.verticalAlign;
- },
-
- /**
* Apply focus to focusTarget or containedElement
*/
_applyFocus: function () {
« no previous file with comments | « third_party/polymer/components/iron-dropdown/bower.json ('k') | third_party/polymer/components/iron-fit-behavior/.bower.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698