{"version":3,"file":"chunk-ccggc4zs.js","sources":["packages/sports/web/app/src/event-list-shared/sport/services/sport-list-modal.service.ts","packages/sports/web/app/src/event-list-shared/sport/overview/sport-list.html","packages/sports/web/app/src/event-list-shared/sport/overview/sport-list.component.ts","packages/sports/web/app/src/event-list-shared/sport/overview/sport-list-body.html","packages/sports/web/app/src/event-list-shared/sport/overview/sport-list-body.component.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { groupBy, keys } from 'lodash-es';\n\nimport { SportTreeItem } from '../../../competition-list/competition-list.models';\n\nexport interface SportListGroup {\n group: string;\n sports: SportTreeItem[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SportListModalService {\n getGroups(links: SportTreeItem[]): SportListGroup[] {\n const grouped = groupBy(links, (link) => link.title.substring(0, 1));\n\n return keys(grouped)\n .map((key) => ({\n group: key,\n sports: grouped[key].sort(this.byName),\n }))\n .sort(this.byLetter);\n }\n\n getSingleGroup(links: SportTreeItem[]): SportListGroup[] {\n return [{ group: '', sports: links.sort(this.byName) }];\n }\n\n private byName = (first: SportTreeItem, second: SportTreeItem): number => first.title.localeCompare(second.title);\n private byLetter = (first: SportListGroup, second: SportListGroup): number => first.group.localeCompare(second.group);\n}\n","