diff --git a/public-typescript/adminFees.js b/public-typescript/adminFees.js index 8dc520fa..13076c98 100644 --- a/public-typescript/adminFees.js +++ b/public-typescript/adminFees.js @@ -68,13 +68,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); "" + ""; if (feeCategory.fees.length === 0) { - feeCategoryContainerElement.insertAdjacentHTML("beforeend", '
' + - '
' + - '

There are no fees in the "' + - cityssm.escapeHTML(feeCategory.feeCategory || "") + - '" category.

' + - "
" + - "
"); + feeCategoryContainerElement.insertAdjacentHTML("beforeend", `
+
+

+ There are no fees in the + "${cityssm.escapeHTML(feeCategory.feeCategory || "")}" + category. +

+
+
`); + feeCategoryContainerElement + .querySelector(".button--deleteFeeCategory") + .addEventListener("click", confirmDeleteFeeCategory); } else { for (const fee of feeCategory.fees) { @@ -163,11 +168,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); feeCategoryContainerElement.append(panelBlockElement); } } - if (feeCategory.fees.length === 0) { - feeCategoryContainerElement.querySelector(".button--deleteFeeCategory").addEventListener("click", confirmDeleteFeeCategory); - } - feeCategoryContainerElement.querySelector(".button--editFeeCategory").addEventListener("click", openEditFeeCategory); - feeCategoryContainerElement.querySelector(".button--addFee").addEventListener("click", openAddFee); + feeCategoryContainerElement + .querySelector(".button--editFeeCategory") + .addEventListener("click", openEditFeeCategory); + feeCategoryContainerElement + .querySelector(".button--addFee") + .addEventListener("click", openAddFee); feeCategoryContainerElement.querySelector(".button--moveFeeCategoryUp").addEventListener("click", moveFeeCategoryUp); feeCategoryContainerElement.querySelector(".button--moveFeeCategoryDown").addEventListener("click", moveFeeCategoryDown); feeCategoriesContainerElement.append(feeCategoryContainerElement); @@ -200,9 +206,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.toggleHtmlClipped(); modalElement.querySelector("#feeCategoryAdd--feeCategory").focus(); addCloseModalFunction = closeModalFunction; - modalElement - .querySelector("form") - .addEventListener("submit", doAddFeeCategory); + modalElement.querySelector("form").addEventListener("submit", doAddFeeCategory); }, onremoved: () => { bulmaJS.toggleHtmlClipped(); @@ -215,7 +219,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); return currentFeeCategory.feeCategoryId === feeCategoryId; }); let editCloseModalFunction; - const doUpdateFeeCategory = (submitEvent) => { + function doUpdateFeeCategory(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + "/admin/doUpdateFeeCategory", submitEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { @@ -231,13 +235,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; + } cityssm.openHtmlModal("adminFees-editFeeCategory", { - onshow: (modalElement) => { + onshow(modalElement) { modalElement.querySelector("#feeCategoryEdit--feeCategoryId").value = feeCategory.feeCategoryId.toString(); modalElement.querySelector("#feeCategoryEdit--feeCategory").value = feeCategory.feeCategory; }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); editCloseModalFunction = closeModalFunction; modalElement.querySelector("form").addEventListener("submit", doUpdateFeeCategory); @@ -250,7 +254,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } function confirmDeleteFeeCategory(clickEvent) { const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10); - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + "/admin/doDeleteFeeCategory", { feeCategoryId }, (responseJSON) => { @@ -266,7 +270,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; + } bulmaJS.confirm({ title: "Delete Fee Category?", message: "Are you sure you want to delete this fee category?", @@ -321,7 +325,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); function openAddFee(clickEvent) { const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10); let addCloseModalFunction; - const doAddFee = (submitEvent) => { + function doAddFee(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + "/admin/doAddFee", submitEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { @@ -337,9 +341,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; + } cityssm.openHtmlModal("adminFees-addFee", { - onshow: (modalElement) => { + onshow(modalElement) { const feeCategoryElement = modalElement.querySelector("#feeAdd--feeCategoryId"); for (const feeCategory of feeCategories) { const optionElement = document.createElement("option"); @@ -367,7 +371,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); modalElement.querySelector("#feeAdd--taxPercentage").value = exports.taxPercentageDefault.toString(); los.populateAliases(modalElement); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); addCloseModalFunction = closeModalFunction; modalElement.querySelector("form").addEventListener("submit", doAddFee); @@ -405,7 +409,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); modalElement.querySelector("#feeAdd--includeQuantity").value === ""; }); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); @@ -424,7 +428,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); let editCloseModalFunction; let editModalElement; - const doUpdateFee = (submitEvent) => { + function doUpdateFee(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + "/admin/doUpdateFee", submitEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { @@ -440,8 +444,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; - const confirmDeleteFee = (clickEvent) => { + } + function confirmDeleteFee(clickEvent) { clickEvent.preventDefault(); const doDelete = () => { cityssm.postJSON(los.urlPrefix + "/admin/doDeleteFee", { @@ -470,8 +474,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); callbackFunction: doDelete } }); - }; - const toggleFeeFields = () => { + } + function toggleFeeFields() { const feeAmountElement = editModalElement.querySelector("#feeEdit--feeAmount"); const feeFunctionElement = editModalElement.querySelector("#feeEdit--feeFunction"); if (feeFunctionElement.value === "") { @@ -484,8 +488,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); feeAmountElement.classList.remove("is-success"); feeAmountElement.disabled = true; } - }; - const toggleTaxFields = () => { + } + function toggleTaxFields() { const taxAmountElement = editModalElement.querySelector("#feeEdit--taxAmount"); const taxPercentageElement = editModalElement.querySelector("#feeEdit--taxPercentage"); if (taxPercentageElement.value === "") { @@ -498,14 +502,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); taxAmountElement.classList.remove("is-success"); taxAmountElement.disabled = true; } - }; - const toggleQuantityFields = () => { + } + function toggleQuantityFields() { editModalElement.querySelector("#feeEdit--quantityUnit").disabled = editModalElement.querySelector("#feeEdit--includeQuantity") .value === ""; - }; + } cityssm.openHtmlModal("adminFees-editFee", { - onshow: (modalElement) => { + onshow(modalElement) { editModalElement = modalElement; modalElement.querySelector("#feeEdit--feeId").value = fee.feeId.toString(); @@ -565,12 +569,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); } los.populateAliases(modalElement); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); editCloseModalFunction = closeModalFunction; modalElement.querySelector("form").addEventListener("submit", doUpdateFee); bulmaJS.init(modalElement); - modalElement.querySelector(".button--deleteFee").addEventListener("click", confirmDeleteFee); + modalElement + .querySelector(".button--deleteFee") + .addEventListener("click", confirmDeleteFee); }, onremoved: () => { bulmaJS.toggleHtmlClipped(); diff --git a/public-typescript/adminFees.ts b/public-typescript/adminFees.ts index 8598a6ce..cd8658c8 100644 --- a/public-typescript/adminFees.ts +++ b/public-typescript/adminFees.ts @@ -52,11 +52,11 @@ declare const bulmaJS: BulmaJS; '
' + (feeCategory.fees!.length === 0 ? '
' + - '" + - "
" + '" + + "
" : "") + ('
' + '
") + ('
' + @@ -146,12 +152,12 @@ declare const bulmaJS: BulmaJS; ('
' + (fee.feeFunction ? cityssm.escapeHTML(fee.feeFunction) + - "
" + - "Fee Function" + "
" + + "Fee Function" : "$" + - fee.feeAmount!.toFixed(2) + - "
" + - "Fee") + + fee.feeAmount!.toFixed(2) + + "
" + + "Fee") + "
") + ('
' + (fee.taxPercentage @@ -162,8 +168,8 @@ declare const bulmaJS: BulmaJS; ('
' + (fee.includeQuantity ? cityssm.escapeHTML(fee.quantityUnit || "") + - "
" + - "Quantity" + "
" + + "Quantity" : "") + "
") + "
" + @@ -198,23 +204,13 @@ declare const bulmaJS: BulmaJS; } } - if (feeCategory.fees!.length === 0) { - ( - feeCategoryContainerElement.querySelector( - ".button--deleteFeeCategory" - ) as HTMLButtonElement - ).addEventListener("click", confirmDeleteFeeCategory); - } + feeCategoryContainerElement + .querySelector(".button--editFeeCategory")! + .addEventListener("click", openEditFeeCategory); - ( - feeCategoryContainerElement.querySelector( - ".button--editFeeCategory" - ) as HTMLButtonElement - ).addEventListener("click", openEditFeeCategory); - - ( - feeCategoryContainerElement.querySelector(".button--addFee") as HTMLButtonElement - ).addEventListener("click", openAddFee); + feeCategoryContainerElement + .querySelector(".button--addFee")! + .addEventListener("click", openAddFee); ( feeCategoryContainerElement.querySelector( @@ -236,57 +232,50 @@ declare const bulmaJS: BulmaJS; * Fee Categories */ - (document.querySelector("#button--addFeeCategory") as HTMLButtonElement).addEventListener( - "click", - () => { - let addCloseModalFunction: () => void; + document.querySelector("#button--addFeeCategory")!.addEventListener("click", () => { + let addCloseModalFunction: () => void; - const doAddFeeCategory = (submitEvent: SubmitEvent) => { - submitEvent.preventDefault(); + const doAddFeeCategory = (submitEvent: SubmitEvent) => { + submitEvent.preventDefault(); - cityssm.postJSON( - los.urlPrefix + "/admin/doAddFeeCategory", - submitEvent.currentTarget, - (responseJSON: { - success: boolean; - errorMessage?: string; - feeCategories: recordTypes.FeeCategory[]; - }) => { - if (responseJSON.success) { - feeCategories = responseJSON.feeCategories; - addCloseModalFunction(); - renderFeeCategories(); - } else { - bulmaJS.alert({ - title: "Error Creating Fee Category", - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } + cityssm.postJSON( + los.urlPrefix + "/admin/doAddFeeCategory", + submitEvent.currentTarget, + (responseJSON: { + success: boolean; + errorMessage?: string; + feeCategories: recordTypes.FeeCategory[]; + }) => { + if (responseJSON.success) { + feeCategories = responseJSON.feeCategories; + addCloseModalFunction(); + renderFeeCategories(); + } else { + bulmaJS.alert({ + title: "Error Creating Fee Category", + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); } - ); - }; - - cityssm.openHtmlModal("adminFees-addFeeCategory", { - onshown: (modalElement, closeModalFunction) => { - bulmaJS.toggleHtmlClipped(); - ( - modalElement.querySelector( - "#feeCategoryAdd--feeCategory" - ) as HTMLInputElement - ).focus(); - - addCloseModalFunction = closeModalFunction; - modalElement - .querySelector("form")! - .addEventListener("submit", doAddFeeCategory); - }, - onremoved: () => { - bulmaJS.toggleHtmlClipped(); } - }); - } - ); + ); + }; + + cityssm.openHtmlModal("adminFees-addFeeCategory", { + onshown: (modalElement, closeModalFunction) => { + bulmaJS.toggleHtmlClipped(); + ( + modalElement.querySelector("#feeCategoryAdd--feeCategory") as HTMLInputElement + ).focus(); + + addCloseModalFunction = closeModalFunction; + modalElement.querySelector("form")!.addEventListener("submit", doAddFeeCategory); + }, + onremoved: () => { + bulmaJS.toggleHtmlClipped(); + } + }); + }); function openEditFeeCategory(clickEvent: Event): void { const feeCategoryId = Number.parseInt( @@ -304,7 +293,7 @@ declare const bulmaJS: BulmaJS; let editCloseModalFunction: () => void; - const doUpdateFeeCategory = (submitEvent: SubmitEvent) => { + function doUpdateFeeCategory(submitEvent: SubmitEvent) { submitEvent.preventDefault(); cityssm.postJSON( @@ -328,10 +317,10 @@ declare const bulmaJS: BulmaJS; } } ); - }; + } cityssm.openHtmlModal("adminFees-editFeeCategory", { - onshow: (modalElement) => { + onshow(modalElement) { ( modalElement.querySelector( "#feeCategoryEdit--feeCategoryId" @@ -341,7 +330,7 @@ declare const bulmaJS: BulmaJS; modalElement.querySelector("#feeCategoryEdit--feeCategory") as HTMLInputElement ).value = feeCategory.feeCategory!; }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); editCloseModalFunction = closeModalFunction; @@ -368,7 +357,7 @@ declare const bulmaJS: BulmaJS; 10 ); - const doDelete = () => { + function doDelete() { cityssm.postJSON( los.urlPrefix + "/admin/doDeleteFeeCategory", { @@ -391,7 +380,7 @@ declare const bulmaJS: BulmaJS; } } ); - }; + } bulmaJS.confirm({ title: "Delete Fee Category?", @@ -490,7 +479,7 @@ declare const bulmaJS: BulmaJS; let addCloseModalFunction: () => void; - const doAddFee = (submitEvent: SubmitEvent) => { + function doAddFee(submitEvent: SubmitEvent) { submitEvent.preventDefault(); cityssm.postJSON( @@ -514,10 +503,10 @@ declare const bulmaJS: BulmaJS; } } ); - }; + } cityssm.openHtmlModal("adminFees-addFee", { - onshow: (modalElement) => { + onshow(modalElement) { const feeCategoryElement = modalElement.querySelector( "#feeAdd--feeCategoryId" ) as HTMLSelectElement; @@ -562,7 +551,7 @@ declare const bulmaJS: BulmaJS; los.populateAliases(modalElement); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); addCloseModalFunction = closeModalFunction; @@ -630,7 +619,7 @@ declare const bulmaJS: BulmaJS; ).value === ""; }); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); @@ -660,7 +649,7 @@ declare const bulmaJS: BulmaJS; let editCloseModalFunction: () => void; let editModalElement: HTMLElement; - const doUpdateFee = (submitEvent: SubmitEvent) => { + function doUpdateFee(submitEvent: SubmitEvent) { submitEvent.preventDefault(); cityssm.postJSON( @@ -684,9 +673,9 @@ declare const bulmaJS: BulmaJS; } } ); - }; + } - const confirmDeleteFee = (clickEvent: Event) => { + function confirmDeleteFee(clickEvent: Event) { clickEvent.preventDefault(); const doDelete = () => { @@ -724,12 +713,13 @@ declare const bulmaJS: BulmaJS; callbackFunction: doDelete } }); - }; + } - const toggleFeeFields = () => { + function toggleFeeFields() { const feeAmountElement = editModalElement.querySelector( "#feeEdit--feeAmount" ) as HTMLInputElement; + const feeFunctionElement = editModalElement.querySelector( "#feeEdit--feeFunction" ) as HTMLSelectElement; @@ -745,12 +735,13 @@ declare const bulmaJS: BulmaJS; feeAmountElement.classList.remove("is-success"); feeAmountElement.disabled = true; } - }; + } - const toggleTaxFields = () => { + function toggleTaxFields() { const taxAmountElement = editModalElement.querySelector( "#feeEdit--taxAmount" ) as HTMLInputElement; + const taxPercentageElement = editModalElement.querySelector( "#feeEdit--taxPercentage" ) as HTMLInputElement; @@ -766,18 +757,18 @@ declare const bulmaJS: BulmaJS; taxAmountElement.classList.remove("is-success"); taxAmountElement.disabled = true; } - }; + } - const toggleQuantityFields = () => { + function toggleQuantityFields() { ( editModalElement.querySelector("#feeEdit--quantityUnit") as HTMLInputElement ).disabled = (editModalElement.querySelector("#feeEdit--includeQuantity") as HTMLSelectElement) .value === ""; - }; + } cityssm.openHtmlModal("adminFees-editFee", { - onshow: (modalElement) => { + onshow(modalElement) { editModalElement = modalElement; (modalElement.querySelector("#feeEdit--feeId") as HTMLInputElement).value = @@ -879,7 +870,7 @@ declare const bulmaJS: BulmaJS; los.populateAliases(modalElement); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); editCloseModalFunction = closeModalFunction; @@ -888,9 +879,9 @@ declare const bulmaJS: BulmaJS; bulmaJS.init(modalElement); - ( - modalElement.querySelector(".button--deleteFee") as HTMLButtonElement - ).addEventListener("click", confirmDeleteFee); + modalElement + .querySelector(".button--deleteFee")! + .addEventListener("click", confirmDeleteFee); }, onremoved: () => { bulmaJS.toggleHtmlClipped(); diff --git a/public/javascripts/adminFees.min.js b/public/javascripts/adminFees.min.js index 6cfe249f..edaf74a1 100644 --- a/public/javascripts/adminFees.min.js +++ b/public/javascripts/adminFees.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#container--feeCategories");let s=exports.feeCategories;function o(){if(0!==s.length){t.innerHTML="";for(const e of s){const s=document.createElement("section");if(s.className="panel container--feeCategory",s.dataset.feeCategoryId=e.feeCategoryId.toString(),s.innerHTML='

'+cityssm.escapeHTML(e.feeCategory||"")+'

'+(0===e.fees.length?'
':"")+'
',0===e.fees.length)s.insertAdjacentHTML("beforeend",'

There are no fees in the "'+cityssm.escapeHTML(e.feeCategory||"")+'" category.

');else for(const t of e.fees){const e=document.createElement("div");e.className="panel-block is-block container--fee",e.dataset.feeId=t.feeId.toString();const o=t.isRequired||t.occupancyTypeId||t.lotTypeId;e.innerHTML='

'+cityssm.escapeHTML(t.feeName||"")+"
"+cityssm.escapeHTML(t.feeDescription||"").replace(/\n/g,"
")+"

"+(o?'

'+(t.isRequired?'Required':"")+(t.occupancyTypeId?' '+cityssm.escapeHTML(t.occupancyType||"")+"":"")+(t.lotTypeId?' '+cityssm.escapeHTML(t.lotType||"")+"":"")+"

":"")+'
'+(t.feeFunction?cityssm.escapeHTML(t.feeFunction)+"
Fee Function":"$"+t.feeAmount.toFixed(2)+"
Fee")+'
'+(t.taxPercentage?t.taxPercentage+"%":"$"+t.taxAmount.toFixed(2))+'
Tax
'+(t.includeQuantity?cityssm.escapeHTML(t.quantityUnit||"")+"
Quantity":"")+'
',e.querySelector("a").addEventListener("click",i),e.querySelector(".button--moveFeeUp").addEventListener("click",d),e.querySelector(".button--moveFeeDown").addEventListener("click",u),s.append(e)}0===e.fees.length&&s.querySelector(".button--deleteFeeCategory").addEventListener("click",r),s.querySelector(".button--editFeeCategory").addEventListener("click",a),s.querySelector(".button--addFee").addEventListener("click",l),s.querySelector(".button--moveFeeCategoryUp").addEventListener("click",n),s.querySelector(".button--moveFeeCategoryDown").addEventListener("click",c),t.append(s)}}else t.innerHTML='

There are no available fees.

'}function a(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),r=s.find(e=>e.feeCategoryId===a);let n;const c=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFeeCategory",t.currentTarget,e=>{e.success?(s=e.feeCategories,n(),o()):bulmaJS.alert({title:"Error Updating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("adminFees-editFeeCategory",{onshow:e=>{e.querySelector("#feeCategoryEdit--feeCategoryId").value=r.feeCategoryId.toString(),e.querySelector("#feeCategoryEdit--feeCategory").value=r.feeCategory},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),n=t,e.querySelector("form").addEventListener("submit",c),e.querySelector("#feeCategoryEdit--feeCategory").focus()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function r(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);bulmaJS.confirm({title:"Delete Fee Category?",message:"Are you sure you want to delete this fee category?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee Category",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFeeCategory",{feeCategoryId:a},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Updating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function n(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);cityssm.postJSON(e.urlPrefix+"/admin/doMoveFeeCategoryUp",{feeCategoryId:a,moveToTop:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}function c(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);cityssm.postJSON(e.urlPrefix+"/admin/doMoveFeeCategoryDown",{feeCategoryId:a,moveToBottom:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}function l(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);let r;const n=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFee",t.currentTarget,e=>{e.success?(s=e.feeCategories,r(),o()):bulmaJS.alert({title:"Error Adding Fee",message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("adminFees-addFee",{onshow:t=>{const o=t.querySelector("#feeAdd--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===a&&(t.selected=!0),o.append(t)}const r=t.querySelector("#feeAdd--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,r.append(t)}const n=t.querySelector("#feeAdd--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,n.append(t)}t.querySelector("#feeAdd--taxPercentage").value=exports.taxPercentageDefault.toString(),e.populateAliases(t)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),r=t,e.querySelector("form").addEventListener("submit",n),e.querySelector("#feeAdd--feeName").focus(),e.querySelector("#feeAdd--feeFunction").addEventListener("change",()=>{const t=e.querySelector("#feeAdd--feeAmount"),s=e.querySelector("#feeAdd--feeFunction");""===s.value?(s.closest(".select").classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.closest(".select").classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--taxPercentage").addEventListener("keyup",()=>{const t=e.querySelector("#feeAdd--taxAmount"),s=e.querySelector("#feeAdd--taxPercentage");""===s.value?(s.classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--includeQuantity").addEventListener("change",()=>{e.querySelector("#feeAdd--quantityUnit").disabled=""===e.querySelector("#feeAdd--includeQuantity").value})},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function i(t){t.preventDefault();const a=t.currentTarget.closest(".container--fee"),r=Number.parseInt(a.dataset.feeId,10),n=Number.parseInt(a.closest(".container--feeCategory").dataset.feeCategoryId),c=s.find(e=>e.feeCategoryId===n).fees.find(e=>e.feeId===r);let l,i;const d=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFee",t.currentTarget,e=>{e.success?(s=e.feeCategories,l(),o()):bulmaJS.alert({title:"Error Updating Fee",message:e.errorMessage||"",contextualColorName:"danger"})})},u=t=>{t.preventDefault();bulmaJS.confirm({title:"Delete Fee?",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFee",{feeId:r},e=>{e.success?(s=e.feeCategories,l(),o()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},y=()=>{const e=i.querySelector("#feeEdit--feeAmount"),t=i.querySelector("#feeEdit--feeFunction");""===t.value?(t.closest(".select").classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.closest(".select").classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)},m=()=>{const e=i.querySelector("#feeEdit--taxAmount"),t=i.querySelector("#feeEdit--taxPercentage");""===t.value?(t.classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)},f=()=>{i.querySelector("#feeEdit--quantityUnit").disabled=""===i.querySelector("#feeEdit--includeQuantity").value};cityssm.openHtmlModal("adminFees-editFee",{onshow:t=>{i=t,t.querySelector("#feeEdit--feeId").value=c.feeId.toString();const o=t.querySelector("#feeEdit--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===n&&(t.selected=!0),o.append(t)}t.querySelector("#feeEdit--feeName").value=c.feeName,t.querySelector("#feeEdit--feeDescription").value=c.feeDescription;const a=t.querySelector("#feeEdit--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,e.occupancyTypeId===c.occupancyTypeId&&(t.selected=!0),a.append(t)}const r=t.querySelector("#feeEdit--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,e.lotTypeId===c.lotTypeId&&(t.selected=!0),r.append(t)}t.querySelector("#feeEdit--feeAmount").value=c.feeAmount?c.feeAmount.toFixed(2):"",t.querySelector("#feeEdit--feeFunction").addEventListener("change",y),y(),t.querySelector("#feeEdit--taxAmount").value=c.taxAmount?c.taxAmount.toFixed(2):"";const l=t.querySelector("#feeEdit--taxPercentage");l.value=c.taxPercentage?c.taxPercentage.toString():"",l.addEventListener("keyup",m),m();const d=t.querySelector("#feeEdit--includeQuantity");c.includeQuantity&&(d.value="1"),d.addEventListener("change",f),t.querySelector("#feeEdit--quantityUnit").value=c.quantityUnit||"",f(),c.isRequired&&(t.querySelector("#feeEdit--isRequired").value="1"),e.populateAliases(t)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),l=t,e.querySelector("form").addEventListener("submit",d),bulmaJS.init(e),e.querySelector(".button--deleteFee").addEventListener("click",u)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function d(t){const a=t.currentTarget.closest(".container--fee"),r=Number.parseInt(a.dataset.feeId,10);cityssm.postJSON(e.urlPrefix+"/admin/doMoveFeeUp",{feeId:r,moveToTop:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}function u(t){const a=t.currentTarget.closest(".container--fee"),r=Number.parseInt(a.dataset.feeId,10);cityssm.postJSON(e.urlPrefix+"/admin/doMoveFeeDown",{feeId:r,moveToBottom:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}delete exports.feeCategories,document.querySelector("#button--addFeeCategory").addEventListener("click",()=>{let t;const a=a=>{a.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFeeCategory",a.currentTarget,e=>{e.success?(s=e.feeCategories,t(),o()):bulmaJS.alert({title:"Error Creating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("adminFees-addFeeCategory",{onshown:(e,s)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#feeCategoryAdd--feeCategory").focus(),t=s,e.querySelector("form").addEventListener("submit",a)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),o()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#container--feeCategories");let s=exports.feeCategories;function o(){if(0!==s.length){t.innerHTML="";for(const e of s){const s=document.createElement("section");if(s.className="panel container--feeCategory",s.dataset.feeCategoryId=e.feeCategoryId.toString(),s.innerHTML='

'+cityssm.escapeHTML(e.feeCategory||"")+'

'+(0===e.fees.length?'
':"")+'
',0===e.fees.length)s.insertAdjacentHTML("beforeend",`
\n
\n

\n There are no fees in the\n "${cityssm.escapeHTML(e.feeCategory||"")}"\n category.\n

\n
\n
`),s.querySelector(".button--deleteFeeCategory").addEventListener("click",r);else for(const t of e.fees){const e=document.createElement("div");e.className="panel-block is-block container--fee",e.dataset.feeId=t.feeId.toString();const o=t.isRequired||t.occupancyTypeId||t.lotTypeId;e.innerHTML='

'+cityssm.escapeHTML(t.feeName||"")+"
"+cityssm.escapeHTML(t.feeDescription||"").replace(/\n/g,"
")+"

"+(o?'

'+(t.isRequired?'Required':"")+(t.occupancyTypeId?' '+cityssm.escapeHTML(t.occupancyType||"")+"":"")+(t.lotTypeId?' '+cityssm.escapeHTML(t.lotType||"")+"":"")+"

":"")+'
'+(t.feeFunction?cityssm.escapeHTML(t.feeFunction)+"
Fee Function":"$"+t.feeAmount.toFixed(2)+"
Fee")+'
'+(t.taxPercentage?t.taxPercentage+"%":"$"+t.taxAmount.toFixed(2))+'
Tax
'+(t.includeQuantity?cityssm.escapeHTML(t.quantityUnit||"")+"
Quantity":"")+'
',e.querySelector("a").addEventListener("click",i),e.querySelector(".button--moveFeeUp").addEventListener("click",d),e.querySelector(".button--moveFeeDown").addEventListener("click",u),s.append(e)}s.querySelector(".button--editFeeCategory").addEventListener("click",a),s.querySelector(".button--addFee").addEventListener("click",l),s.querySelector(".button--moveFeeCategoryUp").addEventListener("click",n),s.querySelector(".button--moveFeeCategoryDown").addEventListener("click",c),t.append(s)}}else t.innerHTML='

There are no available fees.

'}function a(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),r=s.find(e=>e.feeCategoryId===a);let n;function c(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFeeCategory",t.currentTarget,e=>{e.success?(s=e.feeCategories,n(),o()):bulmaJS.alert({title:"Error Updating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-editFeeCategory",{onshow(e){e.querySelector("#feeCategoryEdit--feeCategoryId").value=r.feeCategoryId.toString(),e.querySelector("#feeCategoryEdit--feeCategory").value=r.feeCategory},onshown(e,t){bulmaJS.toggleHtmlClipped(),n=t,e.querySelector("form").addEventListener("submit",c),e.querySelector("#feeCategoryEdit--feeCategory").focus()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function r(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);bulmaJS.confirm({title:"Delete Fee Category?",message:"Are you sure you want to delete this fee category?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee Category",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFeeCategory",{feeCategoryId:a},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Updating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function n(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);cityssm.postJSON(e.urlPrefix+"/admin/doMoveFeeCategoryUp",{feeCategoryId:a,moveToTop:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}function c(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);cityssm.postJSON(e.urlPrefix+"/admin/doMoveFeeCategoryDown",{feeCategoryId:a,moveToBottom:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}function l(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);let r;function n(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFee",t.currentTarget,e=>{e.success?(s=e.feeCategories,r(),o()):bulmaJS.alert({title:"Error Adding Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFee",{onshow(t){const o=t.querySelector("#feeAdd--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===a&&(t.selected=!0),o.append(t)}const r=t.querySelector("#feeAdd--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,r.append(t)}const n=t.querySelector("#feeAdd--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,n.append(t)}t.querySelector("#feeAdd--taxPercentage").value=exports.taxPercentageDefault.toString(),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),r=t,e.querySelector("form").addEventListener("submit",n),e.querySelector("#feeAdd--feeName").focus(),e.querySelector("#feeAdd--feeFunction").addEventListener("change",()=>{const t=e.querySelector("#feeAdd--feeAmount"),s=e.querySelector("#feeAdd--feeFunction");""===s.value?(s.closest(".select").classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.closest(".select").classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--taxPercentage").addEventListener("keyup",()=>{const t=e.querySelector("#feeAdd--taxAmount"),s=e.querySelector("#feeAdd--taxPercentage");""===s.value?(s.classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--includeQuantity").addEventListener("change",()=>{e.querySelector("#feeAdd--quantityUnit").disabled=""===e.querySelector("#feeAdd--includeQuantity").value})},onremoved(){bulmaJS.toggleHtmlClipped()}})}function i(t){t.preventDefault();const a=t.currentTarget.closest(".container--fee"),r=Number.parseInt(a.dataset.feeId,10),n=Number.parseInt(a.closest(".container--feeCategory").dataset.feeCategoryId),c=s.find(e=>e.feeCategoryId===n).fees.find(e=>e.feeId===r);let l,i;function d(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFee",t.currentTarget,e=>{e.success?(s=e.feeCategories,l(),o()):bulmaJS.alert({title:"Error Updating Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}function u(t){t.preventDefault();bulmaJS.confirm({title:"Delete Fee?",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFee",{feeId:r},e=>{e.success?(s=e.feeCategories,l(),o()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function y(){const e=i.querySelector("#feeEdit--feeAmount"),t=i.querySelector("#feeEdit--feeFunction");""===t.value?(t.closest(".select").classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.closest(".select").classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)}function f(){const e=i.querySelector("#feeEdit--taxAmount"),t=i.querySelector("#feeEdit--taxPercentage");""===t.value?(t.classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)}function m(){i.querySelector("#feeEdit--quantityUnit").disabled=""===i.querySelector("#feeEdit--includeQuantity").value}cityssm.openHtmlModal("adminFees-editFee",{onshow(t){i=t,t.querySelector("#feeEdit--feeId").value=c.feeId.toString();const o=t.querySelector("#feeEdit--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===n&&(t.selected=!0),o.append(t)}t.querySelector("#feeEdit--feeName").value=c.feeName,t.querySelector("#feeEdit--feeDescription").value=c.feeDescription;const a=t.querySelector("#feeEdit--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,e.occupancyTypeId===c.occupancyTypeId&&(t.selected=!0),a.append(t)}const r=t.querySelector("#feeEdit--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,e.lotTypeId===c.lotTypeId&&(t.selected=!0),r.append(t)}t.querySelector("#feeEdit--feeAmount").value=c.feeAmount?c.feeAmount.toFixed(2):"",t.querySelector("#feeEdit--feeFunction").addEventListener("change",y),y(),t.querySelector("#feeEdit--taxAmount").value=c.taxAmount?c.taxAmount.toFixed(2):"";const l=t.querySelector("#feeEdit--taxPercentage");l.value=c.taxPercentage?c.taxPercentage.toString():"",l.addEventListener("keyup",f),f();const d=t.querySelector("#feeEdit--includeQuantity");c.includeQuantity&&(d.value="1"),d.addEventListener("change",m),t.querySelector("#feeEdit--quantityUnit").value=c.quantityUnit||"",m(),c.isRequired&&(t.querySelector("#feeEdit--isRequired").value="1"),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),l=t,e.querySelector("form").addEventListener("submit",d),bulmaJS.init(e),e.querySelector(".button--deleteFee").addEventListener("click",u)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function d(t){const a=t.currentTarget.closest(".container--fee"),r=Number.parseInt(a.dataset.feeId,10);cityssm.postJSON(e.urlPrefix+"/admin/doMoveFeeUp",{feeId:r,moveToTop:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}function u(t){const a=t.currentTarget.closest(".container--fee"),r=Number.parseInt(a.dataset.feeId,10);cityssm.postJSON(e.urlPrefix+"/admin/doMoveFeeDown",{feeId:r,moveToBottom:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}delete exports.feeCategories,document.querySelector("#button--addFeeCategory").addEventListener("click",()=>{let t;const a=a=>{a.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFeeCategory",a.currentTarget,e=>{e.success?(s=e.feeCategories,t(),o()):bulmaJS.alert({title:"Error Creating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("adminFees-addFeeCategory",{onshown:(e,s)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#feeCategoryAdd--feeCategory").focus(),t=s,e.querySelector("form").addEventListener("submit",a)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),o()})(); \ No newline at end of file