diff --git a/gulpfile.js b/gulpfile.js index 80e065fb..a5929b8e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -6,15 +6,15 @@ import dartSass from 'sass'; import gulpSass from 'gulp-sass'; const sass = gulpSass(dartSass); const publicSCSSDestination = 'public/stylesheets'; -const publicSCSSFunction = () => { +function publicSCSSFunction() { return gulp .src('public-scss/*.scss') .pipe(sass({ outputStyle: 'compressed', includePaths: ['node_modules'] }).on('error', sass.logError)) .pipe(gulp.dest(publicSCSSDestination)); -}; +} gulp.task('public-scss', publicSCSSFunction); const publicJavascriptsDestination = 'public/javascripts'; -const publicJavascriptsMinFunction = () => { +function publicJavascriptsMinFunction() { return gulp .src('public-typescript/*.js', { allowEmpty: true }) .pipe(changed(publicJavascriptsDestination, { @@ -22,36 +22,36 @@ const publicJavascriptsMinFunction = () => { })) .pipe(minify({ noSource: true, ext: { min: '.min.js' } })) .pipe(gulp.dest(publicJavascriptsDestination)); -}; -const publicJavascriptsAdminTablesFunction = () => { +} +function publicJavascriptsAdminTablesFunction() { return gulp .src('public-typescript/adminTables/adminTables.js') .pipe(include()) .pipe(gulp.dest('public-typescript')); -}; -const publicJavascriptsLotOccupancyEditFunction = () => { +} +function publicJavascriptsLotOccupancyEditFunction() { return gulp .src('public-typescript/lotOccupancyEdit/lotOccupancyEdit.js') .pipe(include()) .pipe(gulp.dest('public-typescript')); -}; -const publicJavascriptsWorkOrderEditFunction = () => { +} +function publicJavascriptsWorkOrderEditFunction() { return gulp .src('public-typescript/workOrderEdit/workOrderEdit.js') .pipe(include()) .pipe(gulp.dest('public-typescript')); -}; +} gulp.task('public-javascript-adminTables', publicJavascriptsAdminTablesFunction); gulp.task('public-javascript-lotOccupancyEdit', publicJavascriptsLotOccupancyEditFunction); gulp.task('public-javascript-workOrderEdit', publicJavascriptsWorkOrderEditFunction); gulp.task('public-javascript-min', publicJavascriptsMinFunction); -const watchFunction = () => { +function watchFunction() { gulp.watch('public-scss/*.scss', publicSCSSFunction); gulp.watch('public-typescript/adminTables/*.js', publicJavascriptsAdminTablesFunction); gulp.watch('public-typescript/lotOccupancyEdit/*.js', publicJavascriptsLotOccupancyEditFunction); gulp.watch('public-typescript/workOrderEdit/*.js', publicJavascriptsWorkOrderEditFunction); gulp.watch('public-typescript/*.js', publicJavascriptsMinFunction); -}; +} gulp.task('watch', watchFunction); gulp.task('default', () => { publicJavascriptsAdminTablesFunction(); diff --git a/gulpfile.ts b/gulpfile.ts index e9fe5cfc..78215c7f 100644 --- a/gulpfile.ts +++ b/gulpfile.ts @@ -15,10 +15,15 @@ const sass = gulpSass(dartSass) const publicSCSSDestination = 'public/stylesheets' -const publicSCSSFunction = () => { +function publicSCSSFunction(): NodeJS.ReadWriteStream { return gulp .src('public-scss/*.scss') - .pipe(sass({ outputStyle: 'compressed', includePaths: ['node_modules'] }).on('error', sass.logError)) + .pipe( + sass({ outputStyle: 'compressed', includePaths: ['node_modules'] }).on( + 'error', + sass.logError + ) + ) .pipe(gulp.dest(publicSCSSDestination)) } @@ -30,7 +35,7 @@ gulp.task('public-scss', publicSCSSFunction) const publicJavascriptsDestination = 'public/javascripts' -const publicJavascriptsMinFunction = () => { +function publicJavascriptsMinFunction(): NodeJS.ReadWriteStream { return gulp .src('public-typescript/*.js', { allowEmpty: true }) .pipe( @@ -42,21 +47,21 @@ const publicJavascriptsMinFunction = () => { .pipe(gulp.dest(publicJavascriptsDestination)) } -const publicJavascriptsAdminTablesFunction = () => { +function publicJavascriptsAdminTablesFunction(): NodeJS.ReadWriteStream { return gulp .src('public-typescript/adminTables/adminTables.js') .pipe(include()) .pipe(gulp.dest('public-typescript')) } -const publicJavascriptsLotOccupancyEditFunction = () => { +function publicJavascriptsLotOccupancyEditFunction(): NodeJS.ReadWriteStream { return gulp .src('public-typescript/lotOccupancyEdit/lotOccupancyEdit.js') .pipe(include()) .pipe(gulp.dest('public-typescript')) } -const publicJavascriptsWorkOrderEditFunction = () => { +function publicJavascriptsWorkOrderEditFunction(): NodeJS.ReadWriteStream { return gulp .src('public-typescript/workOrderEdit/workOrderEdit.js') .pipe(include()) @@ -64,22 +69,37 @@ const publicJavascriptsWorkOrderEditFunction = () => { } gulp.task('public-javascript-adminTables', publicJavascriptsAdminTablesFunction) -gulp.task('public-javascript-lotOccupancyEdit', publicJavascriptsLotOccupancyEditFunction) -gulp.task('public-javascript-workOrderEdit', publicJavascriptsWorkOrderEditFunction) +gulp.task( + 'public-javascript-lotOccupancyEdit', + publicJavascriptsLotOccupancyEditFunction +) +gulp.task( + 'public-javascript-workOrderEdit', + publicJavascriptsWorkOrderEditFunction +) gulp.task('public-javascript-min', publicJavascriptsMinFunction) /* * Watch */ -const watchFunction = () => { +function watchFunction(): void { gulp.watch('public-scss/*.scss', publicSCSSFunction) - gulp.watch('public-typescript/adminTables/*.js', publicJavascriptsAdminTablesFunction) + gulp.watch( + 'public-typescript/adminTables/*.js', + publicJavascriptsAdminTablesFunction + ) - gulp.watch('public-typescript/lotOccupancyEdit/*.js', publicJavascriptsLotOccupancyEditFunction) + gulp.watch( + 'public-typescript/lotOccupancyEdit/*.js', + publicJavascriptsLotOccupancyEditFunction + ) - gulp.watch('public-typescript/workOrderEdit/*.js', publicJavascriptsWorkOrderEditFunction) + gulp.watch( + 'public-typescript/workOrderEdit/*.js', + publicJavascriptsWorkOrderEditFunction + ) gulp.watch('public-typescript/*.js', publicJavascriptsMinFunction) } diff --git a/handlers/api-get/milestoneICS.js b/handlers/api-get/milestoneICS.js index 03ce98a8..bb67517f 100644 --- a/handlers/api-get/milestoneICS.js +++ b/handlers/api-get/milestoneICS.js @@ -32,12 +32,12 @@ function buildEventSummary(milestone) { if (summary !== '') { summary += ': '; } - summary += occupant.occupantName; + summary += occupant.occupantName ?? ''; } } } if (occupantCount > 1) { - summary += ' plus ' + (occupantCount - 1); + summary += ' plus ' + (occupantCount - 1).toString(); } return summary; } @@ -169,7 +169,7 @@ function buildEventDescriptionHTML(request, milestone) { function buildEventCategoryList(milestone) { const categories = []; if (milestone.workOrderMilestoneTypeId) { - categories.push(milestone.workOrderMilestoneType, milestone.workOrderType); + categories.push(milestone.workOrderMilestoneType, milestone.workOrderType ?? ''); } if (milestone.workOrderMilestoneCompletionDate) { categories.push('Completed'); diff --git a/handlers/api-get/milestoneICS.ts b/handlers/api-get/milestoneICS.ts index 630afc29..72c8b8b9 100644 --- a/handlers/api-get/milestoneICS.ts +++ b/handlers/api-get/milestoneICS.ts @@ -65,18 +65,19 @@ function buildEventSummary(milestone: recordTypes.WorkOrderMilestone): string { summary += ': ' } - summary += occupant.occupantName + summary += occupant.occupantName ?? '' } } } if (occupantCount > 1) { - summary += ' plus ' + (occupantCount - 1) + summary += ' plus ' + (occupantCount - 1).toString() } return summary } +// eslint-disable-next-line @typescript-eslint/naming-convention function buildEventDescriptionHTML_occupancies( request: Request, milestone: recordTypes.WorkOrderMilestone @@ -140,6 +141,7 @@ function buildEventDescriptionHTML_occupancies( return descriptionHTML } +// eslint-disable-next-line @typescript-eslint/naming-convention function buildEventDescriptionHTML_lots( request: Request, milestone: recordTypes.WorkOrderMilestone @@ -190,6 +192,7 @@ function buildEventDescriptionHTML_lots( return descriptionHTML } +// eslint-disable-next-line @typescript-eslint/naming-convention function buildEventDescriptionHTML_prints( request: Request, milestone: recordTypes.WorkOrderMilestone @@ -249,7 +252,10 @@ function buildEventCategoryList( const categories: string[] = [] if (milestone.workOrderMilestoneTypeId) { - categories.push(milestone.workOrderMilestoneType, milestone.workOrderType) + categories.push( + milestone.workOrderMilestoneType!, + milestone.workOrderType ?? '' + ) } if (milestone.workOrderMilestoneCompletionDate) { @@ -270,7 +276,10 @@ function buildEventLocation(milestone: recordTypes.WorkOrderMilestone): string { return lotNames.join(', ') } -export async function handler(request: Request, response: Response): Promise { +export async function handler( + request: Request, + response: Response +): Promise { const urlRoot = getUrlRoot(request) /* diff --git a/helpers/lotOccupancyDB/addWorkOrder.js b/helpers/lotOccupancyDB/addWorkOrder.js index 8c50dd54..a0f17848 100644 --- a/helpers/lotOccupancyDB/addWorkOrder.js +++ b/helpers/lotOccupancyDB/addWorkOrder.js @@ -6,7 +6,7 @@ export async function addWorkOrder(workOrderForm, requestSession) { const database = await acquireConnection(); const rightNow = new Date(); let workOrderNumber = workOrderForm.workOrderNumber; - if (!workOrderNumber) { + if ((workOrderNumber ?? '') === '') { workOrderNumber = await getNextWorkOrderNumber(database); } const result = database @@ -16,13 +16,13 @@ export async function addWorkOrder(workOrderForm, requestSession) { recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis) values (?, ?, ?, ?, ?, ?, ?, ?, ?)`) - .run(workOrderForm.workOrderTypeId, workOrderNumber, workOrderForm.workOrderDescription, workOrderForm.workOrderOpenDateString - ? dateStringToInteger(workOrderForm.workOrderOpenDateString) - : dateToInteger(rightNow), workOrderForm.workOrderCloseDateString - ? dateStringToInteger(workOrderForm.workOrderCloseDateString) - : undefined, requestSession.user.userName, rightNow.getTime(), requestSession.user.userName, rightNow.getTime()); + .run(workOrderForm.workOrderTypeId, workOrderNumber, workOrderForm.workOrderDescription, (workOrderForm.workOrderOpenDateString ?? '') === '' + ? dateToInteger(rightNow) + : dateStringToInteger(workOrderForm.workOrderOpenDateString), (workOrderForm.workOrderCloseDateString ?? '') === '' + ? undefined + : dateStringToInteger(workOrderForm.workOrderCloseDateString), requestSession.user.userName, rightNow.getTime(), requestSession.user.userName, rightNow.getTime()); const workOrderId = result.lastInsertRowid; - if (workOrderForm.lotOccupancyId) { + if ((workOrderForm.lotOccupancyId ?? '') !== '') { await addWorkOrderLotOccupancy({ workOrderId, lotOccupancyId: workOrderForm.lotOccupancyId diff --git a/helpers/lotOccupancyDB/addWorkOrder.ts b/helpers/lotOccupancyDB/addWorkOrder.ts index f4caa7e9..973386e7 100644 --- a/helpers/lotOccupancyDB/addWorkOrder.ts +++ b/helpers/lotOccupancyDB/addWorkOrder.ts @@ -29,7 +29,7 @@ export async function addWorkOrder( let workOrderNumber = workOrderForm.workOrderNumber - if (!workOrderNumber) { + if ((workOrderNumber ?? '') === '') { workOrderNumber = await getNextWorkOrderNumber(database) } @@ -46,12 +46,12 @@ export async function addWorkOrder( workOrderForm.workOrderTypeId, workOrderNumber, workOrderForm.workOrderDescription, - workOrderForm.workOrderOpenDateString - ? dateStringToInteger(workOrderForm.workOrderOpenDateString) - : dateToInteger(rightNow), - workOrderForm.workOrderCloseDateString - ? dateStringToInteger(workOrderForm.workOrderCloseDateString) - : undefined, + (workOrderForm.workOrderOpenDateString ?? '') === '' + ? dateToInteger(rightNow) + : dateStringToInteger(workOrderForm.workOrderOpenDateString!), + (workOrderForm.workOrderCloseDateString ?? '') === '' + ? undefined + : dateStringToInteger(workOrderForm.workOrderCloseDateString!), requestSession.user!.userName, rightNow.getTime(), requestSession.user!.userName, @@ -60,11 +60,11 @@ export async function addWorkOrder( const workOrderId = result.lastInsertRowid as number - if (workOrderForm.lotOccupancyId) { + if ((workOrderForm.lotOccupancyId ?? '') !== '') { await addWorkOrderLotOccupancy( { workOrderId, - lotOccupancyId: workOrderForm.lotOccupancyId + lotOccupancyId: workOrderForm.lotOccupancyId! }, requestSession, database diff --git a/helpers/lotOccupancyDB/pool.js b/helpers/lotOccupancyDB/pool.js index e0e8f74c..1d841475 100644 --- a/helpers/lotOccupancyDB/pool.js +++ b/helpers/lotOccupancyDB/pool.js @@ -5,7 +5,8 @@ import Debug from 'debug'; const debug = Debug('lot-occupancy-system:lotOccupancyDB:pool'); const pool = new Pool(databasePath); export async function acquireConnection() { - return await pool.acquire(); + const connection = await pool.acquire(); + return connection; } exitHook(() => { debug('Closing database pool'); diff --git a/helpers/lotOccupancyDB/pool.ts b/helpers/lotOccupancyDB/pool.ts index ceefaab3..9980cc26 100644 --- a/helpers/lotOccupancyDB/pool.ts +++ b/helpers/lotOccupancyDB/pool.ts @@ -10,7 +10,8 @@ const debug = Debug('lot-occupancy-system:lotOccupancyDB:pool') const pool = new Pool(databasePath) export async function acquireConnection(): Promise { - return await pool.acquire() + const connection = await pool.acquire() + return connection } exitHook(() => { diff --git a/public-typescript/adminFees.js b/public-typescript/adminFees.js index 965915fe..e7e7c861 100644 --- a/public-typescript/adminFees.js +++ b/public-typescript/adminFees.js @@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); let feeCategories = exports.feeCategories; delete exports.feeCategories; function renderFeeCategories() { - var _a, _b, _c, _d, _e, _f; + var _a, _b, _c, _d, _e, _f, _g, _h, _j; if (feeCategories.length === 0) { feeCategoriesContainerElement.innerHTML = `

There are no available fees.

@@ -61,7 +61,7 @@ Object.defineProperty(exports, "__esModule", { value: true });

There are no fees in the - "${cityssm.escapeHTML(feeCategory.feeCategory || '')}" + "${cityssm.escapeHTML((_b = feeCategory.feeCategory) !== null && _b !== void 0 ? _b : '')}" category.

@@ -75,39 +75,41 @@ Object.defineProperty(exports, "__esModule", { value: true }); const panelBlockElement = document.createElement('div'); panelBlockElement.className = 'panel-block is-block container--fee'; panelBlockElement.dataset.feeId = fee.feeId.toString(); - const hasTagsBlock = fee.isRequired || fee.occupancyTypeId || fee.lotTypeId; + const hasTagsBlock = ((_c = fee.isRequired) !== null && _c !== void 0 ? _c : false) || + fee.occupancyTypeId !== undefined || + fee.lotTypeId !== undefined; panelBlockElement.innerHTML = '
' + ('
' + '

' + '' + - cityssm.escapeHTML((_b = fee.feeName) !== null && _b !== void 0 ? _b : '') + + cityssm.escapeHTML((_d = fee.feeName) !== null && _d !== void 0 ? _d : '') + '
' + '' + cityssm - .escapeHTML((_c = fee.feeDescription) !== null && _c !== void 0 ? _c : '') + .escapeHTML((_e = fee.feeDescription) !== null && _e !== void 0 ? _e : '') .replace(/\n/g, '
') + '
' + '

' + (hasTagsBlock ? '

' + - (fee.isRequired + (((_f = fee.isRequired) !== null && _f !== void 0 ? _f : false) ? 'Required' : '') + - (fee.occupancyTypeId - ? ' ' + - cityssm.escapeHTML((_d = fee.occupancyType) !== null && _d !== void 0 ? _d : '') + - '' - : '') + - (fee.lotTypeId - ? ' ' + - cityssm.escapeHTML((_e = fee.lotType) !== null && _e !== void 0 ? _e : '') + - '' - : '') + + cityssm.escapeHTML((_h = fee.lotType) !== null && _h !== void 0 ? _h : '') + + '') + '

' : '') + '
') + @@ -131,7 +133,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
') + ('
' + (fee.includeQuantity - ? cityssm.escapeHTML((_f = fee.quantityUnit) !== null && _f !== void 0 ? _f : '') + + ? cityssm.escapeHTML((_j = fee.quantityUnit) !== null && _j !== void 0 ? _j : '') + '
' + 'Quantity' : '') + @@ -501,7 +503,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } cityssm.openHtmlModal('adminFees-editFee', { onshow(modalElement) { - var _a; + var _a, _b, _c; editModalElement = modalElement; modalElement.querySelector('#feeEdit--feeId').value = fee.feeId.toString(); const feeCategoryElement = modalElement.querySelector('#feeEdit--feeCategoryId'); @@ -551,13 +553,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); taxPercentageElement.addEventListener('keyup', toggleTaxFields); toggleTaxFields(); const includeQuantityElement = modalElement.querySelector('#feeEdit--includeQuantity'); - if (fee.includeQuantity) { + if ((_a = fee.includeQuantity) !== null && _a !== void 0 ? _a : false) { includeQuantityElement.value = '1'; } includeQuantityElement.addEventListener('change', toggleQuantityFields); - modalElement.querySelector('#feeEdit--quantityUnit').value = (_a = fee.quantityUnit) !== null && _a !== void 0 ? _a : ''; + modalElement.querySelector('#feeEdit--quantityUnit').value = (_b = fee.quantityUnit) !== null && _b !== void 0 ? _b : ''; toggleQuantityFields(); - if (fee.isRequired) { + if ((_c = fee.isRequired) !== null && _c !== void 0 ? _c : false) { ; modalElement.querySelector('#feeEdit--isRequired').value = '1'; } diff --git a/public-typescript/adminFees.ts b/public-typescript/adminFees.ts index 77b28539..a627d1ca 100644 --- a/public-typescript/adminFees.ts +++ b/public-typescript/adminFees.ts @@ -85,9 +85,7 @@ declare const bulmaJS: BulmaJS

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

@@ -105,7 +103,9 @@ declare const bulmaJS: BulmaJS panelBlockElement.dataset.feeId = fee.feeId.toString() const hasTagsBlock = - fee.isRequired || fee.occupancyTypeId || fee.lotTypeId + (fee.isRequired ?? false) || + fee.occupancyTypeId !== undefined || + fee.lotTypeId !== undefined panelBlockElement.innerHTML = '
' + @@ -122,23 +122,23 @@ declare const bulmaJS: BulmaJS '

' + (hasTagsBlock ? '

' + - (fee.isRequired + (fee.isRequired ?? false ? 'Required' : '') + - (fee.occupancyTypeId - ? ' ' + cityssm.escapeHTML(fee.occupancyType ?? '') + - '' - : '') + - (fee.lotTypeId - ? ' ' + cityssm.escapeHTML(fee.lotType ?? '') + - '' - : '') + + '') + '

' : '') + '
') + @@ -844,7 +844,7 @@ declare const bulmaJS: BulmaJS '#feeEdit--includeQuantity' ) as HTMLSelectElement - if (fee.includeQuantity) { + if (fee.includeQuantity ?? false) { includeQuantityElement.value = '1' } @@ -857,7 +857,7 @@ declare const bulmaJS: BulmaJS toggleQuantityFields() - if (fee.isRequired) { + if (fee.isRequired ?? false) { ;( modalElement.querySelector( '#feeEdit--isRequired' diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index 81fcb5df..19092752 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -186,6 +186,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', { occupancyTypeId: occupancyTypeIdElement.value }, (responseJSON) => { + var _a; if (responseJSON.occupancyTypeFields.length === 0) { lotOccupancyFieldsContainerElement.innerHTML = `

There are no additional fields for this ${los.escapedAliases.occupancy} type.

@@ -196,9 +197,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); let occupancyTypeFieldIds = ''; for (const occupancyTypeField of responseJSON.occupancyTypeFields) { occupancyTypeFieldIds += - ',' + occupancyTypeField.occupancyTypeFieldId; + ',' + occupancyTypeField.occupancyTypeFieldId.toString(); const fieldName = 'lotOccupancyFieldValue_' + - occupancyTypeField.occupancyTypeFieldId; + occupancyTypeField.occupancyTypeFieldId.toString(); const fieldId = 'lotOccupancy--' + fieldName; const fieldElement = document.createElement('div'); fieldElement.className = 'field'; @@ -215,8 +216,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); occupancyTypeField.minimumLength; inputElement.maxLength = occupancyTypeField.maximumLength; - if (occupancyTypeField.pattern && - occupancyTypeField.pattern !== '') { + if (((_a = occupancyTypeField.pattern) !== null && _a !== void 0 ? _a : '') !== '') { inputElement.pattern = occupancyTypeField.pattern; } ; @@ -224,14 +224,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { ; - fieldElement.querySelector('.control').innerHTML = - '
'; + fieldElement.querySelector('.control').innerHTML = `
+ +
`; const selectElement = fieldElement.querySelector('select'); selectElement.required = occupancyTypeField.isRequired; const optionValues = occupancyTypeField.occupancyTypeFieldValues.split('\n'); @@ -255,7 +252,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.confirm({ title: 'Confirm Change', message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n - This change affects the additional fields associated with this record, and may also affect the available fees.`, + This change affects the additional fields associated with this record, and may also affect the available fees.`, contextualColorName: 'warning', okButton: { text: 'Yes, Keep the Change', @@ -421,15 +418,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); .querySelector('.is-lot-view-button') .addEventListener('click', () => { const lotId = document.querySelector('#lotOccupancy--lotId').value; - if (lotId) { - window.open(los.urlPrefix + '/lots/' + lotId); - } - else { + if (lotId === '') { bulmaJS.alert({ message: `No ${los.escapedAliases.lot} selected.`, contextualColorName: 'info' }); } + else { + window.open(los.urlPrefix + '/lots/' + lotId); + } }); document .querySelector('.is-clear-lot-button') @@ -570,7 +567,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderLotOccupancyOccupants() { - var _a, _b, _c; + var _a, _b, _c, _d, _e, _f, _g, _h; const occupantsContainer = document.querySelector('#container--lotOccupancyOccupants'); cityssm.clearElement(occupantsContainer); if (lotOccupancyOccupants.length === 0) { @@ -609,27 +606,29 @@ Object.defineProperty(exports, "__esModule", { value: true }); '') + '' + ('' + - (lotOccupancyOccupant.occupantAddress1 - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) + '
' - : '') + - (lotOccupancyOccupant.occupantAddress2 - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress2) + '
' - : '') + - (lotOccupancyOccupant.occupantCity - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantCity) + ', ' - : '') + - cityssm.escapeHTML((_b = lotOccupancyOccupant.occupantProvince) !== null && _b !== void 0 ? _b : '') + + (((_b = lotOccupancyOccupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) + + '
') + + (((_c = lotOccupancyOccupant.occupantAddress2) !== null && _c !== void 0 ? _c : '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress2) + + '
') + + (((_d = lotOccupancyOccupant.occupantCity) !== null && _d !== void 0 ? _d : '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantCity) + ', ') + + cityssm.escapeHTML((_e = lotOccupancyOccupant.occupantProvince) !== null && _e !== void 0 ? _e : '') + '
' + - cityssm.escapeHTML((_c = lotOccupancyOccupant.occupantPostalCode) !== null && _c !== void 0 ? _c : '') + + cityssm.escapeHTML((_f = lotOccupancyOccupant.occupantPostalCode) !== null && _f !== void 0 ? _f : '') + '') + ('' + - (lotOccupancyOccupant.occupantPhoneNumber - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantPhoneNumber) + - '
' - : '') + - (lotOccupancyOccupant.occupantEmailAddress - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress) - : '') + + (((_g = lotOccupancyOccupant.occupantPhoneNumber) !== null && _g !== void 0 ? _g : '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantPhoneNumber) + + '
') + + (((_h = lotOccupancyOccupant.occupantEmailAddress) !== null && _h !== void 0 ? _h : '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress)) + '') + ('' + cityssm.escapeHTML(lotOccupancyOccupant.occupantComment) + @@ -730,7 +729,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); searchResultsElement.innerHTML = los.getLoadingParagraphHTML('Searching...'); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchPastOccupants', searchFormElement, (responseJSON) => { - var _a, _b, _c, _d, _e, _f; + var _a, _b, _c, _d, _e, _f, _g, _h; pastOccupantSearchResults = responseJSON.occupants; const panelElement = document.createElement('div'); panelElement.className = 'panel'; @@ -747,21 +746,22 @@ Object.defineProperty(exports, "__esModule", { value: true }); ('
' + cityssm.escapeHTML((_b = occupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') + '
' + - (occupant.occupantAddress2 - ? cityssm.escapeHTML(occupant.occupantAddress2) + '
' - : '') + - cityssm.escapeHTML((_c = occupant.occupantCity) !== null && _c !== void 0 ? _c : '') + + (((_c = occupant.occupantAddress2) !== null && _c !== void 0 ? _c : '') === '' + ? '' + : cityssm.escapeHTML(occupant.occupantAddress2) + + '
') + + cityssm.escapeHTML((_d = occupant.occupantCity) !== null && _d !== void 0 ? _d : '') + ', ' + - cityssm.escapeHTML((_d = occupant.occupantProvince) !== null && _d !== void 0 ? _d : '') + + cityssm.escapeHTML((_e = occupant.occupantProvince) !== null && _e !== void 0 ? _e : '') + '
' + - cityssm.escapeHTML((_e = occupant.occupantPostalCode) !== null && _e !== void 0 ? _e : '') + + cityssm.escapeHTML((_f = occupant.occupantPostalCode) !== null && _f !== void 0 ? _f : '') + '
') + ('
' + - (occupant.occupantPhoneNumber - ? cityssm.escapeHTML(occupant.occupantPhoneNumber) + - '
' - : '') + - cityssm.escapeHTML((_f = occupant.occupantEmailAddress) !== null && _f !== void 0 ? _f : '') + + (((_g = occupant.occupantPhoneNumber) !== null && _g !== void 0 ? _g : '') === '' + ? '' + : cityssm.escapeHTML(occupant.occupantPhoneNumber) + + '
') + + cityssm.escapeHTML((_h = occupant.occupantEmailAddress) !== null && _h !== void 0 ? _h : '') + '
' + '
') + '
'; @@ -906,7 +906,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderLotOccupancyComments() { - var _a, _b; + var _a, _b, _c; const containerElement = document.querySelector('#container--lotOccupancyComments'); if (lotOccupancyComments.length === 0) { containerElement.innerHTML = @@ -934,13 +934,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.escapeHTML((_a = lotOccupancyComment.recordCreate_userName) !== null && _a !== void 0 ? _a : '') + '' + '' + - lotOccupancyComment.lotOccupancyCommentDateString + + ((_b = lotOccupancyComment.lotOccupancyCommentDateString) !== null && _b !== void 0 ? _b : '') + (lotOccupancyComment.lotOccupancyCommentTime === 0 ? '' : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString) + '' + '' + - cityssm.escapeHTML((_b = lotOccupancyComment.lotOccupancyComment) !== null && _b !== void 0 ? _b : '') + + cityssm.escapeHTML((_c = lotOccupancyComment.lotOccupancyComment) !== null && _c !== void 0 ? _c : '') + '' + ('' + '
' + @@ -1051,7 +1051,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderLotOccupancyFees() { - var _a; + var _a, _b; if (lotOccupancyFees.length === 0) { lotOccupancyFeesContainerElement.innerHTML = `

There are no fees associated with this record.

@@ -1089,14 +1089,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = document.createElement('tr'); tableRowElement.className = 'container--lotOccupancyFee'; tableRowElement.dataset.feeId = lotOccupancyFee.feeId.toString(); - tableRowElement.dataset.includeQuantity = lotOccupancyFee.includeQuantity - ? '1' - : '0'; + tableRowElement.dataset.includeQuantity = + ((_a = lotOccupancyFee.includeQuantity) !== null && _a !== void 0 ? _a : false) ? '1' : '0'; tableRowElement.innerHTML = '' + - cityssm.escapeHTML((_a = lotOccupancyFee.feeName) !== null && _a !== void 0 ? _a : '') + + cityssm.escapeHTML((_b = lotOccupancyFee.feeName) !== null && _b !== void 0 ? _b : '') + '' + (lotOccupancyFee.quantity === 1 ? '' @@ -1186,6 +1185,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function tryAddFee(clickEvent) { + var _a; clickEvent.preventDefault(); const feeId = Number.parseInt(clickEvent.currentTarget.dataset.feeId, 10); const feeCategoryId = Number.parseInt(clickEvent.currentTarget.dataset.feeCategoryId, 10); @@ -1195,7 +1195,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const fee = feeCategory.fees.find((currentFee) => { return currentFee.feeId === feeId; }); - if (fee.includeQuantity) { + if ((_a = fee.includeQuantity) !== null && _a !== void 0 ? _a : false) { doSetQuantityAndAddFee(fee); } else { @@ -1329,7 +1329,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderLotOccupancyTransactions() { - var _a, _b; + var _a, _b, _c; if (lotOccupancyTransactions.length === 0) { lotOccupancyTransactionsContainerElement.innerHTML = '
' + ('' + - cityssm.escapeHTML((_a = lotOccupancyTransaction.externalReceiptNumber) !== null && _a !== void 0 ? _a : '') + + cityssm.escapeHTML((_b = lotOccupancyTransaction.externalReceiptNumber) !== null && _b !== void 0 ? _b : '') + '
' + '' + - cityssm.escapeHTML((_b = lotOccupancyTransaction.transactionNote) !== null && _b !== void 0 ? _b : '') + + cityssm.escapeHTML((_c = lotOccupancyTransaction.transactionNote) !== null && _c !== void 0 ? _c : '') + '' + '') + ('$' + diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js index 271c65f8..1826df12 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js @@ -186,6 +186,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', { occupancyTypeId: occupancyTypeIdElement.value }, (responseJSON) => { + var _a; if (responseJSON.occupancyTypeFields.length === 0) { lotOccupancyFieldsContainerElement.innerHTML = `

There are no additional fields for this ${los.escapedAliases.occupancy} type.

@@ -196,9 +197,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); let occupancyTypeFieldIds = ''; for (const occupancyTypeField of responseJSON.occupancyTypeFields) { occupancyTypeFieldIds += - ',' + occupancyTypeField.occupancyTypeFieldId; + ',' + occupancyTypeField.occupancyTypeFieldId.toString(); const fieldName = 'lotOccupancyFieldValue_' + - occupancyTypeField.occupancyTypeFieldId; + occupancyTypeField.occupancyTypeFieldId.toString(); const fieldId = 'lotOccupancy--' + fieldName; const fieldElement = document.createElement('div'); fieldElement.className = 'field'; @@ -215,8 +216,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); occupancyTypeField.minimumLength; inputElement.maxLength = occupancyTypeField.maximumLength; - if (occupancyTypeField.pattern && - occupancyTypeField.pattern !== '') { + if (((_a = occupancyTypeField.pattern) !== null && _a !== void 0 ? _a : '') !== '') { inputElement.pattern = occupancyTypeField.pattern; } ; @@ -224,14 +224,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { ; - fieldElement.querySelector('.control').innerHTML = - '
'; + fieldElement.querySelector('.control').innerHTML = `
+ +
`; const selectElement = fieldElement.querySelector('select'); selectElement.required = occupancyTypeField.isRequired; const optionValues = occupancyTypeField.occupancyTypeFieldValues.split('\n'); @@ -255,7 +252,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.confirm({ title: 'Confirm Change', message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n - This change affects the additional fields associated with this record, and may also affect the available fees.`, + This change affects the additional fields associated with this record, and may also affect the available fees.`, contextualColorName: 'warning', okButton: { text: 'Yes, Keep the Change', @@ -421,15 +418,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); .querySelector('.is-lot-view-button') .addEventListener('click', () => { const lotId = document.querySelector('#lotOccupancy--lotId').value; - if (lotId) { - window.open(los.urlPrefix + '/lots/' + lotId); - } - else { + if (lotId === '') { bulmaJS.alert({ message: `No ${los.escapedAliases.lot} selected.`, contextualColorName: 'info' }); } + else { + window.open(los.urlPrefix + '/lots/' + lotId); + } }); document .querySelector('.is-clear-lot-button') diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts index f8cd515c..19f65296 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts @@ -296,11 +296,11 @@ declare const bulmaJS: BulmaJS for (const occupancyTypeField of responseJSON.occupancyTypeFields) { occupancyTypeFieldIds += - ',' + occupancyTypeField.occupancyTypeFieldId + ',' + occupancyTypeField.occupancyTypeFieldId!.toString() const fieldName = 'lotOccupancyFieldValue_' + - occupancyTypeField.occupancyTypeFieldId + occupancyTypeField.occupancyTypeFieldId!.toString() const fieldId = 'lotOccupancy--' + fieldName @@ -328,11 +328,8 @@ declare const bulmaJS: BulmaJS inputElement.maxLength = occupancyTypeField.maximumLength as number - if ( - occupancyTypeField.pattern && - occupancyTypeField.pattern !== '' - ) { - inputElement.pattern = occupancyTypeField.pattern + if ((occupancyTypeField.pattern ?? '') !== '') { + inputElement.pattern = occupancyTypeField.pattern! } ;(fieldElement.querySelector('.control') as HTMLElement).append( @@ -341,14 +338,11 @@ declare const bulmaJS: BulmaJS } else { ;( fieldElement.querySelector('.control') as HTMLElement - ).innerHTML = - '
' + ).innerHTML = `
+ +
` const selectElement = fieldElement.querySelector( 'select' @@ -388,7 +382,7 @@ declare const bulmaJS: BulmaJS bulmaJS.confirm({ title: 'Confirm Change', message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n - This change affects the additional fields associated with this record, and may also affect the available fees.`, + This change affects the additional fields associated with this record, and may also affect the available fees.`, contextualColorName: 'warning', okButton: { text: 'Yes, Keep the Change', @@ -647,13 +641,13 @@ declare const bulmaJS: BulmaJS document.querySelector('#lotOccupancy--lotId') as HTMLInputElement ).value - if (lotId) { - window.open(los.urlPrefix + '/lots/' + lotId) - } else { + if (lotId === '') { bulmaJS.alert({ message: `No ${los.escapedAliases.lot} selected.`, contextualColorName: 'info' }) + } else { + window.open(los.urlPrefix + '/lots/' + lotId) } }) diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js index 79353285..5372927c 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js @@ -92,7 +92,7 @@ function deleteLotOccupancyComment(clickEvent) { }); } function renderLotOccupancyComments() { - var _a, _b; + var _a, _b, _c; const containerElement = document.querySelector('#container--lotOccupancyComments'); if (lotOccupancyComments.length === 0) { containerElement.innerHTML = @@ -120,13 +120,13 @@ function renderLotOccupancyComments() { cityssm.escapeHTML((_a = lotOccupancyComment.recordCreate_userName) !== null && _a !== void 0 ? _a : '') + '' + '' + - lotOccupancyComment.lotOccupancyCommentDateString + + ((_b = lotOccupancyComment.lotOccupancyCommentDateString) !== null && _b !== void 0 ? _b : '') + (lotOccupancyComment.lotOccupancyCommentTime === 0 ? '' : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString) + '' + '' + - cityssm.escapeHTML((_b = lotOccupancyComment.lotOccupancyComment) !== null && _b !== void 0 ? _b : '') + + cityssm.escapeHTML((_c = lotOccupancyComment.lotOccupancyComment) !== null && _c !== void 0 ? _c : '') + '' + ('' + '
' + diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts index 99188f71..bdb3c578 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts @@ -200,10 +200,10 @@ function renderLotOccupancyComments(): void { cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName ?? '') + '' + '' + - lotOccupancyComment.lotOccupancyCommentDateString + + (lotOccupancyComment.lotOccupancyCommentDateString ?? '') + (lotOccupancyComment.lotOccupancyCommentTime === 0 ? '' - : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString) + + : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString!) + '' + '' + cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment ?? '') + diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.js b/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.js index 540f4a3a..4bbac839 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.js @@ -45,7 +45,7 @@ function deleteLotOccupancyFee(clickEvent) { }); } function renderLotOccupancyFees() { - var _a; + var _a, _b; if (lotOccupancyFees.length === 0) { lotOccupancyFeesContainerElement.innerHTML = `

There are no fees associated with this record.

@@ -83,14 +83,13 @@ function renderLotOccupancyFees() { const tableRowElement = document.createElement('tr'); tableRowElement.className = 'container--lotOccupancyFee'; tableRowElement.dataset.feeId = lotOccupancyFee.feeId.toString(); - tableRowElement.dataset.includeQuantity = lotOccupancyFee.includeQuantity - ? '1' - : '0'; + tableRowElement.dataset.includeQuantity = + ((_a = lotOccupancyFee.includeQuantity) !== null && _a !== void 0 ? _a : false) ? '1' : '0'; tableRowElement.innerHTML = '' + - cityssm.escapeHTML((_a = lotOccupancyFee.feeName) !== null && _a !== void 0 ? _a : '') + + cityssm.escapeHTML((_b = lotOccupancyFee.feeName) !== null && _b !== void 0 ? _b : '') + '' + (lotOccupancyFee.quantity === 1 ? '' @@ -180,6 +179,7 @@ document.querySelector('#button--addFee').addEventListener('click', () => { }); } function tryAddFee(clickEvent) { + var _a; clickEvent.preventDefault(); const feeId = Number.parseInt(clickEvent.currentTarget.dataset.feeId, 10); const feeCategoryId = Number.parseInt(clickEvent.currentTarget.dataset.feeCategoryId, 10); @@ -189,7 +189,7 @@ document.querySelector('#button--addFee').addEventListener('click', () => { const fee = feeCategory.fees.find((currentFee) => { return currentFee.feeId === feeId; }); - if (fee.includeQuantity) { + if ((_a = fee.includeQuantity) !== null && _a !== void 0 ? _a : false) { doSetQuantityAndAddFee(fee); } else { @@ -323,7 +323,7 @@ function deleteLotOccupancyTransaction(clickEvent) { }); } function renderLotOccupancyTransactions() { - var _a, _b; + var _a, _b, _c; if (lotOccupancyTransactions.length === 0) { lotOccupancyTransactionsContainerElement.innerHTML = '
$' + diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.ts index a4c4d2c8..fb687a19 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.ts @@ -120,9 +120,8 @@ function renderLotOccupancyFees(): void { const tableRowElement = document.createElement('tr') tableRowElement.className = 'container--lotOccupancyFee' tableRowElement.dataset.feeId = lotOccupancyFee.feeId.toString() - tableRowElement.dataset.includeQuantity = lotOccupancyFee.includeQuantity - ? '1' - : '0' + tableRowElement.dataset.includeQuantity = + lotOccupancyFee.includeQuantity ?? false ? '1' : '0' tableRowElement.innerHTML = '' + cityssm.escapeHTML((_b = occupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') + '
' + - (occupant.occupantAddress2 - ? cityssm.escapeHTML(occupant.occupantAddress2) + '
' - : '') + - cityssm.escapeHTML((_c = occupant.occupantCity) !== null && _c !== void 0 ? _c : '') + + (((_c = occupant.occupantAddress2) !== null && _c !== void 0 ? _c : '') === '' + ? '' + : cityssm.escapeHTML(occupant.occupantAddress2) + + '
') + + cityssm.escapeHTML((_d = occupant.occupantCity) !== null && _d !== void 0 ? _d : '') + ', ' + - cityssm.escapeHTML((_d = occupant.occupantProvince) !== null && _d !== void 0 ? _d : '') + + cityssm.escapeHTML((_e = occupant.occupantProvince) !== null && _e !== void 0 ? _e : '') + '
' + - cityssm.escapeHTML((_e = occupant.occupantPostalCode) !== null && _e !== void 0 ? _e : '') + + cityssm.escapeHTML((_f = occupant.occupantPostalCode) !== null && _f !== void 0 ? _f : '') + '
') + ('
' + - (occupant.occupantPhoneNumber - ? cityssm.escapeHTML(occupant.occupantPhoneNumber) + - '
' - : '') + - cityssm.escapeHTML((_f = occupant.occupantEmailAddress) !== null && _f !== void 0 ? _f : '') + + (((_g = occupant.occupantPhoneNumber) !== null && _g !== void 0 ? _g : '') === '' + ? '' + : cityssm.escapeHTML(occupant.occupantPhoneNumber) + + '
') + + cityssm.escapeHTML((_h = occupant.occupantEmailAddress) !== null && _h !== void 0 ? _h : '') + '
' + '
') + '
'; diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts index 2e46372b..5fa6ff44 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts @@ -264,27 +264,29 @@ function renderLotOccupancyOccupants(): void { '') + '' + ('' + - (lotOccupancyOccupant.occupantAddress1 - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) + '
' - : '') + - (lotOccupancyOccupant.occupantAddress2 - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress2) + '
' - : '') + - (lotOccupancyOccupant.occupantCity - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantCity) + ', ' - : '') + + ((lotOccupancyOccupant.occupantAddress1 ?? '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1!) + + '
') + + ((lotOccupancyOccupant.occupantAddress2 ?? '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress2!) + + '
') + + ((lotOccupancyOccupant.occupantCity ?? '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantCity!) + ', ') + cityssm.escapeHTML(lotOccupancyOccupant.occupantProvince ?? '') + '
' + cityssm.escapeHTML(lotOccupancyOccupant.occupantPostalCode ?? '') + '') + ('' + - (lotOccupancyOccupant.occupantPhoneNumber - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantPhoneNumber) + - '
' - : '') + - (lotOccupancyOccupant.occupantEmailAddress - ? cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress) - : '') + + ((lotOccupancyOccupant.occupantPhoneNumber ?? '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantPhoneNumber!) + + '
') + + ((lotOccupancyOccupant.occupantEmailAddress ?? '') === '' + ? '' + : cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress!)) + '') + ('' + cityssm.escapeHTML(lotOccupancyOccupant.occupantComment!) + @@ -455,9 +457,10 @@ if (isCreate) { ('
' + cityssm.escapeHTML(occupant.occupantAddress1 ?? '') + '
' + - (occupant.occupantAddress2 - ? cityssm.escapeHTML(occupant.occupantAddress2) + '
' - : '') + + ((occupant.occupantAddress2 ?? '') === '' + ? '' + : cityssm.escapeHTML(occupant.occupantAddress2!) + + '
') + cityssm.escapeHTML(occupant.occupantCity ?? '') + ', ' + cityssm.escapeHTML(occupant.occupantProvince ?? '') + @@ -465,10 +468,10 @@ if (isCreate) { cityssm.escapeHTML(occupant.occupantPostalCode ?? '') + '
') + ('
' + - (occupant.occupantPhoneNumber - ? cityssm.escapeHTML(occupant.occupantPhoneNumber) + - '
' - : '') + + ((occupant.occupantPhoneNumber ?? '') === '' + ? '' + : cityssm.escapeHTML(occupant.occupantPhoneNumber!) + + '
') + cityssm.escapeHTML(occupant.occupantEmailAddress ?? '') + '
' + '
') + diff --git a/public-typescript/main.js b/public-typescript/main.js index ee115222..366a9dd2 100644 --- a/public-typescript/main.js +++ b/public-typescript/main.js @@ -29,12 +29,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); // eslint-disable-next-line no-constant-condition while (true) { svgElementToHighlight = mapContainerElement.querySelector('#' + svgId); - if (svgElementToHighlight || !svgId.includes('-')) { + if (svgElementToHighlight !== null || !svgId.includes('-')) { break; } svgId = svgId.slice(0, Math.max(0, svgId.lastIndexOf('-'))); } - if (svgElementToHighlight) { + if (svgElementToHighlight !== null) { // eslint-disable-next-line unicorn/no-null svgElementToHighlight.style.fill = ''; svgElementToHighlight.classList.add('highlight', 'is-' + contextualClass); @@ -80,6 +80,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); displayMode: 'dialog' }; function initializeDatePickers(containerElement) { + var _a; const dateElements = containerElement.querySelectorAll("input[type='date']"); for (const dateElement of dateElements) { const datePickerOptions = Object.assign({}, datePickerBaseOptions); @@ -87,11 +88,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); datePickerOptions.showClearButton = false; } // apply min date if set - if (dateElement.min) { + if (dateElement.min !== '') { datePickerOptions.minDate = cityssm.dateStringToDate(dateElement.min); } // apply max date if set - if (dateElement.max) { + if (dateElement.max !== '') { datePickerOptions.maxDate = cityssm.dateStringToDate(dateElement.max); } const cal = exports.bulmaCalendar.attach(dateElement, datePickerOptions)[0]; @@ -113,12 +114,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); // Override the previous and next month button styles const datePickerNavButtonElements = datepickerElement.querySelectorAll('.datepicker-nav button.is-text'); for (const datePickerNavButtonElement of datePickerNavButtonElements) { - datePickerNavButtonElement.classList.add('is-' + datePickerBaseOptions.color); + datePickerNavButtonElement.classList.add(`is-${(_a = datePickerBaseOptions.color) !== null && _a !== void 0 ? _a : ''}`); datePickerNavButtonElement.classList.remove('is-text'); } // Override the clear button style const clearButtonElement = datepickerElement.querySelector('.datetimepicker-clear-button'); - if (clearButtonElement) { + if (clearButtonElement !== null) { if (dateElement.required) { clearButtonElement.remove(); } @@ -131,7 +132,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } // Apply a label const labelElement = document.querySelector("label[for='" + dateElement.id + "']"); - if (labelElement) { + if (labelElement !== null) { datepickerElement.querySelector('.datetimepicker-dummy-input').ariaLabel = labelElement.textContent; } } @@ -359,9 +360,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); return (urlPrefix + '/' + recordTypePlural + - (recordId ? '/' + recordId : '') + + (recordId ? '/' + recordId.toString() : '') + (recordId && edit ? '/edit' : '') + - (time ? '/?t=' + Date.now() : '')); + (time ? '/?t=' + Date.now().toString() : '')); } function getMapURL(mapId = '', edit = false, time = false) { return getRecordURL('maps', mapId, edit, time); diff --git a/public-typescript/main.ts b/public-typescript/main.ts index 61d35952..eda979d5 100644 --- a/public-typescript/main.ts +++ b/public-typescript/main.ts @@ -47,14 +47,14 @@ declare const bulmaJS: BulmaJS while (true) { svgElementToHighlight = mapContainerElement.querySelector('#' + svgId) - if (svgElementToHighlight || !svgId.includes('-')) { + if (svgElementToHighlight !== null || !svgId.includes('-')) { break } svgId = svgId.slice(0, Math.max(0, svgId.lastIndexOf('-'))) } - if (svgElementToHighlight) { + if (svgElementToHighlight !== null) { // eslint-disable-next-line unicorn/no-null svgElementToHighlight.style.fill = '' @@ -127,12 +127,12 @@ declare const bulmaJS: BulmaJS } // apply min date if set - if (dateElement.min) { + if (dateElement.min !== '') { datePickerOptions.minDate = cityssm.dateStringToDate(dateElement.min) } // apply max date if set - if (dateElement.max) { + if (dateElement.max !== '') { datePickerOptions.maxDate = cityssm.dateStringToDate(dateElement.max) } @@ -158,8 +158,7 @@ declare const bulmaJS: BulmaJS }) // Get the datepicker container element - const datepickerElement: HTMLElement | null = - containerElement.querySelector('#' + cal._id)! + const datepickerElement = containerElement.querySelector('#' + cal._id)! // Override the previous and next month button styles const datePickerNavButtonElements = datepickerElement.querySelectorAll( @@ -168,7 +167,7 @@ declare const bulmaJS: BulmaJS for (const datePickerNavButtonElement of datePickerNavButtonElements) { datePickerNavButtonElement.classList.add( - 'is-' + datePickerBaseOptions.color + `is-${datePickerBaseOptions.color ?? ''}` ) datePickerNavButtonElement.classList.remove('is-text') } @@ -177,7 +176,7 @@ declare const bulmaJS: BulmaJS const clearButtonElement: HTMLElement | null = datepickerElement.querySelector('.datetimepicker-clear-button') - if (clearButtonElement) { + if (clearButtonElement !== null) { if (dateElement.required) { clearButtonElement.remove() } else { @@ -193,7 +192,7 @@ declare const bulmaJS: BulmaJS "label[for='" + dateElement.id + "']" ) - if (labelElement) { + if (labelElement !== null) { datepickerElement.querySelector( '.datetimepicker-dummy-input' )!.ariaLabel = labelElement.textContent @@ -483,9 +482,9 @@ declare const bulmaJS: BulmaJS urlPrefix + '/' + recordTypePlural + - (recordId ? '/' + recordId : '') + + (recordId ? '/' + recordId.toString() : '') + (recordId && edit ? '/edit' : '') + - (time ? '/?t=' + Date.now() : '') + (time ? '/?t=' + Date.now().toString() : '') ) } diff --git a/public-typescript/mapSearch.js b/public-typescript/mapSearch.js index 0c7a8bf9..48d70247 100644 --- a/public-typescript/mapSearch.js +++ b/public-typescript/mapSearch.js @@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const searchFilterElement = document.querySelector('#searchFilter--map'); const searchResultsContainerElement = document.querySelector('#container--searchResults'); function renderResults() { - var _a, _b, _c, _d, _e, _f, _g, _h; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Maps}...`); let searchResultCount = 0; const searchResultsTbodyElement = document.createElement('tbody'); @@ -40,34 +40,36 @@ Object.defineProperty(exports, "__esModule", { value: true }); '' + '') + ('' + - (map.mapAddress1 - ? cityssm.escapeHTML(map.mapAddress1) + '
' - : '') + - (map.mapAddress2 - ? cityssm.escapeHTML(map.mapAddress2) + '
' - : '') + + (((_f = map.mapAddress1) !== null && _f !== void 0 ? _f : '') === '' + ? '' + : cityssm.escapeHTML(map.mapAddress1) + '
') + + (((_g = map.mapAddress2) !== null && _g !== void 0 ? _g : '') === '' + ? '' + : cityssm.escapeHTML(map.mapAddress2) + '
') + (map.mapCity || map.mapProvince - ? cityssm.escapeHTML((_f = map.mapCity) !== null && _f !== void 0 ? _f : '') + + ? cityssm.escapeHTML((_h = map.mapCity) !== null && _h !== void 0 ? _h : '') + ', ' + - cityssm.escapeHTML((_g = map.mapProvince) !== null && _g !== void 0 ? _g : '') + + cityssm.escapeHTML((_j = map.mapProvince) !== null && _j !== void 0 ? _j : '') + '
' : '') + - (map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : '') + + (((_k = map.mapPostalCode) !== null && _k !== void 0 ? _k : '') === '' + ? '' + : cityssm.escapeHTML(map.mapPostalCode)) + '') + - ('' + cityssm.escapeHTML((_h = map.mapPhoneNumber) !== null && _h !== void 0 ? _h : '') + '') + + ('' + cityssm.escapeHTML((_l = map.mapPhoneNumber) !== null && _l !== void 0 ? _l : '') + '') + '' + (map.mapLatitude && map.mapLongitude ? '' : '') + '' + '' + - (map.mapSVG - ? '' - : '') + + (((_m = map.mapSVG) !== null && _m !== void 0 ? _m : '') === '' + ? '' + : '') + '' + - (` + ` ${map.lotCount} - `) + + ` + ''); } searchResultsContainerElement.innerHTML = ''; diff --git a/public-typescript/mapSearch.ts b/public-typescript/mapSearch.ts index c4e6aa6a..4346cc34 100644 --- a/public-typescript/mapSearch.ts +++ b/public-typescript/mapSearch.ts @@ -68,19 +68,21 @@ declare const cityssm: cityssmGlobal '' + '') + ('' + - (map.mapAddress1 - ? cityssm.escapeHTML(map.mapAddress1) + '
' - : '') + - (map.mapAddress2 - ? cityssm.escapeHTML(map.mapAddress2) + '
' - : '') + + ((map.mapAddress1 ?? '') === '' + ? '' + : cityssm.escapeHTML(map.mapAddress1!) + '
') + + ((map.mapAddress2 ?? '') === '' + ? '' + : cityssm.escapeHTML(map.mapAddress2!) + '
') + (map.mapCity || map.mapProvince ? cityssm.escapeHTML(map.mapCity ?? '') + ', ' + cityssm.escapeHTML(map.mapProvince ?? '') + '
' : '') + - (map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : '') + + ((map.mapPostalCode ?? '') === '' + ? '' + : cityssm.escapeHTML(map.mapPostalCode!)) + '') + ('' + cityssm.escapeHTML(map.mapPhoneNumber ?? '') + '') + '' + @@ -89,13 +91,15 @@ declare const cityssm: cityssmGlobal : '') + '' + '' + - (map.mapSVG - ? '' - : '') + + ((map.mapSVG ?? '') === '' + ? '' + : '') + '' + - (` - ${map.lotCount!} - `) + + ` + ${map.lotCount!} + ` + '' ) } diff --git a/public-typescript/mapView.js b/public-typescript/mapView.js index 98f537cd..a0142df9 100644 --- a/public-typescript/mapView.js +++ b/public-typescript/mapView.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); (() => { const mapContainerElement = document.querySelector('#map--leaflet'); - if (mapContainerElement) { + if (mapContainerElement !== null) { const mapLatitude = Number.parseFloat(mapContainerElement.dataset.mapLatitude); const mapLongitude = Number.parseFloat(mapContainerElement.dataset.mapLongitude); const mapCoordinates = [mapLatitude, mapLongitude]; diff --git a/public-typescript/mapView.ts b/public-typescript/mapView.ts index d347f23c..f89d6935 100644 --- a/public-typescript/mapView.ts +++ b/public-typescript/mapView.ts @@ -3,13 +3,11 @@ import type * as Leaflet from 'leaflet' declare const L - ;(() => { - const mapContainerElement = document.querySelector( - '#map--leaflet' - ) as HTMLElement + const mapContainerElement: HTMLElement | null = + document.querySelector('#map--leaflet') - if (mapContainerElement) { + if (mapContainerElement !== null) { const mapLatitude = Number.parseFloat( mapContainerElement.dataset.mapLatitude! ) diff --git a/public-typescript/workOrderOutlook.ts b/public-typescript/workOrderOutlook.ts index 349b2bbf..589867da 100644 --- a/public-typescript/workOrderOutlook.ts +++ b/public-typescript/workOrderOutlook.ts @@ -17,7 +17,7 @@ import type * as globalTypes from '../types/globalTypes' '#icsFilters--calendarURL' ) as HTMLTextAreaElement - function updateCalendarURL() { + function updateCalendarURL(): void { let url = window.location.href.slice( 0, @@ -81,9 +81,7 @@ import type * as globalTypes from '../types/globalTypes' const inputSelectElements = ( document.querySelector('#panel--icsFilters') as HTMLElement - ).querySelectorAll('input, select') as NodeListOf< - HTMLInputElement | HTMLSelectElement - > + ).querySelectorAll('input, select') for (const element of inputSelectElements) { element.addEventListener('change', updateCalendarURL) diff --git a/public-typescript/workOrderView.js b/public-typescript/workOrderView.js index d8caea3a..cbf3e5cf 100644 --- a/public-typescript/workOrderView.js +++ b/public-typescript/workOrderView.js @@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); (() => { const los = exports.los; const reopenWorkOrderButtonElement = document.querySelector('#button--reopenWorkOrder'); - if (reopenWorkOrderButtonElement) { + if (reopenWorkOrderButtonElement !== null) { const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId; reopenWorkOrderButtonElement.addEventListener('click', () => { function doReopen() { diff --git a/public-typescript/workOrderView.ts b/public-typescript/workOrderView.ts index e196f9ba..67ee0957 100644 --- a/public-typescript/workOrderView.ts +++ b/public-typescript/workOrderView.ts @@ -11,11 +11,10 @@ declare const bulmaJS: BulmaJS ;(() => { const los = exports.los as globalTypes.LOS - const reopenWorkOrderButtonElement = document.querySelector( - '#button--reopenWorkOrder' - ) as HTMLButtonElement + const reopenWorkOrderButtonElement: HTMLButtonElement | null = + document.querySelector('#button--reopenWorkOrder') - if (reopenWorkOrderButtonElement) { + if (reopenWorkOrderButtonElement !== null) { const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId! reopenWorkOrderButtonElement.addEventListener('click', () => { diff --git a/public/javascripts/adminFees.min.js b/public/javascripts/adminFees.min.js index ea833ca5..8844bf92 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 o=exports.feeCategories;function s(){var s,d,u,y,f,m;if(0!==o.length){t.innerHTML="";for(const p of o){const o=document.createElement("section");if(o.className="panel container--feeCategory",o.dataset.feeCategoryId=p.feeCategoryId.toString(),o.innerHTML='

'+cityssm.escapeHTML(null!==(s=p.feeCategory)&&void 0!==s?s:"")+'

'+(0===p.fees.length?'
':"")+'
'+e.getMoveUpDownButtonFieldHTML("button--moveFeeCategoryUp","button--moveFeeCategoryDown")+"
",0===p.fees.length)o.insertAdjacentHTML("beforeend",`
\n
\n

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

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

'+cityssm.escapeHTML(null!==(d=t.feeName)&&void 0!==d?d:"")+"
"+cityssm.escapeHTML(null!==(u=t.feeDescription)&&void 0!==u?u:"").replace(/\n/g,"
")+"

"+(a?'

'+(t.isRequired?'Required':"")+(t.occupancyTypeId?' '+cityssm.escapeHTML(null!==(y=t.occupancyType)&&void 0!==y?y:"")+"":"")+(t.lotTypeId?' '+cityssm.escapeHTML(null!==(f=t.lotType)&&void 0!==f?f:"")+"":"")+"

":"")+'
'+(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(null!==(m=t.quantityUnit)&&void 0!==m?m:"")+"
Quantity":"")+'
'+e.getMoveUpDownButtonFieldHTML("button--moveFeeUp","button--moveFeeDown")+"
",s.querySelector("a").addEventListener("click",l),s.querySelector(".button--moveFeeUp").addEventListener("click",i),s.querySelector(".button--moveFeeDown").addEventListener("click",i),o.append(s)}o.querySelector(".button--editFeeCategory").addEventListener("click",a),o.querySelector(".button--addFee").addEventListener("click",c),o.querySelector(".button--moveFeeCategoryUp").addEventListener("click",r),o.querySelector(".button--moveFeeCategoryDown").addEventListener("click",r),t.append(o)}}else t.innerHTML='
\n

There are no available fees.

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

'+cityssm.escapeHTML(null!==(s=C.feeCategory)&&void 0!==s?s:"")+'

'+(0===C.fees.length?'
':"")+'
'+e.getMoveUpDownButtonFieldHTML("button--moveFeeCategoryUp","button--moveFeeCategoryDown")+"
",0===C.fees.length)o.insertAdjacentHTML("beforeend",`
\n
\n

\n There are no fees in the\n "${cityssm.escapeHTML(null!==(d=C.feeCategory)&&void 0!==d?d:"")}"\n category.\n

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

'+cityssm.escapeHTML(null!==(y=t.feeName)&&void 0!==y?y:"")+"
"+cityssm.escapeHTML(null!==(f=t.feeDescription)&&void 0!==f?f:"").replace(/\n/g,"
")+"

"+(a?'

'+(null!==(m=t.isRequired)&&void 0!==m&&m?'Required':"")+(void 0===t.occupancyTypeId?"":' '+cityssm.escapeHTML(null!==(p=t.occupancyType)&&void 0!==p?p:"")+"")+(void 0===t.lotTypeId?"":' '+cityssm.escapeHTML(null!==(g=t.lotType)&&void 0!==g?g:"")+"")+"

":"")+'
'+(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(null!==(v=t.quantityUnit)&&void 0!==v?v:"")+"
Quantity":"")+'
'+e.getMoveUpDownButtonFieldHTML("button--moveFeeUp","button--moveFeeDown")+"
",s.querySelector("a").addEventListener("click",c),s.querySelector(".button--moveFeeUp").addEventListener("click",i),s.querySelector(".button--moveFeeDown").addEventListener("click",i),o.append(s)}o.querySelector(".button--editFeeCategory").addEventListener("click",a),o.querySelector(".button--addFee").addEventListener("click",l),o.querySelector(".button--moveFeeCategoryUp").addEventListener("click",r),o.querySelector(".button--moveFeeCategoryDown").addEventListener("click",r),t.append(o)}}else t.innerHTML='
\n

There are no available fees.

\n
'}function a(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),n=o.find(e=>e.feeCategoryId===a);let r;function l(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFeeCategory",t.currentTarget,e=>{var t;e.success?(o=e.feeCategories,r(),s()):bulmaJS.alert({title:"Error Updating Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-editFeeCategory",{onshow(e){e.querySelector("#feeCategoryEdit--feeCategoryId").value=n.feeCategoryId.toString(),e.querySelector("#feeCategoryEdit--feeCategory").value=n.feeCategory},onshown(e,t){bulmaJS.toggleHtmlClipped(),r=t,e.querySelector("form").addEventListener("submit",l),e.querySelector("#feeCategoryEdit--feeCategory").focus()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function n(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=>{var t;e.success?(o=e.feeCategories,s()):bulmaJS.alert({title:"Error Updating Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function r(t){const a=t.currentTarget,n=a.closest(".container--feeCategory").dataset.feeCategoryId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===a.dataset.direction?"doMoveFeeCategoryUp":"doMoveFeeCategoryDown"),{feeCategoryId:n,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(o=e.feeCategories,s()):bulmaJS.alert({title:"Error Moving Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function l(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);let n;function r(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFee",t.currentTarget,e=>{var t;e.success?(o=e.feeCategories,n(),s()):bulmaJS.alert({title:"Error Adding Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFee",{onshow(t){const s=t.querySelector("#feeAdd--feeCategoryId");for(const e of o){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===a&&(t.selected=!0),s.append(t)}const n=t.querySelector("#feeAdd--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,n.append(t)}const r=t.querySelector("#feeAdd--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,r.append(t)}t.querySelector("#feeAdd--taxPercentage").value=exports.taxPercentageDefault.toString(),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),n=t,e.querySelector("form").addEventListener("submit",r),e.querySelector("#feeAdd--feeName").focus(),e.querySelector("#feeAdd--feeFunction").addEventListener("change",()=>{const t=e.querySelector("#feeAdd--feeAmount"),o=e.querySelector("#feeAdd--feeFunction");""===o.value?(o.closest(".select").classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(o.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"),o=e.querySelector("#feeAdd--taxPercentage");""===o.value?(o.classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(o.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 c(t){t.preventDefault();const a=t.currentTarget.closest(".container--fee"),n=Number.parseInt(a.dataset.feeId,10),r=Number.parseInt(a.closest(".container--feeCategory").dataset.feeCategoryId),l=o.find(e=>e.feeCategoryId===r).fees.find(e=>e.feeId===n);let c,i;function d(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFee",t.currentTarget,e=>{var t;e.success?(o=e.feeCategories,c(),s()):bulmaJS.alert({title:"Error Updating Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",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:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFee",{feeId:n},e=>{var t;e.success?(o=e.feeCategories,c(),s()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",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(){const e=i.querySelector("#feeEdit--includeQuantity").value;i.querySelector("#feeEdit--quantityUnit").disabled=""===e}cityssm.openHtmlModal("adminFees-editFee",{onshow(t){var s,a,n;i=t,t.querySelector("#feeEdit--feeId").value=l.feeId.toString();const c=t.querySelector("#feeEdit--feeCategoryId");for(const e of o){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===r&&(t.selected=!0),c.append(t)}t.querySelector("#feeEdit--feeName").value=l.feeName,t.querySelector("#feeEdit--feeDescription").value=l.feeDescription;const d=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===l.occupancyTypeId&&(t.selected=!0),d.append(t)}const u=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===l.lotTypeId&&(t.selected=!0),u.append(t)}t.querySelector("#feeEdit--feeAmount").value=l.feeAmount?l.feeAmount.toFixed(2):"",t.querySelector("#feeEdit--feeFunction").addEventListener("change",y),y(),t.querySelector("#feeEdit--taxAmount").value=l.taxAmount?l.taxAmount.toFixed(2):"";const p=t.querySelector("#feeEdit--taxPercentage");p.value=l.taxPercentage?l.taxPercentage.toString():"",p.addEventListener("keyup",f),f();const g=t.querySelector("#feeEdit--includeQuantity");null!==(s=l.includeQuantity)&&void 0!==s&&s&&(g.value="1"),g.addEventListener("change",m),t.querySelector("#feeEdit--quantityUnit").value=null!==(a=l.quantityUnit)&&void 0!==a?a:"",m(),null!==(n=l.isRequired)&&void 0!==n&&n&&(t.querySelector("#feeEdit--isRequired").value="1"),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),c=t,e.querySelector("form").addEventListener("submit",d),bulmaJS.init(e),e.querySelector(".button--deleteFee").addEventListener("click",u)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function i(t){const a=t.currentTarget,n=a.closest(".container--fee").dataset.feeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===a.dataset.direction?"doMoveFeeUp":"doMoveFeeDown"),{feeId:n,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(o=e.feeCategories,s()):bulmaJS.alert({title:"Error Moving Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}delete exports.feeCategories,document.querySelector("#button--addFeeCategory").addEventListener("click",()=>{let t;function a(a){a.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFeeCategory",a.currentTarget,e=>{var a;e.success?(o=e.feeCategories,t(),s()):bulmaJS.alert({title:"Error Creating Fee Category",message:null!==(a=e.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFeeCategory",{onshown(e,o){bulmaJS.toggleHtmlClipped(),e.querySelector("#feeCategoryAdd--feeCategory").focus(),t=o,e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addFeeCategory").focus()}})}),s()})(); \ No newline at end of file diff --git a/public/javascripts/lotOccupancyEdit.min.js b/public/javascripts/lotOccupancyEdit.min.js index 226be6fc..91430de7 100644 --- a/public/javascripts/lotOccupancyEdit.min.js +++ b/public/javascripts/lotOccupancyEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t,c;const n=exports.los,a=document.querySelector("#lotOccupancy--lotOccupancyId").value,o=""===a;let s=o;const l=document.querySelector("#form--lotOccupancy");l.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/"+(o?"doCreateLotOccupancy":"doUpdateLotOccupancy"),l,e=>{var t;e.success?(n.clearUnsavedChanges(),o||s?window.location.href=n.getLotOccupancyURL(e.lotOccupancyId,!0,!0):bulmaJS.alert({message:`${n.escapedAliases.Occupancy} Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+n.escapedAliases.Occupancy,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const r=l.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",n.setUnsavedChanges);function u(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:a},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=n.getLotOccupancyURL(e.lotOccupancyId,!0)):bulmaJS.alert({title:"Error Copying Record",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}null===(e=document.querySelector("#button--copyLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),n.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${n.escapedAliases.Occupancy} Record as New`,message:"Are you sure you want to copy this record to a new record?",contextualColorName:"info",okButton:{text:"Yes, Copy",callbackFunction:u}})}),null===(t=document.querySelector("#button--deleteLotOccupancy"))||void 0===t||t.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:`Delete ${n.escapedAliases.Occupancy} Record`,message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:a},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=n.getLotOccupancyURL()):bulmaJS.alert({title:"Error Deleting Record",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}),null===(c=document.querySelector("#button--createWorkOrder"))||void 0===c||c.addEventListener("click",e=>{let t;function c(e){e.preventDefault(),cityssm.postJSON(n.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{e.success?(t(),bulmaJS.confirm({title:"Work Order Created Successfully",message:"Would you like to open the work order now?",contextualColorName:"success",okButton:{text:"Yes, Open the Work Order",callbackFunction:()=>{window.location.href=n.getWorkOrderURL(e.workOrderId,!0)}}})):bulmaJS.alert({title:"Error Creating Work Order",message:e.errorMessage,contextualColorName:"danger"})})}e.preventDefault(),cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow(e){e.querySelector("#workOrderCreate--lotOccupancyId").value=a,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const t=e.querySelector("#workOrderCreate--workOrderTypeId"),c=exports.workOrderTypes;1===c.length&&(t.innerHTML="");for(const e of c){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=e.workOrderType,t.append(c)}},onshown(e,n){var a;t=n,bulmaJS.toggleHtmlClipped(),null===(a=e.querySelector("form"))||void 0===a||a.addEventListener("submit",c)},onremoved(){bulmaJS.toggleHtmlClipped()}})});const i=document.querySelector("#lotOccupancy--occupancyTypeId");if(o){const e=document.querySelector("#container--lotOccupancyFields");i.addEventListener("change",()=>{""!==i.value?cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:i.value},t=>{if(0===t.occupancyTypeFields.length)return void(e.innerHTML=`
\n

There are no additional fields for this ${n.escapedAliases.occupancy} type.

\n
`);e.innerHTML="";let c="";for(const n of t.occupancyTypeFields){c+=","+n.occupancyTypeFieldId;const t="lotOccupancyFieldValue_"+n.occupancyTypeFieldId,a="lotOccupancy--"+t,o=document.createElement("div");if(o.className="field",o.innerHTML=`
`,o.querySelector("label").textContent=n.occupancyTypeField,""===n.occupancyTypeFieldValues){const e=document.createElement("input");e.className="input",e.id=a,e.name=t,e.type="text",e.required=n.isRequired,e.minLength=n.minimumLength,e.maxLength=n.maximumLength,n.pattern&&""!==n.pattern&&(e.pattern=n.pattern),o.querySelector(".control").append(e)}else{o.querySelector(".control").innerHTML='
';const e=o.querySelector("select");e.required=n.isRequired;const c=n.occupancyTypeFieldValues.split("\n");for(const t of c){const c=document.createElement("option");c.value=t,c.textContent=t,e.append(c)}}e.append(o)}e.insertAdjacentHTML("beforeend",``)}):e.innerHTML=`
\n

Select the ${n.escapedAliases.occupancy} type to load the available fields.

\n
`})}else{const e=i.value;i.addEventListener("change",()=>{i.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${n.escapedAliases.occupancy} type?\n\n This change affects the additional fields associated with this record, and may also affect the available fees.`,contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{s=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{i.value=e}}})})}const d=document.querySelector("#lotOccupancy--lotName");let p;function m(e){const t=Number.parseInt(e.currentTarget.closest("tr").dataset.lotOccupantIndex,10),c=p.find(e=>e.lotOccupantIndex===t);let o,s;function l(e){e.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",o,e=>{var t;e.success?(p=e.lotOccupancyOccupants,s(),O()):bulmaJS.alert({title:"Error Updating "+n.escapedAliases.Occupant,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=a,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=t.toString();const o=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");let s=!1;for(const e of exports.lotOccupantTypes){const t=document.createElement("option");t.value=e.lotOccupantTypeId.toString(),t.textContent=e.lotOccupantType,e.lotOccupantTypeId===c.lotOccupantTypeId&&(t.selected=!0,s=!0),o.append(t)}if(!s){const e=document.createElement("option");e.value=c.lotOccupantTypeId.toString(),e.textContent=c.lotOccupantType,e.selected=!0,o.append(e)}e.querySelector("#lotOccupancyOccupantEdit--occupantName").value=c.occupantName,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress1").value=c.occupantAddress1,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress2").value=c.occupantAddress2,e.querySelector("#lotOccupancyOccupantEdit--occupantCity").value=c.occupantCity,e.querySelector("#lotOccupancyOccupantEdit--occupantProvince").value=c.occupantProvince,e.querySelector("#lotOccupancyOccupantEdit--occupantPostalCode").value=c.occupantPostalCode,e.querySelector("#lotOccupancyOccupantEdit--occupantPhoneNumber").value=c.occupantPhoneNumber,e.querySelector("#lotOccupancyOccupantEdit--occupantEmailAddress").value=c.occupantEmailAddress,e.querySelector("#lotOccupancyOccupantEdit--occupantComment").value=c.occupantComment},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId").focus(),(o=e.querySelector("form")).addEventListener("submit",l),s=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function y(e){const t=e.currentTarget.closest("tr").dataset.lotOccupantIndex;bulmaJS.confirm({title:`Remove ${n.escapedAliases.Occupant}?`,message:`Are you sure you want to remove this ${n.escapedAliases.occupant}?`,okButton:{text:"Yes, Remove "+n.escapedAliases.Occupant,callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:a,lotOccupantIndex:t},e=>{var t;e.success?(p=e.lotOccupancyOccupants,O()):bulmaJS.alert({title:"Error Removing "+n.escapedAliases.Occupant,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function O(){var e,t,c;const a=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(a),0===p.length)return void(a.innerHTML=`
\n

There are no ${n.escapedAliases.occupants} associated with this record.

\n
`);const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML=`\n ${n.escapedAliases.Occupant}\n Address\n Other Contact\n Comment\n Options\n \n `;for(const n of p){const a=document.createElement("tr");a.dataset.lotOccupantIndex=n.lotOccupantIndex.toString(),a.innerHTML=""+cityssm.escapeHTML(""===(null!==(e=n.occupantName)&&void 0!==e?e:"")?"(No Name)":n.occupantName)+'
'+cityssm.escapeHTML(n.lotOccupantType)+""+(n.occupantAddress1?cityssm.escapeHTML(n.occupantAddress1)+"
":"")+(n.occupantAddress2?cityssm.escapeHTML(n.occupantAddress2)+"
":"")+(n.occupantCity?cityssm.escapeHTML(n.occupantCity)+", ":"")+cityssm.escapeHTML(null!==(t=n.occupantProvince)&&void 0!==t?t:"")+"
"+cityssm.escapeHTML(null!==(c=n.occupantPostalCode)&&void 0!==c?c:"")+""+(n.occupantPhoneNumber?cityssm.escapeHTML(n.occupantPhoneNumber)+"
":"")+(n.occupantEmailAddress?cityssm.escapeHTML(n.occupantEmailAddress):"")+""+cityssm.escapeHTML(n.occupantComment)+'
',a.querySelector(".button--edit").addEventListener("click",m),a.querySelector(".button--delete").addEventListener("click",y),o.querySelector("tbody").append(a)}a.append(o)}if(d.addEventListener("click",e=>{const t=e.currentTarget.value;let c,a,o,s;function l(e,t){document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,n.setUnsavedChanges(),c()}function r(e){e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)}function u(){s.innerHTML=n.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(n.urlPrefix+"/lots/doSearchLots",o,e=>{var t,c;if(0===e.count)return void(s.innerHTML='
\n

No results.

\n
');const n=document.createElement("div");n.className="panel";for(const a of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=a.lotId.toString(),e.dataset.lotName=a.lotName,e.innerHTML='
'+cityssm.escapeHTML(null!==(t=a.lotName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=a.mapName)&&void 0!==c?c:"")+'
'+cityssm.escapeHTML(a.lotStatus)+'
'+(a.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",r),n.append(e)}s.innerHTML="",s.append(n)})}function i(e){e.preventDefault();const t=a.querySelector("#lotCreate--lotName").value;cityssm.postJSON(n.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{var c;e.success?l(e.lotId,t):bulmaJS.alert({title:`Error Creating ${n.escapedAliases.Lot}`,message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{n.populateAliases(e)},onshown:(e,n)=>{var l;bulmaJS.toggleHtmlClipped(),a=e,c=n,bulmaJS.init(e);const r=e.querySelector("#lotSelect--lotName");""!==document.querySelector("#lotOccupancy--lotId").value&&(r.value=t),r.focus(),r.addEventListener("change",u);const d=e.querySelector("#lotSelect--occupancyStatus");if(d.addEventListener("change",u),""!==t&&(d.value=""),o=e.querySelector("#form--lotSelect"),s=e.querySelector("#resultsContainer--lotSelect"),o.addEventListener("submit",e=>{e.preventDefault()}),u(),exports.lotNamePattern){const t=exports.lotNamePattern;e.querySelector("#lotCreate--lotName").pattern=t.source}const p=e.querySelector("#lotCreate--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,p.append(t)}const m=e.querySelector("#lotCreate--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,m.append(t)}const y=e.querySelector("#lotCreate--mapId");for(const e of exports.maps){const t=document.createElement("option");t.value=e.mapId.toString(),t.textContent=""===(null!==(l=e.mapName)&&void 0!==l?l:"")?"(No Name)":e.mapName,y.append(t)}e.querySelector("#form--lotCreate").addEventListener("submit",i)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),document.querySelector(".is-lot-view-button").addEventListener("click",()=>{const e=document.querySelector("#lotOccupancy--lotId").value;e?window.open(n.urlPrefix+"/lots/"+e):bulmaJS.alert({message:`No ${n.escapedAliases.lot} selected.`,contextualColorName:"info"})}),document.querySelector(".is-clear-lot-button").addEventListener("click",()=>{d.disabled?bulmaJS.alert({message:"You need to unlock the field before clearing it.",contextualColorName:"info"}):(d.value=`(No ${n.escapedAliases.Lot})`,document.querySelector("#lotOccupancy--lotId").value="",n.setUnsavedChanges())}),n.initializeDatePickers(l),document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change",()=>{const e=document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;e.min=document.querySelector("#lotOccupancy--occupancyStartDateString").value,e.refresh()}),n.initializeUnlockFieldButtons(l),Object.defineProperty(exports,"__esModule",{value:!0}),o){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=l.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else p=exports.lotOccupancyOccupants,delete exports.lotOccupancyOccupants,document.querySelector("#button--addOccupant").addEventListener("click",()=>{let e,t,c,o;function s(t){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",t,t=>{var c;t.success?(p=t.lotOccupancyOccupants,e(),O()):bulmaJS.alert({title:`Error Adding ${n.escapedAliases.Occupant}`,message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}function l(e){e.preventDefault(),s(t)}let r=[];function u(e){e.preventDefault();const t=e.currentTarget,c=r[Number.parseInt(t.dataset.index,10)],o=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===o?bulmaJS.alert({title:`No ${n.escapedAliases.Occupant} Type Selected`,message:`Select a type to apply to the newly added ${n.escapedAliases.occupant}.`,contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(o,10),c.lotOccupancyId=Number.parseInt(a,10),s(c))}function i(e){e.preventDefault(),""!==c.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(o.innerHTML=n.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doSearchPastOccupants",c,e=>{var t,c,n,a,s,l;r=e.occupants;const i=document.createElement("div");i.className="panel";for(const[e,o]of r.entries()){const r=document.createElement("a");r.className="panel-block is-block",r.dataset.index=e.toString(),r.innerHTML=""+cityssm.escapeHTML(null!==(t=o.occupantName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=o.occupantAddress1)&&void 0!==c?c:"")+"
"+(o.occupantAddress2?cityssm.escapeHTML(o.occupantAddress2)+"
":"")+cityssm.escapeHTML(null!==(n=o.occupantCity)&&void 0!==n?n:"")+", "+cityssm.escapeHTML(null!==(a=o.occupantProvince)&&void 0!==a?a:"")+"
"+cityssm.escapeHTML(null!==(s=o.occupantPostalCode)&&void 0!==s?s:"")+'
'+(o.occupantPhoneNumber?cityssm.escapeHTML(o.occupantPhoneNumber)+"
":"")+cityssm.escapeHTML(null!==(l=o.occupantEmailAddress)&&void 0!==l?l:"")+"
",r.addEventListener("click",u),i.append(r)}o.innerHTML="",o.append(i)})):o.innerHTML='

Enter a partial name or address in the search field above.

'}cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=a;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const n=document.createElement("option");n.value=e.lotOccupantTypeId.toString(),n.textContent=e.lotOccupantType,t.append(n),c.append(n.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(n,a)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(n),n.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(t=n.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),o=n.querySelector("#lotOccupancyOccupantCopy--searchResults"),(c=n.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),n.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",i),e=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),O();if(!o){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;function v(t){const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),o=e.find(e=>e.lotOccupancyCommentId===c);let s,l;function r(t){t.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",s,t=>{var c;t.success?(e=t.lotOccupancyComments,l(),g()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=a,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=c.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=o.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=o.lotOccupancyCommentDateString;const s=cityssm.dateToString(new Date);t.max=o.lotOccupancyCommentDateString<=s?s:o.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=o.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),n.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(s=e.querySelector("form")).addEventListener("submit",r),l=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function f(t){const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:a,lotOccupancyCommentId:c},t=>{var c;t.success?(e=t.lotOccupancyComments,g()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function g(){var t,c;const n=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(n.innerHTML='

There are no comments associated with this record.

');const a=document.createElement("table");a.className="table is-fullwidth is-striped is-hoverable",a.innerHTML='CommentorComment DateCommentOptions';for(const n of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=n.lotOccupancyCommentId.toString(),e.innerHTML=""+cityssm.escapeHTML(null!==(t=n.recordCreate_userName)&&void 0!==t?t:"")+""+n.lotOccupancyCommentDateString+(0===n.lotOccupancyCommentTime?"":" "+n.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(null!==(c=n.lotOccupancyComment)&&void 0!==c?c:"")+'
',e.querySelector(".button--edit").addEventListener("click",v),e.querySelector(".button--delete").addEventListener("click",f),a.querySelector("tbody").append(e)}n.innerHTML="",n.append(a)}delete exports.lotOccupancyComments,document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;function o(a){a.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{var n;t.success?(e=t.lotOccupancyComments,c(),g()):bulmaJS.alert({title:"Error Adding Comment",message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=a},onshown:(e,n)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",o),c=n},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),g(),Object.defineProperty(exports,"__esModule",{value:!0});let t=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const c=document.querySelector("#container--lotOccupancyFees");function h(){let e=0;for(const c of t)e+=(c.feeAmount+c.taxAmount)*c.quantity;return e}function S(e){const c=e.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:a,feeId:c},e=>{var c;e.success?(t=e.lotOccupancyFees,b()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}}})}function b(){var e;if(0===t.length)return c.innerHTML='
\n

There are no fees associated with this record.

\n
',void T();c.innerHTML='\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FeeUnit Cost×QuantityequalsTotalOptions
Subtotal
Tax
Grand Total
';let n=0,a=0;for(const o of t){const t=document.createElement("tr");t.className="container--lotOccupancyFee",t.dataset.feeId=o.feeId.toString(),t.dataset.includeQuantity=o.includeQuantity?"1":"0",t.innerHTML=''+cityssm.escapeHTML(null!==(e=o.feeName)&&void 0!==e?e:"")+""+(1===o.quantity?"":'$'+o.feeAmount.toFixed(2)+'×'+o.quantity+"=")+'$'+(o.feeAmount*o.quantity).toFixed(2)+'',t.querySelector("button").addEventListener("click",S),c.querySelector("tbody").append(t),n+=o.feeAmount*o.quantity,a+=o.taxAmount*o.quantity}c.querySelector("#lotOccupancyFees--feeAmountTotal").textContent="$"+n.toFixed(2),c.querySelector("#lotOccupancyFees--taxAmountTotal").textContent="$"+a.toFixed(2),c.querySelector("#lotOccupancyFees--grandTotal").textContent="$"+(n+a).toFixed(2),T()}document.querySelector("#button--addFee").addEventListener("click",()=>{if(n.hasUnsavedChanges())return void bulmaJS.alert({message:"Please save all unsaved changes before adding fees.",contextualColorName:"warning"});let e,o,s;function l(e,c=1){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyFee",{lotOccupancyId:a,feeId:e,quantity:c},e=>{var c;e.success?(t=e.lotOccupancyFees,b(),u()):bulmaJS.alert({title:"Error Adding Fee",message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}function r(t){t.preventDefault();const c=Number.parseInt(t.currentTarget.dataset.feeId,10),n=Number.parseInt(t.currentTarget.dataset.feeCategoryId,10),a=e.find(e=>e.feeCategoryId===n).fees.find(e=>e.feeId===c);a.includeQuantity?function(e){let t,c;function n(n){n.preventDefault(),l(e.feeId,t.value),c()}cityssm.openHtmlModal("lotOccupancy-setFeeQuantity",{onshow(t){t.querySelector("#lotOccupancyFeeQuantity--quantityUnit").textContent=e.quantityUnit},onshown(e,a){c=a,t=e.querySelector("#lotOccupancyFeeQuantity--quantity"),e.querySelector("form").addEventListener("submit",n)}})}(a):l(c)}function u(){var t,n,a,l,u;const i=o.value.trim().toLowerCase().split(" ");s.innerHTML="";for(const o of e){const e=document.createElement("div");e.className="container--feeCategory",e.dataset.feeCategoryId=o.feeCategoryId.toString(),e.innerHTML='

'+cityssm.escapeHTML(null!==(t=o.feeCategory)&&void 0!==t?t:"")+'

';let d=!1;for(const t of o.fees){if(null!==c.querySelector(`.container--lotOccupancyFee[data-fee-id='${t.feeId}'][data-include-quantity='0']`))continue;let s=!0;const p=((null!==(n=t.feeName)&&void 0!==n?n:"")+" "+(null!==(a=t.feeDescription)&&void 0!==a?a:"")).toLowerCase();for(const e of i)if(!p.includes(e)){s=!1;break}if(!s)continue;d=!0;const m=document.createElement("a");m.className="panel-block is-block container--fee",m.dataset.feeId=t.feeId.toString(),m.dataset.feeCategoryId=o.feeCategoryId.toString(),m.href="#",m.innerHTML=""+cityssm.escapeHTML(null!==(l=t.feeName)&&void 0!==l?l:"")+"
"+cityssm.escapeHTML(null!==(u=t.feeDescription)&&void 0!==u?u:"").replace(/\n/g,"
")+"
",m.addEventListener("click",r),e.querySelector(".panel").append(m)}d&&s.append(e)}}cityssm.openHtmlModal("lotOccupancy-addFee",{onshow(t){o=t.querySelector("#feeSelect--feeName"),s=t.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:a},t=>{e=t.feeCategories,o.disabled=!1,o.addEventListener("keyup",u),o.focus(),u()})},onshown(){bulmaJS.toggleHtmlClipped()},onhidden(){b()},onremoved(){bulmaJS.toggleHtmlClipped()}})});let o=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const s=document.querySelector("#container--lotOccupancyTransactions");function C(e){const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:a,transactionIndex:t},e=>{var t;e.success?(o=e.lotOccupancyTransactions,T()):bulmaJS.alert({title:"Error Deleting Transaction",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function T(){var e,c;if(0===o.length)return void(s.innerHTML='

There are no transactions associated with this record.

');s.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n
Date${n.escapedAliases.ExternalReceiptNumber}AmountOptions
Transaction Total
`;let a=0;for(const t of o){a+=t.transactionAmount;const n=document.createElement("tr");n.className="container--lotOccupancyTransaction",n.dataset.transactionIndex=t.transactionIndex.toString(),n.innerHTML=""+t.transactionDateString+""+cityssm.escapeHTML(null!==(e=t.externalReceiptNumber)&&void 0!==e?e:"")+"
"+cityssm.escapeHTML(null!==(c=t.transactionNote)&&void 0!==c?c:"")+'$'+t.transactionAmount.toFixed(2)+'',n.querySelector("button").addEventListener("click",C),s.querySelector("tbody").append(n)}s.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+a.toFixed(2);const l=h();l>a&&s.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(l-a).toFixed(2)+"
")}document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;function t(t){t.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{var c;t.success?(o=t.lotOccupancyTransactions,e(),T()):bulmaJS.confirm({title:"Error Adding Transaction",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow(e){n.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=a.toString();const t=h(),c=function(){let e=0;for(const t of o)e+=t.transactionAmount;return e}(),s=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");s.min=(-1*c).toFixed(2),s.max=Math.max(t-c,0).toFixed(2),s.value=Math.max(t-c,0).toFixed(2)},onshown(c,n){bulmaJS.toggleHtmlClipped(),e=n,c.querySelector("form").addEventListener("submit",t)},onremoved(){bulmaJS.toggleHtmlClipped()}})}),b()}})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t,c;const n=exports.los,a=document.querySelector("#lotOccupancy--lotOccupancyId").value,o=""===a;let s=o;const l=document.querySelector("#form--lotOccupancy");l.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/"+(o?"doCreateLotOccupancy":"doUpdateLotOccupancy"),l,e=>{var t;e.success?(n.clearUnsavedChanges(),o||s?window.location.href=n.getLotOccupancyURL(e.lotOccupancyId,!0,!0):bulmaJS.alert({message:`${n.escapedAliases.Occupancy} Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+n.escapedAliases.Occupancy,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const r=l.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",n.setUnsavedChanges);function u(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:a},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=n.getLotOccupancyURL(e.lotOccupancyId,!0)):bulmaJS.alert({title:"Error Copying Record",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}null===(e=document.querySelector("#button--copyLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),n.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${n.escapedAliases.Occupancy} Record as New`,message:"Are you sure you want to copy this record to a new record?",contextualColorName:"info",okButton:{text:"Yes, Copy",callbackFunction:u}})}),null===(t=document.querySelector("#button--deleteLotOccupancy"))||void 0===t||t.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:`Delete ${n.escapedAliases.Occupancy} Record`,message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:a},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=n.getLotOccupancyURL()):bulmaJS.alert({title:"Error Deleting Record",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}),null===(c=document.querySelector("#button--createWorkOrder"))||void 0===c||c.addEventListener("click",e=>{let t;function c(e){e.preventDefault(),cityssm.postJSON(n.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{e.success?(t(),bulmaJS.confirm({title:"Work Order Created Successfully",message:"Would you like to open the work order now?",contextualColorName:"success",okButton:{text:"Yes, Open the Work Order",callbackFunction:()=>{window.location.href=n.getWorkOrderURL(e.workOrderId,!0)}}})):bulmaJS.alert({title:"Error Creating Work Order",message:e.errorMessage,contextualColorName:"danger"})})}e.preventDefault(),cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow(e){e.querySelector("#workOrderCreate--lotOccupancyId").value=a,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const t=e.querySelector("#workOrderCreate--workOrderTypeId"),c=exports.workOrderTypes;1===c.length&&(t.innerHTML="");for(const e of c){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=e.workOrderType,t.append(c)}},onshown(e,n){var a;t=n,bulmaJS.toggleHtmlClipped(),null===(a=e.querySelector("form"))||void 0===a||a.addEventListener("submit",c)},onremoved(){bulmaJS.toggleHtmlClipped()}})});const i=document.querySelector("#lotOccupancy--occupancyTypeId");if(o){const e=document.querySelector("#container--lotOccupancyFields");i.addEventListener("change",()=>{""!==i.value?cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:i.value},t=>{var c;if(0===t.occupancyTypeFields.length)return void(e.innerHTML=`
\n

There are no additional fields for this ${n.escapedAliases.occupancy} type.

\n
`);e.innerHTML="";let a="";for(const n of t.occupancyTypeFields){a+=","+n.occupancyTypeFieldId.toString();const t="lotOccupancyFieldValue_"+n.occupancyTypeFieldId.toString(),o="lotOccupancy--"+t,s=document.createElement("div");if(s.className="field",s.innerHTML=`
`,s.querySelector("label").textContent=n.occupancyTypeField,""===n.occupancyTypeFieldValues){const e=document.createElement("input");e.className="input",e.id=o,e.name=t,e.type="text",e.required=n.isRequired,e.minLength=n.minimumLength,e.maxLength=n.maximumLength,""!==(null!==(c=n.pattern)&&void 0!==c?c:"")&&(e.pattern=n.pattern),s.querySelector(".control").append(e)}else{s.querySelector(".control").innerHTML=`
\n \n
`;const e=s.querySelector("select");e.required=n.isRequired;const c=n.occupancyTypeFieldValues.split("\n");for(const t of c){const c=document.createElement("option");c.value=t,c.textContent=t,e.append(c)}}e.append(s)}e.insertAdjacentHTML("beforeend",``)}):e.innerHTML=`
\n

Select the ${n.escapedAliases.occupancy} type to load the available fields.

\n
`})}else{const e=i.value;i.addEventListener("change",()=>{i.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${n.escapedAliases.occupancy} type?\n\n This change affects the additional fields associated with this record, and may also affect the available fees.`,contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{s=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{i.value=e}}})})}const d=document.querySelector("#lotOccupancy--lotName");let p;function m(e){const t=Number.parseInt(e.currentTarget.closest("tr").dataset.lotOccupantIndex,10),c=p.find(e=>e.lotOccupantIndex===t);let o,s;function l(e){e.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",o,e=>{var t;e.success?(p=e.lotOccupancyOccupants,s(),v()):bulmaJS.alert({title:"Error Updating "+n.escapedAliases.Occupant,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=a,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=t.toString();const o=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");let s=!1;for(const e of exports.lotOccupantTypes){const t=document.createElement("option");t.value=e.lotOccupantTypeId.toString(),t.textContent=e.lotOccupantType,e.lotOccupantTypeId===c.lotOccupantTypeId&&(t.selected=!0,s=!0),o.append(t)}if(!s){const e=document.createElement("option");e.value=c.lotOccupantTypeId.toString(),e.textContent=c.lotOccupantType,e.selected=!0,o.append(e)}e.querySelector("#lotOccupancyOccupantEdit--occupantName").value=c.occupantName,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress1").value=c.occupantAddress1,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress2").value=c.occupantAddress2,e.querySelector("#lotOccupancyOccupantEdit--occupantCity").value=c.occupantCity,e.querySelector("#lotOccupancyOccupantEdit--occupantProvince").value=c.occupantProvince,e.querySelector("#lotOccupancyOccupantEdit--occupantPostalCode").value=c.occupantPostalCode,e.querySelector("#lotOccupancyOccupantEdit--occupantPhoneNumber").value=c.occupantPhoneNumber,e.querySelector("#lotOccupancyOccupantEdit--occupantEmailAddress").value=c.occupantEmailAddress,e.querySelector("#lotOccupancyOccupantEdit--occupantComment").value=c.occupantComment},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId").focus(),(o=e.querySelector("form")).addEventListener("submit",l),s=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function y(e){const t=e.currentTarget.closest("tr").dataset.lotOccupantIndex;bulmaJS.confirm({title:`Remove ${n.escapedAliases.Occupant}?`,message:`Are you sure you want to remove this ${n.escapedAliases.occupant}?`,okButton:{text:"Yes, Remove "+n.escapedAliases.Occupant,callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:a,lotOccupantIndex:t},e=>{var t;e.success?(p=e.lotOccupancyOccupants,v()):bulmaJS.alert({title:"Error Removing "+n.escapedAliases.Occupant,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function v(){var e,t,c,a,o,s,l,r;const u=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(u),0===p.length)return void(u.innerHTML=`
\n

