{"version":3,"sources":["Apfco.js","DatatableAjaxSearch.js","IFormFile.js","UnqualifiedReasonAutoUnqualify.js","UnqualifiedReasonReviewer.js","ViewHomeEntryForm.js","ViewSharedLayoutPrimary.js","ViewSubmissionReviewInvoice.js","ViewSubmissionReviewSubmission.js","VueComponents/ProductSelector/product-selector.js","VueComponents/Test2ButtonCounter/test-2-button-counter.js","VueComponents/Test1TextDisplay/test-1-text-display.js","VueComponents/MultiFileUploader/multi-file-uploader.js","VueComponents/Test3CrudTable/test-3-crud-table-row.js","VueComponents/Test3CrudTable/test-3-crud-table.js"],"names":["Apfco","[object Object]","key","value","url","window","location","href","hash","re","RegExp","test","replace","split","separator","indexOf","milliseconds","Promise","resolve","setTimeout","inputString","findString","replaceString","c","r","Math","random","toString","str","isNaN","parseFloat","parseInt","Number","email","amount","includeSign","decimalCount","decimal","thousands","abs","negativeSign","i","toFixed","j","length","output","substr","slice","e","console","log","toLocaleString","undefined","style","minimumFractionDigits","target","$","find","each","this","submit","event","attr","prop","currentForm","click","type","name","val","insertBefore","children","first","DatatableAjaxSearch","id","table","dataTable","tableOptions","fnSettings","DataTable","destroy","processing","serverSide","ajax","data","d","search","initComplete","input","unbind","self","api","$searchButton","text","reload","on","keyCode","append","paging","pagingType","lengthMenu","aaSorting","IFormFile","thisObj","elLabelWrapper","parentElement","elLabelSpan","getElementsByTagName","classList","add","contains","lineHeight","offsetHeight","filename","files","pop","substring","innerHTML","IFormFileList","elementsByClass","document","getElementsByClassName","push","item","UnqualifiedReasonAutoUnqualify","targetHiddenInput","querySelectorAll","targetButton","RefreshDisplay","className","UnqualifiedReasonAutoUnqualifyList","UnqualifiedReasonAutoUnqualifysByClass","UnqualifiedReasonReviewer","UnqualifiedReasonReviewerList","UnqualifiedReasonReviewersByClass","ViewHomeEntryForm","GLOBALROOTURL","sleep","ViewHomeEntryFormList","body","ViewSharedLayoutPrimary","disableFormButtonsOnSubmit","wrapTrademarkSymbolsWithSuperscriptTag","focus","info","searching","tooltip","regexp","contents","filter","nodeType","nodeValue","replaceWith","ViewSharedLayoutPrimaryList","ViewSmartreviewReviewInvoice","initializeLinkHtmlElements","initializeLineItemTableRows","refreshDisplay","initializeAssignEvents","initializeFormChangeDetection","initializeDisableFormInput","Form","FormFieldsChanged","getElementById","IsReadOnly","IsReadOnlyValue","SubPendingUpdatesMade","SubBtnAddLineItem","SubBtnUpdate","SubBtnReturnToSubmission","ReviewInvoiceLineItems","ReviewInvoiceLineItem","onclick","addLineItem","change","setFormFieldsChanged","elements","disabled","display","refreshDisplayLineItems","lastEnabledIndex","IsEnabled","newEnabledIndex","parent","ProductFullDescription","Quantity","BtnRemove","remove","ViewSmartreviewReviewInvoiceList","ViewSmartreviewReviewSubmission","SubBtnInvoiceEditList","SubBtnProcess","SubBtnHold","SubBtnVoid","ReviewComment","SubBtnBack","ReviewNextAvailableSubmission","SubBtnClientReturn","ViewSmartreviewReviewSubmissionList","Vue","component","template","props","promotionId","String","urlApiCalculateProductSelectorData","isInitialized","productSelectionData","errors","created","async","initialize","methods","calculateProductSelectionData","requestBody","lineItems","lineItem","quantity","axios","post","$props","JSON","stringify","headers","Content-Type","then","response","formatCurrency","catch","error","getClassLineItemQuantity","x","productGroupId","customProductIdOrder","sort","a","b","sortOrder","description","localeCompare","navigator","languages","language","numeric","ignorePunctuation","sensitivity","produtGroupId","filterLineItemsByGroup","reduce","accumulation","extendedValue","handleFormUpdate","handleFormatting","handleValidation","handleCalculation","isInteger","message","computed","errorsDistinctMessages","hasBonus","hasBonus15","hasBonus20","count","urlUploadBase","urlApiGetImages","urlApiUpload","urlApiDelete","images","uploadPercentage","isUploadInProgress","getImages","get","getFileUploadUrl","handleFileUpload","file","$refs","inputFile","formData","FormData","onUploadProgress","progressEvent","round","loaded","total","bind","startsWith","handleDelete","row","Object","inputValueString","inputValueFloat","updateStart","valueString","valueFloat","isEditing","updateSubmit","$emit","updateCancel","rows","validateString","validateFloat","newRow","getUUID","handleUpdate","rowId","rowIndex","map","handleRemove","splice","isNumeric","totalFloat","sum"],"mappings":"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","file":"site.min.js","sourcesContent":["\r\n\r\n//NOTE: The layout should have the constant GLOBALROOTURL defined - Used for transferring data from server-side to client side via APIs\r\n\r\n\r\nclass Apfco {\r\n\r\n static updateQueryString(key, value, url) { //Update query string parameters - Taken from here: https://stackoverflow.com/questions/5999118/add-or-update-query-string-parameter\r\n if (!url) url = window.location.href;\r\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|#|$)(.*)\", \"gi\"),\r\n hash;\r\n\r\n if (re.test(url)) {\r\n if (typeof value !== 'undefined' && value !== null)\r\n return url.replace(re, '$1' + key + \"=\" + value + '$2$3');\r\n else {\r\n hash = url.split('#');\r\n url = hash[0].replace(re, '$1$3').replace(/(&|\\?)$/, '');\r\n if (typeof hash[1] !== 'undefined' && hash[1] !== null)\r\n url += '#' + hash[1];\r\n return url;\r\n }\r\n }\r\n else {\r\n if (typeof value !== 'undefined' && value !== null) {\r\n var separator = url.indexOf('?') !== -1 ? '&' : '?';\r\n hash = url.split('#');\r\n url = hash[0] + separator + key + '=' + value;\r\n if (typeof hash[1] !== 'undefined' && hash[1] !== null)\r\n url += '#' + hash[1];\r\n return url;\r\n }\r\n else\r\n return url;\r\n }\r\n }\r\n\r\n static stripQueryStringAndHashFromUrl(url) { //Example, changes http://localhost:61222/?test=123#NavContent to http://localhost:61222/ - From https://stackoverflow.com/questions/2540969/remove-querystring-from-url\r\n return url.split(/[?#]/)[0];\r\n }\r\n\r\n static sleep(milliseconds) { //Use in async functions to insert a delay before continuing processing. Example: await Apfco.Sleep(2000);\r\n return new Promise(function (resolve) {\r\n setTimeout(resolve, milliseconds);\r\n });\r\n }\r\n\r\n static replaceAll(inputString, findString, replaceString) { //Replace all instances of a value in a string - native string.replace() only works on first instance\r\n let inputStringRegEscaped = inputString.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\r\n return inputString.replace(new RegExp(findString, 'g'), replaceString);\r\n }\r\n\r\n static getUUID() { //Generate a new UUID - taken from here: https://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n static isNumeric(str) { //Check if a string is numeric - taken from here: https://stackoverflow.com/questions/175739/built-in-way-in-javascript-to-check-if-a-string-is-a-valid-number\r\n if (typeof str === \"number\") return true; //If the type is already found to be a number, return true\r\n else if (typeof str === \"bigint\") return true;\r\n else if (typeof str !== \"string\") return false; // we only process strings! \r\n return !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\r\n !isNaN(parseFloat(str)) // ...and ensure strings of whitespace fail\r\n }\r\n\r\n static isInteger(value) {\r\n return !isNaN(value) &&\r\n parseInt(Number(value)) == value &&\r\n !isNaN(parseInt(value, 10));\r\n }\r\n\r\n static isValidEmail(email) { //Check if a string is a valid email - taken from here: https://ui.dev/validate-email-address-javascript/\r\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)\r\n }\r\n\r\n static formatCurrency(amount, includeSign = true, decimalCount = 2, decimal = \".\", thousands = \",\") {\r\n try {\r\n decimalCount = Math.abs(decimalCount);\r\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\r\n\r\n const negativeSign = amount < 0 ? \"-\" : \"\";\r\n\r\n let i = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\r\n let j = (i.length > 3) ? i.length % 3 : 0;\r\n\r\n let output = negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\r\n\r\n if (includeSign)\r\n output = '$' + output;\r\n\r\n return output;\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n };\r\n\r\n static formatPercentage(value) {\r\n return value.toLocaleString(undefined, { style: 'percent', minimumFractionDigits: 0 });\r\n }\r\n\r\n static disableFormButtonsOnSubmit(target) {\r\n //Make it so every submit button found in every form on the site is diabled when the form is submitted (solves numerous issues)\r\n //Fixes include the \"The provided anti-forgery token was meant for user \"\", but the current user is \"ACT-2JFD6AMVSN7C\".\" which is caused by users double-clicking on the login button\r\n //Note that this is NOT for security, as users can diable JS. This is only for avoiding user-unfriendly or confusing error messages\r\n $(target).find('form').each(function () {\r\n $(this).submit(function (event) {\r\n $(this).find(':input[type=submit], button').each(function () {\r\n if (!$(this).attr('apfDontDisableOnSubmit')) { //Don't disable if the apfDontDisableOnSubmit=\"true\" attribute exists on the button\r\n $(this).prop('disabled', true);\r\n }\r\n });\r\n });\r\n });\r\n $(target).find('form').each(function () {\r\n let currentForm = this; //Get the current form\r\n $(this).find(':input[type=submit], button').each(function () {\r\n if (!$(this).attr('apfDontDisableOnSubmit')) { //Don't disable if the apfDontDisableOnSubmit=\"true\" attribute exists on the button\r\n $(this).click(function (event) {\r\n $('').attr({ //Create a hidden property for the clicked button to submit along with the form. Solves the issue with disabled buttons not getting submitted. This way you can find which button was clicked\r\n type: 'hidden',\r\n name: $(this).attr('name'),\r\n value: $(this).val()\r\n }).insertBefore($(currentForm).children().first()); //Append to the start of the current form, instead of next to the button itself or the end of the form. Otherwise it may mess with any last-child CSS selectors\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n}","\r\nfunction DatatableAjaxSearch(id, url) {\r\n\r\n var table = $(id).dataTable();\r\n\r\n //Grab the current global table settings for the table\r\n tableOptions = table.fnSettings();\r\n\r\n //Destroy the current table to rebuild\r\n table.DataTable().destroy();\r\n\r\n //Settings to make AJAX call\r\n tableOptions.processing = true;\r\n tableOptions.serverSide = false;\r\n tableOptions.ajax = {\r\n url: url,\r\n type: 'POST',\r\n data: function (d) {\r\n d.search = $(id + '_filter input').val();\r\n }\r\n };\r\n\r\n // Creates the search button\r\n tableOptions.initComplete = function () {\r\n var input = $('.dataTables_filter input').unbind(),\r\n self = this.api(),\r\n $searchButton = $('\r\n `,\r\n data: function () {\r\n return {\r\n count: 0\r\n }\r\n },\r\n})","Vue.component('test-1-text-display', {\r\n template: `\r\n
The quick brown fox jumps over the lazy dog. 1234567890
\r\n `\r\n})","Vue.component('multi-file-uploader', {\r\n template: `\r\n
\r\n
Loading...
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
#File NameRemove
No files uploaded. Please select at least one file to continue.
{{ index + 1 }}\r\n \r\n {{ image.originalFilename }}\r\n ({{ image.originalFilePageNumber }})\r\n \r\n
\r\n\r\n
\r\n
\r\n `,\r\n props: {\r\n urlUploadBase: String,\r\n urlApiGetImages: String,\r\n urlApiUpload: String,\r\n urlApiDelete: String,\r\n },\r\n data: function () {\r\n return {\r\n isInitialized: false,\r\n errors: [],\r\n images: [],\r\n uploadPercentage: 0,\r\n isUploadInProgress: false\r\n }\r\n },\r\n created: async function () {\r\n console.log('Component - multi-file-uploader - initializing..')\r\n console.log(this.$props.urlUploadBase);\r\n console.log(this.$props.urlApiGetImages);\r\n console.log(this.$props.urlApiUpload);\r\n console.log(this.$props.urlApiDelete);\r\n await this.initialize();\r\n console.log('Component - multi-file-uploader - initialization complete.')\r\n },\r\n methods: {\r\n initialize: async function () {\r\n //this.images = [{ id: 1, filename = 'test' }, { id: 2, filename = 'test 2' }];\r\n //await Apfco.sleep(1000);\r\n await this.getImages();\r\n this.isInitialized = true;\r\n },\r\n getImages: async function () {\r\n await axios.get(this.$props.urlApiGetImages).then(response => (this.images = response.data.images));\r\n },\r\n getFileUploadUrl: function (filename) {\r\n return this.$props.urlUploadBase + filename;\r\n },\r\n handleFileUpload: async function () {\r\n let thisObj = this;\r\n console.log('File upload starting..');\r\n\r\n console.log('Clearing errors and upload width..');\r\n this.errors = [];\r\n this.uploadPercentage = 0;\r\n this.isUploadInProgress = true;\r\n\r\n let file = this.$refs.inputFile.files[0];\r\n console.log('Uploading file..', file);\r\n let formData = new FormData();\r\n formData.append('file', file);\r\n\r\n await axios.post(this.$props.urlApiUpload\r\n , formData\r\n , {\r\n headers: { 'Content-Type': 'multipart/form-data' },\r\n onUploadProgress: function (progressEvent) {\r\n this.uploadPercentage = parseInt(Math.round((progressEvent.loaded / progressEvent.total) * 100));\r\n console.log('Upload Percentage: '+ this.uploadPercentage);\r\n }.bind(this)\r\n }\r\n )\r\n .then(function () {\r\n thisObj.isUploadInProgress = false;\r\n console.log('Success');\r\n })\r\n .catch(function (error) {\r\n thisObj.isUploadInProgress = false;\r\n console.log('Failed', error.response);\r\n //If it's a \r\n \r\n {{ row.valueString }}\r\n \r\n \r\n \r\n {{ row.valueFloat }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n props: {\r\n row: Object,\r\n },\r\n data: function () {\r\n return {\r\n inputValueString: '',\r\n inputValueFloat: '',\r\n }\r\n },\r\n methods: {\r\n updateStart: function () {\r\n\r\n //Copy the current values into the update fields\r\n this.inputValueString = this.$props.row.valueString;\r\n this.inputValueFloat = Number(this.$props.row.valueFloat);\r\n\r\n //Mark as currently editing\r\n this.$props.row.isEditing = true;\r\n },\r\n updateSubmit: function () {\r\n //Emit the submit event, passing the form field values\r\n this.$emit('updateSubmit', this.$props.row.id, this.inputValueString, this.inputValueFloat);\r\n\r\n },\r\n updateCancel: function () {\r\n this.$props.row.isEditing = false; //For cancel, just clear the fields and cancel with no further action\r\n },\r\n remove: function () {\r\n //Emit the remove event, passing it's own row ID so the parent knows what to remove\r\n this.$emit('remove', this.$props.row.id);\r\n }\r\n },\r\n})","Vue.component('test-3-crud-table', {\r\n template: `\r\n
\r\n
\r\n

Please correct the following error(s):

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
StringFloatOptions
\r\n \r\n \r\n \r\n \r\n \r\n
Total{{ totalFloat }}
\r\n
\r\n `,\r\n data: function () {\r\n return {\r\n inputValueString: '',\r\n inputValueFloat: '',\r\n errors: [],\r\n rows: [\r\n { id: 1, valueString: 'Example 1', valueFloat: 15, isEditing = false },\r\n { id: 2, valueString: 'Example 2', valueFloat: 20, isEditing = false },\r\n { id: 3, valueString: 'Example 3', valueFloat: 30, isEditing = false }\r\n ]\r\n }\r\n },\r\n methods: {\r\n add: function () {\r\n\r\n //Clear any previous errors\r\n this.errors = [];\r\n\r\n //Validate the form\r\n this.validateString(this.inputValueString);\r\n this.validateFloat(this.inputValueFloat);\r\n \r\n //If no errors were found, continue\r\n if (!this.errors.length) {\r\n //Add the new row\r\n let newRow = { id = Apfco.getUUID(), valueString: this.inputValueString, valueFloat: Number(this.inputValueFloat), isEditing = false };\r\n this.rows.push(newRow);\r\n\r\n //Clear the input fields\r\n this.inputValueString = '';\r\n this.inputValueFloat = '';\r\n }\r\n },\r\n handleUpdate: function (rowId, inputValueString, inputValueFloat) {\r\n\r\n //Clear any previous errors\r\n this.errors = [];\r\n\r\n //Validate the form\r\n this.validateString(inputValueString);\r\n this.validateFloat(inputValueFloat);\r\n\r\n if (!this.errors.length) {\r\n\r\n //Get the row\r\n let rowIndex = this.rows.map(function (row) { return row.id; }).indexOf(rowId);\r\n let row = this.rows[rowIndex];\r\n\r\n row.valueString = inputValueString;\r\n row.valueFloat = Number(inputValueFloat);\r\n\r\n //Set editing back to false\r\n row.isEditing = false;\r\n }\r\n \r\n },\r\n handleRemove: function (rowId) {\r\n //See here: https://gist.github.com/scottopolis/6e35cf0d53bae81e6161662e6374da04\r\n let rowIndex = this.rows.map(function (row) { return row.id; }).indexOf(rowId);\r\n this.rows.splice(rowIndex, 1);\r\n },\r\n validateString: function(input) {\r\n if (!input) {\r\n this.errors.push(\"String is required.\");\r\n }\r\n else if (input.length > 10) {\r\n this.errors.push('Max string length is 10 characters.');\r\n }\r\n },\r\n validateFloat: function (input) {\r\n if (!input) {\r\n this.errors.push('Float is required.');\r\n }\r\n else if (!Apfco.isNumeric(input)) {\r\n this.errors.push('Float is not a valid number.');\r\n }\r\n else if (input < 0.00 || input > 99.99) {\r\n this.errors.push('Float must be between 0.00 and 99.99');\r\n }\r\n }\r\n },\r\n computed: {\r\n totalFloat: function () {\r\n let sum = 0;\r\n return this.rows.reduce((sum, row) => sum + row.valueFloat, 0);\r\n }\r\n }\r\n})"]}