mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-18 11:28:23 -07:00
102 lines
2.4 KiB
HTML
102 lines
2.4 KiB
HTML
|
<!--
|
||
|
@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-meta/iron-meta.html">
|
||
|
|
||
|
<script>
|
||
|
|
||
|
/**
|
||
|
* Use `Polymer.IronValidatableBehavior` to implement an element that validates user input.
|
||
|
*
|
||
|
* ### Accessiblity
|
||
|
*
|
||
|
* Changing the `invalid` property, either manually or by calling `validate()` will update the
|
||
|
* `aria-invalid` attribute.
|
||
|
*
|
||
|
* @demo demo/index.html
|
||
|
* @polymerBehavior
|
||
|
*/
|
||
|
Polymer.IronValidatableBehavior = {
|
||
|
|
||
|
properties: {
|
||
|
|
||
|
/**
|
||
|
* Namespace for this validator.
|
||
|
*/
|
||
|
validatorType: {
|
||
|
type: String,
|
||
|
value: 'validator'
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Name of the validator to use.
|
||
|
*/
|
||
|
validator: {
|
||
|
type: String
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* True if the last call to `validate` is invalid.
|
||
|
*/
|
||
|
invalid: {
|
||
|
notify: true,
|
||
|
reflectToAttribute: true,
|
||
|
type: Boolean,
|
||
|
value: false
|
||
|
},
|
||
|
|
||
|
_validatorMeta: {
|
||
|
type: Object
|
||
|
}
|
||
|
|
||
|
},
|
||
|
|
||
|
observers: [
|
||
|
'_invalidChanged(invalid)'
|
||
|
],
|
||
|
|
||
|
get _validator() {
|
||
|
return this._validatorMeta && this._validatorMeta.byKey(this.validator);
|
||
|
},
|
||
|
|
||
|
ready: function() {
|
||
|
this._validatorMeta = new Polymer.IronMeta({type: this.validatorType});
|
||
|
},
|
||
|
|
||
|
_invalidChanged: function() {
|
||
|
if (this.invalid) {
|
||
|
this.setAttribute('aria-invalid', 'true');
|
||
|
} else {
|
||
|
this.removeAttribute('aria-invalid');
|
||
|
}
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* @return {boolean} True if the validator `validator` exists.
|
||
|
*/
|
||
|
hasValidator: function() {
|
||
|
return this._validator != null;
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* @param {Object} values Passed to the validator's `validate()` function.
|
||
|
* @return {boolean} True if `values` is valid.
|
||
|
*/
|
||
|
validate: function(values) {
|
||
|
var valid = this._validator && this._validator.validate(values);
|
||
|
this.invalid = !valid;
|
||
|
return valid;
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|
||
|
</script>
|