{"version":3,"sources":["typescript/App/Fixes/ChromeFixes.ts","typescript/App/Components/Check.ts","typescript/App/Components/CheckableDateBox.ts","typescript/App/Components/ConditionalFormControls.ts","typescript/App/Components/FormButtons.ts","typescript/App/Components/Lockable.ts","typescript/App/Components/UspsValidatedAddress.ts","typescript/App/Components/Voicemail.ts","typescript/App/Components/YesNoButton.ts","typescript/App/Interface/Navigation.ts","typescript/App/Interface/Notifications.ts","typescript/App/Interface/Sizing.ts","typescript/App/Input/ContentEditableDiv.ts","typescript/App/Input/InputTools.ts","typescript/App/Input/Masks.ts","typescript/App/Input/SelectTools.ts","typescript/App/Input/ValTools.ts","typescript/App/MaterialPro/Init.ts","typescript/App/Persistence/AjaxSave.ts","typescript/App/Persistence/ContentEditableDivAjaxSave.ts","typescript/App/System/DataAttributeTools.ts","typescript/App/App.ts","typescript/App/Persistence/NormalizeCheckboxValues.ts","typescript/App/System/Dictionary.ts","typescript/App/System/Parameters.ts","typescript/App/System/ScrollToHighlighted.ts","typescript/App/System/States.ts","typescript/App/Api/Users/UserAssignments.ts","typescript/App/Components/Actions/ActionTemplateFactory.ts","typescript/App/Components/Actions/ActionTemplatePicker.ts","typescript/App/Components/History/HistoryModal.ts","typescript/App/Components/History/HistoryTableFactory.ts","typescript/App/Components/Users/UserAssignmentTable.ts","typescript/App/Input/Tables/CheckboxRange.ts","typescript/App/Input/Tables/ContentEditableDivRange.ts","typescript/App/Input/Tables/InputTextRange.ts","typescript/App/Input/Tables/TableRangeSelection.ts","typescript/App/Api/SocialSecurity/HearingLocations/HearingLocationFactory.ts","typescript/App/Components/SocialSecurity/HearingLocations/HearingLocationPicker.ts","typescript/App/Api/SocialSecurity/Offices/Dds/DdsOfficeFactory.ts","typescript/App/Api/SocialSecurity/Offices/Field/FieldOfficeFactory.ts","typescript/App/Api/SocialSecurity/Offices/Oho/FieldOfficeFactory.ts","typescript/App/Components/SocialSecurity/Offices/Dds/DdsOfficePicker.ts","typescript/App/Components/SocialSecurity/Offices/Field/FieldOfficePicker.ts","typescript/App/Components/SocialSecurity/Offices/Oho/OhoOfficePicker.ts","typescript/App/System/Linking.ts"],"names":["ChromeFixes","Check","CheckableDateBox","ConditionalFormControls","FormButtons","Lockable","UspsValidatedAddress","ActionVoicemails","YesNoButton","Navigation","Notifications","Sizing","ContentEditableDiv","InputTools","Masks","SelectTools","ValTools","MaterialPro","AjaxSave","ContentEditableDivAjaxSave","DataAttributeTools","$","document","ready","construct","moment","tz","setDefault","Parameters","UserAssignmentTable","FieldOfficePicker","DdsOfficePicker","OhoOfficePicker","HearingLocationPicker","initDataApi","bsCustomFileInput","init","attr","tooltip","popover","getTextareaState","htmlElement","input","lineBreaks","jqueryElement","value","val","toString","maxLength","parseInt","valueLength","getNumberOfLineBreaks","length","newLines","match","textareaMaxLength","keypress","state","this","keyup","adjustedMaxLength","adjustedTrimmedValue","substring","trim","getTargetTable","element","data","closest","getCheckBoxes","table","find","click","event","target","newValue","is","prop","checkboxes","i","toggle","parent","parents","getParent","eq","getInput","inputType","getCurrentDateString","format","console","error","getNewValue","change","uncheckInputGroup","checkButton","next","hide","show","updateGraphics","triggerValue","collapse","parameters","split","submit","unlockAttributeName","addClass","readonlyChildren","removeAttr","userAddress1","userAddress2","userZip","uspsAddress1","uspsAddress2","uspsCity","uspsState","uspsZip5","uspsZip4","addressElementKeyDowned","which","addressElementChanged","preventDefault","blur","address1","address2","zip","validateUspsAddress","verifiedAddress","IsValid","Street","Street2","City","State","Zip5","Zip4","Warning","callback","requestData","ajax","JSON","stringify","contentType","dataType","type","timeout","success","addressElements","Construct","voicemailDocumentIdAttribute","DownloadRequest","documentId","DocumentID","onPlayButtonClicked","button","text","getrequestData","response","audio","children","DownloadUrl","htmlAudio","load","play","onDownloadUrlObtained","removeClass","onFailure","parentElementClass","buttonClicked","thisElement","yesButton","getParentElement","getYesButton","noButton","getNoButton","setValue","activeLiQuery","scrollIntoView","block","toastContainer","Create","message","title","duration","titleClasses","html","join","toast","delay","append","Success","undefined","ChangeSaved","outerTopbarHeight","OuterTopbarHeight","outerHeight","ContentTopPadding","onFormSubmit","each","index","updateBackingField","div","getBackingInput","onKeypress","getIfDivChanged","MakeReadOnly","MakeWritable","ToggleReadOnly","Enable","Disable","jquery","jMaskGlobals","maskElements","dataMaskAttr","dataMask","watchInterval","watchInputs","watchDataMask","byPassKeys","translation","0","pattern","1","9","optional","#","recursive","A","S","applyDataMask","selectNonBlankOptionIfOnlyOne","nonNullOption","valWithChange","selectDefaultOption","defaultOption","addBlankOption","autoSelect","newVal","jBody","toggleClass","timeoutIDsByColumn","columnIdAttribute","rowIdAttribute","valueAttribute","onElementChanged","hasClass","charAt","getValueComplete","updateDatabase","String","getRowId","getValue","dataParameter","window","getCallbackFunction","columnid","rowid","Date","lookupKey","existingTimeoutId","ItemOrNull","clearTimeout","Remove","timeoutId","setTimeout","columnId","longRequestTimerId","notifyLongRequest","payload","ColumnId","RowId","Value","notifyFailure","notifySuccess","complete","submitRequest","Add","DataForElementOrParents","Dictionary","originalValueAttribute","onDivChanged","currentValue","previousValue","expandoTextBoxes","el","key","ScrollToHighlighted","States","UserAssignments","actionTemplateModes","ActionTemplateFactory","ActionTemplatePicker","HistoryModal","HistoryTableFactory","CheckboxRange","ContentEditableDivRange","InputTextRange","TableRangeSelection","HearingLocationFactory","DdsOfficeFactory","FieldOfficeFactory","OhoOfficeFactory","items","count","prototype","ContainsKey","Item","hasOwnProperty","Count","Keys","keySet","push","Values","values","shiftWindow","scrollBy","location","hash","addEventListener","onhashchange","parameterName","setParameter","attribute","parameter","getParameter","name","results","RegExp","replace","exec","search","decodeURIComponent","url","href","re","test","separator","indexOf","documentElement","scrollTop","highlightedElements","getElementsByClassName","highlightedElement","scrollToY","getBoundingClientRect","bottom","screen","height","scrollTo","top","LinkTypes","UpdateAssignment","userID","departmentID","linkType","DepartmentID","UserID","LinkType","getActionTemplateByDepartment","departmentId","modes","onlyFaxReceivable","DepartmentId","Modes","OnlyFaxReceivable","departmentSelect","templateSelect","onDepartmentSelectChanged","empty","getSelectedModes","actionTemplateStubs","onActionTemplateListReceived","Option","forEach","actionTemplateStub","Name","Mode","Id","actionTemplateMode","actionTemplateModeStr","Object","map","Number","historyModal","historyModalBody","showModal","modal","showHistoryForColumn","rowId","GetByColumn","showHistoryForTable","tableId","GetByTable","linkTypeAttributeName","userIdAttributeName","departmentIdAttributeName","checkboxChanged","checkbox","Assigned","Supervising","setCertifiedChecked","handleCheckboxChecked","clickedCheckbox","selectedCells","getSelectedCells","td","handleContentEditableDivChanged","changedDiv","handleInputChanged","changedInput","selectedRowCssClass","FirstElement","SecondElement","handleSelectionInput","clickedTr","shiftKey","selectedRows","getSelectedRows","styleSelectedElements","getSelection","removeAllRanges","nextUntil","add","prevUntil","triggeringElement","tr","trs","columnIndex","result","log","GetCitiesByState","successCallback","failureCallback","param","ByStateCity","city","stateSelect","citySelect","locationSelect","stateSelectChanged","citySelectChanged","selectedState","selectedCity","clearOfficeCitySelect","clearOfficeSelect","cities","blank","fieldOffices","hearingLocation","Address","OhoOffice_RowID","FieldOffice_RowID","RowID","GetDdsOfficesByStateCity","GetFieldOfficesByStateCity","GetOhoOfficesByStateCity","officesSelect","ddsOffices","ddsOffice","fieldOffice","ohoOffices","ohoOffice"],"mappings":"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","file":"site.js","sourcesContent":["module ChromeFixes {\r\n interface ITextAreaState {\r\n jqueryElement: JQuery,\r\n value: string,\r\n maxLength: number,\r\n valueLength: number\r\n }\r\n\r\n export function construct() {\r\n //Chrome counts Windows carriage returns (\\r\\n) as a single characters when typing.\r\n //But during form validation it counts as 2.\r\n //So then you can enter more than the max number of characters and Chrome won't let you submit the form.\r\n //BUT EVEN WORSE IT WON'T GIVE ERROR MESSAGING FOR THIS ISSUE.\r\n const textareaMaxLength = $('textarea[maxlength]');\r\n\r\n textareaMaxLength.keypress(function () {\r\n const state = getTextareaState(this);\r\n\r\n if (state.valueLength >= state.maxLength) {\r\n return false;\r\n }\r\n });\r\n\r\n //Prevent pasting in characters above the effective limit but below flawed client side limit.\r\n textareaMaxLength.keyup(function () {\r\n const state = getTextareaState(this);\r\n\r\n if (state.valueLength > state.maxLength) {\r\n const lineBreaks = getNumberOfLineBreaks(state.value);\r\n const adjustedMaxLength = state.maxLength - lineBreaks;\r\n const adjustedValue = state.value.substring(0, adjustedMaxLength);\r\n const adjustedTrimmedValue = adjustedValue.trim();\r\n state.jqueryElement.val(adjustedTrimmedValue);\r\n }\r\n });\r\n }\r\n\r\n function getTextareaState(htmlElement: HTMLElement): ITextAreaState {\r\n const jqueryElement = $(htmlElement);\r\n const value = jqueryElement.val().toString();\r\n const maxLength = parseInt(jqueryElement.attr(\"maxlength\"));\r\n const valueLength = getRealTextAreaValueLength(value);\r\n return {\r\n jqueryElement: jqueryElement,\r\n value: value,\r\n maxLength: maxLength,\r\n valueLength: valueLength\r\n };\r\n }\r\n\r\n function getRealTextAreaValueLength(input: string) {\r\n const lineBreaks = getNumberOfLineBreaks(input);\r\n return input.length + lineBreaks;\r\n }\r\n\r\n function getNumberOfLineBreaks(input: string) {\r\n const newLines = input.match(/(\\r\\n|\\n|\\r)/g);\r\n if (newLines == null) {\r\n return 0;\r\n }\r\n return newLines.length;\r\n }\r\n}","module Check\r\n{\r\n\texport function construct()\r\n\t{\r\n\t\t$(\"[data-check=all]\").click((event) => {\r\n\t\t\tconst element = $(event.target);\r\n\t\t\tconst newValue = element.is(':checked');\r\n\t\t\tconst table = getTargetTable(element);\r\n\t\t\tconst checkboxes = getCheckBoxes(table);\r\n\t\t\tcheckboxes.prop(\"checked\", newValue);\r\n\t\t});\r\n\r\n\t\t$(\"[data-check=odd\").click((event) => {\r\n\t\t\tconst element = $(event.target);\r\n\t\t\tconst table = getTargetTable(element);\r\n\t\t\tconst checkboxes = getCheckBoxes(table);\r\n\t\t\tconst newValue = element.is(':checked');\r\n\r\n\t\t\tlet even = true;\r\n\t\t\tfor (let i = 0; i < checkboxes.length; i++)\r\n\t\t\t{\r\n\t\t\t\tif (even)\r\n\t\t\t\t{\r\n\t\t\t\t\t$(checkboxes[i]).prop(\"checked\", newValue);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t$(checkboxes[i]).prop(\"checked\", !newValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction getTargetTable(element: JQuery)\r\n\t{\r\n\t\tif (element.data(\"checktable\"))\r\n\t\t{\r\n\t\t\treturn $(element.data(\"checktable\"));\r\n\t\t}\r\n\t\treturn element.closest(\"table\");\r\n\t}\r\n\r\n\tfunction getCheckBoxes(table: JQuery)\r\n\t{\r\n\t\treturn table.find(\"input[type=checkbox]\");\r\n\t}\r\n}","module CheckableDateBox {\r\n\texport function construct() {\r\n\t\t$(\".checkable-date-box button\").click(toggle);\r\n\t}\r\n\r\n\tfunction toggle(): void {\r\n\t\tconst element = $(this);\r\n\t\tconst parent = getParent(element);\r\n\t\tconst input = getInput(element);\r\n\t\tconst newValue = getNewValue(input);\r\n\t\tinput.val(newValue);\r\n\t\tinput.change();//Not sure if needed.\r\n\t\tupdateGraphics(parent, newValue);\r\n\t}\r\n\r\n\tfunction updateGraphics(parent: JQuery, newValue: string): void {\r\n\t\tvar uncheckInputGroup = parent.find(\".input-group\").eq(0);\r\n\t\tvar checkButton = uncheckInputGroup.next();\r\n\t\tif (newValue === \"\") {\r\n\t\t\tuncheckInputGroup.hide();\r\n\t\t\tcheckButton.show();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tuncheckInputGroup.show();\r\n\t\t\tcheckButton.hide();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getNewValue(input: JQuery): string {\r\n\t\tif (input.val() === \"\") {\r\n\t\t\tconst inputType = input.prop(\"type\");\r\n\t\t\tif (inputType == \"date\") {\r\n\t\t\t\treturn getCurrentDateString();\r\n\t\t\t} else if (inputType == \"datetime-local\") {\r\n\t\t\t\treturn getCurrentDateTimeInputString();\r\n\t\t\t}\r\n\t\t\tconsole.error(`Invalid input type ${inputType}.`);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getInput(element: JQuery): JQuery {\r\n\t\treturn element.parents(\".checkable-date-box\").find(\"input\").eq(0);\r\n\t}\r\n\r\n\tfunction getCurrentDateString(): string {\r\n\t\treturn moment().format(\"YYYY-MM-DD\");\r\n\t}\r\n\r\n\tfunction getCurrentTimeString(): string {\r\n\t\treturn moment().format(\"HH:mm:ss\");\r\n\t}\r\n\r\n\tfunction getCurrentDateTimeInputString(): string {\r\n\t\treturn getCurrentDateString() + \"T\" + getCurrentTimeString();\r\n\t}\r\n\r\n\tfunction getParent(element: JQuery): JQuery {\r\n\t\treturn element.parents(\".checkable-date-box\");\r\n\t}\r\n}","module ConditionalFormControls {\r\n export function construct() {\r\n $(\"[data-toggle='formcontrols']\").change(function () {\r\n const element = $(this);\r\n const value = element.val();\r\n const triggerValue = element.attr(\"data-triggervalue\");\r\n const formControls = $(element.attr(\"data-target\"));\r\n formControls.collapse(value === triggerValue ? \"show\" : \"hide\");\r\n });\r\n $(\"[data-toggle='formcontrols']\").change();\r\n }\r\n}","module FormButtons\r\n{\r\n\texport function construct()\r\n\t{\r\n\t\t$(\"[data-sets]\").click((event) => {\r\n\t\t\tconst parameters = $(event.target).data(\"sets\").split(\",\");\r\n\t\t\tconst target = $(parameters[0]);\r\n\t\t\tconst value = parameters[1] as string;\r\n\t\t\ttarget.val(value);\r\n\t\t});\r\n\r\n\t\t$(\"[data-submits]\").click((event) => {\r\n\t\t\tconst element = $(event.target);\r\n\t\t\t$(element.data(\"submits\")).submit();\r\n\t\t});\r\n\t}\r\n}","module Lockable\r\n{\r\n\tconst unlockAttributeName = \"unlock\";\r\n\r\n\texport function construct()\r\n\t{\r\n\t\t$(`[data-${unlockAttributeName}]`).click((event) => {\r\n\t\t\tconst element = $(event.target);\r\n\t\t\telement.addClass(\"disabled\");\r\n\r\n\t\t\tconst lockedElement = $(element.data(unlockAttributeName));\r\n\t\t\tconst readonlyChildren = lockedElement.find(\"[readonly]:not(.permalocked)\");\r\n\t\t\treadonlyChildren.prop(\"readonly\", false);\r\n\t\t\treadonlyChildren.removeAttr(\"readonly\");\r\n\t\t});\r\n\t}\r\n}","module UspsValidatedAddress {\r\n class verifyAddressRequest {\r\n Street: string;\r\n Street2: string;\r\n Zip5: string;\r\n }\r\n\r\n class verifyAddressResponse {\r\n Street: string;\r\n Street2: string;\r\n City: string;\r\n State: string;\r\n Zip5: string;\r\n Zip4: string;\r\n\r\n IsValid: boolean;\r\n }\r\n\r\n let userAddress1: JQuery;\r\n let userAddress2: JQuery;\r\n let userZip: JQuery;\r\n\r\n let uspsAddress1: JQuery;\r\n let uspsAddress2: JQuery;\r\n let uspsCity: JQuery;\r\n let uspsState: JQuery;\r\n let uspsZip5: JQuery;\r\n let uspsZip4: JQuery;\r\n\r\n export function construct() {\r\n userAddress1 = $(\"#UserAddress1\");\r\n userAddress2 = $(\"#UserAddress2\");\r\n userZip = $(\"#UserZip\");\r\n\r\n uspsAddress1 = $(\"#Address\");\r\n uspsAddress2 = $(\"#Address2\");\r\n uspsCity = $(\"#City\");\r\n uspsState = $(\"#State\");\r\n uspsZip5 = $(\"#Zip5\");\r\n uspsZip4 = $(\"#Zip4\");\r\n\r\n if (userAddress1.length > 0) {\r\n const addressElements = $(\"[data-validate=Usps]\");\r\n addressElements.change(addressElementChanged);\r\n addressElements.keypress(addressElementKeyDowned);\r\n }\r\n }\r\n\r\n function addressElementKeyDowned(event: JQuery.Event) {\r\n if (event.which == 13) {\r\n addressElementChanged();\r\n event.preventDefault();\r\n $(this).blur();\r\n }\r\n }\r\n\r\n function addressElementChanged() {\r\n clearUspsAddress();\r\n\r\n const address1 = userAddress1.val() as string;\r\n const address2 = userAddress2.val() as string;\r\n const zip = userZip.val() as string;\r\n\r\n if (address1 == \"\" || zip.length != 5) {\r\n return;\r\n }\r\n\r\n validateUspsAddress(address1, address2, zip, (verifiedAddress: verifyAddressResponse) => {\r\n if (verifiedAddress.IsValid) {\r\n uspsAddress1.val(verifiedAddress.Street);\r\n uspsAddress2.val(verifiedAddress.Street2);\r\n uspsCity.val(verifiedAddress.City);\r\n uspsState.val(verifiedAddress.State);\r\n uspsZip5.val(verifiedAddress.Zip5);\r\n uspsZip4.val(verifiedAddress.Zip4);\r\n }\r\n else {\r\n Notifications.Warning(\"Address was not found in USPS database.\");\r\n }\r\n });\r\n }\r\n\r\n function clearUspsAddress() {\r\n uspsAddress1.val(\"\");\r\n uspsAddress2.val(\"\");\r\n uspsCity.val(\"\");\r\n uspsState.val(\"0\");\r\n uspsZip5.val(\"\");\r\n uspsZip4.val(\"\");\r\n }\r\n\r\n export function validateUspsAddress(address1: string, address2: string, zip: string, callback: (verifiedAddress: verifyAddressResponse) => any) {\r\n const requestData = {\r\n Street: address1,\r\n Street2: address2,\r\n Zip5: zip\r\n } as verifyAddressRequest;\r\n $.ajax(\r\n \"/Api/Usps/VerifyAndCleanseAddress\",\r\n {\r\n data: JSON.stringify(requestData),\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n type: \"POST\",\r\n timeout: 5000,\r\n success: callback,\r\n error: () => Notifications.Warning(\"Not validate address with USPS. Enter address manually.\")\r\n }\r\n );\r\n }\r\n}","$(document).ready(() =>\r\n{\r\n\tActionVoicemails.Construct();\r\n});\r\n\r\nmodule ActionVoicemails\r\n{\r\n\tconst voicemailDocumentIdAttribute = \"voicemailid\";\r\n\r\n\tclass DownloadRequest {\r\n\t\tDocumentID: string;\r\n\t\tFileName?: string;\r\n\t\tExtension?: string;\r\n\r\n\t\tconstructor(documentId: string)\r\n\t\t{\r\n\t\t\tthis.DocumentID = documentId;\r\n\t\t}\r\n\t}\r\n\r\n\tclass DownloadResponse {\r\n DownloadUrl: string;\r\n\t}\r\n\r\n\texport function Construct()\r\n\t{\r\n\t\t$(`[data-${voicemailDocumentIdAttribute}]`).click(onPlayButtonClicked);\r\n\t}\r\n\r\n\tfunction onPlayButtonClicked()\r\n\t{\r\n\t\tvar button = $(this);\r\n\t\tbutton.addClass(\"disabled\");\r\n\t\tbutton.text(\"Loading...\");\r\n\r\n\t\tvar requestData = getrequestData(button);\r\n\r\n\t\t$.ajax(\r\n\t\t\t\"/Api/Documents/DownloadUrl\",\r\n\t\t\t{\r\n\t\t\t\tdata: JSON.stringify(requestData),\r\n\t\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\t\tdataType: \"json\",\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\ttimeout: 5000,\r\n\t\t\t\tsuccess: (response: DownloadResponse) => onDownloadUrlObtained(button, response),\r\n\t\t\t\terror: () => onFailure(button),\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfunction getrequestData(button: JQuery): DownloadRequest\r\n\t{\r\n var requestData = new DownloadRequest(button.data(voicemailDocumentIdAttribute));\r\n //This used to include file name but that's not helpful anymore with new Document table\r\n\t\treturn requestData;\r\n\t}\r\n\r\n\tfunction onDownloadUrlObtained(button: JQuery, response: DownloadResponse)\r\n\t{\r\n\t\tvar audio = button.next();\r\n\t\tvar source = audio.children().eq(0);\r\n source.attr(\"src\", response.DownloadUrl);\r\n\t\tvar htmlAudio = audio[0];\r\n\t\thtmlAudio.load();\r\n\t\taudio.show();\r\n\t\tbutton.hide();\r\n\t\thtmlAudio.play();\r\n\t}\r\n\r\n\tfunction onFailure(button: JQuery)\r\n\t{\r\n\t\tbutton.removeClass(\"disabled\");\r\n\t\tbutton.text(\"Try to play voicemail again\");\r\n\t\tNotifications.Warning(\"Failed to get voicemail. Please wait a moment and try again.\");\r\n\t}\r\n}","module YesNoButton {\r\n const parentElementClass = \"yes-no-button\";\r\n\r\n export function construct() {\r\n $(`.${parentElementClass} button`).click(buttonClicked);\r\n }\r\n\r\n function buttonClicked() {\r\n const element = $(this);\r\n const value = getValue(element);\r\n const newValue = !value;\r\n setValue(element, newValue);\r\n }\r\n\r\n function getYesButton(thisElement: JQuery) {\r\n const parent = getParentElement(thisElement);\r\n return parent.find(\"button\").eq(0);\r\n }\r\n\r\n function getNoButton(thisElement: JQuery) {\r\n const parent = getParentElement(thisElement);\r\n return parent.find(\"button\").eq(1);\r\n }\r\n\r\n function getParentElement(thisElement: JQuery) {\r\n return thisElement.parents(`.${parentElementClass}`);\r\n }\r\n\r\n function getInput(thisElement: JQuery) {\r\n const parent = getParentElement(thisElement);\r\n return parent.find(\"input\");\r\n }\r\n\r\n function getValue(thisElement: JQuery) {\r\n const input = getInput(thisElement);\r\n return input.val() == \"True\";\r\n }\r\n\r\n function setValue(thisElement: JQuery, newValue: boolean) {\r\n const input = getInput(thisElement);\r\n input.val(newValue ? \"True\" : \"False\");\r\n\r\n const yesButton = getYesButton(thisElement);\r\n const noButton = getNoButton(thisElement);\r\n if (newValue) {\r\n yesButton.show();\r\n noButton.hide();\r\n }\r\n else {\r\n yesButton.hide();\r\n noButton.show();\r\n }\r\n input.change();\r\n }\r\n}","module Navigation {\r\n let activeNavigationItem: HTMLElement;\r\n\r\n export function construct() {\r\n var activeLiQuery = $(\"#sidebarnav li.active\");\r\n if (activeLiQuery.length != 0) {\r\n activeNavigationItem = activeLiQuery[0];\r\n activeNavigationItem.scrollIntoView({ block: 'nearest' });\r\n }\r\n }\r\n}","module Notifications {\r\n var toastContainer;\r\n\r\n export function construct() {\r\n toastContainer = $(\"#ToastContainer\");\r\n }\r\n\r\n\texport function Success(message: string, title: string = null): void\r\n\t{\r\n const successDuration = 2500;\r\n\r\n if (title == null) {\r\n Create(message, undefined, successDuration, \"text-success\");\r\n return;\r\n }\r\n\r\n Create(message, title, successDuration, \"text-success\");\r\n\t}\r\n\r\n\texport function Warning(message: string, title: string = null): void\r\n {\r\n const warningDuration = 5000;\r\n\r\n\t\tif (title == null)\r\n\t\t{\r\n Create(message, undefined, warningDuration, \"text-warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n Create(message, title, warningDuration, \"text-warning\");\r\n\t}\r\n\r\n\texport function ChangeSaved()\r\n\t{\r\n Create(\"Change saved!\", undefined, 1000, \"text-success\");\r\n }\r\n\r\n export function Create(message: string, title: string = \"Notification\", duration: number = 2000, titleClasses: string = \"\") {\r\n const html = [\r\n `
` + \r\n `
` + \r\n //`\"...\"` + \r\n `${title}` +\r\n `` + \r\n `
` + \r\n `
` + \r\n message + \r\n `
` + \r\n `
`\r\n ].join(\"\\n\");\r\n const jqueryElement : any = $(html);\r\n jqueryElement.toast({ delay: duration });\r\n toastContainer.append(jqueryElement);\r\n jqueryElement.toast(\"show\");\r\n }\r\n}","module Sizing\r\n{\r\n\tlet outerTopbarHeight: number = 0;\r\n\texport function OuterTopbarHeight()\r\n\t{\r\n\t\tif (outerTopbarHeight == 0)\r\n\t\t{\r\n\t\t\touterTopbarHeight = $(\"header.topbar\").outerHeight();\r\n\t\t}\r\n\t\treturn outerTopbarHeight;\r\n\t}\r\n\r\n\texport let ContentTopPadding: number = 20;\r\n}","module ContentEditableDiv {\r\n export function construct() {\r\n $(\"form\").submit(onFormSubmit);\r\n $(\"div[contenteditable]\").keypress(onKeypress);\r\n //Populate backing inputs with current div value\r\n $(\"div[contenteditable][data-backingfield]\").each(function (index: number) {\r\n const div = $(this);\r\n const backingInput = getBackingInput(div);\r\n backingInput.val(div.html());\r\n });\r\n }\r\n\r\n export function getIfDivChanged(div: JQuery) {\r\n const currentValue = div.html();\r\n const backingInput = getBackingInput(div);\r\n const previousValue = backingInput.val();\r\n return currentValue != previousValue;\r\n }\r\n\r\n function onFormSubmit(event: JQuery.Event) {\r\n var form = $(event.target);\r\n var contentEditableDivs = form.find(\"div[contenteditable][data-backingfield]\");\r\n contentEditableDivs.each((index, element) => {\r\n var div = $(element);\r\n updateBackingField(div);\r\n });\r\n }\r\n\r\n function updateBackingField(div: JQuery) {\r\n var backingInput = getBackingInput(div);\r\n backingInput.val(div.html());\r\n }\r\n\r\n function onKeypress(event: JQuery.Event) {\r\n var div = $(event.target);\r\n updateBackingField(div);\r\n\r\n if (div.data(\"submit\") === \"enter\") {\r\n if (event.which === 13) {\r\n var form = div.parents(\"form\");\r\n form.submit();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n export function getBackingInput(div: JQuery): JQuery {\r\n return $(\"#\" + div.data(\"backingfield\"));\r\n }\r\n}","module InputTools {\r\n\texport function MakeReadOnly(element: JQuery) {\r\n\t\telement.prop(\"readonly\", true);\r\n\t}\r\n\r\n\texport function MakeWritable(element: JQuery) {\r\n\t\telement.prop(\"readonly\", false);\r\n\t}\r\n\r\n\texport function ToggleReadOnly(element: JQuery) {\r\n\t\telement.prop(\"readonly\", !(element.prop(\"readonly\") as boolean));\r\n\t}\r\n\r\n\texport function Enable(element: JQuery) {\r\n\t\telement.prop(\"disabled\", false);\r\n\t}\r\n\r\n\texport function Disable(element: JQuery) {\r\n\t\telement.prop(\"disabled\", true);\r\n\t}\r\n}","module Masks {\r\n export function construct() {\r\n const jquery = ($ as any);\r\n jquery.jMaskGlobals = {\r\n maskElements: 'input,td,span,div',\r\n dataMaskAttr: '*[data-mask]',\r\n dataMask: true,\r\n watchInterval: 100,\r\n watchInputs: true,\r\n watchDataMask: false,\r\n byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91],\r\n translation: {\r\n '0': { pattern: /\\d/ },\r\n '1': { pattern: /[2-9]/ },\r\n '9': { pattern: /\\d/, optional: true },\r\n '#': { pattern: /\\d/, recursive: true },\r\n 'A': { pattern: /[a-zA-Z0-9]/ },\r\n 'S': { pattern: /[a-zA-Z]/ }\r\n }\r\n };\r\n jquery.applyDataMask();\r\n }\r\n}","module SelectTools {\r\n\texport function addBlankOption(element: JQuery) {\r\n\t\telement.append(\"\");\r\n\t}\r\n\r\n\texport function selectNonBlankOptionIfOnlyOne(element: JQuery) {\r\n\t\tconst nonNullOption = element.children(\"option:not(:empty)\");\r\n\t\tif (nonNullOption.length === 1) {\r\n\t\t\tValTools.valWithChange(element, nonNullOption.val());\r\n\t\t}\r\n\t}\r\n\r\n\texport function selectDefaultOption(element: JQuery) {\r\n\t\tconst defaultOption = element.data(\"default\");\r\n\t\tif (defaultOption != undefined) {\r\n\t\t\tValTools.valWithChange(element, defaultOption);\r\n\t\t}\r\n\t}\r\n\r\n\texport function autoSelect(element: JQuery) {\r\n\t\tselectDefaultOption(element);\r\n\t\tselectNonBlankOptionIfOnlyOne(element);\r\n\t}\r\n\r\n\texport function initDataApi() {\r\n\t\t//$(\"select\").each((index, element) => {\r\n\t\t//\tconst el = $(element as any);\r\n\t\t//\tselectNonBlankOptionIfOnlyOne(el);\r\n\t\t//\tselectDefaultOption(el);\r\n\t\t//});\r\n\t}\r\n}","module ValTools {\r\n\texport function valWithChange(element: JQuery, newVal: string | number | string[]) {\r\n\t\tconst oldVal = element.val();\r\n\t\tif (oldVal !== newVal) {\r\n\t\t\telement.val(newVal);\r\n\t\t\telement.change();\r\n\t\t}\r\n\t}\r\n}","///// \r\n\r\n/*\r\nTemplate Name: Material Pro Admin\r\nAuthor: Themedesigner\r\nEmail: niravjoshi87@gmail.com\r\nFile: js\r\n*/\r\n\r\nmodule MaterialPro {\r\n \"use strict\";\r\n\r\n let jBody: JQuery;\r\n\r\n export function construct() {\r\n jBody = $(\"body\");\r\n\r\n // this is for close icon when navigation open in mobile view\r\n $(\".nav-toggler,.sidebartoggler\").click(function () {\r\n jBody.toggleClass(\"show-sidebar\");\r\n $(\".nav-toggler i\").toggleClass(\"ti-menu\");\r\n $(\".nav-toggler i\").addClass(\"ti-close\");\r\n });\r\n }\r\n}","module AjaxSave {\r\n\tinterface ISaveResponse {\r\n\t\tSuccess: Boolean;\r\n\t\tMessage: string;\r\n\t\tNewValue: string;\r\n\t}\r\n\r\n\tinterface ISaveRequest {\r\n\t\tColumnId: string;\r\n\t\tRowId: string;\r\n\t\tValue: any;\r\n\t}\r\n\r\n\tlet timeoutIDsByColumn: Dictionary;\r\n\tconst columnIdAttribute = \"columnid\";\r\n\tconst rowIdAttribute = \"rowid\";\r\n\tconst valueAttribute = \"ajaxvalue\";\r\n\r\n\texport function construct(): void {\r\n\t\ttimeoutIDsByColumn = new Dictionary();\r\n\t\t$(\r\n\t\t\t`\r\n\t\t\t\tinput[data-${columnIdAttribute}],\r\n\t\t\t\tselect[data-${columnIdAttribute}],\r\n\t\t\t\ttextarea[data-${columnIdAttribute}]\r\n\t\t\t`\r\n\t\t).change(onElementChanged);\r\n\t}\r\n\r\n\tfunction onElementChanged(): void {\r\n\t\tconst element = $(this);\r\n\r\n\t\tif (element.hasClass(\"disabled\"))// || element[0].hasAttribute(\"readonly\")//For checkable datetime boxes we want to be able to programmatically change and persist their values and use readonly to prevent user input\r\n\t\t{\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!getValueComplete(element)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst columnid = String(element.data(columnIdAttribute));\r\n\t\tconst rowid = getRowId(element);\r\n\t\tconst value = getValue(element);\r\n\t\tconst callback = getCallbackFunction(element);\r\n\r\n\t\tupdateDatabase(columnid, rowid, value, callback);\r\n\t}\r\n\r\n\texport function updateDatabase(columnid: string, rowid: string, value: any, callback: () => any = null): void {\r\n\t\t//Date object in JS doesn't support time zones so everything is off by the UTC offset if we just pass it to Web API.\r\n\t\tif (value instanceof Date) {\r\n\t\t\tvalue = moment(value as Date).format();\r\n\t\t}\r\n\r\n\t\t//Used as an identifier for the timer in the Dictionary of existing timers.\r\n\t\tconst lookupKey = columnid + rowid;\r\n\r\n\t\tconst existingTimeoutId = timeoutIDsByColumn.ItemOrNull(lookupKey);\r\n\t\tif (existingTimeoutId != null) {\r\n\t\t\tclearTimeout(existingTimeoutId);\r\n\t\t\ttimeoutIDsByColumn.Remove(lookupKey);\r\n\t\t}\r\n\r\n\t\tconst timeoutId = setTimeout(() => submitRequest(columnid, rowid, value, callback), 10);\r\n\t\ttimeoutIDsByColumn.Add(lookupKey, timeoutId);\r\n\t}\r\n\r\n\tfunction getValue(element: JQuery): string {\r\n\t\tif (element.data(valueAttribute)) {\r\n\t\t\treturn element.data(valueAttribute);\r\n\t\t}\r\n\r\n\t\tif (element.is(\"input[type=checkbox]\")) {\r\n\t\t\treturn element.is(\":checked\").toString();\r\n\t\t}\r\n\r\n\t\treturn element.val() as any as string;\r\n\t}\r\n\r\n\texport function getRowId(element: JQuery): string {\r\n\t\treturn String(DataAttributeTools.DataForElementOrParents(element, rowIdAttribute));\r\n\t}\r\n\r\n\tfunction submitRequest(columnId: string, rowid: string, value: string, callback: () => any = null): void {\r\n\t\tconst longRequestTimerId = setTimeout(notifyLongRequest, 500);\r\n\t\tvar payload =\r\n\t\t\t{\r\n\t\t\t\tColumnId: columnId,\r\n\t\t\t\tRowId: rowid,\r\n\t\t\t\tValue: value\r\n\t\t\t} as ISaveRequest;\r\n\t\t$.ajax(\r\n\t\t\t\"/Api/Orm/AjaxSave\",\r\n\t\t\t{\r\n\t\t\t\tdata: JSON.stringify(payload),\r\n\t\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\t\tdataType: \"json\",\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\ttimeout: 5000,\r\n\t\t\t\tsuccess: function (response: ISaveResponse) {\r\n\t\t\t\t\tnotifySuccess(response);\r\n\t\t\t\t\tif (callback != null) {\r\n\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: notifyFailure,\r\n\t\t\t\tcomplete: () => clearTimeout(longRequestTimerId)\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfunction notifySuccess(response: ISaveResponse): void {\r\n\t\tif (response.Success) {\r\n\t\t\t//Notifications.ChangeSaved();\r\n\t\t} else {\r\n\t\t\tnotifyFailure(); //response.Message\r\n\t\t}\r\n\t}\r\n\r\n\tfunction notifyFailure(error: object = null): void {\r\n\t\tNotifications.Warning(\r\n\t\t\t\"Your change could not be saved to the server! Please contact support with a link to the Claim, what field you were changing, and what you were attempting to enter into the field.\",\r\n\t\t\t\"Field Save Failure\"\r\n\t\t);\r\n\t}\r\n\r\n\tfunction notifyLongRequest(): void {\r\n\t\tNotifications.Warning(\r\n\t\t\t\"The server is still processing your request to update this field but has not yet completed it. Please do not close the page until the request succeeds or fails. If this continues more than 10 seconds please reload the page and try again.\",\r\n\t\t\t\"Field Save Delayed\"\r\n\t\t);\r\n\t}\r\n\r\n\tfunction getCallbackFunction(element: JQuery): () => void {\r\n\t\tvar dataParameter = element.data(\"onsaved\");\r\n\t\tif (!dataParameter) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn window[dataParameter];\r\n\t}\r\n\r\n\tfunction getValueComplete(element: JQuery): boolean {\r\n\t\tvar val = element.val();\r\n\t\tvar inputType = element.attr(\"type\");\r\n\t\tif (inputType == \"date\") {\r\n\t\t\treturn val.toString().charAt(0) !== \"0\";//Only accept 4 digit years.\r\n\t\t}\r\n\t\tif (inputType == \"datetime-local\") {\r\n\t\t\treturn true;//todo implement\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n}","module ContentEditableDivAjaxSave\r\n{\r\n\tconst originalValueAttribute = \"originalvalue\";\r\n\r\n\texport function construct(): void {\r\n\t\tconst expandoTextBoxes = $(\"div[contenteditable=true][data-columnid]\");\r\n\t\texpandoTextBoxes.each((index, htmlElement) => {\r\n\t\t\tconst element = $(htmlElement);\r\n\t\t\telement.data(originalValueAttribute, element.html());\r\n\t\t});\r\n\t\texpandoTextBoxes.blur(onDivChanged);\r\n\t}\r\n\r\n\tfunction onDivTypedInto(): void {\r\n\t\t\r\n\t}\r\n\r\n\tfunction onDivChanged(): void {\r\n\t\tconst element = $(this);\r\n\r\n\t\t//If value hasn't changed, don't save.\r\n if (!getIfDivChanged(element))\r\n\t\t{\r\n\t\t\treturn;\r\n }\r\n\r\n const value = element.html();\r\n\t\telement.data(originalValueAttribute, value);\r\n\r\n\t\tconst columnid = String(element.data(\"columnid\"));\r\n\t\tconst rowid = getRowId(element);\r\n\r\n\t\tAjaxSave.updateDatabase(columnid, rowid, value);\r\n\t}\r\n\r\n\tfunction getRowId(element: JQuery): string\r\n\t{\r\n\t\treturn AjaxSave.getRowId(element);\r\n }\r\n\r\n function getIfDivChanged(element: JQuery) {\r\n const currentValue = element.html();\r\n const previousValue = element.data(originalValueAttribute);\r\n return currentValue != previousValue;\r\n }\r\n}","module DataAttributeTools\r\n{\r\n\texport function DataForElementOrParents(element: JQuery, key: string): any\r\n\t{\r\n\t\tif (element.data(key))\r\n\t\t{\r\n\t\t\treturn element.data(key);\r\n\t\t}\r\n\t\t\r\n\t\treturn element.parents(`[data-${key}]`).data(key);\r\n\t}\r\n}","declare var moment: any;\r\ndeclare var bsCustomFileInput: any;\r\n\r\n$(document).ready(() => {\r\n MaterialPro.construct();\r\n\r\n moment.tz.setDefault(\"America/New_York\");\r\n\r\n Navigation.construct();\r\n Parameters.construct();\r\n AjaxSave.construct();\r\n Check.construct();\r\n FormButtons.construct();\r\n ContentEditableDivAjaxSave.construct();\r\n Lockable.construct();\r\n UspsValidatedAddress.construct();\r\n UserAssignmentTable.construct();\r\n\r\n //Pickers\r\n FieldOfficePicker.construct();\r\n DdsOfficePicker.construct();\r\n OhoOfficePicker.construct();\r\n HearingLocationPicker.construct();\r\n\r\n //Input\r\n ContentEditableDiv.construct();\r\n Masks.construct();\r\n SelectTools.initDataApi();\r\n CheckableDateBox.construct();\r\n YesNoButton.construct();\r\n ConditionalFormControls.construct();\r\n bsCustomFileInput.init();\r\n\r\n Notifications.construct();\r\n\r\n ChromeFixes.construct();\r\n\r\n $(\"input\").attr(\"autocomplete\", \"this-is-ridiculous\");\r\n\r\n $(function () {\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n });\r\n $(function () {\r\n $('[data-toggle=\"popover\"]').popover();\r\n });\r\n});","//Checkboxes in HTML transmit \"on\" when checked.\r\n//But the clever guys writing the model binder at MS decided they won't parse \"on\" as C#'s true.\r\n//So we need to normalize our forms ahead of time to handle this.\r\n$(document).ready(function () {\r\n $('form').submit(function () {\r\n $(this).find(\"input[type=checkbox]:not([value])\").each(function (index, element) {\r\n var el = $(element);\r\n el.attr(\"value\", el.is(\":checked\") ? \"true\" : \"false\");\r\n });\r\n });\r\n});","interface IDictionary\r\n{\r\n\tAdd(key: string, value: T);\r\n\tContainsKey(key: string): boolean;\r\n\tCount(): number;\r\n\tItem(key: string): T;\r\n\tKeys(): string[];\r\n\tRemove(key: string): T;\r\n\tValues(): T[];\r\n}\r\n\r\nclass Dictionary implements IDictionary {\r\n\tprivate items: { [index: string]: T } = {};\r\n\r\n\tprivate count: number = 0;\r\n\r\n\tpublic ItemOrNull(key: string): T\r\n\t{\r\n\t\tif (this.ContainsKey(key))\r\n\t\t\treturn this.Item(key);\r\n\t\treturn null;\r\n\t}\r\n\r\n\tpublic ContainsKey(key: string): boolean\r\n\t{\r\n\t\treturn this.items.hasOwnProperty(key);\r\n\t}\r\n\r\n\tpublic Count(): number\r\n\t{\r\n\t\treturn this.count;\r\n\t}\r\n\r\n\tpublic Add(key: string, value: T)\r\n\t{\r\n\t\tif (!this.items.hasOwnProperty(key))\r\n\t\t\tthis.count++;\r\n\r\n\t\tthis.items[key] = value;\r\n\t}\r\n\r\n\tpublic Remove(key: string): T\r\n\t{\r\n\t\tvar val = this.items[key];\r\n\t\tdelete this.items[key];\r\n\t\tthis.count--;\r\n\t\treturn val;\r\n\t}\r\n\r\n\tpublic Item(key: string): T\r\n\t{\r\n\t\treturn this.items[key];\r\n\t}\r\n\r\n\tpublic Keys(): string[]\r\n\t{\r\n\t\tvar keySet: string[] = [];\r\n\r\n\t\tfor (var prop in this.items)\r\n\t\t{\r\n\t\t\tif (this.items.hasOwnProperty(prop))\r\n\t\t\t{\r\n\t\t\t\tkeySet.push(prop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn keySet;\r\n\t}\r\n\r\n\tpublic Values(): T[]\r\n\t{\r\n\t\tvar values: T[] = [];\r\n\r\n\t\tfor (var prop in this.items)\r\n\t\t{\r\n\t\t\tif (this.items.hasOwnProperty(prop))\r\n\t\t\t{\r\n\t\t\t\tvalues.push(this.items[prop]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t}\r\n}","module Parameters\r\n{\r\n\texport function construct()\r\n\t{\r\n\t\t$(\"select[data-switchParameterChange],input[data-switchParameterChange]\").change((event) =>\r\n\t\t{\r\n\t\t\tconst input = $(event.target);\r\n\t\t\tlet val: any = input.val();\r\n\t\t\tif (input.is(\"input[type=checkbox]\")) {\r\n\t\t\t\tval = input.is(\":checked\");\r\n\t\t\t}\r\n\t\t\tconst parameterName = input.data(\"switchparameterchange\");\r\n\t\t\tParameters.setParameter(parameterName, val);\r\n\t\t});\r\n\r\n\t\t$(\"select[data-switchParameterBlur],input[data-switchParameterBlur]\").blur((event) =>\r\n\t\t{\r\n\t\t\tconst input = $(event.target);\r\n\t\t\tlet val: any = input.val();\r\n\t\t\tif (input.is(\"input[type=checkbox]\"))\r\n\t\t\t{\r\n\t\t\t\tval = input.is(\":checked\");\r\n\t\t\t}\r\n\t\t\tParameters.setParameter(input.data(\"switchparameterblur\"), val);\r\n\t\t});\r\n\r\n\t\t$(\"[data-switchParameterClick\").click((event) => {\r\n\t\t\tconst element = $(event.target);\r\n\t\t\tconst attribute = (element.data(\"switchparameterclick\") as string).split(',');//Value is like uid,fdcfa4f8-d38c-46ad-b80c-f173413ed3e3\r\n\t\t\tconst parameter = attribute[0];\r\n\t\t\tconst value = attribute[1];\r\n\t\t\tParameters.setParameter(parameter, value);\r\n\t\t});\r\n\t}\r\n\r\n\texport function getParameter(name: string): string {\r\n\t\tconst results = (new RegExp(`[\\\\?&]${name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\")}=([^&#]*)`)).exec(location.search);\r\n\t\treturn results == null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n\t}\r\n\r\n\texport function setParameter(parameter, value) {\r\n\t\tlet url = window.location.href;\r\n\t\tconst re = new RegExp(`([?&])${parameter}=.*?(&|#|$)(.*)`, \"gi\");\r\n\t\tlet hash;\r\n\r\n\t\tif (re.test(url)) {\r\n\t\t\tif (typeof value !== \"undefined\" && value !== null)\r\n\t\t\t\tdocument.location.href = url.replace(re, `$1${parameter}=${value}$2$3`);\r\n\t\t\telse {\r\n\t\t\t\thash = url.split(\"#\");\r\n\t\t\t\turl = hash[0].replace(re, \"$1$3\").replace(/(&|\\?)$/, \"\");\r\n\t\t\t\tif (typeof hash[1] !== \"undefined\" && hash[1] !== null)\r\n\t\t\t\t\turl += `#${hash[1]}`;\r\n\t\t\t\tdocument.location.href = url;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (typeof value !== \"undefined\" && value !== null) {\r\n\t\t\t\tconst separator = url.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\r\n\t\t\t\thash = url.split(\"#\");\r\n\t\t\t\turl = hash[0] + separator + parameter + \"=\" + value;\r\n\t\t\t\tif (typeof hash[1] !== \"undefined\" && hash[1] !== null)\r\n\t\t\t\t\turl += `#${hash[1]}`;\r\n\t\t\t\tdocument.location.href = url;\r\n\t\t\t} else\r\n\t\t\t\tdocument.location.href = url;\r\n\t\t}\r\n\t}\r\n}","module ScrollToHighlighted {\r\n export function construct(): void {\r\n if (document.documentElement.scrollTop != 0) {\r\n return;\r\n }\r\n\r\n const highlightedElements = document.getElementsByClassName(\"highlighted\");\r\n if (highlightedElements.length == 0) {\r\n return;\r\n }\r\n const highlightedElement = highlightedElements[0];\r\n\r\n let scrollToY = getScrollTargetY(highlightedElement);\r\n scrollToY -= (screen.height / 2);\r\n window.scrollTo({\r\n top: scrollToY//,\r\n //behavior: 'smooth'\r\n });\r\n }\r\n\r\n function getScrollTargetY(element: Element): number {\r\n const boundingRectangle = element.getBoundingClientRect();\r\n //const totalOffset = getTotalOffset(element);\r\n //return boundingRectangle.top - totalOffset;\r\n return boundingRectangle.bottom;\r\n }\r\n\r\n //function getTotalOffset(highlightedElement: Element): number {\r\n // const navigationHeight = getFirstElementHeightOr0(\"topbar\");\r\n // const titleHeight = getFirstElementHeightOr0(\"page-titles\");\r\n // const tableHeaderHeight = getTableHeaderHeightOr0();\r\n // const stickyHeight = getStickyHeight(highlightedElement);\r\n // const padding = 40;\r\n // return navigationHeight + titleHeight + tableHeaderHeight + stickyHeight + padding;\r\n //}\r\n\r\n //function getTableHeaderHeightOr0(): number {\r\n // const element = document.querySelector(\".quikaid-calendar thead tr th\");\r\n // return element == null ? 0 : element.clientHeight;\r\n //}\r\n\r\n //function getFirstElementHeightOr0(className: string): number {\r\n // const elements = document.getElementsByClassName(className);\r\n // return elements.length == 0 ? 0 : elements[0].clientHeight;\r\n //}\r\n\r\n //function getStickyHeight(highlightedElement: Element): number {\r\n // const stickys = document.getElementsByClassName(\"sticky\");\r\n // if (stickys.length == 0) {\r\n // return 0;\r\n // }\r\n // const highlightedBoundingRect = highlightedElement.getBoundingClientRect();\r\n // for (var i = 0; i < stickys.length; i++) {\r\n // const sticky = stickys[i];\r\n // const stickyBoundingRect = sticky.getBoundingClientRect();\r\n // //Exclude any sticky elements below our target\r\n // if (stickyBoundingRect.top > highlightedBoundingRect.top) {\r\n // continue;\r\n // }\r\n // //Exclude sticky elements not on the same column, such as sidebars\r\n // if (stickyBoundingRect.left != highlightedBoundingRect.left) {\r\n // continue;\r\n // }\r\n // //We only need the first one since our current sticky system would just cause multiple to overlap anyways\r\n // return sticky.clientTop;\r\n // }\r\n // //Stickys found but none had a position that affected the scroll\r\n // return 0;\r\n //}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n ScrollToHighlighted.construct();\r\n});","//TS reflection of StateInfo.cs.States\r\nenum States\r\n{\r\n\tblank,\r\n\tAlabama, //1\r\n\tAlaska,\r\n\tArizona,\r\n\tArkansas,\r\n\tCalifornia, //5\r\n\tColorado,\r\n\tConnecticut,\r\n\tDelaware,\r\n\tFlorida,\r\n\tGeorgia, //10\r\n\tHawaii,\r\n\tIdaho,\r\n\tIllinois,\r\n\tIndiana,\r\n\tIowa, //15\r\n\tKansas,\r\n\tKentucky,\r\n\tLouisiana,\r\n\tMaine,\r\n\tMaryland, //20\r\n\tMassachusetts,\r\n\tMichigan,\r\n\tMinnesota,\r\n\tMississippi,\r\n\tMissouri, //25\r\n\tMontana,\r\n\tNebraska,\r\n\tNevada,\r\n\tNewHampshire,\r\n\tNewJersey, //30\r\n\tNewMexico,\r\n\tNewYork,\r\n\tNorthCarolina,\r\n\tNorthDakota,\r\n\tOhio, //35\r\n\tOklahoma,\r\n\tOregon,\r\n\tPennsylvania,\r\n\tPuertoRico, //39 Numbering gets off here\r\n\tRhodeIsland,//40\r\n\tSouthCarolina,\r\n\tSouthDakota,\r\n\tTennessee,\r\n\tTexas,\r\n\tUtah, //45\r\n\tVermont,\r\n\tVirginia,\r\n\tWashington,\r\n\tWashingtonDC,//49 Watch out for this\r\n\tWestVirginia, //50\r\n\tWisconsin, //51\r\n Wyoming, //52\r\n VirginIslands\r\n}","module UserAssignments\r\n{\r\n\texport enum LinkTypes\r\n\t{\r\n\t\tCertified = 0,\r\n\t\tAssigned = 1,\r\n\t\tSupervising = 2,\r\n\t}\r\n\r\n\tinterface IUpdateAssignmentRequest\r\n\t{\r\n\t\tDepartmentID : string;\r\n\t\tUserID : string;\r\n\t LinkType: LinkTypes;\r\n\t Value : boolean;\r\n\t}\r\n\r\n\texport function UpdateAssignment(userID: string, departmentID: string, linkType: LinkTypes, value: boolean, callback: () => any)\r\n\t{\r\n\t\tvar data: IUpdateAssignmentRequest = {\r\n\t\t\tDepartmentID: departmentID,\r\n\t\t\tUserID : userID,\r\n\t\t\tLinkType: linkType,\r\n\t\t\tValue : value\r\n\t\t};\r\n\t\t$.ajax(\r\n\t\t\t\"/Api/Users/UpdateAssignment\",\r\n\t\t\t{\r\n\t\t\t\tdata: JSON.stringify(data),\r\n\t\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\t\tdataType: \"json\",\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\ttimeout: 5000,\r\n\t\t\t\tsuccess: callback,\r\n\t\t\t\terror: notifyFailure\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfunction notifyFailure()\r\n\t{\r\n\t\tNotifications.Warning(\"Update user assignment failed.\");\r\n\t}\r\n}","interface IActionTemplateStub {\r\n\tName: string;\r\n Id: number;\r\n Mode: actionTemplateModes;\r\n}\r\n\r\nenum actionTemplateModes {\r\n Standard,\r\n Save,\r\n Merge\r\n}\r\n\r\nmodule ActionTemplateFactory {\r\n\tinterface templatesByDepartmentRequest {\r\n\t\tDepartmentId: string;\r\n Modes: actionTemplateModes[];\r\n OnlyFaxReceivable: boolean;\r\n\t}\r\n\r\n\texport function getActionTemplateByDepartment(departmentId: string, callback: (actionTemplateStubs: IActionTemplateStub[]) => any, modes: actionTemplateModes[], onlyFaxReceivable: boolean = false) {\r\n\t\tconst requestData: templatesByDepartmentRequest = {\r\n\t\t\tDepartmentId: departmentId,\r\n Modes: modes,\r\n OnlyFaxReceivable: onlyFaxReceivable\r\n\t\t};\r\n\t\t$.ajax(\r\n\t\t\t\"/Api/Company/Actions/Templates/TemplatesByDepartment\",\r\n\t\t\t{\r\n\t\t\t\tdata: JSON.stringify(requestData),\r\n\t\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\t\tdataType: \"json\",\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\ttimeout: 5000,\r\n\t\t\t\tsuccess: callback,\r\n\t\t\t\terror: () => Notifications.Warning(\"Error occurred attempting to retrieve list of Action Templates by Department.\")\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}","$(document).ready(() => {\r\n\tActionTemplatePicker.construct();\r\n});\r\n\r\nmodule ActionTemplatePicker {\r\n\tlet departmentSelect: JQuery;\r\n\tlet templateSelect: JQuery;\r\n\r\n\texport function construct() {\r\n\t\tdepartmentSelect = $(\"#ActionTemplatePickerDepartmentSelect\");\r\n\t\tif (departmentSelect.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttemplateSelect = $(\"#ActionTemplatePickerTemplateSelect\");\r\n\t\tdepartmentSelect.change(onDepartmentSelectChanged);\r\n\t\tonDepartmentSelectChanged();//Throw once to load the default Department's Templates.\r\n\t}\r\n\r\n\tfunction onDepartmentSelectChanged() {\r\n\t\ttemplateSelect.empty();\r\n\t\ttemplateSelect.prop(\"readonly\", true);\r\n const departmentId = getSelectedDepartment();\r\n const actionTemplateModes = getSelectedModes();\r\n const onlyFaxReceivable = getOnlyFaxReceivable();\r\n ActionTemplateFactory.getActionTemplateByDepartment(departmentId, (actionTemplateStubs) => onActionTemplateListReceived(actionTemplateStubs, actionTemplateModes), actionTemplateModes, onlyFaxReceivable);\r\n\t}\r\n\r\n function onActionTemplateListReceived(actionTemplateStubs: IActionTemplateStub[], modes: actionTemplateModes[]) {\r\n if (getIncludeBlank()) {\r\n templateSelect.append(new Option());\r\n }\r\n actionTemplateStubs.forEach((actionTemplateStub) => {\r\n var name = actionTemplateStub.Name;\r\n if (modes.length > 1) {\r\n name += \" (\" + actionTemplateModes[actionTemplateStub.Mode] + \")\";\r\n }\r\n\t\t\ttemplateSelect.append(new Option(name, actionTemplateStub.Id.toString()));\r\n\t\t});\r\n\t\ttemplateSelect.attr(\"readonly\", false as any);\r\n }\r\n\r\n function getSelectedDepartment(): string {\r\n return departmentSelect.val() as string;\r\n }\r\n\r\n function getSelectedModes(): actionTemplateModes[] {\r\n const actionTemplateMode = departmentSelect.data(\"mode\");\r\n const actionTemplateModeStr = actionTemplateMode == undefined ? undefined : actionTemplateMode.toString();\r\n if (actionTemplateModeStr === undefined) {\r\n return (Object).values(actionTemplateModes);\r\n }\r\n const actionTemplateModesStr = actionTemplateModeStr.split(\",\");\r\n return actionTemplateModesStr.map((value) => Number(value) );\r\n }\r\n\r\n function getOnlyFaxReceivable(): boolean {\r\n return departmentSelect.data(\"onlyfaxreceivable\");\r\n }\r\n\r\n function getIncludeBlank(): boolean {\r\n return templateSelect.data(\"include-blank\") === true;\r\n }\r\n}","module HistoryModal {\r\n let historyModal = $(\"#HistoryModal\");\r\n let historyModalBody = $(\"#HistoryModalBody\");\r\n\r\n export function construct() {\r\n historyModal = $(\"#HistoryModal\");\r\n historyModalBody = $(\"#HistoryModalBody\");\r\n }\r\n\r\n export function showHistoryForColumn(columnId: string, rowId: number): void {\r\n HistoryTableFactory.GetByColumn(columnId, rowId, showModal);\r\n }\r\n\r\n export function showHistoryForTable(tableId: string, rowId: number): void {\r\n HistoryTableFactory.GetByTable(tableId, rowId, showModal);\r\n }\r\n\r\n function showModal(html: string): void {\r\n historyModalBody.html(html);\r\n historyModal.modal(\"show\");\r\n }\r\n}\r\n\r\n$(document).ready(() => { HistoryModal.construct(); });","module HistoryTableFactory {\r\n export function GetByColumn(columnId: string, rowId: number, callback: (tableHtml: string) => any): void {\r\n $.ajax(`/Api/Orm/History/Column?columnId=${columnId}&rowId=${rowId}`,\r\n {\r\n success: callback\r\n }\r\n );\r\n }\r\n\r\n export function GetByTable(tableId: string, rowId: number, callback: (tableHtml: string) => any): void {\r\n $.ajax(`/Api/Orm/History/Table?tableId=${tableId}&rowId=${rowId}`,\r\n {\r\n success: callback\r\n }\r\n );\r\n }\r\n}","module UserAssignmentTable\r\n{\r\n\tconst linkTypeAttributeName = \"linktype\";\r\n\tconst userIdAttributeName = \"userid\";\r\n\tconst departmentIdAttributeName = \"departmentid\";\r\n\r\n\texport function construct()\r\n\t{\r\n\t\t$(\".user-assignments\").find(\"input[type=checkbox]:enabled\").change(checkboxChanged);\r\n\t}\r\n\r\n\tfunction checkboxChanged(event: JQuery.Event)\r\n\t{\r\n\t\tconst checkbox = $(event.target);\r\n\t\tconst value = checkbox.is(\":checked\");\r\n\t\tconst userID = getUserID(checkbox) as string;\r\n\t\tconst linkType = checkbox.data(linkTypeAttributeName) as UserAssignments.LinkTypes;\r\n\t\tconst departmentID = DataAttributeTools.DataForElementOrParents(checkbox, departmentIdAttributeName) as string;\r\n\r\n\t\tUserAssignments.UpdateAssignment(userID, departmentID, linkType, value, Notifications.ChangeSaved);\r\n\r\n\t\tif (value && linkType == UserAssignments.LinkTypes.Assigned || linkType == UserAssignments.LinkTypes.Supervising)\r\n\t\t{\r\n\t\t\tsetCertifiedChecked(checkbox);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setCertifiedChecked(checkbox: JQuery)\r\n\t{\r\n\t\tvar certifiedCheckbox = checkbox.parents(\"tr\").find(\"input[data-linktype=0]\");\r\n\t\tcertifiedCheckbox.prop(\"checked\", true);\r\n\t}\r\n\r\n\tfunction getUserID(element: JQuery): any\r\n\t{\r\n\t\treturn element.parents(\"table\").data(userIdAttributeName);\r\n\t}\r\n}","module CheckboxRange {\r\n\texport function construct() {\r\n\t\t$(\"tbody tr input[type=checkbox]\").click(handleCheckboxChecked);\r\n\t}\r\n\r\n\tfunction handleCheckboxChecked(event: JQuery.Event) {\r\n\t\tconst clickedCheckbox = $(this);\r\n\t\tconst selectedCells = TableRangeSelection.getSelectedCells(clickedCheckbox);\r\n\t\tif (selectedCells == null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst newValue = clickedCheckbox.is(\":checked\");\r\n\r\n\t\tselectedCells.forEach(function (td) {\r\n\t\t\tconst checkbox = td.find(\"input[type=checkbox]\");\r\n\t\t\tif (checkbox.is(':disabled')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tcheckbox.prop(\"checked\", newValue);\r\n\t\t});\r\n\t}\r\n}\r\n\r\n$(document).ready(() => {\r\n\tCheckboxRange.construct();\r\n});","module ContentEditableDivRange {\r\n export function construct() {\r\n $(\"tbody tr div[contenteditable=true]\").keyup(handleContentEditableDivChanged);\r\n }\r\n\r\n function handleContentEditableDivChanged(event: JQuery.Event) {\r\n const changedDiv = $(this);\r\n\r\n if (!ContentEditableDiv.getIfDivChanged(changedDiv)) {\r\n return;\r\n }\r\n\r\n const selectedCells = TableRangeSelection.getSelectedCells(changedDiv);\r\n if (selectedCells == null) {\r\n return;\r\n }\r\n const newValue = changedDiv.html();\r\n\r\n selectedCells.forEach(function (td) {\r\n const div = td.find(\"div[contenteditable=true]\");\r\n if (!div.is(changedDiv)) {\r\n div.html(newValue);\r\n const backingInput = ContentEditableDiv.getBackingInput(div);\r\n backingInput.change();\r\n }\r\n });\r\n }\r\n}\r\n\r\n$(document).ready(() => {\r\n ContentEditableDivRange.construct();\r\n});","module InputTextRange {\r\n\texport function construct() {\r\n\t\t$(\"tbody tr input[type=text], tbody tr input[type=number]\").keyup(handleInputChanged);\r\n\t}\r\n\r\n\tfunction handleInputChanged(event: JQuery.Event) {\r\n\t\tconst changedInput = $(this);\r\n\r\n\t\tconst selectedCells = TableRangeSelection.getSelectedCells(changedInput);\r\n\t\tif (selectedCells == null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst newValue = changedInput.val();\r\n\r\n\t\tselectedCells.forEach(function (td) {\r\n\t\t\tconst input = td.find(\"input[type=text], input[type=number]\");\r\n\t\t\tif (input.is(':disabled')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!input.is(changedInput)) {\r\n\t\t\t\tinput.val(newValue);\r\n\t\t\t\tinput.change();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\n$(document).ready(() => {\r\n\tInputTextRange.construct();\r\n});","module TableRangeSelection {\r\n const selectedRowCssClass = \"multiselect\";\r\n\r\n let FirstElement: JQuery = null;\r\n let SecondElement: JQuery = null;\r\n\r\n export function construct() {\r\n $(\"tbody tr\").click(handleSelectionInput);\r\n }\r\n\r\n function handleSelectionInput(event: JQuery.Event) {\r\n const clickedTr = $(event.target).parents(\"tr\");\r\n\r\n //If clicking a row not inside the range without shift held, remove selection\r\n if (!event.shiftKey) {\r\n var selectedRows = getSelectedRows();\r\n if (selectedRows == null) {\r\n return;\r\n }\r\n if (selectedRows.index(clickedTr) === -1) {\r\n clearSelection();\r\n return;\r\n }\r\n\r\n return;\r\n }\r\n\r\n //If the first element has not yet been selected we should\r\n //record this as the first element.\r\n if (FirstElement == null) {\r\n FirstElement = clickedTr;\r\n }\r\n //Otherwise we have both the start and finish and can\r\n //proceed with the multiselect\r\n else {\r\n SecondElement = clickedTr;\r\n }\r\n\r\n styleSelectedElements();\r\n //Browsers also handle shift+click. Deselect anything they selected here.\r\n document.getSelection().removeAllRanges();\r\n }\r\n\r\n function clearSelection() {\r\n FirstElement = null;\r\n SecondElement = null;\r\n styleSelectedElements();\r\n }\r\n\r\n export function getSelectedRows(): JQuery {\r\n if (FirstElement == null || SecondElement == null) {\r\n return null;\r\n }\r\n if (FirstElement.index() < SecondElement.index()) {\r\n return FirstElement.nextUntil(SecondElement).add(SecondElement).add(FirstElement);\r\n }\r\n else {\r\n return FirstElement.prevUntil(SecondElement).add(SecondElement).add(FirstElement);\r\n }\r\n }\r\n\r\n export function getSelectedCells(triggeringElement: JQuery): JQuery[] {\r\n const td = triggeringElement.is(\"td\") ? triggeringElement : triggeringElement.parents(\"td\");\r\n const tr = td.parents(\"tr\");\r\n\r\n const trs = getSelectedRows();\r\n if (trs == null || trs.length === 0 || trs.index(tr) === -1) {\r\n return null;\r\n }\r\n\r\n const columnIndex = tr.find(\"td\").index(td);\r\n if (columnIndex === -1) {\r\n console.log(\"Triggering element not found in parent row.\");\r\n return;\r\n }\r\n\r\n let result = [];\r\n trs.each(function (index: number) {\r\n const tr = $(this);\r\n const td = tr.children(\"td\").eq(columnIndex);\r\n result.push(td);\r\n });\r\n return result;\r\n }\r\n\r\n function styleSelectedElements() {\r\n //Remove any previous selections\r\n $(`.${selectedRowCssClass}`).removeClass(selectedRowCssClass);\r\n\r\n //Selection is incomplete, highlight FirstElement\r\n if (SecondElement == null) {\r\n if (FirstElement != null) {\r\n FirstElement.addClass(selectedRowCssClass);\r\n }\r\n }\r\n //Selection is complete, highlight all selected rows\r\n else {\r\n getSelectedRows().addClass(selectedRowCssClass);\r\n }\r\n }\r\n}\r\n\r\n$(document).ready(() => {\r\n TableRangeSelection.construct();\r\n});","module HearingLocationFactory {\r\n\texport function GetCitiesByState(state: States, successCallback: (Cities: string[]) => any, failureCallback: () => any)\r\n\t{\r\n\t\tconst parameters = {\r\n\t\t\tstate: state\r\n\t\t};\r\n\t\t$.ajax(\"/Api/SocialSecurity/HearingLocations/CitiesByState\", {\r\n\t\t\tdata: $.param(parameters),\r\n\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\tdataType: \"json\",\r\n\t\t\ttype: \"GET\",\r\n\t\t\ttimeout: 5000,\r\n\t\t\tsuccess: successCallback,\r\n\t\t\terror: failureCallback\r\n\t\t});\r\n\t}\r\n\r\n\texport function ByStateCity(state: States, city: string, successCallback: (HearingLocations: IHearingLocation[]) => any, failureCallback: () => any)\r\n\t{\r\n\t\tconst parameters = {\r\n\t\t\tstate: state,\r\n\t\t\tcity: city\r\n\t\t};\r\n\t\t$.ajax(\"/Api/SocialSecurity/HearingLocations/ByCityState\", {\r\n\t\t\tdata: $.param(parameters),\r\n\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\tdataType: \"json\",\r\n\t\t\ttype: \"GET\",\r\n\t\t\ttimeout: 5000,\r\n\t\t\tsuccess: successCallback,\r\n\t\t\terror: failureCallback\r\n\t\t});\r\n\t}\r\n}","module HearingLocationPicker {\r\n\tlet stateSelect: JQuery;\r\n\tlet citySelect: JQuery;\r\n\tlet locationSelect: JQuery;\r\n\r\n\texport function construct() {\r\n\t\tstateSelect = $(\"#HearingLocationStateSelect\");\r\n\t\tcitySelect = $(\"#HearingLocationCitySelect\");\r\n\t\tlocationSelect = $(\"#HearingLocationSelect\");\r\n\r\n\t\tstateSelect.change(stateSelectChanged);\r\n\t\tcitySelect.change(citySelectChanged);\r\n\t\tSelectTools.autoSelect(stateSelect);\r\n\t}\r\n\r\n\tconst selectedState = () => stateSelect.val() as States;\r\n\tconst selectedCity = () => citySelect.val() as string;\r\n\tconst clearOfficeCitySelect = () => citySelect.html(\"\");\r\n\tconst clearOfficeSelect = () => locationSelect.html(\"\");\r\n\r\n\tfunction stateSelectChanged() {\r\n\t\tclearOfficeCitySelect();\r\n\t\tclearOfficeSelect();\r\n\t\tSelectTools.addBlankOption(citySelect);\r\n\r\n\t\tconst state = selectedState();\r\n\t\tHearingLocationFactory.GetCitiesByState(state,\r\n\r\n\t\t\t(cities: string[]) => {\r\n\t\t\t\t$.each(cities, (index, city) => {\r\n\t\t\t\t\tcitySelect.append(``);\r\n\t\t\t\t});\r\n\t\t\t\tSelectTools.autoSelect(citySelect);\r\n\t\t\t},\r\n\r\n\t\t\t() => {\r\n\t\t\t\tNotifications.Warning(`Failed to retrieve list of cities with Hearing Locations for the state ${state}.`);\r\n\t\t\t}\r\n\r\n\t\t);\r\n\t}\r\n\r\n\tfunction citySelectChanged() {\r\n\t\tclearOfficeSelect();\r\n\t\tSelectTools.addBlankOption(locationSelect);\r\n\r\n\t\tconst state = selectedState();\r\n\t\tif (state == States.blank) return;\r\n\t\tconst city = selectedCity();\r\n\t\tif (city == null || city == \"\") return;\r\n\r\n\t\tHearingLocationFactory.ByStateCity(state, city,\r\n\t\t\t(fieldOffices) => {\r\n\t\t\t\t$.each(fieldOffices, (index, hearingLocation) => {\r\n\t\t\t\t\tvar name = hearingLocation.Address;\r\n\t\t\t\t\tif (hearingLocation.OhoOffice_RowID != null) {\r\n\t\t\t\t\t\tname += \" (OHO)\";\r\n\t\t\t\t\t} else if (hearingLocation.FieldOffice_RowID != null) {\r\n\t\t\t\t\t\tname += \" (FO)\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlocationSelect.append(``);\r\n\t\t\t\t});\r\n\t\t\t\tSelectTools.autoSelect(locationSelect);\r\n\t\t\t},\r\n\t\t\t() => {\r\n\t\t\t\tNotifications.Warning(`Failed to retrieve list of Hearing Locations for ${city}, ${state}.`);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}","module DdsOfficeFactory\r\n{\r\n\texport function GetCitiesByState(state: States, successCallback: (Cities: string[]) => any, failureCallback: () => any)\r\n\t{\r\n\t\tconst parameters = {\r\n\t\t\tstate: state\r\n\t\t};\r\n\t\t$.ajax(\"/Api/SocialSecurity/Offices/Dds/GetDdsOfficeCitiesByState\", {\r\n data: $.param(parameters),\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n type: \"GET\",\r\n timeout: 5000,\r\n success: successCallback,\r\n error: failureCallback\r\n });\r\n\t}\r\n\r\n\texport function GetDdsOfficesByStateCity(state: States, city: string, successCallback: (FieldOffices: IDdsOffice[]) => any, failureCallback: () => any)\r\n\t{\r\n\t\tconst parameters = {\r\n\t\t\tstate: state,\r\n\t\t\tcity: city\r\n\t\t};\r\n\t\t$.ajax(\"/Api/SocialSecurity/Offices/Dds/GetDdsOfficesByCityState\", {\r\n data: $.param(parameters),\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n type: \"GET\",\r\n timeout: 5000,\r\n success: successCallback,\r\n error: failureCallback\r\n });\r\n\t}\r\n}","module FieldOfficeFactory\r\n{\r\n\texport function GetCitiesByState(state: States, successCallback: (Cities: string[]) => any, failureCallback: () => any)\r\n\t{\r\n\t\tconst parameters = {\r\n\t\t\tstate: state\r\n\t\t};\r\n\t\t$.ajax(\"/Api/SocialSecurity/Offices/Field/GetFieldOfficeCitiesByState\", {\r\n data: $.param(parameters),\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n type: \"GET\",\r\n timeout: 5000,\r\n success: successCallback,\r\n error: failureCallback\r\n });\r\n\t}\r\n\r\n\texport function GetFieldOfficesByStateCity(state: States, city: string, successCallback: (FieldOffices: IFieldOffice[]) => any, failureCallback: () => any)\r\n\t{\r\n\t\tconst parameters = {\r\n\t\t\tstate: state,\r\n\t\t\tcity: city\r\n\t\t};\r\n\t\t$.ajax(\"/Api/SocialSecurity/Offices/Field/GetFieldOfficesByCityState\", {\r\n data: $.param(parameters),\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n type: \"GET\",\r\n timeout: 5000,\r\n success: successCallback,\r\n error: failureCallback\r\n });\r\n\t}\r\n}","module OhoOfficeFactory\r\n{\r\n\texport function GetCitiesByState(state: States, successCallback: (Cities: string[]) => any, failureCallback: () => any)\r\n\t{\r\n\t\tconst parameters = {\r\n\t\t\tstate: state\r\n\t\t};\r\n\t\t$.ajax(\"/Api/SocialSecurity/Offices/Oho/GetOhoOfficeCitiesByState\", {\r\n data: $.param(parameters),\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n type: \"GET\",\r\n timeout: 5000,\r\n success: successCallback,\r\n error: failureCallback\r\n });\r\n\t}\r\n\r\n\texport function GetOhoOfficesByStateCity(state: States, city: string, successCallback: (OhoOffices: IOhoOffice[]) => any, failureCallback: () => any)\r\n\t{\r\n\t\tconst parameters = {\r\n\t\t\tstate: state,\r\n\t\t\tcity: city\r\n\t\t};\r\n\t\t$.ajax(\"/Api/SocialSecurity/Offices/Oho/GetOhoOfficesByCityState\", {\r\n data: $.param(parameters),\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n type: \"GET\",\r\n timeout: 5000,\r\n success: successCallback,\r\n error: failureCallback\r\n });\r\n\t}\r\n}","module DdsOfficePicker {\r\n let stateSelect: JQuery;\r\n let citySelect: JQuery;\r\n let officesSelect: JQuery;\r\n\r\n export function construct() {\r\n stateSelect = $(\"#DdsOfficeStateSelect\");\r\n citySelect = $(\"#DdsOfficeCitySelect\");\r\n officesSelect = $(\"#DdsOfficesSelect\");\r\n\r\n stateSelect.change(stateSelectChanged);\r\n citySelect.change(citySelectChanged);\r\n\r\n if (stateSelect.length > 0) {\r\n stateSelectChanged();\r\n }\r\n }\r\n\r\n function stateSelectChanged() {\r\n clearOfficeCitySelect();\r\n clearOfficeSelect();\r\n SelectTools.addBlankOption(citySelect);\r\n\r\n const state = selectedState();\r\n DdsOfficeFactory.GetCitiesByState(state,\r\n (cities: string[]) => {\r\n $.each(cities, (index, city) => {\r\n citySelect.append(``);\r\n });\r\n },\r\n () => {\r\n Notifications.Warning(`Failed to retrieve list of cities with Dds Offices for the state ${state}.`);\r\n }\r\n );\r\n }\r\n\r\n function citySelectChanged() {\r\n clearOfficeSelect();\r\n SelectTools.addBlankOption(officesSelect);\r\n\r\n const state = selectedState();\r\n const city = selectedCity();\r\n DdsOfficeFactory.GetDdsOfficesByStateCity(state, city,\r\n (ddsOffices) => {\r\n $.each(ddsOffices, (index, ddsOffice) => {\r\n officesSelect.append(``);\r\n });\r\n },\r\n () => {\r\n Notifications.Warning(`Failed to retrieve list of Dds Offices for ${city}, ${state}.`);\r\n }\r\n );\r\n }\r\n\r\n const selectedState = () => stateSelect.val() as States;\r\n const selectedCity = () => citySelect.val() as string;\r\n\r\n const clearOfficeCitySelect = () => citySelect.html(\"\");\r\n const clearOfficeSelect = () => officesSelect.html(\"\");\r\n}","module FieldOfficePicker {\r\n let stateSelect: JQuery;\r\n let citySelect: JQuery;\r\n let officesSelect: JQuery;\r\n\r\n export function construct() {\r\n stateSelect = $(\"#FieldOfficeStateSelect\");\r\n citySelect = $(\"#FieldOfficeCitySelect\");\r\n officesSelect = $(\"#FieldOfficesSelect\");\r\n\r\n stateSelect.change(stateSelectChanged);\r\n citySelect.change(citySelectChanged);\r\n\r\n if (stateSelect.length > 0) {\r\n stateSelectChanged();\r\n }\r\n }\r\n\r\n function stateSelectChanged() {\r\n clearOfficeCitySelect();\r\n clearOfficeSelect();\r\n SelectTools.addBlankOption(citySelect);\r\n\r\n const state = selectedState();\r\n FieldOfficeFactory.GetCitiesByState(state,\r\n (cities: string[]) => {\r\n $.each(cities, (index, city) => {\r\n citySelect.append(``);\r\n });\r\n },\r\n () => {\r\n Notifications.Warning(`Failed to retrieve list of cities with Field Offices for the state ${state}.`);\r\n }\r\n );\r\n }\r\n\r\n function citySelectChanged() {\r\n clearOfficeSelect();\r\n SelectTools.addBlankOption(officesSelect);\r\n\r\n const state = selectedState();\r\n const city = selectedCity();\r\n FieldOfficeFactory.GetFieldOfficesByStateCity(state, city,\r\n (fieldOffices) => {\r\n $.each(fieldOffices, (index, fieldOffice) => {\r\n officesSelect.append(``);\r\n });\r\n },\r\n () => {\r\n Notifications.Warning(`Failed to retrieve list of Field Offices for ${city}, ${state}.`);\r\n }\r\n );\r\n }\r\n\r\n const selectedState = () => stateSelect.val() as States;\r\n const selectedCity = () => citySelect.val() as string;\r\n\r\n const clearOfficeCitySelect = () => citySelect.html(\"\");\r\n const clearOfficeSelect = () => officesSelect.html(\"\");\r\n}","module OhoOfficePicker {\r\n let stateSelect: JQuery;\r\n let citySelect: JQuery;\r\n let officesSelect: JQuery;\r\n\r\n export function construct() {\r\n stateSelect = $(\"#OhoOfficeStateSelect\");\r\n citySelect = $(\"#OhoOfficeCitySelect\");\r\n officesSelect = $(\"#OhoOfficesSelect\");\r\n\r\n stateSelect.change(stateSelectChanged);\r\n citySelect.change(citySelectChanged);\r\n\r\n if (stateSelect.length > 0) {\r\n stateSelectChanged();\r\n }\r\n }\r\n\r\n function stateSelectChanged() {\r\n clearOfficeCitySelect();\r\n clearOfficeSelect();\r\n SelectTools.addBlankOption(citySelect);\r\n\r\n const state = selectedState();\r\n OhoOfficeFactory.GetCitiesByState(state,\r\n (cities: string[]) => {\r\n $.each(cities, (index, city) => {\r\n citySelect.append(``);\r\n });\r\n },\r\n () => {\r\n Notifications.Warning(`Failed to retrieve list of cities with Oho Offices for the state ${state}.`);\r\n }\r\n );\r\n }\r\n\r\n function citySelectChanged() {\r\n clearOfficeSelect();\r\n SelectTools.addBlankOption(officesSelect);\r\n\r\n const state = selectedState();\r\n const city = selectedCity();\r\n OhoOfficeFactory.GetOhoOfficesByStateCity(state, city,\r\n (ohoOffices) => {\r\n $.each(ohoOffices, (index, ohoOffice) => {\r\n officesSelect.append(``);\r\n });\r\n },\r\n () => {\r\n Notifications.Warning(`Failed to retrieve list of Oho Offices for ${city}, ${state}.`);\r\n }\r\n );\r\n }\r\n\r\n const selectedState = () => stateSelect.val() as States;\r\n const selectedCity = () => citySelect.val() as string;\r\n\r\n const clearOfficeCitySelect = () => citySelect.html(\"\");\r\n const clearOfficeSelect = () => officesSelect.html(\"\");\r\n}","var shiftWindow = () => { scrollBy(0, -50) };\r\nwindow.addEventListener(\"hashchange\", shiftWindow);\r\nfunction load() { if (window.location.hash) shiftWindow(); }\r\n\r\n$(document).ready(() => {\r\n\tload();\r\n});\r\n\r\nwindow.onhashchange = shiftWindow;"]}