@vived/host 4.1.0 → 4.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.
Files changed (92) hide show
  1. package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js +24 -0
  2. package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js.map +1 -0
  3. package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.js +30 -0
  4. package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.js.map +1 -0
  5. package/dist/cjs/ChallengeResults/Adapters/index.js +1 -0
  6. package/dist/cjs/ChallengeResults/Adapters/index.js.map +1 -1
  7. package/dist/cjs/ChallengeResults/Factories/index.js +1 -1
  8. package/dist/cjs/ChallengeResults/Factories/index.js.map +1 -1
  9. package/dist/cjs/ChallengeResults/Factories/setupChallengeResults.js +14 -0
  10. package/dist/cjs/ChallengeResults/Factories/setupChallengeResults.js.map +1 -0
  11. package/dist/cjs/ChallengeResults/Factories/setupChallengeResultsForSandbox.js +1 -0
  12. package/dist/cjs/ChallengeResults/Factories/setupChallengeResultsForSandbox.js.map +1 -1
  13. package/dist/cjs/ChallengeResults/Mocks/MockHasChallengeResultsPM.js +16 -0
  14. package/dist/cjs/ChallengeResults/Mocks/MockHasChallengeResultsPM.js.map +1 -0
  15. package/dist/cjs/ChallengeResults/Mocks/index.js +1 -0
  16. package/dist/cjs/ChallengeResults/Mocks/index.js.map +1 -1
  17. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.js +2 -0
  18. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
  19. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.test.js +4 -2
  20. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.test.js.map +1 -1
  21. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.js +37 -0
  22. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -0
  23. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.test.js +32 -0
  24. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.test.js.map +1 -0
  25. package/dist/cjs/ChallengeResults/PMs/index.js +1 -0
  26. package/dist/cjs/ChallengeResults/PMs/index.js.map +1 -1
  27. package/dist/cjs/ThemeColors/Factories/index.js +1 -1
  28. package/dist/cjs/ThemeColors/Factories/index.js.map +1 -1
  29. package/dist/cjs/ThemeColors/Factories/setupTheme.js +20 -0
  30. package/dist/cjs/ThemeColors/Factories/setupTheme.js.map +1 -0
  31. package/dist/cjs/ThemeColors/UCs/SetThemeUC.js +1 -1
  32. package/dist/cjs/ThemeColors/UCs/SetThemeUC.js.map +1 -1
  33. package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js +21 -0
  34. package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js.map +1 -0
  35. package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.js +28 -0
  36. package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.js.map +1 -0
  37. package/dist/esm/ChallengeResults/Adapters/index.js +1 -0
  38. package/dist/esm/ChallengeResults/Adapters/index.js.map +1 -1
  39. package/dist/esm/ChallengeResults/Factories/index.js +1 -1
  40. package/dist/esm/ChallengeResults/Factories/index.js.map +1 -1
  41. package/dist/esm/ChallengeResults/Factories/setupChallengeResults.js +11 -0
  42. package/dist/esm/ChallengeResults/Factories/setupChallengeResults.js.map +1 -0
  43. package/dist/esm/ChallengeResults/Factories/setupChallengeResultsForSandbox.js +2 -1
  44. package/dist/esm/ChallengeResults/Factories/setupChallengeResultsForSandbox.js.map +1 -1
  45. package/dist/esm/ChallengeResults/Mocks/MockHasChallengeResultsPM.js +11 -0
  46. package/dist/esm/ChallengeResults/Mocks/MockHasChallengeResultsPM.js.map +1 -0
  47. package/dist/esm/ChallengeResults/Mocks/index.js +1 -0
  48. package/dist/esm/ChallengeResults/Mocks/index.js.map +1 -1
  49. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.js +2 -0
  50. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
  51. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.test.js +4 -2
  52. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.test.js.map +1 -1
  53. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.js +32 -0
  54. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -0
  55. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.test.js +30 -0
  56. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.test.js.map +1 -0
  57. package/dist/esm/ChallengeResults/PMs/index.js +1 -0
  58. package/dist/esm/ChallengeResults/PMs/index.js.map +1 -1
  59. package/dist/esm/ThemeColors/Factories/index.js +1 -1
  60. package/dist/esm/ThemeColors/Factories/index.js.map +1 -1
  61. package/dist/esm/ThemeColors/Factories/setupTheme.js +17 -0
  62. package/dist/esm/ThemeColors/Factories/setupTheme.js.map +1 -0
  63. package/dist/esm/ThemeColors/UCs/SetThemeUC.js +1 -1
  64. package/dist/esm/ThemeColors/UCs/SetThemeUC.js.map +1 -1
  65. package/dist/types/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.d.ts +3 -0
  66. package/dist/types/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.d.ts.map +1 -0
  67. package/dist/types/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.d.ts +2 -0
  68. package/dist/types/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.d.ts.map +1 -0
  69. package/dist/types/ChallengeResults/Adapters/index.d.ts +1 -0
  70. package/dist/types/ChallengeResults/Adapters/index.d.ts.map +1 -1
  71. package/dist/types/ChallengeResults/Factories/index.d.ts +1 -1
  72. package/dist/types/ChallengeResults/Factories/index.d.ts.map +1 -1
  73. package/dist/types/ChallengeResults/Factories/setupChallengeResults.d.ts +4 -0
  74. package/dist/types/ChallengeResults/Factories/setupChallengeResults.d.ts.map +1 -0
  75. package/dist/types/ChallengeResults/Factories/setupChallengeResultsForSandbox.d.ts.map +1 -1
  76. package/dist/types/ChallengeResults/Mocks/MockHasChallengeResultsPM.d.ts +8 -0
  77. package/dist/types/ChallengeResults/Mocks/MockHasChallengeResultsPM.d.ts.map +1 -0
  78. package/dist/types/ChallengeResults/Mocks/index.d.ts +1 -0
  79. package/dist/types/ChallengeResults/Mocks/index.d.ts.map +1 -1
  80. package/dist/types/ChallengeResults/PMs/ChallengeResultsListPM.d.ts +1 -0
  81. package/dist/types/ChallengeResults/PMs/ChallengeResultsListPM.d.ts.map +1 -1
  82. package/dist/types/ChallengeResults/PMs/HasChallengeResultsPM.d.ts +7 -0
  83. package/dist/types/ChallengeResults/PMs/HasChallengeResultsPM.d.ts.map +1 -0
  84. package/dist/types/ChallengeResults/PMs/HasChallengeResultsPM.test.d.ts +2 -0
  85. package/dist/types/ChallengeResults/PMs/HasChallengeResultsPM.test.d.ts.map +1 -0
  86. package/dist/types/ChallengeResults/PMs/index.d.ts +1 -0
  87. package/dist/types/ChallengeResults/PMs/index.d.ts.map +1 -1
  88. package/dist/types/ThemeColors/Factories/index.d.ts +1 -1
  89. package/dist/types/ThemeColors/Factories/index.d.ts.map +1 -1
  90. package/dist/types/ThemeColors/Factories/setupTheme.d.ts +3 -0
  91. package/dist/types/ThemeColors/Factories/setupTheme.d.ts.map +1 -0
  92. package/package.json +1 -1
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasChallengeResultsPMAdapter = void 0;
4
+ const HasChallengeResultsPM_1 = require("../PMs/HasChallengeResultsPM");
5
+ exports.hasChallengeResultsPMAdapter = {
6
+ defaultVM: false,
7
+ subscribe: (appObjects, setVM) => {
8
+ const pm = HasChallengeResultsPM_1.HasChallengeResultsPM.get(appObjects);
9
+ if (!pm) {
10
+ appObjects.submitError("hasChallengeResultsPMAdapter", "Unable to find HasChallengeResultsPM");
11
+ return;
12
+ }
13
+ pm.addView(setVM);
14
+ },
15
+ unsubscribe: (appObjects, setVM) => {
16
+ const pm = HasChallengeResultsPM_1.HasChallengeResultsPM.get(appObjects);
17
+ if (!pm) {
18
+ appObjects.submitError("hasChallengeResultsPMAdapter", "Unable to find HasChallengeResultsPM");
19
+ return;
20
+ }
21
+ pm.removeView(setVM);
22
+ }
23
+ };
24
+ //# sourceMappingURL=hasChallengeResultsPMAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasChallengeResultsPMAdapter.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.ts"],"names":[],"mappings":";;;AACA,wEAAqE;AAExD,QAAA,4BAA4B,GAAgC;IACvE,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,CAAC,UAAyB,EAAE,KAA4B,EAAE,EAAE;QACrE,MAAM,EAAE,GAAG,6CAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CACpB,8BAA8B,EAC9B,sCAAsC,CACvC,CAAC;YACF,OAAO;QACT,CAAC;QACD,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,WAAW,EAAE,CAAC,UAAyB,EAAE,KAA4B,EAAE,EAAE;QACvE,MAAM,EAAE,GAAG,6CAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CACpB,8BAA8B,EAC9B,sCAAsC,CACvC,CAAC;YACF,OAAO;QACT,CAAC;QACD,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF,CAAC","sourcesContent":["import { AppObjectRepo, SingletonPmAdapter } from \"@vived/core\";\r\nimport { HasChallengeResultsPM } from \"../PMs/HasChallengeResultsPM\";\r\n\r\nexport const hasChallengeResultsPMAdapter: SingletonPmAdapter<boolean> = {\r\n defaultVM: false,\r\n subscribe: (appObjects: AppObjectRepo, setVM: (vm: boolean) => void) => {\r\n const pm = HasChallengeResultsPM.get(appObjects);\r\n if (!pm) {\r\n appObjects.submitError(\r\n \"hasChallengeResultsPMAdapter\",\r\n \"Unable to find HasChallengeResultsPM\"\r\n );\r\n return;\r\n }\r\n pm.addView(setVM);\r\n },\r\n unsubscribe: (appObjects: AppObjectRepo, setVM: (vm: boolean) => void) => {\r\n const pm = HasChallengeResultsPM.get(appObjects);\r\n if (!pm) {\r\n appObjects.submitError(\r\n \"hasChallengeResultsPMAdapter\",\r\n \"Unable to find HasChallengeResultsPM\"\r\n );\r\n return;\r\n }\r\n pm.removeView(setVM);\r\n }\r\n};\r\n"]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@vived/core");
4
+ const MockHasChallengeResultsPM_1 = require("../Mocks/MockHasChallengeResultsPM");
5
+ const hasChallengeResultsPMAdapter_1 = require("./hasChallengeResultsPMAdapter");
6
+ function makeTestRig() {
7
+ const appObjects = (0, core_1.makeAppObjectRepo)();
8
+ const mockPM = (0, MockHasChallengeResultsPM_1.makeMockHasChallengeResultsPM)(appObjects);
9
+ return { appObjects, mockPM };
10
+ }
11
+ describe("Has Challenge Results PM Adapter", () => {
12
+ it("Sets the Default VM", () => {
13
+ expect(hasChallengeResultsPMAdapter_1.hasChallengeResultsPMAdapter.defaultVM).toEqual(false);
14
+ });
15
+ it("Add a view on subscribe", () => {
16
+ const { mockPM, appObjects } = makeTestRig();
17
+ mockPM.addView = jest.fn();
18
+ const setVM = jest.fn();
19
+ hasChallengeResultsPMAdapter_1.hasChallengeResultsPMAdapter.subscribe(appObjects, setVM);
20
+ expect(mockPM.addView).toBeCalledWith(setVM);
21
+ });
22
+ it("Removes a view on unsubscribe", () => {
23
+ const { mockPM, appObjects } = makeTestRig();
24
+ mockPM.removeView = jest.fn();
25
+ const setVM = jest.fn();
26
+ hasChallengeResultsPMAdapter_1.hasChallengeResultsPMAdapter.unsubscribe(appObjects, setVM);
27
+ expect(mockPM.removeView).toBeCalledWith(setVM);
28
+ });
29
+ });
30
+ //# sourceMappingURL=hasChallengeResultsPMAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasChallengeResultsPMAdapter.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,kFAAmF;AACnF,iFAA8E;AAE9E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,MAAM,GAAG,IAAA,yDAA6B,EAAC,UAAU,CAAC,CAAC;IACzD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,2DAA4B,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAExB,2DAA4B,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAExB,2DAA4B,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockHasChallengeResultsPM } from \"../Mocks/MockHasChallengeResultsPM\";\r\nimport { hasChallengeResultsPMAdapter } from \"./hasChallengeResultsPMAdapter\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const mockPM = makeMockHasChallengeResultsPM(appObjects);\r\n return { appObjects, mockPM };\r\n}\r\n\r\ndescribe(\"Has Challenge Results PM Adapter\", () => {\r\n it(\"Sets the Default VM\", () => {\r\n expect(hasChallengeResultsPMAdapter.defaultVM).toEqual(false);\r\n });\r\n\r\n it(\"Add a view on subscribe\", () => {\r\n const { mockPM, appObjects } = makeTestRig();\r\n\r\n mockPM.addView = jest.fn();\r\n const setVM = jest.fn();\r\n\r\n hasChallengeResultsPMAdapter.subscribe(appObjects, setVM);\r\n\r\n expect(mockPM.addView).toBeCalledWith(setVM);\r\n });\r\n\r\n it(\"Removes a view on unsubscribe\", () => {\r\n const { mockPM, appObjects } = makeTestRig();\r\n\r\n mockPM.removeView = jest.fn();\r\n const setVM = jest.fn();\r\n\r\n hasChallengeResultsPMAdapter.unsubscribe(appObjects, setVM);\r\n\r\n expect(mockPM.removeView).toBeCalledWith(setVM);\r\n });\r\n});\r\n"]}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./challengeResultsListAdapter"), exports);
18
+ __exportStar(require("./hasChallengeResultsPMAdapter"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C","sourcesContent":["export * from \"./challengeResultsListAdapter\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,iEAA+C","sourcesContent":["export * from \"./challengeResultsListAdapter\";\r\nexport * from \"./hasChallengeResultsPMAdapter\";\r\n"]}
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./setupChallengeResultsForSandbox"), exports);
17
+ __exportStar(require("./setupChallengeResults"), exports);
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAiD","sourcesContent":["export * from \"./setupChallengeResultsForSandbox\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC","sourcesContent":["export * from \"./setupChallengeResults\""]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupChallengeResults = setupChallengeResults;
4
+ const Entities_1 = require("../Entities");
5
+ const PMs_1 = require("../PMs");
6
+ function setupChallengeResults(appObjects) {
7
+ const ao = appObjects.getOrCreate("ChallengeResults");
8
+ const entity = (0, Entities_1.makeChallengeResults)(ao);
9
+ // PM
10
+ (0, PMs_1.makeChallengeResultsPM)(ao);
11
+ (0, PMs_1.makeHasChallengeResultsPM)(ao);
12
+ return entity;
13
+ }
14
+ //# sourceMappingURL=setupChallengeResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupChallengeResults.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResults.ts"],"names":[],"mappings":";;AAIA,sDAYC;AAfD,0CAA2E;AAC3E,gCAA2E;AAE3E,SAAgB,qBAAqB,CACnC,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,IAAA,+BAAoB,EAAC,EAAE,CAAC,CAAC;IAExC,KAAK;IACL,IAAA,4BAAsB,EAAC,EAAE,CAAC,CAAC;IAC3B,IAAA,+BAAyB,EAAC,EAAE,CAAC,CAAC;IAE9B,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { ChallengeResultsEntity, makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM, makeHasChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResults(\r\n appObjects: AppObjectRepo\r\n): ChallengeResultsEntity {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n const entity = makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n makeHasChallengeResultsPM(ao);\r\n\r\n return entity;\r\n}\r\n"]}
@@ -8,5 +8,6 @@ function setupChallengeResultsForSandbox(appObjects) {
8
8
  (0, Entities_1.makeChallengeResults)(ao);
9
9
  // PM
10
10
  (0, PMs_1.makeChallengeResultsPM)(ao);
11
+ (0, PMs_1.makeHasChallengeResultsPM)(ao);
11
12
  }
12
13
  //# sourceMappingURL=setupChallengeResultsForSandbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupChallengeResultsForSandbox.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResultsForSandbox.ts"],"names":[],"mappings":";;AAIA,0EAOC;AAVD,0CAAmD;AACnD,gCAAgD;AAEhD,SAAgB,+BAA+B,CAAC,UAAyB;IACvE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAA,+BAAoB,EAAC,EAAE,CAAC,CAAC;IAEzB,KAAK;IACL,IAAA,4BAAsB,EAAC,EAAE,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResultsForSandbox(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n}\r\n"]}
1
+ {"version":3,"file":"setupChallengeResultsForSandbox.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResultsForSandbox.ts"],"names":[],"mappings":";;AAIA,0EAQC;AAXD,0CAAmD;AACnD,gCAA2E;AAE3E,SAAgB,+BAA+B,CAAC,UAAyB;IACvE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAA,+BAAoB,EAAC,EAAE,CAAC,CAAC;IAEzB,KAAK;IACL,IAAA,4BAAsB,EAAC,EAAE,CAAC,CAAC;IAC3B,IAAA,+BAAyB,EAAC,EAAE,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM, makeHasChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResultsForSandbox(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n makeHasChallengeResultsPM(ao);\r\n}\r\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockHasChallengeResultsPM = void 0;
4
+ exports.makeMockHasChallengeResultsPM = makeMockHasChallengeResultsPM;
5
+ const HasChallengeResultsPM_1 = require("../PMs/HasChallengeResultsPM");
6
+ class MockHasChallengeResultsPM extends HasChallengeResultsPM_1.HasChallengeResultsPM {
7
+ constructor(appObject) {
8
+ super(appObject, HasChallengeResultsPM_1.HasChallengeResultsPM.type);
9
+ this.vmsAreEqual = jest.fn();
10
+ }
11
+ }
12
+ exports.MockHasChallengeResultsPM = MockHasChallengeResultsPM;
13
+ function makeMockHasChallengeResultsPM(appObjects) {
14
+ return new MockHasChallengeResultsPM(appObjects.getOrCreate("MockHasChallengeResultsPM"));
15
+ }
16
+ //# sourceMappingURL=MockHasChallengeResultsPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockHasChallengeResultsPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/MockHasChallengeResultsPM.ts"],"names":[],"mappings":";;;AAWA,sEAIC;AAdD,wEAAqE;AAErE,MAAa,yBAA0B,SAAQ,6CAAqB;IAGlE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,6CAAqB,CAAC,IAAI,CAAC,CAAC;QAH/C,gBAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIxB,CAAC;CACF;AAND,8DAMC;AAED,SAAgB,6BAA6B,CAAC,UAAyB;IACrE,OAAO,IAAI,yBAAyB,CAClC,UAAU,CAAC,WAAW,CAAC,2BAA2B,CAAC,CACpD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { HasChallengeResultsPM } from \"../PMs/HasChallengeResultsPM\";\r\n\r\nexport class MockHasChallengeResultsPM extends HasChallengeResultsPM {\r\n vmsAreEqual = jest.fn();\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, HasChallengeResultsPM.type);\r\n }\r\n}\r\n\r\nexport function makeMockHasChallengeResultsPM(appObjects: AppObjectRepo) {\r\n return new MockHasChallengeResultsPM(\r\n appObjects.getOrCreate(\"MockHasChallengeResultsPM\")\r\n );\r\n}\r\n"]}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ChallengeResultsListPMMock"), exports);
18
+ __exportStar(require("./MockHasChallengeResultsPM"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C","sourcesContent":["export * from \"./ChallengeResultsListPMMock\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C;AAC5C,8DAA2C","sourcesContent":["export * from \"./ChallengeResultsListPMMock\"\r\nexport * from \"./MockHasChallengeResultsPM\""]}
@@ -44,12 +44,14 @@ class ChallengeResultsPMImp extends ChallengeResultsListPM {
44
44
  this.results.results.forEach((result) => {
45
45
  const state = this.stateMachine.getStateByID(result.slideID);
46
46
  if (state) {
47
+ const stateIndex = this.stateMachine.getStateIndex(result.slideID) ?? -1;
47
48
  const vm = {
48
49
  id: result.slideID,
49
50
  slideName: state.name,
50
51
  attempts: result.tries,
51
52
  resultType: result.type,
52
53
  message: result.message,
54
+ stateIndex,
53
55
  resultData: result.resultData
54
56
  };
55
57
  organizedResults.push(vm);
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeResultsListPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.ts"],"names":[],"mappings":";;;AAsCA,wDAIC;AA1CD,sCAAoE;AACpE,mFAAgF;AAChF,mEAQsC;AAgBtC,MAAsB,sBAAuB,SAAQ,kBAEpD;IAGC,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAC5B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;;AATH,wDAUC;AAPQ,2BAAI,GAAG,wBAAwB,CAAC;AASzC,SAAgB,sBAAsB,CACpC,SAAoB;IAEpB,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,qBAAsB,SAAQ,sBAAsB;IACxD,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,yCAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,mCAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAsB,EAAE,CAAsB;QACxD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAExC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;gBAAE,QAAQ,GAAG,KAAK,CAAC;iBAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IA0BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAzBhD,mBAAc,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAEhD,MAAM,gBAAgB,GAAwB,EAAE,CAAC;YAEjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,EAAE,GAAsB;wBAC5B,EAAE,EAAE,MAAM,CAAC,OAAO;wBAClB,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,QAAQ,EAAE,MAAM,CAAC,KAAK;wBACtB,UAAU,EAAE,MAAM,CAAC,IAAI;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,CAAC;oBAEF,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC,CAAC;QAIA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\r\nimport { HostStateMachine } from \"../../StateMachine/Entities/HostStateMachine\";\r\nimport {\r\n ChallengeResultHitData,\r\n ChallengeResultMultiHitData,\r\n ChallengeResultProgressData,\r\n ChallengeResultQualityData,\r\n ChallengeResultScoreData,\r\n ChallengeResultsEntity,\r\n ChallengeResultType\r\n} from \"../Entities/ChallengeResults\";\r\n\r\nexport interface ChallengeResultVM {\r\n id: string;\r\n slideName: string;\r\n attempts: number;\r\n message: string;\r\n resultType: ChallengeResultType;\r\n resultData:\r\n | ChallengeResultHitData\r\n | ChallengeResultMultiHitData\r\n | ChallengeResultQualityData\r\n | ChallengeResultScoreData\r\n | ChallengeResultProgressData;\r\n}\r\n\r\nexport abstract class ChallengeResultsListPM extends AppObjectPM<\r\n ChallengeResultVM[]\r\n> {\r\n static type = \"ChallengeResultsListPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return appObjects.getSingleton<ChallengeResultsListPM>(\r\n ChallengeResultsListPM.type\r\n );\r\n }\r\n}\r\n\r\nexport function makeChallengeResultsPM(\r\n appObject: AppObject\r\n): ChallengeResultsListPM {\r\n return new ChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass ChallengeResultsPMImp extends ChallengeResultsListPM {\r\n private get results() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n private get stateMachine() {\r\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\r\n }\r\n\r\n vmsAreEqual(a: ChallengeResultVM[], b: ChallengeResultVM[]): boolean {\r\n if (a.length !== b.length) return false;\r\n\r\n let areEqual = true;\r\n a.forEach((aResult, i) => {\r\n const bResult = b[i];\r\n if (aResult.id !== bResult.id) areEqual = false;\r\n else if (aResult.attempts !== bResult.attempts) areEqual = false;\r\n });\r\n return areEqual;\r\n }\r\n\r\n onEntityChange = (): void => {\r\n if (!this.results || !this.stateMachine) return;\r\n\r\n const organizedResults: ChallengeResultVM[] = [];\r\n\r\n this.results.results.forEach((result) => {\r\n const state = this.stateMachine!.getStateByID(result.slideID);\r\n if (state) {\r\n const vm: ChallengeResultVM = {\r\n id: result.slideID,\r\n slideName: state.name,\r\n attempts: result.tries,\r\n resultType: result.type,\r\n message: result.message,\r\n resultData: result.resultData\r\n };\r\n\r\n organizedResults.push(vm);\r\n }\r\n });\r\n\r\n this.doUpdateView(organizedResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ChallengeResultsListPM.type);\r\n this.doUpdateView([]);\r\n this.results?.addChangeObserver(this.onEntityChange);\r\n\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ChallengeResultsListPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.ts"],"names":[],"mappings":";;;AAuCA,wDAIC;AA3CD,sCAAoE;AACpE,mFAAgF;AAChF,mEAQsC;AAiBtC,MAAsB,sBAAuB,SAAQ,kBAEpD;IAGC,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAC5B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;;AATH,wDAUC;AAPQ,2BAAI,GAAG,wBAAwB,CAAC;AASzC,SAAgB,sBAAsB,CACpC,SAAoB;IAEpB,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,qBAAsB,SAAQ,sBAAsB;IACxD,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,yCAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,mCAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAsB,EAAE,CAAsB;QACxD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAExC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;gBAAE,QAAQ,GAAG,KAAK,CAAC;iBAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IA8BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QA7BhD,mBAAc,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAEhD,MAAM,gBAAgB,GAAwB,EAAE,CAAC;YAEjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,UAAU,GACd,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEzD,MAAM,EAAE,GAAsB;wBAC5B,EAAE,EAAE,MAAM,CAAC,OAAO;wBAClB,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,QAAQ,EAAE,MAAM,CAAC,KAAK;wBACtB,UAAU,EAAE,MAAM,CAAC,IAAI;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,UAAU;wBACV,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,CAAC;oBAEF,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC,CAAC;QAIA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\r\nimport { HostStateMachine } from \"../../StateMachine/Entities/HostStateMachine\";\r\nimport {\r\n ChallengeResultHitData,\r\n ChallengeResultMultiHitData,\r\n ChallengeResultProgressData,\r\n ChallengeResultQualityData,\r\n ChallengeResultScoreData,\r\n ChallengeResultsEntity,\r\n ChallengeResultType\r\n} from \"../Entities/ChallengeResults\";\r\n\r\nexport interface ChallengeResultVM {\r\n id: string;\r\n slideName: string;\r\n attempts: number;\r\n message: string;\r\n resultType: ChallengeResultType;\r\n stateIndex: number;\r\n resultData:\r\n | ChallengeResultHitData\r\n | ChallengeResultMultiHitData\r\n | ChallengeResultQualityData\r\n | ChallengeResultScoreData\r\n | ChallengeResultProgressData;\r\n}\r\n\r\nexport abstract class ChallengeResultsListPM extends AppObjectPM<\r\n ChallengeResultVM[]\r\n> {\r\n static type = \"ChallengeResultsListPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return appObjects.getSingleton<ChallengeResultsListPM>(\r\n ChallengeResultsListPM.type\r\n );\r\n }\r\n}\r\n\r\nexport function makeChallengeResultsPM(\r\n appObject: AppObject\r\n): ChallengeResultsListPM {\r\n return new ChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass ChallengeResultsPMImp extends ChallengeResultsListPM {\r\n private get results() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n private get stateMachine() {\r\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\r\n }\r\n\r\n vmsAreEqual(a: ChallengeResultVM[], b: ChallengeResultVM[]): boolean {\r\n if (a.length !== b.length) return false;\r\n\r\n let areEqual = true;\r\n a.forEach((aResult, i) => {\r\n const bResult = b[i];\r\n if (aResult.id !== bResult.id) areEqual = false;\r\n else if (aResult.attempts !== bResult.attempts) areEqual = false;\r\n });\r\n return areEqual;\r\n }\r\n\r\n onEntityChange = (): void => {\r\n if (!this.results || !this.stateMachine) return;\r\n\r\n const organizedResults: ChallengeResultVM[] = [];\r\n\r\n this.results.results.forEach((result) => {\r\n const state = this.stateMachine!.getStateByID(result.slideID);\r\n if (state) {\r\n const stateIndex =\r\n this.stateMachine!.getStateIndex(result.slideID) ?? -1;\r\n\r\n const vm: ChallengeResultVM = {\r\n id: result.slideID,\r\n slideName: state.name,\r\n attempts: result.tries,\r\n resultType: result.type,\r\n message: result.message,\r\n stateIndex,\r\n resultData: result.resultData\r\n };\r\n\r\n organizedResults.push(vm);\r\n }\r\n });\r\n\r\n this.doUpdateView(organizedResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ChallengeResultsListPM.type);\r\n this.doUpdateView([]);\r\n this.results?.addChangeObserver(this.onEntityChange);\r\n\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
@@ -28,7 +28,8 @@ function makeChallengeResultVM(id) {
28
28
  success: true
29
29
  },
30
30
  resultType: "HIT",
31
- slideName: "slide name"
31
+ slideName: "slide name",
32
+ stateIndex: 0
32
33
  };
33
34
  }
34
35
  describe("Challenge Results PM", () => {
@@ -99,7 +100,8 @@ describe("Challenge Results PM", () => {
99
100
  },
100
101
  resultType: "HIT",
101
102
  id: "state1",
102
- slideName: "State Name"
103
+ slideName: "State Name",
104
+ stateIndex: 0
103
105
  }
104
106
  ]);
105
107
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeResultsListPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeHostStateMachine } from \"../../StateMachine/Entities\";\r\nimport { makeMockHostStateEntity } from \"../../StateMachine/Mocks/MockHostStateEntity\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport {\r\n ChallengeResultsListPM,\r\n ChallengeResultVM,\r\n makeChallengeResultsPM\r\n} from \"./ChallengeResultsListPM\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n const results = makeChallengeResults(appObjects.getOrCreate(\"Results\"));\r\n\r\n const stateMachine = makeHostStateMachine(\r\n appObjects.getOrCreate(\"StateMachine\")\r\n );\r\n stateMachine.setStates([makeMockHostStateEntity(\"state1\", appObjects)]);\r\n\r\n const pm = makeChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return {\r\n pm,\r\n results,\r\n appObjects,\r\n registerSingletonSpy\r\n };\r\n}\r\n\r\nfunction makeChallengeResultVM(id: string): ChallengeResultVM {\r\n return {\r\n attempts: 1,\r\n id,\r\n message: \"a message\",\r\n resultData: {\r\n success: true\r\n },\r\n resultType: \"HIT\",\r\n slideName: \"slide name\"\r\n };\r\n}\r\n\r\ndescribe(\"Challenge Results PM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { appObjects, pm } = makeTestRig();\r\n\r\n expect(ChallengeResultsListPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { registerSingletonSpy, pm } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Checks for equal vms\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [...vm1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);\r\n });\r\n\r\n it(\"Checks for a result to be removed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [result1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a result to be added\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result3 = makeChallengeResultVM(\"result3\");\r\n const vm2 = [result1, result2, result3];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for result ID to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, id: \"changed\" };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for tries to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, attempts: 2 };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Initializes the view\", () => {\r\n const { pm } = makeTestRig();\r\n expect(pm.lastVM).not.toBeUndefined();\r\n });\r\n\r\n it(\"Updates the results\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"state1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toEqual([\r\n {\r\n attempts: 0,\r\n message: \"bob\",\r\n resultData: {\r\n success: false\r\n },\r\n resultType: \"HIT\",\r\n id: \"state1\",\r\n slideName: \"State Name\"\r\n }\r\n ]);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"ChallengeResultsListPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeHostStateMachine } from \"../../StateMachine/Entities\";\r\nimport { makeMockHostStateEntity } from \"../../StateMachine/Mocks/MockHostStateEntity\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport {\r\n ChallengeResultsListPM,\r\n ChallengeResultVM,\r\n makeChallengeResultsPM\r\n} from \"./ChallengeResultsListPM\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n const results = makeChallengeResults(appObjects.getOrCreate(\"Results\"));\r\n\r\n const stateMachine = makeHostStateMachine(\r\n appObjects.getOrCreate(\"StateMachine\")\r\n );\r\n stateMachine.setStates([makeMockHostStateEntity(\"state1\", appObjects)]);\r\n\r\n const pm = makeChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return {\r\n pm,\r\n results,\r\n appObjects,\r\n registerSingletonSpy\r\n };\r\n}\r\n\r\nfunction makeChallengeResultVM(id: string): ChallengeResultVM {\r\n return {\r\n attempts: 1,\r\n id,\r\n message: \"a message\",\r\n resultData: {\r\n success: true\r\n },\r\n resultType: \"HIT\",\r\n slideName: \"slide name\",\r\n stateIndex: 0\r\n };\r\n}\r\n\r\ndescribe(\"Challenge Results PM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { appObjects, pm } = makeTestRig();\r\n\r\n expect(ChallengeResultsListPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { registerSingletonSpy, pm } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Checks for equal vms\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [...vm1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);\r\n });\r\n\r\n it(\"Checks for a result to be removed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [result1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a result to be added\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result3 = makeChallengeResultVM(\"result3\");\r\n const vm2 = [result1, result2, result3];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for result ID to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, id: \"changed\" };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for tries to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, attempts: 2 };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Initializes the view\", () => {\r\n const { pm } = makeTestRig();\r\n expect(pm.lastVM).not.toBeUndefined();\r\n });\r\n\r\n it(\"Updates the results\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"state1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toEqual([\r\n {\r\n attempts: 0,\r\n message: \"bob\",\r\n resultData: {\r\n success: false\r\n },\r\n resultType: \"HIT\",\r\n id: \"state1\",\r\n slideName: \"State Name\",\r\n stateIndex: 0\r\n }\r\n ]);\r\n });\r\n});\r\n"]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HasChallengeResultsPM = void 0;
4
+ exports.makeHasChallengeResultsPM = makeHasChallengeResultsPM;
5
+ const core_1 = require("@vived/core");
6
+ const Entities_1 = require("../Entities");
7
+ class HasChallengeResultsPM extends core_1.AppObjectPM {
8
+ static get(appObjects) {
9
+ return (0, core_1.getSingletonComponent)(HasChallengeResultsPM.type, appObjects);
10
+ }
11
+ }
12
+ exports.HasChallengeResultsPM = HasChallengeResultsPM;
13
+ HasChallengeResultsPM.type = "HasChallengeResultsPM";
14
+ function makeHasChallengeResultsPM(appObject) {
15
+ return new HasChallengeResultsPMImp(appObject);
16
+ }
17
+ class HasChallengeResultsPMImp extends HasChallengeResultsPM {
18
+ get resultsEntity() {
19
+ return this.getCachedSingleton(Entities_1.ChallengeResultsEntity.type);
20
+ }
21
+ vmsAreEqual(a, b) {
22
+ return a === b;
23
+ }
24
+ constructor(appObject) {
25
+ super(appObject, HasChallengeResultsPM.type);
26
+ this.onEntityChange = () => {
27
+ if (!this.resultsEntity)
28
+ return;
29
+ const hasAssessmentResults = this.resultsEntity.results?.length > 0 || false;
30
+ this.doUpdateView(hasAssessmentResults);
31
+ };
32
+ this.appObjects.registerSingleton(this);
33
+ this.resultsEntity?.addChangeObserver(this.onEntityChange);
34
+ this.onEntityChange();
35
+ }
36
+ }
37
+ //# sourceMappingURL=HasChallengeResultsPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasChallengeResultsPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/HasChallengeResultsPM.ts"],"names":[],"mappings":";;;AAmBA,8DAIC;AAvBD,sCAKqB;AACrB,0CAAqD;AAErD,MAAsB,qBAAsB,SAAQ,kBAAoB;IAGtE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAC1B,qBAAqB,CAAC,IAAI,EAC1B,UAAU,CACX,CAAC;IACJ,CAAC;;AARH,sDASC;AARQ,0BAAI,GAAG,uBAAuB,CAAC;AAUxC,SAAgB,yBAAyB,CACvC,SAAoB;IAEpB,OAAO,IAAI,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,wBAAyB,SAAQ,qBAAqB;IAC1D,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,iCAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAWD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAVvC,mBAAc,GAAG,GAAS,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAEhC,MAAM,oBAAoB,GACxB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC;YAElD,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAC1C,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACF","sourcesContent":["import {\r\n\tAppObject,\r\n\tAppObjectPM,\r\n\tAppObjectRepo,\r\n\tgetSingletonComponent\r\n} from \"@vived/core\";\r\nimport { ChallengeResultsEntity } from \"../Entities\";\r\n\r\nexport abstract class HasChallengeResultsPM extends AppObjectPM<boolean> {\r\n static type = \"HasChallengeResultsPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<HasChallengeResultsPM>(\r\n HasChallengeResultsPM.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\nexport function makeHasChallengeResultsPM(\r\n appObject: AppObject\r\n): HasChallengeResultsPM {\r\n return new HasChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass HasChallengeResultsPMImp extends HasChallengeResultsPM {\r\n private get resultsEntity() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n vmsAreEqual(a: boolean, b: boolean): boolean {\r\n return a === b;\r\n }\r\n\r\n private onEntityChange = (): void => {\r\n if (!this.resultsEntity) return;\r\n\r\n const hasAssessmentResults =\r\n this.resultsEntity.results?.length > 0 || false;\r\n\r\n this.doUpdateView(hasAssessmentResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, HasChallengeResultsPM.type);\r\n\r\n this.appObjects.registerSingleton(this);\r\n this.resultsEntity?.addChangeObserver(this.onEntityChange);\r\n this.onEntityChange();\r\n }\r\n}\r\n"]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@vived/core");
4
+ const HasChallengeResultsPM_1 = require("./HasChallengeResultsPM");
5
+ const Entities_1 = require("../Entities");
6
+ function makeTestRig() {
7
+ const appObjects = (0, core_1.makeAppObjectRepo)();
8
+ const registerSingletonSpy = jest.spyOn(appObjects, "registerSingleton");
9
+ const results = (0, Entities_1.makeChallengeResults)(appObjects.getOrCreate("ChallengeResults"));
10
+ const pm = (0, HasChallengeResultsPM_1.makeHasChallengeResultsPM)(appObjects.getOrCreate("PM"));
11
+ return { appObjects, pm, registerSingletonSpy, results };
12
+ }
13
+ describe("HasChallengeResultsPM", () => {
14
+ it("Gets the singleton", () => {
15
+ const { pm, appObjects } = makeTestRig();
16
+ expect(HasChallengeResultsPM_1.HasChallengeResultsPM.get(appObjects)).toEqual(pm);
17
+ });
18
+ it("Registers the singleton", () => {
19
+ const { pm, registerSingletonSpy } = makeTestRig();
20
+ expect(registerSingletonSpy).toBeCalledWith(pm);
21
+ });
22
+ it("Initialize with default VM", () => {
23
+ const { pm } = makeTestRig();
24
+ expect(pm.lastVM).toBe(false);
25
+ });
26
+ it("when results change the VM is updated", () => {
27
+ const { results, pm } = makeTestRig();
28
+ results.submitHitResult("1", false, 0, "bob");
29
+ expect(pm.lastVM).toBe(true);
30
+ });
31
+ });
32
+ //# sourceMappingURL=HasChallengeResultsPM.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasChallengeResultsPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/HasChallengeResultsPM.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAEhD,mEAGiC;AACjC,0CAAmD;AAEnD,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAClC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAC3C,CAAC;IACF,MAAM,EAAE,GAAG,IAAA,iDAAyB,EAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,MAAM,CAAC,6CAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,EAAE,EAAE,oBAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;QAEnD,MAAM,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAE9C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\n\r\nimport {\r\n\tHasChallengeResultsPM,\r\n\tmakeHasChallengeResultsPM\r\n} from \"./HasChallengeResultsPM\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const results = makeChallengeResults(\r\n appObjects.getOrCreate(\"ChallengeResults\")\r\n );\r\n const pm = makeHasChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return { appObjects, pm, registerSingletonSpy, results };\r\n}\r\n\r\ndescribe(\"HasChallengeResultsPM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { pm, appObjects } = makeTestRig();\r\n\r\n expect(HasChallengeResultsPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { pm, registerSingletonSpy } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Initialize with default VM\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n expect(pm.lastVM).toBe(false);\r\n });\r\n\r\n it(\"when results change the VM is updated\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toBe(true);\r\n });\r\n});\r\n"]}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ChallengeResultsListPM"), exports);
18
+ __exportStar(require("./HasChallengeResultsPM"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAwC","sourcesContent":["export * from \"./ChallengeResultsListPM\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAwC;AACxC,0DAAuC","sourcesContent":["export * from \"./ChallengeResultsListPM\"\r\nexport * from \"./HasChallengeResultsPM\""]}
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./setupThemeForSandbox"), exports);
17
+ __exportStar(require("./setupTheme"), exports);
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC","sourcesContent":["export * from \"./setupThemeForSandbox\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B","sourcesContent":["export * from \"./setupTheme\""]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupTheme = setupTheme;
4
+ const Data_1 = require("../Data");
5
+ const Entities_1 = require("../Entities");
6
+ const PM_1 = require("../PM");
7
+ const UCs_1 = require("../UCs");
8
+ function setupTheme(appObjects) {
9
+ const ao = appObjects.getOrCreate("Theme");
10
+ // Entities
11
+ const theme = (0, Entities_1.makeHostThemeEntity)(ao);
12
+ // UCs
13
+ const setThemeUC = (0, UCs_1.makeSetThemeUC)(ao);
14
+ // PMs
15
+ (0, PM_1.makeThemeColorsPM)(ao);
16
+ theme.submitScheme("light", Data_1.vivedLightThemeData);
17
+ theme.submitScheme("dark", Data_1.vivedDarkThemeData);
18
+ setThemeUC.setThemeByName("light"); // Hardcoded for now
19
+ }
20
+ //# sourceMappingURL=setupTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupTheme.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/setupTheme.ts"],"names":[],"mappings":";;AAMA,gCAgBC;AArBD,kCAAkE;AAClE,0CAAkD;AAClD,8BAA0C;AAC1C,gCAAwC;AAExC,SAAgB,UAAU,CAAC,UAAyB;IAClD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE3C,WAAW;IACX,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,EAAE,CAAC,CAAC;IAEtC,MAAM;IACN,MAAM,UAAU,GAAG,IAAA,oBAAc,EAAC,EAAE,CAAC,CAAC;IAEtC,MAAM;IACN,IAAA,sBAAiB,EAAC,EAAE,CAAC,CAAC;IAEtB,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,0BAAmB,CAAC,CAAC;IACjD,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAkB,CAAC,CAAC;IAE/C,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB;AAC1D,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { vivedDarkThemeData, vivedLightThemeData } from \"../Data\";\r\nimport { makeHostThemeEntity } from \"../Entities\";\r\nimport { makeThemeColorsPM } from \"../PM\";\r\nimport { makeSetThemeUC } from \"../UCs\";\r\n\r\nexport function setupTheme(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"Theme\");\r\n\r\n // Entities\r\n const theme = makeHostThemeEntity(ao);\r\n\r\n // UCs\r\n const setThemeUC = makeSetThemeUC(ao);\r\n\r\n // PMs\r\n makeThemeColorsPM(ao);\r\n\r\n theme.submitScheme(\"light\", vivedLightThemeData);\r\n theme.submitScheme(\"dark\", vivedDarkThemeData);\r\n\r\n setThemeUC.setThemeByName(\"light\"); // Hardcoded for now\r\n}\r\n"]}
@@ -24,7 +24,7 @@ class SetThemeUCImp extends SetThemeUC {
24
24
  this.theme.activeSchemeName = name;
25
25
  }
26
26
  tryDetectTheme() {
27
- if (!this.theme)
27
+ if (!this.theme || !window.matchMedia)
28
28
  return;
29
29
  const darkThemeMq = window.matchMedia("(prefers-color-scheme: dark)");
30
30
  if (darkThemeMq.matches) {
@@ -1 +1 @@
1
- {"version":3,"file":"SetThemeUC.js","sourceRoot":"","sources":["../../../../src/ThemeColors/UCs/SetThemeUC.ts"],"names":[],"mappings":";;;AAsBA,wCAEC;AAxBD,sCAKqB;AACrB,0CAA8C;AAE9C,MAAsB,UAAW,SAAQ,kBAAW;IASlD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAAa,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;;AAXH,gCAYC;AAXQ,eAAI,GAAG,YAAY,CAAC;AAa7B,SAAgB,cAAc,CAAC,SAAoB;IACjD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,aAAc,SAAQ,UAAU;IAIpC,IAAY,KAAK;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAkB,0BAAe,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QACtE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAzBpC,mBAAc,GAAG,OAAO,CAAC;QACzB,kBAAa,GAAG,MAAM,CAAC;QAyBrB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { HostThemeEntity } from \"../Entities\";\r\n\r\nexport abstract class SetThemeUC extends AppObjectUC {\r\n static type = \"SetThemeUC\";\r\n\r\n abstract lightThemeName: string;\r\n abstract darkThemeName: string;\r\n\r\n abstract setThemeByName(name: string): void;\r\n abstract tryDetectTheme(): void;\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<SetThemeUC>(SetThemeUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeSetThemeUC(appObject: AppObject): SetThemeUC {\r\n return new SetThemeUCImp(appObject);\r\n}\r\n\r\nclass SetThemeUCImp extends SetThemeUC {\r\n lightThemeName = \"light\";\r\n darkThemeName = \"dark\";\r\n\r\n private get theme() {\r\n return this.getCachedSingleton<HostThemeEntity>(HostThemeEntity.type);\r\n }\r\n\r\n setThemeByName(name: string): void {\r\n if (!this.theme) return;\r\n\r\n this.theme.activeSchemeName = name;\r\n }\r\n\r\n tryDetectTheme(): void {\r\n if (!this.theme) return;\r\n\r\n const darkThemeMq = window.matchMedia(\"(prefers-color-scheme: dark)\");\r\n if (darkThemeMq.matches) {\r\n this.theme.activeSchemeName = this.darkThemeName;\r\n } else {\r\n this.theme.activeSchemeName = this.darkThemeName;\r\n }\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SetThemeUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SetThemeUC.js","sourceRoot":"","sources":["../../../../src/ThemeColors/UCs/SetThemeUC.ts"],"names":[],"mappings":";;;AAsBA,wCAEC;AAxBD,sCAKqB;AACrB,0CAA8C;AAE9C,MAAsB,UAAW,SAAQ,kBAAW;IASlD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAAa,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;;AAXH,gCAYC;AAXQ,eAAI,GAAG,YAAY,CAAC;AAa7B,SAAgB,cAAc,CAAC,SAAoB;IACjD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,aAAc,SAAQ,UAAU;IAIpC,IAAY,KAAK;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAkB,0BAAe,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QAE9C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QACtE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAzBpC,mBAAc,GAAG,OAAO,CAAC;QACzB,kBAAa,GAAG,MAAM,CAAC;QAyBrB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { HostThemeEntity } from \"../Entities\";\r\n\r\nexport abstract class SetThemeUC extends AppObjectUC {\r\n static type = \"SetThemeUC\";\r\n\r\n abstract lightThemeName: string;\r\n abstract darkThemeName: string;\r\n\r\n abstract setThemeByName(name: string): void;\r\n abstract tryDetectTheme(): void;\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<SetThemeUC>(SetThemeUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeSetThemeUC(appObject: AppObject): SetThemeUC {\r\n return new SetThemeUCImp(appObject);\r\n}\r\n\r\nclass SetThemeUCImp extends SetThemeUC {\r\n lightThemeName = \"light\";\r\n darkThemeName = \"dark\";\r\n\r\n private get theme() {\r\n return this.getCachedSingleton<HostThemeEntity>(HostThemeEntity.type);\r\n }\r\n\r\n setThemeByName(name: string): void {\r\n if (!this.theme) return;\r\n\r\n this.theme.activeSchemeName = name;\r\n }\r\n\r\n tryDetectTheme(): void {\r\n if (!this.theme || !window.matchMedia) return;\r\n\r\n const darkThemeMq = window.matchMedia(\"(prefers-color-scheme: dark)\");\r\n if (darkThemeMq.matches) {\r\n this.theme.activeSchemeName = this.darkThemeName;\r\n } else {\r\n this.theme.activeSchemeName = this.darkThemeName;\r\n }\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SetThemeUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,21 @@
1
+ import { HasChallengeResultsPM } from "../PMs/HasChallengeResultsPM";
2
+ export const hasChallengeResultsPMAdapter = {
3
+ defaultVM: false,
4
+ subscribe: (appObjects, setVM) => {
5
+ const pm = HasChallengeResultsPM.get(appObjects);
6
+ if (!pm) {
7
+ appObjects.submitError("hasChallengeResultsPMAdapter", "Unable to find HasChallengeResultsPM");
8
+ return;
9
+ }
10
+ pm.addView(setVM);
11
+ },
12
+ unsubscribe: (appObjects, setVM) => {
13
+ const pm = HasChallengeResultsPM.get(appObjects);
14
+ if (!pm) {
15
+ appObjects.submitError("hasChallengeResultsPMAdapter", "Unable to find HasChallengeResultsPM");
16
+ return;
17
+ }
18
+ pm.removeView(setVM);
19
+ }
20
+ };
21
+ //# sourceMappingURL=hasChallengeResultsPMAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasChallengeResultsPMAdapter.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,CAAC,MAAM,4BAA4B,GAAgC;IACvE,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,CAAC,UAAyB,EAAE,KAA4B,EAAE,EAAE;QACrE,MAAM,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CACpB,8BAA8B,EAC9B,sCAAsC,CACvC,CAAC;YACF,OAAO;QACT,CAAC;QACD,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,WAAW,EAAE,CAAC,UAAyB,EAAE,KAA4B,EAAE,EAAE;QACvE,MAAM,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CACpB,8BAA8B,EAC9B,sCAAsC,CACvC,CAAC;YACF,OAAO;QACT,CAAC;QACD,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF,CAAC","sourcesContent":["import { AppObjectRepo, SingletonPmAdapter } from \"@vived/core\";\r\nimport { HasChallengeResultsPM } from \"../PMs/HasChallengeResultsPM\";\r\n\r\nexport const hasChallengeResultsPMAdapter: SingletonPmAdapter<boolean> = {\r\n defaultVM: false,\r\n subscribe: (appObjects: AppObjectRepo, setVM: (vm: boolean) => void) => {\r\n const pm = HasChallengeResultsPM.get(appObjects);\r\n if (!pm) {\r\n appObjects.submitError(\r\n \"hasChallengeResultsPMAdapter\",\r\n \"Unable to find HasChallengeResultsPM\"\r\n );\r\n return;\r\n }\r\n pm.addView(setVM);\r\n },\r\n unsubscribe: (appObjects: AppObjectRepo, setVM: (vm: boolean) => void) => {\r\n const pm = HasChallengeResultsPM.get(appObjects);\r\n if (!pm) {\r\n appObjects.submitError(\r\n \"hasChallengeResultsPMAdapter\",\r\n \"Unable to find HasChallengeResultsPM\"\r\n );\r\n return;\r\n }\r\n pm.removeView(setVM);\r\n }\r\n};\r\n"]}
@@ -0,0 +1,28 @@
1
+ import { makeAppObjectRepo } from "@vived/core";
2
+ import { makeMockHasChallengeResultsPM } from "../Mocks/MockHasChallengeResultsPM";
3
+ import { hasChallengeResultsPMAdapter } from "./hasChallengeResultsPMAdapter";
4
+ function makeTestRig() {
5
+ const appObjects = makeAppObjectRepo();
6
+ const mockPM = makeMockHasChallengeResultsPM(appObjects);
7
+ return { appObjects, mockPM };
8
+ }
9
+ describe("Has Challenge Results PM Adapter", () => {
10
+ it("Sets the Default VM", () => {
11
+ expect(hasChallengeResultsPMAdapter.defaultVM).toEqual(false);
12
+ });
13
+ it("Add a view on subscribe", () => {
14
+ const { mockPM, appObjects } = makeTestRig();
15
+ mockPM.addView = jest.fn();
16
+ const setVM = jest.fn();
17
+ hasChallengeResultsPMAdapter.subscribe(appObjects, setVM);
18
+ expect(mockPM.addView).toBeCalledWith(setVM);
19
+ });
20
+ it("Removes a view on unsubscribe", () => {
21
+ const { mockPM, appObjects } = makeTestRig();
22
+ mockPM.removeView = jest.fn();
23
+ const setVM = jest.fn();
24
+ hasChallengeResultsPMAdapter.unsubscribe(appObjects, setVM);
25
+ expect(mockPM.removeView).toBeCalledWith(setVM);
26
+ });
27
+ });
28
+ //# sourceMappingURL=hasChallengeResultsPMAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasChallengeResultsPMAdapter.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;IACzD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAExB,4BAA4B,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAExB,4BAA4B,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockHasChallengeResultsPM } from \"../Mocks/MockHasChallengeResultsPM\";\r\nimport { hasChallengeResultsPMAdapter } from \"./hasChallengeResultsPMAdapter\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const mockPM = makeMockHasChallengeResultsPM(appObjects);\r\n return { appObjects, mockPM };\r\n}\r\n\r\ndescribe(\"Has Challenge Results PM Adapter\", () => {\r\n it(\"Sets the Default VM\", () => {\r\n expect(hasChallengeResultsPMAdapter.defaultVM).toEqual(false);\r\n });\r\n\r\n it(\"Add a view on subscribe\", () => {\r\n const { mockPM, appObjects } = makeTestRig();\r\n\r\n mockPM.addView = jest.fn();\r\n const setVM = jest.fn();\r\n\r\n hasChallengeResultsPMAdapter.subscribe(appObjects, setVM);\r\n\r\n expect(mockPM.addView).toBeCalledWith(setVM);\r\n });\r\n\r\n it(\"Removes a view on unsubscribe\", () => {\r\n const { mockPM, appObjects } = makeTestRig();\r\n\r\n mockPM.removeView = jest.fn();\r\n const setVM = jest.fn();\r\n\r\n hasChallengeResultsPMAdapter.unsubscribe(appObjects, setVM);\r\n\r\n expect(mockPM.removeView).toBeCalledWith(setVM);\r\n });\r\n});\r\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from "./challengeResultsListAdapter";
2
+ export * from "./hasChallengeResultsPMAdapter";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC","sourcesContent":["export * from \"./challengeResultsListAdapter\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC","sourcesContent":["export * from \"./challengeResultsListAdapter\";\r\nexport * from \"./hasChallengeResultsPMAdapter\";\r\n"]}
@@ -1,2 +1,2 @@
1
- export * from "./setupChallengeResultsForSandbox";
1
+ export * from "./setupChallengeResults";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA","sourcesContent":["export * from \"./setupChallengeResultsForSandbox\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA","sourcesContent":["export * from \"./setupChallengeResults\""]}
@@ -0,0 +1,11 @@
1
+ import { makeChallengeResults } from "../Entities";
2
+ import { makeChallengeResultsPM, makeHasChallengeResultsPM } from "../PMs";
3
+ export function setupChallengeResults(appObjects) {
4
+ const ao = appObjects.getOrCreate("ChallengeResults");
5
+ const entity = makeChallengeResults(ao);
6
+ // PM
7
+ makeChallengeResultsPM(ao);
8
+ makeHasChallengeResultsPM(ao);
9
+ return entity;
10
+ }
11
+ //# sourceMappingURL=setupChallengeResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupChallengeResults.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResults.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AAE3E,MAAM,UAAU,qBAAqB,CACnC,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAExC,KAAK;IACL,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAE9B,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { ChallengeResultsEntity, makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM, makeHasChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResults(\r\n appObjects: AppObjectRepo\r\n): ChallengeResultsEntity {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n const entity = makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n makeHasChallengeResultsPM(ao);\r\n\r\n return entity;\r\n}\r\n"]}
@@ -1,9 +1,10 @@
1
1
  import { makeChallengeResults } from "../Entities";
2
- import { makeChallengeResultsPM } from "../PMs";
2
+ import { makeChallengeResultsPM, makeHasChallengeResultsPM } from "../PMs";
3
3
  export function setupChallengeResultsForSandbox(appObjects) {
4
4
  const ao = appObjects.getOrCreate("ChallengeResults");
5
5
  makeChallengeResults(ao);
6
6
  // PM
7
7
  makeChallengeResultsPM(ao);
8
+ makeHasChallengeResultsPM(ao);
8
9
  }
9
10
  //# sourceMappingURL=setupChallengeResultsForSandbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupChallengeResultsForSandbox.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResultsForSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAEhD,MAAM,UAAU,+BAA+B,CAAC,UAAyB;IACvE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAEzB,KAAK;IACL,sBAAsB,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResultsForSandbox(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n}\r\n"]}
1
+ {"version":3,"file":"setupChallengeResultsForSandbox.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResultsForSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AAE3E,MAAM,UAAU,+BAA+B,CAAC,UAAyB;IACvE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAEzB,KAAK;IACL,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,yBAAyB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM, makeHasChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResultsForSandbox(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n makeHasChallengeResultsPM(ao);\r\n}\r\n"]}
@@ -0,0 +1,11 @@
1
+ import { HasChallengeResultsPM } from "../PMs/HasChallengeResultsPM";
2
+ export class MockHasChallengeResultsPM extends HasChallengeResultsPM {
3
+ constructor(appObject) {
4
+ super(appObject, HasChallengeResultsPM.type);
5
+ this.vmsAreEqual = jest.fn();
6
+ }
7
+ }
8
+ export function makeMockHasChallengeResultsPM(appObjects) {
9
+ return new MockHasChallengeResultsPM(appObjects.getOrCreate("MockHasChallengeResultsPM"));
10
+ }
11
+ //# sourceMappingURL=MockHasChallengeResultsPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockHasChallengeResultsPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/MockHasChallengeResultsPM.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,OAAO,yBAA0B,SAAQ,qBAAqB;IAGlE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAH/C,gBAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIxB,CAAC;CACF;AAED,MAAM,UAAU,6BAA6B,CAAC,UAAyB;IACrE,OAAO,IAAI,yBAAyB,CAClC,UAAU,CAAC,WAAW,CAAC,2BAA2B,CAAC,CACpD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { HasChallengeResultsPM } from \"../PMs/HasChallengeResultsPM\";\r\n\r\nexport class MockHasChallengeResultsPM extends HasChallengeResultsPM {\r\n vmsAreEqual = jest.fn();\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, HasChallengeResultsPM.type);\r\n }\r\n}\r\n\r\nexport function makeMockHasChallengeResultsPM(appObjects: AppObjectRepo) {\r\n return new MockHasChallengeResultsPM(\r\n appObjects.getOrCreate(\"MockHasChallengeResultsPM\")\r\n );\r\n}\r\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from "./ChallengeResultsListPMMock";
2
+ export * from "./MockHasChallengeResultsPM";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA","sourcesContent":["export * from \"./ChallengeResultsListPMMock\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA","sourcesContent":["export * from \"./ChallengeResultsListPMMock\"\r\nexport * from \"./MockHasChallengeResultsPM\""]}
@@ -39,12 +39,14 @@ class ChallengeResultsPMImp extends ChallengeResultsListPM {
39
39
  this.results.results.forEach((result) => {
40
40
  const state = this.stateMachine.getStateByID(result.slideID);
41
41
  if (state) {
42
+ const stateIndex = this.stateMachine.getStateIndex(result.slideID) ?? -1;
42
43
  const vm = {
43
44
  id: result.slideID,
44
45
  slideName: state.name,
45
46
  attempts: result.tries,
46
47
  resultType: result.type,
47
48
  message: result.message,
49
+ stateIndex,
48
50
  resultData: result.resultData
49
51
  };
50
52
  organizedResults.push(vm);
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeResultsListPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAML,sBAAsB,EAEvB,MAAM,8BAA8B,CAAC;AAgBtC,MAAM,OAAgB,sBAAuB,SAAQ,WAEpD;IAGC,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAC5B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;;AANM,2BAAI,GAAG,wBAAwB,CAAC;AASzC,MAAM,UAAU,sBAAsB,CACpC,SAAoB;IAEpB,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,qBAAsB,SAAQ,sBAAsB;IACxD,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAsB,EAAE,CAAsB;QACxD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAExC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;gBAAE,QAAQ,GAAG,KAAK,CAAC;iBAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IA0BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAzBhD,mBAAc,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAEhD,MAAM,gBAAgB,GAAwB,EAAE,CAAC;YAEjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,EAAE,GAAsB;wBAC5B,EAAE,EAAE,MAAM,CAAC,OAAO;wBAClB,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,QAAQ,EAAE,MAAM,CAAC,KAAK;wBACtB,UAAU,EAAE,MAAM,CAAC,IAAI;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,CAAC;oBAEF,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC,CAAC;QAIA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\r\nimport { HostStateMachine } from \"../../StateMachine/Entities/HostStateMachine\";\r\nimport {\r\n ChallengeResultHitData,\r\n ChallengeResultMultiHitData,\r\n ChallengeResultProgressData,\r\n ChallengeResultQualityData,\r\n ChallengeResultScoreData,\r\n ChallengeResultsEntity,\r\n ChallengeResultType\r\n} from \"../Entities/ChallengeResults\";\r\n\r\nexport interface ChallengeResultVM {\r\n id: string;\r\n slideName: string;\r\n attempts: number;\r\n message: string;\r\n resultType: ChallengeResultType;\r\n resultData:\r\n | ChallengeResultHitData\r\n | ChallengeResultMultiHitData\r\n | ChallengeResultQualityData\r\n | ChallengeResultScoreData\r\n | ChallengeResultProgressData;\r\n}\r\n\r\nexport abstract class ChallengeResultsListPM extends AppObjectPM<\r\n ChallengeResultVM[]\r\n> {\r\n static type = \"ChallengeResultsListPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return appObjects.getSingleton<ChallengeResultsListPM>(\r\n ChallengeResultsListPM.type\r\n );\r\n }\r\n}\r\n\r\nexport function makeChallengeResultsPM(\r\n appObject: AppObject\r\n): ChallengeResultsListPM {\r\n return new ChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass ChallengeResultsPMImp extends ChallengeResultsListPM {\r\n private get results() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n private get stateMachine() {\r\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\r\n }\r\n\r\n vmsAreEqual(a: ChallengeResultVM[], b: ChallengeResultVM[]): boolean {\r\n if (a.length !== b.length) return false;\r\n\r\n let areEqual = true;\r\n a.forEach((aResult, i) => {\r\n const bResult = b[i];\r\n if (aResult.id !== bResult.id) areEqual = false;\r\n else if (aResult.attempts !== bResult.attempts) areEqual = false;\r\n });\r\n return areEqual;\r\n }\r\n\r\n onEntityChange = (): void => {\r\n if (!this.results || !this.stateMachine) return;\r\n\r\n const organizedResults: ChallengeResultVM[] = [];\r\n\r\n this.results.results.forEach((result) => {\r\n const state = this.stateMachine!.getStateByID(result.slideID);\r\n if (state) {\r\n const vm: ChallengeResultVM = {\r\n id: result.slideID,\r\n slideName: state.name,\r\n attempts: result.tries,\r\n resultType: result.type,\r\n message: result.message,\r\n resultData: result.resultData\r\n };\r\n\r\n organizedResults.push(vm);\r\n }\r\n });\r\n\r\n this.doUpdateView(organizedResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ChallengeResultsListPM.type);\r\n this.doUpdateView([]);\r\n this.results?.addChangeObserver(this.onEntityChange);\r\n\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ChallengeResultsListPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\r\nimport { HostStateMachine } from \"../../StateMachine/Entities/HostStateMachine\";\r\nimport {\r\n ChallengeResultHitData,\r\n ChallengeResultMultiHitData,\r\n ChallengeResultProgressData,\r\n ChallengeResultQualityData,\r\n ChallengeResultScoreData,\r\n ChallengeResultsEntity,\r\n ChallengeResultType\r\n} from \"../Entities/ChallengeResults\";\r\n\r\nexport interface ChallengeResultVM {\r\n id: string;\r\n slideName: string;\r\n attempts: number;\r\n message: string;\r\n resultType: ChallengeResultType;\r\n stateIndex: number;\r\n resultData:\r\n | ChallengeResultHitData\r\n | ChallengeResultMultiHitData\r\n | ChallengeResultQualityData\r\n | ChallengeResultScoreData\r\n | ChallengeResultProgressData;\r\n}\r\n\r\nexport abstract class ChallengeResultsListPM extends AppObjectPM<\r\n ChallengeResultVM[]\r\n> {\r\n static type = \"ChallengeResultsListPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return appObjects.getSingleton<ChallengeResultsListPM>(\r\n ChallengeResultsListPM.type\r\n );\r\n }\r\n}\r\n\r\nexport function makeChallengeResultsPM(\r\n appObject: AppObject\r\n): ChallengeResultsListPM {\r\n return new ChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass ChallengeResultsPMImp extends ChallengeResultsListPM {\r\n private get results() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n private get stateMachine() {\r\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\r\n }\r\n\r\n vmsAreEqual(a: ChallengeResultVM[], b: ChallengeResultVM[]): boolean {\r\n if (a.length !== b.length) return false;\r\n\r\n let areEqual = true;\r\n a.forEach((aResult, i) => {\r\n const bResult = b[i];\r\n if (aResult.id !== bResult.id) areEqual = false;\r\n else if (aResult.attempts !== bResult.attempts) areEqual = false;\r\n });\r\n return areEqual;\r\n }\r\n\r\n onEntityChange = (): void => {\r\n if (!this.results || !this.stateMachine) return;\r\n\r\n const organizedResults: ChallengeResultVM[] = [];\r\n\r\n this.results.results.forEach((result) => {\r\n const state = this.stateMachine!.getStateByID(result.slideID);\r\n if (state) {\r\n const stateIndex =\r\n this.stateMachine!.getStateIndex(result.slideID) ?? -1;\r\n\r\n const vm: ChallengeResultVM = {\r\n id: result.slideID,\r\n slideName: state.name,\r\n attempts: result.tries,\r\n resultType: result.type,\r\n message: result.message,\r\n stateIndex,\r\n resultData: result.resultData\r\n };\r\n\r\n organizedResults.push(vm);\r\n }\r\n });\r\n\r\n this.doUpdateView(organizedResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ChallengeResultsListPM.type);\r\n this.doUpdateView([]);\r\n this.results?.addChangeObserver(this.onEntityChange);\r\n\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
@@ -26,7 +26,8 @@ function makeChallengeResultVM(id) {
26
26
  success: true
27
27
  },
28
28
  resultType: "HIT",
29
- slideName: "slide name"
29
+ slideName: "slide name",
30
+ stateIndex: 0
30
31
  };
31
32
  }
32
33
  describe("Challenge Results PM", () => {
@@ -97,7 +98,8 @@ describe("Challenge Results PM", () => {
97
98
  },
98
99
  resultType: "HIT",
99
100
  id: "state1",
100
- slideName: "State Name"
101
+ slideName: "State Name",
102
+ stateIndex: 0
101
103
  }
102
104
  ]);
103
105
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeResultsListPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeHostStateMachine } from \"../../StateMachine/Entities\";\r\nimport { makeMockHostStateEntity } from \"../../StateMachine/Mocks/MockHostStateEntity\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport {\r\n ChallengeResultsListPM,\r\n ChallengeResultVM,\r\n makeChallengeResultsPM\r\n} from \"./ChallengeResultsListPM\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n const results = makeChallengeResults(appObjects.getOrCreate(\"Results\"));\r\n\r\n const stateMachine = makeHostStateMachine(\r\n appObjects.getOrCreate(\"StateMachine\")\r\n );\r\n stateMachine.setStates([makeMockHostStateEntity(\"state1\", appObjects)]);\r\n\r\n const pm = makeChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return {\r\n pm,\r\n results,\r\n appObjects,\r\n registerSingletonSpy\r\n };\r\n}\r\n\r\nfunction makeChallengeResultVM(id: string): ChallengeResultVM {\r\n return {\r\n attempts: 1,\r\n id,\r\n message: \"a message\",\r\n resultData: {\r\n success: true\r\n },\r\n resultType: \"HIT\",\r\n slideName: \"slide name\"\r\n };\r\n}\r\n\r\ndescribe(\"Challenge Results PM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { appObjects, pm } = makeTestRig();\r\n\r\n expect(ChallengeResultsListPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { registerSingletonSpy, pm } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Checks for equal vms\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [...vm1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);\r\n });\r\n\r\n it(\"Checks for a result to be removed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [result1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a result to be added\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result3 = makeChallengeResultVM(\"result3\");\r\n const vm2 = [result1, result2, result3];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for result ID to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, id: \"changed\" };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for tries to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, attempts: 2 };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Initializes the view\", () => {\r\n const { pm } = makeTestRig();\r\n expect(pm.lastVM).not.toBeUndefined();\r\n });\r\n\r\n it(\"Updates the results\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"state1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toEqual([\r\n {\r\n attempts: 0,\r\n message: \"bob\",\r\n resultData: {\r\n success: false\r\n },\r\n resultType: \"HIT\",\r\n id: \"state1\",\r\n slideName: \"State Name\"\r\n }\r\n ]);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"ChallengeResultsListPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeHostStateMachine } from \"../../StateMachine/Entities\";\r\nimport { makeMockHostStateEntity } from \"../../StateMachine/Mocks/MockHostStateEntity\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport {\r\n ChallengeResultsListPM,\r\n ChallengeResultVM,\r\n makeChallengeResultsPM\r\n} from \"./ChallengeResultsListPM\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n const results = makeChallengeResults(appObjects.getOrCreate(\"Results\"));\r\n\r\n const stateMachine = makeHostStateMachine(\r\n appObjects.getOrCreate(\"StateMachine\")\r\n );\r\n stateMachine.setStates([makeMockHostStateEntity(\"state1\", appObjects)]);\r\n\r\n const pm = makeChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return {\r\n pm,\r\n results,\r\n appObjects,\r\n registerSingletonSpy\r\n };\r\n}\r\n\r\nfunction makeChallengeResultVM(id: string): ChallengeResultVM {\r\n return {\r\n attempts: 1,\r\n id,\r\n message: \"a message\",\r\n resultData: {\r\n success: true\r\n },\r\n resultType: \"HIT\",\r\n slideName: \"slide name\",\r\n stateIndex: 0\r\n };\r\n}\r\n\r\ndescribe(\"Challenge Results PM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { appObjects, pm } = makeTestRig();\r\n\r\n expect(ChallengeResultsListPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { registerSingletonSpy, pm } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Checks for equal vms\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [...vm1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);\r\n });\r\n\r\n it(\"Checks for a result to be removed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [result1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a result to be added\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result3 = makeChallengeResultVM(\"result3\");\r\n const vm2 = [result1, result2, result3];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for result ID to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, id: \"changed\" };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for tries to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, attempts: 2 };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Initializes the view\", () => {\r\n const { pm } = makeTestRig();\r\n expect(pm.lastVM).not.toBeUndefined();\r\n });\r\n\r\n it(\"Updates the results\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"state1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toEqual([\r\n {\r\n attempts: 0,\r\n message: \"bob\",\r\n resultData: {\r\n success: false\r\n },\r\n resultType: \"HIT\",\r\n id: \"state1\",\r\n slideName: \"State Name\",\r\n stateIndex: 0\r\n }\r\n ]);\r\n });\r\n});\r\n"]}
@@ -0,0 +1,32 @@
1
+ import { AppObjectPM, getSingletonComponent } from "@vived/core";
2
+ import { ChallengeResultsEntity } from "../Entities";
3
+ export class HasChallengeResultsPM extends AppObjectPM {
4
+ static get(appObjects) {
5
+ return getSingletonComponent(HasChallengeResultsPM.type, appObjects);
6
+ }
7
+ }
8
+ HasChallengeResultsPM.type = "HasChallengeResultsPM";
9
+ export function makeHasChallengeResultsPM(appObject) {
10
+ return new HasChallengeResultsPMImp(appObject);
11
+ }
12
+ class HasChallengeResultsPMImp extends HasChallengeResultsPM {
13
+ get resultsEntity() {
14
+ return this.getCachedSingleton(ChallengeResultsEntity.type);
15
+ }
16
+ vmsAreEqual(a, b) {
17
+ return a === b;
18
+ }
19
+ constructor(appObject) {
20
+ super(appObject, HasChallengeResultsPM.type);
21
+ this.onEntityChange = () => {
22
+ if (!this.resultsEntity)
23
+ return;
24
+ const hasAssessmentResults = this.resultsEntity.results?.length > 0 || false;
25
+ this.doUpdateView(hasAssessmentResults);
26
+ };
27
+ this.appObjects.registerSingleton(this);
28
+ this.resultsEntity?.addChangeObserver(this.onEntityChange);
29
+ this.onEntityChange();
30
+ }
31
+ }
32
+ //# sourceMappingURL=HasChallengeResultsPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasChallengeResultsPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/HasChallengeResultsPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,WAAW,EAEX,qBAAqB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,OAAgB,qBAAsB,SAAQ,WAAoB;IAGtE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,qBAAqB,CAAC,IAAI,EAC1B,UAAU,CACX,CAAC;IACJ,CAAC;;AAPM,0BAAI,GAAG,uBAAuB,CAAC;AAUxC,MAAM,UAAU,yBAAyB,CACvC,SAAoB;IAEpB,OAAO,IAAI,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,wBAAyB,SAAQ,qBAAqB;IAC1D,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAWD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAVvC,mBAAc,GAAG,GAAS,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAEhC,MAAM,oBAAoB,GACxB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC;YAElD,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAC1C,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACF","sourcesContent":["import {\r\n\tAppObject,\r\n\tAppObjectPM,\r\n\tAppObjectRepo,\r\n\tgetSingletonComponent\r\n} from \"@vived/core\";\r\nimport { ChallengeResultsEntity } from \"../Entities\";\r\n\r\nexport abstract class HasChallengeResultsPM extends AppObjectPM<boolean> {\r\n static type = \"HasChallengeResultsPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<HasChallengeResultsPM>(\r\n HasChallengeResultsPM.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\nexport function makeHasChallengeResultsPM(\r\n appObject: AppObject\r\n): HasChallengeResultsPM {\r\n return new HasChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass HasChallengeResultsPMImp extends HasChallengeResultsPM {\r\n private get resultsEntity() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n vmsAreEqual(a: boolean, b: boolean): boolean {\r\n return a === b;\r\n }\r\n\r\n private onEntityChange = (): void => {\r\n if (!this.resultsEntity) return;\r\n\r\n const hasAssessmentResults =\r\n this.resultsEntity.results?.length > 0 || false;\r\n\r\n this.doUpdateView(hasAssessmentResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, HasChallengeResultsPM.type);\r\n\r\n this.appObjects.registerSingleton(this);\r\n this.resultsEntity?.addChangeObserver(this.onEntityChange);\r\n this.onEntityChange();\r\n }\r\n}\r\n"]}
@@ -0,0 +1,30 @@
1
+ import { makeAppObjectRepo } from "@vived/core";
2
+ import { HasChallengeResultsPM, makeHasChallengeResultsPM } from "./HasChallengeResultsPM";
3
+ import { makeChallengeResults } from "../Entities";
4
+ function makeTestRig() {
5
+ const appObjects = makeAppObjectRepo();
6
+ const registerSingletonSpy = jest.spyOn(appObjects, "registerSingleton");
7
+ const results = makeChallengeResults(appObjects.getOrCreate("ChallengeResults"));
8
+ const pm = makeHasChallengeResultsPM(appObjects.getOrCreate("PM"));
9
+ return { appObjects, pm, registerSingletonSpy, results };
10
+ }
11
+ describe("HasChallengeResultsPM", () => {
12
+ it("Gets the singleton", () => {
13
+ const { pm, appObjects } = makeTestRig();
14
+ expect(HasChallengeResultsPM.get(appObjects)).toEqual(pm);
15
+ });
16
+ it("Registers the singleton", () => {
17
+ const { pm, registerSingletonSpy } = makeTestRig();
18
+ expect(registerSingletonSpy).toBeCalledWith(pm);
19
+ });
20
+ it("Initialize with default VM", () => {
21
+ const { pm } = makeTestRig();
22
+ expect(pm.lastVM).toBe(false);
23
+ });
24
+ it("when results change the VM is updated", () => {
25
+ const { results, pm } = makeTestRig();
26
+ results.submitHitResult("1", false, 0, "bob");
27
+ expect(pm.lastVM).toBe(true);
28
+ });
29
+ });
30
+ //# sourceMappingURL=HasChallengeResultsPM.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasChallengeResultsPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/HasChallengeResultsPM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACN,qBAAqB,EACrB,yBAAyB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,oBAAoB,CAClC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAC3C,CAAC;IACF,MAAM,EAAE,GAAG,yBAAyB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,EAAE,EAAE,oBAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;QAEnD,MAAM,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAE9C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\n\r\nimport {\r\n\tHasChallengeResultsPM,\r\n\tmakeHasChallengeResultsPM\r\n} from \"./HasChallengeResultsPM\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const results = makeChallengeResults(\r\n appObjects.getOrCreate(\"ChallengeResults\")\r\n );\r\n const pm = makeHasChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return { appObjects, pm, registerSingletonSpy, results };\r\n}\r\n\r\ndescribe(\"HasChallengeResultsPM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { pm, appObjects } = makeTestRig();\r\n\r\n expect(HasChallengeResultsPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { pm, registerSingletonSpy } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Initialize with default VM\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n expect(pm.lastVM).toBe(false);\r\n });\r\n\r\n it(\"when results change the VM is updated\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toBe(true);\r\n });\r\n});\r\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from "./ChallengeResultsListPM";
2
+ export * from "./HasChallengeResultsPM";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA","sourcesContent":["export * from \"./ChallengeResultsListPM\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA","sourcesContent":["export * from \"./ChallengeResultsListPM\"\r\nexport * from \"./HasChallengeResultsPM\""]}
@@ -1,2 +1,2 @@
1
- export * from "./setupThemeForSandbox";
1
+ export * from "./setupTheme";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA","sourcesContent":["export * from \"./setupThemeForSandbox\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA","sourcesContent":["export * from \"./setupTheme\""]}
@@ -0,0 +1,17 @@
1
+ import { vivedDarkThemeData, vivedLightThemeData } from "../Data";
2
+ import { makeHostThemeEntity } from "../Entities";
3
+ import { makeThemeColorsPM } from "../PM";
4
+ import { makeSetThemeUC } from "../UCs";
5
+ export function setupTheme(appObjects) {
6
+ const ao = appObjects.getOrCreate("Theme");
7
+ // Entities
8
+ const theme = makeHostThemeEntity(ao);
9
+ // UCs
10
+ const setThemeUC = makeSetThemeUC(ao);
11
+ // PMs
12
+ makeThemeColorsPM(ao);
13
+ theme.submitScheme("light", vivedLightThemeData);
14
+ theme.submitScheme("dark", vivedDarkThemeData);
15
+ setThemeUC.setThemeByName("light"); // Hardcoded for now
16
+ }
17
+ //# sourceMappingURL=setupTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupTheme.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/setupTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,UAAU,UAAU,CAAC,UAAyB;IAClD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE3C,WAAW;IACX,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAEtC,MAAM;IACN,MAAM,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAEtC,MAAM;IACN,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAEtB,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IACjD,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE/C,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB;AAC1D,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { vivedDarkThemeData, vivedLightThemeData } from \"../Data\";\r\nimport { makeHostThemeEntity } from \"../Entities\";\r\nimport { makeThemeColorsPM } from \"../PM\";\r\nimport { makeSetThemeUC } from \"../UCs\";\r\n\r\nexport function setupTheme(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"Theme\");\r\n\r\n // Entities\r\n const theme = makeHostThemeEntity(ao);\r\n\r\n // UCs\r\n const setThemeUC = makeSetThemeUC(ao);\r\n\r\n // PMs\r\n makeThemeColorsPM(ao);\r\n\r\n theme.submitScheme(\"light\", vivedLightThemeData);\r\n theme.submitScheme(\"dark\", vivedDarkThemeData);\r\n\r\n setThemeUC.setThemeByName(\"light\"); // Hardcoded for now\r\n}\r\n"]}
@@ -19,7 +19,7 @@ class SetThemeUCImp extends SetThemeUC {
19
19
  this.theme.activeSchemeName = name;
20
20
  }
21
21
  tryDetectTheme() {
22
- if (!this.theme)
22
+ if (!this.theme || !window.matchMedia)
23
23
  return;
24
24
  const darkThemeMq = window.matchMedia("(prefers-color-scheme: dark)");
25
25
  if (darkThemeMq.matches) {
@@ -1 +1 @@
1
- {"version":3,"file":"SetThemeUC.js","sourceRoot":"","sources":["../../../../src/ThemeColors/UCs/SetThemeUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAgB,UAAW,SAAQ,WAAW;IASlD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAa,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;;AAVM,eAAI,GAAG,YAAY,CAAC;AAa7B,MAAM,UAAU,cAAc,CAAC,SAAoB;IACjD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,aAAc,SAAQ,UAAU;IAIpC,IAAY,KAAK;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QACtE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAzBpC,mBAAc,GAAG,OAAO,CAAC;QACzB,kBAAa,GAAG,MAAM,CAAC;QAyBrB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { HostThemeEntity } from \"../Entities\";\r\n\r\nexport abstract class SetThemeUC extends AppObjectUC {\r\n static type = \"SetThemeUC\";\r\n\r\n abstract lightThemeName: string;\r\n abstract darkThemeName: string;\r\n\r\n abstract setThemeByName(name: string): void;\r\n abstract tryDetectTheme(): void;\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<SetThemeUC>(SetThemeUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeSetThemeUC(appObject: AppObject): SetThemeUC {\r\n return new SetThemeUCImp(appObject);\r\n}\r\n\r\nclass SetThemeUCImp extends SetThemeUC {\r\n lightThemeName = \"light\";\r\n darkThemeName = \"dark\";\r\n\r\n private get theme() {\r\n return this.getCachedSingleton<HostThemeEntity>(HostThemeEntity.type);\r\n }\r\n\r\n setThemeByName(name: string): void {\r\n if (!this.theme) return;\r\n\r\n this.theme.activeSchemeName = name;\r\n }\r\n\r\n tryDetectTheme(): void {\r\n if (!this.theme) return;\r\n\r\n const darkThemeMq = window.matchMedia(\"(prefers-color-scheme: dark)\");\r\n if (darkThemeMq.matches) {\r\n this.theme.activeSchemeName = this.darkThemeName;\r\n } else {\r\n this.theme.activeSchemeName = this.darkThemeName;\r\n }\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SetThemeUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SetThemeUC.js","sourceRoot":"","sources":["../../../../src/ThemeColors/UCs/SetThemeUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAgB,UAAW,SAAQ,WAAW;IASlD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAa,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;;AAVM,eAAI,GAAG,YAAY,CAAC;AAa7B,MAAM,UAAU,cAAc,CAAC,SAAoB;IACjD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,aAAc,SAAQ,UAAU;IAIpC,IAAY,KAAK;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QAE9C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QACtE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAzBpC,mBAAc,GAAG,OAAO,CAAC;QACzB,kBAAa,GAAG,MAAM,CAAC;QAyBrB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { HostThemeEntity } from \"../Entities\";\r\n\r\nexport abstract class SetThemeUC extends AppObjectUC {\r\n static type = \"SetThemeUC\";\r\n\r\n abstract lightThemeName: string;\r\n abstract darkThemeName: string;\r\n\r\n abstract setThemeByName(name: string): void;\r\n abstract tryDetectTheme(): void;\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<SetThemeUC>(SetThemeUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeSetThemeUC(appObject: AppObject): SetThemeUC {\r\n return new SetThemeUCImp(appObject);\r\n}\r\n\r\nclass SetThemeUCImp extends SetThemeUC {\r\n lightThemeName = \"light\";\r\n darkThemeName = \"dark\";\r\n\r\n private get theme() {\r\n return this.getCachedSingleton<HostThemeEntity>(HostThemeEntity.type);\r\n }\r\n\r\n setThemeByName(name: string): void {\r\n if (!this.theme) return;\r\n\r\n this.theme.activeSchemeName = name;\r\n }\r\n\r\n tryDetectTheme(): void {\r\n if (!this.theme || !window.matchMedia) return;\r\n\r\n const darkThemeMq = window.matchMedia(\"(prefers-color-scheme: dark)\");\r\n if (darkThemeMq.matches) {\r\n this.theme.activeSchemeName = this.darkThemeName;\r\n } else {\r\n this.theme.activeSchemeName = this.darkThemeName;\r\n }\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SetThemeUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,3 @@
1
+ import { SingletonPmAdapter } from "@vived/core";
2
+ export declare const hasChallengeResultsPMAdapter: SingletonPmAdapter<boolean>;
3
+ //# sourceMappingURL=hasChallengeResultsPMAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasChallengeResultsPMAdapter.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGhE,eAAO,MAAM,4BAA4B,EAAE,kBAAkB,CAAC,OAAO,CAwBpE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hasChallengeResultsPMAdapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasChallengeResultsPMAdapter.test.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.ts"],"names":[],"mappings":""}
@@ -1,2 +1,3 @@
1
1
  export * from "./challengeResultsListAdapter";
2
+ export * from "./hasChallengeResultsPMAdapter";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC"}
@@ -1,2 +1,2 @@
1
- export * from "./setupChallengeResultsForSandbox";
1
+ export * from "./setupChallengeResults";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { AppObjectRepo } from "@vived/core";
2
+ import { ChallengeResultsEntity } from "../Entities";
3
+ export declare function setupChallengeResults(appObjects: AppObjectRepo): ChallengeResultsEntity;
4
+ //# sourceMappingURL=setupChallengeResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupChallengeResults.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAwB,MAAM,aAAa,CAAC;AAG3E,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,aAAa,GACxB,sBAAsB,CAUxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"setupChallengeResultsForSandbox.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResultsForSandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,aAAa,QAOxE"}
1
+ {"version":3,"file":"setupChallengeResultsForSandbox.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResultsForSandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,aAAa,QAQxE"}
@@ -0,0 +1,8 @@
1
+ import { AppObject, AppObjectRepo } from "@vived/core";
2
+ import { HasChallengeResultsPM } from "../PMs/HasChallengeResultsPM";
3
+ export declare class MockHasChallengeResultsPM extends HasChallengeResultsPM {
4
+ vmsAreEqual: jest.Mock<any, any, any>;
5
+ constructor(appObject: AppObject);
6
+ }
7
+ export declare function makeMockHasChallengeResultsPM(appObjects: AppObjectRepo): MockHasChallengeResultsPM;
8
+ //# sourceMappingURL=MockHasChallengeResultsPM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockHasChallengeResultsPM.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/MockHasChallengeResultsPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,WAAW,2BAAa;gBAEZ,SAAS,EAAE,SAAS;CAGjC;AAED,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,aAAa,6BAItE"}
@@ -1,2 +1,3 @@
1
1
  export * from "./ChallengeResultsListPMMock";
2
+ export * from "./MockHasChallengeResultsPM";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA"}
@@ -6,6 +6,7 @@ export interface ChallengeResultVM {
6
6
  attempts: number;
7
7
  message: string;
8
8
  resultType: ChallengeResultType;
9
+ stateIndex: number;
9
10
  resultData: ChallengeResultHitData | ChallengeResultMultiHitData | ChallengeResultQualityData | ChallengeResultScoreData | ChallengeResultProgressData;
10
11
  }
11
12
  export declare abstract class ChallengeResultsListPM extends AppObjectPM<ChallengeResultVM[]> {
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeResultsListPM.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EAExB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EACN,sBAAsB,GACtB,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,2BAA2B,CAAC;CACjC;AAED,8BAAsB,sBAAuB,SAAQ,WAAW,CAC9D,iBAAiB,EAAE,CACpB;IACC,MAAM,CAAC,IAAI,SAA4B;IAEvC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAKrC;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
1
+ {"version":3,"file":"ChallengeResultsListPM.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EAExB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EACN,sBAAsB,GACtB,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,2BAA2B,CAAC;CACjC;AAED,8BAAsB,sBAAuB,SAAQ,WAAW,CAC9D,iBAAiB,EAAE,CACpB;IACC,MAAM,CAAC,IAAI,SAA4B;IAEvC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAKrC;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
@@ -0,0 +1,7 @@
1
+ import { AppObject, AppObjectPM, AppObjectRepo } from "@vived/core";
2
+ export declare abstract class HasChallengeResultsPM extends AppObjectPM<boolean> {
3
+ static type: string;
4
+ static get(appObjects: AppObjectRepo): HasChallengeResultsPM | undefined;
5
+ }
6
+ export declare function makeHasChallengeResultsPM(appObject: AppObject): HasChallengeResultsPM;
7
+ //# sourceMappingURL=HasChallengeResultsPM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasChallengeResultsPM.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/HasChallengeResultsPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,EACT,WAAW,EACX,aAAa,EAEb,MAAM,aAAa,CAAC;AAGrB,8BAAsB,qBAAsB,SAAQ,WAAW,CAAC,OAAO,CAAC;IACtE,MAAM,CAAC,IAAI,SAA2B;IAEtC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,GACnB,qBAAqB,CAEvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=HasChallengeResultsPM.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasChallengeResultsPM.test.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/HasChallengeResultsPM.test.ts"],"names":[],"mappings":""}
@@ -1,2 +1,3 @@
1
1
  export * from "./ChallengeResultsListPM";
2
+ export * from "./HasChallengeResultsPM";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA"}
@@ -1,2 +1,2 @@
1
- export * from "./setupThemeForSandbox";
1
+ export * from "./setupTheme";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { AppObjectRepo } from "@vived/core";
2
+ export declare function setupTheme(appObjects: AppObjectRepo): void;
3
+ //# sourceMappingURL=setupTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupTheme.d.ts","sourceRoot":"","sources":["../../../../src/ThemeColors/Factories/setupTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAM5C,wBAAgB,UAAU,CAAC,UAAU,EAAE,aAAa,QAgBnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vived/host",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "description": "Public Host package for the VIVED Learning App system",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",