@symbiotejs/symbiote 2.2.1 → 2.2.2
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/core/PubSub.js +25 -14
- package/package.json +2 -2
- package/types/core/AppRouter.d.ts +1 -1
- package/types/core/AppRouter.d.ts.map +1 -1
- package/types/core/PubSub.d.ts +3 -3
- package/types/core/PubSub.d.ts.map +1 -1
- package/types/core/Symbiote.d.ts +2 -2
- package/types/core/Symbiote.d.ts.map +1 -1
- package/types/core/css.d.ts +1 -1
package/core/PubSub.js
CHANGED
|
@@ -52,19 +52,23 @@ export class PubSub {
|
|
|
52
52
|
if (typeof prop === 'string' && prop.startsWith(DICT.COMPUTED_PX)) {
|
|
53
53
|
/** @type {Function} */
|
|
54
54
|
let compFn = this.store[prop];
|
|
55
|
-
if (
|
|
55
|
+
if (compFn?.constructor !== Function) {
|
|
56
|
+
PubSub.#warn('compute', prop);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (!this.__computedMap) {
|
|
56
60
|
/**
|
|
57
61
|
* @private
|
|
58
|
-
* @type {
|
|
62
|
+
* @type {Object<string, *>}
|
|
59
63
|
*/
|
|
60
|
-
this.
|
|
64
|
+
this.__computedMap = {};
|
|
61
65
|
}
|
|
62
|
-
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return compFn();
|
|
66
|
+
let currentVal = compFn();
|
|
67
|
+
if (!Object.keys(this.__computedMap).includes(prop)) {
|
|
68
|
+
this.__computedMap[prop] = currentVal;
|
|
69
|
+
this.notify(prop);
|
|
67
70
|
}
|
|
71
|
+
return currentVal;
|
|
68
72
|
} else {
|
|
69
73
|
return this.store[prop];
|
|
70
74
|
}
|
|
@@ -136,14 +140,18 @@ export class PubSub {
|
|
|
136
140
|
|
|
137
141
|
static #processComputed() {
|
|
138
142
|
this.globalStore.forEach((inst) => {
|
|
139
|
-
if (inst.
|
|
140
|
-
inst.
|
|
143
|
+
if (inst.__computedMap) {
|
|
144
|
+
Object.keys(inst.__computedMap).forEach((prop) => {
|
|
141
145
|
let tName = `__${prop}_timeout`;
|
|
142
146
|
if (inst[tName]) {
|
|
143
147
|
window.clearTimeout(inst[tName]);
|
|
144
148
|
}
|
|
145
149
|
inst[tName] = window.setTimeout(() => {
|
|
146
|
-
inst.
|
|
150
|
+
let currentVal = inst.read(prop);
|
|
151
|
+
if (currentVal !== inst.__computedMap[prop]) {
|
|
152
|
+
inst.__computedMap[prop] = currentVal;
|
|
153
|
+
inst.notify(prop);
|
|
154
|
+
}
|
|
147
155
|
});
|
|
148
156
|
});
|
|
149
157
|
}
|
|
@@ -152,13 +160,16 @@ export class PubSub {
|
|
|
152
160
|
|
|
153
161
|
/** @param {keyof T} prop */
|
|
154
162
|
notify(prop) {
|
|
163
|
+
// @ts-expect-error
|
|
164
|
+
let isComputed = prop?.startsWith(DICT.COMPUTED_PX);
|
|
155
165
|
if (this.callbackMap[prop]) {
|
|
166
|
+
// @ts-expect-error
|
|
167
|
+
let val = isComputed ? this.__computedMap[prop] : this.read(prop);
|
|
156
168
|
this.callbackMap[prop].forEach((callback) => {
|
|
157
|
-
callback(
|
|
169
|
+
callback(val);
|
|
158
170
|
});
|
|
159
171
|
}
|
|
160
|
-
|
|
161
|
-
!prop?.startsWith(DICT.COMPUTED_PX) && PubSub.#processComputed();
|
|
172
|
+
!isComputed && PubSub.#processComputed();
|
|
162
173
|
}
|
|
163
174
|
|
|
164
175
|
/**
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@symbiotejs/symbiote",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.2",
|
|
5
5
|
"description": "Symbiote.js - close-to-platform frontend library for building super-powered web components",
|
|
6
6
|
"author": "symbiote.js@gmail.com",
|
|
7
7
|
"license": "MIT",
|
|
@@ -63,6 +63,6 @@
|
|
|
63
63
|
"MIT"
|
|
64
64
|
],
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"typescript": "^5.
|
|
66
|
+
"typescript": "^5.3.3"
|
|
67
67
|
}
|
|
68
68
|
}
|
|
@@ -14,7 +14,7 @@ export class AppRouter {
|
|
|
14
14
|
static setRoutingMap(map: {
|
|
15
15
|
[x: string]: {};
|
|
16
16
|
}): void;
|
|
17
|
-
static set routingEventName(
|
|
17
|
+
static set routingEventName(name: string);
|
|
18
18
|
static get routingEventName(): string;
|
|
19
19
|
static readAddressBar(): {
|
|
20
20
|
route: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppRouter.d.ts","sourceRoot":"","sources":["../../core/AppRouter.js"],"names":[],"mappings":"AAEA;IAOE,2BADW,MAAM,IAAI,CACF;IAEnB,iCAAkB;IAElB,wCAAyB;IAEzB;;;;;;MAAoC;IAEpC,qCAEC;IAGD,4CAEC;IAGD;YADmB,MAAM,GAAE,EAAE;aAU5B;IAGD,
|
|
1
|
+
{"version":3,"file":"AppRouter.d.ts","sourceRoot":"","sources":["../../core/AppRouter.js"],"names":[],"mappings":"AAEA;IAOE,2BADW,MAAM,IAAI,CACF;IAEnB,iCAAkB;IAElB,wCAAyB;IAEzB;;;;;;MAAoC;IAEpC,qCAEC;IAGD,4CAEC;IAGD;YADmB,MAAM,GAAE,EAAE;aAU5B;IAGD,0CAGC;IAGD,sCAEC;IAED;;;MAiBC;IAED,sBA0BC;IAMD;YAFkB,MAAM,GAAE,GAAG;aAuB5B;IAMD;YAFkB,MAAM,GAAE,GAAG;aAK5B;IAGD,wCAGC;IAGD,+BAEC;IAOD;;;;;;oBAoBC;IAED,4CASC;IAED,sCAGC;CACF;;mBAzLkB,aAAa"}
|
package/types/core/PubSub.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export class PubSub<T extends Record<string, unknown>> {
|
|
|
8
8
|
store: any;
|
|
9
9
|
callbackMap: Record<keyof T, Set<(val: unknown) => void>>;
|
|
10
10
|
read(prop: keyof T): any;
|
|
11
|
-
private
|
|
11
|
+
private __computedMap;
|
|
12
12
|
has(prop: string): any;
|
|
13
13
|
add(prop: string, val: unknown, rewrite?: boolean): void;
|
|
14
14
|
pub(prop: keyof T, val: unknown): void;
|
|
@@ -19,12 +19,12 @@ export class PubSub<T extends Record<string, unknown>> {
|
|
|
19
19
|
remove: () => void;
|
|
20
20
|
callback: (val: unknown) => void;
|
|
21
21
|
};
|
|
22
|
-
set uid(
|
|
22
|
+
set uid(uid: string | Symbol);
|
|
23
23
|
get uid(): string | Symbol;
|
|
24
24
|
#private;
|
|
25
25
|
}
|
|
26
26
|
export namespace PubSub {
|
|
27
|
-
|
|
27
|
+
let globalStore: Map<string | Symbol, PubSub<any>>;
|
|
28
28
|
}
|
|
29
29
|
export default PubSub;
|
|
30
30
|
//# sourceMappingURL=PubSub.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSub.d.ts","sourceRoot":"","sources":["../../core/PubSub.js"],"names":[],"mappings":"AAgBA;IAyBE,yDAEC;
|
|
1
|
+
{"version":3,"file":"PubSub.d.ts","sourceRoot":"","sources":["../../core/PubSub.js"],"names":[],"mappings":"AAgBA;IAyBE,yDAEC;IAiGD,uCAkBC;IA6DD,uEAHW,SAAS,MAAM,aAczB;IAGD,sBADY,SAAS,MAAM,QAG1B;IAOD,mBAJW,SAAS,MAAM,iCAMzB;IA3ND,oBADY,CAAC,EAWZ;IARG,WAA6B;IAO/B,uCADoC,OAAO,KAAK,IAAI,GACd;IAYxC,WADY,MAAM,CAAC,OA6BlB;IAXK,sBAAuB;IAc7B,uBAEC;IAOD,uBAHW,OAAO,2BASjB;IAMD,UAHW,MAAM,CAAC,OACP,OAAO,QAkBjB;IAGD,eAcC;IAGD,iBADY,CAAC,QAKZ;IAuBD,aADY,MAAM,CAAC,QAYlB;IAOD,UAJW,MAAM,CAAC,kBACD,OAAO,KAAK,IAAI;;wBAAhB,OAAO,KAAK,IAAI;MAwBhC;IAKD,8BAEC;IAED,2BAEC;;CAkCF;;qBAEU,IAAI,SAAS,MAAM,cAAS"}
|
package/types/core/Symbiote.d.ts
CHANGED
|
@@ -14,8 +14,8 @@ export class Symbiote<S> extends HTMLElement {
|
|
|
14
14
|
}): void;
|
|
15
15
|
static addRootStyles(styles: string | CSSStyleSheet): void;
|
|
16
16
|
static addShadowStyles(styles: string | CSSStyleSheet): void;
|
|
17
|
-
static set rootStyles(
|
|
18
|
-
static set shadowStyles(
|
|
17
|
+
static set rootStyles(styles: string | CSSStyleSheet);
|
|
18
|
+
static set shadowStyles(styles: string | CSSStyleSheet);
|
|
19
19
|
constructor();
|
|
20
20
|
get Symbiote(): typeof Symbiote;
|
|
21
21
|
initCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Symbiote.d.ts","sourceRoot":"","sources":["../../core/Symbiote.js"],"names":[],"mappings":";;AAgBA;IAsBE,cADW,mBAAmB,CACjB;IAkBb,wBAAgB;IA4JhB;;;MAkCC;IAgPD,sDAsBC;IAED,wBAKC;IAGD;YADmB,MAAM,GAAE,MAAM;aAQhC;IA6GD,6BADY,SAAS,aAAa,QAOjC;IAGD,+BADY,SAAS,aAAa,QAOjC;IAGD,
|
|
1
|
+
{"version":3,"file":"Symbiote.d.ts","sourceRoot":"","sources":["../../core/Symbiote.js"],"names":[],"mappings":";;AAgBA;IAsBE,cADW,mBAAmB,CACjB;IAkBb,wBAAgB;IA4JhB;;;MAkCC;IAgPD,sDAsBC;IAED,wBAKC;IAGD;YADmB,MAAM,GAAE,MAAM;aAQhC;IA6GD,6BADY,SAAS,aAAa,QAOjC;IAGD,+BADY,SAAS,aAAa,QAOjC;IAGD,sDAGC;IAGD,wDAGC;IA5gBD,cA6BC;IA9HD,gCAEC;IAED,qBAAiB;IACjB,uBAAmB;IAiBnB,kBAHW,SAAS,gBAAgB,0BAoEnC;IAMD,mGAFmD,IAAI,QAItD;IAKC,OADW,CAAC,CACoB;IAEhC;YADkB,MAAM;MACW;IAEnC,wBADoB,gBAAgB,gBAAW,SAAS,OAAO,KAAK,IAAI,EAC1C;IAE9B;YADkB,MAAM,GAAE,GAAG;MACC;IAC9B,kBAAwB;IAExB,qBAAwB;IAExB,sBAAyB;IAEzB,wBAA0B;IAE1B,0BAA6B;IAE7B,iBAAoB;IAEpB,6BAAgC;IAEhC,kBAAqB;IAErB,mBAAsB;IAEtB,4BAA8B;IAIhC,0BAMC;IAGD,yBAEC;IAGD,sBASC;IAGD,4BAKC;IAGD,6BAEC;IAiDD,gEAH4B,IAAI,wBAmB/B;IAGD,2BAGC;IAGD,uBAGC;IAQD,6EAGC;IAMD,UAHW,QAAQ,CAAC,CAAC,2BAOpB;IAGD,WAgBC;IAMD,YAHW,QAAQ,CAAC,CAAC,mCAcpB;IAMD,8BAgBC;IAdG,4CASE;IAqEF,0BAAwC;IAoB1C,uBAAyB;IAG3B,0BAEC;IAED,wBAAoB;IAEpB,6BA0BC;IA+CD,oEAeC;IAMD,yDAiBC;IAYD,0BAME;IAMF,0CAFW,GAAG,QAab;IAED,yBAGC;IAOD,8EAmBC;;CA+BF;;oBAppBmB,iBAAiB;mBAFlB,aAAa"}
|
package/types/core/css.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function css(parts: TemplateStringsArray, ...props: any[]): CSSStyleSheet;
|
|
2
2
|
export namespace css {
|
|
3
|
-
|
|
3
|
+
let processors: ((cssTxt: string) => string)[];
|
|
4
4
|
function clearProcessors(): void;
|
|
5
5
|
function useProcessor(...args: ((cssTxt: string) => string)[]): typeof css;
|
|
6
6
|
}
|