diff --git a/packages/scripts/dist/embedded-ecard.js b/packages/scripts/dist/embedded-ecard.js index f83cd968..46434149 100644 --- a/packages/scripts/dist/embedded-ecard.js +++ b/packages/scripts/dist/embedded-ecard.js @@ -94,8 +94,20 @@ export class EmbeddedEcard { return iframe; } addEventListeners() { + var _a; const sendEcardCheckbox = document.getElementById("en__field_embedded-ecard"); - this.toggleEcardForm(sendEcardCheckbox.checked); + if (this.options.requireInMemCheckbox) { + const inMemoriamCheckbox = document.getElementById("en__field_transaction_inmem"); + inMemoriamCheckbox === null || inMemoriamCheckbox === void 0 ? void 0 : inMemoriamCheckbox.addEventListener("change", (e) => { + const checkbox = e.target; + const _sendEcardCheckbox = document.getElementById("en__field_embedded-ecard"); + this.toggleEcardForm(checkbox.checked && _sendEcardCheckbox.checked); + }); + this.toggleEcardForm(((_a = inMemoriamCheckbox === null || inMemoriamCheckbox === void 0 ? void 0 : inMemoriamCheckbox.checked) !== null && _a !== void 0 ? _a : true) && sendEcardCheckbox.checked); + } + else { + this.toggleEcardForm(sendEcardCheckbox.checked); + } sendEcardCheckbox === null || sendEcardCheckbox === void 0 ? void 0 : sendEcardCheckbox.addEventListener("change", (e) => { const checkbox = e.target; this.toggleEcardForm(checkbox.checked); diff --git a/packages/scripts/dist/interfaces/embedded-ecard-options.d.ts b/packages/scripts/dist/interfaces/embedded-ecard-options.d.ts index 9617e320..2c3e194a 100644 --- a/packages/scripts/dist/interfaces/embedded-ecard-options.d.ts +++ b/packages/scripts/dist/interfaces/embedded-ecard-options.d.ts @@ -4,5 +4,6 @@ export interface EmbeddedEcardOptions { checkboxText: string; anchor: string; placement: string; + requireInMemCheckbox: boolean; } export declare const EmbeddedEcardOptionsDefaults: EmbeddedEcardOptions; diff --git a/packages/scripts/dist/interfaces/embedded-ecard-options.js b/packages/scripts/dist/interfaces/embedded-ecard-options.js index 26bc293c..b3edb04e 100644 --- a/packages/scripts/dist/interfaces/embedded-ecard-options.js +++ b/packages/scripts/dist/interfaces/embedded-ecard-options.js @@ -4,4 +4,5 @@ export const EmbeddedEcardOptionsDefaults = { checkboxText: "Yes, I would like to send an ecard to announce my gift.", anchor: ".en__field--donationAmt", placement: "afterend", + requireInMemCheckbox: false, }; diff --git a/packages/scripts/src/embedded-ecard.ts b/packages/scripts/src/embedded-ecard.ts index 7803f120..196184be 100644 --- a/packages/scripts/src/embedded-ecard.ts +++ b/packages/scripts/src/embedded-ecard.ts @@ -145,7 +145,21 @@ export class EmbeddedEcard { "en__field_embedded-ecard" ) as HTMLInputElement; - this.toggleEcardForm(sendEcardCheckbox.checked); + if(this.options.requireInMemCheckbox) { + const inMemoriamCheckbox = document.getElementById( + "en__field_transaction_inmem" + ) as HTMLInputElement; + + inMemoriamCheckbox?.addEventListener("change", (e) => { + const checkbox = e.target as HTMLInputElement; + const _sendEcardCheckbox = document.getElementById("en__field_embedded-ecard") as HTMLInputElement; + this.toggleEcardForm(checkbox.checked && _sendEcardCheckbox.checked); + }); + + this.toggleEcardForm((inMemoriamCheckbox?.checked ?? true) && sendEcardCheckbox.checked); + } else { + this.toggleEcardForm(sendEcardCheckbox.checked); + } sendEcardCheckbox?.addEventListener("change", (e) => { const checkbox = e.target as HTMLInputElement; diff --git a/packages/scripts/src/interfaces/embedded-ecard-options.ts b/packages/scripts/src/interfaces/embedded-ecard-options.ts index 35d627fb..137eafb4 100644 --- a/packages/scripts/src/interfaces/embedded-ecard-options.ts +++ b/packages/scripts/src/interfaces/embedded-ecard-options.ts @@ -4,6 +4,7 @@ export interface EmbeddedEcardOptions { checkboxText: string; anchor: string; placement: string; + requireInMemCheckbox: boolean; } export const EmbeddedEcardOptionsDefaults: EmbeddedEcardOptions = { @@ -12,4 +13,5 @@ export const EmbeddedEcardOptionsDefaults: EmbeddedEcardOptions = { checkboxText: "Yes, I would like to send an ecard to announce my gift.", anchor: ".en__field--donationAmt", placement: "afterend", + requireInMemCheckbox: false, };