@livetemplate/client 0.8.10 → 0.8.13
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/dom/directives.d.ts +17 -5
- package/dist/dom/directives.d.ts.map +1 -1
- package/dist/dom/directives.js +161 -17
- package/dist/dom/directives.js.map +1 -1
- package/dist/dom/event-delegation.d.ts +5 -3
- package/dist/dom/event-delegation.d.ts.map +1 -1
- package/dist/dom/event-delegation.js +62 -177
- package/dist/dom/event-delegation.js.map +1 -1
- package/dist/dom/link-interceptor.js +1 -1
- package/dist/dom/link-interceptor.js.map +1 -1
- package/dist/dom/reactive-attributes.d.ts +15 -20
- package/dist/dom/reactive-attributes.d.ts.map +1 -1
- package/dist/dom/reactive-attributes.js +78 -81
- package/dist/dom/reactive-attributes.js.map +1 -1
- package/dist/livetemplate-client.browser.js +4 -4
- package/dist/livetemplate-client.browser.js.map +4 -4
- package/dist/livetemplate-client.d.ts +0 -2
- package/dist/livetemplate-client.d.ts.map +1 -1
- package/dist/livetemplate-client.js +7 -12
- package/dist/livetemplate-client.js.map +1 -1
- package/dist/state/form-lifecycle-manager.d.ts +1 -3
- package/dist/state/form-lifecycle-manager.d.ts.map +1 -1
- package/dist/state/form-lifecycle-manager.js +6 -6
- package/dist/state/form-lifecycle-manager.js.map +1 -1
- package/dist/tests/directives.test.js +33 -33
- package/dist/tests/directives.test.js.map +1 -1
- package/dist/tests/event-delegation.test.js +7 -9
- package/dist/tests/event-delegation.test.js.map +1 -1
- package/dist/tests/form-lifecycle-manager.test.js +27 -28
- package/dist/tests/form-lifecycle-manager.test.js.map +1 -1
- package/dist/tests/reactive-attributes.test.js +60 -84
- package/dist/tests/reactive-attributes.test.js.map +1 -1
- package/dist/utils/lvt-selector.d.ts +3 -0
- package/dist/utils/lvt-selector.d.ts.map +1 -0
- package/dist/utils/lvt-selector.js +13 -0
- package/dist/utils/lvt-selector.js.map +1 -0
- package/package.json +1 -1
- package/dist/dom/modal-manager.d.ts +0 -11
- package/dist/dom/modal-manager.d.ts.map +0 -1
- package/dist/dom/modal-manager.js +0 -62
- package/dist/dom/modal-manager.js.map +0 -1
- package/dist/tests/modal-manager.test.d.ts +0 -2
- package/dist/tests/modal-manager.test.d.ts.map +0 -1
- package/dist/tests/modal-manager.test.js +0 -80
- package/dist/tests/modal-manager.test.js.map +0 -1
- package/dist/utils/confirm.d.ts +0 -12
- package/dist/utils/confirm.d.ts.map +0 -1
- package/dist/utils/confirm.js +0 -35
- package/dist/utils/confirm.js.map +0 -1
package/dist/dom/directives.d.ts
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Apply scroll directives on elements with lvt-scroll attributes.
|
|
3
|
-
*/
|
|
4
1
|
export declare function handleScrollDirectives(rootElement: Element): void;
|
|
5
2
|
/**
|
|
6
|
-
* Apply highlight directives to elements with lvt-highlight attributes.
|
|
3
|
+
* Apply highlight directives to elements with lvt-fx:highlight attributes.
|
|
4
|
+
* Configuration read from CSS custom properties:
|
|
5
|
+
* --lvt-highlight-duration: <ms> (default: 500)
|
|
6
|
+
* --lvt-highlight-color: <color> (default: #ffc107)
|
|
7
7
|
*/
|
|
8
8
|
export declare function handleHighlightDirectives(rootElement: Element): void;
|
|
9
9
|
/**
|
|
10
|
-
* Apply animation directives to elements with lvt-animate attributes.
|
|
10
|
+
* Apply animation directives to elements with lvt-fx:animate attributes.
|
|
11
|
+
* Configuration read from CSS custom properties:
|
|
12
|
+
* --lvt-animate-duration: <ms> (default: 300)
|
|
11
13
|
*/
|
|
12
14
|
export declare function handleAnimateDirectives(rootElement: Element): void;
|
|
15
|
+
/**
|
|
16
|
+
* Read data-pending toast messages from server trigger elements and create
|
|
17
|
+
* client-managed toast DOM. Called after each LiveTemplate DOM update.
|
|
18
|
+
*/
|
|
19
|
+
export declare function handleToastDirectives(rootElement: Element): void;
|
|
20
|
+
/**
|
|
21
|
+
* Set up a document click listener that dismisses all visible toasts when
|
|
22
|
+
* the user clicks outside the toast stack. Called once at connect time.
|
|
23
|
+
*/
|
|
24
|
+
export declare function setupToastClickOutside(): void;
|
|
13
25
|
//# sourceMappingURL=directives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"AAQA,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAuDjE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA6BpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA0ElE;AAkBD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA4BhE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAW7C"}
|
package/dist/dom/directives.js
CHANGED
|
@@ -3,17 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.handleScrollDirectives = handleScrollDirectives;
|
|
4
4
|
exports.handleHighlightDirectives = handleHighlightDirectives;
|
|
5
5
|
exports.handleAnimateDirectives = handleAnimateDirectives;
|
|
6
|
+
exports.handleToastDirectives = handleToastDirectives;
|
|
7
|
+
exports.setupToastClickOutside = setupToastClickOutside;
|
|
6
8
|
/**
|
|
7
|
-
* Apply scroll directives on elements with lvt-scroll attributes.
|
|
9
|
+
* Apply scroll directives on elements with lvt-fx:scroll attributes.
|
|
10
|
+
* Configuration read from CSS custom properties:
|
|
11
|
+
* --lvt-scroll-behavior: auto | smooth (default: auto)
|
|
12
|
+
* --lvt-scroll-threshold: <number> (default: 100)
|
|
8
13
|
*/
|
|
14
|
+
const VALID_SCROLL_BEHAVIORS = new Set(["auto", "smooth", "instant"]);
|
|
9
15
|
function handleScrollDirectives(rootElement) {
|
|
10
|
-
const scrollElements = rootElement.querySelectorAll("[lvt-scroll]");
|
|
16
|
+
const scrollElements = rootElement.querySelectorAll("[lvt-fx\\:scroll]");
|
|
11
17
|
scrollElements.forEach((element) => {
|
|
12
18
|
const htmlElement = element;
|
|
13
|
-
const mode = htmlElement.getAttribute("lvt-scroll");
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
const
|
|
19
|
+
const mode = htmlElement.getAttribute("lvt-fx:scroll");
|
|
20
|
+
const computed = getComputedStyle(htmlElement);
|
|
21
|
+
const rawBehavior = computed.getPropertyValue("--lvt-scroll-behavior").trim();
|
|
22
|
+
const behavior = VALID_SCROLL_BEHAVIORS.has(rawBehavior)
|
|
23
|
+
? rawBehavior
|
|
24
|
+
: "auto";
|
|
25
|
+
const threshold = parseInt(computed.getPropertyValue("--lvt-scroll-threshold").trim() || "100", 10);
|
|
17
26
|
if (!mode)
|
|
18
27
|
return;
|
|
19
28
|
switch (mode) {
|
|
@@ -45,19 +54,23 @@ function handleScrollDirectives(rootElement) {
|
|
|
45
54
|
case "preserve":
|
|
46
55
|
break;
|
|
47
56
|
default:
|
|
48
|
-
console.warn(`Unknown lvt-scroll mode: ${mode}`);
|
|
57
|
+
console.warn(`Unknown lvt-fx:scroll mode: ${mode}`);
|
|
49
58
|
}
|
|
50
59
|
});
|
|
51
60
|
}
|
|
52
61
|
/**
|
|
53
|
-
* Apply highlight directives to elements with lvt-highlight attributes.
|
|
62
|
+
* Apply highlight directives to elements with lvt-fx:highlight attributes.
|
|
63
|
+
* Configuration read from CSS custom properties:
|
|
64
|
+
* --lvt-highlight-duration: <ms> (default: 500)
|
|
65
|
+
* --lvt-highlight-color: <color> (default: #ffc107)
|
|
54
66
|
*/
|
|
55
67
|
function handleHighlightDirectives(rootElement) {
|
|
56
|
-
const highlightElements = rootElement.querySelectorAll("[lvt-highlight]");
|
|
68
|
+
const highlightElements = rootElement.querySelectorAll("[lvt-fx\\:highlight]");
|
|
57
69
|
highlightElements.forEach((element) => {
|
|
58
|
-
const mode = element.getAttribute("lvt-highlight");
|
|
59
|
-
const
|
|
60
|
-
const
|
|
70
|
+
const mode = element.getAttribute("lvt-fx:highlight");
|
|
71
|
+
const computed = getComputedStyle(element);
|
|
72
|
+
const duration = parseInt(computed.getPropertyValue("--lvt-highlight-duration").trim() || "500", 10);
|
|
73
|
+
const color = computed.getPropertyValue("--lvt-highlight-color").trim() || "#ffc107";
|
|
61
74
|
if (!mode)
|
|
62
75
|
return;
|
|
63
76
|
const htmlElement = element;
|
|
@@ -74,13 +87,16 @@ function handleHighlightDirectives(rootElement) {
|
|
|
74
87
|
});
|
|
75
88
|
}
|
|
76
89
|
/**
|
|
77
|
-
* Apply animation directives to elements with lvt-animate attributes.
|
|
90
|
+
* Apply animation directives to elements with lvt-fx:animate attributes.
|
|
91
|
+
* Configuration read from CSS custom properties:
|
|
92
|
+
* --lvt-animate-duration: <ms> (default: 300)
|
|
78
93
|
*/
|
|
79
94
|
function handleAnimateDirectives(rootElement) {
|
|
80
|
-
const animateElements = rootElement.querySelectorAll("[lvt-animate]");
|
|
95
|
+
const animateElements = rootElement.querySelectorAll("[lvt-fx\\:animate]");
|
|
81
96
|
animateElements.forEach((element) => {
|
|
82
|
-
const animation = element.getAttribute("lvt-animate");
|
|
83
|
-
const
|
|
97
|
+
const animation = element.getAttribute("lvt-fx:animate");
|
|
98
|
+
const computed = getComputedStyle(element);
|
|
99
|
+
const duration = parseInt(computed.getPropertyValue("--lvt-animate-duration").trim() || "300", 10);
|
|
84
100
|
if (!animation)
|
|
85
101
|
return;
|
|
86
102
|
const htmlElement = element;
|
|
@@ -96,7 +112,7 @@ function handleAnimateDirectives(rootElement) {
|
|
|
96
112
|
htmlElement.style.animation = `lvt-scale-in var(--lvt-animate-duration) ease-out`;
|
|
97
113
|
break;
|
|
98
114
|
default:
|
|
99
|
-
console.warn(`Unknown lvt-animate mode: ${animation}`);
|
|
115
|
+
console.warn(`Unknown lvt-fx:animate mode: ${animation}`);
|
|
100
116
|
}
|
|
101
117
|
htmlElement.addEventListener("animationend", () => {
|
|
102
118
|
htmlElement.style.animation = "";
|
|
@@ -134,4 +150,132 @@ function handleAnimateDirectives(rootElement) {
|
|
|
134
150
|
document.head.appendChild(style);
|
|
135
151
|
}
|
|
136
152
|
}
|
|
153
|
+
// Key used to store the last processed data-pending value on each trigger element.
|
|
154
|
+
// Prevents showing the same batch of toasts twice if handleToastDirectives is
|
|
155
|
+
// called multiple times within a single update cycle (e.g. from multiple patches).
|
|
156
|
+
const PENDING_PROCESSED_KEY = "__lvtPendingProcessed";
|
|
157
|
+
/**
|
|
158
|
+
* Read data-pending toast messages from server trigger elements and create
|
|
159
|
+
* client-managed toast DOM. Called after each LiveTemplate DOM update.
|
|
160
|
+
*/
|
|
161
|
+
function handleToastDirectives(rootElement) {
|
|
162
|
+
rootElement
|
|
163
|
+
.querySelectorAll("[data-toast-trigger]")
|
|
164
|
+
.forEach((trigger) => {
|
|
165
|
+
const pending = trigger.getAttribute("data-pending");
|
|
166
|
+
if (!pending)
|
|
167
|
+
return;
|
|
168
|
+
// Skip if this exact batch was already processed (handles multi-patch calls)
|
|
169
|
+
if (trigger[PENDING_PROCESSED_KEY] === pending)
|
|
170
|
+
return;
|
|
171
|
+
trigger[PENDING_PROCESSED_KEY] = pending;
|
|
172
|
+
let messages;
|
|
173
|
+
try {
|
|
174
|
+
messages = JSON.parse(pending);
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (!Array.isArray(messages) || !messages.length)
|
|
180
|
+
return;
|
|
181
|
+
const position = trigger.getAttribute("data-position") || "top-right";
|
|
182
|
+
const stack = getOrCreateToastStack(position);
|
|
183
|
+
messages.forEach((msg) => {
|
|
184
|
+
const el = createToastElement(msg);
|
|
185
|
+
stack.appendChild(el);
|
|
186
|
+
if (typeof msg.dismissMS === "number" && msg.dismissMS > 0) {
|
|
187
|
+
setTimeout(() => el.remove(), msg.dismissMS);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Set up a document click listener that dismisses all visible toasts when
|
|
194
|
+
* the user clicks outside the toast stack. Called once at connect time.
|
|
195
|
+
*/
|
|
196
|
+
function setupToastClickOutside() {
|
|
197
|
+
const key = "__lvt_toast_click_outside";
|
|
198
|
+
const existing = document[key];
|
|
199
|
+
if (existing)
|
|
200
|
+
document.removeEventListener("click", existing);
|
|
201
|
+
const listener = (e) => {
|
|
202
|
+
const stack = document.querySelector("[data-lvt-toast-stack]");
|
|
203
|
+
if (!stack || stack.contains(e.target))
|
|
204
|
+
return;
|
|
205
|
+
stack.querySelectorAll("[data-lvt-toast-item]").forEach((el) => el.remove());
|
|
206
|
+
};
|
|
207
|
+
document[key] = listener;
|
|
208
|
+
document.addEventListener("click", listener);
|
|
209
|
+
}
|
|
210
|
+
function getOrCreateToastStack(position) {
|
|
211
|
+
let stack = document.querySelector("[data-lvt-toast-stack]");
|
|
212
|
+
if (!stack) {
|
|
213
|
+
stack = document.createElement("div");
|
|
214
|
+
stack.setAttribute("data-lvt-toast-stack", "");
|
|
215
|
+
stack.setAttribute("aria-live", "polite");
|
|
216
|
+
applyPositionStyles(stack, position);
|
|
217
|
+
document.body.appendChild(stack);
|
|
218
|
+
}
|
|
219
|
+
return stack;
|
|
220
|
+
}
|
|
221
|
+
function applyPositionStyles(stack, position) {
|
|
222
|
+
const s = stack.style;
|
|
223
|
+
switch (position) {
|
|
224
|
+
case "top-left":
|
|
225
|
+
s.top = "1rem";
|
|
226
|
+
s.left = "1rem";
|
|
227
|
+
break;
|
|
228
|
+
case "top-center":
|
|
229
|
+
s.top = "1rem";
|
|
230
|
+
s.left = "50%";
|
|
231
|
+
s.transform = "translateX(-50%)";
|
|
232
|
+
break;
|
|
233
|
+
case "bottom-right":
|
|
234
|
+
s.bottom = "1rem";
|
|
235
|
+
s.right = "1rem";
|
|
236
|
+
break;
|
|
237
|
+
case "bottom-left":
|
|
238
|
+
s.bottom = "1rem";
|
|
239
|
+
s.left = "1rem";
|
|
240
|
+
break;
|
|
241
|
+
case "bottom-center":
|
|
242
|
+
s.bottom = "1rem";
|
|
243
|
+
s.left = "50%";
|
|
244
|
+
s.transform = "translateX(-50%)";
|
|
245
|
+
break;
|
|
246
|
+
default: // top-right
|
|
247
|
+
s.top = "1rem";
|
|
248
|
+
s.right = "1rem";
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
function createToastElement(msg) {
|
|
253
|
+
const el = document.createElement("div");
|
|
254
|
+
el.setAttribute("role", "alert");
|
|
255
|
+
el.setAttribute("data-lvt-toast-item", msg.id);
|
|
256
|
+
if (msg.type)
|
|
257
|
+
el.setAttribute("data-type", msg.type);
|
|
258
|
+
const inner = document.createElement("div");
|
|
259
|
+
inner.setAttribute("data-lvt-toast-content", "");
|
|
260
|
+
if (msg.title) {
|
|
261
|
+
const t = document.createElement("strong");
|
|
262
|
+
t.textContent = msg.title;
|
|
263
|
+
inner.appendChild(t);
|
|
264
|
+
}
|
|
265
|
+
if (msg.body) {
|
|
266
|
+
const b = document.createElement("p");
|
|
267
|
+
b.textContent = msg.body;
|
|
268
|
+
inner.appendChild(b);
|
|
269
|
+
}
|
|
270
|
+
el.appendChild(inner);
|
|
271
|
+
if (msg.dismissible) {
|
|
272
|
+
const btn = document.createElement("button");
|
|
273
|
+
btn.type = "button";
|
|
274
|
+
btn.setAttribute("aria-label", "Dismiss");
|
|
275
|
+
btn.textContent = "×";
|
|
276
|
+
btn.addEventListener("click", () => el.remove());
|
|
277
|
+
el.appendChild(btn);
|
|
278
|
+
}
|
|
279
|
+
return el;
|
|
280
|
+
}
|
|
137
281
|
//# sourceMappingURL=directives.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,6 @@ export interface EventDelegationContext {
|
|
|
5
5
|
parseValue(value: string): any;
|
|
6
6
|
send(message: any): void;
|
|
7
7
|
setActiveSubmission(form: HTMLFormElement | null, button: HTMLButtonElement | null, originalButtonText: string | null): void;
|
|
8
|
-
openModal(modalId: string): void;
|
|
9
|
-
closeModal(modalId: string): void;
|
|
10
8
|
getWebSocketReadyState(): number | undefined;
|
|
11
9
|
triggerPendingUploads(uploadName: string): void;
|
|
12
10
|
}
|
|
@@ -20,8 +18,12 @@ export declare class EventDelegator {
|
|
|
20
18
|
private extractButtonData;
|
|
21
19
|
setupEventDelegation(): void;
|
|
22
20
|
setupWindowEventDelegation(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Sets up click-away detection for lvt-el:*:on:click-away attributes.
|
|
23
|
+
* Instead of routing to a server action, click-away triggers client-side
|
|
24
|
+
* DOM manipulation via executeAction from reactive-attributes.
|
|
25
|
+
*/
|
|
23
26
|
setupClickAwayDelegation(): void;
|
|
24
|
-
setupModalDelegation(): void;
|
|
25
27
|
/**
|
|
26
28
|
* Sets up focus trapping for elements with lvt-focus-trap attribute.
|
|
27
29
|
* Focus is trapped within the element, cycling through focusable elements
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-delegation.d.ts","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-delegation.d.ts","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAa9C,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAAC;IACpC,sBAAsB,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,mBAAmB,CACjB,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAChC,IAAI,CAAC;IACR,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,MAAM;IAGjC,OAAO,CAAC,iBAAiB;IAYzB,oBAAoB,IAAI,IAAI;IA8X5B,0BAA0B,IAAI,IAAI;IA8FlC;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;IAuChC;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;IAmGhC;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;CA0GjC"}
|