1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00
Files
openstamanager/resources/ts/Components/FilledDateTextField.tsx
Maicol Battistini 6871ae8c21 fix: 🏷️ Fix attributi obbligatori
2023-07-14 11:45:27 +02:00

37 lines
1.3 KiB
TypeScript

import '@material/web/textfield/filled-text-field.js';
import '@material/web/iconbutton/standard-icon-button.js';
import {FilledTextField} from '@material/web/textfield/lib/filled-text-field';
import {mdiCalendarMonthOutline} from '@mdi/js';
import MdIcon from '@osm/Components/MdIcon';
import {Property} from 'csstype';
import {Vnode} from 'mithril';
import {
Attributes,
Component
} from 'mithril-utilities';
import {KebabCasedProperties} from 'type-fest';
export interface FilledDateTextFieldAttributes extends Attributes, Partial<Omit<KebabCasedProperties<FilledTextField>, 'style'>> {}
export default class FilledDateTextField<A extends FilledDateTextFieldAttributes> extends Component<A> {
element!: FilledTextField;
view(vnode: Vnode<A>) {
vnode.attrs.type ??= 'date';
return (
<md-filled-text-field {...vnode.attrs}>
{vnode.children}
<md-standard-icon-button slot="trailingicon" onclick={this.openDatePicker.bind(this)}>
<MdIcon icon={mdiCalendarMonthOutline}/>
</md-standard-icon-button>
</md-filled-text-field>
);
}
openDatePicker(event: MouseEvent & {redraw?: boolean}) {
event.redraw = false;
// @ts-expect-error - Input is private
(this.element.input as HTMLInputElement).showPicker();
}
}