@4site/engrid-scripts 0.19.1

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 (189) hide show
  1. package/.prettierrc.js +226 -0
  2. package/LICENSE +24 -0
  3. package/dist/a11y.d.ts +6 -0
  4. package/dist/a11y.js +46 -0
  5. package/dist/add-name-to-message.d.ts +5 -0
  6. package/dist/add-name-to-message.js +49 -0
  7. package/dist/advocacy.d.ts +7 -0
  8. package/dist/advocacy.js +34 -0
  9. package/dist/amount-label.d.ts +6 -0
  10. package/dist/amount-label.js +29 -0
  11. package/dist/app.d.ts +19 -0
  12. package/dist/app.js +340 -0
  13. package/dist/apple-pay.d.ts +13 -0
  14. package/dist/apple-pay.js +169 -0
  15. package/dist/auto-country-select.d.ts +10 -0
  16. package/dist/auto-country-select.js +63 -0
  17. package/dist/auto-year.d.ts +7 -0
  18. package/dist/auto-year.js +35 -0
  19. package/dist/autocomplete.d.ts +5 -0
  20. package/dist/autocomplete.js +38 -0
  21. package/dist/autosubmit.d.ts +5 -0
  22. package/dist/autosubmit.js +14 -0
  23. package/dist/branding-html.d.ts +14 -0
  24. package/dist/branding-html.js +70 -0
  25. package/dist/capitalize-fields.d.ts +7 -0
  26. package/dist/capitalize-fields.js +22 -0
  27. package/dist/click-to-expand.d.ts +4 -0
  28. package/dist/click-to-expand.js +39 -0
  29. package/dist/cookie.d.ts +53 -0
  30. package/dist/cookie.js +76 -0
  31. package/dist/country-disable.d.ts +4 -0
  32. package/dist/country-disable.js +22 -0
  33. package/dist/country-redirect.d.ts +7 -0
  34. package/dist/country-redirect.js +61 -0
  35. package/dist/custom-currency.d.ts +9 -0
  36. package/dist/custom-currency.js +112 -0
  37. package/dist/data-attributes.d.ts +5 -0
  38. package/dist/data-attributes.js +122 -0
  39. package/dist/data-hide.d.ts +15 -0
  40. package/dist/data-hide.js +66 -0
  41. package/dist/data-layer.d.ts +23 -0
  42. package/dist/data-layer.js +312 -0
  43. package/dist/data-replace.d.ts +26 -0
  44. package/dist/data-replace.js +76 -0
  45. package/dist/debug-hidden-fields.d.ts +4 -0
  46. package/dist/debug-hidden-fields.js +42 -0
  47. package/dist/debug-panel.d.ts +27 -0
  48. package/dist/debug-panel.js +508 -0
  49. package/dist/deprecated.d.ts +5 -0
  50. package/dist/deprecated.js +40 -0
  51. package/dist/digital-wallets.d.ts +8 -0
  52. package/dist/digital-wallets.js +143 -0
  53. package/dist/ecard-to-target.d.ts +11 -0
  54. package/dist/ecard-to-target.js +73 -0
  55. package/dist/ecard.d.ts +8 -0
  56. package/dist/ecard.js +61 -0
  57. package/dist/embedded-ecard.d.ts +18 -0
  58. package/dist/embedded-ecard.js +267 -0
  59. package/dist/en-validators.d.ts +10 -0
  60. package/dist/en-validators.js +89 -0
  61. package/dist/engrid.d.ts +49 -0
  62. package/dist/engrid.js +547 -0
  63. package/dist/event-tickets.d.ts +3 -0
  64. package/dist/event-tickets.js +24 -0
  65. package/dist/events/country.d.ts +12 -0
  66. package/dist/events/country.js +42 -0
  67. package/dist/events/donation-amount.d.ts +16 -0
  68. package/dist/events/donation-amount.js +119 -0
  69. package/dist/events/donation-frequency.d.ts +17 -0
  70. package/dist/events/donation-frequency.js +115 -0
  71. package/dist/events/en-form.d.ts +20 -0
  72. package/dist/events/en-form.js +52 -0
  73. package/dist/events/index.d.ts +6 -0
  74. package/dist/events/index.js +6 -0
  75. package/dist/events/processing-fees.d.ts +20 -0
  76. package/dist/events/processing-fees.js +92 -0
  77. package/dist/events/remember-me-events.d.ts +18 -0
  78. package/dist/events/remember-me-events.js +36 -0
  79. package/dist/exit-intent-lightbox.d.ts +14 -0
  80. package/dist/exit-intent-lightbox.js +145 -0
  81. package/dist/expand-region-name.d.ts +7 -0
  82. package/dist/expand-region-name.js +44 -0
  83. package/dist/fast-form-fill.d.ts +8 -0
  84. package/dist/fast-form-fill.js +75 -0
  85. package/dist/freshaddress.d.ts +18 -0
  86. package/dist/freshaddress.js +204 -0
  87. package/dist/give-by-select.d.ts +9 -0
  88. package/dist/give-by-select.js +82 -0
  89. package/dist/iframe.d.ts +16 -0
  90. package/dist/iframe.js +217 -0
  91. package/dist/index.d.ts +82 -0
  92. package/dist/index.js +84 -0
  93. package/dist/input-has-value-and-focus.d.ts +9 -0
  94. package/dist/input-has-value-and-focus.js +50 -0
  95. package/dist/input-placeholders.d.ts +7 -0
  96. package/dist/input-placeholders.js +82 -0
  97. package/dist/interfaces/ecard-to-target-options.d.ts +9 -0
  98. package/dist/interfaces/ecard-to-target-options.js +8 -0
  99. package/dist/interfaces/embedded-ecard-options.d.ts +8 -0
  100. package/dist/interfaces/embedded-ecard-options.js +7 -0
  101. package/dist/interfaces/exit-intent-options.d.ts +13 -0
  102. package/dist/interfaces/exit-intent-options.js +13 -0
  103. package/dist/interfaces/options.d.ts +147 -0
  104. package/dist/interfaces/options.js +50 -0
  105. package/dist/interfaces/translate-options.d.ts +7 -0
  106. package/dist/interfaces/translate-options.js +42 -0
  107. package/dist/interfaces/upsell-options.d.ts +24 -0
  108. package/dist/interfaces/upsell-options.js +33 -0
  109. package/dist/live-currency.d.ts +15 -0
  110. package/dist/live-currency.js +140 -0
  111. package/dist/live-frequency.d.ts +13 -0
  112. package/dist/live-frequency.js +109 -0
  113. package/dist/live-variables.d.ts +21 -0
  114. package/dist/live-variables.js +147 -0
  115. package/dist/loader.d.ts +10 -0
  116. package/dist/loader.js +175 -0
  117. package/dist/logger.d.ts +16 -0
  118. package/dist/logger.js +84 -0
  119. package/dist/media-attribution.d.ts +4 -0
  120. package/dist/media-attribution.js +66 -0
  121. package/dist/menu.d.ts +0 -0
  122. package/dist/menu.js +1 -0
  123. package/dist/min-max-amount.d.ts +13 -0
  124. package/dist/min-max-amount.js +71 -0
  125. package/dist/mobile-cta.d.ts +9 -0
  126. package/dist/mobile-cta.js +71 -0
  127. package/dist/modal.d.ts +19 -0
  128. package/dist/modal.js +129 -0
  129. package/dist/neverbounce.d.ts +23 -0
  130. package/dist/neverbounce.js +244 -0
  131. package/dist/other-amount.d.ts +6 -0
  132. package/dist/other-amount.js +70 -0
  133. package/dist/page-background.d.ts +7 -0
  134. package/dist/page-background.js +55 -0
  135. package/dist/plaid.d.ts +6 -0
  136. package/dist/plaid.js +49 -0
  137. package/dist/postal-code-validator.d.ts +20 -0
  138. package/dist/postal-code-validator.js +118 -0
  139. package/dist/premium-gift.d.ts +10 -0
  140. package/dist/premium-gift.js +115 -0
  141. package/dist/progress-bar.d.ts +3 -0
  142. package/dist/progress-bar.js +40 -0
  143. package/dist/remember-me.d.ts +61 -0
  144. package/dist/remember-me.js +358 -0
  145. package/dist/required-if-visible.d.ts +8 -0
  146. package/dist/required-if-visible.js +60 -0
  147. package/dist/set-attr.d.ts +4 -0
  148. package/dist/set-attr.js +31 -0
  149. package/dist/set-recurr-freq.d.ts +7 -0
  150. package/dist/set-recurr-freq.js +70 -0
  151. package/dist/show-hide-radio-checkboxes.d.ts +13 -0
  152. package/dist/show-hide-radio-checkboxes.js +161 -0
  153. package/dist/show-if-amount.d.ts +15 -0
  154. package/dist/show-if-amount.js +117 -0
  155. package/dist/show-if-present.d.ts +7 -0
  156. package/dist/show-if-present.js +79 -0
  157. package/dist/skip-link.d.ts +4 -0
  158. package/dist/skip-link.js +36 -0
  159. package/dist/src-defer.d.ts +6 -0
  160. package/dist/src-defer.js +70 -0
  161. package/dist/supporter-hub.d.ts +9 -0
  162. package/dist/supporter-hub.js +75 -0
  163. package/dist/swap-amounts.d.ts +45 -0
  164. package/dist/swap-amounts.js +81 -0
  165. package/dist/thank-you-page-conditional-content.d.ts +8 -0
  166. package/dist/thank-you-page-conditional-content.js +46 -0
  167. package/dist/ticker.d.ts +11 -0
  168. package/dist/ticker.js +66 -0
  169. package/dist/tidycontact.d.ts +46 -0
  170. package/dist/tidycontact.js +1202 -0
  171. package/dist/translate-fields.d.ts +12 -0
  172. package/dist/translate-fields.js +548 -0
  173. package/dist/universal-opt-in.d.ts +7 -0
  174. package/dist/universal-opt-in.js +91 -0
  175. package/dist/upsell-lightbox.d.ts +31 -0
  176. package/dist/upsell-lightbox.js +363 -0
  177. package/dist/url-params-to-body-attrs.d.ts +5 -0
  178. package/dist/url-params-to-body-attrs.js +14 -0
  179. package/dist/url-to-form.d.ts +7 -0
  180. package/dist/url-to-form.js +32 -0
  181. package/dist/us-only-form.d.ts +4 -0
  182. package/dist/us-only-form.js +30 -0
  183. package/dist/version.d.ts +1 -0
  184. package/dist/version.js +1 -0
  185. package/dist/vgs.d.ts +16 -0
  186. package/dist/vgs.js +250 -0
  187. package/dist/welcome-back.d.ts +10 -0
  188. package/dist/welcome-back.js +112 -0
  189. package/package.json +32 -0
