@vived/app 4.17.4 → 4.18.0

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.
Files changed (61) hide show
  1. package/lib/Components/ChannelModel/Adapters/channelModelAdapter.d.ts +3 -0
  2. package/lib/Components/ChannelModel/Adapters/channelModelAdapter.js +23 -0
  3. package/lib/Components/ChannelModel/Adapters/channelModelObjectAdapter.d.ts +3 -0
  4. package/lib/Components/ChannelModel/Adapters/channelModelObjectAdapter.js +23 -0
  5. package/lib/Components/ChannelModel/Adapters/index.d.ts +2 -0
  6. package/lib/Components/ChannelModel/Adapters/index.js +14 -0
  7. package/lib/Components/ChannelModel/Controllers/index.d.ts +1 -0
  8. package/lib/Components/ChannelModel/Controllers/index.js +13 -0
  9. package/lib/Components/ChannelModel/Controllers/setModelObjectLabel.d.ts +2 -0
  10. package/lib/Components/ChannelModel/Controllers/setModelObjectLabel.js +14 -0
  11. package/lib/Components/ChannelModel/Entities/ChannelModel.d.ts +132 -34
  12. package/lib/Components/ChannelModel/Entities/ChannelModel.js +138 -23
  13. package/lib/Components/ChannelModel/Entities/ChannelModelObject.d.ts +15 -0
  14. package/lib/Components/ChannelModel/Entities/ChannelModelObject.js +64 -0
  15. package/lib/Components/ChannelModel/Entities/ChannelModelRepo.d.ts +8 -8
  16. package/lib/Components/ChannelModel/Entities/ChannelModelRepo.js +29 -18
  17. package/lib/Components/ChannelModel/Entities/index.d.ts +1 -0
  18. package/lib/Components/ChannelModel/Entities/index.js +1 -0
  19. package/lib/Components/ChannelModel/Mocks/ChannelModelObjectPMMock.d.ts +7 -0
  20. package/lib/Components/ChannelModel/Mocks/ChannelModelObjectPMMock.js +11 -0
  21. package/lib/Components/ChannelModel/Mocks/ChannelModelPMMock.d.ts +7 -0
  22. package/lib/Components/ChannelModel/Mocks/ChannelModelPMMock.js +11 -0
  23. package/lib/Components/ChannelModel/Mocks/ProcessChannelModelUCMock.d.ts +8 -0
  24. package/lib/Components/ChannelModel/Mocks/ProcessChannelModelUCMock.js +15 -0
  25. package/lib/Components/ChannelModel/Mocks/index.d.ts +3 -0
  26. package/lib/Components/ChannelModel/Mocks/index.js +15 -0
  27. package/lib/Components/ChannelModel/PMs/ChannelModelObjectPM.d.ts +12 -0
  28. package/lib/Components/ChannelModel/PMs/ChannelModelObjectPM.js +60 -0
  29. package/lib/Components/ChannelModel/PMs/ChannelModelPM.d.ts +11 -0
  30. package/lib/Components/ChannelModel/PMs/ChannelModelPM.js +66 -0
  31. package/lib/Components/ChannelModel/PMs/index.d.ts +2 -0
  32. package/lib/Components/ChannelModel/PMs/index.js +14 -0
  33. package/lib/Components/ChannelModel/UC/InitializeChannelModelFromGLB.d.ts +0 -0
  34. package/lib/Components/ChannelModel/UC/InitializeChannelModelFromGLB.js +1 -0
  35. package/lib/Components/ChannelModel/UC/SetupChannelModelUC.d.ts +3 -4
  36. package/lib/Components/ChannelModel/UC/SetupChannelModelUC.js +1 -131
  37. package/lib/Components/ChannelModel/index.d.ts +4 -0
  38. package/lib/Components/ChannelModel/index.js +4 -0
  39. package/lib/Components/GLBModel/Entities/GblModelRepo.d.ts +9 -0
  40. package/lib/Components/GLBModel/Entities/GblModelRepo.js +32 -0
  41. package/lib/Components/GLBModel/Entities/GlbModelEntity.d.ts +26 -0
  42. package/lib/Components/GLBModel/Entities/GlbModelEntity.js +56 -0
  43. package/lib/Components/GLBModel/Entities/index.d.ts +2 -0
  44. package/lib/Components/GLBModel/Entities/index.js +14 -0
  45. package/lib/Components/GLBModel/Mocks/LoadGlbFileUCMock.d.ts +8 -0
  46. package/lib/Components/GLBModel/Mocks/LoadGlbFileUCMock.js +15 -0
  47. package/lib/Components/GLBModel/Mocks/index.d.ts +1 -0
  48. package/lib/Components/GLBModel/Mocks/index.js +13 -0
  49. package/lib/Components/GLBModel/UCs/LoadGlbFileUC.d.ts +7 -0
  50. package/lib/Components/GLBModel/UCs/LoadGlbFileUC.js +11 -0
  51. package/lib/Components/GLBModel/UCs/index.d.ts +1 -0
  52. package/lib/Components/GLBModel/UCs/index.js +13 -0
  53. package/lib/Components/GLBModel/index.d.ts +3 -0
  54. package/lib/Components/GLBModel/index.js +15 -0
  55. package/lib/Components/Landmarks/UseCases/DeleteLandmarkUC.js +3 -3
  56. package/lib/Components/index.d.ts +1 -0
  57. package/lib/Components/index.js +1 -0
  58. package/lib/Types/ChannelModelData.d.ts +0 -1
  59. package/lib/Types/index.d.ts +0 -1
  60. package/lib/Types/index.js +0 -1
  61. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ /// <reference types="jest" />
