@vived/host 5.4.2 → 5.5.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.
@@ -8,6 +8,6 @@ function savePersistentStates(appObjects) {
8
8
  appObjects.submitWarning("savePersistentStates", "Unable to find SavePersistentStatesUC");
9
9
  return;
10
10
  }
11
- uc.saveLocally();
11
+ uc.copyToClipboard();
12
12
  }
13
13
  //# sourceMappingURL=savePersistentStates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"savePersistentStates.js","sourceRoot":"","sources":["../../../../src/StateMachine/Controllers/savePersistentStates.ts"],"names":[],"mappings":";;AAGA,oDAWC;AAbD,sEAAqE;AAErE,SAAgB,oBAAoB,CAAC,UAAyB;IAC5D,MAAM,EAAE,GAAG,6CAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CACtB,sBAAsB,EACtB,uCAAuC,CACxC,CAAC;QACF,OAAO;IACT,CAAC;IAED,EAAE,CAAC,WAAW,EAAE,CAAC;AACnB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\nimport { SavePersistentStatesUC } from \"../UCs/SavePersistentStates\";\n\nexport function savePersistentStates(appObjects: AppObjectRepo) {\n const uc = SavePersistentStatesUC.get(appObjects);\n if (!uc) {\n appObjects.submitWarning(\n \"savePersistentStates\",\n \"Unable to find SavePersistentStatesUC\"\n );\n return;\n }\n\n uc.saveLocally();\n}\n"]}
1
+ {"version":3,"file":"savePersistentStates.js","sourceRoot":"","sources":["../../../../src/StateMachine/Controllers/savePersistentStates.ts"],"names":[],"mappings":";;AAGA,oDAWC;AAbD,sEAAqE;AAErE,SAAgB,oBAAoB,CAAC,UAAyB;IAC5D,MAAM,EAAE,GAAG,6CAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CACtB,sBAAsB,EACtB,uCAAuC,CACxC,CAAC;QACF,OAAO;IACT,CAAC;IAED,EAAE,CAAC,eAAe,EAAE,CAAC;AACvB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\nimport { SavePersistentStatesUC } from \"../UCs/SavePersistentStates\";\n\nexport function savePersistentStates(appObjects: AppObjectRepo) {\n const uc = SavePersistentStatesUC.get(appObjects);\n if (!uc) {\n appObjects.submitWarning(\n \"savePersistentStates\",\n \"Unable to find SavePersistentStatesUC\"\n );\n return;\n }\n\n uc.copyToClipboard();\n}\n"]}
@@ -6,7 +6,7 @@ const SavePersistentStates_1 = require("../UCs/SavePersistentStates");
6
6
  class SavePersistentStatesMock extends SavePersistentStates_1.SavePersistentStatesUC {
7
7
  constructor(appObject) {
8
8
  super(appObject, SavePersistentStates_1.SavePersistentStatesUC.type);
9
- this.saveLocally = jest.fn();
9
+ this.copyToClipboard = jest.fn();
10
10
  }
11
11
  }
12
12
  exports.SavePersistentStatesMock = SavePersistentStatesMock;
