@feathery/react 2.15.0 → 2.15.2

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.
Files changed (106) hide show
  1. package/cjs/Form/index.d.ts.map +1 -1
  2. package/cjs/Form/logic.d.ts.map +1 -1
  3. package/cjs/elements/fields/AddressLine1Field/index.d.ts.map +1 -1
  4. package/cjs/{fthry_FormControl.C8oeoDk3.js → fthry_FormControl.CZhSI7ZP.js} +1 -1
  5. package/cjs/{fthry_InlineTooltip.CRRFOiO4.js → fthry_InlineTooltip.BLxhhDuP.js} +2 -2
  6. package/cjs/{fthry_Overlay.CMYptYVH.js → fthry_Overlay.DX647lyL.js} +1 -1
  7. package/cjs/{fthry_PaymentMethodField.C_yV3aay.js → fthry_PaymentMethodField.DwYI96Gn.js} +4 -4
  8. package/cjs/{fthry_Placeholder.xDn0I29f.js → fthry_Placeholder.eggaVDQj.js} +1 -1
  9. package/cjs/{fthry_ShowEyeIcon.COZczYEG.js → fthry_ShowEyeIcon.CUX7pJin.js} +1 -1
  10. package/cjs/{fthry_index.CFl7Tra-.js → fthry_index.B1CkkjWn.js} +6 -6
  11. package/cjs/{fthry_index.B5Nc9EIn.js → fthry_index.B6zj96av.js} +1833 -45
  12. package/cjs/{fthry_index.CQ3OgNZu.js → fthry_index.BA7SCFjL.js} +1 -1
  13. package/cjs/{fthry_index.Db8Zj-xl.js → fthry_index.BANnK-BV.js} +2 -2
  14. package/cjs/{fthry_index.Ct-olYcX.js → fthry_index.BDTST35w.js} +1 -1
  15. package/cjs/{fthry_index.B5aSeoEj.js → fthry_index.BN8zLfup.js} +4 -4
  16. package/cjs/{fthry_index.BdfASO2V.js → fthry_index.BSCmisU5.js} +6 -6
  17. package/cjs/{fthry_index.BAis6iAm.js → fthry_index.BfGtKml0.js} +3 -3
  18. package/cjs/{fthry_index.D35rnGh5.js → fthry_index.BjCAubFj.js} +1 -1
  19. package/cjs/{fthry_index.CgatqFlS.js → fthry_index.BzhucXqv.js} +2 -2
  20. package/cjs/{fthry_index.C97Bm277.js → fthry_index.CRDnACxw.js} +4 -4
  21. package/cjs/{fthry_index.ByYAaIPz.js → fthry_index.CZOSIfEV.js} +6 -6
  22. package/cjs/{fthry_index.CfGx505W.js → fthry_index.CoJCmnOp.js} +1 -1
  23. package/cjs/{fthry_index.BZzFi9o3.js → fthry_index.Cp5mHHk3.js} +7 -6
  24. package/cjs/{fthry_index.BV9FIqI3.js → fthry_index.DB4KHK9K.js} +5 -5
  25. package/cjs/{fthry_index.BokP8_1j.js → fthry_index.DEqnH31I.js} +5 -5
  26. package/cjs/{fthry_index.Be_wKtBW.js → fthry_index.DXh3tbd1.js} +3 -3
  27. package/cjs/{fthry_index.CoR2X1u6.js → fthry_index.DanO29mY.js} +8 -8
  28. package/cjs/{fthry_index.BvXec6y1.js → fthry_index.DbcTkrx8.js} +1 -1
  29. package/cjs/{fthry_index.Dm94Mor0.js → fthry_index.DpwSZaXh.js} +1 -1
  30. package/cjs/{fthry_index.Dzq-7u_A.js → fthry_index.EU1uftki.js} +5 -5
  31. package/cjs/{fthry_index.Iw93ZIvk.js → fthry_index.HFaIUSxu.js} +1 -1
  32. package/cjs/{fthry_index.CPkoG8dL.js → fthry_index.bTWf3wVZ.js} +4 -4
  33. package/cjs/{fthry_index.B9CITASf.js → fthry_index.ujHj1dvo.js} +1 -1
  34. package/cjs/{fthry_input.DjhEftHE.js → fthry_input.DDLPWCri.js} +1 -1
  35. package/cjs/{fthry_script.CEXFQk2h.js → fthry_script.Cw49lCOF.js} +1 -1
  36. package/cjs/{fthry_styles.twMOjtIt.js → fthry_styles.DyY_xRrD.js} +1 -1
  37. package/cjs/{fthry_useElementSize.CMss2qLc.js → fthry_useElementSize.B6qHp4zN.js} +1 -1
  38. package/cjs/{fthry_useSalesforceSync.GHaAu-dd.js → fthry_useSalesforceSync.DP3b2FKu.js} +1 -1
  39. package/cjs/{fthry_webfontloader.CZxQtgFm.js → fthry_webfontloader.CoyxhM39.js} +1 -1
  40. package/cjs/index.d.ts +1 -0
  41. package/cjs/index.d.ts.map +1 -1
  42. package/cjs/index.js +1 -1
  43. package/cjs/utils/eventQueue.d.ts +26 -0
  44. package/cjs/utils/eventQueue.d.ts.map +1 -0
  45. package/cjs/utils/featheryClient/index.d.ts +7 -0
  46. package/cjs/utils/featheryClient/index.d.ts.map +1 -1
  47. package/cjs/utils/formContext.d.ts +1 -0
  48. package/cjs/utils/formContext.d.ts.map +1 -1
  49. package/cjs/utils/internalState.d.ts +1 -0
  50. package/cjs/utils/internalState.d.ts.map +1 -1
  51. package/dist/Form/index.d.ts.map +1 -1
  52. package/dist/Form/logic.d.ts.map +1 -1
  53. package/dist/elements/fields/AddressLine1Field/index.d.ts.map +1 -1
  54. package/dist/{fthry_FormControl.BdmdMzA3.js → fthry_FormControl.pynS9Imy.js} +1 -1
  55. package/dist/{fthry_InlineTooltip.DRPooJGa.js → fthry_InlineTooltip.fbWGkrAv.js} +2 -2
  56. package/dist/{fthry_Overlay.DSfIRMWh.js → fthry_Overlay.ByTdlq1g.js} +1 -1
  57. package/dist/{fthry_PaymentMethodField.C2kDTnuL.js → fthry_PaymentMethodField.CPOf1iA4.js} +4 -4
  58. package/dist/{fthry_Placeholder.BYxBlfxe.js → fthry_Placeholder.DVLjngYh.js} +1 -1
  59. package/dist/{fthry_ShowEyeIcon.DcuxGpJk.js → fthry_ShowEyeIcon.Bp9QY90b.js} +1 -1
  60. package/dist/{fthry_index.DCKiab_1.js → fthry_index.252mvAiR.js} +3 -3
  61. package/dist/{fthry_index.CkEibXDT.js → fthry_index.8lndGH_r.js} +6 -6
  62. package/dist/{fthry_index.BD6daAle.js → fthry_index.An6X1bIc.js} +5 -5
  63. package/dist/{fthry_index.CCtbaItI.js → fthry_index.B0vwUF95.js} +5 -5
  64. package/dist/{fthry_index.DSkVpyvV.js → fthry_index.BPH2EnpZ.js} +1833 -45
  65. package/dist/{fthry_index.C0TSdYY1.js → fthry_index.BTzaBsCg.js} +1 -1
  66. package/dist/{fthry_index.4fMPrW44.js → fthry_index.BU4UE1sU.js} +4 -4
  67. package/dist/{fthry_index.BuGMpxqA.js → fthry_index.Ba9tRElL.js} +1 -1
  68. package/dist/{fthry_index.DkSTwhvF.js → fthry_index.BdCDxxfG.js} +1 -1
  69. package/dist/{fthry_index.uw0MJJ4F.js → fthry_index.BxQkJS7f.js} +1 -1
  70. package/dist/{fthry_index.BIkZtQJH.js → fthry_index.C1kFKyCH.js} +7 -6
  71. package/dist/{fthry_index.BXiUUqma.js → fthry_index.CFVO0drz.js} +2 -2
  72. package/dist/{fthry_index.DvV-_9rQ.js → fthry_index.CI18NEpR.js} +6 -6
  73. package/dist/{fthry_index.COrbe5-R.js → fthry_index.C_g49tb4.js} +8 -8
  74. package/dist/{fthry_index.D6uzSPi5.js → fthry_index.CcXjEG71.js} +5 -5
  75. package/dist/{fthry_index.CxYSZnO_.js → fthry_index.CxPrJCG7.js} +4 -4
  76. package/dist/{fthry_index.Cocw39qz.js → fthry_index.DMrogAPL.js} +1 -1
  77. package/dist/{fthry_index.B-bHDKSO.js → fthry_index.DsaDQSjY.js} +1 -1
  78. package/dist/{fthry_index.D9VkJYNy.js → fthry_index.Hf19u6bh.js} +3 -3
  79. package/dist/{fthry_index.DwzU97uW.js → fthry_index.Tay5ya9r.js} +4 -4
  80. package/dist/{fthry_index.Ox88biXC.js → fthry_index.XqetSJci.js} +1 -1
  81. package/dist/{fthry_index.BF_Plcr0.js → fthry_index.f_bJZ-Qj.js} +2 -2
  82. package/dist/{fthry_index.Cz1sN7j0.js → fthry_index.o4PxfOJO.js} +6 -6
  83. package/dist/{fthry_index.IjpiaOO-.js → fthry_index.uyi04ekt.js} +1 -1
  84. package/dist/{fthry_input.BJLJlGVj.js → fthry_input.BozedSiT.js} +1 -1
  85. package/dist/{fthry_script.BL_LvOsU.js → fthry_script.O8zBOlCA.js} +1 -1
  86. package/dist/{fthry_styles.Bgjx59v5.js → fthry_styles.BT0jpQ03.js} +1 -1
  87. package/dist/{fthry_useElementSize.COmxJss_.js → fthry_useElementSize.C9rdkcOU.js} +1 -1
  88. package/dist/{fthry_useSalesforceSync.BZM69NNS.js → fthry_useSalesforceSync.1klZ-qUM.js} +1 -1
  89. package/dist/{fthry_webfontloader.BonjOYue.js → fthry_webfontloader.CoDBzqSo.js} +1 -1
  90. package/dist/index.d.ts +1 -0
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +1 -1
  93. package/dist/utils/eventQueue.d.ts +26 -0
  94. package/dist/utils/eventQueue.d.ts.map +1 -0
  95. package/dist/utils/featheryClient/index.d.ts +7 -0
  96. package/dist/utils/featheryClient/index.d.ts.map +1 -1
  97. package/dist/utils/formContext.d.ts +1 -0
  98. package/dist/utils/formContext.d.ts.map +1 -1
  99. package/dist/utils/internalState.d.ts +1 -0
  100. package/dist/utils/internalState.d.ts.map +1 -1
  101. package/package.json +4 -3
  102. package/umd/{277.94ae8bf6190836d1dceb.js → 277.d9907ecd5dc2117c9171.js} +1 -1
  103. package/umd/{509.4236d4d76d2fa2ccd971.js → 509.341a4196aad912adb28d.js} +2 -2
  104. package/umd/{AddressField.3523efd23175117d47a5.js → AddressField.ec97334fe233830bc05b.js} +1 -1
  105. package/umd/index.js +1 -1
  106. /package/umd/{509.4236d4d76d2fa2ccd971.js.LICENSE.txt → 509.341a4196aad912adb28d.js.LICENSE.txt} +0 -0
@@ -634,7 +634,7 @@ function identifier (index) {
634
634
  * @return {object[]}
635
635
  */
636
636
  function compile (value) {
637
- return dealloc(parse$1('', null, null, null, [''], value = alloc(value), 0, [0], value))
637
+ return dealloc(parse$2('', null, null, null, [''], value = alloc(value), 0, [0], value))
638
638
  }
639
639
 
640
640
  /**
@@ -649,7 +649,7 @@ function compile (value) {
649
649
  * @param {string[]} declarations
650
650
  * @return {object}
651
651
  */
652
- function parse$1 (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
652
+ function parse$2 (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
653
653
  var index = 0;
654
654
  var offset = 0;
655
655
  var length = pseudo;
@@ -718,15 +718,15 @@ function parse$1 (value, root, parent, rule, rules, rulesets, pseudo, points, de
718
718
 
719
719
  if (character === 123)
720
720
  if (offset === 0)
721
- parse$1(characters, root, reference, reference, props, rulesets, length, points, children);
721
+ parse$2(characters, root, reference, reference, props, rulesets, length, points, children);
722
722
  else
723
723
  switch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {
724
724
  // d l m s
725
725
  case 100: case 108: case 109: case 115:
726
- parse$1(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children);
726
+ parse$2(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children);
727
727
  break
728
728
  default:
729
- parse$1(characters, reference, reference, reference, [''], children, 0, points, children);
729
+ parse$2(characters, reference, reference, reference, [''], children, 0, points, children);
730
730
  }
731
731
  }
732
732
 
@@ -22281,9 +22281,7 @@ var getFormContext = function (formUuid) {
22281
22281
  return [2 /*return*/, formState.runAIExtraction(extractionId, options, pages)];
22282
22282
  }); });
