@alwatr/action 9.11.2 → 9.12.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 +3 -3
package/dist/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* 📦 @alwatr/action v9.
|
|
1
|
+
/* 📦 @alwatr/action v9.12.0 */
|
|
2
2
|
import{createLogger as S}from"@alwatr/logger";import{createEventSignal as V}from"@alwatr/signal";var J=S("alwatr-action"),Y=V({name:"alwatr-action"});var H=new Map,N=new Map;H.set("prevent",(M)=>{return M.preventDefault(),!0});H.set("stop",(M)=>{return M.stopPropagation(),!0});H.set("validate",function(){let M=this.element_ instanceof HTMLFormElement?this.element_:this.element_.closest("form");if(!M)return this.logger_.accident("validate_modifier","no_form_found",{element:this.element_}),!1;return M.checkValidity()});N.set("$value",function(){return"value"in this.element_?this.element_.value:null});N.set("$formdata",function(){let M=this.element_ instanceof HTMLFormElement?this.element_:this.element_.closest("form");return M?Object.fromEntries(new FormData(M).entries()):null});function k(M,q){return J.logMethodArgs?.("onAction",{actionId:M}),Y.subscribe((G)=>{if(G.actionId===M)J.logMethodArgs?.("onAction.invoke",{actionId:M,payload:G.actionPayload}),q(G.actionPayload)})}function X(M,q){J.logMethodArgs?.("dispatchAction",{actionId:M,actionPayload:q}),Y.dispatch({actionId:M,actionPayload:q})}function w(M,q){if(J.logMethodArgs?.("registerModifier",{name:M}),H.has(M))J.accident("registerModifier","modifier_already_registered",{name:M});H.set(M,q)}function D(M,q){if(J.logMethodArgs?.("registerPayloadResolver",{name:M}),N.has(M))J.accident("registerPayloadResolver","payload_resolver_already_registered",{name:M});N.set(M,q)}import{lazyDirective as C,Directive as L}from"@alwatr/directive";var z=/^([a-z0-9.-]+)->([a-z0-9-]+)(?::(.+))?$/;class F extends L{actionContext_;init_(){this.logger_.logMethodArgs?.("init_",{attributeValue:this.attributeValue});let M=this.attributeValue.trim().match(z);if(!M){this.logger_.accident("init_","invalid_syntax",{attributeValue:this.attributeValue});return}let[q,...G]=M[1].split("."),Q=M[2],W=M[3];if(!q){this.logger_.accident("init_","invalid_syntax",{attributeValue:this.attributeValue});return}let K=new Set;for(let U of G){if(!H.has(U)&&U!=="once"&&U!=="passive"){this.logger_.accident("init_","invalid_modifier",{attributeValue:this.attributeValue,modifier:U});return}K.add(U)}if(K.has("prevent")&&K.has("passive"))this.logger_.accident("init_","conflicting_modifiers_prevent_passive",{attributeValue:this.attributeValue});this.actionContext_={eventType:q,modifiers:K,actionId:Q,payload:W};let Z={once:K.has("once"),passive:K.has("passive")&&!K.has("prevent")},B=this.dispatch_.bind(this);this.element_.addEventListener(q,B,Z),this.addDestroyHook(()=>{this.element_.removeEventListener(q,B,Z)})}dispatch_(M){this.logger_.logMethodArgs?.("dispatch_",{eventType:M.type,actionId:this.actionContext_?.actionId});let q=this.actionContext_;for(let Q of q.modifiers){let W=H.get(Q);if(W&&W.call(this,M)===!1)return}let G=q.payload;if(G){let Q=N.get(G);if(Q)G=Q.call(this,M)}X(q.actionId,G)}}var u=C("on-action",F);import{Directive as j,lazyDirective as E}from"@alwatr/directive";class O extends j{init_(){let M=this.attributeValue.trim();if(this.logger_.logMethodArgs?.("init_",{pageId:M}),!M){this.logger_.accident("init_","empty_page_id");return}X("page-ready",M),this.destroy()}}var h=E("page-id",O);export{D as registerPayloadResolver,h as registerPageIdDirective,w as registerModifier,u as registerActionDirective,k as onAction,X as dispatchAction,O as PageIdDirective,F as ActionDirective};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=4319B6193869E0EC64756E2164756E21
|
|
5
5
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
"import {Directive, lazyDirective} from '@alwatr/directive';\nimport {dispatchAction} from './method.js';\n\n// ─── Directive Class ──────────────────────────────────────────────────────────\n\n/**\n * Directive that announces the current page identity as an action signal.\n *\n * Activated by the `page-id` HTML attribute. On bootstrap the directive reads\n * the attribute value as the page identifier, dispatches a `'page-ready'`\n * action with that value as the payload, and immediately self-destructs — no\n * persistent listener is registered.\n *\n * Typical placement is on the `<body>` or the top-level page container so that\n * any part of the application can react to route changes by subscribing to the\n * `'page-ready'` action via `onAction`.\n *\n * @example\n * ```html\n * <!-- Dispatches dispatchAction('page-ready', 'home') on bootstrap -->\n * <body page-id=\"home\">…</body>\n * ```\n */\nexport class PageIdDirective extends Directive {\n /**\n * Reads the `page-id` attribute value, dispatches `'page-ready'` with it as\n * the payload, then destroys the directive.\n *\n * Logs an accident and returns early if the attribute value is empty.\n */\n protected override init_(): void {\n const pageId = this.attributeValue.trim();\n this.logger_.logMethodArgs?.('init_', {pageId});\n\n if (!pageId) {\n this.logger_.accident('init_', 'empty_page_id');\n return;\n }\n\n dispatchAction('page-ready', pageId);\n this.destroy();\n }\n}\n\n// ─── Lazy Registration ────────────────────────────────────────────────────────\n\n/**\n * Registers `PageIdDirective` under the `page-id` attribute name.\n *\n * This is a **lazy** registration: calling this function is the only way to\n * opt-in to `page-id` support. If it is never called, the entire directive\n * module is tree-shaken from the bundle.\n *\n * Call it once, before `bootstrapDirectives()`, at your application entry point.\n *\n * @example\n * ```ts\n * import {registerPageIdDirective, onAction} from '@alwatr/action';\n * import {bootstrapDirectives} from '@alwatr/directive';\n *\n * registerPageIdDirective();\n * bootstrapDirectives();\n *\n * // React to every page change\n * onAction('page-ready', (pageId) => {\n * console.log('navigated to:', pageId); // e.g. 'home', 'about', 'product-detail'\n * });\n * ```\n *\n * ```html\n * <body page-id=\"home\">…</body>\n * ```\n */\nexport const registerPageIdDirective = lazyDirective('page-id', PageIdDirective);\n"
|
|
10
10
|
],
|
|
11
11
|
"mappings": "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",
|
|
12
|
-
"debugId": "
|
|
12
|
+
"debugId": "4319B6193869E0EC64756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwatr/action",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.12.0",
|
|
4
4
|
"description": "Declarative DOM action-dispatch — bridge HTML attributes to typed signal handlers.",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"author": "S. Ali Mihandoost <ali.mihandoost@gmail.com> (https://ali.mihandoost.com)",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@alwatr/directive": "9.11.2",
|
|
25
25
|
"@alwatr/logger": "9.11.2",
|
|
26
|
-
"@alwatr/signal": "9.
|
|
26
|
+
"@alwatr/signal": "9.12.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@alwatr/nano-build": "9.10.1",
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"vanilla-js",
|
|
82
82
|
"web-development"
|
|
83
83
|
],
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "b4ca873ebd15cd2e25b34273d76febfd75267b62"
|
|
85
85
|
}
|