2
+ import { AppObject } from "../../../AppObject";
3
+ import { ChannelModelObjectPM } from "../PMs/ChannelModelObjectPM";
4
+ export declare class ChannelModelObjectPMMock extends ChannelModelObjectPM {
5
+ vmsAreEqual: jest.Mock<any, any>;
6
+ constructor(appObject: AppObject);
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelModelObjectPMMock = void 0;
4
+ const ChannelModelObjectPM_1 = require("../PMs/ChannelModelObjectPM");
5
+ class ChannelModelObjectPMMock extends ChannelModelObjectPM_1.ChannelModelObjectPM {
6
+ constructor(appObject) {
7
+ super(appObject, ChannelModelObjectPM_1.ChannelModelObjectPM.type);
8
+ this.vmsAreEqual = jest.fn();
9
+ }
10
+ }
11
+ exports.ChannelModelObjectPMMock = ChannelModelObjectPMMock;
@@ -0,0 +1,7 @@
1
+ /// <reference types="jest" />
2
+ import { AppObject } from "../../../AppObject";
3
+ import { ChannelModelPM } from "../PMs/ChannelModelPM";
4
+ export declare class ChannelModelPMMock extends ChannelModelPM {
5
+ vmsAreEqual: jest.Mock<any, any>;
6
+ constructor(appObject: AppObject);
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelModelPMMock = void 0;
4
+ const ChannelModelPM_1 = require("../PMs/ChannelModelPM");
5
+ class ChannelModelPMMock extends ChannelModelPM_1.ChannelModelPM {
6
+ constructor(appObject) {
7
+ super(appObject, ChannelModelPM_1.ChannelModelPM.type);
8
+ this.vmsAreEqual = jest.fn();
9
+ }
10
+ }
11
+ exports.ChannelModelPMMock = ChannelModelPMMock;
@@ -0,0 +1,8 @@
1
+ /// <reference types="jest" />
2
+ import { AppObject, AppObjectRepo } from "../../../AppObject";
3
+ import { ProcessChannelModelUC } from "../UC";
4
+ export declare class ProcessChannelModelUCMock extends ProcessChannelModelUC {
5
+ processChannelModel: jest.Mock<any, any>;
6
+ constructor(appObject: AppObject);
7
+ }
8
+ export declare function makeProcessChannelModelUCMock(appObjects: AppObjectRepo): ProcessChannelModelUCMock;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeProcessChannelModelUCMock = exports.ProcessChannelModelUCMock = void 0;
4
+ const UC_1 = require("../UC");
5
+ class ProcessChannelModelUCMock extends UC_1.ProcessChannelModelUC {
6
+ constructor(appObject) {
7
+ super(appObject, UC_1.ProcessChannelModelUC.type);
8
+ this.processChannelModel = jest.fn().mockResolvedValue(undefined);
9
+ }
10
+ }
11
+ exports.ProcessChannelModelUCMock = ProcessChannelModelUCMock;
12
+ function makeProcessChannelModelUCMock(appObjects) {
13
+ return new ProcessChannelModelUCMock(appObjects.getOrCreate("ProcessChannelModelUCMock"));
14
+ }
15
+ exports.makeProcessChannelModelUCMock = makeProcessChannelModelUCMock;
@@ -0,0 +1,3 @@
1
+ export * from "./ChannelModelObjectPMMock";
2
+ export * from "./ChannelModelPMMock";
3
+ export * from "./ProcessChannelModelUCMock";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./ChannelModelObjectPMMock"), exports);
14
+ __exportStar(require("./ChannelModelPMMock"), exports);
15
+ __exportStar(require("./ProcessChannelModelUCMock"), exports);
@@ -0,0 +1,12 @@
1
+ import { AppObject, AppObjectPM, AppObjectRepo } from "../../../AppObject";
2
+ export interface ChannelModelObjectVM {
3
+ label: string;
4
+ labelValidationMessage: string | null;
5
+ tags: string[];
6
+ }
7
+ export declare const defaultChannelModelObjectVM: ChannelModelObjectVM;
8
+ export declare abstract class ChannelModelObjectPM extends AppObjectPM<ChannelModelObjectVM> {
9
+ static type: string;
10
+ static get(id: string, appObjects: AppObjectRepo): ChannelModelObjectPM | undefined;
11
+ }
12
+ export declare function makeChannelModelObjectPM(appObject: AppObject): ChannelModelObjectPM;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeChannelModelObjectPM = exports.ChannelModelObjectPM = exports.defaultChannelModelObjectVM = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const Entities_1 = require("../Entities");
6
+ exports.defaultChannelModelObjectVM = {
7
+ label: "",
8
+ labelValidationMessage: null,
9
+ tags: [],
10
+ };
11
+ class ChannelModelObjectPM extends AppObject_1.AppObjectPM {
12
+ static get(id, appObjects) {
13
+ var _a;
14
+ return (_a = appObjects
15
+ .get(id)) === null || _a === void 0 ? void 0 : _a.getComponent(ChannelModelObjectPM.type);
16
+ }
17
+ }
18
+ exports.ChannelModelObjectPM = ChannelModelObjectPM;
19
+ ChannelModelObjectPM.type = "ChannelModelObjectPM";
20
+ function makeChannelModelObjectPM(appObject) {
21
+ return new ChannelModelObjectPMImp(appObject);
22
+ }
23
+ exports.makeChannelModelObjectPM = makeChannelModelObjectPM;
24
+ class ChannelModelObjectPMImp extends ChannelModelObjectPM {
25
+ constructor(appObject) {
26
+ var _a;
27
+ super(appObject, ChannelModelObjectPM.type);
28
+ this.onEntityChange = () => {
29
+ if (!this.modelObject)
30
+ return;
31
+ const vm = {
32
+ label: this.modelObject.label,
33
+ labelValidationMessage: this.modelObject.labelValidationMessage,
34
+ tags: this.modelObject.tags,
35
+ };
36
+ this.doUpdateView(vm);
37
+ };
38
+ (_a = this.modelObject) === null || _a === void 0 ? void 0 : _a.addChangeObserver(this.onEntityChange);
39
+ this.onEntityChange();
40
+ }
41
+ get modelObject() {
42
+ return this.getCachedLocalComponent(Entities_1.ChannelModelObject.type);
43
+ }
44
+ vmsAreEqual(a, b) {
45
+ if (a.label !== b.label)
46
+ return false;
47
+ if (a.labelValidationMessage !== b.labelValidationMessage)
48
+ return false;
49
+ if (a.tags.length !== b.tags.length)
50
+ return false;
51
+ let tagsAreTheSame = true;
52
+ a.tags.forEach((tagA, i) => {
53
+ const tagB = b.tags[i];
54
+ if (tagA !== tagB) {
55
+ tagsAreTheSame = false;
56
+ }
57
+ });
58
+ return tagsAreTheSame;
59
+ }
60
+ }
@@ -0,0 +1,11 @@
1
+ import { AppObject, AppObjectPM, AppObjectRepo } from "../../../AppObject";
2
+ export interface ChannelModelVM {
3
+ childHasValidationMessage: boolean;
4
+ modelObjectIds: string[];
5
+ }
6
+ export declare const defaultChannelModelVM: ChannelModelVM;
7
+ export declare abstract class ChannelModelPM extends AppObjectPM<ChannelModelVM> {
8
+ static type: string;
9
+ static get(id: string, appObjects: AppObjectRepo): ChannelModelPM | undefined;
10
+ }
11
+ export declare function makeChannelModelPM(appObject: AppObject): ChannelModelPM;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeChannelModelPM = exports.ChannelModelPM = exports.defaultChannelModelVM = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const Entities_1 = require("../Entities");
6
+ exports.defaultChannelModelVM = {
7
+ childHasValidationMessage: false,
8
+ modelObjectIds: [],
9
+ };
10
+ class ChannelModelPM extends AppObject_1.AppObjectPM {
11
+ static get(id, appObjects) {
12
+ var _a;
13
+ return (_a = appObjects
14
+ .get(id)) === null || _a === void 0 ? void 0 : _a.getComponent(ChannelModelPM.type);
15
+ }
16
+ }
17
+ exports.ChannelModelPM = ChannelModelPM;
18
+ ChannelModelPM.type = "ChannelModelPM";
19
+ function makeChannelModelPM(appObject) {
20
+ return new ChannelModelPMImp(appObject);
21
+ }
22
+ exports.makeChannelModelPM = makeChannelModelPM;
23
+ class ChannelModelPMImp extends ChannelModelPM {
24
+ constructor(appObject) {
25
+ var _a;
26
+ super(appObject, ChannelModelPM.type);
27
+ this.onEntityChange = () => {
28
+ if (!this.modelEntity)
29
+ return;
30
+ let childHasValidationMessage = false;
31
+ this.modelEntity.modelObjects().forEach(obj => {
32
+ if (childHasValidationMessage) {
33
+ // Don't need to keep checking
34
+ return;
35
+ }
36
+ if (obj.labelValidationMessage !== null) {
37
+ childHasValidationMessage = true;
38
+ }
39
+ });
40
+ const vm = {
41
+ childHasValidationMessage,
42
+ modelObjectIds: this.modelEntity.modelObjectIds,
43
+ };
44
+ this.doUpdateView(vm);
45
+ };
46
+ (_a = this.modelEntity) === null || _a === void 0 ? void 0 : _a.addChangeObserver(this.onEntityChange);
47
+ this.onEntityChange();
48
+ }
49
+ get modelEntity() {
50
+ return this.getCachedLocalComponent(Entities_1.ChannelModelEntity.type);
51
+ }
52
+ vmsAreEqual(a, b) {
53
+ if (a.childHasValidationMessage !== b.childHasValidationMessage)
54
+ return false;
55
+ if (a.modelObjectIds.length !== b.modelObjectIds.length)
56
+ return false;
57
+ let objectsAreTheSame = true;
58
+ a.modelObjectIds.forEach((objA, i) => {
59
+ const objB = b.modelObjectIds[i];
60
+ if (objA !== objB) {
61
+ objectsAreTheSame = false;
62
+ }
63
+ });
64
+ return objectsAreTheSame;
65
+ }
66
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./ChannelModelObjectPM";
2
+ export * from "./ChannelModelPM";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./ChannelModelObjectPM"), exports);
14
+ __exportStar(require("./ChannelModelPM"), exports);
@@ -1,10 +1,9 @@
1
- import { AppObject, AppObjectRepo, AppObjectUC } from "../../../AppObject";
2
- import { ChannelModel } from "../Entities";
1
+ import { AppObjectRepo, AppObjectUC } from "../../../AppObject";
2
+ import { ChannelModelEntity } from "../Entities";
3
3
  export declare const SCENE_MODEL_DATA_ASSET_LINK_TYPE = "default_model_data";
4
4
  export declare abstract class SetupChannelModelUC extends AppObjectUC {
5
5
  static readonly type: string;
6
6
  static readonly SCENE_MODEL_DATA_ASSET_LINK_TYPE = "default_model_data";
7
- abstract setupChannelModel(modelID: string): Promise<ChannelModel>;
7
+ abstract setupChannelModel(modelID: string): Promise<ChannelModelEntity>;
8
8
  static get: (appObjects: AppObjectRepo) => SetupChannelModelUC | undefined;
9
9
  }
10
- export declare function makeSetupChannelModelUC(appObject: AppObject): SetupChannelModelUC;
@@ -1,22 +1,7 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.makeSetupChannelModelUC = exports.SetupChannelModelUC = exports.SCENE_MODEL_DATA_ASSET_LINK_TYPE = void 0;
3
+ exports.SetupChannelModelUC = exports.SCENE_MODEL_DATA_ASSET_LINK_TYPE = void 0;
13
4
  const AppObject_1 = require("../../../AppObject");
14
- const ValueObjects_1 = require("../../../ValueObjects");
15
- const Dispatcher_1 = require("../../Dispatcher");
16
- const Label_1 = require("../../Label");
17
- const Mesh_1 = require("../../Mesh");
18
- const Entities_1 = require("../Entities");
19
- const ProcessChannelModelUC_1 = require("./ProcessChannelModelUC");
20
5
  exports.SCENE_MODEL_DATA_ASSET_LINK_TYPE = "default_model_data";
21
6
  class SetupChannelModelUC extends AppObject_1.AppObjectUC {
22
7
  }
@@ -24,118 +9,3 @@ exports.SetupChannelModelUC = SetupChannelModelUC;
24
9
  SetupChannelModelUC.type = "SetupChannelModelUC";
25
10
  SetupChannelModelUC.SCENE_MODEL_DATA_ASSET_LINK_TYPE = "default_model_data";
26
11
  SetupChannelModelUC.get = (appObjects) => AppObject_1.getSingletonComponent(SetupChannelModelUC.type, appObjects);
27
- function makeSetupChannelModelUC(appObject) {
28
- return new SetupChannelModelUCImp(appObject);
29
- }
30
- exports.makeSetupChannelModelUC = makeSetupChannelModelUC;
31
- class SetupChannelModelUCImp extends SetupChannelModelUC {
32
- constructor(appObject) {
33
- super(appObject, SetupChannelModelUC.type);
34
- this.setupChannelModel = (modelID) => __awaiter(this, void 0, void 0, function* () {
35
- const channelModelRepo = this.appObject.getComponent(Entities_1.ChannelModelRepo.type);
36
- if (!channelModelRepo) {
37
- this.warn("Unable to get channelModelRepo from the model repo App Object");
38
- return Promise.reject(new Error("No Channel Model Repo"));
39
- }
40
- const processModel = ProcessChannelModelUC_1.ProcessChannelModelUC.get(this.appObjects);
41
- if (!processModel) {
42
- return Promise.reject(new Error("No Process ModelUC"));
43
- }
44
- const appObj = this.appObjects.getOrCreate(modelID);
45
- const channelModel = channelModelRepo.makeIfMissing(appObj);
46
- if (channelModel.state === Entities_1.ChannelModelState.LOADING) {
47
- return Promise.resolve(channelModel);
48
- }
49
- if (channelModel.state === Entities_1.ChannelModelState.READY) {
50
- return Promise.resolve(channelModel);
51
- }
52
- channelModel.modelError = undefined;
53
- channelModel.state = Entities_1.ChannelModelState.LOADING;
54
- channelModelRepo.isLoadingChannelModel = true;
55
- const spinner = Dispatcher_1.ShowSpinnerUC.get(this.appObjects);
56
- let closeSpinner = () => {
57
- // done
58
- };
59
- if (spinner) {
60
- closeSpinner = yield spinner.showSpinner("Loading active model and data", "Loading...");
61
- }
62
- try {
63
- const { bounds_max, bounds_min, defaultPosition, defaultRotation, defaultScale, name, objects, } = yield this.modelDataLoader(modelID);
64
- channelModel.name = name;
65
- channelModel.bounds_max = ValueObjects_1.Vector3.FromDTO(bounds_max);
66
- channelModel.bounds_min = ValueObjects_1.Vector3.FromDTO(bounds_min);
67
- channelModel.defaultPosition = ValueObjects_1.Vector3.FromDTO(defaultPosition);
68
- channelModel.defaultScale = defaultScale;
69
- channelModel.defaultRotation = ValueObjects_1.Quaternion.FromDTO(defaultRotation);
70
- const meshes = [];
71
- objects.forEach((mesh) => {
72
- const { id, label, meshPaths } = mesh;
73
- meshes.push(mesh.id);
74
- this.setupMeshObject(id, label, meshPaths);
75
- });
76
- channelModel.meshList = meshes;
77
- yield processModel.processChannelModel(modelID);
78
- channelModel.state = Entities_1.ChannelModelState.READY;
79
- channelModelRepo.isLoadingChannelModel = false;
80
- Dispatcher_1.dispatchStateChange(this.appObjects);
81
- closeSpinner();
82
- return Promise.resolve(channelModel);
83
- }
84
- catch (e) {
85
- const error = e;
86
- if (channelModelRepo) {
87
- channelModelRepo.isLoadingChannelModel = false;
88
- }
89
- channelModel.modelError = error;
90
- closeSpinner();
91
- const alertDTO = {
92
- title: "Load Error",
93
- message: `Failed to Load the Model and Data. Error message: ${error.message}`,
94
- closeButtonLabel: "OK",
95
- closeCallback: () => {
96
- // done
97
- },
98
- };
99
- const showAlertUC = Dispatcher_1.ShowAlertUC.get(this.appObjects);
100
- if (showAlertUC) {
101
- showAlertUC.showAlert(alertDTO);
102
- }
103
- else {
104
- this.warn(alertDTO.message);
105
- }
106
- return Promise.reject(error);
107
- }
108
- });
109
- }
110
- setupMeshObject(id, label, meshPaths) {
111
- const appObj = this.appObjects.getOrCreate(id);
112
- const labelEntity = Label_1.Label.addIfMissing(appObj);
113
- labelEntity.default = label;
114
- const meshEntity = Mesh_1.Mesh.addIfMissing(appObj);
115
- meshPaths.forEach((meshPath) => {
116
- meshEntity.addSubMesh({
117
- meshPath,
118
- neutralPosition: ValueObjects_1.Vector3.Zero(),
119
- neutralRotation: ValueObjects_1.Quaternion.Identity(),
120
- neutralScale: ValueObjects_1.Vector3.One(),
121
- });
122
- });
123
- }
124
- modelDataLoader(modelID) {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- try {
127
- const dataAssets = yield Dispatcher_1.getLinkedAssets(modelID, SetupChannelModelUC.SCENE_MODEL_DATA_ASSET_LINK_TYPE, this.appObjects);
128
- if (dataAssets.length === 0) {
129
- return Promise.reject(new Error("Model asset does not have data"));
130
- }
131
- const dataFileBlobURL = yield Dispatcher_1.getAssetBlobURL(dataAssets[0].id, this.appObjects);
132
- const fetchDataResp = yield fetch(dataFileBlobURL);
133
- const modelJSONData = yield fetchDataResp.json();
134
- return Promise.resolve(modelJSONData);
135
- }
136
- catch (e) {
137
- return Promise.reject(e);
138
- }
139
- });
140
- }
141
- }
@@ -1,2 +1,6 @@
1
+ export * from "./Adapters";
2
+ export * from "./Controllers";
1
3
  export * from "./Entities";
4
+ export * from "./Mocks";
5
+ export * from "./PMs";
2
6
  export * from "./UC";
@@ -10,5 +10,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Adapters"), exports);
14
+ __exportStar(require("./Controllers"), exports);
13
15
  __exportStar(require("./Entities"), exports);
16
+ __exportStar(require("./Mocks"), exports);
17
+ __exportStar(require("./PMs"), exports);
14
18
  __exportStar(require("./UC"), exports);
@@ -0,0 +1,9 @@
1
+ import { AppObject, AppObjectEntityRepo, AppObjectRepo } from "../../../AppObject";
2
+ import { GlbModelEntity } from "./GlbModelEntity";
3
+ export declare abstract class GlbModelRepo extends AppObjectEntityRepo<GlbModelEntity> {
4
+ static type: string;
5
+ abstract sceneModelFactory(id: string): GlbModelEntity;
6
+ abstract createSceneModel(id?: string): GlbModelEntity;
7
+ static get(appObjects: AppObjectRepo): GlbModelRepo | undefined;
8
+ }
9
+ export declare function makeGlbModelRepo(appObject: AppObject): GlbModelRepo;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeGlbModelRepo = exports.GlbModelRepo = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const Utilities_1 = require("../../../Utilities");
6
+ const GlbModelEntity_1 = require("./GlbModelEntity");
7
+ class GlbModelRepo extends AppObject_1.AppObjectEntityRepo {
8
+ static get(appObjects) {
9
+ return AppObject_1.getSingletonComponent(GlbModelRepo.type, appObjects);
10
+ }
11
+ }
12
+ exports.GlbModelRepo = GlbModelRepo;
13
+ GlbModelRepo.type = "GlbModelRepo";
14
+ function makeGlbModelRepo(appObject) {
15
+ return new GlbModelRepoImp(appObject);
16
+ }
17
+ exports.makeGlbModelRepo = makeGlbModelRepo;
18
+ class GlbModelRepoImp extends GlbModelRepo {
19
+ constructor(appObject) {
20
+ super(appObject, GlbModelRepo.type);
21
+ this.sceneModelFactory = (id) => {
22
+ const ao = this.appObjects.getOrCreate(id);
23
+ return GlbModelEntity_1.makeGlbModelEntity(ao);
24
+ };
25
+ this.createSceneModel = (id) => {
26
+ const idToUse = id !== null && id !== void 0 ? id : Utilities_1.generateUniqueID();
27
+ const object = this.sceneModelFactory(idToUse);
28
+ this.add(object);
29
+ return object;
30
+ };
31
+ }
32
+ }
@@ -0,0 +1,26 @@
1
+ import { AppObject, AppObjectEntity } from "../../../AppObject";
2
+ export declare enum GlbModelState {
3
+ INIT = "Initialized",
4
+ LOADING = "Loading",
5
+ READY = "Ready",
6
+ ERROR = "Error"
7
+ }
8
+ export interface GLBMesh {
9
+ path: string;
10
+ name: string;
11
+ mesh: unknown;
12
+ }
13
+ export declare abstract class GlbModelEntity extends AppObjectEntity {
14
+ static type: string;
15
+ abstract get id(): string;
16
+ abstract get state(): GlbModelState;
17
+ abstract set state(val: GlbModelState);
18
+ abstract get modelError(): Error | undefined;
19
+ abstract set modelError(val: Error | undefined);
20
+ abstract rootNode?: unknown;
21
+ abstract hasMesh(path: string): boolean;
22
+ abstract getMesh(path: string): GLBMesh | undefined;
23
+ abstract addMesh(mesh: GLBMesh): void;
24
+ abstract getAllMeshes(): GLBMesh[];
25
+ }
26
+ export declare function makeGlbModelEntity(appObject: AppObject): GlbModelEntity;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeGlbModelEntity = exports.GlbModelEntity = exports.GlbModelState = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const Entities_1 = require("../../../Entities");
6
+ var GlbModelState;
7
+ (function (GlbModelState) {
8
+ GlbModelState["INIT"] = "Initialized";
9
+ GlbModelState["LOADING"] = "Loading";
10
+ GlbModelState["READY"] = "Ready";
11
+ GlbModelState["ERROR"] = "Error";
12
+ })(GlbModelState = exports.GlbModelState || (exports.GlbModelState = {}));
13
+ class GlbModelEntity extends AppObject_1.AppObjectEntity {
14
+ }
15
+ exports.GlbModelEntity = GlbModelEntity;
16
+ GlbModelEntity.type = "GlbModelEntity";
17
+ function makeGlbModelEntity(appObject) {
18
+ return new GlbModelEntityImp(appObject);
19
+ }
20
+ exports.makeGlbModelEntity = makeGlbModelEntity;
21
+ class GlbModelEntityImp extends GlbModelEntity {
22
+ constructor(appObject) {
23
+ super(appObject, GlbModelEntity.type);
24
+ this._state = new Entities_1.MemoizedString(GlbModelState.INIT, this.notifyOnChange);
25
+ this.meshLookup = new Map();
26
+ this.hasMesh = (id) => {
27
+ return this.meshLookup.has(id);
28
+ };
29
+ this.getMesh = (path) => {
30
+ return this.meshLookup.get(path);
31
+ };
32
+ this.addMesh = (mesh) => {
33
+ this.meshLookup.set(mesh.path, mesh);
34
+ this.notifyOnChange();
35
+ };
36
+ this.getAllMeshes = () => {
37
+ return Array.from(this.meshLookup.values());
38
+ };
39
+ }
40
+ get id() {
41
+ return this.appObject.id;
42
+ }
43
+ get state() {
44
+ return this._state.val;
45
+ }
46
+ set state(val) {
47
+ this._state.val = val;
48
+ }
49
+ get modelError() {
50
+ return this._error;
51
+ }
52
+ set modelError(val) {
53
+ this._error = val;
54
+ this._state.val = GlbModelState.ERROR;
55
+ }
56
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./GblModelRepo";
2
+ export * from "./GlbModelEntity";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./GblModelRepo"), exports);
14
+ __exportStar(require("./GlbModelEntity"), exports);
@@ -0,0 +1,8 @@
1
+ /// <reference types="jest" />
2
+ import { AppObject, AppObjectRepo } from "../../../AppObject";
3
+ import { LoadGlbFileUC } from "../UCs/LoadGlbFileUC";
4
+ export declare class LoadGlbFileUCMock extends LoadGlbFileUC {
5
+ loadFile: jest.Mock<any, any>;
6
+ constructor(appObject: AppObject);
7
+ }
8
+ export declare function makeLoadGlbFileUCMock(appObjects: AppObjectRepo): LoadGlbFileUCMock;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeLoadGlbFileUCMock = exports.LoadGlbFileUCMock = void 0;
4
+ const LoadGlbFileUC_1 = require("../UCs/LoadGlbFileUC");
5
+ class LoadGlbFileUCMock extends LoadGlbFileUC_1.LoadGlbFileUC {
6
+ constructor(appObject) {
7
+ super(appObject, LoadGlbFileUC_1.LoadGlbFileUC.type);
8
+ this.loadFile = jest.fn().mockResolvedValue(undefined);
9
+ }
10
+ }
11
+ exports.LoadGlbFileUCMock = LoadGlbFileUCMock;
12
+ function makeLoadGlbFileUCMock(appObjects) {
13
+ return new LoadGlbFileUCMock(appObjects.getOrCreate("LoadGlbFileUCMock"));
14
+ }
15
+ exports.makeLoadGlbFileUCMock = makeLoadGlbFileUCMock;
@@ -0,0 +1 @@
1
+ export * from "./LoadGlbFileUCMock";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./LoadGlbFileUCMock"), exports);
@@ -0,0 +1,7 @@
1
+ import { AppObjectRepo, AppObjectUC } from "../../../AppObject";
2
+ import { GlbModelEntity } from "../Entities/GlbModelEntity";
3
+ export declare abstract class LoadGlbFileUC extends AppObjectUC {
4
+ static type: string;
5
+ abstract loadFile(file: File, glbEntity: GlbModelEntity): Promise<void>;
6
+ static get(appObjects: AppObjectRepo): LoadGlbFileUC | undefined;
7
+ }