blob: e65df66ed76d90600a3e173a4c26a2ea61f1f127 [file] [log] [blame]
<link rel="import" href="../polymer/polymer.html">
<link rel="import" href="../paper-input/paper-input.html">
<link rel="import" href="chops-bug-mixin.html">
<dom-module id="chops-bug-input">
error-message="Please enter a bug id or bug url">
'use strict';
* `<chops-bug-input>` is an input element for crbug urls and bug ids.
* `<chops-bug-input>` does validation on the input and puts the final bug id in
* the bugId property. If the input is invalid, this will be expressed in
* the invalidBug property.
* @customElement
* @polymer
* @demo /demo/chops-bug-input_demo.html
class ChopsBugInput extends ChopsBugMixin(Polymer.Element) {
static get is() { return 'chops-bug-input'; }
static get properties() {
return {
/** A bug id, bug url, or a bug in the form of 'projectName:bugId' . Required. */
value: String,
/** The bug id. */
bugId: {
type: String,
computed: '_computeBugId(value)',
/** The bug's project name. */
bugProject: {
type: String,
computed: '_computeBugProject(value)',
/** The input label for the user inputting the bug with 'Bug # or URL' default. */
label: {
type: String,
value: 'Bug # or URL',
/** True if the given bug is an invalid id or url. */
invalidBug: {
type: Boolean,
notify: true,
computed: '_computeInvalidBug(bugId)',
customElements.define(, ChopsBugInput);