@alwatr/synapse 9.2.1 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/package.json +6 -6
package/dist/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* 📦 @alwatr/synapse v9.
|
|
1
|
+
/* 📦 @alwatr/synapse v9.3.0 */
|
|
2
2
|
import{createLogger as V}from"@alwatr/logger";var M=V("alwatr/synapse"),P=[];var U="synapse";function W(B=document.body){if(M.logMethod?.("bootstrapDirectives"),document.readyState==="loading"){M.incident?.("bootstrapDirectives","dom_not_ready","Delaying directive initialization until DOM is ready"),document.addEventListener("DOMContentLoaded",()=>{W(B)},{once:!0});return}for(let{selector:C,constructor:H}of P)try{let O=`${C}:not([${U}])`,F=B.querySelectorAll(O);if(F.length===0)continue;M.logOther?.(`Found ${F.length} new element(s) for directive "${C}"`),F.forEach((G)=>{G.setAttribute(U,""),new H(G,C)})}catch(O){M.error("bootstrapDirectives","directive_instantiation_error",O,{selector:C})}}function S(B){return M.logMethodArgs?.("@directive",B),function(C,H){if(H.kind!=="class")throw Error("@directive can only be used on classes");P.push({selector:B,constructor:C})}}import{delay as X}from"@alwatr/delay";import{createLogger as Y}from"@alwatr/logger";class Z{selector_;logger_;element_;cleanupTaskList__=[];constructor(B,C){this.logger_=Y(`directive:${C}`),this.logger_.logMethodArgs?.("new",{selector:C,element:B}),this.selector_=C,this.element_=B,(async()=>{await X.nextMicrotask(),await this.init_()})()}init_(){this.logger_.logMethod?.("init_"),this.update_?.()}dispatch_(B,C){this.logger_.logMethodArgs?.("dispatch_",{eventName:B,detail:C}),this.element_.dispatchEvent(new CustomEvent(B,{detail:C,bubbles:!0}))}onDestroy_(B){this.logger_.logMethod?.("onDestroy_"),this.cleanupTaskList__.push(B)}destroy_(){if(this.logger_.logMethod?.("destroy_"),this.cleanupTaskList__.length>0){for(let B of this.cleanupTaskList__)try{B.call(this)}catch(C){this.logger_.error("destroy_","error_in_destroy_callback",C)}this.cleanupTaskList__.length=0}this.element_?.remove(),this.element_=null}}function k(B,C=!0,H){return function(O,F){if(F.kind!=="accessor")throw Error('@query can only be used with the "accessor" keyword');let G=Symbol(`${String(F.name)}__`);return{get(){let J=this[G];if(J===void 0||C===!1){let Q=H??this.element_;J=this[G]=Q.querySelector(B)}return J}}}}function z(B,C=!0,H){return function(O,F){if(F.kind!=="accessor")throw Error('@queryAll can only be used with the "accessor" keyword');let G=Symbol(`${String(F.name)}__`);return{get(){let J=this[G];if(J===void 0||C===!1){let Q=H??this.element_;J=this[G]=Q.querySelectorAll(B)}return J}}}}export{z as queryAll,k as query,S as directive,W as bootstrapDirectives,Z as DirectiveBase};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=D842B0DE5E6144C864756E2164756E21
|
|
5
5
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
"/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DirectiveBase } from './directive-class.js';\n\n/**\n * A property decorator that queries the directive's element for a selector.\n * The query is performed once and the result is cached.\n *\n * @param selector The CSS selector to query for.\n * @param cache Whether to cache the result on first access. Defaults is true.\n * @param root Optional root element to perform the query on. Defaults to the directive's element.\n *\n * @example\n * ```ts\n * @directive('[my-directive]')\n * class MyDirective extends DirectiveBase {\n * @query('.my-element')\n * protected myElement!: HTMLDivElement | null;\n * }\n * ```\n */\nexport function query<T extends Element>(selector: string, cache = true, root?: ParentNode) {\n /**\n * The decorator function that receives the property accessor.\n * @param target The prototype of the class.\n * @param context The decorator context.\n * @return A property descriptor with a getter that performs the query and caches the result.\n */\n return function (\n _target: ClassAccessorDecoratorTarget<DirectiveBase, T | null>,\n context: ClassAccessorDecoratorContext<DirectiveBase, T | null>\n ): ClassAccessorDecoratorResult<DirectiveBase, T | null> {\n if (context.kind !== 'accessor') {\n throw new Error('@query can only be used with the \"accessor\" keyword');\n }\n\n const privateKey = Symbol(`${String(context.name)}__`);\n\n return {\n get() {\n let value = (this as any)[privateKey] as T | null | undefined;\n if (value === undefined || cache === false) {\n const parent = root ?? this.element_;\n value = (this as any)[privateKey] = parent.querySelector<T>(selector);\n }\n return value;\n }\n };\n };\n}\n\n/**\n * A property decorator that queries the directive's element for all selectors.\n * The queries are performed once and the result is cached.\n *\n * @param selector The CSS selector to query for.\n * @param cache Whether to cache the result on first access. Defaults is true.\n * @param root Optional root element to perform the query on. Defaults to the directive's element.\n *\n * @example\n * ```ts\n * @directive('[my-directive]')\n * class MyDirective extends DirectiveBase {\n * @queryAll('.my-elements')\n * protected myElements!: NodeListOf<HTMLDivElement>;\n * }\n * ```\n */\nexport function queryAll<T extends Element>(selector: string, cache = true, root?: ParentNode) {\n /**\n * The decorator function that receives the property accessor.\n * @param target The prototype of the class.\n * @param context The decorator context.\n * @return A property descriptor with a getter that performs the query and caches the result.\n */\n return function (\n _target: ClassAccessorDecoratorTarget<DirectiveBase, NodeListOf<T>>,\n context: ClassAccessorDecoratorContext<DirectiveBase, NodeListOf<T>>\n ): ClassAccessorDecoratorResult<DirectiveBase, NodeListOf<T>> {\n if (context.kind !== 'accessor') {\n throw new Error('@queryAll can only be used with the \"accessor\" keyword');\n }\n\n const privateKey = Symbol(`${String(context.name)}__`);\n\n return {\n get() {\n let value = (this as any)[privateKey] as NodeListOf<T> | undefined;\n if (value === undefined || cache === false) {\n const parent = root ?? this.element_;\n value = (this as any)[privateKey] = parent.querySelectorAll<T>(selector);\n }\n return value;\n }\n };\n };\n}\n"
|
|
10
10
|
],
|
|
11
11
|
"mappings": "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",
|
|
12
|
-
"debugId": "
|
|
12
|
+
"debugId": "D842B0DE5E6144C864756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwatr/synapse",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.3.0",
|
|
4
4
|
"description": "Connect your TypeScript classes to the DOM, declaratively.",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"author": "S. Ali Mihandoost <ali.mihandoost@gmail.com> (https://ali.mihandoost.com)",
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
},
|
|
22
22
|
"sideEffects": false,
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@alwatr/delay": "9.
|
|
25
|
-
"@alwatr/logger": "9.
|
|
24
|
+
"@alwatr/delay": "9.3.0",
|
|
25
|
+
"@alwatr/logger": "9.3.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@alwatr/nano-build": "9.
|
|
29
|
-
"@alwatr/
|
|
28
|
+
"@alwatr/nano-build": "9.3.0",
|
|
29
|
+
"@alwatr/standard": "9.3.0",
|
|
30
30
|
"@alwatr/type-helper": "9.1.1",
|
|
31
31
|
"@happy-dom/global-registrator": "^20.8.9",
|
|
32
32
|
"typescript": "^6.0.2"
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"web-components",
|
|
80
80
|
"web-development"
|
|
81
81
|
],
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "adf6d486667eefee42dfc87938e3af96f87c4738"
|
|
83
83
|
}
|