@livetemplate/client 0.1.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.
Files changed (100) hide show
  1. package/README.md +179 -0
  2. package/dist/constants.d.ts +2 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +19 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/dom/directives.d.ts +13 -0
  7. package/dist/dom/directives.d.ts.map +1 -0
  8. package/dist/dom/directives.js +137 -0
  9. package/dist/dom/directives.js.map +1 -0
  10. package/dist/dom/event-delegation.d.ts +24 -0
  11. package/dist/dom/event-delegation.d.ts.map +1 -0
  12. package/dist/dom/event-delegation.js +437 -0
  13. package/dist/dom/event-delegation.js.map +1 -0
  14. package/dist/dom/focus-manager.d.ts +19 -0
  15. package/dist/dom/focus-manager.d.ts.map +1 -0
  16. package/dist/dom/focus-manager.js +144 -0
  17. package/dist/dom/focus-manager.js.map +1 -0
  18. package/dist/dom/form-disabler.d.ts +8 -0
  19. package/dist/dom/form-disabler.d.ts.map +1 -0
  20. package/dist/dom/form-disabler.js +32 -0
  21. package/dist/dom/form-disabler.js.map +1 -0
  22. package/dist/dom/loading-indicator.d.ts +9 -0
  23. package/dist/dom/loading-indicator.d.ts.map +1 -0
  24. package/dist/dom/loading-indicator.js +50 -0
  25. package/dist/dom/loading-indicator.js.map +1 -0
  26. package/dist/dom/modal-manager.d.ts +11 -0
  27. package/dist/dom/modal-manager.d.ts.map +1 -0
  28. package/dist/dom/modal-manager.js +62 -0
  29. package/dist/dom/modal-manager.js.map +1 -0
  30. package/dist/dom/observer-manager.d.ts +19 -0
  31. package/dist/dom/observer-manager.d.ts.map +1 -0
  32. package/dist/dom/observer-manager.js +64 -0
  33. package/dist/dom/observer-manager.js.map +1 -0
  34. package/dist/livetemplate-client.browser.js +44 -0
  35. package/dist/livetemplate-client.browser.js.map +7 -0
  36. package/dist/livetemplate-client.d.ts +106 -0
  37. package/dist/livetemplate-client.d.ts.map +1 -0
  38. package/dist/livetemplate-client.js +507 -0
  39. package/dist/livetemplate-client.js.map +1 -0
  40. package/dist/state/form-lifecycle-manager.d.ts +19 -0
  41. package/dist/state/form-lifecycle-manager.d.ts.map +1 -0
  42. package/dist/state/form-lifecycle-manager.js +64 -0
  43. package/dist/state/form-lifecycle-manager.js.map +1 -0
  44. package/dist/state/tree-renderer.d.ts +27 -0
  45. package/dist/state/tree-renderer.d.ts.map +1 -0
  46. package/dist/state/tree-renderer.js +359 -0
  47. package/dist/state/tree-renderer.js.map +1 -0
  48. package/dist/tests/event-delegation.test.d.ts +2 -0
  49. package/dist/tests/event-delegation.test.d.ts.map +1 -0
  50. package/dist/tests/event-delegation.test.js +102 -0
  51. package/dist/tests/event-delegation.test.js.map +1 -0
  52. package/dist/tests/focus-manager.test.d.ts +2 -0
  53. package/dist/tests/focus-manager.test.d.ts.map +1 -0
  54. package/dist/tests/focus-manager.test.js +45 -0
  55. package/dist/tests/focus-manager.test.js.map +1 -0
  56. package/dist/tests/form-disabler.test.d.ts +2 -0
  57. package/dist/tests/form-disabler.test.d.ts.map +1 -0
  58. package/dist/tests/form-disabler.test.js +35 -0
  59. package/dist/tests/form-disabler.test.js.map +1 -0
  60. package/dist/tests/form-lifecycle-manager.test.d.ts +2 -0
  61. package/dist/tests/form-lifecycle-manager.test.d.ts.map +1 -0
  62. package/dist/tests/form-lifecycle-manager.test.js +90 -0
  63. package/dist/tests/form-lifecycle-manager.test.js.map +1 -0
  64. package/dist/tests/modal-manager.test.d.ts +2 -0
  65. package/dist/tests/modal-manager.test.d.ts.map +1 -0
  66. package/dist/tests/modal-manager.test.js +80 -0
  67. package/dist/tests/modal-manager.test.js.map +1 -0
  68. package/dist/tests/rate-limit.test.d.ts +2 -0
  69. package/dist/tests/rate-limit.test.d.ts.map +1 -0
  70. package/dist/tests/rate-limit.test.js +38 -0
  71. package/dist/tests/rate-limit.test.js.map +1 -0
  72. package/dist/tests/test-conditional-debug.test.d.ts +8 -0
  73. package/dist/tests/test-conditional-debug.test.d.ts.map +1 -0
  74. package/dist/tests/test-conditional-debug.test.js +187 -0
  75. package/dist/tests/test-conditional-debug.test.js.map +1 -0
  76. package/dist/tests/test-reconstruction.test.d.ts +8 -0
  77. package/dist/tests/test-reconstruction.test.d.ts.map +1 -0
  78. package/dist/tests/test-reconstruction.test.js +284 -0
  79. package/dist/tests/test-reconstruction.test.js.map +1 -0
  80. package/dist/transport/websocket.d.ts +62 -0
  81. package/dist/transport/websocket.d.ts.map +1 -0
  82. package/dist/transport/websocket.js +194 -0
  83. package/dist/transport/websocket.js.map +1 -0
  84. package/dist/types.d.ts +34 -0
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +3 -0
  87. package/dist/types.js.map +1 -0
  88. package/dist/utils/logger.d.ts +32 -0
  89. package/dist/utils/logger.d.ts.map +1 -0
  90. package/dist/utils/logger.js +77 -0
  91. package/dist/utils/logger.js.map +1 -0
  92. package/dist/utils/rate-limit.d.ts +10 -0
  93. package/dist/utils/rate-limit.d.ts.map +1 -0
  94. package/dist/utils/rate-limit.js +37 -0
  95. package/dist/utils/rate-limit.js.map +1 -0
  96. package/dist/utils/testing.d.ts +14 -0
  97. package/dist/utils/testing.d.ts.map +1 -0
  98. package/dist/utils/testing.js +51 -0
  99. package/dist/utils/testing.js.map +1 -0
  100. package/package.json +57 -0
