@smarterplan/ngx-smarterplan-core 1.4.13 → 1.4.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,14 +6,33 @@ export class HashtagFromIdPipe {
6
6
  constructor(hashtagService) {
7
7
  this.hashtagService = hashtagService;
8
8
  }
9
+ /**
10
+ * Resolves a hashtag id to its display name.
11
+ *
12
+ * The cache is consulted for THIS id, and the network answers whenever the id is not
13
+ * in it.
14
+ *
15
+ * Hashtag ids are globally unique, so a cache holding entries from several spaces can
16
+ * only ever produce a correct hit or a miss, never a wrong name.
17
+ */
9
18
  async transform(hashtagID) {
10
- if (this.hashtagService.currentHashtags.length === 0) {
11
- return this.hashtagService.getHashtag(hashtagID).then((hashtag) => {
12
- return hashtag.name;
13
- });
19
+ if (!hashtagID) {
20
+ return "";
21
+ }
22
+ const cached = this.hashtagService.currentHashtags.find((_hashtag) => _hashtag.id === hashtagID);
23
+ if (cached) {
24
+ return cached.name ?? "";
25
+ }
26
+ try {
27
+ const hashtag = await this.hashtagService.getHashtag(hashtagID);
28
+ return hashtag?.name ?? "";
29
+ }
30
+ catch (error) {
31
+ // A keyword that cannot be read (deleted, network hiccup) must not break the
32
+ // rendering of the POI that carries it.
33
+ console.warn(`[HashtagFromIdPipe] Could not resolve the keyword "${hashtagID}":`, error);
34
+ return "";
14
35
  }
15
- const hashtag = this.hashtagService.currentHashtags.find((_hashtag) => _hashtag.id === hashtagID);
16
- return hashtag ? hashtag.name : "";
17
36
  }
18
37
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HashtagFromIdPipe, deps: [{ token: i1.HashtagService }], target: i0.ɵɵFactoryTarget.Pipe });
19
38
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: HashtagFromIdPipe, name: "hashtagFromID" });
@@ -24,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
24
43
  name: 'hashtagFromID'
25
44
  }]
26
45
  }], ctorParameters: () => [{ type: i1.HashtagService }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaHRhZy1mcm9tLWlkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3BpcGVzL2hhc2h0YWctZnJvbS1pZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFNcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUdoQjtJQURaLFlBQ1ksY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3JDLENBQUM7SUFFSixLQUFLLENBQUMsU0FBUyxDQUFDLFNBQWlCO1FBQzdCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25ELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzlELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3BELENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FDMUMsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkMsQ0FBQzt3R0FoQlEsaUJBQWlCO3NHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGVBQWU7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIYXNodGFnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVscy9oYXNodGFnLnNlcnZpY2UnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdoYXNodGFnRnJvbUlEJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSGFzaHRhZ0Zyb21JZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgaGFzaHRhZ1NlcnZpY2U6IEhhc2h0YWdTZXJ2aWNlXHJcbiAgICApIHt9XHJcblxyXG4gICAgYXN5bmMgdHJhbnNmb3JtKGhhc2h0YWdJRDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICBpZiAodGhpcy5oYXNodGFnU2VydmljZS5jdXJyZW50SGFzaHRhZ3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhc2h0YWdTZXJ2aWNlLmdldEhhc2h0YWcoaGFzaHRhZ0lEKS50aGVuKChoYXNodGFnKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFzaHRhZy5uYW1lO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaGFzaHRhZyA9IHRoaXMuaGFzaHRhZ1NlcnZpY2UuY3VycmVudEhhc2h0YWdzLmZpbmQoXHJcbiAgICAgICAgICAgIChfaGFzaHRhZykgPT4gX2hhc2h0YWcuaWQgPT09IGhhc2h0YWdJRCxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBoYXNodGFnID8gaGFzaHRhZy5uYW1lIDogXCJcIjtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaHRhZy1mcm9tLWlkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3BpcGVzL2hhc2h0YWctZnJvbS1pZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFNcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUdkO0lBRFosWUFDWSxjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDdEMsQ0FBQztJQUVMOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDYixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ25ELENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FDMUMsQ0FBQztRQUNGLElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYiw2RUFBNkU7WUFDN0Usd0NBQXdDO1lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0RBQXNELFNBQVMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pGLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNMLENBQUM7d0dBcENRLGlCQUFpQjtzR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxlQUFlO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSGFzaHRhZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbHMvaGFzaHRhZy5zZXJ2aWNlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdoYXNodGFnRnJvbUlEJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSGFzaHRhZ0Zyb21JZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGhhc2h0YWdTZXJ2aWNlOiBIYXNodGFnU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc29sdmVzIGEgaGFzaHRhZyBpZCB0byBpdHMgZGlzcGxheSBuYW1lLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBjYWNoZSBpcyBjb25zdWx0ZWQgZm9yIFRISVMgaWQsIGFuZCB0aGUgbmV0d29yayBhbnN3ZXJzIHdoZW5ldmVyIHRoZSBpZCBpcyBub3RcclxuICAgICAqIGluIGl0LlxyXG4gICAgICpcclxuICAgICAqIEhhc2h0YWcgaWRzIGFyZSBnbG9iYWxseSB1bmlxdWUsIHNvIGEgY2FjaGUgaG9sZGluZyBlbnRyaWVzIGZyb20gc2V2ZXJhbCBzcGFjZXMgY2FuXHJcbiAgICAgKiBvbmx5IGV2ZXIgcHJvZHVjZSBhIGNvcnJlY3QgaGl0IG9yIGEgbWlzcywgbmV2ZXIgYSB3cm9uZyBuYW1lLlxyXG4gICAgICovXHJcbiAgICBhc3luYyB0cmFuc2Zvcm0oaGFzaHRhZ0lEOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIGlmICghaGFzaHRhZ0lEKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY2FjaGVkID0gdGhpcy5oYXNodGFnU2VydmljZS5jdXJyZW50SGFzaHRhZ3MuZmluZChcclxuICAgICAgICAgICAgKF9oYXNodGFnKSA9PiBfaGFzaHRhZy5pZCA9PT0gaGFzaHRhZ0lELFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGNhY2hlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkLm5hbWUgPz8gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhhc2h0YWcgPSBhd2FpdCB0aGlzLmhhc2h0YWdTZXJ2aWNlLmdldEhhc2h0YWcoaGFzaHRhZ0lEKTtcclxuICAgICAgICAgICAgcmV0dXJuIGhhc2h0YWc/Lm5hbWUgPz8gXCJcIjtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAvLyBBIGtleXdvcmQgdGhhdCBjYW5ub3QgYmUgcmVhZCAoZGVsZXRlZCwgbmV0d29yayBoaWNjdXApIG11c3Qgbm90IGJyZWFrIHRoZVxyXG4gICAgICAgICAgICAvLyByZW5kZXJpbmcgb2YgdGhlIFBPSSB0aGF0IGNhcnJpZXMgaXQuXHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW0hhc2h0YWdGcm9tSWRQaXBlXSBDb3VsZCBub3QgcmVzb2x2ZSB0aGUga2V5d29yZCBcIiR7aGFzaHRhZ0lEfVwiOmAsIGVycm9yKTtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=