@jqhtml/core 2.3.2 → 2.3.4

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/boot.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * JQHTML Boot - Component Hydration System
3
+ *
4
+ * Bridges server-rendered HTML and client-side jqhtml components.
5
+ *
6
+ * Server output: <div class="_Component_Init" data-component-init-name="User_Card" data-component-args='{"id":1}'></div>
7
+ * After boot(): <div class="User_Card Component">...rendered template...</div>
8
+ *
9
+ * Usage:
10
+ * await jqhtml.boot(); // Hydrate all placeholders, wait for ready
11
+ * jqhtml.boot($('#container')); // Hydrate within scope
12
+ */
13
+ /**
14
+ * Hydrate all _Component_Init placeholders within a scope.
15
+ *
16
+ * @param scope - jQuery object, HTMLElement, or undefined (defaults to body)
17
+ * @returns Promise that resolves when all components (including nested) are ready
18
+ */
19
+ export declare function boot(scope?: any): Promise<void[]>;
20
+ //# sourceMappingURL=boot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAiDjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1852,6 +1852,14 @@ class Jqhtml_Component {
1852
1852
  * @private
1853
1853
  */
1854
1854
  async _wait_for_children_ready() {
1855
+ // Server-rendered components (created via jqhtml.boot()) may have children
1856
+ // that were hydrated asynchronously during the 'render' event callback.
1857
+ // Those children couldn't register via _find_dom_parent() because they were
1858
+ // created after the parent's lifecycle started. Force DOM traversal fallback
1859
+ // to reliably discover all children, including boot-hydrated ones.
1860
+ if (this.args._inner_html !== undefined) {
1861
+ this._use_dom_fallback = true;
1862
+ }
1855
1863
  const children = this._get_dom_children();
1856
1864
  if (children.length === 0) {
1857
1865
  return; // No children, nothing to wait for
@@ -2957,6 +2965,136 @@ function escape_html(str) {
2957
2965
  return div.innerHTML;
2958
2966
  }
2959
2967
 
2968
+ /**
2969
+ * JQHTML Boot - Component Hydration System
2970
+ *
2971
+ * Bridges server-rendered HTML and client-side jqhtml components.
2972
+ *
2973
+ * Server output: <div class="_Component_Init" data-component-init-name="User_Card" data-component-args='{"id":1}'></div>
2974
+ * After boot(): <div class="User_Card Component">...rendered template...</div>
2975
+ *
2976
+ * Usage:
2977
+ * await jqhtml.boot(); // Hydrate all placeholders, wait for ready
2978
+ * jqhtml.boot($('#container')); // Hydrate within scope
2979
+ */
2980
+ /**
2981
+ * Hydrate all _Component_Init placeholders within a scope.
2982
+ *
2983
+ * @param scope - jQuery object, HTMLElement, or undefined (defaults to body)
2984
+ * @returns Promise that resolves when all components (including nested) are ready
2985
+ */
2986
+ function boot(scope) {
2987
+ const jQ = typeof jQuery !== 'undefined' ? jQuery : $;
2988
+ if (!scope) {
2989
+ scope = jQ('body');
2990
+ }
2991
+ else if (!(scope instanceof jQ)) {
2992
+ scope = jQ(scope);
2993
+ }
2994
+ const readyPromises = [];
2995
+ // Find top-level placeholders only (skip those nested inside other placeholders)
2996
+ scope.find('._Component_Init').each(function () {
2997
+ const $element = jQ(this);
2998
+ // Skip if removed from DOM
2999
+ if (!document.contains($element[0])) {
3000
+ return;
3001
+ }
3002
+ // Skip nested placeholders - they'll be hydrated by parent's render callback
3003
+ let parent = $element[0].parentElement;
3004
+ while (parent) {
3005
+ if (parent.classList.contains('_Component_Init')) {
3006
+ return;
3007
+ }
3008
+ parent = parent.parentElement;
3009
+ }
3010
+ // Hydrate this placeholder
3011
+ const component = hydrateElement($element);
3012
+ if (!component)
3013
+ return;
3014
+ // On render, recursively hydrate any nested placeholders
3015
+ component.on('render', function () {
3016
+ hydrateNested(component.$, jQ);
3017
+ });
3018
+ // Collect ready promise - parent.ready() waits for all children via _wait_for_children_ready()
3019
+ readyPromises.push(component.ready());
3020
+ });
3021
+ // Fire jqhtml:ready event when all top-level components are ready
3022
+ const result = Promise.all(readyPromises);
3023
+ result.then(() => {
3024
+ document.dispatchEvent(new CustomEvent('jqhtml:ready'));
3025
+ });
3026
+ return result;
3027
+ }
3028
+ /**
3029
+ * Hydrate nested _Component_Init placeholders within a component's DOM.
3030
+ * Called from parent's 'render' event.
3031
+ */
3032
+ function hydrateNested($scope, jQ) {
3033
+ $scope.find('._Component_Init').each(function () {
3034
+ const $element = jQ(this);
3035
+ if (!document.contains($element[0])) {
3036
+ return;
3037
+ }
3038
+ // Skip if nested inside another placeholder
3039
+ let parent = $element[0].parentElement;
3040
+ while (parent && parent !== $scope[0]) {
3041
+ if (parent.classList.contains('_Component_Init')) {
3042
+ return;
3043
+ }
3044
+ parent = parent.parentElement;
3045
+ }
3046
+ const component = hydrateElement($element);
3047
+ if (!component)
3048
+ return;
3049
+ // Recursively handle deeper nesting
3050
+ component.on('render', function () {
3051
+ hydrateNested(component.$, jQ);
3052
+ });
3053
+ });
3054
+ }
3055
+ /**
3056
+ * Hydrate a single _Component_Init element into a live component.
3057
+ */
3058
+ function hydrateElement($element, jQ) {
3059
+ const componentName = $element.attr('data-component-init-name');
3060
+ if (!componentName)
3061
+ return null;
3062
+ // Parse args
3063
+ const argsString = $element.attr('data-component-args');
3064
+ let args = {};
3065
+ if (argsString) {
3066
+ try {
3067
+ args = JSON.parse(argsString);
3068
+ }
3069
+ catch (e) {
3070
+ console.error(`[jqhtml.boot] Failed to parse args for ${componentName}:`, e);
3071
+ }
3072
+ }
3073
+ // Strip data- prefix from args if present
3074
+ const filteredArgs = {};
3075
+ for (const [key, value] of Object.entries(args)) {
3076
+ filteredArgs[key.startsWith('data-') ? key.substring(5) : key] = value;
3077
+ }
3078
+ // Capture innerHTML for content() and mark as boot-created
3079
+ filteredArgs._inner_html = $element.html();
3080
+ filteredArgs._component_name = componentName;
3081
+ // Cleanup placeholder
3082
+ $element.removeAttr('data-component-init-name');
3083
+ $element.removeAttr('data-component-args');
3084
+ $element.removeData('component-init-name');
3085
+ $element.removeData('component-args');
3086
+ $element.removeClass('_Component_Init');
3087
+ $element.empty();
3088
+ // Create component
3089
+ try {
3090
+ return $element.component(componentName, filteredArgs).component();
3091
+ }
3092
+ catch (error) {
3093
+ console.error(`[jqhtml.boot] Failed to create ${componentName}:`, error);
3094
+ return null;
3095
+ }
3096
+ }
3097
+
2960
3098
  /**
2961
3099
  * JQHTML Debug Overlay
2962
3100
  *
@@ -4237,7 +4375,7 @@ function init(jQuery) {
4237
4375
  }
4238
4376
  }
4239
4377
  // Version - will be replaced during build with actual version from package.json
4240
- const version = '2.2.222';
4378
+ const version = '2.3.4';
4241
4379
  // Default export with all functionality
4242
4380
  const jqhtml = {
4243
4381
  // Core
@@ -4329,7 +4467,9 @@ const jqhtml = {
4329
4467
  // Cache key setter - enables component caching via local storage
4330
4468
  set_cache_key(cache_key) {
4331
4469
  Jqhtml_Local_Storage.set_cache_key(cache_key);
4332
- }
4470
+ },
4471
+ // Boot - hydrate server-rendered component placeholders
4472
+ boot
4333
4473
  };
4334
4474
  // Auto-register on window for browser environments
4335
4475
  // This is REQUIRED for compiled templates which use window.jqhtml.register_template()
@@ -4354,6 +4494,7 @@ exports.Jqhtml_Local_Storage = Jqhtml_Local_Storage;
4354
4494
  exports.LifecycleManager = LifecycleManager;
4355
4495
  exports.Load_Coordinator = Load_Coordinator;
4356
4496
  exports.applyDebugDelay = applyDebugDelay;
4497
+ exports.boot = boot;
4357
4498
  exports.create_component = create_component;
4358
4499
  exports.default = jqhtml;
4359
4500
  exports.devWarn = devWarn;