There are no ${n.escapedAliases.occupants} associated with this record.

\n
`);const i=document.createElement("table");i.className="table is-fullwidth is-striped is-hoverable",i.innerHTML=`\n ${n.escapedAliases.Occupant}\n Address\n Other Contact\n Comment\n Options\n \n `;for(const n of p){const u=document.createElement("tr");u.dataset.lotOccupantIndex=n.lotOccupantIndex.toString(),u.innerHTML=""+cityssm.escapeHTML(""===(null!==(e=n.occupantName)&&void 0!==e?e:"")?"(No Name)":n.occupantName)+'
'+cityssm.escapeHTML(n.lotOccupantType)+""+(""===(null!==(t=n.occupantAddress1)&&void 0!==t?t:"")?"":cityssm.escapeHTML(n.occupantAddress1)+"
")+(""===(null!==(c=n.occupantAddress2)&&void 0!==c?c:"")?"":cityssm.escapeHTML(n.occupantAddress2)+"
")+(""===(null!==(a=n.occupantCity)&&void 0!==a?a:"")?"":cityssm.escapeHTML(n.occupantCity)+", ")+cityssm.escapeHTML(null!==(o=n.occupantProvince)&&void 0!==o?o:"")+"
"+cityssm.escapeHTML(null!==(s=n.occupantPostalCode)&&void 0!==s?s:"")+""+(""===(null!==(l=n.occupantPhoneNumber)&&void 0!==l?l:"")?"":cityssm.escapeHTML(n.occupantPhoneNumber)+"
")+(""===(null!==(r=n.occupantEmailAddress)&&void 0!==r?r:"")?"":cityssm.escapeHTML(n.occupantEmailAddress))+""+cityssm.escapeHTML(n.occupantComment)+'
',u.querySelector(".button--edit").addEventListener("click",m),u.querySelector(".button--delete").addEventListener("click",y),i.querySelector("tbody").append(u)}u.append(i)}if(d.addEventListener("click",e=>{const t=e.currentTarget.value;let c,a,o,s;function l(e,t){document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,n.setUnsavedChanges(),c()}function r(e){e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)}function u(){s.innerHTML=n.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(n.urlPrefix+"/lots/doSearchLots",o,e=>{var t,c;if(0===e.count)return void(s.innerHTML='
\n

No results.

\n
');const n=document.createElement("div");n.className="panel";for(const a of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=a.lotId.toString(),e.dataset.lotName=a.lotName,e.innerHTML='
'+cityssm.escapeHTML(null!==(t=a.lotName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=a.mapName)&&void 0!==c?c:"")+'
'+cityssm.escapeHTML(a.lotStatus)+'
'+(a.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",r),n.append(e)}s.innerHTML="",s.append(n)})}function i(e){e.preventDefault();const t=a.querySelector("#lotCreate--lotName").value;cityssm.postJSON(n.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{var c;e.success?l(e.lotId,t):bulmaJS.alert({title:`Error Creating ${n.escapedAliases.Lot}`,message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{n.populateAliases(e)},onshown:(e,n)=>{var l;bulmaJS.toggleHtmlClipped(),a=e,c=n,bulmaJS.init(e);const r=e.querySelector("#lotSelect--lotName");""!==document.querySelector("#lotOccupancy--lotId").value&&(r.value=t),r.focus(),r.addEventListener("change",u);const d=e.querySelector("#lotSelect--occupancyStatus");if(d.addEventListener("change",u),""!==t&&(d.value=""),o=e.querySelector("#form--lotSelect"),s=e.querySelector("#resultsContainer--lotSelect"),o.addEventListener("submit",e=>{e.preventDefault()}),u(),exports.lotNamePattern){const t=exports.lotNamePattern;e.querySelector("#lotCreate--lotName").pattern=t.source}const p=e.querySelector("#lotCreate--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,p.append(t)}const m=e.querySelector("#lotCreate--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,m.append(t)}const y=e.querySelector("#lotCreate--mapId");for(const e of exports.maps){const t=document.createElement("option");t.value=e.mapId.toString(),t.textContent=""===(null!==(l=e.mapName)&&void 0!==l?l:"")?"(No Name)":e.mapName,y.append(t)}e.querySelector("#form--lotCreate").addEventListener("submit",i)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),document.querySelector(".is-lot-view-button").addEventListener("click",()=>{const e=document.querySelector("#lotOccupancy--lotId").value;""===e?bulmaJS.alert({message:`No ${n.escapedAliases.lot} selected.`,contextualColorName:"info"}):window.open(n.urlPrefix+"/lots/"+e)}),document.querySelector(".is-clear-lot-button").addEventListener("click",()=>{d.disabled?bulmaJS.alert({message:"You need to unlock the field before clearing it.",contextualColorName:"info"}):(d.value=`(No ${n.escapedAliases.Lot})`,document.querySelector("#lotOccupancy--lotId").value="",n.setUnsavedChanges())}),n.initializeDatePickers(l),document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change",()=>{const e=document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;e.min=document.querySelector("#lotOccupancy--occupancyStartDateString").value,e.refresh()}),n.initializeUnlockFieldButtons(l),Object.defineProperty(exports,"__esModule",{value:!0}),o){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=l.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else p=exports.lotOccupancyOccupants,delete exports.lotOccupancyOccupants,document.querySelector("#button--addOccupant").addEventListener("click",()=>{let e,t,c,o;function s(t){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",t,t=>{var c;t.success?(p=t.lotOccupancyOccupants,e(),v()):bulmaJS.alert({title:`Error Adding ${n.escapedAliases.Occupant}`,message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}function l(e){e.preventDefault(),s(t)}let r=[];function u(e){e.preventDefault();const t=e.currentTarget,c=r[Number.parseInt(t.dataset.index,10)],o=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===o?bulmaJS.alert({title:`No ${n.escapedAliases.Occupant} Type Selected`,message:`Select a type to apply to the newly added ${n.escapedAliases.occupant}.`,contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(o,10),c.lotOccupancyId=Number.parseInt(a,10),s(c))}function i(e){e.preventDefault(),""!==c.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(o.innerHTML=n.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doSearchPastOccupants",c,e=>{var t,c,n,a,s,l,i,d;r=e.occupants;const p=document.createElement("div");p.className="panel";for(const[e,o]of r.entries()){const r=document.createElement("a");r.className="panel-block is-block",r.dataset.index=e.toString(),r.innerHTML=""+cityssm.escapeHTML(null!==(t=o.occupantName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=o.occupantAddress1)&&void 0!==c?c:"")+"
"+(""===(null!==(n=o.occupantAddress2)&&void 0!==n?n:"")?"":cityssm.escapeHTML(o.occupantAddress2)+"
")+cityssm.escapeHTML(null!==(a=o.occupantCity)&&void 0!==a?a:"")+", "+cityssm.escapeHTML(null!==(s=o.occupantProvince)&&void 0!==s?s:"")+"
"+cityssm.escapeHTML(null!==(l=o.occupantPostalCode)&&void 0!==l?l:"")+'
'+(""===(null!==(i=o.occupantPhoneNumber)&&void 0!==i?i:"")?"":cityssm.escapeHTML(o.occupantPhoneNumber)+"
")+cityssm.escapeHTML(null!==(d=o.occupantEmailAddress)&&void 0!==d?d:"")+"
",r.addEventListener("click",u),p.append(r)}o.innerHTML="",o.append(p)})):o.innerHTML='

Enter a partial name or address in the search field above.

'}cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=a;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const n=document.createElement("option");n.value=e.lotOccupantTypeId.toString(),n.textContent=e.lotOccupantType,t.append(n),c.append(n.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(n,a)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(n),n.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(t=n.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),o=n.querySelector("#lotOccupancyOccupantCopy--searchResults"),(c=n.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),n.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",i),e=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),v();if(!o){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;function O(t){const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),o=e.find(e=>e.lotOccupancyCommentId===c);let s,l;function r(t){t.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",s,t=>{var c;t.success?(e=t.lotOccupancyComments,l(),f()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=a,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=c.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=o.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=o.lotOccupancyCommentDateString;const s=cityssm.dateToString(new Date);t.max=o.lotOccupancyCommentDateString<=s?s:o.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=o.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),n.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(s=e.querySelector("form")).addEventListener("submit",r),l=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function g(t){const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:a,lotOccupancyCommentId:c},t=>{var c;t.success?(e=t.lotOccupancyComments,f()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function f(){var t,c,n;const a=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(a.innerHTML='

There are no comments associated with this record.

');const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML='CommentorComment DateCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=a.lotOccupancyCommentId.toString(),e.innerHTML=""+cityssm.escapeHTML(null!==(t=a.recordCreate_userName)&&void 0!==t?t:"")+""+(null!==(c=a.lotOccupancyCommentDateString)&&void 0!==c?c:"")+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(null!==(n=a.lotOccupancyComment)&&void 0!==n?n:"")+'
',e.querySelector(".button--edit").addEventListener("click",O),e.querySelector(".button--delete").addEventListener("click",g),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)}delete exports.lotOccupancyComments,document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;function o(a){a.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{var n;t.success?(e=t.lotOccupancyComments,c(),f()):bulmaJS.alert({title:"Error Adding Comment",message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=a},onshown:(e,n)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",o),c=n},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),f(),Object.defineProperty(exports,"__esModule",{value:!0});let t=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const c=document.querySelector("#container--lotOccupancyFees");function h(){let e=0;for(const c of t)e+=(c.feeAmount+c.taxAmount)*c.quantity;return e}function S(e){const c=e.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:a,feeId:c},e=>{var c;e.success?(t=e.lotOccupancyFees,b()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}}})}function b(){var e,n;if(0===t.length)return c.innerHTML='
\n

There are no fees associated with this record.

\n
',void T();c.innerHTML='\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FeeUnit Cost×QuantityequalsTotalOptions
Subtotal
Tax
Grand Total
';let a=0,o=0;for(const s of t){const t=document.createElement("tr");t.className="container--lotOccupancyFee",t.dataset.feeId=s.feeId.toString(),t.dataset.includeQuantity=null!==(e=s.includeQuantity)&&void 0!==e&&e?"1":"0",t.innerHTML=''+cityssm.escapeHTML(null!==(n=s.feeName)&&void 0!==n?n:"")+""+(1===s.quantity?"":'$'+s.feeAmount.toFixed(2)+'×'+s.quantity+"=")+'$'+(s.feeAmount*s.quantity).toFixed(2)+'',t.querySelector("button").addEventListener("click",S),c.querySelector("tbody").append(t),a+=s.feeAmount*s.quantity,o+=s.taxAmount*s.quantity}c.querySelector("#lotOccupancyFees--feeAmountTotal").textContent="$"+a.toFixed(2),c.querySelector("#lotOccupancyFees--taxAmountTotal").textContent="$"+o.toFixed(2),c.querySelector("#lotOccupancyFees--grandTotal").textContent="$"+(a+o).toFixed(2),T()}document.querySelector("#button--addFee").addEventListener("click",()=>{if(n.hasUnsavedChanges())return void bulmaJS.alert({message:"Please save all unsaved changes before adding fees.",contextualColorName:"warning"});let e,o,s;function l(e,c=1){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyFee",{lotOccupancyId:a,feeId:e,quantity:c},e=>{var c;e.success?(t=e.lotOccupancyFees,b(),u()):bulmaJS.alert({title:"Error Adding Fee",message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}function r(t){var c;t.preventDefault();const n=Number.parseInt(t.currentTarget.dataset.feeId,10),a=Number.parseInt(t.currentTarget.dataset.feeCategoryId,10),o=e.find(e=>e.feeCategoryId===a).fees.find(e=>e.feeId===n);null!==(c=o.includeQuantity)&&void 0!==c&&c?function(e){let t,c;function n(n){n.preventDefault(),l(e.feeId,t.value),c()}cityssm.openHtmlModal("lotOccupancy-setFeeQuantity",{onshow(t){t.querySelector("#lotOccupancyFeeQuantity--quantityUnit").textContent=e.quantityUnit},onshown(e,a){c=a,t=e.querySelector("#lotOccupancyFeeQuantity--quantity"),e.querySelector("form").addEventListener("submit",n)}})}(o):l(n)}function u(){var t,n,a,l,u;const i=o.value.trim().toLowerCase().split(" ");s.innerHTML="";for(const o of e){const e=document.createElement("div");e.className="container--feeCategory",e.dataset.feeCategoryId=o.feeCategoryId.toString(),e.innerHTML='

'+cityssm.escapeHTML(null!==(t=o.feeCategory)&&void 0!==t?t:"")+'

';let d=!1;for(const t of o.fees){if(null!==c.querySelector(`.container--lotOccupancyFee[data-fee-id='${t.feeId}'][data-include-quantity='0']`))continue;let s=!0;const p=((null!==(n=t.feeName)&&void 0!==n?n:"")+" "+(null!==(a=t.feeDescription)&&void 0!==a?a:"")).toLowerCase();for(const e of i)if(!p.includes(e)){s=!1;break}if(!s)continue;d=!0;const m=document.createElement("a");m.className="panel-block is-block container--fee",m.dataset.feeId=t.feeId.toString(),m.dataset.feeCategoryId=o.feeCategoryId.toString(),m.href="#",m.innerHTML=""+cityssm.escapeHTML(null!==(l=t.feeName)&&void 0!==l?l:"")+"
"+cityssm.escapeHTML(null!==(u=t.feeDescription)&&void 0!==u?u:"").replace(/\n/g,"
")+"
",m.addEventListener("click",r),e.querySelector(".panel").append(m)}d&&s.append(e)}}cityssm.openHtmlModal("lotOccupancy-addFee",{onshow(t){o=t.querySelector("#feeSelect--feeName"),s=t.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:a},t=>{e=t.feeCategories,o.disabled=!1,o.addEventListener("keyup",u),o.focus(),u()})},onshown(){bulmaJS.toggleHtmlClipped()},onhidden(){b()},onremoved(){bulmaJS.toggleHtmlClipped()}})});let o=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const s=document.querySelector("#container--lotOccupancyTransactions");function C(e){const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:a,transactionIndex:t},e=>{var t;e.success?(o=e.lotOccupancyTransactions,T()):bulmaJS.alert({title:"Error Deleting Transaction",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function T(){var e,c,a;if(0===o.length)return void(s.innerHTML='

There are no transactions associated with this record.

');s.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n
Date${n.escapedAliases.ExternalReceiptNumber}AmountOptions
Transaction Total
`;let l=0;for(const t of o){l+=t.transactionAmount;const n=document.createElement("tr");n.className="container--lotOccupancyTransaction",n.dataset.transactionIndex=t.transactionIndex.toString(),n.innerHTML=""+(null!==(e=t.transactionDateString)&&void 0!==e?e:"")+""+cityssm.escapeHTML(null!==(c=t.externalReceiptNumber)&&void 0!==c?c:"")+"
"+cityssm.escapeHTML(null!==(a=t.transactionNote)&&void 0!==a?a:"")+'$'+t.transactionAmount.toFixed(2)+'',n.querySelector("button").addEventListener("click",C),s.querySelector("tbody").append(n)}s.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+l.toFixed(2);const r=h();r>l&&s.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(r-l).toFixed(2)+"
")}document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;function t(t){t.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{var c;t.success?(o=t.lotOccupancyTransactions,e(),T()):bulmaJS.confirm({title:"Error Adding Transaction",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow(e){n.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=a.toString();const t=h(),c=function(){let e=0;for(const t of o)e+=t.transactionAmount;return e}(),s=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");s.min=(-1*c).toFixed(2),s.max=Math.max(t-c,0).toFixed(2),s.value=Math.max(t-c,0).toFixed(2)},onshown(c,n){bulmaJS.toggleHtmlClipped(),e=n,c.querySelector("form").addEventListener("submit",t)},onremoved(){bulmaJS.toggleHtmlClipped()}})}),b()}})(); \ No newline at end of file diff --git a/public/javascripts/main.min.js b/public/javascripts/main.min.js index df37c90b..d82b3de9 100644 --- a/public/javascripts/main.min.js +++ b/public/javascripts/main.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{let e=!1;function t(){return e}function s(e){const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()}const a={type:"date",dateFormat:"yyyy-MM-dd",showFooter:!1,color:"info",displayMode:"dialog"};const o=Object.freeze({Map:cityssm.escapeHTML(exports.aliases.map),map:cityssm.escapeHTML(exports.aliases.map.toLowerCase()),Maps:cityssm.escapeHTML(exports.aliases.maps),maps:cityssm.escapeHTML(exports.aliases.maps.toLowerCase()),Lot:cityssm.escapeHTML(exports.aliases.lot),lot:cityssm.escapeHTML(exports.aliases.lot.toLowerCase()),Lots:cityssm.escapeHTML(exports.aliases.lots),lots:cityssm.escapeHTML(exports.aliases.lots.toLowerCase()),Occupancy:cityssm.escapeHTML(exports.aliases.occupancy),occupancy:cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase()),Occupancies:cityssm.escapeHTML(exports.aliases.occupancies),occupancies:cityssm.escapeHTML(exports.aliases.occupancies.toLowerCase()),Occupant:cityssm.escapeHTML(exports.aliases.occupant),occupant:cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()),Occupants:cityssm.escapeHTML(exports.aliases.occupants),occupants:cityssm.escapeHTML(exports.aliases.occupants.toLowerCase()),ExternalReceiptNumber:cityssm.escapeHTML(exports.aliases.externalReceiptNumber),externalReceiptNumber:cityssm.escapeHTML(exports.aliases.externalReceiptNumber.toLowerCase()),OccupancyStartDate:cityssm.escapeHTML(exports.aliases.occupancyStartDate),occupancyStartDate:cityssm.escapeHTML(exports.aliases.occupancyStartDate.toLowerCase()),WorkOrderOpenDate:cityssm.escapeHTML(exports.aliases.workOrderOpenDate),workOrderOpenDate:cityssm.escapeHTML(exports.aliases.workOrderOpenDate.toLowerCase()),WorkOrderCloseDate:cityssm.escapeHTML(exports.aliases.workOrderCloseDate),workOrderCloseDate:cityssm.escapeHTML(exports.aliases.workOrderCloseDate.toLowerCase())}),c=["red","green","orange","blue","pink","yellow","purple"],n=["bright","light","dark"];const i=document.querySelector("main").dataset.urlPrefix;function r(e,t,s,a){return i+"/"+e+(t?"/"+t:"")+(t&&s?"/edit":"")+(a?"/?t="+Date.now():"")}const l={urlPrefix:i,apiKey:document.querySelector("main").dataset.apiKey,highlightMap:function(e,t,s){let a,o=t;for(;!(a=e.querySelector("#"+o))&&o.includes("-");)o=o.slice(0,Math.max(0,o.lastIndexOf("-")));if(a){a.style.fill="",a.classList.add("highlight","is-"+s);const e=a.querySelectorAll("path");for(const t of e)t.style.fill=""}},initializeUnlockFieldButtons:function(e){const t=e.querySelectorAll(".is-unlock-field-button");for(const e of t)e.addEventListener("click",s)},initializeDatePickers:function(e){const t=e.querySelectorAll("input[type='date']");for(const s of t){const t=Object.assign({},a);s.required&&(t.showClearButton=!1),s.min&&(t.minDate=cityssm.dateStringToDate(s.min)),s.max&&(t.maxDate=cityssm.dateStringToDate(s.max));const o=exports.bulmaCalendar.attach(s,t)[0];o.on("save",()=>{s.value=o.value(),s.dispatchEvent(new Event("change"))}),o.on("show",()=>{document.querySelector("html").classList.add("is-clipped")}),o.on("hide",()=>{bulmaJS.toggleHtmlClipped()});const c=e.querySelector("#"+o._id),n=c.querySelectorAll(".datepicker-nav button.is-text");for(const e of n)e.classList.add("is-"+a.color),e.classList.remove("is-text");const i=c.querySelector(".datetimepicker-clear-button");i&&(s.required?i.remove():(i.dataset.tooltip="Clear",i.ariaLabel="Clear",i.innerHTML=''));const r=document.querySelector("label[for='"+s.id+"']");r&&(c.querySelector(".datetimepicker-dummy-input").ariaLabel=r.textContent)}},populateAliases:function(e){const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Map":e.textContent=exports.aliases.map;break;case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},escapedAliases:o,getRandomColor:function(e){let t=e;return t.length<2&&(t+="a1"),exports.randomColor({seed:t+t,hue:c[t.codePointAt(t.length-1)%c.length],luminosity:n[t.codePointAt(t.length-2)%n.length]})},setUnsavedChanges:function(){t()||(e=!0,cityssm.enableNavBlocker())},clearUnsavedChanges:function(){e=!1,cityssm.disableNavBlocker()},hasUnsavedChanges:t,getMoveUpDownButtonFieldHTML:function(e,t,s=!0){return`
\n
\n \n \n \n
\n
\n \n \n \n
\n
`},getLoadingParagraphHTML:function(e="Loading..."){return`

\n
\n ${cityssm.escapeHTML(e)}\n

`},getSearchResultsPagerHTML:function(e,t,s){return'
Displaying '+(t+1).toString()+" to "+Math.min(s,e+t)+" of "+s+'
'+(t>0?'
':"")+(e+t
':"")+"
"},getMapURL:function(e="",t=!1,s=!1){return r("maps",e,t,s)},getLotURL:function(e="",t=!1,s=!1){return r("lots",e,t,s)},getLotOccupancyURL:function(e="",t=!1,s=!1){return r("lotOccupancies",e,t,s)},getWorkOrderURL:function(e="",t=!1,s=!1){return r("workOrders",e,t,s)}};exports.los=l})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{let e=!1;function t(){return e}function s(e){const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()}const a={type:"date",dateFormat:"yyyy-MM-dd",showFooter:!1,color:"info",displayMode:"dialog"};const o=Object.freeze({Map:cityssm.escapeHTML(exports.aliases.map),map:cityssm.escapeHTML(exports.aliases.map.toLowerCase()),Maps:cityssm.escapeHTML(exports.aliases.maps),maps:cityssm.escapeHTML(exports.aliases.maps.toLowerCase()),Lot:cityssm.escapeHTML(exports.aliases.lot),lot:cityssm.escapeHTML(exports.aliases.lot.toLowerCase()),Lots:cityssm.escapeHTML(exports.aliases.lots),lots:cityssm.escapeHTML(exports.aliases.lots.toLowerCase()),Occupancy:cityssm.escapeHTML(exports.aliases.occupancy),occupancy:cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase()),Occupancies:cityssm.escapeHTML(exports.aliases.occupancies),occupancies:cityssm.escapeHTML(exports.aliases.occupancies.toLowerCase()),Occupant:cityssm.escapeHTML(exports.aliases.occupant),occupant:cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()),Occupants:cityssm.escapeHTML(exports.aliases.occupants),occupants:cityssm.escapeHTML(exports.aliases.occupants.toLowerCase()),ExternalReceiptNumber:cityssm.escapeHTML(exports.aliases.externalReceiptNumber),externalReceiptNumber:cityssm.escapeHTML(exports.aliases.externalReceiptNumber.toLowerCase()),OccupancyStartDate:cityssm.escapeHTML(exports.aliases.occupancyStartDate),occupancyStartDate:cityssm.escapeHTML(exports.aliases.occupancyStartDate.toLowerCase()),WorkOrderOpenDate:cityssm.escapeHTML(exports.aliases.workOrderOpenDate),workOrderOpenDate:cityssm.escapeHTML(exports.aliases.workOrderOpenDate.toLowerCase()),WorkOrderCloseDate:cityssm.escapeHTML(exports.aliases.workOrderCloseDate),workOrderCloseDate:cityssm.escapeHTML(exports.aliases.workOrderCloseDate.toLowerCase())}),c=["red","green","orange","blue","pink","yellow","purple"],n=["bright","light","dark"];const i=document.querySelector("main").dataset.urlPrefix;function r(e,t,s,a){return i+"/"+e+(t?"/"+t.toString():"")+(t&&s?"/edit":"")+(a?"/?t="+Date.now().toString():"")}const l={urlPrefix:i,apiKey:document.querySelector("main").dataset.apiKey,highlightMap:function(e,t,s){let a,o=t;for(;null===(a=e.querySelector("#"+o))&&o.includes("-");)o=o.slice(0,Math.max(0,o.lastIndexOf("-")));if(null!==a){a.style.fill="",a.classList.add("highlight","is-"+s);const e=a.querySelectorAll("path");for(const t of e)t.style.fill=""}},initializeUnlockFieldButtons:function(e){const t=e.querySelectorAll(".is-unlock-field-button");for(const e of t)e.addEventListener("click",s)},initializeDatePickers:function(e){var t;const s=e.querySelectorAll("input[type='date']");for(const o of s){const s=Object.assign({},a);o.required&&(s.showClearButton=!1),""!==o.min&&(s.minDate=cityssm.dateStringToDate(o.min)),""!==o.max&&(s.maxDate=cityssm.dateStringToDate(o.max));const c=exports.bulmaCalendar.attach(o,s)[0];c.on("save",()=>{o.value=c.value(),o.dispatchEvent(new Event("change"))}),c.on("show",()=>{document.querySelector("html").classList.add("is-clipped")}),c.on("hide",()=>{bulmaJS.toggleHtmlClipped()});const n=e.querySelector("#"+c._id),i=n.querySelectorAll(".datepicker-nav button.is-text");for(const e of i)e.classList.add(`is-${null!==(t=a.color)&&void 0!==t?t:""}`),e.classList.remove("is-text");const r=n.querySelector(".datetimepicker-clear-button");null!==r&&(o.required?r.remove():(r.dataset.tooltip="Clear",r.ariaLabel="Clear",r.innerHTML=''));const l=document.querySelector("label[for='"+o.id+"']");null!==l&&(n.querySelector(".datetimepicker-dummy-input").ariaLabel=l.textContent)}},populateAliases:function(e){const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Map":e.textContent=exports.aliases.map;break;case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},escapedAliases:o,getRandomColor:function(e){let t=e;return t.length<2&&(t+="a1"),exports.randomColor({seed:t+t,hue:c[t.codePointAt(t.length-1)%c.length],luminosity:n[t.codePointAt(t.length-2)%n.length]})},setUnsavedChanges:function(){t()||(e=!0,cityssm.enableNavBlocker())},clearUnsavedChanges:function(){e=!1,cityssm.disableNavBlocker()},hasUnsavedChanges:t,getMoveUpDownButtonFieldHTML:function(e,t,s=!0){return`
\n
\n \n \n \n
\n
\n \n \n \n
\n
`},getLoadingParagraphHTML:function(e="Loading..."){return`

\n
\n ${cityssm.escapeHTML(e)}\n

`},getSearchResultsPagerHTML:function(e,t,s){return'
Displaying '+(t+1).toString()+" to "+Math.min(s,e+t)+" of "+s+'
'+(t>0?'
':"")+(e+t
':"")+"
"},getMapURL:function(e="",t=!1,s=!1){return r("maps",e,t,s)},getLotURL:function(e="",t=!1,s=!1){return r("lots",e,t,s)},getLotOccupancyURL:function(e="",t=!1,s=!1){return r("lotOccupancies",e,t,s)},getWorkOrderURL:function(e="",t=!1,s=!1){return r("workOrders",e,t,s)}};exports.los=l})(); \ No newline at end of file diff --git a/public/javascripts/mapSearch.min.js b/public/javascripts/mapSearch.min.js index c11ab9c6..064e2ce8 100644 --- a/public/javascripts/mapSearch.min.js +++ b/public/javascripts/mapSearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,a=exports.maps,s=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function r(){var r,i,d,n,o,c,p,l;t.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Maps}...`);let m=0;const h=document.createElement("tbody"),u=s.value.trim().toLowerCase().split(" ");for(const s of a){const a=`${null!==(r=s.mapName)&&void 0!==r?r:""} ${null!==(i=s.mapDescription)&&void 0!==i?i:""} ${null!==(d=s.mapAddress1)&&void 0!==d?d:""} ${null!==(n=s.mapAddress2)&&void 0!==n?n:""}`.toLowerCase();let t=!0;for(const e of u)if(!a.includes(e)){t=!1;break}t&&(m+=1,h.insertAdjacentHTML("beforeend",''+cityssm.escapeHTML(""===s.mapName?"(No Name)":s.mapName)+'
'+cityssm.escapeHTML(null!==(o=s.mapDescription)&&void 0!==o?o:"")+""+(s.mapAddress1?cityssm.escapeHTML(s.mapAddress1)+"
":"")+(s.mapAddress2?cityssm.escapeHTML(s.mapAddress2)+"
":"")+(s.mapCity||s.mapProvince?cityssm.escapeHTML(null!==(c=s.mapCity)&&void 0!==c?c:"")+", "+cityssm.escapeHTML(null!==(p=s.mapProvince)&&void 0!==p?p:"")+"
":"")+(s.mapPostalCode?cityssm.escapeHTML(s.mapPostalCode):"")+""+cityssm.escapeHTML(null!==(l=s.mapPhoneNumber)&&void 0!==l?l:"")+''+(s.mapLatitude&&s.mapLongitude?'':"")+''+(s.mapSVG?'':"")+""+`\n ${s.lotCount}\n `+""))}if(t.innerHTML="",0===m)t.innerHTML=`
\n

There are no ${e.escapedAliases.maps} that meet the search criteria.

\n
`;else{const a=document.createElement("table");a.className="table is-fullwidth is-striped is-hoverable has-sticky-header",a.innerHTML=`\n ${e.escapedAliases.Map}\n Address\n Phone Number\n Coordinates\n Image\n ${e.escapedAliases.Lot} Count\n `,a.append(h),t.append(a)}}s.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,a=exports.maps,s=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function i(){var i,r,d,n,o,l,c,p,m,h,u,L;t.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Maps}...`);let v=0;const f=document.createElement("tbody"),b=s.value.trim().toLowerCase().split(" ");for(const s of a){const a=`${null!==(i=s.mapName)&&void 0!==i?i:""} ${null!==(r=s.mapDescription)&&void 0!==r?r:""} ${null!==(d=s.mapAddress1)&&void 0!==d?d:""} ${null!==(n=s.mapAddress2)&&void 0!==n?n:""}`.toLowerCase();let t=!0;for(const e of b)if(!a.includes(e)){t=!1;break}t&&(v+=1,f.insertAdjacentHTML("beforeend",''+cityssm.escapeHTML(""===s.mapName?"(No Name)":s.mapName)+'
'+cityssm.escapeHTML(null!==(o=s.mapDescription)&&void 0!==o?o:"")+""+(""===(null!==(l=s.mapAddress1)&&void 0!==l?l:"")?"":cityssm.escapeHTML(s.mapAddress1)+"
")+(""===(null!==(c=s.mapAddress2)&&void 0!==c?c:"")?"":cityssm.escapeHTML(s.mapAddress2)+"
")+(s.mapCity||s.mapProvince?cityssm.escapeHTML(null!==(p=s.mapCity)&&void 0!==p?p:"")+", "+cityssm.escapeHTML(null!==(m=s.mapProvince)&&void 0!==m?m:"")+"
":"")+(""===(null!==(h=s.mapPostalCode)&&void 0!==h?h:"")?"":cityssm.escapeHTML(s.mapPostalCode))+""+cityssm.escapeHTML(null!==(u=s.mapPhoneNumber)&&void 0!==u?u:"")+''+(s.mapLatitude&&s.mapLongitude?'':"")+''+(""===(null!==(L=s.mapSVG)&&void 0!==L?L:"")?"":'')+""+`\n ${s.lotCount}\n `+""))}if(t.innerHTML="",0===v)t.innerHTML=`
\n

There are no ${e.escapedAliases.maps} that meet the search criteria.

\n
`;else{const a=document.createElement("table");a.className="table is-fullwidth is-striped is-hoverable has-sticky-header",a.innerHTML=`\n ${e.escapedAliases.Map}\n Address\n Phone Number\n Coordinates\n Image\n ${e.escapedAliases.Lot} Count\n `,a.append(f),t.append(a)}}s.addEventListener("keyup",i),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),i()}),i()})(); \ No newline at end of file diff --git a/public/javascripts/mapView.min.js b/public/javascripts/mapView.min.js index 97f43ab7..0e422da6 100644 --- a/public/javascripts/mapView.min.js +++ b/public/javascripts/mapView.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("#map--leaflet");if(e){const t=[Number.parseFloat(e.dataset.mapLatitude),Number.parseFloat(e.dataset.mapLongitude)],a=L.map(e);a.setView(t,15),L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{maxZoom:19,attribution:"© OpenStreetMap"}).addTo(a),L.marker(t).addTo(a)}})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("#map--leaflet");if(null!==e){const t=[Number.parseFloat(e.dataset.mapLatitude),Number.parseFloat(e.dataset.mapLongitude)],a=L.map(e);a.setView(t,15),L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{maxZoom:19,attribution:"© OpenStreetMap"}).addTo(a),L.marker(t).addTo(a)}})(); \ No newline at end of file diff --git a/public/javascripts/workOrderView.min.js b/public/javascripts/workOrderView.min.js index 72643db9..05fadbc8 100644 --- a/public/javascripts/workOrderView.min.js +++ b/public/javascripts/workOrderView.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,r=document.querySelector("#button--reopenWorkOrder");if(r){const o=r.dataset.workOrderId;r.addEventListener("click",()=>{bulmaJS.confirm({title:"Reopen Work Order",message:"Are you sure you want to remove the close date from this work order and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Work Order",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/workOrders/doReopenWorkOrder",{workOrderId:o},r=>{var t;r.success?window.location.href=e.getWorkOrderURL(o,!0,!0):bulmaJS.alert({title:"Error Reopening Work Order",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})})}})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,r=document.querySelector("#button--reopenWorkOrder");if(null!==r){const o=r.dataset.workOrderId;r.addEventListener("click",()=>{bulmaJS.confirm({title:"Reopen Work Order",message:"Are you sure you want to remove the close date from this work order and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Work Order",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/workOrders/doReopenWorkOrder",{workOrderId:o},r=>{var t;r.success?window.location.href=e.getWorkOrderURL(o,!0,!0):bulmaJS.alert({title:"Error Reopening Work Order",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})})}})(); \ No newline at end of file