@@ -0,0 +1,437 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventDelegator = void 0;
4
+ const rate_limit_1 = require("../utils/rate-limit");
5
+ /**
6
+ * Handles all DOM event delegation concerns for LiveTemplateClient.
7
+ */
8
+ class EventDelegator {
9
+ constructor(context, logger) {
10
+ this.context = context;
11
+ this.logger = logger;
12
+ }
13
+ setupEventDelegation() {
14
+ const wrapperElement = this.context.getWrapperElement();
15
+ if (!wrapperElement)
16
+ return;
17
+ const eventTypes = [
18
+ "click",
19
+ "submit",
20
+ "change",
21
+ "input",
22
+ "keydown",
23
+ "keyup",
24
+ "focus",
25
+ "blur",
26
+ "mouseenter",
27
+ "mouseleave",
28
+ ];
29
+ const wrapperId = wrapperElement.getAttribute("data-lvt-id");
30
+ const rateLimitedHandlers = this.context.getRateLimitedHandlers();
31
+ eventTypes.forEach((eventType) => {
32
+ const listenerKey = `__lvt_delegated_${eventType}_${wrapperId}`;
33
+ const existingListener = document[listenerKey];
34
+ if (existingListener) {
35
+ document.removeEventListener(eventType, existingListener, false);
36
+ }
37
+ const listener = (e) => {
38
+ const currentWrapper = this.context.getWrapperElement();
39
+ if (!currentWrapper)
40
+ return;
41
+ if (eventType === "submit") {
42
+ window.__lvtSubmitListenerTriggered = true;
43
+ window.__lvtSubmitEventTarget = e.target?.tagName;
44
+ }
45
+ this.logger.debug("Event listener triggered:", eventType, e.target);
46
+ const target = e.target;
47
+ if (!target)
48
+ return;
49
+ let element = target;
50
+ let inWrapper = false;
51
+ while (element) {
52
+ if (element === currentWrapper) {
53
+ inWrapper = true;
54
+ break;
55
+ }
56
+ element = element.parentElement;
57
+ }
58
+ if (eventType === "submit") {
59
+ window.__lvtInWrapper = inWrapper;
60
+ window.__lvtWrapperElement =
61
+ currentWrapper.getAttribute("data-lvt-id");
62
+ }
63
+ if (!inWrapper)
64
+ return;
65
+ const attrName = `lvt-${eventType}`;
66
+ element = target;
67
+ while (element && element !== currentWrapper.parentElement) {
68
+ let action = element.getAttribute(attrName);
69
+ let actionElement = element;
70
+ if (!action && (eventType === "change" || eventType === "input")) {
71
+ const formElement = element.closest("form");
72
+ if (formElement && formElement.hasAttribute("lvt-change")) {
73
+ action = formElement.getAttribute("lvt-change");
74
+ actionElement = formElement;
75
+ }
76
+ }
77
+ if (action && actionElement) {
78
+ if (eventType === "submit") {
79
+ window.__lvtActionFound = action;
80
+ window.__lvtActionElement = actionElement.tagName;
81
+ }
82
+ if (eventType === "submit") {
83
+ e.preventDefault();
84
+ }
85
+ if ((eventType === "keydown" || eventType === "keyup") &&
86
+ actionElement.hasAttribute("lvt-key")) {
87
+ const keyFilter = actionElement.getAttribute("lvt-key");
88
+ const keyboardEvent = e;
89
+ if (keyFilter && keyboardEvent.key !== keyFilter) {
90
+ element = element.parentElement;
91
+ continue;
92
+ }
93
+ }
94
+ const targetElement = actionElement;
95
+ const handleAction = () => {
96
+ this.logger.debug("handleAction called", {
97
+ action,
98
+ eventType,
99
+ targetElement,
100
+ });
101
+ if (action === "delete" &&
102
+ targetElement.hasAttribute("lvt-confirm")) {
103
+ const confirmMessage = targetElement.getAttribute("lvt-confirm") ||
104
+ "Are you sure you want to delete this item?";
105
+ if (!confirm(confirmMessage)) {
106
+ this.logger.debug("Delete action cancelled by user");
107
+ return;
108
+ }
109
+ }
110
+ const message = { action, data: {} };
111
+ if (targetElement instanceof HTMLFormElement) {
112
+ this.logger.debug("Processing form element");
113
+ const formData = new FormData(targetElement);
114
+ const checkboxes = Array.from(targetElement.querySelectorAll('input[type="checkbox"][name]'));
115
+ const checkboxNames = new Set(checkboxes.map((cb) => cb.name));
116
+ checkboxNames.forEach((name) => {
117
+ message.data[name] = false;
118
+ });
119
+ formData.forEach((value, key) => {
120
+ if (checkboxNames.has(key)) {
121
+ message.data[key] = true;
122
+ this.logger.debug("Converted checkbox", key, "to true");
123
+ }
124
+ else {
125
+ message.data[key] = this.context.parseValue(value);
126
+ }
127
+ });
128
+ this.logger.debug("Form data collected:", message.data);
129
+ }
130
+ else if (eventType === "change" || eventType === "input") {
131
+ if (targetElement instanceof HTMLInputElement) {
132
+ const key = targetElement.name || "value";
133
+ message.data[key] = this.context.parseValue(targetElement.value);
134
+ }
135
+ else if (targetElement instanceof HTMLSelectElement) {
136
+ const key = targetElement.name || "value";
137
+ message.data[key] = this.context.parseValue(targetElement.value);
138
+ }
139
+ else if (targetElement instanceof HTMLTextAreaElement) {
140
+ const key = targetElement.name || "value";
141
+ message.data[key] = this.context.parseValue(targetElement.value);
142
+ }
143
+ }
144
+ Array.from(targetElement.attributes).forEach((attr) => {
145
+ if (attr.name.startsWith("lvt-data-")) {
146
+ const key = attr.name.replace("lvt-data-", "");
147
+ message.data[key] = this.context.parseValue(attr.value);
148
+ }
149
+ });
150
+ Array.from(targetElement.attributes).forEach((attr) => {
151
+ if (attr.name.startsWith("lvt-value-")) {
152
+ const key = attr.name.replace("lvt-value-", "");
153
+ message.data[key] = this.context.parseValue(attr.value);
154
+ }
155
+ });
156
+ if (eventType === "submit" &&
157
+ targetElement instanceof HTMLFormElement) {
158
+ const submitEvent = e;
159
+ const submitButton = submitEvent.submitter;
160
+ let originalButtonText = null;
161
+ if (submitButton &&
162
+ submitButton.hasAttribute("lvt-disable-with")) {
163
+ originalButtonText = submitButton.textContent;
164
+ submitButton.disabled = true;
165
+ submitButton.textContent =
166
+ submitButton.getAttribute("lvt-disable-with");
167
+ this.logger.debug("Disabled submit button");
168
+ }
169
+ this.context.setActiveSubmission(targetElement, submitButton || null, originalButtonText);
170
+ targetElement.dispatchEvent(new CustomEvent("lvt:pending", { detail: message }));
171
+ this.logger.debug("Emitted lvt:pending event");
172
+ }
173
+ this.logger.debug("About to send message:", message);
174
+ this.logger.debug("WebSocket state:", this.context.getWebSocketReadyState());
175
+ this.context.send(message);
176
+ this.logger.debug("send() called");
177
+ };
178
+ const throttleValue = actionElement.getAttribute("lvt-throttle");
179
+ const debounceValue = actionElement.getAttribute("lvt-debounce");
180
+ if (throttleValue || debounceValue) {
181
+ if (!rateLimitedHandlers.has(actionElement)) {
182
+ rateLimitedHandlers.set(actionElement, new Map());
183
+ }
184
+ const handlerCache = rateLimitedHandlers.get(actionElement);
185
+ const cacheKey = `${eventType}:${action}`;
186
+ let rateLimitedHandler = handlerCache.get(cacheKey);
187
+ if (!rateLimitedHandler) {
188
+ if (throttleValue) {
189
+ const limit = parseInt(throttleValue, 10);
190
+ rateLimitedHandler = (0, rate_limit_1.throttle)(handleAction, limit);
191
+ }
192
+ else if (debounceValue) {
193
+ const wait = parseInt(debounceValue, 10);
194
+ rateLimitedHandler = (0, rate_limit_1.debounce)(handleAction, wait);
195
+ }
196
+ if (rateLimitedHandler) {
197
+ handlerCache.set(cacheKey, rateLimitedHandler);
198
+ }
199
+ }
200
+ if (rateLimitedHandler) {
201
+ rateLimitedHandler();
202
+ }
203
+ }
204
+ else {
205
+ if (eventType === "submit") {
206
+ window.__lvtBeforeHandleAction = true;
207
+ }
208
+ handleAction();
209
+ if (eventType === "submit") {
210
+ window.__lvtAfterHandleAction = true;
211
+ }
212
+ }
213
+ return;
214
+ }
215
+ element = element.parentElement;
216
+ }
217
+ };
218
+ document[listenerKey] = listener;
219
+ document.addEventListener(eventType, listener, false);
220
+ this.logger.debug("Registered event listener:", eventType, "with key:", listenerKey);
221
+ });
222
+ }
223
+ setupWindowEventDelegation() {
224
+ const wrapperElement = this.context.getWrapperElement();
225
+ if (!wrapperElement)
226
+ return;
227
+ const windowEvents = [
228
+ "keydown",
229
+ "keyup",
230
+ "scroll",
231
+ "resize",
232
+ "focus",
233
+ "blur",
234
+ ];
235
+ const wrapperId = wrapperElement.getAttribute("data-lvt-id");
236
+ const rateLimitedHandlers = this.context.getRateLimitedHandlers();
237
+ windowEvents.forEach((eventType) => {
238
+ const listenerKey = `__lvt_window_${eventType}_${wrapperId}`;
239
+ const existingListener = window[listenerKey];
240
+ if (existingListener) {
241
+ window.removeEventListener(eventType, existingListener);
242
+ }
243
+ const listener = (e) => {
244
+ const currentWrapper = this.context.getWrapperElement();
245
+ if (!currentWrapper)
246
+ return;
247
+ const attrName = `lvt-window-${eventType}`;
248
+ const elements = currentWrapper.querySelectorAll(`[${attrName}]`);
249
+ elements.forEach((element) => {
250
+ const action = element.getAttribute(attrName);
251
+ if (!action)
252
+ return;
253
+ if ((eventType === "keydown" || eventType === "keyup") &&
254
+ element.hasAttribute("lvt-key")) {
255
+ const keyFilter = element.getAttribute("lvt-key");
256
+ const keyboardEvent = e;
257
+ if (keyFilter && keyboardEvent.key !== keyFilter) {
258
+ return;
259
+ }
260
+ }
261
+ const message = { action, data: {} };
262
+ Array.from(element.attributes).forEach((attr) => {
263
+ if (attr.name.startsWith("lvt-data-")) {
264
+ const key = attr.name.replace("lvt-data-", "");
265
+ message.data[key] = this.context.parseValue(attr.value);
266
+ }
267
+ });
268
+ Array.from(element.attributes).forEach((attr) => {
269
+ if (attr.name.startsWith("lvt-value-")) {
270
+ const key = attr.name.replace("lvt-value-", "");
271
+ message.data[key] = this.context.parseValue(attr.value);
272
+ }
273
+ });
274
+ const throttleValue = element.getAttribute("lvt-throttle");
275
+ const debounceValue = element.getAttribute("lvt-debounce");
276
+ const handleAction = () => this.context.send(message);
277
+ if (throttleValue || debounceValue) {
278
+ if (!rateLimitedHandlers.has(element)) {
279
+ rateLimitedHandlers.set(element, new Map());
280
+ }
281
+ const handlerCache = rateLimitedHandlers.get(element);
282
+ const cacheKey = `window-${eventType}:${action}`;
283
+ let rateLimitedHandler = handlerCache.get(cacheKey);
284
+ if (!rateLimitedHandler) {
285
+ if (throttleValue) {
286
+ const limit = parseInt(throttleValue, 10);
287
+ rateLimitedHandler = (0, rate_limit_1.throttle)(handleAction, limit);
288
+ }
289
+ else if (debounceValue) {
290
+ const wait = parseInt(debounceValue, 10);
291
+ rateLimitedHandler = (0, rate_limit_1.debounce)(handleAction, wait);
292
+ }
293
+ if (rateLimitedHandler) {
294
+ handlerCache.set(cacheKey, rateLimitedHandler);
295
+ }
296
+ }
297
+ if (rateLimitedHandler) {
298
+ rateLimitedHandler();
299
+ }
300
+ }
301
+ else {
302
+ handleAction();
303
+ }
304
+ });
305
+ };
306
+ window[listenerKey] = listener;
307
+ window.addEventListener(eventType, listener);
308
+ });
309
+ }
310
+ setupClickAwayDelegation() {
311
+ const wrapperElement = this.context.getWrapperElement();
312
+ if (!wrapperElement)
313
+ return;
314
+ const wrapperId = wrapperElement.getAttribute("data-lvt-id");
315
+ const listenerKey = `__lvt_click_away_${wrapperId}`;
316
+ const existingListener = document[listenerKey];
317
+ if (existingListener) {
318
+ document.removeEventListener("click", existingListener);
319
+ }
320
+ const listener = (e) => {
321
+ const currentWrapper = this.context.getWrapperElement();
322
+ if (!currentWrapper)
323
+ return;
324
+ const target = e.target;
325
+ const elements = currentWrapper.querySelectorAll("[lvt-click-away]");
326
+ elements.forEach((element) => {
327
+ if (!element.contains(target)) {
328
+ const action = element.getAttribute("lvt-click-away");
329
+ if (!action)
330
+ return;
331
+ const message = { action, data: {} };
332
+ Array.from(element.attributes).forEach((attr) => {
333
+ if (attr.name.startsWith("lvt-data-")) {
334
+ const key = attr.name.replace("lvt-data-", "");
335
+ message.data[key] = this.context.parseValue(attr.value);
336
+ }
337
+ });
338
+ Array.from(element.attributes).forEach((attr) => {
339
+ if (attr.name.startsWith("lvt-value-")) {
340
+ const key = attr.name.replace("lvt-value-", "");
341
+ message.data[key] = this.context.parseValue(attr.value);
342
+ }
343
+ });
344
+ this.context.send(message);
345
+ }
346
+ });
347
+ };
348
+ document[listenerKey] = listener;
349
+ document.addEventListener("click", listener);
350
+ }
351
+ setupModalDelegation() {
352
+ const wrapperElement = this.context.getWrapperElement();
353
+ if (!wrapperElement)
354
+ return;
355
+ const wrapperId = wrapperElement.getAttribute("data-lvt-id");
356
+ const openListenerKey = `__lvt_modal_open_${wrapperId}`;
357
+ const existingOpenListener = document[openListenerKey];
358
+ if (existingOpenListener) {
359
+ document.removeEventListener("click", existingOpenListener);
360
+ }
361
+ const openListener = (e) => {
362
+ const currentWrapper = this.context.getWrapperElement();
363
+ if (!currentWrapper)
364
+ return;
365
+ const target = e.target?.closest("[lvt-modal-open]");
366
+ if (!target || !currentWrapper.contains(target))
367
+ return;
368
+ const modalId = target.getAttribute("lvt-modal-open");
369
+ if (!modalId)
370
+ return;
371
+ e.preventDefault();
372
+ this.context.openModal(modalId);
373
+ };
374
+ document[openListenerKey] = openListener;
375
+ document.addEventListener("click", openListener);
376
+ const closeListenerKey = `__lvt_modal_close_${wrapperId}`;
377
+ const existingCloseListener = document[closeListenerKey];
378
+ if (existingCloseListener) {
379
+ document.removeEventListener("click", existingCloseListener);
380
+ }
381
+ const closeListener = (e) => {
382
+ const currentWrapper = this.context.getWrapperElement();
383
+ if (!currentWrapper)
384
+ return;
385
+ const target = e.target?.closest("[lvt-modal-close]");
386
+ if (!target || !currentWrapper.contains(target)) {
387
+ return;
388
+ }
389
+ const modalId = target.getAttribute("lvt-modal-close");
390
+ if (!modalId)
391
+ return;
392
+ e.preventDefault();
393
+ this.context.closeModal(modalId);
394
+ };
395
+ document[closeListenerKey] = closeListener;
396
+ document.addEventListener("click", closeListener);
397
+ const backdropListenerKey = `__lvt_modal_backdrop_${wrapperId}`;
398
+ const existingBackdropListener = document[backdropListenerKey];
399
+ if (existingBackdropListener) {
400
+ document.removeEventListener("click", existingBackdropListener);
401
+ }
402
+ const backdropListener = (e) => {
403
+ const target = e.target;
404
+ if (!target.hasAttribute("data-modal-backdrop"))
405
+ return;
406
+ const modalId = target.getAttribute("data-modal-id");
407
+ if (modalId) {
408
+ this.context.closeModal(modalId);
409
+ }
410
+ };
411
+ document[backdropListenerKey] = backdropListener;
412
+ document.addEventListener("click", backdropListener);
413
+ const escapeListenerKey = `__lvt_modal_escape_${wrapperId}`;
414
+ const existingEscapeListener = document[escapeListenerKey];
415
+ if (existingEscapeListener) {
416
+ document.removeEventListener("keydown", existingEscapeListener);
417
+ }
418
+ const escapeListener = (e) => {
419
+ if (e.key !== "Escape")
420
+ return;
421
+ const currentWrapper = this.context.getWrapperElement();
422
+ if (!currentWrapper)
423
+ return;
424
+ const openModals = currentWrapper.querySelectorAll('[role="dialog"]:not([hidden])');
425
+ if (openModals.length > 0) {
426
+ const lastModal = openModals[openModals.length - 1];
427
+ if (lastModal.id) {
428
+ this.context.closeModal(lastModal.id);
429
+ }
430
+ }
431
+ };
432
+ document[escapeListenerKey] = escapeListener;
433
+ document.addEventListener("keydown", escapeListener);
434
+ }
435
+ }
436
+ exports.EventDelegator = EventDelegator;
437
+ //# sourceMappingURL=event-delegation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-delegation.js","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Logger } from "../utils/logger";
2
+ export declare class FocusManager {
3
+ private readonly logger;
4
+ private wrapperElement;
5
+ private focusableElements;
6
+ private lastFocusedElement;
7
+ private lastFocusedSelectionStart;
8
+ private lastFocusedSelectionEnd;
9
+ constructor(logger: Logger);
10
+ attach(wrapper: Element | null): void;
11
+ reset(): void;
12
+ updateFocusableElements(): void;
13
+ setupFocusTracking(): void;
14
+ restoreFocusedElement(): void;
15
+ isTextualInput(el: Element): el is HTMLInputElement | HTMLTextAreaElement;
16
+ getLastFocusedElement(): HTMLElement | null;
17
+ private getElementSelector;
18
+ }
19
+ //# sourceMappingURL=focus-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-manager.d.ts","sourceRoot":"","sources":["../../dom/focus-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,qBAAa,YAAY;IAOX,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,yBAAyB,CAAuB;IACxD,OAAO,CAAC,uBAAuB,CAAuB;gBAEzB,MAAM,EAAE,MAAM;IAE3C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAWrC,KAAK,IAAI,IAAI;IAQb,uBAAuB,IAAI,IAAI;IAkB/B,kBAAkB,IAAI,IAAI;IA0D1B,qBAAqB,IAAI,IAAI;IAoE7B,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,gBAAgB,GAAG,mBAAmB;IAQzE,qBAAqB,IAAI,WAAW,GAAG,IAAI;IAI3C,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FocusManager = void 0;
4
+ const constants_1 = require("../constants");
5
+ class FocusManager {
6
+ constructor(logger) {
7
+ this.logger = logger;
8
+ this.wrapperElement = null;
9
+ this.focusableElements = [];
10
+ this.lastFocusedElement = null;
11
+ this.lastFocusedSelectionStart = null;
12
+ this.lastFocusedSelectionEnd = null;
13
+ }
14
+ attach(wrapper) {
15
+ this.wrapperElement = wrapper;
16
+ if (!wrapper) {
17
+ return;
18
+ }
19
+ this.updateFocusableElements();
20
+ this.setupFocusTracking();
21
+ }
22
+ reset() {
23
+ this.wrapperElement = null;
24
+ this.focusableElements = [];
25
+ this.lastFocusedElement = null;
26
+ this.lastFocusedSelectionStart = null;
27
+ this.lastFocusedSelectionEnd = null;
28
+ }
29
+ updateFocusableElements() {
30
+ if (!this.wrapperElement)
31
+ return;
32
+ const inputSelectors = constants_1.FOCUSABLE_INPUTS.map((type) => type === "textarea"
33
+ ? "textarea:not([disabled])"
34
+ : `input[type="${type}"]:not([disabled])`).join(", ");
35
+ const otherFocusable = 'select:not([disabled]), button:not([disabled]), [contenteditable="true"], [tabindex]:not([tabindex="-1"])';
36
+ const selector = `${inputSelectors}, ${otherFocusable}`;
37
+ this.focusableElements = Array.from(this.wrapperElement.querySelectorAll(selector));
38
+ }
39
+ setupFocusTracking() {
40
+ if (!this.wrapperElement)
41
+ return;
42
+ const wrapperId = this.wrapperElement.getAttribute("data-lvt-id");
43
+ const focusKey = `__lvt_focus_tracker_${wrapperId}`;
44
+ const blurKey = `__lvt_blur_tracker_${wrapperId}`;
45
+ const focusListener = (event) => {
46
+ const target = event.target;
47
+ if (!target || !this.wrapperElement?.contains(target))
48
+ return;
49
+ if (this.isTextualInput(target) || target instanceof HTMLSelectElement) {
50
+ this.lastFocusedElement = target;
51
+ this.logger.debug("[Focus] Tracked focus on:", target.tagName, target.id || target.getAttribute("name"));
52
+ if (this.isTextualInput(target)) {
53
+ this.lastFocusedSelectionStart = target.selectionStart;
54
+ this.lastFocusedSelectionEnd = target.selectionEnd;
55
+ }
56
+ }
57
+ };
58
+ const blurListener = (event) => {
59
+ const target = event.target;
60
+ if (!target || !this.wrapperElement?.contains(target))
61
+ return;
62
+ if (this.isTextualInput(target) && target === this.lastFocusedElement) {
63
+ this.lastFocusedSelectionStart = target.selectionStart;
64
+ this.lastFocusedSelectionEnd = target.selectionEnd;
65
+ this.logger.debug("[Focus] Saved cursor on blur:", this.lastFocusedSelectionStart, "-", this.lastFocusedSelectionEnd);
66
+ }
67
+ };
68
+ if (document[focusKey]) {
69
+ document.removeEventListener("focus", document[focusKey], true);
70
+ }
71
+ if (document[blurKey]) {
72
+ document.removeEventListener("blur", document[blurKey], true);
73
+ }
74
+ document[focusKey] = focusListener;
75
+ document[blurKey] = blurListener;
76
+ document.addEventListener("focus", focusListener, true);
77
+ document.addEventListener("blur", blurListener, true);
78
+ this.logger.debug("[Focus] Focus tracking set up");
79
+ }
80
+ restoreFocusedElement() {
81
+ this.logger.debug("[Focus] restoreFocusedElement - lastFocusedElement:", this.lastFocusedElement?.tagName, this.lastFocusedElement?.id ||
82
+ this.lastFocusedElement?.getAttribute("name"));
83
+ if (!this.lastFocusedElement || !this.wrapperElement) {
84
+ this.logger.debug("[Focus] No element to restore");
85
+ return;
86
+ }
87
+ const selector = this.getElementSelector(this.lastFocusedElement);
88
+ this.logger.debug("[Focus] Selector for last focused:", selector);
89
+ if (!selector) {
90
+ this.logger.debug("[Focus] Could not generate selector");
91
+ return;
92
+ }
93
+ let element = null;
94
+ if (selector.startsWith("data-focus-index-")) {
95
+ this.updateFocusableElements();
96
+ const index = parseInt(selector.replace("data-focus-index-", ""), 10);
97
+ element = this.focusableElements[index] || null;
98
+ this.logger.debug("[Focus] Found by index:", index, element?.tagName);
99
+ }
100
+ else {
101
+ element = this.wrapperElement.querySelector(selector);
102
+ this.logger.debug("[Focus] Found by selector:", selector, element?.tagName);
103
+ }
104
+ if (!element) {
105
+ this.logger.debug("[Focus] Element not found in updated DOM");
106
+ return;
107
+ }
108
+ const wasFocused = element.matches(":focus");
109
+ this.logger.debug("[Focus] Already focused:", wasFocused);
110
+ if (!wasFocused) {
111
+ element.focus();
112
+ this.logger.debug("[Focus] Restored focus");
113
+ }
114
+ if (this.isTextualInput(element) &&
115
+ this.lastFocusedSelectionStart !== null &&
116
+ this.lastFocusedSelectionEnd !== null) {
117
+ element.setSelectionRange(this.lastFocusedSelectionStart, this.lastFocusedSelectionEnd);
118
+ this.logger.debug("[Focus] Restored cursor:", this.lastFocusedSelectionStart, "-", this.lastFocusedSelectionEnd);
119
+ }
120
+ }
121
+ isTextualInput(el) {
122
+ if (el instanceof HTMLTextAreaElement)
123
+ return true;
124
+ if (el instanceof HTMLInputElement) {
125
+ return constants_1.FOCUSABLE_INPUTS.indexOf(el.type) >= 0;
126
+ }
127
+ return false;
128
+ }
129
+ getLastFocusedElement() {
130
+ return this.lastFocusedElement;
131
+ }
132
+ getElementSelector(el) {
133
+ if (el.id)
134
+ return `#${el.id}`;
135
+ if (el.name)
136
+ return `[name="${el.name}"]`;
137
+ if (el.getAttribute("data-key"))
138
+ return `[data-key="${el.getAttribute("data-key")}"]`;
139
+ const index = this.focusableElements.indexOf(el);
140
+ return index >= 0 ? `data-focus-index-${index}` : null;
141
+ }
142
+ }
143
+ exports.FocusManager = FocusManager;
144
+ //# sourceMappingURL=focus-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-manager.js","sourceRoot":"","sources":["../../dom/focus-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Enables and disables all form controls inside the LiveTemplate wrapper.
3
+ */
4
+ export declare class FormDisabler {
5
+ disable(wrapper: Element | null): void;
6
+ enable(wrapper: Element | null): void;
7
+ }
8
+ //# sourceMappingURL=form-disabler.d.ts.map