22283
22283
  },
22284
- forwardInboxEmail: function (options) {
22285
- return formState.forwardInboxEmail(options);
22286
- },
22284
+ forwardInboxEmail: function (options) { return formState.forwardInboxEmail(options); },
22287
22285
  setCalendlyUrl: function (url) { return formState.setCalendlyUrl(url); },
22288
22286
  applyAlloyJourney: function (journeyToken, entities) {
22289
22287
  return formState.client.alloyJourneyApplication(journeyToken, entities);
@@ -35610,10 +35608,1637 @@ Parser.acorn = {
35610
35608
  //
35611
35609
  // [estree]: https://github.com/estree/estree
35612
35610
 
35613
- function parse(input, options) {
35611
+ function parse$1(input, options) {
35614
35612
  return Parser.parse(input, options)
35615
35613
  }
35616
35614
 
35615
+ var dummyValue = "✖";
35616
+
35617
+ function isDummy(node) { return node.name === dummyValue }
35618
+
35619
+ function noop() {}
35620
+
35621
+ var LooseParser = function LooseParser(input, options) {
35622
+ if ( options === void 0 ) options = {};
35623
+
35624
+ this.toks = this.constructor.BaseParser.tokenizer(input, options);
35625
+ this.options = this.toks.options;
35626
+ this.input = this.toks.input;
35627
+ this.tok = this.last = {type: types$1.eof, start: 0, end: 0};
35628
+ this.tok.validateRegExpFlags = noop;
35629
+ this.tok.validateRegExpPattern = noop;
35630
+ if (this.options.locations) {
35631
+ var here = this.toks.curPosition();
35632
+ this.tok.loc = new SourceLocation(this.toks, here, here);
35633
+ }
35634
+ this.ahead = []; // Tokens ahead
35635
+ this.context = []; // Indentation contexted
35636
+ this.curIndent = 0;
35637
+ this.curLineStart = 0;
35638
+ this.nextLineStart = this.lineEnd(this.curLineStart) + 1;
35639
+ this.inAsync = false;
35640
+ this.inGenerator = false;
35641
+ this.inFunction = false;
35642
+ };
35643
+
35644
+ LooseParser.prototype.startNode = function startNode () {
35645
+ return new Node(this.toks, this.tok.start, this.options.locations ? this.tok.loc.start : null)
35646
+ };
35647
+
35648
+ LooseParser.prototype.storeCurrentPos = function storeCurrentPos () {
35649
+ return this.options.locations ? [this.tok.start, this.tok.loc.start] : this.tok.start
35650
+ };
35651
+
35652
+ LooseParser.prototype.startNodeAt = function startNodeAt (pos) {
35653
+ if (this.options.locations) {
35654
+ return new Node(this.toks, pos[0], pos[1])
35655
+ } else {
35656
+ return new Node(this.toks, pos)
35657
+ }
35658
+ };
35659
+
35660
+ LooseParser.prototype.finishNode = function finishNode (node, type) {
35661
+ node.type = type;
35662
+ node.end = this.last.end;
35663
+ if (this.options.locations)
35664
+ { node.loc.end = this.last.loc.end; }
35665
+ if (this.options.ranges)
35666
+ { node.range[1] = this.last.end; }
35667
+ return node
35668
+ };
35669
+
35670
+ LooseParser.prototype.dummyNode = function dummyNode (type) {
35671
+ var dummy = this.startNode();
35672
+ dummy.type = type;
35673
+ dummy.end = dummy.start;
35674
+ if (this.options.locations)
35675
+ { dummy.loc.end = dummy.loc.start; }
35676
+ if (this.options.ranges)
35677
+ { dummy.range[1] = dummy.start; }
35678
+ this.last = {type: types$1.name, start: dummy.start, end: dummy.start, loc: dummy.loc};
35679
+ return dummy
35680
+ };
35681
+
35682
+ LooseParser.prototype.dummyIdent = function dummyIdent () {
35683
+ var dummy = this.dummyNode("Identifier");
35684
+ dummy.name = dummyValue;
35685
+ return dummy
35686
+ };
35687
+
35688
+ LooseParser.prototype.dummyString = function dummyString () {
35689
+ var dummy = this.dummyNode("Literal");
35690
+ dummy.value = dummy.raw = dummyValue;
35691
+ return dummy
35692
+ };
35693
+
35694
+ LooseParser.prototype.eat = function eat (type) {
35695
+ if (this.tok.type === type) {
35696
+ this.next();
35697
+ return true
35698
+ } else {
35699
+ return false
35700
+ }
35701
+ };
35702
+
35703
+ LooseParser.prototype.isContextual = function isContextual (name) {
35704
+ return this.tok.type === types$1.name && this.tok.value === name
35705
+ };
35706
+
35707
+ LooseParser.prototype.eatContextual = function eatContextual (name) {
35708
+ return this.tok.value === name && this.eat(types$1.name)
35709
+ };
35710
+
35711
+ LooseParser.prototype.canInsertSemicolon = function canInsertSemicolon () {
35712
+ return this.tok.type === types$1.eof || this.tok.type === types$1.braceR ||
35713
+ lineBreak.test(this.input.slice(this.last.end, this.tok.start))
35714
+ };
35715
+
35716
+ LooseParser.prototype.semicolon = function semicolon () {
35717
+ return this.eat(types$1.semi)
35718
+ };
35719
+
35720
+ LooseParser.prototype.expect = function expect (type) {
35721
+ if (this.eat(type)) { return true }
35722
+ for (var i = 1; i <= 2; i++) {
35723
+ if (this.lookAhead(i).type === type) {
35724
+ for (var j = 0; j < i; j++) { this.next(); }
35725
+ return true
35726
+ }
35727
+ }
35728
+ };
35729
+
35730
+ LooseParser.prototype.pushCx = function pushCx () {
35731
+ this.context.push(this.curIndent);
35732
+ };
35733
+
35734
+ LooseParser.prototype.popCx = function popCx () {
35735
+ this.curIndent = this.context.pop();
35736
+ };
35737
+
35738
+ LooseParser.prototype.lineEnd = function lineEnd (pos) {
35739
+ while (pos < this.input.length && !isNewLine(this.input.charCodeAt(pos))) { ++pos; }
35740
+ return pos
35741
+ };
35742
+
35743
+ LooseParser.prototype.indentationAfter = function indentationAfter (pos) {
35744
+ for (var count = 0;; ++pos) {
35745
+ var ch = this.input.charCodeAt(pos);
35746
+ if (ch === 32) { ++count; }
35747
+ else if (ch === 9) { count += this.options.tabSize; }
35748
+ else { return count }
35749
+ }
35750
+ };
35751
+
35752
+ LooseParser.prototype.closes = function closes (closeTok, indent, line, blockHeuristic) {
35753
+ if (this.tok.type === closeTok || this.tok.type === types$1.eof) { return true }
35754
+ return line !== this.curLineStart && this.curIndent < indent && this.tokenStartsLine() &&
35755
+ (!blockHeuristic || this.nextLineStart >= this.input.length ||
35756
+ this.indentationAfter(this.nextLineStart) < indent)
35757
+ };
35758
+
35759
+ LooseParser.prototype.tokenStartsLine = function tokenStartsLine () {
35760
+ for (var p = this.tok.start - 1; p >= this.curLineStart; --p) {
35761
+ var ch = this.input.charCodeAt(p);
35762
+ if (ch !== 9 && ch !== 32) { return false }
35763
+ }
35764
+ return true
35765
+ };
35766
+
35767
+ LooseParser.prototype.extend = function extend (name, f) {
35768
+ this[name] = f(this[name]);
35769
+ };
35770
+
35771
+ LooseParser.prototype.parse = function parse () {
35772
+ this.next();
35773
+ return this.parseTopLevel()
35774
+ };
35775
+
35776
+ LooseParser.extend = function extend () {
35777
+ var plugins = [], len = arguments.length;
35778
+ while ( len-- ) plugins[ len ] = arguments[ len ];
35779
+
35780
+ var cls = this;
35781
+ for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }
35782
+ return cls
35783
+ };
35784
+
35785
+ LooseParser.parse = function parse (input, options) {
35786
+ return new this(input, options).parse()
35787
+ };
35788
+
35789
+ // Allows plugins to extend the base parser / tokenizer used
35790
+ LooseParser.BaseParser = Parser;
35791
+
35792
+ var lp$2 = LooseParser.prototype;
35793
+
35794
+ function isSpace(ch) {
35795
+ return (ch < 14 && ch > 8) || ch === 32 || ch === 160 || isNewLine(ch)
35796
+ }
35797
+
35798
+ lp$2.next = function() {
35799
+ this.last = this.tok;
35800
+ if (this.ahead.length)
35801
+ { this.tok = this.ahead.shift(); }
35802
+ else
35803
+ { this.tok = this.readToken(); }
35804
+
35805
+ if (this.tok.start >= this.nextLineStart) {
35806
+ while (this.tok.start >= this.nextLineStart) {
35807
+ this.curLineStart = this.nextLineStart;
35808
+ this.nextLineStart = this.lineEnd(this.curLineStart) + 1;
35809
+ }
35810
+ this.curIndent = this.indentationAfter(this.curLineStart);
35811
+ }
35812
+ };
35813
+
35814
+ lp$2.readToken = function() {
35815
+ for (;;) {
35816
+ try {
35817
+ this.toks.next();
35818
+ if (this.toks.type === types$1.dot &&
35819
+ this.input.substr(this.toks.end, 1) === "." &&
35820
+ this.options.ecmaVersion >= 6) {
35821
+ this.toks.end++;
35822
+ this.toks.type = types$1.ellipsis;
35823
+ }
35824
+ return new Token(this.toks)
35825
+ } catch (e) {
35826
+ if (!(e instanceof SyntaxError)) { throw e }
35827
+
35828
+ // Try to skip some text, based on the error message, and then continue
35829
+ var msg = e.message, pos = e.raisedAt, replace = true;
35830
+ if (/unterminated/i.test(msg)) {
35831
+ pos = this.lineEnd(e.pos + 1);
35832
+ if (/string/.test(msg)) {
35833
+ replace = {start: e.pos, end: pos, type: types$1.string, value: this.input.slice(e.pos + 1, pos)};
35834
+ } else if (/regular expr/i.test(msg)) {
35835
+ var re = this.input.slice(e.pos, pos);
35836
+ try { re = new RegExp(re); } catch (e$1) { /* ignore compilation error due to new syntax */ }
35837
+ replace = {start: e.pos, end: pos, type: types$1.regexp, value: re};
35838
+ } else if (/template/.test(msg)) {
35839
+ replace = {
35840
+ start: e.pos,
35841
+ end: pos,
35842
+ type: types$1.template,
35843
+ value: this.input.slice(e.pos, pos)
35844
+ };
35845
+ } else {
35846
+ replace = false;
35847
+ }
35848
+ } else if (/invalid (unicode|regexp|number)|expecting unicode|octal literal|is reserved|directly after number|expected number in radix|numeric separator/i.test(msg)) {
35849
+ while (pos < this.input.length && !isSpace(this.input.charCodeAt(pos))) { ++pos; }
35850
+ } else if (/character escape|expected hexadecimal/i.test(msg)) {
35851
+ while (pos < this.input.length) {
35852
+ var ch = this.input.charCodeAt(pos++);
35853
+ if (ch === 34 || ch === 39 || isNewLine(ch)) { break }
35854
+ }
35855
+ } else if (/unexpected character/i.test(msg)) {
35856
+ pos++;
35857
+ replace = false;
35858
+ } else if (/regular expression/i.test(msg)) {
35859
+ replace = true;
35860
+ } else {
35861
+ throw e
35862
+ }
35863
+ this.resetTo(pos);
35864
+ if (replace === true) { replace = {start: pos, end: pos, type: types$1.name, value: dummyValue}; }
35865
+ if (replace) {
35866
+ if (this.options.locations)
35867
+ { replace.loc = new SourceLocation(
35868
+ this.toks,
35869
+ getLineInfo(this.input, replace.start),
35870
+ getLineInfo(this.input, replace.end)); }
35871
+ return replace
35872
+ }
35873
+ }
35874
+ }
35875
+ };
35876
+
35877
+ lp$2.resetTo = function(pos) {
35878
+ this.toks.pos = pos;
35879
+ this.toks.containsEsc = false;
35880
+ var ch = this.input.charAt(pos - 1);
35881
+ this.toks.exprAllowed = !ch || /[[{(,;:?/*=+\-~!|&%^<>]/.test(ch) ||
35882
+ /[enwfd]/.test(ch) &&
35883
+ /\b(case|else|return|throw|new|in|(instance|type)?of|delete|void)$/.test(this.input.slice(pos - 10, pos));
35884
+
35885
+ if (this.options.locations) {
35886
+ this.toks.curLine = 1;
35887
+ this.toks.lineStart = lineBreakG.lastIndex = 0;
35888
+ var match;
35889
+ while ((match = lineBreakG.exec(this.input)) && match.index < pos) {
35890
+ ++this.toks.curLine;
35891
+ this.toks.lineStart = match.index + match[0].length;
35892
+ }
35893
+ }
35894
+ };
35895
+
35896
+ lp$2.lookAhead = function(n) {
35897
+ while (n > this.ahead.length)
35898
+ { this.ahead.push(this.readToken()); }
35899
+ return this.ahead[n - 1]
35900
+ };
35901
+
35902
+ var lp$1 = LooseParser.prototype;
35903
+
35904
+ lp$1.parseTopLevel = function() {
35905
+ var node = this.startNodeAt(this.options.locations ? [0, getLineInfo(this.input, 0)] : 0);
35906
+ node.body = [];
35907
+ while (this.tok.type !== types$1.eof) { node.body.push(this.parseStatement()); }
35908
+ this.toks.adaptDirectivePrologue(node.body);
35909
+ this.last = this.tok;
35910
+ node.sourceType = this.options.sourceType === "commonjs" ? "script" : this.options.sourceType;
35911
+ return this.finishNode(node, "Program")
35912
+ };
35913
+
35914
+ lp$1.parseStatement = function() {
35915
+ var starttype = this.tok.type, node = this.startNode(), kind;
35916
+
35917
+ if (this.toks.isLet()) {
35918
+ starttype = types$1._var;
35919
+ kind = "let";
35920
+ }
35921
+
35922
+ switch (starttype) {
35923
+ case types$1._break: case types$1._continue:
35924
+ this.next();
35925
+ var isBreak = starttype === types$1._break;
35926
+ if (this.semicolon() || this.canInsertSemicolon()) {
35927
+ node.label = null;
35928
+ } else {
35929
+ node.label = this.tok.type === types$1.name ? this.parseIdent() : null;
35930
+ this.semicolon();
35931
+ }
35932
+ return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
35933
+
35934
+ case types$1._debugger:
35935
+ this.next();
35936
+ this.semicolon();
35937
+ return this.finishNode(node, "DebuggerStatement")
35938
+
35939
+ case types$1._do:
35940
+ this.next();
35941
+ node.body = this.parseStatement();
35942
+ node.test = this.eat(types$1._while) ? this.parseParenExpression() : this.dummyIdent();
35943
+ this.semicolon();
35944
+ return this.finishNode(node, "DoWhileStatement")
35945
+
35946
+ case types$1._for:
35947
+ this.next(); // `for` keyword
35948
+ var isAwait = this.options.ecmaVersion >= 9 && this.eatContextual("await");
35949
+
35950
+ this.pushCx();
35951
+ this.expect(types$1.parenL);
35952
+ if (this.tok.type === types$1.semi) { return this.parseFor(node, null) }
35953
+ var isLet = this.toks.isLet();
35954
+ var isAwaitUsing = this.toks.isAwaitUsing(true);
35955
+ var isUsing = !isAwaitUsing && this.toks.isUsing(true);
35956
+
35957
+ if (isLet || this.tok.type === types$1._var || this.tok.type === types$1._const || isUsing || isAwaitUsing) {
35958
+ var kind$1 = isLet ? "let" : isUsing ? "using" : isAwaitUsing ? "await using" : this.tok.value;
35959
+ var init$1 = this.startNode();
35960
+ if (isUsing || isAwaitUsing) {
35961
+ if (isAwaitUsing) { this.next(); }
35962
+ this.parseVar(init$1, true, kind$1);
35963
+ } else {
35964
+ init$1 = this.parseVar(init$1, true, kind$1);
35965
+ }
35966
+
35967
+ if (init$1.declarations.length === 1 && (this.tok.type === types$1._in || this.isContextual("of"))) {
35968
+ if (this.options.ecmaVersion >= 9 && this.tok.type !== types$1._in) {
35969
+ node.await = isAwait;
35970
+ }
35971
+ return this.parseForIn(node, init$1)
35972
+ }
35973
+ return this.parseFor(node, init$1)
35974
+ }
35975
+ var init = this.parseExpression(true);
35976
+ if (this.tok.type === types$1._in || this.isContextual("of")) {
35977
+ if (this.options.ecmaVersion >= 9 && this.tok.type !== types$1._in) {
35978
+ node.await = isAwait;
35979
+ }
35980
+ return this.parseForIn(node, this.toAssignable(init))
35981
+ }
35982
+ return this.parseFor(node, init)
35983
+
35984
+ case types$1._function:
35985
+ this.next();
35986
+ return this.parseFunction(node, true)
35987
+
35988
+ case types$1._if:
35989
+ this.next();
35990
+ node.test = this.parseParenExpression();
35991
+ node.consequent = this.parseStatement();
35992
+ node.alternate = this.eat(types$1._else) ? this.parseStatement() : null;
35993
+ return this.finishNode(node, "IfStatement")
35994
+
35995
+ case types$1._return:
35996
+ this.next();
35997
+ if (this.eat(types$1.semi) || this.canInsertSemicolon()) { node.argument = null; }
35998
+ else { node.argument = this.parseExpression(); this.semicolon(); }
35999
+ return this.finishNode(node, "ReturnStatement")
36000
+
36001
+ case types$1._switch:
36002
+ var blockIndent = this.curIndent, line = this.curLineStart;
36003
+ this.next();
36004
+ node.discriminant = this.parseParenExpression();
36005
+ node.cases = [];
36006
+ this.pushCx();
36007
+ this.expect(types$1.braceL);
36008
+
36009
+ var cur;
36010
+ while (!this.closes(types$1.braceR, blockIndent, line, true)) {
36011
+ if (this.tok.type === types$1._case || this.tok.type === types$1._default) {
36012
+ var isCase = this.tok.type === types$1._case;
36013
+ if (cur) { this.finishNode(cur, "SwitchCase"); }
36014
+ node.cases.push(cur = this.startNode());
36015
+ cur.consequent = [];
36016
+ this.next();
36017
+ if (isCase) { cur.test = this.parseExpression(); }
36018
+ else { cur.test = null; }
36019
+ this.expect(types$1.colon);
36020
+ } else {
36021
+ if (!cur) {
36022
+ node.cases.push(cur = this.startNode());
36023
+ cur.consequent = [];
36024
+ cur.test = null;
36025
+ }
36026
+ cur.consequent.push(this.parseStatement());
36027
+ }
36028
+ }
36029
+ if (cur) { this.finishNode(cur, "SwitchCase"); }
36030
+ this.popCx();
36031
+ this.eat(types$1.braceR);
36032
+ return this.finishNode(node, "SwitchStatement")
36033
+
36034
+ case types$1._throw:
36035
+ this.next();
36036
+ node.argument = this.parseExpression();
36037
+ this.semicolon();
36038
+ return this.finishNode(node, "ThrowStatement")
36039
+
36040
+ case types$1._try:
36041
+ this.next();
36042
+ node.block = this.parseBlock();
36043
+ node.handler = null;
36044
+ if (this.tok.type === types$1._catch) {
36045
+ var clause = this.startNode();
36046
+ this.next();
36047
+ if (this.eat(types$1.parenL)) {
36048
+ clause.param = this.toAssignable(this.parseExprAtom(), true);
36049
+ this.expect(types$1.parenR);
36050
+ } else {
36051
+ clause.param = null;
36052
+ }
36053
+ clause.body = this.parseBlock();
36054
+ node.handler = this.finishNode(clause, "CatchClause");
36055
+ }
36056
+ node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;
36057
+ if (!node.handler && !node.finalizer) { return node.block }
36058
+ return this.finishNode(node, "TryStatement")
36059
+
36060
+ case types$1._var:
36061
+ case types$1._const:
36062
+ return this.parseVar(node, false, kind || this.tok.value)
36063
+
36064
+ case types$1._while:
36065
+ this.next();
36066
+ node.test = this.parseParenExpression();
36067
+ node.body = this.parseStatement();
36068
+ return this.finishNode(node, "WhileStatement")
36069
+
36070
+ case types$1._with:
36071
+ this.next();
36072
+ node.object = this.parseParenExpression();
36073
+ node.body = this.parseStatement();
36074
+ return this.finishNode(node, "WithStatement")
36075
+
36076
+ case types$1.braceL:
36077
+ return this.parseBlock()
36078
+
36079
+ case types$1.semi:
36080
+ this.next();
36081
+ return this.finishNode(node, "EmptyStatement")
36082
+
36083
+ case types$1._class:
36084
+ return this.parseClass(true)
36085
+
36086
+ case types$1._import:
36087
+ if (this.options.ecmaVersion > 10) {
36088
+ var nextType = this.lookAhead(1).type;
36089
+ if (nextType === types$1.parenL || nextType === types$1.dot) {
36090
+ node.expression = this.parseExpression();
36091
+ this.semicolon();
36092
+ return this.finishNode(node, "ExpressionStatement")
36093
+ }
36094
+ }
36095
+
36096
+ return this.parseImport()
36097
+
36098
+ case types$1._export:
36099
+ return this.parseExport()
36100
+
36101
+ default:
36102
+ if (this.toks.isAsyncFunction()) {
36103
+ this.next();
36104
+ this.next();
36105
+ return this.parseFunction(node, true, true)
36106
+ }
36107
+
36108
+ if (this.toks.isUsing(false)) {
36109
+ return this.parseVar(node, false, "using")
36110
+ }
36111
+
36112
+ if (this.toks.isAwaitUsing(false)) {
36113
+ this.next();
36114
+ return this.parseVar(node, false, "await using")
36115
+ }
36116
+
36117
+ var expr = this.parseExpression();
36118
+ if (isDummy(expr)) {
36119
+ this.next();
36120
+ if (this.tok.type === types$1.eof) { return this.finishNode(node, "EmptyStatement") }
36121
+ return this.parseStatement()
36122
+ } else if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon)) {
36123
+ node.body = this.parseStatement();
36124
+ node.label = expr;
36125
+ return this.finishNode(node, "LabeledStatement")
36126
+ } else {
36127
+ node.expression = expr;
36128
+ this.semicolon();
36129
+ return this.finishNode(node, "ExpressionStatement")
36130
+ }
36131
+ }
36132
+ };
36133
+
36134
+ lp$1.parseBlock = function() {
36135
+ var node = this.startNode();
36136
+ this.pushCx();
36137
+ this.expect(types$1.braceL);
36138
+ var blockIndent = this.curIndent, line = this.curLineStart;
36139
+ node.body = [];
36140
+ while (!this.closes(types$1.braceR, blockIndent, line, true))
36141
+ { node.body.push(this.parseStatement()); }
36142
+ this.popCx();
36143
+ this.eat(types$1.braceR);
36144
+ return this.finishNode(node, "BlockStatement")
36145
+ };
36146
+
36147
+ lp$1.parseFor = function(node, init) {
36148
+ node.init = init;
36149
+ node.test = node.update = null;
36150
+ if (this.eat(types$1.semi) && this.tok.type !== types$1.semi) { node.test = this.parseExpression(); }
36151
+ if (this.eat(types$1.semi) && this.tok.type !== types$1.parenR) { node.update = this.parseExpression(); }
36152
+ this.popCx();
36153
+ this.expect(types$1.parenR);
36154
+ node.body = this.parseStatement();
36155
+ return this.finishNode(node, "ForStatement")
36156
+ };
36157
+
36158
+ lp$1.parseForIn = function(node, init) {
36159
+ var type = this.tok.type === types$1._in ? "ForInStatement" : "ForOfStatement";
36160
+ this.next();
36161
+ node.left = init;
36162
+ node.right = this.parseExpression();
36163
+ this.popCx();
36164
+ this.expect(types$1.parenR);
36165
+ node.body = this.parseStatement();
36166
+ return this.finishNode(node, type)
36167
+ };
36168
+
36169
+ lp$1.parseVar = function(node, noIn, kind) {
36170
+ node.kind = kind;
36171
+ this.next();
36172
+ node.declarations = [];
36173
+ do {
36174
+ var decl = this.startNode();
36175
+ decl.id = this.options.ecmaVersion >= 6 ? this.toAssignable(this.parseExprAtom(), true) : this.parseIdent();
36176
+ decl.init = this.eat(types$1.eq) ? this.parseMaybeAssign(noIn) : null;
36177
+ node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
36178
+ } while (this.eat(types$1.comma))
36179
+ if (!node.declarations.length) {
36180
+ var decl$1 = this.startNode();
36181
+ decl$1.id = this.dummyIdent();
36182
+ node.declarations.push(this.finishNode(decl$1, "VariableDeclarator"));
36183
+ }
36184
+ if (!noIn) { this.semicolon(); }
36185
+ return this.finishNode(node, "VariableDeclaration")
36186
+ };
36187
+
36188
+ lp$1.parseClass = function(isStatement) {
36189
+ var node = this.startNode();
36190
+ this.next();
36191
+ if (this.tok.type === types$1.name) { node.id = this.parseIdent(); }
36192
+ else if (isStatement === true) { node.id = this.dummyIdent(); }
36193
+ else { node.id = null; }
36194
+ node.superClass = this.eat(types$1._extends) ? this.parseExpression() : null;
36195
+ node.body = this.startNode();
36196
+ node.body.body = [];
36197
+ this.pushCx();
36198
+ var indent = this.curIndent + 1, line = this.curLineStart;
36199
+ this.eat(types$1.braceL);
36200
+ if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart; }
36201
+ while (!this.closes(types$1.braceR, indent, line)) {
36202
+ var element = this.parseClassElement();
36203
+ if (element) { node.body.body.push(element); }
36204
+ }
36205
+ this.popCx();
36206
+ if (!this.eat(types$1.braceR)) {
36207
+ // If there is no closing brace, make the node span to the start
36208
+ // of the next token (this is useful for Tern)
36209
+ this.last.end = this.tok.start;
36210
+ if (this.options.locations) { this.last.loc.end = this.tok.loc.start; }
36211
+ }
36212
+ this.semicolon();
36213
+ this.finishNode(node.body, "ClassBody");
36214
+ return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
36215
+ };
36216
+
36217
+ lp$1.parseClassElement = function() {
36218
+ if (this.eat(types$1.semi)) { return null }
36219
+
36220
+ var ref = this.options;
36221
+ var ecmaVersion = ref.ecmaVersion;
36222
+ var locations = ref.locations;
36223
+ var indent = this.curIndent;
36224
+ var line = this.curLineStart;
36225
+ var node = this.startNode();
36226
+ var keyName = "";
36227
+ var isGenerator = false;
36228
+ var isAsync = false;
36229
+ var kind = "method";
36230
+ var isStatic = false;
36231
+
36232
+ if (this.eatContextual("static")) {
36233
+ // Parse static init block
36234
+ if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {
36235
+ this.parseClassStaticBlock(node);
36236
+ return node
36237
+ }
36238
+ if (this.isClassElementNameStart() || this.toks.type === types$1.star) {
36239
+ isStatic = true;
36240
+ } else {
36241
+ keyName = "static";
36242
+ }
36243
+ }
36244
+ node.static = isStatic;
36245
+ if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) {
36246
+ if ((this.isClassElementNameStart() || this.toks.type === types$1.star) && !this.canInsertSemicolon()) {
36247
+ isAsync = true;
36248
+ } else {
36249
+ keyName = "async";
36250
+ }
36251
+ }
36252
+ if (!keyName) {
36253
+ isGenerator = this.eat(types$1.star);
36254
+ var lastValue = this.toks.value;
36255
+ if (this.eatContextual("get") || this.eatContextual("set")) {
36256
+ if (this.isClassElementNameStart()) {
36257
+ kind = lastValue;
36258
+ } else {
36259
+ keyName = lastValue;
36260
+ }
36261
+ }
36262
+ }
36263
+
36264
+ // Parse element name
36265
+ if (keyName) {
36266
+ // 'async', 'get', 'set', or 'static' were not a keyword contextually.
36267
+ // The last token is any of those. Make it the element name.
36268
+ node.computed = false;
36269
+ node.key = this.startNodeAt(locations ? [this.toks.lastTokStart, this.toks.lastTokStartLoc] : this.toks.lastTokStart);
36270
+ node.key.name = keyName;
36271
+ this.finishNode(node.key, "Identifier");
36272
+ } else {
36273
+ this.parseClassElementName(node);
36274
+
36275
+ // From https://github.com/acornjs/acorn/blob/7deba41118d6384a2c498c61176b3cf434f69590/acorn-loose/src/statement.js#L291
36276
+ // Skip broken stuff.
36277
+ if (isDummy(node.key)) {
36278
+ if (isDummy(this.parseMaybeAssign())) { this.next(); }
36279
+ this.eat(types$1.comma);
36280
+ return null
36281
+ }
36282
+ }
36283
+
36284
+ // Parse element value
36285
+ if (ecmaVersion < 13 || this.toks.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) {
36286
+ // Method
36287
+ var isConstructor =
36288
+ !node.computed &&
36289
+ !node.static &&
36290
+ !isGenerator &&
36291
+ !isAsync &&
36292
+ kind === "method" && (
36293
+ node.key.type === "Identifier" && node.key.name === "constructor" ||
36294
+ node.key.type === "Literal" && node.key.value === "constructor"
36295
+ );
36296
+ node.kind = isConstructor ? "constructor" : kind;
36297
+ node.value = this.parseMethod(isGenerator, isAsync);
36298
+ this.finishNode(node, "MethodDefinition");
36299
+ } else {
36300
+ // Field
36301
+ if (this.eat(types$1.eq)) {
36302
+ if (this.curLineStart !== line && this.curIndent <= indent && this.tokenStartsLine()) {
36303
+ // Estimated the next line is the next class element by indentations.
36304
+ node.value = null;
36305
+ } else {
36306
+ var oldInAsync = this.inAsync;
36307
+ var oldInGenerator = this.inGenerator;
36308
+ this.inAsync = false;
36309
+ this.inGenerator = false;
36310
+ node.value = this.parseMaybeAssign();
36311
+ this.inAsync = oldInAsync;
36312
+ this.inGenerator = oldInGenerator;
36313
+ }
36314
+ } else {
36315
+ node.value = null;
36316
+ }
36317
+ this.semicolon();
36318
+ this.finishNode(node, "PropertyDefinition");
36319
+ }
36320
+
36321
+ return node
36322
+ };
36323
+
36324
+ lp$1.parseClassStaticBlock = function(node) {
36325
+ var blockIndent = this.curIndent, line = this.curLineStart;
36326
+ node.body = [];
36327
+ this.pushCx();
36328
+ while (!this.closes(types$1.braceR, blockIndent, line, true))
36329
+ { node.body.push(this.parseStatement()); }
36330
+ this.popCx();
36331
+ this.eat(types$1.braceR);
36332
+
36333
+ return this.finishNode(node, "StaticBlock")
36334
+ };
36335
+
36336
+ lp$1.isClassElementNameStart = function() {
36337
+ return this.toks.isClassElementNameStart()
36338
+ };
36339
+
36340
+ lp$1.parseClassElementName = function(element) {
36341
+ if (this.toks.type === types$1.privateId) {
36342
+ element.computed = false;
36343
+ element.key = this.parsePrivateIdent();
36344
+ } else {
36345
+ this.parsePropertyName(element);
36346
+ }
36347
+ };
36348
+
36349
+ lp$1.parseFunction = function(node, isStatement, isAsync) {
36350
+ var oldInAsync = this.inAsync, oldInGenerator = this.inGenerator, oldInFunction = this.inFunction;
36351
+ this.initFunction(node);
36352
+ if (this.options.ecmaVersion >= 6) {
36353
+ node.generator = this.eat(types$1.star);
36354
+ }
36355
+ if (this.options.ecmaVersion >= 8) {
36356
+ node.async = !!isAsync;
36357
+ }
36358
+ if (this.tok.type === types$1.name) { node.id = this.parseIdent(); }
36359
+ else if (isStatement === true) { node.id = this.dummyIdent(); }
36360
+ this.inAsync = node.async;
36361
+ this.inGenerator = node.generator;
36362
+ this.inFunction = true;
36363
+ node.params = this.parseFunctionParams();
36364
+ node.body = this.parseBlock();
36365
+ this.toks.adaptDirectivePrologue(node.body.body);
36366
+ this.inAsync = oldInAsync;
36367
+ this.inGenerator = oldInGenerator;
36368
+ this.inFunction = oldInFunction;
36369
+ return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression")
36370
+ };
36371
+
36372
+ lp$1.parseExport = function() {
36373
+ var node = this.startNode();
36374
+ this.next();
36375
+ if (this.eat(types$1.star)) {
36376
+ if (this.options.ecmaVersion >= 11) {
36377
+ if (this.eatContextual("as")) {
36378
+ node.exported = this.parseExprAtom();
36379
+ } else {
36380
+ node.exported = null;
36381
+ }
36382
+ }
36383
+ node.source = this.eatContextual("from") ? this.parseExprAtom() : this.dummyString();
36384
+ if (this.options.ecmaVersion >= 16)
36385
+ { node.attributes = this.parseWithClause(); }
36386
+ this.semicolon();
36387
+ return this.finishNode(node, "ExportAllDeclaration")
36388
+ }
36389
+ if (this.eat(types$1._default)) {
36390
+ // export default (function foo() {}) // This is FunctionExpression.
36391
+ var isAsync;
36392
+ if (this.tok.type === types$1._function || (isAsync = this.toks.isAsyncFunction())) {
36393
+ var fNode = this.startNode();
36394
+ this.next();
36395
+ if (isAsync) { this.next(); }
36396
+ node.declaration = this.parseFunction(fNode, "nullableID", isAsync);
36397
+ } else if (this.tok.type === types$1._class) {
36398
+ node.declaration = this.parseClass("nullableID");
36399
+ } else {
36400
+ node.declaration = this.parseMaybeAssign();
36401
+ this.semicolon();
36402
+ }
36403
+ return this.finishNode(node, "ExportDefaultDeclaration")
36404
+ }
36405
+ if (this.tok.type.keyword || this.toks.isLet() || this.toks.isAsyncFunction()) {
36406
+ node.declaration = this.parseStatement();
36407
+ node.specifiers = [];
36408
+ node.source = null;
36409
+ } else {
36410
+ node.declaration = null;
36411
+ node.specifiers = this.parseExportSpecifierList();
36412
+ node.source = this.eatContextual("from") ? this.parseExprAtom() : null;
36413
+ if (this.options.ecmaVersion >= 16)
36414
+ { node.attributes = this.parseWithClause(); }
36415
+ this.semicolon();
36416
+ }
36417
+ return this.finishNode(node, "ExportNamedDeclaration")
36418
+ };
36419
+
36420
+ lp$1.parseImport = function() {
36421
+ var node = this.startNode();
36422
+ this.next();
36423
+ if (this.tok.type === types$1.string) {
36424
+ node.specifiers = [];
36425
+ node.source = this.parseExprAtom();
36426
+ } else {
36427
+ var elt;
36428
+ if (this.tok.type === types$1.name && this.tok.value !== "from") {
36429
+ elt = this.startNode();
36430
+ elt.local = this.parseIdent();
36431
+ this.finishNode(elt, "ImportDefaultSpecifier");
36432
+ this.eat(types$1.comma);
36433
+ }
36434
+ node.specifiers = this.parseImportSpecifiers();
36435
+ node.source = this.eatContextual("from") && this.tok.type === types$1.string ? this.parseExprAtom() : this.dummyString();
36436
+ if (elt) { node.specifiers.unshift(elt); }
36437
+ }
36438
+ if (this.options.ecmaVersion >= 16)
36439
+ { node.attributes = this.parseWithClause(); }
36440
+ this.semicolon();
36441
+ return this.finishNode(node, "ImportDeclaration")
36442
+ };
36443
+
36444
+ lp$1.parseImportSpecifiers = function() {
36445
+ var elts = [];
36446
+ if (this.tok.type === types$1.star) {
36447
+ var elt = this.startNode();
36448
+ this.next();
36449
+ elt.local = this.eatContextual("as") ? this.parseIdent() : this.dummyIdent();
36450
+ elts.push(this.finishNode(elt, "ImportNamespaceSpecifier"));
36451
+ } else {
36452
+ var indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart;
36453
+ this.pushCx();
36454
+ this.eat(types$1.braceL);
36455
+ if (this.curLineStart > continuedLine) { continuedLine = this.curLineStart; }
36456
+ while (!this.closes(types$1.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
36457
+ var elt$1 = this.startNode();
36458
+ if (this.eat(types$1.star)) {
36459
+ elt$1.local = this.eatContextual("as") ? this.parseModuleExportName() : this.dummyIdent();
36460
+ this.finishNode(elt$1, "ImportNamespaceSpecifier");
36461
+ } else {
36462
+ if (this.isContextual("from")) { break }
36463
+ elt$1.imported = this.parseModuleExportName();
36464
+ if (isDummy(elt$1.imported)) { break }
36465
+ elt$1.local = this.eatContextual("as") ? this.parseModuleExportName() : elt$1.imported;
36466
+ this.finishNode(elt$1, "ImportSpecifier");
36467
+ }
36468
+ elts.push(elt$1);
36469
+ this.eat(types$1.comma);
36470
+ }
36471
+ this.eat(types$1.braceR);
36472
+ this.popCx();
36473
+ }
36474
+ return elts
36475
+ };
36476
+
36477
+ lp$1.parseWithClause = function() {
36478
+ var nodes = [];
36479
+ if (!this.eat(types$1._with)) {
36480
+ return nodes
36481
+ }
36482
+
36483
+ var indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart;
36484
+ this.pushCx();
36485
+ this.eat(types$1.braceL);
36486
+ if (this.curLineStart > continuedLine) { continuedLine = this.curLineStart; }
36487
+ while (!this.closes(types$1.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
36488
+ var attr = this.startNode();
36489
+ attr.key = this.tok.type === types$1.string ? this.parseExprAtom() : this.parseIdent();
36490
+ if (this.eat(types$1.colon)) {
36491
+ if (this.tok.type === types$1.string)
36492
+ { attr.value = this.parseExprAtom(); }
36493
+ else { attr.value = this.dummyString(); }
36494
+ } else {
36495
+ if (isDummy(attr.key)) { break }
36496
+ if (this.tok.type === types$1.string)
36497
+ { attr.value = this.parseExprAtom(); }
36498
+ else { break }
36499
+ }
36500
+ nodes.push(this.finishNode(attr, "ImportAttribute"));
36501
+ this.eat(types$1.comma);
36502
+ }
36503
+ this.eat(types$1.braceR);
36504
+ this.popCx();
36505
+ return nodes
36506
+ };
36507
+
36508
+ lp$1.parseExportSpecifierList = function() {
36509
+ var elts = [];
36510
+ var indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart;
36511
+ this.pushCx();
36512
+ this.eat(types$1.braceL);
36513
+ if (this.curLineStart > continuedLine) { continuedLine = this.curLineStart; }
36514
+ while (!this.closes(types$1.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
36515
+ if (this.isContextual("from")) { break }
36516
+ var elt = this.startNode();
36517
+ elt.local = this.parseModuleExportName();
36518
+ if (isDummy(elt.local)) { break }
36519
+ elt.exported = this.eatContextual("as") ? this.parseModuleExportName() : elt.local;
36520
+ this.finishNode(elt, "ExportSpecifier");
36521
+ elts.push(elt);
36522
+ this.eat(types$1.comma);
36523
+ }
36524
+ this.eat(types$1.braceR);
36525
+ this.popCx();
36526
+ return elts
36527
+ };
36528
+
36529
+ lp$1.parseModuleExportName = function() {
36530
+ return this.options.ecmaVersion >= 13 && this.tok.type === types$1.string
36531
+ ? this.parseExprAtom()
36532
+ : this.parseIdent()
36533
+ };
36534
+
36535
+ var lp = LooseParser.prototype;
36536
+
36537
+ lp.checkLVal = function(expr) {
36538
+ if (!expr) { return expr }
36539
+ switch (expr.type) {
36540
+ case "Identifier":
36541
+ case "MemberExpression":
36542
+ return expr
36543
+
36544
+ case "ParenthesizedExpression":
36545
+ expr.expression = this.checkLVal(expr.expression);
36546
+ return expr
36547
+
36548
+ default:
36549
+ return this.dummyIdent()
36550
+ }
36551
+ };
36552
+
36553
+ lp.parseExpression = function(noIn) {
36554
+ var start = this.storeCurrentPos();
36555
+ var expr = this.parseMaybeAssign(noIn);
36556
+ if (this.tok.type === types$1.comma) {
36557
+ var node = this.startNodeAt(start);
36558
+ node.expressions = [expr];
36559
+ while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(noIn)); }
36560
+ return this.finishNode(node, "SequenceExpression")
36561
+ }
36562
+ return expr
36563
+ };
36564
+
36565
+ lp.parseParenExpression = function() {
36566
+ this.pushCx();
36567
+ this.expect(types$1.parenL);
36568
+ var val = this.parseExpression();
36569
+ this.popCx();
36570
+ this.expect(types$1.parenR);
36571
+ return val
36572
+ };
36573
+
36574
+ lp.parseMaybeAssign = function(noIn) {
36575
+ // `yield` should be an identifier reference if it's not in generator functions.
36576
+ if (this.inGenerator && this.toks.isContextual("yield")) {
36577
+ var node = this.startNode();
36578
+ this.next();
36579
+ if (this.semicolon() || this.canInsertSemicolon() || (this.tok.type !== types$1.star && !this.tok.type.startsExpr)) {
36580
+ node.delegate = false;
36581
+ node.argument = null;
36582
+ } else {
36583
+ node.delegate = this.eat(types$1.star);
36584
+ node.argument = this.parseMaybeAssign();
36585
+ }
36586
+ return this.finishNode(node, "YieldExpression")
36587
+ }
36588
+
36589
+ var start = this.storeCurrentPos();
36590
+ var left = this.parseMaybeConditional(noIn);
36591
+ if (this.tok.type.isAssign) {
36592
+ var node$1 = this.startNodeAt(start);
36593
+ node$1.operator = this.tok.value;
36594
+ node$1.left = this.tok.type === types$1.eq ? this.toAssignable(left) : this.checkLVal(left);
36595
+ this.next();
36596
+ node$1.right = this.parseMaybeAssign(noIn);
36597
+ return this.finishNode(node$1, "AssignmentExpression")
36598
+ }
36599
+ return left
36600
+ };
36601
+
36602
+ lp.parseMaybeConditional = function(noIn) {
36603
+ var start = this.storeCurrentPos();
36604
+ var expr = this.parseExprOps(noIn);
36605
+ if (this.eat(types$1.question)) {
36606
+ var node = this.startNodeAt(start);
36607
+ node.test = expr;
36608
+ node.consequent = this.parseMaybeAssign();
36609
+ node.alternate = this.expect(types$1.colon) ? this.parseMaybeAssign(noIn) : this.dummyIdent();
36610
+ return this.finishNode(node, "ConditionalExpression")
36611
+ }
36612
+ return expr
36613
+ };
36614
+
36615
+ lp.parseExprOps = function(noIn) {
36616
+ var start = this.storeCurrentPos();
36617
+ var indent = this.curIndent, line = this.curLineStart;
36618
+ return this.parseExprOp(this.parseMaybeUnary(false), start, -1, noIn, indent, line)
36619
+ };
36620
+
36621
+ lp.parseExprOp = function(left, start, minPrec, noIn, indent, line) {
36622
+ if (this.curLineStart !== line && this.curIndent < indent && this.tokenStartsLine()) { return left }
36623
+ var prec = this.tok.type.binop;
36624
+ if (prec != null && (!noIn || this.tok.type !== types$1._in)) {
36625
+ if (prec > minPrec) {
36626
+ var node = this.startNodeAt(start);
36627
+ node.left = left;
36628
+ node.operator = this.tok.value;
36629
+ this.next();
36630
+ if (this.curLineStart !== line && this.curIndent < indent && this.tokenStartsLine()) {
36631
+ node.right = this.dummyIdent();
36632
+ } else {
36633
+ var rightStart = this.storeCurrentPos();
36634
+ node.right = this.parseExprOp(this.parseMaybeUnary(false), rightStart, prec, noIn, indent, line);
36635
+ }
36636
+ this.finishNode(node, /&&|\|\||\?\?/.test(node.operator) ? "LogicalExpression" : "BinaryExpression");
36637
+ return this.parseExprOp(node, start, minPrec, noIn, indent, line)
36638
+ }
36639
+ }
36640
+ return left
36641
+ };
36642
+
36643
+ lp.parseMaybeUnary = function(sawUnary) {
36644
+ var start = this.storeCurrentPos(), expr;
36645
+ if (this.options.ecmaVersion >= 8 && this.toks.isContextual("await") &&
36646
+ (this.inAsync || (this.toks.inModule && this.options.ecmaVersion >= 13) ||
36647
+ (!this.inFunction && this.options.allowAwaitOutsideFunction))) {
36648
+ expr = this.parseAwait();
36649
+ sawUnary = true;
36650
+ } else if (this.tok.type.prefix) {
36651
+ var node = this.startNode(), update = this.tok.type === types$1.incDec;
36652
+ if (!update) { sawUnary = true; }
36653
+ node.operator = this.tok.value;
36654
+ node.prefix = true;
36655
+ this.next();
36656
+ node.argument = this.parseMaybeUnary(true);
36657
+ if (update) { node.argument = this.checkLVal(node.argument); }
36658
+ expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
36659
+ } else if (this.tok.type === types$1.ellipsis) {
36660
+ var node$1 = this.startNode();
36661
+ this.next();
36662
+ node$1.argument = this.parseMaybeUnary(sawUnary);
36663
+ expr = this.finishNode(node$1, "SpreadElement");
36664
+ } else if (!sawUnary && this.tok.type === types$1.privateId) {
36665
+ expr = this.parsePrivateIdent();
36666
+ } else {
36667
+ expr = this.parseExprSubscripts();
36668
+ while (this.tok.type.postfix && !this.canInsertSemicolon()) {
36669
+ var node$2 = this.startNodeAt(start);
36670
+ node$2.operator = this.tok.value;
36671
+ node$2.prefix = false;
36672
+ node$2.argument = this.checkLVal(expr);
36673
+ this.next();
36674
+ expr = this.finishNode(node$2, "UpdateExpression");
36675
+ }
36676
+ }
36677
+
36678
+ if (!sawUnary && this.eat(types$1.starstar)) {
36679
+ var node$3 = this.startNodeAt(start);
36680
+ node$3.operator = "**";
36681
+ node$3.left = expr;
36682
+ node$3.right = this.parseMaybeUnary(false);
36683
+ return this.finishNode(node$3, "BinaryExpression")
36684
+ }
36685
+
36686
+ return expr
36687
+ };
36688
+
36689
+ lp.parseExprSubscripts = function() {
36690
+ var start = this.storeCurrentPos();
36691
+ return this.parseSubscripts(this.parseExprAtom(), start, false, this.curIndent, this.curLineStart)
36692
+ };
36693
+
36694
+ lp.parseSubscripts = function(base, start, noCalls, startIndent, line) {
36695
+ var optionalSupported = this.options.ecmaVersion >= 11;
36696
+ var optionalChained = false;
36697
+ for (;;) {
36698
+ if (this.curLineStart !== line && this.curIndent <= startIndent && this.tokenStartsLine()) {
36699
+ if (this.tok.type === types$1.dot && this.curIndent === startIndent)
36700
+ { --startIndent; }
36701
+ else
36702
+ { break }
36703
+ }
36704
+
36705
+ var maybeAsyncArrow = base.type === "Identifier" && base.name === "async" && !this.canInsertSemicolon();
36706
+ var optional = optionalSupported && this.eat(types$1.questionDot);
36707
+ if (optional) {
36708
+ optionalChained = true;
36709
+ }
36710
+
36711
+ if ((optional && this.tok.type !== types$1.parenL && this.tok.type !== types$1.bracketL && this.tok.type !== types$1.backQuote) || this.eat(types$1.dot)) {
36712
+ var node = this.startNodeAt(start);
36713
+ node.object = base;
36714
+ if (this.curLineStart !== line && this.curIndent <= startIndent && this.tokenStartsLine())
36715
+ { node.property = this.dummyIdent(); }
36716
+ else
36717
+ { node.property = this.parsePropertyAccessor() || this.dummyIdent(); }
36718
+ node.computed = false;
36719
+ if (optionalSupported) {
36720
+ node.optional = optional;
36721
+ }
36722
+ base = this.finishNode(node, "MemberExpression");
36723
+ } else if (this.tok.type === types$1.bracketL) {
36724
+ this.pushCx();
36725
+ this.next();
36726
+ var node$1 = this.startNodeAt(start);
36727
+ node$1.object = base;
36728
+ node$1.property = this.parseExpression();
36729
+ node$1.computed = true;
36730
+ if (optionalSupported) {
36731
+ node$1.optional = optional;
36732
+ }
36733
+ this.popCx();
36734
+ this.expect(types$1.bracketR);
36735
+ base = this.finishNode(node$1, "MemberExpression");
36736
+ } else if (!noCalls && this.tok.type === types$1.parenL) {
36737
+ var exprList = this.parseExprList(types$1.parenR);
36738
+ if (maybeAsyncArrow && this.eat(types$1.arrow))
36739
+ { return this.parseArrowExpression(this.startNodeAt(start), exprList, true) }
36740
+ var node$2 = this.startNodeAt(start);
36741
+ node$2.callee = base;
36742
+ node$2.arguments = exprList;
36743
+ if (optionalSupported) {
36744
+ node$2.optional = optional;
36745
+ }
36746
+ base = this.finishNode(node$2, "CallExpression");
36747
+ } else if (this.tok.type === types$1.backQuote) {
36748
+ var node$3 = this.startNodeAt(start);
36749
+ node$3.tag = base;
36750
+ node$3.quasi = this.parseTemplate();
36751
+ base = this.finishNode(node$3, "TaggedTemplateExpression");
36752
+ } else {
36753
+ break
36754
+ }
36755
+ }
36756
+
36757
+ if (optionalChained) {
36758
+ var chainNode = this.startNodeAt(start);
36759
+ chainNode.expression = base;
36760
+ base = this.finishNode(chainNode, "ChainExpression");
36761
+ }
36762
+ return base
36763
+ };
36764
+
36765
+ lp.parseExprAtom = function() {
36766
+ var node;
36767
+ switch (this.tok.type) {
36768
+ case types$1._this:
36769
+ case types$1._super:
36770
+ var type = this.tok.type === types$1._this ? "ThisExpression" : "Super";
36771
+ node = this.startNode();
36772
+ this.next();
36773
+ return this.finishNode(node, type)
36774
+
36775
+ case types$1.name:
36776
+ var start = this.storeCurrentPos();
36777
+ var id = this.parseIdent();
36778
+ var isAsync = false;
36779
+ if (id.name === "async" && !this.canInsertSemicolon()) {
36780
+ if (this.eat(types$1._function)) {
36781
+ this.toks.overrideContext(types.f_expr);
36782
+ return this.parseFunction(this.startNodeAt(start), false, true)
36783
+ }
36784
+ if (this.tok.type === types$1.name) {
36785
+ id = this.parseIdent();
36786
+ isAsync = true;
36787
+ }
36788
+ }
36789
+ return this.eat(types$1.arrow) ? this.parseArrowExpression(this.startNodeAt(start), [id], isAsync) : id
36790
+
36791
+ case types$1.regexp:
36792
+ node = this.startNode();
36793
+ var val = this.tok.value;
36794
+ node.regex = {pattern: val.pattern, flags: val.flags};
36795
+ node.value = val.value;
36796
+ node.raw = this.input.slice(this.tok.start, this.tok.end);
36797
+ this.next();
36798
+ return this.finishNode(node, "Literal")
36799
+
36800
+ case types$1.num: case types$1.string:
36801
+ node = this.startNode();
36802
+ node.value = this.tok.value;
36803
+ node.raw = this.input.slice(this.tok.start, this.tok.end);
36804
+ if (this.tok.type === types$1.num && node.raw.charCodeAt(node.raw.length - 1) === 110)
36805
+ { node.bigint = node.value != null ? node.value.toString() : node.raw.slice(0, -1).replace(/_/g, ""); }
36806
+ this.next();
36807
+ return this.finishNode(node, "Literal")
36808
+
36809
+ case types$1._null: case types$1._true: case types$1._false:
36810
+ node = this.startNode();
36811
+ node.value = this.tok.type === types$1._null ? null : this.tok.type === types$1._true;
36812
+ node.raw = this.tok.type.keyword;
36813
+ this.next();
36814
+ return this.finishNode(node, "Literal")
36815
+
36816
+ case types$1.parenL:
36817
+ var parenStart = this.storeCurrentPos();
36818
+ this.next();
36819
+ var inner = this.parseExpression();
36820
+ this.expect(types$1.parenR);
36821
+ if (this.eat(types$1.arrow)) {
36822
+ // (a,)=>a // SequenceExpression makes dummy in the last hole. Drop the dummy.
36823
+ var params = inner.expressions || [inner];
36824
+ if (params.length && isDummy(params[params.length - 1]))
36825
+ { params.pop(); }
36826
+ return this.parseArrowExpression(this.startNodeAt(parenStart), params)
36827
+ }
36828
+ if (this.options.preserveParens) {
36829
+ var par = this.startNodeAt(parenStart);
36830
+ par.expression = inner;
36831
+ inner = this.finishNode(par, "ParenthesizedExpression");
36832
+ }
36833
+ return inner
36834
+
36835
+ case types$1.bracketL:
36836
+ node = this.startNode();
36837
+ node.elements = this.parseExprList(types$1.bracketR, true);
36838
+ return this.finishNode(node, "ArrayExpression")
36839
+
36840
+ case types$1.braceL:
36841
+ this.toks.overrideContext(types.b_expr);
36842
+ return this.parseObj()
36843
+
36844
+ case types$1._class:
36845
+ return this.parseClass(false)
36846
+
36847
+ case types$1._function:
36848
+ node = this.startNode();
36849
+ this.next();
36850
+ return this.parseFunction(node, false)
36851
+
36852
+ case types$1._new:
36853
+ return this.parseNew()
36854
+
36855
+ case types$1.backQuote:
36856
+ return this.parseTemplate()
36857
+
36858
+ case types$1._import:
36859
+ if (this.options.ecmaVersion >= 11) {
36860
+ return this.parseExprImport()
36861
+ } else {
36862
+ return this.dummyIdent()
36863
+ }
36864
+
36865
+ default:
36866
+ return this.dummyIdent()
36867
+ }
36868
+ };
36869
+
36870
+ lp.parseExprImport = function() {
36871
+ var node = this.startNode();
36872
+ var meta = this.parseIdent(true);
36873
+ switch (this.tok.type) {
36874
+ case types$1.parenL:
36875
+ return this.parseDynamicImport(node)
36876
+ case types$1.dot:
36877
+ node.meta = meta;
36878
+ return this.parseImportMeta(node)
36879
+ default:
36880
+ node.name = "import";
36881
+ return this.finishNode(node, "Identifier")
36882
+ }
36883
+ };
36884
+
36885
+ lp.parseDynamicImport = function(node) {
36886
+ var list = this.parseExprList(types$1.parenR);
36887
+ node.source = list[0] || this.dummyString();
36888
+ node.options = list[1] || null;
36889
+ return this.finishNode(node, "ImportExpression")
36890
+ };
36891
+
36892
+ lp.parseImportMeta = function(node) {
36893
+ this.next(); // skip '.'
36894
+ node.property = this.parseIdent(true);
36895
+ return this.finishNode(node, "MetaProperty")
36896
+ };
36897
+
36898
+ lp.parseNew = function() {
36899
+ var node = this.startNode(), startIndent = this.curIndent, line = this.curLineStart;
36900
+ var meta = this.parseIdent(true);
36901
+ if (this.options.ecmaVersion >= 6 && this.eat(types$1.dot)) {
36902
+ node.meta = meta;
36903
+ node.property = this.parseIdent(true);
36904
+ return this.finishNode(node, "MetaProperty")
36905
+ }
36906
+ var start = this.storeCurrentPos();
36907
+ node.callee = this.parseSubscripts(this.parseExprAtom(), start, true, startIndent, line);
36908
+ if (this.tok.type === types$1.parenL) {
36909
+ node.arguments = this.parseExprList(types$1.parenR);
36910
+ } else {
36911
+ node.arguments = [];
36912
+ }
36913
+ return this.finishNode(node, "NewExpression")
36914
+ };
36915
+
36916
+ lp.parseTemplateElement = function() {
36917
+ var elem = this.startNode();
36918
+
36919
+ // The loose parser accepts invalid unicode escapes even in untagged templates.
36920
+ if (this.tok.type === types$1.invalidTemplate) {
36921
+ elem.value = {
36922
+ raw: this.tok.value,
36923
+ cooked: null
36924
+ };
36925
+ } else {
36926
+ elem.value = {
36927
+ raw: this.input.slice(this.tok.start, this.tok.end).replace(/\r\n?/g, "\n"),
36928
+ cooked: this.tok.value
36929
+ };
36930
+ }
36931
+ this.next();
36932
+ elem.tail = this.tok.type === types$1.backQuote;
36933
+ return this.finishNode(elem, "TemplateElement")
36934
+ };
36935
+
36936
+ lp.parseTemplate = function() {
36937
+ var node = this.startNode();
36938
+ this.next();
36939
+ node.expressions = [];
36940
+ var curElt = this.parseTemplateElement();
36941
+ node.quasis = [curElt];
36942
+ while (!curElt.tail) {
36943
+ this.next();
36944
+ node.expressions.push(this.parseExpression());
36945
+ if (this.expect(types$1.braceR)) {
36946
+ curElt = this.parseTemplateElement();
36947
+ } else {
36948
+ curElt = this.startNode();
36949
+ curElt.value = {cooked: "", raw: ""};
36950
+ curElt.tail = true;
36951
+ this.finishNode(curElt, "TemplateElement");
36952
+ }
36953
+ node.quasis.push(curElt);
36954
+ }
36955
+ this.expect(types$1.backQuote);
36956
+ return this.finishNode(node, "TemplateLiteral")
36957
+ };
36958
+
36959
+ lp.parseObj = function() {
36960
+ var node = this.startNode();
36961
+ node.properties = [];
36962
+ this.pushCx();
36963
+ var indent = this.curIndent + 1, line = this.curLineStart;
36964
+ this.eat(types$1.braceL);
36965
+ if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart; }
36966
+ while (!this.closes(types$1.braceR, indent, line)) {
36967
+ var prop = this.startNode(), isGenerator = (void 0), isAsync = (void 0), start = (void 0);
36968
+ if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {
36969
+ prop.argument = this.parseMaybeAssign();
36970
+ node.properties.push(this.finishNode(prop, "SpreadElement"));
36971
+ this.eat(types$1.comma);
36972
+ continue
36973
+ }
36974
+ if (this.options.ecmaVersion >= 6) {
36975
+ start = this.storeCurrentPos();
36976
+ prop.method = false;
36977
+ prop.shorthand = false;
36978
+ isGenerator = this.eat(types$1.star);
36979
+ }
36980
+ this.parsePropertyName(prop);
36981
+ if (this.toks.isAsyncProp(prop)) {
36982
+ isAsync = true;
36983
+ isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);
36984
+ this.parsePropertyName(prop);
36985
+ } else {
36986
+ isAsync = false;
36987
+ }
36988
+ if (isDummy(prop.key)) { if (isDummy(this.parseMaybeAssign())) { this.next(); } this.eat(types$1.comma); continue }
36989
+ if (this.eat(types$1.colon)) {
36990
+ prop.kind = "init";
36991
+ prop.value = this.parseMaybeAssign();
36992
+ } else if (this.options.ecmaVersion >= 6 && (this.tok.type === types$1.parenL || this.tok.type === types$1.braceL)) {
36993
+ prop.kind = "init";
36994
+ prop.method = true;
36995
+ prop.value = this.parseMethod(isGenerator, isAsync);
36996
+ } else if (this.options.ecmaVersion >= 5 && prop.key.type === "Identifier" &&
36997
+ !prop.computed && (prop.key.name === "get" || prop.key.name === "set") &&
36998
+ (this.tok.type !== types$1.comma && this.tok.type !== types$1.braceR && this.tok.type !== types$1.eq)) {
36999
+ prop.kind = prop.key.name;
37000
+ this.parsePropertyName(prop);
37001
+ prop.value = this.parseMethod(false);
37002
+ } else {
37003
+ prop.kind = "init";
37004
+ if (this.options.ecmaVersion >= 6) {
37005
+ if (this.eat(types$1.eq)) {
37006
+ var assign = this.startNodeAt(start);
37007
+ assign.operator = "=";
37008
+ assign.left = prop.key;
37009
+ assign.right = this.parseMaybeAssign();
37010
+ prop.value = this.finishNode(assign, "AssignmentExpression");
37011
+ } else {
37012
+ prop.value = prop.key;
37013
+ }
37014
+ } else {
37015
+ prop.value = this.dummyIdent();
37016
+ }
37017
+ prop.shorthand = true;
37018
+ }
37019
+ node.properties.push(this.finishNode(prop, "Property"));
37020
+ this.eat(types$1.comma);
37021
+ }
37022
+ this.popCx();
37023
+ if (!this.eat(types$1.braceR)) {
37024
+ // If there is no closing brace, make the node span to the start
37025
+ // of the next token (this is useful for Tern)
37026
+ this.last.end = this.tok.start;
37027
+ if (this.options.locations) { this.last.loc.end = this.tok.loc.start; }
37028
+ }
37029
+ return this.finishNode(node, "ObjectExpression")
37030
+ };
37031
+
37032
+ lp.parsePropertyName = function(prop) {
37033
+ if (this.options.ecmaVersion >= 6) {
37034
+ if (this.eat(types$1.bracketL)) {
37035
+ prop.computed = true;
37036
+ prop.key = this.parseExpression();
37037
+ this.expect(types$1.bracketR);
37038
+ return
37039
+ } else {
37040
+ prop.computed = false;
37041
+ }
37042
+ }
37043
+ var key = (this.tok.type === types$1.num || this.tok.type === types$1.string) ? this.parseExprAtom() : this.parseIdent();
37044
+ prop.key = key || this.dummyIdent();
37045
+ };
37046
+
37047
+ lp.parsePropertyAccessor = function() {
37048
+ if (this.tok.type === types$1.name || this.tok.type.keyword) { return this.parseIdent() }
37049
+ if (this.tok.type === types$1.privateId) { return this.parsePrivateIdent() }
37050
+ };
37051
+
37052
+ lp.parseIdent = function() {
37053
+ var name = this.tok.type === types$1.name ? this.tok.value : this.tok.type.keyword;
37054
+ if (!name) { return this.dummyIdent() }
37055
+ if (this.tok.type.keyword) { this.toks.type = types$1.name; }
37056
+ var node = this.startNode();
37057
+ this.next();
37058
+ node.name = name;
37059
+ return this.finishNode(node, "Identifier")
37060
+ };
37061
+
37062
+ lp.parsePrivateIdent = function() {
37063
+ var node = this.startNode();
37064
+ node.name = this.tok.value;
37065
+ this.next();
37066
+ return this.finishNode(node, "PrivateIdentifier")
37067
+ };
37068
+
37069
+ lp.initFunction = function(node) {
37070
+ node.id = null;
37071
+ node.params = [];
37072
+ if (this.options.ecmaVersion >= 6) {
37073
+ node.generator = false;
37074
+ node.expression = false;
37075
+ }
37076
+ if (this.options.ecmaVersion >= 8)
37077
+ { node.async = false; }
37078
+ };
37079
+
37080
+ // Convert existing expression atom to assignable pattern
37081
+ // if possible.
37082
+
37083
+ lp.toAssignable = function(node, binding) {
37084
+ if (!node || node.type === "Identifier" || (node.type === "MemberExpression" && !binding)) ; else if (node.type === "ParenthesizedExpression") {
37085
+ this.toAssignable(node.expression, binding);
37086
+ } else if (this.options.ecmaVersion < 6) {
37087
+ return this.dummyIdent()
37088
+ } else if (node.type === "ObjectExpression") {
37089
+ node.type = "ObjectPattern";
37090
+ for (var i = 0, list = node.properties; i < list.length; i += 1)
37091
+ {
37092
+ var prop = list[i];
37093
+
37094
+ this.toAssignable(prop, binding);
37095
+ }
37096
+ } else if (node.type === "ArrayExpression") {
37097
+ node.type = "ArrayPattern";
37098
+ this.toAssignableList(node.elements, binding);
37099
+ } else if (node.type === "Property") {
37100
+ this.toAssignable(node.value, binding);
37101
+ } else if (node.type === "SpreadElement") {
37102
+ node.type = "RestElement";
37103
+ this.toAssignable(node.argument, binding);
37104
+ } else if (node.type === "AssignmentExpression") {
37105
+ node.type = "AssignmentPattern";
37106
+ delete node.operator;
37107
+ } else {
37108
+ return this.dummyIdent()
37109
+ }
37110
+ return node
37111
+ };
37112
+
37113
+ lp.toAssignableList = function(exprList, binding) {
37114
+ for (var i = 0, list = exprList; i < list.length; i += 1)
37115
+ {
37116
+ var expr = list[i];
37117
+
37118
+ this.toAssignable(expr, binding);
37119
+ }
37120
+ return exprList
37121
+ };
37122
+
37123
+ lp.parseFunctionParams = function(params) {
37124
+ params = this.parseExprList(types$1.parenR);
37125
+ return this.toAssignableList(params, true)
37126
+ };
37127
+
37128
+ lp.parseMethod = function(isGenerator, isAsync) {
37129
+ var node = this.startNode(), oldInAsync = this.inAsync, oldInGenerator = this.inGenerator, oldInFunction = this.inFunction;
37130
+ this.initFunction(node);
37131
+ if (this.options.ecmaVersion >= 6)
37132
+ { node.generator = !!isGenerator; }
37133
+ if (this.options.ecmaVersion >= 8)
37134
+ { node.async = !!isAsync; }
37135
+ this.inAsync = node.async;
37136
+ this.inGenerator = node.generator;
37137
+ this.inFunction = true;
37138
+ node.params = this.parseFunctionParams();
37139
+ node.body = this.parseBlock();
37140
+ this.toks.adaptDirectivePrologue(node.body.body);
37141
+ this.inAsync = oldInAsync;
37142
+ this.inGenerator = oldInGenerator;
37143
+ this.inFunction = oldInFunction;
37144
+ return this.finishNode(node, "FunctionExpression")
37145
+ };
37146
+
37147
+ lp.parseArrowExpression = function(node, params, isAsync) {
37148
+ var oldInAsync = this.inAsync, oldInGenerator = this.inGenerator, oldInFunction = this.inFunction;
37149
+ this.initFunction(node);
37150
+ if (this.options.ecmaVersion >= 8)
37151
+ { node.async = !!isAsync; }
37152
+ this.inAsync = node.async;
37153
+ this.inGenerator = false;
37154
+ this.inFunction = true;
37155
+ node.params = this.toAssignableList(params, true);
37156
+ node.expression = this.tok.type !== types$1.braceL;
37157
+ if (node.expression) {
37158
+ node.body = this.parseMaybeAssign();
37159
+ } else {
37160
+ node.body = this.parseBlock();
37161
+ this.toks.adaptDirectivePrologue(node.body.body);
37162
+ }
37163
+ this.inAsync = oldInAsync;
37164
+ this.inGenerator = oldInGenerator;
37165
+ this.inFunction = oldInFunction;
37166
+ return this.finishNode(node, "ArrowFunctionExpression")
37167
+ };
37168
+
37169
+ lp.parseExprList = function(close, allowEmpty) {
37170
+ this.pushCx();
37171
+ var indent = this.curIndent, line = this.curLineStart, elts = [];
37172
+ this.next(); // Opening bracket
37173
+ while (!this.closes(close, indent + 1, line)) {
37174
+ if (this.eat(types$1.comma)) {
37175
+ elts.push(allowEmpty ? null : this.dummyIdent());
37176
+ continue
37177
+ }
37178
+ var elt = this.parseMaybeAssign();
37179
+ if (isDummy(elt)) {
37180
+ if (this.closes(close, indent, line)) { break }
37181
+ this.next();
37182
+ } else {
37183
+ elts.push(elt);
37184
+ }
37185
+ this.eat(types$1.comma);
37186
+ }
37187
+ this.popCx();
37188
+ if (!this.eat(close)) {
37189
+ // If there is no closing brace, make the node span to the start
37190
+ // of the next token (this is useful for Tern)
37191
+ this.last.end = this.tok.start;
37192
+ if (this.options.locations) { this.last.loc.end = this.tok.loc.start; }
37193
+ }
37194
+ return elts
37195
+ };
37196
+
37197
+ lp.parseAwait = function() {
37198
+ var node = this.startNode();
37199
+ this.next();
37200
+ node.argument = this.parseMaybeUnary();
37201
+ return this.finishNode(node, "AwaitExpression")
37202
+ };
37203
+
37204
+ // Acorn: Loose parser
37205
+ //
37206
+ // This module provides an alternative parser that exposes that same
37207
+ // interface as the main module's `parse` function, but will try to
37208
+ // parse anything as JavaScript, repairing syntax error the best it
37209
+ // can. There are circumstances in which it will raise an error and
37210
+ // give up, but they are very rare. The resulting AST will be a mostly
37211
+ // valid JavaScript AST (as per the [ESTree spec][estree], except
37212
+ // that:
37213
+ //
37214
+ // - Return outside functions is allowed
37215
+ //
37216
+ // - Label consistency (no conflicts, break only to existing labels)
37217
+ // is not enforced.
37218
+ //
37219
+ // - Bogus Identifier nodes with a name of `"✖"` are inserted whenever
37220
+ // the parser got too confused to return anything meaningful.
37221
+ //
37222
+ // [estree]: https://github.com/estree/estree
37223
+ //
37224
+ // The expected use for this is to *first* try `acorn.parse`, and only
37225
+ // if that fails switch to the loose parser. The loose parser might
37226
+ // parse badly indented code incorrectly, so **don't** use it as your
37227
+ // default parser.
37228
+ //
37229
+ // Quite a lot of acorn.js is duplicated here. The alternative was to
37230
+ // add a *lot* of extra cruft to that file, making it less readable
37231
+ // and slower. Copying and editing the code allowed me to make
37232
+ // invasive changes and simplifications without creating a complicated
37233
+ // tangle.
37234
+
37235
+
37236
+ defaultOptions.tabSize = 4;
37237
+
37238
+ function parse(input, options) {
37239
+ return LooseParser.parse(input, options)
37240
+ }
37241
+
35617
37242
  // AST walker module for ESTree compatible trees
35618
37243
 
35619
37244
  // A simple walk is one where you simply specify callbacks to be
@@ -35901,13 +37526,24 @@ base.MethodDefinition = base.PropertyDefinition = base.Property = function (node
35901
37526
  function getAcornParsedNodes(input) {
35902
37527
  var parsedNode = null;
35903
37528
  try {
35904
- parsedNode = parse(input, {
37529
+ parsedNode = parse$1(input, {
35905
37530
  ecmaVersion: 'latest',
35906
37531
  sourceType: 'module',
35907
37532
  locations: true
35908
37533
  });
35909
37534
  }
35910
- catch (_a) { }
37535
+ catch (_a) {
37536
+ // attempt parse with more error-tolerant parser.
37537
+ // handles rules with both shared code and top-level
37538
+ // return, which is technically invalid syntax
37539
+ try {
37540
+ parsedNode = parse(input, {
37541
+ ecmaVersion: 'latest',
37542
+ locations: true
37543
+ });
37544
+ }
37545
+ catch (_b) { }
37546
+ }
35911
37547
  return parsedNode;
35912
37548
  }
35913
37549
  function extractReferencedIdentifiers(bodyNode) {
@@ -36051,8 +37687,10 @@ function extractJsElements(code) {
36051
37687
  var exportFunctions = [];
36052
37688
  var exportVariables = [];
36053
37689
  var parsedNodes = getAcornParsedNodes(code);
36054
- if (!parsedNodes)
37690
+ if (!parsedNodes) {
37691
+ console.warn('Failed to parse logic rule code');
36055
37692
  return { exportVariables: exportVariables, exportFunctions: exportFunctions };
37693
+ }
36056
37694
  // Helper: turn a param node into its original text
36057
37695
  var paramText = function (p) { return code.slice(p.start, p.end); };
36058
37696
  // Helper: build function signature and body from FunctionExpression or ArrowFunctionExpression
@@ -42311,6 +43949,112 @@ function loadQRScanner() {
42311
43949
  qrPromise = dynamicImport(QR_SCANNER_LIB_URL);
42312
43950
  }
42313
43951
 
43952
+ /**
43953
+ * Event queue for holding events before user interaction
43954
+ */
43955
+ var EventQueue = /** @class */ (function () {
43956
+ function EventQueue() {
43957
+ this.queue = [];
43958
+ this.isReplaying = false;
43959
+ }
43960
+ EventQueue.prototype.enqueue = function (eventData) {
43961
+ var _this = this;
43962
+ return new Promise(function (resolve, reject) {
43963
+ _this.queue.push({
43964
+ eventData: eventData,
43965
+ timestamp: Date.now(),
43966
+ resolve: resolve,
43967
+ reject: reject
43968
+ });
43969
+ });
43970
+ };
43971
+ EventQueue.prototype.getAll = function () {
43972
+ return this.queue;
43973
+ };
43974
+ EventQueue.prototype.clear = function () {
43975
+ this.queue = [];
43976
+ };
43977
+ EventQueue.prototype.isEmpty = function () {
43978
+ return this.queue.length === 0;
43979
+ };
43980
+ EventQueue.prototype.size = function () {
43981
+ return this.queue.length;
43982
+ };
43983
+ EventQueue.prototype.isReplayingEvents = function () {
43984
+ return this.isReplaying;
43985
+ };
43986
+ EventQueue.prototype.setReplayState = function (replaying) {
43987
+ this.isReplaying = replaying;
43988
+ };
43989
+ /**
43990
+ * Apply replay function to all queued events
43991
+ * @param replayFn Function to call for each event
43992
+ */
43993
+ EventQueue.prototype.replayAll = function (replayFn) {
43994
+ return __awaiter$2(this, void 0, void 0, function () {
43995
+ var eventsToReplay, eventsToReplay_1, eventsToReplay_1_1, queuedEvent, result, error_1, e_1_1;
43996
+ var e_1, _a;
43997
+ return __generator(this, function (_b) {
43998
+ switch (_b.label) {
43999
+ case 0:
44000
+ if (this.isEmpty())
44001
+ return [2 /*return*/];
44002
+ this.setReplayState(true);
44003
+ _b.label = 1;
44004
+ case 1:
44005
+ _b.trys.push([1, , 14, 15]);
44006
+ _b.label = 2;
44007
+ case 2:
44008
+ if (!!this.isEmpty()) return [3 /*break*/, 13];
44009
+ eventsToReplay = __spreadArray([], __read(this.queue), false);
44010
+ this.queue = [];
44011
+ _b.label = 3;
44012
+ case 3:
44013
+ _b.trys.push([3, 10, 11, 12]);
44014
+ eventsToReplay_1 = (e_1 = void 0, __values(eventsToReplay)), eventsToReplay_1_1 = eventsToReplay_1.next();
44015
+ _b.label = 4;
44016
+ case 4:
44017
+ if (!!eventsToReplay_1_1.done) return [3 /*break*/, 9];
44018
+ queuedEvent = eventsToReplay_1_1.value;
44019
+ _b.label = 5;
44020
+ case 5:
44021
+ _b.trys.push([5, 7, , 8]);
44022
+ return [4 /*yield*/, replayFn(queuedEvent.eventData)];
44023
+ case 6:
44024
+ result = _b.sent();
44025
+ queuedEvent.resolve(result);
44026
+ return [3 /*break*/, 8];
44027
+ case 7:
44028
+ error_1 = _b.sent();
44029
+ queuedEvent.reject(error_1);
44030
+ return [3 /*break*/, 8];
44031
+ case 8:
44032
+ eventsToReplay_1_1 = eventsToReplay_1.next();
44033
+ return [3 /*break*/, 4];
44034
+ case 9: return [3 /*break*/, 12];
44035
+ case 10:
44036
+ e_1_1 = _b.sent();
44037
+ e_1 = { error: e_1_1 };
44038
+ return [3 /*break*/, 12];
44039
+ case 11:
44040
+ try {
44041
+ if (eventsToReplay_1_1 && !eventsToReplay_1_1.done && (_a = eventsToReplay_1.return)) _a.call(eventsToReplay_1);
44042
+ }
44043
+ finally { if (e_1) throw e_1.error; }
44044
+ return [7 /*endfinally*/];
44045
+ case 12: return [3 /*break*/, 2];
44046
+ case 13: return [3 /*break*/, 15];
44047
+ case 14:
44048
+ this.setReplayState(false);
44049
+ return [7 /*endfinally*/];
44050
+ case 15: return [2 /*return*/];
44051
+ }
44052
+ });
44053
+ });
44054
+ };
44055
+ return EventQueue;
44056
+ }());
44057
+
42314
44058
  var API_URL_OPTIONS = {
42315
44059
  local: 'http://localhost:8006/api/',
42316
44060
  staging: 'https://staging.feathery.io/api/',
@@ -42385,6 +44129,10 @@ var FeatheryClient = /** @class */ (function (_super) {
42385
44129
  var _this = this;
42386
44130
  var _a, _b;
42387
44131
  _this = _super.call(this, formKey, ignoreNetworkErrors, draft, bypassCDN) || this;
44132
+ /**
44133
+ * Queue for events triggered before user interaction
44134
+ */
44135
+ _this.userEventQueue = new EventQueue();
42388
44136
  /**
42389
44137
  * `beforeunload` event handler that flushes the pending submit custom changes
42390
44138
  * when a user is attempting to exit the page.
@@ -42420,8 +44168,39 @@ var FeatheryClient = /** @class */ (function (_super) {
42420
44168
  var _a, _b;
42421
44169
  return __awaiter$2(this, void 0, void 0, function () {
42422
44170
  return __generator(this, function (_c) {
42423
- (_b = (_a = featheryWindow()).removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, FEATHERY_INTERACTION_EVENT, this.handleInteraction);
42424
- return [2 /*return*/, this.submitCustom({}, { shouldFlush: true })];
44171
+ switch (_c.label) {
44172
+ case 0:
44173
+ (_b = (_a = featheryWindow()).removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, FEATHERY_INTERACTION_EVENT, this.handleInteraction);
44174
+ // replay queued events, then flush fields
44175
+ return [4 /*yield*/, this.replayQueuedEvents()];
44176
+ case 1:
44177
+ // replay queued events, then flush fields
44178
+ _c.sent();
44179
+ return [4 /*yield*/, this.submitCustom({}, { shouldFlush: true })];
44180
+ case 2:
44181
+ _c.sent();
44182
+ return [2 /*return*/];
44183
+ }
44184
+ });
44185
+ });
44186
+ };
44187
+ FeatheryClient.prototype.replayQueuedEvents = function () {
44188
+ return __awaiter$2(this, void 0, void 0, function () {
44189
+ var _this = this;
44190
+ return __generator(this, function (_a) {
44191
+ switch (_a.label) {
44192
+ case 0:
44193
+ if (this.userEventQueue.isEmpty())
44194
+ return [2 /*return*/];
44195
+ return [4 /*yield*/, this.userEventQueue.replayAll(function (eventData) { return __awaiter$2(_this, void 0, void 0, function () {
44196
+ return __generator(this, function (_a) {
44197
+ return [2 /*return*/, this._registerEventInternal(eventData)];
44198
+ });
44199
+ }); })];
44200
+ case 1:
44201
+ _a.sent();
44202
+ return [2 /*return*/];
44203
+ }
42425
44204
  });
42426
44205
  });
42427
44206
  };
@@ -43112,15 +44891,24 @@ var FeatheryClient = /** @class */ (function (_super) {
43112
44891
  });
43113
44892
  };
43114
44893
  FeatheryClient.prototype.registerEvent = function (eventData) {
44894
+ return __awaiter$2(this, void 0, void 0, function () {
44895
+ return __generator(this, function (_a) {
44896
+ if (this.draft)
44897
+ return [2 /*return*/];
44898
+ if (!isInteractionDetected() || this.userEventQueue.isReplayingEvents()) {
44899
+ return [2 /*return*/, this.userEventQueue.enqueue(eventData)];
44900
+ }
44901
+ return [2 /*return*/, this._registerEventInternal(eventData)];
44902
+ });
44903
+ });
44904
+ };
44905
+ FeatheryClient.prototype._registerEventInternal = function (eventData) {
43115
44906
  return __awaiter$2(this, void 0, void 0, function () {
43116
44907
  var _a, userId, collaboratorId, url, data, options, prom, stepKey, triggerEvent, eventPromise;
43117
44908
  var _this = this;
43118
44909
  return __generator(this, function (_b) {
43119
44910
  switch (_b.label) {
43120
- case 0:
43121
- if (this.draft)
43122
- return [2 /*return*/];
43123
- return [4 /*yield*/, initFormsPromise];
44911
+ case 0: return [4 /*yield*/, initFormsPromise];
43124
44912
  case 1:
43125
44913
  _b.sent();
43126
44914
  _a = initInfo(), userId = _a.userId, collaboratorId = _a.collaboratorId;
@@ -43295,7 +45083,7 @@ var FeatheryClient = /** @class */ (function (_super) {
43295
45083
  userId = initInfo().userId;
43296
45084
  url = "".concat(API_URL, "email/forward/");
43297
45085
  data = {
43298
- user_id: userId,
45086
+ user_id: options.submissionId || userId,
43299
45087
  recipients: options.emails || [],
43300
45088
  email_group: options.emailGroup || '',
43301
45089
  panel_key: this.formKey
@@ -43632,9 +45420,9 @@ function init(sdkKey, options) {
43632
45420
  if (runningInClient()) {
43633
45421
  // Dynamically load libraries that must be client side
43634
45422
  global.scriptjsLoadPromise = import(
43635
- /* webpackChunkName: "scriptjs" */ './fthry_script.BL_LvOsU.js').then(function (n) { return n.s; });
45423
+ /* webpackChunkName: "scriptjs" */ './fthry_script.O8zBOlCA.js').then(function (n) { return n.s; });
43636
45424
  global.webfontloaderPromise = import(
43637
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.BonjOYue.js').then(function (n) { return n.w; });
45425
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.CoDBzqSo.js').then(function (n) { return n.w; });
43638
45426
  // Client-side tracking logic
43639
45427
  if (initState.userTracking === 'cookie') {
43640
45428
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -43780,7 +45568,7 @@ function getFieldValues() {
43780
45568
  return __assign({}, fieldValues);
43781
45569
  }
43782
45570
  function logFeatheryBadge() {
43783
- console.log('%c Feathery %c v' + "2.15.0" + ' ', // replaced with real version during build
45571
+ console.log('%c Feathery %c v' + "2.15.2" + ' ', // replaced with real version during build
43784
45572
  'background: #e2626e; color: white; padding: 2px 6px; border-radius: 3px 0 0 3px; font-weight: bold;', 'background: #fce7e9; color: #c5495a; padding: 2px 6px; border-radius: 0 3px 3px 0;');
43785
45573
  }
43786
45574
 
@@ -45258,39 +47046,39 @@ breakpoint) {
45258
47046
  return styles.getTarget('inner-container', undefined, viewport === 'mobile');
45259
47047
  };
45260
47048
 
45261
- var AddressLine1 = lazy(function () { return import(/* webpackChunkName: "AddressField" */ './fthry_index.BIkZtQJH.js'); });
45262
- var ButtonGroupField = lazy(function () { return import(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.4fMPrW44.js'); });
45263
- var CheckboxField = lazy(function () { return import(/* webpackChunkName: "CheckboxField" */ './fthry_index.uw0MJJ4F.js'); });
47049
+ var AddressLine1 = lazy(function () { return import(/* webpackChunkName: "AddressField" */ './fthry_index.C1kFKyCH.js'); });
47050
+ var ButtonGroupField = lazy(function () { return import(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.BU4UE1sU.js'); });
47051
+ var CheckboxField = lazy(function () { return import(/* webpackChunkName: "CheckboxField" */ './fthry_index.BxQkJS7f.js'); });
45264
47052
  var CheckboxGroupField = lazy(function () {
45265
- return import(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.Cz1sN7j0.js');
47053
+ return import(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.o4PxfOJO.js');
45266
47054
  });
45267
- var ColorPickerField = lazy(function () { return import(/* webpackChunkName: "ColorPickerField" */ './fthry_index.DkSTwhvF.js'); });
45268
- var CustomField = lazy(function () { return import(/* webpackChunkName: "CustomField" */ './fthry_index.B-bHDKSO.js'); });
47055
+ var ColorPickerField = lazy(function () { return import(/* webpackChunkName: "ColorPickerField" */ './fthry_index.BdCDxxfG.js'); });
47056
+ var CustomField = lazy(function () { return import(/* webpackChunkName: "CustomField" */ './fthry_index.DsaDQSjY.js'); });
45269
47057
  var DateSelectorField = lazy(function () {
45270
- return import(/* webpackChunkName: "DateSelectorField" */ './fthry_index.CkEibXDT.js');
47058
+ return import(/* webpackChunkName: "DateSelectorField" */ './fthry_index.8lndGH_r.js');
45271
47059
  });
45272
- var DropdownField = lazy(function () { return import(/* webpackChunkName: "DropdownField" */ './fthry_index.DwzU97uW.js'); });
47060
+ var DropdownField = lazy(function () { return import(/* webpackChunkName: "DropdownField" */ './fthry_index.Tay5ya9r.js'); });
45273
47061
  var DropdownMultiField = lazy(function () {
45274
- return import(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.BD6daAle.js');
47062
+ return import(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.An6X1bIc.js');
45275
47063
  });
45276
- var FileUploadField = lazy(function () { return import(/* webpackChunkName: "FileUploadField" */ './fthry_index.BuGMpxqA.js'); });
45277
- var MatrixField = lazy(function () { return import(/* webpackChunkName: "MatrixField" */ './fthry_index.DCKiab_1.js'); });
45278
- var PasswordField = lazy(function () { return import(/* webpackChunkName: "PasswordField" */ './fthry_index.D6uzSPi5.js'); });
47064
+ var FileUploadField = lazy(function () { return import(/* webpackChunkName: "FileUploadField" */ './fthry_index.Ba9tRElL.js'); });
47065
+ var MatrixField = lazy(function () { return import(/* webpackChunkName: "MatrixField" */ './fthry_index.252mvAiR.js'); });
47066
+ var PasswordField = lazy(function () { return import(/* webpackChunkName: "PasswordField" */ './fthry_index.CcXjEG71.js'); });
45279
47067
  var PaymentMethodField = lazy(function () {
45280
- return import(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.C2kDTnuL.js');
47068
+ return import(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.CPOf1iA4.js');
45281
47069
  });
45282
- var PhoneField = lazy(function () { return import(/* webpackChunkName: "PhoneField" */ './fthry_index.CCtbaItI.js'); });
45283
- var PinInputField = lazy(function () { return import(/* webpackChunkName: "PinInputField" */ './fthry_index.Cocw39qz.js'); });
45284
- var QRScanner = lazy(function () { return import(/* webpackChunkName: "QRScanner" */ './fthry_index.BF_Plcr0.js'); });
47070
+ var PhoneField = lazy(function () { return import(/* webpackChunkName: "PhoneField" */ './fthry_index.B0vwUF95.js'); });
47071
+ var PinInputField = lazy(function () { return import(/* webpackChunkName: "PinInputField" */ './fthry_index.DMrogAPL.js'); });
47072
+ var QRScanner = lazy(function () { return import(/* webpackChunkName: "QRScanner" */ './fthry_index.f_bJZ-Qj.js'); });
45285
47073
  var RadioButtonGroupField = lazy(function () {
45286
47074
  return import(
45287
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.DvV-_9rQ.js');
47075
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.CI18NEpR.js');
45288
47076
  });
45289
- var RatingField = lazy(function () { return import(/* webpackChunkName: "RatingField" */ './fthry_index.C0TSdYY1.js'); });
45290
- var SignatureField = lazy(function () { return import(/* webpackChunkName: "SignatureField" */ './fthry_index.D9VkJYNy.js'); });
45291
- var SliderField = lazy(function () { return import(/* webpackChunkName: "SliderField" */ './fthry_index.BXiUUqma.js'); });
45292
- var TextField = lazy(function () { return import(/* webpackChunkName: "TextField" */ './fthry_index.COrbe5-R.js'); });
45293
- var TextArea = lazy(function () { return import(/* webpackChunkName: "TextArea" */ './fthry_index.CxYSZnO_.js'); });
47077
+ var RatingField = lazy(function () { return import(/* webpackChunkName: "RatingField" */ './fthry_index.BTzaBsCg.js'); });
47078
+ var SignatureField = lazy(function () { return import(/* webpackChunkName: "SignatureField" */ './fthry_index.Hf19u6bh.js'); });
47079
+ var SliderField = lazy(function () { return import(/* webpackChunkName: "SliderField" */ './fthry_index.CFVO0drz.js'); });
47080
+ var TextField = lazy(function () { return import(/* webpackChunkName: "TextField" */ './fthry_index.C_g49tb4.js'); });
47081
+ var TextArea = lazy(function () { return import(/* webpackChunkName: "TextArea" */ './fthry_index.CxPrJCG7.js'); });
45294
47082
  var Fields = {
45295
47083
  AddressLine1: AddressLine1,
45296
47084
  ButtonGroupField: ButtonGroupField,
@@ -46230,7 +48018,7 @@ function ElementSkeleton(_a) {
46230
48018
  }
46231
48019
  var templateObject_1;
46232
48020
 
46233
- var TableElement = lazy(function () { return import(/* webpackChunkName: "TableElement" */ './fthry_index.IjpiaOO-.js'); });
48021
+ var TableElement = lazy(function () { return import(/* webpackChunkName: "TableElement" */ './fthry_index.uyi04ekt.js'); });
46234
48022
  var Basic = {
46235
48023
  ImageElement: ImageElement,
46236
48024
  VideoElement: VideoElement,