@effijs/theme 2.0.6 → 3.0.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/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/theme.back.d.ts +12 -0
- package/dist/cjs/theme.back.d.ts.map +1 -0
- package/dist/cjs/theme.back.js +1 -0
- package/dist/cjs/theme.back.js.map +1 -0
- package/dist/cjs/theme.d.ts +17 -8
- package/dist/cjs/theme.d.ts.map +1 -1
- package/dist/cjs/theme.js +1 -1
- package/dist/cjs/theme.js.map +1 -1
- package/dist/cjs/theme.spec.back.d.ts +2 -0
- package/dist/cjs/theme.spec.back.d.ts.map +1 -0
- package/dist/cjs/theme.spec.back.js +1 -0
- package/dist/cjs/theme.spec.back.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/theme.back.d.ts +12 -0
- package/dist/esm/theme.back.d.ts.map +1 -0
- package/dist/esm/theme.back.js +1 -0
- package/dist/esm/theme.back.js.map +1 -0
- package/dist/esm/theme.d.ts +17 -8
- package/dist/esm/theme.d.ts.map +1 -1
- package/dist/esm/theme.js +1 -1
- package/dist/esm/theme.js.map +1 -1
- package/dist/esm/theme.spec.back.d.ts +2 -0
- package/dist/esm/theme.spec.back.d.ts.map +1 -0
- package/dist/esm/theme.spec.back.js +1 -0
- package/dist/esm/theme.spec.back.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/theme.back.d.ts +12 -0
- package/dist/types/theme.back.d.ts.map +1 -0
- package/dist/types/theme.d.ts +17 -8
- package/dist/types/theme.d.ts.map +1 -1
- package/dist/types/theme.spec.back.d.ts +2 -0
- package/dist/types/theme.spec.back.d.ts.map +1 -0
- package/package.json +3 -2
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,QAAA,MAAM,UAAU;;;;CAIf,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEzE,QAAA,MAAM,UAAU;;;;CAIf,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,mCAAgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,mCAAgC;AAUvB,sFAVA,aAAK,OAUA;AANd,MAAM,UAAU,GAAG;IACjB,cAAc,EAAE,GAAG,EAAE,CAAC,kBAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;IACnF,UAAU,EAAE,kBAAS,CAAC,UAAU,CAAC,QAAQ;IACzC,cAAc,EAAE,kBAAS,CAAC,UAAU,CAAC,IAAI;CAC1C,CAAC;AAEc,gCAAU"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ITarget<T> {
|
|
2
|
+
schema: {
|
|
3
|
+
define(schema: string, data: Record<keyof T, any>): void;
|
|
4
|
+
active: string;
|
|
5
|
+
};
|
|
6
|
+
hasKey(key: string): boolean;
|
|
7
|
+
subscribe(handler: (value: string) => void): () => void;
|
|
8
|
+
}
|
|
9
|
+
type TTheme<T> = T & ITarget<T>;
|
|
10
|
+
export declare function ThemeBack<T extends object>(ThemeValidator: new () => T): TTheme<T>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=theme.back.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.back.d.ts","sourceRoot":"","sources":["../../src/theme.back.ts"],"names":[],"mappings":"AAIA,UAAU,OAAO,CAAC,CAAC;IACjB,MAAM,EAAE;QACN,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;QACzD,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACzD;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhC,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAkGlF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ThemeBack=ThemeBack;const common_1=require("@effijs/common"),ACTIVE="$active";function ThemeBack(e){const r=new common_1.Store.Common,t=new common_1.Logger(`Theme:${e.name}`),o={schema:{define(t,o){const{validated:n,error:s}=common_1.Validator.validateByClass(o,e);if(s&&Object.keys(s).length)throw new Error(JSON.stringify(s));r.set(t,n),r.hasKey(ACTIVE)||r.set(ACTIVE,t)},get active(){return r.getByPath(ACTIVE)},set active(e){if(!r.hasKey(e)){const r=`Try to set active theme '${e}', but it is not defined`;throw t.error(r),new Error(r)}r.set(ACTIVE,e)}},hasKey:e=>r.hasKey(e),subscribe:e=>r.subscribe({a:ACTIVE},r=>e(r.a))},n={get(e,o){if("$$typeof"===o)return null;if("schema"===o||"subscribe"===o||"hasKey"===o)return e[o];const n=r.getByPath(ACTIVE);if(!r.hasKey(`${n}.${o}`)){const e=`For theme '${n}' object wrong key was passed: ${o}`;throw t.error(e),new Error(e)}return s(r.getByPath(`${n}.${o}`),`${n}.${o}`)},set(){throw t.error("Theme object is frozen"),new Error("Theme object is frozen")}};return new Proxy(o,n);function s(e,o){if("object"!=typeof e)return e;const n={get(e,r){if(Object.prototype.hasOwnProperty.call(e,r))return s(e[r],`${o}.${r}`)},set(){throw t.error("Theme object is frozen"),new Error("Theme object is frozen")}};return Reflect.defineProperty(e,"hasKey",{value:e=>r.hasKey(`${o}.${e}`),writable:!1,configurable:!1,enumerable:!1}),new Proxy(e,n)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.back.js","sourceRoot":"","sources":["../../src/theme.back.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/theme.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { Store } from '@effijs/common';
|
|
2
|
+
declare const ACTIVE: "$active";
|
|
3
|
+
export type ThemeDefineData = Record<string, unknown>;
|
|
4
|
+
export type ThemeStoreSchema<T extends object, ThemeNames extends string = string> = Store.TData & Record<typeof ACTIVE, string> & (string extends ThemeNames ? Record<string, T | undefined> : {
|
|
5
|
+
[K in ThemeNames]?: T;
|
|
6
|
+
});
|
|
7
|
+
interface ISchema<T extends object, ThemeNames extends string = string> {
|
|
8
|
+
define(themeName: ThemeNames, data: ThemeDefineData): void;
|
|
9
|
+
get active(): ThemeNames;
|
|
10
|
+
set active(value: ThemeNames);
|
|
11
|
+
}
|
|
12
|
+
interface ITarget<T extends object, ThemeNames extends string = string> {
|
|
13
|
+
schema: ISchema<T, ThemeNames>;
|
|
14
|
+
hasKey<const P extends Store.Path<T>>(path: P): boolean;
|
|
15
|
+
get<const P extends Store.Path<T>>(path: P, theme?: ThemeNames): Store.PathValue<T, P>;
|
|
7
16
|
subscribe(handler: (value: string) => void): () => void;
|
|
8
17
|
}
|
|
9
|
-
type TTheme<T> = T & ITarget<T>;
|
|
10
|
-
export declare function Theme<T extends object>(ThemeValidator: new () => T): TTheme<T>;
|
|
18
|
+
export type TTheme<T extends object, ThemeNames extends string = string> = T & ITarget<T, ThemeNames>;
|
|
19
|
+
export declare function Theme<T extends object, ThemeNames extends string = string>(ThemeValidator: new () => T): TTheme<T, ThemeNames>;
|
|
11
20
|
export {};
|
|
12
21
|
//# sourceMappingURL=theme.d.ts.map
|
package/dist/cjs/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,gBAAgB,CAAC;AAGlD,QAAA,MAAM,MAAM,EAAG,SAAkB,CAAC;AAGlC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAMtD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,GAC9F,MAAM,CAAC,OAAO,MAAM,EAAE,MAAM,CAAC,GAC7B,CAAC,MAAM,SAAS,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,GAAG;KAAG,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC;CAAE,CAAC,CAAC;AAE1F,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IACpE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3D,IAAI,MAAM,IAAI,UAAU,CAAC;IACzB,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE;CAC/B;AAED,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IACpE,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IACxD,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACzD;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAEtG,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,EACxE,cAAc,EAAE,UAAU,CAAC,GAC1B,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAiHvB"}
|
package/dist/cjs/theme.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Theme=Theme;const common_1=require("@effijs/common"),ACTIVE="$active";function Theme(e){const r=new common_1.Store.Common,t=new
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Theme=Theme;const common_1=require("@effijs/common"),logger_1=require("@effijs/logger"),ACTIVE="$active";function Theme(e){const r=new common_1.Store.Common,t=new logger_1.Logger(`Theme:${e.name}`),o=ACTIVE,n={schema:{define(t,n){const s=common_1.Validator.validateByClass(n,e);if(s.error&&Object.keys(s.error).length)throw new Error(JSON.stringify(s.error));r.set(t,s.validated),r.hasKey(o)||r.set(o,t)},get active(){return r.getByPath(o)},set active(e){if(!r.hasKey(e)){const r=`Try to set active theme '${e}', but it is not defined`;throw t.error(r),new Error(r)}r.set(o,e)}},hasKey(e){const t=`${r.getByPath(o)}.${e}`;return r.hasKey(t)},get(e,t){const n=`${null!=t?t:r.getByPath(o)}.${e}`;return r.getByPath(n)},subscribe:e=>r.subscribe({a:o},r=>e(r.a))},s={get(e,n){if("$$typeof"===n)return t.warn("Try to access $$typeof property, it is not allowed"),null;if("schema"===n||"subscribe"===n||"hasKey"===n||"get"===n)return e[n];const s=r.getByPath(o),a=`${s}.${String(n)}`;if(!r.hasKey(a)){const e=`For theme '${s}' object wrong key was passed: ${String(n)}`;throw t.error(e),new Error(e)}return i(r.getByPath(a),String(n))},set(){throw t.error("Theme object is frozen"),new Error("Theme object is frozen")}};return new Proxy(n,s);function i(e,n){if("object"!=typeof e||null===e)return e;const s={get(e,t){const s=`${r.getByPath(o)}.${n}.${String(t)}`;if(r.hasKey(s))return i(r.getByPath(s),`${n}.${String(t)}`)},set(){throw t.error("Theme object is frozen"),new Error("Theme object is frozen")}};return Reflect.defineProperty(e,"hasKey",{value:e=>{const t=r.getByPath(o);return r.hasKey(`${t}.${n}.${e}`)},writable:!1,configurable:!1,enumerable:!1}),new Proxy(e,s)}}
|
package/dist/cjs/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.spec.back.d.ts","sourceRoot":"","sources":["../../src/theme.spec.back.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __decorate=this&&this.__decorate||function(e,t,a,o){var c,i=arguments.length,r=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,a):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,a,o);else for(var h=e.length-1;h>=0;h--)(c=e[h])&&(r=(i<3?c(r):i>3?c(t,a,r):c(t,a))||r);return i>3&&r&&Object.defineProperty(t,a,r),r},__metadata=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(exports,"__esModule",{value:!0});const theme_back_1=require("./theme.back"),index_1=require("./index"),{ThemeToken:ThemeToken,ThemeTokenType:ThemeTokenType}=index_1.Decorators;describe("CommonStore",()=>{it("gets value at specific path",()=>{class e{}__decorate([ThemeToken(),__metadata("design:type",String)],e.prototype,"PRIMARY",void 0),__decorate([ThemeToken(),__metadata("design:type",String)],e.prototype,"SECONDARY",void 0);const t=(0,theme_back_1.ThemeBack)(e);t.schema.define("light",{PRIMARY:"white",SECONDARY:"black"}),t.schema.define("dark",{PRIMARY:"black",SECONDARY:"dark-grey"}),expect(t.schema.active).toEqual("light"),expect(t.PRIMARY).toEqual("white"),t.schema.active="dark",expect(t.PRIMARY).toEqual("black"),expect(()=>{t.schema.active="NOT DEFINED"}).toThrow("Try to set active theme 'NOT DEFINED', but it is not defined");const a=jest.fn();t.subscribe(a),expect(a).toHaveBeenNthCalledWith(1,"dark"),t.schema.active="light",expect(a).toHaveBeenNthCalledWith(2,"light")}),it("Nested properties",()=>{class e{}__decorate([ThemeToken(),__metadata("design:type",Number)],e.prototype,"S",void 0),__decorate([ThemeToken(),__metadata("design:type",Number)],e.prototype,"M",void 0);class t{}__decorate([ThemeToken(),__metadata("design:type",String)],t.prototype,"PRIMARY",void 0),__decorate([ThemeToken(),__metadata("design:type",String)],t.prototype,"SECONDARY",void 0),__decorate([ThemeToken(),ThemeTokenType(()=>e),__metadata("design:type",Object)],t.prototype,"SPACING",void 0);const a=(0,theme_back_1.ThemeBack)(t);a.schema.define("light",{PRIMARY:"white",SECONDARY:"black",SPACING:{S:12,M:16}}),a.schema.define("dark",{PRIMARY:"black",SECONDARY:"dark-grey",SPACING:{S:10,M:14}}),expect(a.schema.active).toEqual("light"),expect(a.PRIMARY).toEqual("white"),a.schema.active="dark",expect(a.PRIMARY).toEqual("black"),expect(a.SPACING.hasKey("M")).toBeTruthy(),expect(a.SPACING.hasKey("Z")).toBeFalsy(),expect(a.SPACING.M).toEqual(14),expect(a.SPACING.M).toEqual(14),expect(()=>{a.SPACING.S=20}).toThrow("Theme object is frozen"),expect(()=>{a.schema.active="NOT DEFINED"}).toThrow("Try to set active theme 'NOT DEFINED', but it is not defined");const o=jest.fn();a.subscribe(o),expect(o).toHaveBeenNthCalledWith(1,"dark"),a.schema.active="light",expect(o).toHaveBeenNthCalledWith(2,"light")})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.spec.back.js","sourceRoot":"","sources":["../../src/theme.spec.back.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,QAAA,MAAM,UAAU;;;;CAIf,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEzE,QAAA,MAAM,UAAU;;;;CAIf,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIhC,MAAM,UAAU,GAAG;IACjB,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;IACnF,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ;IACzC,cAAc,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI;CAC1C,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ITarget<T> {
|
|
2
|
+
schema: {
|
|
3
|
+
define(schema: string, data: Record<keyof T, any>): void;
|
|
4
|
+
active: string;
|
|
5
|
+
};
|
|
6
|
+
hasKey(key: string): boolean;
|
|
7
|
+
subscribe(handler: (value: string) => void): () => void;
|
|
8
|
+
}
|
|
9
|
+
type TTheme<T> = T & ITarget<T>;
|
|
10
|
+
export declare function ThemeBack<T extends object>(ThemeValidator: new () => T): TTheme<T>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=theme.back.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.back.d.ts","sourceRoot":"","sources":["../../src/theme.back.ts"],"names":[],"mappings":"AAIA,UAAU,OAAO,CAAC,CAAC;IACjB,MAAM,EAAE;QACN,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;QACzD,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACzD;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhC,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAkGlF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Store,Validator,Logger}from"@effijs/common";const ACTIVE="$active";export function ThemeBack(e){const r=new Store.Common,t=new Logger(`Theme:${e.name}`),o={schema:{define(t,o){const{validated:n,error:s}=Validator.validateByClass(o,e);if(s&&Object.keys(s).length)throw new Error(JSON.stringify(s));r.set(t,n),r.hasKey(ACTIVE)||r.set(ACTIVE,t)},get active(){return r.getByPath(ACTIVE)},set active(e){if(!r.hasKey(e)){const r=`Try to set active theme '${e}', but it is not defined`;throw t.error(r),new Error(r)}r.set(ACTIVE,e)}},hasKey:e=>r.hasKey(e),subscribe:e=>r.subscribe({a:ACTIVE},r=>e(r.a))},n={get(e,o){if("$$typeof"===o)return null;if("schema"===o||"subscribe"===o||"hasKey"===o)return e[o];const n=r.getByPath(ACTIVE);if(!r.hasKey(`${n}.${o}`)){const e=`For theme '${n}' object wrong key was passed: ${o}`;throw t.error(e),new Error(e)}return s(r.getByPath(`${n}.${o}`),`${n}.${o}`)},set(){throw t.error("Theme object is frozen"),new Error("Theme object is frozen")}};return new Proxy(o,n);function s(e,o){if("object"!=typeof e)return e;const n={get(e,r){if(Object.prototype.hasOwnProperty.call(e,r))return s(e[r],`${o}.${r}`)},set(){throw t.error("Theme object is frozen"),new Error("Theme object is frozen")}};return Reflect.defineProperty(e,"hasKey",{value:e=>r.hasKey(`${o}.${e}`),writable:!1,configurable:!1,enumerable:!1}),new Proxy(e,n)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.back.js","sourceRoot":"","sources":["../../src/theme.back.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/theme.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { Store } from '@effijs/common';
|
|
2
|
+
declare const ACTIVE: "$active";
|
|
3
|
+
export type ThemeDefineData = Record<string, unknown>;
|
|
4
|
+
export type ThemeStoreSchema<T extends object, ThemeNames extends string = string> = Store.TData & Record<typeof ACTIVE, string> & (string extends ThemeNames ? Record<string, T | undefined> : {
|
|
5
|
+
[K in ThemeNames]?: T;
|
|
6
|
+
});
|
|
7
|
+
interface ISchema<T extends object, ThemeNames extends string = string> {
|
|
8
|
+
define(themeName: ThemeNames, data: ThemeDefineData): void;
|
|
9
|
+
get active(): ThemeNames;
|
|
10
|
+
set active(value: ThemeNames);
|
|
11
|
+
}
|
|
12
|
+
interface ITarget<T extends object, ThemeNames extends string = string> {
|
|
13
|
+
schema: ISchema<T, ThemeNames>;
|
|
14
|
+
hasKey<const P extends Store.Path<T>>(path: P): boolean;
|
|
15
|
+
get<const P extends Store.Path<T>>(path: P, theme?: ThemeNames): Store.PathValue<T, P>;
|
|
7
16
|
subscribe(handler: (value: string) => void): () => void;
|
|
8
17
|
}
|
|
9
|
-
type TTheme<T> = T & ITarget<T>;
|
|
10
|
-
export declare function Theme<T extends object>(ThemeValidator: new () => T): TTheme<T>;
|
|
18
|
+
export type TTheme<T extends object, ThemeNames extends string = string> = T & ITarget<T, ThemeNames>;
|
|
19
|
+
export declare function Theme<T extends object, ThemeNames extends string = string>(ThemeValidator: new () => T): TTheme<T, ThemeNames>;
|
|
11
20
|
export {};
|
|
12
21
|
//# sourceMappingURL=theme.d.ts.map
|
package/dist/esm/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,gBAAgB,CAAC;AAGlD,QAAA,MAAM,MAAM,EAAG,SAAkB,CAAC;AAGlC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAMtD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,GAC9F,MAAM,CAAC,OAAO,MAAM,EAAE,MAAM,CAAC,GAC7B,CAAC,MAAM,SAAS,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,GAAG;KAAG,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC;CAAE,CAAC,CAAC;AAE1F,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IACpE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3D,IAAI,MAAM,IAAI,UAAU,CAAC;IACzB,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE;CAC/B;AAED,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IACpE,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IACxD,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACzD;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAEtG,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,EACxE,cAAc,EAAE,UAAU,CAAC,GAC1B,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAiHvB"}
|
package/dist/esm/theme.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Store,Validator
|
|
1
|
+
import{Store,Validator}from"@effijs/common";import{Logger}from"@effijs/logger";const ACTIVE="$active";export function Theme(e){const r=new Store.Common,t=new Logger(`Theme:${e.name}`),o=ACTIVE,n={schema:{define(t,n){const s=Validator.validateByClass(n,e);if(s.error&&Object.keys(s.error).length)throw new Error(JSON.stringify(s.error));r.set(t,s.validated),r.hasKey(o)||r.set(o,t)},get active(){return r.getByPath(o)},set active(e){if(!r.hasKey(e)){const r=`Try to set active theme '${e}', but it is not defined`;throw t.error(r),new Error(r)}r.set(o,e)}},hasKey(e){const t=`${r.getByPath(o)}.${e}`;return r.hasKey(t)},get(e,t){const n=`${null!=t?t:r.getByPath(o)}.${e}`;return r.getByPath(n)},subscribe:e=>r.subscribe({a:o},r=>e(r.a))},s={get(e,n){if("$$typeof"===n)return t.warn("Try to access $$typeof property, it is not allowed"),null;if("schema"===n||"subscribe"===n||"hasKey"===n||"get"===n)return e[n];const s=r.getByPath(o),i=`${s}.${String(n)}`;if(!r.hasKey(i)){const e=`For theme '${s}' object wrong key was passed: ${String(n)}`;throw t.error(e),new Error(e)}return a(r.getByPath(i),String(n))},set(){throw t.error("Theme object is frozen"),new Error("Theme object is frozen")}};return new Proxy(n,s);function a(e,n){if("object"!=typeof e||null===e)return e;const s={get(e,t){const s=`${r.getByPath(o)}.${n}.${String(t)}`;if(r.hasKey(s))return a(r.getByPath(s),`${n}.${String(t)}`)},set(){throw t.error("Theme object is frozen"),new Error("Theme object is frozen")}};return Reflect.defineProperty(e,"hasKey",{value:e=>{const t=r.getByPath(o);return r.hasKey(`${t}.${n}.${e}`)},writable:!1,configurable:!1,enumerable:!1}),new Proxy(e,s)}}
|
package/dist/esm/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.spec.back.d.ts","sourceRoot":"","sources":["../../src/theme.spec.back.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var __decorate=this&&this.__decorate||function(e,t,a,o){var c,i=arguments.length,r=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,a):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,a,o);else for(var h=e.length-1;h>=0;h--)(c=e[h])&&(r=(i<3?c(r):i>3?c(t,a,r):c(t,a))||r);return i>3&&r&&Object.defineProperty(t,a,r),r},__metadata=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};import{ThemeBack}from"./theme.back";import{Decorators}from"./index";const{ThemeToken:ThemeToken,ThemeTokenType:ThemeTokenType}=Decorators;describe("CommonStore",()=>{it("gets value at specific path",()=>{class e{}__decorate([ThemeToken(),__metadata("design:type",String)],e.prototype,"PRIMARY",void 0),__decorate([ThemeToken(),__metadata("design:type",String)],e.prototype,"SECONDARY",void 0);const t=ThemeBack(e);t.schema.define("light",{PRIMARY:"white",SECONDARY:"black"}),t.schema.define("dark",{PRIMARY:"black",SECONDARY:"dark-grey"}),expect(t.schema.active).toEqual("light"),expect(t.PRIMARY).toEqual("white"),t.schema.active="dark",expect(t.PRIMARY).toEqual("black"),expect(()=>{t.schema.active="NOT DEFINED"}).toThrow("Try to set active theme 'NOT DEFINED', but it is not defined");const a=jest.fn();t.subscribe(a),expect(a).toHaveBeenNthCalledWith(1,"dark"),t.schema.active="light",expect(a).toHaveBeenNthCalledWith(2,"light")}),it("Nested properties",()=>{class e{}__decorate([ThemeToken(),__metadata("design:type",Number)],e.prototype,"S",void 0),__decorate([ThemeToken(),__metadata("design:type",Number)],e.prototype,"M",void 0);class t{}__decorate([ThemeToken(),__metadata("design:type",String)],t.prototype,"PRIMARY",void 0),__decorate([ThemeToken(),__metadata("design:type",String)],t.prototype,"SECONDARY",void 0),__decorate([ThemeToken(),ThemeTokenType(()=>e),__metadata("design:type",Object)],t.prototype,"SPACING",void 0);const a=ThemeBack(t);a.schema.define("light",{PRIMARY:"white",SECONDARY:"black",SPACING:{S:12,M:16}}),a.schema.define("dark",{PRIMARY:"black",SECONDARY:"dark-grey",SPACING:{S:10,M:14}}),expect(a.schema.active).toEqual("light"),expect(a.PRIMARY).toEqual("white"),a.schema.active="dark",expect(a.PRIMARY).toEqual("black"),expect(a.SPACING.hasKey("M")).toBeTruthy(),expect(a.SPACING.hasKey("Z")).toBeFalsy(),expect(a.SPACING.M).toEqual(14),expect(a.SPACING.M).toEqual(14),expect(()=>{a.SPACING.S=20}).toThrow("Theme object is frozen"),expect(()=>{a.schema.active="NOT DEFINED"}).toThrow("Try to set active theme 'NOT DEFINED', but it is not defined");const o=jest.fn();a.subscribe(o),expect(o).toHaveBeenNthCalledWith(1,"dark"),a.schema.active="light",expect(o).toHaveBeenNthCalledWith(2,"light")})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.spec.back.js","sourceRoot":"","sources":["../../src/theme.spec.back.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,QAAA,MAAM,UAAU;;;;CAIf,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEzE,QAAA,MAAM,UAAU;;;;CAIf,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ITarget<T> {
|
|
2
|
+
schema: {
|
|
3
|
+
define(schema: string, data: Record<keyof T, any>): void;
|
|
4
|
+
active: string;
|
|
5
|
+
};
|
|
6
|
+
hasKey(key: string): boolean;
|
|
7
|
+
subscribe(handler: (value: string) => void): () => void;
|
|
8
|
+
}
|
|
9
|
+
type TTheme<T> = T & ITarget<T>;
|
|
10
|
+
export declare function ThemeBack<T extends object>(ThemeValidator: new () => T): TTheme<T>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=theme.back.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.back.d.ts","sourceRoot":"","sources":["../../src/theme.back.ts"],"names":[],"mappings":"AAIA,UAAU,OAAO,CAAC,CAAC;IACjB,MAAM,EAAE;QACN,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;QACzD,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACzD;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhC,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAkGlF"}
|
package/dist/types/theme.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { Store } from '@effijs/common';
|
|
2
|
+
declare const ACTIVE: "$active";
|
|
3
|
+
export type ThemeDefineData = Record<string, unknown>;
|
|
4
|
+
export type ThemeStoreSchema<T extends object, ThemeNames extends string = string> = Store.TData & Record<typeof ACTIVE, string> & (string extends ThemeNames ? Record<string, T | undefined> : {
|
|
5
|
+
[K in ThemeNames]?: T;
|
|
6
|
+
});
|
|
7
|
+
interface ISchema<T extends object, ThemeNames extends string = string> {
|
|
8
|
+
define(themeName: ThemeNames, data: ThemeDefineData): void;
|
|
9
|
+
get active(): ThemeNames;
|
|
10
|
+
set active(value: ThemeNames);
|
|
11
|
+
}
|
|
12
|
+
interface ITarget<T extends object, ThemeNames extends string = string> {
|
|
13
|
+
schema: ISchema<T, ThemeNames>;
|
|
14
|
+
hasKey<const P extends Store.Path<T>>(path: P): boolean;
|
|
15
|
+
get<const P extends Store.Path<T>>(path: P, theme?: ThemeNames): Store.PathValue<T, P>;
|
|
7
16
|
subscribe(handler: (value: string) => void): () => void;
|
|
8
17
|
}
|
|
9
|
-
type TTheme<T> = T & ITarget<T>;
|
|
10
|
-
export declare function Theme<T extends object>(ThemeValidator: new () => T): TTheme<T>;
|
|
18
|
+
export type TTheme<T extends object, ThemeNames extends string = string> = T & ITarget<T, ThemeNames>;
|
|
19
|
+
export declare function Theme<T extends object, ThemeNames extends string = string>(ThemeValidator: new () => T): TTheme<T, ThemeNames>;
|
|
11
20
|
export {};
|
|
12
21
|
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,gBAAgB,CAAC;AAGlD,QAAA,MAAM,MAAM,EAAG,SAAkB,CAAC;AAGlC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAMtD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,GAC9F,MAAM,CAAC,OAAO,MAAM,EAAE,MAAM,CAAC,GAC7B,CAAC,MAAM,SAAS,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,GAAG;KAAG,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC;CAAE,CAAC,CAAC;AAE1F,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IACpE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3D,IAAI,MAAM,IAAI,UAAU,CAAC;IACzB,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE;CAC/B;AAED,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IACpE,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IACxD,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACzD;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAEtG,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,EACxE,cAAc,EAAE,UAAU,CAAC,GAC1B,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAiHvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.spec.back.d.ts","sourceRoot":"","sources":["../../src/theme.spec.back.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effijs/theme",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "An efficient, modern way to organize the business logic of an application(@effijs/theme)",
|
|
5
5
|
"author": "Yevhenii Kyrychok",
|
|
6
6
|
"license": "MIT",
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
"prepublishOnly": "npm run build"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@effijs/common": "^
|
|
39
|
+
"@effijs/common": "^3.0.0",
|
|
40
|
+
"@effijs/logger": "^3.0.0",
|
|
40
41
|
"@types/jest": "^29.5.13",
|
|
41
42
|
"@types/node": "^22.7.4",
|
|
42
43
|
"@typescript-eslint/eslint-plugin": "^8.8.0",
|