From 4740bdd97e81df9703f07e450a087a32191b3701 Mon Sep 17 00:00:00 2001 From: Ben Rohlfs Date: Fri, 7 Aug 2020 16:13:54 +0200 Subject: [PATCH] Convert gr-linked-chip.js to .ts Change-Id: I0c2fe85664cb134da6388bd59b488cd758da43ff --- .../shared/gr-linked-chip/gr-linked-chip.ts | 103 +++++++++--------- 1 file changed, 53 insertions(+), 50 deletions(-) diff --git a/polygerrit-ui/app/elements/shared/gr-linked-chip/gr-linked-chip.ts b/polygerrit-ui/app/elements/shared/gr-linked-chip/gr-linked-chip.ts index 46588ef8b6..da843fa6eb 100644 --- a/polygerrit-ui/app/elements/shared/gr-linked-chip/gr-linked-chip.ts +++ b/polygerrit-ui/app/elements/shared/gr-linked-chip/gr-linked-chip.ts @@ -15,57 +15,60 @@ * limitations under the License. */ -import '../gr-button/gr-button.js'; -import '../gr-icons/gr-icons.js'; -import '../gr-limited-text/gr-limited-text.js'; -import '../../../styles/shared-styles.js'; -import {GestureEventListeners} from '@polymer/polymer/lib/mixins/gesture-event-listeners.js'; -import {LegacyElementMixin} from '@polymer/polymer/lib/legacy/legacy-element-mixin.js'; -import {PolymerElement} from '@polymer/polymer/polymer-element.js'; -import {htmlTemplate} from './gr-linked-chip_html.js'; +import '../gr-button/gr-button'; +import '../gr-icons/gr-icons'; +import '../gr-limited-text/gr-limited-text'; +import '../../../styles/shared-styles'; +import {GestureEventListeners} from '@polymer/polymer/lib/mixins/gesture-event-listeners'; +import {LegacyElementMixin} from '@polymer/polymer/lib/legacy/legacy-element-mixin'; +import {PolymerElement} from '@polymer/polymer/polymer-element'; +import {customElement, property} from '@polymer/decorators/lib/decorators'; +import {htmlTemplate} from './gr-linked-chip_html'; -/** - * @extends PolymerElement - */ -class GrLinkedChip extends GestureEventListeners( - LegacyElementMixin(PolymerElement)) { - static get template() { return htmlTemplate; } - - static get is() { return 'gr-linked-chip'; } - - static get properties() { - return { - href: String, - disabled: { - type: Boolean, - value: false, - reflectToAttribute: true, - }, - removable: { - type: Boolean, - value: false, - }, - text: String, - transparentBackground: { - type: Boolean, - value: false, - }, - - /** If provided, sets the maximum length of the content. */ - limit: Number, - }; - } - - _getBackgroundClass(transparent) { - return transparent ? 'transparentBackground' : ''; - } - - _handleRemoveTap(e) { - e.preventDefault(); - this.dispatchEvent(new CustomEvent('remove', { - composed: true, bubbles: true, - })); +declare global { + interface HTMLElementTagNameMap { + 'gr-linked-chip': GrLinkedChip; } } -customElements.define(GrLinkedChip.is, GrLinkedChip); +@customElement('gr-linked-chip') +export class GrLinkedChip extends GestureEventListeners( + LegacyElementMixin(PolymerElement) +) { + static get template() { + return htmlTemplate; + } + + @property({type: String}) + href?: string; + + @property({type: Boolean, reflectToAttribute: true}) + disabled = false; + + @property({type: Boolean}) + removable = false; + + @property({type: String}) + text?: string; + + @property({type: Boolean}) + transparentBackground = false; + + /** If provided, sets the maximum length of the content. */ + @property({type: Number}) + limit?: number; + + _getBackgroundClass(transparent: boolean) { + return transparent ? 'transparentBackground' : ''; + } + + _handleRemoveTap(e: Event) { + e.preventDefault(); + this.dispatchEvent( + new CustomEvent('remove', { + composed: true, + bubbles: true, + }) + ); + } +}