@smarterplan/ngx-smarterplan-core 1.4.15 → 1.4.17
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/README.md +24 -24
- package/esm2022/lib/components/csv-export/csv-export.component.mjs +3 -3
- package/esm2022/lib/components/loader/loader.component.mjs +3 -3
- package/esm2022/lib/components/menu-bar/avatar/avatar.component.mjs +1 -1
- package/esm2022/lib/components/menu-bar/menu-bar.component.mjs +3 -3
- package/esm2022/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
- package/esm2022/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +3 -3
- package/esm2022/lib/components/search-bar/search-bar.component.mjs +3 -3
- package/esm2022/lib/components/support-modal/support-modal.component.mjs +3 -3
- package/esm2022/lib/config.mjs +1 -1
- package/esm2022/lib/helpers.service.mjs +46 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasRenderer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/NestThermostat.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
- package/esm2022/lib/matterport-extensions/security-camera/SecurityCamera.mjs +22 -22
- package/esm2022/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.mjs +22 -22
- package/esm2022/lib/mattertagData.mjs +1 -1
- package/esm2022/lib/ngx-smarterplan-core.module.mjs +1 -1
- package/esm2022/lib/ngx-smarterplan-core.service.mjs +1 -1
- package/esm2022/lib/pipes/duration-to-string.pipe.mjs +1 -1
- package/esm2022/lib/pipes/format-date-number-to-digits.pipe.mjs +1 -1
- package/esm2022/lib/pipes/hashtag-from-id.pipe.mjs +1 -1
- package/esm2022/lib/pipes/safe-url.pipe.mjs +1 -1
- package/esm2022/lib/pipes/time-date-to-local-string.pipe.mjs +1 -1
- package/esm2022/lib/pipes/username-from-id.pipe.mjs +1 -1
- package/esm2022/lib/services/amplify-cache.service.mjs +1 -1
- package/esm2022/lib/services/base-tab.service.mjs +1 -1
- package/esm2022/lib/services/baseVisibility.service.mjs +1 -1
- package/esm2022/lib/services/content.service.mjs +1 -1
- package/esm2022/lib/services/filter.service.mjs +11 -1
- package/esm2022/lib/services/intervention.service.mjs +1 -1
- package/esm2022/lib/services/locale.service.mjs +1 -1
- package/esm2022/lib/services/matterport-import.service.mjs +1 -1
- package/esm2022/lib/services/matterport-measurement.service.mjs +1 -1
- package/esm2022/lib/services/matterport-navigation.service.mjs +1 -1
- package/esm2022/lib/services/matterport-object3d.service.mjs +1 -1
- package/esm2022/lib/services/matterport-pointer.service.mjs +6 -6
- package/esm2022/lib/services/matterport-tag-copy.service.mjs +1 -1
- package/esm2022/lib/services/matterport-tag.service.mjs +1 -1
- package/esm2022/lib/services/matterport.service.mjs +29 -18
- package/esm2022/lib/services/models/affectation.service.mjs +1 -1
- package/esm2022/lib/services/models/base-object.service.mjs +31 -4
- package/esm2022/lib/services/models/capture.service.mjs +1 -1
- package/esm2022/lib/services/models/comment.service.mjs +1 -1
- package/esm2022/lib/services/models/domain.service.mjs +1 -1
- package/esm2022/lib/services/models/equipment.service.mjs +14 -13
- package/esm2022/lib/services/models/event.service.mjs +1 -1
- package/esm2022/lib/services/models/feature.service.mjs +8 -7
- package/esm2022/lib/services/models/hashtag.service.mjs +1 -1
- package/esm2022/lib/services/models/layer.service.mjs +1 -1
- package/esm2022/lib/services/models/measurement.service.mjs +1 -1
- package/esm2022/lib/services/models/mission.service.mjs +1 -1
- package/esm2022/lib/services/models/navigation.service.mjs +1 -1
- package/esm2022/lib/services/models/node.service.mjs +1 -1
- package/esm2022/lib/services/models/object3D.service.mjs +1 -1
- package/esm2022/lib/services/models/operation.service.mjs +1 -1
- package/esm2022/lib/services/models/organisation.service.mjs +1 -1
- package/esm2022/lib/services/models/plan.service.mjs +1 -1
- package/esm2022/lib/services/models/poi.service.mjs +27 -27
- package/esm2022/lib/services/models/profile.service.mjs +1 -1
- package/esm2022/lib/services/models/property.service.mjs +1 -1
- package/esm2022/lib/services/models/space.service.mjs +48 -6
- package/esm2022/lib/services/models/template.service.mjs +1 -1
- package/esm2022/lib/services/models/ticket.service.mjs +27 -8
- package/esm2022/lib/services/models/visit.service.mjs +17 -5
- package/esm2022/lib/services/models/zone.service.mjs +1 -1
- package/esm2022/lib/services/navigator.service.mjs +14 -1
- package/esm2022/lib/services/s3.service.mjs +18 -1
- package/esm2022/lib/services/search.service.mjs +1 -1
- package/esm2022/lib/services/support.service.mjs +1 -1
- package/esm2022/lib/services/tag.service.mjs +16 -16
- package/esm2022/lib/services/threejs-import.service.mjs +151 -0
- package/esm2022/lib/services/threejs.service.mjs +1587 -0
- package/esm2022/lib/services/user.service.mjs +1 -1
- package/esm2022/lib/services/utils/matterport-transform.util.mjs +1 -1
- package/esm2022/lib/services/validators.service.mjs +1 -1
- package/esm2022/lib/services/viewer.service.mjs +402 -5
- package/esm2022/lib/services/zone-drawer.service.mjs +1 -1
- package/esm2022/lib/services/zoneChange.service.mjs +10 -1
- package/esm2022/lib/tokens/matterport-sdk-key.token.mjs +1 -1
- package/esm2022/lib/types.service.mjs +2 -1
- package/esm2022/lib/validators/email.directive.mjs +1 -1
- package/esm2022/lib/validators/no-empty.directive.mjs +1 -1
- package/esm2022/lib/validators/number.directive.mjs +1 -1
- package/esm2022/lib/validators/text.directive.mjs +1 -1
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/smarterplan-ngx-smarterplan-core.mjs +8046 -5724
- package/fesm2022/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/helpers.service.d.ts +43 -0
- package/lib/services/models/base-object.service.d.ts +11 -1
- package/lib/services/models/equipment.service.d.ts +2 -1
- package/lib/services/models/feature.service.d.ts +2 -1
- package/lib/services/models/space.service.d.ts +22 -1
- package/lib/services/models/ticket.service.d.ts +4 -1
- package/lib/services/models/visit.service.d.ts +9 -1
- package/lib/services/s3.service.d.ts +8 -0
- package/lib/services/threejs-import.service.d.ts +31 -0
- package/lib/services/threejs.service.d.ts +521 -0
- package/lib/services/viewer.service.d.ts +152 -1
- package/lib/services/zoneChange.service.d.ts +9 -0
- package/lib/types.service.d.ts +15 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/src/assets/vs-app.json +67 -67
package/lib/helpers.service.d.ts
CHANGED
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
import { NgbModal } from "@ng-bootstrap/ng-bootstrap";
|
|
2
2
|
import { TranslateService } from "@ngx-translate/core";
|
|
3
3
|
import { EquipmentDocument, LevelStatus, Locale, Mission, PoiType, RoleStatus } from "./types.service";
|
|
4
|
+
/**
|
|
5
|
+
* Maps the coordinate space POI positions were captured in onto the loaded model's own space.
|
|
6
|
+
*
|
|
7
|
+
* Tag coordinates come from whichever viewer created them - typically Matterport - and the .glb is
|
|
8
|
+
* a separate capture with its own origin, axes and units. Without this, a tag created in one viewer
|
|
9
|
+
* lands in the wrong place in the other even though both read the same record.
|
|
10
|
+
*/
|
|
11
|
+
export interface ThreeJsAlignment {
|
|
12
|
+
translation?: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
z: number;
|
|
16
|
+
};
|
|
17
|
+
/** Euler angles in radians, applied XYZ. */
|
|
18
|
+
rotation?: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
z: number;
|
|
22
|
+
};
|
|
23
|
+
scale?: number;
|
|
24
|
+
}
|
|
25
|
+
/** Where the camera starts when a Three.js visit is opened. */
|
|
26
|
+
export interface ThreeJsPlacement {
|
|
27
|
+
cameraPosition?: {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
z: number;
|
|
31
|
+
};
|
|
32
|
+
rotation?: {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
z: number;
|
|
36
|
+
};
|
|
37
|
+
alignment?: ThreeJsAlignment;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Parses the placement stored in a Three.js capture's metadata, or null when there is none.
|
|
41
|
+
*
|
|
42
|
+
* Both the import (writing the navigation entry) and the viewer (framing the camera) need this, so
|
|
43
|
+
* it lives here rather than on either service. Placement is optional - the viewer frames the model
|
|
44
|
+
* automatically without it - so unusable metadata is warned about and dropped, never thrown.
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseThreeJsPlacement(metadata: string): ThreeJsPlacement | null;
|
|
4
47
|
export declare function getDistanceBetweenTwoPoints(startPoint: any, endPoint: any): number;
|
|
5
48
|
export declare function poiTypeToString(type: PoiType): string;
|
|
6
49
|
export declare function wait(timeout: number): Promise<void>;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Equipment, Feature, POI, Ticket } from "../../types.service";
|
|
2
2
|
import { NavigationService } from "./navigation.service";
|
|
3
3
|
import { PoiService } from "./poi.service";
|
|
4
|
+
import { VisitService } from "./visit.service";
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class BaseObjectService {
|
|
6
7
|
protected poiService: PoiService;
|
|
7
8
|
private navigationService;
|
|
8
|
-
|
|
9
|
+
private visitService;
|
|
10
|
+
constructor(poiService: PoiService, navigationService: NavigationService, visitService: VisitService);
|
|
9
11
|
getModel3dAndSweep(object: Feature | Ticket | Equipment): Promise<{
|
|
10
12
|
model3D: string;
|
|
11
13
|
sweep: string;
|
|
@@ -14,6 +16,14 @@ export declare class BaseObjectService {
|
|
|
14
16
|
y: number;
|
|
15
17
|
};
|
|
16
18
|
} | void>;
|
|
19
|
+
/**
|
|
20
|
+
* The space's 3D visit, or null when it has none.
|
|
21
|
+
*
|
|
22
|
+
* Takes the first one the database returns. That is not the space's chosen default - the
|
|
23
|
+
* default ordering lives in SpaceService, which cannot be injected here. The POI does not record
|
|
24
|
+
* which capture it was placed in, so with several 3D models this is a guess either way.
|
|
25
|
+
*/
|
|
26
|
+
private getThreeJsVisitForSpace;
|
|
17
27
|
updateIconForAllObjects(objects: Ticket[] | Feature[] | Equipment[], tagIcon: string): Promise<POI[]>;
|
|
18
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseObjectService, never>;
|
|
19
29
|
static ɵprov: i0.ɵɵInjectableDeclaration<BaseObjectService>;
|
|
@@ -10,6 +10,7 @@ import { BaseObjectService } from './base-object.service';
|
|
|
10
10
|
import { NavigationService } from './navigation.service';
|
|
11
11
|
import { OperationService } from './operation.service';
|
|
12
12
|
import { PoiService } from './poi.service';
|
|
13
|
+
import { VisitService } from './visit.service';
|
|
13
14
|
import { TicketsService } from './ticket.service';
|
|
14
15
|
import { ZoneChangeService } from "../zoneChange.service";
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
@@ -49,7 +50,7 @@ export declare class EquipmentService extends BaseObjectService {
|
|
|
49
50
|
awsKinesisAnalytics: any;
|
|
50
51
|
isMuseumUser: boolean;
|
|
51
52
|
private destroy$;
|
|
52
|
-
constructor(apiInjected: any, awsKinesisAnalyticsInjected: any, poiService: PoiService, navigationService: NavigationService, operationService: OperationService, ticketsService: TicketsService, navigatorService: NavigatorService, filterService: FilterService, userService: BaseUserService, viewerService: ViewerService, modalService: NgbModal, zoneChangeService: ZoneChangeService);
|
|
53
|
+
constructor(apiInjected: any, awsKinesisAnalyticsInjected: any, poiService: PoiService, navigationService: NavigationService, visitService: VisitService, operationService: OperationService, ticketsService: TicketsService, navigatorService: NavigatorService, filterService: FilterService, userService: BaseUserService, viewerService: ViewerService, modalService: NgbModal, zoneChangeService: ZoneChangeService);
|
|
53
54
|
readEquipment(id: string): Promise<Equipment>;
|
|
54
55
|
createEquipment(equip: Equipment, imageFile: File, documentFile: File): Promise<Equipment | void>;
|
|
55
56
|
getSignedUrlsForEquipment(equip: Equipment): Promise<Equipment>;
|
|
@@ -9,6 +9,7 @@ import { CommentService } from "./comment.service";
|
|
|
9
9
|
import { HashtagService } from "./hashtag.service";
|
|
10
10
|
import { NavigationService } from "./navigation.service";
|
|
11
11
|
import { PoiService } from "./poi.service";
|
|
12
|
+
import { VisitService } from "./visit.service";
|
|
12
13
|
import { ZoneChangeService } from "../zoneChange.service";
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
export declare class FeatureService extends BaseObjectService {
|
|
@@ -40,7 +41,7 @@ export declare class FeatureService extends BaseObjectService {
|
|
|
40
41
|
currentHashtags: Hashtag[];
|
|
41
42
|
createObservable: Subject<Feature>;
|
|
42
43
|
deleteObservable: Subject<Feature>;
|
|
43
|
-
constructor(apiInjected: any, navigatorService: NavigatorService, filterService: FilterService, poiService: PoiService, commentService: CommentService, userService: BaseUserService, navigationService: NavigationService, hashtagService: HashtagService, zoneChangeService: ZoneChangeService);
|
|
44
|
+
constructor(apiInjected: any, navigatorService: NavigatorService, filterService: FilterService, poiService: PoiService, commentService: CommentService, userService: BaseUserService, navigationService: NavigationService, visitService: VisitService, hashtagService: HashtagService, zoneChangeService: ZoneChangeService);
|
|
44
45
|
createFeature(feature: Feature): Promise<Feature>;
|
|
45
46
|
deleteFeature(feature: Feature): Promise<Feature>;
|
|
46
47
|
updateFeature(feature: any): Promise<Feature>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Subject } from "rxjs";
|
|
2
|
-
import { Space, Layer } from "../../types.service";
|
|
2
|
+
import { Space, Layer, Visit } from "../../types.service";
|
|
3
3
|
import { BaseUserService } from "../user.service";
|
|
4
4
|
import { CaptureService } from "./capture.service";
|
|
5
5
|
import { EquipmentService } from "./equipment.service";
|
|
@@ -33,6 +33,27 @@ export declare class SpaceService {
|
|
|
33
33
|
updateSpace(input: any): Promise<Space>;
|
|
34
34
|
getSpace(id: string): Promise<Space>;
|
|
35
35
|
getModel3DForSpace(spaceID: string): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* The visit the current user is allowed to open for this space.
|
|
38
|
+
*
|
|
39
|
+
* Callers need more than the model reference - which viewer the visit was captured with decides
|
|
40
|
+
* whether it opens in Matterport or Three.js - so the whole visit is returned here.
|
|
41
|
+
*/
|
|
42
|
+
getAllowedVisitForSpace(spaceID: string): Promise<Visit>;
|
|
43
|
+
/**
|
|
44
|
+
* Every visit the current user may open for this space.
|
|
45
|
+
*
|
|
46
|
+
* A site can carry more than one - a Matterport capture plus one or more 3D models - and the
|
|
47
|
+
* viewer offers them as a list, so the caller needs all of them rather than just the first.
|
|
48
|
+
*/
|
|
49
|
+
getAllowedVisitsForSpace(spaceID: string): Promise<Visit[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Sets which capture a visitor opens by default for this space.
|
|
52
|
+
*
|
|
53
|
+
* Pass null to clear it. Writing a single field on the space is what keeps the answer unique:
|
|
54
|
+
* there is nothing to clear elsewhere, and no way for two captures to both claim it.
|
|
55
|
+
*/
|
|
56
|
+
setDefaultCapture(spaceID: string, captureID: string | null): Promise<Space>;
|
|
36
57
|
getAllowedModel3DForSpace(spaceID: string): Promise<string>;
|
|
37
58
|
softDeleteSpace(spaceID: string): Promise<void>;
|
|
38
59
|
/**
|
|
@@ -10,6 +10,7 @@ import { BaseObjectService } from './base-object.service';
|
|
|
10
10
|
import { NavigationService } from './navigation.service';
|
|
11
11
|
import { OperationService } from './operation.service';
|
|
12
12
|
import { PoiService } from './poi.service';
|
|
13
|
+
import { VisitService } from './visit.service';
|
|
13
14
|
import { EventService } from './event.service';
|
|
14
15
|
import { InterventionService } from '../intervention.service';
|
|
15
16
|
import { AffectationService } from './affectation.service';
|
|
@@ -38,6 +39,8 @@ export declare class TicketsService extends BaseObjectService {
|
|
|
38
39
|
}>;
|
|
39
40
|
currentSpaceID: string;
|
|
40
41
|
zoneIDFilter: string;
|
|
42
|
+
/** Set while a viewer without zone navigation (Three.js) is showing a space. */
|
|
43
|
+
private spaceSubscription;
|
|
41
44
|
dateFilter: Date[];
|
|
42
45
|
ticketTypeFilter: TicketType[];
|
|
43
46
|
reportingIcon: import("@iconify/types").IconifyIcon;
|
|
@@ -55,7 +58,7 @@ export declare class TicketsService extends BaseObjectService {
|
|
|
55
58
|
floorsPerSpace: Zone[];
|
|
56
59
|
selectedFloor: Zone;
|
|
57
60
|
private destroy$;
|
|
58
|
-
constructor(awsKinesisAnalyticsInjected: any, apiInjected: any, operationService: OperationService, eventService: EventService, affectationService: AffectationService, poiService: PoiService, userService: BaseUserService, navigatorService: NavigatorService, filterService: FilterService, interventionService: InterventionService, navigationService: NavigationService, viewerService: ViewerService, zoneChangeService: ZoneChangeService, modalService: NgbModal);
|
|
61
|
+
constructor(awsKinesisAnalyticsInjected: any, apiInjected: any, operationService: OperationService, eventService: EventService, affectationService: AffectationService, poiService: PoiService, userService: BaseUserService, navigatorService: NavigatorService, filterService: FilterService, interventionService: InterventionService, navigationService: NavigationService, visitService: VisitService, viewerService: ViewerService, zoneChangeService: ZoneChangeService, modalService: NgbModal);
|
|
59
62
|
initTickets(): Promise<void>;
|
|
60
63
|
adaptTicket(ticket: Ticket): Promise<Ticket>;
|
|
61
64
|
getPriorityColor(ticket: Ticket): string;
|
|
@@ -15,7 +15,15 @@ export declare class VisitService {
|
|
|
15
15
|
private userService;
|
|
16
16
|
choosenPlan: Plan;
|
|
17
17
|
constructor(captureService: CaptureService, nodeService: NodeService, navigationService: NavigationService, zoneService: ZoneService, planService: PlanService, userService: BaseUserService);
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* The visits a user may open for a space.
|
|
20
|
+
*
|
|
21
|
+
* `includeImageCount` drives one S3 listing per node, awaited in sequence, purely to fill
|
|
22
|
+
* `nmbImagesImported`. Callers that only need to know which visits exist - the viewer's model
|
|
23
|
+
* picker, for one - should pass false: waiting on S3 to draw a button is a visible delay, and
|
|
24
|
+
* the count is not read on that path.
|
|
25
|
+
*/
|
|
26
|
+
getVisitsForSpaceForUser(spaceID: string, includeImageCount?: boolean): Promise<Visit[]>;
|
|
19
27
|
deleteVisit(visit: Visit, spaceID: string): Promise<Visit>;
|
|
20
28
|
loadImagesForSpace(space: Space): Promise<any>;
|
|
21
29
|
getDefaultZoneForVisit(visit: Visit): Promise<Zone>;
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { Equipment } from "../types.service";
|
|
2
2
|
export declare const deleteFromS3: (path: any) => Promise<void>;
|
|
3
3
|
export declare const uploadFileToS3: (path: string, file: File, objectId: string | null) => Promise<string>;
|
|
4
|
+
/**
|
|
5
|
+
* Uploads a file, reporting progress as a 0-1 fraction.
|
|
6
|
+
*
|
|
7
|
+
* uploadFileToS3 above swallows progress, which is fine for a photo and unusable for a 3D model:
|
|
8
|
+
* these run to hundreds of megabytes, and an upload with no feedback is indistinguishable from a
|
|
9
|
+
* frozen page. Returns the stored key, which is what gets saved on the record.
|
|
10
|
+
*/
|
|
11
|
+
export declare const uploadFileToS3WithProgress: (path: string, file: File, onProgress?: (fraction: number) => void) => Promise<string>;
|
|
4
12
|
export declare const getSignedImageUrlForEquipment: (equip: Equipment) => Promise<string | null>;
|
|
5
13
|
export declare const getSignedImageUrlForProfile: (profile: any) => Promise<string | void>;
|
|
6
14
|
export declare const getSignedImageUrlForSpace: (space: any) => Promise<string | void>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Layer, Node, Zone } from '../types.service';
|
|
2
|
+
import { LayerService } from './models/layer.service';
|
|
3
|
+
import { NavigationService } from './models/navigation.service';
|
|
4
|
+
import { PlanService } from './models/plan.service';
|
|
5
|
+
import { ZoneService } from './models/zone.service';
|
|
6
|
+
import { BaseUserService } from './user.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class ThreeJsImportService {
|
|
9
|
+
private navigationService;
|
|
10
|
+
private zoneService;
|
|
11
|
+
private layerService;
|
|
12
|
+
private userService;
|
|
13
|
+
private planService;
|
|
14
|
+
private _spaceID;
|
|
15
|
+
get spaceID(): string;
|
|
16
|
+
set spaceID(value: string);
|
|
17
|
+
constructor(navigationService: NavigationService, zoneService: ZoneService, layerService: LayerService, userService: BaseUserService, planService: PlanService);
|
|
18
|
+
/**
|
|
19
|
+
* Checks that an S3 key points at something the viewer can actually load.
|
|
20
|
+
*
|
|
21
|
+
* Returns the reason it can't, or null when it's fine. This runs before anything is written, so a
|
|
22
|
+
* mistyped key fails on the form rather than creating zones and navigation for a model that will
|
|
23
|
+
* 404 the first time someone opens the visit.
|
|
24
|
+
*/
|
|
25
|
+
validateModelKey(key: string): string | null;
|
|
26
|
+
importData(spaceID: string, surface: number, reloading?: boolean, node?: Node, overrideExisting?: boolean, placementMetadata?: string): Promise<boolean>;
|
|
27
|
+
createZone(name: string, layerID: string, surface?: number, parentID?: string, sweeps?: string[], node?: Node, metadata?: string): Promise<Zone>;
|
|
28
|
+
getLayerByName(name: string): Promise<Layer>;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThreeJsImportService, never>;
|
|
30
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ThreeJsImportService>;
|
|
31
|
+
}
|