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.
@@ -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
- let [transition_start, running, transition_end] = transition;
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
- dom_default.putSticky(el, "toggle", (currentEl) => currentEl.style.display = display || "block");
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
- dom_default.putSticky(el, "toggle", (currentEl) => currentEl.style.display = display || "block");
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") {