@glitchr/transparent 1.0.52 → 1.0.54

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glitchr/transparent",
3
- "version": "1.0.52",
3
+ "version": "1.0.54",
4
4
  "description": "Transparent SPA Application",
5
5
  "main": "src/index.js",
6
6
  "access": "public",
File without changes
@@ -425,6 +425,8 @@
425
425
  else console.debug("Transparent is running..");
426
426
  }
427
427
 
428
+ if(!isReady) dispatchEvent(new Event('transparent:'+Transparent.state.FIRST));
429
+
428
430
  isReady = true;
429
431
 
430
432
  dispatchEvent(new Event('transparent:'+Transparent.state.READY));
@@ -832,29 +834,30 @@
832
834
  Transparent.callback(function() {
833
835
 
834
836
  Transparent.html.removeClass(Transparent.state.ACTIVEOUT);
835
- if(!Transparent.html.hasClass(Transparent.state.POSTACTIVE)){
836
-
837
- Transparent.html.removeClass(Transparent.state.POSTACTIVE);
838
- dispatchEvent(new Event('transparent:'+Transparent.state.POSTACTIVE));
839
- }
840
-
841
837
  if(Transparent.html.hasClass(Transparent.state.LOADING)) {
842
838
 
843
- dispatchEvent(new Event('transparent:load'));
839
+ dispatchEvent(new Event('transparent:'+Transparent.state.LOAD));
844
840
 
845
841
  Object.values(Transparent.state).forEach(e => Transparent.html.removeClass(e));
846
842
  Transparent.html.addClass(Transparent.state.ROOT + " " + Transparent.state.READY);
847
-
848
- } else {
849
-
850
- Transparent.html.removeClass(Transparent.state.POSTACTIVE);
851
843
  }
844
+
845
+ Transparent.html.addClass(Transparent.state.POSTACTIVE);
846
+
847
+ var active = Transparent.activeTime();
848
+ Transparent.callback(function() {
849
+
850
+ Transparent.html.removeClass(Transparent.state.POSTACTIVE);
851
+ dispatchEvent(new Event('transparent:'+Transparent.state.POSTACTIVE));
852
852
 
853
+ }, active.duration+active.delay);
854
+
853
855
  }, active.duration);
854
856
 
855
857
  }.bind(this), active.delay);
856
858
  }
857
859
 
860
+
858
861
  Transparent.replaceCanvases = function(dom) {
859
862
 
860
863
  // Extract existing canvas to avoid redrawing them.. (time consuming)
@@ -1428,6 +1431,7 @@
1428
1431
  return elementsXY;
1429
1432
  }
1430
1433
 
1434
+ var ajaxSemaphore = false;
1431
1435
  var formSubmission = false;
1432
1436
  function __main__(e) {
1433
1437
 
@@ -1486,7 +1490,7 @@
1486
1490
  if ($(e.target).hasClass(Transparent.state.RELOAD)) return;
1487
1491
  if ($(form).hasClass(Transparent.state.RELOAD)) return;
1488
1492
 
1489
- if(e.type == "submit")
1493
+ if(e.type == "submit") // NB: This doesn't work if a button is generated afterward..
1490
1494
  $(form).find(':submit').attr('disabled', 'disabled');
1491
1495
  }
1492
1496
 
@@ -1508,6 +1512,7 @@
1508
1512
 
1509
1513
  e.preventDefault();
1510
1514
 
1515
+ if (ajaxSemaphore) return;
1511
1516
  if (url == location) return;
1512
1517
 
1513
1518
  if((e.type == Transparent.state.CLICK || e.type == Transparent.state.HASHCHANGE) && url.pathname == location.pathname && url.search == location.search && type != "POST") {
@@ -1543,6 +1548,8 @@
1543
1548
 
1544
1549
  function handleResponse(uuid, status = 200, method = null, data = null, xhr = null, request = null) {
1545
1550
 
1551
+ ajaxSemaphore = false;
1552
+
1546
1553
  var responseURL;
1547
1554
  responseURL = xhr !== null ? xhr.responseURL : url.href;
1548
1555
 
@@ -1584,6 +1591,7 @@
1584
1591
  }
1585
1592
 
1586
1593
  if(form) {
1594
+
1587
1595
  $(form).find(':submit').removeAttr('disabled');
1588
1596
  form.reset();
1589
1597
  }
@@ -1694,6 +1702,8 @@
1694
1702
  // Submit ajax request..
1695
1703
  if(form) form.dispatchEvent(new SubmitEvent("submit", { submitter: formTrigger }));
1696
1704
  var xhr = new XMLHttpRequest();
1705
+
1706
+ ajaxSemaphore = true;
1697
1707
  return jQuery.ajax({
1698
1708
  url: url.href,
1699
1709
  type: type,