@servlyadmin/runtime-core 0.1.24 → 0.1.26

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/index.cjs CHANGED
@@ -19524,8 +19524,13 @@ function resolveFunctionBinding(binding, context) {
19524
19524
  }
19525
19525
  function attachEventHandlers(domElement, element, eventHandlers, context, elementState, isRootElement = false, state) {
19526
19526
  const elementId = element.i;
19527
+ const isDebug = true;
19528
+ if (isDebug) {
19529
+ console.log(`[Servly:attachEventHandlers] Element: ${elementId}, isRoot: ${isRootElement}, renderStackSize: ${state?.renderingStack?.size}`);
19530
+ }
19527
19531
  if (eventHandlers && eventHandlers[elementId]) {
19528
19532
  const handlers = eventHandlers[elementId];
19533
+ if (isDebug) console.log(`[Servly:attachEventHandlers] Explicit handlers for ${elementId}:`, Object.keys(handlers));
19529
19534
  for (const [eventName, handler] of Object.entries(handlers)) {
19530
19535
  const domEventName = eventName.replace(/^on/, "").toLowerCase();
19531
19536
  elementState.eventListeners.set(domEventName, handler);
@@ -19537,6 +19542,7 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
19537
19542
  const handlerConfig = config[eventPropName];
19538
19543
  if (handlerConfig && handlerConfig.plugins && handlerConfig.plugins.length > 0) {
19539
19544
  const domEventName = toDomEventName(eventPropName);
19545
+ if (isDebug) console.log(`[Servly:attachEventHandlers] Servly plugin handler ${eventPropName} on ${elementId}`);
19540
19546
  if (!elementState.eventListeners.has(domEventName)) {
19541
19547
  if (state?.eventSystem) {
19542
19548
  const handler = state.eventSystem.createHandler(elementId, handlerConfig, context);
@@ -19561,6 +19567,7 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
19561
19567
  const handler = resolveFunctionBinding(binding, context);
19562
19568
  if (handler) {
19563
19569
  const domEventName = propName.slice(2).toLowerCase();
19570
+ if (isDebug) console.log(`[Servly:attachEventHandlers] Binding handler ${propName} on ${elementId}`);
19564
19571
  if (!elementState.eventListeners.has(domEventName)) {
19565
19572
  elementState.eventListeners.set(domEventName, handler);
19566
19573
  domElement.addEventListener(domEventName, handler);
@@ -19570,16 +19577,21 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
19570
19577
  }
19571
19578
  }
19572
19579
  if (isRootElement && context.props && state?.renderingStack?.size === 0) {
19573
- for (const [propName, value] of Object.entries(context.props)) {
19574
- if (propName.startsWith("on") && propName.length > 2 && typeof value === "function") {
19575
- const domEventName = propName.slice(2).toLowerCase();
19576
- if (!elementState.eventListeners.has(domEventName)) {
19577
- const handler = value;
19578
- elementState.eventListeners.set(domEventName, handler);
19579
- domElement.addEventListener(domEventName, handler);
19580
- }
19580
+ const contextFunctionProps = Object.entries(context.props).filter(([k, v]) => k.startsWith("on") && typeof v === "function");
19581
+ if (isDebug && contextFunctionProps.length > 0) {
19582
+ console.log(`[Servly:attachEventHandlers] ROOT element ${elementId} attaching context props:`, contextFunctionProps.map(([k]) => k));
19583
+ }
19584
+ for (const [propName, value] of contextFunctionProps) {
19585
+ const domEventName = propName.slice(2).toLowerCase();
19586
+ if (!elementState.eventListeners.has(domEventName)) {
19587
+ const handler = value;
19588
+ elementState.eventListeners.set(domEventName, handler);
19589
+ domElement.addEventListener(domEventName, handler);
19590
+ if (isDebug) console.log(`[Servly:attachEventHandlers] Attached ${propName} to root element ${elementId}`);
19581
19591
  }
19582
19592
  }
19593
+ } else if (isDebug && isRootElement) {
19594
+ console.log(`[Servly:attachEventHandlers] ROOT element ${elementId} NOT attaching context props (renderStackSize=${state?.renderingStack?.size})`);
19583
19595
  }
19584
19596
  }
19585
19597
  function detachEventHandlers(elementState) {
package/dist/index.js CHANGED
@@ -2728,8 +2728,13 @@ function resolveFunctionBinding(binding, context) {
2728
2728
  }
2729
2729
  function attachEventHandlers(domElement, element, eventHandlers, context, elementState, isRootElement = false, state) {
2730
2730
  const elementId = element.i;
2731
+ const isDebug = true;
2732
+ if (isDebug) {
2733
+ console.log(`[Servly:attachEventHandlers] Element: ${elementId}, isRoot: ${isRootElement}, renderStackSize: ${state?.renderingStack?.size}`);
2734
+ }
2731
2735
  if (eventHandlers && eventHandlers[elementId]) {
2732
2736
  const handlers = eventHandlers[elementId];
2737
+ if (isDebug) console.log(`[Servly:attachEventHandlers] Explicit handlers for ${elementId}:`, Object.keys(handlers));
2733
2738
  for (const [eventName, handler] of Object.entries(handlers)) {
2734
2739
  const domEventName = eventName.replace(/^on/, "").toLowerCase();
2735
2740
  elementState.eventListeners.set(domEventName, handler);
@@ -2741,6 +2746,7 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
2741
2746
  const handlerConfig = config[eventPropName];
2742
2747
  if (handlerConfig && handlerConfig.plugins && handlerConfig.plugins.length > 0) {
2743
2748
  const domEventName = toDomEventName(eventPropName);
2749
+ if (isDebug) console.log(`[Servly:attachEventHandlers] Servly plugin handler ${eventPropName} on ${elementId}`);
2744
2750
  if (!elementState.eventListeners.has(domEventName)) {
2745
2751
  if (state?.eventSystem) {
2746
2752
  const handler = state.eventSystem.createHandler(elementId, handlerConfig, context);
@@ -2765,6 +2771,7 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
2765
2771
  const handler = resolveFunctionBinding(binding, context);
2766
2772
  if (handler) {
2767
2773
  const domEventName = propName.slice(2).toLowerCase();
2774
+ if (isDebug) console.log(`[Servly:attachEventHandlers] Binding handler ${propName} on ${elementId}`);
2768
2775
  if (!elementState.eventListeners.has(domEventName)) {
2769
2776
  elementState.eventListeners.set(domEventName, handler);
2770
2777
  domElement.addEventListener(domEventName, handler);
@@ -2774,16 +2781,21 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
2774
2781
  }
2775
2782
  }
2776
2783
  if (isRootElement && context.props && state?.renderingStack?.size === 0) {
2777
- for (const [propName, value] of Object.entries(context.props)) {
2778
- if (propName.startsWith("on") && propName.length > 2 && typeof value === "function") {
2779
- const domEventName = propName.slice(2).toLowerCase();
2780
- if (!elementState.eventListeners.has(domEventName)) {
2781
- const handler = value;
2782
- elementState.eventListeners.set(domEventName, handler);
2783
- domElement.addEventListener(domEventName, handler);
2784
- }
2784
+ const contextFunctionProps = Object.entries(context.props).filter(([k, v]) => k.startsWith("on") && typeof v === "function");
2785
+ if (isDebug && contextFunctionProps.length > 0) {
2786
+ console.log(`[Servly:attachEventHandlers] ROOT element ${elementId} attaching context props:`, contextFunctionProps.map(([k]) => k));
2787
+ }
2788
+ for (const [propName, value] of contextFunctionProps) {
2789
+ const domEventName = propName.slice(2).toLowerCase();
2790
+ if (!elementState.eventListeners.has(domEventName)) {
2791
+ const handler = value;
2792
+ elementState.eventListeners.set(domEventName, handler);
2793
+ domElement.addEventListener(domEventName, handler);
2794
+ if (isDebug) console.log(`[Servly:attachEventHandlers] Attached ${propName} to root element ${elementId}`);
2785
2795
  }
2786
2796
  }
2797
+ } else if (isDebug && isRootElement) {
2798
+ console.log(`[Servly:attachEventHandlers] ROOT element ${elementId} NOT attaching context props (renderStackSize=${state?.renderingStack?.size})`);
2787
2799
  }
2788
2800
  }
2789
2801
  function detachEventHandlers(elementState) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servlyadmin/runtime-core",
3
- "version": "0.1.24",
3
+ "version": "0.1.26",
4
4
  "description": "Framework-agnostic core renderer for Servly components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",