{"version":3,"file":"src_app_detail-engagement_detail-engagement_module_ts.js","mappings":"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ACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,6CAA6C,wBAAwB,6CAA6C;AAC5N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,eAAe;AACtF;AACA;AACA;AACA,aAAa;AACb,4BAA4B,mCAAmC;AAC/D;AACA;AACA,oDAAoD,eAAe;AACnE,2BAA2B,SAAS;AACpC,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG,6CAA6C,wBAAwB,6CAA6C;AACxN;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,kDAAkD,wBAAwB,kDAAkD;AACtO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","sources":["./src/app/detail-engagement/detail-engagement-routing.module.ts","./src/app/detail-engagement/detail-engagement.component.ts","./src/app/detail-engagement/detail-engagement.module.ts","./src/app/enums/ContactType.ts","./src/app/public-user/public-user.component.ts","./node_modules/primeng/__ivy_ngcc__/fesm2015/primeng-accordion.js","./node_modules/primeng/__ivy_ngcc__/fesm2015/primeng-carousel.js"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { DetailEngagementComponent } from './detail-engagement.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: DetailEngagementComponent,\r\n data: { Title: 'DetailEngagement' }\r\n }\r\n];\r\n\r\n@NgModule({\r\n\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class DetailEngagementRoutingModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Inject,\r\n HostListener,\r\n OnInit,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n NgZone\r\n} from '@angular/core';\r\nimport {\r\n trigger,\r\n state,\r\n transition,\r\n style,\r\n animate\r\n} from '@angular/animations';\r\n\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FolderManagementService } from 'src/framework/services/folder-mgmt.service';\r\nimport { EngagementManagementService } from 'src/framework/services/engagement-mgmt.service';\r\nimport { TreeNode, MessageService, SelectItem } from 'primeng/api';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DocumentManagementService } from 'src/framework/services/manage-doc.service';\r\nimport { LabelcardMgmtService } from 'src/framework/services/labelcard-mgmt.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocverHistoryService } from 'src/framework/services/docver-history.service';\r\nimport { ContactType } from '../enums/ContactType';\r\nimport { TopicCardService } from 'src/framework/services/topic-card.service';\r\nimport { LogoIconMgmtService } from 'src/framework/services/logo-icon-mgmt.service';\r\nimport { ImageType } from '../enums/image-type';\r\nimport { Tree, Carousel } from 'primeng';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { LanguageService } from 'src/framework/services/language.service';\r\n//import { Table, SelectItem } from 'primeng';\r\nimport { DomSanitizer, Title } from '@angular/platform-browser';\r\nimport { CategoryConstant } from '../shared/app-constants/category-constants';\r\nimport { element } from 'protractor';\r\nimport { SafePipe } from '../shared/pipes/safe-pipe.pipe';\r\nimport { CommonService } from 'src/framework/services/common.service';\r\nimport {MsalService} from '@azure/msal-angular';\r\n//import { NgFlashMessageService } from 'ng-flash-messages';\r\n//tslint:disable\r\n\r\n@Component({\r\n selector: 'app-detail-engagement',\r\n templateUrl: './detail-engagement.component.html',\r\n styleUrls: ['./detail-engagement.component.css'],\r\n animations: [\r\n trigger(\"fade\", [\r\n state(\"void\", style({ opacity: 0 })),\r\n transition(\":enter\", [animate(300)]),\r\n transition(\":leave\", [animate(500)])\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DetailEngagementComponent extends Carousel implements OnInit {\r\n @ViewChild('dtree') private _table: Tree;\r\n // @ViewChild('dt') private _Table: Table;\r\n\r\n fileTree: TreeNode[];\r\n selectedNode: TreeNode;\r\n title = 'Restructuring Document Centre 2.0';\r\n targetTreeData: any[] = [];\r\n tempTargetTreeData: any[] = [];\r\n targetTopicCardData: any[] = [];\r\n tempTreeData: any[] = [];\r\n showHistory = false;\r\n selectedEngagement: any;\r\n selectedEnagagementId: any;\r\n contactInfoList: any[]=[];\r\n externalContactList: any[]=[];\r\n documentVersionHistoryModel: any[]\r\n documentmodel: any = [];\r\n docVersionList: any[] = [];\r\n showDocVersionTypeId: number;\r\n appLangList: any[] = [];\r\n docStatusList: any[] = [];\r\n docTypeList: any[] = [];\r\n engagementDocList: any[] = [];\r\n approvedEngagementDocList: any[] = [];\r\n selectedapprovedEngagementDocList: any[] = []; //test\r\n processedDocIdList: any[] = [];\r\n processedTopicCardsList: any[] = [];\r\n engagementTopicCardList: any[] = [];\r\n displayUserDialog = false;\r\n showTopicCards: any;\r\n showTopic = false;\r\n showStatus = false;\r\n description: any = [];\r\n contactInfo = ContactType;\r\n ExternalContactDetails: any = [];\r\n userData: any = {};\r\n\r\n selectedLanguageId: number;\r\n //isDescription = false;\r\n isUnapproved: boolean = true;\r\n isApproveDisabled = false;\r\n isExternalContact = false;\r\n isDownload = false;\r\n loggedIn = false;\r\n isPastEngagement = true;\r\n selectedLangDateJson: any;\r\n defaultEngDateJson: any;\r\n\r\n fromDate: string;\r\n toDate: string;\r\n localeSetting: any;\r\n isSortApplay = false;\r\n\r\n engagementDetail = {\r\n appLanguage: 1,\r\n engagementId: 1,\r\n engagementName: '',\r\n engStatusId: 1,\r\n engStatusName: '',\r\n engInitialDate: null,\r\n engLanguage: [{\r\n \"languageId\": 1,\r\n \"languageName\": \"English\",\r\n \"languageFlagPath\": \"../../assets/flags/English.png\"\r\n }],\r\n engLanguageFrench: [{\r\n \"languageId\": 1,\r\n \"languageName\": \"Anglaise\",\r\n \"languageFlagPath\": \"../../assets/flags/English.png\"\r\n }]\r\n }\r\n primaryTopicCards: any[] = [];\r\n secondaryTopicCards: any[];\r\n showPrimaryTopicCards: any[];\r\n selectedTopicCard = [];\r\n StatusUpdates: any[];\r\n imageType = ImageType;\r\n showCarousel = false;\r\n defaultEnglishJson: any;\r\n islabelLoaded: boolean = false;\r\n selectedAppLanguageJson: any;\r\n defaultDocEnglishJson: any;\r\n selectedDocLanguageJson: any;\r\n userloggedIn=false;\r\n formal=true;\r\n responsiveOptions: { breakpoint: string; numVisible: number; numScroll: number; }[];\r\n\r\n constructor(@Inject(DOCUMENT) document,\r\n private engagementManagementServices: EngagementManagementService,\r\n private spinner: NgxSpinnerService,\r\n private http: HttpClient, private manageDocService: DocumentManagementService,\r\n private labelCardService: LabelcardMgmtService,\r\n private datePipe: DatePipe, private folderService: FolderManagementService,\r\n private sanitized: DomSanitizer,\r\n private messageService: MessageService, private DocService: DocverHistoryService,\r\n private topicCardService: TopicCardService, private logoIconMgmtService: LogoIconMgmtService,\r\n private router: Router,\r\n private changes: ChangeDetectorRef,\r\n private msalSvc: MsalService,\r\n private languageService: LanguageService,\r\n private route: ActivatedRoute,\r\n private languageSerivce: LanguageService,\r\n private titleService: Title,\r\n private commonService:CommonService,\r\n public el: ElementRef,\r\n public zone: NgZone) {\r\n super(el, zone);\r\n Carousel.prototype.changePageOnTouch = (e, diff) => { }\r\n\r\n Window[\"myComponent\"] = this;\r\n this.responsiveOptions = [\r\n {\r\n breakpoint: '5056px',\r\n numVisible: 5,\r\n numScroll: 5\r\n },\r\n {\r\n breakpoint: '2056px',\r\n numVisible: 4,\r\n numScroll: 4\r\n },\r\n {\r\n breakpoint: '1400px',\r\n numVisible: 3,\r\n numScroll: 3\r\n },\r\n {\r\n breakpoint: '768px',\r\n numVisible: 2,\r\n numScroll: 2\r\n },\r\n {\r\n breakpoint: '560px',\r\n numVisible: 1,\r\n numScroll: 1\r\n }\r\n ];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadLanguageLabel();\r\n this.commonService.formal.subscribe(updatedTitle => {\r\n this.formal = updatedTitle;\r\n if(this.msalSvc.instance.getActiveAccount() != null)\r\n {\r\n this.userloggedIn=true;\r\n }\r\n });\r\n this.languageService.userData.subscribe((data) => {\r\n this.userData = data.data;\r\n if (this.userData && this.userData.isActive == true) {\r\n this.loggedIn = true;\r\n }\r\n else {\r\n this.loggedIn = false;\r\n // if (localStorage.getItem('userModel')) {\r\n // this.userData = JSON.parse(localStorage.getItem('userModel'));\r\n // this.loggedIn = true;\r\n // }\r\n }\r\n });\r\n\r\n\r\n var newElement = document.getElementById(\"engagement_nav\");\r\n if (newElement) {\r\n newElement.classList.remove(\"active\");\r\n newElement.classList.remove(\"show\");\r\n }\r\n var newElements = document.getElementById(\"addEngagement\");\r\n if (newElements) {\r\n newElements.classList.remove(\"active\");\r\n }\r\n\r\n let engagementId = 0;\r\n this.route.queryParams.subscribe(params => {\r\n engagementId = params['eid'];\r\n if (engagementId) {\r\n this.selectedEnagagementId = engagementId;\r\n this.getEngagementDetailes(engagementId)\r\n .then(res => {\r\n this.getEngagementTopicCard();\r\n // this.getEngagementDoc();\r\n this.loadMasterData()\r\n .then(res => (\r\n this.initializeEngagementData()\r\n .then(res => this.getEngagementApprovedDocument())\r\n ));\r\n this.loadMasterData()\r\n .then(res => (\r\n this.initializeEngagementData()\r\n .then(res => this.getTopicCards())\r\n ));\r\n\r\n\r\n this.languageSerivce.currentData.subscribe(data => {\r\n this.selectedLanguageId = data.Id\r\n\r\n this.getInternalContactInfoList();\r\n this.getExternalContactInfoList();\r\n\r\n });\r\n\r\n });\r\n\r\n }\r\n else {\r\n if (sessionStorage.getItem('engagementData')) {\r\n this.engagementDetail = JSON.parse(sessionStorage.getItem('engagementData'));\r\n this.titleService.setTitle(this.engagementDetail['name']);\r\n //this.selectedEnagagementId = this.engagementDetail.engagementId;\r\n if(this.engagementDetail['isFormal']==false)\r\n {\r\n this.commonService.setTitle(false);\r\n }\r\n\r\n this.getEngagementTopicCard();\r\n // this.getEngagementDoc();\r\n this.loadMasterData()\r\n .then(res => (\r\n this.initializeEngagementData()\r\n .then(res => this.getEngagementApprovedDocument())\r\n ));\r\n this.loadMasterData()\r\n .then(res => (\r\n this.initializeEngagementData()\r\n .then(res => this.getTopicCards())\r\n ));\r\n\r\n this.languageSerivce.currentData.subscribe(data => {\r\n this.selectedLanguageId = data.Id\r\n\r\n this.getInternalContactInfoList();\r\n this.getExternalContactInfoList();\r\n\r\n });\r\n\r\n }\r\n }\r\n });\r\n this.getselectedLanguageId();\r\n \r\n\r\n\r\n // if(this.userData.rankCode==11||this.userData.rankCode==13||this.userData.rankCode==21 && this.userData.isAdmin==true){\r\n // //this.engagementList = resp;\r\n // }\r\n\r\n }\r\n\r\n\r\n initializeEngagementData() {\r\n\r\n return new Promise((resolve, reject) => {\r\n if (sessionStorage.getItem('appLanguageList')) {\r\n this.appLangList = JSON.parse(sessionStorage.getItem('appLanguageList'));\r\n }\r\n else {\r\n this.getLanguageList();\r\n }\r\n resolve();\r\n });\r\n\r\n }\r\n\r\n cancel() {\r\n this.displayUserDialog = false;\r\n }\r\n\r\n cancelTopic() {\r\n this.showTopic = false;\r\n }\r\n\r\n\r\n getFolderStructure() {\r\n this.spinner.show();\r\n this.folderService.getFolderTemplate(this.engagementDetail.engagementId).then(files => {\r\n if (files && files.length > 0) {\r\n \r\n var count: Array=[];\r\n if (files.length > 0 && files[0].children) {\r\n let i =0;\r\n files[0].children.forEach(childNode => {\r\n if(childNode.label==undefined)\r\n {\r\n count.push(i);\r\n }\r\n i = i+1;\r\n });\r\n }\r\n \r\n count.forEach( val =>{\r\n files[0].children.pop(files[0].children[val]);\r\n });\r\n\r\n let x = this.removeEmptyFolder(files[0])\r\n x['label'] = \"Public Documents\"\r\n this.targetTreeData = x ? x.children.filter(t => t.styleClass != 'detailhideFileClass') : []\r\n this.tempTargetTreeData = x ? x.children.filter(t => t.styleClass != 'detailhideFileClass') : []\r\n if(!this.isSortApplay)\r\n {\r\n this.targetTreeData.forEach(x => {\r\n if (x.type.toLowerCase() === 'folder') {\r\n this.sortNode(x);\r\n }\r\n });\r\n }\r\n // this.targetTreeData = files.length > 0 ? files : []\r\n // this.preProcessTree();\r\n this.collapseAll();\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n removeEmptyFolder(node: any) {\r\n\r\n let primaryLangId, otherPrimaryLangId, secondPrimaryLangId, thirdPrimaryLangId, fourthPrimaryLangId, fifthPrimaryLangId = 0;\r\n\r\n if (this.engagementDetail.appLanguage == 2) {\r\n primaryLangId = 2;\r\n otherPrimaryLangId = 1;\r\n }\r\n else if (this.engagementDetail.appLanguage == 1) {\r\n primaryLangId = 1;\r\n otherPrimaryLangId = 2;\r\n }\r\n else if (this.engagementDetail.appLanguage == 3) {\r\n primaryLangId = 3;\r\n otherPrimaryLangId = 1;\r\n secondPrimaryLangId = 2;\r\n }\r\n\r\n else //default is english\r\n {\r\n primaryLangId = 1;\r\n otherPrimaryLangId = 2;\r\n }\r\n let isValidFolder = false;\r\n for (let i = 0; i < node.children.length; i++) {\r\n if (node.children[i].type == 'folder') {\r\n this.sortNode(node);\r\n if (this.removeEmptyFolder(node.children[i]).styleClass != 'detailhideFileClass') {\r\n isValidFolder = true;\r\n }\r\n } else if (node.children[i].type == 'file') {\r\n if (this.approvedEngagementDocList && this.approvedEngagementDocList.length > 0) {\r\n let res = this.approvedEngagementDocList.find(x => x.docId == node.children[i].data[0].docId && x.docVersionId == node.children[i].data[0].docVersionId && primaryLangId == node.children[i].data[0].languageId)\r\n if (res == null || res == undefined)\r\n res = this.approvedEngagementDocList.find(x => x.docId == node.children[i].data[0].docId && x.docVersionId == node.children[i].data[0].docVersionId && otherPrimaryLangId == node.children[i].data[0].languageId)\r\n if (res == null || res == undefined)\r\n res = this.approvedEngagementDocList.find(x => x.docId == node.children[i].data[0].docId && x.docVersionId == node.children[i].data[0].docVersionId && secondPrimaryLangId == node.children[i].data[0].languageId)\r\n if (res) {\r\n node.children[i].styleClass = 'fileClass';\r\n node.children[i]['description'] = res.documentDescription;\r\n node.children[i]['docId'] = res.docId\r\n node.children[i]['documentDate'] = res.documentDate\r\n isValidFolder = true;\r\n } else {\r\n node.children[i].styleClass = 'detailhideFileClass';\r\n\r\n }\r\n }\r\n }\r\n }\r\n if (node.type == \"folder\" && !isValidFolder) {\r\n node.styleClass = 'detailhideFileClass';\r\n }\r\n return node;\r\n }\r\n\r\n getEngagementDetailes(engagementId: number) {\r\n return new Promise((resolve, reject) => {\r\n this.engagementManagementServices.GetEngagementsForExternalUser(engagementId, this.engagementDetail.appLanguage).subscribe((data) => {\r\n if (data.data) {\r\n if (this.userData != null || this.userData != undefined) {\r\n if (this.userData.rankCode == 11 || this.userData.rankCode == 13 || this.userData.rankCode == 21 && this.userData.isAdmin == true) {\r\n this.engagementDetail = data.data;\r\n this.titleService.setTitle(this.engagementDetail['name']);\r\n if(this.engagementDetail['isFormal']==false)\r\n {\r\n this.commonService.setTitle(false);\r\n }\r\n this.getselectedLanguageId();\r\n if ((data.data.isActive === false && data.data.isFormal === false) || data.data.pastDate != null) {\r\n this.isPastEngagement = false;\r\n }\r\n }\r\n else {\r\n this.engagementDetail = data.data;\r\n this.titleService.setTitle(this.engagementDetail['name']);\r\n if(this.engagementDetail['isFormal']==false)\r\n {\r\n this.commonService.setTitle(false);\r\n }\r\n this.getselectedLanguageId();\r\n if ((data.data.isActive === false && data.data.isFormal === false) || data.data.pastDate != null) {\r\n this.isPastEngagement = false;\r\n }\r\n }\r\n }\r\n else {\r\n if (data.data.statusId == 2) {\r\n this.engagementDetail = data.data;\r\n this.titleService.setTitle(this.engagementDetail['name']);\r\n if(this.engagementDetail['isFormal']==false)\r\n {\r\n this.commonService.setTitle(false);\r\n }\r\n this.getselectedLanguageId();\r\n if ((data.data.isActive === false && data.data.isFormal === false) || data.data.pastDate != null) {\r\n this.isPastEngagement = false;\r\n }\r\n }\r\n else {\r\n window.location.href = 'https://www.ey.com/en_ca/';\r\n }\r\n }\r\n }\r\n else {\r\n if (this.loggedIn) {\r\n this.commonService.setTitle(true);\r\n this.titleService.setTitle(this.title);\r\n this.router.navigate(['//home']);\r\n }\r\n else {\r\n window.location.href = 'https://www.ey.com/en_ca/';\r\n }\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n\r\n getselectedLanguageId() {\r\n this.languageService.currentData.subscribe(data => {\r\n this.selectedLanguageId = data.Id\r\n this.engagementDetail['appLanguage'] = this.selectedLanguageId;\r\n });\r\n if (this.selectedLanguageId != null && this.selectedLanguageId == undefined) {\r\n if (sessionStorage.getItem('selectedLanguageId')) {\r\n this.engagementDetail['appLanguage'] = JSON.parse(sessionStorage.getItem('selectedLanguageId'));\r\n }\r\n }\r\n\r\n }\r\n\r\n getEngagementIdfromURL() {\r\n let engagementId = 0;\r\n\r\n this.route.queryParams\r\n .filter(params => params.eid)\r\n .subscribe(params => {\r\n engagementId = params.eid;\r\n engagementId = params.eid;\r\n this.engagementDetail.engagementId = engagementId;\r\n });\r\n if (engagementId) {\r\n this.engagementManagementServices.GetEngagementsForExternalUser(engagementId, this.engagementDetail.appLanguage).subscribe((data) => {\r\n if (data.data) {\r\n if (this.engagementDetail.engagementId)\r\n this.engagementDetail.engagementId = data.data.engagementId;\r\n this.engagementDetail.engagementName = data.data.engagementName;\r\n this.titleService.setTitle(this.engagementDetail['name']);\r\n this.description = data.data.engagementDescription;\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n preProcessTreeRecursive(node: TreeNode) {\r\n if (node != null && node != undefined) {\r\n\r\n if (node.type.toLowerCase() === 'file') {\r\n\r\n this.toggleFileDisplay(node as TreeNode);\r\n }\r\n else if (node.type.toLowerCase() === 'folder') {\r\n\r\n }\r\n if (node.children) {\r\n node.children.forEach(childNode => {\r\n this.preProcessTreeRecursive(childNode);\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n displayFolderLabel(node: TreeNode): string {\r\n let primaryLangId, otherPrimaryLangId = 0;\r\n let nodeLangList: any[] = [];\r\n let langIndex = -1;\r\n let folderLabel = '';\r\n if (node != null && node != undefined) {\r\n\r\n if (this.engagementDetail.appLanguage == 2) {\r\n primaryLangId = 2;\r\n otherPrimaryLangId = 1;\r\n }\r\n else //default is english\r\n {\r\n primaryLangId = 1;\r\n otherPrimaryLangId = 2;\r\n }\r\n\r\n folderLabel = node.label;\r\n nodeLangList = node?.data[0]?.language;\r\n\r\n if (nodeLangList?.length > 0) {\r\n if ((langIndex = nodeLangList.findIndex(x => Number(x.languageId) === Number(primaryLangId))) > -1) {\r\n if (nodeLangList[langIndex]?.folderName?.trim() !== ''\r\n && nodeLangList[langIndex]?.folderName !== null\r\n && nodeLangList[langIndex]?.folderName !== undefined) {\r\n folderLabel = nodeLangList[langIndex]?.folderName;\r\n }\r\n else {\r\n if ((langIndex = nodeLangList.findIndex(x => Number(x.languageId) === Number(otherPrimaryLangId))) > -1) {\r\n if (nodeLangList[langIndex]?.folderName?.trim() !== ''\r\n && nodeLangList[langIndex]?.folderName !== null\r\n && nodeLangList[langIndex]?.folderName !== undefined) {\r\n folderLabel = nodeLangList[langIndex]?.folderName;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return folderLabel;\r\n\r\n }\r\n\r\n\r\n // Start function\r\n findNode(nodeKey): TreeNode {\r\n var found = false;\r\n let foundNode: TreeNode = {};\r\n\r\n function recurseFindParent(searchTree) {\r\n\r\n for (var i = 0; i < searchTree.length; i++) {\r\n\r\n // Found the category!\r\n if (Number(searchTree[i].key) === Number(nodeKey)) {\r\n foundNode = searchTree[i];\r\n found = true;\r\n break;\r\n\r\n // Did not match...\r\n } else {\r\n // Are there children / sub-categories? YES\r\n // if(searchTree[i].children !== ''){\r\n if (searchTree[i].children.length > 0) {\r\n recurseFindParent(searchTree[i].children);\r\n if (found) {\r\n break;\r\n }\r\n }\r\n //}\r\n }\r\n }\r\n }\r\n\r\n recurseFindParent(this.targetTreeData);\r\n\r\n return foundNode;\r\n }\r\n\r\n openTopics(values) {\r\n this.selectedTopicCard = this.secondaryTopicCards.filter(item => item.topicCardId === values);\r\n this.displayUserDialog = true;\r\n }\r\n\r\n\r\n toggleFileDisplay(node: TreeNode) {\r\n let primaryLangId, otherPrimaryLangId, secondPrimaryLangId, thirdPrimaryLangId, fourthPrimaryLangId, fifthPrimaryLangId = 0;\r\n let currentDocId = 0;\r\n let treeVersionList: any[] = [];\r\n let detailVersionList: any[] = [];\r\n let matchFound = false;\r\n\r\n if (this.engagementDetail.appLanguage == 2) {\r\n primaryLangId = 2;\r\n otherPrimaryLangId = 1;\r\n }\r\n else if (this.engagementDetail.appLanguage == 1) {\r\n primaryLangId = 1;\r\n otherPrimaryLangId = 2;\r\n }\r\n else if (this.engagementDetail.appLanguage == 3) {\r\n primaryLangId = 3;\r\n otherPrimaryLangId = 1;\r\n secondPrimaryLangId = 2;\r\n }\r\n // else if (this.engagementDetail.appLanguage == 4)\r\n // {\r\n // primaryLangId = 4;\r\n // otherPrimaryLangId = 1;\r\n // secondPrimaryLangId = 2;\r\n // thirdPrimaryLangId = 3;\r\n // }\r\n // else if (this.engagementDetail.appLanguage == 5)\r\n // {\r\n // primaryLangId = 5;\r\n // otherPrimaryLangId = 1;\r\n // secondPrimaryLangId = 2;\r\n // thirdPrimaryLangId = 3;\r\n // fourthPrimaryLangId = 4;\r\n // }\r\n else //default is english\r\n {\r\n primaryLangId = 1;\r\n otherPrimaryLangId = 2;\r\n }\r\n\r\n if (!this.processedDocIdList?.includes(node?.data[0]?.docId)) {\r\n currentDocId = node?.data[0]?.docId;\r\n this.processedDocIdList.push(currentDocId);\r\n\r\n let parentNode = this.findNode(node.data[0]?.parentId);\r\n //fetch all versions for current docid from tree\r\n treeVersionList = parentNode?.children?.filter(x => Number(x.data[0]?.docId) === Number(currentDocId));\r\n detailVersionList = this.engagementDocList?.filter(x => Number(x.docId) === Number(currentDocId))[0]?.documentVersionList;\r\n\r\n if (treeVersionList && detailVersionList) {\r\n\r\n if (treeVersionList?.length === detailVersionList?.length) {\r\n matchFound = this.isDisplayVersionInSelectedLang(treeVersionList, detailVersionList, primaryLangId);\r\n if (!matchFound) {\r\n matchFound = this.isDisplayVersionInSelectedLang(treeVersionList, detailVersionList, otherPrimaryLangId);\r\n if (!matchFound) {\r\n matchFound = this.isDisplayVersionInSelectedLang(treeVersionList, detailVersionList, secondPrimaryLangId);\r\n let authIndex = -1;\r\n let fileStyle = [];\r\n this.setFileToggleClassforUnAuthIndex(treeVersionList, detailVersionList, authIndex, fileStyle);\r\n // if (!matchFound) {\r\n // matchFound = this.isDisplayVersionInSelectedLang(treeVersionList, detailVersionList, thirdPrimaryLangId);\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 isDisplayTopicCardInSelectedLang(topicCardVersionList: any[], detailtopicVersionList: any[], primaryLangId): boolean {\r\n\r\n // let unAuthList: any[] = [];\r\n let authIndex = -1;\r\n let fileStyle = [];\r\n const isAnyAuthorized = (x) => (x.currentAuthorized);\r\n //check for current authorized version in selected language\r\n authIndex = detailtopicVersionList?.findIndex(x => x.currentAuthorized && Number(x.languageId) === Number(primaryLangId));\r\n if (authIndex > -1) {\r\n this.setTopicCardToggleClass(topicCardVersionList, detailtopicVersionList, authIndex, fileStyle);\r\n }\r\n if (authIndex === -1) {\r\n // this.setFileToggleClassforUnAuthIndex(treeVersionList, detailVersionList, authIndex, fileStyle);\r\n return false;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n\r\n isDisplayVersionInSelectedLang(treeVersionList: any[], detailVersionList: any[], primaryLangId): boolean {\r\n\r\n // let unAuthList: any[] = [];\r\n let authIndex = -1;\r\n let fileStyle = [];\r\n const isAnyAuthorized = (x) => (x.currentAuthorized);\r\n //check for current authorized version in selected language\r\n authIndex = detailVersionList?.findIndex(x => x.currentAuthorized && Number(x.languageId) === Number(primaryLangId));\r\n if (authIndex > -1) {\r\n this.setFileToggleClass(treeVersionList, detailVersionList, authIndex, fileStyle);\r\n }\r\n if (authIndex === -1) {\r\n // this.setFileToggleClassforUnAuthIndex(treeVersionList, detailVersionList, authIndex, fileStyle);\r\n return false;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n setFileToggleClass(treeVersionList, detailVersionList, versionIndex, fileStyle) {\r\n treeVersionList.forEach(x => {\r\n if (Number(x?.data[0]?.docVersionId) === Number(detailVersionList[versionIndex]?.docVersionId)) {\r\n x['styleClass'] = 'fileClass';\r\n x['description'] = detailVersionList[versionIndex]?.documentDescription;\r\n }\r\n else {\r\n x['styleClass'] = 'detailhideFileClass';\r\n x['description'] = detailVersionList[versionIndex]?.documentDescription;\r\n }\r\n });\r\n }\r\n\r\n\r\n setTopicCardToggleClass(topicVersionList, detailtopicVersionList, versionIndex, fileStyle) {\r\n topicVersionList.forEach(x => {\r\n if (Number(x?.tcversionId) === Number(detailtopicVersionList[versionIndex]?.tcversionId)) {\r\n x['styleClass'] = 'fileClass';\r\n x['description'] = detailtopicVersionList[versionIndex]?.description;\r\n }\r\n else {\r\n x['styleClass'] = 'detailhideFileClass';\r\n x['description'] = detailtopicVersionList[versionIndex]?.description;\r\n }\r\n });\r\n }\r\n\r\n setFileToggleClassforUnAuthIndex(treeVersionList, detailVersionList, versionIndex, fileStyle) {\r\n treeVersionList.forEach(x => {\r\n // if (Number(x?.data[0]?.docVersionId) === Number(detailVersionList[versionIndex]?.docVersionId)) {\r\n // x['styleClass'] = 'fileClass';\r\n // }\r\n // else {\r\n x['styleClass'] = 'detailhideFileClass';\r\n //}\r\n });\r\n }\r\n\r\n\r\n getStatusPillClass(statusId: Number) {\r\n\r\n let pillClass = '';\r\n if (statusId) {\r\n if (statusId === 2 || statusId === 4 || statusId === 7)\r\n pillClass = 'pill pill--approved m-0';\r\n else if (statusId === 1)\r\n pillClass = 'pill pill--closed m-0';\r\n else if (statusId === 3 || statusId === 6)\r\n pillClass = 'pill pill--failed m-0';\r\n // else if (statusId === 'authorized')\r\n // pillClass = 'pill pill--hold m-0';\r\n }\r\n\r\n return pillClass;\r\n }\r\n\r\n getDownloadDocument(node: any) {\r\n this.spinner.show();\r\n var languageCode = this.appLangList.filter(item=>item.languageId==node.languageId)[0]?.languageCode;\r\n var popupMessage =this.labelDocReplacer('PleasedisableyourPop-upblockerandtryagain');\r\n let downloadModel = new downloadDocument(this.engagementDetail.engagementId, node.docId, node.documentVersionList[0].docVersionId, node.documentVersionList[0].documentTitle, '.' + node.documentVersionList[0].documentLink.split('.').pop(),languageCode);\r\n this.manageDocService.getDownloadDocument(downloadModel,popupMessage).subscribe((data: any) => {\r\n //Log external document views (by public user)\r\n this.spinner.hide();\r\n });\r\n this.spinner.hide();\r\n }\r\n\r\n openTopicCard(values) {\r\n this.showTopicCards = values;\r\n this.showTopic = true;\r\n }\r\n\r\n\r\n\r\n nodeSelect(event) {\r\n let node = event?.node;\r\n this.spinner.show();\r\n if (node) {\r\n\r\n this.description = node?.description ? node?.description : '';\r\n let element = document.getElementById(\"description-collapseOne\");\r\n element.classList.add(\"show\");\r\n\r\n let elementMobile = document.getElementById(\"description-collapse-mobile\");\r\n elementMobile.classList.add(\"show\");\r\n if (node.type == 'folder') {\r\n node.expanded = !node.expanded;\r\n }\r\n this.spinner.hide();\r\n }\r\n else {\r\n this.spinner.hide();\r\n\r\n this.messageService.add({\r\n summary: 'Error : Unable to get document version',\r\n detail: '',\r\n sticky: false,\r\n severity: 'error'\r\n });\r\n }\r\n\r\n }\r\n\r\n getDownloadFile(node: TreeNode) {\r\n this.spinner.show();\r\n var popupMessage =this.labelDocReplacer('PleasedisableyourPop-upblockerandtryagain');\r\n var languageCode = this.appLangList.filter(item=>item.languageId==node.data[0].languageId)[0]?.languageCode;\r\n let downloadModel = new downloadDocument(this.engagementDetail.engagementId, node.data[0].docId, node.data[0].docVersionId, node.label, node.data[0].fileType,languageCode);\r\n this.manageDocService.getDownloadDocument(downloadModel,popupMessage).subscribe((data: any) => {\r\n //Log external document views (by public user)\r\n if (!this.userData || this.userData == null || this.userData == undefined\r\n || (!this.userData?.isActive ?? false))\r\n this.manageDocService.logPublicUserDocumentViews(node?.data[0]).subscribe(res => {\r\n if (res.status === 0) {\r\n //success\r\n this.spinner.hide();\r\n } else {\r\n //display error\r\n this.spinner.hide();\r\n }\r\n });\r\n });\r\n this.spinner.hide();\r\n }\r\n\r\n\r\n getInternalContactInfoList() {\r\n this.spinner.show();\r\n this.contactInfoList=[];\r\n return new Promise((resolve, reject) => {\r\n this.engagementManagementServices.getContactInternalInfoList(this.engagementDetail.engagementId, this.engagementDetail.appLanguage).subscribe((response) => {\r\n if (response && response.data?.length > 0) {\r\n this.contactInfoList = response.data?.filter(item => item.typeId === this.contactInfo.Internal);\r\n if (this.contactInfoList.length > 0) {\r\n this.contactInfoList.forEach(item => {\r\n item.url = 'data:image/png;base64,' + item.result;\r\n })\r\n\r\n }\r\n else {\r\n this.messageService.add({\r\n summary: 'Error : Unable to get internal contact information',\r\n detail: response.message,\r\n sticky: false,\r\n severity: 'error'\r\n });\r\n }\r\n }\r\n this.spinner.hide();\r\n });\r\n });\r\n }\r\n\r\n getExternalContactInfoList() {\r\n this.spinner.show();\r\n this.externalContactList=[];\r\n return new Promise((resolve, reject) => {\r\n this.engagementManagementServices.getContactExternalInfoList(this.engagementDetail.engagementId, this.engagementDetail.appLanguage).subscribe((response) => {\r\n if (response && response.data?.length > 0) {\r\n\r\n this.externalContactList = response.data;\r\n if (this.externalContactList.length > 0) {\r\n this.externalContactList.forEach(items => {\r\n\r\n items.externalDataList.forEach(item => {\r\n item.url = 'data:image/png;base64,' + item.result;\r\n\r\n })\r\n })\r\n\r\n }\r\n else {\r\n this.messageService.add({\r\n summary: 'Error : Unable to get internal contact information',\r\n detail: response.message,\r\n sticky: false,\r\n severity: 'error'\r\n });\r\n }\r\n }\r\n this.spinner.hide();\r\n });\r\n });\r\n }\r\n\r\n\r\n getLanguageList() {\r\n return new Promise((resolve, reject) => {\r\n this.labelCardService.getLanguageList().subscribe(res => {\r\n if (res) {\r\n //success\r\n // this.appLangList = res;\r\n res.forEach(element => {\r\n if (element.isAppLanguage) {\r\n this.appLangList.push({\r\n languageId: element.languageId,\r\n languageName: element.name,\r\n languageFlagPath: element.languagePath,\r\n languageCode:element.languageCode\r\n });\r\n }\r\n });\r\n } else {\r\n //display error\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n loadMasterData() {\r\n return new Promise((resolve, reject) => {\r\n // this.getEngagementDoc();\r\n resolve();\r\n });\r\n\r\n\r\n }\r\n\r\n getTopicCards() {\r\n this.targetTopicCardData = [];\r\n this.processedTopicCardsList = [];\r\n this.spinner.show();\r\n this.showCarousel = false;\r\n this.topicCardService.getEngagementTopicCardswithImages(this.engagementDetail, this.selectedLanguageId).then(files => {\r\n this.targetTopicCardData = files.data;\r\n if (this.targetTopicCardData && this.targetTopicCardData.length > 0) {\r\n this.targetTopicCardData.forEach(x => {\r\n if (x.topicCardVersionList.length > 0) {\r\n x.topicCardVersionList.forEach(item => {\r\n if (item.icon != null && item.icon != \"\") {\r\n item.icon = 'data:image/png;base64,' + item.result;\r\n }\r\n if (item.currentAuthorized) {\r\n item[\"Approved\"] = true;\r\n }\r\n else {\r\n item[\"Approved\"] = false;\r\n }\r\n }\r\n )\r\n }\r\n });\r\n }\r\n this.primaryTopicCards = this.targetTopicCardData.filter(item => item.topicCardTypeId == 1 && item.topicCardCategoryId == 1 && this.getCards(item.topicCardVersionList));\r\n\r\n if (this.primaryTopicCards.length > 0) {\r\n this.primaryTopicCards.forEach(elements => {\r\n if (elements.topicCardVersionList.length > 0) {\r\n if (elements.topicCardVersionList.length > 1) {\r\n elements.topicCardVersionList = elements.topicCardVersionList.filter(item => item.Approved == true);\r\n }\r\n elements.topicCardVersionList.forEach(element => {\r\n element.description = this.sanitized.bypassSecurityTrustHtml(element.description)\r\n });\r\n }\r\n }\r\n );\r\n this.primaryTopicCards = this.primaryTopicCards.sort((a, b) => {\r\n\r\n a.topicCardVersionList[0].topicCardDate = a.topicCardVersionList[0].topicCardDate ? a.topicCardVersionList[0].topicCardDate.split('/').reverse().join('') : 0;\r\n b.topicCardVersionList[0].topicCardDate = b.topicCardVersionList[0].topicCardDate ? b.topicCardVersionList[0].topicCardDate.split('/').reverse().join('') : 0;\r\n return a.topicCardVersionList[0].topicCardDate < b.topicCardVersionList[0].topicCardDate ? 1 : a.topicCardVersionList[0].topicCardDate > b.topicCardVersionList[0].topicCardDate ? -1 : 0;\r\n });\r\n this.showPrimaryTopicCards = this.primaryTopicCards\r\n this.showCarousel = true;\r\n }\r\n this.secondaryTopicCards = this.targetTopicCardData.filter(item => item.topicCardTypeId == 1 && item.topicCardCategoryId == 2);\r\n this.StatusUpdates = this.targetTopicCardData.filter(item => item.topicCardTypeId == 2);\r\n if (this.StatusUpdates.length > 0) {\r\n this.showStatus = true;\r\n this.StatusUpdates = this.StatusUpdates.sort((a, b) => {\r\n\r\n a.topicCardVersionList[0].topicCardDate = a.topicCardVersionList[0].topicCardDate ? a.topicCardVersionList[0].topicCardDate.split('/').reverse().join('') : 0;\r\n b.topicCardVersionList[0].topicCardDate = b.topicCardVersionList[0].topicCardDate ? b.topicCardVersionList[0].topicCardDate.split('/').reverse().join('') : 0;\r\n return a.topicCardVersionList[0].topicCardDate < b.topicCardVersionList[0].topicCardDate ? 1 : a.topicCardVersionList[0].topicCardDate > b.topicCardVersionList[0].topicCardDate ? -1 : 0;\r\n });\r\n this.StatusUpdates.forEach(item => {\r\n item.topicCardVersionList[0].topicCardDate = this.monthReplacer(this.datePipe.transform(item.topicCardVersionList[0].topicCardDate, 'dd MMM yyyy'));\r\n })\r\n }\r\n else {\r\n this.showStatus = false;\r\n }\r\n\r\n\r\n this.spinner.hide();\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n toggleTopicCardDisplay(node: any) {\r\n let primaryLangId, otherPrimaryLangId = 0;\r\n let currentDocId = 0;\r\n let topicCardVersionList: any[] = [];\r\n let topicdetailVersionList: any[] = [];\r\n let matchFound = false;\r\n\r\n if (this.engagementDetail.appLanguage == 2) {\r\n primaryLangId = 2;\r\n otherPrimaryLangId = 1;\r\n }\r\n else //default is english\r\n {\r\n primaryLangId = 1;\r\n otherPrimaryLangId = 2;\r\n }\r\n\r\n if (!this.processedTopicCardsList?.includes(node?.topicCardId)) {\r\n currentDocId = node?.topicCardId;\r\n this.processedTopicCardsList.push(currentDocId);\r\n\r\n //fetch all versions for current docid from tree\r\n topicCardVersionList = this.targetTopicCardData?.filter(x => Number(x.topicCardId) === Number(currentDocId))[0]?.topicCardVersionList;\r\n topicdetailVersionList = this.engagementTopicCardList?.filter(x => Number(x.topicCardId) === Number(currentDocId))[0]?.topicCardVersionList;\r\n\r\n if (topicCardVersionList && topicdetailVersionList) {\r\n\r\n if (topicCardVersionList?.length === topicdetailVersionList?.length) {\r\n\r\n matchFound = this.isDisplayTopicCardInSelectedLang(topicCardVersionList, topicdetailVersionList, primaryLangId);\r\n\r\n if (!matchFound) {\r\n this.isDisplayTopicCardInSelectedLang(topicCardVersionList, topicdetailVersionList, otherPrimaryLangId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n getCards(cardLists) {\r\n var newCardList = [];\r\n newCardList = cardLists.filter(item => item.Approved == true);\r\n if (newCardList.length > 0) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n getLogoList() {\r\n this.spinner.show();\r\n this.logoIconMgmtService.getLogoIconList().subscribe((response) => {\r\n if (response && response.data?.length > 0) {\r\n\r\n\r\n var iconList = response.data.filter(item => item.imageTypeId === this.imageType.Icon);\r\n if (iconList.length > 0) {\r\n iconList.forEach(item => {\r\n item.url = 'data:image/png;base64,' + item.result;\r\n })\r\n }\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n\r\n loadLanguageLabel() {\r\n let englishLanguageMappings, selectedLanguageMappings: any;\r\n let englishDateMappings, selectedLangDateMappings: any;\r\n let englishDocLanguageMappings, selectedDocLanguageMappings: any;\r\n\r\n\r\n return new Promise((resolve, reject) => {\r\n this.spinner.show();\r\n if (sessionStorage.getItem('selectedLanguageId')) {\r\n this.selectedLanguageId = 1;//JSON.parse(sessionStorage.getItem('selectedLanguageId'));\r\n }\r\n\r\n this.languageSerivce.currentData.subscribe(data => {\r\n this.selectedLanguageId = data.Id\r\n this.engagementDetail.appLanguage = this.selectedLanguageId; // Reload \r\n });\r\n\r\n\r\n this.languageSerivce.mySubject.subscribe((data) => {\r\n var languageMappings = data;\r\n if (languageMappings?.length > 0) {\r\n\r\n englishLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.EngagementDetail.toLowerCase()\r\n && Number(item?.languageId) === 1)[0];\r\n\r\n englishDateMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.Calendar.toLowerCase()\r\n && Number(item?.languageId) === 1)[0];\r\n\r\n englishDocLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.ManageDocument.toLowerCase()\r\n && Number(item?.languageId) === 1)[0];\r\n\r\n if (englishLanguageMappings?.isGlobal) {\r\n\r\n selectedDocLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.ManageDocument.toLowerCase()\r\n && Number(item?.languageId) === Number(this.selectedLanguageId))[0];\r\n\r\n selectedLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.EngagementDetail.toLowerCase()\r\n && Number(item?.languageId) === Number(this.selectedLanguageId))[0];\r\n\r\n selectedLangDateMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.Calendar.toLowerCase()\r\n && Number(item?.languageId) === Number(this.selectedLanguageId))[0];\r\n }\r\n else {\r\n if (Number(this.selectedLanguageId) === 2) {\r\n selectedDocLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.ManageDocument.toLowerCase()\r\n && Number(item?.languageId) === Number(this.selectedLanguageId))[0];\r\n\r\n selectedLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.EngagementDetail.toLowerCase()\r\n && Number(item?.languageId) === Number(this.selectedLanguageId))[0];\r\n\r\n\r\n selectedLangDateMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.Calendar.toLowerCase()\r\n && Number(item?.languageId) === Number(this.selectedLanguageId))[0];\r\n }\r\n else {\r\n selectedDocLanguageMappings = englishDocLanguageMappings;\r\n selectedLanguageMappings = englishLanguageMappings;\r\n selectedLangDateMappings = englishDateMappings;\r\n }\r\n }\r\n\r\n this.selectedAppLanguageJson = JSON.parse(selectedLanguageMappings?.languageMappingJSON ?? englishLanguageMappings.languageMappingJSON);\r\n\r\n this.defaultEnglishJson = JSON.parse(englishLanguageMappings?.languageMappingJSON);\r\n\r\n this.selectedDocLanguageJson = JSON.parse(selectedDocLanguageMappings?.languageMappingJSON ?? englishDocLanguageMappings.languageMappingJSON);\r\n\r\n this.defaultDocEnglishJson = JSON.parse(englishDocLanguageMappings?.languageMappingJSON);\r\n\r\n this.selectedLangDateJson = JSON.parse(selectedLangDateMappings?.languageMappingJSON ?? englishDateMappings.languageMappingJSON);\r\n this.defaultEngDateJson = JSON.parse(englishDateMappings?.languageMappingJSON);\r\n\r\n this.reloadEngagementData()\r\n .then(res => {\r\n this.islabelLoaded = true;\r\n this.spinner.hide();\r\n })\r\n\r\n this.setCalendarLocale(); \r\n resolve();\r\n }\r\n else {\r\n }\r\n });\r\n })\r\n .catch(err => {\r\n\r\n console.log(err);\r\n });\r\n }\r\n\r\n\r\n\r\n reloadEngagementData() {\r\n return new Promise((resolve, reject) => {\r\n this.spinner.show();\r\n if (this.islabelLoaded ) {\r\n if(this.selectedEnagagementId){\r\n this.getEngagementDetailes(this.selectedEnagagementId);\r\n }else{\r\n this.getEngagementDetailes(this.engagementDetail.engagementId);\r\n }\r\n this.getEngagementTopicCard();\r\n this.getFolderStructure();\r\n this.getEngagementApprovedDocument();\r\n this.getTopicCards();\r\n this.getInternalContactInfoList();\r\n this.getExternalContactInfoList();\r\n this.getTopicCards();\r\n this.spinner.hide();\r\n }\r\n this.spinner.hide();\r\n resolve();\r\n });\r\n\r\n }\r\n\r\n labelReplacer(labelKey): string {\r\n return this.selectedAppLanguageJson[labelKey]?.trim() ? this.selectedAppLanguageJson[labelKey] ?? 'text not found' : this.defaultEnglishJson[labelKey] ?? 'text not found';\r\n }\r\n\r\n labelDocReplacer(labelKey): string {\r\n return this.selectedDocLanguageJson[labelKey]?.trim() ? this.selectedDocLanguageJson[labelKey] ?? 'text not found' : this.defaultDocEnglishJson[labelKey] ?? 'text not found';\r\n }\r\n\r\n monthReplacer(labelKey): string {\r\n let localeDt;\r\n if (labelKey) {\r\n let arr = labelKey.split(' ');\r\n if (arr?.length == 3)\r\n localeDt = arr[0] + ' ' + this.calendarReplacer(arr[1]?.toUpperCase()) + ' ' + arr[2];\r\n else if (arr?.length == 4)\r\n localeDt = arr[0] + ' ' + this.calendarReplacer(arr[1]?.toUpperCase()) + ' ' + arr[2] + ' ' + arr[3];\r\n else\r\n localeDt = labelKey;\r\n }\r\n return localeDt;\r\n }\r\n\r\n calendarReplacer(labelKey): string {\r\n return this.selectedLangDateJson[labelKey]?.trim() ? this.selectedLangDateJson[labelKey] ?? 'text not found' : this.defaultEngDateJson[labelKey] ?? 'text not found';\r\n }\r\n\r\n dayOrMonthNameShort(name, length): string {\r\n let shortName = '';\r\n if (name?.trim()?.length == 0)\r\n shortName = 'Text not found';\r\n else if (name?.trim()?.length > 0 && name?.trim()?.length < length)\r\n shortName = name;\r\n else\r\n shortName = name.substr(0, length);\r\n return shortName;\r\n }\r\n\r\n getEngagementTopicCard() {\r\n return new Promise((resolve, reject) => {\r\n this.topicCardService.getEngagementTopicCard(this.engagementDetail).subscribe(res => {\r\n if (res && res.data && res.data.length > 0) {\r\n //success\r\n this.engagementTopicCardList = res.data;\r\n } else {\r\n //display error\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n openDocument(topicCards) {\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = topicCards;\r\n var anchors = div.getElementsByTagName(\"a\");\r\n var elements = document.getElementsByClassName('ui-tree-filter ui-inputtext ui-widget ui-state-default ui-corner-all')[0];\r\n elements.click();\r\n elements.value = anchors[0].text;\r\n }\r\n\r\n openDoc(value) {\r\n var selectedDoc = this.engagementDocList.filter(item => item.docId == value);\r\n if (selectedDoc.length > 0) {\r\n this.getDownloadDocument(selectedDoc[0]);\r\n }\r\n }\r\n\r\n\r\n getEngagementApprovedDocument() {\r\n\r\n return new Promise((resolve, reject) => {\r\n this.manageDocService.getEngagementApprovedDocument(this.engagementDetail).subscribe(res => {\r\n if (res) {\r\n //success\r\n this.approvedEngagementDocList = res.data;\r\n this.getFolderStructure();\r\n } else {\r\n //display error\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n\r\n getEngagementDoc() {\r\n return new Promise((resolve, reject) => {\r\n this.manageDocService.getEngagementDocument(this.engagementDetail).subscribe(res => {\r\n if (res) {\r\n //success\r\n this.engagementDocList = res.data;\r\n } else {\r\n //display error\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n getFileIcon(node: TreeNode) {\r\n let fileType = node.data[0]?.fileType?.toLowerCase();\r\n\r\n //attach file icon based on file type\r\n if (fileType === '.pdf') {\r\n node.data[0].fileTypeIcon = 'picture_as_pdf';\r\n node.data[0].fileIconStyle = '#E0362C';\r\n }\r\n else if (fileType === '.doc' || fileType === '.docx' || fileType === '.dot'\r\n || fileType === '.txt') {\r\n node.data[0].fileTypeIcon = 'description';\r\n node.data[0].fileIconStyle = '#1777CF';\r\n }\r\n else if (fileType === '.xls' || fileType === '.xlsx' || fileType === '.xlsb'\r\n || fileType === '.csv') {\r\n node.data[0].fileTypeIcon = 'insert_chart';\r\n node.data[0].fileIconStyle = '#189D3E';\r\n }\r\n else if (fileType === '.jpg' || fileType === '.jpeg' || fileType === '.png'\r\n || fileType === '.tif') {\r\n node.data[0].fileTypeIcon = 'insert_photo';\r\n node.data[0].fileIconStyle = '#FF6D00';\r\n }\r\n else {\r\n node.data[0].fileTypeIcon = 'help';\r\n }\r\n\r\n\r\n }\r\n\r\n getDescriptionBind(node: any) {\r\n\r\n let nodeDescription = '';\r\n this.spinner.show();\r\n if (node !== null && node != undefined) {\r\n this.description = node.description;\r\n let element = document.getElementById(\"description-collapseOne\");\r\n element.classList.add(\"show\");\r\n\r\n let elementMobile = document.getElementById(\"description-collapse-mobile\");\r\n elementMobile.classList.add(\"show\");\r\n this.spinner.hide();\r\n }\r\n else {\r\n this.spinner.hide();\r\n\r\n this.messageService.add({\r\n summary: 'Error : Unable to get document version',\r\n detail: '',\r\n sticky: false,\r\n severity: 'error'\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n getFileLabel(node: TreeNode) {\r\n let nodeLabel = '';\r\n let docDate = '';\r\n let fileSizeInMb = 0;\r\n if (node !== null && node != undefined) {\r\n nodeLabel += node.label + ' - ';\r\n let documentsTypes = this.approvedEngagementDocList.find(x => x.docId == node?.data[0]?.docId)\r\n if (documentsTypes?.documentTypeId !== 4) {\r\n if (node.data[0]?.documentDate !== null && node.data[0]?.documentDate !== undefined) {\r\n docDate = new Date(node.data[0]?.documentDate.replace(/\\s[0-9]{2}:[0-9]{2}:[0-9]{2}/, '')).toDateString();\r\n }\r\n else {\r\n docDate = new Date(node.data[0]?.createdDTTM.replace(/\\s[0-9]{2}:[0-9]{2}:[0-9]{2}/, '')).toDateString();\r\n }\r\n\r\n if (docDate !== 'Invalid Date')\r\n // docDate = this.datePipe.transform(docDate, \"dd MMM, yyyy\");\r\n docDate = this.monthReplacer(this.datePipe.transform(docDate, \"dd MMM yyyy\"));\r\n nodeLabel += docDate + ' - '\r\n }\r\n if (node.data[0]?.fileSize > 0 && node.data[0]?.fileSize !== undefined) {\r\n fileSizeInMb = Math.round((node.data[0]?.fileSize / 1024));\r\n\r\n nodeLabel += fileSizeInMb + ' KB';\r\n }\r\n return nodeLabel;\r\n }\r\n }\r\n\r\n\r\n\r\n navigateToEdit() {\r\n var newElement = document.getElementById(\"engagement_nav\");\r\n if(newElement)\r\n {\r\n newElement.classList.remove(\"active\");\r\n newElement.classList.remove(\"show\");\r\n }\r\n var newElements = document.getElementById(\"addEngagement\");\r\n if (newElements) {\r\n newElements.classList.remove(\"active\");\r\n }\r\n this.changes.detectChanges();\r\n sessionStorage.setItem('engagementData', JSON.stringify(this.engagementDetail));\r\n this.commonService.setTitle(true);\r\n this.titleService.setTitle(this.title);\r\n this.router.navigate(['/edit-engmt']);\r\n // this.router.navigate(['//home'])\r\n }\r\n\r\n\r\n getFileDescription(node: any) {\r\n let nodeDescription = '';\r\n if (node) {\r\n nodeDescription = node.description ? node.description : '';\r\n return nodeDescription;\r\n }\r\n }\r\n\r\n collapseAll() {\r\n this.targetTreeData.forEach(node => {\r\n this.expandRecursive(node, false);\r\n });\r\n }\r\n\r\n expandAll() {\r\n this.targetTreeData.forEach(node => {\r\n this.expandRecursive(node, true);\r\n });\r\n }\r\n expandRecursive(node: TreeNode, isExpand: boolean) {\r\n node.expanded = isExpand;\r\n if (node.children) {\r\n node.children.forEach(childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n sortNode(node: TreeNode) {\r\n\r\n if (!('sortTypeId' in node?.data[0])) {\r\n node.data[0]['sortTypeId'] = '2';\r\n }\r\n\r\n if (node?.data[0]?.sortTypeId.toString() === '1') {\r\n // node.draggable = false;\r\n // node.droppable = false;\r\n\r\n if (node.children) {\r\n //node?.children?.sort((a, b) => a.label?.localeCompare(b.label));\r\n node?.children?.sort((a, b) => this.displayFolderLabel(a).localeCompare(this.displayFolderLabel(b)));\r\n\r\n\r\n }\r\n }\r\n else if (node?.data[0]?.sortTypeId.toString() === '2') {\r\n // node.draggable = false;\r\n // node.droppable = false;\r\n\r\n if (node.children) {\r\n //node?.children?.sort((a, b) => a.label?.localeCompare(b.label));\r\n node?.children?.sort((a, b) => this.displayFolderLabel(a).localeCompare(this.displayFolderLabel(b)));\r\n node?.children?.sort(this.folder_date_sort_desc);\r\n\r\n }\r\n }\r\n else if (node?.data[0]?.sortTypeId.toString() === '3') {\r\n\r\n }\r\n else if (node?.data[0]?.sortTypeId.toString() === '4') {\r\n\r\n //node?.children?.sort((a, b) => b.label?.localeCompare(a.label));\r\n node?.children?.sort((a, b) => this.displayFolderLabel(b).localeCompare(this.displayFolderLabel(a)));\r\n node?.children?.sort((a, b) => this.folder_date_sort_desc(a, b));\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n folder_date_sort_desc = function (a, b) {\r\n // This is a comparison function that will result in dates being sorted in\r\n // DESCENDING order.\r\n let res;\r\n if (a?.type?.toLowerCase() === 'file') {\r\n a = new Date(a?.data[0]?.documentDate).getTime() ?? new Date(a?.data[0]?.createdDTTM).getTime();\r\n }\r\n else {\r\n a = new Date(a?.data[0]?.createdDTTM).getTime();\r\n }\r\n\r\n if (b?.type?.toLowerCase() === 'file') {\r\n b = new Date(b?.data[0]?.documentDate).getTime() ?? new Date(b?.data[0]?.createdDTTM).getTime();\r\n }\r\n else {\r\n b = new Date(b?.data[0]?.createdDTTM).getTime();\r\n }\r\n\r\n res = a > b ? -1 : a < b ? 1 : 0;\r\n\r\n return res;\r\n\r\n }\r\n\r\n date_sort_desc = function (a, b) {\r\n // This is a comparison function that will result in dates being sorted in\r\n // DESCENDING order.\r\n a = new Date(a.authorizationEndDateTime);\r\n b = new Date(b.authorizationEndDateTime);\r\n return a > b ? -1 : a < b ? 1 : 0;\r\n };\r\n\r\n\r\n applyFilterFortoDate(event, dtree) {\r\n if (this.toDate != null && this.toDate != \"\") {\r\n //dtree.filter([this.toDate[0], this.toDate[1]], 'todatestringformat', 'numberInBetween');\r\n this. getFilteredDate(this.toDate[0], this.toDate[1])\r\n }\r\n }\r\n ClearSearch()\r\n {\r\n this.toDate = null;\r\n this.targetTreeData = this.tempTargetTreeData;\r\n this.collapseAll();\r\n \r\n }\r\n getFilteredDate(startDate:string, endDate:string): void { \r\n this.isSortApplay = true;\r\n let docstartDate = '';\r\n this.selectedapprovedEngagementDocList = [];\r\n //let selectedEngagementDocList: any[] = []; \r\n console.log(startDate);\r\n console.log(endDate);\r\n if(endDate == null || endDate == \"\" ||endDate == undefined){\r\n endDate = startDate;\r\n }\r\n let start_Date = new Date(startDate);\r\n let end_Date = new Date(endDate);\r\n\r\n \r\n // docstartDate = this.monthReplacer(this.datePipe.transform(startDate, \"dd MMM yyyy\"));\r\n // if (this.approvedEngagementDocList && this.approvedEngagementDocList.length > 0) {\r\n // selectedEngagementDocList = this.approvedEngagementDocList.filter(f => new Date(f.documentDate) > docstartDate && new Date(f.documentDate) < endDate);\r\n // }\r\n\r\n // startDate = this.datePipe.transform(startDate, 'dd/MM/yyyy'); \r\n // endDate = this.datePipe.transform(endDate, 'dd/MM/yyyy'); \r\n // startDate = this.datePipe.transform(startDate, \"dd MMM yyyy\"); \r\n // endDate = this.datePipe.transform(endDate, \"dd MMM yyyy\"); \r\n let selectedUsers = this.approvedEngagementDocList.filter(f => new Date(f.documentDate) >= start_Date && new Date(f.documentDate) <= end_Date);\r\n\r\n if (this.approvedEngagementDocList && this.approvedEngagementDocList.length) { \r\n this.approvedEngagementDocList.forEach(proj => { \r\n let projectStartDate = new Date(proj.documentDate); \r\n let projectEndDate = new Date(proj.documentDate); \r\n if (projectStartDate >= start_Date && projectEndDate <= end_Date) { \r\n this.selectedapprovedEngagementDocList.push(proj); \r\n\r\n \r\n } \r\n }); \r\n if (this.selectedapprovedEngagementDocList && this.selectedapprovedEngagementDocList.length) {\r\n this.getFolderStructureForSearch(); \r\n }\r\n else\r\n {\r\n this.targetTreeData = null;\r\n this.messageService.add({\r\n summary: 'Error : No Records found for the selected criteria',\r\n detail: '',\r\n sticky: false,\r\n severity: 'error'\r\n });\r\n }\r\n } \r\n // this.filterdArrayByDate = this.dateFormatPipe.transform(this.projetList, startDate, endDate); \r\n} \r\n\r\n\r\ngetFolderStructureForSearch() {\r\n this.spinner.show();\r\n this.folderService.getFolderTemplate(this.engagementDetail.engagementId).then(files => {\r\n if (files && files.length > 0) {\r\n let x = this.removeEmptyFolderForSearch(files[0])\r\n x['label'] = \"Public Documents\"\r\n this.targetTreeData = x ? x.children.filter(t => t.styleClass != 'detailhideFileClass') : []\r\n\r\n // this.targetTreeData.forEach(x => {\r\n // if (x.type.toLowerCase() === 'folder') {\r\n // this.sortNode(x);\r\n // }\r\n // });\r\n // this.targetTreeData = files.length > 0 ? files : []\r\n // this.preProcessTree();\r\n // this.collapseAll();\r\n this.expandAll();\r\n \r\n }\r\n this.spinner.hide();\r\n });\r\n}\r\n\r\nremoveEmptyFolderForSearch(node: any) {\r\n\r\n let primaryLangId, otherPrimaryLangId, secondPrimaryLangId, thirdPrimaryLangId, fourthPrimaryLangId, fifthPrimaryLangId = 0;\r\n\r\n if (this.engagementDetail.appLanguage == 2) {\r\n primaryLangId = 2;\r\n otherPrimaryLangId = 1;\r\n }\r\n else if (this.engagementDetail.appLanguage == 1) {\r\n primaryLangId = 1;\r\n otherPrimaryLangId = 2;\r\n }\r\n else if (this.engagementDetail.appLanguage == 3) {\r\n primaryLangId = 3;\r\n otherPrimaryLangId = 1;\r\n secondPrimaryLangId = 2;\r\n }\r\n\r\n else //default is english\r\n {\r\n primaryLangId = 1;\r\n otherPrimaryLangId = 2;\r\n }\r\n let isValidFolder = false;\r\n for (let i = 0; i < node.children.length; i++) {\r\n if (node.children[i].type == 'folder') {\r\n this.sortNode(node);\r\n if (this.removeEmptyFolderForSearch(node.children[i]).styleClass != 'detailhideFileClass') {\r\n isValidFolder = true;\r\n }\r\n } else if (node.children[i].type == 'file') {\r\n if (this.selectedapprovedEngagementDocList && this.selectedapprovedEngagementDocList.length > 0) {\r\n let res = this.selectedapprovedEngagementDocList.find(x => x.docId == node.children[i].data[0].docId && x.docVersionId == node.children[i].data[0].docVersionId && primaryLangId == node.children[i].data[0].languageId)\r\n if (res == null || res == undefined)\r\n res = this.selectedapprovedEngagementDocList.find(x => x.docId == node.children[i].data[0].docId && x.docVersionId == node.children[i].data[0].docVersionId && otherPrimaryLangId == node.children[i].data[0].languageId)\r\n if (res == null || res == undefined)\r\n res = this.selectedapprovedEngagementDocList.find(x => x.docId == node.children[i].data[0].docId && x.docVersionId == node.children[i].data[0].docVersionId && secondPrimaryLangId == node.children[i].data[0].languageId)\r\n if (res) {\r\n node.children[i].styleClass = 'fileClass';\r\n node.children[i]['description'] = res.documentDescription;\r\n node.children[i]['docId'] = res.docId\r\n node.children[i]['documentDate'] = res.documentDate\r\n isValidFolder = true;\r\n } else {\r\n node.children[i].styleClass = 'detailhideFileClass';\r\n\r\n }\r\n }\r\n }\r\n }\r\n if (node.type == \"folder\" && !isValidFolder) {\r\n node.styleClass = 'detailhideFileClass';\r\n }\r\n return node;\r\n}\r\n\r\n\r\n setCalendarLocale() {\r\n this.localeSetting = {\r\n firstDayOfWeek: 0,\r\n dayNames: [\r\n this.calendarReplacer(\"SUN\"),\r\n this.calendarReplacer(\"MON\"), this.calendarReplacer(\"TUE\"), this.calendarReplacer(\"WED\"),\r\n this.calendarReplacer(\"THU\"), this.calendarReplacer(\"FRI\"), this.calendarReplacer(\"SAT\")\r\n ],\r\n dayNamesShort: [\r\n this.dayOrMonthNameShort(this.calendarReplacer(\"SUN\"), 3),\r\n this.dayOrMonthNameShort(this.calendarReplacer(\"MON\"), 3), this.dayOrMonthNameShort(this.calendarReplacer(\"TUE\"), 3),\r\n this.dayOrMonthNameShort(this.calendarReplacer(\"WED\"), 3), this.dayOrMonthNameShort(this.calendarReplacer(\"THU\"), 3),\r\n this.dayOrMonthNameShort(this.calendarReplacer(\"FRI\"), 3), this.dayOrMonthNameShort(this.calendarReplacer(\"SAT\"), 3)\r\n ],\r\n dayNamesMin: [\r\n this.dayOrMonthNameShort(this.calendarReplacer(\"SUN\"), 1),\r\n this.dayOrMonthNameShort(this.calendarReplacer(\"MON\"), 1), this.dayOrMonthNameShort(this.calendarReplacer(\"TUE\"), 1),\r\n this.dayOrMonthNameShort(this.calendarReplacer(\"WED\"), 1), this.dayOrMonthNameShort(this.calendarReplacer(\"THU\"), 1),\r\n this.dayOrMonthNameShort(this.calendarReplacer(\"FRI\"), 1), this.dayOrMonthNameShort(this.calendarReplacer(\"SAT\"), 1)\r\n ],\r\n monthNames: [\r\n this.calendarReplacer(\"JAN\"), this.calendarReplacer(\"FEB\"), this.calendarReplacer(\"MAR\"),\r\n this.calendarReplacer(\"APR\"), this.calendarReplacer(\"MAY\"), this.calendarReplacer(\"JUN\"),\r\n this.calendarReplacer(\"JUL\"), this.calendarReplacer(\"AUG\"), this.calendarReplacer(\"SEP\"),\r\n this.calendarReplacer(\"OCT\"), this.calendarReplacer(\"NOV\"), this.calendarReplacer(\"DEC\")\r\n ],\r\n monthNamesShort: [\r\n this.calendarReplacer(\"JAN\"), this.calendarReplacer(\"FEB\"), this.calendarReplacer(\"MAR\"),\r\n this.calendarReplacer(\"APR\"), this.calendarReplacer(\"MAY\"), this.calendarReplacer(\"JUN\"),\r\n this.calendarReplacer(\"JUL\"), this.calendarReplacer(\"AUG\"), this.calendarReplacer(\"SEP\"),\r\n this.calendarReplacer(\"OCT\"), this.calendarReplacer(\"NOV\"), this.calendarReplacer(\"DEC\")\r\n ],\r\n today: this.calendarReplacer('TODAY'),\r\n clear: this.calendarReplacer('CLEAR')\r\n }\r\n }\r\n\r\n dateAsYYYYMMDDHHNNSS(date): string {\r\n return date.getFullYear()\r\n + '-' + this.leftpad(date.getMonth() + 1, 2)\r\n + '-' + this.leftpad(date.getDate(), 2);\r\n }\r\n\r\n leftpad(val, resultLength = 2, leftpadChar = '0'): string {\r\n return (String(leftpadChar).repeat(resultLength)\r\n + String(val)).slice(String(val).length);\r\n }\r\n\r\n @HostListener('window:scroll', ['$event']) // for window scroll events\r\n onScroll(event) {\r\n if (document.body.scrollTop > 10 || document.documentElement.scrollTop > 10) {\r\n if(this.formal==false && this.loggedIn==false){\r\n document.getElementById(\"fixed-eng\").style.top = \"52px\";\r\n }\r\n else{\r\n document.getElementById(\"fixed-eng\").style.top = \"111px\";\r\n }\r\n } else {\r\n if(this.formal==false && this.loggedIn==false){\r\n document.getElementById(\"fixed-eng\").style.top = \"82px\";\r\n }\r\n else{\r\n document.getElementById(\"fixed-eng\").style.top = \"142px\";\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class downloadDocument {\r\n EngagementId: Number;\r\n DocId: any;\r\n DocVersionId: any;\r\n FileName: any;\r\n FileType: any;\r\n LanguageCode:any;\r\n constructor(engagementId: Number, docId: any, docVersionId: any, fileName: any, fileType: any,languageCode:any) {\r\n this.EngagementId = engagementId;\r\n this.DocId = docId;\r\n this.DocVersionId = docVersionId;\r\n this.FileName = fileName;\r\n this.FileType = fileType;\r\n this.LanguageCode = languageCode;\r\n }\r\n}\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule ,DatePipe} from '@angular/common';\r\nimport { DetailEngagementComponent } from './detail-engagement.component';\r\n// import { ServerComponent } from './server/server.component';\r\n// import { ServersComponent } from \"./servers/servers.component\";\r\n// import { WarningalertComponent } from \"./warningalert/warningalert.component\";\r\n// import { SuccessalertComponent } from \"./successalert/successalert.component\";\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CarouselModule, AccordionModule, TooltipModule, TreeModule, ToastModule ,CalendarModule} from 'primeng';\r\nimport { DetailEngagementRoutingModule } from './detail-engagement-routing.module';\r\nimport { PublicUserComponent } from '../public-user/public-user.component';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { SharedModuleModule } from '../shared-module/shared-module.module';\r\n//import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CarouselModule,\r\n AccordionModule,\r\n ReactiveFormsModule,\r\n ToastModule,\r\n DialogModule,\r\n CalendarModule,\r\n // BrowserAnimationsModule,\r\n TooltipModule,\r\n TreeModule,\r\n DetailEngagementRoutingModule,\r\n SharedModuleModule\r\n ],\r\n declarations: [\r\n DetailEngagementComponent,\r\n PublicUserComponent\r\n // ServerComponent,\r\n // ServersComponent,\r\n // WarningalertComponent,\r\n // SuccessalertComponent\r\n ],\r\n providers: [\r\n DatePipe ]\r\n})\r\nexport class DetailEngagementModule { }\r\n\r\n\r\n\r\n","export enum ContactType {\r\n Extranal = 1,\r\n Internal=2,\r\n }","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { PublicuserModel } from './models/publicuser.model';\r\nimport { NgForm } from '@angular/forms';\r\nimport { PublicuserService } from '../../framework/services/publicuser.service';\r\nimport { MessageService } from 'primeng/api';\r\nimport { CategoryConstant } from '../shared/app-constants/category-constants';\r\nimport { LanguageService } from 'src/framework/services/language.service';\r\n\r\n@Component({\r\n selector: 'app-public-user',\r\n templateUrl: './public-user.component.html',\r\n styleUrls: ['./public-user.component.css']\r\n})\r\nexport class PublicUserComponent implements OnInit {\r\n @Input() EngagementId: any;\r\n message: string;\r\n selectedLanguageId: number;\r\n defaultEnglishJson: any;\r\n islabelLoaded: boolean = false;\r\n selectedAppLanguageJson: any;\r\n user: PublicuserModel = new PublicuserModel();\r\n constructor(public service: PublicuserService, private messageService: MessageService, private languageSerivce: LanguageService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n this.loadLanguageLabel();\r\n }\r\n\r\n\r\n addPublicUser() {\r\n\r\n if (this.service.form.valid) {\r\n this.service.checkEmail(this.service.form.value.email, this.EngagementId).subscribe(res => {\r\n var result = res;\r\n result;\r\n if (!result) {\r\n this.service.addPublicUser(this.service.form.value, this.EngagementId,this.selectedLanguageId).subscribe(res => {\r\n var response = res;\r\n this.service.form.reset();\r\n this.messageService.add({ severity: 'success', summary: this.labelReplacer('SubcriptionDetails'), detail: this.labelReplacer('SubrciptionDetialsSentSuccessfully') });\r\n this.service.resetFormGroup();\r\n });\r\n }\r\n else {\r\n this.messageService.add({ severity: 'error', summary: this.labelReplacer('AlreadySubscribed'), detail: this.labelReplacer('AlreadySubscribedUser') });\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n close() {\r\n this.service.form.reset();\r\n }\r\n\r\n\r\n\r\n loadLanguageLabel() {\r\n let englishLanguageMappings, selectedLanguageMappings: any;\r\n\r\n return new Promise((resolve, reject) => {\r\n if (sessionStorage.getItem('selectedLanguageId')) {\r\n this.selectedLanguageId = 1;//JSON.parse(sessionStorage.getItem('selectedLanguageId'));\r\n }\r\n\r\n this.languageSerivce.currentData.subscribe(data => {\r\n this.selectedLanguageId = data.Id\r\n });\r\n\r\n\r\n this.languageSerivce.mySubject.subscribe((data) => {\r\n var languageMappings = data;\r\n if (languageMappings?.length > 0) {\r\n\r\n englishLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.EngagementDetail.toLowerCase()\r\n && Number(item?.languageId) === 1)[0];\r\n\r\n if (englishLanguageMappings?.isGlobal) {\r\n selectedLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.EngagementDetail.toLowerCase()\r\n && Number(item?.languageId) === Number(this.selectedLanguageId))[0];\r\n }\r\n else {\r\n if (Number(this.selectedLanguageId) === 2) {\r\n selectedLanguageMappings = languageMappings.filter(item =>\r\n item?.categoryName?.toLowerCase() === CategoryConstant.EngagementDetail.toLowerCase()\r\n && Number(item?.languageId) === Number(this.selectedLanguageId))[0];\r\n }\r\n else {\r\n selectedLanguageMappings = englishLanguageMappings;\r\n }\r\n }\r\n\r\n this.selectedAppLanguageJson = JSON.parse(selectedLanguageMappings?.languageMappingJSON ?? englishLanguageMappings.languageMappingJSON);\r\n\r\n this.defaultEnglishJson = JSON.parse(englishLanguageMappings.languageMappingJSON);\r\n\r\n this.islabelLoaded = true;\r\n\r\n resolve(1);\r\n }\r\n else {\r\n }\r\n });\r\n })\r\n .catch(err => {\r\n\r\n console.log(err);\r\n });\r\n }\r\n\r\n\r\n\r\n labelReplacer(labelKey): string {\r\n return this.selectedAppLanguageJson[labelKey]?.trim() ? this.selectedAppLanguageJson[labelKey] ?? 'text not found' : this.defaultEnglishJson[labelKey] ?? 'text not found';\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { EventEmitter, Inject, forwardRef, ChangeDetectorRef, Input, Output, ContentChildren, Component, ElementRef, NgModule } from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { Header, PrimeTemplate, SharedModule } from 'primeng/api';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\n\nfunction AccordionTab_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 7);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r0.header, \" \");\n} }\nfunction AccordionTab_ng_content_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 1, [\"*ngIf\", \"hasHeaderFacet\"]);\n} }\nfunction AccordionTab_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction AccordionTab_ng_container_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, AccordionTab_ng_container_8_ng_container_1_Template, 1, 0, \"ng-container\", 8);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.contentTemplate);\n} }\nconst _c0 = [\"*\", [[\"p-header\"]]];\nconst _c1 = function (a0, a1) { return { \"ui-state-active\": a0, \"ui-state-disabled\": a1 }; };\nconst _c2 = function (a0) { return { transitionParams: a0, height: \"*\" }; };\nconst _c3 = function (a1) { return { value: \"visible\", params: a1 }; };\nconst _c4 = function (a0) { return { transitionParams: a0, height: \"0\" }; };\nconst _c5 = function (a1) { return { value: \"hidden\", params: a1 }; };\nconst _c6 = function (a0) { return { \"ui-accordion-content-wrapper-overflown\": a0 }; };\nconst _c7 = [\"*\", \"p-header\"];\nconst _c8 = [\"*\"];\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet idx = 0;\nlet AccordionTab = class AccordionTab {\n constructor(accordion, changeDetector) {\n this.changeDetector = changeDetector;\n this.cache = true;\n this.selectedChange = new EventEmitter();\n this.transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n this.id = `ui-accordiontab-${idx++}`;\n this.accordion = accordion;\n }\n get selected() {\n return this._selected;\n }\n set selected(val) {\n this._selected = val;\n if (!this.loaded) {\n this.changeDetector.detectChanges();\n }\n }\n get animating() {\n return this._animating;\n }\n set animating(val) {\n this._animating = val;\n if (!this.changeDetector.destroyed) {\n this.changeDetector.detectChanges();\n }\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n toggle(event) {\n if (this.disabled || this.animating) {\n return false;\n }\n this.animating = true;\n let index = this.findTabIndex();\n if (this.selected) {\n this.selected = false;\n this.accordion.onClose.emit({ originalEvent: event, index: index });\n }\n else {\n if (!this.accordion.multiple) {\n for (var i = 0; i < this.accordion.tabs.length; i++) {\n this.accordion.tabs[i].selected = false;\n this.accordion.tabs[i].selectedChange.emit(false);\n }\n }\n this.selected = true;\n this.loaded = true;\n this.accordion.onOpen.emit({ originalEvent: event, index: index });\n }\n this.selectedChange.emit(this.selected);\n event.preventDefault();\n }\n findTabIndex() {\n let index = -1;\n for (var i = 0; i < this.accordion.tabs.length; i++) {\n if (this.accordion.tabs[i] == this) {\n index = i;\n break;\n }\n }\n return index;\n }\n get hasHeaderFacet() {\n return this.headerFacet && this.headerFacet.length > 0;\n }\n onToggleDone(event) {\n this.animating = false;\n }\n onKeydown(event) {\n if (event.which === 32 || event.which === 13) {\n this.toggle(event);\n event.preventDefault();\n }\n }\n ngOnDestroy() {\n this.accordion.tabs.splice(this.findTabIndex(), 1);\n }\n};\nAccordionTab.ɵfac = function AccordionTab_Factory(t) { return new (t || AccordionTab)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => Accordion)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nAccordionTab.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AccordionTab, selectors: [[\"p-accordionTab\"]], contentQueries: function AccordionTab_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, Header, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerFacet = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, inputs: { cache: \"cache\", transitionOptions: \"transitionOptions\", selected: \"selected\", header: \"header\", disabled: \"disabled\" }, outputs: { selectedChange: \"selectedChange\" }, ngContentSelectors: _c7, decls: 9, vars: 27, consts: [[1, \"ui-accordion-header\", \"ui-state-default\", \"ui-corner-all\", 3, \"ngClass\"], [\"role\", \"tab\", 3, \"click\", \"keydown\"], [1, \"ui-accordion-toggle-icon\", 3, \"ngClass\"], [\"class\", \"ui-accordion-header-text\", 4, \"ngIf\"], [4, \"ngIf\"], [\"role\", \"region\", 1, \"ui-accordion-content-wrapper\", 3, \"ngClass\"], [1, \"ui-accordion-content\", \"ui-widget-content\"], [1, \"ui-accordion-header-text\"], [4, \"ngTemplateOutlet\"]], template: function AccordionTab_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c0);\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"a\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function AccordionTab_Template_a_click_1_listener($event) { return ctx.toggle($event); })(\"keydown\", function AccordionTab_Template_a_keydown_1_listener($event) { return ctx.onKeydown($event); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵtemplate(3, AccordionTab_span_3_Template, 2, 1, \"span\", 3);\n ɵngcc0.ɵɵtemplate(4, AccordionTab_ng_content_4_Template, 1, 0, \"ng-content\", 4);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(5, \"div\", 5);\n ɵngcc0.ɵɵlistener(\"@tabContent.done\", function AccordionTab_Template_div_animation_tabContent_done_5_listener($event) { return ctx.onToggleDone($event); });\n ɵngcc0.ɵɵelementStart(6, \"div\", 6);\n ɵngcc0.ɵɵprojection(7);\n ɵngcc0.ɵɵtemplate(8, AccordionTab_ng_container_8_Template, 2, 1, \"ng-container\", 4);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(14, _c1, ctx.selected, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.disabled ? -1 : 0)(\"id\", ctx.id)(\"aria-controls\", ctx.id + \"-content\")(\"aria-expanded\", ctx.selected);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.selected ? ctx.accordion.collapseIcon : ctx.accordion.expandIcon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.hasHeaderFacet);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.hasHeaderFacet);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"@tabContent\", ctx.selected ? ɵngcc0.ɵɵpureFunction1(19, _c3, ɵngcc0.ɵɵpureFunction1(17, _c2, ctx.animating ? ctx.transitionOptions : \"0ms\")) : ɵngcc0.ɵɵpureFunction1(23, _c5, ɵngcc0.ɵɵpureFunction1(21, _c4, ctx.transitionOptions)))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(25, _c6, !ctx.selected || ctx.animating));\n ɵngcc0.ɵɵattribute(\"id\", ctx.id + \"-content\")(\"aria-hidden\", !ctx.selected)(\"aria-labelledby\", ctx.id);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contentTemplate && (ctx.cache ? ctx.loaded : ctx.selected));\n } }, directives: [ɵngcc1.NgClass, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, data: { animation: [\n trigger('tabContent', [\n state('hidden', style({\n height: '0'\n })),\n state('void', style({\n height: '{{height}}'\n }), { params: { height: '0' } }),\n state('visible', style({\n height: '*'\n })),\n transition('visible <=> hidden', animate('{{transitionParams}}')),\n transition('void => hidden', animate('{{transitionParams}}')),\n transition('void => visible', animate('{{transitionParams}}'))\n ])\n ] } });\nAccordionTab.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => Accordion),] }] },\n { type: ChangeDetectorRef }\n];\n__decorate([\n Input()\n], AccordionTab.prototype, \"header\", void 0);\n__decorate([\n Input()\n], AccordionTab.prototype, \"disabled\", void 0);\n__decorate([\n Input()\n], AccordionTab.prototype, \"cache\", void 0);\n__decorate([\n Output()\n], AccordionTab.prototype, \"selectedChange\", void 0);\n__decorate([\n Input()\n], AccordionTab.prototype, \"transitionOptions\", void 0);\n__decorate([\n ContentChildren(Header)\n], AccordionTab.prototype, \"headerFacet\", void 0);\n__decorate([\n ContentChildren(PrimeTemplate)\n], AccordionTab.prototype, \"templates\", void 0);\n__decorate([\n Input()\n], AccordionTab.prototype, \"selected\", null);\nAccordionTab = __decorate([ __param(0, Inject(forwardRef(() => Accordion)))\n], AccordionTab);\nlet Accordion = class Accordion {\n constructor(el, changeDetector) {\n this.el = el;\n this.changeDetector = changeDetector;\n this.onClose = new EventEmitter();\n this.onOpen = new EventEmitter();\n this.expandIcon = 'pi pi-fw pi-chevron-right';\n this.collapseIcon = 'pi pi-fw pi-chevron-down';\n this.tabs = [];\n }\n ngAfterContentInit() {\n this.initTabs();\n this.tabListSubscription = this.tabList.changes.subscribe(_ => {\n this.initTabs();\n this.changeDetector.markForCheck();\n });\n }\n initTabs() {\n this.tabs = this.tabList.toArray();\n this.updateSelectionState();\n }\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n get activeIndex() {\n return this._activeIndex;\n }\n set activeIndex(val) {\n this._activeIndex = val;\n this.updateSelectionState();\n }\n updateSelectionState() {\n if (this.tabs && this.tabs.length && this._activeIndex != null) {\n for (let i = 0; i < this.tabs.length; i++) {\n let selected = this.multiple ? this._activeIndex.includes(i) : (i === this._activeIndex);\n let changed = selected !== this.tabs[i].selected;\n if (changed) {\n this.tabs[i].animating = true;\n this.tabs[i].selected = selected;\n this.tabs[i].selectedChange.emit(selected);\n }\n }\n }\n }\n ngOnDestroy() {\n if (this.tabListSubscription) {\n this.tabListSubscription.unsubscribe();\n }\n }\n};\nAccordion.ɵfac = function Accordion_Factory(t) { return new (t || Accordion)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nAccordion.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: Accordion, selectors: [[\"p-accordion\"]], contentQueries: function Accordion_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, AccordionTab, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tabList = _t);\n } }, inputs: { expandIcon: \"expandIcon\", collapseIcon: \"collapseIcon\", activeIndex: \"activeIndex\", multiple: \"multiple\", style: \"style\", styleClass: \"styleClass\" }, outputs: { onClose: \"onClose\", onOpen: \"onOpen\" }, ngContentSelectors: _c8, decls: 2, vars: 4, consts: [[\"role\", \"tablist\", 3, \"ngClass\", \"ngStyle\"]], template: function Accordion_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.styleClass);\n ɵngcc0.ɵɵproperty(\"ngClass\", \"ui-accordion ui-widget ui-helper-reset\")(\"ngStyle\", ctx.style);\n } }, directives: [ɵngcc1.NgClass, ɵngcc1.NgStyle], encapsulation: 2 });\nAccordion.ctorParameters = () => [\n { type: ElementRef },\n { type: ChangeDetectorRef }\n];\n__decorate([\n Input()\n], Accordion.prototype, \"multiple\", void 0);\n__decorate([\n Output()\n], Accordion.prototype, \"onClose\", void 0);\n__decorate([\n Output()\n], Accordion.prototype, \"onOpen\", void 0);\n__decorate([\n Input()\n], Accordion.prototype, \"style\", void 0);\n__decorate([\n Input()\n], Accordion.prototype, \"styleClass\", void 0);\n__decorate([\n Input()\n], Accordion.prototype, \"expandIcon\", void 0);\n__decorate([\n Input()\n], Accordion.prototype, \"collapseIcon\", void 0);\n__decorate([\n ContentChildren(AccordionTab)\n], Accordion.prototype, \"tabList\", void 0);\n__decorate([\n Input()\n], Accordion.prototype, \"activeIndex\", null);\nlet AccordionModule = class AccordionModule {\n};\nAccordionModule.ɵfac = function AccordionModule_Factory(t) { return new (t || AccordionModule)(); };\nAccordionModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: AccordionModule });\nAccordionModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule], SharedModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AccordionTab, [{\n type: Component,\n args: [{\n selector: 'p-accordionTab',\n template: `\n \n
\n
\n \n \n \n \n
\n
\n `,\n animations: [\n trigger('tabContent', [\n state('hidden', style({\n height: '0'\n })),\n state('void', style({\n height: '{{height}}'\n }), { params: { height: '0' } }),\n state('visible', style({\n height: '*'\n })),\n transition('visible <=> hidden', animate('{{transitionParams}}')),\n transition('void => hidden', animate('{{transitionParams}}')),\n transition('void => visible', animate('{{transitionParams}}'))\n ])\n ]\n }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [forwardRef(() => Accordion)]\n }] }, { type: ɵngcc0.ChangeDetectorRef }]; }, { cache: [{\n type: Input\n }], selectedChange: [{\n type: Output\n }], transitionOptions: [{\n type: Input\n }], selected: [{\n type: Input\n }], header: [{\n type: Input\n }], disabled: [{\n type: Input\n }], headerFacet: [{\n type: ContentChildren,\n args: [Header]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(Accordion, [{\n type: Component,\n args: [{\n selector: 'p-accordion',\n template: `\n
\n \n
\n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }]; }, { onClose: [{\n type: Output\n }], onOpen: [{\n type: Output\n }], expandIcon: [{\n type: Input\n }], collapseIcon: [{\n type: Input\n }], activeIndex: [{\n type: Input\n }], multiple: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], tabList: [{\n type: ContentChildren,\n args: [AccordionTab]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AccordionModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [Accordion, AccordionTab, SharedModule],\n declarations: [Accordion, AccordionTab]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AccordionModule, { declarations: function () { return [Accordion, AccordionTab]; }, imports: function () { return [CommonModule]; }, exports: function () { return [Accordion, AccordionTab, SharedModule]; } }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Accordion, AccordionModule, AccordionTab };\n\n","import { EventEmitter, ElementRef, NgZone, Input, Output, ViewChild, ContentChild, ContentChildren, Component, NgModule } from '@angular/core';\nimport { Header, Footer, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { CommonModule } from '@angular/common';\nimport { UniqueComponentId } from 'primeng/utils';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\n\nconst _c0 = [\"itemsContainer\"];\nfunction Carousel_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 10);\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction Carousel_div_9_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nconst _c1 = function (a1, a2, a3) { return { \"ui-carousel-item ui-carousel-item-cloned\": true, \"ui-carousel-item-active\": a1, \"ui-carousel-item-start\": a2, \"ui-carousel-item-end\": a3 }; };\nconst _c2 = function (a0) { return { $implicit: a0 }; };\nfunction Carousel_div_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵtemplate(1, Carousel_div_9_ng_container_1_Template, 1, 0, \"ng-container\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r7 = ctx.$implicit;\n const index_r8 = ctx.index;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction3(3, _c1, ctx_r2.totalShiftedItems * -1 === ctx_r2.value.length, 0 === index_r8, ctx_r2.clonedItemsForStarting.length - 1 === index_r8));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(7, _c2, item_r7));\n} }\nfunction Carousel_div_10_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nconst _c3 = function (a1, a2, a3) { return { \"ui-carousel-item\": true, \"ui-carousel-item-active\": a1, \"ui-carousel-item-start\": a2, \"ui-carousel-item-end\": a3 }; };\nfunction Carousel_div_10_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵtemplate(1, Carousel_div_10_ng_container_1_Template, 1, 0, \"ng-container\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r10 = ctx.$implicit;\n const index_r11 = ctx.index;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction3(3, _c3, ctx_r3.firstIndex() <= index_r11 && ctx_r3.lastIndex() >= index_r11, ctx_r3.firstIndex() === index_r11, ctx_r3.lastIndex() === index_r11));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(7, _c2, item_r10));\n} }\nfunction Carousel_div_11_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction Carousel_div_11_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵtemplate(1, Carousel_div_11_ng_container_1_Template, 1, 0, \"ng-container\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r13 = ctx.$implicit;\n const index_r14 = ctx.index;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction3(3, _c1, ctx_r4.totalShiftedItems * -1 === ctx_r4.numVisible, 0 === index_r14, ctx_r4.clonedItemsForFinishing.length - 1 === index_r14));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(7, _c2, item_r13));\n} }\nconst _c4 = function (a1) { return { \"ui-carousel-dot-item\": true, \"ui-state-highlight\": a1 }; };\nconst _c5 = function (a1, a2) { return { \"ui-carousel-dot-icon pi\": true, \"pi-circle-on\": a1, \"pi-circle-off\": a2 }; };\nfunction Carousel_li_15_Template(rf, ctx) { if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 4)(1, \"button\", 12);\n ɵngcc0.ɵɵlistener(\"click\", function Carousel_li_15_Template_button_click_1_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r19); const i_r17 = restoredCtx.index; const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ctx_r18.onDotClick($event, i_r17); });\n ɵngcc0.ɵɵelement(2, \"span\", 4);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const i_r17 = ctx.index;\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(2, _c4, ctx_r5._page === i_r17));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(4, _c5, ctx_r5._page === i_r17, !(ctx_r5._page === i_r17)));\n} }\nfunction Carousel_div_16_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 13);\n ɵngcc0.ɵɵprojection(1, 1);\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c6 = [[[\"p-header\"]], [[\"p-footer\"]]];\nconst _c7 = function (a1) { return { \"ui-carousel-prev ui-button ui-widget ui-state-default ui-corner-all\": true, \"ui-state-disabled\": a1 }; };\nconst _c8 = function (a1, a2) { return { \"ui-carousel-prev-icon pi\": true, \"pi-chevron-left\": a1, \"pi-chevron-up\": a2 }; };\nconst _c9 = function (a0) { return { \"height\": a0 }; };\nconst _c10 = function (a1) { return { \"ui-carousel-next ui-button ui-widget ui-state-default ui-corner-all\": true, \"ui-state-disabled\": a1 }; };\nconst _c11 = function (a1, a2) { return { \"ui-carousel-next-icon pi\": true, \"pi-chevron-right\": a1, \"pi-chevron-down\": a2 }; };\nconst _c12 = [\"p-header\", \"p-footer\"];\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nlet Carousel = class Carousel {\n constructor(el, zone) {\n this.el = el;\n this.zone = zone;\n this.orientation = \"horizontal\";\n this.verticalViewPortHeight = \"300px\";\n this.contentClass = \"\";\n this.dotsContainerClass = \"\";\n this.circular = false;\n this.autoplayInterval = 0;\n this.onPage = new EventEmitter();\n this._numVisible = 1;\n this._numScroll = 1;\n this._oldNumScroll = 0;\n this.prevState = {\n numScroll: 0,\n numVisible: 0,\n value: []\n };\n this.defaultNumScroll = 1;\n this.defaultNumVisible = 1;\n this._page = 0;\n this.isRemainingItemsAdded = false;\n this.remainingItems = 0;\n this.totalShiftedItems = this.page * this.numScroll * -1;\n }\n get page() {\n return this._page;\n }\n set page(val) {\n if (this.isCreated && val !== this._page) {\n if (this.autoplayInterval) {\n this.stopAutoplay();\n this.allowAutoplay = false;\n }\n if (val > this._page && val < (this.totalDots() - 1)) {\n this.step(-1, val);\n }\n else if (val < this._page && val !== 0) {\n this.step(1, val);\n }\n }\n this._page = val;\n }\n get numVisible() {\n return this._numVisible;\n }\n set numVisible(val) {\n this._numVisible = val;\n }\n get numScroll() {\n return this._numVisible;\n }\n set numScroll(val) {\n this._numScroll = val;\n }\n get value() {\n return this._value;\n }\n ;\n set value(val) {\n this._value = val;\n if (this.circular && this._value) {\n this.setCloneItems();\n }\n }\n ngAfterContentInit() {\n this.id = UniqueComponentId();\n this.allowAutoplay = !!this.autoplayInterval;\n if (this.circular) {\n this.setCloneItems();\n }\n if (this.responsiveOptions) {\n this.defaultNumScroll = this._numScroll;\n this.defaultNumVisible = this._numVisible;\n }\n this.createStyle();\n this.calculatePosition();\n if (this.responsiveOptions) {\n this.bindDocumentListeners();\n }\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n ngAfterContentChecked() {\n const isCircular = this.isCircular();\n let totalShiftedItems = this.totalShiftedItems;\n if (this.value && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.value.length)) {\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n this.remainingItems = (this.value.length - this._numVisible) % this._numScroll;\n let page = this._page;\n if (this.totalDots() !== 0 && page >= this.totalDots()) {\n page = this.totalDots() - 1;\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n }\n totalShiftedItems = (page * this._numScroll) * -1;\n if (isCircular) {\n totalShiftedItems -= this._numVisible;\n }\n if (page === (this.totalDots() - 1) && this.remainingItems > 0) {\n totalShiftedItems += (-1 * this.remainingItems) + this._numScroll;\n this.isRemainingItemsAdded = true;\n }\n else {\n this.isRemainingItemsAdded = false;\n }\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n }\n this._oldNumScroll = this._numScroll;\n this.prevState.numScroll = this._numScroll;\n this.prevState.numVisible = this._numVisible;\n this.prevState.value = this._value;\n if (this.totalDots() > 0) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n }\n this.isCreated = true;\n if (this.autoplayInterval && this.isAutoplay()) {\n this.startAutoplay();\n }\n }\n if (isCircular) {\n if (this.page === 0) {\n totalShiftedItems = -1 * this._numVisible;\n }\n else if (totalShiftedItems === 0) {\n totalShiftedItems = -1 * this.value.length;\n if (this.remainingItems > 0) {\n this.isRemainingItemsAdded = true;\n }\n }\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n }\n }\n }\n createStyle() {\n if (!this.carouselStyle) {\n this.carouselStyle = document.createElement('style');\n this.carouselStyle.type = 'text/css';\n document.body.appendChild(this.carouselStyle);\n }\n let innerHTML = `\n #${this.id} .ui-carousel-item {\n\t\t\t\tflex: 1 0 ${(100 / this.numVisible)}%\n\t\t\t}\n `;\n if (this.responsiveOptions) {\n this.responsiveOptions.sort((data1, data2) => {\n const value1 = data1.breakpoint;\n const value2 = data2.breakpoint;\n let result = null;\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2, undefined, { numeric: true });\n else\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\n return -1 * result;\n });\n for (let i = 0; i < this.responsiveOptions.length; i++) {\n let res = this.responsiveOptions[i];\n innerHTML += `\n @media screen and (max-width: ${res.breakpoint}) {\n #${this.id} .ui-carousel-item {\n flex: 1 0 ${(100 / res.numVisible)}%\n }\n }\n `;\n }\n }\n this.carouselStyle.innerHTML = innerHTML;\n }\n calculatePosition() {\n if (this.itemsContainer && this.responsiveOptions) {\n let windowWidth = window.innerWidth;\n let matchedResponsiveData = {\n numVisible: this.defaultNumVisible,\n numScroll: this.defaultNumScroll\n };\n for (let i = 0; i < this.responsiveOptions.length; i++) {\n let res = this.responsiveOptions[i];\n if (parseInt(res.breakpoint, 10) >= windowWidth) {\n matchedResponsiveData = res;\n }\n }\n if (this._numScroll !== matchedResponsiveData.numScroll) {\n let page = this._page;\n page = Math.floor((page * this._numScroll) / matchedResponsiveData.numScroll);\n let totalShiftedItems = (matchedResponsiveData.numScroll * this.page) * -1;\n if (this.isCircular()) {\n totalShiftedItems -= matchedResponsiveData.numVisible;\n }\n this.totalShiftedItems = totalShiftedItems;\n this._numScroll = matchedResponsiveData.numScroll;\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n }\n if (this._numVisible !== matchedResponsiveData.numVisible) {\n this._numVisible = matchedResponsiveData.numVisible;\n this.setCloneItems();\n }\n }\n }\n setCloneItems() {\n this.clonedItemsForStarting = [];\n this.clonedItemsForFinishing = [];\n if (this.isCircular()) {\n this.clonedItemsForStarting.push(...this.value.slice(-1 * this._numVisible));\n this.clonedItemsForFinishing.push(...this.value.slice(0, this._numVisible));\n }\n }\n firstIndex() {\n return this.isCircular() ? (-1 * (this.totalShiftedItems + this.numVisible)) : (this.totalShiftedItems * -1);\n }\n lastIndex() {\n return this.firstIndex() + this.numVisible - 1;\n }\n totalDots() {\n return this.value ? Math.ceil((this.value.length - this._numVisible) / this._numScroll) + 1 : 0;\n }\n totalDotsArray() {\n const totalDots = this.totalDots();\n return totalDots <= 0 ? [] : Array(totalDots).fill(0);\n }\n containerClass() {\n return {\n 'ui-carousel ui-widget': true,\n 'ui-carousel-vertical': this.isVertical(),\n 'ui-carousel-horizontal': !this.isVertical()\n };\n }\n contentClasses() {\n return 'ui-carousel-content ' + this.contentClass;\n }\n dotsContentClasses() {\n return 'ui-carousel-dots-container ui-helper-reset ' + this.dotsContainerClass;\n }\n isVertical() {\n return this.orientation === 'vertical';\n }\n isCircular() {\n return this.circular && this.value && this.value.length >= this.numVisible;\n }\n isAutoplay() {\n return this.autoplayInterval && this.allowAutoplay;\n }\n isForwardNavDisabled() {\n return this.isEmpty() || (this._page >= (this.totalDots() - 1) && !this.isCircular());\n }\n isBackwardNavDisabled() {\n return this.isEmpty() || (this._page <= 0 && !this.isCircular());\n }\n isEmpty() {\n return !this.value || this.value.length === 0;\n }\n navForward(e, index) {\n if (this.isCircular() || this._page < (this.totalDots() - 1)) {\n this.step(-1, index);\n }\n if (this.autoplayInterval) {\n this.stopAutoplay();\n this.allowAutoplay = false;\n }\n if (e && e.cancelable) {\n e.preventDefault();\n }\n }\n navBackward(e, index) {\n if (this.isCircular() || this._page !== 0) {\n this.step(1, index);\n }\n if (this.autoplayInterval) {\n this.stopAutoplay();\n this.allowAutoplay = false;\n }\n if (e && e.cancelable) {\n e.preventDefault();\n }\n }\n onDotClick(e, index) {\n let page = this._page;\n if (this.autoplayInterval) {\n this.stopAutoplay();\n this.allowAutoplay = false;\n }\n if (index > page) {\n this.navForward(e, index);\n }\n else if (index < page) {\n this.navBackward(e, index);\n }\n }\n step(dir, page) {\n let totalShiftedItems = this.totalShiftedItems;\n const isCircular = this.isCircular();\n if (page != null) {\n totalShiftedItems = (this._numScroll * page) * -1;\n if (isCircular) {\n totalShiftedItems -= this._numVisible;\n }\n this.isRemainingItemsAdded = false;\n }\n else {\n totalShiftedItems += (this._numScroll * dir);\n if (this.isRemainingItemsAdded) {\n totalShiftedItems += this.remainingItems - (this._numScroll * dir);\n this.isRemainingItemsAdded = false;\n }\n let originalShiftedItems = isCircular ? (totalShiftedItems + this._numVisible) : totalShiftedItems;\n page = Math.abs(Math.floor((originalShiftedItems / this._numScroll)));\n }\n if (isCircular && this.page === (this.totalDots() - 1) && dir === -1) {\n totalShiftedItems = -1 * (this.value.length + this._numVisible);\n page = 0;\n }\n else if (isCircular && this.page === 0 && dir === 1) {\n totalShiftedItems = 0;\n page = (this.totalDots() - 1);\n }\n else if (page === (this.totalDots() - 1) && this.remainingItems > 0) {\n totalShiftedItems += ((this.remainingItems * -1) - (this._numScroll * dir));\n this.isRemainingItemsAdded = true;\n }\n if (this.itemsContainer) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\n }\n this.totalShiftedItems = totalShiftedItems;\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n }\n startAutoplay() {\n this.interval = setInterval(() => {\n if (this.totalDots() > 0) {\n if (this.page === (this.totalDots() - 1)) {\n this.step(-1, 0);\n }\n else {\n this.step(-1, this.page + 1);\n }\n }\n }, this.autoplayInterval);\n }\n stopAutoplay() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n onTransitionEnd() {\n if (this.itemsContainer) {\n this.itemsContainer.nativeElement.style.transition = '';\n if ((this.page === 0 || this.page === (this.totalDots() - 1)) && this.isCircular()) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n }\n }\n }\n onTouchStart(e) {\n let touchobj = e.changedTouches[0];\n this.startPos = {\n x: touchobj.pageX,\n y: touchobj.pageY\n };\n }\n onTouchMove(e) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n onTouchEnd(e) {\n let touchobj = e.changedTouches[0];\n if (this.isVertical()) {\n this.changePageOnTouch(e, (touchobj.pageY - this.startPos.y));\n }\n else {\n this.changePageOnTouch(e, (touchobj.pageX - this.startPos.x));\n }\n }\n changePageOnTouch(e, diff) {\n if (diff < 0) {\n this.navForward(e);\n }\n else {\n this.navBackward(e);\n }\n }\n bindDocumentListeners() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = (e) => {\n this.calculatePosition();\n };\n window.addEventListener('resize', this.documentResizeListener);\n }\n }\n unbindDocumentListeners() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n ngOnDestroy() {\n if (this.responsiveOptions) {\n this.unbindDocumentListeners();\n }\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n }\n};\nCarousel.ɵfac = function Carousel_Factory(t) { return new (t || Carousel)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nCarousel.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: Carousel, selectors: [[\"p-carousel\"]], contentQueries: function Carousel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, Header, 7);\n ɵngcc0.ɵɵcontentQuery(dirIndex, Footer, 7);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerFacet = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerFacet = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function Carousel_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemsContainer = _t.first);\n } }, inputs: { orientation: \"orientation\", verticalViewPortHeight: \"verticalViewPortHeight\", contentClass: \"contentClass\", dotsContainerClass: \"dotsContainerClass\", circular: \"circular\", autoplayInterval: \"autoplayInterval\", page: \"page\", numVisible: \"numVisible\", numScroll: \"numScroll\", value: \"value\", responsiveOptions: \"responsiveOptions\", style: \"style\", styleClass: \"styleClass\" }, outputs: { onPage: \"onPage\" }, ngContentSelectors: _c12, decls: 17, vars: 34, consts: [[3, \"ngClass\", \"ngStyle\"], [\"class\", \"ui-carousel-header\", 4, \"ngIf\"], [1, \"ui-carousel-container\"], [3, \"ngClass\", \"disabled\", \"click\"], [3, \"ngClass\"], [1, \"ui-carousel-items-content\", 3, \"ngStyle\"], [1, \"ui-carousel-items-container\", 3, \"transitionend\", \"touchend\", \"touchstart\", \"touchmove\"], [\"itemsContainer\", \"\"], [3, \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"ui-carousel-footer\", 4, \"ngIf\"], [1, \"ui-carousel-header\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"ui-button\", \"ui-widget\", \"ui-state-default\", \"ui-corner-all\", 3, \"click\"], [1, \"ui-carousel-footer\"]], template: function Carousel_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c6);\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, Carousel_div_1_Template, 2, 0, \"div\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\")(3, \"div\", 2)(4, \"button\", 3);\n ɵngcc0.ɵɵlistener(\"click\", function Carousel_Template_button_click_4_listener($event) { return ctx.navBackward($event); });\n ɵngcc0.ɵɵelement(5, \"span\", 4);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 5)(7, \"div\", 6, 7);\n ɵngcc0.ɵɵlistener(\"transitionend\", function Carousel_Template_div_transitionend_7_listener() { return ctx.onTransitionEnd(); })(\"touchend\", function Carousel_Template_div_touchend_7_listener($event) { return ctx.onTouchEnd($event); })(\"touchstart\", function Carousel_Template_div_touchstart_7_listener($event) { return ctx.onTouchStart($event); })(\"touchmove\", function Carousel_Template_div_touchmove_7_listener($event) { return ctx.onTouchMove($event); });\n ɵngcc0.ɵɵtemplate(9, Carousel_div_9_Template, 2, 9, \"div\", 8);\n ɵngcc0.ɵɵtemplate(10, Carousel_div_10_Template, 2, 9, \"div\", 8);\n ɵngcc0.ɵɵtemplate(11, Carousel_div_11_Template, 2, 9, \"div\", 8);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(12, \"button\", 3);\n ɵngcc0.ɵɵlistener(\"click\", function Carousel_Template_button_click_12_listener($event) { return ctx.navForward($event); });\n ɵngcc0.ɵɵelement(13, \"span\", 4);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(14, \"ul\");\n ɵngcc0.ɵɵtemplate(15, Carousel_li_15_Template, 3, 7, \"li\", 8);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(16, Carousel_div_16_Template, 2, 0, \"div\", 9);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.styleClass);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.containerClass())(\"ngStyle\", ctx.style);\n ɵngcc0.ɵɵattribute(\"id\", ctx.id);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.headerFacet);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMap(ctx.contentClasses());\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(22, _c7, ctx.isBackwardNavDisabled()))(\"disabled\", ctx.isBackwardNavDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(24, _c8, !ctx.isVertical(), ctx.isVertical()));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ɵngcc0.ɵɵpureFunction1(27, _c9, ctx.isVertical() ? ctx.verticalViewPortHeight : \"auto\"));\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.clonedItemsForStarting);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.value);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.clonedItemsForFinishing);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(29, _c10, ctx.isForwardNavDisabled()))(\"disabled\", ctx.isForwardNavDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(31, _c11, !ctx.isVertical(), ctx.isVertical()));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMap(ctx.dotsContentClasses());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.totalDotsArray());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.footerFacet);\n } }, directives: [ɵngcc1.NgClass, ɵngcc1.NgStyle, ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet], encapsulation: 2 });\nCarousel.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone }\n];\n__decorate([\n Input()\n], Carousel.prototype, \"page\", null);\n__decorate([\n Input()\n], Carousel.prototype, \"numVisible\", null);\n__decorate([\n Input()\n], Carousel.prototype, \"numScroll\", null);\n__decorate([\n Input()\n], Carousel.prototype, \"responsiveOptions\", void 0);\n__decorate([\n Input()\n], Carousel.prototype, \"orientation\", void 0);\n__decorate([\n Input()\n], Carousel.prototype, \"verticalViewPortHeight\", void 0);\n__decorate([\n Input()\n], Carousel.prototype, \"contentClass\", void 0);\n__decorate([\n Input()\n], Carousel.prototype, \"dotsContainerClass\", void 0);\n__decorate([\n Input()\n], Carousel.prototype, \"value\", null);\n__decorate([\n Input()\n], Carousel.prototype, \"circular\", void 0);\n__decorate([\n Input()\n], Carousel.prototype, \"autoplayInterval\", void 0);\n__decorate([\n Input()\n], Carousel.prototype, \"style\", void 0);\n__decorate([\n Input()\n], Carousel.prototype, \"styleClass\", void 0);\n__decorate([\n Output()\n], Carousel.prototype, \"onPage\", void 0);\n__decorate([\n ViewChild('itemsContainer', { static: true })\n], Carousel.prototype, \"itemsContainer\", void 0);\n__decorate([\n ContentChild(Header, { static: true })\n], Carousel.prototype, \"headerFacet\", void 0);\n__decorate([\n ContentChild(Footer, { static: true })\n], Carousel.prototype, \"footerFacet\", void 0);\n__decorate([\n ContentChildren(PrimeTemplate)\n], Carousel.prototype, \"templates\", void 0);\nlet CarouselModule = class CarouselModule {\n};\nCarouselModule.ɵfac = function CarouselModule_Factory(t) { return new (t || CarouselModule)(); };\nCarouselModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CarouselModule });\nCarouselModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, SharedModule], CommonModule, SharedModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(Carousel, [{\n type: Component,\n args: [{\n selector: 'p-carousel',\n template: `\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
  • \n\t\t\t\t\t\t\n\t\t\t\t\t
  • \n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t
\n\t`\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { orientation: [{\n type: Input\n }], verticalViewPortHeight: [{\n type: Input\n }], contentClass: [{\n type: Input\n }], dotsContainerClass: [{\n type: Input\n }], circular: [{\n type: Input\n }], autoplayInterval: [{\n type: Input\n }], onPage: [{\n type: Output\n }], page: [{\n type: Input\n }], numVisible: [{\n type: Input\n }], numScroll: [{\n type: Input\n }], value: [{\n type: Input\n }], responsiveOptions: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], itemsContainer: [{\n type: ViewChild,\n args: ['itemsContainer', { static: true }]\n }], headerFacet: [{\n type: ContentChild,\n args: [Header, { static: true }]\n }], footerFacet: [{\n type: ContentChild,\n args: [Footer, { static: true }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CarouselModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, SharedModule],\n exports: [CommonModule, Carousel, SharedModule],\n declarations: [Carousel]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CarouselModule, { declarations: function () { return [Carousel]; }, imports: function () { return [CommonModule, SharedModule]; }, exports: function () { return [CommonModule, Carousel, SharedModule]; } }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Carousel, CarouselModule };\n\n"],"names":[],"sourceRoot":"webpack:///"}