@vived/app 4.14.1 → 4.15.1
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/AppObject/AppObjectComponent.d.ts +2 -1
- package/lib/AppObject/AppObjectComponent.js +16 -6
- package/lib/Components/Challenge/Controller/index.d.ts +2 -0
- package/lib/Components/Challenge/Controller/index.js +14 -0
- package/lib/Components/Challenge/Controller/setChallenge.d.ts +2 -0
- package/lib/Components/Challenge/Controller/setChallenge.js +13 -0
- package/lib/Components/Challenge/Controller/showChallengeHelp.d.ts +2 -0
- package/lib/Components/Challenge/Controller/showChallengeHelp.js +13 -0
- package/lib/Components/Challenge/Entities/ChallengeEntity.d.ts +30 -0
- package/lib/Components/Challenge/Entities/ChallengeEntity.js +79 -0
- package/lib/Components/Challenge/Entities/index.d.ts +1 -0
- package/lib/Components/Challenge/Entities/index.js +13 -0
- package/lib/Components/Challenge/Mocks/MockChallengeAuthorHelpPM.d.ts +8 -0
- package/lib/Components/Challenge/Mocks/MockChallengeAuthorHelpPM.js +15 -0
- package/lib/Components/Challenge/Mocks/MockChallengeConsumerHelpPM.d.ts +8 -0
- package/lib/Components/Challenge/Mocks/MockChallengeConsumerHelpPM.js +15 -0
- package/lib/Components/Challenge/Mocks/MockSelectedChallengePM.d.ts +8 -0
- package/lib/Components/Challenge/Mocks/MockSelectedChallengePM.js +15 -0
- package/lib/Components/Challenge/Mocks/MockSetChallengeUC.d.ts +8 -0
- package/lib/Components/Challenge/Mocks/MockSetChallengeUC.js +15 -0
- package/lib/Components/Challenge/Mocks/MockShowChallengeHelpUC.d.ts +8 -0
- package/lib/Components/Challenge/Mocks/MockShowChallengeHelpUC.js +15 -0
- package/lib/Components/Challenge/Mocks/index.d.ts +5 -0
- package/lib/Components/Challenge/Mocks/index.js +17 -0
- package/lib/Components/Challenge/PMs/ChallengeAuthorHelpPM.d.ts +11 -0
- package/lib/Components/Challenge/PMs/ChallengeAuthorHelpPM.js +51 -0
- package/lib/Components/Challenge/PMs/ChallengeConsumerHelpPM.d.ts +12 -0
- package/lib/Components/Challenge/PMs/ChallengeConsumerHelpPM.js +66 -0
- package/lib/Components/Challenge/PMs/SelectedChallengePM.d.ts +13 -0
- package/lib/Components/Challenge/PMs/SelectedChallengePM.js +56 -0
- package/lib/Components/Challenge/PMs/index.d.ts +3 -0
- package/lib/Components/Challenge/PMs/index.js +15 -0
- package/lib/Components/Challenge/React/challengeAuthorHelpHookAdapter.d.ts +3 -0
- package/lib/Components/Challenge/React/challengeAuthorHelpHookAdapter.js +23 -0
- package/lib/Components/Challenge/React/challengeConsumerHelpHookAdapter.d.ts +3 -0
- package/lib/Components/Challenge/React/challengeConsumerHelpHookAdapter.js +23 -0
- package/lib/Components/Challenge/React/index.d.ts +3 -0
- package/lib/Components/Challenge/React/index.js +15 -0
- package/lib/Components/Challenge/React/selectedChallengeHookAdapter.d.ts +3 -0
- package/lib/Components/Challenge/React/selectedChallengeHookAdapter.js +29 -0
- package/lib/Components/Challenge/UCs/SerializeChallenge.d.ts +16 -0
- package/lib/Components/Challenge/UCs/SerializeChallenge.js +56 -0
- package/lib/Components/Challenge/UCs/SetChallengeUC.d.ts +7 -0
- package/lib/Components/Challenge/UCs/SetChallengeUC.js +43 -0
- package/lib/Components/Challenge/UCs/SetChallengeUndo.d.ts +11 -0
- package/lib/Components/Challenge/UCs/SetChallengeUndo.js +37 -0
- package/lib/Components/Challenge/UCs/ShowChallengeHelpUC.d.ts +7 -0
- package/lib/Components/Challenge/UCs/ShowChallengeHelpUC.js +45 -0
- package/lib/Components/Challenge/UCs/index.d.ts +4 -0
- package/lib/Components/Challenge/UCs/index.js +16 -0
- package/lib/Components/Challenge/index.d.ts +6 -0
- package/lib/Components/Challenge/index.js +18 -0
- package/lib/Components/Dispatcher/Mocks/MockShowAlert.js +1 -1
- package/lib/Components/Dispatcher/UC/ShowAlertUC.d.ts +1 -1
- package/lib/Components/StateMachine/Entities/StateMachineEntity.js +11 -6
- package/lib/Components/StateMachine/index.d.ts +1 -0
- package/lib/Components/StateMachine/index.js +1 -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
|
@@ -4,8 +4,9 @@ export declare class AppObjectComponent {
|
|
|
4
4
|
readonly type: string;
|
|
5
5
|
readonly appObject: AppObject;
|
|
6
6
|
get appObjects(): AppObjectRepo;
|
|
7
|
-
private
|
|
7
|
+
private cachedComponents;
|
|
8
8
|
getCachedSingleton<T extends AppObjectComponent>(type: string): T | undefined;
|
|
9
|
+
getCachedLocalComponent<T extends AppObjectComponent>(type: string): T | undefined;
|
|
9
10
|
getSingleton<T extends AppObjectComponent>(type: string, logType?: "LOG" | "WARN" | "ERROR"): T | undefined;
|
|
10
11
|
dispose(): void;
|
|
11
12
|
log(message: string): void;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AppObjectComponent = void 0;
|
|
4
4
|
class AppObjectComponent {
|
|
5
5
|
constructor(appObject, type) {
|
|
6
|
-
this.
|
|
6
|
+
this.cachedComponents = new Map();
|
|
7
7
|
this.appObject = appObject;
|
|
8
8
|
this.type = type;
|
|
9
9
|
appObject.addComponent(this);
|
|
@@ -12,16 +12,28 @@ class AppObjectComponent {
|
|
|
12
12
|
return this.appObject.appObjectRepo;
|
|
13
13
|
}
|
|
14
14
|
getCachedSingleton(type) {
|
|
15
|
-
if (!this.
|
|
15
|
+
if (!this.cachedComponents.has(type)) {
|
|
16
16
|
const component = this.appObjects.getSingleton(type);
|
|
17
17
|
if (!component) {
|
|
18
18
|
this.warn("Unable to get cached singleton type " + type);
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
|
-
this.
|
|
21
|
+
this.cachedComponents.set(type, component);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
return this.
|
|
24
|
+
return this.cachedComponents.get(type);
|
|
25
|
+
}
|
|
26
|
+
getCachedLocalComponent(type) {
|
|
27
|
+
if (!this.cachedComponents.has(type)) {
|
|
28
|
+
const component = this.appObject.getComponent(type);
|
|
29
|
+
if (!component) {
|
|
30
|
+
this.warn("Unable to get local component of type " + type);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.cachedComponents.set(type, component);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return this.cachedComponents.get(type);
|
|
25
37
|
}
|
|
26
38
|
getSingleton(type, logType = "WARN") {
|
|
27
39
|
const comp = this.appObjects.getSingleton(type);
|
|
@@ -41,7 +53,6 @@ class AppObjectComponent {
|
|
|
41
53
|
}
|
|
42
54
|
return comp;
|
|
43
55
|
}
|
|
44
|
-
;
|
|
45
56
|
dispose() {
|
|
46
57
|
if (this.appObject.getComponent(this.type) === this) {
|
|
47
58
|
this.appObject.removeComponent(this.type);
|
|
@@ -53,7 +64,6 @@ class AppObjectComponent {
|
|
|
53
64
|
warn(message) {
|
|
54
65
|
this.appObjects.submitWarning(`${this.appObject.id}/${this.type}`, message);
|
|
55
66
|
}
|
|
56
|
-
;
|
|
57
67
|
error(message) {
|
|
58
68
|
this.appObjects.submitError(`${this.appObject.id}/${this.type}`, message);
|
|
59
69
|
}
|
|
@@ -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("./setChallenge"), exports);
|
|
14
|
+
__exportStar(require("./showChallengeHelp"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setChallenge = void 0;
|
|
4
|
+
const SetChallengeUC_1 = require("../UCs/SetChallengeUC");
|
|
5
|
+
function setChallenge(challenge, appObjects) {
|
|
6
|
+
const uc = SetChallengeUC_1.SetChallengeUC.get(appObjects);
|
|
7
|
+
if (!uc) {
|
|
8
|
+
appObjects.submitWarning("setChallenge", "Unable to find SetChallengeUC");
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
uc.setChallenge(challenge);
|
|
12
|
+
}
|
|
13
|
+
exports.setChallenge = setChallenge;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.showChallengeHelp = void 0;
|
|
4
|
+
const UCs_1 = require("../UCs");
|
|
5
|
+
function showChallengeHelp(appObjects) {
|
|
6
|
+
const uc = UCs_1.ShowChallengeHelpUC.get(appObjects);
|
|
7
|
+
if (!uc) {
|
|
8
|
+
appObjects.submitWarning("showChallengeHelp", "Unable to find ShowChallengeHelpUC");
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
uc.showChallengeHelp();
|
|
12
|
+
}
|
|
13
|
+
exports.showChallengeHelp = showChallengeHelp;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AppObject, AppObjectEntity, AppObjectRepo } from "../../../AppObject";
|
|
2
|
+
export declare abstract class ChallengeEntity<CT> extends AppObjectEntity {
|
|
3
|
+
static type: string;
|
|
4
|
+
abstract readonly defaultChallenge: CT;
|
|
5
|
+
abstract get selectedChallenge(): CT;
|
|
6
|
+
abstract set selectedChallenge(val: CT);
|
|
7
|
+
abstract get selectedChallengeName(): string;
|
|
8
|
+
abstract get allChallengeNames(): Map<CT, string>;
|
|
9
|
+
abstract setChallengeNames(list: {
|
|
10
|
+
value: CT;
|
|
11
|
+
label: string;
|
|
12
|
+
}[]): void;
|
|
13
|
+
abstract get helpHeading(): string;
|
|
14
|
+
abstract setHelpHeading(list: {
|
|
15
|
+
value: CT;
|
|
16
|
+
label: string;
|
|
17
|
+
}[]): void;
|
|
18
|
+
abstract get helpText(): string;
|
|
19
|
+
abstract setHelpText(list: {
|
|
20
|
+
value: CT;
|
|
21
|
+
label: string;
|
|
22
|
+
}[]): void;
|
|
23
|
+
abstract get authorHelp(): string;
|
|
24
|
+
abstract setAuthorHelp(list: {
|
|
25
|
+
value: CT;
|
|
26
|
+
label: string;
|
|
27
|
+
}[]): void;
|
|
28
|
+
static get<ChallengeType>(appObjects: AppObjectRepo): ChallengeEntity<ChallengeType> | undefined;
|
|
29
|
+
}
|
|
30
|
+
export declare function makeChallengeEntity<CT>(appObject: AppObject, defaultChallenge: CT): ChallengeEntity<CT>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeChallengeEntity = exports.ChallengeEntity = void 0;
|
|
4
|
+
const AppObject_1 = require("../../../AppObject");
|
|
5
|
+
class ChallengeEntity extends AppObject_1.AppObjectEntity {
|
|
6
|
+
static get(appObjects) {
|
|
7
|
+
return AppObject_1.getSingletonComponent(ChallengeEntity.type, appObjects);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.ChallengeEntity = ChallengeEntity;
|
|
11
|
+
ChallengeEntity.type = "ChallengeEntity";
|
|
12
|
+
function makeChallengeEntity(appObject, defaultChallenge) {
|
|
13
|
+
return new ChallengeEntityImp(appObject, defaultChallenge);
|
|
14
|
+
}
|
|
15
|
+
exports.makeChallengeEntity = makeChallengeEntity;
|
|
16
|
+
class ChallengeEntityImp extends ChallengeEntity {
|
|
17
|
+
constructor(appObject, defaultChallenge) {
|
|
18
|
+
super(appObject, ChallengeEntity.type);
|
|
19
|
+
this.challengeNameLookup = new Map();
|
|
20
|
+
this.helpTextLookup = new Map();
|
|
21
|
+
this.authorHelpLookup = new Map();
|
|
22
|
+
this.helpHeadingLookup = new Map();
|
|
23
|
+
this.defaultChallenge = defaultChallenge;
|
|
24
|
+
this.appObjects.registerSingleton(this);
|
|
25
|
+
}
|
|
26
|
+
get selectedChallengeName() {
|
|
27
|
+
var _a;
|
|
28
|
+
return (_a = this.challengeNameLookup.get(this.selectedChallenge)) !== null && _a !== void 0 ? _a : "";
|
|
29
|
+
}
|
|
30
|
+
get allChallengeNames() {
|
|
31
|
+
return this.challengeNameLookup;
|
|
32
|
+
}
|
|
33
|
+
setChallengeNames(list) {
|
|
34
|
+
list.forEach((item) => {
|
|
35
|
+
this.challengeNameLookup.set(item.value, item.label);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
get helpText() {
|
|
39
|
+
var _a;
|
|
40
|
+
return (_a = this.helpTextLookup.get(this.selectedChallenge)) !== null && _a !== void 0 ? _a : "";
|
|
41
|
+
}
|
|
42
|
+
setHelpText(list) {
|
|
43
|
+
list.forEach((item) => {
|
|
44
|
+
this.helpTextLookup.set(item.value, item.label);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
get authorHelp() {
|
|
48
|
+
var _a;
|
|
49
|
+
return (_a = this.authorHelpLookup.get(this.selectedChallenge)) !== null && _a !== void 0 ? _a : "";
|
|
50
|
+
}
|
|
51
|
+
setAuthorHelp(list) {
|
|
52
|
+
list.forEach((item) => {
|
|
53
|
+
this.authorHelpLookup.set(item.value, item.label);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
get helpHeading() {
|
|
57
|
+
var _a;
|
|
58
|
+
return (_a = this.helpHeadingLookup.get(this.selectedChallenge)) !== null && _a !== void 0 ? _a : "";
|
|
59
|
+
}
|
|
60
|
+
setHelpHeading(list) {
|
|
61
|
+
list.forEach((item) => {
|
|
62
|
+
this.helpHeadingLookup.set(item.value, item.label);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
get selectedChallenge() {
|
|
66
|
+
if (!this._selectedChallenge) {
|
|
67
|
+
return this.defaultChallenge;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return this._selectedChallenge;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
set selectedChallenge(val) {
|
|
74
|
+
if (this._selectedChallenge === val)
|
|
75
|
+
return;
|
|
76
|
+
this._selectedChallenge = val;
|
|
77
|
+
this.notifyOnChange();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ChallengeEntity";
|
|
@@ -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("./ChallengeEntity"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
import { AppObject, AppObjectRepo } from "../../../AppObject";
|
|
3
|
+
import { ChallengeAuthorHelpPM } from "../PMs/ChallengeAuthorHelpPM";
|
|
4
|
+
export declare class MockChallengeAuthorHelpPM extends ChallengeAuthorHelpPM {
|
|
5
|
+
vmsAreEqual: jest.Mock<any, any>;
|
|
6
|
+
constructor(appObject: AppObject);
|
|
7
|
+
}
|
|
8
|
+
export declare function makeMockChallengeAuthorHelpPM(appObjects: AppObjectRepo): MockChallengeAuthorHelpPM;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeMockChallengeAuthorHelpPM = exports.MockChallengeAuthorHelpPM = void 0;
|
|
4
|
+
const ChallengeAuthorHelpPM_1 = require("../PMs/ChallengeAuthorHelpPM");
|
|
5
|
+
class MockChallengeAuthorHelpPM extends ChallengeAuthorHelpPM_1.ChallengeAuthorHelpPM {
|
|
6
|
+
constructor(appObject) {
|
|
7
|
+
super(appObject, ChallengeAuthorHelpPM_1.ChallengeAuthorHelpPM.type);
|
|
8
|
+
this.vmsAreEqual = jest.fn();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MockChallengeAuthorHelpPM = MockChallengeAuthorHelpPM;
|
|
12
|
+
function makeMockChallengeAuthorHelpPM(appObjects) {
|
|
13
|
+
return new MockChallengeAuthorHelpPM(appObjects.getOrCreate("MockChallengeAuthorHelpPM"));
|
|
14
|
+
}
|
|
15
|
+
exports.makeMockChallengeAuthorHelpPM = makeMockChallengeAuthorHelpPM;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
import { AppObject, AppObjectRepo } from "../../../AppObject";
|
|
3
|
+
import { ChallengeConsumerHelpPM } from "../PMs/ChallengeConsumerHelpPM";
|
|
4
|
+
export declare class MockChallengeConsumerHelpPM extends ChallengeConsumerHelpPM {
|
|
5
|
+
vmsAreEqual: jest.Mock<any, any>;
|
|
6
|
+
constructor(appObject: AppObject);
|
|
7
|
+
}
|
|
8
|
+
export declare function makeMockChallengeConsumerHelpPM(appObjects: AppObjectRepo): MockChallengeConsumerHelpPM;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeMockChallengeConsumerHelpPM = exports.MockChallengeConsumerHelpPM = void 0;
|
|
4
|
+
const ChallengeConsumerHelpPM_1 = require("../PMs/ChallengeConsumerHelpPM");
|
|
5
|
+
class MockChallengeConsumerHelpPM extends ChallengeConsumerHelpPM_1.ChallengeConsumerHelpPM {
|
|
6
|
+
constructor(appObject) {
|
|
7
|
+
super(appObject, ChallengeConsumerHelpPM_1.ChallengeConsumerHelpPM.type);
|
|
8
|
+
this.vmsAreEqual = jest.fn();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MockChallengeConsumerHelpPM = MockChallengeConsumerHelpPM;
|
|
12
|
+
function makeMockChallengeConsumerHelpPM(appObjects) {
|
|
13
|
+
return new MockChallengeConsumerHelpPM(appObjects.getOrCreate("MockChallengeConsumerHelpPM"));
|
|
14
|
+
}
|
|
15
|
+
exports.makeMockChallengeConsumerHelpPM = makeMockChallengeConsumerHelpPM;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
import { AppObject, AppObjectRepo } from "../../../AppObject";
|
|
3
|
+
import { SelectedChallengePM } from "../PMs/SelectedChallengePM";
|
|
4
|
+
export declare class MockSelectedChallengePM<CT> extends SelectedChallengePM<CT> {
|
|
5
|
+
vmsAreEqual: jest.Mock<any, any>;
|
|
6
|
+
constructor(appObject: AppObject);
|
|
7
|
+
}
|
|
8
|
+
export declare function makeMockSelectedChallengePM<CT>(appObjects: AppObjectRepo): MockSelectedChallengePM<CT>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeMockSelectedChallengePM = exports.MockSelectedChallengePM = void 0;
|
|
4
|
+
const SelectedChallengePM_1 = require("../PMs/SelectedChallengePM");
|
|
5
|
+
class MockSelectedChallengePM extends SelectedChallengePM_1.SelectedChallengePM {
|
|
6
|
+
constructor(appObject) {
|
|
7
|
+
super(appObject, SelectedChallengePM_1.SelectedChallengePM.type);
|
|
8
|
+
this.vmsAreEqual = jest.fn();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MockSelectedChallengePM = MockSelectedChallengePM;
|
|
12
|
+
function makeMockSelectedChallengePM(appObjects) {
|
|
13
|
+
return new MockSelectedChallengePM(appObjects.getOrCreate("MockSelectedChallengePM"));
|
|
14
|
+
}
|
|
15
|
+
exports.makeMockSelectedChallengePM = makeMockSelectedChallengePM;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
import { AppObject, AppObjectRepo } from "../../../AppObject";
|
|
3
|
+
import { SetChallengeUC } from "../UCs/SetChallengeUC";
|
|
4
|
+
export declare class MockSetChallengeUC<CT> extends SetChallengeUC<CT> {
|
|
5
|
+
setChallenge: jest.Mock<any, any>;
|
|
6
|
+
constructor(appObject: AppObject);
|
|
7
|
+
}
|
|
8
|
+
export declare function makeMockSetChallengeUC<CT>(appObjects: AppObjectRepo): MockSetChallengeUC<CT>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeMockSetChallengeUC = exports.MockSetChallengeUC = void 0;
|
|
4
|
+
const SetChallengeUC_1 = require("../UCs/SetChallengeUC");
|
|
5
|
+
class MockSetChallengeUC extends SetChallengeUC_1.SetChallengeUC {
|
|
6
|
+
constructor(appObject) {
|
|
7
|
+
super(appObject, SetChallengeUC_1.SetChallengeUC.type);
|
|
8
|
+
this.setChallenge = jest.fn();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MockSetChallengeUC = MockSetChallengeUC;
|
|
12
|
+
function makeMockSetChallengeUC(appObjects) {
|
|
13
|
+
return new MockSetChallengeUC(appObjects.getOrCreate("MockSetChallengeUC"));
|
|
14
|
+
}
|
|
15
|
+
exports.makeMockSetChallengeUC = makeMockSetChallengeUC;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
import { AppObject, AppObjectRepo } from "../../../AppObject";
|
|
3
|
+
import { ShowChallengeHelpUC } from "../UCs";
|
|
4
|
+
export declare class MockShowChallengeHelpUC extends ShowChallengeHelpUC {
|
|
5
|
+
showChallengeHelp: jest.Mock<any, any>;
|
|
6
|
+
constructor(appObject: AppObject);
|
|
7
|
+
}
|
|
8
|
+
export declare function makeMockShowChallengeHelpUC(appObjects: AppObjectRepo): MockShowChallengeHelpUC;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeMockShowChallengeHelpUC = exports.MockShowChallengeHelpUC = void 0;
|
|
4
|
+
const UCs_1 = require("../UCs");
|
|
5
|
+
class MockShowChallengeHelpUC extends UCs_1.ShowChallengeHelpUC {
|
|
6
|
+
constructor(appObject) {
|
|
7
|
+
super(appObject, UCs_1.ShowChallengeHelpUC.type);
|
|
8
|
+
this.showChallengeHelp = jest.fn();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MockShowChallengeHelpUC = MockShowChallengeHelpUC;
|
|
12
|
+
function makeMockShowChallengeHelpUC(appObjects) {
|
|
13
|
+
return new MockShowChallengeHelpUC(appObjects.getOrCreate("MockShowChallengeHelpUC"));
|
|
14
|
+
}
|
|
15
|
+
exports.makeMockShowChallengeHelpUC = makeMockShowChallengeHelpUC;
|
|
@@ -0,0 +1,17 @@
|
|
|
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("./MockChallengeAuthorHelpPM"), exports);
|
|
14
|
+
__exportStar(require("./MockChallengeConsumerHelpPM"), exports);
|
|
15
|
+
__exportStar(require("./MockSelectedChallengePM"), exports);
|
|
16
|
+
__exportStar(require("./MockSetChallengeUC"), exports);
|
|
17
|
+
__exportStar(require("./MockShowChallengeHelpUC"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AppObject, AppObjectPM, AppObjectRepo } from "../../../AppObject";
|
|
2
|
+
export interface ChallengeAuthorHelpVM {
|
|
3
|
+
heading: string;
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class ChallengeAuthorHelpPM extends AppObjectPM<ChallengeAuthorHelpVM> {
|
|
7
|
+
static type: string;
|
|
8
|
+
static get(appObjects: AppObjectRepo): ChallengeAuthorHelpPM | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare function makeChallengeAuthorHelpPM<CT>(appObject: AppObject): ChallengeAuthorHelpPM;
|
|
11
|
+
export declare const defaultChallengeAuthorHelpVM: ChallengeAuthorHelpVM;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultChallengeAuthorHelpVM = exports.makeChallengeAuthorHelpPM = exports.ChallengeAuthorHelpPM = void 0;
|
|
4
|
+
const AppObject_1 = require("../../../AppObject");
|
|
5
|
+
const ChallengeEntity_1 = require("../Entities/ChallengeEntity");
|
|
6
|
+
class ChallengeAuthorHelpPM extends AppObject_1.AppObjectPM {
|
|
7
|
+
static get(appObjects) {
|
|
8
|
+
return AppObject_1.getSingletonComponent(ChallengeAuthorHelpPM.type, appObjects);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ChallengeAuthorHelpPM = ChallengeAuthorHelpPM;
|
|
12
|
+
ChallengeAuthorHelpPM.type = "ChallengeAuthorHelpPM";
|
|
13
|
+
function makeChallengeAuthorHelpPM(appObject) {
|
|
14
|
+
return new ChallengeAuthorHelpPMImp(appObject);
|
|
15
|
+
}
|
|
16
|
+
exports.makeChallengeAuthorHelpPM = makeChallengeAuthorHelpPM;
|
|
17
|
+
class ChallengeAuthorHelpPMImp extends AppObject_1.AppObjectPM {
|
|
18
|
+
constructor(appObject) {
|
|
19
|
+
super(appObject, ChallengeAuthorHelpPM.type);
|
|
20
|
+
this.onEntityChange = () => {
|
|
21
|
+
if (!this.challengeEntity)
|
|
22
|
+
return;
|
|
23
|
+
const text = this.challengeEntity.authorHelp;
|
|
24
|
+
const heading = this.challengeEntity.selectedChallengeName;
|
|
25
|
+
const vm = {
|
|
26
|
+
heading,
|
|
27
|
+
text,
|
|
28
|
+
};
|
|
29
|
+
this.doUpdateView(vm);
|
|
30
|
+
};
|
|
31
|
+
this.challengeEntity = appObject.getComponent(ChallengeEntity_1.ChallengeEntity.type);
|
|
32
|
+
if (!this.challengeEntity) {
|
|
33
|
+
this.error("PM has been added to an app object that does not have ChallengeEntity");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.challengeEntity.addChangeObserver(this.onEntityChange);
|
|
37
|
+
this.onEntityChange();
|
|
38
|
+
this.appObjects.registerSingleton(this);
|
|
39
|
+
}
|
|
40
|
+
vmsAreEqual(a, b) {
|
|
41
|
+
if (a.heading !== b.heading)
|
|
42
|
+
return false;
|
|
43
|
+
if (a.text !== b.text)
|
|
44
|
+
return false;
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.defaultChallengeAuthorHelpVM = {
|
|
49
|
+
heading: "",
|
|
50
|
+
text: "",
|
|
51
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AppObject, AppObjectPM, AppObjectRepo } from "../../../AppObject";
|
|
2
|
+
export interface ChallengeConsumerHelpVM {
|
|
3
|
+
show: boolean;
|
|
4
|
+
heading: string;
|
|
5
|
+
text: string;
|
|
6
|
+
}
|
|
7
|
+
export declare abstract class ChallengeConsumerHelpPM extends AppObjectPM<ChallengeConsumerHelpVM> {
|
|
8
|
+
static type: string;
|
|
9
|
+
static get(appObjects: AppObjectRepo): ChallengeConsumerHelpPM | undefined;
|
|
10
|
+
}
|
|
11
|
+
export declare function makeChallengeConsumerHelpPM<CT>(appObject: AppObject): ChallengeConsumerHelpPM;
|
|
12
|
+
export declare const defaultChallengeConsumerHelpVM: ChallengeConsumerHelpVM;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultChallengeConsumerHelpVM = exports.makeChallengeConsumerHelpPM = exports.ChallengeConsumerHelpPM = void 0;
|
|
4
|
+
const AppObject_1 = require("../../../AppObject");
|
|
5
|
+
const App_1 = require("../../App");
|
|
6
|
+
const ChallengeEntity_1 = require("../Entities/ChallengeEntity");
|
|
7
|
+
class ChallengeConsumerHelpPM extends AppObject_1.AppObjectPM {
|
|
8
|
+
static get(appObjects) {
|
|
9
|
+
return AppObject_1.getSingletonComponent(ChallengeConsumerHelpPM.type, appObjects);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.ChallengeConsumerHelpPM = ChallengeConsumerHelpPM;
|
|
13
|
+
ChallengeConsumerHelpPM.type = "ChallengeHelpPM";
|
|
14
|
+
function makeChallengeConsumerHelpPM(appObject) {
|
|
15
|
+
return new ChallengeConsumerHelpPMImp(appObject);
|
|
16
|
+
}
|
|
17
|
+
exports.makeChallengeConsumerHelpPM = makeChallengeConsumerHelpPM;
|
|
18
|
+
class ChallengeConsumerHelpPMImp extends AppObject_1.AppObjectPM {
|
|
19
|
+
constructor(appObject) {
|
|
20
|
+
super(appObject, ChallengeConsumerHelpPM.type);
|
|
21
|
+
this.onEntityChange = () => {
|
|
22
|
+
if (!this.challengeEntity || !this.baseApp)
|
|
23
|
+
return;
|
|
24
|
+
const text = this.challengeEntity.helpText;
|
|
25
|
+
const heading = this.challengeEntity.helpHeading;
|
|
26
|
+
let challengeHelpShow = true;
|
|
27
|
+
if (!text || !heading || this.baseApp.isReviewing) {
|
|
28
|
+
challengeHelpShow = false;
|
|
29
|
+
}
|
|
30
|
+
const vm = {
|
|
31
|
+
show: challengeHelpShow,
|
|
32
|
+
heading,
|
|
33
|
+
text,
|
|
34
|
+
};
|
|
35
|
+
this.doUpdateView(vm);
|
|
36
|
+
};
|
|
37
|
+
this.challengeEntity = appObject.getComponent(ChallengeEntity_1.ChallengeEntity.type);
|
|
38
|
+
if (!this.challengeEntity) {
|
|
39
|
+
this.error("PM has been added to an app object that does not have ChallengeEntity");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.baseApp = App_1.BaseAppState.get(appObject.appObjectRepo);
|
|
43
|
+
if (!this.baseApp) {
|
|
44
|
+
this.warn(`Unable to find the Base App State`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.baseApp.addChangeObserver(this.onEntityChange);
|
|
48
|
+
this.challengeEntity.addChangeObserver(this.onEntityChange);
|
|
49
|
+
this.onEntityChange();
|
|
50
|
+
this.appObjects.registerSingleton(this);
|
|
51
|
+
}
|
|
52
|
+
vmsAreEqual(a, b) {
|
|
53
|
+
if (a.heading !== b.heading)
|
|
54
|
+
return false;
|
|
55
|
+
if (a.show !== b.show)
|
|
56
|
+
return false;
|
|
57
|
+
if (a.text !== b.text)
|
|
58
|
+
return false;
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.defaultChallengeConsumerHelpVM = {
|
|
63
|
+
show: false,
|
|
64
|
+
heading: "",
|
|
65
|
+
text: "",
|
|
66
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AppObject, AppObjectPM, AppObjectRepo } from "../../../AppObject";
|
|
2
|
+
export interface SelectedChallengeVM<CT> {
|
|
3
|
+
challenge: CT | undefined;
|
|
4
|
+
options: {
|
|
5
|
+
value: CT;
|
|
6
|
+
label: string;
|
|
7
|
+
}[];
|
|
8
|
+
}
|
|
9
|
+
export declare abstract class SelectedChallengePM<CT> extends AppObjectPM<SelectedChallengeVM<CT>> {
|
|
10
|
+
static type: string;
|
|
11
|
+
static get<CT>(appObjects: AppObjectRepo): SelectedChallengePM<CT> | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare function makeSelectedChallengePM<CT>(appObject: AppObject): SelectedChallengePM<CT>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeSelectedChallengePM = exports.SelectedChallengePM = void 0;
|
|
4
|
+
const AppObject_1 = require("../../../AppObject");
|
|
5
|
+
const ChallengeEntity_1 = require("../Entities/ChallengeEntity");
|
|
6
|
+
class SelectedChallengePM extends AppObject_1.AppObjectPM {
|
|
7
|
+
static get(appObjects) {
|
|
8
|
+
return AppObject_1.getSingletonComponent(SelectedChallengePM.type, appObjects);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.SelectedChallengePM = SelectedChallengePM;
|
|
12
|
+
SelectedChallengePM.type = "SelectedChallengePM";
|
|
13
|
+
function makeSelectedChallengePM(appObject) {
|
|
14
|
+
return new SelectedChallengePMImp(appObject);
|
|
15
|
+
}
|
|
16
|
+
exports.makeSelectedChallengePM = makeSelectedChallengePM;
|
|
17
|
+
class SelectedChallengePMImp extends SelectedChallengePM {
|
|
18
|
+
constructor(appObject) {
|
|
19
|
+
super(appObject, SelectedChallengePM.type);
|
|
20
|
+
this.onChallengeChange = () => {
|
|
21
|
+
if (!this.challengeEntity)
|
|
22
|
+
return;
|
|
23
|
+
const options = [];
|
|
24
|
+
this.challengeEntity.allChallengeNames.forEach((challengeName, challengeType) => {
|
|
25
|
+
options.push({ value: challengeType, label: challengeName });
|
|
26
|
+
});
|
|
27
|
+
const vm = {
|
|
28
|
+
challenge: this.challengeEntity.selectedChallenge,
|
|
29
|
+
options,
|
|
30
|
+
};
|
|
31
|
+
this.doUpdateView(vm);
|
|
32
|
+
};
|
|
33
|
+
this.challengeEntity = appObject.getComponent(ChallengeEntity_1.ChallengeEntity.type);
|
|
34
|
+
if (!this.challengeEntity) {
|
|
35
|
+
this.error("PM has been added to an app object that does not have ChallengeEntity");
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.challengeEntity.addChangeObserver(this.onChallengeChange);
|
|
39
|
+
this.onChallengeChange();
|
|
40
|
+
this.appObjects.registerSingleton(this);
|
|
41
|
+
}
|
|
42
|
+
vmsAreEqual(a, b) {
|
|
43
|
+
if (a.challenge !== b.challenge)
|
|
44
|
+
return false;
|
|
45
|
+
if (a.options.length !== b.options.length)
|
|
46
|
+
return false;
|
|
47
|
+
let optionsAreTheSame = true;
|
|
48
|
+
a.options.forEach((optionA, i) => {
|
|
49
|
+
const optionB = b.options[i];
|
|
50
|
+
if (optionA.label !== optionB.label || optionA.value !== optionB.value) {
|
|
51
|
+
optionsAreTheSame = false;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return optionsAreTheSame;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -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("./ChallengeAuthorHelpPM"), exports);
|
|
14
|
+
__exportStar(require("./ChallengeConsumerHelpPM"), exports);
|
|
15
|
+
__exportStar(require("./SelectedChallengePM"), exports);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.challengeAuthorHelpHookAdapter = void 0;
|
|
4
|
+
const ChallengeAuthorHelpPM_1 = require("../PMs/ChallengeAuthorHelpPM");
|
|
5
|
+
exports.challengeAuthorHelpHookAdapter = {
|
|
6
|
+
defaultVM: ChallengeAuthorHelpPM_1.defaultChallengeAuthorHelpVM,
|
|
7
|
+
subscribe: (appObjects, setVM) => {
|
|
8
|
+
const pm = ChallengeAuthorHelpPM_1.ChallengeAuthorHelpPM.get(appObjects);
|
|
9
|
+
if (!pm) {
|
|
10
|
+
appObjects.submitError("challengeAuthorHelpHookAdapter", "Unable to find ChallengeAuthorHelpPM");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
pm.addView(setVM);
|
|
14
|
+
},
|
|
15
|
+
unsubscribe: (appObjects, setVM) => {
|
|
16
|
+
const pm = ChallengeAuthorHelpPM_1.ChallengeAuthorHelpPM.get(appObjects);
|
|
17
|
+
if (!pm) {
|
|
18
|
+
appObjects.submitError("challengeAuthorHelpHookAdapter", "Unable to find ChallengeAuthorHelpPM");
|
|
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.challengeConsumerHelpHookAdapter = void 0;
|
|
4
|
+
const ChallengeConsumerHelpPM_1 = require("../PMs/ChallengeConsumerHelpPM");
|
|
5
|
+
exports.challengeConsumerHelpHookAdapter = {
|
|
6
|
+
defaultVM: ChallengeConsumerHelpPM_1.defaultChallengeConsumerHelpVM,
|
|
7
|
+
subscribe: (appObjects, setVM) => {
|
|
8
|
+
const pm = ChallengeConsumerHelpPM_1.ChallengeConsumerHelpPM.get(appObjects);
|
|
9
|
+
if (!pm) {
|
|
10
|
+
appObjects.submitError("challengeConsumerHelpHookAdapter", "Unable to find ChallengeConsumerHelpPM");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
pm.addView(setVM);
|
|
14
|
+
},
|
|
15
|
+
unsubscribe: (appObjects, setVM) => {
|
|
16
|
+
const pm = ChallengeConsumerHelpPM_1.ChallengeConsumerHelpPM.get(appObjects);
|
|
17
|
+
if (!pm) {
|
|
18
|
+
appObjects.submitError("challengeConsumerHelpHookAdapter", "Unable to find ChallengeConsumerHelpPM");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
pm.removeView(setVM);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
@@ -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("./challengeAuthorHelpHookAdapter"), exports);
|
|
14
|
+
__exportStar(require("./challengeConsumerHelpHookAdapter"), exports);
|
|
15
|
+
__exportStar(require("./selectedChallengeHookAdapter"), exports);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeSelectedChallengeHookAdapter = void 0;
|
|
4
|
+
const SelectedChallengePM_1 = require("../PMs/SelectedChallengePM");
|
|
5
|
+
function makeSelectedChallengeHookAdapter() {
|
|
6
|
+
return {
|
|
7
|
+
defaultVM: {
|
|
8
|
+
challenge: undefined,
|
|
9
|
+
options: [],
|
|
10
|
+
},
|
|
11
|
+
subscribe: (appObjects, setVM) => {
|
|
12
|
+
const pm = SelectedChallengePM_1.SelectedChallengePM.get(appObjects);
|
|
13
|
+
if (!pm) {
|
|
14
|
+
appObjects.submitError("inspectorTabAdapter", "Unable to find InspectorTabPM");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
pm.addView(setVM);
|
|
18
|
+
},
|
|
19
|
+
unsubscribe: (appObjects, setVM) => {
|
|
20
|
+
const pm = SelectedChallengePM_1.SelectedChallengePM.get(appObjects);
|
|
21
|
+
if (!pm) {
|
|
22
|
+
appObjects.submitError("inspectorTabAdapter", "Unable to find InspectorTabPM");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
pm.removeView(setVM);
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.makeSelectedChallengeHookAdapter = makeSelectedChallengeHookAdapter;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AppObject, AppObjectUC } from "../../../AppObject";
|
|
2
|
+
import { SerializedSystem } from "../../StateMachine";
|
|
3
|
+
export declare class SerializeChallengeUC<CT> extends AppObjectUC implements SerializedSystem {
|
|
4
|
+
static readonly type = "SerializeChallengeUC";
|
|
5
|
+
name: string;
|
|
6
|
+
seriliziationVersion: number;
|
|
7
|
+
private get challenge();
|
|
8
|
+
getSystemState(): object;
|
|
9
|
+
applySystemState(state: object, version: number): void;
|
|
10
|
+
private applyVersion1;
|
|
11
|
+
applyDefaultState(): void;
|
|
12
|
+
constructor(appObject: AppObject);
|
|
13
|
+
}
|
|
14
|
+
export interface SerializedStateV1 {
|
|
15
|
+
challenge: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SerializeChallengeUC = void 0;
|
|
4
|
+
const AppObject_1 = require("../../../AppObject");
|
|
5
|
+
const StateMachine_1 = require("../../StateMachine");
|
|
6
|
+
const ChallengeEntity_1 = require("../Entities/ChallengeEntity");
|
|
7
|
+
class SerializeChallengeUC extends AppObject_1.AppObjectUC {
|
|
8
|
+
constructor(appObject) {
|
|
9
|
+
super(appObject, SerializeChallengeUC.type);
|
|
10
|
+
this.name = "challenge";
|
|
11
|
+
this.seriliziationVersion = 1;
|
|
12
|
+
const stateMachine = StateMachine_1.StateMachineEntity.get(appObject.appObjectRepo);
|
|
13
|
+
if (stateMachine) {
|
|
14
|
+
stateMachine.registerSerializedSystem(this);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this.warn("Unable to find StateMachineEntity");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
get challenge() {
|
|
21
|
+
return this.getCachedSingleton(ChallengeEntity_1.ChallengeEntity.type);
|
|
22
|
+
}
|
|
23
|
+
getSystemState() {
|
|
24
|
+
if (!this.challenge)
|
|
25
|
+
return {};
|
|
26
|
+
let challenge = this.challenge
|
|
27
|
+
.defaultChallenge;
|
|
28
|
+
if (this.challenge.selectedChallenge) {
|
|
29
|
+
challenge = this.challenge.selectedChallenge;
|
|
30
|
+
}
|
|
31
|
+
const state = {
|
|
32
|
+
challenge,
|
|
33
|
+
};
|
|
34
|
+
return state;
|
|
35
|
+
}
|
|
36
|
+
applySystemState(state, version) {
|
|
37
|
+
if (version === 1) {
|
|
38
|
+
this.applyVersion1(state);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.applyDefaultState();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
applyVersion1(state) {
|
|
45
|
+
if (!this.challenge)
|
|
46
|
+
return;
|
|
47
|
+
this.challenge.selectedChallenge = state.challenge;
|
|
48
|
+
}
|
|
49
|
+
applyDefaultState() {
|
|
50
|
+
if (!this.challenge)
|
|
51
|
+
return;
|
|
52
|
+
this.challenge.selectedChallenge = this.challenge.defaultChallenge;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.SerializeChallengeUC = SerializeChallengeUC;
|
|
56
|
+
SerializeChallengeUC.type = "SerializeChallengeUC";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AppObject, AppObjectRepo, AppObjectUC } from "../../../AppObject";
|
|
2
|
+
export declare abstract class SetChallengeUC<CT> extends AppObjectUC {
|
|
3
|
+
static type: string;
|
|
4
|
+
abstract setChallenge(challenge: CT): void;
|
|
5
|
+
static get<CT>(appObjects: AppObjectRepo): SetChallengeUC<CT> | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare function makeSetChallengeUC<CT>(appObject: AppObject): SetChallengeUC<CT>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeSetChallengeUC = exports.SetChallengeUC = void 0;
|
|
4
|
+
const AppObject_1 = require("../../../AppObject");
|
|
5
|
+
const Dispatcher_1 = require("../../Dispatcher");
|
|
6
|
+
const ChallengeEntity_1 = require("../Entities/ChallengeEntity");
|
|
7
|
+
const SetChallengeUndo_1 = require("./SetChallengeUndo");
|
|
8
|
+
class SetChallengeUC extends AppObject_1.AppObjectUC {
|
|
9
|
+
static get(appObjects) {
|
|
10
|
+
return AppObject_1.getSingletonComponent(SetChallengeUC.type, appObjects);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.SetChallengeUC = SetChallengeUC;
|
|
14
|
+
SetChallengeUC.type = "SetChallengeUC";
|
|
15
|
+
function makeSetChallengeUC(appObject) {
|
|
16
|
+
return new SetChallengeUCImp(appObject);
|
|
17
|
+
}
|
|
18
|
+
exports.makeSetChallengeUC = makeSetChallengeUC;
|
|
19
|
+
class SetChallengeUCImp extends SetChallengeUC {
|
|
20
|
+
get challengeEntity() {
|
|
21
|
+
return this.getCachedSingleton(ChallengeEntity_1.ChallengeEntity.type);
|
|
22
|
+
}
|
|
23
|
+
get dispatchStateChange() {
|
|
24
|
+
return this.getCachedSingleton(Dispatcher_1.DispatchStateChangeUC.type);
|
|
25
|
+
}
|
|
26
|
+
setChallenge(challenge) {
|
|
27
|
+
var _a;
|
|
28
|
+
if (!this.challengeEntity) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (this.challengeEntity.selectedChallenge === challenge)
|
|
32
|
+
return;
|
|
33
|
+
if (this.challengeEntity.selectedChallenge) {
|
|
34
|
+
new SetChallengeUndo_1.SetChallengeUndo(this.challengeEntity.selectedChallenge, this.appObjects);
|
|
35
|
+
}
|
|
36
|
+
this.challengeEntity.selectedChallenge = challenge;
|
|
37
|
+
(_a = this.dispatchStateChange) === null || _a === void 0 ? void 0 : _a.doDispatch();
|
|
38
|
+
}
|
|
39
|
+
constructor(appObject) {
|
|
40
|
+
super(appObject, SetChallengeUC.type);
|
|
41
|
+
this.appObjects.registerSingleton(this);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AppObjectRepo } from "../../../AppObject";
|
|
2
|
+
import { UndoRedoAction } from "../../UndoRedo";
|
|
3
|
+
export declare class SetChallengeUndo<CT> implements UndoRedoAction {
|
|
4
|
+
private appObjects;
|
|
5
|
+
private challenge?;
|
|
6
|
+
private undoChallenge;
|
|
7
|
+
private redoChallenge?;
|
|
8
|
+
undoAction: () => void;
|
|
9
|
+
redoAction: () => void;
|
|
10
|
+
constructor(initialChallenge: CT, appObjects: AppObjectRepo);
|
|
11
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetChallengeUndo = void 0;
|
|
4
|
+
const Dispatcher_1 = require("../../Dispatcher");
|
|
5
|
+
const UndoRedo_1 = require("../../UndoRedo");
|
|
6
|
+
const ChallengeEntity_1 = require("../Entities/ChallengeEntity");
|
|
7
|
+
class SetChallengeUndo {
|
|
8
|
+
constructor(initialChallenge, appObjects) {
|
|
9
|
+
this.appObjects = appObjects;
|
|
10
|
+
this.undoAction = () => {
|
|
11
|
+
if (!this.undoChallenge || !this.challenge)
|
|
12
|
+
return;
|
|
13
|
+
this.challenge.selectedChallenge = this.undoChallenge;
|
|
14
|
+
Dispatcher_1.dispatchStateChange(this.appObjects);
|
|
15
|
+
};
|
|
16
|
+
this.redoAction = () => {
|
|
17
|
+
if (!this.challenge || !this.redoChallenge)
|
|
18
|
+
return;
|
|
19
|
+
this.challenge.selectedChallenge = this.redoChallenge;
|
|
20
|
+
Dispatcher_1.dispatchStateChange(this.appObjects);
|
|
21
|
+
};
|
|
22
|
+
this.undoChallenge = initialChallenge;
|
|
23
|
+
this.challenge = ChallengeEntity_1.ChallengeEntity.get(appObjects);
|
|
24
|
+
if (!this.challenge) {
|
|
25
|
+
appObjects.submitError("SetChallengeUR", "Unable to find ChallengeEntity");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this.redoChallenge = this.challenge.selectedChallenge;
|
|
29
|
+
const undoRedo = UndoRedo_1.UndoRedoEntity.get(this.appObjects);
|
|
30
|
+
if (!undoRedo) {
|
|
31
|
+
this.appObjects.submitWarning("SetChallengeUR", "Unable to find UndoRedoEntity");
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
undoRedo.submitAction(this);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.SetChallengeUndo = SetChallengeUndo;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AppObject, AppObjectRepo, AppObjectUC } from "../../../AppObject";
|
|
2
|
+
export declare abstract class ShowChallengeHelpUC extends AppObjectUC {
|
|
3
|
+
static readonly type = "ShowChallengeHelpUC";
|
|
4
|
+
abstract showChallengeHelp(): void;
|
|
5
|
+
static get: (appObjects: AppObjectRepo) => ShowChallengeHelpUC | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare function makeShowChallengeHelpUC<CT>(appObject: AppObject): ShowChallengeHelpUC;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeShowChallengeHelpUC = exports.ShowChallengeHelpUC = void 0;
|
|
4
|
+
const AppObject_1 = require("../../../AppObject");
|
|
5
|
+
const ShowAlertUC_1 = require("../../Dispatcher/UC/ShowAlertUC");
|
|
6
|
+
const Entities_1 = require("../Entities");
|
|
7
|
+
class ShowChallengeHelpUC extends AppObject_1.AppObjectUC {
|
|
8
|
+
}
|
|
9
|
+
exports.ShowChallengeHelpUC = ShowChallengeHelpUC;
|
|
10
|
+
ShowChallengeHelpUC.type = "ShowChallengeHelpUC";
|
|
11
|
+
ShowChallengeHelpUC.get = (appObjects) => AppObject_1.getSingletonComponent(ShowChallengeHelpUC.type, appObjects);
|
|
12
|
+
function makeShowChallengeHelpUC(appObject) {
|
|
13
|
+
return new ShowChallengeHelpUCImp(appObject);
|
|
14
|
+
}
|
|
15
|
+
exports.makeShowChallengeHelpUC = makeShowChallengeHelpUC;
|
|
16
|
+
class ShowChallengeHelpUCImp extends ShowChallengeHelpUC {
|
|
17
|
+
constructor(appObject) {
|
|
18
|
+
super(appObject, ShowChallengeHelpUC.type);
|
|
19
|
+
this.showChallengeHelp = () => {
|
|
20
|
+
if (!this.challengeEntity || !this.showAlertUC)
|
|
21
|
+
return;
|
|
22
|
+
ShowAlertUC_1.ShowAlertUC.get(this.appObjects);
|
|
23
|
+
const title = this.challengeEntity.helpHeading;
|
|
24
|
+
const message = this.challengeEntity.helpText;
|
|
25
|
+
if (!title || !message) {
|
|
26
|
+
this.warn("Title or message is empty");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const alertDTO = {
|
|
30
|
+
title,
|
|
31
|
+
message,
|
|
32
|
+
closeButtonLabel: "Close",
|
|
33
|
+
closeCallback: () => { },
|
|
34
|
+
};
|
|
35
|
+
this.showAlertUC.showAlert(alertDTO);
|
|
36
|
+
};
|
|
37
|
+
this.appObjects.registerSingleton(this);
|
|
38
|
+
}
|
|
39
|
+
get challengeEntity() {
|
|
40
|
+
return this.getCachedSingleton(Entities_1.ChallengeEntity.type);
|
|
41
|
+
}
|
|
42
|
+
get showAlertUC() {
|
|
43
|
+
return this.getCachedSingleton(ShowAlertUC_1.ShowAlertUC.type);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
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("./SerializeChallenge"), exports);
|
|
14
|
+
__exportStar(require("./SetChallengeUC"), exports);
|
|
15
|
+
__exportStar(require("./SetChallengeUndo"), exports);
|
|
16
|
+
__exportStar(require("./ShowChallengeHelpUC"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./Controller"), exports);
|
|
14
|
+
__exportStar(require("./Entities"), exports);
|
|
15
|
+
__exportStar(require("./Mocks"), exports);
|
|
16
|
+
__exportStar(require("./PMs"), exports);
|
|
17
|
+
__exportStar(require("./React"), exports);
|
|
18
|
+
__exportStar(require("./UCs"), exports);
|
|
@@ -10,6 +10,6 @@ class MockShowAlert extends UC_1.ShowAlertUC {
|
|
|
10
10
|
}
|
|
11
11
|
exports.MockShowAlert = MockShowAlert;
|
|
12
12
|
function makeMockShowAlert(appObjects) {
|
|
13
|
-
return new MockShowAlert(appObjects.getOrCreate("
|
|
13
|
+
return new MockShowAlert(appObjects.getOrCreate("MockShowAlert"));
|
|
14
14
|
}
|
|
15
15
|
exports.makeMockShowAlert = makeMockShowAlert;
|
|
@@ -8,7 +8,7 @@ export interface ShowAlertDTO {
|
|
|
8
8
|
closeCallback: () => void;
|
|
9
9
|
}
|
|
10
10
|
export declare abstract class ShowAlertUC extends AppObjectUC {
|
|
11
|
-
static
|
|
11
|
+
static type: string;
|
|
12
12
|
readonly requestType = "SHOW_ALERT";
|
|
13
13
|
abstract showAlert(data: ShowAlertDTO): void;
|
|
14
14
|
static get: (appObjects: AppObjectRepo) => ShowAlertUC | undefined;
|
|
@@ -60,22 +60,27 @@ class StateMachineImp extends StateMachineEntity {
|
|
|
60
60
|
};
|
|
61
61
|
this.setSerializedStates = (states, duration) => {
|
|
62
62
|
if (states.version === 2) {
|
|
63
|
-
const
|
|
63
|
+
const systemStateLookup = new Map();
|
|
64
64
|
states.systems.forEach((systemState) => {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
seriliazableSystem.applySystemState(systemState.state, systemState.seriliziationVersion, duration);
|
|
65
|
+
if (this.serializedSystems.has(systemState.name)) {
|
|
66
|
+
systemStateLookup.set(systemState.name, systemState);
|
|
68
67
|
}
|
|
69
68
|
else {
|
|
70
69
|
this.warn(`Unable to find serializedSystem ${systemState.name}`);
|
|
71
70
|
}
|
|
72
|
-
appliedToSystems.push(systemState.name);
|
|
73
71
|
});
|
|
72
|
+
// Apply default states first
|
|
74
73
|
this.serializedSystems.forEach((system) => {
|
|
75
|
-
if (!
|
|
74
|
+
if (!systemStateLookup.has(system.name)) {
|
|
76
75
|
system.applyDefaultState(duration);
|
|
77
76
|
}
|
|
78
77
|
});
|
|
78
|
+
this.serializedSystems.forEach((system) => {
|
|
79
|
+
const systemState = systemStateLookup.get(system.name);
|
|
80
|
+
if (systemState) {
|
|
81
|
+
system.applySystemState(systemState.state, systemState.seriliziationVersion, duration);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
79
84
|
this.notifyOnChange();
|
|
80
85
|
return;
|
|
81
86
|
}
|
package/lib/Components/index.js
CHANGED
|
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
__exportStar(require("./App"), exports);
|
|
14
14
|
__exportStar(require("./Babylon"), exports);
|
|
15
15
|
__exportStar(require("./Camera"), exports);
|
|
16
|
+
__exportStar(require("./Challenge"), exports);
|
|
16
17
|
__exportStar(require("./ChannelModel"), exports);
|
|
17
18
|
__exportStar(require("./Dispatcher"), exports);
|
|
18
19
|
__exportStar(require("./Enablement"), exports);
|
package/lib/Types/index.d.ts
CHANGED
package/lib/Types/index.js
CHANGED