"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); (() => { const contractId = document.querySelector('#contract--contractId').value; let contractInterments = exports.contractInterments; delete exports.contractInterments; const deathAgePeriods = exports.deathAgePeriods; delete exports.deathAgePeriods; const intermentContainerTypes = exports.intermentContainerTypes; delete exports.intermentContainerTypes; function initializeDeathAgeCalculator(fieldPrefix) { const birthDateStringElement = document.querySelector(`#${fieldPrefix}--birthDateString`); const deathDateStringElement = document.querySelector(`#${fieldPrefix}--deathDateString`); const calculateDeathAgeButtonElement = document.querySelector('#button--calculateDeathAge'); function toggleDeathAgeCalculatorButton() { if (birthDateStringElement.value === '' || deathDateStringElement.value === '') { calculateDeathAgeButtonElement.setAttribute('disabled', 'disabled'); } else { calculateDeathAgeButtonElement.removeAttribute('disabled'); } } toggleDeathAgeCalculatorButton(); birthDateStringElement.addEventListener('change', toggleDeathAgeCalculatorButton); deathDateStringElement.addEventListener('change', toggleDeathAgeCalculatorButton); const deathAgeElement = document.querySelector(`#${fieldPrefix}--deathAge`); const deathAgePeriodElement = document.querySelector(`#${fieldPrefix}--deathAgePeriod`); function calculateDeathAge() { if (birthDateStringElement.value === '' || deathDateStringElement.value === '') { return; } const birthDate = new Date(birthDateStringElement.value); const deathDate = new Date(deathDateStringElement.value); const ageInDays = Math.floor((deathDate.getTime() - birthDate.getTime()) / (1000 * 60 * 60 * 24)); const ageInYears = Math.floor(ageInDays / 365.25); if (ageInYears > 0) { deathAgeElement.value = ageInYears.toString(); deathAgePeriodElement.value = 'Years'; } else if (ageInDays > 0) { deathAgeElement.value = ageInDays.toString(); deathAgePeriodElement.value = 'Days'; } else { deathAgeElement.value = '0'; deathAgePeriodElement.value = 'Stillborn'; } } calculateDeathAgeButtonElement.addEventListener('click', calculateDeathAge); } function openEditContractInterment(clickEvent) { const intermentNumber = clickEvent.currentTarget.closest('tr')?.dataset.intermentNumber; if (intermentNumber === undefined) { return; } const contractInterment = contractInterments.find((interment) => interment.intermentNumber === Number(intermentNumber)); if (contractInterment === undefined) { return; } let closeModalFunction; function submitForm(formEvent) { formEvent.preventDefault(); const formElement = formEvent.currentTarget; cityssm.postJSON('/contracts/doUpdateContractInterment', formElement, (responseJSON) => { if (responseJSON.success) { contractInterments = responseJSON.contractInterments; renderContractInterments(); closeModalFunction(); } }); } cityssm.openHtmlModal('contract-editInterment', { // eslint-disable-next-line complexity onshow(modalElement) { modalElement .querySelector('#contractIntermentEdit--contractId') ?.setAttribute('value', contractId); modalElement .querySelector('#contractIntermentEdit--intermentNumber') ?.setAttribute('value', intermentNumber); modalElement .querySelector('#contractIntermentEdit--deceasedName') ?.setAttribute('value', contractInterment.deceasedName ?? ''); modalElement .querySelector('#contractIntermentEdit--deceasedAddress1') ?.setAttribute('value', contractInterment.deceasedAddress1 ?? ''); modalElement .querySelector('#contractIntermentEdit--deceasedAddress2') ?.setAttribute('value', contractInterment.deceasedAddress2 ?? ''); modalElement .querySelector('#contractIntermentEdit--deceasedCity') ?.setAttribute('value', contractInterment.deceasedCity ?? ''); modalElement .querySelector('#contractIntermentEdit--deceasedProvince') ?.setAttribute('value', contractInterment.deceasedProvince ?? ''); modalElement .querySelector('#contractIntermentEdit--deceasedPostalCode') ?.setAttribute('value', contractInterment.deceasedPostalCode ?? ''); modalElement .querySelector('#contractIntermentEdit--birthDateString') ?.setAttribute('value', contractInterment.birthDateString ?? ''); modalElement .querySelector('#contractIntermentEdit--birthPlace') ?.setAttribute('value', contractInterment.birthPlace ?? ''); modalElement .querySelector('#contractIntermentEdit--deathDateString') ?.setAttribute('value', contractInterment.deathDateString ?? ''); modalElement .querySelector('#contractIntermentEdit--deathPlace') ?.setAttribute('value', contractInterment.deathPlace ?? ''); modalElement .querySelector('#contractIntermentEdit--deathAge') ?.setAttribute('value', contractInterment.deathAge?.toString() ?? ''); const deathAgePeriodElement = modalElement.querySelector('#contractIntermentEdit--deathAgePeriod'); let deathAgePeriodIsFound = false; for (const deathAgePeriod of deathAgePeriods) { const optionElement = document.createElement('option'); optionElement.value = deathAgePeriod; optionElement.text = deathAgePeriod; if (deathAgePeriod === contractInterment.deathAgePeriod) { optionElement.selected = true; deathAgePeriodIsFound = true; } deathAgePeriodElement.append(optionElement); } if (!deathAgePeriodIsFound) { const optionElement = document.createElement('option'); optionElement.value = contractInterment.deathAgePeriod ?? ''; optionElement.text = contractInterment.deathAgePeriod ?? '(Not Set)'; optionElement.selected = true; deathAgePeriodElement.append(optionElement); } const containerTypeElement = modalElement.querySelector('#contractIntermentEdit--intermentContainerTypeId'); let containerTypeIsFound = false; for (const containerType of intermentContainerTypes) { const optionElement = document.createElement('option'); optionElement.value = containerType.intermentContainerTypeId.toString(); optionElement.text = containerType.intermentContainerType; if (containerType.intermentContainerTypeId === contractInterment.intermentContainerTypeId) { optionElement.selected = true; containerTypeIsFound = true; } containerTypeElement .querySelector(`optgroup[data-is-cremation-type="${containerType.isCremationType ? '1' : '0'}"]`) ?.append(optionElement); } if ((contractInterment.intermentContainerTypeId ?? '') !== '' && !containerTypeIsFound) { const optionElement = document.createElement('option'); optionElement.value = contractInterment.intermentContainerTypeId?.toString() ?? ''; optionElement.text = contractInterment.intermentContainerType ?? ''; optionElement.selected = true; containerTypeElement.append(optionElement); } }, onshown(modalElement, closeModal) { closeModalFunction = closeModal; bulmaJS.toggleHtmlClipped(); modalElement.querySelector('#contractIntermentEdit--deceasedName').focus(); modalElement .querySelector('form') ?.addEventListener('submit', submitForm); initializeDeathAgeCalculator('contractIntermentEdit'); }, onremoved() { bulmaJS.toggleHtmlClipped(); } }); } function deleteContractInterment(clickEvent) { const intermentNumber = clickEvent.currentTarget.closest('tr')?.dataset.intermentNumber; if (intermentNumber === undefined) { return; } function doDelete() { cityssm.postJSON('/contracts/doDeleteContractInterment', { contractId, intermentNumber }, (responseJSON) => { if (responseJSON.success) { contractInterments = responseJSON.contractInterments; renderContractInterments(); } }); } bulmaJS.confirm({ title: 'Delete Interment?', message: 'Are you sure you want to remove this interment from the contract?', contextualColorName: 'warning', okButton: { text: 'Yes, Remove Interment', callbackFunction: doDelete } }); } // eslint-disable-next-line complexity function renderContractInterments() { const containerElement = document.querySelector('#container--contractInterments'); if (contractInterments.length === 0) { containerElement.innerHTML = `
`; return; } const tableElement = document.createElement('table'); tableElement.className = 'table is-fullwidth is-striped is-hoverable'; tableElement.innerHTML = `