phoenix_live_view 0.18.13 → 0.18.15
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 +5 -1
- package/assets/js/phoenix_live_view/dom.js +14 -0
- package/assets/js/phoenix_live_view/js.js +9 -6
- package/assets/js/phoenix_live_view/live_socket.js +10 -0
- package/assets/package.json +1 -1
- package/package.json +1 -1
- package/priv/static/phoenix_live_view.cjs.js +28 -6
- package/priv/static/phoenix_live_view.cjs.js.map +2 -2
- package/priv/static/phoenix_live_view.esm.js +28 -6
- package/priv/static/phoenix_live_view.esm.js.map +2 -2
- package/priv/static/phoenix_live_view.js +28 -6
- package/priv/static/phoenix_live_view.min.js +6 -4
|
@@ -498,6 +498,18 @@ var DOM = {
|
|
|
498
498
|
el.classList.add(PHX_NO_FEEDBACK_CLASS);
|
|
499
499
|
}
|
|
500
500
|
},
|
|
501
|
+
resetForm(form, phxFeedbackFor) {
|
|
502
|
+
Array.from(form.elements).forEach((input) => {
|
|
503
|
+
let query = `[${phxFeedbackFor}="${input.id}"],
|
|
504
|
+
[${phxFeedbackFor}="${input.name}"],
|
|
505
|
+
[${phxFeedbackFor}="${input.name.replace(/\[\]$/, "")}"]`;
|
|
506
|
+
this.deletePrivate(input, PHX_HAS_FOCUSED);
|
|
507
|
+
this.deletePrivate(input, PHX_HAS_SUBMITTED);
|
|
508
|
+
this.all(document, query, (feedbackEl) => {
|
|
509
|
+
feedbackEl.classList.add(PHX_NO_FEEDBACK_CLASS);
|
|
510
|
+
});
|
|
511
|
+
});
|
|
512
|
+
},
|
|
501
513
|
showError(inputEl, phxFeedbackFor) {
|
|
502
514
|
if (inputEl.id || inputEl.name) {
|
|
503
515
|
this.all(inputEl.form, `[${phxFeedbackFor}="${inputEl.id}"], [${phxFeedbackFor}="${inputEl.name}"]`, (el) => {
|
|
@@ -2243,10 +2255,7 @@ var JS = {
|
|
|
2243
2255
|
this.addOrRemoveClasses(el, [], names, transition, time, view);
|
|
2244
2256
|
},
|
|
2245
2257
|
exec_transition(eventType, phxEvent, view, sourceEl, el, { time, transition }) {
|
|
2246
|
-
|
|
2247
|
-
let onStart = () => this.addOrRemoveClasses(el, transition_start.concat(running), []);
|
|
2248
|
-
let onDone = () => this.addOrRemoveClasses(el, transition_end, transition_start.concat(running));
|
|
2249
|
-
view.transition(time, onStart, onDone);
|
|
2258
|
+
this.addOrRemoveClasses(el, [], [], transition, time, view);
|
|
2250
2259
|
},
|
|
2251
2260
|
exec_toggle(eventType, phxEvent, view, sourceEl, el, { display, ins, outs, time }) {
|
|
2252
2261
|
this.toggle(eventType, view, el, display, ins, outs, time);
|
|
@@ -2297,7 +2306,8 @@ var JS = {
|
|
|
2297
2306
|
}
|
|
2298
2307
|
let onStart = () => {
|
|
2299
2308
|
this.addOrRemoveClasses(el, inStartClasses, outClasses.concat(outStartClasses).concat(outEndClasses));
|
|
2300
|
-
|
|
2309
|
+
let stickyDisplay = display || this.defaultDisplay(el);
|
|
2310
|
+
dom_default.putSticky(el, "toggle", (currentEl) => currentEl.style.display = stickyDisplay);
|
|
2301
2311
|
window.requestAnimationFrame(() => {
|
|
2302
2312
|
this.addOrRemoveClasses(el, inClasses, []);
|
|
2303
2313
|
window.requestAnimationFrame(() => this.addOrRemoveClasses(el, inEndClasses, inStartClasses));
|
|
@@ -2319,7 +2329,8 @@ var JS = {
|
|
|
2319
2329
|
} else {
|
|
2320
2330
|
window.requestAnimationFrame(() => {
|
|
2321
2331
|
el.dispatchEvent(new Event("phx:show-start"));
|
|
2322
|
-
|
|
2332
|
+
let stickyDisplay = display || this.defaultDisplay(el);
|
|
2333
|
+
dom_default.putSticky(el, "toggle", (currentEl) => currentEl.style.display = stickyDisplay);
|
|
2323
2334
|
el.dispatchEvent(new Event("phx:show-end"));
|
|
2324
2335
|
});
|
|
2325
2336
|
}
|
|
@@ -2364,6 +2375,9 @@ var JS = {
|
|
|
2364
2375
|
},
|
|
2365
2376
|
filterToEls(sourceEl, { to }) {
|
|
2366
2377
|
return to ? dom_default.all(document, to) : [sourceEl];
|
|
2378
|
+
},
|
|
2379
|
+
defaultDisplay(el) {
|
|
2380
|
+
return { tr: "table-row", td: "table-cell" }[el.tagName.toLowerCase()] || "block";
|
|
2367
2381
|
}
|
|
2368
2382
|
};
|
|
2369
2383
|
var js_default = JS;
|
|
@@ -4164,6 +4178,14 @@ var LiveSocket = class {
|
|
|
4164
4178
|
});
|
|
4165
4179
|
}, false);
|
|
4166
4180
|
}
|
|
4181
|
+
this.on("reset", (e) => {
|
|
4182
|
+
let form = e.target;
|
|
4183
|
+
dom_default.resetForm(form, this.binding(PHX_FEEDBACK_FOR));
|
|
4184
|
+
let input = Array.from(form.elements).find((el) => el.type === "reset");
|
|
4185
|
+
window.requestAnimationFrame(() => {
|
|
4186
|
+
input.dispatchEvent(new Event("input", { bubbles: true, cancelable: false }));
|
|
4187
|
+
});
|
|
4188
|
+
});
|
|
4167
4189
|
}
|
|
4168
4190
|
debounce(el, event, eventType, callback) {
|
|
4169
4191
|
if (eventType === "blur" || eventType === "focusout") {
|