@smarterplan/ngx-smarterplan-core 1.4.13 → 1.4.14
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.
- package/esm2022/lib/pipes/hashtag-from-id.pipe.mjs +26 -7
- package/esm2022/lib/services/matterport-tag-copy.service.mjs +838 -195
- package/esm2022/lib/services/models/comment.service.mjs +35 -1
- package/esm2022/lib/services/models/equipment.service.mjs +4 -2
- package/esm2022/lib/services/models/feature.service.mjs +26 -1
- package/esm2022/lib/services/models/hashtag.service.mjs +29 -2
- package/esm2022/lib/services/s3.service.mjs +29 -1
- package/esm2022/lib/services/utils/matterport-transform.util.mjs +29 -3
- package/fesm2022/smarterplan-ngx-smarterplan-core.mjs +1004 -202
- package/fesm2022/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/pipes/hashtag-from-id.pipe.d.ts +9 -0
- package/lib/services/matterport-tag-copy.service.d.ts +196 -15
- package/lib/services/models/comment.service.d.ts +16 -0
- package/lib/services/models/equipment.service.d.ts +4 -1
- package/lib/services/models/feature.service.d.ts +11 -0
- package/lib/services/models/hashtag.service.d.ts +6 -0
- package/lib/services/s3.service.d.ts +14 -0
- package/lib/services/utils/matterport-transform.util.d.ts +16 -1
- package/package.json +1 -1
|
@@ -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 (
|
|
11
|
-
return
|
|
12
|
-
|
|
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,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaHRhZy1mcm9tLWlkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3BpcGVzL2hhc2h0YWctZnJvbS1pZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFNcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUdkO0lBRFosWUFDWSxjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDdEMsQ0FBQztJQUVMOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDYixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ25ELENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FDMUMsQ0FBQztRQUNGLElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYiw2RUFBNkU7WUFDN0Usd0NBQXdDO1lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0RBQXNELFNBQVMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pGLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNMLENBQUM7d0dBcENRLGlCQUFpQjtzR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxlQUFlO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhhc2h0YWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWxzL2hhc2h0YWcuc2VydmljZSc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnaGFzaHRhZ0Zyb21JRCdcbn0pXG5leHBvcnQgY2xhc3MgSGFzaHRhZ0Zyb21JZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhhc2h0YWdTZXJ2aWNlOiBIYXNodGFnU2VydmljZVxuICAgICkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlcyBhIGhhc2h0YWcgaWQgdG8gaXRzIGRpc3BsYXkgbmFtZS5cbiAgICAgKlxuICAgICAqIFRoZSBjYWNoZSBpcyBjb25zdWx0ZWQgZm9yIFRISVMgaWQsIGFuZCB0aGUgbmV0d29yayBhbnN3ZXJzIHdoZW5ldmVyIHRoZSBpZCBpcyBub3RcbiAgICAgKiBpbiBpdC5cbiAgICAgKlxuICAgICAqIEhhc2h0YWcgaWRzIGFyZSBnbG9iYWxseSB1bmlxdWUsIHNvIGEgY2FjaGUgaG9sZGluZyBlbnRyaWVzIGZyb20gc2V2ZXJhbCBzcGFjZXMgY2FuXG4gICAgICogb25seSBldmVyIHByb2R1Y2UgYSBjb3JyZWN0IGhpdCBvciBhIG1pc3MsIG5ldmVyIGEgd3JvbmcgbmFtZS5cbiAgICAgKi9cbiAgICBhc3luYyB0cmFuc2Zvcm0oaGFzaHRhZ0lEOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBpZiAoIWhhc2h0YWdJRCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmhhc2h0YWdTZXJ2aWNlLmN1cnJlbnRIYXNodGFncy5maW5kKFxuICAgICAgICAgICAgKF9oYXNodGFnKSA9PiBfaGFzaHRhZy5pZCA9PT0gaGFzaHRhZ0lELFxuICAgICAgICApO1xuICAgICAgICBpZiAoY2FjaGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkLm5hbWUgPz8gXCJcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBoYXNodGFnID0gYXdhaXQgdGhpcy5oYXNodGFnU2VydmljZS5nZXRIYXNodGFnKGhhc2h0YWdJRCk7XG4gICAgICAgICAgICByZXR1cm4gaGFzaHRhZz8ubmFtZSA/PyBcIlwiO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gQSBrZXl3b3JkIHRoYXQgY2Fubm90IGJlIHJlYWQgKGRlbGV0ZWQsIG5ldHdvcmsgaGljY3VwKSBtdXN0IG5vdCBicmVhayB0aGVcbiAgICAgICAgICAgIC8vIHJlbmRlcmluZyBvZiB0aGUgUE9JIHRoYXQgY2FycmllcyBpdC5cbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW0hhc2h0YWdGcm9tSWRQaXBlXSBDb3VsZCBub3QgcmVzb2x2ZSB0aGUga2V5d29yZCBcIiR7aGFzaHRhZ0lEfVwiOmAsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
|