@@ -0,0 +1,42 @@
1
+ // Switches hidden fields to be type text when debug mode is enabled.
2
+ import { EngridLogger } from ".";
3
+ export class DebugHiddenFields {
4
+ constructor() {
5
+ this.logger = new EngridLogger("Debug hidden fields", "#f0f0f0", "#ff0000", "🫣");
6
+ // Query all hidden input elements within the specified selectors
7
+ const fields = document.querySelectorAll(".en__component--row [type='hidden'][class*='en_'], .engrid-added-input[type='hidden']");
8
+ // Check if there are any hidden fields
9
+ if (fields.length > 0) {
10
+ // Log the names of the hidden fields being changed to type 'text'
11
+ this.logger.log(`Switching the following type 'hidden' fields to type 'text': ${[
12
+ ...fields,
13
+ ]
14
+ .map((f) => f.name)
15
+ .join(", ")}`);
16
+ // Iterate through each hidden input element
17
+ fields.forEach((el) => {
18
+ // Change the input type to 'text' and add the required classes
19
+ el.type = "text";
20
+ el.classList.add("en__field__input", "en__field__input--text");
21
+ // Create a new label element and set its text and classes
22
+ const label = document.createElement("label");
23
+ label.textContent = "Hidden field: " + el.name;
24
+ label.classList.add("en__field__label");
25
+ // Create a new 'div' element for the input field and add the required classes
26
+ const fieldElement = document.createElement("div");
27
+ fieldElement.classList.add("en__field__element", "en__field__element--text");
28
+ // Create a new 'div' container for the label and input field, and add the required classes and attribute
29
+ const fieldContainer = document.createElement("div");
30
+ fieldContainer.classList.add("en__field", "en__field--text", "hide");
31
+ fieldContainer.dataset.unhidden = "";
32
+ fieldContainer.appendChild(label);
33
+ fieldContainer.appendChild(fieldElement);
34
+ // Insert the new field container before the original input element and move the input element into the field element div
35
+ if (el.parentNode) {
36
+ el.parentNode.insertBefore(fieldContainer, el);
37
+ fieldElement.appendChild(el);
38
+ }
39
+ });
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,27 @@
1
+ export declare class DebugPanel {
2
+ private logger;
3
+ private brandingHtml;
4
+ private element;
5
+ private currentTimestamp;
6
+ static debugSessionStorageKey: string;
7
+ private pageLayouts;
8
+ private quickFills;
9
+ constructor(pageLayouts: string[] | undefined);
10
+ private loadDebugPanel;
11
+ private switchENGridLayout;
12
+ private setupLayoutSwitcher;
13
+ private setupThemeSwitcher;
14
+ private switchENGridTheme;
15
+ private setupSubThemeSwitcher;
16
+ private switchENGridSubtheme;
17
+ private setupFormQuickfill;
18
+ private setFieldValue;
19
+ private getCurrentTimestamp;
20
+ private createDebugSessionEndHandler;
21
+ private setupEmbeddedLayoutSwitcher;
22
+ private setupDebugLayoutSwitcher;
23
+ private setupBrandingHtmlHandler;
24
+ private setupEditBtnHandler;
25
+ private setupForceSubmitLinkHandler;
26
+ private setupSubmitBtnHandler;
27
+ }
@@ -0,0 +1,508 @@
1
+ import { ENGrid, EngridLogger, BrandingHtml } from ".";
2
+ export class DebugPanel {
3
+ constructor(pageLayouts) {
4
+ var _a, _b;
5
+ this.logger = new EngridLogger("Debug Panel", "#f0f0f0", "#ff0000", "💥");
6
+ this.brandingHtml = new BrandingHtml();
7
+ this.element = null;
8
+ this.currentTimestamp = this.getCurrentTimestamp();
9
+ this.quickFills = {
10
+ "pi-general": [
11
+ {
12
+ name: "supporter.title",
13
+ value: "Ms",
14
+ },
15
+ {
16
+ name: "supporter.firstName",
17
+ value: "4Site",
18
+ },
19
+ {
20
+ name: "supporter.lastName",
21
+ value: "Studio",
22
+ },
23
+ {
24
+ name: "supporter.emailAddress",
25
+ value: "en-test@4sitestudios.com",
26
+ },
27
+ {
28
+ name: "supporter.phoneNumber",
29
+ value: "555-555-5555",
30
+ },
31
+ ],
32
+ "pi-unique": [
33
+ {
34
+ name: "supporter.title",
35
+ value: "Ms",
36
+ },
37
+ {
38
+ name: "supporter.firstName",
39
+ value: `4Site ${this.currentTimestamp}`,
40
+ },
41
+ {
42
+ name: "supporter.lastName",
43
+ value: "Studio",
44
+ },
45
+ {
46
+ name: "supporter.emailAddress",
47
+ value: `en-test+${this.currentTimestamp}@4sitestudios.com`,
48
+ },
49
+ {
50
+ name: "supporter.phoneNumber",
51
+ value: "555-555-5555",
52
+ },
53
+ ],
54
+ "us-address": [
55
+ {
56
+ name: "supporter.address1",
57
+ value: "3431 14th St NW",
58
+ },
59
+ {
60
+ name: "supporter.address2",
61
+ value: "Suite 1",
62
+ },
63
+ {
64
+ name: "supporter.city",
65
+ value: "Washington",
66
+ },
67
+ {
68
+ name: "supporter.region",
69
+ value: "DC",
70
+ },
71
+ {
72
+ name: "supporter.postcode",
73
+ value: "20010",
74
+ },
75
+ {
76
+ name: "supporter.country",
77
+ value: "US",
78
+ },
79
+ ],
80
+ "us-address-senate-rep": [
81
+ {
82
+ name: "supporter.address1",
83
+ value: "20 W 34th Street",
84
+ },
85
+ {
86
+ name: "supporter.address2",
87
+ value: "",
88
+ },
89
+ {
90
+ name: "supporter.city",
91
+ value: "New York",
92
+ },
93
+ {
94
+ name: "supporter.region",
95
+ value: "NY",
96
+ },
97
+ {
98
+ name: "supporter.postcode",
99
+ value: "10001",
100
+ },
101
+ {
102
+ name: "supporter.country",
103
+ value: "US",
104
+ },
105
+ ],
106
+ "us-address-nonexistent": [
107
+ {
108
+ name: "supporter.address1",
109
+ value: "12345 Main Street",
110
+ },
111
+ {
112
+ name: "supporter.address2",
113
+ value: "",
114
+ },
115
+ {
116
+ name: "supporter.city",
117
+ value: "New York",
118
+ },
119
+ {
120
+ name: "supporter.region",
121
+ value: "TX",
122
+ },
123
+ {
124
+ name: "supporter.postcode",
125
+ value: "90210",
126
+ },
127
+ {
128
+ name: "supporter.country",
129
+ value: "US",
130
+ },
131
+ ],
132
+ "cc-paysafe-visa": [
133
+ {
134
+ name: "transaction.ccnumber",
135
+ value: "4530910000012345",
136
+ },
137
+ {
138
+ name: "transaction.ccexpire",
139
+ value: "12/27",
140
+ },
141
+ {
142
+ name: "transaction.ccvv",
143
+ value: "111",
144
+ },
145
+ ],
146
+ "cc-paysafe-visa-invalid": [
147
+ {
148
+ name: "transaction.ccnumber",
149
+ value: "411111",
150
+ },
151
+ {
152
+ name: "transaction.ccexpire",
153
+ value: "12/27",
154
+ },
155
+ {
156
+ name: "transaction.ccvv",
157
+ value: "111",
158
+ },
159
+ ],
160
+ "cc-paysafe-mastercard": [
161
+ {
162
+ name: "transaction.ccnumber",
163
+ value: "5036150000001115",
164
+ },
165
+ {
166
+ name: "transaction.ccexpire",
167
+ value: "12/27",
168
+ },
169
+ {
170
+ name: "transaction.ccvv",
171
+ value: "111",
172
+ },
173
+ ],
174
+ "cc-stripe-visa": [
175
+ {
176
+ name: "transaction.ccnumber",
177
+ value: "4242424242424242",
178
+ },
179
+ {
180
+ name: "transaction.ccexpire",
181
+ value: "12/27",
182
+ },
183
+ {
184
+ name: "transaction.ccvv",
185
+ value: "111",
186
+ },
187
+ ],
188
+ "quick-fill-pi-unique-us-address-senate-rep-cc-stripe-visa": [
189
+ {
190
+ name: "supporter.title",
191
+ value: "Ms",
192
+ },
193
+ {
194
+ name: "supporter.firstName",
195
+ value: `4Site ${this.currentTimestamp}`,
196
+ },
197
+ {
198
+ name: "supporter.lastName",
199
+ value: "Studio",
200
+ },
201
+ {
202
+ name: "supporter.emailAddress",
203
+ value: `en-test+${this.currentTimestamp}@4sitestudios.com`,
204
+ },
205
+ {
206
+ name: "supporter.phoneNumber",
207
+ value: "555-555-5555",
208
+ },
209
+ {
210
+ name: "supporter.address1",
211
+ value: "20 W 34th Street",
212
+ },
213
+ {
214
+ name: "supporter.address2",
215
+ value: "",
216
+ },
217
+ {
218
+ name: "supporter.city",
219
+ value: "New York",
220
+ },
221
+ {
222
+ name: "supporter.region",
223
+ value: "NY",
224
+ },
225
+ {
226
+ name: "supporter.postcode",
227
+ value: "10001",
228
+ },
229
+ {
230
+ name: "supporter.country",
231
+ value: "US",
232
+ },
233
+ {
234
+ name: "transaction.ccnumber",
235
+ value: "4242424242424242",
236
+ },
237
+ {
238
+ name: "transaction.ccexpire",
239
+ value: "12/27",
240
+ },
241
+ {
242
+ name: "transaction.ccvv",
243
+ value: "111",
244
+ },
245
+ ],
246
+ };
247
+ this.logger.log("Adding debug panel and starting a debug session");
248
+ this.pageLayouts = pageLayouts;
249
+ this.loadDebugPanel();
250
+ this.element = document.querySelector(".debug-panel");
251
+ (_a = this.element) === null || _a === void 0 ? void 0 : _a.addEventListener("click", () => {
252
+ var _a;
253
+ (_a = this.element) === null || _a === void 0 ? void 0 : _a.classList.add("debug-panel--open");
254
+ });
255
+ const debugPanelClose = document.querySelector(".debug-panel__close");
256
+ debugPanelClose === null || debugPanelClose === void 0 ? void 0 : debugPanelClose.addEventListener("click", (e) => {
257
+ var _a;
258
+ e.stopPropagation();
259
+ (_a = this.element) === null || _a === void 0 ? void 0 : _a.classList.remove("debug-panel--open");
260
+ });
261
+ if (ENGrid.getUrlParameter("assets") === "local") {
262
+ (_b = this.element) === null || _b === void 0 ? void 0 : _b.classList.add("debug-panel--local");
263
+ }
264
+ window.sessionStorage.setItem(DebugPanel.debugSessionStorageKey, "active");
265
+ }
266
+ loadDebugPanel() {
267
+ document.body.insertAdjacentHTML("beforeend", `<div class="debug-panel">
268
+ <div class="debug-panel__container">
269
+ <div class="debug-panel__closed-title">Debug</div>
270
+ <div class="debug-panel__title">
271
+ <h2>Debug</h2>
272
+ <div class="debug-panel__close">X</div>
273
+ </div>
274
+ <div class="debug-panel__options">
275
+ <div class="debug-panel__option">
276
+ <label class="debug-panel__link-label link-left">
277
+ <a class="debug-panel__edit-link">Edit page</a>
278
+ </label>
279
+ </div>
280
+ <div class="debug-panel__option">
281
+ <label for="engrid-form-quickfill">Quick-fill</label>
282
+ <select name="engrid-form-quickfill" id="engrid-form-quickfill">
283
+ <option disabled selected>Choose an option</option>
284
+ <option value="quick-fill-pi-unique-us-address-senate-rep-cc-stripe-visa">Quick-fill - Unique w/ Senate Address - Stripe Visa</option>
285
+ <option value="pi-general">Personal Info - General</option>
286
+ <option value="pi-unique">Personal Info - Unique</option>
287
+ <option value="us-address-senate-rep">US Address - w/ Senate Rep</option>
288
+ <option value="us-address">US Address - w/o Senate Rep</option>
289
+ <option value="us-address-nonexistent">US Address - Nonexistent</option>
290
+ <option value="cc-paysafe-visa">CC - Paysafe - Visa</option>
291
+ <option value="cc-paysafe-visa-invalid">CC - Paysafe - Visa (Invalid)</option>
292
+ <option value="cc-paysafe-mastercard">CC - Paysafe - Mastercard</option>
293
+ <option value="cc-stripe-visa">CC - Stripe - Visa</option>
294
+ </select>
295
+ </div>
296
+ <div class="debug-panel__option">
297
+ <label for="engrid-layout-switch">Layout</label>
298
+ <select name="engrid-layout" id="engrid-layout-switch">
299
+ </select>
300
+ </div>
301
+ <div class="debug-panel__option debug-panel__option--local">
302
+ <div class="debug-panel__checkbox">
303
+ <input type="checkbox" name="engrid-embedded-layout" id="engrid-embedded-layout">
304
+ <label for="engrid-embedded-layout">Embedded layout</label>
305
+ </div>
306
+ </div>
307
+ <div class="debug-panel__option debug-panel__option--local">
308
+ <div class="debug-panel__checkbox">
309
+ <input type="checkbox" name="engrid-debug-layout" id="engrid-debug-layout">
310
+ <label for="engrid-debug-layout">Debug layout</label>
311
+ </div>
312
+ </div>
313
+ <div class="debug-panel__option debug-panel__option--local">
314
+ <div class="debug-panel__checkbox">
315
+ <input type="checkbox" name="engrid-branding" id="engrid-branding">
316
+ <label for="engrid-branding">Branding HTML</label>
317
+ </div>
318
+ </div>
319
+ <div class="debug-panel__option">
320
+ <label for="engrid-theme">Theme</label>
321
+ <input type="text" id="engrid-theme">
322
+ </div>
323
+ <div class="debug-panel__option debug-panel__option--local">
324
+ <label for="engrid-theme">Sub-theme</label>
325
+ <input type="text" id="engrid-subtheme">
326
+ </div>
327
+ <div class="debug-panel__option">
328
+ <button class="btn debug-panel__btn debug-panel__btn--submit" type="button">Submit form</button>
329
+ </div>
330
+ <div class="debug-panel__option">
331
+ <label class="debug-panel__link-label">
332
+ <a class="debug-panel__force-submit-link">Force submit form</a>
333
+ </label>
334
+ </div>
335
+ <div class="debug-panel__option">
336
+ <label class="debug-panel__link-label">
337
+ <a class="debug-panel__end-debug-link">End debug</a>
338
+ </label>
339
+ </div>
340
+ </div>
341
+ </div>
342
+ </div>`);
343
+ this.setupLayoutSwitcher();
344
+ this.setupThemeSwitcher();
345
+ this.setupSubThemeSwitcher();
346
+ this.setupFormQuickfill();
347
+ this.createDebugSessionEndHandler();
348
+ this.setupEmbeddedLayoutSwitcher();
349
+ this.setupDebugLayoutSwitcher();
350
+ this.setupBrandingHtmlHandler();
351
+ this.setupEditBtnHandler();
352
+ this.setupForceSubmitLinkHandler();
353
+ this.setupSubmitBtnHandler();
354
+ }
355
+ switchENGridLayout(layout) {
356
+ ENGrid.setBodyData("layout", layout);
357
+ }
358
+ setupLayoutSwitcher() {
359
+ var _a, _b;
360
+ const engridLayoutSwitch = document.getElementById("engrid-layout-switch");
361
+ if (engridLayoutSwitch) {
362
+ (_a = this.pageLayouts) === null || _a === void 0 ? void 0 : _a.forEach((layout) => {
363
+ engridLayoutSwitch.insertAdjacentHTML("beforeend", `<option value="${layout}">${layout}</option>`);
364
+ });
365
+ engridLayoutSwitch.value = (_b = ENGrid.getBodyData("layout")) !== null && _b !== void 0 ? _b : "";
366
+ engridLayoutSwitch.addEventListener("change", (e) => {
367
+ const target = e.target;
368
+ this.switchENGridLayout(target.value);
369
+ });
370
+ }
371
+ }
372
+ setupThemeSwitcher() {
373
+ var _a;
374
+ const engridThemeInput = document.getElementById("engrid-theme");
375
+ if (engridThemeInput) {
376
+ engridThemeInput.value = (_a = ENGrid.getBodyData("theme")) !== null && _a !== void 0 ? _a : "";
377
+ ["keyup", "blur"].forEach((ev) => {
378
+ engridThemeInput.addEventListener(ev, (e) => {
379
+ const target = e.target;
380
+ this.switchENGridTheme(target.value);
381
+ });
382
+ });
383
+ }
384
+ }
385
+ switchENGridTheme(theme) {
386
+ ENGrid.setBodyData("theme", theme);
387
+ }
388
+ setupSubThemeSwitcher() {
389
+ var _a;
390
+ const engridSubthemeInput = document.getElementById("engrid-subtheme");
391
+ if (engridSubthemeInput) {
392
+ engridSubthemeInput.value = (_a = ENGrid.getBodyData("subtheme")) !== null && _a !== void 0 ? _a : "";
393
+ ["keyup", "blur"].forEach((ev) => {
394
+ engridSubthemeInput.addEventListener(ev, (e) => {
395
+ const target = e.target;
396
+ this.switchENGridSubtheme(target.value);
397
+ });
398
+ });
399
+ }
400
+ }
401
+ switchENGridSubtheme(subtheme) {
402
+ ENGrid.setBodyData("subtheme", subtheme);
403
+ }
404
+ setupFormQuickfill() {
405
+ const engridQuickfill = document.getElementById("engrid-form-quickfill");
406
+ engridQuickfill === null || engridQuickfill === void 0 ? void 0 : engridQuickfill.addEventListener("change", (e) => {
407
+ const target = e.target;
408
+ this.quickFills[target.value].forEach((qf) => {
409
+ this.setFieldValue(qf);
410
+ });
411
+ });
412
+ }
413
+ setFieldValue(qf) {
414
+ if (qf.name === "transaction.ccexpire") {
415
+ const ccExpireEls = document.getElementsByName("transaction.ccexpire");
416
+ if (ccExpireEls.length > 0) {
417
+ const expirationDate = qf.value.split("/");
418
+ ccExpireEls[0].value = expirationDate[0];
419
+ ccExpireEls[1].value = expirationDate[1];
420
+ ccExpireEls[0].dispatchEvent(new Event("change", { bubbles: true }));
421
+ ccExpireEls[1].dispatchEvent(new Event("change", { bubbles: true }));
422
+ }
423
+ else {
424
+ ccExpireEls[0].value = qf.value;
425
+ ccExpireEls[0].dispatchEvent(new Event("change", { bubbles: true }));
426
+ }
427
+ return;
428
+ }
429
+ ENGrid.setFieldValue(qf.name, qf.value, true, true);
430
+ }
431
+ getCurrentTimestamp() {
432
+ const now = new Date();
433
+ const year = now.getFullYear();
434
+ const month = String(now.getMonth() + 1).padStart(2, "0");
435
+ const day = String(now.getDate()).padStart(2, "0");
436
+ const hours = String(now.getHours()).padStart(2, "0");
437
+ const minutes = String(now.getMinutes()).padStart(2, "0");
438
+ return `${year}${month}${day}-${hours}${minutes}`;
439
+ }
440
+ createDebugSessionEndHandler() {
441
+ const debugSessionEndBtn = document.querySelector(".debug-panel__end-debug-link");
442
+ debugSessionEndBtn === null || debugSessionEndBtn === void 0 ? void 0 : debugSessionEndBtn.addEventListener("click", () => {
443
+ var _a;
444
+ this.logger.log("Removing panel and ending debug session");
445
+ (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();
446
+ window.sessionStorage.removeItem(DebugPanel.debugSessionStorageKey);
447
+ });
448
+ }
449
+ setupEmbeddedLayoutSwitcher() {
450
+ const embeddedLayoutSwitch = document.getElementById("engrid-embedded-layout");
451
+ if (embeddedLayoutSwitch) {
452
+ embeddedLayoutSwitch.checked = !!ENGrid.getBodyData("embedded");
453
+ embeddedLayoutSwitch.addEventListener("change", (e) => {
454
+ const target = e.target;
455
+ ENGrid.setBodyData("embedded", target.checked);
456
+ });
457
+ }
458
+ }
459
+ setupDebugLayoutSwitcher() {
460
+ const debugLayoutSwitch = document.getElementById("engrid-debug-layout");
461
+ if (debugLayoutSwitch) {
462
+ debugLayoutSwitch.checked = ENGrid.getBodyData("debug") === "layout";
463
+ debugLayoutSwitch.addEventListener("change", (e) => {
464
+ const target = e.target;
465
+ if (target.checked) {
466
+ ENGrid.setBodyData("debug", "layout");
467
+ }
468
+ else {
469
+ ENGrid.setBodyData("debug", "");
470
+ }
471
+ });
472
+ }
473
+ }
474
+ setupBrandingHtmlHandler() {
475
+ const brandingInput = document.getElementById("engrid-branding");
476
+ brandingInput.checked =
477
+ ENGrid.getUrlParameter("development") === "branding";
478
+ brandingInput.addEventListener("change", (e) => {
479
+ if (brandingInput.checked) {
480
+ this.brandingHtml.show();
481
+ }
482
+ else {
483
+ this.brandingHtml.hide();
484
+ }
485
+ });
486
+ }
487
+ setupEditBtnHandler() {
488
+ const editBtn = document.querySelector(".debug-panel__edit-link");
489
+ editBtn === null || editBtn === void 0 ? void 0 : editBtn.addEventListener("click", () => {
490
+ window.open(`https://${ENGrid.getDataCenter()}.engagingnetworks.app/index.html#pages/${ENGrid.getPageID()}/edit`, "_blank");
491
+ });
492
+ }
493
+ setupForceSubmitLinkHandler() {
494
+ const submitBtn = document.querySelector(".debug-panel__force-submit-link");
495
+ submitBtn === null || submitBtn === void 0 ? void 0 : submitBtn.addEventListener("click", () => {
496
+ const enForm = document.querySelector("form.en__component");
497
+ enForm === null || enForm === void 0 ? void 0 : enForm.submit();
498
+ });
499
+ }
500
+ setupSubmitBtnHandler() {
501
+ const submitBtn = document.querySelector(".debug-panel__btn--submit");
502
+ submitBtn === null || submitBtn === void 0 ? void 0 : submitBtn.addEventListener("click", () => {
503
+ const enForm = document.querySelector(".en__submit button");
504
+ enForm === null || enForm === void 0 ? void 0 : enForm.click();
505
+ });
506
+ }
507
+ }
508
+ DebugPanel.debugSessionStorageKey = "engrid_debug_panel";
@@ -0,0 +1,5 @@
1
+ export declare class Deprecated {
2
+ constructor();
3
+ private warning;
4
+ private replace;
5
+ }
@@ -0,0 +1,40 @@
1
+ // A way to gracefully handle deprecation.
2
+ // Find and replace HTML Elements, Classes, and more after the DOM is loaded but before any other Javascript fires.
3
+ import { ENGrid } from ".";
4
+ export class Deprecated {
5
+ constructor() {
6
+ let deprecated;
7
+ let replacement;
8
+ // Checks for body-side class
9
+ deprecated = document.querySelector(".body-side");
10
+ if (deprecated) {
11
+ this.warning(deprecated);
12
+ }
13
+ // Checks for backgroundImage class
14
+ deprecated = document.querySelector(".backgroundImage");
15
+ if (deprecated) {
16
+ replacement = "background-image";
17
+ this.replace(deprecated, replacement);
18
+ }
19
+ // Checks for backgroundImageOverlay class
20
+ deprecated = document.querySelector(".backgroundImageOverlay");
21
+ if (deprecated) {
22
+ replacement = "background-image-overlay";
23
+ this.replace(deprecated, replacement);
24
+ }
25
+ }
26
+ warning(deprecated) {
27
+ if (ENGrid.debug)
28
+ console.log("Deprecated: '" + deprecated + "' was detected and nothing was done.");
29
+ }
30
+ replace(deprecated, replacement) {
31
+ if (ENGrid.debug)
32
+ console.log("Deprecated: '" +
33
+ deprecated +
34
+ "' was detected and replaced with '" +
35
+ replacement +
36
+ "'.");
37
+ deprecated.classList.add(replacement);
38
+ deprecated.classList.remove(deprecated);
39
+ }
40
+ }
@@ -0,0 +1,8 @@
1
+ export declare class DigitalWallets {
2
+ constructor();
3
+ private addStripeDigitalWallets;
4
+ private addPaypalTouchDigitalWallets;
5
+ private addDAF;
6
+ private addOptionToPaymentTypeField;
7
+ private checkForWalletsBeingAdded;
8
+ }