{"version":3,"file":"4601.bf9220ca8b213179.js","mappings":"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","names":["CardsType","customers","resellers","subscriptions","seats","sites","departments","products","office365","office365Reports","azurePortal","users","PortletTargetActions","revenueVsCostByCategory","topFiveProductsBySeatsPurchased","topFiveProductsByRevenue","countsBySKU","purchaseOfSeats","valuedCustomers","revenueVsCost","seatsCount","pastDues","accountsReceivable","invoiceAmount","profitability","resellerCount","customerCount","subscriptionsCount","sitesCount","departmentsCount","customerSeatsCount","productsCount","usersCount","office365UsageReports","purchaseOfSeatsByCustomer","countsBySkuPurchasedByCustomer","topFiveProductsByRenewalDate","termsAndConditionsAcceptedList","DurationUnits","all","threeMonths","sixMonths","tweleveMonths","lastBillingPeriod","threeBillingPeriod","sixBillingPeriod","twelveBillingPeriod","Partners","microsoft","partner","microsoftNonCSP","i0","_r2","ctx_r2","partnerAgreement","ezidebitAgreement","microsoftCloudAgreement","cancel","partnerAgreementClickedFlag","ezidebitAgreementClickedFlag","microsoftCloudAgreementClickedFlag","TermsAndConditions","ContentWhenCustomHyperlink","_c1","CompanyName","CustomHyperlinkText","_r5","PartnerAgreementClicked","TermsAndConditionsComponent","_clientSettingsService","TermsAndConditionsService","commonService","_translateService","_ngbModalService","toasterService","cdRef","el","renderer","sanitized","router","notifierService","pageInfo","billingProfile","pathToEzidebitAgreement","pathToPartnerAgreement","isUserAcceptedTermsAndConditions","isFormSubmitted","pathToCustomerConsent","modalInstance","modalsomething","complicateHtml1","complicatedHtml2","partnerEventBound","eziDebitEventBound","constructor","this","updateTitle","instant","ngOnInit","getData","subscribe","Data","BillingProvider","PathToEzidebitAgreement","IsAcceptedTermsAndConditions","GetTermsAndConditions","SaveTermsAndConditions","form","valid","SubmitTermsAndConditions","CheckAllAgreementsClicked","_","acceptTermsAndConditions","ID","IsAccepted","PathToPartnerAgreement","EntityName","entityName","RecordId","recordId","success","title","then","result","isConfirmed","navigate","open","leading","EzidebitAgreementClicked","window","MicrosoftCloudAgreementClicked","dismissAll","getTermsAndConditions","IsCustomTermsandConditionsHyperlinkActive","detectChanges","CustomerConsentURL","error","ExceptionMessage","Message","SafeHtmlOne","translateString","obj","bypassSecurityTrustHtml","i1","i2","i3","i4","i5","i6","i7","i8","i9","i10","selectors","viewQuery","rf","ctx","TermsAndConditionsComponent_ng_template_0_Template","_r1","frmAcceptTermsAndConditions_r4","TermsAndConditionsComponent_div_11_Template","TermsAndConditionsComponent_div_12_Template","TermsAndConditionsComponent_div_13_Template","TermsAndConditionsComponent_div_16_Template","$event","TermsAndConditionsComponent_span_24_Template","TermsAndConditionsComponent_div_25_Template","IsAccepted_r6","invalid","routes","path","redirectTo","pathMatch","canActivate","AuthGuard","loadChildren","Promise","__webpack_require__","e","bind","m","DashboardModule","loadComponent","NotificationsComponent","UserManagementComponent","AddUserComponent","UserManagementTagComponent","AddUserManagementTagComponent","ProfileModule","InvoicesComponent","InvoiceComponent","children","InvoiceLineItemsComponent","InvoiceCommentsComponent","AddAdjustmentComponent","canDeactivate","TermsAndConditionsDeactivateGuard","termsAndConditionsService","component","currentRoute","currentState","nextState","factory","ɵfac","providedIn","HomeRoutingModule","RouterModule","forChild","HomeModule","CommonModule","StatCardComponent","TranslateModule","StatWithGraphCardComponent","ProfabilityCardComponent","PurchaseOfSeatsCardComponent","NgbDatepickerModule","NgbModule","FormsModule","ctx_r0","billingPeriodsData","BillingStartDate","BillingEndDate","BillGenerationDate","ProfabilityCardComponent_Conditional_11_Conditional_50_Template","ProfabilityCardComponent_Conditional_11_Conditional_51_Template","ProfabilityCardComponent_Conditional_11_Conditional_70_Template","ProfabilityCardComponent_Conditional_11_Conditional_71_Template","_c0","TotalProviderBilledAmount","CurrencySymbol","CurrencyDecimalPlaces","CurrencyThousandSeperator","CurrencyDecimalSeperator","TotalC3BillAmount","TotalNetProfit","ProfitPercentage","dashboardWidgetsService","_appService","cdref","data","startBillingDate","endBillingDate","billGenerationDate","isLoading","subscription","globalDateFormat","routerLink","isProfitabilityDetailsLoading","$rootScope","dateFormat","getBillingPeriods","pipe","switchMap","billingPeriods","billingPeriodId","length","BillingPeriodId","moment","format","toUpperCase","forkJoin","getProfability","profabilityData","TotalCostOnPartner","TotalBilledAmount","TotalProfitAmount","TotalProfitPercentage","formatNumber","value","toLocaleString","undefined","minimumFractionDigits","maximumFractionDigits","navigateToRevenue","standalone","features","decls","vars","consts","template","ProfabilityCardComponent_Conditional_8_Template","ProfabilityCardComponent_Conditional_10_Template","ProfabilityCardComponent_Conditional_11_Template","LoaderComponent","TranslationModule","MegaNumberPipe","C3DatePipe","styles","duration_r3","$implicit","ctx_r3","selectedDuration","PurchaseOfSeatsCardComponent_Conditional_8_For_6_Template","dropdown_r5","generatePNG","generateSVG","selectedTimePeriod","durationUnits","PurchaseOfSeatsCardComponent_Conditional_11_Conditional_16_Template","PurchaseOfSeatsCardComponent_Conditional_11_Conditional_17_Template","chartOptions","series","chart","xaxis","tooltip","yaxis","stroke","markers","dataLabels","grid","PreviousMonthSeats","CurrentMonthSeats","netPercentage","dashboardService","cdr","loaderService","translateService","recordID","purchaseOfseatsData","downloadIconStatus","chartUtilities","ChartUtilities","startLoading","getPurchaseofSeats","duration","getPurchaseOfSeats","response","toFixed","purchasedMonths","map","item","PurchasedMonth","totalQuantities","TotalQuantity","stopLoading","drawGraph","name","fill","colors","type","opacity","height","zoom","enabled","toolbar","show","curve","strokeDashArray","categories","axisBorder","lines","dashArray","labels","style","fontSize","cssClass","text","y","formatter","val","size","dropdown","close","isloadingstart","setTimeout","element","document","getElementById","toggleButton","ngOnDestroy","unsubscribe","PurchaseOfSeatsCardComponent_Conditional_1_Template","PurchaseOfSeatsCardComponent_Conditional_8_Template","PurchaseOfSeatsCardComponent_Conditional_10_Template","PurchaseOfSeatsCardComponent_Conditional_11_Template","PurchaseOfSeatsCardComponent_Conditional_12_Template","CommonNoRecordComponent","NgApexchartsModule","NgClass","NgbDropdownModule","SharedModule","customersCount","CustomerCount","resellersCount","ResellerCount","DeletedCustomerCountInCurrentMonth","DeletedResellerCountInCurrentMonth","NewCustomerCountInCurrentMonth","NewResellerCountInCurrentMonth","widgetKey","bgColor","customerCardBgColor","resellerCardBgColor","cardType","customerCardLink","resellersCardLink","portletTargetAction","cardsTypes","getCustomersCount","getResellersCount","openCustomersList","inputs","StatCardComponent_Conditional_4_Template","StatCardComponent_Conditional_5_Template","StatCardComponent_Conditional_7_Template","StatCardComponent_Conditional_8_Template","StatCardComponent_Conditional_10_Template","StatCardComponent_Conditional_11_Template","StatCardComponent_Conditional_17_Template","StatCardComponent_Conditional_18_Template","StatCardComponent_Conditional_23_Template","StatCardComponent_Conditional_24_Template","SeatsCount","TotalPurchasedProductCount","seatsCardBgColor","subscriptionsCardBgColor","productsCountOnDate","seatsCountOnDate","getProductsCountOnDate","getSubscriptionsCount","productCounts","ProductsCount","onDate","OnDate","getSeatsCountOnDate","getSeatsCount","initialValue","Math","min","count","index","x","sparkline","barColor","barSpacing","barWidth","fillColor","plotOptions","bar","horizontal","columnWidth","endingShape","ranges","from","to","Number","MAX_SAFE_INTEGER","color","distributed","shared","intersect","date","Date","month","getDate","getFullYear","StatWithGraphCardComponent_Conditional_4_Template","StatWithGraphCardComponent_Conditional_5_Template","StatWithGraphCardComponent_Conditional_7_Template","StatWithGraphCardComponent_Conditional_8_Template","StatWithGraphCardComponent_Conditional_10_Template","StatWithGraphCardComponent_Conditional_11_Template","fileName","html2canvas","canvas","dataURL","toDataURL","downloadImage","svgElement","querySelector","svgString","XMLSerializer","serializeToString","svgBlob","Blob","URL","createObjectURL","filename","a","createElement","href","download","body","appendChild","click","removeChild","generateCSV","csvData","convertToCSV","blob","url","Object","keys","join","values"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/modules/home/dashboard-widgets/models/dashboard.model.ts","./src/app/modules/home/dashboard-widgets/models/widgets.model.ts","./src/app/modules/home/terms-and-conditions/terms-and-conditions.component.html","./src/app/modules/home/terms-and-conditions/terms-and-conditions.component.ts","./src/app/modules/home/home-routing.module.ts","./src/app/modules/auth/services/terms-and-conditions-deactivate.guard.ts","./src/app/modules/home/home.module.ts","./src/app/modules/standalones/cards/profability-card/profability-card.component.html","./src/app/modules/standalones/cards/profability-card/profability-card.component.ts","./src/app/modules/standalones/cards/purchase-of-seats-card/purchase-of-seats-card.component.html","./src/app/modules/standalones/cards/purchase-of-seats-card/purchase-of-seats-card.component.ts","./src/app/modules/standalones/cards/stat-card/stat-card.component.html","./src/app/modules/standalones/cards/stat-card/stat-card.component.ts","./src/app/modules/standalones/cards/stat-with-graph-card/stat-with-graph-card.component.html","./src/app/modules/standalones/cards/stat-with-graph-card/stat-with-graph-card.component.ts","./src/app/modules/standalones/loader/loader.component.ts","./src/app/modules/standalones/loader/loader.component.html","./src/app/shared/utilities/chart-utilities.ts"],"sourcesContent":["import { SafeHtml } from \"@angular/platform-browser\";\r\n\r\nexport enum CardsType {\r\n customers = 'Customers',\r\n resellers = 'Resellers',\r\n subscriptions = 'Subscriptions',\r\n seats = 'Seats',\r\n sites = 'Sites',\r\n departments = 'Departments',\r\n products = 'Products',\r\n office365 = 'Office 365',\r\n office365Reports = 'Office 365 Reports',\r\n azurePortal = 'Azure Portal',\r\n users = 'Users'\r\n}\r\n\r\n\r\nexport enum PortletTargetActions {\r\n revenueVsCostByCategory = \"CARD_REVENUE_VERSUS_COST_BY_CATEGORY\",\r\n topFiveProductsBySeatsPurchased = \"CARD_TOP_FIVE_PRODUCTS_BY_SEATS_PURCHASED\",\r\n topFiveProductsByRevenue = \"CARD_TOP_FIVE_PRODUCTS_BY_REVENUE\",\r\n countsBySKU = \"CARD_COUNTS_BY_SKU\",\r\n purchaseOfSeats = \"CARD_PURCHASE_OF_SEATS\",\r\n valuedCustomers = \"CARD_VALUED_CUSTOMERS\",\r\n revenueVsCost = \"CARD_REVENUE_VS_COST\",\r\n seatsCount = \"CARD_SEATS_COUNT\",\r\n pastDues = \"CARD_PAST_DUES\",\r\n accountsReceivable = \"CARD_ACCOUNTS_RECEIVABLE\",\r\n invoiceAmount = \"CARD_INVOICE_AMOUNT\",\r\n profitability = \"CARD_PROFITABILITY\",\r\n resellerCount = \"CARD_RESELLER_COUNT\",\r\n customerCount = \"CARD_CUSTOMER_COUNT\",\r\n subscriptionsCount = \"CARD_SUBSCRIPTIONS_COUNT\",\r\n // New values:\r\n sitesCount = \"CARD_SITES_COUNT\",\r\n departmentsCount = \"CARD_DEPARTMENTS_COUNT\",\r\n customerSeatsCount = \"CARD_CUSTOMER_SEATS_COUNT\",\r\n productsCount = \"CARD_PRODUCTS_COUNT\",\r\n usersCount = \"CARD_USERS_COUNT\",\r\n office365 = \"CARD_OFFICE_365\",\r\n office365UsageReports = \"CARD_OFFICE365_USAGE_REPORTS\",\r\n azurePortal = \"CARD_AZURE_PORTAL\",\r\n purchaseOfSeatsByCustomer = \"CARD_PURCHASE_OF_SEATS_BY_CUSTOMER\",\r\n countsBySkuPurchasedByCustomer = \"CARD_COUNTS_BY_SKU_PURCHASED_BY_CUSTOMER\",\r\n topFiveProductsByRenewalDate = \"CARD_TOP_FIVE_PRODUCTS_BY_RENEWAL_DATE\",\r\n termsAndConditionsAcceptedList = \"CARD_TERMS_AND_CONDITIONS_ACCEPTED_LIST\"\r\n}\r\n\r\n\r\nexport interface BillingPeriodData {\r\n BillGenerationDate: string;\r\n BillingEndDate: string;\r\n BillingId: string;\r\n BillingPeriodId: number;\r\n BillingStartDate: string;\r\n}\r\n\r\nexport interface CustomerCardData {\r\n OperationType: null | any;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: null | any;\r\n ErrorDetail: null | any;\r\n Data: {\r\n CustomerCount: number;\r\n NewCustomerCountInCurrentMonth: number;\r\n DeletedCustomerCountInCurrentMonth: number;\r\n }\r\n}\r\n\r\nexport interface ResellerCardData {\r\n OperationType: null | any;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: null | any;\r\n ErrorDetail: null | any;\r\n Data: {\r\n ResellerCount: number;\r\n NewResellerCountInCurrentMonth: number;\r\n DeletedResellerCountInCurrentMonth: number;\r\n }\r\n}\r\n\r\nexport interface SubscriptionCardData {\r\n OperationType: null | any;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: null | any;\r\n ErrorDetail: null | any;\r\n Data: {\r\n TotalPurchasedProductCount: number;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport interface seatsCardData {\r\n OperationType: null | any;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: null | any;\r\n ErrorDetail: null | any;\r\n Data: {\r\n SeatsCount: number;\r\n }\r\n}\r\n\r\nexport interface ProfabilityData {\r\n TotalRows: number;\r\n RowNum: null | any;\r\n ID: null | any;\r\n Name: string;\r\n C3Id: string;\r\n CostOnPartner: number;\r\n BilledAmount: number;\r\n ProfitAmount: number;\r\n ProfitPercentage?: null | any;\r\n TotalCostOnPartner?: number;\r\n TotalBilledAmount?: number;\r\n TotalProfitAmount?: number | any;\r\n TotalProfitPercentage?: null | any;\r\n CurrencyCode: string;\r\n CurrencySymbol: string;\r\n CurrencyDecimalPlaces: number;\r\n CurrencyDecimalSeperator: string;\r\n CurrencyThousandSeperator: string;\r\n Entity: string;\r\n InternalBillingID: string;\r\n InvoiceNumber: null | any;\r\n SaleType: string;\r\n Category: string;\r\n Provider: string;\r\n Level: number;\r\n IsGroupRow: boolean;\r\n GroupId: string;\r\n ParentGroupId: number;\r\n isShowInvoice: boolean;\r\n IsLineItemLoaded: boolean;\r\n LineItemCount: number;\r\n}\r\n\r\nexport interface ProfabilityCardData {\r\n OperationType: null | any;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: null | any;\r\n ErrorDetail: null | any;\r\n Data: ProfabilityData[];\r\n}\r\n\r\n\r\n\r\ninterface ChildMenu {\r\n Id: number;\r\n Menu: string;\r\n Heading: boolean;\r\n Text: string;\r\n Sref: string;\r\n Icon: string;\r\n IsSideMenu: boolean;\r\n OrderSequence: number;\r\n ParentMenu: number | null;\r\n svg:SafeHtml;\r\n}\r\n\r\ninterface ParentMenu {\r\n Id: number;\r\n Menu: string;\r\n Heading: boolean;\r\n Text: string;\r\n Sref: string;\r\n Icon: string;\r\n IsSideMenu: boolean;\r\n OrderSequence: number;\r\n ParentMenu: null;\r\n svg:SafeHtml;\r\n}\r\n\r\nexport interface SideMenuData {\r\n parent: ParentMenu;\r\n children: ChildMenu[];\r\n}\r\n\r\n\r\ninterface BillingData {\r\n BillingMonth: string;\r\n BillingYear: number;\r\n CostOnPartner: number;\r\n BilledAmount: number;\r\n CurrencySymbol: string;\r\n CurrencyDecimalPlaces: string;\r\n CurrencyDecimalSeperator: string;\r\n CurrencyThousandSeperator: string;\r\n CurrencyCode: string;\r\n}\r\n\r\nexport interface RevenueVsCostData {\r\n OperationType: string | null;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: string | null;\r\n ErrorDetail: string | null;\r\n Data: BillingData[];\r\n}\r\n\r\n\r\nexport interface TopSkusDataResponse {\r\n OperationType: null,\r\n Status: string,\r\n RequestCorrelationID: string,\r\n ErrorMessage: null,\r\n ErrorDetail: null,\r\n Data: SkusData[]\r\n}\r\n\r\ninterface SkusData {\r\n ProductName: string,\r\n Seats: number\r\n}\r\n\r\n\r\nexport interface SeatsPurchasedTopProductsResponse {\r\n OperationType: null,\r\n Status: string,\r\n RequestCorrelationID: string,\r\n ErrorMessage: null,\r\n ErrorDetail: null,\r\n Data: SeatsPurchasedTopProductData[]\r\n}\r\n\r\nexport interface SeatsPurchasedTopProductData {\r\n ProductName: string,\r\n TotalQuantity: number\r\n}\r\n\r\n\r\nexport interface RevenueTopProductsResponse {\r\n OperationType: string | null;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: string | null;\r\n ErrorDetail: string | null;\r\n Data: RevenueTopProductData[];\r\n}\r\n\r\nexport interface RevenueTopProductData {\r\n ProductName: string;\r\n Revenue: number;\r\n CurrencySymbol: string;\r\n CurrencyDecimalPlaces: any;\r\n CurrencyDecimalSeperator: string;\r\n CurrencyThousandSeperator: string;\r\n CurrencyCode: string;\r\n}\r\n\r\n\r\nexport interface TopCustomresResponseData {\r\n OperationType: string | null;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: string | null;\r\n ErrorDetail: string | null;\r\n Data: CustomerData[];\r\n}\r\n\r\nexport interface CustomerData {\r\n CustomerName: string;\r\n BilledAmount: number;\r\n CurrencySymbol: string;\r\n CurrencyDecimalPlaces: any;\r\n CurrencyDecimalSeperator: string;\r\n CurrencyThousandSeperator: string;\r\n CurrencyCode: string;\r\n StartDateForLabel: string;\r\n EndDateForLabel: string;\r\n}\r\nexport interface CustomerPendingPaymentData {\r\n CustomerId: number;\r\n CustomerName: string;\r\n BillingEmail: string;\r\n PendingAmount: number;\r\n IsInvoiceBased: boolean | null;\r\n PaymentMethod: string;\r\n CurrencyCode: string;\r\n CurrencySymbol: string;\r\n CurrencyDecimalPlaces: any;\r\n CurrencyDecimalSeperator: string;\r\n CurrencyThousandSeperator: string;\r\n}\r\n\r\nexport interface PendingPaymentDataResponse {\r\n OperationType: any;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: any;\r\n ErrorDetail: any;\r\n Data: CustomerPendingPaymentData[];\r\n}\r\n\r\nexport interface CustomersAndRessellersResponse {\r\n OperationType: any;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: any;\r\n ErrorDetail: any;\r\n Data: CustomerAndResellerData[];\r\n}\r\n\r\nexport interface CustomerAndResellerData {\r\n\r\n C3Id: string;\r\n EntityName: string;\r\n Name: string;\r\n value: string,\r\n label: string\r\n}\r\n\r\n\r\nexport interface CategoryForRevenueCostResponse {\r\n OperationType: any;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: any;\r\n ErrorDetail: any;\r\n Data: CategoryRevenueCostData[];\r\n}\r\n\r\nexport interface CategoryRevenueCostData {\r\n CategoryName: string;\r\n Description: string;\r\n}\r\n\r\n\r\n\r\nexport interface CategoryRevenueVsCostResponse {\r\n OperationType: string | null;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: string | null;\r\n ErrorDetail: string | null;\r\n Data: CategoryRevenueVsCostData[];\r\n}\r\n\r\nexport interface CategoryRevenueVsCostData {\r\n BilledAmount: number;\r\n BillingMonth: string;\r\n BillingYear: number;\r\n Category: null;\r\n CostOnPartner: number;\r\n CurrencyCode: string;\r\n CurrencyDecimalPlaces: string;\r\n CurrencyDecimalSeperator: string;\r\n CurrencySymbol: string;\r\n CurrencyThousandSeperator: string;\r\n ProfitAmount: number;\r\n ProfitPercentage: number;\r\n}\r\n\r\n\r\nexport interface PaymentData {\r\n PaymentType: string;\r\n TotalAmount: number;\r\n CurrencyCode: string;\r\n CurrencySymbol: string;\r\n CurrencyDecimalPlaces: string;\r\n CurrencyDecimalSeperator: string;\r\n CurrencyThousandSeperator: string;\r\n}\r\n\r\nexport interface InvoicePaymentsResponse {\r\n OperationType: null | string;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: null | string;\r\n ErrorDetail: null | string;\r\n Data: PaymentData[];\r\n}\r\n\r\n\r\nexport interface ProductsCountOnDateDataItem {\r\n ProductsCount: number;\r\n OnDate: string;\r\n}\r\n\r\nexport interface ProductsCountOnDateResponse {\r\n OperationType: null | string;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: string | null;\r\n ErrorDetail: string | null;\r\n Data: ProductsCountOnDateDataItem[];\r\n}\r\n\r\nexport interface SeatsCountOnDateResponse {\r\n OperationType: null;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: null;\r\n ErrorDetail: null;\r\n Data: SeatsCountOnDateDataItem[];\r\n}\r\n\r\ninterface SeatsCountOnDateDataItem {\r\n SeatsCount: number;\r\n OnDate: string;\r\n}\r\n\r\n\r\n\r\nexport interface Section {\r\n ID: number;\r\n Name: string;\r\n AllowDragDrop: boolean;\r\n PortletColumns: PortletColumn[];\r\n}\r\n\r\nexport interface PortletColumn {\r\n ID: number;\r\n ColumnSizeClass: string;\r\n PortletSectionID: number;\r\n DisplayOrder: number;\r\n Show: boolean;\r\n}\r\n\r\ninterface Portlet {\r\n PortletID: number;\r\n ActionableElementsID: number;\r\n ActionableElementName: string;\r\n TargetAction: string;\r\n TargetController: string;\r\n ColumnPosition: number;\r\n RowPosition: number;\r\n Name: string;\r\n Description: string;\r\n IsShownOnSetting: boolean;\r\n PortletSectionID: number;\r\n}\r\n\r\nexport interface DashboardCardsData {\r\n Sections: Section[];\r\n Portlets: Portlet[];\r\n AlertText: null | string;\r\n}\r\n\r\nexport interface UserSettingData {\r\n CompanyUrl: string,\r\n ContactCompanyName: string,\r\n PoweredByCompanyURL: string,\r\n PoweredByCompanyName: string,\r\n WelcomeLogoPath: string\r\n WelcomePageButtonStyle:string\r\n\r\n}\r\n\r\nexport interface GetUserTermsAndConditionLogsByCustomerC3IdAndEmail {\r\n RowNum?: number;\r\n EmailAddress: string;\r\n CreateDate?: Date;\r\n UserIPAddress: string;\r\n AgreementURL: string;\r\n AgreementType: string;\r\n Time: string;\r\n ShowTermsAndConditionsAcceptanceLog: boolean;\r\n}\r\n\r\nexport interface GetCustomerInvoiceForDashboardResponse {\r\n OperationType: null | string;\r\n Status: string;\r\n RequestCorrelationID: string;\r\n ErrorMessage: null | string;\r\n ErrorDetail: null | string;\r\n Data: GetCustomerInvoiceForDashboard[];\r\n}\r\nexport interface GetCustomerInvoiceForDashboard{\r\n InvoiceGeneratedDate?: Date;\r\n BillingStartDate?: Date;\r\n BillingEndDate?: Date;\r\n InvoiceAmount?: number;\r\n CurrencySymbol: string;\r\n CurrencyDecimalPlaces: string;\r\n CurrencyThousandSeparator: string;\r\n CurrencyDecimalSeparator: string;\r\n}\r\n\r\nexport interface RenewalDateTopFiveProducts {\r\n ProductName: string;\r\n ProviderEffectiveEndDate? : Date\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","export enum DurationUnits {\r\n all='All',\r\n threeMonths='3 Months',\r\n sixMonths='6 Months',\r\n tweleveMonths='12 Months',\r\n lastBillingPeriod='Last Billing Period',\r\n threeBillingPeriod='3 Billing Periods',\r\n sixBillingPeriod='6 Billing Periods',\r\n twelveBillingPeriod='12 Billing Periods'\r\n}\r\n\r\nexport enum Partners {\r\n microsoft='Microsoft',\r\n partner= 'Partner',\r\n microsoftNonCSP='MicrosoftNonCSP',\r\n}","\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n\r\n
 \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
  .
\r\n
\r\n
\r\n
  \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n

\r\n      \r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnInit, QueryList, Renderer2, TemplateRef, ViewChild, viewChild, ViewChildren } from '@angular/core';\r\nimport { ClientSettingsService } from 'src/app/services/client-settings.service';\r\nimport { TermsAndConditionsService } from 'src/app/services/terms-and-conditions.service';\r\nimport _ from 'lodash'\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { error } from 'console';\r\nimport { CloudHubConstants } from 'src/app/shared/models/constants/cloudHubConstants';\r\nimport { ToastService } from 'src/app/services/toast.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Router } from '@angular/router';\r\nimport { NotifierService } from 'src/app/services/notifier.service';\r\nimport { PageInfoService } from 'src/app/_c3-lib/layout';\r\n@Component({\r\n selector: 'app-terms-and-conditions',\r\n templateUrl: './terms-and-conditions.component.html',\r\n styleUrl: './terms-and-conditions.component.scss'\r\n})\r\nexport class TermsAndConditionsComponent implements OnInit{\r\n TermsAndConditions:any = {};\r\n billingProfile:any;\r\n pathToEzidebitAgreement:any;\r\n pathToPartnerAgreement = \"\";\r\n partnerAgreementClickedFlag = false;\r\n ezidebitAgreementClickedFlag = false;\r\n microsoftCloudAgreementClickedFlag = false;\r\n isUserAcceptedTermsAndConditions:any;\r\n isFormSubmitted:boolean = false;\r\n pathToCustomerConsent:any;\r\n modalInstance:any;\r\n // @viewChild(\"modalsomething\") modalsomething:TemplateRef;\r\n @ViewChild('modalsomething') modalsomething: TemplateRef;\r\n complicateHtml1:any;\r\n complicatedHtml2:any;\r\n partnerEventBound:boolean = false;\r\n eziDebitEventBound:boolean = false;\r\n // @ViewChildren(\"partner1\") partner1!: QueryList;\r\n // @ViewChildren(\"partner2\") partner2!: QueryList;\r\n\r\n\r\n // vm.SaveTermsAndConditions = SaveTermsAndConditions;\r\n // vm.CheckAllAgreementsClicked = CheckAllAgreementsClicked;\r\n // vm.GetTermsAndConditions = GetTermsAndConditions;\r\n // vm.EzidebitAgreementClicked = EzidebitAgreementClicked;\r\n // vm.PartnerAgreementClicked = PartnerAgreementClicked;\r\n // vm.MicrosoftCloudAgreementClicked = MicrosoftCloudAgreementClicked;\r\n\r\n constructor(private _clientSettingsService: ClientSettingsService,\r\n private TermsAndConditionsService:TermsAndConditionsService,\r\n private commonService:CommonService,\r\n private _translateService: TranslateService,\r\n private _ngbModalService:NgbModal,\r\n private toasterService:ToastService,\r\n private cdRef:ChangeDetectorRef,\r\n private el:ElementRef,\r\n private renderer:Renderer2,\r\n private sanitized: DomSanitizer,\r\n private router:Router,\r\n private notifierService:NotifierService,\r\n private pageInfo:PageInfoService\r\n ){\r\n this.pageInfo.updateTitle(this._translateService.instant(\"TERMS_AND_CONDITIONS\"),true);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n ngOnInit(): void {\r\n \r\n // get the billing provider and agreement path\r\n this._clientSettingsService.getData().subscribe(({Data}:any)=>{\r\n this.billingProfile = Data?.BillingProvider || '';\r\n this.pathToEzidebitAgreement = Data?.PathToEzidebitAgreement || '';\r\n }); \r\n // service data\r\n this.isUserAcceptedTermsAndConditions = this.TermsAndConditionsService.IsAcceptedTermsAndConditions;\r\n\r\n // init call\r\n this.GetTermsAndConditions();\r\n }\r\n\r\n SaveTermsAndConditions(form:any){\r\n this.isFormSubmitted = true;\r\n if(this.isFormSubmitted && form.valid){\r\n this.SubmitTermsAndConditions();\r\n }\r\n }\r\n\r\n CheckAllAgreementsClicked() {\r\n if (this.billingProfile === \"EziDebit\") {\r\n if (this.ezidebitAgreementClickedFlag) {\r\n this.ezidebitAgreementClickedFlag = true;\r\n }\r\n else {\r\n this.ezidebitAgreementClickedFlag = false;\r\n }\r\n }\r\n else {\r\n this.ezidebitAgreementClickedFlag = true;\r\n }\r\n\r\n if (this.isUserAcceptedTermsAndConditions) {\r\n this.ezidebitAgreementClickedFlag = true;\r\n this.partnerAgreementClickedFlag = true;\r\n }\r\n else if (!this.TermsAndConditions.isUserAcceptedTermsAndConditions) {\r\n this.microsoftCloudAgreementClickedFlag = true;\r\n }\r\n\r\n if (this.ezidebitAgreementClickedFlag && this.partnerAgreementClickedFlag && this.microsoftCloudAgreementClickedFlag) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n SubmitTermsAndConditions = _.debounce(()=>{\r\n \r\n\r\n if (this.CheckAllAgreementsClicked()) {\r\n \r\n var reqBody = {\r\n ID: this.TermsAndConditions.ID,\r\n IsAccepted: this.TermsAndConditions.IsAccepted,\r\n PathToEzidebitAgreement: this.TermsAndConditions.PathToEzidebitAgreement,\r\n PathToPartnerAgreement: this.TermsAndConditions.PathToPartnerAgreement,\r\n EntityName: this.commonService.entityName,\r\n RecordId: this.commonService.recordId\r\n };\r\n\r\n this.TermsAndConditionsService.acceptTermsAndConditions(reqBody).subscribe(({Data}:any)=>{\r\n\r\n if(this.TermsAndConditions.IsAccepted){\r\n this.TermsAndConditionsService.IsAcceptedTermsAndConditions = this.TermsAndConditions.IsAccepted;\r\n this.notifierService.success({ title:this._translateService.instant(\"TRANSLATE.TERMS_AND_CONDITIONS_ACCEPT_SUCCESSFULLY\")}).then((result: { isConfirmed: any; isDenied: any })=>{\r\n if(result.isConfirmed){\r\n this.router.navigate(['/home/dashboard']); \r\n }\r\n });\r\n }\r\n \r\n })\r\n }\r\n else{\r\n this.modalInstance = this._ngbModalService.open(this.modalsomething)\r\n }\r\n },500, { leading: true });\r\n\r\n EzidebitAgreementClicked() {\r\n this.ezidebitAgreementClickedFlag = true;\r\n window.open(this.pathToEzidebitAgreement, \"_blank\");\r\n }\r\n\r\n PartnerAgreementClicked() {\r\n this.partnerAgreementClickedFlag = true;\r\n window.open(this.pathToPartnerAgreement, \"_blank\");\r\n }\r\n\r\n MicrosoftCloudAgreementClicked() {\r\n this.microsoftCloudAgreementClickedFlag = true;\r\n }\r\n\r\n ezidebitAgreement() {\r\n this.ezidebitAgreementClickedFlag = true;\r\n if (this.partnerAgreementClickedFlag && this.microsoftCloudAgreementClickedFlag) {\r\n this._ngbModalService.dismissAll();\r\n }\r\n window.open(this.pathToEzidebitAgreement, \"_blank\");\r\n };\r\n\r\n partnerAgreement() {\r\n this.partnerAgreementClickedFlag = true;\r\n if (this.ezidebitAgreementClickedFlag && this.microsoftCloudAgreementClickedFlag) {\r\n this._ngbModalService.dismissAll();\r\n }\r\n window.open(this.pathToPartnerAgreement, \"_blank\");\r\n };\r\n\r\n microsoftCloudAgreement() {\r\n this.microsoftCloudAgreementClickedFlag = true;\r\n if (this.ezidebitAgreementClickedFlag && this.partnerAgreementClickedFlag && this.partnerAgreementClickedFlag) {\r\n this._ngbModalService.dismissAll();\r\n }\r\n window.open(this.pathToCustomerConsent, \"_blank\");\r\n };\r\n\r\n cancel() {\r\n this._ngbModalService.dismissAll();\r\n};\r\n\r\n\r\n GetTermsAndConditions() {\r\n this.TermsAndConditionsService.getTermsAndConditions().subscribe(({Data}:any)=>{\r\n\r\n if (Data !== null || Data !== '' || Data !== \"\") {\r\n this.TermsAndConditions = Data;\r\n if (this.billingProfile !== \"EziDebit\") {\r\n this.TermsAndConditions.PathToEzidebitAgreement = \"\";\r\n }\r\n this.TermsAndConditions.IsCustomTermsandConditionsHyperlinkActive = false;\r\n this.cdRef.detectChanges();\r\n //CloudHubConstants.CUSTOM_PARTNER_TERMS_AND_CONDITIONS_HYPERLINK\r\n if (false) {\r\n this.TermsAndConditions.ContentWhenCustomHyperlink = \"TERMS_AND_CONDITIONS_CONTENT_WHEN_HYPERLINK_IS_CUSTOM\";\r\n this.TermsAndConditions.CustomHyperlinkText = CloudHubConstants.CUSTOM_PARTNER_TERMS_AND_CONDITIONS_HYPERLINK;\r\n this.TermsAndConditions.IsCustomTermsandConditionsHyperlinkActive = true;\r\n }\r\n this.pathToPartnerAgreement = Data.PathToPartnerAgreement;\r\n\r\n if (this.isUserAcceptedTermsAndConditions) {\r\n this.TermsAndConditions.PathToEzidebitAgreement = \"\";\r\n this.TermsAndConditions.PathToPartnerAgreement = \"\";\r\n }\r\n else if (!this.isUserAcceptedTermsAndConditions) {\r\n this.TermsAndConditions.CustomerConsentURL = \"\";\r\n }\r\n }\r\n },({Data}:any)=>{\r\n this.toasterService.error(Data !== null ? (Data.ExceptionMessage !== null ? Data.ExceptionMessage : Data.Message) : this._translateService.instant(\"TRANSLATE.TERMS_AND_CONDITIONS_UNABLE_TO_PROCESS\"));\r\n })\r\n}\r\n\r\n SafeHtmlOne(translateString:any, obj:any){\r\n return this.sanitized.bypassSecurityTrustHtml(this._translateService.instant(translateString, obj))\r\n }\r\n\r\n \r\n \r\n \r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard } from '../auth/services/auth.guard';\r\nimport { UserManagementComponent } from '../standalones/user-management/user-management.component';\r\nimport { TermsAndConditionsComponent } from './terms-and-conditions/terms-and-conditions.component';\r\nimport { TermsAndConditionsDeactivateGuard } from '../auth/services/terms-and-conditions-deactivate.guard';\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: 'dashboard',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'home',\r\n redirectTo: 'dashboard',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'dashboard',\r\n canActivate: [AuthGuard],\r\n loadChildren: () => import('./dashboard/dashboard.module').then((m) => m.DashboardModule),\r\n },\r\n {\r\n path: 'notifications',\r\n canActivate: [AuthGuard],\r\n loadComponent: () => import('../standalones/notifications/notifications.component').then((m) => m.NotificationsComponent),\r\n },\r\n {\r\n path: 'users',\r\n canActivate: [AuthGuard],\r\n loadComponent: () =>\r\n import('../standalones/user-management/user-management.component').then((m) => m.UserManagementComponent),\r\n \r\n },\r\n {\r\n path: 'addUser',\r\n canActivate: [AuthGuard],\r\n loadComponent: () =>\r\n import('../standalones/user-management/add-user/add-user.component').then((m) => m.AddUserComponent),\r\n \r\n },\r\n {\r\n path: 'userTags',\r\n canActivate: [AuthGuard],\r\n loadComponent: () =>\r\n import('../standalones/user-management/user-management-tag/user-management-tag.component').then((m) => m.UserManagementTagComponent),\r\n \r\n },\r\n {\r\n path: 'addusermanagemettag',\r\n canActivate: [AuthGuard],\r\n loadComponent: () =>\r\n import('../standalones/user-management/user-management-tag/add-user-management-tag/add-user-management-tag.component').then((m) => m.AddUserManagementTagComponent),\r\n \r\n },\r\n {\r\n path: 'profile',\r\n canActivate: [AuthGuard],\r\n loadChildren: () => import('./profile/profile.module').then((m) => m.ProfileModule),\r\n },\r\n {\r\n path:'invoices',\r\n canActivate:[AuthGuard],\r\n loadComponent: ()=> import('../standalones/invoices/invoices/invoices.component').then(m=>m.InvoicesComponent)\r\n },\r\n {\r\n path:'invoice',\r\n canActivate:[AuthGuard],\r\n loadComponent: ()=> import('../standalones/invoices/invoice/invoice.component').then(m=>m.InvoiceComponent),\r\n children:[\r\n {\r\n path:'invoicelineitems',\r\n canActivate:[AuthGuard],\r\n loadComponent:()=> import('../standalones/invoices/invoice-line-items/invoice-line-items.component').then(m=>m.InvoiceLineItemsComponent)\r\n },\r\n {\r\n path:'contactlogs',\r\n canActivate:[AuthGuard],\r\n loadComponent:()=> import('../standalones/notifications/notifications.component').then(m=>m.NotificationsComponent),\r\n },\r\n {\r\n path:'comments',\r\n canActivate:[AuthGuard],\r\n loadComponent:()=> import('../standalones/invoices/invoice-comments/invoice-comments.component').then(m=>m.InvoiceCommentsComponent),\r\n }\r\n\r\n ]\r\n },\r\n {\r\n path:'invoice/addadjustment-home',\r\n canActivate:[AuthGuard],\r\n loadComponent:()=> import('../standalones/invoices/add-adjustment/add-adjustment.component').then(m=>m.AddAdjustmentComponent)\r\n },\r\n {\r\n path:\"termsandconditions\",\r\n canActivate:[AuthGuard],\r\n canDeactivate:[TermsAndConditionsDeactivateGuard],\r\n component:TermsAndConditionsComponent\r\n // loadComponent:() => import('./terms-and-conditions/terms-and-conditions.component').then(m=>m.TermsAndConditionsComponent)\r\n }\r\n]\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class HomeRoutingModule { }\r\n","import { ActivatedRouteSnapshot, CanDeactivate, CanDeactivateFn, GuardResult, MaybeAsync, RouterStateSnapshot } from '@angular/router';\r\nimport { TermsAndConditionsComponent } from '../../home/terms-and-conditions/terms-and-conditions.component';\r\nimport { Injectable } from '@angular/core';\r\nimport { TermsAndConditionsService } from 'src/app/services/terms-and-conditions.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TermsAndConditionsDeactivateGuard implements CanDeactivate{\r\n\r\n constructor(private termsAndConditionsService:TermsAndConditionsService){\r\n\r\n\r\n }\r\n\r\n canDeactivate(component:TermsAndConditionsComponent, \r\n currentRoute: ActivatedRouteSnapshot, \r\n currentState: RouterStateSnapshot, \r\n nextState: RouterStateSnapshot): MaybeAsync {\r\n return this.termsAndConditionsService.IsAcceptedTermsAndConditions;\r\n }\r\n\r\n\r\n\r\n\r\n \r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { HomeRoutingModule } from './home-routing.module';\r\nimport { StatCardComponent } from '../standalones/cards/stat-card/stat-card.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { StatWithGraphCardComponent } from '../standalones/cards/stat-with-graph-card/stat-with-graph-card.component';\r\nimport { ProfabilityCardComponent } from '../standalones/cards/profability-card/profability-card.component';\r\nimport { PurchaseOfSeatsCardComponent } from '../standalones/cards/purchase-of-seats-card/purchase-of-seats-card.component';\r\nimport { NgbDatepickerModule, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TermsAndConditionsComponent } from './terms-and-conditions/terms-and-conditions.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TermsAndConditionsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n HomeRoutingModule,\r\n StatCardComponent,\r\n TranslateModule,\r\n StatWithGraphCardComponent,\r\n ProfabilityCardComponent,\r\n PurchaseOfSeatsCardComponent,\r\n NgbDatepickerModule,\r\n NgbModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class HomeModule { }\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n @if(billGenerationDate){\r\n {{billingPeriodsData?.BillingStartDate | c3Date}} - {{billingPeriodsData?.BillingEndDate | c3Date}} ({{billingPeriodsData?.BillGenerationDate | c3Date }})\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n @if (!!isLoading){\r\n \r\n }\r\n @if (!isProfitabilityDetailsLoading){\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{TotalProviderBilledAmount| megaNumber : CurrencySymbol : CurrencyDecimalPlaces : CurrencyThousandSeperator : CurrencyDecimalSeperator}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{TotalC3BillAmount| megaNumber : CurrencySymbol : CurrencyDecimalPlaces : CurrencyThousandSeperator : CurrencyDecimalSeperator}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{TotalNetProfit| megaNumber : CurrencySymbol : CurrencyDecimalPlaces : CurrencyThousandSeperator : CurrencyDecimalSeperator}}\r\n \r\n \r\n @if(TotalNetProfit < 0){\r\n \r\n \r\n \r\n \r\n }@else{\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ProfitPercentage| megaNumber : CurrencySymbol : CurrencyDecimalPlaces : CurrencyThousandSeperator : CurrencyDecimalSeperator}}%\r\n \r\n \r\n @if(ProfitPercentage < 0){\r\n \r\n \r\n \r\n \r\n }@else{\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n }\r\n \r\n \r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { BillingPeriodData, ProfabilityCardData, ProfabilityData } from 'src/app/modules/home/dashboard-widgets/models/dashboard.model';\r\nimport { LoaderComponent } from '../../loader/loader.component';\r\nimport { DatePipe, NgClass, CommonModule } from '@angular/common';\r\nimport { TranslationModule } from 'src/app/modules/i18n';\r\nimport { Subscription, forkJoin, of, switchMap } from 'rxjs';\r\nimport { DashboardService } from 'src/app/modules/home/dashboard-widgets/services/dashboard.service';\r\nimport { MegaNumberPipe } from 'src/app/shared/pipes/meganumber.pipe';\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { Router, RouterModule } from '@angular/router';\r\nimport { AppSettingsService } from 'src/app/services/app-settings.service'; \r\nimport { C3DatePipe } from 'src/app/shared/pipes/dateTimeFilter.pipe';\r\n\r\n@Component({\r\n selector: 'app-profability-card',\r\n standalone: true,\r\n imports: [\r\n LoaderComponent,\r\n NgClass,\r\n TranslationModule,\r\n MegaNumberPipe,\r\n RouterModule,\r\n CommonModule,\r\n DatePipe,\r\n C3DatePipe\r\n ],\r\n templateUrl: './profability-card.component.html',\r\n styleUrl: './profability-card.component.scss'\r\n})\r\nexport class ProfabilityCardComponent implements OnInit {\r\n data: Partial;\r\n billingPeriodsData: BillingPeriodData;\r\n startBillingDate: string;\r\n endBillingDate: string;\r\n billGenerationDate: string | undefined;\r\n isLoading: boolean = false;\r\n subscription: Subscription;\r\n entityName: string | null;\r\n recordId: string | null;\r\n globalDateFormat: any;\r\n routerLink: string;\r\n TotalProviderBilledAmount = 0.00;\r\n TotalC3BillAmount = 0.00;\r\n TotalNetProfit = 0.00;\r\n ProfitPercentage = 0.00;\r\n isProfitabilityDetailsLoading: boolean = true;\r\n CurrencySymbol: string;\r\n CurrencyDecimalPlaces: number;\r\n CurrencyDecimalSeperator: string;\r\n CurrencyThousandSeperator: string;\r\n\r\n constructor(\r\n private dashboardWidgetsService: DashboardService,\r\n private commonService: CommonService,\r\n private _appService: AppSettingsService,\r\n private cdref: ChangeDetectorRef,\r\n private router: Router\r\n ) {\r\n this.entityName = this.commonService.entityName;\r\n this.recordId = this.commonService.recordId;\r\n }\r\n /**\r\n * Lifecycle hook that is called after data-bound properties of a directive are initialized.\r\n */\r\n ngOnInit(): void {\r\n this.globalDateFormat = this._appService.$rootScope.dateFormat;\r\n this.subscription = this.dashboardWidgetsService.getBillingPeriods().pipe(\r\n switchMap((billingPeriods: any) => {\r\n // Extracting the billingId from the last element of the billingPeriods array\r\n const billingPeriodId = billingPeriods.Data[billingPeriods.Data.length - 1].BillingPeriodId;\r\n this.billingPeriodsData = (billingPeriods.Data[billingPeriods.Data.length - 1]);\r\n this.startBillingDate = moment(this.billingPeriodsData?.BillingStartDate).format(this.globalDateFormat?.toUpperCase());\r\n this.endBillingDate = moment(this.billingPeriodsData?.BillingEndDate).format(this.globalDateFormat?.toUpperCase());\r\n this.billGenerationDate = moment(this.billingPeriodsData?.BillGenerationDate).format(this.globalDateFormat?.toUpperCase());\r\n this.cdref.detectChanges();\r\n\r\n return forkJoin([\r\n //this.commonService.entityName !=\"Reseller\" ?this.dashboardWidgetsService.getProfability( billingPeriodId,this.entityName,this.recordId): of(null)\r\n this.dashboardWidgetsService.getProfability(billingPeriodId, this.entityName, this.recordId)\r\n ]);\r\n })\r\n ).subscribe(([profabilityData]) => {\r\n this.data = profabilityData.Data[0];\r\n if (this.data !== undefined && this.data !== null) {\r\n this.TotalProviderBilledAmount = this.data?.TotalCostOnPartner;\r\n this.TotalC3BillAmount = this.data?.TotalBilledAmount;\r\n this.TotalNetProfit = this.data?.TotalProfitAmount;\r\n this.ProfitPercentage = this.data?.TotalProfitPercentage || 0;\r\n this.CurrencySymbol = this.data?.CurrencySymbol;\r\n this.CurrencyDecimalPlaces = this.data?.CurrencyDecimalPlaces;\r\n this.CurrencyDecimalSeperator = this.data?.CurrencyDecimalSeperator;\r\n this.CurrencyThousandSeperator = this.data?.CurrencyThousandSeperator;\r\n }\r\n this.isProfitabilityDetailsLoading = false;\r\n this.cdref.detectChanges();\r\n });\r\n }\r\n\r\n /**\r\n * Formats a number to a string with two decimal places.\r\n * \r\n * @param value The number to format.\r\n * @returns The formatted number as a string.\r\n */\r\n formatNumber(value: number): string {\r\n return value?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n }\r\n\r\n navigateToRevenue() {\r\n this.routerLink = 'partner/business/revenue';\r\n this.router?.navigate([this.routerLink])\r\n }\r\n}\r\n","
\r\n @if(chartUtilities.isloadingstart){\r\n \r\n\r\n
\r\n \r\n \r\n {{'TRANSLATE.MESSAGE_TEXT_PLEASE_WAIT' | translate}}\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n @if(!!purchaseOfseatsData)\r\n {\r\n
\r\n
\r\n \r\n
\r\n @for(duration of durationUnits; track $index)\r\n {\r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n @if(!!isLoading){\r\n \r\n }\r\n @else if(!!purchaseOfseatsData && purchaseOfseatsData.length>0)\r\n {\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{PreviousMonthSeats}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{CurrentMonthSeats}} \r\n \r\n
\r\n
\r\n \r\n {{netPercentage}}%\r\n \r\n @if(+netPercentage < 0){\r\n \r\n \r\n \r\n \r\n }@else {\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n @else if(purchaseOfseatsData.length < 1 && !isLoading){ \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n","import { NgClass, NgFor } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { NgApexchartsModule } from 'ng-apexcharts';\r\nimport { Subscription } from 'rxjs';\r\nimport { DashboardService } from 'src/app/modules/home/dashboard-widgets/services/dashboard.service';\r\nimport { LoaderService } from 'src/app/services/loader.service';\r\nimport { LoaderComponent } from '../../loader/loader.component';\r\nimport { TranslationModule } from 'src/app/modules/i18n';\r\nimport { ChartUtilities } from 'src/app/shared/utilities/chart-utilities';\r\nimport { DurationUnits } from 'src/app/modules/home/dashboard-widgets/models/widgets.model';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { SharedModule } from 'src/app/_c3-lib/shared/shared.module';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CommonNoRecordComponent } from '../../common-no-record/common-no-record.component';\r\n\r\n@Component({\r\n selector: 'app-purchase-of-seats-card',\r\n standalone: true,\r\n imports: [\r\n NgFor,CommonNoRecordComponent,\r\n NgApexchartsModule,\r\n LoaderComponent,\r\n TranslationModule,\r\n NgClass,\r\n NgbDropdownModule,\r\n SharedModule\r\n ],\r\n templateUrl: './purchase-of-seats-card.component.html',\r\n styleUrl: './purchase-of-seats-card.component.scss'\r\n})\r\nexport class PurchaseOfSeatsCardComponent implements OnInit, OnDestroy {\r\n selectedTimePeriod: string = DurationUnits.tweleveMonths;\r\n entityName: string | null;\r\n recordID: string | null;\r\n private subscription: Subscription;\r\n purchaseOfseatsData: any[] = [];\r\n chartOptions: any;\r\n CurrentMonthSeats: number;\r\n PreviousMonthSeats: number;\r\n netPercentage: string;\r\n isLoading: boolean = false;\r\n downloadIconStatus: boolean = false;\r\n public chartUtilities: ChartUtilities;\r\n\r\n durationUnits = [\r\n DurationUnits.threeMonths,\r\n DurationUnits.sixMonths,\r\n DurationUnits.tweleveMonths\r\n ];\r\n\r\n constructor(\r\n private dashboardService: DashboardService,\r\n private cdr: ChangeDetectorRef,\r\n private loaderService: LoaderService,\r\n private commonService: CommonService,\r\n private translateService: TranslateService\r\n ) { \r\n this.chartUtilities = new ChartUtilities();\r\n }\r\n\r\n /**\r\n * Lifecycle hook that is called after data-bound properties of a directive are initialized.\r\n */\r\n ngOnInit(): void {\r\n this.loaderService.startLoading();\r\n this.isLoading = true;\r\n this.entityName = this.commonService.entityName;\r\n this.recordID = this.commonService.recordId;\r\n this.getPurchaseofSeats();\r\n }\r\n\r\n /**\r\n * Sets the selected duration and fetches the purchase of seats data.\r\n * \r\n * @param duration The selected time period.\r\n */\r\n selectedDuration(duration: string): void {\r\n this.selectedTimePeriod = duration;\r\n this.getPurchaseofSeats();\r\n }\r\n\r\n /**\r\n * Fetches the purchase of seats data from the dashboard service.\r\n */\r\n getPurchaseofSeats(): void {\r\n \r\n this.subscription = this.dashboardService.getPurchaseOfSeats(this.entityName, this.recordID , this.selectedTimePeriod).subscribe((response: any) => {\r\n this.purchaseOfseatsData = response.Data || [];\r\n this.CurrentMonthSeats = this.purchaseOfseatsData[this.purchaseOfseatsData.length - 1]?.CurrentMonthSeats;\r\n this.PreviousMonthSeats = this.purchaseOfseatsData[this.purchaseOfseatsData.length - 1]?.PreviousMonthSeats;\r\n this.netPercentage = ((this.CurrentMonthSeats - this.PreviousMonthSeats) / this.PreviousMonthSeats * 100).toFixed(2);\r\n const purchasedMonths = this.purchaseOfseatsData.map((item: any) => item.PurchasedMonth);\r\n const totalQuantities = this.purchaseOfseatsData.map((item: any) => item.TotalQuantity);\r\n this.loaderService.stopLoading();\r\n this.isLoading = false;\r\n this.drawGraph(purchasedMonths, totalQuantities);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n /**\r\n * Draws the graph with the provided data.\r\n * \r\n * @param purchasedMonths The months during which seats were purchased.\r\n * @param totalQuantities The total quantities of seats purchased.\r\n */\r\n drawGraph(purchasedMonths: string[], totalQuantities: number[]): void {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Seats Purchased',\r\n data: totalQuantities,\r\n fill: {\r\n colors: ['#0000ff'],\r\n type: 'solid',\r\n opacity: 0.3\r\n }\r\n }\r\n ],\r\n chart: {\r\n type: 'area',\r\n height: 450,\r\n zoom: {\r\n enabled: false\r\n },\r\n toolbar:{\r\n show:false\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false // Disabling data labels to remove the square boxes\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n grid: {\r\n stroke: \"#b6b6b6\",\r\n strokeDashArray: 3 // Dashed lines\r\n },\r\n xaxis: {\r\n categories: purchasedMonths,\r\n axisBorder: {\r\n show: false,\r\n },\r\n lines: {\r\n show: true,\r\n dashArray: 0 // Dashed lines\r\n },\r\n labels: {\r\n show: true,\r\n style: {\r\n colors: \"#99A1B7\",\r\n fontSize: \"12px\",\r\n cssClass: \"apexcharts-xaxis-label\"\r\n }\r\n }\r\n },\r\n yaxis: {\r\n title: {\r\n text: this.translateService.instant('TRANSLATE.CUSTOMER_DASHBOARD_PURCHASE_OF_SEATS_TILE_TOOLTIP_TEXT'),\r\n },\r\n labels: {\r\n show: true,\r\n style: {\r\n colors: \"#99A1B7\",\r\n fontSize: \"12px\",\r\n cssClass: \"apexcharts-yaxis-label\"\r\n }\r\n }\r\n },\r\n tooltip: {\r\n y: {\r\n formatter: function (val: any) {\r\n return val;\r\n }\r\n }\r\n },\r\n markers: {\r\n size: 2,\r\n }\r\n };\r\n }\r\n\r\n generatePNG(dropdown:any): void {\r\n dropdown.close();\r\n this.chartUtilities.isloadingstart = true;\r\n setTimeout(()=>{\r\n const element = document.getElementById('site_statistics_seats');\r\n this.chartUtilities.generatePNG(element, 'Purchase-of-seats');\r\n this.downloadIconStatus = false;\r\n },0)\r\n }\r\n\r\n generateSVG(dropdown:any): void {\r\n dropdown.close();\r\n const element = document.getElementById('site_statistics_seats');\r\n this.chartUtilities.generateSVG(element, 'Purchase-of-seats');\r\n this.downloadIconStatus = false;\r\n\r\n\r\n }\r\n toggleButton(): void {\r\n this.downloadIconStatus = !this.downloadIconStatus\r\n }\r\n\r\n /**\r\n * Lifecycle hook that is called when the directive is destroyed.\r\n */\r\n ngOnDestroy(): void {\r\n this.subscription?.unsubscribe();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n @if(cardType !== cardsTypes.customers){\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n @else {\r\n \r\n }\r\n \r\n
\r\n @if(cardType === cardsTypes.customers){\r\n {{customersCount?.Data?.CustomerCount}}\r\n }\r\n @else{\r\n {{resellersCount?.Data?.ResellerCount}}\r\n }\r\n \r\n @if(cardType === cardsTypes.customers){\r\n \r\n }\r\n @else{\r\n \r\n }\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n @if(cardType === cardsTypes.customers){\r\n {{customersCount?.Data?.DeletedCustomerCountInCurrentMonth}}\r\n\r\n }\r\n @else{\r\n {{resellersCount?.Data?.DeletedResellerCountInCurrentMonth}}\r\n\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n @if(cardType === cardsTypes.customers){\r\n {{customersCount?.Data?.NewCustomerCountInCurrentMonth}}\r\n }\r\n @else{\r\n {{resellersCount?.Data?.NewResellerCountInCurrentMonth}}\r\n\r\n }\r\n \r\n
\r\n
\r\n
","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, Input, OnDestroy, OnInit, input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription, forkJoin } from 'rxjs';\r\nimport { TranslationModule } from 'src/app/modules/i18n';\r\nimport { DashboardService } from 'src/app/modules/home/dashboard-widgets/services/dashboard.service';\r\nimport { CardsType, CustomerCardData, PortletTargetActions, ResellerCardData } from 'src/app/modules/home/dashboard-widgets/models/dashboard.model';\r\nimport { CommonService } from 'src/app/services/common.service';\r\n\r\n@Component({\r\n selector: 'app-stat-card',\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n TranslationModule\r\n ],\r\n templateUrl: './stat-card.component.html',\r\n styleUrl: './stat-card.component.scss'\r\n})\r\nexport class StatCardComponent implements OnInit, OnDestroy {\r\n @Input() widgetKey?: string;\r\n bgColor: string;\r\n customerCardBgColor = 'bg-danger';\r\n resellerCardBgColor = 'bg-success';\r\n cardType: string;\r\n customerCardLink: string;\r\n resellersCardLink: string;\r\n customersCount: Partial;\r\n resellersCount: Partial;\r\n routerLink: string;\r\n private subscription: Subscription;\r\n entityName: string | null;\r\n portletTargetAction = PortletTargetActions;\r\n cardsTypes = CardsType;\r\n recordId: string | null;\r\n constructor(\r\n private router: Router,\r\n private dashboardWidgetsService: DashboardService,\r\n private commonService: CommonService\r\n\r\n ) {\r\n this.entityName = this.commonService.entityName;\r\n this.recordId= this.commonService.recordId;\r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n if (this.widgetKey === this.portletTargetAction.customerCount) {\r\n this.bgColor = this.customerCardBgColor;\r\n this.cardType = this.cardsTypes.customers;\r\n this.subscription = forkJoin([\r\n this.dashboardWidgetsService.getCustomersCount(this.entityName,this.recordId),\r\n ]).subscribe(([customersCount]) => {\r\n this.customersCount = customersCount;\r\n });\r\n\r\n }\r\n else if (this.widgetKey === this.portletTargetAction.resellerCount) {\r\n this.bgColor = this.resellerCardBgColor;\r\n this.cardType = this.cardsTypes.resellers;\r\n this.subscription = forkJoin([\r\n this.dashboardWidgetsService.getResellersCount(),\r\n ]).subscribe(([resellerCount]) => {\r\n this.resellersCount = resellerCount;\r\n \r\n });\r\n\r\n\r\n }\r\n }\r\n\r\n openCustomersList() {\r\n if (this.cardType == this.cardsTypes.customers) {\r\n this.routerLink = 'partner/customers'\r\n }\r\n else {\r\n this.routerLink = 'partner/resellers'\r\n }\r\n this.router?.navigate([this.routerLink])\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription?.unsubscribe();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n @if(cardType === cardsTypes.seats){\r\n \r\n }\r\n @else{\r\n \r\n }\r\n \r\n
\r\n @if(cardType === cardsTypes.seats){\r\n {{seatsCount?.Data?.SeatsCount}} \r\n }\r\n @else {\r\n {{subscriptionsCount?.Data?.TotalPurchasedProductCount}}\r\n \r\n\r\n }\r\n \r\n @if(cardType === cardsTypes.seats){\r\n \r\n }\r\n @else{\r\n \r\n }\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { AfterViewInit, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NgApexchartsModule } from 'ng-apexcharts';\r\nimport { NgClass } from '@angular/common';\r\nimport { Subscription, forkJoin } from 'rxjs';\r\nimport { DashboardService } from 'src/app/modules/home/dashboard-widgets/services/dashboard.service';\r\nimport {\r\n CardsType,\r\n PortletTargetActions,\r\n ProductsCountOnDateResponse,\r\n SeatsCountOnDateResponse,\r\n SubscriptionCardData,\r\n seatsCardData\r\n} from 'src/app/modules/home/dashboard-widgets/models/dashboard.model';\r\nimport { TranslationModule } from 'src/app/modules/i18n';\r\nimport { CommonService } from 'src/app/services/common.service';\r\n\r\n@Component({\r\n selector: 'app-stat-with-graph-card',\r\n standalone: true,\r\n imports: [\r\n NgApexchartsModule,\r\n NgClass,\r\n TranslationModule\r\n ],\r\n templateUrl: './stat-with-graph-card.component.html',\r\n styleUrls: ['./stat-with-graph-card.component.scss'],\r\n providers: [NgApexchartsModule, NgClass]\r\n})\r\nexport class StatWithGraphCardComponent implements OnInit, OnDestroy {\r\n @Input() widgetKey?: string;\r\n \r\n bgColor: string;\r\n seatsCardBgColor = 'bg-info';\r\n subscriptionsCardBgColor = 'bg-dark';\r\n cardType: string;\r\n productsCountOnDate: Partial;\r\n seatsCountOnDate: Partial;\r\n subscriptionsCount: Partial;\r\n seatsCount: Partial;\r\n chartOptions: any;\r\n cardsTypes = CardsType;\r\n public series: any; \r\n public chart: any; \r\n private subscription: Subscription; \r\n entityName: string | null;\r\n portletTargetAction = PortletTargetActions\r\n recordId: string;\r\n constructor(\r\n private cdref: ChangeDetectorRef,\r\n private dashboardWidgetsService: DashboardService,\r\n private commonService: CommonService\r\n ) {\r\n this.entityName = this.commonService.entityName;\r\n this.recordId= this.commonService.recordId;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.widgetKey === this.portletTargetAction.subscriptionsCount) {\r\n this.bgColor = this.subscriptionsCardBgColor;\r\n this.cardType = this.cardsTypes.subscriptions;\r\n \r\n this.subscription = forkJoin([\r\n this.dashboardWidgetsService.getProductsCountOnDate(this.entityName,this.recordId),\r\n this.dashboardWidgetsService.getSubscriptionsCount(this.entityName,this.recordId),\r\n ]).subscribe(([productsCountOnDate, subscriptionsCount]) => {\r\n this.productsCountOnDate = productsCountOnDate;\r\n this.subscriptionsCount = subscriptionsCount;\r\n if (!!this.productsCountOnDate && this.productsCountOnDate.Data && this.productsCountOnDate.Data.length > 0) {\r\n const productCounts = this.productsCountOnDate.Data.map((item: any) => item.ProductsCount);\r\n const onDate = this.productsCountOnDate.Data.map((item: any) => item.OnDate);\r\n const name = 'Products Count';\r\n this.drawGraph(productCounts, onDate, name);\r\n this.cdref.detectChanges();\r\n }\r\n });\r\n \r\n }\r\n else if (this.widgetKey === this.portletTargetAction.seatsCount) {\r\n this.bgColor = this.seatsCardBgColor;\r\n this.cardType = this.cardsTypes.seats;\r\n \r\n this.subscription = forkJoin([\r\n this.dashboardWidgetsService.getSeatsCountOnDate(this.entityName,this.recordId),\r\n this.dashboardWidgetsService.getSeatsCount(this.entityName,this.recordId),\r\n ]).subscribe(([seatsCountOnDate, seatsCount]) => {\r\n this.seatsCountOnDate = seatsCountOnDate;\r\n this.seatsCount = seatsCount;\r\n \r\n if (!!this.seatsCountOnDate && this.seatsCountOnDate.Data && this.seatsCountOnDate.Data.length > 0) {\r\n const seatsCount = this.seatsCountOnDate.Data.map((item: any) => item.SeatsCount);\r\n const onDate = this.seatsCountOnDate.Data.map((item: any) => item.OnDate);\r\n const name = 'Seats Purchased';\r\n this.drawGraph(seatsCount, onDate, name);\r\n this.cdref.detectChanges();\r\n }\r\n });\r\n \r\n\r\n }\r\n }\r\n\r\n drawGraph(Data:any, onDate:any, name:string){\r\n const initialValue = Math.min(...Data);\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: name,\r\n data: Data?.map((count: any, index: number) => ({\r\n x: onDate[index],\r\n y: count\r\n }))\r\n }\r\n ],\r\n\r\n chart: {\r\n type: 'bar',\r\n sparkline: {\r\n enabled: true\r\n },\r\n barColor: \"#FFFFFF\",\r\n barSpacing: '2',\r\n barWidth: '4',\r\n height: '30',\r\n fillColor: 'transparent',\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: false,\r\n columnWidth: \"2\", \r\n endingShape: \"dot\",\r\n colors: {\r\n ranges: [{\r\n from: 0,\r\n to: Number.MAX_SAFE_INTEGER,\r\n color: '#FFFFFF'\r\n }]\r\n },\r\n distributed: false \r\n }\r\n },\r\n xaxis: {\r\n type: 'datetime',\r\n categories: onDate,\r\n labels: {\r\n show: false // Hide x-axis labels\r\n },\r\n },\r\n yaxis: {\r\n show: false,\r\n min: initialValue-1,\r\n },\r\n \r\n tooltip: {\r\n shared: true, \r\n intersect: false,\r\n enabled: true, // Ensure tooltips are enabled\r\n x: {\r\n formatter: function(val: any) {\r\n const date = new Date(val);\r\n const month = date.toLocaleString('default', { month: 'short' });\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n return `Date:${month} ${day}, ${year}`;\r\n }\r\n },\r\n y: {\r\n formatter: function (val: any) {\r\n return + val;\r\n }\r\n }\r\n },\r\n\r\n markers: {\r\n size: 2,\r\n }\r\n };\r\n\r\n}\r\n\r\nngOnDestroy(): void {\r\n this.subscription?.unsubscribe();\r\n}\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n standalone: true,\r\n imports: [TranslateModule],\r\n templateUrl: './loader.component.html',\r\n styleUrl: './loader.component.scss',\r\n})\r\nexport class LoaderComponent {\r\n\r\n}\r\n","\r\n
\r\n {{'TRANSLATE.LOADING_MESSAGE' | translate}}\r\n
\r\n","import html2canvas from \"html2canvas\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\nexport class ChartUtilities {\r\npublic isloadingstart:boolean=false;\r\n generatePNG(element: any, fileName: string) {\r\n if (element) {\r\n // this.isloadingstart=true;\r\n html2canvas(element).then(canvas => {\r\n this.isloadingstart=false;\r\n const dataURL = canvas.toDataURL('image/png');\r\n this.downloadImage(dataURL, fileName);\r\n });\r\n }\r\n }\r\n\r\n generateSVG(element: any, fileName: string) {\r\n const svgElement = element.querySelector('svg');\r\n if (svgElement) {\r\n const serializer = new XMLSerializer();\r\n const svgString = serializer.serializeToString(svgElement);\r\n const svgBlob = new Blob([svgString], { type: 'image/svg+xml;charset=utf-8' });\r\n const dataURL = URL.createObjectURL(svgBlob);\r\n this.downloadImage(dataURL, fileName);\r\n }\r\n }\r\n\r\n downloadImage(dataURL: string, filename: string) {\r\n const a = document.createElement('a');\r\n a.href = dataURL;\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n\r\n generateCSV(data: any[], filename: string = 'data') {\r\n let csvData = this.convertToCSV(data);\r\n \r\n let blob = new Blob(['\\ufeff' + csvData], { type: 'text/csv;charset=utf-8;' });\r\n let url = URL.createObjectURL(blob);\r\n \r\n let a = document.createElement('a');\r\n a.href = url;\r\n a.download = filename + '.csv';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n\r\n private convertToCSV(data: any[]): string {\r\n const header = Object.keys(data[0]).join(',');\r\n const rows = data.map(obj => Object.values(obj).join(','));\r\n return header + '\\n' + rows.join('\\n');\r\n }\r\n \r\n}\r\n\r\n"],"x_google_ignoreList":[]}