{"version":3,"file":"app-162eb8c9.d152cf98c45d962fa693.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAeA;AAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8IA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAIA;AASA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACnYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAUA;AAAA;AAPA;AACA;AACA;AAAA;AACA;AACA;AACA;AA+FA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhHA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAmBA;AAAA;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoHA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AAAA;AAyMA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AA9UA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AAIA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://HRMSPortal/./src/components/myprofile/ctcrevisionhistory/addnewctc/addctccomponent.js","webpack://HRMSPortal/./src/components/myprofile/ctcrevisionhistory/ctcrevisionhistory.js","webpack://HRMSPortal/./src/components/myprofile/ctcrevisionhistory/editctcreversion/editctccomponent.js","webpack://HRMSPortal/./src/components/myprofile/ctcrevisionhistory/addnewctc/addctccomponent.html","webpack://HRMSPortal/./src/components/myprofile/ctcrevisionhistory/ctcrevisionhistory.html","webpack://HRMSPortal/./src/components/myprofile/ctcrevisionhistory/editctcreversion/editctccomponent.html"],"sourcesContent":["import {inject,bindable } from 'aurelia-framework';\r\nimport { ProfileService } from '../../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../../shared/services/jwtservice';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport flatpickr from \"flatpickr\";\r\nimport {ValidationControllerFactory, ValidationRules} from \"aurelia-validation\";\r\nimport Scrollbar from 'smooth-scrollbar';\r\nimport {LoginService} from \"../../../../shared/services/loginservice\";\r\nimport { Router } from 'aurelia-router';\r\n\r\n@inject(DialogController,ProfileService,JwtService,ValidationControllerFactory,Router,LoginService)\r\n\r\nexport class AddCTCComponent {\r\n fixedPay = '';\r\n variablePay = '';\r\n dropdownOptions = [];\r\n showEmployeeDropdown = false;\r\n selectedOption = null;\r\n selectedEmployees = [];\r\n showEmpDropdown = false;\r\n EmployeeListIDs = [];\r\n isDisabled = true;\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n constructor(controller,ProfileService,JwtService,controllerFactory,router,loginService) {\r\n this.controller = controller;\r\n this.profileService=ProfileService;\r\n this.jwtService= JwtService;\r\n this.router = router;\r\n this.loginService = loginService;\r\n this.empid = this.jwtService.getEmployeeId();\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n ValidationRules.customRule(\r\n 'file',\r\n () =>{\r\n if(this.fileValidatorRule === true){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n },\r\n '${$displayName} is required'\r\n );\r\n\r\n ValidationRules\r\n .ensure('AppraisalDate').required()\r\n .ensure('departmentID').required().withMessage(\"The department field is required.\")\r\n .ensure('positionID').required().withMessage(\"The position field is required.\")\r\n .ensure('positionlevelID').required().withMessage(\"The position level field is required.\")\r\n .ensure('AppraiserName').required().withMessage(\"The Appraiser Name is required\")\r\n .ensure('upload')\r\n .satisfiesRule('file')\r\n .on(this);\r\n }\r\n async bind() {\r\n setTimeout(()=>{ \r\n Scrollbar.init(document.querySelector('.addctc-scrollbar'));\r\n },1000)\r\n }\r\n\r\n attached(){\r\n\r\n flatpickr(this.ApprasialDatePicker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.ApprasialDate=dateStr;\r\n }\r\n });\r\n this.apprasialdateIcon.addEventListener('click', () => {\r\n this.ApprasialDatePicker._flatpickr.open();\r\n });\r\n flatpickr(this.EffectivedatePicker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.EffectiveDate=dateStr;\r\n }\r\n });\r\n this.effectiveIcon.addEventListener('click', () => {\r\n this.EffectivedatePicker._flatpickr.open();\r\n });\r\n flatpickr(this.duedatePicker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.DueDate=dateStr;\r\n }\r\n });\r\n this.duedateIcon.addEventListener('click', () => {\r\n this.duedatePicker._flatpickr.open();\r\n });\r\n this.profileService.DepartmentDropdown()\r\n .then(data => {\r\n this.departments= data;\r\n });\r\n this.profileService.PositionDropdown()\r\n .then(data => {\r\n this.postions= data;\r\n });\r\n this.profileService.PositionLevelDropdown()\r\n .then(data => {\r\n this.positionlevels= data;\r\n });\r\n this.fileValidator();\r\n }\r\n returnDateSelected() {\r\n this.isDisabled = false;\r\n }\r\n updateFormattedValue(property) {\r\n const fixedPayValue = parseFloat(this.fixedPay.replace(/[^0-9.]/g, '')) || 0;\r\n const variablePayValue = parseFloat(this.variablePay.replace(/[^0-9.]/g, '')) || 0;\r\n const sum = fixedPayValue + variablePayValue;\r\n const formattedSum = sum.toLocaleString('en-IN', {\r\n style: 'currency',\r\n currency: 'INR'\r\n });\r\n this.revisedCTC = formattedSum; // Set revisedCTC to zero if it's empty\r\n }\r\n cancel() {\r\n this.controller.cancel();\r\n }\r\n startDragging(event) {\r\n if (event.button === 0) {\r\n this.isDragging = true;\r\n this.offsetX = event.clientX - this.dialogElement.getBoundingClientRect().left;\r\n this.offsetY = event.clientY - this.dialogElement.getBoundingClientRect().top;\r\n\r\n window.addEventListener('mousemove', this.drag);\r\n window.addEventListener('mouseup', this.stopDragging);\r\n }\r\n }\r\n\r\n drag = (event) => {\r\n if (this.isDragging) {\r\n const x = event.clientX - this.offsetX;\r\n const y = event.clientY - this.offsetY;\r\n\r\n this.dialogElement.style.left = `${x}px`;\r\n this.dialogElement.style.top = `${y}px`;\r\n }\r\n }\r\n\r\n stopDragging = () => {\r\n this.isDragging = false;\r\n window.removeEventListener('mousemove', this.drag);\r\n window.removeEventListener('mouseup', this.stopDragging);\r\n }\r\n async selectposition(data){\r\n const position = await this.profileService.PositionDropdown();\r\n this.positiondropdowns = position.filter(option => option.DepartmentID == data);\r\n }\r\n async selectpositionlevel(data){\r\n const positionlevel = await this.profileService.PositionLevelDropdown();\r\n this.positionleveldropdowns = positionlevel.filter(option => option.PositionID == data);\r\n }\r\n togglePositionFields(checked){\r\n this.showPositionFields = checked;\r\n flatpickr(this.Effectivedate2Picker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.EffectiveDate2=dateStr;\r\n }\r\n });\r\n this.effective2Icon.addEventListener('click', () => {\r\n this.Effectivedate2Picker._flatpickr.open();\r\n });\r\n }\r\n async onAppraiserNameSelected() {\r\n if (this.AppraiserName) {\r\n this.showEmployeeDropdown = true;\r\n try {\r\n const response = await this.profileService.EmployeeDropdown(this.AppraiserName);\r\n const datas = await response;\r\n const filterOption = this.AppraiserName.toLowerCase();\r\n this.dropdownOptionss = datas.filter(empname => empname.EmployeeName.toLowerCase().includes(filterOption));\r\n if (this.dropdownOptionss.length === 0) {\r\n const errorInfo = {\r\n error: {\r\n message: \"Please select valid employee\"\r\n }\r\n };\r\n this.AppraiserNameError = [errorInfo];\r\n } else {\r\n this.AppraiserNameError = [];\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n } else {\r\n this.showEmployeeDropdown = false;\r\n this.dropdownOptionss = [];\r\n }\r\n }\r\n selectEmployee(EmpOptions) {\r\n const modifiedOption = { ...EmpOptions, ID: EmpOptions.EmployeeID };\r\n this.AppraiserName = modifiedOption.EmployeeName;\r\n this.AppraiserID = modifiedOption.EmployeeID;\r\n this.showEmployeeDropdown = false;\r\n this.selectedEmployee = modifiedOption;\r\n }\r\n async onEmployeeSelected() {\r\n if (this.searchQuery) {\r\n this.showEmpDropdown = true;\r\n try {\r\n const response = await this.profileService.EmployeeDropdown(this.searchQuery);\r\n const data = await response;\r\n const filterOption = this.searchQuery.toLowerCase();\r\n this.dropdownOptions = data.filter(option => option.EmployeeName.toLowerCase().includes(filterOption));\r\n if (this.dropdownOptions.length === 0) {\r\n const errorInfo = {\r\n error: {\r\n message: \"Please select valid employee\"\r\n }\r\n };\r\n this.searchQueryError = [errorInfo];\r\n } else {\r\n this.searchQueryError = [];\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n } else {\r\n this.showEmpDropdown = false;\r\n this.dropdownOptions = [];\r\n }\r\n }\r\n selectaddEmployee(EmpOption) {\r\n const modifiedOption = {...EmpOption, ID: EmpOption.EmployeeID};\r\n this.searchQuery = modifiedOption.EmployeeName;\r\n this.showEmpDropdown = false;\r\n this.selectedEmployee = modifiedOption;\r\n return false;\r\n }\r\n addToSelectedOptions(id) {\r\n if (!this.searchQuery) {\r\n const errorInfo = {\r\n error: {\r\n message: \"Please select an employee\"\r\n }\r\n };\r\n this.searchQueryError = [errorInfo];\r\n return;\r\n }\r\n this.profileService.GetEmployeesForAdd(id).then(data => {\r\n const selectedEmployee = this.selectedEmployees.find(employee => employee.EmployeeID === data.EmployeeID);\r\n if (selectedEmployee) {\r\n const errorInfo = {\r\n error: {\r\n message: \"Employee name already exists\"\r\n }\r\n };\r\n this.searchQueryError = [errorInfo];\r\n } else {\r\n this.searchQueryError = [];\r\n this.Ids = data.EmployeeID;\r\n this.EmployeeListIDs.push(this.Ids);\r\n this.selectedEmployees.push(data);\r\n this.searchQuery = '';\r\n }\r\n });\r\n }\r\n\r\n deleteEmployee(emp) {\r\n const index = this.selectedEmployees.indexOf(emp);\r\n if (index !== -1) {\r\n this.selectedEmployees.splice(index, 1);\r\n }\r\n const deletedIds = emp.EmployeeID;\r\n this.EmployeeListIDs = this.EmployeeListIDs.filter(id => id !== deletedIds);\r\n this.Ids = this.EmployeeListIDs;\r\n }\r\n handleFileSelect(files) {\r\n const file = files[0];\r\n this.file = file;\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n this.DocumentName = file.name;\r\n reader.onload = () => {\r\n this.file = reader.result;\r\n };\r\n }\r\n fileValidator(){\r\n const fileInput = document.querySelector('input[type=\"file\"]');\r\n const allowedTypes = ['image/jpeg', 'image/png','application/msword','application/pdf'];\r\n fileInput.addEventListener('change', (event) => {\r\n const file = event.target.files[0];\r\n const fileType = file.type;\r\n if (!allowedTypes.includes(fileType)) {\r\n this.fileMessage=\"Only JPEG, PNG, PDF and DOC files are allowed.\";\r\n this.fileValidatorRule = true;\r\n } else {\r\n this.fileMessage=null;\r\n this.fileValidatorRule = false;\r\n }\r\n });\r\n }\r\n openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n removeFile() {\r\n this.file = null;\r\n this.DocumentName = '';\r\n const fileInput = document.getElementById('attachments');\r\n if (fileInput) {\r\n fileInput.value = ''; // Clear the file input value\r\n }\r\n }\r\n save() {\r\n const refreshEvent = new CustomEvent('refreshCTCADD');\r\n this.controllerFactory.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n let data = {\r\n EmployeeID: this.empid,\r\n DateofAppraisal: this.AppraisalDate,\r\n AppraiseeId: this.AppraiserID,\r\n RevisedCTC: this.revisedCTC,\r\n DepartmentId: this.departmentID,\r\n PositionLevelIND: this.PositionLevelIND ? 1 : 0,\r\n PositionId:this.positionID,\r\n PositionLevelId:this.positionlevelID,\r\n Reason:this.comments,\r\n NextRevisionDueDate:this.dueDate,\r\n PositionlevelEffectiveDate:this.EffectiveDate2,\r\n RevisedCTCEffectiveDate:this.EffectiveDate,\r\n DaysToRemindsHR:this.remaindBefore,\r\n VariablePay:this.variablePay,\r\n TotalPay:this.fixedPay,\r\n AuthorizeeList:this.EmployeeListIDs,\r\n AppraisalLetter:this.file,\r\n AppraisalLetterName:this.DocumentName,\r\n };\r\n this.profileService.SaveCTCData(data)\r\n .then(() => {\r\n this.controller.cancel();\r\n this.profileService.GetEmployeeCTCData(this.empid)\r\n .then(data => {\r\n this.employeectc = data;\r\n document.dispatchEvent(refreshEvent);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\n","import {inject } from 'aurelia-framework';\r\nimport { ProfileService } from '../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../shared/services/jwtservice';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport {AlertpopupComponent} from \"../../alertpopup/alertpopupcomponent\";\r\nimport {AddCTCComponent} from \"./addnewctc/addctccomponent\";\r\nimport {EditCTCComponent} from \"./editctcreversion/editctccomponent\";\r\nimport {config} from \"../../../shared/services/config\";\r\nimport { Router } from 'aurelia-router';\r\nimport Scrollbar from 'smooth-scrollbar';\r\nimport {LoginService} from \"../../../shared/services/loginservice\";\r\n\r\n@inject(ProfileService,JwtService,DialogService,Router,LoginService)\r\nexport class Ctcrevisionhistory {\r\n sortConfig = {\r\n column: '',\r\n direction: 'asc'\r\n };\r\n pageSize = config.grid_PazeSize;\r\n deletemessage = false;\r\n contactmessage = false;\r\n\r\n constructor(profileService,jwtService,dialogService,router,loginService) {\r\n this.profileService = profileService;\r\n this.jwtService = jwtService;\r\n this.dialogService = dialogService;\r\n this.router = router;\r\n this.loginService = loginService;\r\n this.empid = this.jwtService.getEmployeeId();\r\n\r\n }\r\n async bind() {\r\n setTimeout(()=>{ \r\n Scrollbar.init(document.querySelector('.ctc-scrollbar'));\r\n },1000)\r\n }\r\n activate(){\r\n this.employeectc = this.GetEmployeeCTCDetailsADD();\r\n this.employeectc = this.GetEmployeeCTCDetailsEDIT();\r\n }\r\n sortBy(column) {\r\n if (this.sortConfig.column === column) {\r\n this.sortConfig.direction = this.sortConfig.direction === 'asc' ? 'desc' : 'asc';\r\n } else {\r\n this.sortConfig.column = column;\r\n this.sortConfig.direction = 'asc';\r\n }\r\n\r\n this.performSorting();\r\n }\r\n performSorting() {\r\n const { column, direction } = this.sortConfig;\r\n if (column) {\r\n this.employeectc.sort((a, b) => {\r\n const aValue = a[column];\r\n const bValue = b[column];\r\n let comparison = 0;\r\n if (typeof aValue === 'string' && typeof bValue === 'string') {\r\n comparison = aValue.localeCompare(bValue);\r\n } else {\r\n comparison = aValue - bValue;\r\n }\r\n return direction === 'asc' ? comparison : -comparison;\r\n });\r\n }\r\n }\r\n async attached(params) {\r\n\r\n const id = this.router.currentInstruction.queryParams.id;\r\n if(id != null && id !='' && id !=undefined)\r\n {\r\n this.empid=id;\r\n }\r\n else{\r\n this.empid=this.jwtService.getEmployeeId();\r\n }\r\n const employeeCTCData = await this.profileService.GetEmployeeCTCData(this.empid);\r\n this.employeectc = await employeeCTCData;\r\n const anotherobject = this.employeectc;\r\n anotherobject.filter(data => {\r\n this.FilePath = data.AppraisalLetter;\r\n if (data.AppraisalLetter) {\r\n this.file = data.AppraisalLetter;\r\n this.DocumentName = data.AppraisalLetter;\r\n }\r\n });\r\n document.addEventListener('refreshCTCADD', this.GetEmployeeCTCDetailsADD);\r\n document.addEventListener('refreshCTCEdit', this.GetEmployeeCTCDetailsEDIT);\r\n }\r\n async deleteEmployeeCTC(data) {\r\n const salaryreversionID = data.SalaryRevisionId;\r\n const result = await this.dialogService.open({\r\n viewModel: AlertpopupComponent,\r\n model: \"\",\r\n }).whenClosed(response => response);\r\n if (result.wasCancelled) {\r\n return;\r\n }\r\n const deletedata = await this.profileService.DeleteEmployeeCTCData(salaryreversionID, this.empid);\r\n const deleteresponse = await deletedata;\r\n const employeeCTC = await this.profileService.GetEmployeeCTCData(this.empid);\r\n this.employeectc = employeeCTC;\r\n this.Deletesucess = \"Employee CTC Reversion history Deleted successfully\";\r\n this.deletemessage = true;\r\n setTimeout(() =>{\r\n this.Deletesucess = null;\r\n },3000)\r\n }\r\n AddnewCTCPopup(data) {\r\n this.dialogService.open({viewModel: AddCTCComponent, model: data});\r\n }\r\n EditCTCPopup(data) {\r\n this.dialogService.open({viewModel: EditCTCComponent, model: data});\r\n }\r\n GetEmployeeCTCDetailsADD = () => {\r\n this.profileService.GetEmployeeCTCData(this.empid)\r\n .then(data => {\r\n this.employeectc = data;\r\n this.contactsucess = \"CTC / Position revision details added successfully.\";\r\n this.contactmessage = true;\r\n setTimeout(() =>{\r\n this.contactsucess = null;\r\n },3000)\r\n });\r\n };\r\n GetEmployeeCTCDetailsEDIT = () => {\r\n this.profileService.GetEmployeeCTCData(this.empid)\r\n .then(data => {\r\n this.employeectc = data;\r\n this.contactsucess = \"CTC / Position revision details updated successfully.\";\r\n this.contactmessage = true;\r\n setTimeout(() =>{\r\n this.contactsucess = null;\r\n },3000)\r\n });\r\n };\r\n downloadFile() {\r\n const downloadUrl = config.api_img_url + this.FilePath;\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.download = this.FilePath;\r\n link.click();\r\n }\r\n}","import {inject,bindable } from 'aurelia-framework';\r\nimport { ProfileService } from '../../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../../shared/services/jwtservice';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport flatpickr from \"flatpickr\";\r\nimport {ValidationControllerFactory, ValidationRules} from \"aurelia-validation\";\r\nimport {config} from \"../../../../shared/services/config\";\r\nimport Scrollbar from 'smooth-scrollbar';\r\nimport {LoginService} from \"../../../../shared/services/loginservice\";\r\nimport { Router } from 'aurelia-router';\r\n\r\n@inject(DialogController,ProfileService,JwtService,ValidationControllerFactory,Router,LoginService)\r\n\r\nexport class EditCTCComponent {\r\n fixedPay = '';\r\n variablePay = '';\r\n revisedCTC = '₹0';\r\n dropdownOptions = [];\r\n showEmployeeDropdown = false;\r\n selectedOption = null;\r\n selectedEmployees = [];\r\n showEmpDropdown = false;\r\n EmployeeListIDs = [];\r\n EmployeeList = [];\r\n EmployeeListNames = [];\r\n AddedEmployeeId = [];\r\n isDisabled = true;\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n constructor(controller,ProfileService,JwtService,controllerFactory,router,loginService) {\r\n this.controller = controller;\r\n this.profileService=ProfileService;\r\n this.jwtService= JwtService;\r\n this.router = router;\r\n this.loginService = loginService;\r\n this.empid = this.jwtService.getEmployeeId();\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n\r\n ValidationRules.customRule(\r\n 'file',\r\n () =>{\r\n if(this.fileValidatorRule === true){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n },\r\n '${$displayName} is required'\r\n );\r\n\r\n ValidationRules\r\n .ensure('ApprasialDate').required().withMessage(\"The Apprasial Date is required\")\r\n .ensure('selecteddepartment').required().withMessage(\"The department field is required.\")\r\n .ensure('selectedposition').required().withMessage(\"The position field is required.\")\r\n .ensure('selectedpositionlevel').required().withMessage(\"The position level field is required.\")\r\n .ensure('AppraiseeName').required().withMessage(\"The Appraiser Name is required\")\r\n .ensure('searchQuery').required().withMessage(\"The authorized by field is required.\")\r\n .ensure('upload')\r\n .satisfiesRule('file')\r\n .on(this);\r\n }\r\n async bind() {\r\n setTimeout(()=>{ \r\n Scrollbar.init(document.querySelector('.editctc-scrollbar'));\r\n },1000)\r\n }\r\n async attached(){\r\n\r\n flatpickr(this.ApprasialDatePicker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.ApprasialDate=dateStr;\r\n }\r\n });\r\n this.apprasialdateIcon.addEventListener('click', () => {\r\n this.ApprasialDatePicker._flatpickr.open();\r\n });\r\n flatpickr(this.EffectivedatePicker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.EffectiveDate=dateStr;\r\n }\r\n });\r\n this.effectiveIcon.addEventListener('click', () => {\r\n this.EffectivedatePicker._flatpickr.open();\r\n });\r\n flatpickr(this.duedatePicker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.DueDate=dateStr;\r\n }\r\n });\r\n this.duedateIcon.addEventListener('click', () => {\r\n this.duedatePicker._flatpickr.open();\r\n });\r\n this.profileService.DepartmentDropdown()\r\n .then(data => {\r\n this.departments= data;\r\n });\r\n this.profileService.PositionDropdown()\r\n .then(data => {\r\n this.postions= data;\r\n });\r\n this.profileService.PositionLevelDropdown()\r\n .then(data => {\r\n this.positionlevels= data;\r\n });\r\n this.fileValidator();\r\n }\r\n departmentMatcher = (a, b) => {\r\n return a.key === b.key;\r\n };\r\n positionMatcher = (a, b) => {\r\n return a.key === b.key;\r\n };\r\n positionlevelMatcher = (a, b) => {\r\n return a.key === b.key;\r\n };\r\n returnDateSelected() {\r\n this.isDisabled = false;\r\n }\r\n updateFormattedValue(property) {\r\n const fixedPayValue = parseFloat(this.fixedPay) || 0;\r\n const variablePayValue = parseFloat(this.variablePay) || 0;\r\n const sum = fixedPayValue + variablePayValue;\r\n const formattedSum = sum.toLocaleString('en-IN', {\r\n style: 'currency',\r\n currency: 'INR'\r\n });\r\n this.revisedCTC = formattedSum || '₹0'; // Set revisedCTC to zero if it's empty\r\n }\r\n cancel() {\r\n this.controller.cancel();\r\n }\r\n async selectposition(data){\r\n const position = await this.profileService.PositionDropdown();\r\n const positionid = data.DepartmentId ? data.DepartmentId : data;\r\n this.positiondropdowns = position.filter(option => option.DepartmentID === positionid);\r\n }\r\n async selectpositionlevel(data){\r\n const positionlevels = await this.profileService.PositionLevelDropdown();\r\n const positionlevelids = data.PositionID ? data.PositionID : data;\r\n this.positionleveldropdowns = positionlevels.filter(option => option.PositionID === positionlevelids);\r\n }\r\n togglePositionFields(checked){\r\n this.showPositionFields = checked;\r\n flatpickr(this.Effectivedate2Picker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.EffectiveDate2=dateStr;\r\n }\r\n });\r\n this.effective2Icon.addEventListener('click', () => {\r\n this.Effectivedate2Picker._flatpickr.open();\r\n });\r\n }\r\n async onAppraiserNameSelected() {\r\n if (this.AppraiseeName) {\r\n this.showEmployeeDropdown = true;\r\n try {\r\n const response = await this.profileService.EmployeeDropdown(this.AppraiseeName);\r\n const data = await response;\r\n const filterOption = this.AppraiseeName.toLowerCase();\r\n this.dropdownOptionss = data.filter(empname => empname.EmployeeName.toLowerCase().includes(filterOption));\r\n if (this.dropdownOptionss.length === 0) {\r\n const errorInfo = {\r\n error: {\r\n message: \"Please select valid employee\"\r\n }\r\n };\r\n this.NameError = [errorInfo];\r\n } else {\r\n this.NameError = [];\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n } else {\r\n this.showEmployeeDropdown = false;\r\n this.dropdownOptionss = [];\r\n }\r\n }\r\n selectEmployee(EmpOption) {\r\n const modifiedOption = { ...EmpOption, ID: EmpOption.EmployeeID };\r\n this.AppraiseeName = modifiedOption.EmployeeName;\r\n this.AppraiseeID = modifiedOption.EmployeeID;\r\n this.showEmployeeDropdown = false;\r\n this.selectedEmployee = modifiedOption;\r\n }\r\n async onEmployeeSelected() {\r\n if (this.searchQuery) {\r\n this.showEmpDropdown = true;\r\n try {\r\n const response = await this.profileService.EmployeeDropdown(this.searchQuery);\r\n const data = await response;\r\n const filterOption = this.searchQuery.toLowerCase();\r\n this.dropdownOptions = data.filter(option => option.EmployeeName.toLowerCase().includes(filterOption));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n } else {\r\n this.showEmpDropdown = false;\r\n this.dropdownOptions = [];\r\n }\r\n }\r\n selectaddEmployee(EmpOption) {\r\n const modifiedOption = {\r\n ...EmpOption,\r\n ID: EmpOption.EmployeeID\r\n };\r\n this.searchQuery = modifiedOption.EmployeeName;\r\n this.showEmpDropdown = false;\r\n this.selectedEmployee = modifiedOption;\r\n return false;\r\n }\r\n addToSelectedOptions(id) {\r\n if (!this.searchQuery) {\r\n const errorInfo = {\r\n error: {\r\n message: \"Please select an employee\"\r\n }\r\n };\r\n this.searchQueryError = [errorInfo];\r\n return;\r\n }\r\n if (this.AddedEmployeeId.includes(id)) {\r\n const errorInfo = {\r\n error: {\r\n message: \"Employee name already exists\"\r\n }\r\n };\r\n this.searchQueryError = [errorInfo];\r\n return;\r\n }\r\n this.profileService.GetEmployeeNamesForGrid(id)\r\n .then(data => {\r\n this.AddedEmployeeId.push(data.EmployeeID);\r\n this.profileService.GetEmployeeNamesForGrid(data.EmployeeID)\r\n .then(data => {\r\n this.EmployeeListNames.push(data.EmployeeName);\r\n });\r\n this.searchQuery = '';\r\n });\r\n }\r\n deleteEmployee(emp) {\r\n const index = this.EmployeeListNames.indexOf(emp);\r\n if (index !== -1) {\r\n this.EmployeeListNames.splice(index, 1);\r\n }\r\n const deletedIds = emp.EmployeeID;\r\n this.AddedEmployeeId = this.AddedEmployeeId.filter(id => id !== deletedIds);\r\n this.Ids = this.AddedEmployeeId;\r\n }\r\n handleFileSelect(files) {\r\n const file = files[0];\r\n this.file = file;\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n this.DocumentName = file.name;\r\n reader.onload = () => {\r\n this.file = reader.result;\r\n };\r\n }\r\n fileValidator(){\r\n const fileInput = document.querySelector('input[type=\"file\"]');\r\n const allowedTypes = ['image/jpeg', 'image/png','application/msword','application/pdf'];\r\n fileInput.addEventListener('change', (event) => {\r\n const file = event.target.files[0];\r\n const fileType = file.type;\r\n if (!allowedTypes.includes(fileType)) {\r\n this.fileMessage=\"Only JPEG, PNG, PDF and DOC files are allowed.\";\r\n this.fileValidatorRule = true;\r\n } else {\r\n this.fileMessage=null;\r\n this.fileValidatorRule = false;\r\n }\r\n });\r\n }\r\n openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n downloadFile() {\r\n const downloadUrl = config.api_img_url + this.file;\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.click();\r\n }\r\n removeFile() {\r\n this.file = null;\r\n this.DocumentName = '';\r\n const fileInput = document.getElementById('attachments');\r\n if (fileInput) {\r\n fileInput.value = ''; // Clear the file input value\r\n }\r\n }\r\n startDragging(event) {\r\n if (event.button === 0) {\r\n this.isDragging = true;\r\n this.offsetX = event.clientX - this.dialogElement.getBoundingClientRect().left;\r\n this.offsetY = event.clientY - this.dialogElement.getBoundingClientRect().top;\r\n\r\n window.addEventListener('mousemove', this.drag);\r\n window.addEventListener('mouseup', this.stopDragging);\r\n }\r\n }\r\n\r\n drag = (event) => {\r\n if (this.isDragging) {\r\n const x = event.clientX - this.offsetX;\r\n const y = event.clientY - this.offsetY;\r\n\r\n this.dialogElement.style.left = `${x}px`;\r\n this.dialogElement.style.top = `${y}px`;\r\n }\r\n }\r\n\r\n stopDragging = () => {\r\n this.isDragging = false;\r\n window.removeEventListener('mousemove', this.drag);\r\n window.removeEventListener('mouseup', this.stopDragging);\r\n }\r\n async activate(data){\r\n this.employeectc = data;\r\n this.ApprasialDate = data.DateofAppraisal;\r\n this.employeeList = data.AuthorizeeList;\r\n this.revisedCTC = data.RevisedCTC;\r\n this.departmentname = data.DepartmentId;\r\n this.positionname = data.PositionId;\r\n this.positionlevelname = data.PositionLevelId;\r\n this.comments = data.Reason;\r\n this.variablePay = data.VariablePay;\r\n this.fixedPay = data.TotalPay;\r\n this.ispositionlevel = data.PositionLevelIND;\r\n if( this.ispositionlevel === 1){\r\n this.ispositionlevel = true;\r\n }else if(this.ispositionlevel === 0){\r\n this.ispositionlevel = false;\r\n }\r\n this.DueDate = data.NextRevisionDueDate;\r\n this.EffectiveDate2 = data.PositionlevelEffectiveDate;\r\n this.EffectiveDate = data.RevisedCTCEffectiveDate;\r\n this.remaindBefore = data.DaysToRemindsHR;\r\n this.SalaryRevisionId = data.SalaryRevisionId;\r\n this.AppraiseeName = data.PositionLevelName;\r\n this.DocumentName = data.AppraisalLetterName;\r\n this.AppraisalLetter = data.AppraisalLetter;\r\n if (data.AppraisalLetter) {\r\n this.file = data.AppraisalLetter;\r\n this.DocumentName = data.AppraisalLetter;\r\n this.DocumentNameDisplay = data.AppraisalLetterName;\r\n }\r\n this.employeeList.filter(response => {\r\n this.profileService.GetEmployeeNamesForGrid(response).then(\r\n data => {\r\n this.EmployeeListNames.push(data.EmployeeName);\r\n }\r\n )\r\n });\r\n await this.selectposition(this.departmentname);\r\n await this.selectpositionlevel(this.positionname);\r\n }\r\n save() {\r\n const refreshEvent = new CustomEvent('refreshCTCEdit');\r\n this.controllerFactory.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n let data = {\r\n EmployeeID: this.empid,\r\n DateofAppraisal: this.ApprasialDate,\r\n AppraiseeId: this.AppraiseeID,\r\n RevisedCTC: this.revisedCTC,\r\n DepartmentId: this.selecteddepartment ? this.selecteddepartment.DepartmentId : this.departmentname,\r\n PositionID:this.selectedposition ? this.selectedposition.PositionID : this.positionname,\r\n PositionLevelIND: this.ispositionlevel ? 1 : 0,\r\n PositionLevelId:this.selectedpositionlevel ? this.selectedpositionlevel.PositionLevelId : this.positionlevelname,\r\n Reason:this.comments,\r\n NextRevisionDueDate:this.DueDate,\r\n PositionlevelEffectiveDate:this.EffectiveDate2,\r\n RevisedCTCEffectiveDate:this.EffectiveDate,\r\n DaysToRemindsHR:this.remaindBefore,\r\n VariablePay:this.variablePay,\r\n TotalPay:this.fixedPay,\r\n AuthorizeeList:this.AddedEmployeeId,\r\n AppraisalLetter:this.file,\r\n AppraisalLetterName:this.DocumentName,\r\n SalaryRevisionId:this.SalaryRevisionId,\r\n\r\n };\r\n this.profileService.SaveCTCData(data)\r\n .then((response) => {\r\n this.controller.cancel();\r\n this.profileService.GetEmployeeCTCData(this.empid)\r\n .then(data => {\r\n this.employeectc = data;\r\n document.dispatchEvent(refreshEvent);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\n","// Imports\nimport ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \"../../../../../node_modules/html-loader/dist/runtime/getUrl.js\";\nvar ___HTML_LOADER_IMPORT_0___ = new URL(\"../../../../images/datepicker.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Imports\nimport ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \"../../../../node_modules/html-loader/dist/runtime/getUrl.js\";\nvar ___HTML_LOADER_IMPORT_0___ = new URL(\"../../../images/edit.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_1___ = new URL(\"../../../images/x-square.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar ___HTML_LOADER_REPLACEMENT_1___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_1___);\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Imports\nimport ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \"../../../../../node_modules/html-loader/dist/runtime/getUrl.js\";\nvar ___HTML_LOADER_IMPORT_0___ = new URL(\"../../../../images/datepicker.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"\\r\\n\";\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}