@vived/host 3.0.0 → 3.1.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.
- package/lib/Components/Assets/Entities/AssetEntity.d.ts +1 -1
- package/lib/Components/Assets/Entities/AssetEntity.js +11 -9
- package/lib/Components/Assets/Mocks/MockPrefetchAssets.d.ts +8 -0
- package/lib/Components/Assets/Mocks/MockPrefetchAssets.js +15 -0
- package/lib/Components/Assets/Mocks/index.d.ts +1 -0
- package/lib/Components/Assets/Mocks/index.js +1 -0
- package/lib/Components/Assets/UCs/PrefetchAssetsUC.d.ts +7 -0
- package/lib/Components/Assets/UCs/PrefetchAssetsUC.js +69 -0
- package/lib/Components/Assets/UCs/index.d.ts +9 -8
- package/lib/Components/Assets/UCs/index.js +1 -0
- package/lib/Components/Handler/UCs/HasNextStateHandler.js +15 -2
- package/lib/Components/Handler/UCs/HasPreviousStateHandler.js +15 -2
- package/lib/Components/Handler/UCs/OnStateChangeHandler.d.ts +3 -1
- package/lib/Components/Handler/UCs/OnStateChangeHandler.js +39 -2
- package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdapter.d.ts +3 -0
- package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdapter.js +23 -0
- package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdater.d.ts +3 -0
- package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdater.js +23 -0
- package/lib/Components/StateMachine/Adapters/index.d.ts +2 -0
- package/lib/Components/StateMachine/Adapters/index.js +14 -0
- package/lib/Components/StateMachine/Adapters/isEditingPMAdapter.d.ts +3 -0
- package/lib/Components/StateMachine/Adapters/isEditingPMAdapter.js +23 -0
- package/lib/Components/StateMachine/Controllers/deleteState.d.ts +2 -0
- package/lib/Components/StateMachine/Controllers/deleteState.js +13 -0
- package/lib/Components/StateMachine/Controllers/duplicateState.d.ts +2 -0
- package/lib/Components/StateMachine/Controllers/duplicateState.js +13 -0
- package/lib/Components/StateMachine/Controllers/index.d.ts +2 -0
- package/lib/Components/StateMachine/Controllers/index.js +14 -0
- package/lib/Components/StateMachine/Entities/HostEditingStateEntity.d.ts +16 -0
- package/lib/Components/StateMachine/Entities/HostEditingStateEntity.js +121 -0
- package/lib/Components/StateMachine/Entities/HostStateEntity.d.ts +31 -0
- package/lib/Components/StateMachine/Entities/HostStateEntity.js +124 -0
- package/lib/Components/StateMachine/Entities/HostStateMachine.d.ts +20 -0
- package/lib/Components/StateMachine/Entities/HostStateMachine.js +161 -0
- package/lib/Components/StateMachine/Entities/index.d.ts +3 -0
- package/lib/Components/StateMachine/Entities/index.js +15 -0
- package/lib/Components/StateMachine/Mocks/MockDeleteStateUC.d.ts +8 -0
- package/lib/Components/StateMachine/Mocks/MockDeleteStateUC.js +15 -0
- package/lib/Components/StateMachine/Mocks/MockDuplicateStateUC.d.ts +8 -0
- package/lib/Components/StateMachine/Mocks/MockDuplicateStateUC.js +15 -0
- package/lib/Components/StateMachine/Mocks/MockHostEditingStateEntity.d.ts +16 -0
- package/lib/Components/StateMachine/Mocks/MockHostEditingStateEntity.js +30 -0
- package/lib/Components/StateMachine/Mocks/MockHostStateMachinePM.d.ts +8 -0
- package/lib/Components/StateMachine/Mocks/MockHostStateMachinePM.js +15 -0
- package/lib/Components/StateMachine/Mocks/MockIsEditingStatePM.d.ts +8 -0
- package/lib/Components/StateMachine/Mocks/MockIsEditingStatePM.js +15 -0
- package/lib/Components/StateMachine/Mocks/MockStateEntity.d.ts +16 -0
- package/lib/Components/StateMachine/Mocks/MockStateEntity.js +27 -0
- package/lib/Components/StateMachine/Mocks/index.d.ts +6 -0
- package/lib/Components/StateMachine/Mocks/index.js +18 -0
- package/lib/Components/StateMachine/PMs/EditingStatePM.d.ts +19 -0
- package/lib/Components/StateMachine/PMs/EditingStatePM.js +54 -0
- package/lib/Components/StateMachine/PMs/HostStateMachinePM.d.ts +23 -0
- package/lib/Components/StateMachine/PMs/HostStateMachinePM.js +70 -0
- package/lib/Components/StateMachine/PMs/IsEditingStatePM.d.ts +13 -0
- package/lib/Components/StateMachine/PMs/IsEditingStatePM.js +36 -0
- package/lib/Components/StateMachine/PMs/index.d.ts +2 -0
- package/lib/Components/StateMachine/PMs/index.js +14 -0
- package/lib/Components/StateMachine/UCs/DeleteStateUC.d.ts +7 -0
- package/lib/Components/StateMachine/UCs/DeleteStateUC.js +37 -0
- package/lib/Components/StateMachine/UCs/DuplicateStateUC.d.ts +7 -0
- package/lib/Components/StateMachine/UCs/DuplicateStateUC.js +39 -0
- package/lib/Components/StateMachine/UCs/index.d.ts +2 -0
- package/lib/Components/StateMachine/UCs/index.js +14 -0
- package/lib/Components/StateMachine/index.d.ts +6 -0
- package/lib/Components/StateMachine/index.js +18 -0
- package/lib/Components/index.d.ts +1 -0
- package/lib/Components/index.js +1 -0
- package/lib/Types/ReactHookPmAdapter.d.ts +6 -0
- package/lib/Types/ReactHookPmAdapter.js +2 -0
- package/lib/Types/index.d.ts +1 -0
- package/lib/Types/index.js +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HostAppObject, HostAppObjectEntity } from
|
|
1
|
+
import { HostAppObject, HostAppObjectEntity } from "../../../HostAppObject";
|
|
2
2
|
export declare abstract class AssetEntity extends HostAppObjectEntity {
|
|
3
3
|
static type: string;
|
|
4
4
|
abstract readonly id: string;
|
|
@@ -7,13 +7,13 @@ class AssetEntity extends HostAppObject_1.HostAppObjectEntity {
|
|
|
7
7
|
static get(appObject) {
|
|
8
8
|
const asset = appObject.getComponent(AssetEntity.type);
|
|
9
9
|
if (!asset) {
|
|
10
|
-
appObject.appObjectRepo.submitWarning(
|
|
10
|
+
appObject.appObjectRepo.submitWarning("AssetEntity.get", "Unable to find AssetEntity on app object " + appObject.id);
|
|
11
11
|
}
|
|
12
12
|
return asset;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
exports.AssetEntity = AssetEntity;
|
|
16
|
-
AssetEntity.type =
|
|
16
|
+
AssetEntity.type = "AssetEntity";
|
|
17
17
|
function makeAssetEntity(appObject) {
|
|
18
18
|
return new AssetImp(appObject);
|
|
19
19
|
}
|
|
@@ -21,12 +21,12 @@ exports.makeAssetEntity = makeAssetEntity;
|
|
|
21
21
|
class AssetImp extends AssetEntity {
|
|
22
22
|
constructor(appObject) {
|
|
23
23
|
super(appObject, AssetEntity.type);
|
|
24
|
-
this._memoizedName = new Entities_1.MemoizedString(
|
|
25
|
-
this._memoizedOwner = new Entities_1.MemoizedString(
|
|
26
|
-
this._memoizedDescription = new Entities_1.MemoizedString(
|
|
24
|
+
this._memoizedName = new Entities_1.MemoizedString("", this.notifyOnChange);
|
|
25
|
+
this._memoizedOwner = new Entities_1.MemoizedString("", this.notifyOnChange);
|
|
26
|
+
this._memoizedDescription = new Entities_1.MemoizedString("", this.notifyOnChange);
|
|
27
27
|
this._memoizedArchived = new Entities_1.MemoizedBoolean(false, this.notifyOnChange);
|
|
28
|
-
this._memoizedFileURL = new Entities_1.MemoizedString(
|
|
29
|
-
this._memoizedFilename = new Entities_1.MemoizedString(
|
|
28
|
+
this._memoizedFileURL = new Entities_1.MemoizedString("", this.notifyOnChange);
|
|
29
|
+
this._memoizedFilename = new Entities_1.MemoizedString("", this.notifyOnChange);
|
|
30
30
|
this._file = undefined;
|
|
31
31
|
this._blobURL = undefined;
|
|
32
32
|
this.setFile = (file) => {
|
|
@@ -42,7 +42,7 @@ class AssetImp extends AssetEntity {
|
|
|
42
42
|
if (existingAsset === undefined) {
|
|
43
43
|
this._linkedAssets.push({
|
|
44
44
|
id,
|
|
45
|
-
type
|
|
45
|
+
type
|
|
46
46
|
});
|
|
47
47
|
this.notifyOnChange();
|
|
48
48
|
}
|
|
@@ -142,7 +142,9 @@ class AssetImp extends AssetEntity {
|
|
|
142
142
|
set fetchError(fetchError) {
|
|
143
143
|
if (fetchError === undefined && this.fetchError === undefined)
|
|
144
144
|
return;
|
|
145
|
-
if (fetchError !== undefined &&
|
|
145
|
+
if (fetchError !== undefined &&
|
|
146
|
+
this.fetchError !== undefined &&
|
|
147
|
+
fetchError.message === this.fetchError.message)
|
|
146
148
|
return;
|
|
147
149
|
this._fetchError = fetchError;
|
|
148
150
|
this.notifyOnChange();
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
import { HostAppObject, HostAppObjectRepo } from "../../../HostAppObject";
|
|
3
|
+
import { PrefetchAssetsUC } from "../UCs/PrefetchAssetsUC";
|
|
4
|
+
export declare class MockPrefetchAssetsUC extends PrefetchAssetsUC {
|
|
5
|
+
prefetchAssets: jest.Mock<any, any>;
|
|
6
|
+
constructor(appObject: HostAppObject);
|
|
7
|
+
}
|
|
8
|
+
export declare function makeMockPrefetchAssetsUC(appObjects: HostAppObjectRepo): MockPrefetchAssetsUC;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeMockPrefetchAssetsUC = exports.MockPrefetchAssetsUC = void 0;
|
|
4
|
+
const PrefetchAssetsUC_1 = require("../UCs/PrefetchAssetsUC");
|
|
5
|
+
class MockPrefetchAssetsUC extends PrefetchAssetsUC_1.PrefetchAssetsUC {
|
|
6
|
+
constructor(appObject) {
|
|
7
|
+
super(appObject, PrefetchAssetsUC_1.PrefetchAssetsUC.type);
|
|
8
|
+
this.prefetchAssets = jest.fn().mockResolvedValue(undefined);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MockPrefetchAssetsUC = MockPrefetchAssetsUC;
|
|
12
|
+
function makeMockPrefetchAssetsUC(appObjects) {
|
|
13
|
+
return new MockPrefetchAssetsUC(appObjects.getOrCreate("MockPrefetchAssetsUC"));
|
|
14
|
+
}
|
|
15
|
+
exports.makeMockPrefetchAssetsUC = makeMockPrefetchAssetsUC;
|
|
@@ -17,4 +17,5 @@ __exportStar(require("./MockGetAppAssetsUC"), exports);
|
|
|
17
17
|
__exportStar(require("./MockGetAssetBlobURLUC"), exports);
|
|
18
18
|
__exportStar(require("./MockGetAssetFileUC"), exports);
|
|
19
19
|
__exportStar(require("./MockGetAssetUC"), exports);
|
|
20
|
+
__exportStar(require("./MockPrefetchAssets"), exports);
|
|
20
21
|
__exportStar(require("./MockUpdateAssetFileUC"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HostAppObject, HostAppObjectRepo, HostAppObjectUC } from "../../../HostAppObject";
|
|
2
|
+
export declare abstract class PrefetchAssetsUC extends HostAppObjectUC {
|
|
3
|
+
static type: string;
|
|
4
|
+
abstract prefetchAssets(): Promise<void>;
|
|
5
|
+
static get(appObjects: HostAppObjectRepo): PrefetchAssetsUC | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare function makePrefetchAssets(appObject: HostAppObject): PrefetchAssetsUC;
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.makePrefetchAssets = exports.PrefetchAssetsUC = void 0;
|
|
13
|
+
const HostAppObject_1 = require("../../../HostAppObject");
|
|
14
|
+
const StateMachine_1 = require("../../StateMachine");
|
|
15
|
+
const GetAssetFileUC_1 = require("./GetAssetFileUC");
|
|
16
|
+
class PrefetchAssetsUC extends HostAppObject_1.HostAppObjectUC {
|
|
17
|
+
static get(appObjects) {
|
|
18
|
+
return HostAppObject_1.getSingletonComponent(PrefetchAssetsUC.type, appObjects);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.PrefetchAssetsUC = PrefetchAssetsUC;
|
|
22
|
+
PrefetchAssetsUC.type = "PrefetchAssetsUC";
|
|
23
|
+
function makePrefetchAssets(appObject) {
|
|
24
|
+
return new HostAppObjectRepoImp(appObject);
|
|
25
|
+
}
|
|
26
|
+
exports.makePrefetchAssets = makePrefetchAssets;
|
|
27
|
+
class HostAppObjectRepoImp extends PrefetchAssetsUC {
|
|
28
|
+
constructor(appObject) {
|
|
29
|
+
super(appObject, PrefetchAssetsUC.type);
|
|
30
|
+
this.prefetchAssets = () => __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const fetchAssetFile = this.fetchAssetFile;
|
|
32
|
+
if (!this.stateMachine || !fetchAssetFile) {
|
|
33
|
+
return Promise.reject();
|
|
34
|
+
}
|
|
35
|
+
const totalAssetIds = this.stateMachine.states.reduce((assetIds, stateID) => {
|
|
36
|
+
var _a;
|
|
37
|
+
const state = (_a = this.stateMachine) === null || _a === void 0 ? void 0 : _a.getStateByID(stateID);
|
|
38
|
+
if (state) {
|
|
39
|
+
return assetIds.concat(state.assets);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
}, []);
|
|
45
|
+
const uniqueAssetIds = Array.from(new Set(totalAssetIds));
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
const fetchPromises = uniqueAssetIds.map((assetID) => {
|
|
48
|
+
return fetchAssetFile(assetID);
|
|
49
|
+
});
|
|
50
|
+
Promise.all(fetchPromises)
|
|
51
|
+
.then(() => {
|
|
52
|
+
resolve();
|
|
53
|
+
})
|
|
54
|
+
.catch((e) => {
|
|
55
|
+
this.warn(e.message);
|
|
56
|
+
reject(e);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
this.appObjects.registerSingleton(this);
|
|
61
|
+
}
|
|
62
|
+
get stateMachine() {
|
|
63
|
+
return this.getCachedSingleton(StateMachine_1.HostStateMachine.type);
|
|
64
|
+
}
|
|
65
|
+
get fetchAssetFile() {
|
|
66
|
+
var _a;
|
|
67
|
+
return (_a = this.getCachedSingleton(GetAssetFileUC_1.GetAssetFileUC.type)) === null || _a === void 0 ? void 0 : _a.getAssetFile;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
1
|
+
export * from "./ArchiveAssetUC";
|
|
2
|
+
export * from "./DeleteAssetUC";
|
|
3
|
+
export * from "./DownloadAssetFileUC";
|
|
4
|
+
export * from "./GetAppAssetsUC";
|
|
5
|
+
export * from "./GetAssetBlobURLUC";
|
|
6
|
+
export * from "./GetAssetFileUC";
|
|
7
|
+
export * from "./GetAssetUC";
|
|
8
|
+
export * from "./PrefetchAssetsUC";
|
|
9
|
+
export * from "./UpdateAssetFileUC";
|
|
@@ -17,4 +17,5 @@ __exportStar(require("./GetAppAssetsUC"), exports);
|
|
|
17
17
|
__exportStar(require("./GetAssetBlobURLUC"), exports);
|
|
18
18
|
__exportStar(require("./GetAssetFileUC"), exports);
|
|
19
19
|
__exportStar(require("./GetAssetUC"), exports);
|
|
20
|
+
__exportStar(require("./PrefetchAssetsUC"), exports);
|
|
20
21
|
__exportStar(require("./UpdateAssetFileUC"), exports);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeHasNextStateHandler = exports.HasNextStateHandler = void 0;
|
|
4
4
|
const HostAppObject_1 = require("../../../HostAppObject");
|
|
5
|
+
const StateMachine_1 = require("../../StateMachine");
|
|
5
6
|
const Entities_1 = require("../Entities");
|
|
6
7
|
class HasNextStateHandler extends HostAppObject_1.HostAppObjectUC {
|
|
7
8
|
constructor() {
|
|
@@ -18,8 +19,17 @@ exports.makeHasNextStateHandler = makeHasNextStateHandler;
|
|
|
18
19
|
class HasNextStateHandlerImp extends HasNextStateHandler {
|
|
19
20
|
constructor(appObject) {
|
|
20
21
|
super(appObject, HasNextStateHandler.type);
|
|
21
|
-
this.action = () => {
|
|
22
|
-
|
|
22
|
+
this.action = (cb) => {
|
|
23
|
+
if (!this.stateMachine) {
|
|
24
|
+
cb(false);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (this.stateMachine.nextState) {
|
|
28
|
+
cb(true);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
cb(false);
|
|
32
|
+
}
|
|
23
33
|
};
|
|
24
34
|
this.handleRequest = (version, payload) => {
|
|
25
35
|
if (version === 1) {
|
|
@@ -37,6 +47,9 @@ class HasNextStateHandlerImp extends HasNextStateHandler {
|
|
|
37
47
|
}
|
|
38
48
|
hostHandler.registerRequestHandler(this);
|
|
39
49
|
}
|
|
50
|
+
get stateMachine() {
|
|
51
|
+
return this.getCachedSingleton(StateMachine_1.HostStateMachine.type);
|
|
52
|
+
}
|
|
40
53
|
castPayloadV1(payload) {
|
|
41
54
|
const castPayload = payload;
|
|
42
55
|
if (!castPayload.callback) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeHasPreviousStateHandler = exports.HasPreviousStateHandler = void 0;
|
|
4
4
|
const HostAppObject_1 = require("../../../HostAppObject");
|
|
5
|
+
const StateMachine_1 = require("../../StateMachine");
|
|
5
6
|
const Entities_1 = require("../Entities");
|
|
6
7
|
class HasPreviousStateHandler extends HostAppObject_1.HostAppObjectUC {
|
|
7
8
|
constructor() {
|
|
@@ -18,8 +19,17 @@ exports.makeHasPreviousStateHandler = makeHasPreviousStateHandler;
|
|
|
18
19
|
class HasPreviousStateHandlerImp extends HasPreviousStateHandler {
|
|
19
20
|
constructor(appObject) {
|
|
20
21
|
super(appObject, HasPreviousStateHandler.type);
|
|
21
|
-
this.action = () => {
|
|
22
|
-
|
|
22
|
+
this.action = (cb) => {
|
|
23
|
+
if (!this.stateMachine) {
|
|
24
|
+
cb(false);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (this.stateMachine.previousState) {
|
|
28
|
+
cb(true);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
cb(false);
|
|
32
|
+
}
|
|
23
33
|
};
|
|
24
34
|
this.handleRequest = (version, payload) => {
|
|
25
35
|
if (version === 1) {
|
|
@@ -37,6 +47,9 @@ class HasPreviousStateHandlerImp extends HasPreviousStateHandler {
|
|
|
37
47
|
}
|
|
38
48
|
hostHandler.registerRequestHandler(this);
|
|
39
49
|
}
|
|
50
|
+
get stateMachine() {
|
|
51
|
+
return this.getCachedSingleton(StateMachine_1.HostStateMachine.type);
|
|
52
|
+
}
|
|
40
53
|
castPayloadV1(payload) {
|
|
41
54
|
const castPayload = payload;
|
|
42
55
|
if (!castPayload.callback) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HostAppObject, HostAppObjectUC } from "../../../HostAppObject";
|
|
2
2
|
import { RequestHandler } from "../Entities";
|
|
3
|
-
export declare type OnStateChangeAction = (state: object, assets: string[], validationErrorMessage?: string) => void;
|
|
3
|
+
export declare type OnStateChangeAction = (state: object, assets: string[], validationErrorMessage?: string, responseType?: string) => void;
|
|
4
4
|
export declare abstract class OnStateChangeHandler extends HostAppObjectUC implements RequestHandler {
|
|
5
5
|
static readonly type = "OnStateChangeHandler";
|
|
6
6
|
readonly requestType = "ON_STATE_CHANGE";
|
|
@@ -9,10 +9,12 @@ export declare abstract class OnStateChangeHandler extends HostAppObjectUC imple
|
|
|
9
9
|
}
|
|
10
10
|
export declare function makeOnStateChangeHandler(appObject: HostAppObject): OnStateChangeHandler;
|
|
11
11
|
export declare class OnStateChangeHandlerImp extends OnStateChangeHandler {
|
|
12
|
+
private get editStateEntity();
|
|
12
13
|
action: OnStateChangeAction;
|
|
13
14
|
handleRequest: (version: number, payload: unknown) => void;
|
|
14
15
|
private castPayloadV1;
|
|
15
16
|
private castPayloadV2;
|
|
16
17
|
private castPayloadV3;
|
|
18
|
+
private castPayloadV4;
|
|
17
19
|
constructor(appObject: HostAppObject);
|
|
18
20
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OnStateChangeHandlerImp = exports.makeOnStateChangeHandler = exports.OnStateChangeHandler = void 0;
|
|
4
4
|
const HostAppObject_1 = require("../../../HostAppObject");
|
|
5
|
+
const StateMachine_1 = require("../../StateMachine");
|
|
5
6
|
const Entities_1 = require("../Entities");
|
|
6
7
|
class OnStateChangeHandler extends HostAppObject_1.HostAppObjectUC {
|
|
7
8
|
constructor() {
|
|
@@ -18,8 +19,22 @@ exports.makeOnStateChangeHandler = makeOnStateChangeHandler;
|
|
|
18
19
|
class OnStateChangeHandlerImp extends OnStateChangeHandler {
|
|
19
20
|
constructor(appObject) {
|
|
20
21
|
super(appObject, OnStateChangeHandler.type);
|
|
21
|
-
this.action = () => {
|
|
22
|
-
|
|
22
|
+
this.action = (state, assets, validationErrorMessage, responseType) => {
|
|
23
|
+
if (!this.editStateEntity)
|
|
24
|
+
return;
|
|
25
|
+
const editingState = this.editStateEntity.editingState;
|
|
26
|
+
if (!editingState)
|
|
27
|
+
return;
|
|
28
|
+
editingState.setStateData(state);
|
|
29
|
+
editingState.assets = assets;
|
|
30
|
+
this.editStateEntity.stateValidationMessage = validationErrorMessage;
|
|
31
|
+
if (!responseType)
|
|
32
|
+
return;
|
|
33
|
+
const response = responseLookupMap.get(responseType.toUpperCase());
|
|
34
|
+
if (!response) {
|
|
35
|
+
this.warn(`Unable to parse ${responseType} into an expected response`);
|
|
36
|
+
}
|
|
37
|
+
editingState.expectedResponse = response;
|
|
23
38
|
};
|
|
24
39
|
this.handleRequest = (version, payload) => {
|
|
25
40
|
if (version === 1) {
|
|
@@ -34,6 +49,10 @@ class OnStateChangeHandlerImp extends OnStateChangeHandler {
|
|
|
34
49
|
const { stateObject, assets, validationErrorMessage } = this.castPayloadV3(payload);
|
|
35
50
|
this.action(stateObject, assets, validationErrorMessage);
|
|
36
51
|
}
|
|
52
|
+
else if (version === 4) {
|
|
53
|
+
const { stateObject, assets, validationErrorMessage, responseType } = this.castPayloadV4(payload);
|
|
54
|
+
this.action(stateObject, assets, validationErrorMessage, responseType);
|
|
55
|
+
}
|
|
37
56
|
else {
|
|
38
57
|
throw new Entities_1.UnsupportedRequestVersion(this.requestType, version);
|
|
39
58
|
}
|
|
@@ -45,6 +64,9 @@ class OnStateChangeHandlerImp extends OnStateChangeHandler {
|
|
|
45
64
|
}
|
|
46
65
|
hostHandler.registerRequestHandler(this);
|
|
47
66
|
}
|
|
67
|
+
get editStateEntity() {
|
|
68
|
+
return this.getCachedSingleton(StateMachine_1.HostEditingStateEntity.type);
|
|
69
|
+
}
|
|
48
70
|
castPayloadV1(payload) {
|
|
49
71
|
const castPayload = payload;
|
|
50
72
|
if (castPayload.stateObject === undefined) {
|
|
@@ -66,5 +88,20 @@ class OnStateChangeHandlerImp extends OnStateChangeHandler {
|
|
|
66
88
|
}
|
|
67
89
|
return castPayload;
|
|
68
90
|
}
|
|
91
|
+
castPayloadV4(payload) {
|
|
92
|
+
const castPayload = payload;
|
|
93
|
+
if (castPayload.stateObject === undefined) {
|
|
94
|
+
throw new Entities_1.UnableToParsePayload(this.requestType, 3, JSON.stringify(payload));
|
|
95
|
+
}
|
|
96
|
+
return castPayload;
|
|
97
|
+
}
|
|
69
98
|
}
|
|
70
99
|
exports.OnStateChangeHandlerImp = OnStateChangeHandlerImp;
|
|
100
|
+
const responseLookupMap = new Map([
|
|
101
|
+
["HIT", StateMachine_1.ChallengeResponse.HIT],
|
|
102
|
+
["MULTIHIT", StateMachine_1.ChallengeResponse.MULTIHIT],
|
|
103
|
+
["NONE", StateMachine_1.ChallengeResponse.NONE],
|
|
104
|
+
["PROGRESS", StateMachine_1.ChallengeResponse.PROGRESS],
|
|
105
|
+
["QUALITY", StateMachine_1.ChallengeResponse.QUALITY],
|
|
106
|
+
["SCORE", StateMachine_1.ChallengeResponse.SCORE]
|
|
107
|
+
]);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hostStateMachinePMAdapter = void 0;
|
|
4
|
+
const PMs_1 = require("../PMs");
|
|
5
|
+
exports.hostStateMachinePMAdapter = {
|
|
6
|
+
defaultVM: PMs_1.defaultHostStateMachineVM,
|
|
7
|
+
subscribe: (appObjects, setVM) => {
|
|
8
|
+
const pm = PMs_1.HostStateMachinePM.get(appObjects);
|
|
9
|
+
if (!pm) {
|
|
10
|
+
appObjects.submitError("hostStateMachinePMAdapter", "Unable to find HostStateMachinePM");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
pm.addView(setVM);
|
|
14
|
+
},
|
|
15
|
+
unsubscribe: (appObjects, setVM) => {
|
|
16
|
+
const pm = PMs_1.HostStateMachinePM.get(appObjects);
|
|
17
|
+
if (!pm) {
|
|
18
|
+
appObjects.submitError("hostStateMachinePMAdapter", "Unable to find HostStateMachinePM");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
pm.removeView(setVM);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hostStateMachinePMAdapter = void 0;
|
|
4
|
+
const PMs_1 = require("../PMs");
|
|
5
|
+
exports.hostStateMachinePMAdapter = {
|
|
6
|
+
defaultVM: PMs_1.defaultHostStateMachineVM,
|
|
7
|
+
subscribe: (appObjects, setVM) => {
|
|
8
|
+
const pm = PMs_1.HostStateMachinePM.get(appObjects);
|
|
9
|
+
if (!pm) {
|
|
10
|
+
appObjects.submitError("hostStateMachinePMAdater", "Unable to find HostStateMachinePM");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
pm.addView(setVM);
|
|
14
|
+
},
|
|
15
|
+
unsubscribe: (appObjects, setVM) => {
|
|
16
|
+
const pm = PMs_1.HostStateMachinePM.get(appObjects);
|
|
17
|
+
if (!pm) {
|
|
18
|
+
appObjects.submitError("hostStateMachinePMAdater", "Unable to find HostStateMachinePM");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
pm.removeView(setVM);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
@@ -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("./hostStateMachinePMAdapter"), exports);
|
|
14
|
+
__exportStar(require("./isEditingPMAdapter"), exports);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEditingPMAdapter = void 0;
|
|
4
|
+
const PMs_1 = require("../PMs");
|
|
5
|
+
exports.isEditingPMAdapter = {
|
|
6
|
+
defaultVM: PMs_1.defaultIsEditingStateVM,
|
|
7
|
+
subscribe: (appObjects, setVM) => {
|
|
8
|
+
const pm = PMs_1.EditingStatePM.get(appObjects);
|
|
9
|
+
if (!pm) {
|
|
10
|
+
appObjects.submitError("isEditingPMAdapter", "Unable to find HostStateMachinePM");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
pm.addView(setVM);
|
|
14
|
+
},
|
|
15
|
+
unsubscribe: (appObjects, setVM) => {
|
|
16
|
+
const pm = PMs_1.EditingStatePM.get(appObjects);
|
|
17
|
+
if (!pm) {
|
|
18
|
+
appObjects.submitError("isEditingPMAdapter", "Unable to find HostStateMachinePM");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
pm.removeView(setVM);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteState = void 0;
|
|
4
|
+
const UCs_1 = require("../UCs");
|
|
5
|
+
function deleteState(id, appObjects) {
|
|
6
|
+
const uc = UCs_1.DeleteStateUC.get(appObjects);
|
|
7
|
+
if (!uc) {
|
|
8
|
+
appObjects.submitWarning("duplicateState", "Unable to find DeleteStateUC");
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
uc.deleteState(id);
|
|
12
|
+
}
|
|
13
|
+
exports.deleteState = deleteState;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.duplicateState = void 0;
|
|
4
|
+
const UCs_1 = require("../UCs");
|
|
5
|
+
function duplicateState(id, appObjects) {
|
|
6
|
+
const uc = UCs_1.DuplicateStateUC.get(appObjects);
|
|
7
|
+
if (!uc) {
|
|
8
|
+
appObjects.submitWarning("duplicateState", "Unable to find DuplicateStateUC");
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
uc.duplicateState(id);
|
|
12
|
+
}
|
|
13
|
+
exports.duplicateState = duplicateState;
|
|
@@ -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("./deleteState"), exports);
|
|
14
|
+
__exportStar(require("./duplicateState"), exports);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HostAppObject, HostAppObjectEntity, HostAppObjectRepo } from "../../../HostAppObject";
|
|
2
|
+
import { HostStateEntity } from "./HostStateEntity";
|
|
3
|
+
export declare abstract class HostEditingStateEntity extends HostAppObjectEntity {
|
|
4
|
+
static type: string;
|
|
5
|
+
abstract get isEditing(): boolean;
|
|
6
|
+
abstract get isNewState(): boolean;
|
|
7
|
+
abstract get editingState(): HostStateEntity | undefined;
|
|
8
|
+
abstract get somethingHasChanged(): boolean;
|
|
9
|
+
abstract stateValidationMessage?: string;
|
|
10
|
+
abstract startNewState(): HostStateEntity | undefined;
|
|
11
|
+
abstract startEditing(state: HostStateEntity): void;
|
|
12
|
+
abstract cancelEditState(): void;
|
|
13
|
+
abstract finishEditing(): void;
|
|
14
|
+
static get(appObjects: HostAppObjectRepo): HostEditingStateEntity | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare function makeHostEditingStateEntity(appObject: HostAppObject): HostEditingStateEntity;
|