@osama_amireh/bayan-payroll-widgets-ui 2.0.9 → 2.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -852,6 +852,7 @@ class PayslipDetailsCardComponent {
|
|
|
852
852
|
})),
|
|
853
853
|
colors: this.chartPaletteColors(),
|
|
854
854
|
innerRadius: 0.85,
|
|
855
|
+
width: 200,
|
|
855
856
|
height: 200,
|
|
856
857
|
}), ...(ngDevMode ? [{ debugName: "doughnutChartInfo" }] : /* istanbul ignore next */ []));
|
|
857
858
|
useMobileChart = computed(() => this.isMobile() || this.screen.isXSmallScreen() || this.screen.isSmallScreen() || this.screen.isMediumScreen(), ...(ngDevMode ? [{ debugName: "useMobileChart" }] : /* istanbul ignore next */ []));
|
|
@@ -862,7 +863,7 @@ class PayslipDetailsCardComponent {
|
|
|
862
863
|
this.popupVisible.set(true);
|
|
863
864
|
}
|
|
864
865
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipDetailsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
865
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: PayslipDetailsCardComponent, isStandalone: true, selector: "payroll-payslip-details-card", inputs: { employeeDetails: { classPropertyName: "employeeDetails", publicName: "employeeDetails", isSignal: true, isRequired: true, transformFunction: null }, payMonthDate: { classPropertyName: "payMonthDate", publicName: "payMonthDate", isSignal: true, isRequired: false, transformFunction: null }, pieDataSource: { classPropertyName: "pieDataSource", publicName: "pieDataSource", isSignal: true, isRequired: false, transformFunction: null }, actualBasicSalaryDetails: { classPropertyName: "actualBasicSalaryDetails", publicName: "actualBasicSalaryDetails", isSignal: true, isRequired: false, transformFunction: null }, cardContainerClass: { classPropertyName: "cardContainerClass", publicName: "cardContainerClass", isSignal: true, isRequired: false, transformFunction: null }, contentRowClass: { classPropertyName: "contentRowClass", publicName: "contentRowClass", isSignal: true, isRequired: false, transformFunction: null }, detailsColumnClass: { classPropertyName: "detailsColumnClass", publicName: "detailsColumnClass", isSignal: true, isRequired: false, transformFunction: null }, chartColumnClass: { classPropertyName: "chartColumnClass", publicName: "chartColumnClass", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, titleRowClass: { classPropertyName: "titleRowClass", publicName: "titleRowClass", isSignal: true, isRequired: false, transformFunction: null }, salaryIconClass: { classPropertyName: "salaryIconClass", publicName: "salaryIconClass", isSignal: true, isRequired: false, transformFunction: null }, titleClass: { classPropertyName: "titleClass", publicName: "titleClass", isSignal: true, isRequired: false, transformFunction: null }, titleMonthClass: { classPropertyName: "titleMonthClass", publicName: "titleMonthClass", isSignal: true, isRequired: false, transformFunction: null }, sectionClass: { classPropertyName: "sectionClass", publicName: "sectionClass", isSignal: true, isRequired: false, transformFunction: null }, sectionTitleClass: { classPropertyName: "sectionTitleClass", publicName: "sectionTitleClass", isSignal: true, isRequired: false, transformFunction: null }, tableLabelClass: { classPropertyName: "tableLabelClass", publicName: "tableLabelClass", isSignal: true, isRequired: false, transformFunction: null }, tablePrimaryLabelClass: { classPropertyName: "tablePrimaryLabelClass", publicName: "tablePrimaryLabelClass", isSignal: true, isRequired: false, transformFunction: null }, tableValueClass: { classPropertyName: "tableValueClass", publicName: "tableValueClass", isSignal: true, isRequired: false, transformFunction: null }, tableSecondaryValueClass: { classPropertyName: "tableSecondaryValueClass", publicName: "tableSecondaryValueClass", isSignal: true, isRequired: false, transformFunction: null }, currencyCodeClass: { classPropertyName: "currencyCodeClass", publicName: "currencyCodeClass", isSignal: true, isRequired: false, transformFunction: null }, infoIconClass: { classPropertyName: "infoIconClass", publicName: "infoIconClass", isSignal: true, isRequired: false, transformFunction: null }, popupWidth: { classPropertyName: "popupWidth", publicName: "popupWidth", isSignal: true, isRequired: false, transformFunction: null }, popupMaxHeight: { classPropertyName: "popupMaxHeight", publicName: "popupMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, popupShadingColor: { classPropertyName: "popupShadingColor", publicName: "popupShadingColor", isSignal: true, isRequired: false, transformFunction: null }, popupHeaderRowClass: { classPropertyName: "popupHeaderRowClass", publicName: "popupHeaderRowClass", isSignal: true, isRequired: false, transformFunction: null }, popupRowClass: { classPropertyName: "popupRowClass", publicName: "popupRowClass", isSignal: true, isRequired: false, transformFunction: null }, mobileChartWrapperClass: { classPropertyName: "mobileChartWrapperClass", publicName: "mobileChartWrapperClass", isSignal: true, isRequired: false, transformFunction: null }, negativePaletteColors: { classPropertyName: "negativePaletteColors", publicName: "negativePaletteColors", isSignal: true, isRequired: false, transformFunction: null }, positivePaletteColors: { classPropertyName: "positivePaletteColors", publicName: "positivePaletteColors", isSignal: true, isRequired: false, transformFunction: null }, salaryTableRowClass: { classPropertyName: "salaryTableRowClass", publicName: "salaryTableRowClass", isSignal: true, isRequired: false, transformFunction: null }, labelColumnClass: { classPropertyName: "labelColumnClass", publicName: "labelColumnClass", isSignal: true, isRequired: false, transformFunction: null }, daysColumnClass: { classPropertyName: "daysColumnClass", publicName: "daysColumnClass", isSignal: true, isRequired: false, transformFunction: null }, daysHeaderClass: { classPropertyName: "daysHeaderClass", publicName: "daysHeaderClass", isSignal: true, isRequired: false, transformFunction: null }, amountColumnClass: { classPropertyName: "amountColumnClass", publicName: "amountColumnClass", isSignal: true, isRequired: false, transformFunction: null }, salaryAmountColumnClass: { classPropertyName: "salaryAmountColumnClass", publicName: "salaryAmountColumnClass", isSignal: true, isRequired: false, transformFunction: null }, allowanceAmountColumnClass: { classPropertyName: "allowanceAmountColumnClass", publicName: "allowanceAmountColumnClass", isSignal: true, isRequired: false, transformFunction: null }, totalsColumnClass: { classPropertyName: "totalsColumnClass", publicName: "totalsColumnClass", isSignal: true, isRequired: false, transformFunction: null }, viewDetailsLinkClass: { classPropertyName: "viewDetailsLinkClass", publicName: "viewDetailsLinkClass", isSignal: true, isRequired: false, transformFunction: null }, allowancesRowClass: { classPropertyName: "allowancesRowClass", publicName: "allowancesRowClass", isSignal: true, isRequired: false, transformFunction: null }, allowanceDaysClass: { classPropertyName: "allowanceDaysClass", publicName: "allowanceDaysClass", isSignal: true, isRequired: false, transformFunction: null }, allowanceAmountWrapperClass: { classPropertyName: "allowanceAmountWrapperClass", publicName: "allowanceAmountWrapperClass", isSignal: true, isRequired: false, transformFunction: null }, allowanceAmountTextClass: { classPropertyName: "allowanceAmountTextClass", publicName: "allowanceAmountTextClass", isSignal: true, isRequired: false, transformFunction: null }, tooltipContainerClass: { classPropertyName: "tooltipContainerClass", publicName: "tooltipContainerClass", isSignal: true, isRequired: false, transformFunction: null }, tooltipTextClass: { classPropertyName: "tooltipTextClass", publicName: "tooltipTextClass", isSignal: true, isRequired: false, transformFunction: null }, tooltipCurrencyClass: { classPropertyName: "tooltipCurrencyClass", publicName: "tooltipCurrencyClass", isSignal: true, isRequired: false, transformFunction: null }, tooltipAmountClass: { classPropertyName: "tooltipAmountClass", publicName: "tooltipAmountClass", isSignal: true, isRequired: false, transformFunction: null }, dividerRowClass: { classPropertyName: "dividerRowClass", publicName: "dividerRowClass", isSignal: true, isRequired: false, transformFunction: null }, dividerColumnClass: { classPropertyName: "dividerColumnClass", publicName: "dividerColumnClass", isSignal: true, isRequired: false, transformFunction: null }, deductionsSectionRowClass: { classPropertyName: "deductionsSectionRowClass", publicName: "deductionsSectionRowClass", isSignal: true, isRequired: false, transformFunction: null }, deductionsSectionColumnClass: { classPropertyName: "deductionsSectionColumnClass", publicName: "deductionsSectionColumnClass", isSignal: true, isRequired: false, transformFunction: null }, deductionsInnerRowClass: { classPropertyName: "deductionsInnerRowClass", publicName: "deductionsInnerRowClass", isSignal: true, isRequired: false, transformFunction: null }, deductionDaysClass: { classPropertyName: "deductionDaysClass", publicName: "deductionDaysClass", isSignal: true, isRequired: false, transformFunction: null }, deductionAmountTextClass: { classPropertyName: "deductionAmountTextClass", publicName: "deductionAmountTextClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"cardContainerClass()\">\n <div [class]=\"contentRowClass()\">\n <div [class]=\"detailsColumnClass()\">\n <div [class]=\"titleRowClass()\">\n <fa-icon [icon]=\"salaryIcon\" [class]=\"salaryIconClass()\"></fa-icon>\n <h5 [class]=\"titleClass()\">\n {{ 'Salary' | PayrollTranslate }}\n <span [class]=\"titleMonthClass()\">({{ payMonthDate() | date: 'MMM yyyy' }})</span>\n </h5>\n </div>\n\n @if (useMobileChart()) {\n <div [class]=\"mobileChartWrapperClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n <payroll-payslip-salary-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [salaryTableRowClass]=\"salaryTableRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [daysColumnClass]=\"daysColumnClass()\"\n [daysHeaderClass]=\"daysHeaderClass()\"\n [amountColumnClass]=\"salaryAmountColumnClass()\"\n [tablePrimaryLabelClass]=\"tablePrimaryLabelClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [tableValueClass]=\"tableValueClass()\"\n [tableSecondaryValueClass]=\"tableSecondaryValueClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [viewDetailsLinkClass]=\"viewDetailsLinkClass()\"\n (viewActualBasicSalaryDetailsClick)=\"onViewActualBasicSalaryDetailsClick()\"\n ></payroll-payslip-salary-table>\n\n <payroll-payslip-allowances-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [allowancesRowClass]=\"allowancesRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [allowanceDaysClass]=\"allowanceDaysClass()\"\n [amountColumnClass]=\"allowanceAmountColumnClass()\"\n [allowanceAmountWrapperClass]=\"allowanceAmountWrapperClass()\"\n [allowanceAmountTextClass]=\"allowanceAmountTextClass()\"\n [infoIconClass]=\"infoIconClass()\"\n [tooltipContainerClass]=\"tooltipContainerClass()\"\n [tooltipTextClass]=\"tooltipTextClass()\"\n [tooltipCurrencyClass]=\"tooltipCurrencyClass()\"\n [tooltipAmountClass]=\"tooltipAmountClass()\"\n ></payroll-payslip-allowances-table>\n </div>\n\n @if (!useMobileChart()) {\n <div [class]=\"chartColumnClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n </div>\n\n <payroll-payslip-deductions-table\n [employeeDetails]=\"employeeDetails()\"\n [dividerRowClass]=\"dividerRowClass()\"\n [dividerColumnClass]=\"dividerColumnClass()\"\n [deductionsSectionRowClass]=\"deductionsSectionRowClass()\"\n [deductionsSectionColumnClass]=\"deductionsSectionColumnClass()\"\n [deductionsInnerRowClass]=\"deductionsInnerRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [deductionDaysClass]=\"deductionDaysClass()\"\n [amountColumnClass]=\"amountColumnClass()\"\n [deductionAmountTextClass]=\"deductionAmountTextClass()\"\n ></payroll-payslip-deductions-table>\n</div>\n\n<payroll-actual-basic-details-popup\n [currencyCode]=\"employeeDetails().CurrencyCode\"\n [currencyDecimals]=\"employeeDetails().CurrencyDecimals\"\n [actualBasicSalaryDetails]=\"actualBasicSalaryDetails()\"\n [popupVisible]=\"popupVisible()\"\n [popupWidth]=\"popupWidth()\"\n [popupMaxHeight]=\"popupMaxHeight()\"\n [popupShadingColor]=\"popupShadingColor()\"\n [popupHeaderRowClass]=\"popupHeaderRowClass()\"\n [popupRowClass]=\"popupRowClass()\"\n (closePopupClickHandler)=\"onCloseActualBasicSalaryDetailsPopupHandler()\"\n></payroll-actual-basic-details-popup>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "component", type: SkyDoughnutChartComponent, selector: "sky-doughnut-chart", inputs: ["info", "rootWrapperClass", "chartColumnWrapperClass", "hasBorder", "chartItemPaddingClass", "chartFrameWrapperClass", "tooltipBadgeClass", "chartOverlayWrapperClass", "legendColumnWrapperClass", "legendListWrapperClass", "legendItemWrapperClass", "legendItemDotClass", "chartId", "chartType", "tooltipColor", "tooltipBorder", "tooltipShadow", "tooltipFormatType", "tooltipFormatPrecision", "seriesArgumentField", "seriesValueField", "seriesLabelVisible", "legendVisible", "seriesBorderVisible"] }, { kind: "component", type: ActualBasicDetailsPopupComponent, selector: "payroll-actual-basic-details-popup", inputs: ["popupVisible", "currencyCode", "currencyDecimals", "actualBasicSalaryDetails", "popupWidth", "popupMaxHeight", "popupShadingColor", "popupTitleKey", "popupHeaderRowClass", "popupRowClass"], outputs: ["closePopupClickHandler"] }, { kind: "component", type: PayslipSalaryTableComponent, selector: "payroll-payslip-salary-table", inputs: ["employeeDetails", "sectionClass", "salaryTableRowClass", "labelColumnClass", "daysColumnClass", "daysHeaderClass", "amountColumnClass", "tablePrimaryLabelClass", "tableLabelClass", "tableValueClass", "tableSecondaryValueClass", "currencyCodeClass", "viewDetailsLinkClass"], outputs: ["viewActualBasicSalaryDetailsClick"] }, { kind: "component", type: PayslipAllowancesTableComponent, selector: "payroll-payslip-allowances-table", inputs: ["employeeDetails", "sectionClass", "allowancesRowClass", "labelColumnClass", "totalsColumnClass", "sectionTitleClass", "tableLabelClass", "allowanceDaysClass", "amountColumnClass", "allowanceAmountWrapperClass", "allowanceAmountTextClass", "infoIconClass", "tooltipContainerClass", "tooltipTextClass", "tooltipCurrencyClass", "tooltipAmountClass"] }, { kind: "component", type: PayslipDeductionsTableComponent, selector: "payroll-payslip-deductions-table", inputs: ["employeeDetails", "dividerRowClass", "dividerColumnClass", "deductionsSectionRowClass", "deductionsSectionColumnClass", "deductionsInnerRowClass", "labelColumnClass", "sectionTitleClass", "totalsColumnClass", "tableLabelClass", "deductionDaysClass", "amountColumnClass", "deductionAmountTextClass"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
866
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: PayslipDetailsCardComponent, isStandalone: true, selector: "payroll-payslip-details-card", inputs: { employeeDetails: { classPropertyName: "employeeDetails", publicName: "employeeDetails", isSignal: true, isRequired: true, transformFunction: null }, payMonthDate: { classPropertyName: "payMonthDate", publicName: "payMonthDate", isSignal: true, isRequired: false, transformFunction: null }, pieDataSource: { classPropertyName: "pieDataSource", publicName: "pieDataSource", isSignal: true, isRequired: false, transformFunction: null }, actualBasicSalaryDetails: { classPropertyName: "actualBasicSalaryDetails", publicName: "actualBasicSalaryDetails", isSignal: true, isRequired: false, transformFunction: null }, cardContainerClass: { classPropertyName: "cardContainerClass", publicName: "cardContainerClass", isSignal: true, isRequired: false, transformFunction: null }, contentRowClass: { classPropertyName: "contentRowClass", publicName: "contentRowClass", isSignal: true, isRequired: false, transformFunction: null }, detailsColumnClass: { classPropertyName: "detailsColumnClass", publicName: "detailsColumnClass", isSignal: true, isRequired: false, transformFunction: null }, chartColumnClass: { classPropertyName: "chartColumnClass", publicName: "chartColumnClass", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, titleRowClass: { classPropertyName: "titleRowClass", publicName: "titleRowClass", isSignal: true, isRequired: false, transformFunction: null }, salaryIconClass: { classPropertyName: "salaryIconClass", publicName: "salaryIconClass", isSignal: true, isRequired: false, transformFunction: null }, titleClass: { classPropertyName: "titleClass", publicName: "titleClass", isSignal: true, isRequired: false, transformFunction: null }, titleMonthClass: { classPropertyName: "titleMonthClass", publicName: "titleMonthClass", isSignal: true, isRequired: false, transformFunction: null }, sectionClass: { classPropertyName: "sectionClass", publicName: "sectionClass", isSignal: true, isRequired: false, transformFunction: null }, sectionTitleClass: { classPropertyName: "sectionTitleClass", publicName: "sectionTitleClass", isSignal: true, isRequired: false, transformFunction: null }, tableLabelClass: { classPropertyName: "tableLabelClass", publicName: "tableLabelClass", isSignal: true, isRequired: false, transformFunction: null }, tablePrimaryLabelClass: { classPropertyName: "tablePrimaryLabelClass", publicName: "tablePrimaryLabelClass", isSignal: true, isRequired: false, transformFunction: null }, tableValueClass: { classPropertyName: "tableValueClass", publicName: "tableValueClass", isSignal: true, isRequired: false, transformFunction: null }, tableSecondaryValueClass: { classPropertyName: "tableSecondaryValueClass", publicName: "tableSecondaryValueClass", isSignal: true, isRequired: false, transformFunction: null }, currencyCodeClass: { classPropertyName: "currencyCodeClass", publicName: "currencyCodeClass", isSignal: true, isRequired: false, transformFunction: null }, infoIconClass: { classPropertyName: "infoIconClass", publicName: "infoIconClass", isSignal: true, isRequired: false, transformFunction: null }, popupWidth: { classPropertyName: "popupWidth", publicName: "popupWidth", isSignal: true, isRequired: false, transformFunction: null }, popupMaxHeight: { classPropertyName: "popupMaxHeight", publicName: "popupMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, popupShadingColor: { classPropertyName: "popupShadingColor", publicName: "popupShadingColor", isSignal: true, isRequired: false, transformFunction: null }, popupHeaderRowClass: { classPropertyName: "popupHeaderRowClass", publicName: "popupHeaderRowClass", isSignal: true, isRequired: false, transformFunction: null }, popupRowClass: { classPropertyName: "popupRowClass", publicName: "popupRowClass", isSignal: true, isRequired: false, transformFunction: null }, mobileChartWrapperClass: { classPropertyName: "mobileChartWrapperClass", publicName: "mobileChartWrapperClass", isSignal: true, isRequired: false, transformFunction: null }, negativePaletteColors: { classPropertyName: "negativePaletteColors", publicName: "negativePaletteColors", isSignal: true, isRequired: false, transformFunction: null }, positivePaletteColors: { classPropertyName: "positivePaletteColors", publicName: "positivePaletteColors", isSignal: true, isRequired: false, transformFunction: null }, salaryTableRowClass: { classPropertyName: "salaryTableRowClass", publicName: "salaryTableRowClass", isSignal: true, isRequired: false, transformFunction: null }, labelColumnClass: { classPropertyName: "labelColumnClass", publicName: "labelColumnClass", isSignal: true, isRequired: false, transformFunction: null }, daysColumnClass: { classPropertyName: "daysColumnClass", publicName: "daysColumnClass", isSignal: true, isRequired: false, transformFunction: null }, daysHeaderClass: { classPropertyName: "daysHeaderClass", publicName: "daysHeaderClass", isSignal: true, isRequired: false, transformFunction: null }, amountColumnClass: { classPropertyName: "amountColumnClass", publicName: "amountColumnClass", isSignal: true, isRequired: false, transformFunction: null }, salaryAmountColumnClass: { classPropertyName: "salaryAmountColumnClass", publicName: "salaryAmountColumnClass", isSignal: true, isRequired: false, transformFunction: null }, allowanceAmountColumnClass: { classPropertyName: "allowanceAmountColumnClass", publicName: "allowanceAmountColumnClass", isSignal: true, isRequired: false, transformFunction: null }, totalsColumnClass: { classPropertyName: "totalsColumnClass", publicName: "totalsColumnClass", isSignal: true, isRequired: false, transformFunction: null }, viewDetailsLinkClass: { classPropertyName: "viewDetailsLinkClass", publicName: "viewDetailsLinkClass", isSignal: true, isRequired: false, transformFunction: null }, allowancesRowClass: { classPropertyName: "allowancesRowClass", publicName: "allowancesRowClass", isSignal: true, isRequired: false, transformFunction: null }, allowanceDaysClass: { classPropertyName: "allowanceDaysClass", publicName: "allowanceDaysClass", isSignal: true, isRequired: false, transformFunction: null }, allowanceAmountWrapperClass: { classPropertyName: "allowanceAmountWrapperClass", publicName: "allowanceAmountWrapperClass", isSignal: true, isRequired: false, transformFunction: null }, allowanceAmountTextClass: { classPropertyName: "allowanceAmountTextClass", publicName: "allowanceAmountTextClass", isSignal: true, isRequired: false, transformFunction: null }, tooltipContainerClass: { classPropertyName: "tooltipContainerClass", publicName: "tooltipContainerClass", isSignal: true, isRequired: false, transformFunction: null }, tooltipTextClass: { classPropertyName: "tooltipTextClass", publicName: "tooltipTextClass", isSignal: true, isRequired: false, transformFunction: null }, tooltipCurrencyClass: { classPropertyName: "tooltipCurrencyClass", publicName: "tooltipCurrencyClass", isSignal: true, isRequired: false, transformFunction: null }, tooltipAmountClass: { classPropertyName: "tooltipAmountClass", publicName: "tooltipAmountClass", isSignal: true, isRequired: false, transformFunction: null }, dividerRowClass: { classPropertyName: "dividerRowClass", publicName: "dividerRowClass", isSignal: true, isRequired: false, transformFunction: null }, dividerColumnClass: { classPropertyName: "dividerColumnClass", publicName: "dividerColumnClass", isSignal: true, isRequired: false, transformFunction: null }, deductionsSectionRowClass: { classPropertyName: "deductionsSectionRowClass", publicName: "deductionsSectionRowClass", isSignal: true, isRequired: false, transformFunction: null }, deductionsSectionColumnClass: { classPropertyName: "deductionsSectionColumnClass", publicName: "deductionsSectionColumnClass", isSignal: true, isRequired: false, transformFunction: null }, deductionsInnerRowClass: { classPropertyName: "deductionsInnerRowClass", publicName: "deductionsInnerRowClass", isSignal: true, isRequired: false, transformFunction: null }, deductionDaysClass: { classPropertyName: "deductionDaysClass", publicName: "deductionDaysClass", isSignal: true, isRequired: false, transformFunction: null }, deductionAmountTextClass: { classPropertyName: "deductionAmountTextClass", publicName: "deductionAmountTextClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"cardContainerClass()\">\n <div [class]=\"contentRowClass()\">\n <div [class]=\"detailsColumnClass()\">\n <div [class]=\"titleRowClass()\">\n <fa-icon [icon]=\"salaryIcon\" [class]=\"salaryIconClass()\"></fa-icon>\n <h5 [class]=\"titleClass()\">\n {{ 'Salary' | PayrollTranslate }}\n <span [class]=\"titleMonthClass()\">({{ payMonthDate() | date: 'MMM yyyy' }})</span>\n </h5>\n </div>\n\n @if (useMobileChart()) {\n <div [class]=\"mobileChartWrapperClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n rootWrapperClass=\"sky-chart-item d-flex flex-row align-items-center justify-content-start g-3 w-100 m-0\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n <payroll-payslip-salary-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [salaryTableRowClass]=\"salaryTableRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [daysColumnClass]=\"daysColumnClass()\"\n [daysHeaderClass]=\"daysHeaderClass()\"\n [amountColumnClass]=\"salaryAmountColumnClass()\"\n [tablePrimaryLabelClass]=\"tablePrimaryLabelClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [tableValueClass]=\"tableValueClass()\"\n [tableSecondaryValueClass]=\"tableSecondaryValueClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [viewDetailsLinkClass]=\"viewDetailsLinkClass()\"\n (viewActualBasicSalaryDetailsClick)=\"onViewActualBasicSalaryDetailsClick()\"\n ></payroll-payslip-salary-table>\n\n <payroll-payslip-allowances-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [allowancesRowClass]=\"allowancesRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [allowanceDaysClass]=\"allowanceDaysClass()\"\n [amountColumnClass]=\"allowanceAmountColumnClass()\"\n [allowanceAmountWrapperClass]=\"allowanceAmountWrapperClass()\"\n [allowanceAmountTextClass]=\"allowanceAmountTextClass()\"\n [infoIconClass]=\"infoIconClass()\"\n [tooltipContainerClass]=\"tooltipContainerClass()\"\n [tooltipTextClass]=\"tooltipTextClass()\"\n [tooltipCurrencyClass]=\"tooltipCurrencyClass()\"\n [tooltipAmountClass]=\"tooltipAmountClass()\"\n ></payroll-payslip-allowances-table>\n </div>\n\n @if (!useMobileChart()) {\n <div [class]=\"chartColumnClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n rootWrapperClass=\"sky-chart-item d-flex flex-row align-items-center justify-content-start g-3 w-100 m-0\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n </div>\n\n <payroll-payslip-deductions-table\n [employeeDetails]=\"employeeDetails()\"\n [dividerRowClass]=\"dividerRowClass()\"\n [dividerColumnClass]=\"dividerColumnClass()\"\n [deductionsSectionRowClass]=\"deductionsSectionRowClass()\"\n [deductionsSectionColumnClass]=\"deductionsSectionColumnClass()\"\n [deductionsInnerRowClass]=\"deductionsInnerRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [deductionDaysClass]=\"deductionDaysClass()\"\n [amountColumnClass]=\"amountColumnClass()\"\n [deductionAmountTextClass]=\"deductionAmountTextClass()\"\n ></payroll-payslip-deductions-table>\n</div>\n\n<payroll-actual-basic-details-popup\n [currencyCode]=\"employeeDetails().CurrencyCode\"\n [currencyDecimals]=\"employeeDetails().CurrencyDecimals\"\n [actualBasicSalaryDetails]=\"actualBasicSalaryDetails()\"\n [popupVisible]=\"popupVisible()\"\n [popupWidth]=\"popupWidth()\"\n [popupMaxHeight]=\"popupMaxHeight()\"\n [popupShadingColor]=\"popupShadingColor()\"\n [popupHeaderRowClass]=\"popupHeaderRowClass()\"\n [popupRowClass]=\"popupRowClass()\"\n (closePopupClickHandler)=\"onCloseActualBasicSalaryDetailsPopupHandler()\"\n></payroll-actual-basic-details-popup>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "component", type: SkyDoughnutChartComponent, selector: "sky-doughnut-chart", inputs: ["info", "rootWrapperClass", "chartColumnWrapperClass", "hasBorder", "chartItemPaddingClass", "chartFrameWrapperClass", "tooltipBadgeClass", "chartOverlayWrapperClass", "legendColumnWrapperClass", "legendListWrapperClass", "legendItemWrapperClass", "legendItemDotClass", "chartId", "chartType", "tooltipColor", "tooltipBorder", "tooltipShadow", "tooltipFormatType", "tooltipFormatPrecision", "seriesArgumentField", "seriesValueField", "seriesLabelVisible", "legendVisible", "seriesBorderVisible"] }, { kind: "component", type: ActualBasicDetailsPopupComponent, selector: "payroll-actual-basic-details-popup", inputs: ["popupVisible", "currencyCode", "currencyDecimals", "actualBasicSalaryDetails", "popupWidth", "popupMaxHeight", "popupShadingColor", "popupTitleKey", "popupHeaderRowClass", "popupRowClass"], outputs: ["closePopupClickHandler"] }, { kind: "component", type: PayslipSalaryTableComponent, selector: "payroll-payslip-salary-table", inputs: ["employeeDetails", "sectionClass", "salaryTableRowClass", "labelColumnClass", "daysColumnClass", "daysHeaderClass", "amountColumnClass", "tablePrimaryLabelClass", "tableLabelClass", "tableValueClass", "tableSecondaryValueClass", "currencyCodeClass", "viewDetailsLinkClass"], outputs: ["viewActualBasicSalaryDetailsClick"] }, { kind: "component", type: PayslipAllowancesTableComponent, selector: "payroll-payslip-allowances-table", inputs: ["employeeDetails", "sectionClass", "allowancesRowClass", "labelColumnClass", "totalsColumnClass", "sectionTitleClass", "tableLabelClass", "allowanceDaysClass", "amountColumnClass", "allowanceAmountWrapperClass", "allowanceAmountTextClass", "infoIconClass", "tooltipContainerClass", "tooltipTextClass", "tooltipCurrencyClass", "tooltipAmountClass"] }, { kind: "component", type: PayslipDeductionsTableComponent, selector: "payroll-payslip-deductions-table", inputs: ["employeeDetails", "dividerRowClass", "dividerColumnClass", "deductionsSectionRowClass", "deductionsSectionColumnClass", "deductionsInnerRowClass", "labelColumnClass", "sectionTitleClass", "totalsColumnClass", "tableLabelClass", "deductionDaysClass", "amountColumnClass", "deductionAmountTextClass"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
866
867
|
}
|
|
867
868
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipDetailsCardComponent, decorators: [{
|
|
868
869
|
type: Component,
|
|
@@ -875,7 +876,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
875
876
|
PayslipSalaryTableComponent,
|
|
876
877
|
PayslipAllowancesTableComponent,
|
|
877
878
|
PayslipDeductionsTableComponent,
|
|
878
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"cardContainerClass()\">\n <div [class]=\"contentRowClass()\">\n <div [class]=\"detailsColumnClass()\">\n <div [class]=\"titleRowClass()\">\n <fa-icon [icon]=\"salaryIcon\" [class]=\"salaryIconClass()\"></fa-icon>\n <h5 [class]=\"titleClass()\">\n {{ 'Salary' | PayrollTranslate }}\n <span [class]=\"titleMonthClass()\">({{ payMonthDate() | date: 'MMM yyyy' }})</span>\n </h5>\n </div>\n\n @if (useMobileChart()) {\n <div [class]=\"mobileChartWrapperClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n <payroll-payslip-salary-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [salaryTableRowClass]=\"salaryTableRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [daysColumnClass]=\"daysColumnClass()\"\n [daysHeaderClass]=\"daysHeaderClass()\"\n [amountColumnClass]=\"salaryAmountColumnClass()\"\n [tablePrimaryLabelClass]=\"tablePrimaryLabelClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [tableValueClass]=\"tableValueClass()\"\n [tableSecondaryValueClass]=\"tableSecondaryValueClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [viewDetailsLinkClass]=\"viewDetailsLinkClass()\"\n (viewActualBasicSalaryDetailsClick)=\"onViewActualBasicSalaryDetailsClick()\"\n ></payroll-payslip-salary-table>\n\n <payroll-payslip-allowances-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [allowancesRowClass]=\"allowancesRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [allowanceDaysClass]=\"allowanceDaysClass()\"\n [amountColumnClass]=\"allowanceAmountColumnClass()\"\n [allowanceAmountWrapperClass]=\"allowanceAmountWrapperClass()\"\n [allowanceAmountTextClass]=\"allowanceAmountTextClass()\"\n [infoIconClass]=\"infoIconClass()\"\n [tooltipContainerClass]=\"tooltipContainerClass()\"\n [tooltipTextClass]=\"tooltipTextClass()\"\n [tooltipCurrencyClass]=\"tooltipCurrencyClass()\"\n [tooltipAmountClass]=\"tooltipAmountClass()\"\n ></payroll-payslip-allowances-table>\n </div>\n\n @if (!useMobileChart()) {\n <div [class]=\"chartColumnClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n </div>\n\n <payroll-payslip-deductions-table\n [employeeDetails]=\"employeeDetails()\"\n [dividerRowClass]=\"dividerRowClass()\"\n [dividerColumnClass]=\"dividerColumnClass()\"\n [deductionsSectionRowClass]=\"deductionsSectionRowClass()\"\n [deductionsSectionColumnClass]=\"deductionsSectionColumnClass()\"\n [deductionsInnerRowClass]=\"deductionsInnerRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [deductionDaysClass]=\"deductionDaysClass()\"\n [amountColumnClass]=\"amountColumnClass()\"\n [deductionAmountTextClass]=\"deductionAmountTextClass()\"\n ></payroll-payslip-deductions-table>\n</div>\n\n<payroll-actual-basic-details-popup\n [currencyCode]=\"employeeDetails().CurrencyCode\"\n [currencyDecimals]=\"employeeDetails().CurrencyDecimals\"\n [actualBasicSalaryDetails]=\"actualBasicSalaryDetails()\"\n [popupVisible]=\"popupVisible()\"\n [popupWidth]=\"popupWidth()\"\n [popupMaxHeight]=\"popupMaxHeight()\"\n [popupShadingColor]=\"popupShadingColor()\"\n [popupHeaderRowClass]=\"popupHeaderRowClass()\"\n [popupRowClass]=\"popupRowClass()\"\n (closePopupClickHandler)=\"onCloseActualBasicSalaryDetailsPopupHandler()\"\n></payroll-actual-basic-details-popup>\n" }]
|
|
879
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"cardContainerClass()\">\n <div [class]=\"contentRowClass()\">\n <div [class]=\"detailsColumnClass()\">\n <div [class]=\"titleRowClass()\">\n <fa-icon [icon]=\"salaryIcon\" [class]=\"salaryIconClass()\"></fa-icon>\n <h5 [class]=\"titleClass()\">\n {{ 'Salary' | PayrollTranslate }}\n <span [class]=\"titleMonthClass()\">({{ payMonthDate() | date: 'MMM yyyy' }})</span>\n </h5>\n </div>\n\n @if (useMobileChart()) {\n <div [class]=\"mobileChartWrapperClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n rootWrapperClass=\"sky-chart-item d-flex flex-row align-items-center justify-content-start g-3 w-100 m-0\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n <payroll-payslip-salary-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [salaryTableRowClass]=\"salaryTableRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [daysColumnClass]=\"daysColumnClass()\"\n [daysHeaderClass]=\"daysHeaderClass()\"\n [amountColumnClass]=\"salaryAmountColumnClass()\"\n [tablePrimaryLabelClass]=\"tablePrimaryLabelClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [tableValueClass]=\"tableValueClass()\"\n [tableSecondaryValueClass]=\"tableSecondaryValueClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [viewDetailsLinkClass]=\"viewDetailsLinkClass()\"\n (viewActualBasicSalaryDetailsClick)=\"onViewActualBasicSalaryDetailsClick()\"\n ></payroll-payslip-salary-table>\n\n <payroll-payslip-allowances-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [allowancesRowClass]=\"allowancesRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [allowanceDaysClass]=\"allowanceDaysClass()\"\n [amountColumnClass]=\"allowanceAmountColumnClass()\"\n [allowanceAmountWrapperClass]=\"allowanceAmountWrapperClass()\"\n [allowanceAmountTextClass]=\"allowanceAmountTextClass()\"\n [infoIconClass]=\"infoIconClass()\"\n [tooltipContainerClass]=\"tooltipContainerClass()\"\n [tooltipTextClass]=\"tooltipTextClass()\"\n [tooltipCurrencyClass]=\"tooltipCurrencyClass()\"\n [tooltipAmountClass]=\"tooltipAmountClass()\"\n ></payroll-payslip-allowances-table>\n </div>\n\n @if (!useMobileChart()) {\n <div [class]=\"chartColumnClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n rootWrapperClass=\"sky-chart-item d-flex flex-row align-items-center justify-content-start g-3 w-100 m-0\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n </div>\n\n <payroll-payslip-deductions-table\n [employeeDetails]=\"employeeDetails()\"\n [dividerRowClass]=\"dividerRowClass()\"\n [dividerColumnClass]=\"dividerColumnClass()\"\n [deductionsSectionRowClass]=\"deductionsSectionRowClass()\"\n [deductionsSectionColumnClass]=\"deductionsSectionColumnClass()\"\n [deductionsInnerRowClass]=\"deductionsInnerRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [deductionDaysClass]=\"deductionDaysClass()\"\n [amountColumnClass]=\"amountColumnClass()\"\n [deductionAmountTextClass]=\"deductionAmountTextClass()\"\n ></payroll-payslip-deductions-table>\n</div>\n\n<payroll-actual-basic-details-popup\n [currencyCode]=\"employeeDetails().CurrencyCode\"\n [currencyDecimals]=\"employeeDetails().CurrencyDecimals\"\n [actualBasicSalaryDetails]=\"actualBasicSalaryDetails()\"\n [popupVisible]=\"popupVisible()\"\n [popupWidth]=\"popupWidth()\"\n [popupMaxHeight]=\"popupMaxHeight()\"\n [popupShadingColor]=\"popupShadingColor()\"\n [popupHeaderRowClass]=\"popupHeaderRowClass()\"\n [popupRowClass]=\"popupRowClass()\"\n (closePopupClickHandler)=\"onCloseActualBasicSalaryDetailsPopupHandler()\"\n></payroll-actual-basic-details-popup>\n" }]
|
|
879
880
|
}], propDecorators: { employeeDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "employeeDetails", required: true }] }], payMonthDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "payMonthDate", required: false }] }], pieDataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "pieDataSource", required: false }] }], actualBasicSalaryDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "actualBasicSalaryDetails", required: false }] }], cardContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardContainerClass", required: false }] }], contentRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentRowClass", required: false }] }], detailsColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "detailsColumnClass", required: false }] }], chartColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "chartColumnClass", required: false }] }], isMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMobile", required: false }] }], titleRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleRowClass", required: false }] }], salaryIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "salaryIconClass", required: false }] }], titleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleClass", required: false }] }], titleMonthClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleMonthClass", required: false }] }], sectionClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionClass", required: false }] }], sectionTitleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionTitleClass", required: false }] }], tableLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableLabelClass", required: false }] }], tablePrimaryLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tablePrimaryLabelClass", required: false }] }], tableValueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableValueClass", required: false }] }], tableSecondaryValueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableSecondaryValueClass", required: false }] }], currencyCodeClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyCodeClass", required: false }] }], infoIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "infoIconClass", required: false }] }], popupWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupWidth", required: false }] }], popupMaxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupMaxHeight", required: false }] }], popupShadingColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupShadingColor", required: false }] }], popupHeaderRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeaderRowClass", required: false }] }], popupRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupRowClass", required: false }] }], mobileChartWrapperClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileChartWrapperClass", required: false }] }], negativePaletteColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "negativePaletteColors", required: false }] }], positivePaletteColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "positivePaletteColors", required: false }] }], salaryTableRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "salaryTableRowClass", required: false }] }], labelColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelColumnClass", required: false }] }], daysColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "daysColumnClass", required: false }] }], daysHeaderClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "daysHeaderClass", required: false }] }], amountColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "amountColumnClass", required: false }] }], salaryAmountColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "salaryAmountColumnClass", required: false }] }], allowanceAmountColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowanceAmountColumnClass", required: false }] }], totalsColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalsColumnClass", required: false }] }], viewDetailsLinkClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewDetailsLinkClass", required: false }] }], allowancesRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowancesRowClass", required: false }] }], allowanceDaysClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowanceDaysClass", required: false }] }], allowanceAmountWrapperClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowanceAmountWrapperClass", required: false }] }], allowanceAmountTextClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowanceAmountTextClass", required: false }] }], tooltipContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipContainerClass", required: false }] }], tooltipTextClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTextClass", required: false }] }], tooltipCurrencyClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipCurrencyClass", required: false }] }], tooltipAmountClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipAmountClass", required: false }] }], dividerRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "dividerRowClass", required: false }] }], dividerColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "dividerColumnClass", required: false }] }], deductionsSectionRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "deductionsSectionRowClass", required: false }] }], deductionsSectionColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "deductionsSectionColumnClass", required: false }] }], deductionsInnerRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "deductionsInnerRowClass", required: false }] }], deductionDaysClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "deductionDaysClass", required: false }] }], deductionAmountTextClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "deductionAmountTextClass", required: false }] }] } });
|
|
880
881
|
|
|
881
882
|
class EmptyPayslipCardComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"osama_amireh-bayan-payroll-widgets-ui.mjs","sources":["../../../projects/payroll-ui/src/lib/shared/services/translate.service.ts","../../../projects/payroll-ui/src/lib/shared/pipes/translate.pipe.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/Components/loan-card/loan-card.component.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/Components/loan-card/loan-card.component.html","../../../projects/payroll-ui/src/lib/my-loans-popup/Components/loan-pagination/loan-pagination.component.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/Components/loan-pagination/loan-pagination.component.html","../../../projects/payroll-ui/src/lib/shared/common/common-methods.ts","../../../projects/payroll-ui/src/lib/services/payroll/self-widgets.service.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/my-loans-popup.component.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/my-loans-popup.component.html","../../../projects/payroll-ui/src/lib/payslip/components/actual-basic-details-popup/actual-basic-details-popup.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/actual-basic-details-popup/actual-basic-details-popup.component.html","../../../projects/payroll-ui/src/lib/payslip/components/payslip-salary-table/payslip-salary-table.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/payslip-salary-table/payslip-salary-table.component.html","../../../projects/payroll-ui/src/lib/payslip/components/payslip-allowances-table/payslip-allowances-table.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/payslip-allowances-table/payslip-allowances-table.component.html","../../../projects/payroll-ui/src/lib/payslip/components/payslip-deductions-table/payslip-deductions-table.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/payslip-deductions-table/payslip-deductions-table.component.html","../../../projects/payroll-ui/src/lib/payslip/components/payslip-details-card/payslip-details-card.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/payslip-details-card/payslip-details-card.component.html","../../../projects/payroll-ui/src/lib/payslip/components/empty-payslip-card/empty-payslip-card.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/empty-payslip-card/empty-payslip-card.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-widget/my-payslip-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-widget/my-payslip-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-job-info-widget/my-payslip-job-info-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-job-info-widget/my-payslip-job-info-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-indemnity-widget/my-payslip-indemnity-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-indemnity-widget/my-payslip-indemnity-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/components/salary-transfer-popup/salary-transfer-popup.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/salary-transfer-popup/salary-transfer-popup.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-bank-info-widget/my-payslip-bank-info-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-bank-info-widget/my-payslip-bank-info-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-vacation-balance-widget/my-payslip-vacation-balance-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-vacation-balance-widget/my-payslip-vacation-balance-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-ticket-balance-widget/my-payslip-ticket-balance-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-ticket-balance-widget/my-payslip-ticket-balance-widget.component.html","../../../projects/payroll-ui/src/public-api.ts","../../../projects/payroll-ui/src/osama_amireh-bayan-payroll-widgets-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport en from '../../../assets/i18n/en.json';\nimport ar from '../../../assets/i18n/ar.json';\nimport fr from '../../../assets/i18n/fr.json';\n\nconst BUILT_IN_LEXICONS: Record<string, Record<string, string>> = { en, ar, fr };\n\n@Injectable({ providedIn: 'root' })\nexport class PayrollTranslateService {\n private currentLanguage: string = 'en';\n private lexicon: Record<string, string> = {};\n\n setLanguage(language: string): void {\n this.currentLanguage = language;\n }\n\n getLanguage(): string {\n return this.currentLanguage;\n }\n\n setLexicon(lexicon: Record<string, string>): void {\n this.lexicon = lexicon;\n }\n\n getLexicon(): Record<string, string> {\n return this.lexicon;\n }\n\n translateBuiltIn(key: string): string {\n if (!key) return '';\n const builtIn = BUILT_IN_LEXICONS[this.currentLanguage] || {};\n const foundKey = Object.keys(builtIn).find(k => k.toLowerCase() === key.toLowerCase());\n return foundKey ? builtIn[foundKey] : key;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PayrollTranslateService } from '../services/translate.service';\n\n@Pipe({\n name: 'PayrollTranslate',\n standalone: true,\n})\nexport class PayrollTranslatePipe implements PipeTransform {\n constructor(private readonly payrollTranslateService: PayrollTranslateService) {}\n\n transform(key?: string): string {\n if (!key) return '';\n\n key = this.payrollTranslateService.translateBuiltIn(key);\n\n const lexicon = this.payrollTranslateService.getLexicon();\n let foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === key!.toLowerCase());\n if (foundKey) return lexicon[foundKey];\n\n const arrKey = key.split(' ');\n let keyValue = '';\n for (let i = 0; i < arrKey.length; i++) {\n if (i !== 0) keyValue += ' ';\n foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === arrKey[i].toLowerCase());\n if (foundKey) {\n keyValue += lexicon[foundKey];\n } else {\n keyValue += arrKey[i];\n }\n }\n\n return keyValue;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { EmployeeLoanDetail } from '../../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-loan-card',\n standalone: true,\n imports: [CommonModule, PayrollTranslatePipe],\n templateUrl: './loan-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoanCardComponent {\n readonly loan = input.required<EmployeeLoanDetail>();\n readonly currencyCode = input('');\n readonly cardContainerClass = input('p-3 card-shadow h-100 border border-1 rounded-2');\n readonly installRangeLabelClass = input('field-secondary-label-sm');\n readonly lineClass = input('fs-12 mb-2');\n readonly amountLabelClass = input('field-secondary-label-sm');\n readonly currencyCodeClass = input('text-secondary fs-10');\n readonly amountValueClass = input('text-dark-gray mx-1 fs-14');\n readonly totalPaidClass = input('text-success fs-12');\n readonly remainingInstallmentClass = input('field-secondary-label-sm');\n readonly loanTitleClass = input('text-dark fs-20 mb-2');\n\n readonly formatAmount = input<(value: number) => string>((value: number) => value.toString());\n readonly remainingInstallmentsText = input<(count: number) => string>((count: number) => count.toString());\n}\n","<div [class]=\"cardContainerClass()\">\n <p [class]=\"loanTitleClass()\">{{ loan().LoanTypeName }}</p>\n\n <p [class]=\"lineClass()\">\n <span [class]=\"installRangeLabelClass()\">{{ 'InstallmentStartEndDate' | PayrollTranslate }}:</span>\n <span class=\"text-dark-gray mx-1 fs-14\">{{ loan().FirstInstallmentMonth }} - {{ loan().LastInstallmentMonth }}</span>\n </p>\n\n <p [class]=\"lineClass()\">\n <span [class]=\"amountLabelClass()\">{{ 'TotalAmount' | PayrollTranslate }}</span>\n <span [class]=\"currencyCodeClass()\">({{ currencyCode() }}):</span>\n <span [class]=\"amountValueClass()\">{{ formatAmount()(loan().LoanAmount) }}</span>\n </p>\n\n <p [class]=\"lineClass()\">\n <span [class]=\"amountLabelClass()\">{{ 'InstallmentAmount' | PayrollTranslate }}</span>\n <span [class]=\"currencyCodeClass()\">({{ currencyCode() }}):</span>\n <span [class]=\"amountValueClass()\">{{ formatAmount()(loan().InstallmentAmount) }}</span>\n <span [class]=\"totalPaidClass()\">({{ 'TotalPaid' | PayrollTranslate }}: {{ formatAmount()(loan().PaidAmount) }})</span>\n </p>\n\n <p [class]=\"lineClass()\">\n <span [class]=\"amountLabelClass()\">{{ 'RemainingAmount' | PayrollTranslate }}</span>\n <span [class]=\"currencyCodeClass()\">({{ currencyCode() }}):</span>\n <span [class]=\"amountValueClass()\">{{ formatAmount()(loan().RemainingAmount) }}</span>\n <span [class]=\"remainingInstallmentClass()\">({{ remainingInstallmentsText()(loan().RemainingInstallmentsCount) }})</span>\n </p>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\n\n@Component({\n selector: 'payroll-loan-pagination',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loan-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoanPaginationComponent {\n readonly totalPages = input(0);\n readonly currentPage = input(0);\n readonly navContainerClass = input('d-flex justify-content-center mt-3');\n readonly navListClass = input('pagination mb-1');\n readonly pageItemClass = input('page-item page-number mx-3');\n readonly arrowItemClass = input('page-item arrow');\n readonly pageLinkClass = input('page-link rounded-circle');\n readonly arrowActiveClass = input('text-primary');\n\n readonly previousClicked = output<void>();\n readonly nextClicked = output<void>();\n readonly pageClicked = output<number>();\n\n blurButton(event: MouseEvent) {\n (event.target as HTMLElement).closest('button')?.blur();\n }\n\n onPreviousClick(event: MouseEvent) {\n this.blurButton(event);\n this.previousClicked.emit();\n }\n\n onNextClick(event: MouseEvent) {\n this.blurButton(event);\n this.nextClicked.emit();\n }\n\n onPageClick(page: number, event: MouseEvent) {\n this.blurButton(event);\n this.pageClicked.emit(page);\n }\n\n readonly pages = computed((): number[] => {\n const half = Math.floor(5 / 2);\n let start = Math.max(0, this.currentPage() - half);\n let end = start + 4;\n\n if (end >= this.totalPages()) {\n end = this.totalPages() - 1;\n start = Math.max(0, end - 4);\n }\n\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n });\n}\n","@if (totalPages() > 1) {\n <div [class]=\"navContainerClass()\">\n <nav aria-label=\"Loan pagination\">\n <ul [class]=\"navListClass()\">\n <li [class]=\"arrowItemClass()\">\n <button\n type=\"button\"\n [ngClass]=\"[pageLinkClass(), currentPage() === 0 ? 'disabled' : arrowActiveClass()]\"\n [disabled]=\"currentPage() === 0\"\n (click)=\"onPreviousClick($event)\"\n >\n <span aria-hidden=\"true\" class=\"text-center\"><</span>\n </button>\n </li>\n\n @for (page of pages(); track page) {\n <li [class]=\"pageItemClass()\" [class.active]=\"currentPage() === page\">\n <button type=\"button\" [class]=\"pageLinkClass()\" (click)=\"onPageClick(page, $event)\">{{ page + 1 }}</button>\n </li>\n }\n\n <li [class]=\"arrowItemClass()\">\n <button\n type=\"button\"\n [ngClass]=\"[pageLinkClass(), currentPage() === totalPages() - 1 ? 'disabled' : arrowActiveClass()]\"\n [disabled]=\"currentPage() === totalPages() - 1\"\n (click)=\"onNextClick($event)\"\n >\n <span aria-hidden=\"true\" class=\"text-center\">></span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n}\n","import { DecimalPipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { PayrollTranslateService } from '../services/translate.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommonMethods {\n constructor(private readonly translateService: PayrollTranslateService) {}\n\n currencyDecimalFormat(value: number, currencyDecimalsNumber: number): string | null {\n const currencyDecimalsString = `1.${currencyDecimalsNumber}-${currencyDecimalsNumber}`;\n const languageCode = this.translateService.getLanguage();\n const decimalPipe = new DecimalPipe(languageCode === 'fr' ? 'fr-FR' : 'en-US');\n\n if (languageCode === 'fr') {\n return decimalPipe.transform(value, currencyDecimalsString, 'fr-FR');\n }\n\n return decimalPipe.transform(value, currencyDecimalsString);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport {\n PayrollResponseEnvelope,\n PayslipBankTransferDTO,\n PayslipIndemnityDTO,\n PayslipJobInfoDTO,\n PayslipTicketBalanceDTO,\n PayslipVacationBalanceDTO,\n} from '../../shared/types/payroll';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PayrollSelfWidgetsService {\n constructor(private http: HttpClient) {}\n private readonly headers = { 'api-version': '1' };\n\n getLoans(baseUrl: string): Observable<any> {\n return this.http.get<any>(`${baseUrl}/payroll/widgets/me/loans`, {\n headers: this.headers,\n });\n }\n\n getPayslipJobInfo(baseUrl: string, payMonth: string): Observable<PayrollResponseEnvelope<PayslipJobInfoDTO>> {\n return this.http.get<PayrollResponseEnvelope<PayslipJobInfoDTO>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/job-information`,\n {\n headers: this.headers,\n },\n );\n }\n\n getPayslipBankInformation(\n baseUrl: string,\n payMonth: string,\n ): Observable<PayrollResponseEnvelope<PayslipBankTransferDTO[]>> {\n return this.http.get<PayrollResponseEnvelope<PayslipBankTransferDTO[]>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/bank-transfers`,\n {\n headers: this.headers,\n },\n );\n }\n\n getPayslipVacationBalances(\n baseUrl: string,\n payMonth: string,\n ): Observable<PayrollResponseEnvelope<PayslipVacationBalanceDTO[]>> {\n return this.http.get<PayrollResponseEnvelope<PayslipVacationBalanceDTO[]>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/vacation-balances`,\n {\n headers: this.headers,\n },\n );\n }\n\n getPayslipTicketBalances(\n baseUrl: string,\n payMonth: string,\n ): Observable<PayrollResponseEnvelope<PayslipTicketBalanceDTO[]>> {\n return this.http.get<PayrollResponseEnvelope<PayslipTicketBalanceDTO[]>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/ticket-balances`,\n {\n headers: this.headers,\n },\n );\n }\n\n getPayslipIndemnity(baseUrl: string, payMonth: string): Observable<PayrollResponseEnvelope<PayslipIndemnityDTO>> {\n return this.http.get<PayrollResponseEnvelope<PayslipIndemnityDTO>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/indemnity`,\n {\n headers: this.headers,\n },\n );\n }\n getPayslipDetails(baseUrl: string, payMonth: string): Observable<any> {\n return this.http.get<any>(`${baseUrl}/payroll/widgets/me/payslip/${payMonth}`, {\n headers: this.headers,\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { DxPopupModule } from 'devextreme-angular';\nimport { finalize } from 'rxjs';\nimport { LoanCardComponent } from './Components/loan-card/loan-card.component';\nimport { LoanPaginationComponent } from './Components/loan-pagination/loan-pagination.component';\nimport { PayrollTranslatePipe } from '../shared/pipes/translate.pipe';\nimport { EmployeeLoanDetail } from '../shared/types/payroll';\nimport { CommonMethods } from '../shared/common/common-methods';\nimport { PayrollSelfWidgetsService } from '../services/payroll/self-widgets.service';\n\n@Component({\n selector: 'payroll-my-loans-popup',\n standalone: true,\n imports: [CommonModule, DxPopupModule, PayrollTranslatePipe, LoanCardComponent, LoanPaginationComponent],\n templateUrl: './my-loans-popup.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyLoansPopupWidgetComponent {\n readonly popupVisible = input(false);\n\n readonly internalPopupVisible = signal(false);\n readonly loanDetails = signal<EmployeeLoanDetail[]>([]);\n readonly baseUrl = input('');\n readonly currencyCode = input('');\n readonly currencyDecimals = input(2);\n\n readonly popupWidth = input<number | string>(580);\n readonly popupHeight = input<number | string>('auto');\n readonly popupTitleKey = input('Loans');\n readonly popupDragEnabled = input(false);\n readonly popupShadingColor = input('rgba(0,0,0,0.4)');\n readonly contentContainerClass = input('mx-4 mt-2');\n readonly noPaginationContainerClass = input('mb-2');\n\n // Loan Card Classes\n readonly cardContainerClass = input('p-3 card-shadow h-100 border border-1 rounded-2');\n readonly loanTitleClass = input('text-dark fs-20 mb-2');\n readonly installRangeLabelClass = input('field-secondary-label-sm');\n readonly lineClass = input('fs-12 mb-2');\n readonly amountLabelClass = input('field-secondary-label-sm');\n readonly currencyCodeClass = input('text-secondary fs-10');\n readonly amountValueClass = input('text-dark-gray mx-1 fs-14');\n readonly totalPaidClass = input('text-success fs-12');\n readonly remainingInstallmentClass = input('field-secondary-label-sm');\n\n // Loan Pagination Classes\n readonly navContainerClass = input('d-flex justify-content-center mt-3');\n readonly navListClass = input('pagination mb-1');\n readonly pageItemClass = input('page-item page-number mx-3');\n readonly arrowItemClass = input('page-item arrow');\n readonly pageLinkClass = input('page-link rounded-circle');\n\n readonly popupVisibleChange = output<boolean>();\n readonly closePopupClickHandler = output<void>();\n readonly isLoadingChanged = output<boolean>();\n\n readonly currentPage = signal(0);\n pageSize = 1;\n private hasLoadedLoans = false;\n private isLoading = false;\n private pendingOpen = false;\n\n readonly employeeLoans = computed(() => {\n const startIndex = this.currentPage() * this.pageSize;\n return this.loanDetails().slice(startIndex, startIndex + this.pageSize);\n });\n\n private readonly translateService = inject(PayrollTranslatePipe);\n private readonly commonMethods = inject(CommonMethods);\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n const visible = this.popupVisible();\n\n if (!visible) {\n this.pendingOpen = false;\n this.internalPopupVisible.set(false);\n return;\n }\n\n this.requestOpenPopup();\n });\n }\n\n onPopupClose(): void {\n this.pendingOpen = false;\n this.internalPopupVisible.set(false);\n this.popupVisibleChange.emit(false);\n this.closePopupClickHandler.emit();\n this.currentPage.set(0);\n }\n\n private requestOpenPopup(): void {\n this.pendingOpen = true;\n\n if (this.loanDetails().length > 0 || this.hasLoadedLoans) {\n this.internalPopupVisible.set(true);\n return;\n }\n\n if (this.isLoading || !this.baseUrl()) {\n return;\n }\n\n this.isLoading = true;\n this.isLoadingChanged.emit(true);\n this.payrollWidgetsService\n .getLoans(this.baseUrl())\n .pipe(\n finalize(() => {\n this.isLoading = false;\n this.isLoadingChanged.emit(false);\n\n if (this.pendingOpen && this.hasLoadedLoans) {\n this.internalPopupVisible.set(true);\n }\n }),\n )\n .subscribe({\n next: (response: any) => {\n this.loanDetails.set(response.ResponseData ?? []);\n this.hasLoadedLoans = true;\n },\n error: () => {\n this.pendingOpen = false;\n this.loanDetails.set([]);\n },\n });\n }\n\n goToPage(pageIndex: number): void {\n if (pageIndex >= 0 && pageIndex < this.loanDetails().length) {\n this.currentPage.set(pageIndex);\n }\n }\n\n goToPreviousPage(): void {\n if (this.currentPage() > 0) {\n this.currentPage.update(value => value - 1);\n }\n }\n\n goToNextPage(): void {\n if (this.currentPage() < this.loanDetails().length - 1) {\n this.currentPage.update(value => value + 1);\n }\n }\n\n currencyFormat(value: number): string {\n return this.commonMethods.currencyDecimalFormat(value, this.currencyDecimals()) ?? '0';\n }\n\n getRemainingInstallment(installmentValue: number): string {\n const translated = this.translateService.transform('Installments{{value}}');\n return translated.replace('{{value}}', `${String(installmentValue)}`);\n }\n}\n","<dx-popup\n id=\"employeeLoanPopup\"\n [visible]=\"internalPopupVisible()\"\n (visibleChange)=\"internalPopupVisible.set($event)\"\n [width]=\"popupWidth()\"\n [height]=\"popupHeight()\"\n [showCloseButton]=\"true\"\n [showTitle]=\"true\"\n [shadingColor]=\"popupShadingColor()\"\n [dragEnabled]=\"popupDragEnabled()\"\n [title]=\"popupTitleKey() | PayrollTranslate\"\n (onHiding)=\"onPopupClose()\"\n>\n <div [ngClass]=\"[contentContainerClass(), loanDetails().length <= 1 ? noPaginationContainerClass() : '']\">\n @for (loan of employeeLoans(); track $index) {\n <payroll-loan-card\n [loan]=\"loan\"\n [currencyCode]=\"currencyCode()\"\n [cardContainerClass]=\"cardContainerClass()\"\n [loanTitleClass]=\"loanTitleClass()\"\n [installRangeLabelClass]=\"installRangeLabelClass()\"\n [lineClass]=\"lineClass()\"\n [amountLabelClass]=\"amountLabelClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [amountValueClass]=\"amountValueClass()\"\n [totalPaidClass]=\"totalPaidClass()\"\n [remainingInstallmentClass]=\"remainingInstallmentClass()\"\n [formatAmount]=\"currencyFormat.bind(this)\"\n [remainingInstallmentsText]=\"getRemainingInstallment.bind(this)\"\n ></payroll-loan-card>\n }\n </div>\n\n <payroll-loan-pagination\n [totalPages]=\"loanDetails().length\"\n [currentPage]=\"currentPage()\"\n [navContainerClass]=\"navContainerClass()\"\n [navListClass]=\"navListClass()\"\n [pageItemClass]=\"pageItemClass()\"\n [arrowItemClass]=\"arrowItemClass()\"\n [pageLinkClass]=\"pageLinkClass()\"\n (previousClicked)=\"goToPreviousPage()\"\n (nextClicked)=\"goToNextPage()\"\n (pageClicked)=\"goToPage($event)\"\n ></payroll-loan-pagination>\n</dx-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, output, signal, ViewChild } from '@angular/core';\nimport { DxPopupModule, DxScrollViewComponent, DxScrollViewModule } from 'devextreme-angular';\nimport { ActualBasicSalaryDetails } from '../../../shared/types/payroll';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\n\n@Component({\n selector: 'payroll-actual-basic-details-popup',\n standalone: true,\n imports: [CommonModule, DxPopupModule, DxScrollViewModule, PayrollTranslatePipe],\n templateUrl: './actual-basic-details-popup.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ActualBasicDetailsPopupComponent {\n readonly popupVisible = input(false);\n readonly currencyCode = input('');\n readonly currencyDecimals = input(0);\n readonly actualBasicSalaryDetails = input<ActualBasicSalaryDetails[]>([]);\n readonly popupWidth = input<number | string>(600);\n readonly popupMaxHeight = input<number | string>(400);\n readonly popupShadingColor = input('rgba(0,0,0,0.4)');\n readonly popupTitleKey = input('ActualBasicDetails');\n readonly popupHeaderRowClass = input('row mb-3 table-cell-sm');\n readonly popupRowClass = input('row mb-3 table-cell-md');\n\n readonly closePopupClickHandler = output<void>();\n\n readonly popupVisibleState = signal(false);\n\n @ViewChild(DxScrollViewComponent, { static: false })\n scrollView?: DxScrollViewComponent;\n\n public readonly commonMethods = inject(CommonMethods);\n\n constructor() {\n effect(() => {\n this.popupVisibleState.set(this.popupVisible());\n });\n }\n\n onPopupClose(): void {\n this.scrollView?.instance.scrollTo(0);\n this.closePopupClickHandler.emit();\n }\n}\n","<dx-popup\n [visible]=\"popupVisibleState()\"\n (visibleChange)=\"popupVisibleState.set($event)\"\n [height]=\"'auto'\"\n [maxHeight]=\"popupMaxHeight()\"\n [width]=\"popupWidth()\"\n [shadingColor]=\"popupShadingColor()\"\n contentTemplate=\"popup-content\"\n [showCloseButton]=\"true\"\n [title]=\"popupTitleKey() | PayrollTranslate\"\n (onHiding)=\"onPopupClose()\"\n>\n <div *dxTemplate=\"let data of 'popup-content'\">\n <dx-scroll-view\n #actualBasicDetailsScrollView\n id=\"actualBasicDetailsScrollView\"\n [scrollByContent]=\"true\"\n [scrollByThumb]=\"true\"\n [showScrollbar]=\"'onScroll'\"\n [bounceEnabled]=\"false\"\n >\n <div [class]=\"popupHeaderRowClass()\">\n <div class=\"col-5\">{{ 'Attendance' | PayrollTranslate }}</div>\n <div class=\"col-3\">{{ 'Days' | PayrollTranslate }}</div>\n <div class=\"col-4\">\n {{ 'Amount' | PayrollTranslate }}\n <span class=\"fs-10\">({{ currencyCode() }})</span>\n </div>\n </div>\n\n @for (basicSalaryDetails of actualBasicSalaryDetails(); track $index) {\n <div [class]=\"popupRowClass()\">\n <div class=\"col-5\">{{ basicSalaryDetails.Attendance }}</div>\n <div class=\"col-3\">{{ basicSalaryDetails.AllowanceDays }}</div>\n <div class=\"col-4\">\n {{ commonMethods.currencyDecimalFormat(basicSalaryDetails.Amount, currencyDecimals()) }}\n </div>\n </div>\n }\n </dx-scroll-view>\n </div>\n</dx-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { MainDetails } from '../../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-payslip-salary-table',\n standalone: true,\n imports: [CommonModule, PayrollTranslatePipe],\n templateUrl: './payslip-salary-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PayslipSalaryTableComponent {\n readonly employeeDetails = input.required<MainDetails>();\n\n readonly sectionClass = input('mb-4');\n readonly salaryTableRowClass = input('row');\n readonly labelColumnClass = input('col-5 text-start');\n readonly daysColumnClass = input('col-2 text-end fw-light mb-2');\n readonly daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md');\n readonly amountColumnClass = input('offset-1 col-4 text-start');\n readonly tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm');\n readonly currencyCodeClass = input('fs-10');\n readonly viewDetailsLinkClass = input('text-primary fw-normal ms-1');\n\n readonly viewActualBasicSalaryDetailsClick = output<void>();\n\n public readonly commonMethod = inject(CommonMethods);\n\n onViewActualBasicSalaryDetialsClick(): void {\n this.viewActualBasicSalaryDetailsClick.emit();\n }\n}\n","<div [class]=\"sectionClass()\">\n <div [class]=\"salaryTableRowClass()\">\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"tablePrimaryLabelClass()\">{{ 'Salary' | PayrollTranslate }}</div>\n <div [class]=\"tableLabelClass()\">{{ 'Basic' | PayrollTranslate }}</div>\n <div [class]=\"tableLabelClass()\">{{ 'ActualBasicSalary' | PayrollTranslate }}</div>\n <div [class]=\"tableLabelClass()\">{{ 'UnpaidVacations' | PayrollTranslate }}</div>\n </div>\n\n <div [class]=\"daysColumnClass()\">\n <div [class]=\"daysHeaderClass()\">{{ 'Days' | PayrollTranslate }}</div>\n <div [class]=\"tableSecondaryValueClass()\">{{ employeeDetails().TotalDays }}</div>\n <div [class]=\"tableSecondaryValueClass()\">{{ employeeDetails().PaidDays }}</div>\n <div [class]=\"tableSecondaryValueClass()\">{{ employeeDetails().UnpaidVacationDays }}</div>\n </div>\n\n <div [class]=\"amountColumnClass()\">\n <div [class]=\"tablePrimaryLabelClass()\">\n {{ 'Amount' | PayrollTranslate }}\n <span [class]=\"currencyCodeClass()\">({{ employeeDetails().CurrencyCode }})</span>\n </div>\n <div [class]=\"tableValueClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().BasicSalary, employeeDetails().CurrencyDecimals) }}\n </div>\n <div [class]=\"tableValueClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().ActualBasicSalary, employeeDetails().CurrencyDecimals) }}\n <a [class]=\"viewDetailsLinkClass()\" (click)=\"onViewActualBasicSalaryDetialsClick()\">\n {{ 'ViewDetails' | PayrollTranslate }}\n </a>\n </div>\n <div [class]=\"tableValueClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().UnpaidVacationDaysCost, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faCircleInfo } from '@fortawesome/pro-solid-svg-icons';\nimport { DxTooltipModule } from 'devextreme-angular';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { MainDetails } from '../../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-payslip-allowances-table',\n standalone: true,\n imports: [CommonModule, FontAwesomeModule, DxTooltipModule, PayrollTranslatePipe],\n templateUrl: './payslip-allowances-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PayslipAllowancesTableComponent {\n readonly employeeDetails = input.required<MainDetails>();\n\n readonly sectionClass = input('mb-4');\n readonly allowancesRowClass = input('row align-items-start');\n readonly labelColumnClass = input('col-5 text-start');\n readonly totalsColumnClass = input('offset-3 col-4 text-start');\n readonly sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly amountColumnClass = input('offset-1 col-3 text-start');\n readonly allowanceAmountWrapperClass = input(\n 'd-flex align-items-center justify-content-between fs-12 fw-medium mb-2 text-dark-gray',\n );\n readonly allowanceAmountTextClass = input('w-30 text-nowrap');\n readonly infoIconClass = input('light-info ms-1 cursor-pointer');\n readonly tooltipContainerClass = input('text-white rounded overflow-hidden');\n readonly tooltipTextClass = input('text-ellipsis-one-line fs-12');\n readonly tooltipCurrencyClass = input('fs-10');\n readonly tooltipAmountClass = input('fs-14 ms-1');\n\n readonly infoIcon = faCircleInfo;\n\n public readonly commonMethod = inject(CommonMethods);\n}\n","<div [class]=\"sectionClass()\">\n <div [class]=\"allowancesRowClass()\">\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"sectionTitleClass()\">{{ 'Allowances' | PayrollTranslate }}</div>\n </div>\n <div [class]=\"totalsColumnClass()\">\n <div [class]=\"sectionTitleClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().TotalCashAllowances, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n\n @for (allowance of employeeDetails().CashAllowances ?? []; track $index; let index = $index) {\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"tableLabelClass()\">{{ allowance.AllowanceName }}</div>\n </div>\n <div [class]=\"allowanceDaysClass()\">{{ allowance.AllowanceDays ?? '-' }}</div>\n <div [class]=\"amountColumnClass()\">\n <div [class]=\"allowanceAmountWrapperClass()\">\n <div [class]=\"allowanceAmountTextClass()\">\n {{ commonMethod.currencyDecimalFormat(allowance.TotalAmount, employeeDetails().CurrencyDecimals) }}\n </div>\n @if (allowance.TotalAmount !== allowance.OriginalAmount && allowance.OriginalAmount != null) {\n <fa-icon [icon]=\"infoIcon\" [class]=\"infoIconClass()\" [id]=\"'allowance-original-' + index\"></fa-icon>\n }\n </div>\n @if (allowance.TotalAmount !== allowance.OriginalAmount && allowance.OriginalAmount != null) {\n <dx-tooltip [target]=\"'#' + 'allowance-original-' + index\" [showEvent]=\"'mouseenter'\" [hideEvent]=\"'mouseleave'\" [width]=\"'auto'\">\n <div [class]=\"tooltipContainerClass()\">\n <div [class]=\"tooltipTextClass()\">\n {{ 'TotalAmount' | PayrollTranslate }}\n <span [class]=\"tooltipCurrencyClass()\">({{ employeeDetails().CurrencyCode }}):</span>\n <span [class]=\"tooltipAmountClass()\">\n {{ commonMethod.currencyDecimalFormat(allowance.OriginalAmount, employeeDetails().CurrencyDecimals) }}\n </span>\n </div>\n </div>\n </dx-tooltip>\n }\n </div>\n }\n\n @if (employeeDetails().TotalCashAllowances === 0 && employeeDetails().TotalDeductions === 0) {\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"sectionTitleClass()\">{{ 'Deductions' | PayrollTranslate }}</div>\n </div>\n <div [class]=\"totalsColumnClass()\">\n <div [class]=\"sectionTitleClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().TotalDeductions, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { MainDetails } from '../../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-payslip-deductions-table',\n standalone: true,\n imports: [CommonModule, PayrollTranslatePipe, SkySectionDividerComponent],\n templateUrl: './payslip-deductions-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PayslipDeductionsTableComponent {\n readonly employeeDetails = input.required<MainDetails>();\n\n readonly dividerRowClass = input('row');\n readonly dividerColumnClass = input('col-12');\n readonly deductionsSectionRowClass = input('row mt-4');\n readonly deductionsSectionColumnClass = input('col-xl-6 col-md-12');\n readonly deductionsInnerRowClass = input('row');\n readonly labelColumnClass = input('col-5 text-start');\n readonly sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary');\n readonly totalsColumnClass = input('offset-3 col-4 text-start');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly deductionDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly amountColumnClass = input('offset-1 col-4 text-start');\n readonly deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap');\n\n public readonly commonMethod = inject(CommonMethods);\n}\n","@if (employeeDetails().TotalCashAllowances > 0 || employeeDetails().TotalDeductions > 0) {\n <div [class]=\"dividerRowClass()\">\n <div [class]=\"dividerColumnClass()\">\n <sky-section-divider></sky-section-divider>\n </div>\n </div>\n\n <div [class]=\"deductionsSectionRowClass()\">\n <div [class]=\"deductionsSectionColumnClass()\">\n <div [class]=\"deductionsInnerRowClass()\">\n @if ((employeeDetails().Deductions ?? []).length > 0) {\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"sectionTitleClass()\">{{ 'Deductions' | PayrollTranslate }}</div>\n </div>\n <div [class]=\"totalsColumnClass()\">\n <div [class]=\"sectionTitleClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().TotalDeductions, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n\n @for (deduction of employeeDetails().Deductions ?? []; track $index) {\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"tableLabelClass()\">{{ deduction.DeductionName }}</div>\n </div>\n <div [class]=\"deductionDaysClass()\">{{ deduction.DeductionDays ?? '-' }}</div>\n <div [class]=\"amountColumnClass()\">\n <div [class]=\"deductionAmountTextClass()\">\n {{ commonMethod.currencyDecimalFormat(deduction.TotalAmount, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faCircleInfo } from '@fortawesome/pro-solid-svg-icons';\nimport { faMoneyCheckDollarPen } from '@fortawesome/pro-light-svg-icons';\nimport { DoughnutChartInfo, SkyDoughnutChartComponent, SkyScreenService } from '@skysoftware-co/sky-components-ui';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { ActualBasicSalaryDetails, MainDetails, PieChartItem } from '../../../shared/types/payroll';\nimport { ActualBasicDetailsPopupComponent } from '../actual-basic-details-popup/actual-basic-details-popup.component';\nimport { PayslipSalaryTableComponent } from '../payslip-salary-table/payslip-salary-table.component';\nimport { PayslipAllowancesTableComponent } from '../payslip-allowances-table/payslip-allowances-table.component';\nimport { PayslipDeductionsTableComponent } from '../payslip-deductions-table/payslip-deductions-table.component';\n\n@Component({\n selector: 'payroll-payslip-details-card',\n standalone: true,\n imports: [\n CommonModule,\n FontAwesomeModule,\n SkyDoughnutChartComponent,\n PayrollTranslatePipe,\n ActualBasicDetailsPopupComponent,\n PayslipSalaryTableComponent,\n PayslipAllowancesTableComponent,\n PayslipDeductionsTableComponent,\n ],\n templateUrl: './payslip-details-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PayslipDetailsCardComponent {\n readonly employeeDetails = input.required<MainDetails>();\n readonly payMonthDate = input<Date | null>(null);\n readonly pieDataSource = input<PieChartItem[]>([]);\n readonly actualBasicSalaryDetails = input<ActualBasicSalaryDetails[]>([]);\n\n readonly cardContainerClass = input('card shadow-sm border-0 rounded-3 p-4');\n readonly contentRowClass = input('row g-4');\n readonly detailsColumnClass = input('col-xl-6 col-md-12 order-2 order-xl-1');\n readonly chartColumnClass = input(\n 'col-xl-6 col-md-12 d-flex align-items-start justify-content-center justify-content-xl-end order-1 order-xl-2 m-0',\n );\n readonly isMobile = input(false);\n readonly titleRowClass = input('d-flex align-items-center mb-4');\n readonly salaryIconClass = input('text-primary fs-28 me-2');\n readonly titleClass = input('fw-medium fs-16 text-uppercase text-dark-gray');\n readonly titleMonthClass = input('fw-normal text-capitalize');\n readonly sectionClass = input('mb-4');\n readonly sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line');\n readonly tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm');\n readonly currencyCodeClass = input('fs-10');\n readonly infoIconClass = input('light-info ms-1 cursor-pointer');\n readonly popupWidth = input<number | string>(600);\n readonly popupMaxHeight = input<number | string>(400);\n readonly popupShadingColor = input('rgba(0,0,0,0.4)');\n readonly popupHeaderRowClass = input('row mb-3 table-cell-sm');\n readonly popupRowClass = input('row mb-3 table-cell-md');\n readonly mobileChartWrapperClass = input('d-flex align-items-start justify-content-start');\n readonly negativePaletteColors = input<string[]>(['#F78204', '#dee2e6']);\n readonly positivePaletteColors = input<string[]>(['#F78204', '#F7820480']);\n readonly salaryTableRowClass = input('row');\n readonly labelColumnClass = input('col-5 text-start');\n readonly daysColumnClass = input('col-2 text-end fw-light mb-2');\n readonly daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md');\n readonly amountColumnClass = input('offset-1 col-4 text-start');\n readonly salaryAmountColumnClass = input('offset-1 col-4 text-start');\n readonly allowanceAmountColumnClass = input('offset-1 col-3 text-start');\n readonly totalsColumnClass = input('offset-3 col-4 text-start');\n readonly viewDetailsLinkClass = input('text-primary fw-normal ms-1');\n readonly allowancesRowClass = input('row align-items-start');\n readonly allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly allowanceAmountWrapperClass = input('d-flex align-items-center fs-12 fw-medium mb-2 text-dark-gray');\n readonly allowanceAmountTextClass = input('w-30 text-nowrap');\n readonly tooltipContainerClass = input('text-white rounded overflow-hidden');\n readonly tooltipTextClass = input('text-ellipsis-one-line fs-12');\n readonly tooltipCurrencyClass = input('fs-10');\n readonly tooltipAmountClass = input('fs-14 ms-1');\n readonly dividerRowClass = input('row');\n readonly dividerColumnClass = input('col-12');\n readonly deductionsSectionRowClass = input('row mt-4');\n readonly deductionsSectionColumnClass = input('col-xl-6 col-md-12');\n readonly deductionsInnerRowClass = input('row');\n readonly deductionDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap');\n\n readonly salaryIcon = faMoneyCheckDollarPen;\n readonly infoIcon = faCircleInfo;\n readonly popupVisible = signal(false);\n\n readonly chartPaletteColors = computed(() =>\n this.employeeDetails().NetSalary < 0 ? this.negativePaletteColors() : this.positivePaletteColors(),\n );\n\n public readonly commonMethod = inject(CommonMethods);\n private readonly screen = inject(SkyScreenService);\n\n readonly doughnutChartInfo = computed<DoughnutChartInfo>(() => ({\n data: this.pieDataSource().map((item) => ({\n name: item.Text,\n value: item.Value,\n extra: { formattedValue: item.FormattedValue, valueColor: item.ValueColor },\n })),\n colors: this.chartPaletteColors(),\n innerRadius: 0.85,\n height: 200,\n }));\n\n readonly useMobileChart = computed(\n () =>\n this.isMobile() || this.screen.isXSmallScreen() || this.screen.isSmallScreen() || this.screen.isMediumScreen(),\n );\n\n onCloseActualBasicSalaryDetailsPopupHandler(): void {\n this.popupVisible.set(false);\n }\n\n onViewActualBasicSalaryDetailsClick(): void {\n this.popupVisible.set(true);\n }\n}\n","<div [class]=\"cardContainerClass()\">\n <div [class]=\"contentRowClass()\">\n <div [class]=\"detailsColumnClass()\">\n <div [class]=\"titleRowClass()\">\n <fa-icon [icon]=\"salaryIcon\" [class]=\"salaryIconClass()\"></fa-icon>\n <h5 [class]=\"titleClass()\">\n {{ 'Salary' | PayrollTranslate }}\n <span [class]=\"titleMonthClass()\">({{ payMonthDate() | date: 'MMM yyyy' }})</span>\n </h5>\n </div>\n\n @if (useMobileChart()) {\n <div [class]=\"mobileChartWrapperClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n <payroll-payslip-salary-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [salaryTableRowClass]=\"salaryTableRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [daysColumnClass]=\"daysColumnClass()\"\n [daysHeaderClass]=\"daysHeaderClass()\"\n [amountColumnClass]=\"salaryAmountColumnClass()\"\n [tablePrimaryLabelClass]=\"tablePrimaryLabelClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [tableValueClass]=\"tableValueClass()\"\n [tableSecondaryValueClass]=\"tableSecondaryValueClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [viewDetailsLinkClass]=\"viewDetailsLinkClass()\"\n (viewActualBasicSalaryDetailsClick)=\"onViewActualBasicSalaryDetailsClick()\"\n ></payroll-payslip-salary-table>\n\n <payroll-payslip-allowances-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [allowancesRowClass]=\"allowancesRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [allowanceDaysClass]=\"allowanceDaysClass()\"\n [amountColumnClass]=\"allowanceAmountColumnClass()\"\n [allowanceAmountWrapperClass]=\"allowanceAmountWrapperClass()\"\n [allowanceAmountTextClass]=\"allowanceAmountTextClass()\"\n [infoIconClass]=\"infoIconClass()\"\n [tooltipContainerClass]=\"tooltipContainerClass()\"\n [tooltipTextClass]=\"tooltipTextClass()\"\n [tooltipCurrencyClass]=\"tooltipCurrencyClass()\"\n [tooltipAmountClass]=\"tooltipAmountClass()\"\n ></payroll-payslip-allowances-table>\n </div>\n\n @if (!useMobileChart()) {\n <div [class]=\"chartColumnClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n </div>\n\n <payroll-payslip-deductions-table\n [employeeDetails]=\"employeeDetails()\"\n [dividerRowClass]=\"dividerRowClass()\"\n [dividerColumnClass]=\"dividerColumnClass()\"\n [deductionsSectionRowClass]=\"deductionsSectionRowClass()\"\n [deductionsSectionColumnClass]=\"deductionsSectionColumnClass()\"\n [deductionsInnerRowClass]=\"deductionsInnerRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [deductionDaysClass]=\"deductionDaysClass()\"\n [amountColumnClass]=\"amountColumnClass()\"\n [deductionAmountTextClass]=\"deductionAmountTextClass()\"\n ></payroll-payslip-deductions-table>\n</div>\n\n<payroll-actual-basic-details-popup\n [currencyCode]=\"employeeDetails().CurrencyCode\"\n [currencyDecimals]=\"employeeDetails().CurrencyDecimals\"\n [actualBasicSalaryDetails]=\"actualBasicSalaryDetails()\"\n [popupVisible]=\"popupVisible()\"\n [popupWidth]=\"popupWidth()\"\n [popupMaxHeight]=\"popupMaxHeight()\"\n [popupShadingColor]=\"popupShadingColor()\"\n [popupHeaderRowClass]=\"popupHeaderRowClass()\"\n [popupRowClass]=\"popupRowClass()\"\n (closePopupClickHandler)=\"onCloseActualBasicSalaryDetailsPopupHandler()\"\n></payroll-actual-basic-details-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faMoneyCheckDollarPen, IconDefinition } from '@fortawesome/pro-light-svg-icons';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\n\n@Component({\n selector: 'payroll-empty-payslip-card',\n standalone: true,\n imports: [CommonModule, FontAwesomeModule, PayrollTranslatePipe],\n templateUrl: './empty-payslip-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmptyPayslipCardComponent {\n readonly hidePayslip = input(false);\n readonly cardContainerClass = input('card border shadow-sm rounded-3');\n readonly cardBodyClass = input('card-body text-center py-5');\n readonly iconClass = input('fs-28 me-2 light-info mb-3');\n readonly messageClass = input('fs-20 fw-400 mb-2 text-dark');\n readonly helpTextClass = input('fs-16 fw-400 mb-0 text-dark');\n\n readonly accessDeniedMessage = input('YouAreNotAllowedToViewThePayslip');\n readonly noPayslipMessage = input('NoPayslipAvailableYet');\n readonly helpText = input('PleaseContactYourAdminForAnyHelp.');\n readonly accessDeniedIcon = input<IconDefinition>(faMoneyCheckDollarPen);\n}\n","<div [class]=\"cardContainerClass()\">\n <div [class]=\"cardBodyClass()\">\n <fa-icon [icon]=\"accessDeniedIcon()\" [class]=\"iconClass()\"></fa-icon>\n <p [class]=\"messageClass()\">{{ (hidePayslip() ? accessDeniedMessage() : noPayslipMessage()) | PayrollTranslate }}!</p>\n\n @if (hidePayslip()) {\n <p [class]=\"helpTextClass()\">{{ helpText() | PayrollTranslate }}</p>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { faMoneyCheckDollarPen, IconDefinition } from '@fortawesome/pro-light-svg-icons';\nimport { finalize } from 'rxjs';\nimport { CommonMethods } from '../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { ActualBasicSalaryDetails, MainDetails, PieChartItem } from '../../shared/types/payroll';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayslipDetailsCardComponent } from '../components/payslip-details-card/payslip-details-card.component';\nimport { EmptyPayslipCardComponent } from '../components/empty-payslip-card/empty-payslip-card.component';\n\n@Component({\n selector: 'payroll-my-payslip-widget',\n standalone: true,\n imports: [CommonModule, EmptyPayslipCardComponent, PayslipDetailsCardComponent],\n templateUrl: './my-payslip-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipWidgetComponent {\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n\n readonly cardContainerClass = input('card shadow-sm border-0 rounded-3 p-4');\n readonly contentRowClass = input('row g-4');\n readonly detailsColumnClass = input('col-xl-6 col-md-12 order-2 order-xl-1');\n readonly chartColumnClass = input(\n 'col-xl-6 col-md-12 d-flex align-items-start justify-content-center justify-content-xl-end order-1 order-xl-2 m-0',\n );\n readonly titleRowClass = input('d-flex align-items-center mb-4');\n readonly salaryIconClass = input('text-primary fs-28 me-2');\n readonly titleClass = input('fw-medium fs-16 text-uppercase text-dark-gray');\n readonly titleMonthClass = input('fw-normal text-capitalize');\n readonly sectionClass = input('mb-4');\n readonly sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line');\n readonly tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm');\n readonly currencyCodeClass = input('fs-10');\n readonly infoIconClass = input('light-info ms-1 cursor-pointer');\n readonly popupWidth = input<number | string>(600);\n readonly popupMaxHeight = input<number | string>(400);\n readonly popupShadingColor = input('rgba(0,0,0,0.4)');\n readonly popupHeaderRowClass = input('row mb-3 table-cell-sm');\n readonly popupRowClass = input('row mb-3 table-cell-md');\n readonly mobileChartWrapperClass = input('d-flex align-items-start justify-content-start');\n readonly salaryTableRowClass = input('row');\n readonly labelColumnClass = input('col-5 text-start');\n readonly daysColumnClass = input('col-2 text-end fw-light mb-2');\n readonly daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md');\n readonly amountColumnClass = input('offset-1 col-3 text-start');\n readonly totalsColumnClass = input('offset-3 col-4 text-start');\n readonly viewDetailsLinkClass = input('text-primary fw-normal ms-1');\n readonly allowancesRowClass = input('row align-items-start');\n readonly allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly allowanceAmountWrapperClass = input(\n 'd-flex align-items-center justify-content-between fs-12 fw-medium mb-2 text-dark-gray',\n );\n readonly allowanceAmountTextClass = input('w-30 text-nowrap');\n readonly tooltipContainerClass = input('text-white rounded overflow-hidden');\n readonly tooltipTextClass = input('text-ellipsis-one-line fs-12');\n readonly tooltipCurrencyClass = input('fs-10');\n readonly tooltipAmountClass = input('fs-14 ms-1');\n readonly dividerRowClass = input('row');\n readonly dividerColumnClass = input('col-12');\n readonly deductionsSectionRowClass = input('row mt-4');\n readonly deductionsSectionColumnClass = input('col-xl-6 col-md-12');\n readonly deductionsInnerRowClass = input('row');\n readonly deductionDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap');\n readonly emptyCardContainerClass = input('card border shadow-sm rounded-3');\n readonly emptyCardBodyClass = input('card-body text-center py-5');\n readonly emptyIconClass = input('fs-28 me-2 light-info mb-3');\n readonly emptyMessageClass = input('fs-20 fw-400 mb-2 text-dark');\n readonly emptyHelpTextClass = input('fs-16 fw-400 mb-0 text-dark');\n readonly isMobile = input(false);\n readonly hidePayslip = input(false);\n readonly isFirstMonth = input(false);\n readonly accessDeniedMessage = input('YouAreNotAllowedToViewThePayslip');\n readonly noPayslipMessage = input('NoPayslipAvailableYet');\n readonly helpText = input('PleaseContactYourAdminForAnyHelp.');\n readonly accessDeniedIcon = input<IconDefinition>(faMoneyCheckDollarPen);\n readonly isLoadingChanged = output<boolean>();\n readonly errorOccurred = output<string>();\n\n readonly salaryIcon = faMoneyCheckDollarPen;\n\n readonly employeeDetails = signal<MainDetails | null>(null);\n readonly actualBasicSalaryDetails = signal<ActualBasicSalaryDetails[]>([]);\n readonly pieDataSource = signal<PieChartItem[]>([]);\n readonly selectedPayMonth = signal<string | null>(null);\n readonly isLoading = signal(false);\n\n public readonly commonMethod = inject(CommonMethods);\n private readonly translatePipe = inject(PayrollTranslatePipe);\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n const baseUrl = this.baseUrl();\n const payMonth = this.payMonth();\n\n if (!baseUrl) {\n this.resetState();\n return;\n }\n\n if (!this.hidePayslip() && payMonth) {\n this.selectedPayMonth.set(payMonth);\n this.loadEmployeePayslip(payMonth);\n return;\n }\n\n this.resetDataOnly();\n });\n }\n\n readonly payMonthDate = computed<Date | null>(() => {\n const selectedPayMonth = this.selectedPayMonth();\n if (!selectedPayMonth) {\n return null;\n }\n\n const dashParts = selectedPayMonth.split('-');\n if (dashParts.length === 2) {\n const year = Number(dashParts[0]);\n const month = Number(dashParts[1]) - 1;\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n return new Date(year, month, 1);\n }\n }\n\n const slashParts = selectedPayMonth.split('/');\n if (slashParts.length !== 2) {\n return null;\n }\n\n const month = Number(slashParts[0]) - 1;\n const year = Number(slashParts[1]);\n if (Number.isNaN(month) || Number.isNaN(year)) {\n return null;\n }\n\n return new Date(year, month, 1);\n });\n\n private loadEmployeePayslip(payMonth: string, emitLoading = true): void {\n if (emitLoading) {\n this.setLoading(true);\n }\n\n this.payrollWidgetsService\n .getPayslipDetails(this.baseUrl(), payMonth)\n .pipe(\n finalize(() => {\n this.setLoading(false);\n }),\n )\n .subscribe({\n next: (response: { ResponseData?: MainDetails }) => {\n const payload = response?.ResponseData ?? null;\n this.employeeDetails.set(payload);\n\n if (this.hidePayslip() || !payload) {\n this.actualBasicSalaryDetails.set([]);\n this.pieDataSource.set([]);\n return;\n }\n\n this.actualBasicSalaryDetails.set(this.buildActualBasicSalaryDetails(payload));\n this.pieDataSource.set(this.buildPieDataSource(payload));\n },\n error: (error: any) => {\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n this.resetDataOnly();\n },\n });\n }\n\n private buildActualBasicSalaryDetails(employeeDetails: MainDetails): ActualBasicSalaryDetails[] {\n const details: ActualBasicSalaryDetails[] = [\n {\n Attendance: this.translatePipe.transform('WorkingDays'),\n AllowanceDays: employeeDetails.WorkingDays,\n Amount: employeeDetails.WorkingDaysCost,\n },\n ];\n\n for (const paidVacation of employeeDetails.PaidVacations ?? []) {\n details.push({\n Attendance: paidVacation.VacationTypeName,\n AllowanceDays: paidVacation.VacationDays,\n Amount: paidVacation.VacationDaysCost,\n });\n }\n\n return details;\n }\n\n private buildPieDataSource(employeeDetails: MainDetails): PieChartItem[] {\n const decimals = employeeDetails.CurrencyDecimals ?? 0;\n const netSalary = employeeDetails.NetSalary ?? 0;\n const netSalaryColor = netSalary < 0 ? 'var(--bs-danger)' : 'var(--bs-bg-dark-gray)';\n\n return [\n {\n Text: this.translatePipe.transform('NetSalary'),\n Value: netSalary < 0 ? 0 : netSalary,\n FormattedValue: this.commonMethod.currencyDecimalFormat(netSalary, decimals) ?? '',\n ValueColor: netSalaryColor,\n },\n {\n Text: this.translatePipe.transform('Deductions'),\n Value: employeeDetails.TotalDeductions ?? 0,\n FormattedValue: this.commonMethod.currencyDecimalFormat(employeeDetails.TotalDeductions ?? 0, decimals) ?? '',\n ValueColor: 'var(--bs-danger)',\n },\n ];\n }\n\n private resetState(): void {\n this.resetDataOnly();\n this.setLoading(false);\n }\n\n private resetDataOnly(): void {\n this.employeeDetails.set(null);\n this.actualBasicSalaryDetails.set([]);\n this.pieDataSource.set([]);\n this.selectedPayMonth.set(null);\n }\n\n private setLoading(isLoading: boolean): void {\n this.isLoading.set(isLoading);\n this.isLoadingChanged.emit(isLoading);\n }\n}\n","@if (employeeDetails(); as employeeDetailsData) {\n @if (!hidePayslip() && !isFirstMonth()) {\n <payroll-payslip-details-card\n [employeeDetails]=\"employeeDetailsData\"\n [payMonthDate]=\"payMonthDate()\"\n [pieDataSource]=\"pieDataSource()\"\n [actualBasicSalaryDetails]=\"actualBasicSalaryDetails()\"\n [cardContainerClass]=\"cardContainerClass()\"\n [contentRowClass]=\"contentRowClass()\"\n [detailsColumnClass]=\"detailsColumnClass()\"\n [chartColumnClass]=\"chartColumnClass()\"\n [titleRowClass]=\"titleRowClass()\"\n [salaryIconClass]=\"salaryIconClass()\"\n [titleClass]=\"titleClass()\"\n [titleMonthClass]=\"titleMonthClass()\"\n [sectionClass]=\"sectionClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [tablePrimaryLabelClass]=\"tablePrimaryLabelClass()\"\n [tableValueClass]=\"tableValueClass()\"\n [tableSecondaryValueClass]=\"tableSecondaryValueClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [infoIconClass]=\"infoIconClass()\"\n [popupWidth]=\"popupWidth()\"\n [popupMaxHeight]=\"popupMaxHeight()\"\n [popupShadingColor]=\"popupShadingColor()\"\n [popupHeaderRowClass]=\"popupHeaderRowClass()\"\n [popupRowClass]=\"popupRowClass()\"\n [mobileChartWrapperClass]=\"mobileChartWrapperClass()\"\n [salaryTableRowClass]=\"salaryTableRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [daysColumnClass]=\"daysColumnClass()\"\n [daysHeaderClass]=\"daysHeaderClass()\"\n [amountColumnClass]=\"amountColumnClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [viewDetailsLinkClass]=\"viewDetailsLinkClass()\"\n [allowancesRowClass]=\"allowancesRowClass()\"\n [allowanceDaysClass]=\"allowanceDaysClass()\"\n [allowanceAmountWrapperClass]=\"allowanceAmountWrapperClass()\"\n [allowanceAmountTextClass]=\"allowanceAmountTextClass()\"\n [tooltipContainerClass]=\"tooltipContainerClass()\"\n [tooltipTextClass]=\"tooltipTextClass()\"\n [tooltipCurrencyClass]=\"tooltipCurrencyClass()\"\n [tooltipAmountClass]=\"tooltipAmountClass()\"\n [dividerRowClass]=\"dividerRowClass()\"\n [dividerColumnClass]=\"dividerColumnClass()\"\n [deductionsSectionRowClass]=\"deductionsSectionRowClass()\"\n [deductionsSectionColumnClass]=\"deductionsSectionColumnClass()\"\n [deductionsInnerRowClass]=\"deductionsInnerRowClass()\"\n [deductionDaysClass]=\"deductionDaysClass()\"\n [deductionAmountTextClass]=\"deductionAmountTextClass()\"\n [isMobile]=\"isMobile()\"\n ></payroll-payslip-details-card>\n } @else {\n <payroll-empty-payslip-card\n [hidePayslip]=\"hidePayslip()\"\n [cardContainerClass]=\"emptyCardContainerClass()\"\n [cardBodyClass]=\"emptyCardBodyClass()\"\n [iconClass]=\"emptyIconClass()\"\n [messageClass]=\"emptyMessageClass()\"\n [helpTextClass]=\"emptyHelpTextClass()\"\n [accessDeniedIcon]=\"accessDeniedIcon()\"\n [accessDeniedMessage]=\"accessDeniedMessage()\"\n [noPayslipMessage]=\"noPayslipMessage()\"\n [helpText]=\"helpText()\"\n ></payroll-empty-payslip-card>\n }\n} @else {\n <payroll-empty-payslip-card\n [hidePayslip]=\"hidePayslip()\"\n [cardContainerClass]=\"emptyCardContainerClass()\"\n [cardBodyClass]=\"emptyCardBodyClass()\"\n [iconClass]=\"emptyIconClass()\"\n [messageClass]=\"emptyMessageClass()\"\n [helpTextClass]=\"emptyHelpTextClass()\"\n [accessDeniedIcon]=\"accessDeniedIcon()\"\n [accessDeniedMessage]=\"accessDeniedMessage()\"\n [noPayslipMessage]=\"noPayslipMessage()\"\n [helpText]=\"helpText()\"\n ></payroll-empty-payslip-card>\n}\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayslipJobInfoDTO } from '../../shared/types/payroll';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faCalendarAlt, faMedal, faSitemap, faUserTie, IconDefinition } from '@fortawesome/pro-light-svg-icons';\n\n@Component({\n selector: 'payroll-my-payslip-job-info-widget',\n standalone: true,\n imports: [CommonModule, PayrollTranslatePipe, FaIconComponent],\n templateUrl: './my-payslip-job-info-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipJobInfoWidgetComponent {\n readonly adminUnitIcon = input<IconDefinition>(faSitemap);\n readonly positionIcon = input<IconDefinition>(faUserTie);\n readonly gradeIcon = input<IconDefinition>(faMedal);\n readonly joiningDateIcon = input<IconDefinition>(faCalendarAlt);\n\n readonly titleClass = input('fw-medium mb-2 table-cell-md');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-center w-100');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n\n readonly title = input('JobInformation');\n\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n readonly isMobile = input(false);\n\n readonly isPayslipAvailable = input(true);\n readonly isLoadingChanged = output<boolean>();\n readonly errorOccurred = output<string>();\n\n readonly jobInfo = signal<PayslipJobInfoDTO | null>(null);\n\n readonly isLoading = signal(false);\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n private readonly datePipe = inject(DatePipe);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadJobInfo();\n }\n });\n }\n\n private loadJobInfo(): void {\n const payMonth = this.payMonth();\n if (!this.isPayslipAvailable() || !payMonth) {\n this.jobInfo.set(null);\n return;\n }\n\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService.getPayslipJobInfo(this.baseUrl(), payMonth).subscribe({\n next: res => {\n this.jobInfo.set(res?.ResponseData ?? null);\n this.isLoadingChanged.emit(false);\n this.isLoading.set(false);\n },\n error: (error: any) => {\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n this.isLoadingChanged.emit(false);\n this.isLoading.set(false);\n },\n });\n }\n\n private display(value: any): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return `${value}`;\n }\n\n private formatDate(date: string | null | undefined): string {\n if (this.isLoading() || !this.isPayslipAvailable() || !date) {\n return '-';\n }\n\n return this.datePipe.transform(date, 'dd/MM/yyyy') || '-';\n }\n readonly items = computed(() => {\n return [\n {\n label: 'AdminUnit',\n icon: this.adminUnitIcon(),\n value: this.display(this.jobInfo()?.AdminUnitName),\n },\n {\n label: 'Position',\n icon: this.positionIcon(),\n value: this.display(this.jobInfo()?.PositionName),\n },\n {\n label: 'Grade',\n icon: this.gradeIcon(),\n value: this.display(this.jobInfo()?.GradeName),\n },\n {\n label: 'JoiningDate',\n icon: this.joiningDateIcon(),\n value: this.formatDate(this.jobInfo()?.JoiningDate),\n },\n ];\n });\n}\n","<ng-template #titleTemplate>\n <div [class]=\"titleClass()\">\n {{ title() | PayrollTranslate }}\n </div>\n</ng-template>\n\n<ng-template #rowsTemplate>\n @for (item of items(); track $index) {\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"item.icon\" [class]=\"iconClass()\"></fa-icon>\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ item.label | PayrollTranslate }}:</span>\n <span [class]=\"valueClass()\">\n {{ item.value }}\n </span>\n </div>\n </div>\n }\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"titleTemplate\" />\n <ng-container *ngTemplateOutlet=\"rowsTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"titleTemplate\" />\n <ng-container *ngTemplateOutlet=\"rowsTemplate\" />\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faFileSignature } from '@fortawesome/pro-light-svg-icons';\nimport { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\nimport { finalize } from 'rxjs';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { CommonMethods } from '../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { PayslipIndemnityDTO } from '../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-my-payslip-indemnity-widget',\n standalone: true,\n imports: [CommonModule, FaIconComponent, PayrollTranslatePipe],\n templateUrl: './my-payslip-indemnity-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipIndemnityWidgetComponent {\n readonly amountIcon = input<IconDefinition>(faFileSignature);\n\n readonly titleClass = input('fw-medium table-cell-md mb-2');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-center w-100');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n readonly currencyCodeClass = input('text-secondary fs-10');\n\n readonly title = input('Indemnity');\n readonly indemnityDaysLabel = input('IndemnityDays');\n readonly indemnityAmountLabel = input('IndemnityAmount');\n readonly days = input('Days');\n\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n readonly isMobile = input(false);\n readonly isPayslipAvailable = input(true);\n\n readonly indemnity = signal<PayslipIndemnityDTO | null>(null);\n\n readonly errorOccurred = output<string>();\n readonly isLoadingChanged = output<boolean>();\n readonly isLoading = signal(false);\n balanceKey = 'Balance';\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n private readonly commonMethods = inject(CommonMethods);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadIndemnity();\n }\n });\n }\n\n private loadIndemnity(): void {\n const payMonth = this.payMonth();\n if (!this.isPayslipAvailable() || !payMonth) {\n this.indemnity.set(null);\n return;\n }\n\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService\n .getPayslipIndemnity(this.baseUrl(), payMonth)\n .pipe(\n finalize(() => {\n this.isLoading.set(false);\n this.isLoadingChanged.emit(false);\n }),\n )\n .subscribe({\n next: res => {\n this.indemnity.set(res?.ResponseData ?? null);\n },\n error: () => {\n this.indemnity.set(null);\n },\n });\n }\n\n readonly indemnityItems = computed(() => {\n return [\n {\n label: this.indemnityDaysLabel(),\n value: this.indemnity()?.IndemnityDays,\n suffixKey: this.days(),\n showSuffix: this.shouldShowValue(this.indemnity()?.IndemnityDays),\n },\n {\n label: this.indemnityAmountLabel(),\n icon: this.amountIcon(),\n value: this.displayAmount(this.indemnity()?.IndemnityAmount),\n },\n ];\n });\n\n displayAmount(value: number | null | undefined): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return this.commonMethods.currencyDecimalFormat(value, this.currencyDecimals()) ?? `${value}`;\n }\n\n private shouldShowValue(value: any): boolean {\n return !this.isLoading() && this.isPayslipAvailable() && value != null;\n }\n\n readonly currencyDecimals = computed(() => this.indemnity()?.CurrencyDecimals ?? 2);\n}\n","<ng-template #indemnityTitleTemplate>\n <div [class]=\"titleClass()\">{{ title() | PayrollTranslate }}</div>\n</ng-template>\n\n<ng-template #indemnityRowsTemplate>\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"amountIcon()\" [class]=\"iconClass()\"></fa-icon>\n\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ 'Balance' | PayrollTranslate }}:</span>\n\n <span [class]=\"valueClass()\">\n {{ displayAmount(indemnity()?.IndemnityAmount) }}\n @if (!isLoading() && isPayslipAvailable() && indemnity()?.IndemnityDays != null && indemnity()?.IndemnityDays != undefined) {\n (\n {{ indemnity()?.IndemnityDays }}\n @if ((indemnity()?.IndemnityDays ?? 0) > 1) {\n {{ 'Days' | PayrollTranslate }}\n } @else {\n {{ 'Day' | PayrollTranslate }}\n }\n )\n }\n </span>\n </div>\n </div>\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"indemnityTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"indemnityRowsTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"indemnityTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"indemnityRowsTemplate\" />\n </div>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, effect, inject, input, output, signal } from '@angular/core';\n\nimport { DxPopupModule } from 'devextreme-angular';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { PayslipBankTransferDTO } from '../../../shared/types/payroll';\nimport { CommonMethods } from '../../../shared/common/common-methods';\n\n@Component({\n selector: 'payroll-salary-transfer-popup',\n standalone: true,\n imports: [DxPopupModule, PayrollTranslatePipe],\n templateUrl: './salary-transfer-popup.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SalaryTransferPopupComponent {\n readonly bankInformationDataSource = input<PayslipBankTransferDTO[]>([]);\n readonly visibleSalaryTransferPopup = input(false);\n readonly currencyCode = input('');\n readonly currencyDecimals = input(2);\n\n readonly popupHeight = input('auto');\n readonly popupMaxWidth = input('800px');\n readonly popupMinWidth = input('auto');\n readonly containerClass = input('');\n\n readonly headerRowClass = input('fw-bold text-secondary pb-2 d-flex');\n readonly headerCell1Class = input('w-35 text-dark-gray fs-12 fw-400');\n readonly headerCell2Class = input('w-20 text-start text-dark-gray fs-12 fw-400');\n readonly headerCell3Class = input('w-45 text-dark-gray fs-12 fw-400');\n readonly dataRowClass = input('py-2 d-flex');\n readonly dataCell1Class = input('w-35 text-dark-gray fs-14 fw-400');\n readonly dataCell2Class = input('w-20 text-start text-dark-gray fs-14 fw-400');\n readonly dataCell3Class = input('w-45 text-start text-dark-gray fs-14 fw-400');\n\n readonly openSalaryTransferPopupChange = output<boolean>();\n\n readonly visibleSalaryTransferPopupState = signal(false);\n\n public readonly commonMethods = inject(CommonMethods);\n\n constructor() {\n effect(() => {\n this.visibleSalaryTransferPopupState.set(this.visibleSalaryTransferPopup());\n });\n }\n\n onVisibilityChange(visible: boolean): void {\n this.visibleSalaryTransferPopupState.set(visible);\n this.openSalaryTransferPopupChange.emit(visible);\n }\n}\n","<dx-popup\n [title]=\"'SalaryTransferDetails' | PayrollTranslate\"\n [showTitle]=\"true\"\n [visible]=\"visibleSalaryTransferPopupState()\"\n [showCloseButton]=\"true\"\n [height]=\"popupHeight()\"\n [maxWidth]=\"popupMaxWidth()\"\n [minWidth]=\"popupMinWidth()\"\n shadingColor=\"rgba(0,0,0,0.4)\"\n (visibleChange)=\"onVisibilityChange($event)\"\n>\n <div [class]=\"containerClass()\">\n <div [class]=\"headerRowClass()\">\n <div [class]=\"headerCell1Class()\">{{ 'BankName' | PayrollTranslate }}</div>\n <div [class]=\"headerCell2Class()\">{{ 'Amount' | PayrollTranslate }} ({{ currencyCode() }})</div>\n <div [class]=\"headerCell3Class()\">{{ 'IBAN' | PayrollTranslate }} / {{ 'AccountNumber' | PayrollTranslate }}</div>\n </div>\n\n @for (transfer of bankInformationDataSource(); track $index) {\n <div [class]=\"dataRowClass()\">\n <div [class]=\"dataCell1Class()\">{{ transfer.BankBranchName || transfer.BankName }}</div>\n <div [class]=\"dataCell2Class()\">\n {{ commonMethods.currencyDecimalFormat(transfer.TransferAmount, currencyDecimals()) }}\n </div>\n <div [class]=\"dataCell3Class()\">\n {{\n transfer.IBAN\n ? ('IBAN' | PayrollTranslate) + ': ' + transfer.IBAN\n : ('AC' | PayrollTranslate) + ': ' + transfer.BankAccountNumber\n }}\n </div>\n </div>\n }\n </div>\n</dx-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\nimport { faCreditCard, faUniversity } from '@fortawesome/pro-light-svg-icons';\nimport { finalize } from 'rxjs';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayslipBankTransferDTO } from '../../shared/types/payroll';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { SalaryTransferPopupComponent } from '../components/salary-transfer-popup/salary-transfer-popup.component';\n\n@Component({\n selector: 'payroll-my-payslip-bank-info-widget',\n standalone: true,\n imports: [CommonModule, FaIconComponent, PayrollTranslatePipe, SalaryTransferPopupComponent],\n templateUrl: './my-payslip-bank-info-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipBankInfoWidgetComponent {\n readonly bankIcon = input<IconDefinition>(faUniversity);\n readonly accountIcon = input<IconDefinition>(faCreditCard);\n\n readonly titleClass = input('fw-medium mb-2 table-cell-md');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-between w-100');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n readonly actionClass = input('mt-2 fs-12 text-primary fw-400 cursor-pointer text-decoration-underline');\n readonly exploreDetailsKey = input('ExploreSalaryTransferDetails');\n\n readonly popupHeight = input('auto');\n readonly popupMaxWidth = input('800px');\n readonly popupMinWidth = input('auto');\n readonly popupContainerClass = input('');\n readonly popupHeaderRowClass = input('fw-bold text-secondary pb-2 d-flex');\n readonly popupHeaderCell1Class = input('w-35 text-dark-gray fs-12 fw-400');\n readonly popupHeaderCell2Class = input('w-20 text-start text-dark-gray fs-12 fw-400');\n readonly popupHeaderCell3Class = input('w-45 text-dark-gray fs-12 fw-400');\n readonly popupDataRowClass = input('py-2 d-flex');\n readonly popupDataCell1Class = input('w-35 text-dark-gray fs-14 fw-400');\n readonly popupDataCell2Class = input('w-20 text-start text-dark-gray fs-14 fw-400');\n readonly popupDataCell3Class = input('w-45 text-start text-dark-gray fs-14 fw-400');\n\n readonly title = input('BankInformation');\n\n readonly baseUrl = input('');\n readonly payMonth = input('');\n readonly isMobile = input(false);\n\n readonly errorOccurred = output<string>();\n readonly isLoadingChanged = output<boolean>();\n\n readonly isPayslipAvailable = input(true);\n\n readonly bankInformation = signal<PayslipBankTransferDTO[] | null>(null);\n\n readonly isLoading = signal(false);\n readonly visibleSalaryTransferPopup = signal(false);\n\n readonly exploreDetailsClick = output<void>();\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadBankInformation();\n }\n });\n }\n\n private loadBankInformation(): void {\n if (!this.isPayslipAvailable()) {\n this.bankInformation.set([]);\n return;\n }\n\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService\n .getPayslipBankInformation(this.baseUrl(), this.payMonth())\n .pipe(\n finalize(() => {\n this.isLoading.set(false);\n this.isLoadingChanged.emit(false);\n }),\n )\n .subscribe({\n next: res => {\n this.bankInformation.set(res?.ResponseData ?? []);\n },\n error: (error: any) => {\n this.isLoadingChanged.emit(false);\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n this.bankInformation.set([]);\n },\n });\n }\n\n private readonly mainBank = computed<PayslipBankTransferDTO | null>(\n () => this.bankInformation()?.find(bank => bank.IsMainBank) ?? this.bankInformation()?.[0] ?? null,\n );\n\n private display(value: any): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return `${value}`;\n }\n\n private accountLabel(bank: PayslipBankTransferDTO | null | undefined): string {\n return bank?.BankAccountNumber != null ? (bank?.IBAN != null ? 'IBAN' : 'AC') : 'IBAN';\n }\n\n readonly bankItems = computed(() => {\n const bank = this.mainBank();\n\n return [\n {\n key: 'Bank',\n label: 'Bank',\n icon: this.bankIcon(),\n value: this.display(bank?.BankName),\n },\n {\n key: this.accountLabel(bank),\n label: this.accountLabel(bank),\n icon: this.accountIcon(),\n value: this.display(bank?.IBAN || bank?.BankAccountNumber),\n },\n ];\n });\n\n readonly showExploreLink = computed(() => !!this.bankInformation()?.length && this.isPayslipAvailable());\n\n onExploreDetailsClick(): void {\n const hasObservedSubscribers = (this.exploreDetailsClick as unknown as { observed?: boolean }).observed === true;\n\n if (hasObservedSubscribers) {\n this.exploreDetailsClick.emit();\n return;\n }\n\n this.visibleSalaryTransferPopup.set(true);\n }\n\n onSalaryTransferVisibilityChanged(visible: boolean): void {\n this.visibleSalaryTransferPopup.set(visible);\n }\n\n readonly currencyCode = computed(() => this.mainBank()?.CurrencyCode ?? '');\n\n readonly currencyDecimals = computed(() => this.mainBank()?.CurrencyDecimals ?? 2);\n}\n","<ng-template #bankTitleTemplate>\n <div [class]=\"titleClass()\">{{ title() | PayrollTranslate }}</div>\n</ng-template>\n\n<ng-template #bankRowsTemplate>\n @for (item of bankItems(); track $index) {\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"item.icon\" [class]=\"iconClass()\"></fa-icon>\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ item.label | PayrollTranslate }}:</span>\n <span [class]=\"valueClass()\">{{ item.value }}</span>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #bankExploreLinkTemplate>\n @if (showExploreLink()) {\n <a href=\"javascript:void(0)\" [class]=\"actionClass()\" (click)=\"onExploreDetailsClick()\">\n {{ exploreDetailsKey() | PayrollTranslate }}\n </a>\n }\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"bankTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"bankRowsTemplate\" />\n <ng-container *ngTemplateOutlet=\"bankExploreLinkTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"bankTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"bankRowsTemplate\" />\n <ng-container *ngTemplateOutlet=\"bankExploreLinkTemplate\" />\n </div>\n </div>\n}\n\n<payroll-salary-transfer-popup\n [visibleSalaryTransferPopup]=\"visibleSalaryTransferPopup()\"\n [bankInformationDataSource]=\"bankInformation() ?? []\"\n [currencyCode]=\"currencyCode()\"\n [currencyDecimals]=\"currencyDecimals()\"\n [popupHeight]=\"popupHeight()\"\n [popupMaxWidth]=\"popupMaxWidth()\"\n [popupMinWidth]=\"popupMinWidth()\"\n [containerClass]=\"popupContainerClass()\"\n [headerRowClass]=\"popupHeaderRowClass()\"\n [headerCell1Class]=\"popupHeaderCell1Class()\"\n [headerCell2Class]=\"popupHeaderCell2Class()\"\n [headerCell3Class]=\"popupHeaderCell3Class()\"\n [dataRowClass]=\"popupDataRowClass()\"\n [dataCell1Class]=\"popupDataCell1Class()\"\n [dataCell2Class]=\"popupDataCell2Class()\"\n [dataCell3Class]=\"popupDataCell3Class()\"\n (openSalaryTransferPopupChange)=\"onSalaryTransferVisibilityChanged($event)\"\n></payroll-salary-transfer-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { FaIconComponent, IconDefinition } from '@fortawesome/angular-fontawesome';\nimport { faChevronDown, faChevronUp } from '@fortawesome/pro-solid-svg-icons';\nimport { finalize } from 'rxjs';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { PayslipVacationBalanceDTO } from '../../shared/types/payroll';\nimport { faIslandTropical } from '@fortawesome/pro-light-svg-icons';\n\n@Component({\n selector: 'payroll-my-payslip-vacation-balance-widget',\n standalone: true,\n imports: [CommonModule, FaIconComponent, PayrollTranslatePipe],\n templateUrl: './my-payslip-vacation-balance-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipVacationBalanceWidgetComponent {\n readonly vacationIcon = input<IconDefinition>(faIslandTropical);\n\n readonly titleClass = input('fw-medium mb-2 table-cell-md');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-center w-100');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n readonly viewMoreLabel = input('ViewMore');\n readonly viewLessLabel = input('ViewLess');\n readonly expandIcon = input<IconDefinition>(faChevronDown);\n readonly collapseIcon = input<IconDefinition>(faChevronUp);\n readonly actionIconClass = input('fs-10 ms-1');\n readonly actionButtonClass = input(\n 'mt-2 fs-12 text-primary fw-400 cursor-pointer text-decoration-underline bg-transparent border-0 p-0',\n );\n\n readonly title = input('VacationBalance');\n readonly daysLabel = input('Days');\n\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n readonly isMobile = input(false);\n readonly isPayslipAvailable = input(true);\n readonly isExpanded = signal(false);\n readonly collapsedItemsCount = input(2);\n\n readonly isLoadingChanged = output<boolean>();\n readonly errorOccurred = output<string>();\n\n readonly vacationBalances = signal<PayslipVacationBalanceDTO[] | null>(null);\n\n readonly isLoading = signal(false);\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadVacationBalances();\n }\n });\n }\n\n private loadVacationBalances(): void {\n const payMonth = this.payMonth();\n if (!this.isPayslipAvailable() || !payMonth) {\n this.vacationBalances.set([]);\n return;\n }\n\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService\n .getPayslipVacationBalances(this.baseUrl(), payMonth)\n .pipe(\n finalize(() => {\n this.isLoading.set(false);\n this.isLoadingChanged.emit(false);\n }),\n )\n .subscribe({\n next: res => {\n this.vacationBalances.set(res?.ResponseData ?? []);\n },\n error: (error: any) => {\n this.vacationBalances.set([]);\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n },\n });\n }\n\n readonly vacationItems = computed(() => {\n if ((!this.isPayslipAvailable() || this.isLoading()) && !this.vacationBalances()?.length) {\n return [\n {\n label: this.title(),\n value: '-',\n showDays: false,\n },\n ];\n }\n if (!this.isPayslipAvailable() && !this.vacationBalances()?.length) {\n return [\n {\n label: this.title(),\n value: '-',\n showDays: false,\n },\n ];\n }\n\n return (this.vacationBalances() ?? []).map(vacationBalance => ({\n label: this.getVacationTypeName(vacationBalance),\n value: this.getVacationBalance(vacationBalance.VacationBalance),\n showDays: this.showDaysLabel(vacationBalance.VacationBalance),\n }));\n });\n\n readonly visibleVacationBalances = computed(() => {\n const balances = this.vacationItems() ?? [];\n\n if (this.isExpanded()) {\n return balances;\n }\n\n return balances.slice(0, this.collapsedItemsCount());\n });\n\n readonly showViewMoreButton = computed(\n () => !!this.vacationBalances() && this.vacationBalances()!.length > this.collapsedItemsCount(),\n );\n\n readonly expandButtonlabel = computed(() => (this.isExpanded() ? this.viewLessLabel() : this.viewMoreLabel()));\n\n toggleExpanded(): void {\n this.isExpanded.update(value => !value);\n }\n\n getVacationTypeName(vacationBalance: PayslipVacationBalanceDTO): string {\n if (this.isLoading() || !this.isPayslipAvailable()) return '-';\n return vacationBalance.VacationTypeName || '-';\n }\n\n getVacationBalance(value: number | null | undefined): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) return '-';\n return value.toFixed(2);\n }\n\n showDaysLabel(value: number | null | undefined): boolean {\n const balance = this.getVacationBalance(value);\n return balance !== '-';\n }\n}\n","<ng-template #vacationTitleTemplate>\n <div [class]=\"titleClass()\">{{ title() | PayrollTranslate }}</div>\n</ng-template>\n\n<ng-template #vacationRowsTemplate>\n @for (vacationBalance of visibleVacationBalances(); track $index) {\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"vacationIcon()\" [class]=\"iconClass()\"></fa-icon>\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ vacationBalance.label | PayrollTranslate }}:</span>\n <span [class]=\"valueClass()\">\n {{ vacationBalance.value }}\n </span>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #viewMoreTemplate>\n @if (showViewMoreButton()) {\n <button type=\"button\" [class]=\"actionButtonClass()\" (click)=\"toggleExpanded()\">\n {{ expandButtonlabel() | PayrollTranslate }}\n </button>\n }\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"vacationTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"vacationRowsTemplate\" />\n <ng-container *ngTemplateOutlet=\"viewMoreTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"vacationTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"vacationRowsTemplate\" />\n <ng-container *ngTemplateOutlet=\"viewMoreTemplate\" />\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faUser } from '@fortawesome/pro-light-svg-icons';\nimport { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\nimport { finalize } from 'rxjs';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { PayslipTicketBalanceDTO } from '../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-my-payslip-ticket-balance-widget',\n standalone: true,\n imports: [CommonModule, FaIconComponent, PayrollTranslatePipe],\n templateUrl: './my-payslip-ticket-balance-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipTicketBalanceWidgetComponent {\n readonly ticketIcon = input<IconDefinition>(faUser);\n readonly titleClass = input('fw-medium mb-2 table-cell-md');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-center w-100');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n\n readonly title = input('TicketBalance');\n readonly tickets = input('Tickets');\n\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n readonly isMobile = input(false);\n readonly isPayslipAvailable = input(true);\n\n readonly isLoadingChanged = output<boolean>();\n readonly errorOccurred = output<string>();\n\n readonly ticketBalances = signal<PayslipTicketBalanceDTO[] | null>(null);\n\n readonly isLoading = signal(false);\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadTicketBalances();\n }\n });\n }\n\n private loadTicketBalances(): void {\n const payMonth = this.payMonth();\n if (!this.isPayslipAvailable() || !payMonth) {\n this.ticketBalances.set([]);\n return;\n }\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService\n .getPayslipTicketBalances(this.baseUrl(), payMonth)\n .pipe(\n finalize(() => {\n this.isLoading.set(false);\n this.isLoadingChanged.emit(false);\n }),\n )\n .subscribe({\n next: res => {\n this.ticketBalances.set(res?.ResponseData ?? []);\n },\n error: (error: any) => {\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n this.ticketBalances.set([]);\n },\n });\n }\n\n readonly ticketItems = computed(() => {\n if ((!this.isPayslipAvailable() || this.isLoading()) && !this.ticketBalances()?.length) {\n return [\n {\n label: this.tickets(),\n value: '-',\n showTickets: false,\n },\n ];\n }\n\n return (this.ticketBalances() ?? []).map(ticketBalance => ({\n label: this.displayLabel(ticketBalance.AgeGroupName || ticketBalance.AgeGroup),\n value: this.displayNumber(ticketBalance.TicketBalance),\n showTickets: this.showTicketsLabel(ticketBalance.TicketBalance),\n }));\n });\n\n display(value: any): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return `${value}`;\n }\n\n displayLabel(value: any): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return `${value}`;\n }\n\n displayNumber(value: number | null | undefined): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return Number(value).toFixed(2);\n }\n\n showTicketsLabel(value: number | null | undefined): boolean {\n return !this.isLoading() && this.isPayslipAvailable() && value != null;\n }\n}\n","<ng-template #ticketTitleTemplate>\n <div [class]=\"titleClass()\">{{ title() | PayrollTranslate }}</div>\n</ng-template>\n\n<ng-template #ticketRowsTemplate>\n @for (item of ticketItems(); track $index) {\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"ticketIcon()\" [class]=\"iconClass()\"></fa-icon>\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ item.label | PayrollTranslate }}:</span>\n <span [class]=\"valueClass()\">\n {{ item.value }}\n </span>\n </div>\n </div>\n }\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"ticketTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"ticketRowsTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"ticketTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"ticketRowsTemplate\" />\n </div>\n </div>\n}\n","/*\n * Public API Surface of payroll-ui\n */\n\nexport * from './lib/shared/services/translate.service';\nexport * from './lib/shared/pipes/translate.pipe';\nexport * from './lib/my-loans-popup/my-loans-popup.component';\nexport * from './lib/payslip/my-payslip-widget/my-payslip-widget.component';\nexport * from './lib/payslip/my-payslip-job-info-widget/my-payslip-job-info-widget.component';\nexport * from './lib/payslip/my-payslip-indemnity-widget/my-payslip-indemnity-widget.component';\nexport * from './lib/payslip/my-payslip-bank-info-widget/my-payslip-bank-info-widget.component';\nexport * from './lib/payslip/my-payslip-vacation-balance-widget/my-payslip-vacation-balance-widget.component';\nexport * from './lib/payslip/my-payslip-ticket-balance-widget/my-payslip-ticket-balance-widget.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PayrollTranslateService","i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"osama_amireh-bayan-payroll-widgets-ui.mjs","sources":["../../../projects/payroll-ui/src/lib/shared/services/translate.service.ts","../../../projects/payroll-ui/src/lib/shared/pipes/translate.pipe.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/Components/loan-card/loan-card.component.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/Components/loan-card/loan-card.component.html","../../../projects/payroll-ui/src/lib/my-loans-popup/Components/loan-pagination/loan-pagination.component.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/Components/loan-pagination/loan-pagination.component.html","../../../projects/payroll-ui/src/lib/shared/common/common-methods.ts","../../../projects/payroll-ui/src/lib/services/payroll/self-widgets.service.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/my-loans-popup.component.ts","../../../projects/payroll-ui/src/lib/my-loans-popup/my-loans-popup.component.html","../../../projects/payroll-ui/src/lib/payslip/components/actual-basic-details-popup/actual-basic-details-popup.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/actual-basic-details-popup/actual-basic-details-popup.component.html","../../../projects/payroll-ui/src/lib/payslip/components/payslip-salary-table/payslip-salary-table.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/payslip-salary-table/payslip-salary-table.component.html","../../../projects/payroll-ui/src/lib/payslip/components/payslip-allowances-table/payslip-allowances-table.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/payslip-allowances-table/payslip-allowances-table.component.html","../../../projects/payroll-ui/src/lib/payslip/components/payslip-deductions-table/payslip-deductions-table.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/payslip-deductions-table/payslip-deductions-table.component.html","../../../projects/payroll-ui/src/lib/payslip/components/payslip-details-card/payslip-details-card.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/payslip-details-card/payslip-details-card.component.html","../../../projects/payroll-ui/src/lib/payslip/components/empty-payslip-card/empty-payslip-card.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/empty-payslip-card/empty-payslip-card.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-widget/my-payslip-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-widget/my-payslip-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-job-info-widget/my-payslip-job-info-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-job-info-widget/my-payslip-job-info-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-indemnity-widget/my-payslip-indemnity-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-indemnity-widget/my-payslip-indemnity-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/components/salary-transfer-popup/salary-transfer-popup.component.ts","../../../projects/payroll-ui/src/lib/payslip/components/salary-transfer-popup/salary-transfer-popup.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-bank-info-widget/my-payslip-bank-info-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-bank-info-widget/my-payslip-bank-info-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-vacation-balance-widget/my-payslip-vacation-balance-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-vacation-balance-widget/my-payslip-vacation-balance-widget.component.html","../../../projects/payroll-ui/src/lib/payslip/my-payslip-ticket-balance-widget/my-payslip-ticket-balance-widget.component.ts","../../../projects/payroll-ui/src/lib/payslip/my-payslip-ticket-balance-widget/my-payslip-ticket-balance-widget.component.html","../../../projects/payroll-ui/src/public-api.ts","../../../projects/payroll-ui/src/osama_amireh-bayan-payroll-widgets-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport en from '../../../assets/i18n/en.json';\nimport ar from '../../../assets/i18n/ar.json';\nimport fr from '../../../assets/i18n/fr.json';\n\nconst BUILT_IN_LEXICONS: Record<string, Record<string, string>> = { en, ar, fr };\n\n@Injectable({ providedIn: 'root' })\nexport class PayrollTranslateService {\n private currentLanguage: string = 'en';\n private lexicon: Record<string, string> = {};\n\n setLanguage(language: string): void {\n this.currentLanguage = language;\n }\n\n getLanguage(): string {\n return this.currentLanguage;\n }\n\n setLexicon(lexicon: Record<string, string>): void {\n this.lexicon = lexicon;\n }\n\n getLexicon(): Record<string, string> {\n return this.lexicon;\n }\n\n translateBuiltIn(key: string): string {\n if (!key) return '';\n const builtIn = BUILT_IN_LEXICONS[this.currentLanguage] || {};\n const foundKey = Object.keys(builtIn).find(k => k.toLowerCase() === key.toLowerCase());\n return foundKey ? builtIn[foundKey] : key;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PayrollTranslateService } from '../services/translate.service';\n\n@Pipe({\n name: 'PayrollTranslate',\n standalone: true,\n})\nexport class PayrollTranslatePipe implements PipeTransform {\n constructor(private readonly payrollTranslateService: PayrollTranslateService) {}\n\n transform(key?: string): string {\n if (!key) return '';\n\n key = this.payrollTranslateService.translateBuiltIn(key);\n\n const lexicon = this.payrollTranslateService.getLexicon();\n let foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === key!.toLowerCase());\n if (foundKey) return lexicon[foundKey];\n\n const arrKey = key.split(' ');\n let keyValue = '';\n for (let i = 0; i < arrKey.length; i++) {\n if (i !== 0) keyValue += ' ';\n foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === arrKey[i].toLowerCase());\n if (foundKey) {\n keyValue += lexicon[foundKey];\n } else {\n keyValue += arrKey[i];\n }\n }\n\n return keyValue;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { EmployeeLoanDetail } from '../../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-loan-card',\n standalone: true,\n imports: [CommonModule, PayrollTranslatePipe],\n templateUrl: './loan-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoanCardComponent {\n readonly loan = input.required<EmployeeLoanDetail>();\n readonly currencyCode = input('');\n readonly cardContainerClass = input('p-3 card-shadow h-100 border border-1 rounded-2');\n readonly installRangeLabelClass = input('field-secondary-label-sm');\n readonly lineClass = input('fs-12 mb-2');\n readonly amountLabelClass = input('field-secondary-label-sm');\n readonly currencyCodeClass = input('text-secondary fs-10');\n readonly amountValueClass = input('text-dark-gray mx-1 fs-14');\n readonly totalPaidClass = input('text-success fs-12');\n readonly remainingInstallmentClass = input('field-secondary-label-sm');\n readonly loanTitleClass = input('text-dark fs-20 mb-2');\n\n readonly formatAmount = input<(value: number) => string>((value: number) => value.toString());\n readonly remainingInstallmentsText = input<(count: number) => string>((count: number) => count.toString());\n}\n","<div [class]=\"cardContainerClass()\">\n <p [class]=\"loanTitleClass()\">{{ loan().LoanTypeName }}</p>\n\n <p [class]=\"lineClass()\">\n <span [class]=\"installRangeLabelClass()\">{{ 'InstallmentStartEndDate' | PayrollTranslate }}:</span>\n <span class=\"text-dark-gray mx-1 fs-14\">{{ loan().FirstInstallmentMonth }} - {{ loan().LastInstallmentMonth }}</span>\n </p>\n\n <p [class]=\"lineClass()\">\n <span [class]=\"amountLabelClass()\">{{ 'TotalAmount' | PayrollTranslate }}</span>\n <span [class]=\"currencyCodeClass()\">({{ currencyCode() }}):</span>\n <span [class]=\"amountValueClass()\">{{ formatAmount()(loan().LoanAmount) }}</span>\n </p>\n\n <p [class]=\"lineClass()\">\n <span [class]=\"amountLabelClass()\">{{ 'InstallmentAmount' | PayrollTranslate }}</span>\n <span [class]=\"currencyCodeClass()\">({{ currencyCode() }}):</span>\n <span [class]=\"amountValueClass()\">{{ formatAmount()(loan().InstallmentAmount) }}</span>\n <span [class]=\"totalPaidClass()\">({{ 'TotalPaid' | PayrollTranslate }}: {{ formatAmount()(loan().PaidAmount) }})</span>\n </p>\n\n <p [class]=\"lineClass()\">\n <span [class]=\"amountLabelClass()\">{{ 'RemainingAmount' | PayrollTranslate }}</span>\n <span [class]=\"currencyCodeClass()\">({{ currencyCode() }}):</span>\n <span [class]=\"amountValueClass()\">{{ formatAmount()(loan().RemainingAmount) }}</span>\n <span [class]=\"remainingInstallmentClass()\">({{ remainingInstallmentsText()(loan().RemainingInstallmentsCount) }})</span>\n </p>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\n\n@Component({\n selector: 'payroll-loan-pagination',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loan-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoanPaginationComponent {\n readonly totalPages = input(0);\n readonly currentPage = input(0);\n readonly navContainerClass = input('d-flex justify-content-center mt-3');\n readonly navListClass = input('pagination mb-1');\n readonly pageItemClass = input('page-item page-number mx-3');\n readonly arrowItemClass = input('page-item arrow');\n readonly pageLinkClass = input('page-link rounded-circle');\n readonly arrowActiveClass = input('text-primary');\n\n readonly previousClicked = output<void>();\n readonly nextClicked = output<void>();\n readonly pageClicked = output<number>();\n\n blurButton(event: MouseEvent) {\n (event.target as HTMLElement).closest('button')?.blur();\n }\n\n onPreviousClick(event: MouseEvent) {\n this.blurButton(event);\n this.previousClicked.emit();\n }\n\n onNextClick(event: MouseEvent) {\n this.blurButton(event);\n this.nextClicked.emit();\n }\n\n onPageClick(page: number, event: MouseEvent) {\n this.blurButton(event);\n this.pageClicked.emit(page);\n }\n\n readonly pages = computed((): number[] => {\n const half = Math.floor(5 / 2);\n let start = Math.max(0, this.currentPage() - half);\n let end = start + 4;\n\n if (end >= this.totalPages()) {\n end = this.totalPages() - 1;\n start = Math.max(0, end - 4);\n }\n\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n });\n}\n","@if (totalPages() > 1) {\n <div [class]=\"navContainerClass()\">\n <nav aria-label=\"Loan pagination\">\n <ul [class]=\"navListClass()\">\n <li [class]=\"arrowItemClass()\">\n <button\n type=\"button\"\n [ngClass]=\"[pageLinkClass(), currentPage() === 0 ? 'disabled' : arrowActiveClass()]\"\n [disabled]=\"currentPage() === 0\"\n (click)=\"onPreviousClick($event)\"\n >\n <span aria-hidden=\"true\" class=\"text-center\"><</span>\n </button>\n </li>\n\n @for (page of pages(); track page) {\n <li [class]=\"pageItemClass()\" [class.active]=\"currentPage() === page\">\n <button type=\"button\" [class]=\"pageLinkClass()\" (click)=\"onPageClick(page, $event)\">{{ page + 1 }}</button>\n </li>\n }\n\n <li [class]=\"arrowItemClass()\">\n <button\n type=\"button\"\n [ngClass]=\"[pageLinkClass(), currentPage() === totalPages() - 1 ? 'disabled' : arrowActiveClass()]\"\n [disabled]=\"currentPage() === totalPages() - 1\"\n (click)=\"onNextClick($event)\"\n >\n <span aria-hidden=\"true\" class=\"text-center\">></span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n}\n","import { DecimalPipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { PayrollTranslateService } from '../services/translate.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommonMethods {\n constructor(private readonly translateService: PayrollTranslateService) {}\n\n currencyDecimalFormat(value: number, currencyDecimalsNumber: number): string | null {\n const currencyDecimalsString = `1.${currencyDecimalsNumber}-${currencyDecimalsNumber}`;\n const languageCode = this.translateService.getLanguage();\n const decimalPipe = new DecimalPipe(languageCode === 'fr' ? 'fr-FR' : 'en-US');\n\n if (languageCode === 'fr') {\n return decimalPipe.transform(value, currencyDecimalsString, 'fr-FR');\n }\n\n return decimalPipe.transform(value, currencyDecimalsString);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport {\n PayrollResponseEnvelope,\n PayslipBankTransferDTO,\n PayslipIndemnityDTO,\n PayslipJobInfoDTO,\n PayslipTicketBalanceDTO,\n PayslipVacationBalanceDTO,\n} from '../../shared/types/payroll';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PayrollSelfWidgetsService {\n constructor(private http: HttpClient) {}\n private readonly headers = { 'api-version': '1' };\n\n getLoans(baseUrl: string): Observable<any> {\n return this.http.get<any>(`${baseUrl}/payroll/widgets/me/loans`, {\n headers: this.headers,\n });\n }\n\n getPayslipJobInfo(baseUrl: string, payMonth: string): Observable<PayrollResponseEnvelope<PayslipJobInfoDTO>> {\n return this.http.get<PayrollResponseEnvelope<PayslipJobInfoDTO>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/job-information`,\n {\n headers: this.headers,\n },\n );\n }\n\n getPayslipBankInformation(\n baseUrl: string,\n payMonth: string,\n ): Observable<PayrollResponseEnvelope<PayslipBankTransferDTO[]>> {\n return this.http.get<PayrollResponseEnvelope<PayslipBankTransferDTO[]>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/bank-transfers`,\n {\n headers: this.headers,\n },\n );\n }\n\n getPayslipVacationBalances(\n baseUrl: string,\n payMonth: string,\n ): Observable<PayrollResponseEnvelope<PayslipVacationBalanceDTO[]>> {\n return this.http.get<PayrollResponseEnvelope<PayslipVacationBalanceDTO[]>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/vacation-balances`,\n {\n headers: this.headers,\n },\n );\n }\n\n getPayslipTicketBalances(\n baseUrl: string,\n payMonth: string,\n ): Observable<PayrollResponseEnvelope<PayslipTicketBalanceDTO[]>> {\n return this.http.get<PayrollResponseEnvelope<PayslipTicketBalanceDTO[]>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/ticket-balances`,\n {\n headers: this.headers,\n },\n );\n }\n\n getPayslipIndemnity(baseUrl: string, payMonth: string): Observable<PayrollResponseEnvelope<PayslipIndemnityDTO>> {\n return this.http.get<PayrollResponseEnvelope<PayslipIndemnityDTO>>(\n `${baseUrl}/payroll/widgets/me/payslip/${payMonth}/indemnity`,\n {\n headers: this.headers,\n },\n );\n }\n getPayslipDetails(baseUrl: string, payMonth: string): Observable<any> {\n return this.http.get<any>(`${baseUrl}/payroll/widgets/me/payslip/${payMonth}`, {\n headers: this.headers,\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { DxPopupModule } from 'devextreme-angular';\nimport { finalize } from 'rxjs';\nimport { LoanCardComponent } from './Components/loan-card/loan-card.component';\nimport { LoanPaginationComponent } from './Components/loan-pagination/loan-pagination.component';\nimport { PayrollTranslatePipe } from '../shared/pipes/translate.pipe';\nimport { EmployeeLoanDetail } from '../shared/types/payroll';\nimport { CommonMethods } from '../shared/common/common-methods';\nimport { PayrollSelfWidgetsService } from '../services/payroll/self-widgets.service';\n\n@Component({\n selector: 'payroll-my-loans-popup',\n standalone: true,\n imports: [CommonModule, DxPopupModule, PayrollTranslatePipe, LoanCardComponent, LoanPaginationComponent],\n templateUrl: './my-loans-popup.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyLoansPopupWidgetComponent {\n readonly popupVisible = input(false);\n\n readonly internalPopupVisible = signal(false);\n readonly loanDetails = signal<EmployeeLoanDetail[]>([]);\n readonly baseUrl = input('');\n readonly currencyCode = input('');\n readonly currencyDecimals = input(2);\n\n readonly popupWidth = input<number | string>(580);\n readonly popupHeight = input<number | string>('auto');\n readonly popupTitleKey = input('Loans');\n readonly popupDragEnabled = input(false);\n readonly popupShadingColor = input('rgba(0,0,0,0.4)');\n readonly contentContainerClass = input('mx-4 mt-2');\n readonly noPaginationContainerClass = input('mb-2');\n\n // Loan Card Classes\n readonly cardContainerClass = input('p-3 card-shadow h-100 border border-1 rounded-2');\n readonly loanTitleClass = input('text-dark fs-20 mb-2');\n readonly installRangeLabelClass = input('field-secondary-label-sm');\n readonly lineClass = input('fs-12 mb-2');\n readonly amountLabelClass = input('field-secondary-label-sm');\n readonly currencyCodeClass = input('text-secondary fs-10');\n readonly amountValueClass = input('text-dark-gray mx-1 fs-14');\n readonly totalPaidClass = input('text-success fs-12');\n readonly remainingInstallmentClass = input('field-secondary-label-sm');\n\n // Loan Pagination Classes\n readonly navContainerClass = input('d-flex justify-content-center mt-3');\n readonly navListClass = input('pagination mb-1');\n readonly pageItemClass = input('page-item page-number mx-3');\n readonly arrowItemClass = input('page-item arrow');\n readonly pageLinkClass = input('page-link rounded-circle');\n\n readonly popupVisibleChange = output<boolean>();\n readonly closePopupClickHandler = output<void>();\n readonly isLoadingChanged = output<boolean>();\n\n readonly currentPage = signal(0);\n pageSize = 1;\n private hasLoadedLoans = false;\n private isLoading = false;\n private pendingOpen = false;\n\n readonly employeeLoans = computed(() => {\n const startIndex = this.currentPage() * this.pageSize;\n return this.loanDetails().slice(startIndex, startIndex + this.pageSize);\n });\n\n private readonly translateService = inject(PayrollTranslatePipe);\n private readonly commonMethods = inject(CommonMethods);\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n const visible = this.popupVisible();\n\n if (!visible) {\n this.pendingOpen = false;\n this.internalPopupVisible.set(false);\n return;\n }\n\n this.requestOpenPopup();\n });\n }\n\n onPopupClose(): void {\n this.pendingOpen = false;\n this.internalPopupVisible.set(false);\n this.popupVisibleChange.emit(false);\n this.closePopupClickHandler.emit();\n this.currentPage.set(0);\n }\n\n private requestOpenPopup(): void {\n this.pendingOpen = true;\n\n if (this.loanDetails().length > 0 || this.hasLoadedLoans) {\n this.internalPopupVisible.set(true);\n return;\n }\n\n if (this.isLoading || !this.baseUrl()) {\n return;\n }\n\n this.isLoading = true;\n this.isLoadingChanged.emit(true);\n this.payrollWidgetsService\n .getLoans(this.baseUrl())\n .pipe(\n finalize(() => {\n this.isLoading = false;\n this.isLoadingChanged.emit(false);\n\n if (this.pendingOpen && this.hasLoadedLoans) {\n this.internalPopupVisible.set(true);\n }\n }),\n )\n .subscribe({\n next: (response: any) => {\n this.loanDetails.set(response.ResponseData ?? []);\n this.hasLoadedLoans = true;\n },\n error: () => {\n this.pendingOpen = false;\n this.loanDetails.set([]);\n },\n });\n }\n\n goToPage(pageIndex: number): void {\n if (pageIndex >= 0 && pageIndex < this.loanDetails().length) {\n this.currentPage.set(pageIndex);\n }\n }\n\n goToPreviousPage(): void {\n if (this.currentPage() > 0) {\n this.currentPage.update(value => value - 1);\n }\n }\n\n goToNextPage(): void {\n if (this.currentPage() < this.loanDetails().length - 1) {\n this.currentPage.update(value => value + 1);\n }\n }\n\n currencyFormat(value: number): string {\n return this.commonMethods.currencyDecimalFormat(value, this.currencyDecimals()) ?? '0';\n }\n\n getRemainingInstallment(installmentValue: number): string {\n const translated = this.translateService.transform('Installments{{value}}');\n return translated.replace('{{value}}', `${String(installmentValue)}`);\n }\n}\n","<dx-popup\n id=\"employeeLoanPopup\"\n [visible]=\"internalPopupVisible()\"\n (visibleChange)=\"internalPopupVisible.set($event)\"\n [width]=\"popupWidth()\"\n [height]=\"popupHeight()\"\n [showCloseButton]=\"true\"\n [showTitle]=\"true\"\n [shadingColor]=\"popupShadingColor()\"\n [dragEnabled]=\"popupDragEnabled()\"\n [title]=\"popupTitleKey() | PayrollTranslate\"\n (onHiding)=\"onPopupClose()\"\n>\n <div [ngClass]=\"[contentContainerClass(), loanDetails().length <= 1 ? noPaginationContainerClass() : '']\">\n @for (loan of employeeLoans(); track $index) {\n <payroll-loan-card\n [loan]=\"loan\"\n [currencyCode]=\"currencyCode()\"\n [cardContainerClass]=\"cardContainerClass()\"\n [loanTitleClass]=\"loanTitleClass()\"\n [installRangeLabelClass]=\"installRangeLabelClass()\"\n [lineClass]=\"lineClass()\"\n [amountLabelClass]=\"amountLabelClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [amountValueClass]=\"amountValueClass()\"\n [totalPaidClass]=\"totalPaidClass()\"\n [remainingInstallmentClass]=\"remainingInstallmentClass()\"\n [formatAmount]=\"currencyFormat.bind(this)\"\n [remainingInstallmentsText]=\"getRemainingInstallment.bind(this)\"\n ></payroll-loan-card>\n }\n </div>\n\n <payroll-loan-pagination\n [totalPages]=\"loanDetails().length\"\n [currentPage]=\"currentPage()\"\n [navContainerClass]=\"navContainerClass()\"\n [navListClass]=\"navListClass()\"\n [pageItemClass]=\"pageItemClass()\"\n [arrowItemClass]=\"arrowItemClass()\"\n [pageLinkClass]=\"pageLinkClass()\"\n (previousClicked)=\"goToPreviousPage()\"\n (nextClicked)=\"goToNextPage()\"\n (pageClicked)=\"goToPage($event)\"\n ></payroll-loan-pagination>\n</dx-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, output, signal, ViewChild } from '@angular/core';\nimport { DxPopupModule, DxScrollViewComponent, DxScrollViewModule } from 'devextreme-angular';\nimport { ActualBasicSalaryDetails } from '../../../shared/types/payroll';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\n\n@Component({\n selector: 'payroll-actual-basic-details-popup',\n standalone: true,\n imports: [CommonModule, DxPopupModule, DxScrollViewModule, PayrollTranslatePipe],\n templateUrl: './actual-basic-details-popup.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ActualBasicDetailsPopupComponent {\n readonly popupVisible = input(false);\n readonly currencyCode = input('');\n readonly currencyDecimals = input(0);\n readonly actualBasicSalaryDetails = input<ActualBasicSalaryDetails[]>([]);\n readonly popupWidth = input<number | string>(600);\n readonly popupMaxHeight = input<number | string>(400);\n readonly popupShadingColor = input('rgba(0,0,0,0.4)');\n readonly popupTitleKey = input('ActualBasicDetails');\n readonly popupHeaderRowClass = input('row mb-3 table-cell-sm');\n readonly popupRowClass = input('row mb-3 table-cell-md');\n\n readonly closePopupClickHandler = output<void>();\n\n readonly popupVisibleState = signal(false);\n\n @ViewChild(DxScrollViewComponent, { static: false })\n scrollView?: DxScrollViewComponent;\n\n public readonly commonMethods = inject(CommonMethods);\n\n constructor() {\n effect(() => {\n this.popupVisibleState.set(this.popupVisible());\n });\n }\n\n onPopupClose(): void {\n this.scrollView?.instance.scrollTo(0);\n this.closePopupClickHandler.emit();\n }\n}\n","<dx-popup\n [visible]=\"popupVisibleState()\"\n (visibleChange)=\"popupVisibleState.set($event)\"\n [height]=\"'auto'\"\n [maxHeight]=\"popupMaxHeight()\"\n [width]=\"popupWidth()\"\n [shadingColor]=\"popupShadingColor()\"\n contentTemplate=\"popup-content\"\n [showCloseButton]=\"true\"\n [title]=\"popupTitleKey() | PayrollTranslate\"\n (onHiding)=\"onPopupClose()\"\n>\n <div *dxTemplate=\"let data of 'popup-content'\">\n <dx-scroll-view\n #actualBasicDetailsScrollView\n id=\"actualBasicDetailsScrollView\"\n [scrollByContent]=\"true\"\n [scrollByThumb]=\"true\"\n [showScrollbar]=\"'onScroll'\"\n [bounceEnabled]=\"false\"\n >\n <div [class]=\"popupHeaderRowClass()\">\n <div class=\"col-5\">{{ 'Attendance' | PayrollTranslate }}</div>\n <div class=\"col-3\">{{ 'Days' | PayrollTranslate }}</div>\n <div class=\"col-4\">\n {{ 'Amount' | PayrollTranslate }}\n <span class=\"fs-10\">({{ currencyCode() }})</span>\n </div>\n </div>\n\n @for (basicSalaryDetails of actualBasicSalaryDetails(); track $index) {\n <div [class]=\"popupRowClass()\">\n <div class=\"col-5\">{{ basicSalaryDetails.Attendance }}</div>\n <div class=\"col-3\">{{ basicSalaryDetails.AllowanceDays }}</div>\n <div class=\"col-4\">\n {{ commonMethods.currencyDecimalFormat(basicSalaryDetails.Amount, currencyDecimals()) }}\n </div>\n </div>\n }\n </dx-scroll-view>\n </div>\n</dx-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { MainDetails } from '../../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-payslip-salary-table',\n standalone: true,\n imports: [CommonModule, PayrollTranslatePipe],\n templateUrl: './payslip-salary-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PayslipSalaryTableComponent {\n readonly employeeDetails = input.required<MainDetails>();\n\n readonly sectionClass = input('mb-4');\n readonly salaryTableRowClass = input('row');\n readonly labelColumnClass = input('col-5 text-start');\n readonly daysColumnClass = input('col-2 text-end fw-light mb-2');\n readonly daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md');\n readonly amountColumnClass = input('offset-1 col-4 text-start');\n readonly tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm');\n readonly currencyCodeClass = input('fs-10');\n readonly viewDetailsLinkClass = input('text-primary fw-normal ms-1');\n\n readonly viewActualBasicSalaryDetailsClick = output<void>();\n\n public readonly commonMethod = inject(CommonMethods);\n\n onViewActualBasicSalaryDetialsClick(): void {\n this.viewActualBasicSalaryDetailsClick.emit();\n }\n}\n","<div [class]=\"sectionClass()\">\n <div [class]=\"salaryTableRowClass()\">\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"tablePrimaryLabelClass()\">{{ 'Salary' | PayrollTranslate }}</div>\n <div [class]=\"tableLabelClass()\">{{ 'Basic' | PayrollTranslate }}</div>\n <div [class]=\"tableLabelClass()\">{{ 'ActualBasicSalary' | PayrollTranslate }}</div>\n <div [class]=\"tableLabelClass()\">{{ 'UnpaidVacations' | PayrollTranslate }}</div>\n </div>\n\n <div [class]=\"daysColumnClass()\">\n <div [class]=\"daysHeaderClass()\">{{ 'Days' | PayrollTranslate }}</div>\n <div [class]=\"tableSecondaryValueClass()\">{{ employeeDetails().TotalDays }}</div>\n <div [class]=\"tableSecondaryValueClass()\">{{ employeeDetails().PaidDays }}</div>\n <div [class]=\"tableSecondaryValueClass()\">{{ employeeDetails().UnpaidVacationDays }}</div>\n </div>\n\n <div [class]=\"amountColumnClass()\">\n <div [class]=\"tablePrimaryLabelClass()\">\n {{ 'Amount' | PayrollTranslate }}\n <span [class]=\"currencyCodeClass()\">({{ employeeDetails().CurrencyCode }})</span>\n </div>\n <div [class]=\"tableValueClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().BasicSalary, employeeDetails().CurrencyDecimals) }}\n </div>\n <div [class]=\"tableValueClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().ActualBasicSalary, employeeDetails().CurrencyDecimals) }}\n <a [class]=\"viewDetailsLinkClass()\" (click)=\"onViewActualBasicSalaryDetialsClick()\">\n {{ 'ViewDetails' | PayrollTranslate }}\n </a>\n </div>\n <div [class]=\"tableValueClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().UnpaidVacationDaysCost, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faCircleInfo } from '@fortawesome/pro-solid-svg-icons';\nimport { DxTooltipModule } from 'devextreme-angular';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { MainDetails } from '../../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-payslip-allowances-table',\n standalone: true,\n imports: [CommonModule, FontAwesomeModule, DxTooltipModule, PayrollTranslatePipe],\n templateUrl: './payslip-allowances-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PayslipAllowancesTableComponent {\n readonly employeeDetails = input.required<MainDetails>();\n\n readonly sectionClass = input('mb-4');\n readonly allowancesRowClass = input('row align-items-start');\n readonly labelColumnClass = input('col-5 text-start');\n readonly totalsColumnClass = input('offset-3 col-4 text-start');\n readonly sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly amountColumnClass = input('offset-1 col-3 text-start');\n readonly allowanceAmountWrapperClass = input(\n 'd-flex align-items-center justify-content-between fs-12 fw-medium mb-2 text-dark-gray',\n );\n readonly allowanceAmountTextClass = input('w-30 text-nowrap');\n readonly infoIconClass = input('light-info ms-1 cursor-pointer');\n readonly tooltipContainerClass = input('text-white rounded overflow-hidden');\n readonly tooltipTextClass = input('text-ellipsis-one-line fs-12');\n readonly tooltipCurrencyClass = input('fs-10');\n readonly tooltipAmountClass = input('fs-14 ms-1');\n\n readonly infoIcon = faCircleInfo;\n\n public readonly commonMethod = inject(CommonMethods);\n}\n","<div [class]=\"sectionClass()\">\n <div [class]=\"allowancesRowClass()\">\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"sectionTitleClass()\">{{ 'Allowances' | PayrollTranslate }}</div>\n </div>\n <div [class]=\"totalsColumnClass()\">\n <div [class]=\"sectionTitleClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().TotalCashAllowances, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n\n @for (allowance of employeeDetails().CashAllowances ?? []; track $index; let index = $index) {\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"tableLabelClass()\">{{ allowance.AllowanceName }}</div>\n </div>\n <div [class]=\"allowanceDaysClass()\">{{ allowance.AllowanceDays ?? '-' }}</div>\n <div [class]=\"amountColumnClass()\">\n <div [class]=\"allowanceAmountWrapperClass()\">\n <div [class]=\"allowanceAmountTextClass()\">\n {{ commonMethod.currencyDecimalFormat(allowance.TotalAmount, employeeDetails().CurrencyDecimals) }}\n </div>\n @if (allowance.TotalAmount !== allowance.OriginalAmount && allowance.OriginalAmount != null) {\n <fa-icon [icon]=\"infoIcon\" [class]=\"infoIconClass()\" [id]=\"'allowance-original-' + index\"></fa-icon>\n }\n </div>\n @if (allowance.TotalAmount !== allowance.OriginalAmount && allowance.OriginalAmount != null) {\n <dx-tooltip [target]=\"'#' + 'allowance-original-' + index\" [showEvent]=\"'mouseenter'\" [hideEvent]=\"'mouseleave'\" [width]=\"'auto'\">\n <div [class]=\"tooltipContainerClass()\">\n <div [class]=\"tooltipTextClass()\">\n {{ 'TotalAmount' | PayrollTranslate }}\n <span [class]=\"tooltipCurrencyClass()\">({{ employeeDetails().CurrencyCode }}):</span>\n <span [class]=\"tooltipAmountClass()\">\n {{ commonMethod.currencyDecimalFormat(allowance.OriginalAmount, employeeDetails().CurrencyDecimals) }}\n </span>\n </div>\n </div>\n </dx-tooltip>\n }\n </div>\n }\n\n @if (employeeDetails().TotalCashAllowances === 0 && employeeDetails().TotalDeductions === 0) {\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"sectionTitleClass()\">{{ 'Deductions' | PayrollTranslate }}</div>\n </div>\n <div [class]=\"totalsColumnClass()\">\n <div [class]=\"sectionTitleClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().TotalDeductions, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { MainDetails } from '../../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-payslip-deductions-table',\n standalone: true,\n imports: [CommonModule, PayrollTranslatePipe, SkySectionDividerComponent],\n templateUrl: './payslip-deductions-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PayslipDeductionsTableComponent {\n readonly employeeDetails = input.required<MainDetails>();\n\n readonly dividerRowClass = input('row');\n readonly dividerColumnClass = input('col-12');\n readonly deductionsSectionRowClass = input('row mt-4');\n readonly deductionsSectionColumnClass = input('col-xl-6 col-md-12');\n readonly deductionsInnerRowClass = input('row');\n readonly labelColumnClass = input('col-5 text-start');\n readonly sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary');\n readonly totalsColumnClass = input('offset-3 col-4 text-start');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly deductionDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly amountColumnClass = input('offset-1 col-4 text-start');\n readonly deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap');\n\n public readonly commonMethod = inject(CommonMethods);\n}\n","@if (employeeDetails().TotalCashAllowances > 0 || employeeDetails().TotalDeductions > 0) {\n <div [class]=\"dividerRowClass()\">\n <div [class]=\"dividerColumnClass()\">\n <sky-section-divider></sky-section-divider>\n </div>\n </div>\n\n <div [class]=\"deductionsSectionRowClass()\">\n <div [class]=\"deductionsSectionColumnClass()\">\n <div [class]=\"deductionsInnerRowClass()\">\n @if ((employeeDetails().Deductions ?? []).length > 0) {\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"sectionTitleClass()\">{{ 'Deductions' | PayrollTranslate }}</div>\n </div>\n <div [class]=\"totalsColumnClass()\">\n <div [class]=\"sectionTitleClass()\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().TotalDeductions, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n\n @for (deduction of employeeDetails().Deductions ?? []; track $index) {\n <div [class]=\"labelColumnClass()\">\n <div [class]=\"tableLabelClass()\">{{ deduction.DeductionName }}</div>\n </div>\n <div [class]=\"deductionDaysClass()\">{{ deduction.DeductionDays ?? '-' }}</div>\n <div [class]=\"amountColumnClass()\">\n <div [class]=\"deductionAmountTextClass()\">\n {{ commonMethod.currencyDecimalFormat(deduction.TotalAmount, employeeDetails().CurrencyDecimals) }}\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faCircleInfo } from '@fortawesome/pro-solid-svg-icons';\nimport { faMoneyCheckDollarPen } from '@fortawesome/pro-light-svg-icons';\nimport { DoughnutChartInfo, SkyDoughnutChartComponent, SkyScreenService } from '@skysoftware-co/sky-components-ui';\nimport { CommonMethods } from '../../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { ActualBasicSalaryDetails, MainDetails, PieChartItem } from '../../../shared/types/payroll';\nimport { ActualBasicDetailsPopupComponent } from '../actual-basic-details-popup/actual-basic-details-popup.component';\nimport { PayslipSalaryTableComponent } from '../payslip-salary-table/payslip-salary-table.component';\nimport { PayslipAllowancesTableComponent } from '../payslip-allowances-table/payslip-allowances-table.component';\nimport { PayslipDeductionsTableComponent } from '../payslip-deductions-table/payslip-deductions-table.component';\n\n@Component({\n selector: 'payroll-payslip-details-card',\n standalone: true,\n imports: [\n CommonModule,\n FontAwesomeModule,\n SkyDoughnutChartComponent,\n PayrollTranslatePipe,\n ActualBasicDetailsPopupComponent,\n PayslipSalaryTableComponent,\n PayslipAllowancesTableComponent,\n PayslipDeductionsTableComponent,\n ],\n templateUrl: './payslip-details-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PayslipDetailsCardComponent {\n readonly employeeDetails = input.required<MainDetails>();\n readonly payMonthDate = input<Date | null>(null);\n readonly pieDataSource = input<PieChartItem[]>([]);\n readonly actualBasicSalaryDetails = input<ActualBasicSalaryDetails[]>([]);\n\n readonly cardContainerClass = input('card shadow-sm border-0 rounded-3 p-4');\n readonly contentRowClass = input('row g-4');\n readonly detailsColumnClass = input('col-xl-6 col-md-12 order-2 order-xl-1');\n readonly chartColumnClass = input(\n 'col-xl-6 col-md-12 d-flex align-items-start justify-content-center justify-content-xl-end order-1 order-xl-2 m-0',\n );\n readonly isMobile = input(false);\n readonly titleRowClass = input('d-flex align-items-center mb-4');\n readonly salaryIconClass = input('text-primary fs-28 me-2');\n readonly titleClass = input('fw-medium fs-16 text-uppercase text-dark-gray');\n readonly titleMonthClass = input('fw-normal text-capitalize');\n readonly sectionClass = input('mb-4');\n readonly sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line');\n readonly tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm');\n readonly currencyCodeClass = input('fs-10');\n readonly infoIconClass = input('light-info ms-1 cursor-pointer');\n readonly popupWidth = input<number | string>(600);\n readonly popupMaxHeight = input<number | string>(400);\n readonly popupShadingColor = input('rgba(0,0,0,0.4)');\n readonly popupHeaderRowClass = input('row mb-3 table-cell-sm');\n readonly popupRowClass = input('row mb-3 table-cell-md');\n readonly mobileChartWrapperClass = input('d-flex align-items-start justify-content-start');\n readonly negativePaletteColors = input<string[]>(['#F78204', '#dee2e6']);\n readonly positivePaletteColors = input<string[]>(['#F78204', '#F7820480']);\n readonly salaryTableRowClass = input('row');\n readonly labelColumnClass = input('col-5 text-start');\n readonly daysColumnClass = input('col-2 text-end fw-light mb-2');\n readonly daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md');\n readonly amountColumnClass = input('offset-1 col-4 text-start');\n readonly salaryAmountColumnClass = input('offset-1 col-4 text-start');\n readonly allowanceAmountColumnClass = input('offset-1 col-3 text-start');\n readonly totalsColumnClass = input('offset-3 col-4 text-start');\n readonly viewDetailsLinkClass = input('text-primary fw-normal ms-1');\n readonly allowancesRowClass = input('row align-items-start');\n readonly allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly allowanceAmountWrapperClass = input('d-flex align-items-center fs-12 fw-medium mb-2 text-dark-gray');\n readonly allowanceAmountTextClass = input('w-30 text-nowrap');\n readonly tooltipContainerClass = input('text-white rounded overflow-hidden');\n readonly tooltipTextClass = input('text-ellipsis-one-line fs-12');\n readonly tooltipCurrencyClass = input('fs-10');\n readonly tooltipAmountClass = input('fs-14 ms-1');\n readonly dividerRowClass = input('row');\n readonly dividerColumnClass = input('col-12');\n readonly deductionsSectionRowClass = input('row mt-4');\n readonly deductionsSectionColumnClass = input('col-xl-6 col-md-12');\n readonly deductionsInnerRowClass = input('row');\n readonly deductionDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap');\n\n readonly salaryIcon = faMoneyCheckDollarPen;\n readonly infoIcon = faCircleInfo;\n readonly popupVisible = signal(false);\n\n readonly chartPaletteColors = computed(() =>\n this.employeeDetails().NetSalary < 0 ? this.negativePaletteColors() : this.positivePaletteColors(),\n );\n\n public readonly commonMethod = inject(CommonMethods);\n private readonly screen = inject(SkyScreenService);\n\n readonly doughnutChartInfo = computed<DoughnutChartInfo>(() => ({\n data: this.pieDataSource().map((item) => ({\n name: item.Text,\n value: item.Value,\n extra: { formattedValue: item.FormattedValue, valueColor: item.ValueColor },\n })),\n colors: this.chartPaletteColors(),\n innerRadius: 0.85,\n width: 200,\n height: 200,\n }));\n\n readonly useMobileChart = computed(\n () =>\n this.isMobile() || this.screen.isXSmallScreen() || this.screen.isSmallScreen() || this.screen.isMediumScreen(),\n );\n\n onCloseActualBasicSalaryDetailsPopupHandler(): void {\n this.popupVisible.set(false);\n }\n\n onViewActualBasicSalaryDetailsClick(): void {\n this.popupVisible.set(true);\n }\n}\n","<div [class]=\"cardContainerClass()\">\n <div [class]=\"contentRowClass()\">\n <div [class]=\"detailsColumnClass()\">\n <div [class]=\"titleRowClass()\">\n <fa-icon [icon]=\"salaryIcon\" [class]=\"salaryIconClass()\"></fa-icon>\n <h5 [class]=\"titleClass()\">\n {{ 'Salary' | PayrollTranslate }}\n <span [class]=\"titleMonthClass()\">({{ payMonthDate() | date: 'MMM yyyy' }})</span>\n </h5>\n </div>\n\n @if (useMobileChart()) {\n <div [class]=\"mobileChartWrapperClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n rootWrapperClass=\"sky-chart-item d-flex flex-row align-items-center justify-content-start g-3 w-100 m-0\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n <payroll-payslip-salary-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [salaryTableRowClass]=\"salaryTableRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [daysColumnClass]=\"daysColumnClass()\"\n [daysHeaderClass]=\"daysHeaderClass()\"\n [amountColumnClass]=\"salaryAmountColumnClass()\"\n [tablePrimaryLabelClass]=\"tablePrimaryLabelClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [tableValueClass]=\"tableValueClass()\"\n [tableSecondaryValueClass]=\"tableSecondaryValueClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [viewDetailsLinkClass]=\"viewDetailsLinkClass()\"\n (viewActualBasicSalaryDetailsClick)=\"onViewActualBasicSalaryDetailsClick()\"\n ></payroll-payslip-salary-table>\n\n <payroll-payslip-allowances-table\n [employeeDetails]=\"employeeDetails()\"\n [sectionClass]=\"sectionClass()\"\n [allowancesRowClass]=\"allowancesRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [allowanceDaysClass]=\"allowanceDaysClass()\"\n [amountColumnClass]=\"allowanceAmountColumnClass()\"\n [allowanceAmountWrapperClass]=\"allowanceAmountWrapperClass()\"\n [allowanceAmountTextClass]=\"allowanceAmountTextClass()\"\n [infoIconClass]=\"infoIconClass()\"\n [tooltipContainerClass]=\"tooltipContainerClass()\"\n [tooltipTextClass]=\"tooltipTextClass()\"\n [tooltipCurrencyClass]=\"tooltipCurrencyClass()\"\n [tooltipAmountClass]=\"tooltipAmountClass()\"\n ></payroll-payslip-allowances-table>\n </div>\n\n @if (!useMobileChart()) {\n <div [class]=\"chartColumnClass()\">\n <sky-doughnut-chart\n [info]=\"doughnutChartInfo()\"\n [hasBorder]=\"false\"\n rootWrapperClass=\"sky-chart-item d-flex flex-row align-items-center justify-content-start g-3 w-100 m-0\"\n >\n <ng-template #centerContent>\n <div class=\"d-flex flex-column align-items-center text-center lh-sm\">\n <span class=\"fs-12 fw-normal\">{{ 'GrossSalary' | PayrollTranslate }}</span>\n <span class=\"fs-16 fw-bold\">\n {{ commonMethod.currencyDecimalFormat(employeeDetails().GrossSalary, employeeDetails().CurrencyDecimals) }}\n </span>\n <span class=\"fs-10 fw-normal\">{{ employeeDetails().CurrencyCode }}</span>\n </div>\n </ng-template>\n <ng-template #legendItem let-item>\n <div class=\"d-flex flex-column fs-12 text-dark-gray\">\n <span class=\"fw-normal\">{{ item.name }}</span>\n <b [style.color]=\"item.extra?.valueColor\">{{ item.extra?.formattedValue }}</b>\n </div>\n </ng-template>\n </sky-doughnut-chart>\n </div>\n }\n </div>\n\n <payroll-payslip-deductions-table\n [employeeDetails]=\"employeeDetails()\"\n [dividerRowClass]=\"dividerRowClass()\"\n [dividerColumnClass]=\"dividerColumnClass()\"\n [deductionsSectionRowClass]=\"deductionsSectionRowClass()\"\n [deductionsSectionColumnClass]=\"deductionsSectionColumnClass()\"\n [deductionsInnerRowClass]=\"deductionsInnerRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [deductionDaysClass]=\"deductionDaysClass()\"\n [amountColumnClass]=\"amountColumnClass()\"\n [deductionAmountTextClass]=\"deductionAmountTextClass()\"\n ></payroll-payslip-deductions-table>\n</div>\n\n<payroll-actual-basic-details-popup\n [currencyCode]=\"employeeDetails().CurrencyCode\"\n [currencyDecimals]=\"employeeDetails().CurrencyDecimals\"\n [actualBasicSalaryDetails]=\"actualBasicSalaryDetails()\"\n [popupVisible]=\"popupVisible()\"\n [popupWidth]=\"popupWidth()\"\n [popupMaxHeight]=\"popupMaxHeight()\"\n [popupShadingColor]=\"popupShadingColor()\"\n [popupHeaderRowClass]=\"popupHeaderRowClass()\"\n [popupRowClass]=\"popupRowClass()\"\n (closePopupClickHandler)=\"onCloseActualBasicSalaryDetailsPopupHandler()\"\n></payroll-actual-basic-details-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faMoneyCheckDollarPen, IconDefinition } from '@fortawesome/pro-light-svg-icons';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\n\n@Component({\n selector: 'payroll-empty-payslip-card',\n standalone: true,\n imports: [CommonModule, FontAwesomeModule, PayrollTranslatePipe],\n templateUrl: './empty-payslip-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmptyPayslipCardComponent {\n readonly hidePayslip = input(false);\n readonly cardContainerClass = input('card border shadow-sm rounded-3');\n readonly cardBodyClass = input('card-body text-center py-5');\n readonly iconClass = input('fs-28 me-2 light-info mb-3');\n readonly messageClass = input('fs-20 fw-400 mb-2 text-dark');\n readonly helpTextClass = input('fs-16 fw-400 mb-0 text-dark');\n\n readonly accessDeniedMessage = input('YouAreNotAllowedToViewThePayslip');\n readonly noPayslipMessage = input('NoPayslipAvailableYet');\n readonly helpText = input('PleaseContactYourAdminForAnyHelp.');\n readonly accessDeniedIcon = input<IconDefinition>(faMoneyCheckDollarPen);\n}\n","<div [class]=\"cardContainerClass()\">\n <div [class]=\"cardBodyClass()\">\n <fa-icon [icon]=\"accessDeniedIcon()\" [class]=\"iconClass()\"></fa-icon>\n <p [class]=\"messageClass()\">{{ (hidePayslip() ? accessDeniedMessage() : noPayslipMessage()) | PayrollTranslate }}!</p>\n\n @if (hidePayslip()) {\n <p [class]=\"helpTextClass()\">{{ helpText() | PayrollTranslate }}</p>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { faMoneyCheckDollarPen, IconDefinition } from '@fortawesome/pro-light-svg-icons';\nimport { finalize } from 'rxjs';\nimport { CommonMethods } from '../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { ActualBasicSalaryDetails, MainDetails, PieChartItem } from '../../shared/types/payroll';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayslipDetailsCardComponent } from '../components/payslip-details-card/payslip-details-card.component';\nimport { EmptyPayslipCardComponent } from '../components/empty-payslip-card/empty-payslip-card.component';\n\n@Component({\n selector: 'payroll-my-payslip-widget',\n standalone: true,\n imports: [CommonModule, EmptyPayslipCardComponent, PayslipDetailsCardComponent],\n templateUrl: './my-payslip-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipWidgetComponent {\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n\n readonly cardContainerClass = input('card shadow-sm border-0 rounded-3 p-4');\n readonly contentRowClass = input('row g-4');\n readonly detailsColumnClass = input('col-xl-6 col-md-12 order-2 order-xl-1');\n readonly chartColumnClass = input(\n 'col-xl-6 col-md-12 d-flex align-items-start justify-content-center justify-content-xl-end order-1 order-xl-2 m-0',\n );\n readonly titleRowClass = input('d-flex align-items-center mb-4');\n readonly salaryIconClass = input('text-primary fs-28 me-2');\n readonly titleClass = input('fw-medium fs-16 text-uppercase text-dark-gray');\n readonly titleMonthClass = input('fw-normal text-capitalize');\n readonly sectionClass = input('mb-4');\n readonly sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary');\n readonly tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line');\n readonly tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line');\n readonly tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm');\n readonly currencyCodeClass = input('fs-10');\n readonly infoIconClass = input('light-info ms-1 cursor-pointer');\n readonly popupWidth = input<number | string>(600);\n readonly popupMaxHeight = input<number | string>(400);\n readonly popupShadingColor = input('rgba(0,0,0,0.4)');\n readonly popupHeaderRowClass = input('row mb-3 table-cell-sm');\n readonly popupRowClass = input('row mb-3 table-cell-md');\n readonly mobileChartWrapperClass = input('d-flex align-items-start justify-content-start');\n readonly salaryTableRowClass = input('row');\n readonly labelColumnClass = input('col-5 text-start');\n readonly daysColumnClass = input('col-2 text-end fw-light mb-2');\n readonly daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md');\n readonly amountColumnClass = input('offset-1 col-3 text-start');\n readonly totalsColumnClass = input('offset-3 col-4 text-start');\n readonly viewDetailsLinkClass = input('text-primary fw-normal ms-1');\n readonly allowancesRowClass = input('row align-items-start');\n readonly allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly allowanceAmountWrapperClass = input(\n 'd-flex align-items-center justify-content-between fs-12 fw-medium mb-2 text-dark-gray',\n );\n readonly allowanceAmountTextClass = input('w-30 text-nowrap');\n readonly tooltipContainerClass = input('text-white rounded overflow-hidden');\n readonly tooltipTextClass = input('text-ellipsis-one-line fs-12');\n readonly tooltipCurrencyClass = input('fs-10');\n readonly tooltipAmountClass = input('fs-14 ms-1');\n readonly dividerRowClass = input('row');\n readonly dividerColumnClass = input('col-12');\n readonly deductionsSectionRowClass = input('row mt-4');\n readonly deductionsSectionColumnClass = input('col-xl-6 col-md-12');\n readonly deductionsInnerRowClass = input('row');\n readonly deductionDaysClass = input('col-2 text-end table-cell-sm fw-light');\n readonly deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap');\n readonly emptyCardContainerClass = input('card border shadow-sm rounded-3');\n readonly emptyCardBodyClass = input('card-body text-center py-5');\n readonly emptyIconClass = input('fs-28 me-2 light-info mb-3');\n readonly emptyMessageClass = input('fs-20 fw-400 mb-2 text-dark');\n readonly emptyHelpTextClass = input('fs-16 fw-400 mb-0 text-dark');\n readonly isMobile = input(false);\n readonly hidePayslip = input(false);\n readonly isFirstMonth = input(false);\n readonly accessDeniedMessage = input('YouAreNotAllowedToViewThePayslip');\n readonly noPayslipMessage = input('NoPayslipAvailableYet');\n readonly helpText = input('PleaseContactYourAdminForAnyHelp.');\n readonly accessDeniedIcon = input<IconDefinition>(faMoneyCheckDollarPen);\n readonly isLoadingChanged = output<boolean>();\n readonly errorOccurred = output<string>();\n\n readonly salaryIcon = faMoneyCheckDollarPen;\n\n readonly employeeDetails = signal<MainDetails | null>(null);\n readonly actualBasicSalaryDetails = signal<ActualBasicSalaryDetails[]>([]);\n readonly pieDataSource = signal<PieChartItem[]>([]);\n readonly selectedPayMonth = signal<string | null>(null);\n readonly isLoading = signal(false);\n\n public readonly commonMethod = inject(CommonMethods);\n private readonly translatePipe = inject(PayrollTranslatePipe);\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n const baseUrl = this.baseUrl();\n const payMonth = this.payMonth();\n\n if (!baseUrl) {\n this.resetState();\n return;\n }\n\n if (!this.hidePayslip() && payMonth) {\n this.selectedPayMonth.set(payMonth);\n this.loadEmployeePayslip(payMonth);\n return;\n }\n\n this.resetDataOnly();\n });\n }\n\n readonly payMonthDate = computed<Date | null>(() => {\n const selectedPayMonth = this.selectedPayMonth();\n if (!selectedPayMonth) {\n return null;\n }\n\n const dashParts = selectedPayMonth.split('-');\n if (dashParts.length === 2) {\n const year = Number(dashParts[0]);\n const month = Number(dashParts[1]) - 1;\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n return new Date(year, month, 1);\n }\n }\n\n const slashParts = selectedPayMonth.split('/');\n if (slashParts.length !== 2) {\n return null;\n }\n\n const month = Number(slashParts[0]) - 1;\n const year = Number(slashParts[1]);\n if (Number.isNaN(month) || Number.isNaN(year)) {\n return null;\n }\n\n return new Date(year, month, 1);\n });\n\n private loadEmployeePayslip(payMonth: string, emitLoading = true): void {\n if (emitLoading) {\n this.setLoading(true);\n }\n\n this.payrollWidgetsService\n .getPayslipDetails(this.baseUrl(), payMonth)\n .pipe(\n finalize(() => {\n this.setLoading(false);\n }),\n )\n .subscribe({\n next: (response: { ResponseData?: MainDetails }) => {\n const payload = response?.ResponseData ?? null;\n this.employeeDetails.set(payload);\n\n if (this.hidePayslip() || !payload) {\n this.actualBasicSalaryDetails.set([]);\n this.pieDataSource.set([]);\n return;\n }\n\n this.actualBasicSalaryDetails.set(this.buildActualBasicSalaryDetails(payload));\n this.pieDataSource.set(this.buildPieDataSource(payload));\n },\n error: (error: any) => {\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n this.resetDataOnly();\n },\n });\n }\n\n private buildActualBasicSalaryDetails(employeeDetails: MainDetails): ActualBasicSalaryDetails[] {\n const details: ActualBasicSalaryDetails[] = [\n {\n Attendance: this.translatePipe.transform('WorkingDays'),\n AllowanceDays: employeeDetails.WorkingDays,\n Amount: employeeDetails.WorkingDaysCost,\n },\n ];\n\n for (const paidVacation of employeeDetails.PaidVacations ?? []) {\n details.push({\n Attendance: paidVacation.VacationTypeName,\n AllowanceDays: paidVacation.VacationDays,\n Amount: paidVacation.VacationDaysCost,\n });\n }\n\n return details;\n }\n\n private buildPieDataSource(employeeDetails: MainDetails): PieChartItem[] {\n const decimals = employeeDetails.CurrencyDecimals ?? 0;\n const netSalary = employeeDetails.NetSalary ?? 0;\n const netSalaryColor = netSalary < 0 ? 'var(--bs-danger)' : 'var(--bs-bg-dark-gray)';\n\n return [\n {\n Text: this.translatePipe.transform('NetSalary'),\n Value: netSalary < 0 ? 0 : netSalary,\n FormattedValue: this.commonMethod.currencyDecimalFormat(netSalary, decimals) ?? '',\n ValueColor: netSalaryColor,\n },\n {\n Text: this.translatePipe.transform('Deductions'),\n Value: employeeDetails.TotalDeductions ?? 0,\n FormattedValue: this.commonMethod.currencyDecimalFormat(employeeDetails.TotalDeductions ?? 0, decimals) ?? '',\n ValueColor: 'var(--bs-danger)',\n },\n ];\n }\n\n private resetState(): void {\n this.resetDataOnly();\n this.setLoading(false);\n }\n\n private resetDataOnly(): void {\n this.employeeDetails.set(null);\n this.actualBasicSalaryDetails.set([]);\n this.pieDataSource.set([]);\n this.selectedPayMonth.set(null);\n }\n\n private setLoading(isLoading: boolean): void {\n this.isLoading.set(isLoading);\n this.isLoadingChanged.emit(isLoading);\n }\n}\n","@if (employeeDetails(); as employeeDetailsData) {\n @if (!hidePayslip() && !isFirstMonth()) {\n <payroll-payslip-details-card\n [employeeDetails]=\"employeeDetailsData\"\n [payMonthDate]=\"payMonthDate()\"\n [pieDataSource]=\"pieDataSource()\"\n [actualBasicSalaryDetails]=\"actualBasicSalaryDetails()\"\n [cardContainerClass]=\"cardContainerClass()\"\n [contentRowClass]=\"contentRowClass()\"\n [detailsColumnClass]=\"detailsColumnClass()\"\n [chartColumnClass]=\"chartColumnClass()\"\n [titleRowClass]=\"titleRowClass()\"\n [salaryIconClass]=\"salaryIconClass()\"\n [titleClass]=\"titleClass()\"\n [titleMonthClass]=\"titleMonthClass()\"\n [sectionClass]=\"sectionClass()\"\n [sectionTitleClass]=\"sectionTitleClass()\"\n [tableLabelClass]=\"tableLabelClass()\"\n [tablePrimaryLabelClass]=\"tablePrimaryLabelClass()\"\n [tableValueClass]=\"tableValueClass()\"\n [tableSecondaryValueClass]=\"tableSecondaryValueClass()\"\n [currencyCodeClass]=\"currencyCodeClass()\"\n [infoIconClass]=\"infoIconClass()\"\n [popupWidth]=\"popupWidth()\"\n [popupMaxHeight]=\"popupMaxHeight()\"\n [popupShadingColor]=\"popupShadingColor()\"\n [popupHeaderRowClass]=\"popupHeaderRowClass()\"\n [popupRowClass]=\"popupRowClass()\"\n [mobileChartWrapperClass]=\"mobileChartWrapperClass()\"\n [salaryTableRowClass]=\"salaryTableRowClass()\"\n [labelColumnClass]=\"labelColumnClass()\"\n [daysColumnClass]=\"daysColumnClass()\"\n [daysHeaderClass]=\"daysHeaderClass()\"\n [amountColumnClass]=\"amountColumnClass()\"\n [totalsColumnClass]=\"totalsColumnClass()\"\n [viewDetailsLinkClass]=\"viewDetailsLinkClass()\"\n [allowancesRowClass]=\"allowancesRowClass()\"\n [allowanceDaysClass]=\"allowanceDaysClass()\"\n [allowanceAmountWrapperClass]=\"allowanceAmountWrapperClass()\"\n [allowanceAmountTextClass]=\"allowanceAmountTextClass()\"\n [tooltipContainerClass]=\"tooltipContainerClass()\"\n [tooltipTextClass]=\"tooltipTextClass()\"\n [tooltipCurrencyClass]=\"tooltipCurrencyClass()\"\n [tooltipAmountClass]=\"tooltipAmountClass()\"\n [dividerRowClass]=\"dividerRowClass()\"\n [dividerColumnClass]=\"dividerColumnClass()\"\n [deductionsSectionRowClass]=\"deductionsSectionRowClass()\"\n [deductionsSectionColumnClass]=\"deductionsSectionColumnClass()\"\n [deductionsInnerRowClass]=\"deductionsInnerRowClass()\"\n [deductionDaysClass]=\"deductionDaysClass()\"\n [deductionAmountTextClass]=\"deductionAmountTextClass()\"\n [isMobile]=\"isMobile()\"\n ></payroll-payslip-details-card>\n } @else {\n <payroll-empty-payslip-card\n [hidePayslip]=\"hidePayslip()\"\n [cardContainerClass]=\"emptyCardContainerClass()\"\n [cardBodyClass]=\"emptyCardBodyClass()\"\n [iconClass]=\"emptyIconClass()\"\n [messageClass]=\"emptyMessageClass()\"\n [helpTextClass]=\"emptyHelpTextClass()\"\n [accessDeniedIcon]=\"accessDeniedIcon()\"\n [accessDeniedMessage]=\"accessDeniedMessage()\"\n [noPayslipMessage]=\"noPayslipMessage()\"\n [helpText]=\"helpText()\"\n ></payroll-empty-payslip-card>\n }\n} @else {\n <payroll-empty-payslip-card\n [hidePayslip]=\"hidePayslip()\"\n [cardContainerClass]=\"emptyCardContainerClass()\"\n [cardBodyClass]=\"emptyCardBodyClass()\"\n [iconClass]=\"emptyIconClass()\"\n [messageClass]=\"emptyMessageClass()\"\n [helpTextClass]=\"emptyHelpTextClass()\"\n [accessDeniedIcon]=\"accessDeniedIcon()\"\n [accessDeniedMessage]=\"accessDeniedMessage()\"\n [noPayslipMessage]=\"noPayslipMessage()\"\n [helpText]=\"helpText()\"\n ></payroll-empty-payslip-card>\n}\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayslipJobInfoDTO } from '../../shared/types/payroll';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faCalendarAlt, faMedal, faSitemap, faUserTie, IconDefinition } from '@fortawesome/pro-light-svg-icons';\n\n@Component({\n selector: 'payroll-my-payslip-job-info-widget',\n standalone: true,\n imports: [CommonModule, PayrollTranslatePipe, FaIconComponent],\n templateUrl: './my-payslip-job-info-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipJobInfoWidgetComponent {\n readonly adminUnitIcon = input<IconDefinition>(faSitemap);\n readonly positionIcon = input<IconDefinition>(faUserTie);\n readonly gradeIcon = input<IconDefinition>(faMedal);\n readonly joiningDateIcon = input<IconDefinition>(faCalendarAlt);\n\n readonly titleClass = input('fw-medium mb-2 table-cell-md');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-center w-100');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n\n readonly title = input('JobInformation');\n\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n readonly isMobile = input(false);\n\n readonly isPayslipAvailable = input(true);\n readonly isLoadingChanged = output<boolean>();\n readonly errorOccurred = output<string>();\n\n readonly jobInfo = signal<PayslipJobInfoDTO | null>(null);\n\n readonly isLoading = signal(false);\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n private readonly datePipe = inject(DatePipe);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadJobInfo();\n }\n });\n }\n\n private loadJobInfo(): void {\n const payMonth = this.payMonth();\n if (!this.isPayslipAvailable() || !payMonth) {\n this.jobInfo.set(null);\n return;\n }\n\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService.getPayslipJobInfo(this.baseUrl(), payMonth).subscribe({\n next: res => {\n this.jobInfo.set(res?.ResponseData ?? null);\n this.isLoadingChanged.emit(false);\n this.isLoading.set(false);\n },\n error: (error: any) => {\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n this.isLoadingChanged.emit(false);\n this.isLoading.set(false);\n },\n });\n }\n\n private display(value: any): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return `${value}`;\n }\n\n private formatDate(date: string | null | undefined): string {\n if (this.isLoading() || !this.isPayslipAvailable() || !date) {\n return '-';\n }\n\n return this.datePipe.transform(date, 'dd/MM/yyyy') || '-';\n }\n readonly items = computed(() => {\n return [\n {\n label: 'AdminUnit',\n icon: this.adminUnitIcon(),\n value: this.display(this.jobInfo()?.AdminUnitName),\n },\n {\n label: 'Position',\n icon: this.positionIcon(),\n value: this.display(this.jobInfo()?.PositionName),\n },\n {\n label: 'Grade',\n icon: this.gradeIcon(),\n value: this.display(this.jobInfo()?.GradeName),\n },\n {\n label: 'JoiningDate',\n icon: this.joiningDateIcon(),\n value: this.formatDate(this.jobInfo()?.JoiningDate),\n },\n ];\n });\n}\n","<ng-template #titleTemplate>\n <div [class]=\"titleClass()\">\n {{ title() | PayrollTranslate }}\n </div>\n</ng-template>\n\n<ng-template #rowsTemplate>\n @for (item of items(); track $index) {\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"item.icon\" [class]=\"iconClass()\"></fa-icon>\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ item.label | PayrollTranslate }}:</span>\n <span [class]=\"valueClass()\">\n {{ item.value }}\n </span>\n </div>\n </div>\n }\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"titleTemplate\" />\n <ng-container *ngTemplateOutlet=\"rowsTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"titleTemplate\" />\n <ng-container *ngTemplateOutlet=\"rowsTemplate\" />\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faFileSignature } from '@fortawesome/pro-light-svg-icons';\nimport { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\nimport { finalize } from 'rxjs';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { CommonMethods } from '../../shared/common/common-methods';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { PayslipIndemnityDTO } from '../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-my-payslip-indemnity-widget',\n standalone: true,\n imports: [CommonModule, FaIconComponent, PayrollTranslatePipe],\n templateUrl: './my-payslip-indemnity-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipIndemnityWidgetComponent {\n readonly amountIcon = input<IconDefinition>(faFileSignature);\n\n readonly titleClass = input('fw-medium table-cell-md mb-2');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-center w-100');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n readonly currencyCodeClass = input('text-secondary fs-10');\n\n readonly title = input('Indemnity');\n readonly indemnityDaysLabel = input('IndemnityDays');\n readonly indemnityAmountLabel = input('IndemnityAmount');\n readonly days = input('Days');\n\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n readonly isMobile = input(false);\n readonly isPayslipAvailable = input(true);\n\n readonly indemnity = signal<PayslipIndemnityDTO | null>(null);\n\n readonly errorOccurred = output<string>();\n readonly isLoadingChanged = output<boolean>();\n readonly isLoading = signal(false);\n balanceKey = 'Balance';\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n private readonly commonMethods = inject(CommonMethods);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadIndemnity();\n }\n });\n }\n\n private loadIndemnity(): void {\n const payMonth = this.payMonth();\n if (!this.isPayslipAvailable() || !payMonth) {\n this.indemnity.set(null);\n return;\n }\n\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService\n .getPayslipIndemnity(this.baseUrl(), payMonth)\n .pipe(\n finalize(() => {\n this.isLoading.set(false);\n this.isLoadingChanged.emit(false);\n }),\n )\n .subscribe({\n next: res => {\n this.indemnity.set(res?.ResponseData ?? null);\n },\n error: () => {\n this.indemnity.set(null);\n },\n });\n }\n\n readonly indemnityItems = computed(() => {\n return [\n {\n label: this.indemnityDaysLabel(),\n value: this.indemnity()?.IndemnityDays,\n suffixKey: this.days(),\n showSuffix: this.shouldShowValue(this.indemnity()?.IndemnityDays),\n },\n {\n label: this.indemnityAmountLabel(),\n icon: this.amountIcon(),\n value: this.displayAmount(this.indemnity()?.IndemnityAmount),\n },\n ];\n });\n\n displayAmount(value: number | null | undefined): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return this.commonMethods.currencyDecimalFormat(value, this.currencyDecimals()) ?? `${value}`;\n }\n\n private shouldShowValue(value: any): boolean {\n return !this.isLoading() && this.isPayslipAvailable() && value != null;\n }\n\n readonly currencyDecimals = computed(() => this.indemnity()?.CurrencyDecimals ?? 2);\n}\n","<ng-template #indemnityTitleTemplate>\n <div [class]=\"titleClass()\">{{ title() | PayrollTranslate }}</div>\n</ng-template>\n\n<ng-template #indemnityRowsTemplate>\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"amountIcon()\" [class]=\"iconClass()\"></fa-icon>\n\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ 'Balance' | PayrollTranslate }}:</span>\n\n <span [class]=\"valueClass()\">\n {{ displayAmount(indemnity()?.IndemnityAmount) }}\n @if (!isLoading() && isPayslipAvailable() && indemnity()?.IndemnityDays != null && indemnity()?.IndemnityDays != undefined) {\n (\n {{ indemnity()?.IndemnityDays }}\n @if ((indemnity()?.IndemnityDays ?? 0) > 1) {\n {{ 'Days' | PayrollTranslate }}\n } @else {\n {{ 'Day' | PayrollTranslate }}\n }\n )\n }\n </span>\n </div>\n </div>\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"indemnityTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"indemnityRowsTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"indemnityTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"indemnityRowsTemplate\" />\n </div>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, effect, inject, input, output, signal } from '@angular/core';\n\nimport { DxPopupModule } from 'devextreme-angular';\nimport { PayrollTranslatePipe } from '../../../shared/pipes/translate.pipe';\nimport { PayslipBankTransferDTO } from '../../../shared/types/payroll';\nimport { CommonMethods } from '../../../shared/common/common-methods';\n\n@Component({\n selector: 'payroll-salary-transfer-popup',\n standalone: true,\n imports: [DxPopupModule, PayrollTranslatePipe],\n templateUrl: './salary-transfer-popup.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SalaryTransferPopupComponent {\n readonly bankInformationDataSource = input<PayslipBankTransferDTO[]>([]);\n readonly visibleSalaryTransferPopup = input(false);\n readonly currencyCode = input('');\n readonly currencyDecimals = input(2);\n\n readonly popupHeight = input('auto');\n readonly popupMaxWidth = input('800px');\n readonly popupMinWidth = input('auto');\n readonly containerClass = input('');\n\n readonly headerRowClass = input('fw-bold text-secondary pb-2 d-flex');\n readonly headerCell1Class = input('w-35 text-dark-gray fs-12 fw-400');\n readonly headerCell2Class = input('w-20 text-start text-dark-gray fs-12 fw-400');\n readonly headerCell3Class = input('w-45 text-dark-gray fs-12 fw-400');\n readonly dataRowClass = input('py-2 d-flex');\n readonly dataCell1Class = input('w-35 text-dark-gray fs-14 fw-400');\n readonly dataCell2Class = input('w-20 text-start text-dark-gray fs-14 fw-400');\n readonly dataCell3Class = input('w-45 text-start text-dark-gray fs-14 fw-400');\n\n readonly openSalaryTransferPopupChange = output<boolean>();\n\n readonly visibleSalaryTransferPopupState = signal(false);\n\n public readonly commonMethods = inject(CommonMethods);\n\n constructor() {\n effect(() => {\n this.visibleSalaryTransferPopupState.set(this.visibleSalaryTransferPopup());\n });\n }\n\n onVisibilityChange(visible: boolean): void {\n this.visibleSalaryTransferPopupState.set(visible);\n this.openSalaryTransferPopupChange.emit(visible);\n }\n}\n","<dx-popup\n [title]=\"'SalaryTransferDetails' | PayrollTranslate\"\n [showTitle]=\"true\"\n [visible]=\"visibleSalaryTransferPopupState()\"\n [showCloseButton]=\"true\"\n [height]=\"popupHeight()\"\n [maxWidth]=\"popupMaxWidth()\"\n [minWidth]=\"popupMinWidth()\"\n shadingColor=\"rgba(0,0,0,0.4)\"\n (visibleChange)=\"onVisibilityChange($event)\"\n>\n <div [class]=\"containerClass()\">\n <div [class]=\"headerRowClass()\">\n <div [class]=\"headerCell1Class()\">{{ 'BankName' | PayrollTranslate }}</div>\n <div [class]=\"headerCell2Class()\">{{ 'Amount' | PayrollTranslate }} ({{ currencyCode() }})</div>\n <div [class]=\"headerCell3Class()\">{{ 'IBAN' | PayrollTranslate }} / {{ 'AccountNumber' | PayrollTranslate }}</div>\n </div>\n\n @for (transfer of bankInformationDataSource(); track $index) {\n <div [class]=\"dataRowClass()\">\n <div [class]=\"dataCell1Class()\">{{ transfer.BankBranchName || transfer.BankName }}</div>\n <div [class]=\"dataCell2Class()\">\n {{ commonMethods.currencyDecimalFormat(transfer.TransferAmount, currencyDecimals()) }}\n </div>\n <div [class]=\"dataCell3Class()\">\n {{\n transfer.IBAN\n ? ('IBAN' | PayrollTranslate) + ': ' + transfer.IBAN\n : ('AC' | PayrollTranslate) + ': ' + transfer.BankAccountNumber\n }}\n </div>\n </div>\n }\n </div>\n</dx-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\nimport { faCreditCard, faUniversity } from '@fortawesome/pro-light-svg-icons';\nimport { finalize } from 'rxjs';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayslipBankTransferDTO } from '../../shared/types/payroll';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { SalaryTransferPopupComponent } from '../components/salary-transfer-popup/salary-transfer-popup.component';\n\n@Component({\n selector: 'payroll-my-payslip-bank-info-widget',\n standalone: true,\n imports: [CommonModule, FaIconComponent, PayrollTranslatePipe, SalaryTransferPopupComponent],\n templateUrl: './my-payslip-bank-info-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipBankInfoWidgetComponent {\n readonly bankIcon = input<IconDefinition>(faUniversity);\n readonly accountIcon = input<IconDefinition>(faCreditCard);\n\n readonly titleClass = input('fw-medium mb-2 table-cell-md');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-between w-100');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n readonly actionClass = input('mt-2 fs-12 text-primary fw-400 cursor-pointer text-decoration-underline');\n readonly exploreDetailsKey = input('ExploreSalaryTransferDetails');\n\n readonly popupHeight = input('auto');\n readonly popupMaxWidth = input('800px');\n readonly popupMinWidth = input('auto');\n readonly popupContainerClass = input('');\n readonly popupHeaderRowClass = input('fw-bold text-secondary pb-2 d-flex');\n readonly popupHeaderCell1Class = input('w-35 text-dark-gray fs-12 fw-400');\n readonly popupHeaderCell2Class = input('w-20 text-start text-dark-gray fs-12 fw-400');\n readonly popupHeaderCell3Class = input('w-45 text-dark-gray fs-12 fw-400');\n readonly popupDataRowClass = input('py-2 d-flex');\n readonly popupDataCell1Class = input('w-35 text-dark-gray fs-14 fw-400');\n readonly popupDataCell2Class = input('w-20 text-start text-dark-gray fs-14 fw-400');\n readonly popupDataCell3Class = input('w-45 text-start text-dark-gray fs-14 fw-400');\n\n readonly title = input('BankInformation');\n\n readonly baseUrl = input('');\n readonly payMonth = input('');\n readonly isMobile = input(false);\n\n readonly errorOccurred = output<string>();\n readonly isLoadingChanged = output<boolean>();\n\n readonly isPayslipAvailable = input(true);\n\n readonly bankInformation = signal<PayslipBankTransferDTO[] | null>(null);\n\n readonly isLoading = signal(false);\n readonly visibleSalaryTransferPopup = signal(false);\n\n readonly exploreDetailsClick = output<void>();\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadBankInformation();\n }\n });\n }\n\n private loadBankInformation(): void {\n if (!this.isPayslipAvailable()) {\n this.bankInformation.set([]);\n return;\n }\n\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService\n .getPayslipBankInformation(this.baseUrl(), this.payMonth())\n .pipe(\n finalize(() => {\n this.isLoading.set(false);\n this.isLoadingChanged.emit(false);\n }),\n )\n .subscribe({\n next: res => {\n this.bankInformation.set(res?.ResponseData ?? []);\n },\n error: (error: any) => {\n this.isLoadingChanged.emit(false);\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n this.bankInformation.set([]);\n },\n });\n }\n\n private readonly mainBank = computed<PayslipBankTransferDTO | null>(\n () => this.bankInformation()?.find(bank => bank.IsMainBank) ?? this.bankInformation()?.[0] ?? null,\n );\n\n private display(value: any): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return `${value}`;\n }\n\n private accountLabel(bank: PayslipBankTransferDTO | null | undefined): string {\n return bank?.BankAccountNumber != null ? (bank?.IBAN != null ? 'IBAN' : 'AC') : 'IBAN';\n }\n\n readonly bankItems = computed(() => {\n const bank = this.mainBank();\n\n return [\n {\n key: 'Bank',\n label: 'Bank',\n icon: this.bankIcon(),\n value: this.display(bank?.BankName),\n },\n {\n key: this.accountLabel(bank),\n label: this.accountLabel(bank),\n icon: this.accountIcon(),\n value: this.display(bank?.IBAN || bank?.BankAccountNumber),\n },\n ];\n });\n\n readonly showExploreLink = computed(() => !!this.bankInformation()?.length && this.isPayslipAvailable());\n\n onExploreDetailsClick(): void {\n const hasObservedSubscribers = (this.exploreDetailsClick as unknown as { observed?: boolean }).observed === true;\n\n if (hasObservedSubscribers) {\n this.exploreDetailsClick.emit();\n return;\n }\n\n this.visibleSalaryTransferPopup.set(true);\n }\n\n onSalaryTransferVisibilityChanged(visible: boolean): void {\n this.visibleSalaryTransferPopup.set(visible);\n }\n\n readonly currencyCode = computed(() => this.mainBank()?.CurrencyCode ?? '');\n\n readonly currencyDecimals = computed(() => this.mainBank()?.CurrencyDecimals ?? 2);\n}\n","<ng-template #bankTitleTemplate>\n <div [class]=\"titleClass()\">{{ title() | PayrollTranslate }}</div>\n</ng-template>\n\n<ng-template #bankRowsTemplate>\n @for (item of bankItems(); track $index) {\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"item.icon\" [class]=\"iconClass()\"></fa-icon>\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ item.label | PayrollTranslate }}:</span>\n <span [class]=\"valueClass()\">{{ item.value }}</span>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #bankExploreLinkTemplate>\n @if (showExploreLink()) {\n <a href=\"javascript:void(0)\" [class]=\"actionClass()\" (click)=\"onExploreDetailsClick()\">\n {{ exploreDetailsKey() | PayrollTranslate }}\n </a>\n }\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"bankTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"bankRowsTemplate\" />\n <ng-container *ngTemplateOutlet=\"bankExploreLinkTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"bankTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"bankRowsTemplate\" />\n <ng-container *ngTemplateOutlet=\"bankExploreLinkTemplate\" />\n </div>\n </div>\n}\n\n<payroll-salary-transfer-popup\n [visibleSalaryTransferPopup]=\"visibleSalaryTransferPopup()\"\n [bankInformationDataSource]=\"bankInformation() ?? []\"\n [currencyCode]=\"currencyCode()\"\n [currencyDecimals]=\"currencyDecimals()\"\n [popupHeight]=\"popupHeight()\"\n [popupMaxWidth]=\"popupMaxWidth()\"\n [popupMinWidth]=\"popupMinWidth()\"\n [containerClass]=\"popupContainerClass()\"\n [headerRowClass]=\"popupHeaderRowClass()\"\n [headerCell1Class]=\"popupHeaderCell1Class()\"\n [headerCell2Class]=\"popupHeaderCell2Class()\"\n [headerCell3Class]=\"popupHeaderCell3Class()\"\n [dataRowClass]=\"popupDataRowClass()\"\n [dataCell1Class]=\"popupDataCell1Class()\"\n [dataCell2Class]=\"popupDataCell2Class()\"\n [dataCell3Class]=\"popupDataCell3Class()\"\n (openSalaryTransferPopupChange)=\"onSalaryTransferVisibilityChanged($event)\"\n></payroll-salary-transfer-popup>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { FaIconComponent, IconDefinition } from '@fortawesome/angular-fontawesome';\nimport { faChevronDown, faChevronUp } from '@fortawesome/pro-solid-svg-icons';\nimport { finalize } from 'rxjs';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { PayslipVacationBalanceDTO } from '../../shared/types/payroll';\nimport { faIslandTropical } from '@fortawesome/pro-light-svg-icons';\n\n@Component({\n selector: 'payroll-my-payslip-vacation-balance-widget',\n standalone: true,\n imports: [CommonModule, FaIconComponent, PayrollTranslatePipe],\n templateUrl: './my-payslip-vacation-balance-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipVacationBalanceWidgetComponent {\n readonly vacationIcon = input<IconDefinition>(faIslandTropical);\n\n readonly titleClass = input('fw-medium mb-2 table-cell-md');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-center w-100');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n readonly viewMoreLabel = input('ViewMore');\n readonly viewLessLabel = input('ViewLess');\n readonly expandIcon = input<IconDefinition>(faChevronDown);\n readonly collapseIcon = input<IconDefinition>(faChevronUp);\n readonly actionIconClass = input('fs-10 ms-1');\n readonly actionButtonClass = input(\n 'mt-2 fs-12 text-primary fw-400 cursor-pointer text-decoration-underline bg-transparent border-0 p-0',\n );\n\n readonly title = input('VacationBalance');\n readonly daysLabel = input('Days');\n\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n readonly isMobile = input(false);\n readonly isPayslipAvailable = input(true);\n readonly isExpanded = signal(false);\n readonly collapsedItemsCount = input(2);\n\n readonly isLoadingChanged = output<boolean>();\n readonly errorOccurred = output<string>();\n\n readonly vacationBalances = signal<PayslipVacationBalanceDTO[] | null>(null);\n\n readonly isLoading = signal(false);\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadVacationBalances();\n }\n });\n }\n\n private loadVacationBalances(): void {\n const payMonth = this.payMonth();\n if (!this.isPayslipAvailable() || !payMonth) {\n this.vacationBalances.set([]);\n return;\n }\n\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService\n .getPayslipVacationBalances(this.baseUrl(), payMonth)\n .pipe(\n finalize(() => {\n this.isLoading.set(false);\n this.isLoadingChanged.emit(false);\n }),\n )\n .subscribe({\n next: res => {\n this.vacationBalances.set(res?.ResponseData ?? []);\n },\n error: (error: any) => {\n this.vacationBalances.set([]);\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n },\n });\n }\n\n readonly vacationItems = computed(() => {\n if ((!this.isPayslipAvailable() || this.isLoading()) && !this.vacationBalances()?.length) {\n return [\n {\n label: this.title(),\n value: '-',\n showDays: false,\n },\n ];\n }\n if (!this.isPayslipAvailable() && !this.vacationBalances()?.length) {\n return [\n {\n label: this.title(),\n value: '-',\n showDays: false,\n },\n ];\n }\n\n return (this.vacationBalances() ?? []).map(vacationBalance => ({\n label: this.getVacationTypeName(vacationBalance),\n value: this.getVacationBalance(vacationBalance.VacationBalance),\n showDays: this.showDaysLabel(vacationBalance.VacationBalance),\n }));\n });\n\n readonly visibleVacationBalances = computed(() => {\n const balances = this.vacationItems() ?? [];\n\n if (this.isExpanded()) {\n return balances;\n }\n\n return balances.slice(0, this.collapsedItemsCount());\n });\n\n readonly showViewMoreButton = computed(\n () => !!this.vacationBalances() && this.vacationBalances()!.length > this.collapsedItemsCount(),\n );\n\n readonly expandButtonlabel = computed(() => (this.isExpanded() ? this.viewLessLabel() : this.viewMoreLabel()));\n\n toggleExpanded(): void {\n this.isExpanded.update(value => !value);\n }\n\n getVacationTypeName(vacationBalance: PayslipVacationBalanceDTO): string {\n if (this.isLoading() || !this.isPayslipAvailable()) return '-';\n return vacationBalance.VacationTypeName || '-';\n }\n\n getVacationBalance(value: number | null | undefined): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) return '-';\n return value.toFixed(2);\n }\n\n showDaysLabel(value: number | null | undefined): boolean {\n const balance = this.getVacationBalance(value);\n return balance !== '-';\n }\n}\n","<ng-template #vacationTitleTemplate>\n <div [class]=\"titleClass()\">{{ title() | PayrollTranslate }}</div>\n</ng-template>\n\n<ng-template #vacationRowsTemplate>\n @for (vacationBalance of visibleVacationBalances(); track $index) {\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"vacationIcon()\" [class]=\"iconClass()\"></fa-icon>\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ vacationBalance.label | PayrollTranslate }}:</span>\n <span [class]=\"valueClass()\">\n {{ vacationBalance.value }}\n </span>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #viewMoreTemplate>\n @if (showViewMoreButton()) {\n <button type=\"button\" [class]=\"actionButtonClass()\" (click)=\"toggleExpanded()\">\n {{ expandButtonlabel() | PayrollTranslate }}\n </button>\n }\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"vacationTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"vacationRowsTemplate\" />\n <ng-container *ngTemplateOutlet=\"viewMoreTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"vacationTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"vacationRowsTemplate\" />\n <ng-container *ngTemplateOutlet=\"viewMoreTemplate\" />\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faUser } from '@fortawesome/pro-light-svg-icons';\nimport { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\nimport { finalize } from 'rxjs';\nimport { PayrollSelfWidgetsService } from '../../services/payroll/self-widgets.service';\nimport { PayrollTranslatePipe } from '../../shared/pipes/translate.pipe';\nimport { PayslipTicketBalanceDTO } from '../../shared/types/payroll';\n\n@Component({\n selector: 'payroll-my-payslip-ticket-balance-widget',\n standalone: true,\n imports: [CommonModule, FaIconComponent, PayrollTranslatePipe],\n templateUrl: './my-payslip-ticket-balance-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MyPayslipTicketBalanceWidgetComponent {\n readonly ticketIcon = input<IconDefinition>(faUser);\n readonly titleClass = input('fw-medium mb-2 table-cell-md');\n readonly desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2');\n readonly mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3');\n readonly mobileContainerClass = input('d-flex align-items-center justify-content-center w-100');\n readonly iconClass = input('fs-16 me-2 text-gray');\n readonly rowClass = input('d-flex align-items-center my-1 w-100');\n readonly labelClass = input('fw-light fs-12 text-light-dark');\n readonly valueClass = input('fw-400 ms-1 text-light-dark fs-12');\n\n readonly title = input('TicketBalance');\n readonly tickets = input('Tickets');\n\n readonly baseUrl = input('');\n readonly payMonth = input<string | null>(null);\n readonly isMobile = input(false);\n readonly isPayslipAvailable = input(true);\n\n readonly isLoadingChanged = output<boolean>();\n readonly errorOccurred = output<string>();\n\n readonly ticketBalances = signal<PayslipTicketBalanceDTO[] | null>(null);\n\n readonly isLoading = signal(false);\n\n private readonly payrollWidgetsService = inject(PayrollSelfWidgetsService);\n\n constructor() {\n effect(() => {\n if (this.baseUrl() && this.payMonth()) {\n this.loadTicketBalances();\n }\n });\n }\n\n private loadTicketBalances(): void {\n const payMonth = this.payMonth();\n if (!this.isPayslipAvailable() || !payMonth) {\n this.ticketBalances.set([]);\n return;\n }\n this.isLoading.set(true);\n this.isLoadingChanged.emit(true);\n\n this.payrollWidgetsService\n .getPayslipTicketBalances(this.baseUrl(), payMonth)\n .pipe(\n finalize(() => {\n this.isLoading.set(false);\n this.isLoadingChanged.emit(false);\n }),\n )\n .subscribe({\n next: res => {\n this.ticketBalances.set(res?.ResponseData ?? []);\n },\n error: (error: any) => {\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\n this.ticketBalances.set([]);\n },\n });\n }\n\n readonly ticketItems = computed(() => {\n if ((!this.isPayslipAvailable() || this.isLoading()) && !this.ticketBalances()?.length) {\n return [\n {\n label: this.tickets(),\n value: '-',\n showTickets: false,\n },\n ];\n }\n\n return (this.ticketBalances() ?? []).map(ticketBalance => ({\n label: this.displayLabel(ticketBalance.AgeGroupName || ticketBalance.AgeGroup),\n value: this.displayNumber(ticketBalance.TicketBalance),\n showTickets: this.showTicketsLabel(ticketBalance.TicketBalance),\n }));\n });\n\n display(value: any): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return `${value}`;\n }\n\n displayLabel(value: any): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return `${value}`;\n }\n\n displayNumber(value: number | null | undefined): string {\n if (this.isLoading() || !this.isPayslipAvailable() || value == null) {\n return '-';\n }\n\n return Number(value).toFixed(2);\n }\n\n showTicketsLabel(value: number | null | undefined): boolean {\n return !this.isLoading() && this.isPayslipAvailable() && value != null;\n }\n}\n","<ng-template #ticketTitleTemplate>\n <div [class]=\"titleClass()\">{{ title() | PayrollTranslate }}</div>\n</ng-template>\n\n<ng-template #ticketRowsTemplate>\n @for (item of ticketItems(); track $index) {\n <div [class]=\"rowClass()\">\n <fa-icon [icon]=\"ticketIcon()\" [class]=\"iconClass()\"></fa-icon>\n <div class=\"flex-grow-1\">\n <span [class]=\"labelClass()\">{{ item.label | PayrollTranslate }}:</span>\n <span [class]=\"valueClass()\">\n {{ item.value }}\n </span>\n </div>\n </div>\n }\n</ng-template>\n\n@if (!isMobile()) {\n <div [class]=\"desktopContainerClass()\">\n <ng-container *ngTemplateOutlet=\"ticketTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"ticketRowsTemplate\" />\n </div>\n} @else {\n <div [class]=\"mobileContainerClass()\">\n <div [class]=\"mobileCardClass()\">\n <ng-container *ngTemplateOutlet=\"ticketTitleTemplate\" />\n <ng-container *ngTemplateOutlet=\"ticketRowsTemplate\" />\n </div>\n </div>\n}\n","/*\n * Public API Surface of payroll-ui\n */\n\nexport * from './lib/shared/services/translate.service';\nexport * from './lib/shared/pipes/translate.pipe';\nexport * from './lib/my-loans-popup/my-loans-popup.component';\nexport * from './lib/payslip/my-payslip-widget/my-payslip-widget.component';\nexport * from './lib/payslip/my-payslip-job-info-widget/my-payslip-job-info-widget.component';\nexport * from './lib/payslip/my-payslip-indemnity-widget/my-payslip-indemnity-widget.component';\nexport * from './lib/payslip/my-payslip-bank-info-widget/my-payslip-bank-info-widget.component';\nexport * from './lib/payslip/my-payslip-vacation-balance-widget/my-payslip-vacation-balance-widget.component';\nexport * from './lib/payslip/my-payslip-ticket-balance-widget/my-payslip-ticket-balance-widget.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PayrollTranslateService","i1","i2"],"mappings":"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"}
|