import { Component, EventEmitter, Output, signal } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'app-icon-picker', standalone: true, imports: [CommonModule], template: `
`, styles: [` :host { display: block; } `] }) export class IconPickerComponent { @Output() select = new EventEmitter(); private readonly all = [ '๐Ÿ˜€','๐Ÿ˜','๐Ÿ˜‚','๐Ÿคฃ','๐Ÿ˜Š','๐Ÿ˜‡','๐Ÿ™‚','๐Ÿ˜‰','๐Ÿ˜','๐Ÿ˜˜','๐Ÿค”','๐Ÿคจ','๐Ÿ˜','๐Ÿ˜ด','๐Ÿค’','๐Ÿค•','๐Ÿ‘','๐Ÿ‘Ž','๐Ÿ‘‰','๐Ÿ‘ˆ','๐Ÿ‘†','๐Ÿ‘‡','โœ…','โš ๏ธ','โ„น๏ธ','๐Ÿ’ก','โญ','๐Ÿš€','๐Ÿ“Œ','๐Ÿ””','๐Ÿ“Ž','๐Ÿ“','๐Ÿ“ฆ','๐Ÿง ','๐ŸŽฏ','๐Ÿท๏ธ','๐Ÿ','๐Ÿ”','๐Ÿ› ๏ธ','โš™๏ธ','๐Ÿ’ฌ','๐Ÿ“ฃ','๐Ÿงฉ','๐ŸŽ‰','๐Ÿ”ฅ','๐Ÿ’ฅ','โœจ','๐ŸŒŸ','๐Ÿช„' ]; query = signal(''); filtered = signal(this.all); onSearch(ev: Event) { const q = (ev.target as HTMLInputElement).value.toLowerCase(); this.query.set(q); if (!q) { this.filtered.set(this.all); return; } this.filtered.set(this.all.filter(ic => ic.toLowerCase().includes(q))); } pick(ic: string) { this.select.emit(ic); } }