{"version":3,"file":"app-ff28cc7d.d152cf98c45d962fa693.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAeA;AAAA;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkLA;AAKA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AA7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;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;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;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;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://HRMSPortal/./src/components/myprofile/myprofilecomponent.js","webpack://HRMSPortal/./src/components/myprofile/myprofilecomponent.html"],"sourcesContent":["import {inject } from 'aurelia-framework';\r\nimport {DashboardService} from '../../shared/services/dashboardservice';\r\nimport {Router} from 'aurelia-router';\r\nimport {ProfileService} from '../../shared/services/profielservice';\r\nimport {JwtService} from '../../shared/services/jwtservice';\r\nimport {config} from '../../shared/services/config';\r\nimport {HeaderService} from '../../shared/services/headerservice';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport Cropper from 'cropperjs';\r\nimport {Uploadimagepopupcomponent} from '../uploadimagepopup/uploadimagepopupcomponent';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport { HeaderLayout } from '../../shared/layouts/headerlayout';\r\nimport { activationStrategy } from 'aurelia-router';\r\nimport {LoginService} from \"../../shared/services/loginservice\";\r\n\r\n@inject(Router,DashboardService,ProfileService,JwtService,HeaderService,DialogService,ValidationControllerFactory,HeaderLayout, Element,activationStrategy,LoginService)\r\nexport class MyprofileComponent {\r\n selectedDropdownItem = null;\r\n showDropdown = false;\r\n activeTab = 1;\r\n isLoading = false;\r\n imageUrl = '';\r\n isPopupOpen = false;\r\n isImageLoaded = false;\r\n fileInput = null;\r\n imageRef = null;\r\n initialized=false;\r\n cropper = null;\r\n cropperContainer = null;\r\n Successmessages = false;\r\n constructor(Router,DashboardService,ProfileService,JwtService,headerservice,dialogService,controllerFactory,HeaderLayout,activationStrategy,loginService){\r\n this.router = Router;\r\n this.profileService=ProfileService;\r\n this.jwtService = JwtService;\r\n this.headerservice = headerservice;\r\n this.dialogService = dialogService;\r\n this.loginService = loginService;\r\n window.customWidth = window.innerWidth;\r\n this.controller = controllerFactory.createForCurrentScope();\r\n this.empid = this.jwtService.getEmployeeId();\r\n window.addEventListener('resize', ()=>{this.handleResize()});\r\n document.addEventListener('DOMContentLoaded', handleResize1);\r\n async function handleResize1() {\r\n await handleResize();\r\n }\r\n this.HeaderLayout = HeaderLayout;\r\n this.activationStrategy = activationStrategy;\r\n }\r\n async attached(params,navigationInstruction){\r\n // if(this.jwtService.getToken() === undefined){\r\n // this.loginService.purgeAuth();\r\n // this.router.navigateToRoute('login')\r\n // }\r\n this.handleResize();\r\n const id = this.router.currentInstruction.queryParams.id;\r\n const queryParams = this.router.currentInstruction.queryParams.tab;\r\n queryParams ? this.handleTabClick(parseInt(queryParams)) : null;\r\n if(id != null && id !='' && id !=undefined)\r\n {\r\n this.empid=id;\r\n }\r\n const generalInformationData = await this.profileService.EmployeeDetails(this.empid)\r\n this.generalInformation = generalInformationData;\r\n document.addEventListener('click', this.handleClickOutside.bind(this));\r\n this.headerservice.dynamicHeader(this.empid)\r\n .then(data => {\r\n this.employeedetails = data;\r\n this.userPhoto=config.img_url + data.PhotoPath;\r\n this.designation = data.Designation;\r\n });\r\n const liElement = document.querySelector('#dropdown');\r\n if(liElement.querySelector('.active')){\r\n const parentElement = liElement.querySelector('.active').parentNode;\r\n parentElement.classList.add('moved');\r\n const ul = document.getElementById(\"mainTag\");\r\n const swithcingElement = ul.children[ul.children.length - 2];\r\n const getLiToReplaceSpan = document.getElementById(\"dropdown\").querySelector('.moved');\r\n const switchingSpanElement = swithcingElement.querySelector('span');\r\n liElement.querySelector('.active').classList.add('py-2','px-3','mx-2','rounded-[9px]');\r\n swithcingElement.replaceChild(liElement.querySelector('.active'), switchingSpanElement);\r\n getLiToReplaceSpan.appendChild(switchingSpanElement);\r\n }\r\n liElement.addEventListener('click', () => {\r\n this.dropdownListElements = document.querySelectorAll('.nav');\r\n this.dropdownListElements.forEach(element => {\r\n element.classList.remove('active');\r\n });\r\n if(document.getElementById(\"dropdown\").querySelector('.moved')){\r\n const previousLi = document.getElementById(\"dropdown\").querySelector('.moved')\r\n previousLi.classList.remove('moved')\r\n }\r\n const ul = document.getElementById(\"mainTag\");\r\n const swithcingElement = ul.children[ul.children.length - 2];\r\n const switchingSpanElement = swithcingElement.querySelector('span');\r\n switchingSpanElement.classList.remove('text-white','py-2','px-3','mx-2','rounded-[9px]',);\r\n const clickedLi = event.target.closest('span') ? event.target.closest('span') : event.target.closest('li').querySelector('span');\r\n clickedLi.classList.add('py-2','px-3','mx-2','rounded-[9px]');\r\n clickedLi ? clickedLi.parentNode.classList.add('moved') : event.target.closest('li').classList.add('moved');\r\n if (clickedLi) {\r\n const tabTrigger = clickedLi.getAttribute('data-tab-trigger');\r\n if (tabTrigger) {\r\n this.handleTabClick(parseInt(tabTrigger));\r\n }\r\n }\r\n const getLiToReplaceSpan = document.getElementById(\"dropdown\").querySelector('.moved');\r\n swithcingElement.replaceChild(clickedLi, switchingSpanElement);\r\n getLiToReplaceSpan?.appendChild(switchingSpanElement);\r\n });\r\n document.addEventListener('refreshImage', this.RefreshProfileImage);\r\n }\r\n isMobileDevice() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n }\r\n async handleResize() {\r\n if (!this.initialized) {\r\n this.currentResolution = window.customWidth;\r\n this.initialized = true;\r\n } else {\r\n this.currentResolution = window.innerWidth;\r\n }\r\n const isMobile = this.isMobileDevice();\r\n const tabs = [\r\n { resolution: 1550, tab: '#tab-10' },\r\n { resolution: 1300, tab: '#tab-9' },\r\n { resolution: 1200, tab: '#tab-7' },\r\n { resolution: 1100, tab: '#tab-6' },\r\n { resolution: 750, tab: '#tab-5' },\r\n { resolution: 620, tab: '#tab-4' },\r\n { resolution: 460, tab: '#tab-3' }\r\n ];\r\n const dropdown = document.getElementById(\"dropdown\");\r\n const mainTag = document.getElementById(\"mainTag\");\r\n const lastLi = mainTag.querySelector('#tab-8');\r\n for (const { resolution, tab } of tabs) {\r\n const switchingLiElement = mainTag.querySelector(tab);\r\n const isInDropdown = dropdown.querySelector(tab);\r\n if ((window.innerWidth < resolution && switchingLiElement !== null) || (switchingLiElement!== null && this.currentResolution < resolution && !isInDropdown)) {\r\n switchingLiElement && switchingLiElement.classList.remove('text-white', 'whitespace-nowrap', 'text-center', 'text-xs');\r\n switchingLiElement && switchingLiElement.querySelector('span').classList.remove('py-2', 'px-3', 'mx-2', 'rounded-[9px]');\r\n switchingLiElement && switchingLiElement.classList.add('transition', 'hover:bg-zinc-200', 'dropdown-list', 'py-1.5', 'px-4');\r\n dropdown.append(switchingLiElement);\r\n } else if (( this.currentResolution >= resolution && isInDropdown) || (window.innerWidth >= resolution && isInDropdown)) {\r\n const switchingElement = dropdown.querySelector(tab);\r\n switchingElement.classList.add('text-white', 'whitespace-nowrap', 'text-center', 'text-xs');\r\n switchingElement.querySelector('span').classList.add('py-2', 'px-3', 'mx-2', 'rounded-[9px]');\r\n switchingElement.classList.remove('transition', 'hover:bg-zinc-200', 'dropdown-list', 'py-1.5', 'px-4');\r\n mainTag.insertBefore(switchingElement, lastLi);\r\n }\r\n }\r\n }\r\n toggleDropdown() {\r\n this.showDropdown = !this.showDropdown;\r\n }\r\n async handleTabClick(tabNumber) {\r\n this.dropdownListElements = await document.querySelectorAll('.nav');\r\n this.dropdownListElements.forEach(element => {\r\n element.classList.remove('active');\r\n });\r\n this.activeTab = tabNumber;\r\n event?.target?.classList.add('active')\r\n this.router.navigateToRoute('myprofile', { tab: tabNumber });\r\n }\r\n handleFileSelect(event) {\r\n const file = event.target.files[0];\r\n const reader = new FileReader();\r\n reader.onload = (e) => {\r\n this.imageUrl = e.target.result;\r\n this.isImageLoaded = true;\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n onImageLoad() {\r\n this.fileInput.style.display = 'none';\r\n this.imageRef.style.display = 'block';\r\n this.cropper = new Cropper(this.imageRef, {\r\n aspectRatio: 1,\r\n viewMode: 3\r\n });\r\n this.cropperContainer = this.cropper.getContainerData().element;\r\n this.cropperContainer.parentElement.style.display = 'block';\r\n }\r\n cancelCrop() {\r\n this.isImageLoaded = false;\r\n this.fileInput.value = null;\r\n this.imageRef.style.display = 'none';\r\n this.cropperContainer.parentElement.style.display = 'none';\r\n this.cropper.destroy();\r\n this.cropper = null;\r\n }\r\n cropImage() {\r\n const canvas = this.cropper.getCroppedCanvas({\r\n width: 200,\r\n height: 200\r\n });\r\n canvas.toBlob((blob) => {\r\n const formData = new FormData();\r\n formData.append('image', blob, 'image.png');\r\n this.closePopup();\r\n });\r\n }\r\n handleClickOutside(event) {\r\n const dropdown = document.getElementById('dropdown');\r\n const toggle = document.getElementById('tab-8');\r\n if (dropdown && !dropdown.contains(event.target) && !toggle.contains(event.target)) {\r\n this.showDropdown = false;\r\n }\r\n }\r\n showModal = false;\r\n displayPopup(user) {\r\n this.dialogService.open({viewModel: Uploadimagepopupcomponent, model: user});\r\n }\r\n RefreshProfileImage = () => {\r\n this.headerservice.dynamicHeader(this.empid)\r\n .then(data => {\r\n this.userPhoto=config.img_url + data.PhotoPath;\r\n this.HeaderLayout.RefreshProfileImage(this.userPhoto);\r\n this.messages=\"Image uploaded successfully\";\r\n this.Successmessages = true;\r\n setTimeout(()=>{this.messages=null},3000);\r\n });\r\n };\r\n cancel() {\r\n this.dialogController.cancel();\r\n }\r\n ok() {\r\n this.dialogController.ok();\r\n }\r\n detached() {\r\n window.removeEventListener('resize', this.handleResize());\r\n document.removeEventListener('change', this.handleClickOutside.bind(this));\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/loader.gif\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_1___ = new URL(\"../../images/camera.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_2___ = new URL(\"../../images/map-pin.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_3___ = new URL(\"../../images/linkedin.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_4___ = new URL(\"../../images/twitter.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_5___ = new URL(\"../../images/arrow-white.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 ___HTML_LOADER_REPLACEMENT_2___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_2___);\nvar ___HTML_LOADER_REPLACEMENT_3___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_3___);\nvar ___HTML_LOADER_REPLACEMENT_4___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_4___);\nvar ___HTML_LOADER_REPLACEMENT_5___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_5___);\nvar code = \"\\r\\n\\r\\n\";\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}