@vived/host 5.7.0 → 5.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AppSandbox/Factories/AppSandboxFeatureFactory.js +3 -0
- package/dist/cjs/AppSandbox/Factories/AppSandboxFeatureFactory.js.map +1 -1
- package/dist/cjs/AppSandbox/UCs/RedispatchThemeToAppUC.js +69 -0
- package/dist/cjs/AppSandbox/UCs/RedispatchThemeToAppUC.js.map +1 -0
- package/dist/cjs/AppSandbox/UCs/index.js +1 -0
- package/dist/cjs/AppSandbox/UCs/index.js.map +1 -1
- package/dist/cjs/Apps/UCs/Mounters/SandboxMounterUC.js +32 -0
- package/dist/cjs/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchThemeUC.js.map +1 -1
- package/dist/cjs/ThemeColors/Data/vivedDarkTheme.json +35 -23
- package/dist/cjs/ThemeColors/Data/vivedLightTheme.json +15 -3
- package/dist/cjs/ThemeColors/Entities/HostThemeEntity.js +24 -0
- package/dist/cjs/ThemeColors/Entities/HostThemeEntity.js.map +1 -1
- package/dist/cjs/ThemeColors/PM/ThemeColorsPM.js +10 -1
- package/dist/cjs/ThemeColors/PM/ThemeColorsPM.js.map +1 -1
- package/dist/esm/AppSandbox/Factories/AppSandboxFeatureFactory.js +4 -1
- package/dist/esm/AppSandbox/Factories/AppSandboxFeatureFactory.js.map +1 -1
- package/dist/esm/AppSandbox/UCs/RedispatchThemeToAppUC.js +64 -0
- package/dist/esm/AppSandbox/UCs/RedispatchThemeToAppUC.js.map +1 -0
- package/dist/esm/AppSandbox/UCs/index.js +1 -0
- package/dist/esm/AppSandbox/UCs/index.js.map +1 -1
- package/dist/esm/Apps/UCs/Mounters/SandboxMounterUC.js +32 -0
- package/dist/esm/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchThemeUC.js.map +1 -1
- package/dist/esm/ThemeColors/Data/vivedDarkTheme.json +35 -23
- package/dist/esm/ThemeColors/Data/vivedLightTheme.json +15 -3
- package/dist/esm/ThemeColors/Entities/HostThemeEntity.js +24 -0
- package/dist/esm/ThemeColors/Entities/HostThemeEntity.js.map +1 -1
- package/dist/esm/ThemeColors/PM/ThemeColorsPM.js +10 -1
- package/dist/esm/ThemeColors/PM/ThemeColorsPM.js.map +1 -1
- package/dist/types/AppSandbox/Factories/AppSandboxFeatureFactory.d.ts.map +1 -1
- package/dist/types/AppSandbox/UCs/RedispatchThemeToAppUC.d.ts +16 -0
- package/dist/types/AppSandbox/UCs/RedispatchThemeToAppUC.d.ts.map +1 -0
- package/dist/types/AppSandbox/UCs/index.d.ts +1 -0
- package/dist/types/AppSandbox/UCs/index.d.ts.map +1 -1
- package/dist/types/Apps/UCs/Mounters/SandboxMounterUC.d.ts.map +1 -1
- package/dist/types/Dispatcher/UCs/DispatchThemeUC.d.ts +12 -0
- package/dist/types/Dispatcher/UCs/DispatchThemeUC.d.ts.map +1 -1
- package/dist/types/ThemeColors/Entities/HostThemeEntity.d.ts +24 -0
- package/dist/types/ThemeColors/Entities/HostThemeEntity.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppSandboxFeatureFactory.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/AppSandboxFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,aAAa,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAoB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,QAAQ,CAAC;AAChB,OAAO,
|
|
1
|
+
{"version":3,"file":"AppSandboxFeatureFactory.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/AppSandboxFeatureFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectRepo, DomainFactory } from \"@vived/core\";\r\nimport {\r\n makeSandboxMounter,\r\n makeStartAppUC,\r\n makeStopAppUC\r\n} from \"../../Apps/UCs\";\r\nimport { makeHostDispatchEntity } from \"../../Dispatcher/Entities\";\r\nimport { setupStandardHostDispatchers } from \"../../Dispatcher/setupStandardHostDispatchers\";\r\nimport { makeHostHandlerEntity } from \"../../Handler/Entities\";\r\nimport { setupStandardHostHandlers } from \"../../Handler/setupStandardHostHandlers\";\r\nimport { SubmitActivityAssetHandler } from \"../../Handler\";\r\nimport { AppSandboxEntity, makeAppSandboxEntity } from \"../Entities\";\r\nimport {\r\n makeBabylonInspectorSupportedPM,\r\n makeDevFeaturesEnabledPM,\r\n makeDevModePM,\r\n makeSandboxStatePM,\r\n makeShowInspectorPM,\r\n makeStartInZSpacePM\r\n} from \"../PMs\";\r\nimport {\r\n makeRedispatchThemeToAppUC,\r\n makeSetDevModeUC,\r\n makeShowBabylonInspectorUC\r\n} from \"../UCs\";\r\nimport { makeSubmitActivityAssetHandlerSandbox } from \"../UCs/submitActivityAssetHandlerSandbox\";\r\nimport { AppRepoEntity } from \"../../Apps/Entities\";\r\n\r\n/**\r\n * Factory responsible for setting up the AppSandbox domain components.\r\n * This factory initializes all entities, use cases, and presentation models\r\n * required for the AppSandbox functionality.\r\n */\r\nexport class AppSandboxFeatureFactory extends DomainFactory {\r\n // Unique name for this factory\r\n readonly factoryName = \"AppSandboxFeatureFactory\";\r\n\r\n private sandbox?: AppSandboxEntity;\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject);\r\n }\r\n\r\n /**\r\n * Sets up all entities required for the AppSandbox system\r\n */\r\n setupEntities(): void {\r\n // Initialize entities\r\n this.sandbox = makeAppSandboxEntity(this.appObject);\r\n makeHostDispatchEntity(this.appObject);\r\n makeHostHandlerEntity(this.appObject);\r\n }\r\n\r\n /**\r\n * Sets up all use cases for the AppSandbox system\r\n */\r\n setupUCs(): void {\r\n // Setup standard dispatchers and handlers\r\n setupStandardHostDispatchers(this.appObject);\r\n setupStandardHostHandlers(this.appObject);\r\n\r\n // Initialize use cases\r\n makeStartAppUC(this.appObject);\r\n makeStopAppUC(this.appObject);\r\n makeSetDevModeUC(this.appObject);\r\n makeShowBabylonInspectorUC(this.appObject);\r\n makeSandboxMounter(this.appObject);\r\n\r\n // Re-dispatch SET_THEME_COLORS to the running App on theme change (ADR-0004).\r\n // HostThemeEntity exists by now — all setupEntities run before any setupUCs.\r\n makeRedispatchThemeToAppUC(this.appObject);\r\n }\r\n\r\n /**\r\n * Sets up all presentation managers for the AppSandbox system\r\n */\r\n setupPMs(): void {\r\n // Initialize presentation managers\r\n makeBabylonInspectorSupportedPM(this.appObject);\r\n makeDevFeaturesEnabledPM(this.appObject);\r\n makeDevModePM(this.appObject);\r\n makeSandboxStatePM(this.appObject);\r\n makeShowInspectorPM(this.appObject);\r\n makeStartInZSpacePM(this.appObject);\r\n }\r\n\r\n /**\r\n * Performs any final setup operations after all components are initialized\r\n */\r\n finalSetup(): void {\r\n // Setup custom handler for activity asset submission\r\n const submitActivityAssetUC =\r\n this.appObjects.getSingleton<SubmitActivityAssetHandler>(\r\n SubmitActivityAssetHandler.type\r\n );\r\n if (submitActivityAssetUC) {\r\n submitActivityAssetUC.action = makeSubmitActivityAssetHandlerSandbox(\r\n this.appObjects\r\n );\r\n }\r\n\r\n if (!this.sandbox) {\r\n this.error(\"AppSandboxEntity not found during final setup.\");\r\n return;\r\n }\r\n\r\n const apps = AppRepoEntity.get(this.appObjects);\r\n\r\n if (!apps) {\r\n this.error(\"AppRepoEntity not found in AppObjects.\");\r\n return;\r\n }\r\n\r\n apps.add(this.sandbox.app);\r\n }\r\n}\r\n\r\nexport function makeAppSandboxFeatureFactory(\r\n appID: string,\r\n appObjects: AppObjectRepo\r\n): AppSandboxFeatureFactory {\r\n const ao = appObjects.getOrCreate(appID);\r\n return new AppSandboxFeatureFactory(ao);\r\n}\r\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { AppObjectUC } from "@vived/core";
|
|
2
|
+
import { HostThemeEntity } from "../../ThemeColors";
|
|
3
|
+
import { DispatchThemeUC } from "../../Dispatcher";
|
|
4
|
+
import { AppSandboxEntity, SandboxState } from "../Entities/AppSandboxEntity";
|
|
5
|
+
/**
|
|
6
|
+
* Re-dispatches SET_THEME_COLORS to the running App whenever the active Color
|
|
7
|
+
* Scheme changes, so the App re-colors live (not only at start). See ADR-0004.
|
|
8
|
+
*
|
|
9
|
+
* The start-time dispatch stays in StartAppUC; this UC is additive — it observes
|
|
10
|
+
* the HostThemeEntity and, while an App is mounted or playing, fires the App's
|
|
11
|
+
* DispatchThemeUC again. Before mount there is nothing to re-theme, so it no-ops.
|
|
12
|
+
*/
|
|
13
|
+
export class RedispatchThemeToAppUC extends AppObjectUC {
|
|
14
|
+
static get(appObject) {
|
|
15
|
+
const uc = appObject.getComponent(RedispatchThemeToAppUC.type);
|
|
16
|
+
if (!uc) {
|
|
17
|
+
appObject.appObjectRepo.submitWarning("RedispatchThemeToAppUC.get", "Unable to find RedispatchThemeToAppUC on app object " + appObject.id);
|
|
18
|
+
}
|
|
19
|
+
return uc;
|
|
20
|
+
}
|
|
21
|
+
static getByID(id, appObjects) {
|
|
22
|
+
const appObject = appObjects.get(id);
|
|
23
|
+
if (!appObject) {
|
|
24
|
+
appObjects.submitWarning("RedispatchThemeToAppUC.getByID", "Unable to find App Object by id " + id);
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
return RedispatchThemeToAppUC.get(appObject);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
RedispatchThemeToAppUC.type = "RedispatchThemeToAppUC";
|
|
31
|
+
export function makeRedispatchThemeToAppUC(appObject) {
|
|
32
|
+
return new RedispatchThemeToAppUCImp(appObject);
|
|
33
|
+
}
|
|
34
|
+
class RedispatchThemeToAppUCImp extends RedispatchThemeToAppUC {
|
|
35
|
+
get sandbox() {
|
|
36
|
+
return this.getCachedSingleton(AppSandboxEntity.type);
|
|
37
|
+
}
|
|
38
|
+
get dispatchTheme() {
|
|
39
|
+
return this.getCachedLocalComponent(DispatchThemeUC.type);
|
|
40
|
+
}
|
|
41
|
+
constructor(appObject) {
|
|
42
|
+
super(appObject, RedispatchThemeToAppUC.type);
|
|
43
|
+
this.onThemeChange = () => {
|
|
44
|
+
const sandbox = this.sandbox;
|
|
45
|
+
if (!sandbox)
|
|
46
|
+
return;
|
|
47
|
+
// Only a mounted App can be re-themed; the start-time dispatch in StartAppUC
|
|
48
|
+
// covers the initial send, so before mount there is nothing to do here.
|
|
49
|
+
if (sandbox.state !== SandboxState.MOUNTED &&
|
|
50
|
+
sandbox.state !== SandboxState.PLAYING) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.dispatchTheme?.doDispatch();
|
|
54
|
+
};
|
|
55
|
+
this.theme = HostThemeEntity.get(this.appObjects);
|
|
56
|
+
if (!this.theme) {
|
|
57
|
+
this.error("RedispatchThemeToAppUC could not find the HostThemeEntity");
|
|
58
|
+
this.dispose();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.theme.addChangeObserver(this.onThemeChange);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=RedispatchThemeToAppUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RedispatchThemeToAppUC.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/RedispatchThemeToAppUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,OAAgB,sBAAuB,SAAQ,WAAW;IAG9D,MAAM,CAAC,GAAG,CAAC,SAAoB;QAC7B,MAAM,EAAE,GAAG,SAAS,CAAC,YAAY,CAC/B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,SAAS,CAAC,aAAa,CAAC,aAAa,CACnC,4BAA4B,EAC5B,sDAAsD,GAAG,SAAS,CAAC,EAAE,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,EAAU,EACV,UAAyB;QAEzB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,UAAU,CAAC,aAAa,CACtB,gCAAgC,EAChC,kCAAkC,GAAG,EAAE,CACxC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;;AA9BM,2BAAI,GAAG,wBAAwB,CAAC;AAiCzC,MAAM,UAAU,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAG5D,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,uBAAuB,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAkBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAjBxC,kBAAa,GAAG,GAAG,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,6EAA6E;YAC7E,wEAAwE;YACxE,IACE,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO;gBACtC,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EACtC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;QACnC,CAAC,CAAC;QAKA,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\nimport { HostThemeEntity } from \"../../ThemeColors\";\r\nimport { DispatchThemeUC } from \"../../Dispatcher\";\r\nimport { AppSandboxEntity, SandboxState } from \"../Entities/AppSandboxEntity\";\r\n\r\n/**\r\n * Re-dispatches SET_THEME_COLORS to the running App whenever the active Color\r\n * Scheme changes, so the App re-colors live (not only at start). See ADR-0004.\r\n *\r\n * The start-time dispatch stays in StartAppUC; this UC is additive — it observes\r\n * the HostThemeEntity and, while an App is mounted or playing, fires the App's\r\n * DispatchThemeUC again. Before mount there is nothing to re-theme, so it no-ops.\r\n */\r\nexport abstract class RedispatchThemeToAppUC extends AppObjectUC {\r\n static type = \"RedispatchThemeToAppUC\";\r\n\r\n static get(appObject: AppObject): RedispatchThemeToAppUC | undefined {\r\n const uc = appObject.getComponent<RedispatchThemeToAppUC>(\r\n RedispatchThemeToAppUC.type\r\n );\r\n if (!uc) {\r\n appObject.appObjectRepo.submitWarning(\r\n \"RedispatchThemeToAppUC.get\",\r\n \"Unable to find RedispatchThemeToAppUC on app object \" + appObject.id\r\n );\r\n }\r\n return uc;\r\n }\r\n\r\n static getByID(\r\n id: string,\r\n appObjects: AppObjectRepo\r\n ): RedispatchThemeToAppUC | undefined {\r\n const appObject = appObjects.get(id);\r\n\r\n if (!appObject) {\r\n appObjects.submitWarning(\r\n \"RedispatchThemeToAppUC.getByID\",\r\n \"Unable to find App Object by id \" + id\r\n );\r\n return undefined;\r\n }\r\n\r\n return RedispatchThemeToAppUC.get(appObject);\r\n }\r\n}\r\n\r\nexport function makeRedispatchThemeToAppUC(\r\n appObject: AppObject\r\n): RedispatchThemeToAppUC {\r\n return new RedispatchThemeToAppUCImp(appObject);\r\n}\r\n\r\nclass RedispatchThemeToAppUCImp extends RedispatchThemeToAppUC {\r\n private theme?: HostThemeEntity;\r\n\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n private get dispatchTheme() {\r\n return this.getCachedLocalComponent<DispatchThemeUC>(DispatchThemeUC.type);\r\n }\r\n\r\n private onThemeChange = () => {\r\n const sandbox = this.sandbox;\r\n if (!sandbox) return;\r\n\r\n // Only a mounted App can be re-themed; the start-time dispatch in StartAppUC\r\n // covers the initial send, so before mount there is nothing to do here.\r\n if (\r\n sandbox.state !== SandboxState.MOUNTED &&\r\n sandbox.state !== SandboxState.PLAYING\r\n ) {\r\n return;\r\n }\r\n\r\n this.dispatchTheme?.doDispatch();\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, RedispatchThemeToAppUC.type);\r\n\r\n this.theme = HostThemeEntity.get(this.appObjects);\r\n if (!this.theme) {\r\n this.error(\"RedispatchThemeToAppUC could not find the HostThemeEntity\");\r\n this.dispose();\r\n return;\r\n }\r\n\r\n this.theme.addChangeObserver(this.onThemeChange);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC","sourcesContent":["export * from \"./SetDevModeUC\";\r\nexport * from \"./ShowBabylonInspectorUC\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC","sourcesContent":["export * from \"./RedispatchThemeToAppUC\";\r\nexport * from \"./SetDevModeUC\";\r\nexport * from \"./ShowBabylonInspectorUC\";\r\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Version } from "@vived/core";
|
|
2
2
|
import { AppSandboxEntity, SandboxState } from "../../../AppSandbox/Entities/AppSandboxEntity";
|
|
3
3
|
import { HostDispatchEntity } from "../../../Dispatcher/Entities/HostDispatchEntity";
|
|
4
|
+
import { DispatchDisposeAppUC, DispatchStopAppUC } from "../../../Dispatcher/UCs";
|
|
4
5
|
import { HostHandlerEntity } from "../../../Handler/Entities/HostHandler";
|
|
5
6
|
import { AppEntity, AppState } from "../../Entities/AppEntity";
|
|
6
7
|
import { MounterUC } from "./MounterUC";
|
|
@@ -68,6 +69,26 @@ class SandboxMounterUC extends MounterUC {
|
|
|
68
69
|
}
|
|
69
70
|
return appVersion;
|
|
70
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Dispatches the App lifecycle teardown Requests, in order, while the App's
|
|
74
|
+
* handler is still registered.
|
|
75
|
+
*/
|
|
76
|
+
dispatchTeardownToApp() {
|
|
77
|
+
const dispatchStopApp = DispatchStopAppUC.get(this.appObject);
|
|
78
|
+
if (dispatchStopApp) {
|
|
79
|
+
dispatchStopApp.doDispatch();
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.error("Cannot find DispatchStopAppUC");
|
|
83
|
+
}
|
|
84
|
+
const dispatchDisposeApp = DispatchDisposeAppUC.get(this.appObject);
|
|
85
|
+
if (dispatchDisposeApp) {
|
|
86
|
+
dispatchDisposeApp.doDispatch();
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.error("Cannot find DispatchDisposeAppUC");
|
|
90
|
+
}
|
|
91
|
+
}
|
|
71
92
|
/**
|
|
72
93
|
* Loads a script into the document.
|
|
73
94
|
* This is a placeholder implementation for sandbox mounting.
|
|
@@ -163,12 +184,23 @@ class SandboxMounterUC extends MounterUC {
|
|
|
163
184
|
};
|
|
164
185
|
/**
|
|
165
186
|
* Unmounts the app from the sandbox.
|
|
187
|
+
*
|
|
188
|
+
* Tells the App to tear itself down before the channel to it is severed:
|
|
189
|
+
* STOP_APP then DISPOSE_APP, matching the teardown order the asset-system
|
|
190
|
+
* plugin uses (CloseAssetSystemPluginUC). Ordering is load-bearing —
|
|
191
|
+
* clearAppHandler() unregisters the App's handler, after which a Request
|
|
192
|
+
* cannot reach the App at all.
|
|
193
|
+
*
|
|
194
|
+
* A missing dispatcher is reported but does not abort the unmount: leaving
|
|
195
|
+
* the Sandbox stuck in MOUNTED would be worse than an App that never heard
|
|
196
|
+
* it was being torn down.
|
|
166
197
|
*/
|
|
167
198
|
this.unmount = () => {
|
|
168
199
|
if (!this.sandbox || !this.hostDispatcher) {
|
|
169
200
|
this.error("Missing Components");
|
|
170
201
|
return;
|
|
171
202
|
}
|
|
203
|
+
this.dispatchTeardownToApp();
|
|
172
204
|
this.hostDispatcher.clearAppHandler();
|
|
173
205
|
this.sandbox.state = SandboxState.UNMOUNTED;
|
|
174
206
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxMounterUC.js","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/SandboxMounterUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, Version, VIVEDApp_3 } from \"@vived/core\";\r\nimport {\r\n AppSandboxEntity,\r\n SandboxState\r\n} from \"../../../AppSandbox/Entities/AppSandboxEntity\";\r\nimport { HostDispatchEntity } from \"../../../Dispatcher/Entities/HostDispatchEntity\";\r\nimport { HostHandlerEntity } from \"../../../Handler/Entities/HostHandler\";\r\nimport { AppEntity, AppState } from \"../../Entities/AppEntity\";\r\nimport { MounterUC } from \"./MounterUC\";\r\n\r\n/**\r\n * Factory function to create a sandbox mounter for apps.\r\n *\r\n * The sandbox mounter is designed to mount apps in a sandboxed environment,\r\n * providing isolation and security for app execution.\r\n *\r\n * @param appObject - The app object to attach the mounter to\r\n * @returns A new SandboxMounterUC instance\r\n */\r\nexport function makeSandboxMounter(appObject: AppObject): MounterUC {\r\n return new SandboxMounterUC(appObject);\r\n}\r\n\r\n/**\r\n * Implementation of MounterUC for mounting apps in a sandbox environment.\r\n *\r\n * The SandboxMounterUC is responsible for safely loading and initializing apps\r\n * in a sandboxed context, handling app lifecycle events, and managing the\r\n * communication between the host and app.\r\n */\r\nclass SandboxMounterUC extends MounterUC {\r\n /**\r\n * Gets the app entity representing the app being mounted\r\n */\r\n private get appEntity() {\r\n return this.getCachedLocalComponent<AppEntity>(AppEntity.type);\r\n }\r\n\r\n /**\r\n * Gets the host dispatcher entity for sending messages to apps\r\n */\r\n private get hostDispatcher() {\r\n return this.getCachedLocalComponent<HostDispatchEntity>(\r\n HostDispatchEntity.type\r\n );\r\n }\r\n\r\n /**\r\n * Gets the host handler entity for receiving messages from apps\r\n */\r\n private get hostHandler() {\r\n return this.getCachedLocalComponent<HostHandlerEntity>(\r\n HostHandlerEntity.type\r\n );\r\n }\r\n\r\n /**\r\n * Gets the sandbox entity that manages the sandbox state\r\n */\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n /**\r\n * Mounts the latest version of the app.\r\n *\r\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\r\n */\r\n mountLatestVersion = (): Promise<void> => {\r\n if (!this.appEntity) {\r\n this.error(\"Missing Components\");\r\n return Promise.reject();\r\n }\r\n\r\n const version = this.appEntity.latestVersion;\r\n if (!version) {\r\n this.error(\"No Version\");\r\n return Promise.reject();\r\n }\r\n\r\n return this.mount(version.major, version.minor);\r\n };\r\n\r\n /**\r\n * Mounts a specific version of the app.\r\n *\r\n * @param majorVersion - The major version number\r\n * @param minorVersion - The minor version number\r\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\r\n */\r\n mount = (majorVersion: number, minorVersion: number): Promise<void> => {\r\n if (\r\n !this.appEntity ||\r\n !this.hostDispatcher ||\r\n !this.hostHandler ||\r\n !this.sandbox\r\n ) {\r\n this.error(\"Missing Components\");\r\n return Promise.reject();\r\n }\r\n\r\n const version = this.getAppVersion(majorVersion, minorVersion);\r\n if (!version) {\r\n this.error(\"No Version\");\r\n return Promise.reject();\r\n }\r\n\r\n const appInterface = this.getAppInterface(version);\r\n if (!appInterface) {\r\n this.error(\"No App Interface\");\r\n return Promise.reject();\r\n }\r\n\r\n const appHandler = appInterface.mount(this.hostHandler.handler);\r\n this.hostDispatcher.registerAppHandler(appHandler);\r\n\r\n const app = this.appEntity;\r\n const sandbox = this.sandbox;\r\n\r\n return new Promise((resolve) => {\r\n const waitForReady = () => {\r\n if (app.state === AppState.READY) {\r\n sandbox.state = SandboxState.MOUNTED;\r\n app.removeChangeObserver(waitForReady);\r\n resolve();\r\n }\r\n };\r\n\r\n app.addChangeObserver(waitForReady);\r\n waitForReady();\r\n });\r\n };\r\n\r\n /**\r\n * Helper method to find a specific version of the app.\r\n *\r\n * @param major - Major version number\r\n * @param minor - Minor version number\r\n * @returns The Version object or undefined if not found\r\n */\r\n private getAppVersion(major: number, minor: number): Version | undefined {\r\n if (!this.appEntity) {\r\n return;\r\n }\r\n\r\n let appVersion = Version.GetLatestWithMajorMinor(\r\n this.appEntity.versions,\r\n major,\r\n minor\r\n );\r\n\r\n if (!appVersion) {\r\n appVersion = Version.GetLatestWithMajor(this.appEntity.versions, major);\r\n }\r\n\r\n if (!appVersion) {\r\n this.error(\r\n `Unable to find version ${major}.${minor}.X for App ${this.appEntity.name}`\r\n );\r\n }\r\n\r\n return appVersion;\r\n }\r\n\r\n /**\r\n * Unmounts the app from the sandbox.\r\n */\r\n unmount = (): void => {\r\n if (!this.sandbox || !this.hostDispatcher) {\r\n this.error(\"Missing Components\");\r\n return;\r\n }\r\n\r\n this.hostDispatcher.clearAppHandler();\r\n\r\n this.sandbox.state = SandboxState.UNMOUNTED;\r\n };\r\n\r\n /**\r\n * Loads a script into the document.\r\n * This is a placeholder implementation for sandbox mounting.\r\n *\r\n * @param scriptURL - URL of the script to load\r\n * @param appIDWithVersion - Versioned ID of the app\r\n * @returns A promise that resolves when the script is loaded\r\n */\r\n loadScriptIntoDocument(\r\n scriptURL: string,\r\n appIDWithVersion: string\r\n ): Promise<void> {\r\n // Unused during dev\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Gets the app interface for a specific version.\r\n *\r\n * @param version - The version to get the interface for\r\n * @returns The app interface or undefined if not found\r\n */\r\n getAppInterface(version: Version): VIVEDApp_3 | undefined {\r\n const modifiedVersion = version.baseVersionString.split(\".\").join(\"_\");\r\n const idWithVersion = `${this.appObject.id}-${modifiedVersion}`;\r\n const appInterface = (window as any)[idWithVersion] as VIVEDApp_3;\r\n if (!appInterface) {\r\n this.appObjects.submitFatal(\r\n \"LocalMounterUC\",\r\n \"Unable to find App Interface\"\r\n );\r\n return;\r\n }\r\n\r\n return appInterface;\r\n }\r\n\r\n /**\r\n * Creates a new SandboxMounterUC instance.\r\n *\r\n * @param appObject - The app object to attach to\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, MounterUC.type);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SandboxMounterUC.js","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/SandboxMounterUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, Version, VIVEDApp_3 } from \"@vived/core\";\nimport {\n AppSandboxEntity,\n SandboxState\n} from \"../../../AppSandbox/Entities/AppSandboxEntity\";\nimport { HostDispatchEntity } from \"../../../Dispatcher/Entities/HostDispatchEntity\";\nimport {\n DispatchDisposeAppUC,\n DispatchStopAppUC\n} from \"../../../Dispatcher/UCs\";\nimport { HostHandlerEntity } from \"../../../Handler/Entities/HostHandler\";\nimport { AppEntity, AppState } from \"../../Entities/AppEntity\";\nimport { MounterUC } from \"./MounterUC\";\n\n/**\n * Factory function to create a sandbox mounter for apps.\n *\n * The sandbox mounter is designed to mount apps in a sandboxed environment,\n * providing isolation and security for app execution.\n *\n * @param appObject - The app object to attach the mounter to\n * @returns A new SandboxMounterUC instance\n */\nexport function makeSandboxMounter(appObject: AppObject): MounterUC {\n return new SandboxMounterUC(appObject);\n}\n\n/**\n * Implementation of MounterUC for mounting apps in a sandbox environment.\n *\n * The SandboxMounterUC is responsible for safely loading and initializing apps\n * in a sandboxed context, handling app lifecycle events, and managing the\n * communication between the host and app.\n */\nclass SandboxMounterUC extends MounterUC {\n /**\n * Gets the app entity representing the app being mounted\n */\n private get appEntity() {\n return this.getCachedLocalComponent<AppEntity>(AppEntity.type);\n }\n\n /**\n * Gets the host dispatcher entity for sending messages to apps\n */\n private get hostDispatcher() {\n return this.getCachedLocalComponent<HostDispatchEntity>(\n HostDispatchEntity.type\n );\n }\n\n /**\n * Gets the host handler entity for receiving messages from apps\n */\n private get hostHandler() {\n return this.getCachedLocalComponent<HostHandlerEntity>(\n HostHandlerEntity.type\n );\n }\n\n /**\n * Gets the sandbox entity that manages the sandbox state\n */\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n /**\n * Mounts the latest version of the app.\n *\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\n */\n mountLatestVersion = (): Promise<void> => {\n if (!this.appEntity) {\n this.error(\"Missing Components\");\n return Promise.reject();\n }\n\n const version = this.appEntity.latestVersion;\n if (!version) {\n this.error(\"No Version\");\n return Promise.reject();\n }\n\n return this.mount(version.major, version.minor);\n };\n\n /**\n * Mounts a specific version of the app.\n *\n * @param majorVersion - The major version number\n * @param minorVersion - The minor version number\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\n */\n mount = (majorVersion: number, minorVersion: number): Promise<void> => {\n if (\n !this.appEntity ||\n !this.hostDispatcher ||\n !this.hostHandler ||\n !this.sandbox\n ) {\n this.error(\"Missing Components\");\n return Promise.reject();\n }\n\n const version = this.getAppVersion(majorVersion, minorVersion);\n if (!version) {\n this.error(\"No Version\");\n return Promise.reject();\n }\n\n const appInterface = this.getAppInterface(version);\n if (!appInterface) {\n this.error(\"No App Interface\");\n return Promise.reject();\n }\n\n const appHandler = appInterface.mount(this.hostHandler.handler);\n this.hostDispatcher.registerAppHandler(appHandler);\n\n const app = this.appEntity;\n const sandbox = this.sandbox;\n\n return new Promise((resolve) => {\n const waitForReady = () => {\n if (app.state === AppState.READY) {\n sandbox.state = SandboxState.MOUNTED;\n app.removeChangeObserver(waitForReady);\n resolve();\n }\n };\n\n app.addChangeObserver(waitForReady);\n waitForReady();\n });\n };\n\n /**\n * Helper method to find a specific version of the app.\n *\n * @param major - Major version number\n * @param minor - Minor version number\n * @returns The Version object or undefined if not found\n */\n private getAppVersion(major: number, minor: number): Version | undefined {\n if (!this.appEntity) {\n return;\n }\n\n let appVersion = Version.GetLatestWithMajorMinor(\n this.appEntity.versions,\n major,\n minor\n );\n\n if (!appVersion) {\n appVersion = Version.GetLatestWithMajor(this.appEntity.versions, major);\n }\n\n if (!appVersion) {\n this.error(\n `Unable to find version ${major}.${minor}.X for App ${this.appEntity.name}`\n );\n }\n\n return appVersion;\n }\n\n /**\n * Unmounts the app from the sandbox.\n *\n * Tells the App to tear itself down before the channel to it is severed:\n * STOP_APP then DISPOSE_APP, matching the teardown order the asset-system\n * plugin uses (CloseAssetSystemPluginUC). Ordering is load-bearing —\n * clearAppHandler() unregisters the App's handler, after which a Request\n * cannot reach the App at all.\n *\n * A missing dispatcher is reported but does not abort the unmount: leaving\n * the Sandbox stuck in MOUNTED would be worse than an App that never heard\n * it was being torn down.\n */\n unmount = (): void => {\n if (!this.sandbox || !this.hostDispatcher) {\n this.error(\"Missing Components\");\n return;\n }\n\n this.dispatchTeardownToApp();\n\n this.hostDispatcher.clearAppHandler();\n\n this.sandbox.state = SandboxState.UNMOUNTED;\n };\n\n /**\n * Dispatches the App lifecycle teardown Requests, in order, while the App's\n * handler is still registered.\n */\n private dispatchTeardownToApp(): void {\n const dispatchStopApp = DispatchStopAppUC.get(this.appObject);\n if (dispatchStopApp) {\n dispatchStopApp.doDispatch();\n } else {\n this.error(\"Cannot find DispatchStopAppUC\");\n }\n\n const dispatchDisposeApp = DispatchDisposeAppUC.get(this.appObject);\n if (dispatchDisposeApp) {\n dispatchDisposeApp.doDispatch();\n } else {\n this.error(\"Cannot find DispatchDisposeAppUC\");\n }\n }\n\n /**\n * Loads a script into the document.\n * This is a placeholder implementation for sandbox mounting.\n *\n * @param scriptURL - URL of the script to load\n * @param appIDWithVersion - Versioned ID of the app\n * @returns A promise that resolves when the script is loaded\n */\n loadScriptIntoDocument(\n scriptURL: string,\n appIDWithVersion: string\n ): Promise<void> {\n // Unused during dev\n return Promise.resolve();\n }\n\n /**\n * Gets the app interface for a specific version.\n *\n * @param version - The version to get the interface for\n * @returns The app interface or undefined if not found\n */\n getAppInterface(version: Version): VIVEDApp_3 | undefined {\n const modifiedVersion = version.baseVersionString.split(\".\").join(\"_\");\n const idWithVersion = `${this.appObject.id}-${modifiedVersion}`;\n const appInterface = (window as any)[idWithVersion] as VIVEDApp_3;\n if (!appInterface) {\n this.appObjects.submitFatal(\n \"LocalMounterUC\",\n \"Unable to find App Interface\"\n );\n return;\n }\n\n return appInterface;\n }\n\n /**\n * Creates a new SandboxMounterUC instance.\n *\n * @param appObject - The app object to attach to\n */\n constructor(appObject: AppObject) {\n super(appObject, MounterUC.type);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DispatchThemeUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UCs/DispatchThemeUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAgB,eAAgB,SAAQ,WAAW;IAAzD;;QAEW,gBAAW,GAAG,kBAAkB,CAAC;IA+B5C,CAAC;IA3BC,MAAM,CAAC,GAAG,CAAC,SAAoB;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,CAAC,aAAa,CAAC,aAAa,CACnC,qBAAqB,EACrB,+CAA+C,GAAG,SAAS,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,EAAU,EACV,UAAyB;QAEzB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,UAAU,CAAC,aAAa,CACtB,yBAAyB,EACzB,kCAAkC,GAAG,EAAE,CACxC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;;AA/Be,oBAAI,GAAG,iBAAiB,AAApB,CAAqB;AAkC3C,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IAI9C,IAAY,KAAK;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAE5C,MAAM,MAAM,GAAkB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE7D,MAAM,OAAO,GAAG;YACd,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,sBAAsB,CACpC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,EACnB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAxBhC,mBAAc,GAAG,CAAC,CAAC;QA0B1B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,YAAY,CACtC,kBAAkB,CAAC,IAAI,CACxB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CACR,oGAAoG,CACrG,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\nimport { HostThemeEntity } from \"../../ThemeColors\";\nimport { HostDispatchEntity } from \"../Entities\";\n\nexport abstract class DispatchThemeUC extends AppObjectUC {\n static readonly type = \"DispatchThemeUC\";\n readonly requestType = \"SET_THEME_COLORS\";\n\n abstract doDispatch(): void;\n\n static get(appObject: AppObject): DispatchThemeUC | undefined {\n const asset = appObject.getComponent<DispatchThemeUC>(DispatchThemeUC.type);\n if (!asset) {\n appObject.appObjectRepo.submitWarning(\n \"DispatchThemeUC.get\",\n \"Unable to find DispatchThemeUC on app object \" + appObject.id\n );\n }\n return asset;\n }\n\n static getByID(\n id: string,\n appObjects: AppObjectRepo\n ): DispatchThemeUC | undefined {\n const appObject = appObjects.get(id);\n\n if (!appObject) {\n appObjects.submitWarning(\n \"DispatchThemeUC.getByID\",\n \"Unable to find App Object by id \" + id\n );\n return undefined;\n }\n\n return DispatchThemeUC.get(appObject);\n }\n}\n\nexport function makeDispatchThemeUC(appObject: AppObject): DispatchThemeUC {\n return new DispatchThemeUCImp(appObject);\n}\n\nclass DispatchThemeUCImp extends DispatchThemeUC {\n readonly requestVersion = 1;\n private dispatcher?: HostDispatchEntity;\n\n private get theme() {\n return this.getCachedSingleton<HostThemeEntity>(HostThemeEntity.type);\n }\n\n doDispatch(): void {\n if (!this.dispatcher || !this.theme) return;\n\n const colors: ColorSchemeV1 = { ...this.theme.activeScheme };\n\n const payload = {\n colors\n };\n\n this.dispatcher.formRequestAndDispatch(\n this.requestType,\n this.requestVersion,\n payload\n );\n }\n\n constructor(appObject: AppObject) {\n super(appObject, DispatchThemeUC.type);\n\n this.dispatcher = appObject.getComponent<HostDispatchEntity>(\n HostDispatchEntity.type\n );\n if (!this.dispatcher) {\n this.error(\n \"UC has been added to an App Object that does not have a HostDispatchEntity. Add a dispatcher first\"\n );\n this.dispose();\n }\n }\n}\n\nexport interface ColorSchemeV1 {\n primary: string;\n onPrimary: string;\n primaryContainer: string;\n onPrimaryContainer: string;\n primaryFixed: string;\n onPrimaryFixed: string;\n primaryFixedDim: string;\n onPrimaryFixedVariant: string;\n secondary: string;\n onSecondary: string;\n secondaryContainer: string;\n onSecondaryContainer: string;\n secondaryFixed: string;\n onSecondaryFixed: string;\n secondaryFixedDim: string;\n onSecondaryFixedVariant: string;\n tertiary: string;\n onTertiary: string;\n tertiaryContainer: string;\n onTertiaryContainer: string;\n tertiaryFixed: string;\n onTertiaryFixed: string;\n tertiaryFixedDim: string;\n onTertiaryFixedVariant: string;\n error: string;\n onError: string;\n errorContainer: string;\n onErrorContainer: string;\n outline: string;\n background: string;\n onBackground: string;\n surface: string;\n onSurface: string;\n surfaceVariant: string;\n onSurfaceVariant: string;\n inverseSurface: string;\n inverseOnSurface: string;\n inversePrimary: string;\n shadow: string;\n surfaceTint: string;\n outlineVariant: string;\n scrim: string;\n surfaceContainerHighest: string;\n surfaceContainerHigh: string;\n surfaceContainer: string;\n surfaceContainerLow: string;\n surfaceContainerLowest: string;\n surfaceBright: string;\n surfaceDim: string;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DispatchThemeUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UCs/DispatchThemeUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAgB,eAAgB,SAAQ,WAAW;IAAzD;;QAEW,gBAAW,GAAG,kBAAkB,CAAC;IA+B5C,CAAC;IA3BC,MAAM,CAAC,GAAG,CAAC,SAAoB;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,CAAC,aAAa,CAAC,aAAa,CACnC,qBAAqB,EACrB,+CAA+C,GAAG,SAAS,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,EAAU,EACV,UAAyB;QAEzB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,UAAU,CAAC,aAAa,CACtB,yBAAyB,EACzB,kCAAkC,GAAG,EAAE,CACxC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;;AA/Be,oBAAI,GAAG,iBAAiB,AAApB,CAAqB;AAkC3C,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IAI9C,IAAY,KAAK;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAE5C,MAAM,MAAM,GAAkB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE7D,MAAM,OAAO,GAAG;YACd,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,sBAAsB,CACpC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,EACnB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAxBhC,mBAAc,GAAG,CAAC,CAAC;QA0B1B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,YAAY,CACtC,kBAAkB,CAAC,IAAI,CACxB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CACR,oGAAoG,CACrG,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\nimport { HostThemeEntity } from \"../../ThemeColors\";\r\nimport { HostDispatchEntity } from \"../Entities\";\r\n\r\nexport abstract class DispatchThemeUC extends AppObjectUC {\r\n static readonly type = \"DispatchThemeUC\";\r\n readonly requestType = \"SET_THEME_COLORS\";\r\n\r\n abstract doDispatch(): void;\r\n\r\n static get(appObject: AppObject): DispatchThemeUC | undefined {\r\n const asset = appObject.getComponent<DispatchThemeUC>(DispatchThemeUC.type);\r\n if (!asset) {\r\n appObject.appObjectRepo.submitWarning(\r\n \"DispatchThemeUC.get\",\r\n \"Unable to find DispatchThemeUC on app object \" + appObject.id\r\n );\r\n }\r\n return asset;\r\n }\r\n\r\n static getByID(\r\n id: string,\r\n appObjects: AppObjectRepo\r\n ): DispatchThemeUC | undefined {\r\n const appObject = appObjects.get(id);\r\n\r\n if (!appObject) {\r\n appObjects.submitWarning(\r\n \"DispatchThemeUC.getByID\",\r\n \"Unable to find App Object by id \" + id\r\n );\r\n return undefined;\r\n }\r\n\r\n return DispatchThemeUC.get(appObject);\r\n }\r\n}\r\n\r\nexport function makeDispatchThemeUC(appObject: AppObject): DispatchThemeUC {\r\n return new DispatchThemeUCImp(appObject);\r\n}\r\n\r\nclass DispatchThemeUCImp extends DispatchThemeUC {\r\n readonly requestVersion = 1;\r\n private dispatcher?: HostDispatchEntity;\r\n\r\n private get theme() {\r\n return this.getCachedSingleton<HostThemeEntity>(HostThemeEntity.type);\r\n }\r\n\r\n doDispatch(): void {\r\n if (!this.dispatcher || !this.theme) return;\r\n\r\n const colors: ColorSchemeV1 = { ...this.theme.activeScheme };\r\n\r\n const payload = {\r\n colors\r\n };\r\n\r\n this.dispatcher.formRequestAndDispatch(\r\n this.requestType,\r\n this.requestVersion,\r\n payload\r\n );\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, DispatchThemeUC.type);\r\n\r\n this.dispatcher = appObject.getComponent<HostDispatchEntity>(\r\n HostDispatchEntity.type\r\n );\r\n if (!this.dispatcher) {\r\n this.error(\r\n \"UC has been added to an App Object that does not have a HostDispatchEntity. Add a dispatcher first\"\r\n );\r\n this.dispose();\r\n }\r\n }\r\n}\r\n\r\nexport interface ColorSchemeV1 {\r\n primary: string;\r\n onPrimary: string;\r\n primaryContainer: string;\r\n onPrimaryContainer: string;\r\n primaryFixed: string;\r\n onPrimaryFixed: string;\r\n primaryFixedDim: string;\r\n onPrimaryFixedVariant: string;\r\n secondary: string;\r\n onSecondary: string;\r\n secondaryContainer: string;\r\n onSecondaryContainer: string;\r\n secondaryFixed: string;\r\n onSecondaryFixed: string;\r\n secondaryFixedDim: string;\r\n onSecondaryFixedVariant: string;\r\n tertiary: string;\r\n onTertiary: string;\r\n tertiaryContainer: string;\r\n onTertiaryContainer: string;\r\n tertiaryFixed: string;\r\n onTertiaryFixed: string;\r\n tertiaryFixedDim: string;\r\n onTertiaryFixedVariant: string;\r\n error: string;\r\n onError: string;\r\n errorContainer: string;\r\n onErrorContainer: string;\r\n success: string;\r\n onSuccess: string;\r\n successContainer: string;\r\n onSuccessContainer: string;\r\n warning: string;\r\n onWarning: string;\r\n warningContainer: string;\r\n onWarningContainer: string;\r\n info: string;\r\n onInfo: string;\r\n infoContainer: string;\r\n onInfoContainer: string;\r\n outline: string;\r\n background: string;\r\n onBackground: string;\r\n surface: string;\r\n onSurface: string;\r\n surfaceVariant: string;\r\n onSurfaceVariant: string;\r\n inverseSurface: string;\r\n inverseOnSurface: string;\r\n inversePrimary: string;\r\n shadow: string;\r\n surfaceTint: string;\r\n outlineVariant: string;\r\n scrim: string;\r\n surfaceContainerHighest: string;\r\n surfaceContainerHigh: string;\r\n surfaceContainer: string;\r\n surfaceContainerLow: string;\r\n surfaceContainerLowest: string;\r\n surfaceBright: string;\r\n surfaceDim: string;\r\n}\r\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"primary": "#
|
|
3
|
-
"onPrimary": "#
|
|
2
|
+
"primary": "#007bb0",
|
|
3
|
+
"onPrimary": "#ffffff",
|
|
4
4
|
"primaryContainer": "#00506f",
|
|
5
5
|
"onPrimaryContainer": "#cbeafb",
|
|
6
6
|
"primaryFixed": "#cbeafb",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"onSecondaryFixed": "#081f2a",
|
|
16
16
|
"secondaryFixedDim": "#b4cad6",
|
|
17
17
|
"onSecondaryFixedVariant": "#35525f",
|
|
18
|
-
"tertiary": "#
|
|
18
|
+
"tertiary": "#4ec9f5",
|
|
19
19
|
"onTertiary": "#00344a",
|
|
20
20
|
"tertiaryContainer": "#005e7c",
|
|
21
21
|
"onTertiaryContainer": "#bfeaff",
|
|
@@ -23,29 +23,41 @@
|
|
|
23
23
|
"onTertiaryFixed": "#001f2c",
|
|
24
24
|
"tertiaryFixedDim": "#6bd5f5",
|
|
25
25
|
"onTertiaryFixedVariant": "#005e7c",
|
|
26
|
-
"error": "#
|
|
26
|
+
"error": "#f0577c",
|
|
27
27
|
"onError": "#3a0710",
|
|
28
28
|
"errorContainer": "#7f1225",
|
|
29
29
|
"onErrorContainer": "#ffd9df",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
30
|
+
"success": "#34c08f",
|
|
31
|
+
"onSuccess": "#00391f",
|
|
32
|
+
"successContainer": "#005234",
|
|
33
|
+
"onSuccessContainer": "#9bfccb",
|
|
34
|
+
"warning": "#ffb951",
|
|
35
|
+
"onWarning": "#452b00",
|
|
36
|
+
"warningContainer": "#633f00",
|
|
37
|
+
"onWarningContainer": "#ffdea8",
|
|
38
|
+
"info": "#a2c9ff",
|
|
39
|
+
"onInfo": "#00325b",
|
|
40
|
+
"infoContainer": "#164a7f",
|
|
41
|
+
"onInfoContainer": "#d3e4ff",
|
|
42
|
+
"outline": "#6b7079",
|
|
43
|
+
"background": "#14171b",
|
|
44
|
+
"onBackground": "#f3f5f7",
|
|
45
|
+
"surface": "#1e242b",
|
|
46
|
+
"onSurface": "#f3f5f7",
|
|
47
|
+
"surfaceVariant": "#2a323b",
|
|
48
|
+
"onSurfaceVariant": "#9096a0",
|
|
49
|
+
"inverseSurface": "#f3f5f7",
|
|
50
|
+
"inverseOnSurface": "#14171b",
|
|
51
|
+
"inversePrimary": "#007bb0",
|
|
40
52
|
"shadow": "#000000",
|
|
41
|
-
"surfaceTint": "#
|
|
42
|
-
"outlineVariant": "#
|
|
53
|
+
"surfaceTint": "#007bb0",
|
|
54
|
+
"outlineVariant": "#2c333c",
|
|
43
55
|
"scrim": "#000000",
|
|
44
|
-
"surfaceContainerHighest": "#
|
|
45
|
-
"surfaceContainerHigh": "#
|
|
46
|
-
"surfaceContainer": "#
|
|
47
|
-
"surfaceContainerLow": "#
|
|
48
|
-
"surfaceContainerLowest": "#
|
|
49
|
-
"surfaceBright": "#
|
|
50
|
-
"surfaceDim": "#
|
|
56
|
+
"surfaceContainerHighest": "#2a323b",
|
|
57
|
+
"surfaceContainerHigh": "#242c35",
|
|
58
|
+
"surfaceContainer": "#1e242b",
|
|
59
|
+
"surfaceContainerLow": "#191d22",
|
|
60
|
+
"surfaceContainerLowest": "#0f1216",
|
|
61
|
+
"surfaceBright": "#2a323b",
|
|
62
|
+
"surfaceDim": "#0f1216"
|
|
51
63
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"primary": "#
|
|
2
|
+
"primary": "#007bb0",
|
|
3
3
|
"onPrimary": "#ffffff",
|
|
4
4
|
"primaryContainer": "#cbeafb",
|
|
5
5
|
"onPrimaryContainer": "#001e2e",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"secondaryFixedDim": "#b4cad6",
|
|
17
17
|
"onSecondaryFixedVariant": "#35525f",
|
|
18
18
|
"tertiary": "#00a8e1",
|
|
19
|
-
"onTertiary": "#
|
|
19
|
+
"onTertiary": "#001f2c",
|
|
20
20
|
"tertiaryContainer": "#bfeaff",
|
|
21
21
|
"onTertiaryContainer": "#001f2c",
|
|
22
22
|
"tertiaryFixed": "#bfeaff",
|
|
@@ -27,6 +27,18 @@
|
|
|
27
27
|
"onError": "#ffffff",
|
|
28
28
|
"errorContainer": "#ffd9df",
|
|
29
29
|
"onErrorContainer": "#40000f",
|
|
30
|
+
"success": "#1f8a65",
|
|
31
|
+
"onSuccess": "#ffffff",
|
|
32
|
+
"successContainer": "#a8f2d0",
|
|
33
|
+
"onSuccessContainer": "#002013",
|
|
34
|
+
"warning": "#9a6700",
|
|
35
|
+
"onWarning": "#ffffff",
|
|
36
|
+
"warningContainer": "#ffdea8",
|
|
37
|
+
"onWarningContainer": "#301a00",
|
|
38
|
+
"info": "#0060a9",
|
|
39
|
+
"onInfo": "#ffffff",
|
|
40
|
+
"infoContainer": "#d3e4ff",
|
|
41
|
+
"onInfoContainer": "#001c38",
|
|
30
42
|
"outline": "#939598",
|
|
31
43
|
"background": "#f4f5f6",
|
|
32
44
|
"onBackground": "#231f20",
|
|
@@ -38,7 +50,7 @@
|
|
|
38
50
|
"inverseOnSurface": "#f4f5f6",
|
|
39
51
|
"inversePrimary": "#7ad2f2",
|
|
40
52
|
"shadow": "#000000",
|
|
41
|
-
"surfaceTint": "#
|
|
53
|
+
"surfaceTint": "#007bb0",
|
|
42
54
|
"outlineVariant": "#e2e3e5",
|
|
43
55
|
"scrim": "#000000",
|
|
44
56
|
"surfaceContainerHighest": "#e4e5e7",
|
|
@@ -30,6 +30,18 @@ export var ThemeColorType;
|
|
|
30
30
|
ThemeColorType["onError"] = "onError";
|
|
31
31
|
ThemeColorType["errorContainer"] = "errorContainer";
|
|
32
32
|
ThemeColorType["onErrorContainer"] = "onErrorContainer";
|
|
33
|
+
ThemeColorType["success"] = "success";
|
|
34
|
+
ThemeColorType["onSuccess"] = "onSuccess";
|
|
35
|
+
ThemeColorType["successContainer"] = "successContainer";
|
|
36
|
+
ThemeColorType["onSuccessContainer"] = "onSuccessContainer";
|
|
37
|
+
ThemeColorType["warning"] = "warning";
|
|
38
|
+
ThemeColorType["onWarning"] = "onWarning";
|
|
39
|
+
ThemeColorType["warningContainer"] = "warningContainer";
|
|
40
|
+
ThemeColorType["onWarningContainer"] = "onWarningContainer";
|
|
41
|
+
ThemeColorType["info"] = "info";
|
|
42
|
+
ThemeColorType["onInfo"] = "onInfo";
|
|
43
|
+
ThemeColorType["infoContainer"] = "infoContainer";
|
|
44
|
+
ThemeColorType["onInfoContainer"] = "onInfoContainer";
|
|
33
45
|
ThemeColorType["outline"] = "outline";
|
|
34
46
|
ThemeColorType["background"] = "background";
|
|
35
47
|
ThemeColorType["onBackground"] = "onBackground";
|
|
@@ -135,6 +147,18 @@ export const defaultScheme = {
|
|
|
135
147
|
onError: "#690005",
|
|
136
148
|
errorContainer: "#93000A",
|
|
137
149
|
onErrorContainer: "#FFDAD6",
|
|
150
|
+
success: "#7EE0B0",
|
|
151
|
+
onSuccess: "#00391F",
|
|
152
|
+
successContainer: "#005234",
|
|
153
|
+
onSuccessContainer: "#9BFCCB",
|
|
154
|
+
warning: "#FFB951",
|
|
155
|
+
onWarning: "#452B00",
|
|
156
|
+
warningContainer: "#633F00",
|
|
157
|
+
onWarningContainer: "#FFDEA8",
|
|
158
|
+
info: "#A2C9FF",
|
|
159
|
+
onInfo: "#00325B",
|
|
160
|
+
infoContainer: "#164A7F",
|
|
161
|
+
onInfoContainer: "#D3E4FF",
|
|
138
162
|
outline: "#8B9297",
|
|
139
163
|
background: "#191C1E",
|
|
140
164
|
onBackground: "#E1E2E5",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HostThemeEntity.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Entities/HostThemeEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import { Color, MemoizedString } from \"@vived/core\";\nimport {\n getSingletonComponent,\n AppObject,\n AppObjectEntity,\n AppObjectRepo\n} from \"@vived/core\";\n\nexport enum ThemeColorType {\n primary = \"primary\",\n onPrimary = \"onPrimary\",\n primaryContainer = \"primaryContainer\",\n onPrimaryContainer = \"onPrimaryContainer\",\n primaryFixed = \"primaryFixed\",\n onPrimaryFixed = \"onPrimaryFixed\",\n primaryFixedDim = \"primaryFixedDim\",\n onPrimaryFixedVariant = \"onPrimaryFixedVariant\",\n secondary = \"secondary\",\n onSecondary = \"onSecondary\",\n secondaryContainer = \"secondaryContainer\",\n onSecondaryContainer = \"onSecondaryContainer\",\n secondaryFixed = \"secondaryFixed\",\n onSecondaryFixed = \"onSecondaryFixed\",\n secondaryFixedDim = \"secondaryFixedDim\",\n onSecondaryFixedVariant = \"onSecondaryFixedVariant\",\n tertiary = \"tertiary\",\n onTertiary = \"onTertiary\",\n tertiaryContainer = \"tertiaryContainer\",\n onTertiaryContainer = \"onTertiaryContainer\",\n tertiaryFixed = \"tertiaryFixed\",\n onTertiaryFixed = \"onTertiaryFixed\",\n tertiaryFixedDim = \"tertiaryFixedDim\",\n onTertiaryFixedVariant = \"onTertiaryFixedVariant\",\n error = \"error\",\n onError = \"onError\",\n errorContainer = \"errorContainer\",\n onErrorContainer = \"onErrorContainer\",\n outline = \"outline\",\n background = \"background\",\n onBackground = \"onBackground\",\n surface = \"surface\",\n onSurface = \"onSurface\",\n surfaceVariant = \"surfaceVariant\",\n onSurfaceVariant = \"onSurfaceVariant\",\n inverseSurface = \"inverseSurface\",\n inverseOnSurface = \"inverseOnSurface\",\n inversePrimary = \"inversePrimary\",\n shadow = \"shadow\",\n surfaceTint = \"surfaceTint\",\n outlineVariant = \"outlineVariant\",\n scrim = \"scrim\",\n surfaceContainerHighest = \"surfaceContainerHighest\",\n surfaceContainerHigh = \"surfaceContainerHigh\",\n surfaceContainer = \"surfaceContainer\",\n surfaceContainerLow = \"surfaceContainerLow\",\n surfaceContainerLowest = \"surfaceContainerLowest\",\n surfaceBright = \"surfaceBright\",\n surfaceDim = \"surfaceDim\"\n}\n\nexport interface ColorScheme {\n primary: string;\n onPrimary: string;\n primaryContainer: string;\n onPrimaryContainer: string;\n primaryFixed: string;\n onPrimaryFixed: string;\n primaryFixedDim: string;\n onPrimaryFixedVariant: string;\n secondary: string;\n onSecondary: string;\n secondaryContainer: string;\n onSecondaryContainer: string;\n secondaryFixed: string;\n onSecondaryFixed: string;\n secondaryFixedDim: string;\n onSecondaryFixedVariant: string;\n tertiary: string;\n onTertiary: string;\n tertiaryContainer: string;\n onTertiaryContainer: string;\n tertiaryFixed: string;\n onTertiaryFixed: string;\n tertiaryFixedDim: string;\n onTertiaryFixedVariant: string;\n error: string;\n onError: string;\n errorContainer: string;\n onErrorContainer: string;\n outline: string;\n background: string;\n onBackground: string;\n surface: string;\n onSurface: string;\n surfaceVariant: string;\n onSurfaceVariant: string;\n inverseSurface: string;\n inverseOnSurface: string;\n inversePrimary: string;\n shadow: string;\n surfaceTint: string;\n outlineVariant: string;\n scrim: string;\n surfaceContainerHighest: string;\n surfaceContainerHigh: string;\n surfaceContainer: string;\n surfaceContainerLow: string;\n surfaceContainerLowest: string;\n surfaceBright: string;\n surfaceDim: string;\n}\n\nexport abstract class HostThemeEntity extends AppObjectEntity {\n static readonly type = \"HostThemeEntity\";\n\n abstract submitScheme(name: string, scheme: ColorScheme): void;\n abstract activeSchemeName: string;\n\n abstract get activeScheme(): ColorScheme;\n abstract getColorForType(type: ThemeColorType): Color;\n abstract getHexForType(type: ThemeColorType): string;\n\n static get = (appObjects: AppObjectRepo): HostThemeEntity | undefined =>\n getSingletonComponent(HostThemeEntity.type, appObjects);\n}\n\nexport function makeHostThemeEntity(appObject: AppObject) {\n return new HostThemeEntityImp(appObject);\n}\n\nclass HostThemeEntityImp extends HostThemeEntity {\n private schemeLookup = new Map<string, ColorScheme>();\n\n get activeScheme(): ColorScheme {\n return this.schemeLookup.get(this.activeSchemeName) ?? defaultScheme;\n }\n\n submitScheme = (name: string, scheme: ColorScheme) => {\n if (this.schemeLookup.has(name)) {\n this.warn(\"Duplicate scheme name submitted. Overwriting\");\n }\n\n this.schemeLookup.set(name, scheme);\n\n if (!this.activeSchemeName) {\n this.activeSchemeName = name;\n }\n };\n\n getHexForType(type: ThemeColorType): string {\n const scheme = this.schemeLookup.get(this.activeSchemeName);\n if (!scheme) {\n this.error(\"No active scheme\");\n return \"#000000\";\n }\n\n return scheme[type];\n }\n\n private memoizedActiveScheme = new MemoizedString(\"\", this.notifyOnChange);\n get activeSchemeName(): string {\n return this.memoizedActiveScheme.val;\n }\n\n set activeSchemeName(val: string) {\n if (!this.schemeLookup.has(val)) {\n this.warn(`Unknown theme schema: ${val}. Ignoring.`);\n return;\n }\n this.memoizedActiveScheme.val = val;\n }\n\n constructor(appObject: AppObject) {\n super(appObject, HostThemeEntity.type);\n\n this.appObjects.registerSingleton(this);\n }\n\n getColorForType = (type: ThemeColorType): Color => {\n const scheme = this.schemeLookup.get(this.activeSchemeName);\n if (!scheme) {\n this.error(\"No active scheme\");\n return Color.RGB(0, 0, 0);\n }\n\n const colorHex = scheme[type];\n return Color.Hex(colorHex);\n };\n}\n\nexport const defaultScheme: ColorScheme = {\n primary: \"#7BD0FF\",\n onPrimary: \"#003549\",\n primaryContainer: \"#004C69\",\n onPrimaryContainer: \"#C4E7FF\",\n primaryFixed: \"#C4E7FF\",\n onPrimaryFixed: \"#001E2C\",\n primaryFixedDim: \"#7BD0FF\",\n onPrimaryFixedVariant: \"#004C69\",\n secondary: \"#B5C9D7\",\n onSecondary: \"#20333E\",\n secondaryContainer: \"#374955\",\n onSecondaryContainer: \"#D1E5F4\",\n secondaryFixed: \"#D1E5F4\",\n onSecondaryFixed: \"#0A1E28\",\n secondaryFixedDim: \"#B5C9D7\",\n onSecondaryFixedVariant: \"#374955\",\n tertiary: \"#CAC1E9\",\n onTertiary: \"#322C4C\",\n tertiaryContainer: \"#484264\",\n onTertiaryContainer: \"#E6DEFF\",\n tertiaryFixed: \"#E6DEFF\",\n onTertiaryFixed: \"#1D1736\",\n tertiaryFixedDim: \"#CAC1E9\",\n onTertiaryFixedVariant: \"#484264\",\n error: \"#FFB4AB\",\n onError: \"#690005\",\n errorContainer: \"#93000A\",\n onErrorContainer: \"#FFDAD6\",\n outline: \"#8B9297\",\n background: \"#191C1E\",\n onBackground: \"#E1E2E5\",\n surface: \"#111416\",\n onSurface: \"#C5C6C9\",\n surfaceVariant: \"#41484D\",\n onSurfaceVariant: \"#C0C7CD\",\n inverseSurface: \"#E1E2E5\",\n inverseOnSurface: \"#191C1E\",\n inversePrimary: \"#00668A\",\n shadow: \"#000000\",\n surfaceTint: \"#7BD0FF\",\n outlineVariant: \"#41484D\",\n scrim: \"#000000\",\n surfaceContainerHighest: \"#333537\",\n surfaceContainerHigh: \"#282A2C\",\n surfaceContainer: \"#1D2022\",\n surfaceContainerLow: \"#191C1E\",\n surfaceContainerLowest: \"#0C0F10\",\n surfaceBright: \"#37393C\",\n surfaceDim: \"#111416\"\n};\n"]}
|
|
1
|
+
{"version":3,"file":"HostThemeEntity.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Entities/HostThemeEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,qBAAqB,EAErB,eAAe,EAEhB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAN,IAAY,cA8DX;AA9DD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;IACvB,uDAAqC,CAAA;IACrC,2DAAyC,CAAA;IACzC,+CAA6B,CAAA;IAC7B,mDAAiC,CAAA;IACjC,qDAAmC,CAAA;IACnC,iEAA+C,CAAA;IAC/C,yCAAuB,CAAA;IACvB,6CAA2B,CAAA;IAC3B,2DAAyC,CAAA;IACzC,+DAA6C,CAAA;IAC7C,mDAAiC,CAAA;IACjC,uDAAqC,CAAA;IACrC,yDAAuC,CAAA;IACvC,qEAAmD,CAAA;IACnD,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,yDAAuC,CAAA;IACvC,6DAA2C,CAAA;IAC3C,iDAA+B,CAAA;IAC/B,qDAAmC,CAAA;IACnC,uDAAqC,CAAA;IACrC,mEAAiD,CAAA;IACjD,iCAAe,CAAA;IACf,qCAAmB,CAAA;IACnB,mDAAiC,CAAA;IACjC,uDAAqC,CAAA;IACrC,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;IACvB,uDAAqC,CAAA;IACrC,2DAAyC,CAAA;IACzC,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;IACvB,uDAAqC,CAAA;IACrC,2DAAyC,CAAA;IACzC,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,iDAA+B,CAAA;IAC/B,qDAAmC,CAAA;IACnC,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,+CAA6B,CAAA;IAC7B,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;IACvB,mDAAiC,CAAA;IACjC,uDAAqC,CAAA;IACrC,mDAAiC,CAAA;IACjC,uDAAqC,CAAA;IACrC,mDAAiC,CAAA;IACjC,mCAAiB,CAAA;IACjB,6CAA2B,CAAA;IAC3B,mDAAiC,CAAA;IACjC,iCAAe,CAAA;IACf,qEAAmD,CAAA;IACnD,+DAA6C,CAAA;IAC7C,uDAAqC,CAAA;IACrC,6DAA2C,CAAA;IAC3C,mEAAiD,CAAA;IACjD,iDAA+B,CAAA;IAC/B,2CAAyB,CAAA;AAC3B,CAAC,EA9DW,cAAc,KAAd,cAAc,QA8DzB;AAkED,MAAM,OAAgB,eAAgB,SAAQ,eAAe;;AAC3C,oBAAI,GAAG,iBAAiB,CAAC;AASlC,mBAAG,GAAG,CAAC,UAAyB,EAA+B,EAAE,CACtE,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAG5D,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IAG9C,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;IACvE,CAAC;IAcD,aAAa,CAAC,IAAoB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAGD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;IACvC,CAAC;IAED,IAAI,gBAAgB,CAAC,GAAW;QAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,yBAAyB,GAAG,aAAa,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,GAAG,GAAG,GAAG,CAAC;IACtC,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA1CjC,iBAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;QAMtD,iBAAY,GAAG,CAAC,IAAY,EAAE,MAAmB,EAAE,EAAE;YACnD,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QAYM,yBAAoB,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAmB3E,oBAAe,GAAG,CAAC,IAAoB,EAAS,EAAE;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAC/B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC;QAZA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CAYF;AAED,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,gBAAgB,EAAE,SAAS;IAC3B,kBAAkB,EAAE,SAAS;IAC7B,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,SAAS;IAC1B,qBAAqB,EAAE,SAAS;IAChC,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,kBAAkB,EAAE,SAAS;IAC7B,oBAAoB,EAAE,SAAS;IAC/B,cAAc,EAAE,SAAS;IACzB,gBAAgB,EAAE,SAAS;IAC3B,iBAAiB,EAAE,SAAS;IAC5B,uBAAuB,EAAE,SAAS;IAClC,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,iBAAiB,EAAE,SAAS;IAC5B,mBAAmB,EAAE,SAAS;IAC9B,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,SAAS;IAC1B,gBAAgB,EAAE,SAAS;IAC3B,sBAAsB,EAAE,SAAS;IACjC,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,SAAS;IACzB,gBAAgB,EAAE,SAAS;IAC3B,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,gBAAgB,EAAE,SAAS;IAC3B,kBAAkB,EAAE,SAAS;IAC7B,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,gBAAgB,EAAE,SAAS;IAC3B,kBAAkB,EAAE,SAAS;IAC7B,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,SAAS;IAC1B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,cAAc,EAAE,SAAS;IACzB,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,SAAS;IACzB,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,SAAS;IACzB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,SAAS;IACzB,KAAK,EAAE,SAAS;IAChB,uBAAuB,EAAE,SAAS;IAClC,oBAAoB,EAAE,SAAS;IAC/B,gBAAgB,EAAE,SAAS;IAC3B,mBAAmB,EAAE,SAAS;IAC9B,sBAAsB,EAAE,SAAS;IACjC,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;CACtB,CAAC","sourcesContent":["import { Color, MemoizedString } from \"@vived/core\";\r\nimport {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo\r\n} from \"@vived/core\";\r\n\r\nexport enum ThemeColorType {\r\n primary = \"primary\",\r\n onPrimary = \"onPrimary\",\r\n primaryContainer = \"primaryContainer\",\r\n onPrimaryContainer = \"onPrimaryContainer\",\r\n primaryFixed = \"primaryFixed\",\r\n onPrimaryFixed = \"onPrimaryFixed\",\r\n primaryFixedDim = \"primaryFixedDim\",\r\n onPrimaryFixedVariant = \"onPrimaryFixedVariant\",\r\n secondary = \"secondary\",\r\n onSecondary = \"onSecondary\",\r\n secondaryContainer = \"secondaryContainer\",\r\n onSecondaryContainer = \"onSecondaryContainer\",\r\n secondaryFixed = \"secondaryFixed\",\r\n onSecondaryFixed = \"onSecondaryFixed\",\r\n secondaryFixedDim = \"secondaryFixedDim\",\r\n onSecondaryFixedVariant = \"onSecondaryFixedVariant\",\r\n tertiary = \"tertiary\",\r\n onTertiary = \"onTertiary\",\r\n tertiaryContainer = \"tertiaryContainer\",\r\n onTertiaryContainer = \"onTertiaryContainer\",\r\n tertiaryFixed = \"tertiaryFixed\",\r\n onTertiaryFixed = \"onTertiaryFixed\",\r\n tertiaryFixedDim = \"tertiaryFixedDim\",\r\n onTertiaryFixedVariant = \"onTertiaryFixedVariant\",\r\n error = \"error\",\r\n onError = \"onError\",\r\n errorContainer = \"errorContainer\",\r\n onErrorContainer = \"onErrorContainer\",\r\n success = \"success\",\r\n onSuccess = \"onSuccess\",\r\n successContainer = \"successContainer\",\r\n onSuccessContainer = \"onSuccessContainer\",\r\n warning = \"warning\",\r\n onWarning = \"onWarning\",\r\n warningContainer = \"warningContainer\",\r\n onWarningContainer = \"onWarningContainer\",\r\n info = \"info\",\r\n onInfo = \"onInfo\",\r\n infoContainer = \"infoContainer\",\r\n onInfoContainer = \"onInfoContainer\",\r\n outline = \"outline\",\r\n background = \"background\",\r\n onBackground = \"onBackground\",\r\n surface = \"surface\",\r\n onSurface = \"onSurface\",\r\n surfaceVariant = \"surfaceVariant\",\r\n onSurfaceVariant = \"onSurfaceVariant\",\r\n inverseSurface = \"inverseSurface\",\r\n inverseOnSurface = \"inverseOnSurface\",\r\n inversePrimary = \"inversePrimary\",\r\n shadow = \"shadow\",\r\n surfaceTint = \"surfaceTint\",\r\n outlineVariant = \"outlineVariant\",\r\n scrim = \"scrim\",\r\n surfaceContainerHighest = \"surfaceContainerHighest\",\r\n surfaceContainerHigh = \"surfaceContainerHigh\",\r\n surfaceContainer = \"surfaceContainer\",\r\n surfaceContainerLow = \"surfaceContainerLow\",\r\n surfaceContainerLowest = \"surfaceContainerLowest\",\r\n surfaceBright = \"surfaceBright\",\r\n surfaceDim = \"surfaceDim\"\r\n}\r\n\r\nexport interface ColorScheme {\r\n primary: string;\r\n onPrimary: string;\r\n primaryContainer: string;\r\n onPrimaryContainer: string;\r\n primaryFixed: string;\r\n onPrimaryFixed: string;\r\n primaryFixedDim: string;\r\n onPrimaryFixedVariant: string;\r\n secondary: string;\r\n onSecondary: string;\r\n secondaryContainer: string;\r\n onSecondaryContainer: string;\r\n secondaryFixed: string;\r\n onSecondaryFixed: string;\r\n secondaryFixedDim: string;\r\n onSecondaryFixedVariant: string;\r\n tertiary: string;\r\n onTertiary: string;\r\n tertiaryContainer: string;\r\n onTertiaryContainer: string;\r\n tertiaryFixed: string;\r\n onTertiaryFixed: string;\r\n tertiaryFixedDim: string;\r\n onTertiaryFixedVariant: string;\r\n error: string;\r\n onError: string;\r\n errorContainer: string;\r\n onErrorContainer: string;\r\n success: string;\r\n onSuccess: string;\r\n successContainer: string;\r\n onSuccessContainer: string;\r\n warning: string;\r\n onWarning: string;\r\n warningContainer: string;\r\n onWarningContainer: string;\r\n info: string;\r\n onInfo: string;\r\n infoContainer: string;\r\n onInfoContainer: string;\r\n outline: string;\r\n background: string;\r\n onBackground: string;\r\n surface: string;\r\n onSurface: string;\r\n surfaceVariant: string;\r\n onSurfaceVariant: string;\r\n inverseSurface: string;\r\n inverseOnSurface: string;\r\n inversePrimary: string;\r\n shadow: string;\r\n surfaceTint: string;\r\n outlineVariant: string;\r\n scrim: string;\r\n surfaceContainerHighest: string;\r\n surfaceContainerHigh: string;\r\n surfaceContainer: string;\r\n surfaceContainerLow: string;\r\n surfaceContainerLowest: string;\r\n surfaceBright: string;\r\n surfaceDim: string;\r\n}\r\n\r\nexport abstract class HostThemeEntity extends AppObjectEntity {\r\n static readonly type = \"HostThemeEntity\";\r\n\r\n abstract submitScheme(name: string, scheme: ColorScheme): void;\r\n abstract activeSchemeName: string;\r\n\r\n abstract get activeScheme(): ColorScheme;\r\n abstract getColorForType(type: ThemeColorType): Color;\r\n abstract getHexForType(type: ThemeColorType): string;\r\n\r\n static get = (appObjects: AppObjectRepo): HostThemeEntity | undefined =>\r\n getSingletonComponent(HostThemeEntity.type, appObjects);\r\n}\r\n\r\nexport function makeHostThemeEntity(appObject: AppObject) {\r\n return new HostThemeEntityImp(appObject);\r\n}\r\n\r\nclass HostThemeEntityImp extends HostThemeEntity {\r\n private schemeLookup = new Map<string, ColorScheme>();\r\n\r\n get activeScheme(): ColorScheme {\r\n return this.schemeLookup.get(this.activeSchemeName) ?? defaultScheme;\r\n }\r\n\r\n submitScheme = (name: string, scheme: ColorScheme) => {\r\n if (this.schemeLookup.has(name)) {\r\n this.warn(\"Duplicate scheme name submitted. Overwriting\");\r\n }\r\n\r\n this.schemeLookup.set(name, scheme);\r\n\r\n if (!this.activeSchemeName) {\r\n this.activeSchemeName = name;\r\n }\r\n };\r\n\r\n getHexForType(type: ThemeColorType): string {\r\n const scheme = this.schemeLookup.get(this.activeSchemeName);\r\n if (!scheme) {\r\n this.error(\"No active scheme\");\r\n return \"#000000\";\r\n }\r\n\r\n return scheme[type];\r\n }\r\n\r\n private memoizedActiveScheme = new MemoizedString(\"\", this.notifyOnChange);\r\n get activeSchemeName(): string {\r\n return this.memoizedActiveScheme.val;\r\n }\r\n\r\n set activeSchemeName(val: string) {\r\n if (!this.schemeLookup.has(val)) {\r\n this.warn(`Unknown theme schema: ${val}. Ignoring.`);\r\n return;\r\n }\r\n this.memoizedActiveScheme.val = val;\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, HostThemeEntity.type);\r\n\r\n this.appObjects.registerSingleton(this);\r\n }\r\n\r\n getColorForType = (type: ThemeColorType): Color => {\r\n const scheme = this.schemeLookup.get(this.activeSchemeName);\r\n if (!scheme) {\r\n this.error(\"No active scheme\");\r\n return Color.RGB(0, 0, 0);\r\n }\r\n\r\n const colorHex = scheme[type];\r\n return Color.Hex(colorHex);\r\n };\r\n}\r\n\r\nexport const defaultScheme: ColorScheme = {\r\n primary: \"#7BD0FF\",\r\n onPrimary: \"#003549\",\r\n primaryContainer: \"#004C69\",\r\n onPrimaryContainer: \"#C4E7FF\",\r\n primaryFixed: \"#C4E7FF\",\r\n onPrimaryFixed: \"#001E2C\",\r\n primaryFixedDim: \"#7BD0FF\",\r\n onPrimaryFixedVariant: \"#004C69\",\r\n secondary: \"#B5C9D7\",\r\n onSecondary: \"#20333E\",\r\n secondaryContainer: \"#374955\",\r\n onSecondaryContainer: \"#D1E5F4\",\r\n secondaryFixed: \"#D1E5F4\",\r\n onSecondaryFixed: \"#0A1E28\",\r\n secondaryFixedDim: \"#B5C9D7\",\r\n onSecondaryFixedVariant: \"#374955\",\r\n tertiary: \"#CAC1E9\",\r\n onTertiary: \"#322C4C\",\r\n tertiaryContainer: \"#484264\",\r\n onTertiaryContainer: \"#E6DEFF\",\r\n tertiaryFixed: \"#E6DEFF\",\r\n onTertiaryFixed: \"#1D1736\",\r\n tertiaryFixedDim: \"#CAC1E9\",\r\n onTertiaryFixedVariant: \"#484264\",\r\n error: \"#FFB4AB\",\r\n onError: \"#690005\",\r\n errorContainer: \"#93000A\",\r\n onErrorContainer: \"#FFDAD6\",\r\n success: \"#7EE0B0\",\r\n onSuccess: \"#00391F\",\r\n successContainer: \"#005234\",\r\n onSuccessContainer: \"#9BFCCB\",\r\n warning: \"#FFB951\",\r\n onWarning: \"#452B00\",\r\n warningContainer: \"#633F00\",\r\n onWarningContainer: \"#FFDEA8\",\r\n info: \"#A2C9FF\",\r\n onInfo: \"#00325B\",\r\n infoContainer: \"#164A7F\",\r\n onInfoContainer: \"#D3E4FF\",\r\n outline: \"#8B9297\",\r\n background: \"#191C1E\",\r\n onBackground: \"#E1E2E5\",\r\n surface: \"#111416\",\r\n onSurface: \"#C5C6C9\",\r\n surfaceVariant: \"#41484D\",\r\n onSurfaceVariant: \"#C0C7CD\",\r\n inverseSurface: \"#E1E2E5\",\r\n inverseOnSurface: \"#191C1E\",\r\n inversePrimary: \"#00668A\",\r\n shadow: \"#000000\",\r\n surfaceTint: \"#7BD0FF\",\r\n outlineVariant: \"#41484D\",\r\n scrim: \"#000000\",\r\n surfaceContainerHighest: \"#333537\",\r\n surfaceContainerHigh: \"#282A2C\",\r\n surfaceContainer: \"#1D2022\",\r\n surfaceContainerLow: \"#191C1E\",\r\n surfaceContainerLowest: \"#0C0F10\",\r\n surfaceBright: \"#37393C\",\r\n surfaceDim: \"#111416\"\r\n};\r\n"]}
|
|
@@ -15,7 +15,16 @@ export function makeThemeColorsPM(appObject) {
|
|
|
15
15
|
}
|
|
16
16
|
class ThemeColorsPMImp extends ThemeColorsPM {
|
|
17
17
|
vmsAreEqual(a, b) {
|
|
18
|
-
|
|
18
|
+
if (a.themeName !== b.themeName)
|
|
19
|
+
return false;
|
|
20
|
+
// Compare scheme colors too, so a rebrand/replacement under the same name
|
|
21
|
+
// (e.g. a client applying brand colors) still re-projects the view.
|
|
22
|
+
const aScheme = a.scheme;
|
|
23
|
+
const bScheme = b.scheme;
|
|
24
|
+
const aKeys = Object.keys(aScheme);
|
|
25
|
+
if (aKeys.length !== Object.keys(bScheme).length)
|
|
26
|
+
return false;
|
|
27
|
+
return aKeys.every((key) => aScheme[key] === bScheme[key]);
|
|
19
28
|
}
|
|
20
29
|
constructor(appObject) {
|
|
21
30
|
super(appObject, ThemeColorsPM.type);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeColorsPM.js","sourceRoot":"","sources":["../../../../src/ThemeColors/PM/ThemeColorsPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,WAAW,EAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,aAAa,EACb,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAOrC,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,aAAa;CACtB,CAAC;AAEF,MAAM,OAAgB,aAAc,SAAQ,WAA0B;IAGpE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9E,CAAC;;AAJe,kBAAI,GAAG,eAAe,CAAC;AAOzC,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACpD,OAAO,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,gBAAiB,SAAQ,aAAa;IAG1C,WAAW,CAAC,CAAgB,EAAE,CAAgB;QAC5C,
|
|
1
|
+
{"version":3,"file":"ThemeColorsPM.js","sourceRoot":"","sources":["../../../../src/ThemeColors/PM/ThemeColorsPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,WAAW,EAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,aAAa,EACb,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAOrC,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,aAAa;CACtB,CAAC;AAEF,MAAM,OAAgB,aAAc,SAAQ,WAA0B;IAGpE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9E,CAAC;;AAJe,kBAAI,GAAG,eAAe,CAAC;AAOzC,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACpD,OAAO,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,gBAAiB,SAAQ,aAAa;IAG1C,WAAW,CAAC,CAAgB,EAAE,CAAgB;QAC5C,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE9C,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,OAAO,GAAG,CAAC,CAAC,MAA2C,CAAC;QAC9D,MAAM,OAAO,GAAG,CAAC,CAAC,MAA2C,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAUD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QATvC,kBAAa,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO;YAC9B,IAAI,CAAC,YAAY,CAAC;gBAChB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB;gBAC5C,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;aACtC,CAAC,CAAC;QACL,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAE,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectPM,\r\n AppObjectRepo\r\n} from \"@vived/core\";\r\nimport {\r\n ColorScheme,\r\n defaultScheme,\r\n HostThemeEntity\r\n} from \"../Entities/HostThemeEntity\";\r\n\r\nexport interface ThemeColorsVM {\r\n themeName: string;\r\n scheme: ColorScheme;\r\n}\r\n\r\nexport const defaultThemeColorsVM: ThemeColorsVM = {\r\n themeName: \"\",\r\n scheme: defaultScheme\r\n};\r\n\r\nexport abstract class ThemeColorsPM extends AppObjectPM<ThemeColorsVM> {\r\n static readonly type = \"ThemeColorsPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<ThemeColorsPM>(ThemeColorsPM.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeThemeColorsPM(appObject: AppObject): ThemeColorsPM {\r\n return new ThemeColorsPMImp(appObject);\r\n}\r\n\r\nclass ThemeColorsPMImp extends ThemeColorsPM {\r\n private themeColors?: HostThemeEntity;\r\n\r\n vmsAreEqual(a: ThemeColorsVM, b: ThemeColorsVM): boolean {\r\n if (a.themeName !== b.themeName) return false;\r\n\r\n // Compare scheme colors too, so a rebrand/replacement under the same name\r\n // (e.g. a client applying brand colors) still re-projects the view.\r\n const aScheme = a.scheme as unknown as Record<string, string>;\r\n const bScheme = b.scheme as unknown as Record<string, string>;\r\n const aKeys = Object.keys(aScheme);\r\n if (aKeys.length !== Object.keys(bScheme).length) return false;\r\n return aKeys.every((key) => aScheme[key] === bScheme[key]);\r\n }\r\n\r\n onThemeChange = () => {\r\n if (!this.themeColors) return;\r\n this.doUpdateView({\r\n themeName: this.themeColors.activeSchemeName,\r\n scheme: this.themeColors.activeScheme\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ThemeColorsPM.type);\r\n\r\n this.appObjects.registerSingleton(this);\r\n\r\n this.themeColors = HostThemeEntity.get(appObject.appObjectRepo)!;\r\n if (!this.themeColors) {\r\n this.error(\"Unable to find HostThemeEntity\");\r\n return;\r\n } else {\r\n this.themeColors.addChangeObserver(this.onThemeChange);\r\n this.onThemeChange();\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppSandboxFeatureFactory.d.ts","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/AppSandboxFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AppSandboxFeatureFactory.d.ts","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/AppSandboxFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA4BtE;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,aAAa;IAEzD,QAAQ,CAAC,WAAW,8BAA8B;IAElD,OAAO,CAAC,OAAO,CAAC,CAAmB;gBAEvB,SAAS,EAAE,SAAS;IAIhC;;OAEG;IACH,aAAa,IAAI,IAAI;IAOrB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAiBhB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAUhB;;OAEG;IACH,UAAU,IAAI,IAAI;CA0BnB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,aAAa,GACxB,wBAAwB,CAG1B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AppObject, AppObjectRepo, AppObjectUC } from "@vived/core";
|
|
2
|
+
/**
|
|
3
|
+
* Re-dispatches SET_THEME_COLORS to the running App whenever the active Color
|
|
4
|
+
* Scheme changes, so the App re-colors live (not only at start). See ADR-0004.
|
|
5
|
+
*
|
|
6
|
+
* The start-time dispatch stays in StartAppUC; this UC is additive — it observes
|
|
7
|
+
* the HostThemeEntity and, while an App is mounted or playing, fires the App's
|
|
8
|
+
* DispatchThemeUC again. Before mount there is nothing to re-theme, so it no-ops.
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class RedispatchThemeToAppUC extends AppObjectUC {
|
|
11
|
+
static type: string;
|
|
12
|
+
static get(appObject: AppObject): RedispatchThemeToAppUC | undefined;
|
|
13
|
+
static getByID(id: string, appObjects: AppObjectRepo): RedispatchThemeToAppUC | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare function makeRedispatchThemeToAppUC(appObject: AppObject): RedispatchThemeToAppUC;
|
|
16
|
+
//# sourceMappingURL=RedispatchThemeToAppUC.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RedispatchThemeToAppUC.d.ts","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/RedispatchThemeToAppUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAKpE;;;;;;;GAOG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D,MAAM,CAAC,IAAI,SAA4B;IAEvC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,sBAAsB,GAAG,SAAS;IAapE,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,sBAAsB,GAAG,SAAS;CAatC;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxMounterUC.d.ts","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/SandboxMounterUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SandboxMounterUC.d.ts","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/SandboxMounterUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,aAAa,CAAC;AAY7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAElE"}
|
|
@@ -36,6 +36,18 @@ export interface ColorSchemeV1 {
|
|
|
36
36
|
onError: string;
|
|
37
37
|
errorContainer: string;
|
|
38
38
|
onErrorContainer: string;
|
|
39
|
+
success: string;
|
|
40
|
+
onSuccess: string;
|
|
41
|
+
successContainer: string;
|
|
42
|
+
onSuccessContainer: string;
|
|
43
|
+
warning: string;
|
|
44
|
+
onWarning: string;
|
|
45
|
+
warningContainer: string;
|
|
46
|
+
onWarningContainer: string;
|
|
47
|
+
info: string;
|
|
48
|
+
onInfo: string;
|
|
49
|
+
infoContainer: string;
|
|
50
|
+
onInfoContainer: string;
|
|
39
51
|
outline: string;
|
|
40
52
|
background: string;
|
|
41
53
|
onBackground: string;
|