paperless-ngx/src-ui/src/app/components/common/input/date/date.component.ts
2022-05-22 09:03:26 -07:00

50 lines
1.3 KiB
TypeScript

import { Component, forwardRef, OnInit } from '@angular/core'
import { NG_VALUE_ACCESSOR } from '@angular/forms'
import { SettingsService } from 'src/app/services/settings.service'
import { AbstractInputComponent } from '../abstract-input'
@Component({
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => DateComponent),
multi: true,
},
],
selector: 'app-input-date',
templateUrl: './date.component.html',
styleUrls: ['./date.component.scss'],
})
export class DateComponent
extends AbstractInputComponent<string>
implements OnInit
{
constructor(private settings: SettingsService) {
super()
}
ngOnInit(): void {
super.ngOnInit()
this.placeholder = this.settings.getLocalizedDateInputFormat()
}
placeholder: string
onPaste(event: ClipboardEvent) {
let clipboardData: DataTransfer =
event.clipboardData || window['clipboardData']
if (clipboardData) {
let pastedText = clipboardData.getData('text')
pastedText = pastedText.replace(/[\sa-z#!$%\^&\*;:{}=\-_`~()]+/g, '')
event.preventDefault()
this.value = pastedText
this.onChange(pastedText)
}
}
onKeyPress(event: KeyboardEvent) {
if ('Enter' !== event.key && !/[0-9,\.\/-]+/.test(event.key)) {
event.preventDefault()
}
}
}