@@ -1 +1 @@
1
- {"version":3,"file":"SavePersistentStatesMock.js","sourceRoot":"","sources":["../../../../src/StateMachine/Mocks/SavePersistentStatesMock.ts"],"names":[],"mappings":";;;AAWA,oEAIC;AAdD,sEAAqE;AAErE,MAAa,wBAAyB,SAAQ,6CAAsB;IAGlE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,6CAAsB,CAAC,IAAI,CAAC,CAAC;QAHhD,gBAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIxB,CAAC;CACF;AAND,4DAMC;AAED,SAAgB,4BAA4B,CAAC,UAAyB;IACpE,OAAO,IAAI,wBAAwB,CACjC,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,CACnD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\nimport { SavePersistentStatesUC } from \"../UCs/SavePersistentStates\";\n\nexport class SavePersistentStatesMock extends SavePersistentStatesUC {\n saveLocally = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, SavePersistentStatesUC.type);\n }\n}\n\nexport function makeSavePersistentStatesMock(appObjects: AppObjectRepo) {\n return new SavePersistentStatesMock(\n appObjects.getOrCreate(\"SavePersistentStatesMock\")\n );\n}\n"]}
1
+ {"version":3,"file":"SavePersistentStatesMock.js","sourceRoot":"","sources":["../../../../src/StateMachine/Mocks/SavePersistentStatesMock.ts"],"names":[],"mappings":";;;AAWA,oEAIC;AAdD,sEAAqE;AAErE,MAAa,wBAAyB,SAAQ,6CAAsB;IAGlE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,6CAAsB,CAAC,IAAI,CAAC,CAAC;QAHhD,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAI5B,CAAC;CACF;AAND,4DAMC;AAED,SAAgB,4BAA4B,CAAC,UAAyB;IACpE,OAAO,IAAI,wBAAwB,CACjC,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,CACnD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\nimport { SavePersistentStatesUC } from \"../UCs/SavePersistentStates\";\n\nexport class SavePersistentStatesMock extends SavePersistentStatesUC {\n copyToClipboard = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, SavePersistentStatesUC.type);\n }\n}\n\nexport function makeSavePersistentStatesMock(appObjects: AppObjectRepo) {\n return new SavePersistentStatesMock(\n appObjects.getOrCreate(\"SavePersistentStatesMock\")\n );\n}\n"]}
@@ -20,7 +20,7 @@ class SavePersistentStatesUCImp extends SavePersistentStatesUC {
20
20
  }
21
21
  constructor(appObject) {
22
22
  super(appObject, SavePersistentStatesUC.type);
23
- this.saveLocally = () => {
23
+ this.copyToClipboard = () => {
24
24
  if (!this.stateMachine)
25
25
  return;
26
26
  const states = [];
@@ -37,11 +37,9 @@ class SavePersistentStatesUCImp extends SavePersistentStatesUC {
37
37
  }
38
38
  });
39
39
  const statesData = JSON.stringify(states);
40
- const a = document.createElement("a");
41
- const file = new Blob([statesData], { type: "text/plain" });
42
- a.href = URL.createObjectURL(file);
43
- a.download = "persistentStates.json";
44
- a.click();
40
+ navigator.clipboard.writeText(statesData).catch((e) => {
41
+ this.warn(`Unable to copy persistent states to the clipboard: ${e}`);
42
+ });
45
43
  };
46
44
  this.appObjects.registerSingleton(this);
