dees-catalog/ts_web/elements/dees-input-text.ts
2020-09-13 16:24:48 +00:00

74 lines
1.6 KiB
TypeScript

import {customElement, LitElement, TemplateResult, property, html} from 'lit-element';
@customElement('dees-input-text')
export class DeesInputText extends LitElement {
public static demo = () => html`<dees-input-text></dees-input-text>`;
@property()
public label: string = 'Label';
@property()
public key: string;
@property()
public value: string;
public render(): TemplateResult {
return html `
<style>
* {
box-sizing: border-box;
}
:host {
position: relative;
display: grid;
margin: 10px 0px;
margin-bottom: 24px;
}
.maincontainer {
color: #ccc;
}
.label {
font-size: 14px;
margin-bottom: 5px;
}
input {
margin-top: 5px;
background: #222;
border: none;
border-top: 1px solid #444;
border-bottom: 1px solid #333;
padding-left:10px;
padding-right: 10px;
border-radius: 2px;
width: 100%;
line-height: 48px;
transition: all 0.2s;
outline: none;
color: #ccc;
font-size: 16px;
}
input:focus {
outline: none;
border-bottom: 1px solid #e4002b;
}
</style>
<div class="maincontainer">
<div class="label">${this.label}</div>
<input type="text" @input="${this.updateValue}" />
</div>
`;
}
public async updateValue(eventArg: Event) {
const target: any = eventArg.target;
this.value = target.value;
}
}