123456789101112131415161718192021222324252627 |
- import { concat, every, find, groupBy, head, map, partition } from 'lodash';
- export function dedupAnnotations(annotations: any) {
- let dedup = [];
- // Split events by annotationId property existence
- const events = partition(annotations, 'id');
- const eventsById = groupBy(events[0], 'id');
- dedup = map(eventsById, (eventGroup) => {
- if (eventGroup.length > 1 && !every(eventGroup, isPanelAlert)) {
- // Get first non-panel alert
- return find(eventGroup, (event) => {
- return event.eventType !== 'panel-alert';
- });
- } else {
- return head(eventGroup);
- }
- });
- dedup = concat(dedup, events[1]);
- return dedup;
- }
- function isPanelAlert(event: { eventType: string }) {
- return event.eventType === 'panel-alert';
- }
|