47
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SavePersistentStates.js","sourceRoot":"","sources":["../../../../src/StateMachine/UCs/SavePersistentStates.ts"],"names":[],"mappings":";;;AAsBA,gEAIC;AA1BD,sCAKqB;AACrB,0CAA+C;AAG/C,MAAsB,sBAAuB,SAAQ,kBAAW;IAK9D,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAC1B,sBAAsB,CAAC,IAAI,EAC3B,UAAU,CACX,CAAC;IACJ,CAAC;;AAVH,wDAWC;AAVQ,2BAAI,GAAG,wBAAwB,CAAC;AAYzC,SAAgB,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,2BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IA4BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QA3BhD,gBAAW,GAAG,GAAS,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,GAAqB;wBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EAAE,KAAK,CAAC,SAAS;wBACrB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,QAAQ,GAAG,uBAAuB,CAAC;YACrC,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { HostStateMachine } from \"../Entities\";\nimport { SandboxStateData } from \"./setSandboxStatesFromData\";\n\nexport abstract class SavePersistentStatesUC extends AppObjectUC {\n static type = \"SavePersistentStatesUC\";\n\n abstract saveLocally(): void;\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<SavePersistentStatesUC>(\n SavePersistentStatesUC.type,\n appObjects\n );\n }\n}\n\nexport function makeSavePersistentStatesUC(\n appObject: AppObject\n): SavePersistentStatesUC {\n return new SavePersistentStatesUCImp(appObject);\n}\n\nclass SavePersistentStatesUCImp extends SavePersistentStatesUC {\n private get stateMachine() {\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\n }\n\n saveLocally = (): void => {\n if (!this.stateMachine) return;\n\n const states: SandboxStateData[] = [];\n this.stateMachine.states.forEach((stateID) => {\n const state = this.stateMachine?.getStateByID(stateID);\n if (state) {\n const rVal: SandboxStateData = {\n assets: state.assets,\n data: state.stateData,\n id: state.id,\n name: state.name\n };\n\n states.push(rVal);\n }\n });\n\n const statesData = JSON.stringify(states);\n const a = document.createElement(\"a\");\n const file = new Blob([statesData], { type: \"text/plain\" });\n a.href = URL.createObjectURL(file);\n a.download = \"persistentStates.json\";\n a.click();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, SavePersistentStatesUC.type);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
1
+ {"version":3,"file":"SavePersistentStates.js","sourceRoot":"","sources":["../../../../src/StateMachine/UCs/SavePersistentStates.ts"],"names":[],"mappings":";;;AAsBA,gEAIC;AA1BD,sCAKqB;AACrB,0CAA+C;AAG/C,MAAsB,sBAAuB,SAAQ,kBAAW;IAK9D,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAC1B,sBAAsB,CAAC,IAAI,EAC3B,UAAU,CACX,CAAC;IACJ,CAAC;;AAVH,wDAWC;AAVQ,2BAAI,GAAG,wBAAwB,CAAC;AAYzC,SAAgB,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,2BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IA0BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAzBhD,oBAAe,GAAG,GAAS,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,GAAqB;wBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EAAE,KAAK,CAAC,SAAS;wBACrB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpD,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { HostStateMachine } from \"../Entities\";\nimport { SandboxStateData } from \"./setSandboxStatesFromData\";\n\nexport abstract class SavePersistentStatesUC extends AppObjectUC {\n static type = \"SavePersistentStatesUC\";\n\n abstract copyToClipboard(): void;\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<SavePersistentStatesUC>(\n SavePersistentStatesUC.type,\n appObjects\n );\n }\n}\n\nexport function makeSavePersistentStatesUC(\n appObject: AppObject\n): SavePersistentStatesUC {\n return new SavePersistentStatesUCImp(appObject);\n}\n\nclass SavePersistentStatesUCImp extends SavePersistentStatesUC {\n private get stateMachine() {\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\n }\n\n copyToClipboard = (): void => {\n if (!this.stateMachine) return;\n\n const states: SandboxStateData[] = [];\n this.stateMachine.states.forEach((stateID) => {\n const state = this.stateMachine?.getStateByID(stateID);\n if (state) {\n const rVal: SandboxStateData = {\n assets: state.assets,\n data: state.stateData,\n id: state.id,\n name: state.name\n };\n\n states.push(rVal);\n }\n });\n\n const statesData = JSON.stringify(states);\n navigator.clipboard.writeText(statesData).catch((e) => {\n this.warn(`Unable to copy persistent states to the clipboard: ${e}`);\n });\n };\n\n constructor(appObject: AppObject) {\n super(appObject, SavePersistentStatesUC.type);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
@@ -5,6 +5,6 @@ export function savePersistentStates(appObjects) {
5
5
  appObjects.submitWarning("savePersistentStates", "Unable to find SavePersistentStatesUC");
6
6
  return;
7
7
  }
8
- uc.saveLocally();
8
+ uc.copyToClipboard();
9
9
  }
10
10
  //# sourceMappingURL=savePersistentStates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"savePersistentStates.js","sourceRoot":"","sources":["../../../../src/StateMachine/Controllers/savePersistentStates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,UAAU,oBAAoB,CAAC,UAAyB;IAC5D,MAAM,EAAE,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CACtB,sBAAsB,EACtB,uCAAuC,CACxC,CAAC;QACF,OAAO;IACT,CAAC;IAED,EAAE,CAAC,WAAW,EAAE,CAAC;AACnB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\nimport { SavePersistentStatesUC } from \"../UCs/SavePersistentStates\";\n\nexport function savePersistentStates(appObjects: AppObjectRepo) {\n const uc = SavePersistentStatesUC.get(appObjects);\n if (!uc) {\n appObjects.submitWarning(\n \"savePersistentStates\",\n \"Unable to find SavePersistentStatesUC\"\n );\n return;\n }\n\n uc.saveLocally();\n}\n"]}
