|
1 | 1 | import { appendHashElement } from '../util/ArrayHash'; |
2 | 2 | import { IgnoreList } from './ignore-list'; |
3 | | -import { Progress } from './types'; |
4 | 3 | import { MarkdownText } from './markdown-text'; |
5 | 4 |
|
6 | 5 | export type Data = Record<string, Category>; |
@@ -55,6 +54,8 @@ export interface DifficultyOfImplementation { |
55 | 54 | resources: number; |
56 | 55 | } |
57 | 56 |
|
| 57 | +const UUID = /([0-9a-f]{6,}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{6,})/i; |
| 58 | + |
58 | 59 | export class ActivityStore { |
59 | 60 | public data: Data = {}; |
60 | 61 | private _activityList: Activity[] = []; |
@@ -122,6 +123,7 @@ export class ActivityStore { |
122 | 123 | this._activityByName = {}; |
123 | 124 | this._activityByUuid = {}; |
124 | 125 | this.buildLookups(this._activityList, this._activityByName, this._activityByUuid, errors); |
| 126 | + this.replaceDependsOnUUids(this._activityList, this._activityByUuid); |
125 | 127 | } |
126 | 128 | this.buildDataHierarchy(this._activityList); |
127 | 129 | this.buildDimensionList(this._activityList); |
@@ -246,6 +248,23 @@ export class ActivityStore { |
246 | 248 | } |
247 | 249 | } |
248 | 250 |
|
| 251 | + /** |
| 252 | + * Substitute dependsOn UUIDs with activity names |
| 253 | + */ |
| 254 | + replaceDependsOnUUids(activityList: Activity[], activityByUuid: Record<string, Activity>) { |
| 255 | + for (let activity of activityList) { |
| 256 | + if (activity.dependsOn && activity.dependsOn.length > 0) { |
| 257 | + for (let i = 0; i < activity.dependsOn.length; i++) { |
| 258 | + if (activity.dependsOn[i].match(UUID)) { |
| 259 | + if (activityByUuid.hasOwnProperty(activity.dependsOn[i])) { |
| 260 | + activity.dependsOn[i] = activityByUuid[activity.dependsOn[i]].name; |
| 261 | + } |
| 262 | + } |
| 263 | + } |
| 264 | + } |
| 265 | + } |
| 266 | + } |
| 267 | + |
249 | 268 | addActivityLookup( |
250 | 269 | activity: Activity, |
251 | 270 | activityByName: Record<string, Activity>, |
|
0 commit comments