| <!-- |
| @license |
| Copyright (c) 2015 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 |
| --> |
| |
| <link rel="import" href="../polymer/polymer.html"> |
| |
| <script> |
| /** |
| Polymer.IronFormElementBehavior enables a custom element to be included |
| in an `iron-form`. |
| |
| @demo demo/index.html |
| @polymerBehavior |
| */ |
| Polymer.IronFormElementBehavior = { |
| |
| properties: { |
| /** |
| * Fired when the element is added to an `iron-form`. |
| * |
| * @event iron-form-element-register |
| */ |
| |
| /** |
| * Fired when the element is removed from an `iron-form`. |
| * |
| * @event iron-form-element-unregister |
| */ |
| |
| /** |
| * The name of this element. |
| */ |
| name: { |
| type: String |
| }, |
| |
| /** |
| * The value for this element. |
| */ |
| value: { |
| notify: true, |
| type: String |
| }, |
| |
| /** |
| * Set to true to mark the input as required. If used in a form, a |
| * custom element that uses this behavior should also use |
| * Polymer.IronValidatableBehavior and define a custom validation method. |
| * Otherwise, a `required` element will always be considered valid. |
| * It's also strongly recommended to provide a visual style for the element |
| * when its value is invalid. |
| */ |
| required: { |
| type: Boolean, |
| value: false |
| }, |
| |
| /** |
| * The form that the element is registered to. |
| */ |
| _parentForm: { |
| type: Object |
| } |
| }, |
| |
| attached: function() { |
| // Note: the iron-form that this element belongs to will set this |
| // element's _parentForm property when handling this event. |
| this.fire('iron-form-element-register'); |
| }, |
| |
| detached: function() { |
| if (this._parentForm) { |
| this._parentForm.fire('iron-form-element-unregister', {target: this}); |
| } |
| } |
| |
| }; |
| |
| </script> |