@vived/app 3.1.1 → 3.2.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.
@@ -3,8 +3,7 @@ import { AppObjectComponent } from "./AppObjectComponent";
3
3
  import { AppObjectRepo } from "./AppObjectRepo";
4
4
  export declare abstract class AppObject extends ObservableEntity {
5
5
  abstract readonly id: string;
6
- abstract get enabled(): boolean;
7
- abstract set enabled(val: boolean);
6
+ abstract readonly appObjectRepo: AppObjectRepo;
8
7
  abstract hasComponent(type: string): boolean;
9
8
  abstract addComponent(component: AppObjectComponent): void;
10
9
  abstract getComponent<T extends AppObjectComponent>(type: string): T | undefined;
@@ -12,25 +12,18 @@ exports.makeAppObject = makeAppObject;
12
12
  class AppObjectImp extends AppObject {
13
13
  constructor(id, repo) {
14
14
  super();
15
- this.repo = repo;
16
- this.memoizedEnabled = new Entities_1.MemoizedBoolean(true, this.notify);
17
15
  this.componentLookup = new Map();
18
16
  this.dispose = () => {
19
17
  const components = Array.from(this.componentLookup.values());
20
18
  this.componentLookup.clear();
21
19
  components.forEach(c => c.dispose());
22
- if (this.repo.has(this.id)) {
23
- this.repo.remove(this.id);
20
+ if (this.appObjectRepo.has(this.id)) {
21
+ this.appObjectRepo.remove(this.id);
24
22
  }
25
23
  };
26
24
  this.id = id;
27
- this.repo.add(this);
28
- }
29
- get enabled() {
30
- return this.memoizedEnabled.val;
31
- }
32
- set enabled(val) {
33
- this.memoizedEnabled.val = val;
25
+ this.appObjectRepo = repo;
26
+ this.appObjectRepo.add(this);
34
27
  }
35
28
  hasComponent(type) {
36
29
  return this.componentLookup.has(type);
@@ -5,4 +5,3 @@ export * from "./AppObjectPM";
5
5
  export * from "./AppObjectRepo";
6
6
  export * from "./AppObjectUC";
7
7
  export * from "./AppObjectController";
8
- export * from "./IsEnabledPM";
@@ -17,4 +17,3 @@ __exportStar(require("./AppObjectPM"), exports);
17
17
  __exportStar(require("./AppObjectRepo"), exports);
18
18
  __exportStar(require("./AppObjectUC"), exports);
19
19
  __exportStar(require("./AppObjectController"), exports);
20
- __exportStar(require("./IsEnabledPM"), exports);
@@ -0,0 +1,16 @@
1
+ import { AppObject } from "../../../AppObject/AppObject";
2
+ import { AppObjectEntity } from "../../../AppObject/AppObjectEntity";
3
+ export declare abstract class EnablablementEntity extends AppObjectEntity {
4
+ static readonly type = "EnablablementEntity";
5
+ abstract get enabled(): boolean;
6
+ abstract set enabled(enabled: boolean);
7
+ static get(appObj: AppObject): EnablablementEntity | undefined;
8
+ }
9
+ export declare function makeEnablableEntity(appObject: AppObject): EnablableImp;
10
+ declare class EnablableImp extends EnablablementEntity {
11
+ private memoizedEnabled;
12
+ get enabled(): boolean;
13
+ set enabled(enabled: boolean);
14
+ constructor(appObject: AppObject);
15
+ }
16
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeEnablableEntity = exports.EnablablementEntity = void 0;
4
+ const AppObjectEntity_1 = require("../../../AppObject/AppObjectEntity");
5
+ const Entities_1 = require("../../../Entities");
6
+ class EnablablementEntity extends AppObjectEntity_1.AppObjectEntity {
7
+ static get(appObj) {
8
+ return appObj.getComponent(this.type);
9
+ }
10
+ }
11
+ exports.EnablablementEntity = EnablablementEntity;
12
+ EnablablementEntity.type = "EnablablementEntity";
13
+ function makeEnablableEntity(appObject) {
14
+ return new EnablableImp(appObject);
15
+ }
16
+ exports.makeEnablableEntity = makeEnablableEntity;
17
+ class EnablableImp extends EnablablementEntity {
18
+ constructor(appObject) {
19
+ super(appObject, EnablablementEntity.type);
20
+ this.memoizedEnabled = new Entities_1.MemoizedBoolean(true, this.notifyOnChange);
21
+ }
22
+ get enabled() {
23
+ return this.memoizedEnabled.val;
24
+ }
25
+ set enabled(enabled) {
26
+ this.memoizedEnabled.val = enabled;
27
+ }
28
+ }
@@ -0,0 +1,14 @@
1
+ import { AppObject } from "../../../AppObject/AppObject";
2
+ import { AppObjectPM } from "../../../AppObject/AppObjectPM";
3
+ export interface EnablableStateVM {
4
+ enabled: boolean;
5
+ }
6
+ export declare class EnablableStatePM extends AppObjectPM<EnablableStateVM> {
7
+ static readonly type = "EnablableStatePM";
8
+ private enablable?;
9
+ onEnablableStateChange: () => void;
10
+ vmsAreEqual(a: EnablableStateVM, b: EnablableStateVM): boolean;
11
+ dispose: () => void;
12
+ constructor(appObject: AppObject);
13
+ static defaultVM: EnablableStateVM;
14
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnablableStatePM = void 0;
4
+ const AppObjectPM_1 = require("../../../AppObject/AppObjectPM");
5
+ const EnablablementEntity_1 = require("../Entities/EnablablementEntity");
6
+ class EnablableStatePM extends AppObjectPM_1.AppObjectPM {
7
+ constructor(appObject) {
8
+ super(appObject, EnablableStatePM.type);
9
+ this.onEnablableStateChange = () => {
10
+ if (!this.enablable)
11
+ return;
12
+ const vm = {
13
+ enabled: this.enablable.enabled
14
+ };
15
+ this.doUpdateView(vm);
16
+ };
17
+ this.dispose = () => {
18
+ var _a, _b;
19
+ super.dispose();
20
+ (_a = this.enablable) === null || _a === void 0 ? void 0 : _a.removeChangeObserver(this.onEnablableStateChange);
21
+ (_b = this.enablable) === null || _b === void 0 ? void 0 : _b.removeChangeObserver(this.dispose);
22
+ };
23
+ this.enablable = EnablablementEntity_1.EnablablementEntity.get(appObject);
24
+ if (!this.enablable) {
25
+ console.warn("[EnablableStatePM] App Object does not have a Enablable Entity");
26
+ this.dispose();
27
+ return;
28
+ }
29
+ this.enablable.addChangeObserver(this.onEnablableStateChange);
30
+ this.enablable.addOnDisposeObserver(this.dispose);
31
+ this.onEnablableStateChange();
32
+ }
33
+ vmsAreEqual(a, b) {
34
+ return a.enabled === b.enabled;
35
+ }
36
+ }
37
+ exports.EnablableStatePM = EnablableStatePM;
38
+ EnablableStatePM.type = "EnablableStatePM";
39
+ EnablableStatePM.defaultVM = {
40
+ enabled: false
41
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./Entities/EnablablementEntity";
2
+ export * from "./PM/EnablableStatePM";
@@ -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("./Entities/EnablablementEntity"), exports);
14
+ __exportStar(require("./PM/EnablableStatePM"), exports);
@@ -1,4 +1,5 @@
1
1
  export * from "./ChannelModel";
2
+ export * from "./Enablement";
2
3
  export * from "./Hideable";
3
4
  export * from "./Label";
4
5
  export * from "./Mesh";
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./ChannelModel"), exports);
14
+ __exportStar(require("./Enablement"), exports);
14
15
  __exportStar(require("./Hideable"), exports);
15
16
  __exportStar(require("./Label"), exports);
16
17
  __exportStar(require("./Mesh"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vived/app",
3
- "version": "3.1.1",
3
+ "version": "3.2.0",
4
4
  "description": "Public package for the VIVED Learning App system",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",