Convert gr-linked-chip.js to .ts

Change-Id: I0c2fe85664cb134da6388bd59b488cd758da43ff
This commit is contained in:
Ben Rohlfs
2020-08-07 16:13:54 +02:00
parent 1a7b4eabbe
commit 4740bdd97e

View File

@@ -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,
})
);
}
}