1
+ {"version":3,"file":"savePersistentStates.js","sourceRoot":"","sources":["../../../../src/StateMachine/Controllers/savePersistentStates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,UAAU,oBAAoB,CAAC,UAAyB;IAC5D,MAAM,EAAE,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CACtB,sBAAsB,EACtB,uCAAuC,CACxC,CAAC;QACF,OAAO;IACT,CAAC;IAED,EAAE,CAAC,eAAe,EAAE,CAAC;AACvB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\nimport { SavePersistentStatesUC } from \"../UCs/SavePersistentStates\";\n\nexport function savePersistentStates(appObjects: AppObjectRepo) {\n const uc = SavePersistentStatesUC.get(appObjects);\n if (!uc) {\n appObjects.submitWarning(\n \"savePersistentStates\",\n \"Unable to find SavePersistentStatesUC\"\n );\n return;\n }\n\n uc.copyToClipboard();\n}\n"]}
@@ -2,7 +2,7 @@ import { SavePersistentStatesUC } from "../UCs/SavePersistentStates";
2
2
  export class SavePersistentStatesMock extends SavePersistentStatesUC {
3
3
  constructor(appObject) {
4
4
  super(appObject, SavePersistentStatesUC.type);
5
- this.saveLocally = jest.fn();
5
+ this.copyToClipboard = jest.fn();
6
6
  }
7
7
  }
