| Index: polymer_1.0.4/bower_components/paper-input/paper-input-behavior.html
|
| diff --git a/polymer_1.0.4/bower_components/paper-input/paper-input-behavior.html b/polymer_1.0.4/bower_components/paper-input/paper-input-behavior.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0afbc832c46991b9704dcfbbc2f57fc96d5875e0
|
| --- /dev/null
|
| +++ b/polymer_1.0.4/bower_components/paper-input/paper-input-behavior.html
|
| @@ -0,0 +1,328 @@
|
| +<!--
|
| +@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">
|
| +<link rel="import" href="../iron-behaviors/iron-control-state.html">
|
| +
|
| +<script>
|
| +
|
| + /**
|
| + * Use `Polymer.PaperInputBehavior` to implement inputs with `<paper-input-container>`. This
|
| + * behavior is implemented by `<paper-input>`. It exposes a number of properties from
|
| + * `<paper-input-container>` and `<input is="iron-input">` and they should be bound in your
|
| + * template.
|
| + *
|
| + * The input element can be accessed by the `inputElement` property if you need to access
|
| + * properties or methods that are not exposed.
|
| + * @polymerBehavior Polymer.PaperInputBehavior
|
| + */
|
| + Polymer.PaperInputBehaviorImpl = {
|
| +
|
| + properties: {
|
| +
|
| + /**
|
| + * The label for this input. Bind this to `<paper-input-container>`'s `label` property.
|
| + */
|
| + label: {
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * The value for this input. Bind this to the `<input is="iron-input">`'s `bindValue`
|
| + * property, or the value property of your input that is `notify:true`.
|
| + */
|
| + value: {
|
| + notify: true,
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * Set to true to disable this input. Bind this to both the `<paper-input-container>`'s
|
| + * and the input's `disabled` property.
|
| + */
|
| + disabled: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Returns true if the value is invalid. Bind this to both the `<paper-input-container>`'s
|
| + * and the input's `invalid` property.
|
| + */
|
| + invalid: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Set to true to prevent the user from entering invalid input. Bind this to the
|
| + * `<input is="iron-input">`'s `preventInvalidInput` property.
|
| + */
|
| + preventInvalidInput: {
|
| + type: Boolean
|
| + },
|
| +
|
| + /**
|
| + * Set this to specify the pattern allowed by `preventInvalidInput`. Bind this to the
|
| + * `<input is="iron-input">`'s `allowedPattern` property.
|
| + */
|
| + allowedPattern: {
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * The type of the input. The supported types are `text`, `number` and `password`. Bind this
|
| + * to the `<input is="iron-input">`'s `type` property.
|
| + */
|
| + type: {
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * The datalist of the input (if any). This should match the id of an existing <datalist>. Bind this
|
| + * to the `<input is="iron-input">`'s `list` property.
|
| + */
|
| + list: {
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * A pattern to validate the `input` with. Bind this to the `<input is="iron-input">`'s
|
| + * `pattern` property.
|
| + */
|
| + pattern: {
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * Set to true to mark the input as required. Bind this to the `<input is="iron-input">`'s
|
| + * `required` property.
|
| + */
|
| + required: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * The maximum length of the input value. Bind this to the `<input is="iron-input">`'s
|
| + * `maxlength` property.
|
| + */
|
| + maxlength: {
|
| + type: Number
|
| + },
|
| +
|
| + /**
|
| + * The error message to display when the input is invalid. Bind this to the
|
| + * `<paper-input-error>`'s content, if using.
|
| + */
|
| + errorMessage: {
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * Set to true to show a character counter.
|
| + */
|
| + charCounter: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Set to true to disable the floating label. Bind this to the `<paper-input-container>`'s
|
| + * `noLabelFloat` property.
|
| + */
|
| + noLabelFloat: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Set to true to always float the label. Bind this to the `<paper-input-container>`'s
|
| + * `alwaysFloatLabel` property.
|
| + */
|
| + alwaysFloatLabel: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Set to true to auto-validate the input value. Bind this to the `<paper-input-container>`'s
|
| + * `autoValidate` property.
|
| + */
|
| + autoValidate: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Name of the validator to use. Bind this to the `<input is="iron-input">`'s `validator`
|
| + * property.
|
| + */
|
| + validator: {
|
| + type: String
|
| + },
|
| +
|
| + // HTMLInputElement attributes for binding if needed
|
| +
|
| + /**
|
| + * Bind this to the `<input is="iron-input">`'s `autocomplete` property.
|
| + */
|
| + autocomplete: {
|
| + type: String,
|
| + value: 'off'
|
| + },
|
| +
|
| + /**
|
| + * Bind this to the `<input is="iron-input">`'s `autofocus` property.
|
| + */
|
| + autofocus: {
|
| + type: Boolean
|
| + },
|
| +
|
| + /**
|
| + * Bind this to the `<input is="iron-input">`'s `inputmode` property.
|
| + */
|
| + inputmode: {
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * Bind this to the `<input is="iron-input">`'s `minlength` property.
|
| + */
|
| + minlength: {
|
| + type: Number
|
| + },
|
| +
|
| + /**
|
| + * Bind this to the `<input is="iron-input">`'s `name` property.
|
| + */
|
| + name: {
|
| + type: String
|
| + },
|
| +
|
| + /**
|
| + * A placeholder string in addition to the label. If this is set, the label will always float.
|
| + */
|
| + placeholder: {
|
| + type: String,
|
| + // need to set a default so _computeAlwaysFloatLabel is run
|
| + value: ''
|
| + },
|
| +
|
| + /**
|
| + * Bind this to the `<input is="iron-input">`'s `readonly` property.
|
| + */
|
| + readonly: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Bind this to the `<input is="iron-input">`'s `size` property.
|
| + */
|
| + size: {
|
| + type: Number
|
| + },
|
| +
|
| + _ariaDescribedBy: {
|
| + type: String,
|
| + value: ''
|
| + }
|
| +
|
| + },
|
| +
|
| + listeners: {
|
| + 'addon-attached': '_onAddonAttached'
|
| + },
|
| +
|
| + /**
|
| + * Returns a reference to the input element.
|
| + */
|
| + get inputElement() {
|
| + return this.$.input;
|
| + },
|
| +
|
| + attached: function() {
|
| + this._updateAriaLabelledBy();
|
| + },
|
| +
|
| + _appendStringWithSpace: function(str, more) {
|
| + if (str) {
|
| + str = str + ' ' + more;
|
| + } else {
|
| + str = more;
|
| + }
|
| + return str;
|
| + },
|
| +
|
| + _onAddonAttached: function(event) {
|
| + var target = event.path ? event.path[0] : event.target;
|
| + if (target.id) {
|
| + this._ariaDescribedBy = this._appendStringWithSpace(this._ariaDescribedBy, target.id);
|
| + } else {
|
| + var id = 'paper-input-add-on-' + Math.floor((Math.random() * 100000));
|
| + target.id = id;
|
| + this._ariaDescribedBy = this._appendStringWithSpace(this._ariaDescribedBy, id);
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * Validates the input element and sets an error style if needed.
|
| + */
|
| + validate: function() {
|
| + return this.inputElement.validate();
|
| + },
|
| +
|
| + /**
|
| + * Restores the cursor to its original position after updating the value.
|
| + * @param {string} newValue The value that should be saved.
|
| + */
|
| + updateValueAndPreserveCaret: function(newValue) {
|
| + // Not all elements might have selection, and even if they have the
|
| + // right properties, accessing them might throw an exception (like for
|
| + // <input type=number>)
|
| + try {
|
| + var start = this.inputElement.selectionStart;
|
| + this.value = newValue;
|
| +
|
| + // The cursor automatically jumps to the end after re-setting the value,
|
| + // so restore it to its original position.
|
| + this.inputElement.selectionStart = start;
|
| + this.inputElement.selectionEnd = start;
|
| + } catch (e) {
|
| + // Just set the value and give up on the caret.
|
| + this.value = newValue;
|
| + }
|
| + },
|
| +
|
| + _computeAlwaysFloatLabel: function(alwaysFloatLabel, placeholder) {
|
| + return placeholder || alwaysFloatLabel;
|
| + },
|
| +
|
| + _updateAriaLabelledBy: function() {
|
| + var label = Polymer.dom(this.root).querySelector('label');
|
| + if (!label) {
|
| + this._ariaLabelledBy = '';
|
| + return;
|
| + }
|
| + var labelledBy;
|
| + if (label.id) {
|
| + labelledBy = label.id;
|
| + } else {
|
| + labelledBy = 'paper-input-label-' + new Date().getUTCMilliseconds();
|
| + label.id = labelledBy;
|
| + }
|
| + this._ariaLabelledBy = labelledBy;
|
| + }
|
| +
|
| + };
|
| +
|
| + Polymer.PaperInputBehavior = [Polymer.IronControlState, Polymer.PaperInputBehaviorImpl];
|
| +
|
| +</script>
|
|
|