import { Component, inject } from '@angular/core';
import { HotkeyDirective } from '@yelon/abc/hotkey';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzInputModule } from 'ng-zorro-antd/input';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzSwitchModule } from 'ng-zorro-antd/switch';
@Component({
selector: 'components-hotkey-basic',
template: `
<button
nz-button
nzType="primary"
(click)="show('clicked button 1!')"
hotkey="Control+d,Meta+d"
data-hotkey-scope="text-area-1"
>
press meta+d or ctrl+d in text area 1 to click button 1
</button>
<br />
<textarea nz-input id="text-area-1" rows="4" cols="40" hotkey="q" #textArea1 (focus)="selectText(textArea1)">
text area 1, press q to focus this textarea and select all text</textarea
>
<br />
<button
nz-button
nzType="primary"
(click)="show('clicked button 2!')"
hotkey="Control+d,Meta+d"
data-hotkey-scope="text-area-2"
>
press meta+d or ctrl+d in text area 2 to click button 2
</button>
<br />
<textarea nz-input nzType="primary" id="text-area-2" rows="4" cols="40">text area 2</textarea><br />
<label><input nz-input hotkey="t" type="text" />Press <kbd>t</kbd> to focus this field</label><br />
<label><nz-switch hotkey="r" />Press <kbd>r</kbd> to check/uncheck this checkbox</label><br />
<a (click)="show('click link')" nz-button nzType="link" hotkey="o k"> Press <kbd>o k</kbd> click this link </a>
`,
styles: [
`
:host kbd {
color: #f50;
padding: 0 8px;
}
`
],
standalone: true,
imports: [NzButtonModule, HotkeyDirective, NzInputModule, NzSwitchModule]
})
export class ComponentsHotkeyBasicComponent {
private readonly msg = inject(NzMessageService);
show(msg: string): void {
this.msg.info(msg);
}
selectText(el: HTMLTextAreaElement): void {
el.select();
}
}