8
8
  export function makeSavePersistentStatesMock(appObjects) {
@@ -1 +1 @@
1
- {"version":3,"file":"SavePersistentStatesMock.js","sourceRoot":"","sources":["../../../../src/StateMachine/Mocks/SavePersistentStatesMock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAGlE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAHhD,gBAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIxB,CAAC;CACF;AAED,MAAM,UAAU,4BAA4B,CAAC,UAAyB;IACpE,OAAO,IAAI,wBAAwB,CACjC,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,CACnD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\nimport { SavePersistentStatesUC } from \"../UCs/SavePersistentStates\";\n\nexport class SavePersistentStatesMock extends SavePersistentStatesUC {\n saveLocally = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, SavePersistentStatesUC.type);\n }\n}\n\nexport function makeSavePersistentStatesMock(appObjects: AppObjectRepo) {\n return new SavePersistentStatesMock(\n appObjects.getOrCreate(\"SavePersistentStatesMock\")\n );\n}\n"]}
1
+ {"version":3,"file":"SavePersistentStatesMock.js","sourceRoot":"","sources":["../../../../src/StateMachine/Mocks/SavePersistentStatesMock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAGlE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAHhD,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAI5B,CAAC;CACF;AAED,MAAM,UAAU,4BAA4B,CAAC,UAAyB;IACpE,OAAO,IAAI,wBAAwB,CACjC,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,CACnD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\nimport { SavePersistentStatesUC } from \"../UCs/SavePersistentStates\";\n\nexport class SavePersistentStatesMock extends SavePersistentStatesUC {\n copyToClipboard = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, SavePersistentStatesUC.type);\n }\n}\n\nexport function makeSavePersistentStatesMock(appObjects: AppObjectRepo) {\n return new SavePersistentStatesMock(\n appObjects.getOrCreate(\"SavePersistentStatesMock\")\n );\n}\n"]}
@@ -15,7 +15,7 @@ class SavePersistentStatesUCImp extends SavePersistentStatesUC {
15
15
  }
16
16
  constructor(appObject) {
17
17
  super(appObject, SavePersistentStatesUC.type);
18
- this.saveLocally = () => {
18
+ this.copyToClipboard = () => {
19
19
  if (!this.stateMachine)
20
20
  return;
21
21
  const states = [];
@@ -32,11 +32,9 @@ class SavePersistentStatesUCImp extends SavePersistentStatesUC {
32
32
  }
33
33
  });
34
34
  const statesData = JSON.stringify(states);
35
- const a = document.createElement("a");
36
- const file = new Blob([statesData], { type: "text/plain" });
37
- a.href = URL.createObjectURL(file);
38
- a.download = "persistentStates.json";
39
- a.click();
35
+ navigator.clipboard.writeText(statesData).catch((e) => {
36
+ this.warn(`Unable to copy persistent states to the clipboard: ${e}`);
37
+ });
40
38
  };
41
39
  this.appObjects.registerSingleton(this);
42
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SavePersistentStates.js","sourceRoot":"","sources":["../../../../src/StateMachine/UCs/SavePersistentStates.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,OAAgB,sBAAuB,SAAQ,WAAW;IAK9D,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,sBAAsB,CAAC,IAAI,EAC3B,UAAU,CACX,CAAC;IACJ,CAAC;;AATM,2BAAI,GAAG,wBAAwB,CAAC;AAYzC,MAAM,UAAU,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IA4BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QA3BhD,gBAAW,GAAG,GAAS,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,GAAqB;wBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EAAE,KAAK,CAAC,SAAS;wBACrB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,QAAQ,GAAG,uBAAuB,CAAC;YACrC,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { HostStateMachine } from \"../Entities\";\nimport { SandboxStateData } from \"./setSandboxStatesFromData\";\n\nexport abstract class SavePersistentStatesUC extends AppObjectUC {\n static type = \"SavePersistentStatesUC\";\n\n abstract saveLocally(): void;\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<SavePersistentStatesUC>(\n SavePersistentStatesUC.type,\n appObjects\n );\n }\n}\n\nexport function makeSavePersistentStatesUC(\n appObject: AppObject\n): SavePersistentStatesUC {\n return new SavePersistentStatesUCImp(appObject);\n}\n\nclass SavePersistentStatesUCImp extends SavePersistentStatesUC {\n private get stateMachine() {\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\n }\n\n saveLocally = (): void => {\n if (!this.stateMachine) return;\n\n const states: SandboxStateData[] = [];\n this.stateMachine.states.forEach((stateID) => {\n const state = this.stateMachine?.getStateByID(stateID);\n if (state) {\n const rVal: SandboxStateData = {\n assets: state.assets,\n data: state.stateData,\n id: state.id,\n name: state.name\n };\n\n states.push(rVal);\n }\n });\n\n const statesData = JSON.stringify(states);\n const a = document.createElement(\"a\");\n const file = new Blob([statesData], { type: \"text/plain\" });\n a.href = URL.createObjectURL(file);\n a.download = \"persistentStates.json\";\n a.click();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, SavePersistentStatesUC.type);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
1
+ {"version":3,"file":"SavePersistentStates.js","sourceRoot":"","sources":["../../../../src/StateMachine/UCs/SavePersistentStates.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,OAAgB,sBAAuB,SAAQ,WAAW;IAK9D,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,sBAAsB,CAAC,IAAI,EAC3B,UAAU,CACX,CAAC;IACJ,CAAC;;AATM,2BAAI,GAAG,wBAAwB,CAAC;AAYzC,MAAM,UAAU,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IA0BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAzBhD,oBAAe,GAAG,GAAS,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,GAAqB;wBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EAAE,KAAK,CAAC,SAAS;wBACrB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpD,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { HostStateMachine } from \"../Entities\";\nimport { SandboxStateData } from \"./setSandboxStatesFromData\";\n\nexport abstract class SavePersistentStatesUC extends AppObjectUC {\n static type = \"SavePersistentStatesUC\";\n\n abstract copyToClipboard(): void;\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<SavePersistentStatesUC>(\n SavePersistentStatesUC.type,\n appObjects\n );\n }\n}\n\nexport function makeSavePersistentStatesUC(\n appObject: AppObject\n): SavePersistentStatesUC {\n return new SavePersistentStatesUCImp(appObject);\n}\n\nclass SavePersistentStatesUCImp extends SavePersistentStatesUC {\n private get stateMachine() {\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\n }\n\n copyToClipboard = (): void => {\n if (!this.stateMachine) return;\n\n const states: SandboxStateData[] = [];\n this.stateMachine.states.forEach((stateID) => {\n const state = this.stateMachine?.getStateByID(stateID);\n if (state) {\n const rVal: SandboxStateData = {\n assets: state.assets,\n data: state.stateData,\n id: state.id,\n name: state.name\n };\n\n states.push(rVal);\n }\n });\n\n const statesData = JSON.stringify(states);\n navigator.clipboard.writeText(statesData).catch((e) => {\n this.warn(`Unable to copy persistent states to the clipboard: ${e}`);\n });\n };\n\n constructor(appObject: AppObject) {\n super(appObject, SavePersistentStatesUC.type);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { AppObject, AppObjectRepo } from "@vived/core";
2
2
  import { SavePersistentStatesUC } from "../UCs/SavePersistentStates";
3
3
  export declare class SavePersistentStatesMock extends SavePersistentStatesUC {
4
- saveLocally: jest.Mock<any, any, any>;
4
+ copyToClipboard: jest.Mock<any, any, any>;
5
5
  constructor(appObject: AppObject);
6
6
  }
7
7
  export declare function makeSavePersistentStatesMock(appObjects: AppObjectRepo): SavePersistentStatesMock;
@@ -1 +1 @@
1
- {"version":3,"file":"SavePersistentStatesMock.d.ts","sourceRoot":"","sources":["../../../../src/StateMachine/Mocks/SavePersistentStatesMock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,qBAAa,wBAAyB,SAAQ,sBAAsB;IAClE,WAAW,2BAAa;gBAEZ,SAAS,EAAE,SAAS;CAGjC;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,aAAa,4BAIrE"}
1
+ {"version":3,"file":"SavePersistentStatesMock.d.ts","sourceRoot":"","sources":["../../../../src/StateMachine/Mocks/SavePersistentStatesMock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,qBAAa,wBAAyB,SAAQ,sBAAsB;IAClE,eAAe,2BAAa;gBAEhB,SAAS,EAAE,SAAS;CAGjC;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,aAAa,4BAIrE"}
@@ -1,7 +1,7 @@
1
1
  import { AppObject, AppObjectRepo, AppObjectUC } from "@vived/core";
2
2
  export declare abstract class SavePersistentStatesUC extends AppObjectUC {
3
3
  static type: string;
4
- abstract saveLocally(): void;
4
+ abstract copyToClipboard(): void;
5
5
  static get(appObjects: AppObjectRepo): SavePersistentStatesUC | undefined;
6
6
  }
7
7
  export declare function makeSavePersistentStatesUC(appObject: AppObject): SavePersistentStatesUC;
@@ -1 +1 @@
1
- {"version":3,"file":"SavePersistentStates.d.ts","sourceRoot":"","sources":["../../../../src/StateMachine/UCs/SavePersistentStates.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,aAAa,EACb,WAAW,EACZ,MAAM,aAAa,CAAC;AAIrB,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D,MAAM,CAAC,IAAI,SAA4B;IAEvC,QAAQ,CAAC,WAAW,IAAI,IAAI;IAE5B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
1
+ {"version":3,"file":"SavePersistentStates.d.ts","sourceRoot":"","sources":["../../../../src/StateMachine/UCs/SavePersistentStates.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,aAAa,EACb,WAAW,EACZ,MAAM,aAAa,CAAC;AAIrB,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D,MAAM,CAAC,IAAI,SAA4B;IAEvC,QAAQ,CAAC,eAAe,IAAI,IAAI;IAEhC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vived/host",
3
- "version": "5.4.2",
3
+ "version": "5.5.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",