import { Pipe, PipeTransform } from '@angular/core'
import { groupBy } from 'es-toolkit/compat'

@Pipe({
	standalone: true,
	name: 'kadiGroupBy',
})
export class GroupByPipe implements PipeTransform {
	public transform<T>(list: Array<T>, property: string): Map<string, T[]> {
		const map = new Map<string, T[]>()

		const group = groupBy(list, property)
		for (const key in group) {
			map.set(key, group[key])
		}

		return map
	}
}
