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

Unified Diff: third_party/polymer/v1_0/components/iron-input/iron-input.html

Issue 1269803005: Remove third_party/polymer from .gitignore (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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/v1_0/components/iron-input/iron-input.html
diff --git a/third_party/polymer/v1_0/components/iron-input/iron-input.html b/third_party/polymer/v1_0/components/iron-input/iron-input.html
deleted file mode 100644
index da30882313b4e85e28c92eecb9a5db506ffc71bb..0000000000000000000000000000000000000000
--- a/third_party/polymer/v1_0/components/iron-input/iron-input.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!--
-@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-validatable-behavior/iron-validatable-behavior.html">
-
-<script>
-
-/*
-`<iron-input>` adds two-way binding and custom validators using `Polymer.IronValidatorBehavior`
-to `<input>`.
-
-### Two-way binding
-
-By default you can only get notified of changes to an `input`'s `value` due to user input:
-
- <input value="{{myValue::input}}">
-
-`iron-input` adds the `bind-value` property that mirrors the `value` property, and can be used
-for two-way data binding. `bind-value` will notify if it is changed either by user input or by script.
-
- <input is="iron-input" bind-value="{{myValue}}">
-
-### Custom validators
-
-You can use custom validators that implement `Polymer.IronValidatorBehavior` with `<iron-input>`.
-
- <input is="iron-input" validator="my-custom-validator">
-
-### Stopping invalid input
-
-It may be desirable to only allow users to enter certain characters. You can use the
-`prevent-invalid-input` and `allowed-pattern` attributes together to accomplish this. This feature
-is separate from validation, and `allowed-pattern` does not affect how the input is validated.
-
- <!-- only allow characters that match [0-9] -->
- <input is="iron-input" prevent-invalid-input allowed-pattern="[0-9]">
-
-@hero hero.svg
-@demo demo/index.html
-*/
-
- Polymer({
-
- is: 'iron-input',
-
- extends: 'input',
-
- behaviors: [
- Polymer.IronValidatableBehavior
- ],
-
- properties: {
-
- /**
- * Use this property instead of `value` for two-way data binding.
- */
- bindValue: {
- observer: '_bindValueChanged',
- type: String
- },
-
- /**
- * Set to true to prevent the user from entering invalid input. The new input characters are
- * matched with `allowedPattern` if it is set, otherwise it will use the `pattern` attribute if
- * set, or the `type` attribute (only supported for `type=number`).
- */
- preventInvalidInput: {
- type: Boolean
- },
-
- /**
- * Regular expression to match valid input characters.
- */
- allowedPattern: {
- type: String
- },
-
- _previousValidInput: {
- type: String,
- value: ''
- },
-
- _patternAlreadyChecked: {
- type: Boolean,
- value: false
- }
-
- },
-
- listeners: {
- 'input': '_onInput',
- 'keypress': '_onKeypress'
- },
-
- get _patternRegExp() {
- var pattern;
- if (this.allowedPattern) {
- pattern = new RegExp(this.allowedPattern);
- } else if (this.pattern) {
- pattern = new RegExp(this.pattern);
- } else {
- switch (this.type) {
- case 'number':
- pattern = /[0-9.,e-]/;
- break;
- }
- }
- return pattern;
- },
-
- ready: function() {
- this.bindValue = this.value;
- },
-
- _bindValueChanged: function() {
- if (this.value !== this.bindValue) {
- this.value = !this.bindValue ? '' : this.bindValue;
- }
- // manually notify because we don't want to notify until after setting value
- this.fire('bind-value-changed', {value: this.bindValue});
- },
-
- _onInput: function() {
- // Need to validate each of the characters pasted if they haven't
- // been validated inside `_onKeypress` already.
- if (this.preventInvalidInput && !this._patternAlreadyChecked) {
- var valid = this._checkPatternValidity();
- if (!valid) {
- this.value = this._previousValidInput;
- }
- }
-
- this.bindValue = this.value;
- this._previousValidInput = this.value;
- this._patternAlreadyChecked = false;
- },
-
- _isPrintable: function(event) {
- // What a control/printable character is varies wildly based on the browser.
- // - most control characters (arrows, backspace) do not send a `keypress` event
- // in Chrome, but the *do* on Firefox
- // - in Firefox, when they do send a `keypress` event, control chars have
- // a charCode = 0, keyCode = xx (for ex. 40 for down arrow)
- // - printable characters always send a keypress event.
- // - in Firefox, printable chars always have a keyCode = 0. In Chrome, the keyCode
- // always matches the charCode.
- // None of this makes any sense.
-
- // For these keys, ASCII code == browser keycode.
- var anyNonPrintable =
- (event.keyCode == 8) || // backspace
- (event.keyCode == 13) || // enter
- (event.keyCode == 27); // escape
-
- // For these keys, make sure it's a browser keycode and not an ASCII code.
- var mozNonPrintable =
- (event.keyCode == 19) || // pause
- (event.keyCode == 20) || // caps lock
- (event.keyCode == 45) || // insert
- (event.keyCode == 46) || // delete
- (event.keyCode == 144) || // num lock
- (event.keyCode == 145) || // scroll lock
- (event.keyCode > 32 && event.keyCode < 41) || // page up/down, end, home, arrows
- (event.keyCode > 111 && event.keyCode < 124); // fn keys
-
- return !anyNonPrintable && !(event.charCode == 0 && mozNonPrintable);
- },
-
- _onKeypress: function(event) {
- if (!this.preventInvalidInput && this.type !== 'number') {
- return;
- }
- var regexp = this._patternRegExp;
- if (!regexp) {
- return;
- }
-
- // Handle special keys and backspace
- if (event.metaKey || event.ctrlKey || event.altKey)
- return;
-
- // Check the pattern either here or in `_onInput`, but not in both.
- this._patternAlreadyChecked = true;
-
- var thisChar = String.fromCharCode(event.charCode);
- if (this._isPrintable(event) && !regexp.test(thisChar)) {
- event.preventDefault();
- }
- },
-
- _checkPatternValidity: function() {
- var regexp = this._patternRegExp;
- if (!regexp) {
- return true;
- }
- for (var i = 0; i < this.value.length; i++) {
- if (!regexp.test(this.value[i])) {
- return false;
- }
- }
- return true;
- },
-
- /**
- * Returns true if `value` is valid. The validator provided in `validator` will be used first,
- * then any constraints.
- * @return {boolean} True if the value is valid.
- */
- validate: function() {
- // Empty, non-required input is valid.
- if (!this.required && this.value == '') {
- this.invalid = false;
- return true;
- }
-
- var valid;
- if (this.hasValidator()) {
- valid = Polymer.IronValidatableBehavior.validate.call(this, this.value);
- } else {
- this.invalid = !this.validity.valid;
- valid = this.validity.valid;
- }
- this.fire('iron-input-validate');
- return valid;
- }
-
- });
-
- /*
- The `iron-input-validate` event is fired whenever `validate()` is called.
- @event iron-input-validate
- */
-
-</script>

Powered by Google App Engine
This is Rietveld 408576698