jwtbutler 2.0.6 → 2.0.7

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.
@@ -352,12 +352,17 @@ var jwtbutler = class {
352
352
  renderLoginFormWithPromise() {
353
353
  return new Promise((resolve, reject) => {
354
354
  this.buildUpLoginFormHtml();
355
+ this.bindLoginFormSubmit().then(() => {
356
+ resolve();
357
+ }).catch((error) => {
358
+ reject(error);
359
+ });
355
360
  this.captchaRender().then(() => {
356
- this.bindLoginFormSubmit().then(() => {
357
- resolve();
358
- }).catch((error) => {
359
- reject(error);
360
- });
361
+ let submit = document.querySelector("." + this.config.login_form_class + " form")?.querySelector("button[type=\"submit\"], input[type=\"submit\"]");
362
+ if (submit !== null && submit !== void 0) {
363
+ submit.disabled = false;
364
+ submit.removeAttribute("aria-busy");
365
+ }
361
366
  this.triggerLoginFormRenderedEvent();
362
367
  }).catch((error) => {
363
368
  reject(error);
@@ -392,7 +397,11 @@ var jwtbutler = class {
392
397
  </div>`;
393
398
  let dom = new DOMParser().parseFromString(this.config.login_form, "text/html").body.childNodes[0];
394
399
  this.config.login_form_class = dom.getAttribute("class").split(" ")[0];
395
- let submit = dom.querySelector("input[type=\"submit\"]");
400
+ let submit = dom.querySelector("button[type=\"submit\"], input[type=\"submit\"]");
401
+ if (this.captchaEnabled() && submit !== null) {
402
+ submit.disabled = true;
403
+ submit.setAttribute("aria-busy", "true");
404
+ }
396
405
  let submitItem = submit !== null ? submit.closest("." + this.config.login_form_class + "__item") || submit.closest("li") || submit.parentElement : null;
397
406
  let itemTag = submitItem !== null && submitItem.tagName.toLowerCase() === "li" ? "li" : "div";
398
407
  if (this.captchaEnabled() && dom.querySelector("." + this.config.login_form_class + "__captcha") === null) {
@@ -574,8 +583,13 @@ var jwtbutler = class {
574
583
  return new Promise((resolve, reject) => {
575
584
  let dom = document.querySelector("." + this.config.login_form_class), form = dom.querySelector("form");
576
585
  form.addEventListener("submit", (e) => {
586
+ let submit = form.querySelector("button[type=\"submit\"], input[type=\"submit\"]");
587
+ if (submit?.getAttribute("aria-busy") === "true") {
588
+ e.preventDefault();
589
+ return;
590
+ }
577
591
  this.addLoadingState("logging-in");
578
- if (form.querySelector("input[type=\"submit\"]") !== null) form.querySelector("input[type=\"submit\"]").disabled = true;
592
+ if (submit !== null) submit.disabled = true;
579
593
  helpers.remove(dom.querySelector("." + this.config.login_form_class + "__error"));
580
594
  let body = {
581
595
  [this.config.auth_login]: form.querySelector("input[name=\"" + this.config.auth_login + "\"]").value,
@@ -590,7 +604,7 @@ var jwtbutler = class {
590
604
  cache: "no-cache"
591
605
  });
592
606
  }).then((res) => res.json()).catch((error) => error).then((response) => {
593
- if (form.querySelector("input[type=\"submit\"]") !== null) form.querySelector("input[type=\"submit\"]").disabled = false;
607
+ if (submit !== null) submit.disabled = false;
594
608
  if (response !== void 0 && response !== null && "success" in response && response.success === true) {
595
609
  helpers.remove(document.querySelector("." + this.config.login_form_class));
596
610
  this.setCookies(response.data.access_token).then(() => {
package/package.json CHANGED
@@ -65,7 +65,7 @@
65
65
  "uuid": "^11.1.1"
66
66
  },
67
67
  "name": "jwtbutler",
68
- "version": "2.0.6",
68
+ "version": "2.0.7",
69
69
  "description": "",
70
70
  "main": "_js/_build/script.js",
71
71
  "files": [