Index: third_party/polymer/components-chromium/core-dropdown/core-dropdown-extracted.js |
diff --git a/third_party/polymer/components-chromium/core-dropdown/core-dropdown-extracted.js b/third_party/polymer/components-chromium/core-dropdown/core-dropdown-extracted.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f44acb8b3df28c270f33f897c42aebb7c0dcd526 |
--- /dev/null |
+++ b/third_party/polymer/components-chromium/core-dropdown/core-dropdown-extracted.js |
@@ -0,0 +1,125 @@ |
+ |
+ |
+ Polymer('core-dropdown',{ |
+ |
+ publish: { |
+ |
+ /** |
+ * True if the menu is open. |
+ * |
+ * @attribute opened |
+ * @type boolean |
+ * @default false |
+ */ |
+ opened: false, |
+ |
+ /** |
+ * A label for the control. The label is displayed if no item is selected. |
+ * |
+ * @attribute label |
+ * @type string |
+ * @default 'Select an item' |
+ */ |
+ label: 'Select an item', |
+ |
+ /** |
+ * The currently selected element. By default this is the index of the item element. |
+ * If you want a specific attribute value of the element to be used instead of the |
+ * index, set `valueattr` to that attribute name. |
+ * |
+ * @attribute selected |
+ * @type Object |
+ * @default null |
+ */ |
+ selected: null, |
+ |
+ /** |
+ * Specifies the attribute to be used for "selected" attribute. |
+ * |
+ * @attribute valueattr |
+ * @type string |
+ * @default 'name' |
+ */ |
+ valueattr: 'name', |
+ |
+ /** |
+ * Specifies the CSS class to be used to add to the selected element. |
+ * |
+ * @attribute selectedClass |
+ * @type string |
+ * @default 'core-selected' |
+ */ |
+ selectedClass: 'core-selected', |
+ |
+ /** |
+ * Specifies the property to be used to set on the selected element |
+ * to indicate its active state. |
+ * |
+ * @attribute selectedProperty |
+ * @type string |
+ * @default '' |
+ */ |
+ selectedProperty: '', |
+ |
+ /** |
+ * Specifies the attribute to set on the selected element to indicate |
+ * its active state. |
+ * |
+ * @attribute selectedAttribute |
+ * @type string |
+ * @default 'active' |
+ */ |
+ selectedAttribute: 'selected', |
+ |
+ /** |
+ * The currently selected element. |
+ * |
+ * @attribute selectedItem |
+ * @type Object |
+ * @default null |
+ */ |
+ selectedItem: null, |
+ |
+ /** |
+ * Horizontally align the overlay with the control. |
+ * @attribute halign |
+ * @type "left"|"right" |
+ * @default "left" |
+ */ |
+ halign: {value: 'left', reflect: true}, |
+ |
+ /** |
+ * Vertically align the dropdown menu with the control. |
+ * @attribute valign |
+ * @type "top"|"bottom" |
+ * @default "bottom" |
+ */ |
+ valign: {value: 'bottom', reflect: true} |
+ |
+ }, |
+ |
+ toggle: function() { |
+ this.opened = !this.opened; |
+ }, |
+ |
+ openAction: function(e) { |
+ if (e.detail) { |
+ var rect = this.$.control.getBoundingClientRect(); |
+ if (this.valign === 'top') { |
+ this.$.menu.style.top = 'auto'; |
+ this.$.menu.style.bottom = rect.height + 'px'; |
+ this.$.menu.style.maxHeight = (window.innerHeight - (window.innerHeight - rect.top) - 12) + 'px'; |
+ } else { |
+ this.$.menu.style.top = rect.height + 'px'; |
+ this.$.menu.style.bottom = 'auto'; |
+ this.$.menu.style.maxHeight = (window.innerHeight - rect.height - rect.top - 12) + 'px'; |
+ } |
+ this.$.menu.style.minWidth = rect.width + 'px'; |
+ } |
+ }, |
+ |
+ selectAction: function() { |
+ this.opened = false; |
+ } |
+ }); |
+ |