@jqhtml/core 2.3.54 → 2.3.59
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/README.md +3 -1
- package/dist/boot.d.ts +0 -0
- package/dist/boot.d.ts.map +0 -0
- package/dist/boot.js +130 -0
- package/dist/boot.js.map +1 -0
- package/dist/cache-key-serializer.d.ts +0 -0
- package/dist/cache-key-serializer.d.ts.map +0 -0
- package/dist/cache-key-serializer.js +140 -0
- package/dist/cache-key-serializer.js.map +1 -0
- package/dist/component-cache.d.ts +0 -0
- package/dist/component-cache.d.ts.map +0 -0
- package/dist/component-cache.js +270 -0
- package/dist/component-cache.js.map +1 -0
- package/dist/component-events.d.ts +0 -0
- package/dist/component-events.d.ts.map +0 -0
- package/dist/component-events.js +141 -0
- package/dist/component-events.js.map +1 -0
- package/dist/component-queue.d.ts +0 -0
- package/dist/component-queue.d.ts.map +0 -0
- package/dist/component-queue.js +118 -0
- package/dist/component-queue.js.map +1 -0
- package/dist/component-registry.d.ts +0 -0
- package/dist/component-registry.d.ts.map +0 -0
- package/dist/component-registry.js +298 -0
- package/dist/component-registry.js.map +1 -0
- package/dist/component.d.ts +8 -0
- package/dist/component.d.ts.map +1 -1
- package/dist/component.js +1892 -0
- package/dist/component.js.map +1 -0
- package/dist/config.d.ts +0 -0
- package/dist/config.d.ts.map +0 -0
- package/dist/config.js +64 -0
- package/dist/config.js.map +1 -0
- package/dist/data-proxy.d.ts +0 -0
- package/dist/data-proxy.d.ts.map +0 -0
- package/dist/data-proxy.js +223 -0
- package/dist/data-proxy.js.map +1 -0
- package/dist/debug-entry.d.ts +0 -0
- package/dist/debug-entry.d.ts.map +0 -0
- package/dist/debug-entry.js +8 -0
- package/dist/debug-entry.js.map +1 -0
- package/dist/debug.d.ts +0 -0
- package/dist/debug.d.ts.map +0 -0
- package/dist/debug.js +203 -0
- package/dist/debug.js.map +1 -0
- package/dist/index.cjs +36 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -0
- package/dist/index.d.ts.map +0 -0
- package/dist/index.js +36 -8
- package/dist/index.js.map +1 -1
- package/dist/instruction-processor.d.ts +0 -0
- package/dist/instruction-processor.d.ts.map +1 -1
- package/dist/instruction-processor.js +563 -0
- package/dist/instruction-processor.js.map +1 -0
- package/dist/jqhtml-core.esm.js +37 -9
- package/dist/jqhtml-core.esm.js.map +1 -1
- package/dist/jqhtml-debug.esm.js +0 -0
- package/dist/jqhtml-debug.esm.js.map +0 -0
- package/dist/jquery-plugin.d.ts +0 -0
- package/dist/jquery-plugin.d.ts.map +0 -0
- package/dist/jquery-plugin.js +472 -0
- package/dist/jquery-plugin.js.map +1 -0
- package/dist/lifecycle-manager.d.ts +0 -0
- package/dist/lifecycle-manager.d.ts.map +0 -0
- package/dist/lifecycle-manager.js +201 -0
- package/dist/lifecycle-manager.js.map +1 -0
- package/dist/load-coordinator.d.ts +0 -0
- package/dist/load-coordinator.d.ts.map +1 -1
- package/dist/load-coordinator.js +309 -0
- package/dist/load-coordinator.js.map +1 -0
- package/dist/local-storage.d.ts +0 -0
- package/dist/local-storage.d.ts.map +0 -0
- package/dist/local-storage.js +699 -0
- package/dist/local-storage.js.map +1 -0
- package/dist/preload-data.d.ts +0 -0
- package/dist/preload-data.d.ts.map +0 -0
- package/dist/preload-data.js +136 -0
- package/dist/preload-data.js.map +1 -0
- package/dist/template-renderer.d.ts +0 -0
- package/dist/template-renderer.d.ts.map +0 -0
- package/dist/template-renderer.js +278 -0
- package/dist/template-renderer.js.map +1 -0
- package/dist/viewport.d.ts +0 -0
- package/dist/viewport.d.ts.map +0 -0
- package/dist/viewport.js +69 -0
- package/dist/viewport.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../src/local-storage.ts"],"names":[],"mappings":"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"}
|
package/dist/preload-data.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JQHTML SSR Preload Data System
|
|
3
|
+
*
|
|
4
|
+
* Captures component data during SSR rendering and replays it on the client
|
|
5
|
+
* to skip redundant on_load() calls during hydration.
|
|
6
|
+
*
|
|
7
|
+
* Server-side: start_data_capture() → render → get_captured_data()
|
|
8
|
+
* Client-side: set_preload_data(entries) → components boot with preloaded data → clear_preload_data()
|
|
9
|
+
*/
|
|
10
|
+
import { Load_Coordinator } from './load-coordinator.js';
|
|
11
|
+
// --- Capture (Server Side) ---
|
|
12
|
+
let _capture_enabled = false;
|
|
13
|
+
let _capture_buffer = [];
|
|
14
|
+
// Track captured keys to avoid duplicates from Load Coordinator followers
|
|
15
|
+
let _captured_keys = new Set();
|
|
16
|
+
/**
|
|
17
|
+
* Enable data capture mode. After this call, every component that completes
|
|
18
|
+
* on_load() has its final this.data recorded.
|
|
19
|
+
*
|
|
20
|
+
* Idempotent — calling twice is fine.
|
|
21
|
+
*/
|
|
22
|
+
export function start_data_capture() {
|
|
23
|
+
_capture_enabled = true;
|
|
24
|
+
_capture_buffer = [];
|
|
25
|
+
_captured_keys.clear();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Record a component's data after on_load() completes.
|
|
29
|
+
* Called internally from _apply_load_result().
|
|
30
|
+
*
|
|
31
|
+
* @param component_name - Component name
|
|
32
|
+
* @param args - Component args at time of on_load()
|
|
33
|
+
* @param data - this.data after on_load() completed
|
|
34
|
+
* @param cache_key - The cache key for deduplication (null = always capture)
|
|
35
|
+
*/
|
|
36
|
+
export function capture_component_data(component_name, args, data, cache_key) {
|
|
37
|
+
if (!_capture_enabled)
|
|
38
|
+
return;
|
|
39
|
+
// Deduplicate: if Load Coordinator already captured this key, skip
|
|
40
|
+
if (cache_key !== null) {
|
|
41
|
+
if (_captured_keys.has(cache_key))
|
|
42
|
+
return;
|
|
43
|
+
_captured_keys.add(cache_key);
|
|
44
|
+
}
|
|
45
|
+
// Deep clone args and data to plain objects (no proxies, no class instances)
|
|
46
|
+
try {
|
|
47
|
+
const cloned_args = JSON.parse(JSON.stringify(args));
|
|
48
|
+
const cloned_data = JSON.parse(JSON.stringify(data));
|
|
49
|
+
_capture_buffer.push({
|
|
50
|
+
component: component_name,
|
|
51
|
+
args: cloned_args,
|
|
52
|
+
data: cloned_data,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// Non-serializable data — skip capture for this component
|
|
57
|
+
if (typeof console !== 'undefined') {
|
|
58
|
+
console.warn(`[JQHTML SSR Capture] Failed to serialize data for ${component_name}:`, error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Returns all captured component data and resets the capture buffer.
|
|
64
|
+
* One-shot: calling clears the buffer.
|
|
65
|
+
*/
|
|
66
|
+
export function get_captured_data() {
|
|
67
|
+
const result = _capture_buffer;
|
|
68
|
+
_capture_buffer = [];
|
|
69
|
+
_captured_keys.clear();
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check if data capture is currently enabled.
|
|
74
|
+
*/
|
|
75
|
+
export function is_capture_enabled() {
|
|
76
|
+
return _capture_enabled;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Stop data capture and clear all state.
|
|
80
|
+
*/
|
|
81
|
+
export function stop_data_capture() {
|
|
82
|
+
_capture_enabled = false;
|
|
83
|
+
_capture_buffer = [];
|
|
84
|
+
_captured_keys.clear();
|
|
85
|
+
}
|
|
86
|
+
// --- Preload (Client Side) ---
|
|
87
|
+
let _preload_cache = new Map();
|
|
88
|
+
/**
|
|
89
|
+
* Seed the preload cache with SSR-captured data.
|
|
90
|
+
* Must be called before any component _load() runs.
|
|
91
|
+
*
|
|
92
|
+
* @param entries - Array of { component, args, data } entries from get_captured_data()
|
|
93
|
+
*/
|
|
94
|
+
export function set_preload_data(entries) {
|
|
95
|
+
if (!entries || entries.length === 0)
|
|
96
|
+
return;
|
|
97
|
+
_preload_cache.clear();
|
|
98
|
+
for (const entry of entries) {
|
|
99
|
+
// Generate key using the same algorithm as Load Coordinator
|
|
100
|
+
const result = Load_Coordinator.generate_invocation_key(entry.component, entry.args);
|
|
101
|
+
if (result.key !== null) {
|
|
102
|
+
_preload_cache.set(result.key, entry.data);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Check if preloaded data exists for a given cache key.
|
|
108
|
+
* If found, returns the data and removes the entry (one-shot).
|
|
109
|
+
*
|
|
110
|
+
* @param cache_key - The cache key (same format as Load Coordinator)
|
|
111
|
+
* @returns The preloaded data, or null if no match
|
|
112
|
+
*/
|
|
113
|
+
export function consume_preload_data(cache_key) {
|
|
114
|
+
if (_preload_cache.size === 0)
|
|
115
|
+
return null;
|
|
116
|
+
const data = _preload_cache.get(cache_key);
|
|
117
|
+
if (data !== undefined) {
|
|
118
|
+
_preload_cache.delete(cache_key);
|
|
119
|
+
return data;
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Clear any remaining unconsumed preload entries.
|
|
125
|
+
* Call after initial page hydration is complete.
|
|
126
|
+
*/
|
|
127
|
+
export function clear_preload_data() {
|
|
128
|
+
_preload_cache.clear();
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Check if any preload data is available (for fast early exit in _load).
|
|
132
|
+
*/
|
|
133
|
+
export function has_preload_data() {
|
|
134
|
+
return _preload_cache.size > 0;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=preload-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preload-data.js","sourceRoot":"","sources":["../src/preload-data.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JQHTML v2 Template Renderer
|
|
3
|
+
*
|
|
4
|
+
* Connects compiled templates to components
|
|
5
|
+
* Processes instruction arrays and handles bindings
|
|
6
|
+
*/
|
|
7
|
+
import { process_instructions } from './instruction-processor.js';
|
|
8
|
+
import { get_template_by_class } from './component-registry.js';
|
|
9
|
+
import { get_template } from './component-registry.js';
|
|
10
|
+
import { Jqhtml_Component as BaseComponent } from './component.js';
|
|
11
|
+
/**
|
|
12
|
+
* Process slot-only template inheritance
|
|
13
|
+
*
|
|
14
|
+
* When a component's template returns {_slots: {...}}, walk the prototype
|
|
15
|
+
* chain to find a parent template and invoke it with the child's slots as content.
|
|
16
|
+
*
|
|
17
|
+
* @param component The component instance
|
|
18
|
+
* @param childSlots The slots object from the child template
|
|
19
|
+
* @returns [instructions, context] tuple or null if no parent found
|
|
20
|
+
*/
|
|
21
|
+
async function process_slot_inheritance(component, childSlots) {
|
|
22
|
+
// Walk the prototype chain to find parent class with template
|
|
23
|
+
let currentClass = Object.getPrototypeOf(component.constructor);
|
|
24
|
+
console.log(`[JQHTML] Walking prototype chain for ${component.constructor.name}`);
|
|
25
|
+
while (currentClass && currentClass !== BaseComponent && currentClass.name !== 'Object') {
|
|
26
|
+
const className = currentClass.name;
|
|
27
|
+
console.log(`[JQHTML] Checking parent class: ${className}`);
|
|
28
|
+
// Skip internal framework classes
|
|
29
|
+
if (className === '_Jqhtml_Component' || className === '_Base_Jqhtml_Component') {
|
|
30
|
+
currentClass = Object.getPrototypeOf(currentClass);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
// Try to find template for this parent class
|
|
34
|
+
try {
|
|
35
|
+
const parentTemplate = get_template(className);
|
|
36
|
+
console.log(`[JQHTML] Template found for ${className}:`, parentTemplate ? parentTemplate.name : 'null');
|
|
37
|
+
// Check if we got the default template (means no real template found)
|
|
38
|
+
if (parentTemplate && parentTemplate.name !== 'Jqhtml_Component') {
|
|
39
|
+
console.log(`[JQHTML] Invoking parent template ${className}`);
|
|
40
|
+
// Found a real parent template - invoke it with child's slots as content
|
|
41
|
+
const [parentInstructions, parentContext] = parentTemplate.render.call(component, component.data, component.args, childSlots // Pass child slots as content parameter
|
|
42
|
+
);
|
|
43
|
+
// Check if parent also returns slots (recursive inheritance)
|
|
44
|
+
if (parentInstructions && typeof parentInstructions === 'object' && parentInstructions._slots) {
|
|
45
|
+
// Parent also has slot-only template - recurse
|
|
46
|
+
console.log(`[JQHTML] Parent also slot-only, recursing`);
|
|
47
|
+
return await process_slot_inheritance(component, parentInstructions._slots);
|
|
48
|
+
}
|
|
49
|
+
// Parent returned HTML - we're done
|
|
50
|
+
console.log(`[JQHTML] Parent returned instructions, inheritance complete`);
|
|
51
|
+
return [parentInstructions, parentContext];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.warn(`[JQHTML] Error looking up parent template for ${className}:`, error);
|
|
56
|
+
}
|
|
57
|
+
// Move to next parent
|
|
58
|
+
currentClass = Object.getPrototypeOf(currentClass);
|
|
59
|
+
}
|
|
60
|
+
// No parent template found
|
|
61
|
+
console.warn(`[JQHTML] No parent template found after walking chain`);
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Render a template for a component
|
|
66
|
+
* Templates are functions that return [instructions, context] tuples
|
|
67
|
+
*/
|
|
68
|
+
export async function render_template(component, template_fn) {
|
|
69
|
+
// Get template from registry if not provided
|
|
70
|
+
let render_fn = template_fn;
|
|
71
|
+
if (!render_fn) {
|
|
72
|
+
const template_def = get_template_by_class(component.constructor);
|
|
73
|
+
render_fn = template_def.render;
|
|
74
|
+
}
|
|
75
|
+
if (!render_fn) {
|
|
76
|
+
// No template, component should handle its own rendering
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
// Clear existing content
|
|
80
|
+
component.$.empty();
|
|
81
|
+
// Execute template function
|
|
82
|
+
// Templates receive: (data, args, content)
|
|
83
|
+
// Provide a default empty content function if none provided
|
|
84
|
+
const defaultContent = () => '';
|
|
85
|
+
let [instructions, context] = render_fn.call(component, component.data, component.args, defaultContent // Default content function that returns empty string
|
|
86
|
+
);
|
|
87
|
+
// Check for slot-only template inheritance
|
|
88
|
+
// If instructions is {_slots: {...}}, this is a slot-only template
|
|
89
|
+
// We need to find the parent template and invoke it with these slots
|
|
90
|
+
if (instructions && typeof instructions === 'object' && instructions._slots) {
|
|
91
|
+
console.log(`[JQHTML] Slot-only template detected for ${component.constructor.name}, invoking inheritance`);
|
|
92
|
+
const result = await process_slot_inheritance(component, instructions._slots);
|
|
93
|
+
if (result) {
|
|
94
|
+
console.log(`[JQHTML] Parent template found, using parent instructions`);
|
|
95
|
+
instructions = result[0];
|
|
96
|
+
context = result[1];
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.warn(`[JQHTML] No parent template found for ${component.constructor.name}, rendering empty`);
|
|
100
|
+
// No parent template found - return empty
|
|
101
|
+
instructions = [];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Process instructions to generate DOM
|
|
105
|
+
await process_instructions(instructions, component.$, component);
|
|
106
|
+
// Process bindings after DOM is created
|
|
107
|
+
await process_bindings(component);
|
|
108
|
+
// Attach event handlers
|
|
109
|
+
await attach_event_handlers(component);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Process data bindings (attributes created by :prop syntax)
|
|
113
|
+
*/
|
|
114
|
+
async function process_bindings(component) {
|
|
115
|
+
// Find all elements with data-bind-* attributes
|
|
116
|
+
component.$.find('[data-bind-prop], [data-bind-value], [data-bind-text], [data-bind-html], [data-bind-class], [data-bind-style]').each((_, element) => {
|
|
117
|
+
const el = $(element);
|
|
118
|
+
const attrs = element.attributes;
|
|
119
|
+
for (let i = 0; i < attrs.length; i++) {
|
|
120
|
+
const attr = attrs[i];
|
|
121
|
+
if (attr.name.startsWith('data-bind-')) {
|
|
122
|
+
const binding_type = attr.name.substring(10); // Remove 'data-bind-'
|
|
123
|
+
const expression = attr.value;
|
|
124
|
+
try {
|
|
125
|
+
// Evaluate expression in component context
|
|
126
|
+
const value = evaluate_expression(expression, component);
|
|
127
|
+
// Apply binding based on type
|
|
128
|
+
switch (binding_type) {
|
|
129
|
+
case 'prop':
|
|
130
|
+
// Generic property binding
|
|
131
|
+
const prop_name = el.attr('data-bind-prop-name') || 'value';
|
|
132
|
+
el.prop(prop_name, value);
|
|
133
|
+
break;
|
|
134
|
+
case 'value':
|
|
135
|
+
el.val(value);
|
|
136
|
+
break;
|
|
137
|
+
case 'text':
|
|
138
|
+
el.text(value);
|
|
139
|
+
break;
|
|
140
|
+
case 'html':
|
|
141
|
+
el.html(value);
|
|
142
|
+
break;
|
|
143
|
+
case 'class':
|
|
144
|
+
if (typeof value === 'object') {
|
|
145
|
+
// Object syntax: {active: true, disabled: false}
|
|
146
|
+
Object.entries(value).forEach(([className, enabled]) => {
|
|
147
|
+
el.toggleClass(className, !!enabled);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
// String syntax
|
|
152
|
+
el.addClass(String(value));
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
case 'style':
|
|
156
|
+
if (typeof value === 'object') {
|
|
157
|
+
el.css(value);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
el.attr('style', String(value));
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
163
|
+
default:
|
|
164
|
+
// Custom binding - set as attribute
|
|
165
|
+
el.attr(binding_type, value);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
console.error(`Error evaluating binding "${expression}":`, error);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Attach event handlers (attributes created by @event syntax)
|
|
177
|
+
*/
|
|
178
|
+
async function attach_event_handlers(component) {
|
|
179
|
+
// Find all elements with data-on-* attributes
|
|
180
|
+
component.$.find('[data-on-click], [data-on-change], [data-on-submit], [data-on-keyup], [data-on-keydown], [data-on-focus], [data-on-blur]').each((_, element) => {
|
|
181
|
+
const el = $(element);
|
|
182
|
+
const attrs = element.attributes;
|
|
183
|
+
for (let i = 0; i < attrs.length; i++) {
|
|
184
|
+
const attr = attrs[i];
|
|
185
|
+
if (attr.name.startsWith('data-on-')) {
|
|
186
|
+
const event_name = attr.name.substring(8); // Remove 'data-on-'
|
|
187
|
+
const handler_expr = attr.value;
|
|
188
|
+
// Remove the attribute to avoid re-processing
|
|
189
|
+
el.removeAttr(attr.name);
|
|
190
|
+
// Attach event handler
|
|
191
|
+
el.on(event_name, function (event) {
|
|
192
|
+
try {
|
|
193
|
+
// Create handler function in component context
|
|
194
|
+
const handler = evaluate_handler(handler_expr, component);
|
|
195
|
+
if (typeof handler === 'function') {
|
|
196
|
+
// Call with component as 'this' and pass event
|
|
197
|
+
handler.call(component, event);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
// Expression to execute
|
|
201
|
+
evaluate_expression(handler_expr, component, { $event: event });
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
console.error(`Error in ${event_name} handler "${handler_expr}":`, error);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Evaluate an expression in component context
|
|
214
|
+
*/
|
|
215
|
+
function evaluate_expression(expression, component, locals = {}) {
|
|
216
|
+
// Create evaluation context
|
|
217
|
+
const context = {
|
|
218
|
+
// Component properties
|
|
219
|
+
data: component.data,
|
|
220
|
+
args: component.args,
|
|
221
|
+
$: component.$,
|
|
222
|
+
// Component methods
|
|
223
|
+
$sid: component.$sid.bind(component),
|
|
224
|
+
// Locals (like $event)
|
|
225
|
+
...locals
|
|
226
|
+
};
|
|
227
|
+
// Build function that evaluates in context
|
|
228
|
+
const keys = Object.keys(context);
|
|
229
|
+
const values = Object.values(context);
|
|
230
|
+
try {
|
|
231
|
+
// Use Function constructor for better performance than eval
|
|
232
|
+
const fn = new Function(...keys, `return (${expression})`);
|
|
233
|
+
return fn(...values);
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
console.error(`Invalid expression: ${expression}`, error);
|
|
237
|
+
return undefined;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Evaluate a handler expression (might be method name or inline code)
|
|
242
|
+
*/
|
|
243
|
+
function evaluate_handler(expression, component) {
|
|
244
|
+
// Check if it's a method name on the component
|
|
245
|
+
if (expression in component && typeof component[expression] === 'function') {
|
|
246
|
+
return component[expression];
|
|
247
|
+
}
|
|
248
|
+
// Otherwise treat as inline code
|
|
249
|
+
try {
|
|
250
|
+
return new Function('$event', `
|
|
251
|
+
const { data, args, $, emit, $sid } = this;
|
|
252
|
+
${expression}
|
|
253
|
+
`).bind(component);
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
console.error(`Invalid handler: ${expression}`, error);
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Helper to escape HTML for safe output
|
|
262
|
+
*/
|
|
263
|
+
export function escape_html(str) {
|
|
264
|
+
const div = document.createElement('div');
|
|
265
|
+
div.textContent = str;
|
|
266
|
+
return div.innerHTML;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Helper to escape HTML and convert newlines to <br /> tags
|
|
270
|
+
* Used by <%br= %> syntax for displaying user-entered text with line breaks
|
|
271
|
+
*/
|
|
272
|
+
export function escape_html_nl2br(str) {
|
|
273
|
+
const div = document.createElement('div');
|
|
274
|
+
div.textContent = str;
|
|
275
|
+
// Escape HTML first, then replace newlines with <br />
|
|
276
|
+
return div.innerHTML.replace(/\n/g, '<br />');
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=template-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../src/template-renderer.ts"],"names":[],"mappings":"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"}
|
package/dist/viewport.d.ts
CHANGED
|
File without changes
|
package/dist/viewport.d.ts.map
CHANGED
|
File without changes
|
package/dist/viewport.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JQHTML Viewport Resize Dispatch
|
|
3
|
+
*
|
|
4
|
+
* One framework-owned, debounced window 'resize' listener fans out to every live
|
|
5
|
+
* component in the document by calling on_viewport_resize(viewport_width).
|
|
6
|
+
*
|
|
7
|
+
* Components never bind their own window listener, so there is nothing to unbind
|
|
8
|
+
* in on_stop() - a component that is stopped or removed from the document simply
|
|
9
|
+
* stops being found by the dispatcher.
|
|
10
|
+
*/
|
|
11
|
+
/** Trailing-edge debounce applied to the window resize listener. */
|
|
12
|
+
export const VIEWPORT_RESIZE_DEBOUNCE_MS = 30;
|
|
13
|
+
let debounce_timer = null;
|
|
14
|
+
let listener_installed = false;
|
|
15
|
+
/**
|
|
16
|
+
* Current viewport width in CSS pixels.
|
|
17
|
+
*
|
|
18
|
+
* window.innerWidth is used (not $(window).width()) because it matches the width
|
|
19
|
+
* CSS media queries resolve against. It includes the scrollbar gutter.
|
|
20
|
+
*
|
|
21
|
+
* Returns 0 outside a browser (SSR).
|
|
22
|
+
*/
|
|
23
|
+
export function get_viewport_width() {
|
|
24
|
+
return typeof window !== 'undefined' ? window.innerWidth : 0;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Call on_viewport_resize(width) on every component currently in the document.
|
|
28
|
+
*
|
|
29
|
+
* Walks $('.Component') in document order (parents before children). Elements
|
|
30
|
+
* with no component instance and stopped components are skipped. A component
|
|
31
|
+
* that throws is logged and the walk continues - one bad handler must not stop
|
|
32
|
+
* the rest of the page from resizing.
|
|
33
|
+
*/
|
|
34
|
+
export function dispatch_viewport_resize(jQuery) {
|
|
35
|
+
const viewport_width = get_viewport_width();
|
|
36
|
+
jQuery('.Component').each(function () {
|
|
37
|
+
const component = jQuery(this).data('_component');
|
|
38
|
+
if (!component || component._stopped)
|
|
39
|
+
return;
|
|
40
|
+
if (typeof component.on_viewport_resize !== 'function')
|
|
41
|
+
return;
|
|
42
|
+
try {
|
|
43
|
+
component.on_viewport_resize(viewport_width);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
console.error(`[JQHTML] Error in on_viewport_resize() for ${component.component_name?.() || 'component'}:`, error);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Install the single window resize listener. Idempotent - repeated init() calls
|
|
52
|
+
* and non-browser environments are no-ops.
|
|
53
|
+
*/
|
|
54
|
+
export function init_viewport_resize(jQuery) {
|
|
55
|
+
if (typeof window === 'undefined')
|
|
56
|
+
return;
|
|
57
|
+
if (listener_installed)
|
|
58
|
+
return;
|
|
59
|
+
listener_installed = true;
|
|
60
|
+
jQuery(window).on('resize.jqhtml_viewport', function () {
|
|
61
|
+
if (debounce_timer !== null)
|
|
62
|
+
clearTimeout(debounce_timer);
|
|
63
|
+
debounce_timer = setTimeout(function () {
|
|
64
|
+
debounce_timer = null;
|
|
65
|
+
dispatch_viewport_resize(jQuery);
|
|
66
|
+
}, VIEWPORT_RESIZE_DEBOUNCE_MS);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=viewport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.js","sourceRoot":"","sources":["../src/viewport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,IAAI,cAAc,GAAQ,IAAI,CAAC;AAC/B,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAW;IAClD,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAC;IAE5C,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ;YAAE,OAAO;QAC7C,IAAI,OAAO,SAAS,CAAC,kBAAkB,KAAK,UAAU;YAAE,OAAO;QAE/D,IAAI,CAAC;YACH,SAAS,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,8CAA8C,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,WAAW,GAAG,EAC5F,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAW;IAC9C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAC1C,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,wBAAwB,EAAE;QAC1C,IAAI,cAAc,KAAK,IAAI;YAAE,YAAY,CAAC,cAAc,CAAC,CAAC;QAC1D,cAAc,GAAG,UAAU,CAAC;YAC1B,cAAc,GAAG,IAAI,CAAC;YACtB,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC"}
|