"use strict"; // eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair /* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { const los = exports.los; const searchFilterFormElement = document.querySelector('#form--searchFilters'); const searchResultsContainerElement = document.querySelector('#container--searchResults'); const limit = Number.parseInt(document.querySelector('#searchFilter--limit').value, 10); const offsetElement = document.querySelector('#searchFilter--offset'); function renderLotOccupancies(rawResponseJSON) { const responseJSON = rawResponseJSON; if (responseJSON.lotOccupancies.length === 0) { // eslint-disable-next-line no-unsanitized/property searchResultsContainerElement.innerHTML = `

There are no ${los.escapedAliases.occupancy} records that meet the search criteria.

`; return; } const resultsTbodyElement = document.createElement('tbody'); const nowDateString = cityssm.dateToString(new Date()); for (const lotOccupancy of responseJSON.lotOccupancies) { let occupancyTimeHTML = ''; if (lotOccupancy.occupancyStartDateString <= nowDateString && (lotOccupancy.occupancyEndDateString === '' || lotOccupancy.occupancyEndDateString >= nowDateString)) { occupancyTimeHTML = ` `; } else if (lotOccupancy.occupancyStartDateString > nowDateString) { occupancyTimeHTML = ` `; } else { occupancyTimeHTML = ` `; } let occupantsHTML = ''; for (const occupant of lotOccupancy.lotOccupancyOccupants ?? []) { occupantsHTML += `
  • ${cityssm.escapeHTML(occupant.occupantName ?? '')} ${cityssm.escapeHTML(occupant.occupantFamilyName ?? '')}
  • `; } const feeTotal = (lotOccupancy.lotOccupancyFees?.reduce((soFar, currentFee) => { return (soFar + ((currentFee.feeAmount ?? 0) + (currentFee.taxAmount ?? 0)) * (currentFee.quantity ?? 0)); }, 0) ?? 0).toFixed(2); const transactionTotal = (lotOccupancy.lotOccupancyTransactions?.reduce((soFar, currentTransaction) => { return soFar + currentTransaction.transactionAmount; }, 0) ?? 0).toFixed(2); let feeIconHTML = ''; if (feeTotal !== '0.00' || transactionTotal !== '0.00') { feeIconHTML = ` `; } // eslint-disable-next-line no-unsanitized/method resultsTbodyElement.insertAdjacentHTML('beforeend', ` ${occupancyTimeHTML} ${cityssm.escapeHTML(lotOccupancy.occupancyType ?? '')}
    #${lotOccupancy.lotOccupancyId} ${(lotOccupancy.lotId ?? -1) === -1 ? `(No ${los.escapedAliases.Lot})` : `${cityssm.escapeHTML(lotOccupancy.lotName ?? '')}`}
    ${cityssm.escapeHTML(lotOccupancy.mapName ?? '')} ${lotOccupancy.occupancyStartDateString} ${lotOccupancy.occupancyEndDate ? lotOccupancy.occupancyEndDateString : '(No End Date)'} ${occupantsHTML === '' ? '' : ``} ${feeIconHTML} ${lotOccupancy.printEJS ? ` ` : ''}`); } // eslint-disable-next-line no-unsanitized/property searchResultsContainerElement.innerHTML = `
    ${los.escapedAliases.Occupancy} Type ${los.escapedAliases.Lot} ${los.escapedAliases.OccupancyStartDate} End Date ${los.escapedAliases.Occupants} Fees and Transactions Print
    `; searchResultsContainerElement .querySelector('table') ?.append(resultsTbodyElement); // eslint-disable-next-line no-unsanitized/method searchResultsContainerElement.insertAdjacentHTML('beforeend', los.getSearchResultsPagerHTML(limit, responseJSON.offset, responseJSON.count)); searchResultsContainerElement .querySelector("button[data-page='previous']") ?.addEventListener('click', previousAndGetLotOccupancies); searchResultsContainerElement .querySelector("button[data-page='next']") ?.addEventListener('click', nextAndGetLotOccupancies); } function getLotOccupancies() { // eslint-disable-next-line no-unsanitized/property searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Occupancies}...`); cityssm.postJSON(`${los.urlPrefix}/lotOccupancies/doSearchLotOccupancies`, searchFilterFormElement, renderLotOccupancies); } function resetOffsetAndGetLotOccupancies() { offsetElement.value = '0'; getLotOccupancies(); } function previousAndGetLotOccupancies() { offsetElement.value = Math.max(Number.parseInt(offsetElement.value, 10) - limit, 0).toString(); getLotOccupancies(); } function nextAndGetLotOccupancies() { offsetElement.value = (Number.parseInt(offsetElement.value, 10) + limit).toString(); getLotOccupancies(); } const filterElements = searchFilterFormElement.querySelectorAll('input, select'); for (const filterElement of filterElements) { filterElement.addEventListener('change', resetOffsetAndGetLotOccupancies); } searchFilterFormElement.addEventListener('submit', (formEvent) => { formEvent.preventDefault(); }); getLotOccupancies(); })();